nsc-react-component 2.8.43 → 2.8.45

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.
@@ -83,7 +83,9 @@ var NscImage = /*#__PURE__*/function (_React$PureComponent) {
83
83
  case 0:
84
84
  fileId = this.props.fileId;
85
85
  _context.next = 3;
86
- return download(fileId, false);
86
+ return download(fileId, false, {
87
+ showErrMsg: false
88
+ });
87
89
 
88
90
  case 3:
89
91
  img = _context.sent;
@@ -257,4 +259,4 @@ var NscImage = /*#__PURE__*/function (_React$PureComponent) {
257
259
  }(React.PureComponent);
258
260
 
259
261
  export { NscImage as default };
260
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2Jhc2UvaW1hZ2UvaW5kZXgudHN4Il0sIm5hbWVzIjpbIlJlYWN0IiwiZmlsZSIsInN0eWxlcyIsImdldExlc3MiLCJFeWVPdXRsaW5lZCIsIkRvd25sb2FkT3V0bGluZWQiLCJEZWxldGVPdXRsaW5lZCIsIlNwaW4iLCJkb3dubG9hZCIsInByZXZpZXdEb2N1bWVudCIsIk5zY0ltYWdlIiwicHJvcHMiLCJzdGF0ZSIsImltZ0RhdGEiLCJkZWZhdWx0SW1nIiwidmlzaWJsZSIsIm1hc2siLCJsb2FkaW5nIiwiZmlsZUlkIiwiaW1nIiwiZGF0YSIsImJsb2JUb0Jhc2U2NCIsInRoZW4iLCJyZXMiLCJzZXRTdGF0ZSIsImJsb2IiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsImZpbGVSZWFkZXIiLCJGaWxlUmVhZGVyIiwib25sb2FkIiwiZSIsInRhcmdldCIsInJlc3VsdCIsInJlYWRBc0RhdGFVUkwiLCJvbmVycm9yIiwiRXJyb3IiLCJwcmV2UHJvcHMiLCJnZXRJbWdEYXRhIiwic3JjIiwiY2xpY2tQcmV2aWV3Iiwic2hvd0Rvd25sb2FkSWNvbiIsInByZXZpZXciLCJzaG93RGVsZXRlSWNvbiIsIm9uRGVsZXRlIiwib25QcmV2aWV3Iiwib25Eb3dubG9hZCIsInBhcmFtcyIsIndpZHRoIiwiaGVpZ2h0IiwiZGlzcGxheSIsIm9uVmlzaWJsZUNoYW5nZSIsInZhbHVlIiwiUHVyZUNvbXBvbmVudCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEtBQUtBLEtBQVosTUFBdUIsT0FBdkI7QUFFQSxPQUFPQyxJQUFQLE1BQWlCLFVBQWpCO0FBQ0EsT0FBT0MsTUFBUCxNQUFtQixjQUFuQjtBQUNBLFNBQVNDLE9BQVQsUUFBd0IsYUFBeEI7QUFDQSxTQUNFQyxXQURGLEVBRUVDLGdCQUZGLEVBSUVDLGNBSkYsUUFLTyxtQkFMUDtBQU9BLE9BQU9D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QUFPLEVBQUUsTUFBWDtBQUFtQkQsVUFBQUEsTUFBTSxFQUFFO0FBQTNCO0FBQVosc0JBQ0U7QUFDRSxRQUFBLEdBQUcsRUFBRSxLQUFLdkMsS0FBTCxDQUFXNkIsR0FBWCxJQUFrQixLQUFLNUIsS0FBTCxDQUFXQyxPQURwQztBQUVFLFFBQUEsS0FBSyxFQUFFO0FBQUVzQyxVQUFBQSxPQUFPLEVBQUU7QUFBWCxTQUZUO0FBR0UsUUFBQSxPQUFPLEVBQUU7QUFDUHBDLFVBQUFBLE9BQU8sRUFBRSxLQUFLSCxLQUFMLENBQVdHLE9BRGI7QUFFUHlCLFVBQUFBLEdBQUcsRUFBRSxLQUFLN0IsS0FBTCxDQUFXNkIsR0FBWCxJQUFrQixLQUFLNUIsS0FBTCxDQUFXQyxPQUYzQjtBQUdQdUMsVUFBQUEsZUFBZSxFQUFFLHlCQUFDQyxLQUFELEVBQVc7QUFDMUIsWUFBQSxNQUFJLENBQUM3QixRQUFMLENBQWM7QUFDWlQsY0FBQUEsT0FBTyxFQUFFc0M7QUFERyxhQUFkO0FBR0Q7QUFQTTtBQUhYLFNBWU1MLE1BWk4sRUFERixDQXRFRixDQURGO0FBeUZEOzs7O0VBckttQ2hELEtBQUssQ0FBQ3NELGE7O1NBQXZCNUMsUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyBJbWFnZSwgSW1hZ2VQcm9wcyB9IGZyb20gXCJhbnRkXCI7XHJcbmltcG9ydCBmaWxlIGZyb20gXCJuc2MtZmlsZVwiO1xyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL2luZGV4Lmxlc3NcIjtcclxuaW1wb3J0IHsgZ2V0TGVzcyB9IGZyb20gXCIuLi8uLi91dGlsc1wiO1xyXG5pbXBvcnQge1xyXG4gIEV5ZU91dGxpbmVkLFxyXG4gIERvd25sb2FkT3V0bGluZWQsXHJcbiAgVXBsb2FkT3V0bGluZWQsXHJcbiAgRGVsZXRlT3V0bGluZWQsXHJcbn0gZnJvbSBcIkBhbnQtZGVzaWduL2ljb25zXCI7XHJcbmltcG9ydCBjbHMgZnJvbSBcImNsYXNzbmFtZXNcIjtcclxuaW1wb3J0IFNwaW4gZnJvbSBcIi4uL3NwaW5cIjtcclxuXHJcbmNvbnN0IHsgZG93bmxvYWQsIHByZXZpZXdEb2N1bWVudCB9ID0gZmlsZTtcclxuaW50ZXJmYWNlIElJbWFnZVByb3BzIGV4dGVuZHMgSW1hZ2VQcm9wcyB7XHJcbiAgZmlsZUlkPzogc3RyaW5nO1xyXG4gIHNyYz86IHN0cmluZztcclxuICBjbGlja1ByZXZpZXc/OiBib29sZWFuO1xyXG4gIHNob3dEZWxldGVJY29uPzogYm9vbGVhbjtcclxuICAvLyBzaG93VXBsb2FkSWNvbj86IGJvb2xlYW47XHJcbiAgc2hvd0Rvd25sb2FkSWNvbj86IGJvb2xlYW47XHJcbiAgcHJldmlldz86IGJvb2xlYW47XHJcbiAgZGVmYXVsdEltZz86IHN0cmluZztcclxuICBvbkRlbGV0ZT86IGFueTtcclxuICBvblByZXZpZXc/OiBhbnk7XHJcbiAgb25Eb3dubG9hZD86IGFueTtcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTnNjSW1hZ2UgZXh0ZW5kcyBSZWFjdC5QdXJlQ29tcG9uZW50PElJbWFnZVByb3BzLCBhbnk+IHtcclxuICBkZWZhdWx0SW1nID1cclxuICAgIFwiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFNSUFBQUREQ0FZQUFBRFF2YzZVQUFBQlJXbERRMUJKUTBNZ1VISnZabWxzWlFBQUtKRmpZR0FTU1N3b3lHRmhZR0RJelNzcENuSjNVb2lJakZKZ2Y4TEF3U0RDSU1vZ3dNQ2NtRnhjNEJnUTRBTlV3Z0NqVWNHM2F3eU1JUHF5THNpczdQUE9xM1FkREZjdmpWM2pPRDFib1FWVFBRcmdTa2t0VGdiU2Y0QTRMYm1ncUlTQmdURUZ5Rll1THlrQXNUdUFiSkVpb0tPQTdEa2dkanFFdlFIRVRvS3dqNERWaEFRNUE5azNnR3lCNUl4RW9CbU1MNEJzblNRazhYUWtOdFJlRU9CeGNmWHhVUWcxTWpjMGR5SGdYTkpCU1dwRkNZaDJ6aStvTE1wTXp5aFJjQVNHVXFxQ1oxNnlubzZDa1lHUkFRTURLTXdocWovZkFJY2xveGdIUXF4QWpJSEJFdWd3NXNVSXNTUXBCb2J0UVBkTGNpTEVWSll6TVBCSE1EQnNheWhJTEVxRU80RHhHMHR4bXJFUmhNMjluWUdCZGRyLy81L0RHUmpZTlJrWS9sNy8vLy8zOXYvLy95NERtbitMZ2VIQU53RHJrbDFBdU8rcG1nQUFBRGhsV0VsbVRVMEFLZ0FBQUFnQUFZZHBBQVFBQUFBQkFBQUFHZ0FBQUFBQUFxQUNBQVFBQUFBQkFBQUF3cUFEQUFRQUFBQUJBQUFBd3dBQUFBRDliL0huQUFBSGxrbEVRVlI0QWUzZFAzUFRXQlNHY2JHek02R0NLcWxJQlJWMGRIUkpGYXJRMGVVVDhMSDRCblJVME5IUjBVRUZWZElsRlJWN1R6Umtzb21QWTh1eWtUay96ZXdRZkt3Lzl6bnY0eXZKeW5MdjR1TGlWMmRCb0RpQmY0cVAzL0FSdUNSQUJFRkFvQkVnZ2hnZ1FBUVpRS0FuWUVhUUJBUWFBU0tJQVFKRWtBRUVlZ0ptQkVsQW9CRWdnaGdnUUFRWlFLQW5ZRWFRQkFRYUFTS0lBUUpFa0FFRWVnSm1CRWxBb0JFZ2doZ2dRQVFaUUtBbllFYVFCQVFhQVNLSUFRSkVrQUVFZWdKbUJFbEFvQkVnZ2hnZ1FBUVpRS0FuWUVhUUJBUWFBU0tJQVFKRWtBRUVlZ0ptQkVsQW9CRWdnaGdnUUFRWlFLQW5ZRWFRQkFRYUFTS0lBUUpFa0FFRWVnSm1CRWxBb0JFZ2doZ2dRQVFaUUtBbllFYVFCQVFhQVNLSUFRSkVrQUVFZWdKbUJFbEFvQkVnZ2hnZ1FBUVpRS0FuWUVhUUJBUWFBU0tJQVFKRWtBRUVlZ0ptQkVsQW9CRWdnaGdnUUFRWlFLQW5ZRWFRQkFRYUFTS0lBUUpFa0FFRWVnSm1CRWxBb0JFZ2doZ2dRQVFaUUtBbllFYVFCQVFhQVNLSUFRSkVrQUVFZWdKbUJFbEFvQkVnZ2hnZ1FBUVpRS0FuWUVhUUJBUWFBU0tJQVFKRWtBRUVlZ0ptQkVsQW9CRWdnaGdnUUFRWlFLQW5ZRWFRQkFRYUFTS0lBUUpFa0FFRWVnSm1CRWxBb0JFZ2doZ2dRQVFaUUtBbllFYVFCQVFhQVNLSUFRSkVrQUVFZWdKbUJFbEFvQkVnZ2hnZzBBajhpMEpPNE96c3JQdjY5V3YraGkycVBIcjBxTnZmMzkraUk5N3NvUkloNGYzejU4L3U3ZHUzU1hYN1h0N1oyZW5ldkhtemZRZStvU04yYXBTQVBqMDlUU3JiK1hLSS9mMzc5KzA4K0EwY05SRTJBTmt1cGsrQUNOUHZrU1BjQUFFaWJBQ3lYVXlmQUJHbTN5Tkh1QUVDUk5nQVpMdVlQZ0VpcktsSHU3dTdYZHl5dEd3SEFkOGpqTnluZzRPRDd2bno1MWRiUFQ4Lzd6NTgrTkI5Ky9idDZqVS9USStBR1dIRW5yeDQ4ZUovRXNTbUh6eDQwTDE4K2ZMeXp4RjNaVk1qRXlEQ2lFRGpNWVpaUzV3aVBYbnlaRmJKYXhNaFFJUVJHekh2V1I3WEN5T0NYc09taURBaTFIbVBNTVFqRHBicEVpRENpTDM1OGVOSHVyVy81U25XZElCYlhpRENpQTM4L1BuenJjZTJZeVo0Ly81OUYzZVBMTk1sNFBicGlMMkowTDk3OSs3eUR0SERodzh2dHp6dmRHbkVYZHZVaWdTSXNDTEFXYXZIcC8rcU0wQmNYTWQvcTI1bjF2RjU3VFlCcDBhM21VemlsZVBqNCs3azVLU0xiNmd0NnlkQWhQVXpYbm9QUjBkSGw3OVdHVE5DZkJubjF1dlNDSmRlZ1FoTEkxdnZDaytmUHUyZVBYdDJ0Wk9ZRVY2L2ZuMzFkeitzaHdBUjFzUDFjcXZMbnRiRU45TXhBOXhjWWpzeFMxaldSNEFJYTJJYnp4MHRjNDRmWVgvMTZsVjZOREZMWEgrWUwzMmp3aUFDUkJpRWJmNUtjWG9USXNRU3B6WHg0TjI4SmE0QlFvSzdyZ1hpeWRiSGp4L1AyNVRhUUFKRUdBZ3VXeTArMlE4UEQ2L0tpNFI4RVZsK2J6Qk9uWlk5NWZxOXJqOXpBa1RJMlN4ZGlkQkhxRzkrc2tkdzQzYm9yQ1hPL1pjSmRyYVBXZHYyMnVJRWlMQTRxN252dkN1ZzhXVHF6UXZlT0gyNmZvZG83ZzZ1RmUvYTE3VzMrbkZCQWtSWUVOUmRiMXZra3oxQ0g5Y1BzVnkvanJocjI3UHFNWXZFTllObEhBSWVzUmlCWXdSeTBWKzhpWFA4Ky9mdlgxMU1yN0w3RUN1ZWIvcjQ4ZU1xbTdGdUkyQkdXREVHOGNtKzdHM05FT2ZtZGNUUXc0aDkvNTVsaG03RGVrUllLUVBaRjJBcmJYVEF5dTRrRFlCMll4VXp3ZzBnaS80MXp0SG5mUUcyNkhiR2VsL2NyVnJtN3ROWSsvMWJ0a09FQVoyTTA1cjRGQjdyOUdiQUlkeGFaWXJIZE9zZ0ovd0NFUVkwSjc0VG1PS25ieHhUOW4zRmdHR1dXc1Zkb3dIdGp0OU5udmY3eVFNMmFaVS9USUFJQXhydzZkT25BV3RaWmNvRW5CcE51VHVPYldNRWlMQXgxSFkwWlFKRW1ISjNITnZHQ0JCaFk2anRhTW9FaUpCMFoyOXZMNmxzNTh2eFBjTzgvemZyZG81cXZLTytkM0Z4OFd1OHpmMWRXNHAvY1B6TGx5L2R0djlUcy9FYmN2R0FIaEh5ZkJJaFo2TlNpSUJUbzBMTk50U2NBQkZ5TmlxRkNCQ2hVTE1OTlNkQWhKeU5TaUVDUkNqVWJFUE5DUkFoWjZOU2lBQVJDalhiVUhNQ1JNalpxQlFpUUlSQ3pUYlVuQUFSY2pZcWhRZ1FvVkN6RFRVblFJU2NqVW9oQWtRbzFHeER6UWtRSVdlalVvZ0FFUW8xMjFCekFrVEkyYWdVSWtDRVFzMDIxSndBRVhJMktvVUlFS0ZRc3cwMUowQ0VuSTFLSVFKRUtOUnNRODBKRUNGbm8xS0lBQkVLTmR0UWN3SkV5Tm1vRkNKQWhFTE5OdFNjQUJGeU5pcUZDQkNoVUxNTk5TZEFoSnlOU2lFQ1JDalViRVBOQ1JBaFo2TlNpQUFSQ2pYYlVITUNSTWpacUJRaVFJUkN6VGJVbkFBUmNqWXFoUWdRb1ZDekRUVW5RSVNjalVvaEFrUW8xR3hEelFrUUlXZWpVb2dBRVFvMTIxQnpBa1RJMmFnVUlrQ0VRczAyMUp3QUVYSTJLb1VJRUtGUXN3MDFKMENFbkkxS0lRSkVLTlJzUTgwSkVDRm5vMUtJQUJFS05kdFFjd0pFeU5tb0ZDSkFoRUxOTnRTY0FCRnlOaXFGQ0JDaFVMTU5OU2RBaEp5TlNpRUNSQ2pVYkVQTkNSQWhaNk5TaUFBUkNqWGJVSE1DUk1qWnFCUWlRSVJDelRiVW5BQVJjallxaFFnUW9WQ3pEVFVuUUlTY2pVb2hBa1FvMUd4RHpRa1FJV2VqVW9nQUVRbzEyMUJ6QWtUSTJhZ1VJa0NFUXMwMjFKd0FFWEkyS29VSUVLRlFzdzAxSjBDRW5JMUtJUUpFS05Sc1E4MEpFQ0ZubzFLSUFCRUtOZHRRY3dKRXlObW9GQ0pBaEVMTk50U2NBQkZ5TmlxRkNCQ2hVTE1OTlNkQWhKeU5TaUVDL3dHZ0tLQzRZTUE0VEFBQUFBQkpSVTVFcmtKZ2dnPT1cIjtcclxuXHJcbiAgY29uc3RydWN0b3IocHJvcHMpIHtcclxuICAgIHN1cGVyKHByb3BzKTtcclxuICAgIHRoaXMuc3RhdGUgPSB7XHJcbiAgICAgIGltZ0RhdGE6IHByb3BzLmRlZmF1bHRJbWcgfHwgdGhpcy5kZWZhdWx0SW1nLFxyXG4gICAgICB2aXNpYmxlOiBmYWxzZSxcclxuICAgICAgbWFzazogZmFsc2UsXHJcbiAgICAgIGxvYWRpbmc6IHRydWUsXHJcbiAgICB9O1xyXG4gIH1cclxuICBhc3luYyBnZXRJbWdEYXRhKCkge1xyXG4gICAgY29uc3QgeyBmaWxlSWQgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCBpbWcgPSBhd2FpdCBkb3dubG9hZChmaWxlSWQsIGZhbHNlKTtcclxuICAgIGlmIChpbWcuZGF0YT8uZGF0YSkge1xyXG4gICAgICB0aGlzLmJsb2JUb0Jhc2U2NChpbWcuZGF0YT8uZGF0YSkudGhlbigocmVzKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICBpbWdEYXRhOiByZXMsXHJcbiAgICAgICAgICBsb2FkaW5nOiBmYWxzZSxcclxuICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICBsb2FkaW5nOiBmYWxzZSxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGJsb2JUb0Jhc2U2NChibG9iKSB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICBjb25zdCBmaWxlUmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcclxuICAgICAgZmlsZVJlYWRlci5vbmxvYWQgPSAoZSkgPT4ge1xyXG4gICAgICAgIHJlc29sdmUoZS50YXJnZXQucmVzdWx0KTtcclxuICAgICAgfTtcclxuICAgICAgZmlsZVJlYWRlci5yZWFkQXNEYXRhVVJMKGJsb2IpO1xyXG4gICAgICBmaWxlUmVhZGVyLm9uZXJyb3IgPSAoKSA9PiB7XHJcbiAgICAgICAgcmVqZWN0KG5ldyBFcnJvcihcImJsb2JUb0Jhc2U2NCBlcnJvclwiKSk7XHJcbiAgICAgIH07XHJcbiAgICB9KTtcclxuICB9XHJcbiAgY29tcG9uZW50RGlkVXBkYXRlKHByZXZQcm9wcykge1xyXG4gICAgaWYgKHByZXZQcm9wcy5maWxlSWQgIT09IHRoaXMucHJvcHMuZmlsZUlkKSB7XHJcbiAgICAgIGlmICh0aGlzLnByb3BzLmZpbGVJZCkge1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgbG9hZGluZzogdHJ1ZSxcclxuICAgICAgICAgIGltZ0RhdGE6IHRoaXMuZGVmYXVsdEltZyxcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmdldEltZ0RhdGEoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBjb21wb25lbnREaWRNb3VudCgpIHtcclxuICAgIGNvbnN0IHsgZmlsZUlkIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgaWYgKGZpbGVJZCkge1xyXG4gICAgICB0aGlzLmdldEltZ0RhdGEoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgIGxvYWRpbmc6IGZhbHNlLFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbiAgcmVuZGVyKCk6IFJlYWN0LlJlYWN0Tm9kZSB7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIGZpbGVJZCxcclxuICAgICAgc3JjLFxyXG4gICAgICBjbGlja1ByZXZpZXcgPSB0cnVlLFxyXG4gICAgICBzaG93RG93bmxvYWRJY29uID0gZmFsc2UsXHJcbiAgICAgIHByZXZpZXcgPSB0cnVlLFxyXG4gICAgICBkZWZhdWx0SW1nLFxyXG4gICAgICBzaG93RGVsZXRlSWNvbiA9IGZhbHNlLFxyXG4gICAgICBvbkRlbGV0ZSxcclxuICAgICAgb25QcmV2aWV3LFxyXG4gICAgICBvbkRvd25sb2FkLFxyXG4gICAgICAuLi5wYXJhbXNcclxuICAgIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgPGRpdlxyXG4gICAgICAgIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwibnNjLWltYWdlLXRvdGFsXCIpfVxyXG4gICAgICAgIG9uTW91c2VFbnRlcj17KCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgIG1hc2s6IHRydWUsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9fVxyXG4gICAgICAgIG9uTW91c2VMZWF2ZT17KCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgIG1hc2s6IGZhbHNlLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfX1cclxuICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICBjbGlja1ByZXZpZXcgJiZcclxuICAgICAgICAgICAgcHJldmlldyAmJlxyXG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgICB2aXNpYmxlOiB0cnVlLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9fVxyXG4gICAgICA+XHJcbiAgICAgICAgPFNwaW5cclxuICAgICAgICAgIHNwaW5uaW5nPXt0aGlzLnN0YXRlLmxvYWRpbmd9XHJcbiAgICAgICAgICAvLyBzdHlsZT17eyB3aWR0aDogXCIxMDAlXCIsIGhlaWdodDogXCIxMDAlXCIgfX1cclxuICAgICAgICA+XHJcbiAgICAgICAgICA8aW1nXHJcbiAgICAgICAgICAgIHNyYz17dGhpcy5wcm9wcy5zcmMgfHwgdGhpcy5zdGF0ZS5pbWdEYXRhfVxyXG4gICAgICAgICAgICBzdHlsZT17eyB3aWR0aDogXCIxMDAlXCIsIGhlaWdodDogXCIxMDAlXCIgfX1cclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgPC9TcGluPlxyXG4gICAgICAgIHt0aGlzLnN0YXRlLm1hc2sgJiYgcHJldmlldyAmJiAhdGhpcy5zdGF0ZS52aXNpYmxlICYmIChcclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJuc2MtaW1hZ2UtbWFza1wiKX0+XHJcbiAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwibnNjLWltYWdlLWljb25cIil9PlxyXG4gICAgICAgICAgICA8VXBsb2FkT3V0bGluZWQgLz5cclxuICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAge3Nob3dEb3dubG9hZEljb24gJiYgKFxyXG4gICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwibnNjLWltYWdlLWljb25cIil9XHJcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIGlmIChvbkRvd25sb2FkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgb25Eb3dubG9hZChmaWxlSWQpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICBpZiAoZmlsZUlkKSBkb3dubG9hZChmaWxlSWQpO1xyXG4gICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8RG93bmxvYWRPdXRsaW5lZCAvPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICApfVxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgICAgICAgIHZpc2libGU6IHRydWUsXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwibnNjLWltYWdlLWljb25cIil9XHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8RXllT3V0bGluZWQgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIHtzaG93RGVsZXRlSWNvbiAmJiAoXHJcbiAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJuc2MtaW1hZ2UtaWNvblwiKX1cclxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgICAgaWYgKG9uRGVsZXRlKSBvbkRlbGV0ZShmaWxlSWQpO1xyXG4gICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8RGVsZXRlT3V0bGluZWQgLz5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgKX1cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICl9XHJcbiAgICAgICAgPGRpdiBzdHlsZT17eyBkaXNwbGF5OiBcIm5vbmVcIiwgaGVpZ2h0OiAwIH19PlxyXG4gICAgICAgICAgPEltYWdlXHJcbiAgICAgICAgICAgIHNyYz17dGhpcy5wcm9wcy5zcmMgfHwgdGhpcy5zdGF0ZS5pbWdEYXRhfVxyXG4gICAgICAgICAgICBzdHlsZT17eyBkaXNwbGF5OiBcIm5vbmVcIiB9fVxyXG4gICAgICAgICAgICBwcmV2aWV3PXt7XHJcbiAgICAgICAgICAgICAgdmlzaWJsZTogdGhpcy5zdGF0ZS52aXNpYmxlLFxyXG4gICAgICAgICAgICAgIHNyYzogdGhpcy5wcm9wcy5zcmMgfHwgdGhpcy5zdGF0ZS5pbWdEYXRhLFxyXG4gICAgICAgICAgICAgIG9uVmlzaWJsZUNoYW5nZTogKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgICAgICAgdmlzaWJsZTogdmFsdWUsXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICB7Li4ucGFyYW1zfVxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICApO1xyXG4gIH1cclxufVxyXG4iXX0=
262
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2Jhc2UvaW1hZ2UvaW5kZXgudHN4Il0sIm5hbWVzIjpbIlJlYWN0IiwiZmlsZSIsInN0eWxlcyIsImdldExlc3MiLCJFeWVPdXRsaW5lZCIsIkRvd25sb2FkT3V0bGluZWQiLCJEZWxldGVPdXRsaW5lZCIsIlNwaW4iLCJkb3dubG9hZCIsInByZXZpZXdEb2N1bWVudCIsIk5zY0ltYWdlIiwicHJvcHMiLCJzdGF0ZSIsImltZ0RhdGEiLCJkZWZhdWx0SW1nIiwidmlzaWJsZSIsIm1hc2siLCJsb2FkaW5nIiwiZmlsZUlkIiwic2hvd0Vyck1zZyIsImltZyIsImRhdGEiLCJibG9iVG9CYXNlNjQiLCJ0aGVuIiwicmVzIiwic2V0U3RhdGUiLCJibG9iIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJmaWxlUmVhZGVyIiwiRmlsZVJlYWRlciIsIm9ubG9hZCIsImUiLCJ0YXJnZXQiLCJyZXN1bHQiLCJyZWFkQXNEYXRhVVJMIiwib25lcnJvciIsIkVycm9yIiwicHJldlByb3BzIiwiZ2V0SW1nRGF0YSIsInNyYyIsImNsaWNrUHJldmlldyIsInNob3dEb3dubG9hZEljb24iLCJwcmV2aWV3Iiwic2hvd0RlbGV0ZUljb24iLCJvbkRlbGV0ZSIsIm9uUHJldmlldyIsIm9uRG93bmxvYWQiLCJwYXJhbXMiLCJ3aWR0aCIsImhlaWdodCIsImRpc3BsYXkiLCJvblZpc2libGVDaGFuZ2UiLCJ2YWx1ZSIsIlB1cmVDb21wb25lbnQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxLQUFLQSxLQUFaLE1BQXVCLE9BQXZCO0FBRUEsT0FBT0MsSUFBUCxNQUFpQixVQUFqQjtBQUNBLE9BQU9DLE1BQVAsTUFBbUIsY0FBbkI7QUFDQSxTQUFTQyxPQUFULFFBQXdCLGFBQXhCO0FBQ0EsU0FDRUMsV0FERixFQUVFQyxnQkFGRixFQUlFQyxjQUpGLFFBS08sbUJB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Q0E3QkosQ0E5QkosZUFzRUU7QUFBSyxRQUFBLEtBQUssRUFBRTtBQUFFa0MsVUFBQUEsT0FBTyxFQUFFLE1BQVg7QUFBbUJELFVBQUFBLE1BQU0sRUFBRTtBQUEzQjtBQUFaLHNCQUNFO0FBQ0UsUUFBQSxHQUFHLEVBQUUsS0FBS3hDLEtBQUwsQ0FBVzhCLEdBQVgsSUFBa0IsS0FBSzdCLEtBQUwsQ0FBV0MsT0FEcEM7QUFFRSxRQUFBLEtBQUssRUFBRTtBQUFFdUMsVUFBQUEsT0FBTyxFQUFFO0FBQVgsU0FGVDtBQUdFLFFBQUEsT0FBTyxFQUFFO0FBQ1ByQyxVQUFBQSxPQUFPLEVBQUUsS0FBS0gsS0FBTCxDQUFXRyxPQURiO0FBRVAwQixVQUFBQSxHQUFHLEVBQUUsS0FBSzlCLEtBQUwsQ0FBVzhCLEdBQVgsSUFBa0IsS0FBSzdCLEtBQUwsQ0FBV0MsT0FGM0I7QUFHUHdDLFVBQUFBLGVBQWUsRUFBRSx5QkFBQ0MsS0FBRCxFQUFXO0FBQzFCLFlBQUEsTUFBSSxDQUFDN0IsUUFBTCxDQUFjO0FBQ1pWLGNBQUFBLE9BQU8sRUFBRXVDO0FBREcsYUFBZDtBQUdEO0FBUE07QUFIWCxTQVlNTCxNQVpOLEVBREYsQ0F0RUYsQ0FERjtBQXlGRDs7OztFQXJLbUNqRCxLQUFLLENBQUN1RCxhOztTQUF2QjdDLFEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHsgSW1hZ2UsIEltYWdlUHJvcHMgfSBmcm9tIFwiYW50ZFwiO1xyXG5pbXBvcnQgZmlsZSBmcm9tIFwibnNjLWZpbGVcIjtcclxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9pbmRleC5sZXNzXCI7XHJcbmltcG9ydCB7IGdldExlc3MgfSBmcm9tIFwiLi4vLi4vdXRpbHNcIjtcclxuaW1wb3J0IHtcclxuICBFeWVPdXRsaW5lZCxcclxuICBEb3dubG9hZE91dGxpbmVkLFxyXG4gIFVwbG9hZE91dGxpbmVkLFxyXG4gIERlbGV0ZU91dGxpbmVkLFxyXG59IGZyb20gXCJAYW50LWRlc2lnbi9pY29uc1wiO1xyXG5pbXBvcnQgY2xzIGZyb20gXCJjbGFzc25hbWVzXCI7XHJcbmltcG9ydCBTcGluIGZyb20gXCIuLi9zcGluXCI7XHJcblxyXG5jb25zdCB7IGRvd25sb2FkLCBwcmV2aWV3RG9jdW1lbnQgfSA9IGZpbGU7XHJcbmludGVyZmFjZSBJSW1hZ2VQcm9wcyBleHRlbmRzIEltYWdlUHJvcHMge1xyXG4gIGZpbGVJZD86IHN0cmluZztcclxuICBzcmM/OiBzdHJpbmc7XHJcbiAgY2xpY2tQcmV2aWV3PzogYm9vbGVhbjtcclxuICBzaG93RGVsZXRlSWNvbj86IGJvb2xlYW47XHJcbiAgLy8gc2hvd1VwbG9hZEljb24/OiBib29sZWFuO1xyXG4gIHNob3dEb3dubG9hZEljb24/OiBib29sZWFuO1xyXG4gIHByZXZpZXc/OiBib29sZWFuO1xyXG4gIGRlZmF1bHRJbWc/OiBzdHJpbmc7XHJcbiAgb25EZWxldGU/OiBhbnk7XHJcbiAgb25QcmV2aWV3PzogYW55O1xyXG4gIG9uRG93bmxvYWQ/OiBhbnk7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE5zY0ltYWdlIGV4dGVuZHMgUmVhY3QuUHVyZUNvbXBvbmVudDxJSW1hZ2VQcm9wcywgYW55PiB7XHJcbiAgZGVmYXVsdEltZyA9XHJcbiAgICBcImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBTUlBQUFERENBWUFBQURRdmM2VUFBQUJSV2xEUTFCSlEwTWdVSEp2Wm1sc1pRQUFLSkZqWUdBU1NTd295R0ZoWUdESXpTc3BDbkozVW9pSWpGSmdmOExBd1NEQ0lNb2d3TUNjbUZ4YzRCZ1E0QU5Vd2dDalVjRzNhd3lNSVBxeUxzaXM3UFBPcTNRZERGY3ZqVjNqT0QxYm9RVlRQUXJnU2trdFRnYlNmNEE0TGJtZ3FJU0JnVEVGeUZZdUx5a0FzVHVBYkpFaW9LT0E3RGtnZGpxRXZRSEVUb0t3ajREVmhBUTVBOWszZ0d5QjVJeEVvQm1NTDRCc25TUWs4WFFrTnRSZUVPQnhjZlh4VVFnMU1qYzBkeUhnWE5KQlNXcEZDWWgyemkrb0xNcE16eWhSY0FTR1VxcUNaMTZ5bm82Q2tZR1JBUU1ES013aHFqL2ZBSWNsb3hnSFFxeEFqSUhCRXVndzVzVUlzU1FwQm9idFFQZExjaUxFVkpZek1QQkhNREJzYXloSUxFcUVPNER4RzB0eG1yRVJoTTI5bllHQmRkci8vNS9ER1JqWU5Sa1kvbDcvLy8vMzl2Ly8veTREbW4rTGdlSEFOd0Rya2wxQXVPK3BtZ0FBQURobFdFbG1UVTBBS2dBQUFBZ0FBWWRwQUFRQUFBQUJBQUFBR2dBQUFBQUFBcUFDQUFRQUFBQUJBQUFBd3FBREFBUUFBQUFCQUFBQXd3QUFBQUQ5Yi9IbkFBQUhsa2xFUVZSNEFlM2RQM1BUV0JTR2NiR3pNNkdDS3FsSUJSVjBkSFJKRmFyUTBlVVQ4TEg0Qm5SVTBOSFIwVUVGVmRJbEZSVjdUelJrc29tUFk4dXlrVGsvemV3UWZLdy85em52NHl2SnluTHY0dUxpVjJkQm9EaUJmNHFQMy9BUnVDUkFCRUZBb0JFZ2doZ2dRQVFaUUtBbllFYVFCQVFhQVNLSUFRSkVrQUVFZWdKbUJFbEFvQkVnZ2hnZ1FBUVpRS0FuWUVhUUJBUWFBU0tJQVFKRWtBRUVlZ0ptQkVsQW9CRWdnaGdnUUFRWlFLQW5ZRWFRQkFRYUFTS0lBUUpFa0FFRWVnSm1CRWxBb0JFZ2doZ2dRQVFaUUtBbllFYVFCQVFhQVNLSUFRSkVrQUVFZWdKbUJFbEFvQkVnZ2hnZ1FBUVpRS0FuWUVhUUJBUWFBU0tJQVFKRWtBRUVlZ0ptQkVsQW9CRWdnaGdnUUFRWlFLQW5ZRWFRQkFRYUFTS0lBUUpFa0FFRWVnSm1CRWxBb0JFZ2doZ2dRQVFaUUtBbllFYVFCQVFhQVNLSUFRSkVrQUVFZWdKbUJFbEFvQkVnZ2hnZ1FBUVpRS0FuWUVhUUJBUWFBU0tJQVFKRWtBRUVlZ0ptQkVsQW9CRWdnaGdnUUFRWlFLQW5ZRWFRQkFRYUFTS0lBUUpFa0FFRWVnSm1CRWxBb0JFZ2doZ2dRQVFaUUtBbllFYVFCQVFhQVNLSUFRSkVrQUVFZWdKbUJFbEFvQkVnZ2hnZ1FBUVpRS0FuWUVhUUJBUWFBU0tJQVFKRWtBRUVlZ0ptQkVsQW9CRWdnaGdnUUFRWlFLQW5ZRWFRQkFRYUFTS0lBUUpFa0FFRWVnSm1CRWxBb0JFZ2doZ2cwQWo4aTBKTzRPenNyUHY2OVd2K2hpMnFQSHIwcU52ZjM5K2lJOTdzb1JJaDRmM3o1OC91N2R1M1NYWDdYdDdaMmVuZXZIbXpmUWUrb1NOMmFwU0FQajA5VFNyYitYS0kvZjM3OSswOCtBMGNOUkUyQU5rdXBrK0FDTlB2a1NQY0FBRWliQUN5WFV5ZkFCR20zeU5IdUFFQ1JOZ0FaTHVZUGdFaXJLbEh1N3U3WGR5eXRHd0hBZDhqak55bmc0T0Q3dm56NTFkYlBUOC83ejU4K05COSsvYnQ2alUvVEkrQUdXSEVucng0OGVKL0VzU21Ieng0MEwxOCtmTHl6eEYzWlZNakV5RENpRURqTVlaWlM1d2lQWG55WkZiSmF4TWhRSVFSR3pIdldSN1hDeU9DWHNPbWlEQWkxSG1QTU1RakRwYnBFaURDaUwzNThlTkh1clcvNVNuV2RJQmJYaURDaUEzOC9QbnpyY2UyWXlaNC8vNTlGM2VQTE5NbDRQYnBpTDJKMEw5NzkrN3lEdEhEaHc4dnR6enZkR25FWGR2VWlnU0lzQ0xBV2F2SHAvK3FNMEJjWE1kL3EyNW4xdkY1N1RZQnAwYTNtVXppbGVQajQrN2s1S1NMYjZndDZ5ZEFoUFV6WG5vUFIwZEhsNzlXR1ROQ2ZCbm4xdXZTQ0pkZWdRaExJMXZ2Q2srZlB1MmVQWHQydFpPWUVWNi9mbjMxZHorc2h3QVIxc1AxY3F2TG50YkVOOU14QTl4Y1lqc3hTMWpXUjRBSWEySWJ6eDB0YzQ0ZllYLzE2bFY2TkRGTFhIK1lMMzJqd2lBQ1JCaUViZjVLY1hvVElzUVNwelh4NE4yOEphNEJRb0s3cmdYaXlkYkhqeC9QMjVUYVFBSkVHQWd1V3kwKzJROFBENi9LaTRSOEVWbCtiekJPblpZOTVmcTlyajl6QWtUSTJTeGRpZEJIcUc5K3NrZHc0M2JvckNYTy9aY0pkcmFQV2R2MjJ1SUVpTEE0cTdudnZDdWc4V1RxelF2ZU9IMjZmb2RvN2c2dUZlL2ExN1czK25GQkFrUllFTlJkYjF2a2t6MUNIOWNQc1Z5L2pyaHIyN1BxTVl2RU5ZTmxIQUllc1JpQll3UnkwVis4aVhQOCsvZnZYMTFNcjdMN0VDdWViL3I0OGVNcW03RnVJMkJHV0RFRzhjbSs3RzNORU9mbWRjVFF3NGg5LzU1bGhtN0Rla1JZS1FQWkYyQXJiWFRBeXU0a0RZQjJZeFV6d2cwZ2kvNDF6dEhuZlFHMjZIYkdlbC9jclZybTd0TlkrLzFidGtPRUFaMk0wNXI0RkI3cjlHYkFJZHhhWllySGRPc2dKL3dDRVFZMEo3NFRtT0tuYnh4VDluM0ZnR0dXV3NWZG93SHRqdDlObnZmN3lRTTJhWlUvVElBSUF4cnc2ZE9uQVd0Wlpjb0VuQnBOdVR1T2JXTUVpTEF4MUhZMFpRSkVtSEozSE52R0NCQmhZNmp0YU1vRWlKQjBaMjl2TDZsczU4dnhQY084L3pmcmRvNXF2S08rZDNGeDhXdTh6ZjFkVzRwL2NQekxseS9kdHY5VHMvRWJjdkdBSGhIeWZCSWhaNk5TaUlCVG8wTE5OdFNjQUJGeU5pcUZDQkNoVUxNTk5TZEFoSnlOU2lFQ1JDalViRVBOQ1JBaFo2TlNpQUFSQ2pYYlVITUNSTWpacUJRaVFJUkN6VGJVbkFBUmNqWXFoUWdRb1ZDekRUVW5RSVNjalVvaEFrUW8xR3hEelFrUUlXZWpVb2dBRVFvMTIxQnpBa1RJMmFnVUlrQ0VRczAyMUp3QUVYSTJLb1VJRUtGUXN3MDFKMENFbkkxS0lRSkVLTlJzUTgwSkVDRm5vMUtJQUJFS05kdFFjd0pFeU5tb0ZDSkFoRUxOTnRTY0FCRnlOaXFGQ0JDaFVMTU5OU2RBaEp5TlNpRUNSQ2pVYkVQTkNSQWhaNk5TaUFBUkNqWGJVSE1DUk1qWnFCUWlRSVJDelRiVW5BQVJjallxaFFnUW9WQ3pEVFVuUUlTY2pVb2hBa1FvMUd4RHpRa1FJV2VqVW9nQUVRbzEyMUJ6QWtUSTJhZ1VJa0NFUXMwMjFKd0FFWEkyS29VSUVLRlFzdzAxSjBDRW5JMUtJUUpFS05Sc1E4MEpFQ0ZubzFLSUFCRUtOZHRRY3dKRXlObW9GQ0pBaEVMTk50U2NBQkZ5TmlxRkNCQ2hVTE1OTlNkQWhKeU5TaUVDUkNqVWJFUE5DUkFoWjZOU2lBQVJDalhiVUhNQ1JNalpxQlFpUUlSQ3pUYlVuQUFSY2pZcWhRZ1FvVkN6RFRVblFJU2NqVW9oQWtRbzFHeER6UWtRSVdlalVvZ0FFUW8xMjFCekFrVEkyYWdVSWtDRVFzMDIxSndBRVhJMktvVUlFS0ZRc3cwMUowQ0VuSTFLSVFKRUtOUnNRODBKRUNGbm8xS0lBQkVLTmR0UWN3SkV5Tm1vRkNKQWhFTE5OdFNjQUJGeU5pcUZDQkNoVUxNTk5TZEFoSnlOU2lFQy93R2dLS0M0WU1BNFRBQUFBQUJKUlU1RXJrSmdnZz09XCI7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XHJcbiAgICBzdXBlcihwcm9wcyk7XHJcbiAgICB0aGlzLnN0YXRlID0ge1xyXG4gICAgICBpbWdEYXRhOiBwcm9wcy5kZWZhdWx0SW1nIHx8IHRoaXMuZGVmYXVsdEltZyxcclxuICAgICAgdmlzaWJsZTogZmFsc2UsXHJcbiAgICAgIG1hc2s6IGZhbHNlLFxyXG4gICAgICBsb2FkaW5nOiB0cnVlLFxyXG4gICAgfTtcclxuICB9XHJcbiAgYXN5bmMgZ2V0SW1nRGF0YSgpIHtcclxuICAgIGNvbnN0IHsgZmlsZUlkIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgaW1nID0gYXdhaXQgZG93bmxvYWQoZmlsZUlkLCBmYWxzZSx7c2hvd0Vyck1zZzpmYWxzZX0pO1xyXG4gICAgaWYgKGltZy5kYXRhPy5kYXRhKSB7XHJcbiAgICAgIHRoaXMuYmxvYlRvQmFzZTY0KGltZy5kYXRhPy5kYXRhKS50aGVuKChyZXMpID0+IHtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgIGltZ0RhdGE6IHJlcyxcclxuICAgICAgICAgIGxvYWRpbmc6IGZhbHNlLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgIGxvYWRpbmc6IGZhbHNlLFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbiAgYmxvYlRvQmFzZTY0KGJsb2IpIHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgIGNvbnN0IGZpbGVSZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xyXG4gICAgICBmaWxlUmVhZGVyLm9ubG9hZCA9IChlKSA9PiB7XHJcbiAgICAgICAgcmVzb2x2ZShlLnRhcmdldC5yZXN1bHQpO1xyXG4gICAgICB9O1xyXG4gICAgICBmaWxlUmVhZGVyLnJlYWRBc0RhdGFVUkwoYmxvYik7XHJcbiAgICAgIGZpbGVSZWFkZXIub25lcnJvciA9ICgpID0+IHtcclxuICAgICAgICByZWplY3QobmV3IEVycm9yKFwiYmxvYlRvQmFzZTY0IGVycm9yXCIpKTtcclxuICAgICAgfTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XHJcbiAgICBpZiAocHJldlByb3BzLmZpbGVJZCAhPT0gdGhpcy5wcm9wcy5maWxlSWQpIHtcclxuICAgICAgaWYgKHRoaXMucHJvcHMuZmlsZUlkKSB7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICBsb2FkaW5nOiB0cnVlLFxyXG4gICAgICAgICAgaW1nRGF0YTogdGhpcy5kZWZhdWx0SW1nLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuZ2V0SW1nRGF0YSgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xyXG4gICAgY29uc3QgeyBmaWxlSWQgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBpZiAoZmlsZUlkKSB7XHJcbiAgICAgIHRoaXMuZ2V0SW1nRGF0YSgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgbG9hZGluZzogZmFsc2UsXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuICByZW5kZXIoKTogUmVhY3QuUmVhY3ROb2RlIHtcclxuICAgIGNvbnN0IHtcclxuICAgICAgZmlsZUlkLFxyXG4gICAgICBzcmMsXHJcbiAgICAgIGNsaWNrUHJldmlldyA9IHRydWUsXHJcbiAgICAgIHNob3dEb3dubG9hZEljb24gPSBmYWxzZSxcclxuICAgICAgcHJldmlldyA9IHRydWUsXHJcbiAgICAgIGRlZmF1bHRJbWcsXHJcbiAgICAgIHNob3dEZWxldGVJY29uID0gZmFsc2UsXHJcbiAgICAgIG9uRGVsZXRlLFxyXG4gICAgICBvblByZXZpZXcsXHJcbiAgICAgIG9uRG93bmxvYWQsXHJcbiAgICAgIC4uLnBhcmFtc1xyXG4gICAgfSA9IHRoaXMucHJvcHM7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJuc2MtaW1hZ2UtdG90YWxcIil9XHJcbiAgICAgICAgb25Nb3VzZUVudGVyPXsoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgbWFzazogdHJ1ZSxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH19XHJcbiAgICAgICAgb25Nb3VzZUxlYXZlPXsoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgbWFzazogZmFsc2UsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9fVxyXG4gICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgIGNsaWNrUHJldmlldyAmJlxyXG4gICAgICAgICAgICBwcmV2aWV3ICYmXHJcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgIHZpc2libGU6IHRydWUsXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH19XHJcbiAgICAgID5cclxuICAgICAgICA8U3BpblxyXG4gICAgICAgICAgc3Bpbm5pbmc9e3RoaXMuc3RhdGUubG9hZGluZ31cclxuICAgICAgICAgIC8vIHN0eWxlPXt7IHdpZHRoOiBcIjEwMCVcIiwgaGVpZ2h0OiBcIjEwMCVcIiB9fVxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgc3JjPXt0aGlzLnByb3BzLnNyYyB8fCB0aGlzLnN0YXRlLmltZ0RhdGF9XHJcbiAgICAgICAgICAgIHN0eWxlPXt7IHdpZHRoOiBcIjEwMCVcIiwgaGVpZ2h0OiBcIjEwMCVcIiB9fVxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8L1NwaW4+XHJcbiAgICAgICAge3RoaXMuc3RhdGUubWFzayAmJiBwcmV2aWV3ICYmICF0aGlzLnN0YXRlLnZpc2libGUgJiYgKFxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcIm5zYy1pbWFnZS1tYXNrXCIpfT5cclxuICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJuc2MtaW1hZ2UtaWNvblwiKX0+XHJcbiAgICAgICAgICAgIDxVcGxvYWRPdXRsaW5lZCAvPlxyXG4gICAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgICAgICB7c2hvd0Rvd25sb2FkSWNvbiAmJiAoXHJcbiAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJuc2MtaW1hZ2UtaWNvblwiKX1cclxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgICAgaWYgKG9uRG93bmxvYWQpIHtcclxuICAgICAgICAgICAgICAgICAgICBvbkRvd25sb2FkKGZpbGVJZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIGlmIChmaWxlSWQpIGRvd25sb2FkKGZpbGVJZCk7XHJcbiAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxEb3dubG9hZE91dGxpbmVkIC8+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgICAgICAgdmlzaWJsZTogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJuc2MtaW1hZ2UtaWNvblwiKX1cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxFeWVPdXRsaW5lZCAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAge3Nob3dEZWxldGVJY29uICYmIChcclxuICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcIm5zYy1pbWFnZS1pY29uXCIpfVxyXG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICBpZiAob25EZWxldGUpIG9uRGVsZXRlKGZpbGVJZCk7XHJcbiAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxEZWxldGVPdXRsaW5lZCAvPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICApfVxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgKX1cclxuICAgICAgICA8ZGl2IHN0eWxlPXt7IGRpc3BsYXk6IFwibm9uZVwiLCBoZWlnaHQ6IDAgfX0+XHJcbiAgICAgICAgICA8SW1hZ2VcclxuICAgICAgICAgICAgc3JjPXt0aGlzLnByb3BzLnNyYyB8fCB0aGlzLnN0YXRlLmltZ0RhdGF9XHJcbiAgICAgICAgICAgIHN0eWxlPXt7IGRpc3BsYXk6IFwibm9uZVwiIH19XHJcbiAgICAgICAgICAgIHByZXZpZXc9e3tcclxuICAgICAgICAgICAgICB2aXNpYmxlOiB0aGlzLnN0YXRlLnZpc2libGUsXHJcbiAgICAgICAgICAgICAgc3JjOiB0aGlzLnByb3BzLnNyYyB8fCB0aGlzLnN0YXRlLmltZ0RhdGEsXHJcbiAgICAgICAgICAgICAgb25WaXNpYmxlQ2hhbmdlOiAodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgICAgICB2aXNpYmxlOiB2YWx1ZSxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgIHsuLi5wYXJhbXN9XHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -38,6 +38,7 @@ interface NSCTableProps extends TableProps<any> {
38
38
  sortFields?: Array<string>;
39
39
  toolbar?: ToolBarProps | boolean;
40
40
  autoSize?: boolean;
41
+ sortSearch?: boolean;
41
42
  }
42
43
  export declare type INSCTableProps = typeof NSCTable.defaultProps & NSCTableProps;
43
44
  export { DndContextType, IBodyRowProps };
@@ -94,6 +95,8 @@ declare class NSCTable extends React.Component<INSCTableProps, any> {
94
95
  moveRow: (dragIndex: any, hoverIndex: any, drag: any, target: any) => void;
95
96
  filterColumn(checkedValue: any): void;
96
97
  getSortParam(sorter: any, sortState?: boolean): {
98
+ orderItems?: undefined;
99
+ } | {
97
100
  orderItems: string;
98
101
  };
99
102
  getColumns(): any;
@@ -512,6 +512,13 @@ var NSCTable = /*#__PURE__*/function (_React$Component) {
512
512
  value: function getSortParam(sorter) {
513
513
  var sortState = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
514
514
  var isMultiple = Array.isArray(sorter);
515
+ var _this$props$sortSearc = this.props.sortSearch,
516
+ sortSearch = _this$props$sortSearc === void 0 ? true : _this$props$sortSearc;
517
+
518
+ if (!sortSearch) {
519
+ return {};
520
+ }
521
+
515
522
  var sortInfo = {};
516
523
  var orderItems = [];
517
524
 
@@ -873,7 +880,7 @@ var NSCTable = /*#__PURE__*/function (_React$Component) {
873
880
  fieldOption = _this$state3.fieldOption,
874
881
  searchColor = _this$state3.searchColor,
875
882
  tableSize = _this$state3.tableSize,
876
- props = utils.omit(this.props, ["store", "onChange", "columns", "resetColumn", "toolbar", "sortFields", "filterColumn"], {
883
+ props = utils.omit(this.props, ["store", "onChange", "columns", "resetColumn", "toolbar", "sortFields", "filterColumn", "sortSearch"], {
877
884
  rowKey: "id",
878
885
  clickChangeColor: false
879
886
  });
@@ -1008,4 +1015,4 @@ _defineProperty(NSCTable, "defaultProps", {
1008
1015
  });
1009
1016
 
1010
1017
  export default withZhLocale(NSCTable);
1011
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2Jhc2UvdGFibGUvaW5kZXgudHN4Il0sIm5hbWVzIjpbIkFwcHN0b3JlT3V0bGluZWQiLCJDaGVja091dGxpbmVkIiwiQ29sdW1uSGVpZ2h0T3V0bGluZWQiLCJTZWFyY2hPdXRsaW5lZCIsIlNvcnRBc2NlbmRpbmdPdXRsaW5lZCIsIlNvcnREZXNjZW5kaW5nT3V0bGluZWQiLCJSZWRvT3V0bGluZWQiLCJpc0VtcHR5T2JqIiwiU3RvcmUiLCJQYWdlU3RvcmUiLCJ1dGlscyIsIlJlYWN0IiwiRG5kUHJvdmlkZXIiLCJCb2R5Um93IiwiRG5kQ29udGV4dFR5cGUiLCJJQm9keVJvd1Byb3BzIiwidHJlZVV0aWxzIiwic3R5bGVzIiwiQm9keVJvd0NvbXBvbmVudCIsIkhUTUw1QmFja2VuZCIsIndpdGhaaExvY2FsZSIsIlJlc2l6YWJsZSIsImdldExlc3MiLCJnZXROb2RlIiwiTm9EYXRhIiwiZ2V0U3RvcmFnZSIsImNvbmZpZyIsIlJlc2l6ZWFibGVUaXRsZSIsInByb3BzIiwib25SZXNpemUiLCJ3aWR0aCIsInJlc3RQcm9wcyIsImVuYWJsZVVzZXJTZWxlY3RIYWNrIiwiTlNDVGFibGUiLCJjcmVhdGVSZWYiLCJvbkJlZm9yZUxvYWQiLCJsb2FkIiwiaGVhZGVyIiwiY2VsbCIsImluZGV4IiwiZSIsInNpemUiLCJjb2xzIiwic3RhdGUiLCJuZXh0Q29sdW1ucyIsInNldFN0YXRlIiwiZXYiLCJkYXRhIiwiSlNPTiIsInBhcnNlIiwiX3RoaXMiLCJldmVudFR5cGUiLCJwYXlsb2FkIiwidGFibGVTaXplIiwiZHJhZ0luZGV4IiwiaG92ZXJJbmRleCIsImRyYWciLCJ0YXJnZXQiLCJkcmFnTm9kZSIsInJlY29yZCIsInRhcmdldE5vZGUiLCJtb3ZlQXJyYXkiLCJpZHMiLCJwYXJlbnROb2RlIiwiZ2V0Q2hpbGROb2RlSWRzIiwicGFyYW1zIiwiaWQiLCJwYXJlbnRJZCIsImF0dHJpYnV0ZSIsIm1vdmVSb3ciLCJzdG9yZSIsInJlbG9hZCIsIm1vZGFsIiwidHlwZSIsInN0b3JlUHJlZml4IiwiYXV0b1R5cGUiLCJjb250ZW50IiwiZGF0YVNvdXJjZSIsImNvbHVtbnMiLCJsb2FkaW5nIiwicGFnaW5hdGlvbiIsImFjdGl2ZUluZGV4Iiwic2VhcmNoVGV4dCIsImZpZWxkT3B0aW9uIiwic2VhcmNoQ29sb3IiLCJzb3J0cyIsImZpbHRlclBhcmFtcyIsInNvcnRUeXBlIiwic29ydGVyIiwic29ydEluZm8iLCJkZWZhdWx0U29ydCIsImNoZWNrQ29sdW1uIiwiZGVmYXVsdENoZWNrIiwibGlzdGVuZXJzIiwibGlzdGVuZXJzUHJvcHMiLCJyZXN0U3RvcmUiLCJzdG9yZVByb3BzIiwibW9kZWwiLCJjb21wb25lbnQiLCJvcHRpb25zIiwiY2FsbGJhY2siLCJkYXRhQ2hhbmdlZCIsIm1vZGVsRGF0YSIsInBhZ2luZyIsImdldFBhZ2luYXRpb24iLCJvbkVycm9yTG9hZCIsImVyciIsInJlc3BvbnNlIiwiYXV0b0xvYWQiLCJPYmplY3QiLCJhc3NpZ24iLCJjdXJyZW50IiwicmVzaXplQ29sdW1uIiwic2V0RGF0YSIsIndpbmRvdyIsImFkZEV2ZW50TGlzdGVuZXIiLCJsaXN0ZW5NZXNzYWdlIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsInByZXZQcm9wcyIsInByZVN0YXRlIiwicmVzZXRDb2x1bW4iLCJuZXdDb2xzIiwiY29sc3MiLCJtYXAiLCJjb2wiLCJ0ZW1wIiwib25IZWFkZXJDZWxsIiwiY29sdW1uIiwiaGFuZGxlUmVzaXplIiwicHVzaCIsImZpbHRlcnMiLCJleHRyYSIsImF1dG9PbkNoYW5nZSIsImF1dG9Tb3J0IiwiYXV0b1BhZ2luYXRpb24iLCJvbkNoYW5nZSIsImlzTXVsdGlwbGUiLCJBcnJheSIsImlzQXJyYXkiLCJoYW5kbGVQYWdpbmF0aW9uIiwiZ2V0UGFnaW5hdGlvbkJ5U3RvcmUiLCJwIiwiY3VycmVudEtleSIsInBhZ2VTaXplS2V5IiwicGFnZVNpemUiLCJhc2NQYXJhbXMiLCJnZXRTb3J0UGFyYW0iLCJvbkNoYW5nZUZuIiwiZ2V0TW9kZWwiLCJ2YWwiLCJjaGVja2VkVmFsdWUiLCJsZW5ndGgiLCJ3YXJuaW5nIiwiZmlsdGVyQ29sdW1ucyIsIm5ld0NvbCIsImluY2x1ZGVzIiwiZGF0YUluZGV4IiwiaW5pdFNob3ciLCJzb3J0U3RhdGUiLCJvcmRlckl0ZW1zIiwiZmllbGQiLCJhc2MiLCJvcmRlciIsImZvckVhY2giLCJ2Iiwic3RyaW5naWZ5Iiwic29ydEZpZWxkcyIsImRlZmF1bHRTaG93Q29scyIsImZpbHRlciIsImVsbGlwc2lzIiwicmVuZGVyIiwic2hvd1RpdGxlIiwidGV4dCIsImluZGV4T2YiLCJzb3J0T3JkZXIiLCJtdWx0aXBsZSIsIml0ZW0iLCJmaWx0ZXJQcm9wcyIsIm9iaiIsInNlYXJjaEtleSIsIkRpdiIsInRpdGxlIiwicGxhY2Vob2xkZXIiLCJyZWYiLCJ0YWJsZVNlYXJjaFJlZiIsImZpbHRlckRyb3Bkb3duIiwic2V0U2VsZWN0ZWRLZXlzIiwic2VsZWN0ZWRLZXlzIiwiY29uZmlybSIsImNsZWFyRmlsdGVycyIsIm5ld0ZpbHRlclBhcmFtcyIsImtleSIsImdldFZhbHVlIiwic29ydFBhcmFtIiwiZmlsdGVySWNvbiIsImZpbHRlckNvbHVtbiIsImNvbExpc3RzIiwidG9vbGJhciIsInRhYmxlVG9vbCIsInRvb2xzIiwidG9vbHNDbGljayIsIm9uVG9vbENsaWNrIiwic2l6ZUl0ZW0iLCJzb3J0SXRlbSIsInNvcnRDb250ZW50IiwiY3Vyc29yIiwiY29sb3IiLCJzaXplQ29udGVudCIsImJpbmQiLCJsYWJlbCIsInZhbHVlIiwiZGlzYWJsZWQiLCJmb250U2l6ZSIsIm1pbldpZHRoIiwibWF4V2lkdGgiLCJtYXJnaW5SaWdodCIsIm9uUmVmcmVzaCIsIm9taXQiLCJyb3dLZXkiLCJjbGlja0NoYW5nZUNvbG9yIiwicG9zaXRpb24iLCJzaG93U2l6ZUNoYW5nZXIiLCJzaG93UXVpY2tKdW1wZXIiLCJzaG93VG90YWwiLCJ0b3RhbCIsImZyb20iLCJ0byIsIm9uUm93Rm4iLCJvblJvdyIsImN1c3RvbSIsIm9uQ2xpY2tGbiIsIm9uQ2xpY2siLCJldmVudCIsInJvd0NsYXNzTmFtZSIsImNsaWNrUm93U3R5bGUiLCJuZXdEYXRhU291cmNlIiwiZ2V0U2VhcmNoTWVudURhdGFzIiwidHJlZURhdGFzIiwiZXhwYW5kZWRSb3dLZXlzIiwib3BlbktleXMiLCJkcmFnYWJsZSIsImRyYWdhYmxlUHJvcHMiLCJjb21wb25lbnRzIiwicmVzaXplUHJvcHMiLCJ0b29sRmxhZyIsInRvb2xwcm9wcyIsInNob3ciLCJEZWZhdWx0VGFibGUiLCJyZW5kZXJUb29sQmFyIiwiZ2V0Q29sdW1ucyIsImVtcHR5VGV4dCIsIngiLCJDb21wb25lbnQiLCJkcmFnVXJsIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUNFQSxnQkFERixFQUVFQyxhQUZGLEVBR0VDLG9CQUhGLEVBSUVDLGNBSkYsRUFLRUMscUJBTEYsRUFNRUMsc0JBTkYsRUFPRUMsWUFQRixRQVFPLG1CQVJQO0FBU0EsU0FBU0MsVUFBVCxRQUEyQixtQkFBM0I7QUFDQSxPQUFPQyxLQUFQLElBQWdCQyxTQUFoQixRQUE2QyxhQUE3QztBQUNBLFNBQVNDLEtBQVQsUUFBc0IsdUJBQXRCO0FBY0EsT0FBTyxLQUFLQyxLQUFaLE1BQXVCLE9BQXZCO0FBQ0EsU0FBU0MsV0FBVCxRQUE0QixXQUE1QjtBQUNBLE9BQU9DLE9BQVAsSUFBa0JDLGNBQWxCLEVBQWtDQyxhQUFsQyxRQUF1RCxtQkFBdkQ7QUFDQSxPQUFPQyxTQUFQLE1BQXNCLGlCQUF0QjtBQUNBLE9BQU9DLE1BQVAsTUFBbUIscUJBQW5CO0FBQ0EsSUFBUUMsZ0JBQVIsR0FBMkNMLE9BQTNDLENBQVFLLGdCQUFSO0FBQUEsSUFBMEJDLFlBQTFCLEdBQTJDTixPQUEzQyxDQUEwQk0s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QWRSLFNBRkYsQ0FERjtBQXNCQSxhQUFPMkwsUUFBUSxLQUFLLElBQWIsZ0JBQ0wsb0JBQUMsV0FBRDtBQUFhLFFBQUEsT0FBTyxFQUFFN047QUFBdEIsU0FBcUNvTyxZQUFyQyxDQURLLEdBR0xBLFlBSEY7QUFLRDs7OztFQTl4Qm9CNU8sS0FBSyxDQUFDaVAsUzs7Z0JBQXZCM04sUSxrQkFDa0I7QUFDcEIrTSxFQUFBQSxRQUFRLEVBQUUsS0FEVTtBQUVwQmpCLEVBQUFBLFNBQVMsRUFBRSxJQUZTO0FBR3BCNUIsRUFBQUEsWUFBWSxFQUFFLElBSE07QUFJcEIwRCxFQUFBQSxPQUFPLEVBQUUsRUFKVztBQUtwQnZILEVBQUFBLGNBQWMsRUFBRSxJQUxJO0FBTXBCRCxFQUFBQSxRQUFRLEVBQUUsSUFOVTtBQU9wQkQsRUFBQUEsWUFBWSxFQUFFLElBUE07QUFRcEJwQixFQUFBQSxZQUFZLEVBQUUsSUFSTTtBQVNwQnFGLEVBQUFBLE9BQU8sRUFBRTtBQUNQaUQsSUFBQUEsSUFBSSxFQUFFLElBREM7QUFFUDdDLElBQUFBLFdBQVcsRUFBRTtBQUZOO0FBVFcsQzs7QUFneUJ4QixlQUFlckwsWUFBWSxDQUFDYSxRQUFELENBQTNCIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogQERlc2NyaXB0dGlvbjpcclxuICogQHZlcnNpb246XHJcbiAqIEBBdXRob3I6IHJ4emh1XHJcbiAqIEBEYXRlOiAyMDIxLTAzLTIzIDA4OjQ2OjIwXHJcbiAqIEBMYXN0RWRpdG9yczogcnh6aHVcclxuICogQExhc3RFZGl0VGltZTogMjAyMS0wMy0yMyAxMDozMDo0MlxyXG4gKi9cclxuaW1wb3J0IHtcclxuICBBcHBzdG9yZU91dGxpbmVkLFxyXG4gIENoZWNrT3V0bGluZWQsXHJcbiAgQ29sdW1uSGVpZ2h0T3V0bGluZWQsXHJcbiAgU2VhcmNoT3V0bGluZWQsXHJcbiAgU29ydEFzY2VuZGluZ091dGxpbmVkLFxyXG4gIFNvcnREZXNjZW5kaW5nT3V0bGluZWQsXHJcbiAgUmVkb091dGxpbmVkLFxyXG59IGZyb20gXCJAYW50LWRlc2lnbi9pY29uc1wiO1xyXG5pbXBvcnQgeyBpc0VtcHR5T2JqIH0gZnJvbSBcIkBiai1uc2MvZnVuY3Rpb25zXCI7XHJcbmltcG9ydCBTdG9yZSwgeyBQYWdlU3RvcmUsIFN0b3JlUHJvcHMgfSBmcm9tIFwiQGJqLW5zYy9tc25cIjtcclxuaW1wb3J0IHsgdXRpbHMgfSBmcm9tIFwiQGJqLW5zYy9tc24vbGliL3V0aWxzXCI7XHJcbmltcG9ydCB7XHJcbiAgQnV0dG9uLFxyXG4gIENoZWNrYm94LFxyXG4gIENoZWNrYm94T3B0aW9uVHlwZSxcclxuICBNZW51LFxyXG4gIG1lc3NhZ2UsXHJcbiAgUG9wb3ZlcixcclxuICBTcGFjZSxcclxuICBUYWJsZSxcclxuICBUYWJsZVByb3BzLFxyXG4gIFRvb2x0aXAsXHJcbn0gZnJvbSBcImFudGRcIjtcclxuaW1wb3J0IHsgQ29sdW1uVHlwZSwgVGFibGVQYWdpbmF0aW9uQ29uZmlnIH0gZnJvbSBcImFudGQvbGliL3RhYmxlXCI7XHJcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyBEbmRQcm92aWRlciB9IGZyb20gXCJyZWFjdC1kbmRcIjtcclxuaW1wb3J0IEJvZHlSb3csIHsgRG5kQ29udGV4dFR5cGUsIElCb2R5Um93UHJvcHMgfSBmcm9tIFwiLi4vY29tbW9uL0JvZHlSb3dcIjtcclxuaW1wb3J0IHRyZWVVdGlscyBmcm9tIFwiLi4vLi4vdHJlZVV0aWxzXCI7XHJcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vaW5kZXgubW9kdWxlLmxlc3NcIjtcclxuY29uc3QgeyBCb2R5Um93Q29tcG9uZW50LCBIVE1MNUJhY2tlbmQgfSA9IEJvZHlSb3c7XHJcbmltcG9ydCB3aXRoWmhMb2NhbGUgZnJvbSBcIi4uL2NvbW1vbi93aXRoWmhMb2NhbGVcIjtcclxuaW1wb3J0IHsgUmVzaXphYmxlIH0gZnJvbSBcInJlYWN0LXJlc2l6YWJsZVwiO1xyXG5pbXBvcnQgXCIuL3Jlc2l6ZS5tb2R1bGUubGVzc1wiO1xyXG5pbXBvcnQgeyBnZXRMZXNzLCBnZXROb2RlIH0gZnJvbSBcIi4uLy4uL3V0aWxzXCI7XHJcbmltcG9ydCBOb0RhdGEgZnJvbSBcIi4uLy4uL2Jhc2UvY29tbW9uL05vRGF0YVwiO1xyXG5pbXBvcnQgeyBnZXRTdG9yYWdlIH0gZnJvbSBcIkBiai1uc2MvZnVuY3Rpb25zXCI7XHJcbmltcG9ydCBjb25maWcgZnJvbSBcIi4uLy4uL2NvbmZpZ1wiO1xyXG5pbnRlcmZhY2UgSURyYWdQYXJhbXMge1xyXG4gIGlkOiBzdHJpbmcgfCBudW1iZXI7XHJcbiAgaWRzOiBBcnJheTxzdHJpbmcgfCBudW1iZXI+O1xyXG4gIHBhcmVudElkOiBzdHJpbmcgfCBudW1iZXI7XHJcbn1cclxuLy8gaW50ZXJmYWNlIFN0b3JlUHJvcHMge31cclxuXHJcbmV4cG9ydCB0eXBlIFN0b3JlVHlwZSA9IFwiUGFnZVN0b3JlXCIgfCBcIlRyZWVTdG9yZVwiIHwgXCJCYXNlU3RvcmVcIjtcclxuXHJcbmludGVyZmFjZSBOU0NUYWJsZVBhZ2luYXRpb24gZXh0ZW5kcyBUYWJsZVBhZ2luYXRpb25Db25maWcge1xyXG4gIHRvdGFsS2V5Pzogc3RyaW5nO1xyXG4gIHBhZ2VTaXplS2V5Pzogc3RyaW5nO1xyXG4gIGN1cnJlbnRLZXk/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmludGVyZmFjZSBUb29sQmFyUHJvcHMge1xyXG4gIHNob3c6IGJvb2xlYW47XHJcbiAgdG9vbHM/OiBBcnJheTxzdHJpbmc+O1xyXG4gIG9uVG9vbENsaWNrPzogeyBvblJlZnJlc2g/OiBhbnk7IG9uU29ydD86IGFueSB9O1xyXG59XHJcbmludGVyZmFjZSBOU0NUYWJsZVByb3BzIGV4dGVuZHMgVGFibGVQcm9wczxhbnk+IHtcclxuICBzdG9yZT86IFN0b3JlUHJvcHM7XHJcbiAgc2hvd1RvdGFsPzogYm9vbGVhbjsgLy8g5piv5ZCm5pi+56S65oC75p2h5pWw5L+h5oGv77yM6buY6K6kdHJ1ZVxyXG4gIGRyYWdhYmxlPzogYm9vbGVhbjsgLy8g5piv5ZCm5Y+v5ouW5YqoLCDpu5jorqRmYWxzZVxyXG4gIGZpbHRlckNvbHVtbj86IGJvb2xlYW47IC8vIOaYr+WQpuaUr+aMgei/h+a7pOaYvuekuuihqOagvOWIlywg6buY6K6kdHJ1ZVxyXG4gIG1vdmVSb3c/OiAocGFyYW1zOiBJRHJhZ1BhcmFtcykgPT4gdm9pZDsgLy8g5ouW5ou95a6M5oiQ5ZCO55qE5Zue6LCDXHJcbiAgZHJhZ1VybD86IHN0cmluZzsgLy8g5L+d5a2Y5ouW5ou95o6S5bqP55qE5o6l5Y+jXHJcbiAgcGFnaW5hdGlvbj86IGZhbHNlIHwgTlNDVGFibGVQYWdpbmF0aW9uO1xyXG4gIGF1dG9QYWdpbmF0aW9uPzogYm9vbGVhbjsgLy8g57uE5Lu25piv5ZCm6Ieq5Yqo5aSE55CG5YiG6aG1XHJcbiAgYXV0b1NvcnQ/OiBib29sZWFuOyAvL+e7hOS7tuaYr+WQpuiHquWKqOWkhOeQhuaOkuW6j1xyXG4gIGF1dG9PbkNoYW5nZT86IGJvb2xlYW47IC8vIOe7hOS7tuaYr+WQpuiHquWKqG9uQ2hhbmdlLCBmYWxzZeWImeS4jeWBmuS7u+S9leWkhOeQhuWFqOmDqOS6pOe7meiwg+eUqOaWuVxyXG4gIHJlc2l6ZUNvbHVtbj86IGJvb2xlYW47XHJcbiAgc29ydEZpZWxkcz86IEFycmF5PHN0cmluZz47IC8v6ZyA6KaB5o6S5bqP55qE5a2X5q61SW5kZXhcclxuICB0b29sYmFyPzogVG9vbEJhclByb3BzIHwgYm9vbGVhbjtcclxuICBhdXRvU2l6ZT86IGJvb2xlYW47XHJcbiAgLy8gdGFibGVTaXplPzogXCJzbWFsbFwiIHwgXCJtaWRkbGVcIiB8IFwiZGVmYXVsdFwiIHwgXCJhdXRvXCI7XHJcbiAgLy8gc2l6ZT86IFwic21hbGxcIiB8IFwibWlkZGxlXCIgfCBcImRlZmF1bHRcIiB8IFwiYXV0b1wiO1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBJTlNDVGFibGVQcm9wcyA9IHR5cGVvZiBOU0NUYWJsZS5kZWZhdWx0UHJvcHMgJiBOU0NUYWJsZVByb3BzO1xyXG5leHBvcnQgeyBEbmRDb250ZXh0VHlwZSwgSUJvZHlSb3dQcm9wcyB9O1xyXG5cclxuY29uc3QgUmVzaXplYWJsZVRpdGxlID0gKHByb3BzOiBhbnkpID0+IHtcclxuICBjb25zdCB7IG9uUmVzaXplLCB3aWR0aCwgLi4ucmVzdFByb3BzIH0gPSBwcm9wcztcclxuICByZXR1cm4gKFxyXG4gICAgPFJlc2l6YWJsZVxyXG4gICAgICB3aWR0aD17d2lkdGggfHwgMTUwfVxyXG4gICAgICBoZWlnaHQ9ezB9XHJcbiAgICAgIG9uUmVzaXplPXtvblJlc2l6ZX1cclxuICAgICAgZHJhZ2dhYmxlT3B0cz17eyBlbmFibGVVc2VyU2VsZWN0SGFjazogZmFsc2UgfX1cclxuICAgID5cclxuICAgICAgPHRoIHsuLi5yZXN0UHJvcHN9IC8+XHJcbiAgICA8L1Jlc2l6YWJsZT5cclxuICApO1xyXG59O1xyXG5jbGFzcyBOU0NUYWJsZSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDxJTlNDVGFibGVQcm9wcywgYW55PiB7XHJcbiAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcclxuICAgIGRyYWdhYmxlOiBmYWxzZSxcclxuICAgIHNob3dUb3RhbDogdHJ1ZSxcclxuICAgIGZpbHRlckNvbHVtbjogdHJ1ZSxcclxuICAgIGRyYWdVcmw6IFwiXCIsXHJcbiAgICBhdXRvUGFnaW5hdGlvbjogdHJ1ZSxcclxuICAgIGF1dG9Tb3J0OiB0cnVlLFxyXG4gICAgYXV0b09uQ2hhbmdlOiB0cnVlLFxyXG4gICAgcmVzaXplQ29sdW1uOiB0cnVlLFxyXG4gICAgdG9vbGJhcjoge1xyXG4gICAgICBzaG93OiB0cnVlLFxyXG4gICAgICBvblRvb2xDbGljazoge30gYXMgYW55LFxyXG4gICAgfSBhcyBhbnksXHJcbiAgfTtcclxuXHJcbiAgc3RvcmUgPSB7fSBhcyBTdG9yZVByb3BzO1xyXG4gIHRoSWNvblJlZiA9IFJlYWN0LmNyZWF0ZVJlZjxIVE1MRGl2RWxlbWVudD4oKTtcclxuICB0YWJsZVNlYXJjaFJlZiA9IFJlYWN0LmNyZWF0ZVJlZjxhbnk+KCk7XHJcblxyXG4gIGxpc3RlbmVycyA9IHtcclxuICAgIG9uQmVmb3JlTG9hZDogbnVsbCxcclxuICAgIGxvYWQ6IG51bGwsXHJcbiAgfTtcclxuXHJcbiAgY29tcG9uZW50cyA9IHtcclxuICAgIGhlYWRlcjoge1xyXG4gICAgICBjZWxsOiBSZXNpemVhYmxlVGl0bGUsXHJcbiAgICB9LFxyXG4gIH07XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XHJcbiAgICBzdXBlcihwcm9wcyk7XHJcbiAgICBsZXQgbW9kYWwgPSBwcm9wcy50eXBlIHx8IFwiYXV0b1wiO1xyXG4gICAgbGV0IHN0b3JlUHJlZml4ID0gZ2V0U3RvcmFnZShcInN0b3JlLXByZS1rZXlcIik7XHJcbiAgICBsZXQgYXV0b1R5cGUgPSBnZXRTdG9yYWdlKFxyXG4gICAgICBzdG9yZVByZWZpeCA/IHN0b3JlUHJlZml4ICsgXCJ0YWJsZVNpemVcIiA6IFwidGFibGVTaXplXCJcclxuICAgICk7XHJcbiAgICBhdXRvVHlwZSA9IGF1dG9UeXBlPy5jb250ZW50O1xyXG4gICAgdGhpcy5zdGF0ZSA9IHtcclxuICAgICAgZGF0YVNvdXJjZTogW10sXHJcbiAgICAgIGNvbHVtbnM6IFtdLFxyXG4gICAgICBsb2FkaW5nOiBmYWxzZSxcclxuICAgICAgcGFnaW5hdGlvbjoge30sXHJcbiAgICAgIGFjdGl2ZUluZGV4OiAtMSxcclxuICAgICAgLy/mkJzntKLmlofmnKxcclxuICAgICAgc2VhcmNoVGV4dDogbnVsbCxcclxuICAgICAgZmllbGRPcHRpb246IG51bGwsXHJcbiAgICAgIHNlYXJjaENvbG9yOiBudWxsLFxyXG4gICAgICBjb2xzOiBbXSxcclxuICAgICAgc29ydHM6IFtdLFxyXG4gICAgICBmaWx0ZXJQYXJhbXM6IHt9LFxyXG4gICAgICB0YWJsZVNpemU6IHRoaXMucHJvcHMuc2l6ZSB8fCBhdXRvVHlwZSB8fCBcImRlZmF1bHRcIixcclxuICAgICAgc29ydFR5cGU6IFwic2luZ2xlXCIsXHJcbiAgICAgIHNvcnRlcjogW10sIC8v6K6w5b2V5b2T5YmN5o6S5bqP5a2X5q61XHJcbiAgICAgIHNvcnRJbmZvOiB7fSxcclxuICAgICAgZGVmYXVsdFNvcnQ6IHRydWUsXHJcbiAgICAgIGNoZWNrQ29sdW1uOiBbXSxcclxuICAgICAgZGVmYXVsdENoZWNrOiB0cnVlLFxyXG4gICAgfTtcclxuICAgIGlmIChwcm9wcy5zdG9yZSBpbnN0YW5jZW9mIFN0b3JlKSB7XHJcbiAgICAgIHRoaXMuc3RvcmUgPSBwcm9wcy5zdG9yZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IHsgbGlzdGVuZXJzOiBsaXN0ZW5lcnNQcm9wcyA9IHt9LCAuLi5yZXN0U3RvcmUgfSA9XHJcbiAgICAgICAgcHJvcHMuc3RvcmUgfHwge307XHJcbiAgICAgIGNvbnN0IHN0b3JlUHJvcHMgPSB7XHJcbiAgICAgICAgbW9kZWw6IFwibW9kZWxcIixcclxuICAgICAgICBjb21wb25lbnQ6IHRoaXMsXHJcbiAgICAgICAgbGlzdGVuZXJzOiB7XHJcbiAgICAgICAgICBvbkJlZm9yZUxvYWQ6IChzdG9yZSwgb3B0aW9ucykgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgbG9hZGluZzogdHJ1ZSB9KTtcclxuICAgICAgICAgICAgdXRpbHMuY2FsbGJhY2sobGlzdGVuZXJzUHJvcHMub25CZWZvcmVMb2FkLCB0aGlzLCBbc3RvcmUsIG9wdGlvbnNdKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBkYXRhQ2hhbmdlZDogKGRhdGEsIG1vZGVsRGF0YSwgc3RvcmUpID0+IHtcclxuICAgICAgICAgICAgbGV0IHBhZ2luZyA9ICEodGhpcy5wcm9wcy5wYWdpbmF0aW9uID09PSBmYWxzZSk7XHJcbiAgICAgICAgICAgIGlmIChwYWdpbmcgJiYgIXRoaXMucHJvcHMuZGF0YVNvdXJjZSkge1xyXG4gICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgICAgZGF0YVNvdXJjZTogbW9kZWxEYXRhLFxyXG4gICAgICAgICAgICAgICAgcGFnaW5hdGlvbjogc3RvcmUuZ2V0UGFnaW5hdGlvbigpLFxyXG4gICAgICAgICAgICAgICAgbG9hZGluZzogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICBhY3RpdmVJbmRleDogLTEsXHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGRhdGFTb3VyY2U6IG1vZGVsRGF0YSwgbG9hZGluZzogZmFsc2UgfSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHV0aWxzLmNhbGxiYWNrKGxpc3RlbmVyc1Byb3BzLmRhdGFDaGFuZ2VkLCB0aGlzLCBbXHJcbiAgICAgICAgICAgICAgZGF0YSxcclxuICAgICAgICAgICAgICBtb2RlbERhdGEsXHJcbiAgICAgICAgICAgICAgc3RvcmUsXHJcbiAgICAgICAgICAgICAgcGFnaW5nLFxyXG4gICAgICAgICAgICBdKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBsb2FkOiAoZGF0YSwgbW9kZWxEYXRhLCBzdG9yZSkgPT4ge1xyXG4gICAgICAgICAgICB1dGlscy5jYWxsYmFjayhsaXN0ZW5lcnNQcm9wcy5sb2FkLCB0aGlzLCBbZGF0YSwgbW9kZWxEYXRhLCBzdG9yZV0pO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIG9uRXJyb3JMb2FkOiAoZXJyLCByZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgbG9hZGluZzogZmFsc2UgfSk7XHJcbiAgICAgICAgICAgIHV0aWxzLmNhbGxiYWNrKGxpc3RlbmVyc1Byb3BzLm9uRXJyb3JMb2FkLCB0aGlzLCBbZXJyLCByZXNwb25zZV0pO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIGRhdGE6IHJlc3RTdG9yZS5kYXRhXHJcbiAgICAgICAgICA/IHJlc3RTdG9yZS5kYXRhXHJcbiAgICAgICAgICA6IHByb3BzLmRhdGFTb3VyY2VcclxuICAgICAgICAgID8gcHJvcHMuZGF0YVNvdXJjZVxyXG4gICAgICAgICAgOiBudWxsLFxyXG4gICAgICAgIC4uLnJlc3RTdG9yZSxcclxuICAgICAgICBhdXRvTG9hZDogcmVzdFN0b3JlLmF1dG9Mb2FkID09PSBmYWxzZSA/IGZhbHNlIDogdHJ1ZSxcclxuICAgICAgfTtcclxuICAgICAgdGhpcy5zdG9yZSA9IG5ldyBQYWdlU3RvcmUoXHJcbiAgICAgICAgT2JqZWN0LmFzc2lnbih7fSwgc3RvcmVQcm9wcywge1xyXG4gICAgICAgICAgcGFnaW5hdGlvbjogeyBjdXJyZW50OiAxLCAuLi50aGlzLnByb3BzLnBhZ2luYXRpb24gfSxcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlUmVzaXplID1cclxuICAgIChpbmRleDogYW55KSA9PlxyXG4gICAgKGU6IGFueSwgeyBzaXplIH06IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCB7IGNvbHMgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICAgIGNvbnN0IG5leHRDb2x1bW5zID0gWy4uLmNvbHNdO1xyXG4gICAgICBuZXh0Q29sdW1uc1tpbmRleF0gPSB7XHJcbiAgICAgICAgLi4ubmV4dENvbHVtbnNbaW5kZXhdLFxyXG4gICAgICAgIHdpZHRoOiBzaXplLndpZHRoLFxyXG4gICAgICB9O1xyXG4gICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICBjb2xzOiBuZXh0Q29sdW1ucyxcclxuICAgICAgfSk7XHJcbiAgICB9O1xyXG5cclxuICBjb21wb25lbnREaWRNb3VudCgpIHtcclxuICAgIGNvbnN0IHsgcmVzaXplQ29sdW1uIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgaWYgKCFyZXNpemVDb2x1bW4pIHtcclxuICAgICAgdGhpcy5zZXRTdGF0ZSh7IGNvbHVtbnM6IFsuLi50aGlzLnByb3BzLmNvbHVtbnNdIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZXRTdGF0ZSh7IGNvbHM6IFsuLi50aGlzLnByb3BzLmNvbHVtbnNdIH0pO1xyXG4gICAgfVxyXG4gICAgY29uc3Qgc3RvcmUgPSB0aGlzLnByb3BzLnN0b3JlO1xyXG4gICAgaWYgKHN0b3JlICYmIHN0b3JlLmRhdGEpIHtcclxuICAgICAgdGhpcy5zdG9yZS5zZXREYXRhKHN0b3JlLmRhdGEpO1xyXG4gICAgfVxyXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIsIHRoaXMubGlzdGVuTWVzc2FnZSk7XHJcbiAgfVxyXG4gIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xyXG4gICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIsIHRoaXMubGlzdGVuTWVzc2FnZSk7XHJcbiAgfVxyXG4gIGxpc3Rlbk1lc3NhZ2UgPSAoZXYpID0+IHtcclxuICAgIGNvbnN0IGRhdGEgPSB0eXBlb2YgZXYuZGF0YSA9PT0gXCJzdHJpbmdcIiA/IEpTT04ucGFyc2UoZXYuZGF0YSkgOiBldi5kYXRhO1xyXG4gICAgbGV0IF90aGlzID0gdGhpcztcclxuICAgIGlmIChkYXRhLmV2ZW50VHlwZSA9PSBcImNoYW5nZVRhYmxlU2l6ZVwiKSB7XHJcbiAgICAgIGNvbnN0IHsgcGF5bG9hZCB9ID0gZGF0YTtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIHBheWxvYWQuc2l6ZSA9PSBcImRlZmF1bHRcIiB8fFxyXG4gICAgICAgIHBheWxvYWQuc2l6ZSA9PSBcInNtYWxsXCIgfHxcclxuICAgICAgICBwYXlsb2FkLnNpemUgPT0gXCJtaWRkbGVcIlxyXG4gICAgICApIHtcclxuICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7IHRhYmxlU2l6ZTogcGF5bG9hZC5zaXplIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfTtcclxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzLCBwcmVTdGF0ZSkge1xyXG4gICAgY29uc3QgeyByZXNpemVDb2x1bW4gfSA9IHRoaXMucHJvcHM7XHJcbiAgICBpZiAoIXJlc2l6ZUNvbHVtbikge1xyXG4gICAgICBpZiAodGhpcy5wcm9wcy5jb2x1bW5zICE9PSBwcmV2UHJvcHMuY29sdW1ucykge1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyBjb2x1bW5zOiB0aGlzLnByb3BzLmNvbHVtbnMgfSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChwcmVTdGF0ZS5jb2xzICE9PSB0aGlzLnN0YXRlLmNvbHMpIHtcclxuICAgICAgICB0aGlzLnJlc2V0Q29sdW1uKCk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHByZXZQcm9wcy5zaXplICE9PSB0aGlzLnByb3BzLnNpemUpIHtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHsgdGFibGVTaXplOiB0aGlzLnByb3BzLnNpemUgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlc2V0Q29sdW1uKCkge1xyXG4gICAgY29uc3QgeyBjb2xzIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3QgbmV3Q29sczogYW55ID0gW107XHJcbiAgICBsZXQgY29sc3MgPSBjb2xzIHx8IFtdO1xyXG4gICAgY29sc3MubWFwKChjb2w6IGFueSwgaW5kZXg6IGFueSkgPT4ge1xyXG4gICAgICBsZXQgdGVtcCA9IHtcclxuICAgICAgICAuLi5jb2wsXHJcbiAgICAgICAgb25IZWFkZXJDZWxsOiAoY29sdW1uOiB7IHdpZHRoOiBhbnkgfSkgPT4gKHtcclxuICAgICAgICAgIHdpZHRoOiBjb2x1bW4ud2lkdGgsXHJcbiAgICAgICAgICBvblJlc2l6ZTogdGhpcy5oYW5kbGVSZXNpemUoaW5kZXgpLFxyXG4gICAgICAgIH0pLFxyXG4gICAgICB9O1xyXG4gICAgICBuZXdDb2xzLnB1c2godGVtcCk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBjb2x1bW5zOiBuZXdDb2xzLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDmuIXpmaTpgInkuK3popzoibJcclxuICAgKi9cclxuICBjbGVhclNlbGVjdENvbG9yKCkge1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7IGFjdGl2ZUluZGV4OiAtMSB9KTtcclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH1cclxuXHJcbiAgZ2V0UGFnaW5hdGlvbkJ5U3RvcmUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5nZXRQYWdpbmF0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBvbkNoYW5nZShwYWdpbmF0aW9uLCBmaWx0ZXJzLCBzb3J0ZXIsIGV4dHJhKSB7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIGF1dG9PbkNoYW5nZSA9IHRydWUsXHJcbiAgICAgIGF1dG9Tb3J0LFxyXG4gICAgICBhdXRvUGFnaW5hdGlvbixcclxuICAgICAgb25DaGFuZ2UsXHJcbiAgICB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHsgZmlsdGVyUGFyYW1zIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3QgaXNNdWx0aXBsZSA9IEFycmF5LmlzQXJyYXkoc29ydGVyKTtcclxuICAgIGlmIChhdXRvT25DaGFuZ2UgPT09IGZhbHNlKSB7XHJcbiAgICAgIG9uQ2hhbmdlICYmIG9uQ2hhbmdlKHBhZ2luYXRpb24sIGZpbHRlcnMsIHNvcnRlciwgZXh0cmEpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCBoYW5kbGVQYWdpbmF0aW9uID0gKCkgPT4ge1xyXG4gICAgICBsZXQgcGFyYW1zID0ge30gYXMge1xyXG4gICAgICAgIHNpemU/OiBzdHJpbmc7XHJcbiAgICAgICAgcGFnZVNpemU/OiBzdHJpbmc7XHJcbiAgICAgICAgYXNjcz86IHN0cmluZztcclxuICAgICAgICBkZXNjcz86IHN0cmluZztcclxuICAgICAgICBbcHJvcE5hbWU6IHN0cmluZ106IHN0cmluZztcclxuICAgICAgfTtcclxuICAgICAgY29uc3QgcGFnaW5nID0gdGhpcy5nZXRQYWdpbmF0aW9uQnlTdG9yZSgpIHx8IHt9O1xyXG4gICAgICBpZiAoIWlzRW1wdHlPYmoocGFnaW5hdGlvbikpIHtcclxuICAgICAgICBjb25zdCBwID0ge1xyXG4gICAgICAgICAgW3BhZ2luZy5jdXJyZW50S2V5IHx8IFwiY3VycmVudFwiXTogcGFnaW5hdGlvbi5jdXJyZW50LFxyXG4gICAgICAgICAgW3BhZ2luZy5wYWdlU2l6ZUtleSB8fCBcInNpemVcIl06IHBhZ2luYXRpb24ucGFnZVNpemUsXHJcbiAgICAgICAgfTtcclxuICAgICAgICBPYmplY3QuYXNzaWduKHBhcmFtcywgcCk7XHJcbiAgICAgIH1cclxuICAgICAgbGV0IGFzY1BhcmFtcyA9IHRoaXMuZ2V0U29ydFBhcmFtKHNvcnRlciwgdHJ1ZSk7XHJcbiAgICAgIGlmIChpc011bHRpcGxlKSB7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IHNvcnRlciB9KTtcclxuICAgICAgfSBlbHNlIGlmICghaXNNdWx0aXBsZSAmJiAhaXNFbXB0eU9iaihzb3J0ZXIpKSB7XHJcbiAgICAgICAgc29ydGVyLmNvbHVtbiAmJlxyXG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IHNvcnRlcjogW3NvcnRlcl0sIGRlZmF1bHRTb3J0OiBmYWxzZSB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHsgc29ydGVyOiBbXSB9KTtcclxuICAgICAgfVxyXG4gICAgICBwYXJhbXMgPSB7IC4uLmZpbHRlclBhcmFtcywgLi4ucGFyYW1zLCAuLi5hc2NQYXJhbXMgfTtcclxuICAgICAgYXV0b1NvcnQgJiYgdGhpcy5zdG9yZS5yZWxvYWQoeyBwYXJhbXMgfSk7XHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IG9uQ2hhbmdlRm4gPSB0aGlzLnByb3BzLm9uQ2hhbmdlO1xyXG5cclxuICAgIGF1dG9QYWdpbmF0aW9uICYmIGhhbmRsZVBhZ2luYXRpb24oKTtcclxuICAgIC8vIOeUqOaIt+S8oOS6hm9uQ2hhbmdl5L+d55WZ55So5oi36Ieq5Li75aSE55CG6KGo5qC85Y+Y5YyW55qE5p2D5YqbXHJcbiAgICBpZiAob25DaGFuZ2VGbikge1xyXG4gICAgICB1dGlscy5jYWxsYmFjayhvbkNoYW5nZUZuLCB0aGlzLCBbcGFnaW5hdGlvbiwgZmlsdGVycywgc29ydGVyLCBleHRyYV0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0U3RvcmUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9yZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOiOt+WPluaVsOaNruaooeWei+WvueixoVxyXG4gICAqL1xyXG4gIGdldE1vZGVsKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuZ2V0TW9kZWwoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOiPnOWNleaQnOe0oui/h+a7pOaYvuekulxyXG4gICAqIEBwYXJhbSB7U3RyaW5nfSB2YWxcclxuICAgKi9cclxuICBoYW5kbGVTZWFyY2godmFsLCBmaWVsZE9wdGlvbiwgc2VhcmNoQ29sb3IpIHtcclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBzZWFyY2hUZXh0OiB2YWwsXHJcbiAgICAgIGZpZWxkT3B0aW9uOiBmaWVsZE9wdGlvbixcclxuICAgICAgc2VhcmNoQ29sb3I6IHNlYXJjaENvbG9yLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDmqKHlnZfliJfooajnp7vliqjmjpLluo9cclxuICAgKi9cclxuICBtb3ZlUm93ID0gKGRyYWdJbmRleCwgaG92ZXJJbmRleCwgZHJhZywgdGFyZ2V0KSA9PiB7XHJcbiAgICBjb25zdCBfdGhpcyA9IHRoaXM7XHJcbiAgICBsZXQgZHJhZ05vZGUgPSBkcmFnLnJlY29yZDtcclxuICAgIGxldCB0YXJnZXROb2RlID0gdGFyZ2V0LnJlY29yZDtcclxuICAgIGRyYWdOb2RlLm1vdmVBcnJheShkcmFnTm9kZSwgdGFyZ2V0Tm9kZSk7XHJcbiAgICBsZXQgaWRzID0gZHJhZ05vZGUucGFyZW50Tm9kZS5nZXRDaGlsZE5vZGVJZHMoKTtcclxuICAgIGxldCBwYXJhbXMgPSB7XHJcbiAgICAgIGlkOiBkcmFnTm9kZS5pZCxcclxuICAgICAgcGFyZW50SWQ6IGRyYWdOb2RlLmF0dHJpYnV0ZS5wYXJlbnRJZCxcclxuICAgICAgaWRzOiBpZHMsXHJcbiAgICB9O1xyXG5cclxuICAgIGlmICh0aGlzLnByb3BzLm1vdmVSb3cpIHtcclxuICAgICAgdGhpcy5wcm9wcy5tb3ZlUm93KHBhcmFtcyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnN0b3JlLnJlbG9hZCgpO1xyXG4gICAgfVxyXG4gIH07XHJcblxyXG4gIGZpbHRlckNvbHVtbihjaGVja2VkVmFsdWUpIHtcclxuICAgIGlmIChjaGVja2VkVmFsdWUubGVuZ3RoID09IDApIHtcclxuICAgICAgbWVzc2FnZS53YXJuaW5nKFwi6Iez5bCR5pi+56S65LiA5YiX77yBXCIpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCBmaWx0ZXJDb2x1bW5zID0gdGhpcy5wcm9wcy5jb2x1bW5zLm1hcCgoY29sOiBDb2x1bW5UeXBlPHt9PikgPT4ge1xyXG4gICAgICBjb25zdCBuZXdDb2wgPSB7IC4uLmNvbCB9IGFzIENvbHVtblR5cGU8e30+ICYgeyBpbml0U2hvdzogYm9vbGVhbiB9O1xyXG4gICAgICBpZiAoY2hlY2tlZFZhbHVlLmluY2x1ZGVzKGNvbC5kYXRhSW5kZXgpKSB7XHJcbiAgICAgICAgbmV3Q29sLmluaXRTaG93ID0gdHJ1ZTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBuZXdDb2wuaW5pdFNob3cgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gbmV3Q29sO1xyXG4gICAgfSk7XHJcbiAgICBjb25zdCB7IHJlc2l6ZUNvbHVtbiB9ID0gdGhpcy5wcm9wcztcclxuICAgIGlmICghcmVzaXplQ29sdW1uKSB7XHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgIGNvbHVtbnM6IGZpbHRlckNvbHVtbnMsXHJcbiAgICAgICAgY2hlY2tDb2x1bW46IGNoZWNrZWRWYWx1ZSxcclxuICAgICAgICBkZWZhdWx0Q2hlY2s6IGZhbHNlLFxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgIGNvbHM6IGZpbHRlckNvbHVtbnMsXHJcbiAgICAgICAgY2hlY2tDb2x1bW46IGNoZWNrZWRWYWx1ZSxcclxuICAgICAgICBkZWZhdWx0Q2hlY2s6IGZhbHNlLFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbiAgZ2V0U29ydFBhcmFtKHNvcnRlciwgc29ydFN0YXRlID0gZmFsc2UpIHtcclxuICAgIGNvbnN0IGlzTXVsdGlwbGUgPSBBcnJheS5pc0FycmF5KHNvcnRlcik7XHJcbiAgICBsZXQgc29ydEluZm8gPSB7fTtcclxuICAgIGxldCBvcmRlckl0ZW1zID0gW107XHJcbiAgICBpZiAoIWlzRW1wdHlPYmooc29ydGVyKSAmJiAhaXNNdWx0aXBsZSkge1xyXG4gICAgICBvcmRlckl0ZW1zID0gW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIGNvbHVtbjogc29ydGVyLmNvbHVtbi5maWVsZCB8fCBzb3J0ZXIuY29sdW1uLmRhdGFJbmRleCxcclxuICAgICAgICAgIGFzYzogc29ydGVyLm9yZGVyID09IFwiYXNjZW5kXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgXTtcclxuICAgICAgaWYgKHNvcnRlci5jb2x1bW4pIHNvcnRJbmZvW3NvcnRlci5jb2x1bW4uZGF0YUluZGV4XSA9IHNvcnRlci5vcmRlcjtcclxuICAgIH0gZWxzZSBpZiAoaXNNdWx0aXBsZSkge1xyXG4gICAgICBzb3J0ZXIuZm9yRWFjaCgodikgPT4ge1xyXG4gICAgICAgIHNvcnRJbmZvW3YuY29sdW1uLmRhdGFJbmRleF0gPSB2Lm9yZGVyO1xyXG4gICAgICAgIGxldCBmaWVsZCA9IHYuY29sdW1uLmZpZWxkIHx8IHYuY29sdW1uLmRhdGFJbmRleDtcclxuICAgICAgICBvcmRlckl0ZW1zLnB1c2goe1xyXG4gICAgICAgICAgY29sdW1uOiBmaWVsZCxcclxuICAgICAgICAgIGFzYzogdi5vcmRlciA9PSBcImFzY2VuZFwiLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGlmIChzb3J0U3RhdGUpIHtcclxuICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgc29ydEluZm86IHNvcnRJbmZvLFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHJldHVybiB7IG9yZGVySXRlbXM6IEpTT04uc3RyaW5naWZ5KG9yZGVySXRlbXMpIH07XHJcbiAgfVxyXG4gIGdldENvbHVtbnMoKSB7XHJcbiAgICBjb25zdCB7IGNvbHVtbnMsIHNvcnRUeXBlLCBzb3J0SW5mbyB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGNvbnN0IHsgc29ydEZpZWxkcyA9IFtdIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgZGVmYXVsdFNob3dDb2xzID0gY29sdW1ucy5maWx0ZXIoKGNvbHMpID0+IGNvbHMuaW5pdFNob3cgIT09IGZhbHNlKTtcclxuICAgIGNvbnN0IGNvbHMgPSBkZWZhdWx0U2hvd0NvbHMubWFwKChjb2wsIGluZGV4KSA9PiB7XHJcbiAgICAgIGlmIChjb2wuZWxsaXBzaXMgJiYgIWNvbC5yZW5kZXIpIHtcclxuICAgICAgICBjb2wuZWxsaXBzaXMgPSB7XHJcbiAgICAgICAgICBzaG93VGl0bGU6IGZhbHNlLFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgY29sLnJlbmRlciA9ICh0ZXh0KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICA8VG9vbHRpcCBwbGFjZW1lbnQ9XCJ0b3BMZWZ0XCIgdGl0bGU9e3RleHR9PlxyXG4gICAgICAgICAgICAgIHt0ZXh0fVxyXG4gICAgICAgICAgICA8L1Rvb2x0aXA+XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChzb3J0RmllbGRzLmluZGV4T2YoY29sLmRhdGFJbmRleCkgPiAtMSkge1xyXG4gICAgICAgIGlmIChzb3J0VHlwZSA9PSBcInNpbmdsZVwiKSB7XHJcbiAgICAgICAgICBjb2wuc29ydGVyID0gdHJ1ZTtcclxuICAgICAgICAgIGNvbC5zb3J0T3JkZXIgPSBzb3J0SW5mb1tjb2wuZGF0YUluZGV4XVxyXG4gICAgICAgICAgICA/IHNvcnRJbmZvW2NvbC5kYXRhSW5kZXhdXHJcbiAgICAgICAgICAgIDogbnVsbDtcclxuICAgICAgICB9IGVsc2UgaWYgKHNvcnRUeXBlID09IFwibXVsdGlwbGVcIikge1xyXG4gICAgICAgICAgY29sLnNvcnRlciA9IHsgbXVsdGlwbGU6IGluZGV4IH07XHJcbiAgICAgICAgICBjb2wuc29ydE9yZGVyID0gc29ydEluZm9bY29sLmRhdGFJbmRleF1cclxuICAgICAgICAgICAgPyBzb3J0SW5mb1tjb2wuZGF0YUluZGV4XVxyXG4gICAgICAgICAgICA6IG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBjb2w7XHJcbiAgICB9KTtcclxuICAgIGNvbHMubWFwKChpdGVtLCBpbmRleCkgPT4ge1xyXG4gICAgICBpZiAoIWlzRW1wdHlPYmooaXRlbS5maWx0ZXJQcm9wcykpIHtcclxuICAgICAgICBsZXQgb2JqID0geyAuLi5pdGVtIH07XHJcbiAgICAgICAgY29uc3QgeyB0eXBlLCBwcm9wcywgc2VhcmNoS2V5IH0gPSBpdGVtLmZpbHRlclByb3BzO1xyXG4gICAgICAgIGxldCBEaXYgPSBudWxsO1xyXG4gICAgICAgIGxldCB0ZXh0ID0gaXRlbS50aXRsZTtcclxuICAgICAgICBEaXYgPSBnZXROb2RlKHR5cGUsIHtcclxuICAgICAgICAgIHBsYWNlaG9sZGVyOiBg5pCc57SiJHt0ZXh0fWAsXHJcbiAgICAgICAgICAuLi5wcm9wcyxcclxuICAgICAgICAgIHJlZjogdGhpcy50YWJsZVNlYXJjaFJlZixcclxuICAgICAgICB9KTtcclxuICAgICAgICBvYmogPSB7XHJcbiAgICAgICAgICBmaWx0ZXJEcm9wZG93bjogKHtcclxuICAgICAgICAgICAgc2V0U2VsZWN0ZWRLZXlzLFxyXG4gICAgICAgICAgICBzZWxlY3RlZEtleXMsXHJcbiAgICAgICAgICAgIGNvbmZpcm0sXHJcbiAgICAgICAgICAgIGNsZWFyRmlsdGVycyxcclxuICAgICAgICAgIH0pID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwic2VhcmNoXCIpfT5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJzcGFjZVwiKX0+e0Rpdn08L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxTcGFjZT5cclxuICAgICAgICAgICAgICAgICAgPEJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJwcmltYXJ5XCJcclxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBjb25maXJtKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICBjb25zdCB7IGZpbHRlclBhcmFtcyB9ID0gdGhpcy5zdGF0ZTtcclxuICAgICAgICAgICAgICAgICAgICAgIGxldCBuZXdGaWx0ZXJQYXJhbXMgPSB7IC4uLmZpbHRlclBhcmFtcyB9O1xyXG4gICAgICAgICAgICAgICAgICAgICAgbGV0IGtleSA9IGl0ZW0uZmllbGQgfHwgaXRlbS5kYXRhSW5kZXg7XHJcbiAgICAgICAgICAgICAgICAgICAgICBuZXdGaWx0ZXJQYXJhbXNba2V5XSA9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudGFibGVTZWFyY2hSZWYuY3VycmVudD8uZ2V0VmFsdWUoKTtcclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJQYXJhbXM6IHsgLi4ubmV3RmlsdGVyUGFyYW1zIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNvcnRQYXJhbSA9IHRoaXMuZ2V0U29ydFBhcmFtKHRoaXMuc3RhdGUuc29ydGVyKTtcclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RvcmUubG9hZCh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtczogeyAuLi5uZXdGaWx0ZXJQYXJhbXMsIC4uLnNvcnRQYXJhbSB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiYnV0dG9uXCIpfVxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAg5p+l6K+iXHJcbiAgICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9TcGFjZT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBmaWx0ZXJJY29uOiAoKSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiA8U2VhcmNoT3V0bGluZWQgLz47XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgLi4ub2JqLFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgY29sc1tpbmRleF0gPSBvYmo7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGNvbHM7XHJcbiAgfVxyXG4gIHJlbmRlclRvb2xCYXIoKSB7XHJcbiAgICBsZXQgeyB0YWJsZVNpemUsIGNvbHVtbnMsIHNvcnRUeXBlIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgbGV0IHsgZmlsdGVyQ29sdW1uLCBjb2x1bW5zOiBjb2xMaXN0cywgdG9vbGJhciB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHsgdGFibGVUb29sIH0gPSBjb25maWcoKTtcclxuICAgIGxldCB0b29scyA9IFtcInJlZnJlc2hcIiwgXCJzaXplXCIsIFwic29ydFwiLCBcImNvbHVtblwiXTtcclxuICAgIGxldCB0b29sc0NsaWNrID0ge30gYXMgYW55O1xyXG4gICAgaWYgKHRvb2xiYXIgPT0gdHJ1ZSkge1xyXG4gICAgICB0b29scyA9IHRvb2xiYXIub25Ub29sQ2xpY2tcclxuICAgICAgICA/IHRvb2xiYXIub25Ub29sQ2xpY2tcclxuICAgICAgICA6IFtcInJlZnJlc2hcIiwgXCJzaXplXCIsIFwic29ydFwiLCBcImNvbHVtblwiXTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRvb2xzID0gdG9vbGJhci50b29sc1xyXG4gICAgICAgID8gdG9vbGJhci50b29sc1xyXG4gICAgICAgIDogdGFibGVUb29sLnRvb2xzXHJcbiAgICAgICAgPyB0YWJsZVRvb2wudG9vbHNcclxuICAgICAgICA6IHRvb2xzO1xyXG4gICAgICB0b29sc0NsaWNrID0gdG9vbGJhci5vblRvb2xDbGljayA/IHRvb2xiYXIub25Ub29sQ2xpY2sgOiB7fTtcclxuICAgIH1cclxuICAgIGNvbnN0IHNpemVJdGVtID0gW1xyXG4gICAgICB7IHRpdGxlOiBcIuWuveadvlwiLCBrZXk6IFwiZGVmYXVsdFwiIH0sXHJcbiAgICAgIHsgdGl0bGU6IFwi5Lit562JXCIsIGtleTogXCJtaWRkbGVcIiB9LFxyXG4gICAgICB7IHRpdGxlOiBcIue0p+WHkVwiLCBrZXk6IFwic21hbGxcIiB9LFxyXG4gICAgXTtcclxuICAgIGNvbnN0IHNvcnRJdGVtID0gW1xyXG4gICAgICB7IHRpdGxlOiBcIuWNleWtl+auteaOkuW6j1wiLCBrZXk6IFwic2luZ2xlXCIgfSxcclxuICAgICAgeyB0aXRsZTogXCLlpJrlrZfmrrXmjpLluo9cIiwga2V5OiBcIm11bHRpcGxlXCIgfSxcclxuICAgIF07XHJcbiAgICBjb25zdCBzb3J0Q29udGVudCA9IChcclxuICAgICAgPD5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImNvdGVudC10aXRsZVwiKX1cclxuICAgICAgICAgIHN0eWxlPXt7XHJcbiAgICAgICAgICAgIGN1cnNvcjogdGhpcy5zdGF0ZS5kZWZhdWx0U29ydCA/IFwibm90LWFsbG93ZWRcIiA6IFwicG9pbnRlclwiLFxyXG4gICAgICAgICAgICBjb2xvcjogdGhpcy5zdGF0ZS5kZWZhdWx0U29ydCAmJiBcInJnYmEoMCwwLDAsLjQ1KVwiLFxyXG4gICAgICAgICAgfX1cclxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuc3RhdGUuZGVmYXVsdFNvcnQpIHtcclxuICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IHNvcnRlcjogW10sIHNvcnRJbmZvOiB7fSwgZGVmYXVsdFNvcnQ6IHRydWUgfSk7XHJcbiAgICAgICAgICAgIGNvbnN0IHBhcmFtcyA9IHsgLi4udGhpcy5zdGF0ZS5maWx0ZXJQYXJhbXMgfTtcclxuICAgICAgICAgICAgdGhpcy5zdG9yZS5yZWxvYWQoeyBwYXJhbXMgfSk7XHJcbiAgICAgICAgICB9fVxyXG4gICAgICAgID5cclxuICAgICAgICAgIOaBouWkjem7mOiupOaOkuW6j1xyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIHtzb3J0SXRlbS5tYXAoKGl0ZW0sIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAga2V5PXtpdGVtLmtleX1cclxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgICAgICAgc29ydGVyOiBbXSxcclxuICAgICAgICAgICAgICAgICAgc29ydEluZm86IHt9LFxyXG4gICAgICAgICAgICAgICAgICBzb3J0VHlwZTogaXRlbS5rZXksXHJcbiAgICAgICAgICAgICAgICAgIGRlZmF1bHRTb3J0OiBmYWxzZSxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcGFyYW1zID0geyAuLi50aGlzLnN0YXRlLmZpbHRlclBhcmFtcyB9O1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zdG9yZS5yZWxvYWQoeyBwYXJhbXMgfSk7XHJcbiAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIHtzb3J0VHlwZSA9PSBpdGVtLmtleSA/IChcclxuICAgICAgICAgICAgICAgIDxhPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiY29udGVudC10aWVtXCIpfT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXt7IHdpZHRoOiAyMCB9fT5cclxuICAgICAgICAgICAgICAgICAgICAgIHtzb3J0VHlwZSA9PSBpdGVtLmtleSAmJiA8Q2hlY2tPdXRsaW5lZCAvPn1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2PiB7aXRlbS50aXRsZX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJjb250ZW50LXRpZW1cIil9PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXt7IHdpZHRoOiAyMCB9fT48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdj4ge2l0ZW0udGl0bGV9PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfSl9XHJcbiAgICAgICAge3RoaXMuc3RhdGUuc29ydGVyLmxlbmd0aCA+IDAgJiYgKFxyXG4gICAgICAgICAgPD5cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiY290ZW50LXRpdGxlXCIpfVxyXG4gICAgICAgICAgICAgIHN0eWxlPXt7IGNvbG9yOiBcInJnYmEoMCwwLDAsLjQ1KVwiIH19XHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICDlvZPliY3mjpLluo9cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIHt0aGlzLnN0YXRlLnNvcnRlci5tYXAoKGl0ZW0sIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJjb250ZW50LXRpZW1cIil9IGtleT17aW5kZXh9PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXt7IHdpZHRoOiAyMCB9fT5cclxuICAgICAgICAgICAgICAgICAgICB7aXRlbS5vcmRlciA9PSBcImFzY2VuZFwiID8gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgPFNvcnRBc2NlbmRpbmdPdXRsaW5lZCAvPlxyXG4gICAgICAgICAgICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICA8U29ydERlc2NlbmRpbmdPdXRsaW5lZCAvPlxyXG4gICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2PiB7aXRlbS5jb2x1bW4udGl0bGV9PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9KX1cclxuICAgICAgICAgIDwvPlxyXG4gICAgICAgICl9XHJcbiAgICAgIDwvPlxyXG4gICAgKTtcclxuICAgIGNvbnN0IHNpemVDb250ZW50ID0gKFxyXG4gICAgICA8PlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJjb3RlbnQtdGl0bGVcIil9PuihqOagvOWvhuW6pjwvZGl2PlxyXG4gICAgICAgIHtzaXplSXRlbS5tYXAoKGl0ZW0sIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAga2V5PXtpdGVtLmtleX1cclxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgICAgICAgdGFibGVTaXplOiBpdGVtLmtleSxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICB7dGFibGVTaXplID09IGl0ZW0ua2V5ID8gKFxyXG4gICAgICAgICAgICAgICAgPGE+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJjb250ZW50LXRpZW1cIil9PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3sgd2lkdGg6IDIwIH19PlxyXG4gICAgICAgICAgICAgICAgICAgICAge3RhYmxlU2l6ZSA9PSBpdGVtLmtleSAmJiA8Q2hlY2tPdXRsaW5lZCAvPn1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2PiB7aXRlbS50aXRsZX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJjb250ZW50LXRpZW1cIil9PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXt7IHdpZHRoOiAyMCB9fT48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdj4ge2l0ZW0udGl0bGV9PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfSl9XHJcbiAgICAgIDwvPlxyXG4gICAgKTtcclxuXHJcbiAgICBjb25zdCBkZWZhdWx0U2hvd0NvbHMgPSBjb2x1bW5zLmZpbHRlcigoY29scykgPT4gY29scy5pbml0U2hvdyAhPT0gZmFsc2UpO1xyXG5cclxuICAgIGNvbnN0IGNvbnRlbnQgPSAoXHJcbiAgICAgIDxDaGVja2JveC5Hcm91cFxyXG4gICAgICAgIG9uQ2hhbmdlPXt0aGlzLmZpbHRlckNvbHVtbi5iaW5kKHRoaXMpfVxyXG4gICAgICAgIG9wdGlvbnM9e2NvbExpc3RzLm1hcChcclxuICAgICAgICAgIChjb2w6IENvbHVtblR5cGU8e30+ICYgeyBmaWx0ZXJDb2x1bW46IGJvb2xlYW47IGRhdGFJbmRleDogYW55IH0pID0+IHtcclxuICAgICAgICAgICAgaWYgKCFjb2wuZGF0YUluZGV4KSB7XHJcbiAgICAgICAgICAgICAgY29sLmRhdGFJbmRleCA9IGNvbC50aXRsZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgIGxhYmVsOiBjb2wudGl0bGUsXHJcbiAgICAgICAgICAgICAgdmFsdWU6IGNvbC5kYXRhSW5kZXgsXHJcbiAgICAgICAgICAgICAgZGlzYWJsZWQ6IGNvbC5maWx0ZXJDb2x1bW4gPT09IGZhbHNlLFxyXG4gICAgICAgICAgICB9IGFzIENoZWNrYm94T3B0aW9uVHlwZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICApfVxyXG4gICAgICAgIC8vIGRlZmF1bHRWYWx1ZT17ZGVmYXVsdFNob3dDb2xzLm1hcCgoY29sKSA9PiBjb2wuZGF0YUluZGV4KX1cclxuICAgICAgICB2YWx1ZT17XHJcbiAgICAgICAgICB0aGlzLnN0YXRlLmRlZmF1bHRDaGVja1xyXG4gICAgICAgICAgICA/IGRlZmF1bHRTaG93Q29scy5tYXAoKGNvbCkgPT4gY29sLmRhdGFJbmRleClcclxuICAgICAgICAgICAgOiB0aGlzLnN0YXRlLmNoZWNrQ29sdW1uXHJcbiAgICAgICAgfVxyXG4gICAgICA+PC9DaGVja2JveC5Hcm91cD5cclxuICAgICk7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwidGFibGUtdG9vbC1iYXJcIil9PlxyXG4gICAgICAgIHt0b29scy5pbmRleE9mKFwiY29sdW1uXCIpID4gLTEgJiYgKFxyXG4gICAgICAgICAgPGRpdiBzdHlsZT17eyBmb250U2l6ZTogMTQgfX0+XHJcbiAgICAgICAgICAgIDxQb3BvdmVyXHJcbiAgICAgICAgICAgICAgdGl0bGU9XCLpgInmi6nmmL7npLrnmoTliJdcIlxyXG4gICAgICAgICAgICAgIGNvbnRlbnQ9e2NvbnRlbnR9XHJcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tUmlnaHRcIlxyXG4gICAgICAgICAgICAgIHRyaWdnZXI9XCJjbGlja1wiXHJcbiAgICAgICAgICAgICAgb3ZlcmxheVN0eWxlPXt7IG1pbldpZHRoOiA0MTAsIG1heFdpZHRoOiA0NTAgfX1cclxuICAgICAgICAgICAgICAvLyBnZXRQb3B1cENvbnRhaW5lcj17KCkgPT4gdGhpcy50aEljb25SZWYuY3VycmVudH1cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxBcHBzdG9yZU91dGxpbmVkIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiYXBwLXN0b3JlLWljb25cIil9IC8+XHJcbiAgICAgICAgICAgIDwvUG9wb3Zlcj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICl9XHJcbiAgICAgICAge3Rvb2xzLmluZGV4T2YoXCJzb3J0XCIpID4gLTEgJiYgKFxyXG4gICAgICAgICAgPGRpdiBzdHlsZT17eyBtYXJnaW5SaWdodDogOCwgZm9udFNpemU6IDE0IH19PlxyXG4gICAgICAgICAgICA8UG9wb3ZlciBwbGFjZW1lbnQ9XCJib3R0b21cIiBjb250ZW50PXtzb3J0Q29udGVudH0gdHJpZ2dlcj1cImNsaWNrXCI+XHJcbiAgICAgICAgICAgICAgPFNvcnRBc2NlbmRpbmdPdXRsaW5lZCAvPlxyXG4gICAgICAgICAgICA8L1BvcG92ZXI+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICApfVxyXG4gICAgICAgIHt0b29scy5pbmRleE9mKFwic2l6ZVwiKSA+IC0xICYmIChcclxuICAgICAgICAgIDxkaXYgc3R5bGU9e3sgbWFyZ2luUmlnaHQ6IDgsIGZvbnRTaXplOiAxNCB9fT5cclxuICAgICAgICAgICAgPFBvcG92ZXIgcGxhY2VtZW50PVwiYm90dG9tXCIgY29udGVudD17c2l6ZUNvbnRlbnR9IHRyaWdnZXI9XCJjbGlja1wiPlxyXG4gICAgICAgICAgICAgIDxDb2x1bW5IZWlnaHRPdXRsaW5lZCAvPlxyXG4gICAgICAgICAgICA8L1BvcG92ZXI+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICApfVxyXG4gICAgICAgIHt0b29scy5pbmRleE9mKFwicmVmcmVzaFwiKSA+IC0xICYmIChcclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgc3R5bGU9e3sgbWFyZ2luUmlnaHQ6IDgsIGZvbnRTaXplOiAxNCwgY3Vyc29yOiBcInBvaW50ZXJcIiB9fVxyXG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgY29uc3QgcGFyYW1zID0geyAuLi50aGlzLnN0YXRlLmZpbHRlclBhcmFtcyB9O1xyXG4gICAgICAgICAgICAgIGlmICh0b29sc0NsaWNrLm9uUmVmcmVzaCkge1xyXG4gICAgICAgICAgICAgICAgdG9vbHNDbGljay5vblJlZnJlc2goKTtcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zdG9yZS5sb2FkKHsgcGFyYW1zIH0pO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfX1cclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPFJlZG9PdXRsaW5lZCAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgKX1cclxuICAgICAgPC9kaXY+XHJcbiAgICApO1xyXG4gIH1cclxuICByZW5kZXIoKSB7XHJcbiAgICBsZXQgX3RoaXMgPSB0aGlzLFxyXG4gICAgICB7XHJcbiAgICAgICAgbG9hZGluZyxcclxuICAgICAgICBkYXRhU291cmNlLFxyXG4gICAgICAgIHBhZ2luYXRpb24gPSB7fSxcclxuICAgICAgICBzZWFyY2hUZXh0LFxyXG4gICAgICAgIGZpZWxkT3B0aW9uLFxyXG4gICAgICAgIHNlYXJjaENvbG9yLFxyXG4gICAgICAgIHRhYmxlU2l6ZSxcclxuICAgICAgfSA9IHRoaXMuc3RhdGUsXHJcbiAgICAgIHByb3BzID0gdXRpbHMub21pdChcclxuICAgICAgICB0aGlzLnByb3BzLFxyXG4gICAgICAgIFtcclxuICAgICAgICAgIFwic3RvcmVcIixcclxuICAgICAgICAgIFwib25DaGFuZ2VcIixcclxuICAgICAgICAgIFwiY29sdW1uc1wiLFxyXG4gICAgICAgICAgXCJyZXNldENvbHVtblwiLFxyXG4gICAgICAgICAgXCJ0b29sYmFyXCIsXHJcbiAgICAgICAgICBcInNvcnRGaWVsZHNcIixcclxuICAgICAgICAgIFwiZmlsdGVyQ29sdW1uXCIsXHJcbiAgICAgICAgXSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICByb3dLZXk6IFwiaWRcIixcclxuICAgICAgICAgIGNsaWNrQ2hhbmdlQ29sb3I6IGZhbHNlLFxyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICAgIGlmIChwcm9wcy5wYWdpbmF0aW9uICE9PSBmYWxzZSkge1xyXG4gICAgICBwcm9wcy5wYWdpbmF0aW9uID0ge1xyXG4gICAgICAgIHBvc2l0aW9uOiBbXCJib3R0b21SaWdodFwiXSxcclxuICAgICAgICBzaG93U2l6ZUNoYW5nZXI6IHRydWUsXHJcbiAgICAgICAgc2hvd1F1aWNrSnVtcGVyOiB0cnVlLFxyXG4gICAgICAgIC4uLnByb3BzLnBhZ2luYXRpb24sXHJcbiAgICAgICAgLi4ucGFnaW5hdGlvbixcclxuICAgICAgfTtcclxuICAgICAgaWYgKHByb3BzLnNob3dUb3RhbCA9PSB0cnVlKSB7XHJcbiAgICAgICAgcHJvcHMucGFnaW5hdGlvbi5zaG93VG90YWwgPSBmdW5jdGlvbiAodG90YWwsIFtmcm9tLCB0b10pIHtcclxuICAgICAgICAgIC8vIHJldHVybiBcIuaYvuekuiBcIiArIGZyb20gKyBcIiAtIFwiICsgdG8gKyBcIuadoe+8jOWFsSBcIiArIHRvdGFsICsgXCIg5p2hXCI7XHJcbiAgICAgICAgICByZXR1cm4gXCLlhbEgXCIgKyB0b3RhbCArIFwiIOadoVwiO1xyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHByb3BzLm9uQ2hhbmdlID0gZnVuY3Rpb24gKHBhZ2luYXRpb24sIGZpbHRlcnMsIHNvcnRlciwgZXh0cmEpIHtcclxuICAgICAgX3RoaXMub25DaGFuZ2UocGFnaW5hdGlvbiwgZmlsdGVycywgc29ydGVyLCBleHRyYSk7XHJcbiAgICB9O1xyXG4gICAgaWYgKHByb3BzLmNsaWNrQ2hhbmdlQ29sb3IpIHtcclxuICAgICAgY29uc3Qgb25Sb3dGbiA9IHByb3BzLm9uUm93O1xyXG4gICAgICBwcm9wcy5vblJvdyA9IGZ1bmN0aW9uIChyZWNvcmQsIGluZGV4KSB7XHJcbiAgICAgICAgdmFyIGN1c3RvbSA9IG9uUm93Rm4gPyBvblJvd0ZuKHJlY29yZCwgaW5kZXgpIDoge307XHJcbiAgICAgICAgY29uc3Qgb25DbGlja0ZuID0gY3VzdG9tLm9uQ2xpY2s7XHJcbiAgICAgICAgY3VzdG9tLm9uQ2xpY2sgPSAoZXZlbnQpID0+IHtcclxuICAgICAgICAgIF90aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgYWN0aXZlSW5kZXg6IGluZGV4LCAvL+iOt+WPlueCueWHu+ihjOeahOe0ouW8lVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICB1dGlscy5jYWxsYmFjayhvbkNsaWNrRm4sIF90aGlzLCBbZXZlbnRdKTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIHJldHVybiBjdXN0b207XHJcbiAgICAgIH07XHJcbiAgICAgIHByb3BzLnJvd0NsYXNzTmFtZSA9IGZ1bmN0aW9uIChyZWNvcmQsIGluZGV4KSB7XHJcbiAgICAgICAgcmV0dXJuIGluZGV4ID09PSBfdGhpcy5zdGF0ZS5hY3RpdmVJbmRleFxyXG4gICAgICAgICAgPyBgJHtzdHlsZXMuY2xpY2tSb3dTdHlsZX1gXHJcbiAgICAgICAgICA6IFwiXCI7XHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBsZXQgbmV3RGF0YVNvdXJjZSA9IFtdO1xyXG4gICAgaWYgKHNlYXJjaFRleHQpIHtcclxuICAgICAgY29uc3QgZGF0YSA9IHRyZWVVdGlscy5nZXRTZWFyY2hNZW51RGF0YXMoXHJcbiAgICAgICAgdGhpcyxcclxuICAgICAgICBzZWFyY2hUZXh0LFxyXG4gICAgICAgIGZpZWxkT3B0aW9uLFxyXG4gICAgICAgIHNlYXJjaENvbG9yXHJcbiAgICAgICk7XHJcbiAgICAgIG5ld0RhdGFTb3VyY2UgPSBkYXRhLnRyZWVEYXRhcztcclxuICAgICAgcHJvcHMuZXhwYW5kZWRSb3dLZXlzID0gZGF0YS5vcGVuS2V5cztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIG5ld0RhdGFTb3VyY2UgPSBkYXRhU291cmNlO1xyXG4gICAgfVxyXG4gICAgcHJvcHMuc3RvcmUgPSBwcm9wcy5zdG9yZSB8fCB7fTtcclxuICAgIHByb3BzLnN0b3JlLmF1dG9Mb2FkID0gcHJvcHMuc3RvcmUuYXV0b0xvYWQgPT09IGZhbHNlID8gZmFsc2UgOiB0cnVlO1xyXG4gICAgY29uc3QgeyBkcmFnYWJsZSB9ID0gX3RoaXMucHJvcHM7XHJcbiAgICBjb25zdCBkcmFnYWJsZVByb3BzID1cclxuICAgICAgZHJhZ2FibGUgPT09IHRydWVcclxuICAgICAgICA/IHtcclxuICAgICAgICAgICAgY29tcG9uZW50czogQm9keVJvd0NvbXBvbmVudCxcclxuICAgICAgICAgICAgb25Sb3c6IChyZWNvcmQsIGluZGV4KSA9PiAoe1xyXG4gICAgICAgICAgICAgIGluZGV4LFxyXG4gICAgICAgICAgICAgIHJlY29yZCxcclxuICAgICAgICAgICAgICBtb3ZlUm93OiB0aGlzLm1vdmVSb3csXHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIDoge307XHJcbiAgICBsZXQgeyByZXNpemVDb2x1bW4gfSA9IHRoaXMucHJvcHM7XHJcblxyXG4gICAgY29uc3QgcmVzaXplUHJvcHMgPVxyXG4gICAgICByZXNpemVDb2x1bW4gPT09IHRydWUgPyB7IGNvbXBvbmVudHM6IHRoaXMuY29tcG9uZW50cyB9IDogbnVsbDtcclxuICAgIGNvbnN0IHsgdGFibGVUb29sIH0gPSBjb25maWcoKTtcclxuICAgIGxldCB0b29sRmxhZyA9IHRydWU7XHJcbiAgICBsZXQgdG9vbHByb3BzID1cclxuICAgICAgdGhpcy5wcm9wcy50b29sYmFyID09PSBmYWxzZSB8fCB0aGlzLnByb3BzLnRvb2xiYXI/LnNob3cgPT09IGZhbHNlXHJcbiAgICAgICAgPyBmYWxzZVxyXG4gICAgICAgIDogdHJ1ZTtcclxuICAgIGlmICghdG9vbHByb3BzKSB7XHJcbiAgICAgIHRvb2xGbGFnID0gdG9vbHByb3BzO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdG9vbEZsYWcgPSB0YWJsZVRvb2wuc2hvdyA9PT0gZmFsc2UgPyBmYWxzZSA6IHRydWU7XHJcbiAgICB9XHJcbiAgICBjb25zdCBEZWZhdWx0VGFibGUgPSAoXHJcbiAgICAgIDw+XHJcbiAgICAgICAge3Rvb2xGbGFnICYmIHRoaXMucmVuZGVyVG9vbEJhcigpfVxyXG4gICAgICAgIDxUYWJsZVxyXG4gICAgICAgICAgY2hpbGRyZW5Db2x1bW5OYW1lPVwiY2hpbGROb2Rlc1wiXHJcbiAgICAgICAgICBzaGVpdGVtXHJcbiAgICAgICAgICBkYXRhU291cmNlPXtuZXdEYXRhU291cmNlfVxyXG4gICAgICAgICAgY29sdW1ucz17dGhpcy5nZXRDb2x1bW5zKCl9XHJcbiAgICAgICAgICBsb2FkaW5nPXtsb2FkaW5nfVxyXG4gICAgICAgICAgY2xhc3NOYW1lPXtzdHlsZXNbXCJuc2MtdGFibGVcIl19XHJcbiAgICAgICAgICBsb2NhbGU9e3tcclxuICAgICAgICAgICAgZW1wdHlUZXh0OiA8Tm9EYXRhIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwidGFibGUtbm9kYXRhXCIpfSAvPixcclxuICAgICAgICAgIH19XHJcbiAgICAgICAgICBzY3JvbGw9e3sgeDogXCJtYXgtY29udGVudFwiIH19XHJcbiAgICAgICAgICB7Li4ucmVzaXplUHJvcHN9XHJcbiAgICAgICAgICB7Li4ucHJvcHN9XHJcbiAgICAgICAgICB7Li4uZHJhZ2FibGVQcm9wc31cclxuICAgICAgICAgIHNpemU9e3RhYmxlU2l6ZX1cclxuICAgICAgICAvPlxyXG4gICAgICA8Lz5cclxuICAgICk7XHJcblxyXG4gICAgcmV0dXJuIGRyYWdhYmxlID09PSB0cnVlID8gKFxyXG4gICAgICA8RG5kUHJvdmlkZXIgYmFja2VuZD17SFRNTDVCYWNrZW5kfT57RGVmYXVsdFRhYmxlfTwvRG5kUHJvdmlkZXI+XHJcbiAgICApIDogKFxyXG4gICAgICBEZWZhdWx0VGFibGVcclxuICAgICk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCB3aXRoWmhMb2NhbGUoTlNDVGFibGUpO1xyXG4iXX0=
1018
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2Jhc2UvdGFibGUvaW5kZXgudHN4Il0sIm5hbWVzIjpbIkFwcHN0b3JlT3V0bGluZWQiLCJDaGVja091dGxpbmVkIiwiQ29sdW1uSGVpZ2h0T3V0bGluZWQiLCJTZWFyY2hPdXRsaW5lZCIsIlNvcnRBc2NlbmRpbmdPdXRsaW5lZCIsIlNvcnREZXNjZW5kaW5nT3V0bGluZWQiLCJSZWRvT3V0bGluZWQiLCJpc0VtcHR5T2JqIiwiU3RvcmUiLCJQYWdlU3RvcmUiLCJ1dGlscyIsIlJlYWN0IiwiRG5kUHJvdmlkZXIiLCJCb2R5Um93IiwiRG5kQ29udGV4dFR5cGUiLCJJQm9keVJvd1Byb3BzIiwidHJlZVV0aWxzIiwic3R5bGVzIiwiQm9keVJvd0NvbXBvbmVudCIsIkhUTUw1QmFja2VuZCIsIndpdGhaaExvY2FsZSIsIlJlc2l6YWJsZSIsImdldExlc3MiLCJnZXROb2RlIiwiTm9EYXRhIiwiZ2V0U3RvcmFnZSIsImNvbmZpZyIsIlJlc2l6ZWFibGVUaXRsZSIsInByb3BzIiwib25SZXNpemUiLCJ3aWR0aCIsInJlc3RQcm9wcyIsImVuYWJsZVVzZXJTZWxlY3RIYWNrIiwiTlNDVGFibGUiLCJjcmVhdGVSZWYiLCJvbkJlZm9yZUxvYWQiLCJsb2FkIiwiaGVhZGVyIiwiY2VsbCIsImluZGV4IiwiZSIsInNpemUiLCJjb2xzIiwic3RhdGUiLCJuZXh0Q29sdW1ucyIsInNldFN0YXRlIiwiZXYiLCJkYXRhIiwiSlNPTiIsInBhcnNlIiwiX3RoaXMiLCJldmVudFR5cGUiLCJwYXlsb2FkIiwidGFibGVTaXplIiwiZHJhZ0luZGV4IiwiaG92ZXJJbmRleCIsImRyYWciLCJ0YXJnZXQiLCJkcmFnTm9kZSIsInJlY29yZCIsInRhcmdldE5vZGUiLCJtb3ZlQXJyYXkiLCJpZHMiLCJwYXJlbnROb2RlIiwiZ2V0Q2hpbGROb2RlSWRzIiwicGFyYW1zIiwiaWQiLCJwYXJlbnRJZCIsImF0dHJpYnV0ZSIsIm1vdmVSb3ciLCJzdG9yZSIsInJlbG9hZCIsIm1vZGFsIiwidHlwZSIsInN0b3JlUHJlZml4IiwiYXV0b1R5cGUiLCJjb250ZW50IiwiZGF0YVNvdXJjZSIsImNvbHVtbnMiLCJsb2FkaW5nIiwicGFnaW5hdGlvbiIsImFjdGl2ZUluZGV4Iiwic2VhcmNoVGV4dCIsImZpZWxkT3B0aW9uIiwic2VhcmNoQ29sb3IiLCJzb3J0cyIsImZpbHRlclBhcmFtcyIsInNvcnRUeXBlIiwic29ydGVyIiwic29ydEluZm8iLCJkZWZhdWx0U29ydCIsImNoZWNrQ29sdW1uIiwiZGVmYXVsdENoZWNrIiwibGlzdGVuZXJzIiwibGlzdGVuZXJzUHJvcHMiLCJyZXN0U3RvcmUiLCJzdG9yZVByb3BzIiwibW9kZWwiLCJjb21wb25lbnQiLCJvcHRpb25zIiwiY2FsbGJhY2siLCJkYXRhQ2hhbmdlZCIsIm1vZGVsRGF0YSIsInBhZ2luZyIsImdldFBhZ2luYXRpb24iLCJvbkVycm9yTG9hZCIsImVyciIsInJlc3BvbnNlIiwiYXV0b0xvYWQiLCJPYmplY3QiLCJhc3NpZ24iLCJjdXJyZW50IiwicmVzaXplQ29sdW1uIiwic2V0RGF0YSIsIndpbmRvdyIsImFkZEV2ZW50TGlzdGVuZXIiLCJsaXN0ZW5NZXNzYWdlIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsInByZXZQcm9wcyIsInByZVN0YXRlIiwicmVzZXRDb2x1bW4iLCJuZXdDb2xzIiwiY29sc3MiLCJtYXAiLCJjb2wiLCJ0ZW1wIiwib25IZWFkZXJDZWxsIiwiY29sdW1uIiwiaGFuZGxlUmVzaXplIiwicHVzaCIsImZpbHRlcnMiLCJleHRyYSIsImF1dG9PbkNoYW5nZSIsImF1dG9Tb3J0IiwiYXV0b1BhZ2luYXRpb24iLCJvbkNoYW5nZSIsImlzTXVsdGlwbGUiLCJBcnJheSIsImlzQXJyYXkiLCJoYW5kbGVQYWdpbmF0aW9uIiwiZ2V0UGFnaW5hdGlvbkJ5U3RvcmUiLCJwIiwiY3VycmVudEtleSIsInBhZ2VTaXplS2V5IiwicGFnZVNpemUiLCJhc2NQYXJhbXMiLCJnZXRTb3J0UGFyYW0iLCJvbkNoYW5nZUZuIiwiZ2V0TW9kZWwiLCJ2YWwiLCJjaGVja2VkVmFsdWUiLCJsZW5ndGgiLCJ3YXJuaW5nIiwiZmlsdGVyQ29sdW1ucyIsIm5ld0NvbCIsImluY2x1ZGVzIiwiZGF0YUluZGV4IiwiaW5pdFNob3ciLCJzb3J0U3RhdGUiLCJzb3J0U2VhcmNoIiwib3JkZXJJdGVtcyIsImZpZWxkIiwiYXNjIiwib3JkZXIiLCJmb3JFYWNoIiwidiIsInN0cmluZ2lmeSIsInNvcnRGaWVsZHMiLCJkZWZhdWx0U2hvd0NvbHMiLCJmaWx0ZXIiLCJlbGxpcHNpcyIsInJlbmRlciIsInNob3dUaXRsZSIsInRleHQiLCJpbmRleE9mIiwic29ydE9yZGVyIiwibXVsdGlwbGUiLCJpdGVtIiwiZmlsdGVyUHJvcHMiLCJvYmoiLCJzZWFyY2hLZXkiLCJEaXYiLCJ0aXRsZSIsInBsYWNlaG9sZGVyIiwicmVmIiwidGFibGVTZWFyY2hSZWYiLCJmaWx0ZXJEcm9wZG93biIsInNldFNlbGVjdGVkS2V5cyIsInNlbGVjdGVkS2V5cyIsImNvbmZpcm0iLCJjbGVhckZpbHRlcnMiLCJuZXdGaWx0ZXJQYXJhbXMiLCJrZXkiLCJnZXRWYWx1ZSIsInNvcnRQYXJhbSIsImZpbHRlckljb24iLCJmaWx0ZXJDb2x1bW4iLCJjb2xMaXN0cyIsInRvb2xiYXIiLCJ0YWJsZVRvb2wiLCJ0b29scyIsInRvb2xzQ2xpY2siLCJvblRvb2xDbGljayIsInNpemVJdGVtIiwic29ydEl0ZW0iLCJzb3J0Q29udGVudCIsImN1cnNvciIsImNvbG9yIiwic2l6ZUNvbnRlbnQiLCJiaW5kIiwibGFiZWwiLCJ2YWx1ZSIsImRpc2FibGVkIiwiZm9udFNpemUiLCJtaW5XaWR0aCIsIm1heFdpZHRoIiwibWFyZ2luUmlnaHQiLCJvblJlZnJlc2giLCJvbWl0Iiwicm93S2V5IiwiY2xpY2tDaGFuZ2VDb2xvciIsInBvc2l0aW9uIiwic2hvd1NpemVDaGFuZ2VyIiwic2hvd1F1aWNrSnVtcGVyIiwic2hvd1RvdGFsIiwidG90YWwiLCJmcm9tIiwidG8iLCJvblJvd0ZuIiwib25Sb3ciLCJjdXN0b20iLCJvbkNsaWNrRm4iLCJvbkNsaWNrIiwiZXZlbnQiLCJyb3dDbGFzc05hbWUiLCJjbGlja1Jvd1N0eWxlIiwibmV3RGF0YVNvdXJjZSIsImdldFNlYXJjaE1lbnVEYXRhcyIsInRyZWVEYXRhcyIsImV4cGFuZGVkUm93S2V5cyIsIm9wZW5LZXlzIiwiZHJhZ2FibGUiLCJkcmFnYWJsZVByb3BzIiwiY29tcG9uZW50cyIsInJlc2l6ZVByb3BzIiwidG9vbEZsYWciLCJ0b29scHJvcHMiLCJzaG93IiwiRGVmYXVsdFRhYmxlIiwicmVuZGVyVG9vbEJhciIsImdldENvbHVtbnMiLCJlbXB0eVRleHQiLCJ4IiwiQ29tcG9uZW50IiwiZHJhZ1VybCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FDRUEsZ0JBREYsRUFFRUMsYUFGRixFQUdFQyxvQkFIRixFQUlFQyxjQUpGLEVBS0VDLHFCQUxGLEVBTUVDLHNCQU5GLEVBT0VDLFlBUEYsUUFRTyxtQkFSUDtBQVNBLFNBQVNDLFVBQVQsUUFBMkIsbUJBQTNCO0FBQ0EsT0FBT0MsS0FBUCxJQUFnQkMsU0FBaEIsUUFBNkMsYUFBN0M7QUFDQSxTQUFTQyxLQUFULFFBQXNCLHVCQUF0QjtBQWNBLE9BQU8sS0FBS0MsS0FBWixNQUF1QixPQUF2QjtBQUNBLFNBQVNDLFdBQVQsUUFBNEIsV0FBNUI7QUFDQSxPQUFPQyxPQUFQLElBQWtCQyxjQUFsQixFQUFrQ0MsYUFBbEMsUUFBdUQsbUJBQXZEO0FBQ0EsT0FBT0MsU0FBUCxNQUFzQixpQkFBdEI7QUFDQSxPQUFPQyxNQUFQLE1BQW1CLHFCQUFuQjtBQUNBLElBQVFDLGdCQUFSLEdBQTJDTCxPQUEzQyxDQUFRSyxnQkFBUjtBQUFBLElBQTBCQyxZQUExQixHQUEyQ04s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RCxFQUFTLGNBQVQ7QUFBMUI7QUFETCxTQVBWO0FBVUUsUUFBQSxNQUFNLEVBQUU7QUFBRTJPLFVBQUFBLENBQUMsRUFBRTtBQUFMO0FBVlYsU0FXTVIsV0FYTixFQVlNeE4sS0FaTixFQWFNc04sYUFiTjtBQWNFLFFBQUEsSUFBSSxFQUFFN0w7QUFkUixTQUZGLENBREY7QUFzQkEsYUFBTzRMLFFBQVEsS0FBSyxJQUFiLGdCQUNMLG9CQUFDLFdBQUQ7QUFBYSxRQUFBLE9BQU8sRUFBRTlOO0FBQXRCLFNBQXFDcU8sWUFBckMsQ0FESyxHQUdMQSxZQUhGO0FBS0Q7Ozs7RUFueUJvQjdPLEtBQUssQ0FBQ2tQLFM7O2dCQUF2QjVOLFEsa0JBQ2tCO0FBQ3BCZ04sRUFBQUEsUUFBUSxFQUFFLEtBRFU7QUFFcEJqQixFQUFBQSxTQUFTLEVBQUUsSUFGUztBQUdwQjVCLEVBQUFBLFlBQVksRUFBRSxJQUhNO0FBSXBCMEQsRUFBQUEsT0FBTyxFQUFFLEVBSlc7QUFLcEJ4SCxFQUFBQSxjQUFjLEVBQUUsSUFMSTtBQU1wQkQsRUFBQUEsUUFBUSxFQUFFLElBTlU7QUFPcEJELEVBQUFBLFlBQVksRUFBRSxJQVBNO0FBUXBCcEIsRUFBQUEsWUFBWSxFQUFFLElBUk07QUFTcEJzRixFQUFBQSxPQUFPLEVBQUU7QUFDUGlELElBQUFBLElBQUksRUFBRSxJQURDO0FBRVA3QyxJQUFBQSxXQUFXLEVBQUU7QUFGTjtBQVRXLEM7O0FBcXlCeEIsZUFBZXRMLFlBQVksQ0FBQ2EsUUFBRCxDQUEzQiIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIEBEZXNjcmlwdHRpb246XHJcbiAqIEB2ZXJzaW9uOlxyXG4gKiBAQXV0aG9yOiByeHpodVxyXG4gKiBARGF0ZTogMjAyMS0wMy0yMyAwODo0NjoyMFxyXG4gKiBATGFzdEVkaXRvcnM6IHJ4emh1XHJcbiAqIEBMYXN0RWRpdFRpbWU6IDIwMjEtMDMtMjMgMTA6MzA6NDJcclxuICovXHJcbmltcG9ydCB7XHJcbiAgQXBwc3RvcmVPdXRsaW5lZCxcclxuICBDaGVja091dGxpbmVkLFxyXG4gIENvbHVtbkhlaWdodE91dGxpbmVkLFxyXG4gIFNlYXJjaE91dGxpbmVkLFxyXG4gIFNvcnRBc2NlbmRpbmdPdXRsaW5lZCxcclxuICBTb3J0RGVzY2VuZGluZ091dGxpbmVkLFxyXG4gIFJlZG9PdXRsaW5lZCxcclxufSBmcm9tIFwiQGFudC1kZXNpZ24vaWNvbnNcIjtcclxuaW1wb3J0IHsgaXNFbXB0eU9iaiB9IGZyb20gXCJAYmotbnNjL2Z1bmN0aW9uc1wiO1xyXG5pbXBvcnQgU3RvcmUsIHsgUGFnZVN0b3JlLCBTdG9yZVByb3BzIH0gZnJvbSBcIkBiai1uc2MvbXNuXCI7XHJcbmltcG9ydCB7IHV0aWxzIH0gZnJvbSBcIkBiai1uc2MvbXNuL2xpYi91dGlsc1wiO1xyXG5pbXBvcnQge1xyXG4gIEJ1dHRvbixcclxuICBDaGVja2JveCxcclxuICBDaGVja2JveE9wdGlvblR5cGUsXHJcbiAgTWVudSxcclxuICBtZXNzYWdlLFxyXG4gIFBvcG92ZXIsXHJcbiAgU3BhY2UsXHJcbiAgVGFibGUsXHJcbiAgVGFibGVQcm9wcyxcclxuICBUb29sdGlwLFxyXG59IGZyb20gXCJhbnRkXCI7XHJcbmltcG9ydCB7IENvbHVtblR5cGUsIFRhYmxlUGFnaW5hdGlvbkNvbmZpZyB9IGZyb20gXCJhbnRkL2xpYi90YWJsZVwiO1xyXG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHsgRG5kUHJvdmlkZXIgfSBmcm9tIFwicmVhY3QtZG5kXCI7XHJcbmltcG9ydCBCb2R5Um93LCB7IERuZENvbnRleHRUeXBlLCBJQm9keVJvd1Byb3BzIH0gZnJvbSBcIi4uL2NvbW1vbi9Cb2R5Um93XCI7XHJcbmltcG9ydCB0cmVlVXRpbHMgZnJvbSBcIi4uLy4uL3RyZWVVdGlsc1wiO1xyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL2luZGV4Lm1vZHVsZS5sZXNzXCI7XHJcbmNvbnN0IHsgQm9keVJvd0NvbXBvbmVudCwgSFRNTDVCYWNrZW5kIH0gPSBCb2R5Um93O1xyXG5pbXBvcnQgd2l0aFpoTG9jYWxlIGZyb20gXCIuLi9jb21tb24vd2l0aFpoTG9jYWxlXCI7XHJcbmltcG9ydCB7IFJlc2l6YWJsZSB9IGZyb20gXCJyZWFjdC1yZXNpemFibGVcIjtcclxuaW1wb3J0IFwiLi9yZXNpemUubW9kdWxlLmxlc3NcIjtcclxuaW1wb3J0IHsgZ2V0TGVzcywgZ2V0Tm9kZSB9IGZyb20gXCIuLi8uLi91dGlsc1wiO1xyXG5pbXBvcnQgTm9EYXRhIGZyb20gXCIuLi8uLi9iYXNlL2NvbW1vbi9Ob0RhdGFcIjtcclxuaW1wb3J0IHsgZ2V0U3RvcmFnZSB9IGZyb20gXCJAYmotbnNjL2Z1bmN0aW9uc1wiO1xyXG5pbXBvcnQgY29uZmlnIGZyb20gXCIuLi8uLi9jb25maWdcIjtcclxuaW50ZXJmYWNlIElEcmFnUGFyYW1zIHtcclxuICBpZDogc3RyaW5nIHwgbnVtYmVyO1xyXG4gIGlkczogQXJyYXk8c3RyaW5nIHwgbnVtYmVyPjtcclxuICBwYXJlbnRJZDogc3RyaW5nIHwgbnVtYmVyO1xyXG59XHJcbi8vIGludGVyZmFjZSBTdG9yZVByb3BzIHt9XHJcblxyXG5leHBvcnQgdHlwZSBTdG9yZVR5cGUgPSBcIlBhZ2VTdG9yZVwiIHwgXCJUcmVlU3RvcmVcIiB8IFwiQmFzZVN0b3JlXCI7XHJcblxyXG5pbnRlcmZhY2UgTlNDVGFibGVQYWdpbmF0aW9uIGV4dGVuZHMgVGFibGVQYWdpbmF0aW9uQ29uZmlnIHtcclxuICB0b3RhbEtleT86IHN0cmluZztcclxuICBwYWdlU2l6ZUtleT86IHN0cmluZztcclxuICBjdXJyZW50S2V5Pzogc3RyaW5nO1xyXG59XHJcblxyXG5pbnRlcmZhY2UgVG9vbEJhclByb3BzIHtcclxuICBzaG93OiBib29sZWFuO1xyXG4gIHRvb2xzPzogQXJyYXk8c3RyaW5nPjtcclxuICBvblRvb2xDbGljaz86IHsgb25SZWZyZXNoPzogYW55OyBvblNvcnQ/OiBhbnkgfTtcclxufVxyXG5pbnRlcmZhY2UgTlNDVGFibGVQcm9wcyBleHRlbmRzIFRhYmxlUHJvcHM8YW55PiB7XHJcbiAgc3RvcmU/OiBTdG9yZVByb3BzO1xyXG4gIHNob3dUb3RhbD86IGJvb2xlYW47IC8vIOaYr+WQpuaYvuekuuaAu+adoeaVsOS/oeaBr++8jOm7mOiupHRydWVcclxuICBkcmFnYWJsZT86IGJvb2xlYW47IC8vIOaYr+WQpuWPr+aLluWKqCwg6buY6K6kZmFsc2VcclxuICBmaWx0ZXJDb2x1bW4/OiBib29sZWFuOyAvLyDmmK/lkKbmlK/mjIHov4fmu6TmmL7npLrooajmoLzliJcsIOm7mOiupHRydWVcclxuICBtb3ZlUm93PzogKHBhcmFtczogSURyYWdQYXJhbXMpID0+IHZvaWQ7IC8vIOaLluaLveWujOaIkOWQjueahOWbnuiwg1xyXG4gIGRyYWdVcmw/OiBzdHJpbmc7IC8vIOS/neWtmOaLluaLveaOkuW6j+eahOaOpeWPo1xyXG4gIHBhZ2luYXRpb24/OiBmYWxzZSB8IE5TQ1RhYmxlUGFnaW5hdGlvbjtcclxuICBhdXRvUGFnaW5hdGlvbj86IGJvb2xlYW47IC8vIOe7hOS7tuaYr+WQpuiHquWKqOWkhOeQhuWIhumhtVxyXG4gIGF1dG9Tb3J0PzogYm9vbGVhbjsgLy/nu4Tku7bmmK/lkKboh6rliqjlpITnkIbmjpLluo9cclxuICBhdXRvT25DaGFuZ2U/OiBib29sZWFuOyAvLyDnu4Tku7bmmK/lkKboh6rliqhvbkNoYW5nZSwgZmFsc2XliJnkuI3lgZrku7vkvZXlpITnkIblhajpg6jkuqTnu5nosIPnlKjmlrlcclxuICByZXNpemVDb2x1bW4/OiBib29sZWFuO1xyXG4gIHNvcnRGaWVsZHM/OiBBcnJheTxzdHJpbmc+OyAvL+mcgOimgeaOkuW6j+eahOWtl+autUluZGV4XHJcbiAgdG9vbGJhcj86IFRvb2xCYXJQcm9wcyB8IGJvb2xlYW47XHJcbiAgYXV0b1NpemU/OiBib29sZWFuO1xyXG4gIHNvcnRTZWFyY2g/OiBib29sZWFuOyAvL+aYr+WQpua3u+WKoOaOkuW6j+afpeivoizpu5jorqR0cnVlXHJcbiAgLy8gdGFibGVTaXplPzogXCJzbWFsbFwiIHwgXCJtaWRkbGVcIiB8IFwiZGVmYXVsdFwiIHwgXCJhdXRvXCI7XHJcbiAgLy8gc2l6ZT86IFwic21hbGxcIiB8IFwibWlkZGxlXCIgfCBcImRlZmF1bHRcIiB8IFwiYXV0b1wiO1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBJTlNDVGFibGVQcm9wcyA9IHR5cGVvZiBOU0NUYWJsZS5kZWZhdWx0UHJvcHMgJiBOU0NUYWJsZVByb3BzO1xyXG5leHBvcnQgeyBEbmRDb250ZXh0VHlwZSwgSUJvZHlSb3dQcm9wcyB9O1xyXG5cclxuY29uc3QgUmVzaXplYWJsZVRpdGxlID0gKHByb3BzOiBhbnkpID0+IHtcclxuICBjb25zdCB7IG9uUmVzaXplLCB3aWR0aCwgLi4ucmVzdFByb3BzIH0gPSBwcm9wcztcclxuICByZXR1cm4gKFxyXG4gICAgPFJlc2l6YWJsZVxyXG4gICAgICB3aWR0aD17d2lkdGggfHwgMTUwfVxyXG4gICAgICBoZWlnaHQ9ezB9XHJcbiAgICAgIG9uUmVzaXplPXtvblJlc2l6ZX1cclxuICAgICAgZHJhZ2dhYmxlT3B0cz17eyBlbmFibGVVc2VyU2VsZWN0SGFjazogZmFsc2UgfX1cclxuICAgID5cclxuICAgICAgPHRoIHsuLi5yZXN0UHJvcHN9IC8+XHJcbiAgICA8L1Jlc2l6YWJsZT5cclxuICApO1xyXG59O1xyXG5jbGFzcyBOU0NUYWJsZSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDxJTlNDVGFibGVQcm9wcywgYW55PiB7XHJcbiAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcclxuICAgIGRyYWdhYmxlOiBmYWxzZSxcclxuICAgIHNob3dUb3RhbDogdHJ1ZSxcclxuICAgIGZpbHRlckNvbHVtbjogdHJ1ZSxcclxuICAgIGRyYWdVcmw6IFwiXCIsXHJcbiAgICBhdXRvUGFnaW5hdGlvbjogdHJ1ZSxcclxuICAgIGF1dG9Tb3J0OiB0cnVlLFxyXG4gICAgYXV0b09uQ2hhbmdlOiB0cnVlLFxyXG4gICAgcmVzaXplQ29sdW1uOiB0cnVlLFxyXG4gICAgdG9vbGJhcjoge1xyXG4gICAgICBzaG93OiB0cnVlLFxyXG4gICAgICBvblRvb2xDbGljazoge30gYXMgYW55LFxyXG4gICAgfSBhcyBhbnksXHJcbiAgfTtcclxuXHJcbiAgc3RvcmUgPSB7fSBhcyBTdG9yZVByb3BzO1xyXG4gIHRoSWNvblJlZiA9IFJlYWN0LmNyZWF0ZVJlZjxIVE1MRGl2RWxlbWVudD4oKTtcclxuICB0YWJsZVNlYXJjaFJlZiA9IFJlYWN0LmNyZWF0ZVJlZjxhbnk+KCk7XHJcblxyXG4gIGxpc3RlbmVycyA9IHtcclxuICAgIG9uQmVmb3JlTG9hZDogbnVsbCxcclxuICAgIGxvYWQ6IG51bGwsXHJcbiAgfTtcclxuXHJcbiAgY29tcG9uZW50cyA9IHtcclxuICAgIGhlYWRlcjoge1xyXG4gICAgICBjZWxsOiBSZXNpemVhYmxlVGl0bGUsXHJcbiAgICB9LFxyXG4gIH07XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XHJcbiAgICBzdXBlcihwcm9wcyk7XHJcbiAgICBsZXQgbW9kYWwgPSBwcm9wcy50eXBlIHx8IFwiYXV0b1wiO1xyXG4gICAgbGV0IHN0b3JlUHJlZml4ID0gZ2V0U3RvcmFnZShcInN0b3JlLXByZS1rZXlcIik7XHJcbiAgICBsZXQgYXV0b1R5cGUgPSBnZXRTdG9yYWdlKFxyXG4gICAgICBzdG9yZVByZWZpeCA/IHN0b3JlUHJlZml4ICsgXCJ0YWJsZVNpemVcIiA6IFwidGFibGVTaXplXCJcclxuICAgICk7XHJcbiAgICBhdXRvVHlwZSA9IGF1dG9UeXBlPy5jb250ZW50O1xyXG4gICAgdGhpcy5zdGF0ZSA9IHtcclxuICAgICAgZGF0YVNvdXJjZTogW10sXHJcbiAgICAgIGNvbHVtbnM6IFtdLFxyXG4gICAgICBsb2FkaW5nOiBmYWxzZSxcclxuICAgICAgcGFnaW5hdGlvbjoge30sXHJcbiAgICAgIGFjdGl2ZUluZGV4OiAtMSxcclxuICAgICAgLy/mkJzntKLmlofmnKxcclxuICAgICAgc2VhcmNoVGV4dDogbnVsbCxcclxuICAgICAgZmllbGRPcHRpb246IG51bGwsXHJcbiAgICAgIHNlYXJjaENvbG9yOiBudWxsLFxyXG4gICAgICBjb2xzOiBbXSxcclxuICAgICAgc29ydHM6IFtdLFxyXG4gICAgICBmaWx0ZXJQYXJhbXM6IHt9LFxyXG4gICAgICB0YWJsZVNpemU6IHRoaXMucHJvcHMuc2l6ZSB8fCBhdXRvVHlwZSB8fCBcImRlZmF1bHRcIixcclxuICAgICAgc29ydFR5cGU6IFwic2luZ2xlXCIsXHJcbiAgICAgIHNvcnRlcjogW10sIC8v6K6w5b2V5b2T5YmN5o6S5bqP5a2X5q61XHJcbiAgICAgIHNvcnRJbmZvOiB7fSxcclxuICAgICAgZGVmYXVsdFNvcnQ6IHRydWUsXHJcbiAgICAgIGNoZWNrQ29sdW1uOiBbXSxcclxuICAgICAgZGVmYXVsdENoZWNrOiB0cnVlLFxyXG4gICAgfTtcclxuICAgIGlmIChwcm9wcy5zdG9yZSBpbnN0YW5jZW9mIFN0b3JlKSB7XHJcbiAgICAgIHRoaXMuc3RvcmUgPSBwcm9wcy5zdG9yZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IHsgbGlzdGVuZXJzOiBsaXN0ZW5lcnNQcm9wcyA9IHt9LCAuLi5yZXN0U3RvcmUgfSA9XHJcbiAgICAgICAgcHJvcHMuc3RvcmUgfHwge307XHJcbiAgICAgIGNvbnN0IHN0b3JlUHJvcHMgPSB7XHJcbiAgICAgICAgbW9kZWw6IFwibW9kZWxcIixcclxuICAgICAgICBjb21wb25lbnQ6IHRoaXMsXHJcbiAgICAgICAgbGlzdGVuZXJzOiB7XHJcbiAgICAgICAgICBvbkJlZm9yZUxvYWQ6IChzdG9yZSwgb3B0aW9ucykgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgbG9hZGluZzogdHJ1ZSB9KTtcclxuICAgICAgICAgICAgdXRpbHMuY2FsbGJhY2sobGlzdGVuZXJzUHJvcHMub25CZWZvcmVMb2FkLCB0aGlzLCBbc3RvcmUsIG9wdGlvbnNdKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBkYXRhQ2hhbmdlZDogKGRhdGEsIG1vZGVsRGF0YSwgc3RvcmUpID0+IHtcclxuICAgICAgICAgICAgbGV0IHBhZ2luZyA9ICEodGhpcy5wcm9wcy5wYWdpbmF0aW9uID09PSBmYWxzZSk7XHJcbiAgICAgICAgICAgIGlmIChwYWdpbmcgJiYgIXRoaXMucHJvcHMuZGF0YVNvdXJjZSkge1xyXG4gICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgICAgZGF0YVNvdXJjZTogbW9kZWxEYXRhLFxyXG4gICAgICAgICAgICAgICAgcGFnaW5hdGlvbjogc3RvcmUuZ2V0UGFnaW5hdGlvbigpLFxyXG4gICAgICAgICAgICAgICAgbG9hZGluZzogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICBhY3RpdmVJbmRleDogLTEsXHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGRhdGFTb3VyY2U6IG1vZGVsRGF0YSwgbG9hZGluZzogZmFsc2UgfSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHV0aWxzLmNhbGxiYWNrKGxpc3RlbmVyc1Byb3BzLmRhdGFDaGFuZ2VkLCB0aGlzLCBbXHJcbiAgICAgICAgICAgICAgZGF0YSxcclxuICAgICAgICAgICAgICBtb2RlbERhdGEsXHJcbiAgICAgICAgICAgICAgc3RvcmUsXHJcbiAgICAgICAgICAgICAgcGFnaW5nLFxyXG4gICAgICAgICAgICBdKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBsb2FkOiAoZGF0YSwgbW9kZWxEYXRhLCBzdG9yZSkgPT4ge1xyXG4gICAgICAgICAgICB1dGlscy5jYWxsYmFjayhsaXN0ZW5lcnNQcm9wcy5sb2FkLCB0aGlzLCBbZGF0YSwgbW9kZWxEYXRhLCBzdG9yZV0pO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIG9uRXJyb3JMb2FkOiAoZXJyLCByZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgbG9hZGluZzogZmFsc2UgfSk7XHJcbiAgICAgICAgICAgIHV0aWxzLmNhbGxiYWNrKGxpc3RlbmVyc1Byb3BzLm9uRXJyb3JMb2FkLCB0aGlzLCBbZXJyLCByZXNwb25zZV0pO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIGRhdGE6IHJlc3RTdG9yZS5kYXRhXHJcbiAgICAgICAgICA/IHJlc3RTdG9yZS5kYXRhXHJcbiAgICAgICAgICA6IHByb3BzLmRhdGFTb3VyY2VcclxuICAgICAgICAgID8gcHJvcHMuZGF0YVNvdXJjZVxyXG4gICAgICAgICAgOiBudWxsLFxyXG4gICAgICAgIC4uLnJlc3RTdG9yZSxcclxuICAgICAgICBhdXRvTG9hZDogcmVzdFN0b3JlLmF1dG9Mb2FkID09PSBmYWxzZSA/IGZhbHNlIDogdHJ1ZSxcclxuICAgICAgfTtcclxuICAgICAgdGhpcy5zdG9yZSA9IG5ldyBQYWdlU3RvcmUoXHJcbiAgICAgICAgT2JqZWN0LmFzc2lnbih7fSwgc3RvcmVQcm9wcywge1xyXG4gICAgICAgICAgcGFnaW5hdGlvbjogeyBjdXJyZW50OiAxLCAuLi50aGlzLnByb3BzLnBhZ2luYXRpb24gfSxcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlUmVzaXplID1cclxuICAgIChpbmRleDogYW55KSA9PlxyXG4gICAgKGU6IGFueSwgeyBzaXplIH06IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCB7IGNvbHMgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICAgIGNvbnN0IG5leHRDb2x1bW5zID0gWy4uLmNvbHNdO1xyXG4gICAgICBuZXh0Q29sdW1uc1tpbmRleF0gPSB7XHJcbiAgICAgICAgLi4ubmV4dENvbHVtbnNbaW5kZXhdLFxyXG4gICAgICAgIHdpZHRoOiBzaXplLndpZHRoLFxyXG4gICAgICB9O1xyXG4gICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICBjb2xzOiBuZXh0Q29sdW1ucyxcclxuICAgICAgfSk7XHJcbiAgICB9O1xyXG5cclxuICBjb21wb25lbnREaWRNb3VudCgpIHtcclxuICAgIGNvbnN0IHsgcmVzaXplQ29sdW1uIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgaWYgKCFyZXNpemVDb2x1bW4pIHtcclxuICAgICAgdGhpcy5zZXRTdGF0ZSh7IGNvbHVtbnM6IFsuLi50aGlzLnByb3BzLmNvbHVtbnNdIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZXRTdGF0ZSh7IGNvbHM6IFsuLi50aGlzLnByb3BzLmNvbHVtbnNdIH0pO1xyXG4gICAgfVxyXG4gICAgY29uc3Qgc3RvcmUgPSB0aGlzLnByb3BzLnN0b3JlO1xyXG4gICAgaWYgKHN0b3JlICYmIHN0b3JlLmRhdGEpIHtcclxuICAgICAgdGhpcy5zdG9yZS5zZXREYXRhKHN0b3JlLmRhdGEpO1xyXG4gICAgfVxyXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIsIHRoaXMubGlzdGVuTWVzc2FnZSk7XHJcbiAgfVxyXG4gIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xyXG4gICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIsIHRoaXMubGlzdGVuTWVzc2FnZSk7XHJcbiAgfVxyXG4gIGxpc3Rlbk1lc3NhZ2UgPSAoZXYpID0+IHtcclxuICAgIGNvbnN0IGRhdGEgPSB0eXBlb2YgZXYuZGF0YSA9PT0gXCJzdHJpbmdcIiA/IEpTT04ucGFyc2UoZXYuZGF0YSkgOiBldi5kYXRhO1xyXG4gICAgbGV0IF90aGlzID0gdGhpcztcclxuICAgIGlmIChkYXRhLmV2ZW50VHlwZSA9PSBcImNoYW5nZVRhYmxlU2l6ZVwiKSB7XHJcbiAgICAgIGNvbnN0IHsgcGF5bG9hZCB9ID0gZGF0YTtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIHBheWxvYWQuc2l6ZSA9PSBcImRlZmF1bHRcIiB8fFxyXG4gICAgICAgIHBheWxvYWQuc2l6ZSA9PSBcInNtYWxsXCIgfHxcclxuICAgICAgICBwYXlsb2FkLnNpemUgPT0gXCJtaWRkbGVcIlxyXG4gICAgICApIHtcclxuICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7IHRhYmxlU2l6ZTogcGF5bG9hZC5zaXplIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfTtcclxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzLCBwcmVTdGF0ZSkge1xyXG4gICAgY29uc3QgeyByZXNpemVDb2x1bW4gfSA9IHRoaXMucHJvcHM7XHJcbiAgICBpZiAoIXJlc2l6ZUNvbHVtbikge1xyXG4gICAgICBpZiAodGhpcy5wcm9wcy5jb2x1bW5zICE9PSBwcmV2UHJvcHMuY29sdW1ucykge1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyBjb2x1bW5zOiB0aGlzLnByb3BzLmNvbHVtbnMgfSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChwcmVTdGF0ZS5jb2xzICE9PSB0aGlzLnN0YXRlLmNvbHMpIHtcclxuICAgICAgICB0aGlzLnJlc2V0Q29sdW1uKCk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHByZXZQcm9wcy5zaXplICE9PSB0aGlzLnByb3BzLnNpemUpIHtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHsgdGFibGVTaXplOiB0aGlzLnByb3BzLnNpemUgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlc2V0Q29sdW1uKCkge1xyXG4gICAgY29uc3QgeyBjb2xzIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3QgbmV3Q29sczogYW55ID0gW107XHJcbiAgICBsZXQgY29sc3MgPSBjb2xzIHx8IFtdO1xyXG4gICAgY29sc3MubWFwKChjb2w6IGFueSwgaW5kZXg6IGFueSkgPT4ge1xyXG4gICAgICBsZXQgdGVtcCA9IHtcclxuICAgICAgICAuLi5jb2wsXHJcbiAgICAgICAgb25IZWFkZXJDZWxsOiAoY29sdW1uOiB7IHdpZHRoOiBhbnkgfSkgPT4gKHtcclxuICAgICAgICAgIHdpZHRoOiBjb2x1bW4ud2lkdGgsXHJcbiAgICAgICAgICBvblJlc2l6ZTogdGhpcy5oYW5kbGVSZXNpemUoaW5kZXgpLFxyXG4gICAgICAgIH0pLFxyXG4gICAgICB9O1xyXG4gICAgICBuZXdDb2xzLnB1c2godGVtcCk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBjb2x1bW5zOiBuZXdDb2xzLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDmuIXpmaTpgInkuK3popzoibJcclxuICAgKi9cclxuICBjbGVhclNlbGVjdENvbG9yKCkge1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7IGFjdGl2ZUluZGV4OiAtMSB9KTtcclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH1cclxuXHJcbiAgZ2V0UGFnaW5hdGlvbkJ5U3RvcmUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5nZXRQYWdpbmF0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBvbkNoYW5nZShwYWdpbmF0aW9uLCBmaWx0ZXJzLCBzb3J0ZXIsIGV4dHJhKSB7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIGF1dG9PbkNoYW5nZSA9IHRydWUsXHJcbiAgICAgIGF1dG9Tb3J0LFxyXG4gICAgICBhdXRvUGFnaW5hdGlvbixcclxuICAgICAgb25DaGFuZ2UsXHJcbiAgICB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHsgZmlsdGVyUGFyYW1zIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3QgaXNNdWx0aXBsZSA9IEFycmF5LmlzQXJyYXkoc29ydGVyKTtcclxuICAgIGlmIChhdXRvT25DaGFuZ2UgPT09IGZhbHNlKSB7XHJcbiAgICAgIG9uQ2hhbmdlICYmIG9uQ2hhbmdlKHBhZ2luYXRpb24sIGZpbHRlcnMsIHNvcnRlciwgZXh0cmEpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCBoYW5kbGVQYWdpbmF0aW9uID0gKCkgPT4ge1xyXG4gICAgICBsZXQgcGFyYW1zID0ge30gYXMge1xyXG4gICAgICAgIHNpemU/OiBzdHJpbmc7XHJcbiAgICAgICAgcGFnZVNpemU/OiBzdHJpbmc7XHJcbiAgICAgICAgYXNjcz86IHN0cmluZztcclxuICAgICAgICBkZXNjcz86IHN0cmluZztcclxuICAgICAgICBbcHJvcE5hbWU6IHN0cmluZ106IHN0cmluZztcclxuICAgICAgfTtcclxuICAgICAgY29uc3QgcGFnaW5nID0gdGhpcy5nZXRQYWdpbmF0aW9uQnlTdG9yZSgpIHx8IHt9O1xyXG4gICAgICBpZiAoIWlzRW1wdHlPYmoocGFnaW5hdGlvbikpIHtcclxuICAgICAgICBjb25zdCBwID0ge1xyXG4gICAgICAgICAgW3BhZ2luZy5jdXJyZW50S2V5IHx8IFwiY3VycmVudFwiXTogcGFnaW5hdGlvbi5jdXJyZW50LFxyXG4gICAgICAgICAgW3BhZ2luZy5wYWdlU2l6ZUtleSB8fCBcInNpemVcIl06IHBhZ2luYXRpb24ucGFnZVNpemUsXHJcbiAgICAgICAgfTtcclxuICAgICAgICBPYmplY3QuYXNzaWduKHBhcmFtcywgcCk7XHJcbiAgICAgIH1cclxuICAgICAgbGV0IGFzY1BhcmFtcyA9IHRoaXMuZ2V0U29ydFBhcmFtKHNvcnRlciwgdHJ1ZSk7XHJcbiAgICAgIGlmIChpc011bHRpcGxlKSB7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IHNvcnRlciB9KTtcclxuICAgICAgfSBlbHNlIGlmICghaXNNdWx0aXBsZSAmJiAhaXNFbXB0eU9iaihzb3J0ZXIpKSB7XHJcbiAgICAgICAgc29ydGVyLmNvbHVtbiAmJlxyXG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IHNvcnRlcjogW3NvcnRlcl0sIGRlZmF1bHRTb3J0OiBmYWxzZSB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHsgc29ydGVyOiBbXSB9KTtcclxuICAgICAgfVxyXG4gICAgICBwYXJhbXMgPSB7IC4uLmZpbHRlclBhcmFtcywgLi4ucGFyYW1zLCAuLi5hc2NQYXJhbXMgfTtcclxuICAgICAgYXV0b1NvcnQgJiYgdGhpcy5zdG9yZS5yZWxvYWQoeyBwYXJhbXMgfSk7XHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IG9uQ2hhbmdlRm4gPSB0aGlzLnByb3BzLm9uQ2hhbmdlO1xyXG5cclxuICAgIGF1dG9QYWdpbmF0aW9uICYmIGhhbmRsZVBhZ2luYXRpb24oKTtcclxuICAgIC8vIOeUqOaIt+S8oOS6hm9uQ2hhbmdl5L+d55WZ55So5oi36Ieq5Li75aSE55CG6KGo5qC85Y+Y5YyW55qE5p2D5YqbXHJcbiAgICBpZiAob25DaGFuZ2VGbikge1xyXG4gICAgICB1dGlscy5jYWxsYmFjayhvbkNoYW5nZUZuLCB0aGlzLCBbcGFnaW5hdGlvbiwgZmlsdGVycywgc29ydGVyLCBleHRyYV0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0U3RvcmUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9yZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOiOt+WPluaVsOaNruaooeWei+WvueixoVxyXG4gICAqL1xyXG4gIGdldE1vZGVsKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuZ2V0TW9kZWwoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOiPnOWNleaQnOe0oui/h+a7pOaYvuekulxyXG4gICAqIEBwYXJhbSB7U3RyaW5nfSB2YWxcclxuICAgKi9cclxuICBoYW5kbGVTZWFyY2godmFsLCBmaWVsZE9wdGlvbiwgc2VhcmNoQ29sb3IpIHtcclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBzZWFyY2hUZXh0OiB2YWwsXHJcbiAgICAgIGZpZWxkT3B0aW9uOiBmaWVsZE9wdGlvbixcclxuICAgICAgc2VhcmNoQ29sb3I6IHNlYXJjaENvbG9yLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDmqKHlnZfliJfooajnp7vliqjmjpLluo9cclxuICAgKi9cclxuICBtb3ZlUm93ID0gKGRyYWdJbmRleCwgaG92ZXJJbmRleCwgZHJhZywgdGFyZ2V0KSA9PiB7XHJcbiAgICBjb25zdCBfdGhpcyA9IHRoaXM7XHJcbiAgICBsZXQgZHJhZ05vZGUgPSBkcmFnLnJlY29yZDtcclxuICAgIGxldCB0YXJnZXROb2RlID0gdGFyZ2V0LnJlY29yZDtcclxuICAgIGRyYWdOb2RlLm1vdmVBcnJheShkcmFnTm9kZSwgdGFyZ2V0Tm9kZSk7XHJcbiAgICBsZXQgaWRzID0gZHJhZ05vZGUucGFyZW50Tm9kZS5nZXRDaGlsZE5vZGVJZHMoKTtcclxuICAgIGxldCBwYXJhbXMgPSB7XHJcbiAgICAgIGlkOiBkcmFnTm9kZS5pZCxcclxuICAgICAgcGFyZW50SWQ6IGRyYWdOb2RlLmF0dHJpYnV0ZS5wYXJlbnRJZCxcclxuICAgICAgaWRzOiBpZHMsXHJcbiAgICB9O1xyXG5cclxuICAgIGlmICh0aGlzLnByb3BzLm1vdmVSb3cpIHtcclxuICAgICAgdGhpcy5wcm9wcy5tb3ZlUm93KHBhcmFtcyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnN0b3JlLnJlbG9hZCgpO1xyXG4gICAgfVxyXG4gIH07XHJcblxyXG4gIGZpbHRlckNvbHVtbihjaGVja2VkVmFsdWUpIHtcclxuICAgIGlmIChjaGVja2VkVmFsdWUubGVuZ3RoID09IDApIHtcclxuICAgICAgbWVzc2FnZS53YXJuaW5nKFwi6Iez5bCR5pi+56S65LiA5YiX77yBXCIpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCBmaWx0ZXJDb2x1bW5zID0gdGhpcy5wcm9wcy5jb2x1bW5zLm1hcCgoY29sOiBDb2x1bW5UeXBlPHt9PikgPT4ge1xyXG4gICAgICBjb25zdCBuZXdDb2wgPSB7IC4uLmNvbCB9IGFzIENvbHVtblR5cGU8e30+ICYgeyBpbml0U2hvdzogYm9vbGVhbiB9O1xyXG4gICAgICBpZiAoY2hlY2tlZFZhbHVlLmluY2x1ZGVzKGNvbC5kYXRhSW5kZXgpKSB7XHJcbiAgICAgICAgbmV3Q29sLmluaXRTaG93ID0gdHJ1ZTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBuZXdDb2wuaW5pdFNob3cgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gbmV3Q29sO1xyXG4gICAgfSk7XHJcbiAgICBjb25zdCB7IHJlc2l6ZUNvbHVtbiB9ID0gdGhpcy5wcm9wcztcclxuICAgIGlmICghcmVzaXplQ29sdW1uKSB7XHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgIGNvbHVtbnM6IGZpbHRlckNvbHVtbnMsXHJcbiAgICAgICAgY2hlY2tDb2x1bW46IGNoZWNrZWRWYWx1ZSxcclxuICAgICAgICBkZWZhdWx0Q2hlY2s6IGZhbHNlLFxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgIGNvbHM6IGZpbHRlckNvbHVtbnMsXHJcbiAgICAgICAgY2hlY2tDb2x1bW46IGNoZWNrZWRWYWx1ZSxcclxuICAgICAgICBkZWZhdWx0Q2hlY2s6IGZhbHNlLFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbiAgZ2V0U29ydFBhcmFtKHNvcnRlciwgc29ydFN0YXRlID0gZmFsc2UpIHtcclxuICAgIGNvbnN0IGlzTXVsdGlwbGUgPSBBcnJheS5pc0FycmF5KHNvcnRlcik7XHJcbiAgICBjb25zdCB7IHNvcnRTZWFyY2ggPSB0cnVlIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgaWYgKCFzb3J0U2VhcmNoKSB7XHJcbiAgICAgIHJldHVybiB7fTtcclxuICAgIH1cclxuICAgIGxldCBzb3J0SW5mbyA9IHt9O1xyXG4gICAgbGV0IG9yZGVySXRlbXMgPSBbXTtcclxuICAgIGlmICghaXNFbXB0eU9iaihzb3J0ZXIpICYmICFpc011bHRpcGxlKSB7XHJcbiAgICAgIG9yZGVySXRlbXMgPSBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgY29sdW1uOiBzb3J0ZXIuY29sdW1uLmZpZWxkIHx8IHNvcnRlci5jb2x1bW4uZGF0YUluZGV4LFxyXG4gICAgICAgICAgYXNjOiBzb3J0ZXIub3JkZXIgPT0gXCJhc2NlbmRcIixcclxuICAgICAgICB9LFxyXG4gICAgICBdO1xyXG4gICAgICBpZiAoc29ydGVyLmNvbHVtbikgc29ydEluZm9bc29ydGVyLmNvbHVtbi5kYXRhSW5kZXhdID0gc29ydGVyLm9yZGVyO1xyXG4gICAgfSBlbHNlIGlmIChpc011bHRpcGxlKSB7XHJcbiAgICAgIHNvcnRlci5mb3JFYWNoKCh2KSA9PiB7XHJcbiAgICAgICAgc29ydEluZm9bdi5jb2x1bW4uZGF0YUluZGV4XSA9IHYub3JkZXI7XHJcbiAgICAgICAgbGV0IGZpZWxkID0gdi5jb2x1bW4uZmllbGQgfHwgdi5jb2x1bW4uZGF0YUluZGV4O1xyXG4gICAgICAgIG9yZGVySXRlbXMucHVzaCh7XHJcbiAgICAgICAgICBjb2x1bW46IGZpZWxkLFxyXG4gICAgICAgICAgYXNjOiB2Lm9yZGVyID09IFwiYXNjZW5kXCIsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgaWYgKHNvcnRTdGF0ZSkge1xyXG4gICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICBzb3J0SW5mbzogc29ydEluZm8sXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHsgb3JkZXJJdGVtczogSlNPTi5zdHJpbmdpZnkob3JkZXJJdGVtcykgfTtcclxuICB9XHJcbiAgZ2V0Q29sdW1ucygpIHtcclxuICAgIGNvbnN0IHsgY29sdW1ucywgc29ydFR5cGUsIHNvcnRJbmZvIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3QgeyBzb3J0RmllbGRzID0gW10gfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCBkZWZhdWx0U2hvd0NvbHMgPSBjb2x1bW5zLmZpbHRlcigoY29scykgPT4gY29scy5pbml0U2hvdyAhPT0gZmFsc2UpO1xyXG4gICAgY29uc3QgY29scyA9IGRlZmF1bHRTaG93Q29scy5tYXAoKGNvbCwgaW5kZXgpID0+IHtcclxuICAgICAgaWYgKGNvbC5lbGxpcHNpcyAmJiAhY29sLnJlbmRlcikge1xyXG4gICAgICAgIGNvbC5lbGxpcHNpcyA9IHtcclxuICAgICAgICAgIHNob3dUaXRsZTogZmFsc2UsXHJcbiAgICAgICAgfTtcclxuICAgICAgICBjb2wucmVuZGVyID0gKHRleHQpID0+IHtcclxuICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgIDxUb29sdGlwIHBsYWNlbWVudD1cInRvcExlZnRcIiB0aXRsZT17dGV4dH0+XHJcbiAgICAgICAgICAgICAge3RleHR9XHJcbiAgICAgICAgICAgIDwvVG9vbHRpcD5cclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKHNvcnRGaWVsZHMuaW5kZXhPZihjb2wuZGF0YUluZGV4KSA+IC0xKSB7XHJcbiAgICAgICAgaWYgKHNvcnRUeXBlID09IFwic2luZ2xlXCIpIHtcclxuICAgICAgICAgIGNvbC5zb3J0ZXIgPSB0cnVlO1xyXG4gICAgICAgICAgY29sLnNvcnRPcmRlciA9IHNvcnRJbmZvW2NvbC5kYXRhSW5kZXhdXHJcbiAgICAgICAgICAgID8gc29ydEluZm9bY29sLmRhdGFJbmRleF1cclxuICAgICAgICAgICAgOiBudWxsO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoc29ydFR5cGUgPT0gXCJtdWx0aXBsZVwiKSB7XHJcbiAgICAgICAgICBjb2wuc29ydGVyID0geyBtdWx0aXBsZTogaW5kZXggfTtcclxuICAgICAgICAgIGNvbC5zb3J0T3JkZXIgPSBzb3J0SW5mb1tjb2wuZGF0YUluZGV4XVxyXG4gICAgICAgICAgICA/IHNvcnRJbmZvW2NvbC5kYXRhSW5kZXhdXHJcbiAgICAgICAgICAgIDogbnVsbDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIGNvbDtcclxuICAgIH0pO1xyXG4gICAgY29scy5tYXAoKGl0ZW0sIGluZGV4KSA9PiB7XHJcbiAgICAgIGlmICghaXNFbXB0eU9iaihpdGVtLmZpbHRlclByb3BzKSkge1xyXG4gICAgICAgIGxldCBvYmogPSB7IC4uLml0ZW0gfTtcclxuICAgICAgICBjb25zdCB7IHR5cGUsIHByb3BzLCBzZWFyY2hLZXkgfSA9IGl0ZW0uZmlsdGVyUHJvcHM7XHJcbiAgICAgICAgbGV0IERpdiA9IG51bGw7XHJcbiAgICAgICAgbGV0IHRleHQgPSBpdGVtLnRpdGxlO1xyXG4gICAgICAgIERpdiA9IGdldE5vZGUodHlwZSwge1xyXG4gICAgICAgICAgcGxhY2Vob2xkZXI6IGDmkJzntKIke3RleHR9YCxcclxuICAgICAgICAgIC4uLnByb3BzLFxyXG4gICAgICAgICAgcmVmOiB0aGlzLnRhYmxlU2VhcmNoUmVmLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIG9iaiA9IHtcclxuICAgICAgICAgIGZpbHRlckRyb3Bkb3duOiAoe1xyXG4gICAgICAgICAgICBzZXRTZWxlY3RlZEtleXMsXHJcbiAgICAgICAgICAgIHNlbGVjdGVkS2V5cyxcclxuICAgICAgICAgICAgY29uZmlybSxcclxuICAgICAgICAgICAgY2xlYXJGaWx0ZXJzLFxyXG4gICAgICAgICAgfSkgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJzZWFyY2hcIil9PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcInNwYWNlXCIpfT57RGl2fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPFNwYWNlPlxyXG4gICAgICAgICAgICAgICAgICA8QnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cInByaW1hcnlcIlxyXG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgIGNvbmZpcm0oKTtcclxuICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgZmlsdGVyUGFyYW1zIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld0ZpbHRlclBhcmFtcyA9IHsgLi4uZmlsdGVyUGFyYW1zIH07XHJcbiAgICAgICAgICAgICAgICAgICAgICBsZXQga2V5ID0gaXRlbS5maWVsZCB8fCBpdGVtLmRhdGFJbmRleDtcclxuICAgICAgICAgICAgICAgICAgICAgIG5ld0ZpbHRlclBhcmFtc1trZXldID1cclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50YWJsZVNlYXJjaFJlZi5jdXJyZW50Py5nZXRWYWx1ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlclBhcmFtczogeyAuLi5uZXdGaWx0ZXJQYXJhbXMgfSxcclxuICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc29ydFBhcmFtID0gdGhpcy5nZXRTb3J0UGFyYW0odGhpcy5zdGF0ZS5zb3J0ZXIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdG9yZS5sb2FkKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zOiB7IC4uLm5ld0ZpbHRlclBhcmFtcywgLi4uc29ydFBhcmFtIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJidXR0b25cIil9XHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICDmn6Xor6JcclxuICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L1NwYWNlPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGZpbHRlckljb246ICgpID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIDxTZWFyY2hPdXRsaW5lZCAvPjtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICAuLi5vYmosXHJcbiAgICAgICAgfTtcclxuICAgICAgICBjb2xzW2luZGV4XSA9IG9iajtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gY29scztcclxuICB9XHJcbiAgcmVuZGVyVG9vbEJhcigpIHtcclxuICAgIGxldCB7IHRhYmxlU2l6ZSwgY29sdW1ucywgc29ydFR5cGUgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBsZXQgeyBmaWx0ZXJDb2x1bW4sIGNvbHVtbnM6IGNvbExpc3RzLCB0b29sYmFyIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgeyB0YWJsZVRvb2wgfSA9IGNvbmZpZygpO1xyXG4gICAgbGV0IHRvb2xzID0gW1wicmVmcmVzaFwiLCBcInNpemVcIiwgXCJzb3J0XCIsIFwiY29sdW1uXCJdO1xyXG4gICAgbGV0IHRvb2xzQ2xpY2sgPSB7fSBhcyBhbnk7XHJcbiAgICBpZiAodG9vbGJhciA9PSB0cnVlKSB7XHJcbiAgICAgIHRvb2xzID0gdG9vbGJhci5vblRvb2xDbGlja1xyXG4gICAgICAgID8gdG9vbGJhci5vblRvb2xDbGlja1xyXG4gICAgICAgIDogW1wicmVmcmVzaFwiLCBcInNpemVcIiwgXCJzb3J0XCIsIFwiY29sdW1uXCJdO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdG9vbHMgPSB0b29sYmFyLnRvb2xzXHJcbiAgICAgICAgPyB0b29sYmFyLnRvb2xzXHJcbiAgICAgICAgOiB0YWJsZVRvb2wudG9vbHNcclxuICAgICAgICA/IHRhYmxlVG9vbC50b29sc1xyXG4gICAgICAgIDogdG9vbHM7XHJcbiAgICAgIHRvb2xzQ2xpY2sgPSB0b29sYmFyLm9uVG9vbENsaWNrID8gdG9vbGJhci5vblRvb2xDbGljayA6IHt9O1xyXG4gICAgfVxyXG4gICAgY29uc3Qgc2l6ZUl0ZW0gPSBbXHJcbiAgICAgIHsgdGl0bGU6IFwi5a695p2+XCIsIGtleTogXCJkZWZhdWx0XCIgfSxcclxuICAgICAgeyB0aXRsZTogXCLkuK3nrYlcIiwga2V5OiBcIm1pZGRsZVwiIH0sXHJcbiAgICAgIHsgdGl0bGU6IFwi57Sn5YeRXCIsIGtleTogXCJzbWFsbFwiIH0sXHJcbiAgICBdO1xyXG4gICAgY29uc3Qgc29ydEl0ZW0gPSBbXHJcbiAgICAgIHsgdGl0bGU6IFwi5Y2V5a2X5q615o6S5bqPXCIsIGtleTogXCJzaW5nbGVcIiB9LFxyXG4gICAgICB7IHRpdGxlOiBcIuWkmuWtl+auteaOkuW6j1wiLCBrZXk6IFwibXVsdGlwbGVcIiB9LFxyXG4gICAgXTtcclxuICAgIGNvbnN0IHNvcnRDb250ZW50ID0gKFxyXG4gICAgICA8PlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiY290ZW50LXRpdGxlXCIpfVxyXG4gICAgICAgICAgc3R5bGU9e3tcclxuICAgICAgICAgICAgY3Vyc29yOiB0aGlzLnN0YXRlLmRlZmF1bHRTb3J0ID8gXCJub3QtYWxsb3dlZFwiIDogXCJwb2ludGVyXCIsXHJcbiAgICAgICAgICAgIGNvbG9yOiB0aGlzLnN0YXRlLmRlZmF1bHRTb3J0ICYmIFwicmdiYSgwLDAsMCwuNDUpXCIsXHJcbiAgICAgICAgICB9fVxyXG4gICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5zdGF0ZS5kZWZhdWx0U29ydCkge1xyXG4gICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgc29ydGVyOiBbXSwgc29ydEluZm86IHt9LCBkZWZhdWx0U29ydDogdHJ1ZSB9KTtcclxuICAgICAgICAgICAgY29uc3QgcGFyYW1zID0geyAuLi50aGlzLnN0YXRlLmZpbHRlclBhcmFtcyB9O1xyXG4gICAgICAgICAgICB0aGlzLnN0b3JlLnJlbG9hZCh7IHBhcmFtcyB9KTtcclxuICAgICAgICAgIH19XHJcbiAgICAgICAgPlxyXG4gICAgICAgICAg5oGi5aSN6buY6K6k5o6S5bqPXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAge3NvcnRJdGVtLm1hcCgoaXRlbSwgaW5kZXgpID0+IHtcclxuICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBrZXk9e2l0ZW0ua2V5fVxyXG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgICAgICBzb3J0ZXI6IFtdLFxyXG4gICAgICAgICAgICAgICAgICBzb3J0SW5mbzoge30sXHJcbiAgICAgICAgICAgICAgICAgIHNvcnRUeXBlOiBpdGVtLmtleSxcclxuICAgICAgICAgICAgICAgICAgZGVmYXVsdFNvcnQ6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBwYXJhbXMgPSB7IC4uLnRoaXMuc3RhdGUuZmlsdGVyUGFyYW1zIH07XHJcbiAgICAgICAgICAgICAgICB0aGlzLnN0b3JlLnJlbG9hZCh7IHBhcmFtcyB9KTtcclxuICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAge3NvcnRUeXBlID09IGl0ZW0ua2V5ID8gKFxyXG4gICAgICAgICAgICAgICAgPGE+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJjb250ZW50LXRpZW1cIil9PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3sgd2lkdGg6IDIwIH19PlxyXG4gICAgICAgICAgICAgICAgICAgICAge3NvcnRUeXBlID09IGl0ZW0ua2V5ICYmIDxDaGVja091dGxpbmVkIC8+fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXY+IHtpdGVtLnRpdGxlfTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImNvbnRlbnQtdGllbVwiKX0+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3sgd2lkdGg6IDIwIH19PjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2PiB7aXRlbS50aXRsZX08L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9KX1cclxuICAgICAgICB7dGhpcy5zdGF0ZS5zb3J0ZXIubGVuZ3RoID4gMCAmJiAoXHJcbiAgICAgICAgICA8PlxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJjb3RlbnQtdGl0bGVcIil9XHJcbiAgICAgICAgICAgICAgc3R5bGU9e3sgY29sb3I6IFwicmdiYSgwLDAsMCwuNDUpXCIgfX1cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIOW9k+WJjeaOkuW6j1xyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAge3RoaXMuc3RhdGUuc29ydGVyLm1hcCgoaXRlbSwgaW5kZXgpID0+IHtcclxuICAgICAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImNvbnRlbnQtdGllbVwiKX0ga2V5PXtpbmRleH0+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3sgd2lkdGg6IDIwIH19PlxyXG4gICAgICAgICAgICAgICAgICAgIHtpdGVtLm9yZGVyID09IFwiYXNjZW5kXCIgPyAoXHJcbiAgICAgICAgICAgICAgICAgICAgICA8U29ydEFzY2VuZGluZ091dGxpbmVkIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICAgICAgICAgIDxTb3J0RGVzY2VuZGluZ091dGxpbmVkIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXY+IHtpdGVtLmNvbHVtbi50aXRsZX08L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH0pfVxyXG4gICAgICAgICAgPC8+XHJcbiAgICAgICAgKX1cclxuICAgICAgPC8+XHJcbiAgICApO1xyXG4gICAgY29uc3Qgc2l6ZUNvbnRlbnQgPSAoXHJcbiAgICAgIDw+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImNvdGVudC10aXRsZVwiKX0+6KGo5qC85a+G5bqmPC9kaXY+XHJcbiAgICAgICAge3NpemVJdGVtLm1hcCgoaXRlbSwgaW5kZXgpID0+IHtcclxuICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBrZXk9e2l0ZW0ua2V5fVxyXG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgICAgICB0YWJsZVNpemU6IGl0ZW0ua2V5LFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIHt0YWJsZVNpemUgPT0gaXRlbS5rZXkgPyAoXHJcbiAgICAgICAgICAgICAgICA8YT5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImNvbnRlbnQtdGllbVwiKX0+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT17eyB3aWR0aDogMjAgfX0+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7dGFibGVTaXplID09IGl0ZW0ua2V5ICYmIDxDaGVja091dGxpbmVkIC8+fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXY+IHtpdGVtLnRpdGxlfTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImNvbnRlbnQtdGllbVwiKX0+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3sgd2lkdGg6IDIwIH19PjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2PiB7aXRlbS50aXRsZX08L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9KX1cclxuICAgICAgPC8+XHJcbiAgICApO1xyXG5cclxuICAgIGNvbnN0IGRlZmF1bHRTaG93Q29scyA9IGNvbHVtbnMuZmlsdGVyKChjb2xzKSA9PiBjb2xzLmluaXRTaG93ICE9PSBmYWxzZSk7XHJcblxyXG4gICAgY29uc3QgY29udGVudCA9IChcclxuICAgICAgPENoZWNrYm94Lkdyb3VwXHJcbiAgICAgICAgb25DaGFuZ2U9e3RoaXMuZmlsdGVyQ29sdW1uLmJpbmQodGhpcyl9XHJcbiAgICAgICAgb3B0aW9ucz17Y29sTGlzdHMubWFwKFxyXG4gICAgICAgICAgKGNvbDogQ29sdW1uVHlwZTx7fT4gJiB7IGZpbHRlckNvbHVtbjogYm9vbGVhbjsgZGF0YUluZGV4OiBhbnkgfSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoIWNvbC5kYXRhSW5kZXgpIHtcclxuICAgICAgICAgICAgICBjb2wuZGF0YUluZGV4ID0gY29sLnRpdGxlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgbGFiZWw6IGNvbC50aXRsZSxcclxuICAgICAgICAgICAgICB2YWx1ZTogY29sLmRhdGFJbmRleCxcclxuICAgICAgICAgICAgICBkaXNhYmxlZDogY29sLmZpbHRlckNvbHVtbiA9PT0gZmFsc2UsXHJcbiAgICAgICAgICAgIH0gYXMgQ2hlY2tib3hPcHRpb25UeXBlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICl9XHJcbiAgICAgICAgLy8gZGVmYXVsdFZhbHVlPXtkZWZhdWx0U2hvd0NvbHMubWFwKChjb2wpID0+IGNvbC5kYXRhSW5kZXgpfVxyXG4gICAgICAgIHZhbHVlPXtcclxuICAgICAgICAgIHRoaXMuc3RhdGUuZGVmYXVsdENoZWNrXHJcbiAgICAgICAgICAgID8gZGVmYXVsdFNob3dDb2xzLm1hcCgoY29sKSA9PiBjb2wuZGF0YUluZGV4KVxyXG4gICAgICAgICAgICA6IHRoaXMuc3RhdGUuY2hlY2tDb2x1bW5cclxuICAgICAgICB9XHJcbiAgICAgID48L0NoZWNrYm94Lkdyb3VwPlxyXG4gICAgKTtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJ0YWJsZS10b29sLWJhclwiKX0+XHJcbiAgICAgICAge3Rvb2xzLmluZGV4T2YoXCJjb2x1bW5cIikgPiAtMSAmJiAoXHJcbiAgICAgICAgICA8ZGl2IHN0eWxlPXt7IGZvbnRTaXplOiAxNCB9fT5cclxuICAgICAgICAgICAgPFBvcG92ZXJcclxuICAgICAgICAgICAgICB0aXRsZT1cIumAieaLqeaYvuekuueahOWIl1wiXHJcbiAgICAgICAgICAgICAgY29udGVudD17Y29udGVudH1cclxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b21SaWdodFwiXHJcbiAgICAgICAgICAgICAgdHJpZ2dlcj1cImNsaWNrXCJcclxuICAgICAgICAgICAgICBvdmVybGF5U3R5bGU9e3sgbWluV2lkdGg6IDQxMCwgbWF4V2lkdGg6IDQ1MCB9fVxyXG4gICAgICAgICAgICAgIC8vIGdldFBvcHVwQ29udGFpbmVyPXsoKSA9PiB0aGlzLnRoSWNvblJlZi5jdXJyZW50fVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPEFwcHN0b3JlT3V0bGluZWQgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJhcHAtc3RvcmUtaWNvblwiKX0gLz5cclxuICAgICAgICAgICAgPC9Qb3BvdmVyPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgKX1cclxuICAgICAgICB7dG9vbHMuaW5kZXhPZihcInNvcnRcIikgPiAtMSAmJiAoXHJcbiAgICAgICAgICA8ZGl2IHN0eWxlPXt7IG1hcmdpblJpZ2h0OiA4LCBmb250U2l6ZTogMTQgfX0+XHJcbiAgICAgICAgICAgIDxQb3BvdmVyIHBsYWNlbWVudD1cImJvdHRvbVwiIGNvbnRlbnQ9e3NvcnRDb250ZW50fSB0cmlnZ2VyPVwiY2xpY2tcIj5cclxuICAgICAgICAgICAgICA8U29ydEFzY2VuZGluZ091dGxpbmVkIC8+XHJcbiAgICAgICAgICAgIDwvUG9wb3Zlcj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICl9XHJcbiAgICAgICAge3Rvb2xzLmluZGV4T2YoXCJzaXplXCIpID4gLTEgJiYgKFxyXG4gICAgICAgICAgPGRpdiBzdHlsZT17eyBtYXJnaW5SaWdodDogOCwgZm9udFNpemU6IDE0IH19PlxyXG4gICAgICAgICAgICA8UG9wb3ZlciBwbGFjZW1lbnQ9XCJib3R0b21cIiBjb250ZW50PXtzaXplQ29udGVudH0gdHJpZ2dlcj1cImNsaWNrXCI+XHJcbiAgICAgICAgICAgICAgPENvbHVtbkhlaWdodE91dGxpbmVkIC8+XHJcbiAgICAgICAgICAgIDwvUG9wb3Zlcj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICl9XHJcbiAgICAgICAge3Rvb2xzLmluZGV4T2YoXCJyZWZyZXNoXCIpID4gLTEgJiYgKFxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBzdHlsZT17eyBtYXJnaW5SaWdodDogOCwgZm9udFNpemU6IDE0LCBjdXJzb3I6IFwicG9pbnRlclwiIH19XHJcbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICBjb25zdCBwYXJhbXMgPSB7IC4uLnRoaXMuc3RhdGUuZmlsdGVyUGFyYW1zIH07XHJcbiAgICAgICAgICAgICAgaWYgKHRvb2xzQ2xpY2sub25SZWZyZXNoKSB7XHJcbiAgICAgICAgICAgICAgICB0b29sc0NsaWNrLm9uUmVmcmVzaCgpO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnN0b3JlLmxvYWQoeyBwYXJhbXMgfSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9fVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8UmVkb091dGxpbmVkIC8+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICApfVxyXG4gICAgICA8L2Rpdj5cclxuICAgICk7XHJcbiAgfVxyXG4gIHJlbmRlcigpIHtcclxuICAgIGxldCBfdGhpcyA9IHRoaXMsXHJcbiAgICAgIHtcclxuICAgICAgICBsb2FkaW5nLFxyXG4gICAgICAgIGRhdGFTb3VyY2UsXHJcbiAgICAgICAgcGFnaW5hdGlvbiA9IHt9LFxyXG4gICAgICAgIHNlYXJjaFRleHQsXHJcbiAgICAgICAgZmllbGRPcHRpb24sXHJcbiAgICAgICAgc2VhcmNoQ29sb3IsXHJcbiAgICAgICAgdGFibGVTaXplLFxyXG4gICAgICB9ID0gdGhpcy5zdGF0ZSxcclxuICAgICAgcHJvcHMgPSB1dGlscy5vbWl0KFxyXG4gICAgICAgIHRoaXMucHJvcHMsXHJcbiAgICAgICAgW1xyXG4gICAgICAgICAgXCJzdG9yZVwiLFxyXG4gICAgICAgICAgXCJvbkNoYW5nZVwiLFxyXG4gICAgICAgICAgXCJjb2x1bW5zXCIsXHJcbiAgICAgICAgICBcInJlc2V0Q29sdW1uXCIsXHJcbiAgICAgICAgICBcInRvb2xiYXJcIixcclxuICAgICAgICAgIFwic29ydEZpZWxkc1wiLFxyXG4gICAgICAgICAgXCJmaWx0ZXJDb2x1bW5cIixcclxuICAgICAgICAgIFwic29ydFNlYXJjaFwiXHJcbiAgICAgICAgXSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICByb3dLZXk6IFwiaWRcIixcclxuICAgICAgICAgIGNsaWNrQ2hhbmdlQ29sb3I6IGZhbHNlLFxyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICAgIGlmIChwcm9wcy5wYWdpbmF0aW9uICE9PSBmYWxzZSkge1xyXG4gICAgICBwcm9wcy5wYWdpbmF0aW9uID0ge1xyXG4gICAgICAgIHBvc2l0aW9uOiBbXCJib3R0b21SaWdodFwiXSxcclxuICAgICAgICBzaG93U2l6ZUNoYW5nZXI6IHRydWUsXHJcbiAgICAgICAgc2hvd1F1aWNrSnVtcGVyOiB0cnVlLFxyXG4gICAgICAgIC4uLnByb3BzLnBhZ2luYXRpb24sXHJcbiAgICAgICAgLi4ucGFnaW5hdGlvbixcclxuICAgICAgfTtcclxuICAgICAgaWYgKHByb3BzLnNob3dUb3RhbCA9PSB0cnVlKSB7XHJcbiAgICAgICAgcHJvcHMucGFnaW5hdGlvbi5zaG93VG90YWwgPSBmdW5jdGlvbiAodG90YWwsIFtmcm9tLCB0b10pIHtcclxuICAgICAgICAgIC8vIHJldHVybiBcIuaYvuekuiBcIiArIGZyb20gKyBcIiAtIFwiICsgdG8gKyBcIuadoe+8jOWFsSBcIiArIHRvdGFsICsgXCIg5p2hXCI7XHJcbiAgICAgICAgICByZXR1cm4gXCLlhbEgXCIgKyB0b3RhbCArIFwiIOadoVwiO1xyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHByb3BzLm9uQ2hhbmdlID0gZnVuY3Rpb24gKHBhZ2luYXRpb24sIGZpbHRlcnMsIHNvcnRlciwgZXh0cmEpIHtcclxuICAgICAgX3RoaXMub25DaGFuZ2UocGFnaW5hdGlvbiwgZmlsdGVycywgc29ydGVyLCBleHRyYSk7XHJcbiAgICB9O1xyXG4gICAgaWYgKHByb3BzLmNsaWNrQ2hhbmdlQ29sb3IpIHtcclxuICAgICAgY29uc3Qgb25Sb3dGbiA9IHByb3BzLm9uUm93O1xyXG4gICAgICBwcm9wcy5vblJvdyA9IGZ1bmN0aW9uIChyZWNvcmQsIGluZGV4KSB7XHJcbiAgICAgICAgdmFyIGN1c3RvbSA9IG9uUm93Rm4gPyBvblJvd0ZuKHJlY29yZCwgaW5kZXgpIDoge307XHJcbiAgICAgICAgY29uc3Qgb25DbGlja0ZuID0gY3VzdG9tLm9uQ2xpY2s7XHJcbiAgICAgICAgY3VzdG9tLm9uQ2xpY2sgPSAoZXZlbnQpID0+IHtcclxuICAgICAgICAgIF90aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgYWN0aXZlSW5kZXg6IGluZGV4LCAvL+iOt+WPlueCueWHu+ihjOeahOe0ouW8lVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICB1dGlscy5jYWxsYmFjayhvbkNsaWNrRm4sIF90aGlzLCBbZXZlbnRdKTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIHJldHVybiBjdXN0b207XHJcbiAgICAgIH07XHJcbiAgICAgIHByb3BzLnJvd0NsYXNzTmFtZSA9IGZ1bmN0aW9uIChyZWNvcmQsIGluZGV4KSB7XHJcbiAgICAgICAgcmV0dXJuIGluZGV4ID09PSBfdGhpcy5zdGF0ZS5hY3RpdmVJbmRleFxyXG4gICAgICAgICAgPyBgJHtzdHlsZXMuY2xpY2tSb3dTdHlsZX1gXHJcbiAgICAgICAgICA6IFwiXCI7XHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBsZXQgbmV3RGF0YVNvdXJjZSA9IFtdO1xyXG4gICAgaWYgKHNlYXJjaFRleHQpIHtcclxuICAgICAgY29uc3QgZGF0YSA9IHRyZWVVdGlscy5nZXRTZWFyY2hNZW51RGF0YXMoXHJcbiAgICAgICAgdGhpcyxcclxuICAgICAgICBzZWFyY2hUZXh0LFxyXG4gICAgICAgIGZpZWxkT3B0aW9uLFxyXG4gICAgICAgIHNlYXJjaENvbG9yXHJcbiAgICAgICk7XHJcbiAgICAgIG5ld0RhdGFTb3VyY2UgPSBkYXRhLnRyZWVEYXRhcztcclxuICAgICAgcHJvcHMuZXhwYW5kZWRSb3dLZXlzID0gZGF0YS5vcGVuS2V5cztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIG5ld0RhdGFTb3VyY2UgPSBkYXRhU291cmNlO1xyXG4gICAgfVxyXG4gICAgcHJvcHMuc3RvcmUgPSBwcm9wcy5zdG9yZSB8fCB7fTtcclxuICAgIHByb3BzLnN0b3JlLmF1dG9Mb2FkID0gcHJvcHMuc3RvcmUuYXV0b0xvYWQgPT09IGZhbHNlID8gZmFsc2UgOiB0cnVlO1xyXG4gICAgY29uc3QgeyBkcmFnYWJsZSB9ID0gX3RoaXMucHJvcHM7XHJcbiAgICBjb25zdCBkcmFnYWJsZVByb3BzID1cclxuICAgICAgZHJhZ2FibGUgPT09IHRydWVcclxuICAgICAgICA/IHtcclxuICAgICAgICAgICAgY29tcG9uZW50czogQm9keVJvd0NvbXBvbmVudCxcclxuICAgICAgICAgICAgb25Sb3c6IChyZWNvcmQsIGluZGV4KSA9PiAoe1xyXG4gICAgICAgICAgICAgIGluZGV4LFxyXG4gICAgICAgICAgICAgIHJlY29yZCxcclxuICAgICAgICAgICAgICBtb3ZlUm93OiB0aGlzLm1vdmVSb3csXHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIDoge307XHJcbiAgICBsZXQgeyByZXNpemVDb2x1bW4gfSA9IHRoaXMucHJvcHM7XHJcblxyXG4gICAgY29uc3QgcmVzaXplUHJvcHMgPVxyXG4gICAgICByZXNpemVDb2x1bW4gPT09IHRydWUgPyB7IGNvbXBvbmVudHM6IHRoaXMuY29tcG9uZW50cyB9IDogbnVsbDtcclxuICAgIGNvbnN0IHsgdGFibGVUb29sIH0gPSBjb25maWcoKTtcclxuICAgIGxldCB0b29sRmxhZyA9IHRydWU7XHJcbiAgICBsZXQgdG9vbHByb3BzID1cclxuICAgICAgdGhpcy5wcm9wcy50b29sYmFyID09PSBmYWxzZSB8fCB0aGlzLnByb3BzLnRvb2xiYXI/LnNob3cgPT09IGZhbHNlXHJcbiAgICAgICAgPyBmYWxzZVxyXG4gICAgICAgIDogdHJ1ZTtcclxuICAgIGlmICghdG9vbHByb3BzKSB7XHJcbiAgICAgIHRvb2xGbGFnID0gdG9vbHByb3BzO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdG9vbEZsYWcgPSB0YWJsZVRvb2wuc2hvdyA9PT0gZmFsc2UgPyBmYWxzZSA6IHRydWU7XHJcbiAgICB9XHJcbiAgICBjb25zdCBEZWZhdWx0VGFibGUgPSAoXHJcbiAgICAgIDw+XHJcbiAgICAgICAge3Rvb2xGbGFnICYmIHRoaXMucmVuZGVyVG9vbEJhcigpfVxyXG4gICAgICAgIDxUYWJsZVxyXG4gICAgICAgICAgY2hpbGRyZW5Db2x1bW5OYW1lPVwiY2hpbGROb2Rlc1wiXHJcbiAgICAgICAgICBzaGVpdGVtXHJcbiAgICAgICAgICBkYXRhU291cmNlPXtuZXdEYXRhU291cmNlfVxyXG4gICAgICAgICAgY29sdW1ucz17dGhpcy5nZXRDb2x1bW5zKCl9XHJcbiAgICAgICAgICBsb2FkaW5nPXtsb2FkaW5nfVxyXG4gICAgICAgICAgY2xhc3NOYW1lPXtzdHlsZXNbXCJuc2MtdGFibGVcIl19XHJcbiAgICAgICAgICBsb2NhbGU9e3tcclxuICAgICAgICAgICAgZW1wdHlUZXh0OiA8Tm9EYXRhIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwidGFibGUtbm9kYXRhXCIpfSAvPixcclxuICAgICAgICAgIH19XHJcbiAgICAgICAgICBzY3JvbGw9e3sgeDogXCJtYXgtY29udGVudFwiIH19XHJcbiAgICAgICAgICB7Li4ucmVzaXplUHJvcHN9XHJcbiAgICAgICAgICB7Li4ucHJvcHN9XHJcbiAgICAgICAgICB7Li4uZHJhZ2FibGVQcm9wc31cclxuICAgICAgICAgIHNpemU9e3RhYmxlU2l6ZX1cclxuICAgICAgICAvPlxyXG4gICAgICA8Lz5cclxuICAgICk7XHJcblxyXG4gICAgcmV0dXJuIGRyYWdhYmxlID09PSB0cnVlID8gKFxyXG4gICAgICA8RG5kUHJvdmlkZXIgYmFja2VuZD17SFRNTDVCYWNrZW5kfT57RGVmYXVsdFRhYmxlfTwvRG5kUHJvdmlkZXI+XHJcbiAgICApIDogKFxyXG4gICAgICBEZWZhdWx0VGFibGVcclxuICAgICk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCB3aXRoWmhMb2NhbGUoTlNDVGFibGUpO1xyXG4iXX0=
@@ -33,8 +33,8 @@ export default class TreeSearch extends PureComponent<ITreeSearchProps> {
33
33
  /**
34
34
  * 菜单搜索
35
35
  */
36
- handleMenuSearch: (e: any) => void;
37
- handleSearch: (value: any, e: any) => void;
36
+ handleMenuSearch: (value: any) => void;
37
+ handleSearch: (e: any) => void;
38
38
  moduleTreeMenu: JSX.Element;
39
39
  onlyRenderSearch: () => JSX.Element;
40
40
  render(): JSX.Element;
@@ -120,11 +120,15 @@ var TreeSearch = /*#__PURE__*/function (_PureComponent) {
120
120
  _this2.props.handleDeleteModule(params);
121
121
  });
122
122
 
123
- _defineProperty(_assertThisInitialized(_this2), "handleMenuSearch", function (e) {
124
- _this2.props.treeInstance.handleSearch(e.target.value, {}, "");
123
+ _defineProperty(_assertThisInitialized(_this2), "handleMenuSearch", function (value) {
124
+ _this2.props.treeInstance.handleSearch(value, {
125
+ keyField: "key",
126
+ titleField: "title",
127
+ pathsField: "paths"
128
+ }, "");
125
129
  });
126
130
 
127
- _defineProperty(_assertThisInitialized(_this2), "handleSearch", function (value, e) {
131
+ _defineProperty(_assertThisInitialized(_this2), "handleSearch", function (e) {
128
132
  _this2.handleMenuSearch(e);
129
133
  });
130
134
 
@@ -169,8 +173,10 @@ var TreeSearch = /*#__PURE__*/function (_PureComponent) {
169
173
  }
170
174
  }, /*#__PURE__*/React.createElement(_Input.Search, {
171
175
  allowClear: true,
172
- placeholder: "\u641C\u7D22\u76EE\u5F55",
173
- onSearch: _this2.handleSearch
176
+ placeholder: "\u641C\u7D22\u76EE\u5F5511",
177
+ onSearch: function onSearch(value) {
178
+ _this2.handleSearch(value);
179
+ }
174
180
  }));
175
181
  });
176
182
 
@@ -270,4 +276,4 @@ var TreeSearch = /*#__PURE__*/function (_PureComponent) {
270
276
  }(PureComponent);
271
277
 
272
278
  export { TreeSearch as default };
273
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2Jhc2UvdHJlZS9UcmVlU2VhcmNoLnRzeCJdLCJuYW1lcyI6WyJSZWFjdCIsIlB1cmVDb21wb25lbnQiLCJEZWxldGVPdXRsaW5lZCIsIkVkaXRPdXRsaW5lZCIsIkZvbGRlckFkZE91dGxpbmVkIiwiUGx1c091dGxpbmVkIiwiU3luY091dGxpbmVkIiwiTnNjSWNvbiIsInJlcXVlc3QiLCJUcmVlU2VhcmNoIiwiY3JlYXRlUmVmIiwic2VsZWN0ZWROb2RlIiwiZ2V0U2VsZWN0ZWROb2RlIiwia2V5IiwicHJvcHMiLCJ0cmVlSW5zdGFuY2UiLCJzdGF0ZSIsInNlbGVjdE5vZGUiLCJlIiwic2VsZWN0ZWROb2RlSWQiLCJnZXRTZWxlY3RlZE5vZGVJZCIsImNoZWNrU2VsZWN0Tm9kZSIsIndhcm4iLCJoYW5kbGVBZGRNb2R1bGUiLCJoYW5kbGVFZGl0TW9kdWxlIiwiaGFuZGxlRGVsZXRlTW9kdWxlIiwicGFyYW1zIiwiaGFuZGxlU2VhcmNoIiwidGFyZ2V0IiwidmFsdWUiLCJoYW5kbGVNZW51U2VhcmNoIiwiaGFuZGxlTWVudUl0ZW1DbGljayIsImNvbG9yIiwibWFyZ2luQm90dG9tIiwiaWQiLCJ0eXBlIiwiY2FsbGJhY2siLCJjb25zb2xlIiwiZXJyb3IiLCJfdGhpcyIsIm1ldGhvZCIsImRhdGEiLCJyZWxvYWQiLCJzZWFyY2hhYmxlIiwib25seVJlbmRlclNlYXJjaCIsIm1vZHVsZVRyZWVNZW51IiwidHJlZVJlZnJlc2hJY29uIiwiY3VycmVudCIsInNldExvYWRpbmciLCJzdG9yZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU9BLEtBQVAsSUFBZ0JDLGFBQWhCLFFBQXFDLE9BQXJDO0FBRUEsU0FDRUMsY0FERixFQUVFQyxZQUZGLEVBR0VDLGlCQUhGLEVBSUVDLFlBSkYsRUFLRUMsWUFMRixRQU1PLG1CQU5QO0FBT0EsT0FBT0MsT0FBUCxN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ZWFjdFwiO1xyXG5pbXBvcnQgeyBJbnB1dCwgRHJvcGRvd24sIERpdmlkZXIsIE1lbnUsIFBvcGNvbmZpcm0sIG1lc3NhZ2UgfSBmcm9tIFwiYW50ZFwiO1xyXG5pbXBvcnQge1xyXG4gIERlbGV0ZU91dGxpbmVkLFxyXG4gIEVkaXRPdXRsaW5lZCxcclxuICBGb2xkZXJBZGRPdXRsaW5lZCxcclxuICBQbHVzT3V0bGluZWQsXHJcbiAgU3luY091dGxpbmVkLFxyXG59IGZyb20gXCJAYW50LWRlc2lnbi9pY29uc1wiO1xyXG5pbXBvcnQgTnNjSWNvbiBmcm9tIFwiLi4vY29tbW9uL0ljb25cIjtcclxuaW1wb3J0IHsgcmVxdWVzdCB9IGZyb20gXCJAYmotbnNjL21zbi9saWIvdXRpbHNcIjtcclxuaW1wb3J0IE5zY1RyZWUgZnJvbSBcIi5cIjtcclxuaW50ZXJmYWNlIElUcmVlU2VhcmNoUHJvcHMge1xyXG4gIHRyZWVSZWY/OiBSZWFjdC5SZWZPYmplY3Q8YW55PjtcclxuICB0cmVlSW5zdGFuY2U6IE5zY1RyZWU7XHJcbiAgaGFuZGxlQWRkTW9kdWxlPzogKHBhcmFtczogYW55KSA9PiB2b2lkO1xyXG4gIGhhbmRsZUVkaXRNb2R1bGU/OiAocGFyYW1zOiBhbnkpID0+IHZvaWQ7XHJcbiAgaGFuZGxlRGVsZXRlTW9kdWxlPzogKHBhcmFtczogYW55KSA9PiB2b2lkO1xyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBUcmVlU2VhcmNoIGV4dGVuZHMgUHVyZUNvbXBvbmVudDxJVHJlZVNlYXJjaFByb3BzPiB7XHJcbiAgdHJlZVJlZnJlc2hJY29uID0gUmVhY3QuY3JlYXRlUmVmPE5zY0ljb24+KCk7XHJcblxyXG4gIHNlbGVjdGVkVHJlZU5vZGVJZCA9IFwiXCI7XHJcblxyXG4gIGdldFNlbGVjdGVkTm9kZUlkID0gKCkgPT4ge1xyXG4gICAgY29uc3Qgc2VsZWN0ZWROb2RlID0gdGhpcy5nZXRTZWxlY3RlZE5vZGUoKSB8fCB7fTtcclxuICAgIHJldHVybiBzZWxlY3RlZE5vZGUua2V5O1xyXG4gIH07XHJcblxyXG4gIGdldFNlbGVjdGVkTm9kZSA9ICgpID0+IHtcclxuICAgIHJldHVybiB0aGlzLnByb3BzLnRyZWVJbnN0YW5jZS5zdGF0ZS5zZWxlY3ROb2RlO1xyXG4gIH07XHJcblxyXG4gIC8qKlxyXG4gICAqIOaooeWdl+agkeaTjeS9nFxyXG4gICAqL1xyXG4gIGhhbmRsZU1lbnVJdGVtQ2xpY2sgPSAoZSkgPT4ge1xyXG4gICAgY29uc3Qgc2VsZWN0ZWROb2RlSWQgPSB0aGlzLmdldFNlbGVjdGVkTm9kZUlkKCk7XHJcbiAgICBjb25zdCBzZWxlY3RlZE5vZGUgPSB0aGlzLmdldFNlbGVjdGVkTm9kZSgpO1xyXG5cclxuICAgIGNvbnN0IGNoZWNrU2VsZWN0Tm9kZSA9ICgpID0+IHtcclxuICAgICAgaWYgKCFzZWxlY3RlZE5vZGVJZCkge1xyXG4gICAgICAgIG1lc3NhZ2Uud2FybihcIuivt+mAieaLqeimgeS/ruaUueeahOebruW9le+8gVwiKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9O1xyXG5cclxuICAgIHN3aXRjaCAoZS5rZXkpIHtcclxuICAgICAgY2FzZSBcImFkZFwiOiB7XHJcbiAgICAgICAgdGhpcy5oYW5kbGVBZGRNb2R1bGUoc2VsZWN0ZWROb2RlKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXNlIFwiZWRpdFwiOiB7XHJcbiAgICAgICAgaWYgKGNoZWNrU2VsZWN0Tm9kZSgpKSB7XHJcbiAgICAgICAgICB0aGlzLmhhbmRsZUVkaXRNb2R1bGUoc2VsZWN0ZWROb2RlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgY2FzZSBcImRlbGV0ZVwiOiB7XHJcbiAgICAgICAgaWYgKGNoZWNrU2VsZWN0Tm9kZSgpKSB7XHJcbiAgICAgICAgICB0aGlzLmhhbmRsZURlbGV0ZU1vZHVsZShzZWxlY3RlZE5vZGUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH07XHJcblxyXG4gIC8qKlxyXG4gICAqIOa3u+WKoOaooeWdl+aVsOaNrlxyXG4gICAqIEBwYXJhbSB7Kn0gcGFyYW1zXHJcbiAgICovXHJcbiAgaGFuZGxlQWRkTW9kdWxlID0gKHBhcmFtcykgPT4ge1xyXG4gICAgdGhpcy5wcm9wcy5oYW5kbGVBZGRNb2R1bGUocGFyYW1zKTtcclxuICB9O1xyXG5cclxuICAvL+S/ruaUueaooeWdl1xyXG4gIGhhbmRsZUVkaXRNb2R1bGUocGFyYW1zKSB7XHJcbiAgICB0aGlzLnByb3BzLmhhbmRsZUVkaXRNb2R1bGUocGFyYW1zKTtcclxuICAgIC8vIGNvbnN0IF90aGlzID0gdGhpcywgeyBtb2R1bGVFaWR0IH0gPSB0aGlzLnJlZnM7XHJcbiAgICAvLyBtb2R1bGVFaWR0LnNob3coe1xyXG4gICAgLy8gICBwYXJhbXM6IHBhXHJcbiAgICAvLyAgIHJhbXMsXHJcbiAgICAvLyAgIHR5cGU6ICdlZGl0JyxcclxuICAgIC8vICAgY2FsbGJhY2s6IGZ1bmN0aW9uIChyZXN1bHQpIHtcclxuICAgIC8vICAgICBpZiAoIXJlc3VsdCkgcmV0dXJuO1xyXG4gICAgLy8gICAgIF90aGlzLnJlbG9hZChyZXN1bHQudHlwZSwgZnVuY3Rpb24gKCkge1xyXG4gICAgLy8gICAgICAgbWVzc2FnZS5zdWNjZXNzKFwi5L+u5pS55oiQ5Yqf77yBXCIpO1xyXG4gICAgLy8gICAgIH0pO1xyXG4gICAgLy8gICB9XHJcbiAgICAvLyB9KTtcclxuICB9XHJcblxyXG4gIGhhbmRsZURlbGV0ZU1vZHVsZSA9IChwYXJhbXM6IGFueSkgPT4ge1xyXG4gICAgdGhpcy5wcm9wcy5oYW5kbGVEZWxldGVNb2R1bGUocGFyYW1zKTtcclxuICB9O1xyXG5cclxuICAvKipcclxuICAgKlxyXG4gICAqIEBwYXJhbSB7Kn0gaWQg6KaB5Yig6Zmk55qE5qih5Z2XSURcclxuICAgKiBAcGFyYW0geyp9IHR5cGUgIDAwPeebruW9lSAgMDE95qih5Z2XXHJcbiAgICovXHJcbiAgaGFuZGxlUmVtb3ZlTW9kdWxlKGlkLCB0eXBlLCBjYWxsYmFjaz8pIHtcclxuICAgIGlmICghaWQpIHtcclxuICAgICAgY29uc29sZS5lcnJvcihcIuWIoOmZpOS4u+mUruS4jeiDveS4uuepuu+8jOmdnuazleaTjeS9nO+8gVwiKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgX3RoaXMgPSB0aGlzO1xyXG4gICAgcmVxdWVzdChcIi9hcGkvYWRtaW4vbW9kdWxlcy9cIiArIGlkLCB7XHJcbiAgICAgIG1ldGhvZDogXCJERUxFVEVcIixcclxuICAgICAgY2FsbGJhY2s6IGZ1bmN0aW9uIChkYXRhKSB7XHJcbiAgICAgICAgaWYgKHR5cGVvZiBjYWxsYmFjayA9PT0gXCJmdW5jdGlvblwiKVxyXG4gICAgICAgICAgX3RoaXMucHJvcHMudHJlZUluc3RhbmNlLnJlbG9hZCh7IHBhcmFtczogeyB0eXBlIH0sIGNhbGxiYWNrIH0pO1xyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDoj5zljZXmkJzntKJcclxuICAgKi9cclxuICBoYW5kbGVNZW51U2VhcmNoID0gKGUpID0+IHtcclxuICAgIHRoaXMucHJvcHMudHJlZUluc3RhbmNlLmhhbmRsZVNlYXJjaChlLnRhcmdldC52YWx1ZSwge30sIFwiXCIpO1xyXG4gIH07XHJcblxyXG4gIC8vIOS7heaQnOe0olxyXG4gIGhhbmRsZVNlYXJjaCA9ICh2YWx1ZSwgZSkgPT4ge1xyXG4gICAgdGhpcy5oYW5kbGVNZW51U2VhcmNoKGUpO1xyXG4gIH07XHJcblxyXG4gIC8v5qih5Z2X5qCR55qE6I+c5Y2VTWVudVxyXG4gIG1vZHVsZVRyZWVNZW51ID0gKFxyXG4gICAgPE1lbnUgb25DbGljaz17dGhpcy5oYW5kbGVNZW51SXRlbUNsaWNrfT5cclxuICAgICAgPE1lbnUuSXRlbSBrZXk9XCJhZGRcIj5cclxuICAgICAgICA8Rm9sZGVyQWRkT3V0bGluZWQgc3R5bGU9e3sgY29sb3I6IFwiIzE4OTBmZlwiIH19IC8+XHJcbiAgICAgICAg5re75Yqg55uu5b2VXHJcbiAgICAgIDwvTWVudS5JdGVtPlxyXG4gICAgICA8TWVudS5JdGVtIGtleT1cImVkaXRcIj5cclxuICAgICAgICA8RWRpdE91dGxpbmVkIHN0eWxlPXt7IGNvbG9yOiBcImdyZWVuXCIgfX0gLz5cclxuICAgICAgICDnvJbovpHnm67lvZVcclxuICAgICAgPC9NZW51Lkl0ZW0+XHJcbiAgICAgIDxNZW51Lkl0ZW0ga2V5PVwicmVtb3ZlXCI+XHJcbiAgICAgICAgPFBvcGNvbmZpcm1cclxuICAgICAgICAgIHRpdGxlPVwi5L2g56Gu5a6a5Yig6Zmk5ZCXP1wiXHJcbiAgICAgICAgICBvbkNvbmZpcm09eyhlKSA9PiB7XHJcbiAgICAgICAgICAgIGlmICghdGhpcy5nZXRTZWxlY3RlZE5vZGVJZCgpKSB7XHJcbiAgICAgICAgICAgICAgbWVzc2FnZS53YXJuKFwi6K+36YCJ5oup6KaB5Yig6Zmk55qE55uu5b2V77yBXCIpO1xyXG4gICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLnByb3BzLmhhbmRsZURlbGV0ZU1vZHVsZSh0aGlzLmdldFNlbGVjdGVkTm9kZSgpKTtcclxuICAgICAgICAgICAgLy8gdGhpcy5oYW5kbGVSZW1vdmVNb2R1bGUodGhpcy5nZXRTZWxlY3RlZE5vZGVJZCgpLCBcIjAwXCIpO1xyXG4gICAgICAgICAgfX1cclxuICAgICAgICA+XHJcbiAgICAgICAgICA8RGVsZXRlT3V0bGluZWQgc3R5bGU9e3sgY29sb3I6IFwicmVkXCIgfX0gLz5cclxuICAgICAgICAgIOWIoOmZpOebruW9lVxyXG4gICAgICAgIDwvUG9wY29uZmlybT5cclxuICAgICAgPC9NZW51Lkl0ZW0+XHJcbiAgICA8L01lbnU+XHJcbiAgKTtcclxuXHJcbiAgb25seVJlbmRlclNlYXJjaCA9ICgpID0+IHtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIDxkaXYgc3R5bGU9e3sgbWFyZ2luQm90dG9tOiAxMCB9fT5cclxuICAgICAgICA8SW5wdXQuU2VhcmNoXHJcbiAgICAgICAgICBhbGxvd0NsZWFyXHJcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cIuaQnOe0ouebruW9lVwiXHJcbiAgICAgICAgICBvblNlYXJjaD17dGhpcy5oYW5kbGVTZWFyY2h9XHJcbiAgICAgICAgPjwvSW5wdXQuU2VhcmNoPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICk7XHJcbiAgfTtcclxuXHJcbiAgcmVuZGVyKCkge1xyXG4gICAgaWYgKHRoaXMucHJvcHMudHJlZUluc3RhbmNlLnByb3BzLnNlYXJjaGFibGUpIHtcclxuICAgICAgcmV0dXJuIHRoaXMub25seVJlbmRlclNlYXJjaCgpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIChcclxuICAgICAgPGRpdiBzdHlsZT17eyBtYXJnaW5Cb3R0b206IDEwIH19PlxyXG4gICAgICAgIDxJbnB1dFxyXG4gICAgICAgICAgYWxsb3dDbGVhclxyXG4gICAgICAgICAgYWRkb25BZnRlcj17XHJcbiAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgPERyb3Bkb3duIG92ZXJsYXk9e3RoaXMubW9kdWxlVHJlZU1lbnV9IHRyaWdnZXI9e1tcImNsaWNrXCJdfT5cclxuICAgICAgICAgICAgICAgIDxQbHVzT3V0bGluZWQgLz5cclxuICAgICAgICAgICAgICA8L0Ryb3Bkb3duPlxyXG4gICAgICAgICAgICAgIDxEaXZpZGVyIHR5cGU9XCJ2ZXJ0aWNhbFwiIC8+XHJcbiAgICAgICAgICAgICAgPE5zY0ljb25cclxuICAgICAgICAgICAgICAgIHR5cGU9ezxTeW5jT3V0bGluZWQgLz59XHJcbiAgICAgICAgICAgICAgICByZWY9e3RoaXMudHJlZVJlZnJlc2hJY29ufVxyXG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICBjb25zdCB7IHRyZWVJbnN0YW5jZSB9ID0gdGhpcy5wcm9wcztcclxuICAgICAgICAgICAgICAgICAgY29uc3QgdHJlZVJlZnJlc2hJY29uID0gdGhpcy50cmVlUmVmcmVzaEljb24uY3VycmVudDtcclxuICAgICAgICAgICAgICAgICAgdHJlZVJlZnJlc2hJY29uLnNldExvYWRpbmcodHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgIHRyZWVJbnN0YW5jZS5zdG9yZS5yZWxvYWQoe1xyXG4gICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrOiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0cmVlUmVmcmVzaEljb24uc2V0TG9hZGluZyhmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCLmkJzntKLnm67lvZVcIlxyXG4gICAgICAgICAgb25QcmVzc0VudGVyPXt0aGlzLmhhbmRsZU1lbnVTZWFyY2h9XHJcbiAgICAgICAgLz5cclxuICAgICAgPC9kaXY+XHJcbiAgICApO1xyXG4gIH1cclxufVxyXG4iXX0=
279
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2Jhc2UvdHJlZS9UcmVlU2VhcmNoLnRzeCJdLCJuYW1lcyI6WyJSZWFjdCIsIlB1cmVDb21wb25lbnQiLCJEZWxldGVPdXRsaW5lZCIsIkVkaXRPdXRsaW5lZCIsIkZvbGRlckFkZE91dGxpbmVkIiwiUGx1c091dGxpbmVkIiwiU3luY091dGxpbmVkIiwiTnNjSWNvbiIsInJlcXVlc3QiLCJUcmVlU2VhcmNoIiwiY3JlYXRlUmVmIiwic2VsZWN0ZWROb2RlIiwiZ2V0U2VsZWN0ZWROb2RlIiwia2V5IiwicHJvcHMiLCJ0cmVlSW5zdGFuY2UiLCJzdGF0ZSIsInNlbGVjdE5vZGUiLCJlIiwic2VsZWN0ZWROb2RlSWQiLCJnZXRTZWxlY3RlZE5vZGVJZCIsImNoZWNrU2VsZWN0Tm9kZSIsIndhcm4iLCJoYW5kbGVBZGRNb2R1bGUiLCJoYW5kbGVFZGl0TW9kdWxlIiwiaGFuZGxlRGVsZXRlTW9kdWxlIiwicGFyYW1zIiwidmFsdWUiLCJoYW5kbGVTZWFyY2giLCJrZXlGaWVsZCIsInRpdGxlRmllbGQiLCJwYXRoc0ZpZWxkIiwiaGFuZGxlTWVudVNlYXJjaCIsImhhbmRsZU1lbnVJdGVtQ2xpY2siLCJjb2xvciIsIm1hcmdpbkJvdHRvbSIsImlkIiwidHlwZSIsImNhbGxiYWNrIiwiY29uc29sZSIsImVycm9yIiwiX3RoaXMiLCJtZXRob2QiLCJkYXRhIiwicmVsb2FkIiwic2VhcmNoYWJsZSIsIm9ubHlSZW5kZXJTZWFyY2giLCJtb2R1bGVUcmVlTWVudSIsInRyZWVSZWZyZXNoSWNvbiIsImN1cnJlbnQiLCJzZXRMb2FkaW5nIiwic3RvcmUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPQSxLQUFQLElBQWdCQyxhQUFoQixRQUFxQyxPQUFyQztBQUVBLFNBQ0VDLGNBREYsRUFFRUMsWUFGRixFQUdFQyxpQkFIRixFQUlFQyxZQUpGLEVBS0VDLFlBTEYs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WSxFQUFFLEtBQUtsQjtBQXpCckIsUUFERixDQURGO0FBK0JEOzs7O0VBak1xQy9CLGE7O1NBQW5CUSxVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IFB1cmVDb21wb25lbnQgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHsgSW5wdXQsIERyb3Bkb3duLCBEaXZpZGVyLCBNZW51LCBQb3Bjb25maXJtLCBtZXNzYWdlIH0gZnJvbSBcImFudGRcIjtcclxuaW1wb3J0IHtcclxuICBEZWxldGVPdXRsaW5lZCxcclxuICBFZGl0T3V0bGluZWQsXHJcbiAgRm9sZGVyQWRkT3V0bGluZWQsXHJcbiAgUGx1c091dGxpbmVkLFxyXG4gIFN5bmNPdXRsaW5lZCxcclxufSBmcm9tIFwiQGFudC1kZXNpZ24vaWNvbnNcIjtcclxuaW1wb3J0IE5zY0ljb24gZnJvbSBcIi4uL2NvbW1vbi9JY29uXCI7XHJcbmltcG9ydCB7IHJlcXVlc3QgfSBmcm9tIFwiQGJqLW5zYy9tc24vbGliL3V0aWxzXCI7XHJcbmltcG9ydCBOc2NUcmVlIGZyb20gXCIuXCI7XHJcbmludGVyZmFjZSBJVHJlZVNlYXJjaFByb3BzIHtcclxuICB0cmVlUmVmPzogUmVhY3QuUmVmT2JqZWN0PGFueT47XHJcbiAgdHJlZUluc3RhbmNlOiBOc2NUcmVlO1xyXG4gIGhhbmRsZUFkZE1vZHVsZT86IChwYXJhbXM6IGFueSkgPT4gdm9pZDtcclxuICBoYW5kbGVFZGl0TW9kdWxlPzogKHBhcmFtczogYW55KSA9PiB2b2lkO1xyXG4gIGhhbmRsZURlbGV0ZU1vZHVsZT86IChwYXJhbXM6IGFueSkgPT4gdm9pZDtcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVHJlZVNlYXJjaCBleHRlbmRzIFB1cmVDb21wb25lbnQ8SVRyZWVTZWFyY2hQcm9wcz4ge1xyXG4gIHRyZWVSZWZyZXNoSWNvbiA9IFJlYWN0LmNyZWF0ZVJlZjxOc2NJY29uPigpO1xyXG5cclxuICBzZWxlY3RlZFRyZWVOb2RlSWQgPSBcIlwiO1xyXG5cclxuICBnZXRTZWxlY3RlZE5vZGVJZCA9ICgpID0+IHtcclxuICAgIGNvbnN0IHNlbGVjdGVkTm9kZSA9IHRoaXMuZ2V0U2VsZWN0ZWROb2RlKCkgfHwge307XHJcbiAgICByZXR1cm4gc2VsZWN0ZWROb2RlLmtleTtcclxuICB9O1xyXG5cclxuICBnZXRTZWxlY3RlZE5vZGUgPSAoKSA9PiB7XHJcbiAgICByZXR1cm4gdGhpcy5wcm9wcy50cmVlSW5zdGFuY2Uuc3RhdGUuc2VsZWN0Tm9kZTtcclxuICB9O1xyXG5cclxuICAvKipcclxuICAgKiDmqKHlnZfmoJHmk43kvZxcclxuICAgKi9cclxuICBoYW5kbGVNZW51SXRlbUNsaWNrID0gKGUpID0+IHtcclxuICAgIGNvbnN0IHNlbGVjdGVkTm9kZUlkID0gdGhpcy5nZXRTZWxlY3RlZE5vZGVJZCgpO1xyXG4gICAgY29uc3Qgc2VsZWN0ZWROb2RlID0gdGhpcy5nZXRTZWxlY3RlZE5vZGUoKTtcclxuXHJcbiAgICBjb25zdCBjaGVja1NlbGVjdE5vZGUgPSAoKSA9PiB7XHJcbiAgICAgIGlmICghc2VsZWN0ZWROb2RlSWQpIHtcclxuICAgICAgICBtZXNzYWdlLndhcm4oXCLor7fpgInmi6nopoHkv67mlLnnmoTnm67lvZXvvIFcIik7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfTtcclxuXHJcbiAgICBzd2l0Y2ggKGUua2V5KSB7XHJcbiAgICAgIGNhc2UgXCJhZGRcIjoge1xyXG4gICAgICAgIHRoaXMuaGFuZGxlQWRkTW9kdWxlKHNlbGVjdGVkTm9kZSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgY2FzZSBcImVkaXRcIjoge1xyXG4gICAgICAgIGlmIChjaGVja1NlbGVjdE5vZGUoKSkge1xyXG4gICAgICAgICAgdGhpcy5oYW5kbGVFZGl0TW9kdWxlKHNlbGVjdGVkTm9kZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgXCJkZWxldGVcIjoge1xyXG4gICAgICAgIGlmIChjaGVja1NlbGVjdE5vZGUoKSkge1xyXG4gICAgICAgICAgdGhpcy5oYW5kbGVEZWxldGVNb2R1bGUoc2VsZWN0ZWROb2RlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9O1xyXG5cclxuICAvKipcclxuICAgKiDmt7vliqDmqKHlnZfmlbDmja5cclxuICAgKiBAcGFyYW0geyp9IHBhcmFtc1xyXG4gICAqL1xyXG4gIGhhbmRsZUFkZE1vZHVsZSA9IChwYXJhbXMpID0+IHtcclxuICAgIHRoaXMucHJvcHMuaGFuZGxlQWRkTW9kdWxlKHBhcmFtcyk7XHJcbiAgfTtcclxuXHJcbiAgLy/kv67mlLnmqKHlnZdcclxuICBoYW5kbGVFZGl0TW9kdWxlKHBhcmFtcykge1xyXG4gICAgdGhpcy5wcm9wcy5oYW5kbGVFZGl0TW9kdWxlKHBhcmFtcyk7XHJcbiAgICAvLyBjb25zdCBfdGhpcyA9IHRoaXMsIHsgbW9kdWxlRWlkdCB9ID0gdGhpcy5yZWZzO1xyXG4gICAgLy8gbW9kdWxlRWlkdC5zaG93KHtcclxuICAgIC8vICAgcGFyYW1zOiBwYVxyXG4gICAgLy8gICByYW1zLFxyXG4gICAgLy8gICB0eXBlOiAnZWRpdCcsXHJcbiAgICAvLyAgIGNhbGxiYWNrOiBmdW5jdGlvbiAocmVzdWx0KSB7XHJcbiAgICAvLyAgICAgaWYgKCFyZXN1bHQpIHJldHVybjtcclxuICAgIC8vICAgICBfdGhpcy5yZWxvYWQocmVzdWx0LnR5cGUsIGZ1bmN0aW9uICgpIHtcclxuICAgIC8vICAgICAgIG1lc3NhZ2Uuc3VjY2VzcyhcIuS/ruaUueaIkOWKn++8gVwiKTtcclxuICAgIC8vICAgICB9KTtcclxuICAgIC8vICAgfVxyXG4gICAgLy8gfSk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVEZWxldGVNb2R1bGUgPSAocGFyYW1zOiBhbnkpID0+IHtcclxuICAgIHRoaXMucHJvcHMuaGFuZGxlRGVsZXRlTW9kdWxlKHBhcmFtcyk7XHJcbiAgfTtcclxuXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKiBAcGFyYW0geyp9IGlkIOimgeWIoOmZpOeahOaooeWdl0lEXHJcbiAgICogQHBhcmFtIHsqfSB0eXBlICAwMD3nm67lvZUgIDAxPeaooeWdl1xyXG4gICAqL1xyXG4gIGhhbmRsZVJlbW92ZU1vZHVsZShpZCwgdHlwZSwgY2FsbGJhY2s/KSB7XHJcbiAgICBpZiAoIWlkKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoXCLliKDpmaTkuLvplK7kuI3og73kuLrnqbrvvIzpnZ7ms5Xmk43kvZzvvIFcIik7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IF90aGlzID0gdGhpcztcclxuICAgIHJlcXVlc3QoXCIvYXBpL2FkbWluL21vZHVsZXMvXCIgKyBpZCwge1xyXG4gICAgICBtZXRob2Q6IFwiREVMRVRFXCIsXHJcbiAgICAgIGNhbGxiYWNrOiBmdW5jdGlvbiAoZGF0YSkge1xyXG4gICAgICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgPT09IFwiZnVuY3Rpb25cIilcclxuICAgICAgICAgIF90aGlzLnByb3BzLnRyZWVJbnN0YW5jZS5yZWxvYWQoeyBwYXJhbXM6IHsgdHlwZSB9LCBjYWxsYmFjayB9KTtcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog6I+c5Y2V5pCc57SiXHJcbiAgICovXHJcbiAgaGFuZGxlTWVudVNlYXJjaCA9ICh2YWx1ZSkgPT4ge1xyXG4gICAgdGhpcy5wcm9wcy50cmVlSW5zdGFuY2UuaGFuZGxlU2VhcmNoKFxyXG4gICAgICB2YWx1ZSxcclxuICAgICAgeyBrZXlGaWVsZDogXCJrZXlcIiwgdGl0bGVGaWVsZDogXCJ0aXRsZVwiLCBwYXRoc0ZpZWxkOiBcInBhdGhzXCIgfSxcclxuICAgICAgXCJcIlxyXG4gICAgKTtcclxuICB9O1xyXG5cclxuICAvLyDku4XmkJzntKJcclxuICBoYW5kbGVTZWFyY2ggPSAoZSkgPT4ge1xyXG4gICAgdGhpcy5oYW5kbGVNZW51U2VhcmNoKGUpO1xyXG4gIH07XHJcblxyXG4gIC8v5qih5Z2X5qCR55qE6I+c5Y2VTWVudVxyXG4gIG1vZHVsZVRyZWVNZW51ID0gKFxyXG4gICAgPE1lbnUgb25DbGljaz17dGhpcy5oYW5kbGVNZW51SXRlbUNsaWNrfT5cclxuICAgICAgPE1lbnUuSXRlbSBrZXk9XCJhZGRcIj5cclxuICAgICAgICA8Rm9sZGVyQWRkT3V0bGluZWQgc3R5bGU9e3sgY29sb3I6IFwiIzE4OTBmZlwiIH19IC8+XHJcbiAgICAgICAg5re75Yqg55uu5b2VXHJcbiAgICAgIDwvTWVudS5JdGVtPlxyXG4gICAgICA8TWVudS5JdGVtIGtleT1cImVkaXRcIj5cclxuICAgICAgICA8RWRpdE91dGxpbmVkIHN0eWxlPXt7IGNvbG9yOiBcImdyZWVuXCIgfX0gLz5cclxuICAgICAgICDnvJbovpHnm67lvZVcclxuICAgICAgPC9NZW51Lkl0ZW0+XHJcbiAgICAgIDxNZW51Lkl0ZW0ga2V5PVwicmVtb3ZlXCI+XHJcbiAgICAgICAgPFBvcGNvbmZpcm1cclxuICAgICAgICAgIHRpdGxlPVwi5L2g56Gu5a6a5Yig6Zmk5ZCXP1wiXHJcbiAgICAgICAgICBvbkNvbmZpcm09eyhlKSA9PiB7XHJcbiAgICAgICAgICAgIGlmICghdGhpcy5nZXRTZWxlY3RlZE5vZGVJZCgpKSB7XHJcbiAgICAgICAgICAgICAgbWVzc2FnZS53YXJuKFwi6K+36YCJ5oup6KaB5Yig6Zmk55qE55uu5b2V77yBXCIpO1xyXG4gICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLnByb3BzLmhhbmRsZURlbGV0ZU1vZHVsZSh0aGlzLmdldFNlbGVjdGVkTm9kZSgpKTtcclxuICAgICAgICAgICAgLy8gdGhpcy5oYW5kbGVSZW1vdmVNb2R1bGUodGhpcy5nZXRTZWxlY3RlZE5vZGVJZCgpLCBcIjAwXCIpO1xyXG4gICAgICAgICAgfX1cclxuICAgICAgICA+XHJcbiAgICAgICAgICA8RGVsZXRlT3V0bGluZWQgc3R5bGU9e3sgY29sb3I6IFwicmVkXCIgfX0gLz5cclxuICAgICAgICAgIOWIoOmZpOebruW9lVxyXG4gICAgICAgIDwvUG9wY29uZmlybT5cclxuICAgICAgPC9NZW51Lkl0ZW0+XHJcbiAgICA8L01lbnU+XHJcbiAgKTtcclxuXHJcbiAgb25seVJlbmRlclNlYXJjaCA9ICgpID0+IHtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIDxkaXYgc3R5bGU9e3sgbWFyZ2luQm90dG9tOiAxMCB9fT5cclxuICAgICAgICA8SW5wdXQuU2VhcmNoXHJcbiAgICAgICAgICBhbGxvd0NsZWFyXHJcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cIuaQnOe0ouebruW9lTExXCJcclxuICAgICAgICAgIG9uU2VhcmNoPXsodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5oYW5kbGVTZWFyY2godmFsdWUpO1xyXG4gICAgICAgICAgfX1cclxuICAgICAgICA+PC9JbnB1dC5TZWFyY2g+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgKTtcclxuICB9O1xyXG5cclxuICByZW5kZXIoKSB7XHJcbiAgICBpZiAodGhpcy5wcm9wcy50cmVlSW5zdGFuY2UucHJvcHMuc2VhcmNoYWJsZSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5vbmx5UmVuZGVyU2VhcmNoKCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICA8ZGl2IHN0eWxlPXt7IG1hcmdpbkJvdHRvbTogMTAgfX0+XHJcbiAgICAgICAgPElucHV0XHJcbiAgICAgICAgICBhbGxvd0NsZWFyXHJcbiAgICAgICAgICBhZGRvbkFmdGVyPXtcclxuICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICA8RHJvcGRvd24gb3ZlcmxheT17dGhpcy5tb2R1bGVUcmVlTWVudX0gdHJpZ2dlcj17W1wiY2xpY2tcIl19PlxyXG4gICAgICAgICAgICAgICAgPFBsdXNPdXRsaW5lZCAvPlxyXG4gICAgICAgICAgICAgIDwvRHJvcGRvd24+XHJcbiAgICAgICAgICAgICAgPERpdmlkZXIgdHlwZT1cInZlcnRpY2FsXCIgLz5cclxuICAgICAgICAgICAgICA8TnNjSWNvblxyXG4gICAgICAgICAgICAgICAgdHlwZT17PFN5bmNPdXRsaW5lZCAvPn1cclxuICAgICAgICAgICAgICAgIHJlZj17dGhpcy50cmVlUmVmcmVzaEljb259XHJcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHsgdHJlZUluc3RhbmNlIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgICAgICAgICAgICAgICBjb25zdCB0cmVlUmVmcmVzaEljb24gPSB0aGlzLnRyZWVSZWZyZXNoSWNvbi5jdXJyZW50O1xyXG4gICAgICAgICAgICAgICAgICB0cmVlUmVmcmVzaEljb24uc2V0TG9hZGluZyh0cnVlKTtcclxuICAgICAgICAgICAgICAgICAgdHJlZUluc3RhbmNlLnN0b3JlLnJlbG9hZCh7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2s6IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgIHRyZWVSZWZyZXNoSWNvbi5zZXRMb2FkaW5nKGZhbHNlKTtcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cIuaQnOe0ouebruW9lVwiXHJcbiAgICAgICAgICBvblByZXNzRW50ZXI9e3RoaXMuaGFuZGxlTWVudVNlYXJjaH1cclxuICAgICAgICAvPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -229,13 +229,13 @@ var NscUpload = /*#__PURE__*/function (_React$PureComponent) {
229
229
  var _beforeUpload = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3(file, ofileList) {
230
230
  var _this2 = this;
231
231
 
232
- var _this$props2, _this$props2$maxSize, maxSize, allowFileSuffix, _this$props2$checkSam, checkSameFile, maxCount, showUploadList, propsList, _this$state, fileList, fileListStore, size, fileNames, checkList, res, newList;
232
+ var _this$props2, _this$props2$maxSize, maxSize, allowFileSuffix, _this$props2$checkSam, checkSameFile, maxCount, showUploadList, propsList, onListChange, _this$state, fileList, fileListStore, size, fileNames, checkList, res, newList, length, i;
233
233
 
234
234
  return regeneratorRuntime.wrap(function _callee3$(_context3) {
235
235
  while (1) {
236
236
  switch (_context3.prev = _context3.next) {
237
237
  case 0:
238
- _this$props2 = this.props, _this$props2$maxSize = _this$props2.maxSize, maxSize = _this$props2$maxSize === void 0 ? 100 : _this$props2$maxSize, allowFileSuffix = _this$props2.allowFileSuffix, _this$props2$checkSam = _this$props2.checkSameFile, checkSameFile = _this$props2$checkSam === void 0 ? true : _this$props2$checkSam, maxCount = _this$props2.maxCount, showUploadList = _this$props2.showUploadList, propsList = _this$props2.fileList;
238
+ _this$props2 = this.props, _this$props2$maxSize = _this$props2.maxSize, maxSize = _this$props2$maxSize === void 0 ? 100 : _this$props2$maxSize, allowFileSuffix = _this$props2.allowFileSuffix, _this$props2$checkSam = _this$props2.checkSameFile, checkSameFile = _this$props2$checkSam === void 0 ? true : _this$props2$checkSam, maxCount = _this$props2.maxCount, showUploadList = _this$props2.showUploadList, propsList = _this$props2.fileList, onListChange = _this$props2.onListChange;
239
239
  _this$state = this.state, fileList = _this$state.fileList, fileListStore = _this$state.fileListStore;
240
240
 
241
241
  if (!(allowFileSuffix && !this.checkFileType(file))) {
@@ -342,14 +342,19 @@ var NscUpload = /*#__PURE__*/function (_React$PureComponent) {
342
342
  }());
343
343
 
344
344
  if (maxCount && newList.length > maxCount) {
345
- newList.splice(0, 1);
345
+ length = newList.length - maxCount;
346
+
347
+ for (i = 0; i < length; i++) {
348
+ newList.splice(0, 1);
349
+ }
346
350
  }
347
351
 
352
+ onListChange && onListChange(newList);
348
353
  this.setState({
349
354
  fileList: newList
350
355
  });
351
356
 
352
- case 28:
357
+ case 29:
353
358
  case "end":
354
359
  return _context3.stop();
355
360
  }
@@ -382,6 +387,7 @@ var NscUpload = /*#__PURE__*/function (_React$PureComponent) {
382
387
  var percent = _ref3.percent,
383
388
  file = _ref3.file;
384
389
  var fileList = this.state.fileList;
390
+ var onListChange = this.props.onListChange;
385
391
  var newList = [];
386
392
  fileList.map(function (item) {
387
393
  var newFile = _objectSpread({}, item);
@@ -395,6 +401,7 @@ var NscUpload = /*#__PURE__*/function (_React$PureComponent) {
395
401
  this.setState({
396
402
  fileList: newList
397
403
  });
404
+ onListChange && onListChange(fileList);
398
405
  }
399
406
  }, {
400
407
  key: "onComplete",
@@ -425,6 +432,7 @@ var NscUpload = /*#__PURE__*/function (_React$PureComponent) {
425
432
  key: "onDelete",
426
433
  value: function onDelete(file) {
427
434
  var fileList = this.state.fileList;
435
+ var onListChange = this.props.onListChange;
428
436
  var newList = [];
429
437
  fileList.map(function (item) {
430
438
  //通过文件名判断,上传是文件名是唯一的
@@ -435,6 +443,7 @@ var NscUpload = /*#__PURE__*/function (_React$PureComponent) {
435
443
  this.setState({
436
444
  fileList: newList
437
445
  });
446
+ onListChange && onListChange(newList);
438
447
  }
439
448
  }, {
440
449
  key: "render",
@@ -540,26 +549,17 @@ var NscUpload = /*#__PURE__*/function (_React$PureComponent) {
540
549
 
541
550
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_Upload, _extends({}, defaultProps, newprops, {
542
551
  beforeUpload: this.beforeUpload.bind(this),
543
- fileList: fileList ? this.state.fileListStore : this.state.fileList,
544
- onChange: function onChange(_ref4) {
545
- var file = _ref4.file,
546
- fileList = _ref4.fileList,
547
- event = _ref4.event;
548
- var _this3$props = _this3.props,
549
- onListChange = _this3$props.onListChange,
550
- onChange = _this3$props.onChange;
551
-
552
- _this3.setState({
553
- fileList: fileList
554
- });
555
-
556
- onListChange && onListChange(fileList);
557
- onChange && onChange({
558
- file: file,
559
- fileList: fileList,
560
- event: event
561
- });
562
- }
552
+ fileList: this.state.fileList // onChange={({ file, fileList, event }) => {
553
+ // console.log("onChangefile", file);
554
+ // console.log("onChangefileList", fileList);
555
+ // const { onChange, onListChange } = this.props;
556
+ // this.setState({
557
+ // fileList: fileList,
558
+ // });
559
+ // onListChange && onListChange(fileList);
560
+ // onChange && onChange({ file, fileList, event });
561
+ // }}
562
+
563
563
  })));
564
564
  }
565
565
  }]);
@@ -568,4 +568,4 @@ var NscUpload = /*#__PURE__*/function (_React$PureComponent) {
568
568
  }(React.PureComponent);
569
569
 
570
570
  export default withZhLocale(NscUpload);
571
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2Jhc2UvdXBsb2FkL2luZGV4LnRzeCJdLCJuYW1lcyI6WyJSZWFjdCIsImZpbGUiLCJtZXNzYWdlIiwid2l0aFpoTG9jYWxlIiwib21pdCIsImdldExlc3MiLCJzdHlsZXMiLCJjbHMiLCJGaWxlSWNvbiIsIkRlbGV0ZU91dGxpbmVkIiwiRG93bmxvYWRPdXRsaW5lZCIsIkV5ZU91dGxpbmVkIiwidXBsb2FkIiwiZG93bmxvYWQiLCJwcmV2aWV3RG9jdW1lbnQiLCJOc2NVcGxvYWQiLCJmaWxlTGlzdCIsInZpZXdJZCIsImZpbGVMaXN0U3RvcmUiLCJmaWxlTmFtZXMiLCJvcHRpb25zIiwicHJvcHMiLCJvbkNvbXBsZXRlIiwib25Qcm9jZXNzIiwic2xpY2VTaXplIiwib25Qcm9ncmVzcyIsInRvdGFsUHJvZ3Jlc3MiLCJwZXJjZW50IiwicGFydFNpemUiLCJyZXMiLCJmaWxlSWQiLCJjb2RlIiwiZGF0YSIsImF0dGFjaElkIiwib25TdWNjZXNzIiwib25FcnJvciIsInN0YXR1cyIsImNvbnZlcnRGaWxlTGlzdCIsImxpc3QiLCJuZXdGaWxlTGlzdCIsIm9sZExpc3QiLCJtYXAiLCJpdGVtIiwidGVtcCIsIm5hbWUiLCJmaWxlTmFtZSIsInR5cGUiLCJzaXplIiwicHVzaCIsInNldFN0YXRlIiwicHJlUHJvcHMiLCJwcmVTdGF0ZSIsIkpTT04iLCJzdHJpbmdpZnkiLCJzdGF0ZSIsIm9maWxlTGlzdCIsIm1heFNpemUiLCJhbGxvd0ZpbGVTdWZmaXgiLCJjaGVja1NhbWVGaWxlIiwibWF4Q291bnQiLCJzaG93VXBsb2FkTGlzdCIsInByb3BzTGlzdCIsImNoZWNrRmlsZVR5cGUiLCJlcnJvciIsImNoZWNrTGlzdCIsImluZGV4T2YiLCJiZWZvcmVVcGxvYWQiLCJuZXdMaXN0IiwidWlkIiwibGVuZ3RoIiwic3BsaWNlIiwibmFtZXMiLCJzcGxpdCIsInN1ZmZpeCIsIm5ld0ZpbGUiLCJ1cmwiLCJ3aW5kb3ciLCJsb2NhbFN0b3JhZ2UiLCJnZXRJdGVtIiwib25MaXN0Q2hhbmdlIiwiZmlsZUNhcmQiLCJzaG93RG93bmxvYWRJY29uIiwic2hvd1ByZXZpZXdJY29uIiwic2hvd1JlbW92ZUljb24iLCJkb3dubG9hZEljb24iLCJyZW1vdmVJY29uIiwicHJldmlld0ljb24iLCJuZXdwcm9wcyIsImRlZmF1bHRQcm9wcyIsImN1c3RvbVJlcXVlc3QiLCJiaW5kIiwibXVsdGlwbGUiLCJpdGVtUmVuZGVyIiwib3JpZ2luTm9kZSIsImN1cnJGaWxlTGlzdCIsIm9uUHJldmlldyIsImN1cnNvciIsIm9uRG93bmxvYWQiLCJvblJlbW92ZSIsIm9uRGVsZXRlIiwid2lkdGgiLCJldmVudCIsIm9uQ2hhbmdlIiwiUHVyZUNvbXBvbmVudCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sS0FBS0EsS0FBWixNQUF1QixPQUF2QjtBQUVBLE9BQU9DLElBQVAsTUFBaUIsVUFBakI7QUFDQSxPQUFPQyxPQUFQLE1BQW9CLFlBQXBCO0FBQ0EsT0FBT0MsWUFBUCxNQUF5Qix3QkFBekI7QUFDQSxPQUFPQyxJQUFQLE1BQWlCLFNBQWpCO0FBQ0EsU0FBU0MsT0FBVCxRQUF3QixhQUF4QjtBQUNBLE9BQU9DLE1BQVAsTUFBbUIsY0FBbkI7QUFDQSxPQUFPQyxHQUFQLE1BQWdCLFlBQWhCO0FBQ0EsT0FBT0MsUUFBUCxNQUFxQixvQkFBckI7QUFDQSxTQUNFQyxjQURGLEVBRUVDLGdCQUZGLEVBR0VDLFdBSEYsUUFJTyxtQkFKUDtBQU1BLElBQVFDLE1BQVIsR0FBOENYLElBQTlDLENBQVFXLE1BQVI7QUFBQSxJQUFnQkMsUUFBaEIsR0FBOENaLElBQTlDLENBQWdCWSxRQUFoQjtBQUFBLElBQTBCQyxlQUExQixHQUE4Q2IsSUFBOUMsQ0FBMEJhLGVBQTFCOztJQWFNQyxTOzs7Ozs7Ozs7Ozs7Ozs7OzREQUNJO0FBQUVDLE1BQUFBLFFBQVEsRUFBRSxFQUFa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Y0FBckJlLFFBQXFCLFNBQXJCQSxRQUFxQjtBQUFBLGNBQVpxRixLQUFZLFNBQVpBLEtBQVk7QUFDdEMsNkJBQW1DLE1BQUksQ0FBQ2hGLEtBQXhDO0FBQUEsY0FBUTBELFlBQVIsZ0JBQVFBLFlBQVI7QUFBQSxjQUFzQnVCLFFBQXRCLGdCQUFzQkEsUUFBdEI7O0FBQ0EsVUFBQSxNQUFJLENBQUNyRCxRQUFMLENBQWM7QUFDWmpDLFlBQUFBLFFBQVEsRUFBRUE7QUFERSxXQUFkOztBQUdBK0QsVUFBQUEsWUFBWSxJQUFJQSxZQUFZLENBQUMvRCxRQUFELENBQTVCO0FBQ0FzRixVQUFBQSxRQUFRLElBQUlBLFFBQVEsQ0FBQztBQUFFckcsWUFBQUEsSUFBSSxFQUFKQSxJQUFGO0FBQVFlLFlBQUFBLFFBQVEsRUFBUkEsUUFBUjtBQUFrQnFGLFlBQUFBLEtBQUssRUFBTEE7QUFBbEIsV0FBRCxDQUFwQjtBQUNEO0FBWkgsU0FERixDQURGO0FBa0JEOzs7O0VBbFhxQnJHLEtBQUssQ0FBQ3VHLGE7O0FBb1g5QixlQUFlcEcsWUFBWSxDQUFDWSxTQUFELENBQTNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB7IFVwbG9hZCwgVXBsb2FkUHJvcHMgfSBmcm9tIFwiYW50ZFwiO1xyXG5pbXBvcnQgZmlsZSBmcm9tIFwibnNjLWZpbGVcIjtcclxuaW1wb3J0IG1lc3NhZ2UgZnJvbSBcIi4uL21lc3NhZ2VcIjtcclxuaW1wb3J0IHdpdGhaaExvY2FsZSBmcm9tIFwiLi4vY29tbW9uL3dpdGhaaExvY2FsZVwiO1xyXG5pbXBvcnQgb21pdCBmcm9tIFwib21pdC5qc1wiO1xyXG5pbXBvcnQgeyBnZXRMZXNzIH0gZnJvbSBcIi4uLy4uL3V0aWxzXCI7XHJcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vaW5kZXgubGVzc1wiO1xyXG5pbXBvcnQgY2xzIGZyb20gXCJjbGFzc25hbWVzXCI7XHJcbmltcG9ydCBGaWxlSWNvbiBmcm9tIFwiLi4vY29tbW9uL0ZpbGVJY29uXCI7XHJcbmltcG9ydCB7XHJcbiAgRGVsZXRlT3V0bGluZWQsXHJcbiAgRG93bmxvYWRPdXRsaW5lZCxcclxuICBFeWVPdXRsaW5lZCxcclxufSBmcm9tIFwiQGFudC1kZXNpZ24vaWNvbnNcIjtcclxuaW1wb3J0IFBkZlZpZXdlciBmcm9tIFwiLi4vcGRmdml3ZXJcIjtcclxuY29uc3QgeyB1cGxvYWQsIGRvd25sb2FkLCBwcmV2aWV3RG9jdW1lbnQgfSA9IGZpbGU7XHJcblxyXG5pbnRlcmZhY2UgSVVwbG9hZFByb3BzIGV4dGVuZHMgVXBsb2FkUHJvcHMge1xyXG4gIHNsaWNlU2l6ZT86IG51bWJlcjtcclxuICBtYXhTaXplPzogbnVtYmVyIHwgYm9vbGVhbjtcclxuICBvblByb2Nlc3M/OiAocHJvY2VzcykgPT4gdm9pZDtcclxuICBvbkNvbXBsZXRlPzogKHsgZmlsZSwgZmlsZUlkLCBzdGF0dXMgfSkgPT4gdm9pZDtcclxuICBhbGxvd0ZpbGVTdWZmaXg/OiBBcnJheTxTdHJpbmc+OyAvL+WFgeiuuOS4iuS8oOaJqeWxleWQjSzkuI3luKYuXHJcbiAgdXNlRGVmYXVsdExpc3Q/OiBib29sZWFuOyAvL+aYr+WQpuS9v+eUqOm7mOiupOeahGZpbGVMaXN0XHJcbiAgZmlsZUNhcmQ/OiBib29sZWFuO1xyXG4gIG9uTGlzdENoYW5nZT86IGFueTtcclxuICBjaGVja1NhbWVGaWxlPzogYm9vbGVhbjtcclxufVxyXG5jbGFzcyBOc2NVcGxvYWQgZXh0ZW5kcyBSZWFjdC5QdXJlQ29tcG9uZW50PElVcGxvYWRQcm9wcywgYW55PiB7XHJcbiAgc3RhdGUgPSB7IGZpbGVMaXN0OiBbXSwgdmlld0lkOiBcIlwiLCBmaWxlTGlzdFN0b3JlOiBbXSwgZmlsZU5hbWVzOiBbXSB9O1xyXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xyXG4gICAgaWYgKHRoaXMucHJvcHMuZmlsZUxpc3QpIHtcclxuICAgICAgdGhpcy5jb252ZXJ0RmlsZUxpc3QoKTtcclxuICAgIH1cclxuICB9XHJcbiAgY29udmVydEZpbGVMaXN0KGxpc3Q/OiBBcnJheTxPYmplY3Q+KSB7XHJcbiAgICBjb25zdCB7IGZpbGVMaXN0IH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgbmV3RmlsZUxpc3QgPSBbXTtcclxuICAgIGxldCBvbGRMaXN0ID0gbGlzdCA/IGxpc3QgOiBmaWxlTGlzdDtcclxuICAgIG9sZExpc3QubWFwKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgbGV0IHRlbXAgPSB7XHJcbiAgICAgICAgLi4uaXRlbSxcclxuICAgICAgICBuYW1lOiBpdGVtLm5hbWUgfHwgaXRlbS5maWxlTmFtZSxcclxuICAgICAgICB0eXBlOiBpdGVtLnR5cGUsXHJcbiAgICAgICAgc2l6ZTogaXRlbS5zaXplLFxyXG4gICAgICB9O1xyXG4gICAgICBuZXdGaWxlTGlzdC5wdXNoKHRlbXApO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgZmlsZUxpc3Q6IG5ld0ZpbGVMaXN0LFxyXG4gICAgICBmaWxlTGlzdFN0b3JlOiBmaWxlTGlzdCxcclxuICAgIH0pO1xyXG4gIH1cclxuICBjb21wb25lbnREaWRVcGRhdGUocHJlUHJvcHMsIHByZVN0YXRlKSB7XHJcbiAgICBpZiAodGhpcy5wcm9wcy5maWxlTGlzdCkge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgSlNPTi5zdHJpbmdpZnkodGhpcy5wcm9wcy5maWxlTGlzdCkgIT09XHJcbiAgICAgICAgSlNPTi5zdHJpbmdpZnkodGhpcy5zdGF0ZS5maWxlTGlzdFN0b3JlKVxyXG4gICAgICApIHtcclxuICAgICAgICB0aGlzLmNvbnZlcnRGaWxlTGlzdCgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIGdldEZpbGVMaXN0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RhdGUuZmlsZUxpc3Q7XHJcbiAgfVxyXG4gIHNldEZpbGVMaXN0KGZpbGVMaXN0OiBBcnJheTxPYmplY3Q+KSB7XHJcbiAgICB0aGlzLmNvbnZlcnRGaWxlTGlzdChmaWxlTGlzdCk7XHJcbiAgfVxyXG4gIGFzeW5jIGJlZm9yZVVwbG9hZChmaWxlLCBvZmlsZUxpc3QpIHtcclxuICAgIGxldCB7XHJcbiAgICAgIG1heFNpemUgPSAxMDAsXHJcbiAgICAgIGFsbG93RmlsZVN1ZmZpeCxcclxuICAgICAgY2hlY2tTYW1lRmlsZSA9IHRydWUsXHJcbiAgICAgIG1heENvdW50LFxyXG4gICAgICBzaG93VXBsb2FkTGlzdCxcclxuICAgICAgZmlsZUxpc3Q6IHByb3BzTGlzdCxcclxuICAgIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgbGV0IHsgZmlsZUxpc3QsIGZpbGVMaXN0U3RvcmUgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBsZXQgc2l6ZTogbnVtYmVyO1xyXG4gICAgaWYgKGFsbG93RmlsZVN1ZmZpeCAmJiAhdGhpcy5jaGVja0ZpbGVUeXBlKGZpbGUpKSB7XHJcbiAgICAgIG1lc3NhZ2UuZXJyb3IoXHJcbiAgICAgICAgYCR7ZmlsZS5uYW1lfeaWh+S7tuexu+Wei+S4jeWFgeiuuOS4iuS8oO+8jOivt+S4iuS8oOWQjue8gOS4uiR7YWxsb3dGaWxlU3VmZml4feeahOexu+Wei+aWh+S7tu+8gWBcclxuICAgICAgKTtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgaWYgKG1heFNpemUgIT09IGZhbHNlKSB7XHJcbiAgICAgIGlmIChtYXhTaXplID09PSB0cnVlKSB7XHJcbiAgICAgICAgbWF4U2l6ZSA9IDEwMDtcclxuICAgICAgfVxyXG4gICAgICBzaXplID0gbWF4U2l6ZSAqIDEwMjQgKiAxMDI0O1xyXG4gICAgICBpZiAoc2l6ZSA8IGZpbGUuc2l6ZSkge1xyXG4gICAgICAgIG1lc3NhZ2UuZXJyb3IoYCR7ZmlsZS5uYW1lfeaWh+S7tuWkp+Wwj+i2hei/hyR7bWF4U2l6ZX1N77yM6K+36YeN5paw5LiK5Lyg77yBYCk7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBsZXQgZmlsZU5hbWVzID0gW107XHJcbiAgICBpZiAoY2hlY2tTYW1lRmlsZSkge1xyXG4gICAgICBjb25zdCBjaGVja0xpc3QgPSB0aGlzLnByb3BzLmZpbGVMaXN0ID8gZmlsZUxpc3RTdG9yZSA6IGZpbGVMaXN0O1xyXG4gICAgICBjaGVja0xpc3QubWFwKChpdGVtKSA9PiB7XHJcbiAgICAgICAgZmlsZU5hbWVzLnB1c2goaXRlbS5uYW1lIHx8IGl0ZW0uZmlsZU5hbWUpO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIGlmIChmaWxlTmFtZXMuaW5kZXhPZihmaWxlLm5hbWUpID4gLTEgJiYgc2hvd1VwbG9hZExpc3QgIT09IGZhbHNlKSB7XHJcbiAgICAgICAgbWVzc2FnZS5lcnJvcihg5paH5Lu2JHtmaWxlLm5hbWV95bey5Zyo5LiK5Lyg5YiX6KGo5Lit77yM6K+36YeN5paw6YCJ5oup5paH5Lu277yBYCk7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMucHJvcHMuYmVmb3JlVXBsb2FkKSB7XHJcbiAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMucHJvcHMuYmVmb3JlVXBsb2FkKGZpbGUsIG9maWxlTGlzdCk7XHJcbiAgICAgIGlmIChyZXMgPT09IGZhbHNlKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBjb25zdCBuZXdMaXN0ID0gWy4uLmZpbGVMaXN0XTtcclxuICAgIG9maWxlTGlzdC5tYXAoYXN5bmMgKGl0ZW0pID0+IHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgICEoXHJcbiAgICAgICAgICAoYWxsb3dGaWxlU3VmZml4ICYmICF0aGlzLmNoZWNrRmlsZVR5cGUoaXRlbSkpIHx8XHJcbiAgICAgICAgICBzaXplIDwgaXRlbS5zaXplIHx8XHJcbiAgICAgICAgICAoY2hlY2tTYW1lRmlsZSAmJiBmaWxlTmFtZXMuaW5kZXhPZihpdGVtLm5hbWUpID4gLTEpXHJcbiAgICAgICAgKVxyXG4gICAgICApIHtcclxuICAgICAgICBjb25zdCB0ZW1wID0ge1xyXG4gICAgICAgICAgZmlsZU5hbWU6IGl0ZW0ubmFtZSxcclxuICAgICAgICAgIHBlcmNlbnQ6IDAsXHJcbiAgICAgICAgICBzdGF0dXM6IFwidXBsb2FkaW5nXCIsXHJcbiAgICAgICAgICB1aWQ6IGl0ZW0udWlkLFxyXG4gICAgICAgICAgbmFtZTogaXRlbS5uYW1lLFxyXG4gICAgICAgICAgdHlwZTogaXRlbS50eXBlLFxyXG4gICAgICAgICAgc2l6ZTogaXRlbS5zaXplLFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgbmV3TGlzdC5wdXNoKHRlbXApO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIGlmIChtYXhDb3VudCAmJiBuZXdMaXN0Lmxlbmd0aCA+IG1heENvdW50KSB7XHJcbiAgICAgIG5ld0xpc3Quc3BsaWNlKDAsIDEpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRTdGF0ZSh7IGZpbGVMaXN0OiBuZXdMaXN0IH0pO1xyXG4gIH1cclxuICBjaGVja0ZpbGVUeXBlKGZpbGUpIHtcclxuICAgIGNvbnN0IHsgYWxsb3dGaWxlU3VmZml4IH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgbmFtZXMgPSBmaWxlLm5hbWUuc3BsaXQoXCIuXCIpO1xyXG4gICAgY29uc3Qgc3VmZml4ID0gbmFtZXNbbmFtZXMubGVuZ3RoIC0gMV07XHJcbiAgICBpZiAoYWxsb3dGaWxlU3VmZml4LmluZGV4T2Yoc3VmZml4KSA+IC0xKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuICBvblByb2Nlc3MoeyBwZXJjZW50LCBmaWxlIH06IGFueSkge1xyXG4gICAgY29uc3QgeyBmaWxlTGlzdCB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGNvbnN0IG5ld0xpc3Q6IGFueSA9IFtdO1xyXG4gICAgZmlsZUxpc3QubWFwKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgY29uc3QgbmV3RmlsZSA9IHsgLi4uaXRlbSB9O1xyXG4gICAgICBpZiAoZmlsZS51aWQgPT0gaXRlbS51aWQpIHtcclxuICAgICAgICBuZXdGaWxlLnBlcmNlbnQgPSBwZXJjZW50O1xyXG4gICAgICB9XHJcbiAgICAgIG5ld0xpc3QucHVzaChuZXdGaWxlKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIGZpbGVMaXN0OiBuZXdMaXN0LFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIG9uQ29tcGxldGUoZmlsZSkge1xyXG4gICAgY29uc3QgeyBmaWxlTGlzdCB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGNvbnN0IG5ld0xpc3Q6IGFueSA9IFtdO1xyXG4gICAgZmlsZUxpc3QubWFwKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgY29uc3QgbmV3RmlsZSA9IHsgLi4uaXRlbSB9O1xyXG4gICAgICBpZiAoZmlsZS5maWxlLnVpZCA9PSBpdGVtLnVpZCkge1xyXG4gICAgICAgIG5ld0ZpbGUuc3RhdHVzID0gZmlsZS5zdGF0dXMgPT0gXCJzdWNjZXNzXCIgPyBcImRvbmVcIiA6IGZpbGUuc3RhdHVzO1xyXG4gICAgICAgIG5ld0ZpbGUuZmlsZUlkID0gZmlsZS5maWxlSWQ7XHJcbiAgICAgICAgbmV3RmlsZS51cmwgPSBgL2FwaS9qcXVpY2stcmVzb3VyY2Uvb3NzL2VuZHBvaW50L2Rvd25sb2FkLWZpbGVzP2F0dGFjaElkPSR7XHJcbiAgICAgICAgICBmaWxlLmZpbGVJZFxyXG4gICAgICAgIH0mX3Rwaz0ke3dpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShcInRva2VuXCIpfWA7XHJcbiAgICAgIH1cclxuICAgICAgbmV3TGlzdC5wdXNoKG5ld0ZpbGUpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgZmlsZUxpc3Q6IG5ld0xpc3QsXHJcbiAgICB9KTtcclxuICAgIGNvbnN0IHsgb25MaXN0Q2hhbmdlIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIGZpbGVMaXN0OiBmaWxlTGlzdCxcclxuICAgIH0pO1xyXG4gICAgb25MaXN0Q2hhbmdlICYmIG9uTGlzdENoYW5nZShuZXdMaXN0KTtcclxuICB9XHJcbiAgY3VzdG9tUmVxdWVzdCA9IGFzeW5jIChvcHRpb25zKSA9PiB7XHJcbiAgICBjb25zdCBmaWxlID0gb3B0aW9ucy5maWxlO1xyXG4gICAgY29uc3QgeyBvbkNvbXBsZXRlLCBvblByb2Nlc3MsIHNsaWNlU2l6ZSB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IG9uUHJvZ3Jlc3MgPSAodG90YWxQcm9ncmVzczogYW55KSA9PiB7XHJcbiAgICAgIG9wdGlvbnMub25Qcm9ncmVzcyh7IHBlcmNlbnQ6IHRvdGFsUHJvZ3Jlc3MgfSwgZmlsZSk7XHJcbiAgICAgIHRoaXMub25Qcm9jZXNzKHsgcGVyY2VudDogdG90YWxQcm9ncmVzcywgZmlsZTogZmlsZSB9KTtcclxuICAgICAgb25Qcm9jZXNzICYmIG9uUHJvY2Vzcyh7IHBlcmNlbnQ6IHRvdGFsUHJvZ3Jlc3MsIGZpbGU6IGZpbGUgfSk7XHJcbiAgICB9O1xyXG4gICAgdHJ5IHtcclxuICAgICAgY29uc3QgcmVzOiBhbnkgPSBhd2FpdCB1cGxvYWQoe1xyXG4gICAgICAgIGZpbGU6IGZpbGUsXHJcbiAgICAgICAgb25Qcm9ncmVzczogb25Qcm9ncmVzcyxcclxuICAgICAgICBwYXJ0U2l6ZTogc2xpY2VTaXplLFxyXG4gICAgICB9KTtcclxuICAgICAgbGV0IGZpbGVJZCA9IG51bGw7XHJcbiAgICAgIGlmIChyZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICBmaWxlSWQgPSByZXMuZGF0YS5hdHRhY2hJZDtcclxuICAgICAgICBvcHRpb25zLm9uU3VjY2VzcygpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIG9wdGlvbnMub25FcnJvcigpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMub25Db21wbGV0ZSh7XHJcbiAgICAgICAgZmlsZTogb3B0aW9ucy5maWxlLFxyXG4gICAgICAgIGZpbGVJZDogZmlsZUlkLFxyXG4gICAgICAgIHN0YXR1czogcmVzLmNvZGUgPT0gMjAwID8gXCJzdWNjZXNzXCIgOiBcImVycm9yXCIsXHJcbiAgICAgIH0pO1xyXG4gICAgICBvbkNvbXBsZXRlICYmXHJcbiAgICAgICAgb25Db21wbGV0ZSh7XHJcbiAgICAgICAgICBmaWxlOiBvcHRpb25zLmZpbGUsXHJcbiAgICAgICAgICBmaWxlSWQ6IGZpbGVJZCxcclxuICAgICAgICAgIHN0YXR1czogcmVzLmNvZGUgPT0gMjAwID8gXCJzdWNjZXNzXCIgOiBcImVycm9yXCIsXHJcbiAgICAgICAgfSk7XHJcbiAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgIHRoaXMub25Db21wbGV0ZSh7XHJcbiAgICAgICAgZmlsZTogb3B0aW9ucy5maWxlLFxyXG4gICAgICAgIGZpbGVJZDogXCJcIixcclxuICAgICAgICBzdGF0dXM6IFwiZXJyb3JcIixcclxuICAgICAgfSk7XHJcbiAgICAgIG9uQ29tcGxldGUgJiZcclxuICAgICAgICBvbkNvbXBsZXRlKHsgZmlsZTogb3B0aW9ucy5maWxlLCBmaWxlSWQ6IFwiXCIsIHN0YXR1czogXCJlcnJvclwiIH0pO1xyXG4gICAgICBvcHRpb25zLm9uRXJyb3IoKTtcclxuICAgIH1cclxuICB9O1xyXG4gIG9uRGVsZXRlKGZpbGUpIHtcclxuICAgIGNvbnN0IHsgZmlsZUxpc3QgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBjb25zdCBuZXdMaXN0OiBhbnkgPSBbXTtcclxuICAgIGZpbGVMaXN0Lm1hcCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgIC8v6YCa6L+H5paH5Lu25ZCN5Yik5pat77yM5LiK5Lyg5piv5paH5Lu25ZCN5piv5ZSv5LiA55qEXHJcbiAgICAgIGlmIChcclxuICAgICAgICBpdGVtLm5hbWUgIT09IGZpbGUubmFtZSB8fFxyXG4gICAgICAgIGl0ZW0uZmlsZUlkICE9PSBmaWxlLmZpbGVJZCB8fFxyXG4gICAgICAgIGl0ZW0udWlkICE9PSBmaWxlLnVpZFxyXG4gICAgICApIHtcclxuICAgICAgICBuZXdMaXN0LnB1c2goaXRlbSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIGZpbGVMaXN0OiBuZXdMaXN0LFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHJlbmRlcigpOiBSZWFjdC5SZWFjdE5vZGUge1xyXG4gICAgbGV0IHtcclxuICAgICAgZmlsZUxpc3QsXHJcbiAgICAgIGZpbGVDYXJkLFxyXG4gICAgICBzaG93VXBsb2FkTGlzdCA9IHtcclxuICAgICAgICBzaG93RG93bmxvYWRJY29uOiB0cnVlLFxyXG4gICAgICAgIHNob3dQcmV2aWV3SWNvbjogZmFsc2UsXHJcbiAgICAgICAgc2hvd1JlbW92ZUljb246IHRydWUsXHJcbiAgICAgICAgZG93bmxvYWRJY29uOiBudWxsLFxyXG4gICAgICAgIHJlbW92ZUljb246IG51bGwsXHJcbiAgICAgICAgcHJldmlld0ljb246IG51bGwsXHJcbiAgICAgIH0gYXMgYW55LFxyXG4gICAgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCBuZXdwcm9wcyA9IG9taXQodGhpcy5wcm9wcywgW1xyXG4gICAgICBcInNsaWNlU2l6ZVwiLFxyXG4gICAgICBcIm1heFNpemVcIixcclxuICAgICAgXCJvbkNvbXBsZXRlXCIsXHJcbiAgICAgIFwib25Qcm9jZXNzXCIsXHJcbiAgICAgIFwiYWxsb3dGaWxlU3VmZml4XCIsXHJcbiAgICAgIFwidXNlRGVmYXVsdExpc3RcIixcclxuICAgICAgXCJmaWxlQ2FyZFwiLFxyXG4gICAgICBcIm9uTGlzdENoYW5nZVwiLFxyXG4gICAgXSk7XHJcbiAgICBsZXQgZGVmYXVsdFByb3BzID0ge1xyXG4gICAgICBjdXN0b21SZXF1ZXN0OiB0aGlzLmN1c3RvbVJlcXVlc3QuYmluZCh0aGlzKSxcclxuICAgICAgbXVsdGlwbGU6IHRydWUsXHJcbiAgICB9IGFzIElVcGxvYWRQcm9wcztcclxuICAgIGlmIChmaWxlQ2FyZCkge1xyXG4gICAgICBkZWZhdWx0UHJvcHMgPSB7XHJcbiAgICAgICAgLi4uZGVmYXVsdFByb3BzLFxyXG4gICAgICAgIGl0ZW1SZW5kZXI6IChvcmlnaW5Ob2RlLCBmaWxlOiBhbnksIGN1cnJGaWxlTGlzdCkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgbmFtZSA9IGZpbGUubmFtZSB8fCBmaWxlLmZpbGVOYW1lO1xyXG4gICAgICAgICAgY29uc3QgbmFtZXMgPSBuYW1lPy5zcGxpdChcIi5cIik7XHJcbiAgICAgICAgICBjb25zdCBzdWZmaXggPSBuYW1lcyA/IG5hbWVzW25hbWVzLmxlbmd0aCAtIDFdIDogXCJcIjtcclxuICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJmaWxlLWl0ZW1cIil9PlxyXG4gICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xzKGdldExlc3Moc3R5bGVzLCBcImNvbnRlbnRcIiksIHtcclxuICAgICAgICAgICAgICAgICAgW2dldExlc3Moc3R5bGVzLCBcImNvbnRlbnRfZXJyb3JcIildOiBmaWxlLnN0YXR1cyA9PSBcImVycm9yXCIsXHJcbiAgICAgICAgICAgICAgICB9KX1cclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwibWFyay1waWN0dXJlXCIpfT5cclxuICAgICAgICAgICAgICAgICAgPEZpbGVJY29uIHN1ZmZpeD17c3VmZml4fSBmaWxlSWQ9e2ZpbGUuZmlsZUlkfSAvPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwibmFtZVwiKX0+XHJcbiAgICAgICAgICAgICAgICAgIHtmaWxlLm5hbWUgfHwgZmlsZS5maWxlTmFtZX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImljb25cIil9PlxyXG4gICAgICAgICAgICAgICAgICB7c2hvd1VwbG9hZExpc3Quc2hvd1ByZXZpZXdJY29uICYmIGZpbGUuc3RhdHVzID09IFwiZG9uZVwiICYmIChcclxuICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnByb3BzLm9uUHJldmlldykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHMub25QcmV2aWV3KGZpbGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpZXdEb2N1bWVudChmaWxlLmZpbGVJZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17eyBjdXJzb3I6IFwicG9pbnRlclwiIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAge3Nob3dVcGxvYWRMaXN0LmRvd25sb2FkSWNvbiA/IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2hvd1VwbG9hZExpc3QuZG93bmxvYWRJY29uXHJcbiAgICAgICAgICAgICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8RXllT3V0bGluZWQgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgIHtzaG93VXBsb2FkTGlzdC5zaG93RG93bmxvYWRJY29uICYmIGZpbGUuc3RhdHVzID09IFwiZG9uZVwiICYmIChcclxuICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnByb3BzLm9uRG93bmxvYWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLm9uRG93bmxvYWQoZmlsZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZG93bmxvYWQoZmlsZS5maWxlSWQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgY3Vyc29yOiBcInBvaW50ZXJcIiB9fVxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgIHtzaG93VXBsb2FkTGlzdC5kb3dubG9hZEljb24gPyAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNob3dVcGxvYWRMaXN0LmRvd25sb2FkSWNvblxyXG4gICAgICAgICAgICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgPERvd25sb2FkT3V0bGluZWQgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgIHtzaG93VXBsb2FkTGlzdC5zaG93UmVtb3ZlSWNvbiAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5wcm9wcy5vblJlbW92ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHMub25SZW1vdmUoZmlsZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vbkRlbGV0ZShmaWxlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IGN1cnNvcjogXCJwb2ludGVyXCIgfX1cclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7c2hvd1VwbG9hZExpc3QuZG93bmxvYWRJY29uID8gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzaG93VXBsb2FkTGlzdC5kb3dubG9hZEljb25cclxuICAgICAgICAgICAgICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxEZWxldGVPdXRsaW5lZCAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIHtmaWxlLnN0YXR1cyA9PSBcInVwbG9hZGluZ1wiICYmIChcclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJwcm9jZXNzXCIpfT5cclxuICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwicGVyY2VudFwiKX1cclxuICAgICAgICAgICAgICAgICAgICBzdHlsZT17eyB3aWR0aDogZmlsZS5wZXJjZW50ICsgXCIlXCIgfX1cclxuICAgICAgICAgICAgICAgICAgPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBkZWZhdWx0UHJvcHMgPSB7XHJcbiAgICAgICAgLi4uZGVmYXVsdFByb3BzLFxyXG4gICAgICAgIG9uRG93bmxvYWQ6IChmaWxlOiBhbnkpID0+IHtcclxuICAgICAgICAgIGRvd25sb2FkKGZpbGUuZmlsZUlkKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIG9uUmVtb3ZlOiAoZmlsZSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5vbkRlbGV0ZShmaWxlKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIG9uUHJldmlldzogKGZpbGU6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGZpbGU/LmZpbGVJZCkge1xyXG4gICAgICAgICAgICBwcmV2aWV3RG9jdW1lbnQoZmlsZS5maWxlSWQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgc2hvd1VwbG9hZExpc3Q6IHsgLi4uc2hvd1VwbG9hZExpc3QgfSxcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIHJldHVybiAoXHJcbiAgICAgIDw+XHJcbiAgICAgICAgPFVwbG9hZFxyXG4gICAgICAgICAgey4uLmRlZmF1bHRQcm9wc31cclxuICAgICAgICAgIHsuLi5uZXdwcm9wc31cclxuICAgICAgICAgIGJlZm9yZVVwbG9hZD17dGhpcy5iZWZvcmVVcGxvYWQuYmluZCh0aGlzKX1cclxuICAgICAgICAgIGZpbGVMaXN0PXtmaWxlTGlzdCA/IHRoaXMuc3RhdGUuZmlsZUxpc3RTdG9yZSA6IHRoaXMuc3RhdGUuZmlsZUxpc3R9XHJcbiAgICAgICAgICBvbkNoYW5nZT17KHsgZmlsZSwgZmlsZUxpc3QsZXZlbnQgfSkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCB7IG9uTGlzdENoYW5nZSwgb25DaGFuZ2UgfSA9IHRoaXMucHJvcHM7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgIGZpbGVMaXN0OiBmaWxlTGlzdCxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIG9uTGlzdENoYW5nZSAmJiBvbkxpc3RDaGFuZ2UoZmlsZUxpc3QpO1xyXG4gICAgICAgICAgICBvbkNoYW5nZSAmJiBvbkNoYW5nZSh7IGZpbGUsIGZpbGVMaXN0ICxldmVudH0pO1xyXG4gICAgICAgICAgfX1cclxuICAgICAgICAvPlxyXG4gICAgICA8Lz5cclxuICAgICk7XHJcbiAgfVxyXG59XHJcbmV4cG9ydCBkZWZhdWx0IHdpdGhaaExvY2FsZShOc2NVcGxvYWQpO1xyXG4iXX0=
571
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2Jhc2UvdXBsb2FkL2luZGV4LnRzeCJdLCJuYW1lcyI6WyJSZWFjdCIsImZpbGUiLCJtZXNzYWdlIiwid2l0aFpoTG9jYWxlIiwib21pdCIsImdldExlc3MiLCJzdHlsZXMiLCJjbHMiLCJGaWxlSWNvbiIsIkRlbGV0ZU91dGxpbmVkIiwiRG93bmxvYWRPdXRsaW5lZCIsIkV5ZU91dGxpbmVkIiwidXBsb2FkIiwiZG93bmxvYWQiLCJwcmV2aWV3RG9jdW1lbnQiLCJOc2NVcGxvYWQiLCJmaWxlTGlzdCIsInZpZXdJZCIsImZpbGVMaXN0U3RvcmUiLCJmaWxlTmFtZXMiLCJvcHRpb25zIiwicHJvcHMiLCJvbkNvbXBsZXRlIiwib25Qcm9jZXNzIiwic2xpY2VTaXplIiwib25Qcm9ncmVzcyIsInRvdGFsUHJvZ3Jlc3MiLCJwZXJjZW50IiwicGFydFNpemUiLCJyZXMiLCJmaWxlSWQiLCJjb2RlIiwiZGF0YSIsImF0dGFjaElkIiwib25TdWNjZXNzIiwib25FcnJvciIsInN0YXR1cyIsImNvbnZlcnRGaWxlTGlzdCIsImxpc3QiLCJuZXdGaWxlTGlzdCIsIm9sZExpc3QiLCJtYXAiLCJpdGVtIiwidGVtcCIsIm5hbWUiLCJmaWxlTmFtZSIsInR5cGUiLCJzaXplIiwicHVzaCIsInNldFN0YXRlIiwicHJlUHJvcHMiLCJwcmVTdGF0ZSIsIkpTT04iLCJzdHJpbmdpZnkiLCJzdGF0ZSIsIm9maWxlTGlzdCIsIm1heFNpemUiLCJhbGxvd0ZpbGVTdWZmaXgiLCJjaGVja1NhbWVGaWxlIiwibWF4Q291bnQiLCJzaG93VXBsb2FkTGlzdCIsInByb3BzTGlzdCIsIm9uTGlzdENoYW5nZSIsImNoZWNrRmlsZVR5cGUiLCJlcnJvciIsImNoZWNrTGlzdCIsImluZGV4T2YiLCJiZWZvcmVVcGxvYWQiLCJuZXdMaXN0IiwidWlkIiwibGVuZ3RoIiwiaSIsInNwbGljZSIsIm5hbWVzIiwic3BsaXQiLCJzdWZmaXgiLCJuZXdGaWxlIiwidXJsIiwid2luZG93IiwibG9jYWxTdG9yYWdlIiwiZ2V0SXRlbSIsImZpbGVDYXJkIiwic2hvd0Rvd25sb2FkSWNvbiIsInNob3dQcmV2aWV3SWNvbiIsInNob3dSZW1vdmVJY29uIiwiZG93bmxvYWRJY29uIiwicmVtb3ZlSWNvbiIsInByZXZpZXdJY29uIiwibmV3cHJvcHMiLCJkZWZhdWx0UHJvcHMiLCJjdXN0b21SZXF1ZXN0IiwiYmluZCIsIm11bHRpcGxlIiwiaXRlbVJlbmRlciIsIm9yaWdpbk5vZGUiLCJjdXJyRmlsZUxpc3QiLCJvblByZXZpZXciLCJjdXJzb3IiLCJvbkRvd25sb2FkIiwib25SZW1vdmUiLCJvbkRlbGV0ZSIsIndpZHRoIiwiUHVyZUNvbXBvbmVudCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sS0FBS0EsS0FBWixNQUF1QixPQUF2QjtBQUVBLE9BQU9DLElBQVAsTUFBaUIsVUFBakI7QUFDQSxPQUFPQyxPQUFQLE1BQW9CLFlBQXBCO0FBQ0EsT0FBT0MsWUFBUCxNQUF5Qix3QkFBekI7QUFDQSxPQUFPQyxJQUFQLE1BQWlCLFNBQWpCO0FBQ0EsU0FBU0MsT0FBVCxRQUF3QixhQUF4QjtBQUNBLE9BQU9DLE1BQVAsTUFBbUIsY0FBbkI7QUFDQSxPQUFPQyxHQUFQLE1BQWdCLFlBQWhCO0FBQ0EsT0FBT0MsUUFBUCxNQUFxQixvQkFBckI7QUFDQSxTQUNFQyxjQURGLEVBRUVDLGdCQUZGLEVBR0VDLFdBSEYsUUFJTyxtQkFKUDtBQU1BLElBQVFDLE1BQVIsR0FBOENYLElBQTlDLENBQVFXLE1BQVI7QUFBQSxJQUFnQkMsUUFBaEIsR0FBOENaLElBQTlDLENBQWdCWSxRQUFoQjtBQUFBLElBQTBCQyxlQUExQixHQUE4Q2IsSUFBOUMsQ0FBMEJhLGVBQTFCOztJQWFNQyxTOzs7Ozs7Ozs7Ozs7Ozs7OzREQUNJO0FBQUVDLE1BQUFBLFFBQVEsRUFBRSxFQUFaO0FBQWdCQyxNQUFBQSxN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NkIsTUFBVixFQUFrQjtBQUNoQmhCLGNBQUFBLGVBQWUsQ0FBQ2IsSUFBSSxDQUFDNkIsTUFBTixDQUFmO0FBQ0Q7QUFDRixXQVpTO0FBYVY4QixVQUFBQSxjQUFjLG9CQUFPQSxjQUFQO0FBYkosVUFBWjtBQWVEOztBQUNELDBCQUNFLHVEQUNFLDBDQUNNNkIsWUFETixFQUVNRCxRQUZOO0FBR0UsUUFBQSxZQUFZLEVBQUUsS0FBS3JCLFlBQUwsQ0FBa0J3QixJQUFsQixDQUF1QixJQUF2QixDQUhoQjtBQUlFLFFBQUEsUUFBUSxFQUFFLEtBQUtyQyxLQUFMLENBQVd0QyxRQUp2QixDQUtFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQWRGLFNBREYsQ0FERjtBQW9CRDs7OztFQTlYcUJoQixLQUFLLENBQUNzRyxhOztBQWdZOUIsZUFBZW5HLFlBQVksQ0FBQ1ksU0FBRCxDQUEzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyBVcGxvYWQsIFVwbG9hZFByb3BzIH0gZnJvbSBcImFudGRcIjtcclxuaW1wb3J0IGZpbGUgZnJvbSBcIm5zYy1maWxlXCI7XHJcbmltcG9ydCBtZXNzYWdlIGZyb20gXCIuLi9tZXNzYWdlXCI7XHJcbmltcG9ydCB3aXRoWmhMb2NhbGUgZnJvbSBcIi4uL2NvbW1vbi93aXRoWmhMb2NhbGVcIjtcclxuaW1wb3J0IG9taXQgZnJvbSBcIm9taXQuanNcIjtcclxuaW1wb3J0IHsgZ2V0TGVzcyB9IGZyb20gXCIuLi8uLi91dGlsc1wiO1xyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL2luZGV4Lmxlc3NcIjtcclxuaW1wb3J0IGNscyBmcm9tIFwiY2xhc3NuYW1lc1wiO1xyXG5pbXBvcnQgRmlsZUljb24gZnJvbSBcIi4uL2NvbW1vbi9GaWxlSWNvblwiO1xyXG5pbXBvcnQge1xyXG4gIERlbGV0ZU91dGxpbmVkLFxyXG4gIERvd25sb2FkT3V0bGluZWQsXHJcbiAgRXllT3V0bGluZWQsXHJcbn0gZnJvbSBcIkBhbnQtZGVzaWduL2ljb25zXCI7XHJcbmltcG9ydCBQZGZWaWV3ZXIgZnJvbSBcIi4uL3BkZnZpd2VyXCI7XHJcbmNvbnN0IHsgdXBsb2FkLCBkb3dubG9hZCwgcHJldmlld0RvY3VtZW50IH0gPSBmaWxlO1xyXG5cclxuaW50ZXJmYWNlIElVcGxvYWRQcm9wcyBleHRlbmRzIFVwbG9hZFByb3BzIHtcclxuICBzbGljZVNpemU/OiBudW1iZXI7XHJcbiAgbWF4U2l6ZT86IG51bWJlciB8IGJvb2xlYW47XHJcbiAgb25Qcm9jZXNzPzogKHByb2Nlc3MpID0+IHZvaWQ7XHJcbiAgb25Db21wbGV0ZT86ICh7IGZpbGUsIGZpbGVJZCwgc3RhdHVzIH0pID0+IHZvaWQ7XHJcbiAgYWxsb3dGaWxlU3VmZml4PzogQXJyYXk8U3RyaW5nPjsgLy/lhYHorrjkuIrkvKDmianlsZXlkI0s5LiN5bimLlxyXG4gIHVzZURlZmF1bHRMaXN0PzogYm9vbGVhbjsgLy/mmK/lkKbkvb/nlKjpu5jorqTnmoRmaWxlTGlzdFxyXG4gIGZpbGVDYXJkPzogYm9vbGVhbjtcclxuICBvbkxpc3RDaGFuZ2U/OiBhbnk7XHJcbiAgY2hlY2tTYW1lRmlsZT86IGJvb2xlYW47XHJcbn1cclxuY2xhc3MgTnNjVXBsb2FkIGV4dGVuZHMgUmVhY3QuUHVyZUNvbXBvbmVudDxJVXBsb2FkUHJvcHMsIGFueT4ge1xyXG4gIHN0YXRlID0geyBmaWxlTGlzdDogW10sIHZpZXdJZDogXCJcIiwgZmlsZUxpc3RTdG9yZTogW10sIGZpbGVOYW1lczogW10gfTtcclxuICBjb21wb25lbnREaWRNb3VudCgpIHtcclxuICAgIGlmICh0aGlzLnByb3BzLmZpbGVMaXN0KSB7XHJcbiAgICAgIHRoaXMuY29udmVydEZpbGVMaXN0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGNvbnZlcnRGaWxlTGlzdChsaXN0PzogQXJyYXk8T2JqZWN0Pikge1xyXG4gICAgY29uc3QgeyBmaWxlTGlzdCB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IG5ld0ZpbGVMaXN0ID0gW107XHJcbiAgICBsZXQgb2xkTGlzdCA9IGxpc3QgPyBsaXN0IDogZmlsZUxpc3Q7XHJcbiAgICBvbGRMaXN0Lm1hcCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgIGxldCB0ZW1wID0ge1xyXG4gICAgICAgIC4uLml0ZW0sXHJcbiAgICAgICAgbmFtZTogaXRlbS5uYW1lIHx8IGl0ZW0uZmlsZU5hbWUsXHJcbiAgICAgICAgdHlwZTogaXRlbS50eXBlLFxyXG4gICAgICAgIHNpemU6IGl0ZW0uc2l6ZSxcclxuICAgICAgfTtcclxuICAgICAgbmV3RmlsZUxpc3QucHVzaCh0ZW1wKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIGZpbGVMaXN0OiBuZXdGaWxlTGlzdCxcclxuICAgICAgZmlsZUxpc3RTdG9yZTogZmlsZUxpc3QsXHJcbiAgICB9KTtcclxuICB9XHJcbiAgY29tcG9uZW50RGlkVXBkYXRlKHByZVByb3BzLCBwcmVTdGF0ZSkge1xyXG4gICAgaWYgKHRoaXMucHJvcHMuZmlsZUxpc3QpIHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIEpTT04uc3RyaW5naWZ5KHRoaXMucHJvcHMuZmlsZUxpc3QpICE9PVxyXG4gICAgICAgIEpTT04uc3RyaW5naWZ5KHRoaXMuc3RhdGUuZmlsZUxpc3RTdG9yZSlcclxuICAgICAgKSB7XHJcbiAgICAgICAgdGhpcy5jb252ZXJ0RmlsZUxpc3QoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBnZXRGaWxlTGlzdCgpIHtcclxuICAgIHJldHVybiB0aGlzLnN0YXRlLmZpbGVMaXN0O1xyXG4gIH1cclxuICBzZXRGaWxlTGlzdChmaWxlTGlzdDogQXJyYXk8T2JqZWN0Pikge1xyXG4gICAgdGhpcy5jb252ZXJ0RmlsZUxpc3QoZmlsZUxpc3QpO1xyXG4gIH1cclxuICBhc3luYyBiZWZvcmVVcGxvYWQoZmlsZSwgb2ZpbGVMaXN0KSB7XHJcbiAgICBsZXQge1xyXG4gICAgICBtYXhTaXplID0gMTAwLFxyXG4gICAgICBhbGxvd0ZpbGVTdWZmaXgsXHJcbiAgICAgIGNoZWNrU2FtZUZpbGUgPSB0cnVlLFxyXG4gICAgICBtYXhDb3VudCxcclxuICAgICAgc2hvd1VwbG9hZExpc3QsXHJcbiAgICAgIGZpbGVMaXN0OiBwcm9wc0xpc3QsXHJcbiAgICAgIG9uTGlzdENoYW5nZSxcclxuICAgIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgbGV0IHsgZmlsZUxpc3QsIGZpbGVMaXN0U3RvcmUgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBsZXQgc2l6ZTogbnVtYmVyO1xyXG4gICAgaWYgKGFsbG93RmlsZVN1ZmZpeCAmJiAhdGhpcy5jaGVja0ZpbGVUeXBlKGZpbGUpKSB7XHJcbiAgICAgIG1lc3NhZ2UuZXJyb3IoXHJcbiAgICAgICAgYCR7ZmlsZS5uYW1lfeaWh+S7tuexu+Wei+S4jeWFgeiuuOS4iuS8oO+8jOivt+S4iuS8oOWQjue8gOS4uiR7YWxsb3dGaWxlU3VmZml4feeahOexu+Wei+aWh+S7tu+8gWBcclxuICAgICAgKTtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgaWYgKG1heFNpemUgIT09IGZhbHNlKSB7XHJcbiAgICAgIGlmIChtYXhTaXplID09PSB0cnVlKSB7XHJcbiAgICAgICAgbWF4U2l6ZSA9IDEwMDtcclxuICAgICAgfVxyXG4gICAgICBzaXplID0gbWF4U2l6ZSAqIDEwMjQgKiAxMDI0O1xyXG4gICAgICBpZiAoc2l6ZSA8IGZpbGUuc2l6ZSkge1xyXG4gICAgICAgIG1lc3NhZ2UuZXJyb3IoYCR7ZmlsZS5uYW1lfeaWh+S7tuWkp+Wwj+i2hei/hyR7bWF4U2l6ZX1N77yM6K+36YeN5paw5LiK5Lyg77yBYCk7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBsZXQgZmlsZU5hbWVzID0gW107XHJcbiAgICBpZiAoY2hlY2tTYW1lRmlsZSkge1xyXG4gICAgICBjb25zdCBjaGVja0xpc3QgPSB0aGlzLnByb3BzLmZpbGVMaXN0ID8gZmlsZUxpc3RTdG9yZSA6IGZpbGVMaXN0O1xyXG4gICAgICBjaGVja0xpc3QubWFwKChpdGVtKSA9PiB7XHJcbiAgICAgICAgZmlsZU5hbWVzLnB1c2goaXRlbS5uYW1lIHx8IGl0ZW0uZmlsZU5hbWUpO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIGlmIChmaWxlTmFtZXMuaW5kZXhPZihmaWxlLm5hbWUpID4gLTEgJiYgc2hvd1VwbG9hZExpc3QgIT09IGZhbHNlKSB7XHJcbiAgICAgICAgbWVzc2FnZS5lcnJvcihg5paH5Lu2JHtmaWxlLm5hbWV95bey5Zyo5LiK5Lyg5YiX6KGo5Lit77yM6K+36YeN5paw6YCJ5oup5paH5Lu277yBYCk7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMucHJvcHMuYmVmb3JlVXBsb2FkKSB7XHJcbiAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMucHJvcHMuYmVmb3JlVXBsb2FkKGZpbGUsIG9maWxlTGlzdCk7XHJcbiAgICAgIGlmIChyZXMgPT09IGZhbHNlKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBjb25zdCBuZXdMaXN0ID0gWy4uLmZpbGVMaXN0XTtcclxuICAgIG9maWxlTGlzdC5tYXAoYXN5bmMgKGl0ZW0pID0+IHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgICEoXHJcbiAgICAgICAgICAoYWxsb3dGaWxlU3VmZml4ICYmICF0aGlzLmNoZWNrRmlsZVR5cGUoaXRlbSkpIHx8XHJcbiAgICAgICAgICBzaXplIDwgaXRlbS5zaXplIHx8XHJcbiAgICAgICAgICAoY2hlY2tTYW1lRmlsZSAmJiBmaWxlTmFtZXMuaW5kZXhPZihpdGVtLm5hbWUpID4gLTEpXHJcbiAgICAgICAgKVxyXG4gICAgICApIHtcclxuICAgICAgICBjb25zdCB0ZW1wID0ge1xyXG4gICAgICAgICAgZmlsZU5hbWU6IGl0ZW0ubmFtZSxcclxuICAgICAgICAgIHBlcmNlbnQ6IDAsXHJcbiAgICAgICAgICBzdGF0dXM6IFwidXBsb2FkaW5nXCIsXHJcbiAgICAgICAgICB1aWQ6IGl0ZW0udWlkLFxyXG4gICAgICAgICAgbmFtZTogaXRlbS5uYW1lLFxyXG4gICAgICAgICAgdHlwZTogaXRlbS50eXBlLFxyXG4gICAgICAgICAgc2l6ZTogaXRlbS5zaXplLFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgbmV3TGlzdC5wdXNoKHRlbXApO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAobWF4Q291bnQgJiYgbmV3TGlzdC5sZW5ndGggPiBtYXhDb3VudCkge1xyXG4gICAgICBsZXQgbGVuZ3RoID0gbmV3TGlzdC5sZW5ndGggLSBtYXhDb3VudDtcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykge1xyXG4gICAgICAgIG5ld0xpc3Quc3BsaWNlKDAsIDEpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBvbkxpc3RDaGFuZ2UgJiYgb25MaXN0Q2hhbmdlKG5ld0xpc3QpO1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7IGZpbGVMaXN0OiBuZXdMaXN0IH0pO1xyXG4gIH1cclxuICBjaGVja0ZpbGVUeXBlKGZpbGUpIHtcclxuICAgIGNvbnN0IHsgYWxsb3dGaWxlU3VmZml4IH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgbmFtZXMgPSBmaWxlLm5hbWUuc3BsaXQoXCIuXCIpO1xyXG4gICAgY29uc3Qgc3VmZml4ID0gbmFtZXNbbmFtZXMubGVuZ3RoIC0gMV07XHJcbiAgICBpZiAoYWxsb3dGaWxlU3VmZml4LmluZGV4T2Yoc3VmZml4KSA+IC0xKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuICBvblByb2Nlc3MoeyBwZXJjZW50LCBmaWxlIH06IGFueSkge1xyXG4gICAgY29uc3QgeyBmaWxlTGlzdCB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGNvbnN0IHsgb25MaXN0Q2hhbmdlIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgbmV3TGlzdDogYW55ID0gW107XHJcbiAgICBmaWxlTGlzdC5tYXAoKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCBuZXdGaWxlID0geyAuLi5pdGVtIH07XHJcbiAgICAgIGlmIChmaWxlLnVpZCA9PSBpdGVtLnVpZCkge1xyXG4gICAgICAgIG5ld0ZpbGUucGVyY2VudCA9IHBlcmNlbnQ7XHJcbiAgICAgIH1cclxuICAgICAgbmV3TGlzdC5wdXNoKG5ld0ZpbGUpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgZmlsZUxpc3Q6IG5ld0xpc3QsXHJcbiAgICB9KTtcclxuICAgIG9uTGlzdENoYW5nZSAmJiBvbkxpc3RDaGFuZ2UoZmlsZUxpc3QpO1xyXG4gIH1cclxuICBvbkNvbXBsZXRlKGZpbGUpIHtcclxuICAgIGNvbnN0IHsgZmlsZUxpc3QgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBjb25zdCBuZXdMaXN0OiBhbnkgPSBbXTtcclxuICAgIGZpbGVMaXN0Lm1hcCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgIGNvbnN0IG5ld0ZpbGUgPSB7IC4uLml0ZW0gfTtcclxuICAgICAgaWYgKGZpbGUuZmlsZS51aWQgPT0gaXRlbS51aWQpIHtcclxuICAgICAgICBuZXdGaWxlLnN0YXR1cyA9IGZpbGUuc3RhdHVzID09IFwic3VjY2Vzc1wiID8gXCJkb25lXCIgOiBmaWxlLnN0YXR1cztcclxuICAgICAgICBuZXdGaWxlLmZpbGVJZCA9IGZpbGUuZmlsZUlkO1xyXG4gICAgICAgIG5ld0ZpbGUudXJsID0gYC9hcGkvanF1aWNrLXJlc291cmNlL29zcy9lbmRwb2ludC9kb3dubG9hZC1maWxlcz9hdHRhY2hJZD0ke1xyXG4gICAgICAgICAgZmlsZS5maWxlSWRcclxuICAgICAgICB9Jl90cGs9JHt3aW5kb3cubG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJ0b2tlblwiKX1gO1xyXG4gICAgICB9XHJcbiAgICAgIG5ld0xpc3QucHVzaChuZXdGaWxlKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIGZpbGVMaXN0OiBuZXdMaXN0LFxyXG4gICAgfSk7XHJcbiAgICBjb25zdCB7IG9uTGlzdENoYW5nZSB9ID0gdGhpcy5wcm9wcztcclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBmaWxlTGlzdDogZmlsZUxpc3QsXHJcbiAgICB9KTtcclxuICAgIG9uTGlzdENoYW5nZSAmJiBvbkxpc3RDaGFuZ2UobmV3TGlzdCk7XHJcbiAgfVxyXG4gIGN1c3RvbVJlcXVlc3QgPSBhc3luYyAob3B0aW9ucykgPT4ge1xyXG4gICAgY29uc3QgZmlsZSA9IG9wdGlvbnMuZmlsZTtcclxuICAgIGNvbnN0IHsgb25Db21wbGV0ZSwgb25Qcm9jZXNzLCBzbGljZVNpemUgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCBvblByb2dyZXNzID0gKHRvdGFsUHJvZ3Jlc3M6IGFueSkgPT4ge1xyXG4gICAgICBvcHRpb25zLm9uUHJvZ3Jlc3MoeyBwZXJjZW50OiB0b3RhbFByb2dyZXNzIH0sIGZpbGUpO1xyXG4gICAgICB0aGlzLm9uUHJvY2Vzcyh7IHBlcmNlbnQ6IHRvdGFsUHJvZ3Jlc3MsIGZpbGU6IGZpbGUgfSk7XHJcbiAgICAgIG9uUHJvY2VzcyAmJiBvblByb2Nlc3MoeyBwZXJjZW50OiB0b3RhbFByb2dyZXNzLCBmaWxlOiBmaWxlIH0pO1xyXG4gICAgfTtcclxuICAgIHRyeSB7XHJcbiAgICAgIGNvbnN0IHJlczogYW55ID0gYXdhaXQgdXBsb2FkKHtcclxuICAgICAgICBmaWxlOiBmaWxlLFxyXG4gICAgICAgIG9uUHJvZ3Jlc3M6IG9uUHJvZ3Jlc3MsXHJcbiAgICAgICAgcGFydFNpemU6IHNsaWNlU2l6ZSxcclxuICAgICAgfSk7XHJcbiAgICAgIGxldCBmaWxlSWQgPSBudWxsO1xyXG4gICAgICBpZiAocmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgZmlsZUlkID0gcmVzLmRhdGEuYXR0YWNoSWQ7XHJcbiAgICAgICAgb3B0aW9ucy5vblN1Y2Nlc3MoKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBvcHRpb25zLm9uRXJyb3IoKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLm9uQ29tcGxldGUoe1xyXG4gICAgICAgIGZpbGU6IG9wdGlvbnMuZmlsZSxcclxuICAgICAgICBmaWxlSWQ6IGZpbGVJZCxcclxuICAgICAgICBzdGF0dXM6IHJlcy5jb2RlID09IDIwMCA/IFwic3VjY2Vzc1wiIDogXCJlcnJvclwiLFxyXG4gICAgICB9KTtcclxuICAgICAgb25Db21wbGV0ZSAmJlxyXG4gICAgICAgIG9uQ29tcGxldGUoe1xyXG4gICAgICAgICAgZmlsZTogb3B0aW9ucy5maWxlLFxyXG4gICAgICAgICAgZmlsZUlkOiBmaWxlSWQsXHJcbiAgICAgICAgICBzdGF0dXM6IHJlcy5jb2RlID09IDIwMCA/IFwic3VjY2Vzc1wiIDogXCJlcnJvclwiLFxyXG4gICAgICAgIH0pO1xyXG4gICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICB0aGlzLm9uQ29tcGxldGUoe1xyXG4gICAgICAgIGZpbGU6IG9wdGlvbnMuZmlsZSxcclxuICAgICAgICBmaWxlSWQ6IFwiXCIsXHJcbiAgICAgICAgc3RhdHVzOiBcImVycm9yXCIsXHJcbiAgICAgIH0pO1xyXG4gICAgICBvbkNvbXBsZXRlICYmXHJcbiAgICAgICAgb25Db21wbGV0ZSh7IGZpbGU6IG9wdGlvbnMuZmlsZSwgZmlsZUlkOiBcIlwiLCBzdGF0dXM6IFwiZXJyb3JcIiB9KTtcclxuICAgICAgb3B0aW9ucy5vbkVycm9yKCk7XHJcbiAgICB9XHJcbiAgfTtcclxuICBvbkRlbGV0ZShmaWxlKSB7XHJcbiAgICBjb25zdCB7IGZpbGVMaXN0IH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3QgeyBvbkxpc3RDaGFuZ2UgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCBuZXdMaXN0OiBhbnkgPSBbXTtcclxuICAgIGZpbGVMaXN0Lm1hcCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgIC8v6YCa6L+H5paH5Lu25ZCN5Yik5pat77yM5LiK5Lyg5piv5paH5Lu25ZCN5piv5ZSv5LiA55qEXHJcbiAgICAgIGlmIChcclxuICAgICAgICBpdGVtLm5hbWUgIT09IGZpbGUubmFtZSB8fFxyXG4gICAgICAgIGl0ZW0uZmlsZUlkICE9PSBmaWxlLmZpbGVJZCB8fFxyXG4gICAgICAgIGl0ZW0udWlkICE9PSBmaWxlLnVpZFxyXG4gICAgICApIHtcclxuICAgICAgICBuZXdMaXN0LnB1c2goaXRlbSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIGZpbGVMaXN0OiBuZXdMaXN0LFxyXG4gICAgfSk7XHJcbiAgICBvbkxpc3RDaGFuZ2UgJiYgb25MaXN0Q2hhbmdlKG5ld0xpc3QpO1xyXG4gIH1cclxuICByZW5kZXIoKTogUmVhY3QuUmVhY3ROb2RlIHtcclxuICAgIGxldCB7XHJcbiAgICAgIGZpbGVMaXN0LFxyXG4gICAgICBmaWxlQ2FyZCxcclxuICAgICAgc2hvd1VwbG9hZExpc3QgPSB7XHJcbiAgICAgICAgc2hvd0Rvd25sb2FkSWNvbjogdHJ1ZSxcclxuICAgICAgICBzaG93UHJldmlld0ljb246IGZhbHNlLFxyXG4gICAgICAgIHNob3dSZW1vdmVJY29uOiB0cnVlLFxyXG4gICAgICAgIGRvd25sb2FkSWNvbjogbnVsbCxcclxuICAgICAgICByZW1vdmVJY29uOiBudWxsLFxyXG4gICAgICAgIHByZXZpZXdJY29uOiBudWxsLFxyXG4gICAgICB9IGFzIGFueSxcclxuICAgIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgbmV3cHJvcHMgPSBvbWl0KHRoaXMucHJvcHMsIFtcclxuICAgICAgXCJzbGljZVNpemVcIixcclxuICAgICAgXCJtYXhTaXplXCIsXHJcbiAgICAgIFwib25Db21wbGV0ZVwiLFxyXG4gICAgICBcIm9uUHJvY2Vzc1wiLFxyXG4gICAgICBcImFsbG93RmlsZVN1ZmZpeFwiLFxyXG4gICAgICBcInVzZURlZmF1bHRMaXN0XCIsXHJcbiAgICAgIFwiZmlsZUNhcmRcIixcclxuICAgICAgXCJvbkxpc3RDaGFuZ2VcIixcclxuICAgIF0pO1xyXG4gICAgbGV0IGRlZmF1bHRQcm9wcyA9IHtcclxuICAgICAgY3VzdG9tUmVxdWVzdDogdGhpcy5jdXN0b21SZXF1ZXN0LmJpbmQodGhpcyksXHJcbiAgICAgIG11bHRpcGxlOiB0cnVlLFxyXG4gICAgfSBhcyBJVXBsb2FkUHJvcHM7XHJcbiAgICBpZiAoZmlsZUNhcmQpIHtcclxuICAgICAgZGVmYXVsdFByb3BzID0ge1xyXG4gICAgICAgIC4uLmRlZmF1bHRQcm9wcyxcclxuICAgICAgICBpdGVtUmVuZGVyOiAob3JpZ2luTm9kZSwgZmlsZTogYW55LCBjdXJyRmlsZUxpc3QpID0+IHtcclxuICAgICAgICAgIGNvbnN0IG5hbWUgPSBmaWxlLm5hbWUgfHwgZmlsZS5maWxlTmFtZTtcclxuICAgICAgICAgIGNvbnN0IG5hbWVzID0gbmFtZT8uc3BsaXQoXCIuXCIpO1xyXG4gICAgICAgICAgY29uc3Qgc3VmZml4ID0gbmFtZXMgPyBuYW1lc1tuYW1lcy5sZW5ndGggLSAxXSA6IFwiXCI7XHJcbiAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiZmlsZS1pdGVtXCIpfT5cclxuICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NscyhnZXRMZXNzKHN0eWxlcywgXCJjb250ZW50XCIpLCB7XHJcbiAgICAgICAgICAgICAgICAgIFtnZXRMZXNzKHN0eWxlcywgXCJjb250ZW50X2Vycm9yXCIpXTogZmlsZS5zdGF0dXMgPT0gXCJlcnJvclwiLFxyXG4gICAgICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcIm1hcmstcGljdHVyZVwiKX0+XHJcbiAgICAgICAgICAgICAgICAgIDxGaWxlSWNvbiBzdWZmaXg9e3N1ZmZpeH0gZmlsZUlkPXtmaWxlLmZpbGVJZH0gLz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcIm5hbWVcIil9PlxyXG4gICAgICAgICAgICAgICAgICB7ZmlsZS5uYW1lIHx8IGZpbGUuZmlsZU5hbWV9XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJpY29uXCIpfT5cclxuICAgICAgICAgICAgICAgICAge3Nob3dVcGxvYWRMaXN0LnNob3dQcmV2aWV3SWNvbiAmJiBmaWxlLnN0YXR1cyA9PSBcImRvbmVcIiAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5wcm9wcy5vblByZXZpZXcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLm9uUHJldmlldyhmaWxlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2aWV3RG9jdW1lbnQoZmlsZS5maWxlSWQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgY3Vyc29yOiBcInBvaW50ZXJcIiB9fVxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgIHtzaG93VXBsb2FkTGlzdC5kb3dubG9hZEljb24gPyAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNob3dVcGxvYWRMaXN0LmRvd25sb2FkSWNvblxyXG4gICAgICAgICAgICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgPEV5ZU91dGxpbmVkIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICB7c2hvd1VwbG9hZExpc3Quc2hvd0Rvd25sb2FkSWNvbiAmJiBmaWxlLnN0YXR1cyA9PSBcImRvbmVcIiAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5wcm9wcy5vbkRvd25sb2FkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5vbkRvd25sb2FkKGZpbGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRvd25sb2FkKGZpbGUuZmlsZUlkKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IGN1cnNvcjogXCJwb2ludGVyXCIgfX1cclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7c2hvd1VwbG9hZExpc3QuZG93bmxvYWRJY29uID8gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzaG93VXBsb2FkTGlzdC5kb3dubG9hZEljb25cclxuICAgICAgICAgICAgICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxEb3dubG9hZE91dGxpbmVkIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICB7c2hvd1VwbG9hZExpc3Quc2hvd1JlbW92ZUljb24gJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMucHJvcHMub25SZW1vdmUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLm9uUmVtb3ZlKGZpbGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub25EZWxldGUoZmlsZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17eyBjdXJzb3I6IFwicG9pbnRlclwiIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAge3Nob3dVcGxvYWRMaXN0LmRvd25sb2FkSWNvbiA/IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2hvd1VwbG9hZExpc3QuZG93bmxvYWRJY29uXHJcbiAgICAgICAgICAgICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8RGVsZXRlT3V0bGluZWQgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICB7ZmlsZS5zdGF0dXMgPT0gXCJ1cGxvYWRpbmdcIiAmJiAoXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwicHJvY2Vzc1wiKX0+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcInBlcmNlbnRcIil9XHJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgd2lkdGg6IGZpbGUucGVyY2VudCArIFwiJVwiIH19XHJcbiAgICAgICAgICAgICAgICAgID48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZGVmYXVsdFByb3BzID0ge1xyXG4gICAgICAgIC4uLmRlZmF1bHRQcm9wcyxcclxuICAgICAgICBvbkRvd25sb2FkOiAoZmlsZTogYW55KSA9PiB7XHJcbiAgICAgICAgICBkb3dubG9hZChmaWxlLmZpbGVJZCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBvblJlbW92ZTogKGZpbGUpID0+IHtcclxuICAgICAgICAgIHRoaXMub25EZWxldGUoZmlsZSk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBvblByZXZpZXc6IChmaWxlOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChmaWxlPy5maWxlSWQpIHtcclxuICAgICAgICAgICAgcHJldmlld0RvY3VtZW50KGZpbGUuZmlsZUlkKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHNob3dVcGxvYWRMaXN0OiB7IC4uLnNob3dVcGxvYWRMaXN0IH0sXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICA8PlxyXG4gICAgICAgIDxVcGxvYWRcclxuICAgICAgICAgIHsuLi5kZWZhdWx0UHJvcHN9XHJcbiAgICAgICAgICB7Li4ubmV3cHJvcHN9XHJcbiAgICAgICAgICBiZWZvcmVVcGxvYWQ9e3RoaXMuYmVmb3JlVXBsb2FkLmJpbmQodGhpcyl9XHJcbiAgICAgICAgICBmaWxlTGlzdD17dGhpcy5zdGF0ZS5maWxlTGlzdH1cclxuICAgICAgICAgIC8vIG9uQ2hhbmdlPXsoeyBmaWxlLCBmaWxlTGlzdCwgZXZlbnQgfSkgPT4ge1xyXG4gICAgICAgICAgLy8gICBjb25zb2xlLmxvZyhcIm9uQ2hhbmdlZmlsZVwiLCBmaWxlKTtcclxuICAgICAgICAgIC8vICAgY29uc29sZS5sb2coXCJvbkNoYW5nZWZpbGVMaXN0XCIsIGZpbGVMaXN0KTtcclxuICAgICAgICAgIC8vICAgY29uc3QgeyBvbkNoYW5nZSwgb25MaXN0Q2hhbmdlIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgICAgICAgLy8gICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgIC8vICAgICBmaWxlTGlzdDogZmlsZUxpc3QsXHJcbiAgICAgICAgICAvLyAgIH0pO1xyXG4gICAgICAgICAgLy8gICBvbkxpc3RDaGFuZ2UgJiYgb25MaXN0Q2hhbmdlKGZpbGVMaXN0KTtcclxuICAgICAgICAgIC8vICAgb25DaGFuZ2UgJiYgb25DaGFuZ2UoeyBmaWxlLCBmaWxlTGlzdCwgZXZlbnQgfSk7XHJcbiAgICAgICAgICAvLyB9fVxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvPlxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuZXhwb3J0IGRlZmF1bHQgd2l0aFpoTG9jYWxlKE5zY1VwbG9hZCk7XHJcbiJdfQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nsc-react-component",
3
- "version": "2.8.43",
3
+ "version": "2.8.45",
4
4
  "description": "",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {
@@ -23,7 +23,7 @@
23
23
  "@babel/preset-env": "^7.13.10",
24
24
  "@babel/preset-react": "^7.12.13",
25
25
  "@babel/preset-typescript": "^7.13.0",
26
- "@bj-nsc/msn": "^1.0.19",
26
+ "@bj-nsc/msn": "^1.0.20",
27
27
  "@types/react": "^17.0.3",
28
28
  "@types/react-dom": "^17.0.2",
29
29
  "antd": "4.19.1",