@steemit/steem-js 0.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/README.md +232 -0
  2. package/dist/api/index.d.ts +115 -0
  3. package/dist/api/methods.d.ts +9 -0
  4. package/dist/api/rpc-auth.d.ts +43 -0
  5. package/dist/api/transports/base.d.ts +13 -0
  6. package/dist/api/transports/http.d.ts +9 -0
  7. package/dist/api/transports/index.d.ts +9 -0
  8. package/dist/api/transports/types.d.ts +29 -0
  9. package/dist/api/transports/ws.d.ts +11 -0
  10. package/dist/auth/ecc/index.d.ts +9 -0
  11. package/dist/auth/ecc/src/address.d.ts +13 -0
  12. package/dist/auth/ecc/src/aes.d.ts +16 -0
  13. package/dist/auth/ecc/src/brain_key.d.ts +1 -0
  14. package/dist/auth/ecc/src/ecdsa.d.ts +28 -0
  15. package/dist/auth/ecc/src/ecsignature.d.ts +19 -0
  16. package/dist/auth/ecc/src/enforce_types.d.ts +5 -0
  17. package/dist/auth/ecc/src/hash.d.ts +25 -0
  18. package/dist/auth/ecc/src/index.d.ts +9 -0
  19. package/dist/auth/ecc/src/key_private.d.ts +38 -0
  20. package/dist/auth/ecc/src/key_public.d.ts +41 -0
  21. package/dist/auth/ecc/src/key_utils.d.ts +9 -0
  22. package/dist/auth/ecc/src/signature.d.ts +18 -0
  23. package/dist/auth/ecc.d.ts +3 -0
  24. package/dist/auth/index.d.ts +48 -0
  25. package/dist/auth/key_classes.d.ts +3 -0
  26. package/dist/auth/serializer.d.ts +19 -0
  27. package/dist/broadcast/helpers.d.ts +11 -0
  28. package/dist/broadcast/index.d.ts +43 -0
  29. package/dist/broadcast/operations.d.ts +6 -0
  30. package/dist/config.d.ts +25 -0
  31. package/dist/crypto/index.d.ts +25 -0
  32. package/dist/formatter/index.d.ts +92 -0
  33. package/dist/index.cjs +25766 -0
  34. package/dist/index.cjs.map +1 -0
  35. package/dist/index.d.ts +30 -0
  36. package/dist/index.js +25730 -0
  37. package/dist/index.js.map +1 -0
  38. package/dist/index.umd.js +57431 -0
  39. package/dist/index.umd.js.map +1 -0
  40. package/dist/memo/index.d.ts +11 -0
  41. package/dist/operations/index.d.ts +44 -0
  42. package/dist/serializer/convert.d.ts +12 -0
  43. package/dist/serializer/index.d.ts +11 -0
  44. package/dist/serializer/number_utils.d.ts +8 -0
  45. package/dist/serializer/precision.d.ts +5 -0
  46. package/dist/serializer/types.d.ts +36 -0
  47. package/dist/types/index.d.ts +131 -0
  48. package/dist/types.d.ts +28 -0
  49. package/dist/utils/index.d.ts +8 -0
  50. package/dist/utils.d.ts +2 -0
  51. package/package.json +85 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../node_modules/.pnpm/bluebird@3.7.2/node_modules/bluebird/js/release/es5.js","../node_modules/.pnpm/bluebird@3.7.2/node_modules/bluebird/js/release/util.js","../node_modules/.pnpm/bluebird@3.7.2/node_modules/bluebird/js/release/schedule.js","../node_modules/.pnpm/bluebird@3.7.2/node_modules/bluebird/js/release/queue.js","../node_modules/.pnpm/bluebird@3.7.2/node_modules/bluebird/js/release/async.js","../node_modules/.pnpm/bluebird@3.7.2/node_modules/bluebird/js/release/errors.js","../node_modules/.pnpm/bluebird@3.7.2/node_modules/bluebird/js/release/thenables.js","../node_modules/.pnpm/bluebird@3.7.2/node_modules/bluebird/js/release/promise_array.js","../node_modules/.pnpm/bluebird@3.7.2/node_modules/bluebird/js/release/context.js","../node_modules/.pnpm/bluebird@3.7.2/node_modules/bluebird/js/release/debuggability.js","../node_modules/.pnpm/bluebird@3.7.2/node_modules/bluebird/js/release/catch_filter.js","../node_modules/.pnpm/bluebird@3.7.2/node_modules/bluebird/js/release/finally.js","../node_modules/.pnpm/bluebird@3.7.2/node_modules/bluebird/js/release/nodeback.js","../node_modules/.pnpm/bluebird@3.7.2/node_modules/bluebird/js/release/method.js","../node_modules/.pnpm/bluebird@3.7.2/node_modules/bluebird/js/release/bind.js","../node_modules/.pnpm/bluebird@3.7.2/node_modules/bluebird/js/release/cancel.js","../node_modules/.pnpm/bluebird@3.7.2/node_modules/bluebird/js/release/direct_resolve.js","../node_modules/.pnpm/bluebird@3.7.2/node_modules/bluebird/js/release/synchronous_inspection.js","../node_modules/.pnpm/bluebird@3.7.2/node_modules/bluebird/js/release/join.js","../node_modules/.pnpm/bluebird@3.7.2/node_modules/bluebird/js/release/call_get.js","../node_modules/.pnpm/bluebird@3.7.2/node_modules/bluebird/js/release/generators.js","../node_modules/.pnpm/bluebird@3.7.2/node_modules/bluebird/js/release/map.js","../node_modules/.pnpm/bluebird@3.7.2/node_modules/bluebird/js/release/nodeify.js","../node_modules/.pnpm/bluebird@3.7.2/node_modules/bluebird/js/release/promisify.js","../node_modules/.pnpm/bluebird@3.7.2/node_modules/bluebird/js/release/props.js","../node_modules/.pnpm/bluebird@3.7.2/node_modules/bluebird/js/release/race.js","../node_modules/.pnpm/bluebird@3.7.2/node_modules/bluebird/js/release/reduce.js","../node_modules/.pnpm/bluebird@3.7.2/node_modules/bluebird/js/release/settle.js","../node_modules/.pnpm/bluebird@3.7.2/node_modules/bluebird/js/release/some.js","../node_modules/.pnpm/bluebird@3.7.2/node_modules/bluebird/js/release/timers.js","../node_modules/.pnpm/bluebird@3.7.2/node_modules/bluebird/js/release/using.js","../node_modules/.pnpm/bluebird@3.7.2/node_modules/bluebird/js/release/any.js","../node_modules/.pnpm/bluebird@3.7.2/node_modules/bluebird/js/release/each.js","../node_modules/.pnpm/bluebird@3.7.2/node_modules/bluebird/js/release/filter.js","../node_modules/.pnpm/bluebird@3.7.2/node_modules/bluebird/js/release/promise.js","../node_modules/.pnpm/bluebird@3.7.2/node_modules/bluebird/js/release/bluebird.js","../src/config.ts","../src/utils/index.ts","../src/utils.ts","../node_modules/.pnpm/safe-buffer@5.2.1/node_modules/safe-buffer/index.js","../node_modules/.pnpm/bigi@1.4.2/node_modules/bigi/lib/bigi.js","../node_modules/.pnpm/bigi@1.4.2/node_modules/bigi/lib/convert.js","../node_modules/.pnpm/bigi@1.4.2/node_modules/bigi/lib/index.js","../node_modules/.pnpm/ecurve@1.0.6/node_modules/ecurve/lib/point.js","../node_modules/.pnpm/ecurve@1.0.6/node_modules/ecurve/lib/curve.js","../node_modules/.pnpm/ecurve@1.0.6/node_modules/ecurve/lib/names.js","../node_modules/.pnpm/ecurve@1.0.6/node_modules/ecurve/lib/index.js","../node_modules/.pnpm/create-hash@1.2.0/node_modules/create-hash/index.js","../node_modules/.pnpm/create-hmac@1.1.7/node_modules/create-hmac/index.js","../src/auth/ecc/src/hash.ts","../node_modules/.pnpm/base-x@5.0.1/node_modules/base-x/src/esm/index.js","../node_modules/.pnpm/bs58@6.0.0/node_modules/bs58/src/esm/index.js","../src/auth/ecc/src/key_public.ts","../src/auth/ecc/src/key_private.ts","../src/auth/ecc/src/signature.ts","../src/auth/ecc/src/address.ts","../src/api/rpc-auth.ts","../src/api/methods.ts","../node_modules/.pnpm/retry@0.13.1/node_modules/retry/lib/retry_operation.js","../node_modules/.pnpm/retry@0.13.1/node_modules/retry/lib/retry.js","../node_modules/.pnpm/retry@0.13.1/node_modules/retry/index.js","../src/api/transports/base.ts","../src/api/transports/http.ts","../node_modules/.pnpm/ws@8.18.3/node_modules/ws/lib/constants.js","../node_modules/.pnpm/ws@8.18.3/node_modules/ws/lib/buffer-util.js","../node_modules/.pnpm/ws@8.18.3/node_modules/ws/lib/limiter.js","../node_modules/.pnpm/ws@8.18.3/node_modules/ws/lib/permessage-deflate.js","../node_modules/.pnpm/ws@8.18.3/node_modules/ws/lib/validation.js","../node_modules/.pnpm/ws@8.18.3/node_modules/ws/lib/receiver.js","../node_modules/.pnpm/ws@8.18.3/node_modules/ws/lib/sender.js","../node_modules/.pnpm/ws@8.18.3/node_modules/ws/lib/event-target.js","../node_modules/.pnpm/ws@8.18.3/node_modules/ws/lib/extension.js","../node_modules/.pnpm/ws@8.18.3/node_modules/ws/lib/websocket.js","../node_modules/.pnpm/ws@8.18.3/node_modules/ws/lib/stream.js","../node_modules/.pnpm/ws@8.18.3/node_modules/ws/lib/subprotocol.js","../node_modules/.pnpm/ws@8.18.3/node_modules/ws/lib/websocket-server.js","../src/api/transports/ws.ts","../src/api/transports/index.ts","../src/api/index.ts","../node_modules/.pnpm/long@3.2.0/node_modules/long/dist/long.js","../node_modules/.pnpm/bytebuffer@5.0.1/node_modules/bytebuffer/dist/bytebuffer-node.js","../node_modules/.pnpm/long@5.3.2/node_modules/long/index.js","../src/auth/serializer.ts","../src/auth/index.ts","../src/broadcast/operations.ts","../src/broadcast/helpers.ts","../src/broadcast/index.ts","../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isArray.js","../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_freeGlobal.js","../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_root.js","../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Symbol.js","../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getRawTag.js","../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_objectToString.js","../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseGetTag.js","../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isObjectLike.js","../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isSymbol.js","../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_isKey.js","../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isObject.js","../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isFunction.js","../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_coreJsData.js","../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_isMasked.js","../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_toSource.js","../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIsNative.js","../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getValue.js","../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getNative.js","../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_nativeCreate.js","../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_hashClear.js","../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_hashDelete.js","../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_hashGet.js","../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_hashHas.js","../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_hashSet.js","../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Hash.js","../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_listCacheClear.js","../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/eq.js","../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_assocIndexOf.js","../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_listCacheDelete.js","../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_listCacheGet.js","../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_listCacheHas.js","../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_listCacheSet.js","../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_ListCache.js","../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Map.js","../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_mapCacheClear.js","../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_isKeyable.js","../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getMapData.js","../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_mapCacheDelete.js","../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_mapCacheGet.js","../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_mapCacheHas.js","../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_mapCacheSet.js","../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_MapCache.js","../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/memoize.js","../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_memoizeCapped.js","../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_stringToPath.js","../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_arrayMap.js","../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseToString.js","../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/toString.js","../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_castPath.js","../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_toKey.js","../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseGet.js","../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/get.js","../src/formatter/index.ts","../src/auth/ecc/src/aes.ts","../src/memo/index.ts","../src/operations/index.ts","../src/serializer/convert.ts","../src/serializer/types.ts","../src/serializer/precision.ts","../src/serializer/index.ts","../src/crypto/index.ts","../src/index.ts"],"sourcesContent":["var isES5 = (function(){\n \"use strict\";\n return this === undefined;\n})();\n\nif (isES5) {\n module.exports = {\n freeze: Object.freeze,\n defineProperty: Object.defineProperty,\n getDescriptor: Object.getOwnPropertyDescriptor,\n keys: Object.keys,\n names: Object.getOwnPropertyNames,\n getPrototypeOf: Object.getPrototypeOf,\n isArray: Array.isArray,\n isES5: isES5,\n propertyIsWritable: function(obj, prop) {\n var descriptor = Object.getOwnPropertyDescriptor(obj, prop);\n return !!(!descriptor || descriptor.writable || descriptor.set);\n }\n };\n} else {\n var has = {}.hasOwnProperty;\n var str = {}.toString;\n var proto = {}.constructor.prototype;\n\n var ObjectKeys = function (o) {\n var ret = [];\n for (var key in o) {\n if (has.call(o, key)) {\n ret.push(key);\n }\n }\n return ret;\n };\n\n var ObjectGetDescriptor = function(o, key) {\n return {value: o[key]};\n };\n\n var ObjectDefineProperty = function (o, key, desc) {\n o[key] = desc.value;\n return o;\n };\n\n var ObjectFreeze = function (obj) {\n return obj;\n };\n\n var ObjectGetPrototypeOf = function (obj) {\n try {\n return Object(obj).constructor.prototype;\n }\n catch (e) {\n return proto;\n }\n };\n\n var ArrayIsArray = function (obj) {\n try {\n return str.call(obj) === \"[object Array]\";\n }\n catch(e) {\n return false;\n }\n };\n\n module.exports = {\n isArray: ArrayIsArray,\n keys: ObjectKeys,\n names: ObjectKeys,\n defineProperty: ObjectDefineProperty,\n getDescriptor: ObjectGetDescriptor,\n freeze: ObjectFreeze,\n getPrototypeOf: ObjectGetPrototypeOf,\n isES5: isES5,\n propertyIsWritable: function() {\n return true;\n }\n };\n}\n","\"use strict\";\nvar es5 = require(\"./es5\");\nvar canEvaluate = typeof navigator == \"undefined\";\n\nvar errorObj = {e: {}};\nvar tryCatchTarget;\nvar globalObject = typeof self !== \"undefined\" ? self :\n typeof window !== \"undefined\" ? window :\n typeof global !== \"undefined\" ? global :\n this !== undefined ? this : null;\n\nfunction tryCatcher() {\n try {\n var target = tryCatchTarget;\n tryCatchTarget = null;\n return target.apply(this, arguments);\n } catch (e) {\n errorObj.e = e;\n return errorObj;\n }\n}\nfunction tryCatch(fn) {\n tryCatchTarget = fn;\n return tryCatcher;\n}\n\nvar inherits = function(Child, Parent) {\n var hasProp = {}.hasOwnProperty;\n\n function T() {\n this.constructor = Child;\n this.constructor$ = Parent;\n for (var propertyName in Parent.prototype) {\n if (hasProp.call(Parent.prototype, propertyName) &&\n propertyName.charAt(propertyName.length-1) !== \"$\"\n ) {\n this[propertyName + \"$\"] = Parent.prototype[propertyName];\n }\n }\n }\n T.prototype = Parent.prototype;\n Child.prototype = new T();\n return Child.prototype;\n};\n\n\nfunction isPrimitive(val) {\n return val == null || val === true || val === false ||\n typeof val === \"string\" || typeof val === \"number\";\n\n}\n\nfunction isObject(value) {\n return typeof value === \"function\" ||\n typeof value === \"object\" && value !== null;\n}\n\nfunction maybeWrapAsError(maybeError) {\n if (!isPrimitive(maybeError)) return maybeError;\n\n return new Error(safeToString(maybeError));\n}\n\nfunction withAppended(target, appendee) {\n var len = target.length;\n var ret = new Array(len + 1);\n var i;\n for (i = 0; i < len; ++i) {\n ret[i] = target[i];\n }\n ret[i] = appendee;\n return ret;\n}\n\nfunction getDataPropertyOrDefault(obj, key, defaultValue) {\n if (es5.isES5) {\n var desc = Object.getOwnPropertyDescriptor(obj, key);\n\n if (desc != null) {\n return desc.get == null && desc.set == null\n ? desc.value\n : defaultValue;\n }\n } else {\n return {}.hasOwnProperty.call(obj, key) ? obj[key] : undefined;\n }\n}\n\nfunction notEnumerableProp(obj, name, value) {\n if (isPrimitive(obj)) return obj;\n var descriptor = {\n value: value,\n configurable: true,\n enumerable: false,\n writable: true\n };\n es5.defineProperty(obj, name, descriptor);\n return obj;\n}\n\nfunction thrower(r) {\n throw r;\n}\n\nvar inheritedDataKeys = (function() {\n var excludedPrototypes = [\n Array.prototype,\n Object.prototype,\n Function.prototype\n ];\n\n var isExcludedProto = function(val) {\n for (var i = 0; i < excludedPrototypes.length; ++i) {\n if (excludedPrototypes[i] === val) {\n return true;\n }\n }\n return false;\n };\n\n if (es5.isES5) {\n var getKeys = Object.getOwnPropertyNames;\n return function(obj) {\n var ret = [];\n var visitedKeys = Object.create(null);\n while (obj != null && !isExcludedProto(obj)) {\n var keys;\n try {\n keys = getKeys(obj);\n } catch (e) {\n return ret;\n }\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n if (visitedKeys[key]) continue;\n visitedKeys[key] = true;\n var desc = Object.getOwnPropertyDescriptor(obj, key);\n if (desc != null && desc.get == null && desc.set == null) {\n ret.push(key);\n }\n }\n obj = es5.getPrototypeOf(obj);\n }\n return ret;\n };\n } else {\n var hasProp = {}.hasOwnProperty;\n return function(obj) {\n if (isExcludedProto(obj)) return [];\n var ret = [];\n\n /*jshint forin:false */\n enumeration: for (var key in obj) {\n if (hasProp.call(obj, key)) {\n ret.push(key);\n } else {\n for (var i = 0; i < excludedPrototypes.length; ++i) {\n if (hasProp.call(excludedPrototypes[i], key)) {\n continue enumeration;\n }\n }\n ret.push(key);\n }\n }\n return ret;\n };\n }\n\n})();\n\nvar thisAssignmentPattern = /this\\s*\\.\\s*\\S+\\s*=/;\nfunction isClass(fn) {\n try {\n if (typeof fn === \"function\") {\n var keys = es5.names(fn.prototype);\n\n var hasMethods = es5.isES5 && keys.length > 1;\n var hasMethodsOtherThanConstructor = keys.length > 0 &&\n !(keys.length === 1 && keys[0] === \"constructor\");\n var hasThisAssignmentAndStaticMethods =\n thisAssignmentPattern.test(fn + \"\") && es5.names(fn).length > 0;\n\n if (hasMethods || hasMethodsOtherThanConstructor ||\n hasThisAssignmentAndStaticMethods) {\n return true;\n }\n }\n return false;\n } catch (e) {\n return false;\n }\n}\n\nfunction toFastProperties(obj) {\n /*jshint -W027,-W055,-W031*/\n function FakeConstructor() {}\n FakeConstructor.prototype = obj;\n var receiver = new FakeConstructor();\n function ic() {\n return typeof receiver.foo;\n }\n ic();\n ic();\n return obj;\n eval(obj);\n}\n\nvar rident = /^[a-z$_][a-z$_0-9]*$/i;\nfunction isIdentifier(str) {\n return rident.test(str);\n}\n\nfunction filledRange(count, prefix, suffix) {\n var ret = new Array(count);\n for(var i = 0; i < count; ++i) {\n ret[i] = prefix + i + suffix;\n }\n return ret;\n}\n\nfunction safeToString(obj) {\n try {\n return obj + \"\";\n } catch (e) {\n return \"[no string representation]\";\n }\n}\n\nfunction isError(obj) {\n return obj instanceof Error ||\n (obj !== null &&\n typeof obj === \"object\" &&\n typeof obj.message === \"string\" &&\n typeof obj.name === \"string\");\n}\n\nfunction markAsOriginatingFromRejection(e) {\n try {\n notEnumerableProp(e, \"isOperational\", true);\n }\n catch(ignore) {}\n}\n\nfunction originatesFromRejection(e) {\n if (e == null) return false;\n return ((e instanceof Error[\"__BluebirdErrorTypes__\"].OperationalError) ||\n e[\"isOperational\"] === true);\n}\n\nfunction canAttachTrace(obj) {\n return isError(obj) && es5.propertyIsWritable(obj, \"stack\");\n}\n\nvar ensureErrorObject = (function() {\n if (!(\"stack\" in new Error())) {\n return function(value) {\n if (canAttachTrace(value)) return value;\n try {throw new Error(safeToString(value));}\n catch(err) {return err;}\n };\n } else {\n return function(value) {\n if (canAttachTrace(value)) return value;\n return new Error(safeToString(value));\n };\n }\n})();\n\nfunction classString(obj) {\n return {}.toString.call(obj);\n}\n\nfunction copyDescriptors(from, to, filter) {\n var keys = es5.names(from);\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n if (filter(key)) {\n try {\n es5.defineProperty(to, key, es5.getDescriptor(from, key));\n } catch (ignore) {}\n }\n }\n}\n\nvar asArray = function(v) {\n if (es5.isArray(v)) {\n return v;\n }\n return null;\n};\n\nif (typeof Symbol !== \"undefined\" && Symbol.iterator) {\n var ArrayFrom = typeof Array.from === \"function\" ? function(v) {\n return Array.from(v);\n } : function(v) {\n var ret = [];\n var it = v[Symbol.iterator]();\n var itResult;\n while (!((itResult = it.next()).done)) {\n ret.push(itResult.value);\n }\n return ret;\n };\n\n asArray = function(v) {\n if (es5.isArray(v)) {\n return v;\n } else if (v != null && typeof v[Symbol.iterator] === \"function\") {\n return ArrayFrom(v);\n }\n return null;\n };\n}\n\nvar isNode = typeof process !== \"undefined\" &&\n classString(process).toLowerCase() === \"[object process]\";\n\nvar hasEnvVariables = typeof process !== \"undefined\" &&\n typeof process.env !== \"undefined\";\n\nfunction env(key) {\n return hasEnvVariables ? process.env[key] : undefined;\n}\n\nfunction getNativePromise() {\n if (typeof Promise === \"function\") {\n try {\n var promise = new Promise(function(){});\n if (classString(promise) === \"[object Promise]\") {\n return Promise;\n }\n } catch (e) {}\n }\n}\n\nvar reflectHandler;\nfunction contextBind(ctx, cb) {\n if (ctx === null ||\n typeof cb !== \"function\" ||\n cb === reflectHandler) {\n return cb;\n }\n\n if (ctx.domain !== null) {\n cb = ctx.domain.bind(cb);\n }\n\n var async = ctx.async;\n if (async !== null) {\n var old = cb;\n cb = function() {\n var $_len = arguments.length + 2;var args = new Array($_len); for(var $_i = 2; $_i < $_len ; ++$_i) {args[$_i] = arguments[$_i - 2];};\n args[0] = old;\n args[1] = this;\n return async.runInAsyncScope.apply(async, args);\n };\n }\n return cb;\n}\n\nvar ret = {\n setReflectHandler: function(fn) {\n reflectHandler = fn;\n },\n isClass: isClass,\n isIdentifier: isIdentifier,\n inheritedDataKeys: inheritedDataKeys,\n getDataPropertyOrDefault: getDataPropertyOrDefault,\n thrower: thrower,\n isArray: es5.isArray,\n asArray: asArray,\n notEnumerableProp: notEnumerableProp,\n isPrimitive: isPrimitive,\n isObject: isObject,\n isError: isError,\n canEvaluate: canEvaluate,\n errorObj: errorObj,\n tryCatch: tryCatch,\n inherits: inherits,\n withAppended: withAppended,\n maybeWrapAsError: maybeWrapAsError,\n toFastProperties: toFastProperties,\n filledRange: filledRange,\n toString: safeToString,\n canAttachTrace: canAttachTrace,\n ensureErrorObject: ensureErrorObject,\n originatesFromRejection: originatesFromRejection,\n markAsOriginatingFromRejection: markAsOriginatingFromRejection,\n classString: classString,\n copyDescriptors: copyDescriptors,\n isNode: isNode,\n hasEnvVariables: hasEnvVariables,\n env: env,\n global: globalObject,\n getNativePromise: getNativePromise,\n contextBind: contextBind\n};\nret.isRecentNode = ret.isNode && (function() {\n var version;\n if (process.versions && process.versions.node) {\n version = process.versions.node.split(\".\").map(Number);\n } else if (process.version) {\n version = process.version.split(\".\").map(Number);\n }\n return (version[0] === 0 && version[1] > 10) || (version[0] > 0);\n})();\nret.nodeSupportsAsyncResource = ret.isNode && (function() {\n var supportsAsync = false;\n try {\n var res = require(\"async_hooks\").AsyncResource;\n supportsAsync = typeof res.prototype.runInAsyncScope === \"function\";\n } catch (e) {\n supportsAsync = false;\n }\n return supportsAsync;\n})();\n\nif (ret.isNode) ret.toFastProperties(process);\n\ntry {throw new Error(); } catch (e) {ret.lastLineError = e;}\nmodule.exports = ret;\n","\"use strict\";\nvar util = require(\"./util\");\nvar schedule;\nvar noAsyncScheduler = function() {\n throw new Error(\"No async scheduler available\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n};\nvar NativePromise = util.getNativePromise();\nif (util.isNode && typeof MutationObserver === \"undefined\") {\n var GlobalSetImmediate = global.setImmediate;\n var ProcessNextTick = process.nextTick;\n schedule = util.isRecentNode\n ? function(fn) { GlobalSetImmediate.call(global, fn); }\n : function(fn) { ProcessNextTick.call(process, fn); };\n} else if (typeof NativePromise === \"function\" &&\n typeof NativePromise.resolve === \"function\") {\n var nativePromise = NativePromise.resolve();\n schedule = function(fn) {\n nativePromise.then(fn);\n };\n} else if ((typeof MutationObserver !== \"undefined\") &&\n !(typeof window !== \"undefined\" &&\n window.navigator &&\n (window.navigator.standalone || window.cordova)) &&\n (\"classList\" in document.documentElement)) {\n schedule = (function() {\n var div = document.createElement(\"div\");\n var opts = {attributes: true};\n var toggleScheduled = false;\n var div2 = document.createElement(\"div\");\n var o2 = new MutationObserver(function() {\n div.classList.toggle(\"foo\");\n toggleScheduled = false;\n });\n o2.observe(div2, opts);\n\n var scheduleToggle = function() {\n if (toggleScheduled) return;\n toggleScheduled = true;\n div2.classList.toggle(\"foo\");\n };\n\n return function schedule(fn) {\n var o = new MutationObserver(function() {\n o.disconnect();\n fn();\n });\n o.observe(div, opts);\n scheduleToggle();\n };\n })();\n} else if (typeof setImmediate !== \"undefined\") {\n schedule = function (fn) {\n setImmediate(fn);\n };\n} else if (typeof setTimeout !== \"undefined\") {\n schedule = function (fn) {\n setTimeout(fn, 0);\n };\n} else {\n schedule = noAsyncScheduler;\n}\nmodule.exports = schedule;\n","\"use strict\";\nfunction arrayMove(src, srcIndex, dst, dstIndex, len) {\n for (var j = 0; j < len; ++j) {\n dst[j + dstIndex] = src[j + srcIndex];\n src[j + srcIndex] = void 0;\n }\n}\n\nfunction Queue(capacity) {\n this._capacity = capacity;\n this._length = 0;\n this._front = 0;\n}\n\nQueue.prototype._willBeOverCapacity = function (size) {\n return this._capacity < size;\n};\n\nQueue.prototype._pushOne = function (arg) {\n var length = this.length();\n this._checkCapacity(length + 1);\n var i = (this._front + length) & (this._capacity - 1);\n this[i] = arg;\n this._length = length + 1;\n};\n\nQueue.prototype.push = function (fn, receiver, arg) {\n var length = this.length() + 3;\n if (this._willBeOverCapacity(length)) {\n this._pushOne(fn);\n this._pushOne(receiver);\n this._pushOne(arg);\n return;\n }\n var j = this._front + length - 3;\n this._checkCapacity(length);\n var wrapMask = this._capacity - 1;\n this[(j + 0) & wrapMask] = fn;\n this[(j + 1) & wrapMask] = receiver;\n this[(j + 2) & wrapMask] = arg;\n this._length = length;\n};\n\nQueue.prototype.shift = function () {\n var front = this._front,\n ret = this[front];\n\n this[front] = undefined;\n this._front = (front + 1) & (this._capacity - 1);\n this._length--;\n return ret;\n};\n\nQueue.prototype.length = function () {\n return this._length;\n};\n\nQueue.prototype._checkCapacity = function (size) {\n if (this._capacity < size) {\n this._resizeTo(this._capacity << 1);\n }\n};\n\nQueue.prototype._resizeTo = function (capacity) {\n var oldCapacity = this._capacity;\n this._capacity = capacity;\n var front = this._front;\n var length = this._length;\n var moveItemsCount = (front + length) & (oldCapacity - 1);\n arrayMove(this, 0, this, oldCapacity, moveItemsCount);\n};\n\nmodule.exports = Queue;\n","\"use strict\";\nvar firstLineError;\ntry {throw new Error(); } catch (e) {firstLineError = e;}\nvar schedule = require(\"./schedule\");\nvar Queue = require(\"./queue\");\n\nfunction Async() {\n this._customScheduler = false;\n this._isTickUsed = false;\n this._lateQueue = new Queue(16);\n this._normalQueue = new Queue(16);\n this._haveDrainedQueues = false;\n var self = this;\n this.drainQueues = function () {\n self._drainQueues();\n };\n this._schedule = schedule;\n}\n\nAsync.prototype.setScheduler = function(fn) {\n var prev = this._schedule;\n this._schedule = fn;\n this._customScheduler = true;\n return prev;\n};\n\nAsync.prototype.hasCustomScheduler = function() {\n return this._customScheduler;\n};\n\nAsync.prototype.haveItemsQueued = function () {\n return this._isTickUsed || this._haveDrainedQueues;\n};\n\n\nAsync.prototype.fatalError = function(e, isNode) {\n if (isNode) {\n process.stderr.write(\"Fatal \" + (e instanceof Error ? e.stack : e) +\n \"\\n\");\n process.exit(2);\n } else {\n this.throwLater(e);\n }\n};\n\nAsync.prototype.throwLater = function(fn, arg) {\n if (arguments.length === 1) {\n arg = fn;\n fn = function () { throw arg; };\n }\n if (typeof setTimeout !== \"undefined\") {\n setTimeout(function() {\n fn(arg);\n }, 0);\n } else try {\n this._schedule(function() {\n fn(arg);\n });\n } catch (e) {\n throw new Error(\"No async scheduler available\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n }\n};\n\nfunction AsyncInvokeLater(fn, receiver, arg) {\n this._lateQueue.push(fn, receiver, arg);\n this._queueTick();\n}\n\nfunction AsyncInvoke(fn, receiver, arg) {\n this._normalQueue.push(fn, receiver, arg);\n this._queueTick();\n}\n\nfunction AsyncSettlePromises(promise) {\n this._normalQueue._pushOne(promise);\n this._queueTick();\n}\n\nAsync.prototype.invokeLater = AsyncInvokeLater;\nAsync.prototype.invoke = AsyncInvoke;\nAsync.prototype.settlePromises = AsyncSettlePromises;\n\n\nfunction _drainQueue(queue) {\n while (queue.length() > 0) {\n _drainQueueStep(queue);\n }\n}\n\nfunction _drainQueueStep(queue) {\n var fn = queue.shift();\n if (typeof fn !== \"function\") {\n fn._settlePromises();\n } else {\n var receiver = queue.shift();\n var arg = queue.shift();\n fn.call(receiver, arg);\n }\n}\n\nAsync.prototype._drainQueues = function () {\n _drainQueue(this._normalQueue);\n this._reset();\n this._haveDrainedQueues = true;\n _drainQueue(this._lateQueue);\n};\n\nAsync.prototype._queueTick = function () {\n if (!this._isTickUsed) {\n this._isTickUsed = true;\n this._schedule(this.drainQueues);\n }\n};\n\nAsync.prototype._reset = function () {\n this._isTickUsed = false;\n};\n\nmodule.exports = Async;\nmodule.exports.firstLineError = firstLineError;\n","\"use strict\";\nvar es5 = require(\"./es5\");\nvar Objectfreeze = es5.freeze;\nvar util = require(\"./util\");\nvar inherits = util.inherits;\nvar notEnumerableProp = util.notEnumerableProp;\n\nfunction subError(nameProperty, defaultMessage) {\n function SubError(message) {\n if (!(this instanceof SubError)) return new SubError(message);\n notEnumerableProp(this, \"message\",\n typeof message === \"string\" ? message : defaultMessage);\n notEnumerableProp(this, \"name\", nameProperty);\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n Error.call(this);\n }\n }\n inherits(SubError, Error);\n return SubError;\n}\n\nvar _TypeError, _RangeError;\nvar Warning = subError(\"Warning\", \"warning\");\nvar CancellationError = subError(\"CancellationError\", \"cancellation error\");\nvar TimeoutError = subError(\"TimeoutError\", \"timeout error\");\nvar AggregateError = subError(\"AggregateError\", \"aggregate error\");\ntry {\n _TypeError = TypeError;\n _RangeError = RangeError;\n} catch(e) {\n _TypeError = subError(\"TypeError\", \"type error\");\n _RangeError = subError(\"RangeError\", \"range error\");\n}\n\nvar methods = (\"join pop push shift unshift slice filter forEach some \" +\n \"every map indexOf lastIndexOf reduce reduceRight sort reverse\").split(\" \");\n\nfor (var i = 0; i < methods.length; ++i) {\n if (typeof Array.prototype[methods[i]] === \"function\") {\n AggregateError.prototype[methods[i]] = Array.prototype[methods[i]];\n }\n}\n\nes5.defineProperty(AggregateError.prototype, \"length\", {\n value: 0,\n configurable: false,\n writable: true,\n enumerable: true\n});\nAggregateError.prototype[\"isOperational\"] = true;\nvar level = 0;\nAggregateError.prototype.toString = function() {\n var indent = Array(level * 4 + 1).join(\" \");\n var ret = \"\\n\" + indent + \"AggregateError of:\" + \"\\n\";\n level++;\n indent = Array(level * 4 + 1).join(\" \");\n for (var i = 0; i < this.length; ++i) {\n var str = this[i] === this ? \"[Circular AggregateError]\" : this[i] + \"\";\n var lines = str.split(\"\\n\");\n for (var j = 0; j < lines.length; ++j) {\n lines[j] = indent + lines[j];\n }\n str = lines.join(\"\\n\");\n ret += str + \"\\n\";\n }\n level--;\n return ret;\n};\n\nfunction OperationalError(message) {\n if (!(this instanceof OperationalError))\n return new OperationalError(message);\n notEnumerableProp(this, \"name\", \"OperationalError\");\n notEnumerableProp(this, \"message\", message);\n this.cause = message;\n this[\"isOperational\"] = true;\n\n if (message instanceof Error) {\n notEnumerableProp(this, \"message\", message.message);\n notEnumerableProp(this, \"stack\", message.stack);\n } else if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n\n}\ninherits(OperationalError, Error);\n\nvar errorTypes = Error[\"__BluebirdErrorTypes__\"];\nif (!errorTypes) {\n errorTypes = Objectfreeze({\n CancellationError: CancellationError,\n TimeoutError: TimeoutError,\n OperationalError: OperationalError,\n RejectionError: OperationalError,\n AggregateError: AggregateError\n });\n es5.defineProperty(Error, \"__BluebirdErrorTypes__\", {\n value: errorTypes,\n writable: false,\n enumerable: false,\n configurable: false\n });\n}\n\nmodule.exports = {\n Error: Error,\n TypeError: _TypeError,\n RangeError: _RangeError,\n CancellationError: errorTypes.CancellationError,\n OperationalError: errorTypes.OperationalError,\n TimeoutError: errorTypes.TimeoutError,\n AggregateError: errorTypes.AggregateError,\n Warning: Warning\n};\n","\"use strict\";\nmodule.exports = function(Promise, INTERNAL) {\nvar util = require(\"./util\");\nvar errorObj = util.errorObj;\nvar isObject = util.isObject;\n\nfunction tryConvertToPromise(obj, context) {\n if (isObject(obj)) {\n if (obj instanceof Promise) return obj;\n var then = getThen(obj);\n if (then === errorObj) {\n if (context) context._pushContext();\n var ret = Promise.reject(then.e);\n if (context) context._popContext();\n return ret;\n } else if (typeof then === \"function\") {\n if (isAnyBluebirdPromise(obj)) {\n var ret = new Promise(INTERNAL);\n obj._then(\n ret._fulfill,\n ret._reject,\n undefined,\n ret,\n null\n );\n return ret;\n }\n return doThenable(obj, then, context);\n }\n }\n return obj;\n}\n\nfunction doGetThen(obj) {\n return obj.then;\n}\n\nfunction getThen(obj) {\n try {\n return doGetThen(obj);\n } catch (e) {\n errorObj.e = e;\n return errorObj;\n }\n}\n\nvar hasProp = {}.hasOwnProperty;\nfunction isAnyBluebirdPromise(obj) {\n try {\n return hasProp.call(obj, \"_promise0\");\n } catch (e) {\n return false;\n }\n}\n\nfunction doThenable(x, then, context) {\n var promise = new Promise(INTERNAL);\n var ret = promise;\n if (context) context._pushContext();\n promise._captureStackTrace();\n if (context) context._popContext();\n var synchronous = true;\n var result = util.tryCatch(then).call(x, resolve, reject);\n synchronous = false;\n\n if (promise && result === errorObj) {\n promise._rejectCallback(result.e, true, true);\n promise = null;\n }\n\n function resolve(value) {\n if (!promise) return;\n promise._resolveCallback(value);\n promise = null;\n }\n\n function reject(reason) {\n if (!promise) return;\n promise._rejectCallback(reason, synchronous, true);\n promise = null;\n }\n return ret;\n}\n\nreturn tryConvertToPromise;\n};\n","\"use strict\";\nmodule.exports = function(Promise, INTERNAL, tryConvertToPromise,\n apiRejection, Proxyable) {\nvar util = require(\"./util\");\nvar isArray = util.isArray;\n\nfunction toResolutionValue(val) {\n switch(val) {\n case -2: return [];\n case -3: return {};\n case -6: return new Map();\n }\n}\n\nfunction PromiseArray(values) {\n var promise = this._promise = new Promise(INTERNAL);\n if (values instanceof Promise) {\n promise._propagateFrom(values, 3);\n values.suppressUnhandledRejections();\n }\n promise._setOnCancel(this);\n this._values = values;\n this._length = 0;\n this._totalResolved = 0;\n this._init(undefined, -2);\n}\nutil.inherits(PromiseArray, Proxyable);\n\nPromiseArray.prototype.length = function () {\n return this._length;\n};\n\nPromiseArray.prototype.promise = function () {\n return this._promise;\n};\n\nPromiseArray.prototype._init = function init(_, resolveValueIfEmpty) {\n var values = tryConvertToPromise(this._values, this._promise);\n if (values instanceof Promise) {\n values = values._target();\n var bitField = values._bitField;\n ;\n this._values = values;\n\n if (((bitField & 50397184) === 0)) {\n this._promise._setAsyncGuaranteed();\n return values._then(\n init,\n this._reject,\n undefined,\n this,\n resolveValueIfEmpty\n );\n } else if (((bitField & 33554432) !== 0)) {\n values = values._value();\n } else if (((bitField & 16777216) !== 0)) {\n return this._reject(values._reason());\n } else {\n return this._cancel();\n }\n }\n values = util.asArray(values);\n if (values === null) {\n var err = apiRejection(\n \"expecting an array or an iterable object but got \" + util.classString(values)).reason();\n this._promise._rejectCallback(err, false);\n return;\n }\n\n if (values.length === 0) {\n if (resolveValueIfEmpty === -5) {\n this._resolveEmptyArray();\n }\n else {\n this._resolve(toResolutionValue(resolveValueIfEmpty));\n }\n return;\n }\n this._iterate(values);\n};\n\nPromiseArray.prototype._iterate = function(values) {\n var len = this.getActualLength(values.length);\n this._length = len;\n this._values = this.shouldCopyValues() ? new Array(len) : this._values;\n var result = this._promise;\n var isResolved = false;\n var bitField = null;\n for (var i = 0; i < len; ++i) {\n var maybePromise = tryConvertToPromise(values[i], result);\n\n if (maybePromise instanceof Promise) {\n maybePromise = maybePromise._target();\n bitField = maybePromise._bitField;\n } else {\n bitField = null;\n }\n\n if (isResolved) {\n if (bitField !== null) {\n maybePromise.suppressUnhandledRejections();\n }\n } else if (bitField !== null) {\n if (((bitField & 50397184) === 0)) {\n maybePromise._proxy(this, i);\n this._values[i] = maybePromise;\n } else if (((bitField & 33554432) !== 0)) {\n isResolved = this._promiseFulfilled(maybePromise._value(), i);\n } else if (((bitField & 16777216) !== 0)) {\n isResolved = this._promiseRejected(maybePromise._reason(), i);\n } else {\n isResolved = this._promiseCancelled(i);\n }\n } else {\n isResolved = this._promiseFulfilled(maybePromise, i);\n }\n }\n if (!isResolved) result._setAsyncGuaranteed();\n};\n\nPromiseArray.prototype._isResolved = function () {\n return this._values === null;\n};\n\nPromiseArray.prototype._resolve = function (value) {\n this._values = null;\n this._promise._fulfill(value);\n};\n\nPromiseArray.prototype._cancel = function() {\n if (this._isResolved() || !this._promise._isCancellable()) return;\n this._values = null;\n this._promise._cancel();\n};\n\nPromiseArray.prototype._reject = function (reason) {\n this._values = null;\n this._promise._rejectCallback(reason, false);\n};\n\nPromiseArray.prototype._promiseFulfilled = function (value, index) {\n this._values[index] = value;\n var totalResolved = ++this._totalResolved;\n if (totalResolved >= this._length) {\n this._resolve(this._values);\n return true;\n }\n return false;\n};\n\nPromiseArray.prototype._promiseCancelled = function() {\n this._cancel();\n return true;\n};\n\nPromiseArray.prototype._promiseRejected = function (reason) {\n this._totalResolved++;\n this._reject(reason);\n return true;\n};\n\nPromiseArray.prototype._resultCancelled = function() {\n if (this._isResolved()) return;\n var values = this._values;\n this._cancel();\n if (values instanceof Promise) {\n values.cancel();\n } else {\n for (var i = 0; i < values.length; ++i) {\n if (values[i] instanceof Promise) {\n values[i].cancel();\n }\n }\n }\n};\n\nPromiseArray.prototype.shouldCopyValues = function () {\n return true;\n};\n\nPromiseArray.prototype.getActualLength = function (len) {\n return len;\n};\n\nreturn PromiseArray;\n};\n","\"use strict\";\nmodule.exports = function(Promise) {\nvar longStackTraces = false;\nvar contextStack = [];\n\nPromise.prototype._promiseCreated = function() {};\nPromise.prototype._pushContext = function() {};\nPromise.prototype._popContext = function() {return null;};\nPromise._peekContext = Promise.prototype._peekContext = function() {};\n\nfunction Context() {\n this._trace = new Context.CapturedTrace(peekContext());\n}\nContext.prototype._pushContext = function () {\n if (this._trace !== undefined) {\n this._trace._promiseCreated = null;\n contextStack.push(this._trace);\n }\n};\n\nContext.prototype._popContext = function () {\n if (this._trace !== undefined) {\n var trace = contextStack.pop();\n var ret = trace._promiseCreated;\n trace._promiseCreated = null;\n return ret;\n }\n return null;\n};\n\nfunction createContext() {\n if (longStackTraces) return new Context();\n}\n\nfunction peekContext() {\n var lastIndex = contextStack.length - 1;\n if (lastIndex >= 0) {\n return contextStack[lastIndex];\n }\n return undefined;\n}\nContext.CapturedTrace = null;\nContext.create = createContext;\nContext.deactivateLongStackTraces = function() {};\nContext.activateLongStackTraces = function() {\n var Promise_pushContext = Promise.prototype._pushContext;\n var Promise_popContext = Promise.prototype._popContext;\n var Promise_PeekContext = Promise._peekContext;\n var Promise_peekContext = Promise.prototype._peekContext;\n var Promise_promiseCreated = Promise.prototype._promiseCreated;\n Context.deactivateLongStackTraces = function() {\n Promise.prototype._pushContext = Promise_pushContext;\n Promise.prototype._popContext = Promise_popContext;\n Promise._peekContext = Promise_PeekContext;\n Promise.prototype._peekContext = Promise_peekContext;\n Promise.prototype._promiseCreated = Promise_promiseCreated;\n longStackTraces = false;\n };\n longStackTraces = true;\n Promise.prototype._pushContext = Context.prototype._pushContext;\n Promise.prototype._popContext = Context.prototype._popContext;\n Promise._peekContext = Promise.prototype._peekContext = peekContext;\n Promise.prototype._promiseCreated = function() {\n var ctx = this._peekContext();\n if (ctx && ctx._promiseCreated == null) ctx._promiseCreated = this;\n };\n};\nreturn Context;\n};\n","\"use strict\";\nmodule.exports = function(Promise, Context,\n enableAsyncHooks, disableAsyncHooks) {\nvar async = Promise._async;\nvar Warning = require(\"./errors\").Warning;\nvar util = require(\"./util\");\nvar es5 = require(\"./es5\");\nvar canAttachTrace = util.canAttachTrace;\nvar unhandledRejectionHandled;\nvar possiblyUnhandledRejection;\nvar bluebirdFramePattern =\n /[\\\\\\/]bluebird[\\\\\\/]js[\\\\\\/](release|debug|instrumented)/;\nvar nodeFramePattern = /\\((?:timers\\.js):\\d+:\\d+\\)/;\nvar parseLinePattern = /[\\/<\\(](.+?):(\\d+):(\\d+)\\)?\\s*$/;\nvar stackFramePattern = null;\nvar formatStack = null;\nvar indentStackFrames = false;\nvar printWarning;\nvar debugging = !!(util.env(\"BLUEBIRD_DEBUG\") != 0 &&\n (false ||\n util.env(\"BLUEBIRD_DEBUG\") ||\n util.env(\"NODE_ENV\") === \"development\"));\n\nvar warnings = !!(util.env(\"BLUEBIRD_WARNINGS\") != 0 &&\n (debugging || util.env(\"BLUEBIRD_WARNINGS\")));\n\nvar longStackTraces = !!(util.env(\"BLUEBIRD_LONG_STACK_TRACES\") != 0 &&\n (debugging || util.env(\"BLUEBIRD_LONG_STACK_TRACES\")));\n\nvar wForgottenReturn = util.env(\"BLUEBIRD_W_FORGOTTEN_RETURN\") != 0 &&\n (warnings || !!util.env(\"BLUEBIRD_W_FORGOTTEN_RETURN\"));\n\nvar deferUnhandledRejectionCheck;\n(function() {\n var promises = [];\n\n function unhandledRejectionCheck() {\n for (var i = 0; i < promises.length; ++i) {\n promises[i]._notifyUnhandledRejection();\n }\n unhandledRejectionClear();\n }\n\n function unhandledRejectionClear() {\n promises.length = 0;\n }\n\n deferUnhandledRejectionCheck = function(promise) {\n promises.push(promise);\n setTimeout(unhandledRejectionCheck, 1);\n };\n\n es5.defineProperty(Promise, \"_unhandledRejectionCheck\", {\n value: unhandledRejectionCheck\n });\n es5.defineProperty(Promise, \"_unhandledRejectionClear\", {\n value: unhandledRejectionClear\n });\n})();\n\nPromise.prototype.suppressUnhandledRejections = function() {\n var target = this._target();\n target._bitField = ((target._bitField & (~1048576)) |\n 524288);\n};\n\nPromise.prototype._ensurePossibleRejectionHandled = function () {\n if ((this._bitField & 524288) !== 0) return;\n this._setRejectionIsUnhandled();\n deferUnhandledRejectionCheck(this);\n};\n\nPromise.prototype._notifyUnhandledRejectionIsHandled = function () {\n fireRejectionEvent(\"rejectionHandled\",\n unhandledRejectionHandled, undefined, this);\n};\n\nPromise.prototype._setReturnedNonUndefined = function() {\n this._bitField = this._bitField | 268435456;\n};\n\nPromise.prototype._returnedNonUndefined = function() {\n return (this._bitField & 268435456) !== 0;\n};\n\nPromise.prototype._notifyUnhandledRejection = function () {\n if (this._isRejectionUnhandled()) {\n var reason = this._settledValue();\n this._setUnhandledRejectionIsNotified();\n fireRejectionEvent(\"unhandledRejection\",\n possiblyUnhandledRejection, reason, this);\n }\n};\n\nPromise.prototype._setUnhandledRejectionIsNotified = function () {\n this._bitField = this._bitField | 262144;\n};\n\nPromise.prototype._unsetUnhandledRejectionIsNotified = function () {\n this._bitField = this._bitField & (~262144);\n};\n\nPromise.prototype._isUnhandledRejectionNotified = function () {\n return (this._bitField & 262144) > 0;\n};\n\nPromise.prototype._setRejectionIsUnhandled = function () {\n this._bitField = this._bitField | 1048576;\n};\n\nPromise.prototype._unsetRejectionIsUnhandled = function () {\n this._bitField = this._bitField & (~1048576);\n if (this._isUnhandledRejectionNotified()) {\n this._unsetUnhandledRejectionIsNotified();\n this._notifyUnhandledRejectionIsHandled();\n }\n};\n\nPromise.prototype._isRejectionUnhandled = function () {\n return (this._bitField & 1048576) > 0;\n};\n\nPromise.prototype._warn = function(message, shouldUseOwnTrace, promise) {\n return warn(message, shouldUseOwnTrace, promise || this);\n};\n\nPromise.onPossiblyUnhandledRejection = function (fn) {\n var context = Promise._getContext();\n possiblyUnhandledRejection = util.contextBind(context, fn);\n};\n\nPromise.onUnhandledRejectionHandled = function (fn) {\n var context = Promise._getContext();\n unhandledRejectionHandled = util.contextBind(context, fn);\n};\n\nvar disableLongStackTraces = function() {};\nPromise.longStackTraces = function () {\n if (async.haveItemsQueued() && !config.longStackTraces) {\n throw new Error(\"cannot enable long stack traces after promises have been created\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n }\n if (!config.longStackTraces && longStackTracesIsSupported()) {\n var Promise_captureStackTrace = Promise.prototype._captureStackTrace;\n var Promise_attachExtraTrace = Promise.prototype._attachExtraTrace;\n var Promise_dereferenceTrace = Promise.prototype._dereferenceTrace;\n config.longStackTraces = true;\n disableLongStackTraces = function() {\n if (async.haveItemsQueued() && !config.longStackTraces) {\n throw new Error(\"cannot enable long stack traces after promises have been created\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n }\n Promise.prototype._captureStackTrace = Promise_captureStackTrace;\n Promise.prototype._attachExtraTrace = Promise_attachExtraTrace;\n Promise.prototype._dereferenceTrace = Promise_dereferenceTrace;\n Context.deactivateLongStackTraces();\n config.longStackTraces = false;\n };\n Promise.prototype._captureStackTrace = longStackTracesCaptureStackTrace;\n Promise.prototype._attachExtraTrace = longStackTracesAttachExtraTrace;\n Promise.prototype._dereferenceTrace = longStackTracesDereferenceTrace;\n Context.activateLongStackTraces();\n }\n};\n\nPromise.hasLongStackTraces = function () {\n return config.longStackTraces && longStackTracesIsSupported();\n};\n\n\nvar legacyHandlers = {\n unhandledrejection: {\n before: function() {\n var ret = util.global.onunhandledrejection;\n util.global.onunhandledrejection = null;\n return ret;\n },\n after: function(fn) {\n util.global.onunhandledrejection = fn;\n }\n },\n rejectionhandled: {\n before: function() {\n var ret = util.global.onrejectionhandled;\n util.global.onrejectionhandled = null;\n return ret;\n },\n after: function(fn) {\n util.global.onrejectionhandled = fn;\n }\n }\n};\n\nvar fireDomEvent = (function() {\n var dispatch = function(legacy, e) {\n if (legacy) {\n var fn;\n try {\n fn = legacy.before();\n return !util.global.dispatchEvent(e);\n } finally {\n legacy.after(fn);\n }\n } else {\n return !util.global.dispatchEvent(e);\n }\n };\n try {\n if (typeof CustomEvent === \"function\") {\n var event = new CustomEvent(\"CustomEvent\");\n util.global.dispatchEvent(event);\n return function(name, event) {\n name = name.toLowerCase();\n var eventData = {\n detail: event,\n cancelable: true\n };\n var domEvent = new CustomEvent(name, eventData);\n es5.defineProperty(\n domEvent, \"promise\", {value: event.promise});\n es5.defineProperty(\n domEvent, \"reason\", {value: event.reason});\n\n return dispatch(legacyHandlers[name], domEvent);\n };\n } else if (typeof Event === \"function\") {\n var event = new Event(\"CustomEvent\");\n util.global.dispatchEvent(event);\n return function(name, event) {\n name = name.toLowerCase();\n var domEvent = new Event(name, {\n cancelable: true\n });\n domEvent.detail = event;\n es5.defineProperty(domEvent, \"promise\", {value: event.promise});\n es5.defineProperty(domEvent, \"reason\", {value: event.reason});\n return dispatch(legacyHandlers[name], domEvent);\n };\n } else {\n var event = document.createEvent(\"CustomEvent\");\n event.initCustomEvent(\"testingtheevent\", false, true, {});\n util.global.dispatchEvent(event);\n return function(name, event) {\n name = name.toLowerCase();\n var domEvent = document.createEvent(\"CustomEvent\");\n domEvent.initCustomEvent(name, false, true,\n event);\n return dispatch(legacyHandlers[name], domEvent);\n };\n }\n } catch (e) {}\n return function() {\n return false;\n };\n})();\n\nvar fireGlobalEvent = (function() {\n if (util.isNode) {\n return function() {\n return process.emit.apply(process, arguments);\n };\n } else {\n if (!util.global) {\n return function() {\n return false;\n };\n }\n return function(name) {\n var methodName = \"on\" + name.toLowerCase();\n var method = util.global[methodName];\n if (!method) return false;\n method.apply(util.global, [].slice.call(arguments, 1));\n return true;\n };\n }\n})();\n\nfunction generatePromiseLifecycleEventObject(name, promise) {\n return {promise: promise};\n}\n\nvar eventToObjectGenerator = {\n promiseCreated: generatePromiseLifecycleEventObject,\n promiseFulfilled: generatePromiseLifecycleEventObject,\n promiseRejected: generatePromiseLifecycleEventObject,\n promiseResolved: generatePromiseLifecycleEventObject,\n promiseCancelled: generatePromiseLifecycleEventObject,\n promiseChained: function(name, promise, child) {\n return {promise: promise, child: child};\n },\n warning: function(name, warning) {\n return {warning: warning};\n },\n unhandledRejection: function (name, reason, promise) {\n return {reason: reason, promise: promise};\n },\n rejectionHandled: generatePromiseLifecycleEventObject\n};\n\nvar activeFireEvent = function (name) {\n var globalEventFired = false;\n try {\n globalEventFired = fireGlobalEvent.apply(null, arguments);\n } catch (e) {\n async.throwLater(e);\n globalEventFired = true;\n }\n\n var domEventFired = false;\n try {\n domEventFired = fireDomEvent(name,\n eventToObjectGenerator[name].apply(null, arguments));\n } catch (e) {\n async.throwLater(e);\n domEventFired = true;\n }\n\n return domEventFired || globalEventFired;\n};\n\nPromise.config = function(opts) {\n opts = Object(opts);\n if (\"longStackTraces\" in opts) {\n if (opts.longStackTraces) {\n Promise.longStackTraces();\n } else if (!opts.longStackTraces && Promise.hasLongStackTraces()) {\n disableLongStackTraces();\n }\n }\n if (\"warnings\" in opts) {\n var warningsOption = opts.warnings;\n config.warnings = !!warningsOption;\n wForgottenReturn = config.warnings;\n\n if (util.isObject(warningsOption)) {\n if (\"wForgottenReturn\" in warningsOption) {\n wForgottenReturn = !!warningsOption.wForgottenReturn;\n }\n }\n }\n if (\"cancellation\" in opts && opts.cancellation && !config.cancellation) {\n if (async.haveItemsQueued()) {\n throw new Error(\n \"cannot enable cancellation after promises are in use\");\n }\n Promise.prototype._clearCancellationData =\n cancellationClearCancellationData;\n Promise.prototype._propagateFrom = cancellationPropagateFrom;\n Promise.prototype._onCancel = cancellationOnCancel;\n Promise.prototype._setOnCancel = cancellationSetOnCancel;\n Promise.prototype._attachCancellationCallback =\n cancellationAttachCancellationCallback;\n Promise.prototype._execute = cancellationExecute;\n propagateFromFunction = cancellationPropagateFrom;\n config.cancellation = true;\n }\n if (\"monitoring\" in opts) {\n if (opts.monitoring && !config.monitoring) {\n config.monitoring = true;\n Promise.prototype._fireEvent = activeFireEvent;\n } else if (!opts.monitoring && config.monitoring) {\n config.monitoring = false;\n Promise.prototype._fireEvent = defaultFireEvent;\n }\n }\n if (\"asyncHooks\" in opts && util.nodeSupportsAsyncResource) {\n var prev = config.asyncHooks;\n var cur = !!opts.asyncHooks;\n if (prev !== cur) {\n config.asyncHooks = cur;\n if (cur) {\n enableAsyncHooks();\n } else {\n disableAsyncHooks();\n }\n }\n }\n return Promise;\n};\n\nfunction defaultFireEvent() { return false; }\n\nPromise.prototype._fireEvent = defaultFireEvent;\nPromise.prototype._execute = function(executor, resolve, reject) {\n try {\n executor(resolve, reject);\n } catch (e) {\n return e;\n }\n};\nPromise.prototype._onCancel = function () {};\nPromise.prototype._setOnCancel = function (handler) { ; };\nPromise.prototype._attachCancellationCallback = function(onCancel) {\n ;\n};\nPromise.prototype._captureStackTrace = function () {};\nPromise.prototype._attachExtraTrace = function () {};\nPromise.prototype._dereferenceTrace = function () {};\nPromise.prototype._clearCancellationData = function() {};\nPromise.prototype._propagateFrom = function (parent, flags) {\n ;\n ;\n};\n\nfunction cancellationExecute(executor, resolve, reject) {\n var promise = this;\n try {\n executor(resolve, reject, function(onCancel) {\n if (typeof onCancel !== \"function\") {\n throw new TypeError(\"onCancel must be a function, got: \" +\n util.toString(onCancel));\n }\n promise._attachCancellationCallback(onCancel);\n });\n } catch (e) {\n return e;\n }\n}\n\nfunction cancellationAttachCancellationCallback(onCancel) {\n if (!this._isCancellable()) return this;\n\n var previousOnCancel = this._onCancel();\n if (previousOnCancel !== undefined) {\n if (util.isArray(previousOnCancel)) {\n previousOnCancel.push(onCancel);\n } else {\n this._setOnCancel([previousOnCancel, onCancel]);\n }\n } else {\n this._setOnCancel(onCancel);\n }\n}\n\nfunction cancellationOnCancel() {\n return this._onCancelField;\n}\n\nfunction cancellationSetOnCancel(onCancel) {\n this._onCancelField = onCancel;\n}\n\nfunction cancellationClearCancellationData() {\n this._cancellationParent = undefined;\n this._onCancelField = undefined;\n}\n\nfunction cancellationPropagateFrom(parent, flags) {\n if ((flags & 1) !== 0) {\n this._cancellationParent = parent;\n var branchesRemainingToCancel = parent._branchesRemainingToCancel;\n if (branchesRemainingToCancel === undefined) {\n branchesRemainingToCancel = 0;\n }\n parent._branchesRemainingToCancel = branchesRemainingToCancel + 1;\n }\n if ((flags & 2) !== 0 && parent._isBound()) {\n this._setBoundTo(parent._boundTo);\n }\n}\n\nfunction bindingPropagateFrom(parent, flags) {\n if ((flags & 2) !== 0 && parent._isBound()) {\n this._setBoundTo(parent._boundTo);\n }\n}\nvar propagateFromFunction = bindingPropagateFrom;\n\nfunction boundValueFunction() {\n var ret = this._boundTo;\n if (ret !== undefined) {\n if (ret instanceof Promise) {\n if (ret.isFulfilled()) {\n return ret.value();\n } else {\n return undefined;\n }\n }\n }\n return ret;\n}\n\nfunction longStackTracesCaptureStackTrace() {\n this._trace = new CapturedTrace(this._peekContext());\n}\n\nfunction longStackTracesAttachExtraTrace(error, ignoreSelf) {\n if (canAttachTrace(error)) {\n var trace = this._trace;\n if (trace !== undefined) {\n if (ignoreSelf) trace = trace._parent;\n }\n if (trace !== undefined) {\n trace.attachExtraTrace(error);\n } else if (!error.__stackCleaned__) {\n var parsed = parseStackAndMessage(error);\n util.notEnumerableProp(error, \"stack\",\n parsed.message + \"\\n\" + parsed.stack.join(\"\\n\"));\n util.notEnumerableProp(error, \"__stackCleaned__\", true);\n }\n }\n}\n\nfunction longStackTracesDereferenceTrace() {\n this._trace = undefined;\n}\n\nfunction checkForgottenReturns(returnValue, promiseCreated, name, promise,\n parent) {\n if (returnValue === undefined && promiseCreated !== null &&\n wForgottenReturn) {\n if (parent !== undefined && parent._returnedNonUndefined()) return;\n if ((promise._bitField & 65535) === 0) return;\n\n if (name) name = name + \" \";\n var handlerLine = \"\";\n var creatorLine = \"\";\n if (promiseCreated._trace) {\n var traceLines = promiseCreated._trace.stack.split(\"\\n\");\n var stack = cleanStack(traceLines);\n for (var i = stack.length - 1; i >= 0; --i) {\n var line = stack[i];\n if (!nodeFramePattern.test(line)) {\n var lineMatches = line.match(parseLinePattern);\n if (lineMatches) {\n handlerLine = \"at \" + lineMatches[1] +\n \":\" + lineMatches[2] + \":\" + lineMatches[3] + \" \";\n }\n break;\n }\n }\n\n if (stack.length > 0) {\n var firstUserLine = stack[0];\n for (var i = 0; i < traceLines.length; ++i) {\n\n if (traceLines[i] === firstUserLine) {\n if (i > 0) {\n creatorLine = \"\\n\" + traceLines[i - 1];\n }\n break;\n }\n }\n\n }\n }\n var msg = \"a promise was created in a \" + name +\n \"handler \" + handlerLine + \"but was not returned from it, \" +\n \"see http://goo.gl/rRqMUw\" +\n creatorLine;\n promise._warn(msg, true, promiseCreated);\n }\n}\n\nfunction deprecated(name, replacement) {\n var message = name +\n \" is deprecated and will be removed in a future version.\";\n if (replacement) message += \" Use \" + replacement + \" instead.\";\n return warn(message);\n}\n\nfunction warn(message, shouldUseOwnTrace, promise) {\n if (!config.warnings) return;\n var warning = new Warning(message);\n var ctx;\n if (shouldUseOwnTrace) {\n promise._attachExtraTrace(warning);\n } else if (config.longStackTraces && (ctx = Promise._peekContext())) {\n ctx.attachExtraTrace(warning);\n } else {\n var parsed = parseStackAndMessage(warning);\n warning.stack = parsed.message + \"\\n\" + parsed.stack.join(\"\\n\");\n }\n\n if (!activeFireEvent(\"warning\", warning)) {\n formatAndLogError(warning, \"\", true);\n }\n}\n\nfunction reconstructStack(message, stacks) {\n for (var i = 0; i < stacks.length - 1; ++i) {\n stacks[i].push(\"From previous event:\");\n stacks[i] = stacks[i].join(\"\\n\");\n }\n if (i < stacks.length) {\n stacks[i] = stacks[i].join(\"\\n\");\n }\n return message + \"\\n\" + stacks.join(\"\\n\");\n}\n\nfunction removeDuplicateOrEmptyJumps(stacks) {\n for (var i = 0; i < stacks.length; ++i) {\n if (stacks[i].length === 0 ||\n ((i + 1 < stacks.length) && stacks[i][0] === stacks[i+1][0])) {\n stacks.splice(i, 1);\n i--;\n }\n }\n}\n\nfunction removeCommonRoots(stacks) {\n var current = stacks[0];\n for (var i = 1; i < stacks.length; ++i) {\n var prev = stacks[i];\n var currentLastIndex = current.length - 1;\n var currentLastLine = current[currentLastIndex];\n var commonRootMeetPoint = -1;\n\n for (var j = prev.length - 1; j >= 0; --j) {\n if (prev[j] === currentLastLine) {\n commonRootMeetPoint = j;\n break;\n }\n }\n\n for (var j = commonRootMeetPoint; j >= 0; --j) {\n var line = prev[j];\n if (current[currentLastIndex] === line) {\n current.pop();\n currentLastIndex--;\n } else {\n break;\n }\n }\n current = prev;\n }\n}\n\nfunction cleanStack(stack) {\n var ret = [];\n for (var i = 0; i < stack.length; ++i) {\n var line = stack[i];\n var isTraceLine = \" (No stack trace)\" === line ||\n stackFramePattern.test(line);\n var isInternalFrame = isTraceLine && shouldIgnore(line);\n if (isTraceLine && !isInternalFrame) {\n if (indentStackFrames && line.charAt(0) !== \" \") {\n line = \" \" + line;\n }\n ret.push(line);\n }\n }\n return ret;\n}\n\nfunction stackFramesAsArray(error) {\n var stack = error.stack.replace(/\\s+$/g, \"\").split(\"\\n\");\n for (var i = 0; i < stack.length; ++i) {\n var line = stack[i];\n if (\" (No stack trace)\" === line || stackFramePattern.test(line)) {\n break;\n }\n }\n if (i > 0 && error.name != \"SyntaxError\") {\n stack = stack.slice(i);\n }\n return stack;\n}\n\nfunction parseStackAndMessage(error) {\n var stack = error.stack;\n var message = error.toString();\n stack = typeof stack === \"string\" && stack.length > 0\n ? stackFramesAsArray(error) : [\" (No stack trace)\"];\n return {\n message: message,\n stack: error.name == \"SyntaxError\" ? stack : cleanStack(stack)\n };\n}\n\nfunction formatAndLogError(error, title, isSoft) {\n if (typeof console !== \"undefined\") {\n var message;\n if (util.isObject(error)) {\n var stack = error.stack;\n message = title + formatStack(stack, error);\n } else {\n message = title + String(error);\n }\n if (typeof printWarning === \"function\") {\n printWarning(message, isSoft);\n } else if (typeof console.log === \"function\" ||\n typeof console.log === \"object\") {\n console.log(message);\n }\n }\n}\n\nfunction fireRejectionEvent(name, localHandler, reason, promise) {\n var localEventFired = false;\n try {\n if (typeof localHandler === \"function\") {\n localEventFired = true;\n if (name === \"rejectionHandled\") {\n localHandler(promise);\n } else {\n localHandler(reason, promise);\n }\n }\n } catch (e) {\n async.throwLater(e);\n }\n\n if (name === \"unhandledRejection\") {\n if (!activeFireEvent(name, reason, promise) && !localEventFired) {\n formatAndLogError(reason, \"Unhandled rejection \");\n }\n } else {\n activeFireEvent(name, promise);\n }\n}\n\nfunction formatNonError(obj) {\n var str;\n if (typeof obj === \"function\") {\n str = \"[function \" +\n (obj.name || \"anonymous\") +\n \"]\";\n } else {\n str = obj && typeof obj.toString === \"function\"\n ? obj.toString() : util.toString(obj);\n var ruselessToString = /\\[object [a-zA-Z0-9$_]+\\]/;\n if (ruselessToString.test(str)) {\n try {\n var newStr = JSON.stringify(obj);\n str = newStr;\n }\n catch(e) {\n\n }\n }\n if (str.length === 0) {\n str = \"(empty array)\";\n }\n }\n return (\"(<\" + snip(str) + \">, no stack trace)\");\n}\n\nfunction snip(str) {\n var maxChars = 41;\n if (str.length < maxChars) {\n return str;\n }\n return str.substr(0, maxChars - 3) + \"...\";\n}\n\nfunction longStackTracesIsSupported() {\n return typeof captureStackTrace === \"function\";\n}\n\nvar shouldIgnore = function() { return false; };\nvar parseLineInfoRegex = /[\\/<\\(]([^:\\/]+):(\\d+):(?:\\d+)\\)?\\s*$/;\nfunction parseLineInfo(line) {\n var matches = line.match(parseLineInfoRegex);\n if (matches) {\n return {\n fileName: matches[1],\n line: parseInt(matches[2], 10)\n };\n }\n}\n\nfunction setBounds(firstLineError, lastLineError) {\n if (!longStackTracesIsSupported()) return;\n var firstStackLines = (firstLineError.stack || \"\").split(\"\\n\");\n var lastStackLines = (lastLineError.stack || \"\").split(\"\\n\");\n var firstIndex = -1;\n var lastIndex = -1;\n var firstFileName;\n var lastFileName;\n for (var i = 0; i < firstStackLines.length; ++i) {\n var result = parseLineInfo(firstStackLines[i]);\n if (result) {\n firstFileName = result.fileName;\n firstIndex = result.line;\n break;\n }\n }\n for (var i = 0; i < lastStackLines.length; ++i) {\n var result = parseLineInfo(lastStackLines[i]);\n if (result) {\n lastFileName = result.fileName;\n lastIndex = result.line;\n break;\n }\n }\n if (firstIndex < 0 || lastIndex < 0 || !firstFileName || !lastFileName ||\n firstFileName !== lastFileName || firstIndex >= lastIndex) {\n return;\n }\n\n shouldIgnore = function(line) {\n if (bluebirdFramePattern.test(line)) return true;\n var info = parseLineInfo(line);\n if (info) {\n if (info.fileName === firstFileName &&\n (firstIndex <= info.line && info.line <= lastIndex)) {\n return true;\n }\n }\n return false;\n };\n}\n\nfunction CapturedTrace(parent) {\n this._parent = parent;\n this._promisesCreated = 0;\n var length = this._length = 1 + (parent === undefined ? 0 : parent._length);\n captureStackTrace(this, CapturedTrace);\n if (length > 32) this.uncycle();\n}\nutil.inherits(CapturedTrace, Error);\nContext.CapturedTrace = CapturedTrace;\n\nCapturedTrace.prototype.uncycle = function() {\n var length = this._length;\n if (length < 2) return;\n var nodes = [];\n var stackToIndex = {};\n\n for (var i = 0, node = this; node !== undefined; ++i) {\n nodes.push(node);\n node = node._parent;\n }\n length = this._length = i;\n for (var i = length - 1; i >= 0; --i) {\n var stack = nodes[i].stack;\n if (stackToIndex[stack] === undefined) {\n stackToIndex[stack] = i;\n }\n }\n for (var i = 0; i < length; ++i) {\n var currentStack = nodes[i].stack;\n var index = stackToIndex[currentStack];\n if (index !== undefined && index !== i) {\n if (index > 0) {\n nodes[index - 1]._parent = undefined;\n nodes[index - 1]._length = 1;\n }\n nodes[i]._parent = undefined;\n nodes[i]._length = 1;\n var cycleEdgeNode = i > 0 ? nodes[i - 1] : this;\n\n if (index < length - 1) {\n cycleEdgeNode._parent = nodes[index + 1];\n cycleEdgeNode._parent.uncycle();\n cycleEdgeNode._length =\n cycleEdgeNode._parent._length + 1;\n } else {\n cycleEdgeNode._parent = undefined;\n cycleEdgeNode._length = 1;\n }\n var currentChildLength = cycleEdgeNode._length + 1;\n for (var j = i - 2; j >= 0; --j) {\n nodes[j]._length = currentChildLength;\n currentChildLength++;\n }\n return;\n }\n }\n};\n\nCapturedTrace.prototype.attachExtraTrace = function(error) {\n if (error.__stackCleaned__) return;\n this.uncycle();\n var parsed = parseStackAndMessage(error);\n var message = parsed.message;\n var stacks = [parsed.stack];\n\n var trace = this;\n while (trace !== undefined) {\n stacks.push(cleanStack(trace.stack.split(\"\\n\")));\n trace = trace._parent;\n }\n removeCommonRoots(stacks);\n removeDuplicateOrEmptyJumps(stacks);\n util.notEnumerableProp(error, \"stack\", reconstructStack(message, stacks));\n util.notEnumerableProp(error, \"__stackCleaned__\", true);\n};\n\nvar captureStackTrace = (function stackDetection() {\n var v8stackFramePattern = /^\\s*at\\s*/;\n var v8stackFormatter = function(stack, error) {\n if (typeof stack === \"string\") return stack;\n\n if (error.name !== undefined &&\n error.message !== undefined) {\n return error.toString();\n }\n return formatNonError(error);\n };\n\n if (typeof Error.stackTraceLimit === \"number\" &&\n typeof Error.captureStackTrace === \"function\") {\n Error.stackTraceLimit += 6;\n stackFramePattern = v8stackFramePattern;\n formatStack = v8stackFormatter;\n var captureStackTrace = Error.captureStackTrace;\n\n shouldIgnore = function(line) {\n return bluebirdFramePattern.test(line);\n };\n return function(receiver, ignoreUntil) {\n Error.stackTraceLimit += 6;\n captureStackTrace(receiver, ignoreUntil);\n Error.stackTraceLimit -= 6;\n };\n }\n var err = new Error();\n\n if (typeof err.stack === \"string\" &&\n err.stack.split(\"\\n\")[0].indexOf(\"stackDetection@\") >= 0) {\n stackFramePattern = /@/;\n formatStack = v8stackFormatter;\n indentStackFrames = true;\n return function captureStackTrace(o) {\n o.stack = new Error().stack;\n };\n }\n\n var hasStackAfterThrow;\n try { throw new Error(); }\n catch(e) {\n hasStackAfterThrow = (\"stack\" in e);\n }\n if (!(\"stack\" in err) && hasStackAfterThrow &&\n typeof Error.stackTraceLimit === \"number\") {\n stackFramePattern = v8stackFramePattern;\n formatStack = v8stackFormatter;\n return function captureStackTrace(o) {\n Error.stackTraceLimit += 6;\n try { throw new Error(); }\n catch(e) { o.stack = e.stack; }\n Error.stackTraceLimit -= 6;\n };\n }\n\n formatStack = function(stack, error) {\n if (typeof stack === \"string\") return stack;\n\n if ((typeof error === \"object\" ||\n typeof error === \"function\") &&\n error.name !== undefined &&\n error.message !== undefined) {\n return error.toString();\n }\n return formatNonError(error);\n };\n\n return null;\n\n})([]);\n\nif (typeof console !== \"undefined\" && typeof console.warn !== \"undefined\") {\n printWarning = function (message) {\n console.warn(message);\n };\n if (util.isNode && process.stderr.isTTY) {\n printWarning = function(message, isSoft) {\n var color = isSoft ? \"\\u001b[33m\" : \"\\u001b[31m\";\n console.warn(color + message + \"\\u001b[0m\\n\");\n };\n } else if (!util.isNode && typeof (new Error().stack) === \"string\") {\n printWarning = function(message, isSoft) {\n console.warn(\"%c\" + message,\n isSoft ? \"color: darkorange\" : \"color: red\");\n };\n }\n}\n\nvar config = {\n warnings: warnings,\n longStackTraces: false,\n cancellation: false,\n monitoring: false,\n asyncHooks: false\n};\n\nif (longStackTraces) Promise.longStackTraces();\n\nreturn {\n asyncHooks: function() {\n return config.asyncHooks;\n },\n longStackTraces: function() {\n return config.longStackTraces;\n },\n warnings: function() {\n return config.warnings;\n },\n cancellation: function() {\n return config.cancellation;\n },\n monitoring: function() {\n return config.monitoring;\n },\n propagateFromFunction: function() {\n return propagateFromFunction;\n },\n boundValueFunction: function() {\n return boundValueFunction;\n },\n checkForgottenReturns: checkForgottenReturns,\n setBounds: setBounds,\n warn: warn,\n deprecated: deprecated,\n CapturedTrace: CapturedTrace,\n fireDomEvent: fireDomEvent,\n fireGlobalEvent: fireGlobalEvent\n};\n};\n","\"use strict\";\nmodule.exports = function(NEXT_FILTER) {\nvar util = require(\"./util\");\nvar getKeys = require(\"./es5\").keys;\nvar tryCatch = util.tryCatch;\nvar errorObj = util.errorObj;\n\nfunction catchFilter(instances, cb, promise) {\n return function(e) {\n var boundTo = promise._boundValue();\n predicateLoop: for (var i = 0; i < instances.length; ++i) {\n var item = instances[i];\n\n if (item === Error ||\n (item != null && item.prototype instanceof Error)) {\n if (e instanceof item) {\n return tryCatch(cb).call(boundTo, e);\n }\n } else if (typeof item === \"function\") {\n var matchesPredicate = tryCatch(item).call(boundTo, e);\n if (matchesPredicate === errorObj) {\n return matchesPredicate;\n } else if (matchesPredicate) {\n return tryCatch(cb).call(boundTo, e);\n }\n } else if (util.isObject(e)) {\n var keys = getKeys(item);\n for (var j = 0; j < keys.length; ++j) {\n var key = keys[j];\n if (item[key] != e[key]) {\n continue predicateLoop;\n }\n }\n return tryCatch(cb).call(boundTo, e);\n }\n }\n return NEXT_FILTER;\n };\n}\n\nreturn catchFilter;\n};\n","\"use strict\";\nmodule.exports = function(Promise, tryConvertToPromise, NEXT_FILTER) {\nvar util = require(\"./util\");\nvar CancellationError = Promise.CancellationError;\nvar errorObj = util.errorObj;\nvar catchFilter = require(\"./catch_filter\")(NEXT_FILTER);\n\nfunction PassThroughHandlerContext(promise, type, handler) {\n this.promise = promise;\n this.type = type;\n this.handler = handler;\n this.called = false;\n this.cancelPromise = null;\n}\n\nPassThroughHandlerContext.prototype.isFinallyHandler = function() {\n return this.type === 0;\n};\n\nfunction FinallyHandlerCancelReaction(finallyHandler) {\n this.finallyHandler = finallyHandler;\n}\n\nFinallyHandlerCancelReaction.prototype._resultCancelled = function() {\n checkCancel(this.finallyHandler);\n};\n\nfunction checkCancel(ctx, reason) {\n if (ctx.cancelPromise != null) {\n if (arguments.length > 1) {\n ctx.cancelPromise._reject(reason);\n } else {\n ctx.cancelPromise._cancel();\n }\n ctx.cancelPromise = null;\n return true;\n }\n return false;\n}\n\nfunction succeed() {\n return finallyHandler.call(this, this.promise._target()._settledValue());\n}\nfunction fail(reason) {\n if (checkCancel(this, reason)) return;\n errorObj.e = reason;\n return errorObj;\n}\nfunction finallyHandler(reasonOrValue) {\n var promise = this.promise;\n var handler = this.handler;\n\n if (!this.called) {\n this.called = true;\n var ret = this.isFinallyHandler()\n ? handler.call(promise._boundValue())\n : handler.call(promise._boundValue(), reasonOrValue);\n if (ret === NEXT_FILTER) {\n return ret;\n } else if (ret !== undefined) {\n promise._setReturnedNonUndefined();\n var maybePromise = tryConvertToPromise(ret, promise);\n if (maybePromise instanceof Promise) {\n if (this.cancelPromise != null) {\n if (maybePromise._isCancelled()) {\n var reason =\n new CancellationError(\"late cancellation observer\");\n promise._attachExtraTrace(reason);\n errorObj.e = reason;\n return errorObj;\n } else if (maybePromise.isPending()) {\n maybePromise._attachCancellationCallback(\n new FinallyHandlerCancelReaction(this));\n }\n }\n return maybePromise._then(\n succeed, fail, undefined, this, undefined);\n }\n }\n }\n\n if (promise.isRejected()) {\n checkCancel(this);\n errorObj.e = reasonOrValue;\n return errorObj;\n } else {\n checkCancel(this);\n return reasonOrValue;\n }\n}\n\nPromise.prototype._passThrough = function(handler, type, success, fail) {\n if (typeof handler !== \"function\") return this.then();\n return this._then(success,\n fail,\n undefined,\n new PassThroughHandlerContext(this, type, handler),\n undefined);\n};\n\nPromise.prototype.lastly =\nPromise.prototype[\"finally\"] = function (handler) {\n return this._passThrough(handler,\n 0,\n finallyHandler,\n finallyHandler);\n};\n\n\nPromise.prototype.tap = function (handler) {\n return this._passThrough(handler, 1, finallyHandler);\n};\n\nPromise.prototype.tapCatch = function (handlerOrPredicate) {\n var len = arguments.length;\n if(len === 1) {\n return this._passThrough(handlerOrPredicate,\n 1,\n undefined,\n finallyHandler);\n } else {\n var catchInstances = new Array(len - 1),\n j = 0, i;\n for (i = 0; i < len - 1; ++i) {\n var item = arguments[i];\n if (util.isObject(item)) {\n catchInstances[j++] = item;\n } else {\n return Promise.reject(new TypeError(\n \"tapCatch statement predicate: \"\n + \"expecting an object but got \" + util.classString(item)\n ));\n }\n }\n catchInstances.length = j;\n var handler = arguments[i];\n return this._passThrough(catchFilter(catchInstances, handler, this),\n 1,\n undefined,\n finallyHandler);\n }\n\n};\n\nreturn PassThroughHandlerContext;\n};\n","\"use strict\";\nvar util = require(\"./util\");\nvar maybeWrapAsError = util.maybeWrapAsError;\nvar errors = require(\"./errors\");\nvar OperationalError = errors.OperationalError;\nvar es5 = require(\"./es5\");\n\nfunction isUntypedError(obj) {\n return obj instanceof Error &&\n es5.getPrototypeOf(obj) === Error.prototype;\n}\n\nvar rErrorKey = /^(?:name|message|stack|cause)$/;\nfunction wrapAsOperationalError(obj) {\n var ret;\n if (isUntypedError(obj)) {\n ret = new OperationalError(obj);\n ret.name = obj.name;\n ret.message = obj.message;\n ret.stack = obj.stack;\n var keys = es5.keys(obj);\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n if (!rErrorKey.test(key)) {\n ret[key] = obj[key];\n }\n }\n return ret;\n }\n util.markAsOriginatingFromRejection(obj);\n return obj;\n}\n\nfunction nodebackForPromise(promise, multiArgs) {\n return function(err, value) {\n if (promise === null) return;\n if (err) {\n var wrapped = wrapAsOperationalError(maybeWrapAsError(err));\n promise._attachExtraTrace(wrapped);\n promise._reject(wrapped);\n } else if (!multiArgs) {\n promise._fulfill(value);\n } else {\n var $_len = arguments.length;var args = new Array(Math.max($_len - 1, 0)); for(var $_i = 1; $_i < $_len; ++$_i) {args[$_i - 1] = arguments[$_i];};\n promise._fulfill(args);\n }\n promise = null;\n };\n}\n\nmodule.exports = nodebackForPromise;\n","\"use strict\";\nmodule.exports =\nfunction(Promise, INTERNAL, tryConvertToPromise, apiRejection, debug) {\nvar util = require(\"./util\");\nvar tryCatch = util.tryCatch;\n\nPromise.method = function (fn) {\n if (typeof fn !== \"function\") {\n throw new Promise.TypeError(\"expecting a function but got \" + util.classString(fn));\n }\n return function () {\n var ret = new Promise(INTERNAL);\n ret._captureStackTrace();\n ret._pushContext();\n var value = tryCatch(fn).apply(this, arguments);\n var promiseCreated = ret._popContext();\n debug.checkForgottenReturns(\n value, promiseCreated, \"Promise.method\", ret);\n ret._resolveFromSyncValue(value);\n return ret;\n };\n};\n\nPromise.attempt = Promise[\"try\"] = function (fn) {\n if (typeof fn !== \"function\") {\n return apiRejection(\"expecting a function but got \" + util.classString(fn));\n }\n var ret = new Promise(INTERNAL);\n ret._captureStackTrace();\n ret._pushContext();\n var value;\n if (arguments.length > 1) {\n debug.deprecated(\"calling Promise.try with more than 1 argument\");\n var arg = arguments[1];\n var ctx = arguments[2];\n value = util.isArray(arg) ? tryCatch(fn).apply(ctx, arg)\n : tryCatch(fn).call(ctx, arg);\n } else {\n value = tryCatch(fn)();\n }\n var promiseCreated = ret._popContext();\n debug.checkForgottenReturns(\n value, promiseCreated, \"Promise.try\", ret);\n ret._resolveFromSyncValue(value);\n return ret;\n};\n\nPromise.prototype._resolveFromSyncValue = function (value) {\n if (value === util.errorObj) {\n this._rejectCallback(value.e, false);\n } else {\n this._resolveCallback(value, true);\n }\n};\n};\n","\"use strict\";\nmodule.exports = function(Promise, INTERNAL, tryConvertToPromise, debug) {\nvar calledBind = false;\nvar rejectThis = function(_, e) {\n this._reject(e);\n};\n\nvar targetRejected = function(e, context) {\n context.promiseRejectionQueued = true;\n context.bindingPromise._then(rejectThis, rejectThis, null, this, e);\n};\n\nvar bindingResolved = function(thisArg, context) {\n if (((this._bitField & 50397184) === 0)) {\n this._resolveCallback(context.target);\n }\n};\n\nvar bindingRejected = function(e, context) {\n if (!context.promiseRejectionQueued) this._reject(e);\n};\n\nPromise.prototype.bind = function (thisArg) {\n if (!calledBind) {\n calledBind = true;\n Promise.prototype._propagateFrom = debug.propagateFromFunction();\n Promise.prototype._boundValue = debug.boundValueFunction();\n }\n var maybePromise = tryConvertToPromise(thisArg);\n var ret = new Promise(INTERNAL);\n ret._propagateFrom(this, 1);\n var target = this._target();\n ret._setBoundTo(maybePromise);\n if (maybePromise instanceof Promise) {\n var context = {\n promiseRejectionQueued: false,\n promise: ret,\n target: target,\n bindingPromise: maybePromise\n };\n target._then(INTERNAL, targetRejected, undefined, ret, context);\n maybePromise._then(\n bindingResolved, bindingRejected, undefined, ret, context);\n ret._setOnCancel(maybePromise);\n } else {\n ret._resolveCallback(target);\n }\n return ret;\n};\n\nPromise.prototype._setBoundTo = function (obj) {\n if (obj !== undefined) {\n this._bitField = this._bitField | 2097152;\n this._boundTo = obj;\n } else {\n this._bitField = this._bitField & (~2097152);\n }\n};\n\nPromise.prototype._isBound = function () {\n return (this._bitField & 2097152) === 2097152;\n};\n\nPromise.bind = function (thisArg, value) {\n return Promise.resolve(value).bind(thisArg);\n};\n};\n","\"use strict\";\nmodule.exports = function(Promise, PromiseArray, apiRejection, debug) {\nvar util = require(\"./util\");\nvar tryCatch = util.tryCatch;\nvar errorObj = util.errorObj;\nvar async = Promise._async;\n\nPromise.prototype[\"break\"] = Promise.prototype.cancel = function() {\n if (!debug.cancellation()) return this._warn(\"cancellation is disabled\");\n\n var promise = this;\n var child = promise;\n while (promise._isCancellable()) {\n if (!promise._cancelBy(child)) {\n if (child._isFollowing()) {\n child._followee().cancel();\n } else {\n child._cancelBranched();\n }\n break;\n }\n\n var parent = promise._cancellationParent;\n if (parent == null || !parent._isCancellable()) {\n if (promise._isFollowing()) {\n promise._followee().cancel();\n } else {\n promise._cancelBranched();\n }\n break;\n } else {\n if (promise._isFollowing()) promise._followee().cancel();\n promise._setWillBeCancelled();\n child = promise;\n promise = parent;\n }\n }\n};\n\nPromise.prototype._branchHasCancelled = function() {\n this._branchesRemainingToCancel--;\n};\n\nPromise.prototype._enoughBranchesHaveCancelled = function() {\n return this._branchesRemainingToCancel === undefined ||\n this._branchesRemainingToCancel <= 0;\n};\n\nPromise.prototype._cancelBy = function(canceller) {\n if (canceller === this) {\n this._branchesRemainingToCancel = 0;\n this._invokeOnCancel();\n return true;\n } else {\n this._branchHasCancelled();\n if (this._enoughBranchesHaveCancelled()) {\n this._invokeOnCancel();\n return true;\n }\n }\n return false;\n};\n\nPromise.prototype._cancelBranched = function() {\n if (this._enoughBranchesHaveCancelled()) {\n this._cancel();\n }\n};\n\nPromise.prototype._cancel = function() {\n if (!this._isCancellable()) return;\n this._setCancelled();\n async.invoke(this._cancelPromises, this, undefined);\n};\n\nPromise.prototype._cancelPromises = function() {\n if (this._length() > 0) this._settlePromises();\n};\n\nPromise.prototype._unsetOnCancel = function() {\n this._onCancelField = undefined;\n};\n\nPromise.prototype._isCancellable = function() {\n return this.isPending() && !this._isCancelled();\n};\n\nPromise.prototype.isCancellable = function() {\n return this.isPending() && !this.isCancelled();\n};\n\nPromise.prototype._doInvokeOnCancel = function(onCancelCallback, internalOnly) {\n if (util.isArray(onCancelCallback)) {\n for (var i = 0; i < onCancelCallback.length; ++i) {\n this._doInvokeOnCancel(onCancelCallback[i], internalOnly);\n }\n } else if (onCancelCallback !== undefined) {\n if (typeof onCancelCallback === \"function\") {\n if (!internalOnly) {\n var e = tryCatch(onCancelCallback).call(this._boundValue());\n if (e === errorObj) {\n this._attachExtraTrace(e.e);\n async.throwLater(e.e);\n }\n }\n } else {\n onCancelCallback._resultCancelled(this);\n }\n }\n};\n\nPromise.prototype._invokeOnCancel = function() {\n var onCancelCallback = this._onCancel();\n this._unsetOnCancel();\n async.invoke(this._doInvokeOnCancel, this, onCancelCallback);\n};\n\nPromise.prototype._invokeInternalOnCancel = function() {\n if (this._isCancellable()) {\n this._doInvokeOnCancel(this._onCancel(), true);\n this._unsetOnCancel();\n }\n};\n\nPromise.prototype._resultCancelled = function() {\n this.cancel();\n};\n\n};\n","\"use strict\";\nmodule.exports = function(Promise) {\nfunction returner() {\n return this.value;\n}\nfunction thrower() {\n throw this.reason;\n}\n\nPromise.prototype[\"return\"] =\nPromise.prototype.thenReturn = function (value) {\n if (value instanceof Promise) value.suppressUnhandledRejections();\n return this._then(\n returner, undefined, undefined, {value: value}, undefined);\n};\n\nPromise.prototype[\"throw\"] =\nPromise.prototype.thenThrow = function (reason) {\n return this._then(\n thrower, undefined, undefined, {reason: reason}, undefined);\n};\n\nPromise.prototype.catchThrow = function (reason) {\n if (arguments.length <= 1) {\n return this._then(\n undefined, thrower, undefined, {reason: reason}, undefined);\n } else {\n var _reason = arguments[1];\n var handler = function() {throw _reason;};\n return this.caught(reason, handler);\n }\n};\n\nPromise.prototype.catchReturn = function (value) {\n if (arguments.length <= 1) {\n if (value instanceof Promise) value.suppressUnhandledRejections();\n return this._then(\n undefined, returner, undefined, {value: value}, undefined);\n } else {\n var _value = arguments[1];\n if (_value instanceof Promise) _value.suppressUnhandledRejections();\n var handler = function() {return _value;};\n return this.caught(value, handler);\n }\n};\n};\n","\"use strict\";\nmodule.exports = function(Promise) {\nfunction PromiseInspection(promise) {\n if (promise !== undefined) {\n promise = promise._target();\n this._bitField = promise._bitField;\n this._settledValueField = promise._isFateSealed()\n ? promise._settledValue() : undefined;\n }\n else {\n this._bitField = 0;\n this._settledValueField = undefined;\n }\n}\n\nPromiseInspection.prototype._settledValue = function() {\n return this._settledValueField;\n};\n\nvar value = PromiseInspection.prototype.value = function () {\n if (!this.isFulfilled()) {\n throw new TypeError(\"cannot get fulfillment value of a non-fulfilled promise\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n }\n return this._settledValue();\n};\n\nvar reason = PromiseInspection.prototype.error =\nPromiseInspection.prototype.reason = function () {\n if (!this.isRejected()) {\n throw new TypeError(\"cannot get rejection reason of a non-rejected promise\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n }\n return this._settledValue();\n};\n\nvar isFulfilled = PromiseInspection.prototype.isFulfilled = function() {\n return (this._bitField & 33554432) !== 0;\n};\n\nvar isRejected = PromiseInspection.prototype.isRejected = function () {\n return (this._bitField & 16777216) !== 0;\n};\n\nvar isPending = PromiseInspection.prototype.isPending = function () {\n return (this._bitField & 50397184) === 0;\n};\n\nvar isResolved = PromiseInspection.prototype.isResolved = function () {\n return (this._bitField & 50331648) !== 0;\n};\n\nPromiseInspection.prototype.isCancelled = function() {\n return (this._bitField & 8454144) !== 0;\n};\n\nPromise.prototype.__isCancelled = function() {\n return (this._bitField & 65536) === 65536;\n};\n\nPromise.prototype._isCancelled = function() {\n return this._target().__isCancelled();\n};\n\nPromise.prototype.isCancelled = function() {\n return (this._target()._bitField & 8454144) !== 0;\n};\n\nPromise.prototype.isPending = function() {\n return isPending.call(this._target());\n};\n\nPromise.prototype.isRejected = function() {\n return isRejected.call(this._target());\n};\n\nPromise.prototype.isFulfilled = function() {\n return isFulfilled.call(this._target());\n};\n\nPromise.prototype.isResolved = function() {\n return isResolved.call(this._target());\n};\n\nPromise.prototype.value = function() {\n return value.call(this._target());\n};\n\nPromise.prototype.reason = function() {\n var target = this._target();\n target._unsetRejectionIsUnhandled();\n return reason.call(target);\n};\n\nPromise.prototype._value = function() {\n return this._settledValue();\n};\n\nPromise.prototype._reason = function() {\n this._unsetRejectionIsUnhandled();\n return this._settledValue();\n};\n\nPromise.PromiseInspection = PromiseInspection;\n};\n","\"use strict\";\nmodule.exports =\nfunction(Promise, PromiseArray, tryConvertToPromise, INTERNAL, async) {\nvar util = require(\"./util\");\nvar canEvaluate = util.canEvaluate;\nvar tryCatch = util.tryCatch;\nvar errorObj = util.errorObj;\nvar reject;\n\nif (!false) {\nif (canEvaluate) {\n var thenCallback = function(i) {\n return new Function(\"value\", \"holder\", \" \\n\\\n 'use strict'; \\n\\\n holder.pIndex = value; \\n\\\n holder.checkFulfillment(this); \\n\\\n \".replace(/Index/g, i));\n };\n\n var promiseSetter = function(i) {\n return new Function(\"promise\", \"holder\", \" \\n\\\n 'use strict'; \\n\\\n holder.pIndex = promise; \\n\\\n \".replace(/Index/g, i));\n };\n\n var generateHolderClass = function(total) {\n var props = new Array(total);\n for (var i = 0; i < props.length; ++i) {\n props[i] = \"this.p\" + (i+1);\n }\n var assignment = props.join(\" = \") + \" = null;\";\n var cancellationCode= \"var promise;\\n\" + props.map(function(prop) {\n return \" \\n\\\n promise = \" + prop + \"; \\n\\\n if (promise instanceof Promise) { \\n\\\n promise.cancel(); \\n\\\n } \\n\\\n \";\n }).join(\"\\n\");\n var passedArguments = props.join(\", \");\n var name = \"Holder$\" + total;\n\n\n var code = \"return function(tryCatch, errorObj, Promise, async) { \\n\\\n 'use strict'; \\n\\\n function [TheName](fn) { \\n\\\n [TheProperties] \\n\\\n this.fn = fn; \\n\\\n this.asyncNeeded = true; \\n\\\n this.now = 0; \\n\\\n } \\n\\\n \\n\\\n [TheName].prototype._callFunction = function(promise) { \\n\\\n promise._pushContext(); \\n\\\n var ret = tryCatch(this.fn)([ThePassedArguments]); \\n\\\n promise._popContext(); \\n\\\n if (ret === errorObj) { \\n\\\n promise._rejectCallback(ret.e, false); \\n\\\n } else { \\n\\\n promise._resolveCallback(ret); \\n\\\n } \\n\\\n }; \\n\\\n \\n\\\n [TheName].prototype.checkFulfillment = function(promise) { \\n\\\n var now = ++this.now; \\n\\\n if (now === [TheTotal]) { \\n\\\n if (this.asyncNeeded) { \\n\\\n async.invoke(this._callFunction, this, promise); \\n\\\n } else { \\n\\\n this._callFunction(promise); \\n\\\n } \\n\\\n \\n\\\n } \\n\\\n }; \\n\\\n \\n\\\n [TheName].prototype._resultCancelled = function() { \\n\\\n [CancellationCode] \\n\\\n }; \\n\\\n \\n\\\n return [TheName]; \\n\\\n }(tryCatch, errorObj, Promise, async); \\n\\\n \";\n\n code = code.replace(/\\[TheName\\]/g, name)\n .replace(/\\[TheTotal\\]/g, total)\n .replace(/\\[ThePassedArguments\\]/g, passedArguments)\n .replace(/\\[TheProperties\\]/g, assignment)\n .replace(/\\[CancellationCode\\]/g, cancellationCode);\n\n return new Function(\"tryCatch\", \"errorObj\", \"Promise\", \"async\", code)\n (tryCatch, errorObj, Promise, async);\n };\n\n var holderClasses = [];\n var thenCallbacks = [];\n var promiseSetters = [];\n\n for (var i = 0; i < 8; ++i) {\n holderClasses.push(generateHolderClass(i + 1));\n thenCallbacks.push(thenCallback(i + 1));\n promiseSetters.push(promiseSetter(i + 1));\n }\n\n reject = function (reason) {\n this._reject(reason);\n };\n}}\n\nPromise.join = function () {\n var last = arguments.length - 1;\n var fn;\n if (last > 0 && typeof arguments[last] === \"function\") {\n fn = arguments[last];\n if (!false) {\n if (last <= 8 && canEvaluate) {\n var ret = new Promise(INTERNAL);\n ret._captureStackTrace();\n var HolderClass = holderClasses[last - 1];\n var holder = new HolderClass(fn);\n var callbacks = thenCallbacks;\n\n for (var i = 0; i < last; ++i) {\n var maybePromise = tryConvertToPromise(arguments[i], ret);\n if (maybePromise instanceof Promise) {\n maybePromise = maybePromise._target();\n var bitField = maybePromise._bitField;\n ;\n if (((bitField & 50397184) === 0)) {\n maybePromise._then(callbacks[i], reject,\n undefined, ret, holder);\n promiseSetters[i](maybePromise, holder);\n holder.asyncNeeded = false;\n } else if (((bitField & 33554432) !== 0)) {\n callbacks[i].call(ret,\n maybePromise._value(), holder);\n } else if (((bitField & 16777216) !== 0)) {\n ret._reject(maybePromise._reason());\n } else {\n ret._cancel();\n }\n } else {\n callbacks[i].call(ret, maybePromise, holder);\n }\n }\n\n if (!ret._isFateSealed()) {\n if (holder.asyncNeeded) {\n var context = Promise._getContext();\n holder.fn = util.contextBind(context, holder.fn);\n }\n ret._setAsyncGuaranteed();\n ret._setOnCancel(holder);\n }\n return ret;\n }\n }\n }\n var $_len = arguments.length;var args = new Array($_len); for(var $_i = 0; $_i < $_len ; ++$_i) {args[$_i] = arguments[$_i ];};\n if (fn) args.pop();\n var ret = new PromiseArray(args).promise();\n return fn !== undefined ? ret.spread(fn) : ret;\n};\n\n};\n","\"use strict\";\nvar cr = Object.create;\nif (cr) {\n var callerCache = cr(null);\n var getterCache = cr(null);\n callerCache[\" size\"] = getterCache[\" size\"] = 0;\n}\n\nmodule.exports = function(Promise) {\nvar util = require(\"./util\");\nvar canEvaluate = util.canEvaluate;\nvar isIdentifier = util.isIdentifier;\n\nvar getMethodCaller;\nvar getGetter;\nif (!false) {\nvar makeMethodCaller = function (methodName) {\n return new Function(\"ensureMethod\", \" \\n\\\n return function(obj) { \\n\\\n 'use strict' \\n\\\n var len = this.length; \\n\\\n ensureMethod(obj, 'methodName'); \\n\\\n switch(len) { \\n\\\n case 1: return obj.methodName(this[0]); \\n\\\n case 2: return obj.methodName(this[0], this[1]); \\n\\\n case 3: return obj.methodName(this[0], this[1], this[2]); \\n\\\n case 0: return obj.methodName(); \\n\\\n default: \\n\\\n return obj.methodName.apply(obj, this); \\n\\\n } \\n\\\n }; \\n\\\n \".replace(/methodName/g, methodName))(ensureMethod);\n};\n\nvar makeGetter = function (propertyName) {\n return new Function(\"obj\", \" \\n\\\n 'use strict'; \\n\\\n return obj.propertyName; \\n\\\n \".replace(\"propertyName\", propertyName));\n};\n\nvar getCompiled = function(name, compiler, cache) {\n var ret = cache[name];\n if (typeof ret !== \"function\") {\n if (!isIdentifier(name)) {\n return null;\n }\n ret = compiler(name);\n cache[name] = ret;\n cache[\" size\"]++;\n if (cache[\" size\"] > 512) {\n var keys = Object.keys(cache);\n for (var i = 0; i < 256; ++i) delete cache[keys[i]];\n cache[\" size\"] = keys.length - 256;\n }\n }\n return ret;\n};\n\ngetMethodCaller = function(name) {\n return getCompiled(name, makeMethodCaller, callerCache);\n};\n\ngetGetter = function(name) {\n return getCompiled(name, makeGetter, getterCache);\n};\n}\n\nfunction ensureMethod(obj, methodName) {\n var fn;\n if (obj != null) fn = obj[methodName];\n if (typeof fn !== \"function\") {\n var message = \"Object \" + util.classString(obj) + \" has no method '\" +\n util.toString(methodName) + \"'\";\n throw new Promise.TypeError(message);\n }\n return fn;\n}\n\nfunction caller(obj) {\n var methodName = this.pop();\n var fn = ensureMethod(obj, methodName);\n return fn.apply(obj, this);\n}\nPromise.prototype.call = function (methodName) {\n var $_len = arguments.length;var args = new Array(Math.max($_len - 1, 0)); for(var $_i = 1; $_i < $_len; ++$_i) {args[$_i - 1] = arguments[$_i];};\n if (!false) {\n if (canEvaluate) {\n var maybeCaller = getMethodCaller(methodName);\n if (maybeCaller !== null) {\n return this._then(\n maybeCaller, undefined, undefined, args, undefined);\n }\n }\n }\n args.push(methodName);\n return this._then(caller, undefined, undefined, args, undefined);\n};\n\nfunction namedGetter(obj) {\n return obj[this];\n}\nfunction indexedGetter(obj) {\n var index = +this;\n if (index < 0) index = Math.max(0, index + obj.length);\n return obj[index];\n}\nPromise.prototype.get = function (propertyName) {\n var isIndex = (typeof propertyName === \"number\");\n var getter;\n if (!isIndex) {\n if (canEvaluate) {\n var maybeGetter = getGetter(propertyName);\n getter = maybeGetter !== null ? maybeGetter : namedGetter;\n } else {\n getter = namedGetter;\n }\n } else {\n getter = indexedGetter;\n }\n return this._then(getter, undefined, undefined, propertyName, undefined);\n};\n};\n","\"use strict\";\nmodule.exports = function(Promise,\n apiRejection,\n INTERNAL,\n tryConvertToPromise,\n Proxyable,\n debug) {\nvar errors = require(\"./errors\");\nvar TypeError = errors.TypeError;\nvar util = require(\"./util\");\nvar errorObj = util.errorObj;\nvar tryCatch = util.tryCatch;\nvar yieldHandlers = [];\n\nfunction promiseFromYieldHandler(value, yieldHandlers, traceParent) {\n for (var i = 0; i < yieldHandlers.length; ++i) {\n traceParent._pushContext();\n var result = tryCatch(yieldHandlers[i])(value);\n traceParent._popContext();\n if (result === errorObj) {\n traceParent._pushContext();\n var ret = Promise.reject(errorObj.e);\n traceParent._popContext();\n return ret;\n }\n var maybePromise = tryConvertToPromise(result, traceParent);\n if (maybePromise instanceof Promise) return maybePromise;\n }\n return null;\n}\n\nfunction PromiseSpawn(generatorFunction, receiver, yieldHandler, stack) {\n if (debug.cancellation()) {\n var internal = new Promise(INTERNAL);\n var _finallyPromise = this._finallyPromise = new Promise(INTERNAL);\n this._promise = internal.lastly(function() {\n return _finallyPromise;\n });\n internal._captureStackTrace();\n internal._setOnCancel(this);\n } else {\n var promise = this._promise = new Promise(INTERNAL);\n promise._captureStackTrace();\n }\n this._stack = stack;\n this._generatorFunction = generatorFunction;\n this._receiver = receiver;\n this._generator = undefined;\n this._yieldHandlers = typeof yieldHandler === \"function\"\n ? [yieldHandler].concat(yieldHandlers)\n : yieldHandlers;\n this._yieldedPromise = null;\n this._cancellationPhase = false;\n}\nutil.inherits(PromiseSpawn, Proxyable);\n\nPromiseSpawn.prototype._isResolved = function() {\n return this._promise === null;\n};\n\nPromiseSpawn.prototype._cleanup = function() {\n this._promise = this._generator = null;\n if (debug.cancellation() && this._finallyPromise !== null) {\n this._finallyPromise._fulfill();\n this._finallyPromise = null;\n }\n};\n\nPromiseSpawn.prototype._promiseCancelled = function() {\n if (this._isResolved()) return;\n var implementsReturn = typeof this._generator[\"return\"] !== \"undefined\";\n\n var result;\n if (!implementsReturn) {\n var reason = new Promise.CancellationError(\n \"generator .return() sentinel\");\n Promise.coroutine.returnSentinel = reason;\n this._promise._attachExtraTrace(reason);\n this._promise._pushContext();\n result = tryCatch(this._generator[\"throw\"]).call(this._generator,\n reason);\n this._promise._popContext();\n } else {\n this._promise._pushContext();\n result = tryCatch(this._generator[\"return\"]).call(this._generator,\n undefined);\n this._promise._popContext();\n }\n this._cancellationPhase = true;\n this._yieldedPromise = null;\n this._continue(result);\n};\n\nPromiseSpawn.prototype._promiseFulfilled = function(value) {\n this._yieldedPromise = null;\n this._promise._pushContext();\n var result = tryCatch(this._generator.next).call(this._generator, value);\n this._promise._popContext();\n this._continue(result);\n};\n\nPromiseSpawn.prototype._promiseRejected = function(reason) {\n this._yieldedPromise = null;\n this._promise._attachExtraTrace(reason);\n this._promise._pushContext();\n var result = tryCatch(this._generator[\"throw\"])\n .call(this._generator, reason);\n this._promise._popContext();\n this._continue(result);\n};\n\nPromiseSpawn.prototype._resultCancelled = function() {\n if (this._yieldedPromise instanceof Promise) {\n var promise = this._yieldedPromise;\n this._yieldedPromise = null;\n promise.cancel();\n }\n};\n\nPromiseSpawn.prototype.promise = function () {\n return this._promise;\n};\n\nPromiseSpawn.prototype._run = function () {\n this._generator = this._generatorFunction.call(this._receiver);\n this._receiver =\n this._generatorFunction = undefined;\n this._promiseFulfilled(undefined);\n};\n\nPromiseSpawn.prototype._continue = function (result) {\n var promise = this._promise;\n if (result === errorObj) {\n this._cleanup();\n if (this._cancellationPhase) {\n return promise.cancel();\n } else {\n return promise._rejectCallback(result.e, false);\n }\n }\n\n var value = result.value;\n if (result.done === true) {\n this._cleanup();\n if (this._cancellationPhase) {\n return promise.cancel();\n } else {\n return promise._resolveCallback(value);\n }\n } else {\n var maybePromise = tryConvertToPromise(value, this._promise);\n if (!(maybePromise instanceof Promise)) {\n maybePromise =\n promiseFromYieldHandler(maybePromise,\n this._yieldHandlers,\n this._promise);\n if (maybePromise === null) {\n this._promiseRejected(\n new TypeError(\n \"A value %s was yielded that could not be treated as a promise\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\\u000a\".replace(\"%s\", String(value)) +\n \"From coroutine:\\u000a\" +\n this._stack.split(\"\\n\").slice(1, -7).join(\"\\n\")\n )\n );\n return;\n }\n }\n maybePromise = maybePromise._target();\n var bitField = maybePromise._bitField;\n ;\n if (((bitField & 50397184) === 0)) {\n this._yieldedPromise = maybePromise;\n maybePromise._proxy(this, null);\n } else if (((bitField & 33554432) !== 0)) {\n Promise._async.invoke(\n this._promiseFulfilled, this, maybePromise._value()\n );\n } else if (((bitField & 16777216) !== 0)) {\n Promise._async.invoke(\n this._promiseRejected, this, maybePromise._reason()\n );\n } else {\n this._promiseCancelled();\n }\n }\n};\n\nPromise.coroutine = function (generatorFunction, options) {\n if (typeof generatorFunction !== \"function\") {\n throw new TypeError(\"generatorFunction must be a function\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n }\n var yieldHandler = Object(options).yieldHandler;\n var PromiseSpawn$ = PromiseSpawn;\n var stack = new Error().stack;\n return function () {\n var generator = generatorFunction.apply(this, arguments);\n var spawn = new PromiseSpawn$(undefined, undefined, yieldHandler,\n stack);\n var ret = spawn.promise();\n spawn._generator = generator;\n spawn._promiseFulfilled(undefined);\n return ret;\n };\n};\n\nPromise.coroutine.addYieldHandler = function(fn) {\n if (typeof fn !== \"function\") {\n throw new TypeError(\"expecting a function but got \" + util.classString(fn));\n }\n yieldHandlers.push(fn);\n};\n\nPromise.spawn = function (generatorFunction) {\n debug.deprecated(\"Promise.spawn()\", \"Promise.coroutine()\");\n if (typeof generatorFunction !== \"function\") {\n return apiRejection(\"generatorFunction must be a function\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n }\n var spawn = new PromiseSpawn(generatorFunction, this);\n var ret = spawn.promise();\n spawn._run(Promise.spawn);\n return ret;\n};\n};\n","\"use strict\";\nmodule.exports = function(Promise,\n PromiseArray,\n apiRejection,\n tryConvertToPromise,\n INTERNAL,\n debug) {\nvar util = require(\"./util\");\nvar tryCatch = util.tryCatch;\nvar errorObj = util.errorObj;\nvar async = Promise._async;\n\nfunction MappingPromiseArray(promises, fn, limit, _filter) {\n this.constructor$(promises);\n this._promise._captureStackTrace();\n var context = Promise._getContext();\n this._callback = util.contextBind(context, fn);\n this._preservedValues = _filter === INTERNAL\n ? new Array(this.length())\n : null;\n this._limit = limit;\n this._inFlight = 0;\n this._queue = [];\n async.invoke(this._asyncInit, this, undefined);\n if (util.isArray(promises)) {\n for (var i = 0; i < promises.length; ++i) {\n var maybePromise = promises[i];\n if (maybePromise instanceof Promise) {\n maybePromise.suppressUnhandledRejections();\n }\n }\n }\n}\nutil.inherits(MappingPromiseArray, PromiseArray);\n\nMappingPromiseArray.prototype._asyncInit = function() {\n this._init$(undefined, -2);\n};\n\nMappingPromiseArray.prototype._init = function () {};\n\nMappingPromiseArray.prototype._promiseFulfilled = function (value, index) {\n var values = this._values;\n var length = this.length();\n var preservedValues = this._preservedValues;\n var limit = this._limit;\n\n if (index < 0) {\n index = (index * -1) - 1;\n values[index] = value;\n if (limit >= 1) {\n this._inFlight--;\n this._drainQueue();\n if (this._isResolved()) return true;\n }\n } else {\n if (limit >= 1 && this._inFlight >= limit) {\n values[index] = value;\n this._queue.push(index);\n return false;\n }\n if (preservedValues !== null) preservedValues[index] = value;\n\n var promise = this._promise;\n var callback = this._callback;\n var receiver = promise._boundValue();\n promise._pushContext();\n var ret = tryCatch(callback).call(receiver, value, index, length);\n var promiseCreated = promise._popContext();\n debug.checkForgottenReturns(\n ret,\n promiseCreated,\n preservedValues !== null ? \"Promise.filter\" : \"Promise.map\",\n promise\n );\n if (ret === errorObj) {\n this._reject(ret.e);\n return true;\n }\n\n var maybePromise = tryConvertToPromise(ret, this._promise);\n if (maybePromise instanceof Promise) {\n maybePromise = maybePromise._target();\n var bitField = maybePromise._bitField;\n ;\n if (((bitField & 50397184) === 0)) {\n if (limit >= 1) this._inFlight++;\n values[index] = maybePromise;\n maybePromise._proxy(this, (index + 1) * -1);\n return false;\n } else if (((bitField & 33554432) !== 0)) {\n ret = maybePromise._value();\n } else if (((bitField & 16777216) !== 0)) {\n this._reject(maybePromise._reason());\n return true;\n } else {\n this._cancel();\n return true;\n }\n }\n values[index] = ret;\n }\n var totalResolved = ++this._totalResolved;\n if (totalResolved >= length) {\n if (preservedValues !== null) {\n this._filter(values, preservedValues);\n } else {\n this._resolve(values);\n }\n return true;\n }\n return false;\n};\n\nMappingPromiseArray.prototype._drainQueue = function () {\n var queue = this._queue;\n var limit = this._limit;\n var values = this._values;\n while (queue.length > 0 && this._inFlight < limit) {\n if (this._isResolved()) return;\n var index = queue.pop();\n this._promiseFulfilled(values[index], index);\n }\n};\n\nMappingPromiseArray.prototype._filter = function (booleans, values) {\n var len = values.length;\n var ret = new Array(len);\n var j = 0;\n for (var i = 0; i < len; ++i) {\n if (booleans[i]) ret[j++] = values[i];\n }\n ret.length = j;\n this._resolve(ret);\n};\n\nMappingPromiseArray.prototype.preservedValues = function () {\n return this._preservedValues;\n};\n\nfunction map(promises, fn, options, _filter) {\n if (typeof fn !== \"function\") {\n return apiRejection(\"expecting a function but got \" + util.classString(fn));\n }\n\n var limit = 0;\n if (options !== undefined) {\n if (typeof options === \"object\" && options !== null) {\n if (typeof options.concurrency !== \"number\") {\n return Promise.reject(\n new TypeError(\"'concurrency' must be a number but it is \" +\n util.classString(options.concurrency)));\n }\n limit = options.concurrency;\n } else {\n return Promise.reject(new TypeError(\n \"options argument must be an object but it is \" +\n util.classString(options)));\n }\n }\n limit = typeof limit === \"number\" &&\n isFinite(limit) && limit >= 1 ? limit : 0;\n return new MappingPromiseArray(promises, fn, limit, _filter).promise();\n}\n\nPromise.prototype.map = function (fn, options) {\n return map(this, fn, options, null);\n};\n\nPromise.map = function (promises, fn, options, _filter) {\n return map(promises, fn, options, _filter);\n};\n\n\n};\n","\"use strict\";\nmodule.exports = function(Promise) {\nvar util = require(\"./util\");\nvar async = Promise._async;\nvar tryCatch = util.tryCatch;\nvar errorObj = util.errorObj;\n\nfunction spreadAdapter(val, nodeback) {\n var promise = this;\n if (!util.isArray(val)) return successAdapter.call(promise, val, nodeback);\n var ret =\n tryCatch(nodeback).apply(promise._boundValue(), [null].concat(val));\n if (ret === errorObj) {\n async.throwLater(ret.e);\n }\n}\n\nfunction successAdapter(val, nodeback) {\n var promise = this;\n var receiver = promise._boundValue();\n var ret = val === undefined\n ? tryCatch(nodeback).call(receiver, null)\n : tryCatch(nodeback).call(receiver, null, val);\n if (ret === errorObj) {\n async.throwLater(ret.e);\n }\n}\nfunction errorAdapter(reason, nodeback) {\n var promise = this;\n if (!reason) {\n var newReason = new Error(reason + \"\");\n newReason.cause = reason;\n reason = newReason;\n }\n var ret = tryCatch(nodeback).call(promise._boundValue(), reason);\n if (ret === errorObj) {\n async.throwLater(ret.e);\n }\n}\n\nPromise.prototype.asCallback = Promise.prototype.nodeify = function (nodeback,\n options) {\n if (typeof nodeback == \"function\") {\n var adapter = successAdapter;\n if (options !== undefined && Object(options).spread) {\n adapter = spreadAdapter;\n }\n this._then(\n adapter,\n errorAdapter,\n undefined,\n this,\n nodeback\n );\n }\n return this;\n};\n};\n","\"use strict\";\nmodule.exports = function(Promise, INTERNAL) {\nvar THIS = {};\nvar util = require(\"./util\");\nvar nodebackForPromise = require(\"./nodeback\");\nvar withAppended = util.withAppended;\nvar maybeWrapAsError = util.maybeWrapAsError;\nvar canEvaluate = util.canEvaluate;\nvar TypeError = require(\"./errors\").TypeError;\nvar defaultSuffix = \"Async\";\nvar defaultPromisified = {__isPromisified__: true};\nvar noCopyProps = [\n \"arity\", \"length\",\n \"name\",\n \"arguments\",\n \"caller\",\n \"callee\",\n \"prototype\",\n \"__isPromisified__\"\n];\nvar noCopyPropsPattern = new RegExp(\"^(?:\" + noCopyProps.join(\"|\") + \")$\");\n\nvar defaultFilter = function(name) {\n return util.isIdentifier(name) &&\n name.charAt(0) !== \"_\" &&\n name !== \"constructor\";\n};\n\nfunction propsFilter(key) {\n return !noCopyPropsPattern.test(key);\n}\n\nfunction isPromisified(fn) {\n try {\n return fn.__isPromisified__ === true;\n }\n catch (e) {\n return false;\n }\n}\n\nfunction hasPromisified(obj, key, suffix) {\n var val = util.getDataPropertyOrDefault(obj, key + suffix,\n defaultPromisified);\n return val ? isPromisified(val) : false;\n}\nfunction checkValid(ret, suffix, suffixRegexp) {\n for (var i = 0; i < ret.length; i += 2) {\n var key = ret[i];\n if (suffixRegexp.test(key)) {\n var keyWithoutAsyncSuffix = key.replace(suffixRegexp, \"\");\n for (var j = 0; j < ret.length; j += 2) {\n if (ret[j] === keyWithoutAsyncSuffix) {\n throw new TypeError(\"Cannot promisify an API that has normal methods with '%s'-suffix\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\"\n .replace(\"%s\", suffix));\n }\n }\n }\n }\n}\n\nfunction promisifiableMethods(obj, suffix, suffixRegexp, filter) {\n var keys = util.inheritedDataKeys(obj);\n var ret = [];\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n var value = obj[key];\n var passesDefaultFilter = filter === defaultFilter\n ? true : defaultFilter(key, value, obj);\n if (typeof value === \"function\" &&\n !isPromisified(value) &&\n !hasPromisified(obj, key, suffix) &&\n filter(key, value, obj, passesDefaultFilter)) {\n ret.push(key, value);\n }\n }\n checkValid(ret, suffix, suffixRegexp);\n return ret;\n}\n\nvar escapeIdentRegex = function(str) {\n return str.replace(/([$])/, \"\\\\$\");\n};\n\nvar makeNodePromisifiedEval;\nif (!false) {\nvar switchCaseArgumentOrder = function(likelyArgumentCount) {\n var ret = [likelyArgumentCount];\n var min = Math.max(0, likelyArgumentCount - 1 - 3);\n for(var i = likelyArgumentCount - 1; i >= min; --i) {\n ret.push(i);\n }\n for(var i = likelyArgumentCount + 1; i <= 3; ++i) {\n ret.push(i);\n }\n return ret;\n};\n\nvar argumentSequence = function(argumentCount) {\n return util.filledRange(argumentCount, \"_arg\", \"\");\n};\n\nvar parameterDeclaration = function(parameterCount) {\n return util.filledRange(\n Math.max(parameterCount, 3), \"_arg\", \"\");\n};\n\nvar parameterCount = function(fn) {\n if (typeof fn.length === \"number\") {\n return Math.max(Math.min(fn.length, 1023 + 1), 0);\n }\n return 0;\n};\n\nmakeNodePromisifiedEval =\nfunction(callback, receiver, originalName, fn, _, multiArgs) {\n var newParameterCount = Math.max(0, parameterCount(fn) - 1);\n var argumentOrder = switchCaseArgumentOrder(newParameterCount);\n var shouldProxyThis = typeof callback === \"string\" || receiver === THIS;\n\n function generateCallForArgumentCount(count) {\n var args = argumentSequence(count).join(\", \");\n var comma = count > 0 ? \", \" : \"\";\n var ret;\n if (shouldProxyThis) {\n ret = \"ret = callback.call(this, {{args}}, nodeback); break;\\n\";\n } else {\n ret = receiver === undefined\n ? \"ret = callback({{args}}, nodeback); break;\\n\"\n : \"ret = callback.call(receiver, {{args}}, nodeback); break;\\n\";\n }\n return ret.replace(\"{{args}}\", args).replace(\", \", comma);\n }\n\n function generateArgumentSwitchCase() {\n var ret = \"\";\n for (var i = 0; i < argumentOrder.length; ++i) {\n ret += \"case \" + argumentOrder[i] +\":\" +\n generateCallForArgumentCount(argumentOrder[i]);\n }\n\n ret += \" \\n\\\n default: \\n\\\n var args = new Array(len + 1); \\n\\\n var i = 0; \\n\\\n for (var i = 0; i < len; ++i) { \\n\\\n args[i] = arguments[i]; \\n\\\n } \\n\\\n args[i] = nodeback; \\n\\\n [CodeForCall] \\n\\\n break; \\n\\\n \".replace(\"[CodeForCall]\", (shouldProxyThis\n ? \"ret = callback.apply(this, args);\\n\"\n : \"ret = callback.apply(receiver, args);\\n\"));\n return ret;\n }\n\n var getFunctionCode = typeof callback === \"string\"\n ? (\"this != null ? this['\"+callback+\"'] : fn\")\n : \"fn\";\n var body = \"'use strict'; \\n\\\n var ret = function (Parameters) { \\n\\\n 'use strict'; \\n\\\n var len = arguments.length; \\n\\\n var promise = new Promise(INTERNAL); \\n\\\n promise._captureStackTrace(); \\n\\\n var nodeback = nodebackForPromise(promise, \" + multiArgs + \"); \\n\\\n var ret; \\n\\\n var callback = tryCatch([GetFunctionCode]); \\n\\\n switch(len) { \\n\\\n [CodeForSwitchCase] \\n\\\n } \\n\\\n if (ret === errorObj) { \\n\\\n promise._rejectCallback(maybeWrapAsError(ret.e), true, true);\\n\\\n } \\n\\\n if (!promise._isFateSealed()) promise._setAsyncGuaranteed(); \\n\\\n return promise; \\n\\\n }; \\n\\\n notEnumerableProp(ret, '__isPromisified__', true); \\n\\\n return ret; \\n\\\n \".replace(\"[CodeForSwitchCase]\", generateArgumentSwitchCase())\n .replace(\"[GetFunctionCode]\", getFunctionCode);\n body = body.replace(\"Parameters\", parameterDeclaration(newParameterCount));\n return new Function(\"Promise\",\n \"fn\",\n \"receiver\",\n \"withAppended\",\n \"maybeWrapAsError\",\n \"nodebackForPromise\",\n \"tryCatch\",\n \"errorObj\",\n \"notEnumerableProp\",\n \"INTERNAL\",\n body)(\n Promise,\n fn,\n receiver,\n withAppended,\n maybeWrapAsError,\n nodebackForPromise,\n util.tryCatch,\n util.errorObj,\n util.notEnumerableProp,\n INTERNAL);\n};\n}\n\nfunction makeNodePromisifiedClosure(callback, receiver, _, fn, __, multiArgs) {\n var defaultThis = (function() {return this;})();\n var method = callback;\n if (typeof method === \"string\") {\n callback = fn;\n }\n function promisified() {\n var _receiver = receiver;\n if (receiver === THIS) _receiver = this;\n var promise = new Promise(INTERNAL);\n promise._captureStackTrace();\n var cb = typeof method === \"string\" && this !== defaultThis\n ? this[method] : callback;\n var fn = nodebackForPromise(promise, multiArgs);\n try {\n cb.apply(_receiver, withAppended(arguments, fn));\n } catch(e) {\n promise._rejectCallback(maybeWrapAsError(e), true, true);\n }\n if (!promise._isFateSealed()) promise._setAsyncGuaranteed();\n return promise;\n }\n util.notEnumerableProp(promisified, \"__isPromisified__\", true);\n return promisified;\n}\n\nvar makeNodePromisified = canEvaluate\n ? makeNodePromisifiedEval\n : makeNodePromisifiedClosure;\n\nfunction promisifyAll(obj, suffix, filter, promisifier, multiArgs) {\n var suffixRegexp = new RegExp(escapeIdentRegex(suffix) + \"$\");\n var methods =\n promisifiableMethods(obj, suffix, suffixRegexp, filter);\n\n for (var i = 0, len = methods.length; i < len; i+= 2) {\n var key = methods[i];\n var fn = methods[i+1];\n var promisifiedKey = key + suffix;\n if (promisifier === makeNodePromisified) {\n obj[promisifiedKey] =\n makeNodePromisified(key, THIS, key, fn, suffix, multiArgs);\n } else {\n var promisified = promisifier(fn, function() {\n return makeNodePromisified(key, THIS, key,\n fn, suffix, multiArgs);\n });\n util.notEnumerableProp(promisified, \"__isPromisified__\", true);\n obj[promisifiedKey] = promisified;\n }\n }\n util.toFastProperties(obj);\n return obj;\n}\n\nfunction promisify(callback, receiver, multiArgs) {\n return makeNodePromisified(callback, receiver, undefined,\n callback, null, multiArgs);\n}\n\nPromise.promisify = function (fn, options) {\n if (typeof fn !== \"function\") {\n throw new TypeError(\"expecting a function but got \" + util.classString(fn));\n }\n if (isPromisified(fn)) {\n return fn;\n }\n options = Object(options);\n var receiver = options.context === undefined ? THIS : options.context;\n var multiArgs = !!options.multiArgs;\n var ret = promisify(fn, receiver, multiArgs);\n util.copyDescriptors(fn, ret, propsFilter);\n return ret;\n};\n\nPromise.promisifyAll = function (target, options) {\n if (typeof target !== \"function\" && typeof target !== \"object\") {\n throw new TypeError(\"the target of promisifyAll must be an object or a function\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n }\n options = Object(options);\n var multiArgs = !!options.multiArgs;\n var suffix = options.suffix;\n if (typeof suffix !== \"string\") suffix = defaultSuffix;\n var filter = options.filter;\n if (typeof filter !== \"function\") filter = defaultFilter;\n var promisifier = options.promisifier;\n if (typeof promisifier !== \"function\") promisifier = makeNodePromisified;\n\n if (!util.isIdentifier(suffix)) {\n throw new RangeError(\"suffix must be a valid identifier\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n }\n\n var keys = util.inheritedDataKeys(target);\n for (var i = 0; i < keys.length; ++i) {\n var value = target[keys[i]];\n if (keys[i] !== \"constructor\" &&\n util.isClass(value)) {\n promisifyAll(value.prototype, suffix, filter, promisifier,\n multiArgs);\n promisifyAll(value, suffix, filter, promisifier, multiArgs);\n }\n }\n\n return promisifyAll(target, suffix, filter, promisifier, multiArgs);\n};\n};\n\n","\"use strict\";\nmodule.exports = function(\n Promise, PromiseArray, tryConvertToPromise, apiRejection) {\nvar util = require(\"./util\");\nvar isObject = util.isObject;\nvar es5 = require(\"./es5\");\nvar Es6Map;\nif (typeof Map === \"function\") Es6Map = Map;\n\nvar mapToEntries = (function() {\n var index = 0;\n var size = 0;\n\n function extractEntry(value, key) {\n this[index] = value;\n this[index + size] = key;\n index++;\n }\n\n return function mapToEntries(map) {\n size = map.size;\n index = 0;\n var ret = new Array(map.size * 2);\n map.forEach(extractEntry, ret);\n return ret;\n };\n})();\n\nvar entriesToMap = function(entries) {\n var ret = new Es6Map();\n var length = entries.length / 2 | 0;\n for (var i = 0; i < length; ++i) {\n var key = entries[length + i];\n var value = entries[i];\n ret.set(key, value);\n }\n return ret;\n};\n\nfunction PropertiesPromiseArray(obj) {\n var isMap = false;\n var entries;\n if (Es6Map !== undefined && obj instanceof Es6Map) {\n entries = mapToEntries(obj);\n isMap = true;\n } else {\n var keys = es5.keys(obj);\n var len = keys.length;\n entries = new Array(len * 2);\n for (var i = 0; i < len; ++i) {\n var key = keys[i];\n entries[i] = obj[key];\n entries[i + len] = key;\n }\n }\n this.constructor$(entries);\n this._isMap = isMap;\n this._init$(undefined, isMap ? -6 : -3);\n}\nutil.inherits(PropertiesPromiseArray, PromiseArray);\n\nPropertiesPromiseArray.prototype._init = function () {};\n\nPropertiesPromiseArray.prototype._promiseFulfilled = function (value, index) {\n this._values[index] = value;\n var totalResolved = ++this._totalResolved;\n if (totalResolved >= this._length) {\n var val;\n if (this._isMap) {\n val = entriesToMap(this._values);\n } else {\n val = {};\n var keyOffset = this.length();\n for (var i = 0, len = this.length(); i < len; ++i) {\n val[this._values[i + keyOffset]] = this._values[i];\n }\n }\n this._resolve(val);\n return true;\n }\n return false;\n};\n\nPropertiesPromiseArray.prototype.shouldCopyValues = function () {\n return false;\n};\n\nPropertiesPromiseArray.prototype.getActualLength = function (len) {\n return len >> 1;\n};\n\nfunction props(promises) {\n var ret;\n var castValue = tryConvertToPromise(promises);\n\n if (!isObject(castValue)) {\n return apiRejection(\"cannot await properties of a non-object\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n } else if (castValue instanceof Promise) {\n ret = castValue._then(\n Promise.props, undefined, undefined, undefined, undefined);\n } else {\n ret = new PropertiesPromiseArray(castValue).promise();\n }\n\n if (castValue instanceof Promise) {\n ret._propagateFrom(castValue, 2);\n }\n return ret;\n}\n\nPromise.prototype.props = function () {\n return props(this);\n};\n\nPromise.props = function (promises) {\n return props(promises);\n};\n};\n","\"use strict\";\nmodule.exports = function(\n Promise, INTERNAL, tryConvertToPromise, apiRejection) {\nvar util = require(\"./util\");\n\nvar raceLater = function (promise) {\n return promise.then(function(array) {\n return race(array, promise);\n });\n};\n\nfunction race(promises, parent) {\n var maybePromise = tryConvertToPromise(promises);\n\n if (maybePromise instanceof Promise) {\n return raceLater(maybePromise);\n } else {\n promises = util.asArray(promises);\n if (promises === null)\n return apiRejection(\"expecting an array or an iterable object but got \" + util.classString(promises));\n }\n\n var ret = new Promise(INTERNAL);\n if (parent !== undefined) {\n ret._propagateFrom(parent, 3);\n }\n var fulfill = ret._fulfill;\n var reject = ret._reject;\n for (var i = 0, len = promises.length; i < len; ++i) {\n var val = promises[i];\n\n if (val === undefined && !(i in promises)) {\n continue;\n }\n\n Promise.cast(val)._then(fulfill, reject, undefined, ret, null);\n }\n return ret;\n}\n\nPromise.race = function (promises) {\n return race(promises, undefined);\n};\n\nPromise.prototype.race = function () {\n return race(this, undefined);\n};\n\n};\n","\"use strict\";\nmodule.exports = function(Promise,\n PromiseArray,\n apiRejection,\n tryConvertToPromise,\n INTERNAL,\n debug) {\nvar util = require(\"./util\");\nvar tryCatch = util.tryCatch;\n\nfunction ReductionPromiseArray(promises, fn, initialValue, _each) {\n this.constructor$(promises);\n var context = Promise._getContext();\n this._fn = util.contextBind(context, fn);\n if (initialValue !== undefined) {\n initialValue = Promise.resolve(initialValue);\n initialValue._attachCancellationCallback(this);\n }\n this._initialValue = initialValue;\n this._currentCancellable = null;\n if(_each === INTERNAL) {\n this._eachValues = Array(this._length);\n } else if (_each === 0) {\n this._eachValues = null;\n } else {\n this._eachValues = undefined;\n }\n this._promise._captureStackTrace();\n this._init$(undefined, -5);\n}\nutil.inherits(ReductionPromiseArray, PromiseArray);\n\nReductionPromiseArray.prototype._gotAccum = function(accum) {\n if (this._eachValues !== undefined &&\n this._eachValues !== null &&\n accum !== INTERNAL) {\n this._eachValues.push(accum);\n }\n};\n\nReductionPromiseArray.prototype._eachComplete = function(value) {\n if (this._eachValues !== null) {\n this._eachValues.push(value);\n }\n return this._eachValues;\n};\n\nReductionPromiseArray.prototype._init = function() {};\n\nReductionPromiseArray.prototype._resolveEmptyArray = function() {\n this._resolve(this._eachValues !== undefined ? this._eachValues\n : this._initialValue);\n};\n\nReductionPromiseArray.prototype.shouldCopyValues = function () {\n return false;\n};\n\nReductionPromiseArray.prototype._resolve = function(value) {\n this._promise._resolveCallback(value);\n this._values = null;\n};\n\nReductionPromiseArray.prototype._resultCancelled = function(sender) {\n if (sender === this._initialValue) return this._cancel();\n if (this._isResolved()) return;\n this._resultCancelled$();\n if (this._currentCancellable instanceof Promise) {\n this._currentCancellable.cancel();\n }\n if (this._initialValue instanceof Promise) {\n this._initialValue.cancel();\n }\n};\n\nReductionPromiseArray.prototype._iterate = function (values) {\n this._values = values;\n var value;\n var i;\n var length = values.length;\n if (this._initialValue !== undefined) {\n value = this._initialValue;\n i = 0;\n } else {\n value = Promise.resolve(values[0]);\n i = 1;\n }\n\n this._currentCancellable = value;\n\n for (var j = i; j < length; ++j) {\n var maybePromise = values[j];\n if (maybePromise instanceof Promise) {\n maybePromise.suppressUnhandledRejections();\n }\n }\n\n if (!value.isRejected()) {\n for (; i < length; ++i) {\n var ctx = {\n accum: null,\n value: values[i],\n index: i,\n length: length,\n array: this\n };\n\n value = value._then(gotAccum, undefined, undefined, ctx, undefined);\n\n if ((i & 127) === 0) {\n value._setNoAsyncGuarantee();\n }\n }\n }\n\n if (this._eachValues !== undefined) {\n value = value\n ._then(this._eachComplete, undefined, undefined, this, undefined);\n }\n value._then(completed, completed, undefined, value, this);\n};\n\nPromise.prototype.reduce = function (fn, initialValue) {\n return reduce(this, fn, initialValue, null);\n};\n\nPromise.reduce = function (promises, fn, initialValue, _each) {\n return reduce(promises, fn, initialValue, _each);\n};\n\nfunction completed(valueOrReason, array) {\n if (this.isFulfilled()) {\n array._resolve(valueOrReason);\n } else {\n array._reject(valueOrReason);\n }\n}\n\nfunction reduce(promises, fn, initialValue, _each) {\n if (typeof fn !== \"function\") {\n return apiRejection(\"expecting a function but got \" + util.classString(fn));\n }\n var array = new ReductionPromiseArray(promises, fn, initialValue, _each);\n return array.promise();\n}\n\nfunction gotAccum(accum) {\n this.accum = accum;\n this.array._gotAccum(accum);\n var value = tryConvertToPromise(this.value, this.array._promise);\n if (value instanceof Promise) {\n this.array._currentCancellable = value;\n return value._then(gotValue, undefined, undefined, this, undefined);\n } else {\n return gotValue.call(this, value);\n }\n}\n\nfunction gotValue(value) {\n var array = this.array;\n var promise = array._promise;\n var fn = tryCatch(array._fn);\n promise._pushContext();\n var ret;\n if (array._eachValues !== undefined) {\n ret = fn.call(promise._boundValue(), value, this.index, this.length);\n } else {\n ret = fn.call(promise._boundValue(),\n this.accum, value, this.index, this.length);\n }\n if (ret instanceof Promise) {\n array._currentCancellable = ret;\n }\n var promiseCreated = promise._popContext();\n debug.checkForgottenReturns(\n ret,\n promiseCreated,\n array._eachValues !== undefined ? \"Promise.each\" : \"Promise.reduce\",\n promise\n );\n return ret;\n}\n};\n","\"use strict\";\nmodule.exports =\n function(Promise, PromiseArray, debug) {\nvar PromiseInspection = Promise.PromiseInspection;\nvar util = require(\"./util\");\n\nfunction SettledPromiseArray(values) {\n this.constructor$(values);\n}\nutil.inherits(SettledPromiseArray, PromiseArray);\n\nSettledPromiseArray.prototype._promiseResolved = function (index, inspection) {\n this._values[index] = inspection;\n var totalResolved = ++this._totalResolved;\n if (totalResolved >= this._length) {\n this._resolve(this._values);\n return true;\n }\n return false;\n};\n\nSettledPromiseArray.prototype._promiseFulfilled = function (value, index) {\n var ret = new PromiseInspection();\n ret._bitField = 33554432;\n ret._settledValueField = value;\n return this._promiseResolved(index, ret);\n};\nSettledPromiseArray.prototype._promiseRejected = function (reason, index) {\n var ret = new PromiseInspection();\n ret._bitField = 16777216;\n ret._settledValueField = reason;\n return this._promiseResolved(index, ret);\n};\n\nPromise.settle = function (promises) {\n debug.deprecated(\".settle()\", \".reflect()\");\n return new SettledPromiseArray(promises).promise();\n};\n\nPromise.allSettled = function (promises) {\n return new SettledPromiseArray(promises).promise();\n};\n\nPromise.prototype.settle = function () {\n return Promise.settle(this);\n};\n};\n","\"use strict\";\nmodule.exports =\nfunction(Promise, PromiseArray, apiRejection) {\nvar util = require(\"./util\");\nvar RangeError = require(\"./errors\").RangeError;\nvar AggregateError = require(\"./errors\").AggregateError;\nvar isArray = util.isArray;\nvar CANCELLATION = {};\n\n\nfunction SomePromiseArray(values) {\n this.constructor$(values);\n this._howMany = 0;\n this._unwrap = false;\n this._initialized = false;\n}\nutil.inherits(SomePromiseArray, PromiseArray);\n\nSomePromiseArray.prototype._init = function () {\n if (!this._initialized) {\n return;\n }\n if (this._howMany === 0) {\n this._resolve([]);\n return;\n }\n this._init$(undefined, -5);\n var isArrayResolved = isArray(this._values);\n if (!this._isResolved() &&\n isArrayResolved &&\n this._howMany > this._canPossiblyFulfill()) {\n this._reject(this._getRangeError(this.length()));\n }\n};\n\nSomePromiseArray.prototype.init = function () {\n this._initialized = true;\n this._init();\n};\n\nSomePromiseArray.prototype.setUnwrap = function () {\n this._unwrap = true;\n};\n\nSomePromiseArray.prototype.howMany = function () {\n return this._howMany;\n};\n\nSomePromiseArray.prototype.setHowMany = function (count) {\n this._howMany = count;\n};\n\nSomePromiseArray.prototype._promiseFulfilled = function (value) {\n this._addFulfilled(value);\n if (this._fulfilled() === this.howMany()) {\n this._values.length = this.howMany();\n if (this.howMany() === 1 && this._unwrap) {\n this._resolve(this._values[0]);\n } else {\n this._resolve(this._values);\n }\n return true;\n }\n return false;\n\n};\nSomePromiseArray.prototype._promiseRejected = function (reason) {\n this._addRejected(reason);\n return this._checkOutcome();\n};\n\nSomePromiseArray.prototype._promiseCancelled = function () {\n if (this._values instanceof Promise || this._values == null) {\n return this._cancel();\n }\n this._addRejected(CANCELLATION);\n return this._checkOutcome();\n};\n\nSomePromiseArray.prototype._checkOutcome = function() {\n if (this.howMany() > this._canPossiblyFulfill()) {\n var e = new AggregateError();\n for (var i = this.length(); i < this._values.length; ++i) {\n if (this._values[i] !== CANCELLATION) {\n e.push(this._values[i]);\n }\n }\n if (e.length > 0) {\n this._reject(e);\n } else {\n this._cancel();\n }\n return true;\n }\n return false;\n};\n\nSomePromiseArray.prototype._fulfilled = function () {\n return this._totalResolved;\n};\n\nSomePromiseArray.prototype._rejected = function () {\n return this._values.length - this.length();\n};\n\nSomePromiseArray.prototype._addRejected = function (reason) {\n this._values.push(reason);\n};\n\nSomePromiseArray.prototype._addFulfilled = function (value) {\n this._values[this._totalResolved++] = value;\n};\n\nSomePromiseArray.prototype._canPossiblyFulfill = function () {\n return this.length() - this._rejected();\n};\n\nSomePromiseArray.prototype._getRangeError = function (count) {\n var message = \"Input array must contain at least \" +\n this._howMany + \" items but contains only \" + count + \" items\";\n return new RangeError(message);\n};\n\nSomePromiseArray.prototype._resolveEmptyArray = function () {\n this._reject(this._getRangeError(0));\n};\n\nfunction some(promises, howMany) {\n if ((howMany | 0) !== howMany || howMany < 0) {\n return apiRejection(\"expecting a positive integer\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n }\n var ret = new SomePromiseArray(promises);\n var promise = ret.promise();\n ret.setHowMany(howMany);\n ret.init();\n return promise;\n}\n\nPromise.some = function (promises, howMany) {\n return some(promises, howMany);\n};\n\nPromise.prototype.some = function (howMany) {\n return some(this, howMany);\n};\n\nPromise._SomePromiseArray = SomePromiseArray;\n};\n","\"use strict\";\nmodule.exports = function(Promise, INTERNAL, debug) {\nvar util = require(\"./util\");\nvar TimeoutError = Promise.TimeoutError;\n\nfunction HandleWrapper(handle) {\n this.handle = handle;\n}\n\nHandleWrapper.prototype._resultCancelled = function() {\n clearTimeout(this.handle);\n};\n\nvar afterValue = function(value) { return delay(+this).thenReturn(value); };\nvar delay = Promise.delay = function (ms, value) {\n var ret;\n var handle;\n if (value !== undefined) {\n ret = Promise.resolve(value)\n ._then(afterValue, null, null, ms, undefined);\n if (debug.cancellation() && value instanceof Promise) {\n ret._setOnCancel(value);\n }\n } else {\n ret = new Promise(INTERNAL);\n handle = setTimeout(function() { ret._fulfill(); }, +ms);\n if (debug.cancellation()) {\n ret._setOnCancel(new HandleWrapper(handle));\n }\n ret._captureStackTrace();\n }\n ret._setAsyncGuaranteed();\n return ret;\n};\n\nPromise.prototype.delay = function (ms) {\n return delay(ms, this);\n};\n\nvar afterTimeout = function (promise, message, parent) {\n var err;\n if (typeof message !== \"string\") {\n if (message instanceof Error) {\n err = message;\n } else {\n err = new TimeoutError(\"operation timed out\");\n }\n } else {\n err = new TimeoutError(message);\n }\n util.markAsOriginatingFromRejection(err);\n promise._attachExtraTrace(err);\n promise._reject(err);\n\n if (parent != null) {\n parent.cancel();\n }\n};\n\nfunction successClear(value) {\n clearTimeout(this.handle);\n return value;\n}\n\nfunction failureClear(reason) {\n clearTimeout(this.handle);\n throw reason;\n}\n\nPromise.prototype.timeout = function (ms, message) {\n ms = +ms;\n var ret, parent;\n\n var handleWrapper = new HandleWrapper(setTimeout(function timeoutTimeout() {\n if (ret.isPending()) {\n afterTimeout(ret, message, parent);\n }\n }, ms));\n\n if (debug.cancellation()) {\n parent = this.then();\n ret = parent._then(successClear, failureClear,\n undefined, handleWrapper, undefined);\n ret._setOnCancel(handleWrapper);\n } else {\n ret = this._then(successClear, failureClear,\n undefined, handleWrapper, undefined);\n }\n\n return ret;\n};\n\n};\n","\"use strict\";\nmodule.exports = function (Promise, apiRejection, tryConvertToPromise,\n createContext, INTERNAL, debug) {\n var util = require(\"./util\");\n var TypeError = require(\"./errors\").TypeError;\n var inherits = require(\"./util\").inherits;\n var errorObj = util.errorObj;\n var tryCatch = util.tryCatch;\n var NULL = {};\n\n function thrower(e) {\n setTimeout(function(){throw e;}, 0);\n }\n\n function castPreservingDisposable(thenable) {\n var maybePromise = tryConvertToPromise(thenable);\n if (maybePromise !== thenable &&\n typeof thenable._isDisposable === \"function\" &&\n typeof thenable._getDisposer === \"function\" &&\n thenable._isDisposable()) {\n maybePromise._setDisposable(thenable._getDisposer());\n }\n return maybePromise;\n }\n function dispose(resources, inspection) {\n var i = 0;\n var len = resources.length;\n var ret = new Promise(INTERNAL);\n function iterator() {\n if (i >= len) return ret._fulfill();\n var maybePromise = castPreservingDisposable(resources[i++]);\n if (maybePromise instanceof Promise &&\n maybePromise._isDisposable()) {\n try {\n maybePromise = tryConvertToPromise(\n maybePromise._getDisposer().tryDispose(inspection),\n resources.promise);\n } catch (e) {\n return thrower(e);\n }\n if (maybePromise instanceof Promise) {\n return maybePromise._then(iterator, thrower,\n null, null, null);\n }\n }\n iterator();\n }\n iterator();\n return ret;\n }\n\n function Disposer(data, promise, context) {\n this._data = data;\n this._promise = promise;\n this._context = context;\n }\n\n Disposer.prototype.data = function () {\n return this._data;\n };\n\n Disposer.prototype.promise = function () {\n return this._promise;\n };\n\n Disposer.prototype.resource = function () {\n if (this.promise().isFulfilled()) {\n return this.promise().value();\n }\n return NULL;\n };\n\n Disposer.prototype.tryDispose = function(inspection) {\n var resource = this.resource();\n var context = this._context;\n if (context !== undefined) context._pushContext();\n var ret = resource !== NULL\n ? this.doDispose(resource, inspection) : null;\n if (context !== undefined) context._popContext();\n this._promise._unsetDisposable();\n this._data = null;\n return ret;\n };\n\n Disposer.isDisposer = function (d) {\n return (d != null &&\n typeof d.resource === \"function\" &&\n typeof d.tryDispose === \"function\");\n };\n\n function FunctionDisposer(fn, promise, context) {\n this.constructor$(fn, promise, context);\n }\n inherits(FunctionDisposer, Disposer);\n\n FunctionDisposer.prototype.doDispose = function (resource, inspection) {\n var fn = this.data();\n return fn.call(resource, resource, inspection);\n };\n\n function maybeUnwrapDisposer(value) {\n if (Disposer.isDisposer(value)) {\n this.resources[this.index]._setDisposable(value);\n return value.promise();\n }\n return value;\n }\n\n function ResourceList(length) {\n this.length = length;\n this.promise = null;\n this[length-1] = null;\n }\n\n ResourceList.prototype._resultCancelled = function() {\n var len = this.length;\n for (var i = 0; i < len; ++i) {\n var item = this[i];\n if (item instanceof Promise) {\n item.cancel();\n }\n }\n };\n\n Promise.using = function () {\n var len = arguments.length;\n if (len < 2) return apiRejection(\n \"you must pass at least 2 arguments to Promise.using\");\n var fn = arguments[len - 1];\n if (typeof fn !== \"function\") {\n return apiRejection(\"expecting a function but got \" + util.classString(fn));\n }\n var input;\n var spreadArgs = true;\n if (len === 2 && Array.isArray(arguments[0])) {\n input = arguments[0];\n len = input.length;\n spreadArgs = false;\n } else {\n input = arguments;\n len--;\n }\n var resources = new ResourceList(len);\n for (var i = 0; i < len; ++i) {\n var resource = input[i];\n if (Disposer.isDisposer(resource)) {\n var disposer = resource;\n resource = resource.promise();\n resource._setDisposable(disposer);\n } else {\n var maybePromise = tryConvertToPromise(resource);\n if (maybePromise instanceof Promise) {\n resource =\n maybePromise._then(maybeUnwrapDisposer, null, null, {\n resources: resources,\n index: i\n }, undefined);\n }\n }\n resources[i] = resource;\n }\n\n var reflectedResources = new Array(resources.length);\n for (var i = 0; i < reflectedResources.length; ++i) {\n reflectedResources[i] = Promise.resolve(resources[i]).reflect();\n }\n\n var resultPromise = Promise.all(reflectedResources)\n .then(function(inspections) {\n for (var i = 0; i < inspections.length; ++i) {\n var inspection = inspections[i];\n if (inspection.isRejected()) {\n errorObj.e = inspection.error();\n return errorObj;\n } else if (!inspection.isFulfilled()) {\n resultPromise.cancel();\n return;\n }\n inspections[i] = inspection.value();\n }\n promise._pushContext();\n\n fn = tryCatch(fn);\n var ret = spreadArgs\n ? fn.apply(undefined, inspections) : fn(inspections);\n var promiseCreated = promise._popContext();\n debug.checkForgottenReturns(\n ret, promiseCreated, \"Promise.using\", promise);\n return ret;\n });\n\n var promise = resultPromise.lastly(function() {\n var inspection = new Promise.PromiseInspection(resultPromise);\n return dispose(resources, inspection);\n });\n resources.promise = promise;\n promise._setOnCancel(resources);\n return promise;\n };\n\n Promise.prototype._setDisposable = function (disposer) {\n this._bitField = this._bitField | 131072;\n this._disposer = disposer;\n };\n\n Promise.prototype._isDisposable = function () {\n return (this._bitField & 131072) > 0;\n };\n\n Promise.prototype._getDisposer = function () {\n return this._disposer;\n };\n\n Promise.prototype._unsetDisposable = function () {\n this._bitField = this._bitField & (~131072);\n this._disposer = undefined;\n };\n\n Promise.prototype.disposer = function (fn) {\n if (typeof fn === \"function\") {\n return new FunctionDisposer(fn, this, createContext());\n }\n throw new TypeError();\n };\n\n};\n","\"use strict\";\nmodule.exports = function(Promise) {\nvar SomePromiseArray = Promise._SomePromiseArray;\nfunction any(promises) {\n var ret = new SomePromiseArray(promises);\n var promise = ret.promise();\n ret.setHowMany(1);\n ret.setUnwrap();\n ret.init();\n return promise;\n}\n\nPromise.any = function (promises) {\n return any(promises);\n};\n\nPromise.prototype.any = function () {\n return any(this);\n};\n\n};\n","\"use strict\";\nmodule.exports = function(Promise, INTERNAL) {\nvar PromiseReduce = Promise.reduce;\nvar PromiseAll = Promise.all;\n\nfunction promiseAllThis() {\n return PromiseAll(this);\n}\n\nfunction PromiseMapSeries(promises, fn) {\n return PromiseReduce(promises, fn, INTERNAL, INTERNAL);\n}\n\nPromise.prototype.each = function (fn) {\n return PromiseReduce(this, fn, INTERNAL, 0)\n ._then(promiseAllThis, undefined, undefined, this, undefined);\n};\n\nPromise.prototype.mapSeries = function (fn) {\n return PromiseReduce(this, fn, INTERNAL, INTERNAL);\n};\n\nPromise.each = function (promises, fn) {\n return PromiseReduce(promises, fn, INTERNAL, 0)\n ._then(promiseAllThis, undefined, undefined, promises, undefined);\n};\n\nPromise.mapSeries = PromiseMapSeries;\n};\n\n","\"use strict\";\nmodule.exports = function(Promise, INTERNAL) {\nvar PromiseMap = Promise.map;\n\nPromise.prototype.filter = function (fn, options) {\n return PromiseMap(this, fn, options, INTERNAL);\n};\n\nPromise.filter = function (promises, fn, options) {\n return PromiseMap(promises, fn, options, INTERNAL);\n};\n};\n","\"use strict\";\nmodule.exports = function() {\nvar makeSelfResolutionError = function () {\n return new TypeError(\"circular promise resolution chain\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n};\nvar reflectHandler = function() {\n return new Promise.PromiseInspection(this._target());\n};\nvar apiRejection = function(msg) {\n return Promise.reject(new TypeError(msg));\n};\nfunction Proxyable() {}\nvar UNDEFINED_BINDING = {};\nvar util = require(\"./util\");\nutil.setReflectHandler(reflectHandler);\n\nvar getDomain = function() {\n var domain = process.domain;\n if (domain === undefined) {\n return null;\n }\n return domain;\n};\nvar getContextDefault = function() {\n return null;\n};\nvar getContextDomain = function() {\n return {\n domain: getDomain(),\n async: null\n };\n};\nvar AsyncResource = util.isNode && util.nodeSupportsAsyncResource ?\n require(\"async_hooks\").AsyncResource : null;\nvar getContextAsyncHooks = function() {\n return {\n domain: getDomain(),\n async: new AsyncResource(\"Bluebird::Promise\")\n };\n};\nvar getContext = util.isNode ? getContextDomain : getContextDefault;\nutil.notEnumerableProp(Promise, \"_getContext\", getContext);\nvar enableAsyncHooks = function() {\n getContext = getContextAsyncHooks;\n util.notEnumerableProp(Promise, \"_getContext\", getContextAsyncHooks);\n};\nvar disableAsyncHooks = function() {\n getContext = getContextDomain;\n util.notEnumerableProp(Promise, \"_getContext\", getContextDomain);\n};\n\nvar es5 = require(\"./es5\");\nvar Async = require(\"./async\");\nvar async = new Async();\nes5.defineProperty(Promise, \"_async\", {value: async});\nvar errors = require(\"./errors\");\nvar TypeError = Promise.TypeError = errors.TypeError;\nPromise.RangeError = errors.RangeError;\nvar CancellationError = Promise.CancellationError = errors.CancellationError;\nPromise.TimeoutError = errors.TimeoutError;\nPromise.OperationalError = errors.OperationalError;\nPromise.RejectionError = errors.OperationalError;\nPromise.AggregateError = errors.AggregateError;\nvar INTERNAL = function(){};\nvar APPLY = {};\nvar NEXT_FILTER = {};\nvar tryConvertToPromise = require(\"./thenables\")(Promise, INTERNAL);\nvar PromiseArray =\n require(\"./promise_array\")(Promise, INTERNAL,\n tryConvertToPromise, apiRejection, Proxyable);\nvar Context = require(\"./context\")(Promise);\n /*jshint unused:false*/\nvar createContext = Context.create;\n\nvar debug = require(\"./debuggability\")(Promise, Context,\n enableAsyncHooks, disableAsyncHooks);\nvar CapturedTrace = debug.CapturedTrace;\nvar PassThroughHandlerContext =\n require(\"./finally\")(Promise, tryConvertToPromise, NEXT_FILTER);\nvar catchFilter = require(\"./catch_filter\")(NEXT_FILTER);\nvar nodebackForPromise = require(\"./nodeback\");\nvar errorObj = util.errorObj;\nvar tryCatch = util.tryCatch;\nfunction check(self, executor) {\n if (self == null || self.constructor !== Promise) {\n throw new TypeError(\"the promise constructor cannot be invoked directly\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n }\n if (typeof executor !== \"function\") {\n throw new TypeError(\"expecting a function but got \" + util.classString(executor));\n }\n\n}\n\nfunction Promise(executor) {\n if (executor !== INTERNAL) {\n check(this, executor);\n }\n this._bitField = 0;\n this._fulfillmentHandler0 = undefined;\n this._rejectionHandler0 = undefined;\n this._promise0 = undefined;\n this._receiver0 = undefined;\n this._resolveFromExecutor(executor);\n this._promiseCreated();\n this._fireEvent(\"promiseCreated\", this);\n}\n\nPromise.prototype.toString = function () {\n return \"[object Promise]\";\n};\n\nPromise.prototype.caught = Promise.prototype[\"catch\"] = function (fn) {\n var len = arguments.length;\n if (len > 1) {\n var catchInstances = new Array(len - 1),\n j = 0, i;\n for (i = 0; i < len - 1; ++i) {\n var item = arguments[i];\n if (util.isObject(item)) {\n catchInstances[j++] = item;\n } else {\n return apiRejection(\"Catch statement predicate: \" +\n \"expecting an object but got \" + util.classString(item));\n }\n }\n catchInstances.length = j;\n fn = arguments[i];\n\n if (typeof fn !== \"function\") {\n throw new TypeError(\"The last argument to .catch() \" +\n \"must be a function, got \" + util.toString(fn));\n }\n return this.then(undefined, catchFilter(catchInstances, fn, this));\n }\n return this.then(undefined, fn);\n};\n\nPromise.prototype.reflect = function () {\n return this._then(reflectHandler,\n reflectHandler, undefined, this, undefined);\n};\n\nPromise.prototype.then = function (didFulfill, didReject) {\n if (debug.warnings() && arguments.length > 0 &&\n typeof didFulfill !== \"function\" &&\n typeof didReject !== \"function\") {\n var msg = \".then() only accepts functions but was passed: \" +\n util.classString(didFulfill);\n if (arguments.length > 1) {\n msg += \", \" + util.classString(didReject);\n }\n this._warn(msg);\n }\n return this._then(didFulfill, didReject, undefined, undefined, undefined);\n};\n\nPromise.prototype.done = function (didFulfill, didReject) {\n var promise =\n this._then(didFulfill, didReject, undefined, undefined, undefined);\n promise._setIsFinal();\n};\n\nPromise.prototype.spread = function (fn) {\n if (typeof fn !== \"function\") {\n return apiRejection(\"expecting a function but got \" + util.classString(fn));\n }\n return this.all()._then(fn, undefined, undefined, APPLY, undefined);\n};\n\nPromise.prototype.toJSON = function () {\n var ret = {\n isFulfilled: false,\n isRejected: false,\n fulfillmentValue: undefined,\n rejectionReason: undefined\n };\n if (this.isFulfilled()) {\n ret.fulfillmentValue = this.value();\n ret.isFulfilled = true;\n } else if (this.isRejected()) {\n ret.rejectionReason = this.reason();\n ret.isRejected = true;\n }\n return ret;\n};\n\nPromise.prototype.all = function () {\n if (arguments.length > 0) {\n this._warn(\".all() was passed arguments but it does not take any\");\n }\n return new PromiseArray(this).promise();\n};\n\nPromise.prototype.error = function (fn) {\n return this.caught(util.originatesFromRejection, fn);\n};\n\nPromise.getNewLibraryCopy = module.exports;\n\nPromise.is = function (val) {\n return val instanceof Promise;\n};\n\nPromise.fromNode = Promise.fromCallback = function(fn) {\n var ret = new Promise(INTERNAL);\n ret._captureStackTrace();\n var multiArgs = arguments.length > 1 ? !!Object(arguments[1]).multiArgs\n : false;\n var result = tryCatch(fn)(nodebackForPromise(ret, multiArgs));\n if (result === errorObj) {\n ret._rejectCallback(result.e, true);\n }\n if (!ret._isFateSealed()) ret._setAsyncGuaranteed();\n return ret;\n};\n\nPromise.all = function (promises) {\n return new PromiseArray(promises).promise();\n};\n\nPromise.cast = function (obj) {\n var ret = tryConvertToPromise(obj);\n if (!(ret instanceof Promise)) {\n ret = new Promise(INTERNAL);\n ret._captureStackTrace();\n ret._setFulfilled();\n ret._rejectionHandler0 = obj;\n }\n return ret;\n};\n\nPromise.resolve = Promise.fulfilled = Promise.cast;\n\nPromise.reject = Promise.rejected = function (reason) {\n var ret = new Promise(INTERNAL);\n ret._captureStackTrace();\n ret._rejectCallback(reason, true);\n return ret;\n};\n\nPromise.setScheduler = function(fn) {\n if (typeof fn !== \"function\") {\n throw new TypeError(\"expecting a function but got \" + util.classString(fn));\n }\n return async.setScheduler(fn);\n};\n\nPromise.prototype._then = function (\n didFulfill,\n didReject,\n _, receiver,\n internalData\n) {\n var haveInternalData = internalData !== undefined;\n var promise = haveInternalData ? internalData : new Promise(INTERNAL);\n var target = this._target();\n var bitField = target._bitField;\n\n if (!haveInternalData) {\n promise._propagateFrom(this, 3);\n promise._captureStackTrace();\n if (receiver === undefined &&\n ((this._bitField & 2097152) !== 0)) {\n if (!((bitField & 50397184) === 0)) {\n receiver = this._boundValue();\n } else {\n receiver = target === this ? undefined : this._boundTo;\n }\n }\n this._fireEvent(\"promiseChained\", this, promise);\n }\n\n var context = getContext();\n if (!((bitField & 50397184) === 0)) {\n var handler, value, settler = target._settlePromiseCtx;\n if (((bitField & 33554432) !== 0)) {\n value = target._rejectionHandler0;\n handler = didFulfill;\n } else if (((bitField & 16777216) !== 0)) {\n value = target._fulfillmentHandler0;\n handler = didReject;\n target._unsetRejectionIsUnhandled();\n } else {\n settler = target._settlePromiseLateCancellationObserver;\n value = new CancellationError(\"late cancellation observer\");\n target._attachExtraTrace(value);\n handler = didReject;\n }\n\n async.invoke(settler, target, {\n handler: util.contextBind(context, handler),\n promise: promise,\n receiver: receiver,\n value: value\n });\n } else {\n target._addCallbacks(didFulfill, didReject, promise,\n receiver, context);\n }\n\n return promise;\n};\n\nPromise.prototype._length = function () {\n return this._bitField & 65535;\n};\n\nPromise.prototype._isFateSealed = function () {\n return (this._bitField & 117506048) !== 0;\n};\n\nPromise.prototype._isFollowing = function () {\n return (this._bitField & 67108864) === 67108864;\n};\n\nPromise.prototype._setLength = function (len) {\n this._bitField = (this._bitField & -65536) |\n (len & 65535);\n};\n\nPromise.prototype._setFulfilled = function () {\n this._bitField = this._bitField | 33554432;\n this._fireEvent(\"promiseFulfilled\", this);\n};\n\nPromise.prototype._setRejected = function () {\n this._bitField = this._bitField | 16777216;\n this._fireEvent(\"promiseRejected\", this);\n};\n\nPromise.prototype._setFollowing = function () {\n this._bitField = this._bitField | 67108864;\n this._fireEvent(\"promiseResolved\", this);\n};\n\nPromise.prototype._setIsFinal = function () {\n this._bitField = this._bitField | 4194304;\n};\n\nPromise.prototype._isFinal = function () {\n return (this._bitField & 4194304) > 0;\n};\n\nPromise.prototype._unsetCancelled = function() {\n this._bitField = this._bitField & (~65536);\n};\n\nPromise.prototype._setCancelled = function() {\n this._bitField = this._bitField | 65536;\n this._fireEvent(\"promiseCancelled\", this);\n};\n\nPromise.prototype._setWillBeCancelled = function() {\n this._bitField = this._bitField | 8388608;\n};\n\nPromise.prototype._setAsyncGuaranteed = function() {\n if (async.hasCustomScheduler()) return;\n var bitField = this._bitField;\n this._bitField = bitField |\n (((bitField & 536870912) >> 2) ^\n 134217728);\n};\n\nPromise.prototype._setNoAsyncGuarantee = function() {\n this._bitField = (this._bitField | 536870912) &\n (~134217728);\n};\n\nPromise.prototype._receiverAt = function (index) {\n var ret = index === 0 ? this._receiver0 : this[\n index * 4 - 4 + 3];\n if (ret === UNDEFINED_BINDING) {\n return undefined;\n } else if (ret === undefined && this._isBound()) {\n return this._boundValue();\n }\n return ret;\n};\n\nPromise.prototype._promiseAt = function (index) {\n return this[\n index * 4 - 4 + 2];\n};\n\nPromise.prototype._fulfillmentHandlerAt = function (index) {\n return this[\n index * 4 - 4 + 0];\n};\n\nPromise.prototype._rejectionHandlerAt = function (index) {\n return this[\n index * 4 - 4 + 1];\n};\n\nPromise.prototype._boundValue = function() {};\n\nPromise.prototype._migrateCallback0 = function (follower) {\n var bitField = follower._bitField;\n var fulfill = follower._fulfillmentHandler0;\n var reject = follower._rejectionHandler0;\n var promise = follower._promise0;\n var receiver = follower._receiverAt(0);\n if (receiver === undefined) receiver = UNDEFINED_BINDING;\n this._addCallbacks(fulfill, reject, promise, receiver, null);\n};\n\nPromise.prototype._migrateCallbackAt = function (follower, index) {\n var fulfill = follower._fulfillmentHandlerAt(index);\n var reject = follower._rejectionHandlerAt(index);\n var promise = follower._promiseAt(index);\n var receiver = follower._receiverAt(index);\n if (receiver === undefined) receiver = UNDEFINED_BINDING;\n this._addCallbacks(fulfill, reject, promise, receiver, null);\n};\n\nPromise.prototype._addCallbacks = function (\n fulfill,\n reject,\n promise,\n receiver,\n context\n) {\n var index = this._length();\n\n if (index >= 65535 - 4) {\n index = 0;\n this._setLength(0);\n }\n\n if (index === 0) {\n this._promise0 = promise;\n this._receiver0 = receiver;\n if (typeof fulfill === \"function\") {\n this._fulfillmentHandler0 = util.contextBind(context, fulfill);\n }\n if (typeof reject === \"function\") {\n this._rejectionHandler0 = util.contextBind(context, reject);\n }\n } else {\n var base = index * 4 - 4;\n this[base + 2] = promise;\n this[base + 3] = receiver;\n if (typeof fulfill === \"function\") {\n this[base + 0] =\n util.contextBind(context, fulfill);\n }\n if (typeof reject === \"function\") {\n this[base + 1] =\n util.contextBind(context, reject);\n }\n }\n this._setLength(index + 1);\n return index;\n};\n\nPromise.prototype._proxy = function (proxyable, arg) {\n this._addCallbacks(undefined, undefined, arg, proxyable, null);\n};\n\nPromise.prototype._resolveCallback = function(value, shouldBind) {\n if (((this._bitField & 117506048) !== 0)) return;\n if (value === this)\n return this._rejectCallback(makeSelfResolutionError(), false);\n var maybePromise = tryConvertToPromise(value, this);\n if (!(maybePromise instanceof Promise)) return this._fulfill(value);\n\n if (shouldBind) this._propagateFrom(maybePromise, 2);\n\n\n var promise = maybePromise._target();\n\n if (promise === this) {\n this._reject(makeSelfResolutionError());\n return;\n }\n\n var bitField = promise._bitField;\n if (((bitField & 50397184) === 0)) {\n var len = this._length();\n if (len > 0) promise._migrateCallback0(this);\n for (var i = 1; i < len; ++i) {\n promise._migrateCallbackAt(this, i);\n }\n this._setFollowing();\n this._setLength(0);\n this._setFollowee(maybePromise);\n } else if (((bitField & 33554432) !== 0)) {\n this._fulfill(promise._value());\n } else if (((bitField & 16777216) !== 0)) {\n this._reject(promise._reason());\n } else {\n var reason = new CancellationError(\"late cancellation observer\");\n promise._attachExtraTrace(reason);\n this._reject(reason);\n }\n};\n\nPromise.prototype._rejectCallback =\nfunction(reason, synchronous, ignoreNonErrorWarnings) {\n var trace = util.ensureErrorObject(reason);\n var hasStack = trace === reason;\n if (!hasStack && !ignoreNonErrorWarnings && debug.warnings()) {\n var message = \"a promise was rejected with a non-error: \" +\n util.classString(reason);\n this._warn(message, true);\n }\n this._attachExtraTrace(trace, synchronous ? hasStack : false);\n this._reject(reason);\n};\n\nPromise.prototype._resolveFromExecutor = function (executor) {\n if (executor === INTERNAL) return;\n var promise = this;\n this._captureStackTrace();\n this._pushContext();\n var synchronous = true;\n var r = this._execute(executor, function(value) {\n promise._resolveCallback(value);\n }, function (reason) {\n promise._rejectCallback(reason, synchronous);\n });\n synchronous = false;\n this._popContext();\n\n if (r !== undefined) {\n promise._rejectCallback(r, true);\n }\n};\n\nPromise.prototype._settlePromiseFromHandler = function (\n handler, receiver, value, promise\n) {\n var bitField = promise._bitField;\n if (((bitField & 65536) !== 0)) return;\n promise._pushContext();\n var x;\n if (receiver === APPLY) {\n if (!value || typeof value.length !== \"number\") {\n x = errorObj;\n x.e = new TypeError(\"cannot .spread() a non-array: \" +\n util.classString(value));\n } else {\n x = tryCatch(handler).apply(this._boundValue(), value);\n }\n } else {\n x = tryCatch(handler).call(receiver, value);\n }\n var promiseCreated = promise._popContext();\n bitField = promise._bitField;\n if (((bitField & 65536) !== 0)) return;\n\n if (x === NEXT_FILTER) {\n promise._reject(value);\n } else if (x === errorObj) {\n promise._rejectCallback(x.e, false);\n } else {\n debug.checkForgottenReturns(x, promiseCreated, \"\", promise, this);\n promise._resolveCallback(x);\n }\n};\n\nPromise.prototype._target = function() {\n var ret = this;\n while (ret._isFollowing()) ret = ret._followee();\n return ret;\n};\n\nPromise.prototype._followee = function() {\n return this._rejectionHandler0;\n};\n\nPromise.prototype._setFollowee = function(promise) {\n this._rejectionHandler0 = promise;\n};\n\nPromise.prototype._settlePromise = function(promise, handler, receiver, value) {\n var isPromise = promise instanceof Promise;\n var bitField = this._bitField;\n var asyncGuaranteed = ((bitField & 134217728) !== 0);\n if (((bitField & 65536) !== 0)) {\n if (isPromise) promise._invokeInternalOnCancel();\n\n if (receiver instanceof PassThroughHandlerContext &&\n receiver.isFinallyHandler()) {\n receiver.cancelPromise = promise;\n if (tryCatch(handler).call(receiver, value) === errorObj) {\n promise._reject(errorObj.e);\n }\n } else if (handler === reflectHandler) {\n promise._fulfill(reflectHandler.call(receiver));\n } else if (receiver instanceof Proxyable) {\n receiver._promiseCancelled(promise);\n } else if (isPromise || promise instanceof PromiseArray) {\n promise._cancel();\n } else {\n receiver.cancel();\n }\n } else if (typeof handler === \"function\") {\n if (!isPromise) {\n handler.call(receiver, value, promise);\n } else {\n if (asyncGuaranteed) promise._setAsyncGuaranteed();\n this._settlePromiseFromHandler(handler, receiver, value, promise);\n }\n } else if (receiver instanceof Proxyable) {\n if (!receiver._isResolved()) {\n if (((bitField & 33554432) !== 0)) {\n receiver._promiseFulfilled(value, promise);\n } else {\n receiver._promiseRejected(value, promise);\n }\n }\n } else if (isPromise) {\n if (asyncGuaranteed) promise._setAsyncGuaranteed();\n if (((bitField & 33554432) !== 0)) {\n promise._fulfill(value);\n } else {\n promise._reject(value);\n }\n }\n};\n\nPromise.prototype._settlePromiseLateCancellationObserver = function(ctx) {\n var handler = ctx.handler;\n var promise = ctx.promise;\n var receiver = ctx.receiver;\n var value = ctx.value;\n if (typeof handler === \"function\") {\n if (!(promise instanceof Promise)) {\n handler.call(receiver, value, promise);\n } else {\n this._settlePromiseFromHandler(handler, receiver, value, promise);\n }\n } else if (promise instanceof Promise) {\n promise._reject(value);\n }\n};\n\nPromise.prototype._settlePromiseCtx = function(ctx) {\n this._settlePromise(ctx.promise, ctx.handler, ctx.receiver, ctx.value);\n};\n\nPromise.prototype._settlePromise0 = function(handler, value, bitField) {\n var promise = this._promise0;\n var receiver = this._receiverAt(0);\n this._promise0 = undefined;\n this._receiver0 = undefined;\n this._settlePromise(promise, handler, receiver, value);\n};\n\nPromise.prototype._clearCallbackDataAtIndex = function(index) {\n var base = index * 4 - 4;\n this[base + 2] =\n this[base + 3] =\n this[base + 0] =\n this[base + 1] = undefined;\n};\n\nPromise.prototype._fulfill = function (value) {\n var bitField = this._bitField;\n if (((bitField & 117506048) >>> 16)) return;\n if (value === this) {\n var err = makeSelfResolutionError();\n this._attachExtraTrace(err);\n return this._reject(err);\n }\n this._setFulfilled();\n this._rejectionHandler0 = value;\n\n if ((bitField & 65535) > 0) {\n if (((bitField & 134217728) !== 0)) {\n this._settlePromises();\n } else {\n async.settlePromises(this);\n }\n this._dereferenceTrace();\n }\n};\n\nPromise.prototype._reject = function (reason) {\n var bitField = this._bitField;\n if (((bitField & 117506048) >>> 16)) return;\n this._setRejected();\n this._fulfillmentHandler0 = reason;\n\n if (this._isFinal()) {\n return async.fatalError(reason, util.isNode);\n }\n\n if ((bitField & 65535) > 0) {\n async.settlePromises(this);\n } else {\n this._ensurePossibleRejectionHandled();\n }\n};\n\nPromise.prototype._fulfillPromises = function (len, value) {\n for (var i = 1; i < len; i++) {\n var handler = this._fulfillmentHandlerAt(i);\n var promise = this._promiseAt(i);\n var receiver = this._receiverAt(i);\n this._clearCallbackDataAtIndex(i);\n this._settlePromise(promise, handler, receiver, value);\n }\n};\n\nPromise.prototype._rejectPromises = function (len, reason) {\n for (var i = 1; i < len; i++) {\n var handler = this._rejectionHandlerAt(i);\n var promise = this._promiseAt(i);\n var receiver = this._receiverAt(i);\n this._clearCallbackDataAtIndex(i);\n this._settlePromise(promise, handler, receiver, reason);\n }\n};\n\nPromise.prototype._settlePromises = function () {\n var bitField = this._bitField;\n var len = (bitField & 65535);\n\n if (len > 0) {\n if (((bitField & 16842752) !== 0)) {\n var reason = this._fulfillmentHandler0;\n this._settlePromise0(this._rejectionHandler0, reason, bitField);\n this._rejectPromises(len, reason);\n } else {\n var value = this._rejectionHandler0;\n this._settlePromise0(this._fulfillmentHandler0, value, bitField);\n this._fulfillPromises(len, value);\n }\n this._setLength(0);\n }\n this._clearCancellationData();\n};\n\nPromise.prototype._settledValue = function() {\n var bitField = this._bitField;\n if (((bitField & 33554432) !== 0)) {\n return this._rejectionHandler0;\n } else if (((bitField & 16777216) !== 0)) {\n return this._fulfillmentHandler0;\n }\n};\n\nif (typeof Symbol !== \"undefined\" && Symbol.toStringTag) {\n es5.defineProperty(Promise.prototype, Symbol.toStringTag, {\n get: function () {\n return \"Object\";\n }\n });\n}\n\nfunction deferResolve(v) {this.promise._resolveCallback(v);}\nfunction deferReject(v) {this.promise._rejectCallback(v, false);}\n\nPromise.defer = Promise.pending = function() {\n debug.deprecated(\"Promise.defer\", \"new Promise\");\n var promise = new Promise(INTERNAL);\n return {\n promise: promise,\n resolve: deferResolve,\n reject: deferReject\n };\n};\n\nutil.notEnumerableProp(Promise,\n \"_makeSelfResolutionError\",\n makeSelfResolutionError);\n\nrequire(\"./method\")(Promise, INTERNAL, tryConvertToPromise, apiRejection,\n debug);\nrequire(\"./bind\")(Promise, INTERNAL, tryConvertToPromise, debug);\nrequire(\"./cancel\")(Promise, PromiseArray, apiRejection, debug);\nrequire(\"./direct_resolve\")(Promise);\nrequire(\"./synchronous_inspection\")(Promise);\nrequire(\"./join\")(\n Promise, PromiseArray, tryConvertToPromise, INTERNAL, async);\nPromise.Promise = Promise;\nPromise.version = \"3.7.2\";\nrequire('./call_get.js')(Promise);\nrequire('./generators.js')(Promise, apiRejection, INTERNAL, tryConvertToPromise, Proxyable, debug);\nrequire('./map.js')(Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug);\nrequire('./nodeify.js')(Promise);\nrequire('./promisify.js')(Promise, INTERNAL);\nrequire('./props.js')(Promise, PromiseArray, tryConvertToPromise, apiRejection);\nrequire('./race.js')(Promise, INTERNAL, tryConvertToPromise, apiRejection);\nrequire('./reduce.js')(Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug);\nrequire('./settle.js')(Promise, PromiseArray, debug);\nrequire('./some.js')(Promise, PromiseArray, apiRejection);\nrequire('./timers.js')(Promise, INTERNAL, debug);\nrequire('./using.js')(Promise, apiRejection, tryConvertToPromise, createContext, INTERNAL, debug);\nrequire('./any.js')(Promise);\nrequire('./each.js')(Promise, INTERNAL);\nrequire('./filter.js')(Promise, INTERNAL);\n \n util.toFastProperties(Promise); \n util.toFastProperties(Promise.prototype); \n function fillTypes(value) { \n var p = new Promise(INTERNAL); \n p._fulfillmentHandler0 = value; \n p._rejectionHandler0 = value; \n p._promise0 = value; \n p._receiver0 = value; \n } \n // Complete slack tracking, opt out of field-type tracking and \n // stabilize map \n fillTypes({a: 1}); \n fillTypes({b: 2}); \n fillTypes({c: 3}); \n fillTypes(1); \n fillTypes(function(){}); \n fillTypes(undefined); \n fillTypes(false); \n fillTypes(new Promise(INTERNAL)); \n debug.setBounds(Async.firstLineError, util.lastLineError); \n return Promise; \n\n};\n","\"use strict\";\nvar old;\nif (typeof Promise !== \"undefined\") old = Promise;\nfunction noConflict() {\n try { if (Promise === bluebird) Promise = old; }\n catch (e) {}\n return bluebird;\n}\nvar bluebird = require(\"./promise\")();\nbluebird.noConflict = noConflict;\nmodule.exports = bluebird;\n",null,null,null,"/*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */\n/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.prototype = Object.create(Buffer.prototype)\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","// (public) Constructor\nfunction BigInteger(a, b, c) {\n if (!(this instanceof BigInteger))\n return new BigInteger(a, b, c)\n\n if (a != null) {\n if (\"number\" == typeof a) this.fromNumber(a, b, c)\n else if (b == null && \"string\" != typeof a) this.fromString(a, 256)\n else this.fromString(a, b)\n }\n}\n\nvar proto = BigInteger.prototype\n\n// duck-typed isBigInteger\nproto.__bigi = require('../package.json').version\nBigInteger.isBigInteger = function (obj, check_ver) {\n return obj && obj.__bigi && (!check_ver || obj.__bigi === proto.__bigi)\n}\n\n// Bits per digit\nvar dbits\n\n// am: Compute w_j += (x*this_i), propagate carries,\n// c is initial carry, returns final carry.\n// c < 3*dvalue, x < 2*dvalue, this_i < dvalue\n// We need to select the fastest one that works in this environment.\n\n// am1: use a single mult and divide to get the high bits,\n// max digit bits should be 26 because\n// max internal value = 2*dvalue^2-2*dvalue (< 2^53)\nfunction am1(i, x, w, j, c, n) {\n while (--n >= 0) {\n var v = x * this[i++] + w[j] + c\n c = Math.floor(v / 0x4000000)\n w[j++] = v & 0x3ffffff\n }\n return c\n}\n// am2 avoids a big mult-and-extract completely.\n// Max digit bits should be <= 30 because we do bitwise ops\n// on values up to 2*hdvalue^2-hdvalue-1 (< 2^31)\nfunction am2(i, x, w, j, c, n) {\n var xl = x & 0x7fff,\n xh = x >> 15\n while (--n >= 0) {\n var l = this[i] & 0x7fff\n var h = this[i++] >> 15\n var m = xh * l + h * xl\n l = xl * l + ((m & 0x7fff) << 15) + w[j] + (c & 0x3fffffff)\n c = (l >>> 30) + (m >>> 15) + xh * h + (c >>> 30)\n w[j++] = l & 0x3fffffff\n }\n return c\n}\n// Alternately, set max digit bits to 28 since some\n// browsers slow down when dealing with 32-bit numbers.\nfunction am3(i, x, w, j, c, n) {\n var xl = x & 0x3fff,\n xh = x >> 14\n while (--n >= 0) {\n var l = this[i] & 0x3fff\n var h = this[i++] >> 14\n var m = xh * l + h * xl\n l = xl * l + ((m & 0x3fff) << 14) + w[j] + c\n c = (l >> 28) + (m >> 14) + xh * h\n w[j++] = l & 0xfffffff\n }\n return c\n}\n\n// wtf?\nBigInteger.prototype.am = am1\ndbits = 26\n\nBigInteger.prototype.DB = dbits\nBigInteger.prototype.DM = ((1 << dbits) - 1)\nvar DV = BigInteger.prototype.DV = (1 << dbits)\n\nvar BI_FP = 52\nBigInteger.prototype.FV = Math.pow(2, BI_FP)\nBigInteger.prototype.F1 = BI_FP - dbits\nBigInteger.prototype.F2 = 2 * dbits - BI_FP\n\n// Digit conversions\nvar BI_RM = \"0123456789abcdefghijklmnopqrstuvwxyz\"\nvar BI_RC = new Array()\nvar rr, vv\nrr = \"0\".charCodeAt(0)\nfor (vv = 0; vv <= 9; ++vv) BI_RC[rr++] = vv\nrr = \"a\".charCodeAt(0)\nfor (vv = 10; vv < 36; ++vv) BI_RC[rr++] = vv\nrr = \"A\".charCodeAt(0)\nfor (vv = 10; vv < 36; ++vv) BI_RC[rr++] = vv\n\nfunction int2char(n) {\n return BI_RM.charAt(n)\n}\n\nfunction intAt(s, i) {\n var c = BI_RC[s.charCodeAt(i)]\n return (c == null) ? -1 : c\n}\n\n// (protected) copy this to r\nfunction bnpCopyTo(r) {\n for (var i = this.t - 1; i >= 0; --i) r[i] = this[i]\n r.t = this.t\n r.s = this.s\n}\n\n// (protected) set from integer value x, -DV <= x < DV\nfunction bnpFromInt(x) {\n this.t = 1\n this.s = (x < 0) ? -1 : 0\n if (x > 0) this[0] = x\n else if (x < -1) this[0] = x + DV\n else this.t = 0\n}\n\n// return bigint initialized to value\nfunction nbv(i) {\n var r = new BigInteger()\n r.fromInt(i)\n return r\n}\n\n// (protected) set from string and radix\nfunction bnpFromString(s, b) {\n var self = this\n\n var k\n if (b == 16) k = 4\n else if (b == 8) k = 3\n else if (b == 256) k = 8; // byte array\n else if (b == 2) k = 1\n else if (b == 32) k = 5\n else if (b == 4) k = 2\n else {\n self.fromRadix(s, b)\n return\n }\n self.t = 0\n self.s = 0\n var i = s.length,\n mi = false,\n sh = 0\n while (--i >= 0) {\n var x = (k == 8) ? s[i] & 0xff : intAt(s, i)\n if (x < 0) {\n if (s.charAt(i) == \"-\") mi = true\n continue\n }\n mi = false\n if (sh == 0)\n self[self.t++] = x\n else if (sh + k > self.DB) {\n self[self.t - 1] |= (x & ((1 << (self.DB - sh)) - 1)) << sh\n self[self.t++] = (x >> (self.DB - sh))\n } else\n self[self.t - 1] |= x << sh\n sh += k\n if (sh >= self.DB) sh -= self.DB\n }\n if (k == 8 && (s[0] & 0x80) != 0) {\n self.s = -1\n if (sh > 0) self[self.t - 1] |= ((1 << (self.DB - sh)) - 1) << sh\n }\n self.clamp()\n if (mi) BigInteger.ZERO.subTo(self, self)\n}\n\n// (protected) clamp off excess high words\nfunction bnpClamp() {\n var c = this.s & this.DM\n while (this.t > 0 && this[this.t - 1] == c)--this.t\n}\n\n// (public) return string representation in given radix\nfunction bnToString(b) {\n var self = this\n if (self.s < 0) return \"-\" + self.negate()\n .toString(b)\n var k\n if (b == 16) k = 4\n else if (b == 8) k = 3\n else if (b == 2) k = 1\n else if (b == 32) k = 5\n else if (b == 4) k = 2\n else return self.toRadix(b)\n var km = (1 << k) - 1,\n d, m = false,\n r = \"\",\n i = self.t\n var p = self.DB - (i * self.DB) % k\n if (i-- > 0) {\n if (p < self.DB && (d = self[i] >> p) > 0) {\n m = true\n r = int2char(d)\n }\n while (i >= 0) {\n if (p < k) {\n d = (self[i] & ((1 << p) - 1)) << (k - p)\n d |= self[--i] >> (p += self.DB - k)\n } else {\n d = (self[i] >> (p -= k)) & km\n if (p <= 0) {\n p += self.DB\n --i\n }\n }\n if (d > 0) m = true\n if (m) r += int2char(d)\n }\n }\n return m ? r : \"0\"\n}\n\n// (public) -this\nfunction bnNegate() {\n var r = new BigInteger()\n BigInteger.ZERO.subTo(this, r)\n return r\n}\n\n// (public) |this|\nfunction bnAbs() {\n return (this.s < 0) ? this.negate() : this\n}\n\n// (public) return + if this > a, - if this < a, 0 if equal\nfunction bnCompareTo(a) {\n var r = this.s - a.s\n if (r != 0) return r\n var i = this.t\n r = i - a.t\n if (r != 0) return (this.s < 0) ? -r : r\n while (--i >= 0)\n if ((r = this[i] - a[i]) != 0) return r\n return 0\n}\n\n// returns bit length of the integer x\nfunction nbits(x) {\n var r = 1,\n t\n if ((t = x >>> 16) != 0) {\n x = t\n r += 16\n }\n if ((t = x >> 8) != 0) {\n x = t\n r += 8\n }\n if ((t = x >> 4) != 0) {\n x = t\n r += 4\n }\n if ((t = x >> 2) != 0) {\n x = t\n r += 2\n }\n if ((t = x >> 1) != 0) {\n x = t\n r += 1\n }\n return r\n}\n\n// (public) return the number of bits in \"this\"\nfunction bnBitLength() {\n if (this.t <= 0) return 0\n return this.DB * (this.t - 1) + nbits(this[this.t - 1] ^ (this.s & this.DM))\n}\n\n// (public) return the number of bytes in \"this\"\nfunction bnByteLength() {\n return this.bitLength() >> 3\n}\n\n// (protected) r = this << n*DB\nfunction bnpDLShiftTo(n, r) {\n var i\n for (i = this.t - 1; i >= 0; --i) r[i + n] = this[i]\n for (i = n - 1; i >= 0; --i) r[i] = 0\n r.t = this.t + n\n r.s = this.s\n}\n\n// (protected) r = this >> n*DB\nfunction bnpDRShiftTo(n, r) {\n for (var i = n; i < this.t; ++i) r[i - n] = this[i]\n r.t = Math.max(this.t - n, 0)\n r.s = this.s\n}\n\n// (protected) r = this << n\nfunction bnpLShiftTo(n, r) {\n var self = this\n var bs = n % self.DB\n var cbs = self.DB - bs\n var bm = (1 << cbs) - 1\n var ds = Math.floor(n / self.DB),\n c = (self.s << bs) & self.DM,\n i\n for (i = self.t - 1; i >= 0; --i) {\n r[i + ds + 1] = (self[i] >> cbs) | c\n c = (self[i] & bm) << bs\n }\n for (i = ds - 1; i >= 0; --i) r[i] = 0\n r[ds] = c\n r.t = self.t + ds + 1\n r.s = self.s\n r.clamp()\n}\n\n// (protected) r = this >> n\nfunction bnpRShiftTo(n, r) {\n var self = this\n r.s = self.s\n var ds = Math.floor(n / self.DB)\n if (ds >= self.t) {\n r.t = 0\n return\n }\n var bs = n % self.DB\n var cbs = self.DB - bs\n var bm = (1 << bs) - 1\n r[0] = self[ds] >> bs\n for (var i = ds + 1; i < self.t; ++i) {\n r[i - ds - 1] |= (self[i] & bm) << cbs\n r[i - ds] = self[i] >> bs\n }\n if (bs > 0) r[self.t - ds - 1] |= (self.s & bm) << cbs\n r.t = self.t - ds\n r.clamp()\n}\n\n// (protected) r = this - a\nfunction bnpSubTo(a, r) {\n var self = this\n var i = 0,\n c = 0,\n m = Math.min(a.t, self.t)\n while (i < m) {\n c += self[i] - a[i]\n r[i++] = c & self.DM\n c >>= self.DB\n }\n if (a.t < self.t) {\n c -= a.s\n while (i < self.t) {\n c += self[i]\n r[i++] = c & self.DM\n c >>= self.DB\n }\n c += self.s\n } else {\n c += self.s\n while (i < a.t) {\n c -= a[i]\n r[i++] = c & self.DM\n c >>= self.DB\n }\n c -= a.s\n }\n r.s = (c < 0) ? -1 : 0\n if (c < -1) r[i++] = self.DV + c\n else if (c > 0) r[i++] = c\n r.t = i\n r.clamp()\n}\n\n// (protected) r = this * a, r != this,a (HAC 14.12)\n// \"this\" should be the larger one if appropriate.\nfunction bnpMultiplyTo(a, r) {\n var x = this.abs(),\n y = a.abs()\n var i = x.t\n r.t = i + y.t\n while (--i >= 0) r[i] = 0\n for (i = 0; i < y.t; ++i) r[i + x.t] = x.am(0, y[i], r, i, 0, x.t)\n r.s = 0\n r.clamp()\n if (this.s != a.s) BigInteger.ZERO.subTo(r, r)\n}\n\n// (protected) r = this^2, r != this (HAC 14.16)\nfunction bnpSquareTo(r) {\n var x = this.abs()\n var i = r.t = 2 * x.t\n while (--i >= 0) r[i] = 0\n for (i = 0; i < x.t - 1; ++i) {\n var c = x.am(i, x[i], r, 2 * i, 0, 1)\n if ((r[i + x.t] += x.am(i + 1, 2 * x[i], r, 2 * i + 1, c, x.t - i - 1)) >= x.DV) {\n r[i + x.t] -= x.DV\n r[i + x.t + 1] = 1\n }\n }\n if (r.t > 0) r[r.t - 1] += x.am(i, x[i], r, 2 * i, 0, 1)\n r.s = 0\n r.clamp()\n}\n\n// (protected) divide this by m, quotient and remainder to q, r (HAC 14.20)\n// r != q, this != m. q or r may be null.\nfunction bnpDivRemTo(m, q, r) {\n var self = this\n var pm = m.abs()\n if (pm.t <= 0) return\n var pt = self.abs()\n if (pt.t < pm.t) {\n if (q != null) q.fromInt(0)\n if (r != null) self.copyTo(r)\n return\n }\n if (r == null) r = new BigInteger()\n var y = new BigInteger(),\n ts = self.s,\n ms = m.s\n var nsh = self.DB - nbits(pm[pm.t - 1]); // normalize modulus\n if (nsh > 0) {\n pm.lShiftTo(nsh, y)\n pt.lShiftTo(nsh, r)\n } else {\n pm.copyTo(y)\n pt.copyTo(r)\n }\n var ys = y.t\n var y0 = y[ys - 1]\n if (y0 == 0) return\n var yt = y0 * (1 << self.F1) + ((ys > 1) ? y[ys - 2] >> self.F2 : 0)\n var d1 = self.FV / yt,\n d2 = (1 << self.F1) / yt,\n e = 1 << self.F2\n var i = r.t,\n j = i - ys,\n t = (q == null) ? new BigInteger() : q\n y.dlShiftTo(j, t)\n if (r.compareTo(t) >= 0) {\n r[r.t++] = 1\n r.subTo(t, r)\n }\n BigInteger.ONE.dlShiftTo(ys, t)\n t.subTo(y, y); // \"negative\" y so we can replace sub with am later\n while (y.t < ys) y[y.t++] = 0\n while (--j >= 0) {\n // Estimate quotient digit\n var qd = (r[--i] == y0) ? self.DM : Math.floor(r[i] * d1 + (r[i - 1] + e) * d2)\n if ((r[i] += y.am(0, qd, r, j, 0, ys)) < qd) { // Try it out\n y.dlShiftTo(j, t)\n r.subTo(t, r)\n while (r[i] < --qd) r.subTo(t, r)\n }\n }\n if (q != null) {\n r.drShiftTo(ys, q)\n if (ts != ms) BigInteger.ZERO.subTo(q, q)\n }\n r.t = ys\n r.clamp()\n if (nsh > 0) r.rShiftTo(nsh, r); // Denormalize remainder\n if (ts < 0) BigInteger.ZERO.subTo(r, r)\n}\n\n// (public) this mod a\nfunction bnMod(a) {\n var r = new BigInteger()\n this.abs()\n .divRemTo(a, null, r)\n if (this.s < 0 && r.compareTo(BigInteger.ZERO) > 0) a.subTo(r, r)\n return r\n}\n\n// Modular reduction using \"classic\" algorithm\nfunction Classic(m) {\n this.m = m\n}\n\nfunction cConvert(x) {\n if (x.s < 0 || x.compareTo(this.m) >= 0) return x.mod(this.m)\n else return x\n}\n\nfunction cRevert(x) {\n return x\n}\n\nfunction cReduce(x) {\n x.divRemTo(this.m, null, x)\n}\n\nfunction cMulTo(x, y, r) {\n x.multiplyTo(y, r)\n this.reduce(r)\n}\n\nfunction cSqrTo(x, r) {\n x.squareTo(r)\n this.reduce(r)\n}\n\nClassic.prototype.convert = cConvert\nClassic.prototype.revert = cRevert\nClassic.prototype.reduce = cReduce\nClassic.prototype.mulTo = cMulTo\nClassic.prototype.sqrTo = cSqrTo\n\n// (protected) return \"-1/this % 2^DB\"; useful for Mont. reduction\n// justification:\n// xy == 1 (mod m)\n// xy = 1+km\n// xy(2-xy) = (1+km)(1-km)\n// x[y(2-xy)] = 1-k^2m^2\n// x[y(2-xy)] == 1 (mod m^2)\n// if y is 1/x mod m, then y(2-xy) is 1/x mod m^2\n// should reduce x and y(2-xy) by m^2 at each step to keep size bounded.\n// JS multiply \"overflows\" differently from C/C++, so care is needed here.\nfunction bnpInvDigit() {\n if (this.t < 1) return 0\n var x = this[0]\n if ((x & 1) == 0) return 0\n var y = x & 3; // y == 1/x mod 2^2\n y = (y * (2 - (x & 0xf) * y)) & 0xf; // y == 1/x mod 2^4\n y = (y * (2 - (x & 0xff) * y)) & 0xff; // y == 1/x mod 2^8\n y = (y * (2 - (((x & 0xffff) * y) & 0xffff))) & 0xffff; // y == 1/x mod 2^16\n // last step - calculate inverse mod DV directly\n // assumes 16 < DB <= 32 and assumes ability to handle 48-bit ints\n y = (y * (2 - x * y % this.DV)) % this.DV; // y == 1/x mod 2^dbits\n // we really want the negative inverse, and -DV < y < DV\n return (y > 0) ? this.DV - y : -y\n}\n\n// Montgomery reduction\nfunction Montgomery(m) {\n this.m = m\n this.mp = m.invDigit()\n this.mpl = this.mp & 0x7fff\n this.mph = this.mp >> 15\n this.um = (1 << (m.DB - 15)) - 1\n this.mt2 = 2 * m.t\n}\n\n// xR mod m\nfunction montConvert(x) {\n var r = new BigInteger()\n x.abs()\n .dlShiftTo(this.m.t, r)\n r.divRemTo(this.m, null, r)\n if (x.s < 0 && r.compareTo(BigInteger.ZERO) > 0) this.m.subTo(r, r)\n return r\n}\n\n// x/R mod m\nfunction montRevert(x) {\n var r = new BigInteger()\n x.copyTo(r)\n this.reduce(r)\n return r\n}\n\n// x = x/R mod m (HAC 14.32)\nfunction montReduce(x) {\n while (x.t <= this.mt2) // pad x so am has enough room later\n x[x.t++] = 0\n for (var i = 0; i < this.m.t; ++i) {\n // faster way of calculating u0 = x[i]*mp mod DV\n var j = x[i] & 0x7fff\n var u0 = (j * this.mpl + (((j * this.mph + (x[i] >> 15) * this.mpl) & this.um) << 15)) & x.DM\n // use am to combine the multiply-shift-add into one call\n j = i + this.m.t\n x[j] += this.m.am(0, u0, x, i, 0, this.m.t)\n // propagate carry\n while (x[j] >= x.DV) {\n x[j] -= x.DV\n x[++j]++\n }\n }\n x.clamp()\n x.drShiftTo(this.m.t, x)\n if (x.compareTo(this.m) >= 0) x.subTo(this.m, x)\n}\n\n// r = \"x^2/R mod m\"; x != r\nfunction montSqrTo(x, r) {\n x.squareTo(r)\n this.reduce(r)\n}\n\n// r = \"xy/R mod m\"; x,y != r\nfunction montMulTo(x, y, r) {\n x.multiplyTo(y, r)\n this.reduce(r)\n}\n\nMontgomery.prototype.convert = montConvert\nMontgomery.prototype.revert = montRevert\nMontgomery.prototype.reduce = montReduce\nMontgomery.prototype.mulTo = montMulTo\nMontgomery.prototype.sqrTo = montSqrTo\n\n// (protected) true iff this is even\nfunction bnpIsEven() {\n return ((this.t > 0) ? (this[0] & 1) : this.s) == 0\n}\n\n// (protected) this^e, e < 2^32, doing sqr and mul with \"r\" (HAC 14.79)\nfunction bnpExp(e, z) {\n if (e > 0xffffffff || e < 1) return BigInteger.ONE\n var r = new BigInteger(),\n r2 = new BigInteger(),\n g = z.convert(this),\n i = nbits(e) - 1\n g.copyTo(r)\n while (--i >= 0) {\n z.sqrTo(r, r2)\n if ((e & (1 << i)) > 0) z.mulTo(r2, g, r)\n else {\n var t = r\n r = r2\n r2 = t\n }\n }\n return z.revert(r)\n}\n\n// (public) this^e % m, 0 <= e < 2^32\nfunction bnModPowInt(e, m) {\n var z\n if (e < 256 || m.isEven()) z = new Classic(m)\n else z = new Montgomery(m)\n return this.exp(e, z)\n}\n\n// protected\nproto.copyTo = bnpCopyTo\nproto.fromInt = bnpFromInt\nproto.fromString = bnpFromString\nproto.clamp = bnpClamp\nproto.dlShiftTo = bnpDLShiftTo\nproto.drShiftTo = bnpDRShiftTo\nproto.lShiftTo = bnpLShiftTo\nproto.rShiftTo = bnpRShiftTo\nproto.subTo = bnpSubTo\nproto.multiplyTo = bnpMultiplyTo\nproto.squareTo = bnpSquareTo\nproto.divRemTo = bnpDivRemTo\nproto.invDigit = bnpInvDigit\nproto.isEven = bnpIsEven\nproto.exp = bnpExp\n\n// public\nproto.toString = bnToString\nproto.negate = bnNegate\nproto.abs = bnAbs\nproto.compareTo = bnCompareTo\nproto.bitLength = bnBitLength\nproto.byteLength = bnByteLength\nproto.mod = bnMod\nproto.modPowInt = bnModPowInt\n\n// (public)\nfunction bnClone() {\n var r = new BigInteger()\n this.copyTo(r)\n return r\n}\n\n// (public) return value as integer\nfunction bnIntValue() {\n if (this.s < 0) {\n if (this.t == 1) return this[0] - this.DV\n else if (this.t == 0) return -1\n } else if (this.t == 1) return this[0]\n else if (this.t == 0) return 0\n // assumes 16 < DB < 32\n return ((this[1] & ((1 << (32 - this.DB)) - 1)) << this.DB) | this[0]\n}\n\n// (public) return value as byte\nfunction bnByteValue() {\n return (this.t == 0) ? this.s : (this[0] << 24) >> 24\n}\n\n// (public) return value as short (assumes DB>=16)\nfunction bnShortValue() {\n return (this.t == 0) ? this.s : (this[0] << 16) >> 16\n}\n\n// (protected) return x s.t. r^x < DV\nfunction bnpChunkSize(r) {\n return Math.floor(Math.LN2 * this.DB / Math.log(r))\n}\n\n// (public) 0 if this == 0, 1 if this > 0\nfunction bnSigNum() {\n if (this.s < 0) return -1\n else if (this.t <= 0 || (this.t == 1 && this[0] <= 0)) return 0\n else return 1\n}\n\n// (protected) convert to radix string\nfunction bnpToRadix(b) {\n if (b == null) b = 10\n if (this.signum() == 0 || b < 2 || b > 36) return \"0\"\n var cs = this.chunkSize(b)\n var a = Math.pow(b, cs)\n var d = nbv(a),\n y = new BigInteger(),\n z = new BigInteger(),\n r = \"\"\n this.divRemTo(d, y, z)\n while (y.signum() > 0) {\n r = (a + z.intValue())\n .toString(b)\n .substr(1) + r\n y.divRemTo(d, y, z)\n }\n return z.intValue()\n .toString(b) + r\n}\n\n// (protected) convert from radix string\nfunction bnpFromRadix(s, b) {\n var self = this\n self.fromInt(0)\n if (b == null) b = 10\n var cs = self.chunkSize(b)\n var d = Math.pow(b, cs),\n mi = false,\n j = 0,\n w = 0\n for (var i = 0; i < s.length; ++i) {\n var x = intAt(s, i)\n if (x < 0) {\n if (s.charAt(i) == \"-\" && self.signum() == 0) mi = true\n continue\n }\n w = b * w + x\n if (++j >= cs) {\n self.dMultiply(d)\n self.dAddOffset(w, 0)\n j = 0\n w = 0\n }\n }\n if (j > 0) {\n self.dMultiply(Math.pow(b, j))\n self.dAddOffset(w, 0)\n }\n if (mi) BigInteger.ZERO.subTo(self, self)\n}\n\n// (protected) alternate constructor\nfunction bnpFromNumber(a, b, c) {\n var self = this\n if (\"number\" == typeof b) {\n // new BigInteger(int,int,RNG)\n if (a < 2) self.fromInt(1)\n else {\n self.fromNumber(a, c)\n if (!self.testBit(a - 1)) // force MSB set\n self.bitwiseTo(BigInteger.ONE.shiftLeft(a - 1), op_or, self)\n if (self.isEven()) self.dAddOffset(1, 0); // force odd\n while (!self.isProbablePrime(b)) {\n self.dAddOffset(2, 0)\n if (self.bitLength() > a) self.subTo(BigInteger.ONE.shiftLeft(a - 1), self)\n }\n }\n } else {\n // new BigInteger(int,RNG)\n var x = new Array(),\n t = a & 7\n x.length = (a >> 3) + 1\n b.nextBytes(x)\n if (t > 0) x[0] &= ((1 << t) - 1)\n else x[0] = 0\n self.fromString(x, 256)\n }\n}\n\n// (public) convert to bigendian byte array\nfunction bnToByteArray() {\n var self = this\n var i = self.t,\n r = new Array()\n r[0] = self.s\n var p = self.DB - (i * self.DB) % 8,\n d, k = 0\n if (i-- > 0) {\n if (p < self.DB && (d = self[i] >> p) != (self.s & self.DM) >> p)\n r[k++] = d | (self.s << (self.DB - p))\n while (i >= 0) {\n if (p < 8) {\n d = (self[i] & ((1 << p) - 1)) << (8 - p)\n d |= self[--i] >> (p += self.DB - 8)\n } else {\n d = (self[i] >> (p -= 8)) & 0xff\n if (p <= 0) {\n p += self.DB\n --i\n }\n }\n if ((d & 0x80) != 0) d |= -256\n if (k === 0 && (self.s & 0x80) != (d & 0x80))++k\n if (k > 0 || d != self.s) r[k++] = d\n }\n }\n return r\n}\n\nfunction bnEquals(a) {\n return (this.compareTo(a) == 0)\n}\n\nfunction bnMin(a) {\n return (this.compareTo(a) < 0) ? this : a\n}\n\nfunction bnMax(a) {\n return (this.compareTo(a) > 0) ? this : a\n}\n\n// (protected) r = this op a (bitwise)\nfunction bnpBitwiseTo(a, op, r) {\n var self = this\n var i, f, m = Math.min(a.t, self.t)\n for (i = 0; i < m; ++i) r[i] = op(self[i], a[i])\n if (a.t < self.t) {\n f = a.s & self.DM\n for (i = m; i < self.t; ++i) r[i] = op(self[i], f)\n r.t = self.t\n } else {\n f = self.s & self.DM\n for (i = m; i < a.t; ++i) r[i] = op(f, a[i])\n r.t = a.t\n }\n r.s = op(self.s, a.s)\n r.clamp()\n}\n\n// (public) this & a\nfunction op_and(x, y) {\n return x & y\n}\n\nfunction bnAnd(a) {\n var r = new BigInteger()\n this.bitwiseTo(a, op_and, r)\n return r\n}\n\n// (public) this | a\nfunction op_or(x, y) {\n return x | y\n}\n\nfunction bnOr(a) {\n var r = new BigInteger()\n this.bitwiseTo(a, op_or, r)\n return r\n}\n\n// (public) this ^ a\nfunction op_xor(x, y) {\n return x ^ y\n}\n\nfunction bnXor(a) {\n var r = new BigInteger()\n this.bitwiseTo(a, op_xor, r)\n return r\n}\n\n// (public) this & ~a\nfunction op_andnot(x, y) {\n return x & ~y\n}\n\nfunction bnAndNot(a) {\n var r = new BigInteger()\n this.bitwiseTo(a, op_andnot, r)\n return r\n}\n\n// (public) ~this\nfunction bnNot() {\n var r = new BigInteger()\n for (var i = 0; i < this.t; ++i) r[i] = this.DM & ~this[i]\n r.t = this.t\n r.s = ~this.s\n return r\n}\n\n// (public) this << n\nfunction bnShiftLeft(n) {\n var r = new BigInteger()\n if (n < 0) this.rShiftTo(-n, r)\n else this.lShiftTo(n, r)\n return r\n}\n\n// (public) this >> n\nfunction bnShiftRight(n) {\n var r = new BigInteger()\n if (n < 0) this.lShiftTo(-n, r)\n else this.rShiftTo(n, r)\n return r\n}\n\n// return index of lowest 1-bit in x, x < 2^31\nfunction lbit(x) {\n if (x == 0) return -1\n var r = 0\n if ((x & 0xffff) == 0) {\n x >>= 16\n r += 16\n }\n if ((x & 0xff) == 0) {\n x >>= 8\n r += 8\n }\n if ((x & 0xf) == 0) {\n x >>= 4\n r += 4\n }\n if ((x & 3) == 0) {\n x >>= 2\n r += 2\n }\n if ((x & 1) == 0)++r\n return r\n}\n\n// (public) returns index of lowest 1-bit (or -1 if none)\nfunction bnGetLowestSetBit() {\n for (var i = 0; i < this.t; ++i)\n if (this[i] != 0) return i * this.DB + lbit(this[i])\n if (this.s < 0) return this.t * this.DB\n return -1\n}\n\n// return number of 1 bits in x\nfunction cbit(x) {\n var r = 0\n while (x != 0) {\n x &= x - 1\n ++r\n }\n return r\n}\n\n// (public) return number of set bits\nfunction bnBitCount() {\n var r = 0,\n x = this.s & this.DM\n for (var i = 0; i < this.t; ++i) r += cbit(this[i] ^ x)\n return r\n}\n\n// (public) true iff nth bit is set\nfunction bnTestBit(n) {\n var j = Math.floor(n / this.DB)\n if (j >= this.t) return (this.s != 0)\n return ((this[j] & (1 << (n % this.DB))) != 0)\n}\n\n// (protected) this op (1<<n)\nfunction bnpChangeBit(n, op) {\n var r = BigInteger.ONE.shiftLeft(n)\n this.bitwiseTo(r, op, r)\n return r\n}\n\n// (public) this | (1<<n)\nfunction bnSetBit(n) {\n return this.changeBit(n, op_or)\n}\n\n// (public) this & ~(1<<n)\nfunction bnClearBit(n) {\n return this.changeBit(n, op_andnot)\n}\n\n// (public) this ^ (1<<n)\nfunction bnFlipBit(n) {\n return this.changeBit(n, op_xor)\n}\n\n// (protected) r = this + a\nfunction bnpAddTo(a, r) {\n var self = this\n\n var i = 0,\n c = 0,\n m = Math.min(a.t, self.t)\n while (i < m) {\n c += self[i] + a[i]\n r[i++] = c & self.DM\n c >>= self.DB\n }\n if (a.t < self.t) {\n c += a.s\n while (i < self.t) {\n c += self[i]\n r[i++] = c & self.DM\n c >>= self.DB\n }\n c += self.s\n } else {\n c += self.s\n while (i < a.t) {\n c += a[i]\n r[i++] = c & self.DM\n c >>= self.DB\n }\n c += a.s\n }\n r.s = (c < 0) ? -1 : 0\n if (c > 0) r[i++] = c\n else if (c < -1) r[i++] = self.DV + c\n r.t = i\n r.clamp()\n}\n\n// (public) this + a\nfunction bnAdd(a) {\n var r = new BigInteger()\n this.addTo(a, r)\n return r\n}\n\n// (public) this - a\nfunction bnSubtract(a) {\n var r = new BigInteger()\n this.subTo(a, r)\n return r\n}\n\n// (public) this * a\nfunction bnMultiply(a) {\n var r = new BigInteger()\n this.multiplyTo(a, r)\n return r\n}\n\n// (public) this^2\nfunction bnSquare() {\n var r = new BigInteger()\n this.squareTo(r)\n return r\n}\n\n// (public) this / a\nfunction bnDivide(a) {\n var r = new BigInteger()\n this.divRemTo(a, r, null)\n return r\n}\n\n// (public) this % a\nfunction bnRemainder(a) {\n var r = new BigInteger()\n this.divRemTo(a, null, r)\n return r\n}\n\n// (public) [this/a,this%a]\nfunction bnDivideAndRemainder(a) {\n var q = new BigInteger(),\n r = new BigInteger()\n this.divRemTo(a, q, r)\n return new Array(q, r)\n}\n\n// (protected) this *= n, this >= 0, 1 < n < DV\nfunction bnpDMultiply(n) {\n this[this.t] = this.am(0, n - 1, this, 0, 0, this.t)\n ++this.t\n this.clamp()\n}\n\n// (protected) this += n << w words, this >= 0\nfunction bnpDAddOffset(n, w) {\n if (n == 0) return\n while (this.t <= w) this[this.t++] = 0\n this[w] += n\n while (this[w] >= this.DV) {\n this[w] -= this.DV\n if (++w >= this.t) this[this.t++] = 0\n ++this[w]\n }\n}\n\n// A \"null\" reducer\nfunction NullExp() {}\n\nfunction nNop(x) {\n return x\n}\n\nfunction nMulTo(x, y, r) {\n x.multiplyTo(y, r)\n}\n\nfunction nSqrTo(x, r) {\n x.squareTo(r)\n}\n\nNullExp.prototype.convert = nNop\nNullExp.prototype.revert = nNop\nNullExp.prototype.mulTo = nMulTo\nNullExp.prototype.sqrTo = nSqrTo\n\n// (public) this^e\nfunction bnPow(e) {\n return this.exp(e, new NullExp())\n}\n\n// (protected) r = lower n words of \"this * a\", a.t <= n\n// \"this\" should be the larger one if appropriate.\nfunction bnpMultiplyLowerTo(a, n, r) {\n var i = Math.min(this.t + a.t, n)\n r.s = 0; // assumes a,this >= 0\n r.t = i\n while (i > 0) r[--i] = 0\n var j\n for (j = r.t - this.t; i < j; ++i) r[i + this.t] = this.am(0, a[i], r, i, 0, this.t)\n for (j = Math.min(a.t, n); i < j; ++i) this.am(0, a[i], r, i, 0, n - i)\n r.clamp()\n}\n\n// (protected) r = \"this * a\" without lower n words, n > 0\n// \"this\" should be the larger one if appropriate.\nfunction bnpMultiplyUpperTo(a, n, r) {\n --n\n var i = r.t = this.t + a.t - n\n r.s = 0; // assumes a,this >= 0\n while (--i >= 0) r[i] = 0\n for (i = Math.max(n - this.t, 0); i < a.t; ++i)\n r[this.t + i - n] = this.am(n - i, a[i], r, 0, 0, this.t + i - n)\n r.clamp()\n r.drShiftTo(1, r)\n}\n\n// Barrett modular reduction\nfunction Barrett(m) {\n // setup Barrett\n this.r2 = new BigInteger()\n this.q3 = new BigInteger()\n BigInteger.ONE.dlShiftTo(2 * m.t, this.r2)\n this.mu = this.r2.divide(m)\n this.m = m\n}\n\nfunction barrettConvert(x) {\n if (x.s < 0 || x.t > 2 * this.m.t) return x.mod(this.m)\n else if (x.compareTo(this.m) < 0) return x\n else {\n var r = new BigInteger()\n x.copyTo(r)\n this.reduce(r)\n return r\n }\n}\n\nfunction barrettRevert(x) {\n return x\n}\n\n// x = x mod m (HAC 14.42)\nfunction barrettReduce(x) {\n var self = this\n x.drShiftTo(self.m.t - 1, self.r2)\n if (x.t > self.m.t + 1) {\n x.t = self.m.t + 1\n x.clamp()\n }\n self.mu.multiplyUpperTo(self.r2, self.m.t + 1, self.q3)\n self.m.multiplyLowerTo(self.q3, self.m.t + 1, self.r2)\n while (x.compareTo(self.r2) < 0) x.dAddOffset(1, self.m.t + 1)\n x.subTo(self.r2, x)\n while (x.compareTo(self.m) >= 0) x.subTo(self.m, x)\n}\n\n// r = x^2 mod m; x != r\nfunction barrettSqrTo(x, r) {\n x.squareTo(r)\n this.reduce(r)\n}\n\n// r = x*y mod m; x,y != r\nfunction barrettMulTo(x, y, r) {\n x.multiplyTo(y, r)\n this.reduce(r)\n}\n\nBarrett.prototype.convert = barrettConvert\nBarrett.prototype.revert = barrettRevert\nBarrett.prototype.reduce = barrettReduce\nBarrett.prototype.mulTo = barrettMulTo\nBarrett.prototype.sqrTo = barrettSqrTo\n\n// (public) this^e % m (HAC 14.85)\nfunction bnModPow(e, m) {\n var i = e.bitLength(),\n k, r = nbv(1),\n z\n if (i <= 0) return r\n else if (i < 18) k = 1\n else if (i < 48) k = 3\n else if (i < 144) k = 4\n else if (i < 768) k = 5\n else k = 6\n if (i < 8)\n z = new Classic(m)\n else if (m.isEven())\n z = new Barrett(m)\n else\n z = new Montgomery(m)\n\n // precomputation\n var g = new Array(),\n n = 3,\n k1 = k - 1,\n km = (1 << k) - 1\n g[1] = z.convert(this)\n if (k > 1) {\n var g2 = new BigInteger()\n z.sqrTo(g[1], g2)\n while (n <= km) {\n g[n] = new BigInteger()\n z.mulTo(g2, g[n - 2], g[n])\n n += 2\n }\n }\n\n var j = e.t - 1,\n w, is1 = true,\n r2 = new BigInteger(),\n t\n i = nbits(e[j]) - 1\n while (j >= 0) {\n if (i >= k1) w = (e[j] >> (i - k1)) & km\n else {\n w = (e[j] & ((1 << (i + 1)) - 1)) << (k1 - i)\n if (j > 0) w |= e[j - 1] >> (this.DB + i - k1)\n }\n\n n = k\n while ((w & 1) == 0) {\n w >>= 1\n --n\n }\n if ((i -= n) < 0) {\n i += this.DB\n --j\n }\n if (is1) { // ret == 1, don't bother squaring or multiplying it\n g[w].copyTo(r)\n is1 = false\n } else {\n while (n > 1) {\n z.sqrTo(r, r2)\n z.sqrTo(r2, r)\n n -= 2\n }\n if (n > 0) z.sqrTo(r, r2)\n else {\n t = r\n r = r2\n r2 = t\n }\n z.mulTo(r2, g[w], r)\n }\n\n while (j >= 0 && (e[j] & (1 << i)) == 0) {\n z.sqrTo(r, r2)\n t = r\n r = r2\n r2 = t\n if (--i < 0) {\n i = this.DB - 1\n --j\n }\n }\n }\n return z.revert(r)\n}\n\n// (public) gcd(this,a) (HAC 14.54)\nfunction bnGCD(a) {\n var x = (this.s < 0) ? this.negate() : this.clone()\n var y = (a.s < 0) ? a.negate() : a.clone()\n if (x.compareTo(y) < 0) {\n var t = x\n x = y\n y = t\n }\n var i = x.getLowestSetBit(),\n g = y.getLowestSetBit()\n if (g < 0) return x\n if (i < g) g = i\n if (g > 0) {\n x.rShiftTo(g, x)\n y.rShiftTo(g, y)\n }\n while (x.signum() > 0) {\n if ((i = x.getLowestSetBit()) > 0) x.rShiftTo(i, x)\n if ((i = y.getLowestSetBit()) > 0) y.rShiftTo(i, y)\n if (x.compareTo(y) >= 0) {\n x.subTo(y, x)\n x.rShiftTo(1, x)\n } else {\n y.subTo(x, y)\n y.rShiftTo(1, y)\n }\n }\n if (g > 0) y.lShiftTo(g, y)\n return y\n}\n\n// (protected) this % n, n < 2^26\nfunction bnpModInt(n) {\n if (n <= 0) return 0\n var d = this.DV % n,\n r = (this.s < 0) ? n - 1 : 0\n if (this.t > 0)\n if (d == 0) r = this[0] % n\n else\n for (var i = this.t - 1; i >= 0; --i) r = (d * r + this[i]) % n\n return r\n}\n\n// (public) 1/this % m (HAC 14.61)\nfunction bnModInverse(m) {\n var ac = m.isEven()\n if (this.signum() === 0) throw new Error('division by zero')\n if ((this.isEven() && ac) || m.signum() == 0) return BigInteger.ZERO\n var u = m.clone(),\n v = this.clone()\n var a = nbv(1),\n b = nbv(0),\n c = nbv(0),\n d = nbv(1)\n while (u.signum() != 0) {\n while (u.isEven()) {\n u.rShiftTo(1, u)\n if (ac) {\n if (!a.isEven() || !b.isEven()) {\n a.addTo(this, a)\n b.subTo(m, b)\n }\n a.rShiftTo(1, a)\n } else if (!b.isEven()) b.subTo(m, b)\n b.rShiftTo(1, b)\n }\n while (v.isEven()) {\n v.rShiftTo(1, v)\n if (ac) {\n if (!c.isEven() || !d.isEven()) {\n c.addTo(this, c)\n d.subTo(m, d)\n }\n c.rShiftTo(1, c)\n } else if (!d.isEven()) d.subTo(m, d)\n d.rShiftTo(1, d)\n }\n if (u.compareTo(v) >= 0) {\n u.subTo(v, u)\n if (ac) a.subTo(c, a)\n b.subTo(d, b)\n } else {\n v.subTo(u, v)\n if (ac) c.subTo(a, c)\n d.subTo(b, d)\n }\n }\n if (v.compareTo(BigInteger.ONE) != 0) return BigInteger.ZERO\n while (d.compareTo(m) >= 0) d.subTo(m, d)\n while (d.signum() < 0) d.addTo(m, d)\n return d\n}\n\nvar lowprimes = [\n 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71,\n 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151,\n 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233,\n 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317,\n 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419,\n 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503,\n 509, 521, 523, 541, 547, 557, 563, 569, 571, 577, 587, 593, 599, 601, 607,\n 613, 617, 619, 631, 641, 643, 647, 653, 659, 661, 673, 677, 683, 691, 701,\n 709, 719, 727, 733, 739, 743, 751, 757, 761, 769, 773, 787, 797, 809, 811,\n 821, 823, 827, 829, 839, 853, 857, 859, 863, 877, 881, 883, 887, 907, 911,\n 919, 929, 937, 941, 947, 953, 967, 971, 977, 983, 991, 997\n]\n\nvar lplim = (1 << 26) / lowprimes[lowprimes.length - 1]\n\n// (public) test primality with certainty >= 1-.5^t\nfunction bnIsProbablePrime(t) {\n var i, x = this.abs()\n if (x.t == 1 && x[0] <= lowprimes[lowprimes.length - 1]) {\n for (i = 0; i < lowprimes.length; ++i)\n if (x[0] == lowprimes[i]) return true\n return false\n }\n if (x.isEven()) return false\n i = 1\n while (i < lowprimes.length) {\n var m = lowprimes[i],\n j = i + 1\n while (j < lowprimes.length && m < lplim) m *= lowprimes[j++]\n m = x.modInt(m)\n while (i < j) if (m % lowprimes[i++] == 0) return false\n }\n return x.millerRabin(t)\n}\n\n// (protected) true if probably prime (HAC 4.24, Miller-Rabin)\nfunction bnpMillerRabin(t) {\n var n1 = this.subtract(BigInteger.ONE)\n var k = n1.getLowestSetBit()\n if (k <= 0) return false\n var r = n1.shiftRight(k)\n t = (t + 1) >> 1\n if (t > lowprimes.length) t = lowprimes.length\n var a = new BigInteger(null)\n var j, bases = []\n for (var i = 0; i < t; ++i) {\n for (;;) {\n j = lowprimes[Math.floor(Math.random() * lowprimes.length)]\n if (bases.indexOf(j) == -1) break\n }\n bases.push(j)\n a.fromInt(j)\n var y = a.modPow(r, this)\n if (y.compareTo(BigInteger.ONE) != 0 && y.compareTo(n1) != 0) {\n var j = 1\n while (j++ < k && y.compareTo(n1) != 0) {\n y = y.modPowInt(2, this)\n if (y.compareTo(BigInteger.ONE) == 0) return false\n }\n if (y.compareTo(n1) != 0) return false\n }\n }\n return true\n}\n\n// protected\nproto.chunkSize = bnpChunkSize\nproto.toRadix = bnpToRadix\nproto.fromRadix = bnpFromRadix\nproto.fromNumber = bnpFromNumber\nproto.bitwiseTo = bnpBitwiseTo\nproto.changeBit = bnpChangeBit\nproto.addTo = bnpAddTo\nproto.dMultiply = bnpDMultiply\nproto.dAddOffset = bnpDAddOffset\nproto.multiplyLowerTo = bnpMultiplyLowerTo\nproto.multiplyUpperTo = bnpMultiplyUpperTo\nproto.modInt = bnpModInt\nproto.millerRabin = bnpMillerRabin\n\n// public\nproto.clone = bnClone\nproto.intValue = bnIntValue\nproto.byteValue = bnByteValue\nproto.shortValue = bnShortValue\nproto.signum = bnSigNum\nproto.toByteArray = bnToByteArray\nproto.equals = bnEquals\nproto.min = bnMin\nproto.max = bnMax\nproto.and = bnAnd\nproto.or = bnOr\nproto.xor = bnXor\nproto.andNot = bnAndNot\nproto.not = bnNot\nproto.shiftLeft = bnShiftLeft\nproto.shiftRight = bnShiftRight\nproto.getLowestSetBit = bnGetLowestSetBit\nproto.bitCount = bnBitCount\nproto.testBit = bnTestBit\nproto.setBit = bnSetBit\nproto.clearBit = bnClearBit\nproto.flipBit = bnFlipBit\nproto.add = bnAdd\nproto.subtract = bnSubtract\nproto.multiply = bnMultiply\nproto.divide = bnDivide\nproto.remainder = bnRemainder\nproto.divideAndRemainder = bnDivideAndRemainder\nproto.modPow = bnModPow\nproto.modInverse = bnModInverse\nproto.pow = bnPow\nproto.gcd = bnGCD\nproto.isProbablePrime = bnIsProbablePrime\n\n// JSBN-specific extension\nproto.square = bnSquare\n\n// constants\nBigInteger.ZERO = nbv(0)\nBigInteger.ONE = nbv(1)\nBigInteger.valueOf = nbv\n\nmodule.exports = BigInteger\n","// FIXME: Kind of a weird way to throw exceptions, consider removing\nvar assert = require('assert')\nvar BigInteger = require('./bigi')\n\n/**\n * Turns a byte array into a big integer.\n *\n * This function will interpret a byte array as a big integer in big\n * endian notation.\n */\nBigInteger.fromByteArrayUnsigned = function(byteArray) {\n // BigInteger expects a DER integer conformant byte array\n if (byteArray[0] & 0x80) {\n return new BigInteger([0].concat(byteArray))\n }\n\n return new BigInteger(byteArray)\n}\n\n/**\n * Returns a byte array representation of the big integer.\n *\n * This returns the absolute of the contained value in big endian\n * form. A value of zero results in an empty array.\n */\nBigInteger.prototype.toByteArrayUnsigned = function() {\n var byteArray = this.toByteArray()\n return byteArray[0] === 0 ? byteArray.slice(1) : byteArray\n}\n\nBigInteger.fromDERInteger = function(byteArray) {\n return new BigInteger(byteArray)\n}\n\n/*\n * Converts BigInteger to a DER integer representation.\n *\n * The format for this value uses the most significant bit as a sign\n * bit. If the most significant bit is already set and the integer is\n * positive, a 0x00 is prepended.\n *\n * Examples:\n *\n * 0 => 0x00\n * 1 => 0x01\n * -1 => 0xff\n * 127 => 0x7f\n * -127 => 0x81\n * 128 => 0x0080\n * -128 => 0x80\n * 255 => 0x00ff\n * -255 => 0xff01\n * 16300 => 0x3fac\n * -16300 => 0xc054\n * 62300 => 0x00f35c\n * -62300 => 0xff0ca4\n*/\nBigInteger.prototype.toDERInteger = BigInteger.prototype.toByteArray\n\nBigInteger.fromBuffer = function(buffer) {\n // BigInteger expects a DER integer conformant byte array\n if (buffer[0] & 0x80) {\n var byteArray = Array.prototype.slice.call(buffer)\n\n return new BigInteger([0].concat(byteArray))\n }\n\n return new BigInteger(buffer)\n}\n\nBigInteger.fromHex = function(hex) {\n if (hex === '') return BigInteger.ZERO\n\n assert.equal(hex, hex.match(/^[A-Fa-f0-9]+/), 'Invalid hex string')\n assert.equal(hex.length % 2, 0, 'Incomplete hex')\n return new BigInteger(hex, 16)\n}\n\nBigInteger.prototype.toBuffer = function(size) {\n var byteArray = this.toByteArrayUnsigned()\n var zeros = []\n\n var padding = size - byteArray.length\n while (zeros.length < padding) zeros.push(0)\n\n return new Buffer(zeros.concat(byteArray))\n}\n\nBigInteger.prototype.toHex = function(size) {\n return this.toBuffer(size).toString('hex')\n}\n","var BigInteger = require('./bigi')\n\n//addons\nrequire('./convert')\n\nmodule.exports = BigInteger","var assert = require('assert')\nvar Buffer = require('safe-buffer').Buffer\nvar BigInteger = require('bigi')\n\nvar THREE = BigInteger.valueOf(3)\n\nfunction Point (curve, x, y, z) {\n assert.notStrictEqual(z, undefined, 'Missing Z coordinate')\n\n this.curve = curve\n this.x = x\n this.y = y\n this.z = z\n this._zInv = null\n\n this.compressed = true\n}\n\nObject.defineProperty(Point.prototype, 'zInv', {\n get: function () {\n if (this._zInv === null) {\n this._zInv = this.z.modInverse(this.curve.p)\n }\n\n return this._zInv\n }\n})\n\nObject.defineProperty(Point.prototype, 'affineX', {\n get: function () {\n return this.x.multiply(this.zInv).mod(this.curve.p)\n }\n})\n\nObject.defineProperty(Point.prototype, 'affineY', {\n get: function () {\n return this.y.multiply(this.zInv).mod(this.curve.p)\n }\n})\n\nPoint.fromAffine = function (curve, x, y) {\n return new Point(curve, x, y, BigInteger.ONE)\n}\n\nPoint.prototype.equals = function (other) {\n if (other === this) return true\n if (this.curve.isInfinity(this)) return this.curve.isInfinity(other)\n if (this.curve.isInfinity(other)) return this.curve.isInfinity(this)\n\n // u = Y2 * Z1 - Y1 * Z2\n var u = other.y.multiply(this.z).subtract(this.y.multiply(other.z)).mod(this.curve.p)\n\n if (u.signum() !== 0) return false\n\n // v = X2 * Z1 - X1 * Z2\n var v = other.x.multiply(this.z).subtract(this.x.multiply(other.z)).mod(this.curve.p)\n\n return v.signum() === 0\n}\n\nPoint.prototype.negate = function () {\n var y = this.curve.p.subtract(this.y)\n\n return new Point(this.curve, this.x, y, this.z)\n}\n\nPoint.prototype.add = function (b) {\n if (this.curve.isInfinity(this)) return b\n if (this.curve.isInfinity(b)) return this\n\n var x1 = this.x\n var y1 = this.y\n var x2 = b.x\n var y2 = b.y\n\n // u = Y2 * Z1 - Y1 * Z2\n var u = y2.multiply(this.z).subtract(y1.multiply(b.z)).mod(this.curve.p)\n // v = X2 * Z1 - X1 * Z2\n var v = x2.multiply(this.z).subtract(x1.multiply(b.z)).mod(this.curve.p)\n\n if (v.signum() === 0) {\n if (u.signum() === 0) {\n return this.twice() // this == b, so double\n }\n\n return this.curve.infinity // this = -b, so infinity\n }\n\n var v2 = v.square()\n var v3 = v2.multiply(v)\n var x1v2 = x1.multiply(v2)\n var zu2 = u.square().multiply(this.z)\n\n // x3 = v * (z2 * (z1 * u^2 - 2 * x1 * v^2) - v^3)\n var x3 = zu2.subtract(x1v2.shiftLeft(1)).multiply(b.z).subtract(v3).multiply(v).mod(this.curve.p)\n // y3 = z2 * (3 * x1 * u * v^2 - y1 * v^3 - z1 * u^3) + u * v^3\n var y3 = x1v2.multiply(THREE).multiply(u).subtract(y1.multiply(v3)).subtract(zu2.multiply(u)).multiply(b.z).add(u.multiply(v3)).mod(this.curve.p)\n // z3 = v^3 * z1 * z2\n var z3 = v3.multiply(this.z).multiply(b.z).mod(this.curve.p)\n\n return new Point(this.curve, x3, y3, z3)\n}\n\nPoint.prototype.twice = function () {\n if (this.curve.isInfinity(this)) return this\n if (this.y.signum() === 0) return this.curve.infinity\n\n var x1 = this.x\n var y1 = this.y\n\n var y1z1 = y1.multiply(this.z).mod(this.curve.p)\n var y1sqz1 = y1z1.multiply(y1).mod(this.curve.p)\n var a = this.curve.a\n\n // w = 3 * x1^2 + a * z1^2\n var w = x1.square().multiply(THREE)\n\n if (a.signum() !== 0) {\n w = w.add(this.z.square().multiply(a))\n }\n\n w = w.mod(this.curve.p)\n // x3 = 2 * y1 * z1 * (w^2 - 8 * x1 * y1^2 * z1)\n var x3 = w.square().subtract(x1.shiftLeft(3).multiply(y1sqz1)).shiftLeft(1).multiply(y1z1).mod(this.curve.p)\n // y3 = 4 * y1^2 * z1 * (3 * w * x1 - 2 * y1^2 * z1) - w^3\n var y3 = w.multiply(THREE).multiply(x1).subtract(y1sqz1.shiftLeft(1)).shiftLeft(2).multiply(y1sqz1).subtract(w.pow(3)).mod(this.curve.p)\n // z3 = 8 * (y1 * z1)^3\n var z3 = y1z1.pow(3).shiftLeft(3).mod(this.curve.p)\n\n return new Point(this.curve, x3, y3, z3)\n}\n\n// Simple NAF (Non-Adjacent Form) multiplication algorithm\n// TODO: modularize the multiplication algorithm\nPoint.prototype.multiply = function (k) {\n if (this.curve.isInfinity(this)) return this\n if (k.signum() === 0) return this.curve.infinity\n\n var e = k\n var h = e.multiply(THREE)\n\n var neg = this.negate()\n var R = this\n\n for (var i = h.bitLength() - 2; i > 0; --i) {\n var hBit = h.testBit(i)\n var eBit = e.testBit(i)\n\n R = R.twice()\n\n if (hBit !== eBit) {\n R = R.add(hBit ? this : neg)\n }\n }\n\n return R\n}\n\n// Compute this*j + x*k (simultaneous multiplication)\nPoint.prototype.multiplyTwo = function (j, x, k) {\n var i = Math.max(j.bitLength(), k.bitLength()) - 1\n var R = this.curve.infinity\n var both = this.add(x)\n\n while (i >= 0) {\n var jBit = j.testBit(i)\n var kBit = k.testBit(i)\n\n R = R.twice()\n\n if (jBit) {\n if (kBit) {\n R = R.add(both)\n } else {\n R = R.add(this)\n }\n } else if (kBit) {\n R = R.add(x)\n }\n --i\n }\n\n return R\n}\n\nPoint.prototype.getEncoded = function (compressed) {\n if (compressed == null) compressed = this.compressed\n if (this.curve.isInfinity(this)) return Buffer.alloc(1, 0) // Infinity point encoded is simply '00'\n\n var x = this.affineX\n var y = this.affineY\n var byteLength = this.curve.pLength\n var buffer\n\n // 0x02/0x03 | X\n if (compressed) {\n buffer = Buffer.allocUnsafe(1 + byteLength)\n buffer.writeUInt8(y.isEven() ? 0x02 : 0x03, 0)\n\n // 0x04 | X | Y\n } else {\n buffer = Buffer.allocUnsafe(1 + byteLength + byteLength)\n buffer.writeUInt8(0x04, 0)\n\n y.toBuffer(byteLength).copy(buffer, 1 + byteLength)\n }\n\n x.toBuffer(byteLength).copy(buffer, 1)\n\n return buffer\n}\n\nPoint.decodeFrom = function (curve, buffer) {\n var type = buffer.readUInt8(0)\n var compressed = (type !== 4)\n\n var byteLength = Math.floor((curve.p.bitLength() + 7) / 8)\n var x = BigInteger.fromBuffer(buffer.slice(1, 1 + byteLength))\n\n var Q\n if (compressed) {\n assert.equal(buffer.length, byteLength + 1, 'Invalid sequence length')\n assert(type === 0x02 || type === 0x03, 'Invalid sequence tag')\n\n var isOdd = (type === 0x03)\n Q = curve.pointFromX(isOdd, x)\n } else {\n assert.equal(buffer.length, 1 + byteLength + byteLength, 'Invalid sequence length')\n\n var y = BigInteger.fromBuffer(buffer.slice(1 + byteLength))\n Q = Point.fromAffine(curve, x, y)\n }\n\n Q.compressed = compressed\n return Q\n}\n\nPoint.prototype.toString = function () {\n if (this.curve.isInfinity(this)) return '(INFINITY)'\n\n return '(' + this.affineX.toString() + ',' + this.affineY.toString() + ')'\n}\n\nmodule.exports = Point\n","var assert = require('assert')\nvar BigInteger = require('bigi')\n\nvar Point = require('./point')\n\nfunction Curve (p, a, b, Gx, Gy, n, h) {\n this.p = p\n this.a = a\n this.b = b\n this.G = Point.fromAffine(this, Gx, Gy)\n this.n = n\n this.h = h\n\n this.infinity = new Point(this, null, null, BigInteger.ZERO)\n\n // result caching\n this.pOverFour = p.add(BigInteger.ONE).shiftRight(2)\n\n // determine size of p in bytes\n this.pLength = Math.floor((this.p.bitLength() + 7) / 8)\n}\n\nCurve.prototype.pointFromX = function (isOdd, x) {\n var alpha = x.pow(3).add(this.a.multiply(x)).add(this.b).mod(this.p)\n var beta = alpha.modPow(this.pOverFour, this.p) // XXX: not compatible with all curves\n\n var y = beta\n if (beta.isEven() ^ !isOdd) {\n y = this.p.subtract(y) // -y % p\n }\n\n return Point.fromAffine(this, x, y)\n}\n\nCurve.prototype.isInfinity = function (Q) {\n if (Q === this.infinity) return true\n\n return Q.z.signum() === 0 && Q.y.signum() !== 0\n}\n\nCurve.prototype.isOnCurve = function (Q) {\n if (this.isInfinity(Q)) return true\n\n var x = Q.affineX\n var y = Q.affineY\n var a = this.a\n var b = this.b\n var p = this.p\n\n // Check that xQ and yQ are integers in the interval [0, p - 1]\n if (x.signum() < 0 || x.compareTo(p) >= 0) return false\n if (y.signum() < 0 || y.compareTo(p) >= 0) return false\n\n // and check that y^2 = x^3 + ax + b (mod p)\n var lhs = y.square().mod(p)\n var rhs = x.pow(3).add(a.multiply(x)).add(b).mod(p)\n return lhs.equals(rhs)\n}\n\n/**\n * Validate an elliptic curve point.\n *\n * See SEC 1, section 3.2.2.1: Elliptic Curve Public Key Validation Primitive\n */\nCurve.prototype.validate = function (Q) {\n // Check Q != O\n assert(!this.isInfinity(Q), 'Point is at infinity')\n assert(this.isOnCurve(Q), 'Point is not on the curve')\n\n // Check nQ = O (where Q is a scalar multiple of G)\n var nQ = Q.multiply(this.n)\n assert(this.isInfinity(nQ), 'Point is not a scalar multiple of G')\n\n return true\n}\n\nmodule.exports = Curve\n","var BigInteger = require('bigi')\n\nvar curves = require('./curves.json')\nvar Curve = require('./curve')\n\nfunction getCurveByName (name) {\n var curve = curves[name]\n if (!curve) return null\n\n var p = new BigInteger(curve.p, 16)\n var a = new BigInteger(curve.a, 16)\n var b = new BigInteger(curve.b, 16)\n var n = new BigInteger(curve.n, 16)\n var h = new BigInteger(curve.h, 16)\n var Gx = new BigInteger(curve.Gx, 16)\n var Gy = new BigInteger(curve.Gy, 16)\n\n return new Curve(p, a, b, Gx, Gy, n, h)\n}\n\nmodule.exports = getCurveByName\n","var Point = require('./point')\nvar Curve = require('./curve')\n\nvar getCurveByName = require('./names')\n\nmodule.exports = {\n Curve: Curve,\n Point: Point,\n getCurveByName: getCurveByName\n}\n","module.exports = require('crypto').createHash\n","module.exports = require('crypto').createHmac\n",null,"// base-x encoding / decoding\n// Copyright (c) 2018 base-x contributors\n// Copyright (c) 2014-2018 The Bitcoin Core developers (base58.cpp)\n// Distributed under the MIT software license, see the accompanying\n// file LICENSE or http://www.opensource.org/licenses/mit-license.php.\nfunction base (ALPHABET) {\n if (ALPHABET.length >= 255) { throw new TypeError('Alphabet too long') }\n const BASE_MAP = new Uint8Array(256)\n for (let j = 0; j < BASE_MAP.length; j++) {\n BASE_MAP[j] = 255\n }\n for (let i = 0; i < ALPHABET.length; i++) {\n const x = ALPHABET.charAt(i)\n const xc = x.charCodeAt(0)\n if (BASE_MAP[xc] !== 255) { throw new TypeError(x + ' is ambiguous') }\n BASE_MAP[xc] = i\n }\n const BASE = ALPHABET.length\n const LEADER = ALPHABET.charAt(0)\n const FACTOR = Math.log(BASE) / Math.log(256) // log(BASE) / log(256), rounded up\n const iFACTOR = Math.log(256) / Math.log(BASE) // log(256) / log(BASE), rounded up\n function encode (source) {\n // eslint-disable-next-line no-empty\n if (source instanceof Uint8Array) { } else if (ArrayBuffer.isView(source)) {\n source = new Uint8Array(source.buffer, source.byteOffset, source.byteLength)\n } else if (Array.isArray(source)) {\n source = Uint8Array.from(source)\n }\n if (!(source instanceof Uint8Array)) { throw new TypeError('Expected Uint8Array') }\n if (source.length === 0) { return '' }\n // Skip & count leading zeroes.\n let zeroes = 0\n let length = 0\n let pbegin = 0\n const pend = source.length\n while (pbegin !== pend && source[pbegin] === 0) {\n pbegin++\n zeroes++\n }\n // Allocate enough space in big-endian base58 representation.\n const size = ((pend - pbegin) * iFACTOR + 1) >>> 0\n const b58 = new Uint8Array(size)\n // Process the bytes.\n while (pbegin !== pend) {\n let carry = source[pbegin]\n // Apply \"b58 = b58 * 256 + ch\".\n let i = 0\n for (let it1 = size - 1; (carry !== 0 || i < length) && (it1 !== -1); it1--, i++) {\n carry += (256 * b58[it1]) >>> 0\n b58[it1] = (carry % BASE) >>> 0\n carry = (carry / BASE) >>> 0\n }\n if (carry !== 0) { throw new Error('Non-zero carry') }\n length = i\n pbegin++\n }\n // Skip leading zeroes in base58 result.\n let it2 = size - length\n while (it2 !== size && b58[it2] === 0) {\n it2++\n }\n // Translate the result into a string.\n let str = LEADER.repeat(zeroes)\n for (; it2 < size; ++it2) { str += ALPHABET.charAt(b58[it2]) }\n return str\n }\n function decodeUnsafe (source) {\n if (typeof source !== 'string') { throw new TypeError('Expected String') }\n if (source.length === 0) { return new Uint8Array() }\n let psz = 0\n // Skip and count leading '1's.\n let zeroes = 0\n let length = 0\n while (source[psz] === LEADER) {\n zeroes++\n psz++\n }\n // Allocate enough space in big-endian base256 representation.\n const size = (((source.length - psz) * FACTOR) + 1) >>> 0 // log(58) / log(256), rounded up.\n const b256 = new Uint8Array(size)\n // Process the characters.\n while (psz < source.length) {\n // Find code of next character\n const charCode = source.charCodeAt(psz)\n // Base map can not be indexed using char code\n if (charCode > 255) { return }\n // Decode character\n let carry = BASE_MAP[charCode]\n // Invalid character\n if (carry === 255) { return }\n let i = 0\n for (let it3 = size - 1; (carry !== 0 || i < length) && (it3 !== -1); it3--, i++) {\n carry += (BASE * b256[it3]) >>> 0\n b256[it3] = (carry % 256) >>> 0\n carry = (carry / 256) >>> 0\n }\n if (carry !== 0) { throw new Error('Non-zero carry') }\n length = i\n psz++\n }\n // Skip leading zeroes in b256.\n let it4 = size - length\n while (it4 !== size && b256[it4] === 0) {\n it4++\n }\n const vch = new Uint8Array(zeroes + (size - it4))\n let j = zeroes\n while (it4 !== size) {\n vch[j++] = b256[it4++]\n }\n return vch\n }\n function decode (string) {\n const buffer = decodeUnsafe(string)\n if (buffer) { return buffer }\n throw new Error('Non-base' + BASE + ' character')\n }\n return {\n encode,\n decodeUnsafe,\n decode\n }\n}\nexport default base\n","import basex from 'base-x';\nvar ALPHABET = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz';\nexport default basex(ALPHABET);\n",null,null,null,null,null,null,"function RetryOperation(timeouts, options) {\n // Compatibility for the old (timeouts, retryForever) signature\n if (typeof options === 'boolean') {\n options = { forever: options };\n }\n\n this._originalTimeouts = JSON.parse(JSON.stringify(timeouts));\n this._timeouts = timeouts;\n this._options = options || {};\n this._maxRetryTime = options && options.maxRetryTime || Infinity;\n this._fn = null;\n this._errors = [];\n this._attempts = 1;\n this._operationTimeout = null;\n this._operationTimeoutCb = null;\n this._timeout = null;\n this._operationStart = null;\n this._timer = null;\n\n if (this._options.forever) {\n this._cachedTimeouts = this._timeouts.slice(0);\n }\n}\nmodule.exports = RetryOperation;\n\nRetryOperation.prototype.reset = function() {\n this._attempts = 1;\n this._timeouts = this._originalTimeouts.slice(0);\n}\n\nRetryOperation.prototype.stop = function() {\n if (this._timeout) {\n clearTimeout(this._timeout);\n }\n if (this._timer) {\n clearTimeout(this._timer);\n }\n\n this._timeouts = [];\n this._cachedTimeouts = null;\n};\n\nRetryOperation.prototype.retry = function(err) {\n if (this._timeout) {\n clearTimeout(this._timeout);\n }\n\n if (!err) {\n return false;\n }\n var currentTime = new Date().getTime();\n if (err && currentTime - this._operationStart >= this._maxRetryTime) {\n this._errors.push(err);\n this._errors.unshift(new Error('RetryOperation timeout occurred'));\n return false;\n }\n\n this._errors.push(err);\n\n var timeout = this._timeouts.shift();\n if (timeout === undefined) {\n if (this._cachedTimeouts) {\n // retry forever, only keep last error\n this._errors.splice(0, this._errors.length - 1);\n timeout = this._cachedTimeouts.slice(-1);\n } else {\n return false;\n }\n }\n\n var self = this;\n this._timer = setTimeout(function() {\n self._attempts++;\n\n if (self._operationTimeoutCb) {\n self._timeout = setTimeout(function() {\n self._operationTimeoutCb(self._attempts);\n }, self._operationTimeout);\n\n if (self._options.unref) {\n self._timeout.unref();\n }\n }\n\n self._fn(self._attempts);\n }, timeout);\n\n if (this._options.unref) {\n this._timer.unref();\n }\n\n return true;\n};\n\nRetryOperation.prototype.attempt = function(fn, timeoutOps) {\n this._fn = fn;\n\n if (timeoutOps) {\n if (timeoutOps.timeout) {\n this._operationTimeout = timeoutOps.timeout;\n }\n if (timeoutOps.cb) {\n this._operationTimeoutCb = timeoutOps.cb;\n }\n }\n\n var self = this;\n if (this._operationTimeoutCb) {\n this._timeout = setTimeout(function() {\n self._operationTimeoutCb();\n }, self._operationTimeout);\n }\n\n this._operationStart = new Date().getTime();\n\n this._fn(this._attempts);\n};\n\nRetryOperation.prototype.try = function(fn) {\n console.log('Using RetryOperation.try() is deprecated');\n this.attempt(fn);\n};\n\nRetryOperation.prototype.start = function(fn) {\n console.log('Using RetryOperation.start() is deprecated');\n this.attempt(fn);\n};\n\nRetryOperation.prototype.start = RetryOperation.prototype.try;\n\nRetryOperation.prototype.errors = function() {\n return this._errors;\n};\n\nRetryOperation.prototype.attempts = function() {\n return this._attempts;\n};\n\nRetryOperation.prototype.mainError = function() {\n if (this._errors.length === 0) {\n return null;\n }\n\n var counts = {};\n var mainError = null;\n var mainErrorCount = 0;\n\n for (var i = 0; i < this._errors.length; i++) {\n var error = this._errors[i];\n var message = error.message;\n var count = (counts[message] || 0) + 1;\n\n counts[message] = count;\n\n if (count >= mainErrorCount) {\n mainError = error;\n mainErrorCount = count;\n }\n }\n\n return mainError;\n};\n","var RetryOperation = require('./retry_operation');\n\nexports.operation = function(options) {\n var timeouts = exports.timeouts(options);\n return new RetryOperation(timeouts, {\n forever: options && (options.forever || options.retries === Infinity),\n unref: options && options.unref,\n maxRetryTime: options && options.maxRetryTime\n });\n};\n\nexports.timeouts = function(options) {\n if (options instanceof Array) {\n return [].concat(options);\n }\n\n var opts = {\n retries: 10,\n factor: 2,\n minTimeout: 1 * 1000,\n maxTimeout: Infinity,\n randomize: false\n };\n for (var key in options) {\n opts[key] = options[key];\n }\n\n if (opts.minTimeout > opts.maxTimeout) {\n throw new Error('minTimeout is greater than maxTimeout');\n }\n\n var timeouts = [];\n for (var i = 0; i < opts.retries; i++) {\n timeouts.push(this.createTimeout(i, opts));\n }\n\n if (options && options.forever && !timeouts.length) {\n timeouts.push(this.createTimeout(i, opts));\n }\n\n // sort the array numerically ascending\n timeouts.sort(function(a,b) {\n return a - b;\n });\n\n return timeouts;\n};\n\nexports.createTimeout = function(attempt, opts) {\n var random = (opts.randomize)\n ? (Math.random() + 1)\n : 1;\n\n var timeout = Math.round(random * Math.max(opts.minTimeout, 1) * Math.pow(opts.factor, attempt));\n timeout = Math.min(timeout, opts.maxTimeout);\n\n return timeout;\n};\n\nexports.wrap = function(obj, options, methods) {\n if (options instanceof Array) {\n methods = options;\n options = null;\n }\n\n if (!methods) {\n methods = [];\n for (var key in obj) {\n if (typeof obj[key] === 'function') {\n methods.push(key);\n }\n }\n }\n\n for (var i = 0; i < methods.length; i++) {\n var method = methods[i];\n var original = obj[method];\n\n obj[method] = function retryWrapper(original) {\n var op = exports.operation(options);\n var args = Array.prototype.slice.call(arguments, 1);\n var callback = args.pop();\n\n args.push(function(err) {\n if (op.retry(err)) {\n return;\n }\n if (err) {\n arguments[0] = op.mainError();\n }\n callback.apply(this, arguments);\n });\n\n op.attempt(function() {\n original.apply(obj, args);\n });\n }.bind(obj, original);\n obj[method].options = options;\n }\n};\n","module.exports = require('./lib/retry');",null,null,"'use strict';\n\nconst BINARY_TYPES = ['nodebuffer', 'arraybuffer', 'fragments'];\nconst hasBlob = typeof Blob !== 'undefined';\n\nif (hasBlob) BINARY_TYPES.push('blob');\n\nmodule.exports = {\n BINARY_TYPES,\n EMPTY_BUFFER: Buffer.alloc(0),\n GUID: '258EAFA5-E914-47DA-95CA-C5AB0DC85B11',\n hasBlob,\n kForOnEventAttribute: Symbol('kIsForOnEventAttribute'),\n kListener: Symbol('kListener'),\n kStatusCode: Symbol('status-code'),\n kWebSocket: Symbol('websocket'),\n NOOP: () => {}\n};\n","'use strict';\n\nconst { EMPTY_BUFFER } = require('./constants');\n\nconst FastBuffer = Buffer[Symbol.species];\n\n/**\n * Merges an array of buffers into a new buffer.\n *\n * @param {Buffer[]} list The array of buffers to concat\n * @param {Number} totalLength The total length of buffers in the list\n * @return {Buffer} The resulting buffer\n * @public\n */\nfunction concat(list, totalLength) {\n if (list.length === 0) return EMPTY_BUFFER;\n if (list.length === 1) return list[0];\n\n const target = Buffer.allocUnsafe(totalLength);\n let offset = 0;\n\n for (let i = 0; i < list.length; i++) {\n const buf = list[i];\n target.set(buf, offset);\n offset += buf.length;\n }\n\n if (offset < totalLength) {\n return new FastBuffer(target.buffer, target.byteOffset, offset);\n }\n\n return target;\n}\n\n/**\n * Masks a buffer using the given mask.\n *\n * @param {Buffer} source The buffer to mask\n * @param {Buffer} mask The mask to use\n * @param {Buffer} output The buffer where to store the result\n * @param {Number} offset The offset at which to start writing\n * @param {Number} length The number of bytes to mask.\n * @public\n */\nfunction _mask(source, mask, output, offset, length) {\n for (let i = 0; i < length; i++) {\n output[offset + i] = source[i] ^ mask[i & 3];\n }\n}\n\n/**\n * Unmasks a buffer using the given mask.\n *\n * @param {Buffer} buffer The buffer to unmask\n * @param {Buffer} mask The mask to use\n * @public\n */\nfunction _unmask(buffer, mask) {\n for (let i = 0; i < buffer.length; i++) {\n buffer[i] ^= mask[i & 3];\n }\n}\n\n/**\n * Converts a buffer to an `ArrayBuffer`.\n *\n * @param {Buffer} buf The buffer to convert\n * @return {ArrayBuffer} Converted buffer\n * @public\n */\nfunction toArrayBuffer(buf) {\n if (buf.length === buf.buffer.byteLength) {\n return buf.buffer;\n }\n\n return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.length);\n}\n\n/**\n * Converts `data` to a `Buffer`.\n *\n * @param {*} data The data to convert\n * @return {Buffer} The buffer\n * @throws {TypeError}\n * @public\n */\nfunction toBuffer(data) {\n toBuffer.readOnly = true;\n\n if (Buffer.isBuffer(data)) return data;\n\n let buf;\n\n if (data instanceof ArrayBuffer) {\n buf = new FastBuffer(data);\n } else if (ArrayBuffer.isView(data)) {\n buf = new FastBuffer(data.buffer, data.byteOffset, data.byteLength);\n } else {\n buf = Buffer.from(data);\n toBuffer.readOnly = false;\n }\n\n return buf;\n}\n\nmodule.exports = {\n concat,\n mask: _mask,\n toArrayBuffer,\n toBuffer,\n unmask: _unmask\n};\n\n/* istanbul ignore else */\nif (!process.env.WS_NO_BUFFER_UTIL) {\n try {\n const bufferUtil = require('bufferutil');\n\n module.exports.mask = function (source, mask, output, offset, length) {\n if (length < 48) _mask(source, mask, output, offset, length);\n else bufferUtil.mask(source, mask, output, offset, length);\n };\n\n module.exports.unmask = function (buffer, mask) {\n if (buffer.length < 32) _unmask(buffer, mask);\n else bufferUtil.unmask(buffer, mask);\n };\n } catch (e) {\n // Continue regardless of the error.\n }\n}\n","'use strict';\n\nconst kDone = Symbol('kDone');\nconst kRun = Symbol('kRun');\n\n/**\n * A very simple job queue with adjustable concurrency. Adapted from\n * https://github.com/STRML/async-limiter\n */\nclass Limiter {\n /**\n * Creates a new `Limiter`.\n *\n * @param {Number} [concurrency=Infinity] The maximum number of jobs allowed\n * to run concurrently\n */\n constructor(concurrency) {\n this[kDone] = () => {\n this.pending--;\n this[kRun]();\n };\n this.concurrency = concurrency || Infinity;\n this.jobs = [];\n this.pending = 0;\n }\n\n /**\n * Adds a job to the queue.\n *\n * @param {Function} job The job to run\n * @public\n */\n add(job) {\n this.jobs.push(job);\n this[kRun]();\n }\n\n /**\n * Removes a job from the queue and runs it if possible.\n *\n * @private\n */\n [kRun]() {\n if (this.pending === this.concurrency) return;\n\n if (this.jobs.length) {\n const job = this.jobs.shift();\n\n this.pending++;\n job(this[kDone]);\n }\n }\n}\n\nmodule.exports = Limiter;\n","'use strict';\n\nconst zlib = require('zlib');\n\nconst bufferUtil = require('./buffer-util');\nconst Limiter = require('./limiter');\nconst { kStatusCode } = require('./constants');\n\nconst FastBuffer = Buffer[Symbol.species];\nconst TRAILER = Buffer.from([0x00, 0x00, 0xff, 0xff]);\nconst kPerMessageDeflate = Symbol('permessage-deflate');\nconst kTotalLength = Symbol('total-length');\nconst kCallback = Symbol('callback');\nconst kBuffers = Symbol('buffers');\nconst kError = Symbol('error');\n\n//\n// We limit zlib concurrency, which prevents severe memory fragmentation\n// as documented in https://github.com/nodejs/node/issues/8871#issuecomment-250915913\n// and https://github.com/websockets/ws/issues/1202\n//\n// Intentionally global; it's the global thread pool that's an issue.\n//\nlet zlibLimiter;\n\n/**\n * permessage-deflate implementation.\n */\nclass PerMessageDeflate {\n /**\n * Creates a PerMessageDeflate instance.\n *\n * @param {Object} [options] Configuration options\n * @param {(Boolean|Number)} [options.clientMaxWindowBits] Advertise support\n * for, or request, a custom client window size\n * @param {Boolean} [options.clientNoContextTakeover=false] Advertise/\n * acknowledge disabling of client context takeover\n * @param {Number} [options.concurrencyLimit=10] The number of concurrent\n * calls to zlib\n * @param {(Boolean|Number)} [options.serverMaxWindowBits] Request/confirm the\n * use of a custom server window size\n * @param {Boolean} [options.serverNoContextTakeover=false] Request/accept\n * disabling of server context takeover\n * @param {Number} [options.threshold=1024] Size (in bytes) below which\n * messages should not be compressed if context takeover is disabled\n * @param {Object} [options.zlibDeflateOptions] Options to pass to zlib on\n * deflate\n * @param {Object} [options.zlibInflateOptions] Options to pass to zlib on\n * inflate\n * @param {Boolean} [isServer=false] Create the instance in either server or\n * client mode\n * @param {Number} [maxPayload=0] The maximum allowed message length\n */\n constructor(options, isServer, maxPayload) {\n this._maxPayload = maxPayload | 0;\n this._options = options || {};\n this._threshold =\n this._options.threshold !== undefined ? this._options.threshold : 1024;\n this._isServer = !!isServer;\n this._deflate = null;\n this._inflate = null;\n\n this.params = null;\n\n if (!zlibLimiter) {\n const concurrency =\n this._options.concurrencyLimit !== undefined\n ? this._options.concurrencyLimit\n : 10;\n zlibLimiter = new Limiter(concurrency);\n }\n }\n\n /**\n * @type {String}\n */\n static get extensionName() {\n return 'permessage-deflate';\n }\n\n /**\n * Create an extension negotiation offer.\n *\n * @return {Object} Extension parameters\n * @public\n */\n offer() {\n const params = {};\n\n if (this._options.serverNoContextTakeover) {\n params.server_no_context_takeover = true;\n }\n if (this._options.clientNoContextTakeover) {\n params.client_no_context_takeover = true;\n }\n if (this._options.serverMaxWindowBits) {\n params.server_max_window_bits = this._options.serverMaxWindowBits;\n }\n if (this._options.clientMaxWindowBits) {\n params.client_max_window_bits = this._options.clientMaxWindowBits;\n } else if (this._options.clientMaxWindowBits == null) {\n params.client_max_window_bits = true;\n }\n\n return params;\n }\n\n /**\n * Accept an extension negotiation offer/response.\n *\n * @param {Array} configurations The extension negotiation offers/reponse\n * @return {Object} Accepted configuration\n * @public\n */\n accept(configurations) {\n configurations = this.normalizeParams(configurations);\n\n this.params = this._isServer\n ? this.acceptAsServer(configurations)\n : this.acceptAsClient(configurations);\n\n return this.params;\n }\n\n /**\n * Releases all resources used by the extension.\n *\n * @public\n */\n cleanup() {\n if (this._inflate) {\n this._inflate.close();\n this._inflate = null;\n }\n\n if (this._deflate) {\n const callback = this._deflate[kCallback];\n\n this._deflate.close();\n this._deflate = null;\n\n if (callback) {\n callback(\n new Error(\n 'The deflate stream was closed while data was being processed'\n )\n );\n }\n }\n }\n\n /**\n * Accept an extension negotiation offer.\n *\n * @param {Array} offers The extension negotiation offers\n * @return {Object} Accepted configuration\n * @private\n */\n acceptAsServer(offers) {\n const opts = this._options;\n const accepted = offers.find((params) => {\n if (\n (opts.serverNoContextTakeover === false &&\n params.server_no_context_takeover) ||\n (params.server_max_window_bits &&\n (opts.serverMaxWindowBits === false ||\n (typeof opts.serverMaxWindowBits === 'number' &&\n opts.serverMaxWindowBits > params.server_max_window_bits))) ||\n (typeof opts.clientMaxWindowBits === 'number' &&\n !params.client_max_window_bits)\n ) {\n return false;\n }\n\n return true;\n });\n\n if (!accepted) {\n throw new Error('None of the extension offers can be accepted');\n }\n\n if (opts.serverNoContextTakeover) {\n accepted.server_no_context_takeover = true;\n }\n if (opts.clientNoContextTakeover) {\n accepted.client_no_context_takeover = true;\n }\n if (typeof opts.serverMaxWindowBits === 'number') {\n accepted.server_max_window_bits = opts.serverMaxWindowBits;\n }\n if (typeof opts.clientMaxWindowBits === 'number') {\n accepted.client_max_window_bits = opts.clientMaxWindowBits;\n } else if (\n accepted.client_max_window_bits === true ||\n opts.clientMaxWindowBits === false\n ) {\n delete accepted.client_max_window_bits;\n }\n\n return accepted;\n }\n\n /**\n * Accept the extension negotiation response.\n *\n * @param {Array} response The extension negotiation response\n * @return {Object} Accepted configuration\n * @private\n */\n acceptAsClient(response) {\n const params = response[0];\n\n if (\n this._options.clientNoContextTakeover === false &&\n params.client_no_context_takeover\n ) {\n throw new Error('Unexpected parameter \"client_no_context_takeover\"');\n }\n\n if (!params.client_max_window_bits) {\n if (typeof this._options.clientMaxWindowBits === 'number') {\n params.client_max_window_bits = this._options.clientMaxWindowBits;\n }\n } else if (\n this._options.clientMaxWindowBits === false ||\n (typeof this._options.clientMaxWindowBits === 'number' &&\n params.client_max_window_bits > this._options.clientMaxWindowBits)\n ) {\n throw new Error(\n 'Unexpected or invalid parameter \"client_max_window_bits\"'\n );\n }\n\n return params;\n }\n\n /**\n * Normalize parameters.\n *\n * @param {Array} configurations The extension negotiation offers/reponse\n * @return {Array} The offers/response with normalized parameters\n * @private\n */\n normalizeParams(configurations) {\n configurations.forEach((params) => {\n Object.keys(params).forEach((key) => {\n let value = params[key];\n\n if (value.length > 1) {\n throw new Error(`Parameter \"${key}\" must have only a single value`);\n }\n\n value = value[0];\n\n if (key === 'client_max_window_bits') {\n if (value !== true) {\n const num = +value;\n if (!Number.isInteger(num) || num < 8 || num > 15) {\n throw new TypeError(\n `Invalid value for parameter \"${key}\": ${value}`\n );\n }\n value = num;\n } else if (!this._isServer) {\n throw new TypeError(\n `Invalid value for parameter \"${key}\": ${value}`\n );\n }\n } else if (key === 'server_max_window_bits') {\n const num = +value;\n if (!Number.isInteger(num) || num < 8 || num > 15) {\n throw new TypeError(\n `Invalid value for parameter \"${key}\": ${value}`\n );\n }\n value = num;\n } else if (\n key === 'client_no_context_takeover' ||\n key === 'server_no_context_takeover'\n ) {\n if (value !== true) {\n throw new TypeError(\n `Invalid value for parameter \"${key}\": ${value}`\n );\n }\n } else {\n throw new Error(`Unknown parameter \"${key}\"`);\n }\n\n params[key] = value;\n });\n });\n\n return configurations;\n }\n\n /**\n * Decompress data. Concurrency limited.\n *\n * @param {Buffer} data Compressed data\n * @param {Boolean} fin Specifies whether or not this is the last fragment\n * @param {Function} callback Callback\n * @public\n */\n decompress(data, fin, callback) {\n zlibLimiter.add((done) => {\n this._decompress(data, fin, (err, result) => {\n done();\n callback(err, result);\n });\n });\n }\n\n /**\n * Compress data. Concurrency limited.\n *\n * @param {(Buffer|String)} data Data to compress\n * @param {Boolean} fin Specifies whether or not this is the last fragment\n * @param {Function} callback Callback\n * @public\n */\n compress(data, fin, callback) {\n zlibLimiter.add((done) => {\n this._compress(data, fin, (err, result) => {\n done();\n callback(err, result);\n });\n });\n }\n\n /**\n * Decompress data.\n *\n * @param {Buffer} data Compressed data\n * @param {Boolean} fin Specifies whether or not this is the last fragment\n * @param {Function} callback Callback\n * @private\n */\n _decompress(data, fin, callback) {\n const endpoint = this._isServer ? 'client' : 'server';\n\n if (!this._inflate) {\n const key = `${endpoint}_max_window_bits`;\n const windowBits =\n typeof this.params[key] !== 'number'\n ? zlib.Z_DEFAULT_WINDOWBITS\n : this.params[key];\n\n this._inflate = zlib.createInflateRaw({\n ...this._options.zlibInflateOptions,\n windowBits\n });\n this._inflate[kPerMessageDeflate] = this;\n this._inflate[kTotalLength] = 0;\n this._inflate[kBuffers] = [];\n this._inflate.on('error', inflateOnError);\n this._inflate.on('data', inflateOnData);\n }\n\n this._inflate[kCallback] = callback;\n\n this._inflate.write(data);\n if (fin) this._inflate.write(TRAILER);\n\n this._inflate.flush(() => {\n const err = this._inflate[kError];\n\n if (err) {\n this._inflate.close();\n this._inflate = null;\n callback(err);\n return;\n }\n\n const data = bufferUtil.concat(\n this._inflate[kBuffers],\n this._inflate[kTotalLength]\n );\n\n if (this._inflate._readableState.endEmitted) {\n this._inflate.close();\n this._inflate = null;\n } else {\n this._inflate[kTotalLength] = 0;\n this._inflate[kBuffers] = [];\n\n if (fin && this.params[`${endpoint}_no_context_takeover`]) {\n this._inflate.reset();\n }\n }\n\n callback(null, data);\n });\n }\n\n /**\n * Compress data.\n *\n * @param {(Buffer|String)} data Data to compress\n * @param {Boolean} fin Specifies whether or not this is the last fragment\n * @param {Function} callback Callback\n * @private\n */\n _compress(data, fin, callback) {\n const endpoint = this._isServer ? 'server' : 'client';\n\n if (!this._deflate) {\n const key = `${endpoint}_max_window_bits`;\n const windowBits =\n typeof this.params[key] !== 'number'\n ? zlib.Z_DEFAULT_WINDOWBITS\n : this.params[key];\n\n this._deflate = zlib.createDeflateRaw({\n ...this._options.zlibDeflateOptions,\n windowBits\n });\n\n this._deflate[kTotalLength] = 0;\n this._deflate[kBuffers] = [];\n\n this._deflate.on('data', deflateOnData);\n }\n\n this._deflate[kCallback] = callback;\n\n this._deflate.write(data);\n this._deflate.flush(zlib.Z_SYNC_FLUSH, () => {\n if (!this._deflate) {\n //\n // The deflate stream was closed while data was being processed.\n //\n return;\n }\n\n let data = bufferUtil.concat(\n this._deflate[kBuffers],\n this._deflate[kTotalLength]\n );\n\n if (fin) {\n data = new FastBuffer(data.buffer, data.byteOffset, data.length - 4);\n }\n\n //\n // Ensure that the callback will not be called again in\n // `PerMessageDeflate#cleanup()`.\n //\n this._deflate[kCallback] = null;\n\n this._deflate[kTotalLength] = 0;\n this._deflate[kBuffers] = [];\n\n if (fin && this.params[`${endpoint}_no_context_takeover`]) {\n this._deflate.reset();\n }\n\n callback(null, data);\n });\n }\n}\n\nmodule.exports = PerMessageDeflate;\n\n/**\n * The listener of the `zlib.DeflateRaw` stream `'data'` event.\n *\n * @param {Buffer} chunk A chunk of data\n * @private\n */\nfunction deflateOnData(chunk) {\n this[kBuffers].push(chunk);\n this[kTotalLength] += chunk.length;\n}\n\n/**\n * The listener of the `zlib.InflateRaw` stream `'data'` event.\n *\n * @param {Buffer} chunk A chunk of data\n * @private\n */\nfunction inflateOnData(chunk) {\n this[kTotalLength] += chunk.length;\n\n if (\n this[kPerMessageDeflate]._maxPayload < 1 ||\n this[kTotalLength] <= this[kPerMessageDeflate]._maxPayload\n ) {\n this[kBuffers].push(chunk);\n return;\n }\n\n this[kError] = new RangeError('Max payload size exceeded');\n this[kError].code = 'WS_ERR_UNSUPPORTED_MESSAGE_LENGTH';\n this[kError][kStatusCode] = 1009;\n this.removeListener('data', inflateOnData);\n\n //\n // The choice to employ `zlib.reset()` over `zlib.close()` is dictated by the\n // fact that in Node.js versions prior to 13.10.0, the callback for\n // `zlib.flush()` is not called if `zlib.close()` is used. Utilizing\n // `zlib.reset()` ensures that either the callback is invoked or an error is\n // emitted.\n //\n this.reset();\n}\n\n/**\n * The listener of the `zlib.InflateRaw` stream `'error'` event.\n *\n * @param {Error} err The emitted error\n * @private\n */\nfunction inflateOnError(err) {\n //\n // There is no need to call `Zlib#close()` as the handle is automatically\n // closed when an error is emitted.\n //\n this[kPerMessageDeflate]._inflate = null;\n\n if (this[kError]) {\n this[kCallback](this[kError]);\n return;\n }\n\n err[kStatusCode] = 1007;\n this[kCallback](err);\n}\n","'use strict';\n\nconst { isUtf8 } = require('buffer');\n\nconst { hasBlob } = require('./constants');\n\n//\n// Allowed token characters:\n//\n// '!', '#', '$', '%', '&', ''', '*', '+', '-',\n// '.', 0-9, A-Z, '^', '_', '`', a-z, '|', '~'\n//\n// tokenChars[32] === 0 // ' '\n// tokenChars[33] === 1 // '!'\n// tokenChars[34] === 0 // '\"'\n// ...\n//\n// prettier-ignore\nconst tokenChars = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0 - 15\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 16 - 31\n 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, // 32 - 47\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, // 48 - 63\n 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 64 - 79\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, // 80 - 95\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 96 - 111\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0 // 112 - 127\n];\n\n/**\n * Checks if a status code is allowed in a close frame.\n *\n * @param {Number} code The status code\n * @return {Boolean} `true` if the status code is valid, else `false`\n * @public\n */\nfunction isValidStatusCode(code) {\n return (\n (code >= 1000 &&\n code <= 1014 &&\n code !== 1004 &&\n code !== 1005 &&\n code !== 1006) ||\n (code >= 3000 && code <= 4999)\n );\n}\n\n/**\n * Checks if a given buffer contains only correct UTF-8.\n * Ported from https://www.cl.cam.ac.uk/%7Emgk25/ucs/utf8_check.c by\n * Markus Kuhn.\n *\n * @param {Buffer} buf The buffer to check\n * @return {Boolean} `true` if `buf` contains only correct UTF-8, else `false`\n * @public\n */\nfunction _isValidUTF8(buf) {\n const len = buf.length;\n let i = 0;\n\n while (i < len) {\n if ((buf[i] & 0x80) === 0) {\n // 0xxxxxxx\n i++;\n } else if ((buf[i] & 0xe0) === 0xc0) {\n // 110xxxxx 10xxxxxx\n if (\n i + 1 === len ||\n (buf[i + 1] & 0xc0) !== 0x80 ||\n (buf[i] & 0xfe) === 0xc0 // Overlong\n ) {\n return false;\n }\n\n i += 2;\n } else if ((buf[i] & 0xf0) === 0xe0) {\n // 1110xxxx 10xxxxxx 10xxxxxx\n if (\n i + 2 >= len ||\n (buf[i + 1] & 0xc0) !== 0x80 ||\n (buf[i + 2] & 0xc0) !== 0x80 ||\n (buf[i] === 0xe0 && (buf[i + 1] & 0xe0) === 0x80) || // Overlong\n (buf[i] === 0xed && (buf[i + 1] & 0xe0) === 0xa0) // Surrogate (U+D800 - U+DFFF)\n ) {\n return false;\n }\n\n i += 3;\n } else if ((buf[i] & 0xf8) === 0xf0) {\n // 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx\n if (\n i + 3 >= len ||\n (buf[i + 1] & 0xc0) !== 0x80 ||\n (buf[i + 2] & 0xc0) !== 0x80 ||\n (buf[i + 3] & 0xc0) !== 0x80 ||\n (buf[i] === 0xf0 && (buf[i + 1] & 0xf0) === 0x80) || // Overlong\n (buf[i] === 0xf4 && buf[i + 1] > 0x8f) ||\n buf[i] > 0xf4 // > U+10FFFF\n ) {\n return false;\n }\n\n i += 4;\n } else {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Determines whether a value is a `Blob`.\n *\n * @param {*} value The value to be tested\n * @return {Boolean} `true` if `value` is a `Blob`, else `false`\n * @private\n */\nfunction isBlob(value) {\n return (\n hasBlob &&\n typeof value === 'object' &&\n typeof value.arrayBuffer === 'function' &&\n typeof value.type === 'string' &&\n typeof value.stream === 'function' &&\n (value[Symbol.toStringTag] === 'Blob' ||\n value[Symbol.toStringTag] === 'File')\n );\n}\n\nmodule.exports = {\n isBlob,\n isValidStatusCode,\n isValidUTF8: _isValidUTF8,\n tokenChars\n};\n\nif (isUtf8) {\n module.exports.isValidUTF8 = function (buf) {\n return buf.length < 24 ? _isValidUTF8(buf) : isUtf8(buf);\n };\n} /* istanbul ignore else */ else if (!process.env.WS_NO_UTF_8_VALIDATE) {\n try {\n const isValidUTF8 = require('utf-8-validate');\n\n module.exports.isValidUTF8 = function (buf) {\n return buf.length < 32 ? _isValidUTF8(buf) : isValidUTF8(buf);\n };\n } catch (e) {\n // Continue regardless of the error.\n }\n}\n","'use strict';\n\nconst { Writable } = require('stream');\n\nconst PerMessageDeflate = require('./permessage-deflate');\nconst {\n BINARY_TYPES,\n EMPTY_BUFFER,\n kStatusCode,\n kWebSocket\n} = require('./constants');\nconst { concat, toArrayBuffer, unmask } = require('./buffer-util');\nconst { isValidStatusCode, isValidUTF8 } = require('./validation');\n\nconst FastBuffer = Buffer[Symbol.species];\n\nconst GET_INFO = 0;\nconst GET_PAYLOAD_LENGTH_16 = 1;\nconst GET_PAYLOAD_LENGTH_64 = 2;\nconst GET_MASK = 3;\nconst GET_DATA = 4;\nconst INFLATING = 5;\nconst DEFER_EVENT = 6;\n\n/**\n * HyBi Receiver implementation.\n *\n * @extends Writable\n */\nclass Receiver extends Writable {\n /**\n * Creates a Receiver instance.\n *\n * @param {Object} [options] Options object\n * @param {Boolean} [options.allowSynchronousEvents=true] Specifies whether\n * any of the `'message'`, `'ping'`, and `'pong'` events can be emitted\n * multiple times in the same tick\n * @param {String} [options.binaryType=nodebuffer] The type for binary data\n * @param {Object} [options.extensions] An object containing the negotiated\n * extensions\n * @param {Boolean} [options.isServer=false] Specifies whether to operate in\n * client or server mode\n * @param {Number} [options.maxPayload=0] The maximum allowed message length\n * @param {Boolean} [options.skipUTF8Validation=false] Specifies whether or\n * not to skip UTF-8 validation for text and close messages\n */\n constructor(options = {}) {\n super();\n\n this._allowSynchronousEvents =\n options.allowSynchronousEvents !== undefined\n ? options.allowSynchronousEvents\n : true;\n this._binaryType = options.binaryType || BINARY_TYPES[0];\n this._extensions = options.extensions || {};\n this._isServer = !!options.isServer;\n this._maxPayload = options.maxPayload | 0;\n this._skipUTF8Validation = !!options.skipUTF8Validation;\n this[kWebSocket] = undefined;\n\n this._bufferedBytes = 0;\n this._buffers = [];\n\n this._compressed = false;\n this._payloadLength = 0;\n this._mask = undefined;\n this._fragmented = 0;\n this._masked = false;\n this._fin = false;\n this._opcode = 0;\n\n this._totalPayloadLength = 0;\n this._messageLength = 0;\n this._fragments = [];\n\n this._errored = false;\n this._loop = false;\n this._state = GET_INFO;\n }\n\n /**\n * Implements `Writable.prototype._write()`.\n *\n * @param {Buffer} chunk The chunk of data to write\n * @param {String} encoding The character encoding of `chunk`\n * @param {Function} cb Callback\n * @private\n */\n _write(chunk, encoding, cb) {\n if (this._opcode === 0x08 && this._state == GET_INFO) return cb();\n\n this._bufferedBytes += chunk.length;\n this._buffers.push(chunk);\n this.startLoop(cb);\n }\n\n /**\n * Consumes `n` bytes from the buffered data.\n *\n * @param {Number} n The number of bytes to consume\n * @return {Buffer} The consumed bytes\n * @private\n */\n consume(n) {\n this._bufferedBytes -= n;\n\n if (n === this._buffers[0].length) return this._buffers.shift();\n\n if (n < this._buffers[0].length) {\n const buf = this._buffers[0];\n this._buffers[0] = new FastBuffer(\n buf.buffer,\n buf.byteOffset + n,\n buf.length - n\n );\n\n return new FastBuffer(buf.buffer, buf.byteOffset, n);\n }\n\n const dst = Buffer.allocUnsafe(n);\n\n do {\n const buf = this._buffers[0];\n const offset = dst.length - n;\n\n if (n >= buf.length) {\n dst.set(this._buffers.shift(), offset);\n } else {\n dst.set(new Uint8Array(buf.buffer, buf.byteOffset, n), offset);\n this._buffers[0] = new FastBuffer(\n buf.buffer,\n buf.byteOffset + n,\n buf.length - n\n );\n }\n\n n -= buf.length;\n } while (n > 0);\n\n return dst;\n }\n\n /**\n * Starts the parsing loop.\n *\n * @param {Function} cb Callback\n * @private\n */\n startLoop(cb) {\n this._loop = true;\n\n do {\n switch (this._state) {\n case GET_INFO:\n this.getInfo(cb);\n break;\n case GET_PAYLOAD_LENGTH_16:\n this.getPayloadLength16(cb);\n break;\n case GET_PAYLOAD_LENGTH_64:\n this.getPayloadLength64(cb);\n break;\n case GET_MASK:\n this.getMask();\n break;\n case GET_DATA:\n this.getData(cb);\n break;\n case INFLATING:\n case DEFER_EVENT:\n this._loop = false;\n return;\n }\n } while (this._loop);\n\n if (!this._errored) cb();\n }\n\n /**\n * Reads the first two bytes of a frame.\n *\n * @param {Function} cb Callback\n * @private\n */\n getInfo(cb) {\n if (this._bufferedBytes < 2) {\n this._loop = false;\n return;\n }\n\n const buf = this.consume(2);\n\n if ((buf[0] & 0x30) !== 0x00) {\n const error = this.createError(\n RangeError,\n 'RSV2 and RSV3 must be clear',\n true,\n 1002,\n 'WS_ERR_UNEXPECTED_RSV_2_3'\n );\n\n cb(error);\n return;\n }\n\n const compressed = (buf[0] & 0x40) === 0x40;\n\n if (compressed && !this._extensions[PerMessageDeflate.extensionName]) {\n const error = this.createError(\n RangeError,\n 'RSV1 must be clear',\n true,\n 1002,\n 'WS_ERR_UNEXPECTED_RSV_1'\n );\n\n cb(error);\n return;\n }\n\n this._fin = (buf[0] & 0x80) === 0x80;\n this._opcode = buf[0] & 0x0f;\n this._payloadLength = buf[1] & 0x7f;\n\n if (this._opcode === 0x00) {\n if (compressed) {\n const error = this.createError(\n RangeError,\n 'RSV1 must be clear',\n true,\n 1002,\n 'WS_ERR_UNEXPECTED_RSV_1'\n );\n\n cb(error);\n return;\n }\n\n if (!this._fragmented) {\n const error = this.createError(\n RangeError,\n 'invalid opcode 0',\n true,\n 1002,\n 'WS_ERR_INVALID_OPCODE'\n );\n\n cb(error);\n return;\n }\n\n this._opcode = this._fragmented;\n } else if (this._opcode === 0x01 || this._opcode === 0x02) {\n if (this._fragmented) {\n const error = this.createError(\n RangeError,\n `invalid opcode ${this._opcode}`,\n true,\n 1002,\n 'WS_ERR_INVALID_OPCODE'\n );\n\n cb(error);\n return;\n }\n\n this._compressed = compressed;\n } else if (this._opcode > 0x07 && this._opcode < 0x0b) {\n if (!this._fin) {\n const error = this.createError(\n RangeError,\n 'FIN must be set',\n true,\n 1002,\n 'WS_ERR_EXPECTED_FIN'\n );\n\n cb(error);\n return;\n }\n\n if (compressed) {\n const error = this.createError(\n RangeError,\n 'RSV1 must be clear',\n true,\n 1002,\n 'WS_ERR_UNEXPECTED_RSV_1'\n );\n\n cb(error);\n return;\n }\n\n if (\n this._payloadLength > 0x7d ||\n (this._opcode === 0x08 && this._payloadLength === 1)\n ) {\n const error = this.createError(\n RangeError,\n `invalid payload length ${this._payloadLength}`,\n true,\n 1002,\n 'WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH'\n );\n\n cb(error);\n return;\n }\n } else {\n const error = this.createError(\n RangeError,\n `invalid opcode ${this._opcode}`,\n true,\n 1002,\n 'WS_ERR_INVALID_OPCODE'\n );\n\n cb(error);\n return;\n }\n\n if (!this._fin && !this._fragmented) this._fragmented = this._opcode;\n this._masked = (buf[1] & 0x80) === 0x80;\n\n if (this._isServer) {\n if (!this._masked) {\n const error = this.createError(\n RangeError,\n 'MASK must be set',\n true,\n 1002,\n 'WS_ERR_EXPECTED_MASK'\n );\n\n cb(error);\n return;\n }\n } else if (this._masked) {\n const error = this.createError(\n RangeError,\n 'MASK must be clear',\n true,\n 1002,\n 'WS_ERR_UNEXPECTED_MASK'\n );\n\n cb(error);\n return;\n }\n\n if (this._payloadLength === 126) this._state = GET_PAYLOAD_LENGTH_16;\n else if (this._payloadLength === 127) this._state = GET_PAYLOAD_LENGTH_64;\n else this.haveLength(cb);\n }\n\n /**\n * Gets extended payload length (7+16).\n *\n * @param {Function} cb Callback\n * @private\n */\n getPayloadLength16(cb) {\n if (this._bufferedBytes < 2) {\n this._loop = false;\n return;\n }\n\n this._payloadLength = this.consume(2).readUInt16BE(0);\n this.haveLength(cb);\n }\n\n /**\n * Gets extended payload length (7+64).\n *\n * @param {Function} cb Callback\n * @private\n */\n getPayloadLength64(cb) {\n if (this._bufferedBytes < 8) {\n this._loop = false;\n return;\n }\n\n const buf = this.consume(8);\n const num = buf.readUInt32BE(0);\n\n //\n // The maximum safe integer in JavaScript is 2^53 - 1. An error is returned\n // if payload length is greater than this number.\n //\n if (num > Math.pow(2, 53 - 32) - 1) {\n const error = this.createError(\n RangeError,\n 'Unsupported WebSocket frame: payload length > 2^53 - 1',\n false,\n 1009,\n 'WS_ERR_UNSUPPORTED_DATA_PAYLOAD_LENGTH'\n );\n\n cb(error);\n return;\n }\n\n this._payloadLength = num * Math.pow(2, 32) + buf.readUInt32BE(4);\n this.haveLength(cb);\n }\n\n /**\n * Payload length has been read.\n *\n * @param {Function} cb Callback\n * @private\n */\n haveLength(cb) {\n if (this._payloadLength && this._opcode < 0x08) {\n this._totalPayloadLength += this._payloadLength;\n if (this._totalPayloadLength > this._maxPayload && this._maxPayload > 0) {\n const error = this.createError(\n RangeError,\n 'Max payload size exceeded',\n false,\n 1009,\n 'WS_ERR_UNSUPPORTED_MESSAGE_LENGTH'\n );\n\n cb(error);\n return;\n }\n }\n\n if (this._masked) this._state = GET_MASK;\n else this._state = GET_DATA;\n }\n\n /**\n * Reads mask bytes.\n *\n * @private\n */\n getMask() {\n if (this._bufferedBytes < 4) {\n this._loop = false;\n return;\n }\n\n this._mask = this.consume(4);\n this._state = GET_DATA;\n }\n\n /**\n * Reads data bytes.\n *\n * @param {Function} cb Callback\n * @private\n */\n getData(cb) {\n let data = EMPTY_BUFFER;\n\n if (this._payloadLength) {\n if (this._bufferedBytes < this._payloadLength) {\n this._loop = false;\n return;\n }\n\n data = this.consume(this._payloadLength);\n\n if (\n this._masked &&\n (this._mask[0] | this._mask[1] | this._mask[2] | this._mask[3]) !== 0\n ) {\n unmask(data, this._mask);\n }\n }\n\n if (this._opcode > 0x07) {\n this.controlMessage(data, cb);\n return;\n }\n\n if (this._compressed) {\n this._state = INFLATING;\n this.decompress(data, cb);\n return;\n }\n\n if (data.length) {\n //\n // This message is not compressed so its length is the sum of the payload\n // length of all fragments.\n //\n this._messageLength = this._totalPayloadLength;\n this._fragments.push(data);\n }\n\n this.dataMessage(cb);\n }\n\n /**\n * Decompresses data.\n *\n * @param {Buffer} data Compressed data\n * @param {Function} cb Callback\n * @private\n */\n decompress(data, cb) {\n const perMessageDeflate = this._extensions[PerMessageDeflate.extensionName];\n\n perMessageDeflate.decompress(data, this._fin, (err, buf) => {\n if (err) return cb(err);\n\n if (buf.length) {\n this._messageLength += buf.length;\n if (this._messageLength > this._maxPayload && this._maxPayload > 0) {\n const error = this.createError(\n RangeError,\n 'Max payload size exceeded',\n false,\n 1009,\n 'WS_ERR_UNSUPPORTED_MESSAGE_LENGTH'\n );\n\n cb(error);\n return;\n }\n\n this._fragments.push(buf);\n }\n\n this.dataMessage(cb);\n if (this._state === GET_INFO) this.startLoop(cb);\n });\n }\n\n /**\n * Handles a data message.\n *\n * @param {Function} cb Callback\n * @private\n */\n dataMessage(cb) {\n if (!this._fin) {\n this._state = GET_INFO;\n return;\n }\n\n const messageLength = this._messageLength;\n const fragments = this._fragments;\n\n this._totalPayloadLength = 0;\n this._messageLength = 0;\n this._fragmented = 0;\n this._fragments = [];\n\n if (this._opcode === 2) {\n let data;\n\n if (this._binaryType === 'nodebuffer') {\n data = concat(fragments, messageLength);\n } else if (this._binaryType === 'arraybuffer') {\n data = toArrayBuffer(concat(fragments, messageLength));\n } else if (this._binaryType === 'blob') {\n data = new Blob(fragments);\n } else {\n data = fragments;\n }\n\n if (this._allowSynchronousEvents) {\n this.emit('message', data, true);\n this._state = GET_INFO;\n } else {\n this._state = DEFER_EVENT;\n setImmediate(() => {\n this.emit('message', data, true);\n this._state = GET_INFO;\n this.startLoop(cb);\n });\n }\n } else {\n const buf = concat(fragments, messageLength);\n\n if (!this._skipUTF8Validation && !isValidUTF8(buf)) {\n const error = this.createError(\n Error,\n 'invalid UTF-8 sequence',\n true,\n 1007,\n 'WS_ERR_INVALID_UTF8'\n );\n\n cb(error);\n return;\n }\n\n if (this._state === INFLATING || this._allowSynchronousEvents) {\n this.emit('message', buf, false);\n this._state = GET_INFO;\n } else {\n this._state = DEFER_EVENT;\n setImmediate(() => {\n this.emit('message', buf, false);\n this._state = GET_INFO;\n this.startLoop(cb);\n });\n }\n }\n }\n\n /**\n * Handles a control message.\n *\n * @param {Buffer} data Data to handle\n * @return {(Error|RangeError|undefined)} A possible error\n * @private\n */\n controlMessage(data, cb) {\n if (this._opcode === 0x08) {\n if (data.length === 0) {\n this._loop = false;\n this.emit('conclude', 1005, EMPTY_BUFFER);\n this.end();\n } else {\n const code = data.readUInt16BE(0);\n\n if (!isValidStatusCode(code)) {\n const error = this.createError(\n RangeError,\n `invalid status code ${code}`,\n true,\n 1002,\n 'WS_ERR_INVALID_CLOSE_CODE'\n );\n\n cb(error);\n return;\n }\n\n const buf = new FastBuffer(\n data.buffer,\n data.byteOffset + 2,\n data.length - 2\n );\n\n if (!this._skipUTF8Validation && !isValidUTF8(buf)) {\n const error = this.createError(\n Error,\n 'invalid UTF-8 sequence',\n true,\n 1007,\n 'WS_ERR_INVALID_UTF8'\n );\n\n cb(error);\n return;\n }\n\n this._loop = false;\n this.emit('conclude', code, buf);\n this.end();\n }\n\n this._state = GET_INFO;\n return;\n }\n\n if (this._allowSynchronousEvents) {\n this.emit(this._opcode === 0x09 ? 'ping' : 'pong', data);\n this._state = GET_INFO;\n } else {\n this._state = DEFER_EVENT;\n setImmediate(() => {\n this.emit(this._opcode === 0x09 ? 'ping' : 'pong', data);\n this._state = GET_INFO;\n this.startLoop(cb);\n });\n }\n }\n\n /**\n * Builds an error object.\n *\n * @param {function(new:Error|RangeError)} ErrorCtor The error constructor\n * @param {String} message The error message\n * @param {Boolean} prefix Specifies whether or not to add a default prefix to\n * `message`\n * @param {Number} statusCode The status code\n * @param {String} errorCode The exposed error code\n * @return {(Error|RangeError)} The error\n * @private\n */\n createError(ErrorCtor, message, prefix, statusCode, errorCode) {\n this._loop = false;\n this._errored = true;\n\n const err = new ErrorCtor(\n prefix ? `Invalid WebSocket frame: ${message}` : message\n );\n\n Error.captureStackTrace(err, this.createError);\n err.code = errorCode;\n err[kStatusCode] = statusCode;\n return err;\n }\n}\n\nmodule.exports = Receiver;\n","/* eslint no-unused-vars: [\"error\", { \"varsIgnorePattern\": \"^Duplex\" }] */\n\n'use strict';\n\nconst { Duplex } = require('stream');\nconst { randomFillSync } = require('crypto');\n\nconst PerMessageDeflate = require('./permessage-deflate');\nconst { EMPTY_BUFFER, kWebSocket, NOOP } = require('./constants');\nconst { isBlob, isValidStatusCode } = require('./validation');\nconst { mask: applyMask, toBuffer } = require('./buffer-util');\n\nconst kByteLength = Symbol('kByteLength');\nconst maskBuffer = Buffer.alloc(4);\nconst RANDOM_POOL_SIZE = 8 * 1024;\nlet randomPool;\nlet randomPoolPointer = RANDOM_POOL_SIZE;\n\nconst DEFAULT = 0;\nconst DEFLATING = 1;\nconst GET_BLOB_DATA = 2;\n\n/**\n * HyBi Sender implementation.\n */\nclass Sender {\n /**\n * Creates a Sender instance.\n *\n * @param {Duplex} socket The connection socket\n * @param {Object} [extensions] An object containing the negotiated extensions\n * @param {Function} [generateMask] The function used to generate the masking\n * key\n */\n constructor(socket, extensions, generateMask) {\n this._extensions = extensions || {};\n\n if (generateMask) {\n this._generateMask = generateMask;\n this._maskBuffer = Buffer.alloc(4);\n }\n\n this._socket = socket;\n\n this._firstFragment = true;\n this._compress = false;\n\n this._bufferedBytes = 0;\n this._queue = [];\n this._state = DEFAULT;\n this.onerror = NOOP;\n this[kWebSocket] = undefined;\n }\n\n /**\n * Frames a piece of data according to the HyBi WebSocket protocol.\n *\n * @param {(Buffer|String)} data The data to frame\n * @param {Object} options Options object\n * @param {Boolean} [options.fin=false] Specifies whether or not to set the\n * FIN bit\n * @param {Function} [options.generateMask] The function used to generate the\n * masking key\n * @param {Boolean} [options.mask=false] Specifies whether or not to mask\n * `data`\n * @param {Buffer} [options.maskBuffer] The buffer used to store the masking\n * key\n * @param {Number} options.opcode The opcode\n * @param {Boolean} [options.readOnly=false] Specifies whether `data` can be\n * modified\n * @param {Boolean} [options.rsv1=false] Specifies whether or not to set the\n * RSV1 bit\n * @return {(Buffer|String)[]} The framed data\n * @public\n */\n static frame(data, options) {\n let mask;\n let merge = false;\n let offset = 2;\n let skipMasking = false;\n\n if (options.mask) {\n mask = options.maskBuffer || maskBuffer;\n\n if (options.generateMask) {\n options.generateMask(mask);\n } else {\n if (randomPoolPointer === RANDOM_POOL_SIZE) {\n /* istanbul ignore else */\n if (randomPool === undefined) {\n //\n // This is lazily initialized because server-sent frames must not\n // be masked so it may never be used.\n //\n randomPool = Buffer.alloc(RANDOM_POOL_SIZE);\n }\n\n randomFillSync(randomPool, 0, RANDOM_POOL_SIZE);\n randomPoolPointer = 0;\n }\n\n mask[0] = randomPool[randomPoolPointer++];\n mask[1] = randomPool[randomPoolPointer++];\n mask[2] = randomPool[randomPoolPointer++];\n mask[3] = randomPool[randomPoolPointer++];\n }\n\n skipMasking = (mask[0] | mask[1] | mask[2] | mask[3]) === 0;\n offset = 6;\n }\n\n let dataLength;\n\n if (typeof data === 'string') {\n if (\n (!options.mask || skipMasking) &&\n options[kByteLength] !== undefined\n ) {\n dataLength = options[kByteLength];\n } else {\n data = Buffer.from(data);\n dataLength = data.length;\n }\n } else {\n dataLength = data.length;\n merge = options.mask && options.readOnly && !skipMasking;\n }\n\n let payloadLength = dataLength;\n\n if (dataLength >= 65536) {\n offset += 8;\n payloadLength = 127;\n } else if (dataLength > 125) {\n offset += 2;\n payloadLength = 126;\n }\n\n const target = Buffer.allocUnsafe(merge ? dataLength + offset : offset);\n\n target[0] = options.fin ? options.opcode | 0x80 : options.opcode;\n if (options.rsv1) target[0] |= 0x40;\n\n target[1] = payloadLength;\n\n if (payloadLength === 126) {\n target.writeUInt16BE(dataLength, 2);\n } else if (payloadLength === 127) {\n target[2] = target[3] = 0;\n target.writeUIntBE(dataLength, 4, 6);\n }\n\n if (!options.mask) return [target, data];\n\n target[1] |= 0x80;\n target[offset - 4] = mask[0];\n target[offset - 3] = mask[1];\n target[offset - 2] = mask[2];\n target[offset - 1] = mask[3];\n\n if (skipMasking) return [target, data];\n\n if (merge) {\n applyMask(data, mask, target, offset, dataLength);\n return [target];\n }\n\n applyMask(data, mask, data, 0, dataLength);\n return [target, data];\n }\n\n /**\n * Sends a close message to the other peer.\n *\n * @param {Number} [code] The status code component of the body\n * @param {(String|Buffer)} [data] The message component of the body\n * @param {Boolean} [mask=false] Specifies whether or not to mask the message\n * @param {Function} [cb] Callback\n * @public\n */\n close(code, data, mask, cb) {\n let buf;\n\n if (code === undefined) {\n buf = EMPTY_BUFFER;\n } else if (typeof code !== 'number' || !isValidStatusCode(code)) {\n throw new TypeError('First argument must be a valid error code number');\n } else if (data === undefined || !data.length) {\n buf = Buffer.allocUnsafe(2);\n buf.writeUInt16BE(code, 0);\n } else {\n const length = Buffer.byteLength(data);\n\n if (length > 123) {\n throw new RangeError('The message must not be greater than 123 bytes');\n }\n\n buf = Buffer.allocUnsafe(2 + length);\n buf.writeUInt16BE(code, 0);\n\n if (typeof data === 'string') {\n buf.write(data, 2);\n } else {\n buf.set(data, 2);\n }\n }\n\n const options = {\n [kByteLength]: buf.length,\n fin: true,\n generateMask: this._generateMask,\n mask,\n maskBuffer: this._maskBuffer,\n opcode: 0x08,\n readOnly: false,\n rsv1: false\n };\n\n if (this._state !== DEFAULT) {\n this.enqueue([this.dispatch, buf, false, options, cb]);\n } else {\n this.sendFrame(Sender.frame(buf, options), cb);\n }\n }\n\n /**\n * Sends a ping message to the other peer.\n *\n * @param {*} data The message to send\n * @param {Boolean} [mask=false] Specifies whether or not to mask `data`\n * @param {Function} [cb] Callback\n * @public\n */\n ping(data, mask, cb) {\n let byteLength;\n let readOnly;\n\n if (typeof data === 'string') {\n byteLength = Buffer.byteLength(data);\n readOnly = false;\n } else if (isBlob(data)) {\n byteLength = data.size;\n readOnly = false;\n } else {\n data = toBuffer(data);\n byteLength = data.length;\n readOnly = toBuffer.readOnly;\n }\n\n if (byteLength > 125) {\n throw new RangeError('The data size must not be greater than 125 bytes');\n }\n\n const options = {\n [kByteLength]: byteLength,\n fin: true,\n generateMask: this._generateMask,\n mask,\n maskBuffer: this._maskBuffer,\n opcode: 0x09,\n readOnly,\n rsv1: false\n };\n\n if (isBlob(data)) {\n if (this._state !== DEFAULT) {\n this.enqueue([this.getBlobData, data, false, options, cb]);\n } else {\n this.getBlobData(data, false, options, cb);\n }\n } else if (this._state !== DEFAULT) {\n this.enqueue([this.dispatch, data, false, options, cb]);\n } else {\n this.sendFrame(Sender.frame(data, options), cb);\n }\n }\n\n /**\n * Sends a pong message to the other peer.\n *\n * @param {*} data The message to send\n * @param {Boolean} [mask=false] Specifies whether or not to mask `data`\n * @param {Function} [cb] Callback\n * @public\n */\n pong(data, mask, cb) {\n let byteLength;\n let readOnly;\n\n if (typeof data === 'string') {\n byteLength = Buffer.byteLength(data);\n readOnly = false;\n } else if (isBlob(data)) {\n byteLength = data.size;\n readOnly = false;\n } else {\n data = toBuffer(data);\n byteLength = data.length;\n readOnly = toBuffer.readOnly;\n }\n\n if (byteLength > 125) {\n throw new RangeError('The data size must not be greater than 125 bytes');\n }\n\n const options = {\n [kByteLength]: byteLength,\n fin: true,\n generateMask: this._generateMask,\n mask,\n maskBuffer: this._maskBuffer,\n opcode: 0x0a,\n readOnly,\n rsv1: false\n };\n\n if (isBlob(data)) {\n if (this._state !== DEFAULT) {\n this.enqueue([this.getBlobData, data, false, options, cb]);\n } else {\n this.getBlobData(data, false, options, cb);\n }\n } else if (this._state !== DEFAULT) {\n this.enqueue([this.dispatch, data, false, options, cb]);\n } else {\n this.sendFrame(Sender.frame(data, options), cb);\n }\n }\n\n /**\n * Sends a data message to the other peer.\n *\n * @param {*} data The message to send\n * @param {Object} options Options object\n * @param {Boolean} [options.binary=false] Specifies whether `data` is binary\n * or text\n * @param {Boolean} [options.compress=false] Specifies whether or not to\n * compress `data`\n * @param {Boolean} [options.fin=false] Specifies whether the fragment is the\n * last one\n * @param {Boolean} [options.mask=false] Specifies whether or not to mask\n * `data`\n * @param {Function} [cb] Callback\n * @public\n */\n send(data, options, cb) {\n const perMessageDeflate = this._extensions[PerMessageDeflate.extensionName];\n let opcode = options.binary ? 2 : 1;\n let rsv1 = options.compress;\n\n let byteLength;\n let readOnly;\n\n if (typeof data === 'string') {\n byteLength = Buffer.byteLength(data);\n readOnly = false;\n } else if (isBlob(data)) {\n byteLength = data.size;\n readOnly = false;\n } else {\n data = toBuffer(data);\n byteLength = data.length;\n readOnly = toBuffer.readOnly;\n }\n\n if (this._firstFragment) {\n this._firstFragment = false;\n if (\n rsv1 &&\n perMessageDeflate &&\n perMessageDeflate.params[\n perMessageDeflate._isServer\n ? 'server_no_context_takeover'\n : 'client_no_context_takeover'\n ]\n ) {\n rsv1 = byteLength >= perMessageDeflate._threshold;\n }\n this._compress = rsv1;\n } else {\n rsv1 = false;\n opcode = 0;\n }\n\n if (options.fin) this._firstFragment = true;\n\n const opts = {\n [kByteLength]: byteLength,\n fin: options.fin,\n generateMask: this._generateMask,\n mask: options.mask,\n maskBuffer: this._maskBuffer,\n opcode,\n readOnly,\n rsv1\n };\n\n if (isBlob(data)) {\n if (this._state !== DEFAULT) {\n this.enqueue([this.getBlobData, data, this._compress, opts, cb]);\n } else {\n this.getBlobData(data, this._compress, opts, cb);\n }\n } else if (this._state !== DEFAULT) {\n this.enqueue([this.dispatch, data, this._compress, opts, cb]);\n } else {\n this.dispatch(data, this._compress, opts, cb);\n }\n }\n\n /**\n * Gets the contents of a blob as binary data.\n *\n * @param {Blob} blob The blob\n * @param {Boolean} [compress=false] Specifies whether or not to compress\n * the data\n * @param {Object} options Options object\n * @param {Boolean} [options.fin=false] Specifies whether or not to set the\n * FIN bit\n * @param {Function} [options.generateMask] The function used to generate the\n * masking key\n * @param {Boolean} [options.mask=false] Specifies whether or not to mask\n * `data`\n * @param {Buffer} [options.maskBuffer] The buffer used to store the masking\n * key\n * @param {Number} options.opcode The opcode\n * @param {Boolean} [options.readOnly=false] Specifies whether `data` can be\n * modified\n * @param {Boolean} [options.rsv1=false] Specifies whether or not to set the\n * RSV1 bit\n * @param {Function} [cb] Callback\n * @private\n */\n getBlobData(blob, compress, options, cb) {\n this._bufferedBytes += options[kByteLength];\n this._state = GET_BLOB_DATA;\n\n blob\n .arrayBuffer()\n .then((arrayBuffer) => {\n if (this._socket.destroyed) {\n const err = new Error(\n 'The socket was closed while the blob was being read'\n );\n\n //\n // `callCallbacks` is called in the next tick to ensure that errors\n // that might be thrown in the callbacks behave like errors thrown\n // outside the promise chain.\n //\n process.nextTick(callCallbacks, this, err, cb);\n return;\n }\n\n this._bufferedBytes -= options[kByteLength];\n const data = toBuffer(arrayBuffer);\n\n if (!compress) {\n this._state = DEFAULT;\n this.sendFrame(Sender.frame(data, options), cb);\n this.dequeue();\n } else {\n this.dispatch(data, compress, options, cb);\n }\n })\n .catch((err) => {\n //\n // `onError` is called in the next tick for the same reason that\n // `callCallbacks` above is.\n //\n process.nextTick(onError, this, err, cb);\n });\n }\n\n /**\n * Dispatches a message.\n *\n * @param {(Buffer|String)} data The message to send\n * @param {Boolean} [compress=false] Specifies whether or not to compress\n * `data`\n * @param {Object} options Options object\n * @param {Boolean} [options.fin=false] Specifies whether or not to set the\n * FIN bit\n * @param {Function} [options.generateMask] The function used to generate the\n * masking key\n * @param {Boolean} [options.mask=false] Specifies whether or not to mask\n * `data`\n * @param {Buffer} [options.maskBuffer] The buffer used to store the masking\n * key\n * @param {Number} options.opcode The opcode\n * @param {Boolean} [options.readOnly=false] Specifies whether `data` can be\n * modified\n * @param {Boolean} [options.rsv1=false] Specifies whether or not to set the\n * RSV1 bit\n * @param {Function} [cb] Callback\n * @private\n */\n dispatch(data, compress, options, cb) {\n if (!compress) {\n this.sendFrame(Sender.frame(data, options), cb);\n return;\n }\n\n const perMessageDeflate = this._extensions[PerMessageDeflate.extensionName];\n\n this._bufferedBytes += options[kByteLength];\n this._state = DEFLATING;\n perMessageDeflate.compress(data, options.fin, (_, buf) => {\n if (this._socket.destroyed) {\n const err = new Error(\n 'The socket was closed while data was being compressed'\n );\n\n callCallbacks(this, err, cb);\n return;\n }\n\n this._bufferedBytes -= options[kByteLength];\n this._state = DEFAULT;\n options.readOnly = false;\n this.sendFrame(Sender.frame(buf, options), cb);\n this.dequeue();\n });\n }\n\n /**\n * Executes queued send operations.\n *\n * @private\n */\n dequeue() {\n while (this._state === DEFAULT && this._queue.length) {\n const params = this._queue.shift();\n\n this._bufferedBytes -= params[3][kByteLength];\n Reflect.apply(params[0], this, params.slice(1));\n }\n }\n\n /**\n * Enqueues a send operation.\n *\n * @param {Array} params Send operation parameters.\n * @private\n */\n enqueue(params) {\n this._bufferedBytes += params[3][kByteLength];\n this._queue.push(params);\n }\n\n /**\n * Sends a frame.\n *\n * @param {(Buffer | String)[]} list The frame to send\n * @param {Function} [cb] Callback\n * @private\n */\n sendFrame(list, cb) {\n if (list.length === 2) {\n this._socket.cork();\n this._socket.write(list[0]);\n this._socket.write(list[1], cb);\n this._socket.uncork();\n } else {\n this._socket.write(list[0], cb);\n }\n }\n}\n\nmodule.exports = Sender;\n\n/**\n * Calls queued callbacks with an error.\n *\n * @param {Sender} sender The `Sender` instance\n * @param {Error} err The error to call the callbacks with\n * @param {Function} [cb] The first callback\n * @private\n */\nfunction callCallbacks(sender, err, cb) {\n if (typeof cb === 'function') cb(err);\n\n for (let i = 0; i < sender._queue.length; i++) {\n const params = sender._queue[i];\n const callback = params[params.length - 1];\n\n if (typeof callback === 'function') callback(err);\n }\n}\n\n/**\n * Handles a `Sender` error.\n *\n * @param {Sender} sender The `Sender` instance\n * @param {Error} err The error\n * @param {Function} [cb] The first pending callback\n * @private\n */\nfunction onError(sender, err, cb) {\n callCallbacks(sender, err, cb);\n sender.onerror(err);\n}\n","'use strict';\n\nconst { kForOnEventAttribute, kListener } = require('./constants');\n\nconst kCode = Symbol('kCode');\nconst kData = Symbol('kData');\nconst kError = Symbol('kError');\nconst kMessage = Symbol('kMessage');\nconst kReason = Symbol('kReason');\nconst kTarget = Symbol('kTarget');\nconst kType = Symbol('kType');\nconst kWasClean = Symbol('kWasClean');\n\n/**\n * Class representing an event.\n */\nclass Event {\n /**\n * Create a new `Event`.\n *\n * @param {String} type The name of the event\n * @throws {TypeError} If the `type` argument is not specified\n */\n constructor(type) {\n this[kTarget] = null;\n this[kType] = type;\n }\n\n /**\n * @type {*}\n */\n get target() {\n return this[kTarget];\n }\n\n /**\n * @type {String}\n */\n get type() {\n return this[kType];\n }\n}\n\nObject.defineProperty(Event.prototype, 'target', { enumerable: true });\nObject.defineProperty(Event.prototype, 'type', { enumerable: true });\n\n/**\n * Class representing a close event.\n *\n * @extends Event\n */\nclass CloseEvent extends Event {\n /**\n * Create a new `CloseEvent`.\n *\n * @param {String} type The name of the event\n * @param {Object} [options] A dictionary object that allows for setting\n * attributes via object members of the same name\n * @param {Number} [options.code=0] The status code explaining why the\n * connection was closed\n * @param {String} [options.reason=''] A human-readable string explaining why\n * the connection was closed\n * @param {Boolean} [options.wasClean=false] Indicates whether or not the\n * connection was cleanly closed\n */\n constructor(type, options = {}) {\n super(type);\n\n this[kCode] = options.code === undefined ? 0 : options.code;\n this[kReason] = options.reason === undefined ? '' : options.reason;\n this[kWasClean] = options.wasClean === undefined ? false : options.wasClean;\n }\n\n /**\n * @type {Number}\n */\n get code() {\n return this[kCode];\n }\n\n /**\n * @type {String}\n */\n get reason() {\n return this[kReason];\n }\n\n /**\n * @type {Boolean}\n */\n get wasClean() {\n return this[kWasClean];\n }\n}\n\nObject.defineProperty(CloseEvent.prototype, 'code', { enumerable: true });\nObject.defineProperty(CloseEvent.prototype, 'reason', { enumerable: true });\nObject.defineProperty(CloseEvent.prototype, 'wasClean', { enumerable: true });\n\n/**\n * Class representing an error event.\n *\n * @extends Event\n */\nclass ErrorEvent extends Event {\n /**\n * Create a new `ErrorEvent`.\n *\n * @param {String} type The name of the event\n * @param {Object} [options] A dictionary object that allows for setting\n * attributes via object members of the same name\n * @param {*} [options.error=null] The error that generated this event\n * @param {String} [options.message=''] The error message\n */\n constructor(type, options = {}) {\n super(type);\n\n this[kError] = options.error === undefined ? null : options.error;\n this[kMessage] = options.message === undefined ? '' : options.message;\n }\n\n /**\n * @type {*}\n */\n get error() {\n return this[kError];\n }\n\n /**\n * @type {String}\n */\n get message() {\n return this[kMessage];\n }\n}\n\nObject.defineProperty(ErrorEvent.prototype, 'error', { enumerable: true });\nObject.defineProperty(ErrorEvent.prototype, 'message', { enumerable: true });\n\n/**\n * Class representing a message event.\n *\n * @extends Event\n */\nclass MessageEvent extends Event {\n /**\n * Create a new `MessageEvent`.\n *\n * @param {String} type The name of the event\n * @param {Object} [options] A dictionary object that allows for setting\n * attributes via object members of the same name\n * @param {*} [options.data=null] The message content\n */\n constructor(type, options = {}) {\n super(type);\n\n this[kData] = options.data === undefined ? null : options.data;\n }\n\n /**\n * @type {*}\n */\n get data() {\n return this[kData];\n }\n}\n\nObject.defineProperty(MessageEvent.prototype, 'data', { enumerable: true });\n\n/**\n * This provides methods for emulating the `EventTarget` interface. It's not\n * meant to be used directly.\n *\n * @mixin\n */\nconst EventTarget = {\n /**\n * Register an event listener.\n *\n * @param {String} type A string representing the event type to listen for\n * @param {(Function|Object)} handler The listener to add\n * @param {Object} [options] An options object specifies characteristics about\n * the event listener\n * @param {Boolean} [options.once=false] A `Boolean` indicating that the\n * listener should be invoked at most once after being added. If `true`,\n * the listener would be automatically removed when invoked.\n * @public\n */\n addEventListener(type, handler, options = {}) {\n for (const listener of this.listeners(type)) {\n if (\n !options[kForOnEventAttribute] &&\n listener[kListener] === handler &&\n !listener[kForOnEventAttribute]\n ) {\n return;\n }\n }\n\n let wrapper;\n\n if (type === 'message') {\n wrapper = function onMessage(data, isBinary) {\n const event = new MessageEvent('message', {\n data: isBinary ? data : data.toString()\n });\n\n event[kTarget] = this;\n callListener(handler, this, event);\n };\n } else if (type === 'close') {\n wrapper = function onClose(code, message) {\n const event = new CloseEvent('close', {\n code,\n reason: message.toString(),\n wasClean: this._closeFrameReceived && this._closeFrameSent\n });\n\n event[kTarget] = this;\n callListener(handler, this, event);\n };\n } else if (type === 'error') {\n wrapper = function onError(error) {\n const event = new ErrorEvent('error', {\n error,\n message: error.message\n });\n\n event[kTarget] = this;\n callListener(handler, this, event);\n };\n } else if (type === 'open') {\n wrapper = function onOpen() {\n const event = new Event('open');\n\n event[kTarget] = this;\n callListener(handler, this, event);\n };\n } else {\n return;\n }\n\n wrapper[kForOnEventAttribute] = !!options[kForOnEventAttribute];\n wrapper[kListener] = handler;\n\n if (options.once) {\n this.once(type, wrapper);\n } else {\n this.on(type, wrapper);\n }\n },\n\n /**\n * Remove an event listener.\n *\n * @param {String} type A string representing the event type to remove\n * @param {(Function|Object)} handler The listener to remove\n * @public\n */\n removeEventListener(type, handler) {\n for (const listener of this.listeners(type)) {\n if (listener[kListener] === handler && !listener[kForOnEventAttribute]) {\n this.removeListener(type, listener);\n break;\n }\n }\n }\n};\n\nmodule.exports = {\n CloseEvent,\n ErrorEvent,\n Event,\n EventTarget,\n MessageEvent\n};\n\n/**\n * Call an event listener\n *\n * @param {(Function|Object)} listener The listener to call\n * @param {*} thisArg The value to use as `this`` when calling the listener\n * @param {Event} event The event to pass to the listener\n * @private\n */\nfunction callListener(listener, thisArg, event) {\n if (typeof listener === 'object' && listener.handleEvent) {\n listener.handleEvent.call(listener, event);\n } else {\n listener.call(thisArg, event);\n }\n}\n","'use strict';\n\nconst { tokenChars } = require('./validation');\n\n/**\n * Adds an offer to the map of extension offers or a parameter to the map of\n * parameters.\n *\n * @param {Object} dest The map of extension offers or parameters\n * @param {String} name The extension or parameter name\n * @param {(Object|Boolean|String)} elem The extension parameters or the\n * parameter value\n * @private\n */\nfunction push(dest, name, elem) {\n if (dest[name] === undefined) dest[name] = [elem];\n else dest[name].push(elem);\n}\n\n/**\n * Parses the `Sec-WebSocket-Extensions` header into an object.\n *\n * @param {String} header The field value of the header\n * @return {Object} The parsed object\n * @public\n */\nfunction parse(header) {\n const offers = Object.create(null);\n let params = Object.create(null);\n let mustUnescape = false;\n let isEscaping = false;\n let inQuotes = false;\n let extensionName;\n let paramName;\n let start = -1;\n let code = -1;\n let end = -1;\n let i = 0;\n\n for (; i < header.length; i++) {\n code = header.charCodeAt(i);\n\n if (extensionName === undefined) {\n if (end === -1 && tokenChars[code] === 1) {\n if (start === -1) start = i;\n } else if (\n i !== 0 &&\n (code === 0x20 /* ' ' */ || code === 0x09) /* '\\t' */\n ) {\n if (end === -1 && start !== -1) end = i;\n } else if (code === 0x3b /* ';' */ || code === 0x2c /* ',' */) {\n if (start === -1) {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n\n if (end === -1) end = i;\n const name = header.slice(start, end);\n if (code === 0x2c) {\n push(offers, name, params);\n params = Object.create(null);\n } else {\n extensionName = name;\n }\n\n start = end = -1;\n } else {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n } else if (paramName === undefined) {\n if (end === -1 && tokenChars[code] === 1) {\n if (start === -1) start = i;\n } else if (code === 0x20 || code === 0x09) {\n if (end === -1 && start !== -1) end = i;\n } else if (code === 0x3b || code === 0x2c) {\n if (start === -1) {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n\n if (end === -1) end = i;\n push(params, header.slice(start, end), true);\n if (code === 0x2c) {\n push(offers, extensionName, params);\n params = Object.create(null);\n extensionName = undefined;\n }\n\n start = end = -1;\n } else if (code === 0x3d /* '=' */ && start !== -1 && end === -1) {\n paramName = header.slice(start, i);\n start = end = -1;\n } else {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n } else {\n //\n // The value of a quoted-string after unescaping must conform to the\n // token ABNF, so only token characters are valid.\n // Ref: https://tools.ietf.org/html/rfc6455#section-9.1\n //\n if (isEscaping) {\n if (tokenChars[code] !== 1) {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n if (start === -1) start = i;\n else if (!mustUnescape) mustUnescape = true;\n isEscaping = false;\n } else if (inQuotes) {\n if (tokenChars[code] === 1) {\n if (start === -1) start = i;\n } else if (code === 0x22 /* '\"' */ && start !== -1) {\n inQuotes = false;\n end = i;\n } else if (code === 0x5c /* '\\' */) {\n isEscaping = true;\n } else {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n } else if (code === 0x22 && header.charCodeAt(i - 1) === 0x3d) {\n inQuotes = true;\n } else if (end === -1 && tokenChars[code] === 1) {\n if (start === -1) start = i;\n } else if (start !== -1 && (code === 0x20 || code === 0x09)) {\n if (end === -1) end = i;\n } else if (code === 0x3b || code === 0x2c) {\n if (start === -1) {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n\n if (end === -1) end = i;\n let value = header.slice(start, end);\n if (mustUnescape) {\n value = value.replace(/\\\\/g, '');\n mustUnescape = false;\n }\n push(params, paramName, value);\n if (code === 0x2c) {\n push(offers, extensionName, params);\n params = Object.create(null);\n extensionName = undefined;\n }\n\n paramName = undefined;\n start = end = -1;\n } else {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n }\n }\n\n if (start === -1 || inQuotes || code === 0x20 || code === 0x09) {\n throw new SyntaxError('Unexpected end of input');\n }\n\n if (end === -1) end = i;\n const token = header.slice(start, end);\n if (extensionName === undefined) {\n push(offers, token, params);\n } else {\n if (paramName === undefined) {\n push(params, token, true);\n } else if (mustUnescape) {\n push(params, paramName, token.replace(/\\\\/g, ''));\n } else {\n push(params, paramName, token);\n }\n push(offers, extensionName, params);\n }\n\n return offers;\n}\n\n/**\n * Builds the `Sec-WebSocket-Extensions` header field value.\n *\n * @param {Object} extensions The map of extensions and parameters to format\n * @return {String} A string representing the given object\n * @public\n */\nfunction format(extensions) {\n return Object.keys(extensions)\n .map((extension) => {\n let configurations = extensions[extension];\n if (!Array.isArray(configurations)) configurations = [configurations];\n return configurations\n .map((params) => {\n return [extension]\n .concat(\n Object.keys(params).map((k) => {\n let values = params[k];\n if (!Array.isArray(values)) values = [values];\n return values\n .map((v) => (v === true ? k : `${k}=${v}`))\n .join('; ');\n })\n )\n .join('; ');\n })\n .join(', ');\n })\n .join(', ');\n}\n\nmodule.exports = { format, parse };\n","/* eslint no-unused-vars: [\"error\", { \"varsIgnorePattern\": \"^Duplex|Readable$\", \"caughtErrors\": \"none\" }] */\n\n'use strict';\n\nconst EventEmitter = require('events');\nconst https = require('https');\nconst http = require('http');\nconst net = require('net');\nconst tls = require('tls');\nconst { randomBytes, createHash } = require('crypto');\nconst { Duplex, Readable } = require('stream');\nconst { URL } = require('url');\n\nconst PerMessageDeflate = require('./permessage-deflate');\nconst Receiver = require('./receiver');\nconst Sender = require('./sender');\nconst { isBlob } = require('./validation');\n\nconst {\n BINARY_TYPES,\n EMPTY_BUFFER,\n GUID,\n kForOnEventAttribute,\n kListener,\n kStatusCode,\n kWebSocket,\n NOOP\n} = require('./constants');\nconst {\n EventTarget: { addEventListener, removeEventListener }\n} = require('./event-target');\nconst { format, parse } = require('./extension');\nconst { toBuffer } = require('./buffer-util');\n\nconst closeTimeout = 30 * 1000;\nconst kAborted = Symbol('kAborted');\nconst protocolVersions = [8, 13];\nconst readyStates = ['CONNECTING', 'OPEN', 'CLOSING', 'CLOSED'];\nconst subprotocolRegex = /^[!#$%&'*+\\-.0-9A-Z^_`|a-z~]+$/;\n\n/**\n * Class representing a WebSocket.\n *\n * @extends EventEmitter\n */\nclass WebSocket extends EventEmitter {\n /**\n * Create a new `WebSocket`.\n *\n * @param {(String|URL)} address The URL to which to connect\n * @param {(String|String[])} [protocols] The subprotocols\n * @param {Object} [options] Connection options\n */\n constructor(address, protocols, options) {\n super();\n\n this._binaryType = BINARY_TYPES[0];\n this._closeCode = 1006;\n this._closeFrameReceived = false;\n this._closeFrameSent = false;\n this._closeMessage = EMPTY_BUFFER;\n this._closeTimer = null;\n this._errorEmitted = false;\n this._extensions = {};\n this._paused = false;\n this._protocol = '';\n this._readyState = WebSocket.CONNECTING;\n this._receiver = null;\n this._sender = null;\n this._socket = null;\n\n if (address !== null) {\n this._bufferedAmount = 0;\n this._isServer = false;\n this._redirects = 0;\n\n if (protocols === undefined) {\n protocols = [];\n } else if (!Array.isArray(protocols)) {\n if (typeof protocols === 'object' && protocols !== null) {\n options = protocols;\n protocols = [];\n } else {\n protocols = [protocols];\n }\n }\n\n initAsClient(this, address, protocols, options);\n } else {\n this._autoPong = options.autoPong;\n this._isServer = true;\n }\n }\n\n /**\n * For historical reasons, the custom \"nodebuffer\" type is used by the default\n * instead of \"blob\".\n *\n * @type {String}\n */\n get binaryType() {\n return this._binaryType;\n }\n\n set binaryType(type) {\n if (!BINARY_TYPES.includes(type)) return;\n\n this._binaryType = type;\n\n //\n // Allow to change `binaryType` on the fly.\n //\n if (this._receiver) this._receiver._binaryType = type;\n }\n\n /**\n * @type {Number}\n */\n get bufferedAmount() {\n if (!this._socket) return this._bufferedAmount;\n\n return this._socket._writableState.length + this._sender._bufferedBytes;\n }\n\n /**\n * @type {String}\n */\n get extensions() {\n return Object.keys(this._extensions).join();\n }\n\n /**\n * @type {Boolean}\n */\n get isPaused() {\n return this._paused;\n }\n\n /**\n * @type {Function}\n */\n /* istanbul ignore next */\n get onclose() {\n return null;\n }\n\n /**\n * @type {Function}\n */\n /* istanbul ignore next */\n get onerror() {\n return null;\n }\n\n /**\n * @type {Function}\n */\n /* istanbul ignore next */\n get onopen() {\n return null;\n }\n\n /**\n * @type {Function}\n */\n /* istanbul ignore next */\n get onmessage() {\n return null;\n }\n\n /**\n * @type {String}\n */\n get protocol() {\n return this._protocol;\n }\n\n /**\n * @type {Number}\n */\n get readyState() {\n return this._readyState;\n }\n\n /**\n * @type {String}\n */\n get url() {\n return this._url;\n }\n\n /**\n * Set up the socket and the internal resources.\n *\n * @param {Duplex} socket The network socket between the server and client\n * @param {Buffer} head The first packet of the upgraded stream\n * @param {Object} options Options object\n * @param {Boolean} [options.allowSynchronousEvents=false] Specifies whether\n * any of the `'message'`, `'ping'`, and `'pong'` events can be emitted\n * multiple times in the same tick\n * @param {Function} [options.generateMask] The function used to generate the\n * masking key\n * @param {Number} [options.maxPayload=0] The maximum allowed message size\n * @param {Boolean} [options.skipUTF8Validation=false] Specifies whether or\n * not to skip UTF-8 validation for text and close messages\n * @private\n */\n setSocket(socket, head, options) {\n const receiver = new Receiver({\n allowSynchronousEvents: options.allowSynchronousEvents,\n binaryType: this.binaryType,\n extensions: this._extensions,\n isServer: this._isServer,\n maxPayload: options.maxPayload,\n skipUTF8Validation: options.skipUTF8Validation\n });\n\n const sender = new Sender(socket, this._extensions, options.generateMask);\n\n this._receiver = receiver;\n this._sender = sender;\n this._socket = socket;\n\n receiver[kWebSocket] = this;\n sender[kWebSocket] = this;\n socket[kWebSocket] = this;\n\n receiver.on('conclude', receiverOnConclude);\n receiver.on('drain', receiverOnDrain);\n receiver.on('error', receiverOnError);\n receiver.on('message', receiverOnMessage);\n receiver.on('ping', receiverOnPing);\n receiver.on('pong', receiverOnPong);\n\n sender.onerror = senderOnError;\n\n //\n // These methods may not be available if `socket` is just a `Duplex`.\n //\n if (socket.setTimeout) socket.setTimeout(0);\n if (socket.setNoDelay) socket.setNoDelay();\n\n if (head.length > 0) socket.unshift(head);\n\n socket.on('close', socketOnClose);\n socket.on('data', socketOnData);\n socket.on('end', socketOnEnd);\n socket.on('error', socketOnError);\n\n this._readyState = WebSocket.OPEN;\n this.emit('open');\n }\n\n /**\n * Emit the `'close'` event.\n *\n * @private\n */\n emitClose() {\n if (!this._socket) {\n this._readyState = WebSocket.CLOSED;\n this.emit('close', this._closeCode, this._closeMessage);\n return;\n }\n\n if (this._extensions[PerMessageDeflate.extensionName]) {\n this._extensions[PerMessageDeflate.extensionName].cleanup();\n }\n\n this._receiver.removeAllListeners();\n this._readyState = WebSocket.CLOSED;\n this.emit('close', this._closeCode, this._closeMessage);\n }\n\n /**\n * Start a closing handshake.\n *\n * +----------+ +-----------+ +----------+\n * - - -|ws.close()|-->|close frame|-->|ws.close()|- - -\n * | +----------+ +-----------+ +----------+ |\n * +----------+ +-----------+ |\n * CLOSING |ws.close()|<--|close frame|<--+-----+ CLOSING\n * +----------+ +-----------+ |\n * | | | +---+ |\n * +------------------------+-->|fin| - - - -\n * | +---+ | +---+\n * - - - - -|fin|<---------------------+\n * +---+\n *\n * @param {Number} [code] Status code explaining why the connection is closing\n * @param {(String|Buffer)} [data] The reason why the connection is\n * closing\n * @public\n */\n close(code, data) {\n if (this.readyState === WebSocket.CLOSED) return;\n if (this.readyState === WebSocket.CONNECTING) {\n const msg = 'WebSocket was closed before the connection was established';\n abortHandshake(this, this._req, msg);\n return;\n }\n\n if (this.readyState === WebSocket.CLOSING) {\n if (\n this._closeFrameSent &&\n (this._closeFrameReceived || this._receiver._writableState.errorEmitted)\n ) {\n this._socket.end();\n }\n\n return;\n }\n\n this._readyState = WebSocket.CLOSING;\n this._sender.close(code, data, !this._isServer, (err) => {\n //\n // This error is handled by the `'error'` listener on the socket. We only\n // want to know if the close frame has been sent here.\n //\n if (err) return;\n\n this._closeFrameSent = true;\n\n if (\n this._closeFrameReceived ||\n this._receiver._writableState.errorEmitted\n ) {\n this._socket.end();\n }\n });\n\n setCloseTimer(this);\n }\n\n /**\n * Pause the socket.\n *\n * @public\n */\n pause() {\n if (\n this.readyState === WebSocket.CONNECTING ||\n this.readyState === WebSocket.CLOSED\n ) {\n return;\n }\n\n this._paused = true;\n this._socket.pause();\n }\n\n /**\n * Send a ping.\n *\n * @param {*} [data] The data to send\n * @param {Boolean} [mask] Indicates whether or not to mask `data`\n * @param {Function} [cb] Callback which is executed when the ping is sent\n * @public\n */\n ping(data, mask, cb) {\n if (this.readyState === WebSocket.CONNECTING) {\n throw new Error('WebSocket is not open: readyState 0 (CONNECTING)');\n }\n\n if (typeof data === 'function') {\n cb = data;\n data = mask = undefined;\n } else if (typeof mask === 'function') {\n cb = mask;\n mask = undefined;\n }\n\n if (typeof data === 'number') data = data.toString();\n\n if (this.readyState !== WebSocket.OPEN) {\n sendAfterClose(this, data, cb);\n return;\n }\n\n if (mask === undefined) mask = !this._isServer;\n this._sender.ping(data || EMPTY_BUFFER, mask, cb);\n }\n\n /**\n * Send a pong.\n *\n * @param {*} [data] The data to send\n * @param {Boolean} [mask] Indicates whether or not to mask `data`\n * @param {Function} [cb] Callback which is executed when the pong is sent\n * @public\n */\n pong(data, mask, cb) {\n if (this.readyState === WebSocket.CONNECTING) {\n throw new Error('WebSocket is not open: readyState 0 (CONNECTING)');\n }\n\n if (typeof data === 'function') {\n cb = data;\n data = mask = undefined;\n } else if (typeof mask === 'function') {\n cb = mask;\n mask = undefined;\n }\n\n if (typeof data === 'number') data = data.toString();\n\n if (this.readyState !== WebSocket.OPEN) {\n sendAfterClose(this, data, cb);\n return;\n }\n\n if (mask === undefined) mask = !this._isServer;\n this._sender.pong(data || EMPTY_BUFFER, mask, cb);\n }\n\n /**\n * Resume the socket.\n *\n * @public\n */\n resume() {\n if (\n this.readyState === WebSocket.CONNECTING ||\n this.readyState === WebSocket.CLOSED\n ) {\n return;\n }\n\n this._paused = false;\n if (!this._receiver._writableState.needDrain) this._socket.resume();\n }\n\n /**\n * Send a data message.\n *\n * @param {*} data The message to send\n * @param {Object} [options] Options object\n * @param {Boolean} [options.binary] Specifies whether `data` is binary or\n * text\n * @param {Boolean} [options.compress] Specifies whether or not to compress\n * `data`\n * @param {Boolean} [options.fin=true] Specifies whether the fragment is the\n * last one\n * @param {Boolean} [options.mask] Specifies whether or not to mask `data`\n * @param {Function} [cb] Callback which is executed when data is written out\n * @public\n */\n send(data, options, cb) {\n if (this.readyState === WebSocket.CONNECTING) {\n throw new Error('WebSocket is not open: readyState 0 (CONNECTING)');\n }\n\n if (typeof options === 'function') {\n cb = options;\n options = {};\n }\n\n if (typeof data === 'number') data = data.toString();\n\n if (this.readyState !== WebSocket.OPEN) {\n sendAfterClose(this, data, cb);\n return;\n }\n\n const opts = {\n binary: typeof data !== 'string',\n mask: !this._isServer,\n compress: true,\n fin: true,\n ...options\n };\n\n if (!this._extensions[PerMessageDeflate.extensionName]) {\n opts.compress = false;\n }\n\n this._sender.send(data || EMPTY_BUFFER, opts, cb);\n }\n\n /**\n * Forcibly close the connection.\n *\n * @public\n */\n terminate() {\n if (this.readyState === WebSocket.CLOSED) return;\n if (this.readyState === WebSocket.CONNECTING) {\n const msg = 'WebSocket was closed before the connection was established';\n abortHandshake(this, this._req, msg);\n return;\n }\n\n if (this._socket) {\n this._readyState = WebSocket.CLOSING;\n this._socket.destroy();\n }\n }\n}\n\n/**\n * @constant {Number} CONNECTING\n * @memberof WebSocket\n */\nObject.defineProperty(WebSocket, 'CONNECTING', {\n enumerable: true,\n value: readyStates.indexOf('CONNECTING')\n});\n\n/**\n * @constant {Number} CONNECTING\n * @memberof WebSocket.prototype\n */\nObject.defineProperty(WebSocket.prototype, 'CONNECTING', {\n enumerable: true,\n value: readyStates.indexOf('CONNECTING')\n});\n\n/**\n * @constant {Number} OPEN\n * @memberof WebSocket\n */\nObject.defineProperty(WebSocket, 'OPEN', {\n enumerable: true,\n value: readyStates.indexOf('OPEN')\n});\n\n/**\n * @constant {Number} OPEN\n * @memberof WebSocket.prototype\n */\nObject.defineProperty(WebSocket.prototype, 'OPEN', {\n enumerable: true,\n value: readyStates.indexOf('OPEN')\n});\n\n/**\n * @constant {Number} CLOSING\n * @memberof WebSocket\n */\nObject.defineProperty(WebSocket, 'CLOSING', {\n enumerable: true,\n value: readyStates.indexOf('CLOSING')\n});\n\n/**\n * @constant {Number} CLOSING\n * @memberof WebSocket.prototype\n */\nObject.defineProperty(WebSocket.prototype, 'CLOSING', {\n enumerable: true,\n value: readyStates.indexOf('CLOSING')\n});\n\n/**\n * @constant {Number} CLOSED\n * @memberof WebSocket\n */\nObject.defineProperty(WebSocket, 'CLOSED', {\n enumerable: true,\n value: readyStates.indexOf('CLOSED')\n});\n\n/**\n * @constant {Number} CLOSED\n * @memberof WebSocket.prototype\n */\nObject.defineProperty(WebSocket.prototype, 'CLOSED', {\n enumerable: true,\n value: readyStates.indexOf('CLOSED')\n});\n\n[\n 'binaryType',\n 'bufferedAmount',\n 'extensions',\n 'isPaused',\n 'protocol',\n 'readyState',\n 'url'\n].forEach((property) => {\n Object.defineProperty(WebSocket.prototype, property, { enumerable: true });\n});\n\n//\n// Add the `onopen`, `onerror`, `onclose`, and `onmessage` attributes.\n// See https://html.spec.whatwg.org/multipage/comms.html#the-websocket-interface\n//\n['open', 'error', 'close', 'message'].forEach((method) => {\n Object.defineProperty(WebSocket.prototype, `on${method}`, {\n enumerable: true,\n get() {\n for (const listener of this.listeners(method)) {\n if (listener[kForOnEventAttribute]) return listener[kListener];\n }\n\n return null;\n },\n set(handler) {\n for (const listener of this.listeners(method)) {\n if (listener[kForOnEventAttribute]) {\n this.removeListener(method, listener);\n break;\n }\n }\n\n if (typeof handler !== 'function') return;\n\n this.addEventListener(method, handler, {\n [kForOnEventAttribute]: true\n });\n }\n });\n});\n\nWebSocket.prototype.addEventListener = addEventListener;\nWebSocket.prototype.removeEventListener = removeEventListener;\n\nmodule.exports = WebSocket;\n\n/**\n * Initialize a WebSocket client.\n *\n * @param {WebSocket} websocket The client to initialize\n * @param {(String|URL)} address The URL to which to connect\n * @param {Array} protocols The subprotocols\n * @param {Object} [options] Connection options\n * @param {Boolean} [options.allowSynchronousEvents=true] Specifies whether any\n * of the `'message'`, `'ping'`, and `'pong'` events can be emitted multiple\n * times in the same tick\n * @param {Boolean} [options.autoPong=true] Specifies whether or not to\n * automatically send a pong in response to a ping\n * @param {Function} [options.finishRequest] A function which can be used to\n * customize the headers of each http request before it is sent\n * @param {Boolean} [options.followRedirects=false] Whether or not to follow\n * redirects\n * @param {Function} [options.generateMask] The function used to generate the\n * masking key\n * @param {Number} [options.handshakeTimeout] Timeout in milliseconds for the\n * handshake request\n * @param {Number} [options.maxPayload=104857600] The maximum allowed message\n * size\n * @param {Number} [options.maxRedirects=10] The maximum number of redirects\n * allowed\n * @param {String} [options.origin] Value of the `Origin` or\n * `Sec-WebSocket-Origin` header\n * @param {(Boolean|Object)} [options.perMessageDeflate=true] Enable/disable\n * permessage-deflate\n * @param {Number} [options.protocolVersion=13] Value of the\n * `Sec-WebSocket-Version` header\n * @param {Boolean} [options.skipUTF8Validation=false] Specifies whether or\n * not to skip UTF-8 validation for text and close messages\n * @private\n */\nfunction initAsClient(websocket, address, protocols, options) {\n const opts = {\n allowSynchronousEvents: true,\n autoPong: true,\n protocolVersion: protocolVersions[1],\n maxPayload: 100 * 1024 * 1024,\n skipUTF8Validation: false,\n perMessageDeflate: true,\n followRedirects: false,\n maxRedirects: 10,\n ...options,\n socketPath: undefined,\n hostname: undefined,\n protocol: undefined,\n timeout: undefined,\n method: 'GET',\n host: undefined,\n path: undefined,\n port: undefined\n };\n\n websocket._autoPong = opts.autoPong;\n\n if (!protocolVersions.includes(opts.protocolVersion)) {\n throw new RangeError(\n `Unsupported protocol version: ${opts.protocolVersion} ` +\n `(supported versions: ${protocolVersions.join(', ')})`\n );\n }\n\n let parsedUrl;\n\n if (address instanceof URL) {\n parsedUrl = address;\n } else {\n try {\n parsedUrl = new URL(address);\n } catch (e) {\n throw new SyntaxError(`Invalid URL: ${address}`);\n }\n }\n\n if (parsedUrl.protocol === 'http:') {\n parsedUrl.protocol = 'ws:';\n } else if (parsedUrl.protocol === 'https:') {\n parsedUrl.protocol = 'wss:';\n }\n\n websocket._url = parsedUrl.href;\n\n const isSecure = parsedUrl.protocol === 'wss:';\n const isIpcUrl = parsedUrl.protocol === 'ws+unix:';\n let invalidUrlMessage;\n\n if (parsedUrl.protocol !== 'ws:' && !isSecure && !isIpcUrl) {\n invalidUrlMessage =\n 'The URL\\'s protocol must be one of \"ws:\", \"wss:\", ' +\n '\"http:\", \"https:\", or \"ws+unix:\"';\n } else if (isIpcUrl && !parsedUrl.pathname) {\n invalidUrlMessage = \"The URL's pathname is empty\";\n } else if (parsedUrl.hash) {\n invalidUrlMessage = 'The URL contains a fragment identifier';\n }\n\n if (invalidUrlMessage) {\n const err = new SyntaxError(invalidUrlMessage);\n\n if (websocket._redirects === 0) {\n throw err;\n } else {\n emitErrorAndClose(websocket, err);\n return;\n }\n }\n\n const defaultPort = isSecure ? 443 : 80;\n const key = randomBytes(16).toString('base64');\n const request = isSecure ? https.request : http.request;\n const protocolSet = new Set();\n let perMessageDeflate;\n\n opts.createConnection =\n opts.createConnection || (isSecure ? tlsConnect : netConnect);\n opts.defaultPort = opts.defaultPort || defaultPort;\n opts.port = parsedUrl.port || defaultPort;\n opts.host = parsedUrl.hostname.startsWith('[')\n ? parsedUrl.hostname.slice(1, -1)\n : parsedUrl.hostname;\n opts.headers = {\n ...opts.headers,\n 'Sec-WebSocket-Version': opts.protocolVersion,\n 'Sec-WebSocket-Key': key,\n Connection: 'Upgrade',\n Upgrade: 'websocket'\n };\n opts.path = parsedUrl.pathname + parsedUrl.search;\n opts.timeout = opts.handshakeTimeout;\n\n if (opts.perMessageDeflate) {\n perMessageDeflate = new PerMessageDeflate(\n opts.perMessageDeflate !== true ? opts.perMessageDeflate : {},\n false,\n opts.maxPayload\n );\n opts.headers['Sec-WebSocket-Extensions'] = format({\n [PerMessageDeflate.extensionName]: perMessageDeflate.offer()\n });\n }\n if (protocols.length) {\n for (const protocol of protocols) {\n if (\n typeof protocol !== 'string' ||\n !subprotocolRegex.test(protocol) ||\n protocolSet.has(protocol)\n ) {\n throw new SyntaxError(\n 'An invalid or duplicated subprotocol was specified'\n );\n }\n\n protocolSet.add(protocol);\n }\n\n opts.headers['Sec-WebSocket-Protocol'] = protocols.join(',');\n }\n if (opts.origin) {\n if (opts.protocolVersion < 13) {\n opts.headers['Sec-WebSocket-Origin'] = opts.origin;\n } else {\n opts.headers.Origin = opts.origin;\n }\n }\n if (parsedUrl.username || parsedUrl.password) {\n opts.auth = `${parsedUrl.username}:${parsedUrl.password}`;\n }\n\n if (isIpcUrl) {\n const parts = opts.path.split(':');\n\n opts.socketPath = parts[0];\n opts.path = parts[1];\n }\n\n let req;\n\n if (opts.followRedirects) {\n if (websocket._redirects === 0) {\n websocket._originalIpc = isIpcUrl;\n websocket._originalSecure = isSecure;\n websocket._originalHostOrSocketPath = isIpcUrl\n ? opts.socketPath\n : parsedUrl.host;\n\n const headers = options && options.headers;\n\n //\n // Shallow copy the user provided options so that headers can be changed\n // without mutating the original object.\n //\n options = { ...options, headers: {} };\n\n if (headers) {\n for (const [key, value] of Object.entries(headers)) {\n options.headers[key.toLowerCase()] = value;\n }\n }\n } else if (websocket.listenerCount('redirect') === 0) {\n const isSameHost = isIpcUrl\n ? websocket._originalIpc\n ? opts.socketPath === websocket._originalHostOrSocketPath\n : false\n : websocket._originalIpc\n ? false\n : parsedUrl.host === websocket._originalHostOrSocketPath;\n\n if (!isSameHost || (websocket._originalSecure && !isSecure)) {\n //\n // Match curl 7.77.0 behavior and drop the following headers. These\n // headers are also dropped when following a redirect to a subdomain.\n //\n delete opts.headers.authorization;\n delete opts.headers.cookie;\n\n if (!isSameHost) delete opts.headers.host;\n\n opts.auth = undefined;\n }\n }\n\n //\n // Match curl 7.77.0 behavior and make the first `Authorization` header win.\n // If the `Authorization` header is set, then there is nothing to do as it\n // will take precedence.\n //\n if (opts.auth && !options.headers.authorization) {\n options.headers.authorization =\n 'Basic ' + Buffer.from(opts.auth).toString('base64');\n }\n\n req = websocket._req = request(opts);\n\n if (websocket._redirects) {\n //\n // Unlike what is done for the `'upgrade'` event, no early exit is\n // triggered here if the user calls `websocket.close()` or\n // `websocket.terminate()` from a listener of the `'redirect'` event. This\n // is because the user can also call `request.destroy()` with an error\n // before calling `websocket.close()` or `websocket.terminate()` and this\n // would result in an error being emitted on the `request` object with no\n // `'error'` event listeners attached.\n //\n websocket.emit('redirect', websocket.url, req);\n }\n } else {\n req = websocket._req = request(opts);\n }\n\n if (opts.timeout) {\n req.on('timeout', () => {\n abortHandshake(websocket, req, 'Opening handshake has timed out');\n });\n }\n\n req.on('error', (err) => {\n if (req === null || req[kAborted]) return;\n\n req = websocket._req = null;\n emitErrorAndClose(websocket, err);\n });\n\n req.on('response', (res) => {\n const location = res.headers.location;\n const statusCode = res.statusCode;\n\n if (\n location &&\n opts.followRedirects &&\n statusCode >= 300 &&\n statusCode < 400\n ) {\n if (++websocket._redirects > opts.maxRedirects) {\n abortHandshake(websocket, req, 'Maximum redirects exceeded');\n return;\n }\n\n req.abort();\n\n let addr;\n\n try {\n addr = new URL(location, address);\n } catch (e) {\n const err = new SyntaxError(`Invalid URL: ${location}`);\n emitErrorAndClose(websocket, err);\n return;\n }\n\n initAsClient(websocket, addr, protocols, options);\n } else if (!websocket.emit('unexpected-response', req, res)) {\n abortHandshake(\n websocket,\n req,\n `Unexpected server response: ${res.statusCode}`\n );\n }\n });\n\n req.on('upgrade', (res, socket, head) => {\n websocket.emit('upgrade', res);\n\n //\n // The user may have closed the connection from a listener of the\n // `'upgrade'` event.\n //\n if (websocket.readyState !== WebSocket.CONNECTING) return;\n\n req = websocket._req = null;\n\n const upgrade = res.headers.upgrade;\n\n if (upgrade === undefined || upgrade.toLowerCase() !== 'websocket') {\n abortHandshake(websocket, socket, 'Invalid Upgrade header');\n return;\n }\n\n const digest = createHash('sha1')\n .update(key + GUID)\n .digest('base64');\n\n if (res.headers['sec-websocket-accept'] !== digest) {\n abortHandshake(websocket, socket, 'Invalid Sec-WebSocket-Accept header');\n return;\n }\n\n const serverProt = res.headers['sec-websocket-protocol'];\n let protError;\n\n if (serverProt !== undefined) {\n if (!protocolSet.size) {\n protError = 'Server sent a subprotocol but none was requested';\n } else if (!protocolSet.has(serverProt)) {\n protError = 'Server sent an invalid subprotocol';\n }\n } else if (protocolSet.size) {\n protError = 'Server sent no subprotocol';\n }\n\n if (protError) {\n abortHandshake(websocket, socket, protError);\n return;\n }\n\n if (serverProt) websocket._protocol = serverProt;\n\n const secWebSocketExtensions = res.headers['sec-websocket-extensions'];\n\n if (secWebSocketExtensions !== undefined) {\n if (!perMessageDeflate) {\n const message =\n 'Server sent a Sec-WebSocket-Extensions header but no extension ' +\n 'was requested';\n abortHandshake(websocket, socket, message);\n return;\n }\n\n let extensions;\n\n try {\n extensions = parse(secWebSocketExtensions);\n } catch (err) {\n const message = 'Invalid Sec-WebSocket-Extensions header';\n abortHandshake(websocket, socket, message);\n return;\n }\n\n const extensionNames = Object.keys(extensions);\n\n if (\n extensionNames.length !== 1 ||\n extensionNames[0] !== PerMessageDeflate.extensionName\n ) {\n const message = 'Server indicated an extension that was not requested';\n abortHandshake(websocket, socket, message);\n return;\n }\n\n try {\n perMessageDeflate.accept(extensions[PerMessageDeflate.extensionName]);\n } catch (err) {\n const message = 'Invalid Sec-WebSocket-Extensions header';\n abortHandshake(websocket, socket, message);\n return;\n }\n\n websocket._extensions[PerMessageDeflate.extensionName] =\n perMessageDeflate;\n }\n\n websocket.setSocket(socket, head, {\n allowSynchronousEvents: opts.allowSynchronousEvents,\n generateMask: opts.generateMask,\n maxPayload: opts.maxPayload,\n skipUTF8Validation: opts.skipUTF8Validation\n });\n });\n\n if (opts.finishRequest) {\n opts.finishRequest(req, websocket);\n } else {\n req.end();\n }\n}\n\n/**\n * Emit the `'error'` and `'close'` events.\n *\n * @param {WebSocket} websocket The WebSocket instance\n * @param {Error} The error to emit\n * @private\n */\nfunction emitErrorAndClose(websocket, err) {\n websocket._readyState = WebSocket.CLOSING;\n //\n // The following assignment is practically useless and is done only for\n // consistency.\n //\n websocket._errorEmitted = true;\n websocket.emit('error', err);\n websocket.emitClose();\n}\n\n/**\n * Create a `net.Socket` and initiate a connection.\n *\n * @param {Object} options Connection options\n * @return {net.Socket} The newly created socket used to start the connection\n * @private\n */\nfunction netConnect(options) {\n options.path = options.socketPath;\n return net.connect(options);\n}\n\n/**\n * Create a `tls.TLSSocket` and initiate a connection.\n *\n * @param {Object} options Connection options\n * @return {tls.TLSSocket} The newly created socket used to start the connection\n * @private\n */\nfunction tlsConnect(options) {\n options.path = undefined;\n\n if (!options.servername && options.servername !== '') {\n options.servername = net.isIP(options.host) ? '' : options.host;\n }\n\n return tls.connect(options);\n}\n\n/**\n * Abort the handshake and emit an error.\n *\n * @param {WebSocket} websocket The WebSocket instance\n * @param {(http.ClientRequest|net.Socket|tls.Socket)} stream The request to\n * abort or the socket to destroy\n * @param {String} message The error message\n * @private\n */\nfunction abortHandshake(websocket, stream, message) {\n websocket._readyState = WebSocket.CLOSING;\n\n const err = new Error(message);\n Error.captureStackTrace(err, abortHandshake);\n\n if (stream.setHeader) {\n stream[kAborted] = true;\n stream.abort();\n\n if (stream.socket && !stream.socket.destroyed) {\n //\n // On Node.js >= 14.3.0 `request.abort()` does not destroy the socket if\n // called after the request completed. See\n // https://github.com/websockets/ws/issues/1869.\n //\n stream.socket.destroy();\n }\n\n process.nextTick(emitErrorAndClose, websocket, err);\n } else {\n stream.destroy(err);\n stream.once('error', websocket.emit.bind(websocket, 'error'));\n stream.once('close', websocket.emitClose.bind(websocket));\n }\n}\n\n/**\n * Handle cases where the `ping()`, `pong()`, or `send()` methods are called\n * when the `readyState` attribute is `CLOSING` or `CLOSED`.\n *\n * @param {WebSocket} websocket The WebSocket instance\n * @param {*} [data] The data to send\n * @param {Function} [cb] Callback\n * @private\n */\nfunction sendAfterClose(websocket, data, cb) {\n if (data) {\n const length = isBlob(data) ? data.size : toBuffer(data).length;\n\n //\n // The `_bufferedAmount` property is used only when the peer is a client and\n // the opening handshake fails. Under these circumstances, in fact, the\n // `setSocket()` method is not called, so the `_socket` and `_sender`\n // properties are set to `null`.\n //\n if (websocket._socket) websocket._sender._bufferedBytes += length;\n else websocket._bufferedAmount += length;\n }\n\n if (cb) {\n const err = new Error(\n `WebSocket is not open: readyState ${websocket.readyState} ` +\n `(${readyStates[websocket.readyState]})`\n );\n process.nextTick(cb, err);\n }\n}\n\n/**\n * The listener of the `Receiver` `'conclude'` event.\n *\n * @param {Number} code The status code\n * @param {Buffer} reason The reason for closing\n * @private\n */\nfunction receiverOnConclude(code, reason) {\n const websocket = this[kWebSocket];\n\n websocket._closeFrameReceived = true;\n websocket._closeMessage = reason;\n websocket._closeCode = code;\n\n if (websocket._socket[kWebSocket] === undefined) return;\n\n websocket._socket.removeListener('data', socketOnData);\n process.nextTick(resume, websocket._socket);\n\n if (code === 1005) websocket.close();\n else websocket.close(code, reason);\n}\n\n/**\n * The listener of the `Receiver` `'drain'` event.\n *\n * @private\n */\nfunction receiverOnDrain() {\n const websocket = this[kWebSocket];\n\n if (!websocket.isPaused) websocket._socket.resume();\n}\n\n/**\n * The listener of the `Receiver` `'error'` event.\n *\n * @param {(RangeError|Error)} err The emitted error\n * @private\n */\nfunction receiverOnError(err) {\n const websocket = this[kWebSocket];\n\n if (websocket._socket[kWebSocket] !== undefined) {\n websocket._socket.removeListener('data', socketOnData);\n\n //\n // On Node.js < 14.0.0 the `'error'` event is emitted synchronously. See\n // https://github.com/websockets/ws/issues/1940.\n //\n process.nextTick(resume, websocket._socket);\n\n websocket.close(err[kStatusCode]);\n }\n\n if (!websocket._errorEmitted) {\n websocket._errorEmitted = true;\n websocket.emit('error', err);\n }\n}\n\n/**\n * The listener of the `Receiver` `'finish'` event.\n *\n * @private\n */\nfunction receiverOnFinish() {\n this[kWebSocket].emitClose();\n}\n\n/**\n * The listener of the `Receiver` `'message'` event.\n *\n * @param {Buffer|ArrayBuffer|Buffer[])} data The message\n * @param {Boolean} isBinary Specifies whether the message is binary or not\n * @private\n */\nfunction receiverOnMessage(data, isBinary) {\n this[kWebSocket].emit('message', data, isBinary);\n}\n\n/**\n * The listener of the `Receiver` `'ping'` event.\n *\n * @param {Buffer} data The data included in the ping frame\n * @private\n */\nfunction receiverOnPing(data) {\n const websocket = this[kWebSocket];\n\n if (websocket._autoPong) websocket.pong(data, !this._isServer, NOOP);\n websocket.emit('ping', data);\n}\n\n/**\n * The listener of the `Receiver` `'pong'` event.\n *\n * @param {Buffer} data The data included in the pong frame\n * @private\n */\nfunction receiverOnPong(data) {\n this[kWebSocket].emit('pong', data);\n}\n\n/**\n * Resume a readable stream\n *\n * @param {Readable} stream The readable stream\n * @private\n */\nfunction resume(stream) {\n stream.resume();\n}\n\n/**\n * The `Sender` error event handler.\n *\n * @param {Error} The error\n * @private\n */\nfunction senderOnError(err) {\n const websocket = this[kWebSocket];\n\n if (websocket.readyState === WebSocket.CLOSED) return;\n if (websocket.readyState === WebSocket.OPEN) {\n websocket._readyState = WebSocket.CLOSING;\n setCloseTimer(websocket);\n }\n\n //\n // `socket.end()` is used instead of `socket.destroy()` to allow the other\n // peer to finish sending queued data. There is no need to set a timer here\n // because `CLOSING` means that it is already set or not needed.\n //\n this._socket.end();\n\n if (!websocket._errorEmitted) {\n websocket._errorEmitted = true;\n websocket.emit('error', err);\n }\n}\n\n/**\n * Set a timer to destroy the underlying raw socket of a WebSocket.\n *\n * @param {WebSocket} websocket The WebSocket instance\n * @private\n */\nfunction setCloseTimer(websocket) {\n websocket._closeTimer = setTimeout(\n websocket._socket.destroy.bind(websocket._socket),\n closeTimeout\n );\n}\n\n/**\n * The listener of the socket `'close'` event.\n *\n * @private\n */\nfunction socketOnClose() {\n const websocket = this[kWebSocket];\n\n this.removeListener('close', socketOnClose);\n this.removeListener('data', socketOnData);\n this.removeListener('end', socketOnEnd);\n\n websocket._readyState = WebSocket.CLOSING;\n\n let chunk;\n\n //\n // The close frame might not have been received or the `'end'` event emitted,\n // for example, if the socket was destroyed due to an error. Ensure that the\n // `receiver` stream is closed after writing any remaining buffered data to\n // it. If the readable side of the socket is in flowing mode then there is no\n // buffered data as everything has been already written and `readable.read()`\n // will return `null`. If instead, the socket is paused, any possible buffered\n // data will be read as a single chunk.\n //\n if (\n !this._readableState.endEmitted &&\n !websocket._closeFrameReceived &&\n !websocket._receiver._writableState.errorEmitted &&\n (chunk = websocket._socket.read()) !== null\n ) {\n websocket._receiver.write(chunk);\n }\n\n websocket._receiver.end();\n\n this[kWebSocket] = undefined;\n\n clearTimeout(websocket._closeTimer);\n\n if (\n websocket._receiver._writableState.finished ||\n websocket._receiver._writableState.errorEmitted\n ) {\n websocket.emitClose();\n } else {\n websocket._receiver.on('error', receiverOnFinish);\n websocket._receiver.on('finish', receiverOnFinish);\n }\n}\n\n/**\n * The listener of the socket `'data'` event.\n *\n * @param {Buffer} chunk A chunk of data\n * @private\n */\nfunction socketOnData(chunk) {\n if (!this[kWebSocket]._receiver.write(chunk)) {\n this.pause();\n }\n}\n\n/**\n * The listener of the socket `'end'` event.\n *\n * @private\n */\nfunction socketOnEnd() {\n const websocket = this[kWebSocket];\n\n websocket._readyState = WebSocket.CLOSING;\n websocket._receiver.end();\n this.end();\n}\n\n/**\n * The listener of the socket `'error'` event.\n *\n * @private\n */\nfunction socketOnError() {\n const websocket = this[kWebSocket];\n\n this.removeListener('error', socketOnError);\n this.on('error', NOOP);\n\n if (websocket) {\n websocket._readyState = WebSocket.CLOSING;\n this.destroy();\n }\n}\n","/* eslint no-unused-vars: [\"error\", { \"varsIgnorePattern\": \"^WebSocket$\" }] */\n'use strict';\n\nconst WebSocket = require('./websocket');\nconst { Duplex } = require('stream');\n\n/**\n * Emits the `'close'` event on a stream.\n *\n * @param {Duplex} stream The stream.\n * @private\n */\nfunction emitClose(stream) {\n stream.emit('close');\n}\n\n/**\n * The listener of the `'end'` event.\n *\n * @private\n */\nfunction duplexOnEnd() {\n if (!this.destroyed && this._writableState.finished) {\n this.destroy();\n }\n}\n\n/**\n * The listener of the `'error'` event.\n *\n * @param {Error} err The error\n * @private\n */\nfunction duplexOnError(err) {\n this.removeListener('error', duplexOnError);\n this.destroy();\n if (this.listenerCount('error') === 0) {\n // Do not suppress the throwing behavior.\n this.emit('error', err);\n }\n}\n\n/**\n * Wraps a `WebSocket` in a duplex stream.\n *\n * @param {WebSocket} ws The `WebSocket` to wrap\n * @param {Object} [options] The options for the `Duplex` constructor\n * @return {Duplex} The duplex stream\n * @public\n */\nfunction createWebSocketStream(ws, options) {\n let terminateOnDestroy = true;\n\n const duplex = new Duplex({\n ...options,\n autoDestroy: false,\n emitClose: false,\n objectMode: false,\n writableObjectMode: false\n });\n\n ws.on('message', function message(msg, isBinary) {\n const data =\n !isBinary && duplex._readableState.objectMode ? msg.toString() : msg;\n\n if (!duplex.push(data)) ws.pause();\n });\n\n ws.once('error', function error(err) {\n if (duplex.destroyed) return;\n\n // Prevent `ws.terminate()` from being called by `duplex._destroy()`.\n //\n // - If the `'error'` event is emitted before the `'open'` event, then\n // `ws.terminate()` is a noop as no socket is assigned.\n // - Otherwise, the error is re-emitted by the listener of the `'error'`\n // event of the `Receiver` object. The listener already closes the\n // connection by calling `ws.close()`. This allows a close frame to be\n // sent to the other peer. If `ws.terminate()` is called right after this,\n // then the close frame might not be sent.\n terminateOnDestroy = false;\n duplex.destroy(err);\n });\n\n ws.once('close', function close() {\n if (duplex.destroyed) return;\n\n duplex.push(null);\n });\n\n duplex._destroy = function (err, callback) {\n if (ws.readyState === ws.CLOSED) {\n callback(err);\n process.nextTick(emitClose, duplex);\n return;\n }\n\n let called = false;\n\n ws.once('error', function error(err) {\n called = true;\n callback(err);\n });\n\n ws.once('close', function close() {\n if (!called) callback(err);\n process.nextTick(emitClose, duplex);\n });\n\n if (terminateOnDestroy) ws.terminate();\n };\n\n duplex._final = function (callback) {\n if (ws.readyState === ws.CONNECTING) {\n ws.once('open', function open() {\n duplex._final(callback);\n });\n return;\n }\n\n // If the value of the `_socket` property is `null` it means that `ws` is a\n // client websocket and the handshake failed. In fact, when this happens, a\n // socket is never assigned to the websocket. Wait for the `'error'` event\n // that will be emitted by the websocket.\n if (ws._socket === null) return;\n\n if (ws._socket._writableState.finished) {\n callback();\n if (duplex._readableState.endEmitted) duplex.destroy();\n } else {\n ws._socket.once('finish', function finish() {\n // `duplex` is not destroyed here because the `'end'` event will be\n // emitted on `duplex` after this `'finish'` event. The EOF signaling\n // `null` chunk is, in fact, pushed when the websocket emits `'close'`.\n callback();\n });\n ws.close();\n }\n };\n\n duplex._read = function () {\n if (ws.isPaused) ws.resume();\n };\n\n duplex._write = function (chunk, encoding, callback) {\n if (ws.readyState === ws.CONNECTING) {\n ws.once('open', function open() {\n duplex._write(chunk, encoding, callback);\n });\n return;\n }\n\n ws.send(chunk, callback);\n };\n\n duplex.on('end', duplexOnEnd);\n duplex.on('error', duplexOnError);\n return duplex;\n}\n\nmodule.exports = createWebSocketStream;\n","'use strict';\n\nconst { tokenChars } = require('./validation');\n\n/**\n * Parses the `Sec-WebSocket-Protocol` header into a set of subprotocol names.\n *\n * @param {String} header The field value of the header\n * @return {Set} The subprotocol names\n * @public\n */\nfunction parse(header) {\n const protocols = new Set();\n let start = -1;\n let end = -1;\n let i = 0;\n\n for (i; i < header.length; i++) {\n const code = header.charCodeAt(i);\n\n if (end === -1 && tokenChars[code] === 1) {\n if (start === -1) start = i;\n } else if (\n i !== 0 &&\n (code === 0x20 /* ' ' */ || code === 0x09) /* '\\t' */\n ) {\n if (end === -1 && start !== -1) end = i;\n } else if (code === 0x2c /* ',' */) {\n if (start === -1) {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n\n if (end === -1) end = i;\n\n const protocol = header.slice(start, end);\n\n if (protocols.has(protocol)) {\n throw new SyntaxError(`The \"${protocol}\" subprotocol is duplicated`);\n }\n\n protocols.add(protocol);\n start = end = -1;\n } else {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n }\n\n if (start === -1 || end !== -1) {\n throw new SyntaxError('Unexpected end of input');\n }\n\n const protocol = header.slice(start, i);\n\n if (protocols.has(protocol)) {\n throw new SyntaxError(`The \"${protocol}\" subprotocol is duplicated`);\n }\n\n protocols.add(protocol);\n return protocols;\n}\n\nmodule.exports = { parse };\n","/* eslint no-unused-vars: [\"error\", { \"varsIgnorePattern\": \"^Duplex$\", \"caughtErrors\": \"none\" }] */\n\n'use strict';\n\nconst EventEmitter = require('events');\nconst http = require('http');\nconst { Duplex } = require('stream');\nconst { createHash } = require('crypto');\n\nconst extension = require('./extension');\nconst PerMessageDeflate = require('./permessage-deflate');\nconst subprotocol = require('./subprotocol');\nconst WebSocket = require('./websocket');\nconst { GUID, kWebSocket } = require('./constants');\n\nconst keyRegex = /^[+/0-9A-Za-z]{22}==$/;\n\nconst RUNNING = 0;\nconst CLOSING = 1;\nconst CLOSED = 2;\n\n/**\n * Class representing a WebSocket server.\n *\n * @extends EventEmitter\n */\nclass WebSocketServer extends EventEmitter {\n /**\n * Create a `WebSocketServer` instance.\n *\n * @param {Object} options Configuration options\n * @param {Boolean} [options.allowSynchronousEvents=true] Specifies whether\n * any of the `'message'`, `'ping'`, and `'pong'` events can be emitted\n * multiple times in the same tick\n * @param {Boolean} [options.autoPong=true] Specifies whether or not to\n * automatically send a pong in response to a ping\n * @param {Number} [options.backlog=511] The maximum length of the queue of\n * pending connections\n * @param {Boolean} [options.clientTracking=true] Specifies whether or not to\n * track clients\n * @param {Function} [options.handleProtocols] A hook to handle protocols\n * @param {String} [options.host] The hostname where to bind the server\n * @param {Number} [options.maxPayload=104857600] The maximum allowed message\n * size\n * @param {Boolean} [options.noServer=false] Enable no server mode\n * @param {String} [options.path] Accept only connections matching this path\n * @param {(Boolean|Object)} [options.perMessageDeflate=false] Enable/disable\n * permessage-deflate\n * @param {Number} [options.port] The port where to bind the server\n * @param {(http.Server|https.Server)} [options.server] A pre-created HTTP/S\n * server to use\n * @param {Boolean} [options.skipUTF8Validation=false] Specifies whether or\n * not to skip UTF-8 validation for text and close messages\n * @param {Function} [options.verifyClient] A hook to reject connections\n * @param {Function} [options.WebSocket=WebSocket] Specifies the `WebSocket`\n * class to use. It must be the `WebSocket` class or class that extends it\n * @param {Function} [callback] A listener for the `listening` event\n */\n constructor(options, callback) {\n super();\n\n options = {\n allowSynchronousEvents: true,\n autoPong: true,\n maxPayload: 100 * 1024 * 1024,\n skipUTF8Validation: false,\n perMessageDeflate: false,\n handleProtocols: null,\n clientTracking: true,\n verifyClient: null,\n noServer: false,\n backlog: null, // use default (511 as implemented in net.js)\n server: null,\n host: null,\n path: null,\n port: null,\n WebSocket,\n ...options\n };\n\n if (\n (options.port == null && !options.server && !options.noServer) ||\n (options.port != null && (options.server || options.noServer)) ||\n (options.server && options.noServer)\n ) {\n throw new TypeError(\n 'One and only one of the \"port\", \"server\", or \"noServer\" options ' +\n 'must be specified'\n );\n }\n\n if (options.port != null) {\n this._server = http.createServer((req, res) => {\n const body = http.STATUS_CODES[426];\n\n res.writeHead(426, {\n 'Content-Length': body.length,\n 'Content-Type': 'text/plain'\n });\n res.end(body);\n });\n this._server.listen(\n options.port,\n options.host,\n options.backlog,\n callback\n );\n } else if (options.server) {\n this._server = options.server;\n }\n\n if (this._server) {\n const emitConnection = this.emit.bind(this, 'connection');\n\n this._removeListeners = addListeners(this._server, {\n listening: this.emit.bind(this, 'listening'),\n error: this.emit.bind(this, 'error'),\n upgrade: (req, socket, head) => {\n this.handleUpgrade(req, socket, head, emitConnection);\n }\n });\n }\n\n if (options.perMessageDeflate === true) options.perMessageDeflate = {};\n if (options.clientTracking) {\n this.clients = new Set();\n this._shouldEmitClose = false;\n }\n\n this.options = options;\n this._state = RUNNING;\n }\n\n /**\n * Returns the bound address, the address family name, and port of the server\n * as reported by the operating system if listening on an IP socket.\n * If the server is listening on a pipe or UNIX domain socket, the name is\n * returned as a string.\n *\n * @return {(Object|String|null)} The address of the server\n * @public\n */\n address() {\n if (this.options.noServer) {\n throw new Error('The server is operating in \"noServer\" mode');\n }\n\n if (!this._server) return null;\n return this._server.address();\n }\n\n /**\n * Stop the server from accepting new connections and emit the `'close'` event\n * when all existing connections are closed.\n *\n * @param {Function} [cb] A one-time listener for the `'close'` event\n * @public\n */\n close(cb) {\n if (this._state === CLOSED) {\n if (cb) {\n this.once('close', () => {\n cb(new Error('The server is not running'));\n });\n }\n\n process.nextTick(emitClose, this);\n return;\n }\n\n if (cb) this.once('close', cb);\n\n if (this._state === CLOSING) return;\n this._state = CLOSING;\n\n if (this.options.noServer || this.options.server) {\n if (this._server) {\n this._removeListeners();\n this._removeListeners = this._server = null;\n }\n\n if (this.clients) {\n if (!this.clients.size) {\n process.nextTick(emitClose, this);\n } else {\n this._shouldEmitClose = true;\n }\n } else {\n process.nextTick(emitClose, this);\n }\n } else {\n const server = this._server;\n\n this._removeListeners();\n this._removeListeners = this._server = null;\n\n //\n // The HTTP/S server was created internally. Close it, and rely on its\n // `'close'` event.\n //\n server.close(() => {\n emitClose(this);\n });\n }\n }\n\n /**\n * See if a given request should be handled by this server instance.\n *\n * @param {http.IncomingMessage} req Request object to inspect\n * @return {Boolean} `true` if the request is valid, else `false`\n * @public\n */\n shouldHandle(req) {\n if (this.options.path) {\n const index = req.url.indexOf('?');\n const pathname = index !== -1 ? req.url.slice(0, index) : req.url;\n\n if (pathname !== this.options.path) return false;\n }\n\n return true;\n }\n\n /**\n * Handle a HTTP Upgrade request.\n *\n * @param {http.IncomingMessage} req The request object\n * @param {Duplex} socket The network socket between the server and client\n * @param {Buffer} head The first packet of the upgraded stream\n * @param {Function} cb Callback\n * @public\n */\n handleUpgrade(req, socket, head, cb) {\n socket.on('error', socketOnError);\n\n const key = req.headers['sec-websocket-key'];\n const upgrade = req.headers.upgrade;\n const version = +req.headers['sec-websocket-version'];\n\n if (req.method !== 'GET') {\n const message = 'Invalid HTTP method';\n abortHandshakeOrEmitwsClientError(this, req, socket, 405, message);\n return;\n }\n\n if (upgrade === undefined || upgrade.toLowerCase() !== 'websocket') {\n const message = 'Invalid Upgrade header';\n abortHandshakeOrEmitwsClientError(this, req, socket, 400, message);\n return;\n }\n\n if (key === undefined || !keyRegex.test(key)) {\n const message = 'Missing or invalid Sec-WebSocket-Key header';\n abortHandshakeOrEmitwsClientError(this, req, socket, 400, message);\n return;\n }\n\n if (version !== 13 && version !== 8) {\n const message = 'Missing or invalid Sec-WebSocket-Version header';\n abortHandshakeOrEmitwsClientError(this, req, socket, 400, message, {\n 'Sec-WebSocket-Version': '13, 8'\n });\n return;\n }\n\n if (!this.shouldHandle(req)) {\n abortHandshake(socket, 400);\n return;\n }\n\n const secWebSocketProtocol = req.headers['sec-websocket-protocol'];\n let protocols = new Set();\n\n if (secWebSocketProtocol !== undefined) {\n try {\n protocols = subprotocol.parse(secWebSocketProtocol);\n } catch (err) {\n const message = 'Invalid Sec-WebSocket-Protocol header';\n abortHandshakeOrEmitwsClientError(this, req, socket, 400, message);\n return;\n }\n }\n\n const secWebSocketExtensions = req.headers['sec-websocket-extensions'];\n const extensions = {};\n\n if (\n this.options.perMessageDeflate &&\n secWebSocketExtensions !== undefined\n ) {\n const perMessageDeflate = new PerMessageDeflate(\n this.options.perMessageDeflate,\n true,\n this.options.maxPayload\n );\n\n try {\n const offers = extension.parse(secWebSocketExtensions);\n\n if (offers[PerMessageDeflate.extensionName]) {\n perMessageDeflate.accept(offers[PerMessageDeflate.extensionName]);\n extensions[PerMessageDeflate.extensionName] = perMessageDeflate;\n }\n } catch (err) {\n const message =\n 'Invalid or unacceptable Sec-WebSocket-Extensions header';\n abortHandshakeOrEmitwsClientError(this, req, socket, 400, message);\n return;\n }\n }\n\n //\n // Optionally call external client verification handler.\n //\n if (this.options.verifyClient) {\n const info = {\n origin:\n req.headers[`${version === 8 ? 'sec-websocket-origin' : 'origin'}`],\n secure: !!(req.socket.authorized || req.socket.encrypted),\n req\n };\n\n if (this.options.verifyClient.length === 2) {\n this.options.verifyClient(info, (verified, code, message, headers) => {\n if (!verified) {\n return abortHandshake(socket, code || 401, message, headers);\n }\n\n this.completeUpgrade(\n extensions,\n key,\n protocols,\n req,\n socket,\n head,\n cb\n );\n });\n return;\n }\n\n if (!this.options.verifyClient(info)) return abortHandshake(socket, 401);\n }\n\n this.completeUpgrade(extensions, key, protocols, req, socket, head, cb);\n }\n\n /**\n * Upgrade the connection to WebSocket.\n *\n * @param {Object} extensions The accepted extensions\n * @param {String} key The value of the `Sec-WebSocket-Key` header\n * @param {Set} protocols The subprotocols\n * @param {http.IncomingMessage} req The request object\n * @param {Duplex} socket The network socket between the server and client\n * @param {Buffer} head The first packet of the upgraded stream\n * @param {Function} cb Callback\n * @throws {Error} If called more than once with the same socket\n * @private\n */\n completeUpgrade(extensions, key, protocols, req, socket, head, cb) {\n //\n // Destroy the socket if the client has already sent a FIN packet.\n //\n if (!socket.readable || !socket.writable) return socket.destroy();\n\n if (socket[kWebSocket]) {\n throw new Error(\n 'server.handleUpgrade() was called more than once with the same ' +\n 'socket, possibly due to a misconfiguration'\n );\n }\n\n if (this._state > RUNNING) return abortHandshake(socket, 503);\n\n const digest = createHash('sha1')\n .update(key + GUID)\n .digest('base64');\n\n const headers = [\n 'HTTP/1.1 101 Switching Protocols',\n 'Upgrade: websocket',\n 'Connection: Upgrade',\n `Sec-WebSocket-Accept: ${digest}`\n ];\n\n const ws = new this.options.WebSocket(null, undefined, this.options);\n\n if (protocols.size) {\n //\n // Optionally call external protocol selection handler.\n //\n const protocol = this.options.handleProtocols\n ? this.options.handleProtocols(protocols, req)\n : protocols.values().next().value;\n\n if (protocol) {\n headers.push(`Sec-WebSocket-Protocol: ${protocol}`);\n ws._protocol = protocol;\n }\n }\n\n if (extensions[PerMessageDeflate.extensionName]) {\n const params = extensions[PerMessageDeflate.extensionName].params;\n const value = extension.format({\n [PerMessageDeflate.extensionName]: [params]\n });\n headers.push(`Sec-WebSocket-Extensions: ${value}`);\n ws._extensions = extensions;\n }\n\n //\n // Allow external modification/inspection of handshake headers.\n //\n this.emit('headers', headers, req);\n\n socket.write(headers.concat('\\r\\n').join('\\r\\n'));\n socket.removeListener('error', socketOnError);\n\n ws.setSocket(socket, head, {\n allowSynchronousEvents: this.options.allowSynchronousEvents,\n maxPayload: this.options.maxPayload,\n skipUTF8Validation: this.options.skipUTF8Validation\n });\n\n if (this.clients) {\n this.clients.add(ws);\n ws.on('close', () => {\n this.clients.delete(ws);\n\n if (this._shouldEmitClose && !this.clients.size) {\n process.nextTick(emitClose, this);\n }\n });\n }\n\n cb(ws, req);\n }\n}\n\nmodule.exports = WebSocketServer;\n\n/**\n * Add event listeners on an `EventEmitter` using a map of <event, listener>\n * pairs.\n *\n * @param {EventEmitter} server The event emitter\n * @param {Object.<String, Function>} map The listeners to add\n * @return {Function} A function that will remove the added listeners when\n * called\n * @private\n */\nfunction addListeners(server, map) {\n for (const event of Object.keys(map)) server.on(event, map[event]);\n\n return function removeListeners() {\n for (const event of Object.keys(map)) {\n server.removeListener(event, map[event]);\n }\n };\n}\n\n/**\n * Emit a `'close'` event on an `EventEmitter`.\n *\n * @param {EventEmitter} server The event emitter\n * @private\n */\nfunction emitClose(server) {\n server._state = CLOSED;\n server.emit('close');\n}\n\n/**\n * Handle socket errors.\n *\n * @private\n */\nfunction socketOnError() {\n this.destroy();\n}\n\n/**\n * Close the connection when preconditions are not fulfilled.\n *\n * @param {Duplex} socket The socket of the upgrade request\n * @param {Number} code The HTTP response status code\n * @param {String} [message] The HTTP response body\n * @param {Object} [headers] Additional HTTP response headers\n * @private\n */\nfunction abortHandshake(socket, code, message, headers) {\n //\n // The socket is writable unless the user destroyed or ended it before calling\n // `server.handleUpgrade()` or in the `verifyClient` function, which is a user\n // error. Handling this does not make much sense as the worst that can happen\n // is that some of the data written by the user might be discarded due to the\n // call to `socket.end()` below, which triggers an `'error'` event that in\n // turn causes the socket to be destroyed.\n //\n message = message || http.STATUS_CODES[code];\n headers = {\n Connection: 'close',\n 'Content-Type': 'text/html',\n 'Content-Length': Buffer.byteLength(message),\n ...headers\n };\n\n socket.once('finish', socket.destroy);\n\n socket.end(\n `HTTP/1.1 ${code} ${http.STATUS_CODES[code]}\\r\\n` +\n Object.keys(headers)\n .map((h) => `${h}: ${headers[h]}`)\n .join('\\r\\n') +\n '\\r\\n\\r\\n' +\n message\n );\n}\n\n/**\n * Emit a `'wsClientError'` event on a `WebSocketServer` if there is at least\n * one listener for it, otherwise call `abortHandshake()`.\n *\n * @param {WebSocketServer} server The WebSocket server\n * @param {http.IncomingMessage} req The request object\n * @param {Duplex} socket The socket of the upgrade request\n * @param {Number} code The HTTP response status code\n * @param {String} message The HTTP response body\n * @param {Object} [headers] The HTTP response headers\n * @private\n */\nfunction abortHandshakeOrEmitwsClientError(\n server,\n req,\n socket,\n code,\n message,\n headers\n) {\n if (server.listenerCount('wsClientError')) {\n const err = new Error(message);\n Error.captureStackTrace(err, abortHandshakeOrEmitwsClientError);\n\n server.emit('wsClientError', err, socket, req);\n } else {\n abortHandshake(socket, code, message, headers);\n }\n}\n",null,null,null,"/*\r\n Copyright 2013 Daniel Wirtz <dcode@dcode.io>\r\n Copyright 2009 The Closure Library Authors. All Rights Reserved.\r\n\r\n Licensed under the Apache License, Version 2.0 (the \"License\");\r\n you may not use this file except in compliance with the License.\r\n You may obtain a copy of the License at\r\n\r\n http://www.apache.org/licenses/LICENSE-2.0\r\n\r\n Unless required by applicable law or agreed to in writing, software\r\n distributed under the License is distributed on an \"AS-IS\" BASIS,\r\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n See the License for the specific language governing permissions and\r\n limitations under the License.\r\n */\r\n\r\n/**\r\n * @license long.js (c) 2013 Daniel Wirtz <dcode@dcode.io>\r\n * Released under the Apache License, Version 2.0\r\n * see: https://github.com/dcodeIO/long.js for details\r\n */\r\n(function(global, factory) {\r\n\r\n /* AMD */ if (typeof define === 'function' && define[\"amd\"])\r\n define([], factory);\r\n /* CommonJS */ else if (typeof require === 'function' && typeof module === \"object\" && module && module[\"exports\"])\r\n module[\"exports\"] = factory();\r\n /* Global */ else\r\n (global[\"dcodeIO\"] = global[\"dcodeIO\"] || {})[\"Long\"] = factory();\r\n\r\n})(this, function() {\r\n \"use strict\";\r\n\r\n /**\r\n * Constructs a 64 bit two's-complement integer, given its low and high 32 bit values as *signed* integers.\r\n * See the from* functions below for more convenient ways of constructing Longs.\r\n * @exports Long\r\n * @class A Long class for representing a 64 bit two's-complement integer value.\r\n * @param {number} low The low (signed) 32 bits of the long\r\n * @param {number} high The high (signed) 32 bits of the long\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to `false` for signed\r\n * @constructor\r\n */\r\n function Long(low, high, unsigned) {\r\n\r\n /**\r\n * The low 32 bits as a signed value.\r\n * @type {number}\r\n */\r\n this.low = low | 0;\r\n\r\n /**\r\n * The high 32 bits as a signed value.\r\n * @type {number}\r\n */\r\n this.high = high | 0;\r\n\r\n /**\r\n * Whether unsigned or not.\r\n * @type {boolean}\r\n */\r\n this.unsigned = !!unsigned;\r\n }\r\n\r\n // The internal representation of a long is the two given signed, 32-bit values.\r\n // We use 32-bit pieces because these are the size of integers on which\r\n // Javascript performs bit-operations. For operations like addition and\r\n // multiplication, we split each number into 16 bit pieces, which can easily be\r\n // multiplied within Javascript's floating-point representation without overflow\r\n // or change in sign.\r\n //\r\n // In the algorithms below, we frequently reduce the negative case to the\r\n // positive case by negating the input(s) and then post-processing the result.\r\n // Note that we must ALWAYS check specially whether those values are MIN_VALUE\r\n // (-2^63) because -MIN_VALUE == MIN_VALUE (since 2^63 cannot be represented as\r\n // a positive number, it overflows back into a negative). Not handling this\r\n // case would often result in infinite recursion.\r\n //\r\n // Common constant values ZERO, ONE, NEG_ONE, etc. are defined below the from*\r\n // methods on which they depend.\r\n\r\n /**\r\n * An indicator used to reliably determine if an object is a Long or not.\r\n * @type {boolean}\r\n * @const\r\n * @private\r\n */\r\n Long.prototype.__isLong__;\r\n\r\n Object.defineProperty(Long.prototype, \"__isLong__\", {\r\n value: true,\r\n enumerable: false,\r\n configurable: false\r\n });\r\n\r\n /**\r\n * @function\r\n * @param {*} obj Object\r\n * @returns {boolean}\r\n * @inner\r\n */\r\n function isLong(obj) {\r\n return (obj && obj[\"__isLong__\"]) === true;\r\n }\r\n\r\n /**\r\n * Tests if the specified object is a Long.\r\n * @function\r\n * @param {*} obj Object\r\n * @returns {boolean}\r\n */\r\n Long.isLong = isLong;\r\n\r\n /**\r\n * A cache of the Long representations of small integer values.\r\n * @type {!Object}\r\n * @inner\r\n */\r\n var INT_CACHE = {};\r\n\r\n /**\r\n * A cache of the Long representations of small unsigned integer values.\r\n * @type {!Object}\r\n * @inner\r\n */\r\n var UINT_CACHE = {};\r\n\r\n /**\r\n * @param {number} value\r\n * @param {boolean=} unsigned\r\n * @returns {!Long}\r\n * @inner\r\n */\r\n function fromInt(value, unsigned) {\r\n var obj, cachedObj, cache;\r\n if (unsigned) {\r\n value >>>= 0;\r\n if (cache = (0 <= value && value < 256)) {\r\n cachedObj = UINT_CACHE[value];\r\n if (cachedObj)\r\n return cachedObj;\r\n }\r\n obj = fromBits(value, (value | 0) < 0 ? -1 : 0, true);\r\n if (cache)\r\n UINT_CACHE[value] = obj;\r\n return obj;\r\n } else {\r\n value |= 0;\r\n if (cache = (-128 <= value && value < 128)) {\r\n cachedObj = INT_CACHE[value];\r\n if (cachedObj)\r\n return cachedObj;\r\n }\r\n obj = fromBits(value, value < 0 ? -1 : 0, false);\r\n if (cache)\r\n INT_CACHE[value] = obj;\r\n return obj;\r\n }\r\n }\r\n\r\n /**\r\n * Returns a Long representing the given 32 bit integer value.\r\n * @function\r\n * @param {number} value The 32 bit integer in question\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to `false` for signed\r\n * @returns {!Long} The corresponding Long value\r\n */\r\n Long.fromInt = fromInt;\r\n\r\n /**\r\n * @param {number} value\r\n * @param {boolean=} unsigned\r\n * @returns {!Long}\r\n * @inner\r\n */\r\n function fromNumber(value, unsigned) {\r\n if (isNaN(value) || !isFinite(value))\r\n return unsigned ? UZERO : ZERO;\r\n if (unsigned) {\r\n if (value < 0)\r\n return UZERO;\r\n if (value >= TWO_PWR_64_DBL)\r\n return MAX_UNSIGNED_VALUE;\r\n } else {\r\n if (value <= -TWO_PWR_63_DBL)\r\n return MIN_VALUE;\r\n if (value + 1 >= TWO_PWR_63_DBL)\r\n return MAX_VALUE;\r\n }\r\n if (value < 0)\r\n return fromNumber(-value, unsigned).neg();\r\n return fromBits((value % TWO_PWR_32_DBL) | 0, (value / TWO_PWR_32_DBL) | 0, unsigned);\r\n }\r\n\r\n /**\r\n * Returns a Long representing the given value, provided that it is a finite number. Otherwise, zero is returned.\r\n * @function\r\n * @param {number} value The number in question\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to `false` for signed\r\n * @returns {!Long} The corresponding Long value\r\n */\r\n Long.fromNumber = fromNumber;\r\n\r\n /**\r\n * @param {number} lowBits\r\n * @param {number} highBits\r\n * @param {boolean=} unsigned\r\n * @returns {!Long}\r\n * @inner\r\n */\r\n function fromBits(lowBits, highBits, unsigned) {\r\n return new Long(lowBits, highBits, unsigned);\r\n }\r\n\r\n /**\r\n * Returns a Long representing the 64 bit integer that comes by concatenating the given low and high bits. Each is\r\n * assumed to use 32 bits.\r\n * @function\r\n * @param {number} lowBits The low 32 bits\r\n * @param {number} highBits The high 32 bits\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to `false` for signed\r\n * @returns {!Long} The corresponding Long value\r\n */\r\n Long.fromBits = fromBits;\r\n\r\n /**\r\n * @function\r\n * @param {number} base\r\n * @param {number} exponent\r\n * @returns {number}\r\n * @inner\r\n */\r\n var pow_dbl = Math.pow; // Used 4 times (4*8 to 15+4)\r\n\r\n /**\r\n * @param {string} str\r\n * @param {(boolean|number)=} unsigned\r\n * @param {number=} radix\r\n * @returns {!Long}\r\n * @inner\r\n */\r\n function fromString(str, unsigned, radix) {\r\n if (str.length === 0)\r\n throw Error('empty string');\r\n if (str === \"NaN\" || str === \"Infinity\" || str === \"+Infinity\" || str === \"-Infinity\")\r\n return ZERO;\r\n if (typeof unsigned === 'number') {\r\n // For goog.math.long compatibility\r\n radix = unsigned,\r\n unsigned = false;\r\n } else {\r\n unsigned = !! unsigned;\r\n }\r\n radix = radix || 10;\r\n if (radix < 2 || 36 < radix)\r\n throw RangeError('radix');\r\n\r\n var p;\r\n if ((p = str.indexOf('-')) > 0)\r\n throw Error('interior hyphen');\r\n else if (p === 0) {\r\n return fromString(str.substring(1), unsigned, radix).neg();\r\n }\r\n\r\n // Do several (8) digits each time through the loop, so as to\r\n // minimize the calls to the very expensive emulated div.\r\n var radixToPower = fromNumber(pow_dbl(radix, 8));\r\n\r\n var result = ZERO;\r\n for (var i = 0; i < str.length; i += 8) {\r\n var size = Math.min(8, str.length - i),\r\n value = parseInt(str.substring(i, i + size), radix);\r\n if (size < 8) {\r\n var power = fromNumber(pow_dbl(radix, size));\r\n result = result.mul(power).add(fromNumber(value));\r\n } else {\r\n result = result.mul(radixToPower);\r\n result = result.add(fromNumber(value));\r\n }\r\n }\r\n result.unsigned = unsigned;\r\n return result;\r\n }\r\n\r\n /**\r\n * Returns a Long representation of the given string, written using the specified radix.\r\n * @function\r\n * @param {string} str The textual representation of the Long\r\n * @param {(boolean|number)=} unsigned Whether unsigned or not, defaults to `false` for signed\r\n * @param {number=} radix The radix in which the text is written (2-36), defaults to 10\r\n * @returns {!Long} The corresponding Long value\r\n */\r\n Long.fromString = fromString;\r\n\r\n /**\r\n * @function\r\n * @param {!Long|number|string|!{low: number, high: number, unsigned: boolean}} val\r\n * @returns {!Long}\r\n * @inner\r\n */\r\n function fromValue(val) {\r\n if (val /* is compatible */ instanceof Long)\r\n return val;\r\n if (typeof val === 'number')\r\n return fromNumber(val);\r\n if (typeof val === 'string')\r\n return fromString(val);\r\n // Throws for non-objects, converts non-instanceof Long:\r\n return fromBits(val.low, val.high, val.unsigned);\r\n }\r\n\r\n /**\r\n * Converts the specified value to a Long.\r\n * @function\r\n * @param {!Long|number|string|!{low: number, high: number, unsigned: boolean}} val Value\r\n * @returns {!Long}\r\n */\r\n Long.fromValue = fromValue;\r\n\r\n // NOTE: the compiler should inline these constant values below and then remove these variables, so there should be\r\n // no runtime penalty for these.\r\n\r\n /**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\n var TWO_PWR_16_DBL = 1 << 16;\r\n\r\n /**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\n var TWO_PWR_24_DBL = 1 << 24;\r\n\r\n /**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\n var TWO_PWR_32_DBL = TWO_PWR_16_DBL * TWO_PWR_16_DBL;\r\n\r\n /**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\n var TWO_PWR_64_DBL = TWO_PWR_32_DBL * TWO_PWR_32_DBL;\r\n\r\n /**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\n var TWO_PWR_63_DBL = TWO_PWR_64_DBL / 2;\r\n\r\n /**\r\n * @type {!Long}\r\n * @const\r\n * @inner\r\n */\r\n var TWO_PWR_24 = fromInt(TWO_PWR_24_DBL);\r\n\r\n /**\r\n * @type {!Long}\r\n * @inner\r\n */\r\n var ZERO = fromInt(0);\r\n\r\n /**\r\n * Signed zero.\r\n * @type {!Long}\r\n */\r\n Long.ZERO = ZERO;\r\n\r\n /**\r\n * @type {!Long}\r\n * @inner\r\n */\r\n var UZERO = fromInt(0, true);\r\n\r\n /**\r\n * Unsigned zero.\r\n * @type {!Long}\r\n */\r\n Long.UZERO = UZERO;\r\n\r\n /**\r\n * @type {!Long}\r\n * @inner\r\n */\r\n var ONE = fromInt(1);\r\n\r\n /**\r\n * Signed one.\r\n * @type {!Long}\r\n */\r\n Long.ONE = ONE;\r\n\r\n /**\r\n * @type {!Long}\r\n * @inner\r\n */\r\n var UONE = fromInt(1, true);\r\n\r\n /**\r\n * Unsigned one.\r\n * @type {!Long}\r\n */\r\n Long.UONE = UONE;\r\n\r\n /**\r\n * @type {!Long}\r\n * @inner\r\n */\r\n var NEG_ONE = fromInt(-1);\r\n\r\n /**\r\n * Signed negative one.\r\n * @type {!Long}\r\n */\r\n Long.NEG_ONE = NEG_ONE;\r\n\r\n /**\r\n * @type {!Long}\r\n * @inner\r\n */\r\n var MAX_VALUE = fromBits(0xFFFFFFFF|0, 0x7FFFFFFF|0, false);\r\n\r\n /**\r\n * Maximum signed value.\r\n * @type {!Long}\r\n */\r\n Long.MAX_VALUE = MAX_VALUE;\r\n\r\n /**\r\n * @type {!Long}\r\n * @inner\r\n */\r\n var MAX_UNSIGNED_VALUE = fromBits(0xFFFFFFFF|0, 0xFFFFFFFF|0, true);\r\n\r\n /**\r\n * Maximum unsigned value.\r\n * @type {!Long}\r\n */\r\n Long.MAX_UNSIGNED_VALUE = MAX_UNSIGNED_VALUE;\r\n\r\n /**\r\n * @type {!Long}\r\n * @inner\r\n */\r\n var MIN_VALUE = fromBits(0, 0x80000000|0, false);\r\n\r\n /**\r\n * Minimum signed value.\r\n * @type {!Long}\r\n */\r\n Long.MIN_VALUE = MIN_VALUE;\r\n\r\n /**\r\n * @alias Long.prototype\r\n * @inner\r\n */\r\n var LongPrototype = Long.prototype;\r\n\r\n /**\r\n * Converts the Long to a 32 bit integer, assuming it is a 32 bit integer.\r\n * @returns {number}\r\n */\r\n LongPrototype.toInt = function toInt() {\r\n return this.unsigned ? this.low >>> 0 : this.low;\r\n };\r\n\r\n /**\r\n * Converts the Long to a the nearest floating-point representation of this value (double, 53 bit mantissa).\r\n * @returns {number}\r\n */\r\n LongPrototype.toNumber = function toNumber() {\r\n if (this.unsigned)\r\n return ((this.high >>> 0) * TWO_PWR_32_DBL) + (this.low >>> 0);\r\n return this.high * TWO_PWR_32_DBL + (this.low >>> 0);\r\n };\r\n\r\n /**\r\n * Converts the Long to a string written in the specified radix.\r\n * @param {number=} radix Radix (2-36), defaults to 10\r\n * @returns {string}\r\n * @override\r\n * @throws {RangeError} If `radix` is out of range\r\n */\r\n LongPrototype.toString = function toString(radix) {\r\n radix = radix || 10;\r\n if (radix < 2 || 36 < radix)\r\n throw RangeError('radix');\r\n if (this.isZero())\r\n return '0';\r\n if (this.isNegative()) { // Unsigned Longs are never negative\r\n if (this.eq(MIN_VALUE)) {\r\n // We need to change the Long value before it can be negated, so we remove\r\n // the bottom-most digit in this base and then recurse to do the rest.\r\n var radixLong = fromNumber(radix),\r\n div = this.div(radixLong),\r\n rem1 = div.mul(radixLong).sub(this);\r\n return div.toString(radix) + rem1.toInt().toString(radix);\r\n } else\r\n return '-' + this.neg().toString(radix);\r\n }\r\n\r\n // Do several (6) digits each time through the loop, so as to\r\n // minimize the calls to the very expensive emulated div.\r\n var radixToPower = fromNumber(pow_dbl(radix, 6), this.unsigned),\r\n rem = this;\r\n var result = '';\r\n while (true) {\r\n var remDiv = rem.div(radixToPower),\r\n intval = rem.sub(remDiv.mul(radixToPower)).toInt() >>> 0,\r\n digits = intval.toString(radix);\r\n rem = remDiv;\r\n if (rem.isZero())\r\n return digits + result;\r\n else {\r\n while (digits.length < 6)\r\n digits = '0' + digits;\r\n result = '' + digits + result;\r\n }\r\n }\r\n };\r\n\r\n /**\r\n * Gets the high 32 bits as a signed integer.\r\n * @returns {number} Signed high bits\r\n */\r\n LongPrototype.getHighBits = function getHighBits() {\r\n return this.high;\r\n };\r\n\r\n /**\r\n * Gets the high 32 bits as an unsigned integer.\r\n * @returns {number} Unsigned high bits\r\n */\r\n LongPrototype.getHighBitsUnsigned = function getHighBitsUnsigned() {\r\n return this.high >>> 0;\r\n };\r\n\r\n /**\r\n * Gets the low 32 bits as a signed integer.\r\n * @returns {number} Signed low bits\r\n */\r\n LongPrototype.getLowBits = function getLowBits() {\r\n return this.low;\r\n };\r\n\r\n /**\r\n * Gets the low 32 bits as an unsigned integer.\r\n * @returns {number} Unsigned low bits\r\n */\r\n LongPrototype.getLowBitsUnsigned = function getLowBitsUnsigned() {\r\n return this.low >>> 0;\r\n };\r\n\r\n /**\r\n * Gets the number of bits needed to represent the absolute value of this Long.\r\n * @returns {number}\r\n */\r\n LongPrototype.getNumBitsAbs = function getNumBitsAbs() {\r\n if (this.isNegative()) // Unsigned Longs are never negative\r\n return this.eq(MIN_VALUE) ? 64 : this.neg().getNumBitsAbs();\r\n var val = this.high != 0 ? this.high : this.low;\r\n for (var bit = 31; bit > 0; bit--)\r\n if ((val & (1 << bit)) != 0)\r\n break;\r\n return this.high != 0 ? bit + 33 : bit + 1;\r\n };\r\n\r\n /**\r\n * Tests if this Long's value equals zero.\r\n * @returns {boolean}\r\n */\r\n LongPrototype.isZero = function isZero() {\r\n return this.high === 0 && this.low === 0;\r\n };\r\n\r\n /**\r\n * Tests if this Long's value is negative.\r\n * @returns {boolean}\r\n */\r\n LongPrototype.isNegative = function isNegative() {\r\n return !this.unsigned && this.high < 0;\r\n };\r\n\r\n /**\r\n * Tests if this Long's value is positive.\r\n * @returns {boolean}\r\n */\r\n LongPrototype.isPositive = function isPositive() {\r\n return this.unsigned || this.high >= 0;\r\n };\r\n\r\n /**\r\n * Tests if this Long's value is odd.\r\n * @returns {boolean}\r\n */\r\n LongPrototype.isOdd = function isOdd() {\r\n return (this.low & 1) === 1;\r\n };\r\n\r\n /**\r\n * Tests if this Long's value is even.\r\n * @returns {boolean}\r\n */\r\n LongPrototype.isEven = function isEven() {\r\n return (this.low & 1) === 0;\r\n };\r\n\r\n /**\r\n * Tests if this Long's value equals the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\n LongPrototype.equals = function equals(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n if (this.unsigned !== other.unsigned && (this.high >>> 31) === 1 && (other.high >>> 31) === 1)\r\n return false;\r\n return this.high === other.high && this.low === other.low;\r\n };\r\n\r\n /**\r\n * Tests if this Long's value equals the specified's. This is an alias of {@link Long#equals}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\n LongPrototype.eq = LongPrototype.equals;\r\n\r\n /**\r\n * Tests if this Long's value differs from the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\n LongPrototype.notEquals = function notEquals(other) {\r\n return !this.eq(/* validates */ other);\r\n };\r\n\r\n /**\r\n * Tests if this Long's value differs from the specified's. This is an alias of {@link Long#notEquals}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\n LongPrototype.neq = LongPrototype.notEquals;\r\n\r\n /**\r\n * Tests if this Long's value is less than the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\n LongPrototype.lessThan = function lessThan(other) {\r\n return this.comp(/* validates */ other) < 0;\r\n };\r\n\r\n /**\r\n * Tests if this Long's value is less than the specified's. This is an alias of {@link Long#lessThan}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\n LongPrototype.lt = LongPrototype.lessThan;\r\n\r\n /**\r\n * Tests if this Long's value is less than or equal the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\n LongPrototype.lessThanOrEqual = function lessThanOrEqual(other) {\r\n return this.comp(/* validates */ other) <= 0;\r\n };\r\n\r\n /**\r\n * Tests if this Long's value is less than or equal the specified's. This is an alias of {@link Long#lessThanOrEqual}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\n LongPrototype.lte = LongPrototype.lessThanOrEqual;\r\n\r\n /**\r\n * Tests if this Long's value is greater than the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\n LongPrototype.greaterThan = function greaterThan(other) {\r\n return this.comp(/* validates */ other) > 0;\r\n };\r\n\r\n /**\r\n * Tests if this Long's value is greater than the specified's. This is an alias of {@link Long#greaterThan}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\n LongPrototype.gt = LongPrototype.greaterThan;\r\n\r\n /**\r\n * Tests if this Long's value is greater than or equal the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\n LongPrototype.greaterThanOrEqual = function greaterThanOrEqual(other) {\r\n return this.comp(/* validates */ other) >= 0;\r\n };\r\n\r\n /**\r\n * Tests if this Long's value is greater than or equal the specified's. This is an alias of {@link Long#greaterThanOrEqual}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\n LongPrototype.gte = LongPrototype.greaterThanOrEqual;\r\n\r\n /**\r\n * Compares this Long's value with the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {number} 0 if they are the same, 1 if the this is greater and -1\r\n * if the given one is greater\r\n */\r\n LongPrototype.compare = function compare(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n if (this.eq(other))\r\n return 0;\r\n var thisNeg = this.isNegative(),\r\n otherNeg = other.isNegative();\r\n if (thisNeg && !otherNeg)\r\n return -1;\r\n if (!thisNeg && otherNeg)\r\n return 1;\r\n // At this point the sign bits are the same\r\n if (!this.unsigned)\r\n return this.sub(other).isNegative() ? -1 : 1;\r\n // Both are positive if at least one is unsigned\r\n return (other.high >>> 0) > (this.high >>> 0) || (other.high === this.high && (other.low >>> 0) > (this.low >>> 0)) ? -1 : 1;\r\n };\r\n\r\n /**\r\n * Compares this Long's value with the specified's. This is an alias of {@link Long#compare}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {number} 0 if they are the same, 1 if the this is greater and -1\r\n * if the given one is greater\r\n */\r\n LongPrototype.comp = LongPrototype.compare;\r\n\r\n /**\r\n * Negates this Long's value.\r\n * @returns {!Long} Negated Long\r\n */\r\n LongPrototype.negate = function negate() {\r\n if (!this.unsigned && this.eq(MIN_VALUE))\r\n return MIN_VALUE;\r\n return this.not().add(ONE);\r\n };\r\n\r\n /**\r\n * Negates this Long's value. This is an alias of {@link Long#negate}.\r\n * @function\r\n * @returns {!Long} Negated Long\r\n */\r\n LongPrototype.neg = LongPrototype.negate;\r\n\r\n /**\r\n * Returns the sum of this and the specified Long.\r\n * @param {!Long|number|string} addend Addend\r\n * @returns {!Long} Sum\r\n */\r\n LongPrototype.add = function add(addend) {\r\n if (!isLong(addend))\r\n addend = fromValue(addend);\r\n\r\n // Divide each number into 4 chunks of 16 bits, and then sum the chunks.\r\n\r\n var a48 = this.high >>> 16;\r\n var a32 = this.high & 0xFFFF;\r\n var a16 = this.low >>> 16;\r\n var a00 = this.low & 0xFFFF;\r\n\r\n var b48 = addend.high >>> 16;\r\n var b32 = addend.high & 0xFFFF;\r\n var b16 = addend.low >>> 16;\r\n var b00 = addend.low & 0xFFFF;\r\n\r\n var c48 = 0, c32 = 0, c16 = 0, c00 = 0;\r\n c00 += a00 + b00;\r\n c16 += c00 >>> 16;\r\n c00 &= 0xFFFF;\r\n c16 += a16 + b16;\r\n c32 += c16 >>> 16;\r\n c16 &= 0xFFFF;\r\n c32 += a32 + b32;\r\n c48 += c32 >>> 16;\r\n c32 &= 0xFFFF;\r\n c48 += a48 + b48;\r\n c48 &= 0xFFFF;\r\n return fromBits((c16 << 16) | c00, (c48 << 16) | c32, this.unsigned);\r\n };\r\n\r\n /**\r\n * Returns the difference of this and the specified Long.\r\n * @param {!Long|number|string} subtrahend Subtrahend\r\n * @returns {!Long} Difference\r\n */\r\n LongPrototype.subtract = function subtract(subtrahend) {\r\n if (!isLong(subtrahend))\r\n subtrahend = fromValue(subtrahend);\r\n return this.add(subtrahend.neg());\r\n };\r\n\r\n /**\r\n * Returns the difference of this and the specified Long. This is an alias of {@link Long#subtract}.\r\n * @function\r\n * @param {!Long|number|string} subtrahend Subtrahend\r\n * @returns {!Long} Difference\r\n */\r\n LongPrototype.sub = LongPrototype.subtract;\r\n\r\n /**\r\n * Returns the product of this and the specified Long.\r\n * @param {!Long|number|string} multiplier Multiplier\r\n * @returns {!Long} Product\r\n */\r\n LongPrototype.multiply = function multiply(multiplier) {\r\n if (this.isZero())\r\n return ZERO;\r\n if (!isLong(multiplier))\r\n multiplier = fromValue(multiplier);\r\n if (multiplier.isZero())\r\n return ZERO;\r\n if (this.eq(MIN_VALUE))\r\n return multiplier.isOdd() ? MIN_VALUE : ZERO;\r\n if (multiplier.eq(MIN_VALUE))\r\n return this.isOdd() ? MIN_VALUE : ZERO;\r\n\r\n if (this.isNegative()) {\r\n if (multiplier.isNegative())\r\n return this.neg().mul(multiplier.neg());\r\n else\r\n return this.neg().mul(multiplier).neg();\r\n } else if (multiplier.isNegative())\r\n return this.mul(multiplier.neg()).neg();\r\n\r\n // If both longs are small, use float multiplication\r\n if (this.lt(TWO_PWR_24) && multiplier.lt(TWO_PWR_24))\r\n return fromNumber(this.toNumber() * multiplier.toNumber(), this.unsigned);\r\n\r\n // Divide each long into 4 chunks of 16 bits, and then add up 4x4 products.\r\n // We can skip products that would overflow.\r\n\r\n var a48 = this.high >>> 16;\r\n var a32 = this.high & 0xFFFF;\r\n var a16 = this.low >>> 16;\r\n var a00 = this.low & 0xFFFF;\r\n\r\n var b48 = multiplier.high >>> 16;\r\n var b32 = multiplier.high & 0xFFFF;\r\n var b16 = multiplier.low >>> 16;\r\n var b00 = multiplier.low & 0xFFFF;\r\n\r\n var c48 = 0, c32 = 0, c16 = 0, c00 = 0;\r\n c00 += a00 * b00;\r\n c16 += c00 >>> 16;\r\n c00 &= 0xFFFF;\r\n c16 += a16 * b00;\r\n c32 += c16 >>> 16;\r\n c16 &= 0xFFFF;\r\n c16 += a00 * b16;\r\n c32 += c16 >>> 16;\r\n c16 &= 0xFFFF;\r\n c32 += a32 * b00;\r\n c48 += c32 >>> 16;\r\n c32 &= 0xFFFF;\r\n c32 += a16 * b16;\r\n c48 += c32 >>> 16;\r\n c32 &= 0xFFFF;\r\n c32 += a00 * b32;\r\n c48 += c32 >>> 16;\r\n c32 &= 0xFFFF;\r\n c48 += a48 * b00 + a32 * b16 + a16 * b32 + a00 * b48;\r\n c48 &= 0xFFFF;\r\n return fromBits((c16 << 16) | c00, (c48 << 16) | c32, this.unsigned);\r\n };\r\n\r\n /**\r\n * Returns the product of this and the specified Long. This is an alias of {@link Long#multiply}.\r\n * @function\r\n * @param {!Long|number|string} multiplier Multiplier\r\n * @returns {!Long} Product\r\n */\r\n LongPrototype.mul = LongPrototype.multiply;\r\n\r\n /**\r\n * Returns this Long divided by the specified. The result is signed if this Long is signed or\r\n * unsigned if this Long is unsigned.\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Quotient\r\n */\r\n LongPrototype.divide = function divide(divisor) {\r\n if (!isLong(divisor))\r\n divisor = fromValue(divisor);\r\n if (divisor.isZero())\r\n throw Error('division by zero');\r\n if (this.isZero())\r\n return this.unsigned ? UZERO : ZERO;\r\n var approx, rem, res;\r\n if (!this.unsigned) {\r\n // This section is only relevant for signed longs and is derived from the\r\n // closure library as a whole.\r\n if (this.eq(MIN_VALUE)) {\r\n if (divisor.eq(ONE) || divisor.eq(NEG_ONE))\r\n return MIN_VALUE; // recall that -MIN_VALUE == MIN_VALUE\r\n else if (divisor.eq(MIN_VALUE))\r\n return ONE;\r\n else {\r\n // At this point, we have |other| >= 2, so |this/other| < |MIN_VALUE|.\r\n var halfThis = this.shr(1);\r\n approx = halfThis.div(divisor).shl(1);\r\n if (approx.eq(ZERO)) {\r\n return divisor.isNegative() ? ONE : NEG_ONE;\r\n } else {\r\n rem = this.sub(divisor.mul(approx));\r\n res = approx.add(rem.div(divisor));\r\n return res;\r\n }\r\n }\r\n } else if (divisor.eq(MIN_VALUE))\r\n return this.unsigned ? UZERO : ZERO;\r\n if (this.isNegative()) {\r\n if (divisor.isNegative())\r\n return this.neg().div(divisor.neg());\r\n return this.neg().div(divisor).neg();\r\n } else if (divisor.isNegative())\r\n return this.div(divisor.neg()).neg();\r\n res = ZERO;\r\n } else {\r\n // The algorithm below has not been made for unsigned longs. It's therefore\r\n // required to take special care of the MSB prior to running it.\r\n if (!divisor.unsigned)\r\n divisor = divisor.toUnsigned();\r\n if (divisor.gt(this))\r\n return UZERO;\r\n if (divisor.gt(this.shru(1))) // 15 >>> 1 = 7 ; with divisor = 8 ; true\r\n return UONE;\r\n res = UZERO;\r\n }\r\n\r\n // Repeat the following until the remainder is less than other: find a\r\n // floating-point that approximates remainder / other *from below*, add this\r\n // into the result, and subtract it from the remainder. It is critical that\r\n // the approximate value is less than or equal to the real value so that the\r\n // remainder never becomes negative.\r\n rem = this;\r\n while (rem.gte(divisor)) {\r\n // Approximate the result of division. This may be a little greater or\r\n // smaller than the actual value.\r\n approx = Math.max(1, Math.floor(rem.toNumber() / divisor.toNumber()));\r\n\r\n // We will tweak the approximate result by changing it in the 48-th digit or\r\n // the smallest non-fractional digit, whichever is larger.\r\n var log2 = Math.ceil(Math.log(approx) / Math.LN2),\r\n delta = (log2 <= 48) ? 1 : pow_dbl(2, log2 - 48),\r\n\r\n // Decrease the approximation until it is smaller than the remainder. Note\r\n // that if it is too large, the product overflows and is negative.\r\n approxRes = fromNumber(approx),\r\n approxRem = approxRes.mul(divisor);\r\n while (approxRem.isNegative() || approxRem.gt(rem)) {\r\n approx -= delta;\r\n approxRes = fromNumber(approx, this.unsigned);\r\n approxRem = approxRes.mul(divisor);\r\n }\r\n\r\n // We know the answer can't be zero... and actually, zero would cause\r\n // infinite recursion since we would make no progress.\r\n if (approxRes.isZero())\r\n approxRes = ONE;\r\n\r\n res = res.add(approxRes);\r\n rem = rem.sub(approxRem);\r\n }\r\n return res;\r\n };\r\n\r\n /**\r\n * Returns this Long divided by the specified. This is an alias of {@link Long#divide}.\r\n * @function\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Quotient\r\n */\r\n LongPrototype.div = LongPrototype.divide;\r\n\r\n /**\r\n * Returns this Long modulo the specified.\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Remainder\r\n */\r\n LongPrototype.modulo = function modulo(divisor) {\r\n if (!isLong(divisor))\r\n divisor = fromValue(divisor);\r\n return this.sub(this.div(divisor).mul(divisor));\r\n };\r\n\r\n /**\r\n * Returns this Long modulo the specified. This is an alias of {@link Long#modulo}.\r\n * @function\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Remainder\r\n */\r\n LongPrototype.mod = LongPrototype.modulo;\r\n\r\n /**\r\n * Returns the bitwise NOT of this Long.\r\n * @returns {!Long}\r\n */\r\n LongPrototype.not = function not() {\r\n return fromBits(~this.low, ~this.high, this.unsigned);\r\n };\r\n\r\n /**\r\n * Returns the bitwise AND of this Long and the specified.\r\n * @param {!Long|number|string} other Other Long\r\n * @returns {!Long}\r\n */\r\n LongPrototype.and = function and(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n return fromBits(this.low & other.low, this.high & other.high, this.unsigned);\r\n };\r\n\r\n /**\r\n * Returns the bitwise OR of this Long and the specified.\r\n * @param {!Long|number|string} other Other Long\r\n * @returns {!Long}\r\n */\r\n LongPrototype.or = function or(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n return fromBits(this.low | other.low, this.high | other.high, this.unsigned);\r\n };\r\n\r\n /**\r\n * Returns the bitwise XOR of this Long and the given one.\r\n * @param {!Long|number|string} other Other Long\r\n * @returns {!Long}\r\n */\r\n LongPrototype.xor = function xor(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n return fromBits(this.low ^ other.low, this.high ^ other.high, this.unsigned);\r\n };\r\n\r\n /**\r\n * Returns this Long with bits shifted to the left by the given amount.\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\n LongPrototype.shiftLeft = function shiftLeft(numBits) {\r\n if (isLong(numBits))\r\n numBits = numBits.toInt();\r\n if ((numBits &= 63) === 0)\r\n return this;\r\n else if (numBits < 32)\r\n return fromBits(this.low << numBits, (this.high << numBits) | (this.low >>> (32 - numBits)), this.unsigned);\r\n else\r\n return fromBits(0, this.low << (numBits - 32), this.unsigned);\r\n };\r\n\r\n /**\r\n * Returns this Long with bits shifted to the left by the given amount. This is an alias of {@link Long#shiftLeft}.\r\n * @function\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\n LongPrototype.shl = LongPrototype.shiftLeft;\r\n\r\n /**\r\n * Returns this Long with bits arithmetically shifted to the right by the given amount.\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\n LongPrototype.shiftRight = function shiftRight(numBits) {\r\n if (isLong(numBits))\r\n numBits = numBits.toInt();\r\n if ((numBits &= 63) === 0)\r\n return this;\r\n else if (numBits < 32)\r\n return fromBits((this.low >>> numBits) | (this.high << (32 - numBits)), this.high >> numBits, this.unsigned);\r\n else\r\n return fromBits(this.high >> (numBits - 32), this.high >= 0 ? 0 : -1, this.unsigned);\r\n };\r\n\r\n /**\r\n * Returns this Long with bits arithmetically shifted to the right by the given amount. This is an alias of {@link Long#shiftRight}.\r\n * @function\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\n LongPrototype.shr = LongPrototype.shiftRight;\r\n\r\n /**\r\n * Returns this Long with bits logically shifted to the right by the given amount.\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\n LongPrototype.shiftRightUnsigned = function shiftRightUnsigned(numBits) {\r\n if (isLong(numBits))\r\n numBits = numBits.toInt();\r\n numBits &= 63;\r\n if (numBits === 0)\r\n return this;\r\n else {\r\n var high = this.high;\r\n if (numBits < 32) {\r\n var low = this.low;\r\n return fromBits((low >>> numBits) | (high << (32 - numBits)), high >>> numBits, this.unsigned);\r\n } else if (numBits === 32)\r\n return fromBits(high, 0, this.unsigned);\r\n else\r\n return fromBits(high >>> (numBits - 32), 0, this.unsigned);\r\n }\r\n };\r\n\r\n /**\r\n * Returns this Long with bits logically shifted to the right by the given amount. This is an alias of {@link Long#shiftRightUnsigned}.\r\n * @function\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\n LongPrototype.shru = LongPrototype.shiftRightUnsigned;\r\n\r\n /**\r\n * Converts this Long to signed.\r\n * @returns {!Long} Signed long\r\n */\r\n LongPrototype.toSigned = function toSigned() {\r\n if (!this.unsigned)\r\n return this;\r\n return fromBits(this.low, this.high, false);\r\n };\r\n\r\n /**\r\n * Converts this Long to unsigned.\r\n * @returns {!Long} Unsigned long\r\n */\r\n LongPrototype.toUnsigned = function toUnsigned() {\r\n if (this.unsigned)\r\n return this;\r\n return fromBits(this.low, this.high, true);\r\n };\r\n\r\n /**\r\n * Converts this Long to its byte representation.\r\n * @param {boolean=} le Whether little or big endian, defaults to big endian\r\n * @returns {!Array.<number>} Byte representation\r\n */\r\n LongPrototype.toBytes = function(le) {\r\n return le ? this.toBytesLE() : this.toBytesBE();\r\n }\r\n\r\n /**\r\n * Converts this Long to its little endian byte representation.\r\n * @returns {!Array.<number>} Little endian byte representation\r\n */\r\n LongPrototype.toBytesLE = function() {\r\n var hi = this.high,\r\n lo = this.low;\r\n return [\r\n lo & 0xff,\r\n (lo >>> 8) & 0xff,\r\n (lo >>> 16) & 0xff,\r\n (lo >>> 24) & 0xff,\r\n hi & 0xff,\r\n (hi >>> 8) & 0xff,\r\n (hi >>> 16) & 0xff,\r\n (hi >>> 24) & 0xff\r\n ];\r\n }\r\n\r\n /**\r\n * Converts this Long to its big endian byte representation.\r\n * @returns {!Array.<number>} Big endian byte representation\r\n */\r\n LongPrototype.toBytesBE = function() {\r\n var hi = this.high,\r\n lo = this.low;\r\n return [\r\n (hi >>> 24) & 0xff,\r\n (hi >>> 16) & 0xff,\r\n (hi >>> 8) & 0xff,\r\n hi & 0xff,\r\n (lo >>> 24) & 0xff,\r\n (lo >>> 16) & 0xff,\r\n (lo >>> 8) & 0xff,\r\n lo & 0xff\r\n ];\r\n }\r\n\r\n return Long;\r\n});\r\n","/*\r\n Copyright 2013-2014 Daniel Wirtz <dcode@dcode.io>\r\n\r\n Licensed under the Apache License, Version 2.0 (the \"License\");\r\n you may not use this file except in compliance with the License.\r\n You may obtain a copy of the License at\r\n\r\n http://www.apache.org/licenses/LICENSE-2.0\r\n\r\n Unless required by applicable law or agreed to in writing, software\r\n distributed under the License is distributed on an \"AS IS\" BASIS,\r\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n See the License for the specific language governing permissions and\r\n limitations under the License.\r\n */\r\n\r\n/**\r\n * @license bytebuffer.js (c) 2015 Daniel Wirtz <dcode@dcode.io>\r\n * Backing buffer / Accessor: node Buffer\r\n * Released under the Apache License, Version 2.0\r\n * see: https://github.com/dcodeIO/bytebuffer.js for details\r\n */\r\nmodule.exports = (function() {\r\n \"use strict\";\r\n\r\n var buffer = require(\"buffer\"),\r\n Buffer = buffer[\"Buffer\"],\r\n Long = require(\"long\"),\r\n memcpy = null; try { memcpy = require(\"memcpy\"); } catch (e) {}\r\n\r\n /**\r\n * Constructs a new ByteBuffer.\r\n * @class The swiss army knife for binary data in JavaScript.\r\n * @exports ByteBuffer\r\n * @constructor\r\n * @param {number=} capacity Initial capacity. Defaults to {@link ByteBuffer.DEFAULT_CAPACITY}.\r\n * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to\r\n * {@link ByteBuffer.DEFAULT_ENDIAN}.\r\n * @param {boolean=} noAssert Whether to skip assertions of offsets and values. Defaults to\r\n * {@link ByteBuffer.DEFAULT_NOASSERT}.\r\n * @expose\r\n */\r\n var ByteBuffer = function(capacity, littleEndian, noAssert) {\r\n if (typeof capacity === 'undefined')\r\n capacity = ByteBuffer.DEFAULT_CAPACITY;\r\n if (typeof littleEndian === 'undefined')\r\n littleEndian = ByteBuffer.DEFAULT_ENDIAN;\r\n if (typeof noAssert === 'undefined')\r\n noAssert = ByteBuffer.DEFAULT_NOASSERT;\r\n if (!noAssert) {\r\n capacity = capacity | 0;\r\n if (capacity < 0)\r\n throw RangeError(\"Illegal capacity\");\r\n littleEndian = !!littleEndian;\r\n noAssert = !!noAssert;\r\n }\r\n\r\n /**\r\n * Backing node Buffer.\r\n * @type {!Buffer}\r\n * @expose\r\n */\r\n this.buffer = capacity === 0 ? EMPTY_BUFFER : new Buffer(capacity);\r\n\r\n /**\r\n * Absolute read/write offset.\r\n * @type {number}\r\n * @expose\r\n * @see ByteBuffer#flip\r\n * @see ByteBuffer#clear\r\n */\r\n this.offset = 0;\r\n\r\n /**\r\n * Marked offset.\r\n * @type {number}\r\n * @expose\r\n * @see ByteBuffer#mark\r\n * @see ByteBuffer#reset\r\n */\r\n this.markedOffset = -1;\r\n\r\n /**\r\n * Absolute limit of the contained data. Set to the backing buffer's capacity upon allocation.\r\n * @type {number}\r\n * @expose\r\n * @see ByteBuffer#flip\r\n * @see ByteBuffer#clear\r\n */\r\n this.limit = capacity;\r\n\r\n /**\r\n * Whether to use little endian byte order, defaults to `false` for big endian.\r\n * @type {boolean}\r\n * @expose\r\n */\r\n this.littleEndian = littleEndian;\r\n\r\n /**\r\n * Whether to skip assertions of offsets and values, defaults to `false`.\r\n * @type {boolean}\r\n * @expose\r\n */\r\n this.noAssert = noAssert;\r\n };\r\n\r\n /**\r\n * ByteBuffer version.\r\n * @type {string}\r\n * @const\r\n * @expose\r\n */\r\n ByteBuffer.VERSION = \"5.0.1\";\r\n\r\n /**\r\n * Little endian constant that can be used instead of its boolean value. Evaluates to `true`.\r\n * @type {boolean}\r\n * @const\r\n * @expose\r\n */\r\n ByteBuffer.LITTLE_ENDIAN = true;\r\n\r\n /**\r\n * Big endian constant that can be used instead of its boolean value. Evaluates to `false`.\r\n * @type {boolean}\r\n * @const\r\n * @expose\r\n */\r\n ByteBuffer.BIG_ENDIAN = false;\r\n\r\n /**\r\n * Default initial capacity of `16`.\r\n * @type {number}\r\n * @expose\r\n */\r\n ByteBuffer.DEFAULT_CAPACITY = 16;\r\n\r\n /**\r\n * Default endianess of `false` for big endian.\r\n * @type {boolean}\r\n * @expose\r\n */\r\n ByteBuffer.DEFAULT_ENDIAN = ByteBuffer.BIG_ENDIAN;\r\n\r\n /**\r\n * Default no assertions flag of `false`.\r\n * @type {boolean}\r\n * @expose\r\n */\r\n ByteBuffer.DEFAULT_NOASSERT = false;\r\n\r\n /**\r\n * A `Long` class for representing a 64-bit two's-complement integer value.\r\n * @type {!Long}\r\n * @const\r\n * @see https://npmjs.org/package/long\r\n * @expose\r\n */\r\n ByteBuffer.Long = Long;\r\n\r\n /**\r\n * @alias ByteBuffer.prototype\r\n * @inner\r\n */\r\n var ByteBufferPrototype = ByteBuffer.prototype;\r\n\r\n /**\r\n * An indicator used to reliably determine if an object is a ByteBuffer or not.\r\n * @type {boolean}\r\n * @const\r\n * @expose\r\n * @private\r\n */\r\n ByteBufferPrototype.__isByteBuffer__;\r\n\r\n Object.defineProperty(ByteBufferPrototype, \"__isByteBuffer__\", {\r\n value: true,\r\n enumerable: false,\r\n configurable: false\r\n });\r\n\r\n // helpers\r\n\r\n /**\r\n * @type {!Buffer}\r\n * @inner\r\n */\r\n var EMPTY_BUFFER = new Buffer(0);\r\n\r\n /**\r\n * String.fromCharCode reference for compile-time renaming.\r\n * @type {function(...number):string}\r\n * @inner\r\n */\r\n var stringFromCharCode = String.fromCharCode;\r\n\r\n /**\r\n * Creates a source function for a string.\r\n * @param {string} s String to read from\r\n * @returns {function():number|null} Source function returning the next char code respectively `null` if there are\r\n * no more characters left.\r\n * @throws {TypeError} If the argument is invalid\r\n * @inner\r\n */\r\n function stringSource(s) {\r\n var i=0; return function() {\r\n return i < s.length ? s.charCodeAt(i++) : null;\r\n };\r\n }\r\n\r\n /**\r\n * Creates a destination function for a string.\r\n * @returns {function(number=):undefined|string} Destination function successively called with the next char code.\r\n * Returns the final string when called without arguments.\r\n * @inner\r\n */\r\n function stringDestination() {\r\n var cs = [], ps = []; return function() {\r\n if (arguments.length === 0)\r\n return ps.join('')+stringFromCharCode.apply(String, cs);\r\n if (cs.length + arguments.length > 1024)\r\n ps.push(stringFromCharCode.apply(String, cs)),\r\n cs.length = 0;\r\n Array.prototype.push.apply(cs, arguments);\r\n };\r\n }\r\n\r\n /**\r\n * Gets the accessor type.\r\n * @returns {Function} `Buffer` under node.js, `Uint8Array` respectively `DataView` in the browser (classes)\r\n * @expose\r\n */\r\n ByteBuffer.accessor = function() {\r\n return Buffer;\r\n };\r\n /**\r\n * Allocates a new ByteBuffer backed by a buffer of the specified capacity.\r\n * @param {number=} capacity Initial capacity. Defaults to {@link ByteBuffer.DEFAULT_CAPACITY}.\r\n * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to\r\n * {@link ByteBuffer.DEFAULT_ENDIAN}.\r\n * @param {boolean=} noAssert Whether to skip assertions of offsets and values. Defaults to\r\n * {@link ByteBuffer.DEFAULT_NOASSERT}.\r\n * @returns {!ByteBuffer}\r\n * @expose\r\n */\r\n ByteBuffer.allocate = function(capacity, littleEndian, noAssert) {\r\n return new ByteBuffer(capacity, littleEndian, noAssert);\r\n };\r\n\r\n /**\r\n * Concatenates multiple ByteBuffers into one.\r\n * @param {!Array.<!ByteBuffer|!Buffer|!ArrayBuffer|!Uint8Array|string>} buffers Buffers to concatenate\r\n * @param {(string|boolean)=} encoding String encoding if `buffers` contains a string (\"base64\", \"hex\", \"binary\",\r\n * defaults to \"utf8\")\r\n * @param {boolean=} littleEndian Whether to use little or big endian byte order for the resulting ByteBuffer. Defaults\r\n * to {@link ByteBuffer.DEFAULT_ENDIAN}.\r\n * @param {boolean=} noAssert Whether to skip assertions of offsets and values for the resulting ByteBuffer. Defaults to\r\n * {@link ByteBuffer.DEFAULT_NOASSERT}.\r\n * @returns {!ByteBuffer} Concatenated ByteBuffer\r\n * @expose\r\n */\r\n ByteBuffer.concat = function(buffers, encoding, littleEndian, noAssert) {\r\n if (typeof encoding === 'boolean' || typeof encoding !== 'string') {\r\n noAssert = littleEndian;\r\n littleEndian = encoding;\r\n encoding = undefined;\r\n }\r\n var capacity = 0;\r\n for (var i=0, k=buffers.length, length; i<k; ++i) {\r\n if (!ByteBuffer.isByteBuffer(buffers[i]))\r\n buffers[i] = ByteBuffer.wrap(buffers[i], encoding);\r\n length = buffers[i].limit - buffers[i].offset;\r\n if (length > 0) capacity += length;\r\n }\r\n if (capacity === 0)\r\n return new ByteBuffer(0, littleEndian, noAssert);\r\n var bb = new ByteBuffer(capacity, littleEndian, noAssert),\r\n bi;\r\n i=0; while (i<k) {\r\n bi = buffers[i++];\r\n length = bi.limit - bi.offset;\r\n if (length <= 0) continue;\r\n bi.buffer.copy(bb.buffer, bb.offset, bi.offset, bi.limit);\r\n bb.offset += length;\r\n }\r\n bb.limit = bb.offset;\r\n bb.offset = 0;\r\n return bb;\r\n };\r\n\r\n /**\r\n * Tests if the specified type is a ByteBuffer.\r\n * @param {*} bb ByteBuffer to test\r\n * @returns {boolean} `true` if it is a ByteBuffer, otherwise `false`\r\n * @expose\r\n */\r\n ByteBuffer.isByteBuffer = function(bb) {\r\n return (bb && bb[\"__isByteBuffer__\"]) === true;\r\n };\r\n /**\r\n * Gets the backing buffer type.\r\n * @returns {Function} `Buffer` under node.js, `ArrayBuffer` in the browser (classes)\r\n * @expose\r\n */\r\n ByteBuffer.type = function() {\r\n return Buffer;\r\n };\r\n /**\r\n * Wraps a buffer or a string. Sets the allocated ByteBuffer's {@link ByteBuffer#offset} to `0` and its\r\n * {@link ByteBuffer#limit} to the length of the wrapped data.\r\n * @param {!ByteBuffer|!Buffer|!ArrayBuffer|!Uint8Array|string|!Array.<number>} buffer Anything that can be wrapped\r\n * @param {(string|boolean)=} encoding String encoding if `buffer` is a string (\"base64\", \"hex\", \"binary\", defaults to\r\n * \"utf8\")\r\n * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to\r\n * {@link ByteBuffer.DEFAULT_ENDIAN}.\r\n * @param {boolean=} noAssert Whether to skip assertions of offsets and values. Defaults to\r\n * {@link ByteBuffer.DEFAULT_NOASSERT}.\r\n * @returns {!ByteBuffer} A ByteBuffer wrapping `buffer`\r\n * @expose\r\n */\r\n ByteBuffer.wrap = function(buffer, encoding, littleEndian, noAssert) {\r\n if (typeof encoding !== 'string') {\r\n noAssert = littleEndian;\r\n littleEndian = encoding;\r\n encoding = undefined;\r\n }\r\n if (typeof buffer === 'string') {\r\n if (typeof encoding === 'undefined')\r\n encoding = \"utf8\";\r\n switch (encoding) {\r\n case \"base64\":\r\n return ByteBuffer.fromBase64(buffer, littleEndian);\r\n case \"hex\":\r\n return ByteBuffer.fromHex(buffer, littleEndian);\r\n case \"binary\":\r\n return ByteBuffer.fromBinary(buffer, littleEndian);\r\n case \"utf8\":\r\n return ByteBuffer.fromUTF8(buffer, littleEndian);\r\n case \"debug\":\r\n return ByteBuffer.fromDebug(buffer, littleEndian);\r\n default:\r\n throw Error(\"Unsupported encoding: \"+encoding);\r\n }\r\n }\r\n if (buffer === null || typeof buffer !== 'object')\r\n throw TypeError(\"Illegal buffer\");\r\n var bb;\r\n if (ByteBuffer.isByteBuffer(buffer)) {\r\n bb = ByteBufferPrototype.clone.call(buffer);\r\n bb.markedOffset = -1;\r\n return bb;\r\n }\r\n var i = 0,\r\n k = 0,\r\n b;\r\n if (buffer instanceof Uint8Array) { // Extract bytes from Uint8Array\r\n b = new Buffer(buffer.length);\r\n if (memcpy) { // Fast\r\n memcpy(b, 0, buffer.buffer, buffer.byteOffset, buffer.byteOffset + buffer.length);\r\n } else { // Slow\r\n for (i=0, k=buffer.length; i<k; ++i)\r\n b[i] = buffer[i];\r\n }\r\n buffer = b;\r\n } else if (buffer instanceof ArrayBuffer) { // Convert ArrayBuffer to Buffer\r\n b = new Buffer(buffer.byteLength);\r\n if (memcpy) { // Fast\r\n memcpy(b, 0, buffer, 0, buffer.byteLength);\r\n } else { // Slow\r\n buffer = new Uint8Array(buffer);\r\n for (i=0, k=buffer.length; i<k; ++i) {\r\n b[i] = buffer[i];\r\n }\r\n }\r\n buffer = b;\r\n } else if (!(buffer instanceof Buffer)) { // Create from octets if it is an error, otherwise fail\r\n if (Object.prototype.toString.call(buffer) !== \"[object Array]\")\r\n throw TypeError(\"Illegal buffer\");\r\n buffer = new Buffer(buffer);\r\n }\r\n bb = new ByteBuffer(0, littleEndian, noAssert);\r\n if (buffer.length > 0) { // Avoid references to more than one EMPTY_BUFFER\r\n bb.buffer = buffer;\r\n bb.limit = buffer.length;\r\n }\r\n return bb;\r\n };\r\n\r\n /**\r\n * Writes the array as a bitset.\r\n * @param {Array<boolean>} value Array of booleans to write\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `length` if omitted.\r\n * @returns {!ByteBuffer}\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeBitSet = function(value, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (!(value instanceof Array))\r\n throw TypeError(\"Illegal BitSet: Not an array\");\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.length)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.length);\n }\r\n\r\n var start = offset,\r\n bits = value.length,\r\n bytes = (bits >> 3),\r\n bit = 0,\r\n k;\r\n\r\n offset += this.writeVarint32(bits,offset);\r\n\r\n while(bytes--) {\r\n k = (!!value[bit++] & 1) |\r\n ((!!value[bit++] & 1) << 1) |\r\n ((!!value[bit++] & 1) << 2) |\r\n ((!!value[bit++] & 1) << 3) |\r\n ((!!value[bit++] & 1) << 4) |\r\n ((!!value[bit++] & 1) << 5) |\r\n ((!!value[bit++] & 1) << 6) |\r\n ((!!value[bit++] & 1) << 7);\r\n this.writeByte(k,offset++);\r\n }\r\n\r\n if(bit < bits) {\r\n var m = 0; k = 0;\r\n while(bit < bits) k = k | ((!!value[bit++] & 1) << (m++));\r\n this.writeByte(k,offset++);\r\n }\r\n\r\n if (relative) {\r\n this.offset = offset;\r\n return this;\r\n }\r\n return offset - start;\r\n }\r\n\r\n /**\r\n * Reads a BitSet as an array of booleans.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `length` if omitted.\r\n * @returns {Array<boolean>\r\n * @expose\r\n */\r\n ByteBufferPrototype.readBitSet = function(offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n\r\n var ret = this.readVarint32(offset),\r\n bits = ret.value,\r\n bytes = (bits >> 3),\r\n bit = 0,\r\n value = [],\r\n k;\r\n\r\n offset += ret.length;\r\n\r\n while(bytes--) {\r\n k = this.readByte(offset++);\r\n value[bit++] = !!(k & 0x01);\r\n value[bit++] = !!(k & 0x02);\r\n value[bit++] = !!(k & 0x04);\r\n value[bit++] = !!(k & 0x08);\r\n value[bit++] = !!(k & 0x10);\r\n value[bit++] = !!(k & 0x20);\r\n value[bit++] = !!(k & 0x40);\r\n value[bit++] = !!(k & 0x80);\r\n }\r\n\r\n if(bit < bits) {\r\n var m = 0;\r\n k = this.readByte(offset++);\r\n while(bit < bits) value[bit++] = !!((k >> (m++)) & 1);\r\n }\r\n\r\n if (relative) {\r\n this.offset = offset;\r\n }\r\n return value;\r\n }\r\n /**\r\n * Reads the specified number of bytes.\r\n * @param {number} length Number of bytes to read\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `length` if omitted.\r\n * @returns {!ByteBuffer}\r\n * @expose\r\n */\r\n ByteBufferPrototype.readBytes = function(length, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + length > this.buffer.length)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+length+\") <= \"+this.buffer.length);\n }\r\n var slice = this.slice(offset, offset + length);\r\n if (relative) this.offset += length;\n return slice;\r\n };\r\n\r\n /**\r\n * Writes a payload of bytes. This is an alias of {@link ByteBuffer#append}.\r\n * @function\r\n * @param {!ByteBuffer|!Buffer|!ArrayBuffer|!Uint8Array|string} source Data to write. If `source` is a ByteBuffer, its\r\n * offsets will be modified according to the performed read operation.\r\n * @param {(string|number)=} encoding Encoding if `data` is a string (\"base64\", \"hex\", \"binary\", defaults to \"utf8\")\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * written if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeBytes = ByteBufferPrototype.append;\r\n\r\n // types/ints/int8\r\n\r\n /**\r\n * Writes an 8bit signed integer.\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `1` if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeInt8 = function(value, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof value !== 'number' || value % 1 !== 0)\n throw TypeError(\"Illegal value: \"+value+\" (not an integer)\");\n value |= 0;\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.length)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.length);\n }\r\n offset += 1;\n var capacity0 = this.buffer.length;\n if (offset > capacity0)\n this.resize((capacity0 *= 2) > offset ? capacity0 : offset);\n offset -= 1;\n this.buffer[offset] = value;\r\n if (relative) this.offset += 1;\n return this;\r\n };\r\n\r\n /**\r\n * Writes an 8bit signed integer. This is an alias of {@link ByteBuffer#writeInt8}.\r\n * @function\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `1` if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeByte = ByteBufferPrototype.writeInt8;\r\n\r\n /**\r\n * Reads an 8bit signed integer.\r\n * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `1` if omitted.\r\n * @returns {number} Value read\r\n * @expose\r\n */\r\n ByteBufferPrototype.readInt8 = function(offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 1 > this.buffer.length)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+1+\") <= \"+this.buffer.length);\n }\r\n var value = this.buffer[offset];\r\n if ((value & 0x80) === 0x80) value = -(0xFF - value + 1); // Cast to signed\r\n if (relative) this.offset += 1;\n return value;\r\n };\r\n\r\n /**\r\n * Reads an 8bit signed integer. This is an alias of {@link ByteBuffer#readInt8}.\r\n * @function\r\n * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `1` if omitted.\r\n * @returns {number} Value read\r\n * @expose\r\n */\r\n ByteBufferPrototype.readByte = ByteBufferPrototype.readInt8;\r\n\r\n /**\r\n * Writes an 8bit unsigned integer.\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `1` if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeUint8 = function(value, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof value !== 'number' || value % 1 !== 0)\n throw TypeError(\"Illegal value: \"+value+\" (not an integer)\");\n value >>>= 0;\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.length)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.length);\n }\r\n offset += 1;\n var capacity1 = this.buffer.length;\n if (offset > capacity1)\n this.resize((capacity1 *= 2) > offset ? capacity1 : offset);\n offset -= 1;\n this.buffer[offset] = value;\r\n if (relative) this.offset += 1;\n return this;\r\n };\r\n\r\n /**\r\n * Writes an 8bit unsigned integer. This is an alias of {@link ByteBuffer#writeUint8}.\r\n * @function\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `1` if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeUInt8 = ByteBufferPrototype.writeUint8;\r\n\r\n /**\r\n * Reads an 8bit unsigned integer.\r\n * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `1` if omitted.\r\n * @returns {number} Value read\r\n * @expose\r\n */\r\n ByteBufferPrototype.readUint8 = function(offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 1 > this.buffer.length)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+1+\") <= \"+this.buffer.length);\n }\r\n var value = this.buffer[offset];\r\n if (relative) this.offset += 1;\n return value;\r\n };\r\n\r\n /**\r\n * Reads an 8bit unsigned integer. This is an alias of {@link ByteBuffer#readUint8}.\r\n * @function\r\n * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `1` if omitted.\r\n * @returns {number} Value read\r\n * @expose\r\n */\r\n ByteBufferPrototype.readUInt8 = ByteBufferPrototype.readUint8;\r\n\r\n // types/ints/int16\r\n\r\n /**\r\n * Writes a 16bit signed integer.\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `2` if omitted.\r\n * @throws {TypeError} If `offset` or `value` is not a valid number\r\n * @throws {RangeError} If `offset` is out of bounds\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeInt16 = function(value, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof value !== 'number' || value % 1 !== 0)\n throw TypeError(\"Illegal value: \"+value+\" (not an integer)\");\n value |= 0;\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.length)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.length);\n }\r\n offset += 2;\n var capacity2 = this.buffer.length;\n if (offset > capacity2)\n this.resize((capacity2 *= 2) > offset ? capacity2 : offset);\n offset -= 2;\n if (this.littleEndian) {\r\n this.buffer[offset+1] = (value & 0xFF00) >>> 8;\r\n this.buffer[offset ] = value & 0x00FF;\r\n } else {\r\n this.buffer[offset] = (value & 0xFF00) >>> 8;\r\n this.buffer[offset+1] = value & 0x00FF;\r\n }\r\n if (relative) this.offset += 2;\n return this;\r\n };\r\n\r\n /**\r\n * Writes a 16bit signed integer. This is an alias of {@link ByteBuffer#writeInt16}.\r\n * @function\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `2` if omitted.\r\n * @throws {TypeError} If `offset` or `value` is not a valid number\r\n * @throws {RangeError} If `offset` is out of bounds\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeShort = ByteBufferPrototype.writeInt16;\r\n\r\n /**\r\n * Reads a 16bit signed integer.\r\n * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `2` if omitted.\r\n * @returns {number} Value read\r\n * @throws {TypeError} If `offset` is not a valid number\r\n * @throws {RangeError} If `offset` is out of bounds\r\n * @expose\r\n */\r\n ByteBufferPrototype.readInt16 = function(offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 2 > this.buffer.length)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+2+\") <= \"+this.buffer.length);\n }\r\n var value = 0;\r\n if (this.littleEndian) {\r\n value = this.buffer[offset ];\r\n value |= this.buffer[offset+1] << 8;\r\n } else {\r\n value = this.buffer[offset ] << 8;\r\n value |= this.buffer[offset+1];\r\n }\r\n if ((value & 0x8000) === 0x8000) value = -(0xFFFF - value + 1); // Cast to signed\r\n if (relative) this.offset += 2;\n return value;\r\n };\r\n\r\n /**\r\n * Reads a 16bit signed integer. This is an alias of {@link ByteBuffer#readInt16}.\r\n * @function\r\n * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `2` if omitted.\r\n * @returns {number} Value read\r\n * @throws {TypeError} If `offset` is not a valid number\r\n * @throws {RangeError} If `offset` is out of bounds\r\n * @expose\r\n */\r\n ByteBufferPrototype.readShort = ByteBufferPrototype.readInt16;\r\n\r\n /**\r\n * Writes a 16bit unsigned integer.\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `2` if omitted.\r\n * @throws {TypeError} If `offset` or `value` is not a valid number\r\n * @throws {RangeError} If `offset` is out of bounds\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeUint16 = function(value, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof value !== 'number' || value % 1 !== 0)\n throw TypeError(\"Illegal value: \"+value+\" (not an integer)\");\n value >>>= 0;\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.length)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.length);\n }\r\n offset += 2;\n var capacity3 = this.buffer.length;\n if (offset > capacity3)\n this.resize((capacity3 *= 2) > offset ? capacity3 : offset);\n offset -= 2;\n if (this.littleEndian) {\r\n this.buffer[offset+1] = (value & 0xFF00) >>> 8;\r\n this.buffer[offset ] = value & 0x00FF;\r\n } else {\r\n this.buffer[offset] = (value & 0xFF00) >>> 8;\r\n this.buffer[offset+1] = value & 0x00FF;\r\n }\r\n if (relative) this.offset += 2;\n return this;\r\n };\r\n\r\n /**\r\n * Writes a 16bit unsigned integer. This is an alias of {@link ByteBuffer#writeUint16}.\r\n * @function\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and advance {@link ByteBuffer#offset} by `2` if omitted.\r\n * @throws {TypeError} If `offset` or `value` is not a valid number\r\n * @throws {RangeError} If `offset` is out of bounds\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeUInt16 = ByteBufferPrototype.writeUint16;\r\n\r\n /**\r\n * Reads a 16bit unsigned integer.\r\n * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `2` if omitted.\r\n * @returns {number} Value read\r\n * @throws {TypeError} If `offset` is not a valid number\r\n * @throws {RangeError} If `offset` is out of bounds\r\n * @expose\r\n */\r\n ByteBufferPrototype.readUint16 = function(offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 2 > this.buffer.length)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+2+\") <= \"+this.buffer.length);\n }\r\n var value = 0;\r\n if (this.littleEndian) {\r\n value = this.buffer[offset ];\r\n value |= this.buffer[offset+1] << 8;\r\n } else {\r\n value = this.buffer[offset ] << 8;\r\n value |= this.buffer[offset+1];\r\n }\r\n if (relative) this.offset += 2;\n return value;\r\n };\r\n\r\n /**\r\n * Reads a 16bit unsigned integer. This is an alias of {@link ByteBuffer#readUint16}.\r\n * @function\r\n * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `2` if omitted.\r\n * @returns {number} Value read\r\n * @throws {TypeError} If `offset` is not a valid number\r\n * @throws {RangeError} If `offset` is out of bounds\r\n * @expose\r\n */\r\n ByteBufferPrototype.readUInt16 = ByteBufferPrototype.readUint16;\r\n\r\n // types/ints/int32\r\n\r\n /**\r\n * Writes a 32bit signed integer.\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `4` if omitted.\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeInt32 = function(value, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof value !== 'number' || value % 1 !== 0)\n throw TypeError(\"Illegal value: \"+value+\" (not an integer)\");\n value |= 0;\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.length)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.length);\n }\r\n offset += 4;\n var capacity4 = this.buffer.length;\n if (offset > capacity4)\n this.resize((capacity4 *= 2) > offset ? capacity4 : offset);\n offset -= 4;\n if (this.littleEndian) {\n this.buffer[offset+3] = (value >>> 24) & 0xFF;\n this.buffer[offset+2] = (value >>> 16) & 0xFF;\n this.buffer[offset+1] = (value >>> 8) & 0xFF;\n this.buffer[offset ] = value & 0xFF;\n } else {\n this.buffer[offset ] = (value >>> 24) & 0xFF;\n this.buffer[offset+1] = (value >>> 16) & 0xFF;\n this.buffer[offset+2] = (value >>> 8) & 0xFF;\n this.buffer[offset+3] = value & 0xFF;\n }\n if (relative) this.offset += 4;\n return this;\r\n };\r\n\r\n /**\r\n * Writes a 32bit signed integer. This is an alias of {@link ByteBuffer#writeInt32}.\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `4` if omitted.\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeInt = ByteBufferPrototype.writeInt32;\r\n\r\n /**\r\n * Reads a 32bit signed integer.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `4` if omitted.\r\n * @returns {number} Value read\r\n * @expose\r\n */\r\n ByteBufferPrototype.readInt32 = function(offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 4 > this.buffer.length)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+4+\") <= \"+this.buffer.length);\n }\r\n var value = 0;\r\n if (this.littleEndian) {\n value = this.buffer[offset+2] << 16;\n value |= this.buffer[offset+1] << 8;\n value |= this.buffer[offset ];\n value += this.buffer[offset+3] << 24 >>> 0;\n } else {\n value = this.buffer[offset+1] << 16;\n value |= this.buffer[offset+2] << 8;\n value |= this.buffer[offset+3];\n value += this.buffer[offset ] << 24 >>> 0;\n }\n value |= 0; // Cast to signed\r\n if (relative) this.offset += 4;\n return value;\r\n };\r\n\r\n /**\r\n * Reads a 32bit signed integer. This is an alias of {@link ByteBuffer#readInt32}.\r\n * @param {number=} offset Offset to read from. Will use and advance {@link ByteBuffer#offset} by `4` if omitted.\r\n * @returns {number} Value read\r\n * @expose\r\n */\r\n ByteBufferPrototype.readInt = ByteBufferPrototype.readInt32;\r\n\r\n /**\r\n * Writes a 32bit unsigned integer.\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `4` if omitted.\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeUint32 = function(value, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof value !== 'number' || value % 1 !== 0)\n throw TypeError(\"Illegal value: \"+value+\" (not an integer)\");\n value >>>= 0;\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.length)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.length);\n }\r\n offset += 4;\n var capacity5 = this.buffer.length;\n if (offset > capacity5)\n this.resize((capacity5 *= 2) > offset ? capacity5 : offset);\n offset -= 4;\n if (this.littleEndian) {\n this.buffer[offset+3] = (value >>> 24) & 0xFF;\n this.buffer[offset+2] = (value >>> 16) & 0xFF;\n this.buffer[offset+1] = (value >>> 8) & 0xFF;\n this.buffer[offset ] = value & 0xFF;\n } else {\n this.buffer[offset ] = (value >>> 24) & 0xFF;\n this.buffer[offset+1] = (value >>> 16) & 0xFF;\n this.buffer[offset+2] = (value >>> 8) & 0xFF;\n this.buffer[offset+3] = value & 0xFF;\n }\n if (relative) this.offset += 4;\n return this;\r\n };\r\n\r\n /**\r\n * Writes a 32bit unsigned integer. This is an alias of {@link ByteBuffer#writeUint32}.\r\n * @function\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `4` if omitted.\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeUInt32 = ByteBufferPrototype.writeUint32;\r\n\r\n /**\r\n * Reads a 32bit unsigned integer.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `4` if omitted.\r\n * @returns {number} Value read\r\n * @expose\r\n */\r\n ByteBufferPrototype.readUint32 = function(offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 4 > this.buffer.length)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+4+\") <= \"+this.buffer.length);\n }\r\n var value = 0;\r\n if (this.littleEndian) {\n value = this.buffer[offset+2] << 16;\n value |= this.buffer[offset+1] << 8;\n value |= this.buffer[offset ];\n value += this.buffer[offset+3] << 24 >>> 0;\n } else {\n value = this.buffer[offset+1] << 16;\n value |= this.buffer[offset+2] << 8;\n value |= this.buffer[offset+3];\n value += this.buffer[offset ] << 24 >>> 0;\n }\n if (relative) this.offset += 4;\n return value;\r\n };\r\n\r\n /**\r\n * Reads a 32bit unsigned integer. This is an alias of {@link ByteBuffer#readUint32}.\r\n * @function\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `4` if omitted.\r\n * @returns {number} Value read\r\n * @expose\r\n */\r\n ByteBufferPrototype.readUInt32 = ByteBufferPrototype.readUint32;\r\n\r\n // types/ints/int64\r\n\r\n if (Long) {\r\n\r\n /**\r\n * Writes a 64bit signed integer.\r\n * @param {number|!Long} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `8` if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeInt64 = function(value, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof value === 'number')\n value = Long.fromNumber(value);\n else if (typeof value === 'string')\n value = Long.fromString(value);\n else if (!(value && value instanceof Long))\n throw TypeError(\"Illegal value: \"+value+\" (not an integer or Long)\");\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.length)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.length);\n }\r\n if (typeof value === 'number')\n value = Long.fromNumber(value);\n else if (typeof value === 'string')\n value = Long.fromString(value);\n offset += 8;\n var capacity6 = this.buffer.length;\n if (offset > capacity6)\n this.resize((capacity6 *= 2) > offset ? capacity6 : offset);\n offset -= 8;\n var lo = value.low,\r\n hi = value.high;\r\n if (this.littleEndian) {\r\n this.buffer[offset+3] = (lo >>> 24) & 0xFF;\n this.buffer[offset+2] = (lo >>> 16) & 0xFF;\n this.buffer[offset+1] = (lo >>> 8) & 0xFF;\n this.buffer[offset ] = lo & 0xFF;\n offset += 4;\r\n this.buffer[offset+3] = (hi >>> 24) & 0xFF;\n this.buffer[offset+2] = (hi >>> 16) & 0xFF;\n this.buffer[offset+1] = (hi >>> 8) & 0xFF;\n this.buffer[offset ] = hi & 0xFF;\n } else {\r\n this.buffer[offset ] = (hi >>> 24) & 0xFF;\n this.buffer[offset+1] = (hi >>> 16) & 0xFF;\n this.buffer[offset+2] = (hi >>> 8) & 0xFF;\n this.buffer[offset+3] = hi & 0xFF;\n offset += 4;\r\n this.buffer[offset ] = (lo >>> 24) & 0xFF;\n this.buffer[offset+1] = (lo >>> 16) & 0xFF;\n this.buffer[offset+2] = (lo >>> 8) & 0xFF;\n this.buffer[offset+3] = lo & 0xFF;\n }\r\n if (relative) this.offset += 8;\n return this;\r\n };\r\n\r\n /**\r\n * Writes a 64bit signed integer. This is an alias of {@link ByteBuffer#writeInt64}.\r\n * @param {number|!Long} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `8` if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeLong = ByteBufferPrototype.writeInt64;\r\n\r\n /**\r\n * Reads a 64bit signed integer.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `8` if omitted.\r\n * @returns {!Long}\r\n * @expose\r\n */\r\n ByteBufferPrototype.readInt64 = function(offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 8 > this.buffer.length)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+8+\") <= \"+this.buffer.length);\n }\r\n var lo = 0,\r\n hi = 0;\r\n if (this.littleEndian) {\r\n lo = this.buffer[offset+2] << 16;\n lo |= this.buffer[offset+1] << 8;\n lo |= this.buffer[offset ];\n lo += this.buffer[offset+3] << 24 >>> 0;\n offset += 4;\r\n hi = this.buffer[offset+2] << 16;\n hi |= this.buffer[offset+1] << 8;\n hi |= this.buffer[offset ];\n hi += this.buffer[offset+3] << 24 >>> 0;\n } else {\r\n hi = this.buffer[offset+1] << 16;\n hi |= this.buffer[offset+2] << 8;\n hi |= this.buffer[offset+3];\n hi += this.buffer[offset ] << 24 >>> 0;\n offset += 4;\r\n lo = this.buffer[offset+1] << 16;\n lo |= this.buffer[offset+2] << 8;\n lo |= this.buffer[offset+3];\n lo += this.buffer[offset ] << 24 >>> 0;\n }\r\n var value = new Long(lo, hi, false);\r\n if (relative) this.offset += 8;\n return value;\r\n };\r\n\r\n /**\r\n * Reads a 64bit signed integer. This is an alias of {@link ByteBuffer#readInt64}.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `8` if omitted.\r\n * @returns {!Long}\r\n * @expose\r\n */\r\n ByteBufferPrototype.readLong = ByteBufferPrototype.readInt64;\r\n\r\n /**\r\n * Writes a 64bit unsigned integer.\r\n * @param {number|!Long} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `8` if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeUint64 = function(value, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof value === 'number')\n value = Long.fromNumber(value);\n else if (typeof value === 'string')\n value = Long.fromString(value);\n else if (!(value && value instanceof Long))\n throw TypeError(\"Illegal value: \"+value+\" (not an integer or Long)\");\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.length)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.length);\n }\r\n if (typeof value === 'number')\n value = Long.fromNumber(value);\n else if (typeof value === 'string')\n value = Long.fromString(value);\n offset += 8;\n var capacity7 = this.buffer.length;\n if (offset > capacity7)\n this.resize((capacity7 *= 2) > offset ? capacity7 : offset);\n offset -= 8;\n var lo = value.low,\r\n hi = value.high;\r\n if (this.littleEndian) {\r\n this.buffer[offset+3] = (lo >>> 24) & 0xFF;\n this.buffer[offset+2] = (lo >>> 16) & 0xFF;\n this.buffer[offset+1] = (lo >>> 8) & 0xFF;\n this.buffer[offset ] = lo & 0xFF;\n offset += 4;\r\n this.buffer[offset+3] = (hi >>> 24) & 0xFF;\n this.buffer[offset+2] = (hi >>> 16) & 0xFF;\n this.buffer[offset+1] = (hi >>> 8) & 0xFF;\n this.buffer[offset ] = hi & 0xFF;\n } else {\r\n this.buffer[offset ] = (hi >>> 24) & 0xFF;\n this.buffer[offset+1] = (hi >>> 16) & 0xFF;\n this.buffer[offset+2] = (hi >>> 8) & 0xFF;\n this.buffer[offset+3] = hi & 0xFF;\n offset += 4;\r\n this.buffer[offset ] = (lo >>> 24) & 0xFF;\n this.buffer[offset+1] = (lo >>> 16) & 0xFF;\n this.buffer[offset+2] = (lo >>> 8) & 0xFF;\n this.buffer[offset+3] = lo & 0xFF;\n }\r\n if (relative) this.offset += 8;\n return this;\r\n };\r\n\r\n /**\r\n * Writes a 64bit unsigned integer. This is an alias of {@link ByteBuffer#writeUint64}.\r\n * @function\r\n * @param {number|!Long} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `8` if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeUInt64 = ByteBufferPrototype.writeUint64;\r\n\r\n /**\r\n * Reads a 64bit unsigned integer.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `8` if omitted.\r\n * @returns {!Long}\r\n * @expose\r\n */\r\n ByteBufferPrototype.readUint64 = function(offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 8 > this.buffer.length)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+8+\") <= \"+this.buffer.length);\n }\r\n var lo = 0,\r\n hi = 0;\r\n if (this.littleEndian) {\r\n lo = this.buffer[offset+2] << 16;\n lo |= this.buffer[offset+1] << 8;\n lo |= this.buffer[offset ];\n lo += this.buffer[offset+3] << 24 >>> 0;\n offset += 4;\r\n hi = this.buffer[offset+2] << 16;\n hi |= this.buffer[offset+1] << 8;\n hi |= this.buffer[offset ];\n hi += this.buffer[offset+3] << 24 >>> 0;\n } else {\r\n hi = this.buffer[offset+1] << 16;\n hi |= this.buffer[offset+2] << 8;\n hi |= this.buffer[offset+3];\n hi += this.buffer[offset ] << 24 >>> 0;\n offset += 4;\r\n lo = this.buffer[offset+1] << 16;\n lo |= this.buffer[offset+2] << 8;\n lo |= this.buffer[offset+3];\n lo += this.buffer[offset ] << 24 >>> 0;\n }\r\n var value = new Long(lo, hi, true);\r\n if (relative) this.offset += 8;\n return value;\r\n };\r\n\r\n /**\r\n * Reads a 64bit unsigned integer. This is an alias of {@link ByteBuffer#readUint64}.\r\n * @function\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `8` if omitted.\r\n * @returns {!Long}\r\n * @expose\r\n */\r\n ByteBufferPrototype.readUInt64 = ByteBufferPrototype.readUint64;\r\n\r\n } // Long\r\n\r\n\r\n // types/floats/float32\r\n\r\n /**\r\n * Writes a 32bit float.\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `4` if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeFloat32 = function(value, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof value !== 'number')\r\n throw TypeError(\"Illegal value: \"+value+\" (not a number)\");\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.length)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.length);\n }\r\n offset += 4;\n var capacity8 = this.buffer.length;\n if (offset > capacity8)\n this.resize((capacity8 *= 2) > offset ? capacity8 : offset);\n offset -= 4;\n this.littleEndian\r\n ? this.buffer.writeFloatLE(value, offset, true)\r\n : this.buffer.writeFloatBE(value, offset, true);\r\n if (relative) this.offset += 4;\n return this;\r\n };\r\n\r\n /**\r\n * Writes a 32bit float. This is an alias of {@link ByteBuffer#writeFloat32}.\r\n * @function\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `4` if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeFloat = ByteBufferPrototype.writeFloat32;\r\n\r\n /**\r\n * Reads a 32bit float.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `4` if omitted.\r\n * @returns {number}\r\n * @expose\r\n */\r\n ByteBufferPrototype.readFloat32 = function(offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 4 > this.buffer.length)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+4+\") <= \"+this.buffer.length);\n }\r\n var value = this.littleEndian\r\n ? this.buffer.readFloatLE(offset, true)\r\n : this.buffer.readFloatBE(offset, true);\r\n if (relative) this.offset += 4;\n return value;\r\n };\r\n\r\n /**\r\n * Reads a 32bit float. This is an alias of {@link ByteBuffer#readFloat32}.\r\n * @function\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `4` if omitted.\r\n * @returns {number}\r\n * @expose\r\n */\r\n ByteBufferPrototype.readFloat = ByteBufferPrototype.readFloat32;\r\n\r\n // types/floats/float64\r\n\r\n /**\r\n * Writes a 64bit float.\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `8` if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeFloat64 = function(value, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof value !== 'number')\r\n throw TypeError(\"Illegal value: \"+value+\" (not a number)\");\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.length)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.length);\n }\r\n offset += 8;\n var capacity9 = this.buffer.length;\n if (offset > capacity9)\n this.resize((capacity9 *= 2) > offset ? capacity9 : offset);\n offset -= 8;\n this.littleEndian\r\n ? this.buffer.writeDoubleLE(value, offset, true)\r\n : this.buffer.writeDoubleBE(value, offset, true);\r\n if (relative) this.offset += 8;\n return this;\r\n };\r\n\r\n /**\r\n * Writes a 64bit float. This is an alias of {@link ByteBuffer#writeFloat64}.\r\n * @function\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by `8` if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeDouble = ByteBufferPrototype.writeFloat64;\r\n\r\n /**\r\n * Reads a 64bit float.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `8` if omitted.\r\n * @returns {number}\r\n * @expose\r\n */\r\n ByteBufferPrototype.readFloat64 = function(offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 8 > this.buffer.length)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+8+\") <= \"+this.buffer.length);\n }\r\n var value = this.littleEndian\r\n ? this.buffer.readDoubleLE(offset, true)\r\n : this.buffer.readDoubleBE(offset, true);\r\n if (relative) this.offset += 8;\n return value;\r\n };\r\n\r\n /**\r\n * Reads a 64bit float. This is an alias of {@link ByteBuffer#readFloat64}.\r\n * @function\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by `8` if omitted.\r\n * @returns {number}\r\n * @expose\r\n */\r\n ByteBufferPrototype.readDouble = ByteBufferPrototype.readFloat64;\r\n\r\n\r\n // types/varints/varint32\r\n\r\n /**\r\n * Maximum number of bytes required to store a 32bit base 128 variable-length integer.\r\n * @type {number}\r\n * @const\r\n * @expose\r\n */\r\n ByteBuffer.MAX_VARINT32_BYTES = 5;\r\n\r\n /**\r\n * Calculates the actual number of bytes required to store a 32bit base 128 variable-length integer.\r\n * @param {number} value Value to encode\r\n * @returns {number} Number of bytes required. Capped to {@link ByteBuffer.MAX_VARINT32_BYTES}\r\n * @expose\r\n */\r\n ByteBuffer.calculateVarint32 = function(value) {\r\n // ref: src/google/protobuf/io/coded_stream.cc\r\n value = value >>> 0;\r\n if (value < 1 << 7 ) return 1;\r\n else if (value < 1 << 14) return 2;\r\n else if (value < 1 << 21) return 3;\r\n else if (value < 1 << 28) return 4;\r\n else return 5;\r\n };\r\n\r\n /**\r\n * Zigzag encodes a signed 32bit integer so that it can be effectively used with varint encoding.\r\n * @param {number} n Signed 32bit integer\r\n * @returns {number} Unsigned zigzag encoded 32bit integer\r\n * @expose\r\n */\r\n ByteBuffer.zigZagEncode32 = function(n) {\r\n return (((n |= 0) << 1) ^ (n >> 31)) >>> 0; // ref: src/google/protobuf/wire_format_lite.h\r\n };\r\n\r\n /**\r\n * Decodes a zigzag encoded signed 32bit integer.\r\n * @param {number} n Unsigned zigzag encoded 32bit integer\r\n * @returns {number} Signed 32bit integer\r\n * @expose\r\n */\r\n ByteBuffer.zigZagDecode32 = function(n) {\r\n return ((n >>> 1) ^ -(n & 1)) | 0; // // ref: src/google/protobuf/wire_format_lite.h\r\n };\r\n\r\n /**\r\n * Writes a 32bit base 128 variable-length integer.\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * written if omitted.\r\n * @returns {!ByteBuffer|number} this if `offset` is omitted, else the actual number of bytes written\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeVarint32 = function(value, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof value !== 'number' || value % 1 !== 0)\n throw TypeError(\"Illegal value: \"+value+\" (not an integer)\");\n value |= 0;\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.length)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.length);\n }\r\n var size = ByteBuffer.calculateVarint32(value),\r\n b;\r\n offset += size;\n var capacity10 = this.buffer.length;\n if (offset > capacity10)\n this.resize((capacity10 *= 2) > offset ? capacity10 : offset);\n offset -= size;\n value >>>= 0;\r\n while (value >= 0x80) {\r\n b = (value & 0x7f) | 0x80;\r\n this.buffer[offset++] = b;\r\n value >>>= 7;\r\n }\r\n this.buffer[offset++] = value;\r\n if (relative) {\r\n this.offset = offset;\r\n return this;\r\n }\r\n return size;\r\n };\r\n\r\n /**\r\n * Writes a zig-zag encoded (signed) 32bit base 128 variable-length integer.\r\n * @param {number} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * written if omitted.\r\n * @returns {!ByteBuffer|number} this if `offset` is omitted, else the actual number of bytes written\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeVarint32ZigZag = function(value, offset) {\r\n return this.writeVarint32(ByteBuffer.zigZagEncode32(value), offset);\r\n };\r\n\r\n /**\r\n * Reads a 32bit base 128 variable-length integer.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * written if omitted.\r\n * @returns {number|!{value: number, length: number}} The value read if offset is omitted, else the value read\r\n * and the actual number of bytes read.\r\n * @throws {Error} If it's not a valid varint. Has a property `truncated = true` if there is not enough data available\r\n * to fully decode the varint.\r\n * @expose\r\n */\r\n ByteBufferPrototype.readVarint32 = function(offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 1 > this.buffer.length)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+1+\") <= \"+this.buffer.length);\n }\r\n var c = 0,\r\n value = 0 >>> 0,\r\n b;\r\n do {\r\n if (!this.noAssert && offset > this.limit) {\r\n var err = Error(\"Truncated\");\r\n err['truncated'] = true;\r\n throw err;\r\n }\r\n b = this.buffer[offset++];\r\n if (c < 5)\r\n value |= (b & 0x7f) << (7*c);\r\n ++c;\r\n } while ((b & 0x80) !== 0);\r\n value |= 0;\r\n if (relative) {\r\n this.offset = offset;\r\n return value;\r\n }\r\n return {\r\n \"value\": value,\r\n \"length\": c\r\n };\r\n };\r\n\r\n /**\r\n * Reads a zig-zag encoded (signed) 32bit base 128 variable-length integer.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * written if omitted.\r\n * @returns {number|!{value: number, length: number}} The value read if offset is omitted, else the value read\r\n * and the actual number of bytes read.\r\n * @throws {Error} If it's not a valid varint\r\n * @expose\r\n */\r\n ByteBufferPrototype.readVarint32ZigZag = function(offset) {\r\n var val = this.readVarint32(offset);\r\n if (typeof val === 'object')\r\n val[\"value\"] = ByteBuffer.zigZagDecode32(val[\"value\"]);\r\n else\r\n val = ByteBuffer.zigZagDecode32(val);\r\n return val;\r\n };\r\n\r\n // types/varints/varint64\r\n\r\n if (Long) {\r\n\r\n /**\r\n * Maximum number of bytes required to store a 64bit base 128 variable-length integer.\r\n * @type {number}\r\n * @const\r\n * @expose\r\n */\r\n ByteBuffer.MAX_VARINT64_BYTES = 10;\r\n\r\n /**\r\n * Calculates the actual number of bytes required to store a 64bit base 128 variable-length integer.\r\n * @param {number|!Long} value Value to encode\r\n * @returns {number} Number of bytes required. Capped to {@link ByteBuffer.MAX_VARINT64_BYTES}\r\n * @expose\r\n */\r\n ByteBuffer.calculateVarint64 = function(value) {\r\n if (typeof value === 'number')\n value = Long.fromNumber(value);\n else if (typeof value === 'string')\n value = Long.fromString(value);\n // ref: src/google/protobuf/io/coded_stream.cc\r\n var part0 = value.toInt() >>> 0,\r\n part1 = value.shiftRightUnsigned(28).toInt() >>> 0,\r\n part2 = value.shiftRightUnsigned(56).toInt() >>> 0;\r\n if (part2 == 0) {\r\n if (part1 == 0) {\r\n if (part0 < 1 << 14)\r\n return part0 < 1 << 7 ? 1 : 2;\r\n else\r\n return part0 < 1 << 21 ? 3 : 4;\r\n } else {\r\n if (part1 < 1 << 14)\r\n return part1 < 1 << 7 ? 5 : 6;\r\n else\r\n return part1 < 1 << 21 ? 7 : 8;\r\n }\r\n } else\r\n return part2 < 1 << 7 ? 9 : 10;\r\n };\r\n\r\n /**\r\n * Zigzag encodes a signed 64bit integer so that it can be effectively used with varint encoding.\r\n * @param {number|!Long} value Signed long\r\n * @returns {!Long} Unsigned zigzag encoded long\r\n * @expose\r\n */\r\n ByteBuffer.zigZagEncode64 = function(value) {\r\n if (typeof value === 'number')\n value = Long.fromNumber(value, false);\n else if (typeof value === 'string')\n value = Long.fromString(value, false);\n else if (value.unsigned !== false) value = value.toSigned();\n // ref: src/google/protobuf/wire_format_lite.h\r\n return value.shiftLeft(1).xor(value.shiftRight(63)).toUnsigned();\r\n };\r\n\r\n /**\r\n * Decodes a zigzag encoded signed 64bit integer.\r\n * @param {!Long|number} value Unsigned zigzag encoded long or JavaScript number\r\n * @returns {!Long} Signed long\r\n * @expose\r\n */\r\n ByteBuffer.zigZagDecode64 = function(value) {\r\n if (typeof value === 'number')\n value = Long.fromNumber(value, false);\n else if (typeof value === 'string')\n value = Long.fromString(value, false);\n else if (value.unsigned !== false) value = value.toSigned();\n // ref: src/google/protobuf/wire_format_lite.h\r\n return value.shiftRightUnsigned(1).xor(value.and(Long.ONE).toSigned().negate()).toSigned();\r\n };\r\n\r\n /**\r\n * Writes a 64bit base 128 variable-length integer.\r\n * @param {number|Long} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * written if omitted.\r\n * @returns {!ByteBuffer|number} `this` if offset is omitted, else the actual number of bytes written.\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeVarint64 = function(value, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof value === 'number')\n value = Long.fromNumber(value);\n else if (typeof value === 'string')\n value = Long.fromString(value);\n else if (!(value && value instanceof Long))\n throw TypeError(\"Illegal value: \"+value+\" (not an integer or Long)\");\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.length)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.length);\n }\r\n if (typeof value === 'number')\n value = Long.fromNumber(value, false);\n else if (typeof value === 'string')\n value = Long.fromString(value, false);\n else if (value.unsigned !== false) value = value.toSigned();\n var size = ByteBuffer.calculateVarint64(value),\r\n part0 = value.toInt() >>> 0,\r\n part1 = value.shiftRightUnsigned(28).toInt() >>> 0,\r\n part2 = value.shiftRightUnsigned(56).toInt() >>> 0;\r\n offset += size;\n var capacity11 = this.buffer.length;\n if (offset > capacity11)\n this.resize((capacity11 *= 2) > offset ? capacity11 : offset);\n offset -= size;\n switch (size) {\r\n case 10: this.buffer[offset+9] = (part2 >>> 7) & 0x01;\r\n case 9 : this.buffer[offset+8] = size !== 9 ? (part2 ) | 0x80 : (part2 ) & 0x7F;\r\n case 8 : this.buffer[offset+7] = size !== 8 ? (part1 >>> 21) | 0x80 : (part1 >>> 21) & 0x7F;\r\n case 7 : this.buffer[offset+6] = size !== 7 ? (part1 >>> 14) | 0x80 : (part1 >>> 14) & 0x7F;\r\n case 6 : this.buffer[offset+5] = size !== 6 ? (part1 >>> 7) | 0x80 : (part1 >>> 7) & 0x7F;\r\n case 5 : this.buffer[offset+4] = size !== 5 ? (part1 ) | 0x80 : (part1 ) & 0x7F;\r\n case 4 : this.buffer[offset+3] = size !== 4 ? (part0 >>> 21) | 0x80 : (part0 >>> 21) & 0x7F;\r\n case 3 : this.buffer[offset+2] = size !== 3 ? (part0 >>> 14) | 0x80 : (part0 >>> 14) & 0x7F;\r\n case 2 : this.buffer[offset+1] = size !== 2 ? (part0 >>> 7) | 0x80 : (part0 >>> 7) & 0x7F;\r\n case 1 : this.buffer[offset ] = size !== 1 ? (part0 ) | 0x80 : (part0 ) & 0x7F;\r\n }\r\n if (relative) {\r\n this.offset += size;\r\n return this;\r\n } else {\r\n return size;\r\n }\r\n };\r\n\r\n /**\r\n * Writes a zig-zag encoded 64bit base 128 variable-length integer.\r\n * @param {number|Long} value Value to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * written if omitted.\r\n * @returns {!ByteBuffer|number} `this` if offset is omitted, else the actual number of bytes written.\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeVarint64ZigZag = function(value, offset) {\r\n return this.writeVarint64(ByteBuffer.zigZagEncode64(value), offset);\r\n };\r\n\r\n /**\r\n * Reads a 64bit base 128 variable-length integer. Requires Long.js.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * read if omitted.\r\n * @returns {!Long|!{value: Long, length: number}} The value read if offset is omitted, else the value read and\r\n * the actual number of bytes read.\r\n * @throws {Error} If it's not a valid varint\r\n * @expose\r\n */\r\n ByteBufferPrototype.readVarint64 = function(offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 1 > this.buffer.length)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+1+\") <= \"+this.buffer.length);\n }\r\n // ref: src/google/protobuf/io/coded_stream.cc\r\n var start = offset,\r\n part0 = 0,\r\n part1 = 0,\r\n part2 = 0,\r\n b = 0;\r\n b = this.buffer[offset++]; part0 = (b & 0x7F) ; if ( b & 0x80 ) {\r\n b = this.buffer[offset++]; part0 |= (b & 0x7F) << 7; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) {\r\n b = this.buffer[offset++]; part0 |= (b & 0x7F) << 14; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) {\r\n b = this.buffer[offset++]; part0 |= (b & 0x7F) << 21; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) {\r\n b = this.buffer[offset++]; part1 = (b & 0x7F) ; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) {\r\n b = this.buffer[offset++]; part1 |= (b & 0x7F) << 7; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) {\r\n b = this.buffer[offset++]; part1 |= (b & 0x7F) << 14; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) {\r\n b = this.buffer[offset++]; part1 |= (b & 0x7F) << 21; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) {\r\n b = this.buffer[offset++]; part2 = (b & 0x7F) ; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) {\r\n b = this.buffer[offset++]; part2 |= (b & 0x7F) << 7; if ((b & 0x80) || (this.noAssert && typeof b === 'undefined')) {\r\n throw Error(\"Buffer overrun\"); }}}}}}}}}}\r\n var value = Long.fromBits(part0 | (part1 << 28), (part1 >>> 4) | (part2) << 24, false);\r\n if (relative) {\r\n this.offset = offset;\r\n return value;\r\n } else {\r\n return {\r\n 'value': value,\r\n 'length': offset-start\r\n };\r\n }\r\n };\r\n\r\n /**\r\n * Reads a zig-zag encoded 64bit base 128 variable-length integer. Requires Long.js.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * read if omitted.\r\n * @returns {!Long|!{value: Long, length: number}} The value read if offset is omitted, else the value read and\r\n * the actual number of bytes read.\r\n * @throws {Error} If it's not a valid varint\r\n * @expose\r\n */\r\n ByteBufferPrototype.readVarint64ZigZag = function(offset) {\r\n var val = this.readVarint64(offset);\r\n if (val && val['value'] instanceof Long)\r\n val[\"value\"] = ByteBuffer.zigZagDecode64(val[\"value\"]);\r\n else\r\n val = ByteBuffer.zigZagDecode64(val);\r\n return val;\r\n };\r\n\r\n } // Long\r\n\r\n\r\n // types/strings/cstring\r\n\r\n /**\r\n * Writes a NULL-terminated UTF8 encoded string. For this to work the specified string must not contain any NULL\r\n * characters itself.\r\n * @param {string} str String to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * contained in `str` + 1 if omitted.\r\n * @returns {!ByteBuffer|number} this if offset is omitted, else the actual number of bytes written\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeCString = function(str, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n var i,\r\n k = str.length;\r\n if (!this.noAssert) {\r\n if (typeof str !== 'string')\r\n throw TypeError(\"Illegal str: Not a string\");\r\n for (i=0; i<k; ++i) {\r\n if (str.charCodeAt(i) === 0)\r\n throw RangeError(\"Illegal str: Contains NULL-characters\");\r\n }\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.length)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.length);\n }\r\n // UTF8 strings do not contain zero bytes in between except for the zero character, so:\r\n k = Buffer.byteLength(str, \"utf8\");\r\n offset += k+1;\n var capacity12 = this.buffer.length;\n if (offset > capacity12)\n this.resize((capacity12 *= 2) > offset ? capacity12 : offset);\n offset -= k+1;\n offset += this.buffer.write(str, offset, k, \"utf8\");\r\n this.buffer[offset++] = 0;\r\n if (relative) {\r\n this.offset = offset;\r\n return this;\r\n }\r\n return k;\r\n };\r\n\r\n /**\r\n * Reads a NULL-terminated UTF8 encoded string. For this to work the string read must not contain any NULL characters\r\n * itself.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * read if omitted.\r\n * @returns {string|!{string: string, length: number}} The string read if offset is omitted, else the string\r\n * read and the actual number of bytes read.\r\n * @expose\r\n */\r\n ByteBufferPrototype.readCString = function(offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 1 > this.buffer.length)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+1+\") <= \"+this.buffer.length);\n }\r\n var start = offset,\r\n temp;\r\n // UTF8 strings do not contain zero bytes in between except for the zero character itself, so:\r\n do {\r\n if (offset >= this.buffer.length)\r\n throw RangeError(\"Index out of range: \"+offset+\" <= \"+this.buffer.length);\r\n temp = this.buffer[offset++];\r\n } while (temp !== 0);\r\n var str = this.buffer.toString(\"utf8\", start, offset-1);\r\n if (relative) {\r\n this.offset = offset;\r\n return str;\r\n } else {\r\n return {\r\n \"string\": str,\r\n \"length\": offset - start\r\n };\r\n }\r\n };\r\n\r\n // types/strings/istring\r\n\r\n /**\r\n * Writes a length as uint32 prefixed UTF8 encoded string.\r\n * @param {string} str String to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * written if omitted.\r\n * @returns {!ByteBuffer|number} `this` if `offset` is omitted, else the actual number of bytes written\r\n * @expose\r\n * @see ByteBuffer#writeVarint32\r\n */\r\n ByteBufferPrototype.writeIString = function(str, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof str !== 'string')\r\n throw TypeError(\"Illegal str: Not a string\");\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.length)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.length);\n }\r\n var start = offset,\r\n k;\r\n k = Buffer.byteLength(str, \"utf8\");\r\n offset += 4+k;\n var capacity13 = this.buffer.length;\n if (offset > capacity13)\n this.resize((capacity13 *= 2) > offset ? capacity13 : offset);\n offset -= 4+k;\n if (this.littleEndian) {\n this.buffer[offset+3] = (k >>> 24) & 0xFF;\n this.buffer[offset+2] = (k >>> 16) & 0xFF;\n this.buffer[offset+1] = (k >>> 8) & 0xFF;\n this.buffer[offset ] = k & 0xFF;\n } else {\n this.buffer[offset ] = (k >>> 24) & 0xFF;\n this.buffer[offset+1] = (k >>> 16) & 0xFF;\n this.buffer[offset+2] = (k >>> 8) & 0xFF;\n this.buffer[offset+3] = k & 0xFF;\n }\n offset += 4;\r\n offset += this.buffer.write(str, offset, k, \"utf8\");\r\n if (relative) {\r\n this.offset = offset;\r\n return this;\r\n }\r\n return offset - start;\r\n };\r\n\r\n /**\r\n * Reads a length as uint32 prefixed UTF8 encoded string.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * read if omitted.\r\n * @returns {string|!{string: string, length: number}} The string read if offset is omitted, else the string\r\n * read and the actual number of bytes read.\r\n * @expose\r\n * @see ByteBuffer#readVarint32\r\n */\r\n ByteBufferPrototype.readIString = function(offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 4 > this.buffer.length)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+4+\") <= \"+this.buffer.length);\n }\r\n var start = offset;\r\n var len = this.readUint32(offset);\r\n var str = this.readUTF8String(len, ByteBuffer.METRICS_BYTES, offset += 4);\r\n offset += str['length'];\r\n if (relative) {\r\n this.offset = offset;\r\n return str['string'];\r\n } else {\r\n return {\r\n 'string': str['string'],\r\n 'length': offset - start\r\n };\r\n }\r\n };\r\n\r\n // types/strings/utf8string\r\n\r\n /**\r\n * Metrics representing number of UTF8 characters. Evaluates to `c`.\r\n * @type {string}\r\n * @const\r\n * @expose\r\n */\r\n ByteBuffer.METRICS_CHARS = 'c';\r\n\r\n /**\r\n * Metrics representing number of bytes. Evaluates to `b`.\r\n * @type {string}\r\n * @const\r\n * @expose\r\n */\r\n ByteBuffer.METRICS_BYTES = 'b';\r\n\r\n /**\r\n * Writes an UTF8 encoded string.\r\n * @param {string} str String to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} if omitted.\r\n * @returns {!ByteBuffer|number} this if offset is omitted, else the actual number of bytes written.\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeUTF8String = function(str, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.length)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.length);\n }\r\n var k;\r\n k = Buffer.byteLength(str, \"utf8\");\r\n offset += k;\n var capacity14 = this.buffer.length;\n if (offset > capacity14)\n this.resize((capacity14 *= 2) > offset ? capacity14 : offset);\n offset -= k;\n offset += this.buffer.write(str, offset, k, \"utf8\");\r\n if (relative) {\r\n this.offset = offset;\r\n return this;\r\n }\r\n return k;\r\n };\r\n\r\n /**\r\n * Writes an UTF8 encoded string. This is an alias of {@link ByteBuffer#writeUTF8String}.\r\n * @function\r\n * @param {string} str String to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} if omitted.\r\n * @returns {!ByteBuffer|number} this if offset is omitted, else the actual number of bytes written.\r\n * @expose\r\n */\r\n ByteBufferPrototype.writeString = ByteBufferPrototype.writeUTF8String;\r\n\r\n /**\r\n * Calculates the number of UTF8 characters of a string. JavaScript itself uses UTF-16, so that a string's\r\n * `length` property does not reflect its actual UTF8 size if it contains code points larger than 0xFFFF.\r\n * @param {string} str String to calculate\r\n * @returns {number} Number of UTF8 characters\r\n * @expose\r\n */\r\n ByteBuffer.calculateUTF8Chars = function(str) {\r\n return utfx.calculateUTF16asUTF8(stringSource(str))[0];\r\n };\r\n\r\n /**\r\n * Calculates the number of UTF8 bytes of a string.\r\n * @param {string} str String to calculate\r\n * @returns {number} Number of UTF8 bytes\r\n * @expose\r\n */\r\n ByteBuffer.calculateUTF8Bytes = function(str) {\r\n if (typeof str !== 'string')\r\n throw TypeError(\"Illegal argument: \"+(typeof str));\r\n return Buffer.byteLength(str, \"utf8\");\r\n };\r\n\r\n /**\r\n * Calculates the number of UTF8 bytes of a string. This is an alias of {@link ByteBuffer.calculateUTF8Bytes}.\r\n * @function\r\n * @param {string} str String to calculate\r\n * @returns {number} Number of UTF8 bytes\r\n * @expose\r\n */\r\n ByteBuffer.calculateString = ByteBuffer.calculateUTF8Bytes;\r\n\r\n /**\r\n * Reads an UTF8 encoded string.\r\n * @param {number} length Number of characters or bytes to read.\r\n * @param {string=} metrics Metrics specifying what `length` is meant to count. Defaults to\r\n * {@link ByteBuffer.METRICS_CHARS}.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * read if omitted.\r\n * @returns {string|!{string: string, length: number}} The string read if offset is omitted, else the string\r\n * read and the actual number of bytes read.\r\n * @expose\r\n */\r\n ByteBufferPrototype.readUTF8String = function(length, metrics, offset) {\r\n if (typeof metrics === 'number') {\r\n offset = metrics;\r\n metrics = undefined;\r\n }\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (typeof metrics === 'undefined') metrics = ByteBuffer.METRICS_CHARS;\r\n if (!this.noAssert) {\r\n if (typeof length !== 'number' || length % 1 !== 0)\n throw TypeError(\"Illegal length: \"+length+\" (not an integer)\");\n length |= 0;\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.length)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.length);\n }\r\n var i = 0,\r\n start = offset,\r\n temp,\r\n sd;\r\n if (metrics === ByteBuffer.METRICS_CHARS) { // The same for node and the browser\r\n sd = stringDestination();\r\n utfx.decodeUTF8(function() {\r\n return i < length && offset < this.limit ? this.buffer[offset++] : null;\r\n }.bind(this), function(cp) {\r\n ++i; utfx.UTF8toUTF16(cp, sd);\r\n });\r\n if (i !== length)\r\n throw RangeError(\"Illegal range: Truncated data, \"+i+\" == \"+length);\r\n if (relative) {\r\n this.offset = offset;\r\n return sd();\r\n } else {\r\n return {\r\n \"string\": sd(),\r\n \"length\": offset - start\r\n };\r\n }\r\n } else if (metrics === ByteBuffer.METRICS_BYTES) {\r\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + length > this.buffer.length)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+length+\") <= \"+this.buffer.length);\n }\r\n temp = this.buffer.toString(\"utf8\", offset, offset+length);\r\n if (relative) {\r\n this.offset += length;\r\n return temp;\r\n } else {\r\n return {\r\n 'string': temp,\r\n 'length': length\r\n };\r\n }\r\n } else\r\n throw TypeError(\"Unsupported metrics: \"+metrics);\r\n };\r\n\r\n /**\r\n * Reads an UTF8 encoded string. This is an alias of {@link ByteBuffer#readUTF8String}.\r\n * @function\r\n * @param {number} length Number of characters or bytes to read\r\n * @param {number=} metrics Metrics specifying what `n` is meant to count. Defaults to\r\n * {@link ByteBuffer.METRICS_CHARS}.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * read if omitted.\r\n * @returns {string|!{string: string, length: number}} The string read if offset is omitted, else the string\r\n * read and the actual number of bytes read.\r\n * @expose\r\n */\r\n ByteBufferPrototype.readString = ByteBufferPrototype.readUTF8String;\r\n\r\n // types/strings/vstring\r\n\r\n /**\r\n * Writes a length as varint32 prefixed UTF8 encoded string.\r\n * @param {string} str String to write\r\n * @param {number=} offset Offset to write to. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * written if omitted.\r\n * @returns {!ByteBuffer|number} `this` if `offset` is omitted, else the actual number of bytes written\r\n * @expose\r\n * @see ByteBuffer#writeVarint32\r\n */\r\n ByteBufferPrototype.writeVString = function(str, offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof str !== 'string')\r\n throw TypeError(\"Illegal str: Not a string\");\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.length)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.length);\n }\r\n var start = offset,\r\n k, l;\r\n k = Buffer.byteLength(str, \"utf8\");\r\n l = ByteBuffer.calculateVarint32(k);\r\n offset += l+k;\n var capacity15 = this.buffer.length;\n if (offset > capacity15)\n this.resize((capacity15 *= 2) > offset ? capacity15 : offset);\n offset -= l+k;\n offset += this.writeVarint32(k, offset);\r\n offset += this.buffer.write(str, offset, k, \"utf8\");\r\n if (relative) {\r\n this.offset = offset;\r\n return this;\r\n }\r\n return offset - start;\r\n };\r\n\r\n /**\r\n * Reads a length as varint32 prefixed UTF8 encoded string.\r\n * @param {number=} offset Offset to read from. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * read if omitted.\r\n * @returns {string|!{string: string, length: number}} The string read if offset is omitted, else the string\r\n * read and the actual number of bytes read.\r\n * @expose\r\n * @see ByteBuffer#readVarint32\r\n */\r\n ByteBufferPrototype.readVString = function(offset) {\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 1 > this.buffer.length)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+1+\") <= \"+this.buffer.length);\n }\r\n var start = offset;\r\n var len = this.readVarint32(offset);\r\n var str = this.readUTF8String(len['value'], ByteBuffer.METRICS_BYTES, offset += len['length']);\r\n offset += str['length'];\r\n if (relative) {\r\n this.offset = offset;\r\n return str['string'];\r\n } else {\r\n return {\r\n 'string': str['string'],\r\n 'length': offset - start\r\n };\r\n }\r\n };\r\n\r\n\r\n /**\r\n * Appends some data to this ByteBuffer. This will overwrite any contents behind the specified offset up to the appended\r\n * data's length.\r\n * @param {!ByteBuffer|!Buffer|!ArrayBuffer|!Uint8Array|string} source Data to append. If `source` is a ByteBuffer, its\r\n * offsets will be modified according to the performed read operation.\r\n * @param {(string|number)=} encoding Encoding if `data` is a string (\"base64\", \"hex\", \"binary\", defaults to \"utf8\")\r\n * @param {number=} offset Offset to append at. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * written if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n * @example A relative `<01 02>03.append(<04 05>)` will result in `<01 02 04 05>, 04 05|`\r\n * @example An absolute `<01 02>03.append(04 05>, 1)` will result in `<01 04>05, 04 05|`\r\n */\r\n ByteBufferPrototype.append = function(source, encoding, offset) {\r\n if (typeof encoding === 'number' || typeof encoding !== 'string') {\r\n offset = encoding;\r\n encoding = undefined;\r\n }\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.length)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.length);\n }\r\n if (!(source instanceof ByteBuffer))\r\n source = ByteBuffer.wrap(source, encoding);\r\n var length = source.limit - source.offset;\r\n if (length <= 0) return this; // Nothing to append\r\n offset += length;\n var capacity16 = this.buffer.length;\n if (offset > capacity16)\n this.resize((capacity16 *= 2) > offset ? capacity16 : offset);\n offset -= length;\n source.buffer.copy(this.buffer, offset, source.offset, source.limit);\r\n source.offset += length;\r\n if (relative) this.offset += length;\n return this;\r\n };\r\n\r\n /**\r\n * Appends this ByteBuffer's contents to another ByteBuffer. This will overwrite any contents at and after the\r\n specified offset up to the length of this ByteBuffer's data.\r\n * @param {!ByteBuffer} target Target ByteBuffer\r\n * @param {number=} offset Offset to append to. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * read if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n * @see ByteBuffer#append\r\n */\r\n ByteBufferPrototype.appendTo = function(target, offset) {\r\n target.append(this, offset);\r\n return this;\r\n };\r\n\r\n /**\r\n * Enables or disables assertions of argument types and offsets. Assertions are enabled by default but you can opt to\r\n * disable them if your code already makes sure that everything is valid.\r\n * @param {boolean} assert `true` to enable assertions, otherwise `false`\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.assert = function(assert) {\r\n this.noAssert = !assert;\r\n return this;\r\n };\r\n\r\n /**\r\n * Gets the capacity of this ByteBuffer's backing buffer.\r\n * @returns {number} Capacity of the backing buffer\r\n * @expose\r\n */\r\n ByteBufferPrototype.capacity = function() {\r\n return this.buffer.length;\r\n };\r\n /**\r\n * Clears this ByteBuffer's offsets by setting {@link ByteBuffer#offset} to `0` and {@link ByteBuffer#limit} to the\r\n * backing buffer's capacity. Discards {@link ByteBuffer#markedOffset}.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.clear = function() {\r\n this.offset = 0;\r\n this.limit = this.buffer.length;\r\n this.markedOffset = -1;\r\n return this;\r\n };\r\n\r\n /**\r\n * Creates a cloned instance of this ByteBuffer, preset with this ByteBuffer's values for {@link ByteBuffer#offset},\r\n * {@link ByteBuffer#markedOffset} and {@link ByteBuffer#limit}.\r\n * @param {boolean=} copy Whether to copy the backing buffer or to return another view on the same, defaults to `false`\r\n * @returns {!ByteBuffer} Cloned instance\r\n * @expose\r\n */\r\n ByteBufferPrototype.clone = function(copy) {\r\n var bb = new ByteBuffer(0, this.littleEndian, this.noAssert);\r\n if (copy) {\r\n var buffer = new Buffer(this.buffer.length);\r\n this.buffer.copy(buffer);\r\n bb.buffer = buffer;\r\n } else {\r\n bb.buffer = this.buffer;\r\n }\r\n bb.offset = this.offset;\r\n bb.markedOffset = this.markedOffset;\r\n bb.limit = this.limit;\r\n return bb;\r\n };\r\n\r\n /**\r\n * Compacts this ByteBuffer to be backed by a {@link ByteBuffer#buffer} of its contents' length. Contents are the bytes\r\n * between {@link ByteBuffer#offset} and {@link ByteBuffer#limit}. Will set `offset = 0` and `limit = capacity` and\r\n * adapt {@link ByteBuffer#markedOffset} to the same relative position if set.\r\n * @param {number=} begin Offset to start at, defaults to {@link ByteBuffer#offset}\r\n * @param {number=} end Offset to end at, defaults to {@link ByteBuffer#limit}\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.compact = function(begin, end) {\r\n if (typeof begin === 'undefined') begin = this.offset;\r\n if (typeof end === 'undefined') end = this.limit;\r\n if (!this.noAssert) {\r\n if (typeof begin !== 'number' || begin % 1 !== 0)\n throw TypeError(\"Illegal begin: Not an integer\");\n begin >>>= 0;\n if (typeof end !== 'number' || end % 1 !== 0)\n throw TypeError(\"Illegal end: Not an integer\");\n end >>>= 0;\n if (begin < 0 || begin > end || end > this.buffer.length)\n throw RangeError(\"Illegal range: 0 <= \"+begin+\" <= \"+end+\" <= \"+this.buffer.length);\n }\r\n if (begin === 0 && end === this.buffer.length)\r\n return this; // Already compacted\r\n var len = end - begin;\r\n if (len === 0) {\r\n this.buffer = EMPTY_BUFFER;\r\n if (this.markedOffset >= 0) this.markedOffset -= begin;\r\n this.offset = 0;\r\n this.limit = 0;\r\n return this;\r\n }\r\n var buffer = new Buffer(len);\r\n this.buffer.copy(buffer, 0, begin, end);\r\n this.buffer = buffer;\r\n if (this.markedOffset >= 0) this.markedOffset -= begin;\r\n this.offset = 0;\r\n this.limit = len;\r\n return this;\r\n };\r\n\r\n /**\r\n * Creates a copy of this ByteBuffer's contents. Contents are the bytes between {@link ByteBuffer#offset} and\r\n * {@link ByteBuffer#limit}.\r\n * @param {number=} begin Begin offset, defaults to {@link ByteBuffer#offset}.\r\n * @param {number=} end End offset, defaults to {@link ByteBuffer#limit}.\r\n * @returns {!ByteBuffer} Copy\r\n * @expose\r\n */\r\n ByteBufferPrototype.copy = function(begin, end) {\r\n if (typeof begin === 'undefined') begin = this.offset;\r\n if (typeof end === 'undefined') end = this.limit;\r\n if (!this.noAssert) {\r\n if (typeof begin !== 'number' || begin % 1 !== 0)\n throw TypeError(\"Illegal begin: Not an integer\");\n begin >>>= 0;\n if (typeof end !== 'number' || end % 1 !== 0)\n throw TypeError(\"Illegal end: Not an integer\");\n end >>>= 0;\n if (begin < 0 || begin > end || end > this.buffer.length)\n throw RangeError(\"Illegal range: 0 <= \"+begin+\" <= \"+end+\" <= \"+this.buffer.length);\n }\r\n if (begin === end)\r\n return new ByteBuffer(0, this.littleEndian, this.noAssert);\r\n var capacity = end - begin,\r\n bb = new ByteBuffer(capacity, this.littleEndian, this.noAssert);\r\n bb.offset = 0;\r\n bb.limit = capacity;\r\n if (bb.markedOffset >= 0) bb.markedOffset -= begin;\r\n this.copyTo(bb, 0, begin, end);\r\n return bb;\r\n };\r\n\r\n /**\r\n * Copies this ByteBuffer's contents to another ByteBuffer. Contents are the bytes between {@link ByteBuffer#offset} and\r\n * {@link ByteBuffer#limit}.\r\n * @param {!ByteBuffer} target Target ByteBuffer\r\n * @param {number=} targetOffset Offset to copy to. Will use and increase the target's {@link ByteBuffer#offset}\r\n * by the number of bytes copied if omitted.\r\n * @param {number=} sourceOffset Offset to start copying from. Will use and increase {@link ByteBuffer#offset} by the\r\n * number of bytes copied if omitted.\r\n * @param {number=} sourceLimit Offset to end copying from, defaults to {@link ByteBuffer#limit}\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.copyTo = function(target, targetOffset, sourceOffset, sourceLimit) {\r\n var relative,\r\n targetRelative;\r\n if (!this.noAssert) {\r\n if (!ByteBuffer.isByteBuffer(target))\r\n throw TypeError(\"Illegal target: Not a ByteBuffer\");\r\n }\r\n targetOffset = (targetRelative = typeof targetOffset === 'undefined') ? target.offset : targetOffset | 0;\r\n sourceOffset = (relative = typeof sourceOffset === 'undefined') ? this.offset : sourceOffset | 0;\r\n sourceLimit = typeof sourceLimit === 'undefined' ? this.limit : sourceLimit | 0;\r\n\r\n if (targetOffset < 0 || targetOffset > target.buffer.length)\r\n throw RangeError(\"Illegal target range: 0 <= \"+targetOffset+\" <= \"+target.buffer.length);\r\n if (sourceOffset < 0 || sourceLimit > this.buffer.length)\r\n throw RangeError(\"Illegal source range: 0 <= \"+sourceOffset+\" <= \"+this.buffer.length);\r\n\r\n var len = sourceLimit - sourceOffset;\r\n if (len === 0)\r\n return target; // Nothing to copy\r\n\r\n target.ensureCapacity(targetOffset + len);\r\n\r\n this.buffer.copy(target.buffer, targetOffset, sourceOffset, sourceLimit);\r\n\r\n if (relative) this.offset += len;\r\n if (targetRelative) target.offset += len;\r\n\r\n return this;\r\n };\r\n\r\n /**\r\n * Makes sure that this ByteBuffer is backed by a {@link ByteBuffer#buffer} of at least the specified capacity. If the\r\n * current capacity is exceeded, it will be doubled. If double the current capacity is less than the required capacity,\r\n * the required capacity will be used instead.\r\n * @param {number} capacity Required capacity\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.ensureCapacity = function(capacity) {\r\n var current = this.buffer.length;\r\n if (current < capacity)\r\n return this.resize((current *= 2) > capacity ? current : capacity);\r\n return this;\r\n };\r\n\r\n /**\r\n * Overwrites this ByteBuffer's contents with the specified value. Contents are the bytes between\r\n * {@link ByteBuffer#offset} and {@link ByteBuffer#limit}.\r\n * @param {number|string} value Byte value to fill with. If given as a string, the first character is used.\r\n * @param {number=} begin Begin offset. Will use and increase {@link ByteBuffer#offset} by the number of bytes\r\n * written if omitted. defaults to {@link ByteBuffer#offset}.\r\n * @param {number=} end End offset, defaults to {@link ByteBuffer#limit}.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n * @example `someByteBuffer.clear().fill(0)` fills the entire backing buffer with zeroes\r\n */\r\n ByteBufferPrototype.fill = function(value, begin, end) {\r\n var relative = typeof begin === 'undefined';\n if (relative) begin = this.offset;\n if (typeof value === 'string' && value.length > 0)\r\n value = value.charCodeAt(0);\r\n if (typeof begin === 'undefined') begin = this.offset;\r\n if (typeof end === 'undefined') end = this.limit;\r\n if (!this.noAssert) {\r\n if (typeof value !== 'number' || value % 1 !== 0)\n throw TypeError(\"Illegal value: \"+value+\" (not an integer)\");\n value |= 0;\n if (typeof begin !== 'number' || begin % 1 !== 0)\n throw TypeError(\"Illegal begin: Not an integer\");\n begin >>>= 0;\n if (typeof end !== 'number' || end % 1 !== 0)\n throw TypeError(\"Illegal end: Not an integer\");\n end >>>= 0;\n if (begin < 0 || begin > end || end > this.buffer.length)\n throw RangeError(\"Illegal range: 0 <= \"+begin+\" <= \"+end+\" <= \"+this.buffer.length);\n }\r\n if (begin >= end)\r\n return this; // Nothing to fill\r\n this.buffer.fill(value, begin, end);\r\n begin = end;\r\n if (relative) this.offset = begin;\r\n return this;\r\n };\r\n\r\n /**\r\n * Makes this ByteBuffer ready for a new sequence of write or relative read operations. Sets `limit = offset` and\r\n * `offset = 0`. Make sure always to flip a ByteBuffer when all relative read or write operations are complete.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.flip = function() {\r\n this.limit = this.offset;\r\n this.offset = 0;\r\n return this;\r\n };\r\n /**\r\n * Marks an offset on this ByteBuffer to be used later.\r\n * @param {number=} offset Offset to mark. Defaults to {@link ByteBuffer#offset}.\r\n * @returns {!ByteBuffer} this\r\n * @throws {TypeError} If `offset` is not a valid number\r\n * @throws {RangeError} If `offset` is out of bounds\r\n * @see ByteBuffer#reset\r\n * @expose\r\n */\r\n ByteBufferPrototype.mark = function(offset) {\r\n offset = typeof offset === 'undefined' ? this.offset : offset;\r\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.length)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.length);\n }\r\n this.markedOffset = offset;\r\n return this;\r\n };\r\n /**\r\n * Sets the byte order.\r\n * @param {boolean} littleEndian `true` for little endian byte order, `false` for big endian\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.order = function(littleEndian) {\r\n if (!this.noAssert) {\r\n if (typeof littleEndian !== 'boolean')\r\n throw TypeError(\"Illegal littleEndian: Not a boolean\");\r\n }\r\n this.littleEndian = !!littleEndian;\r\n return this;\r\n };\r\n\r\n /**\r\n * Switches (to) little endian byte order.\r\n * @param {boolean=} littleEndian Defaults to `true`, otherwise uses big endian\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.LE = function(littleEndian) {\r\n this.littleEndian = typeof littleEndian !== 'undefined' ? !!littleEndian : true;\r\n return this;\r\n };\r\n\r\n /**\r\n * Switches (to) big endian byte order.\r\n * @param {boolean=} bigEndian Defaults to `true`, otherwise uses little endian\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.BE = function(bigEndian) {\r\n this.littleEndian = typeof bigEndian !== 'undefined' ? !bigEndian : false;\r\n return this;\r\n };\r\n /**\r\n * Prepends some data to this ByteBuffer. This will overwrite any contents before the specified offset up to the\r\n * prepended data's length. If there is not enough space available before the specified `offset`, the backing buffer\r\n * will be resized and its contents moved accordingly.\r\n * @param {!ByteBuffer|string||!Buffer} source Data to prepend. If `source` is a ByteBuffer, its offset will be modified\r\n * according to the performed read operation.\r\n * @param {(string|number)=} encoding Encoding if `data` is a string (\"base64\", \"hex\", \"binary\", defaults to \"utf8\")\r\n * @param {number=} offset Offset to prepend at. Will use and decrease {@link ByteBuffer#offset} by the number of bytes\r\n * prepended if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n * @example A relative `00<01 02 03>.prepend(<04 05>)` results in `<04 05 01 02 03>, 04 05|`\r\n * @example An absolute `00<01 02 03>.prepend(<04 05>, 2)` results in `04<05 02 03>, 04 05|`\r\n */\r\n ByteBufferPrototype.prepend = function(source, encoding, offset) {\r\n if (typeof encoding === 'number' || typeof encoding !== 'string') {\r\n offset = encoding;\r\n encoding = undefined;\r\n }\r\n var relative = typeof offset === 'undefined';\n if (relative) offset = this.offset;\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: \"+offset+\" (not an integer)\");\n offset >>>= 0;\n if (offset < 0 || offset + 0 > this.buffer.length)\n throw RangeError(\"Illegal offset: 0 <= \"+offset+\" (+\"+0+\") <= \"+this.buffer.length);\n }\r\n if (!(source instanceof ByteBuffer))\r\n source = ByteBuffer.wrap(source, encoding);\r\n var len = source.limit - source.offset;\r\n if (len <= 0) return this; // Nothing to prepend\r\n var diff = len - offset;\r\n if (diff > 0) { // Not enough space before offset, so resize + move\r\n var buffer = new Buffer(this.buffer.length + diff);\r\n this.buffer.copy(buffer, len, offset, this.buffer.length);\r\n this.buffer = buffer;\r\n this.offset += diff;\r\n if (this.markedOffset >= 0) this.markedOffset += diff;\r\n this.limit += diff;\r\n offset += diff;\r\n } source.buffer.copy(this.buffer, offset - len, source.offset, source.limit);\r\n\r\n source.offset = source.limit;\r\n if (relative)\r\n this.offset -= len;\r\n return this;\r\n };\r\n\r\n /**\r\n * Prepends this ByteBuffer to another ByteBuffer. This will overwrite any contents before the specified offset up to the\r\n * prepended data's length. If there is not enough space available before the specified `offset`, the backing buffer\r\n * will be resized and its contents moved accordingly.\r\n * @param {!ByteBuffer} target Target ByteBuffer\r\n * @param {number=} offset Offset to prepend at. Will use and decrease {@link ByteBuffer#offset} by the number of bytes\r\n * prepended if omitted.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n * @see ByteBuffer#prepend\r\n */\r\n ByteBufferPrototype.prependTo = function(target, offset) {\r\n target.prepend(this, offset);\r\n return this;\r\n };\r\n /**\r\n * Prints debug information about this ByteBuffer's contents.\r\n * @param {function(string)=} out Output function to call, defaults to console.log\r\n * @expose\r\n */\r\n ByteBufferPrototype.printDebug = function(out) {\r\n if (typeof out !== 'function') out = console.log.bind(console);\r\n out(\r\n this.toString()+\"\\n\"+\r\n \"-------------------------------------------------------------------\\n\"+\r\n this.toDebug(/* columns */ true)\r\n );\r\n };\r\n\r\n /**\r\n * Gets the number of remaining readable bytes. Contents are the bytes between {@link ByteBuffer#offset} and\r\n * {@link ByteBuffer#limit}, so this returns `limit - offset`.\r\n * @returns {number} Remaining readable bytes. May be negative if `offset > limit`.\r\n * @expose\r\n */\r\n ByteBufferPrototype.remaining = function() {\r\n return this.limit - this.offset;\r\n };\r\n /**\r\n * Resets this ByteBuffer's {@link ByteBuffer#offset}. If an offset has been marked through {@link ByteBuffer#mark}\r\n * before, `offset` will be set to {@link ByteBuffer#markedOffset}, which will then be discarded. If no offset has been\r\n * marked, sets `offset = 0`.\r\n * @returns {!ByteBuffer} this\r\n * @see ByteBuffer#mark\r\n * @expose\r\n */\r\n ByteBufferPrototype.reset = function() {\r\n if (this.markedOffset >= 0) {\r\n this.offset = this.markedOffset;\r\n this.markedOffset = -1;\r\n } else {\r\n this.offset = 0;\r\n }\r\n return this;\r\n };\r\n /**\r\n * Resizes this ByteBuffer to be backed by a buffer of at least the given capacity. Will do nothing if already that\r\n * large or larger.\r\n * @param {number} capacity Capacity required\r\n * @returns {!ByteBuffer} this\r\n * @throws {TypeError} If `capacity` is not a number\r\n * @throws {RangeError} If `capacity < 0`\r\n * @expose\r\n */\r\n ByteBufferPrototype.resize = function(capacity) {\r\n if (!this.noAssert) {\r\n if (typeof capacity !== 'number' || capacity % 1 !== 0)\n throw TypeError(\"Illegal capacity: \"+capacity+\" (not an integer)\");\n capacity |= 0;\n if (capacity < 0)\r\n throw RangeError(\"Illegal capacity: 0 <= \"+capacity);\r\n }\r\n if (this.buffer.length < capacity) {\r\n var buffer = new Buffer(capacity);\r\n this.buffer.copy(buffer);\r\n this.buffer = buffer;\r\n }\r\n return this;\r\n };\r\n /**\r\n * Reverses this ByteBuffer's contents.\r\n * @param {number=} begin Offset to start at, defaults to {@link ByteBuffer#offset}\r\n * @param {number=} end Offset to end at, defaults to {@link ByteBuffer#limit}\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.reverse = function(begin, end) {\r\n if (typeof begin === 'undefined') begin = this.offset;\r\n if (typeof end === 'undefined') end = this.limit;\r\n if (!this.noAssert) {\r\n if (typeof begin !== 'number' || begin % 1 !== 0)\n throw TypeError(\"Illegal begin: Not an integer\");\n begin >>>= 0;\n if (typeof end !== 'number' || end % 1 !== 0)\n throw TypeError(\"Illegal end: Not an integer\");\n end >>>= 0;\n if (begin < 0 || begin > end || end > this.buffer.length)\n throw RangeError(\"Illegal range: 0 <= \"+begin+\" <= \"+end+\" <= \"+this.buffer.length);\n }\r\n if (begin === end)\r\n return this; // Nothing to reverse\r\n Array.prototype.reverse.call(this.buffer.slice(begin, end));\r\n return this;\r\n };\r\n /**\r\n * Skips the next `length` bytes. This will just advance\r\n * @param {number} length Number of bytes to skip. May also be negative to move the offset back.\r\n * @returns {!ByteBuffer} this\r\n * @expose\r\n */\r\n ByteBufferPrototype.skip = function(length) {\r\n if (!this.noAssert) {\r\n if (typeof length !== 'number' || length % 1 !== 0)\n throw TypeError(\"Illegal length: \"+length+\" (not an integer)\");\n length |= 0;\n }\r\n var offset = this.offset + length;\r\n if (!this.noAssert) {\r\n if (offset < 0 || offset > this.buffer.length)\r\n throw RangeError(\"Illegal length: 0 <= \"+this.offset+\" + \"+length+\" <= \"+this.buffer.length);\r\n }\r\n this.offset = offset;\r\n return this;\r\n };\r\n\r\n /**\r\n * Slices this ByteBuffer by creating a cloned instance with `offset = begin` and `limit = end`.\r\n * @param {number=} begin Begin offset, defaults to {@link ByteBuffer#offset}.\r\n * @param {number=} end End offset, defaults to {@link ByteBuffer#limit}.\r\n * @returns {!ByteBuffer} Clone of this ByteBuffer with slicing applied, backed by the same {@link ByteBuffer#buffer}\r\n * @expose\r\n */\r\n ByteBufferPrototype.slice = function(begin, end) {\r\n if (typeof begin === 'undefined') begin = this.offset;\r\n if (typeof end === 'undefined') end = this.limit;\r\n if (!this.noAssert) {\r\n if (typeof begin !== 'number' || begin % 1 !== 0)\n throw TypeError(\"Illegal begin: Not an integer\");\n begin >>>= 0;\n if (typeof end !== 'number' || end % 1 !== 0)\n throw TypeError(\"Illegal end: Not an integer\");\n end >>>= 0;\n if (begin < 0 || begin > end || end > this.buffer.length)\n throw RangeError(\"Illegal range: 0 <= \"+begin+\" <= \"+end+\" <= \"+this.buffer.length);\n }\r\n var bb = this.clone();\r\n bb.offset = begin;\r\n bb.limit = end;\r\n return bb;\r\n };\r\n /**\r\n * Returns a copy of the backing buffer that contains this ByteBuffer's contents. Contents are the bytes between\r\n * {@link ByteBuffer#offset} and {@link ByteBuffer#limit}.\r\n * @param {boolean=} forceCopy If `true` returns a copy, otherwise returns a view referencing the same memory if\r\n * possible. Defaults to `false`\r\n * @returns {!Buffer} Contents as a Buffer\r\n * @expose\r\n */\r\n ByteBufferPrototype.toBuffer = function(forceCopy) {\r\n var offset = this.offset,\r\n limit = this.limit;\r\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: Not an integer\");\n offset >>>= 0;\n if (typeof limit !== 'number' || limit % 1 !== 0)\n throw TypeError(\"Illegal limit: Not an integer\");\n limit >>>= 0;\n if (offset < 0 || offset > limit || limit > this.buffer.length)\n throw RangeError(\"Illegal range: 0 <= \"+offset+\" <= \"+limit+\" <= \"+this.buffer.length);\n }\r\n if (forceCopy) {\r\n var buffer = new Buffer(limit - offset);\r\n this.buffer.copy(buffer, 0, offset, limit);\r\n return buffer;\r\n } else {\r\n if (offset === 0 && limit === this.buffer.length)\r\n return this.buffer;\r\n else\r\n return this.buffer.slice(offset, limit);\r\n }\r\n };\r\n\r\n /**\r\n * Returns a copy of the backing buffer compacted to contain this ByteBuffer's contents. Contents are the bytes between\r\n * {@link ByteBuffer#offset} and {@link ByteBuffer#limit}.\r\n * @returns {!ArrayBuffer} Contents as an ArrayBuffer\r\n */\r\n ByteBufferPrototype.toArrayBuffer = function() {\r\n var offset = this.offset,\r\n limit = this.limit;\r\n if (!this.noAssert) {\r\n if (typeof offset !== 'number' || offset % 1 !== 0)\n throw TypeError(\"Illegal offset: Not an integer\");\n offset >>>= 0;\n if (typeof limit !== 'number' || limit % 1 !== 0)\n throw TypeError(\"Illegal limit: Not an integer\");\n limit >>>= 0;\n if (offset < 0 || offset > limit || limit > this.buffer.length)\n throw RangeError(\"Illegal range: 0 <= \"+offset+\" <= \"+limit+\" <= \"+this.buffer.length);\n }\r\n var ab = new ArrayBuffer(limit - offset);\r\n if (memcpy) { // Fast\r\n memcpy(ab, 0, this.buffer, offset, limit);\r\n } else { // Slow\r\n var dst = new Uint8Array(ab);\r\n for (var i=offset; i<limit; ++i)\r\n dst[i-offset] = this.buffer[i];\r\n }\r\n return ab;\r\n };\r\n\r\n /**\r\n * Converts the ByteBuffer's contents to a string.\r\n * @param {string=} encoding Output encoding. Returns an informative string representation if omitted but also allows\r\n * direct conversion to \"utf8\", \"hex\", \"base64\" and \"binary\" encoding. \"debug\" returns a hex representation with\r\n * highlighted offsets.\r\n * @param {number=} begin Offset to begin at, defaults to {@link ByteBuffer#offset}\r\n * @param {number=} end Offset to end at, defaults to {@link ByteBuffer#limit}\r\n * @returns {string} String representation\r\n * @throws {Error} If `encoding` is invalid\r\n * @expose\r\n */\r\n ByteBufferPrototype.toString = function(encoding, begin, end) {\r\n if (typeof encoding === 'undefined')\r\n return \"ByteBufferNB(offset=\"+this.offset+\",markedOffset=\"+this.markedOffset+\",limit=\"+this.limit+\",capacity=\"+this.capacity()+\")\";\r\n if (typeof encoding === 'number')\r\n encoding = \"utf8\",\r\n begin = encoding,\r\n end = begin;\r\n switch (encoding) {\r\n case \"utf8\":\r\n return this.toUTF8(begin, end);\r\n case \"base64\":\r\n return this.toBase64(begin, end);\r\n case \"hex\":\r\n return this.toHex(begin, end);\r\n case \"binary\":\r\n return this.toBinary(begin, end);\r\n case \"debug\":\r\n return this.toDebug();\r\n case \"columns\":\r\n return this.toColumns();\r\n default:\r\n throw Error(\"Unsupported encoding: \"+encoding);\r\n }\r\n };\r\n\r\n // encodings/base64\r\n\r\n /**\r\n * Encodes this ByteBuffer's contents to a base64 encoded string.\r\n * @param {number=} begin Offset to begin at, defaults to {@link ByteBuffer#offset}.\r\n * @param {number=} end Offset to end at, defaults to {@link ByteBuffer#limit}.\r\n * @returns {string} Base64 encoded string\r\n * @throws {RangeError} If `begin` or `end` is out of bounds\r\n * @expose\r\n */\r\n ByteBufferPrototype.toBase64 = function(begin, end) {\r\n if (typeof begin === 'undefined')\r\n begin = this.offset;\r\n if (typeof end === 'undefined')\r\n end = this.limit;\r\n begin = begin | 0; end = end | 0;\r\n if (begin < 0 || end > this.capacity || begin > end)\r\n throw RangeError(\"begin, end\");\r\n return this.buffer.toString(\"base64\", begin, end);\r\n };\r\n\r\n /**\r\n * Decodes a base64 encoded string to a ByteBuffer.\r\n * @param {string} str String to decode\r\n * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to\r\n * {@link ByteBuffer.DEFAULT_ENDIAN}.\r\n * @returns {!ByteBuffer} ByteBuffer\r\n * @expose\r\n */\r\n ByteBuffer.fromBase64 = function(str, littleEndian) {\r\n return ByteBuffer.wrap(new Buffer(str, \"base64\"), littleEndian);\r\n return bb;\r\n };\r\n\r\n /**\r\n * Encodes a binary string to base64 like `window.btoa` does.\r\n * @param {string} str Binary string\r\n * @returns {string} Base64 encoded string\r\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Window.btoa\r\n * @expose\r\n */\r\n ByteBuffer.btoa = function(str) {\r\n return ByteBuffer.fromBinary(str).toBase64();\r\n };\r\n\r\n /**\r\n * Decodes a base64 encoded string to binary like `window.atob` does.\r\n * @param {string} b64 Base64 encoded string\r\n * @returns {string} Binary string\r\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Window.atob\r\n * @expose\r\n */\r\n ByteBuffer.atob = function(b64) {\r\n return ByteBuffer.fromBase64(b64).toBinary();\r\n };\r\n\r\n // encodings/binary\r\n\r\n /**\r\n * Encodes this ByteBuffer to a binary encoded string, that is using only characters 0x00-0xFF as bytes.\r\n * @param {number=} begin Offset to begin at. Defaults to {@link ByteBuffer#offset}.\r\n * @param {number=} end Offset to end at. Defaults to {@link ByteBuffer#limit}.\r\n * @returns {string} Binary encoded string\r\n * @throws {RangeError} If `offset > limit`\r\n * @expose\r\n */\r\n ByteBufferPrototype.toBinary = function(begin, end) {\r\n if (typeof begin === 'undefined')\r\n begin = this.offset;\r\n if (typeof end === 'undefined')\r\n end = this.limit;\r\n begin |= 0; end |= 0;\r\n if (begin < 0 || end > this.capacity() || begin > end)\r\n throw RangeError(\"begin, end\");\r\n return this.buffer.toString(\"binary\", begin, end);\r\n };\r\n\r\n /**\r\n * Decodes a binary encoded string, that is using only characters 0x00-0xFF as bytes, to a ByteBuffer.\r\n * @param {string} str String to decode\r\n * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to\r\n * {@link ByteBuffer.DEFAULT_ENDIAN}.\r\n * @returns {!ByteBuffer} ByteBuffer\r\n * @expose\r\n */\r\n ByteBuffer.fromBinary = function(str, littleEndian) {\r\n return ByteBuffer.wrap(new Buffer(str, \"binary\"), littleEndian);\r\n return bb;\r\n };\r\n\r\n // encodings/debug\r\n\r\n /**\r\n * Encodes this ByteBuffer to a hex encoded string with marked offsets. Offset symbols are:\r\n * * `<` : offset,\r\n * * `'` : markedOffset,\r\n * * `>` : limit,\r\n * * `|` : offset and limit,\r\n * * `[` : offset and markedOffset,\r\n * * `]` : markedOffset and limit,\r\n * * `!` : offset, markedOffset and limit\r\n * @param {boolean=} columns If `true` returns two columns hex + ascii, defaults to `false`\r\n * @returns {string|!Array.<string>} Debug string or array of lines if `asArray = true`\r\n * @expose\r\n * @example `>00'01 02<03` contains four bytes with `limit=0, markedOffset=1, offset=3`\r\n * @example `00[01 02 03>` contains four bytes with `offset=markedOffset=1, limit=4`\r\n * @example `00|01 02 03` contains four bytes with `offset=limit=1, markedOffset=-1`\r\n * @example `|` contains zero bytes with `offset=limit=0, markedOffset=-1`\r\n */\r\n ByteBufferPrototype.toDebug = function(columns) {\r\n var i = -1,\r\n k = this.buffer.length,\r\n b,\r\n hex = \"\",\r\n asc = \"\",\r\n out = \"\";\r\n while (i<k) {\r\n if (i !== -1) {\r\n b = this.buffer[i];\r\n if (b < 0x10) hex += \"0\"+b.toString(16).toUpperCase();\r\n else hex += b.toString(16).toUpperCase();\r\n if (columns)\r\n asc += b > 32 && b < 127 ? String.fromCharCode(b) : '.';\r\n }\r\n ++i;\r\n if (columns) {\r\n if (i > 0 && i % 16 === 0 && i !== k) {\r\n while (hex.length < 3*16+3) hex += \" \";\r\n out += hex+asc+\"\\n\";\r\n hex = asc = \"\";\r\n }\r\n }\r\n if (i === this.offset && i === this.limit)\r\n hex += i === this.markedOffset ? \"!\" : \"|\";\r\n else if (i === this.offset)\r\n hex += i === this.markedOffset ? \"[\" : \"<\";\r\n else if (i === this.limit)\r\n hex += i === this.markedOffset ? \"]\" : \">\";\r\n else\r\n hex += i === this.markedOffset ? \"'\" : (columns || (i !== 0 && i !== k) ? \" \" : \"\");\r\n }\r\n if (columns && hex !== \" \") {\r\n while (hex.length < 3*16+3)\r\n hex += \" \";\r\n out += hex + asc + \"\\n\";\r\n }\r\n return columns ? out : hex;\r\n };\r\n\r\n /**\r\n * Decodes a hex encoded string with marked offsets to a ByteBuffer.\r\n * @param {string} str Debug string to decode (not be generated with `columns = true`)\r\n * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to\r\n * {@link ByteBuffer.DEFAULT_ENDIAN}.\r\n * @param {boolean=} noAssert Whether to skip assertions of offsets and values. Defaults to\r\n * {@link ByteBuffer.DEFAULT_NOASSERT}.\r\n * @returns {!ByteBuffer} ByteBuffer\r\n * @expose\r\n * @see ByteBuffer#toDebug\r\n */\r\n ByteBuffer.fromDebug = function(str, littleEndian, noAssert) {\r\n var k = str.length,\r\n bb = new ByteBuffer(((k+1)/3)|0, littleEndian, noAssert);\r\n var i = 0, j = 0, ch, b,\r\n rs = false, // Require symbol next\r\n ho = false, hm = false, hl = false, // Already has offset (ho), markedOffset (hm), limit (hl)?\r\n fail = false;\r\n while (i<k) {\r\n switch (ch = str.charAt(i++)) {\r\n case '!':\r\n if (!noAssert) {\r\n if (ho || hm || hl) {\r\n fail = true;\r\n break;\r\n }\r\n ho = hm = hl = true;\r\n }\r\n bb.offset = bb.markedOffset = bb.limit = j;\r\n rs = false;\r\n break;\r\n case '|':\r\n if (!noAssert) {\r\n if (ho || hl) {\r\n fail = true;\r\n break;\r\n }\r\n ho = hl = true;\r\n }\r\n bb.offset = bb.limit = j;\r\n rs = false;\r\n break;\r\n case '[':\r\n if (!noAssert) {\r\n if (ho || hm) {\r\n fail = true;\r\n break;\r\n }\r\n ho = hm = true;\r\n }\r\n bb.offset = bb.markedOffset = j;\r\n rs = false;\r\n break;\r\n case '<':\r\n if (!noAssert) {\r\n if (ho) {\r\n fail = true;\r\n break;\r\n }\r\n ho = true;\r\n }\r\n bb.offset = j;\r\n rs = false;\r\n break;\r\n case ']':\r\n if (!noAssert) {\r\n if (hl || hm) {\r\n fail = true;\r\n break;\r\n }\r\n hl = hm = true;\r\n }\r\n bb.limit = bb.markedOffset = j;\r\n rs = false;\r\n break;\r\n case '>':\r\n if (!noAssert) {\r\n if (hl) {\r\n fail = true;\r\n break;\r\n }\r\n hl = true;\r\n }\r\n bb.limit = j;\r\n rs = false;\r\n break;\r\n case \"'\":\r\n if (!noAssert) {\r\n if (hm) {\r\n fail = true;\r\n break;\r\n }\r\n hm = true;\r\n }\r\n bb.markedOffset = j;\r\n rs = false;\r\n break;\r\n case ' ':\r\n rs = false;\r\n break;\r\n default:\r\n if (!noAssert) {\r\n if (rs) {\r\n fail = true;\r\n break;\r\n }\r\n }\r\n b = parseInt(ch+str.charAt(i++), 16);\r\n if (!noAssert) {\r\n if (isNaN(b) || b < 0 || b > 255)\r\n throw TypeError(\"Illegal str: Not a debug encoded string\");\r\n }\r\n bb.buffer[j++] = b;\r\n rs = true;\r\n }\r\n if (fail)\r\n throw TypeError(\"Illegal str: Invalid symbol at \"+i);\r\n }\r\n if (!noAssert) {\r\n if (!ho || !hl)\r\n throw TypeError(\"Illegal str: Missing offset or limit\");\r\n if (j<bb.buffer.length)\r\n throw TypeError(\"Illegal str: Not a debug encoded string (is it hex?) \"+j+\" < \"+k);\r\n }\r\n return bb;\r\n };\r\n\r\n // encodings/hex\r\n\r\n /**\r\n * Encodes this ByteBuffer's contents to a hex encoded string.\r\n * @param {number=} begin Offset to begin at. Defaults to {@link ByteBuffer#offset}.\r\n * @param {number=} end Offset to end at. Defaults to {@link ByteBuffer#limit}.\r\n * @returns {string} Hex encoded string\r\n * @expose\r\n */\r\n ByteBufferPrototype.toHex = function(begin, end) {\r\n begin = typeof begin === 'undefined' ? this.offset : begin;\r\n end = typeof end === 'undefined' ? this.limit : end;\r\n if (!this.noAssert) {\r\n if (typeof begin !== 'number' || begin % 1 !== 0)\n throw TypeError(\"Illegal begin: Not an integer\");\n begin >>>= 0;\n if (typeof end !== 'number' || end % 1 !== 0)\n throw TypeError(\"Illegal end: Not an integer\");\n end >>>= 0;\n if (begin < 0 || begin > end || end > this.buffer.length)\n throw RangeError(\"Illegal range: 0 <= \"+begin+\" <= \"+end+\" <= \"+this.buffer.length);\n }\r\n return this.buffer.toString(\"hex\", begin, end);\r\n };\r\n\r\n /**\r\n * Decodes a hex encoded string to a ByteBuffer.\r\n * @param {string} str String to decode\r\n * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to\r\n * {@link ByteBuffer.DEFAULT_ENDIAN}.\r\n * @param {boolean=} noAssert Whether to skip assertions of offsets and values. Defaults to\r\n * {@link ByteBuffer.DEFAULT_NOASSERT}.\r\n * @returns {!ByteBuffer} ByteBuffer\r\n * @expose\r\n */\r\n ByteBuffer.fromHex = function(str, littleEndian, noAssert) {\r\n if (!noAssert) {\r\n if (typeof str !== 'string')\r\n throw TypeError(\"Illegal str: Not a string\");\r\n if (str.length % 2 !== 0)\r\n throw TypeError(\"Illegal str: Length not a multiple of 2\");\r\n }\r\n var bb = new ByteBuffer(0, littleEndian, true);\r\n bb.buffer = new Buffer(str, \"hex\");\r\n bb.limit = bb.buffer.length;\r\n return bb;\r\n };\r\n\r\n // utfx-embeddable\r\n\r\n /**\r\n * utfx-embeddable (c) 2014 Daniel Wirtz <dcode@dcode.io>\r\n * Released under the Apache License, Version 2.0\r\n * see: https://github.com/dcodeIO/utfx for details\r\n */\r\n var utfx = function() {\r\n \"use strict\";\r\n\r\n /**\r\n * utfx namespace.\r\n * @inner\r\n * @type {!Object.<string,*>}\r\n */\r\n var utfx = {};\r\n\r\n /**\r\n * Maximum valid code point.\r\n * @type {number}\r\n * @const\r\n */\r\n utfx.MAX_CODEPOINT = 0x10FFFF;\r\n\r\n /**\r\n * Encodes UTF8 code points to UTF8 bytes.\r\n * @param {(!function():number|null) | number} src Code points source, either as a function returning the next code point\r\n * respectively `null` if there are no more code points left or a single numeric code point.\r\n * @param {!function(number)} dst Bytes destination as a function successively called with the next byte\r\n */\r\n utfx.encodeUTF8 = function(src, dst) {\r\n var cp = null;\r\n if (typeof src === 'number')\r\n cp = src,\r\n src = function() { return null; };\r\n while (cp !== null || (cp = src()) !== null) {\r\n if (cp < 0x80)\r\n dst(cp&0x7F);\r\n else if (cp < 0x800)\r\n dst(((cp>>6)&0x1F)|0xC0),\r\n dst((cp&0x3F)|0x80);\r\n else if (cp < 0x10000)\r\n dst(((cp>>12)&0x0F)|0xE0),\r\n dst(((cp>>6)&0x3F)|0x80),\r\n dst((cp&0x3F)|0x80);\r\n else\r\n dst(((cp>>18)&0x07)|0xF0),\r\n dst(((cp>>12)&0x3F)|0x80),\r\n dst(((cp>>6)&0x3F)|0x80),\r\n dst((cp&0x3F)|0x80);\r\n cp = null;\r\n }\r\n };\r\n\r\n /**\r\n * Decodes UTF8 bytes to UTF8 code points.\r\n * @param {!function():number|null} src Bytes source as a function returning the next byte respectively `null` if there\r\n * are no more bytes left.\r\n * @param {!function(number)} dst Code points destination as a function successively called with each decoded code point.\r\n * @throws {RangeError} If a starting byte is invalid in UTF8\r\n * @throws {Error} If the last sequence is truncated. Has an array property `bytes` holding the\r\n * remaining bytes.\r\n */\r\n utfx.decodeUTF8 = function(src, dst) {\r\n var a, b, c, d, fail = function(b) {\r\n b = b.slice(0, b.indexOf(null));\r\n var err = Error(b.toString());\r\n err.name = \"TruncatedError\";\r\n err['bytes'] = b;\r\n throw err;\r\n };\r\n while ((a = src()) !== null) {\r\n if ((a&0x80) === 0)\r\n dst(a);\r\n else if ((a&0xE0) === 0xC0)\r\n ((b = src()) === null) && fail([a, b]),\r\n dst(((a&0x1F)<<6) | (b&0x3F));\r\n else if ((a&0xF0) === 0xE0)\r\n ((b=src()) === null || (c=src()) === null) && fail([a, b, c]),\r\n dst(((a&0x0F)<<12) | ((b&0x3F)<<6) | (c&0x3F));\r\n else if ((a&0xF8) === 0xF0)\r\n ((b=src()) === null || (c=src()) === null || (d=src()) === null) && fail([a, b, c ,d]),\r\n dst(((a&0x07)<<18) | ((b&0x3F)<<12) | ((c&0x3F)<<6) | (d&0x3F));\r\n else throw RangeError(\"Illegal starting byte: \"+a);\r\n }\r\n };\r\n\r\n /**\r\n * Converts UTF16 characters to UTF8 code points.\r\n * @param {!function():number|null} src Characters source as a function returning the next char code respectively\r\n * `null` if there are no more characters left.\r\n * @param {!function(number)} dst Code points destination as a function successively called with each converted code\r\n * point.\r\n */\r\n utfx.UTF16toUTF8 = function(src, dst) {\r\n var c1, c2 = null;\r\n while (true) {\r\n if ((c1 = c2 !== null ? c2 : src()) === null)\r\n break;\r\n if (c1 >= 0xD800 && c1 <= 0xDFFF) {\r\n if ((c2 = src()) !== null) {\r\n if (c2 >= 0xDC00 && c2 <= 0xDFFF) {\r\n dst((c1-0xD800)*0x400+c2-0xDC00+0x10000);\r\n c2 = null; continue;\r\n }\r\n }\r\n }\r\n dst(c1);\r\n }\r\n if (c2 !== null) dst(c2);\r\n };\r\n\r\n /**\r\n * Converts UTF8 code points to UTF16 characters.\r\n * @param {(!function():number|null) | number} src Code points source, either as a function returning the next code point\r\n * respectively `null` if there are no more code points left or a single numeric code point.\r\n * @param {!function(number)} dst Characters destination as a function successively called with each converted char code.\r\n * @throws {RangeError} If a code point is out of range\r\n */\r\n utfx.UTF8toUTF16 = function(src, dst) {\r\n var cp = null;\r\n if (typeof src === 'number')\r\n cp = src, src = function() { return null; };\r\n while (cp !== null || (cp = src()) !== null) {\r\n if (cp <= 0xFFFF)\r\n dst(cp);\r\n else\r\n cp -= 0x10000,\r\n dst((cp>>10)+0xD800),\r\n dst((cp%0x400)+0xDC00);\r\n cp = null;\r\n }\r\n };\r\n\r\n /**\r\n * Converts and encodes UTF16 characters to UTF8 bytes.\r\n * @param {!function():number|null} src Characters source as a function returning the next char code respectively `null`\r\n * if there are no more characters left.\r\n * @param {!function(number)} dst Bytes destination as a function successively called with the next byte.\r\n */\r\n utfx.encodeUTF16toUTF8 = function(src, dst) {\r\n utfx.UTF16toUTF8(src, function(cp) {\r\n utfx.encodeUTF8(cp, dst);\r\n });\r\n };\r\n\r\n /**\r\n * Decodes and converts UTF8 bytes to UTF16 characters.\r\n * @param {!function():number|null} src Bytes source as a function returning the next byte respectively `null` if there\r\n * are no more bytes left.\r\n * @param {!function(number)} dst Characters destination as a function successively called with each converted char code.\r\n * @throws {RangeError} If a starting byte is invalid in UTF8\r\n * @throws {Error} If the last sequence is truncated. Has an array property `bytes` holding the remaining bytes.\r\n */\r\n utfx.decodeUTF8toUTF16 = function(src, dst) {\r\n utfx.decodeUTF8(src, function(cp) {\r\n utfx.UTF8toUTF16(cp, dst);\r\n });\r\n };\r\n\r\n /**\r\n * Calculates the byte length of an UTF8 code point.\r\n * @param {number} cp UTF8 code point\r\n * @returns {number} Byte length\r\n */\r\n utfx.calculateCodePoint = function(cp) {\r\n return (cp < 0x80) ? 1 : (cp < 0x800) ? 2 : (cp < 0x10000) ? 3 : 4;\r\n };\r\n\r\n /**\r\n * Calculates the number of UTF8 bytes required to store UTF8 code points.\r\n * @param {(!function():number|null)} src Code points source as a function returning the next code point respectively\r\n * `null` if there are no more code points left.\r\n * @returns {number} The number of UTF8 bytes required\r\n */\r\n utfx.calculateUTF8 = function(src) {\r\n var cp, l=0;\r\n while ((cp = src()) !== null)\r\n l += (cp < 0x80) ? 1 : (cp < 0x800) ? 2 : (cp < 0x10000) ? 3 : 4;\r\n return l;\r\n };\r\n\r\n /**\r\n * Calculates the number of UTF8 code points respectively UTF8 bytes required to store UTF16 char codes.\r\n * @param {(!function():number|null)} src Characters source as a function returning the next char code respectively\r\n * `null` if there are no more characters left.\r\n * @returns {!Array.<number>} The number of UTF8 code points at index 0 and the number of UTF8 bytes required at index 1.\r\n */\r\n utfx.calculateUTF16asUTF8 = function(src) {\r\n var n=0, l=0;\r\n utfx.UTF16toUTF8(src, function(cp) {\r\n ++n; l += (cp < 0x80) ? 1 : (cp < 0x800) ? 2 : (cp < 0x10000) ? 3 : 4;\r\n });\r\n return [n,l];\r\n };\r\n\r\n return utfx;\r\n }();\r\n\r\n // encodings/utf8\r\n\r\n /**\r\n * Encodes this ByteBuffer's contents between {@link ByteBuffer#offset} and {@link ByteBuffer#limit} to an UTF8 encoded\r\n * string.\r\n * @returns {string} Hex encoded string\r\n * @throws {RangeError} If `offset > limit`\r\n * @expose\r\n */\r\n ByteBufferPrototype.toUTF8 = function(begin, end) {\r\n if (typeof begin === 'undefined') begin = this.offset;\r\n if (typeof end === 'undefined') end = this.limit;\r\n if (!this.noAssert) {\r\n if (typeof begin !== 'number' || begin % 1 !== 0)\n throw TypeError(\"Illegal begin: Not an integer\");\n begin >>>= 0;\n if (typeof end !== 'number' || end % 1 !== 0)\n throw TypeError(\"Illegal end: Not an integer\");\n end >>>= 0;\n if (begin < 0 || begin > end || end > this.buffer.length)\n throw RangeError(\"Illegal range: 0 <= \"+begin+\" <= \"+end+\" <= \"+this.buffer.length);\n }\r\n return this.buffer.toString(\"utf8\", begin, end);\r\n };\r\n\r\n /**\r\n * Decodes an UTF8 encoded string to a ByteBuffer.\r\n * @param {string} str String to decode\r\n * @param {boolean=} littleEndian Whether to use little or big endian byte order. Defaults to\r\n * {@link ByteBuffer.DEFAULT_ENDIAN}.\r\n * @param {boolean=} noAssert Whether to skip assertions of offsets and values. Defaults to\r\n * {@link ByteBuffer.DEFAULT_NOASSERT}.\r\n * @returns {!ByteBuffer} ByteBuffer\r\n * @expose\r\n */\r\n ByteBuffer.fromUTF8 = function(str, littleEndian, noAssert) {\r\n if (!noAssert)\r\n if (typeof str !== 'string')\r\n throw TypeError(\"Illegal str: Not a string\");\r\n var bb = new ByteBuffer(0, littleEndian, noAssert);\r\n bb.buffer = new Buffer(str, \"utf8\");\r\n bb.limit = bb.buffer.length;\r\n return bb;\r\n };\r\n\r\n\r\n /**\r\n * node-memcpy. This is an optional binding dependency and may not be present.\r\n * @function\r\n * @param {!(Buffer|ArrayBuffer|Uint8Array)} target Destination\r\n * @param {number|!(Buffer|ArrayBuffer)} targetStart Destination start, defaults to 0.\r\n * @param {(!(Buffer|ArrayBuffer|Uint8Array)|number)=} source Source\r\n * @param {number=} sourceStart Source start, defaults to 0.\r\n * @param {number=} sourceEnd Source end, defaults to capacity.\r\n * @returns {number} Number of bytes copied\r\n * @throws {Error} If any index is out of bounds\r\n * @expose\r\n */\r\n ByteBuffer.memcpy = memcpy;\r\n\r\n return ByteBuffer;\r\n\r\n})();\r\n","/**\n * @license\n * Copyright 2009 The Closure Library Authors\n * Copyright 2020 Daniel Wirtz / The long.js Authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * SPDX-License-Identifier: Apache-2.0\n */\n\n// WebAssembly optimizations to do native i64 multiplication and divide\nvar wasm = null;\ntry {\n wasm = new WebAssembly.Instance(\n new WebAssembly.Module(\n new Uint8Array([\n // \\0asm\n 0, 97, 115, 109,\n // version 1\n 1, 0, 0, 0,\n\n // section \"type\"\n 1, 13, 2,\n // 0, () => i32\n 96, 0, 1, 127,\n // 1, (i32, i32, i32, i32) => i32\n 96, 4, 127, 127, 127, 127, 1, 127,\n\n // section \"function\"\n 3, 7, 6,\n // 0, type 0\n 0,\n // 1, type 1\n 1,\n // 2, type 1\n 1,\n // 3, type 1\n 1,\n // 4, type 1\n 1,\n // 5, type 1\n 1,\n\n // section \"global\"\n 6, 6, 1,\n // 0, \"high\", mutable i32\n 127, 1, 65, 0, 11,\n\n // section \"export\"\n 7, 50, 6,\n // 0, \"mul\"\n 3, 109, 117, 108, 0, 1,\n // 1, \"div_s\"\n 5, 100, 105, 118, 95, 115, 0, 2,\n // 2, \"div_u\"\n 5, 100, 105, 118, 95, 117, 0, 3,\n // 3, \"rem_s\"\n 5, 114, 101, 109, 95, 115, 0, 4,\n // 4, \"rem_u\"\n 5, 114, 101, 109, 95, 117, 0, 5,\n // 5, \"get_high\"\n 8, 103, 101, 116, 95, 104, 105, 103, 104, 0, 0,\n\n // section \"code\"\n 10, 191, 1, 6,\n // 0, \"get_high\"\n 4, 0, 35, 0, 11,\n // 1, \"mul\"\n 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32,\n 3, 173, 66, 32, 134, 132, 126, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4,\n 167, 11,\n // 2, \"div_s\"\n 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32,\n 3, 173, 66, 32, 134, 132, 127, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4,\n 167, 11,\n // 3, \"div_u\"\n 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32,\n 3, 173, 66, 32, 134, 132, 128, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4,\n 167, 11,\n // 4, \"rem_s\"\n 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32,\n 3, 173, 66, 32, 134, 132, 129, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4,\n 167, 11,\n // 5, \"rem_u\"\n 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32,\n 3, 173, 66, 32, 134, 132, 130, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4,\n 167, 11,\n ]),\n ),\n {},\n ).exports;\n} catch {\n // no wasm support :(\n}\n\n/**\n * Constructs a 64 bit two's-complement integer, given its low and high 32 bit values as *signed* integers.\n * See the from* functions below for more convenient ways of constructing Longs.\n * @exports Long\n * @class A Long class for representing a 64 bit two's-complement integer value.\n * @param {number} low The low (signed) 32 bits of the long\n * @param {number} high The high (signed) 32 bits of the long\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\n * @constructor\n */\nfunction Long(low, high, unsigned) {\n /**\n * The low 32 bits as a signed value.\n * @type {number}\n */\n this.low = low | 0;\n\n /**\n * The high 32 bits as a signed value.\n * @type {number}\n */\n this.high = high | 0;\n\n /**\n * Whether unsigned or not.\n * @type {boolean}\n */\n this.unsigned = !!unsigned;\n}\n\n// The internal representation of a long is the two given signed, 32-bit values.\n// We use 32-bit pieces because these are the size of integers on which\n// Javascript performs bit-operations. For operations like addition and\n// multiplication, we split each number into 16 bit pieces, which can easily be\n// multiplied within Javascript's floating-point representation without overflow\n// or change in sign.\n//\n// In the algorithms below, we frequently reduce the negative case to the\n// positive case by negating the input(s) and then post-processing the result.\n// Note that we must ALWAYS check specially whether those values are MIN_VALUE\n// (-2^63) because -MIN_VALUE == MIN_VALUE (since 2^63 cannot be represented as\n// a positive number, it overflows back into a negative). Not handling this\n// case would often result in infinite recursion.\n//\n// Common constant values ZERO, ONE, NEG_ONE, etc. are defined below the from*\n// methods on which they depend.\n\n/**\n * An indicator used to reliably determine if an object is a Long or not.\n * @type {boolean}\n * @const\n * @private\n */\nLong.prototype.__isLong__;\n\nObject.defineProperty(Long.prototype, \"__isLong__\", { value: true });\n\n/**\n * @function\n * @param {*} obj Object\n * @returns {boolean}\n * @inner\n */\nfunction isLong(obj) {\n return (obj && obj[\"__isLong__\"]) === true;\n}\n\n/**\n * @function\n * @param {*} value number\n * @returns {number}\n * @inner\n */\nfunction ctz32(value) {\n var c = Math.clz32(value & -value);\n return value ? 31 - c : c;\n}\n\n/**\n * Tests if the specified object is a Long.\n * @function\n * @param {*} obj Object\n * @returns {boolean}\n */\nLong.isLong = isLong;\n\n/**\n * A cache of the Long representations of small integer values.\n * @type {!Object}\n * @inner\n */\nvar INT_CACHE = {};\n\n/**\n * A cache of the Long representations of small unsigned integer values.\n * @type {!Object}\n * @inner\n */\nvar UINT_CACHE = {};\n\n/**\n * @param {number} value\n * @param {boolean=} unsigned\n * @returns {!Long}\n * @inner\n */\nfunction fromInt(value, unsigned) {\n var obj, cachedObj, cache;\n if (unsigned) {\n value >>>= 0;\n if ((cache = 0 <= value && value < 256)) {\n cachedObj = UINT_CACHE[value];\n if (cachedObj) return cachedObj;\n }\n obj = fromBits(value, 0, true);\n if (cache) UINT_CACHE[value] = obj;\n return obj;\n } else {\n value |= 0;\n if ((cache = -128 <= value && value < 128)) {\n cachedObj = INT_CACHE[value];\n if (cachedObj) return cachedObj;\n }\n obj = fromBits(value, value < 0 ? -1 : 0, false);\n if (cache) INT_CACHE[value] = obj;\n return obj;\n }\n}\n\n/**\n * Returns a Long representing the given 32 bit integer value.\n * @function\n * @param {number} value The 32 bit integer in question\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\n * @returns {!Long} The corresponding Long value\n */\nLong.fromInt = fromInt;\n\n/**\n * @param {number} value\n * @param {boolean=} unsigned\n * @returns {!Long}\n * @inner\n */\nfunction fromNumber(value, unsigned) {\n if (isNaN(value)) return unsigned ? UZERO : ZERO;\n if (unsigned) {\n if (value < 0) return UZERO;\n if (value >= TWO_PWR_64_DBL) return MAX_UNSIGNED_VALUE;\n } else {\n if (value <= -TWO_PWR_63_DBL) return MIN_VALUE;\n if (value + 1 >= TWO_PWR_63_DBL) return MAX_VALUE;\n }\n if (value < 0) return fromNumber(-value, unsigned).neg();\n return fromBits(\n value % TWO_PWR_32_DBL | 0,\n (value / TWO_PWR_32_DBL) | 0,\n unsigned,\n );\n}\n\n/**\n * Returns a Long representing the given value, provided that it is a finite number. Otherwise, zero is returned.\n * @function\n * @param {number} value The number in question\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\n * @returns {!Long} The corresponding Long value\n */\nLong.fromNumber = fromNumber;\n\n/**\n * @param {number} lowBits\n * @param {number} highBits\n * @param {boolean=} unsigned\n * @returns {!Long}\n * @inner\n */\nfunction fromBits(lowBits, highBits, unsigned) {\n return new Long(lowBits, highBits, unsigned);\n}\n\n/**\n * Returns a Long representing the 64 bit integer that comes by concatenating the given low and high bits. Each is\n * assumed to use 32 bits.\n * @function\n * @param {number} lowBits The low 32 bits\n * @param {number} highBits The high 32 bits\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\n * @returns {!Long} The corresponding Long value\n */\nLong.fromBits = fromBits;\n\n/**\n * @function\n * @param {number} base\n * @param {number} exponent\n * @returns {number}\n * @inner\n */\nvar pow_dbl = Math.pow; // Used 4 times (4*8 to 15+4)\n\n/**\n * @param {string} str\n * @param {(boolean|number)=} unsigned\n * @param {number=} radix\n * @returns {!Long}\n * @inner\n */\nfunction fromString(str, unsigned, radix) {\n if (str.length === 0) throw Error(\"empty string\");\n if (typeof unsigned === \"number\") {\n // For goog.math.long compatibility\n radix = unsigned;\n unsigned = false;\n } else {\n unsigned = !!unsigned;\n }\n if (\n str === \"NaN\" ||\n str === \"Infinity\" ||\n str === \"+Infinity\" ||\n str === \"-Infinity\"\n )\n return unsigned ? UZERO : ZERO;\n radix = radix || 10;\n if (radix < 2 || 36 < radix) throw RangeError(\"radix\");\n\n var p;\n if ((p = str.indexOf(\"-\")) > 0) throw Error(\"interior hyphen\");\n else if (p === 0) {\n return fromString(str.substring(1), unsigned, radix).neg();\n }\n\n // Do several (8) digits each time through the loop, so as to\n // minimize the calls to the very expensive emulated div.\n var radixToPower = fromNumber(pow_dbl(radix, 8));\n\n var result = ZERO;\n for (var i = 0; i < str.length; i += 8) {\n var size = Math.min(8, str.length - i),\n value = parseInt(str.substring(i, i + size), radix);\n if (size < 8) {\n var power = fromNumber(pow_dbl(radix, size));\n result = result.mul(power).add(fromNumber(value));\n } else {\n result = result.mul(radixToPower);\n result = result.add(fromNumber(value));\n }\n }\n result.unsigned = unsigned;\n return result;\n}\n\n/**\n * Returns a Long representation of the given string, written using the specified radix.\n * @function\n * @param {string} str The textual representation of the Long\n * @param {(boolean|number)=} unsigned Whether unsigned or not, defaults to signed\n * @param {number=} radix The radix in which the text is written (2-36), defaults to 10\n * @returns {!Long} The corresponding Long value\n */\nLong.fromString = fromString;\n\n/**\n * @function\n * @param {!Long|number|string|!{low: number, high: number, unsigned: boolean}} val\n * @param {boolean=} unsigned\n * @returns {!Long}\n * @inner\n */\nfunction fromValue(val, unsigned) {\n if (typeof val === \"number\") return fromNumber(val, unsigned);\n if (typeof val === \"string\") return fromString(val, unsigned);\n // Throws for non-objects, converts non-instanceof Long:\n return fromBits(\n val.low,\n val.high,\n typeof unsigned === \"boolean\" ? unsigned : val.unsigned,\n );\n}\n\n/**\n * Converts the specified value to a Long using the appropriate from* function for its type.\n * @function\n * @param {!Long|number|bigint|string|!{low: number, high: number, unsigned: boolean}} val Value\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\n * @returns {!Long}\n */\nLong.fromValue = fromValue;\n\n// NOTE: the compiler should inline these constant values below and then remove these variables, so there should be\n// no runtime penalty for these.\n\n/**\n * @type {number}\n * @const\n * @inner\n */\nvar TWO_PWR_16_DBL = 1 << 16;\n\n/**\n * @type {number}\n * @const\n * @inner\n */\nvar TWO_PWR_24_DBL = 1 << 24;\n\n/**\n * @type {number}\n * @const\n * @inner\n */\nvar TWO_PWR_32_DBL = TWO_PWR_16_DBL * TWO_PWR_16_DBL;\n\n/**\n * @type {number}\n * @const\n * @inner\n */\nvar TWO_PWR_64_DBL = TWO_PWR_32_DBL * TWO_PWR_32_DBL;\n\n/**\n * @type {number}\n * @const\n * @inner\n */\nvar TWO_PWR_63_DBL = TWO_PWR_64_DBL / 2;\n\n/**\n * @type {!Long}\n * @const\n * @inner\n */\nvar TWO_PWR_24 = fromInt(TWO_PWR_24_DBL);\n\n/**\n * @type {!Long}\n * @inner\n */\nvar ZERO = fromInt(0);\n\n/**\n * Signed zero.\n * @type {!Long}\n */\nLong.ZERO = ZERO;\n\n/**\n * @type {!Long}\n * @inner\n */\nvar UZERO = fromInt(0, true);\n\n/**\n * Unsigned zero.\n * @type {!Long}\n */\nLong.UZERO = UZERO;\n\n/**\n * @type {!Long}\n * @inner\n */\nvar ONE = fromInt(1);\n\n/**\n * Signed one.\n * @type {!Long}\n */\nLong.ONE = ONE;\n\n/**\n * @type {!Long}\n * @inner\n */\nvar UONE = fromInt(1, true);\n\n/**\n * Unsigned one.\n * @type {!Long}\n */\nLong.UONE = UONE;\n\n/**\n * @type {!Long}\n * @inner\n */\nvar NEG_ONE = fromInt(-1);\n\n/**\n * Signed negative one.\n * @type {!Long}\n */\nLong.NEG_ONE = NEG_ONE;\n\n/**\n * @type {!Long}\n * @inner\n */\nvar MAX_VALUE = fromBits(0xffffffff | 0, 0x7fffffff | 0, false);\n\n/**\n * Maximum signed value.\n * @type {!Long}\n */\nLong.MAX_VALUE = MAX_VALUE;\n\n/**\n * @type {!Long}\n * @inner\n */\nvar MAX_UNSIGNED_VALUE = fromBits(0xffffffff | 0, 0xffffffff | 0, true);\n\n/**\n * Maximum unsigned value.\n * @type {!Long}\n */\nLong.MAX_UNSIGNED_VALUE = MAX_UNSIGNED_VALUE;\n\n/**\n * @type {!Long}\n * @inner\n */\nvar MIN_VALUE = fromBits(0, 0x80000000 | 0, false);\n\n/**\n * Minimum signed value.\n * @type {!Long}\n */\nLong.MIN_VALUE = MIN_VALUE;\n\n/**\n * @alias Long.prototype\n * @inner\n */\nvar LongPrototype = Long.prototype;\n\n/**\n * Converts the Long to a 32 bit integer, assuming it is a 32 bit integer.\n * @this {!Long}\n * @returns {number}\n */\nLongPrototype.toInt = function toInt() {\n return this.unsigned ? this.low >>> 0 : this.low;\n};\n\n/**\n * Converts the Long to a the nearest floating-point representation of this value (double, 53 bit mantissa).\n * @this {!Long}\n * @returns {number}\n */\nLongPrototype.toNumber = function toNumber() {\n if (this.unsigned)\n return (this.high >>> 0) * TWO_PWR_32_DBL + (this.low >>> 0);\n return this.high * TWO_PWR_32_DBL + (this.low >>> 0);\n};\n\n/**\n * Converts the Long to a string written in the specified radix.\n * @this {!Long}\n * @param {number=} radix Radix (2-36), defaults to 10\n * @returns {string}\n * @override\n * @throws {RangeError} If `radix` is out of range\n */\nLongPrototype.toString = function toString(radix) {\n radix = radix || 10;\n if (radix < 2 || 36 < radix) throw RangeError(\"radix\");\n if (this.isZero()) return \"0\";\n if (this.isNegative()) {\n // Unsigned Longs are never negative\n if (this.eq(MIN_VALUE)) {\n // We need to change the Long value before it can be negated, so we remove\n // the bottom-most digit in this base and then recurse to do the rest.\n var radixLong = fromNumber(radix),\n div = this.div(radixLong),\n rem1 = div.mul(radixLong).sub(this);\n return div.toString(radix) + rem1.toInt().toString(radix);\n } else return \"-\" + this.neg().toString(radix);\n }\n\n // Do several (6) digits each time through the loop, so as to\n // minimize the calls to the very expensive emulated div.\n var radixToPower = fromNumber(pow_dbl(radix, 6), this.unsigned),\n rem = this;\n var result = \"\";\n while (true) {\n var remDiv = rem.div(radixToPower),\n intval = rem.sub(remDiv.mul(radixToPower)).toInt() >>> 0,\n digits = intval.toString(radix);\n rem = remDiv;\n if (rem.isZero()) return digits + result;\n else {\n while (digits.length < 6) digits = \"0\" + digits;\n result = \"\" + digits + result;\n }\n }\n};\n\n/**\n * Gets the high 32 bits as a signed integer.\n * @this {!Long}\n * @returns {number} Signed high bits\n */\nLongPrototype.getHighBits = function getHighBits() {\n return this.high;\n};\n\n/**\n * Gets the high 32 bits as an unsigned integer.\n * @this {!Long}\n * @returns {number} Unsigned high bits\n */\nLongPrototype.getHighBitsUnsigned = function getHighBitsUnsigned() {\n return this.high >>> 0;\n};\n\n/**\n * Gets the low 32 bits as a signed integer.\n * @this {!Long}\n * @returns {number} Signed low bits\n */\nLongPrototype.getLowBits = function getLowBits() {\n return this.low;\n};\n\n/**\n * Gets the low 32 bits as an unsigned integer.\n * @this {!Long}\n * @returns {number} Unsigned low bits\n */\nLongPrototype.getLowBitsUnsigned = function getLowBitsUnsigned() {\n return this.low >>> 0;\n};\n\n/**\n * Gets the number of bits needed to represent the absolute value of this Long.\n * @this {!Long}\n * @returns {number}\n */\nLongPrototype.getNumBitsAbs = function getNumBitsAbs() {\n if (this.isNegative())\n // Unsigned Longs are never negative\n return this.eq(MIN_VALUE) ? 64 : this.neg().getNumBitsAbs();\n var val = this.high != 0 ? this.high : this.low;\n for (var bit = 31; bit > 0; bit--) if ((val & (1 << bit)) != 0) break;\n return this.high != 0 ? bit + 33 : bit + 1;\n};\n\n/**\n * Tests if this Long can be safely represented as a JavaScript number.\n * @this {!Long}\n * @returns {boolean}\n */\nLongPrototype.isSafeInteger = function isSafeInteger() {\n // 2^53-1 is the maximum safe value\n var top11Bits = this.high >> 21;\n // [0, 2^53-1]\n if (!top11Bits) return true;\n // > 2^53-1\n if (this.unsigned) return false;\n // [-2^53, -1] except -2^53\n return top11Bits === -1 && !(this.low === 0 && this.high === -0x200000);\n};\n\n/**\n * Tests if this Long's value equals zero.\n * @this {!Long}\n * @returns {boolean}\n */\nLongPrototype.isZero = function isZero() {\n return this.high === 0 && this.low === 0;\n};\n\n/**\n * Tests if this Long's value equals zero. This is an alias of {@link Long#isZero}.\n * @returns {boolean}\n */\nLongPrototype.eqz = LongPrototype.isZero;\n\n/**\n * Tests if this Long's value is negative.\n * @this {!Long}\n * @returns {boolean}\n */\nLongPrototype.isNegative = function isNegative() {\n return !this.unsigned && this.high < 0;\n};\n\n/**\n * Tests if this Long's value is positive or zero.\n * @this {!Long}\n * @returns {boolean}\n */\nLongPrototype.isPositive = function isPositive() {\n return this.unsigned || this.high >= 0;\n};\n\n/**\n * Tests if this Long's value is odd.\n * @this {!Long}\n * @returns {boolean}\n */\nLongPrototype.isOdd = function isOdd() {\n return (this.low & 1) === 1;\n};\n\n/**\n * Tests if this Long's value is even.\n * @this {!Long}\n * @returns {boolean}\n */\nLongPrototype.isEven = function isEven() {\n return (this.low & 1) === 0;\n};\n\n/**\n * Tests if this Long's value equals the specified's.\n * @this {!Long}\n * @param {!Long|number|bigint|string} other Other value\n * @returns {boolean}\n */\nLongPrototype.equals = function equals(other) {\n if (!isLong(other)) other = fromValue(other);\n if (\n this.unsigned !== other.unsigned &&\n this.high >>> 31 === 1 &&\n other.high >>> 31 === 1\n )\n return false;\n return this.high === other.high && this.low === other.low;\n};\n\n/**\n * Tests if this Long's value equals the specified's. This is an alias of {@link Long#equals}.\n * @function\n * @param {!Long|number|bigint|string} other Other value\n * @returns {boolean}\n */\nLongPrototype.eq = LongPrototype.equals;\n\n/**\n * Tests if this Long's value differs from the specified's.\n * @this {!Long}\n * @param {!Long|number|bigint|string} other Other value\n * @returns {boolean}\n */\nLongPrototype.notEquals = function notEquals(other) {\n return !this.eq(/* validates */ other);\n};\n\n/**\n * Tests if this Long's value differs from the specified's. This is an alias of {@link Long#notEquals}.\n * @function\n * @param {!Long|number|bigint|string} other Other value\n * @returns {boolean}\n */\nLongPrototype.neq = LongPrototype.notEquals;\n\n/**\n * Tests if this Long's value differs from the specified's. This is an alias of {@link Long#notEquals}.\n * @function\n * @param {!Long|number|bigint|string} other Other value\n * @returns {boolean}\n */\nLongPrototype.ne = LongPrototype.notEquals;\n\n/**\n * Tests if this Long's value is less than the specified's.\n * @this {!Long}\n * @param {!Long|number|bigint|string} other Other value\n * @returns {boolean}\n */\nLongPrototype.lessThan = function lessThan(other) {\n return this.comp(/* validates */ other) < 0;\n};\n\n/**\n * Tests if this Long's value is less than the specified's. This is an alias of {@link Long#lessThan}.\n * @function\n * @param {!Long|number|bigint|string} other Other value\n * @returns {boolean}\n */\nLongPrototype.lt = LongPrototype.lessThan;\n\n/**\n * Tests if this Long's value is less than or equal the specified's.\n * @this {!Long}\n * @param {!Long|number|bigint|string} other Other value\n * @returns {boolean}\n */\nLongPrototype.lessThanOrEqual = function lessThanOrEqual(other) {\n return this.comp(/* validates */ other) <= 0;\n};\n\n/**\n * Tests if this Long's value is less than or equal the specified's. This is an alias of {@link Long#lessThanOrEqual}.\n * @function\n * @param {!Long|number|bigint|string} other Other value\n * @returns {boolean}\n */\nLongPrototype.lte = LongPrototype.lessThanOrEqual;\n\n/**\n * Tests if this Long's value is less than or equal the specified's. This is an alias of {@link Long#lessThanOrEqual}.\n * @function\n * @param {!Long|number|bigint|string} other Other value\n * @returns {boolean}\n */\nLongPrototype.le = LongPrototype.lessThanOrEqual;\n\n/**\n * Tests if this Long's value is greater than the specified's.\n * @this {!Long}\n * @param {!Long|number|bigint|string} other Other value\n * @returns {boolean}\n */\nLongPrototype.greaterThan = function greaterThan(other) {\n return this.comp(/* validates */ other) > 0;\n};\n\n/**\n * Tests if this Long's value is greater than the specified's. This is an alias of {@link Long#greaterThan}.\n * @function\n * @param {!Long|number|bigint|string} other Other value\n * @returns {boolean}\n */\nLongPrototype.gt = LongPrototype.greaterThan;\n\n/**\n * Tests if this Long's value is greater than or equal the specified's.\n * @this {!Long}\n * @param {!Long|number|bigint|string} other Other value\n * @returns {boolean}\n */\nLongPrototype.greaterThanOrEqual = function greaterThanOrEqual(other) {\n return this.comp(/* validates */ other) >= 0;\n};\n\n/**\n * Tests if this Long's value is greater than or equal the specified's. This is an alias of {@link Long#greaterThanOrEqual}.\n * @function\n * @param {!Long|number|bigint|string} other Other value\n * @returns {boolean}\n */\nLongPrototype.gte = LongPrototype.greaterThanOrEqual;\n\n/**\n * Tests if this Long's value is greater than or equal the specified's. This is an alias of {@link Long#greaterThanOrEqual}.\n * @function\n * @param {!Long|number|bigint|string} other Other value\n * @returns {boolean}\n */\nLongPrototype.ge = LongPrototype.greaterThanOrEqual;\n\n/**\n * Compares this Long's value with the specified's.\n * @this {!Long}\n * @param {!Long|number|bigint|string} other Other value\n * @returns {number} 0 if they are the same, 1 if the this is greater and -1\n * if the given one is greater\n */\nLongPrototype.compare = function compare(other) {\n if (!isLong(other)) other = fromValue(other);\n if (this.eq(other)) return 0;\n var thisNeg = this.isNegative(),\n otherNeg = other.isNegative();\n if (thisNeg && !otherNeg) return -1;\n if (!thisNeg && otherNeg) return 1;\n // At this point the sign bits are the same\n if (!this.unsigned) return this.sub(other).isNegative() ? -1 : 1;\n // Both are positive if at least one is unsigned\n return other.high >>> 0 > this.high >>> 0 ||\n (other.high === this.high && other.low >>> 0 > this.low >>> 0)\n ? -1\n : 1;\n};\n\n/**\n * Compares this Long's value with the specified's. This is an alias of {@link Long#compare}.\n * @function\n * @param {!Long|number|bigint|string} other Other value\n * @returns {number} 0 if they are the same, 1 if the this is greater and -1\n * if the given one is greater\n */\nLongPrototype.comp = LongPrototype.compare;\n\n/**\n * Negates this Long's value.\n * @this {!Long}\n * @returns {!Long} Negated Long\n */\nLongPrototype.negate = function negate() {\n if (!this.unsigned && this.eq(MIN_VALUE)) return MIN_VALUE;\n return this.not().add(ONE);\n};\n\n/**\n * Negates this Long's value. This is an alias of {@link Long#negate}.\n * @function\n * @returns {!Long} Negated Long\n */\nLongPrototype.neg = LongPrototype.negate;\n\n/**\n * Returns the sum of this and the specified Long.\n * @this {!Long}\n * @param {!Long|number|bigint|string} addend Addend\n * @returns {!Long} Sum\n */\nLongPrototype.add = function add(addend) {\n if (!isLong(addend)) addend = fromValue(addend);\n\n // Divide each number into 4 chunks of 16 bits, and then sum the chunks.\n\n var a48 = this.high >>> 16;\n var a32 = this.high & 0xffff;\n var a16 = this.low >>> 16;\n var a00 = this.low & 0xffff;\n\n var b48 = addend.high >>> 16;\n var b32 = addend.high & 0xffff;\n var b16 = addend.low >>> 16;\n var b00 = addend.low & 0xffff;\n\n var c48 = 0,\n c32 = 0,\n c16 = 0,\n c00 = 0;\n c00 += a00 + b00;\n c16 += c00 >>> 16;\n c00 &= 0xffff;\n c16 += a16 + b16;\n c32 += c16 >>> 16;\n c16 &= 0xffff;\n c32 += a32 + b32;\n c48 += c32 >>> 16;\n c32 &= 0xffff;\n c48 += a48 + b48;\n c48 &= 0xffff;\n return fromBits((c16 << 16) | c00, (c48 << 16) | c32, this.unsigned);\n};\n\n/**\n * Returns the difference of this and the specified Long.\n * @this {!Long}\n * @param {!Long|number|bigint|string} subtrahend Subtrahend\n * @returns {!Long} Difference\n */\nLongPrototype.subtract = function subtract(subtrahend) {\n if (!isLong(subtrahend)) subtrahend = fromValue(subtrahend);\n return this.add(subtrahend.neg());\n};\n\n/**\n * Returns the difference of this and the specified Long. This is an alias of {@link Long#subtract}.\n * @function\n * @param {!Long|number|bigint|string} subtrahend Subtrahend\n * @returns {!Long} Difference\n */\nLongPrototype.sub = LongPrototype.subtract;\n\n/**\n * Returns the product of this and the specified Long.\n * @this {!Long}\n * @param {!Long|number|bigint|string} multiplier Multiplier\n * @returns {!Long} Product\n */\nLongPrototype.multiply = function multiply(multiplier) {\n if (this.isZero()) return this;\n if (!isLong(multiplier)) multiplier = fromValue(multiplier);\n\n // use wasm support if present\n if (wasm) {\n var low = wasm[\"mul\"](this.low, this.high, multiplier.low, multiplier.high);\n return fromBits(low, wasm[\"get_high\"](), this.unsigned);\n }\n\n if (multiplier.isZero()) return this.unsigned ? UZERO : ZERO;\n if (this.eq(MIN_VALUE)) return multiplier.isOdd() ? MIN_VALUE : ZERO;\n if (multiplier.eq(MIN_VALUE)) return this.isOdd() ? MIN_VALUE : ZERO;\n\n if (this.isNegative()) {\n if (multiplier.isNegative()) return this.neg().mul(multiplier.neg());\n else return this.neg().mul(multiplier).neg();\n } else if (multiplier.isNegative()) return this.mul(multiplier.neg()).neg();\n\n // If both longs are small, use float multiplication\n if (this.lt(TWO_PWR_24) && multiplier.lt(TWO_PWR_24))\n return fromNumber(this.toNumber() * multiplier.toNumber(), this.unsigned);\n\n // Divide each long into 4 chunks of 16 bits, and then add up 4x4 products.\n // We can skip products that would overflow.\n\n var a48 = this.high >>> 16;\n var a32 = this.high & 0xffff;\n var a16 = this.low >>> 16;\n var a00 = this.low & 0xffff;\n\n var b48 = multiplier.high >>> 16;\n var b32 = multiplier.high & 0xffff;\n var b16 = multiplier.low >>> 16;\n var b00 = multiplier.low & 0xffff;\n\n var c48 = 0,\n c32 = 0,\n c16 = 0,\n c00 = 0;\n c00 += a00 * b00;\n c16 += c00 >>> 16;\n c00 &= 0xffff;\n c16 += a16 * b00;\n c32 += c16 >>> 16;\n c16 &= 0xffff;\n c16 += a00 * b16;\n c32 += c16 >>> 16;\n c16 &= 0xffff;\n c32 += a32 * b00;\n c48 += c32 >>> 16;\n c32 &= 0xffff;\n c32 += a16 * b16;\n c48 += c32 >>> 16;\n c32 &= 0xffff;\n c32 += a00 * b32;\n c48 += c32 >>> 16;\n c32 &= 0xffff;\n c48 += a48 * b00 + a32 * b16 + a16 * b32 + a00 * b48;\n c48 &= 0xffff;\n return fromBits((c16 << 16) | c00, (c48 << 16) | c32, this.unsigned);\n};\n\n/**\n * Returns the product of this and the specified Long. This is an alias of {@link Long#multiply}.\n * @function\n * @param {!Long|number|bigint|string} multiplier Multiplier\n * @returns {!Long} Product\n */\nLongPrototype.mul = LongPrototype.multiply;\n\n/**\n * Returns this Long divided by the specified. The result is signed if this Long is signed or\n * unsigned if this Long is unsigned.\n * @this {!Long}\n * @param {!Long|number|bigint|string} divisor Divisor\n * @returns {!Long} Quotient\n */\nLongPrototype.divide = function divide(divisor) {\n if (!isLong(divisor)) divisor = fromValue(divisor);\n if (divisor.isZero()) throw Error(\"division by zero\");\n\n // use wasm support if present\n if (wasm) {\n // guard against signed division overflow: the largest\n // negative number / -1 would be 1 larger than the largest\n // positive number, due to two's complement.\n if (\n !this.unsigned &&\n this.high === -0x80000000 &&\n divisor.low === -1 &&\n divisor.high === -1\n ) {\n // be consistent with non-wasm code path\n return this;\n }\n var low = (this.unsigned ? wasm[\"div_u\"] : wasm[\"div_s\"])(\n this.low,\n this.high,\n divisor.low,\n divisor.high,\n );\n return fromBits(low, wasm[\"get_high\"](), this.unsigned);\n }\n\n if (this.isZero()) return this.unsigned ? UZERO : ZERO;\n var approx, rem, res;\n if (!this.unsigned) {\n // This section is only relevant for signed longs and is derived from the\n // closure library as a whole.\n if (this.eq(MIN_VALUE)) {\n if (divisor.eq(ONE) || divisor.eq(NEG_ONE))\n return MIN_VALUE; // recall that -MIN_VALUE == MIN_VALUE\n else if (divisor.eq(MIN_VALUE)) return ONE;\n else {\n // At this point, we have |other| >= 2, so |this/other| < |MIN_VALUE|.\n var halfThis = this.shr(1);\n approx = halfThis.div(divisor).shl(1);\n if (approx.eq(ZERO)) {\n return divisor.isNegative() ? ONE : NEG_ONE;\n } else {\n rem = this.sub(divisor.mul(approx));\n res = approx.add(rem.div(divisor));\n return res;\n }\n }\n } else if (divisor.eq(MIN_VALUE)) return this.unsigned ? UZERO : ZERO;\n if (this.isNegative()) {\n if (divisor.isNegative()) return this.neg().div(divisor.neg());\n return this.neg().div(divisor).neg();\n } else if (divisor.isNegative()) return this.div(divisor.neg()).neg();\n res = ZERO;\n } else {\n // The algorithm below has not been made for unsigned longs. It's therefore\n // required to take special care of the MSB prior to running it.\n if (!divisor.unsigned) divisor = divisor.toUnsigned();\n if (divisor.gt(this)) return UZERO;\n if (divisor.gt(this.shru(1)))\n // 15 >>> 1 = 7 ; with divisor = 8 ; true\n return UONE;\n res = UZERO;\n }\n\n // Repeat the following until the remainder is less than other: find a\n // floating-point that approximates remainder / other *from below*, add this\n // into the result, and subtract it from the remainder. It is critical that\n // the approximate value is less than or equal to the real value so that the\n // remainder never becomes negative.\n rem = this;\n while (rem.gte(divisor)) {\n // Approximate the result of division. This may be a little greater or\n // smaller than the actual value.\n approx = Math.max(1, Math.floor(rem.toNumber() / divisor.toNumber()));\n\n // We will tweak the approximate result by changing it in the 48-th digit or\n // the smallest non-fractional digit, whichever is larger.\n var log2 = Math.ceil(Math.log(approx) / Math.LN2),\n delta = log2 <= 48 ? 1 : pow_dbl(2, log2 - 48),\n // Decrease the approximation until it is smaller than the remainder. Note\n // that if it is too large, the product overflows and is negative.\n approxRes = fromNumber(approx),\n approxRem = approxRes.mul(divisor);\n while (approxRem.isNegative() || approxRem.gt(rem)) {\n approx -= delta;\n approxRes = fromNumber(approx, this.unsigned);\n approxRem = approxRes.mul(divisor);\n }\n\n // We know the answer can't be zero... and actually, zero would cause\n // infinite recursion since we would make no progress.\n if (approxRes.isZero()) approxRes = ONE;\n\n res = res.add(approxRes);\n rem = rem.sub(approxRem);\n }\n return res;\n};\n\n/**\n * Returns this Long divided by the specified. This is an alias of {@link Long#divide}.\n * @function\n * @param {!Long|number|bigint|string} divisor Divisor\n * @returns {!Long} Quotient\n */\nLongPrototype.div = LongPrototype.divide;\n\n/**\n * Returns this Long modulo the specified.\n * @this {!Long}\n * @param {!Long|number|bigint|string} divisor Divisor\n * @returns {!Long} Remainder\n */\nLongPrototype.modulo = function modulo(divisor) {\n if (!isLong(divisor)) divisor = fromValue(divisor);\n\n // use wasm support if present\n if (wasm) {\n var low = (this.unsigned ? wasm[\"rem_u\"] : wasm[\"rem_s\"])(\n this.low,\n this.high,\n divisor.low,\n divisor.high,\n );\n return fromBits(low, wasm[\"get_high\"](), this.unsigned);\n }\n\n return this.sub(this.div(divisor).mul(divisor));\n};\n\n/**\n * Returns this Long modulo the specified. This is an alias of {@link Long#modulo}.\n * @function\n * @param {!Long|number|bigint|string} divisor Divisor\n * @returns {!Long} Remainder\n */\nLongPrototype.mod = LongPrototype.modulo;\n\n/**\n * Returns this Long modulo the specified. This is an alias of {@link Long#modulo}.\n * @function\n * @param {!Long|number|bigint|string} divisor Divisor\n * @returns {!Long} Remainder\n */\nLongPrototype.rem = LongPrototype.modulo;\n\n/**\n * Returns the bitwise NOT of this Long.\n * @this {!Long}\n * @returns {!Long}\n */\nLongPrototype.not = function not() {\n return fromBits(~this.low, ~this.high, this.unsigned);\n};\n\n/**\n * Returns count leading zeros of this Long.\n * @this {!Long}\n * @returns {!number}\n */\nLongPrototype.countLeadingZeros = function countLeadingZeros() {\n return this.high ? Math.clz32(this.high) : Math.clz32(this.low) + 32;\n};\n\n/**\n * Returns count leading zeros. This is an alias of {@link Long#countLeadingZeros}.\n * @function\n * @param {!Long}\n * @returns {!number}\n */\nLongPrototype.clz = LongPrototype.countLeadingZeros;\n\n/**\n * Returns count trailing zeros of this Long.\n * @this {!Long}\n * @returns {!number}\n */\nLongPrototype.countTrailingZeros = function countTrailingZeros() {\n return this.low ? ctz32(this.low) : ctz32(this.high) + 32;\n};\n\n/**\n * Returns count trailing zeros. This is an alias of {@link Long#countTrailingZeros}.\n * @function\n * @param {!Long}\n * @returns {!number}\n */\nLongPrototype.ctz = LongPrototype.countTrailingZeros;\n\n/**\n * Returns the bitwise AND of this Long and the specified.\n * @this {!Long}\n * @param {!Long|number|bigint|string} other Other Long\n * @returns {!Long}\n */\nLongPrototype.and = function and(other) {\n if (!isLong(other)) other = fromValue(other);\n return fromBits(this.low & other.low, this.high & other.high, this.unsigned);\n};\n\n/**\n * Returns the bitwise OR of this Long and the specified.\n * @this {!Long}\n * @param {!Long|number|bigint|string} other Other Long\n * @returns {!Long}\n */\nLongPrototype.or = function or(other) {\n if (!isLong(other)) other = fromValue(other);\n return fromBits(this.low | other.low, this.high | other.high, this.unsigned);\n};\n\n/**\n * Returns the bitwise XOR of this Long and the given one.\n * @this {!Long}\n * @param {!Long|number|bigint|string} other Other Long\n * @returns {!Long}\n */\nLongPrototype.xor = function xor(other) {\n if (!isLong(other)) other = fromValue(other);\n return fromBits(this.low ^ other.low, this.high ^ other.high, this.unsigned);\n};\n\n/**\n * Returns this Long with bits shifted to the left by the given amount.\n * @this {!Long}\n * @param {number|!Long} numBits Number of bits\n * @returns {!Long} Shifted Long\n */\nLongPrototype.shiftLeft = function shiftLeft(numBits) {\n if (isLong(numBits)) numBits = numBits.toInt();\n if ((numBits &= 63) === 0) return this;\n else if (numBits < 32)\n return fromBits(\n this.low << numBits,\n (this.high << numBits) | (this.low >>> (32 - numBits)),\n this.unsigned,\n );\n else return fromBits(0, this.low << (numBits - 32), this.unsigned);\n};\n\n/**\n * Returns this Long with bits shifted to the left by the given amount. This is an alias of {@link Long#shiftLeft}.\n * @function\n * @param {number|!Long} numBits Number of bits\n * @returns {!Long} Shifted Long\n */\nLongPrototype.shl = LongPrototype.shiftLeft;\n\n/**\n * Returns this Long with bits arithmetically shifted to the right by the given amount.\n * @this {!Long}\n * @param {number|!Long} numBits Number of bits\n * @returns {!Long} Shifted Long\n */\nLongPrototype.shiftRight = function shiftRight(numBits) {\n if (isLong(numBits)) numBits = numBits.toInt();\n if ((numBits &= 63) === 0) return this;\n else if (numBits < 32)\n return fromBits(\n (this.low >>> numBits) | (this.high << (32 - numBits)),\n this.high >> numBits,\n this.unsigned,\n );\n else\n return fromBits(\n this.high >> (numBits - 32),\n this.high >= 0 ? 0 : -1,\n this.unsigned,\n );\n};\n\n/**\n * Returns this Long with bits arithmetically shifted to the right by the given amount. This is an alias of {@link Long#shiftRight}.\n * @function\n * @param {number|!Long} numBits Number of bits\n * @returns {!Long} Shifted Long\n */\nLongPrototype.shr = LongPrototype.shiftRight;\n\n/**\n * Returns this Long with bits logically shifted to the right by the given amount.\n * @this {!Long}\n * @param {number|!Long} numBits Number of bits\n * @returns {!Long} Shifted Long\n */\nLongPrototype.shiftRightUnsigned = function shiftRightUnsigned(numBits) {\n if (isLong(numBits)) numBits = numBits.toInt();\n if ((numBits &= 63) === 0) return this;\n if (numBits < 32)\n return fromBits(\n (this.low >>> numBits) | (this.high << (32 - numBits)),\n this.high >>> numBits,\n this.unsigned,\n );\n if (numBits === 32) return fromBits(this.high, 0, this.unsigned);\n return fromBits(this.high >>> (numBits - 32), 0, this.unsigned);\n};\n\n/**\n * Returns this Long with bits logically shifted to the right by the given amount. This is an alias of {@link Long#shiftRightUnsigned}.\n * @function\n * @param {number|!Long} numBits Number of bits\n * @returns {!Long} Shifted Long\n */\nLongPrototype.shru = LongPrototype.shiftRightUnsigned;\n\n/**\n * Returns this Long with bits logically shifted to the right by the given amount. This is an alias of {@link Long#shiftRightUnsigned}.\n * @function\n * @param {number|!Long} numBits Number of bits\n * @returns {!Long} Shifted Long\n */\nLongPrototype.shr_u = LongPrototype.shiftRightUnsigned;\n\n/**\n * Returns this Long with bits rotated to the left by the given amount.\n * @this {!Long}\n * @param {number|!Long} numBits Number of bits\n * @returns {!Long} Rotated Long\n */\nLongPrototype.rotateLeft = function rotateLeft(numBits) {\n var b;\n if (isLong(numBits)) numBits = numBits.toInt();\n if ((numBits &= 63) === 0) return this;\n if (numBits === 32) return fromBits(this.high, this.low, this.unsigned);\n if (numBits < 32) {\n b = 32 - numBits;\n return fromBits(\n (this.low << numBits) | (this.high >>> b),\n (this.high << numBits) | (this.low >>> b),\n this.unsigned,\n );\n }\n numBits -= 32;\n b = 32 - numBits;\n return fromBits(\n (this.high << numBits) | (this.low >>> b),\n (this.low << numBits) | (this.high >>> b),\n this.unsigned,\n );\n};\n/**\n * Returns this Long with bits rotated to the left by the given amount. This is an alias of {@link Long#rotateLeft}.\n * @function\n * @param {number|!Long} numBits Number of bits\n * @returns {!Long} Rotated Long\n */\nLongPrototype.rotl = LongPrototype.rotateLeft;\n\n/**\n * Returns this Long with bits rotated to the right by the given amount.\n * @this {!Long}\n * @param {number|!Long} numBits Number of bits\n * @returns {!Long} Rotated Long\n */\nLongPrototype.rotateRight = function rotateRight(numBits) {\n var b;\n if (isLong(numBits)) numBits = numBits.toInt();\n if ((numBits &= 63) === 0) return this;\n if (numBits === 32) return fromBits(this.high, this.low, this.unsigned);\n if (numBits < 32) {\n b = 32 - numBits;\n return fromBits(\n (this.high << b) | (this.low >>> numBits),\n (this.low << b) | (this.high >>> numBits),\n this.unsigned,\n );\n }\n numBits -= 32;\n b = 32 - numBits;\n return fromBits(\n (this.low << b) | (this.high >>> numBits),\n (this.high << b) | (this.low >>> numBits),\n this.unsigned,\n );\n};\n/**\n * Returns this Long with bits rotated to the right by the given amount. This is an alias of {@link Long#rotateRight}.\n * @function\n * @param {number|!Long} numBits Number of bits\n * @returns {!Long} Rotated Long\n */\nLongPrototype.rotr = LongPrototype.rotateRight;\n\n/**\n * Converts this Long to signed.\n * @this {!Long}\n * @returns {!Long} Signed long\n */\nLongPrototype.toSigned = function toSigned() {\n if (!this.unsigned) return this;\n return fromBits(this.low, this.high, false);\n};\n\n/**\n * Converts this Long to unsigned.\n * @this {!Long}\n * @returns {!Long} Unsigned long\n */\nLongPrototype.toUnsigned = function toUnsigned() {\n if (this.unsigned) return this;\n return fromBits(this.low, this.high, true);\n};\n\n/**\n * Converts this Long to its byte representation.\n * @param {boolean=} le Whether little or big endian, defaults to big endian\n * @this {!Long}\n * @returns {!Array.<number>} Byte representation\n */\nLongPrototype.toBytes = function toBytes(le) {\n return le ? this.toBytesLE() : this.toBytesBE();\n};\n\n/**\n * Converts this Long to its little endian byte representation.\n * @this {!Long}\n * @returns {!Array.<number>} Little endian byte representation\n */\nLongPrototype.toBytesLE = function toBytesLE() {\n var hi = this.high,\n lo = this.low;\n return [\n lo & 0xff,\n (lo >>> 8) & 0xff,\n (lo >>> 16) & 0xff,\n lo >>> 24,\n hi & 0xff,\n (hi >>> 8) & 0xff,\n (hi >>> 16) & 0xff,\n hi >>> 24,\n ];\n};\n\n/**\n * Converts this Long to its big endian byte representation.\n * @this {!Long}\n * @returns {!Array.<number>} Big endian byte representation\n */\nLongPrototype.toBytesBE = function toBytesBE() {\n var hi = this.high,\n lo = this.low;\n return [\n hi >>> 24,\n (hi >>> 16) & 0xff,\n (hi >>> 8) & 0xff,\n hi & 0xff,\n lo >>> 24,\n (lo >>> 16) & 0xff,\n (lo >>> 8) & 0xff,\n lo & 0xff,\n ];\n};\n\n/**\n * Creates a Long from its byte representation.\n * @param {!Array.<number>} bytes Byte representation\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\n * @param {boolean=} le Whether little or big endian, defaults to big endian\n * @returns {Long} The corresponding Long value\n */\nLong.fromBytes = function fromBytes(bytes, unsigned, le) {\n return le\n ? Long.fromBytesLE(bytes, unsigned)\n : Long.fromBytesBE(bytes, unsigned);\n};\n\n/**\n * Creates a Long from its little endian byte representation.\n * @param {!Array.<number>} bytes Little endian byte representation\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\n * @returns {Long} The corresponding Long value\n */\nLong.fromBytesLE = function fromBytesLE(bytes, unsigned) {\n return new Long(\n bytes[0] | (bytes[1] << 8) | (bytes[2] << 16) | (bytes[3] << 24),\n bytes[4] | (bytes[5] << 8) | (bytes[6] << 16) | (bytes[7] << 24),\n unsigned,\n );\n};\n\n/**\n * Creates a Long from its big endian byte representation.\n * @param {!Array.<number>} bytes Big endian byte representation\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\n * @returns {Long} The corresponding Long value\n */\nLong.fromBytesBE = function fromBytesBE(bytes, unsigned) {\n return new Long(\n (bytes[4] << 24) | (bytes[5] << 16) | (bytes[6] << 8) | bytes[7],\n (bytes[0] << 24) | (bytes[1] << 16) | (bytes[2] << 8) | bytes[3],\n unsigned,\n );\n};\n\n// Support conversion to/from BigInt where available\nif (typeof BigInt === \"function\") {\n /**\n * Returns a Long representing the given big integer.\n * @function\n * @param {number} value The big integer value\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\n * @returns {!Long} The corresponding Long value\n */\n Long.fromBigInt = function fromBigInt(value, unsigned) {\n var lowBits = Number(BigInt.asIntN(32, value));\n var highBits = Number(BigInt.asIntN(32, value >> BigInt(32)));\n return fromBits(lowBits, highBits, unsigned);\n };\n\n // Override\n Long.fromValue = function fromValueWithBigInt(value, unsigned) {\n if (typeof value === \"bigint\") return Long.fromBigInt(value, unsigned);\n return fromValue(value, unsigned);\n };\n\n /**\n * Converts the Long to its big integer representation.\n * @this {!Long}\n * @returns {bigint}\n */\n LongPrototype.toBigInt = function toBigInt() {\n var lowBigInt = BigInt(this.low >>> 0);\n var highBigInt = BigInt(this.unsigned ? this.high >>> 0 : this.high);\n return (highBigInt << BigInt(32)) | lowBigInt;\n };\n}\n\nexport default Long;\n",null,null,null,null,null,"/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var MapCache = require('./_MapCache');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n","var memoize = require('./memoize');\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\n","var memoizeCapped = require('./_memoizeCapped');\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nmodule.exports = stringToPath;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n","var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n","var castPath = require('./_castPath'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n","var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n",null,null,null,null,null,null,null,null,null,null],"names":["es5Module","require$$0","global","this","require$$1","asyncModule","require$$2","map","require$$3","require$$4","require$$5","require$$6","require$$7","require$$8","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","require$$15","require$$16","require$$17","require$$18","require$$19","require$$20","require$$21","require$$22","require$$23","require$$24","require$$25","require$$26","require$$27","require$$28","require$$29","require$$30","require$$31","require$$32","setOptions","retry","bigi","lib","createHash","sha256","ripemd160","basex","secp256k1","G","n","hash.sha512","hash.ripemd160","base58","hash.sha256","BigInteger","getCurveByName","sign","randomBytes","EventEmitter","bufferUtilModule","bufferUtil","validationModule","signRequest","api","require","verify","operations","steem","promisify","createCipheriv","createDecipheriv","_internal","createHmac","broadcast","setApiOptions","setConfigOptions","broadcast.setApi"],"mappings":"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,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;AAC3E,GAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;AAC3E,GAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;AAC3E,GAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;AAC3E,GAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;AAC3E,GAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;AAC3E,GAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;AAC3E,GAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;GACzE,GAAG,E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E,CAAC,EAAE,EAAE;AACvB;AACA,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE;AAC/E,QAAQ,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;AAC5E,QAAQ,GAAG,EAAE,EAAE;AACf;AACA,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE;AAC/E,QAAQ,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;AAC5E,QAAQ,GAAG,EAAE,EAAE;AACf;AACA,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE;AAC/E,QAAQ,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;AAC5E,QAAQ,GAAG,EAAE,EAAE;AACf;A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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,39,40,41,42,43,44,45,46,47,48,50,51,58,59,60,63,64,65,66,67,68,69,70,71,72,73,74,75,79,80,81,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138]}