New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

apiquery

Package Overview
Dependencies
Maintainers
1
Versions
24
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

apiquery - npm Package Compare versions

Comparing version 0.1.22 to 0.1.23

12

apiquery.js

@@ -301,3 +301,4 @@ 'use strict';

var req = Object.assign({ url: url, headers: _extends({}, this.headers) }, (0, _lodash4.default)(params, FETCH_PARAMS));
var req = Object.assign({ url: url,
headers: _extends({}, this.headers) }, (0, _lodash4.default)(params, FETCH_PARAMS));

@@ -530,2 +531,9 @@ var body = params.body || params.data;

if (Array.isArray(socket)) {
if ((typeof window !== 'undefined' ? window : global).__DEV__) {
console.warn('multiple open sockets', socket);
}
socket = socket[2];
}
this.wsConnections[key] = [path, options, socket];

@@ -581,2 +589,2 @@ socket.on('disconnect', function () {

exports.default = ApiClient;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9hcGlxdWVyeS5qcyJdLCJuYW1lcyI6WyJGRVRDSF9QQVJBTVMiLCJpb01vY2siLCJtb2NrIiwiTWFuYWdlciIsIlNvY2tldCIsImNvbm5lY3Rpb24iLCJldmVudHMiLCJvbiIsInBhcmFtcyIsInB1c2giLCJ1c2UiLCJkaXNjb25uZWN0IiwicmVjcmVhdGVTb2NrZXQiLCJmb3JFYWNoIiwiZXZlbnQiLCJuYW1lIiwiQXBpQ2xpZW50IiwidGhyb3dFcnJvciIsImVyciIsInJlcyIsInJlcSIsInNob3dFcnJvciIsImxvZyIsInN0ciIsIkpTT04iLCJzdHJpbmdpZnkiLCJqc29uIiwiZXJyb3IiLCJtZXNzYWdlIiwiZXJyMiIsIkVycm9yIiwiaW8iLCJyb290IiwiYmFzZSIsImhlYWRlcnMiLCJ1cmwiLCJ3c0NvbmZpZyIsIndzIiwid3NDb25uZWN0aW9ucyIsImF1dGhUb2tlbiIsIndzUmVjb25uZWN0IiwiY3R4IiwidHlwZSIsInN0YXR1cyIsInN0YXR1c1RleHQiLCJ0ZXh0RXJyIiwianNvbkVyciIsInBhdGgiLCJvcHRpb25zIiwic3Vic3RyIiwicG9ydCIsImxlbmd0aCIsInNlYXJjaCIsInJlcGxhY2UiLCJhcnJheSIsIm1hcCIsImEiLCJmaWx0ZXIiLCJpIiwiam9pbiIsInFzIiwiaW5kZXhPZiIsImNvbnN0cnVjdG9yIiwiT2JqZWN0IiwiYXNzaWduIiwiYm9keSIsImRhdGEiLCJBY2NlcHQiLCJfYm9keSIsImluY2x1ZGVzIiwiZm9ybSIsImtleXMiLCJrZXkiLCJhcHBlbmQiLCJBdXRob3JpemF0aW9uIiwicXVlcnlQYXJhbXMiLCJjcmVhdGVVcmwiLCJtZXRob2QiLCJhZnRlckZldGNoIiwicGFyc2VSZXN1bHQiLCJ0aW1lb3V0IiwicmVzdWx0IiwidGV4dCIsInBhcnNlIiwiZ2V0Q3R4IiwiZmV0Y2giLCJ0cmFjZSIsInRoZW4iLCJQcm9taXNlIiwicmFjZSIsInJlc29sdmUiLCJyZWplY3QiLCJzZXRUaW1lb3V0Iiwic29ja2V0IiwiY29uc29sZSIsIm9wdHMiLCJ0b2tlbkluQ29va2llIiwicXVlcnkiLCJ0b2tlbiIsInBhcmFtczIiLCJjcmVhdGUiLCJtZXJnZSIsImdsb2JhbCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7Ozs7Ozs7Ozs7Ozs4RUFOQTs7O0FBT0E7QUFDQSxJQUFNQSxlQUFlLENBQ25CLFFBRG1CLEVBRW5CLEtBRm1CLEVBR25CLFNBSG1CLEVBSW5CLFNBSm1CLEVBS25CLFVBTG1CLEVBTW5CLGdCQU5tQixFQU9uQixNQVBtQixFQVFuQixhQVJtQixFQVNuQixVQVRtQixFQVVuQixXQVZtQixFQVduQixPQVhtQixDQUFyQjs7QUFjQSxTQUFTQyxNQUFULEdBQStCO0FBQzdCO0FBQ0E7QUFDQSxNQUFNQyxPQUFPO0FBQ1hDLGFBQVMsNEJBQUdBLE9BREQ7QUFFWEMsWUFBUSw0QkFBR0EsTUFGQTtBQUdYQyxnQkFBWSxJQUhEO0FBSVhDLFlBQVEsRUFKRztBQUtYQyxNQUxXLGdCQUtHO0FBQUEsd0NBQVJDLE1BQVE7QUFBUkEsY0FBUTtBQUFBOztBQUNaTixXQUFLSSxNQUFMLENBQVlHLElBQVosRUFBa0IsSUFBbEIsU0FBMkJELE1BQTNCO0FBQ0QsS0FQVTtBQVFYRSxPQVJXLGlCQVFJO0FBQUEseUNBQVJGLE1BQVE7QUFBUkEsY0FBUTtBQUFBOztBQUNiTixXQUFLSSxNQUFMLENBQVlHLElBQVosRUFBa0IsS0FBbEIsU0FBNEJELE1BQTVCO0FBQ0QsS0FWVTtBQVdYRyxjQVhXLHdCQVdXO0FBQUE7O0FBQ3BCLCtCQUFLTixVQUFMLEVBQWdCTSxVQUFoQjtBQUNELEtBYlU7QUFjWEMsa0JBZFcsNEJBY3NCO0FBQy9CO0FBQ0EsVUFBSVYsS0FBS0csVUFBTCxJQUFtQkgsS0FBS0csVUFBTCxDQUFnQk0sVUFBdkMsRUFBbUQ7QUFDakRULGFBQUtHLFVBQUwsQ0FBZ0JNLFVBQWhCO0FBQ0Q7QUFDRFQsV0FBS0csVUFBTCxHQUFr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VixLQUFLNkMsU0FBTCxDQUFlN0IsSUFBZixFQUFxQm9ELE9BQXJCLENBRFUsZUFHTCxLQUFLL0QsUUFBTCxDQUFjWSxPQUhULEVBSUx4QyxNQUpLLEVBQVo7QUFPQSxhQUFPVyxHQUFQO0FBQ0Q7Ozs4QkF0VGdCQyxHLEVBQUs7QUFDcEI7QUFDQTtBQUNBLDBCQUNLQSxHQURMO0FBRUVnRixjQUZGLGtCQUVTNUYsTUFGVCxFQUVpQjtBQUNiLGNBQU15RixRQUFRLEtBQUtyQyxFQUFMLENBQVFuQyxTQUFSLENBQWtCakIsTUFBbEIsQ0FBZDtBQUNBLGlCQUFPLENBQUMsS0FBS3VDLElBQUwsSUFBYSxHQUFkLEtBQXNCa0QsY0FBWUEsS0FBWixHQUFzQixFQUE1QyxDQUFQO0FBQ0QsU0FMSDtBQU1FSSxhQU5GLGlCQU1RN0YsTUFOUixFQU1nQjtBQUNaLGlCQUFPLEtBQUs0RixNQUFMLGNBQ0YsS0FBS0gsS0FESCxFQUVGekYsTUFGRSxFQUFQO0FBSUQ7QUFYSDtBQWFEOzs7Ozs7QUF2Q2tCUSxTLENBQ1pxRSxLLEdBQVFpQixPQUFPakIsSztBQURIckUsUyxDQUVaNEMsRTtrQkFGWTVDLFMiLCJmaWxlIjoiYXBpcXVlcnkuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBpbXBvcnQgZmV0Y2ggZnJvbSAnbm9kZS1mZXRjaCc7XG5pbXBvcnQgaXNQbGFpbk9iamVjdCBmcm9tICdsb2Rhc2guaXNwbGFpbm9iamVjdCc7XG5pbXBvcnQgcGljayBmcm9tICdsb2Rhc2gucGljayc7XG5pbXBvcnQgcXMgZnJvbSAncXMnO1xuaW1wb3J0IEZvcm1EYXRhIGZyb20gJ2Zvcm0tZGF0YSc7XG5pbXBvcnQgaW8gZnJvbSAnLi9zb2NrZXQtaW8tdW5pdmVyc2FsJztcbmltcG9ydCB0cmltIGZyb20gJy4vdHJpbSc7XG4vLyBpbXBvcnQgZmV0Y2ggZnJvbSAnaXNvbW9ycGhpYy1mZXRjaCc7XG5jb25zdCBGRVRDSF9QQVJBTVMgPSBbXG4gICdtZXRob2QnLFxuICAndXJsJyxcbiAgJ2hlYWRlcnMnLFxuICAnY29udGV4dCcsXG4gICdyZWZlcnJlcicsXG4gICdyZWZlcnJlclBvbGljeScsXG4gICdtb2RlJyxcbiAgJ2NyZWRlbnRpYWxzJyxcbiAgJ3JlZGlyZWN0JyxcbiAgJ2ludGVncml0eScsXG4gICdjYWNoZScsXG5dO1xuXG5mdW5jdGlvbiBpb01vY2soLi4uaW5pdFBhcmFtcykge1xuICAvLyBfX0RFVl9fICYmIGNvbnNvbGUubG9nKCdpb01vY2snLCAuLi5pbml0UGFyYW1zKTtcbiAgLy8gY29uc3Qgc29ja2V0ID0gaW8oLi4ucGFyYW1zKVxuICBjb25zdCBtb2NrID0ge1xuICAgIE1hbmFnZXI6IGlvLk1hbmFnZXIsXG4gICAgU29ja2V0OiBpby5Tb2NrZXQsXG4gICAgY29ubmVjdGlvbjogbnVsbCxcbiAgICBldmVudHM6IFtdLFxuICAgIG9uKC4uLnBhcmFtcykge1xuICAgICAgbW9jay5ldmVudHMucHVzaChbJ29uJywgLi4ucGFyYW1zXSk7XG4gICAgfSxcbiAgICB1c2UoLi4ucGFyYW1zKSB7XG4gICAgICBtb2NrLmV2ZW50cy5wdXNoKFsndXNlJywgLi4ucGFyYW1zXSk7XG4gICAgfSxcbiAgICBkaXNjb25uZWN0KC4uLnBhcmFtcykge1xuICAgICAgbW9jay5jb25uZWN0aW9uLmRpc2Nvbm5lY3QoLi4ucGFyYW1zKTtcbiAgICB9LFxuICAgIHJlY3JlYXRlU29ja2V0KC4uLm5ld0luaXRQYXJhbXMpIHtcbiAgICAgIC8vIF9fREVWX18gJiYgY29uc29sZS5sb2coJ3JlY3JlYXRlU29ja2V0JywgLi4ubmV3SW5pdFBhcmFtcyk7XG4gICAgICBpZiAobW9jay5jb25uZWN0aW9uICYmIG1vY2suY29ubmVjdGlvbi5kaXNjb25uZWN0KSB7XG4gICAgICAgIG1vY2suY29ubmVjdGlvbi5kaXNjb25uZWN0KCk7XG4gICAgICB9XG4gICAgICBtb2NrLmNvbm5lY3Rpb24gPSBpbyguLi5uZXdJbml0UGFyYW1zKTtcbiAgICAgIG1vY2suZXZlbnRzLmZvckVhY2goKGV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IFtuYW1lLCAuLi5wYXJhbXNdID0gZXZlbnQ7XG4gICAgICAgIG1vY2suY29ubmVjdGlvbltuYW1lXSguLi5wYXJhbXMpO1xuICAgICAgfSk7XG5cbiAgICAgIG1vY2suY29ubmVjdGlvbi5yZWNyZWF0ZVNvY2tldCA9ICguLi5uZXdJbml0UGFyYW1zMikgPT4ge1xuICAgICAgICAvLyBfX0RFVl9fICYmIGNvbnNvbGUubG9nKCdyZWNyZWF0ZVNvY2tldDInLCAuLi5uZXdJbml0UGFyYW1zMik7XG4gICAgICAgIHJldHVybiBtb2NrLnJlY3JlYXRlU29ja2V0KC4uLm5ld0luaXRQYXJhbXMyKTtcbiAgICAgIH1cbiAgICAgIC8vIF9fREVWX18gJiYgY29uc29sZS5sb2coJ3JlY3JlYXRlQ29ubmVjdGlvbicpO1xuICAgICAgcmV0dXJuIG1vY2suY29ubmVjdGlvbjtcbiAgICB9LFxuICB9O1xuICByZXR1cm4gbW9jay5yZWNyZWF0ZVNvY2tldCguLi5pbml0UGFyYW1zKTtcbn1cblxuLy8gY29uc3QgREVCVUcgPSBfX0RFVl9fO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBBcGlDbGllbnQge1xuICBzdGF0aWMgZmV0Y2ggPSBnbG9iYWwuZmV0Y2g7XG4gIHN0YXRpYyBxcyA9IHFzXG4gIC8vIGlvID0gaW9cblxuICBjb25zdHJ1Y3RvcihwYXJhbXMgPSB7fSkge1xuICAgIC8vIGNvbnNvbGUubG9nKCdBcGlDbGllbnQnLCBwYXJhbXMpO1xuICAgIHRoaXMuaW8gPSBpb01vY2s7XG4gICAgdGhpcy5sb2cgPSBwYXJhbXMubG9nO1xuICAgIHRoaXMucm9vdCA9IHBhcmFtcy5yb290O1xuICAgIHRoaXMuYmFzZSA9IHBhcmFtcy5iYXNlO1xuICAgIHRoaXMuaGVhZGVycyA9IHBhcmFtcy5oZWFkZXJzIHx8IHt9O1xuICAgIHRoaXMudXJsID0gcGFyYW1zLnVybDtcbiAgICB0aGlzLndzQ29uZmlnID0gcGFyYW1zLndzO1xuICAgIHRoaXMud3NDb25uZWN0aW9ucyA9IHt9O1xuICAgIHRoaXMuYXV0aFRva2VuID0gcGFyYW1zLmF1dGhUb2tlbiB8fCBudWxsO1xuICB9XG5cbiAgc2V0QXV0aFRva2VuKGF1dGhUb2tlbikge1xuICAgIHRoaXMuYXV0aFRva2VuID0gYXV0aFRva2VuO1xuICAgIHRoaXMud3NSZWNvbm5lY3QoKTtcbiAgfVxuXG4gIHN0YXRpYyBjcmVhdGVSZXEocmVxKSB7XG4gICAgLy8gcmVxLnBhdGgsXG4gICAgLy8gcmVxLnF1ZXJ5LFxuICAgIHJldHVybiB7XG4gICAgICAuLi5yZXEsXG4gICAgICBjcmVhdGUocGFyYW1zKSB7XG4gICAgICAgIGNvbnN0IHF1ZXJ5ID0gdGhpcy5xcy5zdHJpbmdpZnkocGFyYW1zKTtcbiAgICAgICAgcmV0dXJuICh0aGlzLnBhdGggfHwgJy8nKSArIChxdWVyeSA/IGA/JHtxdWVyeX1gIDogJycpO1xuICAgICAgfSxcbiAgICAgIG1lcmdlKHBhcmFtcykge1xuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGUoe1xuICAgICAgICAgIC4uLnRoaXMucXVlcnksXG4gICAgICAgICAgLi4ucGFyYW1zLFxuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIHRocm93RXJyb3IgPSBhc3luYyAoeyBlcnIsIHJlcywgcmVxIH0pID0+IHtcbiAgICBpZiAodGhpcy5zaG93RXJyb3IgJiYgdGhpcy5sb2cpIHtcbiAgICAgIGNvbnN0IHN0ciA9IGBcXFxuPT09PT09PT09PT09PT1cbiAgZmV0Y2ggZXJyb3I6XG4ke2lzUGxhaW5PYmplY3QoZXJyKSA/IEpTT04uc3RyaW5naWZ5KGVyciwgbnVsbCwgMikgOiBlcnJ9XG4gIHJlcTpcbiR7SlNPTi5zdHJpbmdpZnkocmVxLCBudWxsLCAyKX1cbiAganNvbjpcbiR7SlNPTi5zdHJpbmdpZnkocmVzLmpzb24sIG51bGwsIDIpfVxuPT09PT09PT09PT09PT1cXFxuYDtcbiAgICAgIHRoaXMubG9nLmVycm9yKHN0cik7XG4gICAgfVxuICAgIGNvbnN0IG1lc3NhZ2UgPSBlcnIgJiYgZXJyLm1lc3NhZ2UgfHwgZXJyO1xuICAgIGNvbnN0IGVycjIgPSBuZXcgRXJyb3IoaXNQbGFpbk9iamVjdChtZXNzYWdlKSA/IEpTT04uc3RyaW5naWZ5KG1lc3NhZ2UpIDogbWVzc2FnZSk7XG4gICAgZXJyMi5yZXMgPSByZXM7XG4gICAgZXJyMi5yZXEgPSByZXE7XG4gICAgdGhyb3cgZXJyMjtcbiAgfVxuXG4gIGFzeW5jIGFmdGVyRmV0Y2goY3R4KSB7XG4gICAgY29uc3QgeyByZXMsIHRocm93RXJyb3IgfSA9IGN0eDtcbiAgICBpZiAocmVzLmpzb24gJiYgcmVzLmpzb24uZXJyKSB7XG4gICAgICBhd2FpdCB0aHJvd0Vycm9yKHtcbiAgICAgICAgLi4uY3R4LFxuICAgICAgICBlcnI6IHtcbiAgICAgICAgICB0eXBlOiAnQ1VTVE9NX0VSUk9SJyxcbiAgICAgICAgICAuLi5yZXMuanNvbi5lcnIsXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9XG4gICAgaWYgKHJlcy5zdGF0dXMgPj0gNDAwKSB7XG4gICAgICBjb25zdCB0eXBlID0gJ1JFU19TVEFUVVNfRVJST1InO1xuICAgICAgYXdhaXQgdGhyb3dFcnJvcih7XG4gICAgICAgIC4uLmN0eCxcbiAgICAgICAgZXJyOiB7XG4gICAgICAgICAgdHlwZSxcbiAgICAgICAgICBzdGF0dXM6IHJlcy5zdGF0dXMsXG4gICAgICAgICAgc3RhdHVzVGV4dDogcmVzLnN0YXR1c1RleHQsXG4gICAgICAgICAgbWVzc2FnZTogYCR7dHlwZX06ICR7cmVzLnN0YXR1c30gJHtyZXMuc3RhdHVzVGV4dH1gLFxuICAgICAgICAgIC4uLihyZXMuanNvbiB8fCB7fSksXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9XG4gICAgaWYgKHJlcy50ZXh0RXJyKSB7XG4gICAgICBjb25zdCB0eXBlID0gJ1RFWFRfUEFSU0VfRVJST1InO1xuICAgICAgYXdhaXQgY3R4LnRocm93RXJyb3Ioe1xuICAgICAgICAuLi5jdHgsXG4gICAgICAgIHJlcyxcbiAgICAgICAgZXJyOiB7XG4gICAgICAgICAgdHlwZSxcbiAgICAgICAgICBtZXNzYWdlOiAn0J7RiNC40LHQutCwINC/0LXRgNC10LTQsNGH0Lgg0LTQsNC90L3Ri9GFJyxcbiAgICAgICAgICBlcnI6IHJlcy50ZXh0RXJyLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfVxuICAgIGlmIChyZXMuanNvbkVycikge1xuICAgICAgY29uc3QgdHlwZSA9ICdKU09OX1BBUlNFX0VSUk9SJztcbiAgICAgIGF3YWl0IGN0eC50aHJvd0Vycm9yKHtcbiAgICAgICAgLi4uY3R4LFxuICAgICAgICByZXMsXG4gICAgICAgIGVycjoge1xuICAgICAgICAgIHR5cGUsXG4gICAgICAgICAgbWVzc2FnZTogJ9Ce0YjQuNCx0LrQsCDRgdC10YDQstC10YDQsCcsXG4gICAgICAgICAgLy8gbWVzc2FnZTogdHlwZSxcbiAgICAgICAgICBlcnI6IHJlcy5qc29uRXJyLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiByZXMuanNvbjtcbiAgfVxuXG4gIGNyZWF0ZVVybChwYXRoLCBvcHRpb25zID0ge30pIHtcbiAgICBpZiAocGF0aC5zdWJzdHIoMCwgNSkgPT09ICdodHRwOicgfHwgcGF0aC5zdWJzdHIoMCwgNikgPT09ICdodHRwczonKSB7XG4gICAgICByZXR1cm4gcGF0aDtcbiAgICB9XG4gICAgbGV0IHVybCA9IG9wdGlvbnMudXJsIHx8IHRoaXMudXJsIHx8ICcvJztcbiAgICBjb25zdCBwb3J0ID0gb3B0aW9ucy5wb3J0IHx8IHRoaXMucG9ydCB8fCBudWxsO1xuXG4gICAgaWYgKHVybCAmJiB1cmwubGVuZ3RoID4gMSAmJiBwb3J0KSB7XG4gICAgICBpZiAodXJsLnNlYXJjaCgvOihcXGQrKS8pICE9PSAtMSkge1xuICAgICAgICB1cmwgPSB1cmwucmVwbGFjZSgvOihcXGQrKS8sIGA6JHtwb3J0fWApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdXJsID0gYCR7dXJsfToke3BvcnR9YDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBiYXNlID0gb3B0aW9ucy5iYXNlIHx8IHRoaXMuYmFzZTtcbiAgICBjb25zdCBhcnJheSA9IFt1cmwsIHBhdGhbMF0gPT09ICcvJyA/IG51bGwgOiB0cmltKGJhc2UpLCB0cmltKHBhdGgpXTtcbiAgICB1cmwgPSBhcnJheVxuICAgICAgLm1hcChhID0+IHRyaW0oYSkpXG4gICAgICAuZmlsdGVyKChhLCBpKSA9PiAoaSA9PT0gMCB8fCBhKSlcbiAgICAgIC5qb2luKCcvJyk7XG4gICAgaWYgKG9wdGlvbnMucXMpIHtcbiAgICAgIHVybCArPSAodXJsLmluZGV4T2YoJz8nKSA9PT0gLTEgPyAnPycgOiAnJicpICsgdGhpcy5jb25zdHJ1Y3Rvci5xcy5zdHJpbmdpZnkob3B0aW9ucy5xcyk7XG4gICAgfVxuICAgIHJldHVybiB1cmw7XG4gIH1cblxuICBnZXRDdHgodXJsLCBwYXJhbXMgPSB7fSkge1xuICAgIGNvbnN0IHJlcSA9IE9iamVjdC5hc3NpZ24oXG4gICAgICB7IHVybCwgaGVhZGVyczoge1xuICAgICAgICAuLi50aGlzLmhlYWRlcnNcbiAgICAgIH0gfSxcbiAgICAgIHBpY2socGFyYW1zLCBGRVRDSF9QQVJBTVMpLFxuICAgICk7XG5cbiAgICBjb25zdCBib2R5ID0gcGFyYW1zLmJvZHkgfHwgcGFyYW1zLmRhdGE7XG5cbiAgICBpZiAoIXJlcS5oZWFkZXJzKSByZXEuaGVhZGVycyA9IHt9O1xuICAgIGlmICghcmVxLmhlYWRlcnMuQWNjZXB0KSByZXEuaGVhZGVycy5BY2NlcHQgPSAnYXBwbGljYXRpb24vanNvbic7XG4gICAgaWYgKCFyZXEuaGVhZGVyc1snQ29udGVudC1UeXBlJ10pIHJlcS5oZWFkZXJzWydDb250ZW50LVR5cGUnXSA9ICdhcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0PXV0Zi04JztcbiAgICBpZiAocmVxLmhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddID09PSAnIScpIHtcbiAgICAgIGRlbGV0ZSByZXEuaGVhZGVyc1snQ29udGVudC1UeXBlJ107XG4gICAgfVxuXG4gICAgcmVxLl9ib2R5ID0gYm9keTtcbiAgICByZXEuYm9keSA9IGJvZHk7XG4gICAgaWYgKGlzUGxhaW5PYmplY3QoYm9keSkpIHtcbiAgICAgIGlmIChyZXEuaGVhZGVyc1snQ29udGVudC1UeXBlJ10gJiYgcmVxLmhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddLmluY2x1ZGVzKCdhcHBsaWNhdGlvbi9qc29uJykpIHtcbiAgICAgICAgcmVxLmJvZHkgPSBKU09OLnN0cmluZ2lmeShib2R5KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGZvcm0gPSBuZXcgRm9ybURhdGEoKTtcbiAgICAgICAgT2JqZWN0LmtleXMoYm9keSkuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgICAgZm9ybS5hcHBlbmQoa2V5LCBib2R5W2tleV0pO1xuICAgICAgICB9KTtcbiAgICAgICAgcmVxLmJvZHkgPSBmb3JtO1xuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBhdXRoVG9rZW4gPSAocGFyYW1zLmF1dGhUb2tlbiB8fCB0aGlzLmF1dGhUb2tlbik7XG4gICAgaWYgKCFyZXEuaGVhZGVycy5BdXRob3JpemF0aW9uICYmIGF1dGhUb2tlbikge1xuICAgICAgcmVxLmhlYWRlcnMuQXV0aG9yaXphdGlvbiA9IGBCZWFyZXIgJHthdXRoVG9rZW59YDtcbiAgICB9XG5cbiAgICByZXEucXMgPSBwYXJhbXMucXVlcnlQYXJhbXMgfHwgcGFyYW1zLnFzO1xuICAgIGlmIChyZXEucXMpIHtcbiAgICAgIHJlcS51cmwgKz0gKHJlcS51cmwuaW5kZXhPZignPycpID09PSAtMSA/ICc/JyA6ICcmJykgKyB0aGlzLmNvbnN0cnVjdG9yLnFzLnN0cmluZ2lmeShyZXEucXMpO1xuICAgIH1cbiAgICByZXEudXJsID0gdGhpcy5jcmVhdGVVcmwocmVxLnVybCk7XG5cbiAgICBpZiAoIXJlcS5tZXRob2QpIHtcbiAgICAgIHJlcS5tZXRob2QgPSAnR0VUJztcbiAgICB9XG4gICAgY29uc3QgdGhyb3dFcnJvciA9IHBhcmFtcy50aHJvd0Vycm9yIHx8IHRoaXMudGhyb3dFcnJvcjtcbiAgICBjb25zdCBhZnRlckZldGNoID0gcGFyYW1zLmFmdGVyRmV0Y2ggfHwgdGhpcy5hZnRlckZldGNoO1xuICAgIGNvbnN0IHBhcnNlUmVzdWx0ID0gcGFyYW1zLnBhcnNlUmVzdWx0IHx8IHRoaXMucGFyc2VSZXN1bHQ7XG4gICAgY29uc3QgdGltZW91dCA9IHBhcmFtcy50aW1lb3V0O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHJlcSxcbiAgICAgIHRpbWVvdXQsXG4gICAgICBhdXRoVG9rZW4sXG4gICAgICB0aHJvd0Vycm9yLFxuICAgICAgYWZ0ZXJGZXRjaCxcbiAgICAgIHBhcnNlUmVzdWx0LFxuICAgIH07XG4gIH1cblxuICBhc3luYyBwYXJzZVJlc3VsdChjdHgsIHJlc3VsdCkge1xuICAgIGNvbnN0IHJlcyA9IHtcbiAgICAgIHJlc3VsdCxcbiAgICAgIHN0YXR1czogcmVzdWx0LnN0YXR1cyxcbiAgICAgIHN0YXR1c1RleHQ6IHJlc3VsdC5zdGF0dXNUZXh0LFxuICAgIH07XG4gICAgdHJ5IHtcbiAgICAgIHJlcy50ZXh0ID0gYXdhaXQgcmVzdWx0LnRleHQoKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHJlcy50ZXh0RXJyID0gZXJyO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgcmVzLmpzb24gPSBKU09OLnBhcnNlKHJlcy50ZXh0KTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHJlcy5qc29uRXJyID0gZXJyO1xuICAgIH1cbiAgICByZXR1cm4gcmVzO1xuICB9XG5cbiAgZmV0Y2goLi4uYXJncykge1xuICAgIGNvbnN0IGN0eCA9IHRoaXMuZ2V0Q3R4KC4uLmFyZ3MpO1xuICAgIGNvbnN0IHsgZmV0Y2ggfSA9IHRoaXMuY29uc3RydWN0b3I7XG4gICAgY29uc3QgeyByZXEsIHBhcnNlUmVzdWx0LCBhZnRlckZldGNoIH0gPSBjdHg7XG4gICAgaWYgKHRoaXMubG9nICYmIHRoaXMubG9nLnRyYWNlKSB7XG4gICAgICB0aGlzLmxvZy50cmFjZSgnW2FwaV0nLCByZXEubWV0aG9kLCByZXEudXJsLCByZXEuX2JvZHkpO1xuICAgICAgLy8gdGhpcy5sb2cudHJhY2UoJ1thcGldJywgcmVxLm1ldGhvZCwgcmVxLnVybCwgcmVxLl9ib2R5LCByZXEpO1xuICAgIH1cbiAgICBjb25zdCB7IHVybCwgLi4ucGFyYW1zIH0gPSByZXE7XG4gICAgLy8gY29uc29sZS5sb2coJ0BAQGZldGNoJywgdXJsLCBwYXJhbXMpO1xuICAgIGNvbnN0IHJlcyA9IGZldGNoKHVybCwgcGFyYW1zKVxuICAgICAgLnRoZW4oYXN5bmMgKHJlc3VsdCkgPT4ge1xuICAgICAgICBjdHgucmVzID0gYXdhaXQgcGFyc2VSZXN1bHQoY3R4LCByZXN1bHQpO1xuICAgICAgICByZXR1cm4gY3R4O1xuICAgICAgfSlcbiAgICAgIC50aGVuKGFmdGVyRmV0Y2gpO1xuICAgIGlmICghY3R4LnRpbWVvdXQpIHJldHVybiByZXM7XG5cbiAgICByZXR1cm4gUHJvbWlzZS5yYWNlKFtcbiAgICAgIHJlcyxcbiAgICAgIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiByZWplY3QobmV3IEVycm9yKCdmZXRjaCB0aW1lb3V0JykpLCBjdHgudGltZW91dCk7XG4gICAgICB9KSxcbiAgICBdKTtcbiAgfVxuXG4gIHdzUmVjb25uZWN0KCkge1xuICAgIGlmICh0aGlzLmxvZyAmJiB0aGlzLmxvZy50cmFjZSkge1xuICAgICAgdGhpcy5sb2cudHJhY2UoJ1thcGldIFdTLndzUmVjb25uZWN0ICMjIycsIE9iamVjdC5rZXlzKHRoaXMud3NDb25uZWN0aW9ucykpO1xuICAgIH1cblxuICAgIE9iamVjdC5rZXlzKHRoaXMud3NDb25uZWN0aW9ucykuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICBjb25zdCBbcGF0aCwgb3B0aW9ucywgc29ja2V0XSA9IHRoaXMud3NDb25uZWN0aW9uc1trZXldO1xuICAgICAgLy8gX19ERVZfXyAmJiB0aGlzLmxvZy50cmFjZSgnW2FwaV0gcHJlcGFyZSByZWNvbm5lY3QgQEAnLCBzb2NrZXQpO1xuICAgICAgLy8gLy8gX19ERVZfXyAmJiBjb25zb2xlLmxvZygncHJlcGFyZSByZWNvbm5lY3QgQEAnLCBzb2NrZXQpO1xuICAgICAgLy8gaWYgKCFzb2NrZXQucmVjcmVhdGVTb2NrZXQpIHtcbiAgICAgIC8vICAgLy8gX19ERVZfXyAmJiBjb25zb2xlLmxvZygnIXNvY2tldC5yZWNyZWF0ZVNvY2tldCcsIHNvY2tldCk7XG4gICAgICAvLyB9XG4gICAgICBzb2NrZXQucmVjcmVhdGVTb2NrZXQocGF0aCwgb3B0aW9ucyk7XG4gICAgICAvLyBzb2NrZXQuZGlzY29ubmVjdCgpO1xuICAgICAgLy8gdGhpcy53cyhwYXRoLCBvcHRpb25zKTtcbiAgICB9KTtcbiAgfVxuXG4gIHdzKHBhdGggPSAnJywgb3B0aW9ucyA9IHt9KSB7XG4gICAgLy8gY29uc29sZS5sb2coJ2FwaS53cycsIHBhdGgpXG4gICAgY29uc3Qga2V5ID0gcGF0aCArIEpTT04uc3RyaW5naWZ5KG9wdGlvbnMpO1xuICAgIGlmICh0aGlzLndzQ29ubmVjdGlvbnNba2V5XSkgcmV0dXJuIHRoaXMud3NDb25uZWN0aW9uc1trZXldO1xuICAgIGlmICghdGhpcy53c0NvbmZpZykge1xuICAgICAgY29uc29sZS5lcnJvcign0JLRiyDQvdC1INC80L7QttC10YLQtSDQuNGB0L/QvtC70YzQt9C+0LLQsNGC0YwgYXBpLndzINCx0LXQtyDRgdC+0LrQtdGCINC60L7QvdGE0LjQs9C+0LInKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBjb25zdCBvcHRzID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy53c0NvbmZpZyAmJiB0aGlzLndzQ29uZmlnLm9wdGlvbnMsIG9wdGlvbnMpO1xuICAgIC8vIGNvbnNvbGUubG9nKCdXUyBXUyBXUycsXG4gICAgLy8gICB7XG4gICAgLy8gICAgIHE6IHRoaXMud3NDb25maWcgJiYgdGhpcy53c0NvbmZpZy5vcHRpb25zLFxuICAgIC8vICAgICB3OiBvcHRpb25zLFxuICAgIC8vICAgICBlOiBvcHRzLFxuICAgIC8vICAgICByOiBPYmplY3QuYXNzaWduKHt9LCB0aGlzLndzQ29uZmlnICYmIHRoaXMud3NDb25maWcub3B0aW9ucywgb3B0aW9ucylcbiAgICAvLyAgIH1cbiAgICAvLyApO1xuICAgIC8vIGNvbnNvbGUubG9nKG9wdHMucXVlcnksIG9wdHMucXVlcnkudG9rZW4sIHRoaXMuYXV0aFRva2VuKTtcbiAgICBpZiAoISh0aGlzLndzQ29uZmlnICYmIHRoaXMud3NDb25maWcudG9rZW5JbkNvb2tpZSkpIHtcbiAgICAgIGlmIChvcHRzLnF1ZXJ5ICYmICFvcHRzLnF1ZXJ5LnRva2VuICYmIHRoaXMuYXV0aFRva2VuKSBvcHRzLnF1ZXJ5LnRva2VuID0gdGhpcy5hdXRoVG9rZW47XG4gICAgfVxuICAgIGNvbnN0IHBhcmFtczIgPSB7fTtcbiAgICBpZiAoIXRoaXMud3NDb25maWcudG9rZW5JbkNvb2tpZSkge1xuICAgICAgaWYgKCFwYXJhbXMyLnFzKSB7XG4gICAgICAgIHBhcmFtczIucXMgPSB7XG4gICAgICAgICAgLi4uKG9wdHMucXVlcnkgfHwge30pLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgaWYgKHBhcmFtczIucXMgJiYgIXBhcmFtczIucXMudG9rZW4gJiYgdGhpcy5hdXRoVG9rZW4pIHBhcmFtczIucXMudG9rZW4gPSB0aGlzLmF1dGhUb2tlbjtcbiAgICB9XG5cbiAgICAvLyBjb25zb2xlLmxvZygnV1Mgb3B0cy5xdWVyeSwgb3B0cy5xdWVyeS50b2tlbiwgdGhpcy5hdXRoVG9rZW4nLCBvcHRzLnF1ZXJ5LCBvcHRzLnF1ZXJ5LnRva2VuLCB0aGlzLmF1dGhUb2tlbik7XG4gICAgY29uc3QgdXJsID0gdGhpcy5jcmVhdGVVcmwocGF0aCwgeyAuLi50aGlzLndzQ29uZmlnLCAuLi5wYXJhbXMyIH0pO1xuICAgIC8vIGNvbnNvbGUubG9nKCd3cyB1cmwnLCB7d3NDb25maWc6IHRoaXMud3NDb25maWcsIHBhdGgsIG9wdGlvbnMsIHVybCwgb3B0cyx9ICk7XG4gICAgaWYgKHRoaXMubG9nICYmIHRoaXMubG9nLnRyYWNlKSB7XG4gICAgICB0aGlzLmxvZy50cmFjZSgnW2FwaV0gV1MnLCB1cmwsIG9wdGlvbnMpO1xuICAgICAgLy8gdGhpcy5sb2cudHJhY2UoJ1thcGldJywgcmVxLm1ldGhvZCwgcmVxLnVybCwgcmVxLl9ib2R5LCByZXEpO1xuICAgIH1cbiAgICBjb25zdCBzb2NrZXQgPSB0aGlzLmlvKFxuICAgICAgdXJsLFxuICAgICAgb3B0cyxcbiAgICApO1xuXG4gICAgdGhpcy53c0Nvbm5lY3Rpb25zW2tleV0gPSBbcGF0aCwgb3B0aW9ucywgc29ja2V0XTtcbiAgICBzb2NrZXQub24oJ2Rpc2Nvbm5lY3QnLCAoKSA9PiB7XG4gICAgICBkZWxldGUgdGhpcy53c0Nvbm5lY3Rpb25zW2tleV07XG4gICAgfSk7XG5cbiAgICByZXR1cm4gc29ja2V0O1xuICB9XG4gIHdzMihwYXRoID0gJycsIHBhcmFtcyA9IHt9KSB7XG4gICAgaWYgKCF0aGlzLndzQ29uZmlnKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCfQktGLINC90LUg0LzQvtC20LXRgtC1INC40YHQv9C+0LvRjNC30L7QstCw0YLRjCBhcGkud3Mg0LHQtdC3INGB0L7QutC10YIg0LrQvtC90YTQuNCz0L7QsicpO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGNvbnN0IHBhcmFtczIgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLndzQ29uZmlnLCBwYXJhbXMpO1xuXG4gICAgaWYgKCF0aGlzLndzQ29uZmlnLnRva2VuSW5Db29raWUpIHtcbiAgICAgIGlmICghcGFyYW1zMi5xcykgcGFyYW1zMi5xcyA9IHt9O1xuICAgICAgaWYgKHBhcmFtczIucXMgJiYgIXBhcmFtczIucXMudG9rZW4gJiYgdGhpcy5hdXRoVG9rZW4pIHBhcmFtczIucXMudG9rZW4gPSB0aGlzLmF1dGhUb2tlbjtcbiAgICB9XG5cbiAgICBjb25zdCByZXMgPSB0aGlzLmlvKFxuICAgICAgdGhpcy5jcmVhdGVVcmwocGF0aCwgcGFyYW1zMiksXG4gICAgICB7XG4gICAgICAgIC4uLnRoaXMud3NDb25maWcub3B0aW9ucyxcbiAgICAgICAgLi4ucGFyYW1zLFxuICAgICAgfSxcbiAgICApO1xuICAgIHJldHVybiByZXM7XG4gIH1cblxufVxuIl19
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9hcGlxdWVyeS5qcyJdLCJuYW1lcyI6WyJGRVRDSF9QQVJBTVMiLCJpb01vY2siLCJtb2NrIiwiTWFuYWdlciIsIlNvY2tldCIsImNvbm5lY3Rpb24iLCJldmVudHMiLCJvbiIsInBhcmFtcyIsInB1c2giLCJ1c2UiLCJkaXNjb25uZWN0IiwicmVjcmVhdGVTb2NrZXQiLCJmb3JFYWNoIiwiZXZlbnQiLCJuYW1lIiwiQXBpQ2xpZW50IiwidGhyb3dFcnJvciIsImVyciIsInJlcyIsInJlcSIsInNob3dFcnJvciIsImxvZyIsInN0ciIsIkpTT04iLCJzdHJpbmdpZnkiLCJqc29uIiwiZXJyb3IiLCJtZXNzYWdlIiwiZXJyMiIsIkVycm9yIiwiaW8iLCJyb290IiwiYmFzZSIsImhlYWRlcnMiLCJ1cmwiLCJ3c0NvbmZpZyIsIndzIiwid3NDb25uZWN0aW9ucyIsImF1dGhUb2tlbiIsIndzUmVjb25uZWN0IiwiY3R4IiwidHlwZSIsInN0YXR1cyIsInN0YXR1c1RleHQiLCJ0ZXh0RXJyIiwianNvbkVyciIsInBhdGgiLCJvcHRpb25zIiwic3Vic3RyIiwicG9ydCIsImxlbmd0aCIsInNlYXJjaCIsInJlcGxhY2UiLCJhcnJheSIsIm1hcCIsImEiLCJmaWx0ZXIiLCJpIiwiam9pbiIsInFzIiwiaW5kZXhPZiIsImNvbnN0cnVjdG9yIiwiT2JqZWN0IiwiYXNzaWduIiwiYm9keSIsImRhdGEiLCJBY2NlcHQiLCJfYm9keSIsImluY2x1ZGVzIiwiZm9ybSIsImtleXMiLCJrZXkiLCJhcHBlbmQiLCJBdXRob3JpemF0aW9uIiwicXVlcnlQYXJhbXMiLCJjcmVhdGVVcmwiLCJtZXRob2QiLCJhZnRlckZldGNoIiwicGFyc2VSZXN1bHQiLCJ0aW1lb3V0IiwicmVzdWx0IiwidGV4dCIsInBhcnNlIiwiZ2V0Q3R4IiwiZmV0Y2giLCJ0cmFjZSIsInRoZW4iLCJQcm9taXNlIiwicmFjZSIsInJlc29sdmUiLCJyZWplY3QiLCJzZXRUaW1lb3V0Iiwic29ja2V0IiwiY29uc29sZSIsIm9wdHMiLCJ0b2tlbkluQ29va2llIiwicXVlcnkiLCJ0b2tlbiIsInBhcmFtczIiLCJBcnJheSIsImlzQXJyYXkiLCJ3aW5kb3ciLCJnbG9iYWwiLCJfX0RFVl9fIiwid2FybiIsImNyZWF0ZSIsIm1lcmdlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7Ozs7Ozs7Ozs7OzhFQU5BOzs7QUFPQTtBQUNBLElBQU1BLGVBQWUsQ0FDbkIsUUFEbUIsRUFFbkIsS0FGbUIsRUFHbkIsU0FIbUIsRUFJbkIsU0FKbUIsRUFLbkIsVUFMbUIsRUFNbkIsZ0JBTm1CLEVBT25CLE1BUG1CLEVBUW5CLGFBUm1CLEVBU25CLFVBVG1CLEVBVW5CLFdBVm1CLEVBV25CLE9BWG1CLENBQXJCOztBQWNBLFNBQVNDLE1BQVQsR0FBK0I7QUFDN0I7QUFDQTtBQUNBLE1BQU1DLE9BQU87QUFDWEMsYUFBUyw0QkFBR0EsT0FERDtBQUVYQyxZQUFRLDRCQUFHQSxNQUZBO0FBR1hDLGdCQUFZLElBSEQ7QUFJWEMsWUFBUSxFQUpHO0FBS1hDLE1BTFcsZ0JBS0c7QUFBQSx3Q0FBUkMsTUFBUTtBQUFSQSxjQUFRO0FBQUE7O0FBQ1pOLFdBQUtJLE1BQUwsQ0FBWUcsSUFBWixFQUFrQixJQUFsQixTQUEyQkQsTUFBM0I7QUFDRCxLQVBVO0FBUVhFLE9BUlcsaUJBUUk7QUFBQSx5Q0FBUkYsTUFBUTtBQUFSQSxjQUFRO0FBQUE7O0FBQ2JOLFdBQUtJLE1BQUwsQ0FBWUcsSUFBWixFQUFrQixLQUFsQixTQUE0QkQsTUFBNUI7QUFDRCxLQVZVO0FBV1hHLGNBWFcsd0JBV1c7QUFBQTs7QUFDcEIsK0JBQUtOLFVBQUwsRUFBZ0JNLFVBQWhCO0FBQ0QsS0FiVTtBQWNYQyxrQkFkVyw0QkFjc0I7QUFDL0I7QUFDQSxVQUFJVixLQUFLRyxVQUFMLElBQW1CSCxLQUFLRyxVQUFMLENBQWdCTSxVQUF2QyxFQUFtRDtBQUNqRFQsYUFBS0cs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LFFBQUwsQ0FBYzRELGFBQW5CLEVBQWtDO0FBQ2hDLFlBQUksQ0FBQ0csUUFBUXZDLEVBQWIsRUFBaUJ1QyxRQUFRdkMsRUFBUixHQUFhLEVBQWI7QUFDakIsWUFBSXVDLFFBQVF2QyxFQUFSLElBQWMsQ0FBQ3VDLFFBQVF2QyxFQUFSLENBQVdzQyxLQUExQixJQUFtQyxLQUFLM0QsU0FBNUMsRUFBdUQ0RCxRQUFRdkMsRUFBUixDQUFXc0MsS0FBWCxHQUFtQixLQUFLM0QsU0FBeEI7QUFDeEQ7O0FBRUQsVUFBTXBCLE1BQU0sS0FBS1ksRUFBTCxDQUNWLEtBQUs2QyxTQUFMLENBQWU3QixJQUFmLEVBQXFCb0QsT0FBckIsQ0FEVSxlQUdMLEtBQUsvRCxRQUFMLENBQWNZLE9BSFQsRUFJTHhDLE1BSkssRUFBWjtBQU9BLGFBQU9XLEdBQVA7QUFDRDs7OzhCQTlUZ0JDLEcsRUFBSztBQUNwQjtBQUNBO0FBQ0EsMEJBQ0tBLEdBREw7QUFFRXNGLGNBRkYsa0JBRVNsRyxNQUZULEVBRWlCO0FBQ2IsY0FBTXlGLFFBQVEsS0FBS3JDLEVBQUwsQ0FBUW5DLFNBQVIsQ0FBa0JqQixNQUFsQixDQUFkO0FBQ0EsaUJBQU8sQ0FBQyxLQUFLdUMsSUFBTCxJQUFhLEdBQWQsS0FBc0JrRCxjQUFZQSxLQUFaLEdBQXNCLEVBQTVDLENBQVA7QUFDRCxTQUxIO0FBTUVVLGFBTkYsaUJBTVFuRyxNQU5SLEVBTWdCO0FBQ1osaUJBQU8sS0FBS2tHLE1BQUwsY0FDRixLQUFLVCxLQURILEVBRUZ6RixNQUZFLEVBQVA7QUFJRDtBQVhIO0FBYUQ7Ozs7OztBQXZDa0JRLFMsQ0FDWnFFLEssR0FBUWtCLE9BQU9sQixLO0FBREhyRSxTLENBRVo0QyxFO2tCQUZZNUMsUyIsImZpbGUiOiJhcGlxdWVyeS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGltcG9ydCBmZXRjaCBmcm9tICdub2RlLWZldGNoJztcbmltcG9ydCBpc1BsYWluT2JqZWN0IGZyb20gJ2xvZGFzaC5pc3BsYWlub2JqZWN0JztcbmltcG9ydCBwaWNrIGZyb20gJ2xvZGFzaC5waWNrJztcbmltcG9ydCBxcyBmcm9tICdxcyc7XG5pbXBvcnQgRm9ybURhdGEgZnJvbSAnZm9ybS1kYXRhJztcbmltcG9ydCBpbyBmcm9tICcuL3NvY2tldC1pby11bml2ZXJzYWwnO1xuaW1wb3J0IHRyaW0gZnJvbSAnLi90cmltJztcbi8vIGltcG9ydCBmZXRjaCBmcm9tICdpc29tb3JwaGljLWZldGNoJztcbmNvbnN0IEZFVENIX1BBUkFNUyA9IFtcbiAgJ21ldGhvZCcsXG4gICd1cmwnLFxuICAnaGVhZGVycycsXG4gICdjb250ZXh0JyxcbiAgJ3JlZmVycmVyJyxcbiAgJ3JlZmVycmVyUG9saWN5JyxcbiAgJ21vZGUnLFxuICAnY3JlZGVudGlhbHMnLFxuICAncmVkaXJlY3QnLFxuICAnaW50ZWdyaXR5JyxcbiAgJ2NhY2hlJyxcbl07XG5cbmZ1bmN0aW9uIGlvTW9jayguLi5pbml0UGFyYW1zKSB7XG4gIC8vIF9fREVWX18gJiYgY29uc29sZS5sb2coJ2lvTW9jaycsIC4uLmluaXRQYXJhbXMpO1xuICAvLyBjb25zdCBzb2NrZXQgPSBpbyguLi5wYXJhbXMpXG4gIGNvbnN0IG1vY2sgPSB7XG4gICAgTWFuYWdlcjogaW8uTWFuYWdlcixcbiAgICBTb2NrZXQ6IGlvLlNvY2tldCxcbiAgICBjb25uZWN0aW9uOiBudWxsLFxuICAgIGV2ZW50czogW10sXG4gICAgb24oLi4ucGFyYW1zKSB7XG4gICAgICBtb2NrLmV2ZW50cy5wdXNoKFsnb24nLCAuLi5wYXJhbXNdKTtcbiAgICB9LFxuICAgIHVzZSguLi5wYXJhbXMpIHtcbiAgICAgIG1vY2suZXZlbnRzLnB1c2goWyd1c2UnLCAuLi5wYXJhbXNdKTtcbiAgICB9LFxuICAgIGRpc2Nvbm5lY3QoLi4ucGFyYW1zKSB7XG4gICAgICBtb2NrLmNvbm5lY3Rpb24uZGlzY29ubmVjdCguLi5wYXJhbXMpO1xuICAgIH0sXG4gICAgcmVjcmVhdGVTb2NrZXQoLi4ubmV3SW5pdFBhcmFtcykge1xuICAgICAgLy8gX19ERVZfXyAmJiBjb25zb2xlLmxvZygncmVjcmVhdGVTb2NrZXQnLCAuLi5uZXdJbml0UGFyYW1zKTtcbiAgICAgIGlmIChtb2NrLmNvbm5lY3Rpb24gJiYgbW9jay5jb25uZWN0aW9uLmRpc2Nvbm5lY3QpIHtcbiAgICAgICAgbW9jay5jb25uZWN0aW9uLmRpc2Nvbm5lY3QoKTtcbiAgICAgIH1cbiAgICAgIG1vY2suY29ubmVjdGlvbiA9IGlvKC4uLm5ld0luaXRQYXJhbXMpO1xuICAgICAgbW9jay5ldmVudHMuZm9yRWFjaCgoZXZlbnQpID0+IHtcbiAgICAgICAgY29uc3QgW25hbWUsIC4uLnBhcmFtc10gPSBldmVudDtcbiAgICAgICAgbW9jay5jb25uZWN0aW9uW25hbWVdKC4uLnBhcmFtcyk7XG4gICAgICB9KTtcblxuICAgICAgbW9jay5jb25uZWN0aW9uLnJlY3JlYXRlU29ja2V0ID0gKC4uLm5ld0luaXRQYXJhbXMyKSA9PiB7XG4gICAgICAgIC8vIF9fREVWX18gJiYgY29uc29sZS5sb2coJ3JlY3JlYXRlU29ja2V0MicsIC4uLm5ld0luaXRQYXJhbXMyKTtcbiAgICAgICAgcmV0dXJuIG1vY2sucmVjcmVhdGVTb2NrZXQoLi4ubmV3SW5pdFBhcmFtczIpO1xuICAgICAgfTtcbiAgICAgIC8vIF9fREVWX18gJiYgY29uc29sZS5sb2coJ3JlY3JlYXRlQ29ubmVjdGlvbicpO1xuICAgICAgcmV0dXJuIG1vY2suY29ubmVjdGlvbjtcbiAgICB9LFxuICB9O1xuICByZXR1cm4gbW9jay5yZWNyZWF0ZVNvY2tldCguLi5pbml0UGFyYW1zKTtcbn1cblxuLy8gY29uc3QgREVCVUcgPSBfX0RFVl9fO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBBcGlDbGllbnQge1xuICBzdGF0aWMgZmV0Y2ggPSBnbG9iYWwuZmV0Y2g7XG4gIHN0YXRpYyBxcyA9IHFzXG4gIC8vIGlvID0gaW9cblxuICBjb25zdHJ1Y3RvcihwYXJhbXMgPSB7fSkge1xuICAgIC8vIGNvbnNvbGUubG9nKCdBcGlDbGllbnQnLCBwYXJhbXMpO1xuICAgIHRoaXMuaW8gPSBpb01vY2s7XG4gICAgdGhpcy5sb2cgPSBwYXJhbXMubG9nO1xuICAgIHRoaXMucm9vdCA9IHBhcmFtcy5yb290O1xuICAgIHRoaXMuYmFzZSA9IHBhcmFtcy5iYXNlO1xuICAgIHRoaXMuaGVhZGVycyA9IHBhcmFtcy5oZWFkZXJzIHx8IHt9O1xuICAgIHRoaXMudXJsID0gcGFyYW1zLnVybDtcbiAgICB0aGlzLndzQ29uZmlnID0gcGFyYW1zLndzO1xuICAgIHRoaXMud3NDb25uZWN0aW9ucyA9IHt9O1xuICAgIHRoaXMuYXV0aFRva2VuID0gcGFyYW1zLmF1dGhUb2tlbiB8fCBudWxsO1xuICB9XG5cbiAgc2V0QXV0aFRva2VuKGF1dGhUb2tlbikge1xuICAgIHRoaXMuYXV0aFRva2VuID0gYXV0aFRva2VuO1xuICAgIHRoaXMud3NSZWNvbm5lY3QoKTtcbiAgfVxuXG4gIHN0YXRpYyBjcmVhdGVSZXEocmVxKSB7XG4gICAgLy8gcmVxLnBhdGgsXG4gICAgLy8gcmVxLnF1ZXJ5LFxuICAgIHJldHVybiB7XG4gICAgICAuLi5yZXEsXG4gICAgICBjcmVhdGUocGFyYW1zKSB7XG4gICAgICAgIGNvbnN0IHF1ZXJ5ID0gdGhpcy5xcy5zdHJpbmdpZnkocGFyYW1zKTtcbiAgICAgICAgcmV0dXJuICh0aGlzLnBhdGggfHwgJy8nKSArIChxdWVyeSA/IGA/JHtxdWVyeX1gIDogJycpO1xuICAgICAgfSxcbiAgICAgIG1lcmdlKHBhcmFtcykge1xuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGUoe1xuICAgICAgICAgIC4uLnRoaXMucXVlcnksXG4gICAgICAgICAgLi4ucGFyYW1zLFxuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIHRocm93RXJyb3IgPSBhc3luYyAoeyBlcnIsIHJlcywgcmVxIH0pID0+IHtcbiAgICBpZiAodGhpcy5zaG93RXJyb3IgJiYgdGhpcy5sb2cpIHtcbiAgICAgIGNvbnN0IHN0ciA9IGBcXFxuPT09PT09PT09PT09PT1cbiAgZmV0Y2ggZXJyb3I6XG4ke2lzUGxhaW5PYmplY3QoZXJyKSA/IEpTT04uc3RyaW5naWZ5KGVyciwgbnVsbCwgMikgOiBlcnJ9XG4gIHJlcTpcbiR7SlNPTi5zdHJpbmdpZnkocmVxLCBudWxsLCAyKX1cbiAganNvbjpcbiR7SlNPTi5zdHJpbmdpZnkocmVzLmpzb24sIG51bGwsIDIpfVxuPT09PT09PT09PT09PT1cXFxuYDtcbiAgICAgIHRoaXMubG9nLmVycm9yKHN0cik7XG4gICAgfVxuICAgIGNvbnN0IG1lc3NhZ2UgPSBlcnIgJiYgZXJyLm1lc3NhZ2UgfHwgZXJyO1xuICAgIGNvbnN0IGVycjIgPSBuZXcgRXJyb3IoaXNQbGFpbk9iamVjdChtZXNzYWdlKSA/IEpTT04uc3RyaW5naWZ5KG1lc3NhZ2UpIDogbWVzc2FnZSk7XG4gICAgZXJyMi5yZXMgPSByZXM7XG4gICAgZXJyMi5yZXEgPSByZXE7XG4gICAgdGhyb3cgZXJyMjtcbiAgfVxuXG4gIGFzeW5jIGFmdGVyRmV0Y2goY3R4KSB7XG4gICAgY29uc3QgeyByZXMsIHRocm93RXJyb3IgfSA9IGN0eDtcbiAgICBpZiAocmVzLmpzb24gJiYgcmVzLmpzb24uZXJyKSB7XG4gICAgICBhd2FpdCB0aHJvd0Vycm9yKHtcbiAgICAgICAgLi4uY3R4LFxuICAgICAgICBlcnI6IHtcbiAgICAgICAgICB0eXBlOiAnQ1VTVE9NX0VSUk9SJyxcbiAgICAgICAgICAuLi5yZXMuanNvbi5lcnIsXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9XG4gICAgaWYgKHJlcy5zdGF0dXMgPj0gNDAwKSB7XG4gICAgICBjb25zdCB0eXBlID0gJ1JFU19TVEFUVVNfRVJST1InO1xuICAgICAgYXdhaXQgdGhyb3dFcnJvcih7XG4gICAgICAgIC4uLmN0eCxcbiAgICAgICAgZXJyOiB7XG4gICAgICAgICAgdHlwZSxcbiAgICAgICAgICBzdGF0dXM6IHJlcy5zdGF0dXMsXG4gICAgICAgICAgc3RhdHVzVGV4dDogcmVzLnN0YXR1c1RleHQsXG4gICAgICAgICAgbWVzc2FnZTogYCR7dHlwZX06ICR7cmVzLnN0YXR1c30gJHtyZXMuc3RhdHVzVGV4dH1gLFxuICAgICAgICAgIC4uLihyZXMuanNvbiB8fCB7fSksXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9XG4gICAgaWYgKHJlcy50ZXh0RXJyKSB7XG4gICAgICBjb25zdCB0eXBlID0gJ1RFWFRfUEFSU0VfRVJST1InO1xuICAgICAgYXdhaXQgY3R4LnRocm93RXJyb3Ioe1xuICAgICAgICAuLi5jdHgsXG4gICAgICAgIHJlcyxcbiAgICAgICAgZXJyOiB7XG4gICAgICAgICAgdHlwZSxcbiAgICAgICAgICBtZXNzYWdlOiAn0J7RiNC40LHQutCwINC/0LXRgNC10LTQsNGH0Lgg0LTQsNC90L3Ri9GFJyxcbiAgICAgICAgICBlcnI6IHJlcy50ZXh0RXJyLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfVxuICAgIGlmIChyZXMuanNvbkVycikge1xuICAgICAgY29uc3QgdHlwZSA9ICdKU09OX1BBUlNFX0VSUk9SJztcbiAgICAgIGF3YWl0IGN0eC50aHJvd0Vycm9yKHtcbiAgICAgICAgLi4uY3R4LFxuICAgICAgICByZXMsXG4gICAgICAgIGVycjoge1xuICAgICAgICAgIHR5cGUsXG4gICAgICAgICAgbWVzc2FnZTogJ9Ce0YjQuNCx0LrQsCDRgdC10YDQstC10YDQsCcsXG4gICAgICAgICAgLy8gbWVzc2FnZTogdHlwZSxcbiAgICAgICAgICBlcnI6IHJlcy5qc29uRXJyLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiByZXMuanNvbjtcbiAgfVxuXG4gIGNyZWF0ZVVybChwYXRoLCBvcHRpb25zID0ge30pIHtcbiAgICBpZiAocGF0aC5zdWJzdHIoMCwgNSkgPT09ICdodHRwOicgfHwgcGF0aC5zdWJzdHIoMCwgNikgPT09ICdodHRwczonKSB7XG4gICAgICByZXR1cm4gcGF0aDtcbiAgICB9XG4gICAgbGV0IHVybCA9IG9wdGlvbnMudXJsIHx8IHRoaXMudXJsIHx8ICcvJztcbiAgICBjb25zdCBwb3J0ID0gb3B0aW9ucy5wb3J0IHx8IHRoaXMucG9ydCB8fCBudWxsO1xuXG4gICAgaWYgKHVybCAmJiB1cmwubGVuZ3RoID4gMSAmJiBwb3J0KSB7XG4gICAgICBpZiAodXJsLnNlYXJjaCgvOihcXGQrKS8pICE9PSAtMSkge1xuICAgICAgICB1cmwgPSB1cmwucmVwbGFjZSgvOihcXGQrKS8sIGA6JHtwb3J0fWApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdXJsID0gYCR7dXJsfToke3BvcnR9YDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBiYXNlID0gb3B0aW9ucy5iYXNlIHx8IHRoaXMuYmFzZTtcbiAgICBjb25zdCBhcnJheSA9IFt1cmwsIHBhdGhbMF0gPT09ICcvJyA/IG51bGwgOiB0cmltKGJhc2UpLCB0cmltKHBhdGgpXTtcbiAgICB1cmwgPSBhcnJheVxuICAgICAgLm1hcChhID0+IHRyaW0oYSkpXG4gICAgICAuZmlsdGVyKChhLCBpKSA9PiAoaSA9PT0gMCB8fCBhKSlcbiAgICAgIC5qb2luKCcvJyk7XG4gICAgaWYgKG9wdGlvbnMucXMpIHtcbiAgICAgIHVybCArPSAodXJsLmluZGV4T2YoJz8nKSA9PT0gLTEgPyAnPycgOiAnJicpICsgdGhpcy5jb25zdHJ1Y3Rvci5xcy5zdHJpbmdpZnkob3B0aW9ucy5xcyk7XG4gICAgfVxuICAgIHJldHVybiB1cmw7XG4gIH1cblxuICBnZXRDdHgodXJsLCBwYXJhbXMgPSB7fSkge1xuICAgIGNvbnN0IHJlcSA9IE9iamVjdC5hc3NpZ24oXG4gICAgICB7IHVybCxcbiAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgIC4uLnRoaXMuaGVhZGVycyxcbiAgICAgICAgfSB9LFxuICAgICAgcGljayhwYXJhbXMsIEZFVENIX1BBUkFNUyksXG4gICAgKTtcblxuICAgIGNvbnN0IGJvZHkgPSBwYXJhbXMuYm9keSB8fCBwYXJhbXMuZGF0YTtcblxuICAgIGlmICghcmVxLmhlYWRlcnMpIHJlcS5oZWFkZXJzID0ge307XG4gICAgaWYgKCFyZXEuaGVhZGVycy5BY2NlcHQpIHJlcS5oZWFkZXJzLkFjY2VwdCA9ICdhcHBsaWNhdGlvbi9qc29uJztcbiAgICBpZiAoIXJlcS5oZWFkZXJzWydDb250ZW50LVR5cGUnXSkgcmVxLmhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddID0gJ2FwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9dXRmLTgnO1xuICAgIGlmIChyZXEuaGVhZGVyc1snQ29udGVudC1UeXBlJ10gPT09ICchJykge1xuICAgICAgZGVsZXRlIHJlcS5oZWFkZXJzWydDb250ZW50LVR5cGUnXTtcbiAgICB9XG5cbiAgICByZXEuX2JvZHkgPSBib2R5O1xuICAgIHJlcS5ib2R5ID0gYm9keTtcbiAgICBpZiAoaXNQbGFpbk9iamVjdChib2R5KSkge1xuICAgICAgaWYgKHJlcS5oZWFkZXJzWydDb250ZW50LVR5cGUnXSAmJiByZXEuaGVhZGVyc1snQ29udGVudC1UeXBlJ10uaW5jbHVkZXMoJ2FwcGxpY2F0aW9uL2pzb24nKSkge1xuICAgICAgICByZXEuYm9keSA9IEpTT04uc3RyaW5naWZ5KGJvZHkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgZm9ybSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgICAgICBPYmplY3Qua2V5cyhib2R5KS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgICBmb3JtLmFwcGVuZChrZXksIGJvZHlba2V5XSk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXEuYm9keSA9IGZvcm07XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IGF1dGhUb2tlbiA9IChwYXJhbXMuYXV0aFRva2VuIHx8IHRoaXMuYXV0aFRva2VuKTtcbiAgICBpZiAoIXJlcS5oZWFkZXJzLkF1dGhvcml6YXRpb24gJiYgYXV0aFRva2VuKSB7XG4gICAgICByZXEuaGVhZGVycy5BdXRob3JpemF0aW9uID0gYEJlYXJlciAke2F1dGhUb2tlbn1gO1xuICAgIH1cblxuICAgIHJlcS5xcyA9IHBhcmFtcy5xdWVyeVBhcmFtcyB8fCBwYXJhbXMucXM7XG4gICAgaWYgKHJlcS5xcykge1xuICAgICAgcmVxLnVybCArPSAocmVxLnVybC5pbmRleE9mKCc/JykgPT09IC0xID8gJz8nIDogJyYnKSArIHRoaXMuY29uc3RydWN0b3IucXMuc3RyaW5naWZ5KHJlcS5xcyk7XG4gICAgfVxuICAgIHJlcS51cmwgPSB0aGlzLmNyZWF0ZVVybChyZXEudXJsKTtcblxuICAgIGlmICghcmVxLm1ldGhvZCkge1xuICAgICAgcmVxLm1ldGhvZCA9ICdHRVQnO1xuICAgIH1cbiAgICBjb25zdCB0aHJvd0Vycm9yID0gcGFyYW1zLnRocm93RXJyb3IgfHwgdGhpcy50aHJvd0Vycm9yO1xuICAgIGNvbnN0IGFmdGVyRmV0Y2ggPSBwYXJhbXMuYWZ0ZXJGZXRjaCB8fCB0aGlzLmFmdGVyRmV0Y2g7XG4gICAgY29uc3QgcGFyc2VSZXN1bHQgPSBwYXJhbXMucGFyc2VSZXN1bHQgfHwgdGhpcy5wYXJzZVJlc3VsdDtcbiAgICBjb25zdCB0aW1lb3V0ID0gcGFyYW1zLnRpbWVvdXQ7XG5cbiAgICByZXR1cm4ge1xuICAgICAgcmVxLFxuICAgICAgdGltZW91dCxcbiAgICAgIGF1dGhUb2tlbixcbiAgICAgIHRocm93RXJyb3IsXG4gICAgICBhZnRlckZldGNoLFxuICAgICAgcGFyc2VSZXN1bHQsXG4gICAgfTtcbiAgfVxuXG4gIGFzeW5jIHBhcnNlUmVzdWx0KGN0eCwgcmVzdWx0KSB7XG4gICAgY29uc3QgcmVzID0ge1xuICAgICAgcmVzdWx0LFxuICAgICAgc3RhdHVzOiByZXN1bHQuc3RhdHVzLFxuICAgICAgc3RhdHVzVGV4dDogcmVzdWx0LnN0YXR1c1RleHQsXG4gICAgfTtcbiAgICB0cnkge1xuICAgICAgcmVzLnRleHQgPSBhd2FpdCByZXN1bHQudGV4dCgpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgcmVzLnRleHRFcnIgPSBlcnI7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICByZXMuanNvbiA9IEpTT04ucGFyc2UocmVzLnRleHQpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgcmVzLmpzb25FcnIgPSBlcnI7XG4gICAgfVxuICAgIHJldHVybiByZXM7XG4gIH1cblxuICBmZXRjaCguLi5hcmdzKSB7XG4gICAgY29uc3QgY3R4ID0gdGhpcy5nZXRDdHgoLi4uYXJncyk7XG4gICAgY29uc3QgeyBmZXRjaCB9ID0gdGhpcy5jb25zdHJ1Y3RvcjtcbiAgICBjb25zdCB7IHJlcSwgcGFyc2VSZXN1bHQsIGFmdGVyRmV0Y2ggfSA9IGN0eDtcbiAgICBpZiAodGhpcy5sb2cgJiYgdGhpcy5sb2cudHJhY2UpIHtcbiAgICAgIHRoaXMubG9nLnRyYWNlKCdbYXBpXScsIHJlcS5tZXRob2QsIHJlcS51cmwsIHJlcS5fYm9keSk7XG4gICAgICAvLyB0aGlzLmxvZy50cmFjZSgnW2FwaV0nLCByZXEubWV0aG9kLCByZXEudXJsLCByZXEuX2JvZHksIHJlcSk7XG4gICAgfVxuICAgIGNvbnN0IHsgdXJsLCAuLi5wYXJhbXMgfSA9IHJlcTtcbiAgICAvLyBjb25zb2xlLmxvZygnQEBAZmV0Y2gnLCB1cmwsIHBhcmFtcyk7XG4gICAgY29uc3QgcmVzID0gZmV0Y2godXJsLCBwYXJhbXMpXG4gICAgICAudGhlbihhc3luYyAocmVzdWx0KSA9PiB7XG4gICAgICAgIGN0eC5yZXMgPSBhd2FpdCBwYXJzZVJlc3VsdChjdHgsIHJlc3VsdCk7XG4gICAgICAgIHJldHVybiBjdHg7XG4gICAgICB9KVxuICAgICAgLnRoZW4oYWZ0ZXJGZXRjaCk7XG4gICAgaWYgKCFjdHgudGltZW91dCkgcmV0dXJuIHJlcztcblxuICAgIHJldHVybiBQcm9taXNlLnJhY2UoW1xuICAgICAgcmVzLFxuICAgICAgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHJlamVjdChuZXcgRXJyb3IoJ2ZldGNoIHRpbWVvdXQnKSksIGN0eC50aW1lb3V0KTtcbiAgICAgIH0pLFxuICAgIF0pO1xuICB9XG5cbiAgd3NSZWNvbm5lY3QoKSB7XG4gICAgaWYgKHRoaXMubG9nICYmIHRoaXMubG9nLnRyYWNlKSB7XG4gICAgICB0aGlzLmxvZy50cmFjZSgnW2FwaV0gV1Mud3NSZWNvbm5lY3QgIyMjJywgT2JqZWN0LmtleXModGhpcy53c0Nvbm5lY3Rpb25zKSk7XG4gICAgfVxuXG4gICAgT2JqZWN0LmtleXModGhpcy53c0Nvbm5lY3Rpb25zKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgIGNvbnN0IFtwYXRoLCBvcHRpb25zLCBzb2NrZXRdID0gdGhpcy53c0Nvbm5lY3Rpb25zW2tleV07XG4gICAgICAvLyBfX0RFVl9fICYmIHRoaXMubG9nLnRyYWNlKCdbYXBpXSBwcmVwYXJlIHJlY29ubmVjdCBAQCcsIHNvY2tldCk7XG4gICAgICAvLyAvLyBfX0RFVl9fICYmIGNvbnNvbGUubG9nKCdwcmVwYXJlIHJlY29ubmVjdCBAQCcsIHNvY2tldCk7XG4gICAgICAvLyBpZiAoIXNvY2tldC5yZWNyZWF0ZVNvY2tldCkge1xuICAgICAgLy8gICAvLyBfX0RFVl9fICYmIGNvbnNvbGUubG9nKCchc29ja2V0LnJlY3JlYXRlU29ja2V0Jywgc29ja2V0KTtcbiAgICAgIC8vIH1cbiAgICAgIHNvY2tldC5yZWNyZWF0ZVNvY2tldChwYXRoLCBvcHRpb25zKTtcbiAgICAgIC8vIHNvY2tldC5kaXNjb25uZWN0KCk7XG4gICAgICAvLyB0aGlzLndzKHBhdGgsIG9wdGlvbnMpO1xuICAgIH0pO1xuICB9XG5cbiAgd3MocGF0aCA9ICcnLCBvcHRpb25zID0ge30pIHtcbiAgICAvLyBjb25zb2xlLmxvZygnYXBpLndzJywgcGF0aClcbiAgICBjb25zdCBrZXkgPSBwYXRoICsgSlNPTi5zdHJpbmdpZnkob3B0aW9ucyk7XG4gICAgaWYgKHRoaXMud3NDb25uZWN0aW9uc1trZXldKSByZXR1cm4gdGhpcy53c0Nvbm5lY3Rpb25zW2tleV07XG4gICAgaWYgKCF0aGlzLndzQ29uZmlnKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCfQktGLINC90LUg0LzQvtC20LXRgtC1INC40YHQv9C+0LvRjNC30L7QstCw0YLRjCBhcGkud3Mg0LHQtdC3INGB0L7QutC10YIg0LrQvtC90YTQuNCz0L7QsicpO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGNvbnN0IG9wdHMgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLndzQ29uZmlnICYmIHRoaXMud3NDb25maWcub3B0aW9ucywgb3B0aW9ucyk7XG4gICAgLy8gY29uc29sZS5sb2coJ1dTIFdTIFdTJyxcbiAgICAvLyAgIHtcbiAgICAvLyAgICAgcTogdGhpcy53c0NvbmZpZyAmJiB0aGlzLndzQ29uZmlnLm9wdGlvbnMsXG4gICAgLy8gICAgIHc6IG9wdGlvbnMsXG4gICAgLy8gICAgIGU6IG9wdHMsXG4gICAgLy8gICAgIHI6IE9iamVjdC5hc3NpZ24oe30sIHRoaXMud3NDb25maWcgJiYgdGhpcy53c0NvbmZpZy5vcHRpb25zLCBvcHRpb25zKVxuICAgIC8vICAgfVxuICAgIC8vICk7XG4gICAgLy8gY29uc29sZS5sb2cob3B0cy5xdWVyeSwgb3B0cy5xdWVyeS50b2tlbiwgdGhpcy5hdXRoVG9rZW4pO1xuICAgIGlmICghKHRoaXMud3NDb25maWcgJiYgdGhpcy53c0NvbmZpZy50b2tlbkluQ29va2llKSkge1xuICAgICAgaWYgKG9wdHMucXVlcnkgJiYgIW9wdHMucXVlcnkudG9rZW4gJiYgdGhpcy5hdXRoVG9rZW4pIG9wdHMucXVlcnkudG9rZW4gPSB0aGlzLmF1dGhUb2tlbjtcbiAgICB9XG4gICAgY29uc3QgcGFyYW1zMiA9IHt9O1xuICAgIGlmICghdGhpcy53c0NvbmZpZy50b2tlbkluQ29va2llKSB7XG4gICAgICBpZiAoIXBhcmFtczIucXMpIHtcbiAgICAgICAgcGFyYW1zMi5xcyA9IHtcbiAgICAgICAgICAuLi4ob3B0cy5xdWVyeSB8fCB7fSksXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICBpZiAocGFyYW1zMi5xcyAmJiAhcGFyYW1zMi5xcy50b2tlbiAmJiB0aGlzLmF1dGhUb2tlbikgcGFyYW1zMi5xcy50b2tlbiA9IHRoaXMuYXV0aFRva2VuO1xuICAgIH1cblxuICAgIC8vIGNvbnNvbGUubG9nKCdXUyBvcHRzLnF1ZXJ5LCBvcHRzLnF1ZXJ5LnRva2VuLCB0aGlzLmF1dGhUb2tlbicsIG9wdHMucXVlcnksIG9wdHMucXVlcnkudG9rZW4sIHRoaXMuYXV0aFRva2VuKTtcbiAgICBjb25zdCB1cmwgPSB0aGlzLmNyZWF0ZVVybChwYXRoLCB7IC4uLnRoaXMud3NDb25maWcsIC4uLnBhcmFtczIgfSk7XG4gICAgLy8gY29uc29sZS5sb2coJ3dzIHVybCcsIHt3c0NvbmZpZzogdGhpcy53c0NvbmZpZywgcGF0aCwgb3B0aW9ucywgdXJsLCBvcHRzLH0gKTtcbiAgICBpZiAodGhpcy5sb2cgJiYgdGhpcy5sb2cudHJhY2UpIHtcbiAgICAgIHRoaXMubG9nLnRyYWNlKCdbYXBpXSBXUycsIHVybCwgb3B0aW9ucyk7XG4gICAgICAvLyB0aGlzLmxvZy50cmFjZSgnW2FwaV0nLCByZXEubWV0aG9kLCByZXEudXJsLCByZXEuX2JvZHksIHJlcSk7XG4gICAgfVxuICAgIGxldCBzb2NrZXQgPSB0aGlzLmlvKFxuICAgICAgdXJsLFxuICAgICAgb3B0cyxcbiAgICApO1xuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoc29ja2V0KSkge1xuICAgICAgaWYgKCh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyA/IHdpbmRvdyA6IGdsb2JhbCkuX19ERVZfXykge1xuICAgICAgICBjb25zb2xlLndhcm4oJ211bHRpcGxlIG9wZW4gc29ja2V0cycsIHNvY2tldCk7XG4gICAgICB9XG4gICAgICBzb2NrZXQgPSBzb2NrZXRbMl07XG4gICAgfVxuXG4gICAgdGhpcy53c0Nvbm5lY3Rpb25zW2tleV0gPSBbcGF0aCwgb3B0aW9ucywgc29ja2V0XTtcbiAgICBzb2NrZXQub24oJ2Rpc2Nvbm5lY3QnLCAoKSA9PiB7XG4gICAgICBkZWxldGUgdGhpcy53c0Nvbm5lY3Rpb25zW2tleV07XG4gICAgfSk7XG5cbiAgICByZXR1cm4gc29ja2V0O1xuICB9XG4gIHdzMihwYXRoID0gJycsIHBhcmFtcyA9IHt9KSB7XG4gICAgaWYgKCF0aGlzLndzQ29uZmlnKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCfQktGLINC90LUg0LzQvtC20LXRgtC1INC40YHQv9C+0LvRjNC30L7QstCw0YLRjCBhcGkud3Mg0LHQtdC3INGB0L7QutC10YIg0LrQvtC90YTQuNCz0L7QsicpO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGNvbnN0IHBhcmFtczIgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLndzQ29uZmlnLCBwYXJhbXMpO1xuXG4gICAgaWYgKCF0aGlzLndzQ29uZmlnLnRva2VuSW5Db29raWUpIHtcbiAgICAgIGlmICghcGFyYW1zMi5xcykgcGFyYW1zMi5xcyA9IHt9O1xuICAgICAgaWYgKHBhcmFtczIucXMgJiYgIXBhcmFtczIucXMudG9rZW4gJiYgdGhpcy5hdXRoVG9rZW4pIHBhcmFtczIucXMudG9rZW4gPSB0aGlzLmF1dGhUb2tlbjtcbiAgICB9XG5cbiAgICBjb25zdCByZXMgPSB0aGlzLmlvKFxuICAgICAgdGhpcy5jcmVhdGVVcmwocGF0aCwgcGFyYW1zMiksXG4gICAgICB7XG4gICAgICAgIC4uLnRoaXMud3NDb25maWcub3B0aW9ucyxcbiAgICAgICAgLi4ucGFyYW1zLFxuICAgICAgfSxcbiAgICApO1xuICAgIHJldHVybiByZXM7XG4gIH1cblxufVxuIl19

2

package.json
{
"name": "apiquery",
"version": "0.1.22",
"version": "0.1.23",
"description": "http + websockets api client for Web, Node.js and React Native",

@@ -5,0 +5,0 @@ "repository": {

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc