appium-remote-debugger 9.1.2 → 9.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -13
- package/build/index.js +2 -4
- package/build/lib/atoms.js +2 -4
- package/build/lib/logger.js +2 -4
- package/build/lib/mixins/connect.js +2 -4
- package/build/lib/mixins/events.js +2 -4
- package/build/lib/mixins/execute.js +2 -4
- package/build/lib/mixins/index.js +2 -4
- package/build/lib/mixins/message-handlers.js +2 -4
- package/build/lib/mixins/navigate.js +2 -4
- package/build/lib/protocol/index.js +2 -4
- package/build/lib/remote-debugger-real-device.js +2 -4
- package/build/lib/remote-debugger.js +2 -4
- package/build/lib/rpc/index.js +2 -4
- package/build/lib/rpc/remote-messages.js +2 -4
- package/build/lib/rpc/rpc-client-real-device.js +2 -4
- package/build/lib/rpc/rpc-client-simulator.js +2 -4
- package/build/lib/rpc/rpc-client.js +2 -4
- package/build/lib/rpc/rpc-message-handler.js +2 -4
- package/build/lib/utils.js +2 -4
- package/package.json +46 -23
- package/scripts/build-atoms.js +6 -0
- package/scripts/build-selenium.js +3 -0
- package/scripts/common.js +194 -0
- package/scripts/import-atoms.js +3 -0
|
@@ -286,7 +286,5 @@ for (const [name, event] of _lodash.default.toPairs(_mixins.events)) {
|
|
|
286
286
|
}
|
|
287
287
|
|
|
288
288
|
var _default = RemoteDebugger;
|
|
289
|
-
exports.default = _default;
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL3JlbW90ZS1kZWJ1Z2dlci5qcyIsIm5hbWVzIjpbIlZFUlNJT04iLCJyZXF1aXJlIiwicGF0aCIsInJlc29sdmUiLCJfX2Rpcm5hbWUiLCJ2ZXJzaW9uIiwiaWduIiwiUkVNT1RFX0RFQlVHR0VSX1BPUlQiLCJTQUZBUklfQlVORExFX0lEIiwiUlBDX1JFU1BPTlNFX1RJTUVPVVRfTVMiLCJQQUdFX1JFQURZX1RJTUVPVVQiLCJHQVJCQUdFX0NPTExFQ1RfVElNRU9VVCIsIlJlbW90ZURlYnVnZ2VyIiwiRXZlbnRFbWl0dGVyIiwiY29uc3RydWN0b3IiLCJvcHRzIiwibG9nIiwiaW5mbyIsImJ1bmRsZUlkIiwiYWRkaXRpb25hbEJ1bmRsZUlkcyIsInBsYXRmb3JtVmVyc2lvbiIsImlzU2FmYXJpIiwiaW5jbHVkZVNhZmFyaSIsInVzZU5ld1NhZmFyaSIsInBhZ2VMb2FkTXMiLCJob3N0IiwicG9ydCIsInNvY2tldFBhdGgiLCJwYWdlUmVhZHlUaW1lb3V0IiwicmVtb3RlRGVidWdQcm94eSIsImdhcmJhZ2VDb2xsZWN0T25FeGVjdXRlIiwibG9nRnVsbFJlc3BvbnNlIiwibG9nQWxsQ29tbXVuaWNhdGlvbiIsImxvZ0FsbENvbW11bmljYXRpb25IZXhEdW1wIiwid2ViSW5zcGVjdG9yTWF4RnJhbWVMZW5ndGgiLCJzb2NrZXRDaHVua1NpemUiLCJmdWxsUGFnZUluaXRpYWxpemF0aW9uIiwiZGVidWciLCJfIiwiaXNOaWwiLCJpc0ludGVnZXIiLCJfbG9jayIsIkFzeW5jTG9jayIsInNldHVwIiwiYXBwRGljdCIsImFwcElkS2V5IiwicGFnZUlkS2V5IiwicGFnZUxvYWRpbmciLCJfbmF2aWdhdGluZ1RvUGFnZSIsImFsbG93TmF2aWdhdGlvbldpdGhvdXRSZWxvYWQiLCJycGNDbGllbnQiLCJfY2xpZW50RXZlbnRMaXN0ZW5lcnMiLCJ0ZWFyZG93biIsInJlbW92ZUFsbExpc3RlbmVycyIsIkVWRU5UX1BBR0VfQ0hBTkdFIiwiRVZFTlRfRElTQ09OTkVDVCIsImluaXRScGNDbGllbnQiLCJScGNDbGllbnRTaW11bGF0b3IiLCJtZXNzYWdlUHJveHkiLCJpc0Nvbm5lY3RlZCIsImxhdW5jaFNhZmFyaSIsInNlbmQiLCJzdGFydFRpbWVsaW5lIiwiZm4iLCJvbiIsInN0b3BUaW1lbGluZSIsImFkZENsaWVudEV2ZW50TGlzdGVuZXIiLCJldmVudE5hbWUiLCJsaXN0ZW5lciIsInB1c2giLCJyZW1vdmVDbGllbnRFdmVudExpc3RlbmVyIiwib2ZmIiwic3RhcnRDb25zb2xlIiwic3RvcENvbnNvbGUiLCJzdGFydE5ldHdvcmsiLCJzdG9wTmV0d29yayIsImFsbG93IiwiX2FsbG93TmF2aWdhdGlvbldpdGhvdXRSZWxvYWQiLCJnZXRDb29raWVzIiwidXJscyIsImRlbGV0ZUNvb2tpZSIsImNvb2tpZU5hbWUiLCJ1cmwiLCJnYXJiYWdlQ29sbGVjdCIsInRpbWVvdXRNcyIsImNoZWNrUGFyYW1zIiwiZXJyIiwiQiIsInRpbWVvdXQiLCJ0aGVuIiwiZ2NTdWNjZXNzIiwiY2F0Y2giLCJnY0Vycm9yIiwiVGltZW91dEVycm9yIiwibWVzc2FnZSIsInVzZUFwcERpY3RMb2NrIiwiYWNxdWlyZSIsInNraXBwZWRBcHBzIiwiX3NraXBwZWRBcHBzIiwibmFtZSIsInRvUGFpcnMiLCJtaXhpbnMiLCJwcm90b3R5cGUiLCJldmVudCIsImV2ZW50cyJdLCJzb3VyY2VSb290IjoiLi4vLi4iLCJzb3VyY2VzIjpbImxpYi9yZW1vdGUtZGVidWdnZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnZXZlbnRzJztcbmltcG9ydCBsb2cgZnJvbSAnLi9sb2dnZXInO1xuaW1wb3J0IHsgUnBjQ2xpZW50U2ltdWxhdG9yIH0gZnJvbSAnLi9ycGMnO1xuaW1wb3J0IHsgY2hlY2tQYXJhbXMgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IG1peGlucywgZXZlbnRzIH0gZnJvbSAnLi9taXhpbnMnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBCIGZyb20gJ2JsdWViaXJkJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IEFzeW5jTG9jayBmcm9tICdhc3luYy1sb2NrJztcblxuXG5sZXQgVkVSU0lPTjtcbnRyeSB7XG4gIFZFUlNJT04gPSByZXF1aXJlKHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsICcuLicsICcuLicsICdwYWNrYWdlLmpzb24nKSkudmVyc2lvbjtcbn0gY2F0Y2ggKGlnbikge31cblxuY29uc3QgUkVNT1RFX0RFQlVHR0VSX1BPUlQgPSAyNzc1MztcbmNvbnN0IFNBRkFSSV9CVU5ETEVfSUQgPSAnY29tLmFwcGxlLm1vYmlsZXNhZmFyaSc7XG5cbi8qIEhvdyBtYW55IG1pbGxpc2Vjb25kcyB0byB3YWl0IGZvciB3ZWJraXQgdG8gcmV0dXJuIGEgcmVzcG9uc2UgYmVmb3JlIHRpbWluZyBvdXQgKi9cbmNvbnN0IFJQQ19SRVNQT05TRV9USU1FT1VUX01TID0gNTAwMDtcblxuY29uc3QgUEFHRV9SRUFEWV9USU1FT1VUID0gNTAwMDtcblxuY29uc3QgR0FSQkFHRV9DT0xMRUNUX1RJTUVPVVQgPSA1MDAwO1xuXG5cbmNsYXNzIFJlbW90ZURlYnVnZ2VyIGV4dGVuZHMgRXZlbnRFbWl0dGVyIHtcbiAgLypcbiAgICogVGhlIGNvbnN0cnVjdG9yIHRha2VzIGFuIG9wdHMgaGFzaCB3aXRoIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllczpcbiAgICogICAtIGJ1bmRsZUlkIC0gaWQgb2YgdGhlIGFwcCBiZWluZyBjb25uZWN0ZWQgdG9cbiAgICogICAtIGFkZGl0aW9uYWxCdW5kbGVJZHMgLSBhcnJheSBvZiBwb3NzaWJsZSBidW5kbGUgaWRzIHRoYXQgdGhlIGluc3BlY3RvclxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdWxkIHJldHVyblxuICAgKiAgIC0gcGxhdGZvcm1WZXJzaW9uIC0gdmVyc2lvbiBvZiBpT1NcbiAgICogICAtIHVzZU5ld1NhZmFyaSAtIGZvciB3ZWIgaW5zcGVjdG9yLCB3aGV0aGVyIHRoaXMgaXMgYSBuZXcgU2FmYXJpIGluc3RhbmNlXG4gICAqICAgLSBwYWdlTG9hZE1zIC0gdGhlIHRpbWUsIGluIG1zLCB0aGF0IHNob3VsZCBiZSB3YWl0ZWQgZm9yIHBhZ2UgbG9hZGluZ1xuICAgKiAgIC0gaG9zdCAtIHRoZSByZW1vdGUgZGVidWdnZXIncyBob3N0IGFkZHJlc3NcbiAgICogICAtIHBvcnQgLSB0aGUgcmVtb3RlIGRlYnVnZ2VyIHBvcnQgdGhyb3VnaCB3aGljaCB0byBjb21tdW5pY2F0ZVxuICAgKiAgIC0gbG9nQWxsQ29tbXVuaWNhdGlvbiAtIGxvZyBwbGlzdHMgc2VudCBhbmQgcmVjZWl2ZWQgZnJvbSBXZWIgSW5zcGVjdG9yXG4gICAqICAgLSBsb2dBbGxDb21tdW5pY2F0aW9uSGV4RHVtcCAtIGxvZyBjb21tdW5pY2F0aW9uIGZyb20gV2ViIEluc3BlY3RvciBhcyBoZXggZHVtcFxuICAgKiAgIC0gc29ja2V0Q2h1bmtTaXplIC0gc2l6ZSwgaW4gYnl0ZXMsIG9mIGNodW5rcyBvZiBkYXRhIHNlbnQgdG8gV2ViIEluc3BlY3RvciAocmVhbCBkZXZpY2Ugb25seSlcbiAgICogICAtIHdlYkluc3BlY3Rvck1heEZyYW1lTGVuZ3RoIC0gVGhlIG1heGltdW0gc2l6ZSBpbiBieXRlcyBvZiBhIHNpbmdsZSBkYXRhIGZyYW1lXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBkZXZpY2UgY29tbXVuaWNhdGlvbiBwcm90b2NvbFxuICAgKi9cbiAgY29uc3RydWN0b3IgKG9wdHMgPSB7fSkge1xuICAgIHN1cGVyKCk7XG5cbiAgICBpZiAoVkVSU0lPTikge1xuICAgICAgbG9nLmluZm8oYFJlbW90ZSBEZWJ1Z2dlciB2ZXJzaW9uICR7VkVSU0lPTn1gKTtcbiAgICB9XG5cbiAgICBjb25zdCB7XG4gICAgICBidW5kbGVJZCxcbiAgICAgIGFkZGl0aW9uYWxCdW5kbGVJZHMgPSBbXSxcbiAgICAgIHBsYXRmb3JtVmVyc2lvbixcbiAgICAgIGlzU2FmYXJpID0gdHJ1ZSxcbiAgICAgIGluY2x1ZGVTYWZhcmkgPSBmYWxzZSxcbiAgICAgIHVzZU5ld1NhZmFyaSA9IGZhbHNlLFxuICAgICAgcGFnZUxvYWRNcyxcbiAgICAgIGhvc3QsXG4gICAgICBwb3J0ID0gUkVNT1RFX0RFQlVHR0VSX1BPUlQsXG4gICAgICBzb2NrZXRQYXRoLFxuICAgICAgcGFnZVJlYWR5VGltZW91dCA9IFBBR0VfUkVBRFlfVElNRU9VVCxcbiAgICAgIHJlbW90ZURlYnVnUHJveHksXG4gICAgICBnYXJiYWdlQ29sbGVjdE9uRXhlY3V0ZSA9IGZhbHNlLFxuICAgICAgbG9nRnVsbFJlc3BvbnNlID0gZmFsc2UsXG4gICAgICBsb2dBbGxDb21tdW5pY2F0aW9uID0gZmFsc2UsXG4gICAgICBsb2dBbGxDb21tdW5pY2F0aW9uSGV4RHVtcCA9IGZhbHNlLFxuICAgICAgd2ViSW5zcGVjdG9yTWF4RnJhbWVMZW5ndGgsXG4gICAgICBzb2NrZXRDaHVua1NpemUsXG4gICAgICBmdWxsUGFnZUluaXRpYWxpemF0aW9uLFxuICAgIH0gPSBvcHRzO1xuXG4gICAgdGhpcy5idW5kbGVJZCA9IGJ1bmRsZUlkO1xuICAgIHRoaXMuYWRkaXRpb25hbEJ1bmRsZUlkcyA9IGFkZGl0aW9uYWxCdW5kbGVJZHM7XG4gICAgdGhpcy5wbGF0Zm9ybVZlcnNpb24gPSBwbGF0Zm9ybVZlcnNpb247XG4gICAgdGhpcy5pc1NhZmFyaSA9IGlzU2FmYXJpO1xuICAgIHRoaXMuaW5jbHVkZVNhZmFyaSA9IGluY2x1ZGVTYWZhcmk7XG4gICAgdGhpcy51c2VOZXdTYWZhcmkgPSB1c2VOZXdTYWZhcmk7XG4gICAgdGhpcy5wYWdlTG9hZE1zID0gcGFnZUxvYWRNcztcbiAgICBsb2cuZGVidWcoYHVzZU5ld1NhZmFyaSAtLT4gJHt0aGlzLnVzZU5ld1NhZmFyaX1gKTtcblxuICAgIHRoaXMuZ2FyYmFnZUNvbGxlY3RPbkV4ZWN1dGUgPSBnYXJiYWdlQ29sbGVjdE9uRXhlY3V0ZTtcblxuICAgIHRoaXMuaG9zdCA9IGhvc3Q7XG4gICAgdGhpcy5wb3J0ID0gcG9ydDtcbiAgICB0aGlzLnNvY2tldFBhdGggPSBzb2NrZXRQYXRoO1xuICAgIHRoaXMucmVtb3RlRGVidWdQcm94eSA9IHJlbW90ZURlYnVnUHJveHk7XG4gICAgdGhpcy5wYWdlUmVhZHlUaW1lb3V0ID0gcGFnZVJlYWR5VGltZW91dDtcblxuICAgIHRoaXMubG9nQWxsQ29tbXVuaWNhdGlvbiA9IF8uaXNOaWwobG9nQWxsQ29tbXVuaWNhdGlvbikgPyAhIWxvZ0Z1bGxSZXNwb25zZSA6ICEhbG9nQWxsQ29tbXVuaWNhdGlvbjtcbiAgICB0aGlzLmxvZ0FsbENvbW11bmljYXRpb25IZXhEdW1wID0gbG9nQWxsQ29tbXVuaWNhdGlvbkhleER1bXA7XG4gICAgdGhpcy5zb2NrZXRDaHVua1NpemUgPSBzb2NrZXRDaHVua1NpemU7XG5cbiAgICBpZiAoXy5pc0ludGVnZXIod2ViSW5zcGVjdG9yTWF4RnJhbWVMZW5ndGgpKSB7XG4gICAgICB0aGlzLndlYkluc3BlY3Rvck1heEZyYW1lTGVuZ3RoID0gd2ViSW5zcGVjdG9yTWF4RnJhbWVMZW5ndGg7XG4gICAgfVxuXG4gICAgdGhpcy5mdWxsUGFnZUluaXRpYWxpemF0aW9uID0gZnVsbFBhZ2VJbml0aWFsaXphdGlvbjtcblxuICAgIHRoaXMuX2xvY2sgPSBuZXcgQXN5bmNMb2NrKCk7XG4gIH1cblxuICBzZXR1cCAoKSB7XG4gICAgLy8gYXBwIGhhbmRsaW5nIGNvbmZpZ3VyYXRpb25cbiAgICB0aGlzLmFwcERpY3QgPSB7fTtcbiAgICB0aGlzLmFwcElkS2V5ID0gbnVsbDtcbiAgICB0aGlzLnBhZ2VJZEtleSA9IG51bGw7XG4gICAgdGhpcy5wYWdlTG9hZGluZyA9IGZhbHNlO1xuICAgIHRoaXMuX25hdmlnYXRpbmdUb1BhZ2UgPSBmYWxzZTtcbiAgICB0aGlzLmFsbG93TmF2aWdhdGlvbldpdGhvdXRSZWxvYWQgPSBmYWxzZTtcblxuICAgIHRoaXMucnBjQ2xpZW50ID0gbnVsbDtcbiAgICB0aGlzLl9jbGllbnRFdmVudExpc3RlbmVycyA9IHt9O1xuICB9XG5cbiAgdGVhcmRvd24gKCkge1xuICAgIGxvZy5kZWJ1ZygnQ2xlYW5pbmcgdXAgbGlzdGVuZXJzJyk7XG5cbiAgICB0aGlzLmFwcERpY3QgPSB7fTtcbiAgICB0aGlzLmFwcElkS2V5ID0gbnVsbDtcbiAgICB0aGlzLnBhZ2VJZEtleSA9IG51bGw7XG4gICAgdGhpcy5wYWdlTG9hZGluZyA9IGZhbHNlO1xuXG4gICAgdGhpcy5ycGNDbGllbnQgPSBudWxsO1xuXG4gICAgdGhpcy5yZW1vdmVBbGxMaXN0ZW5lcnMoUmVtb3RlRGVidWdnZXIuRVZFTlRfUEFHRV9DSEFOR0UpO1xuICAgIHRoaXMucmVtb3ZlQWxsTGlzdGVuZXJzKFJlbW90ZURlYnVnZ2VyLkVWRU5UX0RJU0NPTk5FQ1QpO1xuICB9XG5cbiAgaW5pdFJwY0NsaWVudCAoKSB7XG4gICAgdGhpcy5ycGNDbGllbnQgPSBuZXcgUnBjQ2xpZW50U2ltdWxhdG9yKHtcbiAgICAgIGJ1bmRsZUlkOiB0aGlzLmJ1bmRsZUlkLFxuICAgICAgcGxhdGZvcm1WZXJzaW9uOiB0aGlzLnBsYXRmb3JtVmVyc2lvbixcbiAgICAgIGlzU2FmYXJpOiB0aGlzLmlzU2FmYXJpLFxuICAgICAgaG9zdDogdGhpcy5ob3N0LFxuICAgICAgcG9ydDogdGhpcy5wb3J0LFxuICAgICAgc29ja2V0UGF0aDogdGhpcy5zb2NrZXRQYXRoLFxuICAgICAgbWVzc2FnZVByb3h5OiB0aGlzLnJlbW90ZURlYnVnUHJveHksXG4gICAgICBsb2dBbGxDb21tdW5pY2F0aW9uOiB0aGlzLmxvZ0FsbENvbW11bmljYXRpb24sXG4gICAgICBsb2dBbGxDb21tdW5pY2F0aW9uSGV4RHVtcDogdGhpcy5sb2dBbGxDb21tdW5pY2F0aW9uSGV4RHVtcCxcbiAgICAgIGZ1bGxQYWdlSW5pdGlhbGl6YXRpb246IHRoaXMuZnVsbFBhZ2VJbml0aWFsaXphdGlvbixcbiAgICAgIHdlYkluc3BlY3Rvck1heEZyYW1lTGVuZ3RoOiB0aGlzLndlYkluc3BlY3Rvck1heEZyYW1lTGVuZ3RoLFxuICAgIH0pO1xuICB9XG5cbiAgZ2V0IGlzQ29ubmVjdGVkICgpIHtcbiAgICByZXR1cm4gISF0aGlzLnJwY0NsaWVudD8uaXNDb25uZWN0ZWQ7XG4gIH1cblxuICBhc3luYyBsYXVuY2hTYWZhcmkgKCkge1xuICAgIGF3YWl0IHRoaXMucnBjQ2xpZW50LnNlbmQoJ2xhdW5jaEFwcGxpY2F0aW9uJywge1xuICAgICAgYnVuZGxlSWQ6IFNBRkFSSV9CVU5ETEVfSURcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIHN0YXJ0VGltZWxpbmUgKGZuKSB7XG4gICAgbG9nLmRlYnVnKCdTdGFydGluZyB0byByZWNvcmQgdGhlIHRpbWVsaW5lJyk7XG4gICAgdGhpcy5ycGNDbGllbnQub24oJ1RpbWVsaW5lLmV2ZW50UmVjb3JkZWQnLCBmbik7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMucnBjQ2xpZW50LnNlbmQoJ3N0YXJ0VGltZWxpbmUnLCB7XG4gICAgICBhcHBJZEtleTogdGhpcy5hcHBJZEtleSxcbiAgICAgIHBhZ2VJZEtleTogdGhpcy5wYWdlSWRLZXksXG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBzdG9wVGltZWxpbmUgKCkge1xuICAgIGxvZy5kZWJ1ZygnU3RvcHBpbmcgdG8gcmVjb3JkIHRoZSB0aW1lbGluZScpO1xuICAgIGF3YWl0IHRoaXMucnBjQ2xpZW50LnNlbmQoJ1RpbWVsaW5lLnN0b3AnLCB7XG4gICAgICBhcHBJZEtleTogdGhpcy5hcHBJZEtleSxcbiAgICAgIHBhZ2VJZEtleTogdGhpcy5wYWdlSWRLZXksXG4gICAgfSk7XG4gIH1cblxuICAvKlxuICAgKiBLZWVwIHRyYWNrIG9mIHRoZSBjbGllbnQgZXZlbnQgbGlzdGVuZXJzIHNvIHRoZXkgY2FuIGJlIHJlbW92ZWRcbiAgICovXG4gIGFkZENsaWVudEV2ZW50TGlzdGVuZXIgKGV2ZW50TmFtZSwgbGlzdGVuZXIpIHtcbiAgICB0aGlzLl9jbGllbnRFdmVudExpc3RlbmVyc1tldmVudE5hbWVdID0gdGhpcy5fY2xpZW50RXZlbnRMaXN0ZW5lcnNbZXZlbnROYW1lXSB8fCBbXTtcbiAgICB0aGlzLl9jbGllbnRFdmVudExpc3RlbmVyc1tldmVudE5hbWVdLnB1c2gobGlzdGVuZXIpO1xuICAgIHRoaXMucnBjQ2xpZW50Lm9uKGV2ZW50TmFtZSwgbGlzdGVuZXIpO1xuICB9XG5cbiAgcmVtb3ZlQ2xpZW50RXZlbnRMaXN0ZW5lciAoZXZlbnROYW1lKSB7XG4gICAgZm9yIChjb25zdCBsaXN0ZW5lciBvZiAodGhpcy5fY2xpZW50RXZlbnRMaXN0ZW5lcnNbZXZlbnROYW1lXSB8fCBbXSkpIHtcbiAgICAgIHRoaXMucnBjQ2xpZW50Lm9mZihldmVudE5hbWUsIGxpc3RlbmVyKTtcbiAgICB9XG4gIH1cblxuICBzdGFydENvbnNvbGUgKGxpc3RlbmVyKSB7XG4gICAgbG9nLmRlYnVnKCdTdGFydGluZyB0byBsaXN0ZW4gZm9yIEphdmFTY3JpcHQgY29uc29sZScpO1xuICAgIHRoaXMuYWRkQ2xpZW50RXZlbnRMaXN0ZW5lcignQ29uc29sZS5tZXNzYWdlQWRkZWQnLCBsaXN0ZW5lcik7XG4gICAgdGhpcy5hZGRDbGllbnRFdmVudExpc3RlbmVyKCdDb25zb2xlLm1lc3NhZ2VSZXBlYXRDb3VudFVwZGF0ZWQnLCBsaXN0ZW5lcik7XG4gIH1cblxuICBzdG9wQ29uc29sZSAoKSB7XG4gICAgbG9nLmRlYnVnKCdTdG9wcGluZyB0byBsaXN0ZW4gZm9yIEphdmFTY3JpcHQgY29uc29sZScpO1xuICAgIHRoaXMucmVtb3ZlQ2xpZW50RXZlbnRMaXN0ZW5lcignQ29uc29sZS5tZXNzYWdlQWRkZWQnKTtcbiAgICB0aGlzLnJlbW92ZUNsaWVudEV2ZW50TGlzdGVuZXIoJ0NvbnNvbGUubWVzc2FnZVJlcGVhdENvdW50VXBkYXRlZCcpO1xuICB9XG5cbiAgc3RhcnROZXR3b3JrIChsaXN0ZW5lcikge1xuICAgIGxvZy5kZWJ1ZygnU3RhcnRpbmcgdG8gbGlzdGVuIGZvciBuZXR3b3JrIGV2ZW50cycpO1xuICAgIHRoaXMuYWRkQ2xpZW50RXZlbnRMaXN0ZW5lcignTmV0d29ya0V2ZW50JywgbGlzdGVuZXIpO1xuICB9XG5cbiAgc3RvcE5ldHdvcmsgKCkge1xuICAgIGxvZy5kZWJ1ZygnU3RvcHBpbmcgdG8gbGlzdGVuIGZvciBuZXR3b3JrIGV2ZW50cycpO1xuICAgIHRoaXMucmVtb3ZlQ2xpZW50RXZlbnRMaXN0ZW5lcignTmV0d29ya0V2ZW50Jyk7XG4gIH1cblxuICBzZXQgYWxsb3dOYXZpZ2F0aW9uV2l0aG91dFJlbG9hZCAoYWxsb3cpIHtcbiAgICB0aGlzLl9hbGxvd05hdmlnYXRpb25XaXRob3V0UmVsb2FkID0gYWxsb3c7XG4gIH1cblxuICBnZXQgYWxsb3dOYXZpZ2F0aW9uV2l0aG91dFJlbG9hZCAoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FsbG93TmF2aWdhdGlvbldpdGhvdXRSZWxvYWQ7XG4gIH1cblxuICBhc3luYyBnZXRDb29raWVzICh1cmxzKSB7XG4gICAgbG9nLmRlYnVnKCdHZXR0aW5nIGNvb2tpZXMnKTtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5ycGNDbGllbnQuc2VuZCgnUGFnZS5nZXRDb29raWVzJywge1xuICAgICAgYXBwSWRLZXk6IHRoaXMuYXBwSWRLZXksXG4gICAgICBwYWdlSWRLZXk6IHRoaXMucGFnZUlkS2V5LFxuICAgICAgdXJscyxcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZUNvb2tpZSAoY29va2llTmFtZSwgdXJsKSB7XG4gICAgbG9nLmRlYnVnKGBEZWxldGluZyBjb29raWUgJyR7Y29va2llTmFtZX0nIG9uICcke3VybH0nYCk7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMucnBjQ2xpZW50LnNlbmQoJ1BhZ2UuZGVsZXRlQ29va2llJywge1xuICAgICAgYXBwSWRLZXk6IHRoaXMuYXBwSWRLZXksXG4gICAgICBwYWdlSWRLZXk6IHRoaXMucGFnZUlkS2V5LFxuICAgICAgY29va2llTmFtZSxcbiAgICAgIHVybCxcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGdhcmJhZ2VDb2xsZWN0ICh0aW1lb3V0TXMgPSBHQVJCQUdFX0NPTExFQ1RfVElNRU9VVCkge1xuICAgIGxvZy5kZWJ1ZyhgR2FyYmFnZSBjb2xsZWN0aW5nIHdpdGggJHt0aW1lb3V0TXN9bXMgdGltZW91dGApO1xuICAgIHRyeSB7XG4gICAgICBjaGVja1BhcmFtcyh7YXBwSWRLZXk6IHRoaXMuYXBwSWRLZXksIHBhZ2VJZEtleTogdGhpcy5wYWdlSWRLZXl9KTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGxvZy5kZWJ1ZyhgVW5hYmxlIHRvIGNvbGxlY3QgZ2FyYmFnZSBhdCB0aGlzIHRpbWVgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBhd2FpdCBCLnJlc29sdmUodGhpcy5ycGNDbGllbnQuc2VuZCgnSGVhcC5nYycsIHtcbiAgICAgIGFwcElkS2V5OiB0aGlzLmFwcElkS2V5LFxuICAgICAgcGFnZUlkS2V5OiB0aGlzLnBhZ2VJZEtleSxcbiAgICB9KSkudGltZW91dCh0aW1lb3V0TXMpXG4gICAgLnRoZW4oZnVuY3Rpb24gZ2NTdWNjZXNzICgpIHsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBwcm9taXNlL3ByZWZlci1hd2FpdC10by10aGVuXG4gICAgICBsb2cuZGVidWcoYEdhcmJhZ2UgY29sbGVjdGlvbiBzdWNjZXNzZnVsYCk7XG4gICAgfSkuY2F0Y2goZnVuY3Rpb24gZ2NFcnJvciAoZXJyKSB7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgcHJvbWlzZS9wcmVmZXItYXdhaXQtdG8tY2FsbGJhY2tzXG4gICAgICBpZiAoZXJyIGluc3RhbmNlb2YgQi5UaW1lb3V0RXJyb3IpIHtcbiAgICAgICAgbG9nLmRlYnVnKGBHYXJiYWdlIGNvbGxlY3Rpb24gdGltZWQgb3V0IGFmdGVyICR7dGltZW91dE1zfW1zYCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsb2cuZGVidWcoYFVuYWJsZSB0byBjb2xsZWN0IGdhcmJhZ2U6ICR7ZXJyLm1lc3NhZ2V9YCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBhc3luYyB1c2VBcHBEaWN0TG9jayAoZm4pIHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5fbG9jay5hY3F1aXJlKCdhcHBEaWN0JywgZm4pO1xuICB9XG5cbiAgZ2V0IHNraXBwZWRBcHBzICgpIHtcbiAgICByZXR1cm4gdGhpcy5fc2tpcHBlZEFwcHMgfHwgW107XG4gIH1cbn1cblxuZm9yIChjb25zdCBbbmFtZSwgZm5dIG9mIF8udG9QYWlycyhtaXhpbnMpKSB7XG4gIFJlbW90ZURlYnVnZ2VyLnByb3RvdHlwZVtuYW1lXSA9IGZuO1xufVxuXG5mb3IgKGNvbnN0IFtuYW1lLCBldmVudF0gb2YgXy50b1BhaXJzKGV2ZW50cykpIHtcbiAgUmVtb3RlRGVidWdnZXJbbmFtZV0gPSBldmVudDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgUmVtb3RlRGVidWdnZXI7XG5leHBvcnQge1xuICBSZW1vdGVEZWJ1Z2dlciwgUkVNT1RFX0RFQlVHR0VSX1BPUlQsIFJQQ19SRVNQT05TRV9USU1FT1VUX01TLFxufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFHQSxJQUFJQSxPQUFKOztBQUNBLElBQUk7RUFDRkEsT0FBTyxHQUFHQyxPQUFPLENBQUNDLGFBQUEsQ0FBS0MsT0FBTCxDQUFhQyxTQUFiLEVBQXdCLElBQXhCLEVBQThCLElBQTlCLEVBQW9DLGNBQXBDLENBQUQsQ0FBUCxDQUE2REMsT0FBdkU7QUFDRCxDQUZELENBRUUsT0FBT0MsR0FBUCxFQUFZLENBQUU7O0FBRWhCLE1BQU1DLG9CQUFvQixHQUFHLEtBQTdCOztBQUNBLE1BQU1DLGdCQUFnQixHQUFHLHdCQUF6QjtBQUdBLE1BQU1DLHVCQUF1QixHQUFHLElBQWhDOztBQUVBLE1BQU1DLGtCQUFrQixHQUFHLElBQTNCO0FBRUEsTUFBTUMsdUJBQXVCLEdBQUcsSUFBaEM7O0FBR0EsTUFBTUMsY0FBTixTQUE2QkMsb0JBQTdCLENBQTBDO0VBaUJ4Q0MsV0FBVyxDQUFFQyxJQUFJLEdBQUcsRUFBVCxFQUFhO0lBQ3RCOztJQUVBLElBQUlmLE9BQUosRUFBYTtNQUNYZ0IsZUFBQSxDQUFJQyxJQUFKLENBQVUsMkJBQTBCakIsT0FBUSxFQUE1QztJQUNEOztJQUVELE1BQU07TUFDSmtCLFFBREk7TUFFSkMsbUJBQW1CLEdBQUcsRUFGbEI7TUFHSkMsZUFISTtNQUlKQyxRQUFRLEdBQUcsSUFKUDtNQUtKQyxhQUFhLEdBQUcsS0FMWjtNQU1KQyxZQUFZLEdBQUcsS0FOWDtNQU9KQyxVQVBJO01BUUpDLElBUkk7TUFTSkMsSUFBSSxHQUFHbkIsb0JBVEg7TUFVSm9CLFVBVkk7TUFXSkMsZ0JBQWdCLEdBQUdsQixrQkFYZjtNQVlKbUIsZ0JBWkk7TUFhSkMsdUJBQXVCLEdBQUcsS0FidEI7TUFjSkMsZUFBZSxHQUFHLEtBZGQ7TUFlSkMsbUJBQW1CLEdBQUcsS0FmbEI7TUFnQkpDLDBCQUEwQixHQUFHLEtBaEJ6QjtNQWlCSkMsMEJBakJJO01Ba0JKQyxlQWxCSTtNQW1CSkM7SUFuQkksSUFvQkZyQixJQXBCSjtJQXNCQSxLQUFLRyxRQUFMLEdBQWdCQSxRQUFoQjtJQUNBLEtBQUtDLG1CQUFMLEdBQTJCQSxtQkFBM0I7SUFDQSxLQUFLQyxlQUFMLEdBQXVCQSxlQUF2QjtJQUNBLEtBQUtDLFFBQUwsR0FBZ0JBLFFBQWhCO0lBQ0EsS0FBS0MsYUFBTCxHQUFxQkEsYUFBckI7SUFDQSxLQUFLQyxZQUFMLEdBQW9CQSxZQUFwQjtJQUNBLEtBQUtDLFVBQUwsR0FBa0JBLFVBQWxCOztJQUNBUixlQUFBLENBQUlxQixLQUFKLENBQVcsb0JBQW1CLEtBQUtkLFlBQWEsRUFBaEQ7O0lBRUEsS0FBS08sdUJBQUwsR0FBK0JBLHVCQUEvQjtJQUVBLEtBQUtMLElBQUwsR0FBWUEsSUFBWjtJQUNBLEtBQUtDLElBQUwsR0FBWUEsSUFBWjtJQUNBLEtBQUtDLFVBQUwsR0FBa0JBLFVBQWxCO0lBQ0EsS0FBS0UsZ0JBQUwsR0FBd0JBLGdCQUF4QjtJQUNBLEtBQUtELGdCQUFMLEdBQXdCQSxnQkFBeEI7SUFFQSxLQUFLSSxtQkFBTCxHQUEyQk0sZUFBQSxDQUFFQyxLQUFGLENBQVFQLG1CQUFSLElBQStCLENBQUMsQ0FBQ0QsZUFBakMsR0FBbUQsQ0FBQyxDQUFDQyxtQkFBaEY7SUFDQSxLQUFLQywwQkFBTCxHQUFrQ0EsMEJBQWxDO0lBQ0EsS0FBS0UsZUFBTCxHQUF1QkEsZUFBdkI7O0lBRUEsSUFBSUcsZUFBQSxDQUFFRSxTQUFGLENBQVlOLDBCQUFaLENBQUosRUFBNkM7TUFDM0MsS0FBS0EsMEJBQUwsR0FBa0NBLDBCQUFsQztJQUNEOztJQUVELEtBQUtFLHNCQUFMLEdBQThCQSxzQkFBOUI7SUFFQSxLQUFLSyxLQUFMLEdBQWEsSUFBSUMsa0JBQUosRUFBYjtFQUNEOztFQUVEQyxLQUFLLEdBQUk7SUFFUCxLQUFLQyxPQUFMLEdBQWUsRUFBZjtJQUNBLEtBQUtDLFFBQUwsR0FBZ0IsSUFBaEI7SUFDQSxLQUFLQyxTQUFMLEdBQWlCLElBQWpCO0lBQ0EsS0FBS0MsV0FBTCxHQUFtQixLQUFuQjtJQUNBLEtBQUtDLGlCQUFMLEdBQXlCLEtBQXpCO0lBQ0EsS0FBS0MsNEJBQUwsR0FBb0MsS0FBcEM7SUFFQSxLQUFLQyxTQUFMLEdBQWlCLElBQWpCO0lBQ0EsS0FBS0MscUJBQUwsR0FBNkIsRUFBN0I7RUFDRDs7RUFFREMsUUFBUSxHQUFJO0lBQ1ZwQyxlQUFBLENBQUlxQixLQUFKLENBQVUsdUJBQVY7O0lBRUEsS0FBS08sT0FBTCxHQUFlLEVBQWY7SUFDQSxLQUFLQyxRQUFMLEdBQWdCLElBQWhCO0lBQ0EsS0FBS0MsU0FBTCxHQUFpQixJQUFqQjtJQUNBLEtBQUtDLFdBQUwsR0FBbUIsS0FBbkI7SUFFQSxLQUFLRyxTQUFMLEdBQWlCLElBQWpCO0lBRUEsS0FBS0csa0JBQUwsQ0FBd0J6QyxjQUFjLENBQUMwQyxpQkFBdkM7SUFDQSxLQUFLRCxrQkFBTCxDQUF3QnpDLGNBQWMsQ0FBQzJDLGdCQUF2QztFQUNEOztFQUVEQyxhQUFhLEdBQUk7SUFDZixLQUFLTixTQUFMLEdBQWlCLElBQUlPLHVCQUFKLENBQXVCO01BQ3RDdkMsUUFBUSxFQUFFLEtBQUtBLFFBRHVCO01BRXRDRSxlQUFlLEVBQUUsS0FBS0EsZUFGZ0I7TUFHdENDLFFBQVEsRUFBRSxLQUFLQSxRQUh1QjtNQUl0Q0ksSUFBSSxFQUFFLEtBQUtBLElBSjJCO01BS3RDQyxJQUFJLEVBQUUsS0FBS0EsSUFMMkI7TUFNdENDLFVBQVUsRUFBRSxLQUFLQSxVQU5xQjtNQU90QytCLFlBQVksRUFBRSxLQUFLN0IsZ0JBUG1CO01BUXRDRyxtQkFBbUIsRUFBRSxLQUFLQSxtQkFSWTtNQVN0Q0MsMEJBQTBCLEVBQUUsS0FBS0EsMEJBVEs7TUFVdENHLHNCQUFzQixFQUFFLEtBQUtBLHNCQVZTO01BV3RDRiwwQkFBMEIsRUFBRSxLQUFLQTtJQVhLLENBQXZCLENBQWpCO0VBYUQ7O0VBRWMsSUFBWHlCLFdBQVcsR0FBSTtJQUFBOztJQUNqQixPQUFPLENBQUMscUJBQUMsS0FBS1QsU0FBTiw0Q0FBQyxnQkFBZ0JTLFdBQWpCLENBQVI7RUFDRDs7RUFFaUIsTUFBWkMsWUFBWSxHQUFJO0lBQ3BCLE1BQU0sS0FBS1YsU0FBTCxDQUFlVyxJQUFmLENBQW9CLG1CQUFwQixFQUF5QztNQUM3QzNDLFFBQVEsRUFBRVY7SUFEbUMsQ0FBekMsQ0FBTjtFQUdEOztFQUVrQixNQUFic0QsYUFBYSxDQUFFQyxFQUFGLEVBQU07SUFDdkIvQyxlQUFBLENBQUlxQixLQUFKLENBQVUsaUNBQVY7O0lBQ0EsS0FBS2EsU0FBTCxDQUFlYyxFQUFmLENBQWtCLHdCQUFsQixFQUE0Q0QsRUFBNUM7SUFDQSxPQUFPLE1BQU0sS0FBS2IsU0FBTCxDQUFlVyxJQUFmLENBQW9CLGVBQXBCLEVBQXFDO01BQ2hEaEIsUUFBUSxFQUFFLEtBQUtBLFFBRGlDO01BRWhEQyxTQUFTLEVBQUUsS0FBS0E7SUFGZ0MsQ0FBckMsQ0FBYjtFQUlEOztFQUVpQixNQUFabUIsWUFBWSxHQUFJO0lBQ3BCakQsZUFBQSxDQUFJcUIsS0FBSixDQUFVLGlDQUFWOztJQUNBLE1BQU0sS0FBS2EsU0FBTCxDQUFlVyxJQUFmLENBQW9CLGVBQXBCLEVBQXFDO01BQ3pDaEIsUUFBUSxFQUFFLEtBQUtBLFFBRDBCO01BRXpDQyxTQUFTLEVBQUUsS0FBS0E7SUFGeUIsQ0FBckMsQ0FBTjtFQUlEOztFQUtEb0Isc0JBQXNCLENBQUVDLFNBQUYsRUFBYUMsUUFBYixFQUF1QjtJQUMzQyxLQUFLakIscUJBQUwsQ0FBMkJnQixTQUEzQixJQUF3QyxLQUFLaEIscUJBQUwsQ0FBMkJnQixTQUEzQixLQUF5QyxFQUFqRjs7SUFDQSxLQUFLaEIscUJBQUwsQ0FBMkJnQixTQUEzQixFQUFzQ0UsSUFBdEMsQ0FBMkNELFFBQTNDOztJQUNBLEtBQUtsQixTQUFMLENBQWVjLEVBQWYsQ0FBa0JHLFNBQWxCLEVBQTZCQyxRQUE3QjtFQUNEOztFQUVERSx5QkFBeUIsQ0FBRUgsU0FBRixFQUFhO0lBQ3BDLEtBQUssTUFBTUMsUUFBWCxJQUF3QixLQUFLakIscUJBQUwsQ0FBMkJnQixTQUEzQixLQUF5QyxFQUFqRSxFQUFzRTtNQUNwRSxLQUFLakIsU0FBTCxDQUFlcUIsR0FBZixDQUFtQkosU0FBbkIsRUFBOEJDLFFBQTlCO0lBQ0Q7RUFDRjs7RUFFREksWUFBWSxDQUFFSixRQUFGLEVBQVk7SUFDdEJwRCxlQUFBLENBQUlxQixLQUFKLENBQVUsMkNBQVY7O0lBQ0EsS0FBSzZCLHNCQUFMLENBQTRCLHNCQUE1QixFQUFvREUsUUFBcEQ7SUFDQSxLQUFLRixzQkFBTCxDQUE0QixtQ0FBNUIsRUFBaUVFLFFBQWpFO0VBQ0Q7O0VBRURLLFdBQVcsR0FBSTtJQUNiekQsZUFBQSxDQUFJcUIsS0FBSixDQUFVLDJDQUFWOztJQUNBLEtBQUtpQyx5QkFBTCxDQUErQixzQkFBL0I7SUFDQSxLQUFLQSx5QkFBTCxDQUErQixtQ0FBL0I7RUFDRDs7RUFFREksWUFBWSxDQUFFTixRQUFGLEVBQVk7SUFDdEJwRCxlQUFBLENBQUlxQixLQUFKLENBQVUsdUNBQVY7O0lBQ0EsS0FBSzZCLHNCQUFMLENBQTRCLGNBQTVCLEVBQTRDRSxRQUE1QztFQUNEOztFQUVETyxXQUFXLEdBQUk7SUFDYjNELGVBQUEsQ0FBSXFCLEtBQUosQ0FBVSx1Q0FBVjs7SUFDQSxLQUFLaUMseUJBQUwsQ0FBK0IsY0FBL0I7RUFDRDs7RUFFK0IsSUFBNUJyQiw0QkFBNEIsQ0FBRTJCLEtBQUYsRUFBUztJQUN2QyxLQUFLQyw2QkFBTCxHQUFxQ0QsS0FBckM7RUFDRDs7RUFFK0IsSUFBNUIzQiw0QkFBNEIsR0FBSTtJQUNsQyxPQUFPLEtBQUs0Qiw2QkFBWjtFQUNEOztFQUVlLE1BQVZDLFVBQVUsQ0FBRUMsSUFBRixFQUFRO0lBQ3RCL0QsZUFBQSxDQUFJcUIsS0FBSixDQUFVLGlCQUFWOztJQUNBLE9BQU8sTUFBTSxLQUFLYSxTQUFMLENBQWVXLElBQWYsQ0FBb0IsaUJBQXBCLEVBQXVDO01BQ2xEaEIsUUFBUSxFQUFFLEtBQUtBLFFBRG1DO01BRWxEQyxTQUFTLEVBQUUsS0FBS0EsU0FGa0M7TUFHbERpQztJQUhrRCxDQUF2QyxDQUFiO0VBS0Q7O0VBRWlCLE1BQVpDLFlBQVksQ0FBRUMsVUFBRixFQUFjQyxHQUFkLEVBQW1CO0lBQ25DbEUsZUFBQSxDQUFJcUIsS0FBSixDQUFXLG9CQUFtQjRDLFVBQVcsU0FBUUMsR0FBSSxHQUFyRDs7SUFDQSxPQUFPLE1BQU0sS0FBS2hDLFNBQUwsQ0FBZVcsSUFBZixDQUFvQixtQkFBcEIsRUFBeUM7TUFDcERoQixRQUFRLEVBQUUsS0FBS0EsUUFEcUM7TUFFcERDLFNBQVMsRUFBRSxLQUFLQSxTQUZvQztNQUdwRG1DLFVBSG9EO01BSXBEQztJQUpvRCxDQUF6QyxDQUFiO0VBTUQ7O0VBRW1CLE1BQWRDLGNBQWMsQ0FBRUMsU0FBUyxHQUFHekUsdUJBQWQsRUFBdUM7SUFDekRLLGVBQUEsQ0FBSXFCLEtBQUosQ0FBVywyQkFBMEIrQyxTQUFVLFlBQS9DOztJQUNBLElBQUk7TUFDRixJQUFBQyxrQkFBQSxFQUFZO1FBQUN4QyxRQUFRLEVBQUUsS0FBS0EsUUFBaEI7UUFBMEJDLFNBQVMsRUFBRSxLQUFLQTtNQUExQyxDQUFaO0lBQ0QsQ0FGRCxDQUVFLE9BQU93QyxHQUFQLEVBQVk7TUFDWnRFLGVBQUEsQ0FBSXFCLEtBQUosQ0FBVyx3Q0FBWDs7TUFDQTtJQUNEOztJQUVELE1BQU1rRCxpQkFBQSxDQUFFcEYsT0FBRixDQUFVLEtBQUsrQyxTQUFMLENBQWVXLElBQWYsQ0FBb0IsU0FBcEIsRUFBK0I7TUFDN0NoQixRQUFRLEVBQUUsS0FBS0EsUUFEOEI7TUFFN0NDLFNBQVMsRUFBRSxLQUFLQTtJQUY2QixDQUEvQixDQUFWLEVBR0YwQyxPQUhFLENBR01KLFNBSE4sRUFJTEssSUFKSyxDQUlBLFNBQVNDLFNBQVQsR0FBc0I7TUFDMUIxRSxlQUFBLENBQUlxQixLQUFKLENBQVcsK0JBQVg7SUFDRCxDQU5LLEVBTUhzRCxLQU5HLENBTUcsU0FBU0MsT0FBVCxDQUFrQk4sR0FBbEIsRUFBdUI7TUFDOUIsSUFBSUEsR0FBRyxZQUFZQyxpQkFBQSxDQUFFTSxZQUFyQixFQUFtQztRQUNqQzdFLGVBQUEsQ0FBSXFCLEtBQUosQ0FBVyxzQ0FBcUMrQyxTQUFVLElBQTFEO01BQ0QsQ0FGRCxNQUVPO1FBQ0xwRSxlQUFBLENBQUlxQixLQUFKLENBQVcsOEJBQTZCaUQsR0FBRyxDQUFDUSxPQUFRLEVBQXBEO01BQ0Q7SUFDRixDQVpLLENBQU47RUFhRDs7RUFFbUIsTUFBZEMsY0FBYyxDQUFFaEMsRUFBRixFQUFNO0lBQ3hCLE9BQU8sTUFBTSxLQUFLdEIsS0FBTCxDQUFXdUQsT0FBWCxDQUFtQixTQUFuQixFQUE4QmpDLEVBQTlCLENBQWI7RUFDRDs7RUFFYyxJQUFYa0MsV0FBVyxHQUFJO0lBQ2pCLE9BQU8sS0FBS0MsWUFBTCxJQUFxQixFQUE1QjtFQUNEOztBQWhQdUM7Ozs7QUFtUDFDLEtBQUssTUFBTSxDQUFDQyxJQUFELEVBQU9wQyxFQUFQLENBQVgsSUFBeUJ6QixlQUFBLENBQUU4RCxPQUFGLENBQVVDLGNBQVYsQ0FBekIsRUFBNEM7RUFDMUN6RixjQUFjLENBQUMwRixTQUFmLENBQXlCSCxJQUF6QixJQUFpQ3BDLEVBQWpDO0FBQ0Q7O0FBRUQsS0FBSyxNQUFNLENBQUNvQyxJQUFELEVBQU9JLEtBQVAsQ0FBWCxJQUE0QmpFLGVBQUEsQ0FBRThELE9BQUYsQ0FBVUksY0FBVixDQUE1QixFQUErQztFQUM3QzVGLGNBQWMsQ0FBQ3VGLElBQUQsQ0FBZCxHQUF1QkksS0FBdkI7QUFDRDs7ZUFFYzNGLGMifQ==
|
|
289
|
+
exports.default = _default;
|
|
290
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJWRVJTSU9OIiwicmVxdWlyZSIsInBhdGgiLCJyZXNvbHZlIiwiX19kaXJuYW1lIiwidmVyc2lvbiIsImlnbiIsIlJFTU9URV9ERUJVR0dFUl9QT1JUIiwiU0FGQVJJX0JVTkRMRV9JRCIsIlJQQ19SRVNQT05TRV9USU1FT1VUX01TIiwiUEFHRV9SRUFEWV9USU1FT1VUIiwiR0FSQkFHRV9DT0xMRUNUX1RJTUVPVVQiLCJSZW1vdGVEZWJ1Z2dlciIsIkV2ZW50RW1pdHRlciIsImNvbnN0cnVjdG9yIiwib3B0cyIsImxvZyIsImluZm8iLCJidW5kbGVJZCIsImFkZGl0aW9uYWxCdW5kbGVJZHMiLCJwbGF0Zm9ybVZlcnNpb24iLCJpc1NhZmFyaSIsImluY2x1ZGVTYWZhcmkiLCJ1c2VOZXdTYWZhcmkiLCJwYWdlTG9hZE1zIiwiaG9zdCIsInBvcnQiLCJzb2NrZXRQYXRoIiwicGFnZVJlYWR5VGltZW91dCIsInJlbW90ZURlYnVnUHJveHkiLCJnYXJiYWdlQ29sbGVjdE9uRXhlY3V0ZSIsImxvZ0Z1bGxSZXNwb25zZSIsImxvZ0FsbENvbW11bmljYXRpb24iLCJsb2dBbGxDb21tdW5pY2F0aW9uSGV4RHVtcCIsIndlYkluc3BlY3Rvck1heEZyYW1lTGVuZ3RoIiwic29ja2V0Q2h1bmtTaXplIiwiZnVsbFBhZ2VJbml0aWFsaXphdGlvbiIsImRlYnVnIiwiXyIsImlzTmlsIiwiaXNJbnRlZ2VyIiwiX2xvY2siLCJBc3luY0xvY2siLCJzZXR1cCIsImFwcERpY3QiLCJhcHBJZEtleSIsInBhZ2VJZEtleSIsInBhZ2VMb2FkaW5nIiwiX25hdmlnYXRpbmdUb1BhZ2UiLCJhbGxvd05hdmlnYXRpb25XaXRob3V0UmVsb2FkIiwicnBjQ2xpZW50IiwiX2NsaWVudEV2ZW50TGlzdGVuZXJzIiwidGVhcmRvd24iLCJyZW1vdmVBbGxMaXN0ZW5lcnMiLCJFVkVOVF9QQUdFX0NIQU5HRSIsIkVWRU5UX0RJU0NPTk5FQ1QiLCJpbml0UnBjQ2xpZW50IiwiUnBjQ2xpZW50U2ltdWxhdG9yIiwibWVzc2FnZVByb3h5IiwiaXNDb25uZWN0ZWQiLCJsYXVuY2hTYWZhcmkiLCJzZW5kIiwic3RhcnRUaW1lbGluZSIsImZuIiwib24iLCJzdG9wVGltZWxpbmUiLCJhZGRDbGllbnRFdmVudExpc3RlbmVyIiwiZXZlbnROYW1lIiwibGlzdGVuZXIiLCJwdXNoIiwicmVtb3ZlQ2xpZW50RXZlbnRMaXN0ZW5lciIsIm9mZiIsInN0YXJ0Q29uc29sZSIsInN0b3BDb25zb2xlIiwic3RhcnROZXR3b3JrIiwic3RvcE5ldHdvcmsiLCJhbGxvdyIsIl9hbGxvd05hdmlnYXRpb25XaXRob3V0UmVsb2FkIiwiZ2V0Q29va2llcyIsInVybHMiLCJkZWxldGVDb29raWUiLCJjb29raWVOYW1lIiwidXJsIiwiZ2FyYmFnZUNvbGxlY3QiLCJ0aW1lb3V0TXMiLCJjaGVja1BhcmFtcyIsImVyciIsIkIiLCJ0aW1lb3V0IiwidGhlbiIsImdjU3VjY2VzcyIsImNhdGNoIiwiZ2NFcnJvciIsIlRpbWVvdXRFcnJvciIsIm1lc3NhZ2UiLCJ1c2VBcHBEaWN0TG9jayIsImFjcXVpcmUiLCJza2lwcGVkQXBwcyIsIl9za2lwcGVkQXBwcyIsIm5hbWUiLCJ0b1BhaXJzIiwibWl4aW5zIiwicHJvdG90eXBlIiwiZXZlbnQiLCJldmVudHMiXSwic291cmNlcyI6WyIuLi8uLi9saWIvcmVtb3RlLWRlYnVnZ2VyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gJ2V2ZW50cyc7XG5pbXBvcnQgbG9nIGZyb20gJy4vbG9nZ2VyJztcbmltcG9ydCB7IFJwY0NsaWVudFNpbXVsYXRvciB9IGZyb20gJy4vcnBjJztcbmltcG9ydCB7IGNoZWNrUGFyYW1zIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBtaXhpbnMsIGV2ZW50cyB9IGZyb20gJy4vbWl4aW5zJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgQiBmcm9tICdibHVlYmlyZCc7XG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCBBc3luY0xvY2sgZnJvbSAnYXN5bmMtbG9jayc7XG5cblxubGV0IFZFUlNJT047XG50cnkge1xuICBWRVJTSU9OID0gcmVxdWlyZShwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAnLi4nLCAnLi4nLCAncGFja2FnZS5qc29uJykpLnZlcnNpb247XG59IGNhdGNoIChpZ24pIHt9XG5cbmNvbnN0IFJFTU9URV9ERUJVR0dFUl9QT1JUID0gMjc3NTM7XG5jb25zdCBTQUZBUklfQlVORExFX0lEID0gJ2NvbS5hcHBsZS5tb2JpbGVzYWZhcmknO1xuXG4vKiBIb3cgbWFueSBtaWxsaXNlY29uZHMgdG8gd2FpdCBmb3Igd2Via2l0IHRvIHJldHVybiBhIHJlc3BvbnNlIGJlZm9yZSB0aW1pbmcgb3V0ICovXG5jb25zdCBSUENfUkVTUE9OU0VfVElNRU9VVF9NUyA9IDUwMDA7XG5cbmNvbnN0IFBBR0VfUkVBRFlfVElNRU9VVCA9IDUwMDA7XG5cbmNvbnN0IEdBUkJBR0VfQ09MTEVDVF9USU1FT1VUID0gNTAwMDtcblxuXG5jbGFzcyBSZW1vdGVEZWJ1Z2dlciBleHRlbmRzIEV2ZW50RW1pdHRlciB7XG4gIC8qXG4gICAqIFRoZSBjb25zdHJ1Y3RvciB0YWtlcyBhbiBvcHRzIGhhc2ggd2l0aCB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6XG4gICAqICAgLSBidW5kbGVJZCAtIGlkIG9mIHRoZSBhcHAgYmVpbmcgY29ubmVjdGVkIHRvXG4gICAqICAgLSBhZGRpdGlvbmFsQnVuZGxlSWRzIC0gYXJyYXkgb2YgcG9zc2libGUgYnVuZGxlIGlkcyB0aGF0IHRoZSBpbnNwZWN0b3JcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VsZCByZXR1cm5cbiAgICogICAtIHBsYXRmb3JtVmVyc2lvbiAtIHZlcnNpb24gb2YgaU9TXG4gICAqICAgLSB1c2VOZXdTYWZhcmkgLSBmb3Igd2ViIGluc3BlY3Rvciwgd2hldGhlciB0aGlzIGlzIGEgbmV3IFNhZmFyaSBpbnN0YW5jZVxuICAgKiAgIC0gcGFnZUxvYWRNcyAtIHRoZSB0aW1lLCBpbiBtcywgdGhhdCBzaG91bGQgYmUgd2FpdGVkIGZvciBwYWdlIGxvYWRpbmdcbiAgICogICAtIGhvc3QgLSB0aGUgcmVtb3RlIGRlYnVnZ2VyJ3MgaG9zdCBhZGRyZXNzXG4gICAqICAgLSBwb3J0IC0gdGhlIHJlbW90ZSBkZWJ1Z2dlciBwb3J0IHRocm91Z2ggd2hpY2ggdG8gY29tbXVuaWNhdGVcbiAgICogICAtIGxvZ0FsbENvbW11bmljYXRpb24gLSBsb2cgcGxpc3RzIHNlbnQgYW5kIHJlY2VpdmVkIGZyb20gV2ViIEluc3BlY3RvclxuICAgKiAgIC0gbG9nQWxsQ29tbXVuaWNhdGlvbkhleER1bXAgLSBsb2cgY29tbXVuaWNhdGlvbiBmcm9tIFdlYiBJbnNwZWN0b3IgYXMgaGV4IGR1bXBcbiAgICogICAtIHNvY2tldENodW5rU2l6ZSAtIHNpemUsIGluIGJ5dGVzLCBvZiBjaHVua3Mgb2YgZGF0YSBzZW50IHRvIFdlYiBJbnNwZWN0b3IgKHJlYWwgZGV2aWNlIG9ubHkpXG4gICAqICAgLSB3ZWJJbnNwZWN0b3JNYXhGcmFtZUxlbmd0aCAtIFRoZSBtYXhpbXVtIHNpemUgaW4gYnl0ZXMgb2YgYSBzaW5nbGUgZGF0YSBmcmFtZVxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgZGV2aWNlIGNvbW11bmljYXRpb24gcHJvdG9jb2xcbiAgICovXG4gIGNvbnN0cnVjdG9yIChvcHRzID0ge30pIHtcbiAgICBzdXBlcigpO1xuXG4gICAgaWYgKFZFUlNJT04pIHtcbiAgICAgIGxvZy5pbmZvKGBSZW1vdGUgRGVidWdnZXIgdmVyc2lvbiAke1ZFUlNJT059YCk7XG4gICAgfVxuXG4gICAgY29uc3Qge1xuICAgICAgYnVuZGxlSWQsXG4gICAgICBhZGRpdGlvbmFsQnVuZGxlSWRzID0gW10sXG4gICAgICBwbGF0Zm9ybVZlcnNpb24sXG4gICAgICBpc1NhZmFyaSA9IHRydWUsXG4gICAgICBpbmNsdWRlU2FmYXJpID0gZmFsc2UsXG4gICAgICB1c2VOZXdTYWZhcmkgPSBmYWxzZSxcbiAgICAgIHBhZ2VMb2FkTXMsXG4gICAgICBob3N0LFxuICAgICAgcG9ydCA9IFJFTU9URV9ERUJVR0dFUl9QT1JULFxuICAgICAgc29ja2V0UGF0aCxcbiAgICAgIHBhZ2VSZWFkeVRpbWVvdXQgPSBQQUdFX1JFQURZX1RJTUVPVVQsXG4gICAgICByZW1vdGVEZWJ1Z1Byb3h5LFxuICAgICAgZ2FyYmFnZUNvbGxlY3RPbkV4ZWN1dGUgPSBmYWxzZSxcbiAgICAgIGxvZ0Z1bGxSZXNwb25zZSA9IGZhbHNlLFxuICAgICAgbG9nQWxsQ29tbXVuaWNhdGlvbiA9IGZhbHNlLFxuICAgICAgbG9nQWxsQ29tbXVuaWNhdGlvbkhleER1bXAgPSBmYWxzZSxcbiAgICAgIHdlYkluc3BlY3Rvck1heEZyYW1lTGVuZ3RoLFxuICAgICAgc29ja2V0Q2h1bmtTaXplLFxuICAgICAgZnVsbFBhZ2VJbml0aWFsaXphdGlvbixcbiAgICB9ID0gb3B0cztcblxuICAgIHRoaXMuYnVuZGxlSWQgPSBidW5kbGVJZDtcbiAgICB0aGlzLmFkZGl0aW9uYWxCdW5kbGVJZHMgPSBhZGRpdGlvbmFsQnVuZGxlSWRzO1xuICAgIHRoaXMucGxhdGZvcm1WZXJzaW9uID0gcGxhdGZvcm1WZXJzaW9uO1xuICAgIHRoaXMuaXNTYWZhcmkgPSBpc1NhZmFyaTtcbiAgICB0aGlzLmluY2x1ZGVTYWZhcmkgPSBpbmNsdWRlU2FmYXJpO1xuICAgIHRoaXMudXNlTmV3U2FmYXJpID0gdXNlTmV3U2FmYXJpO1xuICAgIHRoaXMucGFnZUxvYWRNcyA9IHBhZ2VMb2FkTXM7XG4gICAgbG9nLmRlYnVnKGB1c2VOZXdTYWZhcmkgLS0+ICR7dGhpcy51c2VOZXdTYWZhcml9YCk7XG5cbiAgICB0aGlzLmdhcmJhZ2VDb2xsZWN0T25FeGVjdXRlID0gZ2FyYmFnZUNvbGxlY3RPbkV4ZWN1dGU7XG5cbiAgICB0aGlzLmhvc3QgPSBob3N0O1xuICAgIHRoaXMucG9ydCA9IHBvcnQ7XG4gICAgdGhpcy5zb2NrZXRQYXRoID0gc29ja2V0UGF0aDtcbiAgICB0aGlzLnJlbW90ZURlYnVnUHJveHkgPSByZW1vdGVEZWJ1Z1Byb3h5O1xuICAgIHRoaXMucGFnZVJlYWR5VGltZW91dCA9IHBhZ2VSZWFkeVRpbWVvdXQ7XG5cbiAgICB0aGlzLmxvZ0FsbENvbW11bmljYXRpb24gPSBfLmlzTmlsKGxvZ0FsbENvbW11bmljYXRpb24pID8gISFsb2dGdWxsUmVzcG9uc2UgOiAhIWxvZ0FsbENvbW11bmljYXRpb247XG4gICAgdGhpcy5sb2dBbGxDb21tdW5pY2F0aW9uSGV4RHVtcCA9IGxvZ0FsbENvbW11bmljYXRpb25IZXhEdW1wO1xuICAgIHRoaXMuc29ja2V0Q2h1bmtTaXplID0gc29ja2V0Q2h1bmtTaXplO1xuXG4gICAgaWYgKF8uaXNJbnRlZ2VyKHdlYkluc3BlY3Rvck1heEZyYW1lTGVuZ3RoKSkge1xuICAgICAgdGhpcy53ZWJJbnNwZWN0b3JNYXhGcmFtZUxlbmd0aCA9IHdlYkluc3BlY3Rvck1heEZyYW1lTGVuZ3RoO1xuICAgIH1cblxuICAgIHRoaXMuZnVsbFBhZ2VJbml0aWFsaXphdGlvbiA9IGZ1bGxQYWdlSW5pdGlhbGl6YXRpb247XG5cbiAgICB0aGlzLl9sb2NrID0gbmV3IEFzeW5jTG9jaygpO1xuICB9XG5cbiAgc2V0dXAgKCkge1xuICAgIC8vIGFwcCBoYW5kbGluZyBjb25maWd1cmF0aW9uXG4gICAgdGhpcy5hcHBEaWN0ID0ge307XG4gICAgdGhpcy5hcHBJZEtleSA9IG51bGw7XG4gICAgdGhpcy5wYWdlSWRLZXkgPSBudWxsO1xuICAgIHRoaXMucGFnZUxvYWRpbmcgPSBmYWxzZTtcbiAgICB0aGlzLl9uYXZpZ2F0aW5nVG9QYWdlID0gZmFsc2U7XG4gICAgdGhpcy5hbGxvd05hdmlnYXRpb25XaXRob3V0UmVsb2FkID0gZmFsc2U7XG5cbiAgICB0aGlzLnJwY0NsaWVudCA9IG51bGw7XG4gICAgdGhpcy5fY2xpZW50RXZlbnRMaXN0ZW5lcnMgPSB7fTtcbiAgfVxuXG4gIHRlYXJkb3duICgpIHtcbiAgICBsb2cuZGVidWcoJ0NsZWFuaW5nIHVwIGxpc3RlbmVycycpO1xuXG4gICAgdGhpcy5hcHBEaWN0ID0ge307XG4gICAgdGhpcy5hcHBJZEtleSA9IG51bGw7XG4gICAgdGhpcy5wYWdlSWRLZXkgPSBudWxsO1xuICAgIHRoaXMucGFnZUxvYWRpbmcgPSBmYWxzZTtcblxuICAgIHRoaXMucnBjQ2xpZW50ID0gbnVsbDtcblxuICAgIHRoaXMucmVtb3ZlQWxsTGlzdGVuZXJzKFJlbW90ZURlYnVnZ2VyLkVWRU5UX1BBR0VfQ0hBTkdFKTtcbiAgICB0aGlzLnJlbW92ZUFsbExpc3RlbmVycyhSZW1vdGVEZWJ1Z2dlci5FVkVOVF9ESVNDT05ORUNUKTtcbiAgfVxuXG4gIGluaXRScGNDbGllbnQgKCkge1xuICAgIHRoaXMucnBjQ2xpZW50ID0gbmV3IFJwY0NsaWVudFNpbXVsYXRvcih7XG4gICAgICBidW5kbGVJZDogdGhpcy5idW5kbGVJZCxcbiAgICAgIHBsYXRmb3JtVmVyc2lvbjogdGhpcy5wbGF0Zm9ybVZlcnNpb24sXG4gICAgICBpc1NhZmFyaTogdGhpcy5pc1NhZmFyaSxcbiAgICAgIGhvc3Q6IHRoaXMuaG9zdCxcbiAgICAgIHBvcnQ6IHRoaXMucG9ydCxcbiAgICAgIHNvY2tldFBhdGg6IHRoaXMuc29ja2V0UGF0aCxcbiAgICAgIG1lc3NhZ2VQcm94eTogdGhpcy5yZW1vdGVEZWJ1Z1Byb3h5LFxuICAgICAgbG9nQWxsQ29tbXVuaWNhdGlvbjogdGhpcy5sb2dBbGxDb21tdW5pY2F0aW9uLFxuICAgICAgbG9nQWxsQ29tbXVuaWNhdGlvbkhleER1bXA6IHRoaXMubG9nQWxsQ29tbXVuaWNhdGlvbkhleER1bXAsXG4gICAgICBmdWxsUGFnZUluaXRpYWxpemF0aW9uOiB0aGlzLmZ1bGxQYWdlSW5pdGlhbGl6YXRpb24sXG4gICAgICB3ZWJJbnNwZWN0b3JNYXhGcmFtZUxlbmd0aDogdGhpcy53ZWJJbnNwZWN0b3JNYXhGcmFtZUxlbmd0aCxcbiAgICB9KTtcbiAgfVxuXG4gIGdldCBpc0Nvbm5lY3RlZCAoKSB7XG4gICAgcmV0dXJuICEhdGhpcy5ycGNDbGllbnQ/LmlzQ29ubmVjdGVkO1xuICB9XG5cbiAgYXN5bmMgbGF1bmNoU2FmYXJpICgpIHtcbiAgICBhd2FpdCB0aGlzLnJwY0NsaWVudC5zZW5kKCdsYXVuY2hBcHBsaWNhdGlvbicsIHtcbiAgICAgIGJ1bmRsZUlkOiBTQUZBUklfQlVORExFX0lEXG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBzdGFydFRpbWVsaW5lIChmbikge1xuICAgIGxvZy5kZWJ1ZygnU3RhcnRpbmcgdG8gcmVjb3JkIHRoZSB0aW1lbGluZScpO1xuICAgIHRoaXMucnBjQ2xpZW50Lm9uKCdUaW1lbGluZS5ldmVudFJlY29yZGVkJywgZm4pO1xuICAgIHJldHVybiBhd2FpdCB0aGlzLnJwY0NsaWVudC5zZW5kKCdzdGFydFRpbWVsaW5lJywge1xuICAgICAgYXBwSWRLZXk6IHRoaXMuYXBwSWRLZXksXG4gICAgICBwYWdlSWRLZXk6IHRoaXMucGFnZUlkS2V5LFxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgc3RvcFRpbWVsaW5lICgpIHtcbiAgICBsb2cuZGVidWcoJ1N0b3BwaW5nIHRvIHJlY29yZCB0aGUgdGltZWxpbmUnKTtcbiAgICBhd2FpdCB0aGlzLnJwY0NsaWVudC5zZW5kKCdUaW1lbGluZS5zdG9wJywge1xuICAgICAgYXBwSWRLZXk6IHRoaXMuYXBwSWRLZXksXG4gICAgICBwYWdlSWRLZXk6IHRoaXMucGFnZUlkS2V5LFxuICAgIH0pO1xuICB9XG5cbiAgLypcbiAgICogS2VlcCB0cmFjayBvZiB0aGUgY2xpZW50IGV2ZW50IGxpc3RlbmVycyBzbyB0aGV5IGNhbiBiZSByZW1vdmVkXG4gICAqL1xuICBhZGRDbGllbnRFdmVudExpc3RlbmVyIChldmVudE5hbWUsIGxpc3RlbmVyKSB7XG4gICAgdGhpcy5fY2xpZW50RXZlbnRMaXN0ZW5lcnNbZXZlbnROYW1lXSA9IHRoaXMuX2NsaWVudEV2ZW50TGlzdGVuZXJzW2V2ZW50TmFtZV0gfHwgW107XG4gICAgdGhpcy5fY2xpZW50RXZlbnRMaXN0ZW5lcnNbZXZlbnROYW1lXS5wdXNoKGxpc3RlbmVyKTtcbiAgICB0aGlzLnJwY0NsaWVudC5vbihldmVudE5hbWUsIGxpc3RlbmVyKTtcbiAgfVxuXG4gIHJlbW92ZUNsaWVudEV2ZW50TGlzdGVuZXIgKGV2ZW50TmFtZSkge1xuICAgIGZvciAoY29uc3QgbGlzdGVuZXIgb2YgKHRoaXMuX2NsaWVudEV2ZW50TGlzdGVuZXJzW2V2ZW50TmFtZV0gfHwgW10pKSB7XG4gICAgICB0aGlzLnJwY0NsaWVudC5vZmYoZXZlbnROYW1lLCBsaXN0ZW5lcik7XG4gICAgfVxuICB9XG5cbiAgc3RhcnRDb25zb2xlIChsaXN0ZW5lcikge1xuICAgIGxvZy5kZWJ1ZygnU3RhcnRpbmcgdG8gbGlzdGVuIGZvciBKYXZhU2NyaXB0IGNvbnNvbGUnKTtcbiAgICB0aGlzLmFkZENsaWVudEV2ZW50TGlzdGVuZXIoJ0NvbnNvbGUubWVzc2FnZUFkZGVkJywgbGlzdGVuZXIpO1xuICAgIHRoaXMuYWRkQ2xpZW50RXZlbnRMaXN0ZW5lcignQ29uc29sZS5tZXNzYWdlUmVwZWF0Q291bnRVcGRhdGVkJywgbGlzdGVuZXIpO1xuICB9XG5cbiAgc3RvcENvbnNvbGUgKCkge1xuICAgIGxvZy5kZWJ1ZygnU3RvcHBpbmcgdG8gbGlzdGVuIGZvciBKYXZhU2NyaXB0IGNvbnNvbGUnKTtcbiAgICB0aGlzLnJlbW92ZUNsaWVudEV2ZW50TGlzdGVuZXIoJ0NvbnNvbGUubWVzc2FnZUFkZGVkJyk7XG4gICAgdGhpcy5yZW1vdmVDbGllbnRFdmVudExpc3RlbmVyKCdDb25zb2xlLm1lc3NhZ2VSZXBlYXRDb3VudFVwZGF0ZWQnKTtcbiAgfVxuXG4gIHN0YXJ0TmV0d29yayAobGlzdGVuZXIpIHtcbiAgICBsb2cuZGVidWcoJ1N0YXJ0aW5nIHRvIGxpc3RlbiBmb3IgbmV0d29yayBldmVudHMnKTtcbiAgICB0aGlzLmFkZENsaWVudEV2ZW50TGlzdGVuZXIoJ05ldHdvcmtFdmVudCcsIGxpc3RlbmVyKTtcbiAgfVxuXG4gIHN0b3BOZXR3b3JrICgpIHtcbiAgICBsb2cuZGVidWcoJ1N0b3BwaW5nIHRvIGxpc3RlbiBmb3IgbmV0d29yayBldmVudHMnKTtcbiAgICB0aGlzLnJlbW92ZUNsaWVudEV2ZW50TGlzdGVuZXIoJ05ldHdvcmtFdmVudCcpO1xuICB9XG5cbiAgc2V0IGFsbG93TmF2aWdhdGlvbldpdGhvdXRSZWxvYWQgKGFsbG93KSB7XG4gICAgdGhpcy5fYWxsb3dOYXZpZ2F0aW9uV2l0aG91dFJlbG9hZCA9IGFsbG93O1xuICB9XG5cbiAgZ2V0IGFsbG93TmF2aWdhdGlvbldpdGhvdXRSZWxvYWQgKCkge1xuICAgIHJldHVybiB0aGlzLl9hbGxvd05hdmlnYXRpb25XaXRob3V0UmVsb2FkO1xuICB9XG5cbiAgYXN5bmMgZ2V0Q29va2llcyAodXJscykge1xuICAgIGxvZy5kZWJ1ZygnR2V0dGluZyBjb29raWVzJyk7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMucnBjQ2xpZW50LnNlbmQoJ1BhZ2UuZ2V0Q29va2llcycsIHtcbiAgICAgIGFwcElkS2V5OiB0aGlzLmFwcElkS2V5LFxuICAgICAgcGFnZUlkS2V5OiB0aGlzLnBhZ2VJZEtleSxcbiAgICAgIHVybHMsXG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBkZWxldGVDb29raWUgKGNvb2tpZU5hbWUsIHVybCkge1xuICAgIGxvZy5kZWJ1ZyhgRGVsZXRpbmcgY29va2llICcke2Nvb2tpZU5hbWV9JyBvbiAnJHt1cmx9J2ApO1xuICAgIHJldHVybiBhd2FpdCB0aGlzLnJwY0NsaWVudC5zZW5kKCdQYWdlLmRlbGV0ZUNvb2tpZScsIHtcbiAgICAgIGFwcElkS2V5OiB0aGlzLmFwcElkS2V5LFxuICAgICAgcGFnZUlkS2V5OiB0aGlzLnBhZ2VJZEtleSxcbiAgICAgIGNvb2tpZU5hbWUsXG4gICAgICB1cmwsXG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBnYXJiYWdlQ29sbGVjdCAodGltZW91dE1zID0gR0FSQkFHRV9DT0xMRUNUX1RJTUVPVVQpIHtcbiAgICBsb2cuZGVidWcoYEdhcmJhZ2UgY29sbGVjdGluZyB3aXRoICR7dGltZW91dE1zfW1zIHRpbWVvdXRgKTtcbiAgICB0cnkge1xuICAgICAgY2hlY2tQYXJhbXMoe2FwcElkS2V5OiB0aGlzLmFwcElkS2V5LCBwYWdlSWRLZXk6IHRoaXMucGFnZUlkS2V5fSk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBsb2cuZGVidWcoYFVuYWJsZSB0byBjb2xsZWN0IGdhcmJhZ2UgYXQgdGhpcyB0aW1lYCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgYXdhaXQgQi5yZXNvbHZlKHRoaXMucnBjQ2xpZW50LnNlbmQoJ0hlYXAuZ2MnLCB7XG4gICAgICBhcHBJZEtleTogdGhpcy5hcHBJZEtleSxcbiAgICAgIHBhZ2VJZEtleTogdGhpcy5wYWdlSWRLZXksXG4gICAgfSkpLnRpbWVvdXQodGltZW91dE1zKVxuICAgIC50aGVuKGZ1bmN0aW9uIGdjU3VjY2VzcyAoKSB7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgcHJvbWlzZS9wcmVmZXItYXdhaXQtdG8tdGhlblxuICAgICAgbG9nLmRlYnVnKGBHYXJiYWdlIGNvbGxlY3Rpb24gc3VjY2Vzc2Z1bGApO1xuICAgIH0pLmNhdGNoKGZ1bmN0aW9uIGdjRXJyb3IgKGVycikgeyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIHByb21pc2UvcHJlZmVyLWF3YWl0LXRvLWNhbGxiYWNrc1xuICAgICAgaWYgKGVyciBpbnN0YW5jZW9mIEIuVGltZW91dEVycm9yKSB7XG4gICAgICAgIGxvZy5kZWJ1ZyhgR2FyYmFnZSBjb2xsZWN0aW9uIHRpbWVkIG91dCBhZnRlciAke3RpbWVvdXRNc31tc2ApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbG9nLmRlYnVnKGBVbmFibGUgdG8gY29sbGVjdCBnYXJiYWdlOiAke2Vyci5tZXNzYWdlfWApO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgdXNlQXBwRGljdExvY2sgKGZuKSB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuX2xvY2suYWNxdWlyZSgnYXBwRGljdCcsIGZuKTtcbiAgfVxuXG4gIGdldCBza2lwcGVkQXBwcyAoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3NraXBwZWRBcHBzIHx8IFtdO1xuICB9XG59XG5cbmZvciAoY29uc3QgW25hbWUsIGZuXSBvZiBfLnRvUGFpcnMobWl4aW5zKSkge1xuICBSZW1vdGVEZWJ1Z2dlci5wcm90b3R5cGVbbmFtZV0gPSBmbjtcbn1cblxuZm9yIChjb25zdCBbbmFtZSwgZXZlbnRdIG9mIF8udG9QYWlycyhldmVudHMpKSB7XG4gIFJlbW90ZURlYnVnZ2VyW25hbWVdID0gZXZlbnQ7XG59XG5cbmV4cG9ydCBkZWZhdWx0IFJlbW90ZURlYnVnZ2VyO1xuZXhwb3J0IHtcbiAgUmVtb3RlRGVidWdnZXIsIFJFTU9URV9ERUJVR0dFUl9QT1JULCBSUENfUkVTUE9OU0VfVElNRU9VVF9NUyxcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBR0EsSUFBSUEsT0FBSjs7QUFDQSxJQUFJO0VBQ0ZBLE9BQU8sR0FBR0MsT0FBTyxDQUFDQyxhQUFBLENBQUtDLE9BQUwsQ0FBYUMsU0FBYixFQUF3QixJQUF4QixFQUE4QixJQUE5QixFQUFvQyxjQUFwQyxDQUFELENBQVAsQ0FBNkRDLE9BQXZFO0FBQ0QsQ0FGRCxDQUVFLE9BQU9DLEdBQVAsRUFBWSxDQUFFOztBQUVoQixNQUFNQyxvQkFBb0IsR0FBRyxLQUE3Qjs7QUFDQSxNQUFNQyxnQkFBZ0IsR0FBRyx3QkFBekI7QUFHQSxNQUFNQyx1QkFBdUIsR0FBRyxJQUFoQzs7QUFFQSxNQUFNQyxrQkFBa0IsR0FBRyxJQUEzQjtBQUVBLE1BQU1DLHVCQUF1QixHQUFHLElBQWhDOztBQUdBLE1BQU1DLGNBQU4sU0FBNkJDLG9CQUE3QixDQUEw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
|
package/build/lib/rpc/index.js
CHANGED
|
@@ -22,7 +22,5 @@ require("source-map-support/register");
|
|
|
22
22
|
|
|
23
23
|
var _rpcClientSimulator = _interopRequireDefault(require("./rpc-client-simulator"));
|
|
24
24
|
|
|
25
|
-
var _rpcClientRealDevice = _interopRequireDefault(require("./rpc-client-real-device"));
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL3JwYy9pbmRleC5qcyIsIm5hbWVzIjpbXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uIiwic291cmNlcyI6WyJsaWIvcnBjL2luZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBScGNDbGllbnRTaW11bGF0b3IgZnJvbSAnLi9ycGMtY2xpZW50LXNpbXVsYXRvcic7XG5pbXBvcnQgUnBjQ2xpZW50UmVhbERldmljZSBmcm9tICcuL3JwYy1jbGllbnQtcmVhbC1kZXZpY2UnO1xuXG5cbmV4cG9ydCB7IFJwY0NsaWVudFNpbXVsYXRvciwgUnBjQ2xpZW50UmVhbERldmljZSB9O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0EifQ==
|
|
25
|
+
var _rpcClientRealDevice = _interopRequireDefault(require("./rpc-client-real-device"));
|
|
26
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL3JwYy9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUnBjQ2xpZW50U2ltdWxhdG9yIGZyb20gJy4vcnBjLWNsaWVudC1zaW11bGF0b3InO1xuaW1wb3J0IFJwY0NsaWVudFJlYWxEZXZpY2UgZnJvbSAnLi9ycGMtY2xpZW50LXJlYWwtZGV2aWNlJztcblxuXG5leHBvcnQgeyBScGNDbGllbnRTaW11bGF0b3IsIFJwY0NsaWVudFJlYWxEZXZpY2UgfTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBIn0=
|
|
@@ -261,7 +261,5 @@ class RemoteMessages {
|
|
|
261
261
|
|
|
262
262
|
exports.RemoteMessages = RemoteMessages;
|
|
263
263
|
var _default = RemoteMessages;
|
|
264
|
-
exports.default = _default;
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL3JwYy9yZW1vdGUtbWVzc2FnZXMuanMiLCJuYW1lcyI6WyJPQkpFQ1RfR1JPVVAiLCJNSU5JTUFMX0NPTU1BTkQiLCJGVUxMX0NPTU1BTkQiLCJESVJFQ1RfQ09NTUFORCIsIkNPTU1BTkRTIiwiUmVtb3RlTWVzc2FnZXMiLCJjb25zdHJ1Y3RvciIsImlzVGFyZ2V0QmFzZWQiLCJfaXNUYXJnZXRCYXNlZCIsInNldENvbm5lY3Rpb25LZXkiLCJjb25uSWQiLCJfX2FyZ3VtZW50IiwiV0lSQ29ubmVjdGlvbklkZW50aWZpZXJLZXkiLCJfX3NlbGVjdG9yIiwiY29ubmVjdFRvQXBwIiwiYXBwSWRLZXkiLCJXSVJBcHBsaWNhdGlvbklkZW50aWZpZXJLZXkiLCJzZXRTZW5kZXJLZXkiLCJzZW5kZXJJZCIsInBhZ2VJZEtleSIsIldJUlNlbmRlcktleSIsIldJUlBhZ2VJZGVudGlmaWVyS2V5IiwiV0lSQXV0b21hdGljYWxseVBhdXNlIiwiaW5kaWNhdGVXZWJWaWV3IiwiZW5hYmxlZCIsIldJUkluZGljYXRlRW5hYmxlZEtleSIsIl8iLCJpc05pbCIsImxhdW5jaEFwcGxpY2F0aW9uIiwiYnVuZGxlSWQiLCJXSVJBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXJLZXkiLCJnZXRGdWxsQ29tbWFuZCIsIm9wdHMiLCJtZXRob2QiLCJwYXJhbXMiLCJ0YXJnZXRJZCIsImlkIiwicmVhbE1ldGhvZCIsInJlYWxQYXJhbXMiLCJtZXNzYWdlIiwiSlNPTiIsInN0cmluZ2lmeSIsIk9iamVjdCIsImFzc2lnbiIsIm9iamVjdEdyb3VwIiwiaW5jbHVkZUNvbW1hbmRMaW5lQVBJIiwiZG9Ob3RQYXVzZU9uRXhjZXB0aW9uc0FuZE11dGVDb25zb2xlIiwiZW11bGF0ZVVzZXJHZXN0dXJlIiwiZ2VuZXJhdGVQcmV2aWV3Iiwic2F2ZVJlc3VsdCIsInBsaXN0IiwiV0lSU29ja2V0RGF0YUtleSIsIm9taXRCeSIsImdldE1pbmltYWxDb21tYW5kIiwiZ2V0RGlyZWN0Q29tbWFuZCIsImdldFJlbW90ZUNvbW1hbmQiLCJjb21tYW5kIiwiYnVpbGRlckZ1bmN0aW9uIiwiZ2V0UHJvdG9jb2xDb21tYW5kIl0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLiIsInNvdXJjZXMiOlsibGliL3JwYy9yZW1vdGUtbWVzc2FnZXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBnZXRQcm90b2NvbENvbW1hbmQgZnJvbSAnLi4vcHJvdG9jb2wnO1xuXG5cbmNvbnN0IE9CSkVDVF9HUk9VUCA9ICdjb25zb2xlJztcblxuY29uc3QgTUlOSU1BTF9DT01NQU5EID0gJ2dldE1pbmltYWxDb21tYW5kJztcbmNvbnN0IEZVTExfQ09NTUFORCA9ICdnZXRGdWxsQ29tbWFuZCc7XG5jb25zdCBESVJFQ1RfQ09NTUFORCA9ICdnZXREaXJlY3RDb21tYW5kJztcblxuLy8gbWFwcGluZyBvZiBjb21tYW5kcyB0byB0aGUgZnVuY3Rpb24gZm9yIGdldHRpbmcgdGhlIGNvbW1hbmRcbi8vIGRlZmF1bHRzIHRvIGBnZXRNaW5pbWFsQ29tbWFuZGAsIHNvIG5vIG5lZWQgdG8gaGF2ZSB0aG9zZSBsaXN0ZWQgaGVyZVxuY29uc3QgQ09NTUFORFMgPSB7XG4gICdQYWdlLmdldENvb2tpZXMnOiBGVUxMX0NPTU1BTkQsXG4gICdQYWdlLm5hdmlnYXRlJzogRlVMTF9DT01NQU5ELFxuXG4gICdSdW50aW1lLmF3YWl0UHJvbWlzZSc6IEZVTExfQ09NTUFORCxcbiAgJ1J1bnRpbWUuY2FsbEZ1bmN0aW9uT24nOiBGVUxMX0NPTU1BTkQsXG4gICdSdW50aW1lLmV2YWx1YXRlJzogRlVMTF9DT01NQU5ELFxuXG4gICdUYXJnZXQuZXhpc3RzJzogRElSRUNUX0NPTU1BTkQsXG5cbiAgJ1RpbWVsaW5lLnN0YXJ0JzogRlVMTF9DT01NQU5ELFxuICAnVGltZWxpbmUuc3RvcCc6IEZVTExfQ09NTUFORCxcbn07XG5cbmNsYXNzIFJlbW90ZU1lc3NhZ2VzIHtcbiAgY29uc3RydWN0b3IgKGlzVGFyZ2V0QmFzZWQgPSBmYWxzZSkge1xuICAgIHRoaXMuaXNUYXJnZXRCYXNlZCA9IGlzVGFyZ2V0QmFzZWQ7XG4gIH1cblxuICBzZXQgaXNUYXJnZXRCYXNlZCAoaXNUYXJnZXRCYXNlZCkge1xuICAgIHRoaXMuX2lzVGFyZ2V0QmFzZWQgPSBpc1RhcmdldEJhc2VkO1xuICB9XG5cbiAgZ2V0IGlzVGFyZ2V0QmFzZWQgKCkge1xuICAgIHJldHVybiB0aGlzLl9pc1RhcmdldEJhc2VkO1xuICB9XG5cbiAgLypcbiAgICogQ29ubmVjdGlvbiBmdW5jdGlvbnNcbiAgICovXG5cbiAgc2V0Q29ubmVjdGlvbktleSAoY29ubklkKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIF9fYXJndW1lbnQ6IHtcbiAgICAgICAgV0lSQ29ubmVjdGlvbklkZW50aWZpZXJLZXk6IGNvbm5JZFxuICAgICAgfSxcbiAgICAgIF9fc2VsZWN0b3I6ICdfcnBjX3JlcG9ydElkZW50aWZpZXI6J1xuICAgIH07XG4gIH1cblxuICBjb25uZWN0VG9BcHAgKGNvbm5JZCwgYXBwSWRLZXkpIHtcbiAgICByZXR1cm4ge1xuICAgICAgX19hcmd1bWVudDoge1xuICAgICAgICBXSVJDb25uZWN0aW9uSWRlbnRpZmllcktleTogY29ubklkLFxuICAgICAgICBXSVJBcHBsaWNhdGlvbklkZW50aWZpZXJLZXk6IGFwcElkS2V5XG4gICAgICB9LFxuICAgICAgX19zZWxlY3RvcjogJ19ycGNfZm9yd2FyZEdldExpc3Rpbmc6J1xuICAgIH07XG4gIH1cblxuICBzZXRTZW5kZXJLZXkgKGNvbm5JZCwgc2VuZGVySWQsIGFwcElkS2V5LCBwYWdlSWRLZXkpIHtcbiAgICByZXR1cm4ge1xuICAgICAgX19hcmd1bWVudDoge1xuICAgICAgICBXSVJBcHBsaWNhdGlvbklkZW50aWZpZXJLZXk6IGFwcElkS2V5LFxuICAgICAgICBXSVJDb25uZWN0aW9uSWRlbnRpZmllcktleTogY29ubklkLFxuICAgICAgICBXSVJTZW5kZXJLZXk6IHNlbmRlcklkLFxuICAgICAgICBXSVJQYWdlSWRlbnRpZmllcktleTogcGFnZUlkS2V5LFxuICAgICAgICBXSVJBdXRvbWF0aWNhbGx5UGF1c2U6IGZhbHNlXG4gICAgICB9LFxuICAgICAgX19zZWxlY3RvcjogJ19ycGNfZm9yd2FyZFNvY2tldFNldHVwOidcbiAgICB9O1xuICB9XG5cbiAgaW5kaWNhdGVXZWJWaWV3IChjb25uSWQsIGFwcElkS2V5LCBwYWdlSWRLZXksIGVuYWJsZWQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgX19hcmd1bWVudDoge1xuICAgICAgICBXSVJBcHBsaWNhdGlvbklkZW50aWZpZXJLZXk6IGFwcElkS2V5LFxuICAgICAgICBXSVJJbmRpY2F0ZUVuYWJsZWRLZXk6IF8uaXNOaWwoZW5hYmxlZCkgPyB0cnVlIDogZW5hYmxlZCxcbiAgICAgICAgV0lSQ29ubmVjdGlvbklkZW50aWZpZXJLZXk6IGNvbm5JZCxcbiAgICAgICAgV0lSUGFnZUlkZW50aWZpZXJLZXk6IHBhZ2VJZEtleVxuICAgICAgfSxcbiAgICAgIF9fc2VsZWN0b3I6ICdfcnBjX2ZvcndhcmRJbmRpY2F0ZVdlYlZpZXc6J1xuICAgIH07XG4gIH1cblxuICBsYXVuY2hBcHBsaWNhdGlvbiAoYnVuZGxlSWQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgX19hcmd1bWVudDoge1xuICAgICAgICBXSVJBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXJLZXk6IGJ1bmRsZUlkXG4gICAgICB9LFxuICAgICAgX19zZWxlY3RvcjogJ19ycGNfcmVxdWVzdEFwcGxpY2F0aW9uTGF1bmNoOidcbiAgICB9O1xuICB9XG5cbiAgZ2V0RnVsbENvbW1hbmQgKG9wdHMgPSB7fSkge1xuICAgIGNvbnN0IHtcbiAgICAgIG1ldGhvZCxcbiAgICAgIHBhcmFtcyxcbiAgICAgIGNvbm5JZCxcbiAgICAgIHNlbmRlcklkLFxuICAgICAgYXBwSWRLZXksXG4gICAgICBwYWdlSWRLZXksXG4gICAgICB0YXJnZXRJZCxcbiAgICAgIGlkLFxuICAgIH0gPSBvcHRzO1xuXG4gICAgLyogVGhlIFdlYiBJbnNwZWN0b3IgaGFzIGEgbnVtYmVyIG9mIHBhcmFtZXRlcnMgdGhhdCBjYW4gYmUgcGFzc2VkIGluLCBhc1xuICAgICAqIHNlZW4gd2hlbiBkdW1waW5nIHdoYXQgU2FmYXJpIGlzIGRvaW5nIHdoZW4gY29tbXVuaWNhdGluZyB3aXRoIGl0LiBNb3N0XG4gICAgICogYXJlIGtlcHQgYXMgdGhleSBhcmUgc2V0IGZvciBTYWZhcmkuIFRoZSBleGNlcHRpb24gaXMgYGVtdWxhdGVVc2VyR2VzdHVyZWBcbiAgICAgKiB3aGljaCwgb24gaU9TIDEzKywgYnJlYWtzIHBvcHVwIGJsb2NraW5nIChpLmUuLCBldmVuIHdpdGggdGhlIHBvcHVwXG4gICAgICogYmxvY2tpbmcgc2V0dGluZyBvbiwgbmV3IHdpbmRvd3MgYXJlIG9wZW5hYmxlIGJvdGggZnJvbSBsaW5rcyBhbmQgZnJvbVxuICAgICAqIEphdmFTY3JpcHQpLlxuICAgICAqL1xuXG4gICAgbGV0IHJlYWxNZXRob2Q7XG4gICAgbGV0IHJlYWxQYXJhbXM7XG4gICAgaWYgKHRoaXMuaXNUYXJnZXRCYXNlZCkge1xuICAgICAgcmVhbE1ldGhvZCA9ICdUYXJnZXQuc2VuZE1lc3NhZ2VUb1RhcmdldCc7XG4gICAgICByZWFsUGFyYW1zID0ge1xuICAgICAgICB0YXJnZXRJZCxcbiAgICAgICAgbWVzc2FnZTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgIGlkLFxuICAgICAgICAgIG1ldGhvZCxcbiAgICAgICAgICBwYXJhbXM6IE9iamVjdC5hc3NpZ24oe1xuICAgICAgICAgICAgb2JqZWN0R3JvdXA6IE9CSkVDVF9HUk9VUCxcbiAgICAgICAgICAgIGluY2x1ZGVDb21tYW5kTGluZUFQSTogdHJ1ZSxcbiAgICAgICAgICAgIGRvTm90UGF1c2VPbkV4Y2VwdGlvbnNBbmRNdXRlQ29uc29sZTogZmFsc2UsXG4gICAgICAgICAgICBlbXVsYXRlVXNlckdlc3R1cmU6IGZhbHNlLFxuICAgICAgICAgICAgZ2VuZXJhdGVQcmV2aWV3OiBmYWxzZSxcbiAgICAgICAgICAgIHNhdmVSZXN1bHQ6IGZhbHNlLFxuICAgICAgICAgIH0sIHBhcmFtcylcbiAgICAgICAgfSksXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICByZWFsTWV0aG9kID0gbWV0aG9kO1xuICAgICAgcmVhbFBhcmFtcyA9IE9iamVjdC5hc3NpZ24oe1xuICAgICAgICBvYmplY3RHcm91cDogT0JKRUNUX0dST1VQLFxuICAgICAgICBpbmNsdWRlQ29tbWFuZExpbmVBUEk6IHRydWUsXG4gICAgICAgIGRvTm90UGF1c2VPbkV4Y2VwdGlvbnNBbmRNdXRlQ29uc29sZTogZmFsc2UsXG4gICAgICAgIGVtdWxhdGVVc2VyR2VzdHVyZTogZmFsc2UsXG4gICAgICB9LCBwYXJhbXMpO1xuICAgIH1cblxuICAgIGNvbnN0IHBsaXN0ID0ge1xuICAgICAgX19hcmd1bWVudDoge1xuICAgICAgICBXSVJTb2NrZXREYXRhS2V5OiB7XG4gICAgICAgICAgbWV0aG9kOiByZWFsTWV0aG9kLFxuICAgICAgICAgIHBhcmFtczogcmVhbFBhcmFtcyxcbiAgICAgICAgfSxcbiAgICAgICAgV0lSQ29ubmVjdGlvbklkZW50aWZpZXJLZXk6IGNvbm5JZCxcbiAgICAgICAgV0lSU2VuZGVyS2V5OiBzZW5kZXJJZCxcbiAgICAgICAgV0lSQXBwbGljYXRpb25JZGVudGlmaWVyS2V5OiBhcHBJZEtleSxcbiAgICAgICAgV0lSUGFnZUlkZW50aWZpZXJLZXk6IHBhZ2VJZEtleSxcbiAgICAgIH0sXG4gICAgICBfX3NlbGVjdG9yOiAnX3JwY19mb3J3YXJkU29ja2V0RGF0YTonLFxuICAgIH07XG4gICAgcmV0dXJuIF8ub21pdEJ5KHBsaXN0LCBfLmlzTmlsKTtcbiAgfVxuXG4gIGdldE1pbmltYWxDb21tYW5kIChvcHRzID0ge30pIHtcbiAgICBjb25zdCB7bWV0aG9kLCBwYXJhbXMsIGNvbm5JZCwgc2VuZGVySWQsIGFwcElkS2V5LCBwYWdlSWRLZXksIHRhcmdldElkLCBpZH0gPSBvcHRzO1xuXG4gICAgbGV0IHJlYWxNZXRob2QgPSBtZXRob2Q7XG4gICAgbGV0IHJlYWxQYXJhbXMgPSBwYXJhbXM7XG4gICAgaWYgKHRoaXMuaXNUYXJnZXRCYXNlZCkge1xuICAgICAgcmVhbE1ldGhvZCA9ICdUYXJnZXQuc2VuZE1lc3NhZ2VUb1RhcmdldCc7XG4gICAgICByZWFsUGFyYW1zID0ge1xuICAgICAgICB0YXJnZXRJZCxcbiAgICAgICAgbWVzc2FnZTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgIGlkLFxuICAgICAgICAgIG1ldGhvZCxcbiAgICAgICAgICBwYXJhbXMsXG4gICAgICAgIH0pLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBjb25zdCBwbGlzdCA9IHtcbiAgICAgIF9fYXJndW1lbnQ6IHtcbiAgICAgICAgV0lSU29ja2V0RGF0YUtleToge1xuICAgICAgICAgIG1ldGhvZDogcmVhbE1ldGhvZCxcbiAgICAgICAgICBwYXJhbXM6IHJlYWxQYXJhbXMsXG4gICAgICAgIH0sXG4gICAgICAgIFdJUkNvbm5lY3Rpb25JZGVudGlmaWVyS2V5OiBjb25uSWQsXG4gICAgICAgIFdJUlNlbmRlcktleTogc2VuZGVySWQsXG4gICAgICAgIFdJUkFwcGxpY2F0aW9uSWRlbnRpZmllcktleTogYXBwSWRLZXksXG4gICAgICAgIFdJUlBhZ2VJZGVudGlmaWVyS2V5OiBwYWdlSWRLZXksXG4gICAgICB9LFxuICAgICAgX19zZWxlY3RvcjogJ19ycGNfZm9yd2FyZFNvY2tldERhdGE6J1xuICAgIH07XG4gICAgcmV0dXJuIF8ub21pdEJ5KHBsaXN0LCBfLmlzTmlsKTtcbiAgfVxuXG4gIGdldERpcmVjdENvbW1hbmQgKG9wdHMgPSB7fSkge1xuICAgIGNvbnN0IHttZXRob2QsIHBhcmFtcywgY29ubklkLCBzZW5kZXJJZCwgYXBwSWRLZXksIHBhZ2VJZEtleSwgaWR9ID0gb3B0cztcblxuICAgIGNvbnN0IHBsaXN0ID0ge1xuICAgICAgX19hcmd1bWVudDoge1xuICAgICAgICBXSVJTb2NrZXREYXRhS2V5OiB7XG4gICAgICAgICAgaWQsXG4gICAgICAgICAgbWV0aG9kLFxuICAgICAgICAgIHBhcmFtcyxcbiAgICAgICAgfSxcbiAgICAgICAgV0lSQ29ubmVjdGlvbklkZW50aWZpZXJLZXk6IGNvbm5JZCxcbiAgICAgICAgV0lSU2VuZGVyS2V5OiBzZW5kZXJJZCxcbiAgICAgICAgV0lSQXBwbGljYXRpb25JZGVudGlmaWVyS2V5OiBhcHBJZEtleSxcbiAgICAgICAgV0lSUGFnZUlkZW50aWZpZXJLZXk6IHBhZ2VJZEtleSxcbiAgICAgIH0sXG4gICAgICBfX3NlbGVjdG9yOiAnX3JwY19mb3J3YXJkU29ja2V0RGF0YTonXG4gICAgfTtcbiAgICByZXR1cm4gXy5vbWl0QnkocGxpc3QsIF8uaXNOaWwpO1xuICB9XG5cbiAgZ2V0UmVtb3RlQ29tbWFuZCAoY29tbWFuZCwgb3B0cykge1xuICAgIGNvbnN0IHtcbiAgICAgIGlkLFxuICAgICAgY29ubklkLFxuICAgICAgYXBwSWRLZXksXG4gICAgICBzZW5kZXJJZCxcbiAgICAgIHBhZ2VJZEtleSxcbiAgICAgIHRhcmdldElkLFxuICAgIH0gPSBvcHRzO1xuXG4gICAgLy8gZGVhbCB3aXRoIFNhZmFyaSBXZWIgSW5zcGVjdG9yIGNvbW1hbmRzXG4gICAgc3dpdGNoIChjb21tYW5kKSB7XG4gICAgICBjYXNlICdzZXRDb25uZWN0aW9uS2V5JzpcbiAgICAgICAgcmV0dXJuIHRoaXMuc2V0Q29ubmVjdGlvbktleShjb25uSWQpO1xuICAgICAgY2FzZSAnaW5kaWNhdGVXZWJWaWV3JzpcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5kaWNhdGVXZWJWaWV3KGNvbm5JZCwgYXBwSWRLZXksIHBhZ2VJZEtleSwgb3B0cy5lbmFibGVkKTtcbiAgICAgIGNhc2UgJ2Nvbm5lY3RUb0FwcCc6XG4gICAgICAgIHJldHVybiB0aGlzLmNvbm5lY3RUb0FwcChjb25uSWQsIGFwcElkS2V5KTtcbiAgICAgIGNhc2UgJ3NldFNlbmRlcktleSc6XG4gICAgICAgIHJldHVybiB0aGlzLnNldFNlbmRlcktleShjb25uSWQsIHNlbmRlcklkLCBhcHBJZEtleSwgcGFnZUlkS2V5KTtcbiAgICAgIGNhc2UgJ2xhdW5jaEFwcGxpY2F0aW9uJzpcbiAgICAgICAgcmV0dXJuIHRoaXMubGF1bmNoQXBwbGljYXRpb24ob3B0cy5idW5kbGVJZCk7XG4gICAgfVxuXG4gICAgLy8gZGVhbCB3aXRoIFdlYktpdCBjb21tYW5kc1xuICAgIGNvbnN0IGJ1aWxkZXJGdW5jdGlvbiA9IENPTU1BTkRTW2NvbW1hbmRdIHx8IE1JTklNQUxfQ09NTUFORDtcbiAgICByZXR1cm4gdGhpc1tidWlsZGVyRnVuY3Rpb25dKHtcbiAgICAgIC4uLmdldFByb3RvY29sQ29tbWFuZChpZCwgY29tbWFuZCwgb3B0cyksXG4gICAgICBjb25uSWQsXG4gICAgICBhcHBJZEtleSxcbiAgICAgIHNlbmRlcklkLFxuICAgICAgcGFnZUlkS2V5LFxuICAgICAgdGFyZ2V0SWQsXG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IHsgUmVtb3RlTWVzc2FnZXMgfTtcbmV4cG9ydCBkZWZhdWx0IFJlbW90ZU1lc3NhZ2VzO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUdBLE1BQU1BLFlBQVksR0FBRyxTQUFyQjtBQUVBLE1BQU1DLGVBQWUsR0FBRyxtQkFBeEI7QUFDQSxNQUFNQyxZQUFZLEdBQUcsZ0JBQXJCO0FBQ0EsTUFBTUMsY0FBYyxHQUFHLGtCQUF2QjtBQUlBLE1BQU1DLFFBQVEsR0FBRztFQUNmLG1CQUFtQkYsWUFESjtFQUVmLGlCQUFpQkEsWUFGRjtFQUlmLHdCQUF3QkEsWUFKVDtFQUtmLDBCQUEwQkEsWUFMWDtFQU1mLG9CQUFvQkEsWUFOTDtFQVFmLGlCQUFpQkMsY0FSRjtFQVVmLGtCQUFrQkQsWUFWSDtFQVdmLGlCQUFpQkE7QUFYRixDQUFqQjs7QUFjQSxNQUFNRyxjQUFOLENBQXFCO0VBQ25CQyxXQUFXLENBQUVDLGFBQWEsR0FBRyxL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
|
|
264
|
+
exports.default = _default;
|
|
265
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJPQkpFQ1RfR1JPVVAiLCJNSU5JTUFMX0NPTU1BTkQiLCJGVUxMX0NPTU1BTkQiLCJESVJFQ1RfQ09NTUFORCIsIkNPTU1BTkRTIiwiUmVtb3RlTWVzc2FnZXMiLCJjb25zdHJ1Y3RvciIsImlzVGFyZ2V0QmFzZWQiLCJfaXNUYXJnZXRCYXNlZCIsInNldENvbm5lY3Rpb25LZXkiLCJjb25uSWQiLCJfX2FyZ3VtZW50IiwiV0lSQ29ubmVjdGlvbklkZW50aWZpZXJLZXkiLCJfX3NlbGVjdG9yIiwiY29ubmVjdFRvQXBwIiwiYXBwSWRLZXkiLCJXSVJBcHBsaWNhdGlvbklkZW50aWZpZXJLZXkiLCJzZXRTZW5kZXJLZXkiLCJzZW5kZXJJZCIsInBhZ2VJZEtleSIsIldJUlNlbmRlcktleSIsIldJUlBhZ2VJZGVudGlmaWVyS2V5IiwiV0lSQXV0b21hdGljYWxseVBhdXNlIiwiaW5kaWNhdGVXZWJWaWV3IiwiZW5hYmxlZCIsIldJUkluZGljYXRlRW5hYmxlZEtleSIsIl8iLCJpc05pbCIsImxhdW5jaEFwcGxpY2F0aW9uIiwiYnVuZGxlSWQiLCJXSVJBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXJLZXkiLCJnZXRGdWxsQ29tbWFuZCIsIm9wdHMiLCJtZXRob2QiLCJwYXJhbXMiLCJ0YXJnZXRJZCIsImlkIiwicmVhbE1ldGhvZCIsInJlYWxQYXJhbXMiLCJtZXNzYWdlIiwiSlNPTiIsInN0cmluZ2lmeSIsIk9iamVjdCIsImFzc2lnbiIsIm9iamVjdEdyb3VwIiwiaW5jbHVkZUNvbW1hbmRMaW5lQVBJIiwiZG9Ob3RQYXVzZU9uRXhjZXB0aW9uc0FuZE11dGVDb25zb2xlIiwiZW11bGF0ZVVzZXJHZXN0dXJlIiwiZ2VuZXJhdGVQcmV2aWV3Iiwic2F2ZVJlc3VsdCIsInBsaXN0IiwiV0lSU29ja2V0RGF0YUtleSIsIm9taXRCeSIsImdldE1pbmltYWxDb21tYW5kIiwiZ2V0RGlyZWN0Q29tbWFuZCIsImdldFJlbW90ZUNvbW1hbmQiLCJjb21tYW5kIiwiYnVpbGRlckZ1bmN0aW9uIiwiZ2V0UHJvdG9jb2xDb21tYW5kIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL3JwYy9yZW1vdGUtbWVzc2FnZXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBnZXRQcm90b2NvbENvbW1hbmQgZnJvbSAnLi4vcHJvdG9jb2wnO1xuXG5cbmNvbnN0IE9CSkVDVF9HUk9VUCA9ICdjb25zb2xlJztcblxuY29uc3QgTUlOSU1BTF9DT01NQU5EID0gJ2dldE1pbmltYWxDb21tYW5kJztcbmNvbnN0IEZVTExfQ09NTUFORCA9ICdnZXRGdWxsQ29tbWFuZCc7XG5jb25zdCBESVJFQ1RfQ09NTUFORCA9ICdnZXREaXJlY3RDb21tYW5kJztcblxuLy8gbWFwcGluZyBvZiBjb21tYW5kcyB0byB0aGUgZnVuY3Rpb24gZm9yIGdldHRpbmcgdGhlIGNvbW1hbmRcbi8vIGRlZmF1bHRzIHRvIGBnZXRNaW5pbWFsQ29tbWFuZGAsIHNvIG5vIG5lZWQgdG8gaGF2ZSB0aG9zZSBsaXN0ZWQgaGVyZVxuY29uc3QgQ09NTUFORFMgPSB7XG4gICdQYWdlLmdldENvb2tpZXMnOiBGVUxMX0NPTU1BTkQsXG4gICdQYWdlLm5hdmlnYXRlJzogRlVMTF9DT01NQU5ELFxuXG4gICdSdW50aW1lLmF3YWl0UHJvbWlzZSc6IEZVTExfQ09NTUFORCxcbiAgJ1J1bnRpbWUuY2FsbEZ1bmN0aW9uT24nOiBGVUxMX0NPTU1BTkQsXG4gICdSdW50aW1lLmV2YWx1YXRlJzogRlVMTF9DT01NQU5ELFxuXG4gICdUYXJnZXQuZXhpc3RzJzogRElSRUNUX0NPTU1BTkQsXG5cbiAgJ1RpbWVsaW5lLnN0YXJ0JzogRlVMTF9DT01NQU5ELFxuICAnVGltZWxpbmUuc3RvcCc6IEZVTExfQ09NTUFORCxcbn07XG5cbmNsYXNzIFJlbW90ZU1lc3NhZ2VzIHtcbiAgY29uc3RydWN0b3IgKGlzVGFyZ2V0QmFzZWQgPSBmYWxzZSkge1xuICAgIHRoaXMuaXNUYXJnZXRCYXNlZCA9IGlzVGFyZ2V0QmFzZWQ7XG4gIH1cblxuICBzZXQgaXNUYXJnZXRCYXNlZCAoaXNUYXJnZXRCYXNlZCkge1xuICAgIHRoaXMuX2lzVGFyZ2V0QmFzZWQgPSBpc1RhcmdldEJhc2VkO1xuICB9XG5cbiAgZ2V0IGlzVGFyZ2V0QmFzZWQgKCkge1xuICAgIHJldHVybiB0aGlzLl9pc1RhcmdldEJhc2VkO1xuICB9XG5cbiAgLypcbiAgICogQ29ubmVjdGlvbiBmdW5jdGlvbnNcbiAgICovXG5cbiAgc2V0Q29ubmVjdGlvbktleSAoY29ubklkKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIF9fYXJndW1lbnQ6IHtcbiAgICAgICAgV0lSQ29ubmVjdGlvbklkZW50aWZpZXJLZXk6IGNvbm5JZFxuICAgICAgfSxcbiAgICAgIF9fc2VsZWN0b3I6ICdfcnBjX3JlcG9ydElkZW50aWZpZXI6J1xuICAgIH07XG4gIH1cblxuICBjb25uZWN0VG9BcHAgKGNvbm5JZCwgYXBwSWRLZXkpIHtcbiAgICByZXR1cm4ge1xuICAgICAgX19hcmd1bWVudDoge1xuICAgICAgICBXSVJDb25uZWN0aW9uSWRlbnRpZmllcktleTogY29ubklkLFxuICAgICAgICBXSVJBcHBsaWNhdGlvbklkZW50aWZpZXJLZXk6IGFwcElkS2V5XG4gICAgICB9LFxuICAgICAgX19zZWxlY3RvcjogJ19ycGNfZm9yd2FyZEdldExpc3Rpbmc6J1xuICAgIH07XG4gIH1cblxuICBzZXRTZW5kZXJLZXkgKGNvbm5JZCwgc2VuZGVySWQsIGFwcElkS2V5LCBwYWdlSWRLZXkpIHtcbiAgICByZXR1cm4ge1xuICAgICAgX19hcmd1bWVudDoge1xuICAgICAgICBXSVJBcHBsaWNhdGlvbklkZW50aWZpZXJLZXk6IGFwcElkS2V5LFxuICAgICAgICBXSVJDb25uZWN0aW9uSWRlbnRpZmllcktleTogY29ubklkLFxuICAgICAgICBXSVJTZW5kZXJLZXk6IHNlbmRlcklkLFxuICAgICAgICBXSVJQYWdlSWRlbnRpZmllcktleTogcGFnZUlkS2V5LFxuICAgICAgICBXSVJBdXRvbWF0aWNhbGx5UGF1c2U6IGZhbHNlXG4gICAgICB9LFxuICAgICAgX19zZWxlY3RvcjogJ19ycGNfZm9yd2FyZFNvY2tldFNldHVwOidcbiAgICB9O1xuICB9XG5cbiAgaW5kaWNhdGVXZWJWaWV3IChjb25uSWQsIGFwcElkS2V5LCBwYWdlSWRLZXksIGVuYWJsZWQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgX19hcmd1bWVudDoge1xuICAgICAgICBXSVJBcHBsaWNhdGlvbklkZW50aWZpZXJLZXk6IGFwcElkS2V5LFxuICAgICAgICBXSVJJbmRpY2F0ZUVuYWJsZWRLZXk6IF8uaXNOaWwoZW5hYmxlZCkgPyB0cnVlIDogZW5hYmxlZCxcbiAgICAgICAgV0lSQ29ubmVjdGlvbklkZW50aWZpZXJLZXk6IGNvbm5JZCxcbiAgICAgICAgV0lSUGFnZUlkZW50aWZpZXJLZXk6IHBhZ2VJZEtleVxuICAgICAgfSxcbiAgICAgIF9fc2VsZWN0b3I6ICdfcnBjX2ZvcndhcmRJbmRpY2F0ZVdlYlZpZXc6J1xuICAgIH07XG4gIH1cblxuICBsYXVuY2hBcHBsaWNhdGlvbiAoYnVuZGxlSWQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgX19hcmd1bWVudDoge1xuICAgICAgICBXSVJBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXJLZXk6IGJ1bmRsZUlkXG4gICAgICB9LFxuICAgICAgX19zZWxlY3RvcjogJ19ycGNfcmVxdWVzdEFwcGxpY2F0aW9uTGF1bmNoOidcbiAgICB9O1xuICB9XG5cbiAgZ2V0RnVsbENvbW1hbmQgKG9wdHMgPSB7fSkge1xuICAgIGNvbnN0IHtcbiAgICAgIG1ldGhvZCxcbiAgICAgIHBhcmFtcyxcbiAgICAgIGNvbm5JZCxcbiAgICAgIHNlbmRlcklkLFxuICAgICAgYXBwSWRLZXksXG4gICAgICBwYWdlSWRLZXksXG4gICAgICB0YXJnZXRJZCxcbiAgICAgIGlkLFxuICAgIH0gPSBvcHRzO1xuXG4gICAgLyogVGhlIFdlYiBJbnNwZWN0b3IgaGFzIGEgbnVtYmVyIG9mIHBhcmFtZXRlcnMgdGhhdCBjYW4gYmUgcGFzc2VkIGluLCBhc1xuICAgICAqIHNlZW4gd2hlbiBkdW1waW5nIHdoYXQgU2FmYXJpIGlzIGRvaW5nIHdoZW4gY29tbXVuaWNhdGluZyB3aXRoIGl0LiBNb3N0XG4gICAgICogYXJlIGtlcHQgYXMgdGhleSBhcmUgc2V0IGZvciBTYWZhcmkuIFRoZSBleGNlcHRpb24gaXMgYGVtdWxhdGVVc2VyR2VzdHVyZWBcbiAgICAgKiB3aGljaCwgb24gaU9TIDEzKywgYnJlYWtzIHBvcHVwIGJsb2NraW5nIChpLmUuLCBldmVuIHdpdGggdGhlIHBvcHVwXG4gICAgICogYmxvY2tpbmcgc2V0dGluZyBvbiwgbmV3IHdpbmRvd3MgYXJlIG9wZW5hYmxlIGJvdGggZnJvbSBsaW5rcyBhbmQgZnJvbVxuICAgICAqIEphdmFTY3JpcHQpLlxuICAgICAqL1xuXG4gICAgbGV0IHJlYWxNZXRob2Q7XG4gICAgbGV0IHJlYWxQYXJhbXM7XG4gICAgaWYgKHRoaXMuaXNUYXJnZXRCYXNlZCkge1xuICAgICAgcmVhbE1ldGhvZCA9ICdUYXJnZXQuc2VuZE1lc3NhZ2VUb1RhcmdldCc7XG4gICAgICByZWFsUGFyYW1zID0ge1xuICAgICAgICB0YXJnZXRJZCxcbiAgICAgICAgbWVzc2FnZTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgIGlkLFxuICAgICAgICAgIG1ldGhvZCxcbiAgICAgICAgICBwYXJhbXM6IE9iamVjdC5hc3NpZ24oe1xuICAgICAgICAgICAgb2JqZWN0R3JvdXA6IE9CSkVDVF9HUk9VUCxcbiAgICAgICAgICAgIGluY2x1ZGVDb21tYW5kTGluZUFQSTogdHJ1ZSxcbiAgICAgICAgICAgIGRvTm90UGF1c2VPbkV4Y2VwdGlvbnNBbmRNdXRlQ29uc29sZTogZmFsc2UsXG4gICAgICAgICAgICBlbXVsYXRlVXNlckdlc3R1cmU6IGZhbHNlLFxuICAgICAgICAgICAgZ2VuZXJhdGVQcmV2aWV3OiBmYWxzZSxcbiAgICAgICAgICAgIHNhdmVSZXN1bHQ6IGZhbHNlLFxuICAgICAgICAgIH0sIHBhcmFtcylcbiAgICAgICAgfSksXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICByZWFsTWV0aG9kID0gbWV0aG9kO1xuICAgICAgcmVhbFBhcmFtcyA9IE9iamVjdC5hc3NpZ24oe1xuICAgICAgICBvYmplY3RHcm91cDogT0JKRUNUX0dST1VQLFxuICAgICAgICBpbmNsdWRlQ29tbWFuZExpbmVBUEk6IHRydWUsXG4gICAgICAgIGRvTm90UGF1c2VPbkV4Y2VwdGlvbnNBbmRNdXRlQ29uc29sZTogZmFsc2UsXG4gICAgICAgIGVtdWxhdGVVc2VyR2VzdHVyZTogZmFsc2UsXG4gICAgICB9LCBwYXJhbXMpO1xuICAgIH1cblxuICAgIGNvbnN0IHBsaXN0ID0ge1xuICAgICAgX19hcmd1bWVudDoge1xuICAgICAgICBXSVJTb2NrZXREYXRhS2V5OiB7XG4gICAgICAgICAgbWV0aG9kOiByZWFsTWV0aG9kLFxuICAgICAgICAgIHBhcmFtczogcmVhbFBhcmFtcyxcbiAgICAgICAgfSxcbiAgICAgICAgV0lSQ29ubmVjdGlvbklkZW50aWZpZXJLZXk6IGNvbm5JZCxcbiAgICAgICAgV0lSU2VuZGVyS2V5OiBzZW5kZXJJZCxcbiAgICAgICAgV0lSQXBwbGljYXRpb25JZGVudGlmaWVyS2V5OiBhcHBJZEtleSxcbiAgICAgICAgV0lSUGFnZUlkZW50aWZpZXJLZXk6IHBhZ2VJZEtleSxcbiAgICAgIH0sXG4gICAgICBfX3NlbGVjdG9yOiAnX3JwY19mb3J3YXJkU29ja2V0RGF0YTonLFxuICAgIH07XG4gICAgcmV0dXJuIF8ub21pdEJ5KHBsaXN0LCBfLmlzTmlsKTtcbiAgfVxuXG4gIGdldE1pbmltYWxDb21tYW5kIChvcHRzID0ge30pIHtcbiAgICBjb25zdCB7bWV0aG9kLCBwYXJhbXMsIGNvbm5JZCwgc2VuZGVySWQsIGFwcElkS2V5LCBwYWdlSWRLZXksIHRhcmdldElkLCBpZH0gPSBvcHRzO1xuXG4gICAgbGV0IHJlYWxNZXRob2QgPSBtZXRob2Q7XG4gICAgbGV0IHJlYWxQYXJhbXMgPSBwYXJhbXM7XG4gICAgaWYgKHRoaXMuaXNUYXJnZXRCYXNlZCkge1xuICAgICAgcmVhbE1ldGhvZCA9ICdUYXJnZXQuc2VuZE1lc3NhZ2VUb1RhcmdldCc7XG4gICAgICByZWFsUGFyYW1zID0ge1xuICAgICAgICB0YXJnZXRJZCxcbiAgICAgICAgbWVzc2FnZTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgIGlkLFxuICAgICAgICAgIG1ldGhvZCxcbiAgICAgICAgICBwYXJhbXMsXG4gICAgICAgIH0pLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBjb25zdCBwbGlzdCA9IHtcbiAgICAgIF9fYXJndW1lbnQ6IHtcbiAgICAgICAgV0lSU29ja2V0RGF0YUtleToge1xuICAgICAgICAgIG1ldGhvZDogcmVhbE1ldGhvZCxcbiAgICAgICAgICBwYXJhbXM6IHJlYWxQYXJhbXMsXG4gICAgICAgIH0sXG4gICAgICAgIFdJUkNvbm5lY3Rpb25JZGVudGlmaWVyS2V5OiBjb25uSWQsXG4gICAgICAgIFdJUlNlbmRlcktleTogc2VuZGVySWQsXG4gICAgICAgIFdJUkFwcGxpY2F0aW9uSWRlbnRpZmllcktleTogYXBwSWRLZXksXG4gICAgICAgIFdJUlBhZ2VJZGVudGlmaWVyS2V5OiBwYWdlSWRLZXksXG4gICAgICB9LFxuICAgICAgX19zZWxlY3RvcjogJ19ycGNfZm9yd2FyZFNvY2tldERhdGE6J1xuICAgIH07XG4gICAgcmV0dXJuIF8ub21pdEJ5KHBsaXN0LCBfLmlzTmlsKTtcbiAgfVxuXG4gIGdldERpcmVjdENvbW1hbmQgKG9wdHMgPSB7fSkge1xuICAgIGNvbnN0IHttZXRob2QsIHBhcmFtcywgY29ubklkLCBzZW5kZXJJZCwgYXBwSWRLZXksIHBhZ2VJZEtleSwgaWR9ID0gb3B0cztcblxuICAgIGNvbnN0IHBsaXN0ID0ge1xuICAgICAgX19hcmd1bWVudDoge1xuICAgICAgICBXSVJTb2NrZXREYXRhS2V5OiB7XG4gICAgICAgICAgaWQsXG4gICAgICAgICAgbWV0aG9kLFxuICAgICAgICAgIHBhcmFtcyxcbiAgICAgICAgfSxcbiAgICAgICAgV0lSQ29ubmVjdGlvbklkZW50aWZpZXJLZXk6IGNvbm5JZCxcbiAgICAgICAgV0lSU2VuZGVyS2V5OiBzZW5kZXJJZCxcbiAgICAgICAgV0lSQXBwbGljYXRpb25JZGVudGlmaWVyS2V5OiBhcHBJZEtleSxcbiAgICAgICAgV0lSUGFnZUlkZW50aWZpZXJLZXk6IHBhZ2VJZEtleSxcbiAgICAgIH0sXG4gICAgICBfX3NlbGVjdG9yOiAnX3JwY19mb3J3YXJkU29ja2V0RGF0YTonXG4gICAgfTtcbiAgICByZXR1cm4gXy5vbWl0QnkocGxpc3QsIF8uaXNOaWwpO1xuICB9XG5cbiAgZ2V0UmVtb3RlQ29tbWFuZCAoY29tbWFuZCwgb3B0cykge1xuICAgIGNvbnN0IHtcbiAgICAgIGlkLFxuICAgICAgY29ubklkLFxuICAgICAgYXBwSWRLZXksXG4gICAgICBzZW5kZXJJZCxcbiAgICAgIHBhZ2VJZEtleSxcbiAgICAgIHRhcmdldElkLFxuICAgIH0gPSBvcHRzO1xuXG4gICAgLy8gZGVhbCB3aXRoIFNhZmFyaSBXZWIgSW5zcGVjdG9yIGNvbW1hbmRzXG4gICAgc3dpdGNoIChjb21tYW5kKSB7XG4gICAgICBjYXNlICdzZXRDb25uZWN0aW9uS2V5JzpcbiAgICAgICAgcmV0dXJuIHRoaXMuc2V0Q29ubmVjdGlvbktleShjb25uSWQpO1xuICAgICAgY2FzZSAnaW5kaWNhdGVXZWJWaWV3JzpcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5kaWNhdGVXZWJWaWV3KGNvbm5JZCwgYXBwSWRLZXksIHBhZ2VJZEtleSwgb3B0cy5lbmFibGVkKTtcbiAgICAgIGNhc2UgJ2Nvbm5lY3RUb0FwcCc6XG4gICAgICAgIHJldHVybiB0aGlzLmNvbm5lY3RUb0FwcChjb25uSWQsIGFwcElkS2V5KTtcbiAgICAgIGNhc2UgJ3NldFNlbmRlcktleSc6XG4gICAgICAgIHJldHVybiB0aGlzLnNldFNlbmRlcktleShjb25uSWQsIHNlbmRlcklkLCBhcHBJZEtleSwgcGFnZUlkS2V5KTtcbiAgICAgIGNhc2UgJ2xhdW5jaEFwcGxpY2F0aW9uJzpcbiAgICAgICAgcmV0dXJuIHRoaXMubGF1bmNoQXBwbGljYXRpb24ob3B0cy5idW5kbGVJZCk7XG4gICAgfVxuXG4gICAgLy8gZGVhbCB3aXRoIFdlYktpdCBjb21tYW5kc1xuICAgIGNvbnN0IGJ1aWxkZXJGdW5jdGlvbiA9IENPTU1BTkRTW2NvbW1hbmRdIHx8IE1JTklNQUxfQ09NTUFORDtcbiAgICByZXR1cm4gdGhpc1tidWlsZGVyRnVuY3Rpb25dKHtcbiAgICAgIC4uLmdldFByb3RvY29sQ29tbWFuZChpZCwgY29tbWFuZCwgb3B0cyksXG4gICAgICBjb25uSWQsXG4gICAgICBhcHBJZEtleSxcbiAgICAgIHNlbmRlcklkLFxuICAgICAgcGFnZUlkS2V5LFxuICAgICAgdGFyZ2V0SWQsXG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IHsgUmVtb3RlTWVzc2FnZXMgfTtcbmV4cG9ydCBkZWZhdWx0IFJlbW90ZU1lc3NhZ2VzO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUdBLE1BQU1BLFlBQVksR0FBRyxTQUFyQjtBQUVBLE1BQU1DLGVBQWUsR0FBRyxtQkFBeEI7QUFDQSxNQUFNQyxZQUFZLEdBQUcsZ0JBQXJCO0FBQ0EsTUFBTUMsY0FBYyxHQUFHLGtCQUF2QjtBQUlBLE1BQU1DLFFBQVEsR0FBRztFQUNmLG1CQUFtQkYsWUFESjtFQUVmLGlCQUFpQkEsWUFGRjtFQUlmLHdCQUF3QkEsWUFKVDtFQUtmLDBCQUEwQkEsWUFMWDtFQU1mLG9CQUFvQkEsWUFOTDtFQVFmLGlCQUFpQkMsY0FSRjtFQVVmLGtCQUFrQkQsWUFWSDtFQVdmLGlCQUFpQkE7QUFYRixDQUFqQjs7QUFjQSxNQUFNRyxjQUFOLENBQXFCO0VBQ25CQyxXQUFXLENBQUVDLGFBQWEsR0FBRyxLQUFsQixFQUF5QjtJQUNsQyxLQUFLQSxhQUFMLEdBQXFCQSxhQUFyQjtFQUNEOztFQUVn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
|
|
@@ -65,7 +65,5 @@ class RpcClientRealDevice extends _rpcClient.default {
|
|
|
65
65
|
|
|
66
66
|
}
|
|
67
67
|
|
|
68
|
-
exports.default = RpcClientRealDevice;
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL3JwYy9ycGMtY2xpZW50LXJlYWwtZGV2aWNlLmpzIiwibmFtZXMiOlsiUnBjQ2xpZW50UmVhbERldmljZSIsIlJwY0NsaWVudCIsImNvbnN0cnVjdG9yIiwib3B0cyIsIk9iamVjdCIsImFzc2lnbiIsInNob3VsZENoZWNrRm9yVGFyZ2V0IiwidWRpZCIsImNvbm5lY3QiLCJzZXJ2aWNlIiwic2VydmljZXMiLCJzdGFydFdlYkluc3BlY3RvclNlcnZpY2UiLCJvc1ZlcnNpb24iLCJwbGF0Zm9ybVZlcnNpb24iLCJpc1NpbXVsYXRvciIsInZlcmJvc2UiLCJsb2dBbGxDb21tdW5pY2F0aW9uIiwidmVyYm9zZUhleER1bXAiLCJsb2dBbGxDb21tdW5pY2F0aW9uSGV4RHVtcCIsInNvY2tldENodW5rU2l6ZSIsIm1heEZyYW1lTGVuZ3RoIiwid2ViSW5zcGVjdG9yTWF4RnJhbWVMZW5ndGgiLCJsaXN0ZW5NZXNzYWdlIiwicmVjZWl2ZSIsImJpbmQiLCJpc0Nvbm5lY3RlZCIsImRpc2Nvbm5lY3QiLCJsb2ciLCJkZWJ1ZyIsImNsb3NlIiwic2VuZE1lc3NhZ2UiLCJjbWQiLCJkYXRhIiwibWVzc2FnZUhhbmRsZXIiLCJoYW5kbGVNZXNzYWdlIl0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLiIsInNvdXJjZXMiOlsibGliL3JwYy9ycGMtY2xpZW50LXJlYWwtZGV2aWNlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBsb2cgZnJvbSAnLi4vbG9nZ2VyJztcbmltcG9ydCBScGNDbGllbnQgZnJvbSAnLi9ycGMtY2xpZW50JztcbmltcG9ydCB7IHNlcnZpY2VzIH0gZnJvbSAnYXBwaXVtLWlvcy1kZXZpY2UnO1xuXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJwY0NsaWVudFJlYWxEZXZpY2UgZXh0ZW5kcyBScGNDbGllbnQge1xuICBjb25zdHJ1Y3RvciAob3B0cyA9IHt9KSB7XG4gICAgc3VwZXIoT2JqZWN0LmFzc2lnbih7XG4gICAgICBzaG91bGRDaGVja0ZvclRhcmdldDogZmFsc2UsXG4gICAgfSwgb3B0cykpO1xuXG4gICAgY29uc3Qge1xuICAgICAgdWRpZCxcbiAgICB9ID0gb3B0cztcblxuICAgIHRoaXMudWRpZCA9IHVkaWQ7XG4gIH1cblxuICBhc3luYyBjb25uZWN0ICgpIHtcbiAgICB0aGlzLnNlcnZpY2UgPSBhd2FpdCBzZXJ2aWNlcy5zdGFydFdlYkluc3BlY3RvclNlcnZpY2UodGhpcy51ZGlkLCB7XG4gICAgICBvc1ZlcnNpb246IHRoaXMucGxhdGZvcm1WZXJzaW9uLFxuICAgICAgaXNTaW11bGF0b3I6IGZhbHNlLFxuICAgICAgdmVyYm9zZTogdGhpcy5sb2dBbGxDb21tdW5pY2F0aW9uLFxuICAgICAgdmVyYm9zZUhleER1bXA6IHRoaXMubG9nQWxsQ29tbXVuaWNhdGlvbkhleER1bXAsXG4gICAgICBzb2NrZXRDaHVua1NpemU6IHRoaXMuc29ja2V0Q2h1bmtTaXplLFxuICAgICAgbWF4RnJhbWVMZW5ndGg6IHRoaXMud2ViSW5zcGVjdG9yTWF4RnJhbWVMZW5ndGgsXG4gICAgfSk7XG5cbiAgICB0aGlzLnNlcnZpY2UubGlzdGVuTWVzc2FnZSh0aGlzLnJlY2VpdmUuYmluZCh0aGlzKSk7XG4gICAgdGhpcy5pc0Nvbm5lY3RlZCA9IHRydWU7XG4gIH1cblxuICBhc3luYyBkaXNjb25uZWN0ICgpIHtcbiAgICBpZiAoIXRoaXMuaXNDb25uZWN0ZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsb2cuZGVidWcoJ0Rpc2Nvbm5lY3RpbmcgZnJvbSByZW1vdGUgZGVidWdnZXInKTtcbiAgICBhd2FpdCBzdXBlci5kaXNjb25uZWN0KCk7XG4gICAgdGhpcy5zZXJ2aWNlLmNsb3NlKCk7XG4gICAgdGhpcy5pc0Nvbm5lY3RlZCA9IGZhbHNlO1xuICB9XG5cbiAgYXN5bmMgc2VuZE1lc3NhZ2UgKGNtZCkgeyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIHJlcXVpcmUtYXdhaXRcbiAgICB0aGlzLnNlcnZpY2Uuc2VuZE1lc3NhZ2UoY21kKTtcbiAgfVxuXG4gIGFzeW5jIHJlY2VpdmUgKGRhdGEpIHtcbiAgICBpZiAoIXRoaXMuaXNDb25uZWN0ZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgYXdhaXQgdGhpcy5tZXNzYWdlSGFuZGxlci5oYW5kbGVNZXNzYWdlKGRhdGEpO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBR2UsTUFBTUEsbUJBQU4sU0FBa0NDLGtCQUFsQyxDQUE0QztFQUN6REMsV0FBVyxDQUFFQyxJQUFJLEdBQUcsRUFBVCxFQUFhO0lBQ3RCLE1BQU1DLE1BQU0sQ0FBQ0MsTUFBUCxDQUFjO01BQ2xCQyxvQkFBb0IsRUFBRTtJQURKLENBQWQsRUFFSEgsSUFGRyxDQUFOO0lBSUEsTUFBTTtNQUNKSTtJQURJLElBRUZKLElBRko7SUFJQSxLQUFLSSxJQUFMLEdBQVlBLElBQVo7RUFDRDs7RUFFWSxNQUFQQyxPQUFPLEdBQUk7SUFDZixLQUFLQyxPQUFMLEdBQWUsTUFBTUMseUJBQUEsQ0FBU0Msd0JBQVQsQ0FBa0MsS0FBS0osSUFBdkMsRUFBNkM7TUFDaEVLLFNBQVMsRUFBRSxLQUFLQyxlQURnRDtNQUVoRUMsV0FBVyxFQUFFLEtBRm1EO01BR2hFQyxPQUFPLEVBQUUsS0FBS0MsbUJBSGtEO01BSWhFQyxjQUFjLEVBQUUsS0FBS0MsMEJBSjJDO01BS2hFQyxlQUFlLEVBQUUsS0FBS0EsZUFMMEM7TUFNaEVDLGNBQWMsRUFBRSxLQUFLQztJQU4yQyxDQUE3QyxDQUFyQjtJQVNBLEtBQUtaLE9BQUwsQ0FBYWEsYUFBYixDQUEyQixLQUFLQyxPQUFMLENBQWFDLElBQWIsQ0FBa0IsSUFBbEIsQ0FBM0I7SUFDQSxLQUFLQyxXQUFMLEdBQW1CLElBQW5CO0VBQ0Q7O0VBRWUsTUFBVkMsVUFBVSxHQUFJO0lBQ2xCLElBQUksQ0FBQyxLQUFLRCxXQUFWLEVBQXVCO01BQ3JCO0lBQ0Q7O0lBRURFLGVBQUEsQ0FBSUMsS0FBSixDQUFVLG9DQUFWOztJQUNBLE1BQU0sTUFBTUYsVUFBTixFQUFOO0lBQ0EsS0FBS2pCLE9BQUwsQ0FBYW9CLEtBQWI7SUFDQSxLQUFLSixXQUFMLEdBQW1CLEtBQW5CO0VBQ0Q7O0VBRWdCLE1BQVhLLFdBQVcsQ0FBRUMsR0FBRixFQUFPO0lBQ3RCLEtBQUt0QixPQUFMLENBQWFxQixXQUFiLENBQXlCQyxHQUF6QjtFQUNEOztFQUVZLE1BQVBSLE9BQU8sQ0FBRVMsSUFBRixFQUFRO0lBQ25CLElBQUksQ0FBQyxLQUFLUCxXQUFWLEVBQXVCO01BQ3JCO0lBQ0Q7O0lBQ0QsTUFBTSxLQUFLUSxjQUFMLENBQW9CQyxhQUFwQixDQUFrQ0YsSUFBbEMsQ0FBTjtFQUNEOztBQS9Dd0QifQ==
|
|
68
|
+
exports.default = RpcClientRealDevice;
|
|
69
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJScGNDbGllbnRSZWFsRGV2aWNlIiwiUnBjQ2xpZW50IiwiY29uc3RydWN0b3IiLCJvcHRzIiwiT2JqZWN0IiwiYXNzaWduIiwic2hvdWxkQ2hlY2tGb3JUYXJnZXQiLCJ1ZGlkIiwiY29ubmVjdCIsInNlcnZpY2UiLCJzZXJ2aWNlcyIsInN0YXJ0V2ViSW5zcGVjdG9yU2VydmljZSIsIm9zVmVyc2lvbiIsInBsYXRmb3JtVmVyc2lvbiIsImlzU2ltdWxhdG9yIiwidmVyYm9zZSIsImxvZ0FsbENvbW11bmljYXRpb24iLCJ2ZXJib3NlSGV4RHVtcCIsImxvZ0FsbENvbW11bmljYXRpb25IZXhEdW1wIiwic29ja2V0Q2h1bmtTaXplIiwibWF4RnJhbWVMZW5ndGgiLCJ3ZWJJbnNwZWN0b3JNYXhGcmFtZUxlbmd0aCIsImxpc3Rlbk1lc3NhZ2UiLCJyZWNlaXZlIiwiYmluZCIsImlzQ29ubmVjdGVkIiwiZGlzY29ubmVjdCIsImxvZyIsImRlYnVnIiwiY2xvc2UiLCJzZW5kTWVzc2FnZSIsImNtZCIsImRhdGEiLCJtZXNzYWdlSGFuZGxlciIsImhhbmRsZU1lc3NhZ2UiXSwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvcnBjL3JwYy1jbGllbnQtcmVhbC1kZXZpY2UuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGxvZyBmcm9tICcuLi9sb2dnZXInO1xuaW1wb3J0IFJwY0NsaWVudCBmcm9tICcuL3JwYy1jbGllbnQnO1xuaW1wb3J0IHsgc2VydmljZXMgfSBmcm9tICdhcHBpdW0taW9zLWRldmljZSc7XG5cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUnBjQ2xpZW50UmVhbERldmljZSBleHRlbmRzIFJwY0NsaWVudCB7XG4gIGNvbnN0cnVjdG9yIChvcHRzID0ge30pIHtcbiAgICBzdXBlcihPYmplY3QuYXNzaWduKHtcbiAgICAgIHNob3VsZENoZWNrRm9yVGFyZ2V0OiBmYWxzZSxcbiAgICB9LCBvcHRzKSk7XG5cbiAgICBjb25zdCB7XG4gICAgICB1ZGlkLFxuICAgIH0gPSBvcHRzO1xuXG4gICAgdGhpcy51ZGlkID0gdWRpZDtcbiAgfVxuXG4gIGFzeW5jIGNvbm5lY3QgKCkge1xuICAgIHRoaXMuc2VydmljZSA9IGF3YWl0IHNlcnZpY2VzLnN0YXJ0V2ViSW5zcGVjdG9yU2VydmljZSh0aGlzLnVkaWQsIHtcbiAgICAgIG9zVmVyc2lvbjogdGhpcy5wbGF0Zm9ybVZlcnNpb24sXG4gICAgICBpc1NpbXVsYXRvcjogZmFsc2UsXG4gICAgICB2ZXJib3NlOiB0aGlzLmxvZ0FsbENvbW11bmljYXRpb24sXG4gICAgICB2ZXJib3NlSGV4RHVtcDogdGhpcy5sb2dBbGxDb21tdW5pY2F0aW9uSGV4RHVtcCxcbiAgICAgIHNvY2tldENodW5rU2l6ZTogdGhpcy5zb2NrZXRDaHVua1NpemUsXG4gICAgICBtYXhGcmFtZUxlbmd0aDogdGhpcy53ZWJJbnNwZWN0b3JNYXhGcmFtZUxlbmd0aCxcbiAgICB9KTtcblxuICAgIHRoaXMuc2VydmljZS5saXN0ZW5NZXNzYWdlKHRoaXMucmVjZWl2ZS5iaW5kKHRoaXMpKTtcbiAgICB0aGlzLmlzQ29ubmVjdGVkID0gdHJ1ZTtcbiAgfVxuXG4gIGFzeW5jIGRpc2Nvbm5lY3QgKCkge1xuICAgIGlmICghdGhpcy5pc0Nvbm5lY3RlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxvZy5kZWJ1ZygnRGlzY29ubmVjdGluZyBmcm9tIHJlbW90ZSBkZWJ1Z2dlcicpO1xuICAgIGF3YWl0IHN1cGVyLmRpc2Nvbm5lY3QoKTtcbiAgICB0aGlzLnNlcnZpY2UuY2xvc2UoKTtcbiAgICB0aGlzLmlzQ29ubmVjdGVkID0gZmFsc2U7XG4gIH1cblxuICBhc3luYyBzZW5kTWVzc2FnZSAoY21kKSB7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgcmVxdWlyZS1hd2FpdFxuICAgIHRoaXMuc2VydmljZS5zZW5kTWVzc2FnZShjbWQpO1xuICB9XG5cbiAgYXN5bmMgcmVjZWl2ZSAoZGF0YSkge1xuICAgIGlmICghdGhpcy5pc0Nvbm5lY3RlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBhd2FpdCB0aGlzLm1lc3NhZ2VIYW5kbGVyLmhhbmRsZU1lc3NhZ2UoZGF0YSk7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFHZSxNQUFNQSxtQkFBTixTQUFrQ0Msa0JBQWxDLENBQTRDO0VBQ3pEQyxXQUFXLENBQUVDLElBQUksR0FBRyxFQUFULEVBQWE7SUFDdEIsTUFBTUMsTUFBTSxDQUFDQyxNQUFQLENBQWM7TUFDbEJDLG9CQUFvQixFQUFFO0lBREosQ0FBZCxFQUVISCxJQUZHLENBQU47SUFJQSxNQUFNO01BQ0pJO0lBREksSUFFRkosSUFGSjtJQUlBLEtBQUtJLElBQUwsR0FBWUEsSUFBWjtFQUNEOztFQUVZLE1BQVBDLE9BQU8sR0FBSTtJQUNmLEtBQUtDLE9BQUwsR0FBZSxNQUFNQyx5QkFBQSxDQUFTQyx3QkFBVCxDQUFrQyxLQUFLSixJQUF2QyxFQUE2QztNQUNoRUssU0FBUyxFQUFFLEtBQUtDLGVBRGdEO01BRWhFQyxXQUFXLEVBQUUsS0FGbUQ7TUFHaEVDLE9BQU8sRUFBRSxLQUFLQyxtQkFIa0Q7TUFJaEVDLGNBQWMsRUFBRSxLQUFLQywwQkFKMkM7TUFLaEVDLGVBQWUsRUFBRSxLQUFLQSxlQUwwQztNQU1oRUMsY0FBYyxFQUFFLEtBQUtDO0lBTjJDLENBQTdDLENBQXJCO0lBU0EsS0FBS1osT0FBTCxDQUFhYSxhQUFiLENBQTJCLEtBQUtDLE9BQUwsQ0FBYUMsSUFBYixDQUFrQixJQUFsQixDQUEzQjtJQUNBLEtBQUtDLFdBQUwsR0FBbUIsSUFBbkI7RUFDRDs7RUFFZSxNQUFWQyxVQUFVLEdBQUk7SUFDbEIsSUFBSSxDQUFDLEtBQUtELFdBQVYsRUFBdUI7TUFDckI7SUFDRDs7SUFFREUsZUFBQSxDQUFJQyxLQUFKLENBQVUsb0NBQVY7O0lBQ0EsTUFBTSxNQUFNRixVQUFOLEVBQU47SUFDQSxLQUFLakIsT0FBTCxDQUFhb0IsS0FBYjtJQUNBLEtBQUtKLFdBQUwsR0FBbUIsS0FBbkI7RUFDRDs7RUFFZ0IsTUFBWEssV0FBVyxDQUFFQyxHQUFGLEVBQU87SUFDdEIsS0FBS3RCLE9BQUwsQ0FBYXFCLFdBQWIsQ0FBeUJDLEdBQXpCO0VBQ0Q7O0VBRVksTUFBUFIsT0FBTyxDQUFFUyxJQUFGLEVBQVE7SUFDbkIsSUFBSSxDQUFDLEtBQUtQLFdBQVYsRUFBdUI7TUFDckI7SUFDRDs7SUFDRCxNQUFNLEtBQUtRLGNBQUwsQ0FBb0JDLGFBQXBCLENBQWtDRixJQUFsQyxDQUFOO0VBQ0Q7O0FBL0N3RCJ9
|
|
@@ -162,7 +162,5 @@ class RpcClientSimulator extends _rpcClient.default {
|
|
|
162
162
|
|
|
163
163
|
}
|
|
164
164
|
|
|
165
|
-
exports.default = RpcClientSimulator;
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL3JwYy9ycGMtY2xpZW50LXNpbXVsYXRvci5qcyIsIm5hbWVzIjpbIlJwY0NsaWVudFNpbXVsYXRvciIsIlJwY0NsaWVudCIsImNvbnN0cnVjdG9yIiwib3B0cyIsIk9iamVjdCIsImFzc2lnbiIsInNob3VsZENoZWNrRm9yVGFyZ2V0Iiwic29ja2V0UGF0aCIsImhvc3QiLCJwb3J0IiwibWVzc2FnZVByb3h5Iiwic29ja2V0IiwiY29ubmVjdCIsImxvZyIsImRlYnVnIiwibmV0Iiwib25jZSIsIndyaXRlIiwiSlNPTiIsInN0cmluZ2lmeSIsIlNvY2tldCIsInR5cGUiLCJzZXROb0RlbGF5Iiwic2V0S2VlcEFsaXZlIiwib24iLCJpc0Nvbm5lY3RlZCIsInNlcnZpY2UiLCJzZXJ2aWNlcyIsInN0YXJ0V2ViSW5zcGVjdG9yU2VydmljZSIsInVkaWQiLCJpc1NpbXVsYXRvciIsIm9zVmVyc2lvbiIsInBsYXRmb3JtVmVyc2lvbiIsInZlcmJvc2UiLCJsb2dBbGxDb21tdW5pY2F0aW9uIiwidmVyYm9zZUhleER1bXAiLCJsb2dBbGxDb21tdW5pY2F0aW9uSGV4RHVtcCIsIm1heEZyYW1lTGVuZ3RoIiwid2ViSW5zcGVjdG9yTWF4RnJhbWVMZW5ndGgiLCJsaXN0ZW5NZXNzYWdlIiwicmVjZWl2ZSIsImJpbmQiLCJCIiwicmVzb2x2ZSIsInJlamVjdCIsImVyciIsImVycm9yIiwibWVzc2FnZSIsImRpc2Nvbm5lY3QiLCJjbG9zZSIsInNlbmRNZXNzYWdlIiwiY21kIiwib25Tb2NrZXRFcnJvciIsImZpbmFsbHkiLCJyZW1vdmVMaXN0ZW5lciIsImlnbiIsImRhdGEiLCJrZXkiLCJfIiwiaXNVbmRlZmluZWQiLCJ0b1N0cmluZyIsIm1lc3NhZ2VIYW5kbGVyIiwiaGFuZGxlTWVzc2FnZSJdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4iLCJzb3VyY2VzIjpbImxpYi9ycGMvcnBjLWNsaWVudC1zaW11bGF0b3IuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGxvZyBmcm9tICcuLi9sb2dnZXInO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBCIGZyb20gJ2JsdWViaXJkJztcbmltcG9ydCBuZXQgZnJvbSAnbmV0JztcbmltcG9ydCBScGNDbGllbnQgZnJvbSAnLi9ycGMtY2xpZW50JztcbmltcG9ydCB7IHNlcnZpY2VzIH0gZnJvbSAnYXBwaXVtLWlvcy1kZXZpY2UnO1xuXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJwY0NsaWVudFNpbXVsYXRvciBleHRlbmRzIFJwY0NsaWVudCB7XG4gIGNvbnN0cnVjdG9yIChvcHRzID0ge30pIHtcbiAgICBzdXBlcihPYmplY3QuYXNzaWduKHtcbiAgICAgIHNob3VsZENoZWNrRm9yVGFyZ2V0OiBmYWxzZSxcbiAgICB9LCBvcHRzKSk7XG5cbiAgICBjb25zdCB7XG4gICAgICBzb2NrZXRQYXRoLFxuICAgICAgaG9zdCA9ICc6OjEnLFxuICAgICAgcG9ydCxcbiAgICAgIG1lc3NhZ2VQcm94eSxcbiAgICB9ID0gb3B0cztcblxuICAgIC8vIGhvc3QvcG9ydCBjb25maWcgZm9yIFRDUCBjb21tdW5pY2F0aW9uLCBzb2NrZXRQYXRoIGZvciB1bml4IGRvbWFpbiBzb2NrZXRzXG4gICAgdGhpcy5ob3N0ID0gaG9zdDtcbiAgICB0aGlzLnBvcnQgPSBwb3J0O1xuICAgIHRoaXMubWVzc2FnZVByb3h5ID0gbWVzc2FnZVByb3h5O1xuXG4gICAgdGhpcy5zb2NrZXQgPSBudWxsO1xuICAgIHRoaXMuc29ja2V0UGF0aCA9IHNvY2tldFBhdGg7XG4gIH1cblxuICBhc3luYyBjb25uZWN0ICgpIHtcbiAgICAvLyBjcmVhdGUgc29ja2V0IGFuZCBoYW5kbGUgaXRzIG1lc3NhZ2VzXG4gICAgaWYgKHRoaXMuc29ja2V0UGF0aCkge1xuICAgICAgaWYgKHRoaXMubWVzc2FnZVByb3h5KSB7XG4gICAgICAgIC8vIHVuaXggZG9tYWluIHNvY2tldCB2aWEgcHJveHlcbiAgICAgICAgbG9nLmRlYnVnKGBDb25uZWN0aW5nIHRvIHJlbW90ZSBkZWJ1Z2dlciB2aWEgcHJveHkgdGhyb3VnaCB1bml4IGRvbWFpbiBzb2NrZXQ6ICcke3RoaXMubWVzc2FnZVByb3h5fSdgKTtcbiAgICAgICAgdGhpcy5zb2NrZXQgPSBuZXQuY29ubmVjdCh0aGlzLm1lc3NhZ2VQcm94eSk7XG5cbiAgICAgICAgLy8gRm9yd2FyZCB0aGUgYWN0dWFsIHNvY2tldFBhdGggdG8gdGhlIHByb3h5XG4gICAgICAgIHRoaXMuc29ja2V0Lm9uY2UoJ2Nvbm5lY3QnLCAoKSA9PiB7XG4gICAgICAgICAgbG9nLmRlYnVnKGBGb3J3YXJkaW5nIHRoZSBhY3R1YWwgd2ViIGluc3BlY3RvciBzb2NrZXQgdG8gdGhlIHByb3h5OiAnJHt0aGlzLnNvY2tldFBhdGh9J2ApO1xuICAgICAgICAgIHRoaXMuc29ja2V0LndyaXRlKEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgIHNvY2tldFBhdGg6IHRoaXMuc29ja2V0UGF0aFxuICAgICAgICAgIH0pKTtcbiAgICAgICAgfSk7XG5cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIHVuaXggZG9tYWluIHNvY2tldFxuICAgICAgICBsb2cuZGVidWcoYENvbm5lY3RpbmcgdG8gcmVtb3RlIGRlYnVnZ2VyIHRocm91Z2ggdW5peCBkb21haW4gc29ja2V0OiAnJHt0aGlzLnNvY2tldFBhdGh9J2ApO1xuICAgICAgICB0aGlzLnNvY2tldCA9IG5ldC5jb25uZWN0KHRoaXMuc29ja2V0UGF0aCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLm1lc3NhZ2VQcm94eSkge1xuICAgICAgICAvLyBjb25uZWN0IHRvIHRoZSBwcm94eSBpbnN0ZWFkIG9mIHRoZSByZW1vdGUgZGVidWdnZXIgZGlyZWN0bHlcbiAgICAgICAgdGhpcy5wb3J0ID0gdGhpcy5tZXNzYWdlUHJveHk7XG4gICAgICB9XG5cbiAgICAgIC8vIHRjcCBzb2NrZXRcbiAgICAgIGxvZy5kZWJ1ZyhgQ29ubmVjdGluZyB0byByZW1vdGUgZGVidWdnZXIgJHt0aGlzLm1lc3NhZ2VQcm94eSA/ICd2aWEgcHJveHkgJyA6ICcnfXRocm91Z2ggVENQOiAke3RoaXMuaG9zdH06JHt0aGlzLnBvcnR9YCk7XG4gICAgICB0aGlzLnNvY2tldCA9IG5ldyBuZXQuU29ja2V0KHt0eXBlOiAndGNwNid9KTtcbiAgICAgIHRoaXMuc29ja2V0LmNvbm5lY3QodGhpcy5wb3J0LCB0aGlzLmhvc3QpO1xuICAgIH1cblxuICAgIHRoaXMuc29ja2V0LnNldE5vRGVsYXkodHJ1ZSk7XG4gICAgdGhpcy5zb2NrZXQuc2V0S2VlcEFsaXZlKHRydWUpO1xuICAgIHRoaXMuc29ja2V0Lm9uKCdjbG9zZScsICgpID0+IHtcbiAgICAgIGlmICh0aGlzLmlzQ29ubmVjdGVkKSB7XG4gICAgICAgIGxvZy5kZWJ1ZygnRGVidWdnZXIgc29ja2V0IGRpc2Nvbm5lY3RlZCcpO1xuICAgICAgfVxuICAgICAgdGhpcy5pc0Nvbm5lY3RlZCA9IGZhbHNlO1xuICAgICAgdGhpcy5zb2NrZXQgPSBudWxsO1xuICAgIH0pO1xuICAgIHRoaXMuc29ja2V0Lm9uKCdlbmQnLCAoKSA9PiB7XG4gICAgICB0aGlzLmlzQ29ubmVjdGVkID0gZmFsc2U7XG4gICAgfSk7XG4gICAgdGhpcy5zZXJ2aWNlID0gYXdhaXQgc2VydmljZXMuc3RhcnRXZWJJbnNwZWN0b3JTZXJ2aWNlKHRoaXMudWRpZCwge1xuICAgICAgc29ja2V0OiB0aGlzLnNvY2tldCxcbiAgICAgIGlzU2ltdWxhdG9yOiB0cnVlLFxuICAgICAgb3NWZXJzaW9uOiB0aGlzLnBsYXRmb3JtVmVyc2lvbixcbiAgICAgIHZlcmJvc2U6IHRoaXMubG9nQWxsQ29tbXVuaWNhdGlvbixcbiAgICAgIHZlcmJvc2VIZXhEdW1wOiB0aGlzLmxvZ0FsbENvbW11bmljYXRpb25IZXhEdW1wLFxuICAgICAgbWF4RnJhbWVMZW5ndGg6IHRoaXMud2ViSW5zcGVjdG9yTWF4RnJhbWVMZW5ndGgsXG4gICAgfSk7XG4gICAgdGhpcy5zZXJ2aWNlLmxpc3Rlbk1lc3NhZ2UodGhpcy5yZWNlaXZlLmJpbmQodGhpcykpO1xuXG4gICAgLy8gY29ubmVjdCB0aGUgc29ja2V0XG4gICAgcmV0dXJuIGF3YWl0IG5ldyBCKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIC8vIG9ubHkgcmVzb2x2ZSB0aGlzIGZ1bmN0aW9uIHdoZW4gd2UgYXJlIGFjdHVhbGx5IGNvbm5lY3RlZFxuICAgICAgdGhpcy5zb2NrZXQub24oJ2Nvbm5lY3QnLCAoKSA9PiB7XG4gICAgICAgIGxvZy5kZWJ1ZyhgRGVidWdnZXIgc29ja2V0IGNvbm5lY3RlZGApO1xuICAgICAgICB0aGlzLmlzQ29ubmVjdGVkID0gdHJ1ZTtcblxuICAgICAgICByZXNvbHZlKCk7XG4gICAgICB9KTtcbiAgICAgIHRoaXMuc29ja2V0Lm9uKCdlcnJvcicsIChlcnIpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuaXNDb25uZWN0ZWQpIHtcbiAgICAgICAgICBsb2cuZXJyb3IoYFNvY2tldCBlcnJvcjogJHtlcnIubWVzc2FnZX1gKTtcbiAgICAgICAgICB0aGlzLmlzQ29ubmVjdGVkID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICAvLyB0aGUgY29ubmVjdGlvbiB3YXMgcmVmdXNlZCwgc28gcmVqZWN0IHRoZSBjb25uZWN0IHByb21pc2VcbiAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGRpc2Nvbm5lY3QgKCkge1xuICAgIGlmICghdGhpcy5pc0Nvbm5lY3RlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxvZy5kZWJ1ZygnRGlzY29ubmVjdGluZyBmcm9tIHJlbW90ZSBkZWJ1Z2dlcicpO1xuICAgIGF3YWl0IHN1cGVyLmRpc2Nvbm5lY3QoKTtcbiAgICB0aGlzLnNlcnZpY2UuY2xvc2UoKTtcbiAgICB0aGlzLmlzQ29ubmVjdGVkID0gZmFsc2U7XG4gIH1cblxuICBhc3luYyBzZW5kTWVzc2FnZSAoY21kKSB7XG4gICAgbGV0IG9uU29ja2V0RXJyb3I7XG5cbiAgICByZXR1cm4gYXdhaXQgbmV3IEIoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgLy8gaGFuZGxlIHNvY2tldCBwcm9ibGVtc1xuICAgICAgb25Tb2NrZXRFcnJvciA9IChlcnIpID0+IHtcbiAgICAgICAgbG9nLmVycm9yKGBTb2NrZXQgZXJyb3I6ICR7ZXJyLm1lc3NhZ2V9YCk7XG5cbiAgICAgICAgLy8gdGhlIGNvbm5lY3Rpb24gd2FzIHJlZnVzZWQsIHNvIHJlamVjdCB0aGUgY29ubmVjdCBwcm9taXNlXG4gICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgfTtcblxuICAgICAgdGhpcy5zb2NrZXQub24oJ2Vycm9yJywgb25Tb2NrZXRFcnJvcik7XG4gICAgICB0aGlzLnNlcnZpY2Uuc2VuZE1lc3NhZ2UoY21kKTtcbiAgICAgIHJlc29sdmUoKTtcbiAgICB9KVxuICAgIC5maW5hbGx5KCgpID0+IHtcbiAgICAgIC8vIHJlbW92ZSB0aGlzIGxpc3RlbmVyLCBzbyB3ZSBkb24ndCBleGhhdXN0IHRoZSBzeXN0ZW1cbiAgICAgIHRyeSB7XG4gICAgICAgIHRoaXMuc29ja2V0LnJlbW92ZUxpc3RlbmVyKCdlcnJvcicsIG9uU29ja2V0RXJyb3IpO1xuICAgICAgfSBjYXRjaCAoaWduKSB7fVxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgcmVjZWl2ZSAoZGF0YSkge1xuICAgIGlmICghdGhpcy5pc0Nvbm5lY3RlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghZGF0YSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGZvciAoY29uc3Qga2V5IG9mIFsnV0lSTWVzc2FnZURhdGFLZXknLCAnV0lSRGVzdGluYXRpb25LZXknLCAnV0lSU29ja2V0RGF0YUtleSddKSB7XG4gICAgICBpZiAoIV8uaXNVbmRlZmluZWQoZGF0YVtrZXldKSkge1xuICAgICAgICBkYXRhW2tleV0gPSBkYXRhW2tleV0udG9TdHJpbmcoJ3V0ZjgnKTtcbiAgICAgIH1cbiAgICB9XG4gICAgYXdhaXQgdGhpcy5tZXNzYWdlSGFuZGxlci5oYW5kbGVNZXNzYWdlKGRhdGEpO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBR2UsTUFBTUEsa0JBQU4sU0FBaUNDLGtCQUFqQyxDQUEyQztFQUN4REMsV0FBVyxDQUFFQyxJQUFJLEdBQUcsRUFBVCxFQUFhO0lBQ3RCLE1BQU1DLE1BQU0sQ0FBQ0MsTUFBUCxDQUFjO01BQ2xCQyxvQkFBb0IsRUFBRTtJQURKLENBQWQsRUFFSEgsSUFGRyxDQUFOO0lBSUEsTUFBTTtNQUNKSSxVQURJO01BRUpDLElBQUksR0FBRyxLQUZIO01BR0pDLElBSEk7TUFJSkM7SUFKSSxJQUtGUCxJQUxKO0lBUUEsS0FBS0ssSUFBTCxHQUFZQSxJQUFaO0lBQ0EsS0FBS0MsSUFBTCxHQUFZQSxJQUFaO0lBQ0EsS0FBS0MsWUFBTCxHQUFvQkEsWUFBcEI7SUFFQSxLQUFLQyxNQUFMLEdBQWMsSUFBZDtJQUNBLEtBQUtKLFVBQUwsR0FBa0JBLFVBQWxCO0VBQ0Q7O0VBRVksTUFBUEssT0FBTyxHQUFJO0lBRWYsSUFBSSxLQUFLTCxVQUFULEVBQXFCO01BQ25CLElBQUksS0FBS0csWUFBVCxFQUF1QjtRQUVyQkcsZUFBQSxDQUFJQyxLQUFKLENBQVcsd0VBQXVFLEtBQUtKLFlBQWEsR0FBcEc7O1FBQ0EsS0FBS0MsTUFBTCxHQUFjSSxZQUFBLENBQUlILE9BQUosQ0FBWSxLQUFLRixZQUFqQixDQUFkO1FBR0EsS0FBS0MsTUFBTCxDQUFZSyxJQUFaLENBQWlCLFNBQWpCLEVBQTRCLE1BQU07VUFDaENILGVBQUEsQ0FBSUMsS0FBSixDQUFXLDZEQUE0RCxLQUFLUCxVQUFXLEdBQXZGOztVQUNBLEtBQUtJLE1BQUwsQ0FBWU0sS0FBWixDQUFrQkMsSUFBSSxDQUFDQyxTQUFMLENBQWU7WUFDL0JaLFVBQVUsRUFBRSxLQUFLQTtVQURjLENBQWYsQ0FB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
|
|
165
|
+
exports.default = RpcClientSimulator;
|
|
166
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJScGNDbGllbnRTaW11bGF0b3IiLCJScGNDbGllbnQiLCJjb25zdHJ1Y3RvciIsIm9wdHMiLCJPYmplY3QiLCJhc3NpZ24iLCJzaG91bGRDaGVja0ZvclRhcmdldCIsInNvY2tldFBhdGgiLCJob3N0IiwicG9ydCIsIm1lc3NhZ2VQcm94eSIsInNvY2tldCIsImNvbm5lY3QiLCJsb2ciLCJkZWJ1ZyIsIm5ldCIsIm9uY2UiLCJ3cml0ZSIsIkpTT04iLCJzdHJpbmdpZnkiLCJTb2NrZXQiLCJ0eXBlIiwic2V0Tm9EZWxheSIsInNldEtlZXBBbGl2ZSIsIm9uIiwiaXNDb25uZWN0ZWQiLCJzZXJ2aWNlIiwic2VydmljZXMiLCJzdGFydFdlYkluc3BlY3RvclNlcnZpY2UiLCJ1ZGlkIiwiaXNTaW11bGF0b3IiLCJvc1ZlcnNpb24iLCJwbGF0Zm9ybVZlcnNpb24iLCJ2ZXJib3NlIiwibG9nQWxsQ29tbXVuaWNhdGlvbiIsInZlcmJvc2VIZXhEdW1wIiwibG9nQWxsQ29tbXVuaWNhdGlvbkhleER1bXAiLCJtYXhGcmFtZUxlbmd0aCIsIndlYkluc3BlY3Rvck1heEZyYW1lTGVuZ3RoIiwibGlzdGVuTWVzc2FnZSIsInJlY2VpdmUiLCJiaW5kIiwiQiIsInJlc29sdmUiLCJyZWplY3QiLCJlcnIiLCJlcnJvciIsIm1lc3NhZ2UiLCJkaXNjb25uZWN0IiwiY2xvc2UiLCJzZW5kTWVzc2FnZSIsImNtZCIsIm9uU29ja2V0RXJyb3IiLCJmaW5hbGx5IiwicmVtb3ZlTGlzdGVuZXIiLCJpZ24iLCJkYXRhIiwia2V5IiwiXyIsImlzVW5kZWZpbmVkIiwidG9TdHJpbmciLCJtZXNzYWdlSGFuZGxlciIsImhhbmRsZU1lc3NhZ2UiXSwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvcnBjL3JwYy1jbGllbnQtc2ltdWxhdG9yLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBsb2cgZnJvbSAnLi4vbG9nZ2VyJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgQiBmcm9tICdibHVlYmlyZCc7XG5pbXBvcnQgbmV0IGZyb20gJ25ldCc7XG5pbXBvcnQgUnBjQ2xpZW50IGZyb20gJy4vcnBjLWNsaWVudCc7XG5pbXBvcnQgeyBzZXJ2aWNlcyB9IGZyb20gJ2FwcGl1bS1pb3MtZGV2aWNlJztcblxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBScGNDbGllbnRTaW11bGF0b3IgZXh0ZW5kcyBScGNDbGllbnQge1xuICBjb25zdHJ1Y3RvciAob3B0cyA9IHt9KSB7XG4gICAgc3VwZXIoT2JqZWN0LmFzc2lnbih7XG4gICAgICBzaG91bGRDaGVja0ZvclRhcmdldDogZmFsc2UsXG4gICAgfSwgb3B0cykpO1xuXG4gICAgY29uc3Qge1xuICAgICAgc29ja2V0UGF0aCxcbiAgICAgIGhvc3QgPSAnOjoxJyxcbiAgICAgIHBvcnQsXG4gICAgICBtZXNzYWdlUHJveHksXG4gICAgfSA9IG9wdHM7XG5cbiAgICAvLyBob3N0L3BvcnQgY29uZmlnIGZvciBUQ1AgY29tbXVuaWNhdGlvbiwgc29ja2V0UGF0aCBmb3IgdW5peCBkb21haW4gc29ja2V0c1xuICAgIHRoaXMuaG9zdCA9IGhvc3Q7XG4gICAgdGhpcy5wb3J0ID0gcG9ydDtcbiAgICB0aGlzLm1lc3NhZ2VQcm94eSA9IG1lc3NhZ2VQcm94eTtcblxuICAgIHRoaXMuc29ja2V0ID0gbnVsbDtcbiAgICB0aGlzLnNvY2tldFBhdGggPSBzb2NrZXRQYXRoO1xuICB9XG5cbiAgYXN5bmMgY29ubmVjdCAoKSB7XG4gICAgLy8gY3JlYXRlIHNvY2tldCBhbmQgaGFuZGxlIGl0cyBtZXNzYWdlc1xuICAgIGlmICh0aGlzLnNvY2tldFBhdGgpIHtcbiAgICAgIGlmICh0aGlzLm1lc3NhZ2VQcm94eSkge1xuICAgICAgICAvLyB1bml4IGRvbWFpbiBzb2NrZXQgdmlhIHByb3h5XG4gICAgICAgIGxvZy5kZWJ1ZyhgQ29ubmVjdGluZyB0byByZW1vdGUgZGVidWdnZXIgdmlhIHByb3h5IHRocm91Z2ggdW5peCBkb21haW4gc29ja2V0OiAnJHt0aGlzLm1lc3NhZ2VQcm94eX0nYCk7XG4gICAgICAgIHRoaXMuc29ja2V0ID0gbmV0LmNvbm5lY3QodGhpcy5tZXNzYWdlUHJveHkpO1xuXG4gICAgICAgIC8vIEZvcndhcmQgdGhlIGFjdHVhbCBzb2NrZXRQYXRoIHRvIHRoZSBwcm94eVxuICAgICAgICB0aGlzLnNvY2tldC5vbmNlKCdjb25uZWN0JywgKCkgPT4ge1xuICAgICAgICAgIGxvZy5kZWJ1ZyhgRm9yd2FyZGluZyB0aGUgYWN0dWFsIHdlYiBpbnNwZWN0b3Igc29ja2V0IHRvIHRoZSBwcm94eTogJyR7dGhpcy5zb2NrZXRQYXRofSdgKTtcbiAgICAgICAgICB0aGlzLnNvY2tldC53cml0ZShKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICBzb2NrZXRQYXRoOiB0aGlzLnNvY2tldFBhdGhcbiAgICAgICAgICB9KSk7XG4gICAgICAgIH0pO1xuXG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyB1bml4IGRvbWFpbiBzb2NrZXRcbiAgICAgICAgbG9nLmRlYnVnKGBDb25uZWN0aW5nIHRvIHJlbW90ZSBkZWJ1Z2dlciB0aHJvdWdoIHVuaXggZG9tYWluIHNvY2tldDogJyR7dGhpcy5zb2NrZXRQYXRofSdgKTtcbiAgICAgICAgdGhpcy5zb2NrZXQgPSBuZXQuY29ubmVjdCh0aGlzLnNvY2tldFBhdGgpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5tZXNzYWdlUHJveHkpIHtcbiAgICAgICAgLy8gY29ubmVjdCB0byB0aGUgcHJveHkgaW5zdGVhZCBvZiB0aGUgcmVtb3RlIGRlYnVnZ2VyIGRpcmVjdGx5XG4gICAgICAgIHRoaXMucG9ydCA9IHRoaXMubWVzc2FnZVByb3h5O1xuICAgICAgfVxuXG4gICAgICAvLyB0Y3Agc29ja2V0XG4gICAgICBsb2cuZGVidWcoYENvbm5lY3RpbmcgdG8gcmVtb3RlIGRlYnVnZ2VyICR7dGhpcy5tZXNzYWdlUHJveHkgPyAndmlhIHByb3h5ICcgOiAnJ310aHJvdWdoIFRDUDogJHt0aGlzLmhvc3R9OiR7dGhpcy5wb3J0fWApO1xuICAgICAgdGhpcy5zb2NrZXQgPSBuZXcgbmV0LlNvY2tldCh7dHlwZTogJ3RjcDYnfSk7XG4gICAgICB0aGlzLnNvY2tldC5jb25uZWN0KHRoaXMucG9ydCwgdGhpcy5ob3N0KTtcbiAgICB9XG5cbiAgICB0aGlzLnNvY2tldC5zZXROb0RlbGF5KHRydWUpO1xuICAgIHRoaXMuc29ja2V0LnNldEtlZXBBbGl2ZSh0cnVlKTtcbiAgICB0aGlzLnNvY2tldC5vbignY2xvc2UnLCAoKSA9PiB7XG4gICAgICBpZiAodGhpcy5pc0Nvbm5lY3RlZCkge1xuICAgICAgICBsb2cuZGVidWcoJ0RlYnVnZ2VyIHNvY2tldCBkaXNjb25uZWN0ZWQnKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuaXNDb25uZWN0ZWQgPSBmYWxzZTtcbiAgICAgIHRoaXMuc29ja2V0ID0gbnVsbDtcbiAgICB9KTtcbiAgICB0aGlzLnNvY2tldC5vbignZW5kJywgKCkgPT4ge1xuICAgICAgdGhpcy5pc0Nvbm5lY3RlZCA9IGZhbHNlO1xuICAgIH0pO1xuICAgIHRoaXMuc2VydmljZSA9IGF3YWl0IHNlcnZpY2VzLnN0YXJ0V2ViSW5zcGVjdG9yU2VydmljZSh0aGlzLnVkaWQsIHtcbiAgICAgIHNvY2tldDogdGhpcy5zb2NrZXQsXG4gICAgICBpc1NpbXVsYXRvcjogdHJ1ZSxcbiAgICAgIG9zVmVyc2lvbjogdGhpcy5wbGF0Zm9ybVZlcnNpb24sXG4gICAgICB2ZXJib3NlOiB0aGlzLmxvZ0FsbENvbW11bmljYXRpb24sXG4gICAgICB2ZXJib3NlSGV4RHVtcDogdGhpcy5sb2dBbGxDb21tdW5pY2F0aW9uSGV4RHVtcCxcbiAgICAgIG1heEZyYW1lTGVuZ3RoOiB0aGlzLndlYkluc3BlY3Rvck1heEZyYW1lTGVuZ3RoLFxuICAgIH0pO1xuICAgIHRoaXMuc2VydmljZS5saXN0ZW5NZXNzYWdlKHRoaXMucmVjZWl2ZS5iaW5kKHRoaXMpKTtcblxuICAgIC8vIGNvbm5lY3QgdGhlIHNvY2tldFxuICAgIHJldHVybiBhd2FpdCBuZXcgQigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAvLyBvbmx5IHJlc29sdmUgdGhpcyBmdW5jdGlvbiB3aGVuIHdlIGFyZSBhY3R1YWxseSBjb25uZWN0ZWRcbiAgICAgIHRoaXMuc29ja2V0Lm9uKCdjb25uZWN0JywgKCkgPT4ge1xuICAgICAgICBsb2cuZGVidWcoYERlYnVnZ2VyIHNvY2tldCBjb25uZWN0ZWRgKTtcbiAgICAgICAgdGhpcy5pc0Nvbm5lY3RlZCA9IHRydWU7XG5cbiAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgfSk7XG4gICAgICB0aGlzLnNvY2tldC5vbignZXJyb3InLCAoZXJyKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmlzQ29ubmVjdGVkKSB7XG4gICAgICAgICAgbG9nLmVycm9yKGBTb2NrZXQgZXJyb3I6ICR7ZXJyLm1lc3NhZ2V9YCk7XG4gICAgICAgICAgdGhpcy5pc0Nvbm5lY3RlZCA9IGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gdGhlIGNvbm5lY3Rpb24gd2FzIHJlZnVzZWQsIHNvIHJlamVjdCB0aGUgY29ubmVjdCBwcm9taXNlXG4gICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBkaXNjb25uZWN0ICgpIHtcbiAgICBpZiAoIXRoaXMuaXNDb25uZWN0ZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsb2cuZGVidWcoJ0Rpc2Nvbm5lY3RpbmcgZnJvbSByZW1vdGUgZGVidWdnZXInKTtcbiAgICBhd2FpdCBzdXBlci5kaXNjb25uZWN0KCk7XG4gICAgdGhpcy5zZXJ2aWNlLmNsb3NlKCk7XG4gICAgdGhpcy5pc0Nvbm5lY3RlZCA9IGZhbHNlO1xuICB9XG5cbiAgYXN5bmMgc2VuZE1lc3NhZ2UgKGNtZCkge1xuICAgIGxldCBvblNvY2tldEVycm9yO1xuXG4gICAgcmV0dXJuIGF3YWl0IG5ldyBCKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIC8vIGhhbmRsZSBzb2NrZXQgcHJvYmxlbXNcbiAgICAgIG9uU29ja2V0RXJyb3IgPSAoZXJyKSA9PiB7XG4gICAgICAgIGxvZy5lcnJvcihgU29ja2V0IGVycm9yOiAke2Vyci5tZXNzYWdlfWApO1xuXG4gICAgICAgIC8vIHRoZSBjb25uZWN0aW9uIHdhcyByZWZ1c2VkLCBzbyByZWplY3QgdGhlIGNvbm5lY3QgcHJvbWlzZVxuICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgIH07XG5cbiAgICAgIHRoaXMuc29ja2V0Lm9uKCdlcnJvcicsIG9uU29ja2V0RXJyb3IpO1xuICAgICAgdGhpcy5zZXJ2aWNlLnNlbmRNZXNzYWdlKGNtZCk7XG4gICAgICByZXNvbHZlKCk7XG4gICAgfSlcbiAgICAuZmluYWxseSgoKSA9PiB7XG4gICAgICAvLyByZW1vdmUgdGhpcyBsaXN0ZW5lciwgc28gd2UgZG9uJ3QgZXhoYXVzdCB0aGUgc3lzdGVtXG4gICAgICB0cnkge1xuICAgICAgICB0aGlzLnNvY2tldC5yZW1vdmVMaXN0ZW5lcignZXJyb3InLCBvblNvY2tldEVycm9yKTtcbiAgICAgIH0gY2F0Y2ggKGlnbikge31cbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIHJlY2VpdmUgKGRhdGEpIHtcbiAgICBpZiAoIXRoaXMuaXNDb25uZWN0ZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIWRhdGEpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGtleSBvZiBbJ1dJUk1lc3NhZ2VEYXRhS2V5JywgJ1dJUkRlc3RpbmF0aW9uS2V5JywgJ1dJUlNvY2tldERhdGFLZXknXSkge1xuICAgICAgaWYgKCFfLmlzVW5kZWZpbmVkKGRhdGFba2V5XSkpIHtcbiAgICAgICAgZGF0YVtrZXldID0gZGF0YVtrZXldLnRvU3RyaW5nKCd1dGY4Jyk7XG4gICAgICB9XG4gICAgfVxuICAgIGF3YWl0IHRoaXMubWVzc2FnZUhhbmRsZXIuaGFu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
|
|
@@ -565,7 +565,5 @@ class RpcClient {
|
|
|
565
565
|
|
|
566
566
|
}
|
|
567
567
|
|
|
568
|
-
exports.default = RpcClient;
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL3JwYy9ycGMtY2xpZW50LmpzIiwibmFtZXMiOlsiREFUQV9MT0dfTEVOR1RIIiwibGVuZ3RoIiwiV0FJVF9GT1JfVEFSR0VUX1RJTUVPVVQiLCJXQUlUX0ZPUl9UQVJHRVRfSU5URVJWQUwiLCJNSU5fUExBVEZPUk1fRk9SX1RBUkdFVF9CQVNFRCIsIk1JTl9QTEFURk9STV9OT19UQVJHRVRfRVhJU1RTIiwiaXNUYXJnZXRCYXNlZCIsImlzU2FmYXJpIiwicGxhdGZvcm1WZXJzaW9uIiwiaXNIaWdoVmVyc2lvbiIsInV0aWwiLCJjb21wYXJlVmVyc2lvbnMiLCJsb2ciLCJkZWJ1ZyIsIlJwY0NsaWVudCIsImNvbnN0cnVjdG9yIiwib3B0cyIsIl90YXJnZXRzIiwiX3Nob3VsZENoZWNrRm9yVGFyZ2V0Iiwic2hvdWxkQ2hlY2tGb3JUYXJnZXQiLCJidW5kbGVJZCIsImxvZ0FsbENvbW11bmljYXRpb24iLCJsb2dBbGxDb21tdW5pY2F0aW9uSGV4RHVtcCIsIndlYkluc3BlY3Rvck1heEZyYW1lTGVuZ3RoIiwic29ja2V0Q2h1bmtTaXplIiwiZnVsbFBhZ2VJbml0aWFsaXphdGlvbiIsImlzQ29ubmVjdGVkIiwiY29ubklkIiwidXVpZFY0Iiwic2VuZGVySWQiLCJtc2dJZCIsIl9jb250ZXh0cyIsImNvbnRleHRzIiwibmVlZHNUYXJnZXQiLCJ0YXJnZXRzIiwiY29ubmVjdGVkIiwib24iLCJldmVudCIsImxpc3RlbmVyIiwibWVzc2FnZUhhbmRsZXIiLCJvbmNlIiwib2ZmIiwid2FybiIsIl9pc1RhcmdldEJhc2VkIiwicmVtb3RlTWVzc2FnZXMiLCJSZW1vdGVNZXNzYWdlcyIsIlJwY01lc3NhZ2VIYW5kbGVyIiwiYWRkVGFyZ2V0IiwiYmluZCIsInVwZGF0ZVRhcmdldCIsInJlbW92ZVRhcmdldCIsIm9uRXhlY3V0aW9uQ29udGV4dENyZWF0ZWQiLCJvbkdhcmJhZ2VDb2xsZWN0ZWQiLCJ3YWl0Rm9yVGFyZ2V0IiwiYXBwSWRLZXkiLCJwYWdlSWRLZXkiLCJmb3JjZSIsImdldFRhcmdldCIsIndhaXRGb3JDb25kaXRpb24iLCJfIiwiaXNFbXB0eSIsIndhaXRNcyIsImludGVydmFsTXMiLCJlcnJvciIsImVyciIsIm1lc3NhZ2UiLCJpbmNsdWRlcyIsIkVycm9yIiwic2VuZCIsImNvbW1hbmQiLCJ3YWl0Rm9yUmVzcG9uc2UiLCJ0aW1lciIsInRpbWluZyIsIlRpbWVyIiwic3RhcnQiLCJzZW5kVG9EZXZpY2UiLCJ0b0xvd2VyQ2FzZSIsImluZm8iLCJnZXREdXJhdGlvbiIsImFzTWlsbGlTZWNvbmRzIiwidG9GaXhlZCIsIkIiLCJyZXNvbHZlIiwicmVqZWN0Iiwid3JhcHBlck1zZ0lkIiwidG9TdHJpbmciLCJ0YXJnZXRJZCIsImZ1bGxPcHRzIiwiZGVmYXVsdHMiLCJpZCIsImNtZCIsImdldFJlbW90ZUNvbW1hbmQiLCJfX2FyZ3VtZW50IiwiV0lSU29ja2V0RGF0YUtleSIsImlzTmlsIiwiQnVmZmVyIiwiZnJvbSIsIkpTT04iLCJzdHJpbmdpZnkiLCJtZXNzYWdlSGFuZGxlZCIsInRydW5jYXRlIiwibGlzdGVuZXJzIiwiX19zZWxlY3RvciIsInByZXBlbmRPbmNlTGlzdGVuZXIiLCJhcmdzIiwidmFsdWUiLCJjb2RlIiwibXNnIiwicmVzIiwic2VuZE1lc3NhZ2UiLCJjb25uZWN0IiwiZGlzY29ubmVjdCIsInJlbW92ZUFsbExpc3RlbmVycyIsInJlY2VpdmUiLCJhcHAiLCJ0YXJnZXRJbmZvIiwicGVuZGluZ1RhcmdldE5vdGlmaWNhdGlvbiIsImlzUHJvdmlzaW9uYWwiLCJoYXMiLCJvbGRUYXJnZXRJZCIsIm5ld1RhcmdldElkIiwicHJvdmlzaW9uYWwiLCJwYWdlIiwidG9QYWlycyIsInNlbGVjdFBhZ2UiLCJzZW5kT3B0cyIsImVuYWJsZWQiLCJPYmplY3QiLCJhc3NpZ24iLCJpbml0aWFsaXplUGFnZUZ1bGwiLCJpbml0aWFsaXplUGFnZSIsImRpc2FibGVkIiwiaW5zdHJ1bWVudHMiLCJhY3RpdmUiLCJzdGF0ZSIsImRlcHRoIiwic2hvdWxkUGF1c2UiLCJsb2dnaW5nQ2hhbm5lbHMiLCJzb3VyY2UiLCJjaGFubmVscyIsIm1hcCIsImVudHJ5IiwibGV2ZWwiLCJzZWxlY3RBcHAiLCJvbkFwcENoYW5nZSIsImRpY3QiLCJvbGRBcHBJZEtleSIsIldJUkhvc3RBcHBsaWNhdGlvbklkZW50aWZpZXJLZXkiLCJjb3JyZWN0QXBwSWRLZXkiLCJXSVJBcHBsaWNhdGlvbklkZW50aWZpZXJLZXkiLCJwYWdlRGljdCIsImNvbm5lY3RlZEFwcElkS2V5IiwiY29udGV4dCIsInB1c2giLCJvblNjcmlwdFBhcnNlZCIsInNjcmlwdEluZm8iXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uIiwic291cmNlcyI6WyJsaWIvcnBjL3JwYy1jbGllbnQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlbW90ZU1lc3NhZ2VzIGZyb20gJy4vcmVtb3RlLW1lc3NhZ2VzJztcbmltcG9ydCB7IHdhaXRGb3JDb25kaXRpb24gfSBmcm9tICdhc3luY2JveCc7XG5pbXBvcnQgbG9nIGZyb20gJy4uL2xvZ2dlcic7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IEIgZnJvbSAnYmx1ZWJpcmQnO1xuaW1wb3J0IFJwY01lc3NhZ2VIYW5kbGVyIGZyb20gJy4vcnBjLW1lc3NhZ2UtaGFuZGxlcic7XG5pbXBvcnQgeyB1dGlsLCB0aW1pbmcgfSBmcm9tICdhcHBpdW0vc3VwcG9ydCc7XG5cblxuY29uc3QgREFUQV9MT0dfTEVOR1RIID0ge2xlbmd0aDogMjAwfTtcblxuY29uc3QgV0FJVF9GT1JfVEFSR0VUX1RJTUVPVVQgPSAxMDAwMDtcbmNvbnN0IFdBSVRfRk9SX1RBUkdFVF9JTlRFUlZBTCA9IDEwMDA7XG5cbmNvbnN0IE1JTl9QTEFURk9STV9GT1JfVEFSR0VUX0JBU0VEID0gJzEyLjInO1xuXG4vLyBgVGFyZ2V0LmV4aXN0c2AgcHJvdG9jb2wgbWV0aG9kIHdhcyByZW1vdmVkIGZyb20gV2ViS2l0aW4gMTMuNFxuY29uc3QgTUlOX1BMQVRGT1JNX05PX1RBUkdFVF9FWElTVFMgPSAnMTMuNCc7XG5cbmZ1bmN0aW9uIGlzVGFyZ2V0QmFzZWQgKGlzU2FmYXJpLCBwbGF0Zm9ybVZlcnNpb24pIHtcbiAgLy8gT24gaU9TIDEyLjIgdGhlIG1lc3NhZ2VzIGdldCBzZW50IHRocm91Z2ggdGhlIFRhcmdldCBkb21haW5cbiAgLy8gT24gaU9TIDEzLjArLCBXS1dlYlZpZXcgYWxzbyBuZWVkcyB0byBmb2xsb3cgdGhlIFRhcmdldCBkb21haW4sXG4gIC8vIHNvIGhlcmUgb25seSBjaGVjayB0aGUgdGFyZ2V0IE9TIHZlcnNpb24gYXMgdGhlIGRlZmF1bHQgYmVoYXZpb3VyLlxuICBjb25zdCBpc0hpZ2hWZXJzaW9uID0gdXRpbC5jb21wYXJlVmVyc2lvbnMocGxhdGZvcm1WZXJzaW9uLCAnPj0nLCBNSU5fUExBVEZPUk1fRk9SX1RBUkdFVF9CQVNFRCk7XG4gIGxvZy5kZWJ1ZyhgQ2hlY2tpbmcgd2hpY2ggY29tbXVuaWNhdGlvbiBzdHlsZSB0byB1c2UgKCR7aXNTYWZhcmkgPyAnJyA6ICdub24tJ31TYWZhcmkgb24gcGxhdGZvcm0gdmVyc2lvbiAnJHtwbGF0Zm9ybVZlcnNpb259JylgKTtcbiAgbG9nLmRlYnVnKGBQbGF0Zm9ybSB2ZXJzaW9uIGVxdWFsIG9yIGhpZ2hlciB0aGFuICcke01JTl9QTEFURk9STV9GT1JfVEFSR0VUX0JBU0VEfSc6ICR7aXNIaWdoVmVyc2lvbn1gKTtcbiAgcmV0dXJuIGlzSGlnaFZlcnNpb247XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJwY0NsaWVudCB7XG4gIGNvbnN0cnVjdG9yIChvcHRzID0ge30pIHtcbiAgICB0aGlzLl90YXJnZXRzID0gW107XG4gICAgdGhpcy5fc2hvdWxkQ2hlY2tGb3JUYXJnZXQgPSAhIW9wdHMuc2hvdWxkQ2hlY2tGb3JUYXJnZXQ7XG5cbiAgICBjb25zdCB7XG4gICAgICBidW5kbGVJZCxcbiAgICAgIHBsYXRmb3JtVmVyc2lvbiA9IHt9LFxuICAgICAgaXNTYWZhcmkgPSB0cnVlLFxuICAgICAgbG9nQWxsQ29tbXVuaWNhdGlvbiA9IGZhbHNlLFxuICAgICAgbG9nQWxsQ29tbXVuaWNhdGlvbkhleER1bXAgPSBmYWxzZSxcbiAgICAgIHdlYkluc3BlY3Rvck1heEZyYW1lTGVuZ3RoLFxuICAgICAgc29ja2V0Q2h1bmtTaXplLFxuICAgICAgZnVsbFBhZ2VJbml0aWFsaXphdGlvbiA9IGZhbHNlLFxuICAgIH0gPSBvcHRzO1xuXG4gICAgdGhpcy5pc1NhZmFyaSA9IGlzU2FmYXJpO1xuXG4gICAgdGhpcy5pc0Nvbm5lY3RlZCA9IGZhbHNlO1xuICAgIHRoaXMuY29ubklkID0gdXRpbC51dWlkVjQoKTtcbiAgICB0aGlzLnNlbmRlcklkID0gdXRpbC51dWlkVjQoKTtcbiAgICB0aGlzLm1zZ0lkID0gMDtcblxuICAgIHRoaXMubG9nQWxsQ29tbXVuaWNhdGlvbiA9IGxvZ0FsbENvbW11bmljYXRpb247XG4gICAgdGhpcy5sb2dBbGxDb21tdW5pY2F0aW9uSGV4RHVtcCA9IGxvZ0FsbENvbW11bmljYXRpb25IZXhEdW1wO1xuICAgIHRoaXMuc29ja2V0Q2h1bmtTaXplID0gc29ja2V0Q2h1bmtTaXplO1xuICAgIHRoaXMud2ViSW5zcGVjdG9yTWF4RnJhbWVMZW5ndGggPSB3ZWJJbnNwZWN0b3JNYXhGcmFtZUxlbmd0aDtcblxuICAgIHRoaXMuZnVsbFBhZ2VJbml0aWFsaXphdGlvbiA9IGZ1bGxQYWdlSW5pdGlhbGl6YXRpb247XG5cbiAgICB0aGlzLmJ1bmRsZUlkID0gYnVuZGxlSWQ7XG4gICAgdGhpcy5wbGF0Zm9ybVZlcnNpb24gPSBwbGF0Zm9ybVZlcnNpb247XG5cbiAgICB0aGlzLl9jb250ZXh0cyA9IFtdO1xuICAgIHRoaXMuX3RhcmdldHMgPSB7fTtcblxuICAgIC8vIHN0YXJ0IHdpdGggYSBiZXN0IGd1ZXNzIGZvciB0aGUgcHJvdG9jb2xcbiAgICB0aGlzLmlzVGFyZ2V0QmFzZWQgPSBpc1RhcmdldEJhc2VkKGlzU2FmYXJpLCB0aGlzLnBsYXRmb3JtVmVyc2lvbik7XG4gIH1cblxuICBnZXQgY29udGV4dHMgKCkge1xuICAgIHJldHVybiB0aGlzLl9jb250ZXh0cztcbiAgfVxuXG4gIGdldCBuZWVkc1RhcmdldCAoKSB7XG4gICAgcmV0dXJuIHRoaXMuc2hvdWxkQ2hlY2tGb3JUYXJnZXQgJiYgdGhpcy5pc1RhcmdldEJhc2VkO1xuICB9XG5cbiAgZ2V0IHRhcmdldHMgKCkge1xuICAgIHJldHVybiB0aGlzLl90YXJnZXRzO1xuICB9XG5cbiAgZ2V0IHNob3VsZENoZWNrRm9yVGFyZ2V0ICgpIHtcbiAgICByZXR1cm4gdGhpcy5fc2hvdWxkQ2hlY2tGb3JUYXJnZXQ7XG4gIH1cblxuICBzZXQgc2hvdWxkQ2hlY2tGb3JUYXJnZXQgKHNob3VsZENoZWNrRm9yVGFyZ2V0KSB7XG4gICAgdGhpcy5fc2hvdWxkQ2hlY2tGb3JUYXJnZXQgPSAhIXNob3VsZENoZWNrRm9yVGFyZ2V0O1xuICB9XG5cbiAgZ2V0IGlzQ29ubmVjdGVkICgpIHtcbiAgICByZXR1cm4gdGhpcy5jb25uZWN0ZWQ7XG4gIH1cblxuICBzZXQgaXNDb25uZWN0ZWQgKGNvbm5lY3RlZCkge1xuICAgIHRoaXMuY29ubmVjdGVkID0gISFjb25uZWN0ZWQ7XG4gIH1cblxuICBvbiAoZXZlbnQsIGxpc3RlbmVyKSB7XG4gICAgdGhpcy5tZXNzYWdlSGFuZGxlci5vbihldmVudCwgbGlzdGVuZXIpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgb25jZSAoZXZlbnQsIGxpc3RlbmVyKSB7XG4gICAgdGhpcy5tZXNzYWdlSGFuZGxlci5vbmNlKGV2ZW50LCBsaXN0ZW5lcik7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBvZmYgKGV2ZW50LCBsaXN0ZW5lcikge1xuICAgIHRoaXMubWVzc2FnZUhhbmRsZXIub2ZmKGV2ZW50LCBsaXN0ZW5lcik7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBzZXQgaXNUYXJnZXRCYXNlZCAoaXNUYXJnZXRCYXNlZCkge1xuICAgIGxvZy53YXJuKGBTZXR0aW5nIGNvbW11bmljYXRpb24gcHJvdG9jb2w6IHVzaW5nICR7aXNUYXJnZXRCYXNlZCA/ICdUYXJnZXQtYmFzZWQnIDogJ2Z1bGwgV2ViIEluc3BlY3RvciBwcm90b2NvbCd9IGNvbW11bmljYXRpb25gKTtcbiAgICB0aGlzLl9pc1RhcmdldEJhc2VkID0gaXNUYXJnZXRCYXNlZDtcblxuICAgIGlmICghdGhpcy5yZW1vdGVNZXNzYWdlcykge1xuICAgICAgdGhpcy5yZW1vdGVNZXNzYWdlcyA9IG5ldyBSZW1vdGVNZXNzYWdlcyhpc1RhcmdldEJhc2VkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yZW1vdGVNZXNzYWdlcy5pc1RhcmdldEJhc2VkID0gaXNUYXJnZXRCYXNlZDtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMubWVzc2FnZUhhbmRsZXIpIHtcbiAgICAgIHRoaXMubWVzc2FnZUhhbmRsZXIgPSBuZXcgUnBjTWVzc2FnZUhhbmRsZXIoaXNUYXJnZXRCYXNlZCk7XG5cbiAgICAgIC8vIGFkZCBoYW5kbGVycyBmb3IgaW50ZXJuYWwgZXZlbnRzXG4gICAgICB0aGlzLm1lc3NhZ2VIYW5kbGVyLm9uKCdUYXJnZXQudGFyZ2V0Q3JlYXRlZCcsIHRoaXMuYWRkVGFyZ2V0LmJpbmQodGhpcykpO1xuICAgICAgdGhpcy5tZXNzYWdlSGFuZGxlci5vbignVGFyZ2V0LmRpZENvbW1pdFByb3Zpc2lvbmFsVGFyZ2V0JywgdGhpcy51cGRhdGVUYXJnZXQuYmluZCh0aGlzKSk7XG4gICAgICB0aGlzLm1lc3NhZ2VIYW5kbGVyLm9uKCdUYXJnZXQudGFyZ2V0RGVzdHJveWVkJywgdGhpcy5yZW1vdmVUYXJnZXQuYmluZCh0aGlzKSk7XG4gICAgICB0aGlzLm1lc3NhZ2VIYW5kbGVyLm9uKCdSdW50aW1lLmV4ZWN1dGlvbkNvbnRleHRDcmVhdGVkJywgdGhpcy5vbkV4ZWN1dGlvbkNvbnRleHRDcmVhdGVkLmJpbmQodGhpcykpO1xuICAgICAgdGhpcy5tZXNzYWdlSGFuZGxlci5vbignSGVhcC5nYXJiYWdlQ29sbGVjdGVkJywgdGhpcy5vbkdhcmJhZ2VDb2xsZWN0ZWQuYmluZCh0aGlzKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubWVzc2FnZUhhbmRsZXIuaXNUYXJnZXRCYXNlZCA9IGlzVGFyZ2V0QmFzZWQ7XG4gICAgfVxuICB9XG5cbiAgZ2V0IGlzVGFyZ2V0QmFzZWQgKCkge1xuICAgIHJldHVybiB0aGlzLl9pc1RhcmdldEJhc2VkO1xuICB9XG5cbiAgYXN5bmMgd2FpdEZvclRhcmdldCAoYXBwSWRLZXksIHBhZ2VJZEtleSwgZm9yY2UgPSBmYWxzZSkge1xuICAgIGlmICghZm9yY2UgJiYgIXRoaXMubmVlZHNUYXJnZXQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5nZXRUYXJnZXQoYXBwSWRLZXksIHBhZ2VJZEtleSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBvdGhlcndpc2Ugd2FpdGluZyBpcyBuZWNlc3NhcnkgdG8gc2VlIHdoYXQgdGhlIHRhcmdldCBpc1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCB3YWl0Rm9yQ29uZGl0aW9uKCgpID0+ICFfLmlzRW1wdHkodGhpcy5nZXRUYXJnZXQoYXBwSWRLZXksIHBhZ2VJZEtleSkpLCB7XG4gICAgICAgIHdhaXRNczogV0FJVF9GT1JfVEFSR0VUX1RJTUVPVVQsXG4gICAgICAgIGludGVydmFsTXM6IFdBSVRfRk9SX1RBUkdFVF9JTlRFUlZBTCxcbiAgICAgICAgZXJyb3I6ICdObyB0YXJnZXRzIGZvdW5kLCB1bmFibGUgdG8gY29tbXVuaWNhdGUgd2l0aCBkZXZpY2UnLFxuICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBpZiAoIWVyci5tZXNzYWdlLmluY2x1ZGVzKCdDb25kaXRpb24gdW5tZXQnKSkge1xuICAgICAgICB0aHJvdyBlcnI7XG4gICAgICB9XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIHRhcmdldHMgZm91bmQsIHVuYWJsZSB0byBjb21tdW5pY2F0ZSB3aXRoIGRldmljZScpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHNlbmQgKGNvbW1hbmQsIG9wdHMgPSB7fSwgd2FpdEZvclJlc3BvbnNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IHRpbWVyID0gbmV3IHRpbWluZy5UaW1lcigpLnN0YXJ0KCk7XG4gICAgY29uc3Qge1xuICAgICAgYXBwSWRLZXksXG4gICAgICBwYWdlSWRLZXlcbiAgICB9ID0gb3B0cztcbiAgICB0cnkge1xuICAgICAgaWYgKCFfLmlzRW1wdHkoYXBwSWRLZXkpICYmICFfLmlzRW1wdHkocGFnZUlkS2V5KSkge1xuICAgICAgICBhd2FpdCB0aGlzLndhaXRGb3JUYXJnZXQoYXBwSWRLZXksIHBhZ2VJZEtleSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5zZW5kVG9EZXZpY2UoY29tbWFuZCwgb3B0cywgd2FpdEZvclJlc3BvbnNlKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGxldCB7IG1lc3NhZ2UgPSAnJyB9ID0gZXJyO1xuICAgICAgbWVzc2FnZSA9IG1lc3NhZ2UudG9Mb3dlckNhc2UoKTtcbiAgICAgIGlmIChtZXNzYWdlLmluY2x1ZGVzKGAndGFyZ2V0JyBkb21haW4gd2FzIG5vdCBmb3VuZGApKSB7XG4gICAgICAgIGxvZy5pbmZvKCdUaGUgdGFyZ2V0IGRldmljZSBkb2VzIG5vdCBzdXBwb3J0IFRhcmdldCBiYXNlZCBjb21tdW5pY2F0aW9uLiAnICtcbiAgICAgICAgICAnV2lsbCBmb2xsb3cgbm9uLXRhcmdldCBiYXNlZCBjb21tdW5pY2F0aW9uLicpO1xuICAgICAgICB0aGlzLmlzVGFyZ2V0QmFzZWQgPSBmYWxzZTtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuc2VuZFRvRGV2aWNlKGNvbW1hbmQsIG9wdHMsIHdhaXRGb3JSZXNwb25zZSk7XG4gICAgICB9IGVsc2UgaWYgKG1lc3NhZ2UuaW5jbHVkZXMoYGRvbWFpbiB3YXMgbm90IGZvdW5kYCkgfHxcbiAgICAgICAgICBtZXNzYWdlLmluY2x1ZGVzKGBzb21lIGFyZ3VtZW50cyBvZiBtZXRob2RgKSB8fFxuICAgICAgICAgIG1lc3NhZ2UuaW5jbHVkZXMoYG1pc3NpbmcgdGFyZ2V0YCkpIHtcbiAgICAgICAgdGhpcy5pc1RhcmdldEJhc2VkID0gdHJ1ZTtcbiAgICAgICAgYXdhaXQgdGhpcy53YWl0Rm9yVGFyZ2V0KGFwcElkS2V5LCBwYWdlSWRLZXkpO1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5zZW5kVG9EZXZpY2UoY29tbWFuZCwgb3B0cywgd2FpdEZvclJlc3BvbnNlKTtcbiAgICAgIH1cbiAgICAgIHRocm93IGVycjtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgbG9nLmRlYnVnKGBTZW5kaW5nIHRvIFdlYiBJbnNwZWN0b3IgdG9vayAke3RpbWVyLmdldER1cmF0aW9uKCkuYXNNaWxsaVNlY29uZHMudG9GaXhlZCgwKX1tc2ApO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHNlbmRUb0RldmljZSAoY29tbWFuZCwgb3B0cyA9IHt9LCB3YWl0Rm9yUmVzcG9uc2UgPSB0cnVlKSB7XG4gICAgcmV0dXJuIGF3YWl0IG5ldyBCKGFzeW5jIChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIC8vIHByb21pc2UgdG8gYmUgcmVzb2x2ZWQgd2hlbmV2ZXIgcmVtb3RlIGRlYnVnZ2VyXG4gICAgICAvLyByZXBsaWVzIHRvIG91ciByZXF1ZXN0XG5cbiAgICAgIC8vIGtlZXAgdHJhY2sgb2YgdGhlIG1lc3NhZ2VzIGNvbWluZyBhbmQgZ29pbmcgdXNpbmcgYSBzaW1wbGUgc2VxdWVudGlhbCBpZFxuICAgICAgY29uc3QgbXNnSWQgPSB0aGlzLm1zZ0lkKys7XG4gICAgICBsZXQgd3JhcHBlck1zZ0lkID0gbXNnSWQ7XG4gICAgICBpZiAodGhpcy5pc1RhcmdldEJhc2VkKSB7XG4gICAgICAgIC8vIGZvciB0YXJnZXQtYmFzZSBjb21tdW5pY2F0aW9uLCBldmVyeXRoaW5nIGlzIHdyYXBwZWQgdXBcbiAgICAgICAgd3JhcHBlck1zZ0lkID0gdGhpcy5tc2dJZCsrO1xuICAgICAgICAvLyBhY2tub3dsZWRnZSB3cmFwcGVyIG1lc3NhZ2VcbiAgICAgICAgdGhpcy5tZXNzYWdlSGFuZGxlci5vbih3cmFwcGVyTXNnSWQudG9TdHJpbmcoKSwgZnVuY3Rpb24gKGVycikge1xuICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGFwcElkS2V5ID0gb3B0cy5hcHBJZEtleTtcbiAgICAgIGNvbnN0IHBhZ2VJZEtleSA9IG9wdHMucGFnZUlkS2V5O1xuICAgICAgY29uc3QgdGFyZ2V0SWQgPSB0aGlzLmdldFRhcmdldChhcHBJZEtleSwgcGFnZUlkS2V5KTtcblxuICAgICAgLy8gcmV0cmlldmUgdGhlIGNvcnJlY3QgY29tbWFuZCB0byBzZW5kXG4gICAgICBjb25zdCBmdWxsT3B0cyA9IF8uZGVmYXVsdHMoe1xuICAgICAgICBjb25uSWQ6IHRoaXMuY29ubklkLFxuICAgICAgICBzZW5kZXJJZDogdGhpcy5zZW5kZXJJZCxcbiAgICAgICAgdGFyZ2V0SWQsXG4gICAgICAgIGlkOiBtc2dJZCxcbiAgICAgIH0sIG9wdHMpO1xuICAgICAgY29uc3QgY21kID0gdGhpcy5yZW1vdGVNZXNzYWdlcy5nZXRSZW1vdGVDb21tYW5kKGNvbW1hbmQsIGZ1bGxPcHRzKTtcblxuICAgICAgaWYgKGNtZD8uX19hcmd1bWVudD8uV0lSU29ja2V0RGF0YUtleSkge1xuICAgICAgICAvLyBtYWtlIHN1cmUgdGhlIG1lc3NhZ2UgYmVpbmcgc2VudCBoYXMgYWxsIHRoZSBpbmZvcm1hdGlvbiB0aGF0IGlzIG5lZWRlZFxuICAgICAgICBpZiAoXy5pc05pbChjbWQuX19hcmd1bWVudC5XSVJTb2NrZXREYXRhS2V5LmlkKSkge1xuICAgICAgICAgIGNtZC5fX2FyZ3VtZW50LldJUlNvY2tldERhdGFLZXkuaWQgPSB3cmFwcGVyTXNnSWQ7XG4gICAgICAgIH1cbiAgICAgICAgY21kLl9fYXJndW1lbnQuV0lSU29ja2V0RGF0YUtleSA9XG4gICAgICAgICAgQnVmZmVyLmZyb20oSlNPTi5zdHJpbmdpZnkoY21kLl9fYXJndW1lbnQuV0lSU29ja2V0RGF0YUtleSkpO1xuICAgICAgfVxuXG4gICAgICBsZXQgbWVzc2FnZUhhbmRsZWQgPSB0cnVlO1xuICAgICAgaWYgKCF3YWl0Rm9yUmVzcG9uc2UpIHtcbiAgICAgICAgLy8gdGhlIHByb21pc2Ugd2lsbCBiZSByZXNvbHZlZCBhcyBzb29uIGFzIHRoZSBzb2NrZXQgaGFzIGJlZW4gc2VudFxuICAgICAgICBtZXNzYWdlSGFuZGxlZCA9IGZhbHNlO1xuICAgICAgICAvLyBkbyBub3QgbG9nIHJlY2VpcHRzXG4gICAgICAgIHRoaXMubWVzc2FnZUhhbmRsZXIub25jZShtc2dJZC50b1N0cmluZygpLCBmdW5jdGlvbiAoZXJyKSB7XG4gICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgLy8gd2UgYXJlIG5vdCB3YWl0aW5nIGZvciB0aGlzLCBhbmQgaWYgaXQgZXJyb3JzIGl0IGlzIG1vc3QgbGlrZWx5XG4gICAgICAgICAgICAvLyBhIHByb3RvY29sIGNoYW5nZS4gTG9nIGFuZCBjaGVjayBkdXJpbmcgdGVzdGluZ1xuICAgICAgICAgICAgbG9nLmVycm9yKGBSZWNlaXZlZCBlcnJvciBmcm9tIHNlbmQgdGhhdCBpcyBub3QgYmVpbmcgd2FpdGVkIGZvciAoaWQ6ICR7bXNnSWR9KTogJyR7Xy50cnVuY2F0ZShKU09OLnN0cmluZ2lmeShlcnIpLCBEQVRBX0xPR19MRU5HVEgpfSdgKTtcbiAgICAgICAgICAgIC8vIHJlamVjdCwgdGhvdWdoIGl0IGlzIHZlcnkgcmFyZSB0aGF0IHRoaXMgd2lsbCBiZSB0cmlnZ2VyZWQsIHNpbmNlXG4gICAgICAgICAgICAvLyB0aGUgcHJvbWlzZSBpcyByZXNvbHZlZCBkaXJlY3RsdHkgYWZ0ZXIgc2VuZC4gT24gdGhlIG9mZiBjaGFuY2UsXG4gICAgICAgICAgICAvLyB0aG91Z2gsIGl0IHdpbGwgYWxlcnQgb2YgYSBwcm90b2NvbCBjaGFuZ2UuXG4gICAgICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLm1lc3NhZ2VIYW5kbGVyLmxpc3RlbmVycyhjbWQuX19zZWxlY3RvcikubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMubWVzc2FnZUhhbmRsZXIucHJlcGVuZE9uY2VMaXN0ZW5lcihjbWQuX19zZWxlY3RvciwgZnVuY3Rpb24gKGVyciwgLi4uYXJncykge1xuICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgIHJldHVybiByZWplY3QoZXJyKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgbG9nLmRlYnVnKGBSZWNlaXZlZCByZXNwb25zZSBmcm9tIHNlbmQgKGlkOiAke21zZ0lkfSk6ICcke18udHJ1bmNhdGUoSlNPTi5zdHJpbmdpZnkoYXJncyksIERBVEFfTE9HX0xFTkdUSCl9J2ApO1xuICAgICAgICAgIHJlc29sdmUoYXJncyk7XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIGlmIChjbWQ/Ll9fYXJndW1lbnQ/LldJUlNvY2tldERhdGFLZXkpIHtcbiAgICAgICAgdGhpcy5tZXNzYWdlSGFuZGxlci5vbmNlKG1zZ0lkLnRvU3RyaW5nKCksIGZ1bmN0aW9uIChlcnIsIHZhbHVlKSB7XG4gICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgcmV0dXJuIHJlamVjdChuZXcgRXJyb3IoYFJlbW90ZSBkZWJ1Z2dlciBlcnJvciB3aXRoIGNvZGUgJyR7ZXJyLmNvZGV9JzogJHtlcnIubWVzc2FnZX1gKSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGxvZy5kZWJ1ZyhgUmVjZWl2ZWQgZGF0YSByZXNwb25zZSBmcm9tIHNlbmQgKGlkOiAke21zZ0lkfSk6ICcke18udHJ1bmNhdGUoSlNPTi5zdHJpbmdpZnkodmFsdWUpLCBEQVRBX0xPR19MRU5HVEgpfSdgKTtcbiAgICAgICAgICByZXNvbHZlKHZhbHVlKTtcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBub3RoaW5nIGVsc2UgaXMgaGFuZGxpbmcgdGhpbmdzLCBzbyBqdXN0IHJlc29sdmUgd2hlbiB0aGUgbWVzc2FnZSBpcyBzZW50XG4gICAgICAgIG1lc3NhZ2VIYW5kbGVkID0gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG1zZyA9IGBTZW5kaW5nICcke2NtZC5fX3NlbGVjdG9yfScgbWVzc2FnZWAgK1xuICAgICAgICAoZnVsbE9wdHMuYXBwSWRLZXkgPyBgIHRvIGFwcCAnJHtmdWxsT3B0cy5hcHBJZEtleX0nYCA6ICcnKSArXG4gICAgICAgIChmdWxsT3B0cy5wYWdlSWRLZXkgPyBgLCBwYWdlICcke2Z1bGxPcHRzLnBhZ2VJZEtleX0nYCA6ICcnKSArXG4gICAgICAgICh0aGlzLm5lZWRzVGFyZ2V0ICYmIHRhcmdldElkID8gYCwgdGFyZ2V0ICcke3RhcmdldElkfSdgIDogJycpICtcbiAgICAgICAgYCAoaWQ6ICR7bXNnSWR9KTogJyR7Y29tbWFuZH0nYDtcbiAgICAgIGxvZy5kZWJ1Zyhtc2cpO1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5zZW5kTWVzc2FnZShjbWQpO1xuICAgICAgICBpZiAoIW1lc3NhZ2VIYW5kbGVkKSB7XG4gICAgICAgICAgLy8gVGhlcmUgYXJlIG5vIGhhbmRsZXJzIHdhaXRpbmcgZm9yIGEgcmVzcG9uc2UgYmVmb3JlIHJlc29sdmluZyxcbiAgICAgICAgICAvLyBhbmQgbm8gZXJyb3JzIHNlbmRpbmcgdGhlIG1lc3NhZ2Ugb3ZlciB0aGUgc29ja2V0LCBzbyByZXNvbHZlXG4gICAgICAgICAgcmVzb2x2ZShyZXMpO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgcmV0dXJuIHJlamVjdChlcnIpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgY29ubmVjdCAoKSB7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgcmVxdWlyZS1hd2FpdFxuICAgIHRocm93IG5ldyBFcnJvcihgU3ViLWNsYXNzZXMgbmVlZCB0byBpbXBsZW1lbnQgYSAnY29ubmVjdCcgZnVuY3Rpb25gKTtcbiAgfVxuXG4gIGFzeW5jIGRpc2Nvbm5lY3QgKCkgeyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIHJlcXVpcmUtYXdhaXRcbiAgICB0aGlzLm1lc3NhZ2VIYW5kbGVyLnJlbW92ZUFsbExpc3RlbmVycygpO1xuICB9XG5cbiAgYXN5bmMgc2VuZE1lc3NhZ2UgKC8qIGNvbW1hbmQgKi8pIHsgLy8gZXNsaW50LWRpc2FibGUtbGluZSByZXF1aXJlLWF3YWl0XG4gICAgdGhyb3cgbmV3IEVycm9yKGBTdWItY2xhc3NlcyBuZWVkIHRvIGltcGxlbWVudCBhICdzZW5kTWVzc2FnZScgZnVuY3Rpb25gKTtcbiAgfVxuXG4gIGFzeW5jIHJlY2VpdmUgKC8qIGRhdGEgKi8pIHsgLy8gZXNsaW50LWRpc2FibGUtbGluZSByZXF1aXJlLWF3YWl0XG4gICAgdGhyb3cgbmV3IEVycm9yKGBTdWItY2xhc3NlcyBuZWVkIHRvIGltcGxlbWVudCBhICdyZWNlaXZlJyBmdW5jdGlvbmApO1xuICB9XG5cbiAgYWRkVGFyZ2V0IChlcnIsIGFwcCwgdGFyZ2V0SW5mbykge1xuICAgIGlmIChfLmlzTmlsKHRhcmdldEluZm8/LnRhcmdldElkKSkge1xuICAgICAgbG9nLndhcm4oYFJlY2VpdmVkICdUYXJnZXQudGFyZ2V0Q3JlYXRlZCcgZXZlbnQgZm9yIGFwcCAnJHthcHB9JyB3aXRoIG5vIHRhcmdldC4gU2tpcHBpbmdgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKF8uaXNFbXB0eSh0aGlzLnBlbmRpbmdUYXJnZXROb3RpZmljYXRpb24pICYmICF0YXJnZXRJbmZvLmlzUHJvdmlzaW9uYWwpIHtcbiAgICAgIGxvZy53YXJuKGBSZWNlaXZlZCAnVGFyZ2V0LnRhcmdldENyZWF0ZWQnIGV2ZW50IGZvciBhcHAgJyR7YXBwfScgd2l0aCBubyBwZW5kaW5nIHJlcXVlc3Q6ICR7SlNPTi5zdHJpbmdpZnkodGFyZ2V0SW5mbyl9YCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRhcmdldEluZm8uaXNQcm92aXNpb25hbCkge1xuICAgICAgbG9nLmRlYnVnKGBQcm92aXNpb25hbCB0YXJnZXQgY3JlYXRlZCBmb3IgYXBwICcke2FwcH0nLCAnJHt0YXJnZXRJbmZvLnRhcmdldElkfScuIElnbm9yaW5nIHVudGlsIHRhcmdldCB1cGRhdGUgZXZlbnRgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBbYXBwSWRLZXksIHBhZ2VJZEtleV0gPSB0aGlzLnBlbmRpbmdUYXJnZXROb3RpZmljYXRpb247XG5cbiAgICBsb2cuZGVidWcoYFRhcmdldCBjcmVhdGVkIGZvciBhcHAgJyR7YXBwSWRLZXl9JyBhbmQgcGFnZSAnJHtwYWdlSWRLZXl9JzogJHtKU09OLnN0cmluZ2lmeSh0YXJnZXRJbmZvKX1gKTtcbiAgICBpZiAoXy5oYXModGhpcy50YXJnZXRzW2FwcElkS2V5XSwgcGFnZUlkS2V5KSkge1xuICAgICAgbG9nLmRlYnVnKGBUaGVyZSBpcyBhbHJlYWR5IGEgdGFyZ2V0IGZvciB0aGlzIGFwcCBhbmQgcGFnZSAoJyR7dGhpcy50YXJnZXRzW2FwcElkS2V5XVtwYWdlSWRLZXldfScpLiBUaGlzIG1pZ2h0IGNhdXNlIHByb2JsZW1zYCk7XG4gICAgfVxuICAgIHRoaXMudGFyZ2V0c1thcHBdID0gdGhpcy50YXJnZXRzW2FwcF0gfHwge307XG4gICAgdGhpcy50YXJnZXRzW2FwcElkS2V5XVtwYWdlSWRLZXldID0gdGFyZ2V0SW5mby50YXJnZXRJZDtcbiAgfVxuXG4gIHVwZGF0ZVRhcmdldCAoZXJyLCBhcHAsIG9sZFRhcmdldElkLCBuZXdUYXJnZXRJZCkge1xuICAgIGxvZy5kZWJ1ZyhgVGFyZ2V0IHVwZGF0ZWQgZm9yIGFwcCAnJHthcHB9Jy4gT2xkIHRhcmdldDogJyR7b2xkVGFyZ2V0SWR9JywgbmV3IHRhcmdldDogJyR7bmV3VGFyZ2V0SWR9J2ApO1xuICAgIGlmICghdGhpcy50YXJnZXRzW2FwcF0pIHtcbiAgICAgIGxvZy53YXJuKGBObyBleGlzdGluZyB0YXJnZXQgZm9yIGFwcCAnJHthcHB9Jy4gTm90IHN1cmUgd2hhdCB0byBkb2ApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAvLyBzYXZlIHRoaXMsIHRvIGJlIHVzZWQgaWYvd2hlbiB0aGUgZXhpc3RpbmcgdGFyZ2V0IGlzIGRlc3Ryb3llZFxuICAgIHRoaXMudGFyZ2V0c1thcHBdLnByb3Zpc2lvbmFsID0ge1xuICAgICAgb2xkVGFyZ2V0SWQsXG4gICAgICBuZXdUYXJnZXRJZCxcbiAgICB9O1xuICB9XG5cbiAgcmVtb3ZlVGFyZ2V0IChlcnIsIGFwcCwgdGFyZ2V0SW5mbykge1xuICAgIGlmIChfLmlzTmlsKHRhcmdldEluZm8/LnRhcmdldElkKSkge1xuICAgICAgbG9nLmRlYnVnKGBSZWNlaXZlZCAnVGFyZ2V0LnRhcmdldERlc3Ryb3llZCcgZXZlbnQgd2l0aCBubyB0YXJnZXQuIFNraXBwaW5nYCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbG9nLmRlYnVnKGBUYXJnZXQgZGVzdHJveWVkIGZvciBhcHAgJyR7YXBwfSc6ICR7dGFyZ2V0SW5mby50YXJnZXRJZH1gKTtcblxuICAgIC8vIGdvIHRocm91Z2ggdGhlIHRhcmdldHMgYW5kIGZpbmQgdGhlIG9uZSB0aGF0IGhhcyBhIHdhaXRpbmcgcHJvdmlzaW9uYWwgdGFyZ2V0XG4gICAgaWYgKHRoaXMudGFyZ2V0c1thcHBdPy5wcm92aXNpb25hbD8ub2xkVGFyZ2V0SWQgPT09IHRhcmdldEluZm8udGFyZ2V0SWQpIHtcbiAgICAgIGNvbnN0IHtvbGRUYXJnZXRJZCwgbmV3VGFyZ2V0SWR9ID0gdGhpcy50YXJnZXRzW2FwcF0ucHJvdmlzaW9uYWw7XG4gICAgICBkZWxldGUgdGhpcy50YXJnZXRzW2FwcF0ucHJvdmlzaW9uYWw7XG5cbiAgICAgIC8vIHdlIGRvIG5vdCBrbm93IHRoZSBwYWdlLCBzbyBnbyB0aHJvdWdoIGFuZCBmaW5kIHRoZSBleGlzdGluZyB0YXJnZXRcbiAgICAgIGNvbnN0IHRhcmdldHMgPSB0aGlzLnRhcmdldHNbYXBwXTtcbiAgICAgIGZvciAoY29uc3QgW3BhZ2UsIHRhcmdldElkXSBvZiBfLnRvUGFpcnModGFyZ2V0cykpIHtcbiAgICAgICAgaWYgKHRhcmdldElkID09PSBvbGRUYXJnZXRJZCkge1xuICAgICAgICAgIGxvZy5kZWJ1ZyhgRm91bmQgcHJvdmlzaW9uYWwgdGFyZ2V0IGZvciBhcHAgJyR7YXBwfScuIE9sZCB0YXJnZXQ6ICcke29sZFRhcmdldElkfScsIG5ldyB0YXJnZXQ6ICcke25ld1RhcmdldElkfScuIFVwZGF0aW5nYCk7XG4gICAgICAgICAgdGFyZ2V0c1twYWdlXSA9IG5ld1RhcmdldElkO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgbG9nLndhcm4oYFByb3Zpc2lvbmFsIHRhcmdldCBmb3IgYXBwICcke2FwcH0nIGZvdW5kLCBidXQgbm8gc3VpdGFibGUgZXhpc3RpbmcgdGFyZ2V0IGZvdW5kLiBUaGlzIG1heSBjYXVzZSBwcm9ibGVtc2ApO1xuICAgICAgbG9nLndhcm4oYE9sZCB0YXJnZXQ6ICcke29sZFRhcmdldElkfScsIG5ldyB0YXJnZXQ6ICcke25ld1RhcmdldElkfScuIEV4aXN0aW5nIHRhcmdldHM6ICR7SlNPTi5zdHJpbmdpZnkodGFyZ2V0cyl9YCk7XG4gICAgfVxuXG4gICAgLy8gaWYgdGhlcmUgaXMgbm8gd2FpdGluZyBwcm92aXNpb25hbCB0YXJnZXQsIGp1c3QgZ2V0IHJpZCBvZiB0aGUgZXhpc3Rpbmcgb25lXG4gICAgY29uc3QgdGFyZ2V0cyA9IHRoaXMudGFyZ2V0c1thcHBdO1xuICAgIGZvciAoY29uc3QgW3BhZ2UsIHRhcmdldElkXSBvZiBfLnRvUGFpcnModGFyZ2V0cykpIHtcbiAgICAgIGlmICh0YXJnZXRJZCA9PT0gdGFyZ2V0SW5mby50YXJnZXRJZCkge1xuICAgICAgICBkZWxldGUgdGFyZ2V0c1twYWdlXTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cbiAgICBsb2cuZGVidWcoYFRhcmdldCAnJHt0YXJnZXRJbmZvLnRhcmdldElkfScgZGVsZXRlZCBmb3IgYXBwICcke2FwcH0nLCBidXQgbm8gc3VjaCB0YXJnZXQgZXhpc3RzYCk7XG4gIH1cblxuICBnZXRUYXJnZXQgKGFwcElkS2V5LCBwYWdlSWRLZXkpIHtcbiAgICByZXR1cm4gKHRoaXMudGFyZ2V0c1thcHBJZEtleV0gfHwge30pW3BhZ2VJZEtleV07XG4gIH1cblxuICBhc3luYyBzZWxlY3RQYWdlIChhcHBJZEtleSwgcGFnZUlkS2V5KSB7XG4gICAgdGhpcy5wZW5kaW5nVGFyZ2V0Tm90aWZpY2F0aW9uID0gW2FwcElkS2V5LCBwYWdlSWRLZXldO1xuICAgIHRoaXMuc2hvdWxkQ2hlY2tGb3JUYXJnZXQgPSBmYWxzZTtcblxuICAgIC8vIGdvIHRocm91Z2ggdGhlIHN0ZXBzIHRoYXQgdGhlIERlc2t0b3AgU2FmYXJpIHN5c3RlbVxuICAgIC8vIGdvZXMgdGhyb3VnaCB0byBpbml0aWFsaXplIHRoZSBXZWIgSW5zcGVjdG9yIHNlc3Npb25cblxuICAgIGNvbnN0IHNlbmRPcHRzID0ge1xuICAgICAgYXBwSWRLZXksXG4gICAgICBwYWdlSWRLZXksXG4gICAgfTtcblxuICAgIC8vIGhpZ2hsaWdodCBhbmQgdGhlbiB1bi1oaWdobGlnaHQgdGhlIHdlYnZpZXdcbiAgICBmb3IgKGNvbnN0IGVuYWJsZWQgb2YgW3RydWUsIGZhbHNlXSkge1xuICAgICAgYXdhaXQgdGhpcy5zZW5kKCdpbmRpY2F0ZVdlYlZpZXcnLCBPYmplY3QuYXNzaWduKHtcbiAgICAgICAgZW5hYmxlZCxcbiAgICAgIH0sIHNlbmRPcHRzKSwgZmFsc2UpO1xuICAgIH1cblxuICAgIGF3YWl0IHRoaXMuc2VuZCgnc2V0U2VuZGVyS2V5Jywgc2VuZE9wdHMpO1xuICAgIGxvZy5kZWJ1ZygnU2VuZGVyIGtleSBzZXQnKTtcblxuICAgIGlmICh0aGlzLmlzVGFyZ2V0QmFzZWQgJiYgdXRpbC5jb21wYXJlVmVyc2lvbnModGhpcy5wbGF0Zm9ybVZlcnNpb24sICc8JywgTUlOX1BMQVRGT1JNX05PX1RBUkdFVF9FWElTVFMpKSB7XG4gICAgICBhd2FpdCB0aGlzLnNlbmQoJ1RhcmdldC5leGlzdHMnLCBzZW5kT3B0cywgZmFsc2UpO1xuICAgIH1cblxuICAgIHRoaXMuc2hvdWxkQ2hlY2tGb3JUYXJnZXQgPSB0cnVlO1xuXG4gICAgaWYgKHRoaXMuZnVsbFBhZ2VJbml0aWFsaXphdGlvbikge1xuICAgICAgYXdhaXQgdGhpcy5pbml0aWFsaXplUGFnZUZ1bGwoYXBwSWRLZXksIHBhZ2VJZEtleSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGF3YWl0IHRoaXMuaW5pdGlhbGl6ZVBhZ2UoYXBwSWRLZXksIHBhZ2VJZEtleSk7XG4gICAgfVxuICB9XG5cbiAgLypcbiAgICogUGVyZm9ybSB0aGUgbWluaW1hbCBpbml0aWFsaXphdGlvbiB0byBnZXQgdGhlIFdlYiBJbnNwZWN0b3Igd29ya2luZ1xuICAgKi9cbiAgYXN5bmMgaW5pdGlhbGl6ZVBhZ2UgKGFwcElkS2V5LCBwYWdlSWRLZXkpIHtcbiAgICBjb25zdCBzZW5kT3B0cyA9IHtcbiAgICAgIGFwcElkS2V5LFxuICAgICAgcGFnZUlkS2V5LFxuICAgIH07XG5cbiAgICBhd2FpdCB0aGlzLnNlbmQoJ0luc3BlY3Rvci5lbmFibGUnLCBzZW5kT3B0cywgZmFsc2UpO1xuICAgIGF3YWl0IHRoaXMuc2VuZCgnUGFnZS5lbmFibGUnLCBzZW5kT3B0cywgZmFsc2UpO1xuXG4gICAgLy8gZ28gdGhyb3VnaCB0aGUgdGFza3MgdG8gaW5pdGlhbGl6ZVxuICAgIGF3YWl0IHRoaXMuc2VuZCgnTmV0d29yay5lbmFibGUnLCBzZW5kT3B0cywgZmFsc2UpO1xuICAgIGF3YWl0IHRoaXMuc2VuZCgnUnVudGltZS5lbmFibGUnLCBzZW5kT3B0cywgZmFsc2UpO1xuICAgIGF3YWl0IHRoaXMuc2VuZCgnSGVhcC5lbmFibGUnLCBzZW5kT3B0cywgZmFsc2UpO1xuICAgIGF3YWl0IHRoaXMuc2VuZCgnRGVidWdnZXIuZW5hYmxlJywgc2VuZE9wdHMsIGZhbHNlKTtcbiAgICBhd2FpdCB0aGlzLnNlbmQoJ0NvbnNvbGUuZW5hYmxlJywgc2VuZE9wdHMsIGZhbHNlKTtcbiAgICBhd2FpdCB0aGlzLnNlbmQoJ0luc3BlY3Rvci5pbml0aWFsaXplZCcsIHNlbmRPcHRzLCBmYWxzZSk7XG4gIH1cblxuICAvKlxuICAgKiBNaW1pYyBldmVyeSBzdGVwIHRoYXQgRGVza3RvcCBTYWZhcmkgRGV2ZWxvcCB0b29scyB1c2VzIHRvIGluaXRpYWxpemUgYVxuICAgKiBXZWIgSW5zcGVjdG9yIHNlc3Npb25cbiAgICovXG4gIGFzeW5jIGluaXRpYWxpemVQYWdlRnVsbCAoYXBwSWRLZXksIHBhZ2VJZEtleSkge1xuICAgIGNvbnN0IHNlbmRPcHRzID0ge1xuICAgICAgYXBwSWRLZXksXG4gICAgICBwYWdlSWRLZXksXG4gICAgfTtcblxuICAgIGF3YWl0IHRoaXMuc2VuZCgnSW5zcGVjdG9yLmVuYWJsZScsIHNlbmRPcHRzLCBmYWxzZSk7XG4gICAgYXdhaXQgdGhpcy5zZW5kKCdQYWdlLmVuYWJsZScsIHNlbmRPcHRzLCBmYWxzZSk7XG5cbiAgICAvLyBnbyB0aHJvdWdoIHRoZSB0YXNrcyB0byBpbml0aWFsaXplXG4gICAgYXdhaXQgdGhpcy5zZW5kKCdQYWdlLmdldFJlc291cmNlVHJlZScsIHNlbmRPcHRzLCBmYWxzZSk7XG4gICAgYXdhaXQgdGhpcy5zZW5kKCdOZXR3b3JrLmVuYWJsZScsIHNlbmRPcHRzLCBmYWxzZSk7XG4gICAgYXdhaXQgdGhpcy5zZW5kKCdOZXR3b3JrLnNldFJlc291cmNlQ2FjaGluZ0Rpc2FibGVkJywgT2JqZWN0LmFzc2lnbih7XG4gICAgICBkaXNhYmxlZDogZmFsc2UsXG4gICAgfSwgc2VuZE9wdHMpLCBmYWxzZSk7XG4gICAgYXdhaXQgdGhpcy5zZW5kKCdET01TdG9yYWdlLmVuYWJsZScsIHNlbmRPcHRzLCBmYWxzZSk7XG4gICAgYXdhaXQgdGhpcy5zZW5kKCdEYXRhYmFzZS5lbmFibGUnLCBzZW5kT3B0cywgZmFsc2UpO1xuICAgIGF3YWl0IHRoaXMuc2VuZCgnSW5kZXhlZERCLmVuYWJsZScsIHNlbmRPcHRzLCBmYWxzZSk7XG4gICAgYXdhaXQgdGhpcy5zZW5kKCdDU1MuZW5hYmxlJywgc2VuZE9wdHMsIGZhbHNlKTtcbiAgICBhd2FpdCB0aGlzLnNlbmQoJ1J1bnRpbWUuZW5hYmxlJywgc2VuZE9wdHMsIGZhbHNlKTtcbiAgICBhd2FpdCB0aGlzLnNlbmQoJ0hlYXAuZW5hYmxlJywgc2VuZE9wdHMsIGZhbHNlKTtcbiAgICBhd2FpdCB0aGlzLnNlbmQoJ01lbW9yeS5lbmFibGUnLCBzZW5kT3B0cywgZmFsc2UpO1xuICAgIGF3YWl0IHRoaXMuc2VuZCgnQXBwbGljYXRpb25DYWNoZS5lbmFibGUnLCBzZW5kT3B0cywgZmFsc2UpO1xuICAgIGF3YWl0IHRoaXMuc2VuZCgnQXBwbGljYXRpb25DYWNoZS5nZXRGcmFtZXNXaXRoTWFuaWZlc3RzJywgc2VuZE9wdHMsIGZhbHNlKTtcbiAgICBhd2FpdCB0aGlzLnNlbmQoJ1RpbWVsaW5lLnNldEluc3RydW1lbnRzJywgT2JqZWN0LmFzc2lnbih7XG4gICAgICBpbnN0cnVtZW50czogWydUaW1lbGluZScsICdTY3JpcHRQcm9maWxlcicsICdDUFUnXSxcbiAgICB9LCBzZW5kT3B0cyksIGZhbHNlKTtcbiAgICBhd2FpdCB0aGlzLnNlbmQoJ1RpbWVsaW5lLnNldEF1dG9DYXB0dXJlRW5hYmxlZCcsIE9iamVjdC5hc3NpZ24oe1xuICAgICAgZW5hYmxlZDogZmFsc2UsXG4gICAgfSwgc2VuZE9wdHMpLCBmYWxzZSk7XG4gICAgYXdhaXQgdGhpcy5zZW5kKCdEZWJ1Z2dlci5lbmFibGUnLCBzZW5kT3B0cywgZmFsc2UpO1xuICAgIGF3YWl0IHRoaXMuc2VuZCgnRGVidWdnZXIuc2V0QnJlYWtwb2ludHNBY3RpdmUnLCBPYmplY3QuYXNzaWduKHtcbiAgICAgIGFjdGl2ZTogdHJ1ZSxcbiAgICB9LCBzZW5kT3B0cyksIGZhbHNlKTtcbiAgICBhd2FpdCB0aGlzLnNlbmQoJ0RlYnVnZ2VyLnNldFBhdXNlT25FeGNlcHRpb25zJywgT2JqZWN0LmFzc2lnbih7XG4gICAgICBzdGF0ZTogJ25vbmUnLFxuICAgIH0sIHNlbmRPcHRzKSwgZmFsc2UpO1xuICAgIGF3YWl0IHRoaXMuc2VuZCgnRGVidWdnZXIuc2V0UGF1c2VPbkFzc2VydGlvbnMnLCBPYmplY3QuYXNzaWduKHtcbiAgICAgIGVuYWJsZWQ6IGZhbHNlLFxuICAgIH0sIHNlbmRPcHRzKSwgZmFsc2UpO1xuICAgIGF3YWl0IHRoaXMuc2VuZCgnRGVidWdnZXIuc2V0QXN5bmNTdGFja1RyYWNlRGVwdGgnLCBPYmplY3QuYXNzaWduKHtcbiAgICAgIGRlcHRoOiAyMDAsXG4gICAgfSwgc2VuZE9wdHMpLCBmYWxzZSk7XG4gICAgYXdhaXQgdGhpcy5zZW5kKCdEZWJ1Z2dlci5zZXRQYXVzZUZvckludGVybmFsU2NyaXB0cycsIE9iamVjdC5hc3NpZ24oe1xuICAgICAgc2hvdWxkUGF1c2U6IGZhbHNlLFxuICAgIH0sIHNlbmRPcHRzKSwgZmFsc2UpO1xuXG4gICAgYXdhaXQgdGhpcy5zZW5kKCdMYXllclRyZWUuZW5hYmxlJywgc2VuZE9wdHMsIGZhbHNlKTtcbiAgICBhd2FpdCB0aGlzLnNlbmQoJ1dvcmtlci5lbmFibGUnLCBzZW5kT3B0cywgZmFsc2UpO1xuICAgIGF3YWl0IHRoaXMuc2VuZCgnQ2FudmFzLmVuYWJsZScsIHNlbmRPcHRzLCBmYWxzZSk7XG4gICAgYXdhaXQgdGhpcy5zZW5kKCdDb25zb2xlLmVuYWJsZScsIHNlbmRPcHRzLCBmYWxzZSk7XG4gICAgYXdhaXQgdGhpcy5zZW5kKCdET00uZ2V0RG9jdW1lbnQnLCBzZW5kT3B0cywgZmFsc2UpO1xuICAgIGNvbnN0IGxvZ2dpbmdDaGFubmVscyA9IGF3YWl0IHRoaXMuc2VuZCgnQ29uc29sZS5nZXRMb2dnaW5nQ2hhbm5lbHMnLCBzZW5kT3B0cyk7XG4gICAgZm9yIChjb25zdCBzb3VyY2Ugb2YgKGxvZ2dpbmdDaGFubmVscy5jaGFubmVscyB8fCBbXSkubWFwKChlbnRyeSkgPT4gZW50cnkuc291cmNlKSkge1xuICAgICAgYXdhaXQgdGhpcy5zZW5kKCdDb25zb2xlLnNldExvZ2dpbmdDaGFubmVsTGV2ZWwnLCBPYmplY3QuYXNzaWduKHtcbiAgICAgICAgc291cmNlLFxuICAgICAgICBsZXZlbDogJ3ZlcmJvc2UnLFxuICAgICAgfSwgc2VuZE9wdHMpLCBmYWxzZSk7XG4gICAgfVxuXG4gICAgYXdhaXQgdGhpcy5zZW5kKCdJbnNwZWN0b3IuaW5pdGlhbGl6ZWQnLCBzZW5kT3B0cywgZmFsc2UpO1xuICB9XG5cbiAgYXN5bmMgc2VsZWN0QXBwIChhcHBJZEtleSkge1xuICAgIHJldHVybiBhd2FpdCBuZXcgQigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAvLyBsb2NhbCBjYWxsYmFjaywgdGVtcG9yYXJpbHkgYWRkZWQgYXMgY2FsbGJhY2sgdG9cbiAgICAgIC8vIGBfcnBjX2FwcGxpY2F0aW9uQ29ubmVjdGVkOmAgcmVtb3RlIGRlYnVnZ2VyIHJlc3BvbnNlXG4gICAgICAvLyB0byBoYW5kbGUgdGhlIGluaXRpYWwgY29ubmVjdGlvblxuICAgICAgY29uc3Qgb25BcHBDaGFuZ2UgPSAoZXJyLCBkaWN0KSA9PiB7XG4gICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICByZXR1cm4gcmVqZWN0KGVycik7XG4gICAgICAgIH1cbiAgICAgICAgLy8gZnJvbSB0aGUgZGljdGlvbmFyeSByZXR1cm5lZCwgZ2V0IHRoZSBpZHNcbiAgICAgICAgY29uc3Qgb2xkQXBwSWRLZXkgPSBkaWN0LldJUkhvc3RBcHBsaWNhdGlvbklkZW50aWZpZXJLZXk7XG4gICAgICAgIGNvbnN0IGNvcnJlY3RBcHBJZEtleSA9IGRpY3QuV0lSQXBwbGljYXRpb25JZGVudGlmaWVyS2V5O1xuXG4gICAgICAgIC8vIGlmIHRoaXMgaXMgYSByZXBvcnQgb2YgYSBwcm94eSByZWRpcmVjdCBmcm9tIHRoZSByZW1vdGUgZGVidWdnZXJcbiAgICAgICAgLy8gd2Ugd2FudCB0byB1cGRhdGUgb3VyIGRpY3Rpb25hcnkgYW5kIGdldCBhIG5ldyBhcHAgaWRcbiAgICAgICAgaWYgKG9sZEFwcElkS2V5ICYmIGNvcnJlY3RBcHBJZEtleSAhPT0gb2xkQXBwSWRLZXkpIHtcbiAgICAgICAgICBsb2cuZGVidWcoYFdlIHdlcmUgbm90aWZpZWQgd2UgbWlnaHQgaGF2ZSBjb25uZWN0ZWQgdG8gdGhlIHdyb25nIGFwcC4gYCArXG4gICAgICAgICAgICAgICAgICAgIGBVc2luZyBpZCAke2NvcnJlY3RBcHBJZEtleX0gaW5zdGVhZCBvZiAke29sZEFwcElkS2V5fWApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmVqZWN0KG5ldyBFcnJvcignTmV3IGFwcGxpY2F0aW9uIGhhcyBjb25uZWN0ZWQnKSk7XG4gICAgICB9O1xuICAgICAgdGhpcy5tZXNzYWdlSGFuZGxlci5wcmVwZW5kT25jZUxpc3RlbmVyKCdfcnBjX2FwcGxpY2F0aW9uQ29ubmVjdGVkOicsIG9uQXBwQ2hhbmdlKTtcblxuICAgICAgLy8gZG8gdGhlIGFjdHVhbCBjb25uZWN0aW5nIHRvIHRoZSBhcHBcbiAgICAgIHJldHVybiAoYXN5bmMgKCkgPT4ge1xuICAgICAgICBsZXQgcGFnZURpY3QsIGNvbm5lY3RlZEFwcElkS2V5O1xuICAgICAgICB0cnkge1xuICAgICAgICAgIChbY29ubmVjdGVkQXBwSWRLZXksIHBhZ2VEaWN0XSA9IGF3YWl0IHRoaXMuc2VuZCgnY29ubmVjdFRvQXBwJywge1xuICAgICAgICAgICAgYXBwSWRLZXlcbiAgICAgICAgICB9KSk7XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgIGxvZy53YXJuKGBVbmFibGUgdG8gY29ubmVjdCB0byBhcHA6ICR7ZXJyLm1lc3NhZ2V9YCk7XG4gICAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBzb21ldGltZXMgdGhlIGNvbm5lY3QgbG9naWMgaGFwcGVucywgYnV0IHdpdGggYW4gZW1wdHkgZGljdGlvbmFyeVxuICAgICAgICAvLyB3aGljaCBsZWFkcyB0byB0aGUgcmVtb3RlIGRlYnVnZ2VyIGdldHRpbmcgZGlzY29ubmVjdGVkLCBhbmQgaW50byBhIGxvb3BcbiAgICAgICAgaWYgKF8uaXNFbXB0eShwYWdlRGljdCkpIHtcbiAgICAgICAgICBsZXQgbXNnID0gJ0VtcHR5IHBhZ2UgZGljdGlvbmFyeSByZWNlaXZlZCc7XG4gICAgICAgICAgbG9nLmRlYnVnKG1zZyk7XG4gICAgICAgICAgcmVqZWN0KG5ldyBFcnJvcihtc2cpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXNvbHZlKFtjb25uZWN0ZWRBcHBJZEtleSwgcGFnZURpY3RdKTtcbiAgICAgICAgfVxuICAgICAgfSkoKTtcbiAgICB9KTtcbiAgfVxuXG4gIG9uRXhlY3V0aW9uQ29udGV4dENyZWF0ZWQgKGVyciwgY29udGV4dCkge1xuICAgIC8vIHsgaWQ6IDIsIGlzUGFnZUNvbnRleHQ6IHRydWUsIG5hbWU6ICcnLCBmcmFtZUlkOiAnMC4xJyB9XG4gICAgLy8gcmlnaHQgbm93IHdlIGhhdmUgbm8gd2F5IHRvIG1hcCBjb250ZXh0cyB0byBhcHBzL3BhZ2VzXG4gICAgLy8gc28ganVzdCBzdG9yZVxuICAgIHRoaXMuY29udGV4dHMucHVzaChjb250ZXh0LmlkKTtcbiAgfVxuXG4gIG9uR2FyYmFnZUNvbGxlY3RlZCAoKSB7XG4gICAgLy8ganVzdCB3YW50IHRvIGxvZyB0aGF0IHRoaXMgaXMgaGFwcGVuaW5nLCBhcyBpdCBjYW4gYWZmZWN0IG9wZXJ0aW9uXG4gICAgbG9nLmRlYnVnKGBXZWIgSW5zcGVjdG9yIGdhcmJhZ2UgY29sbGVjdGVkYCk7XG4gIH1cblxuICBvblNjcmlwdFBhcnNlZCAoZXJyLCBzY3JpcHRJbmZvKSB7XG4gICAgLy8geyBzY3JpcHRJZDogJzEzJywgdXJsOiAnJywgc3RhcnRMaW5lOiAwLCBzdGFydENvbHVtbjogMCwgZW5kTGluZTogODIsIGVuZENvbHVtbjogMyB9XG4gICAgbG9nLmRlYnVnKGBTY3JpcHQgcGFyc2VkOiAke0pTT04uc3RyaW5naWZ5KHNjcmlwdEluZm8pfWApO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBR0EsTUFBTUEsZUFBZSxHQUFHO0VBQUNDLE1BQU0sRUFBRTtBQUFULENBQXhCO0FBRUEsTUFBTUMsdUJBQXVCLEdBQUcsS0FBaEM7QUFDQSxNQUFNQyx3QkFBd0IsR0FBRyxJQUFqQztBQUVBLE1BQU1DLDZCQUE2QixHQUFHLE1BQXRDO0FBR0EsTUFBTUMsNkJBQTZCLEdBQUcsTUFBdEM7O0FBRUEsU0FBU0MsYUFBVCxDQUF3QkMsUUFBeEIsRUFBa0NDLGVBQWxDLEVBQW1EO0VBSWpELE1BQU1DLGFBQWEsR0FBR0MsYUFBQSxDQUFLQyxlQUFMLENBQXFCSCxlQUFyQixFQUFzQyxJQUF0QyxFQUE0Q0osNkJBQTVDLENBQXRCOztFQUNBUSxlQUFBLENBQUlDLEtBQUosQ0FBVyw4Q0FBNkNOLFFBQVEsR0FBRyxFQUFILEdBQVEsTUFBTywrQkFBOEJDLGVBQWdCLElBQTdIOztFQUNBSSxlQUFBLENBQUlDLEtBQUosQ0FBVywwQ0FBeUNULDZCQUE4QixNQUFLSyxhQUFjLEVBQXJHOztFQUNBLE9BQU9BLGFBQVA7QUFDRDs7QUFFYyxNQUFNSyxTQUFOLENBQWdCO0VBQzdCQyxXQUFXLENBQUVDLElBQUksR0FBRyxFQUFULEVBQWE7SUFDdEIsS0FBS0MsUUFBTCxHQUFnQixFQUFoQjtJQUNBLEtBQUtDLHFCQUFMLEdBQTZCLENBQUMsQ0FBQ0YsSUFBSSxDQUFDRyxvQkFBcEM7SUFFQSxNQUFNO01BQ0pDLFFBREk7TUFFSlosZUFBZSxHQUFHLEVBRmQ7TUFHSkQsUUFBUSxHQUFHLElBSFA7TUFJ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
|
|
568
|
+
exports.default = RpcClient;
|
|
569
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJEQVRBX0xPR19MRU5HVEgiLCJsZW5ndGgiLCJXQUlUX0ZPUl9UQVJHRVRfVElNRU9VVCIsIldBSVRfRk9SX1RBUkdFVF9JTlRFUlZBTCIsIk1JTl9QTEFURk9STV9GT1JfVEFSR0VUX0JBU0VEIiwiTUlOX1BMQVRGT1JNX05PX1RBUkdFVF9FWElTVFMiLCJpc1RhcmdldEJhc2VkIiwiaXNTYWZhcmkiLCJwbGF0Zm9ybVZlcnNpb24iLCJpc0hpZ2hWZXJzaW9uIiwidXRpbCIsImNvbXBhcmVWZXJzaW9ucyIsImxvZyIsImRlYnVnIiwiUnBjQ2xpZW50IiwiY29uc3RydWN0b3IiLCJvcHRzIiwiX3RhcmdldHMiLCJfc2hvdWxkQ2hlY2tGb3JUYXJnZXQiLCJzaG91bGRDaGVja0ZvclRhcmdldCIsImJ1bmRsZUlkIiwibG9nQWxsQ29tbXVuaWNhdGlvbiIsImxvZ0FsbENvbW11bmljYXRpb25IZXhEdW1wIiwid2ViSW5zcGVjdG9yTWF4RnJhbWVMZW5ndGgiLCJzb2NrZXRDaHVua1NpemUiLCJmdWxsUGFnZUluaXRpYWxpemF0aW9uIiwiaXNDb25uZWN0ZWQiLCJjb25uSWQiLCJ1dWlkVjQiLCJzZW5kZXJJZCIsIm1zZ0lkIiwiX2NvbnRleHRzIiwiY29udGV4dHMiLCJuZWVkc1RhcmdldCIsInRhcmdldHMiLCJjb25uZWN0ZWQiLCJvbiIsImV2ZW50IiwibGlzdGVuZXIiLCJtZXNzYWdlSGFuZGxlciIsIm9uY2UiLCJvZmYiLCJ3YXJuIiwiX2lzVGFyZ2V0QmFzZWQiLCJyZW1vdGVNZXNzYWdlcyIsIlJlbW90ZU1lc3NhZ2VzIiwiUnBjTWVzc2FnZUhhbmRsZXIiLCJhZGRUYXJnZXQiLCJiaW5kIiwidXBkYXRlVGFyZ2V0IiwicmVtb3ZlVGFyZ2V0Iiwib25FeGVjdXRpb25Db250ZXh0Q3JlYXRlZCIsIm9uR2FyYmFnZUNvbGxlY3RlZCIsIndhaXRGb3JUYXJnZXQiLCJhcHBJZEtleSIsInBhZ2VJZEtleSIsImZvcmNlIiwiZ2V0VGFyZ2V0Iiwid2FpdEZvckNvbmRpdGlvbiIsIl8iLCJpc0VtcHR5Iiwid2FpdE1zIiwiaW50ZXJ2YWxNcyIsImVycm9yIiwiZXJyIiwibWVzc2FnZSIsImluY2x1ZGVzIiwiRXJyb3IiLCJzZW5kIiwiY29tbWFuZCIsIndhaXRGb3JSZXNwb25zZSIsInRpbWVyIiwidGltaW5nIiwiVGltZXIiLCJzdGFydCIsInNlbmRUb0RldmljZSIsInRvTG93ZXJDYXNlIiwiaW5mbyIsImdldER1cmF0aW9uIiwiYXNNaWxsaVNlY29uZHMiLCJ0b0ZpeGVkIiwiQiIsInJlc29sdmUiLCJyZWplY3QiLCJ3cmFwcGVyTXNnSWQiLCJ0b1N0cmluZyIsInRhcmdldElkIiwiZnVsbE9wdHMiLCJkZWZhdWx0cyIsImlkIiwiY21kIiwiZ2V0UmVtb3RlQ29tbWFuZCIsIl9fYXJndW1lbnQiLCJXSVJTb2NrZXREYXRhS2V5IiwiaXNOaWwiLCJCdWZmZXIiLCJmcm9tIiwiSlNPTiIsInN0cmluZ2lmeSIsIm1lc3NhZ2VIYW5kbGVkIiwidHJ1bmNhdGUiLCJsaXN0ZW5lcnMiLCJfX3NlbGVjdG9yIiwicHJlcGVuZE9uY2VMaXN0ZW5lciIsImFyZ3MiLCJ2YWx1ZSIsImNvZGUiLCJtc2ciLCJyZXMiLCJzZW5kTWVzc2FnZSIsImNvbm5lY3QiLCJkaXNjb25uZWN0IiwicmVtb3ZlQWxsTGlzdGVuZXJzIiwicmVjZWl2ZSIsImFwcCIsInRhcmdldEluZm8iLCJwZW5kaW5nVGFyZ2V0Tm90aWZpY2F0aW9uIiwiaXNQcm92aXNpb25hbCIsImhhcyIsIm9sZFRhcmdldElkIiwibmV3VGFyZ2V0SWQiLCJwcm92aXNpb25hbCIsInBhZ2UiLCJ0b1BhaXJzIiwic2VsZWN0UGFnZSIsInNlbmRPcHRzIiwiZW5hYmxlZCIsIk9iamVjdCIsImFzc2lnbiIsImluaXRpYWxpemVQYWdlRnVsbCIsImluaXRpYWxpemVQYWdlIiwiZGlzYWJsZWQiLCJpbnN0cnVtZW50cyIsImFjdGl2ZSIsInN0YXRlIiwiZGVwdGgiLCJzaG91bGRQYXVzZSIsImxvZ2dpbmdDaGFubmVscyIsInNvdXJjZSIsImNoYW5uZWxzIiwibWFwIiwiZW50cnkiLCJsZXZlbCIsInNlbGVjdEFwcCIsIm9uQXBwQ2hhbmdlIiwiZGljdCIsIm9sZEFwcElkS2V5IiwiV0lSSG9zdEFwcGxpY2F0aW9uSWRlbnRpZmllcktleSIsImNvcnJlY3RBcHBJZEtleSIsIldJUkFwcGxpY2F0aW9uSWRlbnRpZmllcktleSIsInBhZ2VEaWN0IiwiY29ubmVjdGVkQXBwSWRLZXkiLCJjb250ZXh0IiwicHVzaCIsIm9uU2NyaXB0UGFyc2VkIiwic2NyaXB0SW5mbyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9ycGMvcnBjLWNsaWVudC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVtb3RlTWVzc2FnZXMgZnJvbSAnLi9yZW1vdGUtbWVzc2FnZXMnO1xuaW1wb3J0IHsgd2FpdEZvckNvbmRpdGlvbiB9IGZyb20gJ2FzeW5jYm94JztcbmltcG9ydCBsb2cgZnJvbSAnLi4vbG9nZ2VyJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgQiBmcm9tICdibHVlYmlyZCc7XG5pbXBvcnQgUnBjTWVzc2FnZUhhbmRsZXIgZnJvbSAnLi9ycGMtbWVzc2FnZS1oYW5kbGVyJztcbmltcG9ydCB7IHV0aWwsIHRpbWluZyB9IGZyb20gJ2FwcGl1bS9zdXBwb3J0JztcblxuXG5jb25zdCBEQVRBX0xPR19MRU5HVEggPSB7bGVuZ3RoOiAyMDB9O1xuXG5jb25zdCBXQUlUX0ZPUl9UQVJHRVRfVElNRU9VVCA9IDEwMDAwO1xuY29uc3QgV0FJVF9GT1JfVEFSR0VUX0lOVEVSVkFMID0gMTAwMDtcblxuY29uc3QgTUlOX1BMQVRGT1JNX0ZPUl9UQVJHRVRfQkFTRUQgPSAnMTIuMic7XG5cbi8vIGBUYXJnZXQuZXhpc3RzYCBwcm90b2NvbCBtZXRob2Qgd2FzIHJlbW92ZWQgZnJvbSBXZWJLaXRpbiAxMy40XG5jb25zdCBNSU5fUExBVEZPUk1fTk9fVEFSR0VUX0VYSVNUUyA9ICcxMy40JztcblxuZnVuY3Rpb24gaXNUYXJnZXRCYXNlZCAoaXNTYWZhcmksIHBsYXRmb3JtVmVyc2lvbikge1xuICAvLyBPbiBpT1MgMTIuMiB0aGUgbWVzc2FnZXMgZ2V0IHNlbnQgdGhyb3VnaCB0aGUgVGFyZ2V0IGRvbWFpblxuICAvLyBPbiBpT1MgMTMuMCssIFdLV2ViVmlldyBhbHNvIG5lZWRzIHRvIGZvbGxvdyB0aGUgVGFyZ2V0IGRvbWFpbixcbiAgLy8gc28gaGVyZSBvbmx5IGNoZWNrIHRoZSB0YXJnZXQgT1MgdmVyc2lvbiBhcyB0aGUgZGVmYXVsdCBiZWhhdmlvdXIuXG4gIGNvbnN0IGlzSGlnaFZlcnNpb24gPSB1dGlsLmNvbXBhcmVWZXJzaW9ucyhwbGF0Zm9ybVZlcnNpb24sICc+PScsIE1JTl9QTEFURk9STV9GT1JfVEFSR0VUX0JBU0VEKTtcbiAgbG9nLmRlYnVnKGBDaGVja2luZyB3aGljaCBjb21tdW5pY2F0aW9uIHN0eWxlIHRvIHVzZSAoJHtpc1NhZmFyaSA/ICcnIDogJ25vbi0nfVNhZmFyaSBvbiBwbGF0Zm9ybSB2ZXJzaW9uICcke3BsYXRmb3JtVmVyc2lvbn0nKWApO1xuICBsb2cuZGVidWcoYFBsYXRmb3JtIHZlcnNpb24gZXF1YWwgb3IgaGlnaGVyIHRoYW4gJyR7TUlOX1BMQVRGT1JNX0ZPUl9UQVJHRVRfQkFTRUR9JzogJHtpc0hpZ2hWZXJzaW9ufWApO1xuICByZXR1cm4gaXNIaWdoVmVyc2lvbjtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUnBjQ2xpZW50IHtcbiAgY29uc3RydWN0b3IgKG9wdHMgPSB7fSkge1xuICAgIHRoaXMuX3RhcmdldHMgPSBbXTtcbiAgICB0aGlzLl9zaG91bGRDaGVja0ZvclRhcmdldCA9ICEhb3B0cy5zaG91bGRDaGVja0ZvclRhcmdldDtcblxuICAgIGNvbnN0IHtcbiAgICAgIGJ1bmRsZUlkLFxuICAgICAgcGxhdGZvcm1WZXJzaW9uID0ge30sXG4gICAgICBpc1NhZmFyaSA9IHRydWUsXG4gICAgICBsb2dBbGxDb21tdW5pY2F0aW9uID0gZmFsc2UsXG4gICAgICBsb2dBbGxDb21tdW5pY2F0aW9uSGV4RHVtcCA9IGZhbHNlLFxuICAgICAgd2ViSW5zcGVjdG9yTWF4RnJhbWVMZW5ndGgsXG4gICAgICBzb2NrZXRDaHVua1NpemUsXG4gICAgICBmdWxsUGFnZUluaXRpYWxpemF0aW9uID0gZmFsc2UsXG4gICAgfSA9IG9wdHM7XG5cbiAgICB0aGlzLmlzU2FmYXJpID0gaXNTYWZhcmk7XG5cbiAgICB0aGlzLmlzQ29ubmVjdGVkID0gZmFsc2U7XG4gICAgdGhpcy5jb25uSWQgPSB1dGlsLnV1aWRWNCgpO1xuICAgIHRoaXMuc2VuZGVySWQgPSB1dGlsLnV1aWRWNCgpO1xuICAgIHRoaXMubXNnSWQgPSAwO1xuXG4gICAgdGhpcy5sb2dBbGxDb21tdW5pY2F0aW9uID0gbG9nQWxsQ29tbXVuaWNhdGlvbjtcbiAgICB0aGlzLmxvZ0FsbENvbW11bmljYXRpb25IZXhEdW1wID0gbG9nQWxsQ29tbXVuaWNhdGlvbkhleER1bXA7XG4gICAgdGhpcy5zb2NrZXRDaHVua1NpemUgPSBzb2NrZXRDaHVua1NpemU7XG4gICAgdGhpcy53ZWJJbnNwZWN0b3JNYXhGcmFtZUxlbmd0aCA9IHdlYkluc3BlY3Rvck1heEZyYW1lTGVuZ3RoO1xuXG4gICAgdGhpcy5mdWxsUGFnZUluaXRpYWxpemF0aW9uID0gZnVsbFBhZ2VJbml0aWFsaXphdGlvbjtcblxuICAgIHRoaXMuYnVuZGxlSWQgPSBidW5kbGVJZDtcbiAgICB0aGlzLnBsYXRmb3JtVmVyc2lvbiA9IHBsYXRmb3JtVmVyc2lvbjtcblxuICAgIHRoaXMuX2NvbnRleHRzID0gW107XG4gICAgdGhpcy5fdGFyZ2V0cyA9IHt9O1xuXG4gICAgLy8gc3RhcnQgd2l0aCBhIGJlc3QgZ3Vlc3MgZm9yIHRoZSBwcm90b2NvbFxuICAgIHRoaXMuaXNUYXJnZXRCYXNlZCA9IGlzVGFyZ2V0QmFzZWQoaXNTYWZhcmksIHRoaXMucGxhdGZvcm1WZXJzaW9uKTtcbiAgfVxuXG4gIGdldCBjb250ZXh0cyAoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbnRleHRzO1xuICB9XG5cbiAgZ2V0IG5lZWRzVGFyZ2V0ICgpIHtcbiAgICByZXR1cm4gdGhpcy5zaG91bGRDaGVja0ZvclRhcmdldCAmJiB0aGlzLmlzVGFyZ2V0QmFzZWQ7XG4gIH1cblxuICBnZXQgdGFyZ2V0cyAoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3RhcmdldHM7XG4gIH1cblxuICBnZXQgc2hvdWxkQ2hlY2tGb3JUYXJnZXQgKCkge1xuICAgIHJldHVybiB0aGlzLl9zaG91bGRDaGVja0ZvclRhcmdldDtcbiAgfVxuXG4gIHNldCBzaG91bGRDaGVja0ZvclRhcmdldCAoc2hvdWxkQ2hlY2tGb3JUYXJnZXQpIHtcbiAgICB0aGlzLl9zaG91bGRDaGVja0ZvclRhcmdldCA9ICEhc2hvdWxkQ2hlY2tGb3JUYXJnZXQ7XG4gIH1cblxuICBnZXQgaXNDb25uZWN0ZWQgKCkge1xuICAgIHJldHVybiB0aGlzLmNvbm5lY3RlZDtcbiAgfVxuXG4gIHNldCBpc0Nvbm5lY3RlZCAoY29ubmVjdGVkKSB7XG4gICAgdGhpcy5jb25uZWN0ZWQgPSAhIWNvbm5lY3RlZDtcbiAgfVxuXG4gIG9uIChldmVudCwgbGlzdGVuZXIpIHtcbiAgICB0aGlzLm1lc3NhZ2VIYW5kbGVyLm9uKGV2ZW50LCBsaXN0ZW5lcik7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBvbmNlIChldmVudCwgbGlzdGVuZXIpIHtcbiAgICB0aGlzLm1lc3NhZ2VIYW5kbGVyLm9uY2UoZXZlbnQsIGxpc3RlbmVyKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIG9mZiAoZXZlbnQsIGxpc3RlbmVyKSB7XG4gICAgdGhpcy5tZXNzYWdlSGFuZGxlci5vZmYoZXZlbnQsIGxpc3RlbmVyKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHNldCBpc1RhcmdldEJhc2VkIChpc1RhcmdldEJhc2VkKSB7XG4gICAgbG9nLndhcm4oYFNldHRpbmcgY29tbXVuaWNhdGlvbiBwcm90b2NvbDogdXNpbmcgJHtpc1RhcmdldEJhc2VkID8gJ1RhcmdldC1iYXNlZCcgOiAnZnVsbCBXZWIgSW5zcGVjdG9yIHByb3RvY29sJ30gY29tbXVuaWNhdGlvbmApO1xuICAgIHRoaXMuX2lzVGFyZ2V0QmFzZWQgPSBpc1RhcmdldEJhc2VkO1xuXG4gICAgaWYgKCF0aGlzLnJlbW90ZU1lc3NhZ2VzKSB7XG4gICAgICB0aGlzLnJlbW90ZU1lc3NhZ2VzID0gbmV3IFJlbW90ZU1lc3NhZ2VzKGlzVGFyZ2V0QmFzZWQpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJlbW90ZU1lc3NhZ2VzLmlzVGFyZ2V0QmFzZWQgPSBpc1RhcmdldEJhc2VkO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5tZXNzYWdlSGFuZGxlcikge1xuICAgICAgdGhpcy5tZXNzYWdlSGFuZGxlciA9IG5ldyBScGNNZXNzYWdlSGFuZGxlcihpc1RhcmdldEJhc2VkKTtcblxuICAgICAgLy8gYWRkIGhhbmRsZXJzIGZvciBpbnRlcm5hbCBldmVudHNcbiAgICAgIHRoaXMubWVzc2FnZUhhbmRsZXIub24oJ1RhcmdldC50YXJnZXRDcmVhdGVkJywgdGhpcy5hZGRUYXJnZXQuYmluZCh0aGlzKSk7XG4gICAgICB0aGlzLm1lc3NhZ2VIYW5kbGVyLm9uKCdUYXJnZXQuZGlkQ29tbWl0UHJvdmlzaW9uYWxUYXJnZXQnLCB0aGlzLnVwZGF0ZVRhcmdldC5iaW5kKHRoaXMpKTtcbiAgICAgIHRoaXMubWVzc2FnZUhhbmRsZXIub24oJ1RhcmdldC50YXJnZXREZXN0cm95ZWQnLCB0aGlzLnJlbW92ZVRhcmdldC5iaW5kKHRoaXMpKTtcbiAgICAgIHRoaXMubWVzc2FnZUhhbmRsZXIub24oJ1J1bnRpbWUuZXhlY3V0aW9uQ29udGV4dENyZWF0ZWQnLCB0aGlzLm9uRXhlY3V0aW9uQ29udGV4dENyZWF0ZWQuYmluZCh0aGlzKSk7XG4gICAgICB0aGlzLm1lc3NhZ2VIYW5kbGVyLm9uKCdIZWFwLmdhcmJhZ2VDb2xsZWN0ZWQnLCB0aGlzLm9uR2FyYmFnZUNvbGxlY3RlZC5iaW5kKHRoaXMpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5tZXNzYWdlSGFuZGxlci5pc1RhcmdldEJhc2VkID0gaXNUYXJnZXRCYXNlZDtcbiAgICB9XG4gIH1cblxuICBnZXQgaXNUYXJnZXRCYXNlZCAoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2lzVGFyZ2V0QmFzZWQ7XG4gIH1cblxuICBhc3luYyB3YWl0Rm9yVGFyZ2V0IChhcHBJZEtleSwgcGFnZUlkS2V5LCBmb3JjZSA9IGZhbHNlKSB7XG4gICAgaWYgKCFmb3JjZSAmJiAhdGhpcy5uZWVkc1RhcmdldCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmdldFRhcmdldChhcHBJZEtleSwgcGFnZUlkS2V5KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIG90aGVyd2lzZSB3YWl0aW5nIGlzIG5lY2Vzc2FyeSB0byBzZWUgd2hhdCB0aGUgdGFyZ2V0IGlzXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHdhaXRGb3JDb25kaXRpb24oKCkgPT4gIV8uaXNFbXB0eSh0aGlzLmdldFRhcmdldChhcHBJZEtleSwgcGFnZUlkS2V5KSksIHtcbiAgICAgICAgd2FpdE1zOiBXQUlUX0ZPUl9UQVJHRVRfVElNRU9VVCxcbiAgICAgICAgaW50ZXJ2YWxNczogV0FJVF9GT1JfVEFSR0VUX0lOVEVSVkFMLFxuICAgICAgICBlcnJvcjogJ05vIHRhcmdldHMgZm91bmQsIHVuYWJsZSB0byBjb21tdW5pY2F0ZSB3aXRoIGRldmljZScsXG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGlmICghZXJyLm1lc3NhZ2UuaW5jbHVkZXMoJ0NvbmRpdGlvbiB1bm1ldCcpKSB7XG4gICAgICAgIHRocm93IGVycjtcbiAgICAgIH1cbiAgICAgIHRocm93IG5ldyBFcnJvcignTm8gdGFyZ2V0cyBmb3VuZCwgdW5hYmxlIHRvIGNvbW11bmljYXRlIHdpdGggZGV2aWNlJyk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgc2VuZCAoY29tbWFuZCwgb3B0cyA9IHt9LCB3YWl0Rm9yUmVzcG9uc2UgPSB0cnVlKSB7XG4gICAgY29uc3QgdGltZXIgPSBuZXcgdGltaW5nLlRpbWVyKCkuc3RhcnQoKTtcbiAgICBjb25zdCB7XG4gICAgICBhcHBJZEtleSxcbiAgICAgIHBhZ2VJZEtleVxuICAgIH0gPSBvcHRzO1xuICAgIHRyeSB7XG4gICAgICBpZiAoIV8uaXNFbXB0eShhcHBJZEtleSkgJiYgIV8uaXNFbXB0eShwYWdlSWRLZXkpKSB7XG4gICAgICAgIGF3YWl0IHRoaXMud2FpdEZvclRhcmdldChhcHBJZEtleSwgcGFnZUlkS2V5KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLnNlbmRUb0RldmljZShjb21tYW5kLCBvcHRzLCB3YWl0Rm9yUmVzcG9uc2UpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgbGV0IHsgbWVzc2FnZSA9ICcnIH0gPSBlcnI7XG4gICAgICBtZXNzYWdlID0gbWVzc2FnZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgaWYgKG1lc3NhZ2UuaW5jbHVkZXMoYCd0YXJnZXQnIGRvbWFpbiB3YXMgbm90IGZvdW5kYCkpIHtcbiAgICAgICAgbG9nLmluZm8oJ1RoZSB0YXJnZXQgZGV2aWNlIGRvZXMgbm90IHN1cHBvcnQgVGFyZ2V0IGJhc2VkIGNvbW11bmljYXRpb24uICcgK1xuICAgICAgICAgICdXaWxsIGZvbGxvdyBub24tdGFyZ2V0IGJhc2VkIGNvbW11bmljYXRpb24uJyk7XG4gICAgICAgIHRoaXMuaXNUYXJnZXRCYXNlZCA9IGZhbHNlO1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5zZW5kVG9EZXZpY2UoY29tbWFuZCwgb3B0cywgd2FpdEZvclJlc3BvbnNlKTtcbiAgICAgIH0gZWxzZSBpZiAobWVzc2FnZS5pbmNsdWRlcyhgZG9tYWluIHdhcyBub3QgZm91bmRgKSB8fFxuICAgICAgICAgIG1lc3NhZ2UuaW5jbHVkZXMoYHNvbWUgYXJndW1lbnRzIG9mIG1ldGhvZGApIHx8XG4gICAgICAgICAgbWVzc2FnZS5pbmNsdWRlcyhgbWlzc2luZyB0YXJnZXRgKSkge1xuICAgICAgICB0aGlzLmlzVGFyZ2V0QmFzZWQgPSB0cnVlO1xuICAgICAgICBhd2FpdCB0aGlzLndhaXRGb3JUYXJnZXQoYXBwSWRLZXksIHBhZ2VJZEtleSk7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLnNlbmRUb0RldmljZShjb21tYW5kLCBvcHRzLCB3YWl0Rm9yUmVzcG9uc2UpO1xuICAgICAgfVxuICAgICAgdGhyb3cgZXJyO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBsb2cuZGVidWcoYFNlbmRpbmcgdG8gV2ViIEluc3BlY3RvciB0b29rICR7dGltZXIuZ2V0RHVyYXRpb24oKS5hc01pbGxpU2Vjb25kcy50b0ZpeGVkKDApfW1zYCk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgc2VuZFRvRGV2aWNlIChjb21tYW5kLCBvcHRzID0ge30sIHdhaXRGb3JSZXNwb25zZSA9IHRydWUpIHtcbiAgICByZXR1cm4gYXdhaXQgbmV3IEIoYXN5bmMgKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgLy8gcHJvbWlzZSB0byBiZSByZXNvbHZlZCB3aGVuZXZlciByZW1vdGUgZGVidWdnZXJcbiAgICAgIC8vIHJlcGxpZXMgdG8gb3VyIHJlcXVlc3RcblxuICAgICAgLy8ga2VlcCB0cmFjayBvZiB0aGUgbWVzc2FnZXMgY29taW5nIGFuZCBnb2luZyB1c2luZyBhIHNpbXBsZSBzZXF1ZW50aWFsIGlkXG4gICAgICBjb25zdCBtc2dJZCA9IHRoaXMubXNnSWQrKztcbiAgICAgIGxldCB3cmFwcGVyTXNnSWQgPSBtc2dJZDtcbiAgICAgIGlmICh0aGlzLmlzVGFyZ2V0QmFzZWQpIHtcbiAgICAgICAgLy8gZm9yIHRhcmdldC1iYXNlIGNvbW11bmljYXRpb24sIGV2ZXJ5dGhpbmcgaXMgd3JhcHBlZCB1cFxuICAgICAgICB3cmFwcGVyTXNnSWQgPSB0aGlzLm1zZ0lkKys7XG4gICAgICAgIC8vIGFja25vd2xlZGdlIHdyYXBwZXIgbWVzc2FnZVxuICAgICAgICB0aGlzLm1lc3NhZ2VIYW5kbGVyLm9uKHdyYXBwZXJNc2dJZC50b1N0cmluZygpLCBmdW5jdGlvbiAoZXJyKSB7XG4gICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgYXBwSWRLZXkgPSBvcHRzLmFwcElkS2V5O1xuICAgICAgY29uc3QgcGFnZUlkS2V5ID0gb3B0cy5wYWdlSWRLZXk7XG4gICAgICBjb25zdCB0YXJnZXRJZCA9IHRoaXMuZ2V0VGFyZ2V0KGFwcElkS2V5LCBwYWdlSWRLZXkpO1xuXG4gICAgICAvLyByZXRyaWV2ZSB0aGUgY29ycmVjdCBjb21tYW5kIHRvIHNlbmRcbiAgICAgIGNvbnN0IGZ1bGxPcHRzID0gXy5kZWZhdWx0cyh7XG4gICAgICAgIGNvbm5JZDogdGhpcy5jb25uSWQsXG4gICAgICAgIHNlbmRlcklkOiB0aGlzLnNlbmRlcklkLFxuICAgICAgICB0YXJnZXRJZCxcbiAgICAgICAgaWQ6IG1zZ0lkLFxuICAgICAgfSwgb3B0cyk7XG4gICAgICBjb25zdCBjbWQgPSB0aGlzLnJlbW90ZU1lc3NhZ2VzLmdldFJlbW90ZUNvbW1hbmQoY29tbWFuZCwgZnVsbE9wdHMpO1xuXG4gICAgICBpZiAoY21kPy5fX2FyZ3VtZW50Py5XSVJTb2NrZXREYXRhS2V5KSB7XG4gICAgICAgIC8vIG1ha2Ugc3VyZSB0aGUgbWVzc2FnZSBiZWluZyBzZW50IGhhcyBhbGwgdGhlIGluZm9ybWF0aW9uIHRoYXQgaXMgbmVlZGVkXG4gICAgICAgIGlmIChfLmlzTmlsKGNtZC5fX2FyZ3VtZW50LldJUlNvY2tldERhdGFLZXkuaWQpKSB7XG4gICAgICAgICAgY21kLl9fYXJndW1lbnQuV0lSU29ja2V0RGF0YUtleS5pZCA9IHdyYXBwZXJNc2dJZDtcbiAgICAgICAgfVxuICAgICAgICBjbWQuX19hcmd1bWVudC5XSVJTb2NrZXREYXRhS2V5ID1cbiAgICAgICAgICBCdWZmZXIuZnJvbShKU09OLnN0cmluZ2lmeShjbWQuX19hcmd1bWVudC5XSVJTb2NrZXREYXRhS2V5KSk7XG4gICAgICB9XG5cbiAgICAgIGxldCBtZXNzYWdlSGFuZGxlZCA9IHRydWU7XG4gICAgICBpZiAoIXdhaXRGb3JSZXNwb25zZSkge1xuICAgICAgICAvLyB0aGUgcHJvbWlzZSB3aWxsIGJlIHJlc29sdmVkIGFzIHNvb24gYXMgdGhlIHNvY2tldCBoYXMgYmVlbiBzZW50XG4gICAgICAgIG1lc3NhZ2VIYW5kbGVkID0gZmFsc2U7XG4gICAgICAgIC8vIGRvIG5vdCBsb2cgcmVjZWlwdHNcbiAgICAgICAgdGhpcy5tZXNzYWdlSGFuZGxlci5vbmNlKG1zZ0lkLnRvU3RyaW5nKCksIGZ1bmN0aW9uIChlcnIpIHtcbiAgICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICAvLyB3ZSBhcmUgbm90IHdhaXRpbmcgZm9yIHRoaXMsIGFuZCBpZiBpdCBlcnJvcnMgaXQgaXMgbW9zdCBsaWtlbHlcbiAgICAgICAgICAgIC8vIGEgcHJvdG9jb2wgY2hhbmdlLiBMb2cgYW5kIGNoZWNrIGR1cmluZyB0ZXN0aW5nXG4gICAgICAgICAgICBsb2cuZXJyb3IoYFJlY2VpdmVkIGVycm9yIGZyb20gc2VuZCB0aGF0IGlzIG5vdCBiZWluZyB3YWl0ZWQgZm9yIChpZDogJHttc2dJZH0pOiAnJHtfLnRydW5jYXRlKEpTT04uc3RyaW5naWZ5KGVyciksIERBVEFfTE9HX0xFTkdUSCl9J2ApO1xuICAgICAgICAgICAgLy8gcmVqZWN0LCB0aG91Z2ggaXQgaXMgdmVyeSByYXJlIHRoYXQgdGhpcyB3aWxsIGJlIHRyaWdnZXJlZCwgc2luY2VcbiAgICAgICAgICAgIC8vIHRoZSBwcm9taXNlIGlzIHJlc29sdmVkIGRpcmVjdGx0eSBhZnRlciBzZW5kLiBPbiB0aGUgb2ZmIGNoYW5jZSxcbiAgICAgICAgICAgIC8vIHRob3VnaCwgaXQgd2lsbCBhbGVydCBvZiBhIHByb3RvY29sIGNoYW5nZS5cbiAgICAgICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMubWVzc2FnZUhhbmRsZXIubGlzdGVuZXJzKGNtZC5fX3NlbGVjdG9yKS5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5tZXNzYWdlSGFuZGxlci5wcmVwZW5kT25jZUxpc3RlbmVyKGNtZC5fX3NlbGVjdG9yLCBmdW5jdGlvbiAoZXJyLCAuLi5hcmdzKSB7XG4gICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgcmV0dXJuIHJlamVjdChlcnIpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBsb2cuZGVidWcoYFJlY2VpdmVkIHJlc3BvbnNlIGZyb20gc2VuZCAoaWQ6ICR7bXNnSWR9KTogJyR7Xy50cnVuY2F0ZShKU09OLnN0cmluZ2lmeShhcmdzKSwgREFUQV9MT0dfTEVOR1RIKX0nYCk7XG4gICAgICAgICAgcmVzb2x2ZShhcmdzKTtcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2UgaWYgKGNtZD8uX19hcmd1bWVudD8uV0lSU29ja2V0RGF0YUtleSkge1xuICAgICAgICB0aGlzLm1lc3NhZ2VIYW5kbGVyLm9uY2UobXNnSWQudG9TdHJpbmcoKSwgZnVuY3Rpb24gKGVyciwgdmFsdWUpIHtcbiAgICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVqZWN0KG5ldyBFcnJvcihgUmVtb3RlIGRlYnVnZ2VyIGVycm9yIHdpdGggY29kZSAnJHtlcnIuY29kZX0nOiAke2Vyci5tZXNzYWdlfWApKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgbG9nLmRlYnVnKGBSZWNlaXZlZCBkYXRhIHJlc3BvbnNlIGZyb20gc2VuZCAoaWQ6ICR7bXNnSWR9KTogJyR7Xy50cnVuY2F0ZShKU09OLnN0cmluZ2lmeSh2YWx1ZSksIERBVEFfTE9HX0xFTkdUSCl9J2ApO1xuICAgICAgICAgIHJlc29sdmUodmFsdWUpO1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIG5vdGhpbmcgZWxzZSBpcyBoYW5kbGluZyB0aGluZ3MsIHNvIGp1c3QgcmVzb2x2ZSB3aGVuIHRoZSBtZXNzYWdlIGlzIHNlbnRcbiAgICAgICAgbWVzc2FnZUhhbmRsZWQgPSBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgbXNnID0gYFNlbmRpbmcgJyR7Y21kLl9fc2VsZWN0b3J9JyBtZXNzYWdlYCArXG4gICAgICAgIChmdWxsT3B0cy5hcHBJZEtleSA/IGAgdG8gYXBwICcke2Z1bGxPcHRzLmFwcElkS2V5fSdgIDogJycpICtcbiAgICAgICAgKGZ1bGxPcHRzLnBhZ2VJZEtleSA/IGAsIHBhZ2UgJyR7ZnVsbE9wdHMucGFnZUlkS2V5fSdgIDogJycpICtcbiAgICAgICAgKHRoaXMubmVlZHNUYXJnZXQgJiYgdGFyZ2V0SWQgPyBgLCB0YXJnZXQgJyR7dGFyZ2V0SWR9J2AgOiAnJykgK1xuICAgICAgICBgIChpZDogJHttc2dJZH0pOiAnJHtjb21tYW5kfSdgO1xuICAgICAgbG9nLmRlYnVnKG1zZyk7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLnNlbmRNZXNzYWdlKGNtZCk7XG4gICAgICAgIGlmICghbWVzc2FnZUhhbmRsZWQpIHtcbiAgICAgICAgICAvLyBUaGVyZSBhcmUgbm8gaGFuZGxlcnMgd2FpdGluZyBmb3IgYSByZXNwb25zZSBiZWZvcmUgcmVzb2x2aW5nLFxuICAgICAgICAgIC8vIGFuZCBubyBlcnJvcnMgc2VuZGluZyB0aGUgbWVzc2FnZSBvdmVyIHRoZSBzb2NrZXQsIHNvIHJlc29sdmVcbiAgICAgICAgICByZXNvbHZlKHJlcyk7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICByZXR1cm4gcmVqZWN0KGVycik7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBjb25uZWN0ICgpIHsgLy8gZXNsaW50LWRpc2FibGUtbGluZSByZXF1aXJlLWF3YWl0XG4gICAgdGhyb3cgbmV3IEVycm9yKGBTdWItY2xhc3NlcyBuZWVkIHRvIGltcGxlbWVudCBhICdjb25uZWN0JyBmdW5jdGlvbmApO1xuICB9XG5cbiAgYXN5bmMgZGlzY29ubmVjdCAoKSB7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgcmVxdWlyZS1hd2FpdFxuICAgIHRoaXMubWVzc2FnZUhhbmRsZXIucmVtb3ZlQWxsTGlzdGVuZXJzKCk7XG4gIH1cblxuICBhc3luYyBzZW5kTWVzc2FnZSAoLyogY29tbWFuZCAqLykgeyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIHJlcXVpcmUtYXdhaXRcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFN1Yi1jbGFzc2VzIG5lZWQgdG8gaW1wbGVtZW50IGEgJ3NlbmRNZXNzYWdlJyBmdW5jdGlvbmApO1xuICB9XG5cbiAgYXN5bmMgcmVjZWl2ZSAoLyogZGF0YSAqLykgeyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIHJlcXVpcmUtYXdhaXRcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFN1Yi1jbGFzc2VzIG5lZWQgdG8gaW1wbGVtZW50IGEgJ3JlY2VpdmUnIGZ1bmN0aW9uYCk7XG4gIH1cblxuICBhZGRUYXJnZXQgKGVyciwgYXBwLCB0YXJnZXRJbmZvKSB7XG4gICAgaWYgKF8uaXNOaWwodGFyZ2V0SW5mbz8udGFyZ2V0SWQpKSB7XG4gICAgICBsb2cud2FybihgUmVjZWl2ZWQgJ1RhcmdldC50YXJnZXRDcmVhdGVkJyBldmVudCBmb3IgYXBwICcke2FwcH0nIHdpdGggbm8gdGFyZ2V0LiBTa2lwcGluZ2ApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoXy5pc0VtcHR5KHRoaXMucGVuZGluZ1RhcmdldE5vdGlmaWNhdGlvbikgJiYgIXRhcmdldEluZm8uaXNQcm92aXNpb25hbCkge1xuICAgICAgbG9nLndhcm4oYFJlY2VpdmVkICdUYXJnZXQudGFyZ2V0Q3JlYXRlZCcgZXZlbnQgZm9yIGFwcCAnJHthcHB9JyB3aXRoIG5vIHBlbmRpbmcgcmVxdWVzdDogJHtKU09OLnN0cmluZ2lmeSh0YXJnZXRJbmZvKX1gKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGFyZ2V0SW5mby5pc1Byb3Zpc2lvbmFsKSB7XG4gICAgICBsb2cuZGVidWcoYFByb3Zpc2lvbmFsIHRhcmdldCBjcmVhdGVkIGZvciBhcHAgJyR7YXBwfScsICcke3RhcmdldEluZm8udGFyZ2V0SWR9Jy4gSWdub3JpbmcgdW50aWwgdGFyZ2V0IHVwZGF0ZSBldmVudGApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IFthcHBJZEtleSwgcGFnZUlkS2V5XSA9IHRoaXMucGVuZGluZ1RhcmdldE5vdGlmaWNhdGlvbjtcblxuICAgIGxvZy5kZWJ1ZyhgVGFyZ2V0IGNyZWF0ZWQgZm9yIGFwcCAnJHthcHBJZEtleX0nIGFuZCBwYWdlICcke3BhZ2VJZEtleX0nOiAke0pTT04uc3RyaW5naWZ5KHRhcmdldEluZm8pfWApO1xuICAgIGlmIChfLmhhcyh0aGlzLnRhcmdldHNbYXBwSWRLZXldLCBwYWdlSWRLZXkpKSB7XG4gICAgICBsb2cuZGVidWcoYFRoZXJlIGlzIGFscmVhZHkgYSB0YXJnZXQgZm9yIHRoaXMgYXBwIGFuZCBwYWdlICgnJHt0aGlzLnRhcmdldHNbYXBwSWRLZXldW3BhZ2VJZEtleV19JykuIFRoaXMgbWlnaHQgY2F1c2UgcHJvYmxlbXNgKTtcbiAgICB9XG4gICAgdGhpcy50YXJnZXRzW2FwcF0gPSB0aGlzLnRhcmdldHNbYXBwXSB8fCB7fTtcbiAgICB0aGlzLnRhcmdldHNbYXBwSWRLZXldW3BhZ2VJZEtleV0gPSB0YXJnZXRJbmZvLnRhcmdldElkO1xuICB9XG5cbiAgdXBkYXRlVGFyZ2V0IChlcnIsIGFwcCwgb2xkVGFyZ2V0SWQsIG5ld1RhcmdldElkKSB7XG4gICAgbG9nLmRlYnVnKGBUYXJnZXQgdXBkYXRlZCBmb3IgYXBwICcke2FwcH0nLiBPbGQgdGFyZ2V0OiAnJHtvbGRUYXJnZXRJZH0nLCBuZXcgdGFyZ2V0OiAnJHtuZXdUYXJnZXRJZH0nYCk7XG4gICAgaWYgKCF0aGlzLnRhcmdldHNbYXBwXSkge1xuICAgICAgbG9nLndhcm4oYE5vIGV4aXN0aW5nIHRhcmdldCBmb3IgYXBwICcke2FwcH0nLiBOb3Qgc3VyZSB3aGF0IHRvIGRvYCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIC8vIHNhdmUgdGhpcywgdG8gYmUgdXNlZCBpZi93aGVuIHRoZSBleGlzdGluZyB0YXJnZXQgaXMgZGVzdHJveWVkXG4gICAgdGhpcy50YXJnZXRzW2FwcF0ucHJvdmlzaW9uYWwgPSB7XG4gICAgICBvbGRUYXJnZXRJZCxcbiAgICAgIG5ld1RhcmdldElkLFxuICAgIH07XG4gIH1cblxuICByZW1vdmVUYXJnZXQgKGVyciwgYXBwLCB0YXJnZXRJbmZvKSB7XG4gICAgaWYgKF8uaXNOaWwodGFyZ2V0SW5mbz8udGFyZ2V0SWQpKSB7XG4gICAgICBsb2cuZGVidWcoYFJlY2VpdmVkICdUYXJnZXQudGFyZ2V0RGVzdHJveWVkJyBldmVudCB3aXRoIG5vIHRhcmdldC4gU2tpcHBpbmdgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsb2cuZGVidWcoYFRhcmdldCBkZXN0cm95ZWQgZm9yIGFwcCAnJHthcHB9JzogJHt0YXJnZXRJbmZvLnRhcmdldElkfWApO1xuXG4gICAgLy8gZ28gdGhyb3VnaCB0aGUgdGFyZ2V0cyBhbmQgZmluZCB0aGUgb25lIHRoYXQgaGFzIGEgd2FpdGluZyBwcm92aXNpb25hbCB0YXJnZXRcbiAgICBpZiAodGhpcy50YXJnZXRzW2FwcF0/LnByb3Zpc2lvbmFsPy5vbGRUYXJnZXRJZCA9PT0gdGFyZ2V0SW5mby50YXJnZXRJZCkge1xuICAgICAgY29uc3Qge29sZFRhcmdldElkLCBuZXdUYXJnZXRJZH0gPSB0aGlzLnRhcmdldHNbYXBwXS5wcm92aXNpb25hbDtcbiAgICAgIGRlbGV0ZSB0aGlzLnRhcmdldHNbYXBwXS5wcm92aXNpb25hbDtcblxuICAgICAgLy8gd2UgZG8gbm90IGtub3cgdGhlIHBhZ2UsIHNvIGdvIHRocm91Z2ggYW5kIGZpbmQgdGhlIGV4aXN0aW5nIHRhcmdldFxuICAgICAgY29uc3QgdGFyZ2V0cyA9IHRoaXMudGFyZ2V0c1thcHBdO1xuICAgICAgZm9yIChjb25zdCBbcGFnZSwgdGFyZ2V0SWRdIG9mIF8udG9QYWlycyh0YXJnZXRzKSkge1xuICAgICAgICBpZiAodGFyZ2V0SWQgPT09IG9sZFRhcmdldElkKSB7XG4gICAgICAgICAgbG9nLmRlYnVnKGBGb3VuZCBwcm92aXNpb25hbCB0YXJnZXQgZm9yIGFwcCAnJHthcHB9Jy4gT2xkIHRhcmdldDogJyR7b2xkVGFyZ2V0SWR9JywgbmV3IHRhcmdldDogJyR7bmV3VGFyZ2V0SWR9Jy4gVXBkYXRpbmdgKTtcbiAgICAgICAgICB0YXJnZXRzW3BhZ2VdID0gbmV3VGFyZ2V0SWQ7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBsb2cud2FybihgUHJvdmlzaW9uYWwgdGFyZ2V0IGZvciBhcHAgJyR7YXBwfScgZm91bmQsIGJ1dCBubyBzdWl0YWJsZSBleGlzdGluZyB0YXJnZXQgZm91bmQuIFRoaXMgbWF5IGNhdXNlIHByb2JsZW1zYCk7XG4gICAgICBsb2cud2FybihgT2xkIHRhcmdldDogJyR7b2xkVGFyZ2V0SWR9JywgbmV3IHRhcmdldDogJyR7bmV3VGFyZ2V0SWR9Jy4gRXhpc3RpbmcgdGFyZ2V0czogJHtKU09OLnN0cmluZ2lmeSh0YXJnZXRzKX1gKTtcbiAgICB9XG5cbiAgICAvLyBpZiB0aGVyZSBpcyBubyB3YWl0aW5nIHByb3Zpc2lvbmFsIHRhcmdldCwganVzdCBnZXQgcmlkIG9mIHRoZSBleGlzdGluZyBvbmVcbiAgICBjb25zdCB0YXJnZXRzID0gdGhpcy50YXJnZXRzW2FwcF07XG4gICAgZm9yIChjb25zdCBbcGFnZSwgdGFyZ2V0SWRdIG9mIF8udG9QYWlycyh0YXJnZXRzKSkge1xuICAgICAgaWYgKHRhcmdldElkID09PSB0YXJnZXRJbmZvLnRhcmdldElkKSB7XG4gICAgICAgIGRlbGV0ZSB0YXJnZXRzW3BhZ2VdO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuICAgIGxvZy5kZWJ1ZyhgVGFyZ2V0ICcke3RhcmdldEluZm8udGFyZ2V0SWR9JyBkZWxldGVkIGZvciBhcHAgJyR7YXBwfScsIGJ1dCBubyBzdWNoIHRhcmdldCBleGlzdHNgKTtcbiAgfVxuXG4gIGdldFRhcmdldCAoYXBwSWRLZXksIHBhZ2VJZEtleSkge1xuICAgIHJldHVybiAodGhpcy50YXJnZXRzW2FwcElkS2V5XSB8fCB7fSlbcGFnZUlkS2V5XTtcbiAgfVxuXG4gIGFzeW5jIHNlbGVjdFBhZ2UgKGFwcElkS2V5LCBwYWdlSWRLZXkpIHtcbiAgICB0aGlzLnBlbmRpbmdUYXJnZXROb3RpZmljYXRpb24gPSBbYXBwSWRLZXksIHBhZ2VJZEtleV07XG4gICAgdGhpcy5zaG91bGRDaGVja0ZvclRhcmdldCA9IGZhbHNlO1xuXG4gICAgLy8gZ28gdGhyb3VnaCB0aGUgc3RlcHMgdGhhdCB0aGUgRGVza3RvcCBTYWZhcmkgc3lzdGVtXG4gICAgLy8gZ29lcyB0aHJvdWdoIHRvIGluaXRpYWxpemUgdGhlIFdlYiBJbnNwZWN0b3Igc2Vzc2lvblxuXG4gICAgY29uc3Qgc2VuZE9wdHMgPSB7XG4gICAgICBhcHBJZEtleSxcbiAgICAgIHBhZ2VJZEtleSxcbiAgICB9O1xuXG4gICAgLy8gaGlnaGxpZ2h0IGFuZCB0aGVuIHVuLWhpZ2hsaWdodCB0aGUgd2Vidmlld1xuICAgIGZvciAoY29uc3QgZW5hYmxlZCBvZiBbdHJ1ZSwgZmFsc2VdKSB7XG4gICAgICBhd2FpdCB0aGlzLnNlbmQoJ2luZGljYXRlV2ViVmlldycsIE9iamVjdC5hc3NpZ24oe1xuICAgICAgICBlbmFibGVkLFxuICAgICAgfSwgc2VuZE9wdHMpLCBmYWxzZSk7XG4gICAgfVxuXG4gICAgYXdhaXQgdGhpcy5zZW5kKCdzZXRTZW5kZXJLZXknLCBzZW5kT3B0cyk7XG4gICAgbG9nLmRlYnVnKCdTZW5kZXIga2V5IHNldCcpO1xuXG4gICAgaWYgKHRoaXMuaXNUYXJnZXRCYXNlZCAmJiB1dGlsLmNvbXBhcmVWZXJzaW9ucyh0aGlzLnBsYXRmb3JtVmVyc2lvbiwgJzwnLCBNSU5fUExBVEZPUk1fTk9fVEFSR0VUX0VYSVNUUykpIHtcbiAgICAgIGF3YWl0IHRoaXMuc2VuZCgnVGFyZ2V0LmV4aXN0cycsIHNlbmRPcHRzLCBmYWxzZSk7XG4gICAgfVxuXG4gICAgdGhpcy5zaG91bGRDaGVja0ZvclRhcmdldCA9IHRydWU7XG5cbiAgICBpZiAodGhpcy5mdWxsUGFnZUluaXRpYWxpemF0aW9uKSB7XG4gICAgICBhd2FpdCB0aGlzLmluaXRpYWxpemVQYWdlRnVsbChhcHBJZEtleSwgcGFnZUlkS2V5KTtcbiAgICB9IGVsc2Uge1xuICAgICAgYXdhaXQgdGhpcy5pbml0aWFsaXplUGFnZShhcHBJZEtleSwgcGFnZUlkS2V5KTtcbiAgICB9XG4gIH1cblxuICAvKlxuICAgKiBQZXJmb3JtIHRoZSBtaW5pbWFsIGluaXRpYWxpemF0aW9uIHRvIGdldCB0aGUgV2ViIEluc3BlY3RvciB3b3JraW5nXG4gICAqL1xuICBhc3luYyBpbml0aWFsaXplUGFnZSAoYXBwSWRLZXksIHBhZ2VJZEtleSkge1xuICAgIGNvbnN0IHNlbmRPcHRzID0ge1xuICAgICAgYXBwSWRLZXksXG4gICAgICBwYWdlSWRLZXksXG4gICAgfTtcblxuICAgIGF3YWl0IHRoaXMuc2VuZCgnSW5zcGVjdG9yLmVuYWJsZScsIHNlbmRPcHRzLCBmYWxzZSk7XG4gICAgYXdhaXQgdGhpcy5zZW5kKCdQYWdlLmVuYWJsZScsIHNlbmRPcHRzLCBmYWxzZSk7XG5cbiAgICAvLyBnbyB0aHJvdWdoIHRoZSB0YXNrcyB0byBpbml0aWFsaXplXG4gICAgYXdhaXQgdGhpcy5zZW5kKCdOZXR3b3JrLmVuYWJsZScsIHNlbmRPcHRzLCBmYWxzZSk7XG4gICAgYXdhaXQgdGhpcy5zZW5kKCdSdW50aW1lLmVuYWJsZScsIHNlbmRPcHRzLCBmYWxzZSk7XG4gICAgYXdhaXQgdGhpcy5zZW5kKCdIZWFwLmVuYWJsZScsIHNlbmRPcHRzLCBmYWxzZSk7XG4gICAgYXdhaXQgdGhpcy5zZW5kKCdEZWJ1Z2dlci5lbmFibGUnLCBzZW5kT3B0cywgZmFsc2UpO1xuICAgIGF3YWl0IHRoaXMuc2VuZCgnQ29uc29sZS5lbmFibGUnLCBzZW5kT3B0cywgZmFsc2UpO1xuICAgIGF3YWl0IHRoaXMuc2VuZCgnSW5zcGVjdG9yLmluaXRpYWxpemVkJywgc2VuZE9wdHMsIGZhbHNlKTtcbiAgfVxuXG4gIC8qXG4gICAqIE1pbWljIGV2ZXJ5IHN0ZXAgdGhhdCBEZXNrdG9wIFNhZmFyaSBEZXZlbG9wIHRvb2xzIHVzZXMgdG8gaW5pdGlhbGl6ZSBhXG4gICAqIFdlYiBJbnNwZWN0b3Igc2Vzc2lvblxuICAgKi9cbiAgYXN5bmMgaW5pdGlhbGl6ZVBhZ2VGdWxsIChhcHBJZEtleSwgcGFnZUlkS2V5KSB7XG4gICAgY29uc3Qgc2VuZE9wdHMgPSB7XG4gICAgICBhcHBJZEtleSxcbiAgICAgIHBhZ2VJZEtleSxcbiAgICB9O1xuXG4gICAgYXdhaXQgdGhpcy5zZW5kKCdJbnNwZWN0b3IuZW5hYmxlJywgc2VuZE9wdHMsIGZhbHNlKTtcbiAgICBhd2FpdCB0aGlzLnNlbmQoJ1BhZ2UuZW5hYmxlJywgc2VuZE9wdHMsIGZhbHNlKTtcblxuICAgIC8vIGdvIHRocm91Z2ggdGhlIHRhc2tzIHRvIGluaXRpYWxpemVcbiAgICBhd2FpdCB0aGlzLnNlbmQoJ1BhZ2UuZ2V0UmVzb3VyY2VUcmVlJywgc2VuZE9wdHMsIGZhbHNlKTtcbiAgICBhd2FpdCB0aGlzLnNlbmQoJ05ldHdvcmsuZW5hYmxlJywgc2VuZE9wdHMsIGZhbHNlKTtcbiAgICBhd2FpdCB0aGlzLnNlbmQoJ05ldHdvcmsuc2V0UmVzb3VyY2VDYWNoaW5nRGlzYWJsZWQnLCBPYmplY3QuYXNzaWduKHtcbiAgICAgIGRpc2FibGVkOiBmYWxzZSxcbiAgICB9LCBzZW5kT3B0cyksIGZhbHNlKTtcbiAgICBhd2FpdCB0aGlzLnNlbmQoJ0RPTVN0b3JhZ2UuZW5hYmxlJywgc2VuZE9wdHMsIGZhbHNlKTtcbiAgICBhd2FpdCB0aGlzLnNlbmQoJ0RhdGFiYXNlLmVuYWJsZScsIHNlbmRPcHRzLCBmYWxzZSk7XG4gICAgYXdhaXQgdGhpcy5zZW5kKCdJbmRleGVkREIuZW5hYmxlJywgc2VuZE9wdHMsIGZhbHNlKTtcbiAgICBhd2FpdCB0aGlzLnNlbmQoJ0NTUy5lbmFibGUnLCBzZW5kT3B0cywgZmFsc2UpO1xuICAgIGF3YWl0IHRoaXMuc2VuZCgnUnVudGltZS5lbmFibGUnLCBzZW5kT3B0cywgZmFsc2UpO1xuICAgIGF3YWl0IHRoaXMuc2VuZCgnSGVhcC5lbmFibGUnLCBzZW5kT3B0cywgZmFsc2UpO1xuICAgIGF3YWl0IHRoaXMuc2VuZCgnTWVtb3J5LmVuYWJsZScsIHNlbmRPcHRzLCBmYWxzZSk7XG4gICAgYXdhaXQgdGhpcy5zZW5kKCdBcHBsaWNhdGlvbkNhY2hlLmVuYWJsZScsIHNlbmRPcHRzLCBmYWxzZSk7XG4gICAgYXdhaXQgdGhpcy5zZW5kKCdBcHBsaWNhdGlvbkNhY2hlLmdldEZyYW1lc1dpdGhNYW5pZmVzdHMnLCBzZW5kT3B0cywgZmFsc2UpO1xuICAgIGF3YWl0IHRoaXMuc2VuZCgnVGltZWxpbmUuc2V0SW5zdHJ1bWVudHMnLCBPYmplY3QuYXNzaWduKHtcbiAgICAgIGluc3RydW1lbnRzOiBbJ1RpbWVsaW5lJywgJ1NjcmlwdFByb2ZpbGVyJywgJ0NQVSddLFxuICAgIH0sIHNlbmRPcHRzKSwgZmFsc2UpO1xuICAgIGF3YWl0IHRoaXMuc2VuZCgnVGltZWxpbmUuc2V0QXV0b0NhcHR1cmVFbmFibGVkJywgT2JqZWN0LmFzc2lnbih7XG4gICAgICBlbmFibGVkOiBmYWxzZSxcbiAgICB9LCBzZW5kT3B0cyksIGZhbHNlKTtcbiAgICBhd2FpdCB0aGlzLnNlbmQoJ0RlYnVnZ2VyLmVuYWJsZScsIHNlbmRPcHRzLCBmYWxzZSk7XG4gICAgYXdhaXQgdGhpcy5zZW5kKCdEZWJ1Z2dlci5zZXRCcmVha3BvaW50c0FjdGl2ZScsIE9iamVjdC5hc3NpZ24oe1xuICAgICAgYWN0aXZlOiB0cnVlLFxuICAgIH0sIHNlbmRPcHRzKSwgZmFsc2UpO1xuICAgIGF3YWl0IHRoaXMuc2VuZCgnRGVidWdnZXIuc2V0UGF1c2VPbkV4Y2VwdGlvbnMnLCBPYmplY3QuYXNzaWduKHtcbiAgICAgIHN0YXRlOiAnbm9uZScsXG4gICAgfSwgc2VuZE9wdHMpLCBmYWxzZSk7XG4gICAgYXdhaXQgdGhpcy5zZW5kKCdEZWJ1Z2dlci5zZXRQYXVzZU9uQXNzZXJ0aW9ucycsIE9iamVjdC5hc3NpZ24oe1xuICAgICAgZW5hYmxlZDogZmFsc2UsXG4gICAgfSwgc2VuZE9wdHMpLCBmYWxzZSk7XG4gICAgYXdhaXQgdGhpcy5zZW5kKCdEZWJ1Z2dlci5zZXRBc3luY1N0YWNrVHJhY2VEZXB0aCcsIE9iamVjdC5hc3NpZ24oe1xuICAgICAgZGVwdGg6IDIwMCxcbiAgICB9LCBzZW5kT3B0cyksIGZhbHNlKTtcbiAgICBhd2FpdCB0aGlzLnNlbmQoJ0RlYnVnZ2VyLnNldFBhdXNlRm9ySW50ZXJuYWxTY3JpcHRzJywgT2JqZWN0LmFzc2lnbih7XG4gICAgICBzaG91bGRQYXVzZTogZmFsc2UsXG4gICAgfSwgc2VuZE9wdHMpLCBmYWxzZSk7XG5cbiAgICBhd2FpdCB0aGlzLnNlbmQoJ0xheWVyVHJlZS5lbmFibGUnLCBzZW5kT3B0cywgZmFsc2UpO1xuICAgIGF3YWl0IHRoaXMuc2VuZCgnV29ya2VyLmVuYWJsZScsIHNlbmRPcHRzLCBmYWxzZSk7XG4gICAgYXdhaXQgdGhpcy5zZW5kKCdDYW52YXMuZW5hYmxlJywgc2VuZE9wdHMsIGZhbHNlKTtcbiAgICBhd2FpdCB0aGlzLnNlbmQoJ0NvbnNvbGUuZW5hYmxlJywgc2VuZE9wdHMsIGZhbHNlKTtcbiAgICBhd2FpdCB0aGlzLnNlbmQoJ0RPTS5nZXREb2N1bWVudCcsIHNlbmRPcHRzLCBmYWxzZSk7XG4gICAgY29uc3QgbG9nZ2luZ0NoYW5uZWxzID0gYXdhaXQgdGhpcy5zZW5kKCdDb25zb2xlLmdldExvZ2dpbmdDaGFubmVscycsIHNlbmRPcHRzKTtcbiAgICBmb3IgKGNvbnN0IHNvdXJjZSBvZiAobG9nZ2luZ0NoYW5uZWxzLmNoYW5uZWxzIHx8IFtdKS5tYXAoKGVudHJ5KSA9PiBlbnRyeS5zb3VyY2UpKSB7XG4gICAgICBhd2FpdCB0aGlzLnNlbmQoJ0NvbnNvbGUuc2V0TG9nZ2luZ0NoYW5uZWxMZXZlbCcsIE9iamVjdC5hc3NpZ24oe1xuICAgICAgICBzb3VyY2UsXG4gICAgICAgIGxldmVsOiAndmVyYm9zZScsXG4gICAgICB9LCBzZW5kT3B0cyksIGZhbHNlKTtcbiAgICB9XG5cbiAgICBhd2FpdCB0aGlzLnNlbmQoJ0luc3BlY3Rvci5pbml0aWFsaXplZCcsIHNlbmRPcHRzLCBmYWxzZSk7XG4gIH1cblxuICBhc3luYyBzZWxlY3RBcHAgKGFwcElkS2V5KSB7XG4gICAgcmV0dXJuIGF3YWl0IG5ldyBCKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIC8vIGxvY2FsIGNhbGxiYWNrLCB0ZW1wb3JhcmlseSBhZGRlZCBhcyBjYWxsYmFjayB0b1xuICAgICAgLy8gYF9ycGNfYXBwbGljYXRpb25Db25uZWN0ZWQ6YCByZW1vdGUgZGVidWdnZXIgcmVzcG9uc2VcbiAgICAgIC8vIHRvIGhhbmRsZSB0aGUgaW5pdGlhbCBjb25uZWN0aW9uXG4gICAgICBjb25zdCBvbkFwcENoYW5nZSA9IChlcnIsIGRpY3QpID0+IHtcbiAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgIHJldHVybiByZWplY3QoZXJyKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBmcm9tIHRoZSBkaWN0aW9uYXJ5IHJldHVybmVkLCBnZXQgdGhlIGlkc1xuICAgICAgICBjb25zdCBvbGRBcHBJZEtleSA9IGRpY3QuV0lSSG9zdEFwcGxpY2F0aW9uSWRlbnRpZmllcktleTtcbiAgICAgICAgY29uc3QgY29ycmVjdEFwcElkS2V5ID0gZGljdC5XSVJBcHBsaWNhdGlvbklkZW50aWZpZXJLZXk7XG5cbiAgICAgICAgLy8gaWYgdGhpcyBpcyBhIHJlcG9ydCBvZiBhIHByb3h5IHJlZGlyZWN0IGZyb20gdGhlIHJlbW90ZSBkZWJ1Z2dlclxuICAgICAgICAvLyB3ZSB3YW50IHRvIHVwZGF0ZSBvdXIgZGljdGlvbmFyeSBhbmQgZ2V0IGEgbmV3IGFwcCBpZFxuICAgICAgICBpZiAob2xkQXBwSWRLZXkgJiYgY29ycmVjdEFwcElkS2V5ICE9PSBvbGRBcHBJZEtleSkge1xuICAgICAgICAgIGxvZy5kZWJ1ZyhgV2Ugd2VyZSBub3RpZmllZCB3ZSBtaWdodCBoYXZlIGNvbm5lY3RlZCB0byB0aGUgd3JvbmcgYXBwLiBgICtcbiAgICAgICAgICAgICAgICAgICAgYFVzaW5nIGlkICR7Y29ycmVjdEFwcElkS2V5fSBpbnN0ZWFkIG9mICR7b2xkQXBwSWRLZXl9YCk7XG4gICAgICAgIH1cblxuICAgICAgICByZWplY3QobmV3IEVycm9yKCdOZXcgYXBwbGljYXRpb24gaGFzIGNvbm5lY3RlZCcpKTtcbiAgICAgIH07XG4gICAgICB0aGlzLm1lc3NhZ2VIYW5kbGVyLnByZXBlbmRPbmNlTGlzdGVuZXIoJ19ycGNfYXBwbGljYXRpb25Db25uZWN0ZWQ6Jywgb25BcHBDaGFuZ2UpO1xuXG4gICAgICAvLyBkbyB0aGUgYWN0dWFsIGNvbm5lY3RpbmcgdG8gdGhlIGFwcFxuICAgICAgcmV0dXJuIChhc3luYyAoKSA9PiB7XG4gICAgICAgIGxldCBwYWdlRGljdCwgY29ubmVjdGVkQXBwSWRLZXk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgKFtjb25uZWN0ZWRBcHBJZEtleSwgcGFnZURpY3RdID0gYXdhaXQgdGhpcy5zZW5kKCdjb25uZWN0VG9BcHAnLCB7XG4gICAgICAgICAgICBhcHBJZEtleVxuICAgICAgICAgIH0pKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgbG9nLndhcm4oYFVuYWJsZSB0byBjb25uZWN0IHRvIGFwcDogJHtlcnIubWVzc2FnZX1gKTtcbiAgICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHNvbWV0aW1lcyB0aGUgY29ubmVjdCBsb2dpYyBoYXBwZW5zLCBidXQgd2l0aCBhbiBlbXB0eSBkaWN0aW9uYXJ5XG4gICAgICAgIC8vIHdoaWNoIGxlYWRzIHRvIHRoZSByZW1vdGUgZGVidWdnZXIgZ2V0dGluZyBkaXNjb25uZWN0ZWQsIGFuZCBpbnRvIGEgbG9vcFxuICAgICAgICBpZiAoXy5pc0VtcHR5KHBhZ2VEaWN0KSkge1xuICAgICAgICAgIGxldCBtc2cgPSAnRW1wdHkgcGFnZSBkaWN0aW9uYXJ5IHJlY2VpdmVkJztcbiAgICAgICAgICBsb2cuZGVidWcobXNnKTtcbiAgICAgICAgICByZWplY3QobmV3IEVycm9yKG1zZykpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlc29sdmUoW2Nvbm5lY3RlZEFwcElkS2V5LCBwYWdlRGljdF0pO1xuICAgICAgICB9XG4gICAgICB9KSgpO1xuICAgIH0pO1xuICB9XG5cbiAgb25FeGVjdXRpb25Db250ZXh0Q3JlYXRlZCAoZXJyLCBjb250ZXh0KSB7XG4gICAgLy8geyBpZDogMiwgaXNQYWdlQ29udGV4dDogdHJ1ZSwgbmFtZTogJycsIGZyYW1lSWQ6ICcwLjEnIH1cbiAgICAvLyByaWdodCBub3cgd2UgaGF2ZSBubyB3YXkgdG8gbWFwIGNvbnRleHRzIHRvIGFwcHMvcGFnZXNcbiAgICAvLyBzbyBqdXN0IHN0b3JlXG4gICAgdGhpcy5jb250ZXh0cy5wdXNoKGNvbnRleHQuaWQpO1xuICB9XG5cbiAgb25HYXJiYWdlQ29sbGVjdGVkICgpIHtcbiAgICAvLyBqdXN0IHdhbnQgdG8gbG9nIHRoYXQgdGhpcyBpcyBoYXBwZW5pbmcsIGFzIGl0IGNhbiBhZmZlY3Qgb3BlcnRpb25cbiAgICBsb2cuZGVidWcoYFdlYiBJbnNwZWN0b3IgZ2FyYmFnZSBjb2xsZWN0ZWRgKTtcbiAgfVxuXG4gIG9uU2NyaXB0UGFyc2VkIChlcnIsIHNjcmlwdEluZm8pIHtcbiAgICAvLyB7IHNjcmlwdElkOiAnMTMnLCB1cmw6ICcnLCBzdGFydExpbmU6IDAsIHN0YXJ0Q29sdW1uOiAwLCBlbmRMaW5lOiA4MiwgZW5kQ29sdW1uOiAzIH1cbiAgICBsb2cuZGVidWcoYFNjcmlwdCBwYXJzZWQ6ICR7SlNPTi5zdHJpbmdpZnkoc2NyaXB0SW5mbyl9YCk7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFHQSxNQUFNQSxlQUFlLEdBQUc7RUFBQ0MsTUFBTSxFQUFFO0FBQVQsQ0FBeEI7QUFFQSxNQUFNQyx1QkFBdUIsR0FBRyxLQUFoQztBQUNBLE1BQU1DLHdCQUF3QixHQUFHLElBQWpDO0FBRUEsTUFBTUMsNkJBQTZCLEdBQUcsTUFBdEM7QUFHQSxNQUFNQyw2QkFBNkIsR0FBRyxNQUF0Qzs7QUFFQSxTQUFTQyxhQUFULENBQXdCQyxRQUF4QixFQUFrQ0MsZUFBbEMsRUFBbUQ7RUFJakQsTUFBTUMsYUFBYSxHQUFHQyxhQUFBLENBQUtDLGVBQUwsQ0FBcUJILGVBQXJCLEVBQXNDLElBQXRDLEVBQTRDSiw2QkFBNUMsQ0FBdEI7O0VBQ0FRLGVBQUEsQ0FBSUMsS0FBSixDQUFXLDhDQUE2Q04sUUFBUSxHQUFHLEVBQUgsR0FBUSxNQUFPLCtCQUE4QkMsZUFBZ0IsSUFBN0g7O0VBQ0FJLGVBQUEsQ0FBSUMsS0FBSixDQUFXLDBDQUF5Q1QsNkJBQThCLE1BQUtLLGFBQWMsRUFBckc7O0VBQ0EsT0FBT0EsYUFBUDtBQUNEOztBQUVjLE1BQU1LLFNBQU4sQ0FBZ0I7RUFDN0JDLFdBQVcsQ0FBRUMsSUFBSSxHQUFHLEVBQVQsRUFBYTtJQUN0QixLQUFLQyxRQUFMLEdBQWdCLEVBQWhCO0lBQ0EsS0FBS0MscUJBQUwsR0FBNkIsQ0FBQyxDQUFDRixJQUFJLENBQUNHLG9CQUFwQztJQUVBLE1BQU07TUFDSkMsUUFESTtNQUVKWixlQUFlLEdBQUcsRUFGZDtNQUdKRCxRQUFRLEdBQUcsSUFIUDtNQUlKYyxtQkFBbUIsR0FBRyxLQUpsQjtNQUtKQywwQkFBMEIsR0FBRyxLQUx6QjtN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
|