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

@axway/amplify-auth-sdk

Package Overview
Dependencies
Maintainers
8
Versions
37
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@axway/amplify-auth-sdk - npm Package Compare versions

Comparing version 0.1.3 to 0.2.0

12

dist/endpoints.js

@@ -17,2 +17,3 @@ "use strict";

* @param {String} params.baseUrl - The base URL.
* @param {String} [params.platformUrl] - The platform URL.
* @param {String} params.realm - The authentication realm.

@@ -23,2 +24,3 @@ * @returns {Object}

baseUrl,
platformUrl,
realm

@@ -30,5 +32,9 @@ } = {}) {

if (platformUrl && typeof platformUrl !== 'string') {
throw _errors.default.INVALID_ARGUMENT('Expected platformUrl to be a non-empty string');
}
if (!realm || typeof realm !== 'string') {
throw _errors.default.INVALID_ARGUMENT('Expected realm to be a non-empty string');
} // strip the trailing slash
} // strip the trailing slashes

@@ -40,3 +46,5 @@

certs: `${baseUrl}/auth/realms/${realm}/protocol/openid-connect/certs`,
findSession: platformUrl ? `${platformUrl.replace(/\/$/, '')}/api/v1/auth/findSession` : undefined,
logout: `${baseUrl}/auth/realms/${realm}/protocol/openid-connect/logout`,
switchLoggedInOrg: platformUrl ? `${platformUrl.replace(/\/$/, '')}/api/v1/auth/switchLoggedInOrg` : undefined,
token: `${baseUrl}/auth/realms/${realm}/protocol/openid-connect/token`,

@@ -47,2 +55,2 @@ userinfo: `${baseUrl}/auth/realms/${realm}/protocol/openid-connect/userinfo`,

}
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImVuZHBvaW50cy5qcyJdLCJuYW1lcyI6WyJnZXRFbmRwb2ludHMiLCJiYXNlVXJsIiwicmVhbG0iLCJFIiwiSU5WQUxJRF9BUkdVTUVOVCIsInJlcGxhY2UiLCJhdXRoIiwiY2VydHMiLCJsb2dvdXQiLCJ0b2tlbiIsInVzZXJpbmZvIiwid2VsbEtub3duIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7Ozs7QUFFQTs7Ozs7Ozs7QUFRZSxTQUFTQSxZQUFULENBQXNCO0FBQUVDLEVBQUFBLE9BQUY7QUFBV0MsRUFBQUE7QUFBWCxJQUFxQixFQUEzQyxFQUErQztBQUM3RCxNQUFJLENBQUNELE9BQUQsSUFBWSxPQUFPQSxPQUFQLEtBQW1CLFFBQW5DLEVBQTZDO0FBQzVDLFVBQU1FLGdCQUFFQyxnQkFBRixDQUFtQiwyQ0FBbkIsQ0FBTjtBQUNBOztBQUVELE1BQUksQ0FBQ0YsS0FBRCxJQUFVLE9BQU9BLEtBQVAsS0FBaUIsUUFBL0IsRUFBeUM7QUFDeEMsVUFBTUMsZ0JBQUVDLGdCQUFGLENBQW1CLHlDQUFuQixDQUFOO0FBQ0EsR0FQNEQsQ0FTN0Q7OztBQUNBSCxFQUFBQSxPQUFPLEdBQUdBLE9BQU8sQ0FBQ0ksT0FBUixDQUFnQixLQUFoQixFQUF1QixFQUF2QixDQUFWO0FBRUEsU0FBTztBQUNOQyxJQUFBQSxJQUFJLEVBQVEsR0FBRUwsT0FBUSxnQkFBZUMsS0FBTSwrQkFEckM7QUFFTkssSUFBQUEsS0FBSyxFQUFPLEdBQUVOLE9BQVEsZ0JBQWVDLEtBQU0sZ0NBRnJDO0FBR05NLElBQUFBLE1BQU0sRUFBTSxHQUFFUCxPQUFRLGdCQUFlQyxLQUFNLGlDQUhyQztBQUlOTyxJQUFBQSxLQUFLLEVBQU8sR0FBRVIsT0FBUSxnQkFBZUMsS0FBTSxnQ0FKckM7QUFLTlEsSUFBQUEsUUFBUSxFQUFJLEdBQUVULE9BQVEsZ0JBQWVDLEtBQU0sbUNBTHJDO0FBTU5TLElBQUFBLFNBQVMsRUFBRyxHQUFFVixPQUFRLGdCQUFlQyxLQUFNO0FBTnJDLEdBQVA7QUFRQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBFIGZyb20gJy4vZXJyb3JzJztcblxuLyoqXG4gKiBDb25zdHJ1Y3RzIGFsbCBlbmRwb2ludHMuXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHBhcmFtcyAtIFJlcXVpcmVkIHBhcmFtZXRlcnMuXG4gKiBAcGFyYW0ge1N0cmluZ30gcGFyYW1zLmJhc2VVcmwgLSBUaGUgYmFzZSBVUkwuXG4gKiBAcGFyYW0ge1N0cmluZ30gcGFyYW1zLnJlYWxtIC0gVGhlIGF1dGhlbnRpY2F0aW9uIHJlYWxtLlxuICogQHJldHVybnMge09iamVjdH1cbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZ2V0RW5kcG9pbnRzKHsgYmFzZVVybCwgcmVhbG0gfSA9IHt9KSB7XG5cdGlmICghYmFzZVVybCB8fCB0eXBlb2YgYmFzZVVybCAhPT0gJ3N0cmluZycpIHtcblx0XHR0aHJvdyBFLklOVkFMSURfQVJHVU1FTlQoJ0V4cGVjdGVkIGJhc2VVcmwgdG8gYmUgYSBub24tZW1wdHkgc3RyaW5nJyk7XG5cdH1cblxuXHRpZiAoIXJlYWxtIHx8IHR5cGVvZiByZWFsbSAhPT0gJ3N0cmluZycpIHtcblx0XHR0aHJvdyBFLklOVkFMSURfQVJHVU1FTlQoJ0V4cGVjdGVkIHJlYWxtIHRvIGJlIGEgbm9uLWVtcHR5IHN0cmluZycpO1xuXHR9XG5cblx0Ly8gc3RyaXAgdGhlIHRyYWlsaW5nIHNsYXNoXG5cdGJhc2VVcmwgPSBiYXNlVXJsLnJlcGxhY2UoL1xcLyQvLCAnJyk7XG5cblx0cmV0dXJuIHtcblx0XHRhdXRoOiAgICAgIGAke2Jhc2VVcmx9L2F1dGgvcmVhbG1zLyR7cmVhbG19L3Byb3RvY29sL29wZW5pZC1jb25uZWN0L2F1dGhgLFxuXHRcdGNlcnRzOiAgICAgYCR7YmFzZVVybH0vYXV0aC9yZWFsbXMvJHtyZWFsbX0vcHJvdG9jb2wvb3BlbmlkLWNvbm5lY3QvY2VydHNgLFxuXHRcdGxvZ291dDogICAgYCR7YmFzZVVybH0vYXV0aC9yZWFsbXMvJHtyZWFsbX0vcHJvdG9jb2wvb3BlbmlkLWNvbm5lY3QvbG9nb3V0YCxcblx0XHR0b2tlbjogICAgIGAke2Jhc2VVcmx9L2F1dGgvcmVhbG1zLyR7cmVhbG19L3Byb3RvY29sL29wZW5pZC1jb25uZWN0L3Rva2VuYCxcblx0XHR1c2VyaW5mbzogIGAke2Jhc2VVcmx9L2F1dGgvcmVhbG1zLyR7cmVhbG19L3Byb3RvY29sL29wZW5pZC1jb25uZWN0L3VzZXJpbmZvYCxcblx0XHR3ZWxsS25vd246IGAke2Jhc2VVcmx9L2F1dGgvcmVhbG1zLyR7cmVhbG19Ly53ZWxsLWtub3duL29wZW5pZC1jb25maWd1cmF0aW9uYFxuXHR9O1xufVxuIl0sImZpbGUiOiJlbmRwb2ludHMuanMifQ==
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImVuZHBvaW50cy5qcyJdLCJuYW1lcyI6WyJnZXRFbmRwb2ludHMiLCJiYXNlVXJsIiwicGxhdGZvcm1VcmwiLCJyZWFsbSIsIkUiLCJJTlZBTElEX0FSR1VNRU5UIiwicmVwbGFjZSIsImF1dGgiLCJjZXJ0cyIsImZpbmRTZXNzaW9uIiwidW5kZWZpbmVkIiwibG9nb3V0Iiwic3dpdGNoTG9nZ2VkSW5PcmciLCJ0b2tlbiIsInVzZXJpbmZvIiwid2VsbEtub3duIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7Ozs7QUFFQTs7Ozs7Ozs7O0FBU2UsU0FBU0EsWUFBVCxDQUFzQjtBQUFFQyxFQUFBQSxPQUFGO0FBQVdDLEVBQUFBLFdBQVg7QUFBd0JDLEVBQUFBO0FBQXhCLElBQWtDLEVBQXhELEVBQTREO0FBQzFFLE1BQUksQ0FBQ0YsT0FBRCxJQUFZLE9BQU9BLE9BQVAsS0FBbUIsUUFBbkMsRUFBNkM7QUFDNUMsVUFBTUcsZ0JBQUVDLGdCQUFGLENBQW1CLDJDQUFuQixDQUFOO0FBQ0E7O0FBRUQsTUFBSUgsV0FBVyxJQUFJLE9BQU9BLFdBQVAsS0FBdUIsUUFBMUMsRUFBb0Q7QUFDbkQsVUFBTUUsZ0JBQUVDLGdCQUFGLENBQW1CLCtDQUFuQixDQUFOO0FBQ0E7O0FBRUQsTUFBSSxDQUFDRixLQUFELElBQVUsT0FBT0EsS0FBUCxLQUFpQixRQUEvQixFQUF5QztBQUN4QyxVQUFNQyxnQkFBRUMsZ0JBQUYsQ0FBbUIseUNBQW5CLENBQU47QUFDQSxHQVh5RSxDQWExRTs7O0FBQ0FKLEVBQUFBLE9BQU8sR0FBR0EsT0FBTyxDQUFDSyxPQUFSLENBQWdCLEtBQWhCLEVBQXVCLEVBQXZCLENBQVY7QUFFQSxTQUFPO0FBQ05DLElBQUFBLElBQUksRUFBZ0IsR0FBRU4sT0FBUSxnQkFBZUUsS0FBTSwrQkFEN0M7QUFFTkssSUFBQUEsS0FBSyxFQUFlLEdBQUVQLE9BQVEsZ0JBQWVFLEtBQU0sZ0NBRjdDO0FBR05NLElBQUFBLFdBQVcsRUFBUVAsV0FBVyxHQUFJLEdBQUVBLFdBQVcsQ0FBQ0ksT0FBWixDQUFvQixLQUFwQixFQUEyQixFQUEzQixDQUErQiwwQkFBckMsR0FBaUVJLFNBSHpGO0FBSU5DLElBQUFBLE1BQU0sRUFBYyxHQUFFVixPQUFRLGdCQUFlRSxLQUFNLGlDQUo3QztBQUtOUyxJQUFBQSxpQkFBaUIsRUFBRVYsV0FBVyxHQUFJLEdBQUVBLFdBQVcsQ0FBQ0ksT0FBWixDQUFvQixLQUFwQixFQUEyQixFQUEzQixDQUErQixnQ0FBckMsR0FBdUVJLFNBTC9GO0FBTU5HLElBQUFBLEtBQUssRUFBZSxHQUFFWixPQUFRLGdCQUFlRSxLQUFNLGdDQU43QztBQU9OVyxJQUFBQSxRQUFRLEVBQVksR0FBRWIsT0FBUSxnQkFBZUUsS0FBTSxtQ0FQN0M7QUFRTlksSUFBQUEsU0FBUyxFQUFXLEdBQUVkLE9BQVEsZ0JBQWVFLEtBQU07QUFSN0MsR0FBUDtBQVVBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEUgZnJvbSAnLi9lcnJvcnMnO1xuXG4vKipcbiAqIENvbnN0cnVjdHMgYWxsIGVuZHBvaW50cy5cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcGFyYW1zIC0gUmVxdWlyZWQgcGFyYW1ldGVycy5cbiAqIEBwYXJhbSB7U3RyaW5nfSBwYXJhbXMuYmFzZVVybCAtIFRoZSBiYXNlIFVSTC5cbiAqIEBwYXJhbSB7U3RyaW5nfSBbcGFyYW1zLnBsYXRmb3JtVXJsXSAtIFRoZSBwbGF0Zm9ybSBVUkwuXG4gKiBAcGFyYW0ge1N0cmluZ30gcGFyYW1zLnJlYWxtIC0gVGhlIGF1dGhlbnRpY2F0aW9uIHJlYWxtLlxuICogQHJldHVybnMge09iamVjdH1cbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZ2V0RW5kcG9pbnRzKHsgYmFzZVVybCwgcGxhdGZvcm1VcmwsIHJlYWxtIH0gPSB7fSkge1xuXHRpZiAoIWJhc2VVcmwgfHwgdHlwZW9mIGJhc2VVcmwgIT09ICdzdHJpbmcnKSB7XG5cdFx0dGhyb3cgRS5JTlZBTElEX0FSR1VNRU5UKCdFeHBlY3RlZCBiYXNlVXJsIHRvIGJlIGEgbm9uLWVtcHR5IHN0cmluZycpO1xuXHR9XG5cblx0aWYgKHBsYXRmb3JtVXJsICYmIHR5cGVvZiBwbGF0Zm9ybVVybCAhPT0gJ3N0cmluZycpIHtcblx0XHR0aHJvdyBFLklOVkFMSURfQVJHVU1FTlQoJ0V4cGVjdGVkIHBsYXRmb3JtVXJsIHRvIGJlIGEgbm9uLWVtcHR5IHN0cmluZycpO1xuXHR9XG5cblx0aWYgKCFyZWFsbSB8fCB0eXBlb2YgcmVhbG0gIT09ICdzdHJpbmcnKSB7XG5cdFx0dGhyb3cgRS5JTlZBTElEX0FSR1VNRU5UKCdFeHBlY3RlZCByZWFsbSB0byBiZSBhIG5vbi1lbXB0eSBzdHJpbmcnKTtcblx0fVxuXG5cdC8vIHN0cmlwIHRoZSB0cmFpbGluZyBzbGFzaGVzXG5cdGJhc2VVcmwgPSBiYXNlVXJsLnJlcGxhY2UoL1xcLyQvLCAnJyk7XG5cblx0cmV0dXJuIHtcblx0XHRhdXRoOiAgICAgICAgICAgICAgYCR7YmFzZVVybH0vYXV0aC9yZWFsbXMvJHtyZWFsbX0vcHJvdG9jb2wvb3BlbmlkLWNvbm5lY3QvYXV0aGAsXG5cdFx0Y2VydHM6ICAgICAgICAgICAgIGAke2Jhc2VVcmx9L2F1dGgvcmVhbG1zLyR7cmVhbG19L3Byb3RvY29sL29wZW5pZC1jb25uZWN0L2NlcnRzYCxcblx0XHRmaW5kU2Vzc2lvbjogICAgICAgcGxhdGZvcm1VcmwgPyBgJHtwbGF0Zm9ybVVybC5yZXBsYWNlKC9cXC8kLywgJycpfS9hcGkvdjEvYXV0aC9maW5kU2Vzc2lvbmAgOiB1bmRlZmluZWQsXG5cdFx0bG9nb3V0OiAgICAgICAgICAgIGAke2Jhc2VVcmx9L2F1dGgvcmVhbG1zLyR7cmVhbG19L3Byb3RvY29sL29wZW5pZC1jb25uZWN0L2xvZ291dGAsXG5cdFx0c3dpdGNoTG9nZ2VkSW5Pcmc6IHBsYXRmb3JtVXJsID8gYCR7cGxhdGZvcm1VcmwucmVwbGFjZSgvXFwvJC8sICcnKX0vYXBpL3YxL2F1dGgvc3dpdGNoTG9nZ2VkSW5PcmdgIDogdW5kZWZpbmVkLFxuXHRcdHRva2VuOiAgICAgICAgICAgICBgJHtiYXNlVXJsfS9hdXRoL3JlYWxtcy8ke3JlYWxtfS9wcm90b2NvbC9vcGVuaWQtY29ubmVjdC90b2tlbmAsXG5cdFx0dXNlcmluZm86ICAgICAgICAgIGAke2Jhc2VVcmx9L2F1dGgvcmVhbG1zLyR7cmVhbG19L3Byb3RvY29sL29wZW5pZC1jb25uZWN0L3VzZXJpbmZvYCxcblx0XHR3ZWxsS25vd246ICAgICAgICAgYCR7YmFzZVVybH0vYXV0aC9yZWFsbXMvJHtyZWFsbX0vLndlbGwta25vd24vb3BlbmlkLWNvbmZpZ3VyYXRpb25gXG5cdH07XG59XG4iXSwiZmlsZSI6ImVuZHBvaW50cy5qcyJ9

14

dist/environments.js

@@ -6,3 +6,3 @@ "use strict";

});
exports.default = void 0;
exports.default = exports.environments = void 0;

