Socket
Socket
Sign inDemoInstall

@haventech/semotus

Package Overview
Dependencies
Maintainers
5
Versions
45
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@haventech/semotus - npm Package Compare versions

Comparing version 7.0.0-beta.5 to 7.0.0-beta.6

5

dist/helpers/ProcessCall.js

@@ -41,4 +41,3 @@ "use strict";

var Utilities_1 = require("./Utilities");
var path = require("path");
var moduleName = path.basename(__dirname) + "/" + path.basename(__filename);
var moduleName = "semotus/src/helpers/ProcessCall";
/**

@@ -535,2 +534,2 @@ * We process the call the remote method in stages starting by letting the controller examine the

exports.postCallErrorLog = postCallErrorLog;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJvY2Vzc0NhbGwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaGVscGVycy9Qcm9jZXNzQ2FsbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx5Q0FBcUQ7QUFFckQsMkJBQTZCO0FBRTdCLElBQU0sVUFBVSxHQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLFNBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUcsQ0FBQztBQUU5RTs7Ozs7Ozs7Ozs7R0FXRztBQUNILFNBQXNCLFdBQVcsQ0FBQyxPQUEyQixFQUFFLFdBQXFCOzs7Ozs7O29CQUc5RCxxQkFBTSxPQUFPLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxFQUFBOztvQkFBaEQsV0FBVyxHQUFHLFNBQWtDLENBQUM7b0JBQ2pELHFCQUFNLFdBQVcsQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDLEVBQUE7O29CQUF2QyxTQUF1QyxDQUFDO29CQUN2QixxQkFBTSwyQkFBMkIsQ0FBQyxPQUFPLENBQUMsRUFBQTs7b0JBQXZELFVBQVUsR0FBRyxTQUEwQztvQkFDOUMscUJBQU0sZ0JBQWdCLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxFQUFBOztvQkFBeEQsVUFBVSxHQUFHLFNBQTJDLENBQUM7b0JBQzFDLHFCQUFNLFdBQVcsQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLEVBQUE7O29CQUEvQyxNQUFNLEdBQUcsU0FBc0M7b0JBQ3JELHFCQUFNLFlBQVksQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLEVBQUE7O29CQUFuQyxTQUFtQyxDQUFDO29CQUNwQyxxQkFBTSxlQUFlLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxFQUFBOztvQkFBdEMsU0FBc0MsQ0FBQzs7OztvQkFFdkMscUJBQU0sZUFBZSxDQUFDLE9BQU8sRUFBRSxLQUFHLENBQUMsRUFBQTs7b0JBQW5DLFNBQW1D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LElBQUk7WUFDckIsUUFBUSxFQUFFLG1CQUFPLENBQUMsV0FBVyxDQUFDO1lBQzlCLFFBQVEsRUFBRSxVQUFVLENBQUMsUUFBUTtTQUNoQztLQUNKLENBQUM7SUFFRixNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDN0IsQ0FBQztBQWxCRCw0Q0FrQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2RlbGF5LCBnZXRFcnJvciwgbG9nVGltZX0gZnJvbSAnLi9VdGlsaXRpZXMnO1xuaW1wb3J0IHtDYWxsQ29udGV4dCwgUHJvY2Vzc0NhbGxQYXlsb2FkLCBSZW1vdGVDYWxsLCBTZW1vdHVzLCBTZXNzaW9ufSBmcm9tICcuL1R5cGVzJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5cbmNvbnN0IG1vZHVsZU5hbWUgPSBgJHtwYXRoLmJhc2VuYW1lKF9fZGlybmFtZSl9LyR7cGF0aC5iYXNlbmFtZShfX2ZpbGVuYW1lKX1gO1xuXG4vKipcbiAqIFdlIHByb2Nlc3MgdGhlIGNhbGwgdGhlIHJlbW90ZSBtZXRob2QgaW4gc3RhZ2VzIHN0YXJ0aW5nIGJ5IGxldHRpbmcgdGhlIGNvbnRyb2xsZXIgZXhhbWluZSB0aGVcbiAqIGNoYW5nZXMgKHByZUNhbGxIb29rKSBhbmQgZ2l2aW5nIGl0IGEgY2hhbmNlIHRvIHJlZnJlc2ggZGF0YSBpZiBpdCBuZWVkcyB0by4gIFRoZW4gd2UgYXBwbHkgYW55XG4gKiBjaGFuZ2VzIGluIHRoZSBtZXNzYWdlcyBhbmQgZ2l2ZSB0aGUgb2JqZWN0IG93bmluZyB0aGUgbWV0aG9kIGEgY2hhbmNlIHRvIHZhbGlkYXRlIHRoYXQgdGhlXG4gKiBjYWxsIGlzIHZhbGlkIGFuZCB0YWtlIGNhcmUgb2YgYW55IGF1dGhvcml6YXRpb24gY29uY2VybnMuICBGaW5hbGx5IHdlIGxldCB0aGUgY29udHJvbGxlciBwZXJmb3JtXG4gKiBhbnkgcG9zdC1jYWxsIHByb2Nlc3Npbmcgc3VjaCBhcyBjb21taXRpbmcgZGF0YSBhbmQgdGhlbiB3ZSBkZWFsIHdpdGggYSBmYWlsdXJlIG9yIHN1Y2Nlc3MuXG4gKlxuICogQHBhcmFtIHBheWxvYWRcbiAqIEBwYXJhbSB7dW5rbm93bn0gZm9yY2V1cGRhdGUgdW5rbm93blxuICpcbiAqIEByZXR1cm5zIHt1bmtub3dufSB1bmtub3duXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBwcm9jZXNzQ2FsbChwYXlsb2FkOiBQcm9jZXNzQ2FsbFBheWxvYWQsIGZvcmNldXBkYXRlPzogYm9vbGVhbikge1xuXG4gICAgdHJ5IHtcbiAgICAgICAgZm9yY2V1cGRhdGUgPSBhd2FpdCBQcm9taXNlLnJlc29sdmUoZm9yY2V1cGRhdGUpO1xuICAgICAgICBhd2FpdCBwcmVDYWxsSG9vayhwYXlsb2FkLCBmb3JjZXVwZGF0ZSk7XG4gICAgICAgIGxldCB2YWxpZGF0aW9uID0gYXdhaXQgYXBwbHlDaGFuZ2VzQW5kVmFsaWRhdGVDYWxsKHBheWxvYWQpO1xuICAgICAgICB2YWxpZGF0aW9uID0gYXdhaXQgY3VzdG9tVmFsaWRhdGlvbihwYXlsb2FkLCB2YWxpZGF0aW9uKTtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgY2FsbElmVmFsaWQocGF5bG9hZCwgdmFsaWRhdGlvbik7XG4gICAgICAgIGF3YWl0IHBvc3RDYWxsSG9vayhwYXlsb2FkLCByZXN1bHQpO1xuICAgICAgICBhd2FpdCBwb3N0Q2FsbFN1Y2Nlc3MocGF5bG9hZCwgcmVzdWx0KTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgYXdhaXQgcG9zdENhbGxGYWlsdXJlKHBheWxvYWQsIGVycik7XG4gICAgfVxufVxuXG5cbi8qKlxuICogSWYgdGhlcmUgaXMgYW4gdXBkYXRlIGNvbmZsaWN0IHdlIHdhbnQgdG8gcmV0cnkgYWZ0ZXIgcmVzdG9yaW5nIHRoZSBzZXNzaW9uXG4gKlxuICogQHJldHVybnMgeyp9IHVua25vd25cbiAqL1xuYXN5bmMgZnVuY3Rpb24gcmV0cnlDYWxsKHBheWxvYWQ6IFByb2Nlc3NDYWxsUGF5bG9hZCkge1xuICAgIGNvbnN0IHtzZW1vdHVzLCByZW1vdGVDYWxsLCBjYWxsQ29udGV4dCwgc2Vzc2lvbiwgc3Vic2NyaXB0aW9uSWQsIHJlbW90ZUNhbGxJZCwgcmVzdG9yZVNlc3Npb25DYWxsYmFja30gPSBwYXlsb2FkO1xuXG4gICAgaWYgKHJlc3RvcmVTZXNzaW9uQ2FsbGJhY2spIHtcbiAgICAgICAgcmVzdG9yZVNlc3Npb25DYWxsYmFjaygpO1xuICAgIH1cblxuICAgIHJldHVybiBwcm9jZXNzQ2FsbChwYXlsb2FkLCB0cnVlKTtcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmUgd2hhdCBvYmplY3RzIGNoYW5nZWQgYW5kIHBhc3MgdGhpcyB0byB0aGUgcHJlU2VydmVyQ2FsbCBtZXRob2Qgb24gdGhlIGNvbnRyb2xsZXJcbiAqXG4gKiBAcGFyYW0gcGF5bG9hZFxuICogQHBhcmFtICBmb3JjZXVwZGF0ZSB1bmtub3duXG4gKlxuICogQHJldHVybnMgIHVua25vd25cbiAqL1xuYXN5bmMgZnVuY3Rpb24gcHJlQ2FsbEhvb2socGF5bG9hZDogUHJvY2Vzc0NhbGxQYXlsb2FkLCBmb3JjZXVwZGF0ZT86IGJvb2xlYW4pOiBQcm9taXNlPGFueT4ge1xuICAgIGNvbnN0IHtzZW1vdHVzLCByZW1vdGVDYWxsLCBzZXNzaW9uLCBjYWxsQ29udGV4dCwgSFRUUE9ianN9ID0gcGF5bG9hZDtcbiAgICBjb25zdCBmdW5jdGlvbk5hbWUgPSBwcmVDYWxsSG9vay5uYW1lO1xuICAgIHNlbW90dXMubG9nZ2VyLmluZm8oXG4gICAgICAgIHtcbiAgICAgICAgICAgIG1vZHVsZTogbW9kdWxlTmFtZSxcbiAgICAgICAgICAgIGZ1bmN0aW9uOiBmdW5jdGlvbk5hbWUsXG4gICAgICAgICAgICBjYXRlZ29yeTogJ21pbGVzdG9uZScsXG4gICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgYWN0aXZpdHk6ICdwcmVTZXJ2ZXJDYWxsJyxcbiAgICAgICAgICAgICAgICBjYWxsOiByZW1vdGVDYWxsLm5hbWUsXG4gICAgICAgICAgICAgICAgc2VxdWVuY2U6IHJlbW90ZUNhbGwuc2VxdWVuY2VcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICk7XG5cbiAgICBpZiAoc2Vtb3R1cy5jb250cm9sbGVyICYmIHNlbW90dXMuY29udHJvbGxlci5wcmVTZXJ2ZXJDYWxsKSB7XG4gICAgICAgIGxldCBjaGFuZ2VzID0ge307XG5cbiAgICAgICAgZm9yICh2YXIgb2JqSWQgaW4gSlNPTi5wYXJzZShyZW1vdGVDYWxsLmNoYW5nZXMpKSB7XG4gICAgICAgICAgICBjaGFuZ2VzW3NlbW90dXMuX19kaWN0aW9uYXJ5X19bb2JqSWQucmVwbGFjZSgvW14tXSotLywgJycpLnJlcGxhY2UoLy0uKi8sICcnKV0uX19uYW1lX19dID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCByZW1vdGVPYmplY3QgPSBzZXNzaW9uLm9iamVjdHNbcmVtb3RlQ2FsbC5pZF07XG5cbiAgICAgICAgLy8gTmVlZCB0byBkb3VibGUgY2hlY2sgaWYgbm90IGluIHNlc3Npb24sIHdoYXQgdGhlIHRlbXBsYXRlIGlzLlxuICAgICAgICBsZXQgcmVtb3RlVGVtcGxhdGUgPSBzZW1vdHVzLl9fZGljdGlvbmFyeV9fW3JlbW90ZUNhbGwuaWQucmVwbGFjZSgvW14tXSotLywgJycpLnJlcGxhY2UoLy0uKi8sICcnKV07XG4gICAgICAgIGxldCBpc1B1YmxpYyA9IGZhbHNlO1xuXG4gICAgICAgIGlmIChyZW1vdGVPYmplY3QpIHtcbiAgICAgICAgICAgIGlzUHVibGljID0gc2Vtb3R1cy5yb2xlID09PSAnc2VydmVyJyAmJiByZW1vdGVPYmplY3RbcmVtb3RlQ2FsbC5uYW1lXSAmJiByZW1vdGVPYmplY3RbcmVtb3RlQ2FsbC5uYW1lXS5yZW1vdGVQdWJsaWM7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAocmVtb3RlVGVtcGxhdGUpIHtcbiAgICAgICAgICAgIC8vIElmIHRoZSBjbGFzcyBkb2Vzbid0IGV4aXN0LCB3ZSBzaG91bGQgZ2V0IHRoZSByZW1vdGUgZnVuY3Rpb24gZnJvbSB0aGUgcHJvdG90eXBlXG4gICAgICAgICAgICBpc1B1YmxpYyA9IHNlbW90dXMucm9sZSA9PT0gJ3NlcnZlcicgJiYgcmVtb3RlVGVtcGxhdGUucHJvdG90eXBlW3JlbW90ZUNhbGwubmFtZV0gJiYgcmVtb3RlVGVtcGxhdGUucHJvdG90eXBlW3JlbW90ZUNhbGwubmFtZV0ucmVtb3RlUHVibGljO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgc2Vtb3R1cy5sb2dnZXIuZXJyb3Ioe1xuICAgICAgICAgICAgICAgIG1vZHVsZTogbW9kdWxlTmFtZSxcbiAgICAgICAgICAgICAgICBmdW5jdGlvbjogZnVuY3Rpb25OYW1lLFxuICAgICAgICAgICAgICAgIGNhdGVnb3J5OiAnbWlsZXN0b25lJyxcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiAnQ291bGQgbm90IGZpbmQgdGVtcGxhdGUgZm9yICcgKyBvYmpJZCxcbiAgICAgICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgICAgIGFjdGl2aXR5OiAncHJlU2VydmVyQ2FsbCcsXG4gICAgICAgICAgICAgICAgICAgIGNhbGw6IHJlbW90ZUNhbGwubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgc2VxdWVuY2U6IHJlbW90ZUNhbGwuc2VxdWVuY2VcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBzZW1vdHVzLmNvbnRyb2xsZXIucHJlU2VydmVyQ2FsbC5jYWxsKFxuICAgICAgICAgICAgc2Vtb3R1cy5jb250cm9sbGVyLFxuICAgICAgICAgICAgcmVtb3RlQ2FsbC5jaGFuZ2VzLmxlbmd0aCA+IDIsXG4gICAgICAgICAgICBjaGFuZ2VzLFxuICAgICAgICAgICAgY2FsbENvbnRleHQsXG4gICAgICAgICAgICBmb3JjZXVwZGF0ZSxcbiAgICAgICAgICAgIHJlbW90ZUNhbGwubmFtZSxcbiAgICAgICAgICAgIHJlbW90ZUNhbGwsXG4gICAgICAgICAgICBpc1B1YmxpYyxcbiAgICAgICAgICAgIEhUVFBPYmpzXG4gICAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxufVxuXG4vKipcbiAqIEFwcGx5IGNoYW5nZXMgaW4gdGhlIG1lc3NhZ2UgYW5kIHRoZW4gdmFsaWRhdGUgdGhlIGNhbGwuICBUaHJvdyBcIlN5bmMgRXJyb3JcIiBpZiBjaGFuZ2VzIGNhbid0IGJlIGFwcGxpZWRcbiAqXG4gKiBAcmV0dXJucyB7dW5rbm93bn0gdW5rbm93blxuICovXG5mdW5jdGlvbiBhcHBseUNoYW5nZXNBbmRWYWxpZGF0ZUNhbGwocGF5bG9hZDogUHJvY2Vzc0NhbGxQYXlsb2FkKTogYm9vbGVhbiB7XG4gICAgY29uc3Qge3NlbW90dXMsIHJlbW90ZUNhbGwsIGNhbGxDb250ZXh0LCBzZXNzaW9uLCBzdWJzY3JpcHRpb25JZCwgcmVtb3RlQ2FsbElkLCByZXN0b3JlU2Vzc2lvbkNhbGxiYWNrfSA9IHBheWxvYWQ7XG4gICAgY29uc3QgZnVuY3Rpb25OYW1lID0gYXBwbHlDaGFuZ2VzQW5kVmFsaWRhdGVDYWxsLm5hbWU7XG5cbiAgICBzZW1vdHVzLmxvZ2dlci5pbmZvKFxuICAgICAgICB7XG4gICAgICAgICAgICBtb2R1bGU6IG1vZHVsZU5hbWUsXG4gICAgICAgICAgICBmdW5jdGlvbjogZnVuY3Rpb25OYW1lLFxuICAgICAgICAgICAgY2F0ZWdvcnk6ICdtaWxlc3RvbmUnLFxuICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgIGFjdGl2aXR5OiAnYXBwbHlDaGFuZ2VzQW5kVmFsaWRhdGVDYWxsJyxcbiAgICAgICAgICAgICAgICBjYWxsOiByZW1vdGVDYWxsLm5hbWUsXG4gICAgICAgICAgICAgICAgc2VxdWVuY2U6IHJlbW90ZUNhbGwuc2VxdWVuY2UsXG4gICAgICAgICAgICAgICAgcmVtb3RlQ2FsbElkOiByZW1vdGVDYWxsLmlkXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICApO1xuXG4gICAgbGV0IGNoYW5nZXMgPSBKU09OLnBhcnNlKHJlbW90ZUNhbGwuY2hhbmdlcyk7XG5cbiAgICBjb25zdCByZXMgPSBzZW1vdHVzLl9hcHBseUNoYW5nZXMoY2hhbmdlcywgc2Vtb3R1cy5yb2xlID09PSAnY2xpZW50Jywgc3Vic2NyaXB0aW9uSWQsIGNhbGxDb250ZXh0KTtcbiAgICBpZiAocmVzKSB7XG4gICAgICAgIGNvbnN0IG9iaiA9IHNlc3Npb24ub2JqZWN0c1tyZW1vdGVDYWxsLmlkXTtcblxuICAgICAgICBpZiAoIW9iaikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgZmluZCBvYmplY3QgZm9yIHJlbW90ZSBjYWxsICR7cmVtb3RlQ2FsbC5pZH1gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGNoZWNrIHRvIHNlZSBpZiB0aGlzIGZ1bmN0aW9uIGlzIHN1cHBvc2VkIHRvIGJlIGNhbGxlZCBkaXJlY3RseSBmcm9tIGNsaWVudFxuICAgICAgICBpZiAob2JqLl9fcHJvdG9fX1tyZW1vdGVDYWxsLm5hbWVdLl9fb25fXyAhPT0gJ3NlcnZlcicpIHtcbiAgICAgICAgICAgIHRocm93ICdJbnZhbGlkIEZ1bmN0aW9uIENhbGw7IG5vdCBhbiBBUEkgZnVuY3Rpb24nO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHNlbW90dXMucm9sZSA9PT0gJ3NlcnZlcicgJiYgb2JqLnZhbGlkYXRlU2VydmVyQ2FsbCkge1xuICAgICAgICAgICAgcmV0dXJuIG9iai52YWxpZGF0ZVNlcnZlckNhbGwuY2FsbChvYmosIHJlbW90ZUNhbGwubmFtZSwgY2FsbENvbnRleHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgJ1N5bmMgRXJyb3InO1xuICAgIH1cbn1cblxuLyoqXG4gKiBBcHBseSBmdW5jdGlvbiBzcGVjaWZpYyBjdXN0b20gc2VydmVyU2lkZSB2YWxpZGF0aW9uIGZ1bmN0aW9uc1xuICpcbiAqIEBwYXJhbSBzZW1vdHVzXG4gKiBAcGFyYW0ge2Jvb2xlYW59IGlzVmFsaWQgLSBSZXN1bHQgb2YgcHJldmlvdXMgdmFsaWRhdGlvbiBzdGVwIChhcHBseUNoYW5nZXNBbmRWYWxpZGF0ZUNhbGwpXG4gKiBAcGFyYW0gc2Vzc2lvblxuICogQHBhcmFtIHJlbW90ZUNhbGxcbiAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHBhc3NlZCBmdW5jdGlvblxuICovXG5mdW5jdGlvbiBjdXN0b21WYWxpZGF0aW9uKHBheWxvYWQ6IFByb2Nlc3NDYWxsUGF5bG9hZCwgaXNWYWxpZDogYm9vbGVhbik6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHtzZW1vdHVzLCByZW1vdGVDYWxsLCBjYWxsQ29udGV4dCwgc2Vzc2lvbiwgc3Vic2NyaXB0aW9uSWQsIHJlbW90ZUNhbGxJZCwgcmVzdG9yZVNlc3Npb25DYWxsYmFja30gPSBwYXlsb2FkO1xuICAgIGNvbnN0IGZ1bmN0aW9uTmFtZSA9IGN1c3RvbVZhbGlkYXRpb24ubmFtZTtcblxuICAgIGxldCBsb2dnZXJPYmplY3QgPSB7XG4gICAgICAgIG1vZHVsZTogbW9kdWxlTmFtZSxcbiAgICAgICAgZnVuY3Rpb246IGZ1bmN0aW9uTmFtZSxcbiAgICAgICAgY2F0ZWdvcnk6ICdtaWxlc3RvbmUnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICBhY3Rpdml0eTogJ2N1c3RvbVZhbGlkYXRpb24nLFxuICAgICAgICAgICAgY2FsbDogcmVtb3RlQ2FsbC5uYW1lLFxuICAgICAgICAgICAgc2VxdWVuY2U6IHJlbW90ZUNhbGwuc2VxdWVuY2UsXG4gICAgICAgICAgICByZW1vdGVDYWxsSWQ6IHJlbW90ZUNhbGwuaWRcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBsZXQgcmVtb3RlT2JqZWN0ID0gc2Vzc2lvbi5vYmplY3RzW3JlbW90ZUNhbGwuaWRdO1xuXG4gICAgc2Vtb3R1cy5sb2dnZXIuaW5mbyhsb2dnZXJPYmplY3QpO1xuXG4gICAgaWYgKCFpc1ZhbGlkKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9IGVsc2UgaWYgKHNlbW90dXMucm9sZSA9PT0gJ3NlcnZlcicgJiYgcmVtb3RlT2JqZWN0W3JlbW90ZUNhbGwubmFtZV0uc2VydmVyVmFsaWRhdGlvbikge1xuICAgICAgICBsZXQgYXJncyA9IHNlbW90dXMuX2V4dHJhY3RBcmd1bWVudHMocmVtb3RlQ2FsbCk7XG4gICAgICAgIGFyZ3MudW5zaGlmdChyZW1vdGVPYmplY3QpO1xuXG4gICAgICAgIHJldHVybiByZW1vdGVPYmplY3RbcmVtb3RlQ2FsbC5uYW1lXS5zZXJ2ZXJWYWxpZGF0aW9uLmFwcGx5KG51bGwsIGFyZ3MpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbn1cblxuLyoqXG4gKiBJZiB0aGUgY2hhbmdlcyBjb3VsZCBiZSBhcHBsaWVkIGFuZCB0aGUgdmFsaWRhdGlvbiB3YXMgc3VjY2Vzc2Z1bCBjYWxsIHRoZSBtZXRob2RcbiAqXG4gKiBAcGFyYW0gc2Vtb3R1c1xuICogQHBhcmFtIHtib29sZWFufSBpc1ZhbGlkIC0gdGFrZXMgYSBmbGFnIGlmIHRoZSBjYWxsIGlzIHZhbGlkIG9yIG5vdCwgaWYgaXQgaXMgdGhlbiB3ZSBwcm9jZWVkIG5vcm1hbGx5LFxuICogb3RoZXJ3aXNlLCB3ZSB0aHJvdyBhbiBlcnJvciBhbmQgc3RvcCBleGVjdXRpb25cbiAqXG4gKiBAcGFyYW0gc2Vzc2lvblxuICogQHBhcmFtIHJlbW90ZUNhbGxcbiAqIEByZXR1cm5zIHt1bmtub3dufSB1bmtub3duXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGNhbGxJZlZhbGlkKHBheWxvYWQ6IFByb2Nlc3NDYWxsUGF5bG9hZCwgaXNWYWxpZDogYm9vbGVhbikge1xuICAgIGNvbnN0IHtzZW1vdHVzLCByZW1vdGVDYWxsLCBjYWxsQ29udGV4dCwgc2Vzc2lvbiwgc3Vic2NyaXB0aW9uSWQsIHJlbW90ZUNhbGxJZCwgcmVzdG9yZVNlc3Npb25DYWxsYmFja30gPSBwYXlsb2FkO1xuICAgIGNvbnN0IGZ1bmN0aW9uTmFtZSA9IGNhbGxJZlZhbGlkLm5hbWU7XG5cbiAgICBsZXQgbG9nZ2VyT2JqZWN0ID0ge1xuICAgICAgICBtb2R1bGU6IG1vZHVsZU5hbWUsXG4gICAgICAgIGZ1bmN0aW9uOiBmdW5jdGlvbk5hbWUsXG4gICAgICAgIGNhdGVnb3J5OiAnbWlsZXN0b25lJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgYWN0aXZpdHk6ICdjYWxsSWZWYWxpZCcsXG4gICAgICAgICAgICBjYWxsOiByZW1vdGVDYWxsLm5hbWUsXG4gICAgICAgICAgICBzZXF1ZW5jZTogcmVtb3RlQ2FsbC5zZXF1ZW5jZSxcbiAgICAgICAgICAgIHJlbW90ZUNhbGxJZDogcmVtb3RlQ2FsbC5pZFxuICAgICAgICB9XG4gICAgfTtcblxuICAgIHNlbW90dXMubG9nZ2VyLmluZm8obG9nZ2VyT2JqZWN0KTtcblxuICAgIGxldCBvYmogPSBzZXNzaW9uLm9iamVjdHNbcmVtb3RlQ2FsbC5pZF07XG5cbiAgICBpZiAoIW9ialtyZW1vdGVDYWxsLm5hbWVdKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihyZW1vdGVDYWxsLm5hbWUgKyAnIGZ1bmN0aW9uIGRvZXMgbm90IGV4aXN0LicpO1xuICAgIH1cblxuICAgIGlmICghaXNWYWxpZCAmJiByZW1vdGVDYWxsICYmIHJlbW90ZUNhbGwubmFtZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IocmVtb3RlQ2FsbC5uYW1lICsgJyByZWZ1c2VkJyk7XG4gICAgfVxuXG4gICAgbGV0IGFyZ3MgPSBzZW1vdHVzLl9leHRyYWN0QXJndW1lbnRzKHJlbW90ZUNhbGwpO1xuXG4gICAgcmV0dXJuIG9ialtyZW1vdGVDYWxsLm5hbWVdLmFwcGx5KG9iaiwgYXJncyk7XG59XG5cbi8qKlxuICogTGV0IHRoZSBjb250cm9sbGVyIGtub3cgdGhhdCB0aGUgbWV0aG9kIHdhcyBjb21wbGV0ZWQgYW5kIGdpdmUgaXQgYSBjaGFuY2UgdG8gY29tbWl0IGNoYW5nZXNcbiAqXG4gKiBAcGFyYW0gcGF5bG9hZFxuICogQHBhcmFtICByZXR1cm5WYWx1ZSB1bmtub3duXG4gKlxuICogQHJldHVybnNcbiAqL1xuYXN5bmMgZnVuY3Rpb24gcG9zdENhbGxIb29rKHBheWxvYWQ6IFByb2Nlc3NDYWxsUGF5bG9hZCwgcmV0dXJuVmFsdWUpIHtcbiAgICBjb25zdCB7c2Vtb3R1cywgcmVtb3RlQ2FsbCwgY2FsbENvbnRleHQsIEhUVFBPYmpzfSA9IHBheWxvYWQ7XG5cbiAgICBpZiAoc2Vtb3R1cy5jb250cm9sbGVyICYmIHNlbW90dXMuY29udHJvbGxlci5wb3N0U2VydmVyQ2FsbCkge1xuICAgICAgICBjb25zdCBoYXNDaGFuZ2VzOiBib29sZWFuID0gcmVtb3RlQ2FsbC5jaGFuZ2VzLmxlbmd0aCA+IDI7XG4gICAgICAgIGF3YWl0IHNlbW90dXMuY29udHJvbGxlci5wb3N0U2VydmVyQ2FsbC5jYWxsKHNlbW90dXMuY29udHJvbGxlciwgaGFzQ2hhbmdlcywgY2FsbENvbnRleHQsIHNlbW90dXMuY2hhbmdlU3RyaW5nLCBIVFRQT2Jqcyk7XG4gICAgfVxuICAgIHJldHVybiByZXR1cm5WYWx1ZTtcbn1cblxuLyoqXG4gKiBQYWNrYWdlIHVwIGFueSBjaGFuZ2VzIHJlc3VsdGluZyBmcm9tIHRoZSBleGVjdXRpb24gYW5kIHNlbmQgdGhlbSBiYWNrIGluIHRoZSBtZXNzYWdlLCBjbGVhcmluZ1xuICogb3VyIGNoYW5nZSBxdWV1ZSB0byBhY2N1bXVsYXRlIG1vcmUgY2hhbmdlcyBmb3IgdGhlIG5leHQgY2FsbFxuICpcbiAqIEBwYXJhbSBzZW1vdHVzXG4gKiBAcGFyYW0gcmVtb3RlQ2FsbFxuICogQHBhcmFtIHJlbW90ZUNhbGxJZFxuICogQHBhcmFtIHt1bmtub3dufSByZXQgdW5rbm93blxuICovXG5mdW5jdGlvbiBwb3N0Q2FsbFN1Y2Nlc3MocGF5bG9hZDogUHJvY2Vzc0NhbGxQYXlsb2FkLCByZXQpOiB2b2lkIHtcbiAgICBjb25zdCB7c2Vtb3R1cywgcmVtb3RlQ2FsbCwgY2FsbENvbnRleHQsIHNlc3Npb24sIHJlbW90ZUNhbGxJZH0gPSBwYXlsb2FkO1xuICAgIGNvbnN0IGZ1bmN0aW9uTmFtZSA9IHBvc3RDYWxsU3VjY2Vzcy5uYW1lO1xuXG4gICAgc2Vtb3R1cy5sb2dnZXIuaW5mbyhcbiAgICAgICAge1xuICAgICAgICAgICAgbW9kdWxlOiBtb2R1bGVOYW1lLFxuICAgICAgICAgICAgZnVuY3Rpb246IGZ1bmN0aW9uTmFtZSxcbiAgICAgICAgICAgIGNhdGVnb3J5OiAnbWlsZXN0b25lJyxcbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICBhY3Rpdml0eTogJ3Bvc3RDYWxsLnN1Y2Nlc3MnLFxuICAgICAgICAgICAgICAgIGNhbGw6IHJlbW90ZUNhbGwubmFtZSxcbiAgICAgICAgICAgICAgICBjYWxsVGltZTogbG9nVGltZShjYWxsQ29udGV4dCksXG4gICAgICAgICAgICAgICAgc2VxdWVuY2U6IHJlbW90ZUNhbGwuc2VxdWVuY2VcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICk7XG5cbiAgICBwYWNrYWdlQ2hhbmdlcyhzZW1vdHVzLCBzZXNzaW9uLHtcbiAgICAgICAgdHlwZTogJ3Jlc3BvbnNlJyxcbiAgICAgICAgc3luYzogdHJ1ZSxcbiAgICAgICAgdmFsdWU6IEpTT04uc3RyaW5naWZ5KHNlbW90dXMuX3RvVHJhbnNwb3J0KHJldCkpLFxuICAgICAgICBuYW1lOiByZW1vdGVDYWxsLm5hbWUsXG4gICAgICAgIHJlbW90ZUNhbGxJZDogcmVtb3RlQ2FsbElkXG4gICAgfSk7XG59XG5cbi8qKlxuICogSGVscGVyIGZ1bmN0aW9uIHRvIGlkZW50aWZ5IGlmIHRoZXJlJ3MgYSBwb3N0U2VydmVyRXJyb3JIYW5kbGVyIGNhbGxiYWNrIG9uIHRoZSBiYXNlIGNvbnRyb2xsZXJcbiAqIElmIHRoZXJlIGlzLCB3ZSBleGVjdXRlIHRoZSBoYW5kbGVyLCBhbmQgaWYgd2UgY2F0Y2ggYW4gZXJyb3IgaW4gdGhlIGhhbmRsZXIsIHdlIHByb3BvZ2F0ZSBpdCB1cCB0byB0aGUgbG9nZ2VyLlxuICogQHBhcmFtIGxvZ2dlclxuICogQHBhcmFtIHsqfSBjb250cm9sbGVyXG4gKiBAcGFyYW0gdHlwZVxuICogQHBhcmFtIHJlbW90ZUNhbGxcbiAqIEBwYXJhbSByZW1vdGVDYWxsSWRcbiAqIEBwYXJhbSBjYWxsQ29udGV4dFxuICogQHBhcmFtIGNoYW5nZVN0cmluZ1xuICogQHBhcmFtIHNlc3Npb25cbiAqL1xuYXN5bmMgZnVuY3Rpb24gcmVzb2x2ZUVycm9ySGFuZGxlcihsb2dnZXIsIGNvbnRyb2xsZXI6IGFueSwgdHlwZSwgcmVtb3RlQ2FsbDogUmVtb3RlQ2FsbCwgcmVtb3RlQ2FsbElkLCBjYWxsQ29udGV4dDogQ2FsbENvbnRleHQsIGNoYW5nZVN0cmluZywgc2Vzc2lvbjogU2Vzc2lvbikge1xuICAgIGNvbnN0IGZ1bmN0aW9uTmFtZSA9IHJlc29sdmVFcnJvckhhbmRsZXIubmFtZTtcbiAgICBpZiAoY29udHJvbGxlciAmJiBjb250cm9sbGVyLnBvc3RTZXJ2ZXJFcnJvckhhbmRsZXIpIHtcbiAgICAgICAgbGV0IGVycm9yVHlwZSA9IHR5cGU7XG4gICAgICAgIGxldCByZW1vdGVDYWxsTmFtZSA9IHJlbW90ZUNhbGwubmFtZTtcbiAgICAgICAgbGV0IG9iaiA9IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKHNlc3Npb24ub2JqZWN0c1tyZW1vdGVDYWxsLmlkXSkge1xuICAgICAgICAgICAgb2JqID0gc2Vzc2lvbi5vYmplY3RzW3JlbW90ZUNhbGwuaWRdO1xuICAgICAgICB9XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBhd2FpdCBjb250cm9sbGVyLnBvc3RTZXJ2ZXJFcnJvckhhbmRsZXIuY2FsbChjb250cm9sbGVyLCBlcnJvclR5cGUsIHJlbW90ZUNhbGxJZCwgb2JqLCByZW1vdGVDYWxsTmFtZSwgY2FsbENvbnRleHQsIGNoYW5nZVN0cmluZyk7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBsZXQgbG9nQm9keSA9IHtcbiAgICAgICAgICAgICAgICBtb2R1bGU6IG1vZHVsZU5hbWUsXG4gICAgICAgICAgICAgICAgZnVuY3Rpb246IGZ1bmN0aW9uTmFtZSxcbiAgICAgICAgICAgICAgICBjYXRlZ29yeTogJ21pbGVzdG9uZScsXG4gICAgICAgICAgICAgICAgZXJyb3I6IGVycm9yLFxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICdVc2VyIGRlZmluZWQgcG9zdFNlcnZlckVycm9ySGFuZGxlciB0aHJldyBhbiBlcnJvcicsXG4gICAgICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgICAgICBhY3Rpdml0eTogJ3Bvc3RDYWxsLnJlc29sdmVFcnJvckhhbmRsZXInLFxuICAgICAgICAgICAgICAgICAgICBjYWxsOiByZW1vdGVDYWxsLm5hbWVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgbG9nZ2VyLmVycm9yKGxvZ0JvZHkpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKipcbiAqIEhhbmRsZSBlcnJvcnMgYnkgcmV0dXJuaW5nIGFuIGFwcm9wcmlhdGUgbWVzc2FnZS4gIEluIGFsbCBjYXNlcyBjaGFuZ2VzIHNlbnQgYmFjayB0aG91Z2ggdGhleVxuICpcbiAqIEBwYXJhbSBzZW1vdHVzXG4gKiBAcGFyYW0gcmVtb3RlQ2FsbFxuICogQHBhcmFtIGNhbGxDb250ZXh0XG4gKiBAcGFyYW0gc2Vzc2lvblxuICogQHBhcmFtIHt1bmtub3dufSBlcnIgdW5rbm93blxuICpcbiAqIEByZXR1cm5zIHt1bmtub3dufSBBIFByb21pc2VcbiAqL1xuYXN5bmMgZnVuY3Rpb24gcG9zdENhbGxGYWlsdXJlKHBheWxvYWQ6IFByb2Nlc3NDYWxsUGF5bG9hZCwgZXJyKSB7XG4gICAgY29uc3Qge3NlbW90dXMsIHJlbW90ZUNhbGwsIGNhbGxDb250ZXh0LCBzZXNzaW9uLCBzdWJzY3JpcHRpb25JZCwgcmVtb3RlQ2FsbElkLCByZXN0b3JlU2Vzc2lvbkNhbGxiYWNrfSA9IHBheWxvYWQ7XG5cbiAgICBsZXQgbG9nU3RyaW5nID0gJyc7XG5cbiAgICBsZXQgcGFja2FnZUNoYW5nZXNQYXlsb2FkID0ge307XG5cbiAgICBsZXQgdXBkYXRlQ29uZmxpY3RSZXRyeSA9IGZhbHNlO1xuXG4gICAgaWYgKGVyciA9PT0gJ1N5bmMgRXJyb3InKSB7XG4gICAgICAgIHBvc3RDYWxsRXJyb3JMb2coc2Vtb3R1cy5sb2dnZXIsICdwb3N0Q2FsbC5zeW5jRXJyb3InLCB1bmRlZmluZWQsICdlcnJvcicsIHJlbW90ZUNhbGwubmFtZSwgcmVtb3RlQ2FsbCwgY2FsbENvbnRleHQpO1xuICAgICAgICBwYWNrYWdlQ2hhbmdlc1BheWxvYWQgPSB7XG4gICAgICAgICAgICB0eXBlOiAncmVzcG9uc2UnLFxuICAgICAgICAgICAgc3luYzogZmFsc2UsXG4gICAgICAgICAgICBjaGFuZ2VzOiAnJ1xuICAgICAgICB9O1xuICAgIH0gZWxzZSBpZiAoZXJyLm1lc3NhZ2UgPT0gJ1VwZGF0ZSBDb25mbGljdCcpIHtcbiAgICAgICAgLy8gTm90IHRoaXMgbWF5IGJlIGNhdWdodCBpbiB0aGUgdHJhbnNwb3J0IChlLmcuIEFtb3JwaGljKSBhbmQgcmV0cmllZClcblxuICAgICAgICAvLyBpbmNyZW1lbnQgY2FsbENvbnRleHQucmV0cmllcyBhZnRlciBjaGVja2luZyBpZiA8IDMuIFNob3VsZCByZXRyeSAzIHRpbWVzLlxuICAgICAgICBpZiAoY2FsbENvbnRleHQucmV0cmllcysrIDwgMykge1xuICAgICAgICAgICAgcG9zdENhbGxFcnJvckxvZyhzZW1vdHVzLmxvZ2dlciwgJ3Bvc3RDYWxsLnVwZGF0ZUNvbmZsaWN0JywgdW5kZWZpbmVkLCAnd2FybicsIHJlbW90ZUNhbGwubmFtZSwgcmVtb3RlQ2FsbCwgY2FsbENvbnRleHQpO1xuICAgICAgICAgICAgdXBkYXRlQ29uZmxpY3RSZXRyeSA9IHRydWU7XG4gICAgICAgICAgICAvLyBUaGUgZm9sbG93aW5nIGFzc2lnbm1lbnQgaXMgb25seSB1c2VkIGZvciB0aGUgZXJyb3IgaGFuZGxlclxuICAgICAgICAgICAgcGFja2FnZUNoYW5nZXNQYXlsb2FkID0ge1xuICAgICAgICAgICAgICAgIHR5cGU6ICdyZXRyeSdcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwb3N0Q2FsbEVycm9yTG9nKHNlbW90dXMubG9nZ2VyLCAncG9zdENhbGwudXBkYXRlQ29uZmxpY3QnLCB1bmRlZmluZWQsICdlcnJvcicsIHJlbW90ZUNhbGwubmFtZSwgcmVtb3RlQ2FsbCwgY2FsbENvbnRleHQpO1xuICAgICAgICAgICAgcGFja2FnZUNoYW5nZXNQYXlsb2FkID0ge1xuICAgICAgICAgICAgICAgIHR5cGU6ICdyZXRyeScsXG4gICAgICAgICAgICAgICAgc3luYzogZmFsc2VcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoIShlcnIgaW5zdGFuY2VvZiBFcnJvcikpIHtcbiAgICAgICAgICAgIHBvc3RDYWxsRXJyb3JMb2coc2Vtb3R1cy5sb2dnZXIsICdwb3N0Q2FsbC5lcnJvcicsIEpTT04uc3RyaW5naWZ5KGVyciksICdpbmZvJywgcmVtb3RlQ2FsbC5uYW1lLCByZW1vdGVDYWxsLCBjYWxsQ29udGV4dCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoZXJyLnN0YWNrKSB7XG4gICAgICAgICAgICAgICAgbG9nU3RyaW5nID0gJ0V4Y2VwdGlvbiBpbiAnICsgcmVtb3RlQ2FsbC5uYW1lICsgJyAtICcgKyBlcnIubWVzc2FnZSArICgnICcgKyBlcnIuc3RhY2spO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBsb2dTdHJpbmcgPSAnRXhjZXB0aW9uIGluICcgKyByZW1vdGVDYWxsLm5hbWUgKyAnIC0gJyArIGVyci5tZXNzYWdlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBwb3N0Q2FsbEVycm9yTG9nKHNlbW90dXMubG9nZ2VyLCAncG9zdENhbGwuZXhjZXB0aW9uJywgZXJyLm1lc3NhZ2UsICdlcnJvcicsIGxvZ1N0cmluZywgcmVtb3RlQ2FsbCwgY2FsbENvbnRleHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcGFja2FnZUNoYW5nZXNQYXlsb2FkID0ge1xuICAgICAgICAgICAgdHlwZTogJ2Vycm9yJyxcbiAgICAgICAgICAgIHN5bmM6IHRydWUsXG4gICAgICAgICAgICB2YWx1ZTogZ2V0RXJyb3IoZXJyKSxcbiAgICAgICAgICAgIG5hbWU6IHJlbW90ZUNhbGwubmFtZVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIE9iamVjdC5hc3NpZ24ocGFja2FnZUNoYW5nZXNQYXlsb2FkLCB7cmVtb3RlQ2FsbElkOiByZW1vdGVDYWxsSWR9KTtcblxuICAgIGF3YWl0IHJlc29sdmVFcnJvckhhbmRsZXIoXG4gICAgICAgIHNlbW90dXMubG9nZ2VyLFxuICAgICAgICBzZW1vdHVzLmNvbnRyb2xsZXIsXG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgcGFja2FnZUNoYW5nZXNQYXlsb2FkLnR5cGUsXG4gICAgICAgIHJlbW90ZUNhbGwsXG4gICAgICAgIHJlbW90ZUNhbGxJZCxcbiAgICAgICAgY2FsbENvbnRleHQsXG4gICAgICAgIHNlbW90dXMuY2hhbmdlU3RyaW5nLFxuICAgICAgICBzZXNzaW9uXG4gICAgKTtcblxuICAgIGlmICh1cGRhdGVDb25mbGljdFJldHJ5KSB7XG4gICAgICAgIGF3YWl0IGRlbGF5KGNhbGxDb250ZXh0LnJldHJpZXMgKiAxMDAwKTtcbiAgICAgICAgcmV0dXJuIHJldHJ5Q2FsbChwYXlsb2FkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gcGFja2FnZUNoYW5nZXMoc2Vtb3R1cywgc2Vzc2lvbiwgcGFja2FnZUNoYW5nZXNQYXlsb2FkKTtcbiAgICB9XG59XG5cbi8qKlxuICogRGVhbCB3aXRoIGNoYW5nZXMgZ29pbmcgYmFjayB0byB0aGUgY2FsbGVyIC0gQWN0dWFsbHkgbm90IEFzeW5jIVxuICpcbiAqIEBwYXJhbSBzZW1vdHVzXG4gKiBAcGFyYW0gc2Vzc2lvblxuICogQHBhcmFtIHt1bmtub3dufSBtZXNzYWdlIHVua25vd25cbiAqL1xuZnVuY3Rpb24gcGFja2FnZUNoYW5nZXMoc2Vtb3R1czogU2Vtb3R1cywgc2Vzc2lvbjogU2Vzc2lvbiwgbWVzc2FnZSkge1xuICAgIHNlbW90dXMuX2NvbnZlcnRBcnJheVJlZmVyZW5jZXNUb0NoYW5nZXMoKTtcbiAgICBtZXNzYWdlLmNoYW5nZXMgPSBKU09OLnN0cmluZ2lmeShzZW1vdHVzLmdldENoYW5nZXMoKSk7XG5cbiAgICBpZiAoc2Vtb3R1cy5tZW1TZXNzaW9uICYmIHNlbW90dXMubWVtU2Vzc2lvbi5zZW1vdHVzICYmIHNlbW90dXMubWVtU2Vzc2lvbi5zZW1vdHVzLmNhbGxTdGFydFRpbWUpIHtcbiAgICAgICAgc2Vtb3R1cy5tZW1TZXNzaW9uLnNlbW90dXMuY2FsbFN0YXJ0VGltZSA9IDA7XG4gICAgfVxuXG4gICAgLy8gSW5zcGVjdCBhIGNvcHkgb2YgdGhlIG1lc3NhZ2Ugb24gdGhlIHNlcnZlciBvbmx5IGJlZm9yZSBzZW50IG91dC4gT25seSBmb3IgZGVidWcgcHVycG9zZXNcbiAgICBpZiAoc2Vtb3R1cy5jb250cm9sbGVyICYmIHNlbW90dXMuY29udHJvbGxlci5pbnNwZWN0TWVzc2FnZSkge1xuICAgICAgICBzZW1vdHVzLmNvbnRyb2xsZXIuaW5zcGVjdE1lc3NhZ2UoT2JqZWN0LmFzc2lnbih7fSwgbWVzc2FnZSkpO1xuICAgIH1cblxuICAgIHNlc3Npb24uc2VuZE1lc3NhZ2UobWVzc2FnZSk7XG4gICAgc2Vtb3R1cy5fZGVsZXRlQ2hhbmdlcygpO1xuICAgIHNlbW90dXMuX3Byb2Nlc3NRdWV1ZSgpO1xufVxuXG5cbi8qKlxuICogIEhlbHBlciBmdW5jdGlvbiB0byBsb2cgYW1vcnBoaWMgZXJyb3JzLlxuICogQHBhcmFtIHsqfSBsb2dnZXJcbiAqIEBwYXJhbSB7Kn0gYWN0aXZpdHlcbiAqIEBwYXJhbSB7Kn0gbWVzc2FnZVxuICogQHBhcmFtIHsqfSBsb2dUeXBlXG4gKiBAcGFyYW0geyp9IGxvZ1N0cmluZ1xuICogQHBhcmFtIHJlbW90ZUNhbGxcbiAqIEBwYXJhbSBjYWxsQ29udGV4dFxuICovXG5leHBvcnQgZnVuY3Rpb24gcG9zdENhbGxFcnJvckxvZyhsb2dnZXIsIGFjdGl2aXR5LCBtZXNzYWdlLCBsb2dUeXBlLCBsb2dTdHJpbmcsIHJlbW90ZUNhbGw6IFJlbW90ZUNhbGwsIGNhbGxDb250ZXh0OiBDYWxsQ29udGV4dCkge1xuICAgIGNvbnN0IGZ1bmN0aW9uTmFtZSA9IHByb2Nlc3NDYWxsLm5hbWU7XG4gICAgXG4gICAgbGV0IGxvZ0JvZHkgPSB7XG4gICAgICAgIG1vZHVsZTogbW9kdWxlTmFtZSxcbiAgICAgICAgZnVuY3Rpb246IGZ1bmN0aW9uTmFtZSxcbiAgICAgICAgY2F0ZWdvcnk6ICdtaWxlc3RvbmUnLFxuICAgICAgICBtZXNzYWdlOiBsb2dTdHJpbmcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIG1lc3NhZ2U6IG1lc3NhZ2UsXG4gICAgICAgICAgICBhY3Rpdml0eTogYWN0aXZpdHksXG4gICAgICAgICAgICBjYWxsOiByZW1vdGVDYWxsLm5hbWUsXG4gICAgICAgICAgICBjYWxsVGltZTogbG9nVGltZShjYWxsQ29udGV4dCksXG4gICAgICAgICAgICBzZXF1ZW5jZTogcmVtb3RlQ2FsbC5zZXF1ZW5jZSxcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBsb2dnZXJbbG9nVHlwZV0obG9nQm9keSk7XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJvY2Vzc0NhbGwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaGVscGVycy9Qcm9jZXNzQ2FsbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx5Q0FBcUQ7QUFHckQsSUFBTSxVQUFVLEdBQUcsaUNBQWlDLENBQUM7QUFFckQ7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxTQUFzQixXQUFXLENBQUMsT0FBMkIsRUFBRSxXQUFxQjs7Ozs7OztvQkFHOUQscUJBQU0sT0FBTyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBQTs7b0JBQWhELFdBQVcsR0FBRyxTQUFrQyxDQUFDO29CQUNqRCxxQkFBTSxXQUFXLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxFQUFBOztvQkFBdkMsU0FBdUMsQ0FBQztvQkFDdkIscUJBQU0sMkJBQTJCLENBQUMsT0FBTyxDQUFDLEVBQUE7O29CQUF2RCxVQUFVLEdBQUcsU0FBMEM7b0JBQzlDLHFCQUFNLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsRUFBQTs7b0JBQXhELFVBQVUsR0FBRyxTQUEyQyxDQUFDO29CQUMxQyxxQkFBTSxXQUFXLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxFQUFBOztvQkFBL0MsTUFBTSxHQUFHLFNBQXNDO29CQUNyRCxxQkFBTSxZQUFZLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxFQUFBOztvQkFBbkMsU0FBbUMsQ0FBQztvQkFDcEMscUJBQU0sZUFBZSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsRUFBQTs7b0JBQXRDLFNBQXNDLENBQUM7Ozs7b0JBRXZDLHFCQUFNLGVBQWUsQ0FBQyxPQUFPLEVBQUUsS0FBRyxDQUFDLEVBQUE7O29CQUFuQyxTQUFtQyxDQUFDOzs7Ozs7Q0FFM0M7QUFiRCxrQ0FhQztBQUdEOzs7O0dBSUc7QUFDSCxTQUFlLFNBQVMsQ0FBQyxPQUEyQjs7OztZ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QVE7U0FDaEM7S0FDSixDQUFDO0lBRUYsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQzdCLENBQUM7QUFsQkQsNENBa0JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtkZWxheSwgZ2V0RXJyb3IsIGxvZ1RpbWV9IGZyb20gJy4vVXRpbGl0aWVzJztcbmltcG9ydCB7Q2FsbENvbnRleHQsIFByb2Nlc3NDYWxsUGF5bG9hZCwgUmVtb3RlQ2FsbCwgU2Vtb3R1cywgU2Vzc2lvbn0gZnJvbSAnLi9UeXBlcyc7XG5cbmNvbnN0IG1vZHVsZU5hbWUgPSBgc2Vtb3R1cy9zcmMvaGVscGVycy9Qcm9jZXNzQ2FsbGA7XG5cbi8qKlxuICogV2UgcHJvY2VzcyB0aGUgY2FsbCB0aGUgcmVtb3RlIG1ldGhvZCBpbiBzdGFnZXMgc3RhcnRpbmcgYnkgbGV0dGluZyB0aGUgY29udHJvbGxlciBleGFtaW5lIHRoZVxuICogY2hhbmdlcyAocHJlQ2FsbEhvb2spIGFuZCBnaXZpbmcgaXQgYSBjaGFuY2UgdG8gcmVmcmVzaCBkYXRhIGlmIGl0IG5lZWRzIHRvLiAgVGhlbiB3ZSBhcHBseSBhbnlcbiAqIGNoYW5nZXMgaW4gdGhlIG1lc3NhZ2VzIGFuZCBnaXZlIHRoZSBvYmplY3Qgb3duaW5nIHRoZSBtZXRob2QgYSBjaGFuY2UgdG8gdmFsaWRhdGUgdGhhdCB0aGVcbiAqIGNhbGwgaXMgdmFsaWQgYW5kIHRha2UgY2FyZSBvZiBhbnkgYXV0aG9yaXphdGlvbiBjb25jZXJucy4gIEZpbmFsbHkgd2UgbGV0IHRoZSBjb250cm9sbGVyIHBlcmZvcm1cbiAqIGFueSBwb3N0LWNhbGwgcHJvY2Vzc2luZyBzdWNoIGFzIGNvbW1pdGluZyBkYXRhIGFuZCB0aGVuIHdlIGRlYWwgd2l0aCBhIGZhaWx1cmUgb3Igc3VjY2Vzcy5cbiAqXG4gKiBAcGFyYW0gcGF5bG9hZFxuICogQHBhcmFtIHt1bmtub3dufSBmb3JjZXVwZGF0ZSB1bmtub3duXG4gKlxuICogQHJldHVybnMge3Vua25vd259IHVua25vd25cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHByb2Nlc3NDYWxsKHBheWxvYWQ6IFByb2Nlc3NDYWxsUGF5bG9hZCwgZm9yY2V1cGRhdGU/OiBib29sZWFuKSB7XG5cbiAgICB0cnkge1xuICAgICAgICBmb3JjZXVwZGF0ZSA9IGF3YWl0IFByb21pc2UucmVzb2x2ZShmb3JjZXVwZGF0ZSk7XG4gICAgICAgIGF3YWl0IHByZUNhbGxIb29rKHBheWxvYWQsIGZvcmNldXBkYXRlKTtcbiAgICAgICAgbGV0IHZhbGlkYXRpb24gPSBhd2FpdCBhcHBseUNoYW5nZXNBbmRWYWxpZGF0ZUNhbGwocGF5bG9hZCk7XG4gICAgICAgIHZhbGlkYXRpb24gPSBhd2FpdCBjdXN0b21WYWxpZGF0aW9uKHBheWxvYWQsIHZhbGlkYXRpb24pO1xuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBjYWxsSWZWYWxpZChwYXlsb2FkLCB2YWxpZGF0aW9uKTtcbiAgICAgICAgYXdhaXQgcG9zdENhbGxIb29rKHBheWxvYWQsIHJlc3VsdCk7XG4gICAgICAgIGF3YWl0IHBvc3RDYWxsU3VjY2VzcyhwYXlsb2FkLCByZXN1bHQpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBhd2FpdCBwb3N0Q2FsbEZhaWx1cmUocGF5bG9hZCwgZXJyKTtcbiAgICB9XG59XG5cblxuLyoqXG4gKiBJZiB0aGVyZSBpcyBhbiB1cGRhdGUgY29uZmxpY3Qgd2Ugd2FudCB0byByZXRyeSBhZnRlciByZXN0b3JpbmcgdGhlIHNlc3Npb25cbiAqXG4gKiBAcmV0dXJucyB7Kn0gdW5rbm93blxuICovXG5hc3luYyBmdW5jdGlvbiByZXRyeUNhbGwocGF5bG9hZDogUHJvY2Vzc0NhbGxQYXlsb2FkKSB7XG4gICAgY29uc3Qge3NlbW90dXMsIHJlbW90ZUNhbGwsIGNhbGxDb250ZXh0LCBzZXNzaW9uLCBzdWJzY3JpcHRpb25JZCwgcmVtb3RlQ2FsbElkLCByZXN0b3JlU2Vzc2lvbkNhbGxiYWNrfSA9IHBheWxvYWQ7XG5cbiAgICBpZiAocmVzdG9yZVNlc3Npb25DYWxsYmFjaykge1xuICAgICAgICByZXN0b3JlU2Vzc2lvbkNhbGxiYWNrKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHByb2Nlc3NDYWxsKHBheWxvYWQsIHRydWUpO1xufVxuXG4vKipcbiAqIERldGVybWluZSB3aGF0IG9iamVjdHMgY2hhbmdlZCBhbmQgcGFzcyB0aGlzIHRvIHRoZSBwcmVTZXJ2ZXJDYWxsIG1ldGhvZCBvbiB0aGUgY29udHJvbGxlclxuICpcbiAqIEBwYXJhbSBwYXlsb2FkXG4gKiBAcGFyYW0gIGZvcmNldXBkYXRlIHVua25vd25cbiAqXG4gKiBAcmV0dXJucyAgdW5rbm93blxuICovXG5hc3luYyBmdW5jdGlvbiBwcmVDYWxsSG9vayhwYXlsb2FkOiBQcm9jZXNzQ2FsbFBheWxvYWQsIGZvcmNldXBkYXRlPzogYm9vbGVhbik6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3Qge3NlbW90dXMsIHJlbW90ZUNhbGwsIHNlc3Npb24sIGNhbGxDb250ZXh0LCBIVFRQT2Jqc30gPSBwYXlsb2FkO1xuICAgIGNvbnN0IGZ1bmN0aW9uTmFtZSA9IHByZUNhbGxIb29rLm5hbWU7XG4gICAgc2Vtb3R1cy5sb2dnZXIuaW5mbyhcbiAgICAgICAge1xuICAgICAgICAgICAgbW9kdWxlOiBtb2R1bGVOYW1lLFxuICAgICAgICAgICAgZnVuY3Rpb246IGZ1bmN0aW9uTmFtZSxcbiAgICAgICAgICAgIGNhdGVnb3J5OiAnbWlsZXN0b25lJyxcbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICBhY3Rpdml0eTogJ3ByZVNlcnZlckNhbGwnLFxuICAgICAgICAgICAgICAgIGNhbGw6IHJlbW90ZUNhbGwubmFtZSxcbiAgICAgICAgICAgICAgICBzZXF1ZW5jZTogcmVtb3RlQ2FsbC5zZXF1ZW5jZVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgKTtcblxuICAgIGlmIChzZW1vdHVzLmNvbnRyb2xsZXIgJiYgc2Vtb3R1cy5jb250cm9sbGVyLnByZVNlcnZlckNhbGwpIHtcbiAgICAgICAgbGV0IGNoYW5nZXMgPSB7fTtcblxuICAgICAgICBmb3IgKHZhciBvYmpJZCBpbiBKU09OLnBhcnNlKHJlbW90ZUNhbGwuY2hhbmdlcykpIHtcbiAgICAgICAgICAgIGNoYW5nZXNbc2Vtb3R1cy5fX2RpY3Rpb25hcnlfX1tvYmpJZC5yZXBsYWNlKC9bXi1dKi0vLCAnJykucmVwbGFjZSgvLS4qLywgJycpXS5fX25hbWVfX10gPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IHJlbW90ZU9iamVjdCA9IHNlc3Npb24ub2JqZWN0c1tyZW1vdGVDYWxsLmlkXTtcblxuICAgICAgICAvLyBOZWVkIHRvIGRvdWJsZSBjaGVjayBpZiBub3QgaW4gc2Vzc2lvbiwgd2hhdCB0aGUgdGVtcGxhdGUgaXMuXG4gICAgICAgIGxldCByZW1vdGVUZW1wbGF0ZSA9IHNlbW90dXMuX19kaWN0aW9uYXJ5X19bcmVtb3RlQ2FsbC5pZC5yZXBsYWNlKC9bXi1dKi0vLCAnJykucmVwbGFjZSgvLS4qLywgJycpXTtcbiAgICAgICAgbGV0IGlzUHVibGljID0gZmFsc2U7XG5cbiAgICAgICAgaWYgKHJlbW90ZU9iamVjdCkge1xuICAgICAgICAgICAgaXNQdWJsaWMgPSBzZW1vdHVzLnJvbGUgPT09ICdzZXJ2ZXInICYmIHJlbW90ZU9iamVjdFtyZW1vdGVDYWxsLm5hbWVdICYmIHJlbW90ZU9iamVjdFtyZW1vdGVDYWxsLm5hbWVdLnJlbW90ZVB1YmxpYztcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChyZW1vdGVUZW1wbGF0ZSkge1xuICAgICAgICAgICAgLy8gSWYgdGhlIGNsYXNzIGRvZXNuJ3QgZXhpc3QsIHdlIHNob3VsZCBnZXQgdGhlIHJlbW90ZSBmdW5jdGlvbiBmcm9tIHRoZSBwcm90b3R5cGVcbiAgICAgICAgICAgIGlzUHVibGljID0gc2Vtb3R1cy5yb2xlID09PSAnc2VydmVyJyAmJiByZW1vdGVUZW1wbGF0ZS5wcm90b3R5cGVbcmVtb3RlQ2FsbC5uYW1lXSAmJiByZW1vdGVUZW1wbGF0ZS5wcm90b3R5cGVbcmVtb3RlQ2FsbC5uYW1lXS5yZW1vdGVQdWJsaWM7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBzZW1vdHVzLmxvZ2dlci5lcnJvcih7XG4gICAgICAgICAgICAgICAgbW9kdWxlOiBtb2R1bGVOYW1lLFxuICAgICAgICAgICAgICAgIGZ1bmN0aW9uOiBmdW5jdGlvbk5hbWUsXG4gICAgICAgICAgICAgICAgY2F0ZWdvcnk6ICdtaWxlc3RvbmUnLFxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICdDb3VsZCBub3QgZmluZCB0ZW1wbGF0ZSBmb3IgJyArIG9iaklkLFxuICAgICAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICAgICAgYWN0aXZpdHk6ICdwcmVTZXJ2ZXJDYWxsJyxcbiAgICAgICAgICAgICAgICAgICAgY2FsbDogcmVtb3RlQ2FsbC5uYW1lLFxuICAgICAgICAgICAgICAgICAgICBzZXF1ZW5jZTogcmVtb3RlQ2FsbC5zZXF1ZW5jZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHNlbW90dXMuY29udHJvbGxlci5wcmVTZXJ2ZXJDYWxsLmNhbGwoXG4gICAgICAgICAgICBzZW1vdHVzLmNvbnRyb2xsZXIsXG4gICAgICAgICAgICByZW1vdGVDYWxsLmNoYW5nZXMubGVuZ3RoID4gMixcbiAgICAgICAgICAgIGNoYW5nZXMsXG4gICAgICAgICAgICBjYWxsQ29udGV4dCxcbiAgICAgICAgICAgIGZvcmNldXBkYXRlLFxuICAgICAgICAgICAgcmVtb3RlQ2FsbC5uYW1lLFxuICAgICAgICAgICAgcmVtb3RlQ2FsbCxcbiAgICAgICAgICAgIGlzUHVibGljLFxuICAgICAgICAgICAgSFRUUE9ianNcbiAgICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG59XG5cbi8qKlxuICogQXBwbHkgY2hhbmdlcyBpbiB0aGUgbWVzc2FnZSBhbmQgdGhlbiB2YWxpZGF0ZSB0aGUgY2FsbC4gIFRocm93IFwiU3luYyBFcnJvclwiIGlmIGNoYW5nZXMgY2FuJ3QgYmUgYXBwbGllZFxuICpcbiAqIEByZXR1cm5zIHt1bmtub3dufSB1bmtub3duXG4gKi9cbmZ1bmN0aW9uIGFwcGx5Q2hhbmdlc0FuZFZhbGlkYXRlQ2FsbChwYXlsb2FkOiBQcm9jZXNzQ2FsbFBheWxvYWQpOiBib29sZWFuIHtcbiAgICBjb25zdCB7c2Vtb3R1cywgcmVtb3RlQ2FsbCwgY2FsbENvbnRleHQsIHNlc3Npb24sIHN1YnNjcmlwdGlvbklkLCByZW1vdGVDYWxsSWQsIHJlc3RvcmVTZXNzaW9uQ2FsbGJhY2t9ID0gcGF5bG9hZDtcbiAgICBjb25zdCBmdW5jdGlvbk5hbWUgPSBhcHBseUNoYW5nZXNBbmRWYWxpZGF0ZUNhbGwubmFtZTtcblxuICAgIHNlbW90dXMubG9nZ2VyLmluZm8oXG4gICAgICAgIHtcbiAgICAgICAgICAgIG1vZHVsZTogbW9kdWxlTmFtZSxcbiAgICAgICAgICAgIGZ1bmN0aW9uOiBmdW5jdGlvbk5hbWUsXG4gICAgICAgICAgICBjYXRlZ29yeTogJ21pbGVzdG9uZScsXG4gICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgYWN0aXZpdHk6ICdhcHBseUNoYW5nZXNBbmRWYWxpZGF0ZUNhbGwnLFxuICAgICAgICAgICAgICAgIGNhbGw6IHJlbW90ZUNhbGwubmFtZSxcbiAgICAgICAgICAgICAgICBzZXF1ZW5jZTogcmVtb3RlQ2FsbC5zZXF1ZW5jZSxcbiAgICAgICAgICAgICAgICByZW1vdGVDYWxsSWQ6IHJlbW90ZUNhbGwuaWRcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICk7XG5cbiAgICBsZXQgY2hhbmdlcyA9IEpTT04ucGFyc2UocmVtb3RlQ2FsbC5jaGFuZ2VzKTtcblxuICAgIGNvbnN0IHJlcyA9IHNlbW90dXMuX2FwcGx5Q2hhbmdlcyhjaGFuZ2VzLCBzZW1vdHVzLnJvbGUgPT09ICdjbGllbnQnLCBzdWJzY3JpcHRpb25JZCwgY2FsbENvbnRleHQpO1xuICAgIGlmIChyZXMpIHtcbiAgICAgICAgY29uc3Qgb2JqID0gc2Vzc2lvbi5vYmplY3RzW3JlbW90ZUNhbGwuaWRdO1xuXG4gICAgICAgIGlmICghb2JqKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBmaW5kIG9iamVjdCBmb3IgcmVtb3RlIGNhbGwgJHtyZW1vdGVDYWxsLmlkfWApO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gY2hlY2sgdG8gc2VlIGlmIHRoaXMgZnVuY3Rpb24gaXMgc3VwcG9zZWQgdG8gYmUgY2FsbGVkIGRpcmVjdGx5IGZyb20gY2xpZW50XG4gICAgICAgIGlmIChvYmouX19wcm90b19fW3JlbW90ZUNhbGwubmFtZV0uX19vbl9fICE9PSAnc2VydmVyJykge1xuICAgICAgICAgICAgdGhyb3cgJ0ludmFsaWQgRnVuY3Rpb24gQ2FsbDsgbm90IGFuIEFQSSBmdW5jdGlvbic7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc2Vtb3R1cy5yb2xlID09PSAnc2VydmVyJyAmJiBvYmoudmFsaWRhdGVTZXJ2ZXJDYWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gb2JqLnZhbGlkYXRlU2VydmVyQ2FsbC5jYWxsKG9iaiwgcmVtb3RlQ2FsbC5uYW1lLCBjYWxsQ29udGV4dCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyAnU3luYyBFcnJvcic7XG4gICAgfVxufVxuXG4vKipcbiAqIEFwcGx5IGZ1bmN0aW9uIHNwZWNpZmljIGN1c3RvbSBzZXJ2ZXJTaWRlIHZhbGlkYXRpb24gZnVuY3Rpb25zXG4gKlxuICogQHBhcmFtIHNlbW90dXNcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gaXNWYWxpZCAtIFJlc3VsdCBvZiBwcmV2aW91cyB2YWxpZGF0aW9uIHN0ZXAgKGFwcGx5Q2hhbmdlc0FuZFZhbGlkYXRlQ2FsbClcbiAqIEBwYXJhbSBzZXNzaW9uXG4gKiBAcGFyYW0gcmVtb3RlQ2FsbFxuICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgcGFzc2VkIGZ1bmN0aW9uXG4gKi9cbmZ1bmN0aW9uIGN1c3RvbVZhbGlkYXRpb24ocGF5bG9hZDogUHJvY2Vzc0NhbGxQYXlsb2FkLCBpc1ZhbGlkOiBib29sZWFuKTogYm9vbGVhbiB7XG4gICAgY29uc3Qge3NlbW90dXMsIHJlbW90ZUNhbGwsIGNhbGxDb250ZXh0LCBzZXNzaW9uLCBzdWJzY3JpcHRpb25JZCwgcmVtb3RlQ2FsbElkLCByZXN0b3JlU2Vzc2lvbkNhbGxiYWNrfSA9IHBheWxvYWQ7XG4gICAgY29uc3QgZnVuY3Rpb25OYW1lID0gY3VzdG9tVmFsaWRhdGlvbi5uYW1lO1xuXG4gICAgbGV0IGxvZ2dlck9iamVjdCA9IHtcbiAgICAgICAgbW9kdWxlOiBtb2R1bGVOYW1lLFxuICAgICAgICBmdW5jdGlvbjogZnVuY3Rpb25OYW1lLFxuICAgICAgICBjYXRlZ29yeTogJ21pbGVzdG9uZScsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIGFjdGl2aXR5OiAnY3VzdG9tVmFsaWRhdGlvbicsXG4gICAgICAgICAgICBjYWxsOiByZW1vdGVDYWxsLm5hbWUsXG4gICAgICAgICAgICBzZXF1ZW5jZTogcmVtb3RlQ2FsbC5zZXF1ZW5jZSxcbiAgICAgICAgICAgIHJlbW90ZUNhbGxJZDogcmVtb3RlQ2FsbC5pZFxuICAgICAgICB9XG4gICAgfTtcblxuICAgIGxldCByZW1vdGVPYmplY3QgPSBzZXNzaW9uLm9iamVjdHNbcmVtb3RlQ2FsbC5pZF07XG5cbiAgICBzZW1vdHVzLmxvZ2dlci5pbmZvKGxvZ2dlck9iamVjdCk7XG5cbiAgICBpZiAoIWlzVmFsaWQpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0gZWxzZSBpZiAoc2Vtb3R1cy5yb2xlID09PSAnc2VydmVyJyAmJiByZW1vdGVPYmplY3RbcmVtb3RlQ2FsbC5uYW1lXS5zZXJ2ZXJWYWxpZGF0aW9uKSB7XG4gICAgICAgIGxldCBhcmdzID0gc2Vtb3R1cy5fZXh0cmFjdEFyZ3VtZW50cyhyZW1vdGVDYWxsKTtcbiAgICAgICAgYXJncy51bnNoaWZ0KHJlbW90ZU9iamVjdCk7XG5cbiAgICAgICAgcmV0dXJuIHJlbW90ZU9iamVjdFtyZW1vdGVDYWxsLm5hbWVdLnNlcnZlclZhbGlkYXRpb24uYXBwbHkobnVsbCwgYXJncyk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxufVxuXG4vKipcbiAqIElmIHRoZSBjaGFuZ2VzIGNvdWxkIGJlIGFwcGxpZWQgYW5kIHRoZSB2YWxpZGF0aW9uIHdhcyBzdWNjZXNzZnVsIGNhbGwgdGhlIG1ldGhvZFxuICpcbiAqIEBwYXJhbSBzZW1vdHVzXG4gKiBAcGFyYW0ge2Jvb2xlYW59IGlzVmFsaWQgLSB0YWtlcyBhIGZsYWcgaWYgdGhlIGNhbGwgaXMgdmFsaWQgb3Igbm90LCBpZiBpdCBpcyB0aGVuIHdlIHByb2NlZWQgbm9ybWFsbHksXG4gKiBvdGhlcndpc2UsIHdlIHRocm93IGFuIGVycm9yIGFuZCBzdG9wIGV4ZWN1dGlvblxuICpcbiAqIEBwYXJhbSBzZXNzaW9uXG4gKiBAcGFyYW0gcmVtb3RlQ2FsbFxuICogQHJldHVybnMge3Vua25vd259IHVua25vd25cbiAqL1xuYXN5bmMgZnVuY3Rpb24gY2FsbElmVmFsaWQocGF5bG9hZDogUHJvY2Vzc0NhbGxQYXlsb2FkLCBpc1ZhbGlkOiBib29sZWFuKSB7XG4gICAgY29uc3Qge3NlbW90dXMsIHJlbW90ZUNhbGwsIGNhbGxDb250ZXh0LCBzZXNzaW9uLCBzdWJzY3JpcHRpb25JZCwgcmVtb3RlQ2FsbElkLCByZXN0b3JlU2Vzc2lvbkNhbGxiYWNrfSA9IHBheWxvYWQ7XG4gICAgY29uc3QgZnVuY3Rpb25OYW1lID0gY2FsbElmVmFsaWQubmFtZTtcblxuICAgIGxldCBsb2dnZXJPYmplY3QgPSB7XG4gICAgICAgIG1vZHVsZTogbW9kdWxlTmFtZSxcbiAgICAgICAgZnVuY3Rpb246IGZ1bmN0aW9uTmFtZSxcbiAgICAgICAgY2F0ZWdvcnk6ICdtaWxlc3RvbmUnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICBhY3Rpdml0eTogJ2NhbGxJZlZhbGlkJyxcbiAgICAgICAgICAgIGNhbGw6IHJlbW90ZUNhbGwubmFtZSxcbiAgICAgICAgICAgIHNlcXVlbmNlOiByZW1vdGVDYWxsLnNlcXVlbmNlLFxuICAgICAgICAgICAgcmVtb3RlQ2FsbElkOiByZW1vdGVDYWxsLmlkXG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgc2Vtb3R1cy5sb2dnZXIuaW5mbyhsb2dnZXJPYmplY3QpO1xuXG4gICAgbGV0IG9iaiA9IHNlc3Npb24ub2JqZWN0c1tyZW1vdGVDYWxsLmlkXTtcblxuICAgIGlmICghb2JqW3JlbW90ZUNhbGwubmFtZV0pIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKHJlbW90ZUNhbGwubmFtZSArICcgZnVuY3Rpb24gZG9lcyBub3QgZXhpc3QuJyk7XG4gICAgfVxuXG4gICAgaWYgKCFpc1ZhbGlkICYmIHJlbW90ZUNhbGwgJiYgcmVtb3RlQ2FsbC5uYW1lKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihyZW1vdGVDYWxsLm5hbWUgKyAnIHJlZnVzZWQnKTtcbiAgICB9XG5cbiAgICBsZXQgYXJncyA9IHNlbW90dXMuX2V4dHJhY3RBcmd1bWVudHMocmVtb3RlQ2FsbCk7XG5cbiAgICByZXR1cm4gb2JqW3JlbW90ZUNhbGwubmFtZV0uYXBwbHkob2JqLCBhcmdzKTtcbn1cblxuLyoqXG4gKiBMZXQgdGhlIGNvbnRyb2xsZXIga25vdyB0aGF0IHRoZSBtZXRob2Qgd2FzIGNvbXBsZXRlZCBhbmQgZ2l2ZSBpdCBhIGNoYW5jZSB0byBjb21taXQgY2hhbmdlc1xuICpcbiAqIEBwYXJhbSBwYXlsb2FkXG4gKiBAcGFyYW0gIHJldHVyblZhbHVlIHVua25vd25cbiAqXG4gKiBAcmV0dXJuc1xuICovXG5hc3luYyBmdW5jdGlvbiBwb3N0Q2FsbEhvb2socGF5bG9hZDogUHJvY2Vzc0NhbGxQYXlsb2FkLCByZXR1cm5WYWx1ZSkge1xuICAgIGNvbnN0IHtzZW1vdHVzLCByZW1vdGVDYWxsLCBjYWxsQ29udGV4dCwgSFRUUE9ianN9ID0gcGF5bG9hZDtcblxuICAgIGlmIChzZW1vdHVzLmNvbnRyb2xsZXIgJiYgc2Vtb3R1cy5jb250cm9sbGVyLnBvc3RTZXJ2ZXJDYWxsKSB7XG4gICAgICAgIGNvbnN0IGhhc0NoYW5nZXM6IGJvb2xlYW4gPSByZW1vdGVDYWxsLmNoYW5nZXMubGVuZ3RoID4gMjtcbiAgICAgICAgYXdhaXQgc2Vtb3R1cy5jb250cm9sbGVyLnBvc3RTZXJ2ZXJDYWxsLmNhbGwoc2Vtb3R1cy5jb250cm9sbGVyLCBoYXNDaGFuZ2VzLCBjYWxsQ29udGV4dCwgc2Vtb3R1cy5jaGFuZ2VTdHJpbmcsIEhUVFBPYmpzKTtcbiAgICB9XG4gICAgcmV0dXJuIHJldHVyblZhbHVlO1xufVxuXG4vKipcbiAqIFBhY2thZ2UgdXAgYW55IGNoYW5nZXMgcmVzdWx0aW5nIGZyb20gdGhlIGV4ZWN1dGlvbiBhbmQgc2VuZCB0aGVtIGJhY2sgaW4gdGhlIG1lc3NhZ2UsIGNsZWFyaW5nXG4gKiBvdXIgY2hhbmdlIHF1ZXVlIHRvIGFjY3VtdWxhdGUgbW9yZSBjaGFuZ2VzIGZvciB0aGUgbmV4dCBjYWxsXG4gKlxuICogQHBhcmFtIHNlbW90dXNcbiAqIEBwYXJhbSByZW1vdGVDYWxsXG4gKiBAcGFyYW0gcmVtb3RlQ2FsbElkXG4gKiBAcGFyYW0ge3Vua25vd259IHJldCB1bmtub3duXG4gKi9cbmZ1bmN0aW9uIHBvc3RDYWxsU3VjY2VzcyhwYXlsb2FkOiBQcm9jZXNzQ2FsbFBheWxvYWQsIHJldCk6IHZvaWQge1xuICAgIGNvbnN0IHtzZW1vdHVzLCByZW1vdGVDYWxsLCBjYWxsQ29udGV4dCwgc2Vzc2lvbiwgcmVtb3RlQ2FsbElkfSA9IHBheWxvYWQ7XG4gICAgY29uc3QgZnVuY3Rpb25OYW1lID0gcG9zdENhbGxTdWNjZXNzLm5hbWU7XG5cbiAgICBzZW1vdHVzLmxvZ2dlci5pbmZvKFxuICAgICAgICB7XG4gICAgICAgICAgICBtb2R1bGU6IG1vZHVsZU5hbWUsXG4gICAgICAgICAgICBmdW5jdGlvbjogZnVuY3Rpb25OYW1lLFxuICAgICAgICAgICAgY2F0ZWdvcnk6ICdtaWxlc3RvbmUnLFxuICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgIGFjdGl2aXR5OiAncG9zdENhbGwuc3VjY2VzcycsXG4gICAgICAgICAgICAgICAgY2FsbDogcmVtb3RlQ2FsbC5uYW1lLFxuICAgICAgICAgICAgICAgIGNhbGxUaW1lOiBsb2dUaW1lKGNhbGxDb250ZXh0KSxcbiAgICAgICAgICAgICAgICBzZXF1ZW5jZTogcmVtb3RlQ2FsbC5zZXF1ZW5jZVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgKTtcblxuICAgIHBhY2thZ2VDaGFuZ2VzKHNlbW90dXMsIHNlc3Npb24se1xuICAgICAgICB0eXBlOiAncmVzcG9uc2UnLFxuICAgICAgICBzeW5jOiB0cnVlLFxuICAgICAgICB2YWx1ZTogSlNPTi5zdHJpbmdpZnkoc2Vtb3R1cy5fdG9UcmFuc3BvcnQocmV0KSksXG4gICAgICAgIG5hbWU6IHJlbW90ZUNhbGwubmFtZSxcbiAgICAgICAgcmVtb3RlQ2FsbElkOiByZW1vdGVDYWxsSWRcbiAgICB9KTtcbn1cblxuLyoqXG4gKiBIZWxwZXIgZnVuY3Rpb24gdG8gaWRlbnRpZnkgaWYgdGhlcmUncyBhIHBvc3RTZXJ2ZXJFcnJvckhhbmRsZXIgY2FsbGJhY2sgb24gdGhlIGJhc2UgY29udHJvbGxlclxuICogSWYgdGhlcmUgaXMsIHdlIGV4ZWN1dGUgdGhlIGhhbmRsZXIsIGFuZCBpZiB3ZSBjYXRjaCBhbiBlcnJvciBpbiB0aGUgaGFuZGxlciwgd2UgcHJvcG9nYXRlIGl0IHVwIHRvIHRoZSBsb2dnZXIuXG4gKiBAcGFyYW0gbG9nZ2VyXG4gKiBAcGFyYW0geyp9IGNvbnRyb2xsZXJcbiAqIEBwYXJhbSB0eXBlXG4gKiBAcGFyYW0gcmVtb3RlQ2FsbFxuICogQHBhcmFtIHJlbW90ZUNhbGxJZFxuICogQHBhcmFtIGNhbGxDb250ZXh0XG4gKiBAcGFyYW0gY2hhbmdlU3RyaW5nXG4gKiBAcGFyYW0gc2Vzc2lvblxuICovXG5hc3luYyBmdW5jdGlvbiByZXNvbHZlRXJyb3JIYW5kbGVyKGxvZ2dlciwgY29udHJvbGxlcjogYW55LCB0eXBlLCByZW1vdGVDYWxsOiBSZW1vdGVDYWxsLCByZW1vdGVDYWxsSWQsIGNhbGxDb250ZXh0OiBDYWxsQ29udGV4dCwgY2hhbmdlU3RyaW5nLCBzZXNzaW9uOiBTZXNzaW9uKSB7XG4gICAgY29uc3QgZnVuY3Rpb25OYW1lID0gcmVzb2x2ZUVycm9ySGFuZGxlci5uYW1lO1xuICAgIGlmIChjb250cm9sbGVyICYmIGNvbnRyb2xsZXIucG9zdFNlcnZlckVycm9ySGFuZGxlcikge1xuICAgICAgICBsZXQgZXJyb3JUeXBlID0gdHlwZTtcbiAgICAgICAgbGV0IHJlbW90ZUNhbGxOYW1lID0gcmVtb3RlQ2FsbC5uYW1lO1xuICAgICAgICBsZXQgb2JqID0gdW5kZWZpbmVkO1xuICAgICAgICBpZiAoc2Vzc2lvbi5vYmplY3RzW3JlbW90ZUNhbGwuaWRdKSB7XG4gICAgICAgICAgICBvYmogPSBzZXNzaW9uLm9iamVjdHNbcmVtb3RlQ2FsbC5pZF07XG4gICAgICAgIH1cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGF3YWl0IGNvbnRyb2xsZXIucG9zdFNlcnZlckVycm9ySGFuZGxlci5jYWxsKGNvbnRyb2xsZXIsIGVycm9yVHlwZSwgcmVtb3RlQ2FsbElkLCBvYmosIHJlbW90ZUNhbGxOYW1lLCBjYWxsQ29udGV4dCwgY2hhbmdlU3RyaW5nKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGxldCBsb2dCb2R5ID0ge1xuICAgICAgICAgICAgICAgIG1vZHVsZTogbW9kdWxlTmFtZSxcbiAgICAgICAgICAgICAgICBmdW5jdGlvbjogZnVuY3Rpb25OYW1lLFxuICAgICAgICAgICAgICAgIGNhdGVnb3J5OiAnbWlsZXN0b25lJyxcbiAgICAgICAgICAgICAgICBlcnJvcjogZXJyb3IsXG4gICAgICAgICAgICAgICAgbWVzc2FnZTogJ1VzZXIgZGVmaW5lZCBwb3N0U2VydmVyRXJyb3JIYW5kbGVyIHRocmV3IGFuIGVycm9yJyxcbiAgICAgICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgICAgIGFjdGl2aXR5OiAncG9zdENhbGwucmVzb2x2ZUVycm9ySGFuZGxlcicsXG4gICAgICAgICAgICAgICAgICAgIGNhbGw6IHJlbW90ZUNhbGwubmFtZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBsb2dnZXIuZXJyb3IobG9nQm9keSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qKlxuICogSGFuZGxlIGVycm9ycyBieSByZXR1cm5pbmcgYW4gYXByb3ByaWF0ZSBtZXNzYWdlLiAgSW4gYWxsIGNhc2VzIGNoYW5nZXMgc2VudCBiYWNrIHRob3VnaCB0aGV5XG4gKlxuICogQHBhcmFtIHNlbW90dXNcbiAqIEBwYXJhbSByZW1vdGVDYWxsXG4gKiBAcGFyYW0gY2FsbENvbnRleHRcbiAqIEBwYXJhbSBzZXNzaW9uXG4gKiBAcGFyYW0ge3Vua25vd259IGVyciB1bmtub3duXG4gKlxuICogQHJldHVybnMge3Vua25vd259IEEgUHJvbWlzZVxuICovXG5hc3luYyBmdW5jdGlvbiBwb3N0Q2FsbEZhaWx1cmUocGF5bG9hZDogUHJvY2Vzc0NhbGxQYXlsb2FkLCBlcnIpIHtcbiAgICBjb25zdCB7c2Vtb3R1cywgcmVtb3RlQ2FsbCwgY2FsbENvbnRleHQsIHNlc3Npb24sIHN1YnNjcmlwdGlvbklkLCByZW1vdGVDYWxsSWQsIHJlc3RvcmVTZXNzaW9uQ2FsbGJhY2t9ID0gcGF5bG9hZDtcblxuICAgIGxldCBsb2dTdHJpbmcgPSAnJztcblxuICAgIGxldCBwYWNrYWdlQ2hhbmdlc1BheWxvYWQgPSB7fTtcblxuICAgIGxldCB1cGRhdGVDb25mbGljdFJldHJ5ID0gZmFsc2U7XG5cbiAgICBpZiAoZXJyID09PSAnU3luYyBFcnJvcicpIHtcbiAgICAgICAgcG9zdENhbGxFcnJvckxvZyhzZW1vdHVzLmxvZ2dlciwgJ3Bvc3RDYWxsLnN5bmNFcnJvcicsIHVuZGVmaW5lZCwgJ2Vycm9yJywgcmVtb3RlQ2FsbC5uYW1lLCByZW1vdGVDYWxsLCBjYWxsQ29udGV4dCk7XG4gICAgICAgIHBhY2thZ2VDaGFuZ2VzUGF5bG9hZCA9IHtcbiAgICAgICAgICAgIHR5cGU6ICdyZXNwb25zZScsXG4gICAgICAgICAgICBzeW5jOiBmYWxzZSxcbiAgICAgICAgICAgIGNoYW5nZXM6ICcnXG4gICAgICAgIH07XG4gICAgfSBlbHNlIGlmIChlcnIubWVzc2FnZSA9PSAnVXBkYXRlIENvbmZsaWN0Jykge1xuICAgICAgICAvLyBOb3QgdGhpcyBtYXkgYmUgY2F1Z2h0IGluIHRoZSB0cmFuc3BvcnQgKGUuZy4gQW1vcnBoaWMpIGFuZCByZXRyaWVkKVxuXG4gICAgICAgIC8vIGluY3JlbWVudCBjYWxsQ29udGV4dC5yZXRyaWVzIGFmdGVyIGNoZWNraW5nIGlmIDwgMy4gU2hvdWxkIHJldHJ5IDMgdGltZXMuXG4gICAgICAgIGlmIChjYWxsQ29udGV4dC5yZXRyaWVzKysgPCAzKSB7XG4gICAgICAgICAgICBwb3N0Q2FsbEVycm9yTG9nKHNlbW90dXMubG9nZ2VyLCAncG9zdENhbGwudXBkYXRlQ29uZmxpY3QnLCB1bmRlZmluZWQsICd3YXJuJywgcmVtb3RlQ2FsbC5uYW1lLCByZW1vdGVDYWxsLCBjYWxsQ29udGV4dCk7XG4gICAgICAgICAgICB1cGRhdGVDb25mbGljdFJldHJ5ID0gdHJ1ZTtcbiAgICAgICAgICAgIC8vIFRoZSBmb2xsb3dpbmcgYXNzaWdubWVudCBpcyBvbmx5IHVzZWQgZm9yIHRoZSBlcnJvciBoYW5kbGVyXG4gICAgICAgICAgICBwYWNrYWdlQ2hhbmdlc1BheWxvYWQgPSB7XG4gICAgICAgICAgICAgICAgdHlwZTogJ3JldHJ5J1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHBvc3RDYWxsRXJyb3JMb2coc2Vtb3R1cy5sb2dnZXIsICdwb3N0Q2FsbC51cGRhdGVDb25mbGljdCcsIHVuZGVmaW5lZCwgJ2Vycm9yJywgcmVtb3RlQ2FsbC5uYW1lLCByZW1vdGVDYWxsLCBjYWxsQ29udGV4dCk7XG4gICAgICAgICAgICBwYWNrYWdlQ2hhbmdlc1BheWxvYWQgPSB7XG4gICAgICAgICAgICAgICAgdHlwZTogJ3JldHJ5JyxcbiAgICAgICAgICAgICAgICBzeW5jOiBmYWxzZVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAgIGlmICghKGVyciBpbnN0YW5jZW9mIEVycm9yKSkge1xuICAgICAgICAgICAgcG9zdENhbGxFcnJvckxvZyhzZW1vdHVzLmxvZ2dlciwgJ3Bvc3RDYWxsLmVycm9yJywgSlNPTi5zdHJpbmdpZnkoZXJyKSwgJ2luZm8nLCByZW1vdGVDYWxsLm5hbWUsIHJlbW90ZUNhbGwsIGNhbGxDb250ZXh0KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChlcnIuc3RhY2spIHtcbiAgICAgICAgICAgICAgICBsb2dTdHJpbmcgPSAnRXhjZXB0aW9uIGluICcgKyByZW1vdGVDYWxsLm5hbWUgKyAnIC0gJyArIGVyci5tZXNzYWdlICsgKCcgJyArIGVyci5zdGFjayk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGxvZ1N0cmluZyA9ICdFeGNlcHRpb24gaW4gJyArIHJlbW90ZUNhbGwubmFtZSArICcgLSAnICsgZXJyLm1lc3NhZ2U7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHBvc3RDYWxsRXJyb3JMb2coc2Vtb3R1cy5sb2dnZXIsICdwb3N0Q2FsbC5leGNlcHRpb24nLCBlcnIubWVzc2FnZSwgJ2Vycm9yJywgbG9nU3RyaW5nLCByZW1vdGVDYWxsLCBjYWxsQ29udGV4dCk7XG4gICAgICAgIH1cblxuICAgICAgICBwYWNrYWdlQ2hhbmdlc1BheWxvYWQgPSB7XG4gICAgICAgICAgICB0eXBlOiAnZXJyb3InLFxuICAgICAgICAgICAgc3luYzogdHJ1ZSxcbiAgICAgICAgICAgIHZhbHVlOiBnZXRFcnJvcihlcnIpLFxuICAgICAgICAgICAgbmFtZTogcmVtb3RlQ2FsbC5uYW1lXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgT2JqZWN0LmFzc2lnbihwYWNrYWdlQ2hhbmdlc1BheWxvYWQsIHtyZW1vdGVDYWxsSWQ6IHJlbW90ZUNhbGxJZH0pO1xuXG4gICAgYXdhaXQgcmVzb2x2ZUVycm9ySGFuZGxlcihcbiAgICAgICAgc2Vtb3R1cy5sb2dnZXIsXG4gICAgICAgIHNlbW90dXMuY29udHJvbGxlcixcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICBwYWNrYWdlQ2hhbmdlc1BheWxvYWQudHlwZSxcbiAgICAgICAgcmVtb3RlQ2FsbCxcbiAgICAgICAgcmVtb3RlQ2FsbElkLFxuICAgICAgICBjYWxsQ29udGV4dCxcbiAgICAgICAgc2Vtb3R1cy5jaGFuZ2VTdHJpbmcsXG4gICAgICAgIHNlc3Npb25cbiAgICApO1xuXG4gICAgaWYgKHVwZGF0ZUNvbmZsaWN0UmV0cnkpIHtcbiAgICAgICAgYXdhaXQgZGVsYXkoY2FsbENvbnRleHQucmV0cmllcyAqIDEwMDApO1xuICAgICAgICByZXR1cm4gcmV0cnlDYWxsKHBheWxvYWQpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBwYWNrYWdlQ2hhbmdlcyhzZW1vdHVzLCBzZXNzaW9uLCBwYWNrYWdlQ2hhbmdlc1BheWxvYWQpO1xuICAgIH1cbn1cblxuLyoqXG4gKiBEZWFsIHdpdGggY2hhbmdlcyBnb2luZyBiYWNrIHRvIHRoZSBjYWxsZXIgLSBBY3R1YWxseSBub3QgQXN5bmMhXG4gKlxuICogQHBhcmFtIHNlbW90dXNcbiAqIEBwYXJhbSBzZXNzaW9uXG4gKiBAcGFyYW0ge3Vua25vd259IG1lc3NhZ2UgdW5rbm93blxuICovXG5mdW5jdGlvbiBwYWNrYWdlQ2hhbmdlcyhzZW1vdHVzOiBTZW1vdHVzLCBzZXNzaW9uOiBTZXNzaW9uLCBtZXNzYWdlKSB7XG4gICAgc2Vtb3R1cy5fY29udmVydEFycmF5UmVmZXJlbmNlc1RvQ2hhbmdlcygpO1xuICAgIG1lc3NhZ2UuY2hhbmdlcyA9IEpTT04uc3RyaW5naWZ5KHNlbW90dXMuZ2V0Q2hhbmdlcygpKTtcblxuICAgIGlmIChzZW1vdHVzLm1lbVNlc3Npb24gJiYgc2Vtb3R1cy5tZW1TZXNzaW9uLnNlbW90dXMgJiYgc2Vtb3R1cy5tZW1TZXNzaW9uLnNlbW90dXMuY2FsbFN0YXJ0VGltZSkge1xuICAgICAgICBzZW1vdHVzLm1lbVNlc3Npb24uc2Vtb3R1cy5jYWxsU3RhcnRUaW1lID0gMDtcbiAgICB9XG5cbiAgICAvLyBJbnNwZWN0IGEgY29weSBvZiB0aGUgbWVzc2FnZSBvbiB0aGUgc2VydmVyIG9ubHkgYmVmb3JlIHNlbnQgb3V0LiBPbmx5IGZvciBkZWJ1ZyBwdXJwb3Nlc1xuICAgIGlmIChzZW1vdHVzLmNvbnRyb2xsZXIgJiYgc2Vtb3R1cy5jb250cm9sbGVyLmluc3BlY3RNZXNzYWdlKSB7XG4gICAgICAgIHNlbW90dXMuY29udHJvbGxlci5pbnNwZWN0TWVzc2FnZShPYmplY3QuYXNzaWduKHt9LCBtZXNzYWdlKSk7XG4gICAgfVxuXG4gICAgc2Vzc2lvbi5zZW5kTWVzc2FnZShtZXNzYWdlKTtcbiAgICBzZW1vdHVzLl9kZWxldGVDaGFuZ2VzKCk7XG4gICAgc2Vtb3R1cy5fcHJvY2Vzc1F1ZXVlKCk7XG59XG5cblxuLyoqXG4gKiAgSGVscGVyIGZ1bmN0aW9uIHRvIGxvZyBhbW9ycGhpYyBlcnJvcnMuXG4gKiBAcGFyYW0geyp9IGxvZ2dlclxuICogQHBhcmFtIHsqfSBhY3Rpdml0eVxuICogQHBhcmFtIHsqfSBtZXNzYWdlXG4gKiBAcGFyYW0geyp9IGxvZ1R5cGVcbiAqIEBwYXJhbSB7Kn0gbG9nU3RyaW5nXG4gKiBAcGFyYW0gcmVtb3RlQ2FsbFxuICogQHBhcmFtIGNhbGxDb250ZXh0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwb3N0Q2FsbEVycm9yTG9nKGxvZ2dlciwgYWN0aXZpdHksIG1lc3NhZ2UsIGxvZ1R5cGUsIGxvZ1N0cmluZywgcmVtb3RlQ2FsbDogUmVtb3RlQ2FsbCwgY2FsbENvbnRleHQ6IENhbGxDb250ZXh0KSB7XG4gICAgY29uc3QgZnVuY3Rpb25OYW1lID0gcHJvY2Vzc0NhbGwubmFtZTtcbiAgICBcbiAgICBsZXQgbG9nQm9keSA9IHtcbiAgICAgICAgbW9kdWxlOiBtb2R1bGVOYW1lLFxuICAgICAgICBmdW5jdGlvbjogZnVuY3Rpb25OYW1lLFxuICAgICAgICBjYXRlZ29yeTogJ21pbGVzdG9uZScsXG4gICAgICAgIG1lc3NhZ2U6IGxvZ1N0cmluZyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgbWVzc2FnZTogbWVzc2FnZSxcbiAgICAgICAgICAgIGFjdGl2aXR5OiBhY3Rpdml0eSxcbiAgICAgICAgICAgIGNhbGw6IHJlbW90ZUNhbGwubmFtZSxcbiAgICAgICAgICAgIGNhbGxUaW1lOiBsb2dUaW1lKGNhbGxDb250ZXh0KSxcbiAgICAgICAgICAgIHNlcXVlbmNlOiByZW1vdGVDYWxsLnNlcXVlbmNlLFxuICAgICAgICB9XG4gICAgfTtcblxuICAgIGxvZ2dlcltsb2dUeXBlXShsb2dCb2R5KTtcbn1cbiJdfQ==
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.save = exports.restore = exports.sync = exports.get = exports.remove = exports.create = void 0;
var path = require("path");
var moduleName = path.basename(__dirname) + "/" + path.basename(__filename);
var moduleName = "semotus/src/helpers/Sessions";
/**

@@ -166,2 +165,2 @@ * Obtain a session for tracking subscriptions

exports.save = save;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2Vzc2lvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaGVscGVycy9TZXNzaW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSwyQkFBNkI7QUFFN0IsSUFBTSxVQUFVLEdBQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsU0FBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBRyxDQUFDO0FBRTlFOzs7Ozs7Ozs7R0FTRztBQUNILFNBQWdCLE1BQU0sQ0FBQyxPQUFnQixFQUFFLElBQUksRUFBRSxXQUF3QixFQUFFLFNBQVM7SUFDOUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUU7UUFDbkIsT0FBTyxDQUFDLGtCQUFrQixHQUFHLENBQUMsQ0FBQztRQUMvQixPQUFPLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQztRQUMxQixPQUFPLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztLQUN6QjtJQUVELElBQUksQ0FBQyxTQUFTLEVBQUU7UUFDWixTQUFTLEdBQUcsT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFDO0tBQ3ZDO0lBRUQsT0FBTyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUU5QixPQUFPLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHO1FBQzFCLGFBQWEsRUFBRSxFQUFFO1FBQ2pCLFdBQVcsRUFBRSxXQUFXO1FBQ3hCLGtCQUFrQixFQUFFLENBQUMsQ0FBQyxXQUFXO1FBQ2pDLFdBQVcsRUFBRSxFQUFFO1FBQ2Ysa0JBQWtCLEVBQUUsRUFBRTtRQUN0Qix1QkFBdUIsRUFBRSxDQUFDO1FBQzFCLGlCQUFpQixFQUFFLENBQUM7UUFDcEIsY0FBYyxFQUFFLENBQUM7UUFDakIsa0JBQWtCLEVBQUUsQ0FBQztRQUNyQixPQUFPLEVBQUUsRUFBRTtRQUNYLFNBQVMsRUFBRSxDQUFDO1FBQ1osY0FBYyxFQUFFLElBQUksQ0FBQyx1QkFBdUI7S0FDL0MsQ0FBQztJQUVG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ZE1lc3NhZ2UsIFNlc3Npb259IGZyb20gJy4vVHlwZXMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcblxuY29uc3QgbW9kdWxlTmFtZSA9IGAke3BhdGguYmFzZW5hbWUoX19kaXJuYW1lKX0vJHtwYXRoLmJhc2VuYW1lKF9fZmlsZW5hbWUpfWA7XG5cbi8qKlxuICogT2J0YWluIGEgc2Vzc2lvbiBmb3IgdHJhY2tpbmcgc3Vic2NyaXB0aW9uc1xuICpcbiAqIEBwYXJhbSBzZW1vdHVzXG4gKiBAcGFyYW0ge3Vua25vd259IHJvbGUgdW5rbm93blxuICogQHBhcmFtIHt1bmtub3dufSBzZW5kTWVzc2FnZSB1bmtub3duXG4gKiBAcGFyYW0ge3Vua25vd259IHNlc3Npb25JZCB1bmtub3duXG4gKlxuICogQHJldHVybnMgeyp9IHVua25vd25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZShzZW1vdHVzOiBTZW1vdHVzLCByb2xlLCBzZW5kTWVzc2FnZTogU2VuZE1lc3NhZ2UsIHNlc3Npb25JZCk6IGFueSB7XG4gICAgaWYgKCFzZW1vdHVzLnNlc3Npb25zKSB7XG4gICAgICAgIHNlbW90dXMubmV4dFN1YnNjcmlwdGlvbklkID0gMDtcbiAgICAgICAgc2Vtb3R1cy5uZXh0U2Vzc2lvbklkID0gMTtcbiAgICAgICAgc2Vtb3R1cy5zZXNzaW9ucyA9IHt9O1xuICAgIH1cblxuICAgIGlmICghc2Vzc2lvbklkKSB7XG4gICAgICAgIHNlc3Npb25JZCA9IHNlbW90dXMubmV4dFNlc3Npb25JZCsrO1xuICAgIH1cblxuICAgIHNlbW90dXMuc2V0U2Vzc2lvbihzZXNzaW9uSWQpO1xuXG4gICAgc2Vtb3R1cy5zZXNzaW9uc1tzZXNzaW9uSWRdID0ge1xuICAgICAgICBzdWJzY3JpcHRpb25zOiB7fSwgLy8gQ2hhbmdlIGxpc3RlbmVyc1xuICAgICAgICBzZW5kTWVzc2FnZTogc2VuZE1lc3NhZ2UsIC8vIFNlbmQgbWVzc2FnZSBjYWxsYmFja1xuICAgICAgICBzZW5kTWVzc2FnZUVuYWJsZWQ6ICEhc2VuZE1lc3NhZ2UsXG4gICAgICAgIHJlbW90ZUNhbGxzOiBbXSwgLy8gUmVtb3RlIGNhbGxzIHF1ZXVlZCB0byBnbyBvdXRcbiAgICAgICAgcGVuZGluZ1JlbW90ZUNhbGxzOiB7fSwgLy8gUmVtb3RlIGNhbGxzIHdhaXRpbmcgZm9yIHJlc3BvbnNlXG4gICAgICAgIG5leHRQZW5kaW5nUmVtb3RlQ2FsbElkOiAxLFxuICAgICAgICBuZXh0U2F2ZVNlc3Npb25JZDogMSxcbiAgICAgICAgc2F2ZWRTZXNzaW9uSWQ6IDAsXG4gICAgICAgIG5leHRTdWJzY3JpcHRpb25JZDogMCxcbiAgICAgICAgb2JqZWN0czoge30sXG4gICAgICAgIG5leHRPYmpJZDogMSxcbiAgICAgICAgZGlzcGVuc2VOZXh0SWQ6IG51bGwgLy8gRm9yY2UgbmV4dCBvYmplY3QgSWRcbiAgICB9O1xuXG4gICAgaWYgKHJvbGUgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICBmb3IgKHZhciBpeCA9IDA7IGl4IDwgcm9sZS5sZW5ndGg7ICsraXgpIHtcbiAgICAgICAgICAgIHNlbW90dXMuc3Vic2NyaWJlKHJvbGVbaXhdKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHNlbW90dXMucm9sZSA9IHJvbGVbMV07XG4gICAgfSBlbHNlIHtcbiAgICAgICAgc2Vtb3R1cy5zdWJzY3JpYmUocm9sZSk7XG4gICAgICAgIHNlbW90dXMucm9sZSA9IHJvbGU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNlc3Npb25JZDtcbn1cblxuXG4vKipcbiAqIFJlbW92ZSB0aGUgc2Vzc2lvbiBmcm9tIHRoZSBzZXNzaW9ucyBtYXAsIHJlamVjdGluZyBhbnkgb3V0c3RhbmRpbmcgcHJvbWlzZXNcbiAqIFdBUk5JTkc6IEFzeW5jIHNpZGUgZWZmZWN0c1xuICogQHBhcmFtIHNlbW90dXNcbiAqIEBwYXJhbSB7dW5rbm93bn0gc2Vzc2lvbklkIHVua25vd25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZShzZW1vdHVzOiBTZW1vdHVzLCBzZXNzaW9uSWQ6IHN0cmluZyB8IG51bWJlcikge1xuICAgIGxldCBzZXNzaW9uID0gZ2V0KHNlbW90dXMsIHNlc3Npb25JZCk7XG5cbiAgICBmb3IgKHZhciBjYWxscyBpbiBzZXNzaW9uLnJlbW90ZUNhbGxzKSB7XG4gICAgICAgIHNlc3Npb24ucmVtb3RlQ2FsbHNbY2FsbHNdLmRlZmVycmVkLnJlamVjdCh7Y29kZTogJ3Jlc2V0JywgdGV4dDogJ1Nlc3Npb24gcmVzeW5jaHJvbml6ZWQnfSk7XG4gICAgfVxuXG4gICAgaWYgKHNlbW90dXMuc2Vzc2lvbnNbc2Vzc2lvbklkXSkge1xuICAgICAgICBkZWxldGUgc2Vtb3R1cy5zZXNzaW9uc1tzZXNzaW9uSWRdO1xuICAgIH1cbn1cblxuLyoqXG4gKiBHZXQgdGhlIGN1cnJlbnQgc2Vzc2lvbiBzdHJ1Y3R1cmVcbiAqXG4gKiBAcmV0dXJucyB7Kn0gdGhlIHNlc3Npb25cbiAqXG4gKiBAcHJpdmF0ZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0KHNlbW90dXM6IFNlbW90dXMsIF9zaWQ/KTogU2Vzc2lvbiB8IG51bGwge1xuICAgIGlmICghc2Vtb3R1cy5jdXJyZW50U2Vzc2lvbikge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIHNlbW90dXMuc2Vzc2lvbnNbc2Vtb3R1cy5jdXJyZW50U2Vzc2lvbl07XG59XG5cblxuLyoqXG4gKiBJbmRpY2F0ZSB0aGF0IGFsbCBjaGFuZ2VzIGhhdmUgYmVlbiBhY2NlcHRlZCBvdXRzaWRlIG9mIHRoZSBtZXNzYWdlXG4gKiBtZWNoYW5pc20gYXMgd291bGQgdXN1YWxseSBoYXBwZW4gd2hlbiBhIHNlc3Npb24gaXMgc3RhcnRpbmcgdXBcbiAqXG4gKiBAcGFyYW0gc2Vtb3R1c1xuICogQHBhcmFtIHt1bmtub3dufSBzZXNzaW9uSWQgdW5rbm93blxuICovXG5leHBvcnQgZnVuY3Rpb24gc3luYyhzZW1vdHVzOiBTZW1vdHVzLCBzZXNzaW9uSWQpIHtcbiAgICBnZXQoc2Vtb3R1cywgc2Vzc2lvbklkKTtcbiAgICBzZW1vdHVzLmdldENoYW5nZXMoKTtcbiAgICBzZW1vdHVzLl9kZWxldGVDaGFuZ2VzKCk7XG59XG5cblxuLyoqXG4gKiBSZXN0b3JlIHNlc3Npb24gdGhhdCB3YXMgcG90ZW50aWFsbHkgc2VyaWFsaXplZC9kZXNlcmlhbGl6ZWRcbiAqXG4gKiBBIHJldmlzaW9uIG51bWJlciBpcyB1c2VkIHRvIGRldGVybWluZSB3aGV0aGVyIHRoZSBpbi1tZW1vcnkgY29weSBpcyBnb29kXG4gKlxuICogQHBhcmFtIHNlbW90dXNcbiAqIEBwYXJhbSB7dW5rbm93bn0gc2Vzc2lvbklkIC0gdGhlIGlkIHVuZGVyIHdoaWNoIGl0IHdhcyBjcmVhdGVkIHdpdGggY3JlYXRlU2Vzc2lvblxuICogQHBhcmFtIHt1bmtub3dufSBzYXZlZFNlc3Npb24gLSB0aGUgUE9KTyB2ZXJzaW9uIG9mIHRoZSBzZXNzaW9uIGRhdGFcbiAqIEBwYXJhbSB7dW5rbm93bn0gc2VuZE1lc3NhZ2UgLSBuZXcgbWVzc2FnZSBmdW5jdGlvbiB0byBiZSBpbiBlZmZlY3RcbiAqXG4gKiBAcmV0dXJucyB7Qm9vbGVhbn0gZmFsc2UgbWVhbnMgdGhhdCBtZXNzYWdlcyB3ZXJlIGluIGZsaWdodCBhbmQgYSByZXNldCBpcyBuZWVkZWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc3RvcmUoc2Vtb3R1czogU2Vtb3R1cywgc2Vzc2lvbklkLCBzYXZlZFNlc3Npb246IFNhdmVkU2Vzc2lvbiwgc2VuZE1lc3NhZ2U6IFNlbmRNZXNzYWdlKSB7XG4gICAgc2Vtb3R1cy5zZXRTZXNzaW9uKHNlc3Npb25JZCk7XG4gICAgY29uc3Qgc2Vzc2lvbiA9IHNlbW90dXMuc2Vzc2lvbnNbc2Vzc2lvbklkXTtcbiAgICBjb25zdCBmdW5jdGlvbk5hbWUgPSByZXN0b3JlLm5hbWU7XG5cbiAgICBzZW1vdHVzLmxvZ2dlci5kZWJ1Zyh7XG4gICAgICAgIG1vZHVsZTogbW9kdWxlTmFtZSwgXG4gICAgICAgIGZ1bmN0aW9uOiBmdW5jdGlvbk5hbWUsXG4gICAgICAgIGNhdGVnb3J5OiAnbWlsZXN0b25lJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgYWN0aXZpdHk6ICdzYXZlJ1xuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAoc2Vzc2lvbikge1xuICAgICAgICBpZiAoc2Vzc2lvbi5zYXZlZFNlc3Npb25JZCA9PSBzYXZlZFNlc3Npb24ucmV2aXNpb24pIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZGVsZXRlIHNlbW90dXMuc2Vzc2lvbnNbc2Vzc2lvbklkXTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNlbW90dXMuc2Vzc2lvbnNbc2Vzc2lvbklkXSA9IEpTT04ucGFyc2Uoc2F2ZWRTZXNzaW9uLmRhdGEpO1xuICAgIHNlbW90dXMuc2Vzc2lvbnNbc2Vzc2lvbklkXS5zZW5kTWVzc2FnZSA9IHNlbmRNZXNzYWdlO1xuXG4gICAgcmV0dXJuIHNhdmVkU2Vzc2lvbi5jYWxsQ291bnQgPiAwO1xufVxuXG4vKipcbiAqIFNhdmUgdGhlIHNlc3Npb24gZGF0YSBpbiBhIHdheSB0aGF0IGNhbiBiZSBzZXJpYWxpemVkL2RlLXNlcmlhbGl6ZWRcbiAqXG4gKiBAcGFyYW0gc2Vtb3R1c1xuICogQHBhcmFtIHt1bmtub3dufSBzZXNzaW9uSWQgdW5rbm93blxuICpcbiAqIEByZXR1cm5zIHtPYmplY3R9IHVua25vd25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNhdmUoc2Vtb3R1czogU2Vtb3R1cywgc2Vzc2lvbklkKTogU2F2ZWRTZXNzaW9uIHtcbiAgICBjb25zdCBzZXNzaW9uID0gZ2V0KHNlbW90dXMsIHNlc3Npb25JZCk7XG4gICAgY29uc3QgZnVuY3Rpb25OYW1lID0gc2F2ZS5uYW1lO1xuXG4gICAgc2Vzc2lvbi5uZXh0U2F2ZVNlc3Npb25JZCA9IHNlc3Npb24ubmV4dFNhdmVTZXNzaW9uSWQgKyAxO1xuICAgIHNlc3Npb24uc2F2ZWRTZXNzaW9uSWQgPSBzZXNzaW9uLm5leHRTYXZlU2Vzc2lvbklkO1xuICAgIGNvbnN0IG9iamVjdHMgPSBzZXNzaW9uLm9iamVjdHM7XG4gICAgc2Vzc2lvbi5vYmplY3RzID0ge307XG5cbiAgICBjb25zdCBzYXZlZFNlc3Npb24gPSB7XG4gICAgICAgIGNhbGxDb3VudDogc2Vtb3R1cy5nZXRQZW5kaW5nQ2FsbENvdW50KHNlc3Npb25JZCksIC8vIENhbid0IGp1c3QgcmVzdG9yZSBvbiBhbm90aGVyIHNlcnZlciBhbmQgY2Fycnkgb25cbiAgICAgICAgcmV2aXNpb246IHNlc3Npb24uc2F2ZWRTZXNzaW9uSWQsIC8vIFVzZWQgdG8gc2VlIGlmIG91ciBtZW1vcnkgY29weSBnb29kIGVub3VnaFxuICAgICAgICByZWZlcmVuY2VkOiBuZXcgRGF0ZSgpLmdldFRpbWUoKSwgLy8gVXNlZCBmb3IgcmVhcGluZyBvbGQgc2Vzc2lvbnNcbiAgICAgICAgZGF0YTogSlNPTi5zdHJpbmdpZnkoc2Vzc2lvbikgLy8gQWxsIHRoZSBzZXNzaW9uIGRhdGFcbiAgICB9O1xuXG4gICAgc2Vzc2lvbi5vYmplY3RzID0gb2JqZWN0cztcbiAgICBzZW1vdHVzLmxvZ2dlci5kZWJ1Zyh7XG4gICAgICAgIG1vZHVsZTogbW9kdWxlTmFtZSxcbiAgICAgICAgZnVuY3Rpb246IGZ1bmN0aW9uTmFtZSxcbiAgICAgICAgY2F0ZWdvcnk6ICdtaWxlc3RvbmUnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICBhY3Rpdml0eTogJ3NhdmUnXG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBzYXZlZFNlc3Npb247XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2Vzc2lvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaGVscGVycy9TZXNzaW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSxJQUFNLFVBQVUsR0FBRyw4QkFBOEIsQ0FBQztBQUVsRDs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFnQixNQUFNLENBQUMsT0FBZ0IsRUFBRSxJQUFJLEVBQUUsV0FBd0IsRUFBRSxTQUFTO0lBQzlFLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFO1FBQ25CLE9BQU8sQ0FBQyxrQkFBa0IsR0FBRyxDQUFDLENBQUM7UUFDL0IsT0FBTyxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUM7UUFDMUIsT0FBTyxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7S0FDekI7SUFFRCxJQUFJLENBQUMsU0FBUyxFQUFFO1FBQ1osU0FBUyxHQUFHLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQztLQUN2QztJQUVELE9BQU8sQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFOUIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsR0FBRztRQUMxQixhQUFhLEVBQUUsRUFBRTtRQUNqQixXQUFXLEVBQUUsV0FBVztRQUN4QixrQkFBa0IsRUFBRSxDQUFDLENBQUMsV0FBVztRQUNqQyxXQUFXLEVBQUUsRUFBRTtRQUNmLGtCQUFrQixFQUFFLEVBQUU7UUFDdEIsdUJBQXVCLEVBQUUsQ0FBQztRQUMxQixpQkFBaUIsRUFBRSxDQUFDO1FBQ3BCLGNBQWMsRUFBRSxDQUFDO1FBQ2pCLGtCQUFrQixFQUFFLENBQUM7UUFDckIsT0FBTyxFQUFFLEVBQUU7UUFDWCxTQUFTLEVBQUUsQ0FBQztRQUNaLGNBQWMsRUFBRSxJQUFJLENBQUMsdUJBQXVCO0tBQy9DLENBQUM7SUFFRixJQUFJLElBQUksWUFBWSxLQUFLLEVBQUU7UUFDdkIsS0FBSyxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFH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O0dBT0c7QUFDSCxTQUFnQixJQUFJLENBQUMsT0FBZ0IsRUFBRSxTQUFTO0lBQzVDLElBQU0sT0FBTyxHQUFHLEdBQUcsQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDeEMsSUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztJQUUvQixPQUFPLENBQUMsaUJBQWlCLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixHQUFHLENBQUMsQ0FBQztJQUMxRCxPQUFPLENBQUMsY0FBYyxHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQztJQUNuRCxJQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDO0lBQ2hDLE9BQU8sQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO0lBRXJCLElBQU0sWUFBWSxHQUFHO1FBQ2pCLFNBQVMsRUFBRSxPQUFPLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDO1FBQ2pELFFBQVEsRUFBRSxPQUFPLENBQUMsY0FBYztRQUNoQyxVQUFVLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUU7UUFDaEMsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsdUJBQXVCO0tBQ3hELENBQUM7SUFFRixPQUFPLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztJQUMxQixPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUNqQixNQUFNLEVBQUUsVUFBVTtRQUNsQixRQUFRLEVBQUUsWUFBWTtRQUN0QixRQUFRLEVBQUUsV0FBVztRQUNyQixJQUFJLEVBQUU7WUFDRixRQUFRLEVBQUUsTUFBTTtTQUNuQjtLQUNKLENBQUMsQ0FBQztJQUVILE9BQU8sWUFBWSxDQUFDO0FBQ3hCLENBQUM7QUEzQkQsb0JBMkJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtTYXZlZFNlc3Npb24sIFNlbW90dXMsIFNlbmRNZXNzYWdlLCBTZXNzaW9ufSBmcm9tICcuL1R5cGVzJztcblxuY29uc3QgbW9kdWxlTmFtZSA9IGBzZW1vdHVzL3NyYy9oZWxwZXJzL1Nlc3Npb25zYDtcblxuLyoqXG4gKiBPYnRhaW4gYSBzZXNzaW9uIGZvciB0cmFja2luZyBzdWJzY3JpcHRpb25zXG4gKlxuICogQHBhcmFtIHNlbW90dXNcbiAqIEBwYXJhbSB7dW5rbm93bn0gcm9sZSB1bmtub3duXG4gKiBAcGFyYW0ge3Vua25vd259IHNlbmRNZXNzYWdlIHVua25vd25cbiAqIEBwYXJhbSB7dW5rbm93bn0gc2Vzc2lvbklkIHVua25vd25cbiAqXG4gKiBAcmV0dXJucyB7Kn0gdW5rbm93blxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlKHNlbW90dXM6IFNlbW90dXMsIHJvbGUsIHNlbmRNZXNzYWdlOiBTZW5kTWVzc2FnZSwgc2Vzc2lvbklkKTogYW55IHtcbiAgICBpZiAoIXNlbW90dXMuc2Vzc2lvbnMpIHtcbiAgICAgICAgc2Vtb3R1cy5uZXh0U3Vic2NyaXB0aW9uSWQgPSAwO1xuICAgICAgICBzZW1vdHVzLm5leHRTZXNzaW9uSWQgPSAxO1xuICAgICAgICBzZW1vdHVzLnNlc3Npb25zID0ge307XG4gICAgfVxuXG4gICAgaWYgKCFzZXNzaW9uSWQpIHtcbiAgICAgICAgc2Vzc2lvbklkID0gc2Vtb3R1cy5uZXh0U2Vzc2lvbklkKys7XG4gICAgfVxuXG4gICAgc2Vtb3R1cy5zZXRTZXNzaW9uKHNlc3Npb25JZCk7XG5cbiAgICBzZW1vdHVzLnNlc3Npb25zW3Nlc3Npb25JZF0gPSB7XG4gICAgICAgIHN1YnNjcmlwdGlvbnM6IHt9LCAvLyBDaGFuZ2UgbGlzdGVuZXJzXG4gICAgICAgIHNlbmRNZXNzYWdlOiBzZW5kTWVzc2FnZSwgLy8gU2VuZCBtZXNzYWdlIGNhbGxiYWNrXG4gICAgICAgIHNlbmRNZXNzYWdlRW5hYmxlZDogISFzZW5kTWVzc2FnZSxcbiAgICAgICAgcmVtb3RlQ2FsbHM6IFtdLCAvLyBSZW1vdGUgY2FsbHMgcXVldWVkIHRvIGdvIG91dFxuICAgICAgICBwZW5kaW5nUmVtb3RlQ2FsbHM6IHt9LCAvLyBSZW1vdGUgY2FsbHMgd2FpdGluZyBmb3IgcmVzcG9uc2VcbiAgICAgICAgbmV4dFBlbmRpbmdSZW1vdGVDYWxsSWQ6IDEsXG4gICAgICAgIG5leHRTYXZlU2Vzc2lvbklkOiAxLFxuICAgICAgICBzYXZlZFNlc3Npb25JZDogMCxcbiAgICAgICAgbmV4dFN1YnNjcmlwdGlvbklkOiAwLFxuICAgICAgICBvYmplY3RzOiB7fSxcbiAgICAgICAgbmV4dE9iaklkOiAxLFxuICAgICAgICBkaXNwZW5zZU5leHRJZDogbnVsbCAvLyBGb3JjZSBuZXh0IG9iamVjdCBJZFxuICAgIH07XG5cbiAgICBpZiAocm9sZSBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgIGZvciAodmFyIGl4ID0gMDsgaXggPCByb2xlLmxlbmd0aDsgKytpeCkge1xuICAgICAgICAgICAgc2Vtb3R1cy5zdWJzY3JpYmUocm9sZVtpeF0pO1xuICAgICAgICB9XG5cbiAgICAgICAgc2Vtb3R1cy5yb2xlID0gcm9sZVsxXTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBzZW1vdHVzLnN1YnNjcmliZShyb2xlKTtcbiAgICAgICAgc2Vtb3R1cy5yb2xlID0gcm9sZTtcbiAgICB9XG5cbiAgICByZXR1cm4gc2Vzc2lvbklkO1xufVxuXG5cbi8qKlxuICogUmVtb3ZlIHRoZSBzZXNzaW9uIGZyb20gdGhlIHNlc3Npb25zIG1hcCwgcmVqZWN0aW5nIGFueSBvdXRzdGFuZGluZyBwcm9taXNlc1xuICogV0FSTklORzogQXN5bmMgc2lkZSBlZmZlY3RzXG4gKiBAcGFyYW0gc2Vtb3R1c1xuICogQHBhcmFtIHt1bmtub3dufSBzZXNzaW9uSWQgdW5rbm93blxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlKHNlbW90dXM6IFNlbW90dXMsIHNlc3Npb25JZDogc3RyaW5nIHwgbnVtYmVyKSB7XG4gICAgbGV0IHNlc3Npb24gPSBnZXQoc2Vtb3R1cywgc2Vzc2lvbklkKTtcblxuICAgIGZvciAodmFyIGNhbGxzIGluIHNlc3Npb24ucmVtb3RlQ2FsbHMpIHtcbiAgICAgICAgc2Vzc2lvbi5yZW1vdGVDYWxsc1tjYWxsc10uZGVmZXJyZWQucmVqZWN0KHtjb2RlOiAncmVzZXQnLCB0ZXh0OiAnU2Vzc2lvbiByZXN5bmNocm9uaXplZCd9KTtcbiAgICB9XG5cbiAgICBpZiAoc2Vtb3R1cy5zZXNzaW9uc1tzZXNzaW9uSWRdKSB7XG4gICAgICAgIGRlbGV0ZSBzZW1vdHVzLnNlc3Npb25zW3Nlc3Npb25JZF07XG4gICAgfVxufVxuXG4vKipcbiAqIEdldCB0aGUgY3VycmVudCBzZXNzaW9uIHN0cnVjdHVyZVxuICpcbiAqIEByZXR1cm5zIHsqfSB0aGUgc2Vzc2lvblxuICpcbiAqIEBwcml2YXRlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXQoc2Vtb3R1czogU2Vtb3R1cywgX3NpZD8pOiBTZXNzaW9uIHwgbnVsbCB7XG4gICAgaWYgKCFzZW1vdHVzLmN1cnJlbnRTZXNzaW9uKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gc2Vtb3R1cy5zZXNzaW9uc1tzZW1vdHVzLmN1cnJlbnRTZXNzaW9uXTtcbn1cblxuXG4vKipcbiAqIEluZGljYXRlIHRoYXQgYWxsIGNoYW5nZXMgaGF2ZSBiZWVuIGFjY2VwdGVkIG91dHNpZGUgb2YgdGhlIG1lc3NhZ2VcbiAqIG1lY2hhbmlzbSBhcyB3b3VsZCB1c3VhbGx5IGhhcHBlbiB3aGVuIGEgc2Vzc2lvbiBpcyBzdGFydGluZyB1cFxuICpcbiAqIEBwYXJhbSBzZW1vdHVzXG4gKiBAcGFyYW0ge3Vua25vd259IHNlc3Npb25JZCB1bmtub3duXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzeW5jKHNlbW90dXM6IFNlbW90dXMsIHNlc3Npb25JZCkge1xuICAgIGdldChzZW1vdHVzLCBzZXNzaW9uSWQpO1xuICAgIHNlbW90dXMuZ2V0Q2hhbmdlcygpO1xuICAgIHNlbW90dXMuX2RlbGV0ZUNoYW5nZXMoKTtcbn1cblxuXG4vKipcbiAqIFJlc3RvcmUgc2Vzc2lvbiB0aGF0IHdhcyBwb3RlbnRpYWxseSBzZXJpYWxpemVkL2Rlc2VyaWFsaXplZFxuICpcbiAqIEEgcmV2aXNpb24gbnVtYmVyIGlzIHVzZWQgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdGhlIGluLW1lbW9yeSBjb3B5IGlzIGdvb2RcbiAqXG4gKiBAcGFyYW0gc2Vtb3R1c1xuICogQHBhcmFtIHt1bmtub3dufSBzZXNzaW9uSWQgLSB0aGUgaWQgdW5kZXIgd2hpY2ggaXQgd2FzIGNyZWF0ZWQgd2l0aCBjcmVhdGVTZXNzaW9uXG4gKiBAcGFyYW0ge3Vua25vd259IHNhdmVkU2Vzc2lvbiAtIHRoZSBQT0pPIHZlcnNpb24gb2YgdGhlIHNlc3Npb24gZGF0YVxuICogQHBhcmFtIHt1bmtub3dufSBzZW5kTWVzc2FnZSAtIG5ldyBtZXNzYWdlIGZ1bmN0aW9uIHRvIGJlIGluIGVmZmVjdFxuICpcbiAqIEByZXR1cm5zIHtCb29sZWFufSBmYWxzZSBtZWFucyB0aGF0IG1lc3NhZ2VzIHdlcmUgaW4gZmxpZ2h0IGFuZCBhIHJlc2V0IGlzIG5lZWRlZFxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzdG9yZShzZW1vdHVzOiBTZW1vdHVzLCBzZXNzaW9uSWQsIHNhdmVkU2Vzc2lvbjogU2F2ZWRTZXNzaW9uLCBzZW5kTWVzc2FnZTogU2VuZE1lc3NhZ2UpIHtcbiAgICBzZW1vdHVzLnNldFNlc3Npb24oc2Vzc2lvbklkKTtcbiAgICBjb25zdCBzZXNzaW9uID0gc2Vtb3R1cy5zZXNzaW9uc1tzZXNzaW9uSWRdO1xuICAgIGNvbnN0IGZ1bmN0aW9uTmFtZSA9IHJlc3RvcmUubmFtZTtcblxuICAgIHNlbW90dXMubG9nZ2VyLmRlYnVnKHtcbiAgICAgICAgbW9kdWxlOiBtb2R1bGVOYW1lLCBcbiAgICAgICAgZnVuY3Rpb246IGZ1bmN0aW9uTmFtZSxcbiAgICAgICAgY2F0ZWdvcnk6ICdtaWxlc3RvbmUnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICBhY3Rpdml0eTogJ3NhdmUnXG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmIChzZXNzaW9uKSB7XG4gICAgICAgIGlmIChzZXNzaW9uLnNhdmVkU2Vzc2lvbklkID09IHNhdmVkU2Vzc2lvbi5yZXZpc2lvbikge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBkZWxldGUgc2Vtb3R1cy5zZXNzaW9uc1tzZXNzaW9uSWRdO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2Vtb3R1cy5zZXNzaW9uc1tzZXNzaW9uSWRdID0gSlNPTi5wYXJzZShzYXZlZFNlc3Npb24uZGF0YSk7XG4gICAgc2Vtb3R1cy5zZXNzaW9uc1tzZXNzaW9uSWRdLnNlbmRNZXNzYWdlID0gc2VuZE1lc3NhZ2U7XG5cbiAgICByZXR1cm4gc2F2ZWRTZXNzaW9uLmNhbGxDb3VudCA+IDA7XG59XG5cbi8qKlxuICogU2F2ZSB0aGUgc2Vzc2lvbiBkYXRhIGluIGEgd2F5IHRoYXQgY2FuIGJlIHNlcmlhbGl6ZWQvZGUtc2VyaWFsaXplZFxuICpcbiAqIEBwYXJhbSBzZW1vdHVzXG4gKiBAcGFyYW0ge3Vua25vd259IHNlc3Npb25JZCB1bmtub3duXG4gKlxuICogQHJldHVybnMge09iamVjdH0gdW5rbm93blxuICovXG5leHBvcnQgZnVuY3Rpb24gc2F2ZShzZW1vdHVzOiBTZW1vdHVzLCBzZXNzaW9uSWQpOiBTYXZlZFNlc3Npb24ge1xuICAgIGNvbnN0IHNlc3Npb24gPSBnZXQoc2Vtb3R1cywgc2Vzc2lvbklkKTtcbiAgICBjb25zdCBmdW5jdGlvbk5hbWUgPSBzYXZlLm5hbWU7XG5cbiAgICBzZXNzaW9uLm5leHRTYXZlU2Vzc2lvbklkID0gc2Vzc2lvbi5uZXh0U2F2ZVNlc3Npb25JZCArIDE7XG4gICAgc2Vzc2lvbi5zYXZlZFNlc3Npb25JZCA9IHNlc3Npb24ubmV4dFNhdmVTZXNzaW9uSWQ7XG4gICAgY29uc3Qgb2JqZWN0cyA9IHNlc3Npb24ub2JqZWN0cztcbiAgICBzZXNzaW9uLm9iamVjdHMgPSB7fTtcblxuICAgIGNvbnN0IHNhdmVkU2Vzc2lvbiA9IHtcbiAgICAgICAgY2FsbENvdW50OiBzZW1vdHVzLmdldFBlbmRpbmdDYWxsQ291bnQoc2Vzc2lvbklkKSwgLy8gQ2FuJ3QganVzdCByZXN0b3JlIG9uIGFub3RoZXIgc2VydmVyIGFuZCBjYXJyeSBvblxuICAgICAgICByZXZpc2lvbjogc2Vzc2lvbi5zYXZlZFNlc3Npb25JZCwgLy8gVXNlZCB0byBzZWUgaWYgb3VyIG1lbW9yeSBjb3B5IGdvb2QgZW5vdWdoXG4gICAgICAgIHJlZmVyZW5jZWQ6IG5ldyBEYXRlKCkuZ2V0VGltZSgpLCAvLyBVc2VkIGZvciByZWFwaW5nIG9sZCBzZXNzaW9uc1xuICAgICAgICBkYXRhOiBKU09OLnN0cmluZ2lmeShzZXNzaW9uKSAvLyBBbGwgdGhlIHNlc3Npb24gZGF0YVxuICAgIH07XG5cbiAgICBzZXNzaW9uLm9iamVjdHMgPSBvYmplY3RzO1xuICAgIHNlbW90dXMubG9nZ2VyLmRlYnVnKHtcbiAgICAgICAgbW9kdWxlOiBtb2R1bGVOYW1lLFxuICAgICAgICBmdW5jdGlvbjogZnVuY3Rpb25OYW1lLFxuICAgICAgICBjYXRlZ29yeTogJ21pbGVzdG9uZScsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIGFjdGl2aXR5OiAnc2F2ZSdcbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHNhdmVkU2Vzc2lvbjtcbn1cbiJdfQ==

2

package.json
{
"name": "@haventech/semotus",
"version": "7.0.0-beta.5",
"version": "7.0.0-beta.6",
"description": "A subclass of supertype that synchronizes sets of objects.",

@@ -5,0 +5,0 @@ "homepage": "https://github.com/haven-life/amorphic-framework",

import {delay, getError, logTime} from './Utilities';
import {CallContext, ProcessCallPayload, RemoteCall, Semotus, Session} from './Types';
import * as path from 'path';
const moduleName = `${path.basename(__dirname)}/${path.basename(__filename)}`;
const moduleName = `semotus/src/helpers/ProcessCall`;

@@ -7,0 +6,0 @@ /**

import {SavedSession, Semotus, SendMessage, Session} from './Types';
import * as path from 'path';
const moduleName = `${path.basename(__dirname)}/${path.basename(__filename)}`;
const moduleName = `semotus/src/helpers/Sessions`;

@@ -6,0 +5,0 @@ /**

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

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