Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@haventech/semotus

Package Overview
Dependencies
Maintainers
4
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 5.0.0 to 6.0.0-beta.0

3

dist/decorators.js

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

Object.defineProperty(exports, "__esModule", { value: true });
exports.remote = exports.property = exports.Supertype = exports.supertypeClass = void 0;
/**

@@ -140,2 +141,2 @@ * @TODO: This should be consolidated with Supertype's version when we finish converting to typescript

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9kZWNvcmF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7O0dBU0c7O0FBR0g7O0dBRUc7QUFFSCx3QkFBd0I7QUFDeEIsMkVBQTJFO0FBQzNFLGdHQUFnRztBQUNoRyxTQUFnQixjQUFjLENBQUMsY0FBYyxFQUFFLGVBQWUsRUFBRSxNQUFNO0lBQ2xFLElBQUksR0FBRyxDQUFDO0lBQ1IsSUFBSSxjQUFjLEdBQUcsZUFBZSxDQUFDLE9BQU8sQ0FBQztJQUM3QyxJQUFJLFVBQVUsR0FBYSxFQUFFLENBQUMsQ0FBRSxvQ0FBb0M7SUFFcEUsc0JBQXNCO0lBQ3RCLElBQU0sU0FBUyxHQUFHLFNBQVMsU0FBUyxDQUFDLE1BQU07UUFDdkMsbUZBQW1GO1FBQ25GLDBCQUEwQjtRQUMxQixJQUFJLEdBQUcsRUFBRTtZQUNMLEdBQUcsR0FBRyxHQUFHLENBQUMsTUFBTSxFQUFFLGNBQWMsQ0FBQyxDQUFBO1NBQ3BDO2FBQU07WUFDSCxHQUFHLEdBQUcsZUFBZSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsY0FBYyxDQUFDLENBQUM7U0FDaEU7UUFFRCxvRUFBb0U7UUFDcEUsTUFBTSxDQUFDLGNBQWMsR0FBRyxVQUFVLFlBQVksRUFBRSxjQUFjO1lBQzFELElBQUksY0FBYyxDQUFDLElBQUksRUFBRTtnQkFDckIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsR0FBRyxjQUFjLENBQUMsY0FBYyxDQUMxRCxZQUFZLEVBQ1osY0FBYyxDQUFDLElBQUksRUFDbkIsY0FBYyxDQUFDLEVBQUUsRUFDakIsY0FBYyxDQUFDLFFBQVEsQ0FDMUIsQ0FBQzthQUNMO2lCQUFNO2dCQUNILE1BQU0sQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLEdBQUcsY0FBYyxDQUFDO2dCQUNsRSxJQUFNLE9BQUssR0FBRyxjQUFjLENBQUMsS0FBSyxD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SUFDTCxDQUFDLENBQUM7QUFDTixDQUFDO0FBMUNELHdCQTBDQztBQUFBLENBQUM7QUFHRixTQUFTLFlBQVksQ0FBQyxJQUFJLEVBQUUsT0FBTztJQUMvQixJQUFJLElBQUksWUFBWSxLQUFLLElBQUksT0FBTyxZQUFZLEtBQUssSUFBSSxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtRQUN6RSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO1lBQ3hCLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkMsQ0FBQyxDQUFDLENBQUM7S0FDTjtTQUFNO1FBQ0gsT0FBTyxJQUFJLENBQUM7S0FDZjtBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEF0dGFjaGVzIHN5bmNTdGF0ZXMgcHJvcHMgdG8gdGhlIHRlbXBsYXRlXG4gKiBJZiBhIGNsYXNzIGlzIGRlY29yYXRlZCBsaWtlIEBzdXBlcnR5cGVDbGFzcyh7c3luY1N0YXRlczogWydpbnRlcm5hbCcsICdob21lJ119KSwgYW55IGluc3RhbmNlcyBvZiB0aGF0IGNsYXNzXG4gKiBpbmNsdWRpbmcgdGhvc2UgdGhhdCBleGlzdCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBhcHBsaWNhdGlvbiwgc2hvdWxkIG9ubHkgYmUgc2VudCBvdmVyIHdoZW4gdGhlIGNvbnRyb2xsZXIgc3RhdGUgb25cbiAqIHRoZSBzZXJ2ZXIgaW5kaWNhdGVzIHRoYXQgdGhlIGNvcnJlY3Qgc3luY1N0YXRlIChpZiBhbmQgb25seSBpZiBjb250cm9sbGVyLnN5bmNTdGF0ZSA9ICdob21lJyBvciAnaW50ZXJuYWwnLCB0aGVuIGFuXG4gKiBvYmplY3Qgb2YgdGhpcyBjbGFzcyB3aWxsIGJlIHNlbnQsIG90aGVyd2lzZSBzZW1vdHVzIHdpbGwgcmVmcmFpbiBmcm9tIHNlbmRpbmcgaXQgb3ZlcikuIFRoZSBjYXZlYXQsIGhvd2V2ZXIsIGlzIGlmXG4gKiBzZW1vdHVzJyBjb250cm9sbGVyJ3Mgc3luY1N0YXRlIGlzIGRlZmluZWQgYXMgJyonIHRoZW4gd2Ugd2lsbCBieSBkZWZhdWx0IHNlbmQgYWxsIHRlbXBsYXRlcyB1bmxlc3Mgc3BlY2lmaWVkIG90aGVyLVxuICogd2lzZSAodGhlIHNhbWUgYXMgdHJlYXRpbmcgc3luY1N0YXRlOiBbJyonXSlcbiAqXG4gKi9cblxuXG4vKipcbiAqIEBUT0RPOiBUaGlzIHNob3VsZCBiZSBjb25zb2xpZGF0ZWQgd2l0aCBTdXBlcnR5cGUncyB2ZXJzaW9uIHdoZW4gd2UgZmluaXNoIGNvbnZlcnRpbmcgdG8gdHlwZXNjcmlwdFxuICovXG5cbi8vIENvbnRleHQgU3dpdGNoIENoYWluOlxuLy8gMXN0IHBhc3M6IFNlbW90dXMgKHNDbGFzcykgLT4gU3VwZXJ0eXBlIChzQ2xhc3MpIC0+IFNlbW90dXMgKHJldHVybiBSZXQpXG4vLyAybmQgcGFzczogU2Vtb3R1cyAoc0NsYXNzKSAtPiBTZW1vdHVzIChkZWNvcmF0b3IpIC0+IFN1cGVydHlwZSAoZXZhbCByZXQpIC0+IFNlbW90dXMgKHJldHVybilcbmV4cG9ydCBmdW5jdGlvbiBzdXBlcnR5cGVDbGFzcyhvYmplY3RUZW1wbGF0ZSwgU3VwZXJ0eXBlTW9kdWxlLCB0YXJnZXQpOiBhbnkge1xuICAgIGxldCByZXQ7XG4gICAgbGV0IE9iamVjdFRlbXBsYXRlID0gU3VwZXJ0eXBlTW9kdWxlLmRlZmF1bHQ7XG4gICAgbGV0IHN5bmNTdGF0ZXM6IFN0cmluZ1tdID0gW107ICAvLyBEZWZhdWx0IHN5bmNTdGF0ZXMgdG8gZW1wdHkgYXJyYXlcblxuICAgIC8vIERlY29yYXRvciB3b3JrZXJiZWVcbiAgICBjb25zdCBkZWNvcmF0b3IgPSBmdW5jdGlvbiBkZWNvcmF0b3IodGFyZ2V0KSB7XG4gICAgICAgIC8vIHNlY29uZCB0aW1lIHdlIG11c3QgY2FsbCB0aGUgZnVuY3Rpb24gcmV0dXJuZWQgdGhlIGZpcnN0IHRpbWUgYmVjYXVzZSBpdCBoYXMgdGhlXG4gICAgICAgIC8vIHByb3BlcnRpZXMgYXMgYSBjbG9zdXJlXG4gICAgICAgIGlmIChyZXQpIHtcbiAgICAgICAgICAgIHJldCA9IHJldCh0YXJnZXQsIG9iamVjdFRlbXBsYXRlKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0ID0gU3VwZXJ0eXBlTW9kdWxlLnN1cGVydHlwZUNsYXNzKHRhcmdldCwgb2JqZWN0VGVtcGxhdGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gTWFpbmx5IGZvciBwZXJzaXN0b3IgcHJvcGVydGllcyB0byBtYWtlIHN1cmUgdGhleSBnZXQgdHJhbnNwb3J0ZWRcbiAgICAgICAgdGFyZ2V0LmNyZWF0ZVByb3BlcnR5ID0gZnVuY3Rpb24gKHByb3BlcnR5TmFtZSwgZGVmaW5lUHJvcGVydHkpIHtcbiAgICAgICAgICAgIGlmIChkZWZpbmVQcm9wZXJ0eS5ib2R5KSB7XG4gICAgICAgICAgICAgICAgdGFyZ2V0LnByb3RvdHlwZVtwcm9wZXJ0eU5hbWVdID0gb2JqZWN0VGVtcGxhdGUuX3NldHVwRnVuY3Rpb24oXG4gICAgICAgICAgICAgICAgICAgIHByb3BlcnR5TmFtZSxcbiAgICAgICAgICAgICAgICAgICAgZGVmaW5lUHJvcGVydHkuYm9keSxcbiAgICAgICAgICAgICAgICAgICAgZGVmaW5lUHJvcGVydHkub24sXG4gICAgICAgICAgICAgICAgICAgIGRlZmluZVByb3BlcnR5LnZhbGlkYXRlXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGFyZ2V0LnByb3RvdHlwZS5fX2Ftb3JwaGljcHJvcHNfX1twcm9wZXJ0eU5hbWVdID0gZGVmaW5lUHJvcGVydHk7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBkZWZpbmVQcm9wZXJ0eS52YWx1ZTtcblxuICAgICAgICAgICAgICAgIC8vIFRoZSBnZXR0ZXIgYWN0dWFsbHkgaW5pdGlhbGl6ZXMgdGhlIHByb3BlcnR5XG4gICAgICAgICAgICAgICAgZGVmaW5lUHJvcGVydHkuZ2V0ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBsZXQgbmFtZVNwYWNlZFByb3BlcnR5ID0gYF9fJHtwcm9wZXJ0eU5hbWV9YDtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXNbbmFtZVNwYWNlZFByb3BlcnR5XSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGNsb25lVGVtcGxhdGUgPSBkZWZpbmVQcm9wZXJ0eS5vZiB8fCBkZWZpbmVQcm9wZXJ0eS50eXBlIHx8IG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzW25hbWVTcGFjZWRQcm9wZXJ0eV0gPSBPYmplY3RUZW1wbGF0ZS5jbG9uZSh2YWx1ZSwgY2xvbmVUZW1wbGF0ZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXNbbmFtZVNwYWNlZFByb3BlcnR5XTtcbiAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgY29uc3QgZGVmaW5lUHJvcGVydGllcyA9IHt9O1xuICAgICAgICAgICAgICAgIG9iamVjdFRlbXBsYXRlLl9zZXR1cFByb3BlcnR5KHByb3BlcnR5TmFtZSwgZGVmaW5lUHJvcGVydHksIHVuZGVmaW5lZCwgZGVmaW5lUHJvcGVydGllcyk7XG4gICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnRpZXModGFyZ2V0LnByb3RvdHlwZSwgZGVmaW5lUHJvcGVydGllcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gQXNzaWduaW5nIHN5bmMgc3RhdGVzIGZyb20gcHJvcCBkZWZpbml0aW9uIG9udG8gdGhlIHRlbXBsYXRlXG4gICAgICAgIGlmIChzeW5jU3RhdGVzKSB7XG4gICAgICAgICAgICB0YXJnZXQuc3luY1N0YXRlcyA9IHN5bmNTdGF0ZXM7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmV0O1xuICAgIH07XG5cbiAgICAvLyBDYWxsaW5nIHRoZSBkZWNvcmF0b3IgcHJvY2Vzc29yIHdpdGggdGhlIGFjdHVhbCBUZW1wbGF0ZSAoMm5kIHRpbWUpXG4gICAgaWYgKHRhcmdldC5wcm90b3R5cGUpIHtcbiAgICAgICAgcmV0dXJuIGRlY29yYXRvcih0YXJnZXQpO1xuICAgIH0gZWxzZSBpZiAodGFyZ2V0ICYmIHRhcmdldC5zeW5jU3RhdGVzICYmIHRhcmdldC5zeW5jU3RhdGVzIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgc3luY1N0YXRlcyA9IHRhcmdldC5zeW5jU3RhdGVzO1xuICAgIH0gZWxzZSBpZiAodGFyZ2V0ICYmIHRhcmdldC5zeW5jU3RhdGVzICkge1xuICAgICAgICBjb25zb2xlLndhcm4oYFNlbW90dXMgd2FybmluZzogJHt0YXJnZXQuc3luY1N0YXRlc30gaXMgbm90IGFuIGFycmF5IHZhbHVlLCBzbyBub3Qgc2V0dGluZyB1cCBTeW5jU3RhdGVzIGZvciB0aGlzIHRhcmdldDogJHt0YXJnZXR9YCk7XG4gICAgfVxuXG4gICAgLy8gQ2FsbGVkIGZpcnN0IHRpbWUgd2l0aCBwYXJhbWV0ZXJzIChwcm9wIGRlZmluaXRpb24pIHJhdGhlciB0aGFuIHRhcmdldCAodGVtcGxhdGUpXG4gICAgLy8gY2FsbCBzdXBlcnR5cGVzIHN1cGVydHlwZUNsYXNzIGZ1bmN0aW9uIHdoaWNoIHdpbGwgcmV0dXJuIGEgZnVuY3Rpb24gdGhhdCBtdXN0IGJlXG4gICAgLy8gY2FsbGVkIG9uIHRoZSAybmQgcGFzcyB3aGVuIHdlIGhhdmUgYSB0YXJnZXQuIFRoaXMgZnVuY3Rpb24ncyBjbG9zdXJlIHdpbGwgYWxzbyBoYXZlIGEgcmVmIHRvIHRoZSBvcmlnaW5hbCBwcm9wZXJ0aWVzXG4gICAgcmV0ID0gU3VwZXJ0eXBlTW9kdWxlLnN1cGVydHlwZUNsYXNzKHRhcmdldCwgb2JqZWN0VGVtcGxhdGUpO1xuICAgIHJldHVybiBkZWNvcmF0b3I7IC8vIGRlY29yYXRvciB3aWxsIGJlIGNhbGxlZCAybmQgdGltZSB3aXRoIHJldCBhcyBhIGNsb3N1cmVcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFN1cGVydHlwZSh0ZW1wbGF0ZSwgb2JqZWN0VGVtcGxhdGUsIFN1cGVydHlwZSkge1xuICAgIHJldHVybiBTdXBlcnR5cGUuY2FsbCh0ZW1wbGF0ZSwgb2JqZWN0VGVtcGxhdGUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJvcGVydHkob2JqZWN0VGVtcGxhdGUsIFN1cGVydHlwZU1vZHVsZSwgcHJvcHMsIHRvQ2xpZW50UnVsZVNldCwgdG9TZXJ2ZXJSdWxlU2V0KSB7XG4gICAgcHJvcHMgPSBwcm9wcyB8fCB7fTtcbiAgICBwcm9wcy50b0NsaWVudCA9IGFwcGx5UnVsZVNldChwcm9wcy50b0NsaWVudCwgdG9DbGllbnRSdWxlU2V0KTtcbiAgICBwcm9wcy50b1NlcnZlciA9IGFwcGx5UnVsZVNldChwcm9wcy50b1NlcnZlciwgdG9TZXJ2ZXJSdWxlU2V0KTtcbiAgICBjb25zdCBiYXNlRGVjb3JhdG9yID0gU3VwZXJ0eXBlTW9kdWxlLnByb3BlcnR5KHByb3BzLCBvYmplY3RUZW1wbGF0ZSk7XG4gICAgcmV0dXJuIGZ1bmN0aW9uICh0YXJnZXQsIHRhcmdldEtleSkge1xuICAgICAgICBiYXNlRGVjb3JhdG9yKHRhcmdldCwgdGFyZ2V0S2V5KTtcbiAgICAgICAgY29uc3QgZGVmaW5lUHJvcGVydGllcyA9IHt9O1xuICAgICAgICBwcm9wcy5lbnVtZXJhYmxlID0gdHJ1ZTtcbiAgICAgICAgcHJvcHMud3JpdGFibGUgPSB0cnVlO1xuICAgICAgICBvYmplY3RUZW1wbGF0ZS5fc2V0dXBQcm9wZXJ0eSh0YXJnZXRLZXksIHByb3BzLCB1bmRlZmluZWQsIGRlZmluZVByb3BlcnRpZXMpO1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIGRlZmluZVByb3BlcnRpZXMpO1xuICAgIH07XG59XG5cblxuZXhwb3J0IGZ1bmN0aW9uIHJlbW90ZShvYmplY3RUZW1wbGF0ZSwgZGVmaW5lUHJvcGVydHkpIHtcbiAgICBkZWZpbmVQcm9wZXJ0eSA9IGRlZmluZVByb3BlcnR5IHx8IHt9O1xuXG4gICAgLypcbiAgICAgICAgaWYgd2UgaGF2ZW4ndCBzdXBwbGllZCBhIGNvbmZpZ3VyYXRpb24gb2JqZWN0IGludG8gdGhlIGRlY29yYXRvcixcbiAgICAgICAgIGRlZmF1bHQgdGhlIHJvbGUgb2YgdGhpcyBmdW5jdGlvbiB0byBhIHNlcnZlciBBUEkgZnVuY3Rpb25cbiAgICAgKi9cbiAgICBpZiAoIWRlZmluZVByb3BlcnR5Lm9uKSB7XG4gICAgICAgIGRlZmluZVByb3BlcnR5Lm9uID0gJ3NlcnZlcic7XG4gICAgfVxuXG4gICAgLy8gZnVuY3Rpb24gdGhhdCB3ZSBjYWxsIHRvIHZhbGlkYXRlIGFueSBjaGFuZ2VzIGZvciByZW1vdGUgY2FsbHNcbiAgICBsZXQgcmVtb3RlVmFsaWRhdG9yID0gZGVmaW5lUHJvcGVydHkuc2VydmVyVmFsaWRhdGlvbjtcbiAgICBsZXQgaXNQdWJsaWMgPSAhIWRlZmluZVByb3BlcnR5LnB1YmxpYztcblxuICAgIHJldHVybiBmdW5jdGlvbiAodGFyZ2V0LCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpIHtcbiAgICAgICAgZGVzY3JpcHRvci52YWx1ZSA9IG9iamVjdFRlbXBsYXRlLl9zZXR1cEZ1bmN0aW9uKFxuICAgICAgICAgICAgcHJvcGVydHlOYW1lLFxuICAgICAgICAgICAgZGVzY3JpcHRvci52YWx1ZSxcbiAgICAgICAgICAgIGRlZmluZVByb3BlcnR5Lm9uLFxuICAgICAgICAgICAgZGVmaW5lUHJvcGVydHkudmFsaWRhdGUsXG4gICAgICAgICAgICByZW1vdGVWYWxpZGF0b3IsXG4gICAgICAgICAgICBpc1B1YmxpYyxcbiAgICAgICAgICAgIGRlZmluZVByb3BlcnR5LnRhcmdldFxuICAgICAgICApO1xuXG4gICAgICAgIC8qXG4gICAgICAgICAgICB0aGlzIGZ1bmN0aW9uIGJlZW4gbWFya2VkIGFzIGEgc2VydmVyIEFQSSBlaXRoZXIgZXhwbGljaXRseSBvciBieSBkZWZhdWx0LlxuICAgICAgICAgICAgc2V0IHRoZSBhcHByb3ByaWF0ZSBtZXRhZGF0YS5cbiAgICAgICAgICovXG4gICAgICAgIGlmIChkZWZpbmVQcm9wZXJ0eS5vbiA9PT0gJ3NlcnZlcicpIHtcbiAgICAgICAgICAgIGRlc2NyaXB0b3IudmFsdWUuX19vbl9fID0gJ3NlcnZlcic7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZGVmaW5lUHJvcGVydHkudHlwZSkge1xuICAgICAgICAgICAgZGVzY3JpcHRvci52YWx1ZS5fX3JldHVybnNfXyA9IGRlZmluZVByb3BlcnR5LnR5cGU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRlZmluZVByb3BlcnR5Lm9mKSB7XG4gICAgICAgICAgICBkZXNjcmlwdG9yLnZhbHVlLl9fcmV0dXJuc19fID0gZGVmaW5lUHJvcGVydHkub2Y7XG4gICAgICAgICAgICBkZXNjcmlwdG9yLnZhbHVlLl9fcmV0dXJuc2FycmF5X18gPSB0cnVlO1xuICAgICAgICB9XG4gICAgfTtcbn07XG5cblxuZnVuY3Rpb24gYXBwbHlSdWxlU2V0KHByb3AsIHJ1bGVTZXQpIHtcbiAgICBpZiAocHJvcCBpbnN0YW5jZW9mIEFycmF5ICYmIHJ1bGVTZXQgaW5zdGFuY2VvZiBBcnJheSAmJiBydWxlU2V0Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgcmV0dXJuIHByb3Auc29tZShmdW5jdGlvbiAocikge1xuICAgICAgICAgICAgcmV0dXJuIHJ1bGVTZXQuaW5kZXhPZihyKSA+PSAwO1xuICAgICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gcHJvcDtcbiAgICB9XG59Il19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9kZWNvcmF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7O0dBU0c7OztBQUdIOztHQUVHO0FBRUgsd0JBQXdCO0FBQ3hCLDJFQUEyRTtBQUMzRSxnR0FBZ0c7QUFDaEcsU0FBZ0IsY0FBYyxDQUFDLGNBQWMsRUFBRSxlQUFlLEVBQUUsTUFBTTtJQUNsRSxJQUFJLEdBQUcsQ0FBQztJQUNSLElBQUksY0FBYyxHQUFHLGVBQWUsQ0FBQyxPQUFPLENBQUM7SUFDN0MsSUFBSSxVQUFVLEdBQWEsRUFBRSxDQUFDLENBQUUsb0NBQW9DO0lBRXBFLHNCQUFzQjtJQUN0QixJQUFNLFNBQVMsR0FBRyxTQUFTLFNBQVMsQ0FBQyxNQUFNO1FBQ3ZDLG1GQUFtRjtRQUNuRiwwQkFBMEI7UUFDMUIsSUFBSSxHQUFHLEVBQUU7WUFDTCxHQUFHLEdBQUcsR0FBRyxDQUFDLE1BQU0sRUFBRSxjQUFjLENBQUMsQ0FBQTtTQUNwQzthQUFNO1lBQ0gsR0FBRyxHQUFHLGVBQWUsQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1NBQ2hFO1FBRUQsb0VBQW9FO1FBQ3BFLE1BQU0sQ0FBQyxjQUFjLEdBQUcsVUFBVSxZQUFZLEVBQUUsY0FBYztZQUMxRCxJQUFJLGNBQWMsQ0FBQyxJQUFJLEVBQUU7Z0JBQ3JCLE1BQU0sQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLEdBQUcsY0FBYyxDQUFDLGNBQWMsQ0FDMUQsWUFBWSxFQUNaLGNBQWMsQ0FBQyxJQUFJLEVBQ25CLGNBQWMsQ0FBQyxFQUFFLEVBQ2pCLGNBQWMsQ0FBQyxRQUFRLENBQzFCLENBQUM7YUFDTDtpQkFBTTtnQkFDSCxNQUFNLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxHQUFHLGNBQWMsQ0FBQztnQkFDbEUsSUFBTSxPQUFLLEdBQUcsY0FBYyxDQUFDLEtBQUss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O0lBQ0wsQ0FBQyxDQUFDO0FBQ04sQ0FBQztBQTFDRCx3QkEwQ0M7QUFBQSxDQUFDO0FBR0YsU0FBUyxZQUFZLENBQUMsSUFBSSxFQUFFLE9BQU87SUFDL0IsSUFBSSxJQUFJLFlBQVksS0FBSyxJQUFJLE9BQU8sWUFBWSxLQUFLLElBQUksT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7UUFDekUsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUN4QixPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLENBQUMsQ0FBQyxDQUFDO0tBQ047U0FBTTtRQUNILE9BQU8sSUFBSSxDQUFDO0tBQ2Y7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBBdHRhY2hlcyBzeW5jU3RhdGVzIHByb3BzIHRvIHRoZSB0ZW1wbGF0ZVxuICogSWYgYSBjbGFzcyBpcyBkZWNvcmF0ZWQgbGlrZSBAc3VwZXJ0eXBlQ2xhc3Moe3N5bmNTdGF0ZXM6IFsnaW50ZXJuYWwnLCAnaG9tZSddfSksIGFueSBpbnN0YW5jZXMgb2YgdGhhdCBjbGFzc1xuICogaW5jbHVkaW5nIHRob3NlIHRoYXQgZXhpc3QgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgYXBwbGljYXRpb24sIHNob3VsZCBvbmx5IGJlIHNlbnQgb3ZlciB3aGVuIHRoZSBjb250cm9sbGVyIHN0YXRlIG9uXG4gKiB0aGUgc2VydmVyIGluZGljYXRlcyB0aGF0IHRoZSBjb3JyZWN0IHN5bmNTdGF0ZSAoaWYgYW5kIG9ubHkgaWYgY29udHJvbGxlci5zeW5jU3RhdGUgPSAnaG9tZScgb3IgJ2ludGVybmFsJywgdGhlbiBhblxuICogb2JqZWN0IG9mIHRoaXMgY2xhc3Mgd2lsbCBiZSBzZW50LCBvdGhlcndpc2Ugc2Vtb3R1cyB3aWxsIHJlZnJhaW4gZnJvbSBzZW5kaW5nIGl0IG92ZXIpLiBUaGUgY2F2ZWF0LCBob3dldmVyLCBpcyBpZlxuICogc2Vtb3R1cycgY29udHJvbGxlcidzIHN5bmNTdGF0ZSBpcyBkZWZpbmVkIGFzICcqJyB0aGVuIHdlIHdpbGwgYnkgZGVmYXVsdCBzZW5kIGFsbCB0ZW1wbGF0ZXMgdW5sZXNzIHNwZWNpZmllZCBvdGhlci1cbiAqIHdpc2UgKHRoZSBzYW1lIGFzIHRyZWF0aW5nIHN5bmNTdGF0ZTogWycqJ10pXG4gKlxuICovXG5cblxuLyoqXG4gKiBAVE9ETzogVGhpcyBzaG91bGQgYmUgY29uc29saWRhdGVkIHdpdGggU3VwZXJ0eXBlJ3MgdmVyc2lvbiB3aGVuIHdlIGZpbmlzaCBjb252ZXJ0aW5nIHRvIHR5cGVzY3JpcHRcbiAqL1xuXG4vLyBDb250ZXh0IFN3aXRjaCBDaGFpbjpcbi8vIDFzdCBwYXNzOiBTZW1vdHVzIChzQ2xhc3MpIC0+IFN1cGVydHlwZSAoc0NsYXNzKSAtPiBTZW1vdHVzIChyZXR1cm4gUmV0KVxuLy8gMm5kIHBhc3M6IFNlbW90dXMgKHNDbGFzcykgLT4gU2Vtb3R1cyAoZGVjb3JhdG9yKSAtPiBTdXBlcnR5cGUgKGV2YWwgcmV0KSAtPiBTZW1vdHVzIChyZXR1cm4pXG5leHBvcnQgZnVuY3Rpb24gc3VwZXJ0eXBlQ2xhc3Mob2JqZWN0VGVtcGxhdGUsIFN1cGVydHlwZU1vZHVsZSwgdGFyZ2V0KTogYW55IHtcbiAgICBsZXQgcmV0O1xuICAgIGxldCBPYmplY3RUZW1wbGF0ZSA9IFN1cGVydHlwZU1vZHVsZS5kZWZhdWx0O1xuICAgIGxldCBzeW5jU3RhdGVzOiBTdHJpbmdbXSA9IFtdOyAgLy8gRGVmYXVsdCBzeW5jU3RhdGVzIHRvIGVtcHR5IGFycmF5XG5cbiAgICAvLyBEZWNvcmF0b3Igd29ya2VyYmVlXG4gICAgY29uc3QgZGVjb3JhdG9yID0gZnVuY3Rpb24gZGVjb3JhdG9yKHRhcmdldCkge1xuICAgICAgICAvLyBzZWNvbmQgdGltZSB3ZSBtdXN0IGNhbGwgdGhlIGZ1bmN0aW9uIHJldHVybmVkIHRoZSBmaXJzdCB0aW1lIGJlY2F1c2UgaXQgaGFzIHRoZVxuICAgICAgICAvLyBwcm9wZXJ0aWVzIGFzIGEgY2xvc3VyZVxuICAgICAgICBpZiAocmV0KSB7XG4gICAgICAgICAgICByZXQgPSByZXQodGFyZ2V0LCBvYmplY3RUZW1wbGF0ZSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldCA9IFN1cGVydHlwZU1vZHVsZS5zdXBlcnR5cGVDbGFzcyh0YXJnZXQsIG9iamVjdFRlbXBsYXRlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE1haW5seSBmb3IgcGVyc2lzdG9yIHByb3BlcnRpZXMgdG8gbWFrZSBzdXJlIHRoZXkgZ2V0IHRyYW5zcG9ydGVkXG4gICAgICAgIHRhcmdldC5jcmVhdGVQcm9wZXJ0eSA9IGZ1bmN0aW9uIChwcm9wZXJ0eU5hbWUsIGRlZmluZVByb3BlcnR5KSB7XG4gICAgICAgICAgICBpZiAoZGVmaW5lUHJvcGVydHkuYm9keSkge1xuICAgICAgICAgICAgICAgIHRhcmdldC5wcm90b3R5cGVbcHJvcGVydHlOYW1lXSA9IG9iamVjdFRlbXBsYXRlLl9zZXR1cEZ1bmN0aW9uKFxuICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eU5hbWUsXG4gICAgICAgICAgICAgICAgICAgIGRlZmluZVByb3BlcnR5LmJvZHksXG4gICAgICAgICAgICAgICAgICAgIGRlZmluZVByb3BlcnR5Lm9uLFxuICAgICAgICAgICAgICAgICAgICBkZWZpbmVQcm9wZXJ0eS52YWxpZGF0ZVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRhcmdldC5wcm90b3R5cGUuX19hbW9ycGhpY3Byb3BzX19bcHJvcGVydHlOYW1lXSA9IGRlZmluZVByb3BlcnR5O1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gZGVmaW5lUHJvcGVydHkudmFsdWU7XG5cbiAgICAgICAgICAgICAgICAvLyBUaGUgZ2V0dGVyIGFjdHVhbGx5IGluaXRpYWxpemVzIHRoZSBwcm9wZXJ0eVxuICAgICAgICAgICAgICAgIGRlZmluZVByb3BlcnR5LmdldCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IG5hbWVTcGFjZWRQcm9wZXJ0eSA9IGBfXyR7cHJvcGVydHlOYW1lfWA7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzW25hbWVTcGFjZWRQcm9wZXJ0eV0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBjbG9uZVRlbXBsYXRlID0gZGVmaW5lUHJvcGVydHkub2YgfHwgZGVmaW5lUHJvcGVydHkudHlwZSB8fCBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpc1tuYW1lU3BhY2VkUHJvcGVydHldID0gT2JqZWN0VGVtcGxhdGUuY2xvbmUodmFsdWUsIGNsb25lVGVtcGxhdGUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzW25hbWVTcGFjZWRQcm9wZXJ0eV07XG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IGRlZmluZVByb3BlcnRpZXMgPSB7fTtcbiAgICAgICAgICAgICAgICBvYmplY3RUZW1wbGF0ZS5fc2V0dXBQcm9wZXJ0eShwcm9wZXJ0eU5hbWUsIGRlZmluZVByb3BlcnR5LCB1bmRlZmluZWQsIGRlZmluZVByb3BlcnRpZXMpO1xuICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldC5wcm90b3R5cGUsIGRlZmluZVByb3BlcnRpZXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIC8vIEFzc2lnbmluZyBzeW5jIHN0YXRlcyBmcm9tIHByb3AgZGVmaW5pdGlvbiBvbnRvIHRoZSB0ZW1wbGF0ZVxuICAgICAgICBpZiAoc3luY1N0YXRlcykge1xuICAgICAgICAgICAgdGFyZ2V0LnN5bmNTdGF0ZXMgPSBzeW5jU3RhdGVzO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJldDtcbiAgICB9O1xuXG4gICAgLy8gQ2FsbGluZyB0aGUgZGVjb3JhdG9yIHByb2Nlc3NvciB3aXRoIHRoZSBhY3R1YWwgVGVtcGxhdGUgKDJuZCB0aW1lKVxuICAgIGlmICh0YXJnZXQucHJvdG90eXBlKSB7XG4gICAgICAgIHJldHVybiBkZWNvcmF0b3IodGFyZ2V0KTtcbiAgICB9IGVsc2UgaWYgKHRhcmdldCAmJiB0YXJnZXQuc3luY1N0YXRlcyAmJiB0YXJnZXQuc3luY1N0YXRlcyBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgIHN5bmNTdGF0ZXMgPSB0YXJnZXQuc3luY1N0YXRlcztcbiAgICB9IGVsc2UgaWYgKHRhcmdldCAmJiB0YXJnZXQuc3luY1N0YXRlcyApIHtcbiAgICAgICAgY29uc29sZS53YXJuKGBTZW1vdHVzIHdhcm5pbmc6ICR7dGFyZ2V0LnN5bmNTdGF0ZXN9IGlzIG5vdCBhbiBhcnJheSB2YWx1ZSwgc28gbm90IHNldHRpbmcgdXAgU3luY1N0YXRlcyBmb3IgdGhpcyB0YXJnZXQ6ICR7dGFyZ2V0fWApO1xuICAgIH1cblxuICAgIC8vIENhbGxlZCBmaXJzdCB0aW1lIHdpdGggcGFyYW1ldGVycyAocHJvcCBkZWZpbml0aW9uKSByYXRoZXIgdGhhbiB0YXJnZXQgKHRlbXBsYXRlKVxuICAgIC8vIGNhbGwgc3VwZXJ0eXBlcyBzdXBlcnR5cGVDbGFzcyBmdW5jdGlvbiB3aGljaCB3aWxsIHJldHVybiBhIGZ1bmN0aW9uIHRoYXQgbXVzdCBiZVxuICAgIC8vIGNhbGxlZCBvbiB0aGUgMm5kIHBhc3Mgd2hlbiB3ZSBoYXZlIGEgdGFyZ2V0LiBUaGlzIGZ1bmN0aW9uJ3MgY2xvc3VyZSB3aWxsIGFsc28gaGF2ZSBhIHJlZiB0byB0aGUgb3JpZ2luYWwgcHJvcGVydGllc1xuICAgIHJldCA9IFN1cGVydHlwZU1vZHVsZS5zdXBlcnR5cGVDbGFzcyh0YXJnZXQsIG9iamVjdFRlbXBsYXRlKTtcbiAgICByZXR1cm4gZGVjb3JhdG9yOyAvLyBkZWNvcmF0b3Igd2lsbCBiZSBjYWxsZWQgMm5kIHRpbWUgd2l0aCByZXQgYXMgYSBjbG9zdXJlXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBTdXBlcnR5cGUodGVtcGxhdGUsIG9iamVjdFRlbXBsYXRlLCBTdXBlcnR5cGUpIHtcbiAgICByZXR1cm4gU3VwZXJ0eXBlLmNhbGwodGVtcGxhdGUsIG9iamVjdFRlbXBsYXRlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByb3BlcnR5KG9iamVjdFRlbXBsYXRlLCBTdXBlcnR5cGVNb2R1bGUsIHByb3BzLCB0b0NsaWVudFJ1bGVTZXQsIHRvU2VydmVyUnVsZVNldCkge1xuICAgIHByb3BzID0gcHJvcHMgfHwge307XG4gICAgcHJvcHMudG9DbGllbnQgPSBhcHBseVJ1bGVTZXQocHJvcHMudG9DbGllbnQsIHRvQ2xpZW50UnVsZVNldCk7XG4gICAgcHJvcHMudG9TZXJ2ZXIgPSBhcHBseVJ1bGVTZXQocHJvcHMudG9TZXJ2ZXIsIHRvU2VydmVyUnVsZVNldCk7XG4gICAgY29uc3QgYmFzZURlY29yYXRvciA9IFN1cGVydHlwZU1vZHVsZS5wcm9wZXJ0eShwcm9wcywgb2JqZWN0VGVtcGxhdGUpO1xuICAgIHJldHVybiBmdW5jdGlvbiAodGFyZ2V0LCB0YXJnZXRLZXkpIHtcbiAgICAgICAgYmFzZURlY29yYXRvcih0YXJnZXQsIHRhcmdldEtleSk7XG4gICAgICAgIGNvbnN0IGRlZmluZVByb3BlcnRpZXMgPSB7fTtcbiAgICAgICAgcHJvcHMuZW51bWVyYWJsZSA9IHRydWU7XG4gICAgICAgIHByb3BzLndyaXRhYmxlID0gdHJ1ZTtcbiAgICAgICAgb2JqZWN0VGVtcGxhdGUuX3NldHVwUHJvcGVydHkodGFyZ2V0S2V5LCBwcm9wcywgdW5kZWZpbmVkLCBkZWZpbmVQcm9wZXJ0aWVzKTtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnRpZXModGFyZ2V0LCBkZWZpbmVQcm9wZXJ0aWVzKTtcbiAgICB9O1xufVxuXG5cbmV4cG9ydCBmdW5jdGlvbiByZW1vdGUob2JqZWN0VGVtcGxhdGUsIGRlZmluZVByb3BlcnR5KSB7XG4gICAgZGVmaW5lUHJvcGVydHkgPSBkZWZpbmVQcm9wZXJ0eSB8fCB7fTtcblxuICAgIC8qXG4gICAgICAgIGlmIHdlIGhhdmVuJ3Qgc3VwcGxpZWQgYSBjb25maWd1cmF0aW9uIG9iamVjdCBpbnRvIHRoZSBkZWNvcmF0b3IsXG4gICAgICAgICBkZWZhdWx0IHRoZSByb2xlIG9mIHRoaXMgZnVuY3Rpb24gdG8gYSBzZXJ2ZXIgQVBJIGZ1bmN0aW9uXG4gICAgICovXG4gICAgaWYgKCFkZWZpbmVQcm9wZXJ0eS5vbikge1xuICAgICAgICBkZWZpbmVQcm9wZXJ0eS5vbiA9ICdzZXJ2ZXInO1xuICAgIH1cblxuICAgIC8vIGZ1bmN0aW9uIHRoYXQgd2UgY2FsbCB0byB2YWxpZGF0ZSBhbnkgY2hhbmdlcyBmb3IgcmVtb3RlIGNhbGxzXG4gICAgbGV0IHJlbW90ZVZhbGlkYXRvciA9IGRlZmluZVByb3BlcnR5LnNlcnZlclZhbGlkYXRpb247XG4gICAgbGV0IGlzUHVibGljID0gISFkZWZpbmVQcm9wZXJ0eS5wdWJsaWM7XG5cbiAgICByZXR1cm4gZnVuY3Rpb24gKHRhcmdldCwgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yKSB7XG4gICAgICAgIGRlc2NyaXB0b3IudmFsdWUgPSBvYmplY3RUZW1wbGF0ZS5fc2V0dXBGdW5jdGlvbihcbiAgICAgICAgICAgIHByb3BlcnR5TmFtZSxcbiAgICAgICAgICAgIGRlc2NyaXB0b3IudmFsdWUsXG4gICAgICAgICAgICBkZWZpbmVQcm9wZXJ0eS5vbixcbiAgICAgICAgICAgIGRlZmluZVByb3BlcnR5LnZhbGlkYXRlLFxuICAgICAgICAgICAgcmVtb3RlVmFsaWRhdG9yLFxuICAgICAgICAgICAgaXNQdWJsaWMsXG4gICAgICAgICAgICBkZWZpbmVQcm9wZXJ0eS50YXJnZXRcbiAgICAgICAgKTtcblxuICAgICAgICAvKlxuICAgICAgICAgICAgdGhpcyBmdW5jdGlvbiBiZWVuIG1hcmtlZCBhcyBhIHNlcnZlciBBUEkgZWl0aGVyIGV4cGxpY2l0bHkgb3IgYnkgZGVmYXVsdC5cbiAgICAgICAgICAgIHNldCB0aGUgYXBwcm9wcmlhdGUgbWV0YWRhdGEuXG4gICAgICAgICAqL1xuICAgICAgICBpZiAoZGVmaW5lUHJvcGVydHkub24gPT09ICdzZXJ2ZXInKSB7XG4gICAgICAgICAgICBkZXNjcmlwdG9yLnZhbHVlLl9fb25fXyA9ICdzZXJ2ZXInO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGRlZmluZVByb3BlcnR5LnR5cGUpIHtcbiAgICAgICAgICAgIGRlc2NyaXB0b3IudmFsdWUuX19yZXR1cm5zX18gPSBkZWZpbmVQcm9wZXJ0eS50eXBlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkZWZpbmVQcm9wZXJ0eS5vZikge1xuICAgICAgICAgICAgZGVzY3JpcHRvci52YWx1ZS5fX3JldHVybnNfXyA9IGRlZmluZVByb3BlcnR5Lm9mO1xuICAgICAgICAgICAgZGVzY3JpcHRvci52YWx1ZS5fX3JldHVybnNhcnJheV9fID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH07XG59O1xuXG5cbmZ1bmN0aW9uIGFwcGx5UnVsZVNldChwcm9wLCBydWxlU2V0KSB7XG4gICAgaWYgKHByb3AgaW5zdGFuY2VvZiBBcnJheSAmJiBydWxlU2V0IGluc3RhbmNlb2YgQXJyYXkgJiYgcnVsZVNldC5sZW5ndGggPiAwKSB7XG4gICAgICAgIHJldHVybiBwcm9wLnNvbWUoZnVuY3Rpb24gKHIpIHtcbiAgICAgICAgICAgIHJldHVybiBydWxlU2V0LmluZGV4T2YocikgPj0gMDtcbiAgICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHByb3A7XG4gICAgfVxufSJdfQ==
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.removeAll = exports.remove = exports.getArrayChangeGroup = exports.getPropChangeGroup = exports.get = void 0;
var Types_1 = require("./Types");

@@ -55,2 +56,2 @@ var Subscriptions = require("./Subscriptions");

exports.removeAll = removeAll;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2hhbmdlR3JvdXBzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hlbHBlcnMvQ2hhbmdlR3JvdXBzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsaUNBQTZFO0FBQzdFLCtDQUFpRDtBQUVqRCxTQUFnQixHQUFHLENBQUMsSUFBMkIsRUFBRSxjQUFjLEVBQUUsT0FBZ0I7SUFDN0UsSUFBTSxZQUFZLEdBQUcsYUFBYSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDNUUsT0FBTyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2xDLENBQUM7QUFIRCxrQkFHQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBZ0Isa0JBQWtCLENBQUMsY0FBYyxFQUFFLE9BQWdCO0lBQy9ELE9BQU8sR0FBRyxDQUFDLGNBQU0sRUFBRSxjQUFjLEVBQUUsT0FBTyxDQUFnQixDQUFDO0FBQy9ELENBQUM7QUFGRCxnREFFQztBQUVEOzs7Ozs7R0FNRztBQUNILFNBQWdCLG1CQUFtQixDQUFDLElBQWdCLEVBQUUsY0FBYyxFQUFFLE9BQWdCO0lBQ2xGLE9BQU8sR0FBRyxDQUFDLElBQUksRUFBRSxjQUFjLEVBQUUsT0FBTyxDQUFlLENBQUM7QUFDNUQsQ0FBQztBQUZELGtEQUVDO0FBR0Q7Ozs7OztHQU1HO0FBQ0gsU0FBZ0IsTUFBTSxDQUFDLElBQVksRUFBRSxjQUFjLEVBQUUsT0FBZ0I7SUFDakUsYUFBYSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsY0FBYyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUMxRSxDQUFDO0FBRkQsd0JBRUM7QUFHRDs7Ozs7O0dBTUc7QUFDSCxTQUFnQixTQUFTLENBQUMsSUFBWSxFQUFFLE9BQWdCO0lBQ3BELEtBQUssSUFBTSxZQUFZLElBQUksYUFBYSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ2hFLE1BQU0sQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0tBQ3ZDO0FBQ0wsQ0FBQztBQUpELDhCQUlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBcnJheUdyb3VwLCBBcnJheVR5cGVzLCBDaGFuZ2UsIENoYW5nZUdyb3VwLCBTZW1vdHVzfSBmcm9tICcuL1R5cGVzJztcbmltcG9ydCAqIGFzIFN1YnNjcmlwdGlvbnMgZnJvbSAnLi9TdWJzY3JpcHRpb25zJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldCh0eXBlOiAnY2hhbmdlJyB8IEFycmF5VHlwZXMsIHN1YnNjcmlwdGlvbklkLCBzZW1vdHVzOiBTZW1vdHVzKTogQ2hhbmdlR3JvdXAgfCBBcnJheUdyb3VwIHtcbiAgICBjb25zdCBzdWJzY3JpcHRpb24gPSBTdWJzY3JpcHRpb25zLmdldFN1YnNjcmlwdGlvbihzZW1vdHVzLCBzdWJzY3JpcHRpb25JZCk7XG4gICAgcmV0dXJuIHN1YnNjcmlwdGlvbi5sb2dbdHlwZV07XG59XG5cbi8qKlxuICogR2V0cyBQcm9wZXJ0eSBjaGFuZ2UgZ3JvdXBzIChub24tYXJyYXkpXG4gKlxuICogQHBhcmFtIHN1YnNjcmlwdGlvbklkXG4gKiBAcGFyYW0gc2Vtb3R1c1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UHJvcENoYW5nZUdyb3VwKHN1YnNjcmlwdGlvbklkLCBzZW1vdHVzOiBTZW1vdHVzKTogQ2hhbmdlR3JvdXAge1xuICAgIHJldHVybiBnZXQoQ2hhbmdlLCBzdWJzY3JpcHRpb25JZCwgc2Vtb3R1cykgYXMgQ2hhbmdlR3JvdXA7XG59XG5cbi8qKlxuICogR2V0cyBBcnJheSBDaGFuZ2UgR3JvdXBzXG4gKlxuICogQHBhcmFtIHR5cGVcbiAqIEBwYXJhbSBzdWJzY3JpcHRpb25JZFxuICogQHBhcmFtIHNlbW90dXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEFycmF5Q2hhbmdlR3JvdXAodHlwZTogQXJyYXlUeXBlcywgc3Vic2NyaXB0aW9uSWQsIHNlbW90dXM6IFNlbW90dXMpOiBBcnJheUdyb3VwIHtcbiAgICByZXR1cm4gZ2V0KHR5cGUsIHN1YnNjcmlwdGlvbklkLCBzZW1vdHVzKSBhcyBBcnJheUdyb3VwO1xufVxuXG5cbi8qKlxuICogUmVtb3ZlIGEgY2hhbmdlIGdyb3VwIGZyb20gYSBzdWJzY3JpcHRpb25cbiAqXG4gKiBAcGFyYW0gdHlwZVxuICogQHBhcmFtIHN1YnNjcmlwdGlvbklkIHVua25vd25cbiAqIEBwYXJhbSBzZW1vdHVzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmUodHlwZTogc3RyaW5nLCBzdWJzY3JpcHRpb25JZCwgc2Vtb3R1czogU2Vtb3R1cykge1xuICAgIFN1YnNjcmlwdGlvbnMuZ2V0U3Vic2NyaXB0aW9uKHNlbW90dXMsIHN1YnNjcmlwdGlvbklkKS5sb2dbdHlwZV0gPSB7fTtcbn1cblxuXG4vKipcbiAqIFJlbW92ZSBhbGwgY2hhbmdlIGdyb3VwcyBmcm9tIGEgc3Vic2NyaXB0aW9uIHdpdGggZ2l2ZW4gdHlwZVxuICogQHBhcmFtIHR5cGVcbiAqIEBwYXJhbSBzZW1vdHVzXG4gKlxuICogQHByaXZhdGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZUFsbCh0eXBlOiBzdHJpbmcsIHNlbW90dXM6IFNlbW90dXMpIHtcbiAgICBmb3IgKGNvbnN0IHN1YnNjcmlwdGlvbiBpbiBTdWJzY3JpcHRpb25zLmdldFN1YnNjcmlwdGlvbnMoc2Vtb3R1cykpIHtcbiAgICAgICAgcmVtb3ZlKHR5cGUsIHN1YnNjcmlwdGlvbiwgc2Vtb3R1cyk7XG4gICAgfVxufSJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2hhbmdlR3JvdXBzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hlbHBlcnMvQ2hhbmdlR3JvdXBzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGlDQUE2RTtBQUM3RSwrQ0FBaUQ7QUFFakQsU0FBZ0IsR0FBRyxDQUFDLElBQTJCLEVBQUUsY0FBYyxFQUFFLE9BQWdCO0lBQzdFLElBQU0sWUFBWSxHQUFHLGFBQWEsQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQzVFLE9BQU8sWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNsQyxDQUFDO0FBSEQsa0JBR0M7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLGtCQUFrQixDQUFDLGNBQWMsRUFBRSxPQUFnQjtJQUMvRCxPQUFPLEdBQUcsQ0FBQyxjQUFNLEVBQUUsY0FBYyxFQUFFLE9BQU8sQ0FBZ0IsQ0FBQztBQUMvRCxDQUFDO0FBRkQsZ0RBRUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxTQUFnQixtQkFBbUIsQ0FBQyxJQUFnQixFQUFFLGNBQWMsRUFBRSxPQUFnQjtJQUNsRixPQUFPLEdBQUcsQ0FBQyxJQUFJLEVBQUUsY0FBYyxFQUFFLE9BQU8sQ0FBZSxDQUFDO0FBQzVELENBQUM7QUFGRCxrREFFQztBQUdEOzs7Ozs7R0FNRztBQUNILFNBQWdCLE1BQU0sQ0FBQyxJQUFZLEVBQUUsY0FBYyxFQUFFLE9BQWdCO0lBQ2pFLGFBQWEsQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLGNBQWMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7QUFDMUUsQ0FBQztBQUZELHdCQUVDO0FBR0Q7Ozs7OztHQU1HO0FBQ0gsU0FBZ0IsU0FBUyxDQUFDLElBQVksRUFBRSxPQUFnQjtJQUNwRCxLQUFLLElBQU0sWUFBWSxJQUFJLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsRUFBRTtRQUNoRSxNQUFNLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRSxPQUFPLENBQUMsQ0FBQztLQUN2QztBQUNMLENBQUM7QUFKRCw4QkFJQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QXJyYXlHcm91cCwgQXJyYXlUeXBlcywgQ2hhbmdlLCBDaGFuZ2VHcm91cCwgU2Vtb3R1c30gZnJvbSAnLi9UeXBlcyc7XG5pbXBvcnQgKiBhcyBTdWJzY3JpcHRpb25zIGZyb20gJy4vU3Vic2NyaXB0aW9ucyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXQodHlwZTogJ2NoYW5nZScgfCBBcnJheVR5cGVzLCBzdWJzY3JpcHRpb25JZCwgc2Vtb3R1czogU2Vtb3R1cyk6IENoYW5nZUdyb3VwIHwgQXJyYXlHcm91cCB7XG4gICAgY29uc3Qgc3Vic2NyaXB0aW9uID0gU3Vic2NyaXB0aW9ucy5nZXRTdWJzY3JpcHRpb24oc2Vtb3R1cywgc3Vic2NyaXB0aW9uSWQpO1xuICAgIHJldHVybiBzdWJzY3JpcHRpb24ubG9nW3R5cGVdO1xufVxuXG4vKipcbiAqIEdldHMgUHJvcGVydHkgY2hhbmdlIGdyb3VwcyAobm9uLWFycmF5KVxuICpcbiAqIEBwYXJhbSBzdWJzY3JpcHRpb25JZFxuICogQHBhcmFtIHNlbW90dXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFByb3BDaGFuZ2VHcm91cChzdWJzY3JpcHRpb25JZCwgc2Vtb3R1czogU2Vtb3R1cyk6IENoYW5nZUdyb3VwIHtcbiAgICByZXR1cm4gZ2V0KENoYW5nZSwgc3Vic2NyaXB0aW9uSWQsIHNlbW90dXMpIGFzIENoYW5nZUdyb3VwO1xufVxuXG4vKipcbiAqIEdldHMgQXJyYXkgQ2hhbmdlIEdyb3Vwc1xuICpcbiAqIEBwYXJhbSB0eXBlXG4gKiBAcGFyYW0gc3Vic2NyaXB0aW9uSWRcbiAqIEBwYXJhbSBzZW1vdHVzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRBcnJheUNoYW5nZUdyb3VwKHR5cGU6IEFycmF5VHlwZXMsIHN1YnNjcmlwdGlvbklkLCBzZW1vdHVzOiBTZW1vdHVzKTogQXJyYXlHcm91cCB7XG4gICAgcmV0dXJuIGdldCh0eXBlLCBzdWJzY3JpcHRpb25JZCwgc2Vtb3R1cykgYXMgQXJyYXlHcm91cDtcbn1cblxuXG4vKipcbiAqIFJlbW92ZSBhIGNoYW5nZSBncm91cCBmcm9tIGEgc3Vic2NyaXB0aW9uXG4gKlxuICogQHBhcmFtIHR5cGVcbiAqIEBwYXJhbSBzdWJzY3JpcHRpb25JZCB1bmtub3duXG4gKiBAcGFyYW0gc2Vtb3R1c1xuICovXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlKHR5cGU6IHN0cmluZywgc3Vic2NyaXB0aW9uSWQsIHNlbW90dXM6IFNlbW90dXMpIHtcbiAgICBTdWJzY3JpcHRpb25zLmdldFN1YnNjcmlwdGlvbihzZW1vdHVzLCBzdWJzY3JpcHRpb25JZCkubG9nW3R5cGVdID0ge307XG59XG5cblxuLyoqXG4gKiBSZW1vdmUgYWxsIGNoYW5nZSBncm91cHMgZnJvbSBhIHN1YnNjcmlwdGlvbiB3aXRoIGdpdmVuIHR5cGVcbiAqIEBwYXJhbSB0eXBlXG4gKiBAcGFyYW0gc2Vtb3R1c1xuICpcbiAqIEBwcml2YXRlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVBbGwodHlwZTogc3RyaW5nLCBzZW1vdHVzOiBTZW1vdHVzKSB7XG4gICAgZm9yIChjb25zdCBzdWJzY3JpcHRpb24gaW4gU3Vic2NyaXB0aW9ucy5nZXRTdWJzY3JpcHRpb25zKHNlbW90dXMpKSB7XG4gICAgICAgIHJlbW92ZSh0eXBlLCBzdWJzY3JpcHRpb24sIHNlbW90dXMpO1xuICAgIH1cbn0iXX0=
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.logChanges = exports.clearClientSession = exports.generate = exports.manage = exports.create = exports.accept = exports.doNotAccept = exports.doNotChange = exports.objectOnServerOnly = exports.objectOnClientOnly = exports.isIsolatedObject = void 0;
var Sessions = require("./Sessions");

@@ -263,2 +264,2 @@ /**

exports.logChanges = logChanges;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2hhbmdlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL0NoYW5nZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFDQSxxQ0FBdUM7QUFFdkM7O0dBRUc7QUFFSCw2RkFBNkY7QUFFN0YsU0FBUyxzQkFBc0IsQ0FBQyxPQUFnQjtJQUM1QyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEtBQUssUUFBUSxJQUFJLE9BQU8sQ0FBQyxVQUFVLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUMvRixDQUFDO0FBRUQsU0FBZ0IsZ0JBQWdCLENBQUMsT0FBZ0IsRUFBRSxHQUFHO0lBQ2xELElBQUksa0JBQWtCLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxFQUFFO1FBQ2xDLE9BQU8sSUFBSSxDQUFDO0tBQ2Y7U0FDSSxJQUFJLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsRUFBRTtRQUN2QyxPQUFPLElBQUksQ0FBQztLQUNmO1NBQ0ksSUFBSSxHQUFHLENBQUMsWUFBWSxDQUFDLFVBQVUsSUFBSSxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsRUFBRTtRQUNyRSxPQUFPLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDLENBQUM7S0FDdEQ7U0FDSTtRQUNELE9BQU8sS0FBSyxDQUFDO0tBQ2hCO0FBQ0wsQ0FBQztBQWJELDRDQWFDO0FBRUQsU0FBZ0Isa0JBQWtCLENBQUMsT0FBZ0IsRUFBRSxHQUFHO0lBQ3BELE9BQU8sT0FBTyxDQUFDLElBQUksSUFBSSxRQUFRLElBQUksR0FBRyxDQUFDLFlBQVksQ0FBQyxZQUFZLEtBQUssS0FBSyxDQUFDO0FBQy9FLENBQUM7QUFGRCxnREFFQztBQUVELFNBQWdCLGtCQUFrQixDQUFDLE9BQWdCLEVBQUUsR0FBRztJQUNwRCxPQUFPLE9BQU8sQ0FBQyxJQUFJLElBQUksUUFBUSxJQUFJLEdBQUcs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QUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7aUJBQy9DO2dCQUVELEdBQUcsQ0FBQyxPQUFLLElBQU0sQ0FBQyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUNoQztTQUNKO0tBQ0o7QUFDTCxDQUFDO0FBMUNELGdDQTBDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UmVtb3RlYWJsZUNsYXNzLCBTZW1vdHVzfSBmcm9tICcuL1R5cGVzJztcbmltcG9ydCAqIGFzIFNlc3Npb25zIGZyb20gJy4vU2Vzc2lvbnMnO1xuXG4vKipcbiAqIEBUT0RPOiBGaWxsIG91dCB3aXRoIGFycmF5IGNoYW5nZSBmdW5jdGlvbnMsIGV0Yy5cbiAqL1xuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKiBDaGFuZ2UgTWFuYWdlbWVudCBGdW5jdGlvbnMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuZnVuY3Rpb24gY29udHJvbGxlckhhc1N5bmNTdGF0ZShzZW1vdHVzOiBTZW1vdHVzKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhKHNlbW90dXMucm9sZSA9PT0gJ3NlcnZlcicgJiYgc2Vtb3R1cy5jb250cm9sbGVyICYmIHNlbW90dXMuY29udHJvbGxlci5zeW5jU3RhdGUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNJc29sYXRlZE9iamVjdChzZW1vdHVzOiBTZW1vdHVzLCBvYmopOiBib29sZWFuIHtcbiAgICBpZiAob2JqZWN0T25DbGllbnRPbmx5KHNlbW90dXMsIG9iaikpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGVsc2UgaWYgKG9iamVjdE9uU2VydmVyT25seShzZW1vdHVzLCBvYmopKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBlbHNlIGlmIChvYmouX190ZW1wbGF0ZV9fLnN5bmNTdGF0ZXMgJiYgY29udHJvbGxlckhhc1N5bmNTdGF0ZShzZW1vdHVzKSkge1xuICAgICAgICByZXR1cm4gZmlsdGVyU3luY1N0YXRlcyhvYmouX190ZW1wbGF0ZV9fLCBzZW1vdHVzKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBvYmplY3RPbkNsaWVudE9ubHkoc2Vtb3R1czogU2Vtb3R1cywgb2JqKSB7XG4gICAgcmV0dXJuIHNlbW90dXMucm9sZSA9PSAnY2xpZW50JyAmJiBvYmouX190ZW1wbGF0ZV9fLl9fdG9TZXJ2ZXJfXyA9PT0gZmFsc2U7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBvYmplY3RPblNlcnZlck9ubHkoc2Vtb3R1czogU2Vtb3R1cywgb2JqKSB7XG4gICAgcmV0dXJuIHNlbW90dXMucm9sZSA9PSAnc2VydmVyJyAmJiBvYmouX190ZW1wbGF0ZV9fLl9fdG9DbGllbnRfXyA9PT0gZmFsc2U7XG59XG5cblxuLyoqXG4gKiBIZWxwZXIgbWV0aG9kIHRvIGNoZWNrIGlmIHRoZSBzcGVjaWZpZWQgc3RhdGUgZXhpc3RzIGluIHRoaXMgYXJyYXkgb2Ygc3luY1N0YXRlc1xuICogQHBhcmFtIHN0YXRlXG4gKiBAcGFyYW0gc3luY1N0YXRlc1xuICogQHBhcmFtIHNjb3BlXG4gKi9cbmZ1bmN0aW9uIGhhc1N0YXRlKHN0YXRlOiBzdHJpbmcgfCB1bmRlZmluZWQsIHN5bmNTdGF0ZXM6IEFycmF5PHN0cmluZz4sIHNjb3BlOiAnKycgfCAnLScpIHtcbiAgICAvLyBJZiB0aGUgc3RhdGUgaXMgZW1wdHkgc3RyaW5nLCBudWxsLCBvciB1bmRlZmluZWQsIHdpbGwgc3luYyBvbmx5IHNlbW90dXNDbGFzcyB3aXRob3V0IHN5bmNTdGF0ZXMsIGlmIHN0YXRlIGV4aXN0cywgd2lsbCBmaWx0ZXIgb3V0IGFsbCB0aGF0IGRvIG5vdCBoYXZlIHRoYXQgc3RhdGUgaW4gdGhlaXIgc3luY1N0YXRlc1xuICAgIGlmICghc3RhdGUpIHtcbiAgICAgICAgcmV0dXJuIHN5bmNTdGF0ZXMubGVuZ3RoID09PSAwOyAvLyBJRiBhcnJheSBpcyBlbXB0eSwgVEhFTiBkZWZhdWx0IHN0YXRlIGV4aXN0cyBpbiBhcnJheS4gRUxTRSBJRiBhcnJheSBoYXMgYW55IHZhbHVlcywgcmV0dXJucyBmYWxzZVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgaWYgKHN5bmNTdGF0ZXMubGVuZ3RoID09PSAwICYmIHNjb3BlID09PSAnKycpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlOyAvLyBSZXR1cm4gdHJ1ZSBvbiBlbXB0eSBzeW5jU3RhdGVzIGFycmF5LCBvbmx5IGlmIHNjb3BlIGlzIElOQ0xVU0lWRVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHN5bmNTdGF0ZXMuaW5jbHVkZXMoc3RhdGUpOyAvLyBJRiBoYXMgc3RhdGUgQU5EIGRvZXMgbm90IG1hdGNoIGFycmF5IGluZGV4ZXMsIFRIRU4gc3RhdGUgZG9lcyBOT1QgZXhpc3RcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRydWUgaWYgd2Ugc2hvdWxkIGZpbHRlciB0aGlzIHByb3BlcnR5IE9VVFxuICogUmV0dXJucyBmYWxzZSBpZiB3ZSBzaG91bGQgbm90IGZpbHRlciB0aGlzIHByb3BlcnR5IG91dCwgYW5kIGFjdHVhbGx5IGFjY2VwdCBhbmQgY2hhbmdlIHByb3BlcnRpZXMgb24gdGhpcyByZWZcbiAqICAgIFNjb3BlIHZhbHVlczpcbiAqICAgIElmICcqJzogRXZlcnl0aGluZyBnZXRzIHNlbnQgKE5vIGV4cGxpY2l0IGNoZWNrIGZvciB0aGlzLCBqdXN0IGNoZWNrcyBmb3IgLSBhbmQgKylcbiAqICAgIElmICctJzogRXhjbHVzaXZlIHRvIHN5bmNTdGF0ZXNcbiAqICAgIElmICcrJzogSW5jbHVzaXZlIG9mIFtkZWZhdWx0X3NldCwgc3luY1N0YXRlXVxuICogQHBhcmFtIHNlbW90dXNDbGFzc1xuICogQHBhcmFtIHNlbW90dXNcbiAqL1xuZnVuY3Rpb24gZmlsdGVyU3luY1N0YXRlcyhzZW1vdHVzQ2xhc3M6IFJlbW90ZWFibGVDbGFzcywgc2Vtb3R1czogU2Vtb3R1cyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHtzY29wZSwgc3RhdGV9ID0gc2Vtb3R1cy5jb250cm9sbGVyLnN5bmNTdGF0ZTtcbiAgICBjb25zdCBzeW5jU3RhdGVzOiBBcnJheTxzdHJpbmc+ID0gc2Vtb3R1c0NsYXNzLnN5bmNTdGF0ZXM7XG5cbiAgICBpZiAoc2Vtb3R1cy5jb250cm9sbGVyLl9fdGVtcGxhdGVfXyA9PT0gc2Vtb3R1c0NsYXNzKSB7IC8vIERvbid0IGZpbHRlciBvdXQgdGhlIGNvbnRyb2xsZXJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlmIChzY29wZSA9PT0gJy0nIHx8IHNjb3BlID09PSAnKycpIHtcbiAgICAgICAgcmV0dXJuICFoYXNTdGF0ZShzdGF0ZSwgc3luY1N0YXRlcywgc2NvcGUpO1xuICAgIH1cbiAgICBlbHNlIHsgIC8vIHNjb3BlIGlzIGRlZmF1bHQgJyonLCBvciBhbnl0aGluZyBub3QgLSBvciArXG4gICAgICAgIHJldHVybiBmYWxzZTsgLy8gRG8gbm90IGZpbHRlciB0aGlzIHNlbW90dXNDbGFzcywgZG8gbm90IGJvdGhlciBjaGVja2luZyBzeW5jU3RhdGVcbiAgICB9XG59XG5cbi8qKlxuICogSGVscGVyIGZ1bmN0aW9uIHRvIGRldGVybWluZSBpZiB3ZSBzaG91bGQgTk9UIGNyZWF0ZSBjaGFuZ2VzIGZvciB0aGUgcHJvcGVydHkgdGhpcyBkZWZpbmVQcm9wZXJ0eSBtZXRhZGF0YSBpcyBhc3NvY2lhdGVkIHdpdGhcbiAqXG4gKiBObyBuZWVkIHRvIGNoZWNrIHN5bmNTdGF0ZXMgaGVyZSBzaW5jZSB0aGlzIGlzIG9ubHkgY2FsbGVkIHdoZW5cbiAqIDEpIFJlYWRpbmcgdGhlIHN0YXRpYyB0eXBlc2NyaXB0XG4gKiAyKSBPbiB0aGUgY2xpZW50IHNpZGVcbiAqXG4gKiBAcGFyYW0gZGVmaW5lUHJvcGVydHlcbiAqIEBwYXJhbSBzZW1vdHVzQ2xhc3NcbiAqIEBwYXJhbSBzZW1vdHVzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkb05vdENoYW5nZShkZWZpbmVQcm9wZXJ0eSwgc2Vtb3R1c0NsYXNzOiAgUmVtb3RlYWJsZUNsYXNzIHwgdW5kZWZpbmVkLCBzZW1vdHVzOiBTZW1vdHVzKSB7XG4gICAgaWYgKGRlZmluZVByb3BlcnR5LmlzTG9jYWwpIHsgLy8gSWYgd2UndmUgZGVmaW5lZCB0aGUgcHJvcGVydHkgYXMgbG9jYWwgdG8gd2hlcmUgaXQncyBjcmVhdGVkIC8gbW9kaWZpZWRcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGVsc2UgaWYgKGRlZmluZVByb3BlcnR5LnRvU2VydmVyID09PSBmYWxzZSAmJiBzZW1vdHVzLnJvbGUgPT09ICdjbGllbnQnKSB7XG4gICAgICAgIHJldHVybiB0cnVlOyAvLyBJZiB3ZSdyZSB0cnlpbmcgdG8gc2VuZCBwcm9wZXJ0eSB0byB0aGUgc2VydmVyIGZyb20gY2xpZW50LCB3aGVuIHByb3AncyB0b1NlcnZlciA9PSBmYWxzZTtcbiAgICB9XG4gICAgZWxzZSBpZiAoZGVmaW5lUHJvcGVydHkudG9DbGllbnQgPT09IGZhbHNlICYmIHNlbW90dXMucm9sZSA9PT0gJ3NlcnZlcicpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7IC8vIElmIHdlJ3JlIHRyeWluZyB0byBzZW5kIHByb3BlcnR5IHRvIHRoZSBjbGllbnQgZnJvbSBzZXJ2ZXIsIHdoZW4gcHJvcCdzIHRvQ2xpZW50ID09IGZhbHNlO1xuICAgIH1cbiAgICBlbHNlIGlmIChzZW1vdHVzQ2xhc3MpIHsgLy8gRGVhbGluZyB3aXRoIGFuIGFjdHVhbCBzZW1vdHVzIGNsYXNzXG4gICAgICAgIGlmIChzZW1vdHVzQ2xhc3MuX190b1NlcnZlcl9fID09PSBmYWxzZSAmJiBzZW1vdHVzLnJvbGUgPT0gJ2NsaWVudCcpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlOyAvLyBJZiB3ZSdyZSB0cnlpbmcgdG8gc2VuZCBwcm9wZXJ0eSB0byB0aGUgc2VydmVyIGZyb20gY2xpZW50LCB3aGVuIHRoZSB3aG9sZSBzZW1vdHVzQ2xhc3MgaGFzIHRvU2VydmVyID09IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHNlbW90dXNDbGFzcy5fX3RvQ2xpZW50X18gPT09IGZhbHNlICYmIHNlbW90dXMucm9sZSA9PT0gJ3NlcnZlcicpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlOyAvLyBJZiB3ZSdyZSB0cnlpbmcgdG8gc2VuZCBwcm9wZXJ0eSB0byB0aGUgY2xpZW50IGZyb20gc2VydmVyLCB3aGVuIHRoZSB3aG9sZSBzZW1vdHVzQ2xhc3MgaGFzIHRvQ2xpZW50ID09IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xufVxuXG5cbi8qKlxuICogSGVscGVyIGZ1bmN0aW9uIHRvIGRldGVybWluZSBpZiB3ZSBzaG91bGQgbm90IGFjY2VwdCBjaGFuZ2VzIGZvciB0aGUgcHJvcGVydHkgdGhpcyBkZWZpbmVQcm9wZXJ0eSBtZXRhZGF0YSBpcyBhc3NvY2lhdGVkIHdpdGhcbiAqXG4gKlxuICogQHBhcmFtIGRlZmluZVByb3BlcnR5XG4gKiBAcGFyYW0gc2Vtb3R1c0NsYXNzXG4gKiBAcGFyYW0gc2Vtb3R1c1xuICovXG5leHBvcnQgZnVuY3Rpb24gZG9Ob3RBY2NlcHQoZGVmaW5lUHJvcGVydHksIHNlbW90dXNDbGFzczogUmVtb3RlYWJsZUNsYXNzLCBzZW1vdHVzOiBTZW1vdHVzKSB7XG4gICAgaWYgKGRlZmluZVByb3BlcnR5LmlzTG9jYWwpIHsgLy8gSWYgd2UndmUgZGVmaW5lZCB0aGUgcHJvcGVydHkgYXMgbG9jYWwgdG8gd2hlcmUgaXQncyBjcmVhdGVkIC8gbW9kaWZpZWRcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGVsc2UgaWYgKGRlZmluZVByb3BlcnR5LnRvU2VydmVyID09PSBmYWxzZSAmJiBzZW1vdHVzLnJvbGUgPT09ICdzZXJ2ZXInKSB7XG4gICAgICAgIHJldHVybiB0cnVlOyAvLyBJZiB3ZSdyZSB0cnlpbmcgdG8gYWNjZXB0IGNoYW5nZXMgd2hlcmUgdG9TZXJ2ZXIgPT0gZmFsc2UsIGJ1dCB3ZSdyZSBvbiB0aGUgc2VydmVyXG4gICAgfVxuICAgIGVsc2UgaWYgKGRlZmluZVByb3BlcnR5LnRvQ2xpZW50ID09PSBmYWxzZSAmJiBzZW1vdHVzLnJvbGUgPT09ICdjbGllbnQnKSB7XG4gICAgICAgIHJldHVybiB0cnVlOyAvLyBJZiB3ZSdyZSB0cnlpbmcgdG8gYWNjZXB0IGNoYW5nZXMgd2hlcmUgdG9DbGllbnQgaXMgZmFsc2UsIGJ1dCB3ZSdyZSBvbiB0aGUgY2xpZW50XG4gICAgfVxuICAgIGVsc2UgaWYgKHNlbW90dXNDbGFzcy5fX3RvU2VydmVyX18gPT09IGZhbHNlICYmIHNlbW90dXMucm9sZSA9PSAnc2VydmVyJykge1xuICAgICAgICByZXR1cm4gdHJ1ZTsgLy8gSWYgd2UncmUgdHJ5aW5nIHRvIGFjY2VwdCBjaGFuZ2VzIHdoZXJlIHNlbW90dXNDbGFzcydzIHRvU2VydmVyID09IGZhbHNlLCBidXQgd2UncmUgb24gdGhlIHNlcnZlclxuICAgIH1cbiAgICBlbHNlIGlmIChzZW1vdHVzQ2xhc3MuX190b0NsaWVudF9fID09PSBmYWxzZSAmJiBzZW1vdHVzLnJvbGUgPT09ICdjbGllbnQnKSB7XG4gICAgICAgIHJldHVybiB0cnVlOyAvLyBJZiB3ZSdyZSB0cnlpbmcgdG8gYWNjZXB0IGNoYW5nZXMgd2hlcmUgc2Vtb3R1c0NsYXNzJ3MgdG9DbGllbnQgaXMgZmFsc2UsIGJ1dCB3ZSdyZSBvbiB0aGUgY2xpZW50XG4gICAgfVxuICAgIGVsc2UgaWYgKGNvbnRyb2xsZXJIYXNTeW5jU3RhdGUoc2Vtb3R1cykpIHsgLy8gV2UndmUgc2V0IHRoZSBzeW5jU3RhdGUgcHJvcGVydHkgb24gdGhlIGNvbnRyb2xsZXIsIGFuZCB3ZSBoYXZlIGEgc2Vtb3R1c0NsYXNzXG4gICAgICAgIHJldHVybiBmaWx0ZXJTeW5jU3RhdGVzKHNlbW90dXNDbGFzcywgc2Vtb3R1cyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xufVxuXG4vKipcbiAqIERldGVybWluZSB3aGV0aGVyIGNoYW5nZXMgc2hvdWxkIGJlIGFjY2VwdGVkIGZvciBhIHByb3BlcnR5XG4gKlxuICogQHBhcmFtIGRlZmluZVByb3BlcnR5IHVua25vd25cbiAqIEBwYXJhbSBzZW1vdHVzQ2xhc3MgdW5rbm93blxuICogQHBhcmFtIHNlbW90dXNcbiAqXG4gKiBAcmV0dXJucyB7Qm9vbGVhbn0gdW5rbm93blxuICpcbiAqIEBwcml2YXRlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhY2NlcHQoZGVmaW5lUHJvcGVydHksIHNlbW90dXNDbGFzczogUmVtb3RlYWJsZUNsYXNzLCBzZW1vdHVzOiBTZW1vdHVzKSB7XG4gICAgcmV0dXJuICEoZG9Ob3RBY2NlcHQoZGVmaW5lUHJvcGVydHksIHNlbW90dXNDbGFzcywgc2Vtb3R1cykpO1xufVxuXG5cbi8qKlxuICogRGV0ZXJtaW5lIHdoZXRoZXIgY2hhbmdlcyBuZWVkIHRvIGJlIGNyZWF0ZWQgZm9yIGEgcHJvcGVydHlcbiAqXG4gKiBAcGFyYW0gZGVmaW5lUHJvcGVydHkgdW5rbm93blxuICogQHBhcmFtIHNlbW90dXNDbGFzcyB1bmtub3duXG4gKiBAcGFyYW0gc2Vtb3R1c1xuICpcbiAqIEByZXR1cm5zIHtCb29sZWFufSB1bmtub3duXG4gKlxuICogQHByaXZhdGVcbiAqL1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlKGRlZmluZVByb3BlcnR5LCBzZW1vdHVzQ2xhc3M6IFJlbW90ZWFibGVDbGFzcyB8IHVuZGVmaW5lZCwgc2Vtb3R1czogU2Vtb3R1cykge1xuICAgIHJldHVybiAhKGRvTm90Q2hhbmdlKGRlZmluZVByb3BlcnR5LCBzZW1vdHVzQ2xhc3MsIHNlbW90dXMpKTtcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmUgd2hldGhlciBhbnkgdHJhY2tpbmcgb2Ygb2xkIHZhbHVlcyBpcyBuZWVkZWRcbiAqXG4gKlxuICogRm9yIGEgc3BlY2lmaWMgcHJvcGVydHkgaWYgaXNMb2NhbCBpcyB0cnVlLCBpdCBtZWFucyB0aGF0IHRoZSBwcm9wZXJ0eSB3aWxsIG5ldmVyIGJlIHN5bmNlZCBvdmVyIHRoZSB3aXJlXG4gKiBJZiB0b1NlcnZlciA9PT0gZmFsc2UgQU5EIHRvQ2xpZW50ID09PSBmYWxzZSwgaXQgaXMgYW5vdGhlciBpbmRpY2F0b3IgdGhhdCB0aGlzIHByb3BlcnR5IHdpbGwgbmV2ZXIgYmUgc3luY2VkIG92ZXIgdGhlIHdpcmVcbiAqIEBwYXJhbSBkZWZpbmVQcm9wZXJ0eSB1bmtub3duXG4gKlxuICogQHJldHVybnMge0Jvb2xlYW59IHVua25vd25cbiAqXG4gKiBAcHJpdmF0ZVxuICovXG5leHBvcnQgZnVuY3Rpb24gbWFuYWdlKGRlZmluZVByb3BlcnR5KSB7XG4gICAgY29uc3QgaXNMb2NhbCA9IGRlZmluZVByb3BlcnR5LmlzTG9jYWwgPT09IHRydWU7XG4gICAgY29uc3QgaXNMb2NhbEFsdCA9IGRlZmluZVByb3BlcnR5LnRvU2VydmVyID09PSBmYWxzZSAmJiBkZWZpbmVQcm9wZXJ0eS50b0NsaWVudCA9PT0gZmFsc2U7XG4gICAgcmV0dXJuICEoaXNMb2NhbCB8fCBpc0xvY2FsQWx0KTtcbn1cblxuXG4vKipcbiAqIFJlZ2lzdGVyIHNvbWUgb2YgdGhlIG5ldyBwcm9wZXJ0eSBjaGFuZ2VzIC8gY3JlYXRpb25zIHRvIGEgbG9nXG4gKlxuICogQHBhcmFtIHNlbW90dXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlKHNlbW90dXM6IFNlbW90dXMpIHtcbiAgICBjb25zdCBzZXNzaW9uID0gU2Vzc2lvbnMuZ2V0KHNlbW90dXMpO1xuXG4gICAgZm9yIChjb25zdCBvYmogaW4gc2Vzc2lvbi5vYmplY3RzKSB7XG4gICAgICAgIGxvZ0NoYW5nZXMoc2Vzc2lvbi5vYmplY3RzW29ial0sIHNlbW90dXMpO1xuICAgIH1cbn1cblxuLyoqXG4gKiBEZWxldGUgc2Vzc2lvbiBvYmplY3RzIGZvciB0ZXN0cywgYmVjYXVzZSB1bml0IHRlc3RzIGZvciBjbGllbnQgb2JqZWN0IGVycm9uZW91c2x5IGhhdmUgc2VydmVyIHNlc3Npb24gb2JqZWN0c1xuICovXG5leHBvcnQgZnVuY3Rpb24gY2xlYXJDbGllbnRTZXNzaW9uKHNlbW90dXM6IFNlbW90dXMsIGNvbnRyb2xsZXIpIHtcbiAgICBjb25zdCBzZXNzaW9uID0gU2Vzc2lvbnMuZ2V0KHNlbW90dXMpO1xuXG4gICAgZm9yIChjb25zdCBvYmogaW4gc2Vzc2lvbi5vYmplY3RzKSB7XG4gICAgICAgIGlmIChvYmogIT09IGNvbnRyb2xsZXIuX19pZF9fKSB7XG4gICAgICAgICAgICBkZWxldGUgc2Vzc2lvbi5vYmplY3RzW29ial07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qKlxuICogU2ltdWxhdGUgZ2V0dGVycyBhbmQgc2V0dGVycyBieSB0cmFja2luZyB0aGUgb2xkIHZhbHVlIGFuZCBpZiBpdFxuICogaGFzIGNoYW5nZWQsIGNyZWF0aW5nIGEgY2hhbmdlIGxvZy4gIGxvY2FsIHByb3BlcnRpZXMgYXJlIGlnbm9yZWRcbiAqIGFuZCBwcm9wZXJ0aWVzIG5vdCB0byBiZSB0cmFuc21pdHRlZCB0byB0aGUgb3RoZXIgcGFydHkgZG8gbm90XG4gKiBnZW5lcmF0ZSBjaGFuZ2VzIGJ1dCBzdGlsbCB0cmFjayB0aGUgb2xkIHZhbHVlIHNvIHRoYXQgY2hhbmdlc1xuICogY2FuIGJlIGFwcGxpZWQgZnJvbSB0aGUgb3RoZXIgcGFydHlcbiAqXG4gKiBAcGFyYW0ge3Vua25vd259IG9iaiAtIG9iamVjdCB0byBiZSBwcm9jZXNzZWRcbiAqIEBwYXJhbSBzZW1vdHVzXG4gKlxuICogQHByaXZhdGVcbiAqIE9OTFkgQ0FMTEVEIEZST00gQ0xJRU5UXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsb2dDaGFuZ2VzKG9iaiwgc2Vtb3R1czogU2Vtb3R1cykge1xuICAgIC8vIEdvIHRocm91Z2ggYWxsIHRoZSBwcm9wZXJ0aWVzIGFuZCB0cmFuc2ZlciB0aGVtIHRvIG5ld2x5IGNyZWF0ZWQgb2JqZWN0XG4gICAgY29uc3QgcHJvcHMgPSBvYmouX190ZW1wbGF0ZV9fLmdldFByb3BlcnRpZXMoKTtcblxuICAgIGZvciAoY29uc3QgcHJvcCBpbiBwcm9wcykge1xuICAgICAgICBjb25zdCBkZWZpbmVQcm9wZXJ0eSA9IHByb3BzW3Byb3BdO1xuICAgICAgICBjb25zdCB0eXBlID0gZGVmaW5lUHJvcGVydHkudHlwZTtcblxuICAgICAgICBpZiAodHlwZSAmJiBtYW5hZ2UoZGVmaW5lUHJvcGVydHkpKSB7XG4gICAgICAgICAgICBjb25zdCBjcmVhdGVDaGFuZ2VzID0gY3JlYXRlKGRlZmluZVByb3BlcnR5LCBvYmouX190ZW1wbGF0ZV9fLCBzZW1vdHVzKTtcblxuICAgICAgICAgICAgaWYgKHR5cGUgPT0gQXJyYXkpIHtcbiAgICAgICAgICAgICAgICBpZiAoY3JlYXRlQ2hhbmdlcykge1xuICAgICAgICAgICAgICAgICAgICBpZiAob2JqW2BfXyR7cHJvcH1gXSAmJiAhb2JqW3Byb3BdKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBzd2l0Y2ggdG8gbnVsbCB0cmVhdGVkIGxpa2UgYSBwcm9wZXJ0eSBjaGFuZ2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbW90dXMuX2NoYW5nZWRWYWx1ZShvYmosIHByb3AsIG9ialtwcm9wXSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAob2JqW3Byb3BdKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBzd2l0Y2ggZnJvbSBudWxsIGxpa2UgYW4gYXJyYXkgcmVmIHdoZXJlIGFycmF5IHdpbGwgYmUgY3JlYXRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFvYmpbYF9fJHtwcm9wfWBdKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG9ialtwcm9wXS5sZW5ndGggPT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzd2l0Y2ggdG8gZW1wdHkgYXJyYXlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vtb3R1cy5fY2hhbmdlZFZhbHVlKG9iaiwgcHJvcCwgb2JqW3Byb3BdKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYmpbYF9fJHtwcm9wfWBdID0gW107IC8vIFN0YXJ0IGZyb20gc2NyYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBzZW1vdHVzLl9yZWZlcmVuY2VkQXJyYXkob2JqLCBwcm9wLCBvYmpbYF9fJHtwcm9wfWBdKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY3VyclZhbHVlID0gc2Vtb3R1cy5fY29udmVydFZhbHVlKG9ialtwcm9wXSk7XG4gICAgICAgICAgICAgICAgY29uc3QgcHJldlZhbHVlID0gc2Vtb3R1cy5fY29udmVydFZhbHVlKG9ialtgX18ke3Byb3B9YF0pO1xuXG4gICAgICAgICAgICAgICAgaWYgKGNyZWF0ZUNoYW5nZXMgJiYgY3VyclZhbHVlICE9PSBwcmV2VmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgc2Vtb3R1cy5fY2hhbmdlZFZhbHVlKG9iaiwgcHJvcCwgb2JqW3Byb3BdKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBvYmpbYF9fJHtwcm9wfWBdID0gb2JqW3Byb3BdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2hhbmdlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL0NoYW5nZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EscUNBQXVDO0FBRXZDOztHQUVHO0FBRUgsNkZBQTZGO0FBRTdGLFNBQVMsc0JBQXNCLENBQUMsT0FBZ0I7SUFDNUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLFFBQVEsSUFBSSxPQUFPLENBQUMsVUFBVSxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDL0YsQ0FBQztBQUVELFNBQWdCLGdCQUFnQixDQUFDLE9BQWdCLEVBQUUsR0FBRztJQUNsRCxJQUFJLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsRUFBRTtRQUNsQyxPQUFPLElBQUksQ0FBQztLQUNmO1NBQ0ksSUFBSSxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLEVBQUU7UUFDdkMsT0FBTyxJQUFJLENBQUM7S0FDZjtTQUNJLElBQUksR0FBRyxDQUFDLFlBQVksQ0FBQyxVQUFVLElBQUksc0JBQXNCLENBQUMsT0FBTyxDQUFDLEVBQUU7UUFDckUsT0FBTyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0tBQ3REO1NBQ0k7UUFDRCxPQUFPLEtBQUssQ0FBQztLQUNoQjtBQUNMLENBQUM7QUFiRCw0Q0FhQztBQUVELFNBQWdCLGtCQUFrQixDQUFDLE9BQWdCLEVBQUUsR0FBRztJQUNwRCxPQUFPLE9BQU8sQ0FBQyxJQUFJLElBQUksUUFBUSxJQUFJLEdBQUcsQ0FBQyxZQUFZLENBQUMsWUFBWSxLQUFLLEtBQUssQ0FBQztBQUMvRSxDQUFDO0FBRkQsZ0RBRUM7QUFFRCxTQUFnQixrQkFBa0IsQ0FBQyxPQUFnQixFQUFFLEdBQUc7SUFDcEQsT0FBTyxPQUFPLENBQUMsSUFBSSxJQUFJLFFBQVEsSUFBSSxHQUFH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QUFFO29CQUMxQyxPQUFPLENBQUMsYUFBYSxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7aUJBQy9DO2dCQUVELEdBQUcsQ0FBQyxPQUFLLElBQU0sQ0FBQyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUNoQztTQUNKO0tBQ0o7QUFDTCxDQUFDO0FBMUNELGdDQTBDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UmVtb3RlYWJsZUNsYXNzLCBTZW1vdHVzfSBmcm9tICcuL1R5cGVzJztcbmltcG9ydCAqIGFzIFNlc3Npb25zIGZyb20gJy4vU2Vzc2lvbnMnO1xuXG4vKipcbiAqIEBUT0RPOiBGaWxsIG91dCB3aXRoIGFycmF5IGNoYW5nZSBmdW5jdGlvbnMsIGV0Yy5cbiAqL1xuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKiBDaGFuZ2UgTWFuYWdlbWVudCBGdW5jdGlvbnMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuZnVuY3Rpb24gY29udHJvbGxlckhhc1N5bmNTdGF0ZShzZW1vdHVzOiBTZW1vdHVzKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhKHNlbW90dXMucm9sZSA9PT0gJ3NlcnZlcicgJiYgc2Vtb3R1cy5jb250cm9sbGVyICYmIHNlbW90dXMuY29udHJvbGxlci5zeW5jU3RhdGUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNJc29sYXRlZE9iamVjdChzZW1vdHVzOiBTZW1vdHVzLCBvYmopOiBib29sZWFuIHtcbiAgICBpZiAob2JqZWN0T25DbGllbnRPbmx5KHNlbW90dXMsIG9iaikpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGVsc2UgaWYgKG9iamVjdE9uU2VydmVyT25seShzZW1vdHVzLCBvYmopKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBlbHNlIGlmIChvYmouX190ZW1wbGF0ZV9fLnN5bmNTdGF0ZXMgJiYgY29udHJvbGxlckhhc1N5bmNTdGF0ZShzZW1vdHVzKSkge1xuICAgICAgICByZXR1cm4gZmlsdGVyU3luY1N0YXRlcyhvYmouX190ZW1wbGF0ZV9fLCBzZW1vdHVzKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBvYmplY3RPbkNsaWVudE9ubHkoc2Vtb3R1czogU2Vtb3R1cywgb2JqKSB7XG4gICAgcmV0dXJuIHNlbW90dXMucm9sZSA9PSAnY2xpZW50JyAmJiBvYmouX190ZW1wbGF0ZV9fLl9fdG9TZXJ2ZXJfXyA9PT0gZmFsc2U7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBvYmplY3RPblNlcnZlck9ubHkoc2Vtb3R1czogU2Vtb3R1cywgb2JqKSB7XG4gICAgcmV0dXJuIHNlbW90dXMucm9sZSA9PSAnc2VydmVyJyAmJiBvYmouX190ZW1wbGF0ZV9fLl9fdG9DbGllbnRfXyA9PT0gZmFsc2U7XG59XG5cblxuLyoqXG4gKiBIZWxwZXIgbWV0aG9kIHRvIGNoZWNrIGlmIHRoZSBzcGVjaWZpZWQgc3RhdGUgZXhpc3RzIGluIHRoaXMgYXJyYXkgb2Ygc3luY1N0YXRlc1xuICogQHBhcmFtIHN0YXRlXG4gKiBAcGFyYW0gc3luY1N0YXRlc1xuICogQHBhcmFtIHNjb3BlXG4gKi9cbmZ1bmN0aW9uIGhhc1N0YXRlKHN0YXRlOiBzdHJpbmcgfCB1bmRlZmluZWQsIHN5bmNTdGF0ZXM6IEFycmF5PHN0cmluZz4sIHNjb3BlOiAnKycgfCAnLScpIHtcbiAgICAvLyBJZiB0aGUgc3RhdGUgaXMgZW1wdHkgc3RyaW5nLCBudWxsLCBvciB1bmRlZmluZWQsIHdpbGwgc3luYyBvbmx5IHNlbW90dXNDbGFzcyB3aXRob3V0IHN5bmNTdGF0ZXMsIGlmIHN0YXRlIGV4aXN0cywgd2lsbCBmaWx0ZXIgb3V0IGFsbCB0aGF0IGRvIG5vdCBoYXZlIHRoYXQgc3RhdGUgaW4gdGhlaXIgc3luY1N0YXRlc1xuICAgIGlmICghc3RhdGUpIHtcbiAgICAgICAgcmV0dXJuIHN5bmNTdGF0ZXMubGVuZ3RoID09PSAwOyAvLyBJRiBhcnJheSBpcyBlbXB0eSwgVEhFTiBkZWZhdWx0IHN0YXRlIGV4aXN0cyBpbiBhcnJheS4gRUxTRSBJRiBhcnJheSBoYXMgYW55IHZhbHVlcywgcmV0dXJucyBmYWxzZVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgaWYgKHN5bmNTdGF0ZXMubGVuZ3RoID09PSAwICYmIHNjb3BlID09PSAnKycpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlOyAvLyBSZXR1cm4gdHJ1ZSBvbiBlbXB0eSBzeW5jU3RhdGVzIGFycmF5LCBvbmx5IGlmIHNjb3BlIGlzIElOQ0xVU0lWRVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHN5bmNTdGF0ZXMuaW5jbHVkZXMoc3RhdGUpOyAvLyBJRiBoYXMgc3RhdGUgQU5EIGRvZXMgbm90IG1hdGNoIGFycmF5IGluZGV4ZXMsIFRIRU4gc3RhdGUgZG9lcyBOT1QgZXhpc3RcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRydWUgaWYgd2Ugc2hvdWxkIGZpbHRlciB0aGlzIHByb3BlcnR5IE9VVFxuICogUmV0dXJucyBmYWxzZSBpZiB3ZSBzaG91bGQgbm90IGZpbHRlciB0aGlzIHByb3BlcnR5IG91dCwgYW5kIGFjdHVhbGx5IGFjY2VwdCBhbmQgY2hhbmdlIHByb3BlcnRpZXMgb24gdGhpcyByZWZcbiAqICAgIFNjb3BlIHZhbHVlczpcbiAqICAgIElmICcqJzogRXZlcnl0aGluZyBnZXRzIHNlbnQgKE5vIGV4cGxpY2l0IGNoZWNrIGZvciB0aGlzLCBqdXN0IGNoZWNrcyBmb3IgLSBhbmQgKylcbiAqICAgIElmICctJzogRXhjbHVzaXZlIHRvIHN5bmNTdGF0ZXNcbiAqICAgIElmICcrJzogSW5jbHVzaXZlIG9mIFtkZWZhdWx0X3NldCwgc3luY1N0YXRlXVxuICogQHBhcmFtIHNlbW90dXNDbGFzc1xuICogQHBhcmFtIHNlbW90dXNcbiAqL1xuZnVuY3Rpb24gZmlsdGVyU3luY1N0YXRlcyhzZW1vdHVzQ2xhc3M6IFJlbW90ZWFibGVDbGFzcywgc2Vtb3R1czogU2Vtb3R1cyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHtzY29wZSwgc3RhdGV9ID0gc2Vtb3R1cy5jb250cm9sbGVyLnN5bmNTdGF0ZTtcbiAgICBjb25zdCBzeW5jU3RhdGVzOiBBcnJheTxzdHJpbmc+ID0gc2Vtb3R1c0NsYXNzLnN5bmNTdGF0ZXM7XG5cbiAgICBpZiAoc2Vtb3R1cy5jb250cm9sbGVyLl9fdGVtcGxhdGVfXyA9PT0gc2Vtb3R1c0NsYXNzKSB7IC8vIERvbid0IGZpbHRlciBvdXQgdGhlIGNvbnRyb2xsZXJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlmIChzY29wZSA9PT0gJy0nIHx8IHNjb3BlID09PSAnKycpIHtcbiAgICAgICAgcmV0dXJuICFoYXNTdGF0ZShzdGF0ZSwgc3luY1N0YXRlcywgc2NvcGUpO1xuICAgIH1cbiAgICBlbHNlIHsgIC8vIHNjb3BlIGlzIGRlZmF1bHQgJyonLCBvciBhbnl0aGluZyBub3QgLSBvciArXG4gICAgICAgIHJldHVybiBmYWxzZTsgLy8gRG8gbm90IGZpbHRlciB0aGlzIHNlbW90dXNDbGFzcywgZG8gbm90IGJvdGhlciBjaGVja2luZyBzeW5jU3RhdGVcbiAgICB9XG59XG5cbi8qKlxuICogSGVscGVyIGZ1bmN0aW9uIHRvIGRldGVybWluZSBpZiB3ZSBzaG91bGQgTk9UIGNyZWF0ZSBjaGFuZ2VzIGZvciB0aGUgcHJvcGVydHkgdGhpcyBkZWZpbmVQcm9wZXJ0eSBtZXRhZGF0YSBpcyBhc3NvY2lhdGVkIHdpdGhcbiAqXG4gKiBObyBuZWVkIHRvIGNoZWNrIHN5bmNTdGF0ZXMgaGVyZSBzaW5jZSB0aGlzIGlzIG9ubHkgY2FsbGVkIHdoZW5cbiAqIDEpIFJlYWRpbmcgdGhlIHN0YXRpYyB0eXBlc2NyaXB0XG4gKiAyKSBPbiB0aGUgY2xpZW50IHNpZGVcbiAqXG4gKiBAcGFyYW0gZGVmaW5lUHJvcGVydHlcbiAqIEBwYXJhbSBzZW1vdHVzQ2xhc3NcbiAqIEBwYXJhbSBzZW1vdHVzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkb05vdENoYW5nZShkZWZpbmVQcm9wZXJ0eSwgc2Vtb3R1c0NsYXNzOiAgUmVtb3RlYWJsZUNsYXNzIHwgdW5kZWZpbmVkLCBzZW1vdHVzOiBTZW1vdHVzKSB7XG4gICAgaWYgKGRlZmluZVByb3BlcnR5LmlzTG9jYWwpIHsgLy8gSWYgd2UndmUgZGVmaW5lZCB0aGUgcHJvcGVydHkgYXMgbG9jYWwgdG8gd2hlcmUgaXQncyBjcmVhdGVkIC8gbW9kaWZpZWRcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGVsc2UgaWYgKGRlZmluZVByb3BlcnR5LnRvU2VydmVyID09PSBmYWxzZSAmJiBzZW1vdHVzLnJvbGUgPT09ICdjbGllbnQnKSB7XG4gICAgICAgIHJldHVybiB0cnVlOyAvLyBJZiB3ZSdyZSB0cnlpbmcgdG8gc2VuZCBwcm9wZXJ0eSB0byB0aGUgc2VydmVyIGZyb20gY2xpZW50LCB3aGVuIHByb3AncyB0b1NlcnZlciA9PSBmYWxzZTtcbiAgICB9XG4gICAgZWxzZSBpZiAoZGVmaW5lUHJvcGVydHkudG9DbGllbnQgPT09IGZhbHNlICYmIHNlbW90dXMucm9sZSA9PT0gJ3NlcnZlcicpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7IC8vIElmIHdlJ3JlIHRyeWluZyB0byBzZW5kIHByb3BlcnR5IHRvIHRoZSBjbGllbnQgZnJvbSBzZXJ2ZXIsIHdoZW4gcHJvcCdzIHRvQ2xpZW50ID09IGZhbHNlO1xuICAgIH1cbiAgICBlbHNlIGlmIChzZW1vdHVzQ2xhc3MpIHsgLy8gRGVhbGluZyB3aXRoIGFuIGFjdHVhbCBzZW1vdHVzIGNsYXNzXG4gICAgICAgIGlmIChzZW1vdHVzQ2xhc3MuX190b1NlcnZlcl9fID09PSBmYWxzZSAmJiBzZW1vdHVzLnJvbGUgPT0gJ2NsaWVudCcpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlOyAvLyBJZiB3ZSdyZSB0cnlpbmcgdG8gc2VuZCBwcm9wZXJ0eSB0byB0aGUgc2VydmVyIGZyb20gY2xpZW50LCB3aGVuIHRoZSB3aG9sZSBzZW1vdHVzQ2xhc3MgaGFzIHRvU2VydmVyID09IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHNlbW90dXNDbGFzcy5fX3RvQ2xpZW50X18gPT09IGZhbHNlICYmIHNlbW90dXMucm9sZSA9PT0gJ3NlcnZlcicpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlOyAvLyBJZiB3ZSdyZSB0cnlpbmcgdG8gc2VuZCBwcm9wZXJ0eSB0byB0aGUgY2xpZW50IGZyb20gc2VydmVyLCB3aGVuIHRoZSB3aG9sZSBzZW1vdHVzQ2xhc3MgaGFzIHRvQ2xpZW50ID09IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xufVxuXG5cbi8qKlxuICogSGVscGVyIGZ1bmN0aW9uIHRvIGRldGVybWluZSBpZiB3ZSBzaG91bGQgbm90IGFjY2VwdCBjaGFuZ2VzIGZvciB0aGUgcHJvcGVydHkgdGhpcyBkZWZpbmVQcm9wZXJ0eSBtZXRhZGF0YSBpcyBhc3NvY2lhdGVkIHdpdGhcbiAqXG4gKlxuICogQHBhcmFtIGRlZmluZVByb3BlcnR5XG4gKiBAcGFyYW0gc2Vtb3R1c0NsYXNzXG4gKiBAcGFyYW0gc2Vtb3R1c1xuICovXG5leHBvcnQgZnVuY3Rpb24gZG9Ob3RBY2NlcHQoZGVmaW5lUHJvcGVydHksIHNlbW90dXNDbGFzczogUmVtb3RlYWJsZUNsYXNzLCBzZW1vdHVzOiBTZW1vdHVzKSB7XG4gICAgaWYgKGRlZmluZVByb3BlcnR5LmlzTG9jYWwpIHsgLy8gSWYgd2UndmUgZGVmaW5lZCB0aGUgcHJvcGVydHkgYXMgbG9jYWwgdG8gd2hlcmUgaXQncyBjcmVhdGVkIC8gbW9kaWZpZWRcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGVsc2UgaWYgKGRlZmluZVByb3BlcnR5LnRvU2VydmVyID09PSBmYWxzZSAmJiBzZW1vdHVzLnJvbGUgPT09ICdzZXJ2ZXInKSB7XG4gICAgICAgIHJldHVybiB0cnVlOyAvLyBJZiB3ZSdyZSB0cnlpbmcgdG8gYWNjZXB0IGNoYW5nZXMgd2hlcmUgdG9TZXJ2ZXIgPT0gZmFsc2UsIGJ1dCB3ZSdyZSBvbiB0aGUgc2VydmVyXG4gICAgfVxuICAgIGVsc2UgaWYgKGRlZmluZVByb3BlcnR5LnRvQ2xpZW50ID09PSBmYWxzZSAmJiBzZW1vdHVzLnJvbGUgPT09ICdjbGllbnQnKSB7XG4gICAgICAgIHJldHVybiB0cnVlOyAvLyBJZiB3ZSdyZSB0cnlpbmcgdG8gYWNjZXB0IGNoYW5nZXMgd2hlcmUgdG9DbGllbnQgaXMgZmFsc2UsIGJ1dCB3ZSdyZSBvbiB0aGUgY2xpZW50XG4gICAgfVxuICAgIGVsc2UgaWYgKHNlbW90dXNDbGFzcy5fX3RvU2VydmVyX18gPT09IGZhbHNlICYmIHNlbW90dXMucm9sZSA9PSAnc2VydmVyJykge1xuICAgICAgICByZXR1cm4gdHJ1ZTsgLy8gSWYgd2UncmUgdHJ5aW5nIHRvIGFjY2VwdCBjaGFuZ2VzIHdoZXJlIHNlbW90dXNDbGFzcydzIHRvU2VydmVyID09IGZhbHNlLCBidXQgd2UncmUgb24gdGhlIHNlcnZlclxuICAgIH1cbiAgICBlbHNlIGlmIChzZW1vdHVzQ2xhc3MuX190b0NsaWVudF9fID09PSBmYWxzZSAmJiBzZW1vdHVzLnJvbGUgPT09ICdjbGllbnQnKSB7XG4gICAgICAgIHJldHVybiB0cnVlOyAvLyBJZiB3ZSdyZSB0cnlpbmcgdG8gYWNjZXB0IGNoYW5nZXMgd2hlcmUgc2Vtb3R1c0NsYXNzJ3MgdG9DbGllbnQgaXMgZmFsc2UsIGJ1dCB3ZSdyZSBvbiB0aGUgY2xpZW50XG4gICAgfVxuICAgIGVsc2UgaWYgKGNvbnRyb2xsZXJIYXNTeW5jU3RhdGUoc2Vtb3R1cykpIHsgLy8gV2UndmUgc2V0IHRoZSBzeW5jU3RhdGUgcHJvcGVydHkgb24gdGhlIGNvbnRyb2xsZXIsIGFuZCB3ZSBoYXZlIGEgc2Vtb3R1c0NsYXNzXG4gICAgICAgIHJldHVybiBmaWx0ZXJTeW5jU3RhdGVzKHNlbW90dXNDbGFzcywgc2Vtb3R1cyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xufVxuXG4vKipcbiAqIERldGVybWluZSB3aGV0aGVyIGNoYW5nZXMgc2hvdWxkIGJlIGFjY2VwdGVkIGZvciBhIHByb3BlcnR5XG4gKlxuICogQHBhcmFtIGRlZmluZVByb3BlcnR5IHVua25vd25cbiAqIEBwYXJhbSBzZW1vdHVzQ2xhc3MgdW5rbm93blxuICogQHBhcmFtIHNlbW90dXNcbiAqXG4gKiBAcmV0dXJucyB7Qm9vbGVhbn0gdW5rbm93blxuICpcbiAqIEBwcml2YXRlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhY2NlcHQoZGVmaW5lUHJvcGVydHksIHNlbW90dXNDbGFzczogUmVtb3RlYWJsZUNsYXNzLCBzZW1vdHVzOiBTZW1vdHVzKSB7XG4gICAgcmV0dXJuICEoZG9Ob3RBY2NlcHQoZGVmaW5lUHJvcGVydHksIHNlbW90dXNDbGFzcywgc2Vtb3R1cykpO1xufVxuXG5cbi8qKlxuICogRGV0ZXJtaW5lIHdoZXRoZXIgY2hhbmdlcyBuZWVkIHRvIGJlIGNyZWF0ZWQgZm9yIGEgcHJvcGVydHlcbiAqXG4gKiBAcGFyYW0gZGVmaW5lUHJvcGVydHkgdW5rbm93blxuICogQHBhcmFtIHNlbW90dXNDbGFzcyB1bmtub3duXG4gKiBAcGFyYW0gc2Vtb3R1c1xuICpcbiAqIEByZXR1cm5zIHtCb29sZWFufSB1bmtub3duXG4gKlxuICogQHByaXZhdGVcbiAqL1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlKGRlZmluZVByb3BlcnR5LCBzZW1vdHVzQ2xhc3M6IFJlbW90ZWFibGVDbGFzcyB8IHVuZGVmaW5lZCwgc2Vtb3R1czogU2Vtb3R1cykge1xuICAgIHJldHVybiAhKGRvTm90Q2hhbmdlKGRlZmluZVByb3BlcnR5LCBzZW1vdHVzQ2xhc3MsIHNlbW90dXMpKTtcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmUgd2hldGhlciBhbnkgdHJhY2tpbmcgb2Ygb2xkIHZhbHVlcyBpcyBuZWVkZWRcbiAqXG4gKlxuICogRm9yIGEgc3BlY2lmaWMgcHJvcGVydHkgaWYgaXNMb2NhbCBpcyB0cnVlLCBpdCBtZWFucyB0aGF0IHRoZSBwcm9wZXJ0eSB3aWxsIG5ldmVyIGJlIHN5bmNlZCBvdmVyIHRoZSB3aXJlXG4gKiBJZiB0b1NlcnZlciA9PT0gZmFsc2UgQU5EIHRvQ2xpZW50ID09PSBmYWxzZSwgaXQgaXMgYW5vdGhlciBpbmRpY2F0b3IgdGhhdCB0aGlzIHByb3BlcnR5IHdpbGwgbmV2ZXIgYmUgc3luY2VkIG92ZXIgdGhlIHdpcmVcbiAqIEBwYXJhbSBkZWZpbmVQcm9wZXJ0eSB1bmtub3duXG4gKlxuICogQHJldHVybnMge0Jvb2xlYW59IHVua25vd25cbiAqXG4gKiBAcHJpdmF0ZVxuICovXG5leHBvcnQgZnVuY3Rpb24gbWFuYWdlKGRlZmluZVByb3BlcnR5KSB7XG4gICAgY29uc3QgaXNMb2NhbCA9IGRlZmluZVByb3BlcnR5LmlzTG9jYWwgPT09IHRydWU7XG4gICAgY29uc3QgaXNMb2NhbEFsdCA9IGRlZmluZVByb3BlcnR5LnRvU2VydmVyID09PSBmYWxzZSAmJiBkZWZpbmVQcm9wZXJ0eS50b0NsaWVudCA9PT0gZmFsc2U7XG4gICAgcmV0dXJuICEoaXNMb2NhbCB8fCBpc0xvY2FsQWx0KTtcbn1cblxuXG4vKipcbiAqIFJlZ2lzdGVyIHNvbWUgb2YgdGhlIG5ldyBwcm9wZXJ0eSBjaGFuZ2VzIC8gY3JlYXRpb25zIHRvIGEgbG9nXG4gKlxuICogQHBhcmFtIHNlbW90dXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlKHNlbW90dXM6IFNlbW90dXMpIHtcbiAgICBjb25zdCBzZXNzaW9uID0gU2Vzc2lvbnMuZ2V0KHNlbW90dXMpO1xuXG4gICAgZm9yIChjb25zdCBvYmogaW4gc2Vzc2lvbi5vYmplY3RzKSB7XG4gICAgICAgIGxvZ0NoYW5nZXMoc2Vzc2lvbi5vYmplY3RzW29ial0sIHNlbW90dXMpO1xuICAgIH1cbn1cblxuLyoqXG4gKiBEZWxldGUgc2Vzc2lvbiBvYmplY3RzIGZvciB0ZXN0cywgYmVjYXVzZSB1bml0IHRlc3RzIGZvciBjbGllbnQgb2JqZWN0IGVycm9uZW91c2x5IGhhdmUgc2VydmVyIHNlc3Npb24gb2JqZWN0c1xuICovXG5leHBvcnQgZnVuY3Rpb24gY2xlYXJDbGllbnRTZXNzaW9uKHNlbW90dXM6IFNlbW90dXMsIGNvbnRyb2xsZXIpIHtcbiAgICBjb25zdCBzZXNzaW9uID0gU2Vzc2lvbnMuZ2V0KHNlbW90dXMpO1xuXG4gICAgZm9yIChjb25zdCBvYmogaW4gc2Vzc2lvbi5vYmplY3RzKSB7XG4gICAgICAgIGlmIChvYmogIT09IGNvbnRyb2xsZXIuX19pZF9fKSB7XG4gICAgICAgICAgICBkZWxldGUgc2Vzc2lvbi5vYmplY3RzW29ial07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qKlxuICogU2ltdWxhdGUgZ2V0dGVycyBhbmQgc2V0dGVycyBieSB0cmFja2luZyB0aGUgb2xkIHZhbHVlIGFuZCBpZiBpdFxuICogaGFzIGNoYW5nZWQsIGNyZWF0aW5nIGEgY2hhbmdlIGxvZy4gIGxvY2FsIHByb3BlcnRpZXMgYXJlIGlnbm9yZWRcbiAqIGFuZCBwcm9wZXJ0aWVzIG5vdCB0byBiZSB0cmFuc21pdHRlZCB0byB0aGUgb3RoZXIgcGFydHkgZG8gbm90XG4gKiBnZW5lcmF0ZSBjaGFuZ2VzIGJ1dCBzdGlsbCB0cmFjayB0aGUgb2xkIHZhbHVlIHNvIHRoYXQgY2hhbmdlc1xuICogY2FuIGJlIGFwcGxpZWQgZnJvbSB0aGUgb3RoZXIgcGFydHlcbiAqXG4gKiBAcGFyYW0ge3Vua25vd259IG9iaiAtIG9iamVjdCB0byBiZSBwcm9jZXNzZWRcbiAqIEBwYXJhbSBzZW1vdHVzXG4gKlxuICogQHByaXZhdGVcbiAqIE9OTFkgQ0FMTEVEIEZST00gQ0xJRU5UXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsb2dDaGFuZ2VzKG9iaiwgc2Vtb3R1czogU2Vtb3R1cykge1xuICAgIC8vIEdvIHRocm91Z2ggYWxsIHRoZSBwcm9wZXJ0aWVzIGFuZCB0cmFuc2ZlciB0aGVtIHRvIG5ld2x5IGNyZWF0ZWQgb2JqZWN0XG4gICAgY29uc3QgcHJvcHMgPSBvYmouX190ZW1wbGF0ZV9fLmdldFByb3BlcnRpZXMoKTtcblxuICAgIGZvciAoY29uc3QgcHJvcCBpbiBwcm9wcykge1xuICAgICAgICBjb25zdCBkZWZpbmVQcm9wZXJ0eSA9IHByb3BzW3Byb3BdO1xuICAgICAgICBjb25zdCB0eXBlID0gZGVmaW5lUHJvcGVydHkudHlwZTtcblxuICAgICAgICBpZiAodHlwZSAmJiBtYW5hZ2UoZGVmaW5lUHJvcGVydHkpKSB7XG4gICAgICAgICAgICBjb25zdCBjcmVhdGVDaGFuZ2VzID0gY3JlYXRlKGRlZmluZVByb3BlcnR5LCBvYmouX190ZW1wbGF0ZV9fLCBzZW1vdHVzKTtcblxuICAgICAgICAgICAgaWYgKHR5cGUgPT0gQXJyYXkpIHtcbiAgICAgICAgICAgICAgICBpZiAoY3JlYXRlQ2hhbmdlcykge1xuICAgICAgICAgICAgICAgICAgICBpZiAob2JqW2BfXyR7cHJvcH1gXSAmJiAhb2JqW3Byb3BdKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBzd2l0Y2ggdG8gbnVsbCB0cmVhdGVkIGxpa2UgYSBwcm9wZXJ0eSBjaGFuZ2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbW90dXMuX2NoYW5nZWRWYWx1ZShvYmosIHByb3AsIG9ialtwcm9wXSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAob2JqW3Byb3BdKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBzd2l0Y2ggZnJvbSBudWxsIGxpa2UgYW4gYXJyYXkgcmVmIHdoZXJlIGFycmF5IHdpbGwgYmUgY3JlYXRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFvYmpbYF9fJHtwcm9wfWBdKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG9ialtwcm9wXS5sZW5ndGggPT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzd2l0Y2ggdG8gZW1wdHkgYXJyYXlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vtb3R1cy5fY2hhbmdlZFZhbHVlKG9iaiwgcHJvcCwgb2JqW3Byb3BdKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYmpbYF9fJHtwcm9wfWBdID0gW107IC8vIFN0YXJ0IGZyb20gc2NyYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBzZW1vdHVzLl9yZWZlcmVuY2VkQXJyYXkob2JqLCBwcm9wLCBvYmpbYF9fJHtwcm9wfWBdKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY3VyclZhbHVlID0gc2Vtb3R1cy5fY29udmVydFZhbHVlKG9ialtwcm9wXSk7XG4gICAgICAgICAgICAgICAgY29uc3QgcHJldlZhbHVlID0gc2Vtb3R1cy5fY29udmVydFZhbHVlKG9ialtgX18ke3Byb3B9YF0pO1xuXG4gICAgICAgICAgICAgICAgaWYgKGNyZWF0ZUNoYW5nZXMgJiYgY3VyclZhbHVlICE9PSBwcmV2VmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgc2Vtb3R1cy5fY2hhbmdlZFZhbHVlKG9iaiwgcHJvcCwgb2JqW3Byb3BdKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBvYmpbYF9fJHtwcm9wfWBdID0gb2JqW3Byb3BdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIl19
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());

@@ -38,2 +39,3 @@ });

Object.defineProperty(exports, "__esModule", { value: true });
exports.postCallErrorLog = exports.processCall = void 0;
var Utilities_1 = require("./Utilities");

@@ -524,2 +526,2 @@ /**

exports.postCallErrorLog = postCallErrorLog;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJvY2Vzc0NhbGwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaGVscGVycy9Qcm9jZXNzQ2FsbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEseUNBQXFEO0FBR3JEOzs7Ozs7Ozs7OztHQVdHO0FBQ0gsU0FBc0IsV0FBVyxDQUFDLE9BQTJCLEVBQUUsV0FBcUI7Ozs7Ozs7b0JBRzlELHFCQUFNLE9BQU8sQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEVBQUE7O29CQUFoRCxXQUFXLEdBQUcsU0FBa0MsQ0FBQztvQkFDakQscUJBQU0sV0FBVyxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsRUFBQTs7b0JBQXZDLFNBQXVDLENBQUM7b0JBQ3ZCLHFCQUFNLDJCQUEyQixDQUFDLE9BQU8sQ0FBQyxFQUFBOztvQkFBdkQsVUFBVSxHQUFHLFNBQTBDO29CQUM5QyxxQkFBTSxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLEVBQUE7O29CQUF4RCxVQUFVLEdBQUcsU0FBMkMsQ0FBQztvQkFDMUMscUJBQU0sV0FBVyxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsRUFBQTs7b0JBQS9DLE1BQU0sR0FBRyxTQUFzQztvQkFDckQscUJBQU0sWUFBWSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsRUFBQTs7b0JBQW5DLFNBQW1DLENBQUM7b0JBQ3BDLHFCQUFNLGVBQWUsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLEVBQUE7O29CQUF0QyxTQUFzQyxDQUFDOzs7O29CQUV2QyxxQkFBTSxlQUFlLENBQUMsT0FBTyxFQUFFLEtBQUcsQ0FBQyxFQUFBOztvQkFBbkMsU0FBbUMsQ0FBQzs7Ozs7O0NBRTNDO0FBYkQsa0NBYUM7QUFHRDs7OztHQUlHO0FBQ0gsU0FBZSxTQUFTLENBQUMsT0FBMkI7Ozs7WUFDekMsT0FBTyxHQUE0RixPQUFPLFFBQW5HLEVBQUUsVUFB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QUMsQ0FBQztJQUM3QixPQUFPLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDekIsT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFDO0FBQzVCLENBQUM7QUFHRDs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFnQixnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQXNCLEVBQUUsV0FBd0I7SUFDNUgsSUFBSSxPQUFPLEdBQUc7UUFDVixTQUFTLEVBQUUsU0FBUztRQUNwQixNQUFNLEVBQUUscUJBQXFCO1FBQzdCLElBQUksRUFBRTtZQUNGLElBQUksRUFBRSxVQUFVLENBQUMsSUFBSTtZQUNyQixRQUFRLEVBQUUsbUJBQU8sQ0FBQyxXQUFXLENBQUM7WUFDOUIsUUFBUSxFQUFFLFVBQVUsQ0FBQyxRQUFRO1lBQzdCLE9BQU8sRUFBRSxTQUFTO1NBQ3JCO1FBQ0QsUUFBUSxFQUFFLFNBQVM7S0FDdEIsQ0FBQztJQUVGLE9BQU8sQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0lBRTVCLElBQUksTUFBTSxDQUFDLElBQUksRUFBRTtRQUNiLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztLQUNsQztJQUVELE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFDeEMsQ0FBQztBQXBCRCw0Q0FvQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2RlbGF5LCBnZXRFcnJvciwgbG9nVGltZX0gZnJvbSAnLi9VdGlsaXRpZXMnO1xuaW1wb3J0IHtDYWxsQ29udGV4dCwgUHJvY2Vzc0NhbGxQYXlsb2FkLCBSZW1vdGVDYWxsLCBTZW1vdHVzLCBTZXNzaW9ufSBmcm9tICcuL1R5cGVzJztcblxuLyoqXG4gKiBXZSBwcm9jZXNzIHRoZSBjYWxsIHRoZSByZW1vdGUgbWV0aG9kIGluIHN0YWdlcyBzdGFydGluZyBieSBsZXR0aW5nIHRoZSBjb250cm9sbGVyIGV4YW1pbmUgdGhlXG4gKiBjaGFuZ2VzIChwcmVDYWxsSG9vaykgYW5kIGdpdmluZyBpdCBhIGNoYW5jZSB0byByZWZyZXNoIGRhdGEgaWYgaXQgbmVlZHMgdG8uICBUaGVuIHdlIGFwcGx5IGFueVxuICogY2hhbmdlcyBpbiB0aGUgbWVzc2FnZXMgYW5kIGdpdmUgdGhlIG9iamVjdCBvd25pbmcgdGhlIG1ldGhvZCBhIGNoYW5jZSB0byB2YWxpZGF0ZSB0aGF0IHRoZVxuICogY2FsbCBpcyB2YWxpZCBhbmQgdGFrZSBjYXJlIG9mIGFueSBhdXRob3JpemF0aW9uIGNvbmNlcm5zLiAgRmluYWxseSB3ZSBsZXQgdGhlIGNvbnRyb2xsZXIgcGVyZm9ybVxuICogYW55IHBvc3QtY2FsbCBwcm9jZXNzaW5nIHN1Y2ggYXMgY29tbWl0aW5nIGRhdGEgYW5kIHRoZW4gd2UgZGVhbCB3aXRoIGEgZmFpbHVyZSBvciBzdWNjZXNzLlxuICpcbiAqIEBwYXJhbSBwYXlsb2FkXG4gKiBAcGFyYW0ge3Vua25vd259IGZvcmNldXBkYXRlIHVua25vd25cbiAqXG4gKiBAcmV0dXJucyB7dW5rbm93bn0gdW5rbm93blxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcHJvY2Vzc0NhbGwocGF5bG9hZDogUHJvY2Vzc0NhbGxQYXlsb2FkLCBmb3JjZXVwZGF0ZT86IGJvb2xlYW4pIHtcblxuICAgIHRyeSB7XG4gICAgICAgIGZvcmNldXBkYXRlID0gYXdhaXQgUHJvbWlzZS5yZXNvbHZlKGZvcmNldXBkYXRlKTtcbiAgICAgICAgYXdhaXQgcHJlQ2FsbEhvb2socGF5bG9hZCwgZm9yY2V1cGRhdGUpO1xuICAgICAgICBsZXQgdmFsaWRhdGlvbiA9IGF3YWl0IGFwcGx5Q2hhbmdlc0FuZFZhbGlkYXRlQ2FsbChwYXlsb2FkKTtcbiAgICAgICAgdmFsaWRhdGlvbiA9IGF3YWl0IGN1c3RvbVZhbGlkYXRpb24ocGF5bG9hZCwgdmFsaWRhdGlvbik7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGNhbGxJZlZhbGlkKHBheWxvYWQsIHZhbGlkYXRpb24pO1xuICAgICAgICBhd2FpdCBwb3N0Q2FsbEhvb2socGF5bG9hZCwgcmVzdWx0KTtcbiAgICAgICAgYXdhaXQgcG9zdENhbGxTdWNjZXNzKHBheWxvYWQsIHJlc3VsdCk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGF3YWl0IHBvc3RDYWxsRmFpbHVyZShwYXlsb2FkLCBlcnIpO1xuICAgIH1cbn1cblxuXG4vKipcbiAqIElmIHRoZXJlIGlzIGFuIHVwZGF0ZSBjb25mbGljdCB3ZSB3YW50IHRvIHJldHJ5IGFmdGVyIHJlc3RvcmluZyB0aGUgc2Vzc2lvblxuICpcbiAqIEByZXR1cm5zIHsqfSB1bmtub3duXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHJldHJ5Q2FsbChwYXlsb2FkOiBQcm9jZXNzQ2FsbFBheWxvYWQpIHtcbiAgICBjb25zdCB7c2Vtb3R1cywgcmVtb3RlQ2FsbCwgY2FsbENvbnRleHQsIHNlc3Npb24sIHN1YnNjcmlwdGlvbklkLCByZW1vdGVDYWxsSWQsIHJlc3RvcmVTZXNzaW9uQ2FsbGJhY2t9ID0gcGF5bG9hZDtcblxuICAgIGlmIChyZXN0b3JlU2Vzc2lvbkNhbGxiYWNrKSB7XG4gICAgICAgIHJlc3RvcmVTZXNzaW9uQ2FsbGJhY2soKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcHJvY2Vzc0NhbGwocGF5bG9hZCwgdHJ1ZSk7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lIHdoYXQgb2JqZWN0cyBjaGFuZ2VkIGFuZCBwYXNzIHRoaXMgdG8gdGhlIHByZVNlcnZlckNhbGwgbWV0aG9kIG9uIHRoZSBjb250cm9sbGVyXG4gKlxuICogQHBhcmFtIHBheWxvYWRcbiAqIEBwYXJhbSAgZm9yY2V1cGRhdGUgdW5rbm93blxuICpcbiAqIEByZXR1cm5zICB1bmtub3duXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHByZUNhbGxIb29rKHBheWxvYWQ6IFByb2Nlc3NDYWxsUGF5bG9hZCwgZm9yY2V1cGRhdGU/OiBib29sZWFuKTogUHJvbWlzZTxhbnk+IHtcbiAgICBjb25zdCB7c2Vtb3R1cywgcmVtb3RlQ2FsbCwgc2Vzc2lvbiwgY2FsbENvbnRleHQsIEhUVFBPYmpzfSA9IHBheWxvYWQ7XG4gICAgc2Vtb3R1cy5sb2dnZXIuaW5mbyhcbiAgICAgICAge1xuICAgICAgICAgICAgY29tcG9uZW50OiAnc2Vtb3R1cycsXG4gICAgICAgICAgICBtb2R1bGU6ICdwcm9jZXNzQ2FsbCcsXG4gICAgICAgICAgICBhY3Rpdml0eTogJ3ByZVNlcnZlckNhbGwnLFxuICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgIGNhbGw6IHJlbW90ZUNhbGwubmFtZSxcbiAgICAgICAgICAgICAgICBzZXF1ZW5jZTogcmVtb3RlQ2FsbC5zZXF1ZW5jZVxuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICByZW1vdGVDYWxsLm5hbWVcbiAgICApO1xuXG4gICAgaWYgKHNlbW90dXMuY29udHJvbGxlciAmJiBzZW1vdHVzLmNvbnRyb2xsZXIucHJlU2VydmVyQ2FsbCkge1xuICAgICAgICBsZXQgY2hhbmdlcyA9IHt9O1xuXG4gICAgICAgIGZvciAodmFyIG9iaklkIGluIEpTT04ucGFyc2UocmVtb3RlQ2FsbC5jaGFuZ2VzKSkge1xuICAgICAgICAgICAgY2hhbmdlc1tzZW1vdHVzLl9fZGljdGlvbmFyeV9fW29iaklkLnJlcGxhY2UoL1teLV0qLS8sICcnKS5yZXBsYWNlKC8tLiovLCAnJyldLl9fbmFtZV9fXSA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgcmVtb3RlT2JqZWN0ID0gc2Vzc2lvbi5vYmplY3RzW3JlbW90ZUNhbGwuaWRdO1xuXG4gICAgICAgIC8vIE5lZWQgdG8gZG91YmxlIGNoZWNrIGlmIG5vdCBpbiBzZXNzaW9uLCB3aGF0IHRoZSB0ZW1wbGF0ZSBpcy5cbiAgICAgICAgbGV0IHJlbW90ZVRlbXBsYXRlID0gc2Vtb3R1cy5fX2RpY3Rpb25hcnlfX1tyZW1vdGVDYWxsLmlkLnJlcGxhY2UoL1teLV0qLS8sICcnKS5yZXBsYWNlKC8tLiovLCAnJyldO1xuICAgICAgICBsZXQgaXNQdWJsaWMgPSBmYWxzZTtcblxuICAgICAgICBpZiAocmVtb3RlT2JqZWN0KSB7XG4gICAgICAgICAgICBpc1B1YmxpYyA9IHNlbW90dXMucm9sZSA9PT0gJ3NlcnZlcicgJiYgcmVtb3RlT2JqZWN0W3JlbW90ZUNhbGwubmFtZV0gJiYgcmVtb3RlT2JqZWN0W3JlbW90ZUNhbGwubmFtZV0ucmVtb3RlUHVibGljO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHJlbW90ZVRlbXBsYXRlKSB7XG4gICAgICAgICAgICAvLyBJZiB0aGUgY2xhc3MgZG9lc24ndCBleGlzdCwgd2Ugc2hvdWxkIGdldCB0aGUgcmVtb3RlIGZ1bmN0aW9uIGZyb20gdGhlIHByb3RvdHlwZVxuICAgICAgICAgICAgaXNQdWJsaWMgPSBzZW1vdHVzLnJvbGUgPT09ICdzZXJ2ZXInICYmIHJlbW90ZVRlbXBsYXRlLnByb3RvdHlwZVtyZW1vdGVDYWxsLm5hbWVdICYmIHJlbW90ZVRlbXBsYXRlLnByb3RvdHlwZVtyZW1vdGVDYWxsLm5hbWVdLnJlbW90ZVB1YmxpYztcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHNlbW90dXMubG9nZ2VyLmVycm9yKHtcbiAgICAgICAgICAgICAgICBjb21wb25lbnQ6ICdzZW1vdHVzJyxcbiAgICAgICAgICAgICAgICBtb2R1bGU6ICdwcm9jZXNzQ2FsbCcsXG4gICAgICAgICAgICAgICAgYWN0aXZpdHk6ICdwcmVTZXJ2ZXJDYWxsJyxcbiAgICAgICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgICAgIGNhbGw6IHJlbW90ZUNhbGwubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgc2VxdWVuY2U6IHJlbW90ZUNhbGwuc2VxdWVuY2VcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCBcdCdDb3VsZCBub3QgZmluZCB0ZW1wbGF0ZSBmb3IgJyArIG9iaklkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBzZW1vdHVzLmNvbnRyb2xsZXIucHJlU2VydmVyQ2FsbC5jYWxsKFxuICAgICAgICAgICAgc2Vtb3R1cy5jb250cm9sbGVyLFxuICAgICAgICAgICAgcmVtb3RlQ2FsbC5jaGFuZ2VzLmxlbmd0aCA+IDIsXG4gICAgICAgICAgICBjaGFuZ2VzLFxuICAgICAgICAgICAgY2FsbENvbnRleHQsXG4gICAgICAgICAgICBmb3JjZXVwZGF0ZSxcbiAgICAgICAgICAgIHJlbW90ZUNhbGwubmFtZSxcbiAgICAgICAgICAgIHJlbW90ZUNhbGwsXG4gICAgICAgICAgICBpc1B1YmxpYyxcbiAgICAgICAgICAgIEhUVFBPYmpzXG4gICAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxufVxuXG4vKipcbiAqIEFwcGx5IGNoYW5nZXMgaW4gdGhlIG1lc3NhZ2UgYW5kIHRoZW4gdmFsaWRhdGUgdGhlIGNhbGwuICBUaHJvdyBcIlN5bmMgRXJyb3JcIiBpZiBjaGFuZ2VzIGNhbid0IGJlIGFwcGxpZWRcbiAqXG4gKiBAcmV0dXJucyB7dW5rbm93bn0gdW5rbm93blxuICovXG5mdW5jdGlvbiBhcHBseUNoYW5nZXNBbmRWYWxpZGF0ZUNhbGwocGF5bG9hZDogUHJvY2Vzc0NhbGxQYXlsb2FkKTogYm9vbGVhbiB7XG4gICAgY29uc3Qge3NlbW90dXMsIHJlbW90ZUNhbGwsIGNhbGxDb250ZXh0LCBzZXNzaW9uLCBzdWJzY3JpcHRpb25JZCwgcmVtb3RlQ2FsbElkLCByZXN0b3JlU2Vzc2lvbkNhbGxiYWNrfSA9IHBheWxvYWQ7XG5cbiAgICBzZW1vdHVzLmxvZ2dlci5pbmZvKFxuICAgICAgICB7XG4gICAgICAgICAgICBjb21wb25lbnQ6ICdzZW1vdHVzJyxcbiAgICAgICAgICAgIG1vZHVsZTogJ3Byb2Nlc3NDYWxsJyxcbiAgICAgICAgICAgIGFjdGl2aXR5OiAnYXBwbHlDaGFuZ2VzQW5kVmFsaWRhdGVDYWxsJyxcbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICBjYWxsOiByZW1vdGVDYWxsLm5hbWUsXG4gICAgICAgICAgICAgICAgc2VxdWVuY2U6IHJlbW90ZUNhbGwuc2VxdWVuY2UsXG4gICAgICAgICAgICAgICAgcmVtb3RlQ2FsbElkOiByZW1vdGVDYWxsLmlkXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHJlbW90ZUNhbGwubmFtZVxuICAgICk7XG5cbiAgICBsZXQgY2hhbmdlcyA9IEpTT04ucGFyc2UocmVtb3RlQ2FsbC5jaGFuZ2VzKTtcblxuICAgIGNvbnN0IHJlcyA9IHNlbW90dXMuX2FwcGx5Q2hhbmdlcyhjaGFuZ2VzLCBzZW1vdHVzLnJvbGUgPT09ICdjbGllbnQnLCBzdWJzY3JpcHRpb25JZCwgY2FsbENvbnRleHQpO1xuICAgIGlmIChyZXMpIHtcbiAgICAgICAgY29uc3Qgb2JqID0gc2Vzc2lvbi5vYmplY3RzW3JlbW90ZUNhbGwuaWRdO1xuXG4gICAgICAgIGlmICghb2JqKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBmaW5kIG9iamVjdCBmb3IgcmVtb3RlIGNhbGwgJHtyZW1vdGVDYWxsLmlkfWApO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gY2hlY2sgdG8gc2VlIGlmIHRoaXMgZnVuY3Rpb24gaXMgc3VwcG9zZWQgdG8gYmUgY2FsbGVkIGRpcmVjdGx5IGZyb20gY2xpZW50XG4gICAgICAgIGlmIChvYmouX19wcm90b19fW3JlbW90ZUNhbGwubmFtZV0uX19vbl9fICE9PSAnc2VydmVyJykge1xuICAgICAgICAgICAgdGhyb3cgJ0ludmFsaWQgRnVuY3Rpb24gQ2FsbDsgbm90IGFuIEFQSSBmdW5jdGlvbic7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc2Vtb3R1cy5yb2xlID09PSAnc2VydmVyJyAmJiBvYmoudmFsaWRhdGVTZXJ2ZXJDYWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gb2JqLnZhbGlkYXRlU2VydmVyQ2FsbC5jYWxsKG9iaiwgcmVtb3RlQ2FsbC5uYW1lLCBjYWxsQ29udGV4dCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyAnU3luYyBFcnJvcic7XG4gICAgfVxufVxuXG4vKipcbiAqIEFwcGx5IGZ1bmN0aW9uIHNwZWNpZmljIGN1c3RvbSBzZXJ2ZXJTaWRlIHZhbGlkYXRpb24gZnVuY3Rpb25zXG4gKlxuICogQHBhcmFtIHNlbW90dXNcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gaXNWYWxpZCAtIFJlc3VsdCBvZiBwcmV2aW91cyB2YWxpZGF0aW9uIHN0ZXAgKGFwcGx5Q2hhbmdlc0FuZFZhbGlkYXRlQ2FsbClcbiAqIEBwYXJhbSBzZXNzaW9uXG4gKiBAcGFyYW0gcmVtb3RlQ2FsbFxuICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgcGFzc2VkIGZ1bmN0aW9uXG4gKi9cbmZ1bmN0aW9uIGN1c3RvbVZhbGlkYXRpb24ocGF5bG9hZDogUHJvY2Vzc0NhbGxQYXlsb2FkLCBpc1ZhbGlkOiBib29sZWFuKTogYm9vbGVhbiB7XG4gICAgY29uc3Qge3NlbW90dXMsIHJlbW90ZUNhbGwsIGNhbGxDb250ZXh0LCBzZXNzaW9uLCBzdWJzY3JpcHRpb25JZCwgcmVtb3RlQ2FsbElkLCByZXN0b3JlU2Vzc2lvbkNhbGxiYWNrfSA9IHBheWxvYWQ7XG5cbiAgICBsZXQgbG9nZ2VyT2JqZWN0ID0ge1xuICAgICAgICBjb21wb25lbnQ6ICdzZW1vdHVzJyxcbiAgICAgICAgbW9kdWxlOiAncHJvY2Vzc0NhbGwnLFxuICAgICAgICBhY3Rpdml0eTogJ2N1c3RvbVZhbGlkYXRpb24nLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICBjYWxsOiByZW1vdGVDYWxsLm5hbWUsXG4gICAgICAgICAgICBzZXF1ZW5jZTogcmVtb3RlQ2FsbC5zZXF1ZW5jZSxcbiAgICAgICAgICAgIHJlbW90ZUNhbGxJZDogcmVtb3RlQ2FsbC5pZFxuICAgICAgICB9XG4gICAgfTtcblxuICAgIGxldCByZW1vdGVPYmplY3QgPSBzZXNzaW9uLm9iamVjdHNbcmVtb3RlQ2FsbC5pZF07XG5cbiAgICBzZW1vdHVzLmxvZ2dlci5pbmZvKGxvZ2dlck9iamVjdCwgcmVtb3RlQ2FsbC5uYW1lKTtcblxuICAgIGlmICghaXNWYWxpZCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSBlbHNlIGlmIChzZW1vdHVzLnJvbGUgPT09ICdzZXJ2ZXInICYmIHJlbW90ZU9iamVjdFtyZW1vdGVDYWxsLm5hbWVdLnNlcnZlclZhbGlkYXRpb24pIHtcbiAgICAgICAgbGV0IGFyZ3MgPSBzZW1vdHVzLl9leHRyYWN0QXJndW1lbnRzKHJlbW90ZUNhbGwpO1xuICAgICAgICBhcmdzLnVuc2hpZnQocmVtb3RlT2JqZWN0KTtcblxuICAgICAgICByZXR1cm4gcmVtb3RlT2JqZWN0W3JlbW90ZUNhbGwubmFtZV0uc2VydmVyVmFsaWRhdGlvbi5hcHBseShudWxsLCBhcmdzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG59XG5cbi8qKlxuICogSWYgdGhlIGNoYW5nZXMgY291bGQgYmUgYXBwbGllZCBhbmQgdGhlIHZhbGlkYXRpb24gd2FzIHN1Y2Nlc3NmdWwgY2FsbCB0aGUgbWV0aG9kXG4gKlxuICogQHBhcmFtIHNlbW90dXNcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gaXNWYWxpZCAtIHRha2VzIGEgZmxhZyBpZiB0aGUgY2FsbCBpcyB2YWxpZCBvciBub3QsIGlmIGl0IGlzIHRoZW4gd2UgcHJvY2VlZCBub3JtYWxseSxcbiAqIG90aGVyd2lzZSwgd2UgdGhyb3cgYW4gZXJyb3IgYW5kIHN0b3AgZXhlY3V0aW9uXG4gKlxuICogQHBhcmFtIHNlc3Npb25cbiAqIEBwYXJhbSByZW1vdGVDYWxsXG4gKiBAcmV0dXJucyB7dW5rbm93bn0gdW5rbm93blxuICovXG5hc3luYyBmdW5jdGlvbiBjYWxsSWZWYWxpZChwYXlsb2FkOiBQcm9jZXNzQ2FsbFBheWxvYWQsIGlzVmFsaWQ6IGJvb2xlYW4pIHtcbiAgICBjb25zdCB7c2Vtb3R1cywgcmVtb3RlQ2FsbCwgY2FsbENvbnRleHQsIHNlc3Npb24sIHN1YnNjcmlwdGlvbklkLCByZW1vdGVDYWxsSWQsIHJlc3RvcmVTZXNzaW9uQ2FsbGJhY2t9ID0gcGF5bG9hZDtcblxuICAgIGxldCBsb2dnZXJPYmplY3QgPSB7XG4gICAgICAgIGNvbXBvbmVudDogJ3NlbW90dXMnLFxuICAgICAgICBtb2R1bGU6ICdwcm9jZXNzQ2FsbCcsXG4gICAgICAgIGFjdGl2aXR5OiAnY2FsbElmVmFsaWQnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICBjYWxsOiByZW1vdGVDYWxsLm5hbWUsXG4gICAgICAgICAgICBzZXF1ZW5jZTogcmVtb3RlQ2FsbC5zZXF1ZW5jZSxcbiAgICAgICAgICAgIHJlbW90ZUNhbGxJZDogcmVtb3RlQ2FsbC5pZFxuICAgICAgICB9XG4gICAgfTtcblxuICAgIHNlbW90dXMubG9nZ2VyLmluZm8obG9nZ2VyT2JqZWN0LCByZW1vdGVDYWxsLm5hbWUpO1xuXG4gICAgbGV0IG9iaiA9IHNlc3Npb24ub2JqZWN0c1tyZW1vdGVDYWxsLmlkXTtcblxuICAgIGlmICghb2JqW3JlbW90ZUNhbGwubmFtZV0pIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKHJlbW90ZUNhbGwubmFtZSArICcgZnVuY3Rpb24gZG9lcyBub3QgZXhpc3QuJyk7XG4gICAgfVxuXG4gICAgaWYgKCFpc1ZhbGlkICYmIHJlbW90ZUNhbGwgJiYgcmVtb3RlQ2FsbC5uYW1lKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihyZW1vdGVDYWxsLm5hbWUgKyAnIHJlZnVzZWQnKTtcbiAgICB9XG5cbiAgICBsZXQgYXJncyA9IHNlbW90dXMuX2V4dHJhY3RBcmd1bWVudHMocmVtb3RlQ2FsbCk7XG5cbiAgICByZXR1cm4gb2JqW3JlbW90ZUNhbGwubmFtZV0uYXBwbHkob2JqLCBhcmdzKTtcbn1cblxuLyoqXG4gKiBMZXQgdGhlIGNvbnRyb2xsZXIga25vdyB0aGF0IHRoZSBtZXRob2Qgd2FzIGNvbXBsZXRlZCBhbmQgZ2l2ZSBpdCBhIGNoYW5jZSB0byBjb21taXQgY2hhbmdlc1xuICpcbiAqIEBwYXJhbSBwYXlsb2FkXG4gKiBAcGFyYW0gIHJldHVyblZhbHVlIHVua25vd25cbiAqXG4gKiBAcmV0dXJuc1xuICovXG5hc3luYyBmdW5jdGlvbiBwb3N0Q2FsbEhvb2socGF5bG9hZDogUHJvY2Vzc0NhbGxQYXlsb2FkLCByZXR1cm5WYWx1ZSkge1xuICAgIGNvbnN0IHtzZW1vdHVzLCByZW1vdGVDYWxsLCBjYWxsQ29udGV4dCwgSFRUUE9ianN9ID0gcGF5bG9hZDtcblxuICAgIGlmIChzZW1vdHVzLmNvbnRyb2xsZXIgJiYgc2Vtb3R1cy5jb250cm9sbGVyLnBvc3RTZXJ2ZXJDYWxsKSB7XG4gICAgICAgIGNvbnN0IGhhc0NoYW5nZXM6IGJvb2xlYW4gPSByZW1vdGVDYWxsLmNoYW5nZXMubGVuZ3RoID4gMjtcbiAgICAgICAgYXdhaXQgc2Vtb3R1cy5jb250cm9sbGVyLnBvc3RTZXJ2ZXJDYWxsLmNhbGwoc2Vtb3R1cy5jb250cm9sbGVyLCBoYXNDaGFuZ2VzLCBjYWxsQ29udGV4dCwgc2Vtb3R1cy5jaGFuZ2VTdHJpbmcsIEhUVFBPYmpzKTtcbiAgICB9XG4gICAgcmV0dXJuIHJldHVyblZhbHVlO1xufVxuXG4vKipcbiAqIFBhY2thZ2UgdXAgYW55IGNoYW5nZXMgcmVzdWx0aW5nIGZyb20gdGhlIGV4ZWN1dGlvbiBhbmQgc2VuZCB0aGVtIGJhY2sgaW4gdGhlIG1lc3NhZ2UsIGNsZWFyaW5nXG4gKiBvdXIgY2hhbmdlIHF1ZXVlIHRvIGFjY3VtdWxhdGUgbW9yZSBjaGFuZ2VzIGZvciB0aGUgbmV4dCBjYWxsXG4gKlxuICogQHBhcmFtIHNlbW90dXNcbiAqIEBwYXJhbSByZW1vdGVDYWxsXG4gKiBAcGFyYW0gcmVtb3RlQ2FsbElkXG4gKiBAcGFyYW0ge3Vua25vd259IHJldCB1bmtub3duXG4gKi9cbmZ1bmN0aW9uIHBvc3RDYWxsU3VjY2VzcyhwYXlsb2FkOiBQcm9jZXNzQ2FsbFBheWxvYWQsIHJldCk6IHZvaWQge1xuICAgIGNvbnN0IHtzZW1vdHVzLCByZW1vdGVDYWxsLCBjYWxsQ29udGV4dCwgc2Vzc2lvbiwgcmVtb3RlQ2FsbElkfSA9IHBheWxvYWQ7XG5cbiAgICBzZW1vdHVzLmxvZ2dlci5pbmZvKFxuICAgICAgICB7XG4gICAgICAgICAgICBjb21wb25lbnQ6ICdzZW1vdHVzJyxcbiAgICAgICAgICAgIG1vZHVsZTogJ3Byb2Nlc3NDYWxsJyxcbiAgICAgICAgICAgIGFjdGl2aXR5OiAncG9zdENhbGwuc3VjY2VzcycsXG4gICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgY2FsbDogcmVtb3RlQ2FsbC5uYW1lLFxuICAgICAgICAgICAgICAgIGNhbGxUaW1lOiBsb2dUaW1lKGNhbGxDb250ZXh0KSxcbiAgICAgICAgICAgICAgICBzZXF1ZW5jZTogcmVtb3RlQ2FsbC5zZXF1ZW5jZVxuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICByZW1vdGVDYWxsLm5hbWVcbiAgICApO1xuXG4gICAgcGFja2FnZUNoYW5nZXMoc2Vtb3R1cywgc2Vzc2lvbix7XG4gICAgICAgIHR5cGU6ICdyZXNwb25zZScsXG4gICAgICAgIHN5bmM6IHRydWUsXG4gICAgICAgIHZhbHVlOiBKU09OLnN0cmluZ2lmeShzZW1vdHVzLl90b1RyYW5zcG9ydChyZXQpKSxcbiAgICAgICAgbmFtZTogcmVtb3RlQ2FsbC5uYW1lLFxuICAgICAgICByZW1vdGVDYWxsSWQ6IHJlbW90ZUNhbGxJZFxuICAgIH0pO1xufVxuXG4vKipcbiAqIEhlbHBlciBmdW5jdGlvbiB0byBpZGVudGlmeSBpZiB0aGVyZSdzIGEgcG9zdFNlcnZlckVycm9ySGFuZGxlciBjYWxsYmFjayBvbiB0aGUgYmFzZSBjb250cm9sbGVyXG4gKiBJZiB0aGVyZSBpcywgd2UgZXhlY3V0ZSB0aGUgaGFuZGxlciwgYW5kIGlmIHdlIGNhdGNoIGFuIGVycm9yIGluIHRoZSBoYW5kbGVyLCB3ZSBwcm9wb2dhdGUgaXQgdXAgdG8gdGhlIGxvZ2dlci5cbiAqIEBwYXJhbSBsb2dnZXJcbiAqIEBwYXJhbSB7Kn0gY29udHJvbGxlclxuICogQHBhcmFtIHR5cGVcbiAqIEBwYXJhbSByZW1vdGVDYWxsXG4gKiBAcGFyYW0gcmVtb3RlQ2FsbElkXG4gKiBAcGFyYW0gY2FsbENvbnRleHRcbiAqIEBwYXJhbSBjaGFuZ2VTdHJpbmdcbiAqIEBwYXJhbSBzZXNzaW9uXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHJlc29sdmVFcnJvckhhbmRsZXIobG9nZ2VyLCBjb250cm9sbGVyOiBhbnksIHR5cGUsIHJlbW90ZUNhbGw6IFJlbW90ZUNhbGwsIHJlbW90ZUNhbGxJZCwgY2FsbENvbnRleHQ6IENhbGxDb250ZXh0LCBjaGFuZ2VTdHJpbmcsIHNlc3Npb246IFNlc3Npb24pIHtcblxuICAgIGlmIChjb250cm9sbGVyICYmIGNvbnRyb2xsZXIucG9zdFNlcnZlckVycm9ySGFuZGxlcikge1xuICAgICAgICBsZXQgZXJyb3JUeXBlID0gdHlwZTtcbiAgICAgICAgbGV0IGZ1bmN0aW9uTmFtZSA9IHJlbW90ZUNhbGwubmFtZTtcbiAgICAgICAgbGV0IG9iaiA9IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKHNlc3Npb24ub2JqZWN0c1tyZW1vdGVDYWxsLmlkXSkge1xuICAgICAgICAgICAgb2JqID0gc2Vzc2lvbi5vYmplY3RzW3JlbW90ZUNhbGwuaWRdO1xuICAgICAgICB9XG4gICAgICAgIGxldCBsb2dCb2R5ID0ge1xuICAgICAgICAgICAgY29tcG9uZW50OiAnc2Vtb3R1cycsXG4gICAgICAgICAgICBtb2R1bGU6ICdwcm9jZXNzQ2FsbC5mYWlsdXJlJyxcbiAgICAgICAgICAgIGFjdGl2aXR5OiAncG9zdENhbGwucmVzb2x2ZUVycm9ySGFuZGxlcicsXG4gICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgY2FsbDogcmVtb3RlQ2FsbC5uYW1lLFxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IHVuZGVmaW5lZFxuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBhd2FpdCBjb250cm9sbGVyLnBvc3RTZXJ2ZXJFcnJvckhhbmRsZXIuY2FsbChjb250cm9sbGVyLCBlcnJvclR5cGUsIHJlbW90ZUNhbGxJZCwgb2JqLCBmdW5jdGlvbk5hbWUsIGNhbGxDb250ZXh0LCBjaGFuZ2VTdHJpbmcpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgaWYgKGVycm9yLm1lc3NhZ2UpIHtcbiAgICAgICAgICAgICAgICBsb2dCb2R5LmRhdGEubWVzc2FnZSA9IGVycm9yLm1lc3NhZ2U7XG4gICAgICAgICAgICAgICAgbG9nZ2VyLmVycm9yKGVycm9yLm1lc3NhZ2UpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBsb2dCb2R5LmRhdGEubWVzc2FnZSA9IEpTT04uc3RyaW5naWZ5KGVycm9yKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbG9nZ2VyLmVycm9yKGxvZ0JvZHksICdVc2VyIGRlZmluZWQgcG9zdFNlcnZlckVycm9ySGFuZGxlciB0aHJldyBhbiBlcnJvcicpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKipcbiAqIEhhbmRsZSBlcnJvcnMgYnkgcmV0dXJuaW5nIGFuIGFwcm9wcmlhdGUgbWVzc2FnZS4gIEluIGFsbCBjYXNlcyBjaGFuZ2VzIHNlbnQgYmFjayB0aG91Z2ggdGhleVxuICpcbiAqIEBwYXJhbSBzZW1vdHVzXG4gKiBAcGFyYW0gcmVtb3RlQ2FsbFxuICogQHBhcmFtIGNhbGxDb250ZXh0XG4gKiBAcGFyYW0gc2Vzc2lvblxuICogQHBhcmFtIHt1bmtub3dufSBlcnIgdW5rbm93blxuICpcbiAqIEByZXR1cm5zIHt1bmtub3dufSBBIFByb21pc2VcbiAqL1xuYXN5bmMgZnVuY3Rpb24gcG9zdENhbGxGYWlsdXJlKHBheWxvYWQ6IFByb2Nlc3NDYWxsUGF5bG9hZCwgZXJyKSB7XG4gICAgY29uc3Qge3NlbW90dXMsIHJlbW90ZUNhbGwsIGNhbGxDb250ZXh0LCBzZXNzaW9uLCBzdWJzY3JpcHRpb25JZCwgcmVtb3RlQ2FsbElkLCByZXN0b3JlU2Vzc2lvbkNhbGxiYWNrfSA9IHBheWxvYWQ7XG5cbiAgICBsZXQgbG9nU3RyaW5nID0gJyc7XG5cbiAgICBsZXQgcGFja2FnZUNoYW5nZXNQYXlsb2FkID0ge307XG5cbiAgICBsZXQgdXBkYXRlQ29uZmxpY3RSZXRyeSA9IGZhbHNlO1xuXG4gICAgaWYgKGVyciA9PT0gJ1N5bmMgRXJyb3InKSB7XG4gICAgICAgIHBvc3RDYWxsRXJyb3JMb2coc2Vtb3R1cy5sb2dnZXIsICdwb3N0Q2FsbC5zeW5jRXJyb3InLCB1bmRlZmluZWQsICdlcnJvcicsIHJlbW90ZUNhbGwubmFtZSwgcmVtb3RlQ2FsbCwgY2FsbENvbnRleHQpO1xuICAgICAgICBwYWNrYWdlQ2hhbmdlc1BheWxvYWQgPSB7XG4gICAgICAgICAgICB0eXBlOiAncmVzcG9uc2UnLFxuICAgICAgICAgICAgc3luYzogZmFsc2UsXG4gICAgICAgICAgICBjaGFuZ2VzOiAnJ1xuICAgICAgICB9O1xuICAgIH0gZWxzZSBpZiAoZXJyLm1lc3NhZ2UgPT0gJ1VwZGF0ZSBDb25mbGljdCcpIHtcbiAgICAgICAgLy8gTm90IHRoaXMgbWF5IGJlIGNhdWdodCBpbiB0aGUgdHJhbnNwb3J0IChlLmcuIEFtb3JwaGljKSBhbmQgcmV0cmllZClcblxuICAgICAgICAvLyBpbmNyZW1lbnQgY2FsbENvbnRleHQucmV0cmllcyBhZnRlciBjaGVja2luZyBpZiA8IDMuIFNob3VsZCByZXRyeSAzIHRpbWVzLlxuICAgICAgICBpZiAoY2FsbENvbnRleHQucmV0cmllcysrIDwgMykge1xuICAgICAgICAgICAgcG9zdENhbGxFcnJvckxvZyhzZW1vdHVzLmxvZ2dlciwgJ3Bvc3RDYWxsLnVwZGF0ZUNvbmZsaWN0JywgdW5kZWZpbmVkLCAnd2FybicsIHJlbW90ZUNhbGwubmFtZSwgcmVtb3RlQ2FsbCwgY2FsbENvbnRleHQpO1xuICAgICAgICAgICAgdXBkYXRlQ29uZmxpY3RSZXRyeSA9IHRydWU7XG4gICAgICAgICAgICAvLyBUaGUgZm9sbG93aW5nIGFzc2lnbm1lbnQgaXMgb25seSB1c2VkIGZvciB0aGUgZXJyb3IgaGFuZGxlclxuICAgICAgICAgICAgcGFja2FnZUNoYW5nZXNQYXlsb2FkID0ge1xuICAgICAgICAgICAgICAgIHR5cGU6ICdyZXRyeSdcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwb3N0Q2FsbEVycm9yTG9nKHNlbW90dXMubG9nZ2VyLCAncG9zdENhbGwudXBkYXRlQ29uZmxpY3QnLCB1bmRlZmluZWQsICdlcnJvcicsIHJlbW90ZUNhbGwubmFtZSwgcmVtb3RlQ2FsbCwgY2FsbENvbnRleHQpO1xuICAgICAgICAgICAgcGFja2FnZUNoYW5nZXNQYXlsb2FkID0ge1xuICAgICAgICAgICAgICAgIHR5cGU6ICdyZXRyeScsXG4gICAgICAgICAgICAgICAgc3luYzogZmFsc2VcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoIShlcnIgaW5zdGFuY2VvZiBFcnJvcikpIHtcbiAgICAgICAgICAgIHBvc3RDYWxsRXJyb3JMb2coc2Vtb3R1cy5sb2dnZXIsICdwb3N0Q2FsbC5lcnJvcicsIEpTT04uc3RyaW5naWZ5KGVyciksICdpbmZvJywgcmVtb3RlQ2FsbC5uYW1lLCByZW1vdGVDYWxsLCBjYWxsQ29udGV4dCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoZXJyLnN0YWNrKSB7XG4gICAgICAgICAgICAgICAgbG9nU3RyaW5nID0gJ0V4Y2VwdGlvbiBpbiAnICsgcmVtb3RlQ2FsbC5uYW1lICsgJyAtICcgKyBlcnIubWVzc2FnZSArICgnICcgKyBlcnIuc3RhY2spO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBsb2dTdHJpbmcgPSAnRXhjZXB0aW9uIGluICcgKyByZW1vdGVDYWxsLm5hbWUgKyAnIC0gJyArIGVyci5tZXNzYWdlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBwb3N0Q2FsbEVycm9yTG9nKHNlbW90dXMubG9nZ2VyLCAncG9zdENhbGwuZXhjZXB0aW9uJywgZXJyLm1lc3NhZ2UsICdlcnJvcicsIGxvZ1N0cmluZywgcmVtb3RlQ2FsbCwgY2FsbENvbnRleHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcGFja2FnZUNoYW5nZXNQYXlsb2FkID0ge1xuICAgICAgICAgICAgdHlwZTogJ2Vycm9yJyxcbiAgICAgICAgICAgIHN5bmM6IHRydWUsXG4gICAgICAgICAgICB2YWx1ZTogZ2V0RXJyb3IoZXJyKSxcbiAgICAgICAgICAgIG5hbWU6IHJlbW90ZUNhbGwubmFtZVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIE9iamVjdC5hc3NpZ24ocGFja2FnZUNoYW5nZXNQYXlsb2FkLCB7cmVtb3RlQ2FsbElkOiByZW1vdGVDYWxsSWR9KTtcblxuICAgIGF3YWl0IHJlc29sdmVFcnJvckhhbmRsZXIoXG4gICAgICAgIHNlbW90dXMubG9nZ2VyLFxuICAgICAgICBzZW1vdHVzLmNvbnRyb2xsZXIsXG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgcGFja2FnZUNoYW5nZXNQYXlsb2FkLnR5cGUsXG4gICAgICAgIHJlbW90ZUNhbGwsXG4gICAgICAgIHJlbW90ZUNhbGxJZCxcbiAgICAgICAgY2FsbENvbnRleHQsXG4gICAgICAgIHNlbW90dXMuY2hhbmdlU3RyaW5nLFxuICAgICAgICBzZXNzaW9uXG4gICAgKTtcblxuICAgIGlmICh1cGRhdGVDb25mbGljdFJldHJ5KSB7XG4gICAgICAgIGF3YWl0IGRlbGF5KGNhbGxDb250ZXh0LnJldHJpZXMgKiAxMDAwKTtcbiAgICAgICAgcmV0dXJuIHJldHJ5Q2FsbChwYXlsb2FkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gcGFja2FnZUNoYW5nZXMoc2Vtb3R1cywgc2Vzc2lvbiwgcGFja2FnZUNoYW5nZXNQYXlsb2FkKTtcbiAgICB9XG59XG5cbi8qKlxuICogRGVhbCB3aXRoIGNoYW5nZXMgZ29pbmcgYmFjayB0byB0aGUgY2FsbGVyIC0gQWN0dWFsbHkgbm90IEFzeW5jIVxuICpcbiAqIEBwYXJhbSBzZW1vdHVzXG4gKiBAcGFyYW0gc2Vzc2lvblxuICogQHBhcmFtIHt1bmtub3dufSBtZXNzYWdlIHVua25vd25cbiAqL1xuZnVuY3Rpb24gcGFja2FnZUNoYW5nZXMoc2Vtb3R1czogU2Vtb3R1cywgc2Vzc2lvbjogU2Vzc2lvbiwgbWVzc2FnZSkge1xuICAgIHNlbW90dXMuX2NvbnZlcnRBcnJheVJlZmVyZW5jZXNUb0NoYW5nZXMoKTtcbiAgICBtZXNzYWdlLmNoYW5nZXMgPSBKU09OLnN0cmluZ2lmeShzZW1vdHVzLmdldENoYW5nZXMoKSk7XG5cbiAgICBpZiAoc2Vtb3R1cy5tZW1TZXNzaW9uICYmIHNlbW90dXMubWVtU2Vzc2lvbi5zZW1vdHVzICYmIHNlbW90dXMubWVtU2Vzc2lvbi5zZW1vdHVzLmNhbGxTdGFydFRpbWUpIHtcbiAgICAgICAgc2Vtb3R1cy5tZW1TZXNzaW9uLnNlbW90dXMuY2FsbFN0YXJ0VGltZSA9IDA7XG4gICAgfVxuXG4gICAgLy8gSW5zcGVjdCBhIGNvcHkgb2YgdGhlIG1lc3NhZ2Ugb24gdGhlIHNlcnZlciBvbmx5IGJlZm9yZSBzZW50IG91dC4gT25seSBmb3IgZGVidWcgcHVycG9zZXNcbiAgICBpZiAoc2Vtb3R1cy5jb250cm9sbGVyICYmIHNlbW90dXMuY29udHJvbGxlci5pbnNwZWN0TWVzc2FnZSkge1xuICAgICAgICBzZW1vdHVzLmNvbnRyb2xsZXIuaW5zcGVjdE1lc3NhZ2UoT2JqZWN0LmFzc2lnbih7fSwgbWVzc2FnZSkpO1xuICAgIH1cblxuICAgIHNlc3Npb24uc2VuZE1lc3NhZ2UobWVzc2FnZSk7XG4gICAgc2Vtb3R1cy5fZGVsZXRlQ2hhbmdlcygpO1xuICAgIHNlbW90dXMuX3Byb2Nlc3NRdWV1ZSgpO1xufVxuXG5cbi8qKlxuICogIEhlbHBlciBmdW5jdGlvbiB0byBsb2cgYW1vcnBoaWMgZXJyb3JzLlxuICogQHBhcmFtIHsqfSBsb2dnZXJcbiAqIEBwYXJhbSB7Kn0gYWN0aXZpdHlcbiAqIEBwYXJhbSB7Kn0gbWVzc2FnZVxuICogQHBhcmFtIHsqfSBsb2dUeXBlXG4gKiBAcGFyYW0geyp9IGxvZ1N0cmluZ1xuICogQHBhcmFtIHJlbW90ZUNhbGxcbiAqIEBwYXJhbSBjYWxsQ29udGV4dFxuICovXG5leHBvcnQgZnVuY3Rpb24gcG9zdENhbGxFcnJvckxvZyhsb2dnZXIsIGFjdGl2aXR5LCBtZXNzYWdlLCBsb2dUeXBlLCBsb2dTdHJpbmcsIHJlbW90ZUNhbGw6IFJlbW90ZUNhbGwsIGNhbGxDb250ZXh0OiBDYWxsQ29udGV4dCkge1xuICAgIGxldCBsb2dCb2R5ID0ge1xuICAgICAgICBjb21wb25lbnQ6ICdzZW1vdHVzJyxcbiAgICAgICAgbW9kdWxlOiAncHJvY2Vzc0NhbGwuZmFpbHVyZScsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIGNhbGw6IHJlbW90ZUNhbGwubmFtZSxcbiAgICAgICAgICAgIGNhbGxUaW1lOiBsb2dUaW1lKGNhbGxDb250ZXh0KSxcbiAgICAgICAgICAgIHNlcXVlbmNlOiByZW1vdGVDYWxsLnNlcXVlbmNlLFxuICAgICAgICAgICAgbWVzc2FnZTogdW5kZWZpbmVkXG4gICAgICAgIH0sXG4gICAgICAgIGFjdGl2aXR5OiB1bmRlZmluZWRcbiAgICB9O1xuXG4gICAgbG9nQm9keS5hY3Rpdml0eSA9IGFjdGl2aXR5O1xuXG4gICAgaWYgKGxvZ2dlci5kYXRhKSB7XG4gICAgICAgIGxvZ0JvZHkuZGF0YS5tZXNzYWdlID0gbWVzc2FnZTtcbiAgICB9XG5cbiAgICBsb2dnZXJbbG9nVHlwZV0obG9nQm9keSwgbG9nU3RyaW5nKTtcbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJvY2Vzc0NhbGwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaGVscGVycy9Qcm9jZXNzQ2FsbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx5Q0FBcUQ7QUFHckQ7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxTQUFzQixXQUFXLENBQUMsT0FBMkIsRUFBRSxXQUFxQjs7Ozs7OztvQkFHOUQscUJBQU0sT0FBTyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBQTs7b0JBQWhELFdBQVcsR0FBRyxTQUFrQyxDQUFDO29CQUNqRCxxQkFBTSxXQUFXLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxFQUFBOztvQkFBdkMsU0FBdUMsQ0FBQztvQkFDdkIscUJBQU0sMkJBQTJCLENBQUMsT0FBTyxDQUFDLEVBQUE7O29CQUF2RCxVQUFVLEdBQUcsU0FBMEM7b0JBQzlDLHFCQUFNLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsRUFBQTs7b0JBQXhELFVBQVUsR0FBRyxTQUEyQyxDQUFDO29CQUMxQyxxQkFBTSxXQUFXLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxFQUFBOztvQkFBL0MsTUFBTSxHQUFHLFNBQXNDO29CQUNyRCxxQkFBTSxZQUFZLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxFQUFBOztvQkFBbkMsU0FBbUMsQ0FBQztvQkFDcEMscUJBQU0sZUFBZSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsRUFBQTs7b0JBQXRDLFNBQXNDLENBQUM7Ozs7b0JBRXZDLHFCQUFNLGVBQWUsQ0FBQyxPQUFPLEVBQUUsS0FBRyxDQUFDLEVBQUE7O29CQUFuQyxTQUFtQyxDQUFDOzs7Ozs7Q0FFM0M7QUFiRCxrQ0FhQztBQUdEOzs7O0dBSUc7QUFDSCxTQUFlLFNBQVMsQ0FBQyxPQUEyQjs7OztZQUN6QyxPQUFPLEdBQTRGLE9BQU8sUUFBbkcsRUFBRSxV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O0FBQ3hDLENBQUM7QUFwQkQsNENBb0JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtkZWxheSwgZ2V0RXJyb3IsIGxvZ1RpbWV9IGZyb20gJy4vVXRpbGl0aWVzJztcbmltcG9ydCB7Q2FsbENvbnRleHQsIFByb2Nlc3NDYWxsUGF5bG9hZCwgUmVtb3RlQ2FsbCwgU2Vtb3R1cywgU2Vzc2lvbn0gZnJvbSAnLi9UeXBlcyc7XG5cbi8qKlxuICogV2UgcHJvY2VzcyB0aGUgY2FsbCB0aGUgcmVtb3RlIG1ldGhvZCBpbiBzdGFnZXMgc3RhcnRpbmcgYnkgbGV0dGluZyB0aGUgY29udHJvbGxlciBleGFtaW5lIHRoZVxuICogY2hhbmdlcyAocHJlQ2FsbEhvb2spIGFuZCBnaXZpbmcgaXQgYSBjaGFuY2UgdG8gcmVmcmVzaCBkYXRhIGlmIGl0IG5lZWRzIHRvLiAgVGhlbiB3ZSBhcHBseSBhbnlcbiAqIGNoYW5nZXMgaW4gdGhlIG1lc3NhZ2VzIGFuZCBnaXZlIHRoZSBvYmplY3Qgb3duaW5nIHRoZSBtZXRob2QgYSBjaGFuY2UgdG8gdmFsaWRhdGUgdGhhdCB0aGVcbiAqIGNhbGwgaXMgdmFsaWQgYW5kIHRha2UgY2FyZSBvZiBhbnkgYXV0aG9yaXphdGlvbiBjb25jZXJucy4gIEZpbmFsbHkgd2UgbGV0IHRoZSBjb250cm9sbGVyIHBlcmZvcm1cbiAqIGFueSBwb3N0LWNhbGwgcHJvY2Vzc2luZyBzdWNoIGFzIGNvbW1pdGluZyBkYXRhIGFuZCB0aGVuIHdlIGRlYWwgd2l0aCBhIGZhaWx1cmUgb3Igc3VjY2Vzcy5cbiAqXG4gKiBAcGFyYW0gcGF5bG9hZFxuICogQHBhcmFtIHt1bmtub3dufSBmb3JjZXVwZGF0ZSB1bmtub3duXG4gKlxuICogQHJldHVybnMge3Vua25vd259IHVua25vd25cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHByb2Nlc3NDYWxsKHBheWxvYWQ6IFByb2Nlc3NDYWxsUGF5bG9hZCwgZm9yY2V1cGRhdGU/OiBib29sZWFuKSB7XG5cbiAgICB0cnkge1xuICAgICAgICBmb3JjZXVwZGF0ZSA9IGF3YWl0IFByb21pc2UucmVzb2x2ZShmb3JjZXVwZGF0ZSk7XG4gICAgICAgIGF3YWl0IHByZUNhbGxIb29rKHBheWxvYWQsIGZvcmNldXBkYXRlKTtcbiAgICAgICAgbGV0IHZhbGlkYXRpb24gPSBhd2FpdCBhcHBseUNoYW5nZXNBbmRWYWxpZGF0ZUNhbGwocGF5bG9hZCk7XG4gICAgICAgIHZhbGlkYXRpb24gPSBhd2FpdCBjdXN0b21WYWxpZGF0aW9uKHBheWxvYWQsIHZhbGlkYXRpb24pO1xuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBjYWxsSWZWYWxpZChwYXlsb2FkLCB2YWxpZGF0aW9uKTtcbiAgICAgICAgYXdhaXQgcG9zdENhbGxIb29rKHBheWxvYWQsIHJlc3VsdCk7XG4gICAgICAgIGF3YWl0IHBvc3RDYWxsU3VjY2VzcyhwYXlsb2FkLCByZXN1bHQpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBhd2FpdCBwb3N0Q2FsbEZhaWx1cmUocGF5bG9hZCwgZXJyKTtcbiAgICB9XG59XG5cblxuLyoqXG4gKiBJZiB0aGVyZSBpcyBhbiB1cGRhdGUgY29uZmxpY3Qgd2Ugd2FudCB0byByZXRyeSBhZnRlciByZXN0b3JpbmcgdGhlIHNlc3Npb25cbiAqXG4gKiBAcmV0dXJucyB7Kn0gdW5rbm93blxuICovXG5hc3luYyBmdW5jdGlvbiByZXRyeUNhbGwocGF5bG9hZDogUHJvY2Vzc0NhbGxQYXlsb2FkKSB7XG4gICAgY29uc3Qge3NlbW90dXMsIHJlbW90ZUNhbGwsIGNhbGxDb250ZXh0LCBzZXNzaW9uLCBzdWJzY3JpcHRpb25JZCwgcmVtb3RlQ2FsbElkLCByZXN0b3JlU2Vzc2lvbkNhbGxiYWNrfSA9IHBheWxvYWQ7XG5cbiAgICBpZiAocmVzdG9yZVNlc3Npb25DYWxsYmFjaykge1xuICAgICAgICByZXN0b3JlU2Vzc2lvbkNhbGxiYWNrKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHByb2Nlc3NDYWxsKHBheWxvYWQsIHRydWUpO1xufVxuXG4vKipcbiAqIERldGVybWluZSB3aGF0IG9iamVjdHMgY2hhbmdlZCBhbmQgcGFzcyB0aGlzIHRvIHRoZSBwcmVTZXJ2ZXJDYWxsIG1ldGhvZCBvbiB0aGUgY29udHJvbGxlclxuICpcbiAqIEBwYXJhbSBwYXlsb2FkXG4gKiBAcGFyYW0gIGZvcmNldXBkYXRlIHVua25vd25cbiAqXG4gKiBAcmV0dXJucyAgdW5rbm93blxuICovXG5hc3luYyBmdW5jdGlvbiBwcmVDYWxsSG9vayhwYXlsb2FkOiBQcm9jZXNzQ2FsbFBheWxvYWQsIGZvcmNldXBkYXRlPzogYm9vbGVhbik6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3Qge3NlbW90dXMsIHJlbW90ZUNhbGwsIHNlc3Npb24sIGNhbGxDb250ZXh0LCBIVFRQT2Jqc30gPSBwYXlsb2FkO1xuICAgIHNlbW90dXMubG9nZ2VyLmluZm8oXG4gICAgICAgIHtcbiAgICAgICAgICAgIGNvbXBvbmVudDogJ3NlbW90dXMnLFxuICAgICAgICAgICAgbW9kdWxlOiAncHJvY2Vzc0NhbGwnLFxuICAgICAgICAgICAgYWN0aXZpdHk6ICdwcmVTZXJ2ZXJDYWxsJyxcbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICBjYWxsOiByZW1vdGVDYWxsLm5hbWUsXG4gICAgICAgICAgICAgICAgc2VxdWVuY2U6IHJlbW90ZUNhbGwuc2VxdWVuY2VcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgcmVtb3RlQ2FsbC5uYW1lXG4gICAgKTtcblxuICAgIGlmIChzZW1vdHVzLmNvbnRyb2xsZXIgJiYgc2Vtb3R1cy5jb250cm9sbGVyLnByZVNlcnZlckNhbGwpIHtcbiAgICAgICAgbGV0IGNoYW5nZXMgPSB7fTtcblxuICAgICAgICBmb3IgKHZhciBvYmpJZCBpbiBKU09OLnBhcnNlKHJlbW90ZUNhbGwuY2hhbmdlcykpIHtcbiAgICAgICAgICAgIGNoYW5nZXNbc2Vtb3R1cy5fX2RpY3Rpb25hcnlfX1tvYmpJZC5yZXBsYWNlKC9bXi1dKi0vLCAnJykucmVwbGFjZSgvLS4qLywgJycpXS5fX25hbWVfX10gPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IHJlbW90ZU9iamVjdCA9IHNlc3Npb24ub2JqZWN0c1tyZW1vdGVDYWxsLmlkXTtcblxuICAgICAgICAvLyBOZWVkIHRvIGRvdWJsZSBjaGVjayBpZiBub3QgaW4gc2Vzc2lvbiwgd2hhdCB0aGUgdGVtcGxhdGUgaXMuXG4gICAgICAgIGxldCByZW1vdGVUZW1wbGF0ZSA9IHNlbW90dXMuX19kaWN0aW9uYXJ5X19bcmVtb3RlQ2FsbC5pZC5yZXBsYWNlKC9bXi1dKi0vLCAnJykucmVwbGFjZSgvLS4qLywgJycpXTtcbiAgICAgICAgbGV0IGlzUHVibGljID0gZmFsc2U7XG5cbiAgICAgICAgaWYgKHJlbW90ZU9iamVjdCkge1xuICAgICAgICAgICAgaXNQdWJsaWMgPSBzZW1vdHVzLnJvbGUgPT09ICdzZXJ2ZXInICYmIHJlbW90ZU9iamVjdFtyZW1vdGVDYWxsLm5hbWVdICYmIHJlbW90ZU9iamVjdFtyZW1vdGVDYWxsLm5hbWVdLnJlbW90ZVB1YmxpYztcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChyZW1vdGVUZW1wbGF0ZSkge1xuICAgICAgICAgICAgLy8gSWYgdGhlIGNsYXNzIGRvZXNuJ3QgZXhpc3QsIHdlIHNob3VsZCBnZXQgdGhlIHJlbW90ZSBmdW5jdGlvbiBmcm9tIHRoZSBwcm90b3R5cGVcbiAgICAgICAgICAgIGlzUHVibGljID0gc2Vtb3R1cy5yb2xlID09PSAnc2VydmVyJyAmJiByZW1vdGVUZW1wbGF0ZS5wcm90b3R5cGVbcmVtb3RlQ2FsbC5uYW1lXSAmJiByZW1vdGVUZW1wbGF0ZS5wcm90b3R5cGVbcmVtb3RlQ2FsbC5uYW1lXS5yZW1vdGVQdWJsaWM7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBzZW1vdHVzLmxvZ2dlci5lcnJvcih7XG4gICAgICAgICAgICAgICAgY29tcG9uZW50OiAnc2Vtb3R1cycsXG4gICAgICAgICAgICAgICAgbW9kdWxlOiAncHJvY2Vzc0NhbGwnLFxuICAgICAgICAgICAgICAgIGFjdGl2aXR5OiAncHJlU2VydmVyQ2FsbCcsXG4gICAgICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgICAgICBjYWxsOiByZW1vdGVDYWxsLm5hbWUsXG4gICAgICAgICAgICAgICAgICAgIHNlcXVlbmNlOiByZW1vdGVDYWxsLnNlcXVlbmNlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwgXHQnQ291bGQgbm90IGZpbmQgdGVtcGxhdGUgZm9yICcgKyBvYmpJZCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gc2Vtb3R1cy5jb250cm9sbGVyLnByZVNlcnZlckNhbGwuY2FsbChcbiAgICAgICAgICAgIHNlbW90dXMuY29udHJvbGxlcixcbiAgICAgICAgICAgIHJlbW90ZUNhbGwuY2hhbmdlcy5sZW5ndGggPiAyLFxuICAgICAgICAgICAgY2hhbmdlcyxcbiAgICAgICAgICAgIGNhbGxDb250ZXh0LFxuICAgICAgICAgICAgZm9yY2V1cGRhdGUsXG4gICAgICAgICAgICByZW1vdGVDYWxsLm5hbWUsXG4gICAgICAgICAgICByZW1vdGVDYWxsLFxuICAgICAgICAgICAgaXNQdWJsaWMsXG4gICAgICAgICAgICBIVFRQT2Jqc1xuICAgICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbn1cblxuLyoqXG4gKiBBcHBseSBjaGFuZ2VzIGluIHRoZSBtZXNzYWdlIGFuZCB0aGVuIHZhbGlkYXRlIHRoZSBjYWxsLiAgVGhyb3cgXCJTeW5jIEVycm9yXCIgaWYgY2hhbmdlcyBjYW4ndCBiZSBhcHBsaWVkXG4gKlxuICogQHJldHVybnMge3Vua25vd259IHVua25vd25cbiAqL1xuZnVuY3Rpb24gYXBwbHlDaGFuZ2VzQW5kVmFsaWRhdGVDYWxsKHBheWxvYWQ6IFByb2Nlc3NDYWxsUGF5bG9hZCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHtzZW1vdHVzLCByZW1vdGVDYWxsLCBjYWxsQ29udGV4dCwgc2Vzc2lvbiwgc3Vic2NyaXB0aW9uSWQsIHJlbW90ZUNhbGxJZCwgcmVzdG9yZVNlc3Npb25DYWxsYmFja30gPSBwYXlsb2FkO1xuXG4gICAgc2Vtb3R1cy5sb2dnZXIuaW5mbyhcbiAgICAgICAge1xuICAgICAgICAgICAgY29tcG9uZW50OiAnc2Vtb3R1cycsXG4gICAgICAgICAgICBtb2R1bGU6ICdwcm9jZXNzQ2FsbCcsXG4gICAgICAgICAgICBhY3Rpdml0eTogJ2FwcGx5Q2hhbmdlc0FuZFZhbGlkYXRlQ2FsbCcsXG4gICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgY2FsbDogcmVtb3RlQ2FsbC5uYW1lLFxuICAgICAgICAgICAgICAgIHNlcXVlbmNlOiByZW1vdGVDYWxsLnNlcXVlbmNlLFxuICAgICAgICAgICAgICAgIHJlbW90ZUNhbGxJZDogcmVtb3RlQ2FsbC5pZFxuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICByZW1vdGVDYWxsLm5hbWVcbiAgICApO1xuXG4gICAgbGV0IGNoYW5nZXMgPSBKU09OLnBhcnNlKHJlbW90ZUNhbGwuY2hhbmdlcyk7XG5cbiAgICBjb25zdCByZXMgPSBzZW1vdHVzLl9hcHBseUNoYW5nZXMoY2hhbmdlcywgc2Vtb3R1cy5yb2xlID09PSAnY2xpZW50Jywgc3Vic2NyaXB0aW9uSWQsIGNhbGxDb250ZXh0KTtcbiAgICBpZiAocmVzKSB7XG4gICAgICAgIGNvbnN0IG9iaiA9IHNlc3Npb24ub2JqZWN0c1tyZW1vdGVDYWxsLmlkXTtcblxuICAgICAgICBpZiAoIW9iaikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgZmluZCBvYmplY3QgZm9yIHJlbW90ZSBjYWxsICR7cmVtb3RlQ2FsbC5pZH1gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGNoZWNrIHRvIHNlZSBpZiB0aGlzIGZ1bmN0aW9uIGlzIHN1cHBvc2VkIHRvIGJlIGNhbGxlZCBkaXJlY3RseSBmcm9tIGNsaWVudFxuICAgICAgICBpZiAob2JqLl9fcHJvdG9fX1tyZW1vdGVDYWxsLm5hbWVdLl9fb25fXyAhPT0gJ3NlcnZlcicpIHtcbiAgICAgICAgICAgIHRocm93ICdJbnZhbGlkIEZ1bmN0aW9uIENhbGw7IG5vdCBhbiBBUEkgZnVuY3Rpb24nO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHNlbW90dXMucm9sZSA9PT0gJ3NlcnZlcicgJiYgb2JqLnZhbGlkYXRlU2VydmVyQ2FsbCkge1xuICAgICAgICAgICAgcmV0dXJuIG9iai52YWxpZGF0ZVNlcnZlckNhbGwuY2FsbChvYmosIHJlbW90ZUNhbGwubmFtZSwgY2FsbENvbnRleHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgJ1N5bmMgRXJyb3InO1xuICAgIH1cbn1cblxuLyoqXG4gKiBBcHBseSBmdW5jdGlvbiBzcGVjaWZpYyBjdXN0b20gc2VydmVyU2lkZSB2YWxpZGF0aW9uIGZ1bmN0aW9uc1xuICpcbiAqIEBwYXJhbSBzZW1vdHVzXG4gKiBAcGFyYW0ge2Jvb2xlYW59IGlzVmFsaWQgLSBSZXN1bHQgb2YgcHJldmlvdXMgdmFsaWRhdGlvbiBzdGVwIChhcHBseUNoYW5nZXNBbmRWYWxpZGF0ZUNhbGwpXG4gKiBAcGFyYW0gc2Vzc2lvblxuICogQHBhcmFtIHJlbW90ZUNhbGxcbiAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHBhc3NlZCBmdW5jdGlvblxuICovXG5mdW5jdGlvbiBjdXN0b21WYWxpZGF0aW9uKHBheWxvYWQ6IFByb2Nlc3NDYWxsUGF5bG9hZCwgaXNWYWxpZDogYm9vbGVhbik6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHtzZW1vdHVzLCByZW1vdGVDYWxsLCBjYWxsQ29udGV4dCwgc2Vzc2lvbiwgc3Vic2NyaXB0aW9uSWQsIHJlbW90ZUNhbGxJZCwgcmVzdG9yZVNlc3Npb25DYWxsYmFja30gPSBwYXlsb2FkO1xuXG4gICAgbGV0IGxvZ2dlck9iamVjdCA9IHtcbiAgICAgICAgY29tcG9uZW50OiAnc2Vtb3R1cycsXG4gICAgICAgIG1vZHVsZTogJ3Byb2Nlc3NDYWxsJyxcbiAgICAgICAgYWN0aXZpdHk6ICdjdXN0b21WYWxpZGF0aW9uJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgY2FsbDogcmVtb3RlQ2FsbC5uYW1lLFxuICAgICAgICAgICAgc2VxdWVuY2U6IHJlbW90ZUNhbGwuc2VxdWVuY2UsXG4gICAgICAgICAgICByZW1vdGVDYWxsSWQ6IHJlbW90ZUNhbGwuaWRcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBsZXQgcmVtb3RlT2JqZWN0ID0gc2Vzc2lvbi5vYmplY3RzW3JlbW90ZUNhbGwuaWRdO1xuXG4gICAgc2Vtb3R1cy5sb2dnZXIuaW5mbyhsb2dnZXJPYmplY3QsIHJlbW90ZUNhbGwubmFtZSk7XG5cbiAgICBpZiAoIWlzVmFsaWQpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0gZWxzZSBpZiAoc2Vtb3R1cy5yb2xlID09PSAnc2VydmVyJyAmJiByZW1vdGVPYmplY3RbcmVtb3RlQ2FsbC5uYW1lXS5zZXJ2ZXJWYWxpZGF0aW9uKSB7XG4gICAgICAgIGxldCBhcmdzID0gc2Vtb3R1cy5fZXh0cmFjdEFyZ3VtZW50cyhyZW1vdGVDYWxsKTtcbiAgICAgICAgYXJncy51bnNoaWZ0KHJlbW90ZU9iamVjdCk7XG5cbiAgICAgICAgcmV0dXJuIHJlbW90ZU9iamVjdFtyZW1vdGVDYWxsLm5hbWVdLnNlcnZlclZhbGlkYXRpb24uYXBwbHkobnVsbCwgYXJncyk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxufVxuXG4vKipcbiAqIElmIHRoZSBjaGFuZ2VzIGNvdWxkIGJlIGFwcGxpZWQgYW5kIHRoZSB2YWxpZGF0aW9uIHdhcyBzdWNjZXNzZnVsIGNhbGwgdGhlIG1ldGhvZFxuICpcbiAqIEBwYXJhbSBzZW1vdHVzXG4gKiBAcGFyYW0ge2Jvb2xlYW59IGlzVmFsaWQgLSB0YWtlcyBhIGZsYWcgaWYgdGhlIGNhbGwgaXMgdmFsaWQgb3Igbm90LCBpZiBpdCBpcyB0aGVuIHdlIHByb2NlZWQgbm9ybWFsbHksXG4gKiBvdGhlcndpc2UsIHdlIHRocm93IGFuIGVycm9yIGFuZCBzdG9wIGV4ZWN1dGlvblxuICpcbiAqIEBwYXJhbSBzZXNzaW9uXG4gKiBAcGFyYW0gcmVtb3RlQ2FsbFxuICogQHJldHVybnMge3Vua25vd259IHVua25vd25cbiAqL1xuYXN5bmMgZnVuY3Rpb24gY2FsbElmVmFsaWQocGF5bG9hZDogUHJvY2Vzc0NhbGxQYXlsb2FkLCBpc1ZhbGlkOiBib29sZWFuKSB7XG4gICAgY29uc3Qge3NlbW90dXMsIHJlbW90ZUNhbGwsIGNhbGxDb250ZXh0LCBzZXNzaW9uLCBzdWJzY3JpcHRpb25JZCwgcmVtb3RlQ2FsbElkLCByZXN0b3JlU2Vzc2lvbkNhbGxiYWNrfSA9IHBheWxvYWQ7XG5cbiAgICBsZXQgbG9nZ2VyT2JqZWN0ID0ge1xuICAgICAgICBjb21wb25lbnQ6ICdzZW1vdHVzJyxcbiAgICAgICAgbW9kdWxlOiAncHJvY2Vzc0NhbGwnLFxuICAgICAgICBhY3Rpdml0eTogJ2NhbGxJZlZhbGlkJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgY2FsbDogcmVtb3RlQ2FsbC5uYW1lLFxuICAgICAgICAgICAgc2VxdWVuY2U6IHJlbW90ZUNhbGwuc2VxdWVuY2UsXG4gICAgICAgICAgICByZW1vdGVDYWxsSWQ6IHJlbW90ZUNhbGwuaWRcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBzZW1vdHVzLmxvZ2dlci5pbmZvKGxvZ2dlck9iamVjdCwgcmVtb3RlQ2FsbC5uYW1lKTtcblxuICAgIGxldCBvYmogPSBzZXNzaW9uLm9iamVjdHNbcmVtb3RlQ2FsbC5pZF07XG5cbiAgICBpZiAoIW9ialtyZW1vdGVDYWxsLm5hbWVdKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihyZW1vdGVDYWxsLm5hbWUgKyAnIGZ1bmN0aW9uIGRvZXMgbm90IGV4aXN0LicpO1xuICAgIH1cblxuICAgIGlmICghaXNWYWxpZCAmJiByZW1vdGVDYWxsICYmIHJlbW90ZUNhbGwubmFtZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IocmVtb3RlQ2FsbC5uYW1lICsgJyByZWZ1c2VkJyk7XG4gICAgfVxuXG4gICAgbGV0IGFyZ3MgPSBzZW1vdHVzLl9leHRyYWN0QXJndW1lbnRzKHJlbW90ZUNhbGwpO1xuXG4gICAgcmV0dXJuIG9ialtyZW1vdGVDYWxsLm5hbWVdLmFwcGx5KG9iaiwgYXJncyk7XG59XG5cbi8qKlxuICogTGV0IHRoZSBjb250cm9sbGVyIGtub3cgdGhhdCB0aGUgbWV0aG9kIHdhcyBjb21wbGV0ZWQgYW5kIGdpdmUgaXQgYSBjaGFuY2UgdG8gY29tbWl0IGNoYW5nZXNcbiAqXG4gKiBAcGFyYW0gcGF5bG9hZFxuICogQHBhcmFtICByZXR1cm5WYWx1ZSB1bmtub3duXG4gKlxuICogQHJldHVybnNcbiAqL1xuYXN5bmMgZnVuY3Rpb24gcG9zdENhbGxIb29rKHBheWxvYWQ6IFByb2Nlc3NDYWxsUGF5bG9hZCwgcmV0dXJuVmFsdWUpIHtcbiAgICBjb25zdCB7c2Vtb3R1cywgcmVtb3RlQ2FsbCwgY2FsbENvbnRleHQsIEhUVFBPYmpzfSA9IHBheWxvYWQ7XG5cbiAgICBpZiAoc2Vtb3R1cy5jb250cm9sbGVyICYmIHNlbW90dXMuY29udHJvbGxlci5wb3N0U2VydmVyQ2FsbCkge1xuICAgICAgICBjb25zdCBoYXNDaGFuZ2VzOiBib29sZWFuID0gcmVtb3RlQ2FsbC5jaGFuZ2VzLmxlbmd0aCA+IDI7XG4gICAgICAgIGF3YWl0IHNlbW90dXMuY29udHJvbGxlci5wb3N0U2VydmVyQ2FsbC5jYWxsKHNlbW90dXMuY29udHJvbGxlciwgaGFzQ2hhbmdlcywgY2FsbENvbnRleHQsIHNlbW90dXMuY2hhbmdlU3RyaW5nLCBIVFRQT2Jqcyk7XG4gICAgfVxuICAgIHJldHVybiByZXR1cm5WYWx1ZTtcbn1cblxuLyoqXG4gKiBQYWNrYWdlIHVwIGFueSBjaGFuZ2VzIHJlc3VsdGluZyBmcm9tIHRoZSBleGVjdXRpb24gYW5kIHNlbmQgdGhlbSBiYWNrIGluIHRoZSBtZXNzYWdlLCBjbGVhcmluZ1xuICogb3VyIGNoYW5nZSBxdWV1ZSB0byBhY2N1bXVsYXRlIG1vcmUgY2hhbmdlcyBmb3IgdGhlIG5leHQgY2FsbFxuICpcbiAqIEBwYXJhbSBzZW1vdHVzXG4gKiBAcGFyYW0gcmVtb3RlQ2FsbFxuICogQHBhcmFtIHJlbW90ZUNhbGxJZFxuICogQHBhcmFtIHt1bmtub3dufSByZXQgdW5rbm93blxuICovXG5mdW5jdGlvbiBwb3N0Q2FsbFN1Y2Nlc3MocGF5bG9hZDogUHJvY2Vzc0NhbGxQYXlsb2FkLCByZXQpOiB2b2lkIHtcbiAgICBjb25zdCB7c2Vtb3R1cywgcmVtb3RlQ2FsbCwgY2FsbENvbnRleHQsIHNlc3Npb24sIHJlbW90ZUNhbGxJZH0gPSBwYXlsb2FkO1xuXG4gICAgc2Vtb3R1cy5sb2dnZXIuaW5mbyhcbiAgICAgICAge1xuICAgICAgICAgICAgY29tcG9uZW50OiAnc2Vtb3R1cycsXG4gICAgICAgICAgICBtb2R1bGU6ICdwcm9jZXNzQ2FsbCcsXG4gICAgICAgICAgICBhY3Rpdml0eTogJ3Bvc3RDYWxsLnN1Y2Nlc3MnLFxuICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgIGNhbGw6IHJlbW90ZUNhbGwubmFtZSxcbiAgICAgICAgICAgICAgICBjYWxsVGltZTogbG9nVGltZShjYWxsQ29udGV4dCksXG4gICAgICAgICAgICAgICAgc2VxdWVuY2U6IHJlbW90ZUNhbGwuc2VxdWVuY2VcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgcmVtb3RlQ2FsbC5uYW1lXG4gICAgKTtcblxuICAgIHBhY2thZ2VDaGFuZ2VzKHNlbW90dXMsIHNlc3Npb24se1xuICAgICAgICB0eXBlOiAncmVzcG9uc2UnLFxuICAgICAgICBzeW5jOiB0cnVlLFxuICAgICAgICB2YWx1ZTogSlNPTi5zdHJpbmdpZnkoc2Vtb3R1cy5fdG9UcmFuc3BvcnQocmV0KSksXG4gICAgICAgIG5hbWU6IHJlbW90ZUNhbGwubmFtZSxcbiAgICAgICAgcmVtb3RlQ2FsbElkOiByZW1vdGVDYWxsSWRcbiAgICB9KTtcbn1cblxuLyoqXG4gKiBIZWxwZXIgZnVuY3Rpb24gdG8gaWRlbnRpZnkgaWYgdGhlcmUncyBhIHBvc3RTZXJ2ZXJFcnJvckhhbmRsZXIgY2FsbGJhY2sgb24gdGhlIGJhc2UgY29udHJvbGxlclxuICogSWYgdGhlcmUgaXMsIHdlIGV4ZWN1dGUgdGhlIGhhbmRsZXIsIGFuZCBpZiB3ZSBjYXRjaCBhbiBlcnJvciBpbiB0aGUgaGFuZGxlciwgd2UgcHJvcG9nYXRlIGl0IHVwIHRvIHRoZSBsb2dnZXIuXG4gKiBAcGFyYW0gbG9nZ2VyXG4gKiBAcGFyYW0geyp9IGNvbnRyb2xsZXJcbiAqIEBwYXJhbSB0eXBlXG4gKiBAcGFyYW0gcmVtb3RlQ2FsbFxuICogQHBhcmFtIHJlbW90ZUNhbGxJZFxuICogQHBhcmFtIGNhbGxDb250ZXh0XG4gKiBAcGFyYW0gY2hhbmdlU3RyaW5nXG4gKiBAcGFyYW0gc2Vzc2lvblxuICovXG5hc3luYyBmdW5jdGlvbiByZXNvbHZlRXJyb3JIYW5kbGVyKGxvZ2dlciwgY29udHJvbGxlcjogYW55LCB0eXBlLCByZW1vdGVDYWxsOiBSZW1vdGVDYWxsLCByZW1vdGVDYWxsSWQsIGNhbGxDb250ZXh0OiBDYWxsQ29udGV4dCwgY2hhbmdlU3RyaW5nLCBzZXNzaW9uOiBTZXNzaW9uKSB7XG5cbiAgICBpZiAoY29udHJvbGxlciAmJiBjb250cm9sbGVyLnBvc3RTZXJ2ZXJFcnJvckhhbmRsZXIpIHtcbiAgICAgICAgbGV0IGVycm9yVHlwZSA9IHR5cGU7XG4gICAgICAgIGxldCBmdW5jdGlvbk5hbWUgPSByZW1vdGVDYWxsLm5hbWU7XG4gICAgICAgIGxldCBvYmogPSB1bmRlZmluZWQ7XG4gICAgICAgIGlmIChzZXNzaW9uLm9iamVjdHNbcmVtb3RlQ2FsbC5pZF0pIHtcbiAgICAgICAgICAgIG9iaiA9IHNlc3Npb24ub2JqZWN0c1tyZW1vdGVDYWxsLmlkXTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgbG9nQm9keSA9IHtcbiAgICAgICAgICAgIGNvbXBvbmVudDogJ3NlbW90dXMnLFxuICAgICAgICAgICAgbW9kdWxlOiAncHJvY2Vzc0NhbGwuZmFpbHVyZScsXG4gICAgICAgICAgICBhY3Rpdml0eTogJ3Bvc3RDYWxsLnJlc29sdmVFcnJvckhhbmRsZXInLFxuICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgIGNhbGw6IHJlbW90ZUNhbGwubmFtZSxcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiB1bmRlZmluZWRcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgYXdhaXQgY29udHJvbGxlci5wb3N0U2VydmVyRXJyb3JIYW5kbGVyLmNhbGwoY29udHJvbGxlciwgZXJyb3JUeXBlLCByZW1vdGVDYWxsSWQsIG9iaiwgZnVuY3Rpb25OYW1lLCBjYWxsQ29udGV4dCwgY2hhbmdlU3RyaW5nKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGlmIChlcnJvci5tZXNzYWdlKSB7XG4gICAgICAgICAgICAgICAgbG9nQm9keS5kYXRhLm1lc3NhZ2UgPSBlcnJvci5tZXNzYWdlO1xuICAgICAgICAgICAgICAgIGxvZ2dlci5lcnJvcihlcnJvci5tZXNzYWdlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbG9nQm9keS5kYXRhLm1lc3NhZ2UgPSBKU09OLnN0cmluZ2lmeShlcnJvcik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGxvZ2dlci5lcnJvcihsb2dCb2R5LCAnVXNlciBkZWZpbmVkIHBvc3RTZXJ2ZXJFcnJvckhhbmRsZXIgdGhyZXcgYW4gZXJyb3InKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyoqXG4gKiBIYW5kbGUgZXJyb3JzIGJ5IHJldHVybmluZyBhbiBhcHJvcHJpYXRlIG1lc3NhZ2UuICBJbiBhbGwgY2FzZXMgY2hhbmdlcyBzZW50IGJhY2sgdGhvdWdoIHRoZXlcbiAqXG4gKiBAcGFyYW0gc2Vtb3R1c1xuICogQHBhcmFtIHJlbW90ZUNhbGxcbiAqIEBwYXJhbSBjYWxsQ29udGV4dFxuICogQHBhcmFtIHNlc3Npb25cbiAqIEBwYXJhbSB7dW5rbm93bn0gZXJyIHVua25vd25cbiAqXG4gKiBAcmV0dXJucyB7dW5rbm93bn0gQSBQcm9taXNlXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHBvc3RDYWxsRmFpbHVyZShwYXlsb2FkOiBQcm9jZXNzQ2FsbFBheWxvYWQsIGVycikge1xuICAgIGNvbnN0IHtzZW1vdHVzLCByZW1vdGVDYWxsLCBjYWxsQ29udGV4dCwgc2Vzc2lvbiwgc3Vic2NyaXB0aW9uSWQsIHJlbW90ZUNhbGxJZCwgcmVzdG9yZVNlc3Npb25DYWxsYmFja30gPSBwYXlsb2FkO1xuXG4gICAgbGV0IGxvZ1N0cmluZyA9ICcnO1xuXG4gICAgbGV0IHBhY2thZ2VDaGFuZ2VzUGF5bG9hZCA9IHt9O1xuXG4gICAgbGV0IHVwZGF0ZUNvbmZsaWN0UmV0cnkgPSBmYWxzZTtcblxuICAgIGlmIChlcnIgPT09ICdTeW5jIEVycm9yJykge1xuICAgICAgICBwb3N0Q2FsbEVycm9yTG9nKHNlbW90dXMubG9nZ2VyLCAncG9zdENhbGwuc3luY0Vycm9yJywgdW5kZWZpbmVkLCAnZXJyb3InLCByZW1vdGVDYWxsLm5hbWUsIHJlbW90ZUNhbGwsIGNhbGxDb250ZXh0KTtcbiAgICAgICAgcGFja2FnZUNoYW5nZXNQYXlsb2FkID0ge1xuICAgICAgICAgICAgdHlwZTogJ3Jlc3BvbnNlJyxcbiAgICAgICAgICAgIHN5bmM6IGZhbHNlLFxuICAgICAgICAgICAgY2hhbmdlczogJydcbiAgICAgICAgfTtcbiAgICB9IGVsc2UgaWYgKGVyci5tZXNzYWdlID09ICdVcGRhdGUgQ29uZmxpY3QnKSB7XG4gICAgICAgIC8vIE5vdCB0aGlzIG1heSBiZSBjYXVnaHQgaW4gdGhlIHRyYW5zcG9ydCAoZS5nLiBBbW9ycGhpYykgYW5kIHJldHJpZWQpXG5cbiAgICAgICAgLy8gaW5jcmVtZW50IGNhbGxDb250ZXh0LnJldHJpZXMgYWZ0ZXIgY2hlY2tpbmcgaWYgPCAzLiBTaG91bGQgcmV0cnkgMyB0aW1lcy5cbiAgICAgICAgaWYgKGNhbGxDb250ZXh0LnJldHJpZXMrKyA8IDMpIHtcbiAgICAgICAgICAgIHBvc3RDYWxsRXJyb3JMb2coc2Vtb3R1cy5sb2dnZXIsICdwb3N0Q2FsbC51cGRhdGVDb25mbGljdCcsIHVuZGVmaW5lZCwgJ3dhcm4nLCByZW1vdGVDYWxsLm5hbWUsIHJlbW90ZUNhbGwsIGNhbGxDb250ZXh0KTtcbiAgICAgICAgICAgIHVwZGF0ZUNvbmZsaWN0UmV0cnkgPSB0cnVlO1xuICAgICAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBhc3NpZ25tZW50IGlzIG9ubHkgdXNlZCBmb3IgdGhlIGVycm9yIGhhbmRsZXJcbiAgICAgICAgICAgIHBhY2thZ2VDaGFuZ2VzUGF5bG9hZCA9IHtcbiAgICAgICAgICAgICAgICB0eXBlOiAncmV0cnknXG4gICAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcG9zdENhbGxFcnJvckxvZyhzZW1vdHVzLmxvZ2dlciwgJ3Bvc3RDYWxsLnVwZGF0ZUNvbmZsaWN0JywgdW5kZWZpbmVkLCAnZXJyb3InLCByZW1vdGVDYWxsLm5hbWUsIHJlbW90ZUNhbGwsIGNhbGxDb250ZXh0KTtcbiAgICAgICAgICAgIHBhY2thZ2VDaGFuZ2VzUGF5bG9hZCA9IHtcbiAgICAgICAgICAgICAgICB0eXBlOiAncmV0cnknLFxuICAgICAgICAgICAgICAgIHN5bmM6IGZhbHNlXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKCEoZXJyIGluc3RhbmNlb2YgRXJyb3IpKSB7XG4gICAgICAgICAgICBwb3N0Q2FsbEVycm9yTG9nKHNlbW90dXMubG9nZ2VyLCAncG9zdENhbGwuZXJyb3InLCBKU09OLnN0cmluZ2lmeShlcnIpLCAnaW5mbycsIHJlbW90ZUNhbGwubmFtZSwgcmVtb3RlQ2FsbCwgY2FsbENvbnRleHQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKGVyci5zdGFjaykge1xuICAgICAgICAgICAgICAgIGxvZ1N0cmluZyA9ICdFeGNlcHRpb24gaW4gJyArIHJlbW90ZUNhbGwubmFtZSArICcgLSAnICsgZXJyLm1lc3NhZ2UgKyAoJyAnICsgZXJyLnN0YWNrKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbG9nU3RyaW5nID0gJ0V4Y2VwdGlvbiBpbiAnICsgcmVtb3RlQ2FsbC5uYW1lICsgJyAtICcgKyBlcnIubWVzc2FnZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcG9zdENhbGxFcnJvckxvZyhzZW1vdHVzLmxvZ2dlciwgJ3Bvc3RDYWxsLmV4Y2VwdGlvbicsIGVyci5tZXNzYWdlLCAnZXJyb3InLCBsb2dTdHJpbmcsIHJlbW90ZUNhbGwsIGNhbGxDb250ZXh0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHBhY2thZ2VDaGFuZ2VzUGF5bG9hZCA9IHtcbiAgICAgICAgICAgIHR5cGU6ICdlcnJvcicsXG4gICAgICAgICAgICBzeW5jOiB0cnVlLFxuICAgICAgICAgICAgdmFsdWU6IGdldEVycm9yKGVyciksXG4gICAgICAgICAgICBuYW1lOiByZW1vdGVDYWxsLm5hbWVcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBPYmplY3QuYXNzaWduKHBhY2thZ2VDaGFuZ2VzUGF5bG9hZCwge3JlbW90ZUNhbGxJZDogcmVtb3RlQ2FsbElkfSk7XG5cbiAgICBhd2FpdCByZXNvbHZlRXJyb3JIYW5kbGVyKFxuICAgICAgICBzZW1vdHVzLmxvZ2dlcixcbiAgICAgICAgc2Vtb3R1cy5jb250cm9sbGVyLFxuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIHBhY2thZ2VDaGFuZ2VzUGF5bG9hZC50eXBlLFxuICAgICAgICByZW1vdGVDYWxsLFxuICAgICAgICByZW1vdGVDYWxsSWQsXG4gICAgICAgIGNhbGxDb250ZXh0LFxuICAgICAgICBzZW1vdHVzLmNoYW5nZVN0cmluZyxcbiAgICAgICAgc2Vzc2lvblxuICAgICk7XG5cbiAgICBpZiAodXBkYXRlQ29uZmxpY3RSZXRyeSkge1xuICAgICAgICBhd2FpdCBkZWxheShjYWxsQ29udGV4dC5yZXRyaWVzICogMTAwMCk7XG4gICAgICAgIHJldHVybiByZXRyeUNhbGwocGF5bG9hZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHBhY2thZ2VDaGFuZ2VzKHNlbW90dXMsIHNlc3Npb24sIHBhY2thZ2VDaGFuZ2VzUGF5bG9hZCk7XG4gICAgfVxufVxuXG4vKipcbiAqIERlYWwgd2l0aCBjaGFuZ2VzIGdvaW5nIGJhY2sgdG8gdGhlIGNhbGxlciAtIEFjdHVhbGx5IG5vdCBBc3luYyFcbiAqXG4gKiBAcGFyYW0gc2Vtb3R1c1xuICogQHBhcmFtIHNlc3Npb25cbiAqIEBwYXJhbSB7dW5rbm93bn0gbWVzc2FnZSB1bmtub3duXG4gKi9cbmZ1bmN0aW9uIHBhY2thZ2VDaGFuZ2VzKHNlbW90dXM6IFNlbW90dXMsIHNlc3Npb246IFNlc3Npb24sIG1lc3NhZ2UpIHtcbiAgICBzZW1vdHVzLl9jb252ZXJ0QXJyYXlSZWZlcmVuY2VzVG9DaGFuZ2VzKCk7XG4gICAgbWVzc2FnZS5jaGFuZ2VzID0gSlNPTi5zdHJpbmdpZnkoc2Vtb3R1cy5nZXRDaGFuZ2VzKCkpO1xuXG4gICAgaWYgKHNlbW90dXMubWVtU2Vzc2lvbiAmJiBzZW1vdHVzLm1lbVNlc3Npb24uc2Vtb3R1cyAmJiBzZW1vdHVzLm1lbVNlc3Npb24uc2Vtb3R1cy5jYWxsU3RhcnRUaW1lKSB7XG4gICAgICAgIHNlbW90dXMubWVtU2Vzc2lvbi5zZW1vdHVzLmNhbGxTdGFydFRpbWUgPSAwO1xuICAgIH1cblxuICAgIC8vIEluc3BlY3QgYSBjb3B5IG9mIHRoZSBtZXNzYWdlIG9uIHRoZSBzZXJ2ZXIgb25seSBiZWZvcmUgc2VudCBvdXQuIE9ubHkgZm9yIGRlYnVnIHB1cnBvc2VzXG4gICAgaWYgKHNlbW90dXMuY29udHJvbGxlciAmJiBzZW1vdHVzLmNvbnRyb2xsZXIuaW5zcGVjdE1lc3NhZ2UpIHtcbiAgICAgICAgc2Vtb3R1cy5jb250cm9sbGVyLmluc3BlY3RNZXNzYWdlKE9iamVjdC5hc3NpZ24oe30sIG1lc3NhZ2UpKTtcbiAgICB9XG5cbiAgICBzZXNzaW9uLnNlbmRNZXNzYWdlKG1lc3NhZ2UpO1xuICAgIHNlbW90dXMuX2RlbGV0ZUNoYW5nZXMoKTtcbiAgICBzZW1vdHVzLl9wcm9jZXNzUXVldWUoKTtcbn1cblxuXG4vKipcbiAqICBIZWxwZXIgZnVuY3Rpb24gdG8gbG9nIGFtb3JwaGljIGVycm9ycy5cbiAqIEBwYXJhbSB7Kn0gbG9nZ2VyXG4gKiBAcGFyYW0geyp9IGFjdGl2aXR5XG4gKiBAcGFyYW0geyp9IG1lc3NhZ2VcbiAqIEBwYXJhbSB7Kn0gbG9nVHlwZVxuICogQHBhcmFtIHsqfSBsb2dTdHJpbmdcbiAqIEBwYXJhbSByZW1vdGVDYWxsXG4gKiBAcGFyYW0gY2FsbENvbnRleHRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBvc3RDYWxsRXJyb3JMb2cobG9nZ2VyLCBhY3Rpdml0eSwgbWVzc2FnZSwgbG9nVHlwZSwgbG9nU3RyaW5nLCByZW1vdGVDYWxsOiBSZW1vdGVDYWxsLCBjYWxsQ29udGV4dDogQ2FsbENvbnRleHQpIHtcbiAgICBsZXQgbG9nQm9keSA9IHtcbiAgICAgICAgY29tcG9uZW50OiAnc2Vtb3R1cycsXG4gICAgICAgIG1vZHVsZTogJ3Byb2Nlc3NDYWxsLmZhaWx1cmUnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICBjYWxsOiByZW1vdGVDYWxsLm5hbWUsXG4gICAgICAgICAgICBjYWxsVGltZTogbG9nVGltZShjYWxsQ29udGV4dCksXG4gICAgICAgICAgICBzZXF1ZW5jZTogcmVtb3RlQ2FsbC5zZXF1ZW5jZSxcbiAgICAgICAgICAgIG1lc3NhZ2U6IHVuZGVmaW5lZFxuICAgICAgICB9LFxuICAgICAgICBhY3Rpdml0eTogdW5kZWZpbmVkXG4gICAgfTtcblxuICAgIGxvZ0JvZHkuYWN0aXZpdHkgPSBhY3Rpdml0eTtcblxuICAgIGlmIChsb2dnZXIuZGF0YSkge1xuICAgICAgICBsb2dCb2R5LmRhdGEubWVzc2FnZSA9IG1lc3NhZ2U7XG4gICAgfVxuXG4gICAgbG9nZ2VyW2xvZ1R5cGVdKGxvZ0JvZHksIGxvZ1N0cmluZyk7XG59XG4iXX0=
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.save = exports.restore = exports.sync = exports.get = exports.remove = exports.create = void 0;
/**

@@ -147,2 +148,2 @@ * Obtain a session for tracking subscriptions

exports.save = save;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2Vzc2lvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaGVscGVycy9TZXNzaW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUVBOzs7Ozs7Ozs7R0FTRztBQUNILFNBQWdCLE1BQU0sQ0FBQyxPQUFnQixFQUFFLElBQUksRUFBRSxXQUF3QixFQUFFLFNBQVM7SUFDOUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUU7UUFDbkIsT0FBTyxDQUFDLGtCQUFrQixHQUFHLENBQUMsQ0FBQztRQUMvQixPQUFPLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQztRQUMxQixPQUFPLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztLQUN6QjtJQUVELElBQUksQ0FBQyxTQUFTLEVBQUU7UUFDWixTQUFTLEdBQUcsT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFDO0tBQ3ZDO0lBRUQsT0FBTyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUU5QixPQUFPLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHO1FBQzFCLGFBQWEsRUFBRSxFQUFFO1FBQ2pCLFdBQVcsRUFBRSxXQUFXO1FBQ3hCLGtCQUFrQixFQUFFLENBQUMsQ0FBQyxXQUFXO1FBQ2pDLFdBQVcsRUFBRSxFQUFFO1FBQ2Ysa0JBQWtCLEVBQUUsRUFBRTtRQUN0Qix1QkFBdUIsRUFBRSxDQUFDO1FBQzFCLGlCQUFpQixFQUFFLENBQUM7UUFDcEIsY0FBYyxFQUFFLENBQUM7UUFDakIsa0JBQWtCLEVBQUUsQ0FBQztRQUNyQixPQUFPLEVBQUUsRUFBRTtRQUNYLFNBQVMsRUFBRSxDQUFDO1FBQ1osY0FBYyxFQUFFLElBQUksQ0FBQyx1QkFBdUI7S0FDL0MsQ0FBQztJQUVGLElBQUksSUFBSSxZQUFZLEtBQUssRUFBRTtRQUN2QixLQUFLLElBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFB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aUIsR0FBRyxPQUFPLENBQUMsaUJBQWlCLEdBQUcsQ0FBQyxDQUFDO0lBQzFELE9BQU8sQ0FBQyxjQUFjLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixDQUFDO0lBQ25ELElBQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUM7SUFDaEMsT0FBTyxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7SUFFckIsSUFBTSxZQUFZLEdBQUc7UUFDakIsU0FBUyxFQUFFLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLENBQUM7UUFDakQsUUFBUSxFQUFFLE9BQU8sQ0FBQyxjQUFjO1FBQ2hDLFVBQVUsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRTtRQUNoQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyx1QkFBdUI7S0FDeEQsQ0FBQztJQUVGLE9BQU8sQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO0lBQzFCLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUMsQ0FBQyxDQUFDO0lBRS9FLE9BQU8sWUFBWSxDQUFDO0FBQ3hCLENBQUM7QUFuQkQsb0JBbUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtTYXZlZFNlc3Npb24sIFNlbW90dXMsIFNlbmRNZXNzYWdlLCBTZXNzaW9ufSBmcm9tICcuL1R5cGVzJztcblxuLyoqXG4gKiBPYnRhaW4gYSBzZXNzaW9uIGZvciB0cmFja2luZyBzdWJzY3JpcHRpb25zXG4gKlxuICogQHBhcmFtIHNlbW90dXNcbiAqIEBwYXJhbSB7dW5rbm93bn0gcm9sZSB1bmtub3duXG4gKiBAcGFyYW0ge3Vua25vd259IHNlbmRNZXNzYWdlIHVua25vd25cbiAqIEBwYXJhbSB7dW5rbm93bn0gc2Vzc2lvbklkIHVua25vd25cbiAqXG4gKiBAcmV0dXJucyB7Kn0gdW5rbm93blxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlKHNlbW90dXM6IFNlbW90dXMsIHJvbGUsIHNlbmRNZXNzYWdlOiBTZW5kTWVzc2FnZSwgc2Vzc2lvbklkKTogYW55IHtcbiAgICBpZiAoIXNlbW90dXMuc2Vzc2lvbnMpIHtcbiAgICAgICAgc2Vtb3R1cy5uZXh0U3Vic2NyaXB0aW9uSWQgPSAwO1xuICAgICAgICBzZW1vdHVzLm5leHRTZXNzaW9uSWQgPSAxO1xuICAgICAgICBzZW1vdHVzLnNlc3Npb25zID0ge307XG4gICAgfVxuXG4gICAgaWYgKCFzZXNzaW9uSWQpIHtcbiAgICAgICAgc2Vzc2lvbklkID0gc2Vtb3R1cy5uZXh0U2Vzc2lvbklkKys7XG4gICAgfVxuXG4gICAgc2Vtb3R1cy5zZXRTZXNzaW9uKHNlc3Npb25JZCk7XG5cbiAgICBzZW1vdHVzLnNlc3Npb25zW3Nlc3Npb25JZF0gPSB7XG4gICAgICAgIHN1YnNjcmlwdGlvbnM6IHt9LCAvLyBDaGFuZ2UgbGlzdGVuZXJzXG4gICAgICAgIHNlbmRNZXNzYWdlOiBzZW5kTWVzc2FnZSwgLy8gU2VuZCBtZXNzYWdlIGNhbGxiYWNrXG4gICAgICAgIHNlbmRNZXNzYWdlRW5hYmxlZDogISFzZW5kTWVzc2FnZSxcbiAgICAgICAgcmVtb3RlQ2FsbHM6IFtdLCAvLyBSZW1vdGUgY2FsbHMgcXVldWVkIHRvIGdvIG91dFxuICAgICAgICBwZW5kaW5nUmVtb3RlQ2FsbHM6IHt9LCAvLyBSZW1vdGUgY2FsbHMgd2FpdGluZyBmb3IgcmVzcG9uc2VcbiAgICAgICAgbmV4dFBlbmRpbmdSZW1vdGVDYWxsSWQ6IDEsXG4gICAgICAgIG5leHRTYXZlU2Vzc2lvbklkOiAxLFxuICAgICAgICBzYXZlZFNlc3Npb25JZDogMCxcbiAgICAgICAgbmV4dFN1YnNjcmlwdGlvbklkOiAwLFxuICAgICAgICBvYmplY3RzOiB7fSxcbiAgICAgICAgbmV4dE9iaklkOiAxLFxuICAgICAgICBkaXNwZW5zZU5leHRJZDogbnVsbCAvLyBGb3JjZSBuZXh0IG9iamVjdCBJZFxuICAgIH07XG5cbiAgICBpZiAocm9sZSBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgIGZvciAodmFyIGl4ID0gMDsgaXggPCByb2xlLmxlbmd0aDsgKytpeCkge1xuICAgICAgICAgICAgc2Vtb3R1cy5zdWJzY3JpYmUocm9sZVtpeF0pO1xuICAgICAgICB9XG5cbiAgICAgICAgc2Vtb3R1cy5yb2xlID0gcm9sZVsxXTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBzZW1vdHVzLnN1YnNjcmliZShyb2xlKTtcbiAgICAgICAgc2Vtb3R1cy5yb2xlID0gcm9sZTtcbiAgICB9XG5cbiAgICByZXR1cm4gc2Vzc2lvbklkO1xufVxuXG5cbi8qKlxuICogUmVtb3ZlIHRoZSBzZXNzaW9uIGZyb20gdGhlIHNlc3Npb25zIG1hcCwgcmVqZWN0aW5nIGFueSBvdXRzdGFuZGluZyBwcm9taXNlc1xuICogV0FSTklORzogQXN5bmMgc2lkZSBlZmZlY3RzXG4gKiBAcGFyYW0gc2Vtb3R1c1xuICogQHBhcmFtIHt1bmtub3dufSBzZXNzaW9uSWQgdW5rbm93blxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlKHNlbW90dXM6IFNlbW90dXMsIHNlc3Npb25JZDogc3RyaW5nIHwgbnVtYmVyKSB7XG4gICAgbGV0IHNlc3Npb24gPSBnZXQoc2Vtb3R1cywgc2Vzc2lvbklkKTtcblxuICAgIGZvciAodmFyIGNhbGxzIGluIHNlc3Npb24ucmVtb3RlQ2FsbHMpIHtcbiAgICAgICAgc2Vzc2lvbi5yZW1vdGVDYWxsc1tjYWxsc10uZGVmZXJyZWQucmVqZWN0KHtjb2RlOiAncmVzZXQnLCB0ZXh0OiAnU2Vzc2lvbiByZXN5bmNocm9uaXplZCd9KTtcbiAgICB9XG5cbiAgICBpZiAoc2Vtb3R1cy5zZXNzaW9uc1tzZXNzaW9uSWRdKSB7XG4gICAgICAgIGRlbGV0ZSBzZW1vdHVzLnNlc3Npb25zW3Nlc3Npb25JZF07XG4gICAgfVxufVxuXG4vKipcbiAqIEdldCB0aGUgY3VycmVudCBzZXNzaW9uIHN0cnVjdHVyZVxuICpcbiAqIEByZXR1cm5zIHsqfSB0aGUgc2Vzc2lvblxuICpcbiAqIEBwcml2YXRlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXQoc2Vtb3R1czogU2Vtb3R1cywgX3NpZD8pOiBTZXNzaW9uIHwgbnVsbCB7XG4gICAgaWYgKCFzZW1vdHVzLmN1cnJlbnRTZXNzaW9uKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gc2Vtb3R1cy5zZXNzaW9uc1tzZW1vdHVzLmN1cnJlbnRTZXNzaW9uXTtcbn1cblxuXG4vKipcbiAqIEluZGljYXRlIHRoYXQgYWxsIGNoYW5nZXMgaGF2ZSBiZWVuIGFjY2VwdGVkIG91dHNpZGUgb2YgdGhlIG1lc3NhZ2VcbiAqIG1lY2hhbmlzbSBhcyB3b3VsZCB1c3VhbGx5IGhhcHBlbiB3aGVuIGEgc2Vzc2lvbiBpcyBzdGFydGluZyB1cFxuICpcbiAqIEBwYXJhbSBzZW1vdHVzXG4gKiBAcGFyYW0ge3Vua25vd259IHNlc3Npb25JZCB1bmtub3duXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzeW5jKHNlbW90dXM6IFNlbW90dXMsIHNlc3Npb25JZCkge1xuICAgIGdldChzZW1vdHVzLCBzZXNzaW9uSWQpO1xuICAgIHNlbW90dXMuZ2V0Q2hhbmdlcygpO1xuICAgIHNlbW90dXMuX2RlbGV0ZUNoYW5nZXMoKTtcbn1cblxuXG4vKipcbiAqIFJlc3RvcmUgc2Vzc2lvbiB0aGF0IHdhcyBwb3RlbnRpYWxseSBzZXJpYWxpemVkL2Rlc2VyaWFsaXplZFxuICpcbiAqIEEgcmV2aXNpb24gbnVtYmVyIGlzIHVzZWQgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdGhlIGluLW1lbW9yeSBjb3B5IGlzIGdvb2RcbiAqXG4gKiBAcGFyYW0gc2Vtb3R1c1xuICogQHBhcmFtIHt1bmtub3dufSBzZXNzaW9uSWQgLSB0aGUgaWQgdW5kZXIgd2hpY2ggaXQgd2FzIGNyZWF0ZWQgd2l0aCBjcmVhdGVTZXNzaW9uXG4gKiBAcGFyYW0ge3Vua25vd259IHNhdmVkU2Vzc2lvbiAtIHRoZSBQT0pPIHZlcnNpb24gb2YgdGhlIHNlc3Npb24gZGF0YVxuICogQHBhcmFtIHt1bmtub3dufSBzZW5kTWVzc2FnZSAtIG5ldyBtZXNzYWdlIGZ1bmN0aW9uIHRvIGJlIGluIGVmZmVjdFxuICpcbiAqIEByZXR1cm5zIHtCb29sZWFufSBmYWxzZSBtZWFucyB0aGF0IG1lc3NhZ2VzIHdlcmUgaW4gZmxpZ2h0IGFuZCBhIHJlc2V0IGlzIG5lZWRlZFxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzdG9yZShzZW1vdHVzOiBTZW1vdHVzLCBzZXNzaW9uSWQsIHNhdmVkU2Vzc2lvbjogU2F2ZWRTZXNzaW9uLCBzZW5kTWVzc2FnZTogU2VuZE1lc3NhZ2UpIHtcbiAgICBzZW1vdHVzLnNldFNlc3Npb24oc2Vzc2lvbklkKTtcbiAgICBjb25zdCBzZXNzaW9uID0gc2Vtb3R1cy5zZXNzaW9uc1tzZXNzaW9uSWRdO1xuICAgIHNlbW90dXMubG9nZ2VyLmRlYnVnKHtjb21wb25lbnQ6ICdzZW1vdHVzJywgbW9kdWxlOiAncmVzdG9yZScsIGFjdGl2aXR5OiAnc2F2ZSd9KTtcblxuICAgIGlmIChzZXNzaW9uKSB7XG4gICAgICAgIGlmIChzZXNzaW9uLnNhdmVkU2Vzc2lvbklkID09IHNhdmVkU2Vzc2lvbi5yZXZpc2lvbikge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBkZWxldGUgc2Vtb3R1cy5zZXNzaW9uc1tzZXNzaW9uSWRdO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2Vtb3R1cy5zZXNzaW9uc1tzZXNzaW9uSWRdID0gSlNPTi5wYXJzZShzYXZlZFNlc3Npb24uZGF0YSk7XG4gICAgc2Vtb3R1cy5zZXNzaW9uc1tzZXNzaW9uSWRdLnNlbmRNZXNzYWdlID0gc2VuZE1lc3NhZ2U7XG5cbiAgICByZXR1cm4gc2F2ZWRTZXNzaW9uLmNhbGxDb3VudCA+IDA7XG59XG5cbi8qKlxuICogU2F2ZSB0aGUgc2Vzc2lvbiBkYXRhIGluIGEgd2F5IHRoYXQgY2FuIGJlIHNlcmlhbGl6ZWQvZGUtc2VyaWFsaXplZFxuICpcbiAqIEBwYXJhbSBzZW1vdHVzXG4gKiBAcGFyYW0ge3Vua25vd259IHNlc3Npb25JZCB1bmtub3duXG4gKlxuICogQHJldHVybnMge09iamVjdH0gdW5rbm93blxuICovXG5leHBvcnQgZnVuY3Rpb24gc2F2ZShzZW1vdHVzOiBTZW1vdHVzLCBzZXNzaW9uSWQpOiBTYXZlZFNlc3Npb24ge1xuICAgIGNvbnN0IHNlc3Npb24gPSBnZXQoc2Vtb3R1cywgc2Vzc2lvbklkKTtcblxuICAgIHNlc3Npb24ubmV4dFNhdmVTZXNzaW9uSWQgPSBzZXNzaW9uLm5leHRTYXZlU2Vzc2lvbklkICsgMTtcbiAgICBzZXNzaW9uLnNhdmVkU2Vzc2lvbklkID0gc2Vzc2lvbi5uZXh0U2F2ZVNlc3Npb25JZDtcbiAgICBjb25zdCBvYmplY3RzID0gc2Vzc2lvbi5vYmplY3RzO1xuICAgIHNlc3Npb24ub2JqZWN0cyA9IHt9O1xuXG4gICAgY29uc3Qgc2F2ZWRTZXNzaW9uID0ge1xuICAgICAgICBjYWxsQ291bnQ6IHNlbW90dXMuZ2V0UGVuZGluZ0NhbGxDb3VudChzZXNzaW9uSWQpLCAvLyBDYW4ndCBqdXN0IHJlc3RvcmUgb24gYW5vdGhlciBzZXJ2ZXIgYW5kIGNhcnJ5IG9uXG4gICAgICAgIHJldmlzaW9uOiBzZXNzaW9uLnNhdmVkU2Vzc2lvbklkLCAvLyBVc2VkIHRvIHNlZSBpZiBvdXIgbWVtb3J5IGNvcHkgZ29vZCBlbm91Z2hcbiAgICAgICAgcmVmZXJlbmNlZDogbmV3IERhdGUoKS5nZXRUaW1lKCksIC8vIFVzZWQgZm9yIHJlYXBpbmcgb2xkIHNlc3Npb25zXG4gICAgICAgIGRhdGE6IEpTT04uc3RyaW5naWZ5KHNlc3Npb24pIC8vIEFsbCB0aGUgc2Vzc2lvbiBkYXRhXG4gICAgfTtcblxuICAgIHNlc3Npb24ub2JqZWN0cyA9IG9iamVjdHM7XG4gICAgc2Vtb3R1cy5sb2dnZXIuZGVidWcoe2NvbXBvbmVudDogJ3NlbW90dXMnLCBtb2R1bGU6ICdzYXZlJywgYWN0aXZpdHk6ICdzYXZlJ30pO1xuXG4gICAgcmV0dXJuIHNhdmVkU2Vzc2lvbjtcbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2Vzc2lvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaGVscGVycy9TZXNzaW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQTs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFnQixNQUFNLENBQUMsT0FBZ0IsRUFBRSxJQUFJLEVBQUUsV0FBd0IsRUFBRSxTQUFTO0lBQzlFLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFO1FBQ25CLE9BQU8sQ0FBQyxrQkFBa0IsR0FBRyxDQUFDLENBQUM7UUFDL0IsT0FBTyxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUM7UUFDMUIsT0FBTyxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7S0FDekI7SUFFRCxJQUFJLENBQUMsU0FBUyxFQUFFO1FBQ1osU0FBUyxHQUFHLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQztLQUN2QztJQUVELE9BQU8sQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFOUIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsR0FBRztRQUMxQixhQUFhLEVBQUUsRUFBRTtRQUNqQixXQUFXLEVBQUUsV0FBVztRQUN4QixrQkFBa0IsRUFBRSxDQUFDLENBQUMsV0FBVztRQUNqQyxXQUFXLEVBQUUsRUFBRTtRQUNmLGtCQUFrQixFQUFFLEVBQUU7UUFDdEIsdUJBQXVCLEVBQUUsQ0FBQztRQUMxQixpQkFBaUIsRUFBRSxDQUFDO1FBQ3BCLGNBQWMsRUFBRSxDQUFDO1FBQ2pCLGtCQUFrQixFQUFFLENBQUM7UUFDckIsT0FBTyxFQUFFLEVBQUU7UUFDWCxTQUFTLEVBQUUsQ0FBQztRQUNaLGNBQWMsRUFBRSxJQUFJLENBQUMsdUJBQXVCO0tBQy9DLENBQUM7SUFFRixJQUFJLElBQUksWUFBWSxLQUFLLEVBQUU7UUFDdkIsS0FBSyxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLEVB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QWlCLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixHQUFHLENBQUMsQ0FBQztJQUMxRCxPQUFPLENBQUMsY0FBYyxHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQztJQUNuRCxJQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDO0lBQ2hDLE9BQU8sQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO0lBRXJCLElBQU0sWUFBWSxHQUFHO1FBQ2pCLFNBQVMsRUFBRSxPQUFPLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDO1FBQ2pELFFBQVEsRUFBRSxPQUFPLENBQUMsY0FBYztRQUNoQyxVQUFVLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUU7UUFDaEMsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsdUJBQXVCO0tBQ3hELENBQUM7SUFFRixPQUFPLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztJQUMxQixPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFDLENBQUMsQ0FBQztJQUUvRSxPQUFPLFlBQVksQ0FBQztBQUN4QixDQUFDO0FBbkJELG9CQW1CQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7U2F2ZWRTZXNzaW9uLCBTZW1vdHVzLCBTZW5kTWVzc2FnZSwgU2Vzc2lvbn0gZnJvbSAnLi9UeXBlcyc7XG5cbi8qKlxuICogT2J0YWluIGEgc2Vzc2lvbiBmb3IgdHJhY2tpbmcgc3Vic2NyaXB0aW9uc1xuICpcbiAqIEBwYXJhbSBzZW1vdHVzXG4gKiBAcGFyYW0ge3Vua25vd259IHJvbGUgdW5rbm93blxuICogQHBhcmFtIHt1bmtub3dufSBzZW5kTWVzc2FnZSB1bmtub3duXG4gKiBAcGFyYW0ge3Vua25vd259IHNlc3Npb25JZCB1bmtub3duXG4gKlxuICogQHJldHVybnMgeyp9IHVua25vd25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZShzZW1vdHVzOiBTZW1vdHVzLCByb2xlLCBzZW5kTWVzc2FnZTogU2VuZE1lc3NhZ2UsIHNlc3Npb25JZCk6IGFueSB7XG4gICAgaWYgKCFzZW1vdHVzLnNlc3Npb25zKSB7XG4gICAgICAgIHNlbW90dXMubmV4dFN1YnNjcmlwdGlvbklkID0gMDtcbiAgICAgICAgc2Vtb3R1cy5uZXh0U2Vzc2lvbklkID0gMTtcbiAgICAgICAgc2Vtb3R1cy5zZXNzaW9ucyA9IHt9O1xuICAgIH1cblxuICAgIGlmICghc2Vzc2lvbklkKSB7XG4gICAgICAgIHNlc3Npb25JZCA9IHNlbW90dXMubmV4dFNlc3Npb25JZCsrO1xuICAgIH1cblxuICAgIHNlbW90dXMuc2V0U2Vzc2lvbihzZXNzaW9uSWQpO1xuXG4gICAgc2Vtb3R1cy5zZXNzaW9uc1tzZXNzaW9uSWRdID0ge1xuICAgICAgICBzdWJzY3JpcHRpb25zOiB7fSwgLy8gQ2hhbmdlIGxpc3RlbmVyc1xuICAgICAgICBzZW5kTWVzc2FnZTogc2VuZE1lc3NhZ2UsIC8vIFNlbmQgbWVzc2FnZSBjYWxsYmFja1xuICAgICAgICBzZW5kTWVzc2FnZUVuYWJsZWQ6ICEhc2VuZE1lc3NhZ2UsXG4gICAgICAgIHJlbW90ZUNhbGxzOiBbXSwgLy8gUmVtb3RlIGNhbGxzIHF1ZXVlZCB0byBnbyBvdXRcbiAgICAgICAgcGVuZGluZ1JlbW90ZUNhbGxzOiB7fSwgLy8gUmVtb3RlIGNhbGxzIHdhaXRpbmcgZm9yIHJlc3BvbnNlXG4gICAgICAgIG5leHRQZW5kaW5nUmVtb3RlQ2FsbElkOiAxLFxuICAgICAgICBuZXh0U2F2ZVNlc3Npb25JZDogMSxcbiAgICAgICAgc2F2ZWRTZXNzaW9uSWQ6IDAsXG4gICAgICAgIG5leHRTdWJzY3JpcHRpb25JZDogMCxcbiAgICAgICAgb2JqZWN0czoge30sXG4gICAgICAgIG5leHRPYmpJZDogMSxcbiAgICAgICAgZGlzcGVuc2VOZXh0SWQ6IG51bGwgLy8gRm9yY2UgbmV4dCBvYmplY3QgSWRcbiAgICB9O1xuXG4gICAgaWYgKHJvbGUgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICBmb3IgKHZhciBpeCA9IDA7IGl4IDwgcm9sZS5sZW5ndGg7ICsraXgpIHtcbiAgICAgICAgICAgIHNlbW90dXMuc3Vic2NyaWJlKHJvbGVbaXhdKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHNlbW90dXMucm9sZSA9IHJvbGVbMV07XG4gICAgfSBlbHNlIHtcbiAgICAgICAgc2Vtb3R1cy5zdWJzY3JpYmUocm9sZSk7XG4gICAgICAgIHNlbW90dXMucm9sZSA9IHJvbGU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNlc3Npb25JZDtcbn1cblxuXG4vKipcbiAqIFJlbW92ZSB0aGUgc2Vzc2lvbiBmcm9tIHRoZSBzZXNzaW9ucyBtYXAsIHJlamVjdGluZyBhbnkgb3V0c3RhbmRpbmcgcHJvbWlzZXNcbiAqIFdBUk5JTkc6IEFzeW5jIHNpZGUgZWZmZWN0c1xuICogQHBhcmFtIHNlbW90dXNcbiAqIEBwYXJhbSB7dW5rbm93bn0gc2Vzc2lvbklkIHVua25vd25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZShzZW1vdHVzOiBTZW1vdHVzLCBzZXNzaW9uSWQ6IHN0cmluZyB8IG51bWJlcikge1xuICAgIGxldCBzZXNzaW9uID0gZ2V0KHNlbW90dXMsIHNlc3Npb25JZCk7XG5cbiAgICBmb3IgKHZhciBjYWxscyBpbiBzZXNzaW9uLnJlbW90ZUNhbGxzKSB7XG4gICAgICAgIHNlc3Npb24ucmVtb3RlQ2FsbHNbY2FsbHNdLmRlZmVycmVkLnJlamVjdCh7Y29kZTogJ3Jlc2V0JywgdGV4dDogJ1Nlc3Npb24gcmVzeW5jaHJvbml6ZWQnfSk7XG4gICAgfVxuXG4gICAgaWYgKHNlbW90dXMuc2Vzc2lvbnNbc2Vzc2lvbklkXSkge1xuICAgICAgICBkZWxldGUgc2Vtb3R1cy5zZXNzaW9uc1tzZXNzaW9uSWRdO1xuICAgIH1cbn1cblxuLyoqXG4gKiBHZXQgdGhlIGN1cnJlbnQgc2Vzc2lvbiBzdHJ1Y3R1cmVcbiAqXG4gKiBAcmV0dXJucyB7Kn0gdGhlIHNlc3Npb25cbiAqXG4gKiBAcHJpdmF0ZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0KHNlbW90dXM6IFNlbW90dXMsIF9zaWQ/KTogU2Vzc2lvbiB8IG51bGwge1xuICAgIGlmICghc2Vtb3R1cy5jdXJyZW50U2Vzc2lvbikge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIHNlbW90dXMuc2Vzc2lvbnNbc2Vtb3R1cy5jdXJyZW50U2Vzc2lvbl07XG59XG5cblxuLyoqXG4gKiBJbmRpY2F0ZSB0aGF0IGFsbCBjaGFuZ2VzIGhhdmUgYmVlbiBhY2NlcHRlZCBvdXRzaWRlIG9mIHRoZSBtZXNzYWdlXG4gKiBtZWNoYW5pc20gYXMgd291bGQgdXN1YWxseSBoYXBwZW4gd2hlbiBhIHNlc3Npb24gaXMgc3RhcnRpbmcgdXBcbiAqXG4gKiBAcGFyYW0gc2Vtb3R1c1xuICogQHBhcmFtIHt1bmtub3dufSBzZXNzaW9uSWQgdW5rbm93blxuICovXG5leHBvcnQgZnVuY3Rpb24gc3luYyhzZW1vdHVzOiBTZW1vdHVzLCBzZXNzaW9uSWQpIHtcbiAgICBnZXQoc2Vtb3R1cywgc2Vzc2lvbklkKTtcbiAgICBzZW1vdHVzLmdldENoYW5nZXMoKTtcbiAgICBzZW1vdHVzLl9kZWxldGVDaGFuZ2VzKCk7XG59XG5cblxuLyoqXG4gKiBSZXN0b3JlIHNlc3Npb24gdGhhdCB3YXMgcG90ZW50aWFsbHkgc2VyaWFsaXplZC9kZXNlcmlhbGl6ZWRcbiAqXG4gKiBBIHJldmlzaW9uIG51bWJlciBpcyB1c2VkIHRvIGRldGVybWluZSB3aGV0aGVyIHRoZSBpbi1tZW1vcnkgY29weSBpcyBnb29kXG4gKlxuICogQHBhcmFtIHNlbW90dXNcbiAqIEBwYXJhbSB7dW5rbm93bn0gc2Vzc2lvbklkIC0gdGhlIGlkIHVuZGVyIHdoaWNoIGl0IHdhcyBjcmVhdGVkIHdpdGggY3JlYXRlU2Vzc2lvblxuICogQHBhcmFtIHt1bmtub3dufSBzYXZlZFNlc3Npb24gLSB0aGUgUE9KTyB2ZXJzaW9uIG9mIHRoZSBzZXNzaW9uIGRhdGFcbiAqIEBwYXJhbSB7dW5rbm93bn0gc2VuZE1lc3NhZ2UgLSBuZXcgbWVzc2FnZSBmdW5jdGlvbiB0byBiZSBpbiBlZmZlY3RcbiAqXG4gKiBAcmV0dXJucyB7Qm9vbGVhbn0gZmFsc2UgbWVhbnMgdGhhdCBtZXNzYWdlcyB3ZXJlIGluIGZsaWdodCBhbmQgYSByZXNldCBpcyBuZWVkZWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc3RvcmUoc2Vtb3R1czogU2Vtb3R1cywgc2Vzc2lvbklkLCBzYXZlZFNlc3Npb246IFNhdmVkU2Vzc2lvbiwgc2VuZE1lc3NhZ2U6IFNlbmRNZXNzYWdlKSB7XG4gICAgc2Vtb3R1cy5zZXRTZXNzaW9uKHNlc3Npb25JZCk7XG4gICAgY29uc3Qgc2Vzc2lvbiA9IHNlbW90dXMuc2Vzc2lvbnNbc2Vzc2lvbklkXTtcbiAgICBzZW1vdHVzLmxvZ2dlci5kZWJ1Zyh7Y29tcG9uZW50OiAnc2Vtb3R1cycsIG1vZHVsZTogJ3Jlc3RvcmUnLCBhY3Rpdml0eTogJ3NhdmUnfSk7XG5cbiAgICBpZiAoc2Vzc2lvbikge1xuICAgICAgICBpZiAoc2Vzc2lvbi5zYXZlZFNlc3Npb25JZCA9PSBzYXZlZFNlc3Npb24ucmV2aXNpb24pIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZGVsZXRlIHNlbW90dXMuc2Vzc2lvbnNbc2Vzc2lvbklkXTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNlbW90dXMuc2Vzc2lvbnNbc2Vzc2lvbklkXSA9IEpTT04ucGFyc2Uoc2F2ZWRTZXNzaW9uLmRhdGEpO1xuICAgIHNlbW90dXMuc2Vzc2lvbnNbc2Vzc2lvbklkXS5zZW5kTWVzc2FnZSA9IHNlbmRNZXNzYWdlO1xuXG4gICAgcmV0dXJuIHNhdmVkU2Vzc2lvbi5jYWxsQ291bnQgPiAwO1xufVxuXG4vKipcbiAqIFNhdmUgdGhlIHNlc3Npb24gZGF0YSBpbiBhIHdheSB0aGF0IGNhbiBiZSBzZXJpYWxpemVkL2RlLXNlcmlhbGl6ZWRcbiAqXG4gKiBAcGFyYW0gc2Vtb3R1c1xuICogQHBhcmFtIHt1bmtub3dufSBzZXNzaW9uSWQgdW5rbm93blxuICpcbiAqIEByZXR1cm5zIHtPYmplY3R9IHVua25vd25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNhdmUoc2Vtb3R1czogU2Vtb3R1cywgc2Vzc2lvbklkKTogU2F2ZWRTZXNzaW9uIHtcbiAgICBjb25zdCBzZXNzaW9uID0gZ2V0KHNlbW90dXMsIHNlc3Npb25JZCk7XG5cbiAgICBzZXNzaW9uLm5leHRTYXZlU2Vzc2lvbklkID0gc2Vzc2lvbi5uZXh0U2F2ZVNlc3Npb25JZCArIDE7XG4gICAgc2Vzc2lvbi5zYXZlZFNlc3Npb25JZCA9IHNlc3Npb24ubmV4dFNhdmVTZXNzaW9uSWQ7XG4gICAgY29uc3Qgb2JqZWN0cyA9IHNlc3Npb24ub2JqZWN0cztcbiAgICBzZXNzaW9uLm9iamVjdHMgPSB7fTtcblxuICAgIGNvbnN0IHNhdmVkU2Vzc2lvbiA9IHtcbiAgICAgICAgY2FsbENvdW50OiBzZW1vdHVzLmdldFBlbmRpbmdDYWxsQ291bnQoc2Vzc2lvbklkKSwgLy8gQ2FuJ3QganVzdCByZXN0b3JlIG9uIGFub3RoZXIgc2VydmVyIGFuZCBjYXJyeSBvblxuICAgICAgICByZXZpc2lvbjogc2Vzc2lvbi5zYXZlZFNlc3Npb25JZCwgLy8gVXNlZCB0byBzZWUgaWYgb3VyIG1lbW9yeSBjb3B5IGdvb2QgZW5vdWdoXG4gICAgICAgIHJlZmVyZW5jZWQ6IG5ldyBEYXRlKCkuZ2V0VGltZSgpLCAvLyBVc2VkIGZvciByZWFwaW5nIG9sZCBzZXNzaW9uc1xuICAgICAgICBkYXRhOiBKU09OLnN0cmluZ2lmeShzZXNzaW9uKSAvLyBBbGwgdGhlIHNlc3Npb24gZGF0YVxuICAgIH07XG5cbiAgICBzZXNzaW9uLm9iamVjdHMgPSBvYmplY3RzO1xuICAgIHNlbW90dXMubG9nZ2VyLmRlYnVnKHtjb21wb25lbnQ6ICdzZW1vdHVzJywgbW9kdWxlOiAnc2F2ZScsIGFjdGl2aXR5OiAnc2F2ZSd9KTtcblxuICAgIHJldHVybiBzYXZlZFNlc3Npb247XG59XG4iXX0=
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.subscribe = exports.getSubscriptions = exports.getSubscription = void 0;
var Sessions = require("./Sessions");

@@ -62,2 +63,2 @@ /**

exports.subscribe = subscribe;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3Vic2NyaXB0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL1N1YnNjcmlwdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxxQ0FBdUM7QUFHdkM7Ozs7Ozs7OztHQVNHO0FBQ0gsU0FBZ0IsZUFBZSxDQUFDLE9BQWdCLEVBQUUsY0FBZTtJQUM3RCxPQUFPLFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsYUFBYSxDQUFDLGNBQWMsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUNwRSxDQUFDO0FBRkQsMENBRUM7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFnQixnQkFBZ0IsQ0FBQyxPQUFnQixFQUFFLFNBQVU7SUFDekQsSUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFFakQsSUFBSSxPQUFPLEVBQUU7UUFDVCxPQUFPLE9BQU8sQ0FBQyxhQUFhLENBQUM7S0FDaEM7U0FBTTtRQUNILE9BQU8sSUFBSSxDQUFDO0tBQ2Y7QUFDTCxDQUFDO0FBUkQsNENBUUM7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFnQixTQUFTLENBQUMsT0FBZ0IsRUFBRSxJQUFJO0lBQzVDLElBQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdEMsSUFBTSxjQUFjLEdBQUcsT0FBTyxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFFcEQsT0FBTyxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsR0FBRztRQUNwQyxJQUFJLEVBQUUsSUFBSTtRQUNWLEdBQUcsRUFBRTtZQUNELEtBQUssRUFBRSxFQUFFO1lBQ1QsTUFBTSxFQUFFLEVBQUU7WUFDVixVQUFVLEVBQUUsRUFBRTtTQUNqQjtLQUNKLENBQUM7SUFFRixPQUFPLGNBQWMsQ0FBQztBQUMxQixDQUFDO0FBZEQsOEJBY0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBTZXNzaW9ucyBmcm9tICcuL1Nlc3Npb25zJztcbmltcG9ydCB7U2Vtb3R1cywgU3Vic2NyaXB0aW9uLCBTdWJzY3JpcHRpb25zfSBmcm9tICcuL1R5cGVzJztcblxuLyoqXG4gKiBQdXJwb3NlIHVua25vd25cbiAqXG4gKiBAcGFyYW0gc2Vtb3R1c1xuICogQHBhcmFtIHt1bmtub3dufSBzdWJzY3JpcHRpb25JZCB1bmtub3duXG4gKlxuICogQHJldHVybnMge3Vua25vd259IHVua25vd25cbiAqXG4gKiBAcHJpdmF0ZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3Vic2NyaXB0aW9uKHNlbW90dXM6IFNlbW90dXMsIHN1YnNjcmlwdGlvbklkPyk6IFN1YnNjcmlwdGlvbiB7XG4gICAgcmV0dXJuIFNlc3Npb25zLmdldChzZW1vdHVzKS5zdWJzY3JpcHRpb25zW3N1YnNjcmlwdGlvbklkIHx8IDBdO1xufVxuXG4vKipcbiAqIFB1cnBvc2UgdW5rbm93blxuICpcbiAqIEBwYXJhbSBzZW1vdHVzXG4gKiBAcGFyYW0ge3Vua25vd259IHNlc3Npb25JZCB1bmtub3duXG4gKlxuICogQHJldHVybnMge3Vua25vd259IHVua25vd25cbiAqXG4gKiBAcHJpdmF0ZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3Vic2NyaXB0aW9ucyhzZW1vdHVzOiBTZW1vdHVzLCBzZXNzaW9uSWQ/KTogbnVsbCB8IFN1YnNjcmlwdGlvbnMge1xuICAgIGNvbnN0IHNlc3Npb24gPSBTZXNzaW9ucy5nZXQoc2Vtb3R1cywgc2Vzc2lvbklkKTtcblxuICAgIGlmIChzZXNzaW9uKSB7XG4gICAgICAgIHJldHVybiBzZXNzaW9uLnN1YnNjcmlwdGlvbnM7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxufVxuXG4vKipcbiAqIFN1YnNjcmliZSB0byBjaGFuZ2VzIGFuZCBvcHRpb25hbGx5IGVzdGFibGlzaCBzdWJzY3JpcHRpb24gYXMgdGhlXG4gKiBzb2xlIHJlY2lwaWVudCBvZiByZW1vdGUgY2FsbCBtZXNzYWdlcy4gIENoYW5nZSB0cmFja2luZyBpcyB0aGVuIG1hbmFnZWRcbiAqIGJ5IHRoZSBmdW5jdGlvbnMgdGhhdCBmb2xsb3cuXG4gKlxuICogQHBhcmFtIHNlbW90dXNcbiAqIEBwYXJhbSB7dW5rbm93bn0gcm9sZSB1bmtub3duXG4gKlxuICogQHJldHVybnMgeyp9IHVua25vd25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN1YnNjcmliZShzZW1vdHVzOiBTZW1vdHVzLCByb2xlKSB7XG4gICAgY29uc3Qgc2Vzc2lvbiA9IFNlc3Npb25zLmdldChzZW1vdHVzKTtcbiAgICBjb25zdCBzdWJzY3JpcHRpb25JZCA9IHNlc3Npb24ubmV4dFN1YnNjcmlwdGlvbklkKys7XG5cbiAgICBzZXNzaW9uLnN1YnNjcmlwdGlvbnNbc3Vic2NyaXB0aW9uSWRdID0ge1xuICAgICAgICByb2xlOiByb2xlLFxuICAgICAgICBsb2c6IHtcbiAgICAgICAgICAgIGFycmF5OiB7fSxcbiAgICAgICAgICAgIGNoYW5nZToge30sXG4gICAgICAgICAgICBhcnJheURpcnR5OiB7fVxuICAgICAgICB9XG4gICAgfTtcblxuICAgIHJldHVybiBzdWJzY3JpcHRpb25JZDtcbn0iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3Vic2NyaXB0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL1N1YnNjcmlwdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUNBQXVDO0FBR3ZDOzs7Ozs7Ozs7R0FTRztBQUNILFNBQWdCLGVBQWUsQ0FBQyxPQUFnQixFQUFFLGNBQWU7SUFDN0QsT0FBTyxRQUFRLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLGFBQWEsQ0FBQyxjQUFjLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDcEUsQ0FBQztBQUZELDBDQUVDO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsU0FBZ0IsZ0JBQWdCLENBQUMsT0FBZ0IsRUFBRSxTQUFVO0lBQ3pELElBQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBRWpELElBQUksT0FBTyxFQUFFO1FBQ1QsT0FBTyxPQUFPLENBQUMsYUFBYSxDQUFDO0tBQ2hDO1NBQU07UUFDSCxPQUFPLElBQUksQ0FBQztLQUNmO0FBQ0wsQ0FBQztBQVJELDRDQVFDO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsU0FBZ0IsU0FBUyxDQUFDLE9BQWdCLEVBQUUsSUFBSTtJQUM1QyxJQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3RDLElBQU0sY0FBYyxHQUFHLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBRXBELE9BQU8sQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLEdBQUc7UUFDcEMsSUFBSSxFQUFFLElBQUk7UUFDVixHQUFHLEVBQUU7WUFDRCxLQUFLLEVBQUUsRUFBRTtZQUNULE1BQU0sRUFBRSxFQUFFO1lBQ1YsVUFBVSxFQUFFLEVBQUU7U0FDakI7S0FDSixDQUFDO0lBRUYsT0FBTyxjQUFjLENBQUM7QUFDMUIsQ0FBQztBQWRELDhCQWNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgU2Vzc2lvbnMgZnJvbSAnLi9TZXNzaW9ucyc7XG5pbXBvcnQge1NlbW90dXMsIFN1YnNjcmlwdGlvbiwgU3Vic2NyaXB0aW9uc30gZnJvbSAnLi9UeXBlcyc7XG5cbi8qKlxuICogUHVycG9zZSB1bmtub3duXG4gKlxuICogQHBhcmFtIHNlbW90dXNcbiAqIEBwYXJhbSB7dW5rbm93bn0gc3Vic2NyaXB0aW9uSWQgdW5rbm93blxuICpcbiAqIEByZXR1cm5zIHt1bmtub3dufSB1bmtub3duXG4gKlxuICogQHByaXZhdGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFN1YnNjcmlwdGlvbihzZW1vdHVzOiBTZW1vdHVzLCBzdWJzY3JpcHRpb25JZD8pOiBTdWJzY3JpcHRpb24ge1xuICAgIHJldHVybiBTZXNzaW9ucy5nZXQoc2Vtb3R1cykuc3Vic2NyaXB0aW9uc1tzdWJzY3JpcHRpb25JZCB8fCAwXTtcbn1cblxuLyoqXG4gKiBQdXJwb3NlIHVua25vd25cbiAqXG4gKiBAcGFyYW0gc2Vtb3R1c1xuICogQHBhcmFtIHt1bmtub3dufSBzZXNzaW9uSWQgdW5rbm93blxuICpcbiAqIEByZXR1cm5zIHt1bmtub3dufSB1bmtub3duXG4gKlxuICogQHByaXZhdGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFN1YnNjcmlwdGlvbnMoc2Vtb3R1czogU2Vtb3R1cywgc2Vzc2lvbklkPyk6IG51bGwgfCBTdWJzY3JpcHRpb25zIHtcbiAgICBjb25zdCBzZXNzaW9uID0gU2Vzc2lvbnMuZ2V0KHNlbW90dXMsIHNlc3Npb25JZCk7XG5cbiAgICBpZiAoc2Vzc2lvbikge1xuICAgICAgICByZXR1cm4gc2Vzc2lvbi5zdWJzY3JpcHRpb25zO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbn1cblxuLyoqXG4gKiBTdWJzY3JpYmUgdG8gY2hhbmdlcyBhbmQgb3B0aW9uYWxseSBlc3RhYmxpc2ggc3Vic2NyaXB0aW9uIGFzIHRoZVxuICogc29sZSByZWNpcGllbnQgb2YgcmVtb3RlIGNhbGwgbWVzc2FnZXMuICBDaGFuZ2UgdHJhY2tpbmcgaXMgdGhlbiBtYW5hZ2VkXG4gKiBieSB0aGUgZnVuY3Rpb25zIHRoYXQgZm9sbG93LlxuICpcbiAqIEBwYXJhbSBzZW1vdHVzXG4gKiBAcGFyYW0ge3Vua25vd259IHJvbGUgdW5rbm93blxuICpcbiAqIEByZXR1cm5zIHsqfSB1bmtub3duXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdWJzY3JpYmUoc2Vtb3R1czogU2Vtb3R1cywgcm9sZSkge1xuICAgIGNvbnN0IHNlc3Npb24gPSBTZXNzaW9ucy5nZXQoc2Vtb3R1cyk7XG4gICAgY29uc3Qgc3Vic2NyaXB0aW9uSWQgPSBzZXNzaW9uLm5leHRTdWJzY3JpcHRpb25JZCsrO1xuXG4gICAgc2Vzc2lvbi5zdWJzY3JpcHRpb25zW3N1YnNjcmlwdGlvbklkXSA9IHtcbiAgICAgICAgcm9sZTogcm9sZSxcbiAgICAgICAgbG9nOiB7XG4gICAgICAgICAgICBhcnJheToge30sXG4gICAgICAgICAgICBjaGFuZ2U6IHt9LFxuICAgICAgICAgICAgYXJyYXlEaXJ0eToge31cbiAgICAgICAgfVxuICAgIH07XG5cbiAgICByZXR1cm4gc3Vic2NyaXB0aW9uSWQ7XG59Il19
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Change = void 0;
exports.Change = 'change';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaGVscGVycy9UeXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWFhLFFBQUEsTUFBTSxHQUFHLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7U3VwZXJ0eXBlfSBmcm9tICdAaGF2ZW50ZWNoL3N1cGVydHlwZSc7XG5pbXBvcnQge1JlcXVlc3QsIFJlc3BvbnNlfSBmcm9tICdleHByZXNzJztcbmV4cG9ydCB0eXBlIEhUVFBPYmpzID0ge3JlcXVlc3Q6IFJlcXVlc3QsIHJlc3BvbnNlOiBSZXNwb25zZX07XG5cbmV4cG9ydCB0eXBlIFN1YnNjcmlwdGlvbiA9IHtcbiAgICByb2xlOiBzdHJpbmc7XG4gICAgbG9nOiB7XG4gICAgICAgIGFycmF5OiBBcnJheUdyb3VwO1xuICAgICAgICBhcnJheURpcnR5OiBBcnJheUdyb3VwO1xuICAgICAgICBjaGFuZ2U6IENoYW5nZUdyb3VwO1xuICAgIH1cbn1cblxuZXhwb3J0IGNvbnN0IENoYW5nZSA9ICdjaGFuZ2UnO1xuZXhwb3J0IHR5cGUgQXJyYXlUeXBlcyA9ICdhcnJheScgfCAnYXJyYXlEaXJ0eSc7XG5leHBvcnQgdHlwZSBFcnJvclR5cGUgPSAnZXJyb3InIHwgJ3JldHJ5JyB8ICdyZXNwb25zZSc7XG5cbmV4cG9ydCB0eXBlIENhbGxDb250ZXh0ID0geyByZXRyaWVzOiBudW1iZXI7IHN0YXJ0VGltZTogRGF0ZSB9O1xuXG5leHBvcnQgdHlwZSBQcm9jZXNzQ2FsbFBheWxvYWQgPSB7XG4gICAgc2Vtb3R1czogU2Vtb3R1cztcbiAgICByZW1vdGVDYWxsOiBSZW1vdGVDYWxsO1xuICAgIGNhbGxDb250ZXh0OiBDYWxsQ29udGV4dDtcbiAgICBzZXNzaW9uOiBTZXNzaW9uO1xuICAgIHN1YnNjcmlwdGlvbklkOiBhbnk7XG4gICAgcmVtb3RlQ2FsbElkOiBhbnk7XG4gICAgcmVzdG9yZVNlc3Npb25DYWxsYmFjaz86IEZ1bmN0aW9uO1xuICAgIEhUVFBPYmpzPzogSFRUUE9ianM7XG59XG5cbi8qKlxuICogIGlkIGlzIHRoZSBpZCBvZiB0aGUgb2JqZWN0ICsgJy8nICsgcHJvcGVydHkuXG4gKiAgRXg6IHRoZXJlIGFyZSAxIFNjaG9vbCB0byBNYW55IFN0dWRlbnRzXG4gKlxuICogIFNjaG9vbCB7XG4gKiAgICAgIHN0dWRlbnRzOiBBcnJheTxTdHVkZW50cz5cbiAqICB9XG4gKlxuICogIEluIHRoaXMgY2FzZSwgb25lIGVudHJ5IHdpdGhpbiB0aGlzIEFycmF5R3JvdXAgbWF5IGJlICdzZXJ2ZXItU2Nob29sLTEvc3R1ZGVudHMnOiBbXCJzZXJ2ZXItU3R1ZGVudC0zXCIsIFwic2VydmVyLVN0dWRlbnQtNVwiXVxuICpcbiAqICBJZiB0aGF0J3MgYWxsIHRoZSBjaGFuZ2VzIHRoZW4gdGhlIEFycmF5R3JvdXAgd291bGQgYmUgeydzZXJ2ZXItU2Nob29sLTEvc3R1ZGVudHMnOiBbXCJzZXJ2ZXItU3R1ZGVudC0zXCIsIFwic2VydmVyLVN0dWRlbnQtNVwiXX1cbiAqL1xuZXhwb3J0IHR5cGUgQXJyYXlHcm91cCA9IHsgW2lkOiBzdHJpbmddOiBBcnJheUNoYW5nZXMgfTtcblxuLyoqXG4gKiBBbiBhcnJheSBvZiBJZCByZWZlcmVuY2VzIHRvIFN1cGVydHlwZSBPYmplY3RzIG9yIHByaW1pdGl2ZSB2YWx1ZXNcbiAqL1xudHlwZSBBcnJheUNoYW5nZXMgPSBBcnJheTxhbnk+O1xuZXhwb3J0IHR5cGUgQ2hhbmdlR3JvdXAgPSB7IFtvYmpJZDogc3RyaW5nXTogUHJvcENoYW5nZXMgfTtcbnR5cGUgUHJvcENoYW5nZXMgPSB7IFtwcm9wOiBzdHJpbmddOiBDaGFuZ2VzIH07XG5cbi8vIENoYW5nZXNbMF0gaXMgb2xkVmFsdWUsIENoYW5nZXNbMV0gaXMgbmV3VmFsdWVcbnR5cGUgb2xkVmFsID0gYW55O1xudHlwZSBuZXdWYWwgPSBhbnk7XG50eXBlIENoYW5nZXMgPSBbb2xkVmFsLCBuZXdWYWxdW107XG5cbmV4cG9ydCB0eXBlIFN1YnNjcmlwdGlvbnMgPSB7IFtrZXk6IHN0cmluZ106IFN1YnNjcmlwdGlvbiB9O1xuXG5leHBvcnQgdHlwZSBSZW1vdGVDYWxsID0ge1xuICAgIHJlbW90ZUNhbGxJZDogYW55O1xuICAgIGlkOiBhbnk7XG4gICAgY2hhbmdlczogc3RyaW5nOyAvLyBUaGUgc3RyaW5nIGlzIG9mIHR5cGUgQ2hhbmdlR3JvdXBcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgc2VxdWVuY2U6IGFueTtcbiAgICB0eXBlOiBhbnk7XG4gICAgc3luYzogYW55O1xuICAgIHZhbHVlOiBhbnk7XG59XG5cbmV4cG9ydCB0eXBlIFNlc3Npb24gPSB7XG4gICAgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9ucztcbiAgICBzZW5kTWVzc2FnZTogU2VuZE1lc3NhZ2U7XG4gICAgc2VuZE1lc3NhZ2VFbmFibGVkOiBib29sZWFuO1xuICAgIHJlbW90ZUNhbGxzOiBBcnJheTxhbnk+O1xuICAgIHBlbmRpbmdSZW1vdGVDYWxsczogYW55O1xuICAgIG5leHRQZW5kaW5nUmVtb3RlQ2FsbElkOiBudW1iZXI7XG4gICAgbmV4dFNhdmVTZXNzaW9uSWQ6IG51bWJlcjtcbiAgICBzYXZlZFNlc3Npb25JZDogbnVtYmVyO1xuICAgIG5leHRTdWJzY3JpcHRpb25JZDogbnVtYmVyO1xuICAgIG9iamVjdHM6IGFueTtcbiAgICBuZXh0T2JqSWQ6IG51bWJlcjtcbiAgICBkaXNwZW5zZU5leHRJZDogbnVsbDsgLy8gbm90IHVzZWQgYW55d2hlcmVcbn1cblxuXG5leHBvcnQgdHlwZSBTZXNzaW9ucyA9IHsgW3Nlc3Npb25JZDogbnVtYmVyXTogU2Vzc2lvbiB9O1xuXG5leHBvcnQgdHlwZSBTZW5kTWVzc2FnZSA9IChtZXNzYWdlOiBhbnkpID0+IHZvaWQ7XG5cbmV4cG9ydCB0eXBlIFNhdmVkU2Vzc2lvbiA9IHtcbiAgICByZXZpc2lvbjogbnVtYmVyO1xuICAgIGRhdGE6IHN0cmluZzsgLy8gU2VyaWFsaXplZCBTZXNzaW9uIGRhdGFcbiAgICBjYWxsQ291bnQ6IG51bWJlcjtcbiAgICByZWZlcmVuY2VkOiBudW1iZXI7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlbW90ZWFibGVDbGFzcyBleHRlbmRzIFN1cGVydHlwZSB7XG4gICAgc3luY1N0YXRlczogQXJyYXk8c3RyaW5nPjtcbiAgICBfX3RvQ2xpZW50X186IGJvb2xlYW47XG4gICAgX190b1NlcnZlcl9fOiBib29sZWFuO1xufVxuXG5leHBvcnQgdHlwZSBDaGFuZ2VTdHJpbmcgPSB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xudHlwZSBQcmVTZXJ2ZXJDYWxsQ2hhbmdlcyA9IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9O1xuXG5leHBvcnQgdHlwZSBDb250cm9sbGVyU3luY1N0YXRlID0ge1xuICAgIHNjb3BlOiAnKycgfCAnKicgfCAnLSdcbiAgICBzdGF0ZTogc3RyaW5nXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVNlbW90dXNDb250cm9sbGVyIHtcbiAgICBfX3RlbXBsYXRlX186IGFueTtcbiAgICBzeW5jU3RhdGU/OiBDb250cm9sbGVyU3luY1N0YXRlXG5cbiAgICAvKipcbiAgICAgKiBAc2VydmVyXG4gICAgICpcbiAgICAgKiBDYWxsYmFjayBhZnRlciBhIHN1Y2Nlc3NmdWwgcmVtb3RlIGZ1bmN0aW9uIGNhbGwgKGp1c3QgdGhlIGFwcGxpY2F0aW9uIG9mIGNoYW5nZXMgYW5kIHRoZSBleGVjdXRpb24gb2YgdGhlIGZ1bmN0aW9uIGNhbGwpXG4gICAgICogTm90ZSB0aGF0IHRoaXMgZG9lc24ndCBtZWFuIHdlIGNhbid0IGVycm9yIG91dCBvbiB0aGlzIG9yIHN1YnNlcXVlbnQgc3RlcHMgb2YgYSByZW1vdGUgY2FsbC5cbiAgICAgKlxuICAgICAqIFdlIGNhbiB1dGlsaXplIHRoaXMgZnVuY3Rpb24gYXMgYSBnZW5lcmljIGZ1bmN0aW9uIGhhbmRsZXIgdG8gcnVuIGFmdGVyIHdlIGhhdmUgc3VjY2Vzc2Z1bGx5IGNhbGxlZCBhIHJlbW90ZSBmdW5jdGlvbi5cbiAgICAgKiBPbmUgc3VjaCB1c2UgbWF5IGJlIHRvIHNlZSB0aGUgY2hhbmdlcyB0aGF0IHdlcmUgYXBwbGllZCBmcm9tIHRoZSBjbGllbnRcbiAgICAgKlxuICAgICAqIE5PVEUgVEhBVCBUSEUgQ0hBTkdFU1RSSU5HIERPRVMgTk9UIElOQ0xVREUgQ0hBTkdFUyBET05FIFdJVEhJTiBUSEUgUkVNT1RFIEZVTkNUSU9OIENBTEwgSVRTRUxGLCBPTkxZIENIQU5HRVMgRlJPTSBUSEUgQ0xJRU5UXG4gICAgICpcbiAgICAgKiBTZWUgcmVtb3RlIGNhbGwgZG9jdW1lbnRhdGlvbiB0byBrbm93IHdoZXJlIHRoaXMgZXhlY3V0ZXMgaW4gdGhlIGxpZmVjeWNsZVxuICAgICAqXG4gICAgICogQHBhcmFtIHtib29sZWFufSBoYXNDaGFuZ2VzIC0gV2hldGhlciBvciBub3Qgd2UgaGF2ZSBhcHBsaWVkIGNsaWVudCBjaGFuZ2VzIG9udG8gdGhlIHNlcnZlcidzIG9iamVjdCBncmFwaFxuICAgICAqIEBwYXJhbSB7Q2FsbENvbnRleHR9IGNhbGxDb250ZXh0IC0gQ29udGV4dCAobnVtYmVyIG9mIHJldHJpZXMgZXRjKVxuICAgICAqIEBwYXJhbSB7Y2hhbmdlU3RyaW5nfSBjaGFuZ2VTdHJpbmcgLSBPYmplY3Qgb2YgQ2hhbmdlcyAtIEtleSBpcyBbQ2xhc3NOYW1lXS5bcHJvcGVydHlOYW1lXSwgVmFsdWUgaXMgW2NoYW5nZWRWYWx1ZV0gZXhhbXBsZTogeydDdXN0b21lci5taWRkbGVuYW1lJzogJ0thcmVuJ30sIFNlZSBhYm92ZSBub3RlXG4gICAgICogQHBhcmFtIEhUVFBPYmpzXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn1cbiAgICAgKiBAbWVtYmVyb2YgQ29udHJvbGxlclxuICAgICAqL1xuICAgIHBvc3RTZXJ2ZXJDYWxsPyhoYXNDaGFuZ2VzOiBib29sZWFuLCBjYWxsQ29udGV4dDogQ2FsbENvbnRleHQsIGNoYW5nZVN0cmluZzogQ2hhbmdlU3RyaW5nLCBIVFRQT2Jqcz86IEhUVFBPYmpzKTogUHJvbWlzZTxhbnk+O1xuXG4gICAgLyoqXG4gICAgICogQHNlcnZlclxuICAgICAqXG4gICAgICogQ2FsbGJhY2sgdG8gaGFuZGxlIGVycm9ycyBvbiBhIHJlbW90ZSBjYWxsLlxuICAgICAqXG4gICAgICogRXhlY3V0ZXMgYWZ0ZXIgZXZlcnkgb3RoZXIgc3RlcCBpbiB0aGUgcmVtb3RlIGNhbGwgcGlwZWxpbmUgKHNlZSByZW1vdGUgY2FsbCBkb2N1bWVudGF0aW9uKVxuICAgICAqIGJ1dCBiZWZvcmUgcmV0cnlpbmcgdGhlIGNhbGwgKG9yIHBhY2thZ2luZyByZXNwb25zZSBhbmQgc2VuZGluZyBiYWNrIHRvIGNsaWVudClcbiAgICAgKlxuICAgICAqIE5PVEUgVEhBVCBUSEUgQ0hBTkdFU1RSSU5HIERPRVMgTk9UIElOQ0xVREUgQ0hBTkdFUyBET05FIFdJVEhJTiBUSEUgUkVNT1RFIEZVTkNUSU9OIENBTEwgSVRTRUxGLCBPTkxZIENIQU5HRVMgRlJPTSBUSEUgQ0xJRU5UXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge0Vycm9yVHlwZX0gZXJyb3JUeXBlIC0gRXJyb3IgdHlwZSBhc3NvY2lhdGVkIChlcnJvciwgcmV0cnksIHJlc3BvbnNlKVxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSByZW1vdGVDYWxsSWQgLSBJZCBmb3IgcmVtb3RlIGNhbGxcbiAgICAgKiBAcGFyYW0ge2V4dGVuZHMgU3VwZXJ0eXBlfSByZW1vdGVPYmogLSBJbnN0YW5jZSBmb3Igd2hpY2ggdGhlIHJlbW90ZSBvYmplY3QgZnVuY3Rpb24gaXMgY2FsbGVkIGZvciAtIEBUT0RPOiByZXZpc2l0IHdoZW4gd2UgY3JlYXRlIGEgcHJvcGVyIHJlbW90ZWFibGUgdHlwZVxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBmdW5jdGlvbk5hbWUgLSBOYW1lIG9mIGZ1bmN0aW9uIGJlaW5nIGNhbGxlZFxuICAgICAqIEBwYXJhbSB7Q2FsbENvbnRleHR9IGNhbGxDb250ZXh0IC0gQ29udGV4dCAobnVtYmVyIG9mIHJldHJpZXMgZXRjKVxuICAgICAqIEBwYXJhbSB7Q2hhbmdlU3RyaW5nfSBjaGFuZ2VTdHJpbmcgLSBPYmplY3Qgb2YgQ2hhbmdlcyAtIEtleSBpcyBbQ2xhc3NOYW1lXS5bcHJvcGVydHlOYW1lXSwgVmFsdWUgaXMgW2NoYW5nZWRWYWx1ZV0gZXhhbXBsZTogeydDdXN0b21lci5taWRkbGVuYW1lJzogJ0thcmVuJ30sIFNlZSBhYm92ZSBub3RlXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn1cbiAgICAgKiBAbWVtYmVyb2YgQ29udHJvbGxlclxuICAgICAqL1xuICAgIHBvc3RTZXJ2ZXJFcnJvckhhbmRsZXI/KGVycm9yVHlwZTogRXJyb3JUeXBlLCByZW1vdGVDYWxsSWQ6IG51bWJlciwgcmVtb3RlT2JqOiBTdXBlcnR5cGUsIGZ1bmN0aW9uTmFtZTogc3RyaW5nLCBjYWxsQ29udGV4dDogQ2FsbENvbnRleHQsIGNoYW5nZVN0cmluZzogQ2hhbmdlU3RyaW5nKTogUHJvbWlzZTx2b2lkPjtcblxuICAgIC8qKlxuICAgICAqIEBzZXJ2ZXJcbiAgICAgKlxuICAgICAqIENhbGxiYWNrIGJlZm9yZSBhIHJlbW90ZSBmdW5jdGlvbiBjYWxsICgxc3Qgc3RlcCBvZiBhIHJlbW90ZSBjYWxsKVxuICAgICAqXG4gICAgICogV2UgY2FuIHV0aWxpemUgdGhpcyBmdW5jdGlvbiBhcyBhIGdlbmVyaWMgZnVuY3Rpb24gaGFuZGxlciB0byBydW4gYmVmb3JlIHdlIGNhbGwgYVxuICAgICAqIHJlbW90ZSBmdW5jdGlvbiBvciBiZWZvcmUgd2UgYXBwbHkgY2hhbmdlcyBmcm9tIHRoZSBjbGllbnQgdG8gdGhlIHNlcnZlclxuICAgICAqXG4gICAgICogV2UgY2FuIGFsc28gdXRpbGl6ZSB0aGlzIGZ1bmN0aW9uIHRvIGRvIGFueSBjb250ZXh0LXNwZWNpZmljIHByZXAgd29yayAvIGxvYWRpbmdcbiAgICAgKiBpZiB0aGlzIGEgc3Vic2VxdWVudCB0cnkgb2YgdGhpcyBmdW5jdGlvbiBkdWUgdG8gYW4gdXBkYXRlIGNvbmZsaWN0LlxuICAgICAqXG4gICAgICogU2VlIHJlbW90ZSBjYWxsIGRvY3VtZW50YXRpb24gdG8ga25vdyB3aGVyZSB0aGlzIGV4ZWN1dGVzIGluIHRoZSBsaWZlY3ljbGVcbiAgICAgKlxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gaGFzQ2hhbmdlcyAtIFdoZXRoZXIgb3Igbm90IHdlIGhhdmUgYXBwbGllZCBjbGllbnQgY2hhbmdlcyBvbnRvIHRoZSBzZXJ2ZXIncyBvYmplY3QgZ3JhcGhcbiAgICAgKiBAcGFyYW0ge1ByZVNlcnZlckNhbGxDaGFuZ2VzfSBjaGFuZ2VzIC0gRGljdGlvbmFyeSBvZiBPYmplY3RzIHRoYXQgaGF2ZSBiZWVuIGNoYW5nZWQgZnJvbSB0aGUgY2xpZW50XG4gICAgICogQHBhcmFtIHtDYWxsQ29udGV4dH0gY2FsbENvbnRleHQgLSBDb250ZXh0IChudW1iZXIgb2YgcmV0cmllcyBldGMpXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbZm9yY2VVcGRhdGVdIC0gT3B0aW9uYWwgcGFyYW1ldGVyIHBhc3NlZCBpbi4gVHJ1ZSBpZiB0aGlzIGlzIGEgcmV0cnkgb2YgdGhlIGNhbGwgYmFzZWQgb24gYW4gdXBkYXRlIGNvbmZsaWN0LiBGYWxzZSAvIHVuZGVmaW5lZCBvdGhlcndpc2UuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZnVuY3Rpb25OYW1lXG4gICAgICogQHBhcmFtIHJlbW90ZUNhbGxcbiAgICAgKiBAcGFyYW0gaXNQdWJsaWNcbiAgICAgKiBAcGFyYW0gSFRUUE9ianNcbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn1cbiAgICAgKiBAbWVtYmVyb2YgQ29udHJvbGxlclxuICAgICAqL1xuICAgIHByZVNlcnZlckNhbGw/KGhhc0NoYW5nZXM6IGJvb2xlYW4sIGNoYW5nZXM6IFByZVNlcnZlckNhbGxDaGFuZ2VzLCBjYWxsQ29udGV4dDogQ2FsbENvbnRleHQsIGZvcmNlVXBkYXRlOiB1bmRlZmluZWQgfCBib29sZWFuLCBmdW5jdGlvbk5hbWU6IHN0cmluZywgcmVtb3RlQ2FsbDogUmVtb3RlQ2FsbCwgaXNQdWJsaWM6IGJvb2xlYW4sIEhUVFBPYmpzPzogSFRUUE9ianMgKTogUHJvbWlzZTxhbnk+O1xuXG4gICAgLyoqXG4gICAgICogVGhpcyBpcyBhIGhhbmRsZXIgdGhhdCB3aWxsIG9ubHkgYmUgdXNlZCBmb3IgdGVzdGluZyBhbmQgZGVidWdnaW5nIHB1cnBvc2VzXG4gICAgICpcbiAgICAgKiBXaGVuIHRoaXMgaXMgdXNlZCwgYWxsb3dzIHVzIHRvIGluc3BlY3QgdGhlIG1lc3NhZ2UgYm9keSBiZWZvcmUgd2Ugc2VuZCBpdCBvdXQgaW4gJ3BhY2thZ2VDaGFuZ2VzJ1xuICAgICAqXG4gICAgICogRE8gTk9UIFVTRSBUSElTIElOIFBST0RVQ1RJT04gQ09ERVxuICAgICAqXG4gICAgICogQHBhcmFtIG1lc3NhZ2VcbiAgICAgKi9cbiAgICBpbnNwZWN0TWVzc2FnZT8obWVzc2FnZSk6IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZW1vdHVzIHtcbiAgICBzZXRTeW5jU3RhdGU6IChzdHIpID0+IHZvaWQ7XG4gICAgc3luY1N0YXRlOiBzdHJpbmc7XG4gICAgZ2V0U3luY1N0YXRlOiAoKSA9PiBhbnk7XG4gICAgbWF4Q2FsbFRpbWU6IG51bWJlcjtcbiAgICBfX2RpY3Rpb25hcnlfXzogYW55O1xuICAgIG1lbVNlc3Npb246IHsgc2Vtb3R1czogeyBjYWxsU3RhcnRUaW1lOiBudW1iZXIgfSB9O1xuICAgIF9pbmplY3RJbnRvVGVtcGxhdGU6ICh0ZW1wbGF0ZSkgPT4gdm9pZDtcbiAgICBzZXJpYWxpemVBbmRHYXJiYWdlQ29sbGVjdDogKCkgPT4gYW55O1xuICAgIGdldE1lc3NhZ2U6IChzZXNzaW9uSWQsIGZvcmNlTWVzc2FnZSkgPT4gYW55O1xuICAgIGNsZWFyUGVuZGluZ0NhbGxzOiAoc2Vzc2lvbklkKSA9PiB2b2lkO1xuICAgIGdldENoYW5nZUdyb3VwOiAodHlwZSwgc3Vic2NyaXB0aW9uSWQpID0+IENoYW5nZUdyb3VwO1xuICAgIGRlbGV0ZUNoYW5nZUdyb3VwOiAodHlwZTogYW55LCBzdWJzY3JpcHRpb25JZDogYW55KSA9PiB2b2lkO1xuICAgIGdldENoYW5nZVN0YXR1czogKCkgPT4gc3RyaW5nO1xuICAgIF9zdGFzaE9iamVjdDogKG9iaiwgdGVtcGxhdGUpID0+IGJvb2xlYW47XG4gICAgc2Vzc2lvbml6ZTogKG9iaiwgcmVmZXJlbmNpbmdPYmopID0+ICh1bmRlZmluZWQgfCBhbnkpO1xuICAgIF9zZXR1cEZ1bmN0aW9uOiAocHJvcGVydHlOYW1lLCBwcm9wZXJ0eVZhbHVlLCByb2xlLCB2YWxpZGF0ZSwgc2VydmVyVmFsaWRhdGlvbiwgaXNQdWJsaWM6IGJvb2xlYW4sIHRlbXBsYXRlKSA9PiAoYW55KTtcbiAgICBfc2V0dXBQcm9wZXJ0eTogKHByb3BlcnR5TmFtZSwgZGVmaW5lUHJvcGVydHksIG9iamVjdFByb3BlcnRpZXMsIGRlZmluZVByb3BlcnRpZXMpID0+IHZvaWQ7XG4gICAgd2l0aG91dENoYW5nZVRyYWNraW5nOiAoY2IpID0+IHZvaWQ7XG4gICAgX2NoYW5nZWRWYWx1ZTogKG9iaiwgcHJvcCwgdmFsdWUpID0+IHZvaWQ7XG4gICAgX3JlZmVyZW5jZWRBcnJheTogKG9iaiwgcHJvcCwgYXJyYXlSZWYsIHNlc3Npb25JZD8pID0+IHZvaWQ7XG4gICAgX2NvbnZlcnRBcnJheVJlZmVyZW5jZXNUb0NoYW5nZXM6ICgpID0+IHZvaWQ7XG4gICAgTWFya0NoYW5nZWRBcnJheVJlZmVyZW5jZXM6ICgpID0+IHZvaWQ7XG4gICAgX2NvbnZlcnRWYWx1ZTogKHZhbHVlKSA9PiAoYW55W10gfCBudWxsKTtcbiAgICBnZXRPYmplY3Q6IChvYmpJZCwgdGVtcGxhdGUpID0+IChhbnkgfCBudWxsKTtcbiAgICBfYXBwbHlDaGFuZ2VzOiAoY2hhbmdlcywgZm9yY2UsIHN1YnNjcmlwdGlvbklkLCBjYWxsQ29udGV4dCkgPT4gKG51bWJlcik7XG4gICAgX2FwcGx5T2JqZWN0Q2hhbmdlczogKGNoYW5nZXMsIHJvbGxiYWNrLCBvYmosIGZvcmNlKSA9PiAoYm9vbGVhbik7XG4gICAgX3ZhbGlkYXRlU2VydmVySW5jb21pbmdQcm9wZXJ0eTogKG9iaiwgcHJvcCwgZGVmaW5lUHJvcGVydHksIG5ld1ZhbHVlKSA9PiAoYm9vbGVhbik7XG4gICAgX2FwcGx5UHJvcGVydHlDaGFuZ2U6IChjaGFuZ2VzLCByb2xsYmFjaywgb2JqLCBwcm9wLCBpeCwgb2xkVmFsdWUsIG5ld1ZhbHVlLCBmb3JjZSkgPT4gKGJvb2xlYW4pO1xuICAgIF9yb2xsYmFjazogKHJvbGxiYWNrKSA9PiB2b2lkO1xuICAgIF9yb2xsYmFja0NoYW5nZXM6ICgpID0+IHZvaWQ7XG4gICAgX2NyZWF0ZUVtcHR5T2JqZWN0OiAodGVtcGxhdGUsIG9iaklkLCBkZWZpbmVQcm9wZXJ0eSwgaXNUcmFuc2llbnQpID0+IGFueTtcbiAgICBpbmplY3Q6ICh0ZW1wbGF0ZSwgaW5qZWN0b3IpID0+IHZvaWQ7XG4gICAgX3F1ZXVlUmVtb3RlQ2FsbDogKG9iaklkLCBmdW5jdGlvbk5hbWUsIGRlZmVycmVkLCBhcmdzKSA9PiB2b2lkO1xuICAgIF9wcm9jZXNzUXVldWU6ICgpID0+IHZvaWQ7XG4gICAgX3RvVHJhbnNwb3J0OiAob2JqKSA9PiBhbnk7XG4gICAgX2Zyb21UcmFuc3BvcnQ6IChvYmopID0+IGFueTtcbiAgICBfZXh0cmFjdEFyZ3VtZW50czogKHJlbW90ZUNhbGwpID0+IGFueTtcbiAgICBfdHJpbUFycmF5OiAoYXJyYXkpID0+IHZvaWQ7XG4gICAgX2RlbGV0ZUNoYW5nZUdyb3VwczogKHR5cGUpID0+IHZvaWQ7XG4gICAgX2dldFN1YnNjcmlwdGlvbnM6IChzZXNzaW9uSWQ/KSA9PiBTdWJzY3JpcHRpb25zIHwgbnVsbDtcbiAgICBfZ2V0U3Vic2NyaXB0aW9uOiAoc3Vic2NyaXB0aW9uSWQ/KSA9PiBTdWJzY3JpcHRpb247XG4gICAgY2xlYW5Qcml2YXRlVmFsdWVzOiAocHJvcCwgbG9nVmFsdWUsIGRlZmluZVByb3BlcnR5KSA9PiAoc3RyaW5nIHwgYW55KTtcbiAgICBSZW1vdGVhYmxlOiAoQmFzZSkgPT4gKCkgPT4gYW55O1xuICAgIEJpbmRhYmxlOiAoQmFzZSkgPT4gKCkgPT4gYW55O1xuICAgIFBlcnNpc3RhYmxlOiAoQmFzZSkgPT4gKCkgPT4gYW55O1xuICAgIGJpbmREZWNvcmF0b3JzOiAob2JqZWN0VGVtcGxhdGU/KSA9PiB2b2lkO1xuICAgIHByb2Nlc3NNZXNzYWdlOiAocmVtb3RlQ2FsbCwgc3Vic2NyaXB0aW9uSWQsIHJlc3RvcmVTZXNzaW9uQ2FsbGJhY2ssIHJlcT86IFJlcXVlc3QsIHJlcz86IFJlc3BvbnNlKSA9PiAodW5kZWZpbmVkIHwgYW55KTtcbiAgICBlbmFibGVTZW5kTWVzc2FnZTogKHZhbHVlLCBtZXNzYWdlQ2FsbGJhY2ssIHNlc3Npb25JZCkgPT4gdm9pZDtcbiAgICBzeW5jU2Vzc2lvbjogKHNlc3Npb25JZCkgPT4gdm9pZDtcbiAgICByZXN0b3JlU2Vzc2lvbjogKHNlc3Npb25JZCwgc2F2ZWRTZXNzaW9uOiBTYXZlZFNlc3Npb24sIHNlbmRNZXNzYWdlOiBTZW5kTWVzc2FnZSkgPT4gYm9vbGVhbjtcbiAgICBzYXZlU2Vzc2lvbjogKHNlc3Npb25JZCkgPT4gU2F2ZWRTZXNzaW9uO1xuICAgIHNldE1pbmltdW1TZXF1ZW5jZTogKG5leHRPYmpJZCkgPT4gdm9pZDtcbiAgICBkZWxldGVTZXNzaW9uOiAoc2Vzc2lvbklkKSA9PiB2b2lkO1xuICAgIGNyZWF0ZVNlc3Npb246IChyb2xlOiBhbnksIHNlbmRNZXNzYWdlOiBTZW5kTWVzc2FnZSwgc2Vzc2lvbklkOiBhbnkpID0+IGFueTtcbiAgICBsb2c6IChsZXZlbCwgZGF0YSkgPT4gdm9pZDtcbiAgICBuZXh0T2JqSWQ6IG51bWJlcjtcbiAgICBtYXhDbGllbnRTZXF1ZW5jZTogbnVtYmVyO1xuICAgIGxvZ0xldmVsOiBudW1iZXI7XG4gICAgX19jb25mbGljdE1vZGVfXzogc3RyaW5nO1xuICAgIF9fY2hhbmdlVHJhY2tpbmdfXzogYm9vbGVhbjtcbiAgICBfdXNlR2V0dGVyc1NldHRlcnM6IGJvb2xlYW47XG4gICAgbG9nZ2VyOiBhbnk7XG4gICAgcm9sZTogYW55O1xuICAgIGN1cnJlbnRTZXNzaW9uOiBhbnk7XG4gICAgc2Vzc2lvbnM/OiBTZXNzaW9ucztcbiAgICBuZXh0U3Vic2NyaXB0aW9uSWQ6IG51bWJlcjtcbiAgICBuZXh0U2Vzc2lvbklkOiBudW1iZXI7XG4gICAgY29udHJvbGxlcjogSVNlbW90dXNDb250cm9sbGVyO1xuICAgIGNoYW5nZVN0cmluZzogc3RyaW5nO1xuXG5cbiAgICBfZ2V0U2Vzc2lvbihfc2lkPzogYW55KTogU2Vzc2lvbjtcblxuICAgIHN1YnNjcmliZShyb2xlOiBhbnkpOiBudW1iZXI7XG5cbiAgICBzZXRTZXNzaW9uKHNlc3Npb25JZDogYW55KTogdm9pZDtcblxuICAgIGdldENoYW5nZXMoc3Vic2NyaXB0aW9uSWQ/OiBhbnkpOiBDaGFuZ2VHcm91cDtcblxuICAgIF9kZWxldGVDaGFuZ2VzKCk6IHZvaWQ7XG5cbiAgICBnZXRQZW5kaW5nQ2FsbENvdW50KHNlc3Npb25JZDogYW55KTogYW55O1xufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaGVscGVycy9UeXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFhYSxRQUFBLE1BQU0sR0FBRyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1N1cGVydHlwZX0gZnJvbSAnQGhhdmVudGVjaC9zdXBlcnR5cGUnO1xuaW1wb3J0IHtSZXF1ZXN0LCBSZXNwb25zZX0gZnJvbSAnZXhwcmVzcyc7XG5leHBvcnQgdHlwZSBIVFRQT2JqcyA9IHtyZXF1ZXN0OiBSZXF1ZXN0LCByZXNwb25zZTogUmVzcG9uc2V9O1xuXG5leHBvcnQgdHlwZSBTdWJzY3JpcHRpb24gPSB7XG4gICAgcm9sZTogc3RyaW5nO1xuICAgIGxvZzoge1xuICAgICAgICBhcnJheTogQXJyYXlHcm91cDtcbiAgICAgICAgYXJyYXlEaXJ0eTogQXJyYXlHcm91cDtcbiAgICAgICAgY2hhbmdlOiBDaGFuZ2VHcm91cDtcbiAgICB9XG59XG5cbmV4cG9ydCBjb25zdCBDaGFuZ2UgPSAnY2hhbmdlJztcbmV4cG9ydCB0eXBlIEFycmF5VHlwZXMgPSAnYXJyYXknIHwgJ2FycmF5RGlydHknO1xuZXhwb3J0IHR5cGUgRXJyb3JUeXBlID0gJ2Vycm9yJyB8ICdyZXRyeScgfCAncmVzcG9uc2UnO1xuXG5leHBvcnQgdHlwZSBDYWxsQ29udGV4dCA9IHsgcmV0cmllczogbnVtYmVyOyBzdGFydFRpbWU6IERhdGUgfTtcblxuZXhwb3J0IHR5cGUgUHJvY2Vzc0NhbGxQYXlsb2FkID0ge1xuICAgIHNlbW90dXM6IFNlbW90dXM7XG4gICAgcmVtb3RlQ2FsbDogUmVtb3RlQ2FsbDtcbiAgICBjYWxsQ29udGV4dDogQ2FsbENvbnRleHQ7XG4gICAgc2Vzc2lvbjogU2Vzc2lvbjtcbiAgICBzdWJzY3JpcHRpb25JZDogYW55O1xuICAgIHJlbW90ZUNhbGxJZDogYW55O1xuICAgIHJlc3RvcmVTZXNzaW9uQ2FsbGJhY2s/OiBGdW5jdGlvbjtcbiAgICBIVFRQT2Jqcz86IEhUVFBPYmpzO1xufVxuXG4vKipcbiAqICBpZCBpcyB0aGUgaWQgb2YgdGhlIG9iamVjdCArICcvJyArIHByb3BlcnR5LlxuICogIEV4OiB0aGVyZSBhcmUgMSBTY2hvb2wgdG8gTWFueSBTdHVkZW50c1xuICpcbiAqICBTY2hvb2wge1xuICogICAgICBzdHVkZW50czogQXJyYXk8U3R1ZGVudHM+XG4gKiAgfVxuICpcbiAqICBJbiB0aGlzIGNhc2UsIG9uZSBlbnRyeSB3aXRoaW4gdGhpcyBBcnJheUdyb3VwIG1heSBiZSAnc2VydmVyLVNjaG9vbC0xL3N0dWRlbnRzJzogW1wic2VydmVyLVN0dWRlbnQtM1wiLCBcInNlcnZlci1TdHVkZW50LTVcIl1cbiAqXG4gKiAgSWYgdGhhdCdzIGFsbCB0aGUgY2hhbmdlcyB0aGVuIHRoZSBBcnJheUdyb3VwIHdvdWxkIGJlIHsnc2VydmVyLVNjaG9vbC0xL3N0dWRlbnRzJzogW1wic2VydmVyLVN0dWRlbnQtM1wiLCBcInNlcnZlci1TdHVkZW50LTVcIl19XG4gKi9cbmV4cG9ydCB0eXBlIEFycmF5R3JvdXAgPSB7IFtpZDogc3RyaW5nXTogQXJyYXlDaGFuZ2VzIH07XG5cbi8qKlxuICogQW4gYXJyYXkgb2YgSWQgcmVmZXJlbmNlcyB0byBTdXBlcnR5cGUgT2JqZWN0cyBvciBwcmltaXRpdmUgdmFsdWVzXG4gKi9cbnR5cGUgQXJyYXlDaGFuZ2VzID0gQXJyYXk8YW55PjtcbmV4cG9ydCB0eXBlIENoYW5nZUdyb3VwID0geyBbb2JqSWQ6IHN0cmluZ106IFByb3BDaGFuZ2VzIH07XG50eXBlIFByb3BDaGFuZ2VzID0geyBbcHJvcDogc3RyaW5nXTogQ2hhbmdlcyB9O1xuXG4vLyBDaGFuZ2VzWzBdIGlzIG9sZFZhbHVlLCBDaGFuZ2VzWzFdIGlzIG5ld1ZhbHVlXG50eXBlIG9sZFZhbCA9IGFueTtcbnR5cGUgbmV3VmFsID0gYW55O1xudHlwZSBDaGFuZ2VzID0gW29sZFZhbCwgbmV3VmFsXVtdO1xuXG5leHBvcnQgdHlwZSBTdWJzY3JpcHRpb25zID0geyBba2V5OiBzdHJpbmddOiBTdWJzY3JpcHRpb24gfTtcblxuZXhwb3J0IHR5cGUgUmVtb3RlQ2FsbCA9IHtcbiAgICByZW1vdGVDYWxsSWQ6IGFueTtcbiAgICBpZDogYW55O1xuICAgIGNoYW5nZXM6IHN0cmluZzsgLy8gVGhlIHN0cmluZyBpcyBvZiB0eXBlIENoYW5nZUdyb3VwXG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHNlcXVlbmNlOiBhbnk7XG4gICAgdHlwZTogYW55O1xuICAgIHN5bmM6IGFueTtcbiAgICB2YWx1ZTogYW55O1xufVxuXG5leHBvcnQgdHlwZSBTZXNzaW9uID0ge1xuICAgIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbnM7XG4gICAgc2VuZE1lc3NhZ2U6IFNlbmRNZXNzYWdlO1xuICAgIHNlbmRNZXNzYWdlRW5hYmxlZDogYm9vbGVhbjtcbiAgICByZW1vdGVDYWxsczogQXJyYXk8YW55PjtcbiAgICBwZW5kaW5nUmVtb3RlQ2FsbHM6IGFueTtcbiAgICBuZXh0UGVuZGluZ1JlbW90ZUNhbGxJZDogbnVtYmVyO1xuICAgIG5leHRTYXZlU2Vzc2lvbklkOiBudW1iZXI7XG4gICAgc2F2ZWRTZXNzaW9uSWQ6IG51bWJlcjtcbiAgICBuZXh0U3Vic2NyaXB0aW9uSWQ6IG51bWJlcjtcbiAgICBvYmplY3RzOiBhbnk7XG4gICAgbmV4dE9iaklkOiBudW1iZXI7XG4gICAgZGlzcGVuc2VOZXh0SWQ6IG51bGw7IC8vIG5vdCB1c2VkIGFueXdoZXJlXG59XG5cblxuZXhwb3J0IHR5cGUgU2Vzc2lvbnMgPSB7IFtzZXNzaW9uSWQ6IG51bWJlcl06IFNlc3Npb24gfTtcblxuZXhwb3J0IHR5cGUgU2VuZE1lc3NhZ2UgPSAobWVzc2FnZTogYW55KSA9PiB2b2lkO1xuXG5leHBvcnQgdHlwZSBTYXZlZFNlc3Npb24gPSB7XG4gICAgcmV2aXNpb246IG51bWJlcjtcbiAgICBkYXRhOiBzdHJpbmc7IC8vIFNlcmlhbGl6ZWQgU2Vzc2lvbiBkYXRhXG4gICAgY2FsbENvdW50OiBudW1iZXI7XG4gICAgcmVmZXJlbmNlZDogbnVtYmVyO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBSZW1vdGVhYmxlQ2xhc3MgZXh0ZW5kcyBTdXBlcnR5cGUge1xuICAgIHN5bmNTdGF0ZXM6IEFycmF5PHN0cmluZz47XG4gICAgX190b0NsaWVudF9fOiBib29sZWFuO1xuICAgIF9fdG9TZXJ2ZXJfXzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IHR5cGUgQ2hhbmdlU3RyaW5nID0geyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbnR5cGUgUHJlU2VydmVyQ2FsbENoYW5nZXMgPSB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfTtcblxuZXhwb3J0IHR5cGUgQ29udHJvbGxlclN5bmNTdGF0ZSA9IHtcbiAgICBzY29wZTogJysnIHwgJyonIHwgJy0nXG4gICAgc3RhdGU6IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElTZW1vdHVzQ29udHJvbGxlciB7XG4gICAgX190ZW1wbGF0ZV9fOiBhbnk7XG4gICAgc3luY1N0YXRlPzogQ29udHJvbGxlclN5bmNTdGF0ZVxuXG4gICAgLyoqXG4gICAgICogQHNlcnZlclxuICAgICAqXG4gICAgICogQ2FsbGJhY2sgYWZ0ZXIgYSBzdWNjZXNzZnVsIHJlbW90ZSBmdW5jdGlvbiBjYWxsIChqdXN0IHRoZSBhcHBsaWNhdGlvbiBvZiBjaGFuZ2VzIGFuZCB0aGUgZXhlY3V0aW9uIG9mIHRoZSBmdW5jdGlvbiBjYWxsKVxuICAgICAqIE5vdGUgdGhhdCB0aGlzIGRvZXNuJ3QgbWVhbiB3ZSBjYW4ndCBlcnJvciBvdXQgb24gdGhpcyBvciBzdWJzZXF1ZW50IHN0ZXBzIG9mIGEgcmVtb3RlIGNhbGwuXG4gICAgICpcbiAgICAgKiBXZSBjYW4gdXRpbGl6ZSB0aGlzIGZ1bmN0aW9uIGFzIGEgZ2VuZXJpYyBmdW5jdGlvbiBoYW5kbGVyIHRvIHJ1biBhZnRlciB3ZSBoYXZlIHN1Y2Nlc3NmdWxseSBjYWxsZWQgYSByZW1vdGUgZnVuY3Rpb24uXG4gICAgICogT25lIHN1Y2ggdXNlIG1heSBiZSB0byBzZWUgdGhlIGNoYW5nZXMgdGhhdCB3ZXJlIGFwcGxpZWQgZnJvbSB0aGUgY2xpZW50XG4gICAgICpcbiAgICAgKiBOT1RFIFRIQVQgVEhFIENIQU5HRVNUUklORyBET0VTIE5PVCBJTkNMVURFIENIQU5HRVMgRE9ORSBXSVRISU4gVEhFIFJFTU9URSBGVU5DVElPTiBDQUxMIElUU0VMRiwgT05MWSBDSEFOR0VTIEZST00gVEhFIENMSUVOVFxuICAgICAqXG4gICAgICogU2VlIHJlbW90ZSBjYWxsIGRvY3VtZW50YXRpb24gdG8ga25vdyB3aGVyZSB0aGlzIGV4ZWN1dGVzIGluIHRoZSBsaWZlY3ljbGVcbiAgICAgKlxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gaGFzQ2hhbmdlcyAtIFdoZXRoZXIgb3Igbm90IHdlIGhhdmUgYXBwbGllZCBjbGllbnQgY2hhbmdlcyBvbnRvIHRoZSBzZXJ2ZXIncyBvYmplY3QgZ3JhcGhcbiAgICAgKiBAcGFyYW0ge0NhbGxDb250ZXh0fSBjYWxsQ29udGV4dCAtIENvbnRleHQgKG51bWJlciBvZiByZXRyaWVzIGV0YylcbiAgICAgKiBAcGFyYW0ge2NoYW5nZVN0cmluZ30gY2hhbmdlU3RyaW5nIC0gT2JqZWN0IG9mIENoYW5nZXMgLSBLZXkgaXMgW0NsYXNzTmFtZV0uW3Byb3BlcnR5TmFtZV0sIFZhbHVlIGlzIFtjaGFuZ2VkVmFsdWVdIGV4YW1wbGU6IHsnQ3VzdG9tZXIubWlkZGxlbmFtZSc6ICdLYXJlbid9LCBTZWUgYWJvdmUgbm90ZVxuICAgICAqIEBwYXJhbSBIVFRQT2Jqc1xuICAgICAqXG4gICAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59XG4gICAgICogQG1lbWJlcm9mIENvbnRyb2xsZXJcbiAgICAgKi9cbiAgICBwb3N0U2VydmVyQ2FsbD8oaGFzQ2hhbmdlczogYm9vbGVhbiwgY2FsbENvbnRleHQ6IENhbGxDb250ZXh0LCBjaGFuZ2VTdHJpbmc6IENoYW5nZVN0cmluZywgSFRUUE9ianM/OiBIVFRQT2Jqcyk6IFByb21pc2U8YW55PjtcblxuICAgIC8qKlxuICAgICAqIEBzZXJ2ZXJcbiAgICAgKlxuICAgICAqIENhbGxiYWNrIHRvIGhhbmRsZSBlcnJvcnMgb24gYSByZW1vdGUgY2FsbC5cbiAgICAgKlxuICAgICAqIEV4ZWN1dGVzIGFmdGVyIGV2ZXJ5IG90aGVyIHN0ZXAgaW4gdGhlIHJlbW90ZSBjYWxsIHBpcGVsaW5lIChzZWUgcmVtb3RlIGNhbGwgZG9jdW1lbnRhdGlvbilcbiAgICAgKiBidXQgYmVmb3JlIHJldHJ5aW5nIHRoZSBjYWxsIChvciBwYWNrYWdpbmcgcmVzcG9uc2UgYW5kIHNlbmRpbmcgYmFjayB0byBjbGllbnQpXG4gICAgICpcbiAgICAgKiBOT1RFIFRIQVQgVEhFIENIQU5HRVNUUklORyBET0VTIE5PVCBJTkNMVURFIENIQU5HRVMgRE9ORSBXSVRISU4gVEhFIFJFTU9URSBGVU5DVElPTiBDQUxMIElUU0VMRiwgT05MWSBDSEFOR0VTIEZST00gVEhFIENMSUVOVFxuICAgICAqXG4gICAgICogQHBhcmFtIHtFcnJvclR5cGV9IGVycm9yVHlwZSAtIEVycm9yIHR5cGUgYXNzb2NpYXRlZCAoZXJyb3IsIHJldHJ5LCByZXNwb25zZSlcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gcmVtb3RlQ2FsbElkIC0gSWQgZm9yIHJlbW90ZSBjYWxsXG4gICAgICogQHBhcmFtIHtleHRlbmRzIFN1cGVydHlwZX0gcmVtb3RlT2JqIC0gSW5zdGFuY2UgZm9yIHdoaWNoIHRoZSByZW1vdGUgb2JqZWN0IGZ1bmN0aW9uIGlzIGNhbGxlZCBmb3IgLSBAVE9ETzogcmV2aXNpdCB3aGVuIHdlIGNyZWF0ZSBhIHByb3BlciByZW1vdGVhYmxlIHR5cGVcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gZnVuY3Rpb25OYW1lIC0gTmFtZSBvZiBmdW5jdGlvbiBiZWluZyBjYWxsZWRcbiAgICAgKiBAcGFyYW0ge0NhbGxDb250ZXh0fSBjYWxsQ29udGV4dCAtIENvbnRleHQgKG51bWJlciBvZiByZXRyaWVzIGV0YylcbiAgICAgKiBAcGFyYW0ge0NoYW5nZVN0cmluZ30gY2hhbmdlU3RyaW5nIC0gT2JqZWN0IG9mIENoYW5nZXMgLSBLZXkgaXMgW0NsYXNzTmFtZV0uW3Byb3BlcnR5TmFtZV0sIFZhbHVlIGlzIFtjaGFuZ2VkVmFsdWVdIGV4YW1wbGU6IHsnQ3VzdG9tZXIubWlkZGxlbmFtZSc6ICdLYXJlbid9LCBTZWUgYWJvdmUgbm90ZVxuICAgICAqXG4gICAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59XG4gICAgICogQG1lbWJlcm9mIENvbnRyb2xsZXJcbiAgICAgKi9cbiAgICBwb3N0U2VydmVyRXJyb3JIYW5kbGVyPyhlcnJvclR5cGU6IEVycm9yVHlwZSwgcmVtb3RlQ2FsbElkOiBudW1iZXIsIHJlbW90ZU9iajogU3VwZXJ0eXBlLCBmdW5jdGlvbk5hbWU6IHN0cmluZywgY2FsbENvbnRleHQ6IENhbGxDb250ZXh0LCBjaGFuZ2VTdHJpbmc6IENoYW5nZVN0cmluZyk6IFByb21pc2U8dm9pZD47XG5cbiAgICAvKipcbiAgICAgKiBAc2VydmVyXG4gICAgICpcbiAgICAgKiBDYWxsYmFjayBiZWZvcmUgYSByZW1vdGUgZnVuY3Rpb24gY2FsbCAoMXN0IHN0ZXAgb2YgYSByZW1vdGUgY2FsbClcbiAgICAgKlxuICAgICAqIFdlIGNhbiB1dGlsaXplIHRoaXMgZnVuY3Rpb24gYXMgYSBnZW5lcmljIGZ1bmN0aW9uIGhhbmRsZXIgdG8gcnVuIGJlZm9yZSB3ZSBjYWxsIGFcbiAgICAgKiByZW1vdGUgZnVuY3Rpb24gb3IgYmVmb3JlIHdlIGFwcGx5IGNoYW5nZXMgZnJvbSB0aGUgY2xpZW50IHRvIHRoZSBzZXJ2ZXJcbiAgICAgKlxuICAgICAqIFdlIGNhbiBhbHNvIHV0aWxpemUgdGhpcyBmdW5jdGlvbiB0byBkbyBhbnkgY29udGV4dC1zcGVjaWZpYyBwcmVwIHdvcmsgLyBsb2FkaW5nXG4gICAgICogaWYgdGhpcyBhIHN1YnNlcXVlbnQgdHJ5IG9mIHRoaXMgZnVuY3Rpb24gZHVlIHRvIGFuIHVwZGF0ZSBjb25mbGljdC5cbiAgICAgKlxuICAgICAqIFNlZSByZW1vdGUgY2FsbCBkb2N1bWVudGF0aW9uIHRvIGtub3cgd2hlcmUgdGhpcyBleGVjdXRlcyBpbiB0aGUgbGlmZWN5Y2xlXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGhhc0NoYW5nZXMgLSBXaGV0aGVyIG9yIG5vdCB3ZSBoYXZlIGFwcGxpZWQgY2xpZW50IGNoYW5nZXMgb250byB0aGUgc2VydmVyJ3Mgb2JqZWN0IGdyYXBoXG4gICAgICogQHBhcmFtIHtQcmVTZXJ2ZXJDYWxsQ2hhbmdlc30gY2hhbmdlcyAtIERpY3Rpb25hcnkgb2YgT2JqZWN0cyB0aGF0IGhhdmUgYmVlbiBjaGFuZ2VkIGZyb20gdGhlIGNsaWVudFxuICAgICAqIEBwYXJhbSB7Q2FsbENvbnRleHR9IGNhbGxDb250ZXh0IC0gQ29udGV4dCAobnVtYmVyIG9mIHJldHJpZXMgZXRjKVxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2ZvcmNlVXBkYXRlXSAtIE9wdGlvbmFsIHBhcmFtZXRlciBwYXNzZWQgaW4uIFRydWUgaWYgdGhpcyBpcyBhIHJldHJ5IG9mIHRoZSBjYWxsIGJhc2VkIG9uIGFuIHVwZGF0ZSBjb25mbGljdC4gRmFsc2UgLyB1bmRlZmluZWQgb3RoZXJ3aXNlLlxuICAgICAqXG4gICAgICogQHBhcmFtIGZ1bmN0aW9uTmFtZVxuICAgICAqIEBwYXJhbSByZW1vdGVDYWxsXG4gICAgICogQHBhcmFtIGlzUHVibGljXG4gICAgICogQHBhcmFtIEhUVFBPYmpzXG4gICAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59XG4gICAgICogQG1lbWJlcm9mIENvbnRyb2xsZXJcbiAgICAgKi9cbiAgICBwcmVTZXJ2ZXJDYWxsPyhoYXNDaGFuZ2VzOiBib29sZWFuLCBjaGFuZ2VzOiBQcmVTZXJ2ZXJDYWxsQ2hhbmdlcywgY2FsbENvbnRleHQ6IENhbGxDb250ZXh0LCBmb3JjZVVwZGF0ZTogdW5kZWZpbmVkIHwgYm9vbGVhbiwgZnVuY3Rpb25OYW1lOiBzdHJpbmcsIHJlbW90ZUNhbGw6IFJlbW90ZUNhbGwsIGlzUHVibGljOiBib29sZWFuLCBIVFRQT2Jqcz86IEhUVFBPYmpzICk6IFByb21pc2U8YW55PjtcblxuICAgIC8qKlxuICAgICAqIFRoaXMgaXMgYSBoYW5kbGVyIHRoYXQgd2lsbCBvbmx5IGJlIHVzZWQgZm9yIHRlc3RpbmcgYW5kIGRlYnVnZ2luZyBwdXJwb3Nlc1xuICAgICAqXG4gICAgICogV2hlbiB0aGlzIGlzIHVzZWQsIGFsbG93cyB1cyB0byBpbnNwZWN0IHRoZSBtZXNzYWdlIGJvZHkgYmVmb3JlIHdlIHNlbmQgaXQgb3V0IGluICdwYWNrYWdlQ2hhbmdlcydcbiAgICAgKlxuICAgICAqIERPIE5PVCBVU0UgVEhJUyBJTiBQUk9EVUNUSU9OIENPREVcbiAgICAgKlxuICAgICAqIEBwYXJhbSBtZXNzYWdlXG4gICAgICovXG4gICAgaW5zcGVjdE1lc3NhZ2U/KG1lc3NhZ2UpOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2Vtb3R1cyB7XG4gICAgc2V0U3luY1N0YXRlOiAoc3RyKSA9PiB2b2lkO1xuICAgIHN5bmNTdGF0ZTogc3RyaW5nO1xuICAgIGdldFN5bmNTdGF0ZTogKCkgPT4gYW55O1xuICAgIG1heENhbGxUaW1lOiBudW1iZXI7XG4gICAgX19kaWN0aW9uYXJ5X186IGFueTtcbiAgICBtZW1TZXNzaW9uOiB7IHNlbW90dXM6IHsgY2FsbFN0YXJ0VGltZTogbnVtYmVyIH0gfTtcbiAgICBfaW5qZWN0SW50b1RlbXBsYXRlOiAodGVtcGxhdGUpID0+IHZvaWQ7XG4gICAgc2VyaWFsaXplQW5kR2FyYmFnZUNvbGxlY3Q6ICgpID0+IGFueTtcbiAgICBnZXRNZXNzYWdlOiAoc2Vzc2lvbklkLCBmb3JjZU1lc3NhZ2UpID0+IGFueTtcbiAgICBjbGVhclBlbmRpbmdDYWxsczogKHNlc3Npb25JZCkgPT4gdm9pZDtcbiAgICBnZXRDaGFuZ2VHcm91cDogKHR5cGUsIHN1YnNjcmlwdGlvbklkKSA9PiBDaGFuZ2VHcm91cDtcbiAgICBkZWxldGVDaGFuZ2VHcm91cDogKHR5cGU6IGFueSwgc3Vic2NyaXB0aW9uSWQ6IGFueSkgPT4gdm9pZDtcbiAgICBnZXRDaGFuZ2VTdGF0dXM6ICgpID0+IHN0cmluZztcbiAgICBfc3Rhc2hPYmplY3Q6IChvYmosIHRlbXBsYXRlKSA9PiBib29sZWFuO1xuICAgIHNlc3Npb25pemU6IChvYmosIHJlZmVyZW5jaW5nT2JqKSA9PiAodW5kZWZpbmVkIHwgYW55KTtcbiAgICBfc2V0dXBGdW5jdGlvbjogKHByb3BlcnR5TmFtZSwgcHJvcGVydHlWYWx1ZSwgcm9sZSwgdmFsaWRhdGUsIHNlcnZlclZhbGlkYXRpb24sIGlzUHVibGljOiBib29sZWFuLCB0ZW1wbGF0ZSkgPT4gKGFueSk7XG4gICAgX3NldHVwUHJvcGVydHk6IChwcm9wZXJ0eU5hbWUsIGRlZmluZVByb3BlcnR5LCBvYmplY3RQcm9wZXJ0aWVzLCBkZWZpbmVQcm9wZXJ0aWVzKSA9PiB2b2lkO1xuICAgIHdpdGhvdXRDaGFuZ2VUcmFja2luZzogKGNiKSA9PiB2b2lkO1xuICAgIF9jaGFuZ2VkVmFsdWU6IChvYmosIHByb3AsIHZhbHVlKSA9PiB2b2lkO1xuICAgIF9yZWZlcmVuY2VkQXJyYXk6IChvYmosIHByb3AsIGFycmF5UmVmLCBzZXNzaW9uSWQ/KSA9PiB2b2lkO1xuICAgIF9jb252ZXJ0QXJyYXlSZWZlcmVuY2VzVG9DaGFuZ2VzOiAoKSA9PiB2b2lkO1xuICAgIE1hcmtDaGFuZ2VkQXJyYXlSZWZlcmVuY2VzOiAoKSA9PiB2b2lkO1xuICAgIF9jb252ZXJ0VmFsdWU6ICh2YWx1ZSkgPT4gKGFueVtdIHwgbnVsbCk7XG4gICAgZ2V0T2JqZWN0OiAob2JqSWQsIHRlbXBsYXRlKSA9PiAoYW55IHwgbnVsbCk7XG4gICAgX2FwcGx5Q2hhbmdlczogKGNoYW5nZXMsIGZvcmNlLCBzdWJzY3JpcHRpb25JZCwgY2FsbENvbnRleHQpID0+IChudW1iZXIpO1xuICAgIF9hcHBseU9iamVjdENoYW5nZXM6IChjaGFuZ2VzLCByb2xsYmFjaywgb2JqLCBmb3JjZSkgPT4gKGJvb2xlYW4pO1xuICAgIF92YWxpZGF0ZVNlcnZlckluY29taW5nUHJvcGVydHk6IChvYmosIHByb3AsIGRlZmluZVByb3BlcnR5LCBuZXdWYWx1ZSkgPT4gKGJvb2xlYW4pO1xuICAgIF9hcHBseVByb3BlcnR5Q2hhbmdlOiAoY2hhbmdlcywgcm9sbGJhY2ssIG9iaiwgcHJvcCwgaXgsIG9sZFZhbHVlLCBuZXdWYWx1ZSwgZm9yY2UpID0+IChib29sZWFuKTtcbiAgICBfcm9sbGJhY2s6IChyb2xsYmFjaykgPT4gdm9pZDtcbiAgICBfcm9sbGJhY2tDaGFuZ2VzOiAoKSA9PiB2b2lkO1xuICAgIF9jcmVhdGVFbXB0eU9iamVjdDogKHRlbXBsYXRlLCBvYmpJZCwgZGVmaW5lUHJvcGVydHksIGlzVHJhbnNpZW50KSA9PiBhbnk7XG4gICAgaW5qZWN0OiAodGVtcGxhdGUsIGluamVjdG9yKSA9PiB2b2lkO1xuICAgIF9xdWV1ZVJlbW90ZUNhbGw6IChvYmpJZCwgZnVuY3Rpb25OYW1lLCBkZWZlcnJlZCwgYXJncykgPT4gdm9pZDtcbiAgICBfcHJvY2Vzc1F1ZXVlOiAoKSA9PiB2b2lkO1xuICAgIF90b1RyYW5zcG9ydDogKG9iaikgPT4gYW55O1xuICAgIF9mcm9tVHJhbnNwb3J0OiAob2JqKSA9PiBhbnk7XG4gICAgX2V4dHJhY3RBcmd1bWVudHM6IChyZW1vdGVDYWxsKSA9PiBhbnk7XG4gICAgX3RyaW1BcnJheTogKGFycmF5KSA9PiB2b2lkO1xuICAgIF9kZWxldGVDaGFuZ2VHcm91cHM6ICh0eXBlKSA9PiB2b2lkO1xuICAgIF9nZXRTdWJzY3JpcHRpb25zOiAoc2Vzc2lvbklkPykgPT4gU3Vic2NyaXB0aW9ucyB8IG51bGw7XG4gICAgX2dldFN1YnNjcmlwdGlvbjogKHN1YnNjcmlwdGlvbklkPykgPT4gU3Vic2NyaXB0aW9uO1xuICAgIGNsZWFuUHJpdmF0ZVZhbHVlczogKHByb3AsIGxvZ1ZhbHVlLCBkZWZpbmVQcm9wZXJ0eSkgPT4gKHN0cmluZyB8IGFueSk7XG4gICAgUmVtb3RlYWJsZTogKEJhc2UpID0+ICgpID0+IGFueTtcbiAgICBCaW5kYWJsZTogKEJhc2UpID0+ICgpID0+IGFueTtcbiAgICBQZXJzaXN0YWJsZTogKEJhc2UpID0+ICgpID0+IGFueTtcbiAgICBiaW5kRGVjb3JhdG9yczogKG9iamVjdFRlbXBsYXRlPykgPT4gdm9pZDtcbiAgICBwcm9jZXNzTWVzc2FnZTogKHJlbW90ZUNhbGwsIHN1YnNjcmlwdGlvbklkLCByZXN0b3JlU2Vzc2lvbkNhbGxiYWNrLCByZXE/OiBSZXF1ZXN0LCByZXM/OiBSZXNwb25zZSkgPT4gKHVuZGVmaW5lZCB8IGFueSk7XG4gICAgZW5hYmxlU2VuZE1lc3NhZ2U6ICh2YWx1ZSwgbWVzc2FnZUNhbGxiYWNrLCBzZXNzaW9uSWQpID0+IHZvaWQ7XG4gICAgc3luY1Nlc3Npb246IChzZXNzaW9uSWQpID0+IHZvaWQ7XG4gICAgcmVzdG9yZVNlc3Npb246IChzZXNzaW9uSWQsIHNhdmVkU2Vzc2lvbjogU2F2ZWRTZXNzaW9uLCBzZW5kTWVzc2FnZTogU2VuZE1lc3NhZ2UpID0+IGJvb2xlYW47XG4gICAgc2F2ZVNlc3Npb246IChzZXNzaW9uSWQpID0+IFNhdmVkU2Vzc2lvbjtcbiAgICBzZXRNaW5pbXVtU2VxdWVuY2U6IChuZXh0T2JqSWQpID0+IHZvaWQ7XG4gICAgZGVsZXRlU2Vzc2lvbjogKHNlc3Npb25JZCkgPT4gdm9pZDtcbiAgICBjcmVhdGVTZXNzaW9uOiAocm9sZTogYW55LCBzZW5kTWVzc2FnZTogU2VuZE1lc3NhZ2UsIHNlc3Npb25JZDogYW55KSA9PiBhbnk7XG4gICAgbG9nOiAobGV2ZWwsIGRhdGEpID0+IHZvaWQ7XG4gICAgbmV4dE9iaklkOiBudW1iZXI7XG4gICAgbWF4Q2xpZW50U2VxdWVuY2U6IG51bWJlcjtcbiAgICBsb2dMZXZlbDogbnVtYmVyO1xuICAgIF9fY29uZmxpY3RNb2RlX186IHN0cmluZztcbiAgICBfX2NoYW5nZVRyYWNraW5nX186IGJvb2xlYW47XG4gICAgX3VzZUdldHRlcnNTZXR0ZXJzOiBib29sZWFuO1xuICAgIGxvZ2dlcjogYW55O1xuICAgIHJvbGU6IGFueTtcbiAgICBjdXJyZW50U2Vzc2lvbjogYW55O1xuICAgIHNlc3Npb25zPzogU2Vzc2lvbnM7XG4gICAgbmV4dFN1YnNjcmlwdGlvbklkOiBudW1iZXI7XG4gICAgbmV4dFNlc3Npb25JZDogbnVtYmVyO1xuICAgIGNvbnRyb2xsZXI6IElTZW1vdHVzQ29udHJvbGxlcjtcbiAgICBjaGFuZ2VTdHJpbmc6IHN0cmluZztcblxuXG4gICAgX2dldFNlc3Npb24oX3NpZD86IGFueSk6IFNlc3Npb247XG5cbiAgICBzdWJzY3JpYmUocm9sZTogYW55KTogbnVtYmVyO1xuXG4gICAgc2V0U2Vzc2lvbihzZXNzaW9uSWQ6IGFueSk6IHZvaWQ7XG5cbiAgICBnZXRDaGFuZ2VzKHN1YnNjcmlwdGlvbklkPzogYW55KTogQ2hhbmdlR3JvdXA7XG5cbiAgICBfZGVsZXRlQ2hhbmdlcygpOiB2b2lkO1xuXG4gICAgZ2V0UGVuZGluZ0NhbGxDb3VudChzZXNzaW9uSWQ6IGFueSk6IGFueTtcbn1cbiJdfQ==
"use strict";
// Q Replacement Helpers
Object.defineProperty(exports, "__esModule", { value: true });
exports.logTime = exports.getError = exports.defer = exports.delay = void 0;
function delay(ms) {

@@ -46,2 +47,2 @@ return new Promise(function (_) { return setTimeout(_, ms); });

exports.logTime = logTime;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVXRpbGl0aWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hlbHBlcnMvVXRpbGl0aWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSx3QkFBd0I7O0FBSXhCLFNBQWdCLEtBQUssQ0FBQyxFQUFVO0lBQzVCLE9BQU8sSUFBSSxPQUFPLENBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxVQUFVLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFqQixDQUFpQixDQUFDLENBQUM7QUFDL0MsQ0FBQztBQUZELHNCQUVDO0FBRUQsU0FBZ0IsS0FBSztJQUNqQixJQUFNLE1BQU0sR0FBbUQsRUFBRSxDQUFDO0lBQ2xFLE1BQU0sQ0FBQyxPQUFPLEdBQUcsSUFBSSxPQUFPLENBQUMsVUFBVSxPQUFPLEVBQUUsTUFBTTtRQUNsRCxNQUFNLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN6QixNQUFNLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUMzQixDQUFDLENBQUMsQ0FBQztJQUNILE9BQU8sTUFBTSxDQUFDO0FBQ2xCLENBQUM7QUFQRCxzQkFPQztBQUdEOzs7Ozs7Ozs7R0FTRztBQUNILFNBQWdCLFFBQVEsQ0FBQyxHQUFHO0lBQ3hCLElBQUksR0FBRyxZQUFZLEtBQUssRUFBRTtRQUN0QixPQUFPLEVBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFLElBQUksRUFBRSw0QkFBNEIsRUFBQyxDQUFDO0tBQ3ZFO1NBQU07UUFDSCxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsRUFBRTtZQUN6QixPQUFPLEVBQUMsT0FBTyxFQUFFLEdBQUcsRUFBQyxDQUFDO1NBQ3pCO2FBQU07WUFDSCxPQUFPLEdBQUcsQ0FBQztTQUNkO0tBQ0o7QUFDTCxDQUFDO0FBVkQsNEJBVUM7QUFFRCxTQUFnQixPQUFPLENBQUMsV0FBd0I7SUFDNUMsT0FBTyxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRTtRQUN2QixXQUFXLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFDO0FBQ3hDLENBQUM7QUFIRCwwQkFHQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIFEgUmVwbGFjZW1lbnQgSGVscGVyc1xuXG5pbXBvcnQge0NhbGxDb250ZXh0fSBmcm9tICcuL1R5cGVzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGRlbGF5KG1zOiBudW1iZXIpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoXyA9PiBzZXRUaW1lb3V0KF8sIG1zKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWZlcigpIHtcbiAgICBjb25zdCByZXN1bHQ6IHsgcHJvbWlzZT86IGFueSwgcmVzb2x2ZT86IGFueSwgcmVqZWN0PzogYW55IH0gPSB7fTtcbiAgICByZXN1bHQucHJvbWlzZSA9IG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgcmVzdWx0LnJlc29sdmUgPSByZXNvbHZlO1xuICAgICAgICByZXN1bHQucmVqZWN0ID0gcmVqZWN0O1xuICAgIH0pO1xuICAgIHJldHVybiByZXN1bHQ7XG59XG5cblxuLyoqXG4gKiBIZWxwZXIgZnVuY3Rpb24gdG9cbiAqXG4gKiBEaXN0aW5ndWlzaCBiZXR3ZWVuIGFuIGFjdHVhbCBlcnJvciAod2lsbCB0aHJvdyBhbiBFcnJvciBvYmplY3QpIGFuZCBhIHN0cmluZyB0aGF0IHRoZSBhcHBsaWNhdGlvbiBtYXlcbiAqIHRocm93IHdoaWNoIGlzIHRvIGdldCBwaXBlZCBiYWNrIHRvIHRoZSBjYWxsZXIuICBGb3IgYW4gYWN0dWFsIGVycm9yIHdlIHdhbnQgdG8gbG9nIHRoZSBzdGFjayB0cmFjZVxuICpcbiAqIEBwYXJhbSBlcnIgdW5rbm93blxuICpcbiAqIEByZXR1cm5zIHsqfSB1bmtub3duXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRFcnJvcihlcnIpIHtcbiAgICBpZiAoZXJyIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIHtjb2RlOiAnaW50ZXJuYWxfZXJyb3InLCB0ZXh0OiAnQW4gaW50ZXJuYWwgZXJyb3Igb2NjdXJyZWQnfTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBpZiAodHlwZW9mIGVyciA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHJldHVybiB7bWVzc2FnZTogZXJyfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBlcnI7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsb2dUaW1lKGNhbGxDb250ZXh0OiBDYWxsQ29udGV4dCkge1xuICAgIHJldHVybiBuZXcgRGF0ZSgpLmdldFRpbWUoKSAtXG4gICAgICAgIGNhbGxDb250ZXh0LnN0YXJ0VGltZS5nZXRUaW1lKCk7XG59Il19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVXRpbGl0aWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hlbHBlcnMvVXRpbGl0aWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSx3QkFBd0I7OztBQUl4QixTQUFnQixLQUFLLENBQUMsRUFBVTtJQUM1QixPQUFPLElBQUksT0FBTyxDQUFDLFVBQUEsQ0FBQyxJQUFJLE9BQUEsVUFBVSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBakIsQ0FBaUIsQ0FBQyxDQUFDO0FBQy9DLENBQUM7QUFGRCxzQkFFQztBQUVELFNBQWdCLEtBQUs7SUFDakIsSUFBTSxNQUFNLEdBQW1ELEVBQUUsQ0FBQztJQUNsRSxNQUFNLENBQUMsT0FBTyxHQUFHLElBQUksT0FBTyxDQUFDLFVBQVUsT0FBTyxFQUFFLE1BQU07UUFDbEQsTUFBTSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDekIsTUFBTSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDM0IsQ0FBQyxDQUFDLENBQUM7SUFDSCxPQUFPLE1BQU0sQ0FBQztBQUNsQixDQUFDO0FBUEQsc0JBT0M7QUFHRDs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFnQixRQUFRLENBQUMsR0FBRztJQUN4QixJQUFJLEdBQUcsWUFBWSxLQUFLLEVBQUU7UUFDdEIsT0FBTyxFQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUsNEJBQTRCLEVBQUMsQ0FBQztLQUN2RTtTQUFNO1FBQ0gsSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLEVBQUU7WUFDekIsT0FBTyxFQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUMsQ0FBQztTQUN6QjthQUFNO1lBQ0gsT0FBTyxHQUFHLENBQUM7U0FDZDtLQUNKO0FBQ0wsQ0FBQztBQVZELDRCQVVDO0FBRUQsU0FBZ0IsT0FBTyxDQUFDLFdBQXdCO0lBQzVDLE9BQU8sSUFBSSxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUU7UUFDdkIsV0FBVyxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztBQUN4QyxDQUFDO0FBSEQsMEJBR0MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBRIFJlcGxhY2VtZW50IEhlbHBlcnNcblxuaW1wb3J0IHtDYWxsQ29udGV4dH0gZnJvbSAnLi9UeXBlcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWxheShtczogbnVtYmVyKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKF8gPT4gc2V0VGltZW91dChfLCBtcykpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVmZXIoKSB7XG4gICAgY29uc3QgcmVzdWx0OiB7IHByb21pc2U/OiBhbnksIHJlc29sdmU/OiBhbnksIHJlamVjdD86IGFueSB9ID0ge307XG4gICAgcmVzdWx0LnByb21pc2UgPSBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIHJlc3VsdC5yZXNvbHZlID0gcmVzb2x2ZTtcbiAgICAgICAgcmVzdWx0LnJlamVjdCA9IHJlamVjdDtcbiAgICB9KTtcbiAgICByZXR1cm4gcmVzdWx0O1xufVxuXG5cbi8qKlxuICogSGVscGVyIGZ1bmN0aW9uIHRvXG4gKlxuICogRGlzdGluZ3Vpc2ggYmV0d2VlbiBhbiBhY3R1YWwgZXJyb3IgKHdpbGwgdGhyb3cgYW4gRXJyb3Igb2JqZWN0KSBhbmQgYSBzdHJpbmcgdGhhdCB0aGUgYXBwbGljYXRpb24gbWF5XG4gKiB0aHJvdyB3aGljaCBpcyB0byBnZXQgcGlwZWQgYmFjayB0byB0aGUgY2FsbGVyLiAgRm9yIGFuIGFjdHVhbCBlcnJvciB3ZSB3YW50IHRvIGxvZyB0aGUgc3RhY2sgdHJhY2VcbiAqXG4gKiBAcGFyYW0gZXJyIHVua25vd25cbiAqXG4gKiBAcmV0dXJucyB7Kn0gdW5rbm93blxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RXJyb3IoZXJyKSB7XG4gICAgaWYgKGVyciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgIHJldHVybiB7Y29kZTogJ2ludGVybmFsX2Vycm9yJywgdGV4dDogJ0FuIGludGVybmFsIGVycm9yIG9jY3VycmVkJ307XG4gICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHR5cGVvZiBlcnIgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICByZXR1cm4ge21lc3NhZ2U6IGVycn07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gZXJyO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbG9nVGltZShjYWxsQ29udGV4dDogQ2FsbENvbnRleHQpIHtcbiAgICByZXR1cm4gbmV3IERhdGUoKS5nZXRUaW1lKCkgLVxuICAgICAgICBjYWxsQ29udGV4dC5zdGFydFRpbWUuZ2V0VGltZSgpO1xufSJdfQ==

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

Object.defineProperty(exports, "__esModule", { value: true });
exports.Bindable = exports.Remoteable = exports.Persistable = void 0;
var __extends = (this && this.__extends) ||

@@ -58,2 +59,2 @@ (function () {

exports.Bindable = Bindable;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dXBFeHRlbmRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3NldHVwRXh0ZW5kcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsa0hBQWtIO0FBQ2xILCtFQUErRTs7QUFFL0UsSUFBTSxTQUFTLEdBQ1gsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO1FBQ0csSUFBTSxhQUFhLEdBQ2YsTUFBTSxDQUFDLGNBQWM7WUFDckIsQ0FBQyxFQUFDLFNBQVMsRUFBRSxFQUFFLEVBQUMsWUFBWSxLQUFLO2dCQUM3QixVQUFVLENBQUMsRUFBRSxDQUFDO29CQUNWLENBQUMsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDO2dCQUNwQixDQUFDLENBQUM7WUFDTixVQUFVLENBQUMsRUFBRSxDQUFDO2dCQUNWLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO29CQUNiLElBQUksQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsRUFBRTt3QkFDckIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztxQkFDZjtpQkFDSjtZQUNMLENBQUMsQ0FBQztRQUNOLE9BQU8sVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUNqQixhQUFhLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBRXBCLFNBQVMsRUFBRTtnQkFDUCxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQztZQUN6QixDQUFDO1lBRUQsQ0FBQyxDQUFDLFNBQVMsR0FBRyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzNGLENBQUMsQ0FBQztJQUNOLENBQUMsQ0FBQyxFQUFFLENBQUM7QUFFVCxTQUFnQixXQUFXLENBQUMsSUFBSTtJQUM1QixPQUFPLENBQUMsVUFBVSxNQUFNO1FBQ3BCLFNBQVMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFM0IsU0FBUyxPQUFPO1lBQ1osT0FBTyxDQUFDLE1BQU0sS0FBSyxJQUFJLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUM7UUFDdEUsQ0FBQztRQUVELE9BQU8sT0FBTyxDQUFDO0lBQ25CLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFBO0FBQ1osQ0FBQztBQVZELGtDQVVDO0FBRUQsU0FBZ0IsVUFBVSxDQUFDLElBQUk7SUFDM0IsT0FBTyxDQUFDLFVBQVUsTUFBTTtRQUNwQixTQUFTLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRTNCLFNBQVMsT0FBTztZQUNaLE9BQU8sQ0FBQyxNQUFNLEtBQUssSUFBSSxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDO1FBQ3RFLENBQUM7UUFFRCxPQUFPLE9BQU8sQ0FBQztJQUNuQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQTtBQUNaLENBQUM7QUFWRCxnQ0FVQztBQUVELFNBQWdCLFFBQVEsQ0FBQyxJQUFJO0lBQ3pCLE9BQU8sQ0FBQyxVQUFVLE1BQU07UUFDcEIsU0FBUyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUUzQixTQUFTLE9BQU87WUFDWixPQUFPLENBQUMsTUFBTSxLQUFLLElBQUksSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQztRQUN0RSxDQUFDO1FBRUQsT0FBTyxPQUFPLENBQUM7SUFDbkIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUE7QUFDWixDQUFDO0FBVkQsNEJBVUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUaGVzZSB0d28gbWl4aW5zIGFuZCBleHRlbmRlciBmdW5jdGlvbnMgYXJlIG5lZWRlZCBiZWNhdXNlIGluIHRoZSBicm93c2VyIHdlIG9ubHkgaW5jbHVkZSBzdXBlcnR5cGUgYW5kIHNlbW90dXNcbi8vIGFuZCBzaW5jZSBjbGFzc2VzIHVzZSB0aGVzZSBpbiB0aGVpciBleHRlbmRzIGhpZXJhcmNoeSB0aGV5IG11c3QgYmUgZGVmaW5lZC5cblxuY29uc3QgX19leHRlbmRzID1cbiAgICAodGhpcyAmJiB0aGlzLl9fZXh0ZW5kcykgfHxcbiAgICAoZnVuY3Rpb24gKCkge1xuICAgICAgICBjb25zdCBleHRlbmRTdGF0aWNzID1cbiAgICAgICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fFxuICAgICAgICAgICAgKHtfX3Byb3RvX186IFtdfSBpbnN0YW5jZW9mIEFycmF5ICYmXG4gICAgICAgICAgICAgICAgZnVuY3Rpb24gKGQsIGIpIHtcbiAgICAgICAgICAgICAgICAgICAgZC5fX3Byb3RvX18gPSBiO1xuICAgICAgICAgICAgICAgIH0pIHx8XG4gICAgICAgICAgICBmdW5jdGlvbiAoZCwgYikge1xuICAgICAgICAgICAgICAgIGZvciAodmFyIHAgaW4gYikge1xuICAgICAgICAgICAgICAgICAgICBpZiAoYi5oYXNPd25Qcm9wZXJ0eShwKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZFtwXSA9IGJbcF07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuICAgICAgICByZXR1cm4gZnVuY3Rpb24gKGQsIGIpIHtcbiAgICAgICAgICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7XG5cbiAgICAgICAgICAgIGZ1bmN0aW9uIF9fKCkge1xuICAgICAgICAgICAgICAgIHRoaXMuY29uc3RydWN0b3IgPSBkO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKChfXy5wcm90b3R5cGUgPSBiLnByb3RvdHlwZSksIG5ldyBfXygpKTtcbiAgICAgICAgfTtcbiAgICB9KSgpO1xuXG5leHBvcnQgZnVuY3Rpb24gUGVyc2lzdGFibGUoQmFzZSkge1xuICAgIHJldHVybiAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgICAgICBfX2V4dGVuZHMoY2xhc3NfMSwgX3N1cGVyKTtcblxuICAgICAgICBmdW5jdGlvbiBjbGFzc18xKCkge1xuICAgICAgICAgICAgcmV0dXJuIChfc3VwZXIgIT09IG51bGwgJiYgX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykpIHx8IHRoaXM7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY2xhc3NfMTtcbiAgICB9KShCYXNlKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gUmVtb3RlYWJsZShCYXNlKSB7XG4gICAgcmV0dXJuIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgICAgIF9fZXh0ZW5kcyhjbGFzc18xLCBfc3VwZXIpO1xuXG4gICAgICAgIGZ1bmN0aW9uIGNsYXNzXzEoKSB7XG4gICAgICAgICAgICByZXR1cm4gKF9zdXBlciAhPT0gbnVsbCAmJiBfc3VwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKSkgfHwgdGhpcztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjbGFzc18xO1xuICAgIH0pKEJhc2UpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBCaW5kYWJsZShCYXNlKSB7XG4gICAgcmV0dXJuIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgICAgIF9fZXh0ZW5kcyhjbGFzc18xLCBfc3VwZXIpO1xuXG4gICAgICAgIGZ1bmN0aW9uIGNsYXNzXzEoKSB7XG4gICAgICAgICAgICByZXR1cm4gKF9zdXBlciAhPT0gbnVsbCAmJiBfc3VwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKSkgfHwgdGhpcztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjbGFzc18xO1xuICAgIH0pKEJhc2UpXG59XG5cblxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dXBFeHRlbmRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3NldHVwRXh0ZW5kcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsa0hBQWtIO0FBQ2xILCtFQUErRTs7O0FBRS9FLElBQU0sU0FBUyxHQUNYLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztRQUNHLElBQU0sYUFBYSxHQUNmLE1BQU0sQ0FBQyxjQUFjO1lBQ3JCLENBQUMsRUFBQyxTQUFTLEVBQUUsRUFBRSxFQUFDLFlBQVksS0FBSztnQkFDN0IsVUFBVSxDQUFDLEVBQUUsQ0FBQztvQkFDVixDQUFDLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQztnQkFDcEIsQ0FBQyxDQUFDO1lBQ04sVUFBVSxDQUFDLEVBQUUsQ0FBQztnQkFDVixLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtvQkFDYixJQUFJLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEVBQUU7d0JBQ3JCLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7cUJBQ2Y7aUJBQ0o7WUFDTCxDQUFDLENBQUM7UUFDTixPQUFPLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDakIsYUFBYSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUVwQixTQUFTLEVBQUU7Z0JBQ1AsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUM7WUFDekIsQ0FBQztZQUVELENBQUMsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztRQUMzRixDQUFDLENBQUM7SUFDTixDQUFDLENBQUMsRUFBRSxDQUFDO0FBRVQsU0FBZ0IsV0FBVyxDQUFDLElBQUk7SUFDNUIsT0FBTyxDQUFDLFVBQVUsTUFBTTtRQUNwQixTQUFTLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRTNCLFNBQVMsT0FBTztZQUNaLE9BQU8sQ0FBQyxNQUFNLEtBQUssSUFBSSxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDO1FBQ3RFLENBQUM7UUFFRCxPQUFPLE9BQU8sQ0FBQztJQUNuQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQTtBQUNaLENBQUM7QUFWRCxrQ0FVQztBQUVELFNBQWdCLFVBQVUsQ0FBQyxJQUFJO0lBQzNCLE9BQU8sQ0FBQyxVQUFVLE1BQU07UUFDcEIsU0FBUyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUUzQixTQUFTLE9BQU87WUFDWixPQUFPLENBQUMsTUFBTSxLQUFLLElBQUksSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQztRQUN0RSxDQUFDO1FBRUQsT0FBTyxPQUFPLENBQUM7SUFDbkIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUE7QUFDWixDQUFDO0FBVkQsZ0NBVUM7QUFFRCxTQUFnQixRQUFRLENBQUMsSUFBSTtJQUN6QixPQUFPLENBQUMsVUFBVSxNQUFNO1FBQ3BCLFNBQVMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFM0IsU0FBUyxPQUFPO1lBQ1osT0FBTyxDQUFDLE1BQU0sS0FBSyxJQUFJLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUM7UUFDdEUsQ0FBQztRQUVELE9BQU8sT0FBTyxDQUFDO0lBQ25CLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFBO0FBQ1osQ0FBQztBQVZELDRCQVVDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gVGhlc2UgdHdvIG1peGlucyBhbmQgZXh0ZW5kZXIgZnVuY3Rpb25zIGFyZSBuZWVkZWQgYmVjYXVzZSBpbiB0aGUgYnJvd3NlciB3ZSBvbmx5IGluY2x1ZGUgc3VwZXJ0eXBlIGFuZCBzZW1vdHVzXG4vLyBhbmQgc2luY2UgY2xhc3NlcyB1c2UgdGhlc2UgaW4gdGhlaXIgZXh0ZW5kcyBoaWVyYXJjaHkgdGhleSBtdXN0IGJlIGRlZmluZWQuXG5cbmNvbnN0IF9fZXh0ZW5kcyA9XG4gICAgKHRoaXMgJiYgdGhpcy5fX2V4dGVuZHMpIHx8XG4gICAgKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgY29uc3QgZXh0ZW5kU3RhdGljcyA9XG4gICAgICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHxcbiAgICAgICAgICAgICh7X19wcm90b19fOiBbXX0gaW5zdGFuY2VvZiBBcnJheSAmJlxuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIChkLCBiKSB7XG4gICAgICAgICAgICAgICAgICAgIGQuX19wcm90b19fID0gYjtcbiAgICAgICAgICAgICAgICB9KSB8fFxuICAgICAgICAgICAgZnVuY3Rpb24gKGQsIGIpIHtcbiAgICAgICAgICAgICAgICBmb3IgKHZhciBwIGluIGIpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGIuaGFzT3duUHJvcGVydHkocCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRbcF0gPSBiW3BdO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChkLCBiKSB7XG4gICAgICAgICAgICBleHRlbmRTdGF0aWNzKGQsIGIpO1xuXG4gICAgICAgICAgICBmdW5jdGlvbiBfXygpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnN0cnVjdG9yID0gZDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZC5wcm90b3R5cGUgPSBiID09PSBudWxsID8gT2JqZWN0LmNyZWF0ZShiKSA6ICgoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUpLCBuZXcgX18oKSk7XG4gICAgICAgIH07XG4gICAgfSkoKTtcblxuZXhwb3J0IGZ1bmN0aW9uIFBlcnNpc3RhYmxlKEJhc2UpIHtcbiAgICByZXR1cm4gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICAgICAgX19leHRlbmRzKGNsYXNzXzEsIF9zdXBlcik7XG5cbiAgICAgICAgZnVuY3Rpb24gY2xhc3NfMSgpIHtcbiAgICAgICAgICAgIHJldHVybiAoX3N1cGVyICE9PSBudWxsICYmIF9zdXBlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpKSB8fCB0aGlzO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNsYXNzXzE7XG4gICAgfSkoQmFzZSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFJlbW90ZWFibGUoQmFzZSkge1xuICAgIHJldHVybiAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgICAgICBfX2V4dGVuZHMoY2xhc3NfMSwgX3N1cGVyKTtcblxuICAgICAgICBmdW5jdGlvbiBjbGFzc18xKCkge1xuICAgICAgICAgICAgcmV0dXJuIChfc3VwZXIgIT09IG51bGwgJiYgX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykpIHx8IHRoaXM7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY2xhc3NfMTtcbiAgICB9KShCYXNlKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gQmluZGFibGUoQmFzZSkge1xuICAgIHJldHVybiAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgICAgICBfX2V4dGVuZHMoY2xhc3NfMSwgX3N1cGVyKTtcblxuICAgICAgICBmdW5jdGlvbiBjbGFzc18xKCkge1xuICAgICAgICAgICAgcmV0dXJuIChfc3VwZXIgIT09IG51bGwgJiYgX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykpIHx8IHRoaXM7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY2xhc3NfMTtcbiAgICB9KShCYXNlKVxufVxuXG5cbiJdfQ==

@@ -0,1 +1,4 @@

## 6.0.0
* Upgraded to node 16
* Bumped dependencies to major versions
## 5.0.0

@@ -2,0 +5,0 @@ * Updated knex and pg versions for node 14 upgrade.

{
"name": "@haventech/semotus",
"version": "5.0.0",
"version": "6.0.0-beta.0",
"description": "A subclass of supertype that synchronizes sets of objects.",

@@ -40,20 +40,21 @@ "homepage": "https://github.com/haven-life/amorphic-framework",

"devDependencies": {
"@haventech/supertype": "4.x",
"@types/chai": "^3.4.34",
"@types/express": "^4.17.11",
"@types/mocha": "^2.2.39",
"@types/node": "^14.14.37",
"express": "^4.17.1",
"mock-req-res": "^1.2.0",
"chai": "3.x",
"eslint": "3.7.x",
"mocha": "7.1.1",
"nyc": "^15.0.1",
"sinon": "1.15.x",
"ts-node": "^6.1.0",
"typescript": "3.5.2",
"underscore": "^1.13.2"
"@haventech/supertype": "5.1.0-beta.0",
"@types/chai": "4.3.0",
"@types/express": "4.17.13",
"@types/mocha": "9.1.0",
"@types/node": "16.11.22",
"@types/express-serve-static-core": "4.17.21",
"express": "4.17.2",
"mock-req-res": "1.2.0",
"chai": "4.3.6",
"eslint": "8.8.0",
"mocha": "9.2.0",
"nyc": "15.1.0",
"sinon": "13.0.1",
"ts-node": "10.5.0",
"typescript": "3.9.10",
"underscore": "1.13.2"
},
"peerDependencies": {
"@haventech/supertype": "4.x"
"@haventech/supertype": "5.1.0-beta.0"
},

@@ -60,0 +61,0 @@ "dependencies": {

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Change = void 0;
exports.Change = 'change';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJUeXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWFhLFFBQUEsTUFBTSxHQUFHLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7U3VwZXJ0eXBlfSBmcm9tICdAaGF2ZW50ZWNoL3N1cGVydHlwZSc7XG5pbXBvcnQge1JlcXVlc3QsIFJlc3BvbnNlfSBmcm9tICdleHByZXNzJztcbmV4cG9ydCB0eXBlIEhUVFBPYmpzID0ge3JlcXVlc3Q6IFJlcXVlc3QsIHJlc3BvbnNlOiBSZXNwb25zZX07XG5cbmV4cG9ydCB0eXBlIFN1YnNjcmlwdGlvbiA9IHtcbiAgICByb2xlOiBzdHJpbmc7XG4gICAgbG9nOiB7XG4gICAgICAgIGFycmF5OiBBcnJheUdyb3VwO1xuICAgICAgICBhcnJheURpcnR5OiBBcnJheUdyb3VwO1xuICAgICAgICBjaGFuZ2U6IENoYW5nZUdyb3VwO1xuICAgIH1cbn1cblxuZXhwb3J0IGNvbnN0IENoYW5nZSA9ICdjaGFuZ2UnO1xuZXhwb3J0IHR5cGUgQXJyYXlUeXBlcyA9ICdhcnJheScgfCAnYXJyYXlEaXJ0eSc7XG5leHBvcnQgdHlwZSBFcnJvclR5cGUgPSAnZXJyb3InIHwgJ3JldHJ5JyB8ICdyZXNwb25zZSc7XG5cbmV4cG9ydCB0eXBlIENhbGxDb250ZXh0ID0geyByZXRyaWVzOiBudW1iZXI7IHN0YXJ0VGltZTogRGF0ZSB9O1xuXG5leHBvcnQgdHlwZSBQcm9jZXNzQ2FsbFBheWxvYWQgPSB7XG4gICAgc2Vtb3R1czogU2Vtb3R1cztcbiAgICByZW1vdGVDYWxsOiBSZW1vdGVDYWxsO1xuICAgIGNhbGxDb250ZXh0OiBDYWxsQ29udGV4dDtcbiAgICBzZXNzaW9uOiBTZXNzaW9uO1xuICAgIHN1YnNjcmlwdGlvbklkOiBhbnk7XG4gICAgcmVtb3RlQ2FsbElkOiBhbnk7XG4gICAgcmVzdG9yZVNlc3Npb25DYWxsYmFjaz86IEZ1bmN0aW9uO1xuICAgIEhUVFBPYmpzPzogSFRUUE9ianM7XG59XG5cbi8qKlxuICogIGlkIGlzIHRoZSBpZCBvZiB0aGUgb2JqZWN0ICsgJy8nICsgcHJvcGVydHkuXG4gKiAgRXg6IHRoZXJlIGFyZSAxIFNjaG9vbCB0byBNYW55IFN0dWRlbnRzXG4gKlxuICogIFNjaG9vbCB7XG4gKiAgICAgIHN0dWRlbnRzOiBBcnJheTxTdHVkZW50cz5cbiAqICB9XG4gKlxuICogIEluIHRoaXMgY2FzZSwgb25lIGVudHJ5IHdpdGhpbiB0aGlzIEFycmF5R3JvdXAgbWF5IGJlICdzZXJ2ZXItU2Nob29sLTEvc3R1ZGVudHMnOiBbXCJzZXJ2ZXItU3R1ZGVudC0zXCIsIFwic2VydmVyLVN0dWRlbnQtNVwiXVxuICpcbiAqICBJZiB0aGF0J3MgYWxsIHRoZSBjaGFuZ2VzIHRoZW4gdGhlIEFycmF5R3JvdXAgd291bGQgYmUgeydzZXJ2ZXItU2Nob29sLTEvc3R1ZGVudHMnOiBbXCJzZXJ2ZXItU3R1ZGVudC0zXCIsIFwic2VydmVyLVN0dWRlbnQtNVwiXX1cbiAqL1xuZXhwb3J0IHR5cGUgQXJyYXlHcm91cCA9IHsgW2lkOiBzdHJpbmddOiBBcnJheUNoYW5nZXMgfTtcblxuLyoqXG4gKiBBbiBhcnJheSBvZiBJZCByZWZlcmVuY2VzIHRvIFN1cGVydHlwZSBPYmplY3RzIG9yIHByaW1pdGl2ZSB2YWx1ZXNcbiAqL1xudHlwZSBBcnJheUNoYW5nZXMgPSBBcnJheTxhbnk+O1xuZXhwb3J0IHR5cGUgQ2hhbmdlR3JvdXAgPSB7IFtvYmpJZDogc3RyaW5nXTogUHJvcENoYW5nZXMgfTtcbnR5cGUgUHJvcENoYW5nZXMgPSB7IFtwcm9wOiBzdHJpbmddOiBDaGFuZ2VzIH07XG5cbi8vIENoYW5nZXNbMF0gaXMgb2xkVmFsdWUsIENoYW5nZXNbMV0gaXMgbmV3VmFsdWVcbnR5cGUgb2xkVmFsID0gYW55O1xudHlwZSBuZXdWYWwgPSBhbnk7XG50eXBlIENoYW5nZXMgPSBbb2xkVmFsLCBuZXdWYWxdW107XG5cbmV4cG9ydCB0eXBlIFN1YnNjcmlwdGlvbnMgPSB7IFtrZXk6IHN0cmluZ106IFN1YnNjcmlwdGlvbiB9O1xuXG5leHBvcnQgdHlwZSBSZW1vdGVDYWxsID0ge1xuICAgIHJlbW90ZUNhbGxJZDogYW55O1xuICAgIGlkOiBhbnk7XG4gICAgY2hhbmdlczogc3RyaW5nOyAvLyBUaGUgc3RyaW5nIGlzIG9mIHR5cGUgQ2hhbmdlR3JvdXBcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgc2VxdWVuY2U6IGFueTtcbiAgICB0eXBlOiBhbnk7XG4gICAgc3luYzogYW55O1xuICAgIHZhbHVlOiBhbnk7XG59XG5cbmV4cG9ydCB0eXBlIFNlc3Npb24gPSB7XG4gICAgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9ucztcbiAgICBzZW5kTWVzc2FnZTogU2VuZE1lc3NhZ2U7XG4gICAgc2VuZE1lc3NhZ2VFbmFibGVkOiBib29sZWFuO1xuICAgIHJlbW90ZUNhbGxzOiBBcnJheTxhbnk+O1xuICAgIHBlbmRpbmdSZW1vdGVDYWxsczogYW55O1xuICAgIG5leHRQZW5kaW5nUmVtb3RlQ2FsbElkOiBudW1iZXI7XG4gICAgbmV4dFNhdmVTZXNzaW9uSWQ6IG51bWJlcjtcbiAgICBzYXZlZFNlc3Npb25JZDogbnVtYmVyO1xuICAgIG5leHRTdWJzY3JpcHRpb25JZDogbnVtYmVyO1xuICAgIG9iamVjdHM6IGFueTtcbiAgICBuZXh0T2JqSWQ6IG51bWJlcjtcbiAgICBkaXNwZW5zZU5leHRJZDogbnVsbDsgLy8gbm90IHVzZWQgYW55d2hlcmVcbn1cblxuXG5leHBvcnQgdHlwZSBTZXNzaW9ucyA9IHsgW3Nlc3Npb25JZDogbnVtYmVyXTogU2Vzc2lvbiB9O1xuXG5leHBvcnQgdHlwZSBTZW5kTWVzc2FnZSA9IChtZXNzYWdlOiBhbnkpID0+IHZvaWQ7XG5cbmV4cG9ydCB0eXBlIFNhdmVkU2Vzc2lvbiA9IHtcbiAgICByZXZpc2lvbjogbnVtYmVyO1xuICAgIGRhdGE6IHN0cmluZzsgLy8gU2VyaWFsaXplZCBTZXNzaW9uIGRhdGFcbiAgICBjYWxsQ291bnQ6IG51bWJlcjtcbiAgICByZWZlcmVuY2VkOiBudW1iZXI7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlbW90ZWFibGVDbGFzcyBleHRlbmRzIFN1cGVydHlwZSB7XG4gICAgc3luY1N0YXRlczogQXJyYXk8c3RyaW5nPjtcbiAgICBfX3RvQ2xpZW50X186IGJvb2xlYW47XG4gICAgX190b1NlcnZlcl9fOiBib29sZWFuO1xufVxuXG5leHBvcnQgdHlwZSBDaGFuZ2VTdHJpbmcgPSB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xudHlwZSBQcmVTZXJ2ZXJDYWxsQ2hhbmdlcyA9IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9O1xuXG5leHBvcnQgdHlwZSBDb250cm9sbGVyU3luY1N0YXRlID0ge1xuICAgIHNjb3BlOiAnKycgfCAnKicgfCAnLSdcbiAgICBzdGF0ZTogc3RyaW5nXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVNlbW90dXNDb250cm9sbGVyIHtcbiAgICBfX3RlbXBsYXRlX186IGFueTtcbiAgICBzeW5jU3RhdGU/OiBDb250cm9sbGVyU3luY1N0YXRlXG5cbiAgICAvKipcbiAgICAgKiBAc2VydmVyXG4gICAgICpcbiAgICAgKiBDYWxsYmFjayBhZnRlciBhIHN1Y2Nlc3NmdWwgcmVtb3RlIGZ1bmN0aW9uIGNhbGwgKGp1c3QgdGhlIGFwcGxpY2F0aW9uIG9mIGNoYW5nZXMgYW5kIHRoZSBleGVjdXRpb24gb2YgdGhlIGZ1bmN0aW9uIGNhbGwpXG4gICAgICogTm90ZSB0aGF0IHRoaXMgZG9lc24ndCBtZWFuIHdlIGNhbid0IGVycm9yIG91dCBvbiB0aGlzIG9yIHN1YnNlcXVlbnQgc3RlcHMgb2YgYSByZW1vdGUgY2FsbC5cbiAgICAgKlxuICAgICAqIFdlIGNhbiB1dGlsaXplIHRoaXMgZnVuY3Rpb24gYXMgYSBnZW5lcmljIGZ1bmN0aW9uIGhhbmRsZXIgdG8gcnVuIGFmdGVyIHdlIGhhdmUgc3VjY2Vzc2Z1bGx5IGNhbGxlZCBhIHJlbW90ZSBmdW5jdGlvbi5cbiAgICAgKiBPbmUgc3VjaCB1c2UgbWF5IGJlIHRvIHNlZSB0aGUgY2hhbmdlcyB0aGF0IHdlcmUgYXBwbGllZCBmcm9tIHRoZSBjbGllbnRcbiAgICAgKlxuICAgICAqIE5PVEUgVEhBVCBUSEUgQ0hBTkdFU1RSSU5HIERPRVMgTk9UIElOQ0xVREUgQ0hBTkdFUyBET05FIFdJVEhJTiBUSEUgUkVNT1RFIEZVTkNUSU9OIENBTEwgSVRTRUxGLCBPTkxZIENIQU5HRVMgRlJPTSBUSEUgQ0xJRU5UXG4gICAgICpcbiAgICAgKiBTZWUgcmVtb3RlIGNhbGwgZG9jdW1lbnRhdGlvbiB0byBrbm93IHdoZXJlIHRoaXMgZXhlY3V0ZXMgaW4gdGhlIGxpZmVjeWNsZVxuICAgICAqXG4gICAgICogQHBhcmFtIHtib29sZWFufSBoYXNDaGFuZ2VzIC0gV2hldGhlciBvciBub3Qgd2UgaGF2ZSBhcHBsaWVkIGNsaWVudCBjaGFuZ2VzIG9udG8gdGhlIHNlcnZlcidzIG9iamVjdCBncmFwaFxuICAgICAqIEBwYXJhbSB7Q2FsbENvbnRleHR9IGNhbGxDb250ZXh0IC0gQ29udGV4dCAobnVtYmVyIG9mIHJldHJpZXMgZXRjKVxuICAgICAqIEBwYXJhbSB7Y2hhbmdlU3RyaW5nfSBjaGFuZ2VTdHJpbmcgLSBPYmplY3Qgb2YgQ2hhbmdlcyAtIEtleSBpcyBbQ2xhc3NOYW1lXS5bcHJvcGVydHlOYW1lXSwgVmFsdWUgaXMgW2NoYW5nZWRWYWx1ZV0gZXhhbXBsZTogeydDdXN0b21lci5taWRkbGVuYW1lJzogJ0thcmVuJ30sIFNlZSBhYm92ZSBub3RlXG4gICAgICogQHBhcmFtIEhUVFBPYmpzXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn1cbiAgICAgKiBAbWVtYmVyb2YgQ29udHJvbGxlclxuICAgICAqL1xuICAgIHBvc3RTZXJ2ZXJDYWxsPyhoYXNDaGFuZ2VzOiBib29sZWFuLCBjYWxsQ29udGV4dDogQ2FsbENvbnRleHQsIGNoYW5nZVN0cmluZzogQ2hhbmdlU3RyaW5nLCBIVFRQT2Jqcz86IEhUVFBPYmpzKTogUHJvbWlzZTxhbnk+O1xuXG4gICAgLyoqXG4gICAgICogQHNlcnZlclxuICAgICAqXG4gICAgICogQ2FsbGJhY2sgdG8gaGFuZGxlIGVycm9ycyBvbiBhIHJlbW90ZSBjYWxsLlxuICAgICAqXG4gICAgICogRXhlY3V0ZXMgYWZ0ZXIgZXZlcnkgb3RoZXIgc3RlcCBpbiB0aGUgcmVtb3RlIGNhbGwgcGlwZWxpbmUgKHNlZSByZW1vdGUgY2FsbCBkb2N1bWVudGF0aW9uKVxuICAgICAqIGJ1dCBiZWZvcmUgcmV0cnlpbmcgdGhlIGNhbGwgKG9yIHBhY2thZ2luZyByZXNwb25zZSBhbmQgc2VuZGluZyBiYWNrIHRvIGNsaWVudClcbiAgICAgKlxuICAgICAqIE5PVEUgVEhBVCBUSEUgQ0hBTkdFU1RSSU5HIERPRVMgTk9UIElOQ0xVREUgQ0hBTkdFUyBET05FIFdJVEhJTiBUSEUgUkVNT1RFIEZVTkNUSU9OIENBTEwgSVRTRUxGLCBPTkxZIENIQU5HRVMgRlJPTSBUSEUgQ0xJRU5UXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge0Vycm9yVHlwZX0gZXJyb3JUeXBlIC0gRXJyb3IgdHlwZSBhc3NvY2lhdGVkIChlcnJvciwgcmV0cnksIHJlc3BvbnNlKVxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSByZW1vdGVDYWxsSWQgLSBJZCBmb3IgcmVtb3RlIGNhbGxcbiAgICAgKiBAcGFyYW0ge2V4dGVuZHMgU3VwZXJ0eXBlfSByZW1vdGVPYmogLSBJbnN0YW5jZSBmb3Igd2hpY2ggdGhlIHJlbW90ZSBvYmplY3QgZnVuY3Rpb24gaXMgY2FsbGVkIGZvciAtIEBUT0RPOiByZXZpc2l0IHdoZW4gd2UgY3JlYXRlIGEgcHJvcGVyIHJlbW90ZWFibGUgdHlwZVxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBmdW5jdGlvbk5hbWUgLSBOYW1lIG9mIGZ1bmN0aW9uIGJlaW5nIGNhbGxlZFxuICAgICAqIEBwYXJhbSB7Q2FsbENvbnRleHR9IGNhbGxDb250ZXh0IC0gQ29udGV4dCAobnVtYmVyIG9mIHJldHJpZXMgZXRjKVxuICAgICAqIEBwYXJhbSB7Q2hhbmdlU3RyaW5nfSBjaGFuZ2VTdHJpbmcgLSBPYmplY3Qgb2YgQ2hhbmdlcyAtIEtleSBpcyBbQ2xhc3NOYW1lXS5bcHJvcGVydHlOYW1lXSwgVmFsdWUgaXMgW2NoYW5nZWRWYWx1ZV0gZXhhbXBsZTogeydDdXN0b21lci5taWRkbGVuYW1lJzogJ0thcmVuJ30sIFNlZSBhYm92ZSBub3RlXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn1cbiAgICAgKiBAbWVtYmVyb2YgQ29udHJvbGxlclxuICAgICAqL1xuICAgIHBvc3RTZXJ2ZXJFcnJvckhhbmRsZXI/KGVycm9yVHlwZTogRXJyb3JUeXBlLCByZW1vdGVDYWxsSWQ6IG51bWJlciwgcmVtb3RlT2JqOiBTdXBlcnR5cGUsIGZ1bmN0aW9uTmFtZTogc3RyaW5nLCBjYWxsQ29udGV4dDogQ2FsbENvbnRleHQsIGNoYW5nZVN0cmluZzogQ2hhbmdlU3RyaW5nKTogUHJvbWlzZTx2b2lkPjtcblxuICAgIC8qKlxuICAgICAqIEBzZXJ2ZXJcbiAgICAgKlxuICAgICAqIENhbGxiYWNrIGJlZm9yZSBhIHJlbW90ZSBmdW5jdGlvbiBjYWxsICgxc3Qgc3RlcCBvZiBhIHJlbW90ZSBjYWxsKVxuICAgICAqXG4gICAgICogV2UgY2FuIHV0aWxpemUgdGhpcyBmdW5jdGlvbiBhcyBhIGdlbmVyaWMgZnVuY3Rpb24gaGFuZGxlciB0byBydW4gYmVmb3JlIHdlIGNhbGwgYVxuICAgICAqIHJlbW90ZSBmdW5jdGlvbiBvciBiZWZvcmUgd2UgYXBwbHkgY2hhbmdlcyBmcm9tIHRoZSBjbGllbnQgdG8gdGhlIHNlcnZlclxuICAgICAqXG4gICAgICogV2UgY2FuIGFsc28gdXRpbGl6ZSB0aGlzIGZ1bmN0aW9uIHRvIGRvIGFueSBjb250ZXh0LXNwZWNpZmljIHByZXAgd29yayAvIGxvYWRpbmdcbiAgICAgKiBpZiB0aGlzIGEgc3Vic2VxdWVudCB0cnkgb2YgdGhpcyBmdW5jdGlvbiBkdWUgdG8gYW4gdXBkYXRlIGNvbmZsaWN0LlxuICAgICAqXG4gICAgICogU2VlIHJlbW90ZSBjYWxsIGRvY3VtZW50YXRpb24gdG8ga25vdyB3aGVyZSB0aGlzIGV4ZWN1dGVzIGluIHRoZSBsaWZlY3ljbGVcbiAgICAgKlxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gaGFzQ2hhbmdlcyAtIFdoZXRoZXIgb3Igbm90IHdlIGhhdmUgYXBwbGllZCBjbGllbnQgY2hhbmdlcyBvbnRvIHRoZSBzZXJ2ZXIncyBvYmplY3QgZ3JhcGhcbiAgICAgKiBAcGFyYW0ge1ByZVNlcnZlckNhbGxDaGFuZ2VzfSBjaGFuZ2VzIC0gRGljdGlvbmFyeSBvZiBPYmplY3RzIHRoYXQgaGF2ZSBiZWVuIGNoYW5nZWQgZnJvbSB0aGUgY2xpZW50XG4gICAgICogQHBhcmFtIHtDYWxsQ29udGV4dH0gY2FsbENvbnRleHQgLSBDb250ZXh0IChudW1iZXIgb2YgcmV0cmllcyBldGMpXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbZm9yY2VVcGRhdGVdIC0gT3B0aW9uYWwgcGFyYW1ldGVyIHBhc3NlZCBpbi4gVHJ1ZSBpZiB0aGlzIGlzIGEgcmV0cnkgb2YgdGhlIGNhbGwgYmFzZWQgb24gYW4gdXBkYXRlIGNvbmZsaWN0LiBGYWxzZSAvIHVuZGVmaW5lZCBvdGhlcndpc2UuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZnVuY3Rpb25OYW1lXG4gICAgICogQHBhcmFtIHJlbW90ZUNhbGxcbiAgICAgKiBAcGFyYW0gaXNQdWJsaWNcbiAgICAgKiBAcGFyYW0gSFRUUE9ianNcbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn1cbiAgICAgKiBAbWVtYmVyb2YgQ29udHJvbGxlclxuICAgICAqL1xuICAgIHByZVNlcnZlckNhbGw/KGhhc0NoYW5nZXM6IGJvb2xlYW4sIGNoYW5nZXM6IFByZVNlcnZlckNhbGxDaGFuZ2VzLCBjYWxsQ29udGV4dDogQ2FsbENvbnRleHQsIGZvcmNlVXBkYXRlOiB1bmRlZmluZWQgfCBib29sZWFuLCBmdW5jdGlvbk5hbWU6IHN0cmluZywgcmVtb3RlQ2FsbDogUmVtb3RlQ2FsbCwgaXNQdWJsaWM6IGJvb2xlYW4sIEhUVFBPYmpzPzogSFRUUE9ianMgKTogUHJvbWlzZTxhbnk+O1xuXG4gICAgLyoqXG4gICAgICogVGhpcyBpcyBhIGhhbmRsZXIgdGhhdCB3aWxsIG9ubHkgYmUgdXNlZCBmb3IgdGVzdGluZyBhbmQgZGVidWdnaW5nIHB1cnBvc2VzXG4gICAgICpcbiAgICAgKiBXaGVuIHRoaXMgaXMgdXNlZCwgYWxsb3dzIHVzIHRvIGluc3BlY3QgdGhlIG1lc3NhZ2UgYm9keSBiZWZvcmUgd2Ugc2VuZCBpdCBvdXQgaW4gJ3BhY2thZ2VDaGFuZ2VzJ1xuICAgICAqXG4gICAgICogRE8gTk9UIFVTRSBUSElTIElOIFBST0RVQ1RJT04gQ09ERVxuICAgICAqXG4gICAgICogQHBhcmFtIG1lc3NhZ2VcbiAgICAgKi9cbiAgICBpbnNwZWN0TWVzc2FnZT8obWVzc2FnZSk6IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZW1vdHVzIHtcbiAgICBzZXRTeW5jU3RhdGU6IChzdHIpID0+IHZvaWQ7XG4gICAgc3luY1N0YXRlOiBzdHJpbmc7XG4gICAgZ2V0U3luY1N0YXRlOiAoKSA9PiBhbnk7XG4gICAgbWF4Q2FsbFRpbWU6IG51bWJlcjtcbiAgICBfX2RpY3Rpb25hcnlfXzogYW55O1xuICAgIG1lbVNlc3Npb246IHsgc2Vtb3R1czogeyBjYWxsU3RhcnRUaW1lOiBudW1iZXIgfSB9O1xuICAgIF9pbmplY3RJbnRvVGVtcGxhdGU6ICh0ZW1wbGF0ZSkgPT4gdm9pZDtcbiAgICBzZXJpYWxpemVBbmRHYXJiYWdlQ29sbGVjdDogKCkgPT4gYW55O1xuICAgIGdldE1lc3NhZ2U6IChzZXNzaW9uSWQsIGZvcmNlTWVzc2FnZSkgPT4gYW55O1xuICAgIGNsZWFyUGVuZGluZ0NhbGxzOiAoc2Vzc2lvbklkKSA9PiB2b2lkO1xuICAgIGdldENoYW5nZUdyb3VwOiAodHlwZSwgc3Vic2NyaXB0aW9uSWQpID0+IENoYW5nZUdyb3VwO1xuICAgIGRlbGV0ZUNoYW5nZUdyb3VwOiAodHlwZTogYW55LCBzdWJzY3JpcHRpb25JZDogYW55KSA9PiB2b2lkO1xuICAgIGdldENoYW5nZVN0YXR1czogKCkgPT4gc3RyaW5nO1xuICAgIF9zdGFzaE9iamVjdDogKG9iaiwgdGVtcGxhdGUpID0+IGJvb2xlYW47XG4gICAgc2Vzc2lvbml6ZTogKG9iaiwgcmVmZXJlbmNpbmdPYmopID0+ICh1bmRlZmluZWQgfCBhbnkpO1xuICAgIF9zZXR1cEZ1bmN0aW9uOiAocHJvcGVydHlOYW1lLCBwcm9wZXJ0eVZhbHVlLCByb2xlLCB2YWxpZGF0ZSwgc2VydmVyVmFsaWRhdGlvbiwgaXNQdWJsaWM6IGJvb2xlYW4sIHRlbXBsYXRlKSA9PiAoYW55KTtcbiAgICBfc2V0dXBQcm9wZXJ0eTogKHByb3BlcnR5TmFtZSwgZGVmaW5lUHJvcGVydHksIG9iamVjdFByb3BlcnRpZXMsIGRlZmluZVByb3BlcnRpZXMpID0+IHZvaWQ7XG4gICAgd2l0aG91dENoYW5nZVRyYWNraW5nOiAoY2IpID0+IHZvaWQ7XG4gICAgX2NoYW5nZWRWYWx1ZTogKG9iaiwgcHJvcCwgdmFsdWUpID0+IHZvaWQ7XG4gICAgX3JlZmVyZW5jZWRBcnJheTogKG9iaiwgcHJvcCwgYXJyYXlSZWYsIHNlc3Npb25JZD8pID0+IHZvaWQ7XG4gICAgX2NvbnZlcnRBcnJheVJlZmVyZW5jZXNUb0NoYW5nZXM6ICgpID0+IHZvaWQ7XG4gICAgTWFya0NoYW5nZWRBcnJheVJlZmVyZW5jZXM6ICgpID0+IHZvaWQ7XG4gICAgX2NvbnZlcnRWYWx1ZTogKHZhbHVlKSA9PiAoYW55W10gfCBudWxsKTtcbiAgICBnZXRPYmplY3Q6IChvYmpJZCwgdGVtcGxhdGUpID0+IChhbnkgfCBudWxsKTtcbiAgICBfYXBwbHlDaGFuZ2VzOiAoY2hhbmdlcywgZm9yY2UsIHN1YnNjcmlwdGlvbklkLCBjYWxsQ29udGV4dCkgPT4gKG51bWJlcik7XG4gICAgX2FwcGx5T2JqZWN0Q2hhbmdlczogKGNoYW5nZXMsIHJvbGxiYWNrLCBvYmosIGZvcmNlKSA9PiAoYm9vbGVhbik7XG4gICAgX3ZhbGlkYXRlU2VydmVySW5jb21pbmdQcm9wZXJ0eTogKG9iaiwgcHJvcCwgZGVmaW5lUHJvcGVydHksIG5ld1ZhbHVlKSA9PiAoYm9vbGVhbik7XG4gICAgX2FwcGx5UHJvcGVydHlDaGFuZ2U6IChjaGFuZ2VzLCByb2xsYmFjaywgb2JqLCBwcm9wLCBpeCwgb2xkVmFsdWUsIG5ld1ZhbHVlLCBmb3JjZSkgPT4gKGJvb2xlYW4pO1xuICAgIF9yb2xsYmFjazogKHJvbGxiYWNrKSA9PiB2b2lkO1xuICAgIF9yb2xsYmFja0NoYW5nZXM6ICgpID0+IHZvaWQ7XG4gICAgX2NyZWF0ZUVtcHR5T2JqZWN0OiAodGVtcGxhdGUsIG9iaklkLCBkZWZpbmVQcm9wZXJ0eSwgaXNUcmFuc2llbnQpID0+IGFueTtcbiAgICBpbmplY3Q6ICh0ZW1wbGF0ZSwgaW5qZWN0b3IpID0+IHZvaWQ7XG4gICAgX3F1ZXVlUmVtb3RlQ2FsbDogKG9iaklkLCBmdW5jdGlvbk5hbWUsIGRlZmVycmVkLCBhcmdzKSA9PiB2b2lkO1xuICAgIF9wcm9jZXNzUXVldWU6ICgpID0+IHZvaWQ7XG4gICAgX3RvVHJhbnNwb3J0OiAob2JqKSA9PiBhbnk7XG4gICAgX2Zyb21UcmFuc3BvcnQ6IChvYmopID0+IGFueTtcbiAgICBfZXh0cmFjdEFyZ3VtZW50czogKHJlbW90ZUNhbGwpID0+IGFueTtcbiAgICBfdHJpbUFycmF5OiAoYXJyYXkpID0+IHZvaWQ7XG4gICAgX2RlbGV0ZUNoYW5nZUdyb3VwczogKHR5cGUpID0+IHZvaWQ7XG4gICAgX2dldFN1YnNjcmlwdGlvbnM6IChzZXNzaW9uSWQ/KSA9PiBTdWJzY3JpcHRpb25zIHwgbnVsbDtcbiAgICBfZ2V0U3Vic2NyaXB0aW9uOiAoc3Vic2NyaXB0aW9uSWQ/KSA9PiBTdWJzY3JpcHRpb247XG4gICAgY2xlYW5Qcml2YXRlVmFsdWVzOiAocHJvcCwgbG9nVmFsdWUsIGRlZmluZVByb3BlcnR5KSA9PiAoc3RyaW5nIHwgYW55KTtcbiAgICBSZW1vdGVhYmxlOiAoQmFzZSkgPT4gKCkgPT4gYW55O1xuICAgIEJpbmRhYmxlOiAoQmFzZSkgPT4gKCkgPT4gYW55O1xuICAgIFBlcnNpc3RhYmxlOiAoQmFzZSkgPT4gKCkgPT4gYW55O1xuICAgIGJpbmREZWNvcmF0b3JzOiAob2JqZWN0VGVtcGxhdGU/KSA9PiB2b2lkO1xuICAgIHByb2Nlc3NNZXNzYWdlOiAocmVtb3RlQ2FsbCwgc3Vic2NyaXB0aW9uSWQsIHJlc3RvcmVTZXNzaW9uQ2FsbGJhY2ssIHJlcT86IFJlcXVlc3QsIHJlcz86IFJlc3BvbnNlKSA9PiAodW5kZWZpbmVkIHwgYW55KTtcbiAgICBlbmFibGVTZW5kTWVzc2FnZTogKHZhbHVlLCBtZXNzYWdlQ2FsbGJhY2ssIHNlc3Npb25JZCkgPT4gdm9pZDtcbiAgICBzeW5jU2Vzc2lvbjogKHNlc3Npb25JZCkgPT4gdm9pZDtcbiAgICByZXN0b3JlU2Vzc2lvbjogKHNlc3Npb25JZCwgc2F2ZWRTZXNzaW9uOiBTYXZlZFNlc3Npb24sIHNlbmRNZXNzYWdlOiBTZW5kTWVzc2FnZSkgPT4gYm9vbGVhbjtcbiAgICBzYXZlU2Vzc2lvbjogKHNlc3Npb25JZCkgPT4gU2F2ZWRTZXNzaW9uO1xuICAgIHNldE1pbmltdW1TZXF1ZW5jZTogKG5leHRPYmpJZCkgPT4gdm9pZDtcbiAgICBkZWxldGVTZXNzaW9uOiAoc2Vzc2lvbklkKSA9PiB2b2lkO1xuICAgIGNyZWF0ZVNlc3Npb246IChyb2xlOiBhbnksIHNlbmRNZXNzYWdlOiBTZW5kTWVzc2FnZSwgc2Vzc2lvbklkOiBhbnkpID0+IGFueTtcbiAgICBsb2c6IChsZXZlbCwgZGF0YSkgPT4gdm9pZDtcbiAgICBuZXh0T2JqSWQ6IG51bWJlcjtcbiAgICBtYXhDbGllbnRTZXF1ZW5jZTogbnVtYmVyO1xuICAgIGxvZ0xldmVsOiBudW1iZXI7XG4gICAgX19jb25mbGljdE1vZGVfXzogc3RyaW5nO1xuICAgIF9fY2hhbmdlVHJhY2tpbmdfXzogYm9vbGVhbjtcbiAgICBfdXNlR2V0dGVyc1NldHRlcnM6IGJvb2xlYW47XG4gICAgbG9nZ2VyOiBhbnk7XG4gICAgcm9sZTogYW55O1xuICAgIGN1cnJlbnRTZXNzaW9uOiBhbnk7XG4gICAgc2Vzc2lvbnM/OiBTZXNzaW9ucztcbiAgICBuZXh0U3Vic2NyaXB0aW9uSWQ6IG51bWJlcjtcbiAgICBuZXh0U2Vzc2lvbklkOiBudW1iZXI7XG4gICAgY29udHJvbGxlcjogSVNlbW90dXNDb250cm9sbGVyO1xuICAgIGNoYW5nZVN0cmluZzogc3RyaW5nO1xuXG5cbiAgICBfZ2V0U2Vzc2lvbihfc2lkPzogYW55KTogU2Vzc2lvbjtcblxuICAgIHN1YnNjcmliZShyb2xlOiBhbnkpOiBudW1iZXI7XG5cbiAgICBzZXRTZXNzaW9uKHNlc3Npb25JZDogYW55KTogdm9pZDtcblxuICAgIGdldENoYW5nZXMoc3Vic2NyaXB0aW9uSWQ/OiBhbnkpOiBDaGFuZ2VHcm91cDtcblxuICAgIF9kZWxldGVDaGFuZ2VzKCk6IHZvaWQ7XG5cbiAgICBnZXRQZW5kaW5nQ2FsbENvdW50KHNlc3Npb25JZDogYW55KTogYW55O1xufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJUeXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFhYSxRQUFBLE1BQU0sR0FBRyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1N1cGVydHlwZX0gZnJvbSAnQGhhdmVudGVjaC9zdXBlcnR5cGUnO1xuaW1wb3J0IHtSZXF1ZXN0LCBSZXNwb25zZX0gZnJvbSAnZXhwcmVzcyc7XG5leHBvcnQgdHlwZSBIVFRQT2JqcyA9IHtyZXF1ZXN0OiBSZXF1ZXN0LCByZXNwb25zZTogUmVzcG9uc2V9O1xuXG5leHBvcnQgdHlwZSBTdWJzY3JpcHRpb24gPSB7XG4gICAgcm9sZTogc3RyaW5nO1xuICAgIGxvZzoge1xuICAgICAgICBhcnJheTogQXJyYXlHcm91cDtcbiAgICAgICAgYXJyYXlEaXJ0eTogQXJyYXlHcm91cDtcbiAgICAgICAgY2hhbmdlOiBDaGFuZ2VHcm91cDtcbiAgICB9XG59XG5cbmV4cG9ydCBjb25zdCBDaGFuZ2UgPSAnY2hhbmdlJztcbmV4cG9ydCB0eXBlIEFycmF5VHlwZXMgPSAnYXJyYXknIHwgJ2FycmF5RGlydHknO1xuZXhwb3J0IHR5cGUgRXJyb3JUeXBlID0gJ2Vycm9yJyB8ICdyZXRyeScgfCAncmVzcG9uc2UnO1xuXG5leHBvcnQgdHlwZSBDYWxsQ29udGV4dCA9IHsgcmV0cmllczogbnVtYmVyOyBzdGFydFRpbWU6IERhdGUgfTtcblxuZXhwb3J0IHR5cGUgUHJvY2Vzc0NhbGxQYXlsb2FkID0ge1xuICAgIHNlbW90dXM6IFNlbW90dXM7XG4gICAgcmVtb3RlQ2FsbDogUmVtb3RlQ2FsbDtcbiAgICBjYWxsQ29udGV4dDogQ2FsbENvbnRleHQ7XG4gICAgc2Vzc2lvbjogU2Vzc2lvbjtcbiAgICBzdWJzY3JpcHRpb25JZDogYW55O1xuICAgIHJlbW90ZUNhbGxJZDogYW55O1xuICAgIHJlc3RvcmVTZXNzaW9uQ2FsbGJhY2s/OiBGdW5jdGlvbjtcbiAgICBIVFRQT2Jqcz86IEhUVFBPYmpzO1xufVxuXG4vKipcbiAqICBpZCBpcyB0aGUgaWQgb2YgdGhlIG9iamVjdCArICcvJyArIHByb3BlcnR5LlxuICogIEV4OiB0aGVyZSBhcmUgMSBTY2hvb2wgdG8gTWFueSBTdHVkZW50c1xuICpcbiAqICBTY2hvb2wge1xuICogICAgICBzdHVkZW50czogQXJyYXk8U3R1ZGVudHM+XG4gKiAgfVxuICpcbiAqICBJbiB0aGlzIGNhc2UsIG9uZSBlbnRyeSB3aXRoaW4gdGhpcyBBcnJheUdyb3VwIG1heSBiZSAnc2VydmVyLVNjaG9vbC0xL3N0dWRlbnRzJzogW1wic2VydmVyLVN0dWRlbnQtM1wiLCBcInNlcnZlci1TdHVkZW50LTVcIl1cbiAqXG4gKiAgSWYgdGhhdCdzIGFsbCB0aGUgY2hhbmdlcyB0aGVuIHRoZSBBcnJheUdyb3VwIHdvdWxkIGJlIHsnc2VydmVyLVNjaG9vbC0xL3N0dWRlbnRzJzogW1wic2VydmVyLVN0dWRlbnQtM1wiLCBcInNlcnZlci1TdHVkZW50LTVcIl19XG4gKi9cbmV4cG9ydCB0eXBlIEFycmF5R3JvdXAgPSB7IFtpZDogc3RyaW5nXTogQXJyYXlDaGFuZ2VzIH07XG5cbi8qKlxuICogQW4gYXJyYXkgb2YgSWQgcmVmZXJlbmNlcyB0byBTdXBlcnR5cGUgT2JqZWN0cyBvciBwcmltaXRpdmUgdmFsdWVzXG4gKi9cbnR5cGUgQXJyYXlDaGFuZ2VzID0gQXJyYXk8YW55PjtcbmV4cG9ydCB0eXBlIENoYW5nZUdyb3VwID0geyBbb2JqSWQ6IHN0cmluZ106IFByb3BDaGFuZ2VzIH07XG50eXBlIFByb3BDaGFuZ2VzID0geyBbcHJvcDogc3RyaW5nXTogQ2hhbmdlcyB9O1xuXG4vLyBDaGFuZ2VzWzBdIGlzIG9sZFZhbHVlLCBDaGFuZ2VzWzFdIGlzIG5ld1ZhbHVlXG50eXBlIG9sZFZhbCA9IGFueTtcbnR5cGUgbmV3VmFsID0gYW55O1xudHlwZSBDaGFuZ2VzID0gW29sZFZhbCwgbmV3VmFsXVtdO1xuXG5leHBvcnQgdHlwZSBTdWJzY3JpcHRpb25zID0geyBba2V5OiBzdHJpbmddOiBTdWJzY3JpcHRpb24gfTtcblxuZXhwb3J0IHR5cGUgUmVtb3RlQ2FsbCA9IHtcbiAgICByZW1vdGVDYWxsSWQ6IGFueTtcbiAgICBpZDogYW55O1xuICAgIGNoYW5nZXM6IHN0cmluZzsgLy8gVGhlIHN0cmluZyBpcyBvZiB0eXBlIENoYW5nZUdyb3VwXG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHNlcXVlbmNlOiBhbnk7XG4gICAgdHlwZTogYW55O1xuICAgIHN5bmM6IGFueTtcbiAgICB2YWx1ZTogYW55O1xufVxuXG5leHBvcnQgdHlwZSBTZXNzaW9uID0ge1xuICAgIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbnM7XG4gICAgc2VuZE1lc3NhZ2U6IFNlbmRNZXNzYWdlO1xuICAgIHNlbmRNZXNzYWdlRW5hYmxlZDogYm9vbGVhbjtcbiAgICByZW1vdGVDYWxsczogQXJyYXk8YW55PjtcbiAgICBwZW5kaW5nUmVtb3RlQ2FsbHM6IGFueTtcbiAgICBuZXh0UGVuZGluZ1JlbW90ZUNhbGxJZDogbnVtYmVyO1xuICAgIG5leHRTYXZlU2Vzc2lvbklkOiBudW1iZXI7XG4gICAgc2F2ZWRTZXNzaW9uSWQ6IG51bWJlcjtcbiAgICBuZXh0U3Vic2NyaXB0aW9uSWQ6IG51bWJlcjtcbiAgICBvYmplY3RzOiBhbnk7XG4gICAgbmV4dE9iaklkOiBudW1iZXI7XG4gICAgZGlzcGVuc2VOZXh0SWQ6IG51bGw7IC8vIG5vdCB1c2VkIGFueXdoZXJlXG59XG5cblxuZXhwb3J0IHR5cGUgU2Vzc2lvbnMgPSB7IFtzZXNzaW9uSWQ6IG51bWJlcl06IFNlc3Npb24gfTtcblxuZXhwb3J0IHR5cGUgU2VuZE1lc3NhZ2UgPSAobWVzc2FnZTogYW55KSA9PiB2b2lkO1xuXG5leHBvcnQgdHlwZSBTYXZlZFNlc3Npb24gPSB7XG4gICAgcmV2aXNpb246IG51bWJlcjtcbiAgICBkYXRhOiBzdHJpbmc7IC8vIFNlcmlhbGl6ZWQgU2Vzc2lvbiBkYXRhXG4gICAgY2FsbENvdW50OiBudW1iZXI7XG4gICAgcmVmZXJlbmNlZDogbnVtYmVyO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBSZW1vdGVhYmxlQ2xhc3MgZXh0ZW5kcyBTdXBlcnR5cGUge1xuICAgIHN5bmNTdGF0ZXM6IEFycmF5PHN0cmluZz47XG4gICAgX190b0NsaWVudF9fOiBib29sZWFuO1xuICAgIF9fdG9TZXJ2ZXJfXzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IHR5cGUgQ2hhbmdlU3RyaW5nID0geyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbnR5cGUgUHJlU2VydmVyQ2FsbENoYW5nZXMgPSB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfTtcblxuZXhwb3J0IHR5cGUgQ29udHJvbGxlclN5bmNTdGF0ZSA9IHtcbiAgICBzY29wZTogJysnIHwgJyonIHwgJy0nXG4gICAgc3RhdGU6IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElTZW1vdHVzQ29udHJvbGxlciB7XG4gICAgX190ZW1wbGF0ZV9fOiBhbnk7XG4gICAgc3luY1N0YXRlPzogQ29udHJvbGxlclN5bmNTdGF0ZVxuXG4gICAgLyoqXG4gICAgICogQHNlcnZlclxuICAgICAqXG4gICAgICogQ2FsbGJhY2sgYWZ0ZXIgYSBzdWNjZXNzZnVsIHJlbW90ZSBmdW5jdGlvbiBjYWxsIChqdXN0IHRoZSBhcHBsaWNhdGlvbiBvZiBjaGFuZ2VzIGFuZCB0aGUgZXhlY3V0aW9uIG9mIHRoZSBmdW5jdGlvbiBjYWxsKVxuICAgICAqIE5vdGUgdGhhdCB0aGlzIGRvZXNuJ3QgbWVhbiB3ZSBjYW4ndCBlcnJvciBvdXQgb24gdGhpcyBvciBzdWJzZXF1ZW50IHN0ZXBzIG9mIGEgcmVtb3RlIGNhbGwuXG4gICAgICpcbiAgICAgKiBXZSBjYW4gdXRpbGl6ZSB0aGlzIGZ1bmN0aW9uIGFzIGEgZ2VuZXJpYyBmdW5jdGlvbiBoYW5kbGVyIHRvIHJ1biBhZnRlciB3ZSBoYXZlIHN1Y2Nlc3NmdWxseSBjYWxsZWQgYSByZW1vdGUgZnVuY3Rpb24uXG4gICAgICogT25lIHN1Y2ggdXNlIG1heSBiZSB0byBzZWUgdGhlIGNoYW5nZXMgdGhhdCB3ZXJlIGFwcGxpZWQgZnJvbSB0aGUgY2xpZW50XG4gICAgICpcbiAgICAgKiBOT1RFIFRIQVQgVEhFIENIQU5HRVNUUklORyBET0VTIE5PVCBJTkNMVURFIENIQU5HRVMgRE9ORSBXSVRISU4gVEhFIFJFTU9URSBGVU5DVElPTiBDQUxMIElUU0VMRiwgT05MWSBDSEFOR0VTIEZST00gVEhFIENMSUVOVFxuICAgICAqXG4gICAgICogU2VlIHJlbW90ZSBjYWxsIGRvY3VtZW50YXRpb24gdG8ga25vdyB3aGVyZSB0aGlzIGV4ZWN1dGVzIGluIHRoZSBsaWZlY3ljbGVcbiAgICAgKlxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gaGFzQ2hhbmdlcyAtIFdoZXRoZXIgb3Igbm90IHdlIGhhdmUgYXBwbGllZCBjbGllbnQgY2hhbmdlcyBvbnRvIHRoZSBzZXJ2ZXIncyBvYmplY3QgZ3JhcGhcbiAgICAgKiBAcGFyYW0ge0NhbGxDb250ZXh0fSBjYWxsQ29udGV4dCAtIENvbnRleHQgKG51bWJlciBvZiByZXRyaWVzIGV0YylcbiAgICAgKiBAcGFyYW0ge2NoYW5nZVN0cmluZ30gY2hhbmdlU3RyaW5nIC0gT2JqZWN0IG9mIENoYW5nZXMgLSBLZXkgaXMgW0NsYXNzTmFtZV0uW3Byb3BlcnR5TmFtZV0sIFZhbHVlIGlzIFtjaGFuZ2VkVmFsdWVdIGV4YW1wbGU6IHsnQ3VzdG9tZXIubWlkZGxlbmFtZSc6ICdLYXJlbid9LCBTZWUgYWJvdmUgbm90ZVxuICAgICAqIEBwYXJhbSBIVFRQT2Jqc1xuICAgICAqXG4gICAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59XG4gICAgICogQG1lbWJlcm9mIENvbnRyb2xsZXJcbiAgICAgKi9cbiAgICBwb3N0U2VydmVyQ2FsbD8oaGFzQ2hhbmdlczogYm9vbGVhbiwgY2FsbENvbnRleHQ6IENhbGxDb250ZXh0LCBjaGFuZ2VTdHJpbmc6IENoYW5nZVN0cmluZywgSFRUUE9ianM/OiBIVFRQT2Jqcyk6IFByb21pc2U8YW55PjtcblxuICAgIC8qKlxuICAgICAqIEBzZXJ2ZXJcbiAgICAgKlxuICAgICAqIENhbGxiYWNrIHRvIGhhbmRsZSBlcnJvcnMgb24gYSByZW1vdGUgY2FsbC5cbiAgICAgKlxuICAgICAqIEV4ZWN1dGVzIGFmdGVyIGV2ZXJ5IG90aGVyIHN0ZXAgaW4gdGhlIHJlbW90ZSBjYWxsIHBpcGVsaW5lIChzZWUgcmVtb3RlIGNhbGwgZG9jdW1lbnRhdGlvbilcbiAgICAgKiBidXQgYmVmb3JlIHJldHJ5aW5nIHRoZSBjYWxsIChvciBwYWNrYWdpbmcgcmVzcG9uc2UgYW5kIHNlbmRpbmcgYmFjayB0byBjbGllbnQpXG4gICAgICpcbiAgICAgKiBOT1RFIFRIQVQgVEhFIENIQU5HRVNUUklORyBET0VTIE5PVCBJTkNMVURFIENIQU5HRVMgRE9ORSBXSVRISU4gVEhFIFJFTU9URSBGVU5DVElPTiBDQUxMIElUU0VMRiwgT05MWSBDSEFOR0VTIEZST00gVEhFIENMSUVOVFxuICAgICAqXG4gICAgICogQHBhcmFtIHtFcnJvclR5cGV9IGVycm9yVHlwZSAtIEVycm9yIHR5cGUgYXNzb2NpYXRlZCAoZXJyb3IsIHJldHJ5LCByZXNwb25zZSlcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gcmVtb3RlQ2FsbElkIC0gSWQgZm9yIHJlbW90ZSBjYWxsXG4gICAgICogQHBhcmFtIHtleHRlbmRzIFN1cGVydHlwZX0gcmVtb3RlT2JqIC0gSW5zdGFuY2UgZm9yIHdoaWNoIHRoZSByZW1vdGUgb2JqZWN0IGZ1bmN0aW9uIGlzIGNhbGxlZCBmb3IgLSBAVE9ETzogcmV2aXNpdCB3aGVuIHdlIGNyZWF0ZSBhIHByb3BlciByZW1vdGVhYmxlIHR5cGVcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gZnVuY3Rpb25OYW1lIC0gTmFtZSBvZiBmdW5jdGlvbiBiZWluZyBjYWxsZWRcbiAgICAgKiBAcGFyYW0ge0NhbGxDb250ZXh0fSBjYWxsQ29udGV4dCAtIENvbnRleHQgKG51bWJlciBvZiByZXRyaWVzIGV0YylcbiAgICAgKiBAcGFyYW0ge0NoYW5nZVN0cmluZ30gY2hhbmdlU3RyaW5nIC0gT2JqZWN0IG9mIENoYW5nZXMgLSBLZXkgaXMgW0NsYXNzTmFtZV0uW3Byb3BlcnR5TmFtZV0sIFZhbHVlIGlzIFtjaGFuZ2VkVmFsdWVdIGV4YW1wbGU6IHsnQ3VzdG9tZXIubWlkZGxlbmFtZSc6ICdLYXJlbid9LCBTZWUgYWJvdmUgbm90ZVxuICAgICAqXG4gICAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59XG4gICAgICogQG1lbWJlcm9mIENvbnRyb2xsZXJcbiAgICAgKi9cbiAgICBwb3N0U2VydmVyRXJyb3JIYW5kbGVyPyhlcnJvclR5cGU6IEVycm9yVHlwZSwgcmVtb3RlQ2FsbElkOiBudW1iZXIsIHJlbW90ZU9iajogU3VwZXJ0eXBlLCBmdW5jdGlvbk5hbWU6IHN0cmluZywgY2FsbENvbnRleHQ6IENhbGxDb250ZXh0LCBjaGFuZ2VTdHJpbmc6IENoYW5nZVN0cmluZyk6IFByb21pc2U8dm9pZD47XG5cbiAgICAvKipcbiAgICAgKiBAc2VydmVyXG4gICAgICpcbiAgICAgKiBDYWxsYmFjayBiZWZvcmUgYSByZW1vdGUgZnVuY3Rpb24gY2FsbCAoMXN0IHN0ZXAgb2YgYSByZW1vdGUgY2FsbClcbiAgICAgKlxuICAgICAqIFdlIGNhbiB1dGlsaXplIHRoaXMgZnVuY3Rpb24gYXMgYSBnZW5lcmljIGZ1bmN0aW9uIGhhbmRsZXIgdG8gcnVuIGJlZm9yZSB3ZSBjYWxsIGFcbiAgICAgKiByZW1vdGUgZnVuY3Rpb24gb3IgYmVmb3JlIHdlIGFwcGx5IGNoYW5nZXMgZnJvbSB0aGUgY2xpZW50IHRvIHRoZSBzZXJ2ZXJcbiAgICAgKlxuICAgICAqIFdlIGNhbiBhbHNvIHV0aWxpemUgdGhpcyBmdW5jdGlvbiB0byBkbyBhbnkgY29udGV4dC1zcGVjaWZpYyBwcmVwIHdvcmsgLyBsb2FkaW5nXG4gICAgICogaWYgdGhpcyBhIHN1YnNlcXVlbnQgdHJ5IG9mIHRoaXMgZnVuY3Rpb24gZHVlIHRvIGFuIHVwZGF0ZSBjb25mbGljdC5cbiAgICAgKlxuICAgICAqIFNlZSByZW1vdGUgY2FsbCBkb2N1bWVudGF0aW9uIHRvIGtub3cgd2hlcmUgdGhpcyBleGVjdXRlcyBpbiB0aGUgbGlmZWN5Y2xlXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGhhc0NoYW5nZXMgLSBXaGV0aGVyIG9yIG5vdCB3ZSBoYXZlIGFwcGxpZWQgY2xpZW50IGNoYW5nZXMgb250byB0aGUgc2VydmVyJ3Mgb2JqZWN0IGdyYXBoXG4gICAgICogQHBhcmFtIHtQcmVTZXJ2ZXJDYWxsQ2hhbmdlc30gY2hhbmdlcyAtIERpY3Rpb25hcnkgb2YgT2JqZWN0cyB0aGF0IGhhdmUgYmVlbiBjaGFuZ2VkIGZyb20gdGhlIGNsaWVudFxuICAgICAqIEBwYXJhbSB7Q2FsbENvbnRleHR9IGNhbGxDb250ZXh0IC0gQ29udGV4dCAobnVtYmVyIG9mIHJldHJpZXMgZXRjKVxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2ZvcmNlVXBkYXRlXSAtIE9wdGlvbmFsIHBhcmFtZXRlciBwYXNzZWQgaW4uIFRydWUgaWYgdGhpcyBpcyBhIHJldHJ5IG9mIHRoZSBjYWxsIGJhc2VkIG9uIGFuIHVwZGF0ZSBjb25mbGljdC4gRmFsc2UgLyB1bmRlZmluZWQgb3RoZXJ3aXNlLlxuICAgICAqXG4gICAgICogQHBhcmFtIGZ1bmN0aW9uTmFtZVxuICAgICAqIEBwYXJhbSByZW1vdGVDYWxsXG4gICAgICogQHBhcmFtIGlzUHVibGljXG4gICAgICogQHBhcmFtIEhUVFBPYmpzXG4gICAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59XG4gICAgICogQG1lbWJlcm9mIENvbnRyb2xsZXJcbiAgICAgKi9cbiAgICBwcmVTZXJ2ZXJDYWxsPyhoYXNDaGFuZ2VzOiBib29sZWFuLCBjaGFuZ2VzOiBQcmVTZXJ2ZXJDYWxsQ2hhbmdlcywgY2FsbENvbnRleHQ6IENhbGxDb250ZXh0LCBmb3JjZVVwZGF0ZTogdW5kZWZpbmVkIHwgYm9vbGVhbiwgZnVuY3Rpb25OYW1lOiBzdHJpbmcsIHJlbW90ZUNhbGw6IFJlbW90ZUNhbGwsIGlzUHVibGljOiBib29sZWFuLCBIVFRQT2Jqcz86IEhUVFBPYmpzICk6IFByb21pc2U8YW55PjtcblxuICAgIC8qKlxuICAgICAqIFRoaXMgaXMgYSBoYW5kbGVyIHRoYXQgd2lsbCBvbmx5IGJlIHVzZWQgZm9yIHRlc3RpbmcgYW5kIGRlYnVnZ2luZyBwdXJwb3Nlc1xuICAgICAqXG4gICAgICogV2hlbiB0aGlzIGlzIHVzZWQsIGFsbG93cyB1cyB0byBpbnNwZWN0IHRoZSBtZXNzYWdlIGJvZHkgYmVmb3JlIHdlIHNlbmQgaXQgb3V0IGluICdwYWNrYWdlQ2hhbmdlcydcbiAgICAgKlxuICAgICAqIERPIE5PVCBVU0UgVEhJUyBJTiBQUk9EVUNUSU9OIENPREVcbiAgICAgKlxuICAgICAqIEBwYXJhbSBtZXNzYWdlXG4gICAgICovXG4gICAgaW5zcGVjdE1lc3NhZ2U/KG1lc3NhZ2UpOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2Vtb3R1cyB7XG4gICAgc2V0U3luY1N0YXRlOiAoc3RyKSA9PiB2b2lkO1xuICAgIHN5bmNTdGF0ZTogc3RyaW5nO1xuICAgIGdldFN5bmNTdGF0ZTogKCkgPT4gYW55O1xuICAgIG1heENhbGxUaW1lOiBudW1iZXI7XG4gICAgX19kaWN0aW9uYXJ5X186IGFueTtcbiAgICBtZW1TZXNzaW9uOiB7IHNlbW90dXM6IHsgY2FsbFN0YXJ0VGltZTogbnVtYmVyIH0gfTtcbiAgICBfaW5qZWN0SW50b1RlbXBsYXRlOiAodGVtcGxhdGUpID0+IHZvaWQ7XG4gICAgc2VyaWFsaXplQW5kR2FyYmFnZUNvbGxlY3Q6ICgpID0+IGFueTtcbiAgICBnZXRNZXNzYWdlOiAoc2Vzc2lvbklkLCBmb3JjZU1lc3NhZ2UpID0+IGFueTtcbiAgICBjbGVhclBlbmRpbmdDYWxsczogKHNlc3Npb25JZCkgPT4gdm9pZDtcbiAgICBnZXRDaGFuZ2VHcm91cDogKHR5cGUsIHN1YnNjcmlwdGlvbklkKSA9PiBDaGFuZ2VHcm91cDtcbiAgICBkZWxldGVDaGFuZ2VHcm91cDogKHR5cGU6IGFueSwgc3Vic2NyaXB0aW9uSWQ6IGFueSkgPT4gdm9pZDtcbiAgICBnZXRDaGFuZ2VTdGF0dXM6ICgpID0+IHN0cmluZztcbiAgICBfc3Rhc2hPYmplY3Q6IChvYmosIHRlbXBsYXRlKSA9PiBib29sZWFuO1xuICAgIHNlc3Npb25pemU6IChvYmosIHJlZmVyZW5jaW5nT2JqKSA9PiAodW5kZWZpbmVkIHwgYW55KTtcbiAgICBfc2V0dXBGdW5jdGlvbjogKHByb3BlcnR5TmFtZSwgcHJvcGVydHlWYWx1ZSwgcm9sZSwgdmFsaWRhdGUsIHNlcnZlclZhbGlkYXRpb24sIGlzUHVibGljOiBib29sZWFuLCB0ZW1wbGF0ZSkgPT4gKGFueSk7XG4gICAgX3NldHVwUHJvcGVydHk6IChwcm9wZXJ0eU5hbWUsIGRlZmluZVByb3BlcnR5LCBvYmplY3RQcm9wZXJ0aWVzLCBkZWZpbmVQcm9wZXJ0aWVzKSA9PiB2b2lkO1xuICAgIHdpdGhvdXRDaGFuZ2VUcmFja2luZzogKGNiKSA9PiB2b2lkO1xuICAgIF9jaGFuZ2VkVmFsdWU6IChvYmosIHByb3AsIHZhbHVlKSA9PiB2b2lkO1xuICAgIF9yZWZlcmVuY2VkQXJyYXk6IChvYmosIHByb3AsIGFycmF5UmVmLCBzZXNzaW9uSWQ/KSA9PiB2b2lkO1xuICAgIF9jb252ZXJ0QXJyYXlSZWZlcmVuY2VzVG9DaGFuZ2VzOiAoKSA9PiB2b2lkO1xuICAgIE1hcmtDaGFuZ2VkQXJyYXlSZWZlcmVuY2VzOiAoKSA9PiB2b2lkO1xuICAgIF9jb252ZXJ0VmFsdWU6ICh2YWx1ZSkgPT4gKGFueVtdIHwgbnVsbCk7XG4gICAgZ2V0T2JqZWN0OiAob2JqSWQsIHRlbXBsYXRlKSA9PiAoYW55IHwgbnVsbCk7XG4gICAgX2FwcGx5Q2hhbmdlczogKGNoYW5nZXMsIGZvcmNlLCBzdWJzY3JpcHRpb25JZCwgY2FsbENvbnRleHQpID0+IChudW1iZXIpO1xuICAgIF9hcHBseU9iamVjdENoYW5nZXM6IChjaGFuZ2VzLCByb2xsYmFjaywgb2JqLCBmb3JjZSkgPT4gKGJvb2xlYW4pO1xuICAgIF92YWxpZGF0ZVNlcnZlckluY29taW5nUHJvcGVydHk6IChvYmosIHByb3AsIGRlZmluZVByb3BlcnR5LCBuZXdWYWx1ZSkgPT4gKGJvb2xlYW4pO1xuICAgIF9hcHBseVByb3BlcnR5Q2hhbmdlOiAoY2hhbmdlcywgcm9sbGJhY2ssIG9iaiwgcHJvcCwgaXgsIG9sZFZhbHVlLCBuZXdWYWx1ZSwgZm9yY2UpID0+IChib29sZWFuKTtcbiAgICBfcm9sbGJhY2s6IChyb2xsYmFjaykgPT4gdm9pZDtcbiAgICBfcm9sbGJhY2tDaGFuZ2VzOiAoKSA9PiB2b2lkO1xuICAgIF9jcmVhdGVFbXB0eU9iamVjdDogKHRlbXBsYXRlLCBvYmpJZCwgZGVmaW5lUHJvcGVydHksIGlzVHJhbnNpZW50KSA9PiBhbnk7XG4gICAgaW5qZWN0OiAodGVtcGxhdGUsIGluamVjdG9yKSA9PiB2b2lkO1xuICAgIF9xdWV1ZVJlbW90ZUNhbGw6IChvYmpJZCwgZnVuY3Rpb25OYW1lLCBkZWZlcnJlZCwgYXJncykgPT4gdm9pZDtcbiAgICBfcHJvY2Vzc1F1ZXVlOiAoKSA9PiB2b2lkO1xuICAgIF90b1RyYW5zcG9ydDogKG9iaikgPT4gYW55O1xuICAgIF9mcm9tVHJhbnNwb3J0OiAob2JqKSA9PiBhbnk7XG4gICAgX2V4dHJhY3RBcmd1bWVudHM6IChyZW1vdGVDYWxsKSA9PiBhbnk7XG4gICAgX3RyaW1BcnJheTogKGFycmF5KSA9PiB2b2lkO1xuICAgIF9kZWxldGVDaGFuZ2VHcm91cHM6ICh0eXBlKSA9PiB2b2lkO1xuICAgIF9nZXRTdWJzY3JpcHRpb25zOiAoc2Vzc2lvbklkPykgPT4gU3Vic2NyaXB0aW9ucyB8IG51bGw7XG4gICAgX2dldFN1YnNjcmlwdGlvbjogKHN1YnNjcmlwdGlvbklkPykgPT4gU3Vic2NyaXB0aW9uO1xuICAgIGNsZWFuUHJpdmF0ZVZhbHVlczogKHByb3AsIGxvZ1ZhbHVlLCBkZWZpbmVQcm9wZXJ0eSkgPT4gKHN0cmluZyB8IGFueSk7XG4gICAgUmVtb3RlYWJsZTogKEJhc2UpID0+ICgpID0+IGFueTtcbiAgICBCaW5kYWJsZTogKEJhc2UpID0+ICgpID0+IGFueTtcbiAgICBQZXJzaXN0YWJsZTogKEJhc2UpID0+ICgpID0+IGFueTtcbiAgICBiaW5kRGVjb3JhdG9yczogKG9iamVjdFRlbXBsYXRlPykgPT4gdm9pZDtcbiAgICBwcm9jZXNzTWVzc2FnZTogKHJlbW90ZUNhbGwsIHN1YnNjcmlwdGlvbklkLCByZXN0b3JlU2Vzc2lvbkNhbGxiYWNrLCByZXE/OiBSZXF1ZXN0LCByZXM/OiBSZXNwb25zZSkgPT4gKHVuZGVmaW5lZCB8IGFueSk7XG4gICAgZW5hYmxlU2VuZE1lc3NhZ2U6ICh2YWx1ZSwgbWVzc2FnZUNhbGxiYWNrLCBzZXNzaW9uSWQpID0+IHZvaWQ7XG4gICAgc3luY1Nlc3Npb246IChzZXNzaW9uSWQpID0+IHZvaWQ7XG4gICAgcmVzdG9yZVNlc3Npb246IChzZXNzaW9uSWQsIHNhdmVkU2Vzc2lvbjogU2F2ZWRTZXNzaW9uLCBzZW5kTWVzc2FnZTogU2VuZE1lc3NhZ2UpID0+IGJvb2xlYW47XG4gICAgc2F2ZVNlc3Npb246IChzZXNzaW9uSWQpID0+IFNhdmVkU2Vzc2lvbjtcbiAgICBzZXRNaW5pbXVtU2VxdWVuY2U6IChuZXh0T2JqSWQpID0+IHZvaWQ7XG4gICAgZGVsZXRlU2Vzc2lvbjogKHNlc3Npb25JZCkgPT4gdm9pZDtcbiAgICBjcmVhdGVTZXNzaW9uOiAocm9sZTogYW55LCBzZW5kTWVzc2FnZTogU2VuZE1lc3NhZ2UsIHNlc3Npb25JZDogYW55KSA9PiBhbnk7XG4gICAgbG9nOiAobGV2ZWwsIGRhdGEpID0+IHZvaWQ7XG4gICAgbmV4dE9iaklkOiBudW1iZXI7XG4gICAgbWF4Q2xpZW50U2VxdWVuY2U6IG51bWJlcjtcbiAgICBsb2dMZXZlbDogbnVtYmVyO1xuICAgIF9fY29uZmxpY3RNb2RlX186IHN0cmluZztcbiAgICBfX2NoYW5nZVRyYWNraW5nX186IGJvb2xlYW47XG4gICAgX3VzZUdldHRlcnNTZXR0ZXJzOiBib29sZWFuO1xuICAgIGxvZ2dlcjogYW55O1xuICAgIHJvbGU6IGFueTtcbiAgICBjdXJyZW50U2Vzc2lvbjogYW55O1xuICAgIHNlc3Npb25zPzogU2Vzc2lvbnM7XG4gICAgbmV4dFN1YnNjcmlwdGlvbklkOiBudW1iZXI7XG4gICAgbmV4dFNlc3Npb25JZDogbnVtYmVyO1xuICAgIGNvbnRyb2xsZXI6IElTZW1vdHVzQ29udHJvbGxlcjtcbiAgICBjaGFuZ2VTdHJpbmc6IHN0cmluZztcblxuXG4gICAgX2dldFNlc3Npb24oX3NpZD86IGFueSk6IFNlc3Npb247XG5cbiAgICBzdWJzY3JpYmUocm9sZTogYW55KTogbnVtYmVyO1xuXG4gICAgc2V0U2Vzc2lvbihzZXNzaW9uSWQ6IGFueSk6IHZvaWQ7XG5cbiAgICBnZXRDaGFuZ2VzKHN1YnNjcmlwdGlvbklkPzogYW55KTogQ2hhbmdlR3JvdXA7XG5cbiAgICBfZGVsZXRlQ2hhbmdlcygpOiB2b2lkO1xuXG4gICAgZ2V0UGVuZGluZ0NhbGxDb3VudChzZXNzaW9uSWQ6IGFueSk6IGFueTtcbn1cbiJdfQ==
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