emailjs-imap-client
Advanced tools
Comparing version 3.0.1 to 3.0.2
@@ -6,5 +6,2 @@ 'use strict'; | ||
}); | ||
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; | ||
exports.buildFETCHCommand = buildFETCHCommand; | ||
@@ -32,3 +29,3 @@ exports.buildXOAuth2Token = buildXOAuth2Token; | ||
function buildFETCHCommand(sequence, items, options) { | ||
var command = { | ||
let command = { | ||
command: options.byUid ? 'UID FETCH' : 'FETCH', | ||
@@ -45,5 +42,5 @@ attributes: [{ | ||
var query = []; | ||
let query = []; | ||
items.forEach(function (item) { | ||
items.forEach(item => { | ||
item = item.toUpperCase().trim(); | ||
@@ -60,3 +57,3 @@ | ||
// parse the value as a fake command, use only the attributes block | ||
var cmd = (0, _emailjsImapHandler.parser)((0, _common.toTypedArray)('* Z ' + item)); | ||
const cmd = (0, _emailjsImapHandler.parser)((0, _common.toTypedArray)('* Z ' + item)); | ||
query = query.concat(cmd.attributes || []); | ||
@@ -99,7 +96,4 @@ } catch (e) { | ||
*/ | ||
function buildXOAuth2Token() { | ||
var user = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; | ||
var token = arguments[1]; | ||
var authData = ['user=' + user, 'auth=Bearer ' + token, '', '']; | ||
function buildXOAuth2Token(user = '', token) { | ||
let authData = [`user=${user}`, `auth=Bearer ${token}`, '', '']; | ||
return (0, _emailjsBase.encode)(authData.join('\x01')); | ||
@@ -124,21 +118,16 @@ } | ||
*/ | ||
function buildSEARCHCommand() { | ||
var query = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; | ||
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; | ||
var command = { | ||
function buildSEARCHCommand(query = {}, options = {}) { | ||
let command = { | ||
command: options.byUid ? 'UID SEARCH' : 'SEARCH' | ||
}; | ||
var isAscii = true; | ||
let isAscii = true; | ||
var buildTerm = function buildTerm(query) { | ||
var list = []; | ||
let buildTerm = query => { | ||
let list = []; | ||
Object.keys(query).forEach(function (key) { | ||
var params = []; | ||
var formatDate = function formatDate(date) { | ||
return date.toUTCString().replace(/^\w+, 0?(\d+) (\w+) (\d+).*/, '$1-$2-$3'); | ||
}; | ||
var escapeParam = function escapeParam(param) { | ||
Object.keys(query).forEach(key => { | ||
let params = []; | ||
let formatDate = date => date.toUTCString().replace(/^\w+, 0?(\d+) (\w+) (\d+).*/, '$1-$2-$3'); | ||
let escapeParam = param => { | ||
if (typeof param === 'number') { | ||
@@ -172,3 +161,3 @@ return { | ||
return param.map(escapeParam); | ||
} else if ((typeof param === 'undefined' ? 'undefined' : _typeof(param)) === 'object') { | ||
} else if (typeof param === 'object') { | ||
return buildTerm(param); | ||
@@ -183,3 +172,3 @@ } | ||
[].concat(query[key] || []).forEach(function (param) { | ||
[].concat(query[key] || []).forEach(param => { | ||
switch (key.toLowerCase()) { | ||
@@ -236,8 +225,4 @@ case 'uid': | ||
*/ | ||
function buildSTORECommand(sequence) { | ||
var action = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; | ||
var flags = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : []; | ||
var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {}; | ||
var command = { | ||
function buildSTORECommand(sequence, action = '', flags = [], options = {}) { | ||
let command = { | ||
command: options.byUid ? 'UID STORE' : 'STORE', | ||
@@ -255,3 +240,3 @@ attributes: [{ | ||
command.attributes.push(flags.map(function (flag) { | ||
command.attributes.push(flags.map(flag => { | ||
return { | ||
@@ -265,2 +250,2 @@ type: 'atom', | ||
} | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb21tYW5kLWJ1aWxkZXIuanMiXSwibmFtZXMiOlsiYnVpbGRGRVRDSENvbW1hbmQiLCJidWlsZFhPQXV0aDJUb2tlbiIsImJ1aWxkU0VBUkNIQ29tbWFuZCIsImJ1aWxkU1RPUkVDb21tYW5kIiwic2VxdWVuY2UiLCJpdGVtcyIsIm9wdGlvbnMiLCJjb21tYW5kIiwiYnlVaWQiLCJhdHRyaWJ1dGVzIiwidHlwZSIsInZhbHVlIiwidmFsdWVBc1N0cmluZyIsInVuZGVmaW5lZCIsInF1ZXJ5IiwiZm9yRWFjaCIsIml0ZW0iLCJ0b1VwcGVyQ2FzZSIsInRyaW0iLCJ0ZXN0IiwicHVzaCIsImNtZCIsImNvbmNhdCIsImUiLCJsZW5ndGgiLCJwb3AiLCJjaGFuZ2VkU2luY2UiLCJ1c2VyIiwidG9rZW4iLCJhdXRoRGF0YSIsImpvaW4iLCJpc0FzY2lpIiwiYnVpbGRUZXJtIiwibGlzdCIsIk9iamVjdCIsImtleXMiLCJrZXkiLCJwYXJhbXMiLCJmb3JtYXREYXRlIiwiZGF0ZSIsInRvVVRDU3RyaW5nIiwicmVwbGFjZSIsImVzY2FwZVBhcmFtIiwicGFyYW0iLCJwcm90b3R5cGUiLCJ0b1N0cmluZyIsImNhbGwiLCJBcnJheSIsImlzQXJyYXkiLCJtYXAiLCJ0b0xvd2VyQ2FzZSIsInVuc2hpZnQiLCJhY3Rpb24iLCJmbGFncyIsInNpbGVudCIsImZsYWciXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O1FBZ0JnQkEsaUIsR0FBQUEsaUI7UUFpRUFDLGlCLEdBQUFBLGlCO1FBMEJBQyxrQixHQUFBQSxrQjtRQXdHQUMsaUIsR0FBQUEsaUI7O0FBbk5oQjs7QUFDQTs7QUFDQTs7QUFDQTs7QUFLQTs7Ozs7Ozs7QUFRTyxTQUFTSCxpQkFBVCxDQUE0QkksUUFBNUIsRUFBc0NDLEtBQXRDLEVBQTZDQyxPQUE3QyxFQUFzRDtBQUMzRCxNQUFJQyxVQUFVO0FBQ1pBLGFBQVNELFFBQVFFLEtBQVIsR0FBZ0IsV0FBaEIsR0FBOEIsT0FEM0I7QUFFWkMsZ0JBQVks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QUFpQixTQUFqQixHQUE2QixFQUFyRDtBQUZlLEdBQXhCOztBQUtBL0MsVUFBUUUsVUFBUixDQUFtQlcsSUFBbkIsQ0FBd0JpQyxNQUFNSixHQUFOLENBQVUsVUFBQ00sSUFBRCxFQUFVO0FBQzFDLFdBQU87QUFDTDdDLFlBQU0sTUFERDtBQUVMQyxhQUFPNEM7QUFGRixLQUFQO0FBSUQsR0FMdUIsQ0FBeEI7O0FBT0EsU0FBT2hELE9BQVA7QUFDRCIsImZpbGUiOiJjb21tYW5kLWJ1aWxkZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwYXJzZXIgfSBmcm9tICdlbWFpbGpzLWltYXAtaGFuZGxlcidcbmltcG9ydCB7IGVuY29kZSB9IGZyb20gJ2VtYWlsanMtbWltZS1jb2RlYydcbmltcG9ydCB7IGVuY29kZSBhcyBlbmNvZGVCYXNlNjQgfSBmcm9tICdlbWFpbGpzLWJhc2U2NCdcbmltcG9ydCB7XG4gIGZyb21UeXBlZEFycmF5LFxuICB0b1R5cGVkQXJyYXlcbn0gZnJvbSAnLi9jb21tb24nXG5cbi8qKlxuICogQnVpbGRzIGEgRkVUQ0ggY29tbWFuZFxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBzZXF1ZW5jZSBNZXNzYWdlIHJhbmdlIHNlbGVjdG9yXG4gKiBAcGFyYW0ge0FycmF5fSBpdGVtcyBMaXN0IG9mIGVsZW1lbnRzIHRvIGZldGNoIChlZy4gYFsndWlkJywgJ2VudmVsb3BlJ11gKS5cbiAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0aW9uc10gT3B0aW9uYWwgb3B0aW9ucyBvYmplY3QuIFVzZSBge2J5VWlkOnRydWV9YCBmb3IgYFVJRCBGRVRDSGBcbiAqIEByZXR1cm5zIHtPYmplY3R9IFN0cnVjdHVyZWQgSU1BUCBjb21tYW5kXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZEZFVENIQ29tbWFuZCAoc2VxdWVuY2UsIGl0ZW1zLCBvcHRpb25zKSB7XG4gIGxldCBjb21tYW5kID0ge1xuICAgIGNvbW1hbmQ6IG9wdGlvbnMuYnlVaWQgPyAnVUlEIEZFVENIJyA6ICdGRVRDSCcsXG4gICAgYXR0cmlidXRlczogW3tcbiAgICAgIHR5cGU6ICdTRVFVRU5DRScsXG4gICAgICB2YWx1ZTogc2VxdWVuY2VcbiAgICB9XVxuICB9XG5cbiAgaWYgKG9wdGlvbnMudmFsdWVBc1N0cmluZyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgY29tbWFuZC52YWx1ZUFzU3RyaW5nID0gb3B0aW9ucy52YWx1ZUFzU3RyaW5nXG4gIH1cblxuICBsZXQgcXVlcnkgPSBbXVxuXG4gIGl0ZW1zLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICBpdGVtID0gaXRlbS50b1VwcGVyQ2FzZSgpLnRyaW0oKVxuXG4gICAgaWYgKC9eXFx3KyQvLnRlc3QoaXRlbSkpIHtcbiAgICAgIC8vIGFscGhhbnVtIHN0cmluZ3MgY2FuIGJlIHVzZWQgZGlyZWN0bHlcbiAgICAgIHF1ZXJ5LnB1c2goe1xuICAgICAgICB0eXBlOiAnQVRPTScsXG4gICAgICAgIHZhbHVlOiBpdGVtXG4gICAgICB9KVxuICAgIH0gZWxzZSBpZiAoaXRlbSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgLy8gcGFyc2UgdGhlIHZhbHVlIGFzIGEgZmFrZSBjb21tYW5kLCB1c2Ugb25seSB0aGUgYXR0cmlidXRlcyBibG9ja1xuICAgICAgICBjb25zdCBjbWQgPSBwYXJzZXIodG9UeXBlZEFycmF5KCcqIFogJyArIGl0ZW0pKVxuICAgICAgICBxdWVyeSA9IHF1ZXJ5LmNvbmNhdChjbWQuYXR0cmlidXRlcyB8fCBbXSlcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgLy8gaWYgcGFyc2UgZmFpbGVkLCB1c2UgdGhlIG9yaWdpbmFsIHN0cmluZyBhcyBvbmUgZW50aXR5XG4gICAgICAgIHF1ZXJ5LnB1c2goe1xuICAgICAgICAgIHR5cGU6ICdBVE9NJyxcbiAgICAgICAgICB2YWx1ZTogaXRlbVxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH1cbiAgfSlcblxuICBpZiAocXVlcnkubGVuZ3RoID09PSAxKSB7XG4gICAgcXVlcnkgPSBxdWVyeS5wb3AoKVxuICB9XG5cbiAgY29tbWFuZC5hdHRyaWJ1dGVzLnB1c2gocXVlcnkpXG5cbiAgaWYgKG9wdGlvbnMuY2hhbmdlZFNpbmNlKSB7XG4gICAgY29tbWFuZC5hdHRyaWJ1dGVzLnB1c2goW3tcbiAgICAgIHR5cGU6ICdBVE9NJyxcbiAgICAgIHZhbHVlOiAnQ0hBTkdFRFNJTkNFJ1xuICAgIH0sIHtcbiAgICAgIHR5cGU6ICdBVE9NJyxcbiAgICAgIHZhbHVlOiBvcHRpb25zLmNoYW5nZWRTaW5jZVxuICAgIH1dKVxuICB9XG5cbiAgcmV0dXJuIGNvbW1hbmRcbn1cblxuLyoqXG4gKiBCdWlsZHMgYSBsb2dpbiB0b2tlbiBmb3IgWE9BVVRIMiBhdXRoZW50aWNhdGlvbiBjb21tYW5kXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHVzZXIgRS1tYWlsIGFkZHJlc3Mgb2YgdGhlIHVzZXJcbiAqIEBwYXJhbSB7U3RyaW5nfSB0b2tlbiBWYWxpZCBhY2Nlc3MgdG9rZW4gZm9yIHRoZSB1c2VyXG4gKiBAcmV0dXJuIHtTdHJpbmd9IEJhc2U2NCBmb3JtYXR0ZWQgbG9naW4gdG9rZW5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkWE9BdXRoMlRva2VuICh1c2VyID0gJycsIHRva2VuKSB7XG4gIGxldCBhdXRoRGF0YSA9IFtcbiAgICBgdXNlcj0ke3VzZXJ9YCxcbiAgICBgYXV0aD1CZWFyZXIgJHt0b2tlbn1gLFxuICAgICcnLFxuICAgICcnXG4gIF1cbiAgcmV0dXJuIGVuY29kZUJhc2U2NChhdXRoRGF0YS5qb2luKCdcXHgwMScpKVxufVxuXG4vKipcbiAqIENvbXBpbGVzIGEgc2VhcmNoIHF1ZXJ5IGludG8gYW4gSU1BUCBjb21tYW5kLiBRdWVyaWVzIGFyZSBjb21wb3NlZCBhcyBvYmplY3RzXG4gKiB3aGVyZSBrZXlzIGFyZSBzZWFyY2ggdGVybXMgYW5kIHZhbHVlcyBhcmUgdGVybSBhcmd1bWVudHMuIE9ubHkgc3RyaW5ncyxcbiAqIG51bWJlcnMgYW5kIERhdGVzIGFyZSB1c2VkLiBJZiB0aGUgdmFsdWUgaXMgYW4gYXJyYXksIHRoZSBtZW1iZXJzIG9mIGl0XG4gKiBhcmUgcHJvY2Vzc2VkIHNlcGFyYXRlbHkgKHVzZSB0aGlzIGZvciB0ZXJtcyB0aGF0IHJlcXVpcmUgbXVsdGlwbGUgcGFyYW1zKS5cbiAqIElmIHRoZSB2YWx1ZSBpcyBhIERhdGUsIGl0IGlzIGNvbnZlcnRlZCB0byB0aGUgZm9ybSBvZiBcIjAxLUphbi0xOTcwXCIuXG4gKiBTdWJxdWVyaWVzIChPUiwgTk9UKSBhcmUgbWFkZSB1cCBvZiBvYmplY3RzXG4gKlxuICogICAge3Vuc2VlbjogdHJ1ZSwgaGVhZGVyOiBbXCJzdWJqZWN0XCIsIFwiaGVsbG8gd29ybGRcIl19O1xuICogICAgU0VBUkNIIFVOU0VFTiBIRUFERVIgXCJzdWJqZWN0XCIgXCJoZWxsbyB3b3JsZFwiXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHF1ZXJ5IFNlYXJjaCBxdWVyeVxuICogQHBhcmFtIHtPYmplY3R9IFtvcHRpb25zXSBPcHRpb24gb2JqZWN0XG4gKiBAcGFyYW0ge0Jvb2xlYW59IFtvcHRpb25zLmJ5VWlkXSBJZiB0dXJlLCB1c2UgVUlEIFNFQVJDSCBpbnN0ZWFkIG9mIFNFQVJDSFxuICogQHJldHVybiB7T2JqZWN0fSBJTUFQIGNvbW1hbmQgb2JqZWN0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFNFQVJDSENvbW1hbmQgKHF1ZXJ5ID0ge30sIG9wdGlvbnMgPSB7fSkge1xuICBsZXQgY29tbWFuZCA9IHtcbiAgICBjb21tYW5kOiBvcHRpb25zLmJ5VWlkID8gJ1VJRCBTRUFSQ0gnIDogJ1NFQVJDSCdcbiAgfVxuXG4gIGxldCBpc0FzY2lpID0gdHJ1ZVxuXG4gIGxldCBidWlsZFRlcm0gPSAocXVlcnkpID0+IHtcbiAgICBsZXQgbGlzdCA9IFtdXG5cbiAgICBPYmplY3Qua2V5cyhxdWVyeSkuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICBsZXQgcGFyYW1zID0gW11cbiAgICAgIGxldCBmb3JtYXREYXRlID0gKGRhdGUpID0+IGRhdGUudG9VVENTdHJpbmcoKS5yZXBsYWNlKC9eXFx3KywgMD8oXFxkKykgKFxcdyspIChcXGQrKS4qLywgJyQxLSQyLSQzJylcbiAgICAgIGxldCBlc2NhcGVQYXJhbSA9IChwYXJhbSkgPT4ge1xuICAgICAgICBpZiAodHlwZW9mIHBhcmFtID09PSAnbnVtYmVyJykge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICAgICAgICAgIHZhbHVlOiBwYXJhbVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgcGFyYW0gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgaWYgKC9bXFx1MDA4MC1cXHVGRkZGXS8udGVzdChwYXJhbSkpIHtcbiAgICAgICAgICAgIGlzQXNjaWkgPSBmYWxzZVxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgdHlwZTogJ2xpdGVyYWwnLFxuICAgICAgICAgICAgICB2YWx1ZTogZnJvbVR5cGVkQXJyYXkoZW5jb2RlKHBhcmFtKSkgLy8gY2FzdCB1bmljb2RlIHN0cmluZyB0byBwc2V1ZG8tYmluYXJ5IGFzIGltYXAtaGFuZGxlciBjb21waWxlcyBzdHJpbmdzIGFzIG9jdGV0c1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgICB2YWx1ZTogcGFyYW1cbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHBhcmFtKSA9PT0gJ1tvYmplY3QgRGF0ZV0nKSB7XG4gICAgICAgICAgLy8gUkZDIDM1MDEgYWxsb3dzIGZvciBkYXRlcyB0byBiZSBwbGFjZWQgaW5cbiAgICAgICAgICAvLyBkb3VibGUtcXVvdGVzIG9yIGxlZnQgd2l0aG91dCBxdW90ZXMuICBTb21lXG4gICAgICAgICAgLy8gc2VydmVycyAoWWFuZGV4KSwgZG8gbm90IGxpa2UgdGhlIGRvdWJsZSBxdW90ZXMsXG4gICAgICAgICAgLy8gc28gd2UgdHJlYXQgdGhlIGRhdGUgYXMgYW4gYXRvbS5cbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdHlwZTogJ2F0b20nLFxuICAgICAgICAgICAgdmFsdWU6IGZvcm1hdERhdGUocGFyYW0pXG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkocGFyYW0pKSB7XG4gICAgICAgICAgcmV0dXJuIHBhcmFtLm1hcChlc2NhcGVQYXJhbSlcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgcGFyYW0gPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgcmV0dXJuIGJ1aWxkVGVybShwYXJhbSlcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBwYXJhbXMucHVzaCh7XG4gICAgICAgIHR5cGU6ICdhdG9tJyxcbiAgICAgICAgdmFsdWU6IGtleS50b1VwcGVyQ2FzZSgpXG4gICAgICB9KTtcblxuICAgICAgW10uY29uY2F0KHF1ZXJ5W2tleV0gfHwgW10pLmZvckVhY2goKHBhcmFtKSA9PiB7XG4gICAgICAgIHN3aXRjaCAoa2V5LnRvTG93ZXJDYXNlKCkpIHtcbiAgICAgICAgICBjYXNlICd1aWQnOlxuICAgICAgICAgICAgcGFyYW0gPSB7XG4gICAgICAgICAgICAgIHR5cGU6ICdzZXF1ZW5jZScsXG4gICAgICAgICAgICAgIHZhbHVlOiBwYXJhbVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAvLyBUaGUgR21haWwgZXh0ZW5zaW9uIHZhbHVlcyBvZiBYLUdNLVRIUklEIGFuZFxuICAgICAgICAgIC8vIFgtR00tTVNHSUQgYXJlIGRlZmluZWQgdG8gYmUgdW5zaWduZWQgNjQtYml0IGludGVnZXJzXG4gICAgICAgICAgLy8gYW5kIHRoZXkgbXVzdCBub3QgYmUgcXVvdGVkIHN0cmluZ3Mgb3IgdGhlIHNlcnZlclxuICAgICAgICAgIC8vIHdpbGwgcmVwb3J0IGEgcGFyc2UgZXJyb3IuXG4gICAgICAgICAgY2FzZSAneC1nbS10aHJpZCc6XG4gICAgICAgICAgY2FzZSAneC1nbS1tc2dpZCc6XG4gICAgICAgICAgICBwYXJhbSA9IHtcbiAgICAgICAgICAgICAgdHlwZTogJ251bWJlcicsXG4gICAgICAgICAgICAgIHZhbHVlOiBwYXJhbVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcGFyYW0gPSBlc2NhcGVQYXJhbShwYXJhbSlcbiAgICAgICAgfVxuICAgICAgICBpZiAocGFyYW0pIHtcbiAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuY29uY2F0KHBhcmFtIHx8IFtdKVxuICAgICAgICB9XG4gICAgICB9KVxuICAgICAgbGlzdCA9IGxpc3QuY29uY2F0KHBhcmFtcyB8fCBbXSlcbiAgICB9KVxuXG4gICAgcmV0dXJuIGxpc3RcbiAgfVxuXG4gIGNvbW1hbmQuYXR0cmlidXRlcyA9IGJ1aWxkVGVybShxdWVyeSlcblxuICAvLyBJZiBhbnkgc3RyaW5nIGlucHV0IGlzIHVzaW5nIDhiaXQgYnl0ZXMsIHByZXBlbmQgdGhlIG9wdGlvbmFsIENIQVJTRVQgYXJndW1lbnRcbiAgaWYgKCFpc0FzY2lpKSB7XG4gICAgY29tbWFuZC5hdHRyaWJ1dGVzLnVuc2hpZnQoe1xuICAgICAgdHlwZTogJ2F0b20nLFxuICAgICAgdmFsdWU6ICdVVEYtOCdcbiAgICB9KVxuICAgIGNvbW1hbmQuYXR0cmlidXRlcy51bnNoaWZ0KHtcbiAgICAgIHR5cGU6ICdhdG9tJyxcbiAgICAgIHZhbHVlOiAnQ0hBUlNFVCdcbiAgICB9KVxuICB9XG5cbiAgcmV0dXJuIGNvbW1hbmRcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGFuIElNQVAgU1RPUkUgY29tbWFuZCBmcm9tIHRoZSBzZWxlY3RlZCBhcmd1bWVudHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkU1RPUkVDb21tYW5kIChzZXF1ZW5jZSwgYWN0aW9uID0gJycsIGZsYWdzID0gW10sIG9wdGlvbnMgPSB7fSkge1xuICBsZXQgY29tbWFuZCA9IHtcbiAgICBjb21tYW5kOiBvcHRpb25zLmJ5VWlkID8gJ1VJRCBTVE9SRScgOiAnU1RPUkUnLFxuICAgIGF0dHJpYnV0ZXM6IFt7XG4gICAgICB0eXBlOiAnc2VxdWVuY2UnLFxuICAgICAgdmFsdWU6IHNlcXVlbmNlXG4gICAgfV1cbiAgfVxuXG4gIGNvbW1hbmQuYXR0cmlidXRlcy5wdXNoKHtcbiAgICB0eXBlOiAnYXRvbScsXG4gICAgdmFsdWU6IGFjdGlvbi50b1VwcGVyQ2FzZSgpICsgKG9wdGlvbnMuc2lsZW50ID8gJy5TSUxFTlQnIDogJycpXG4gIH0pXG5cbiAgY29tbWFuZC5hdHRyaWJ1dGVzLnB1c2goZmxhZ3MubWFwKChmbGFnKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdhdG9tJyxcbiAgICAgIHZhbHVlOiBmbGFnXG4gICAgfVxuICB9KSlcblxuICByZXR1cm4gY29tbWFuZFxufVxuIl19 | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb21tYW5kLWJ1aWxkZXIuanMiXSwibmFtZXMiOlsiYnVpbGRGRVRDSENvbW1hbmQiLCJidWlsZFhPQXV0aDJUb2tlbiIsImJ1aWxkU0VBUkNIQ29tbWFuZCIsImJ1aWxkU1RPUkVDb21tYW5kIiwic2VxdWVuY2UiLCJpdGVtcyIsIm9wdGlvbnMiLCJjb21tYW5kIiwiYnlVaWQiLCJhdHRyaWJ1dGVzIiwidHlwZSIsInZhbHVlIiwidmFsdWVBc1N0cmluZyIsInVuZGVmaW5lZCIsInF1ZXJ5IiwiZm9yRWFjaCIsIml0ZW0iLCJ0b1VwcGVyQ2FzZSIsInRyaW0iLCJ0ZXN0IiwicHVzaCIsImNtZCIsImNvbmNhdCIsImUiLCJsZW5ndGgiLCJwb3AiLCJjaGFuZ2VkU2luY2UiLCJ1c2VyIiwidG9rZW4iLCJhdXRoRGF0YSIsImpvaW4iLCJpc0FzY2lpIiwiYnVpbGRUZXJtIiwibGlzdCIsIk9iamVjdCIsImtleXMiLCJrZXkiLCJwYXJhbXMiLCJmb3JtYXREYXRlIiwiZGF0ZSIsInRvVVRDU3RyaW5nIiwicmVwbGFjZSIsImVzY2FwZVBhcmFtIiwicGFyYW0iLCJwcm90b3R5cGUiLCJ0b1N0cmluZyIsImNhbGwiLCJBcnJheSIsImlzQXJyYXkiLCJtYXAiLCJ0b0xvd2VyQ2FzZSIsInVuc2hpZnQiLCJhY3Rpb24iLCJmbGFncyIsInNpbGVudCIsImZsYWciXSwibWFwcGluZ3MiOiI7Ozs7O1FBZ0JnQkEsaUIsR0FBQUEsaUI7UUFpRUFDLGlCLEdBQUFBLGlCO1FBMEJBQyxrQixHQUFBQSxrQjtRQXdHQUMsaUIsR0FBQUEsaUI7O0FBbk5oQjs7QUFDQTs7QUFDQTs7QUFDQTs7QUFLQTs7Ozs7Ozs7QUFRTyxTQUFTSCxpQkFBVCxDQUE0QkksUUFBNUIsRUFBc0NDLEtBQXRDLEVBQTZDQyxPQUE3QyxFQUFzRDtBQUMzRCxNQUFJQyxVQUFVO0FBQ1pBLGFBQVNELFFBQVFFLEtBQVIsR0FBZ0IsV0FBaEIsR0FBOEIsT0FEM0I7QUFFWkMsZ0JBQVksQ0FB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QUFQO0FBSUQsR0FMdUIsQ0FBeEI7O0FBT0EsU0FBT2hELE9BQVA7QUFDRCIsImZpbGUiOiJjb21tYW5kLWJ1aWxkZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwYXJzZXIgfSBmcm9tICdlbWFpbGpzLWltYXAtaGFuZGxlcidcbmltcG9ydCB7IGVuY29kZSB9IGZyb20gJ2VtYWlsanMtbWltZS1jb2RlYydcbmltcG9ydCB7IGVuY29kZSBhcyBlbmNvZGVCYXNlNjQgfSBmcm9tICdlbWFpbGpzLWJhc2U2NCdcbmltcG9ydCB7XG4gIGZyb21UeXBlZEFycmF5LFxuICB0b1R5cGVkQXJyYXlcbn0gZnJvbSAnLi9jb21tb24nXG5cbi8qKlxuICogQnVpbGRzIGEgRkVUQ0ggY29tbWFuZFxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBzZXF1ZW5jZSBNZXNzYWdlIHJhbmdlIHNlbGVjdG9yXG4gKiBAcGFyYW0ge0FycmF5fSBpdGVtcyBMaXN0IG9mIGVsZW1lbnRzIHRvIGZldGNoIChlZy4gYFsndWlkJywgJ2VudmVsb3BlJ11gKS5cbiAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0aW9uc10gT3B0aW9uYWwgb3B0aW9ucyBvYmplY3QuIFVzZSBge2J5VWlkOnRydWV9YCBmb3IgYFVJRCBGRVRDSGBcbiAqIEByZXR1cm5zIHtPYmplY3R9IFN0cnVjdHVyZWQgSU1BUCBjb21tYW5kXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZEZFVENIQ29tbWFuZCAoc2VxdWVuY2UsIGl0ZW1zLCBvcHRpb25zKSB7XG4gIGxldCBjb21tYW5kID0ge1xuICAgIGNvbW1hbmQ6IG9wdGlvbnMuYnlVaWQgPyAnVUlEIEZFVENIJyA6ICdGRVRDSCcsXG4gICAgYXR0cmlidXRlczogW3tcbiAgICAgIHR5cGU6ICdTRVFVRU5DRScsXG4gICAgICB2YWx1ZTogc2VxdWVuY2VcbiAgICB9XVxuICB9XG5cbiAgaWYgKG9wdGlvbnMudmFsdWVBc1N0cmluZyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgY29tbWFuZC52YWx1ZUFzU3RyaW5nID0gb3B0aW9ucy52YWx1ZUFzU3RyaW5nXG4gIH1cblxuICBsZXQgcXVlcnkgPSBbXVxuXG4gIGl0ZW1zLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICBpdGVtID0gaXRlbS50b1VwcGVyQ2FzZSgpLnRyaW0oKVxuXG4gICAgaWYgKC9eXFx3KyQvLnRlc3QoaXRlbSkpIHtcbiAgICAgIC8vIGFscGhhbnVtIHN0cmluZ3MgY2FuIGJlIHVzZWQgZGlyZWN0bHlcbiAgICAgIHF1ZXJ5LnB1c2goe1xuICAgICAgICB0eXBlOiAnQVRPTScsXG4gICAgICAgIHZhbHVlOiBpdGVtXG4gICAgICB9KVxuICAgIH0gZWxzZSBpZiAoaXRlbSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgLy8gcGFyc2UgdGhlIHZhbHVlIGFzIGEgZmFrZSBjb21tYW5kLCB1c2Ugb25seSB0aGUgYXR0cmlidXRlcyBibG9ja1xuICAgICAgICBjb25zdCBjbWQgPSBwYXJzZXIodG9UeXBlZEFycmF5KCcqIFogJyArIGl0ZW0pKVxuICAgICAgICBxdWVyeSA9IHF1ZXJ5LmNvbmNhdChjbWQuYXR0cmlidXRlcyB8fCBbXSlcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgLy8gaWYgcGFyc2UgZmFpbGVkLCB1c2UgdGhlIG9yaWdpbmFsIHN0cmluZyBhcyBvbmUgZW50aXR5XG4gICAgICAgIHF1ZXJ5LnB1c2goe1xuICAgICAgICAgIHR5cGU6ICdBVE9NJyxcbiAgICAgICAgICB2YWx1ZTogaXRlbVxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH1cbiAgfSlcblxuICBpZiAocXVlcnkubGVuZ3RoID09PSAxKSB7XG4gICAgcXVlcnkgPSBxdWVyeS5wb3AoKVxuICB9XG5cbiAgY29tbWFuZC5hdHRyaWJ1dGVzLnB1c2gocXVlcnkpXG5cbiAgaWYgKG9wdGlvbnMuY2hhbmdlZFNpbmNlKSB7XG4gICAgY29tbWFuZC5hdHRyaWJ1dGVzLnB1c2goW3tcbiAgICAgIHR5cGU6ICdBVE9NJyxcbiAgICAgIHZhbHVlOiAnQ0hBTkdFRFNJTkNFJ1xuICAgIH0sIHtcbiAgICAgIHR5cGU6ICdBVE9NJyxcbiAgICAgIHZhbHVlOiBvcHRpb25zLmNoYW5nZWRTaW5jZVxuICAgIH1dKVxuICB9XG5cbiAgcmV0dXJuIGNvbW1hbmRcbn1cblxuLyoqXG4gKiBCdWlsZHMgYSBsb2dpbiB0b2tlbiBmb3IgWE9BVVRIMiBhdXRoZW50aWNhdGlvbiBjb21tYW5kXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHVzZXIgRS1tYWlsIGFkZHJlc3Mgb2YgdGhlIHVzZXJcbiAqIEBwYXJhbSB7U3RyaW5nfSB0b2tlbiBWYWxpZCBhY2Nlc3MgdG9rZW4gZm9yIHRoZSB1c2VyXG4gKiBAcmV0dXJuIHtTdHJpbmd9IEJhc2U2NCBmb3JtYXR0ZWQgbG9naW4gdG9rZW5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkWE9BdXRoMlRva2VuICh1c2VyID0gJycsIHRva2VuKSB7XG4gIGxldCBhdXRoRGF0YSA9IFtcbiAgICBgdXNlcj0ke3VzZXJ9YCxcbiAgICBgYXV0aD1CZWFyZXIgJHt0b2tlbn1gLFxuICAgICcnLFxuICAgICcnXG4gIF1cbiAgcmV0dXJuIGVuY29kZUJhc2U2NChhdXRoRGF0YS5qb2luKCdcXHgwMScpKVxufVxuXG4vKipcbiAqIENvbXBpbGVzIGEgc2VhcmNoIHF1ZXJ5IGludG8gYW4gSU1BUCBjb21tYW5kLiBRdWVyaWVzIGFyZSBjb21wb3NlZCBhcyBvYmplY3RzXG4gKiB3aGVyZSBrZXlzIGFyZSBzZWFyY2ggdGVybXMgYW5kIHZhbHVlcyBhcmUgdGVybSBhcmd1bWVudHMuIE9ubHkgc3RyaW5ncyxcbiAqIG51bWJlcnMgYW5kIERhdGVzIGFyZSB1c2VkLiBJZiB0aGUgdmFsdWUgaXMgYW4gYXJyYXksIHRoZSBtZW1iZXJzIG9mIGl0XG4gKiBhcmUgcHJvY2Vzc2VkIHNlcGFyYXRlbHkgKHVzZSB0aGlzIGZvciB0ZXJtcyB0aGF0IHJlcXVpcmUgbXVsdGlwbGUgcGFyYW1zKS5cbiAqIElmIHRoZSB2YWx1ZSBpcyBhIERhdGUsIGl0IGlzIGNvbnZlcnRlZCB0byB0aGUgZm9ybSBvZiBcIjAxLUphbi0xOTcwXCIuXG4gKiBTdWJxdWVyaWVzIChPUiwgTk9UKSBhcmUgbWFkZSB1cCBvZiBvYmplY3RzXG4gKlxuICogICAge3Vuc2VlbjogdHJ1ZSwgaGVhZGVyOiBbXCJzdWJqZWN0XCIsIFwiaGVsbG8gd29ybGRcIl19O1xuICogICAgU0VBUkNIIFVOU0VFTiBIRUFERVIgXCJzdWJqZWN0XCIgXCJoZWxsbyB3b3JsZFwiXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHF1ZXJ5IFNlYXJjaCBxdWVyeVxuICogQHBhcmFtIHtPYmplY3R9IFtvcHRpb25zXSBPcHRpb24gb2JqZWN0XG4gKiBAcGFyYW0ge0Jvb2xlYW59IFtvcHRpb25zLmJ5VWlkXSBJZiB0dXJlLCB1c2UgVUlEIFNFQVJDSCBpbnN0ZWFkIG9mIFNFQVJDSFxuICogQHJldHVybiB7T2JqZWN0fSBJTUFQIGNvbW1hbmQgb2JqZWN0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFNFQVJDSENvbW1hbmQgKHF1ZXJ5ID0ge30sIG9wdGlvbnMgPSB7fSkge1xuICBsZXQgY29tbWFuZCA9IHtcbiAgICBjb21tYW5kOiBvcHRpb25zLmJ5VWlkID8gJ1VJRCBTRUFSQ0gnIDogJ1NFQVJDSCdcbiAgfVxuXG4gIGxldCBpc0FzY2lpID0gdHJ1ZVxuXG4gIGxldCBidWlsZFRlcm0gPSAocXVlcnkpID0+IHtcbiAgICBsZXQgbGlzdCA9IFtdXG5cbiAgICBPYmplY3Qua2V5cyhxdWVyeSkuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICBsZXQgcGFyYW1zID0gW11cbiAgICAgIGxldCBmb3JtYXREYXRlID0gKGRhdGUpID0+IGRhdGUudG9VVENTdHJpbmcoKS5yZXBsYWNlKC9eXFx3KywgMD8oXFxkKykgKFxcdyspIChcXGQrKS4qLywgJyQxLSQyLSQzJylcbiAgICAgIGxldCBlc2NhcGVQYXJhbSA9IChwYXJhbSkgPT4ge1xuICAgICAgICBpZiAodHlwZW9mIHBhcmFtID09PSAnbnVtYmVyJykge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICAgICAgICAgIHZhbHVlOiBwYXJhbVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgcGFyYW0gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgaWYgKC9bXFx1MDA4MC1cXHVGRkZGXS8udGVzdChwYXJhbSkpIHtcbiAgICAgICAgICAgIGlzQXNjaWkgPSBmYWxzZVxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgdHlwZTogJ2xpdGVyYWwnLFxuICAgICAgICAgICAgICB2YWx1ZTogZnJvbVR5cGVkQXJyYXkoZW5jb2RlKHBhcmFtKSkgLy8gY2FzdCB1bmljb2RlIHN0cmluZyB0byBwc2V1ZG8tYmluYXJ5IGFzIGltYXAtaGFuZGxlciBjb21waWxlcyBzdHJpbmdzIGFzIG9jdGV0c1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgICB2YWx1ZTogcGFyYW1cbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHBhcmFtKSA9PT0gJ1tvYmplY3QgRGF0ZV0nKSB7XG4gICAgICAgICAgLy8gUkZDIDM1MDEgYWxsb3dzIGZvciBkYXRlcyB0byBiZSBwbGFjZWQgaW5cbiAgICAgICAgICAvLyBkb3VibGUtcXVvdGVzIG9yIGxlZnQgd2l0aG91dCBxdW90ZXMuICBTb21lXG4gICAgICAgICAgLy8gc2VydmVycyAoWWFuZGV4KSwgZG8gbm90IGxpa2UgdGhlIGRvdWJsZSBxdW90ZXMsXG4gICAgICAgICAgLy8gc28gd2UgdHJlYXQgdGhlIGRhdGUgYXMgYW4gYXRvbS5cbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdHlwZTogJ2F0b20nLFxuICAgICAgICAgICAgdmFsdWU6IGZvcm1hdERhdGUocGFyYW0pXG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkocGFyYW0pKSB7XG4gICAgICAgICAgcmV0dXJuIHBhcmFtLm1hcChlc2NhcGVQYXJhbSlcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgcGFyYW0gPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgcmV0dXJuIGJ1aWxkVGVybShwYXJhbSlcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBwYXJhbXMucHVzaCh7XG4gICAgICAgIHR5cGU6ICdhdG9tJyxcbiAgICAgICAgdmFsdWU6IGtleS50b1VwcGVyQ2FzZSgpXG4gICAgICB9KTtcblxuICAgICAgW10uY29uY2F0KHF1ZXJ5W2tleV0gfHwgW10pLmZvckVhY2goKHBhcmFtKSA9PiB7XG4gICAgICAgIHN3aXRjaCAoa2V5LnRvTG93ZXJDYXNlKCkpIHtcbiAgICAgICAgICBjYXNlICd1aWQnOlxuICAgICAgICAgICAgcGFyYW0gPSB7XG4gICAgICAgICAgICAgIHR5cGU6ICdzZXF1ZW5jZScsXG4gICAgICAgICAgICAgIHZhbHVlOiBwYXJhbVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAvLyBUaGUgR21haWwgZXh0ZW5zaW9uIHZhbHVlcyBvZiBYLUdNLVRIUklEIGFuZFxuICAgICAgICAgIC8vIFgtR00tTVNHSUQgYXJlIGRlZmluZWQgdG8gYmUgdW5zaWduZWQgNjQtYml0IGludGVnZXJzXG4gICAgICAgICAgLy8gYW5kIHRoZXkgbXVzdCBub3QgYmUgcXVvdGVkIHN0cmluZ3Mgb3IgdGhlIHNlcnZlclxuICAgICAgICAgIC8vIHdpbGwgcmVwb3J0IGEgcGFyc2UgZXJyb3IuXG4gICAgICAgICAgY2FzZSAneC1nbS10aHJpZCc6XG4gICAgICAgICAgY2FzZSAneC1nbS1tc2dpZCc6XG4gICAgICAgICAgICBwYXJhbSA9IHtcbiAgICAgICAgICAgICAgdHlwZTogJ251bWJlcicsXG4gICAgICAgICAgICAgIHZhbHVlOiBwYXJhbVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcGFyYW0gPSBlc2NhcGVQYXJhbShwYXJhbSlcbiAgICAgICAgfVxuICAgICAgICBpZiAocGFyYW0pIHtcbiAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuY29uY2F0KHBhcmFtIHx8IFtdKVxuICAgICAgICB9XG4gICAgICB9KVxuICAgICAgbGlzdCA9IGxpc3QuY29uY2F0KHBhcmFtcyB8fCBbXSlcbiAgICB9KVxuXG4gICAgcmV0dXJuIGxpc3RcbiAgfVxuXG4gIGNvbW1hbmQuYXR0cmlidXRlcyA9IGJ1aWxkVGVybShxdWVyeSlcblxuICAvLyBJZiBhbnkgc3RyaW5nIGlucHV0IGlzIHVzaW5nIDhiaXQgYnl0ZXMsIHByZXBlbmQgdGhlIG9wdGlvbmFsIENIQVJTRVQgYXJndW1lbnRcbiAgaWYgKCFpc0FzY2lpKSB7XG4gICAgY29tbWFuZC5hdHRyaWJ1dGVzLnVuc2hpZnQoe1xuICAgICAgdHlwZTogJ2F0b20nLFxuICAgICAgdmFsdWU6ICdVVEYtOCdcbiAgICB9KVxuICAgIGNvbW1hbmQuYXR0cmlidXRlcy51bnNoaWZ0KHtcbiAgICAgIHR5cGU6ICdhdG9tJyxcbiAgICAgIHZhbHVlOiAnQ0hBUlNFVCdcbiAgICB9KVxuICB9XG5cbiAgcmV0dXJuIGNvbW1hbmRcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGFuIElNQVAgU1RPUkUgY29tbWFuZCBmcm9tIHRoZSBzZWxlY3RlZCBhcmd1bWVudHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkU1RPUkVDb21tYW5kIChzZXF1ZW5jZSwgYWN0aW9uID0gJycsIGZsYWdzID0gW10sIG9wdGlvbnMgPSB7fSkge1xuICBsZXQgY29tbWFuZCA9IHtcbiAgICBjb21tYW5kOiBvcHRpb25zLmJ5VWlkID8gJ1VJRCBTVE9SRScgOiAnU1RPUkUnLFxuICAgIGF0dHJpYnV0ZXM6IFt7XG4gICAgICB0eXBlOiAnc2VxdWVuY2UnLFxuICAgICAgdmFsdWU6IHNlcXVlbmNlXG4gICAgfV1cbiAgfVxuXG4gIGNvbW1hbmQuYXR0cmlidXRlcy5wdXNoKHtcbiAgICB0eXBlOiAnYXRvbScsXG4gICAgdmFsdWU6IGFjdGlvbi50b1VwcGVyQ2FzZSgpICsgKG9wdGlvbnMuc2lsZW50ID8gJy5TSUxFTlQnIDogJycpXG4gIH0pXG5cbiAgY29tbWFuZC5hdHRyaWJ1dGVzLnB1c2goZmxhZ3MubWFwKChmbGFnKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdhdG9tJyxcbiAgICAgIHZhbHVlOiBmbGFnXG4gICAgfVxuICB9KSlcblxuICByZXR1cm4gY29tbWFuZFxufVxuIl19 |
@@ -37,3 +37,3 @@ 'use strict'; | ||
var attributes = [].concat(response.payload.NAMESPACE.pop().attributes || []); | ||
let attributes = [].concat(response.payload.NAMESPACE.pop().attributes || []); | ||
if (!attributes.length) { | ||
@@ -62,3 +62,3 @@ return false; | ||
element = [].concat(element || []); | ||
return element.map(function (ns) { | ||
return element.map(ns => { | ||
if (!ns || !ns.length) { | ||
@@ -86,8 +86,8 @@ return false; | ||
var mailbox = { | ||
let mailbox = { | ||
readOnly: response.code === 'READ-ONLY' | ||
}; | ||
var existsResponse = response.payload.EXISTS && response.payload.EXISTS.pop(); | ||
var flagsResponse = response.payload.FLAGS && response.payload.FLAGS.pop(); | ||
var okResponse = response.payload.OK; | ||
let existsResponse = response.payload.EXISTS && response.payload.EXISTS.pop(); | ||
let flagsResponse = response.payload.FLAGS && response.payload.FLAGS.pop(); | ||
let okResponse = response.payload.OK; | ||
@@ -99,8 +99,6 @@ if (existsResponse) { | ||
if (flagsResponse && flagsResponse.attributes && flagsResponse.attributes.length) { | ||
mailbox.flags = flagsResponse.attributes[0].map(function (flag) { | ||
return (flag.value || '').toString().trim(); | ||
}); | ||
mailbox.flags = flagsResponse.attributes[0].map(flag => (flag.value || '').toString().trim()); | ||
} | ||
[].concat(okResponse || []).forEach(function (ok) { | ||
[].concat(okResponse || []).forEach(ok => { | ||
switch (ok && ok.code) { | ||
@@ -137,3 +135,3 @@ case 'PERMANENTFLAGS': | ||
function parseENVELOPE(value) { | ||
var envelope = {}; | ||
let envelope = {}; | ||
@@ -191,10 +189,8 @@ if (value[0] && value[0].value) { | ||
*/ | ||
function processAddresses() { | ||
var list = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; | ||
return list.map(function (addr) { | ||
var name = (0, _ramda.pathOr)('', ['0', 'value'], addr).trim(); | ||
var address = (0, _ramda.pathOr)('', ['2', 'value'], addr) + '@' + (0, _ramda.pathOr)('', ['3', 'value'], addr); | ||
var formatted = name ? encodeAddressName(name) + ' <' + address + '>' : address; | ||
var parsed = (0, _emailjsAddressparser2.default)(formatted).shift(); // there should be just a single address | ||
function processAddresses(list = []) { | ||
return list.map(addr => { | ||
const name = (0, _ramda.pathOr)('', ['0', 'value'], addr).trim(); | ||
const address = (0, _ramda.pathOr)('', ['2', 'value'], addr) + '@' + (0, _ramda.pathOr)('', ['3', 'value'], addr); | ||
const formatted = name ? encodeAddressName(name) + ' <' + address + '>' : address; | ||
let parsed = (0, _emailjsAddressparser2.default)(formatted).shift(); // there should be just a single address | ||
parsed.name = (0, _emailjsMimeCodec.mimeWordsDecode)(parsed.name); | ||
@@ -228,9 +224,7 @@ return parsed; | ||
*/ | ||
function parseBODYSTRUCTURE(node) { | ||
var path = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : []; | ||
function parseBODYSTRUCTURE(node, path = []) { | ||
let curNode = {}; | ||
let i = 0; | ||
let part = 0; | ||
var curNode = {}; | ||
var i = 0; | ||
var part = 0; | ||
if (path.length) { | ||
@@ -355,5 +349,3 @@ curNode.part = path.join('.'); | ||
if (node[i]) { | ||
curNode.language = [].concat(node[i]).map(function (val) { | ||
return (0, _ramda.propOr)('', 'value', val).toLowerCase(); | ||
}); | ||
curNode.language = [].concat(node[i]).map(val => (0, _ramda.propOr)('', 'value', val).toLowerCase()); | ||
} | ||
@@ -376,14 +368,6 @@ i++; | ||
function attributesToObject() { | ||
var attrs = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; | ||
var keyTransform = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _ramda.toLower; | ||
var valueTransform = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _emailjsMimeCodec.mimeWordsDecode; | ||
var vals = attrs.map((0, _ramda.prop)('value')); | ||
var keys = vals.filter(function (_, i) { | ||
return i % 2 === 0; | ||
}).map(keyTransform); | ||
var values = vals.filter(function (_, i) { | ||
return i % 2 === 1; | ||
}).map(valueTransform); | ||
function attributesToObject(attrs = [], keyTransform = _ramda.toLower, valueTransform = _emailjsMimeCodec.mimeWordsDecode) { | ||
const vals = attrs.map((0, _ramda.prop)('value')); | ||
const keys = vals.filter((_, i) => i % 2 === 0).map(keyTransform); | ||
const values = vals.filter((_, i) => i % 2 === 1).map(valueTransform); | ||
return (0, _ramda.fromPairs)((0, _ramda.zip)(keys, values)); | ||
@@ -403,11 +387,9 @@ } | ||
var list = []; | ||
var messages = {}; | ||
let list = []; | ||
let messages = {}; | ||
response.payload.FETCH.forEach(function (item) { | ||
var params = [].concat([].concat(item.attributes || [])[0] || []); // ensure the first value is an array | ||
var message = void 0; | ||
var i = void 0, | ||
len = void 0, | ||
key = void 0; | ||
response.payload.FETCH.forEach(item => { | ||
let params = [].concat([].concat(item.attributes || [])[0] || []); // ensure the first value is an array | ||
let message; | ||
let i, len, key; | ||
@@ -465,5 +447,3 @@ if (messages[item.nr]) { | ||
case 'x-gm-labels': | ||
value = [].concat(value).map(function (flag) { | ||
return flag.value || ''; | ||
}); | ||
value = [].concat(value).map(flag => flag.value || ''); | ||
break; | ||
@@ -493,10 +473,4 @@ case 'envelope': | ||
function parseSEARCH(response) { | ||
return (0, _ramda.pipe)((0, _ramda.pathOr)([], ['payload', 'SEARCH']), (0, _ramda.map)(function (x) { | ||
return x.attributes || []; | ||
}), _ramda.flatten, (0, _ramda.map)(function (nr) { | ||
return Number((0, _ramda.propOr)(nr || 0, 'value', nr)) || 0; | ||
}), (0, _ramda.sort)(function (a, b) { | ||
return a > b; | ||
}))(response); | ||
return (0, _ramda.pipe)((0, _ramda.pathOr)([], ['payload', 'SEARCH']), (0, _ramda.map)(x => x.attributes || []), _ramda.flatten, (0, _ramda.map)(nr => Number((0, _ramda.propOr)(nr || 0, 'value', nr)) || 0), (0, _ramda.sort)((a, b) => a > b))(response); | ||
} | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb21tYW5kLXBhcnNlci5qcyJdLCJuYW1lcyI6WyJwYXJzZU5BTUVTUEFDRSIsInBhcnNlTkFNRVNQQUNFRWxlbWVudCIsInBhcnNlU0VMRUNUIiwicGFyc2VFTlZFTE9QRSIsInBhcnNlQk9EWVNUUlVDVFVSRSIsInBhcnNlRkVUQ0giLCJwYXJzZVNFQVJDSCIsInJlc3BvbnNlIiwicGF5bG9hZCIsIk5BTUVTUEFDRSIsImxlbmd0aCIsImF0dHJpYnV0ZXMiLCJjb25jYXQiLCJwb3AiLCJwZXJzb25hbCIsInVzZXJzIiwic2hhcmVkIiwiZWxlbWVudCIsIm1hcCIsIm5zIiwicHJlZml4IiwidmFsdWUiLCJkZWxpbWl0ZXIiLCJtYWlsYm94IiwicmVhZE9ubHkiLCJjb2RlIiwiZXhpc3RzUmVzcG9uc2UiLCJFWElTVFMiLCJmbGFnc1Jlc3BvbnNlIiwiRkxBR1MiLCJva1Jlc3BvbnNlIiwiT0siLCJleGlzdHMiLCJuciIsImZsYWdzIiwiZmxhZyIsInRvU3RyaW5nIiwidHJpbSIsImZvckVhY2giLCJvayIsInBlcm1hbmVudEZsYWdzIiwicGVybWFuZW50ZmxhZ3MiLCJ1aWRWYWxpZGl0eSIsIk51bWJlciIsInVpZHZhbGlkaXR5IiwidWlkTmV4dCIsInVpZG5leHQiLCJoaWdoZXN0TW9kc2VxIiwiaGlnaGVzdG1vZHNlcSIsIm5vTW9kc2VxIiwiZW52ZWxvcGUiLCJkYXRlIiwic3ViamVjdCIsImZyb20iLCJwcm9jZXNzQWRkcmVzc2VzIiwic2VuZGVyIiwidG8iLCJjYyIsImJjYyIsImxpc3QiLCJhZGRyIiwibmFtZSIsImFkZHJlc3MiLCJmb3JtYXR0ZWQiLCJlbmNvZGVBZGRyZXNzTmFtZSIsInBhcnNlZCIsInNoaWZ0IiwidGVzdCIsIkpTT04iLCJzdHJpbmdpZnkiLCJub2RlIiwicGF0aCIsImN1ck5vZGUiLCJpIiwicGFydCIsImpvaW4iLCJBcnJheSIsImlzQXJyYXkiLCJjaGlsZE5vZGVzIiwicHVzaCIsInR5cGUiLCJ0b0xvd2VyQ2FzZSIsInBhcmFtZXRlcnMiLCJhdHRyaWJ1dGVzVG9PYmplY3QiLCJpZCIsImRlc2NyaXB0aW9uIiwiZW5jb2RpbmciLCJzaXplIiwibGluZUNvdW50IiwibWQ1IiwiZGlzcG9zaXRpb24iLCJkaXNwb3NpdGlvblBhcmFtZXRlcnMiLCJsYW5ndWFnZSIsInZhbCIsImxvY2F0aW9uIiwiYXR0cnMiLCJrZXlUcmFuc2Zvcm0iLCJ2YWx1ZVRyYW5zZm9ybSIsInZhbHMiLCJrZXlzIiwiZmlsdGVyIiwiXyIsInZhbHVlcyIsIkZFVENIIiwibWVzc2FnZXMiLCJpdGVtIiwicGFyYW1zIiwibWVzc2FnZSIsImxlbiIsImtleSIsInJlcGxhY2UiLCJwYXJzZUZldGNoVmFsdWUiLCJ4IiwiYSIsImIiXSwibWFwcGluZ3MiOiI7Ozs7O1FBV2dCQSxjLEdBQUFBLGM7UUF1QkFDLHFCLEdBQUFBLHFCO1FBd0JBQyxXLEdBQUFBLFc7UUFtREFDLGEsR0FBQUEsYTtRQXdGQUMsa0IsR0FBQUEsa0I7UUE4SkFDLFUsR0FBQUEsVTtRQXVGQUMsVyxHQUFBQSxXOztBQTFiaEI7Ozs7QUFDQTs7QUFDQTs7QUFDQTs7OztBQUVBOzs7Ozs7QUFNTyxTQUFTTixjQUFULENBQXlCTyxRQUF6QixFQUFtQztBQUN4QyxNQUFJLENBQUNBLFNBQVNDLE9BQVYsSUFBcUIsQ0FBQ0QsU0FBU0MsT0FBVCxDQUFpQkMsU0FBdkMsSUFBb0QsQ0FBQ0YsU0FBU0MsT0FBVCxDQUFpQkMsU0FBakIsQ0FBMkJDLE1BQXBGLEVBQTRGO0FBQzFGLFdBQU8sS0FBUDtBQUNEOztBQUVELE1BQUlDLGFBQWEsR0FBR0MsTUFBSCxDQUFVTCxTQUFTQyxPQUFULENBQWlCQyxTQUFqQixDQUEyQkksR0FBM0IsR0FBaUNGLFVBQWpDLElBQStDLEVBQXpELENBQWpCO0FBQ0EsTUFBSSxDQUFDQSxXQUFXRCxNQUFoQixFQUF3QjtBQUN0QixXQUFPLEtBQVA7QUFDRDs7QUFFRCxTQUFPO0FBQ0xJLGNBQVViLHNCQUFzQlUsV0FBVyxDQUFYLENBQXRCLENBREw7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TCxnQkFBSTtBQUFBLFdBQUt5RyxFQUFFckcsVUFBRixJQUFnQixFQUFyQjtBQUFBLEdBQUosQ0FGSyxrQkFJTCxnQkFBSTtBQUFBLFdBQU1nQyxPQUFPLG1CQUFPVixNQUFNLENBQWIsRUFBZ0IsT0FBaEIsRUFBeUJBLEVBQXpCLENBQVAsS0FBd0MsQ0FBOUM7QUFBQSxHQUFKLENBSkssRUFLTCxpQkFBSyxVQUFDZ0YsQ0FBRCxFQUFJQyxDQUFKO0FBQUEsV0FBVUQsSUFBSUMsQ0FBZDtBQUFBLEdBQUwsQ0FMSyxFQU1MM0csUUFOSyxDQUFQO0FBT0QiLCJmaWxlIjoiY29tbWFuZC1wYXJzZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcGFyc2VBZGRyZXNzIGZyb20gJ2VtYWlsanMtYWRkcmVzc3BhcnNlcidcbmltcG9ydCB7IGNvbXBpbGVyIH0gZnJvbSAnZW1haWxqcy1pbWFwLWhhbmRsZXInXG5pbXBvcnQgeyBzb3J0LCBtYXAsIHBpcGUsIHppcCwgZnJvbVBhaXJzLCBwcm9wLCBwYXRoT3IsIHByb3BPciwgZmxhdHRlbiwgdG9Mb3dlciB9IGZyb20gJ3JhbWRhJ1xuaW1wb3J0IHsgbWltZVdvcmRFbmNvZGUsIG1pbWVXb3Jkc0RlY29kZSB9IGZyb20gJ2VtYWlsanMtbWltZS1jb2RlYydcblxuLyoqXG4gKiBQYXJzZXMgTkFNRVNQQUNFIHJlc3BvbnNlXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHJlc3BvbnNlXG4gKiBAcmV0dXJuIHtPYmplY3R9IE5hbWVzcGFjZXMgb2JqZWN0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZU5BTUVTUEFDRSAocmVzcG9uc2UpIHtcbiAgaWYgKCFyZXNwb25zZS5wYXlsb2FkIHx8ICFyZXNwb25zZS5wYXlsb2FkLk5BTUVTUEFDRSB8fCAhcmVzcG9uc2UucGF5bG9hZC5OQU1FU1BBQ0UubGVuZ3RoKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICBsZXQgYXR0cmlidXRlcyA9IFtdLmNvbmNhdChyZXNwb25zZS5wYXlsb2FkLk5BTUVTUEFDRS5wb3AoKS5hdHRyaWJ1dGVzIHx8IFtdKVxuICBpZiAoIWF0dHJpYnV0ZXMubGVuZ3RoKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICByZXR1cm4ge1xuICAgIHBlcnNvbmFsOiBwYXJzZU5BTUVTUEFDRUVsZW1lbnQoYXR0cmlidXRlc1swXSksXG4gICAgdXNlcnM6IHBhcnNlTkFNRVNQQUNFRWxlbWVudChhdHRyaWJ1dGVzWzFdKSxcbiAgICBzaGFyZWQ6IHBhcnNlTkFNRVNQQUNFRWxlbWVudChhdHRyaWJ1dGVzWzJdKVxuICB9XG59XG5cbi8qKlxuICogUGFyc2VzIGEgTkFNRVNQQUNFIGVsZW1lbnRcbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gZWxlbWVudFxuICogQHJldHVybiB7T2JqZWN0fSBOYW1lc3BhY2VzIGVsZW1lbnQgb2JqZWN0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZU5BTUVTUEFDRUVsZW1lbnQgKGVsZW1lbnQpIHtcbiAgaWYgKCFlbGVtZW50KSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICBlbGVtZW50ID0gW10uY29uY2F0KGVsZW1lbnQgfHwgW10pXG4gIHJldHVybiBlbGVtZW50Lm1hcCgobnMpID0+IHtcbiAgICBpZiAoIW5zIHx8ICFucy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBwcmVmaXg6IG5zWzBdLnZhbHVlLFxuICAgICAgZGVsaW1pdGVyOiBuc1sxXSAmJiBuc1sxXS52YWx1ZSAvLyBUaGUgZGVsaW1pdGVyIGNhbiBsZWdhbGx5IGJlIE5JTCB3aGljaCBtYXBzIHRvIG51bGxcbiAgICB9XG4gIH0pXG59XG5cbi8qKlxuICogUGFyc2VzIFNFTEVDVCByZXNwb25zZVxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSByZXNwb25zZVxuICogQHJldHVybiB7T2JqZWN0fSBNYWlsYm94IGluZm9ybWF0aW9uIG9iamVjdFxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VTRUxFQ1QgKHJlc3BvbnNlKSB7XG4gIGlmICghcmVzcG9uc2UgfHwgIXJlc3BvbnNlLnBheWxvYWQpIHtcbiAgICByZXR1cm5cbiAgfVxuXG4gIGxldCBtYWlsYm94ID0ge1xuICAgIHJlYWRPbmx5OiByZXNwb25zZS5jb2RlID09PSAnUkVBRC1PTkxZJ1xuICB9XG4gIGxldCBleGlzdHNSZXNwb25zZSA9IHJlc3BvbnNlLnBheWxvYWQuRVhJU1RTICYmIHJlc3BvbnNlLnBheWxvYWQuRVhJU1RTLnBvcCgpXG4gIGxldCBmbGFnc1Jlc3BvbnNlID0gcmVzcG9uc2UucGF5bG9hZC5GTEFHUyAmJiByZXNwb25zZS5wYXlsb2FkLkZMQUdTLnBvcCgpXG4gIGxldCBva1Jlc3BvbnNlID0gcmVzcG9uc2UucGF5bG9hZC5PS1xuXG4gIGlmIChleGlzdHNSZXNwb25zZSkge1xuICAgIG1haWxib3guZXhpc3RzID0gZXhpc3RzUmVzcG9uc2UubnIgfHwgMFxuICB9XG5cbiAgaWYgKGZsYWdzUmVzcG9uc2UgJiYgZmxhZ3NSZXNwb25zZS5hdHRyaWJ1dGVzICYmIGZsYWdzUmVzcG9uc2UuYXR0cmlidXRlcy5sZW5ndGgpIHtcbiAgICBtYWlsYm94LmZsYWdzID0gZmxhZ3NSZXNwb25zZS5hdHRyaWJ1dGVzWzBdLm1hcCgoZmxhZykgPT4gKGZsYWcudmFsdWUgfHwgJycpLnRvU3RyaW5nKCkudHJpbSgpKVxuICB9XG5cbiAgW10uY29uY2F0KG9rUmVzcG9uc2UgfHwgW10pLmZvckVhY2goKG9rKSA9PiB7XG4gICAgc3dpdGNoIChvayAmJiBvay5jb2RlKSB7XG4gICAgICBjYXNlICdQRVJNQU5FTlRGTEFHUyc6XG4gICAgICAgIG1haWxib3gucGVybWFuZW50RmxhZ3MgPSBbXS5jb25jYXQob2sucGVybWFuZW50ZmxhZ3MgfHwgW10pXG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlICdVSURWQUxJRElUWSc6XG4gICAgICAgIG1haWxib3gudWlkVmFsaWRpdHkgPSBOdW1iZXIob2sudWlkdmFsaWRpdHkpIHx8IDBcbiAgICAgICAgYnJlYWtcbiAgICAgIGNhc2UgJ1VJRE5FWFQnOlxuICAgICAgICBtYWlsYm94LnVpZE5leHQgPSBOdW1iZXIob2sudWlkbmV4dCkgfHwgMFxuICAgICAgICBicmVha1xuICAgICAgY2FzZSAnSElHSEVTVE1PRFNFUSc6XG4gICAgICAgIG1haWxib3guaGlnaGVzdE1vZHNlcSA9IG9rLmhpZ2hlc3Rtb2RzZXEgfHwgJzAnIC8vIGtlZXAgNjRiaXQgdWludCBhcyBhIHN0cmluZ1xuICAgICAgICBicmVha1xuICAgICAgY2FzZSAnTk9NT0RTRVEnOlxuICAgICAgICBtYWlsYm94Lm5vTW9kc2VxID0gdHJ1ZVxuICAgICAgICBicmVha1xuICAgIH1cbiAgfSlcblxuICByZXR1cm4gbWFpbGJveFxufVxuXG4vKipcbiAqIFBhcnNlcyBtZXNzYWdlIGVudmVsb3BlIGZyb20gRkVUQ0ggcmVzcG9uc2UuIEFsbCBrZXlzIGluIHRoZSByZXN1bHRpbmdcbiAqIG9iamVjdCBhcmUgbG93ZXJjYXNlLiBBZGRyZXNzIGZpZWxkcyBhcmUgYWxsIGFycmF5cyB3aXRoIHtuYW1lOiwgYWRkcmVzczp9XG4gKiBzdHJ1Y3R1cmVkIHZhbHVlcy4gVW5pY29kZSBzdHJpbmdzIGFyZSBhdXRvbWF0aWNhbGx5IGRlY29kZWQuXG4gKlxuICogQHBhcmFtIHtBcnJheX0gdmFsdWUgRW52ZWxvcGUgYXJyYXlcbiAqIEBwYXJhbSB7T2JqZWN0fSBFbnZlbG9wZSBvYmplY3RcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlRU5WRUxPUEUgKHZhbHVlKSB7XG4gIGxldCBlbnZlbG9wZSA9IHt9XG5cbiAgaWYgKHZhbHVlWzBdICYmIHZhbHVlWzBdLnZhbHVlKSB7XG4gICAgZW52ZWxvcGUuZGF0ZSA9IHZhbHVlWzBdLnZhbHVlXG4gIH1cblxuICBpZiAodmFsdWVbMV0gJiYgdmFsdWVbMV0udmFsdWUpIHtcbiAgICBlbnZlbG9wZS5zdWJqZWN0ID0gbWltZVdvcmRzRGVjb2RlKHZhbHVlWzFdICYmIHZhbHVlWzFdLnZhbHVlKVxuICB9XG5cbiAgaWYgKHZhbHVlWzJdICYmIHZhbHVlWzJdLmxlbmd0aCkge1xuICAgIGVudmVsb3BlLmZyb20gPSBwcm9jZXNzQWRkcmVzc2VzKHZhbHVlWzJdKVxuICB9XG5cbiAgaWYgKHZhbHVlWzNdICYmIHZhbHVlWzNdLmxlbmd0aCkge1xuICAgIGVudmVsb3BlLnNlbmRlciA9IHByb2Nlc3NBZGRyZXNzZXModmFsdWVbM10pXG4gIH1cblxuICBpZiAodmFsdWVbNF0gJiYgdmFsdWVbNF0ubGVuZ3RoKSB7XG4gICAgZW52ZWxvcGVbJ3JlcGx5LXRvJ10gPSBwcm9jZXNzQWRkcmVzc2VzKHZhbHVlWzRdKVxuICB9XG5cbiAgaWYgKHZhbHVlWzVdICYmIHZhbHVlWzVdLmxlbmd0aCkge1xuICAgIGVudmVsb3BlLnRvID0gcHJvY2Vzc0FkZHJlc3Nlcyh2YWx1ZVs1XSlcbiAgfVxuXG4gIGlmICh2YWx1ZVs2XSAmJiB2YWx1ZVs2XS5sZW5ndGgpIHtcbiAgICBlbnZlbG9wZS5jYyA9IHByb2Nlc3NBZGRyZXNzZXModmFsdWVbNl0pXG4gIH1cblxuICBpZiAodmFsdWVbN10gJiYgdmFsdWVbN10ubGVuZ3RoKSB7XG4gICAgZW52ZWxvcGUuYmNjID0gcHJvY2Vzc0FkZHJlc3Nlcyh2YWx1ZVs3XSlcbiAgfVxuXG4gIGlmICh2YWx1ZVs4XSAmJiB2YWx1ZVs4XS52YWx1ZSkge1xuICAgIGVudmVsb3BlWydpbi1yZXBseS10byddID0gdmFsdWVbOF0udmFsdWVcbiAgfVxuXG4gIGlmICh2YWx1ZVs5XSAmJiB2YWx1ZVs5XS52YWx1ZSkge1xuICAgIGVudmVsb3BlWydtZXNzYWdlLWlkJ10gPSB2YWx1ZVs5XS52YWx1ZVxuICB9XG5cbiAgcmV0dXJuIGVudmVsb3BlXG59XG5cbi8qXG4gKiBFTlZFTE9QRSBsaXN0cyBhZGRyZXNzZXMgYXMgW25hbWUtcGFydCwgc291cmNlLXJvdXRlLCB1c2VybmFtZSwgaG9zdG5hbWVdXG4gKiB3aGVyZSBzb3VyY2Utcm91dGUgaXMgbm90IHVzZWQgYW55bW9yZSBhbmQgY2FuIGJlIGlnbm9yZWQuXG4gKiBUbyBnZXQgY29tcGFyYWJsZSByZXN1bHRzIHdpdGggb3RoZXIgcGFydHMgb2YgdGhlIGVtYWlsLmpzIHN0YWNrXG4gKiBicm93c2VyYm94IGZlZWRzIHRoZSBwYXJzZWQgYWRkcmVzcyB2YWx1ZXMgZnJvbSBFTlZFTE9QRVxuICogdG8gYWRkcmVzc3BhcnNlciBhbmQgdXNlcyByZXN1bHRpbmcgdmFsdWVzIGluc3RlYWQgb2YgdGhlXG4gKiBwcmUtcGFyc2VkIGFkZHJlc3Nlc1xuICovXG5mdW5jdGlvbiBwcm9jZXNzQWRkcmVzc2VzIChsaXN0ID0gW10pIHtcbiAgcmV0dXJuIGxpc3QubWFwKChhZGRyKSA9PiB7XG4gICAgY29uc3QgbmFtZSA9IChwYXRoT3IoJycsIFsnMCcsICd2YWx1ZSddLCBhZGRyKSkudHJpbSgpXG4gICAgY29uc3QgYWRkcmVzcyA9IChwYXRoT3IoJycsIFsnMicsICd2YWx1ZSddLCBhZGRyKSkgKyAnQCcgKyAocGF0aE9yKCcnLCBbJzMnLCAndmFsdWUnXSwgYWRkcikpXG4gICAgY29uc3QgZm9ybWF0dGVkID0gbmFtZSA/IChlbmNvZGVBZGRyZXNzTmFtZShuYW1lKSArICcgPCcgKyBhZGRyZXNzICsgJz4nKSA6IGFkZHJlc3NcbiAgICBsZXQgcGFyc2VkID0gcGFyc2VBZGRyZXNzKGZvcm1hdHRlZCkuc2hpZnQoKSAvLyB0aGVyZSBzaG91bGQgYmUganVzdCBhIHNpbmdsZSBhZGRyZXNzXG4gICAgcGFyc2VkLm5hbWUgPSBtaW1lV29yZHNEZWNvZGUocGFyc2VkLm5hbWUpXG4gICAgcmV0dXJuIHBhcnNlZFxuICB9KVxufVxuXG4vKipcbiAqIElmIG5lZWRlZCwgZW5jbG9zZXMgd2l0aCBxdW90ZXMgb3IgbWltZSBlbmNvZGVzIHRoZSBuYW1lIHBhcnQgb2YgYW4gZS1tYWlsIGFkZHJlc3NcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gbmFtZSBOYW1lIHBhcnQgb2YgYW4gYWRkcmVzc1xuICogQHJldHVybnMge1N0cmluZ30gTWltZSB3b3JkIGVuY29kZWQgb3IgcXVvdGVkIHN0cmluZ1xuICovXG5mdW5jdGlvbiBlbmNvZGVBZGRyZXNzTmFtZSAobmFtZSkge1xuICBpZiAoIS9eW1xcdyAnXSokLy50ZXN0KG5hbWUpKSB7XG4gICAgaWYgKC9eW1xceDIwLVxceDdlXSokLy50ZXN0KG5hbWUpKSB7XG4gICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkobmFtZSlcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG1pbWVXb3JkRW5jb2RlKG5hbWUsICdRJywgNTIpXG4gICAgfVxuICB9XG4gIHJldHVybiBuYW1lXG59XG5cbi8qKlxuICogUGFyc2VzIG1lc3NhZ2UgYm9keSBzdHJ1Y3R1cmUgZnJvbSBGRVRDSCByZXNwb25zZS5cbiAqXG4gKiBAcGFyYW0ge0FycmF5fSB2YWx1ZSBCT0RZU1RSVUNUVVJFIGFycmF5XG4gKiBAcGFyYW0ge09iamVjdH0gRW52ZWxvcGUgb2JqZWN0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUJPRFlTVFJVQ1RVUkUgKG5vZGUsIHBhdGggPSBbXSkge1xuICBsZXQgY3VyTm9kZSA9IHt9XG4gIGxldCBpID0gMFxuICBsZXQgcGFydCA9IDBcblxuICBpZiAocGF0aC5sZW5ndGgpIHtcbiAgICBjdXJOb2RlLnBhcnQgPSBwYXRoLmpvaW4oJy4nKVxuICB9XG5cbiAgLy8gbXVsdGlwYXJ0XG4gIGlmIChBcnJheS5pc0FycmF5KG5vZGVbMF0pKSB7XG4gICAgY3VyTm9kZS5jaGlsZE5vZGVzID0gW11cbiAgICB3aGlsZSAoQXJyYXkuaXNBcnJheShub2RlW2ldKSkge1xuICAgICAgY3VyTm9kZS5jaGlsZE5vZGVzLnB1c2gocGFyc2VCT0RZU1RSVUNUVVJFKG5vZGVbaV0sIHBhdGguY29uY2F0KCsrcGFydCkpKVxuICAgICAgaSsrXG4gICAgfVxuXG4gICAgLy8gbXVsdGlwYXJ0IHR5cGVcbiAgICBjdXJOb2RlLnR5cGUgPSAnbXVsdGlwYXJ0LycgKyAoKG5vZGVbaSsrXSB8fCB7fSkudmFsdWUgfHwgJycpLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKVxuXG4gICAgLy8gZXh0ZW5zaW9uIGRhdGEgKG5vdCBhdmFpbGFibGUgZm9yIEJPRFkgcmVxdWVzdHMpXG5cbiAgICAvLyBib2R5IHBhcmFtZXRlciBwYXJlbnRoZXNpemVkIGxpc3RcbiAgICBpZiAoaSA8IG5vZGUubGVuZ3RoIC0gMSkge1xuICAgICAgaWYgKG5vZGVbaV0pIHtcbiAgICAgICAgY3VyTm9kZS5wYXJhbWV0ZXJzID0gYXR0cmlidXRlc1RvT2JqZWN0KG5vZGVbaV0pXG4gICAgICB9XG4gICAgICBpKytcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgLy8gY29udGVudCB0eXBlXG4gICAgY3VyTm9kZS50eXBlID0gW1xuICAgICAgKChub2RlW2krK10gfHwge30pLnZhbHVlIHx8ICcnKS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCksICgobm9kZVtpKytdIHx8IHt9KS52YWx1ZSB8fCAnJykudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpXG4gICAgXS5qb2luKCcvJylcblxuICAgIC8vIGJvZHkgcGFyYW1ldGVyIHBhcmVudGhlc2l6ZWQgbGlzdFxuICAgIGlmIChub2RlW2ldKSB7XG4gICAgICBjdXJOb2RlLnBhcmFtZXRlcnMgPSBhdHRyaWJ1dGVzVG9PYmplY3Qobm9kZVtpXSlcbiAgICB9XG4gICAgaSsrXG5cbiAgICAvLyBpZFxuICAgIGlmIChub2RlW2ldKSB7XG4gICAgICBjdXJOb2RlLmlkID0gKChub2RlW2ldIHx8IHt9KS52YWx1ZSB8fCAnJykudG9TdHJpbmcoKVxuICAgIH1cbiAgICBpKytcblxuICAgIC8vIGRlc2NyaXB0aW9uXG4gICAgaWYgKG5vZGVbaV0pIHtcbiAgICAgIGN1ck5vZGUuZGVzY3JpcHRpb24gPSAoKG5vZGVbaV0gfHwge30pLnZhbHVlIHx8ICcnKS50b1N0cmluZygpXG4gICAgfVxuICAgIGkrK1xuXG4gICAgLy8gZW5jb2RpbmdcbiAgICBpZiAobm9kZVtpXSkge1xuICAgICAgY3VyTm9kZS5lbmNvZGluZyA9ICgobm9kZVtpXSB8fCB7fSkudmFsdWUgfHwgJycpLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKVxuICAgIH1cbiAgICBpKytcblxuICAgIC8vIHNpemVcbiAgICBpZiAobm9kZVtpXSkge1xuICAgICAgY3VyTm9kZS5zaXplID0gTnVtYmVyKChub2RlW2ldIHx8IHt9KS52YWx1ZSB8fCAwKSB8fCAwXG4gICAgfVxuICAgIGkrK1xuXG4gICAgaWYgKGN1ck5vZGUudHlwZSA9PT0gJ21lc3NhZ2UvcmZjODIyJykge1xuICAgICAgLy8gbWVzc2FnZS9yZmMgYWRkcyBhZGRpdGlvbmFsIGVudmVsb3BlLCBib2R5c3RydWN0dXJlIGFuZCBsaW5lIGNvdW50IHZhbHVlc1xuXG4gICAgICAvLyBlbnZlbG9wZVxuICAgICAgaWYgKG5vZGVbaV0pIHtcbiAgICAgICAgY3VyTm9kZS5lbnZlbG9wZSA9IHBhcnNlRU5WRUxPUEUoW10uY29uY2F0KG5vZGVbaV0gfHwgW10pKVxuICAgICAgfVxuICAgICAgaSsrXG5cbiAgICAgIGlmIChub2RlW2ldKSB7XG4gICAgICAgIGN1ck5vZGUuY2hpbGROb2RlcyA9IFtcbiAgICAgICAgICAvLyByZmM4MjIgYm9keXBhcnRzIHNoYXJlIHRoZSBzYW1lIHBhdGgsIGRpZmZlcmVuY2UgaXMgYmV0d2VlbiBNSU1FIGFuZCBIRUFERVJcbiAgICAgICAgICAvLyBwYXRoLk1JTUUgcmV0dXJucyBtZXNzYWdlL3JmYzgyMiBoZWFkZXJcbiAgICAgICAgICAvLyBwYXRoLkhFQURFUiByZXR1cm5zIGlubGluZWQgbWVzc2FnZSBoZWFkZXJcbiAgICAgICAgICBwYXJzZUJPRFlTVFJVQ1RVUkUobm9kZVtpXSwgcGF0aClcbiAgICAgICAgXVxuICAgICAgfVxuICAgICAgaSsrXG5cbiAgICAgIC8vIGxpbmUgY291bnRcbiAgICAgIGlmIChub2RlW2ldKSB7XG4gICAgICAgIGN1ck5vZGUubGluZUNvdW50ID0gTnVtYmVyKChub2RlW2ldIHx8IHt9KS52YWx1ZSB8fCAwKSB8fCAwXG4gICAgICB9XG4gICAgICBpKytcbiAgICB9IGVsc2UgaWYgKC9edGV4dFxcLy8udGVzdChjdXJOb2RlLnR5cGUpKSB7XG4gICAgICAvLyB0ZXh0LyogYWRkcyBhZGRpdGlvbmFsIGxpbmUgY291bnQgdmFsdWVzXG5cbiAgICAgIC8vIGxpbmUgY291bnRcbiAgICAgIGlmIChub2RlW2ldKSB7XG4gICAgICAgIGN1ck5vZGUubGluZUNvdW50ID0gTnVtYmVyKChub2RlW2ldIHx8IHt9KS52YWx1ZSB8fCAwKSB8fCAwXG4gICAgICB9XG4gICAgICBpKytcbiAgICB9XG5cbiAgICAvLyBleHRlbnNpb24gZGF0YSAobm90IGF2YWlsYWJsZSBmb3IgQk9EWSByZXF1ZXN0cylcblxuICAgIC8vIG1kNVxuICAgIGlmIChpIDwgbm9kZS5sZW5ndGggLSAxKSB7XG4gICAgICBpZiAobm9kZVtpXSkge1xuICAgICAgICBjdXJOb2RlLm1kNSA9ICgobm9kZVtpXSB8fCB7fSkudmFsdWUgfHwgJycpLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKVxuICAgICAgfVxuICAgICAgaSsrXG4gICAgfVxuICB9XG5cbiAgLy8gdGhlIGZvbGxvd2luZyBhcmUgc2hhcmVkIGV4dGVuc2lvbiB2YWx1ZXMgKGZvciBib3RoIG11bHRpcGFydCBhbmQgbm9uLW11bHRpcGFydCBwYXJ0cylcbiAgLy8gbm90IGF2YWlsYWJsZSBmb3IgQk9EWSByZXF1ZXN0c1xuXG4gIC8vIGJvZHkgZGlzcG9zaXRpb25cbiAgaWYgKGkgPCBub2RlLmxlbmd0aCAtIDEpIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShub2RlW2ldKSAmJiBub2RlW2ldLmxlbmd0aCkge1xuICAgICAgY3VyTm9kZS5kaXNwb3NpdGlvbiA9ICgobm9kZVtpXVswXSB8fCB7fSkudmFsdWUgfHwgJycpLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKVxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkobm9kZVtpXVsxXSkpIHtcbiAgICAgICAgY3VyTm9kZS5kaXNwb3NpdGlvblBhcmFtZXRlcnMgPSBhdHRyaWJ1dGVzVG9PYmplY3Qobm9kZVtpXVsxXSlcbiAgICAgIH1cbiAgICB9XG4gICAgaSsrXG4gIH1cblxuICAvLyBib2R5IGxhbmd1YWdlXG4gIGlmIChpIDwgbm9kZS5sZW5ndGggLSAxKSB7XG4gICAgaWYgKG5vZGVbaV0pIHtcbiAgICAgIGN1ck5vZGUubGFuZ3VhZ2UgPSBbXS5jb25jYXQobm9kZVtpXSkubWFwKCh2YWwpID0+IHByb3BPcignJywgJ3ZhbHVlJywgdmFsKS50b0xvd2VyQ2FzZSgpKVxuICAgIH1cbiAgICBpKytcbiAgfVxuXG4gIC8vIGJvZHkgbG9jYXRpb25cbiAgLy8gTkIhIGRlZmluZWQgYXMgYSBcInN0cmluZyBsaXN0XCIgaW4gUkZDMzUwMSBidXQgcmVwbGFjZWQgaW4gZXJyYXRhIGRvY3VtZW50IHdpdGggXCJzdHJpbmdcIlxuICAvLyBFcnJhdGE6IGh0dHA6Ly93d3cucmZjLWVkaXRvci5vcmcvZXJyYXRhX3NlYXJjaC5waHA/cmZjPTM1MDFcbiAgaWYgKGkgPCBub2RlLmxlbmd0aCAtIDEpIHtcbiAgICBpZiAobm9kZVtpXSkge1xuICAgICAgY3VyTm9kZS5sb2NhdGlvbiA9ICgobm9kZVtpXSB8fCB7fSkudmFsdWUgfHwgJycpLnRvU3RyaW5nKClcbiAgICB9XG4gICAgaSsrXG4gIH1cblxuICByZXR1cm4gY3VyTm9kZVxufVxuXG5mdW5jdGlvbiBhdHRyaWJ1dGVzVG9PYmplY3QgKGF0dHJzID0gW10sIGtleVRyYW5zZm9ybSA9IHRvTG93ZXIsIHZhbHVlVHJhbnNmb3JtID0gbWltZVdvcmRzRGVjb2RlKSB7XG4gIGNvbnN0IHZhbHMgPSBhdHRycy5tYXAocHJvcCgndmFsdWUnKSlcbiAgY29uc3Qga2V5cyA9IHZhbHMuZmlsdGVyKChfLCBpKSA9PiBpICUgMiA9PT0gMCkubWFwKGtleVRyYW5zZm9ybSlcbiAgY29uc3QgdmFsdWVzID0gdmFscy5maWx0ZXIoKF8sIGkpID0+IGkgJSAyID09PSAxKS5tYXAodmFsdWVUcmFuc2Zvcm0pXG4gIHJldHVybiBmcm9tUGFpcnMoemlwKGtleXMsIHZhbHVlcykpXG59XG5cbi8qKlxuICogUGFyc2VzIEZFVENIIHJlc3BvbnNlXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHJlc3BvbnNlXG4gKiBAcmV0dXJuIHtPYmplY3R9IE1lc3NhZ2Ugb2JqZWN0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUZFVENIIChyZXNwb25zZSkge1xuICBpZiAoIXJlc3BvbnNlIHx8ICFyZXNwb25zZS5wYXlsb2FkIHx8ICFyZXNwb25zZS5wYXlsb2FkLkZFVENIIHx8ICFyZXNwb25zZS5wYXlsb2FkLkZFVENILmxlbmd0aCkge1xuICAgIHJldHVybiBbXVxuICB9XG5cbiAgbGV0IGxpc3QgPSBbXVxuICBsZXQgbWVzc2FnZXMgPSB7fVxuXG4gIHJlc3BvbnNlLnBheWxvYWQuRkVUQ0guZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgIGxldCBwYXJhbXMgPSBbXS5jb25jYXQoW10uY29uY2F0KGl0ZW0uYXR0cmlidXRlcyB8fCBbXSlbMF0gfHwgW10pIC8vIGVuc3VyZSB0aGUgZmlyc3QgdmFsdWUgaXMgYW4gYXJyYXlcbiAgICBsZXQgbWVzc2FnZVxuICAgIGxldCBpLCBsZW4sIGtleVxuXG4gICAgaWYgKG1lc3NhZ2VzW2l0ZW0ubnJdKSB7XG4gICAgICAvLyBzYW1lIHNlcXVlbmNlIG51bWJlciBpcyBhbHJlYWR5IHVzZWQsIHNvIG1lcmdlIHZhbHVlcyBpbnN0ZWFkIG9mIGNyZWF0aW5nIGEgbmV3IG1lc3NhZ2Ugb2JqZWN0XG4gICAgICBtZXNzYWdlID0gbWVzc2FnZXNbaXRlbS5ucl1cbiAgICB9IGVsc2Uge1xuICAgICAgbWVzc2FnZXNbaXRlbS5ucl0gPSBtZXNzYWdlID0ge1xuICAgICAgICAnIyc6IGl0ZW0ubnJcbiAgICAgIH1cbiAgICAgIGxpc3QucHVzaChtZXNzYWdlKVxuICAgIH1cblxuICAgIGZvciAoaSA9IDAsIGxlbiA9IHBhcmFtcy5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xuICAgICAgaWYgKGkgJSAyID09PSAwKSB7XG4gICAgICAgIGtleSA9IGNvbXBpbGVyKHtcbiAgICAgICAgICBhdHRyaWJ1dGVzOiBbcGFyYW1zW2ldXVxuICAgICAgICB9KS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoLzxcXGQrPiQvLCAnJylcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIG1lc3NhZ2Vba2V5XSA9IHBhcnNlRmV0Y2hWYWx1ZShrZXksIHBhcmFtc1tpXSlcbiAgICB9XG4gIH0pXG5cbiAgcmV0dXJuIGxpc3Rcbn1cblxuLyoqXG4gKiBQYXJzZXMgYSBzaW5nbGUgdmFsdWUgZnJvbSB0aGUgRkVUQ0ggcmVzcG9uc2Ugb2JqZWN0XG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IGtleSBLZXkgbmFtZSAodXBwZXJjYXNlKVxuICogQHBhcmFtIHtNaXplZH0gdmFsdWUgVmFsdWUgZm9yIHRoZSBrZXlcbiAqIEByZXR1cm4ge01peGVkfSBQcm9jZXNzZWQgdmFsdWVcbiAqL1xuZnVuY3Rpb24gcGFyc2VGZXRjaFZhbHVlIChrZXksIHZhbHVlKSB7XG4gIGlmICghdmFsdWUpIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgaWYgKCFBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgIHN3aXRjaCAoa2V5KSB7XG4gICAgICBjYXNlICd1aWQnOlxuICAgICAgY2FzZSAncmZjODIyLnNpemUnOlxuICAgICAgICByZXR1cm4gTnVtYmVyKHZhbHVlLnZhbHVlKSB8fCAwXG4gICAgICBjYXNlICdtb2RzZXEnOiAvLyBkbyBub3QgY2FzdCA2NCBiaXQgdWludCB0byBhIG51bWJlclxuICAgICAgICByZXR1cm4gdmFsdWUudmFsdWUgfHwgJzAnXG4gICAgfVxuICAgIHJldHVybiB2YWx1ZS52YWx1ZVxuICB9XG5cbiAgc3dpdGNoIChrZXkpIHtcbiAgICBjYXNlICdmbGFncyc6XG4gICAgY2FzZSAneC1nbS1sYWJlbHMnOlxuICAgICAgdmFsdWUgPSBbXS5jb25jYXQodmFsdWUpLm1hcCgoZmxhZykgPT4gKGZsYWcudmFsdWUgfHwgJycpKVxuICAgICAgYnJlYWtcbiAgICBjYXNlICdlbnZlbG9wZSc6XG4gICAgICB2YWx1ZSA9IHBhcnNlRU5WRUxPUEUoW10uY29uY2F0KHZhbHVlIHx8IFtdKSlcbiAgICAgIGJyZWFrXG4gICAgY2FzZSAnYm9keXN0cnVjdHVyZSc6XG4gICAgICB2YWx1ZSA9IHBhcnNlQk9EWVNUUlVDVFVSRShbXS5jb25jYXQodmFsdWUgfHwgW10pKVxuICAgICAgYnJlYWtcbiAgICBjYXNlICdtb2RzZXEnOlxuICAgICAgdmFsdWUgPSAodmFsdWUuc2hpZnQoKSB8fCB7fSkudmFsdWUgfHwgJzAnXG4gICAgICBicmVha1xuICB9XG5cbiAgcmV0dXJuIHZhbHVlXG59XG5cbi8qKlxuICogUGFyc2VzIFNFQVJDSCByZXNwb25zZS4gR2F0aGVycyBhbGwgdW50YWdnZWQgU0VBUkNIIHJlc3BvbnNlcywgZmV0Y2hlZCBzZXEuL3VpZCBudW1iZXJzXG4gKiBhbmQgY29tcGlsZXMgdGhlc2UgaW50byBhIHNvcnRlZCBhcnJheS5cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcmVzcG9uc2VcbiAqIEByZXR1cm4ge09iamVjdH0gTWVzc2FnZSBvYmplY3RcbiAqIEBwYXJhbSB7QXJyYXl9IFNvcnRlZCBTZXEuL1VJRCBudW1iZXIgbGlzdFxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VTRUFSQ0ggKHJlc3BvbnNlKSB7XG4gIHJldHVybiBwaXBlKFxuICAgIHBhdGhPcihbXSwgWydwYXlsb2FkJywgJ1NFQVJDSCddKSxcbiAgICBtYXAoeCA9PiB4LmF0dHJpYnV0ZXMgfHwgW10pLFxuICAgIGZsYXR0ZW4sXG4gICAgbWFwKG5yID0+IE51bWJlcihwcm9wT3IobnIgfHwgMCwgJ3ZhbHVlJywgbnIpKSB8fCAwKSxcbiAgICBzb3J0KChhLCBiKSA9PiBhID4gYilcbiAgKShyZXNwb25zZSlcbn1cbiJdfQ== | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb21tYW5kLXBhcnNlci5qcyJdLCJuYW1lcyI6WyJwYXJzZU5BTUVTUEFDRSIsInBhcnNlTkFNRVNQQUNFRWxlbWVudCIsInBhcnNlU0VMRUNUIiwicGFyc2VFTlZFTE9QRSIsInBhcnNlQk9EWVNUUlVDVFVSRSIsInBhcnNlRkVUQ0giLCJwYXJzZVNFQVJDSCIsInJlc3BvbnNlIiwicGF5bG9hZCIsIk5BTUVTUEFDRSIsImxlbmd0aCIsImF0dHJpYnV0ZXMiLCJjb25jYXQiLCJwb3AiLCJwZXJzb25hbCIsInVzZXJzIiwic2hhcmVkIiwiZWxlbWVudCIsIm1hcCIsIm5zIiwicHJlZml4IiwidmFsdWUiLCJkZWxpbWl0ZXIiLCJtYWlsYm94IiwicmVhZE9ubHkiLCJjb2RlIiwiZXhpc3RzUmVzcG9uc2UiLCJFWElTVFMiLCJmbGFnc1Jlc3BvbnNlIiwiRkxBR1MiLCJva1Jlc3BvbnNlIiwiT0siLCJleGlzdHMiLCJuciIsImZsYWdzIiwiZmxhZyIsInRvU3RyaW5nIiwidHJpbSIsImZvckVhY2giLCJvayIsInBlcm1hbmVudEZsYWdzIiwicGVybWFuZW50ZmxhZ3MiLCJ1aWRWYWxpZGl0eSIsIk51bWJlciIsInVpZHZhbGlkaXR5IiwidWlkTmV4dCIsInVpZG5leHQiLCJoaWdoZXN0TW9kc2VxIiwiaGlnaGVzdG1vZHNlcSIsIm5vTW9kc2VxIiwiZW52ZWxvcGUiLCJkYXRlIiwic3ViamVjdCIsImZyb20iLCJwcm9jZXNzQWRkcmVzc2VzIiwic2VuZGVyIiwidG8iLCJjYyIsImJjYyIsImxpc3QiLCJhZGRyIiwibmFtZSIsImFkZHJlc3MiLCJmb3JtYXR0ZWQiLCJlbmNvZGVBZGRyZXNzTmFtZSIsInBhcnNlZCIsInNoaWZ0IiwidGVzdCIsIkpTT04iLCJzdHJpbmdpZnkiLCJub2RlIiwicGF0aCIsImN1ck5vZGUiLCJpIiwicGFydCIsImpvaW4iLCJBcnJheSIsImlzQXJyYXkiLCJjaGlsZE5vZGVzIiwicHVzaCIsInR5cGUiLCJ0b0xvd2VyQ2FzZSIsInBhcmFtZXRlcnMiLCJhdHRyaWJ1dGVzVG9PYmplY3QiLCJpZCIsImRlc2NyaXB0aW9uIiwiZW5jb2RpbmciLCJzaXplIiwibGluZUNvdW50IiwibWQ1IiwiZGlzcG9zaXRpb24iLCJkaXNwb3NpdGlvblBhcmFtZXRlcnMiLCJsYW5ndWFnZSIsInZhbCIsImxvY2F0aW9uIiwiYXR0cnMiLCJrZXlUcmFuc2Zvcm0iLCJ2YWx1ZVRyYW5zZm9ybSIsInZhbHMiLCJrZXlzIiwiZmlsdGVyIiwiXyIsInZhbHVlcyIsIkZFVENIIiwibWVzc2FnZXMiLCJpdGVtIiwicGFyYW1zIiwibWVzc2FnZSIsImxlbiIsImtleSIsInJlcGxhY2UiLCJwYXJzZUZldGNoVmFsdWUiLCJ4IiwiYSIsImIiXSwibWFwcGluZ3MiOiI7Ozs7O1FBV2dCQSxjLEdBQUFBLGM7UUF1QkFDLHFCLEdBQUFBLHFCO1FBd0JBQyxXLEdBQUFBLFc7UUFtREFDLGEsR0FBQUEsYTtRQXdGQUMsa0IsR0FBQUEsa0I7UUE4SkFDLFUsR0FBQUEsVTtRQXVGQUMsVyxHQUFBQSxXOztBQTFiaEI7Ozs7QUFDQTs7QUFDQTs7QUFDQTs7OztBQUVBOzs7Ozs7QUFNTyxTQUFTTixjQUFULENBQXlCTyxRQUF6QixFQUFtQztBQUN4QyxNQUFJLENBQUNBLFNBQVNDLE9BQVYsSUFBcUIsQ0FBQ0QsU0FBU0MsT0FBVCxDQUFpQkMsU0FBdkMsSUFBb0QsQ0FBQ0YsU0FBU0MsT0FBVCxDQUFpQkMsU0FBakIsQ0FBMkJDLE1BQXBGLEVBQTRGO0FBQzFGLFdBQU8sS0FBUDtBQUNEOztBQUVELE1BQUlDLGFBQWEsR0FBR0MsTUFBSCxDQUFVTCxTQUFTQyxPQUFULENBQWlCQyxTQUFqQixDQUEyQkksR0FBM0IsR0FBaUNGLFVBQWpDLElBQStDLEVBQXpELENBQWpCO0FBQ0EsTUFBSSxDQUFDQSxXQUFXRCxNQUFoQixFQUF3QjtBQUN0QixXQUFPLEtBQVA7QUFDRDs7QUFFRCxTQUFPO0FBQ0xJLGNBQVViLHNCQUFzQlUsV0FBVyxDQUFYLENBQXRCLENBREw7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QUFKLEtBQVVELElBQUlDLENBQW5CLENBTEssRUFNTDNHLFFBTkssQ0FBUDtBQU9EIiwiZmlsZSI6ImNvbW1hbmQtcGFyc2VyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBhcnNlQWRkcmVzcyBmcm9tICdlbWFpbGpzLWFkZHJlc3NwYXJzZXInXG5pbXBvcnQgeyBjb21waWxlciB9IGZyb20gJ2VtYWlsanMtaW1hcC1oYW5kbGVyJ1xuaW1wb3J0IHsgc29ydCwgbWFwLCBwaXBlLCB6aXAsIGZyb21QYWlycywgcHJvcCwgcGF0aE9yLCBwcm9wT3IsIGZsYXR0ZW4sIHRvTG93ZXIgfSBmcm9tICdyYW1kYSdcbmltcG9ydCB7IG1pbWVXb3JkRW5jb2RlLCBtaW1lV29yZHNEZWNvZGUgfSBmcm9tICdlbWFpbGpzLW1pbWUtY29kZWMnXG5cbi8qKlxuICogUGFyc2VzIE5BTUVTUEFDRSByZXNwb25zZVxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSByZXNwb25zZVxuICogQHJldHVybiB7T2JqZWN0fSBOYW1lc3BhY2VzIG9iamVjdFxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VOQU1FU1BBQ0UgKHJlc3BvbnNlKSB7XG4gIGlmICghcmVzcG9uc2UucGF5bG9hZCB8fCAhcmVzcG9uc2UucGF5bG9hZC5OQU1FU1BBQ0UgfHwgIXJlc3BvbnNlLnBheWxvYWQuTkFNRVNQQUNFLmxlbmd0aCkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgbGV0IGF0dHJpYnV0ZXMgPSBbXS5jb25jYXQocmVzcG9uc2UucGF5bG9hZC5OQU1FU1BBQ0UucG9wKCkuYXR0cmlidXRlcyB8fCBbXSlcbiAgaWYgKCFhdHRyaWJ1dGVzLmxlbmd0aCkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBwZXJzb25hbDogcGFyc2VOQU1FU1BBQ0VFbGVtZW50KGF0dHJpYnV0ZXNbMF0pLFxuICAgIHVzZXJzOiBwYXJzZU5BTUVTUEFDRUVsZW1lbnQoYXR0cmlidXRlc1sxXSksXG4gICAgc2hhcmVkOiBwYXJzZU5BTUVTUEFDRUVsZW1lbnQoYXR0cmlidXRlc1syXSlcbiAgfVxufVxuXG4vKipcbiAqIFBhcnNlcyBhIE5BTUVTUEFDRSBlbGVtZW50XG4gKlxuICogQHBhcmFtIHtPYmplY3R9IGVsZW1lbnRcbiAqIEByZXR1cm4ge09iamVjdH0gTmFtZXNwYWNlcyBlbGVtZW50IG9iamVjdFxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VOQU1FU1BBQ0VFbGVtZW50IChlbGVtZW50KSB7XG4gIGlmICghZWxlbWVudCkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgZWxlbWVudCA9IFtdLmNvbmNhdChlbGVtZW50IHx8IFtdKVxuICByZXR1cm4gZWxlbWVudC5tYXAoKG5zKSA9PiB7XG4gICAgaWYgKCFucyB8fCAhbnMubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgcHJlZml4OiBuc1swXS52YWx1ZSxcbiAgICAgIGRlbGltaXRlcjogbnNbMV0gJiYgbnNbMV0udmFsdWUgLy8gVGhlIGRlbGltaXRlciBjYW4gbGVnYWxseSBiZSBOSUwgd2hpY2ggbWFwcyB0byBudWxsXG4gICAgfVxuICB9KVxufVxuXG4vKipcbiAqIFBhcnNlcyBTRUxFQ1QgcmVzcG9uc2VcbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcmVzcG9uc2VcbiAqIEByZXR1cm4ge09iamVjdH0gTWFpbGJveCBpbmZvcm1hdGlvbiBvYmplY3RcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlU0VMRUNUIChyZXNwb25zZSkge1xuICBpZiAoIXJlc3BvbnNlIHx8ICFyZXNwb25zZS5wYXlsb2FkKSB7XG4gICAgcmV0dXJuXG4gIH1cblxuICBsZXQgbWFpbGJveCA9IHtcbiAgICByZWFkT25seTogcmVzcG9uc2UuY29kZSA9PT0gJ1JFQUQtT05MWSdcbiAgfVxuICBsZXQgZXhpc3RzUmVzcG9uc2UgPSByZXNwb25zZS5wYXlsb2FkLkVYSVNUUyAmJiByZXNwb25zZS5wYXlsb2FkLkVYSVNUUy5wb3AoKVxuICBsZXQgZmxhZ3NSZXNwb25zZSA9IHJlc3BvbnNlLnBheWxvYWQuRkxBR1MgJiYgcmVzcG9uc2UucGF5bG9hZC5GTEFHUy5wb3AoKVxuICBsZXQgb2tSZXNwb25zZSA9IHJlc3BvbnNlLnBheWxvYWQuT0tcblxuICBpZiAoZXhpc3RzUmVzcG9uc2UpIHtcbiAgICBtYWlsYm94LmV4aXN0cyA9IGV4aXN0c1Jlc3BvbnNlLm5yIHx8IDBcbiAgfVxuXG4gIGlmIChmbGFnc1Jlc3BvbnNlICYmIGZsYWdzUmVzcG9uc2UuYXR0cmlidXRlcyAmJiBmbGFnc1Jlc3BvbnNlLmF0dHJpYnV0ZXMubGVuZ3RoKSB7XG4gICAgbWFpbGJveC5mbGFncyA9IGZsYWdzUmVzcG9uc2UuYXR0cmlidXRlc1swXS5tYXAoKGZsYWcpID0+IChmbGFnLnZhbHVlIHx8ICcnKS50b1N0cmluZygpLnRyaW0oKSlcbiAgfVxuXG4gIFtdLmNvbmNhdChva1Jlc3BvbnNlIHx8IFtdKS5mb3JFYWNoKChvaykgPT4ge1xuICAgIHN3aXRjaCAob2sgJiYgb2suY29kZSkge1xuICAgICAgY2FzZSAnUEVSTUFORU5URkxBR1MnOlxuICAgICAgICBtYWlsYm94LnBlcm1hbmVudEZsYWdzID0gW10uY29uY2F0KG9rLnBlcm1hbmVudGZsYWdzIHx8IFtdKVxuICAgICAgICBicmVha1xuICAgICAgY2FzZSAnVUlEVkFMSURJVFknOlxuICAgICAgICBtYWlsYm94LnVpZFZhbGlkaXR5ID0gTnVtYmVyKG9rLnVpZHZhbGlkaXR5KSB8fCAwXG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlICdVSURORVhUJzpcbiAgICAgICAgbWFpbGJveC51aWROZXh0ID0gTnVtYmVyKG9rLnVpZG5leHQpIHx8IDBcbiAgICAgICAgYnJlYWtcbiAgICAgIGNhc2UgJ0hJR0hFU1RNT0RTRVEnOlxuICAgICAgICBtYWlsYm94LmhpZ2hlc3RNb2RzZXEgPSBvay5oaWdoZXN0bW9kc2VxIHx8ICcwJyAvLyBrZWVwIDY0Yml0IHVpbnQgYXMgYSBzdHJpbmdcbiAgICAgICAgYnJlYWtcbiAgICAgIGNhc2UgJ05PTU9EU0VRJzpcbiAgICAgICAgbWFpbGJveC5ub01vZHNlcSA9IHRydWVcbiAgICAgICAgYnJlYWtcbiAgICB9XG4gIH0pXG5cbiAgcmV0dXJuIG1haWxib3hcbn1cblxuLyoqXG4gKiBQYXJzZXMgbWVzc2FnZSBlbnZlbG9wZSBmcm9tIEZFVENIIHJlc3BvbnNlLiBBbGwga2V5cyBpbiB0aGUgcmVzdWx0aW5nXG4gKiBvYmplY3QgYXJlIGxvd2VyY2FzZS4gQWRkcmVzcyBmaWVsZHMgYXJlIGFsbCBhcnJheXMgd2l0aCB7bmFtZTosIGFkZHJlc3M6fVxuICogc3RydWN0dXJlZCB2YWx1ZXMuIFVuaWNvZGUgc3RyaW5ncyBhcmUgYXV0b21hdGljYWxseSBkZWNvZGVkLlxuICpcbiAqIEBwYXJhbSB7QXJyYXl9IHZhbHVlIEVudmVsb3BlIGFycmF5XG4gKiBAcGFyYW0ge09iamVjdH0gRW52ZWxvcGUgb2JqZWN0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUVOVkVMT1BFICh2YWx1ZSkge1xuICBsZXQgZW52ZWxvcGUgPSB7fVxuXG4gIGlmICh2YWx1ZVswXSAmJiB2YWx1ZVswXS52YWx1ZSkge1xuICAgIGVudmVsb3BlLmRhdGUgPSB2YWx1ZVswXS52YWx1ZVxuICB9XG5cbiAgaWYgKHZhbHVlWzFdICYmIHZhbHVlWzFdLnZhbHVlKSB7XG4gICAgZW52ZWxvcGUuc3ViamVjdCA9IG1pbWVXb3Jkc0RlY29kZSh2YWx1ZVsxXSAmJiB2YWx1ZVsxXS52YWx1ZSlcbiAgfVxuXG4gIGlmICh2YWx1ZVsyXSAmJiB2YWx1ZVsyXS5sZW5ndGgpIHtcbiAgICBlbnZlbG9wZS5mcm9tID0gcHJvY2Vzc0FkZHJlc3Nlcyh2YWx1ZVsyXSlcbiAgfVxuXG4gIGlmICh2YWx1ZVszXSAmJiB2YWx1ZVszXS5sZW5ndGgpIHtcbiAgICBlbnZlbG9wZS5zZW5kZXIgPSBwcm9jZXNzQWRkcmVzc2VzKHZhbHVlWzNdKVxuICB9XG5cbiAgaWYgKHZhbHVlWzRdICYmIHZhbHVlWzRdLmxlbmd0aCkge1xuICAgIGVudmVsb3BlWydyZXBseS10byddID0gcHJvY2Vzc0FkZHJlc3Nlcyh2YWx1ZVs0XSlcbiAgfVxuXG4gIGlmICh2YWx1ZVs1XSAmJiB2YWx1ZVs1XS5sZW5ndGgpIHtcbiAgICBlbnZlbG9wZS50byA9IHByb2Nlc3NBZGRyZXNzZXModmFsdWVbNV0pXG4gIH1cblxuICBpZiAodmFsdWVbNl0gJiYgdmFsdWVbNl0ubGVuZ3RoKSB7XG4gICAgZW52ZWxvcGUuY2MgPSBwcm9jZXNzQWRkcmVzc2VzKHZhbHVlWzZdKVxuICB9XG5cbiAgaWYgKHZhbHVlWzddICYmIHZhbHVlWzddLmxlbmd0aCkge1xuICAgIGVudmVsb3BlLmJjYyA9IHByb2Nlc3NBZGRyZXNzZXModmFsdWVbN10pXG4gIH1cblxuICBpZiAodmFsdWVbOF0gJiYgdmFsdWVbOF0udmFsdWUpIHtcbiAgICBlbnZlbG9wZVsnaW4tcmVwbHktdG8nXSA9IHZhbHVlWzhdLnZhbHVlXG4gIH1cblxuICBpZiAodmFsdWVbOV0gJiYgdmFsdWVbOV0udmFsdWUpIHtcbiAgICBlbnZlbG9wZVsnbWVzc2FnZS1pZCddID0gdmFsdWVbOV0udmFsdWVcbiAgfVxuXG4gIHJldHVybiBlbnZlbG9wZVxufVxuXG4vKlxuICogRU5WRUxPUEUgbGlzdHMgYWRkcmVzc2VzIGFzIFtuYW1lLXBhcnQsIHNvdXJjZS1yb3V0ZSwgdXNlcm5hbWUsIGhvc3RuYW1lXVxuICogd2hlcmUgc291cmNlLXJvdXRlIGlzIG5vdCB1c2VkIGFueW1vcmUgYW5kIGNhbiBiZSBpZ25vcmVkLlxuICogVG8gZ2V0IGNvbXBhcmFibGUgcmVzdWx0cyB3aXRoIG90aGVyIHBhcnRzIG9mIHRoZSBlbWFpbC5qcyBzdGFja1xuICogYnJvd3NlcmJveCBmZWVkcyB0aGUgcGFyc2VkIGFkZHJlc3MgdmFsdWVzIGZyb20gRU5WRUxPUEVcbiAqIHRvIGFkZHJlc3NwYXJzZXIgYW5kIHVzZXMgcmVzdWx0aW5nIHZhbHVlcyBpbnN0ZWFkIG9mIHRoZVxuICogcHJlLXBhcnNlZCBhZGRyZXNzZXNcbiAqL1xuZnVuY3Rpb24gcHJvY2Vzc0FkZHJlc3NlcyAobGlzdCA9IFtdKSB7XG4gIHJldHVybiBsaXN0Lm1hcCgoYWRkcikgPT4ge1xuICAgIGNvbnN0IG5hbWUgPSAocGF0aE9yKCcnLCBbJzAnLCAndmFsdWUnXSwgYWRkcikpLnRyaW0oKVxuICAgIGNvbnN0IGFkZHJlc3MgPSAocGF0aE9yKCcnLCBbJzInLCAndmFsdWUnXSwgYWRkcikpICsgJ0AnICsgKHBhdGhPcignJywgWyczJywgJ3ZhbHVlJ10sIGFkZHIpKVxuICAgIGNvbnN0IGZvcm1hdHRlZCA9IG5hbWUgPyAoZW5jb2RlQWRkcmVzc05hbWUobmFtZSkgKyAnIDwnICsgYWRkcmVzcyArICc+JykgOiBhZGRyZXNzXG4gICAgbGV0IHBhcnNlZCA9IHBhcnNlQWRkcmVzcyhmb3JtYXR0ZWQpLnNoaWZ0KCkgLy8gdGhlcmUgc2hvdWxkIGJlIGp1c3QgYSBzaW5nbGUgYWRkcmVzc1xuICAgIHBhcnNlZC5uYW1lID0gbWltZVdvcmRzRGVjb2RlKHBhcnNlZC5uYW1lKVxuICAgIHJldHVybiBwYXJzZWRcbiAgfSlcbn1cblxuLyoqXG4gKiBJZiBuZWVkZWQsIGVuY2xvc2VzIHdpdGggcXVvdGVzIG9yIG1pbWUgZW5jb2RlcyB0aGUgbmFtZSBwYXJ0IG9mIGFuIGUtbWFpbCBhZGRyZXNzXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IG5hbWUgTmFtZSBwYXJ0IG9mIGFuIGFkZHJlc3NcbiAqIEByZXR1cm5zIHtTdHJpbmd9IE1pbWUgd29yZCBlbmNvZGVkIG9yIHF1b3RlZCBzdHJpbmdcbiAqL1xuZnVuY3Rpb24gZW5jb2RlQWRkcmVzc05hbWUgKG5hbWUpIHtcbiAgaWYgKCEvXltcXHcgJ10qJC8udGVzdChuYW1lKSkge1xuICAgIGlmICgvXltcXHgyMC1cXHg3ZV0qJC8udGVzdChuYW1lKSkge1xuICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KG5hbWUpXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBtaW1lV29yZEVuY29kZShuYW1lLCAnUScsIDUyKVxuICAgIH1cbiAgfVxuICByZXR1cm4gbmFtZVxufVxuXG4vKipcbiAqIFBhcnNlcyBtZXNzYWdlIGJvZHkgc3RydWN0dXJlIGZyb20gRkVUQ0ggcmVzcG9uc2UuXG4gKlxuICogQHBhcmFtIHtBcnJheX0gdmFsdWUgQk9EWVNUUlVDVFVSRSBhcnJheVxuICogQHBhcmFtIHtPYmplY3R9IEVudmVsb3BlIG9iamVjdFxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VCT0RZU1RSVUNUVVJFIChub2RlLCBwYXRoID0gW10pIHtcbiAgbGV0IGN1ck5vZGUgPSB7fVxuICBsZXQgaSA9IDBcbiAgbGV0IHBhcnQgPSAwXG5cbiAgaWYgKHBhdGgubGVuZ3RoKSB7XG4gICAgY3VyTm9kZS5wYXJ0ID0gcGF0aC5qb2luKCcuJylcbiAgfVxuXG4gIC8vIG11bHRpcGFydFxuICBpZiAoQXJyYXkuaXNBcnJheShub2RlWzBdKSkge1xuICAgIGN1ck5vZGUuY2hpbGROb2RlcyA9IFtdXG4gICAgd2hpbGUgKEFycmF5LmlzQXJyYXkobm9kZVtpXSkpIHtcbiAgICAgIGN1ck5vZGUuY2hpbGROb2Rlcy5wdXNoKHBhcnNlQk9EWVNUUlVDVFVSRShub2RlW2ldLCBwYXRoLmNvbmNhdCgrK3BhcnQpKSlcbiAgICAgIGkrK1xuICAgIH1cblxuICAgIC8vIG11bHRpcGFydCB0eXBlXG4gICAgY3VyTm9kZS50eXBlID0gJ211bHRpcGFydC8nICsgKChub2RlW2krK10gfHwge30pLnZhbHVlIHx8ICcnKS50b1N0cmluZygpLnRvTG93ZXJDYXNlKClcblxuICAgIC8vIGV4dGVuc2lvbiBkYXRhIChub3QgYXZhaWxhYmxlIGZvciBCT0RZIHJlcXVlc3RzKVxuXG4gICAgLy8gYm9keSBwYXJhbWV0ZXIgcGFyZW50aGVzaXplZCBsaXN0XG4gICAgaWYgKGkgPCBub2RlLmxlbmd0aCAtIDEpIHtcbiAgICAgIGlmIChub2RlW2ldKSB7XG4gICAgICAgIGN1ck5vZGUucGFyYW1ldGVycyA9IGF0dHJpYnV0ZXNUb09iamVjdChub2RlW2ldKVxuICAgICAgfVxuICAgICAgaSsrXG4gICAgfVxuICB9IGVsc2Uge1xuICAgIC8vIGNvbnRlbnQgdHlwZVxuICAgIGN1ck5vZGUudHlwZSA9IFtcbiAgICAgICgobm9kZVtpKytdIHx8IHt9KS52YWx1ZSB8fCAnJykudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpLCAoKG5vZGVbaSsrXSB8fCB7fSkudmFsdWUgfHwgJycpLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKVxuICAgIF0uam9pbignLycpXG5cbiAgICAvLyBib2R5IHBhcmFtZXRlciBwYXJlbnRoZXNpemVkIGxpc3RcbiAgICBpZiAobm9kZVtpXSkge1xuICAgICAgY3VyTm9kZS5wYXJhbWV0ZXJzID0gYXR0cmlidXRlc1RvT2JqZWN0KG5vZGVbaV0pXG4gICAgfVxuICAgIGkrK1xuXG4gICAgLy8gaWRcbiAgICBpZiAobm9kZVtpXSkge1xuICAgICAgY3VyTm9kZS5pZCA9ICgobm9kZVtpXSB8fCB7fSkudmFsdWUgfHwgJycpLnRvU3RyaW5nKClcbiAgICB9XG4gICAgaSsrXG5cbiAgICAvLyBkZXNjcmlwdGlvblxuICAgIGlmIChub2RlW2ldKSB7XG4gICAgICBjdXJOb2RlLmRlc2NyaXB0aW9uID0gKChub2RlW2ldIHx8IHt9KS52YWx1ZSB8fCAnJykudG9TdHJpbmcoKVxuICAgIH1cbiAgICBpKytcblxuICAgIC8vIGVuY29kaW5nXG4gICAgaWYgKG5vZGVbaV0pIHtcbiAgICAgIGN1ck5vZGUuZW5jb2RpbmcgPSAoKG5vZGVbaV0gfHwge30pLnZhbHVlIHx8ICcnKS50b1N0cmluZygpLnRvTG93ZXJDYXNlKClcbiAgICB9XG4gICAgaSsrXG5cbiAgICAvLyBzaXplXG4gICAgaWYgKG5vZGVbaV0pIHtcbiAgICAgIGN1ck5vZGUuc2l6ZSA9IE51bWJlcigobm9kZVtpXSB8fCB7fSkudmFsdWUgfHwgMCkgfHwgMFxuICAgIH1cbiAgICBpKytcblxuICAgIGlmIChjdXJOb2RlLnR5cGUgPT09ICdtZXNzYWdlL3JmYzgyMicpIHtcbiAgICAgIC8vIG1lc3NhZ2UvcmZjIGFkZHMgYWRkaXRpb25hbCBlbnZlbG9wZSwgYm9keXN0cnVjdHVyZSBhbmQgbGluZSBjb3VudCB2YWx1ZXNcblxuICAgICAgLy8gZW52ZWxvcGVcbiAgICAgIGlmIChub2RlW2ldKSB7XG4gICAgICAgIGN1ck5vZGUuZW52ZWxvcGUgPSBwYXJzZUVOVkVMT1BFKFtdLmNvbmNhdChub2RlW2ldIHx8IFtdKSlcbiAgICAgIH1cbiAgICAgIGkrK1xuXG4gICAgICBpZiAobm9kZVtpXSkge1xuICAgICAgICBjdXJOb2RlLmNoaWxkTm9kZXMgPSBbXG4gICAgICAgICAgLy8gcmZjODIyIGJvZHlwYXJ0cyBzaGFyZSB0aGUgc2FtZSBwYXRoLCBkaWZmZXJlbmNlIGlzIGJldHdlZW4gTUlNRSBhbmQgSEVBREVSXG4gICAgICAgICAgLy8gcGF0aC5NSU1FIHJldHVybnMgbWVzc2FnZS9yZmM4MjIgaGVhZGVyXG4gICAgICAgICAgLy8gcGF0aC5IRUFERVIgcmV0dXJucyBpbmxpbmVkIG1lc3NhZ2UgaGVhZGVyXG4gICAgICAgICAgcGFyc2VCT0RZU1RSVUNUVVJFKG5vZGVbaV0sIHBhdGgpXG4gICAgICAgIF1cbiAgICAgIH1cbiAgICAgIGkrK1xuXG4gICAgICAvLyBsaW5lIGNvdW50XG4gICAgICBpZiAobm9kZVtpXSkge1xuICAgICAgICBjdXJOb2RlLmxpbmVDb3VudCA9IE51bWJlcigobm9kZVtpXSB8fCB7fSkudmFsdWUgfHwgMCkgfHwgMFxuICAgICAgfVxuICAgICAgaSsrXG4gICAgfSBlbHNlIGlmICgvXnRleHRcXC8vLnRlc3QoY3VyTm9kZS50eXBlKSkge1xuICAgICAgLy8gdGV4dC8qIGFkZHMgYWRkaXRpb25hbCBsaW5lIGNvdW50IHZhbHVlc1xuXG4gICAgICAvLyBsaW5lIGNvdW50XG4gICAgICBpZiAobm9kZVtpXSkge1xuICAgICAgICBjdXJOb2RlLmxpbmVDb3VudCA9IE51bWJlcigobm9kZVtpXSB8fCB7fSkudmFsdWUgfHwgMCkgfHwgMFxuICAgICAgfVxuICAgICAgaSsrXG4gICAgfVxuXG4gICAgLy8gZXh0ZW5zaW9uIGRhdGEgKG5vdCBhdmFpbGFibGUgZm9yIEJPRFkgcmVxdWVzdHMpXG5cbiAgICAvLyBtZDVcbiAgICBpZiAoaSA8IG5vZGUubGVuZ3RoIC0gMSkge1xuICAgICAgaWYgKG5vZGVbaV0pIHtcbiAgICAgICAgY3VyTm9kZS5tZDUgPSAoKG5vZGVbaV0gfHwge30pLnZhbHVlIHx8ICcnKS50b1N0cmluZygpLnRvTG93ZXJDYXNlKClcbiAgICAgIH1cbiAgICAgIGkrK1xuICAgIH1cbiAgfVxuXG4gIC8vIHRoZSBmb2xsb3dpbmcgYXJlIHNoYXJlZCBleHRlbnNpb24gdmFsdWVzIChmb3IgYm90aCBtdWx0aXBhcnQgYW5kIG5vbi1tdWx0aXBhcnQgcGFydHMpXG4gIC8vIG5vdCBhdmFpbGFibGUgZm9yIEJPRFkgcmVxdWVzdHNcblxuICAvLyBib2R5IGRpc3Bvc2l0aW9uXG4gIGlmIChpIDwgbm9kZS5sZW5ndGggLSAxKSB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkobm9kZVtpXSkgJiYgbm9kZVtpXS5sZW5ndGgpIHtcbiAgICAgIGN1ck5vZGUuZGlzcG9zaXRpb24gPSAoKG5vZGVbaV1bMF0gfHwge30pLnZhbHVlIHx8ICcnKS50b1N0cmluZygpLnRvTG93ZXJDYXNlKClcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KG5vZGVbaV1bMV0pKSB7XG4gICAgICAgIGN1ck5vZGUuZGlzcG9zaXRpb25QYXJhbWV0ZXJzID0gYXR0cmlidXRlc1RvT2JqZWN0KG5vZGVbaV1bMV0pXG4gICAgICB9XG4gICAgfVxuICAgIGkrK1xuICB9XG5cbiAgLy8gYm9keSBsYW5ndWFnZVxuICBpZiAoaSA8IG5vZGUubGVuZ3RoIC0gMSkge1xuICAgIGlmIChub2RlW2ldKSB7XG4gICAgICBjdXJOb2RlLmxhbmd1YWdlID0gW10uY29uY2F0KG5vZGVbaV0pLm1hcCgodmFsKSA9PiBwcm9wT3IoJycsICd2YWx1ZScsIHZhbCkudG9Mb3dlckNhc2UoKSlcbiAgICB9XG4gICAgaSsrXG4gIH1cblxuICAvLyBib2R5IGxvY2F0aW9uXG4gIC8vIE5CISBkZWZpbmVkIGFzIGEgXCJzdHJpbmcgbGlzdFwiIGluIFJGQzM1MDEgYnV0IHJlcGxhY2VkIGluIGVycmF0YSBkb2N1bWVudCB3aXRoIFwic3RyaW5nXCJcbiAgLy8gRXJyYXRhOiBodHRwOi8vd3d3LnJmYy1lZGl0b3Iub3JnL2VycmF0YV9zZWFyY2gucGhwP3JmYz0zNTAxXG4gIGlmIChpIDwgbm9kZS5sZW5ndGggLSAxKSB7XG4gICAgaWYgKG5vZGVbaV0pIHtcbiAgICAgIGN1ck5vZGUubG9jYXRpb24gPSAoKG5vZGVbaV0gfHwge30pLnZhbHVlIHx8ICcnKS50b1N0cmluZygpXG4gICAgfVxuICAgIGkrK1xuICB9XG5cbiAgcmV0dXJuIGN1ck5vZGVcbn1cblxuZnVuY3Rpb24gYXR0cmlidXRlc1RvT2JqZWN0IChhdHRycyA9IFtdLCBrZXlUcmFuc2Zvcm0gPSB0b0xvd2VyLCB2YWx1ZVRyYW5zZm9ybSA9IG1pbWVXb3Jkc0RlY29kZSkge1xuICBjb25zdCB2YWxzID0gYXR0cnMubWFwKHByb3AoJ3ZhbHVlJykpXG4gIGNvbnN0IGtleXMgPSB2YWxzLmZpbHRlcigoXywgaSkgPT4gaSAlIDIgPT09IDApLm1hcChrZXlUcmFuc2Zvcm0pXG4gIGNvbnN0IHZhbHVlcyA9IHZhbHMuZmlsdGVyKChfLCBpKSA9PiBpICUgMiA9PT0gMSkubWFwKHZhbHVlVHJhbnNmb3JtKVxuICByZXR1cm4gZnJvbVBhaXJzKHppcChrZXlzLCB2YWx1ZXMpKVxufVxuXG4vKipcbiAqIFBhcnNlcyBGRVRDSCByZXNwb25zZVxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSByZXNwb25zZVxuICogQHJldHVybiB7T2JqZWN0fSBNZXNzYWdlIG9iamVjdFxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VGRVRDSCAocmVzcG9uc2UpIHtcbiAgaWYgKCFyZXNwb25zZSB8fCAhcmVzcG9uc2UucGF5bG9hZCB8fCAhcmVzcG9uc2UucGF5bG9hZC5GRVRDSCB8fCAhcmVzcG9uc2UucGF5bG9hZC5GRVRDSC5sZW5ndGgpIHtcbiAgICByZXR1cm4gW11cbiAgfVxuXG4gIGxldCBsaXN0ID0gW11cbiAgbGV0IG1lc3NhZ2VzID0ge31cblxuICByZXNwb25zZS5wYXlsb2FkLkZFVENILmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICBsZXQgcGFyYW1zID0gW10uY29uY2F0KFtdLmNvbmNhdChpdGVtLmF0dHJpYnV0ZXMgfHwgW10pWzBdIHx8IFtdKSAvLyBlbnN1cmUgdGhlIGZpcnN0IHZhbHVlIGlzIGFuIGFycmF5XG4gICAgbGV0IG1lc3NhZ2VcbiAgICBsZXQgaSwgbGVuLCBrZXlcblxuICAgIGlmIChtZXNzYWdlc1tpdGVtLm5yXSkge1xuICAgICAgLy8gc2FtZSBzZXF1ZW5jZSBudW1iZXIgaXMgYWxyZWFkeSB1c2VkLCBzbyBtZXJnZSB2YWx1ZXMgaW5zdGVhZCBvZiBjcmVhdGluZyBhIG5ldyBtZXNzYWdlIG9iamVjdFxuICAgICAgbWVzc2FnZSA9IG1lc3NhZ2VzW2l0ZW0ubnJdXG4gICAgfSBlbHNlIHtcbiAgICAgIG1lc3NhZ2VzW2l0ZW0ubnJdID0gbWVzc2FnZSA9IHtcbiAgICAgICAgJyMnOiBpdGVtLm5yXG4gICAgICB9XG4gICAgICBsaXN0LnB1c2gobWVzc2FnZSlcbiAgICB9XG5cbiAgICBmb3IgKGkgPSAwLCBsZW4gPSBwYXJhbXMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgIGlmIChpICUgMiA9PT0gMCkge1xuICAgICAgICBrZXkgPSBjb21waWxlcih7XG4gICAgICAgICAgYXR0cmlidXRlczogW3BhcmFtc1tpXV1cbiAgICAgICAgfSkudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC88XFxkKz4kLywgJycpXG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBtZXNzYWdlW2tleV0gPSBwYXJzZUZldGNoVmFsdWUoa2V5LCBwYXJhbXNbaV0pXG4gICAgfVxuICB9KVxuXG4gIHJldHVybiBsaXN0XG59XG5cbi8qKlxuICogUGFyc2VzIGEgc2luZ2xlIHZhbHVlIGZyb20gdGhlIEZFVENIIHJlc3BvbnNlIG9iamVjdFxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBrZXkgS2V5IG5hbWUgKHVwcGVyY2FzZSlcbiAqIEBwYXJhbSB7TWl6ZWR9IHZhbHVlIFZhbHVlIGZvciB0aGUga2V5XG4gKiBAcmV0dXJuIHtNaXhlZH0gUHJvY2Vzc2VkIHZhbHVlXG4gKi9cbmZ1bmN0aW9uIHBhcnNlRmV0Y2hWYWx1ZSAoa2V5LCB2YWx1ZSkge1xuICBpZiAoIXZhbHVlKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIGlmICghQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICBzd2l0Y2ggKGtleSkge1xuICAgICAgY2FzZSAndWlkJzpcbiAgICAgIGNhc2UgJ3JmYzgyMi5zaXplJzpcbiAgICAgICAgcmV0dXJuIE51bWJlcih2YWx1ZS52YWx1ZSkgfHwgMFxuICAgICAgY2FzZSAnbW9kc2VxJzogLy8gZG8gbm90IGNhc3QgNjQgYml0IHVpbnQgdG8gYSBudW1iZXJcbiAgICAgICAgcmV0dXJuIHZhbHVlLnZhbHVlIHx8ICcwJ1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWUudmFsdWVcbiAgfVxuXG4gIHN3aXRjaCAoa2V5KSB7XG4gICAgY2FzZSAnZmxhZ3MnOlxuICAgIGNhc2UgJ3gtZ20tbGFiZWxzJzpcbiAgICAgIHZhbHVlID0gW10uY29uY2F0KHZhbHVlKS5tYXAoKGZsYWcpID0+IChmbGFnLnZhbHVlIHx8ICcnKSlcbiAgICAgIGJyZWFrXG4gICAgY2FzZSAnZW52ZWxvcGUnOlxuICAgICAgdmFsdWUgPSBwYXJzZUVOVkVMT1BFKFtdLmNvbmNhdCh2YWx1ZSB8fCBbXSkpXG4gICAgICBicmVha1xuICAgIGNhc2UgJ2JvZHlzdHJ1Y3R1cmUnOlxuICAgICAgdmFsdWUgPSBwYXJzZUJPRFlTVFJVQ1RVUkUoW10uY29uY2F0KHZhbHVlIHx8IFtdKSlcbiAgICAgIGJyZWFrXG4gICAgY2FzZSAnbW9kc2VxJzpcbiAgICAgIHZhbHVlID0gKHZhbHVlLnNoaWZ0KCkgfHwge30pLnZhbHVlIHx8ICcwJ1xuICAgICAgYnJlYWtcbiAgfVxuXG4gIHJldHVybiB2YWx1ZVxufVxuXG4vKipcbiAqIFBhcnNlcyBTRUFSQ0ggcmVzcG9uc2UuIEdhdGhlcnMgYWxsIHVudGFnZ2VkIFNFQVJDSCByZXNwb25zZXMsIGZldGNoZWQgc2VxLi91aWQgbnVtYmVyc1xuICogYW5kIGNvbXBpbGVzIHRoZXNlIGludG8gYSBzb3J0ZWQgYXJyYXkuXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHJlc3BvbnNlXG4gKiBAcmV0dXJuIHtPYmplY3R9IE1lc3NhZ2Ugb2JqZWN0XG4gKiBAcGFyYW0ge0FycmF5fSBTb3J0ZWQgU2VxLi9VSUQgbnVtYmVyIGxpc3RcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlU0VBUkNIIChyZXNwb25zZSkge1xuICByZXR1cm4gcGlwZShcbiAgICBwYXRoT3IoW10sIFsncGF5bG9hZCcsICdTRUFSQ0gnXSksXG4gICAgbWFwKHggPT4geC5hdHRyaWJ1dGVzIHx8IFtdKSxcbiAgICBmbGF0dGVuLFxuICAgIG1hcChuciA9PiBOdW1iZXIocHJvcE9yKG5yIHx8IDAsICd2YWx1ZScsIG5yKSkgfHwgMCksXG4gICAgc29ydCgoYSwgYikgPT4gYSA+IGIpXG4gICkocmVzcG9uc2UpXG59XG4iXX0= |
@@ -6,17 +6,11 @@ 'use strict'; | ||
}); | ||
var LOG_LEVEL_NONE = exports.LOG_LEVEL_NONE = 1000; | ||
var LOG_LEVEL_ERROR = exports.LOG_LEVEL_ERROR = 40; | ||
var LOG_LEVEL_WARN = exports.LOG_LEVEL_WARN = 30; | ||
var LOG_LEVEL_INFO = exports.LOG_LEVEL_INFO = 20; | ||
var LOG_LEVEL_DEBUG = exports.LOG_LEVEL_DEBUG = 10; | ||
var LOG_LEVEL_ALL = exports.LOG_LEVEL_ALL = 0; | ||
const LOG_LEVEL_NONE = exports.LOG_LEVEL_NONE = 1000; | ||
const LOG_LEVEL_ERROR = exports.LOG_LEVEL_ERROR = 40; | ||
const LOG_LEVEL_WARN = exports.LOG_LEVEL_WARN = 30; | ||
const LOG_LEVEL_INFO = exports.LOG_LEVEL_INFO = 20; | ||
const LOG_LEVEL_DEBUG = exports.LOG_LEVEL_DEBUG = 10; | ||
const LOG_LEVEL_ALL = exports.LOG_LEVEL_ALL = 0; | ||
var toTypedArray = exports.toTypedArray = function toTypedArray(str) { | ||
return new Uint8Array(str.split('').map(function (char) { | ||
return char.charCodeAt(0); | ||
})); | ||
}; | ||
var fromTypedArray = exports.fromTypedArray = function fromTypedArray(arr) { | ||
return String.fromCharCode.apply(null, arr); | ||
}; | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb21tb24uanMiXSwibmFtZXMiOlsiTE9HX0xFVkVMX05PTkUiLCJMT0dfTEVWRUxfRVJST1IiLCJMT0dfTEVWRUxfV0FSTiIsIkxPR19MRVZFTF9JTkZPIiwiTE9HX0xFVkVMX0RFQlVHIiwiTE9HX0xFVkVMX0FMTCIsInRvVHlwZWRBcnJheSIsIlVpbnQ4QXJyYXkiLCJzdHIiLCJzcGxpdCIsIm1hcCIsImNoYXIiLCJjaGFyQ29kZUF0IiwiZnJvbVR5cGVkQXJyYXkiLCJTdHJpbmciLCJmcm9tQ2hhckNvZGUiLCJhcHBseSIsImFyciJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBTyxJQUFNQSwwQ0FBaUIsSUFBdkI7QUFDQSxJQUFNQyw0Q0FBa0IsRUFBeEI7QUFDQSxJQUFNQywwQ0FBaUIsRUFBdkI7QUFDQSxJQUFNQywwQ0FBaUIsRUFBdkI7QUFDQSxJQUFNQyw0Q0FBa0IsRUFBeEI7QUFDQSxJQUFNQyx3Q0FBZ0IsQ0FBdEI7O0FBRUEsSUFBTUMsc0NBQWUsU0FBZkEsWUFBZTtBQUFBLFNBQU8sSUFBSUMsVUFBSixDQUFlQyxJQUFJQyxLQUFKLENBQVUsRUFBVixFQUFjQyxHQUFkLENBQWtCO0FBQUEsV0FBUUMsS0FBS0MsVUFBTCxDQUFnQixDQUFoQixDQUFSO0FBQUEsR0FBbEIsQ0FBZixDQUFQO0FBQUEsQ0FBckI7QUFDQSxJQUFNQywwQ0FBaUIsU0FBakJBLGNBQWlCO0FBQUEsU0FBT0MsT0FBT0MsWUFBUCxDQUFvQkMsS0FBcEIsQ0FBMEIsSUFBMUIsRUFBZ0NDLEdBQWhDLENBQVA7QUFBQSxDQUF2QiIsImZpbGUiOiJjb21tb24uanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgTE9HX0xFVkVMX05PTkUgPSAxMDAwXG5leHBvcnQgY29uc3QgTE9HX0xFVkVMX0VSUk9SID0gNDBcbmV4cG9ydCBjb25zdCBMT0dfTEVWRUxfV0FSTiA9IDMwXG5leHBvcnQgY29uc3QgTE9HX0xFVkVMX0lORk8gPSAyMFxuZXhwb3J0IGNvbnN0IExPR19MRVZFTF9ERUJVRyA9IDEwXG5leHBvcnQgY29uc3QgTE9HX0xFVkVMX0FMTCA9IDBcblxuZXhwb3J0IGNvbnN0IHRvVHlwZWRBcnJheSA9IHN0ciA9PiBuZXcgVWludDhBcnJheShzdHIuc3BsaXQoJycpLm1hcChjaGFyID0+IGNoYXIuY2hhckNvZGVBdCgwKSkpXG5leHBvcnQgY29uc3QgZnJvbVR5cGVkQXJyYXkgPSBhcnIgPT4gU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLCBhcnIpXG4iXX0= | ||
const toTypedArray = exports.toTypedArray = str => new Uint8Array(str.split('').map(char => char.charCodeAt(0))); | ||
const fromTypedArray = exports.fromTypedArray = arr => String.fromCharCode.apply(null, arr); | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb21tb24uanMiXSwibmFtZXMiOlsiTE9HX0xFVkVMX05PTkUiLCJMT0dfTEVWRUxfRVJST1IiLCJMT0dfTEVWRUxfV0FSTiIsIkxPR19MRVZFTF9JTkZPIiwiTE9HX0xFVkVMX0RFQlVHIiwiTE9HX0xFVkVMX0FMTCIsInRvVHlwZWRBcnJheSIsInN0ciIsIlVpbnQ4QXJyYXkiLCJzcGxpdCIsIm1hcCIsImNoYXIiLCJjaGFyQ29kZUF0IiwiZnJvbVR5cGVkQXJyYXkiLCJhcnIiLCJTdHJpbmciLCJmcm9tQ2hhckNvZGUiLCJhcHBseSJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBTyxNQUFNQSwwQ0FBaUIsSUFBdkI7QUFDQSxNQUFNQyw0Q0FBa0IsRUFBeEI7QUFDQSxNQUFNQywwQ0FBaUIsRUFBdkI7QUFDQSxNQUFNQywwQ0FBaUIsRUFBdkI7QUFDQSxNQUFNQyw0Q0FBa0IsRUFBeEI7QUFDQSxNQUFNQyx3Q0FBZ0IsQ0FBdEI7O0FBRUEsTUFBTUMsc0NBQWVDLE9BQU8sSUFBSUMsVUFBSixDQUFlRCxJQUFJRSxLQUFKLENBQVUsRUFBVixFQUFjQyxHQUFkLENBQWtCQyxRQUFRQSxLQUFLQyxVQUFMLENBQWdCLENBQWhCLENBQTFCLENBQWYsQ0FBNUI7QUFDQSxNQUFNQywwQ0FBaUJDLE9BQU9DLE9BQU9DLFlBQVAsQ0FBb0JDLEtBQXBCLENBQTBCLElBQTFCLEVBQWdDSCxHQUFoQyxDQUE5QiIsImZpbGUiOiJjb21tb24uanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgTE9HX0xFVkVMX05PTkUgPSAxMDAwXG5leHBvcnQgY29uc3QgTE9HX0xFVkVMX0VSUk9SID0gNDBcbmV4cG9ydCBjb25zdCBMT0dfTEVWRUxfV0FSTiA9IDMwXG5leHBvcnQgY29uc3QgTE9HX0xFVkVMX0lORk8gPSAyMFxuZXhwb3J0IGNvbnN0IExPR19MRVZFTF9ERUJVRyA9IDEwXG5leHBvcnQgY29uc3QgTE9HX0xFVkVMX0FMTCA9IDBcblxuZXhwb3J0IGNvbnN0IHRvVHlwZWRBcnJheSA9IHN0ciA9PiBuZXcgVWludDhBcnJheShzdHIuc3BsaXQoJycpLm1hcChjaGFyID0+IGNoYXIuY2hhckNvZGVBdCgwKSkpXG5leHBvcnQgY29uc3QgZnJvbVR5cGVkQXJyYXkgPSBhcnIgPT4gU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLCBhcnIpXG4iXX0= |
@@ -24,4 +24,4 @@ 'use strict'; | ||
var CHUNK_SIZE = 16384; | ||
var WINDOW_BITS = 15; | ||
const CHUNK_SIZE = 16384; | ||
const WINDOW_BITS = 15; | ||
@@ -34,12 +34,6 @@ /** | ||
function Compressor(inflatedReady, deflatedReady) { | ||
var _this = this; | ||
this.inflatedReady = inflatedReady; | ||
this.deflatedReady = deflatedReady; | ||
this._inflate = inflater(function (chunk) { | ||
return _this.inflatedReady(chunk.buffer.slice(chunk.byteOffset, chunk.byteOffset + chunk.length)); | ||
}); | ||
this._deflate = deflater(function (chunk) { | ||
return _this.deflatedReady(chunk.buffer.slice(chunk.byteOffset, chunk.byteOffset + chunk.length)); | ||
}); | ||
this._inflate = inflater(chunk => this.inflatedReady(chunk.buffer.slice(chunk.byteOffset, chunk.byteOffset + chunk.length))); | ||
this._deflate = deflater(chunk => this.deflatedReady(chunk.buffer.slice(chunk.byteOffset, chunk.byteOffset + chunk.length))); | ||
} | ||
@@ -56,4 +50,4 @@ | ||
function deflater(emit) { | ||
var stream = new _zstream2.default(); | ||
var status = (0, _deflate.deflateInit2)(stream, _constants.Z_DEFAULT_COMPRESSION, _constants.Z_DEFLATED, WINDOW_BITS, 8, _constants.Z_DEFAULT_STRATEGY); | ||
const stream = new _zstream2.default(); | ||
let status = (0, _deflate.deflateInit2)(stream, _constants.Z_DEFAULT_COMPRESSION, _constants.Z_DEFLATED, WINDOW_BITS, 8, _constants.Z_DEFAULT_STRATEGY); | ||
if (status !== _constants.Z_OK) { | ||
@@ -71,6 +65,6 @@ throw new Error('Problem initializing deflate stream: ' + _messages2.default[status]); | ||
var status = void 0; | ||
var output = void 0; | ||
var start = void 0; | ||
var ret = true; | ||
let status; | ||
let output; | ||
let start; | ||
let ret = true; | ||
@@ -108,5 +102,5 @@ do { | ||
function inflater(emit) { | ||
var stream = new _zstream2.default(); | ||
let stream = new _zstream2.default(); | ||
var status = (0, _inflate.inflateInit2)(stream, WINDOW_BITS); | ||
const status = (0, _inflate.inflateInit2)(stream, WINDOW_BITS); | ||
if (status !== _constants.Z_OK) { | ||
@@ -119,3 +113,3 @@ throw new Error('Problem initializing inflate stream: ' + _messages2.default[status]); | ||
var start = void 0; | ||
let start; | ||
stream.input = data; | ||
@@ -125,5 +119,4 @@ stream.next_in = 0; | ||
var status = void 0, | ||
output = void 0; | ||
var ret = true; | ||
let status, output; | ||
let ret = true; | ||
@@ -158,2 +151,2 @@ do { | ||
} | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb21wcmVzc2lvbi5qcyJdLCJuYW1lcyI6WyJDb21wcmVzc29yIiwiQ0hVTktfU0laRSIsIldJTkRPV19CSVRTIiwiaW5mbGF0ZWRSZWFkeSIsImRlZmxhdGVkUmVhZHkiLCJfaW5mbGF0ZSIsImluZmxhdGVyIiwiY2h1bmsiLCJidWZmZXIiLCJzbGljZSIsImJ5dGVPZmZzZXQiLCJsZW5ndGgiLCJfZGVmbGF0ZSIsImRlZmxhdGVyIiwicHJvdG90eXBlIiwiaW5mbGF0ZSIsIlVpbnQ4QXJyYXkiLCJkZWZsYXRlIiwiZW1pdCIsInN0cmVhbSIsInN0YXR1cyIsIkVycm9yIiwiZGF0YSIsInVuZGVmaW5lZCIsImlucHV0IiwibmV4dF9pbiIsImF2YWlsX2luIiwib3V0cHV0Iiwic3RhcnQiLCJyZXQiLCJhdmFpbF9vdXQiLCJuZXh0X291dCIsInN1YmFycmF5Il0sIm1hcHBpbmdzIjoiOzs7OztrQkFrQndCQSxVOztBQWxCeEI7Ozs7QUFDQTs7QUFDQTs7QUFDQTs7OztBQUNBOzs7O0FBTUEsSUFBTUMsYUFBYSxLQUFuQjtBQUNBLElBQU1DLGNBQWMsRUFBcEI7O0FBRUE7Ozs7O0FBS2UsU0FBU0YsVUFBVCxDQUFxQkcsYUFBckIsRUFBb0NDLGFBQXBDLEVBQW1EO0FBQUE7O0FBQ2hFLE9BQUtELGFBQUwsR0FBcUJBLGFBQXJCO0FBQ0EsT0FBS0MsYUFBTCxHQUFxQkEsYUFBckI7QUFDQSxPQUFLQyxRQUFMLEdBQWdCQyxTQUFTO0FBQUEsV0FBUyxNQUFLSCxhQUFMLENBQW1CSSxNQUFNQyxNQUFOLENBQWFDLEtBQWIsQ0FBbUJGLE1BQU1HLFVBQXpCLEVBQXFDSCxNQUFNRyxVQUFOLEdBQW1CSCxNQUFNSSxNQUE5RCxDQUFuQixDQUFUO0FBQUEsR0FBVCxDQUFoQjtBQUNBLE9BQUtDLFFBQUwsR0FBZ0JDLFNBQVM7QUFBQSxXQUFTLE1BQUtULGFBQUwsQ0FBbUJHLE1BQU1DLE1BQU4sQ0FBYUMsS0FBYixDQUFtQkYsTUFBTUcsVUFBekIsRUFB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Q0QsR0FyQ0Q7QUFzQ0QiLCJmaWxlIjoiY29tcHJlc3Npb24uanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgWlN0cmVhbSBmcm9tICdwYWtvL2xpYi96bGliL3pzdHJlYW0nXG5pbXBvcnQgeyBkZWZsYXRlSW5pdDIsIGRlZmxhdGUgfSBmcm9tICdwYWtvL2xpYi96bGliL2RlZmxhdGUnXG5pbXBvcnQgeyBpbmZsYXRlLCBpbmZsYXRlSW5pdDIgfSBmcm9tICdwYWtvL2xpYi96bGliL2luZmxhdGUnXG5pbXBvcnQgbWVzc2FnZXMgZnJvbSAncGFrby9saWIvemxpYi9tZXNzYWdlcy5qcydcbmltcG9ydCB7XG4gIFpfTk9fRkxVU0gsIFpfU1lOQ19GTFVTSCwgWl9PSyxcbiAgWl9TVFJFQU1fRU5ELCBaX0RFRkFVTFRfQ09NUFJFU1NJT04sXG4gIFpfREVGQVVMVF9TVFJBVEVHWSwgWl9ERUZMQVRFRFxufSBmcm9tICdwYWtvL2xpYi96bGliL2NvbnN0YW50cydcblxuY29uc3QgQ0hVTktfU0laRSA9IDE2Mzg0XG5jb25zdCBXSU5ET1dfQklUUyA9IDE1XG5cbi8qKlxuICogSGFuZGxlcyBkZS0vY29tcHJlc3Npb24gdmlhICNpbmZsYXRlKCkgYW5kICNkZWZsYXRlKCksIGNhbGxzIHlvdSBiYWNrIHZpYSAjZGVmbGF0ZWRSZWFkeSgpIGFuZCAjaW5mbGF0ZWRSZWFkeSgpLlxuICogVGhlIGNodW5rIHdlIGdldCBmcm9tIGRlZmxhdGVyIGlzIGFjdHVhbGx5IGEgdmlldyBvZiBhIDE2a0IgYXJyYXlidWZmZXIsIHNvIHdlIG5lZWQgdG8gY29weSB0aGUgcmVsZXZhbnQgcGFydHNcbiAqIG1lbW9yeSB0byBhIG5ldyBhcnJheWJ1ZmZlci5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gQ29tcHJlc3NvciAoaW5mbGF0ZWRSZWFkeSwgZGVmbGF0ZWRSZWFkeSkge1xuICB0aGlzLmluZmxhdGVkUmVhZHkgPSBpbmZsYXRlZFJlYWR5XG4gIHRoaXMuZGVmbGF0ZWRSZWFkeSA9IGRlZmxhdGVkUmVhZHlcbiAgdGhpcy5faW5mbGF0ZSA9IGluZmxhdGVyKGNodW5rID0+IHRoaXMuaW5mbGF0ZWRSZWFkeShjaHVuay5idWZmZXIuc2xpY2UoY2h1bmsuYnl0ZU9mZnNldCwgY2h1bmsuYnl0ZU9mZnNldCArIGNodW5rLmxlbmd0aCkpKVxuICB0aGlzLl9kZWZsYXRlID0gZGVmbGF0ZXIoY2h1bmsgPT4gdGhpcy5kZWZsYXRlZFJlYWR5KGNodW5rLmJ1ZmZlci5zbGljZShjaHVuay5ieXRlT2Zmc2V0LCBjaHVuay5ieXRlT2Zmc2V0ICsgY2h1bmsubGVuZ3RoKSkpXG59XG5cbkNvbXByZXNzb3IucHJvdG90eXBlLmluZmxhdGUgPSBmdW5jdGlvbiAoYnVmZmVyKSB7XG4gIHRoaXMuX2luZmxhdGUobmV3IFVpbnQ4QXJyYXkoYnVmZmVyKSlcbn1cblxuQ29tcHJlc3Nvci5wcm90b3R5cGUuZGVmbGF0ZSA9IGZ1bmN0aW9uIChidWZmZXIpIHtcbiAgdGhpcy5fZGVmbGF0ZShuZXcgVWludDhBcnJheShidWZmZXIpKVxufVxuXG5mdW5jdGlvbiBkZWZsYXRlciAoZW1pdCkge1xuICBjb25zdCBzdHJlYW0gPSBuZXcgWlN0cmVhbSgpXG4gIGxldCBzdGF0dXMgPSBkZWZsYXRlSW5pdDIoc3RyZWFtLCBaX0RFRkFVTFRfQ09NUFJFU1NJT04sIFpfREVGTEFURUQsIFdJTkRPV19CSVRTLCA4LCBaX0RFRkFVTFRfU1RSQVRFR1kpXG4gIGlmIChzdGF0dXMgIT09IFpfT0spIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1Byb2JsZW0gaW5pdGlhbGl6aW5nIGRlZmxhdGUgc3RyZWFtOiAnICsgbWVzc2FnZXNbc3RhdHVzXSlcbiAgfVxuXG4gIHJldHVybiBmdW5jdGlvbiAoZGF0YSkge1xuICAgIGlmIChkYXRhID09PSB1bmRlZmluZWQpIHJldHVybiBlbWl0KClcblxuICAgIC8vIEF0dGFjaCB0aGUgaW5wdXQgZGF0YVxuICAgIHN0cmVhbS5pbnB1dCA9IGRhdGFcbiAgICBzdHJlYW0ubmV4dF9pbiA9IDBcbiAgICBzdHJlYW0uYXZhaWxfaW4gPSBzdHJlYW0uaW5wdXQubGVuZ3RoXG5cbiAgICBsZXQgc3RhdHVzXG4gICAgbGV0IG91dHB1dFxuICAgIGxldCBzdGFydFxuICAgIGxldCByZXQgPSB0cnVlXG5cbiAgICBkbyB7XG4gICAgICAvLyBXaGVuIHRoZSBzdHJlYW0gZ2V0cyBmdWxsLCB3ZSBuZWVkIHRvIGNyZWF0ZSBuZXcgc3BhY2UuXG4gICAgICBpZiAoc3RyZWFtLmF2YWlsX291dCA9PT0gMCkge1xuICAgICAgICBzdHJlYW0ub3V0cHV0ID0gbmV3IFVpbnQ4QXJyYXkoQ0hVTktfU0laRSlcbiAgICAgICAgc3RhcnQgPSBzdHJlYW0ubmV4dF9vdXQgPSAwXG4gICAgICAgIHN0cmVhbS5hdmFpbF9vdXQgPSBDSFVOS19TSVpFXG4gICAgICB9XG5cbiAgICAgIC8vIFBlcmZvcm0gdGhlIGRlZmxhdGVcbiAgICAgIHN0YXR1cyA9IGRlZmxhdGUoc3RyZWFtLCBaX1NZTkNfRkxVU0gpXG4gICAgICBpZiAoc3RhdHVzICE9PSBaX1NUUkVBTV9FTkQgJiYgc3RhdHVzICE9PSBaX09LKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignRGVmbGF0ZSBwcm9ibGVtOiAnICsgbWVzc2FnZXNbc3RhdHVzXSlcbiAgICAgIH1cblxuICAgICAgLy8gSWYgdGhlIG91dHB1dCBidWZmZXIgZ290IGZ1bGwsIGZsdXNoIHRoZSBkYXRhLlxuICAgICAgaWYgKHN0cmVhbS5hdmFpbF9vdXQgPT09IDAgJiYgc3RyZWFtLm5leHRfb3V0ID4gc3RhcnQpIHtcbiAgICAgICAgb3V0cHV0ID0gc3RyZWFtLm91dHB1dC5zdWJhcnJheShzdGFydCwgc3RhcnQgPSBzdHJlYW0ubmV4dF9vdXQpXG4gICAgICAgIHJldCA9IGVtaXQob3V0cHV0KVxuICAgICAgfVxuICAgIH0gd2hpbGUgKChzdHJlYW0uYXZhaWxfaW4gPiAwIHx8IHN0cmVhbS5hdmFpbF9vdXQgPT09IDApICYmIHN0YXR1cyAhPT0gWl9TVFJFQU1fRU5EKVxuXG4gICAgLy8gRW1pdCB3aGF0ZXZlciBpcyBsZWZ0IGluIG91dHB1dC5cbiAgICBpZiAoc3RyZWFtLm5leHRfb3V0ID4gc3RhcnQpIHtcbiAgICAgIG91dHB1dCA9IHN0cmVhbS5vdXRwdXQuc3ViYXJyYXkoc3RhcnQsIHN0YXJ0ID0gc3RyZWFtLm5leHRfb3V0KVxuICAgICAgcmV0ID0gZW1pdChvdXRwdXQpXG4gICAgfVxuICAgIHJldHVybiByZXRcbiAgfVxufVxuXG5mdW5jdGlvbiBpbmZsYXRlciAoZW1pdCkge1xuICBsZXQgc3RyZWFtID0gbmV3IFpTdHJlYW0oKVxuXG4gIGNvbnN0IHN0YXR1cyA9IGluZmxhdGVJbml0MihzdHJlYW0sIFdJTkRPV19CSVRTKVxuICBpZiAoc3RhdHVzICE9PSBaX09LKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdQcm9ibGVtIGluaXRpYWxpemluZyBpbmZsYXRlIHN0cmVhbTogJyArIG1lc3NhZ2VzW3N0YXR1c10pXG4gIH1cblxuICByZXR1cm4gZnVuY3Rpb24gKGRhdGEpIHtcbiAgICBpZiAoZGF0YSA9PT0gdW5kZWZpbmVkKSByZXR1cm4gZW1pdCgpXG5cbiAgICBsZXQgc3RhcnRcbiAgICBzdHJlYW0uaW5wdXQgPSBkYXRhXG4gICAgc3RyZWFtLm5leHRfaW4gPSAwXG4gICAgc3RyZWFtLmF2YWlsX2luID0gc3RyZWFtLmlucHV0Lmxlbmd0aFxuXG4gICAgbGV0IHN0YXR1cywgb3V0cHV0XG4gICAgbGV0IHJldCA9IHRydWVcblxuICAgIGRvIHtcbiAgICAgIGlmIChzdHJlYW0uYXZhaWxfb3V0ID09PSAwKSB7XG4gICAgICAgIHN0cmVhbS5vdXRwdXQgPSBuZXcgVWludDhBcnJheShDSFVOS19TSVpFKVxuICAgICAgICBzdGFydCA9IHN0cmVhbS5uZXh0X291dCA9IDBcbiAgICAgICAgc3RyZWFtLmF2YWlsX291dCA9IENIVU5LX1NJWkVcbiAgICAgIH1cblxuICAgICAgc3RhdHVzID0gaW5mbGF0ZShzdHJlYW0sIFpfTk9fRkxVU0gpXG4gICAgICBpZiAoc3RhdHVzICE9PSBaX1NUUkVBTV9FTkQgJiYgc3RhdHVzICE9PSBaX09LKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignaW5mbGF0ZSBwcm9ibGVtOiAnICsgbWVzc2FnZXNbc3RhdHVzXSlcbiAgICAgIH1cblxuICAgICAgaWYgKHN0cmVhbS5uZXh0X291dCkge1xuICAgICAgICBpZiAoc3RyZWFtLmF2YWlsX291dCA9PT0gMCB8fCBzdGF0dXMgPT09IFpfU1RSRUFNX0VORCkge1xuICAgICAgICAgIG91dHB1dCA9IHN0cmVhbS5vdXRwdXQuc3ViYXJyYXkoc3RhcnQsIHN0YXJ0ID0gc3RyZWFtLm5leHRfb3V0KVxuICAgICAgICAgIHJldCA9IGVtaXQob3V0cHV0KVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSB3aGlsZSAoKHN0cmVhbS5hdmFpbF9pbiA+IDApICYmIHN0YXR1cyAhPT0gWl9TVFJFQU1fRU5EKVxuXG4gICAgaWYgKHN0cmVhbS5uZXh0X291dCA+IHN0YXJ0KSB7XG4gICAgICBvdXRwdXQgPSBzdHJlYW0ub3V0cHV0LnN1YmFycmF5KHN0YXJ0LCBzdGFydCA9IHN0cmVhbS5uZXh0X291dClcbiAgICAgIHJldCA9IGVtaXQob3V0cHV0KVxuICAgIH1cblxuICAgIHJldHVybiByZXRcbiAgfVxufVxuIl19 | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb21wcmVzc2lvbi5qcyJdLCJuYW1lcyI6WyJDb21wcmVzc29yIiwiQ0hVTktfU0laRSIsIldJTkRPV19CSVRTIiwiaW5mbGF0ZWRSZWFkeSIsImRlZmxhdGVkUmVhZHkiLCJfaW5mbGF0ZSIsImluZmxhdGVyIiwiY2h1bmsiLCJidWZmZXIiLCJzbGljZSIsImJ5dGVPZmZzZXQiLCJsZW5ndGgiLCJfZGVmbGF0ZSIsImRlZmxhdGVyIiwicHJvdG90eXBlIiwiaW5mbGF0ZSIsIlVpbnQ4QXJyYXkiLCJkZWZsYXRlIiwiZW1pdCIsInN0cmVhbSIsInN0YXR1cyIsIkVycm9yIiwiZGF0YSIsInVuZGVmaW5lZCIsImlucHV0IiwibmV4dF9pbiIsImF2YWlsX2luIiwib3V0cHV0Iiwic3RhcnQiLCJyZXQiLCJhdmFpbF9vdXQiLCJuZXh0X291dCIsInN1YmFycmF5Il0sIm1hcHBpbmdzIjoiOzs7OztrQkFrQndCQSxVOztBQWxCeEI7Ozs7QUFDQTs7QUFDQTs7QUFDQTs7OztBQUNBOzs7O0FBTUEsTUFBTUMsYUFBYSxLQUFuQjtBQUNBLE1BQU1DLGNBQWMsRUFBcEI7O0FBRUE7Ozs7O0FBS2UsU0FBU0YsVUFBVCxDQUFxQkcsYUFBckIsRUFBb0NDLGFBQXBDLEVBQW1EO0FBQ2hFLE9BQUtELGFBQUwsR0FBcUJBLGFBQXJCO0FBQ0EsT0FBS0MsYUFBTCxHQUFxQkEsYUFBckI7QUFDQSxPQUFLQyxRQUFMLEdBQWdCQyxTQUFTQyxTQUFTLEtBQUtKLGFBQUwsQ0FBbUJJLE1BQU1DLE1BQU4sQ0FBYUMsS0FBYixDQUFtQkYsTUFBTUcsVUFBekIsRUFBcUNILE1BQU1HLFVBQU4sR0FBbUJILE1BQU1JLE1BQTlELENBQW5CLENBQWxCLENBQWhCO0FBQ0EsT0FBS0MsUUFBTCxHQUFnQkMsU0FBU04sU0FBUyxLQUFLSCxhQUFMLENBQW1CRyxNQUFNQyxNQUFOLENBQWFDLEtBQWIsQ0FBbUJGLE1BQU1HLFVBQXpCLEVBQXFDSCxNQUFNRyxVQUFOLEdBQW1CSCxN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cyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBaU3RyZWFtIGZyb20gJ3Bha28vbGliL3psaWIvenN0cmVhbSdcbmltcG9ydCB7IGRlZmxhdGVJbml0MiwgZGVmbGF0ZSB9IGZyb20gJ3Bha28vbGliL3psaWIvZGVmbGF0ZSdcbmltcG9ydCB7IGluZmxhdGUsIGluZmxhdGVJbml0MiB9IGZyb20gJ3Bha28vbGliL3psaWIvaW5mbGF0ZSdcbmltcG9ydCBtZXNzYWdlcyBmcm9tICdwYWtvL2xpYi96bGliL21lc3NhZ2VzLmpzJ1xuaW1wb3J0IHtcbiAgWl9OT19GTFVTSCwgWl9TWU5DX0ZMVVNILCBaX09LLFxuICBaX1NUUkVBTV9FTkQsIFpfREVGQVVMVF9DT01QUkVTU0lPTixcbiAgWl9ERUZBVUxUX1NUUkFURUdZLCBaX0RFRkxBVEVEXG59IGZyb20gJ3Bha28vbGliL3psaWIvY29uc3RhbnRzJ1xuXG5jb25zdCBDSFVOS19TSVpFID0gMTYzODRcbmNvbnN0IFdJTkRPV19CSVRTID0gMTVcblxuLyoqXG4gKiBIYW5kbGVzIGRlLS9jb21wcmVzc2lvbiB2aWEgI2luZmxhdGUoKSBhbmQgI2RlZmxhdGUoKSwgY2FsbHMgeW91IGJhY2sgdmlhICNkZWZsYXRlZFJlYWR5KCkgYW5kICNpbmZsYXRlZFJlYWR5KCkuXG4gKiBUaGUgY2h1bmsgd2UgZ2V0IGZyb20gZGVmbGF0ZXIgaXMgYWN0dWFsbHkgYSB2aWV3IG9mIGEgMTZrQiBhcnJheWJ1ZmZlciwgc28gd2UgbmVlZCB0byBjb3B5IHRoZSByZWxldmFudCBwYXJ0c1xuICogbWVtb3J5IHRvIGEgbmV3IGFycmF5YnVmZmVyLlxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBDb21wcmVzc29yIChpbmZsYXRlZFJlYWR5LCBkZWZsYXRlZFJlYWR5KSB7XG4gIHRoaXMuaW5mbGF0ZWRSZWFkeSA9IGluZmxhdGVkUmVhZHlcbiAgdGhpcy5kZWZsYXRlZFJlYWR5ID0gZGVmbGF0ZWRSZWFkeVxuICB0aGlzLl9pbmZsYXRlID0gaW5mbGF0ZXIoY2h1bmsgPT4gdGhpcy5pbmZsYXRlZFJlYWR5KGNodW5rLmJ1ZmZlci5zbGljZShjaHVuay5ieXRlT2Zmc2V0LCBjaHVuay5ieXRlT2Zmc2V0ICsgY2h1bmsubGVuZ3RoKSkpXG4gIHRoaXMuX2RlZmxhdGUgPSBkZWZsYXRlcihjaHVuayA9PiB0aGlzLmRlZmxhdGVkUmVhZHkoY2h1bmsuYnVmZmVyLnNsaWNlKGNodW5rLmJ5dGVPZmZzZXQsIGNodW5rLmJ5dGVPZmZzZXQgKyBjaHVuay5sZW5ndGgpKSlcbn1cblxuQ29tcHJlc3Nvci5wcm90b3R5cGUuaW5mbGF0ZSA9IGZ1bmN0aW9uIChidWZmZXIpIHtcbiAgdGhpcy5faW5mbGF0ZShuZXcgVWludDhBcnJheShidWZmZXIpKVxufVxuXG5Db21wcmVzc29yLnByb3RvdHlwZS5kZWZsYXRlID0gZnVuY3Rpb24gKGJ1ZmZlcikge1xuICB0aGlzLl9kZWZsYXRlKG5ldyBVaW50OEFycmF5KGJ1ZmZlcikpXG59XG5cbmZ1bmN0aW9uIGRlZmxhdGVyIChlbWl0KSB7XG4gIGNvbnN0IHN0cmVhbSA9IG5ldyBaU3RyZWFtKClcbiAgbGV0IHN0YXR1cyA9IGRlZmxhdGVJbml0MihzdHJlYW0sIFpfREVGQVVMVF9DT01QUkVTU0lPTiwgWl9ERUZMQVRFRCwgV0lORE9XX0JJVFMsIDgsIFpfREVGQVVMVF9TVFJBVEVHWSlcbiAgaWYgKHN0YXR1cyAhPT0gWl9PSykge1xuICAgIHRocm93IG5ldyBFcnJvcignUHJvYmxlbSBpbml0aWFsaXppbmcgZGVmbGF0ZSBzdHJlYW06ICcgKyBtZXNzYWdlc1tzdGF0dXNdKVxuICB9XG5cbiAgcmV0dXJuIGZ1bmN0aW9uIChkYXRhKSB7XG4gICAgaWYgKGRhdGEgPT09IHVuZGVmaW5lZCkgcmV0dXJuIGVtaXQoKVxuXG4gICAgLy8gQXR0YWNoIHRoZSBpbnB1dCBkYXRhXG4gICAgc3RyZWFtLmlucHV0ID0gZGF0YVxuICAgIHN0cmVhbS5uZXh0X2luID0gMFxuICAgIHN0cmVhbS5hdmFpbF9pbiA9IHN0cmVhbS5pbnB1dC5sZW5ndGhcblxuICAgIGxldCBzdGF0dXNcbiAgICBsZXQgb3V0cHV0XG4gICAgbGV0IHN0YXJ0XG4gICAgbGV0IHJldCA9IHRydWVcblxuICAgIGRvIHtcbiAgICAgIC8vIFdoZW4gdGhlIHN0cmVhbSBnZXRzIGZ1bGwsIHdlIG5lZWQgdG8gY3JlYXRlIG5ldyBzcGFjZS5cbiAgICAgIGlmIChzdHJlYW0uYXZhaWxfb3V0ID09PSAwKSB7XG4gICAgICAgIHN0cmVhbS5vdXRwdXQgPSBuZXcgVWludDhBcnJheShDSFVOS19TSVpFKVxuICAgICAgICBzdGFydCA9IHN0cmVhbS5uZXh0X291dCA9IDBcbiAgICAgICAgc3RyZWFtLmF2YWlsX291dCA9IENIVU5LX1NJWkVcbiAgICAgIH1cblxuICAgICAgLy8gUGVyZm9ybSB0aGUgZGVmbGF0ZVxuICAgICAgc3RhdHVzID0gZGVmbGF0ZShzdHJlYW0sIFpfU1lOQ19GTFVTSClcbiAgICAgIGlmIChzdGF0dXMgIT09IFpfU1RSRUFNX0VORCAmJiBzdGF0dXMgIT09IFpfT0spIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdEZWZsYXRlIHByb2JsZW06ICcgKyBtZXNzYWdlc1tzdGF0dXNdKVxuICAgICAgfVxuXG4gICAgICAvLyBJZiB0aGUgb3V0cHV0IGJ1ZmZlciBnb3QgZnVsbCwgZmx1c2ggdGhlIGRhdGEuXG4gICAgICBpZiAoc3RyZWFtLmF2YWlsX291dCA9PT0gMCAmJiBzdHJlYW0ubmV4dF9vdXQgPiBzdGFydCkge1xuICAgICAgICBvdXRwdXQgPSBzdHJlYW0ub3V0cHV0LnN1YmFycmF5KHN0YXJ0LCBzdGFydCA9IHN0cmVhbS5uZXh0X291dClcbiAgICAgICAgcmV0ID0gZW1pdChvdXRwdXQpXG4gICAgICB9XG4gICAgfSB3aGlsZSAoKHN0cmVhbS5hdmFpbF9pbiA+IDAgfHwgc3RyZWFtLmF2YWlsX291dCA9PT0gMCkgJiYgc3RhdHVzICE9PSBaX1NUUkVBTV9FTkQpXG5cbiAgICAvLyBFbWl0IHdoYXRldmVyIGlzIGxlZnQgaW4gb3V0cHV0LlxuICAgIGlmIChzdHJlYW0ubmV4dF9vdXQgPiBzdGFydCkge1xuICAgICAgb3V0cHV0ID0gc3RyZWFtLm91dHB1dC5zdWJhcnJheShzdGFydCwgc3RhcnQgPSBzdHJlYW0ubmV4dF9vdXQpXG4gICAgICByZXQgPSBlbWl0KG91dHB1dClcbiAgICB9XG4gICAgcmV0dXJuIHJldFxuICB9XG59XG5cbmZ1bmN0aW9uIGluZmxhdGVyIChlbWl0KSB7XG4gIGxldCBzdHJlYW0gPSBuZXcgWlN0cmVhbSgpXG5cbiAgY29uc3Qgc3RhdHVzID0gaW5mbGF0ZUluaXQyKHN0cmVhbSwgV0lORE9XX0JJVFMpXG4gIGlmIChzdGF0dXMgIT09IFpfT0spIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1Byb2JsZW0gaW5pdGlhbGl6aW5nIGluZmxhdGUgc3RyZWFtOiAnICsgbWVzc2FnZXNbc3RhdHVzXSlcbiAgfVxuXG4gIHJldHVybiBmdW5jdGlvbiAoZGF0YSkge1xuICAgIGlmIChkYXRhID09PSB1bmRlZmluZWQpIHJldHVybiBlbWl0KClcblxuICAgIGxldCBzdGFydFxuICAgIHN0cmVhbS5pbnB1dCA9IGRhdGFcbiAgICBzdHJlYW0ubmV4dF9pbiA9IDBcbiAgICBzdHJlYW0uYXZhaWxfaW4gPSBzdHJlYW0uaW5wdXQubGVuZ3RoXG5cbiAgICBsZXQgc3RhdHVzLCBvdXRwdXRcbiAgICBsZXQgcmV0ID0gdHJ1ZVxuXG4gICAgZG8ge1xuICAgICAgaWYgKHN0cmVhbS5hdmFpbF9vdXQgPT09IDApIHtcbiAgICAgICAgc3RyZWFtLm91dHB1dCA9IG5ldyBVaW50OEFycmF5KENIVU5LX1NJWkUpXG4gICAgICAgIHN0YXJ0ID0gc3RyZWFtLm5leHRfb3V0ID0gMFxuICAgICAgICBzdHJlYW0uYXZhaWxfb3V0ID0gQ0hVTktfU0laRVxuICAgICAgfVxuXG4gICAgICBzdGF0dXMgPSBpbmZsYXRlKHN0cmVhbSwgWl9OT19GTFVTSClcbiAgICAgIGlmIChzdGF0dXMgIT09IFpfU1RSRUFNX0VORCAmJiBzdGF0dXMgIT09IFpfT0spIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdpbmZsYXRlIHByb2JsZW06ICcgKyBtZXNzYWdlc1tzdGF0dXNdKVxuICAgICAgfVxuXG4gICAgICBpZiAoc3RyZWFtLm5leHRfb3V0KSB7XG4gICAgICAgIGlmIChzdHJlYW0uYXZhaWxfb3V0ID09PSAwIHx8IHN0YXR1cyA9PT0gWl9TVFJFQU1fRU5EKSB7XG4gICAgICAgICAgb3V0cHV0ID0gc3RyZWFtLm91dHB1dC5zdWJhcnJheShzdGFydCwgc3RhcnQgPSBzdHJlYW0ubmV4dF9vdXQpXG4gICAgICAgICAgcmV0ID0gZW1pdChvdXRwdXQpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IHdoaWxlICgoc3RyZWFtLmF2YWlsX2luID4gMCkgJiYgc3RhdHVzICE9PSBaX1NUUkVBTV9FTkQpXG5cbiAgICBpZiAoc3RyZWFtLm5leHRfb3V0ID4gc3RhcnQpIHtcbiAgICAgIG91dHB1dCA9IHN0cmVhbS5vdXRwdXQuc3ViYXJyYXkoc3RhcnQsIHN0YXJ0ID0gc3RyZWFtLm5leHRfb3V0KVxuICAgICAgcmV0ID0gZW1pdChvdXRwdXQpXG4gICAgfVxuXG4gICAgcmV0dXJuIHJldFxuICB9XG59XG4iXX0= |
@@ -6,2 +6,3 @@ 'use strict'; | ||
}); | ||
exports.LOG_LEVEL_ALL = exports.LOG_LEVEL_DEBUG = exports.LOG_LEVEL_INFO = exports.LOG_LEVEL_WARN = exports.LOG_LEVEL_ERROR = exports.LOG_LEVEL_NONE = undefined; | ||
@@ -12,3 +13,3 @@ var _common = require('./common'); | ||
enumerable: true, | ||
get: function get() { | ||
get: function () { | ||
return _common.LOG_LEVEL_NONE; | ||
@@ -19,3 +20,3 @@ } | ||
enumerable: true, | ||
get: function get() { | ||
get: function () { | ||
return _common.LOG_LEVEL_ERROR; | ||
@@ -26,3 +27,3 @@ } | ||
enumerable: true, | ||
get: function get() { | ||
get: function () { | ||
return _common.LOG_LEVEL_WARN; | ||
@@ -33,3 +34,3 @@ } | ||
enumerable: true, | ||
get: function get() { | ||
get: function () { | ||
return _common.LOG_LEVEL_INFO; | ||
@@ -40,3 +41,3 @@ } | ||
enumerable: true, | ||
get: function get() { | ||
get: function () { | ||
return _common.LOG_LEVEL_DEBUG; | ||
@@ -47,3 +48,3 @@ } | ||
enumerable: true, | ||
get: function get() { | ||
get: function () { | ||
return _common.LOG_LEVEL_ALL; | ||
@@ -55,11 +56,7 @@ } | ||
Object.keys(_client).forEach(function (key) { | ||
if (key === "default" || key === "__esModule") return; | ||
Object.defineProperty(exports, key, { | ||
enumerable: true, | ||
get: function get() { | ||
return _client[key]; | ||
} | ||
}); | ||
}); | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJMT0dfTEVWRUxfTk9ORSIsIkxPR19MRVZFTF9FUlJPUiIsIkxPR19MRVZFTF9XQVJOIiwiTE9HX0xFVkVMX0lORk8iLCJMT0dfTEVWRUxfREVCVUciLCJMT0dfTEVWRUxfQUxMIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OzttQkFDRUEsYzs7Ozs7O21CQUNBQyxlOzs7Ozs7bUJBQ0FDLGM7Ozs7OzttQkFDQUMsYzs7Ozs7O21CQUNBQyxlOzs7Ozs7bUJBQ0FDLGE7Ozs7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSIsImZpbGUiOiJpbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7XG4gIExPR19MRVZFTF9OT05FLFxuICBMT0dfTEVWRUxfRVJST1IsXG4gIExPR19MRVZFTF9XQVJOLFxuICBMT0dfTEVWRUxfSU5GTyxcbiAgTE9HX0xFVkVMX0RFQlVHLFxuICBMT0dfTEVWRUxfQUxMXG59IGZyb20gJy4vY29tbW9uJ1xuXG5leHBvcnQgKiBmcm9tICcuL2NsaWVudCdcbiJdfQ== | ||
var _client2 = _interopRequireDefault(_client); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
exports.default = _client2.default; | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJMT0dfTEVWRUxfTk9ORSIsIkxPR19MRVZFTF9FUlJPUiIsIkxPR19MRVZFTF9XQVJOIiwiTE9HX0xFVkVMX0lORk8iLCJMT0dfTEVWRUxfREVCVUciLCJMT0dfTEVWRUxfQUxMIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7bUJBR0VBLGM7Ozs7OzttQkFDQUMsZTs7Ozs7O21CQUNBQyxjOzs7Ozs7bUJBQ0FDLGM7Ozs7OzttQkFDQUMsZTs7Ozs7O21CQUNBQyxhOzs7O0FBUkYiLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgSW1hcENsaWVudCBmcm9tICcuL2NsaWVudCdcblxuZXhwb3J0IHtcbiAgTE9HX0xFVkVMX05PTkUsXG4gIExPR19MRVZFTF9FUlJPUixcbiAgTE9HX0xFVkVMX1dBUk4sXG4gIExPR19MRVZFTF9JTkZPLFxuICBMT0dfTEVWRUxfREVCVUcsXG4gIExPR19MRVZFTF9BTExcbn0gZnJvbSAnLi9jb21tb24nXG5cbmV4cG9ydCBkZWZhdWx0IEltYXBDbGllbnRcbiJdfQ== |
@@ -10,12 +10,10 @@ 'use strict'; | ||
var SESSIONCOUNTER = 0; | ||
let SESSIONCOUNTER = 0; | ||
function createDefaultLogger(username, hostname) { | ||
var session = ++SESSIONCOUNTER; | ||
var log = function log(level, messages) { | ||
messages = messages.map(function (msg) { | ||
return typeof msg === 'function' ? msg() : msg; | ||
}); | ||
var date = new Date().toISOString(); | ||
var logMessage = '[' + date + '][' + session + '][' + username + '][' + hostname + '] ' + messages.join(' '); | ||
const session = ++SESSIONCOUNTER; | ||
let log = (level, messages) => { | ||
messages = messages.map(msg => typeof msg === 'function' ? msg() : msg); | ||
const date = new Date().toISOString(); | ||
let logMessage = `[${date}][${session}][${username}][${hostname}] ${messages.join(' ')}`; | ||
if (level === _common.LOG_LEVEL_DEBUG) { | ||
@@ -33,16 +31,8 @@ console.log('[DEBUG]' + logMessage); | ||
return { | ||
debug: function debug(msgs) { | ||
return log(_common.LOG_LEVEL_DEBUG, msgs); | ||
}, | ||
info: function info(msgs) { | ||
return log(_common.LOG_LEVEL_INFO, msgs); | ||
}, | ||
warn: function warn(msgs) { | ||
return log(_common.LOG_LEVEL_WARN, msgs); | ||
}, | ||
error: function error(msgs) { | ||
return log(_common.LOG_LEVEL_ERROR, msgs); | ||
} | ||
debug: msgs => log(_common.LOG_LEVEL_DEBUG, msgs), | ||
info: msgs => log(_common.LOG_LEVEL_INFO, msgs), | ||
warn: msgs => log(_common.LOG_LEVEL_WARN, msgs), | ||
error: msgs => log(_common.LOG_LEVEL_ERROR, msgs) | ||
}; | ||
} | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9sb2dnZXIuanMiXSwibmFtZXMiOlsiY3JlYXRlRGVmYXVsdExvZ2dlciIsIlNFU1NJT05DT1VOVEVSIiwidXNlcm5hbWUiLCJob3N0bmFtZSIsInNlc3Npb24iLCJsb2ciLCJsZXZlbCIsIm1lc3NhZ2VzIiwibWFwIiwibXNnIiwiZGF0ZSIsIkRhdGUiLCJ0b0lTT1N0cmluZyIsImxvZ01lc3NhZ2UiLCJqb2luIiwiY29uc29sZSIsImluZm8iLCJ3YXJuIiwiZXJyb3IiLCJkZWJ1ZyIsIm1zZ3MiXSwibWFwcGluZ3MiOiI7Ozs7O2tCQVN3QkEsbUI7O0FBVHhCOztBQU9BLElBQUlDLGlCQUFpQixDQUFyQjs7QUFFZSxTQUFTRCxtQkFBVCxDQUE4QkUsUUFBOUIsRUFBd0NDLFFBQXhDLEVBQWtEO0FBQy9ELE1BQU1DLFVBQVUsRUFBRUgsY0FBbEI7QUFDQSxNQUFJSSxNQUFNLFNBQU5BLEdBQU0sQ0FBQ0MsS0FBRCxFQUFRQyxRQUFSLEVBQXFCO0FBQzdCQSxlQUFXQSxTQUFTQyxHQUFULENBQWE7QUFBQSxhQUFPLE9BQU9DLEdBQVAsS0FBZSxVQUFmLEdBQTRCQSxLQUE1QixHQUFvQ0EsR0FBM0M7QUFBQSxLQUFiLENBQVg7QUFDQSxRQUFNQyxPQUFPLElBQUlDLElBQUosR0FBV0MsV0FBWCxFQUFiO0FBQ0EsUUFBSUMsbUJBQWlCSCxJQUFqQixVQUEwQk4sT0FBMUIsVUFBc0NGLFFBQXRDLFVBQW1EQyxRQUFuRCxVQUFnRUksU0FBU08sSUFBVCxDQUFjLEdBQWQsQ0FBcEU7QUFDQSxRQUFJUixpQ0FBSixFQUErQjtBQUM3QlMsY0FBUVYsR0FBUixDQUFZLFlBQVlRLFVBQXhCO0FBQ0QsS0FGRCxNQUVPLElBQUlQLGdDQUFKLEVBQThCO0FBQ25DUyxjQUFRQyxJQUFSLENBQWEsV0FBV0gsVUFBeEI7QUFDRCxLQUZNLE1BRUEsSUFBSVAsZ0NBQUosRUFBOEI7QUFDbkNTLGNBQVFFLElBQVIsQ0FBYSxXQUFXSixVQUF4QjtBQUNELEtBRk0sTUFFQSxJQUFJUCxpQ0FBSixFQUErQjtBQUNwQ1MsY0FBUUcsS0FBUixDQUFjLFlBQVlMLFVBQTFCO0FBQ0Q7QUFDRixHQWJEOztBQWVBLFNBQU87QUFDTE0sV0FBTztBQUFBLGFBQVFkLDZCQUFxQmUsSUFBckIsQ0FBUjtBQUFBLEtBREY7QUFFTEosVUFBTTtBQUFBLGFBQVFYLDRCQUFvQmUsSUFBcEIsQ0FBUjtBQUFBLEtBRkQ7QUFHTEgsVUFBTTtBQUFBLGFBQVFaLDRCQUFvQmUsSUFBcEIsQ0FBUjtBQUFBLEtBSEQ7QUFJTEYsV0FBTztBQUFBLGFBQVFiLDZCQUFxQmUsSUFBckIsQ0FBUjtBQUFBO0FBSkYsR0FBUDtBQU1EIiwiZmlsZSI6ImxvZ2dlci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIExPR19MRVZFTF9FUlJPUixcbiAgTE9HX0xFVkVMX1dBUk4sXG4gIExPR19MRVZFTF9JTkZPLFxuICBMT0dfTEVWRUxfREVCVUdcbn0gZnJvbSAnLi9jb21tb24nXG5cbmxldCBTRVNTSU9OQ09VTlRFUiA9IDBcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlRGVmYXVsdExvZ2dlciAodXNlcm5hbWUsIGhvc3RuYW1lKSB7XG4gIGNvbnN0IHNlc3Npb24gPSArK1NFU1NJT05DT1VOVEVSXG4gIGxldCBsb2cgPSAobGV2ZWwsIG1lc3NhZ2VzKSA9PiB7XG4gICAgbWVzc2FnZXMgPSBtZXNzYWdlcy5tYXAobXNnID0+IHR5cGVvZiBtc2cgPT09ICdmdW5jdGlvbicgPyBtc2coKSA6IG1zZylcbiAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoKS50b0lTT1N0cmluZygpXG4gICAgbGV0IGxvZ01lc3NhZ2UgPSBgWyR7ZGF0ZX1dWyR7c2Vzc2lvbn1dWyR7dXNlcm5hbWV9XVske2hvc3RuYW1lfV0gJHttZXNzYWdlcy5qb2luKCcgJyl9YFxuICAgIGlmIChsZXZlbCA9PT0gTE9HX0xFVkVMX0RFQlVHKSB7XG4gICAgICBjb25zb2xlLmxvZygnW0RFQlVHXScgKyBsb2dNZXNzYWdlKVxuICAgIH0gZWxzZSBpZiAobGV2ZWwgPT09IExPR19MRVZFTF9JTkZPKSB7XG4gICAgICBjb25zb2xlLmluZm8oJ1tJTkZPXScgKyBsb2dNZXNzYWdlKVxuICAgIH0gZWxzZSBpZiAobGV2ZWwgPT09IExPR19MRVZFTF9XQVJOKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ1tXQVJOXScgKyBsb2dNZXNzYWdlKVxuICAgIH0gZWxzZSBpZiAobGV2ZWwgPT09IExPR19MRVZFTF9FUlJPUikge1xuICAgICAgY29uc29sZS5lcnJvcignW0VSUk9SXScgKyBsb2dNZXNzYWdlKVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgZGVidWc6IG1zZ3MgPT4gbG9nKExPR19MRVZFTF9ERUJVRywgbXNncyksXG4gICAgaW5mbzogbXNncyA9PiBsb2coTE9HX0xFVkVMX0lORk8sIG1zZ3MpLFxuICAgIHdhcm46IG1zZ3MgPT4gbG9nKExPR19MRVZFTF9XQVJOLCBtc2dzKSxcbiAgICBlcnJvcjogbXNncyA9PiBsb2coTE9HX0xFVkVMX0VSUk9SLCBtc2dzKVxuICB9XG59XG4iXX0= | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9sb2dnZXIuanMiXSwibmFtZXMiOlsiY3JlYXRlRGVmYXVsdExvZ2dlciIsIlNFU1NJT05DT1VOVEVSIiwidXNlcm5hbWUiLCJob3N0bmFtZSIsInNlc3Npb24iLCJsb2ciLCJsZXZlbCIsIm1lc3NhZ2VzIiwibWFwIiwibXNnIiwiZGF0ZSIsIkRhdGUiLCJ0b0lTT1N0cmluZyIsImxvZ01lc3NhZ2UiLCJqb2luIiwiY29uc29sZSIsImluZm8iLCJ3YXJuIiwiZXJyb3IiLCJkZWJ1ZyIsIm1zZ3MiXSwibWFwcGluZ3MiOiI7Ozs7O2tCQVN3QkEsbUI7O0FBVHhCOztBQU9BLElBQUlDLGlCQUFpQixDQUFyQjs7QUFFZSxTQUFTRCxtQkFBVCxDQUE4QkUsUUFBOUIsRUFBd0NDLFFBQXhDLEVBQWtEO0FBQy9ELFFBQU1DLFVBQVUsRUFBRUgsY0FBbEI7QUFDQSxNQUFJSSxNQUFNLENBQUNDLEtBQUQsRUFBUUMsUUFBUixLQUFxQjtBQUM3QkEsZUFBV0EsU0FBU0MsR0FBVCxDQUFhQyxPQUFPLE9BQU9BLEdBQVAsS0FBZSxVQUFmLEdBQTRCQSxLQUE1QixHQUFvQ0EsR0FBeEQsQ0FBWDtBQUNBLFVBQU1DLE9BQU8sSUFBSUMsSUFBSixHQUFXQyxXQUFYLEVBQWI7QUFDQSxRQUFJQyxhQUFjLElBQUdILElBQUssS0FBSU4sT0FBUSxLQUFJRixRQUFTLEtBQUlDLFFBQVMsS0FBSUksU0FBU08sSUFBVCxDQUFjLEdBQWQsQ0FBbUIsRUFBdkY7QUFDQSxRQUFJUixpQ0FBSixFQUErQjtBQUM3QlMsY0FBUVYsR0FBUixDQUFZLFlBQVlRLFVBQXhCO0FBQ0QsS0FGRCxNQUVPLElBQUlQLGdDQUFKLEVBQThCO0FBQ25DUyxjQUFRQyxJQUFSLENBQWEsV0FBV0gsVUFBeEI7QUFDRCxLQUZNLE1BRUEsSUFBSVAsZ0NBQUosRUFBOEI7QUFDbkNTLGNBQVFFLElBQVIsQ0FBYSxXQUFXSixVQUF4QjtBQUNELEtBRk0sTUFFQSxJQUFJUCxpQ0FBSixFQUErQjtBQUNwQ1MsY0FBUUcsS0FBUixDQUFjLFlBQVlMLFVBQTFCO0FBQ0Q7QUFDRixHQWJEOztBQWVBLFNBQU87QUFDTE0sV0FBT0MsUUFBUWYsNkJBQXFCZSxJQUFyQixDQURWO0FBRUxKLFVBQU1JLFFBQVFmLDRCQUFvQmUsSUFBcEIsQ0FGVDtBQUdMSCxVQUFNRyxRQUFRZiw0QkFBb0JlLElBQXBCLENBSFQ7QUFJTEYsV0FBT0UsUUFBUWYsNkJBQXFCZSxJQUFyQjtBQUpWLEdBQVA7QUFNRCIsImZpbGUiOiJsb2dnZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBMT0dfTEVWRUxfRVJST1IsXG4gIExPR19MRVZFTF9XQVJOLFxuICBMT0dfTEVWRUxfSU5GTyxcbiAgTE9HX0xFVkVMX0RFQlVHXG59IGZyb20gJy4vY29tbW9uJ1xuXG5sZXQgU0VTU0lPTkNPVU5URVIgPSAwXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZURlZmF1bHRMb2dnZXIgKHVzZXJuYW1lLCBob3N0bmFtZSkge1xuICBjb25zdCBzZXNzaW9uID0gKytTRVNTSU9OQ09VTlRFUlxuICBsZXQgbG9nID0gKGxldmVsLCBtZXNzYWdlcykgPT4ge1xuICAgIG1lc3NhZ2VzID0gbWVzc2FnZXMubWFwKG1zZyA9PiB0eXBlb2YgbXNnID09PSAnZnVuY3Rpb24nID8gbXNnKCkgOiBtc2cpXG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKVxuICAgIGxldCBsb2dNZXNzYWdlID0gYFske2RhdGV9XVske3Nlc3Npb259XVske3VzZXJuYW1lfV1bJHtob3N0bmFtZX1dICR7bWVzc2FnZXMuam9pbignICcpfWBcbiAgICBpZiAobGV2ZWwgPT09IExPR19MRVZFTF9ERUJVRykge1xuICAgICAgY29uc29sZS5sb2coJ1tERUJVR10nICsgbG9nTWVzc2FnZSlcbiAgICB9IGVsc2UgaWYgKGxldmVsID09PSBMT0dfTEVWRUxfSU5GTykge1xuICAgICAgY29uc29sZS5pbmZvKCdbSU5GT10nICsgbG9nTWVzc2FnZSlcbiAgICB9IGVsc2UgaWYgKGxldmVsID09PSBMT0dfTEVWRUxfV0FSTikge1xuICAgICAgY29uc29sZS53YXJuKCdbV0FSTl0nICsgbG9nTWVzc2FnZSlcbiAgICB9IGVsc2UgaWYgKGxldmVsID09PSBMT0dfTEVWRUxfRVJST1IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1tFUlJPUl0nICsgbG9nTWVzc2FnZSlcbiAgICB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGRlYnVnOiBtc2dzID0+IGxvZyhMT0dfTEVWRUxfREVCVUcsIG1zZ3MpLFxuICAgIGluZm86IG1zZ3MgPT4gbG9nKExPR19MRVZFTF9JTkZPLCBtc2dzKSxcbiAgICB3YXJuOiBtc2dzID0+IGxvZyhMT0dfTEVWRUxfV0FSTiwgbXNncyksXG4gICAgZXJyb3I6IG1zZ3MgPT4gbG9nKExPR19MRVZFTF9FUlJPUiwgbXNncylcbiAgfVxufVxuIl19 |
@@ -10,4 +10,4 @@ 'use strict'; | ||
var SPECIAL_USE_FLAGS = ['\\All', '\\Archive', '\\Drafts', '\\Flagged', '\\Junk', '\\Sent', '\\Trash']; | ||
var SPECIAL_USE_BOXES = { | ||
const SPECIAL_USE_FLAGS = ['\\All', '\\Archive', '\\Drafts', '\\Flagged', '\\Junk', '\\Sent', '\\Trash']; | ||
const SPECIAL_USE_BOXES = { | ||
'\\Sent': ['aika', 'bidaliak', 'bidalita', 'dihantar', 'e rometsweng', 'e tindami', 'elküldött', 'elküldöttek', 'enviadas', 'enviadas', 'enviados', 'enviats', 'envoyés', 'ethunyelweyo', 'expediate', 'ezipuru', 'gesendete', 'gestuur', 'gönderilmiş öğeler', 'göndərilənlər', 'iberilen', 'inviati', 'išsiųstieji', 'kuthunyelwe', 'lasa', 'lähetetyt', 'messages envoyés', 'naipadala', 'nalefa', 'napadala', 'nosūtītās ziņas', 'odeslané', 'padala', 'poslane', 'poslano', 'poslano', 'poslané', 'poslato', 'saadetud', 'saadetud kirjad', 'sendt', 'sendt', 'sent', 'sent items', 'sent messages', 'sända poster', 'sänt', 'terkirim', 'ti fi ranṣẹ', 'të dërguara', 'verzonden', 'vilivyotumwa', 'wysłane', 'đã gửi', 'σταλθέντα', 'жиберилген', 'жіберілгендер', 'изпратени', 'илгээсэн', 'ирсол шуд', 'испратено', 'надіслані', 'отправленные', 'пасланыя', 'юборилган', 'ուղարկված', 'נשלחו', 'פריטים שנשלחו', 'المرسلة', 'بھیجے گئے', 'سوزمژہ', 'لېګل شوی', 'موارد ارسال شده', 'पाठविले', 'पाठविलेले', 'प्रेषित', 'भेजा गया', 'প্রেরিত', 'প্রেরিত', 'প্ৰেৰিত', 'ਭੇਜੇ', 'મોકલેલા', 'ପଠାଗଲା', 'அனுப்பியவை', 'పంపించబడింది', 'ಕಳುಹಿಸಲಾದ', 'അയച്ചു', 'යැවු පණිවුඩ', 'ส่งแล้ว', 'გაგზავნილი', 'የተላኩ', 'បានផ្ញើ', '寄件備份', '寄件備份', '已发信息', '送信済みメール', '발신 메시지', '보낸 편지함'], | ||
@@ -18,3 +18,3 @@ '\\Trash': ['articole șterse', 'bin', 'borttagna objekt', 'deleted', 'deleted items', 'deleted messages', 'elementi eliminati', 'elementos borrados', 'elementos eliminados', 'gelöschte objekte', 'item dipadam', 'itens apagados', 'itens excluídos', 'mục đã xóa', 'odstraněné položky', 'pesan terhapus', 'poistetut', 'praht', 'prügikast', 'silinmiş öğeler', 'slettede beskeder', 'slettede elementer', 'trash', 'törölt elemek', 'usunięte wiadomości', 'verwijderde items', 'vymazané správy', 'éléments supprimés', 'видалені', 'жойылғандар', 'удаленные', 'פריטים שנמחקו', 'العناصر المحذوفة', 'موارد حذف شده', 'รายการที่ลบ', '已删除邮件', '已刪除項目', '已刪除項目'], | ||
}; | ||
var SPECIAL_USE_BOX_FLAGS = Object.keys(SPECIAL_USE_BOXES); | ||
const SPECIAL_USE_BOX_FLAGS = Object.keys(SPECIAL_USE_BOXES); | ||
@@ -29,4 +29,4 @@ /** | ||
if (mailbox.flags) { | ||
for (var i = 0; i < SPECIAL_USE_FLAGS.length; i++) { | ||
var type = SPECIAL_USE_FLAGS[i]; | ||
for (let i = 0; i < SPECIAL_USE_FLAGS.length; i++) { | ||
const type = SPECIAL_USE_FLAGS[i]; | ||
if ((mailbox.flags || []).indexOf(type) >= 0) { | ||
@@ -44,6 +44,6 @@ mailbox.specialUse = type; | ||
function checkSpecialUseByName(mailbox) { | ||
var name = (0, _ramda.propOr)('', 'name', mailbox).toLowerCase().trim(); | ||
const name = (0, _ramda.propOr)('', 'name', mailbox).toLowerCase().trim(); | ||
for (var i = 0; i < SPECIAL_USE_BOX_FLAGS.length; i++) { | ||
var type = SPECIAL_USE_BOX_FLAGS[i]; | ||
for (let i = 0; i < SPECIAL_USE_BOX_FLAGS.length; i++) { | ||
const type = SPECIAL_USE_BOX_FLAGS[i]; | ||
if (SPECIAL_USE_BOXES[type].indexOf(name) >= 0) { | ||
@@ -57,2 +57,2 @@ mailbox.specialUse = type; | ||
} | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9zcGVjaWFsLXVzZS5qcyJdLCJuYW1lcyI6WyJjaGVja1NwZWNpYWxVc2UiLCJTUEVDSUFMX1VTRV9GTEFHUyIsIlNQRUNJQUxfVVNFX0JPWEVTIiwiU1BFQ0lBTF9VU0VfQk9YX0ZMQUdTIiwiT2JqZWN0Iiwia2V5cyIsIm1haWxib3giLCJmbGFncyIsImkiLCJsZW5ndGgiLCJ0eXBlIiwiaW5kZXhPZiIsInNwZWNpYWxVc2UiLCJzcGVjaWFsVXNlRmxhZyIsImNoZWNrU3BlY2lhbFVzZUJ5TmFtZSIsIm5hbWUiLCJ0b0xvd2VyQ2FzZSIsInRyaW0iXSwibWFwcGluZ3MiOiI7Ozs7O1FBbURnQkEsZSxHQUFBQSxlOztBQW5EaEI7O0FBRUEsSUFBTUMsb0JBQW9CLENBQUMsT0FBRCxFQUFVLFdBQVYsRUFBdUIsVUFBdkIsRUFBbUMsV0FBbkMsRUFBZ0QsUUFBaEQsRUFBMEQsUUFBMUQsRUFBb0UsU0FBcEUsQ0FBMUI7QUFDQSxJQUFNQyxvQkFBb0I7QUFDeEIsWUFBVSxDQUNSLE1BRFEsRUFDQSxVQURBLEVBQ1ksVUFEWixFQUN3QixVQUR4QixFQUNvQyxjQURwQyxFQUNvRCxXQURwRCxFQUNpRSxXQURqRSxFQUM4RSxhQUQ5RSxFQUM2RixVQUQ3RixFQUVSLFVBRlEsRUFFSSxVQUZKLEVBRWdCLFNBRmhCLEVBRTJCLFNBRjNCLEVBRXNDLGNBRnRDLEVBRXNELFdBRnRELEVBRW1FLFNBRm5FLEVBRThFLFdBRjlFLEVBRTJGLFNBRjNGLEVBR1Isb0JBSFEsRUFHYyxlQUhkLEVBRytCLFVBSC9CLEVBRzJDLFNBSDNDLEVBR3NELGFBSHRELEVBR3FFLGFBSHJFLEVBR29GLE1BSHBGLEVBRzRGLFdBSDVGLEVBSVIsa0JBSlEsRUFJWSxXQUpaLEVBSXlCLFFBSnpCLEVBSW1DLFVBSm5DLEVBSStDLGlCQUovQyxFQUlrRSxVQUpsRSxFQUk4RSxRQUo5RSxFQUl3RixTQUp4RixFQUtSLFNBTFEsRUFLRyxTQUxILEVBS2MsU0FMZCxFQUt5QixTQUx6QixF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QTlDLEVBQW1EO0FBQ2pELFVBQU1FLE9BQU9ULGtCQUFrQk8sQ0FBbEIsQ0FBYjtBQUNBLFVBQUksQ0FBQ0YsUUFBUUMsS0FBUixJQUFpQixFQUFsQixFQUFzQkksT0FBdEIsQ0FBOEJELElBQTlCLEtBQXVDLENBQTNDLEVBQThDO0FBQzVDSixnQkFBUU0sVUFBUixHQUFxQkYsSUFBckI7QUFDQUosZ0JBQVFPLGNBQVIsR0FBeUJILElBQXpCO0FBQ0EsZUFBT0EsSUFBUDtBQUNEO0FBQ0Y7QUFDRjs7QUFFRCxTQUFPSSxzQkFBc0JSLE9BQXRCLENBQVA7QUFDRDs7QUFFRCxTQUFTUSxxQkFBVCxDQUFnQ1IsT0FBaEMsRUFBeUM7QUFDdkMsTUFBTVMsT0FBTyxtQkFBTyxFQUFQLEVBQVcsTUFBWCxFQUFtQlQsT0FBbkIsRUFBNEJVLFdBQTVCLEdBQTBDQyxJQUExQyxFQUFiOztBQUVBLE9BQUssSUFBSVQsSUFBSSxDQUFiLEVBQWdCQSxJQUFJTCxzQkFBc0JNLE1BQTFDLEVBQWtERCxHQUFsRCxFQUF1RDtBQUNyRCxRQUFNRSxPQUFPUCxzQkFBc0JLLENBQXRCLENBQWI7QUFDQSxRQUFJTixrQkFBa0JRLElBQWxCLEVBQXdCQyxPQUF4QixDQUFnQ0ksSUFBaEMsS0FBeUMsQ0FBN0MsRUFBZ0Q7QUFDOUNULGNBQVFNLFVBQVIsR0FBcUJGLElBQXJCO0FBQ0EsYUFBT0EsSUFBUDtBQUNEO0FBQ0Y7O0FBRUQsU0FBTyxLQUFQO0FBQ0QiLCJmaWxlIjoic3BlY2lhbC11c2UuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3Byb3BPcn0gZnJvbSAncmFtZGEnXG5cbmNvbnN0IFNQRUNJQUxfVVNFX0ZMQUdTID0gWydcXFxcQWxsJywgJ1xcXFxBcmNoaXZlJywgJ1xcXFxEcmFmdHMnLCAnXFxcXEZsYWdnZWQnLCAnXFxcXEp1bmsnLCAnXFxcXFNlbnQnLCAnXFxcXFRyYXNoJ11cbmNvbnN0IFNQRUNJQUxfVVNFX0JPWEVTID0ge1xuICAnXFxcXFNlbnQnOiBbXG4gICAgJ2Fpa2EnLCAnYmlkYWxpYWsnLCAnYmlkYWxpdGEnLCAnZGloYW50YXInLCAnZSByb21ldHN3ZW5nJywgJ2UgdGluZGFtaScsICdlbGvDvGxkw7Z0dCcsICdlbGvDvGxkw7Z0dGVrJywgJ2VudmlhZGFzJyxcbiAgICAnZW52aWFkYXMnLCAnZW52aWFkb3MnLCAnZW52aWF0cycsICdlbnZvecOpcycsICdldGh1bnllbHdleW8nLCAnZXhwZWRpYXRlJywgJ2V6aXB1cnUnLCAnZ2VzZW5kZXRlJywgJ2dlc3R1dXInLFxuICAgICdnw7ZuZGVyaWxtacWfIMO2xJ9lbGVyJywgJ2fDtm5kyZlyaWzJmW5syZlyJywgJ2liZXJpbGVuJywgJ2ludmlhdGknLCAnacWhc2nFs3N0aWVqaScsICdrdXRodW55ZWx3ZScsICdsYXNhJywgJ2zDpGhldGV0eXQnLFxuICAgICdtZXNzYWdlcyBlbnZvecOpcycsICduYWlwYWRhbGEnLCAnbmFsZWZhJywgJ25hcGFkYWxhJywgJ25vc8WrdMSrdMSBcyB6acWGYXMnLCAnb2Rlc2xhbsOpJywgJ3BhZGFsYScsICdwb3NsYW5lJyxcbiAgICAncG9zbGFubycsICdwb3NsYW5vJywgJ3Bvc2xhbsOpJywgJ3Bvc2xhdG8nLCAnc2FhZGV0dWQnLCAnc2FhZGV0dWQga2lyamFkJywgJ3NlbmR0JywgJ3NlbmR0JywgJ3NlbnQnLCAnc2VudCBpdGVtcycsXG4gICAgJ3NlbnQgbWVzc2FnZXMnLCAnc8OkbmRhIHBvc3RlcicsICdzw6RudCcsICd0ZXJraXJpbScsICd0aSBmaSByYW7huaPhurknLCAndMOrIGTDq3JndWFyYScsICd2ZXJ6b25kZW4nLCAndmlsaXZ5b3R1bXdhJyxcbiAgICAnd3lzxYJhbmUnLCAnxJHDoyBn4butaScsICfPg8+EzrHOu864zq3Ovc+EzrEnLCAn0LbQuNCx0LXRgNC40LvQs9C10L0nLCAn0LbRltCx0LXRgNGW0LvQs9C10L3QtNC10YAnLCAn0LjQt9C/0YDQsNGC0LXQvdC4JywgJ9C40LvQs9GN0Y3RgdGN0L0nLCAn0LjRgNGB0L7QuyDRiNGD0LQnLCAn0LjRgdC/0YDQsNGC0LXQvdC+JyxcbiAgICAn0L3QsNC00ZbRgdC70LDQvdGWJywgJ9C+0YLQv9GA0LDQstC70LXQvdC90YvQtScsICfQv9Cw0YHQu9Cw0L3Ri9GPJywgJ9GO0LHQvtGA0LjQu9Cz0LDQvScsICfVuNaC1bLVodaA1a/VvtWh1a4nLCAn16DXqdec15fXlScsICfXpNeo15nXmNeZ150g16nXoNep15zXl9eVJywgJ9in2YTZhdix2LPZhNipJywgJ9io2r7bjNis25Ig2q/YptuSJyxcbiAgICAn2LPZiNiy2YXamNuBJywgJ9mE25Daq9mEINi02YjbjCcsICfZhdmI2KfYsdivINin2LHYs9in2YQg2LTYr9mHJywgJ+CkquCkvuCkoOCkteCkv+CksuClhycsICfgpKrgpL7gpKDgpLXgpL/gpLLgpYfgpLLgpYcnLCAn4KSq4KWN4KSw4KWH4KS34KS/4KSkJywgJ+CkreClh+CknOCkviDgpJfgpK/gpL4nLCAn4Kaq4KeN4Kaw4KeH4Kaw4Ka/4KakJywgJ+CmquCnjeCmsOCnh+CmsOCmv+CmpCcsICfgpqrgp43gp7Dgp4fgp7Dgpr/gpqQnLCAn4Kit4KmH4Kic4KmHJywgJ+CqruCri+CqleCqsuCrh+CqsuCqvicsXG4gICAgJ+CsquCsoOCsvuCsl+CssuCsvicsICfgroXgrqngr4Hgrqrgr43grqrgrr/grq/grrXgr4gnLCAn4LCq4LCC4LCq4LC/4LCC4LCa4LCs4LCh4LC/4LCC4LCm4LC/JywgJ+CyleCys+CzgeCyueCyv+CyuOCysuCyvuCypicsICfgtIXgtK/gtJrgtY3gtJrgtYEnLCAn4La64LeQ4LeA4LeUIOC2tOC2q+C3kuC3gOC3lOC2qScsICfguKrguYjguIfguYHguKXguYnguKcnLCAn4YOS4YOQ4YOS4YOW4YOQ4YOV4YOc4YOY4YOa4YOYJywgJ+GLqOGJsOGIi+GKqScsICfhnpThnrbhnpPigIvhnpXhn5Lhnonhnr4nLFxuICAgICflr4Tku7blgpnku70nLCAn5a+E5Lu25YKZ5Lu9JywgJ+W3suWPkeS/oeaBrycsICfpgIHkv6HmuIjjgb/vvpLvvbDvvpknLCAn67Cc7IugIOuplOyLnOyngCcsICfrs7Trgrgg7Y647KeA7ZWoJ1xuICBdLFxuICAnXFxcXFRyYXNoJzogW1xuICAgICdhcnRpY29sZSDImXRlcnNlJywgJ2JpbicsICdib3J0dGFnbmEgb2JqZWt0JywgJ2RlbGV0ZWQnLCAnZGVsZXRlZCBpdGVtcycsICdkZWxldGVkIG1lc3NhZ2VzJywgJ2VsZW1lbnRpIGVsaW1pbmF0aScsXG4gICAgJ2VsZW1lbnRvcyBib3JyYWRvcycsICdlbGVtZW50b3MgZWxpbWluYWRvcycsICdnZWzDtnNjaHRlIG9iamVrdGUnLCAnaXRlbSBkaXBhZGFtJywgJ2l0ZW5zIGFwYWdhZG9zJywgJ2l0ZW5zIGV4Y2x1w61kb3MnLFxuICAgICdt4bulYyDEkcOjIHjDs2EnLCAnb2RzdHJhbsSbbsOpIHBvbG/Fvmt5JywgJ3Blc2FuIHRlcmhhcHVzJywgJ3BvaXN0ZXR1dCcsICdwcmFodCcsICdwcsO8Z2lrYXN0JywgJ3NpbGlubWnFnyDDtsSfZWxlcicsXG4gICAgJ3NsZXR0ZWRlIGJlc2tlZGVyJywgJ3NsZXR0ZWRlIGVsZW1lbnRlcicsICd0cmFzaCcsICd0w7Zyw7ZsdCBlbGVtZWsnLCAndXN1bmnEmXRlIHdpYWRvbW/Fm2NpJywgJ3ZlcndpamRlcmRlIGl0ZW1zJyxcbiAgICAndnltYXphbsOpIHNwcsOhdnknLCAnw6lsw6ltZW50cyBzdXBwcmltw6lzJywgJ9Cy0LjQtNCw0LvQtdC90ZYnLCAn0LbQvtC50YvQu9KT0LDQvdC00LDRgCcsICfRg9C00LDQu9C10L3QvdGL0LUnLCAn16TXqNeZ15jXmdedINep16DXnteX16fXlScsICfYp9mE2LnZhtin2LXYsSDYp9mE2YXYrdiw2YjZgdipJyxcbiAgICAn2YXZiNin2LHYryDYrdiw2YEg2LTYr9mHJywgJ+C4o+C4suC4ouC4geC4suC4o+C4l+C4teC5iOC4peC4micsICflt7LliKDpmaTpgq7ku7YnLCAn5bey5Yiq6Zmk6aCF55uuJywgJ+W3suWIqumZpOmgheebridcbiAgXSxcbiAgJ1xcXFxKdW5rJzogW1xuICAgICdidWxrIG1haWwnLCAnY29ycmVvIG5vIGRlc2VhZG8nLCAnY291cnJpZXIgaW5kw6lzaXJhYmxlJywgJ2lzdGVubWV5ZW4nLCAnaXN0ZW5tZXllbiBlLXBvc3RhJywgJ2p1bmsnLCAnbGV2w6lsc3plbcOpdCcsXG4gICAgJ25ldnnFvmlhZGFuw6EgcG/FoXRhJywgJ25ldnnFvsOhZGFuw6EgcG/FoXRhJywgJ25vIGRlc2VhZG8nLCAncG9zdGEgaW5kZXNpZGVyYXRhJywgJ3BvdXJyaWVsJywgJ3Jvc2thcG9zdGknLCAnc2tyw6RwcG9zdCcsXG4gICAgJ3NwYW0nLCAnc3BhbScsICdzcGFtb3dhbmllJywgJ3PDuHBwZWxwb3N0JywgJ3RoxrAgcsOhYycsICfRgdC/0LDQvCcsICfXk9eV15DXqCDXlteR15wnLCAn2KfZhNix2LPYp9im2YQg2KfZhNi52LTZiNin2KbZitipJywgJ9mH2LHYstmG2KfZhdmHJywgJ+C4quC5geC4m+C4oScsXG4gICAgJ+KAjuWeg+WcvumDteS7ticsICflnoPlnL7pgq7ku7YnLCAn5Z6D5Zy+6Zu76YO1J1xuICBdLFxuICAnXFxcXERyYWZ0cyc6IFtcbiAgICAnYmEgYnJvdWlsbG9uJywgJ2JvcnJhZG9yJywgJ2JvcnJhZG9yJywgJ2JvcnJhZG9yZXMnLCAnYm96emUnLCAnYnJvdWlsbG9ucycsICdi4bqjbiB0aOG6o28nLCAnY2lvcm5lJywgJ2NvbmNlcHRlbicsICdkcmFmJyxcbiAgICAnZHJhZnRzJywgJ2Ryw7ZnJywgJ2VudHfDvHJmZScsICdlc2JvcnJhbnlzJywgJ2dhcmFsYW1hbGFyJywgJ2loZSBlZGV0dXJ1JywgJ2lpZHJhZnRpJywgJ2l6aW5obGFrYScsICdqdW9kcmHFocSNaWFpJywgJ2tsYWRkJyxcbiAgICAna2xhZGRlcicsICdrb25jZXB0eScsICdrb25jZXB0eScsICdrb25zZXAnLCAna29uc2VwdGUnLCAna29waWUgcm9ib2N6ZScsICdsYXlpaMmZbMmZcicsICdsdW9ubm9rc2V0JywgJ21lbG5yYWtzdGknLCAnbWVyYWxvJyxcbiAgICAnbWVzYXpoZSB0w6sgcGFkw6tyZ3VhcmEnLCAnbWdhIGRyYWZ0JywgJ211c3RhbmRpZCcsICduYWNydGknLCAnbmFjcnRpJywgJ29zbnV0a2knLCAncGlzemtvemF0b2snLCAncmFzY3VuaG9zJywgJ3Jhc2ltdScsXG4gICAgJ3NraWNlJywgJ3Rhc2xha2xhcicsICd0c2FyYXJydW4gc2HGmW9ubmknLCAndXRrYXN0JywgJ3Zha2lyYW9rYScsICd2w6F6bGF0b2snLCAnemlycmlib3Jyb2FrJywgJ8Ogd+G7jW4gw6Br4buNcGFt4buNzIEnLCAnz4DPgc+Mz4fOtc65z4HOsScsXG4gICAgJ9C20L7QsdCw0LvQsNGAJywgJ9C90LDRhtGA0YLQuCcsICfQvdC+0L7RgNCz0YPRg9C0JywgJ9GB0LjRkdKz0L3QsNCy0LjRgScsICfRhdC+0LzQsNC60Lgg0YXQsNGC0LvQsNGAJywgJ9GH0LDRgNC90LDQstGW0LrRlicsICfRh9C10YDQvdC10YLQutC4JywgJ9GH0LXRgNC90L7QstC4JywgJ9GH0LXRgNC90L7QstC40LrQuCcsICfRh9C10YDQvdC+0LLQuNC60YLQtdGAJyxcbiAgICAn1b3Wh9Wh1aPWgNWl1oAnLCAn15jXmdeV15jXldeqJywgJ9mF2LPZiNiv2KfYqicsICfZhdiz2YjYr9in2KonLCAn2YXZiNiz2YjYr9uQJywgJ9m+24zYtCDZhtmI24zYs9mH2KcnLCAn2ojYsdin2YHZuS8nLCAn4KSh4KWN4KSw4KS+4KWe4KWN4KSfJywgJ+CkquCljeCksOCkvuCksOClguCkqicsICfgppbgprjgp5zgpr4nLCAn4KaW4Ka44Kec4Ka+JywgJ+CmoeCnjeCnsOCmvuCmq+CnjeCmnycsICfgqKHgqY3gqLDgqL7gqKvgqJ8nLCAn4Kqh4KuN4Kqw4Kq+4Kqr4KuN4Kqf4Kq4JyxcbiAgICAn4Kyh4K2N4Kyw4Ky+4Kyr4K2N4KyfJywgJ+CuteCusOCviOCuteCvgeCuleCus+CvjScsICfgsJrgsL/gsKTgsY3gsKTgsYEg4LCq4LGN4LCw4LCk4LGB4LCy4LGBJywgJ+CyleCysOCyoeCzgeCyl+Cys+CzgScsICfgtJXgtLDgtJ/gtYHgtJXgtLPgtY3igI0nLCAn4Laa4LeZ4Lan4LeU4La44LeKIOC2tOC2reC3iicsICfguInguJrguLHguJrguKPguYjguLLguIcnLCAn4YOb4YOd4YOc4YOQ4YOu4YOQ4YOW4YOU4YOR4YOYJywgJ+GIqOGJguGJhuGJvScsICfhnp/hnrbhnprhnpbhn5LhnprhnrbhnoQnLCAn5LiL5pu444GNJywgJ+iNieeovycsXG4gICAgJ+iNieeovycsICfojYnnqL8nLCAn7J6E7IucIOuztOq0gO2VqCdcbiAgXVxufVxuY29uc3QgU1BFQ0lBTF9VU0VfQk9YX0ZMQUdTID0gT2JqZWN0LmtleXMoU1BFQ0lBTF9VU0VfQk9YRVMpXG5cbi8qKlxuICogQ2hlY2tzIGlmIGEgbWFpbGJveCBpcyBmb3Igc3BlY2lhbCB1c2VcbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gbWFpbGJveFxuICogQHJldHVybiB7U3RyaW5nfSBTcGVjaWFsIHVzZSBmbGFnIChpZiBkZXRlY3RlZClcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrU3BlY2lhbFVzZSAobWFpbGJveCkge1xuICBpZiAobWFpbGJveC5mbGFncykge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgU1BFQ0lBTF9VU0VfRkxBR1MubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IHR5cGUgPSBTUEVDSUFMX1VTRV9GTEFHU1tpXVxuICAgICAgaWYgKChtYWlsYm94LmZsYWdzIHx8IFtdKS5pbmRleE9mKHR5cGUpID49IDApIHtcbiAgICAgICAgbWFpbGJveC5zcGVjaWFsVXNlID0gdHlwZVxuICAgICAgICBtYWlsYm94LnNwZWNpYWxVc2VGbGFnID0gdHlwZVxuICAgICAgICByZXR1cm4gdHlwZVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBjaGVja1NwZWNpYWxVc2VCeU5hbWUobWFpbGJveClcbn1cblxuZnVuY3Rpb24gY2hlY2tTcGVjaWFsVXNlQnlOYW1lIChtYWlsYm94KSB7XG4gIGNvbnN0IG5hbWUgPSBwcm9wT3IoJycsICduYW1lJywgbWFpbGJveCkudG9Mb3dlckNhc2UoKS50cmltKClcblxuICBmb3IgKGxldCBpID0gMDsgaSA8IFNQRUNJQUxfVVNFX0JPWF9GTEFHUy5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IHR5cGUgPSBTUEVDSUFMX1VTRV9CT1hfRkxBR1NbaV1cbiAgICBpZiAoU1BFQ0lBTF9VU0VfQk9YRVNbdHlwZV0uaW5kZXhPZihuYW1lKSA+PSAwKSB7XG4gICAgICBtYWlsYm94LnNwZWNpYWxVc2UgPSB0eXBlXG4gICAgICByZXR1cm4gdHlwZVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmYWxzZVxufVxuIl19 | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9zcGVjaWFsLXVzZS5qcyJdLCJuYW1lcyI6WyJjaGVja1NwZWNpYWxVc2UiLCJTUEVDSUFMX1VTRV9GTEFHUyIsIlNQRUNJQUxfVVNFX0JPWEVTIiwiU1BFQ0lBTF9VU0VfQk9YX0ZMQUdTIiwiT2JqZWN0Iiwia2V5cyIsIm1haWxib3giLCJmbGFncyIsImkiLCJsZW5ndGgiLCJ0eXBlIiwiaW5kZXhPZiIsInNwZWNpYWxVc2UiLCJzcGVjaWFsVXNlRmxhZyIsImNoZWNrU3BlY2lhbFVzZUJ5TmFtZSIsIm5hbWUiLCJ0b0xvd2VyQ2FzZSIsInRyaW0iXSwibWFwcGluZ3MiOiI7Ozs7O1FBbURnQkEsZSxHQUFBQSxlOztBQW5EaEI7O0FBRUEsTUFBTUMsb0JBQW9CLENBQUMsT0FBRCxFQUFVLFdBQVYsRUFBdUIsVUFBdkIsRUFBbUMsV0FBbkMsRUFBZ0QsUUFBaEQsRUFBMEQsUUFBMUQsRUFBb0UsU0FBcEUsQ0FBMUI7QUFDQSxNQUFNQyxvQkFBb0I7QUFDeEIsWUFBVSxDQUNSLE1BRFEsRUFDQSxVQURBLEVBQ1ksVUFEWixFQUN3QixVQUR4QixFQUNvQyxjQURwQyxFQUNvRCxXQURwRCxFQUNpRSxXQURqRSxFQUM4RSxhQUQ5RSxFQUM2RixVQUQ3RixFQUVSLFVBRlEsRUFFSSxVQUZKLEVBRWdCLFNBRmhCLEVBRTJCLFNBRjNCLEVBRXNDLGNBRnRDLEVBRXNELFdBRnRELEVBRW1FLFNBRm5FLEVBRThFLFdBRjlFLEVBRTJGLFNBRjNGLEVBR1Isb0JBSFEsRUFHYyxlQUhkLEVBRytCLFVBSC9CLEVBRzJDLFNBSDNDLEVBR3NELGFBSHRELEVBR3FFLGFBSHJFLEVBR29GLE1BSHBGLEVBRzRGLFdBSDVGLEVBSVIsa0JBSlEsRUFJWSxXQUpaLEVBSXlCLFFBSnpCLEVBSW1DLFVBSm5DLEVBSStDLGlCQUovQyxFQUlrRSxVQUpsRSxFQUk4RSxRQUo5RSxFQUl3RixTQUp4RixFQUtSLFNBTFEsRUFLRyxTQUxILEVBS2MsU0FMZCxFQUt5QixTQUx6QixF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QTlDLEVBQW1EO0FBQ2pELFlBQU1FLE9BQU9ULGtCQUFrQk8sQ0FBbEIsQ0FBYjtBQUNBLFVBQUksQ0FBQ0YsUUFBUUMsS0FBUixJQUFpQixFQUFsQixFQUFzQkksT0FBdEIsQ0FBOEJELElBQTlCLEtBQXVDLENBQTNDLEVBQThDO0FBQzVDSixnQkFBUU0sVUFBUixHQUFxQkYsSUFBckI7QUFDQUosZ0JBQVFPLGNBQVIsR0FBeUJILElBQXpCO0FBQ0EsZUFBT0EsSUFBUDtBQUNEO0FBQ0Y7QUFDRjs7QUFFRCxTQUFPSSxzQkFBc0JSLE9BQXRCLENBQVA7QUFDRDs7QUFFRCxTQUFTUSxxQkFBVCxDQUFnQ1IsT0FBaEMsRUFBeUM7QUFDdkMsUUFBTVMsT0FBTyxtQkFBTyxFQUFQLEVBQVcsTUFBWCxFQUFtQlQsT0FBbkIsRUFBNEJVLFdBQTVCLEdBQTBDQyxJQUExQyxFQUFiOztBQUVBLE9BQUssSUFBSVQsSUFBSSxDQUFiLEVBQWdCQSxJQUFJTCxzQkFBc0JNLE1BQTFDLEVBQWtERCxHQUFsRCxFQUF1RDtBQUNyRCxVQUFNRSxPQUFPUCxzQkFBc0JLLENBQXRCLENBQWI7QUFDQSxRQUFJTixrQkFBa0JRLElBQWxCLEVBQXdCQyxPQUF4QixDQUFnQ0ksSUFBaEMsS0FBeUMsQ0FBN0MsRUFBZ0Q7QUFDOUNULGNBQVFNLFVBQVIsR0FBcUJGLElBQXJCO0FBQ0EsYUFBT0EsSUFBUDtBQUNEO0FBQ0Y7O0FBRUQsU0FBTyxLQUFQO0FBQ0QiLCJmaWxlIjoic3BlY2lhbC11c2UuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3Byb3BPcn0gZnJvbSAncmFtZGEnXG5cbmNvbnN0IFNQRUNJQUxfVVNFX0ZMQUdTID0gWydcXFxcQWxsJywgJ1xcXFxBcmNoaXZlJywgJ1xcXFxEcmFmdHMnLCAnXFxcXEZsYWdnZWQnLCAnXFxcXEp1bmsnLCAnXFxcXFNlbnQnLCAnXFxcXFRyYXNoJ11cbmNvbnN0IFNQRUNJQUxfVVNFX0JPWEVTID0ge1xuICAnXFxcXFNlbnQnOiBbXG4gICAgJ2Fpa2EnLCAnYmlkYWxpYWsnLCAnYmlkYWxpdGEnLCAnZGloYW50YXInLCAnZSByb21ldHN3ZW5nJywgJ2UgdGluZGFtaScsICdlbGvDvGxkw7Z0dCcsICdlbGvDvGxkw7Z0dGVrJywgJ2VudmlhZGFzJyxcbiAgICAnZW52aWFkYXMnLCAnZW52aWFkb3MnLCAnZW52aWF0cycsICdlbnZvecOpcycsICdldGh1bnllbHdleW8nLCAnZXhwZWRpYXRlJywgJ2V6aXB1cnUnLCAnZ2VzZW5kZXRlJywgJ2dlc3R1dXInLFxuICAgICdnw7ZuZGVyaWxtacWfIMO2xJ9lbGVyJywgJ2fDtm5kyZlyaWzJmW5syZlyJywgJ2liZXJpbGVuJywgJ2ludmlhdGknLCAnacWhc2nFs3N0aWVqaScsICdrdXRodW55ZWx3ZScsICdsYXNhJywgJ2zDpGhldGV0eXQnLFxuICAgICdtZXNzYWdlcyBlbnZvecOpcycsICduYWlwYWRhbGEnLCAnbmFsZWZhJywgJ25hcGFkYWxhJywgJ25vc8WrdMSrdMSBcyB6acWGYXMnLCAnb2Rlc2xhbsOpJywgJ3BhZGFsYScsICdwb3NsYW5lJyxcbiAgICAncG9zbGFubycsICdwb3NsYW5vJywgJ3Bvc2xhbsOpJywgJ3Bvc2xhdG8nLCAnc2FhZGV0dWQnLCAnc2FhZGV0dWQga2lyamFkJywgJ3NlbmR0JywgJ3NlbmR0JywgJ3NlbnQnLCAnc2VudCBpdGVtcycsXG4gICAgJ3NlbnQgbWVzc2FnZXMnLCAnc8OkbmRhIHBvc3RlcicsICdzw6RudCcsICd0ZXJraXJpbScsICd0aSBmaSByYW7huaPhurknLCAndMOrIGTDq3JndWFyYScsICd2ZXJ6b25kZW4nLCAndmlsaXZ5b3R1bXdhJyxcbiAgICAnd3lzxYJhbmUnLCAnxJHDoyBn4butaScsICfPg8+EzrHOu864zq3Ovc+EzrEnLCAn0LbQuNCx0LXRgNC40LvQs9C10L0nLCAn0LbRltCx0LXRgNGW0LvQs9C10L3QtNC10YAnLCAn0LjQt9C/0YDQsNGC0LXQvdC4JywgJ9C40LvQs9GN0Y3RgdGN0L0nLCAn0LjRgNGB0L7QuyDRiNGD0LQnLCAn0LjRgdC/0YDQsNGC0LXQvdC+JyxcbiAgICAn0L3QsNC00ZbRgdC70LDQvdGWJywgJ9C+0YLQv9GA0LDQstC70LXQvdC90YvQtScsICfQv9Cw0YHQu9Cw0L3Ri9GPJywgJ9GO0LHQvtGA0LjQu9Cz0LDQvScsICfVuNaC1bLVodaA1a/VvtWh1a4nLCAn16DXqdec15fXlScsICfXpNeo15nXmNeZ150g16nXoNep15zXl9eVJywgJ9in2YTZhdix2LPZhNipJywgJ9io2r7bjNis25Ig2q/YptuSJyxcbiAgICAn2LPZiNiy2YXamNuBJywgJ9mE25Daq9mEINi02YjbjCcsICfZhdmI2KfYsdivINin2LHYs9in2YQg2LTYr9mHJywgJ+CkquCkvuCkoOCkteCkv+CksuClhycsICfgpKrgpL7gpKDgpLXgpL/gpLLgpYfgpLLgpYcnLCAn4KSq4KWN4KSw4KWH4KS34KS/4KSkJywgJ+CkreClh+CknOCkviDgpJfgpK/gpL4nLCAn4Kaq4KeN4Kaw4KeH4Kaw4Ka/4KakJywgJ+CmquCnjeCmsOCnh+CmsOCmv+CmpCcsICfgpqrgp43gp7Dgp4fgp7Dgpr/gpqQnLCAn4Kit4KmH4Kic4KmHJywgJ+CqruCri+CqleCqsuCrh+CqsuCqvicsXG4gICAgJ+CsquCsoOCsvuCsl+CssuCsvicsICfgroXgrqngr4Hgrqrgr43grqrgrr/grq/grrXgr4gnLCAn4LCq4LCC4LCq4LC/4LCC4LCa4LCs4LCh4LC/4LCC4LCm4LC/JywgJ+CyleCys+CzgeCyueCyv+CyuOCysuCyvuCypicsICfgtIXgtK/gtJrgtY3gtJrgtYEnLCAn4La64LeQ4LeA4LeUIOC2tOC2q+C3kuC3gOC3lOC2qScsICfguKrguYjguIfguYHguKXguYnguKcnLCAn4YOS4YOQ4YOS4YOW4YOQ4YOV4YOc4YOY4YOa4YOYJywgJ+GLqOGJsOGIi+GKqScsICfhnpThnrbhnpPigIvhnpXhn5Lhnonhnr4nLFxuICAgICflr4Tku7blgpnku70nLCAn5a+E5Lu25YKZ5Lu9JywgJ+W3suWPkeS/oeaBrycsICfpgIHkv6HmuIjjgb/vvpLvvbDvvpknLCAn67Cc7IugIOuplOyLnOyngCcsICfrs7Trgrgg7Y647KeA7ZWoJ1xuICBdLFxuICAnXFxcXFRyYXNoJzogW1xuICAgICdhcnRpY29sZSDImXRlcnNlJywgJ2JpbicsICdib3J0dGFnbmEgb2JqZWt0JywgJ2RlbGV0ZWQnLCAnZGVsZXRlZCBpdGVtcycsICdkZWxldGVkIG1lc3NhZ2VzJywgJ2VsZW1lbnRpIGVsaW1pbmF0aScsXG4gICAgJ2VsZW1lbnRvcyBib3JyYWRvcycsICdlbGVtZW50b3MgZWxpbWluYWRvcycsICdnZWzDtnNjaHRlIG9iamVrdGUnLCAnaXRlbSBkaXBhZGFtJywgJ2l0ZW5zIGFwYWdhZG9zJywgJ2l0ZW5zIGV4Y2x1w61kb3MnLFxuICAgICdt4bulYyDEkcOjIHjDs2EnLCAnb2RzdHJhbsSbbsOpIHBvbG/Fvmt5JywgJ3Blc2FuIHRlcmhhcHVzJywgJ3BvaXN0ZXR1dCcsICdwcmFodCcsICdwcsO8Z2lrYXN0JywgJ3NpbGlubWnFnyDDtsSfZWxlcicsXG4gICAgJ3NsZXR0ZWRlIGJlc2tlZGVyJywgJ3NsZXR0ZWRlIGVsZW1lbnRlcicsICd0cmFzaCcsICd0w7Zyw7ZsdCBlbGVtZWsnLCAndXN1bmnEmXRlIHdpYWRvbW/Fm2NpJywgJ3ZlcndpamRlcmRlIGl0ZW1zJyxcbiAgICAndnltYXphbsOpIHNwcsOhdnknLCAnw6lsw6ltZW50cyBzdXBwcmltw6lzJywgJ9Cy0LjQtNCw0LvQtdC90ZYnLCAn0LbQvtC50YvQu9KT0LDQvdC00LDRgCcsICfRg9C00LDQu9C10L3QvdGL0LUnLCAn16TXqNeZ15jXmdedINep16DXnteX16fXlScsICfYp9mE2LnZhtin2LXYsSDYp9mE2YXYrdiw2YjZgdipJyxcbiAgICAn2YXZiNin2LHYryDYrdiw2YEg2LTYr9mHJywgJ+C4o+C4suC4ouC4geC4suC4o+C4l+C4teC5iOC4peC4micsICflt7LliKDpmaTpgq7ku7YnLCAn5bey5Yiq6Zmk6aCF55uuJywgJ+W3suWIqumZpOmgheebridcbiAgXSxcbiAgJ1xcXFxKdW5rJzogW1xuICAgICdidWxrIG1haWwnLCAnY29ycmVvIG5vIGRlc2VhZG8nLCAnY291cnJpZXIgaW5kw6lzaXJhYmxlJywgJ2lzdGVubWV5ZW4nLCAnaXN0ZW5tZXllbiBlLXBvc3RhJywgJ2p1bmsnLCAnbGV2w6lsc3plbcOpdCcsXG4gICAgJ25ldnnFvmlhZGFuw6EgcG/FoXRhJywgJ25ldnnFvsOhZGFuw6EgcG/FoXRhJywgJ25vIGRlc2VhZG8nLCAncG9zdGEgaW5kZXNpZGVyYXRhJywgJ3BvdXJyaWVsJywgJ3Jvc2thcG9zdGknLCAnc2tyw6RwcG9zdCcsXG4gICAgJ3NwYW0nLCAnc3BhbScsICdzcGFtb3dhbmllJywgJ3PDuHBwZWxwb3N0JywgJ3RoxrAgcsOhYycsICfRgdC/0LDQvCcsICfXk9eV15DXqCDXlteR15wnLCAn2KfZhNix2LPYp9im2YQg2KfZhNi52LTZiNin2KbZitipJywgJ9mH2LHYstmG2KfZhdmHJywgJ+C4quC5geC4m+C4oScsXG4gICAgJ+KAjuWeg+WcvumDteS7ticsICflnoPlnL7pgq7ku7YnLCAn5Z6D5Zy+6Zu76YO1J1xuICBdLFxuICAnXFxcXERyYWZ0cyc6IFtcbiAgICAnYmEgYnJvdWlsbG9uJywgJ2JvcnJhZG9yJywgJ2JvcnJhZG9yJywgJ2JvcnJhZG9yZXMnLCAnYm96emUnLCAnYnJvdWlsbG9ucycsICdi4bqjbiB0aOG6o28nLCAnY2lvcm5lJywgJ2NvbmNlcHRlbicsICdkcmFmJyxcbiAgICAnZHJhZnRzJywgJ2Ryw7ZnJywgJ2VudHfDvHJmZScsICdlc2JvcnJhbnlzJywgJ2dhcmFsYW1hbGFyJywgJ2loZSBlZGV0dXJ1JywgJ2lpZHJhZnRpJywgJ2l6aW5obGFrYScsICdqdW9kcmHFocSNaWFpJywgJ2tsYWRkJyxcbiAgICAna2xhZGRlcicsICdrb25jZXB0eScsICdrb25jZXB0eScsICdrb25zZXAnLCAna29uc2VwdGUnLCAna29waWUgcm9ib2N6ZScsICdsYXlpaMmZbMmZcicsICdsdW9ubm9rc2V0JywgJ21lbG5yYWtzdGknLCAnbWVyYWxvJyxcbiAgICAnbWVzYXpoZSB0w6sgcGFkw6tyZ3VhcmEnLCAnbWdhIGRyYWZ0JywgJ211c3RhbmRpZCcsICduYWNydGknLCAnbmFjcnRpJywgJ29zbnV0a2knLCAncGlzemtvemF0b2snLCAncmFzY3VuaG9zJywgJ3Jhc2ltdScsXG4gICAgJ3NraWNlJywgJ3Rhc2xha2xhcicsICd0c2FyYXJydW4gc2HGmW9ubmknLCAndXRrYXN0JywgJ3Zha2lyYW9rYScsICd2w6F6bGF0b2snLCAnemlycmlib3Jyb2FrJywgJ8Ogd+G7jW4gw6Br4buNcGFt4buNzIEnLCAnz4DPgc+Mz4fOtc65z4HOsScsXG4gICAgJ9C20L7QsdCw0LvQsNGAJywgJ9C90LDRhtGA0YLQuCcsICfQvdC+0L7RgNCz0YPRg9C0JywgJ9GB0LjRkdKz0L3QsNCy0LjRgScsICfRhdC+0LzQsNC60Lgg0YXQsNGC0LvQsNGAJywgJ9GH0LDRgNC90LDQstGW0LrRlicsICfRh9C10YDQvdC10YLQutC4JywgJ9GH0LXRgNC90L7QstC4JywgJ9GH0LXRgNC90L7QstC40LrQuCcsICfRh9C10YDQvdC+0LLQuNC60YLQtdGAJyxcbiAgICAn1b3Wh9Wh1aPWgNWl1oAnLCAn15jXmdeV15jXldeqJywgJ9mF2LPZiNiv2KfYqicsICfZhdiz2YjYr9in2KonLCAn2YXZiNiz2YjYr9uQJywgJ9m+24zYtCDZhtmI24zYs9mH2KcnLCAn2ojYsdin2YHZuS8nLCAn4KSh4KWN4KSw4KS+4KWe4KWN4KSfJywgJ+CkquCljeCksOCkvuCksOClguCkqicsICfgppbgprjgp5zgpr4nLCAn4KaW4Ka44Kec4Ka+JywgJ+CmoeCnjeCnsOCmvuCmq+CnjeCmnycsICfgqKHgqY3gqLDgqL7gqKvgqJ8nLCAn4Kqh4KuN4Kqw4Kq+4Kqr4KuN4Kqf4Kq4JyxcbiAgICAn4Kyh4K2N4Kyw4Ky+4Kyr4K2N4KyfJywgJ+CuteCusOCviOCuteCvgeCuleCus+CvjScsICfgsJrgsL/gsKTgsY3gsKTgsYEg4LCq4LGN4LCw4LCk4LGB4LCy4LGBJywgJ+CyleCysOCyoeCzgeCyl+Cys+CzgScsICfgtJXgtLDgtJ/gtYHgtJXgtLPgtY3igI0nLCAn4Laa4LeZ4Lan4LeU4La44LeKIOC2tOC2reC3iicsICfguInguJrguLHguJrguKPguYjguLLguIcnLCAn4YOb4YOd4YOc4YOQ4YOu4YOQ4YOW4YOU4YOR4YOYJywgJ+GIqOGJguGJhuGJvScsICfhnp/hnrbhnprhnpbhn5LhnprhnrbhnoQnLCAn5LiL5pu444GNJywgJ+iNieeovycsXG4gICAgJ+iNieeovycsICfojYnnqL8nLCAn7J6E7IucIOuztOq0gO2VqCdcbiAgXVxufVxuY29uc3QgU1BFQ0lBTF9VU0VfQk9YX0ZMQUdTID0gT2JqZWN0LmtleXMoU1BFQ0lBTF9VU0VfQk9YRVMpXG5cbi8qKlxuICogQ2hlY2tzIGlmIGEgbWFpbGJveCBpcyBmb3Igc3BlY2lhbCB1c2VcbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gbWFpbGJveFxuICogQHJldHVybiB7U3RyaW5nfSBTcGVjaWFsIHVzZSBmbGFnIChpZiBkZXRlY3RlZClcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrU3BlY2lhbFVzZSAobWFpbGJveCkge1xuICBpZiAobWFpbGJveC5mbGFncykge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgU1BFQ0lBTF9VU0VfRkxBR1MubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IHR5cGUgPSBTUEVDSUFMX1VTRV9GTEFHU1tpXVxuICAgICAgaWYgKChtYWlsYm94LmZsYWdzIHx8IFtdKS5pbmRleE9mKHR5cGUpID49IDApIHtcbiAgICAgICAgbWFpbGJveC5zcGVjaWFsVXNlID0gdHlwZVxuICAgICAgICBtYWlsYm94LnNwZWNpYWxVc2VGbGFnID0gdHlwZVxuICAgICAgICByZXR1cm4gdHlwZVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBjaGVja1NwZWNpYWxVc2VCeU5hbWUobWFpbGJveClcbn1cblxuZnVuY3Rpb24gY2hlY2tTcGVjaWFsVXNlQnlOYW1lIChtYWlsYm94KSB7XG4gIGNvbnN0IG5hbWUgPSBwcm9wT3IoJycsICduYW1lJywgbWFpbGJveCkudG9Mb3dlckNhc2UoKS50cmltKClcblxuICBmb3IgKGxldCBpID0gMDsgaSA8IFNQRUNJQUxfVVNFX0JPWF9GTEFHUy5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IHR5cGUgPSBTUEVDSUFMX1VTRV9CT1hfRkxBR1NbaV1cbiAgICBpZiAoU1BFQ0lBTF9VU0VfQk9YRVNbdHlwZV0uaW5kZXhPZihuYW1lKSA+PSAwKSB7XG4gICAgICBtYWlsYm94LnNwZWNpYWxVc2UgPSB0eXBlXG4gICAgICByZXR1cm4gdHlwZVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmYWxzZVxufVxuIl19 |
{ | ||
"name": "emailjs-imap-client", | ||
"version": "3.0.1", | ||
"version": "3.0.2", | ||
"homepage": "https://github.com/emailjs/emailjs-imap-client", | ||
@@ -5,0 +5,0 @@ "description": "JavaScript IMAP client", |
/* eslint-disable no-unused-expressions */ | ||
import hoodiecrow from 'hoodiecrow-imap' | ||
import ImapClient from './client' | ||
import ImapClient from '..' | ||
import { parseSEARCH } from './command-parser' | ||
@@ -6,0 +6,0 @@ import { buildSEARCHCommand } from './command-builder' |
@@ -0,1 +1,3 @@ | ||
import ImapClient from './client' | ||
export { | ||
@@ -10,2 +12,2 @@ LOG_LEVEL_NONE, | ||
export * from './client' | ||
export default ImapClient |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
705252
11059