@@ -16,13 +16,17 @@ /**

dev: {
baseUrl: 'https://login-dev.axway.com'
baseUrl: 'https://login-dev.axway.com',
platformUrl: ''
},
preprod: {
baseUrl: 'https://login-preprod.axway.com'
baseUrl: 'https://login-preprod.axway.com',
platformUrl: 'https://platform-preprod.axwaytest.net'
},
prod: {
baseUrl: 'https://login.axway.com'
baseUrl: 'https://login.axway.com',
platformUrl: 'https://platform.axway.com'
}
};
exports.environments = environments;
var _default = environments;
exports.default = _default;
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImVudmlyb25tZW50cy5qcyJdLCJuYW1lcyI6WyJlbnZpcm9ubWVudHMiLCJkZXYiLCJiYXNlVXJsIiwicHJlcHJvZCIsInByb2QiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7Ozs7QUFLQSxNQUFNQSxZQUFZLEdBQUc7QUFDcEJDLEVBQUFBLEdBQUcsRUFBRTtBQUNKQyxJQUFBQSxPQUFPLEVBQUU7QUFETCxHQURlO0FBSXBCQyxFQUFBQSxPQUFPLEVBQUU7QUFDUkQsSUFBQUEsT0FBTyxFQUFFO0FBREQsR0FKVztBQU9wQkUsRUFBQUEsSUFBSSxFQUFFO0FBQ0xGLElBQUFBLE9BQU8sRUFBRTtBQURKO0FBUGMsQ0FBckI7ZUFZZUYsWSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRW52aXJvbm1lbnQgc3BlY2lmaWMgZGVmYXVsdCBzZXR0aW5ncy5cbiAqXG4gKiBAdHlwZSB7T2JqZWN0fVxuICovXG5jb25zdCBlbnZpcm9ubWVudHMgPSB7XG5cdGRldjoge1xuXHRcdGJhc2VVcmw6ICdodHRwczovL2xvZ2luLWRldi5heHdheS5jb20nXG5cdH0sXG5cdHByZXByb2Q6IHtcblx0XHRiYXNlVXJsOiAnaHR0cHM6Ly9sb2dpbi1wcmVwcm9kLmF4d2F5LmNvbSdcblx0fSxcblx0cHJvZDoge1xuXHRcdGJhc2VVcmw6ICdodHRwczovL2xvZ2luLmF4d2F5LmNvbSdcblx0fVxufTtcblxuZXhwb3J0IGRlZmF1bHQgZW52aXJvbm1lbnRzO1xuIl0sImZpbGUiOiJlbnZpcm9ubWVudHMuanMifQ==
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImVudmlyb25tZW50cy5qcyJdLCJuYW1lcyI6WyJlbnZpcm9ubWVudHMiLCJkZXYiLCJiYXNlVXJsIiwicGxhdGZvcm1VcmwiLCJwcmVwcm9kIiwicHJvZCJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOzs7OztBQUtPLE1BQU1BLFlBQVksR0FBRztBQUMzQkMsRUFBQUEsR0FBRyxFQUFFO0FBQ0pDLElBQUFBLE9BQU8sRUFBRSw2QkFETDtBQUVKQyxJQUFBQSxXQUFXLEVBQUU7QUFGVCxHQURzQjtBQUszQkMsRUFBQUEsT0FBTyxFQUFFO0FBQ1JGLElBQUFBLE9BQU8sRUFBRSxpQ0FERDtBQUVSQyxJQUFBQSxXQUFXLEVBQUU7QUFGTCxHQUxrQjtBQVMzQkUsRUFBQUEsSUFBSSxFQUFFO0FBQ0xILElBQUFBLE9BQU8sRUFBRSx5QkFESjtBQUVMQyxJQUFBQSxXQUFXLEVBQUU7QUFGUjtBQVRxQixDQUFyQjs7ZUFlUUgsWSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRW52aXJvbm1lbnQgc3BlY2lmaWMgZGVmYXVsdCBzZXR0aW5ncy5cbiAqXG4gKiBAdHlwZSB7T2JqZWN0fVxuICovXG5leHBvcnQgY29uc3QgZW52aXJvbm1lbnRzID0ge1xuXHRkZXY6IHtcblx0XHRiYXNlVXJsOiAnaHR0cHM6Ly9sb2dpbi1kZXYuYXh3YXkuY29tJyxcblx0XHRwbGF0Zm9ybVVybDogJydcblx0fSxcblx0cHJlcHJvZDoge1xuXHRcdGJhc2VVcmw6ICdodHRwczovL2xvZ2luLXByZXByb2QuYXh3YXkuY29tJyxcblx0XHRwbGF0Zm9ybVVybDogJ2h0dHBzOi8vcGxhdGZvcm0tcHJlcHJvZC5heHdheXRlc3QubmV0J1xuXHR9LFxuXHRwcm9kOiB7XG5cdFx0YmFzZVVybDogJ2h0dHBzOi8vbG9naW4uYXh3YXkuY29tJyxcblx0XHRwbGF0Zm9ybVVybDogJ2h0dHBzOi8vcGxhdGZvcm0uYXh3YXkuY29tJ1xuXHR9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBlbnZpcm9ubWVudHM7XG4iXSwiZmlsZSI6ImVudmlyb25tZW50cy5qcyJ9

@@ -13,3 +13,2 @@ "use strict";

createError('INVALID_ARGUMENT', TypeError, 'A function argument is undefined or the incorrect data type');
createError('INVALID_BASE_URL', Error, 'Invalid base URL');
createError('INVALID_FILE', Error, 'The file does not exist or access is denied');

@@ -24,2 +23,4 @@ createError('INVALID_PARAMETER', TypeError, 'A parameter was not a valid value or type');

createError('MISSING_REQUIRED_PARAMETER', TypeError, 'A required parameter was not specified or not a valid type');
createError('ORG_SWITCH_FAILED', Error, 'Failed to switch the current org for some reason');
createError('REQUEST_FAILED', Error, 'An HTTP request has errored or returned an invalid response');
createError('TOKEN_EXPIRED', Error, 'The access token is expired');

@@ -76,2 +77,2 @@ /**

}
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImVycm9ycy5qcyJdLCJuYW1lcyI6WyJlcnJvcnMiLCJjcmVhdGVFcnJvciIsIkVycm9yIiwiVHlwZUVycm9yIiwiUmFuZ2VFcnJvciIsImNvZGUiLCJ0eXBlIiwiZGVzYyIsIm1zZyIsIm1ldGEiLCJlcnIiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiY29uZmlndXJhYmxlIiwiZW51bWVyYWJsZSIsIndyaXRhYmxlIiwidmFsdWUiLCJ1bmRlZmluZWQiLCJuYW1lIiwidG9TdHJpbmciXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLE1BQU1BLE1BQU0sR0FBRyxFQUFmO2VBQ2VBLE07O0FBRWZDLFdBQVcsQ0FBQyxhQUFELEVBQStCQyxLQUEvQixFQUEyQyxzQkFBM0MsQ0FBWDtBQUNBRCxXQUFXLENBQUMsY0FBRCxFQUErQkMsS0FBL0IsRUFBMkMsMkRBQTNDLENBQVg7QUFDQUQsV0FBVyxDQUFDLGtCQUFELEVBQStCRSxTQUEvQixFQUEyQyw2REFBM0MsQ0FBWDtBQUNBRixXQUFXLENBQUMsa0JBQUQsRUFBK0JDLEtBQS9CLEVBQTJDLGtCQUEzQyxDQUFYO0FBQ0FELFdBQVcsQ0FBQyxjQUFELEVBQStCQyxLQUEvQixFQUEyQyw2Q0FBM0MsQ0FBWDtBQUNBRCxXQUFXLENBQUMsbUJBQUQsRUFBK0JFLFNBQS9CLEVBQTJDLDJDQUEzQyxDQUFYO0FBQ0FGLFdBQVcsQ0FBQyxlQUFELEVBQStCRyxVQUEvQixFQUEyQyxzREFBM0MsQ0FBWDtBQUNBSCxXQUFXLENBQUMsZUFBRCxFQUErQkMsS0FBL0IsRUFBMkMsZ0NBQTNDLENBQVg7QUFDQUQsV0FBVyxDQUFDLGVBQUQsRUFBK0JDLEtBQS9CLEVBQTJDLDBDQUEzQyxDQUFYO0FBQ0FELFdBQVcsQ0FBQyxnQkFBRCxFQUErQkMsS0FBL0IsRUFBMkMsbUJBQTNDLENBQVg7QUFDQUQsV0FBVyxDQUFDLGtCQUFELEVBQStCQyxLQUEvQixFQUEyQyx1Q0FBM0MsQ0FBWDtBQUNBRCxXQUFXLENBQUMsbUJBQUQsRUFBK0JFLFNBQS9CLEVBQTJDLG9DQUEzQyxDQUFYO0FBQ0FGLFdBQVcsQ0FBQyw0QkFBRCxFQUErQkUsU0FBL0IsRUFBMkMsNERBQTNDLENBQVg7QUFDQUYsV0FBVyxDQUFDLGVBQUQsRUFBK0JDLEtBQS9CLEVBQTJDLDZCQUEzQyxDQUFYO0FBRUE7Ozs7Ozs7O0FBT0EsU0FBU0QsV0FBVCxDQUFxQkksSUFBckIsRUFBMkJDLElBQTNCLEVBQWlDQyxJQUFqQyxFQUF1QztBQUN0Q1AsRUFBQUEsTUFBTSxDQUFDSyxJQUFELENBQU4sR0FBZSxVQUFVRyxHQUFWLEVBQWVDLElBQWYsRUFBcUI7QUFDbkMsVUFBTUMsR0FBRyxHQUFHLElBQUlKLElBQUosQ0FBU0UsR0FBVCxDQUFaOztBQUVBLFFBQUlELElBQUosRUFBVTtBQUNULFVBQUksQ0FBQ0UsSUFBTCxFQUFXO0FBQ1ZBLFFBQUFBLElBQUksR0FBRyxFQUFQO0FBQ0E7O0FBQ0RBLE1BQUFBLElBQUksQ0FBQ0YsSUFBTCxHQUFZQSxJQUFaO0FBQ0E7O0FBRUQsV0FBT0ksTUFBTSxDQUFDQyxnQkFBUCxDQUF3QkYsR0FBeEIsRUFBNkI7QUFDbkNMLE1BQUFBLElBQUksRUFBRTtBQUNMUSxRQUFBQSxZQUFZLEVBQUUsSUFEVDtBQUVMQyxRQUFBQSxVQUFVLEVBQUUsSUFGUDtBQUdMQyxRQUFBQSxRQUFRLEVBQUUsSUFITDtBQUlMQyxRQUFBQSxLQUFLLEVBQUcsT0FBTVgsSUFBSztBQUpkLE9BRDZCO0FBT25DSSxNQUFBQSxJQUFJLEVBQUU7QUFDTEksUUFBQUEsWUFBWSxFQUFFLElBRFQ7QUFFTEcsUUFBQUEsS0FBSyxFQUFFUCxJQUFJLElBQUlRLFNBRlY7QUFHTEYsUUFBQUEsUUFBUSxFQUFFO0FBSEw7QUFQNkIsS0FBN0IsQ0FBUDtBQWFBLEdBdkJEOztBQXlCQUosRUFBQUEsTUFBTSxDQUFDQyxnQkFBUCxDQUF3QlosTUFBTSxDQUFDSyxJQUFELENBQTlCLEVBQXNDO0FBQ3JDYSxJQUFBQSxJQUFJLEVBQUU7QUFDTEwsTUFBQUEsWUFBWSxFQUFFLElBRFQ7QUFFTEcsTUFBQUEsS0FBSyxFQUFFWCxJQUZGO0FBR0xVLE1BQUFBLFFBQVEsRUFBRTtBQUhMLEtBRCtCO0FBTXJDSSxJQUFBQSxRQUFRLEVBQUU7QUFDVE4sTUFBQUEsWUFBWSxFQUFFLElBREw7QUFFVEcsTUFBQUEsS0FBSyxFQUFFLFNBQVNHLFFBQVQsR0FBb0I7QUFDMUIsZUFBUSxPQUFNZCxJQUFLLEVBQW5CO0FBQ0EsT0FKUTtBQUtUVSxNQUFBQSxRQUFRLEVBQUU7QUFMRDtBQU4yQixHQUF0QztBQWNBIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZXJyb3JzID0ge307XG5leHBvcnQgZGVmYXVsdCBlcnJvcnM7XG5cbmNyZWF0ZUVycm9yKCdBVVRIX0ZBSUxFRCcsICAgICAgICAgICAgICAgIEVycm9yLCAgICAgICdBdXRob3JpemF0aW9uIGZhaWxlZCcpO1xuY3JlYXRlRXJyb3IoJ0FVVEhfVElNRU9VVCcsICAgICAgICAgICAgICAgRXJyb3IsICAgICAgJ0Egc3VjY2Vzc2Z1bCBsb2dpbiBkaWQgbm90IGhhcHBlbiB3aXRoaW4gdGhlIGFsbG93ZWQgdGltZScpO1xuY3JlYXRlRXJyb3IoJ0lOVkFMSURfQVJHVU1FTlQnLCAgICAgICAgICAgVHlwZUVycm9yLCAgJ0EgZnVuY3Rpb24gYXJndW1lbnQgaXMgdW5kZWZpbmVkIG9yIHRoZSBpbmNvcnJlY3QgZGF0YSB0eXBlJyk7XG5jcmVhdGVFcnJvcignSU5WQUxJRF9CQVNFX1VSTCcsICAgICAgICAgICBFcnJvciwgICAgICAnSW52YWxpZCBiYXNlIFVSTCcpO1xuY3JlYXRlRXJyb3IoJ0lOVkFMSURfRklMRScsICAgICAgICAgICAgICAgRXJyb3IsICAgICAgJ1RoZSBmaWxlIGRvZXMgbm90IGV4aXN0IG9yIGFjY2VzcyBpcyBkZW5pZWQnKTtcbmNyZWF0ZUVycm9yKCdJTlZBTElEX1BBUkFNRVRFUicsICAgICAgICAgIFR5cGVFcnJvciwgICdBIHBhcmFtZXRlciB3YXMgbm90IGEgdmFsaWQgdmFsdWUgb3IgdHlwZScpO1xuY3JlYXRlRXJyb3IoJ0lOVkFMSURfUkFOR0UnLCAgICAgICAgICAgICAgUmFuZ2VFcnJvciwgJ1RoZSB2YWx1ZSBpcyBub3Qgd2l0aGluIHRoZSBhY2NlcHRhYmxlIG1pbi9tYXggcmFuZ2UnKTtcbmNyZWF0ZUVycm9yKCdJTlZBTElEX1RPS0VOJywgICAgICAgICAgICAgIEVycm9yLCAgICAgICdUaGUgdG9rZW4gY291bGQgbm90IGJlIGRlY29kZWQnKTtcbmNyZWF0ZUVycm9yKCdJTlZBTElEX1ZBTFVFJywgICAgICAgICAgICAgIEVycm9yLCAgICAgICdUaGUgc3BlY2lmaWVkIHZhbHVlIGlzIGFuIGFjY2VwdGVkIHZhbHVlJyk7XG5jcmVhdGVFcnJvcignTE9HSU5fUkVRVUlSRUQnLCAgICAgICAgICAgICBFcnJvciwgICAgICAnTG9naW4gaXMgcmVxdWlyZWQnKTtcbmNyZWF0ZUVycm9yKCdLRVlUQVJfTk9UX0ZPVU5EJywgICAgICAgICAgIEVycm9yLCAgICAgICdUaGUgdG9rZW4gc3RvcmUgY291bGQgbm90IGZpbmQga2V5dGFyJyk7XG5jcmVhdGVFcnJvcignTUlTU0lOR19BVVRIX0NPREUnLCAgICAgICAgICBUeXBlRXJyb3IsICAnQW4gYXV0aG9yaXphdGlvbiBjb2RlIHdhcyBleHBlY3RlZCcpO1xuY3JlYXRlRXJyb3IoJ01JU1NJTkdfUkVRVUlSRURfUEFSQU1FVEVSJywgVHlwZUVycm9yLCAgJ0EgcmVxdWlyZWQgcGFyYW1ldGVyIHdhcyBub3Qgc3BlY2lmaWVkIG9yIG5vdCBhIHZhbGlkIHR5cGUnKTtcbmNyZWF0ZUVycm9yKCdUT0tFTl9FWFBJUkVEJywgICAgICAgICAgICAgIEVycm9yLCAgICAgICdUaGUgYWNjZXNzIHRva2VuIGlzIGV4cGlyZWQnKTtcblxuLyoqXG4gKiBDcmVhdGVzIGFuIHRoZSBlcnJvciBvYmplY3QgYW5kIHBvcHVsYXRlcyB0aGUgbWVzc2FnZSwgY29kZSwgYW5kIG1ldGFkYXRhLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBjb2RlIC0gVGhlIGVycm9yIGNvZGUuXG4gKiBAcGFyYW0ge0Vycm9yfFJhbmdlRXJyb3J8VHlwZUVycm9yfSB0eXBlIC0gQW4gaW5zdGFudGlhYmxlIGVycm9yIG9iamVjdC5cbiAqIEBwYXJhbSB7U3RyaW5nfSBkZXNjIC0gQSBnZW5lcmljIGVycm9yIGRlc2NyaXB0aW9uLlxuICovXG5mdW5jdGlvbiBjcmVhdGVFcnJvcihjb2RlLCB0eXBlLCBkZXNjKSB7XG5cdGVycm9yc1tjb2RlXSA9IGZ1bmN0aW9uIChtc2csIG1ldGEpIHtcblx0XHRjb25zdCBlcnIgPSBuZXcgdHlwZShtc2cpO1xuXG5cdFx0aWYgKGRlc2MpIHtcblx0XHRcdGlmICghbWV0YSkge1xuXHRcdFx0XHRtZXRhID0ge307XG5cdFx0XHR9XG5cdFx0XHRtZXRhLmRlc2MgPSBkZXNjO1xuXHRcdH1cblxuXHRcdHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhlcnIsIHtcblx0XHRcdGNvZGU6IHtcblx0XHRcdFx0Y29uZmlndXJhYmxlOiB0cnVlLFxuXHRcdFx0XHRlbnVtZXJhYmxlOiB0cnVlLFxuXHRcdFx0XHR3cml0YWJsZTogdHJ1ZSxcblx0XHRcdFx0dmFsdWU6IGBFUlJfJHtjb2RlfWBcblx0XHRcdH0sXG5cdFx0XHRtZXRhOiB7XG5cdFx0XHRcdGNvbmZpZ3VyYWJsZTogdHJ1ZSxcblx0XHRcdFx0dmFsdWU6IG1ldGEgfHwgdW5kZWZpbmVkLFxuXHRcdFx0XHR3cml0YWJsZTogdHJ1ZVxuXHRcdFx0fVxuXHRcdH0pO1xuXHR9O1xuXG5cdE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGVycm9yc1tjb2RlXSwge1xuXHRcdG5hbWU6IHtcblx0XHRcdGNvbmZpZ3VyYWJsZTogdHJ1ZSxcblx0XHRcdHZhbHVlOiBjb2RlLFxuXHRcdFx0d3JpdGFibGU6IHRydWVcblx0XHR9LFxuXHRcdHRvU3RyaW5nOiB7XG5cdFx0XHRjb25maWd1cmFibGU6IHRydWUsXG5cdFx0XHR2YWx1ZTogZnVuY3Rpb24gdG9TdHJpbmcoKSB7XG5cdFx0XHRcdHJldHVybiBgRVJSXyR7Y29kZX1gO1xuXHRcdFx0fSxcblx0XHRcdHdyaXRhYmxlOiB0cnVlXG5cdFx0fVxuXHR9KTtcbn1cbiJdLCJmaWxlIjoiZXJyb3JzLmpzIn0=
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImVycm9ycy5qcyJdLCJuYW1lcyI6WyJlcnJvcnMiLCJjcmVhdGVFcnJvciIsIkVycm9yIiwiVHlwZUVycm9yIiwiUmFuZ2VFcnJvciIsImNvZGUiLCJ0eXBlIiwiZGVzYyIsIm1zZyIsIm1ldGEiLCJlcnIiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiY29uZmlndXJhYmxlIiwiZW51bWVyYWJsZSIsIndyaXRhYmxlIiwidmFsdWUiLCJ1bmRlZmluZWQiLCJuYW1lIiwidG9TdHJpbmciXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLE1BQU1BLE1BQU0sR0FBRyxFQUFmO2VBQ2VBLE07O0FBRWZDLFdBQVcsQ0FBQyxhQUFELEVBQStCQyxLQUEvQixFQUEyQyxzQkFBM0MsQ0FBWDtBQUNBRCxXQUFXLENBQUMsY0FBRCxFQUErQkMsS0FBL0IsRUFBMkMsMkRBQTNDLENBQVg7QUFDQUQsV0FBVyxDQUFDLGtCQUFELEVBQStCRSxTQUEvQixFQUEyQyw2REFBM0MsQ0FBWDtBQUNBRixXQUFXLENBQUMsY0FBRCxFQUErQkMsS0FBL0IsRUFBMkMsNkNBQTNDLENBQVg7QUFDQUQsV0FBVyxDQUFDLG1CQUFELEVBQStCRSxTQUEvQixFQUEyQywyQ0FBM0MsQ0FBWDtBQUNBRixXQUFXLENBQUMsZUFBRCxFQUErQkcsVUFBL0IsRUFBMkMsc0RBQTNDLENBQVg7QUFDQUgsV0FBVyxDQUFDLGVBQUQsRUFBK0JDLEtBQS9CLEVBQTJDLGdDQUEzQyxDQUFYO0FBQ0FELFdBQVcsQ0FBQyxlQUFELEVBQStCQyxLQUEvQixFQUEyQywwQ0FBM0MsQ0FBWDtBQUNBRCxXQUFXLENBQUMsZ0JBQUQsRUFBK0JDLEtBQS9CLEVBQTJDLG1CQUEzQyxDQUFYO0FBQ0FELFdBQVcsQ0FBQyxrQkFBRCxFQUErQkMsS0FBL0IsRUFBMkMsdUNBQTNDLENBQVg7QUFDQUQsV0FBVyxDQUFDLG1CQUFELEVBQStCRSxTQUEvQixFQUEyQyxvQ0FBM0MsQ0FBWDtBQUNBRixXQUFXLENBQUMsNEJBQUQsRUFBK0JFLFNBQS9CLEVBQTJDLDREQUEzQyxDQUFYO0FBQ0FGLFdBQVcsQ0FBQyxtQkFBRCxFQUErQkMsS0FBL0IsRUFBMkMsa0RBQTNDLENBQVg7QUFDQUQsV0FBVyxDQUFDLGdCQUFELEVBQStCQyxLQUEvQixFQUEyQyw2REFBM0MsQ0FBWDtBQUNBRCxXQUFXLENBQUMsZUFBRCxFQUErQkMsS0FBL0IsRUFBMkMsNkJBQTNDLENBQVg7QUFFQTs7Ozs7Ozs7QUFPQSxTQUFTRCxXQUFULENBQXFCSSxJQUFyQixFQUEyQkMsSUFBM0IsRUFBaUNDLElBQWpDLEVBQXVDO0FBQ3RDUCxFQUFBQSxNQUFNLENBQUNLLElBQUQsQ0FBTixHQUFlLFVBQVVHLEdBQVYsRUFBZUMsSUFBZixFQUFxQjtBQUNuQyxVQUFNQyxHQUFHLEdBQUcsSUFBSUosSUFBSixDQUFTRSxHQUFULENBQVo7O0FBRUEsUUFBSUQsSUFBSixFQUFVO0FBQ1QsVUFBSSxDQUFDRSxJQUFMLEVBQVc7QUFDVkEsUUFBQUEsSUFBSSxHQUFHLEVBQVA7QUFDQTs7QUFDREEsTUFBQUEsSUFBSSxDQUFDRixJQUFMLEdBQVlBLElBQVo7QUFDQTs7QUFFRCxXQUFPSSxNQUFNLENBQUNDLGdCQUFQLENBQXdCRixHQUF4QixFQUE2QjtBQUNuQ0wsTUFBQUEsSUFBSSxFQUFFO0FBQ0xRLFFBQUFBLFlBQVksRUFBRSxJQURUO0FBRUxDLFFBQUFBLFVBQVUsRUFBRSxJQUZQO0FBR0xDLFFBQUFBLFFBQVEsRUFBRSxJQUhMO0FBSUxDLFFBQUFBLEtBQUssRUFBRyxPQUFNWCxJQUFLO0FBSmQsT0FENkI7QUFPbkNJLE1BQUFBLElBQUksRUFBRTtBQUNMSSxRQUFBQSxZQUFZLEVBQUUsSUFEVDtBQUVMRyxRQUFBQSxLQUFLLEVBQUVQLElBQUksSUFBSVEsU0FGVjtBQUdMRixRQUFBQSxRQUFRLEVBQUU7QUFITDtBQVA2QixLQUE3QixDQUFQO0FBYUEsR0F2QkQ7O0FBeUJBSixFQUFBQSxNQUFNLENBQUNDLGdCQUFQLENBQXdCWixNQUFNLENBQUNLLElBQUQsQ0FBOUIsRUFBc0M7QUFDckNhLElBQUFBLElBQUksRUFBRTtBQUNMTCxNQUFBQSxZQUFZLEVBQUUsSUFEVDtBQUVMRyxNQUFBQSxLQUFLLEVBQUVYLElBRkY7QUFHTFUsTUFBQUEsUUFBUSxFQUFFO0FBSEwsS0FEK0I7QUFNckNJLElBQUFBLFFBQVEsRUFBRTtBQUNUTixNQUFBQSxZQUFZLEVBQUUsSUFETDtBQUVURyxNQUFBQSxLQUFLLEVBQUUsU0FBU0csUUFBVCxHQUFvQjtBQUMxQixlQUFRLE9BQU1kLElBQUssRUFBbkI7QUFDQSxPQUpRO0FBS1RVLE1BQUFBLFFBQVEsRUFBRTtBQUxEO0FBTjJCLEdBQXRDO0FBY0EiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBlcnJvcnMgPSB7fTtcbmV4cG9ydCBkZWZhdWx0IGVycm9ycztcblxuY3JlYXRlRXJyb3IoJ0FVVEhfRkFJTEVEJywgICAgICAgICAgICAgICAgRXJyb3IsICAgICAgJ0F1dGhvcml6YXRpb24gZmFpbGVkJyk7XG5jcmVhdGVFcnJvcignQVVUSF9USU1FT1VUJywgICAgICAgICAgICAgICBFcnJvciwgICAgICAnQSBzdWNjZXNzZnVsIGxvZ2luIGRpZCBub3QgaGFwcGVuIHdpdGhpbiB0aGUgYWxsb3dlZCB0aW1lJyk7XG5jcmVhdGVFcnJvcignSU5WQUxJRF9BUkdVTUVOVCcsICAgICAgICAgICBUeXBlRXJyb3IsICAnQSBmdW5jdGlvbiBhcmd1bWVudCBpcyB1bmRlZmluZWQgb3IgdGhlIGluY29ycmVjdCBkYXRhIHR5cGUnKTtcbmNyZWF0ZUVycm9yKCdJTlZBTElEX0ZJTEUnLCAgICAgICAgICAgICAgIEVycm9yLCAgICAgICdUaGUgZmlsZSBkb2VzIG5vdCBleGlzdCBvciBhY2Nlc3MgaXMgZGVuaWVkJyk7XG5jcmVhdGVFcnJvcignSU5WQUxJRF9QQVJBTUVURVInLCAgICAgICAgICBUeXBlRXJyb3IsICAnQSBwYXJhbWV0ZXIgd2FzIG5vdCBhIHZhbGlkIHZhbHVlIG9yIHR5cGUnKTtcbmNyZWF0ZUVycm9yKCdJTlZBTElEX1JBTkdFJywgICAgICAgICAgICAgIFJhbmdlRXJyb3IsICdUaGUgdmFsdWUgaXMgbm90IHdpdGhpbiB0aGUgYWNjZXB0YWJsZSBtaW4vbWF4IHJhbmdlJyk7XG5jcmVhdGVFcnJvcignSU5WQUxJRF9UT0tFTicsICAgICAgICAgICAgICBFcnJvciwgICAgICAnVGhlIHRva2VuIGNvdWxkIG5vdCBiZSBkZWNvZGVkJyk7XG5jcmVhdGVFcnJvcignSU5WQUxJRF9WQUxVRScsICAgICAgICAgICAgICBFcnJvciwgICAgICAnVGhlIHNwZWNpZmllZCB2YWx1ZSBpcyBhbiBhY2NlcHRlZCB2YWx1ZScpO1xuY3JlYXRlRXJyb3IoJ0xPR0lOX1JFUVVJUkVEJywgICAgICAgICAgICAgRXJyb3IsICAgICAgJ0xvZ2luIGlzIHJlcXVpcmVkJyk7XG5jcmVhdGVFcnJvcignS0VZVEFSX05PVF9GT1VORCcsICAgICAgICAgICBFcnJvciwgICAgICAnVGhlIHRva2VuIHN0b3JlIGNvdWxkIG5vdCBmaW5kIGtleXRhcicpO1xuY3JlYXRlRXJyb3IoJ01JU1NJTkdfQVVUSF9DT0RFJywgICAgICAgICAgVHlwZUVycm9yLCAgJ0FuIGF1dGhvcml6YXRpb24gY29kZSB3YXMgZXhwZWN0ZWQnKTtcbmNyZWF0ZUVycm9yKCdNSVNTSU5HX1JFUVVJUkVEX1BBUkFNRVRFUicsIFR5cGVFcnJvciwgICdBIHJlcXVpcmVkIHBhcmFtZXRlciB3YXMgbm90IHNwZWNpZmllZCBvciBub3QgYSB2YWxpZCB0eXBlJyk7XG5jcmVhdGVFcnJvcignT1JHX1NXSVRDSF9GQUlMRUQnLCAgICAgICAgICBFcnJvciwgICAgICAnRmFpbGVkIHRvIHN3aXRjaCB0aGUgY3VycmVudCBvcmcgZm9yIHNvbWUgcmVhc29uJyk7XG5jcmVhdGVFcnJvcignUkVRVUVTVF9GQUlMRUQnLCAgICAgICAgICAgICBFcnJvciwgICAgICAnQW4gSFRUUCByZXF1ZXN0IGhhcyBlcnJvcmVkIG9yIHJldHVybmVkIGFuIGludmFsaWQgcmVzcG9uc2UnKTtcbmNyZWF0ZUVycm9yKCdUT0tFTl9FWFBJUkVEJywgICAgICAgICAgICAgIEVycm9yLCAgICAgICdUaGUgYWNjZXNzIHRva2VuIGlzIGV4cGlyZWQnKTtcblxuLyoqXG4gKiBDcmVhdGVzIGFuIHRoZSBlcnJvciBvYmplY3QgYW5kIHBvcHVsYXRlcyB0aGUgbWVzc2FnZSwgY29kZSwgYW5kIG1ldGFkYXRhLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBjb2RlIC0gVGhlIGVycm9yIGNvZGUuXG4gKiBAcGFyYW0ge0Vycm9yfFJhbmdlRXJyb3J8VHlwZUVycm9yfSB0eXBlIC0gQW4gaW5zdGFudGlhYmxlIGVycm9yIG9iamVjdC5cbiAqIEBwYXJhbSB7U3RyaW5nfSBkZXNjIC0gQSBnZW5lcmljIGVycm9yIGRlc2NyaXB0aW9uLlxuICovXG5mdW5jdGlvbiBjcmVhdGVFcnJvcihjb2RlLCB0eXBlLCBkZXNjKSB7XG5cdGVycm9yc1tjb2RlXSA9IGZ1bmN0aW9uIChtc2csIG1ldGEpIHtcblx0XHRjb25zdCBlcnIgPSBuZXcgdHlwZShtc2cpO1xuXG5cdFx0aWYgKGRlc2MpIHtcblx0XHRcdGlmICghbWV0YSkge1xuXHRcdFx0XHRtZXRhID0ge307XG5cdFx0XHR9XG5cdFx0XHRtZXRhLmRlc2MgPSBkZXNjO1xuXHRcdH1cblxuXHRcdHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhlcnIsIHtcblx0XHRcdGNvZGU6IHtcblx0XHRcdFx0Y29uZmlndXJhYmxlOiB0cnVlLFxuXHRcdFx0XHRlbnVtZXJhYmxlOiB0cnVlLFxuXHRcdFx0XHR3cml0YWJsZTogdHJ1ZSxcblx0XHRcdFx0dmFsdWU6IGBFUlJfJHtjb2RlfWBcblx0XHRcdH0sXG5cdFx0XHRtZXRhOiB7XG5cdFx0XHRcdGNvbmZpZ3VyYWJsZTogdHJ1ZSxcblx0XHRcdFx0dmFsdWU6IG1ldGEgfHwgdW5kZWZpbmVkLFxuXHRcdFx0XHR3cml0YWJsZTogdHJ1ZVxuXHRcdFx0fVxuXHRcdH0pO1xuXHR9O1xuXG5cdE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGVycm9yc1tjb2RlXSwge1xuXHRcdG5hbWU6IHtcblx0XHRcdGNvbmZpZ3VyYWJsZTogdHJ1ZSxcblx0XHRcdHZhbHVlOiBjb2RlLFxuXHRcdFx0d3JpdGFibGU6IHRydWVcblx0XHR9LFxuXHRcdHRvU3RyaW5nOiB7XG5cdFx0XHRjb25maWd1cmFibGU6IHRydWUsXG5cdFx0XHR2YWx1ZTogZnVuY3Rpb24gdG9TdHJpbmcoKSB7XG5cdFx0XHRcdHJldHVybiBgRVJSXyR7Y29kZX1gO1xuXHRcdFx0fSxcblx0XHRcdHdyaXRhYmxlOiB0cnVlXG5cdFx0fVxuXHR9KTtcbn1cbiJdLCJmaWxlIjoiZXJyb3JzLmpzIn0=

@@ -153,2 +153,3 @@ "use strict";

* @param {String} [opts.password] - The password used to authenticate. Requires a `username`.
* @param {String} [opts.platformUrl] - The platform URL used to get user info and orgs.
* @param {String} [opts.realm] - The name of the realm to authenticate with.

@@ -196,2 +197,5 @@ * @param {String} [opts.secretFile] - The path to the jwt secret file.

},
platformUrl: {
value: opts.platformUrl
},
realm: {

@@ -257,2 +261,3 @@ value: opts.realm

* @param {Object} [opts] - Various options.
* @returns {Object}
* @access private

@@ -279,2 +284,3 @@ */

opts.password = opts.password || this.password;
opts.platformUrl = opts.platformUrl || this.platformUrl || _environments.default[env].platformUrl;
opts.realm = opts.realm || this.realm;

@@ -285,2 +291,3 @@ opts.secretFile = opts.secretFile || this.secretFile;

opts.username = opts.username || this.username;
return opts;
}

