superagent 8.1.2 → 9.0.1

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.
@@ -1,28 +1,25 @@
1
1
  "use strict";
2
2
 
3
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
4
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
5
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
6
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
7
- function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
8
3
  const Stream = require('stream');
9
4
  const net = require('net');
10
5
  const tls = require('tls');
11
6
  // eslint-disable-next-line node/no-deprecated-api
12
- const _require = require('url'),
13
- parse = _require.parse;
7
+ const {
8
+ parse
9
+ } = require('url');
14
10
  const process = require('process');
15
11
  const semverGte = require('semver/functions/gte');
16
12
  let http2;
17
13
  if (semverGte(process.version, 'v10.10.0')) http2 = require('http2');else throw new Error('superagent: this version of Node.js does not support http2');
18
- const _http2$constants = http2.constants,
19
- HTTP2_HEADER_PATH = _http2$constants.HTTP2_HEADER_PATH,
20
- HTTP2_HEADER_STATUS = _http2$constants.HTTP2_HEADER_STATUS,
21
- HTTP2_HEADER_METHOD = _http2$constants.HTTP2_HEADER_METHOD,
22
- HTTP2_HEADER_AUTHORITY = _http2$constants.HTTP2_HEADER_AUTHORITY,
23
- HTTP2_HEADER_HOST = _http2$constants.HTTP2_HEADER_HOST,
24
- HTTP2_HEADER_SET_COOKIE = _http2$constants.HTTP2_HEADER_SET_COOKIE,
25
- NGHTTP2_CANCEL = _http2$constants.NGHTTP2_CANCEL;
14
+ const {
15
+ HTTP2_HEADER_PATH,
16
+ HTTP2_HEADER_STATUS,
17
+ HTTP2_HEADER_METHOD,
18
+ HTTP2_HEADER_AUTHORITY,
19
+ HTTP2_HEADER_HOST,
20
+ HTTP2_HEADER_SET_COOKIE,
21
+ NGHTTP2_CANCEL
22
+ } = http2.constants;
26
23
  function setProtocol(protocol) {
27
24
  return {
28
25
  request(options) {
@@ -45,7 +42,9 @@ class Request extends Stream {
45
42
  this.host = host;
46
43
  delete options.method;
47
44
  delete options.path;
48
- const sessionOptions = _objectSpread({}, options);
45
+ const sessionOptions = {
46
+ ...options
47
+ };
49
48
  if (options.socketPath) {
50
49
  sessionOptions.socketPath = options.socketPath;
51
50
  sessionOptions.createConnection = this.createUnixConnection.bind(this);
@@ -102,8 +101,7 @@ class Request extends Stream {
102
101
  mapToHttpHeader(headers) {
103
102
  const keys = Object.keys(headers);
104
103
  const http2Headers = {};
105
- for (var _i = 0, _keys = keys; _i < _keys.length; _i++) {
106
- let key = _keys[_i];
104
+ for (let key of keys) {
107
105
  let value = headers[key];
108
106
  key = key.toLowerCase();
109
107
  switch (key) {
@@ -120,8 +118,7 @@ class Request extends Stream {
120
118
  mapToHttp2Header(headers) {
121
119
  const keys = Object.keys(headers);
122
120
  const http2Headers = {};
123
- for (var _i2 = 0, _keys2 = keys; _i2 < _keys2.length; _i2++) {
124
- let key = _keys2[_i2];
121
+ for (let key of keys) {
125
122
  let value = headers[key];
126
123
  key = key.toLowerCase();
127
124
  switch (key) {
@@ -161,4 +158,4 @@ class Request extends Stream {
161
158
  }
162
159
  }
163
160
  exports.setProtocol = setProtocol;
164
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTdHJlYW0iLCJyZXF1aXJlIiwibmV0IiwidGxzIiwiX3JlcXVpcmUiLCJwYXJzZSIsInByb2Nlc3MiLCJzZW12ZXJHdGUiLCJodHRwMiIsInZlcnNpb24iLCJFcnJvciIsIl9odHRwMiRjb25zdGFudHMiLCJjb25zdGFudHMiLCJIVFRQMl9IRUFERVJfUEFUSCIsIkhUVFAyX0hFQURFUl9TVEFUVVMiLCJIVFRQMl9IRUFERVJfTUVUSE9EIiwiSFRUUDJfSEVBREVSX0FVVEhPUklUWSIsIkhUVFAyX0hFQURFUl9IT1NUIiwiSFRUUDJfSEVBREVSX1NFVF9DT09LSUUiLCJOR0hUVFAyX0NBTkNFTCIsInNldFByb3RvY29sIiwicHJvdG9jb2wiLCJyZXF1ZXN0Iiwib3B0aW9ucyIsIlJlcXVlc3QiLCJjb25zdHJ1Y3RvciIsImRlZmF1bHRQb3J0IiwiZGVmYXVsdEhvc3QiLCJwb3J0IiwiaG9zdCIsIm1ldGhvZCIsInBhdGgiLCJzZXNzaW9uT3B0aW9ucyIsIl9vYmplY3RTcHJlYWQiLCJzb2NrZXRQYXRoIiwiY3JlYXRlQ29ubmVjdGlvbiIsImNyZWF0ZVVuaXhDb25uZWN0aW9uIiwiYmluZCIsIl9oZWFkZXJzIiwic2Vzc2lvbiIsImNvbm5lY3QiLCJzZXRIZWFkZXIiLCJvbiIsImVycm9yIiwiZW1pdCIsImF1dGhvcml0eSIsIkFMUE5Qcm90b2NvbHMiLCJzZXJ2ZXJuYW1lIiwiYWxsb3dIYWxmT3BlbiIsInNldE5vRGVsYXkiLCJib29sIiwiZ2V0RnJhbWUiLCJmcmFtZSIsImhlYWRlcnMiLCJtYXBUb0h0dHAySGVhZGVyIiwiT2JqZWN0IiwiYXNzaWduIiwib25jZSIsImZsYWdzIiwibWFwVG9IdHRwSGVhZGVyIiwic3RhdHVzQ29kZSIsInN0YXR1cyIsIl9oZWFkZXJTZW50IiwiY2xvc2UiLCJrZXlzIiwiaHR0cDJIZWFkZXJzIiwiX2kiLCJfa2V5cyIsImxlbmd0aCIsImtleSIsInZhbHVlIiwidG9Mb3dlckNhc2UiLCJBcnJheSIsImlzQXJyYXkiLCJfaTIiLCJfa2V5czIiLCJ0ZXN0IiwibmFtZSIsImdldEhlYWRlciIsIndyaXRlIiwiZGF0YSIsImVuY29kaW5nIiwicGlwZSIsInN0cmVhbSIsImVuZCIsImFib3J0IiwiZGVzdHJveSIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvbm9kZS9odHRwMndyYXBwZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgU3RyZWFtID0gcmVxdWlyZSgnc3RyZWFtJyk7XG5jb25zdCBuZXQgPSByZXF1aXJlKCduZXQnKTtcbmNvbnN0IHRscyA9IHJlcXVpcmUoJ3RscycpO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vZGUvbm8tZGVwcmVjYXRlZC1hcGlcbmNvbnN0IHsgcGFyc2UgfSA9IHJlcXVpcmUoJ3VybCcpO1xuY29uc3QgcHJvY2VzcyA9IHJlcXVpcmUoJ3Byb2Nlc3MnKTtcbmNvbnN0IHNlbXZlckd0ZSA9IHJlcXVpcmUoJ3NlbXZlci9mdW5jdGlvbnMvZ3RlJyk7XG5cbmxldCBodHRwMjtcblxuaWYgKHNlbXZlckd0ZShwcm9jZXNzLnZlcnNpb24sICd2MTAuMTAuMCcpKSBodHRwMiA9IHJlcXVpcmUoJ2h0dHAyJyk7XG5lbHNlXG4gIHRocm93IG5ldyBFcnJvcignc3VwZXJhZ2VudDogdGhpcyB2ZXJzaW9uIG9mIE5vZGUuanMgZG9lcyBub3Qgc3VwcG9ydCBodHRwMicpO1xuXG5jb25zdCB7XG4gIEhUVFAyX0hFQURFUl9QQVRILFxuICBIVFRQMl9IRUFERVJfU1RBVFVTLFxuICBIVFRQMl9IRUFERVJfTUVUSE9ELFxuICBIVFRQMl9IRUFERVJfQVVUSE9SSVRZLFxuICBIVFRQMl9IRUFERVJfSE9TVCxcbiAgSFRUUDJfSEVBREVSX1NFVF9DT09LSUUsXG4gIE5HSFRUUDJfQ0FOQ0VMXG59ID0gaHR0cDIuY29uc3RhbnRzO1xuXG5mdW5jdGlvbiBzZXRQcm90b2NvbChwcm90b2NvbCkge1xuICByZXR1cm4ge1xuICAgIHJlcXVlc3Qob3B0aW9ucykge1xuICAgICAgcmV0dXJuIG5ldyBSZXF1ZXN0KHByb3RvY29sLCBvcHRpb25zKTtcbiAgICB9XG4gIH07XG59XG5cbmNsYXNzIFJlcXVlc3QgZXh0ZW5kcyBTdHJlYW0ge1xuICBjb25zdHJ1Y3Rvcihwcm90b2NvbCwgb3B0aW9ucykge1xuICAgIHN1cGVyKCk7XG4gICAgY29uc3QgZGVmYXVsdFBvcnQgPSBwcm90b2NvbCA9PT0gJ2h0dHBzOicgPyA0NDMgOiA4MDtcbiAgICBjb25zdCBkZWZhdWx0SG9zdCA9ICdsb2NhbGhvc3QnO1xuICAgIGNvbnN0IHBvcnQgPSBvcHRpb25zLnBvcnQgfHwgZGVmYXVsdFBvcnQ7XG4gICAgY29uc3QgaG9zdCA9IG9wdGlvbnMuaG9zdCB8fCBkZWZhdWx0SG9zdDtcblxuICAgIGRlbGV0ZSBvcHRpb25zLnBvcnQ7XG4gICAgZGVsZXRlIG9wdGlvbnMuaG9zdDtcblxuICAgIHRoaXMubWV0aG9kID0gb3B0aW9ucy5tZXRob2Q7XG4gICAgdGhpcy5wYXRoID0gb3B0aW9ucy5wYXRoO1xuICAgIHRoaXMucHJvdG9jb2wgPSBwcm90b2NvbDtcbiAgICB0aGlzLmhvc3QgPSBob3N0O1xuXG4gICAgZGVsZXRlIG9wdGlvbnMubWV0aG9kO1xuICAgIGRlbGV0ZSBvcHRpb25zLnBhdGg7XG5cbiAgICBjb25zdCBzZXNzaW9uT3B0aW9ucyA9IHsgLi4ub3B0aW9ucyB9O1xuICAgIGlmIChvcHRpb25zLnNvY2tldFBhdGgpIHtcbiAgICAgIHNlc3Npb25PcHRpb25zLnNvY2tldFBhdGggPSBvcHRpb25zLnNvY2tldFBhdGg7XG4gICAgICBzZXNzaW9uT3B0aW9ucy5jcmVhdGVDb25uZWN0aW9uID0gdGhpcy5jcmVhdGVVbml4Q29ubmVjdGlvbi5iaW5kKHRoaXMpO1xuICAgIH1cblxuICAgIHRoaXMuX2hlYWRlcnMgPSB7fTtcblxuICAgIGNvbnN0IHNlc3Npb24gPSBodHRwMi5jb25uZWN0KFxuICAgICAgYCR7cHJvdG9jb2x9Ly8ke2hvc3R9OiR7cG9ydH1gLFxuICAgICAgc2Vzc2lvbk9wdGlvbnNcbiAgICApO1xuICAgIHRoaXMuc2V0SGVhZGVyKCdob3N0JywgYCR7aG9zdH06JHtwb3J0fWApO1xuXG4gICAgc2Vzc2lvbi5vbignZXJyb3InLCAoZXJyb3IpID0+IHRoaXMuZW1pdCgnZXJyb3InLCBlcnJvcikpO1xuXG4gICAgdGhpcy5zZXNzaW9uID0gc2Vzc2lvbjtcbiAgfVxuXG4gIGNyZWF0ZVVuaXhDb25uZWN0aW9uKGF1dGhvcml0eSwgb3B0aW9ucykge1xuICAgIHN3aXRjaCAodGhpcy5wcm90b2NvbCkge1xuICAgICAgY2FzZSAnaHR0cDonOlxuICAgICAgICByZXR1cm4gbmV0LmNvbm5lY3Qob3B0aW9ucy5zb2NrZXRQYXRoKTtcbiAgICAgIGNhc2UgJ2h0dHBzOic6XG4gICAgICAgIG9wdGlvbnMuQUxQTlByb3RvY29scyA9IFsnaDInXTtcbiAgICAgICAgb3B0aW9ucy5zZXJ2ZXJuYW1lID0gdGhpcy5ob3N0O1xuICAgICAgICBvcHRpb25zLmFsbG93SGFsZk9wZW4gPSB0cnVlO1xuICAgICAgICByZXR1cm4gdGxzLmNvbm5lY3Qob3B0aW9ucy5zb2NrZXRQYXRoLCBvcHRpb25zKTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignVW5zdXBwb3J0ZWQgcHJvdG9jb2wnLCB0aGlzLnByb3RvY29sKTtcbiAgICB9XG4gIH1cblxuICBzZXROb0RlbGF5KGJvb2wpIHtcbiAgICAvLyBXZSBjYW4gbm90IHVzZSBzZXROb0RlbGF5IHdpdGggSFRUUC8yLlxuICAgIC8vIE5vZGUgMTAgbGltaXRzIGh0dHAyc2Vzc2lvbi5zb2NrZXQgbWV0aG9kcyB0byBvbmVzIHNhZmUgdG8gdXNlIHdpdGggSFRUUC8yLlxuICAgIC8vIFNlZSBhbHNvIGh0dHBzOi8vbm9kZWpzLm9yZy9hcGkvaHR0cDIuaHRtbCNodHRwMl9odHRwMnNlc3Npb25fc29ja2V0XG4gIH1cblxuICBnZXRGcmFtZSgpIHtcbiAgICBpZiAodGhpcy5mcmFtZSkge1xuICAgICAgcmV0dXJuIHRoaXMuZnJhbWU7XG4gICAgfVxuXG4gICAgY29uc3QgbWV0aG9kID0ge1xuICAgICAgW0hUVFAyX0hFQURFUl9QQVRIXTogdGhpcy5wYXRoLFxuICAgICAgW0hUVFAyX0hFQURFUl9NRVRIT0RdOiB0aGlzLm1ldGhvZFxuICAgIH07XG5cbiAgICBsZXQgaGVhZGVycyA9IHRoaXMubWFwVG9IdHRwMkhlYWRlcih0aGlzLl9oZWFkZXJzKTtcblxuICAgIGhlYWRlcnMgPSBPYmplY3QuYXNzaWduKGhlYWRlcnMsIG1ldGhvZCk7XG5cbiAgICBjb25zdCBmcmFtZSA9IHRoaXMuc2Vzc2lvbi5yZXF1ZXN0KGhlYWRlcnMpO1xuXG4gICAgZnJhbWUub25jZSgncmVzcG9uc2UnLCAoaGVhZGVycywgZmxhZ3MpID0+IHtcbiAgICAgIGhlYWRlcnMgPSB0aGlzLm1hcFRvSHR0cEhlYWRlcihoZWFkZXJzKTtcbiAgICAgIGZyYW1lLmhlYWRlcnMgPSBoZWFkZXJzO1xuICAgICAgZnJhbWUuc3RhdHVzQ29kZSA9IGhlYWRlcnNbSFRUUDJfSEVBREVSX1NUQVRVU107XG4gICAgICBmcmFtZS5zdGF0dXMgPSBmcmFtZS5zdGF0dXNDb2RlO1xuICAgICAgdGhpcy5lbWl0KCdyZXNwb25zZScsIGZyYW1lKTtcbiAgICB9KTtcblxuICAgIHRoaXMuX2hlYWRlclNlbnQgPSB0cnVlO1xuXG4gICAgZnJhbWUub25jZSgnZHJhaW4nLCAoKSA9PiB0aGlzLmVtaXQoJ2RyYWluJykpO1xuICAgIGZyYW1lLm9uKCdlcnJvcicsIChlcnJvcikgPT4gdGhpcy5lbWl0KCdlcnJvcicsIGVycm9yKSk7XG4gICAgZnJhbWUub24oJ2Nsb3NlJywgKCkgPT4gdGhpcy5zZXNzaW9uLmNsb3NlKCkpO1xuXG4gICAgdGhpcy5mcmFtZSA9IGZyYW1lO1xuICAgIHJldHVybiBmcmFtZTtcbiAgfVxuXG4gIG1hcFRvSHR0cEhlYWRlcihoZWFkZXJzKSB7XG4gICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKGhlYWRlcnMpO1xuICAgIGNvbnN0IGh0dHAySGVhZGVycyA9IHt9O1xuICAgIGZvciAobGV0IGtleSBvZiBrZXlzKSB7XG4gICAgICBsZXQgdmFsdWUgPSBoZWFkZXJzW2tleV07XG4gICAgICBrZXkgPSBrZXkudG9Mb3dlckNhc2UoKTtcbiAgICAgIHN3aXRjaCAoa2V5KSB7XG4gICAgICAgIGNhc2UgSFRUUDJfSEVBREVSX1NFVF9DT09LSUU6XG4gICAgICAgICAgdmFsdWUgPSBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogW3ZhbHVlXTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgaHR0cDJIZWFkZXJzW2tleV0gPSB2YWx1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gaHR0cDJIZWFkZXJzO1xuICB9XG5cbiAgbWFwVG9IdHRwMkhlYWRlcihoZWFkZXJzKSB7XG4gICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKGhlYWRlcnMpO1xuICAgIGNvbnN0IGh0dHAySGVhZGVycyA9IHt9O1xuICAgIGZvciAobGV0IGtleSBvZiBrZXlzKSB7XG4gICAgICBsZXQgdmFsdWUgPSBoZWFkZXJzW2tleV07XG4gICAgICBrZXkgPSBrZXkudG9Mb3dlckNhc2UoKTtcbiAgICAgIHN3aXRjaCAoa2V5KSB7XG4gICAgICAgIGNhc2UgSFRUUDJfSEVBREVSX0hPU1Q6XG4gICAgICAgICAga2V5ID0gSFRUUDJfSEVBREVSX0FVVEhPUklUWTtcbiAgICAgICAgICB2YWx1ZSA9IC9eaHR0cDpcXC9cXC98Xmh0dHBzOlxcL1xcLy8udGVzdCh2YWx1ZSlcbiAgICAgICAgICAgID8gcGFyc2UodmFsdWUpLmhvc3RcbiAgICAgICAgICAgIDogdmFsdWU7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGh0dHAySGVhZGVyc1trZXldID0gdmFsdWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGh0dHAySGVhZGVycztcbiAgfVxuXG4gIHNldEhlYWRlcihuYW1lLCB2YWx1ZSkge1xuICAgIHRoaXMuX2hlYWRlcnNbbmFtZS50b0xvd2VyQ2FzZSgpXSA9IHZhbHVlO1xuICB9XG5cbiAgZ2V0SGVhZGVyKG5hbWUpIHtcbiAgICByZXR1cm4gdGhpcy5faGVhZGVyc1tuYW1lLnRvTG93ZXJDYXNlKCldO1xuICB9XG5cbiAgd3JpdGUoZGF0YSwgZW5jb2RpbmcpIHtcbiAgICBjb25zdCBmcmFtZSA9IHRoaXMuZ2V0RnJhbWUoKTtcbiAgICByZXR1cm4gZnJhbWUud3JpdGUoZGF0YSwgZW5jb2RpbmcpO1xuICB9XG5cbiAgcGlwZShzdHJlYW0sIG9wdGlvbnMpIHtcbiAgICBjb25zdCBmcmFtZSA9IHRoaXMuZ2V0RnJhbWUoKTtcbiAgICByZXR1cm4gZnJhbWUucGlwZShzdHJlYW0sIG9wdGlvbnMpO1xuICB9XG5cbiAgZW5kKGRhdGEpIHtcbiAgICBjb25zdCBmcmFtZSA9IHRoaXMuZ2V0RnJhbWUoKTtcbiAgICBmcmFtZS5lbmQoZGF0YSk7XG4gIH1cblxuICBhYm9ydChkYXRhKSB7XG4gICAgY29uc3QgZnJhbWUgPSB0aGlzLmdldEZyYW1lKCk7XG4gICAgZnJhbWUuY2xvc2UoTkdIVFRQMl9DQU5DRUwpO1xuICAgIHRoaXMuc2Vzc2lvbi5kZXN0cm95KCk7XG4gIH1cbn1cblxuZXhwb3J0cy5zZXRQcm90b2NvbCA9IHNldFByb3RvY29sO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsTUFBTUEsTUFBTSxHQUFHQyxPQUFPLENBQUMsUUFBUSxDQUFDO0FBQ2hDLE1BQU1DLEdBQUcsR0FBR0QsT0FBTyxDQUFDLEtBQUssQ0FBQztBQUMxQixNQUFNRSxHQUFHLEdBQUdGLE9BQU8sQ0FBQyxLQUFLLENBQUM7QUFDMUI7QUFDQSxNQUFBRyxRQUFBLEdBQWtCSCxPQUFPLENBQUMsS0FBSyxDQUFDO0VBQXhCSSxLQUFLLEdBQUFELFFBQUEsQ0FBTEMsS0FBSztBQUNiLE1BQU1DLE9BQU8sR0FBR0wsT0FB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
161
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTdHJlYW0iLCJyZXF1aXJlIiwibmV0IiwidGxzIiwicGFyc2UiLCJwcm9jZXNzIiwic2VtdmVyR3RlIiwiaHR0cDIiLCJ2ZXJzaW9uIiwiRXJyb3IiLCJIVFRQMl9IRUFERVJfUEFUSCIsIkhUVFAyX0hFQURFUl9TVEFUVVMiLCJIVFRQMl9IRUFERVJfTUVUSE9EIiwiSFRUUDJfSEVBREVSX0FVVEhPUklUWSIsIkhUVFAyX0hFQURFUl9IT1NUIiwiSFRUUDJfSEVBREVSX1NFVF9DT09LSUUiLCJOR0hUVFAyX0NBTkNFTCIsImNvbnN0YW50cyIsInNldFByb3RvY29sIiwicHJvdG9jb2wiLCJyZXF1ZXN0Iiwib3B0aW9ucyIsIlJlcXVlc3QiLCJjb25zdHJ1Y3RvciIsImRlZmF1bHRQb3J0IiwiZGVmYXVsdEhvc3QiLCJwb3J0IiwiaG9zdCIsIm1ldGhvZCIsInBhdGgiLCJzZXNzaW9uT3B0aW9ucyIsInNvY2tldFBhdGgiLCJjcmVhdGVDb25uZWN0aW9uIiwiY3JlYXRlVW5peENvbm5lY3Rpb24iLCJiaW5kIiwiX2hlYWRlcnMiLCJzZXNzaW9uIiwiY29ubmVjdCIsInNldEhlYWRlciIsIm9uIiwiZXJyb3IiLCJlbWl0IiwiYXV0aG9yaXR5IiwiQUxQTlByb3RvY29scyIsInNlcnZlcm5hbWUiLCJhbGxvd0hhbGZPcGVuIiwic2V0Tm9EZWxheSIsImJvb2wiLCJnZXRGcmFtZSIsImZyYW1lIiwiaGVhZGVycyIsIm1hcFRvSHR0cDJIZWFkZXIiLCJPYmplY3QiLCJhc3NpZ24iLCJvbmNlIiwiZmxhZ3MiLCJtYXBUb0h0dHBIZWFkZXIiLCJzdGF0dXNDb2RlIiwic3RhdHVzIiwiX2hlYWRlclNlbnQiLCJjbG9zZSIsImtleXMiLCJodHRwMkhlYWRlcnMiLCJrZXkiLCJ2YWx1ZSIsInRvTG93ZXJDYXNlIiwiQXJyYXkiLCJpc0FycmF5IiwidGVzdCIsIm5hbWUiLCJnZXRIZWFkZXIiLCJ3cml0ZSIsImRhdGEiLCJlbmNvZGluZyIsInBpcGUiLCJzdHJlYW0iLCJlbmQiLCJhYm9ydCIsImRlc3Ryb3kiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL25vZGUvaHR0cDJ3cmFwcGVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IFN0cmVhbSA9IHJlcXVpcmUoJ3N0cmVhbScpO1xuY29uc3QgbmV0ID0gcmVxdWlyZSgnbmV0Jyk7XG5jb25zdCB0bHMgPSByZXF1aXJlKCd0bHMnKTtcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBub2RlL25vLWRlcHJlY2F0ZWQtYXBpXG5jb25zdCB7IHBhcnNlIH0gPSByZXF1aXJlKCd1cmwnKTtcbmNvbnN0IHByb2Nlc3MgPSByZXF1aXJlKCdwcm9jZXNzJyk7XG5jb25zdCBzZW12ZXJHdGUgPSByZXF1aXJlKCdzZW12ZXIvZnVuY3Rpb25zL2d0ZScpO1xuXG5sZXQgaHR0cDI7XG5cbmlmIChzZW12ZXJHdGUocHJvY2Vzcy52ZXJzaW9uLCAndjEwLjEwLjAnKSkgaHR0cDIgPSByZXF1aXJlKCdodHRwMicpO1xuZWxzZVxuICB0aHJvdyBuZXcgRXJyb3IoJ3N1cGVyYWdlbnQ6IHRoaXMgdmVyc2lvbiBvZiBOb2RlLmpzIGRvZXMgbm90IHN1cHBvcnQgaHR0cDInKTtcblxuY29uc3Qge1xuICBIVFRQMl9IRUFERVJfUEFUSCxcbiAgSFRUUDJfSEVBREVSX1NUQVRVUyxcbiAgSFRUUDJfSEVBREVSX01FVEhPRCxcbiAgSFRUUDJfSEVBREVSX0FVVEhPUklUWSxcbiAgSFRUUDJfSEVBREVSX0hPU1QsXG4gIEhUVFAyX0hFQURFUl9TRVRfQ09PS0lFLFxuICBOR0hUVFAyX0NBTkNFTFxufSA9IGh0dHAyLmNvbnN0YW50cztcblxuZnVuY3Rpb24gc2V0UHJvdG9jb2wocHJvdG9jb2wpIHtcbiAgcmV0dXJuIHtcbiAgICByZXF1ZXN0KG9wdGlvbnMpIHtcbiAgICAgIHJldHVybiBuZXcgUmVxdWVzdChwcm90b2NvbCwgb3B0aW9ucyk7XG4gICAgfVxuICB9O1xufVxuXG5jbGFzcyBSZXF1ZXN0IGV4dGVuZHMgU3RyZWFtIHtcbiAgY29uc3RydWN0b3IocHJvdG9jb2wsIG9wdGlvbnMpIHtcbiAgICBzdXBlcigpO1xuICAgIGNvbnN0IGRlZmF1bHRQb3J0ID0gcHJvdG9jb2wgPT09ICdodHRwczonID8gNDQzIDogODA7XG4gICAgY29uc3QgZGVmYXVsdEhvc3QgPSAnbG9jYWxob3N0JztcbiAgICBjb25zdCBwb3J0ID0gb3B0aW9ucy5wb3J0IHx8IGRlZmF1bHRQb3J0O1xuICAgIGNvbnN0IGhvc3QgPSBvcHRpb25zLmhvc3QgfHwgZGVmYXVsdEhvc3Q7XG5cbiAgICBkZWxldGUgb3B0aW9ucy5wb3J0O1xuICAgIGRlbGV0ZSBvcHRpb25zLmhvc3Q7XG5cbiAgICB0aGlzLm1ldGhvZCA9IG9wdGlvbnMubWV0aG9kO1xuICAgIHRoaXMucGF0aCA9IG9wdGlvbnMucGF0aDtcbiAgICB0aGlzLnByb3RvY29sID0gcHJvdG9jb2w7XG4gICAgdGhpcy5ob3N0ID0gaG9zdDtcblxuICAgIGRlbGV0ZSBvcHRpb25zLm1ldGhvZDtcbiAgICBkZWxldGUgb3B0aW9ucy5wYXRoO1xuXG4gICAgY29uc3Qgc2Vzc2lvbk9wdGlvbnMgPSB7IC4uLm9wdGlvbnMgfTtcbiAgICBpZiAob3B0aW9ucy5zb2NrZXRQYXRoKSB7XG4gICAgICBzZXNzaW9uT3B0aW9ucy5zb2NrZXRQYXRoID0gb3B0aW9ucy5zb2NrZXRQYXRoO1xuICAgICAgc2Vzc2lvbk9wdGlvbnMuY3JlYXRlQ29ubmVjdGlvbiA9IHRoaXMuY3JlYXRlVW5peENvbm5lY3Rpb24uYmluZCh0aGlzKTtcbiAgICB9XG5cbiAgICB0aGlzLl9oZWFkZXJzID0ge307XG5cbiAgICBjb25zdCBzZXNzaW9uID0gaHR0cDIuY29ubmVjdChcbiAgICAgIGAke3Byb3RvY29sfS8vJHtob3N0fToke3BvcnR9YCxcbiAgICAgIHNlc3Npb25PcHRpb25zXG4gICAgKTtcbiAgICB0aGlzLnNldEhlYWRlcignaG9zdCcsIGAke2hvc3R9OiR7cG9ydH1gKTtcblxuICAgIHNlc3Npb24ub24oJ2Vycm9yJywgKGVycm9yKSA9PiB0aGlzLmVtaXQoJ2Vycm9yJywgZXJyb3IpKTtcblxuICAgIHRoaXMuc2Vzc2lvbiA9IHNlc3Npb247XG4gIH1cblxuICBjcmVhdGVVbml4Q29ubmVjdGlvbihhdXRob3JpdHksIG9wdGlvbnMpIHtcbiAgICBzd2l0Y2ggKHRoaXMucHJvdG9jb2wpIHtcbiAgICAgIGNhc2UgJ2h0dHA6JzpcbiAgICAgICAgcmV0dXJuIG5ldC5jb25uZWN0KG9wdGlvbnMuc29ja2V0UGF0aCk7XG4gICAgICBjYXNlICdodHRwczonOlxuICAgICAgICBvcHRpb25zLkFMUE5Qcm90b2NvbHMgPSBbJ2gyJ107XG4gICAgICAgIG9wdGlvbnMuc2VydmVybmFtZSA9IHRoaXMuaG9zdDtcbiAgICAgICAgb3B0aW9ucy5hbGxvd0hhbGZPcGVuID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIHRscy5jb25uZWN0KG9wdGlvbnMuc29ja2V0UGF0aCwgb3B0aW9ucyk7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Vuc3VwcG9ydGVkIHByb3RvY29sJywgdGhpcy5wcm90b2NvbCk7XG4gICAgfVxuICB9XG5cbiAgc2V0Tm9EZWxheShib29sKSB7XG4gICAgLy8gV2UgY2FuIG5vdCB1c2Ugc2V0Tm9EZWxheSB3aXRoIEhUVFAvMi5cbiAgICAvLyBOb2RlIDEwIGxpbWl0cyBodHRwMnNlc3Npb24uc29ja2V0IG1ldGhvZHMgdG8gb25lcyBzYWZlIHRvIHVzZSB3aXRoIEhUVFAvMi5cbiAgICAvLyBTZWUgYWxzbyBodHRwczovL25vZGVqcy5vcmcvYXBpL2h0dHAyLmh0bWwjaHR0cDJfaHR0cDJzZXNzaW9uX3NvY2tldFxuICB9XG5cbiAgZ2V0RnJhbWUoKSB7XG4gICAgaWYgKHRoaXMuZnJhbWUpIHtcbiAgICAgIHJldHVybiB0aGlzLmZyYW1lO1xuICAgIH1cblxuICAgIGNvbnN0IG1ldGhvZCA9IHtcbiAgICAgIFtIVFRQMl9IRUFERVJfUEFUSF06IHRoaXMucGF0aCxcbiAgICAgIFtIVFRQMl9IRUFERVJfTUVUSE9EXTogdGhpcy5tZXRob2RcbiAgICB9O1xuXG4gICAgbGV0IGhlYWRlcnMgPSB0aGlzLm1hcFRvSHR0cDJIZWFkZXIodGhpcy5faGVhZGVycyk7XG5cbiAgICBoZWFkZXJzID0gT2JqZWN0LmFzc2lnbihoZWFkZXJzLCBtZXRob2QpO1xuXG4gICAgY29uc3QgZnJhbWUgPSB0aGlzLnNlc3Npb24ucmVxdWVzdChoZWFkZXJzKTtcblxuICAgIGZyYW1lLm9uY2UoJ3Jlc3BvbnNlJywgKGhlYWRlcnMsIGZsYWdzKSA9PiB7XG4gICAgICBoZWFkZXJzID0gdGhpcy5tYXBUb0h0dHBIZWFkZXIoaGVhZGVycyk7XG4gICAgICBmcmFtZS5oZWFkZXJzID0gaGVhZGVycztcbiAgICAgIGZyYW1lLnN0YXR1c0NvZGUgPSBoZWFkZXJzW0hUVFAyX0hFQURFUl9TVEFUVVNdO1xuICAgICAgZnJhbWUuc3RhdHVzID0gZnJhbWUuc3RhdHVzQ29kZTtcbiAgICAgIHRoaXMuZW1pdCgncmVzcG9uc2UnLCBmcmFtZSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLl9oZWFkZXJTZW50ID0gdHJ1ZTtcblxuICAgIGZyYW1lLm9uY2UoJ2RyYWluJywgKCkgPT4gdGhpcy5lbWl0KCdkcmFpbicpKTtcbiAgICBmcmFtZS5vbignZXJyb3InLCAoZXJyb3IpID0+IHRoaXMuZW1pdCgnZXJyb3InLCBlcnJvcikpO1xuICAgIGZyYW1lLm9uKCdjbG9zZScsICgpID0+IHRoaXMuc2Vzc2lvbi5jbG9zZSgpKTtcblxuICAgIHRoaXMuZnJhbWUgPSBmcmFtZTtcbiAgICByZXR1cm4gZnJhbWU7XG4gIH1cblxuICBtYXBUb0h0dHBIZWFkZXIoaGVhZGVycykge1xuICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhoZWFkZXJzKTtcbiAgICBjb25zdCBodHRwMkhlYWRlcnMgPSB7fTtcbiAgICBmb3IgKGxldCBrZXkgb2Yga2V5cykge1xuICAgICAgbGV0IHZhbHVlID0gaGVhZGVyc1trZXldO1xuICAgICAga2V5ID0ga2V5LnRvTG93ZXJDYXNlKCk7XG4gICAgICBzd2l0Y2ggKGtleSkge1xuICAgICAgICBjYXNlIEhUVFAyX0hFQURFUl9TRVRfQ09PS0lFOlxuICAgICAgICAgIHZhbHVlID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFt2YWx1ZV07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGh0dHAySGVhZGVyc1trZXldID0gdmFsdWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGh0dHAySGVhZGVycztcbiAgfVxuXG4gIG1hcFRvSHR0cDJIZWFkZXIoaGVhZGVycykge1xuICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhoZWFkZXJzKTtcbiAgICBjb25zdCBodHRwMkhlYWRlcnMgPSB7fTtcbiAgICBmb3IgKGxldCBrZXkgb2Yga2V5cykge1xuICAgICAgbGV0IHZhbHVlID0gaGVhZGVyc1trZXldO1xuICAgICAga2V5ID0ga2V5LnRvTG93ZXJDYXNlKCk7XG4gICAgICBzd2l0Y2ggKGtleSkge1xuICAgICAgICBjYXNlIEhUVFAyX0hFQURFUl9IT1NUOlxuICAgICAgICAgIGtleSA9IEhUVFAyX0hFQURFUl9BVVRIT1JJVFk7XG4gICAgICAgICAgdmFsdWUgPSAvXmh0dHA6XFwvXFwvfF5odHRwczpcXC9cXC8vLnRlc3QodmFsdWUpXG4gICAgICAgICAgICA/IHBhcnNlKHZhbHVlKS5ob3N0XG4gICAgICAgICAgICA6IHZhbHVlO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBodHRwMkhlYWRlcnNba2V5XSA9IHZhbHVlO1xuICAgIH1cblxuICAgIHJldHVybiBodHRwMkhlYWRlcnM7XG4gIH1cblxuICBzZXRIZWFkZXIobmFtZSwgdmFsdWUpIHtcbiAgICB0aGlzLl9oZWFkZXJzW25hbWUudG9Mb3dlckNhc2UoKV0gPSB2YWx1ZTtcbiAgfVxuXG4gIGdldEhlYWRlcihuYW1lKSB7XG4gICAgcmV0dXJuIHRoaXMuX2hlYWRlcnNbbmFtZS50b0xvd2VyQ2FzZSgpXTtcbiAgfVxuXG4gIHdyaXRlKGRhdGEsIGVuY29kaW5nKSB7XG4gICAgY29uc3QgZnJhbWUgPSB0aGlzLmdldEZyYW1lKCk7XG4gICAgcmV0dXJuIGZyYW1lLndyaXRlKGRhdGEsIGVuY29kaW5nKTtcbiAgfVxuXG4gIHBpcGUoc3RyZWFtLCBvcHRpb25zKSB7XG4gICAgY29uc3QgZnJhbWUgPSB0aGlzLmdldEZyYW1lKCk7XG4gICAgcmV0dXJuIGZyYW1lLnBpcGUoc3RyZWFtLCBvcHRpb25zKTtcbiAgfVxuXG4gIGVuZChkYXRhKSB7XG4gICAgY29uc3QgZnJhbWUgPSB0aGlzLmdldEZyYW1lKCk7XG4gICAgZnJhbWUuZW5kKGRhdGEpO1xuICB9XG5cbiAgYWJvcnQoZGF0YSkge1xuICAgIGNvbnN0IGZyYW1lID0gdGhpcy5nZXRGcmFtZSgpO1xuICAgIGZyYW1lLmNsb3NlKE5HSFRUUDJfQ0FOQ0VMKTtcbiAgICB0aGlzLnNlc3Npb24uZGVzdHJveSgpO1xuICB9XG59XG5cbmV4cG9ydHMuc2V0UHJvdG9jb2wgPSBzZXRQcm90b2NvbDtcbiJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxNQUFNQSxNQUFNLEdBQUdDLE9BQU8sQ0FBQyxRQUFRLENBQUM7QUFDaEMsTUFBTUMsR0FBRyxHQUFHRCxPQUFPLENBQUMsS0FBSyxDQUFDO0FBQzFCLE1BQU1FLEdBQUcsR0FBR0YsT0FBTyxDQUFDLEtBQUssQ0FBQztBQUMxQjtBQUNBLE1BQU07RUFBRUc7QUFBTSxDQUFDLEdBQUdILE9BQU8sQ0FBQyxLQUFLLENBQUM7QUFDaEMsTUFBTUksT0FBTyxHQUFHSixPQUFPLENBQUMsU0FBUyxDQUFDO0FBQ2xDLE1BQU1LLFNBQVMsR0FBR0wsT0FBTyxDQUFDLHNCQUFzQixDQUFDO0FBRWpELElBQUlNLEtBQUs7QUFFVCxJQUFJRCxTQUFTLENBQUNELE9BQU8sQ0FBQ0cs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