@@ -331,3 +338,3 @@ /**

*
* @param {Object} opts - Required options.
* @param {Object|String} opts - Required options or a string containing the hash.
* @param {String} opts.accountName - The account name to retrieve.

@@ -337,2 +344,3 @@ * @param {Authenticator} [opts.authenticator] - An authenticator instance to use. If not

* @param {String} [opts.baseUrl] - The base URL to filter by.
* @param {String} [opts.platformUrl] - The platform URL used to get user info and orgs.
* @returns {Promise<?Object>}

@@ -349,6 +357,23 @@ * @access public

this.applyDefaults(opts);
const authenticator = this.createAuthenticator(opts);
opts.hash = authenticator.hash;
return await this.tokenStore.get(opts);
let authenticator;
if (typeof opts === 'string') {
opts = this.applyDefaults({
hash: opts
});
} else {
this.applyDefaults(opts);
authenticator = this.createAuthenticator(opts);
opts.hash = authenticator.hash;
}
const account = await this.tokenStore.get(opts);
if (account && !account.expired) {
if (!authenticator) {
authenticator = this.createAuthenticator(opts);
}
return await authenticator.getInfo(account);
}
}

@@ -385,2 +410,3 @@ /**

* launching the auth URL in the default browser.
* @param {String} [opts.platformUrl] - The platform URL used to get user info and orgs.
* @param {String} [opts.realm] - The name of the realm to authenticate with.

@@ -486,6 +512,90 @@ * @param {Number} [opts.timeout] - The number of milliseconds to wait before timing out.

}
/**
* Switches the current organization.
*
* @param {Object} opts - Various options.
* @param {String} opts.accessToken - The access token.
* @param {Object} [opts.account] - The account object.
* @param {String} [opts.baseUrl] - The base URL to use for all outgoing requests.
* @param {String} opts.orgId - The org id.
* @param {String} [opts.platformUrl] - The Axway Platform URL.
* @param {String} [opts.realm] - The name of the realm to authenticate with.
* @returns {Promise<Object>} Resolves the selected organization info.
* @access public
*/
async switchOrg(opts) {
if (!opts || typeof opts !== 'object') {
throw _errors.default.INVALID_ARGUMENT('Expected options to be an object');
}
this.applyDefaults(opts);
const {
accessToken,
orgId
} = opts;
log(`Switching org to ${orgId}`);
const {
body,
error,
status,
statusCode
} = await (0, _amplifyRequest.default)({
formData: {
org_id: orgId
},
headers: {
Accept: 'application/json',
Authorization: `Bearer ${accessToken}`
},
method: 'POST',
url: `${(0, _endpoints.default)(opts).switchLoggedInOrg}`,
validateJSON: true
});
if (statusCode >= 200 && statusCode < 300) {
if (!body) {
throw _errors.default.REQUEST_FAILED(`Switch org failed: Response has no body (${status})`);
}
if (!body.success) {
throw _errors.default.REQUEST_FAILED(`Switch org failed: Request was not successful (${status})`);
}
if (!body.result) {
throw _errors.default.REQUEST_FAILED(`Switch org failed: Response did not contain a result (${status})`);
}
const org = {
name: body.result.org_name,
org_id: body.result.org_id
};
if (opts.account && typeof opts.account === 'object' && this.tokenStore) {
opts.account.org = org;
await this.tokenStore.set(opts.account);
}
return org;
}
let msg = error;
try {
const obj = JSON.parse(msg);
msg = `${obj.error}: ${obj.error_description}`;
} catch (e) {// squelch
}
msg = `Failed to switch org: ${msg.trim() || `server returned ${statusCode}`}`;
error(`${msg} ${note(`(${status})`)}`);
throw _errors.default.ORG_SWITCH_FAILED(msg, {
status
});
}
}
exports.Auth = exports.default = Auth;
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LmpzIl0sIm5hbWVzIjpbIkVycm9yIiwicHJlcGFyZVN0YWNrVHJhY2UiLCJyZXF1aXJlIiwibG9nIiwiYWxlcnQiLCJoaWdobGlnaHQiLCJtYWdlbnRhIiwibm90ZSIsInNub29wbG9nZyIsInN0eWxlcyIsIkF1dGgiLCJjb25zdHJ1Y3RvciIsIm9wdHMiLCJFIiwiSU5WQUxJRF9BUkdVTUVOVCIsIk9iamVjdCIsImRlZmluZVByb3BlcnRpZXMiLCJiYXNlVXJsIiwidmFsdWUiLCJjbGllbnRJZCIsImNsaWVudFNlY3JldCIsImVudiIsIm1lc3NhZ2VzIiwicGFzc3dvcmQiLCJyZWFsbSIsInNlY3JldEZpbGUiLCJzZXJ2aWNlQWNjb3VudCIsInVzZXJuYW1lIiwidG9rZW5TdG9yZSIsIlRva2VuU3RvcmUiLCJJTlZBTElEX1BBUkFNRVRFUiIsInRva2VuU3RvcmVUeXBlIiwidW5kZWZpbmVkIiwiU2VjdXJlU3RvcmUiLCJlIiwiRmlsZVN0b3JlIiwiY29kZSIsIk1lbW9yeVN0b3JlIiwiYXBwbHlEZWZhdWx0cyIsImVudmlyb25tZW50cyIsIklOVkFMSURfVkFMVUUiLCJjcmVhdGVBdXRoZW50aWNhdG9yIiwiYXV0aGVudGljYXRvciIsIkF1dGhlbnRpY2F0b3IiLCJJTlZBTElEX0FSVUdNRU5UIiwiT3duZXJQYXNzd29yZCIsIkNsaWVudFNlY3JldCIsIlNpZ25lZEpXVCIsIlBLQ0UiLCJnZXRBY2NvdW50IiwiaGFzaCIsImdldCIsImxpc3QiLCJsb2dpbiIsInJldm9rZSIsImFjY291bnRzIiwiYWxsIiwiQXJyYXkiLCJpc0FycmF5IiwibGVuZ3RoIiwicmV2b2tlZCIsImNsZWFyIiwiZGVsZXRlIiwiZW50cnkiLCJ1cmwiLCJsb2dvdXQiLCJ0b2tlbnMiLCJpZF90b2tlbiIsInN0YXR1cyIsInZhbGlkYXRlSlNPTiIsIm5hbWUiLCJlcnIiLCJzZXJ2ZXJJbmZvIiwid2VsbEtub3duIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7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R0FBRyxHQUFHLHdCQUFhcEQsSUFBYixFQUFtQjZELFNBQXpCO0FBQ0E7O0FBRUQsV0FBTyxNQUFNLHlCQUFjVCxHQUFkLENBQWI7QUFDQTs7QUE5U3dCIiwic291cmNlc0NvbnRlbnQiOlsiLyogaXN0YW5idWwgaWdub3JlIGlmICovXG5pZiAoIUVycm9yLnByZXBhcmVTdGFja1RyYWNlKSB7XG5cdHJlcXVpcmUoJ3NvdXJjZS1tYXAtc3VwcG9ydC9yZWdpc3RlcicpO1xufVxuXG5pbXBvcnQgRSBmcm9tICcuL2Vycm9ycyc7XG5cbmltcG9ydCBBdXRoZW50aWNhdG9yIGZyb20gJy4vYXV0aGVudGljYXRvcnMvYXV0aGVudGljYXRvcic7XG5pbXBvcnQgQ2xpZW50U2VjcmV0IGZyb20gJy4vYXV0aGVudGljYXRvcnMvY2xpZW50LXNlY3JldCc7XG5pbXBvcnQgT3duZXJQYXNzd29yZCBmcm9tICcuL2F1dGhlbnRpY2F0b3JzL293bmVyLXBhc3N3b3JkJztcbmltcG9ydCBQS0NFIGZyb20gJy4vYXV0aGVudGljYXRvcnMvcGtjZSc7XG5pbXBvcnQgU2lnbmVkSldUIGZyb20gJy4vYXV0aGVudGljYXRvcnMvc2lnbmVkLWp3dCc7XG5cbmltcG9ydCBGaWxlU3RvcmUgZnJvbSAnLi9zdG9yZXMvZmlsZS1zdG9yZSc7XG5pbXBvcnQgTWVtb3J5U3RvcmUgZnJvbSAnLi9zdG9yZXMvbWVtb3J5LXN0b3JlJztcbmltcG9ydCBTZWN1cmVTdG9yZSBmcm9tICcuL3N0b3Jlcy9zZWN1cmUtc3RvcmUnO1xuaW1wb3J0IFRva2VuU3RvcmUgZnJvbSAnLi9zdG9yZXMvdG9rZW4tc3RvcmUnO1xuXG5pbXBvcnQgZW52aXJvbm1lbnRzIGZyb20gJy4vZW52aXJvbm1lbnRzJztcbmltcG9ydCBnZXRFbmRwb2ludHMgZnJvbSAnLi9lbmRwb2ludHMnO1xuaW1wb3J0IHNub29wbG9nZyBmcm9tICdzbm9vcGxvZ2cnO1xuaW1wb3J0ICogYXMgc2VydmVyIGZyb20gJy4vc2VydmVyJztcblxuaW1wb3J0IHJlcXVlc3QgZnJvbSAnQGF4d2F5L2FtcGxpZnktcmVxdWVzdCc7XG5pbXBvcnQgeyBnZXRTZXJ2ZXJJbmZvIH0gZnJvbSAnLi91dGlsJztcblxuY29uc3QgeyBsb2cgfSA9IHNub29wbG9nZygnYW1wbGlmeS1hdXRoJyk7XG5jb25zdCB7IGFsZXJ0LCBoaWdobGlnaHQsIG1hZ2VudGEsIG5vdGUgfSA9IHNub29wbG9nZy5zdHlsZXM7XG5cbi8qKlxuICogQXV0aGVudGljYXRlcyB0aGUgbWFjaGluZSBhbmQgcmV0cmVpdmVzIHRoZSBhdXRoIHRva2VuLlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBBdXRoIHtcblx0LyoqXG5cdCAqIFRoZSBzdG9yZSB0byBwZXJzaXN0IHRoZSB0b2tlbi5cblx0ICpcblx0ICogQHR5cGUge1Rva2VuU3RvcmV9XG5cdCAqIEBhY2Nlc3MgcHJpdmF0ZVxuXHQgKi9cblx0dG9rZW5TdG9yZSA9IG51bGw7XG5cblx0LyoqXG5cdCAqIEluaXRpYWxpemVzIHRoZSBhdXRoZW50aWNhdGlvbiBpbnN0YW5jZSBieSBzZXR0aW5nIHRoZSBkZWZhdWx0IHNldHRpbmdzIGFuZCBjcmVhdGluZyB0aGVcblx0ICogdG9rZW4gc3RvcmUuXG5cdCAqXG5cdCAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gVmFyaW91cyBvcHRpb25zLlxuXHQgKiBAcGFyYW0ge1N0cmluZ30gW29wdHMuYmFzZVVybF0gLSBUaGUgYmFzZSBVUkwgdG8gdXNlIGZvciBhbGwgb3V0Z29pbmcgcmVxdWVzdHMuXG5cdCAqIEBwYXJhbSB7U3RyaW5nfSBbb3B0cy5jbGllbnRJZF0gLSBUaGUgY2xpZW50IGlkIHRvIHNwZWNpZnkgd2hlbiBhdXRoZW50aWNhdGluZy5cblx0ICogQHBhcmFtIHtTdHJpbmd9IFtvcHRzLmNsaWVudFNlY3JldF0gLSBUaGUgc2VjcmV0IHRva2VuIHRvIHVzZSB0byBhdXRoZW50aWNhdGUuXG5cdCAqIEBwYXJhbSB7U3RyaW5nfSBbb3B0cy5lbnY9cHJvZF0gLSBUaGUgZW52aXJvbm1lbnQgbmFtZS4gTXVzdCBiZSBgZGV2YCwgYHByZXByb2RgLCBvciBgcHJvZGAuXG5cdCAqIFRoZSBlbnZpcm9ubWVudCBpcyBhIHNob3J0aGFuZCB3YXkgb2Ygc3BlY2lmeWluZyBhIEF4d2F5IGRlZmF1bHQgYmFzZSBVUkwuXG5cdCAqIEBwYXJhbSB7U3RyaW5nfSBbb3B0cy5zZWN1cmVTZXJ2aWNlTmFtZT1cIkF4d2F5IEFNUExJRlkgQXV0aFwiXSAtIFRoZSBuYW1lIG9mIHRoZSBjb25zdW1lclxuXHQgKiB1c2luZyB0aGlzIGxpYnJhcnkgd2hlbiB1c2luZyB0aGUgXCJzZWN1cmVcIiB0b2tlbiBzdG9yZS5cblx0ICogQHBhcmFtIHtTdHJpbmd9IFtvcHRzLnBhc3N3b3JkXSAtIFRoZSBwYXNzd29yZCB1c2VkIHRvIGF1dGhlbnRpY2F0ZS4gUmVxdWlyZXMgYSBgdXNlcm5hbWVgLlxuXHQgKiBAcGFyYW0ge1N0cmluZ30gW29wdHMucmVhbG1dIC0gVGhlIG5hbWUgb2YgdGhlIHJlYWxtIHRvIGF1dGhlbnRpY2F0ZSB3aXRoLlxuXHQgKiBAcGFyYW0ge1N0cmluZ30gW29wdHMuc2VjcmV0RmlsZV0gLSBUaGUgcGF0aCB0byB0aGUgand0IHNlY3JldCBmaWxlLlxuXHQgKiBAcGFyYW0ge0Jvb2xlYW59IFtvcHRzLnNlcnZpY2VBY2NvdW50PWZhbHNlXSAtIFdoZW4gYHRydWVgLCBpbmRpY2F0ZXMgYXV0aGVudGljYXRpb24gaXMgYmVpbmdcblx0ICogcmVxdWVzdGVkIGJ5IGEgc2VydmljZSBpbnN0ZWFkIG9mIGEgdXNlci5cblx0ICogQHBhcmFtIHtCb29sZWFufSBbb3B0cy50b2tlblJlZnJlc2hUaHJlc2hvbGQ9MF0gLSBUaGUgbnVtYmVyIG9mIHNlY29uZHMgYmVmb3JlIHRoZSBhY2Nlc3Ncblx0ICogdG9rZW4gZXhwaXJlcyBhbmQgc2hvdWxkIGJlIHJlZnJlc2hlZC5cblx0ICogQHBhcmFtIHtUb2tlblN0b3JlfSBbb3B0cy50b2tlblN0b3JlXSAtIEEgdG9rZW4gc3RvcmUgaW5zdGFuY2UgZm9yIHBlcnNpc3RpbmcgdGhlIHRva2Vucy5cblx0ICogQHBhcmFtIHtTdHJpbmd9IFtvcHRzLnRva2VuU3RvcmVEaXJdIC0gVGhlIGRpcmVjdG9yeSB3aGVyZSB0aGUgdG9rZW4gc3RvcmUgaXMgc2F2ZWQuIFJlcXVpcmVkXG5cdCAqIHdoZW4gdGhlIGB0b2tlblN0b3JlVHlwZWAgaXMgYHNlY3VyZWAgb3IgYGZpbGVgLlxuXHQgKiBAcGFyYW0ge1N0cmluZ30gW29wdHMudG9rZW5TdG9yZVR5cGU9YXV0b10gLSBUaGUgdHlwZSBvZiBzdG9yZSB0byBwZXJzaXN0IHRoZSBhY2Nlc3MgdG9rZW4uXG5cdCAqIFBvc3NpYmxlIHZhbHVlcyBpbmNsdWRlOiBgYXV0b2AsIGBzZWN1cmVgLCBgZmlsZWAsIG9yIGBtZW1vcnlgLiBJZiB2YWx1ZSBpcyBgYXV0b2AsIGl0IHdpbGxcblx0ICogYXR0ZW1wdCB0byB1c2UgYHNlY3VyZWAsIHRoZW4gYGZpbGVgLCB0aGVuIGBtZW1vcnlgLiBJZiBzZXQgdG8gYG51bGxgLCB0aGVuIGl0IHdpbGwgbm90XG5cdCAqIHBlcnNpc3QgdGhlIGFjY2VzcyB0b2tlbi5cblx0ICogQHBhcmFtIHtTdHJpbmd9IFtvcHRzLnVzZXJuYW1lXSAtIFRoZSB1c2VybmFtZSB1c2VkIHRvIGF1dGhlbnRpY2F0ZS4gUmVxdWlyZXMgYSBgcGFzc3dvcmRgLlxuXHQgKiBAYWNjZXNzIHB1YmxpY1xuXHQgKi9cblx0Y29uc3RydWN0b3Iob3B0cyA9IHt9KSB7XG5cdFx0aWYgKCFvcHRzIHx8IHR5cGVvZiBvcHRzICE9PSAnb2JqZWN0Jykge1xuXHRcdFx0dGhyb3cgRS5JTlZBTElEX0FSR1VNRU5UKCdFeHBlY3RlZCBvcHRpb25zIHRvIGJlIGFuIG9iamVjdCcpO1xuXHRcdH1cblxuXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHRoaXMsIHtcblx0XHRcdGJhc2VVcmw6ICAgICAgICB7IHZhbHVlOiBvcHRzLmJhc2VVcmwgfSxcblx0XHRcdGNsaWVudElkOiAgICAgICB7IHZhbHVlOiBvcHRzLmNsaWVudElkIH0sXG5cdFx0XHRjbGllbnRTZWNyZXQ6ICAgeyB2YWx1ZTogb3B0cy5jbGllbnRTZWNyZXQgfSxcblx0XHRcdGVudjogICAgICAgICAgICB7IHZhbHVlOiBvcHRzLmVudiB9LFxuXHRcdFx0bWVzc2FnZXM6ICAgICAgIHsgdmFsdWU6IG9wdHMubWVzc2FnZXMgfSxcblx0XHRcdHBhc3N3b3JkOiAgICAgICB7IHZhbHVlOiBvcHRzLnBhc3N3b3JkIH0sXG5cdFx0XHRyZWFsbTogICAgICAgICAgeyB2YWx1ZTogb3B0cy5yZWFsbSB9LFxuXHRcdFx0c2VjcmV0RmlsZTogICAgIHsgdmFsdWU6IG9wdHMuc2VjcmV0RmlsZSB9LFxuXHRcdFx0c2VydmljZUFjY291bnQ6IHsgdmFsdWU6IG9wdHMuc2VydmljZUFjY291bnQgfSxcblx0XHRcdHVzZXJuYW1lOiAgICAgICB7IHZhbHVlOiBvcHRzLnVzZXJuYW1lIH1cblx0XHR9KTtcblxuXHRcdGlmIChvcHRzLnRva2VuU3RvcmUpIHtcblx0XHRcdGlmICghKG9wdHMudG9rZW5TdG9yZSBpbnN0YW5jZW9mIFRva2VuU3RvcmUpKSB7XG5cdFx0XHRcdHRocm93IEUuSU5WQUxJRF9QQVJBTUVURVIoJ0V4cGVjdGVkIHRoZSB0b2tlbiBzdG9yZSB0byBiZSBhIFwiVG9rZW5TdG9yZVwiIGluc3RhbmNlJyk7XG5cdFx0XHR9XG5cdFx0XHR0aGlzLnRva2VuU3RvcmUgPSBvcHRzLnRva2VuU3RvcmU7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGNvbnN0IHRva2VuU3RvcmVUeXBlID0gb3B0cy50b2tlblN0b3JlVHlwZSA9PT0gdW5kZWZpbmVkID8gJ2F1dG8nIDogb3B0cy50b2tlblN0b3JlVHlwZTtcblx0XHRcdHN3aXRjaCAodG9rZW5TdG9yZVR5cGUpIHtcblx0XHRcdFx0Y2FzZSAnYXV0byc6XG5cdFx0XHRcdGNhc2UgJ3NlY3VyZSc6XG5cdFx0XHRcdFx0dHJ5IHtcblx0XHRcdFx0XHRcdHRoaXMudG9rZW5TdG9yZSA9IG5ldyBTZWN1cmVTdG9yZShvcHRzKTtcblx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdH0gY2F0Y2ggKGUpIHtcblx0XHRcdFx0XHRcdC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuXHRcdFx0XHRcdFx0aWYgKHRva2VuU3RvcmVUeXBlID09PSAnYXV0bycpIHtcblx0XHRcdFx0XHRcdFx0Ly8gbGV0ICdhdXRvJyBmYWxsIHRocm91Z2hcblx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdHRocm93IGU7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdGNhc2UgJ2ZpbGUnOlxuXHRcdFx0XHRcdHRyeSB7XG5cdFx0XHRcdFx0XHR0aGlzLnRva2VuU3RvcmUgPSBuZXcgRmlsZVN0b3JlKG9wdHMpO1xuXHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0fSBjYXRjaCAoZSkge1xuXHRcdFx0XHRcdFx0LyogaXN0YW5idWwgaWdub3JlIGlmICovXG5cdFx0XHRcdFx0XHRpZiAodG9rZW5TdG9yZVR5cGUgPT09ICdhdXRvJyAmJiBlLmNvZGUgPT09ICdFUlJfTUlTU0lOR19SRVFVSVJFRF9QQVJBTUVURVInKSB7XG5cdFx0XHRcdFx0XHRcdC8vIGxldCAnYXV0bycgZmFsbCB0aHJvdWdoXG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHR0aHJvdyBlO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRjYXNlICdtZW1vcnknOlxuXHRcdFx0XHRcdHRoaXMudG9rZW5TdG9yZSA9IG5ldyBNZW1vcnlTdG9yZShvcHRzKTtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogRW5zdXJlcyB0aGUgb3B0aW9ucyBjb250YWlucyB0aGUgY29uZmlndXJhYmxlIHNldHRpbmdzLiBWYWxpZGF0aW9uIGlzIGhhbmRsZWQgYnkgdGhlIGNvZGVcblx0ICogcmVxdWlyaW5nIHRoZSB2YWx1ZXMuXG5cdCAqXG5cdCAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0c10gLSBWYXJpb3VzIG9wdGlvbnMuXG5cdCAqIEBhY2Nlc3MgcHJpdmF0ZVxuXHQgKi9cblx0YXBwbHlEZWZhdWx0cyhvcHRzID0ge30pIHtcblx0XHRpZiAoIW9wdHMgfHwgdHlwZW9mIG9wdHMgIT09ICdvYmplY3QnKSB7XG5cdFx0XHR0aHJvdyBFLklOVkFMSURfQVJHVU1FTlQoJ0V4cGVjdGVkIG9wdGlvbnMgdG8gYmUgYW4gb2JqZWN0Jyk7XG5cdFx0fVxuXG5cdFx0Y29uc3QgZW52ID0gb3B0cy5lbnYgfHwgdGhpcy5lbnYgfHwgJ3Byb2QnO1xuXHRcdGlmICghZW52aXJvbm1lbnRzW2Vudl0pIHtcblx0XHRcdHRocm93IEUuSU5WQUxJRF9WQUxVRShgSW52YWxpZCBlbnZpcm9ubWVudDogJHtvcHRzLmVudiB8fCB0aGlzLmVudn1gKTtcblx0XHR9XG5cblx0XHRvcHRzLmJhc2VVcmwgICAgICAgID0gb3B0cy5iYXNlVXJsIHx8IHRoaXMuYmFzZVVybCB8fCBlbnZpcm9ubWVudHNbZW52XS5iYXNlVXJsO1xuXHRcdG9wdHMuY2xpZW50SWQgICAgICAgPSBvcHRzLmNsaWVudElkIHx8IHRoaXMuY2xpZW50SWQ7XG5cdFx0b3B0cy5jbGllbnRTZWNyZXQgICA9IG9wdHMuY2xpZW50U2VjcmV0IHx8IHRoaXMuY2xpZW50U2VjcmV0O1xuXHRcdG9wdHMuZW52ICAgICAgICAgICAgPSBlbnY7XG5cdFx0b3B0cy5tZXNzYWdlcyAgICAgICA9IG9wdHMubWVzc2FnZXMgfHwgdGhpcy5tZXNzYWdlcztcblx0XHRvcHRzLnBhc3N3b3JkICAgICAgID0gb3B0cy5wYXNzd29yZCB8fCB0aGlzLnBhc3N3b3JkO1xuXHRcdG9wdHMucmVhbG0gICAgICAgICAgPSBvcHRzLnJlYWxtIHx8IHRoaXMucmVhbG07XG5cdFx0b3B0cy5zZWNyZXRGaWxlICAgICA9IG9wdHMuc2VjcmV0RmlsZSB8fCB0aGlzLnNlY3JldEZpbGU7XG5cdFx0b3B0cy5zZXJ2aWNlQWNjb3VudCA9IG9wdHMuc2VydmljZUFjY291bnQgfHwgdGhpcy5zZXJ2aWNlQWNjb3VudDtcblx0XHRvcHRzLnRva2VuU3RvcmUgICAgID0gdGhpcy50b2tlblN0b3JlO1xuXHRcdG9wdHMudXNlcm5hbWUgICAgICAgPSBvcHRzLnVzZXJuYW1lIHx8IHRoaXMudXNlcm5hbWU7XG5cdH1cblxuXHQvKipcblx0ICogQ3JlYXRlcyBhbiBhdXRoZXRuaWNhdG9yIGJhc2VkIG9uIHRoZSBzdXBwbGllZCBvcHRpb25zLlxuXHQgKlxuXHQgKiBAcGFyYW0ge09iamVjdH0gW29wdHNdIC0gVmFyaW91cyBvcHRpb25zLlxuXHQgKiBAcGFyYW0ge0F1dGhlbnRpY2F0b3J9IFtvcHRzLmF1dGhlbnRpY2F0b3JdIC0gQW4gYXV0aGVudGljYXRvciBpbnN0YW5jZSB0byB1c2UuIElmIG5vdFxuXHQgKiBzcGVjaWZpZWQsIG9uZSB3aWxsIGJlIGF1dG8tc2VsZWN0ZWQgYmFzZWQgb24gdGhlIG9wdGlvbnMuXG5cdCAqIEBwYXJhbSB7U3RyaW5nfSBbb3B0cy5jbGllbnRTZWNyZXRdIC0gVGhlIHNlY3JldCB0b2tlbiB0byB1c2UgdG8gYXV0aGVudGljYXRlLlxuXHQgKiBAcGFyYW0ge1N0cmluZ30gW29wdHMucGFzc3dvcmRdIC0gVGhlIHBhc3N3b3JkIHVzZWQgdG8gYXV0aGVudGljYXRlLiBSZXF1aXJlcyBhIGB1c2VybmFtZWAuXG5cdCAqIEBwYXJhbSB7U3RyaW5nfSBbb3B0cy5zZWNyZXRGaWxlXSAtIFRoZSBwYXRoIHRvIHRoZSBqd3Qgc2VjcmV0IGZpbGUuXG5cdCAqIEBwYXJhbSB7Qm9vbGVhbn0gW29wdHMuc2VydmljZUFjY291bnQ9ZmFsc2VdIC0gV2hlbiBgdHJ1ZWAsIGluZGljYXRlcyBhdXRoZW50aWNhdGlvbiBpcyBiZWluZ1xuXHQgKiByZXF1ZXN0ZWQgYnkgYSBzZXJ2aWNlIGluc3RlYWQgb2YgYSB1c2VyLlxuXHQgKiBAcGFyYW0ge1N0cmluZ30gW29wdHMudXNlcm5hbWVdIC0gVGhlIHVzZXJuYW1lIHVzZWQgdG8gYXV0aGVudGljYXRlLiBSZXF1aXJlcyBhIGBwYXNzd29yZGAuXG5cdCAqIEByZXR1cm5zIHtBdXRoZW50aWNhdG9yfVxuXHQgKiBAYWNjZXNzIHB1YmxpY1xuXHQgKi9cblx0Y3JlYXRlQXV0aGVudGljYXRvcihvcHRzID0ge30pIHtcblx0XHRpZiAob3B0cy5hdXRoZW50aWNhdG9yKSB7XG5cdFx0XHRpZiAoIShvcHRzLmF1dGhlbnRpY2F0b3IgaW5zdGFuY2VvZiBBdXRoZW50aWNhdG9yKSkge1xuXHRcdFx0XHR0aHJvdyBFLklOVkFMSURfQVJVR01FTlQoJ0V4cGVjdGVkIGF1dGhlbnRpY2F0b3IgdG8gYmUgYW4gQXV0aGVudGljYXRvciBpbnN0YW5jZS4nKTtcblx0XHRcdH1cblx0XHRcdHJldHVybiBvcHRzLmF1dGhlbnRpY2F0b3I7XG5cdFx0fVxuXG5cdFx0aWYgKHR5cGVvZiBvcHRzLnVzZXJuYW1lID09PSAnc3RyaW5nJyAmJiBvcHRzLnVzZXJuYW1lICYmIHR5cGVvZiBvcHRzLnBhc3N3b3JkID09PSAnc3RyaW5nJykge1xuXHRcdFx0cmV0dXJuIG5ldyBPd25lclBhc3N3b3JkKG9wdHMpO1xuXHRcdH1cblxuXHRcdGlmICh0eXBlb2Ygb3B0cy5jbGllbnRTZWNyZXQgPT09ICdzdHJpbmcnICYmIG9wdHMuY2xpZW50U2VjcmV0KSB7XG5cdFx0XHRyZXR1cm4gbmV3IENsaWVudFNlY3JldChvcHRzKTtcblx0XHR9XG5cblx0XHRpZiAodHlwZW9mIG9wdHMuc2VjcmV0RmlsZSA9PT0gJ3N0cmluZycgJiYgb3B0cy5zZWNyZXRGaWxlKSB7XG5cdFx0XHRyZXR1cm4gbmV3IFNpZ25lZEpXVChvcHRzKTtcblx0XHR9XG5cblx0XHRyZXR1cm4gbmV3IFBLQ0Uob3B0cyk7XG5cdH1cblxuXHQvKipcblx0ICogUmV0cmlldmVzIHRoZSBhY2Nlc3MgdG9rZW4uIElmIHRoZSBhdXRoZW50aWNhdG9yIGlzIGludGVyYWN0aXZlIGFuZCB0aGUgYXV0aGVudGljYXRvciBoYXMgbm90XG5cdCAqIHlldCBhdXRoZW50aWNhdGVkIHdpdGggdGhlIHNlcnZlciwgYW4gZXJyb3IgaXMgdGhyb3duLlxuXHQgKlxuXHQgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIFJlcXVpcmVkIG9wdGlvbnMuXG5cdCAqIEBwYXJhbSB7U3RyaW5nfSBvcHRzLmFjY291bnROYW1lIC0gVGhlIGFjY291bnQgbmFtZSB0byByZXRyaWV2ZS5cblx0ICogQHBhcmFtIHtBdXRoZW50aWNhdG9yfSBbb3B0cy5hdXRoZW50aWNhdG9yXSAtIEFuIGF1dGhlbnRpY2F0b3IgaW5zdGFuY2UgdG8gdXNlLiBJZiBub3Rcblx0ICogc3BlY2lmaWVkLCBvbmUgd2lsbCBiZSBhdXRvLXNlbGVjdGVkIGJhc2VkIG9uIHRoZSBvcHRpb25zLlxuXHQgKiBAcGFyYW0ge1N0cmluZ30gW29wdHMuYmFzZVVybF0gLSBUaGUgYmFzZSBVUkwgdG8gZmlsdGVyIGJ5LlxuXHQgKiBAcmV0dXJucyB7UHJvbWlzZTw/T2JqZWN0Pn1cblx0ICogQGFjY2VzcyBwdWJsaWNcblx0ICovXG5cdGFzeW5jIGdldEFjY291bnQob3B0cyA9IHt9KSB7XG5cdFx0aWYgKCF0aGlzLnRva2VuU3RvcmUpIHtcblx0XHRcdGxvZygnQ2Fubm90IGdldCBhY2NvdW50LCBubyB0b2tlbiBzdG9yZScpO1xuXHRcdFx0cmV0dXJuIG51bGw7XG5cdFx0fVxuXG5cdFx0dGhpcy5hcHBseURlZmF1bHRzKG9wdHMpO1xuXG5cdFx0Y29uc3QgYXV0aGVudGljYXRvciA9IHRoaXMuY3JlYXRlQXV0aGVudGljYXRvcihvcHRzKTtcblx0XHRvcHRzLmhhc2ggPSBhdXRoZW50aWNhdG9yLmhhc2g7XG5cdFx0cmV0dXJuIGF3YWl0IHRoaXMudG9rZW5TdG9yZS5nZXQob3B0cyk7XG5cdH1cblxuXHQvKipcblx0ICogUmV0dXJucyBhIGxpc3Qgb2YgYWxsIHZhbGlkIGFjY2VzcyB0b2tlbnMuXG5cdCAqXG5cdCAqIEByZXR1cm5zIHtQcm9taXNlPEFycmF5Pn1cblx0ICogQGFjY2VzcyBwdWJsaWNcblx0ICovXG5cdGFzeW5jIGxpc3QoKSB7XG5cdFx0aWYgKHRoaXMudG9rZW5TdG9yZSkge1xuXHRcdFx0cmV0dXJuIGF3YWl0IHRoaXMudG9rZW5TdG9yZS5saXN0KCk7XG5cdFx0fVxuXHRcdHJldHVybiBbXTtcblx0fVxuXG5cdC8qKlxuXHQgKiBBdXRoZW50aWNhdGVzIHVzaW5nIHRoZSBjb25maWd1cmVkIGF1dGhlbnRpY2F0b3IuXG5cdCAqXG5cdCAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0c10gLSBWYXJpb3VzIG9wdGlvbnMuXG5cdCAqIEBwYXJhbSB7U3RyaW5nfEFycmF5LjxTdHJpbmc+fSBbb3B0LmFwcF0gLSBTcGVjaWZ5IHRoZSBhcHAgdG8gb3BlbiB0aGUgYHRhcmdldGAgd2l0aCwgb3IgYW5cblx0ICogYXJyYXkgd2l0aCB0aGUgYXBwIGFuZCBhcHAgYXJndW1lbnRzLlxuXHQgKiBAcGFyYW0ge0F1dGhlbnRpY2F0b3J9IFtvcHRzLmF1dGhlbnRpY2F0b3JdIC0gQW4gYXV0aGVudGljYXRvciBpbnN0YW5jZSB0byB1c2UuIElmIG5vdFxuXHQgKiBzcGVjaWZpZWQsIG9uZSB3aWxsIGJlIGF1dG8tc2VsZWN0ZWQgYmFzZWQgb24gdGhlIG9wdGlvbnMuXG5cdCAqIEBwYXJhbSB7U3RyaW5nfSBbb3B0cy5iYXNlVXJsXSAtIFRoZSBiYXNlIFVSTCB0byB1c2UgZm9yIGFsbCBvdXRnb2luZyByZXF1ZXN0cy5cblx0ICogQHBhcmFtIHtTdHJpbmd9IFtvcHRzLmNsaWVudElkXSAtIFRoZSBjbGllbnQgaWQgdG8gc3BlY2lmeSB3aGVuIGF1dGhlbnRpY2F0aW5nLlxuXHQgKiBAcGFyYW0ge1N0cmluZ30gW29wdHMuY29kZV0gLSBUaGUgYXV0aGVudGljYXRpb24gY29kZSBmcm9tIGEgc3VjY2Vzc2Z1bCBpbnRlcmFjdGl2ZSBsb2dpbi5cblx0ICogQHBhcmFtIHtTdHJpbmd9IFtvcHRzLmVudj1wcm9kXSAtIFRoZSBlbnZpcm9ubWVudCBuYW1lLiBNdXN0IGJlIGBkZXZgLCBgcHJlcHJvZGAsIG9yIGBwcm9kYC5cblx0ICogVGhlIGVudmlyb25tZW50IGlzIGEgc2hvcnRoYW5kIHdheSBvZiBzcGVjaWZ5aW5nIGEgQXh3YXkgZGVmYXVsdCBiYXNlIFVSTC5cblx0ICogQHBhcmFtIHtCb29sZWFufSBbb3B0cy5tYW51YWw9ZmFsc2VdIC0gV2hlbiBgdHJ1ZWAsIGl0IHdpbGwgcmV0dXJuIHRoZSBhdXRoIFVSTCBpbnN0ZWFkIG9mXG5cdCAqIGxhdW5jaGluZyB0aGUgYXV0aCBVUkwgaW4gdGhlIGRlZmF1bHQgYnJvd3Nlci5cblx0ICogQHBhcmFtIHtTdHJpbmd9IFtvcHRzLnJlYWxtXSAtIFRoZSBuYW1lIG9mIHRoZSByZWFsbSB0byBhdXRoZW50aWNhdGUgd2l0aC5cblx0ICogQHBhcmFtIHtOdW1iZXJ9IFtvcHRzLnRpbWVvdXRdIC0gVGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgdG8gd2FpdCBiZWZvcmUgdGltaW5nIG91dC5cblx0ICogRGVmYXVsdHMgdG8gdGhlIGBpbnRlcmFjdGl2ZUxvZ2luVGltZW91dGAgcHJvcGVydHkuXG5cdCAqIEBwYXJhbSB7Qm9vbGVhbn0gW29wdHMud2FpdD1mYWxzZV0gLSBXYWl0IGZvciB0aGUgb3BlbmVkIGFwcCB0byBleGl0IGJlZm9yZSBmdWxmaWxsaW5nIHRoZVxuXHQgKiBwcm9taXNlLiBJZiBgZmFsc2VgIGl0J3MgZnVsZmlsbGVkIGltbWVkaWF0ZWx5IHdoZW4gb3BlbmluZyB0aGUgYXBwLlxuXHQgKiBAcmV0dXJucyB7UHJvbWlzZTxPYmplY3Q+fSBSZXNvbHZlcyBhbiBvYmplY3QgY29udGFpbmluZyB0aGUgYWNjZXNzIHRva2VuLCBhY2NvdW50IG5hbWUsIGFuZFxuXHQgKiB1c2VyIGluZm8uXG5cdCAqIEBhY2Nlc3MgcHVibGljXG5cdCAqL1xuXHRhc3luYyBsb2dpbihvcHRzID0ge30pIHtcblx0XHR0aGlzLmFwcGx5RGVmYXVsdHMob3B0cyk7XG5cdFx0Y29uc3QgYXV0aGVudGljYXRvciA9IHRoaXMuY3JlYXRlQXV0aGVudGljYXRvcihvcHRzKTtcblx0XHRyZXR1cm4gYXdhaXQgYXV0aGVudGljYXRvci5sb2dpbihvcHRzKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXZva2VzIGFsbCBvciBzcGVjaWZpYyBhdXRoZW50aWNhdGVkIGFjY291bnRzLlxuXHQgKlxuXHQgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIFJlcXVpcmVkIG9wdGlvbnMuXG5cdCAqIEBwYXJhbSB7QXJyYXkuPFN0cmluZz58U3RyaW5nfSBvcHRzLmFjY291bnRzIC0gQSBsaXN0IG9mIGFjY291bnRzIG5hbWVzLlxuXHQgKiBAcGFyYW0ge0Jvb2xlYW59IG9wdHMuYWxsIC0gV2hlbiBgdHJ1ZWAsIHJldm9rZXMgYWxsIGFjY291bnRzLlxuXHQgKiBAcGFyYW0ge1N0cmluZ30gW29wdHMuYmFzZVVybF0gLSBUaGUgYmFzZSBVUkwgdXNlZCB0byBmaWx0ZXIgYWNjb3VudHMuXG5cdCAqIEByZXR1cm5zIHtQcm9taXNlPEFycmF5Pn0gUmV0dXJucyBhIGxpc3Qgb2YgcmV2b2tlZCBjcmVkZW50aWFscy5cblx0ICogQGFjY2VzcyBwdWJsaWNcblx0ICovXG5cdGFzeW5jIHJldm9rZSh7IGFjY291bnRzLCBhbGwsIGJhc2VVcmwgfSA9IHt9KSB7XG5cdFx0aWYgKCF0aGlzLnRva2VuU3RvcmUpIHtcblx0XHRcdGxvZygnTm8gdG9rZW4gc3RvcmUsIHJldHVybmluZyBlbXB0eSBhcnJheScpO1xuXHRcdFx0cmV0dXJuIFtdO1xuXHRcdH1cblxuXHRcdGlmICghYWxsICYmIHR5cGVvZiBhY2NvdW50cyAhPT0gJ3N0cmluZycgJiYgIUFycmF5LmlzQXJyYXkoYWNjb3VudHMpKSB7XG5cdFx0XHR0aHJvdyBFLklOVkFMSURfQVJHVU1FTlQoJ0V4cGVjdGVkIGFjY291bnRzIHRvIGJlIFwiYWxsXCIgb3IgYSBsaXN0IG9mIGFjY291bnRzJyk7XG5cdFx0fVxuXG5cdFx0aWYgKCFhbGwgJiYgIWFjY291bnRzLmxlbmd0aCkge1xuXHRcdFx0cmV0dXJuIFtdO1xuXHRcdH1cblxuXHRcdGxldCByZXZva2VkO1xuXHRcdGlmIChhbGwpIHtcblx0XHRcdHJldm9rZWQgPSBhd2FpdCB0aGlzLnRva2VuU3RvcmUuY2xlYXIoYmFzZVVybCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHJldm9rZWQgPSBhd2FpdCB0aGlzLnRva2VuU3RvcmUuZGVsZXRlKGFjY291bnRzLCBiYXNlVXJsKTtcblx0XHR9XG5cblx0XHRpZiAoQXJyYXkuaXNBcnJheShyZXZva2VkKSkge1xuXHRcdFx0Zm9yIChjb25zdCBlbnRyeSBvZiByZXZva2VkKSB7XG5cdFx0XHRcdGNvbnN0IHVybCA9IGAke2dldEVuZHBvaW50cyhlbnRyeSkubG9nb3V0fT9pZF90b2tlbl9oaW50PSR7ZW50cnkudG9rZW5zLmlkX3Rva2VufWA7XG5cdFx0XHRcdHRyeSB7XG5cdFx0XHRcdFx0Y29uc3QgeyBzdGF0dXMgfSA9IGF3YWl0IHJlcXVlc3QoeyB1cmwsIHZhbGlkYXRlSlNPTjogdHJ1ZSB9KTtcblx0XHRcdFx0XHRsb2coYFN1Y2Nlc3NmdWxseSBsb2dnZWQgb3V0ICR7aGlnaGxpZ2h0KGVudHJ5Lm5hbWUpfSAke21hZ2VudGEoc3RhdHVzKX0gJHtub3RlKGAoJHtlbnRyeS5iYXNlVXJsfSwgJHtlbnRyeS5yZWFsbX0pYCl9YCk7XG5cdFx0XHRcdH0gY2F0Y2ggKGVycikge1xuXHRcdFx0XHRcdGxvZyhgRmFpbGVkIHRvIGxvZyBvdXQgJHtoaWdobGlnaHQoZW50cnkubmFtZSl9ICR7YWxlcnQoZXJyLnN0YXR1cyl9ICR7bm90ZShgKCR7ZW50cnkuYmFzZVVybH0sICR7ZW50cnkucmVhbG19KWApfWApO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHJldm9rZWQ7XG5cdH1cblxuXHQvKipcblx0ICogRGlzY292ZXJzIGF2YWlsYWJsZSBlbmRwb2ludHMgYmFzZWQgb24gdGhlIGF1dGhlbnRpY2F0aW9uIHNlcnZlcidzIE9wZW5JRCBjb25maWd1cmF0aW9uLlxuXHQgKlxuXHQgKiBAcGFyYW0ge09iamVjdH0gW29wdHNdIC0gVmFyaW91cyBvcHRpb25zLlxuXHQgKiBAcGFyYW0ge1N0cmluZ30gW29wdHMuYmFzZVVybF0gLSBUaGUgYmFzZSBVUkwgdG8gdXNlIGZvciBhbGwgb3V0Z29pbmcgcmVxdWVzdHMuXG5cdCAqIEBwYXJhbSB7U3RyaW5nfSBbb3B0cy5lbnY9cHJvZF0gLSBUaGUgZW52aXJvbm1lbnQgbmFtZS4gTXVzdCBiZSBgZGV2YCwgYHByZXByb2RgLCBvciBgcHJvZGAuXG5cdCAqIFRoZSBlbnZpcm9ubWVudCBpcyBhIHNob3J0aGFuZCB3YXkgb2Ygc3BlY2lmeWluZyBhIEF4d2F5IGRlZmF1bHQgYmFzZSBVUkwuXG5cdCAqIEBwYXJhbSB7U3RyaW5nfSBbb3B0cy5yZWFsbV0gLSBUaGUgbmFtZSBvZiB0aGUgcmVhbG0gdG8gYXV0aGVudGljYXRlIHdpdGguXG5cdCAqIEBwYXJhbSB7U3RyaW5nfSBbb3B0cy51cmxdIC0gQW4gb3B0aW9uYWwgVVJMIHRvIGRpc2NvdmVyIHRoZSBhdmFpbGFibGUgZW5kcG9pbnRzLlxuXHQgKiBAcmV0dXJucyB7UHJvbWlzZTxPYmplY3Q+fVxuXHQgKiBAYWNjZXNzIHB1YmxpY1xuXHQgKi9cblx0YXN5bmMgc2VydmVySW5mbyhvcHRzID0ge30pIHtcblx0XHR0aGlzLmFwcGx5RGVmYXVsdHMob3B0cyk7XG5cblx0XHRsZXQgeyB1cmwgfSA9IG9wdHM7XG5cblx0XHRpZiAoIXVybCkge1xuXHRcdFx0dXJsID0gZ2V0RW5kcG9pbnRzKG9wdHMpLndlbGxLbm93bjtcblx0XHR9XG5cblx0XHRyZXR1cm4gYXdhaXQgZ2V0U2VydmVySW5mbyh1cmwpO1xuXHR9XG59XG5cbmV4cG9ydCB7XG5cdEF1dGgsXG5cblx0QXV0aGVudGljYXRvcixcblx0Q2xpZW50U2VjcmV0LFxuXHRPd25lclBhc3N3b3JkLFxuXHRQS0NFLFxuXHRTaWduZWRKV1QsXG5cblx0RmlsZVN0b3JlLFxuXHRNZW1vcnlTdG9yZSxcblx0U2VjdXJlU3RvcmUsXG5cdFRva2VuU3RvcmUsXG5cblx0ZW52aXJvbm1lbnRzLFxuXHRnZXRFbmRwb2ludHMsXG5cdHNlcnZlclxufTtcbiJdLCJmaWxlIjoiaW5kZXguanMifQ==
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LmpzIl0sIm5hbWVzIjpbIkVycm9yIiwicHJlcGFyZVN0YWNrVHJhY2UiLCJyZXF1aXJlIiwibG9nIiwiYWxlcnQiLCJoaWdobGlnaHQiLCJtYWdlbnRhIiwibm90ZSIsInNub29wbG9nZyIsInN0eWxlcyIsIkF1dGgiLCJjb25zdHJ1Y3RvciIsIm9wdHMiLCJFIiwiSU5WQUxJRF9BUkdVTUVOVCIsIk9iamVjdCIsImRlZmluZVByb3BlcnRpZXMiLCJiYXNlVXJsIiwidmFsdWUiLCJjbGllbnRJZCIsImNsaWVudFNlY3JldCIsImVudiIsIm1lc3NhZ2VzIiwicGFzc3dvcmQiLCJwbGF0Zm9ybVVybCIsInJlYWxtIiwic2VjcmV0RmlsZSIsInNlcnZpY2VBY2NvdW50IiwidXNlcm5hbWUiLCJ0b2tlblN0b3JlIiwiVG9rZW5TdG9yZSIsIklOVkFMSURfUEFSQU1FVEVSIiwidG9rZW5TdG9yZVR5cGUiLCJ1bmRlZmluZWQiLCJTZWN1cmVTdG9yZSIsImUiLCJGaWxlU3RvcmUiLCJjb2RlIiwiTWVtb3J5U3RvcmUiLCJhcHBseURlZmF1bHRzIiwiZW52aXJvbm1lbnRzIiwiSU5WQUxJRF9WQUxVRSIsImNyZWF0ZUF1dGhlbnRpY2F0b3IiLCJhdXRoZW50aWNhdG9yIiwiQXV0aGVudGljYXRvciIsIklOVkFMSURfQVJVR01FTlQiLCJPd25lclBhc3N3b3JkIiwiQ2xpZW50U2VjcmV0IiwiU2lnbmVkSldUIiwiUEtDRSIsImdldEFjY291bnQiLCJoYXNoIiwiYWNjb3VudCIsImdldCIsImV4cGlyZWQiLCJnZXRJbmZvIiwibGlzdCIsImxvZ2luIiwicmV2b2tlIiwiYWNjb3VudHMiLCJhbGwiLCJBcnJheSIsImlzQXJyYXkiLCJsZW5ndGgiLCJyZXZva2VkIiwiY2xlYXIiLCJkZWxldGUiLCJlbnRyeSIsInVybCIsImxvZ291dCIsInRva2VucyIsImlkX3Rva2VuIiwic3RhdHVzIiwidmFsaWRhdGVKU09OIiwibmFtZSIsImVyciIsInNlcnZlckluZm8iLCJ3ZWxsS25vd24iLCJzd2l0Y2hPcmciLCJhY2Nlc3NUb2tlbiIsIm9yZ0lkIiwiYm9keSIsImVycm9yIiwic3RhdHVzQ29kZSIsImZvcm1EYXRhIiwib3JnX2lkIiwiaGVhZGVycyIsIkFjY2VwdCIsIkF1dGhvcml6YXRpb24iLCJtZXRob2QiLCJzd2l0Y2hMb2dnZWRJbk9yZyIsIlJFUVVFU1RfRkFJTEVEIiwic3VjY2VzcyIsInJlc3VsdCIsIm9yZyIsIm9yZ19uYW1lIiwic2V0IiwibXNnIiwib2JqIiwiSlNPTiIsInBhcnNlIiwiZXJyb3JfZGVzY3JpcHRpb24iLCJ0cmltIiwiT1JHX1NXSVRDSF9GQUlMRUQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFLQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7OztBQUVBOztBQUNBOzs7Ozs7OztBQXhCQTtBQUNBLElBQUksQ0FBQ0EsS0FBSyxDQUFDQyxpQkFBWCxFQUE4QjtBQUM3QkMsRUFBQUEsT0FBTyxDQUFDLDZCQUFELENBQVA7QUFDQTs7QUF1QkQsTUFBTTtBQUFFQyxFQUFBQTtBQUFGLElBQVUsd0JBQVUsY0FBVixDQUFoQjtBQUNBLE1BQU07QUFBRUMsRUFBQUEsS0FBRjtBQUFTQyxFQUFBQSxTQUFUO0FBQW9CQyxFQUFBQSxPQUFwQjtBQUE2QkMsRUFBQUE7QUFBN0IsSUFBc0NDLG1CQUFVQyxNQUF0RDtBQUVBOzs7O0FBR2UsTUFBTUMsSUFBTixDQUFXO0FBQ3pCOzs7Ozs7O0FBUUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQThCQUMsRUFBQUEsV0FBVyxDQUFDQyxJQUFJLEdBQUcsRUFBUixFQUFZO0FBQUEsd0NBaENWLElBZ0NVOztBQUN0QixRQUFJLENBQUNBLElBQUQsSUFBUyxPQUFPQSxJQUFQLEtBQWdC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QUcxRixJQUFJLENBQUUsSUFBR2lFLE1BQU8sR0FBWixDQUFnQixFQUEvQixDQUFMO0FBQ0EsVUFBTTNELGdCQUFFMEYsaUJBQUYsQ0FBb0JOLEdBQXBCLEVBQXlCO0FBQUV6QixNQUFBQTtBQUFGLEtBQXpCLENBQU47QUFDQTs7QUEzWXdCIiwic291cmNlc0NvbnRlbnQiOlsiLyogaXN0YW5idWwgaWdub3JlIGlmICovXG5pZiAoIUVycm9yLnByZXBhcmVTdGFja1RyYWNlKSB7XG5cdHJlcXVpcmUoJ3NvdXJjZS1tYXAtc3VwcG9ydC9yZWdpc3RlcicpO1xufVxuXG5pbXBvcnQgRSBmcm9tICcuL2Vycm9ycyc7XG5cbmltcG9ydCBBdXRoZW50aWNhdG9yIGZyb20gJy4vYXV0aGVudGljYXRvcnMvYXV0aGVudGljYXRvcic7XG5pbXBvcnQgQ2xpZW50U2VjcmV0IGZyb20gJy4vYXV0aGVudGljYXRvcnMvY2xpZW50LXNlY3JldCc7XG5pbXBvcnQgT3duZXJQYXNzd29yZCBmcm9tICcuL2F1dGhlbnRpY2F0b3JzL293bmVyLXBhc3N3b3JkJztcbmltcG9ydCBQS0NFIGZyb20gJy4vYXV0aGVudGljYXRvcnMvcGtjZSc7XG5pbXBvcnQgU2lnbmVkSldUIGZyb20gJy4vYXV0aGVudGljYXRvcnMvc2lnbmVkLWp3dCc7XG5cbmltcG9ydCBGaWxlU3RvcmUgZnJvbSAnLi9zdG9yZXMvZmlsZS1zdG9yZSc7XG5pbXBvcnQgTWVtb3J5U3RvcmUgZnJvbSAnLi9zdG9yZXMvbWVtb3J5LXN0b3JlJztcbmltcG9ydCBTZWN1cmVTdG9yZSBmcm9tICcuL3N0b3Jlcy9zZWN1cmUtc3RvcmUnO1xuaW1wb3J0IFRva2VuU3RvcmUgZnJvbSAnLi9zdG9yZXMvdG9rZW4tc3RvcmUnO1xuXG5pbXBvcnQgZW52aXJvbm1lbnRzIGZyb20gJy4vZW52aXJvbm1lbnRzJztcbmltcG9ydCBnZXRFbmRwb2ludHMgZnJvbSAnLi9lbmRwb2ludHMnO1xuaW1wb3J0IHNub29wbG9nZyBmcm9tICdzbm9vcGxvZ2cnO1xuaW1wb3J0ICogYXMgc2VydmVyIGZyb20gJy4vc2VydmVyJztcblxuaW1wb3J0IHJlcXVlc3QgZnJvbSAnQGF4d2F5L2FtcGxpZnktcmVxdWVzdCc7XG5pbXBvcnQgeyBnZXRTZXJ2ZXJJbmZvIH0gZnJvbSAnLi91dGlsJztcblxuY29uc3QgeyBsb2cgfSA9IHNub29wbG9nZygnYW1wbGlmeS1hdXRoJyk7XG5jb25zdCB7IGFsZXJ0LCBoaWdobGlnaHQsIG1hZ2VudGEsIG5vdGUgfSA9IHNub29wbG9nZy5zdHlsZXM7XG5cbi8qKlxuICogQXV0aGVudGljYXRlcyB0aGUgbWFjaGluZSBhbmQgcmV0cmVpdmVzIHRoZSBhdXRoIHRva2VuLlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBBdXRoIHtcblx0LyoqXG5cdCAqIFRoZSBzdG9yZSB0byBwZXJzaXN0IHRoZSB0b2tlbi5cblx0ICpcblx0ICogQHR5cGUge1Rva2VuU3RvcmV9XG5cdCAqIEBhY2Nlc3MgcHJpdmF0ZVxuXHQgKi9cblx0dG9rZW5TdG9yZSA9IG51bGw7XG5cblx0LyoqXG5cdCAqIEluaXRpYWxpemVzIHRoZSBhdXRoZW50aWNhdGlvbiBpbnN0YW5jZSBieSBzZXR0aW5nIHRoZSBkZWZhdWx0IHNldHRpbmdzIGFuZCBjcmVhdGluZyB0aGVcblx0ICogdG9rZW4gc3RvcmUuXG5cdCAqXG5cdCAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gVmFyaW91cyBvcHRpb25zLlxuXHQgKiBAcGFyYW0ge1N0cmluZ30gW29wdHMuYmFzZVVybF0gLSBUaGUgYmFzZSBVUkwgdG8gdXNlIGZvciBhbGwgb3V0Z29pbmcgcmVxdWVzdHMuXG5cdCAqIEBwYXJhbSB7U3RyaW5nfSBbb3B0cy5jbGllbnRJZF0gLSBUaGUgY2xpZW50IGlkIHRvIHNwZWNpZnkgd2hlbiBhdXRoZW50aWNhdGluZy5cblx0ICogQHBhcmFtIHtTdHJpbmd9IFtvcHRzLmNsaWVudFNlY3JldF0gLSBUaGUgc2VjcmV0IHRva2VuIHRvIHVzZSB0byBhdXRoZW50aWNhdGUuXG5cdCAqIEBwYXJhbSB7U3RyaW5nfSBbb3B0cy5lbnY9cHJvZF0gLSBUaGUgZW52aXJvbm1lbnQgbmFtZS4gTXVzdCBiZSBgZGV2YCwgYHByZXByb2RgLCBvciBgcHJvZGAuXG5cdCAqIFRoZSBlbnZpcm9ubWVudCBpcyBhIHNob3J0aGFuZCB3YXkgb2Ygc3BlY2lmeWluZyBhIEF4d2F5IGRlZmF1bHQgYmFzZSBVUkwuXG5cdCAqIEBwYXJhbSB7U3RyaW5nfSBbb3B0cy5zZWN1cmVTZXJ2aWNlTmFtZT1cIkF4d2F5IEFNUExJRlkgQXV0aFwiXSAtIFRoZSBuYW1lIG9mIHRoZSBjb25zdW1lclxuXHQgKiB1c2luZyB0aGlzIGxpYnJhcnkgd2hlbiB1c2luZyB0aGUgXCJzZWN1cmVcIiB0b2tlbiBzdG9yZS5cblx0ICogQHBhcmFtIHtTdHJpbmd9IFtvcHRzLnBhc3N3b3JkXSAtIFRoZSBwYXNzd29yZCB1c2VkIHRvIGF1dGhlbnRpY2F0ZS4gUmVxdWlyZXMgYSBgdXNlcm5hbWVgLlxuXHQgKiBAcGFyYW0ge1N0cmluZ30gW29wdHMucGxhdGZvcm1VcmxdIC0gVGhlIHBsYXRmb3JtIFVSTCB1c2VkIHRvIGdldCB1c2VyIGluZm8gYW5kIG9yZ3MuXG5cdCAqIEBwYXJhbSB7U3RyaW5nfSBbb3B0cy5yZWFsbV0gLSBUaGUgbmFtZSBvZiB0aGUgcmVhbG0gdG8gYXV0aGVudGljYXRlIHdpdGguXG5cdCAqIEBwYXJhbSB7U3RyaW5nfSBbb3B0cy5zZWNyZXRGaWxlXSAtIFRoZSBwYXRoIHRvIHRoZSBqd3Qgc2VjcmV0IGZpbGUuXG5cdCAqIEBwYXJhbSB7Qm9vbGVhbn0gW29wdHMuc2VydmljZUFjY291bnQ9ZmFsc2VdIC0gV2hlbiBgdHJ1ZWAsIGluZGljYXRlcyBhdXRoZW50aWNhdGlvbiBpcyBiZWluZ1xuXHQgKiByZXF1ZXN0ZWQgYnkgYSBzZXJ2aWNlIGluc3RlYWQgb2YgYSB1c2VyLlxuXHQgKiBAcGFyYW0ge0Jvb2xlYW59IFtvcHRzLnRva2VuUmVmcmVzaFRocmVzaG9sZD0wXSAtIFRoZSBudW1iZXIgb2Ygc2Vjb25kcyBiZWZvcmUgdGhlIGFjY2Vzc1xuXHQgKiB0b2tlbiBleHBpcmVzIGFuZCBzaG91bGQgYmUgcmVmcmVzaGVkLlxuXHQgKiBAcGFyYW0ge1Rva2VuU3RvcmV9IFtvcHRzLnRva2VuU3RvcmVdIC0gQSB0b2tlbiBzdG9yZSBpbnN0YW5jZSBmb3IgcGVyc2lzdGluZyB0aGUgdG9rZW5zLlxuXHQgKiBAcGFyYW0ge1N0cmluZ30gW29wdHMudG9rZW5TdG9yZURpcl0gLSBUaGUgZGlyZWN0b3J5IHdoZXJlIHRoZSB0b2tlbiBzdG9yZSBpcyBzYXZlZC4gUmVxdWlyZWRcblx0ICogd2hlbiB0aGUgYHRva2VuU3RvcmVUeXBlYCBpcyBgc2VjdXJlYCBvciBgZmlsZWAuXG5cdCAqIEBwYXJhbSB7U3RyaW5nfSBbb3B0cy50b2tlblN0b3JlVHlwZT1hdXRvXSAtIFRoZSB0eXBlIG9mIHN0b3JlIHRvIHBlcnNpc3QgdGhlIGFjY2VzcyB0b2tlbi5cblx0ICogUG9zc2libGUgdmFsdWVzIGluY2x1ZGU6IGBhdXRvYCwgYHNlY3VyZWAsIGBmaWxlYCwgb3IgYG1lbW9yeWAuIElmIHZhbHVlIGlzIGBhdXRvYCwgaXQgd2lsbFxuXHQgKiBhdHRlbXB0IHRvIHVzZSBgc2VjdXJlYCwgdGhlbiBgZmlsZWAsIHRoZW4gYG1lbW9yeWAuIElmIHNldCB0byBgbnVsbGAsIHRoZW4gaXQgd2lsbCBub3Rcblx0ICogcGVyc2lzdCB0aGUgYWNjZXNzIHRva2VuLlxuXHQgKiBAcGFyYW0ge1N0cmluZ30gW29wdHMudXNlcm5hbWVdIC0gVGhlIHVzZXJuYW1lIHVzZWQgdG8gYXV0aGVudGljYXRlLiBSZXF1aXJlcyBhIGBwYXNzd29yZGAuXG5cdCAqIEBhY2Nlc3MgcHVibGljXG5cdCAqL1xuXHRjb25zdHJ1Y3RvcihvcHRzID0ge30pIHtcblx0XHRpZiAoIW9wdHMgfHwgdHlwZW9mIG9wdHMgIT09ICdvYmplY3QnKSB7XG5cdFx0XHR0aHJvdyBFLklOVkFMSURfQVJHVU1FTlQoJ0V4cGVjdGVkIG9wdGlvbnMgdG8gYmUgYW4gb2JqZWN0Jyk7XG5cdFx0fVxuXG5cdFx0T2JqZWN0LmRlZmluZVByb3BlcnRpZXModGhpcywge1xuXHRcdFx0YmFzZVVybDogICAgICAgIHsgdmFsdWU6IG9wdHMuYmFzZVVybCB9LFxuXHRcdFx0Y2xpZW50SWQ6ICAgICAgIHsgdmFsdWU6IG9wdHMuY2xpZW50SWQgfSxcblx0XHRcdGNsaWVudFNlY3JldDogICB7IHZhbHVlOiBvcHRzLmNsaWVudFNlY3JldCB9LFxuXHRcdFx0ZW52OiAgICAgICAgICAgIHsgdmFsdWU6IG9wdHMuZW52IH0sXG5cdFx0XHRtZXNzYWdlczogICAgICAgeyB2YWx1ZTogb3B0cy5tZXNzYWdlcyB9LFxuXHRcdFx0cGFzc3dvcmQ6ICAgICAgIHsgdmFsdWU6IG9wdHMucGFzc3dvcmQgfSxcblx0XHRcdHBsYXRmb3JtVXJsOiAgICB7IHZhbHVlOiBvcHRzLnBsYXRmb3JtVXJsIH0sXG5cdFx0XHRyZWFsbTogICAgICAgICAgeyB2YWx1ZTogb3B0cy5yZWFsbSB9LFxuXHRcdFx0c2VjcmV0RmlsZTogICAgIHsgdmFsdWU6IG9wdHMuc2VjcmV0RmlsZSB9LFxuXHRcdFx0c2VydmljZUFjY291bnQ6IHsgdmFsdWU6IG9wdHMuc2VydmljZUFjY291bnQgfSxcblx0XHRcdHVzZXJuYW1lOiAgICAgICB7IHZhbHVlOiBvcHRzLnVzZXJuYW1lIH1cblx0XHR9KTtcblxuXHRcdGlmIChvcHRzLnRva2VuU3RvcmUpIHtcblx0XHRcdGlmICghKG9wdHMudG9rZW5TdG9yZSBpbnN0YW5jZW9mIFRva2VuU3RvcmUpKSB7XG5cdFx0XHRcdHRocm93IEUuSU5WQUxJRF9QQVJBTUVURVIoJ0V4cGVjdGVkIHRoZSB0b2tlbiBzdG9yZSB0byBiZSBhIFwiVG9rZW5TdG9yZVwiIGluc3RhbmNlJyk7XG5cdFx0XHR9XG5cdFx0XHR0aGlzLnRva2VuU3RvcmUgPSBvcHRzLnRva2VuU3RvcmU7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGNvbnN0IHRva2VuU3RvcmVUeXBlID0gb3B0cy50b2tlblN0b3JlVHlwZSA9PT0gdW5kZWZpbmVkID8gJ2F1dG8nIDogb3B0cy50b2tlblN0b3JlVHlwZTtcblx0XHRcdHN3aXRjaCAodG9rZW5TdG9yZVR5cGUpIHtcblx0XHRcdFx0Y2FzZSAnYXV0byc6XG5cdFx0XHRcdGNhc2UgJ3NlY3VyZSc6XG5cdFx0XHRcdFx0dHJ5IHtcblx0XHRcdFx0XHRcdHRoaXMudG9rZW5TdG9yZSA9IG5ldyBTZWN1cmVTdG9yZShvcHRzKTtcblx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdH0gY2F0Y2ggKGUpIHtcblx0XHRcdFx0XHRcdC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuXHRcdFx0XHRcdFx0aWYgKHRva2VuU3RvcmVUeXBlID09PSAnYXV0bycpIHtcblx0XHRcdFx0XHRcdFx0Ly8gbGV0ICdhdXRvJyBmYWxsIHRocm91Z2hcblx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdHRocm93IGU7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdGNhc2UgJ2ZpbGUnOlxuXHRcdFx0XHRcdHRyeSB7XG5cdFx0XHRcdFx0XHR0aGlzLnRva2VuU3RvcmUgPSBuZXcgRmlsZVN0b3JlKG9wdHMpO1xuXHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0fSBjYXRjaCAoZSkge1xuXHRcdFx0XHRcdFx0LyogaXN0YW5idWwgaWdub3JlIGlmICovXG5cdFx0XHRcdFx0XHRpZiAodG9rZW5TdG9yZVR5cGUgPT09ICdhdXRvJyAmJiBlLmNvZGUgPT09ICdFUlJfTUlTU0lOR19SRVFVSVJFRF9QQVJBTUVURVInKSB7XG5cdFx0XHRcdFx0XHRcdC8vIGxldCAnYXV0bycgZmFsbCB0aHJvdWdoXG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHR0aHJvdyBlO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRjYXNlICdtZW1vcnknOlxuXHRcdFx0XHRcdHRoaXMudG9rZW5TdG9yZSA9IG5ldyBNZW1vcnlTdG9yZShvcHRzKTtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogRW5zdXJlcyB0aGUgb3B0aW9ucyBjb250YWlucyB0aGUgY29uZmlndXJhYmxlIHNldHRpbmdzLiBWYWxpZGF0aW9uIGlzIGhhbmRsZWQgYnkgdGhlIGNvZGVcblx0ICogcmVxdWlyaW5nIHRoZSB2YWx1ZXMuXG5cdCAqXG5cdCAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0c10gLSBWYXJpb3VzIG9wdGlvbnMuXG5cdCAqIEByZXR1cm5zIHtPYmplY3R9XG5cdCAqIEBhY2Nlc3MgcHJpdmF0ZVxuXHQgKi9cblx0YXBwbHlEZWZhdWx0cyhvcHRzID0ge30pIHtcblx0XHRpZiAoIW9wdHMgfHwgdHlwZW9mIG9wdHMgIT09ICdvYmplY3QnKSB7XG5cdFx0XHR0aHJvdyBFLklOVkFMSURfQVJHVU1FTlQoJ0V4cGVjdGVkIG9wdGlvbnMgdG8gYmUgYW4gb2JqZWN0Jyk7XG5cdFx0fVxuXG5cdFx0Y29uc3QgZW52ID0gb3B0cy5lbnYgfHwgdGhpcy5lbnYgfHwgJ3Byb2QnO1xuXHRcdGlmICghZW52aXJvbm1lbnRzW2Vudl0pIHtcblx0XHRcdHRocm93IEUuSU5WQUxJRF9WQUxVRShgSW52YWxpZCBlbnZpcm9ubWVudDogJHtvcHRzLmVudiB8fCB0aGlzLmVudn1gKTtcblx0XHR9XG5cblx0XHRvcHRzLmJhc2VVcmwgICAgICAgID0gb3B0cy5iYXNlVXJsIHx8IHRoaXMuYmFzZVVybCB8fCBlbnZpcm9ubWVudHNbZW52XS5iYXNlVXJsO1xuXHRcdG9wdHMuY2xpZW50SWQgICAgICAgPSBvcHRzLmNsaWVudElkIHx8IHRoaXMuY2xpZW50SWQ7XG5cdFx0b3B0cy5jbGllbnRTZWNyZXQgICA9IG9wdHMuY2xpZW50U2VjcmV0IHx8IHRoaXMuY2xpZW50U2VjcmV0O1xuXHRcdG9wdHMuZW52ICAgICAgICAgICAgPSBlbnY7XG5cdFx0b3B0cy5tZXNzYWdlcyAgICAgICA9IG9wdHMubWVzc2FnZXMgfHwgdGhpcy5tZXNzYWdlcztcblx0XHRvcHRzLnBhc3N3b3JkICAgICAgID0gb3B0cy5wYXNzd29yZCB8fCB0aGlzLnBhc3N3b3JkO1xuXHRcdG9wdHMucGxhdGZvcm1VcmwgICAgPSBvcHRzLnBsYXRmb3JtVXJsIHx8IHRoaXMucGxhdGZvcm1VcmwgfHwgZW52aXJvbm1lbnRzW2Vudl0ucGxhdGZvcm1Vcmw7XG5cdFx0b3B0cy5yZWFsbSAgICAgICAgICA9IG9wdHMucmVhbG0gfHwgdGhpcy5yZWFsbTtcblx0XHRvcHRzLnNlY3JldEZpbGUgICAgID0gb3B0cy5zZWNyZXRGaWxlIHx8IHRoaXMuc2VjcmV0RmlsZTtcblx0XHRvcHRzLnNlcnZpY2VBY2NvdW50ID0gb3B0cy5zZXJ2aWNlQWNjb3VudCB8fCB0aGlzLnNlcnZpY2VBY2NvdW50O1xuXHRcdG9wdHMudG9rZW5TdG9yZSAgICAgPSB0aGlzLnRva2VuU3RvcmU7XG5cdFx0b3B0cy51c2VybmFtZSAgICAgICA9IG9wdHMudXNlcm5hbWUgfHwgdGhpcy51c2VybmFtZTtcblxuXHRcdHJldHVybiBvcHRzO1xuXHR9XG5cblx0LyoqXG5cdCAqIENyZWF0ZXMgYW4gYXV0aGV0bmljYXRvciBiYXNlZCBvbiB0aGUgc3VwcGxpZWQgb3B0aW9ucy5cblx0ICpcblx0ICogQHBhcmFtIHtPYmplY3R9IFtvcHRzXSAtIFZhcmlvdXMgb3B0aW9ucy5cblx0ICogQHBhcmFtIHtBdXRoZW50aWNhdG9yfSBbb3B0cy5hdXRoZW50aWNhdG9yXSAtIEFuIGF1dGhlbnRpY2F0b3IgaW5zdGFuY2UgdG8gdXNlLiBJZiBub3Rcblx0ICogc3BlY2lmaWVkLCBvbmUgd2lsbCBiZSBhdXRvLXNlbGVjdGVkIGJhc2VkIG9uIHRoZSBvcHRpb25zLlxuXHQgKiBAcGFyYW0ge1N0cmluZ30gW29wdHMuY2xpZW50U2VjcmV0XSAtIFRoZSBzZWNyZXQgdG9rZW4gdG8gdXNlIHRvIGF1dGhlbnRpY2F0ZS5cblx0ICogQHBhcmFtIHtTdHJpbmd9IFtvcHRzLnBhc3N3b3JkXSAtIFRoZSBwYXNzd29yZCB1c2VkIHRvIGF1dGhlbnRpY2F0ZS4gUmVxdWlyZXMgYSBgdXNlcm5hbWVgLlxuXHQgKiBAcGFyYW0ge1N0cmluZ30gW29wdHMuc2VjcmV0RmlsZV0gLSBUaGUgcGF0aCB0byB0aGUgand0IHNlY3JldCBmaWxlLlxuXHQgKiBAcGFyYW0ge0Jvb2xlYW59IFtvcHRzLnNlcnZpY2VBY2NvdW50PWZhbHNlXSAtIFdoZW4gYHRydWVgLCBpbmRpY2F0ZXMgYXV0aGVudGljYXRpb24gaXMgYmVpbmdcblx0ICogcmVxdWVzdGVkIGJ5IGEgc2VydmljZSBpbnN0ZWFkIG9mIGEgdXNlci5cblx0ICogQHBhcmFtIHtTdHJpbmd9IFtvcHRzLnVzZXJuYW1lXSAtIFRoZSB1c2VybmFtZSB1c2VkIHRvIGF1dGhlbnRpY2F0ZS4gUmVxdWlyZXMgYSBgcGFzc3dvcmRgLlxuXHQgKiBAcmV0dXJucyB7QXV0aGVudGljYXRvcn1cblx0ICogQGFjY2VzcyBwdWJsaWNcblx0ICovXG5cdGNyZWF0ZUF1dGhlbnRpY2F0b3Iob3B0cyA9IHt9KSB7XG5cdFx0aWYgKG9wdHMuYXV0aGVudGljYXRvcikge1xuXHRcdFx0aWYgKCEob3B0cy5hdXRoZW50aWNhdG9yIGluc3RhbmNlb2YgQXV0aGVudGljYXRvcikpIHtcblx0XHRcdFx0dGhyb3cgRS5JTlZBTElEX0FSVUdNRU5UKCdFeHBlY3RlZCBhdXRoZW50aWNhdG9yIHRvIGJlIGFuIEF1dGhlbnRpY2F0b3IgaW5zdGFuY2UuJyk7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gb3B0cy5hdXRoZW50aWNhdG9yO1xuXHRcdH1cblxuXHRcdGlmICh0eXBlb2Ygb3B0cy51c2VybmFtZSA9PT0gJ3N0cmluZycgJiYgb3B0cy51c2VybmFtZSAmJiB0eXBlb2Ygb3B0cy5wYXNzd29yZCA9PT0gJ3N0cmluZycpIHtcblx0XHRcdHJldHVybiBuZXcgT3duZXJQYXNzd29yZChvcHRzKTtcblx0XHR9XG5cblx0XHRpZiAodHlwZW9mIG9wdHMuY2xpZW50U2VjcmV0ID09PSAnc3RyaW5nJyAmJiBvcHRzLmNsaWVudFNlY3JldCkge1xuXHRcdFx0cmV0dXJuIG5ldyBDbGllbnRTZWNyZXQob3B0cyk7XG5cdFx0fVxuXG5cdFx0aWYgKHR5cGVvZiBvcHRzLnNlY3JldEZpbGUgPT09ICdzdHJpbmcnICYmIG9wdHMuc2VjcmV0RmlsZSkge1xuXHRcdFx0cmV0dXJuIG5ldyBTaWduZWRKV1Qob3B0cyk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIG5ldyBQS0NFKG9wdHMpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJldHJpZXZlcyB0aGUgYWNjZXNzIHRva2VuLiBJZiB0aGUgYXV0aGVudGljYXRvciBpcyBpbnRlcmFjdGl2ZSBhbmQgdGhlIGF1dGhlbnRpY2F0b3IgaGFzIG5vdFxuXHQgKiB5ZXQgYXV0aGVudGljYXRlZCB3aXRoIHRoZSBzZXJ2ZXIsIGFuIGVycm9yIGlzIHRocm93bi5cblx0ICpcblx0ICogQHBhcmFtIHtPYmplY3R8U3RyaW5nfSBvcHRzIC0gUmVxdWlyZWQgb3B0aW9ucyBvciBhIHN0cmluZyBjb250YWluaW5nIHRoZSBoYXNoLlxuXHQgKiBAcGFyYW0ge1N0cmluZ30gb3B0cy5hY2NvdW50TmFtZSAtIFRoZSBhY2NvdW50IG5hbWUgdG8gcmV0cmlldmUuXG5cdCAqIEBwYXJhbSB7QXV0aGVudGljYXRvcn0gW29wdHMuYXV0aGVudGljYXRvcl0gLSBBbiBhdXRoZW50aWNhdG9yIGluc3RhbmNlIHRvIHVzZS4gSWYgbm90XG5cdCAqIHNwZWNpZmllZCwgb25lIHdpbGwgYmUgYXV0by1zZWxlY3RlZCBiYXNlZCBvbiB0aGUgb3B0aW9ucy5cblx0ICogQHBhcmFtIHtTdHJpbmd9IFtvcHRzLmJhc2VVcmxdIC0gVGhlIGJhc2UgVVJMIHRvIGZpbHRlciBieS5cblx0ICogQHBhcmFtIHtTdHJpbmd9IFtvcHRzLnBsYXRmb3JtVXJsXSAtIFRoZSBwbGF0Zm9ybSBVUkwgdXNlZCB0byBnZXQgdXNlciBpbmZvIGFuZCBvcmdzLlxuXHQgKiBAcmV0dXJucyB7UHJvbWlzZTw/T2JqZWN0Pn1cblx0ICogQGFjY2VzcyBwdWJsaWNcblx0ICovXG5cdGFzeW5jIGdldEFjY291bnQob3B0cyA9IHt9KSB7XG5cdFx0aWYgKCF0aGlzLnRva2VuU3RvcmUpIHtcblx0XHRcdGxvZygnQ2Fubm90IGdldCBhY2NvdW50LCBubyB0b2tlbiBzdG9yZScpO1xuXHRcdFx0cmV0dXJuIG51bGw7XG5cdFx0fVxuXG5cdFx0bGV0IGF1dGhlbnRpY2F0b3I7XG5cblx0XHRpZiAodHlwZW9mIG9wdHMgPT09ICdzdHJpbmcnKSB7XG5cdFx0XHRvcHRzID0gdGhpcy5hcHBseURlZmF1bHRzKHsgaGFzaDogb3B0cyB9KTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5hcHBseURlZmF1bHRzKG9wdHMpO1xuXHRcdFx0YXV0aGVudGljYXRvciA9IHRoaXMuY3JlYXRlQXV0aGVudGljYXRvcihvcHRzKTtcblx0XHRcdG9wdHMuaGFzaCA9IGF1dGhlbnRpY2F0b3IuaGFzaDtcblx0XHR9XG5cblx0XHRjb25zdCBhY2NvdW50ID0gYXdhaXQgdGhpcy50b2tlblN0b3JlLmdldChvcHRzKTtcblx0XHRpZiAoYWNjb3VudCAmJiAhYWNjb3VudC5leHBpcmVkKSB7XG5cdFx0XHRpZiAoIWF1dGhlbnRpY2F0b3IpIHtcblx0XHRcdFx0YXV0aGVudGljYXRvciA9IHRoaXMuY3JlYXRlQXV0aGVudGljYXRvcihvcHRzKTtcblx0XHRcdH1cblx0XHRcdHJldHVybiBhd2FpdCBhdXRoZW50aWNhdG9yLmdldEluZm8oYWNjb3VudCk7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIFJldHVybnMgYSBsaXN0IG9mIGFsbCB2YWxpZCBhY2Nlc3MgdG9rZW5zLlxuXHQgKlxuXHQgKiBAcmV0dXJucyB7UHJvbWlzZTxBcnJheT59XG5cdCAqIEBhY2Nlc3MgcHVibGljXG5cdCAqL1xuXHRhc3luYyBsaXN0KCkge1xuXHRcdGlmICh0aGlzLnRva2VuU3RvcmUpIHtcblx0XHRcdHJldHVybiBhd2FpdCB0aGlzLnRva2VuU3RvcmUubGlzdCgpO1xuXHRcdH1cblx0XHRyZXR1cm4gW107XG5cdH1cblxuXHQvKipcblx0ICogQXV0aGVudGljYXRlcyB1c2luZyB0aGUgY29uZmlndXJlZCBhdXRoZW50aWNhdG9yLlxuXHQgKlxuXHQgKiBAcGFyYW0ge09iamVjdH0gW29wdHNdIC0gVmFyaW91cyBvcHRpb25zLlxuXHQgKiBAcGFyYW0ge1N0cmluZ3xBcnJheS48U3RyaW5nPn0gW29wdC5hcHBdIC0gU3BlY2lmeSB0aGUgYXBwIHRvIG9wZW4gdGhlIGB0YXJnZXRgIHdpdGgsIG9yIGFuXG5cdCAqIGFycmF5IHdpdGggdGhlIGFwcCBhbmQgYXBwIGFyZ3VtZW50cy5cblx0ICogQHBhcmFtIHtBdXRoZW50aWNhdG9yfSBbb3B0cy5hdXRoZW50aWNhdG9yXSAtIEFuIGF1dGhlbnRpY2F0b3IgaW5zdGFuY2UgdG8gdXNlLiBJZiBub3Rcblx0ICogc3BlY2lmaWVkLCBvbmUgd2lsbCBiZSBhdXRvLXNlbGVjdGVkIGJhc2VkIG9uIHRoZSBvcHRpb25zLlxuXHQgKiBAcGFyYW0ge1N0cmluZ30gW29wdHMuYmFzZVVybF0gLSBUaGUgYmFzZSBVUkwgdG8gdXNlIGZvciBhbGwgb3V0Z29pbmcgcmVxdWVzdHMuXG5cdCAqIEBwYXJhbSB7U3RyaW5nfSBbb3B0cy5jbGllbnRJZF0gLSBUaGUgY2xpZW50IGlkIHRvIHNwZWNpZnkgd2hlbiBhdXRoZW50aWNhdGluZy5cblx0ICogQHBhcmFtIHtTdHJpbmd9IFtvcHRzLmNvZGVdIC0gVGhlIGF1dGhlbnRpY2F0aW9uIGNvZGUgZnJvbSBhIHN1Y2Nlc3NmdWwgaW50ZXJhY3RpdmUgbG9naW4uXG5cdCAqIEBwYXJhbSB7U3RyaW5nfSBbb3B0cy5lbnY9cHJvZF0gLSBUaGUgZW52aXJvbm1lbnQgbmFtZS4gTXVzdCBiZSBgZGV2YCwgYHByZXByb2RgLCBvciBgcHJvZGAuXG5cdCAqIFRoZSBlbnZpcm9ubWVudCBpcyBhIHNob3J0aGFuZCB3YXkgb2Ygc3BlY2lmeWluZyBhIEF4d2F5IGRlZmF1bHQgYmFzZSBVUkwuXG5cdCAqIEBwYXJhbSB7Qm9vbGVhbn0gW29wdHMubWFudWFsPWZhbHNlXSAtIFdoZW4gYHRydWVgLCBpdCB3aWxsIHJldHVybiB0aGUgYXV0aCBVUkwgaW5zdGVhZCBvZlxuXHQgKiBsYXVuY2hpbmcgdGhlIGF1dGggVVJMIGluIHRoZSBkZWZhdWx0IGJyb3dzZXIuXG5cdCAqIEBwYXJhbSB7U3RyaW5nfSBbb3B0cy5wbGF0Zm9ybVVybF0gLSBUaGUgcGxhdGZvcm0gVVJMIHVzZWQgdG8gZ2V0IHVzZXIgaW5mbyBhbmQgb3Jncy5cblx0ICogQHBhcmFtIHtTdHJpbmd9IFtvcHRzLnJlYWxtXSAtIFRoZSBuYW1lIG9mIHRoZSByZWFsbSB0byBhdXRoZW50aWNhdGUgd2l0aC5cblx0ICogQHBhcmFtIHtOdW1iZXJ9IFtvcHRzLnRpbWVvdXRdIC0gVGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgdG8gd2FpdCBiZWZvcmUgdGltaW5nIG91dC5cblx0ICogRGVmYXVsdHMgdG8gdGhlIGBpbnRlcmFjdGl2ZUxvZ2luVGltZW91dGAgcHJvcGVydHkuXG5cdCAqIEBwYXJhbSB7Qm9vbGVhbn0gW29wdHMud2FpdD1mYWxzZV0gLSBXYWl0IGZvciB0aGUgb3BlbmVkIGFwcCB0byBleGl0IGJlZm9yZSBmdWxmaWxsaW5nIHRoZVxuXHQgKiBwcm9taXNlLiBJZiBgZmFsc2VgIGl0J3MgZnVsZmlsbGVkIGltbWVkaWF0ZWx5IHdoZW4gb3BlbmluZyB0aGUgYXBwLlxuXHQgKiBAcmV0dXJucyB7UHJvbWlzZTxPYmplY3Q+fSBSZXNvbHZlcyBhbiBvYmplY3QgY29udGFpbmluZyB0aGUgYWNjZXNzIHRva2VuLCBhY2NvdW50IG5hbWUsIGFuZFxuXHQgKiB1c2VyIGluZm8uXG5cdCAqIEBhY2Nlc3MgcHVibGljXG5cdCAqL1xuXHRhc3luYyBsb2dpbihvcHRzID0ge30pIHtcblx0XHR0aGlzLmFwcGx5RGVmYXVsdHMob3B0cyk7XG5cdFx0Y29uc3QgYXV0aGVudGljYXRvciA9IHRoaXMuY3JlYXRlQXV0aGVudGljYXRvcihvcHRzKTtcblx0XHRyZXR1cm4gYXdhaXQgYXV0aGVudGljYXRvci5sb2dpbihvcHRzKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXZva2VzIGFsbCBvciBzcGVjaWZpYyBhdXRoZW50aWNhdGVkIGFjY291bnRzLlxuXHQgKlxuXHQgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIFJlcXVpcmVkIG9wdGlvbnMuXG5cdCAqIEBwYXJhbSB7QXJyYXkuPFN0cmluZz58U3RyaW5nfSBvcHRzLmFjY291bnRzIC0gQSBsaXN0IG9mIGFjY291bnRzIG5hbWVzLlxuXHQgKiBAcGFyYW0ge0Jvb2xlYW59IG9wdHMuYWxsIC0gV2hlbiBgdHJ1ZWAsIHJldm9rZXMgYWxsIGFjY291bnRzLlxuXHQgKiBAcGFyYW0ge1N0cmluZ30gW29wdHMuYmFzZVVybF0gLSBUaGUgYmFzZSBVUkwgdXNlZCB0byBmaWx0ZXIgYWNjb3VudHMuXG5cdCAqIEByZXR1cm5zIHtQcm9taXNlPEFycmF5Pn0gUmV0dXJucyBhIGxpc3Qgb2YgcmV2b2tlZCBjcmVkZW50aWFscy5cblx0ICogQGFjY2VzcyBwdWJsaWNcblx0ICovXG5cdGFzeW5jIHJldm9rZSh7IGFjY291bnRzLCBhbGwsIGJhc2VVcmwgfSA9IHt9KSB7XG5cdFx0aWYgKCF0aGlzLnRva2VuU3RvcmUpIHtcblx0XHRcdGxvZygnTm8gdG9rZW4gc3RvcmUsIHJldHVybmluZyBlbXB0eSBhcnJheScpO1xuXHRcdFx0cmV0dXJuIFtdO1xuXHRcdH1cblxuXHRcdGlmICghYWxsICYmIHR5cGVvZiBhY2NvdW50cyAhPT0gJ3N0cmluZycgJiYgIUFycmF5LmlzQXJyYXkoYWNjb3VudHMpKSB7XG5cdFx0XHR0aHJvdyBFLklOVkFMSURfQVJHVU1FTlQoJ0V4cGVjdGVkIGFjY291bnRzIHRvIGJlIFwiYWxsXCIgb3IgYSBsaXN0IG9mIGFjY291bnRzJyk7XG5cdFx0fVxuXG5cdFx0aWYgKCFhbGwgJiYgIWFjY291bnRzLmxlbmd0aCkge1xuXHRcdFx0cmV0dXJuIFtdO1xuXHRcdH1cblxuXHRcdGxldCByZXZva2VkO1xuXHRcdGlmIChhbGwpIHtcblx0XHRcdHJldm9rZWQgPSBhd2FpdCB0aGlzLnRva2VuU3RvcmUuY2xlYXIoYmFzZVVybCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHJldm9rZWQgPSBhd2FpdCB0aGlzLnRva2VuU3RvcmUuZGVsZXRlKGFjY291bnRzLCBiYXNlVXJsKTtcblx0XHR9XG5cblx0XHRpZiAoQXJyYXkuaXNBcnJheShyZXZva2VkKSkge1xuXHRcdFx0Zm9yIChjb25zdCBlbnRyeSBvZiByZXZva2VkKSB7XG5cdFx0XHRcdGNvbnN0IHVybCA9IGAke2dldEVuZHBvaW50cyhlbnRyeSkubG9nb3V0fT9pZF90b2tlbl9oaW50PSR7ZW50cnkudG9rZW5zLmlkX3Rva2VufWA7XG5cdFx0XHRcdHRyeSB7XG5cdFx0XHRcdFx0Y29uc3QgeyBzdGF0dXMgfSA9IGF3YWl0IHJlcXVlc3QoeyB1cmwsIHZhbGlkYXRlSlNPTjogdHJ1ZSB9KTtcblx0XHRcdFx0XHRsb2coYFN1Y2Nlc3NmdWxseSBsb2dnZWQgb3V0ICR7aGlnaGxpZ2h0KGVudHJ5Lm5hbWUpfSAke21hZ2VudGEoc3RhdHVzKX0gJHtub3RlKGAoJHtlbnRyeS5iYXNlVXJsfSwgJHtlbnRyeS5yZWFsbX0pYCl9YCk7XG5cdFx0XHRcdH0gY2F0Y2ggKGVycikge1xuXHRcdFx0XHRcdGxvZyhgRmFpbGVkIHRvIGxvZyBvdXQgJHtoaWdobGlnaHQoZW50cnkubmFtZSl9ICR7YWxlcnQoZXJyLnN0YXR1cyl9ICR7bm90ZShgKCR7ZW50cnkuYmFzZVVybH0sICR7ZW50cnkucmVhbG19KWApfWApO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHJldm9rZWQ7XG5cdH1cblxuXHQvKipcblx0ICogRGlzY292ZXJzIGF2YWlsYWJsZSBlbmRwb2ludHMgYmFzZWQgb24gdGhlIGF1dGhlbnRpY2F0aW9uIHNlcnZlcidzIE9wZW5JRCBjb25maWd1cmF0aW9uLlxuXHQgKlxuXHQgKiBAcGFyYW0ge09iamVjdH0gW29wdHNdIC0gVmFyaW91cyBvcHRpb25zLlxuXHQgKiBAcGFyYW0ge1N0cmluZ30gW29wdHMuYmFzZVVybF0gLSBUaGUgYmFzZSBVUkwgdG8gdXNlIGZvciBhbGwgb3V0Z29pbmcgcmVxdWVzdHMuXG5cdCAqIEBwYXJhbSB7U3RyaW5nfSBbb3B0cy5lbnY9cHJvZF0gLSBUaGUgZW52aXJvbm1lbnQgbmFtZS4gTXVzdCBiZSBgZGV2YCwgYHByZXByb2RgLCBvciBgcHJvZGAuXG5cdCAqIFRoZSBlbnZpcm9ubWVudCBpcyBhIHNob3J0aGFuZCB3YXkgb2Ygc3BlY2lmeWluZyBhIEF4d2F5IGRlZmF1bHQgYmFzZSBVUkwuXG5cdCAqIEBwYXJhbSB7U3RyaW5nfSBbb3B0cy5yZWFsbV0gLSBUaGUgbmFtZSBvZiB0aGUgcmVhbG0gdG8gYXV0aGVudGljYXRlIHdpdGguXG5cdCAqIEBwYXJhbSB7U3RyaW5nfSBbb3B0cy51cmxdIC0gQW4gb3B0aW9uYWwgVVJMIHRvIGRpc2NvdmVyIHRoZSBhdmFpbGFibGUgZW5kcG9pbnRzLlxuXHQgKiBAcmV0dXJucyB7UHJvbWlzZTxPYmplY3Q+fVxuXHQgKiBAYWNjZXNzIHB1YmxpY1xuXHQgKi9cblx0YXN5bmMgc2VydmVySW5mbyhvcHRzID0ge30pIHtcblx0XHR0aGlzLmFwcGx5RGVmYXVsdHMob3B0cyk7XG5cblx0XHRsZXQgeyB1cmwgfSA9IG9wdHM7XG5cblx0XHRpZiAoIXVybCkge1xuXHRcdFx0dXJsID0gZ2V0RW5kcG9pbnRzKG9wdHMpLndlbGxLbm93bjtcblx0XHR9XG5cblx0XHRyZXR1cm4gYXdhaXQgZ2V0U2VydmVySW5mbyh1cmwpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFN3aXRjaGVzIHRoZSBjdXJyZW50IG9yZ2FuaXphdGlvbi5cblx0ICpcblx0ICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBWYXJpb3VzIG9wdGlvbnMuXG5cdCAqIEBwYXJhbSB7U3RyaW5nfSBvcHRzLmFjY2Vzc1Rva2VuIC0gVGhlIGFjY2VzcyB0b2tlbi5cblx0ICogQHBhcmFtIHtPYmplY3R9IFtvcHRzLmFjY291bnRdIC0gVGhlIGFjY291bnQgb2JqZWN0LlxuXHQgKiBAcGFyYW0ge1N0cmluZ30gW29wdHMuYmFzZVVybF0gLSBUaGUgYmFzZSBVUkwgdG8gdXNlIGZvciBhbGwgb3V0Z29pbmcgcmVxdWVzdHMuXG5cdCAqIEBwYXJhbSB7U3RyaW5nfSBvcHRzLm9yZ0lkIC0gVGhlIG9yZyBpZC5cblx0ICogQHBhcmFtIHtTdHJpbmd9IFtvcHRzLnBsYXRmb3JtVXJsXSAtIFRoZSBBeHdheSBQbGF0Zm9ybSBVUkwuXG5cdCAqIEBwYXJhbSB7U3RyaW5nfSBbb3B0cy5yZWFsbV0gLSBUaGUgbmFtZSBvZiB0aGUgcmVhbG0gdG8gYXV0aGVudGljYXRlIHdpdGguXG5cdCAqIEByZXR1cm5zIHtQcm9taXNlPE9iamVjdD59IFJlc29sdmVzIHRoZSBzZWxlY3RlZCBvcmdhbml6YXRpb24gaW5mby5cblx0ICogQGFjY2VzcyBwdWJsaWNcblx0ICovXG5cdGFzeW5jIHN3aXRjaE9yZyhvcHRzKSB7XG5cdFx0aWYgKCFvcHRzIHx8IHR5cGVvZiBvcHRzICE9PSAnb2JqZWN0Jykge1xuXHRcdFx0dGhyb3cgRS5JTlZBTElEX0FSR1VNRU5UKCdFeHBlY3RlZCBvcHRpb25zIHRvIGJlIGFuIG9iamVjdCcpO1xuXHRcdH1cblxuXHRcdHRoaXMuYXBwbHlEZWZhdWx0cyhvcHRzKTtcblxuXHRcdGNvbnN0IHsgYWNjZXNzVG9rZW4sIG9yZ0lkIH0gPSBvcHRzO1xuXHRcdGxvZyhgU3dpdGNoaW5nIG9yZyB0byAke29yZ0lkfWApO1xuXG5cdFx0Y29uc3QgeyBib2R5LCBlcnJvciwgc3RhdHVzLCBzdGF0dXNDb2RlIH0gPSBhd2FpdCByZXF1ZXN0KHtcblx0XHRcdGZvcm1EYXRhOiB7IG9yZ19pZDogb3JnSWQgfSxcblx0XHRcdGhlYWRlcnM6IHtcblx0XHRcdFx0QWNjZXB0OiAnYXBwbGljYXRpb24vanNvbicsXG5cdFx0XHRcdEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHthY2Nlc3NUb2tlbn1gXG5cdFx0XHR9LFxuXHRcdFx0bWV0aG9kOiAnUE9TVCcsXG5cdFx0XHR1cmw6IGAke2dldEVuZHBvaW50cyhvcHRzKS5zd2l0Y2hMb2dnZWRJbk9yZ31gLFxuXHRcdFx0dmFsaWRhdGVKU09OOiB0cnVlXG5cdFx0fSk7XG5cblx0XHRpZiAoc3RhdHVzQ29kZSA+PSAyMDAgJiYgc3RhdHVzQ29kZSA8IDMwMCkge1xuXHRcdFx0aWYgKCFib2R5KSB7XG5cdFx0XHRcdHRocm93IEUuUkVRVUVTVF9GQUlMRUQoYFN3aXRjaCBvcmcgZmFpbGVkOiBSZXNwb25zZSBoYXMgbm8gYm9keSAoJHtzdGF0dXN9KWApO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAoIWJvZHkuc3VjY2Vzcykge1xuXHRcdFx0XHR0aHJvdyBFLlJFUVVFU1RfRkFJTEVEKGBTd2l0Y2ggb3JnIGZhaWxlZDogUmVxdWVzdCB3YXMgbm90IHN1Y2Nlc3NmdWwgKCR7c3RhdHVzfSlgKTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKCFib2R5LnJlc3VsdCkge1xuXHRcdFx0XHR0aHJvdyBFLlJFUVVFU1RfRkFJTEVEKGBTd2l0Y2ggb3JnIGZhaWxlZDogUmVzcG9uc2UgZGlkIG5vdCBjb250YWluIGEgcmVzdWx0ICgke3N0YXR1c30pYCk7XG5cdFx0XHR9XG5cblx0XHRcdGNvbnN0IG9yZyA9IHtcblx0XHRcdFx0bmFtZTogICBib2R5LnJlc3VsdC5vcmdfbmFtZSxcblx0XHRcdFx0b3JnX2lkOiBib2R5LnJlc3VsdC5vcmdfaWRcblx0XHRcdH07XG5cblx0XHRcdGlmIChvcHRzLmFjY291bnQgJiYgdHlwZW9mIG9wdHMuYWNjb3VudCA9PT0gJ29iamVjdCcgJiYgdGhpcy50b2tlblN0b3JlKSB7XG5cdFx0XHRcdG9wdHMuYWNjb3VudC5vcmcgPSBvcmc7XG5cdFx0XHRcdGF3YWl0IHRoaXMudG9rZW5TdG9yZS5zZXQob3B0cy5hY2NvdW50KTtcblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIG9yZztcblx0XHR9XG5cblx0XHRsZXQgbXNnID0gZXJyb3I7XG5cdFx0dHJ5IHtcblx0XHRcdGNvbnN0IG9iaiA9IEpTT04ucGFyc2UobXNnKTtcblx0XHRcdG1zZyA9IGAke29iai5lcnJvcn06ICR7b2JqLmVycm9yX2Rlc2NyaXB0aW9ufWA7XG5cdFx0fSBjYXRjaCAoZSkge1xuXHRcdFx0Ly8gc3F1ZWxjaFxuXHRcdH1cblxuXHRcdG1zZyA9IGBGYWlsZWQgdG8gc3dpdGNoIG9yZzogJHttc2cudHJpbSgpIHx8IGBzZXJ2ZXIgcmV0dXJuZWQgJHtzdGF0dXNDb2RlfWB9YDtcblx0XHRlcnJvcihgJHttc2d9ICR7bm90ZShgKCR7c3RhdHVzfSlgKX1gKTtcblx0XHR0aHJvdyBFLk9SR19TV0lUQ0hfRkFJTEVEKG1zZywgeyBzdGF0dXMgfSk7XG5cdH1cbn1cblxuZXhwb3J0IHtcblx0QXV0aCxcblxuXHRBdXRoZW50aWNhdG9yLFxuXHRDbGllbnRTZWNyZXQsXG5cdE93bmVyUGFzc3dvcmQsXG5cdFBLQ0UsXG5cdFNpZ25lZEpXVCxcblxuXHRGaWxlU3RvcmUsXG5cdE1lbW9yeVN0b3JlLFxuXHRTZWN1cmVTdG9yZSxcblx0VG9rZW5TdG9yZSxcblxuXHRlbnZpcm9ubWVudHMsXG5cdGdldEVuZHBvaW50cyxcblx0c2VydmVyXG59O1xuIl0sImZpbGUiOiJpbmRleC5qcyJ9

@@ -36,3 +36,3 @@ "use strict";

} = await super._clear(baseUrl);
this.store = entries.length ? entries : [];
this.store = entries;
return removed;

@@ -55,3 +55,3 @@ }

} = await super._delete(accounts, baseUrl);
this.store = entries.length ? entries : [];
this.store = entries;
return removed;

@@ -80,4 +80,3 @@ }

async set(data) {
const entries = await super._set(data);
this.store = entries.length ? entries : [];
this.store = await super._set(data);
}

@@ -88,2 +87,2 @@

exports.default = MemoryStore;
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0b3Jlcy9tZW1vcnktc3RvcmUuanMiXSwibmFtZXMiOlsiTWVtb3J5U3RvcmUiLCJUb2tlblN0b3JlIiwiY2xlYXIiLCJiYXNlVXJsIiwiZW50cmllcyIsInJlbW92ZWQiLCJfY2xlYXIiLCJzdG9yZSIsImxlbmd0aCIsImRlbGV0ZSIsImFjY291bnRzIiwiX2RlbGV0ZSIsImxpc3QiLCJwdXJnZSIsInNldCIsImRhdGEiLCJfc2V0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7Ozs7OztBQUVBOzs7QUFHZSxNQUFNQSxXQUFOLFNBQTBCQyxtQkFBMUIsQ0FBcUM7QUFBQTtBQUFBOztBQUFBLG1DQU0zQyxFQU4yQztBQUFBOztBQVFuRDs7Ozs7OztBQU9BLFFBQU1DLEtBQU4sQ0FBWUMsT0FBWixFQUFxQjtBQUNwQixVQUFNO0FBQUVDLE1BQUFBLE9BQUY7QUFBV0MsTUFBQUE7QUFBWCxRQUF1QixNQUFNLE1BQU1DLE1BQU4sQ0FBYUgsT0FBYixDQUFuQztBQUNBLFNBQUtJLEtBQUwsR0FBYUgsT0FBTyxDQUFDSSxNQUFSLEdBQWlCSixPQUFqQixHQUEyQixFQUF4QztBQUNBLFdBQU9DLE9BQVA7QUFDQTtBQUVEOzs7Ozs7Ozs7O0FBUUEsUUFBTUksTUFBTixDQUFhQyxRQUFiLEVBQXVCUCxPQUF2QixFQUFnQztBQUMvQixVQUFNO0FBQUVDLE1BQUFBLE9BQUY7QUFBV0MsTUFBQUE7QUFBWCxRQUF1QixNQUFNLE1BQU1NLE9BQU4sQ0FBY0QsUUFBZCxFQUF3QlAsT0FBeEIsQ0FBbkM7QUFDQSxTQUFLSSxLQUFMLEdBQWFILE9BQU8sQ0FBQ0ksTUFBUixHQUFpQkosT0FBakIsR0FBMkIsRUFBeEM7QUFDQSxXQUFPQyxPQUFQO0FBQ0E7QUFFRDs7Ozs7Ozs7QUFNQSxRQUFNTyxJQUFOLEdBQWE7QUFDWixXQUFPLEtBQUtDLEtBQUwsQ0FBVyxLQUFLTixLQUFoQixDQUFQO0FBQ0E7QUFFRDs7Ozs7Ozs7O0FBT0EsUUFBTU8sR0FBTixDQUFVQyxJQUFWLEVBQWdCO0FBQ2YsVUFBTVgsT0FBTyxHQUFHLE1BQU0sTUFBTVksSUFBTixDQUFXRCxJQUFYLENBQXRCO0FBQ0EsU0FBS1IsS0FBTCxHQUFhSCxPQUFPLENBQUNJLE1BQVIsR0FBaUJKLE9BQWpCLEdBQTJCLEVBQXhDO0FBQ0E7O0FBdkRrRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBUb2tlblN0b3JlIGZyb20gJy4vdG9rZW4tc3RvcmUnO1xuXG4vKipcbiAqIEEgb3BlcmF0aW5nLXNwZWNpZmljIHNlY3VyZSB0b2tlbiBzdG9yZS5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTWVtb3J5U3RvcmUgZXh0ZW5kcyBUb2tlblN0b3JlIHtcblx0LyoqXG5cdCAqIFRoZSBpbi1tZW1vcnkgc3RvcmUuXG5cdCAqXG5cdCAqIEB0eXBlIHtBcnJheS48T2JqZWN0Pn1cblx0ICovXG5cdHN0b3JlID0gW107XG5cblx0LyoqXG5cdCAqIFJlbW92ZXMgYWxsIHRva2Vucy5cblx0ICpcblx0ICogQHBhcmFtIHtTdHJpbmd9IFtiYXNlVXJsXSAtIFRoZSBiYXNlIFVSTCB1c2VkIHRvIGZpbHRlciBhY2NvdW50cy5cblx0ICogQHJldHVybnMge1Byb21pc2U8QXJyYXk+fVxuXHQgKiBAYWNjZXNzIHB1YmxpY1xuXHQgKi9cblx0YXN5bmMgY2xlYXIoYmFzZVVybCkge1xuXHRcdGNvbnN0IHsgZW50cmllcywgcmVtb3ZlZCB9ID0gYXdhaXQgc3VwZXIuX2NsZWFyKGJhc2VVcmwpO1xuXHRcdHRoaXMuc3RvcmUgPSBlbnRyaWVzLmxlbmd0aCA/IGVudHJpZXMgOiBbXTtcblx0XHRyZXR1cm4gcmVtb3ZlZDtcblx0fVxuXG5cdC8qKlxuXHQgKiBEZWxldGVzIGEgdG9rZW4gZnJvbSB0aGUgc3RvcmUuXG5cdCAqXG5cdCAqIEBwYXJhbSB7U3RyaW5nfEFycmF5LjxTdHJpbmc+fSBhY2NvdW50cyAtIFRoZSBhY2NvdW50IG5hbWUocykgdG8gZGVsZXRlLlxuXHQgKiBAcGFyYW0ge1N0cmluZ30gW2Jhc2VVcmxdIC0gVGhlIGJhc2UgVVJMIHVzZWQgdG8gZmlsdGVyIGFjY291bnRzLlxuXHQgKiBAcmV0dXJucyB7UHJvbWlzZTxBcnJheT59XG5cdCAqIEBhY2Nlc3MgcHVibGljXG5cdCAqL1xuXHRhc3luYyBkZWxldGUoYWNjb3VudHMsIGJhc2VVcmwpIHtcblx0XHRjb25zdCB7IGVudHJpZXMsIHJlbW92ZWQgfSA9IGF3YWl0IHN1cGVyLl9kZWxldGUoYWNjb3VudHMsIGJhc2VVcmwpO1xuXHRcdHRoaXMuc3RvcmUgPSBlbnRyaWVzLmxlbmd0aCA/IGVudHJpZXMgOiBbXTtcblx0XHRyZXR1cm4gcmVtb3ZlZDtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXRyZWl2ZXMgYWxsIHRva2VucyBmcm9tIHRoZSBzdG9yZS5cblx0ICpcblx0ICogQHJldHVybnMge1Byb21pc2U8QXJyYXk+fSBSZXNvbHZlcyBhbiBhcnJheSBvZiB0b2tlbnMuXG5cdCAqIEBhY2Nlc3MgcHVibGljXG5cdCAqL1xuXHRhc3luYyBsaXN0KCkge1xuXHRcdHJldHVybiB0aGlzLnB1cmdlKHRoaXMuc3RvcmUpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFNhdmVzIGFjY291bnQgY3JlZGVudGlhbHMuIElmIGV4aXN0cywgdGhlIG9sZCBvbmUgaXMgZGVsZXRlZC5cblx0ICpcblx0ICogQHBhcmFtIHtPYmplY3R9IGRhdGEgLSBUaGUgdG9rZW4gZGF0YS5cblx0ICogQHJldHVybnMge1Byb21pc2V9XG5cdCAqIEBhY2Nlc3MgcHVibGljXG5cdCAqL1xuXHRhc3luYyBzZXQoZGF0YSkge1xuXHRcdGNvbnN0IGVudHJpZXMgPSBhd2FpdCBzdXBlci5fc2V0KGRhdGEpO1xuXHRcdHRoaXMuc3RvcmUgPSBlbnRyaWVzLmxlbmd0aCA/IGVudHJpZXMgOiBbXTtcblx0fVxufVxuIl0sImZpbGUiOiJzdG9yZXMvbWVtb3J5LXN0b3JlLmpzIn0=
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0b3Jlcy9tZW1vcnktc3RvcmUuanMiXSwibmFtZXMiOlsiTWVtb3J5U3RvcmUiLCJUb2tlblN0b3JlIiwiY2xlYXIiLCJiYXNlVXJsIiwiZW50cmllcyIsInJlbW92ZWQiLCJfY2xlYXIiLCJzdG9yZSIsImRlbGV0ZSIsImFjY291bnRzIiwiX2RlbGV0ZSIsImxpc3QiLCJwdXJnZSIsInNldCIsImRhdGEiLCJfc2V0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7Ozs7OztBQUVBOzs7QUFHZSxNQUFNQSxXQUFOLFNBQTBCQyxtQkFBMUIsQ0FBcUM7QUFBQTtBQUFBOztBQUFBLG1DQU0zQyxFQU4yQztBQUFBOztBQVFuRDs7Ozs7OztBQU9BLFFBQU1DLEtBQU4sQ0FBWUMsT0FBWixFQUFxQjtBQUNwQixVQUFNO0FBQUVDLE1BQUFBLE9BQUY7QUFBV0MsTUFBQUE7QUFBWCxRQUF1QixNQUFNLE1BQU1DLE1BQU4sQ0FBYUgsT0FBYixDQUFuQztBQUNBLFNBQUtJLEtBQUwsR0FBYUgsT0FBYjtBQUNBLFdBQU9DLE9BQVA7QUFDQTtBQUVEOzs7Ozs7Ozs7O0FBUUEsUUFBTUcsTUFBTixDQUFhQyxRQUFiLEVBQXVCTixPQUF2QixFQUFnQztBQUMvQixVQUFNO0FBQUVDLE1BQUFBLE9BQUY7QUFBV0MsTUFBQUE7QUFBWCxRQUF1QixNQUFNLE1BQU1LLE9BQU4sQ0FBY0QsUUFBZCxFQUF3Qk4sT0FBeEIsQ0FBbkM7QUFDQSxTQUFLSSxLQUFMLEdBQWFILE9BQWI7QUFDQSxXQUFPQyxPQUFQO0FBQ0E7QUFFRDs7Ozs7Ozs7QUFNQSxRQUFNTSxJQUFOLEdBQWE7QUFDWixXQUFPLEtBQUtDLEtBQUwsQ0FBVyxLQUFLTCxLQUFoQixDQUFQO0FBQ0E7QUFFRDs7Ozs7Ozs7O0FBT0EsUUFBTU0sR0FBTixDQUFVQyxJQUFWLEVBQWdCO0FBQ2YsU0FBS1AsS0FBTCxHQUFhLE1BQU0sTUFBTVEsSUFBTixDQUFXRCxJQUFYLENBQW5CO0FBQ0E7O0FBdERrRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBUb2tlblN0b3JlIGZyb20gJy4vdG9rZW4tc3RvcmUnO1xuXG4vKipcbiAqIEEgb3BlcmF0aW5nLXNwZWNpZmljIHNlY3VyZSB0b2tlbiBzdG9yZS5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTWVtb3J5U3RvcmUgZXh0ZW5kcyBUb2tlblN0b3JlIHtcblx0LyoqXG5cdCAqIFRoZSBpbi1tZW1vcnkgc3RvcmUuXG5cdCAqXG5cdCAqIEB0eXBlIHtBcnJheS48T2JqZWN0Pn1cblx0ICovXG5cdHN0b3JlID0gW107XG5cblx0LyoqXG5cdCAqIFJlbW92ZXMgYWxsIHRva2Vucy5cblx0ICpcblx0ICogQHBhcmFtIHtTdHJpbmd9IFtiYXNlVXJsXSAtIFRoZSBiYXNlIFVSTCB1c2VkIHRvIGZpbHRlciBhY2NvdW50cy5cblx0ICogQHJldHVybnMge1Byb21pc2U8QXJyYXk+fVxuXHQgKiBAYWNjZXNzIHB1YmxpY1xuXHQgKi9cblx0YXN5bmMgY2xlYXIoYmFzZVVybCkge1xuXHRcdGNvbnN0IHsgZW50cmllcywgcmVtb3ZlZCB9ID0gYXdhaXQgc3VwZXIuX2NsZWFyKGJhc2VVcmwpO1xuXHRcdHRoaXMuc3RvcmUgPSBlbnRyaWVzO1xuXHRcdHJldHVybiByZW1vdmVkO1xuXHR9XG5cblx0LyoqXG5cdCAqIERlbGV0ZXMgYSB0b2tlbiBmcm9tIHRoZSBzdG9yZS5cblx0ICpcblx0ICogQHBhcmFtIHtTdHJpbmd8QXJyYXkuPFN0cmluZz59IGFjY291bnRzIC0gVGhlIGFjY291bnQgbmFtZShzKSB0byBkZWxldGUuXG5cdCAqIEBwYXJhbSB7U3RyaW5nfSBbYmFzZVVybF0gLSBUaGUgYmFzZSBVUkwgdXNlZCB0byBmaWx0ZXIgYWNjb3VudHMuXG5cdCAqIEByZXR1cm5zIHtQcm9taXNlPEFycmF5Pn1cblx0ICogQGFjY2VzcyBwdWJsaWNcblx0ICovXG5cdGFzeW5jIGRlbGV0ZShhY2NvdW50cywgYmFzZVVybCkge1xuXHRcdGNvbnN0IHsgZW50cmllcywgcmVtb3ZlZCB9ID0gYXdhaXQgc3VwZXIuX2RlbGV0ZShhY2NvdW50cywgYmFzZVVybCk7XG5cdFx0dGhpcy5zdG9yZSA9IGVudHJpZXM7XG5cdFx0cmV0dXJuIHJlbW92ZWQ7XG5cdH1cblxuXHQvKipcblx0ICogUmV0cmVpdmVzIGFsbCB0b2tlbnMgZnJvbSB0aGUgc3RvcmUuXG5cdCAqXG5cdCAqIEByZXR1cm5zIHtQcm9taXNlPEFycmF5Pn0gUmVzb2x2ZXMgYW4gYXJyYXkgb2YgdG9rZW5zLlxuXHQgKiBAYWNjZXNzIHB1YmxpY1xuXHQgKi9cblx0YXN5bmMgbGlzdCgpIHtcblx0XHRyZXR1cm4gdGhpcy5wdXJnZSh0aGlzLnN0b3JlKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBTYXZlcyBhY2NvdW50IGNyZWRlbnRpYWxzLiBJZiBleGlzdHMsIHRoZSBvbGQgb25lIGlzIGRlbGV0ZWQuXG5cdCAqXG5cdCAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIC0gVGhlIHRva2VuIGRhdGEuXG5cdCAqIEByZXR1cm5zIHtQcm9taXNlfVxuXHQgKiBAYWNjZXNzIHB1YmxpY1xuXHQgKi9cblx0YXN5bmMgc2V0KGRhdGEpIHtcblx0XHR0aGlzLnN0b3JlID0gYXdhaXQgc3VwZXIuX3NldChkYXRhKTtcblx0fVxufVxuIl0sImZpbGUiOiJzdG9yZXMvbWVtb3J5LXN0b3JlLmpzIn0=

@@ -203,3 +203,3 @@ "use strict";

if (baseUrl) {
baseUrl = baseUrl.replace(protoRegExp, '');
baseUrl = baseUrl.replace(protoRegExp, '').replace(/\/$/, '');
}

@@ -215,3 +215,3 @@

for (let i = 0; i < len; i++) {
if ((accountName && entries[i].name === accountName || hash && entries[i].hash === hash) && (!baseUrl || entries[i].baseUrl.replace(protoRegExp, '') === baseUrl)) {
if ((accountName && entries[i].name === accountName || hash && entries[i].hash === hash) && (!baseUrl || entries[i].baseUrl.replace(protoRegExp, '').replace(/\/$/, '') === baseUrl)) {
log(`Found account tokens: ${highlight(entries[i].name)}`);

@@ -260,3 +260,3 @@ return entries[i];

if (expires.access > now + this.tokenRefreshThreshold || expires.refresh > now) {
if (expires && (expires.access > now + this.tokenRefreshThreshold || expires.refresh > now)) {
// not expired

@@ -323,2 +323,2 @@ if (!Object.getOwnPropertyDescriptor(entries[i], 'expired')) {

exports.default = TokenStore;
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0b3Jlcy90b2tlbi1zdG9yZS5qcyJdLCJuYW1lcyI6WyJwbHVyYWxpemUiLCJzbm9vcGxvZ2ciLCJsb2ciLCJoaWdobGlnaHQiLCJzdHlsZXMiLCJwcm90b1JlZ0V4cCIsIlRva2VuU3RvcmUiLCJjb25zdHJ1Y3RvciIsIm9wdHMiLCJFIiwiSU5WQUxJRF9BUkdVTUVOVCIsInRva2VuUmVmcmVzaFRocmVzaG9sZCIsInVuZGVmaW5lZCIsInRocmVzaG9sZCIsInBhcnNlSW50IiwiaXNOYU4iLCJJTlZBTElEX1BBUkFNRVRFUiIsIklOVkFMSURfUkFOR0UiLCJjbGVhciIsImJhc2VVcmwiLCJlbnRyaWVzIiwicmVtb3ZlZCIsIl9jbGVhciIsImxpc3QiLCJlbnRyeSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwidmFsdWUiLCJyZXBsYWNlIiwiaSIsImxlbmd0aCIsInNwbGljZSIsInB1c2giLCJkZWxldGUiLCJhY2NvdW50cyIsIl9kZWxldGUiLCJBcnJheSIsImlzQXJyYXkiLCJpbmNsdWRlcyIsIm5hbWUiLCJnZXQiLCJhY2NvdW50TmFtZSIsImhhc2giLCJNSVNTSU5HX1JFUVVJUkVEX1BBUkFNRVRFUiIsImxlbiIsInB1cmdlIiwiY291bnQiLCJleHBpcmVzIiwidG9rZW5zIiwibm93IiwiRGF0ZSIsImFjY2VzcyIsInJlZnJlc2giLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJjb25maWd1cmFibGUiLCJzZXQiLCJkYXRhIiwiX3NldCJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUVBOztBQUNBOzs7Ozs7QUFFQSxNQUFNO0FBQUVBLEVBQUFBO0FBQUYsSUFBZ0JDLGtCQUF0QjtBQUNBLE1BQU07QUFBRUMsRUFBQUE7QUFBRixJQUFVLHdCQUFVLDBCQUFWLENBQWhCO0FBQ0EsTUFBTTtBQUFFQyxFQUFBQTtBQUFGLElBQWdCRixtQkFBVUcsTUFBaEM7QUFFQTs7Ozs7QUFJQSxNQUFNQyxXQUFXLEdBQUcsU0FBcEI7QUFFQTs7OztBQUdlLE1B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QUMsRUFBaEIsRUFBb0IsQ0FBcEI7QUFDQTs7QUFFRDNCLElBQUFBLEdBQUcsQ0FBRSxVQUFTQyxTQUFTLENBQUMyQyxLQUFELENBQVEsSUFBRzlDLFNBQVMsQ0FBQyxPQUFELEVBQVU4QyxLQUFWLENBQWlCLEVBQXpELENBQUg7QUFFQSxXQUFPMUIsT0FBUDtBQUNBO0FBRUQ7O0FBQ0E7Ozs7Ozs7OztBQU9BLFFBQU1tQyxHQUFOLENBQVVDLElBQVYsRUFBZ0IsQ0FFZixDQUZELENBQ0M7O0FBR0Q7Ozs7Ozs7OztBQU9BLFFBQU1DLElBQU4sQ0FBV0QsSUFBWCxFQUFpQjtBQUNoQixVQUFNcEMsT0FBTyxHQUFHLE1BQU0sS0FBS0csSUFBTCxFQUF0Qjs7QUFFQSxTQUFLLElBQUlNLENBQUMsR0FBRyxDQUFSLEVBQVdlLEdBQUcsR0FBR3hCLE9BQU8sQ0FBQ1UsTUFBOUIsRUFBc0NELENBQUMsR0FBR2UsR0FBMUMsRUFBK0NmLENBQUMsRUFBaEQsRUFBb0Q7QUFDbkQsVUFBSVQsT0FBTyxDQUFDUyxDQUFELENBQVAsQ0FBV1YsT0FBWCxLQUF1QnFDLElBQUksQ0FBQ3JDLE9BQTVCLElBQXVDQyxPQUFPLENBQUNTLENBQUQsQ0FBUCxDQUFXVSxJQUFYLEtBQW9CaUIsSUFBSSxDQUFDakIsSUFBcEUsRUFBMEU7QUFDekVuQixRQUFBQSxPQUFPLENBQUNXLE1BQVIsQ0FBZUYsQ0FBZixFQUFrQixDQUFsQjtBQUNBO0FBQ0E7QUFDRDs7QUFFRFQsSUFBQUEsT0FBTyxDQUFDWSxJQUFSLENBQWF3QixJQUFiO0FBQ0EsV0FBT3BDLE9BQVA7QUFDQTs7QUE3TzhCIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tdW51c2VkLXZhcnMgKi9cblxuaW1wb3J0IEUgZnJvbSAnLi4vZXJyb3JzJztcbmltcG9ydCBzbm9vcGxvZ2cgZnJvbSAnc25vb3Bsb2dnJztcblxuY29uc3QgeyBwbHVyYWxpemUgfSA9IHNub29wbG9nZztcbmNvbnN0IHsgbG9nIH0gPSBzbm9vcGxvZ2coJ2FtcGxpZnktYXV0aDp0b2tlbi1zdG9yZScpO1xuY29uc3QgeyBoaWdobGlnaHQgfSA9IHNub29wbG9nZy5zdHlsZXM7XG5cbi8qKlxuICogQSByZWdleCB0byBtYXRjaCBhIFVSTCBwcm90b2NvbC5cbiAqIEB0eXBlIHtSZWdFeHB9XG4gKi9cbmNvbnN0IHByb3RvUmVnRXhwID0gL14uKlxcL1xcLy87XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgdG9rZW4gc3RvcmFnZSBiYWNrZW5kcy5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVG9rZW5TdG9yZSB7XG5cdC8qKlxuXHQgKiBUaGUgYWdlIGluIG1pbGxpc2Vjb25kcyBiZWZvcmUgdGhlIGFjY2VzcyB0b2tlbiBleHBpcmVzIGFuZCBzaG91bGQgYmUgcmVmcmVzaGVkLlxuXHQgKlxuXHQgKiBAdHlwZSB7TnVtYmVyfVxuXHQgKiBAYWNjZXNzIHByaXZhdGVcblx0ICovXG5cdHRva2VuUmVmcmVzaFRocmVzaG9sZCA9IDA7XG5cblx0LyoqXG5cdCAqIEluaXRpYWxpemVzIHRoZSBmaWxlIHN0b3JlLlxuXHQgKlxuXHQgKiBAcGFyYW0ge09iamVjdH0gW29wdHNdIC0gVmFyaW91cyBvcHRpb25zLlxuXHQgKiBAcGFyYW0ge0Jvb2xlYW59IFtvcHRzLnRva2VuUmVmcmVzaFRocmVzaG9sZD0wXSAtIFRoZSBudW1iZXIgb2Ygc2Vjb25kcyBiZWZvcmUgdGhlIGFjY2Vzc1xuXHQgKiB0b2tlbiBleHBpcmVzIGFuZCBzaG91bGQgYmUgcmVmcmVzaGVkLlxuXHQgKiBAYWNjZXNzIHB1YmxpY1xuXHQgKi9cblx0Y29uc3RydWN0b3Iob3B0cyA9IHt9KSB7XG5cdFx0aWYgKCFvcHRzIHx8IHR5cGVvZiBvcHRzICE9PSAnb2JqZWN0Jykge1xuXHRcdFx0dGhyb3cgRS5JTlZBTElEX0FSR1VNRU5UKCdFeHBlY3RlZCBvcHRpb25zIHRvIGJlIGFuIG9iamVjdCcpO1xuXHRcdH1cblxuXHRcdGlmIChvcHRzLnRva2VuUmVmcmVzaFRocmVzaG9sZCAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRjb25zdCB0aHJlc2hvbGQgPSBwYXJzZUludChvcHRzLnRva2VuUmVmcmVzaFRocmVzaG9sZCwgMTApO1xuXHRcdFx0aWYgKGlzTmFOKHRocmVzaG9sZCkpIHtcblx0XHRcdFx0dGhyb3cgRS5JTlZBTElEX1BBUkFNRVRFUignRXhwZWN0ZWQgdG9rZW4gcmVmcmVzaCB0aHJlc2hvbGQgdG8gYmUgYSBudW1iZXIgb2Ygc2Vjb25kcycpO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAodGhyZXNob2xkIDwgMCkge1xuXHRcdFx0XHR0aHJvdyBFLklOVkFMSURfUkFOR0UoJ1Rva2VuIHJlZnJlc2ggdGhyZXNob2xkIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHplcm8nKTtcblx0XHRcdH1cblxuXHRcdFx0dGhpcy50b2tlblJlZnJlc2hUaHJlc2hvbGQgPSB0aHJlc2hvbGQgKiAxMDAwO1xuXHRcdH1cblx0fVxuXG5cdC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG5cdC8qKlxuXHQgKiBSZW1vdmVzIGFsbCB0b2tlbnMuIFRoaXMgbWV0aG9kIGlzIGludGVuZGVkIHRvIGJlIG92ZXJ3cml0dGVuLlxuXHQgKlxuXHQgKiBAcGFyYW0ge1N0cmluZ30gW2Jhc2VVcmxdIC0gVGhlIGJhc2UgVVJMIHVzZWQgdG8gZmlsdGVyIGFjY291bnRzLlxuXHQgKiBAcmV0dXJucyB7UHJvbWlzZTxBcnJheT59XG5cdCAqIEBhY2Nlc3MgcHVibGljXG5cdCAqL1xuXHRhc3luYyBjbGVhcihiYXNlVXJsKSB7XG5cdFx0cmV0dXJuIHsgZW50cmllczogW10sIHJlbW92ZWQ6IFtdIH07XG5cdH1cblxuXHQvKipcblx0ICogUmVtb3ZlcyBhbGwgdG9rZW5zLlxuXHQgKlxuXHQgKiBAcGFyYW0ge1N0cmluZ30gW2Jhc2VVcmxdIC0gVGhlIGJhc2UgVVJMIHVzZWQgdG8gZmlsdGVyIGFjY291bnRzLlxuXHQgKiBAcmV0dXJucyB7UHJvbWlzZTxBcnJheT59XG5cdCAqIEBhY2Nlc3MgcHVibGljXG5cdCAqL1xuXHRhc3luYyBfY2xlYXIoYmFzZVVybCkge1xuXHRcdGNvbnN0IGVudHJpZXMgPSBhd2FpdCB0aGlzLmxpc3QoKTtcblxuXHRcdGlmICghYmFzZVVybCkge1xuXHRcdFx0Zm9yIChjb25zdCBlbnRyeSBvZiBlbnRyaWVzKSB7XG5cdFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlbnRyeSwgJ2V4cGlyZWQnLCB7IHZhbHVlOiB0cnVlIH0pO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIHsgZW50cmllczogW10sIHJlbW92ZWQ6IGVudHJpZXMgfTtcblx0XHR9XG5cblx0XHRjb25zdCByZW1vdmVkID0gW107XG5cdFx0YmFzZVVybCA9IGJhc2VVcmwucmVwbGFjZSgvXi4qXFwvXFwvLywgJycpO1xuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgZW50cmllcy5sZW5ndGg7IGkrKykge1xuXHRcdFx0aWYgKGVudHJpZXNbaV0uYmFzZVVybC5yZXBsYWNlKHByb3RvUmVnRXhwLCAnJykgPT09IGJhc2VVcmwpIHtcblx0XHRcdFx0Y29uc3QgZW50cnkgPSBlbnRyaWVzLnNwbGljZShpLS0sIDEpWzBdO1xuXHRcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZW50cnksICdleHBpcmVkJywgeyB2YWx1ZTogdHJ1ZSB9KTtcblx0XHRcdFx0cmVtb3ZlZC5wdXNoKGVudHJ5KTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4geyBlbnRyaWVzLCByZW1vdmVkIH07XG5cdH1cblxuXHQvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuXHQvKipcblx0ICogRGVsZXRlcyBhIHRva2VuIGZyb20gdGhlIHN0b3JlLiBUaGlzIG1ldGhvZCBpcyBpbnRlbmRlZCB0byBiZSBvdmVyd3JpdHRlbi5cblx0ICpcblx0ICogQHBhcmFtIHtTdHJpbmd8QXJyYXkuPFN0cmluZz59IGFjY291bnRzIC0gVGhlIGFjY291bnQgbmFtZShzKSB0byBkZWxldGUuXG4gXHQgKiBAcGFyYW0ge1N0cmluZ30gW2Jhc2VVcmxdIC0gVGhlIGJhc2UgVVJMIHVzZWQgdG8gZmlsdGVyIGFjY291bnRzLlxuXHQgKiBAcmV0dXJucyB7UHJvbWlzZX1cblx0ICogQGFjY2VzcyBwdWJsaWNcblx0ICovXG5cdGFzeW5jIGRlbGV0ZShhY2NvdW50cywgYmFzZVVybCkge1xuXHRcdHJldHVybiBbXTtcblx0fVxuXG5cdC8qKlxuXHQgKiBEZWxldGVzIGEgdG9rZW4gZnJvbSB0aGUgc3RvcmUuXG5cdCAqXG5cdCAqIEBwYXJhbSB7U3RyaW5nfEFycmF5LjxTdHJpbmc+fSBhY2NvdW50cyAtIFRoZSBhY2NvdW50IG5hbWUocykgdG8gZGVsZXRlLlxuIFx0ICogQHBhcmFtIHtTdHJpbmd9IFtiYXNlVXJsXSAtIFRoZSBiYXNlIFVSTCB1c2VkIHRvIGZpbHRlciBhY2NvdW50cy5cblx0ICogQHJldHVybnMge1Byb21pc2V9XG5cdCAqIEBhY2Nlc3MgcHVibGljXG5cdCAqL1xuXHRhc3luYyBfZGVsZXRlKGFjY291bnRzLCBiYXNlVXJsKSB7XG5cdFx0Y29uc3QgZW50cmllcyA9IGF3YWl0IHRoaXMubGlzdCgpO1xuXHRcdGNvbnN0IHJlbW92ZWQgPSBbXTtcblxuXHRcdGlmIChiYXNlVXJsKSB7XG5cdFx0XHRiYXNlVXJsID0gYmFzZVVybC5yZXBsYWNlKC9eLipcXC9cXC8vLCAnJyk7XG5cdFx0fVxuXG5cdFx0aWYgKCFBcnJheS5pc0FycmF5KGFjY291bnRzKSkge1xuXHRcdFx0YWNjb3VudHMgPSBbIGFjY291bnRzIF07XG5cdFx0fVxuXG5cdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBlbnRyaWVzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRpZiAoYWNjb3VudHMuaW5jbHVkZXMoZW50cmllc1tpXS5uYW1lKSAmJiAoIWJhc2VVcmwgfHwgZW50cmllc1tpXS5iYXNlVXJsLnJlcGxhY2UocHJvdG9SZWdFeHAsICcnKSA9PT0gYmFzZVVybCkpIHtcblx0XHRcdFx0Y29uc3QgZW50cnkgPSBlbnRyaWVzLnNwbGljZShpLS0sIDEpWzBdO1xuXHRcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZW50cnksICdleHBpcmVkJywgeyB2YWx1ZTogdHJ1ZSB9KTtcblx0XHRcdFx0cmVtb3ZlZC5wdXNoKGVudHJ5KTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4geyBlbnRyaWVzLCByZW1vdmVkIH07XG5cdH1cblxuXHQvKipcblx0ICogUmV0cmVpdmVzIGEgdG9rZW4gZnJvbSB0aGUgc3RvcmUuXG5cdCAqXG5cdCAqIEBwYXJhbSB7T2JqZWN0fSBwYXJhbXMgLSBWYXJpb3VzIHBhcmFtZXRlcnMuXG5cdCAqIEBwYXJhbSB7U3RyaW5nfSBwYXJhbXMuYWNjb3VudE5hbWUgLSBUaGUgYWNjb3VudCBuYW1lIHRvIGdldC5cblx0ICogQHBhcmFtIHtTdHJpbmd9IFtiYXNlVXJsXSAtIFRoZSBiYXNlIFVSTCB1c2VkIHRvIGZpbHRlciBhY2NvdW50cy5cblx0ICogQHJldHVybnMge1Byb21pc2V9IFJlc29sdmVzIHRoZSB0b2tlbiBvciBgdW5kZWZpbmVkYCBpZiBub3Qgc2V0LlxuXHQgKiBAYWNjZXNzIHB1YmxpY1xuXHQgKi9cblx0YXN5bmMgZ2V0KHsgYWNjb3VudE5hbWUsIGJhc2VVcmwsIGhhc2ggfSA9IHt9KSB7XG5cdFx0Y29uc3QgZW50cmllcyA9IGF3YWl0IHRoaXMubGlzdCgpO1xuXG5cdFx0aWYgKGJhc2VVcmwpIHtcblx0XHRcdGJhc2VVcmwgPSBiYXNlVXJsLnJlcGxhY2UocHJvdG9SZWdFeHAsICcnKTtcblx0XHR9XG5cblx0XHRpZiAoIWFjY291bnROYW1lICYmICFoYXNoKSB7XG5cdFx0XHR0aHJvdyBFLk1JU1NJTkdfUkVRVUlSRURfUEFSQU1FVEVSKCdNdXN0IHNwZWNpZnkgZWl0aGVyIHRoZSBhY2NvdW50IG5hbWUgb3IgYXV0aGVudGljYXRvciBoYXNoJyk7XG5cdFx0fVxuXG5cdFx0Y29uc3QgbGVuID0gZW50cmllcy5sZW5ndGg7XG5cdFx0bG9nKGBTY2FubmluZyAke2hpZ2hsaWdodChsZW4pfSAke3BsdXJhbGl6ZSgndG9rZW4nLCBsZW4pfSBmb3IgYWNjb3VudE5hbWU9JHtoaWdobGlnaHQoYWNjb3VudE5hbWUpfSBoYXNoPSR7aGlnaGxpZ2h0KGhhc2gpfSBiYXNlVXJsPSR7aGlnaGxpZ2h0KGJhc2VVcmwpfWApO1xuXG5cdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuXHRcdFx0aWYgKCgoYWNjb3VudE5hbWUgJiYgZW50cmllc1tpXS5uYW1lID09PSBhY2NvdW50TmFtZSkgfHwgKGhhc2ggJiYgZW50cmllc1tpXS5oYXNoID09PSBoYXNoKSkgJiYgKCFiYXNlVXJsIHx8IGVudHJpZXNbaV0uYmFzZVVybC5yZXBsYWNlKHByb3RvUmVnRXhwLCAnJykgPT09IGJhc2VVcmwpKSB7XG5cdFx0XHRcdGxvZyhgRm91bmQgYWNjb3VudCB0b2tlbnM6ICR7aGlnaGxpZ2h0KGVudHJpZXNbaV0ubmFtZSl9YCk7XG5cdFx0XHRcdHJldHVybiBlbnRyaWVzW2ldO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiBudWxsO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJldHJlaXZlcyBhbGwgdG9rZW5zIGZyb20gdGhlIHN0b3JlLiBUaGlzIG1ldGhvZCBpcyBpbnRlbmRlZCB0byBiZSBvdmVyd3JpdHRlbi5cblx0ICpcblx0ICogQHJldHVybnMge1Byb21pc2U8QXJyYXk+fSBSZXNvbHZlcyBhbiBhcnJheSBvZiB0b2tlbnMuXG5cdCAqIEBhY2Nlc3MgcHVibGljXG5cdCAqL1xuXHRhc3luYyBsaXN0KCkge1xuXHRcdHJldHVybiBbXTtcblx0fVxuXG5cdC8qKlxuXHQgKiBFbnN1cmVzIGxpc3Qgb2YgdG9rZW5zIGlzIHZhbGlkIGFuZCBkb2VzIG5vdCBjb250YWluIGFueSBleHBpcmVkIHRva2Vucy5cblx0ICpcblx0ICogQHBhcmFtIHtBcnJheS48T2JqZWN0Pn0gZW50cmllcyAtIEFuIGFycmF5IG9mIHRva2Vucy5cblx0ICogQHJldHVybnMge0FycmF5LjxPYmplY3Q+fVxuXHQgKiBAYWNjZXNzIHByaXZhdGVcblx0ICovXG5cdHB1cmdlKGVudHJpZXMpIHtcblx0XHRpZiAoIWVudHJpZXMpIHtcblx0XHRcdHJldHVybiBbXTtcblx0XHR9XG5cblx0XHRsZXQgY291bnQgPSAwO1xuXG5cdFx0Ly8gbG9vcCBvdmVyIGVhY2ggZW50cnkgYW5kIHJlbW92ZSBhbnkgZXhwaXJlZCB0b2tlbnNcblx0XHQvLyBOT1RFOiB0aGlzIGNvZGUgaW50ZW50aW9uYWxseSBjaGVja2VzIGBlbnRyaWVzLmxlbmd0aGAgZWFjaCBsb29wIGluc3RlYWQgb2YgY2FjaGluZyB0aGVcblx0XHQvLyBsZW5ndGggc2luY2Ugc3BsaWNlKCkgc2hyaW5rcyB0aGUgYXJyYXkgbGVuZ3RoXG5cdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBlbnRyaWVzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRjb25zdCB7IGV4cGlyZXMsIHRva2VucyB9ID0gZW50cmllc1tpXTtcblx0XHRcdGNvbnN0IG5vdyA9IERhdGUubm93KCk7XG5cdFx0XHRpZiAoKGV4cGlyZXMuYWNjZXNzID4gKG5vdyArIHRoaXMudG9rZW5SZWZyZXNoVGhyZXNob2xkKSkgfHwgKGV4cGlyZXMucmVmcmVzaCA+IG5vdykpIHtcblx0XHRcdFx0Ly8gbm90IGV4cGlyZWRcblx0XHRcdFx0aWYgKCFPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGVudHJpZXNbaV0sICdleHBpcmVkJykpIHtcblx0XHRcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZW50cmllc1tpXSwgJ2V4cGlyZWQnLCB7XG5cdFx0XHRcdFx0XHRjb25maWd1cmFibGU6IHRydWUsXG5cdFx0XHRcdFx0XHRnZXQoKSB7XG5cdFx0XHRcdFx0XHRcdHJldHVybiB0aGlzLmV4cGlyZXMuYWNjZXNzIDwgRGF0ZS5ub3coKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fVxuXHRcdFx0XHRjb250aW51ZTtcblx0XHRcdH1cblx0XHRcdGNvdW50Kys7XG5cdFx0XHRlbnRyaWVzLnNwbGljZShpLS0sIDEpO1xuXHRcdH1cblxuXHRcdGxvZyhgUHVyZ2VkICR7aGlnaGxpZ2h0KGNvdW50KX0gJHtwbHVyYWxpemUoJ2VudHJ5JywgY291bnQpfWApO1xuXG5cdFx0cmV0dXJuIGVudHJpZXM7XG5cdH1cblxuXHQvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuXHQvKipcblx0ICogU2F2ZXMgYWNjb3VudCBjcmVkZW50aWFscy4gVGhpcyBtZXRob2QgaXMgaW50ZW5kZWQgdG8gYmUgb3ZlcndyaXR0ZW4uXG5cdCAqXG5cdCAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIC0gVGhlIHRva2VuIGRhdGEuXG5cdCAqIEByZXR1cm5zIHtQcm9taXNlfVxuXHQgKiBAYWNjZXNzIHByaXZhdGVcblx0ICovXG5cdGFzeW5jIHNldChkYXRhKSB7XG5cdFx0Ly8gbm9vcFxuXHR9XG5cblx0LyoqXG5cdCAqIFNhdmVzIGFjY291bnQgY3JlZGVudGlhbHMuIElmIGV4aXN0cywgdGhlIG9sZCBvbmUgaXMgZGVsZXRlZC5cblx0ICpcblx0ICogQHBhcmFtIHtPYmplY3R9IGRhdGEgLSBUaGUgdG9rZW4gZGF0YS5cblx0ICogQHJldHVybnMge1Byb21pc2V9XG5cdCAqIEBhY2Nlc3MgcHJpdmF0ZVxuXHQgKi9cblx0YXN5bmMgX3NldChkYXRhKSB7XG5cdFx0Y29uc3QgZW50cmllcyA9IGF3YWl0IHRoaXMubGlzdCgpO1xuXG5cdFx0Zm9yIChsZXQgaSA9IDAsIGxlbiA9IGVudHJpZXMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcblx0XHRcdGlmIChlbnRyaWVzW2ldLmJhc2VVcmwgPT09IGRhdGEuYmFzZVVybCAmJiBlbnRyaWVzW2ldLm5hbWUgPT09IGRhdGEubmFtZSkge1xuXHRcdFx0XHRlbnRyaWVzLnNwbGljZShpLCAxKTtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0ZW50cmllcy5wdXNoKGRhdGEpO1xuXHRcdHJldHVybiBlbnRyaWVzO1xuXHR9XG59XG4iXSwiZmlsZSI6InN0b3Jlcy90b2tlbi1zdG9yZS5qcyJ9
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0b3Jlcy90b2tlbi1zdG9yZS5qcyJdLCJuYW1lcyI6WyJwbHVyYWxpemUiLCJzbm9vcGxvZ2ciLCJsb2ciLCJoaWdobGlnaHQiLCJzdHlsZXMiLCJwcm90b1JlZ0V4cCIsIlRva2VuU3RvcmUiLCJjb25zdHJ1Y3RvciIsIm9wdHMiLCJFIiwiSU5WQUxJRF9BUkdVTUVOVCIsInRva2VuUmVmcmVzaFRocmVzaG9sZCIsInVuZGVmaW5lZCIsInRocmVzaG9sZCIsInBhcnNlSW50IiwiaXNOYU4iLCJJTlZBTElEX1BBUkFNRVRFUiIsIklOVkFMSURfUkFOR0UiLCJjbGVhciIsImJhc2VVcmwiLCJlbnRyaWVzIiwicmVtb3ZlZCIsIl9jbGVhciIsImxpc3QiLCJlbnRyeSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwidmFsdWUiLCJyZXBsYWNlIiwiaSIsImxlbmd0aCIsInNwbGljZSIsInB1c2giLCJkZWxldGUiLCJhY2NvdW50cyIsIl9kZWxldGUiLCJBcnJheSIsImlzQXJyYXkiLCJpbmNsdWRlcyIsIm5hbWUiLCJnZXQiLCJhY2NvdW50TmFtZSIsImhhc2giLCJNSVNTSU5HX1JFUVVJUkVEX1BBUkFNRVRFUiIsImxlbiIsInB1cmdlIiwiY291bnQiLCJleHBpcmVzIiwidG9rZW5zIiwibm93IiwiRGF0ZSIsImFjY2VzcyIsInJlZnJlc2giLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJjb25maWd1cmFibGUiLCJzZXQiLCJkYXRhIiwiX3NldCJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUVBOztBQUNBOzs7Ozs7QUFFQSxNQUFNO0FBQUVBLEVBQUFBO0FBQUYsSUFBZ0JDLGtCQUF0QjtBQUNBLE1BQU07QUFBRUMsRUFBQUE7QUFBRixJQUFVLHdCQUFVLDBCQUFWLENBQWhCO0FBQ0EsTUFBTTtBQUFFQyxFQUFBQTtBQUFGLElBQWdCRixtQkFBVUcsTUFBaEM7QUFFQTs7Ozs7QUFJQSxNQUFNQyxXQUFXLEdBQUcsU0FBcEI7QUFFQTs7OztBQUdlLE1B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QjtBQUNBOztBQUoyQyxXQUE3QztBQU1BOztBQUNEO0FBQ0E7O0FBQ0RILE1BQUFBLEtBQUs7QUFDTDFCLE1BQUFBLE9BQU8sQ0FBQ1csTUFBUixDQUFlRixDQUFDLEVBQWhCLEVBQW9CLENBQXBCO0FBQ0E7O0FBRUQzQixJQUFBQSxHQUFHLENBQUUsVUFBU0MsU0FBUyxDQUFDMkMsS0FBRCxDQUFRLElBQUc5QyxTQUFTLENBQUMsT0FBRCxFQUFVOEMsS0FBVixDQUFpQixFQUF6RCxDQUFIO0FBRUEsV0FBTzFCLE9BQVA7QUFDQTtBQUVEOztBQUNBOzs7Ozs7Ozs7QUFPQSxRQUFNbUMsR0FBTixDQUFVQyxJQUFWLEVBQWdCLENBRWYsQ0FGRCxDQUNDOztBQUdEOzs7Ozs7Ozs7QUFPQSxRQUFNQyxJQUFOLENBQVdELElBQVgsRUFBaUI7QUFDaEIsVUFBTXBDLE9BQU8sR0FBRyxNQUFNLEtBQUtHLElBQUwsRUFBdEI7O0FBRUEsU0FBSyxJQUFJTSxDQUFDLEdBQUcsQ0FBUixFQUFXZSxHQUFHLEdBQUd4QixPQUFPLENBQUNVLE1BQTlCLEVBQXNDRCxDQUFDLEdBQUdlLEdBQTFDLEVBQStDZixDQUFDLEVBQWhELEVBQW9EO0FBQ25ELFVBQUlULE9BQU8sQ0FBQ1MsQ0FBRCxDQUFQLENBQVdWLE9BQVgsS0FBdUJxQyxJQUFJLENBQUNyQyxPQUE1QixJQUF1Q0MsT0FBTyxDQUFDUyxDQUFELENBQVAsQ0FBV1UsSUFBWCxLQUFvQmlCLElBQUksQ0FBQ2pCLElBQXBFLEVBQTBFO0FBQ3pFbkIsUUFBQUEsT0FBTyxDQUFDVyxNQUFSLENBQWVGLENBQWYsRUFBa0IsQ0FBbEI7QUFDQTtBQUNBO0FBQ0Q7O0FBRURULElBQUFBLE9BQU8sQ0FBQ1ksSUFBUixDQUFhd0IsSUFBYjtBQUNBLFdBQU9wQyxPQUFQO0FBQ0E7O0FBN084QiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLXVudXNlZC12YXJzICovXG5cbmltcG9ydCBFIGZyb20gJy4uL2Vycm9ycyc7XG5pbXBvcnQgc25vb3Bsb2dnIGZyb20gJ3Nub29wbG9nZyc7XG5cbmNvbnN0IHsgcGx1cmFsaXplIH0gPSBzbm9vcGxvZ2c7XG5jb25zdCB7IGxvZyB9ID0gc25vb3Bsb2dnKCdhbXBsaWZ5LWF1dGg6dG9rZW4tc3RvcmUnKTtcbmNvbnN0IHsgaGlnaGxpZ2h0IH0gPSBzbm9vcGxvZ2cuc3R5bGVzO1xuXG4vKipcbiAqIEEgcmVnZXggdG8gbWF0Y2ggYSBVUkwgcHJvdG9jb2wuXG4gKiBAdHlwZSB7UmVnRXhwfVxuICovXG5jb25zdCBwcm90b1JlZ0V4cCA9IC9eLipcXC9cXC8vO1xuXG4vKipcbiAqIEJhc2UgY2xhc3MgZm9yIHRva2VuIHN0b3JhZ2UgYmFja2VuZHMuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFRva2VuU3RvcmUge1xuXHQvKipcblx0ICogVGhlIGFnZSBpbiBtaWxsaXNlY29uZHMgYmVmb3JlIHRoZSBhY2Nlc3MgdG9rZW4gZXhwaXJlcyBhbmQgc2hvdWxkIGJlIHJlZnJlc2hlZC5cblx0ICpcblx0ICogQHR5cGUge051bWJlcn1cblx0ICogQGFjY2VzcyBwcml2YXRlXG5cdCAqL1xuXHR0b2tlblJlZnJlc2hUaHJlc2hvbGQgPSAwO1xuXG5cdC8qKlxuXHQgKiBJbml0aWFsaXplcyB0aGUgZmlsZSBzdG9yZS5cblx0ICpcblx0ICogQHBhcmFtIHtPYmplY3R9IFtvcHRzXSAtIFZhcmlvdXMgb3B0aW9ucy5cblx0ICogQHBhcmFtIHtCb29sZWFufSBbb3B0cy50b2tlblJlZnJlc2hUaHJlc2hvbGQ9MF0gLSBUaGUgbnVtYmVyIG9mIHNlY29uZHMgYmVmb3JlIHRoZSBhY2Nlc3Ncblx0ICogdG9rZW4gZXhwaXJlcyBhbmQgc2hvdWxkIGJlIHJlZnJlc2hlZC5cblx0ICogQGFjY2VzcyBwdWJsaWNcblx0ICovXG5cdGNvbnN0cnVjdG9yKG9wdHMgPSB7fSkge1xuXHRcdGlmICghb3B0cyB8fCB0eXBlb2Ygb3B0cyAhPT0gJ29iamVjdCcpIHtcblx0XHRcdHRocm93IEUuSU5WQUxJRF9BUkdVTUVOVCgnRXhwZWN0ZWQgb3B0aW9ucyB0byBiZSBhbiBvYmplY3QnKTtcblx0XHR9XG5cblx0XHRpZiAob3B0cy50b2tlblJlZnJlc2hUaHJlc2hvbGQgIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0Y29uc3QgdGhyZXNob2xkID0gcGFyc2VJbnQob3B0cy50b2tlblJlZnJlc2hUaHJlc2hvbGQsIDEwKTtcblx0XHRcdGlmIChpc05hTih0aHJlc2hvbGQpKSB7XG5cdFx0XHRcdHRocm93IEUuSU5WQUxJRF9QQVJBTUVURVIoJ0V4cGVjdGVkIHRva2VuIHJlZnJlc2ggdGhyZXNob2xkIHRvIGJlIGEgbnVtYmVyIG9mIHNlY29uZHMnKTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKHRocmVzaG9sZCA8IDApIHtcblx0XHRcdFx0dGhyb3cgRS5JTlZBTElEX1JBTkdFKCdUb2tlbiByZWZyZXNoIHRocmVzaG9sZCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byB6ZXJvJyk7XG5cdFx0XHR9XG5cblx0XHRcdHRoaXMudG9rZW5SZWZyZXNoVGhyZXNob2xkID0gdGhyZXNob2xkICogMTAwMDtcblx0XHR9XG5cdH1cblxuXHQvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuXHQvKipcblx0ICogUmVtb3ZlcyBhbGwgdG9rZW5zLiBUaGlzIG1ldGhvZCBpcyBpbnRlbmRlZCB0byBiZSBvdmVyd3JpdHRlbi5cblx0ICpcblx0ICogQHBhcmFtIHtTdHJpbmd9IFtiYXNlVXJsXSAtIFRoZSBiYXNlIFVSTCB1c2VkIHRvIGZpbHRlciBhY2NvdW50cy5cblx0ICogQHJldHVybnMge1Byb21pc2U8QXJyYXk+fVxuXHQgKiBAYWNjZXNzIHB1YmxpY1xuXHQgKi9cblx0YXN5bmMgY2xlYXIoYmFzZVVybCkge1xuXHRcdHJldHVybiB7IGVudHJpZXM6IFtdLCByZW1vdmVkOiBbXSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIFJlbW92ZXMgYWxsIHRva2Vucy5cblx0ICpcblx0ICogQHBhcmFtIHtTdHJpbmd9IFtiYXNlVXJsXSAtIFRoZSBiYXNlIFVSTCB1c2VkIHRvIGZpbHRlciBhY2NvdW50cy5cblx0ICogQHJldHVybnMge1Byb21pc2U8QXJyYXk+fVxuXHQgKiBAYWNjZXNzIHB1YmxpY1xuXHQgKi9cblx0YXN5bmMgX2NsZWFyKGJhc2VVcmwpIHtcblx0XHRjb25zdCBlbnRyaWVzID0gYXdhaXQgdGhpcy5saXN0KCk7XG5cblx0XHRpZiAoIWJhc2VVcmwpIHtcblx0XHRcdGZvciAoY29uc3QgZW50cnkgb2YgZW50cmllcykge1xuXHRcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZW50cnksICdleHBpcmVkJywgeyB2YWx1ZTogdHJ1ZSB9KTtcblx0XHRcdH1cblx0XHRcdHJldHVybiB7IGVudHJpZXM6IFtdLCByZW1vdmVkOiBlbnRyaWVzIH07XG5cdFx0fVxuXG5cdFx0Y29uc3QgcmVtb3ZlZCA9IFtdO1xuXHRcdGJhc2VVcmwgPSBiYXNlVXJsLnJlcGxhY2UoL14uKlxcL1xcLy8sICcnKTtcblx0XHRmb3IgKGxldCBpID0gMDsgaSA8IGVudHJpZXMubGVuZ3RoOyBpKyspIHtcblx0XHRcdGlmIChlbnRyaWVzW2ldLmJhc2VVcmwucmVwbGFjZShwcm90b1JlZ0V4cCwgJycpID09PSBiYXNlVXJsKSB7XG5cdFx0XHRcdGNvbnN0IGVudHJ5ID0gZW50cmllcy5zcGxpY2UoaS0tLCAxKVswXTtcblx0XHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGVudHJ5LCAnZXhwaXJlZCcsIHsgdmFsdWU6IHRydWUgfSk7XG5cdFx0XHRcdHJlbW92ZWQucHVzaChlbnRyeSk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHsgZW50cmllcywgcmVtb3ZlZCB9O1xuXHR9XG5cblx0LyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cblx0LyoqXG5cdCAqIERlbGV0ZXMgYSB0b2tlbiBmcm9tIHRoZSBzdG9yZS4gVGhpcyBtZXRob2QgaXMgaW50ZW5kZWQgdG8gYmUgb3ZlcndyaXR0ZW4uXG5cdCAqXG5cdCAqIEBwYXJhbSB7U3RyaW5nfEFycmF5LjxTdHJpbmc+fSBhY2NvdW50cyAtIFRoZSBhY2NvdW50IG5hbWUocykgdG8gZGVsZXRlLlxuIFx0ICogQHBhcmFtIHtTdHJpbmd9IFtiYXNlVXJsXSAtIFRoZSBiYXNlIFVSTCB1c2VkIHRvIGZpbHRlciBhY2NvdW50cy5cblx0ICogQHJldHVybnMge1Byb21pc2V9XG5cdCAqIEBhY2Nlc3MgcHVibGljXG5cdCAqL1xuXHRhc3luYyBkZWxldGUoYWNjb3VudHMsIGJhc2VVcmwpIHtcblx0XHRyZXR1cm4gW107XG5cdH1cblxuXHQvKipcblx0ICogRGVsZXRlcyBhIHRva2VuIGZyb20gdGhlIHN0b3JlLlxuXHQgKlxuXHQgKiBAcGFyYW0ge1N0cmluZ3xBcnJheS48U3RyaW5nPn0gYWNjb3VudHMgLSBUaGUgYWNjb3VudCBuYW1lKHMpIHRvIGRlbGV0ZS5cbiBcdCAqIEBwYXJhbSB7U3RyaW5nfSBbYmFzZVVybF0gLSBUaGUgYmFzZSBVUkwgdXNlZCB0byBmaWx0ZXIgYWNjb3VudHMuXG5cdCAqIEByZXR1cm5zIHtQcm9taXNlfVxuXHQgKiBAYWNjZXNzIHB1YmxpY1xuXHQgKi9cblx0YXN5bmMgX2RlbGV0ZShhY2NvdW50cywgYmFzZVVybCkge1xuXHRcdGNvbnN0IGVudHJpZXMgPSBhd2FpdCB0aGlzLmxpc3QoKTtcblx0XHRjb25zdCByZW1vdmVkID0gW107XG5cblx0XHRpZiAoYmFzZVVybCkge1xuXHRcdFx0YmFzZVVybCA9IGJhc2VVcmwucmVwbGFjZSgvXi4qXFwvXFwvLywgJycpO1xuXHRcdH1cblxuXHRcdGlmICghQXJyYXkuaXNBcnJheShhY2NvdW50cykpIHtcblx0XHRcdGFjY291bnRzID0gWyBhY2NvdW50cyBdO1xuXHRcdH1cblxuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgZW50cmllcy5sZW5ndGg7IGkrKykge1xuXHRcdFx0aWYgKGFjY291bnRzLmluY2x1ZGVzKGVudHJpZXNbaV0ubmFtZSkgJiYgKCFiYXNlVXJsIHx8IGVudHJpZXNbaV0uYmFzZVVybC5yZXBsYWNlKHByb3RvUmVnRXhwLCAnJykgPT09IGJhc2VVcmwpKSB7XG5cdFx0XHRcdGNvbnN0IGVudHJ5ID0gZW50cmllcy5zcGxpY2UoaS0tLCAxKVswXTtcblx0XHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGVudHJ5LCAnZXhwaXJlZCcsIHsgdmFsdWU6IHRydWUgfSk7XG5cdFx0XHRcdHJlbW92ZWQucHVzaChlbnRyeSk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHsgZW50cmllcywgcmVtb3ZlZCB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIFJldHJlaXZlcyBhIHRva2VuIGZyb20gdGhlIHN0b3JlLlxuXHQgKlxuXHQgKiBAcGFyYW0ge09iamVjdH0gcGFyYW1zIC0gVmFyaW91cyBwYXJhbWV0ZXJzLlxuXHQgKiBAcGFyYW0ge1N0cmluZ30gcGFyYW1zLmFjY291bnROYW1lIC0gVGhlIGFjY291bnQgbmFtZSB0byBnZXQuXG5cdCAqIEBwYXJhbSB7U3RyaW5nfSBbYmFzZVVybF0gLSBUaGUgYmFzZSBVUkwgdXNlZCB0byBmaWx0ZXIgYWNjb3VudHMuXG5cdCAqIEByZXR1cm5zIHtQcm9taXNlfSBSZXNvbHZlcyB0aGUgdG9rZW4gb3IgYHVuZGVmaW5lZGAgaWYgbm90IHNldC5cblx0ICogQGFjY2VzcyBwdWJsaWNcblx0ICovXG5cdGFzeW5jIGdldCh7IGFjY291bnROYW1lLCBiYXNlVXJsLCBoYXNoIH0gPSB7fSkge1xuXHRcdGNvbnN0IGVudHJpZXMgPSBhd2FpdCB0aGlzLmxpc3QoKTtcblxuXHRcdGlmIChiYXNlVXJsKSB7XG5cdFx0XHRiYXNlVXJsID0gYmFzZVVybC5yZXBsYWNlKHByb3RvUmVnRXhwLCAnJykucmVwbGFjZSgvXFwvJC8sICcnKTtcblx0XHR9XG5cblx0XHRpZiAoIWFjY291bnROYW1lICYmICFoYXNoKSB7XG5cdFx0XHR0aHJvdyBFLk1JU1NJTkdfUkVRVUlSRURfUEFSQU1FVEVSKCdNdXN0IHNwZWNpZnkgZWl0aGVyIHRoZSBhY2NvdW50IG5hbWUgb3IgYXV0aGVudGljYXRvciBoYXNoJyk7XG5cdFx0fVxuXG5cdFx0Y29uc3QgbGVuID0gZW50cmllcy5sZW5ndGg7XG5cdFx0bG9nKGBTY2FubmluZyAke2hpZ2hsaWdodChsZW4pfSAke3BsdXJhbGl6ZSgndG9rZW4nLCBsZW4pfSBmb3IgYWNjb3VudE5hbWU9JHtoaWdobGlnaHQoYWNjb3VudE5hbWUpfSBoYXNoPSR7aGlnaGxpZ2h0KGhhc2gpfSBiYXNlVXJsPSR7aGlnaGxpZ2h0KGJhc2VVcmwpfWApO1xuXG5cdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuXHRcdFx0aWYgKCgoYWNjb3VudE5hbWUgJiYgZW50cmllc1tpXS5uYW1lID09PSBhY2NvdW50TmFtZSkgfHwgKGhhc2ggJiYgZW50cmllc1tpXS5oYXNoID09PSBoYXNoKSkgJiYgKCFiYXNlVXJsIHx8IGVudHJpZXNbaV0uYmFzZVVybC5yZXBsYWNlKHByb3RvUmVnRXhwLCAnJykucmVwbGFjZSgvXFwvJC8sICcnKSA9PT0gYmFzZVVybCkpIHtcblx0XHRcdFx0bG9nKGBGb3VuZCBhY2NvdW50IHRva2VuczogJHtoaWdobGlnaHQoZW50cmllc1tpXS5uYW1lKX1gKTtcblx0XHRcdFx0cmV0dXJuIGVudHJpZXNbaV07XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIG51bGw7XG5cdH1cblxuXHQvKipcblx0ICogUmV0cmVpdmVzIGFsbCB0b2tlbnMgZnJvbSB0aGUgc3RvcmUuIFRoaXMgbWV0aG9kIGlzIGludGVuZGVkIHRvIGJlIG92ZXJ3cml0dGVuLlxuXHQgKlxuXHQgKiBAcmV0dXJucyB7UHJvbWlzZTxBcnJheT59IFJlc29sdmVzIGFuIGFycmF5IG9mIHRva2Vucy5cblx0ICogQGFjY2VzcyBwdWJsaWNcblx0ICovXG5cdGFzeW5jIGxpc3QoKSB7XG5cdFx0cmV0dXJuIFtdO1xuXHR9XG5cblx0LyoqXG5cdCAqIEVuc3VyZXMgbGlzdCBvZiB0b2tlbnMgaXMgdmFsaWQgYW5kIGRvZXMgbm90IGNvbnRhaW4gYW55IGV4cGlyZWQgdG9rZW5zLlxuXHQgKlxuXHQgKiBAcGFyYW0ge0FycmF5LjxPYmplY3Q+fSBlbnRyaWVzIC0gQW4gYXJyYXkgb2YgdG9rZW5zLlxuXHQgKiBAcmV0dXJucyB7QXJyYXkuPE9iamVjdD59XG5cdCAqIEBhY2Nlc3MgcHJpdmF0ZVxuXHQgKi9cblx0cHVyZ2UoZW50cmllcykge1xuXHRcdGlmICghZW50cmllcykge1xuXHRcdFx0cmV0dXJuIFtdO1xuXHRcdH1cblxuXHRcdGxldCBjb3VudCA9IDA7XG5cblx0XHQvLyBsb29wIG92ZXIgZWFjaCBlbnRyeSBhbmQgcmVtb3ZlIGFueSBleHBpcmVkIHRva2Vuc1xuXHRcdC8vIE5PVEU6IHRoaXMgY29kZSBpbnRlbnRpb25hbGx5IGNoZWNrZXMgYGVudHJpZXMubGVuZ3RoYCBlYWNoIGxvb3AgaW5zdGVhZCBvZiBjYWNoaW5nIHRoZVxuXHRcdC8vIGxlbmd0aCBzaW5jZSBzcGxpY2UoKSBzaHJpbmtzIHRoZSBhcnJheSBsZW5ndGhcblx0XHRmb3IgKGxldCBpID0gMDsgaSA8IGVudHJpZXMubGVuZ3RoOyBpKyspIHtcblx0XHRcdGNvbnN0IHsgZXhwaXJlcywgdG9rZW5zIH0gPSBlbnRyaWVzW2ldO1xuXHRcdFx0Y29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcblx0XHRcdGlmIChleHBpcmVzICYmICgoZXhwaXJlcy5hY2Nlc3MgPiAobm93ICsgdGhpcy50b2tlblJlZnJlc2hUaHJlc2hvbGQpKSB8fCAoZXhwaXJlcy5yZWZyZXNoID4gbm93KSkpIHtcblx0XHRcdFx0Ly8gbm90IGV4cGlyZWRcblx0XHRcdFx0aWYgKCFPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGVudHJpZXNbaV0sICdleHBpcmVkJykpIHtcblx0XHRcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZW50cmllc1tpXSwgJ2V4cGlyZWQnLCB7XG5cdFx0XHRcdFx0XHRjb25maWd1cmFibGU6IHRydWUsXG5cdFx0XHRcdFx0XHRnZXQoKSB7XG5cdFx0XHRcdFx0XHRcdHJldHVybiB0aGlzLmV4cGlyZXMuYWNjZXNzIDwgRGF0ZS5ub3coKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fVxuXHRcdFx0XHRjb250aW51ZTtcblx0XHRcdH1cblx0XHRcdGNvdW50Kys7XG5cdFx0XHRlbnRyaWVzLnNwbGljZShpLS0sIDEpO1xuXHRcdH1cblxuXHRcdGxvZyhgUHVyZ2VkICR7aGlnaGxpZ2h0KGNvdW50KX0gJHtwbHVyYWxpemUoJ2VudHJ5JywgY291bnQpfWApO1xuXG5cdFx0cmV0dXJuIGVudHJpZXM7XG5cdH1cblxuXHQvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuXHQvKipcblx0ICogU2F2ZXMgYWNjb3VudCBjcmVkZW50aWFscy4gVGhpcyBtZXRob2QgaXMgaW50ZW5kZWQgdG8gYmUgb3ZlcndyaXR0ZW4uXG5cdCAqXG5cdCAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIC0gVGhlIHRva2VuIGRhdGEuXG5cdCAqIEByZXR1cm5zIHtQcm9taXNlfVxuXHQgKiBAYWNjZXNzIHByaXZhdGVcblx0ICovXG5cdGFzeW5jIHNldChkYXRhKSB7XG5cdFx0Ly8gbm9vcFxuXHR9XG5cblx0LyoqXG5cdCAqIFNhdmVzIGFjY291bnQgY3JlZGVudGlhbHMuIElmIGV4aXN0cywgdGhlIG9sZCBvbmUgaXMgZGVsZXRlZC5cblx0ICpcblx0ICogQHBhcmFtIHtPYmplY3R9IGRhdGEgLSBUaGUgdG9rZW4gZGF0YS5cblx0ICogQHJldHVybnMge1Byb21pc2V9XG5cdCAqIEBhY2Nlc3MgcHJpdmF0ZVxuXHQgKi9cblx0YXN5bmMgX3NldChkYXRhKSB7XG5cdFx0Y29uc3QgZW50cmllcyA9IGF3YWl0IHRoaXMubGlzdCgpO1xuXG5cdFx0Zm9yIChsZXQgaSA9IDAsIGxlbiA9IGVudHJpZXMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcblx0XHRcdGlmIChlbnRyaWVzW2ldLmJhc2VVcmwgPT09IGRhdGEuYmFzZVVybCAmJiBlbnRyaWVzW2ldLm5hbWUgPT09IGRhdGEubmFtZSkge1xuXHRcdFx0XHRlbnRyaWVzLnNwbGljZShpLCAxKTtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0ZW50cmllcy5wdXNoKGRhdGEpO1xuXHRcdHJldHVybiBlbnRyaWVzO1xuXHR9XG59XG4iXSwiZmlsZSI6InN0b3Jlcy90b2tlbi1zdG9yZS5qcyJ9

@@ -49,4 +49,2 @@ "use strict";

} catch (err) {
console.log(err);
if (err.code === 'INVALID_JSON') {

@@ -150,2 +148,2 @@ throw err;

}
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInV0aWwuanMiXSwibmFtZXMiOlsibG9nIiwiZ2V0U2VydmVySW5mbyIsInVybCIsIkUiLCJJTlZBTElEX0FSR1VNRU5UIiwiYm9keSIsInZhbGlkYXRlSlNPTiIsImVyciIsImNvbnNvbGUiLCJjb2RlIiwiRXJyb3IiLCJzdGF0dXNDb2RlIiwibWQ1IiwiaXQiLCJjcnlwdG8iLCJjcmVhdGVIYXNoIiwidXBkYXRlIiwiSlNPTiIsInN0cmluZ2lmeSIsImRpZ2VzdCIsInJlbmRlckhUTUwiLCJjbHMiLCJtZXNzYWdlIiwidGl0bGUiLCJTdHJpbmciLCJyZXBsYWNlIiwic3RyaW5naWZ5UXVlcnlTdHJpbmciLCJwYXJhbXMiLCJxdWVyeVBhcmFtcyIsIlVSTFNlYXJjaFBhcmFtcyIsInByb3AiLCJPYmplY3QiLCJrZXlzIiwic29ydCIsIm5hbWUiLCJtIiwiaSIsInRvTG93ZXJDYXNlIiwiYXBwZW5kIiwidG9TdHJpbmciXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFFQTs7QUFDQTs7OztBQUVBLE1BQU07QUFBRUEsRUFBQUE7QUFBRixJQUFVLHdCQUFVLG1CQUFWLENBQWhCO0FBRUE7Ozs7Ozs7QUFNTyxlQUFlQyxhQUFmLENBQTZCQyxHQUE3QixFQUFrQztBQUN4QyxNQUFJLENBQUNBLEdBQUQsSUFBUSxPQUFPQSxHQUFQLEtBQWUsUUFBM0IsRUFBcUM7QUFDcEMsVUFBTUMsZ0JBQUVDLGdCQUFGLENBQW1CLHVDQUFuQixDQUFOO0FBQ0E7O0FBRURKLEVBQUFBLEdBQUcsQ0FBRSx5QkFBd0JFLEdBQUksS0FBOUIsQ0FBSDs7QUFDQSxNQUFJO0FBQ0gsVUFBTTtBQUFFRyxNQUFBQTtBQUFGLFFBQVcsTUFBTSw2QkFBUTtBQUFFSCxNQUFBQSxHQUFGO0FBQU9JLE1BQUFBLFlBQVksRUFBRTtBQUFyQixLQUFSLENBQXZCO0FBQ0EsV0FBT0QsSUFBUDtBQUNBLEdBSEQsQ0FHRSxPQUFPRSxHQUFQLEVBQVk7QUFDYkMsSUFBQUEsT0FBTyxDQUFDUixHQUFSLENBQVlPLEdBQVo7O0FBQ0EsUUFBSUEsR0FBRyxDQUFDRSxJQUFKLEtBQWEsY0FBakIsRUFBaUM7QUFDaEMsWUFBTUYsR0FBTjtBQUNBOztBQUNELFVBQU0sSUFBSUcsS0FBSixDQUFXLHFDQUFvQ0gsR0FBRyxDQUFDSSxVQUFXLEdBQTlELENBQU47QUFDQTtBQUVEO0FBRUQ7Ozs7Ozs7O0FBTU8sU0FBU0MsR0FBVCxDQUFhQyxFQUFiLEVBQWlCO0FBQ3ZCLFNBQU9DLGdCQUFPQyxVQUFQLENBQWtCLEtBQWxCLEVBQXlCQyxNQUF6QixDQUFnQyxPQUFPSCxFQUFQLEtBQWMsUUFBZCxHQUF5QkEsRUFBekIsR0FBOEJJLElBQUksQ0FBQ0MsU0FBTCxDQUFlTCxFQUFmLENBQTlELEVBQWtGTSxNQUFsRixDQUF5RixLQUF6RixDQUFQO0FBQ0E7QUFFRDs7Ozs7Ozs7O0FBT08sU0FBU0MsVUFBVCxDQUFvQjtBQUFFQyxFQUFBQSxHQUFGO0FBQU9DLEVBQUFBLE9BQVA7QUFBZ0JDLEVBQUFBO0FBQWhCLENBQXBCLEVBQTZDO0FBQ25ELFNBQVE7OztVQUdDQSxLQUFNOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7ZUFvQ0RGLEdBQUcsSUFBSSxFQUFHOztRQUVqQkUsS0FBTTtPQUNQQyxNQUFNLENBQUNGLE9BQUQsQ0FBTixDQUFnQkcsT0FBaEIsQ0FBd0IsSUFBeEIsRUFBOEIsT0FBOUIsRUFBdUNBLE9BQXZDLENBQStDLElBQS9DLEVBQXFELE1BQXJELEVBQTZEQSxPQUE3RCxDQUFxRSxJQUFyRSxFQUEyRSxNQUEzRSxDQUFtRjs7O1FBMUN6RjtBQThDQTtBQUVEOzs7Ozs7Ozs7QUFPTyxTQUFTQyxvQkFBVCxDQUE4QkMsTUFBOUIsRUFBc0M7QUFDNUMsUUFBTUMsV0FBVyxHQUFHLElBQUlDLG9CQUFKLEVBQXBCOztBQUNBLE9BQUssTUFBTUMsSUFBWCxJQUFtQkMsTUFBTSxDQUFDQyxJQUFQLENBQVlMLE1BQVosRUFBb0JNLElBQXBCLEVBQW5CLEVBQStDO0FBQzlDLFVBQU1DLElBQUksR0FBR0osSUFBSSxDQUFDTCxPQUFMLENBQWEsUUFBYixFQUF1QixDQUFDVSxDQUFELEVBQUlDLENBQUosS0FBVyxHQUFFQSxDQUFDLEdBQUcsR0FBSCxHQUFTLEVBQUcsR0FBRUQsQ0FBQyxDQUFDRSxXQUFGLEVBQWdCLEVBQW5FLENBQWI7QUFDQVQsSUFBQUEsV0FBVyxDQUFDVSxNQUFaLENBQW1CSixJQUFuQixFQUF5QlAsTUFBTSxDQUFDRyxJQUFELENBQS9CO0FBQ0E7O0FBQ0QsU0FBT0YsV0FBVyxDQUFDVyxRQUFaLEVBQVA7QUFDQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjcnlwdG8gZnJvbSAnY3J5cHRvJztcbmltcG9ydCBFIGZyb20gJy4vZXJyb3JzJztcbmltcG9ydCBzbm9vcGxvZ2cgZnJvbSAnc25vb3Bsb2dnJztcblxuaW1wb3J0IHJlcXVlc3QgZnJvbSAnQGF4d2F5L2FtcGxpZnktcmVxdWVzdCc7XG5pbXBvcnQgeyBVUkxTZWFyY2hQYXJhbXMgfSBmcm9tICd1cmwnO1xuXG5jb25zdCB7IGxvZyB9ID0gc25vb3Bsb2dnKCdhbXBsaWZ5LWF1dGg6dXRpbCcpO1xuXG4vKipcbiAqIERpc2NvdmVycyBhdmFpbGFibGUgZW5kcG9pbnRzIGJhc2VkIG9uIHRoZSByZW1vdGUgc2VydmVyJ3MgT3BlbklEIGNvbmZpZ3VyYXRpb24uXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IFt1cmxdIC0gQW4gb3B0aW9uYWwgVVJMIHRvIGRpc2NvdmVyIHRoZSBhdmFpbGFibGUgZW5kcG9pbnRzLlxuICogQHJldHVybnMge1Byb21pc2U8T2JqZWN0Pn1cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFNlcnZlckluZm8odXJsKSB7XG5cdGlmICghdXJsIHx8IHR5cGVvZiB1cmwgIT09ICdzdHJpbmcnKSB7XG5cdFx0dGhyb3cgRS5JTlZBTElEX0FSR1VNRU5UKCdFeHBlY3RlZCBVUkwgdG8gYmUgYSBub24tZW1wdHkgc3RyaW5nJyk7XG5cdH1cblxuXHRsb2coYEZldGNoaW5nIHNlcnZlciBpbmZvOiAke3VybH0uLi5gKTtcblx0dHJ5IHtcblx0XHRjb25zdCB7IGJvZHkgfSA9IGF3YWl0IHJlcXVlc3QoeyB1cmwsIHZhbGlkYXRlSlNPTjogdHJ1ZSB9KTtcblx0XHRyZXR1cm4gYm9keTtcblx0fSBjYXRjaCAoZXJyKSB7XG5cdFx0Y29uc29sZS5sb2coZXJyKTtcblx0XHRpZiAoZXJyLmNvZGUgPT09ICdJTlZBTElEX0pTT04nKSB7XG5cdFx0XHR0aHJvdyBlcnI7XG5cdFx0fVxuXHRcdHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIGdldCBzZXJ2ZXIgaW5mbyAoc3RhdHVzICR7ZXJyLnN0YXR1c0NvZGV9KWApO1xuXHR9XG5cbn1cblxuLyoqXG4gKiBSZXR1cm5zIGEgaGV4IGVuY29kZWQgbWQ1IGhhc2ggb2YgYSBzdHJpbmcgb3Igb2JqZWN0LlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfE9iamVjdH0gaXQgLSBUaGUgb2JqZWN0IHRvIHNlcmlhbGl6ZSBhbmQgaGFzaC5cbiAqIEByZXR1cm5zIHtTdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtZDUoaXQpIHtcblx0cmV0dXJuIGNyeXB0by5jcmVhdGVIYXNoKCdtZDUnKS51cGRhdGUodHlwZW9mIGl0ID09PSAnc3RyaW5nJyA/IGl0IDogSlNPTi5zdHJpbmdpZnkoaXQpKS5kaWdlc3QoJ2hleCcpO1xufVxuXG4vKipcbiAqIEdlbmVyYXRlcyBhbiBIVE1MIHBhZ2Ugd2l0aCBhIHBhbmVsIGNvbnRhaW5pbmcgYSB0aXRsZSBhbmQgYSBtZXNzYWdlLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSB0aXRsZSAtIFRoZSB0aXRsZSB0byBkaXNwbGF5LlxuICogQHBhcmFtIHtTdHJpbmd9IG1lc3NhZ2UgLSBUaGUgbWVzc2FnZSB0byBpbmplY3QgaW50byB0aGUgcGFnZS5cbiAqIEByZXR1cm5zIHtTdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZW5kZXJIVE1MKHsgY2xzLCBtZXNzYWdlLCB0aXRsZSB9KSB7XG5cdHJldHVybiBgPCFkb2N0eXBlIGh0bWw+XG48aHRtbD5cbjxoZWFkPlxuXHQ8dGl0bGU+JHt0aXRsZX08L3RpdGxlPlxuXHQ8c3R5bGU+XG5cdGJvZHkge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG5cdFx0Y29sb3I6ICMzMzM7XG5cdFx0Zm9udC1mYW1pbHk6IFwiT3BlbiBTYW5zXCIsXCJIZWx2ZXRpY2EgTmV1ZVwiLFwiQXJpYWxcIixzYW5zLXNlcmlmO1xuXHRcdGZvbnQtc2l6ZTogMTVweDtcblx0fVxuXG5cdGJvZHkgPiBkaXYge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICNmN2Y3Zjc7XG5cdFx0Ym9yZGVyOiAxcHggc29saWQgI2NiY2JjYjtcblx0XHRib3JkZXItcmFkaXVzOiA0cHg7XG5cdFx0bWFyZ2luOiAzMHB4IGF1dG87XG5cdFx0cGFkZGluZzogMjBweCAzMHB4O1xuXHRcdHdpZHRoOiAzNjBweDtcblx0fVxuXG5cdC5zdWNjZXNzID4gZGl2IHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZGFmZmRiO1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkICMwMGNiMDY7XG5cdFx0Y29sb3I6ICMwMGNiMDY7XG5cdH1cblxuXHQuZXJyb3IgPiBkaXYge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICNmZmRhZGE7XG5cdFx0Ym9yZGVyOiAxcHggc29saWQgI2NiMDAwMDtcblx0XHRjb2xvcjogI2NiMDAwMDtcblx0fVxuXG5cdGgxIHtcblx0XHRmb250LXNpemU6IDI0cHg7XG5cdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdH1cblx0PC9zdHlsZT5cbjwvaGVhZD5cbjxib2R5IGNsYXNzPVwiJHtjbHMgfHwgJyd9XCI+XG5cdDxkaXY+XG5cdFx0PGgxPiR7dGl0bGV9PC9oMT5cblx0XHQ8cD4ke1N0cmluZyhtZXNzYWdlKS5yZXBsYWNlKC8mL2csICcmYW1wOycpLnJlcGxhY2UoLzwvZywgJyZsdDsnKS5yZXBsYWNlKC8+L2csICcmZ3Q7Jyl9PC9wPlxuXHQ8L2Rpdj5cbjwvYm9keT5cbjwvaHRtbD5gO1xufVxuXG4vKipcbiAqIENvcGllcyBhbGwgcGFyYW1zIGludG8gYSBuZXcgb2JqZWN0IGFuZCBjb252ZXJ0cyBjYW1lbGNhc2UgcHJvcGVydHkgbmFtZXMgdG8gdW5kZXJzY29yZSBjYXNlLFxuICogdGhlbiByZXR1cm5zIHRoZSBzdHJpbmdpZmllZCBxdWVyeSBzdHJpbmcuXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHBhcmFtcyAtIFRoZSBxdWVyeSBzdHJpbmcgcGFyYW1ldGVycyB0byBzdHJpbmdpZnkuXG4gKiBAcmV0dXJucyB7U3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gc3RyaW5naWZ5UXVlcnlTdHJpbmcocGFyYW1zKSB7XG5cdGNvbnN0IHF1ZXJ5UGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpO1xuXHRmb3IgKGNvbnN0IHByb3Agb2YgT2JqZWN0LmtleXMocGFyYW1zKS5zb3J0KCkpIHtcblx0XHRjb25zdCBuYW1lID0gcHJvcC5yZXBsYWNlKC9bQS1aXS9nLCAobSwgaSkgPT4gYCR7aSA/ICdfJyA6ICcnfSR7bS50b0xvd2VyQ2FzZSgpfWApO1xuXHRcdHF1ZXJ5UGFyYW1zLmFwcGVuZChuYW1lLCBwYXJhbXNbcHJvcF0pO1xuXHR9XG5cdHJldHVybiBxdWVyeVBhcmFtcy50b1N0cmluZygpO1xufVxuIl0sImZpbGUiOiJ1dGlsLmpzIn0=
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInV0aWwuanMiXSwibmFtZXMiOlsibG9nIiwiZ2V0U2VydmVySW5mbyIsInVybCIsIkUiLCJJTlZBTElEX0FSR1VNRU5UIiwiYm9keSIsInZhbGlkYXRlSlNPTiIsImVyciIsImNvZGUiLCJFcnJvciIsInN0YXR1c0NvZGUiLCJtZDUiLCJpdCIsImNyeXB0byIsImNyZWF0ZUhhc2giLCJ1cGRhdGUiLCJKU09OIiwic3RyaW5naWZ5IiwiZGlnZXN0IiwicmVuZGVySFRNTCIsImNscyIsIm1lc3NhZ2UiLCJ0aXRsZSIsIlN0cmluZyIsInJlcGxhY2UiLCJzdHJpbmdpZnlRdWVyeVN0cmluZyIsInBhcmFtcyIsInF1ZXJ5UGFyYW1zIiwiVVJMU2VhcmNoUGFyYW1zIiwicHJvcCIsIk9iamVjdCIsImtleXMiLCJzb3J0IiwibmFtZSIsIm0iLCJpIiwidG9Mb3dlckNhc2UiLCJhcHBlbmQiLCJ0b1N0cmluZyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUVBOztBQUNBOzs7O0FBRUEsTUFBTTtBQUFFQSxFQUFBQTtBQUFGLElBQVUsd0JBQVUsbUJBQVYsQ0FBaEI7QUFFQTs7Ozs7OztBQU1PLGVBQWVDLGFBQWYsQ0FBNkJDLEdBQTdCLEVBQWtDO0FBQ3hDLE1BQUksQ0FBQ0EsR0FBRCxJQUFRLE9BQU9BLEdBQVAsS0FBZSxRQUEzQixFQUFxQztBQUNwQyxVQUFNQyxnQkFBRUMsZ0JBQUYsQ0FBbUIsdUNBQW5CLENBQU47QUFDQTs7QUFFREosRUFBQUEsR0FBRyxDQUFFLHlCQUF3QkUsR0FBSSxLQUE5QixDQUFIOztBQUNBLE1BQUk7QUFDSCxVQUFNO0FBQUVHLE1BQUFBO0FBQUYsUUFBVyxNQUFNLDZCQUFRO0FBQUVILE1BQUFBLEdBQUY7QUFBT0ksTUFBQUEsWUFBWSxFQUFFO0FBQXJCLEtBQVIsQ0FBdkI7QUFDQSxXQUFPRCxJQUFQO0FBQ0EsR0FIRCxDQUdFLE9BQU9FLEdBQVAsRUFBWTtBQUNiLFFBQUlBLEdBQUcsQ0FBQ0MsSUFBSixLQUFhLGNBQWpCLEVBQWlDO0FBQ2hDLFlBQU1ELEdBQU47QUFDQTs7QUFDRCxVQUFNLElBQUlFLEtBQUosQ0FBVyxxQ0FBb0NGLEdBQUcsQ0FBQ0csVUFBVyxHQUE5RCxDQUFOO0FBQ0E7QUFFRDtBQUVEOzs7Ozs7OztBQU1PLFNBQVNDLEdBQVQsQ0FBYUMsRUFBYixFQUFpQjtBQUN2QixTQUFPQyxnQkFBT0MsVUFBUCxDQUFrQixLQUFsQixFQUF5QkMsTUFBekIsQ0FBZ0MsT0FBT0gsRUFBUCxLQUFjLFFBQWQsR0FBeUJBLEVBQXpCLEdBQThCSSxJQUFJLENBQUNDLFNBQUwsQ0FBZUwsRUFBZixDQUE5RCxFQUFrRk0sTUFBbEYsQ0FBeUYsS0FBekYsQ0FBUDtBQUNBO0FBRUQ7Ozs7Ozs7OztBQU9PLFNBQVNDLFVBQVQsQ0FBb0I7QUFBRUMsRUFBQUEsR0FBRjtBQUFPQyxFQUFBQSxPQUFQO0FBQWdCQyxFQUFBQTtBQUFoQixDQUFwQixFQUE2QztBQUNuRCxTQUFROzs7VUFHQ0EsS0FBTTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2VBb0NERixHQUFHLElBQUksRUFBRzs7UUFFakJFLEtBQU07T0FDUEMsTUFBTSxDQUFDRixPQUFELENBQU4sQ0FBZ0JHLE9BQWhCLENBQXdCLElBQXhCLEVBQThCLE9BQTlCLEVBQXVDQSxPQUF2QyxDQUErQyxJQUEvQyxFQUFxRCxNQUFyRCxFQUE2REEsT0FBN0QsQ0FBcUUsSUFBckUsRUFBMkUsTUFBM0UsQ0FBbUY7OztRQTFDekY7QUE4Q0E7QUFFRDs7Ozs7Ozs7O0FBT08sU0FBU0Msb0JBQVQsQ0FBOEJDLE1BQTlCLEVBQXNDO0FBQzVDLFFBQU1DLFdBQVcsR0FBRyxJQUFJQyxvQkFBSixFQUFwQjs7QUFDQSxPQUFLLE1BQU1DLElBQVgsSUFBbUJDLE1BQU0sQ0FBQ0MsSUFBUCxDQUFZTCxNQUFaLEVBQW9CTSxJQUFwQixFQUFuQixFQUErQztBQUM5QyxVQUFNQyxJQUFJLEdBQUdKLElBQUksQ0FBQ0wsT0FBTCxDQUFhLFFBQWIsRUFBdUIsQ0FBQ1UsQ0FBRCxFQUFJQyxDQUFKLEtBQVcsR0FBRUEsQ0FBQyxHQUFHLEdBQUgsR0FBUyxFQUFHLEdBQUVELENBQUMsQ0FBQ0UsV0FBRixFQUFnQixFQUFuRSxDQUFiO0FBQ0FULElBQUFBLFdBQVcsQ0FBQ1UsTUFBWixDQUFtQkosSUFBbkIsRUFBeUJQLE1BQU0sQ0FBQ0csSUFBRCxDQUEvQjtBQUNBOztBQUNELFNBQU9GLFdBQVcsQ0FBQ1csUUFBWixFQUFQO0FBQ0EiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY3J5cHRvIGZyb20gJ2NyeXB0byc7XG5pbXBvcnQgRSBmcm9tICcuL2Vycm9ycyc7XG5pbXBvcnQgc25vb3Bsb2dnIGZyb20gJ3Nub29wbG9nZyc7XG5cbmltcG9ydCByZXF1ZXN0IGZyb20gJ0BheHdheS9hbXBsaWZ5LXJlcXVlc3QnO1xuaW1wb3J0IHsgVVJMU2VhcmNoUGFyYW1zIH0gZnJvbSAndXJsJztcblxuY29uc3QgeyBsb2cgfSA9IHNub29wbG9nZygnYW1wbGlmeS1hdXRoOnV0aWwnKTtcblxuLyoqXG4gKiBEaXNjb3ZlcnMgYXZhaWxhYmxlIGVuZHBvaW50cyBiYXNlZCBvbiB0aGUgcmVtb3RlIHNlcnZlcidzIE9wZW5JRCBjb25maWd1cmF0aW9uLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBbdXJsXSAtIEFuIG9wdGlvbmFsIFVSTCB0byBkaXNjb3ZlciB0aGUgYXZhaWxhYmxlIGVuZHBvaW50cy5cbiAqIEByZXR1cm5zIHtQcm9taXNlPE9iamVjdD59XG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRTZXJ2ZXJJbmZvKHVybCkge1xuXHRpZiAoIXVybCB8fCB0eXBlb2YgdXJsICE9PSAnc3RyaW5nJykge1xuXHRcdHRocm93IEUuSU5WQUxJRF9BUkdVTUVOVCgnRXhwZWN0ZWQgVVJMIHRvIGJlIGEgbm9uLWVtcHR5IHN0cmluZycpO1xuXHR9XG5cblx0bG9nKGBGZXRjaGluZyBzZXJ2ZXIgaW5mbzogJHt1cmx9Li4uYCk7XG5cdHRyeSB7XG5cdFx0Y29uc3QgeyBib2R5IH0gPSBhd2FpdCByZXF1ZXN0KHsgdXJsLCB2YWxpZGF0ZUpTT046IHRydWUgfSk7XG5cdFx0cmV0dXJuIGJvZHk7XG5cdH0gY2F0Y2ggKGVycikge1xuXHRcdGlmIChlcnIuY29kZSA9PT0gJ0lOVkFMSURfSlNPTicpIHtcblx0XHRcdHRocm93IGVycjtcblx0XHR9XG5cdFx0dGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gZ2V0IHNlcnZlciBpbmZvIChzdGF0dXMgJHtlcnIuc3RhdHVzQ29kZX0pYCk7XG5cdH1cblxufVxuXG4vKipcbiAqIFJldHVybnMgYSBoZXggZW5jb2RlZCBtZDUgaGFzaCBvZiBhIHN0cmluZyBvciBvYmplY3QuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd8T2JqZWN0fSBpdCAtIFRoZSBvYmplY3QgdG8gc2VyaWFsaXplIGFuZCBoYXNoLlxuICogQHJldHVybnMge1N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1kNShpdCkge1xuXHRyZXR1cm4gY3J5cHRvLmNyZWF0ZUhhc2goJ21kNScpLnVwZGF0ZSh0eXBlb2YgaXQgPT09ICdzdHJpbmcnID8gaXQgOiBKU09OLnN0cmluZ2lmeShpdCkpLmRpZ2VzdCgnaGV4Jyk7XG59XG5cbi8qKlxuICogR2VuZXJhdGVzIGFuIEhUTUwgcGFnZSB3aXRoIGEgcGFuZWwgY29udGFpbmluZyBhIHRpdGxlIGFuZCBhIG1lc3NhZ2UuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHRpdGxlIC0gVGhlIHRpdGxlIHRvIGRpc3BsYXkuXG4gKiBAcGFyYW0ge1N0cmluZ30gbWVzc2FnZSAtIFRoZSBtZXNzYWdlIHRvIGluamVjdCBpbnRvIHRoZSBwYWdlLlxuICogQHJldHVybnMge1N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlbmRlckhUTUwoeyBjbHMsIG1lc3NhZ2UsIHRpdGxlIH0pIHtcblx0cmV0dXJuIGA8IWRvY3R5cGUgaHRtbD5cbjxodG1sPlxuPGhlYWQ+XG5cdDx0aXRsZT4ke3RpdGxlfTwvdGl0bGU+XG5cdDxzdHlsZT5cblx0Ym9keSB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcblx0XHRjb2xvcjogIzMzMztcblx0XHRmb250LWZhbWlseTogXCJPcGVuIFNhbnNcIixcIkhlbHZldGljYSBOZXVlXCIsXCJBcmlhbFwiLHNhbnMtc2VyaWY7XG5cdFx0Zm9udC1zaXplOiAxNXB4O1xuXHR9XG5cblx0Ym9keSA+IGRpdiB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2Y3ZjdmNztcblx0XHRib3JkZXI6IDFweCBzb2xpZCAjY2JjYmNiO1xuXHRcdGJvcmRlci1yYWRpdXM6IDRweDtcblx0XHRtYXJnaW46IDMwcHggYXV0bztcblx0XHRwYWRkaW5nOiAyMHB4IDMwcHg7XG5cdFx0d2lkdGg6IDM2MHB4O1xuXHR9XG5cblx0LnN1Y2Nlc3MgPiBkaXYge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICNkYWZmZGI7XG5cdFx0Ym9yZGVyOiAxcHggc29saWQgIzAwY2IwNjtcblx0XHRjb2xvcjogIzAwY2IwNjtcblx0fVxuXG5cdC5lcnJvciA+IGRpdiB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZGFkYTtcblx0XHRib3JkZXI6IDFweCBzb2xpZCAjY2IwMDAwO1xuXHRcdGNvbG9yOiAjY2IwMDAwO1xuXHR9XG5cblx0aDEge1xuXHRcdGZvbnQtc2l6ZTogMjRweDtcblx0XHRmb250LXdlaWdodDogYm9sZDtcblx0fVxuXHQ8L3N0eWxlPlxuPC9oZWFkPlxuPGJvZHkgY2xhc3M9XCIke2NscyB8fCAnJ31cIj5cblx0PGRpdj5cblx0XHQ8aDE+JHt0aXRsZX08L2gxPlxuXHRcdDxwPiR7U3RyaW5nKG1lc3NhZ2UpLnJlcGxhY2UoLyYvZywgJyZhbXA7JykucmVwbGFjZSgvPC9nLCAnJmx0OycpLnJlcGxhY2UoLz4vZywgJyZndDsnKX08L3A+XG5cdDwvZGl2PlxuPC9ib2R5PlxuPC9odG1sPmA7XG59XG5cbi8qKlxuICogQ29waWVzIGFsbCBwYXJhbXMgaW50byBhIG5ldyBvYmplY3QgYW5kIGNvbnZlcnRzIGNhbWVsY2FzZSBwcm9wZXJ0eSBuYW1lcyB0byB1bmRlcnNjb3JlIGNhc2UsXG4gKiB0aGVuIHJldHVybnMgdGhlIHN0cmluZ2lmaWVkIHF1ZXJ5IHN0cmluZy5cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcGFyYW1zIC0gVGhlIHF1ZXJ5IHN0cmluZyBwYXJhbWV0ZXJzIHRvIHN0cmluZ2lmeS5cbiAqIEByZXR1cm5zIHtTdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdHJpbmdpZnlRdWVyeVN0cmluZyhwYXJhbXMpIHtcblx0Y29uc3QgcXVlcnlQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKCk7XG5cdGZvciAoY29uc3QgcHJvcCBvZiBPYmplY3Qua2V5cyhwYXJhbXMpLnNvcnQoKSkge1xuXHRcdGNvbnN0IG5hbWUgPSBwcm9wLnJlcGxhY2UoL1tBLVpdL2csIChtLCBpKSA9PiBgJHtpID8gJ18nIDogJyd9JHttLnRvTG93ZXJDYXNlKCl9YCk7XG5cdFx0cXVlcnlQYXJhbXMuYXBwZW5kKG5hbWUsIHBhcmFtc1twcm9wXSk7XG5cdH1cblx0cmV0dXJuIHF1ZXJ5UGFyYW1zLnRvU3RyaW5nKCk7XG59XG4iXSwiZmlsZSI6InV0aWwuanMifQ==
{
"name": "@axway/amplify-auth-sdk",
"version": "0.1.3",
"version": "0.2.0",
"description": "Axway AMPLIFY authentication SDK for Node.js",

@@ -8,3 +8,3 @@ "author": "Axway, Inc. <npmjs@appcelerator.com>",

"Chris Barber <cbarber@axway.com>",
"Feon Sua <fmiao@axway.com>"
"Ewan Harris <eharris@axway.com>"
],

@@ -23,7 +23,6 @@ "license": "Apache-2.0",

"dependencies": {
"@axway/amplify-request": "^0.1.3",
"@axway/amplify-request": "^0.2.0",
"accepts": "^1.3.5",
"fs-extra": "^7.0.0",
"fs-extra": "^7.0.1",
"jws": "^3.1.5",
"keytar": "^4.2.1",
"opn": "^5.4.0",

@@ -34,6 +33,9 @@ "snooplogg": "^1.13.2",

"devDependencies": {
"appcd-gulp": "^1.2.0",
"appcd-gulp": "^1.2.1",
"gulp": "^3.9.1",
"tmp": "^0.0.33"
},
"optionalDependencies": {
"keytar": "^4.3.0"
},
"homepage": "https://github.com/appcelerator/amplify-tooling#readme",

@@ -44,4 +46,3 @@ "bugs": "https://github.com/appcelerator/amplify-tooling/issues",

"node": ">=8.0.0"
},
"gitHead": "c521dc6a436085fb559e18fb5aff2a28662fc650"
}
}

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

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

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc