@hipay/hipay-material-ui 1.0.0-beta.17 → 1.0.0-beta.19

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.
@@ -15690,7 +15690,7 @@ var styles = exports.styles = function styles(theme) {
15690
15690
  }, theme.typography.body1, {
15691
15691
  borderBottom: '1px solid ' + theme.palette.input.bottomLine,
15692
15692
  paddingLeft: 8,
15693
- backgroundColor: '#f5f5f5',
15693
+ backgroundColor: theme.palette.background2,
15694
15694
  '&$focused': {
15695
15695
  backgroundColor: '#ffffff'
15696
15696
  },
@@ -16151,7 +16151,7 @@ HiInput.defaultProps = {
16151
16151
  onlyNumbers: false
16152
16152
  };
16153
16153
  exports.default = (0, _withStyles2.default)(styles, { name: 'HiMuiHiInput', withTheme: true })(HiInput);
16154
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9IaUZvcm0vSGlJbnB1dC5qcyJdLCJuYW1lcyI6WyJzdHlsZXMiLCJyb290IiwicG9zaXRpb24iLCJ0aGVtZSIsInR5cG9ncmFwaHkiLCJib2R5MSIsImJvcmRlckJvdHRvbSIsInBhbGV0dGUiLCJpbnB1dCIsImJvdHRvbUxpbmUiLCJwYWRkaW5nTGVmdCIsImJhY2tncm91bmRDb2xvciIsIndpZHRoIiwibWFyZ2luVG9wIiwiaW5rYmFyIiwiYnVzaW5lc3MiLCJwcmltYXJ5Iiwibm9ybWFsIiwibGVmdCIsImJvdHRvbSIsImNvbnRlbnQiLCJoZWlnaHQiLCJyaWdodCIsInRyYW5zZm9ybSIsInRyYW5zaXRpb24iLCJ0cmFuc2l0aW9ucyIsImNyZWF0ZSIsImR1cmF0aW9uIiwic2hvcnRlciIsImVhc2luZyIsImVhc2VPdXQiLCJwb2ludGVyRXZlbnRzIiwiZm9jdXNlZCIsImVycm9yIiwiYm9yZGVyIiwibmVnYXRpdmUiLCJib3JkZXJSYWRpdXMiLCJzdGFydEFkb3JubWVudCIsImNvbG9yIiwibmV1dHJhbCIsInpJbmRleCIsIm1hcmdpblJpZ2h0Iiwic3RhcnRBZG9ybm1lbnRGb2N1cyIsImRhcmsiLCJzdGFydEFkb3JubWVudERpc2FibGVkIiwibGlnaHQiLCJyaWdodEljb24iLCJtYXJnaW4iLCJyaWdodEljb25Gb2N1cyIsInJpZ2h0SWNvbkRpc2FibGVkIiwicmlnaHRJY29uRXJyb3IiLCJmb250V2VpZ2h0IiwiZm9udFdlaWdodFJlZ3VsYXIiLCJjYXJldENvbG9yIiwiZGlzcGxheSIsImFsaWduSXRlbXMiLCJpbnB1dFByb3BzQ2xhc3NOYW1lIiwicGFkZGluZyIsImlucHV0VGV4dCIsImlucHV0VGV4dGFyZWEiLCJtaW5IZWlnaHQiLCJwYWRkaW5nVG9wIiwiaWNvblBvaW50ZXIiLCJjdXJzb3IiLCJlcmFzZUJ1dHRvbiIsImRpc2FibGVkIiwiZW5kQWRvcm5tZW50IiwiSGlJbnB1dCIsInN0YXRlIiwiaGFuZGxlQ2hhbmdlIiwiYmluZCIsImhhbmRsZUZvY3VzIiwiaGFuZGxlRGl2Q2xpY2siLCJoYW5kbGVCbHVyIiwiaGFuZGxlUmVzZXQiLCJoYW5kbGVNb3VzZUVudGVyIiwiaGFuZGxlTW91c2VMZWF2ZSIsImdldElucHV0RWxlbWVudCIsImhhbmRsZU92ZXJsYXlSZWYiLCJlbCIsImlucHV0RWxlbWVudCIsInByb3BzIiwiaW5wdXRSZWYiLCJldmVudCIsImF1dGhvcml6ZWRDaGFyIiwib25DaGFuZ2UiLCJpbmRleE9mIiwidGFyZ2V0IiwidmFsdWUiLCJjaGFyQXQiLCJsZW5ndGgiLCJvbmx5TnVtYmVycyIsIm9uUmVzZXQiLCJyZWxhdGVkVGFyZ2V0Iiwib3ZlcmxheU5vZGUiLCJjb250YWlucyIsInN0b3BQcm9wYWdhdGlvbiIsInNldFN0YXRlIiwib25CbHVyIiwiZW5kQWRvcm5tZW50Tm9kZSIsIm9uRm9jdXMiLCJmb2N1cyIsIm9uTW91c2VFbnRlciIsIm9uTW91c2VMZWF2ZSIsIm92ZXJsYXlSZWYiLCJjbGFzc2VzIiwicGxhY2Vob2xkZXIiLCJlbmRBZG9ybm1lbnRQcm9wcyIsImNsYXNzTmFtZSIsInR5cGUiLCJhdXRvQ29tcGxldGUiLCJhdXRvRm9jdXMiLCJpbnB1dElkIiwibmFtZSIsIm11bHRpbGluZSIsInJvd3MiLCJpbnB1dENsYXNzTmFtZSIsIm92ZXJsYXlQcm9wcyIsIm9uQ2xpY2siLCJyZWYiLCJsZWZ0SWNvbiIsIm9uTGVmdEljb25DbGljayIsImVyYXNlSWNvbiIsIm9uUmlnaHRJY29uQ2xpY2siLCJvbktleURvd24iLCJQdXJlQ29tcG9uZW50IiwicHJvcFR5cGVzIiwic3RyaW5nIiwiYm9vbCIsIm9iamVjdCIsIm9uZU9mVHlwZSIsIm5vZGUiLCJmdW5jIiwibnVtYmVyIiwiZGVmYXVsdFByb3BzIiwid2l0aFRoZW1lIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7Ozs7Ozs7Ozs7OztBQUVPLElBQU1B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TyxvQkFBVThILE1BL0dGO0FBZ0hmOzs7QUFHQXBCLFVBQU0sb0JBQVVrQixNQW5IRDtBQW9IZjs7O0FBR0F2QyxXQUFPLG9CQUFVdUM7QUF2SEYsQztBQURqQjVELE8sQ0EySEttRSxZLEdBQWU7QUFDbEI5QyxXQUFPLEVBRFc7QUFFbEJrQixpQkFBYSxFQUZLO0FBR2xCTSxhQUFTLEVBSFM7QUFJbEJDLFVBQU0sRUFKWTtBQUtsQjVFLG9CQUFnQixFQUxFO0FBTWxCNkIsa0JBQWMsRUFOSTtBQU9sQjJDLFVBQU0sTUFQWTtBQVFsQkssZUFBVyxLQVJPO0FBU2xCakYsV0FBTyxLQVRXO0FBVWxCMEQsaUJBQWE7QUFWSyxDO2tCQXVQWCwwQkFBVzNGLE1BQVgsRUFBbUIsRUFBRWlILE1BQU0sY0FBUixFQUF3QnNCLFdBQVcsSUFBbkMsRUFBbkIsRUFBOERwRSxPQUE5RCxDIiwiZmlsZSI6IkhpSW5wdXQuanMiLCJzb3VyY2VSb290IjoiL2hvbWUvdmRvc3NhbnRvcy9kZXYvaGlwYXktbWF0ZXJpYWwtdWkiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAZmxvd1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgSW5wdXQgZnJvbSAnbWF0ZXJpYWwtdWkvSW5wdXQnO1xuaW1wb3J0IEljb25CdXR0b24gZnJvbSAnbWF0ZXJpYWwtdWkvSWNvbkJ1dHRvbic7XG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCB3aXRoU3R5bGVzIGZyb20gJy4uL3N0eWxlcy93aXRoU3R5bGVzJztcbmltcG9ydCBIaUljb25CdWlsZGVyIGZyb20gJy4uL3V0aWxzL0hpSWNvbkJ1aWxkZXInO1xuXG5leHBvcnQgY29uc3Qgc3R5bGVzID0gdGhlbWUgPT4gKHtcbiAgICByb290OiB7XG4gICAgICAgIHBvc2l0aW9uOiAncmVsYXRpdmUnLFxuICAgICAgICAuLi50aGVtZS50eXBvZ3JhcGh5LmJvZHkxLFxuICAgICAgICBib3JkZXJCb3R0b206IGAxcHggc29saWQgJHt0aGVtZS5wYWxldHRlLmlucHV0LmJvdHRvbUxpbmV9YCxcbiAgICAgICAgcGFkZGluZ0xlZnQ6IDgsXG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogJyNmNWY1ZjUnLFxuICAgICAgICAnJiRmb2N1c2VkJzoge1xuICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnI2ZmZmZmZicsXG4gICAgICAgIH0sXG4gICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgIC8vIEFqb3V0IGQnMXB4IHBvdXIgbmUgcGFzIGF2b2lyIGRlIGTDqWNhbGFnZSBlbiBtb2RlIGVycm9yIGF2ZWMgbGUgYm9yZGVyIHRvcFxuICAgICAgICAnJjpub3QoJGVycm9yKSc6IHtcbiAgICAgICAgICAgIG1hcmdpblRvcDogMSxcbiAgICAgICAgfSxcbiAgICB9LFxuICAgIGlua2Jhcjoge1xuICAgICAgICAnJjpub3QoJGVycm9yKTphZnRlcic6IHtcbiAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogdGhlbWUucGFsZXR0ZS5idXNpbmVzcy5wcmltYXJ5Lm5vcm1hbCxcbiAgICAgICAgICAgIGxlZnQ6IDAsXG4gICAgICAgICAgICBib3R0b206IDAsXG4gICAgICAgICAgICAvLyBEb2luZyB0aGUgb3RoZXIgd2F5IGFyb3VuZCBjcmFzaCBvbiBJRTExIFwiJydcIiBodHRwczovL2dpdGh1Yi5jb20vY3NzaW5qcy9qc3MvaXNzdWVzLzI0MlxuICAgICAgICAgICAgY29udGVudDogJ1wiXCInLFxuICAgICAgICAgICAgaGVpZ2h0OiAxLFxuICAgICAgICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgICAgICAgICByaWdodDogMCxcbiAgICAgICAgICAgIHRyYW5zZm9ybTogJ3NjYWxlWCgwKScsXG4gICAgICAgICAgICB0cmFuc2l0aW9uOiB0aGVtZS50cmFuc2l0aW9ucy5jcmVhdGUoJ3RyYW5zZm9ybScsIHtcbiAgICAgICAgICAgICAgICBkdXJhdGlvbjogdGhlbWUudHJhbnNpdGlvbnMuZHVyYXRpb24uc2hvcnRlcixcbiAgICAgICAgICAgICAgICBlYXNpbmc6IHRoZW1lLnRyYW5zaXRpb25zLmVhc2luZy5lYXNlT3V0LFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBwb2ludGVyRXZlbnRzOiAnbm9uZScsIC8vIFRyYW5zcGFyZW50IHRvIHRoZSBob3ZlciBzdHlsZS5cbiAgICAgICAgfSxcbiAgICAgICAgJyY6bm90KCRlcnJvcik6aG92ZXI6YWZ0ZXInOiB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06ICdzY2FsZVgoMSknLFxuICAgICAgICB9LFxuICAgICAgICAnJiRmb2N1c2VkOmFmdGVyJzoge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiAnc2NhbGVYKDEpJyxcbiAgICAgICAgfSxcbiAgICB9LFxuICAgIGZvY3VzZWQ6IHt9LFxuICAgIGVycm9yOiB7XG4gICAgICAgIGJvcmRlcjogYDFweCBzb2xpZCAke3RoZW1lLnBhbGV0dGUubmVnYXRpdmUubm9ybWFsfWAsXG4gICAgICAgIHBhZGRpbmdMZWZ0OiA4LFxuICAgICAgICBib3JkZXJSYWRpdXM6IDIsXG4gICAgfSxcbiAgICBzdGFydEFkb3JubWVudDoge1xuICAgICAgICBjb2xvcjogdGhlbWUucGFsZXR0ZS5uZXV0cmFsLm5vcm1hbCxcbiAgICAgICAgekluZGV4OiAxLFxuICAgICAgICBtYXJnaW5SaWdodDogOCxcbiAgICB9LFxuICAgIHN0YXJ0QWRvcm5tZW50Rm9jdXM6IHtcbiAgICAgICAgY29sb3I6IHRoZW1lLnBhbGV0dGUubmV1dHJhbC5kYXJrLFxuICAgIH0sXG4gICAgc3RhcnRBZG9ybm1lbnREaXNhYmxlZDoge1xuICAgICAgICBjb2xvcjogdGhlbWUucGFsZXR0ZS5uZXV0cmFsLmxpZ2h0LFxuICAgIH0sXG4gICAgcmlnaHRJY29uOiB7XG4gICAgICAgIG1hcmdpbjogJzAgOHB4JyxcbiAgICAgICAgd2lkdGg6IDE4LFxuICAgICAgICBoZWlnaHQ6IDM5LFxuICAgICAgICBjb2xvcjogdGhlbWUucGFsZXR0ZS5uZXV0cmFsLm5vcm1hbCxcbiAgICB9LFxuICAgIHJpZ2h0SWNvbkZvY3VzOiB7XG4gICAgICAgIGNvbG9yOiB0aGVtZS5wYWxldHRlLm5ldXRyYWwuZGFyayxcbiAgICB9LFxuICAgIHJpZ2h0SWNvbkRpc2FibGVkOiB7XG4gICAgICAgIGNvbG9yOiB0aGVtZS5wYWxldHRlLm5ldXRyYWwubGlnaHQsXG4gICAgfSxcbiAgICByaWdodEljb25FcnJvcjoge1xuICAgICAgICAvLyBBam91dCBkJzFweCBwb3VyIG5lIHBhcyBhdm9pciBkZSBkw6ljYWxhZ2UgZW4gbW9kZSBlcnJvciBhdmVjIGxlIGJvcmRlciByaWdodFxuICAgICAgICBtYXJnaW5SaWdodDogMTAsXG4gICAgfSxcbiAgICBpbnB1dDoge1xuICAgICAgICAuLi50aGVtZS50eXBvZ3JhcGh5LmJvZHkxLFxuICAgICAgICBmb250V2VpZ2h0OiB0aGVtZS50eXBvZ3JhcGh5LmZvbnRXZWlnaHRSZWd1bGFyLFxuICAgICAgICBjYXJldENvbG9yOiB0aGVtZS5wYWxldHRlLmJ1c2luZXNzLnByaW1hcnkubm9ybWFsLFxuICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgIH0sXG4gICAgaW5wdXRQcm9wc0NsYXNzTmFtZToge1xuICAgICAgICAuLi50aGVtZS50eXBvZ3JhcGh5LmJvZHkxLFxuICAgICAgICBwYWRkaW5nOiAwLFxuICAgIH0sXG4gICAgaW5wdXRUZXh0OiB7XG4gICAgICAgIGhlaWdodDogMzksXG4gICAgfSxcbiAgICBpbnB1dFRleHRhcmVhOiB7XG4gICAgICAgIG1pbkhlaWdodDogMzksXG4gICAgICAgIHBhZGRpbmdUb3A6IDgsXG4gICAgfSxcbiAgICBpY29uUG9pbnRlcjoge1xuICAgICAgICB6SW5kZXg6IDIsXG4gICAgICAgIGN1cnNvcjogJ3BvaW50ZXInLFxuICAgIH0sXG4gICAgZXJhc2VCdXR0b246IHtcbiAgICAgICAgaGVpZ2h0OiAzOSxcbiAgICAgICAgd2lkdGg6IDQwLFxuICAgICAgICBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJyxcbiAgICB9LFxuICAgIGRpc2FibGVkOiB7XG4gICAgICAgIGJvcmRlckJvdHRvbTogJ25vbmUnLFxuICAgIH0sXG4gICAgZW5kQWRvcm5tZW50OiB7XG4gICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgfSxcbn0pO1xuXG5jbGFzcyBIaUlucHV0IGV4dGVuZHMgUmVhY3QuUHVyZUNvbXBvbmVudCB7XG4gICAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRoaXMgcHJvcGVydHkgaGVscHMgdXNlcnMgdG8gZmlsbCBmb3JtcyBmYXN0ZXIsIGVzcGVjaWFsbHkgb24gbW9iaWxlIGRldmljZXMuXG4gICAgICAgICAqIFRoZSBuYW1lIGNhbiBiZSBjb25mdXNpbmcsIGl0J3MgbW9yZSBsaWtlIGFuIGF1dG9maWxsLlxuICAgICAgICAgKiBZb3UgY2FuIGxlYXJuIG1vcmUgYWJvdXQgaXQgaW4gdGhpcyBhcnRpY2xlXG4gICAgICAgICAqIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3dlYi91cGRhdGVzLzIwMTUvMDYvY2hlY2tvdXQtZmFzdGVyLXdpdGgtYXV0b2ZpbGxcbiAgICAgICAgICovXG4gICAgICAgIGF1dG9Db21wbGV0ZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFNpIGB0cnVlYCwgbGUgY2hhbXBzIGlucHV0IGF1cmEgbGUgZm9jdXMgYXByw6hzIGxlIG1vdW50LlxuICAgICAgICAgKi9cbiAgICAgICAgYXV0b0ZvY3VzOiBQcm9wVHlwZXMuYm9vbCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFV0aWxlIHBvdXIgc3VyY2hhcmdlciBsZXMgY2xhc3Nlc1xuICAgICAgICAgKi9cbiAgICAgICAgY2xhc3NlczogUHJvcFR5cGVzLm9iamVjdCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFV0aWxlIHBvdXIgc3VyY2hhcmdlciBsZXMgY2xhc3Nlc1xuICAgICAgICAgKi9cbiAgICAgICAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgICAvKipcbiAgICAgICAgICogUmVuZHJlIGxlIGNoYW1wcyBkw6lzYWN0aXbDqVxuICAgICAgICAgKi9cbiAgICAgICAgZGlzYWJsZWQ6IFByb3BUeXBlcy5ib29sLFxuICAgICAgICAvKipcbiAgICAgICAgICogRWzDqW1lbnQgw6AgYWZmaWNoZXIgw6AgZHJvaXRlIGRlIGwnaW5wdXQsIHBldXQgw6p0cmUgdW4gc3RyaW5nIG91IHVuIG5vZGVcbiAgICAgICAgICovXG4gICAgICAgIGVuZEFkb3JubWVudDogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLnN0cmluZywgUHJvcFR5cGVzLm5vZGVdKSxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFNpIGB0cnVlYCwgbGUgY2hhbXBzIGlucHV0IHNlcmEgYWZmaWNow6kgZW4gZXJyZXVyLlxuICAgICAgICAgKi9cbiAgICAgICAgZXJyb3I6IFByb3BUeXBlcy5ib29sLFxuICAgICAgICAvKipcbiAgICAgICAgICogVXRpbGUgcG91ciBzdXJjaGFyZ2VyIGxlcyBjbGFzc2VzIGRlIGwnaW5wdXRcbiAgICAgICAgICovXG4gICAgICAgIGlucHV0Q2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgICAvKipcbiAgICAgICAgICogaWQgZGUgbCfDqWzDqW1lbnQgaW5wdXRcbiAgICAgICAgICovXG4gICAgICAgIGlucHV0SWQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBQYXNzZSB1bmUgcmVmIGNhbGxiYWNrIGF1IGNvbXBvc2FudCBpbnB1dFxuICAgICAgICAgKi9cbiAgICAgICAgaW5wdXRSZWY6IFByb3BUeXBlcy5mdW5jLFxuICAgICAgICAvKipcbiAgICAgICAgICogU2kgYHRydWVgLCBsZSBjaGFtcHMgaW5wdXQgc2VyYSB1biB0ZXh0YXJlYVxuICAgICAgICAgKi9cbiAgICAgICAgbXVsdGlsaW5lOiBQcm9wVHlwZXMuYm9vbCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEF0dHJpYnV0ZSBuYW1lIGRlIGwnw6lsw6ltZW50IGBpbnB1dGAuXG4gICAgICAgICAqL1xuICAgICAgICBuYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgICAvKipcbiAgICAgICAgICogRm9uY3Rpb24gZGUgY2FsbGJhY2sgYXBwZWzDqWUgbG9yc3F1J29uIHF1aXR0ZSBsZSBjaGFtcHMgaW5wdXRcbiAgICAgICAgICovXG4gICAgICAgIG9uQmx1cjogUHJvcFR5cGVzLmZ1bmMsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBGb25jdGlvbiBkZSBjYWxsYmFjayBhcHBlbMOpZSBsb3JzcXUnb24gcmVtcGxpZSBsZSBjaGFtcHMgZGUgcmVjaGVyY2hlXG4gICAgICAgICAqL1xuICAgICAgICBvbkNoYW5nZTogUHJvcFR5cGVzLmZ1bmMsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBGb25jdGlvbiBkZSBjYWxsYmFjayBhcHBlbMOpZSBhdSBmb2N1cyBkdSBjaGFtcHNcbiAgICAgICAgICovXG4gICAgICAgIG9uRm9jdXM6IFByb3BUeXBlcy5mdW5jLFxuICAgICAgICAvKipcbiAgICAgICAgICogRm9uY3Rpb24gZGUgY2FsbGJhY2sgYXBwZWzDqWUgbG9yc3F1J29uIHRhcGUgdW5lIHRvdWNoZVxuICAgICAgICAgKi9cbiAgICAgICAgb25LZXlEb3duOiBQcm9wVHlwZXMuZnVuYyxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEZvbmN0aW9uIGRlIGNhbGxiYWNrIGFwcGVsw6llIGxvcnNxdSdvbiBjbGljIHN1ciBsJ2ljw7RuZSBkZSBnYXVjaGVcbiAgICAgICAgICovXG4gICAgICAgIG9uTGVmdEljb25DbGljazogUHJvcFR5cGVzLmZ1bmMsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBQb3VyIGxlcyBpbnB1dCBkZSB0eXBlIG51bWJlciAocGVybWV0IGRlIGJsb3F1ZXIgbGEgc2Fpc2llIGRlcyBjYXJhY3TDqHJlcyBub24gYXV0b3Jpc8OpcylcbiAgICAgICAgICovXG4gICAgICAgIG9ubHlOdW1iZXJzOiBQcm9wVHlwZXMuYm9vbCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEZvbmN0aW9uIGRlIGNhbGxiYWNrIGFwcGVsw6llIGxvcnNxdSdvbiBzdXJ2b2xlIGxlIGNoYW1wc1xuICAgICAgICAgKi9cbiAgICAgICAgb25Nb3VzZUVudGVyOiBQcm9wVHlwZXMuZnVuYyxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEZvbmN0aW9uIGRlIGNhbGxiYWNrIGFwcGVsw6llIGxvcnNxdWUgbGUgY3Vyc2V1ciBxdWl0dGUgbGUgY2hhbXBzXG4gICAgICAgICAqL1xuICAgICAgICBvbk1vdXNlTGVhdmU6IFByb3BUeXBlcy5mdW5jLFxuICAgICAgICAvKipcbiAgICAgICAgICogRm9uY3Rpb24gZGUgY2FsbGJhY2sgYXBwZWzDqWUgbG9yc3F1J29uIHZpZGUgbGUgY2hhbXBzIGRlIHJlY2hlcmNoZVxuICAgICAgICAgKi9cbiAgICAgICAgb25SZXNldDogUHJvcFR5cGVzLmZ1bmMsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBGb25jdGlvbiBkZSBjYWxsYmFjayBhcHBlbMOpZSBsb3JzcXUnb24gY2xpYyBzdXIgbCdpY8O0bmUgZGUgZHJvaXRlXG4gICAgICAgICAqL1xuICAgICAgICBvblJpZ2h0SWNvbkNsaWNrOiBQcm9wVHlwZXMuZnVuYyxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFBhc3NlIHVuZSByZWYgY2FsbGJhY2sgYXUgY29tcG9zYW50IGRpdiBwYXJlbnRcbiAgICAgICAgICovXG4gICAgICAgIG92ZXJsYXlSZWY6IFByb3BUeXBlcy5mdW5jLFxuICAgICAgICAvKipcbiAgICAgICAgICogUGxhY2Vob2xkZXJcbiAgICAgICAgICovXG4gICAgICAgIHBsYWNlaG9sZGVyOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgICAvKipcbiAgICAgICAgICogTm9tYnJlIGRlIGxpZ25lcyBwb3VyIGxlcyB0ZXh0QXJlYVxuICAgICAgICAgKi9cbiAgICAgICAgcm93czogUHJvcFR5cGVzLm51bWJlcixcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEljw7RuZSDDoCBhZmZpY2hlciDDoCBnYXVjaGUgZGUgbCdpbnB1dFxuICAgICAgICAgKi9cbiAgICAgICAgc3RhcnRBZG9ybm1lbnQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAaWdub3JlXG4gICAgICAgICAqL1xuICAgICAgICB0aGVtZTogUHJvcFR5cGVzLm9iamVjdCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFR5cGUgZHUgY2hhbXBzIGlucHV0LiBEb2l0IMOqdHJlIHVuIHR5cGUgSFRNTDUgdmFsaWRlLlxuICAgICAgICAgKi9cbiAgICAgICAgdHlwZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFZhbGV1ciBkdSBjaGFtcHMgZGUgcmVjaGVyY2hlXG4gICAgICAgICAqL1xuICAgICAgICB2YWx1ZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICB9O1xuXG4gICAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICAgICAgdmFsdWU6ICcnLFxuICAgICAgICBwbGFjZWhvbGRlcjogJycsXG4gICAgICAgIGlucHV0SWQ6ICcnLFxuICAgICAgICBuYW1lOiAnJyxcbiAgICAgICAgc3RhcnRBZG9ybm1lbnQ6ICcnLFxuICAgICAgICBlbmRBZG9ybm1lbnQ6ICcnLFxuICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgIG11bHRpbGluZTogZmFsc2UsXG4gICAgICAgIGVycm9yOiBmYWxzZSxcbiAgICAgICAgb25seU51bWJlcnM6IGZhbHNlLFxuICAgIH07XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcblxuICAgICAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgICAgICAgZm9jdXNlZDogZmFsc2UsXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5oYW5kbGVDaGFuZ2UgPSB0aGlzLmhhbmRsZUNoYW5nZS5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLmhhbmRsZUZvY3VzID0gdGhpcy5oYW5kbGVGb2N1cy5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLmhhbmRsZURpdkNsaWNrID0gdGhpcy5oYW5kbGVEaXZDbGljay5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLmhhbmRsZUJsdXIgPSB0aGlzLmhhbmRsZUJsdXIuYmluZCh0aGlzKTtcbiAgICAgICAgdGhpcy5oYW5kbGVSZXNldCA9IHRoaXMuaGFuZGxlUmVzZXQuYmluZCh0aGlzKTtcbiAgICAgICAgdGhpcy5oYW5kbGVNb3VzZUVudGVyID0gdGhpcy5oYW5kbGVNb3VzZUVudGVyLmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMuaGFuZGxlTW91c2VMZWF2ZSA9IHRoaXMuaGFuZGxlTW91c2VMZWF2ZS5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLmdldElucHV0RWxlbWVudCA9IHRoaXMuZ2V0SW5wdXRFbGVtZW50LmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMuaGFuZGxlT3ZlcmxheVJlZiA9IHRoaXMuaGFuZGxlT3ZlcmxheVJlZi5iaW5kKHRoaXMpO1xuICAgIH1cblxuICAgIGdldElucHV0RWxlbWVudChlbCkge1xuICAgICAgICB0aGlzLmlucHV0RWxlbWVudCA9IGVsO1xuICAgICAgICBpZiAodGhpcy5wcm9wcy5pbnB1dFJlZikge1xuICAgICAgICAgICAgdGhpcy5wcm9wcy5pbnB1dFJlZih0aGlzLmlucHV0RWxlbWVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBoYW5kbGVDaGFuZ2UoZXZlbnQpIHtcbiAgICAgICAgY29uc3QgYXV0aG9yaXplZENoYXIgPSAnMTIzNDU2Nzg5MFRPdG88Pic7XG4gICAgICAgIGlmICh0aGlzLnByb3BzLm9uQ2hhbmdlKSB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgKGF1dGhvcml6ZWRDaGFyLmluZGV4T2YoZXZlbnQudGFyZ2V0LnZhbHVlLmNoYXJBdChldmVudC50YXJnZXQudmFsdWUubGVuZ3RoIC0gMSkpID49XG4gICAgICAgICAgICAgICAgICAgIDAgJiZcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5vbmx5TnVtYmVycyA9PT0gdHJ1ZSkgfHxcbiAgICAgICAgICAgICAgICB0aGlzLnByb3BzLm9ubHlOdW1iZXJzICE9PSB0cnVlXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICB0aGlzLnByb3BzLm9uQ2hhbmdlKGV2ZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGhhbmRsZVJlc2V0KCkge1xuICAgICAgICBpZiAodGhpcy5wcm9wcy5vblJlc2V0KSB7XG4gICAgICAgICAgICB0aGlzLnByb3BzLm9uUmVzZXQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGhhbmRsZUJsdXIoZXZlbnQpIHtcbiAgICAgICAgLy8gU2kgb24gY2xpY2sgc3VyIHVuIMOpbMOpbWVudCBkZSBIaUlucHV0LCBvbiBnYXJkZSBsZSBmb2N1c1xuICAgICAgICAvLyBQYXIgZXhlbXBsZSBzdXIgbCdpY29uZSByZXNldFxuICAgICAgICBpZiAoXG4gICAgICAgICAgICBldmVudC5yZWxhdGVkVGFyZ2V0ICYmXG4gICAgICAgICAgICB0aGlzLm92ZXJsYXlOb2RlICYmXG4gICAgICAgICAgICB0aGlzLm92ZXJsYXlOb2RlLmNvbnRhaW5zKGV2ZW50LnJlbGF0ZWRUYXJnZXQpXG4gICAgICAgICkge1xuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgZm9jdXNlZDogZmFsc2UgfSk7XG4gICAgICAgICAgICBpZiAodGhpcy5wcm9wcy5vbkJsdXIpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnByb3BzLm9uQmx1cihldmVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBoYW5kbGVGb2N1cyhldmVudCkge1xuICAgICAgICBpZiAodGhpcy5lbmRBZG9ybm1lbnROb2RlICYmIHRoaXMuZW5kQWRvcm5tZW50Tm9kZS5jb250YWlucyhldmVudC50YXJnZXQpKSB7XG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5zdGF0ZS5mb2N1c2VkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGZvY3VzZWQ6IHRydWUgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy5wcm9wcy5vbkZvY3VzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5vbkZvY3VzKGV2ZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuaW5wdXRFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBoYW5kbGVEaXZDbGljayhldmVudCkge1xuICAgICAgICBpZiAodGhpcy5lbmRBZG9ybm1lbnROb2RlICYmIHRoaXMuZW5kQWRvcm5tZW50Tm9kZS5jb250YWlucyhldmVudC50YXJnZXQpKSB7XG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5zdGF0ZS5mb2N1c2VkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGZvY3VzZWQ6IHRydWUgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmlucHV0RWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaGFuZGxlTW91c2VFbnRlcigpIHtcbiAgICAgICAgaWYgKHRoaXMucHJvcHMub25Nb3VzZUVudGVyKSB7XG4gICAgICAgICAgICB0aGlzLnByb3BzLm9uTW91c2VFbnRlcigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaGFuZGxlTW91c2VMZWF2ZSgpIHtcbiAgICAgICAgaWYgKHRoaXMucHJvcHMub25Nb3VzZUxlYXZlKSB7XG4gICAgICAgICAgICB0aGlzLnByb3BzLm9uTW91c2VMZWF2ZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaGFuZGxlT3ZlcmxheVJlZihlbCkge1xuICAgICAgICB0aGlzLm92ZXJsYXlOb2RlID0gZWw7XG4gICAgICAgIGlmICh0aGlzLnByb3BzLm92ZXJsYXlSZWYpIHtcbiAgICAgICAgICAgIHRoaXMucHJvcHMub3ZlcmxheVJlZihlbCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZW5kZXIoKSB7XG4gICAgICAgIGNvbnN0IHtcbiAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgY2xhc3NlcyxcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyLFxuICAgICAgICAgICAgc3RhcnRBZG9ybm1lbnQsXG4gICAgICAgICAgICBlbmRBZG9ybm1lbnQ6IGVuZEFkb3JubWVudFByb3BzLFxuICAgICAgICAgICAgY2xhc3NOYW1lLFxuICAgICAgICAgICAgZXJyb3IsXG4gICAgICAgICAgICB0eXBlLFxuICAgICAgICAgICAgZGlzYWJsZWQsXG4gICAgICAgICAgICBhdXRvQ29tcGxldGUsXG4gICAgICAgICAgICBhdXRvRm9jdXMsXG4gICAgICAgICAgICBpbnB1dElkLFxuICAgICAgICAgICAgbmFtZSxcbiAgICAgICAgICAgIG11bHRpbGluZSxcbiAgICAgICAgICAgIHJvd3MsXG4gICAgICAgICAgICBpbnB1dENsYXNzTmFtZSxcbiAgICAgICAgICAgIG9uUmVzZXQsXG4gICAgICAgICAgICB0aGVtZSxcbiAgICAgICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICAgICAgY29uc3QgeyBmb2N1c2VkIH0gPSB0aGlzLnN0YXRlO1xuXG4gICAgICAgIGNvbnN0IG92ZXJsYXlQcm9wcyA9IHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogY2xhc3NOYW1lcyhcbiAgICAgICAgICAgICAgICBjbGFzc2VzLnJvb3QsXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBbY2xhc3Nlcy5kaXNhYmxlZF06IGRpc2FibGVkICYmICFlcnJvcixcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzZXMuaW5rYmFyXTogIWRpc2FibGVkLFxuICAgICAgICAgICAgICAgICAgICBbY2xhc3Nlcy5mb2N1c2VkXTogZm9jdXNlZCxcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzZXMuZXJyb3JdOiBlcnJvcixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZSxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICAuLi4oIWRpc2FibGVkICYmIHtcbiAgICAgICAgICAgICAgICBvbkNsaWNrOiB0aGlzLmhhbmRsZURpdkNsaWNrLFxuICAgICAgICAgICAgICAgIG9uTW91c2VFbnRlcjogdGhpcy5oYW5kbGVNb3VzZUVudGVyLFxuICAgICAgICAgICAgICAgIG9uTW91c2VMZWF2ZTogdGhpcy5oYW5kbGVNb3VzZUxlYXZlLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICByZWY6IHRoaXMuaGFuZGxlT3ZlcmxheVJlZixcbiAgICAgICAgfTtcblxuICAgICAgICBsZXQgbGVmdEljb247XG4gICAgICAgIGlmIChzdGFydEFkb3JubWVudCkge1xuICAgICAgICAgICAgbGVmdEljb24gPSAoXG4gICAgICAgICAgICAgICAgPEhpSWNvbkJ1aWxkZXJcbiAgICAgICAgICAgICAgICAgICAgaWNvbj17c3RhcnRBZG9ybm1lbnR9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e3RoaXMucHJvcHMub25MZWZ0SWNvbkNsaWNrfVxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoY2xhc3Nlcy5zdGFydEFkb3JubWVudCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzZXMuc3RhcnRBZG9ybm1lbnRGb2N1c106IGZvY3VzZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3Nlcy5zdGFydEFkb3JubWVudERpc2FibGVkXTogZGlzYWJsZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3Nlcy5pY29uUG9pbnRlcl06IHRoaXMucHJvcHMub25MZWZ0SWNvbkNsaWNrLFxuICAgICAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBCdWlsZCBlbmRBZG9ybm1lbnQgd2l0aCBlcmFzZUljb24gKyBlbmRBZG9ybm1lbnRQcm9wc1xuICAgICAgICBjb25zdCBlcmFzZUljb24gPSAhbXVsdGlsaW5lICYmXG4gICAgICAgICAgICBvblJlc2V0ICYmXG4gICAgICAgICAgICBmb2N1c2VkICYmXG4gICAgICAgICAgICAhZGlzYWJsZWQgJiZcbiAgICAgICAgICAgIHZhbHVlLmxlbmd0aCA+IDAgJiYgKFxuICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3Nlcy5lcmFzZUJ1dHRvbn1cbiAgICAgICAgICAgICAgICAgICAgb25DbGljaz17dGhpcy5oYW5kbGVSZXNldH1cbiAgICAgICAgICAgICAgICAgICAgb25CbHVyPXt0aGlzLmhhbmRsZUJsdXJ9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8SGlJY29uQnVpbGRlciBpY29uPVwiY2xvc2VcIiBzaXplPXsxOH0gY29sb3I9e3RoZW1lLnBhbGV0dGUubmV1dHJhbC5ub3JtYWx9IC8+XG4gICAgICAgICAgICAgICAgPC9JY29uQnV0dG9uPlxuICAgICAgICAgICAgKTtcblxuICAgICAgICBsZXQgZW5kQWRvcm5tZW50ID0gZW5kQWRvcm5tZW50UHJvcHM7XG4gICAgICAgIGlmICh0eXBlb2YgZW5kQWRvcm5tZW50UHJvcHMgPT09ICdzdHJpbmcnICYmIGVuZEFkb3JubWVudFByb3BzICE9PSAnJykge1xuICAgICAgICAgICAgZW5kQWRvcm5tZW50ID0gKFxuICAgICAgICAgICAgICAgIDxIaUljb25CdWlsZGVyXG4gICAgICAgICAgICAgICAgICAgIGljb249e2VuZEFkb3JubWVudFByb3BzfVxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXt0aGlzLnByb3BzLm9uUmlnaHRJY29uQ2xpY2t9XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lcyhjbGFzc2VzLnJpZ2h0SWNvbiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzZXMucmlnaHRJY29uRm9jdXNdOiBmb2N1c2VkLFxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzZXMucmlnaHRJY29uRGlzYWJsZWRdOiBkaXNhYmxlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc2VzLnJpZ2h0SWNvbkVycm9yXTogZXJyb3IsXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3Nlcy5pY29uUG9pbnRlcl06IHRoaXMucHJvcHMub25SaWdodEljb25DbGljayxcbiAgICAgICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPGRpdiB7Li4ub3ZlcmxheVByb3BzfT5cbiAgICAgICAgICAgICAgICA8SW5wdXRcbiAgICAgICAgICAgICAgICAgICAgaWQ9e2lucHV0SWR9XG4gICAgICAgICAgICAgICAgICAgIHR5cGU9e3R5cGV9XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3Nlcy5pbnB1dH1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZVVuZGVybGluZVxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17dGhpcy5oYW5kbGVDaGFuZ2V9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9e3BsYWNlaG9sZGVyfVxuICAgICAgICAgICAgICAgICAgICBvbkZvY3VzPXt0aGlzLmhhbmRsZUZvY3VzfVxuICAgICAgICAgICAgICAgICAgICBvbktleURvd249e3RoaXMucHJvcHMub25LZXlEb3dufVxuICAgICAgICAgICAgICAgICAgICBvbkJsdXI9e3RoaXMuaGFuZGxlQmx1cn1cbiAgICAgICAgICAgICAgICAgICAgaW5wdXRSZWY9e3RoaXMuZ2V0SW5wdXRFbGVtZW50fVxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgIG11bHRpbGluZT17bXVsdGlsaW5lfVxuICAgICAgICAgICAgICAgICAgICByb3dzPXtyb3dzfVxuICAgICAgICAgICAgICAgICAgICBmdWxsV2lkdGhcbiAgICAgICAgICAgICAgICAgICAgYXV0b0NvbXBsZXRlPXthdXRvQ29tcGxldGV9XG4gICAgICAgICAgICAgICAgICAgIGF1dG9Gb2N1cz17YXV0b0ZvY3VzfVxuICAgICAgICAgICAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgICAgICAgICAgICBzdGFydEFkb3JubWVudD17bGVmdEljb259XG4gICAgICAgICAgICAgICAgICAgIGVuZEFkb3JubWVudD17XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xhc3Nlcy5lbmRBZG9ybm1lbnR9IHJlZj17ZWwgPT4gdGhpcy5lbmRBZG9ybm1lbnROb2RlID0gZWx9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtlcmFzZUljb259XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2VuZEFkb3JubWVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlucHV0UHJvcHM9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogY2xhc3NOYW1lcyhpbnB1dENsYXNzTmFtZSwgY2xhc3Nlcy5pbnB1dFByb3BzQ2xhc3NOYW1lLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzZXMuaW5wdXRUZXh0XTogIW11bHRpbGluZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3Nlcy5pbnB1dFRleHRhcmVhXTogbXVsdGlsaW5lLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICApO1xuICAgIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgd2l0aFN0eWxlcyhzdHlsZXMsIHsgbmFtZTogJ0hpTXVpSGlJbnB1dCcsIHdpdGhUaGVtZTogdHJ1ZSB9KShIaUlucHV0KTtcbiJdfQ==
16154
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9IaUZvcm0vSGlJbnB1dC5qcyJdLCJuYW1lcyI6WyJzdHlsZXMiLCJyb290IiwicG9zaXRpb24iLCJ0aGVtZSIsInR5cG9ncmFwaHkiLCJib2R5MSIsImJvcmRlckJvdHRvbSIsInBhbGV0dGUiLCJpbnB1dCIsImJvdHRvbUxpbmUiLCJwYWRkaW5nTGVmdCIsImJhY2tncm91bmRDb2xvciIsImJhY2tncm91bmQyIiwid2lkdGgiLCJtYXJnaW5Ub3AiLCJpbmtiYXIiLCJidXNpbmVzcyIsInByaW1hcnkiLCJub3JtYWwiLCJsZWZ0IiwiYm90dG9tIiwiY29udGVudCIsImhlaWdodCIsInJpZ2h0IiwidHJhbnNmb3JtIiwidHJhbnNpdGlvbiIsInRyYW5zaXRpb25zIiwiY3JlYXRlIiwiZHVyYXRpb24iLCJzaG9ydGVyIiwiZWFzaW5nIiwiZWFzZU91dCIsInBvaW50ZXJFdmVudHMiLCJmb2N1c2VkIiwiZXJyb3IiLCJib3JkZXIiLCJuZWdhdGl2ZSIsImJvcmRlclJhZGl1cyIsInN0YXJ0QWRvcm5tZW50IiwiY29sb3IiLCJuZXV0cmFsIiwiekluZGV4IiwibWFyZ2luUmlnaHQiLCJzdGFydEFkb3JubWVudEZvY3VzIiwiZGFyayIsInN0YXJ0QWRvcm5tZW50RGlzYWJsZWQiLCJsaWdodCIsInJpZ2h0SWNvbiIsIm1hcmdpbiIsInJpZ2h0SWNvbkZvY3VzIiwicmlnaHRJY29uRGlzYWJsZWQiLCJyaWdodEljb25FcnJvciIsImZvbnRXZWlnaHQiLCJmb250V2VpZ2h0UmVndWxhciIsImNhcmV0Q29sb3IiLCJkaXNwbGF5IiwiYWxpZ25JdGVtcyIsImlucHV0UHJvcHNDbGFzc05hbWUiLCJwYWRkaW5nIiwiaW5wdXRUZXh0IiwiaW5wdXRUZXh0YXJlYSIsIm1pbkhlaWdodCIsInBhZGRpbmdUb3AiLCJpY29uUG9pbnRlciIsImN1cnNvciIsImVyYXNlQnV0dG9uIiwiZGlzYWJsZWQiLCJlbmRBZG9ybm1lbnQiLCJIaUlucHV0Iiwic3RhdGUiLCJoYW5kbGVDaGFuZ2UiLCJiaW5kIiwiaGFuZGxlRm9jdXMiLCJoYW5kbGVEaXZDbGljayIsImhhbmRsZUJsdXIiLCJoYW5kbGVSZXNldCIsImhhbmRsZU1vdXNlRW50ZXIiLCJoYW5kbGVNb3VzZUxlYXZlIiwiZ2V0SW5wdXRFbGVtZW50IiwiaGFuZGxlT3ZlcmxheVJlZiIsImVsIiwiaW5wdXRFbGVtZW50IiwicHJvcHMiLCJpbnB1dFJlZiIsImV2ZW50IiwiYXV0aG9yaXplZENoYXIiLCJvbkNoYW5nZSIsImluZGV4T2YiLCJ0YXJnZXQiLCJ2YWx1ZSIsImNoYXJBdCIsImxlbmd0aCIsIm9ubHlOdW1iZXJzIiwib25SZXNldCIsInJlbGF0ZWRUYXJnZXQiLCJvdmVybGF5Tm9kZSIsImNvbnRhaW5zIiwic3RvcFByb3BhZ2F0aW9uIiwic2V0U3RhdGUiLCJvbkJsdXIiLCJlbmRBZG9ybm1lbnROb2RlIiwib25Gb2N1cyIsImZvY3VzIiwib25Nb3VzZUVudGVyIiwib25Nb3VzZUxlYXZlIiwib3ZlcmxheVJlZiIsImNsYXNzZXMiLCJwbGFjZWhvbGRlciIsImVuZEFkb3JubWVudFByb3BzIiwiY2xhc3NOYW1lIiwidHlwZSIsImF1dG9Db21wbGV0ZSIsImF1dG9Gb2N1cyIsImlucHV0SWQiLCJuYW1lIiwibXVsdGlsaW5lIiwicm93cyIsImlucHV0Q2xhc3NOYW1lIiwib3ZlcmxheVByb3BzIiwib25DbGljayIsInJlZiIsImxlZnRJY29uIiwib25MZWZ0SWNvbkNsaWNrIiwiZXJhc2VJY29uIiwib25SaWdodEljb25DbGljayIsIm9uS2V5RG93biIsIlB1cmVDb21wb25lbnQiLCJwcm9wVHlwZXMiLCJzdHJpbmciLCJib29sIiwib2JqZWN0Iiwib25lT2ZUeXBlIiwibm9kZSIsImZ1bmMiLCJudW1iZXIiLCJkZWZhdWx0UHJvcHMiLCJ3aXRoVGhlbWUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7Ozs7Ozs7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b0JBQVUwRixNQTNHWDtBQTRHZjs7O0FBR0E3SCxXQUFPLG9CQUFVK0gsTUEvR0Y7QUFnSGY7OztBQUdBcEIsVUFBTSxvQkFBVWtCLE1BbkhEO0FBb0hmOzs7QUFHQXZDLFdBQU8sb0JBQVV1QztBQXZIRixDO0FBRGpCNUQsTyxDQTJIS21FLFksR0FBZTtBQUNsQjlDLFdBQU8sRUFEVztBQUVsQmtCLGlCQUFhLEVBRks7QUFHbEJNLGFBQVMsRUFIUztBQUlsQkMsVUFBTSxFQUpZO0FBS2xCNUUsb0JBQWdCLEVBTEU7QUFNbEI2QixrQkFBYyxFQU5JO0FBT2xCMkMsVUFBTSxNQVBZO0FBUWxCSyxlQUFXLEtBUk87QUFTbEJqRixXQUFPLEtBVFc7QUFVbEIwRCxpQkFBYTtBQVZLLEM7a0JBdVBYLDBCQUFXNUYsTUFBWCxFQUFtQixFQUFFa0gsTUFBTSxjQUFSLEVBQXdCc0IsV0FBVyxJQUFuQyxFQUFuQixFQUE4RHBFLE9BQTlELEMiLCJmaWxlIjoiSGlJbnB1dC5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS92ZG9zc2FudG9zL2Rldi9oaXBheS1tYXRlcmlhbC11aSIsInNvdXJjZXNDb250ZW50IjpbIi8vIEBmbG93XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbnB1dCBmcm9tICdtYXRlcmlhbC11aS9JbnB1dCc7XG5pbXBvcnQgSWNvbkJ1dHRvbiBmcm9tICdtYXRlcmlhbC11aS9JY29uQnV0dG9uJztcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IHdpdGhTdHlsZXMgZnJvbSAnLi4vc3R5bGVzL3dpdGhTdHlsZXMnO1xuaW1wb3J0IEhpSWNvbkJ1aWxkZXIgZnJvbSAnLi4vdXRpbHMvSGlJY29uQnVpbGRlcic7XG5cbmV4cG9ydCBjb25zdCBzdHlsZXMgPSB0aGVtZSA9PiAoe1xuICAgIHJvb3Q6IHtcbiAgICAgICAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gICAgICAgIC4uLnRoZW1lLnR5cG9ncmFwaHkuYm9keTEsXG4gICAgICAgIGJvcmRlckJvdHRvbTogYDFweCBzb2xpZCAke3RoZW1lLnBhbGV0dGUuaW5wdXQuYm90dG9tTGluZX1gLFxuICAgICAgICBwYWRkaW5nTGVmdDogOCxcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS5wYWxldHRlLmJhY2tncm91bmQyLFxuICAgICAgICAnJiRmb2N1c2VkJzoge1xuICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnI2ZmZmZmZicsXG4gICAgICAgIH0sXG4gICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgIC8vIEFqb3V0IGQnMXB4IHBvdXIgbmUgcGFzIGF2b2lyIGRlIGTDqWNhbGFnZSBlbiBtb2RlIGVycm9yIGF2ZWMgbGUgYm9yZGVyIHRvcFxuICAgICAgICAnJjpub3QoJGVycm9yKSc6IHtcbiAgICAgICAgICAgIG1hcmdpblRvcDogMSxcbiAgICAgICAgfSxcbiAgICB9LFxuICAgIGlua2Jhcjoge1xuICAgICAgICAnJjpub3QoJGVycm9yKTphZnRlcic6IHtcbiAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogdGhlbWUucGFsZXR0ZS5idXNpbmVzcy5wcmltYXJ5Lm5vcm1hbCxcbiAgICAgICAgICAgIGxlZnQ6IDAsXG4gICAgICAgICAgICBib3R0b206IDAsXG4gICAgICAgICAgICAvLyBEb2luZyB0aGUgb3RoZXIgd2F5IGFyb3VuZCBjcmFzaCBvbiBJRTExIFwiJydcIiBodHRwczovL2dpdGh1Yi5jb20vY3NzaW5qcy9qc3MvaXNzdWVzLzI0MlxuICAgICAgICAgICAgY29udGVudDogJ1wiXCInLFxuICAgICAgICAgICAgaGVpZ2h0OiAxLFxuICAgICAgICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgICAgICAgICByaWdodDogMCxcbiAgICAgICAgICAgIHRyYW5zZm9ybTogJ3NjYWxlWCgwKScsXG4gICAgICAgICAgICB0cmFuc2l0aW9uOiB0aGVtZS50cmFuc2l0aW9ucy5jcmVhdGUoJ3RyYW5zZm9ybScsIHtcbiAgICAgICAgICAgICAgICBkdXJhdGlvbjogdGhlbWUudHJhbnNpdGlvbnMuZHVyYXRpb24uc2hvcnRlcixcbiAgICAgICAgICAgICAgICBlYXNpbmc6IHRoZW1lLnRyYW5zaXRpb25zLmVhc2luZy5lYXNlT3V0LFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBwb2ludGVyRXZlbnRzOiAnbm9uZScsIC8vIFRyYW5zcGFyZW50IHRvIHRoZSBob3ZlciBzdHlsZS5cbiAgICAgICAgfSxcbiAgICAgICAgJyY6bm90KCRlcnJvcik6aG92ZXI6YWZ0ZXInOiB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06ICdzY2FsZVgoMSknLFxuICAgICAgICB9LFxuICAgICAgICAnJiRmb2N1c2VkOmFmdGVyJzoge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiAnc2NhbGVYKDEpJyxcbiAgICAgICAgfSxcbiAgICB9LFxuICAgIGZvY3VzZWQ6IHt9LFxuICAgIGVycm9yOiB7XG4gICAgICAgIGJvcmRlcjogYDFweCBzb2xpZCAke3RoZW1lLnBhbGV0dGUubmVnYXRpdmUubm9ybWFsfWAsXG4gICAgICAgIHBhZGRpbmdMZWZ0OiA4LFxuICAgICAgICBib3JkZXJSYWRpdXM6IDIsXG4gICAgfSxcbiAgICBzdGFydEFkb3JubWVudDoge1xuICAgICAgICBjb2xvcjogdGhlbWUucGFsZXR0ZS5uZXV0cmFsLm5vcm1hbCxcbiAgICAgICAgekluZGV4OiAxLFxuICAgICAgICBtYXJnaW5SaWdodDogOCxcbiAgICB9LFxuICAgIHN0YXJ0QWRvcm5tZW50Rm9jdXM6IHtcbiAgICAgICAgY29sb3I6IHRoZW1lLnBhbGV0dGUubmV1dHJhbC5kYXJrLFxuICAgIH0sXG4gICAgc3RhcnRBZG9ybm1lbnREaXNhYmxlZDoge1xuICAgICAgICBjb2xvcjogdGhlbWUucGFsZXR0ZS5uZXV0cmFsLmxpZ2h0LFxuICAgIH0sXG4gICAgcmlnaHRJY29uOiB7XG4gICAgICAgIG1hcmdpbjogJzAgOHB4JyxcbiAgICAgICAgd2lkdGg6IDE4LFxuICAgICAgICBoZWlnaHQ6IDM5LFxuICAgICAgICBjb2xvcjogdGhlbWUucGFsZXR0ZS5uZXV0cmFsLm5vcm1hbCxcbiAgICB9LFxuICAgIHJpZ2h0SWNvbkZvY3VzOiB7XG4gICAgICAgIGNvbG9yOiB0aGVtZS5wYWxldHRlLm5ldXRyYWwuZGFyayxcbiAgICB9LFxuICAgIHJpZ2h0SWNvbkRpc2FibGVkOiB7XG4gICAgICAgIGNvbG9yOiB0aGVtZS5wYWxldHRlLm5ldXRyYWwubGlnaHQsXG4gICAgfSxcbiAgICByaWdodEljb25FcnJvcjoge1xuICAgICAgICAvLyBBam91dCBkJzFweCBwb3VyIG5lIHBhcyBhdm9pciBkZSBkw6ljYWxhZ2UgZW4gbW9kZSBlcnJvciBhdmVjIGxlIGJvcmRlciByaWdodFxuICAgICAgICBtYXJnaW5SaWdodDogMTAsXG4gICAgfSxcbiAgICBpbnB1dDoge1xuICAgICAgICAuLi50aGVtZS50eXBvZ3JhcGh5LmJvZHkxLFxuICAgICAgICBmb250V2VpZ2h0OiB0aGVtZS50eXBvZ3JhcGh5LmZvbnRXZWlnaHRSZWd1bGFyLFxuICAgICAgICBjYXJldENvbG9yOiB0aGVtZS5wYWxldHRlLmJ1c2luZXNzLnByaW1hcnkubm9ybWFsLFxuICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgIH0sXG4gICAgaW5wdXRQcm9wc0NsYXNzTmFtZToge1xuICAgICAgICAuLi50aGVtZS50eXBvZ3JhcGh5LmJvZHkxLFxuICAgICAgICBwYWRkaW5nOiAwLFxuICAgIH0sXG4gICAgaW5wdXRUZXh0OiB7XG4gICAgICAgIGhlaWdodDogMzksXG4gICAgfSxcbiAgICBpbnB1dFRleHRhcmVhOiB7XG4gICAgICAgIG1pbkhlaWdodDogMzksXG4gICAgICAgIHBhZGRpbmdUb3A6IDgsXG4gICAgfSxcbiAgICBpY29uUG9pbnRlcjoge1xuICAgICAgICB6SW5kZXg6IDIsXG4gICAgICAgIGN1cnNvcjogJ3BvaW50ZXInLFxuICAgIH0sXG4gICAgZXJhc2VCdXR0b246IHtcbiAgICAgICAgaGVpZ2h0OiAzOSxcbiAgICAgICAgd2lkdGg6IDQwLFxuICAgICAgICBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJyxcbiAgICB9LFxuICAgIGRpc2FibGVkOiB7XG4gICAgICAgIGJvcmRlckJvdHRvbTogJ25vbmUnLFxuICAgIH0sXG4gICAgZW5kQWRvcm5tZW50OiB7XG4gICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgfSxcbn0pO1xuXG5jbGFzcyBIaUlucHV0IGV4dGVuZHMgUmVhY3QuUHVyZUNvbXBvbmVudCB7XG4gICAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRoaXMgcHJvcGVydHkgaGVscHMgdXNlcnMgdG8gZmlsbCBmb3JtcyBmYXN0ZXIsIGVzcGVjaWFsbHkgb24gbW9iaWxlIGRldmljZXMuXG4gICAgICAgICAqIFRoZSBuYW1lIGNhbiBiZSBjb25mdXNpbmcsIGl0J3MgbW9yZSBsaWtlIGFuIGF1dG9maWxsLlxuICAgICAgICAgKiBZb3UgY2FuIGxlYXJuIG1vcmUgYWJvdXQgaXQgaW4gdGhpcyBhcnRpY2xlXG4gICAgICAgICAqIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3dlYi91cGRhdGVzLzIwMTUvMDYvY2hlY2tvdXQtZmFzdGVyLXdpdGgtYXV0b2ZpbGxcbiAgICAgICAgICovXG4gICAgICAgIGF1dG9Db21wbGV0ZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFNpIGB0cnVlYCwgbGUgY2hhbXBzIGlucHV0IGF1cmEgbGUgZm9jdXMgYXByw6hzIGxlIG1vdW50LlxuICAgICAgICAgKi9cbiAgICAgICAgYXV0b0ZvY3VzOiBQcm9wVHlwZXMuYm9vbCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFV0aWxlIHBvdXIgc3VyY2hhcmdlciBsZXMgY2xhc3Nlc1xuICAgICAgICAgKi9cbiAgICAgICAgY2xhc3NlczogUHJvcFR5cGVzLm9iamVjdCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFV0aWxlIHBvdXIgc3VyY2hhcmdlciBsZXMgY2xhc3Nlc1xuICAgICAgICAgKi9cbiAgICAgICAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgICAvKipcbiAgICAgICAgICogUmVuZHJlIGxlIGNoYW1wcyBkw6lzYWN0aXbDqVxuICAgICAgICAgKi9cbiAgICAgICAgZGlzYWJsZWQ6IFByb3BUeXBlcy5ib29sLFxuICAgICAgICAvKipcbiAgICAgICAgICogRWzDqW1lbnQgw6AgYWZmaWNoZXIgw6AgZHJvaXRlIGRlIGwnaW5wdXQsIHBldXQgw6p0cmUgdW4gc3RyaW5nIG91IHVuIG5vZGVcbiAgICAgICAgICovXG4gICAgICAgIGVuZEFkb3JubWVudDogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLnN0cmluZywgUHJvcFR5cGVzLm5vZGVdKSxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFNpIGB0cnVlYCwgbGUgY2hhbXBzIGlucHV0IHNlcmEgYWZmaWNow6kgZW4gZXJyZXVyLlxuICAgICAgICAgKi9cbiAgICAgICAgZXJyb3I6IFByb3BUeXBlcy5ib29sLFxuICAgICAgICAvKipcbiAgICAgICAgICogVXRpbGUgcG91ciBzdXJjaGFyZ2VyIGxlcyBjbGFzc2VzIGRlIGwnaW5wdXRcbiAgICAgICAgICovXG4gICAgICAgIGlucHV0Q2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgICAvKipcbiAgICAgICAgICogaWQgZGUgbCfDqWzDqW1lbnQgaW5wdXRcbiAgICAgICAgICovXG4gICAgICAgIGlucHV0SWQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBQYXNzZSB1bmUgcmVmIGNhbGxiYWNrIGF1IGNvbXBvc2FudCBpbnB1dFxuICAgICAgICAgKi9cbiAgICAgICAgaW5wdXRSZWY6IFByb3BUeXBlcy5mdW5jLFxuICAgICAgICAvKipcbiAgICAgICAgICogU2kgYHRydWVgLCBsZSBjaGFtcHMgaW5wdXQgc2VyYSB1biB0ZXh0YXJlYVxuICAgICAgICAgKi9cbiAgICAgICAgbXVsdGlsaW5lOiBQcm9wVHlwZXMuYm9vbCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEF0dHJpYnV0ZSBuYW1lIGRlIGwnw6lsw6ltZW50IGBpbnB1dGAuXG4gICAgICAgICAqL1xuICAgICAgICBuYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgICAvKipcbiAgICAgICAgICogRm9uY3Rpb24gZGUgY2FsbGJhY2sgYXBwZWzDqWUgbG9yc3F1J29uIHF1aXR0ZSBsZSBjaGFtcHMgaW5wdXRcbiAgICAgICAgICovXG4gICAgICAgIG9uQmx1cjogUHJvcFR5cGVzLmZ1bmMsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBGb25jdGlvbiBkZSBjYWxsYmFjayBhcHBlbMOpZSBsb3JzcXUnb24gcmVtcGxpZSBsZSBjaGFtcHMgZGUgcmVjaGVyY2hlXG4gICAgICAgICAqL1xuICAgICAgICBvbkNoYW5nZTogUHJvcFR5cGVzLmZ1bmMsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBGb25jdGlvbiBkZSBjYWxsYmFjayBhcHBlbMOpZSBhdSBmb2N1cyBkdSBjaGFtcHNcbiAgICAgICAgICovXG4gICAgICAgIG9uRm9jdXM6IFByb3BUeXBlcy5mdW5jLFxuICAgICAgICAvKipcbiAgICAgICAgICogRm9uY3Rpb24gZGUgY2FsbGJhY2sgYXBwZWzDqWUgbG9yc3F1J29uIHRhcGUgdW5lIHRvdWNoZVxuICAgICAgICAgKi9cbiAgICAgICAgb25LZXlEb3duOiBQcm9wVHlwZXMuZnVuYyxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEZvbmN0aW9uIGRlIGNhbGxiYWNrIGFwcGVsw6llIGxvcnNxdSdvbiBjbGljIHN1ciBsJ2ljw7RuZSBkZSBnYXVjaGVcbiAgICAgICAgICovXG4gICAgICAgIG9uTGVmdEljb25DbGljazogUHJvcFR5cGVzLmZ1bmMsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBQb3VyIGxlcyBpbnB1dCBkZSB0eXBlIG51bWJlciAocGVybWV0IGRlIGJsb3F1ZXIgbGEgc2Fpc2llIGRlcyBjYXJhY3TDqHJlcyBub24gYXV0b3Jpc8OpcylcbiAgICAgICAgICovXG4gICAgICAgIG9ubHlOdW1iZXJzOiBQcm9wVHlwZXMuYm9vbCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEZvbmN0aW9uIGRlIGNhbGxiYWNrIGFwcGVsw6llIGxvcnNxdSdvbiBzdXJ2b2xlIGxlIGNoYW1wc1xuICAgICAgICAgKi9cbiAgICAgICAgb25Nb3VzZUVudGVyOiBQcm9wVHlwZXMuZnVuYyxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEZvbmN0aW9uIGRlIGNhbGxiYWNrIGFwcGVsw6llIGxvcnNxdWUgbGUgY3Vyc2V1ciBxdWl0dGUgbGUgY2hhbXBzXG4gICAgICAgICAqL1xuICAgICAgICBvbk1vdXNlTGVhdmU6IFByb3BUeXBlcy5mdW5jLFxuICAgICAgICAvKipcbiAgICAgICAgICogRm9uY3Rpb24gZGUgY2FsbGJhY2sgYXBwZWzDqWUgbG9yc3F1J29uIHZpZGUgbGUgY2hhbXBzIGRlIHJlY2hlcmNoZVxuICAgICAgICAgKi9cbiAgICAgICAgb25SZXNldDogUHJvcFR5cGVzLmZ1bmMsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBGb25jdGlvbiBkZSBjYWxsYmFjayBhcHBlbMOpZSBsb3JzcXUnb24gY2xpYyBzdXIgbCdpY8O0bmUgZGUgZHJvaXRlXG4gICAgICAgICAqL1xuICAgICAgICBvblJpZ2h0SWNvbkNsaWNrOiBQcm9wVHlwZXMuZnVuYyxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFBhc3NlIHVuZSByZWYgY2FsbGJhY2sgYXUgY29tcG9zYW50IGRpdiBwYXJlbnRcbiAgICAgICAgICovXG4gICAgICAgIG92ZXJsYXlSZWY6IFByb3BUeXBlcy5mdW5jLFxuICAgICAgICAvKipcbiAgICAgICAgICogUGxhY2Vob2xkZXJcbiAgICAgICAgICovXG4gICAgICAgIHBsYWNlaG9sZGVyOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgICAvKipcbiAgICAgICAgICogTm9tYnJlIGRlIGxpZ25lcyBwb3VyIGxlcyB0ZXh0QXJlYVxuICAgICAgICAgKi9cbiAgICAgICAgcm93czogUHJvcFR5cGVzLm51bWJlcixcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEljw7RuZSDDoCBhZmZpY2hlciDDoCBnYXVjaGUgZGUgbCdpbnB1dFxuICAgICAgICAgKi9cbiAgICAgICAgc3RhcnRBZG9ybm1lbnQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAaWdub3JlXG4gICAgICAgICAqL1xuICAgICAgICB0aGVtZTogUHJvcFR5cGVzLm9iamVjdCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFR5cGUgZHUgY2hhbXBzIGlucHV0LiBEb2l0IMOqdHJlIHVuIHR5cGUgSFRNTDUgdmFsaWRlLlxuICAgICAgICAgKi9cbiAgICAgICAgdHlwZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFZhbGV1ciBkdSBjaGFtcHMgZGUgcmVjaGVyY2hlXG4gICAgICAgICAqL1xuICAgICAgICB2YWx1ZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICB9O1xuXG4gICAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICAgICAgdmFsdWU6ICcnLFxuICAgICAgICBwbGFjZWhvbGRlcjogJycsXG4gICAgICAgIGlucHV0SWQ6ICcnLFxuICAgICAgICBuYW1lOiAnJyxcbiAgICAgICAgc3RhcnRBZG9ybm1lbnQ6ICcnLFxuICAgICAgICBlbmRBZG9ybm1lbnQ6ICcnLFxuICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgIG11bHRpbGluZTogZmFsc2UsXG4gICAgICAgIGVycm9yOiBmYWxzZSxcbiAgICAgICAgb25seU51bWJlcnM6IGZhbHNlLFxuICAgIH07XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcblxuICAgICAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgICAgICAgZm9jdXNlZDogZmFsc2UsXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5oYW5kbGVDaGFuZ2UgPSB0aGlzLmhhbmRsZUNoYW5nZS5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLmhhbmRsZUZvY3VzID0gdGhpcy5oYW5kbGVGb2N1cy5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLmhhbmRsZURpdkNsaWNrID0gdGhpcy5oYW5kbGVEaXZDbGljay5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLmhhbmRsZUJsdXIgPSB0aGlzLmhhbmRsZUJsdXIuYmluZCh0aGlzKTtcbiAgICAgICAgdGhpcy5oYW5kbGVSZXNldCA9IHRoaXMuaGFuZGxlUmVzZXQuYmluZCh0aGlzKTtcbiAgICAgICAgdGhpcy5oYW5kbGVNb3VzZUVudGVyID0gdGhpcy5oYW5kbGVNb3VzZUVudGVyLmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMuaGFuZGxlTW91c2VMZWF2ZSA9IHRoaXMuaGFuZGxlTW91c2VMZWF2ZS5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLmdldElucHV0RWxlbWVudCA9IHRoaXMuZ2V0SW5wdXRFbGVtZW50LmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMuaGFuZGxlT3ZlcmxheVJlZiA9IHRoaXMuaGFuZGxlT3ZlcmxheVJlZi5iaW5kKHRoaXMpO1xuICAgIH1cblxuICAgIGdldElucHV0RWxlbWVudChlbCkge1xuICAgICAgICB0aGlzLmlucHV0RWxlbWVudCA9IGVsO1xuICAgICAgICBpZiAodGhpcy5wcm9wcy5pbnB1dFJlZikge1xuICAgICAgICAgICAgdGhpcy5wcm9wcy5pbnB1dFJlZih0aGlzLmlucHV0RWxlbWVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBoYW5kbGVDaGFuZ2UoZXZlbnQpIHtcbiAgICAgICAgY29uc3QgYXV0aG9yaXplZENoYXIgPSAnMTIzNDU2Nzg5MFRPdG88Pic7XG4gICAgICAgIGlmICh0aGlzLnByb3BzLm9uQ2hhbmdlKSB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgKGF1dGhvcml6ZWRDaGFyLmluZGV4T2YoZXZlbnQudGFyZ2V0LnZhbHVlLmNoYXJBdChldmVudC50YXJnZXQudmFsdWUubGVuZ3RoIC0gMSkpID49XG4gICAgICAgICAgICAgICAgICAgIDAgJiZcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5vbmx5TnVtYmVycyA9PT0gdHJ1ZSkgfHxcbiAgICAgICAgICAgICAgICB0aGlzLnByb3BzLm9ubHlOdW1iZXJzICE9PSB0cnVlXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICB0aGlzLnByb3BzLm9uQ2hhbmdlKGV2ZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGhhbmRsZVJlc2V0KCkge1xuICAgICAgICBpZiAodGhpcy5wcm9wcy5vblJlc2V0KSB7XG4gICAgICAgICAgICB0aGlzLnByb3BzLm9uUmVzZXQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGhhbmRsZUJsdXIoZXZlbnQpIHtcbiAgICAgICAgLy8gU2kgb24gY2xpY2sgc3VyIHVuIMOpbMOpbWVudCBkZSBIaUlucHV0LCBvbiBnYXJkZSBsZSBmb2N1c1xuICAgICAgICAvLyBQYXIgZXhlbXBsZSBzdXIgbCdpY29uZSByZXNldFxuICAgICAgICBpZiAoXG4gICAgICAgICAgICBldmVudC5yZWxhdGVkVGFyZ2V0ICYmXG4gICAgICAgICAgICB0aGlzLm92ZXJsYXlOb2RlICYmXG4gICAgICAgICAgICB0aGlzLm92ZXJsYXlOb2RlLmNvbnRhaW5zKGV2ZW50LnJlbGF0ZWRUYXJnZXQpXG4gICAgICAgICkge1xuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgZm9jdXNlZDogZmFsc2UgfSk7XG4gICAgICAgICAgICBpZiAodGhpcy5wcm9wcy5vbkJsdXIpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnByb3BzLm9uQmx1cihldmVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBoYW5kbGVGb2N1cyhldmVudCkge1xuICAgICAgICBpZiAodGhpcy5lbmRBZG9ybm1lbnROb2RlICYmIHRoaXMuZW5kQWRvcm5tZW50Tm9kZS5jb250YWlucyhldmVudC50YXJnZXQpKSB7XG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5zdGF0ZS5mb2N1c2VkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGZvY3VzZWQ6IHRydWUgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy5wcm9wcy5vbkZvY3VzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5vbkZvY3VzKGV2ZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuaW5wdXRFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBoYW5kbGVEaXZDbGljayhldmVudCkge1xuICAgICAgICBpZiAodGhpcy5lbmRBZG9ybm1lbnROb2RlICYmIHRoaXMuZW5kQWRvcm5tZW50Tm9kZS5jb250YWlucyhldmVudC50YXJnZXQpKSB7XG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5zdGF0ZS5mb2N1c2VkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGZvY3VzZWQ6IHRydWUgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmlucHV0RWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaGFuZGxlTW91c2VFbnRlcigpIHtcbiAgICAgICAgaWYgKHRoaXMucHJvcHMub25Nb3VzZUVudGVyKSB7XG4gICAgICAgICAgICB0aGlzLnByb3BzLm9uTW91c2VFbnRlcigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaGFuZGxlTW91c2VMZWF2ZSgpIHtcbiAgICAgICAgaWYgKHRoaXMucHJvcHMub25Nb3VzZUxlYXZlKSB7XG4gICAgICAgICAgICB0aGlzLnByb3BzLm9uTW91c2VMZWF2ZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaGFuZGxlT3ZlcmxheVJlZihlbCkge1xuICAgICAgICB0aGlzLm92ZXJsYXlOb2RlID0gZWw7XG4gICAgICAgIGlmICh0aGlzLnByb3BzLm92ZXJsYXlSZWYpIHtcbiAgICAgICAgICAgIHRoaXMucHJvcHMub3ZlcmxheVJlZihlbCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZW5kZXIoKSB7XG4gICAgICAgIGNvbnN0IHtcbiAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgY2xhc3NlcyxcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyLFxuICAgICAgICAgICAgc3RhcnRBZG9ybm1lbnQsXG4gICAgICAgICAgICBlbmRBZG9ybm1lbnQ6IGVuZEFkb3JubWVudFByb3BzLFxuICAgICAgICAgICAgY2xhc3NOYW1lLFxuICAgICAgICAgICAgZXJyb3IsXG4gICAgICAgICAgICB0eXBlLFxuICAgICAgICAgICAgZGlzYWJsZWQsXG4gICAgICAgICAgICBhdXRvQ29tcGxldGUsXG4gICAgICAgICAgICBhdXRvRm9jdXMsXG4gICAgICAgICAgICBpbnB1dElkLFxuICAgICAgICAgICAgbmFtZSxcbiAgICAgICAgICAgIG11bHRpbGluZSxcbiAgICAgICAgICAgIHJvd3MsXG4gICAgICAgICAgICBpbnB1dENsYXNzTmFtZSxcbiAgICAgICAgICAgIG9uUmVzZXQsXG4gICAgICAgICAgICB0aGVtZSxcbiAgICAgICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICAgICAgY29uc3QgeyBmb2N1c2VkIH0gPSB0aGlzLnN0YXRlO1xuXG4gICAgICAgIGNvbnN0IG92ZXJsYXlQcm9wcyA9IHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogY2xhc3NOYW1lcyhcbiAgICAgICAgICAgICAgICBjbGFzc2VzLnJvb3QsXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBbY2xhc3Nlcy5kaXNhYmxlZF06IGRpc2FibGVkICYmICFlcnJvcixcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzZXMuaW5rYmFyXTogIWRpc2FibGVkLFxuICAgICAgICAgICAgICAgICAgICBbY2xhc3Nlcy5mb2N1c2VkXTogZm9jdXNlZCxcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzZXMuZXJyb3JdOiBlcnJvcixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZSxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICAuLi4oIWRpc2FibGVkICYmIHtcbiAgICAgICAgICAgICAgICBvbkNsaWNrOiB0aGlzLmhhbmRsZURpdkNsaWNrLFxuICAgICAgICAgICAgICAgIG9uTW91c2VFbnRlcjogdGhpcy5oYW5kbGVNb3VzZUVudGVyLFxuICAgICAgICAgICAgICAgIG9uTW91c2VMZWF2ZTogdGhpcy5oYW5kbGVNb3VzZUxlYXZlLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICByZWY6IHRoaXMuaGFuZGxlT3ZlcmxheVJlZixcbiAgICAgICAgfTtcblxuICAgICAgICBsZXQgbGVmdEljb247XG4gICAgICAgIGlmIChzdGFydEFkb3JubWVudCkge1xuICAgICAgICAgICAgbGVmdEljb24gPSAoXG4gICAgICAgICAgICAgICAgPEhpSWNvbkJ1aWxkZXJcbiAgICAgICAgICAgICAgICAgICAgaWNvbj17c3RhcnRBZG9ybm1lbnR9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e3RoaXMucHJvcHMub25MZWZ0SWNvbkNsaWNrfVxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoY2xhc3Nlcy5zdGFydEFkb3JubWVudCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzZXMuc3RhcnRBZG9ybm1lbnRGb2N1c106IGZvY3VzZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3Nlcy5zdGFydEFkb3JubWVudERpc2FibGVkXTogZGlzYWJsZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3Nlcy5pY29uUG9pbnRlcl06IHRoaXMucHJvcHMub25MZWZ0SWNvbkNsaWNrLFxuICAgICAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBCdWlsZCBlbmRBZG9ybm1lbnQgd2l0aCBlcmFzZUljb24gKyBlbmRBZG9ybm1lbnRQcm9wc1xuICAgICAgICBjb25zdCBlcmFzZUljb24gPSAhbXVsdGlsaW5lICYmXG4gICAgICAgICAgICBvblJlc2V0ICYmXG4gICAgICAgICAgICBmb2N1c2VkICYmXG4gICAgICAgICAgICAhZGlzYWJsZWQgJiZcbiAgICAgICAgICAgIHZhbHVlLmxlbmd0aCA+IDAgJiYgKFxuICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3Nlcy5lcmFzZUJ1dHRvbn1cbiAgICAgICAgICAgICAgICAgICAgb25DbGljaz17dGhpcy5oYW5kbGVSZXNldH1cbiAgICAgICAgICAgICAgICAgICAgb25CbHVyPXt0aGlzLmhhbmRsZUJsdXJ9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8SGlJY29uQnVpbGRlciBpY29uPVwiY2xvc2VcIiBzaXplPXsxOH0gY29sb3I9e3RoZW1lLnBhbGV0dGUubmV1dHJhbC5ub3JtYWx9IC8+XG4gICAgICAgICAgICAgICAgPC9JY29uQnV0dG9uPlxuICAgICAgICAgICAgKTtcblxuICAgICAgICBsZXQgZW5kQWRvcm5tZW50ID0gZW5kQWRvcm5tZW50UHJvcHM7XG4gICAgICAgIGlmICh0eXBlb2YgZW5kQWRvcm5tZW50UHJvcHMgPT09ICdzdHJpbmcnICYmIGVuZEFkb3JubWVudFByb3BzICE9PSAnJykge1xuICAgICAgICAgICAgZW5kQWRvcm5tZW50ID0gKFxuICAgICAgICAgICAgICAgIDxIaUljb25CdWlsZGVyXG4gICAgICAgICAgICAgICAgICAgIGljb249e2VuZEFkb3JubWVudFByb3BzfVxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXt0aGlzLnByb3BzLm9uUmlnaHRJY29uQ2xpY2t9XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lcyhjbGFzc2VzLnJpZ2h0SWNvbiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzZXMucmlnaHRJY29uRm9jdXNdOiBmb2N1c2VkLFxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzZXMucmlnaHRJY29uRGlzYWJsZWRdOiBkaXNhYmxlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc2VzLnJpZ2h0SWNvbkVycm9yXTogZXJyb3IsXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3Nlcy5pY29uUG9pbnRlcl06IHRoaXMucHJvcHMub25SaWdodEljb25DbGljayxcbiAgICAgICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPGRpdiB7Li4ub3ZlcmxheVByb3BzfT5cbiAgICAgICAgICAgICAgICA8SW5wdXRcbiAgICAgICAgICAgICAgICAgICAgaWQ9e2lucHV0SWR9XG4gICAgICAgICAgICAgICAgICAgIHR5cGU9e3R5cGV9XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3Nlcy5pbnB1dH1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZVVuZGVybGluZVxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17dGhpcy5oYW5kbGVDaGFuZ2V9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9e3BsYWNlaG9sZGVyfVxuICAgICAgICAgICAgICAgICAgICBvbkZvY3VzPXt0aGlzLmhhbmRsZUZvY3VzfVxuICAgICAgICAgICAgICAgICAgICBvbktleURvd249e3RoaXMucHJvcHMub25LZXlEb3dufVxuICAgICAgICAgICAgICAgICAgICBvbkJsdXI9e3RoaXMuaGFuZGxlQmx1cn1cbiAgICAgICAgICAgICAgICAgICAgaW5wdXRSZWY9e3RoaXMuZ2V0SW5wdXRFbGVtZW50fVxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgIG11bHRpbGluZT17bXVsdGlsaW5lfVxuICAgICAgICAgICAgICAgICAgICByb3dzPXtyb3dzfVxuICAgICAgICAgICAgICAgICAgICBmdWxsV2lkdGhcbiAgICAgICAgICAgICAgICAgICAgYXV0b0NvbXBsZXRlPXthdXRvQ29tcGxldGV9XG4gICAgICAgICAgICAgICAgICAgIGF1dG9Gb2N1cz17YXV0b0ZvY3VzfVxuICAgICAgICAgICAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgICAgICAgICAgICBzdGFydEFkb3JubWVudD17bGVmdEljb259XG4gICAgICAgICAgICAgICAgICAgIGVuZEFkb3JubWVudD17XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xhc3Nlcy5lbmRBZG9ybm1lbnR9IHJlZj17ZWwgPT4gdGhpcy5lbmRBZG9ybm1lbnROb2RlID0gZWx9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtlcmFzZUljb259XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2VuZEFkb3JubWVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlucHV0UHJvcHM9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogY2xhc3NOYW1lcyhpbnB1dENsYXNzTmFtZSwgY2xhc3Nlcy5pbnB1dFByb3BzQ2xhc3NOYW1lLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzZXMuaW5wdXRUZXh0XTogIW11bHRpbGluZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3Nlcy5pbnB1dFRleHRhcmVhXTogbXVsdGlsaW5lLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICApO1xuICAgIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgd2l0aFN0eWxlcyhzdHlsZXMsIHsgbmFtZTogJ0hpTXVpSGlJbnB1dCcsIHdpdGhUaGVtZTogdHJ1ZSB9KShIaUlucHV0KTtcbiJdfQ==
16155
16155
 
16156
16156
  /***/ }),
16157
16157
  /* 91 */
@@ -30795,7 +30795,8 @@ var HiTable = function (_React$Component) {
30795
30795
  loading = _props.loading,
30796
30796
  fixedColumnWidth = _props.fixedColumnWidth,
30797
30797
  disableContextMenu = _props.disableContextMenu,
30798
- footerContent = _props.footerContent;
30798
+ footerContent = _props.footerContent,
30799
+ detailRowsOptions = _props.detailRowsOptions;
30799
30800
  var _state = this.state,
30800
30801
  dateUpdate = _state.dateUpdate,
30801
30802
  isScrollToBottom = _state.isScrollToBottom,
@@ -30881,7 +30882,8 @@ var HiTable = function (_React$Component) {
30881
30882
  lookupColumns: lookupColumns,
30882
30883
  loading: loading,
30883
30884
  fixedColumnWidth: fixedColumnWidth,
30884
- disableContextMenu: disableContextMenu
30885
+ disableContextMenu: disableContextMenu,
30886
+ detailRowsOptions: detailRowsOptions
30885
30887
  }),
30886
30888
  infiniteScroll && _react2.default.createElement(_HiTableFooterScroll2.default, {
30887
30889
  tabId: tabId,
@@ -30952,6 +30954,17 @@ HiTable.propTypes = {
30952
30954
  * Locale utilisé pour le format des dates
30953
30955
  */
30954
30956
  dateLocale: _propTypes2.default.string,
30957
+ /**
30958
+ * Options utilisées pour décrire le comportement de lignes de détails
30959
+ * ex: {
30960
+ * payment_operation: {
30961
+ * anchor: 'transaction_id'
30962
+ * }
30963
+ * }
30964
+ * dans cet exemple, on veut que les lignes de détails de type payment_operation
30965
+ * soient affichable à partir d'un chip button dans les cellules transaction_id
30966
+ */
30967
+ detailRowsOptions: _propTypes2.default.object,
30955
30968
  /**
30956
30969
  * Densité d'affichage (joue sur la hauteur des lignes)
30957
30970
  */
@@ -31121,6 +31134,7 @@ HiTable.defaultProps = {
31121
31134
  dateLocale: 'en-EN',
31122
31135
  numberLocale: 'en-EN',
31123
31136
  dense: false,
31137
+ detailRowsOptions: {},
31124
31138
  height: 450,
31125
31139
  sticky: true,
31126
31140
  translations: {
@@ -31188,7 +31202,7 @@ var _initialiseProps = function _initialiseProps() {
31188
31202
  };
31189
31203
 
31190
31204
  exports.default = (0, _styles.withStyles)(styles, { withTheme: true, name: 'HmuiHiTable' })(HiTable);
31191
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9IaVRhYmxlL0hpVGFibGUuanMiXSwibmFtZXMiOlsiY3N0Iiwic3R5bGVzIiwicm9vdCIsInBvc2l0aW9uIiwiYmFja2dyb3VuZENvbG9yIiwidGhlbWUiLCJwYWxldHRlIiwiYmFja2dyb3VuZDMiLCJ0YWJsZVdyYXBwZXIiLCJvdmVyZmxvd1giLCJvdmVyZmxvd1kiLCJmaWx0ZXIiLCJ0b3AiLCJsZWZ0IiwiY3Vyc29yIiwidGFibGUiLCJ3aWR0aCIsIm92ZXJmbG93IiwiYm9yZGVyQ29sbGFwc2UiLCJ6SW5kZXgiLCJiYWNrVG9Ub3BCdXR0b25Db250YWluZXIiLCJ0ZXh0QWxpZ24iLCJoZWlnaHQiLCJiYWNrVG9Ub3BCdXR0b24iLCJiYWNrVG9Ub3BCdXR0b25BcnJvdyIsIm1hcmdpbiIsIk1BTkRBVE9SWV9DT0xVTU5fRVJST1JfTUVTU0FHRSIsIlNPUlRFRF9DT0xVTU5fRVJST1JfTUVTU0FHRSIsIkhpVGFibGUiLCJwcm9wcyIsInN0YXRlIiwiZGF0ZVVwZGF0ZSIsIkRhdGUiLCJub3ciLCJpc1Njcm9sbFRvQm90dG9tIiwiZ3JvdXBCeUlkcyIsImdyb3VwQnkiLCJkYXRhU291cmNlIiwibWFwIiwidmFsdWUiLCJyb3ciLCJkYXRhcyIsImRhdGUiLCJpc0Zpbml0ZSIsInN1YnN0ciIsImhhc093blByb3BlcnR5IiwicHVzaCIsIm9wZW5PcmRlckNvbHVtbnNNZW51IiwiYmluZCIsImNsb3NlT3JkZXJDb2x1bW5zTWVudSIsInRvZ2dsZUl0ZW0iLCJ0b2dnbGVBbGwiLCJzZWxlY3RBbGwiLCJkZXNlbGVjdEFsbCIsImhhbmRsZUhvcml6b250YWxTY3JvbGwiLCJoYW5kbGVWZXJ0aWNhbFNjcm9sbCIsInBsYWNlSG9yaXpvbnRhbEZsb2F0aW5nRWxlbWVudCIsInNjcm9sbFRvVG9wIiwiaGFuZGxlUmVxdWVzdExpdmVEYXRhcyIsImhhbmRsZU5leHRTdGlja3lSb3ciLCJoYW5kbGVTdGlja3lSb3dQb3NpdGlvbnMiLCJ3cmFwcGVyU2Nyb2xsT2Zmc2V0Iiwid3JhcHBlckRpdiIsInNjcm9sbFdpZHRoIiwib2Zmc2V0V2lkdGgiLCJ0SGVhZCIsInF1ZXJ5U2VsZWN0b3IiLCJ0SGVhZExlZnRQYWRkaW5nIiwidEhlYWRSaWdodFBhZGRpbmciLCJ0SGVhZEZpcnN0IiwidEJvZHkiLCJ0Rm9vdCIsInRGb290Q2VudGVyZWREaXYiLCJ1cGRhdGVGbG9hdGluZ0JvZHlFbGVtZW50UmVmcyIsInN0eWxlIiwiTWF0aCIsInJvdW5kIiwiYm90dG9tIiwidXBkYXRlU3RpY2t5Um93c1Bvc2l0aW9uIiwicHJldlByb3BzIiwicHJldlN0YXRlIiwicHJldkNvbnRleHQiLCJvcmRlcmVkQ29sdW1ucyIsImNvbElkIiwidEJvZHlGaXJzdEVsZW1lbnRzIiwicXVlcnlTZWxlY3RvckFsbCIsImxlbmd0aCIsImNvdW50TGl2ZURhdGFzIiwibGl2ZURhdGFTcGFuIiwic2V0U3RhdGUiLCJkZW5zZSIsInNvcnRlZENvbHVtbklkIiwic29ydERpcmVjdGlvbiIsInNjcm9sbFRvcCIsInNjcm9sbEhlaWdodCIsIm9mZnNldEhlaWdodCIsInJvd0hlaWdodCIsIkNFTExfSEVJR0hUX0RFTlNFIiwiQ0VMTF9IRUlHSFQiLCJncm91cEJ5Um93c1Bvc2l0aW9ucyIsInRhYmxlQm9keSIsImRvY3VtZW50IiwiZ2V0RWxlbWVudEJ5SWQiLCJ0YWJJZCIsInN0aWNreVJvd3MiLCJnZXRFbGVtZW50c0J5Q2xhc3NOYW1lIiwiQXJyYXkiLCJwcm90b3R5cGUiLCJjYWxsIiwic3RpY2t5Um93IiwibmV4dFNpYmxpbmciLCJvZmZzZXRUb3AiLCJpdGVtIiwic2VsZWN0ZWRJZExpc3QiLCJpbmNsdWRlcyIsInJvd0lkIiwib25TZWxlY3QiLCJpdGVtSWQiLCJldmVudCIsInRhcmdldCIsIm5vZGVOYW1lIiwic2Nyb2xsTGVmdCIsInNjcm9sbGluZ1VwIiwic2hhZG93Qm90dG9tIiwiTkJfUk9XU19CQUNLX1RPX1RPUCIsImluZGV4IiwiZmFrZVRyIiwiZGlzcGxheSIsIm1heEhlaWdodCIsIm1pbkhlaWdodCIsImNsaWVudFdpZHRoIiwidEJvZHlMZWZ0UGFkZGluZ0VsZW1lbnRzIiwiZm9yRWFjaCIsImVsZW1lbnQiLCJ0Qm9keVJpZ2h0UGFkZGluZ0VsZW1lbnRzIiwicmlnaHQiLCJtYXgiLCJ0Qm9keVNjcm9sbGJhcldpZHRoIiwic3RpY2t5Iiwic2hhZG93UmlnaHQiLCJzdGlja3lSb3dDb250ZW50RGl2IiwiZGl2Iiwic2VsZWN0YWJsZSIsInJlcXVlc3RMaXZlRGF0YXMiLCJvcmRlckNvbHVtbnNBbmNob3IiLCJjdXJyZW50VGFyZ2V0Iiwib3JkZXJDb2x1bW5zTWVudU9wZW4iLCJzdGlja3lSb3dJbmRleCIsImNsYXNzZXMiLCJjb2x1bW5zIiwib3JkZXJhYmxlIiwib25Db2x1bW5zT3JkZXJVcGRhdGUiLCJtYW5kYXRvcnlDb2x1bW5JZCIsIm9uUm93Q2xpY2siLCJzb3J0YWJsZSIsIm9uU29ydCIsImZpbHRlcmFibGUiLCJvbkZpbHRlckNoYW5nZSIsImluZmluaXRlU2Nyb2xsIiwiaGFzTmV4dERhdGFzIiwicmVxdWVzdE5leHREYXRhcyIsImRhdGVMb2NhbGUiLCJudW1iZXJMb2NhbGUiLCJ0cmFuc2xhdGlvbnMiLCJ2aWV3IiwibG9va3VwQ29sdW1ucyIsImxvYWRpbmciLCJmaXhlZENvbHVtbldpZHRoIiwiZGlzYWJsZUNvbnRleHRNZW51IiwiZm9vdGVyQ29udGVudCIsImhlYWRlckhlaWdodCIsIkNFTExfSEVBREVSX0hFSUdIVF9ERU5TRSIsIkNFTExfSEVBREVSX0hFSUdIVCIsIm5iQ29sdW1uc0Rpc3BsYXllZCIsImNvbHVtbiIsImRpc3BsYXllZCIsImFkZE5ld1Jvd1JlZnMiLCJvblNlYXJjaCIsIm9uUmVkaXJlY3QiLCJiYWNrX3RvX3RvcCIsIkNvbXBvbmVudCIsInByb3BUeXBlcyIsIm9iamVjdCIsImlzUmVxdWlyZWQiLCJudW1iZXIiLCJhcnJheSIsInN0cmluZyIsImJvb2wiLCJub2RlIiwiZnVuYyIsIm9uZU9mIiwiZGVmYXVsdFByb3BzIiwibG9hZF9tb3JlIiwiZ2V0X3RoZV9uX25ld19pdGVtcyIsImNob29zZV9hbmRfb3JnYW5pemVfY29sdW1ucyIsInNlYXJjaCIsInRpbWUiLCJidXR0b24iLCJuZXh0Iiwid3JhcHBlcldpZHRoIiwic2V0VGltZW91dCIsIndpdGhUaGVtZSIsIm5hbWUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUVBOztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7O0lBQVlBLEc7O0FBQ1o7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFTyxJQUFNQywwQkFBUyxTQUFUQSxNQUFTO0FBQUEsV0FBVTtBQUM1QkMsY0FBTTtBQUNGQyxzQkFBVSxVQURSO0FBRUZDLDZCQUFpQkMsTUFBTUMsT0FBTixDQUFjQztBQUY3QixTQURzQjtBQUs1QkMsc0JBQWM7QUFDVkMsdUJBQVcsTUFERDtBQUVWQyx1QkFBVztBQUZELFNBTGM7QUFTNUJDLGdCQUFRO0FBQ0pSLHNCQUFVLFVBRE47QUFFSlMsaUJBQUssQ0FGRDtBQUdKQyxrQkFBTSxDQUhGO0FBSUpDLG9CQUFRO0FBSkosU0FUb0I7QUFlNUJDLGVBQU87QUFDSFosc0JBQVUsVUFEUDtBQUVIYSxtQkFBTyxNQUZKO0FBR0hDLHNCQUFVLFFBSFA7QUFJSEMsNEJBQWdCLFVBSmI7QUFLSGQsNkJBQWlCQyxNQUFNQyxPQUFOLENBQWNDLFdBTDVCO0FBTUhZLG9CQUFRO0FBTkwsU0FmcUI7QUF1QjVCQyxrQ0FBMEI7QUFDdEJqQixzQkFBVSxVQURZO0FBRXRCYSxtQkFBTyxNQUZlO0FBR3RCSyx1QkFBVyxRQUhXO0FBSXRCQyxvQkFBUSxFQUpjO0FBS3RCVixpQkFBSyxDQUFDO0FBTGdCLFNBdkJFO0FBOEI1QlcseUJBQWlCO0FBQ2JKLG9CQUFRO0FBREssU0E5Qlc7QUFpQzVCSyw4QkFBc0I7QUFDbEJGLG9CQUFRLEVBRFU7QUFFbEJOLG1CQUFPLEVBRlc7QUFHbEJiLHNCQUFVLFVBSFE7QUFJ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QWpDOztBQUlBLGVBQUtELGtCQUFMLEdBQTBCLE9BQUtkLEtBQUwsQ0FBV2UsZ0JBQVgsQ0FBNEIsb0JBQTVCLENBQTFCO0FBQ0gsSzs7U0FrUkQyRixhLEdBQWdCLFlBQU07QUFDbEI7QUFDQXdCLG1CQUFXLFlBQU07QUFDYixtQkFBSy9ILDZCQUFMO0FBQ0EsbUJBQUtqQiw4QkFBTDtBQUNILFNBSEQsRUFHRyxFQUhIO0FBSUgsSzs7O2tCQTRLVSx3QkFBV3ZELE1BQVgsRUFBbUIsRUFBRXdNLFdBQVcsSUFBYixFQUFtQkMsTUFBTSxhQUF6QixFQUFuQixFQUE2RDlLLE9BQTdELEMiLCJmaWxlIjoiSGlUYWJsZS5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS92ZG9zc2FudG9zL2Rldi9oaXBheS1tYXRlcmlhbC11aSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IFRhYmxlIGZyb20gJ21hdGVyaWFsLXVpL1RhYmxlJztcbmltcG9ydCBBcnJvd1VwIGZyb20gJ21kaS1tYXRlcmlhbC11aS9BcnJvd1VwJztcbmltcG9ydCBpc1JlcXVpcmVkSWYgZnJvbSAncmVhY3QtcHJvcHR5cGUtY29uZGl0aW9uYWwtcmVxdWlyZSc7XG5pbXBvcnQgSGlCdXR0b24gZnJvbSAnLi4vSGlCdXR0b24nO1xuXG5pbXBvcnQgeyB3aXRoU3R5bGVzIH0gZnJvbSAnLi4vc3R5bGVzJztcbmltcG9ydCBIaVRhYmxlSGVhZCBmcm9tICcuL0hpVGFibGVIZWFkJztcbmltcG9ydCBIaVRhYmxlQm9keSBmcm9tICcuL0hpVGFibGVCb2R5JztcbmltcG9ydCBIaVRhYmxlRm9vdGVyU2Nyb2xsIGZyb20gJy4vSGlUYWJsZUZvb3RlclNjcm9sbCc7XG5pbXBvcnQgSGlUYWJsZUZvb3RlciBmcm9tICcuL0hpVGFibGVGb290ZXInO1xuaW1wb3J0ICogYXMgY3N0IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCBIaVRhYmxlQ29udGV4dE1lbnUgZnJvbSAnLi9IaVRhYmxlQ29udGV4dE1lbnUnO1xuXG5leHBvcnQgY29uc3Qgc3R5bGVzID0gdGhlbWUgPT4gKHtcbiAgICByb290OiB7XG4gICAgICAgIHBvc2l0aW9uOiAncmVsYXRpdmUnLFxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lLnBhbGV0dGUuYmFja2dyb3VuZDMsXG4gICAgfSxcbiAgICB0YWJsZVdyYXBwZXI6IHtcbiAgICAgICAgb3ZlcmZsb3dYOiAnYXV0bycsXG4gICAgICAgIG92ZXJmbG93WTogJ2hpZGRlbicsXG4gICAgfSxcbiAgICBmaWx0ZXI6IHtcbiAgICAgICAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gICAgICAgIHRvcDogMixcbiAgICAgICAgbGVmdDogMixcbiAgICAgICAgY3Vyc29yOiAncG9pbnRlcicsXG4gICAgfSxcbiAgICB0YWJsZToge1xuICAgICAgICBwb3NpdGlvbjogJ3JlbGF0aXZlJyxcbiAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgICAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxuICAgICAgICBib3JkZXJDb2xsYXBzZTogJ2NvbGxhcHNlJyxcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS5wYWxldHRlLmJhY2tncm91bmQzLFxuICAgICAgICB6SW5kZXg6IDEwLFxuICAgIH0sXG4gICAgYmFja1RvVG9wQnV0dG9uQ29udGFpbmVyOiB7XG4gICAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICB0ZXh0QWxpZ246ICdjZW50ZXInLFxuICAgICAgICBoZWlnaHQ6IDQ4LFxuICAgICAgICB0b3A6IC05OTk5OSxcbiAgICB9LFxuICAgIGJhY2tUb1RvcEJ1dHRvbjoge1xuICAgICAgICB6SW5kZXg6IDExLFxuICAgIH0sXG4gICAgYmFja1RvVG9wQnV0dG9uQXJyb3c6IHtcbiAgICAgICAgaGVpZ2h0OiAxOCxcbiAgICAgICAgd2lkdGg6IDE4LFxuICAgICAgICBwb3NpdGlvbjogJ3JlbGF0aXZlJyxcbiAgICAgICAgdG9wOiAtMixcbiAgICAgICAgbWFyZ2luOiAyLFxuICAgIH0sXG59KTtcblxuZXhwb3J0IGNvbnN0IE1BTkRBVE9SWV9DT0xVTU5fRVJST1JfTUVTU0FHRSA9XG4gICAgJ1ZvdXMgZGV2ZXogc2Fpc2lyIGxhIHByb3ByacOpdMOpIFwibWFuZGF0b3J5Q29sdW1uSWRcIiBwb3VyIGxlcyB0YWJsZWF1eCBcIm9yZGVyYWJsZVwiJztcbmV4cG9ydCBjb25zdCBTT1JURURfQ09MVU1OX0VSUk9SX01FU1NBR0UgPVxuICAgICdWb3VzIGRldmV6IHNhaXNpciBsYSBwcm9wcmnDqXTDqSBcInNvcnRlZENvbHVtbklkXCIgcG91ciBsZXMgdGFibGVhdXggXCJzb3J0YWJsZVwiJztcblxuLyoqXG4gKiBEaXNwbGF5IGEgbGlzdCBvZiBlbGVtZW50cyBpbiBhIHRhYmxlXG4gKiBUaGUgY2xpY2sgb24gRmlsdGVyVmFyaWFudCBvcGVucyBhIG1lbnUgdGhhdCBhbGxvd3MgdGhlIHVzZXJcbiAqIHRvIGZpbHRlciBieSB2YWx1ZSBvciB0byBvcmRlciBieSBhIHNwZWNpZmljIGNvbHVtblxuICpcbiAqIFJlbmRlcmVyIGJlaGF2aW9yczpcbiAqIC0gV2lkdGhzOlxuICogICAgICAtIGFsbCBjZWxscyB0eXBlcyBoYXZlIGRlZmF1bHQgd2lkdGggc2l6ZSAocHgpIGZvciBlYWNoIGtpbmQgb2YgdmlldyAoTC9NL1MpLlxuICogICAgICAtIGlmIHZpZXcgaXNuJ3Qgc2V0IHdlIHVzZSB0aGUgbGFyZ2VzdCBvbmUgKGxhcmdlKS5cbiAqICAgICAgLSBjZWxsIHdpZHRoIGNhbiBiZSBvdmVycmlkZW4gYnkgY29sdW1uJ3MgcHJvcHMuXG4gKiAgICAgIC0gaWYgdGhlcmUgaXMgbm90IGVub3VnaCBzcGFjZSB0byByZW5kZXIgYWxsIGNlbGxzLFxuICogICAgICAgIHdlIHVzZSBob3Jpem9udGFsIHNjcm9sbCBhbmQgY2VsbHMgd2lkdGggYXJlIGZpeGVkXG4gKiAgICAgIC0gaWYgdGhlcmUgaXMgZW5vdWdoIHNwYWNlLCBubyBzY3JvbGwgYW5kIG9ubHkgdGhlIGZpcnN0IGNlbGwgKGNvbHVtbiksXG4gKiAgICAgIHdoaWNoIGlzIG5vdCBleHBsaWNpdGx5IHNldCBhcyB1bmZpeGVkIChmaXhlZFdpZHRoID0gZmFsc2UpLFxuICogICAgICBoYXMgbm90IGZpeGVkIHdpZHRoIGFuZCBtYXkgZW5sYXJnZSBoaXMgd2lkdGggdG8gZml0IGF2YWlsYWJsZSBzcGFjZS5cbiAqXG4gKiAtIEZpeGVkIEhlYWRlcjpcbiAqICAgICAgLSBoZWFkZXIgcm93cyBzaG91bGQgYmUgZml4ZWQgYW5kIGFsd2F5cyBiZSB2aXNpYmxlIG9uIGJvZHkgc2Nyb2xsLlxuICogICAgICAtIHZlcnRpY2FsIHNjcm9sbGJhciBzaG91bGQgYmUgaGlkZGVuXG4gKiAgICAgIC0gaWYgbmJSb3dzICogY2VsbEhlaWdodCA+IHRhYmxlSGVpZ2h0LFxuICogICAgICAgIHdlIHZpcnR1YWxseSBlbmxhcmdlIHRoZSB0YWJsZSB0aGVuIGNyb3AgYXJiaXRyYXJ5IHdpZHRoIHRvIGhpZGUgdGhlIHNjcm9sbGJhci5cbiAqICAgICAgYXMgZWFjaCBicm93c2VycyBtYXkgaGF2ZSBkaWZmZXJlbnQgc2Nyb2xsYmFyIHdpZHRocyxcbiAqICAgICAgaXQgbWF5IHRyb3VibGUgY29sdW1uIGhlYWRlciBhbGlnbm1lbnQuXG4gKi9cbmNsYXNzIEhpVGFibGUgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICAgIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBVc2VmdWwgdG8gZXh0ZW5kIHRoZSBzdHlsZSBhcHBsaWVkIHRvIGNvbXBvbmVudHMuXG4gICAgICAgICAqL1xuICAgICAgICBjbGFzc2VzOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgICAgICAvKipcbiAgICAgICAgICogQ29sb25uZXMgZHUgdGFibGVhdSAobGFiZWwsIGxhcmdldXIsIGRvbm7DqWVzLCAuLi4gKVxuICAgICAgICAgKi9cbiAgICAgICAgY29sdW1uczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgICAgICAvKipcbiAgICAgICAgICogTm9tYnJlIGRlIG5vdXZlbGxlcyBkb25uw6llcyBkaXNwb25pYmxlcyAobGl2ZSlcbiAgICAgICAgICovXG4gICAgICAgIGNvdW50TGl2ZURhdGFzOiBQcm9wVHlwZXMubnVtYmVyLFxuICAgICAgICAvKipcbiAgICAgICAgICogVGFibGVhdSBkZXMgZG9ubsOpZXNcbiAgICAgICAgICovXG4gICAgICAgIGRhdGFTb3VyY2U6IFByb3BUeXBlcy5hcnJheS5pc1JlcXVpcmVkLFxuICAgICAgICAvKipcbiAgICAgICAgICogTG9jYWxlIHV0aWxpc8OpIHBvdXIgbGUgZm9ybWF0IGRlcyBkYXRlc1xuICAgICAgICAgKi9cbiAgICAgICAgZGF0ZUxvY2FsZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIERlbnNpdMOpIGQnYWZmaWNoYWdlIChqb3VlIHN1ciBsYSBoYXV0ZXVyIGRlcyBsaWduZXMpXG4gICAgICAgICAqL1xuICAgICAgICBkZW5zZTogUHJvcFR5cGVzLmJvb2wsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBBY3RpdmUvZMOpc2FjdGl2ZSBsZSBtZW51IGNvbnRleHR1ZWwgYXUgY2xpYyBkcm9pdCBzdXIgbGVzIGNlbGx1bGVzIGR1IHRhYmxlYXVcbiAgICAgICAgICovXG4gICAgICAgIGRpc2FibGVDb250ZXh0TWVudTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEFjdGl2ZSBsZSBmaWx0cmUgc3VyIGxlcyBjb2xvbm5lcyBmaWx0cmFibGVzXG4gICAgICAgICAqL1xuICAgICAgICBmaWx0ZXJhYmxlOiBQcm9wVHlwZXMuYm9vbCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEZpeGUgbGEgdGFpbGxlIGRlcyBjb2xvbm5lcyBzZWxvbiBsZSB0eXBlIGRlIHZ1ZVxuICAgICAgICAgKiBTaW5vbiBsZXMgY29sb25uZXMgcydhZGFwdGVudCDDoCBsJ2VzcGFjZSBkaXNwb25pYmxlXG4gICAgICAgICAqL1xuICAgICAgICBmaXhlZENvbHVtbldpZHRoOiBQcm9wVHlwZXMuYm9vbCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEFqb3V0ZSB1biBmb290ZXIgYXZlYyBsZSBjb250ZW51IGZvb3RlckNvbnRlbnQgw6AgbCdpbnTDqXJpZXVyXG4gICAgICAgICAqL1xuICAgICAgICBmb290ZXJDb250ZW50OiBQcm9wVHlwZXMubm9kZSxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIElkIGRlIGxhIGNvbG9ubmUgcGFyIGxhcXVlbGxlIHNvbnQgcmVncm91cMOpIGxlcyDDqWzDqW1lbnRzXG4gICAgICAgICAqL1xuICAgICAgICBncm91cEJ5OiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgICAvKipcbiAgICAgICAgICogQWpvdXRlIGxlIGxvYWRlciBldCBsZSByZXF1ZXN0TmV4dERhdGFzIGVuIGZpbiBkZSB0YWJsZWF1IChzaSBpbmZpbml0ZVNjcm9sbCBhY3RpdsOpKVxuICAgICAgICAgKi9cbiAgICAgICAgaGFzTmV4dERhdGFzOiBQcm9wVHlwZXMuYm9vbCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEhhdXRldXIgZHUgdGFibGVhdSAocHgpXG4gICAgICAgICAqL1xuICAgICAgICBoZWlnaHQ6IFByb3BUeXBlcy5udW1iZXIsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBBam91dGUgbCdpbmZpbml0ZSBzY3JvbGxcbiAgICAgICAgICovXG4gICAgICAgIGluZmluaXRlU2Nyb2xsOiBQcm9wVHlwZXMuYm9vbCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIMOJdGF0IGR1IHRhYmxlYXUgZW4gY291cnMgZGUgY2hhcmdlbWVudCBkZXMgZG9ubsOpZXNcbiAgICAgICAgICovXG4gICAgICAgIGxvYWRpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgICAgICAvKipcbiAgICAgICAgICogSWRlbnRpZmlhbnQgZGUgbGEgb3UgZGVzIGNvbG9ubmVzIHN1ciBsYS9sZXNxdWVsbGVzIGlsIHkgYSB1bmUgJ2xvb2t1cCcgc2VhcmNoXG4gICAgICAgICAqL1xuICAgICAgICBsb29rdXBDb2x1bW5zOiBQcm9wVHlwZXMuYXJyYXksXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBQb3VyIGxlcyB0YWJsZWF1eCBcIm9yZGVyYWJsZVwiIHVuaXF1ZW1lbnQgOiBJZCBkZSBsYSBjb2xvbm5lIG9ibGlnYXRvaXJlLFxuICAgICAgICAgKiBlbGxlIHNlcmEgdG91am91cnMgYWZmaWNow6llIGRhbnMgbGUgdGFibGVhdSBldCBuZSBwb3VycmEgcGFzIMOqdHJlIGNhY2jDqWUuXG4gICAgICAgICAqL1xuICAgICAgICBtYW5kYXRvcnlDb2x1bW5JZDogaXNSZXF1aXJlZElmKFxuICAgICAgICAgICAgUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgICAgICAgIHByb3BzID0+IHByb3BzLmhhc093blByb3BlcnR5KCdvcmRlcmFibGUnKSAmJiBwcm9wcy5vcmRlcmFibGUgPT09IHRydWUsXG4gICAgICAgICAgICBNQU5EQVRPUllfQ09MVU1OX0VSUk9SX01FU1NBR0UsXG4gICAgICAgICksXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBMb2NhbGUgdXRpbGlzw6kgcG91ciBsZSBmb3JtYXQgZGVzIG5vbWJyZXNcbiAgICAgICAgICovXG4gICAgICAgIG51bWJlckxvY2FsZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEZvbmN0aW9uIGRlIGNhbGxiYWNrIHF1aSBwcmVuZCBlbiBwYXJhbcOodHJlIGxlIHRhYmxlYXUgZGVzIGNvbG9ubmVzIG1pcyDDoCBqb3VyLlxuICAgICAgICAgKi9cbiAgICAgICAgb25Db2x1bW5zT3JkZXJVcGRhdGU6IFByb3BUeXBlcy5mdW5jLFxuICAgICAgICAvKipcbiAgICAgICAgICogRm9uY3Rpb24gZGUgY2FsbGJhY2sgc3VyIGxlIGZpbHRyZSBkJ3VuZSBjb2xvbm5lXG4gICAgICAgICAqIFBhc3NlIGwnaWQgZGUgbGEgY29sb25uZSBldCBsYSBsaXN0ZSBkZXMgaWQgZGVzIMOpbMOpbWVudHMgaW5jbHVzXG4gICAgICAgICAqL1xuICAgICAgICBvbkZpbHRlckNoYW5nZTogUHJvcFR5cGVzLmZ1bmMsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBGb25jdGlvbiBkZSBjYWxsYmFjayBhcHBlbMOpZSBhdSBjbGljIHN1ciBsJ2l0ZW0gcmVkaXJlY3Rpb25cbiAgICAgICAgICogZHUgbWVudSBjb250ZXh0dWVsIG91dmVydCBhdSBjbGljIGRyb2l0XG4gICAgICAgICAqXG4gICAgICAgICAqIEBwYXJhbSB7aW50fSBpZFxuICAgICAgICAgKi9cbiAgICAgICAgb25SZWRpcmVjdDogUHJvcFR5cGVzLmZ1bmMsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBGb25jdGlvbiBkZSBjYWxsYmFjayBhdSBjbGljayBzdXIgdW5lIGxpZ25lXG4gICAgICAgICAqIFBhc3NlIGwnZWxlbWVudCAocm93KVxuICAgICAgICAgKi9cbiAgICAgICAgb25Sb3dDbGljazogUHJvcFR5cGVzLmZ1bmMsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBGb25jdGlvbiBkZSBjYWxsYmFjayBhcHBlbMOpZSBhdSBjbGljIHN1ciBsZXMgaXRlbXMgZGUgcmVjaGVyY2hlXG4gICAgICAgICAqIGR1IG1lbnUgY29udGV4dHVlbCBvdXZlcnQgYXUgY2xpYyBkcm9pdFxuICAgICAgICAgKlxuICAgICAgICAgKiBAcGFyYW0ge3N0cmluZ30gc2VhcmNoZWQgZmllbGRcbiAgICAgICAgICogQHBhcmFtIHtzdHJpbmd9IHNlYXJjaGVkIHZhbHVlXG4gICAgICAgICAqIEBwYXJhbSB7c3RyaW5nfSBzZWFyY2ggdHlwZSAobG9va3VwLCBleGNsdWRlKVxuICAgICAgICAgKi9cbiAgICAgICAgb25TZWFyY2g6IFByb3BUeXBlcy5mdW5jLFxuICAgICAgICAvKipcbiAgICAgICAgICogRm9uY3Rpb24gZGUgY2FsbGJhY2sgc3VyIGxhIHPDqWxlY3Rpb24gZCd1bmUgbGlnbmVcbiAgICAgICAgICogKG91IHPDqWxlY3Rpb24vZMOpc2VsZWN0aW9uIGRlIHRvdXMgZGFucyBsZSBoZWFkZXIpXG4gICAgICAgICAqIFBhc3NlIGxhIGxpc3RlIGRlcyBpZCBkZXMgbGlnbmVzIHPDqWxlY3Rpb25uw6llcyAoc2VsZWN0ZWRJZExpc3QpXG4gICAgICAgICAqL1xuICAgICAgICBvblNlbGVjdDogUHJvcFR5cGVzLmZ1bmMsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBGb25jdGlvbiBkZSBjYWxsYmFjayBzdXIgbGUgdHJpIGQndW5lIGNvbG9ubmVcbiAgICAgICAgICogUGFzc2UgbCdpZCBkZSBsYSBjb2xvbm5lIGV0IGxhIGRpcmVjdGlvbiBkdSB0cmkgKG91IGZhbHNlIHNpIHRyaSBwYXIgZMOpZmF1dClcbiAgICAgICAgICpcbiAgICAgICAgICogQHBhcmFtIHtzdHJpbmd9IGNvbHVtbiBpZFxuICAgICAgICAgKiBAcGFyYW0ge3N0cmluZ30gZGlyZWN0aW9uXG4gICAgICAgICAqL1xuICAgICAgICBvblNvcnQ6IFByb3BUeXBlcy5mdW5jLFxuICAgICAgICAvKipcbiAgICAgICAgICogTCd1dGlsaXNhdGV1ciBwZXV0IGNoYW5nZXIgbCdvcmRyZSBkZXMgY29sb25uZXMsXG4gICAgICAgICAqIGxlcyBhZmZpY2hlciBvdSBub24sIGV0IGNoYW5nZXIgbGEgdnVlIGRlIGNoYXF1ZSBjb2xvbm5lIChzbWFsbCwgbWVkaXVtLCBsYXJnZSkuXG4gICAgICAgICAqL1xuICAgICAgICBvcmRlcmFibGU6IFByb3BUeXBlcy5ib29sLFxuICAgICAgICAvKipcbiAgICAgICAgICogVGFibGVhdSBkZXMgY29sb25uZXMgYWZmaWNow6llcyAob3Jkb25uw6llcywgdmlzaWJsZXMvY2FjaMOpZXMsIGwvbS9zKVxuICAgICAgICAgKi9cbiAgICAgICAgb3JkZXJlZENvbHVtbnM6IFByb3BUeXBlcy5hcnJheS5pc1JlcXVpcmVkLFxuICAgICAgICAvKipcbiAgICAgICAgICogRm9uY3Rpb24gZGUgY2FsbGJhY2sgcmVxdcOpcmFudCBsJ2FmZmljaGFnZSBkZXMgbm91dmVsbGVzIGRvbm7DqWVzIChsaXZlKVxuICAgICAgICAgKi9cbiAgICAgICAgcmVxdWVzdExpdmVEYXRhczogUHJvcFR5cGVzLmZ1bmMsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBGb25jdGlvbiBkZSBjYWxsYmFjayByZXF1w6lyYW50IGwnYWZmaWNoYWdlIGRlcyBkb25uw6llcyBzdWl2YW50ZXNcbiAgICAgICAgICovXG4gICAgICAgIHJlcXVlc3ROZXh0RGF0YXM6IFByb3BUeXBlcy5mdW5jLFxuICAgICAgICAvKipcbiAgICAgICAgICogW3YyIC0gw6AgdmVuaXJdIExlcyBsaWduZXMgc29udCBzw6lsZWN0aW9ubmFibGVzIChhZmZpY2hhZ2UgZCd1bmUgY2hlY2tib3gpXG4gICAgICAgICAqL1xuICAgICAgICBzZWxlY3RhYmxlOiBQcm9wVHlwZXMuYm9vbCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIExpc3RlIGRlcyBpZCBkZXMgbGlnbmVzIHPDqWxlY3Rpb25uw6llc1xuICAgICAgICAgKi9cbiAgICAgICAgc2VsZWN0ZWRJZExpc3Q6IFByb3BUeXBlcy5hcnJheSxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEFjdGl2ZSBsZSB0cmkgc3VyIGxlcyBjb2xvbm5lc1xuICAgICAgICAgKi9cbiAgICAgICAgc29ydGFibGU6IFByb3BUeXBlcy5ib29sLFxuICAgICAgICAvKipcbiAgICAgICAgICogU2VucyBkdSB0cmlcbiAgICAgICAgICovXG4gICAgICAgIHNvcnREaXJlY3Rpb246IFByb3BUeXBlcy5vbmVPZihbJ2FzYycsICdkZXNjJ10pLFxuICAgICAgICAvKipcbiAgICAgICAgICogSWQgZGUgbGEgY29sb25uZSB0cmnDqVxuICAgICAgICAgKi9cbiAgICAgICAgc29ydGVkQ29sdW1uSWQ6IGlzUmVxdWlyZWRJZihcbiAgICAgICAgICAgIFByb3BUeXBlcy5zdHJpbmcsXG4gICAgICAgICAgICBwcm9wcyA9PiBwcm9wcy5oYXNPd25Qcm9wZXJ0eSgnc29ydGFibGUnKSAmJiBwcm9wcy5zb3J0YWJsZSA9PT0gdHJ1ZSxcbiAgICAgICAgICAgIFNPUlRFRF9DT0xVTU5fRVJST1JfTUVTU0FHRSxcbiAgICAgICAgKSxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEZpeGUgbGEgcHJlbWnDqHJlIGNvbG9ubmVcbiAgICAgICAgICovXG4gICAgICAgIHN0aWNreTogUHJvcFR5cGVzLmJvb2wsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJZGVudGlmaWFudCB1bmlxdWUgw6Agc3DDqWNpZmllciBzaSBvbiB1dGlsaXNlIHBsdXNpZXVycyBjb21wb3NhbnRzIEhpVGFibGVcbiAgICAgICAgICovXG4gICAgICAgIHRhYklkOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUcmFkdWN0aW9uIGRlcyBjaGHDrm5lcyBhZmZpY2jDqWVzXG4gICAgICAgICAqL1xuICAgICAgICB0cmFuc2xhdGlvbnM6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUYWlsbGUgZHUgdGFibGVhdSAoTC9NL1MpLFxuICAgICAgICAgKiBkw6lmaW5pdCBsJ2VzcGFjZSBlbnRyZSBsZXMgY2VsbHVsZXMgZXQgbGV1cnMgdGFpbGxlcyBwYXIgZGVmYXVsdFxuICAgICAgICAgKi9cbiAgICAgICAgdmlldzogUHJvcFR5cGVzLm9uZU9mKFsnbCcsICdtJywgJ3MnXSksXG4gICAgfTtcblxuICAgIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgICAgIG9yZGVyYWJsZTogZmFsc2UsXG4gICAgICAgIHNlbGVjdGFibGU6IGZhbHNlLFxuICAgICAgICBzb3J0YWJsZTogdHJ1ZSxcbiAgICAgICAgc29ydERpcmVjdGlvbjogJ2FzYycsXG4gICAgICAgIGZpbHRlcmFibGU6IHRydWUsXG4gICAgICAgIGluZmluaXRlU2Nyb2xsOiBmYWxzZSxcbiAgICAgICAgaGFzTmV4dERhdGFzOiBmYWxzZSxcbiAgICAgICAgY291bnRMaXZlRGF0YXM6IDAsXG4gICAgICAgIGRhdGVMb2NhbGU6ICdlbi1FTicsXG4gICAgICAgIG51bWJlckxvY2FsZTogJ2VuLUVOJyxcbiAgICAgICAgZGVuc2U6IGZhbHNlLFxuICAgICAgICBoZWlnaHQ6IDQ1MCxcbiAgICAgICAgc3RpY2t5OiB0cnVlLFxuICAgICAgICB0cmFuc2xhdGlvbnM6IHtcbiAgICAgICAgICAgIGxvYWRfbW9yZTogJ0xvYWQgTW9yZScsXG4gICAgICAgICAgICBiYWNrX3RvX3RvcDogJ0JhY2sgdG8gdG9wJyxcbiAgICAgICAgICAgIGdldF90aGVfbl9uZXdfaXRlbXM6ICdTZWUgJXMgbmV3IGl0ZW1zJyxcbiAgICAgICAgICAgIGNob29zZV9hbmRfb3JnYW5pemVfY29sdW1uczogJ0Nob29zZSAmIG9yZ2FuaXplIGNvbHVtbnMnLFxuICAgICAgICAgICAgc2VhcmNoOiAnU2VhcmNoJyxcbiAgICAgICAgICAgIHRpbWU6ICdUaW1lJyxcbiAgICAgICAgICAgIHN0aWNreVJvdzoge1xuICAgICAgICAgICAgICAgIGJ1dHRvbjoge1xuICAgICAgICAgICAgICAgICAgICBuZXh0OiAnTmV4dCBkYXknLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICB2aWV3OiAnbCcsXG4gICAgICAgIGxvb2t1cENvbHVtbnM6IFtdLFxuICAgICAgICBsb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgZml4ZWRDb2x1bW5XaWR0aDogdHJ1ZSxcbiAgICAgICAgZGlzYWJsZUNvbnRleHRNZW51OiB0cnVlLFxuICAgIH07XG5cbiAgICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgICAgICBzdXBlcihwcm9wcyk7XG5cbiAgICAgICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgICAgICAgIGRhdGVVcGRhdGU6IERhdGUubm93KCksXG4gICAgICAgICAgICBpc1Njcm9sbFRvQm90dG9tOiBmYWxzZSxcbiAgICAgICAgICAgIGdyb3VwQnlJZHM6IHt9LFxuICAgICAgICB9O1xuXG4gICAgICAgIC8vIGNyZWF0ZSBhc3NvY2lhdGl2ZSBhcnJheSAob2JqZWN0KSB3aXRoIHN0aWNreSByb3cga2V5ICYgaXRzIHZhbHVlc1xuICAgICAgICAvLyA9PiB1c2VkIGZvciBzdGlja3kgcm93IGJhZGdlc1xuICAgICAgICBpZiAocHJvcHMuZ3JvdXBCeSkge1xuICAgICAgICAgICAgcHJvcHMuZGF0YVNvdXJjZS5tYXAocm93ID0+IHtcbiAgICAgICAgICAgICAgICBsZXQgdmFsdWUgPSByb3cuZGF0YXNbcHJvcHMuZ3JvdXBCeV0udmFsdWU7XG4gICAgICAgICAgICAgICAgbGV0IGRhdGUgPSBuZXcgRGF0ZSh2YWx1ZSk7XG5cbiAgICAgICAgICAgICAgICBpZiAoZGF0ZSBpbnN0YW5jZW9mIERhdGUgJiYgaXNGaW5pdGUoZGF0ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5zdWJzdHIoMCwgMTApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuc3RhdGUuZ3JvdXBCeUlkcy5oYXNPd25Qcm9wZXJ0eSh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZS5ncm91cEJ5SWRzW3ZhbHVlXSA9IFtdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlLmdyb3VwQnlJZHNbdmFsdWVdLnB1c2gocm93LmRhdGFzKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gT3JkZXJhYmxlXG4gICAgICAgIHRoaXMub3Blbk9yZGVyQ29sdW1uc01lbnUgPSB0aGlzLm9wZW5PcmRlckNvbHVtbnNNZW51LmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMuY2xvc2VPcmRlckNvbHVtbnNNZW51ID0gdGhpcy5jbG9zZU9yZGVyQ29sdW1uc01lbnUuYmluZCh0aGlzKTtcblxuICAgICAgICAvLyBTZWxlY3RhYmxlXG4gICAgICAgIHRoaXMudG9nZ2xlSXRlbSA9IHRoaXMudG9nZ2xlSXRlbS5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLnRvZ2dsZUFsbCA9IHRoaXMudG9nZ2xlQWxsLmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMuc2VsZWN0QWxsID0gdGhpcy5zZWxlY3RBbGwuYmluZCh0aGlzKTtcbiAgICAgICAgdGhpcy5kZXNlbGVjdEFsbCA9IHRoaXMuZGVzZWxlY3RBbGwuYmluZCh0aGlzKTtcblxuICAgICAgICAvLyBNYW5hZ2Ugc2Nyb2xsaW5nXG4gICAgICAgIHRoaXMuaGFuZGxlSG9yaXpvbnRhbFNjcm9sbCA9IHRoaXMuaGFuZGxlSG9yaXpvbnRhbFNjcm9sbC5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLmhhbmRsZVZlcnRpY2FsU2Nyb2xsID0gdGhpcy5oYW5kbGVWZXJ0aWNhbFNjcm9sbC5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLnBsYWNlSG9yaXpvbnRhbEZsb2F0aW5nRWxlbWVudCA9IHRoaXMucGxhY2VIb3Jpem9udGFsRmxvYXRpbmdFbGVtZW50LmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMuc2Nyb2xsVG9Ub3AgPSB0aGlzLnNjcm9sbFRvVG9wLmJpbmQodGhpcyk7XG5cbiAgICAgICAgdGhpcy5pc1Njcm9sbFRvQm90dG9tID0gdGhpcy5pc1Njcm9sbFRvQm90dG9tLmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMuaGFuZGxlUmVxdWVzdExpdmVEYXRhcyA9IHRoaXMuaGFuZGxlUmVxdWVzdExpdmVEYXRhcy5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLmhhbmRsZU5leHRTdGlja3lSb3cgPSB0aGlzLmhhbmRsZU5leHRTdGlja3lSb3cuYmluZCh0aGlzKTtcbiAgICAgICAgdGhpcy5oYW5kbGVTdGlja3lSb3dQb3NpdGlvbnMgPSB0aGlzLmhhbmRsZVN0aWNreVJvd1Bvc2l0aW9ucy5iaW5kKHRoaXMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERPTSByZWZlcmVuY2VzXG4gICAgICogdXNlIHRvIHJlcGxhY2UgZWxlbWVudCBvbiBob3Jpem9udGFsICYgdmVydGljYWwgc2Nyb2xsXG4gICAgICovXG4gICAgd3JhcHBlckRpdiA9IDxkaXYgLz47XG4gICAgd3JhcHBlcldpZHRoID0gMDtcbiAgICB0SGVhZCA9IDxkaXYgLz47XG4gICAgdEhlYWRMZWZ0UGFkZGluZyA9IDxkaXYgLz47XG4gICAgdEhlYWRSaWdodFBhZGRpbmcgPSA8ZGl2IC8+O1xuICAgIHRIZWFkRmlyc3QgPSA8ZGl2IC8+O1xuICAgIHRCb2R5ID0gPGRpdiAvPjtcbiAgICB0Qm9keVNjcm9sbGJhcldpZHRoID0gMDtcbiAgICB0Qm9keUxlZnRQYWRkaW5nRWxlbWVudHMgPSBbXTtcbiAgICB0Qm9keVJpZ2h0UGFkZGluZ0VsZW1lbnRzID0gW107XG4gICAgdEJvZHlGaXJzdEVsZW1lbnRzID0gW107XG4gICAgdEZvb3QgPSA8ZGl2IC8+O1xuICAgIHRGb290Q2VudGVyZWREaXYgPSA8ZGl2IC8+O1xuICAgIGJhY2tUb1RvcEJ1dHRvbiA9IG51bGw7XG4gICAgbGl2ZURhdGFTcGFuID0gbnVsbDtcbiAgICBzY3JvbGxUb3AgPSAwO1xuICAgIHNjcm9sbExlZnQgPSAwO1xuICAgIGdyb3VwQnlSb3dzUG9zaXRpb25zID0gW107XG5cbiAgICAvKiogTGlmZWN5Y2xlIG1ldGhvZHMgKi9cblxuICAgIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgICAgICB0aGlzLndyYXBwZXJTY3JvbGxPZmZzZXQgPSB0aGlzLndyYXBwZXJEaXYuc2Nyb2xsV2lkdGggLSB0aGlzLndyYXBwZXJEaXYub2Zmc2V0V2lkdGg7XG5cbiAgICAgICAgLy8gU2V0IERPTSByZWZlcmVuY2VzXG4gICAgICAgIHRoaXMudEhlYWQgPSB0aGlzLndyYXBwZXJEaXYucXVlcnlTZWxlY3RvcigndGFibGUgdGhlYWQnKTtcbiAgICAgICAgdGhpcy50SGVhZExlZnRQYWRkaW5nID0gdGhpcy50SGVhZC5xdWVyeVNlbGVjdG9yKCd0ciB0aDpudGgtY2hpbGQoMSknKTtcbiAgICAgICAgdGhpcy50SGVhZFJpZ2h0UGFkZGluZyA9IHRoaXMudEhlYWQucXVlcnlTZWxlY3RvcigndHIgdGg6bnRoLWxhc3QtY2hpbGQoMSknKTtcbiAgICAgICAgdGhpcy50SGVhZEZpcnN0ID0gdGhpcy50SGVhZC5xdWVyeVNlbGVjdG9yKCd0ciB0aDpudGgtY2hpbGQoMiknKTtcbiAgICAgICAgdGhpcy50Qm9keSA9IHRoaXMud3JhcHBlckRpdi5xdWVyeVNlbGVjdG9yKCd0YWJsZSB0Ym9keScpO1xuICAgICAgICB0aGlzLnRGb290ID0gdGhpcy53cmFwcGVyRGl2LnF1ZXJ5U2VsZWN0b3IoJ3RhYmxlIHRmb290Jyk7XG4gICAgICAgIHRoaXMudEZvb3RDZW50ZXJlZERpdiA9IHRoaXMud3JhcHBlckRpdi5xdWVyeVNlbGVjdG9yKCd0YWJsZSB0Zm9vdCB0ciB0ZCBkaXYnKTtcbiAgICAgICAgdGhpcy5iYWNrVG9Ub3BCdXR0b24gPSB0aGlzLndyYXBwZXJEaXYucXVlcnlTZWxlY3RvcignLmJhY2stdG8tdG9wLWJ1dHRvbicpO1xuXG4gICAgICAgIHRoaXMudXBkYXRlRmxvYXRpbmdCb2R5RWxlbWVudFJlZnMoKTtcblxuICAgICAgICAvLyBEZXRlY3QgaWYgcm9vdCBoYXMgaG9yaXpvbnRhbCBzY3JvbGwgYmFyXG4gICAgICAgIGlmICh0aGlzLndyYXBwZXJEaXYuc2Nyb2xsV2lkdGggPiB0aGlzLndyYXBwZXJEaXYub2Zmc2V0V2lkdGgpIHtcbiAgICAgICAgICAgIC8vIGFkYXB0IGZpcnN0IGNvbHVtbiB0byBmaXhlZCB3aWR0aFxuICAgICAgICAgICAgaWYgKHRoaXMudEhlYWRGaXJzdCAmJiB0aGlzLnRIZWFkRmlyc3Quc3R5bGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRIZWFkRmlyc3Quc3R5bGUud2lkdGggPSAnYXV0byc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBmaXhlZCBmb290ZXIgd2lkdGhcbiAgICAgICAgICAgIGlmICh0aGlzLnRGb290Q2VudGVyZWREaXYgJiYgdGhpcy50Rm9vdENlbnRlcmVkRGl2LnN0eWxlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50Rm9vdENlbnRlcmVkRGl2LnN0eWxlLndpZHRoID0gKE1hdGgucm91bmQodGhpcy53cmFwcGVyRGl2Lm9mZnNldFdpZHRoIC8gMikpICsgJ3B4JztcbiAgICAgICAgICAgICAgICB0aGlzLnRGb290Q2VudGVyZWREaXYuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnO1xuICAgICAgICAgICAgICAgIHRoaXMudEZvb3RDZW50ZXJlZERpdi5zdHlsZS5ib3R0b20gPSAnMHB4JztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudXBkYXRlU3RpY2t5Um93c1Bvc2l0aW9uKCk7XG5cbiAgICAgICAgdGhpcy5wbGFjZUhvcml6b250YWxGbG9hdGluZ0VsZW1lbnQoKTtcbiAgICB9XG5cbiAgICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzLCBwcmV2U3RhdGUsIHByZXZDb250ZXh0KSB7XG4gICAgICAgIHRoaXMud3JhcHBlclNjcm9sbE9mZnNldCA9IHRoaXMud3JhcHBlckRpdi5zY3JvbGxXaWR0aCAtIHRoaXMud3JhcHBlckRpdi5vZmZzZXRXaWR0aDtcblxuICAgICAgICAvLyBJZiBvcmRlcmVkQ29sdW1ucyBoYXMgY2hhbmdlLCBwb3NzaWJseSB0aGUgc3RpY2t5IGNlbGxzIGhhcyBjaGFuZ2VkIHRvb1xuICAgICAgICBpZiAodGhpcy5wcm9wcy5vcmRlcmVkQ29sdW1uc1swXS5jb2xJZCAhPT0gcHJldlByb3BzLm9yZGVyZWRDb2x1bW5zWzBdLmNvbElkKSB7XG4gICAgICAgICAgICB0aGlzLnRIZWFkRmlyc3QgPSB0aGlzLnRIZWFkLnF1ZXJ5U2VsZWN0b3IoJ3RyIHRoOm50aC1jaGlsZCgyKScpO1xuICAgICAgICAgICAgdGhpcy50Qm9keUZpcnN0RWxlbWVudHMgPSB0aGlzLndyYXBwZXJEaXYucXVlcnlTZWxlY3RvckFsbChcbiAgICAgICAgICAgICAgICAndGFibGUgdGJvZHkgdHIgdGQ6bnRoLWNoaWxkKDIpJyxcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBJZiB0aGVyZSBpcyBuZXcgcm93cywgdXBkYXRlIHRib2R5IGZpcnN0IGVsZW1lbnQgbGlzdCBhbmQgbGVmdCBwYWRkaW5nIGNlbGxzXG4gICAgICAgIGlmICh0aGlzLnByb3BzLmRhdGFTb3VyY2UubGVuZ3RoID4gcHJldlByb3BzLmRhdGFTb3VyY2UubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUZsb2F0aW5nQm9keUVsZW1lbnRSZWZzKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5wcm9wcy5jb3VudExpdmVEYXRhcyA+IDApIHtcbiAgICAgICAgICAgIHRoaXMubGl2ZURhdGFTcGFuID0gdGhpcy50SGVhZC5xdWVyeVNlbGVjdG9yKCd0cjpudGgtY2hpbGQoMikgdGggc3BhbicpO1xuICAgICAgICAgICAgdGhpcy5iYWNrVG9Ub3BCdXR0b24uc3R5bGUudG9wID0gJy05OTk5OXB4JztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChwcmV2UHJvcHMuY291bnRMaXZlRGF0YXMgPiB0aGlzLnByb3BzLmNvdW50TGl2ZURhdGFzKSB7XG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICAgICAgICBkYXRlVXBkYXRlOiBEYXRlLm5vdygpLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBPbmx5IGlmIG5lZWRlZFxuICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLnByb3BzLmRhdGFTb3VyY2UubGVuZ3RoID4gcHJldlByb3BzLmRhdGFTb3VyY2UubGVuZ3RoIHx8XG4gICAgICAgICAgICB0aGlzLnByb3BzLmRlbnNlICE9PSBwcmV2UHJvcHMuZGVuc2UgfHxcbiAgICAgICAgICAgIHRoaXMucHJvcHMuc29ydGVkQ29sdW1uSWQgIT09IHByZXZQcm9wcy5zb3J0ZWRDb2x1bW5JZCB8fFxuICAgICAgICAgICAgdGhpcy5wcm9wcy5zb3J0RGlyZWN0aW9uICE9PSBwcmV2UHJvcHMuc29ydERpcmVjdGlvblxuICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlU3RpY2t5Um93c1Bvc2l0aW9uKCk7XG4gICAgICAgICAgICBpZiAodGhpcy5wcm9wcy5kYXRhU291cmNlLmxlbmd0aCA+IHByZXZQcm9wcy5kYXRhU291cmNlLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlU3RpY2t5Um93UG9zaXRpb25zKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMucHJvcHMuZGF0YVNvdXJjZS5sZW5ndGggPiBwcmV2UHJvcHMuZGF0YVNvdXJjZS5sZW5ndGggJiYgdGhpcy5wcm9wcy5ncm91cEJ5KSB7XG4gICAgICAgICAgICAvLyBjcmVhdGUgYXNzb2NpYXRpdmUgYXJyYXkgKG9iamVjdCkgd2l0aCBzdGlja3kgcm93IGtleSAmIGl0cyB2YWx1ZXNcbiAgICAgICAgICAgIC8vID0+IHVzZWQgZm9yIHN0aWNreSByb3cgYmFkZ2VzXG4gICAgICAgICAgICBsZXQgZ3JvdXBCeUlkcyA9IHt9O1xuICAgICAgICAgICAgdGhpcy5wcm9wcy5kYXRhU291cmNlLm1hcChyb3cgPT4ge1xuICAgICAgICAgICAgICAgIGxldCB2YWx1ZSA9IHJvdy5kYXRhc1t0aGlzLnByb3BzLmdyb3VwQnldLnZhbHVlO1xuICAgICAgICAgICAgICAgIGxldCBkYXRlID0gbmV3IERhdGUodmFsdWUpO1xuXG4gICAgICAgICAgICAgICAgaWYgKGRhdGUgaW5zdGFuY2VvZiBEYXRlICYmIGlzRmluaXRlKGRhdGUpKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUuc3Vic3RyKDAsIDEwKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKCFncm91cEJ5SWRzLmhhc093blByb3BlcnR5KHZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICBncm91cEJ5SWRzW3ZhbHVlXSA9IFtdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBncm91cEJ5SWRzW3ZhbHVlXS5wdXNoKHJvdy5kYXRhcyk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBncm91cEJ5SWRzOiBncm91cEJ5SWRzIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5pc1Njcm9sbFRvQm90dG9tKHRoaXMuc2Nyb2xsVG9wID09PSB0aGlzLnRCb2R5LnNjcm9sbEhlaWdodCAtIHRoaXMudEJvZHkub2Zmc2V0SGVpZ2h0KTtcblxuICAgICAgICB0aGlzLnBsYWNlSG9yaXpvbnRhbEZsb2F0aW5nRWxlbWVudCgpO1xuICAgIH1cblxuICAgIC8qKiAgICBFTkQgTGlmZWN5Y2xlIG1ldGhvZHMgICAqL1xuXG4gICAgdXBkYXRlU3RpY2t5Um93c1Bvc2l0aW9uKCkge1xuICAgICAgICBjb25zdCByb3dIZWlnaHQgPSB0aGlzLnByb3BzLmRlbnNlID8gY3N0LkNFTExfSEVJR0hUX0RFTlNFIDogY3N0LkNFTExfSEVJR0hUO1xuICAgICAgICB0aGlzLmdyb3VwQnlSb3dzUG9zaXRpb25zID0gW107XG4gICAgICAgIC8vIEluaXRpYWxpemUgbmV3IHN0aWNreVJvd3MgcG9zaXRpb25cbiAgICAgICAgY29uc3QgdGFibGVCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYCR7dGhpcy5wcm9wcy50YWJJZH0tYm9keWApO1xuICAgICAgICBjb25zdCBzdGlja3lSb3dzID0gdGFibGVCb2R5LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ3N0aWNreUdyb3VwQnknKTtcbiAgICAgICAgaWYgKHN0aWNreVJvd3MubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlLmZpbHRlci5jYWxsKHN0aWNreVJvd3MsIHN0aWNreVJvdyA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5ncm91cEJ5Um93c1Bvc2l0aW9ucy5wdXNoKFxuICAgICAgICAgICAgICAgICAgICBzdGlja3lSb3cubmV4dFNpYmxpbmcubmV4dFNpYmxpbmcub2Zmc2V0VG9wIC0gcm93SGVpZ2h0LFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHVwZGF0ZUZsb2F0aW5nQm9keUVsZW1lbnRSZWZzID0gKCkgPT4ge1xuICAgICAgICB0aGlzLnRCb2R5U2Nyb2xsYmFyV2lkdGggPSB0aGlzLnRCb2R5Lm9mZnNldFdpZHRoIC0gdGhpcy50Qm9keS5jbGllbnRXaWR0aDtcblxuICAgICAgICBpZiAodGhpcy50SGVhZCAmJiB0aGlzLnRCb2R5U2Nyb2xsYmFyV2lkdGggPiAwKSB7XG4gICAgICAgICAgICB0aGlzLnRIZWFkLnN0eWxlLndpZHRoID0gJ2NhbGMoMTAwJSAtICcgKyB0aGlzLnRCb2R5U2Nyb2xsYmFyV2lkdGggKyAncHgpJztcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudEJvZHlMZWZ0UGFkZGluZ0VsZW1lbnRzID0gdGhpcy50Qm9keS5xdWVyeVNlbGVjdG9yQWxsKFxuICAgICAgICAgICAgJ3RyIHRkOm50aC1jaGlsZCgxKSwgLmZsb2F0aW5nLXBhcmVudC1yb3ctbGFiZWwnLFxuICAgICAgICApO1xuICAgICAgICB0aGlzLnRCb2R5UmlnaHRQYWRkaW5nRWxlbWVudHMgPSB0aGlzLnRCb2R5LnF1ZXJ5U2VsZWN0b3JBbGwoXG4gICAgICAgICAgICAndHIgdGQ6bnRoLWxhc3QtY2hpbGQoMSksIC5mbG9hdGluZy1wYXJlbnQtcm93LWluZGljYXRvcicsXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy50Qm9keUZpcnN0RWxlbWVudHMgPSB0aGlzLnRCb2R5LnF1ZXJ5U2VsZWN0b3JBbGwoJ3RyIHRkOm50aC1jaGlsZCgyKScpO1xuICAgIH07XG5cbiAgICBpc1Njcm9sbFRvQm90dG9tKHZhbHVlKSB7XG4gICAgICAgIGlmICh0aGlzLnN0YXRlLmlzU2Nyb2xsVG9Cb3R0b20gIT09IHZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICAgICAgICBpc1Njcm9sbFRvQm90dG9tOiB2YWx1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWpvdXRlIC8gU3VwcHJpbWUgbCdpZCBkZSBsJ2l0ZW0gZHUgc2VsZWN0ZWRJZExpc3RcbiAgICAgKiBAcGFyYW0gaXRlbVxuICAgICAqL1xuICAgIHRvZ2dsZUl0ZW0oaXRlbSkge1xuICAgICAgICBpZiAodGhpcy5wcm9wcy5zZWxlY3RlZElkTGlzdC5pbmNsdWRlcyhpdGVtLnJvd0lkKSkge1xuICAgICAgICAgICAgdGhpcy5wcm9wcy5vblNlbGVjdChcbiAgICAgICAgICAgICAgICB0aGlzLnByb3BzLnNlbGVjdGVkSWRMaXN0LmZpbHRlcihmdW5jdGlvbihpdGVtSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW1JZCAhPT0gaXRlbS5yb3dJZDtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnByb3BzLm9uU2VsZWN0KFsuLi50aGlzLnByb3BzLnNlbGVjdGVkSWRMaXN0LCBpdGVtLnJvd0lkXSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTw6lsZWN0aW9ubmUgLyBEw6lzZWxlY3Rpb25uZSB0b3VzIGxlcyDDqWzDqW1lbnRzIGVuIGZvbmN0aW9uIGRlIGwnw6l0YXQgZGUgbGEgbGlzdGVcbiAgICAgKi9cbiAgICB0b2dnbGVBbGwoKSB7XG4gICAgICAgIGlmICh0aGlzLnByb3BzLnNlbGVjdGVkSWRMaXN0Lmxlbmd0aCA9PT0gdGhpcy5wcm9wcy5kYXRhU291cmNlLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5kZXNlbGVjdEFsbCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RBbGwoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFPDqWxlY3Rpb25uZSB0b3VzIGxlcyBpdGVtc1xuICAgICAqL1xuICAgIHNlbGVjdEFsbCgpIHtcbiAgICAgICAgdGhpcy5wcm9wcy5vblNlbGVjdCh0aGlzLnByb3BzLmRhdGFTb3VyY2UubWFwKGl0ZW0gPT4gaXRlbS5yb3dJZCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIETDqXPDqWxlY3Rpb25uZSB0b3VzIGxlcyBpdGVtc1xuICAgICAqL1xuICAgIGRlc2VsZWN0QWxsKCkge1xuICAgICAgICB0aGlzLnByb3BzLm9uU2VsZWN0KFtdKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBIYW5kbGUgaG9yaXpvbnRhbCBzY3JvbGwgKHdyYXBwZXJEaXYpXG4gICAgICogLSByZXBsYWNlIGVhY2ggZmlyc3QgY2VsbHMgYm9keSAmIGhlYWRlciAmIGFkZCByaWdodCBzaGFkb3dzXG4gICAgICovXG4gICAgaGFuZGxlSG9yaXpvbnRhbFNjcm9sbChldmVudCkge1xuICAgICAgICAvLyBjYW5jZWwgaWYgc2Nyb2xsIGlzIGZyb20gdGJvZHkgT1IgaXQgZGlkbid0IGNoYW5nZVxuICAgICAgICBpZiAoZXZlbnQudGFyZ2V0Lm5vZGVOYW1lID09PSAnVEJPRFknIHx8IHRoaXMuc2Nyb2xsTGVmdCA9PT0gZXZlbnQudGFyZ2V0LnNjcm9sbExlZnQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2Nyb2xsTGVmdCA9IGV2ZW50LnRhcmdldC5zY3JvbGxMZWZ0O1xuXG4gICAgICAgIC8vIFJlcGxhY2UgbGl2ZSBkYXRhcyBub3RpZmljYXRpb25cbiAgICAgICAgdGhpcy5wbGFjZUhvcml6b250YWxGbG9hdGluZ0VsZW1lbnQoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBIYW5kbGUgdmVydGljYWwgc2Nyb2xsICh0Ym9keSlcbiAgICAgKiAtIGFkZCBib3R0b20gc2hhZG93XG4gICAgICogLSBwbGFjZSBiYWNrIHRvIHRvcCBidXR0b25cbiAgICAgKiAtIHJlcXVlc3QgbmV4dCBkYXRhcyBpZiByZWFjaCBib3R0b21cbiAgICAgKi9cbiAgICBoYW5kbGVWZXJ0aWNhbFNjcm9sbChldmVudCkge1xuICAgICAgICAvLyBjYW5jZWwgaWYgc2Nyb2xsIGlzIG5vdCBmcm9tIHRib2R5IE9SIGl0IGRpZG4ndCBjaGFuZ2VcbiAgICAgICAgaWYgKGV2ZW50LnRhcmdldC5ub2RlTmFtZSAhPT0gJ1RCT0RZJyB8fCB0aGlzLnNjcm9sbFRvcCA9PT0gZXZlbnQudGFyZ2V0LnNjcm9sbFRvcCkgcmV0dXJuO1xuXG4gICAgICAgIGNvbnN0IHNjcm9sbGluZ1VwID0gdGhpcy5zY3JvbGxUb3AgPiBldmVudC50YXJnZXQuc2Nyb2xsVG9wO1xuXG4gICAgICAgIHRoaXMuc2Nyb2xsVG9wID0gZXZlbnQudGFyZ2V0LnNjcm9sbFRvcDtcblxuICAgICAgICAvLyBBZGQgYm90dG9tIHNoYWRvdyB0byBoZWFkZXIgcm93XG4gICAgICAgIGNvbnN0IHNoYWRvd0JvdHRvbSA9ICcwcHggMHB4IDJweCAwcHggcmdiYSgxMjgsIDEyOCwgMTI4LCAwLjMyKSc7XG4gICAgICAgIHRoaXMudEhlYWQuc3R5bGVbJ2JveC1zaGFkb3cnXSA9IHRoaXMuc2Nyb2xsVG9wID4gMCA/IHNoYWRvd0JvdHRvbSA6ICdub25lJztcbiAgICAgICAgY29uc3Qgcm93SGVpZ2h0ID0gdGhpcy5wcm9wcy5kZW5zZSA/IGNzdC5DRUxMX0hFSUdIVF9ERU5TRSA6IGNzdC5DRUxMX0hFSUdIVDtcblxuICAgICAgICAvLyBBZGQgYmFjayB0byB0b3AgYnV0dG9uIHdoZW4gc2Nyb2xsaW5nIHVwIGZyb20gY29uc3RhbnQgZGVmaW5lZCBzY3JvbGwgcG9pbnRcbiAgICAgICAgLy8gaWYgdGhlcmUgbm90IGxpdmUgZGF0YSBub3RpZmljYXRpb25cbiAgICAgICAgaWYgKHRoaXMucHJvcHMuY291bnRMaXZlRGF0YXMgPT09IDApIHtcbiAgICAgICAgICAgIGlmIChzY3JvbGxpbmdVcCAmJiB0aGlzLnNjcm9sbFRvcCA+PSBjc3QuTkJfUk9XU19CQUNLX1RPX1RPUCAqIHJvd0hlaWdodCkge1xuICAgICAgICAgICAgICAgIHRoaXMuYmFja1RvVG9wQnV0dG9uLnN0eWxlLnRvcCA9IGAke3Jvd0hlaWdodCAqIDEuNX0gcHhgO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmJhY2tUb1RvcEJ1dHRvbi5zdHlsZS50b3AgPSBgJHstOTk5OTl9cHhgO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5oYW5kbGVTdGlja3lSb3dQb3NpdGlvbnMoKTtcblxuICAgICAgICB0aGlzLmlzU2Nyb2xsVG9Cb3R0b20oXG4gICAgICAgICAgICB0aGlzLnNjcm9sbFRvcCA9PT0gZXZlbnQudGFyZ2V0LnNjcm9sbEhlaWdodCAtIHRoaXMudEJvZHkub2Zmc2V0SGVpZ2h0LFxuICAgICAgICApO1xuICAgIH1cblxuICAgIGhhbmRsZVN0aWNreVJvd1Bvc2l0aW9ucygpIHtcbiAgICAgICAgY29uc3QgdGFibGVCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYCR7dGhpcy5wcm9wcy50YWJJZH0tYm9keWApO1xuICAgICAgICBjb25zdCBzdGlja3lSb3dzID0gdGFibGVCb2R5LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ3N0aWNreUdyb3VwQnknKTtcbiAgICAgICAgY29uc3Qgcm93SGVpZ2h0ID0gdGhpcy5wcm9wcy5kZW5zZSA/IGNzdC5DRUxMX0hFSUdIVF9ERU5TRSA6IGNzdC5DRUxMX0hFSUdIVDtcbiAgICAgICAgaWYgKHN0aWNreVJvd3MubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlLmZpbHRlci5jYWxsKHN0aWNreVJvd3MsIChzdGlja3lSb3csIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZmFrZVRyID0gc3RpY2t5Um93Lm5leHRTaWJsaW5nO1xuICAgICAgICAgICAgICAgIGlmICh0YWJsZUJvZHkuc2Nyb2xsVG9wID4gdGhpcy5ncm91cEJ5Um93c1Bvc2l0aW9uc1tpbmRleF0pIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gQ2FsY3VsIGRlIGxhIHBvc2l0aW9uIGR1ICdwaW5uZWQnIGl0ZW1cbiAgICAgICAgICAgICAgICAgICAgLy8gcG9zaXRpb25uZW1lbnQganVzdGUgZW4gZGVzc291cyBkdSBoZWFkZXJcbiAgICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZW9mIHN0aWNreVJvd3NbaW5kZXggKyAxXSA9PT0gJ3VuZGVmaW5lZCcgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhYmxlQm9keS5zY3JvbGxUb3AgPCBzdGlja3lSb3dzW2luZGV4ICsgMV0ub2Zmc2V0VG9wXG4gICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2kgbGEgcHJvY2hhaW5lIGxpZ25lIGVzdCBhdXNzaSB1biAncGlubmVkJyBpdGVtLFxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWwgcG91c3NlIGxlIHByw6ljw6lkZW50IHZlcnMgbGUgaGF1dFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVvZiB0aGlzLmdyb3VwQnlSb3dzUG9zaXRpb25zW2luZGV4ICsgMV0gIT09ICd1bmRlZmluZWQnICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ncm91cEJ5Um93c1Bvc2l0aW9uc1tpbmRleCArIDFdIC0gdGFibGVCb2R5LnNjcm9sbFRvcCA8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93SGVpZ2h0IC0gMTBcbiAgICAgICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0aWNreVJvdy5zdHlsZS50b3AgPSBgJHt0YWJsZUJvZHkuc2Nyb2xsVG9wICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmdyb3VwQnlSb3dzUG9zaXRpb25zW2luZGV4ICsgMV0gLVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYmxlQm9keS5zY3JvbGxUb3AgLVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd0hlaWdodH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHhgO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGlja3lSb3cuc3R5bGUudG9wID0gYCR7dGFibGVCb2R5LnNjcm9sbFRvcH1weGA7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdGlja3lSb3cuc3R5bGUucG9zaXRpb24gIT09ICdhYnNvbHV0ZScpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBSZXBvc2l0aW9ubmVtZW50IGRlcyDDqWzDqW1lbnRzIGRhbnMgdW5lIHJvdyBlbiBwb3NpdGlvbiBhYnNvbHV0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0aWNreVJvdy5zdHlsZS5wb3NpdGlvbiA9ICdhYnNvbHV0ZSc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFrZVRyLnN0eWxlLmRpc3BsYXkgPSAnaW5saW5lLWJsb2NrJztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGlja3lSb3cuc3R5bGUuaGVpZ2h0ID0gdGhpcy5wcm9wcy5kZW5zZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGAke2NzdC5DRUxMX0hFSUdIVF9ERU5TRSAtIDh9cHhgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogYCR7Y3N0LkNFTExfSEVJR0hUIC0gOH1weGA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RpY2t5Um93LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbicpLnN0eWxlLm1heEhlaWdodCA9IHRoaXMucHJvcHMuZGVuc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBgJHtjc3QuQ0VMTF9IRUlHSFRfREVOU0UgLSAxNn1weGBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBgJHtjc3QuQ0VMTF9IRUlHSFQgLSAxNn1weGA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RpY2t5Um93LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbicpLnN0eWxlLm1pbkhlaWdodCA9IHRoaXMucHJvcHMuZGVuc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBgJHtjc3QuQ0VMTF9IRUlHSFRfREVOU0UgLSAxNn1weGBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBgJHtjc3QuQ0VMTF9IRUlHSFQgLSAxNn1weGA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RpY2t5Um93LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbicpLnN0eWxlLnRvcCA9ICctM3B4JztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGlja3lSb3cucXVlcnlTZWxlY3RvcignI3N0aWNreVJvd0NvbnRlbnQnKS5zdHlsZS50b3AgPSAhdGhpcy5wcm9wc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZGVuc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAnNHB4J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICctM3B4JztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGlja3lSb3cucXVlcnlTZWxlY3RvcigndGQnKS5zdHlsZS5oZWlnaHQgPSB0aGlzLnByb3BzLmRlbnNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gYCR7Y3N0LkNFTExfSEVJR0hUX0RFTlNFIC0gOH1weGBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBgJHtjc3QuQ0VMTF9IRUlHSFQgLSA4fXB4YDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5wcm9wcy5kZW5zZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGlja3lSb3cucXVlcnlTZWxlY3RvcignYnV0dG9uJykuc3R5bGUudG9wID0gJzBweCc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0aWNreVJvdy5xdWVyeVNlbGVjdG9yKCdidXR0b24gc3BhbicpLnN0eWxlLnBvc2l0aW9uID0gJ3JlbGF0aXZlJztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RpY2t5Um93LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbiBzcGFuJykuc3R5bGUudG9wID0gJy00cHgnO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoc3RpY2t5Um93LnN0eWxlLnBvc2l0aW9uICE9PSAncmVsYXRpdmUnKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFJlcG9zaXRpb25uZW1lbnQgbm9ybWFsXG4gICAgICAgICAgICAgICAgICAgIHN0aWNreVJvdy5zdHlsZS5wb3NpdGlvbiA9ICdyZWxhdGl2ZSc7XG4gICAgICAgICAgICAgICAgICAgIHN0aWNreVJvdy5zdHlsZS50b3AgPSAnMHB4JztcbiAgICAgICAgICAgICAgICAgICAgZmFrZVRyLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgICAgICAgICAgICAgICAgIHN0aWNreVJvdy5zdHlsZS5oZWlnaHQgPSB0aGlzLnByb3BzLmRlbnNlXG4gICAgICAgICAgICAgICAgICAgICAgICA/IGAke2NzdC5DRUxMX0hFSUdIVF9ERU5TRX1weGBcbiAgICAgICAgICAgICAgICAgICAgICAgIDogYCR7Y3N0LkNFTExfSEVJR0hUfXB4YDtcbiAgICAgICAgICAgICAgICAgICAgc3RpY2t5Um93LnF1ZXJ5U2VsZWN0b3IoJyNzdGlja3ktYmFkZ2UnKS5zdHlsZS50b3AgPSAnMHB4JztcbiAgICAgICAgICAgICAgICAgICAgc3RpY2t5Um93LnF1ZXJ5U2VsZWN0b3IoJyNzdGlja3lSb3dDb250ZW50Jykuc3R5bGUudG9wID0gJzJweCc7XG4gICAgICAgICAgICAgICAgICAgIHN0aWNreVJvdy5xdWVyeVNlbGVjdG9yKCd0ZCcpLnN0eWxlLmhlaWdodCA9IHRoaXMucHJvcHMuZGVuc2VcbiAgICAgICAgICAgICAgICAgICAgICAgID8gYCR7Y3N0LkNFTExfSEVJR0hUX0RFTlNFfXB4YFxuICAgICAgICAgICAgICAgICAgICAgICAgOiBgJHtjc3QuQ0VMTF9IRUlHSFR9cHhgO1xuICAgICAgICAgICAgICAgICAgICBzdGlja3lSb3cucXVlcnlTZWxlY3RvcignYnV0dG9uJykuc3R5bGUubWF4SGVpZ2h0ID0gdGhpcy5wcm9wcy5kZW5zZVxuICAgICAgICAgICAgICAgICAgICAgICAgPyBgJHtjc3QuQ0VMTF9IRUlHSFRfREVOU0UgLSAyfXB4YFxuICAgICAgICAgICAgICAgICAgICAgICAgOiBgJHtjc3QuQ0VMTF9IRUlHSFQgLSA4fXB4YDtcbiAgICAgICAgICAgICAgICAgICAgc3RpY2t5Um93LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbicpLnN0eWxlLm1pbkhlaWdodCA9IHRoaXMucHJvcHMuZGVuc2VcbiAgICAgICAgICAgICAgICAgICAgICAgID8gYCR7Y3N0LkNFTExfSEVJR0hUX0RFTlNFIC0gMn1weGBcbiAgICAgICAgICAgICAgICAgICAgICAgIDogYCR7Y3N0LkNFTExfSEVJR0hUIC0gOH1weGA7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnByb3BzLmRlbnNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGlja3lSb3cucXVlcnlTZWxlY3RvcignYnV0dG9uIHNwYW4nKS5zdHlsZS50b3AgPSAnMHB4JztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU29tZSBlbGVtZW50IG11c3QgYmUgcmVwbGFjZSBcIm1hbnVhbGx5XCJcbiAgICAgKi9cbiAgICBwbGFjZUhvcml6b250YWxGbG9hdGluZ0VsZW1lbnQoKSB7XG4gICAgICAgIC8vIGxpdmUgZGF0YXMgbm90aWZpY2F0aW9uXG4gICAgICAgIGlmICh0aGlzLmxpdmVEYXRhU3Bhbikge1xuICAgICAgICAgICAgdGhpcy5saXZlRGF0YVNwYW4uc3R5bGUubGVmdCA9XG4gICAgICAgICAgICAgICAgdGhpcy53cmFwcGVyRGl2LmNsaWVudFdpZHRoIC8gMiAtIDEwMCArIHRoaXMuc2Nyb2xsTGVmdCArICdweCc7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBSZXBsYWNlIGxlZnQgcGFkZGluZyBjZWxsc1xuICAgICAgICBbLi4udGhpcy50Qm9keUxlZnRQYWRkaW5nRWxlbWVudHMsIHRoaXMudEhlYWRMZWZ0UGFkZGluZ10uZm9yRWFjaChlbGVtZW50ID0+IHtcbiAgICAgICAgICAgIGVsZW1lbnQuc3R5bGUubGVmdCA9IHRoaXMuc2Nyb2xsTGVmdCArICdweCc7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIFRPRE8gLSBGSVhcbiAgICAgICAgLy8gTGVzIMOpbMOpbWVudHMgZGUgZHJvaXRlIHNvbnQgZMOpY2Fsw6lzIGRlIDIycHggbG9yc3F1ZSBkZSBub3V2ZWxsZXMgbGlnbmVzIHNvbnRcbiAgICAgICAgLy8gdmlzaWJsZSAoY2hpbGRyZW4gb3UgZGV0YWlscylcblxuICAgICAgICAvLyBSZXBsYWNlIHJpZ2h0IHBhZGRpbmcgY2VsbHNcbiAgICAgICAgWy4uLnRoaXMudEJvZHlSaWdodFBhZGRpbmdFbGVtZW50cywgdGhpcy50SGVhZFJpZ2h0UGFkZGluZ10uZm9yRWFjaChlbGVtZW50ID0+IHtcbiAgICAgICAgICAgIGVsZW1lbnQuc3R5bGUucmlnaHQgPVxuICAgICAgICAgICAgICAgIE1hdGgubWF4KDAsIHRoaXMud3JhcHBlclNjcm9sbE9mZnNldCAtIHRoaXMuc2Nyb2xsTGVmdCAtIHRoaXMudEJvZHlTY3JvbGxiYXJXaWR0aCkgKyAncHgnO1xuICAgICAgICB9KTtcblxuICAgICAgICAvLyBSZXBsYWNlIGZpcnN0IGNlbGxzICYgYWRkIHJpZ2h0IHNoYWRvd3NcbiAgICAgICAgaWYgKHRoaXMucHJvcHMuc3RpY2t5KSB7XG4gICAgICAgICAgICBjb25zdCBzaGFkb3dSaWdodCA9ICcxcHggMHB4IDBweCAwcHggcmdiYSgxMjgsIDEyOCwgMTI4LCAwLjMyKSc7XG4gICAgICAgICAgICBbLi4udGhpcy50Qm9keUZpcnN0RWxlbWVudHMsIHRoaXMudEhlYWRGaXJzdF0uZm9yRWFjaChlbGVtZW50ID0+IHtcbiAgICAgICAgICAgICAgICBlbGVtZW50LnN0eWxlLmxlZnQgPSB0aGlzLnNjcm9sbExlZnQgKyAncHgnO1xuICAgICAgICAgICAgICAgIGVsZW1lbnQuc3R5bGVbJ2JveC1zaGFkb3cnXSA9IHRoaXMuc2Nyb2xsTGVmdCA+IDAgPyBzaGFkb3dSaWdodCA6ICdub25lJztcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gUmVwbGFjZSBjZW50ZXJlZCBlbGVtZW50cyAoZWxlbWVudHMgd2lkdGggc2hvdWxkIGJlIDUwJSBvZiB3cmFwcGVyKVxuICAgICAgICBpZiAodGhpcy50Rm9vdENlbnRlcmVkRGl2KSB7XG4gICAgICAgICAgICB0aGlzLnRGb290Q2VudGVyZWREaXYuc3R5bGUubGVmdCA9XG4gICAgICAgICAgICAgICAgTWF0aC5yb3VuZCh0aGlzLndyYXBwZXJEaXYub2Zmc2V0V2lkdGggLyA0KSArIHRoaXMuc2Nyb2xsTGVmdCArICdweCc7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBSZXBsYWNlIHN0aWNreVJvd0NvbnRlbnRcbiAgICAgICAgY29uc3QgdGFibGVCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYCR7dGhpcy5wcm9wcy50YWJJZH0tYm9keWApO1xuICAgICAgICBjb25zdCBzdGlja3lSb3dDb250ZW50RGl2ID0gdGFibGVCb2R5LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ3N0aWNreVJvd0NvbnRlbnQnKTtcbiAgICAgICAgaWYgKHN0aWNreVJvd0NvbnRlbnREaXYubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlLmZpbHRlci5jYWxsKHN0aWNreVJvd0NvbnRlbnREaXYsIGRpdiA9PiB7XG4gICAgICAgICAgICAgICAgZGl2LnN0eWxlLmxlZnQgPSBgJHt0aGlzLndyYXBwZXJEaXYuc2Nyb2xsTGVmdCArXG4gICAgICAgICAgICAgICAgICAgICh0aGlzLnByb3BzLnNlbGVjdGFibGUgPyAyNSA6IDApfXB4YDtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaGFuZGxlUmVxdWVzdExpdmVEYXRhcygpIHtcbiAgICAgICAgdGhpcy5zY3JvbGxUb1RvcCgpO1xuICAgICAgICB0aGlzLnByb3BzLnJlcXVlc3RMaXZlRGF0YXMoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTY3JvbGwgYmFjayB0byB0YWJsZSB0b3BcbiAgICAgKi9cbiAgICBzY3JvbGxUb1RvcCgpIHtcbiAgICAgICAgLy8gSGlkZSBiYWNrIHRvIHRvcCBidXR0b25cbiAgICAgICAgdGhpcy5iYWNrVG9Ub3BCdXR0b25bJ3N0eWxlJ10udG9wID0gLTk5OTk5ICsgJ3B4JztcblxuICAgICAgICAvLyBTZXQgc2Nyb2xsIHRvcCB0byAwXG4gICAgICAgIHRoaXMudEJvZHkuc2Nyb2xsVG9wID0gMDtcbiAgICAgICAgdGhpcy5zY3JvbGxUb3AgPSAwO1xuICAgIH1cblxuICAgIG9wZW5PcmRlckNvbHVtbnNNZW51KGV2ZW50KSB7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgICAgb3JkZXJDb2x1bW5zQW5jaG9yOiBldmVudC5jdXJyZW50VGFyZ2V0LFxuICAgICAgICAgICAgb3JkZXJDb2x1bW5zTWVudU9wZW46IHRydWUsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGNsb3NlT3JkZXJDb2x1bW5zTWVudSgpIHtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgICBvcmRlckNvbHVtbnNBbmNob3I6IG51bGwsXG4gICAgICAgICAgICBvcmRlckNvbHVtbnNNZW51T3BlbjogZmFsc2UsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgZnVuY3Rpb24gaXMgcGFzcyB0byB0YWJsZSBib2R5IHRvIGJlIGFkdmlzZWQgd2hlbiBuZXcgcm93cyBhcmUgZHluYW1pY2FsbHkgYWRkZWQgKGV4IGRldGFpbCByb3dzKVxuICAgICAqIHdlIGNhbiB0aGVuIHVwZGF0ZSBvdXIgbGlzdCBvZiBmbG9hdGluZyBib2R5IGVsZW1lbnRzIHJlZnNcbiAgICAgKiovXG4gICAgYWRkTmV3Um93UmVmcyA9ICgpID0+IHtcbiAgICAgICAgLy8gZGVsYXllZCByZWZzIGdldHRpbmcgdG8gbGV0IHRpbWUgYXQgbmV3IHJvd3MgdG8gYnVpbGQgdXBcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUZsb2F0aW5nQm9keUVsZW1lbnRSZWZzKCk7XG4gICAgICAgICAgICB0aGlzLnBsYWNlSG9yaXpvbnRhbEZsb2F0aW5nRWxlbWVudCgpO1xuICAgICAgICB9LCAxMCk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIFNjcm9sbCBqdXNxdSdhdSBwcm9jaGFpbiBzdGlja1Jvd1xuICAgICAqXG4gICAgICogQHBhcmFtIHN0aWNreVJvd0luZGV4XG4gICAgICovXG4gICAgaGFuZGxlTmV4dFN0aWNreVJvdyhzdGlja3lSb3dJbmRleCkge1xuICAgICAgICBpZiAodGhpcy5ncm91cEJ5Um93c1Bvc2l0aW9ucy5sZW5ndGggLSAxID4gc3RpY2t5Um93SW5kZXgpIHtcbiAgICAgICAgICAgIGNvbnN0IHRhYmxlQm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGAke3RoaXMucHJvcHMudGFiSWR9LWJvZHlgKTtcbiAgICAgICAgICAgIHRhYmxlQm9keS5zY3JvbGxUb3AgPSB0aGlzLmdyb3VwQnlSb3dzUG9zaXRpb25zW3N0aWNreVJvd0luZGV4ICsgMV07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZW5kZXIoKSB7XG4gICAgICAgIGNvbnN0IHtcbiAgICAgICAgICAgIGNsYXNzZXMsXG4gICAgICAgICAgICB0YWJJZCxcbiAgICAgICAgICAgIGNvbHVtbnMsXG4gICAgICAgICAgICBvcmRlcmVkQ29sdW1ucyxcbiAgICAgICAgICAgIGRhdGFTb3VyY2UsXG4gICAgICAgICAgICBvcmRlcmFibGUsXG4gICAgICAgICAgICBvbkNvbHVtbnNPcmRlclVwZGF0ZSxcbiAgICAgICAgICAgIG1hbmRhdG9yeUNvbHVtbklkLFxuICAgICAgICAgICAgc2VsZWN0YWJsZSxcbiAgICAgICAgICAgIHNlbGVjdGVkSWRMaXN0LFxuICAgICAgICAgICAgb25Sb3dDbGljayxcbiAgICAgICAgICAgIHNvcnRhYmxlLFxuICAgICAgICAgICAgc29ydGVkQ29sdW1uSWQsXG4gICAgICAgICAgICBzb3J0RGlyZWN0aW9uLFxuICAgICAgICAgICAgb25Tb3J0LFxuICAgICAgICAgICAgZmlsdGVyYWJsZSxcbiAgICAgICAgICAgIG9uRmlsdGVyQ2hhbmdlLFxuICAgICAgICAgICAgaW5maW5pdGVTY3JvbGwsXG4gICAgICAgICAgICBoYXNOZXh0RGF0YXMsXG4gICAgICAgICAgICByZXF1ZXN0TmV4dERhdGFzLFxuICAgICAgICAgICAgY291bnRMaXZlRGF0YXMsXG4gICAgICAgICAgICBkYXRlTG9jYWxlLFxuICAgICAgICAgICAgbnVtYmVyTG9jYWxlLFxuICAgICAgICAgICAgZGVuc2UsXG4gICAgICAgICAgICBoZWlnaHQsXG4gICAgICAgICAgICBzdGlja3ksXG4gICAgICAgICAgICB0cmFuc2xhdGlvbnMsXG4gICAgICAgICAgICB2aWV3LFxuICAgICAgICAgICAgZ3JvdXBCeSxcbiAgICAgICAgICAgIGxvb2t1cENvbHVtbnMsXG4gICAgICAgICAgICBsb2FkaW5nLFxuICAgICAgICAgICAgZml4ZWRDb2x1bW5XaWR0aCxcbiAgICAgICAgICAgIGRpc2FibGVDb250ZXh0TWVudSxcbiAgICAgICAgICAgIGZvb3RlckNvbnRlbnQsXG4gICAgICAgIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgICAgIGNvbnN0IHsgZGF0ZVVwZGF0ZSwgaXNTY3JvbGxUb0JvdHRvbSwgZ3JvdXBCeUlkcyB9ID0gdGhpcy5zdGF0ZTtcblxuICAgICAgICBjb25zdCBoZWFkZXJIZWlnaHQgPSBkZW5zZSA/IGNzdC5DRUxMX0hFQURFUl9IRUlHSFRfREVOU0UgOiBjc3QuQ0VMTF9IRUFERVJfSEVJR0hUO1xuXG4gICAgICAgIGxldCBuYkNvbHVtbnNEaXNwbGF5ZWQgPSAwO1xuICAgICAgICBvcmRlcmVkQ29sdW1ucy5mb3JFYWNoKGNvbHVtbiA9PiB7XG4gICAgICAgICAgICBpZiAoY29sdW1uLmRpc3BsYXllZCAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICBuYkNvbHVtbnNEaXNwbGF5ZWQgKz0gMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtjbGFzc2VzLnJvb3R9PlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgaWQ9e3RhYklkfVxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzZXMudGFibGVXcmFwcGVyfVxuICAgICAgICAgICAgICAgICAgICByZWY9e2RpdiA9PiB0aGlzLndyYXBwZXJEaXYgPSBkaXZ9XG4gICAgICAgICAgICAgICAgICAgIG9uU2Nyb2xsPXt0aGlzLmhhbmRsZUhvcml6b250YWxTY3JvbGx9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8VGFibGUgY2xhc3NOYW1lPXtjbGFzc2VzLnRhYmxlfSBzdHlsZT17eyBoZWlnaHQ6IGhlaWdodCB9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxIaVRhYmxlSGVhZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbnM9e2NvbHVtbnN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3JkZXJlZENvbHVtbnM9e29yZGVyZWRDb2x1bW5zfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFTb3VyY2U9e2RhdGFTb3VyY2V9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0YWJsZT17c2VsZWN0YWJsZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZElkTGlzdD17c2VsZWN0ZWRJZExpc3R9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25TZWxlY3Q9e3RoaXMudG9nZ2xlQWxsfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvcnRhYmxlPXtzb3J0YWJsZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3J0ZWRDb2x1bW5JZD17c29ydGVkQ29sdW1uSWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc29ydERpcmVjdGlvbj17c29ydERpcmVjdGlvbn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvblNvcnQ9e29uU29ydH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJhYmxlPXtmaWx0ZXJhYmxlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uRmlsdGVyQ2hhbmdlPXtvbkZpbHRlckNoYW5nZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcmRlcmFibGU9e29yZGVyYWJsZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNvbHVtbnNPcmRlclVwZGF0ZT17b25Db2x1bW5zT3JkZXJVcGRhdGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFuZGF0b3J5Q29sdW1uSWQ9e21hbmRhdG9yeUNvbHVtbklkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uUmVxdWVzdExpdmVEYXRhcz17dGhpcy5oYW5kbGVSZXF1ZXN0TGl2ZURhdGFzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50TGl2ZURhdGFzPXtjb3VudExpdmVEYXRhc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlTG9jYWxlPXtkYXRlTG9jYWxlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlckxvY2FsZT17bnVtYmVyTG9jYWxlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlbnNlPXtkZW5zZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9e2hlYWRlckhlaWdodH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGlja3k9e3N0aWNreX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3PXt2aWV3fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbGF0aW9ucz17dHJhbnNsYXRpb25zfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvb2t1cENvbHVtbnM9e2xvb2t1cENvbHVtbnN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZml4ZWRDb2x1bW5XaWR0aD17Zml4ZWRDb2x1bW5XaWR0aH1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8SGlUYWJsZUJvZHlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJJZD17dGFiSWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1ucz17Y29sdW1uc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcmRlcmVkQ29sdW1ucz17b3JkZXJlZENvbHVtbnN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVNvdXJjZT17ZGF0YVNvdXJjZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RhYmxlPXtzZWxlY3RhYmxlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkSWRMaXN0PXtzZWxlY3RlZElkTGlzdH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3J0ZWRDb2x1bW5JZD17c29ydGVkQ29sdW1uSWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25TZWxlY3Q9e3RoaXMudG9nZ2xlSXRlbX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlVXBkYXRlPXtkYXRlVXBkYXRlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVMb2NhbGU9e2RhdGVMb2NhbGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyTG9jYWxlPXtudW1iZXJMb2NhbGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVuc2U9e2RlbnNlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD17aGVpZ2h0IC0gaGVhZGVySGVpZ2h0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0aWNreT17c3RpY2t5fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXc9e3ZpZXd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25Sb3dDbGljaz17b25Sb3dDbGlja31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvblNjcm9sbD17dGhpcy5oYW5kbGVWZXJ0aWNhbFNjcm9sbH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGROZXdSb3dSZWZzPXt0aGlzLmFkZE5ld1Jvd1JlZnN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRpb25zPXt0cmFuc2xhdGlvbnN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXBCeT17Z3JvdXBCeX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrTmV4dD17dGhpcy5oYW5kbGVOZXh0U3RpY2t5Um93fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyb3VwQnlJZHM9e2dyb3VwQnlJZHN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9va3VwQ29sdW1ucz17bG9va3VwQ29sdW1uc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2FkaW5nPXtsb2FkaW5nfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpeGVkQ29sdW1uV2lkdGg9e2ZpeGVkQ29sdW1uV2lkdGh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZUNvbnRleHRNZW51PXtkaXNhYmxlQ29udGV4dE1lbnV9XG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAge2luZmluaXRlU2Nyb2xsICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SGlUYWJsZUZvb3RlclNjcm9sbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJJZD17dGFiSWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc05leHREYXRhcz17aGFzTmV4dERhdGFzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0TmV4dERhdGFzPXtyZXF1ZXN0TmV4dERhdGFzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhBdXRvUmVxdWVzdD17M31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNTY3JvbGxUb0JvdHRvbT17aXNTY3JvbGxUb0JvdHRvbX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRpb25zPXt0cmFuc2xhdGlvbnN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICB7IWluZmluaXRlU2Nyb2xsICYmIGZvb3RlckNvbnRlbnQgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxIaVRhYmxlRm9vdGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5iQ29sdW1uc0Rpc3BsYXllZD17bmJDb2x1bW5zRGlzcGxheWVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3PXt2aWV3fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2Zvb3RlckNvbnRlbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9IaVRhYmxlRm9vdGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgPC9UYWJsZT5cblxuICAgICAgICAgICAgICAgICAgICA8SGlUYWJsZUNvbnRleHRNZW51XG4gICAgICAgICAgICAgICAgICAgICAgICB0YWJJZD17dGFiSWR9XG4gICAgICAgICAgICAgICAgICAgICAgICBvblNlYXJjaD17dGhpcy5wcm9wcy5vblNlYXJjaH1cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uUmVkaXJlY3Q9e3RoaXMucHJvcHMub25SZWRpcmVjdH1cbiAgICAgICAgICAgICAgICAgICAgLz5cblxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YGJhY2stdG8tdG9wLWJ1dHRvbiAke2NsYXNzZXMuYmFja1RvVG9wQnV0dG9uQ29udGFpbmVyfWB9PlxuICAgICAgICAgICAgICAgICAgICAgICAgPEhpQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cInJhaXNlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzZXMuYmFja1RvVG9wQnV0dG9ufVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHRoaXMuc2Nyb2xsVG9Ub3AoKX1cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QXJyb3dVcCBjbGFzc05hbWU9e2NsYXNzZXMuYmFja1RvVG9wQnV0dG9uQXJyb3d9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3RyYW5zbGF0aW9ucy5iYWNrX3RvX3RvcH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QXJyb3dVcCBjbGFzc05hbWU9e2NsYXNzZXMuYmFja1RvVG9wQnV0dG9uQXJyb3d9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L0hpQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICApO1xuICAgIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgd2l0aFN0eWxlcyhzdHlsZXMsIHsgd2l0aFRoZW1lOiB0cnVlLCBuYW1lOiAnSG11aUhpVGFibGUnIH0pKEhpVGFibGUpO1xuIl19
31205
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9IaVRhYmxlL0hpVGFibGUuanMiXSwibmFtZXMiOlsiY3N0Iiwic3R5bGVzIiwicm9vdCIsInBvc2l0aW9uIiwiYmFja2dyb3VuZENvbG9yIiwidGhlbWUiLCJwYWxldHRlIiwiYmFja2dyb3VuZDMiLCJ0YWJsZVdyYXBwZXIiLCJvdmVyZmxvd1giLCJvdmVyZmxvd1kiLCJmaWx0ZXIiLCJ0b3AiLCJsZWZ0IiwiY3Vyc29yIiwidGFibGUiLCJ3aWR0aCIsIm92ZXJmbG93IiwiYm9yZGVyQ29sbGFwc2UiLCJ6SW5kZXgiLCJiYWNrVG9Ub3BCdXR0b25Db250YWluZXIiLCJ0ZXh0QWxpZ24iLCJoZWlnaHQiLCJiYWNrVG9Ub3BCdXR0b24iLCJiYWNrVG9Ub3BCdXR0b25BcnJvdyIsIm1hcmdpbiIsIk1BTkRBVE9SWV9DT0xVTU5fRVJST1JfTUVTU0FHRSIsIlNPUlRFRF9DT0xVTU5fRVJST1JfTUVTU0FHRSIsIkhpVGFibGUiLCJwcm9wcyIsInN0YXRlIiwiZGF0ZVVwZGF0ZSIsIkRhdGUiLCJub3ciLCJpc1Njcm9sbFRvQm90dG9tIiwiZ3JvdXBCeUlkcyIsImdyb3VwQnkiLCJkYXRhU291cmNlIiwibWFwIiwidmFsdWUiLCJyb3ciLCJkYXRhcyIsImRhdGUiLCJpc0Zpbml0ZSIsInN1YnN0ciIsImhhc093blByb3BlcnR5IiwicHVzaCIsIm9wZW5PcmRlckNvbHVtbnNNZW51IiwiYmluZCIsImNsb3NlT3JkZXJDb2x1bW5zTWVudSIsInRvZ2dsZUl0ZW0iLCJ0b2dnbGVBbGwiLCJzZWxlY3RBbGwiLCJkZXNlbGVjdEFsbCIsImhhbmRsZUhvcml6b250YWxTY3JvbGwiLCJoYW5kbGVWZXJ0aWNhbFNjcm9sbCIsInBsYWNlSG9yaXpvbnRhbEZsb2F0aW5nRWxlbWVudCIsInNjcm9sbFRvVG9wIiwiaGFuZGxlUmVxdWVzdExpdmVEYXRhcyIsImhhbmRsZU5leHRTdGlja3lSb3ciLCJoYW5kbGVTdGlja3lSb3dQb3NpdGlvbnMiLCJ3cmFwcGVyU2Nyb2xsT2Zmc2V0Iiwid3JhcHBlckRpdiIsInNjcm9sbFdpZHRoIiwib2Zmc2V0V2lkdGgiLCJ0SGVhZCIsInF1ZXJ5U2VsZWN0b3IiLCJ0SGVhZExlZnRQYWRkaW5nIiwidEhlYWRSaWdodFBhZGRpbmciLCJ0SGVhZEZpcnN0IiwidEJvZHkiLCJ0Rm9vdCIsInRGb290Q2VudGVyZWREaXYiLCJ1cGRhdGVGbG9hdGluZ0JvZHlFbGVtZW50UmVmcyIsInN0eWxlIiwiTWF0aCIsInJvdW5kIiwiYm90dG9tIiwidXBkYXRlU3RpY2t5Um93c1Bvc2l0aW9uIiwicHJldlByb3BzIiwicHJldlN0YXRlIiwicHJldkNvbnRleHQiLCJvcmRlcmVkQ29sdW1ucyIsImNvbElkIiwidEJvZHlGaXJzdEVsZW1lbnRzIiwicXVlcnlTZWxlY3RvckFsbCIsImxlbmd0aCIsImNvdW50TGl2ZURhdGFzIiwibGl2ZURhdGFTcGFuIiwic2V0U3RhdGUiLCJkZW5zZSIsInNvcnRlZENvbHVtbklkIiwic29ydERpcmVjdGlvbiIsInNjcm9sbFRvcCIsInNjcm9sbEhlaWdodCIsIm9mZnNldEhlaWdodCIsInJvd0hlaWdodCIsIkNFTExfSEVJR0hUX0RFTlNFIiwiQ0VMTF9IRUlHSFQiLCJncm91cEJ5Um93c1Bvc2l0aW9ucyIsInRhYmxlQm9keSIsImRvY3VtZW50IiwiZ2V0RWxlbWVudEJ5SWQiLCJ0YWJJZCIsInN0aWNreVJvd3MiLCJnZXRFbGVtZW50c0J5Q2xhc3NOYW1lIiwiQXJyYXkiLCJwcm90b3R5cGUiLCJjYWxsIiwic3RpY2t5Um93IiwibmV4dFNpYmxpbmciLCJvZmZzZXRUb3AiLCJpdGVtIiwic2VsZWN0ZWRJZExpc3QiLCJpbmNsdWRlcyIsInJvd0lkIiwib25TZWxlY3QiLCJpdGVtSWQiLCJldmVudCIsInRhcmdldCIsIm5vZGVOYW1lIiwic2Nyb2xsTGVmdCIsInNjcm9sbGluZ1VwIiwic2hhZG93Qm90dG9tIiwiTkJfUk9XU19CQUNLX1RPX1RPUCIsImluZGV4IiwiZmFrZVRyIiwiZGlzcGxheSIsIm1heEhlaWdodCIsIm1pbkhlaWdodCIsImNsaWVudFdpZHRoIiwidEJvZHlMZWZ0UGFkZGluZ0VsZW1lbnRzIiwiZm9yRWFjaCIsImVsZW1lbnQiLCJ0Qm9keVJpZ2h0UGFkZGluZ0VsZW1lbnRzIiwicmlnaHQiLCJtYXgiLCJ0Qm9keVNjcm9sbGJhcldpZHRoIiwic3RpY2t5Iiwic2hhZG93UmlnaHQiLCJzdGlja3lSb3dDb250ZW50RGl2IiwiZGl2Iiwic2VsZWN0YWJsZSIsInJlcXVlc3RMaXZlRGF0YXMiLCJvcmRlckNvbHVtbnNBbmNob3IiLCJjdXJyZW50VGFyZ2V0Iiwib3JkZXJDb2x1bW5zTWVudU9wZW4iLCJzdGlja3lSb3dJbmRleCIsImNsYXNzZXMiLCJjb2x1bW5zIiwib3JkZXJhYmxlIiwib25Db2x1bW5zT3JkZXJVcGRhdGUiLCJtYW5kYXRvcnlDb2x1bW5JZCIsIm9uUm93Q2xpY2siLCJzb3J0YWJsZSIsIm9uU29ydCIsImZpbHRlcmFibGUiLCJvbkZpbHRlckNoYW5nZSIsImluZmluaXRlU2Nyb2xsIiwiaGFzTmV4dERhdGFzIiwicmVxdWVzdE5leHREYXRhcyIsImRhdGVMb2NhbGUiLCJudW1iZXJMb2NhbGUiLCJ0cmFuc2xhdGlvbnMiLCJ2aWV3IiwibG9va3VwQ29sdW1ucyIsImxvYWRpbmciLCJmaXhlZENvbHVtbldpZHRoIiwiZGlzYWJsZUNvbnRleHRNZW51IiwiZm9vdGVyQ29udGVudCIsImRldGFpbFJvd3NPcHRpb25zIiwiaGVhZGVySGVpZ2h0IiwiQ0VMTF9IRUFERVJfSEVJR0hUX0RFTlNFIiwiQ0VMTF9IRUFERVJfSEVJR0hUIiwibmJDb2x1bW5zRGlzcGxheWVkIiwiY29sdW1uIiwiZGlzcGxheWVkIiwiYWRkTmV3Um93UmVmcyIsIm9uU2VhcmNoIiwib25SZWRpcmVjdCIsImJhY2tfdG9fdG9wIiwiQ29tcG9uZW50IiwicHJvcFR5cGVzIiwib2JqZWN0IiwiaXNSZXF1aXJlZCIsIm51bWJlciIsImFycmF5Iiwic3RyaW5nIiwiYm9vbCIsIm5vZGUiLCJmdW5jIiwib25lT2YiLCJkZWZhdWx0UHJvcHMiLCJsb2FkX21vcmUiLCJnZXRfdGhlX25fbmV3X2l0ZW1zIiwiY2hvb3NlX2FuZF9vcmdhbml6ZV9jb2x1bW5zIiwic2VhcmNoIiwidGltZSIsImJ1dHRvbiIsIm5leHQiLCJ3cmFwcGVyV2lkdGgiLCJzZXRUaW1lb3V0Iiwid2l0aFRoZW1lIiwibmFtZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7O0FBRUE7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7SUFBWUEsRzs7QUFDWjs7Ozs7Ozs7Ozs7Ozs7OztBQUVPLElBQU1DLDBCQUFTLFNBQVRBLE1BQVM7QUFBQSxXQUFVO0FBQzVCQyxjQUFNO0FBQ0ZDLHNCQUFVLFVBRFI7QUFFRkMsNkJBQWlCQyxNQUFNQyxPQUFOLENBQWNDO0FBRjdCLFNBRHNCO0FBSzVCQyxzQkFBYztBQUNWQyx1QkFBVyxNQUREO0FBRVZDLHVCQUFXO0FBRkQsU0FMYztBQVM1QkMsZ0JBQVE7QUFDSlIsc0JBQVUsVUFETjtBQUVKUyxpQkFBSyxDQUZEO0FBR0pDLGtCQUFNLENBSEY7QUFJSkMsb0JBQVE7QUFKSixTQVRvQjtBQWU1QkMsZUFBTztBQUNIWixzQkFBVSxVQURQO0FBRUhhLG1CQUFPLE1BRko7QUFHSEMsc0JBQVUsUUFIUDtBQUlIQyw0QkFBZ0IsVUFKYjtBQUtIZCw2QkFBaUJDLE1BQU1DLE9BQU4sQ0FBY0MsV0FMNUI7QUFNSFksb0JBQVE7QUFOTCxTQWZxQjtBQXVCNUJDLGtDQUEwQjtBQUN0QmpCLHNCQUFVLFVBRFk7QUFFdEJhLG1CQUFPLE1BRmU7QUFHdEJLLHVCQUFXLFFBSFc7QUFJdEJDLG9CQUFRLEVBSmM7QUFLdEJWLGlCQUFLLENBQUM7QUFMZ0IsU0F2QkU7QUE4QjVCVyx5QkFBaUI7QUFDYkosb0JBQVE7QUFESyxTQTlCVztBQWlDNUJLLDhCQUFzQjtBQUNsQkYsb0JBQVEsRUFEVTtBQUVsQk4sbUJBQU8sRUFGVztB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ckU7QUFDSDs7QUFFRCxlQUFLTix3QkFBTCxHQUFnQyxPQUFLN0QsS0FBTCxDQUFXZSxnQkFBWCxDQUM1QixnREFENEIsQ0FBaEM7QUFHQSxlQUFLaUQseUJBQUwsR0FBaUMsT0FBS2hFLEtBQUwsQ0FBV2UsZ0JBQVgsQ0FDN0IseURBRDZCLENBQWpDOztBQUlBLGVBQUtELGtCQUFMLEdBQTBCLE9BQUtkLEtBQUwsQ0FBV2UsZ0JBQVgsQ0FBNEIsb0JBQTVCLENBQTFCO0FBQ0gsSzs7U0FrUkQ0RixhLEdBQWdCLFlBQU07QUFDbEI7QUFDQXdCLG1CQUFXLFlBQU07QUFDYixtQkFBS2hJLDZCQUFMO0FBQ0EsbUJBQUtqQiw4QkFBTDtBQUNILFNBSEQsRUFHRyxFQUhIO0FBSUgsSzs7O2tCQThLVSx3QkFBV3ZELE1BQVgsRUFBbUIsRUFBRXlNLFdBQVcsSUFBYixFQUFtQkMsTUFBTSxhQUF6QixFQUFuQixFQUE2RC9LLE9BQTdELEMiLCJmaWxlIjoiSGlUYWJsZS5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS92ZG9zc2FudG9zL2Rldi9oaXBheS1tYXRlcmlhbC11aSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IFRhYmxlIGZyb20gJ21hdGVyaWFsLXVpL1RhYmxlJztcbmltcG9ydCBBcnJvd1VwIGZyb20gJ21kaS1tYXRlcmlhbC11aS9BcnJvd1VwJztcbmltcG9ydCBpc1JlcXVpcmVkSWYgZnJvbSAncmVhY3QtcHJvcHR5cGUtY29uZGl0aW9uYWwtcmVxdWlyZSc7XG5pbXBvcnQgSGlCdXR0b24gZnJvbSAnLi4vSGlCdXR0b24nO1xuXG5pbXBvcnQgeyB3aXRoU3R5bGVzIH0gZnJvbSAnLi4vc3R5bGVzJztcbmltcG9ydCBIaVRhYmxlSGVhZCBmcm9tICcuL0hpVGFibGVIZWFkJztcbmltcG9ydCBIaVRhYmxlQm9keSBmcm9tICcuL0hpVGFibGVCb2R5JztcbmltcG9ydCBIaVRhYmxlRm9vdGVyU2Nyb2xsIGZyb20gJy4vSGlUYWJsZUZvb3RlclNjcm9sbCc7XG5pbXBvcnQgSGlUYWJsZUZvb3RlciBmcm9tICcuL0hpVGFibGVGb290ZXInO1xuaW1wb3J0ICogYXMgY3N0IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCBIaVRhYmxlQ29udGV4dE1lbnUgZnJvbSAnLi9IaVRhYmxlQ29udGV4dE1lbnUnO1xuXG5leHBvcnQgY29uc3Qgc3R5bGVzID0gdGhlbWUgPT4gKHtcbiAgICByb290OiB7XG4gICAgICAgIHBvc2l0aW9uOiAncmVsYXRpdmUnLFxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lLnBhbGV0dGUuYmFja2dyb3VuZDMsXG4gICAgfSxcbiAgICB0YWJsZVdyYXBwZXI6IHtcbiAgICAgICAgb3ZlcmZsb3dYOiAnYXV0bycsXG4gICAgICAgIG92ZXJmbG93WTogJ2hpZGRlbicsXG4gICAgfSxcbiAgICBmaWx0ZXI6IHtcbiAgICAgICAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gICAgICAgIHRvcDogMixcbiAgICAgICAgbGVmdDogMixcbiAgICAgICAgY3Vyc29yOiAncG9pbnRlcicsXG4gICAgfSxcbiAgICB0YWJsZToge1xuICAgICAgICBwb3NpdGlvbjogJ3JlbGF0aXZlJyxcbiAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgICAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxuICAgICAgICBib3JkZXJDb2xsYXBzZTogJ2NvbGxhcHNlJyxcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS5wYWxldHRlLmJhY2tncm91bmQzLFxuICAgICAgICB6SW5kZXg6IDEwLFxuICAgIH0sXG4gICAgYmFja1RvVG9wQnV0dG9uQ29udGFpbmVyOiB7XG4gICAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICB0ZXh0QWxpZ246ICdjZW50ZXInLFxuICAgICAgICBoZWlnaHQ6IDQ4LFxuICAgICAgICB0b3A6IC05OTk5OSxcbiAgICB9LFxuICAgIGJhY2tUb1RvcEJ1dHRvbjoge1xuICAgICAgICB6SW5kZXg6IDExLFxuICAgIH0sXG4gICAgYmFja1RvVG9wQnV0dG9uQXJyb3c6IHtcbiAgICAgICAgaGVpZ2h0OiAxOCxcbiAgICAgICAgd2lkdGg6IDE4LFxuICAgICAgICBwb3NpdGlvbjogJ3JlbGF0aXZlJyxcbiAgICAgICAgdG9wOiAtMixcbiAgICAgICAgbWFyZ2luOiAyLFxuICAgIH0sXG59KTtcblxuZXhwb3J0IGNvbnN0IE1BTkRBVE9SWV9DT0xVTU5fRVJST1JfTUVTU0FHRSA9XG4gICAgJ1ZvdXMgZGV2ZXogc2Fpc2lyIGxhIHByb3ByacOpdMOpIFwibWFuZGF0b3J5Q29sdW1uSWRcIiBwb3VyIGxlcyB0YWJsZWF1eCBcIm9yZGVyYWJsZVwiJztcbmV4cG9ydCBjb25zdCBTT1JURURfQ09MVU1OX0VSUk9SX01FU1NBR0UgPVxuICAgICdWb3VzIGRldmV6IHNhaXNpciBsYSBwcm9wcmnDqXTDqSBcInNvcnRlZENvbHVtbklkXCIgcG91ciBsZXMgdGFibGVhdXggXCJzb3J0YWJsZVwiJztcblxuLyoqXG4gKiBEaXNwbGF5IGEgbGlzdCBvZiBlbGVtZW50cyBpbiBhIHRhYmxlXG4gKiBUaGUgY2xpY2sgb24gRmlsdGVyVmFyaWFudCBvcGVucyBhIG1lbnUgdGhhdCBhbGxvd3MgdGhlIHVzZXJcbiAqIHRvIGZpbHRlciBieSB2YWx1ZSBvciB0byBvcmRlciBieSBhIHNwZWNpZmljIGNvbHVtblxuICpcbiAqIFJlbmRlcmVyIGJlaGF2aW9yczpcbiAqIC0gV2lkdGhzOlxuICogICAgICAtIGFsbCBjZWxscyB0eXBlcyBoYXZlIGRlZmF1bHQgd2lkdGggc2l6ZSAocHgpIGZvciBlYWNoIGtpbmQgb2YgdmlldyAoTC9NL1MpLlxuICogICAgICAtIGlmIHZpZXcgaXNuJ3Qgc2V0IHdlIHVzZSB0aGUgbGFyZ2VzdCBvbmUgKGxhcmdlKS5cbiAqICAgICAgLSBjZWxsIHdpZHRoIGNhbiBiZSBvdmVycmlkZW4gYnkgY29sdW1uJ3MgcHJvcHMuXG4gKiAgICAgIC0gaWYgdGhlcmUgaXMgbm90IGVub3VnaCBzcGFjZSB0byByZW5kZXIgYWxsIGNlbGxzLFxuICogICAgICAgIHdlIHVzZSBob3Jpem9udGFsIHNjcm9sbCBhbmQgY2VsbHMgd2lkdGggYXJlIGZpeGVkXG4gKiAgICAgIC0gaWYgdGhlcmUgaXMgZW5vdWdoIHNwYWNlLCBubyBzY3JvbGwgYW5kIG9ubHkgdGhlIGZpcnN0IGNlbGwgKGNvbHVtbiksXG4gKiAgICAgIHdoaWNoIGlzIG5vdCBleHBsaWNpdGx5IHNldCBhcyB1bmZpeGVkIChmaXhlZFdpZHRoID0gZmFsc2UpLFxuICogICAgICBoYXMgbm90IGZpeGVkIHdpZHRoIGFuZCBtYXkgZW5sYXJnZSBoaXMgd2lkdGggdG8gZml0IGF2YWlsYWJsZSBzcGFjZS5cbiAqXG4gKiAtIEZpeGVkIEhlYWRlcjpcbiAqICAgICAgLSBoZWFkZXIgcm93cyBzaG91bGQgYmUgZml4ZWQgYW5kIGFsd2F5cyBiZSB2aXNpYmxlIG9uIGJvZHkgc2Nyb2xsLlxuICogICAgICAtIHZlcnRpY2FsIHNjcm9sbGJhciBzaG91bGQgYmUgaGlkZGVuXG4gKiAgICAgIC0gaWYgbmJSb3dzICogY2VsbEhlaWdodCA+IHRhYmxlSGVpZ2h0LFxuICogICAgICAgIHdlIHZpcnR1YWxseSBlbmxhcmdlIHRoZSB0YWJsZSB0aGVuIGNyb3AgYXJiaXRyYXJ5IHdpZHRoIHRvIGhpZGUgdGhlIHNjcm9sbGJhci5cbiAqICAgICAgYXMgZWFjaCBicm93c2VycyBtYXkgaGF2ZSBkaWZmZXJlbnQgc2Nyb2xsYmFyIHdpZHRocyxcbiAqICAgICAgaXQgbWF5IHRyb3VibGUgY29sdW1uIGhlYWRlciBhbGlnbm1lbnQuXG4gKi9cbmNsYXNzIEhpVGFibGUgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICAgIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBVc2VmdWwgdG8gZXh0ZW5kIHRoZSBzdHlsZSBhcHBsaWVkIHRvIGNvbXBvbmVudHMuXG4gICAgICAgICAqL1xuICAgICAgICBjbGFzc2VzOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgICAgICAvKipcbiAgICAgICAgICogQ29sb25uZXMgZHUgdGFibGVhdSAobGFiZWwsIGxhcmdldXIsIGRvbm7DqWVzLCAuLi4gKVxuICAgICAgICAgKi9cbiAgICAgICAgY29sdW1uczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgICAgICAvKipcbiAgICAgICAgICogTm9tYnJlIGRlIG5vdXZlbGxlcyBkb25uw6llcyBkaXNwb25pYmxlcyAobGl2ZSlcbiAgICAgICAgICovXG4gICAgICAgIGNvdW50TGl2ZURhdGFzOiBQcm9wVHlwZXMubnVtYmVyLFxuICAgICAgICAvKipcbiAgICAgICAgICogVGFibGVhdSBkZXMgZG9ubsOpZXNcbiAgICAgICAgICovXG4gICAgICAgIGRhdGFTb3VyY2U6IFByb3BUeXBlcy5hcnJheS5pc1JlcXVpcmVkLFxuICAgICAgICAvKipcbiAgICAgICAgICogTG9jYWxlIHV0aWxpc8OpIHBvdXIgbGUgZm9ybWF0IGRlcyBkYXRlc1xuICAgICAgICAgKi9cbiAgICAgICAgZGF0ZUxvY2FsZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIE9wdGlvbnMgdXRpbGlzw6llcyBwb3VyIGTDqWNyaXJlIGxlIGNvbXBvcnRlbWVudCBkZSBsaWduZXMgZGUgZMOpdGFpbHNcbiAgICAgICAgICogZXg6IHtcbiAgICAgICAgICogICAgIHBheW1lbnRfb3BlcmF0aW9uOiB7XG4gICAgICAgICAqICAgICAgICAgYW5jaG9yOiAndHJhbnNhY3Rpb25faWQnXG4gICAgICAgICAqICAgICB9XG4gICAgICAgICAqIH1cbiAgICAgICAgICogZGFucyBjZXQgZXhlbXBsZSwgb24gdmV1dCBxdWUgbGVzIGxpZ25lcyBkZSBkw6l0YWlscyBkZSB0eXBlIHBheW1lbnRfb3BlcmF0aW9uXG4gICAgICAgICAqIHNvaWVudCBhZmZpY2hhYmxlIMOgIHBhcnRpciBkJ3VuIGNoaXAgYnV0dG9uIGRhbnMgbGVzIGNlbGx1bGVzIHRyYW5zYWN0aW9uX2lkXG4gICAgICAgICAqL1xuICAgICAgICBkZXRhaWxSb3dzT3B0aW9uczogUHJvcFR5cGVzLm9iamVjdCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIERlbnNpdMOpIGQnYWZmaWNoYWdlIChqb3VlIHN1ciBsYSBoYXV0ZXVyIGRlcyBsaWduZXMpXG4gICAgICAgICAqL1xuICAgICAgICBkZW5zZTogUHJvcFR5cGVzLmJvb2wsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBBY3RpdmUvZMOpc2FjdGl2ZSBsZSBtZW51IGNvbnRleHR1ZWwgYXUgY2xpYyBkcm9pdCBzdXIgbGVzIGNlbGx1bGVzIGR1IHRhYmxlYXVcbiAgICAgICAgICovXG4gICAgICAgIGRpc2FibGVDb250ZXh0TWVudTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEFjdGl2ZSBsZSBmaWx0cmUgc3VyIGxlcyBjb2xvbm5lcyBmaWx0cmFibGVzXG4gICAgICAgICAqL1xuICAgICAgICBmaWx0ZXJhYmxlOiBQcm9wVHlwZXMuYm9vbCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEZpeGUgbGEgdGFpbGxlIGRlcyBjb2xvbm5lcyBzZWxvbiBsZSB0eXBlIGRlIHZ1ZVxuICAgICAgICAgKiBTaW5vbiBsZXMgY29sb25uZXMgcydhZGFwdGVudCDDoCBsJ2VzcGFjZSBkaXNwb25pYmxlXG4gICAgICAgICAqL1xuICAgICAgICBmaXhlZENvbHVtbldpZHRoOiBQcm9wVHlwZXMuYm9vbCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEFqb3V0ZSB1biBmb290ZXIgYXZlYyBsZSBjb250ZW51IGZvb3RlckNvbnRlbnQgw6AgbCdpbnTDqXJpZXVyXG4gICAgICAgICAqL1xuICAgICAgICBmb290ZXJDb250ZW50OiBQcm9wVHlwZXMubm9kZSxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIElkIGRlIGxhIGNvbG9ubmUgcGFyIGxhcXVlbGxlIHNvbnQgcmVncm91cMOpIGxlcyDDqWzDqW1lbnRzXG4gICAgICAgICAqL1xuICAgICAgICBncm91cEJ5OiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgICAvKipcbiAgICAgICAgICogQWpvdXRlIGxlIGxvYWRlciBldCBsZSByZXF1ZXN0TmV4dERhdGFzIGVuIGZpbiBkZSB0YWJsZWF1IChzaSBpbmZpbml0ZVNjcm9sbCBhY3RpdsOpKVxuICAgICAgICAgKi9cbiAgICAgICAgaGFzTmV4dERhdGFzOiBQcm9wVHlwZXMuYm9vbCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEhhdXRldXIgZHUgdGFibGVhdSAocHgpXG4gICAgICAgICAqL1xuICAgICAgICBoZWlnaHQ6IFByb3BUeXBlcy5udW1iZXIsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBBam91dGUgbCdpbmZpbml0ZSBzY3JvbGxcbiAgICAgICAgICovXG4gICAgICAgIGluZmluaXRlU2Nyb2xsOiBQcm9wVHlwZXMuYm9vbCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIMOJdGF0IGR1IHRhYmxlYXUgZW4gY291cnMgZGUgY2hhcmdlbWVudCBkZXMgZG9ubsOpZXNcbiAgICAgICAgICovXG4gICAgICAgIGxvYWRpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgICAgICAvKipcbiAgICAgICAgICogSWRlbnRpZmlhbnQgZGUgbGEgb3UgZGVzIGNvbG9ubmVzIHN1ciBsYS9sZXNxdWVsbGVzIGlsIHkgYSB1bmUgJ2xvb2t1cCcgc2VhcmNoXG4gICAgICAgICAqL1xuICAgICAgICBsb29rdXBDb2x1bW5zOiBQcm9wVHlwZXMuYXJyYXksXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBQb3VyIGxlcyB0YWJsZWF1eCBcIm9yZGVyYWJsZVwiIHVuaXF1ZW1lbnQgOiBJZCBkZSBsYSBjb2xvbm5lIG9ibGlnYXRvaXJlLFxuICAgICAgICAgKiBlbGxlIHNlcmEgdG91am91cnMgYWZmaWNow6llIGRhbnMgbGUgdGFibGVhdSBldCBuZSBwb3VycmEgcGFzIMOqdHJlIGNhY2jDqWUuXG4gICAgICAgICAqL1xuICAgICAgICBtYW5kYXRvcnlDb2x1bW5JZDogaXNSZXF1aXJlZElmKFxuICAgICAgICAgICAgUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgICAgICAgIHByb3BzID0+IHByb3BzLmhhc093blByb3BlcnR5KCdvcmRlcmFibGUnKSAmJiBwcm9wcy5vcmRlcmFibGUgPT09IHRydWUsXG4gICAgICAgICAgICBNQU5EQVRPUllfQ09MVU1OX0VSUk9SX01FU1NBR0UsXG4gICAgICAgICksXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBMb2NhbGUgdXRpbGlzw6kgcG91ciBsZSBmb3JtYXQgZGVzIG5vbWJyZXNcbiAgICAgICAgICovXG4gICAgICAgIG51bWJlckxvY2FsZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEZvbmN0aW9uIGRlIGNhbGxiYWNrIHF1aSBwcmVuZCBlbiBwYXJhbcOodHJlIGxlIHRhYmxlYXUgZGVzIGNvbG9ubmVzIG1pcyDDoCBqb3VyLlxuICAgICAgICAgKi9cbiAgICAgICAgb25Db2x1bW5zT3JkZXJVcGRhdGU6IFByb3BUeXBlcy5mdW5jLFxuICAgICAgICAvKipcbiAgICAgICAgICogRm9uY3Rpb24gZGUgY2FsbGJhY2sgc3VyIGxlIGZpbHRyZSBkJ3VuZSBjb2xvbm5lXG4gICAgICAgICAqIFBhc3NlIGwnaWQgZGUgbGEgY29sb25uZSBldCBsYSBsaXN0ZSBkZXMgaWQgZGVzIMOpbMOpbWVudHMgaW5jbHVzXG4gICAgICAgICAqL1xuICAgICAgICBvbkZpbHRlckNoYW5nZTogUHJvcFR5cGVzLmZ1bmMsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBGb25jdGlvbiBkZSBjYWxsYmFjayBhcHBlbMOpZSBhdSBjbGljIHN1ciBsJ2l0ZW0gcmVkaXJlY3Rpb25cbiAgICAgICAgICogZHUgbWVudSBjb250ZXh0dWVsIG91dmVydCBhdSBjbGljIGRyb2l0XG4gICAgICAgICAqXG4gICAgICAgICAqIEBwYXJhbSB7aW50fSBpZFxuICAgICAgICAgKi9cbiAgICAgICAgb25SZWRpcmVjdDogUHJvcFR5cGVzLmZ1bmMsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBGb25jdGlvbiBkZSBjYWxsYmFjayBhdSBjbGljayBzdXIgdW5lIGxpZ25lXG4gICAgICAgICAqIFBhc3NlIGwnZWxlbWVudCAocm93KVxuICAgICAgICAgKi9cbiAgICAgICAgb25Sb3dDbGljazogUHJvcFR5cGVzLmZ1bmMsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBGb25jdGlvbiBkZSBjYWxsYmFjayBhcHBlbMOpZSBhdSBjbGljIHN1ciBsZXMgaXRlbXMgZGUgcmVjaGVyY2hlXG4gICAgICAgICAqIGR1IG1lbnUgY29udGV4dHVlbCBvdXZlcnQgYXUgY2xpYyBkcm9pdFxuICAgICAgICAgKlxuICAgICAgICAgKiBAcGFyYW0ge3N0cmluZ30gc2VhcmNoZWQgZmllbGRcbiAgICAgICAgICogQHBhcmFtIHtzdHJpbmd9IHNlYXJjaGVkIHZhbHVlXG4gICAgICAgICAqIEBwYXJhbSB7c3RyaW5nfSBzZWFyY2ggdHlwZSAobG9va3VwLCBleGNsdWRlKVxuICAgICAgICAgKi9cbiAgICAgICAgb25TZWFyY2g6IFByb3BUeXBlcy5mdW5jLFxuICAgICAgICAvKipcbiAgICAgICAgICogRm9uY3Rpb24gZGUgY2FsbGJhY2sgc3VyIGxhIHPDqWxlY3Rpb24gZCd1bmUgbGlnbmVcbiAgICAgICAgICogKG91IHPDqWxlY3Rpb24vZMOpc2VsZWN0aW9uIGRlIHRvdXMgZGFucyBsZSBoZWFkZXIpXG4gICAgICAgICAqIFBhc3NlIGxhIGxpc3RlIGRlcyBpZCBkZXMgbGlnbmVzIHPDqWxlY3Rpb25uw6llcyAoc2VsZWN0ZWRJZExpc3QpXG4gICAgICAgICAqL1xuICAgICAgICBvblNlbGVjdDogUHJvcFR5cGVzLmZ1bmMsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBGb25jdGlvbiBkZSBjYWxsYmFjayBzdXIgbGUgdHJpIGQndW5lIGNvbG9ubmVcbiAgICAgICAgICogUGFzc2UgbCdpZCBkZSBsYSBjb2xvbm5lIGV0IGxhIGRpcmVjdGlvbiBkdSB0cmkgKG91IGZhbHNlIHNpIHRyaSBwYXIgZMOpZmF1dClcbiAgICAgICAgICpcbiAgICAgICAgICogQHBhcmFtIHtzdHJpbmd9IGNvbHVtbiBpZFxuICAgICAgICAgKiBAcGFyYW0ge3N0cmluZ30gZGlyZWN0aW9uXG4gICAgICAgICAqL1xuICAgICAgICBvblNvcnQ6IFByb3BUeXBlcy5mdW5jLFxuICAgICAgICAvKipcbiAgICAgICAgICogTCd1dGlsaXNhdGV1ciBwZXV0IGNoYW5nZXIgbCdvcmRyZSBkZXMgY29sb25uZXMsXG4gICAgICAgICAqIGxlcyBhZmZpY2hlciBvdSBub24sIGV0IGNoYW5nZXIgbGEgdnVlIGRlIGNoYXF1ZSBjb2xvbm5lIChzbWFsbCwgbWVkaXVtLCBsYXJnZSkuXG4gICAgICAgICAqL1xuICAgICAgICBvcmRlcmFibGU6IFByb3BUeXBlcy5ib29sLFxuICAgICAgICAvKipcbiAgICAgICAgICogVGFibGVhdSBkZXMgY29sb25uZXMgYWZmaWNow6llcyAob3Jkb25uw6llcywgdmlzaWJsZXMvY2FjaMOpZXMsIGwvbS9zKVxuICAgICAgICAgKi9cbiAgICAgICAgb3JkZXJlZENvbHVtbnM6IFByb3BUeXBlcy5hcnJheS5pc1JlcXVpcmVkLFxuICAgICAgICAvKipcbiAgICAgICAgICogRm9uY3Rpb24gZGUgY2FsbGJhY2sgcmVxdcOpcmFudCBsJ2FmZmljaGFnZSBkZXMgbm91dmVsbGVzIGRvbm7DqWVzIChsaXZlKVxuICAgICAgICAgKi9cbiAgICAgICAgcmVxdWVzdExpdmVEYXRhczogUHJvcFR5cGVzLmZ1bmMsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBGb25jdGlvbiBkZSBjYWxsYmFjayByZXF1w6lyYW50IGwnYWZmaWNoYWdlIGRlcyBkb25uw6llcyBzdWl2YW50ZXNcbiAgICAgICAgICovXG4gICAgICAgIHJlcXVlc3ROZXh0RGF0YXM6IFByb3BUeXBlcy5mdW5jLFxuICAgICAgICAvKipcbiAgICAgICAgICogW3YyIC0gw6AgdmVuaXJdIExlcyBsaWduZXMgc29udCBzw6lsZWN0aW9ubmFibGVzIChhZmZpY2hhZ2UgZCd1bmUgY2hlY2tib3gpXG4gICAgICAgICAqL1xuICAgICAgICBzZWxlY3RhYmxlOiBQcm9wVHlwZXMuYm9vbCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIExpc3RlIGRlcyBpZCBkZXMgbGlnbmVzIHPDqWxlY3Rpb25uw6llc1xuICAgICAgICAgKi9cbiAgICAgICAgc2VsZWN0ZWRJZExpc3Q6IFByb3BUeXBlcy5hcnJheSxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEFjdGl2ZSBsZSB0cmkgc3VyIGxlcyBjb2xvbm5lc1xuICAgICAgICAgKi9cbiAgICAgICAgc29ydGFibGU6IFByb3BUeXBlcy5ib29sLFxuICAgICAgICAvKipcbiAgICAgICAgICogU2VucyBkdSB0cmlcbiAgICAgICAgICovXG4gICAgICAgIHNvcnREaXJlY3Rpb246IFByb3BUeXBlcy5vbmVPZihbJ2FzYycsICdkZXNjJ10pLFxuICAgICAgICAvKipcbiAgICAgICAgICogSWQgZGUgbGEgY29sb25uZSB0cmnDqVxuICAgICAgICAgKi9cbiAgICAgICAgc29ydGVkQ29sdW1uSWQ6IGlzUmVxdWlyZWRJZihcbiAgICAgICAgICAgIFByb3BUeXBlcy5zdHJpbmcsXG4gICAgICAgICAgICBwcm9wcyA9PiBwcm9wcy5oYXNPd25Qcm9wZXJ0eSgnc29ydGFibGUnKSAmJiBwcm9wcy5zb3J0YWJsZSA9PT0gdHJ1ZSxcbiAgICAgICAgICAgIFNPUlRFRF9DT0xVTU5fRVJST1JfTUVTU0FHRSxcbiAgICAgICAgKSxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEZpeGUgbGEgcHJlbWnDqHJlIGNvbG9ubmVcbiAgICAgICAgICovXG4gICAgICAgIHN0aWNreTogUHJvcFR5cGVzLmJvb2wsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJZGVudGlmaWFudCB1bmlxdWUgw6Agc3DDqWNpZmllciBzaSBvbiB1dGlsaXNlIHBsdXNpZXVycyBjb21wb3NhbnRzIEhpVGFibGVcbiAgICAgICAgICovXG4gICAgICAgIHRhYklkOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUcmFkdWN0aW9uIGRlcyBjaGHDrm5lcyBhZmZpY2jDqWVzXG4gICAgICAgICAqL1xuICAgICAgICB0cmFuc2xhdGlvbnM6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUYWlsbGUgZHUgdGFibGVhdSAoTC9NL1MpLFxuICAgICAgICAgKiBkw6lmaW5pdCBsJ2VzcGFjZSBlbnRyZSBsZXMgY2VsbHVsZXMgZXQgbGV1cnMgdGFpbGxlcyBwYXIgZGVmYXVsdFxuICAgICAgICAgKi9cbiAgICAgICAgdmlldzogUHJvcFR5cGVzLm9uZU9mKFsnbCcsICdtJywgJ3MnXSksXG4gICAgfTtcblxuICAgIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgICAgIG9yZGVyYWJsZTogZmFsc2UsXG4gICAgICAgIHNlbGVjdGFibGU6IGZhbHNlLFxuICAgICAgICBzb3J0YWJsZTogdHJ1ZSxcbiAgICAgICAgc29ydERpcmVjdGlvbjogJ2FzYycsXG4gICAgICAgIGZpbHRlcmFibGU6IHRydWUsXG4gICAgICAgIGluZmluaXRlU2Nyb2xsOiBmYWxzZSxcbiAgICAgICAgaGFzTmV4dERhdGFzOiBmYWxzZSxcbiAgICAgICAgY291bnRMaXZlRGF0YXM6IDAsXG4gICAgICAgIGRhdGVMb2NhbGU6ICdlbi1FTicsXG4gICAgICAgIG51bWJlckxvY2FsZTogJ2VuLUVOJyxcbiAgICAgICAgZGVuc2U6IGZhbHNlLFxuICAgICAgICBkZXRhaWxSb3dzT3B0aW9uczoge30sXG4gICAgICAgIGhlaWdodDogNDUwLFxuICAgICAgICBzdGlja3k6IHRydWUsXG4gICAgICAgIHRyYW5zbGF0aW9uczoge1xuICAgICAgICAgICAgbG9hZF9tb3JlOiAnTG9hZCBNb3JlJyxcbiAgICAgICAgICAgIGJhY2tfdG9fdG9wOiAnQmFjayB0byB0b3AnLFxuICAgICAgICAgICAgZ2V0X3RoZV9uX25ld19pdGVtczogJ1NlZSAlcyBuZXcgaXRlbXMnLFxuICAgICAgICAgICAgY2hvb3NlX2FuZF9vcmdhbml6ZV9jb2x1bW5zOiAnQ2hvb3NlICYgb3JnYW5pemUgY29sdW1ucycsXG4gICAgICAgICAgICBzZWFyY2g6ICdTZWFyY2gnLFxuICAgICAgICAgICAgdGltZTogJ1RpbWUnLFxuICAgICAgICAgICAgc3RpY2t5Um93OiB7XG4gICAgICAgICAgICAgICAgYnV0dG9uOiB7XG4gICAgICAgICAgICAgICAgICAgIG5leHQ6ICdOZXh0IGRheScsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHZpZXc6ICdsJyxcbiAgICAgICAgbG9va3VwQ29sdW1uczogW10sXG4gICAgICAgIGxvYWRpbmc6IGZhbHNlLFxuICAgICAgICBmaXhlZENvbHVtbldpZHRoOiB0cnVlLFxuICAgICAgICBkaXNhYmxlQ29udGV4dE1lbnU6IHRydWUsXG4gICAgfTtcblxuICAgIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgICAgIHN1cGVyKHByb3BzKTtcblxuICAgICAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgICAgICAgZGF0ZVVwZGF0ZTogRGF0ZS5ub3coKSxcbiAgICAgICAgICAgIGlzU2Nyb2xsVG9Cb3R0b206IGZhbHNlLFxuICAgICAgICAgICAgZ3JvdXBCeUlkczoge30sXG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gY3JlYXRlIGFzc29jaWF0aXZlIGFycmF5IChvYmplY3QpIHdpdGggc3RpY2t5IHJvdyBrZXkgJiBpdHMgdmFsdWVzXG4gICAgICAgIC8vID0+IHVzZWQgZm9yIHN0aWNreSByb3cgYmFkZ2VzXG4gICAgICAgIGlmIChwcm9wcy5ncm91cEJ5KSB7XG4gICAgICAgICAgICBwcm9wcy5kYXRhU291cmNlLm1hcChyb3cgPT4ge1xuICAgICAgICAgICAgICAgIGxldCB2YWx1ZSA9IHJvdy5kYXRhc1twcm9wcy5ncm91cEJ5XS52YWx1ZTtcbiAgICAgICAgICAgICAgICBsZXQgZGF0ZSA9IG5ldyBEYXRlKHZhbHVlKTtcblxuICAgICAgICAgICAgICAgIGlmIChkYXRlIGluc3RhbmNlb2YgRGF0ZSAmJiBpc0Zpbml0ZShkYXRlKSkge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnN1YnN0cigwLCAxMCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICghdGhpcy5zdGF0ZS5ncm91cEJ5SWRzLmhhc093blByb3BlcnR5KHZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlLmdyb3VwQnlJZHNbdmFsdWVdID0gW107XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUuZ3JvdXBCeUlkc1t2YWx1ZV0ucHVzaChyb3cuZGF0YXMpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBPcmRlcmFibGVcbiAgICAgICAgdGhpcy5vcGVuT3JkZXJDb2x1bW5zTWVudSA9IHRoaXMub3Blbk9yZGVyQ29sdW1uc01lbnUuYmluZCh0aGlzKTtcbiAgICAgICAgdGhpcy5jbG9zZU9yZGVyQ29sdW1uc01lbnUgPSB0aGlzLmNsb3NlT3JkZXJDb2x1bW5zTWVudS5iaW5kKHRoaXMpO1xuXG4gICAgICAgIC8vIFNlbGVjdGFibGVcbiAgICAgICAgdGhpcy50b2dnbGVJdGVtID0gdGhpcy50b2dnbGVJdGVtLmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMudG9nZ2xlQWxsID0gdGhpcy50b2dnbGVBbGwuYmluZCh0aGlzKTtcbiAgICAgICAgdGhpcy5zZWxlY3RBbGwgPSB0aGlzLnNlbGVjdEFsbC5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLmRlc2VsZWN0QWxsID0gdGhpcy5kZXNlbGVjdEFsbC5iaW5kKHRoaXMpO1xuXG4gICAgICAgIC8vIE1hbmFnZSBzY3JvbGxpbmdcbiAgICAgICAgdGhpcy5oYW5kbGVIb3Jpem9udGFsU2Nyb2xsID0gdGhpcy5oYW5kbGVIb3Jpem9udGFsU2Nyb2xsLmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMuaGFuZGxlVmVydGljYWxTY3JvbGwgPSB0aGlzLmhhbmRsZVZlcnRpY2FsU2Nyb2xsLmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMucGxhY2VIb3Jpem9udGFsRmxvYXRpbmdFbGVtZW50ID0gdGhpcy5wbGFjZUhvcml6b250YWxGbG9hdGluZ0VsZW1lbnQuYmluZCh0aGlzKTtcbiAgICAgICAgdGhpcy5zY3JvbGxUb1RvcCA9IHRoaXMuc2Nyb2xsVG9Ub3AuYmluZCh0aGlzKTtcblxuICAgICAgICB0aGlzLmlzU2Nyb2xsVG9Cb3R0b20gPSB0aGlzLmlzU2Nyb2xsVG9Cb3R0b20uYmluZCh0aGlzKTtcbiAgICAgICAgdGhpcy5oYW5kbGVSZXF1ZXN0TGl2ZURhdGFzID0gdGhpcy5oYW5kbGVSZXF1ZXN0TGl2ZURhdGFzLmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMuaGFuZGxlTmV4dFN0aWNreVJvdyA9IHRoaXMuaGFuZGxlTmV4dFN0aWNreVJvdy5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLmhhbmRsZVN0aWNreVJvd1Bvc2l0aW9ucyA9IHRoaXMuaGFuZGxlU3RpY2t5Um93UG9zaXRpb25zLmJpbmQodGhpcyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRE9NIHJlZmVyZW5jZXNcbiAgICAgKiB1c2UgdG8gcmVwbGFjZSBlbGVtZW50IG9uIGhvcml6b250YWwgJiB2ZXJ0aWNhbCBzY3JvbGxcbiAgICAgKi9cbiAgICB3cmFwcGVyRGl2ID0gPGRpdiAvPjtcbiAgICB3cmFwcGVyV2lkdGggPSAwO1xuICAgIHRIZWFkID0gPGRpdiAvPjtcbiAgICB0SGVhZExlZnRQYWRkaW5nID0gPGRpdiAvPjtcbiAgICB0SGVhZFJpZ2h0UGFkZGluZyA9IDxkaXYgLz47XG4gICAgdEhlYWRGaXJzdCA9IDxkaXYgLz47XG4gICAgdEJvZHkgPSA8ZGl2IC8+O1xuICAgIHRCb2R5U2Nyb2xsYmFyV2lkdGggPSAwO1xuICAgIHRCb2R5TGVmdFBhZGRpbmdFbGVtZW50cyA9IFtdO1xuICAgIHRCb2R5UmlnaHRQYWRkaW5nRWxlbWVudHMgPSBbXTtcbiAgICB0Qm9keUZpcnN0RWxlbWVudHMgPSBbXTtcbiAgICB0Rm9vdCA9IDxkaXYgLz47XG4gICAgdEZvb3RDZW50ZXJlZERpdiA9IDxkaXYgLz47XG4gICAgYmFja1RvVG9wQnV0dG9uID0gbnVsbDtcbiAgICBsaXZlRGF0YVNwYW4gPSBudWxsO1xuICAgIHNjcm9sbFRvcCA9IDA7XG4gICAgc2Nyb2xsTGVmdCA9IDA7XG4gICAgZ3JvdXBCeVJvd3NQb3NpdGlvbnMgPSBbXTtcblxuICAgIC8qKiBMaWZlY3ljbGUgbWV0aG9kcyAqL1xuXG4gICAgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgICAgIHRoaXMud3JhcHBlclNjcm9sbE9mZnNldCA9IHRoaXMud3JhcHBlckRpdi5zY3JvbGxXaWR0aCAtIHRoaXMud3JhcHBlckRpdi5vZmZzZXRXaWR0aDtcblxuICAgICAgICAvLyBTZXQgRE9NIHJlZmVyZW5jZXNcbiAgICAgICAgdGhpcy50SGVhZCA9IHRoaXMud3JhcHBlckRpdi5xdWVyeVNlbGVjdG9yKCd0YWJsZSB0aGVhZCcpO1xuICAgICAgICB0aGlzLnRIZWFkTGVmdFBhZGRpbmcgPSB0aGlzLnRIZWFkLnF1ZXJ5U2VsZWN0b3IoJ3RyIHRoOm50aC1jaGlsZCgxKScpO1xuICAgICAgICB0aGlzLnRIZWFkUmlnaHRQYWRkaW5nID0gdGhpcy50SGVhZC5xdWVyeVNlbGVjdG9yKCd0ciB0aDpudGgtbGFzdC1jaGlsZCgxKScpO1xuICAgICAgICB0aGlzLnRIZWFkRmlyc3QgPSB0aGlzLnRIZWFkLnF1ZXJ5U2VsZWN0b3IoJ3RyIHRoOm50aC1jaGlsZCgyKScpO1xuICAgICAgICB0aGlzLnRCb2R5ID0gdGhpcy53cmFwcGVyRGl2LnF1ZXJ5U2VsZWN0b3IoJ3RhYmxlIHRib2R5Jyk7XG4gICAgICAgIHRoaXMudEZvb3QgPSB0aGlzLndyYXBwZXJEaXYucXVlcnlTZWxlY3RvcigndGFibGUgdGZvb3QnKTtcbiAgICAgICAgdGhpcy50Rm9vdENlbnRlcmVkRGl2ID0gdGhpcy53cmFwcGVyRGl2LnF1ZXJ5U2VsZWN0b3IoJ3RhYmxlIHRmb290IHRyIHRkIGRpdicpO1xuICAgICAgICB0aGlzLmJhY2tUb1RvcEJ1dHRvbiA9IHRoaXMud3JhcHBlckRpdi5xdWVyeVNlbGVjdG9yKCcuYmFjay10by10b3AtYnV0dG9uJyk7XG5cbiAgICAgICAgdGhpcy51cGRhdGVGbG9hdGluZ0JvZHlFbGVtZW50UmVmcygpO1xuXG4gICAgICAgIC8vIERldGVjdCBpZiByb290IGhhcyBob3Jpem9udGFsIHNjcm9sbCBiYXJcbiAgICAgICAgaWYgKHRoaXMud3JhcHBlckRpdi5zY3JvbGxXaWR0aCA+IHRoaXMud3JhcHBlckRpdi5vZmZzZXRXaWR0aCkge1xuICAgICAgICAgICAgLy8gYWRhcHQgZmlyc3QgY29sdW1uIHRvIGZpeGVkIHdpZHRoXG4gICAgICAgICAgICBpZiAodGhpcy50SGVhZEZpcnN0ICYmIHRoaXMudEhlYWRGaXJzdC5zdHlsZSkge1xuICAgICAgICAgICAgICAgIHRoaXMudEhlYWRGaXJzdC5zdHlsZS53aWR0aCA9ICdhdXRvJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIGZpeGVkIGZvb3RlciB3aWR0aFxuICAgICAgICAgICAgaWYgKHRoaXMudEZvb3RDZW50ZXJlZERpdiAmJiB0aGlzLnRGb290Q2VudGVyZWREaXYuc3R5bGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRGb290Q2VudGVyZWREaXYuc3R5bGUud2lkdGggPSAoTWF0aC5yb3VuZCh0aGlzLndyYXBwZXJEaXYub2Zmc2V0V2lkdGggLyAyKSkgKyAncHgnO1xuICAgICAgICAgICAgICAgIHRoaXMudEZvb3RDZW50ZXJlZERpdi5zdHlsZS5wb3NpdGlvbiA9ICdhYnNvbHV0ZSc7XG4gICAgICAgICAgICAgICAgdGhpcy50Rm9vdENlbnRlcmVkRGl2LnN0eWxlLmJvdHRvbSA9ICcwcHgnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy51cGRhdGVTdGlja3lSb3dzUG9zaXRpb24oKTtcblxuICAgICAgICB0aGlzLnBsYWNlSG9yaXpvbnRhbEZsb2F0aW5nRWxlbWVudCgpO1xuICAgIH1cblxuICAgIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMsIHByZXZTdGF0ZSwgcHJldkNvbnRleHQpIHtcbiAgICAgICAgdGhpcy53cmFwcGVyU2Nyb2xsT2Zmc2V0ID0gdGhpcy53cmFwcGVyRGl2LnNjcm9sbFdpZHRoIC0gdGhpcy53cmFwcGVyRGl2Lm9mZnNldFdpZHRoO1xuXG4gICAgICAgIC8vIElmIG9yZGVyZWRDb2x1bW5zIGhhcyBjaGFuZ2UsIHBvc3NpYmx5IHRoZSBzdGlja3kgY2VsbHMgaGFzIGNoYW5nZWQgdG9vXG4gICAgICAgIGlmICh0aGlzLnByb3BzLm9yZGVyZWRDb2x1bW5zWzBdLmNvbElkICE9PSBwcmV2UHJvcHMub3JkZXJlZENvbHVtbnNbMF0uY29sSWQpIHtcbiAgICAgICAgICAgIHRoaXMudEhlYWRGaXJzdCA9IHRoaXMudEhlYWQucXVlcnlTZWxlY3RvcigndHIgdGg6bnRoLWNoaWxkKDIpJyk7XG4gICAgICAgICAgICB0aGlzLnRCb2R5Rmlyc3RFbGVtZW50cyA9IHRoaXMud3JhcHBlckRpdi5xdWVyeVNlbGVjdG9yQWxsKFxuICAgICAgICAgICAgICAgICd0YWJsZSB0Ym9keSB0ciB0ZDpudGgtY2hpbGQoMiknLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIElmIHRoZXJlIGlzIG5ldyByb3dzLCB1cGRhdGUgdGJvZHkgZmlyc3QgZWxlbWVudCBsaXN0IGFuZCBsZWZ0IHBhZGRpbmcgY2VsbHNcbiAgICAgICAgaWYgKHRoaXMucHJvcHMuZGF0YVNvdXJjZS5sZW5ndGggPiBwcmV2UHJvcHMuZGF0YVNvdXJjZS5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlRmxvYXRpbmdCb2R5RWxlbWVudFJlZnMoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnByb3BzLmNvdW50TGl2ZURhdGFzID4gMCkge1xuICAgICAgICAgICAgdGhpcy5saXZlRGF0YVNwYW4gPSB0aGlzLnRIZWFkLnF1ZXJ5U2VsZWN0b3IoJ3RyOm50aC1jaGlsZCgyKSB0aCBzcGFuJyk7XG4gICAgICAgICAgICB0aGlzLmJhY2tUb1RvcEJ1dHRvbi5zdHlsZS50b3AgPSAnLTk5OTk5cHgnO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHByZXZQcm9wcy5jb3VudExpdmVEYXRhcyA+IHRoaXMucHJvcHMuY291bnRMaXZlRGF0YXMpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgICAgICAgIGRhdGVVcGRhdGU6IERhdGUubm93KCksXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE9ubHkgaWYgbmVlZGVkXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIHRoaXMucHJvcHMuZGF0YVNvdXJjZS5sZW5ndGggPiBwcmV2UHJvcHMuZGF0YVNvdXJjZS5sZW5ndGggfHxcbiAgICAgICAgICAgIHRoaXMucHJvcHMuZGVuc2UgIT09IHByZXZQcm9wcy5kZW5zZSB8fFxuICAgICAgICAgICAgdGhpcy5wcm9wcy5zb3J0ZWRDb2x1bW5JZCAhPT0gcHJldlByb3BzLnNvcnRlZENvbHVtbklkIHx8XG4gICAgICAgICAgICB0aGlzLnByb3BzLnNvcnREaXJlY3Rpb24gIT09IHByZXZQcm9wcy5zb3J0RGlyZWN0aW9uXG4gICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVTdGlja3lSb3dzUG9zaXRpb24oKTtcbiAgICAgICAgICAgIGlmICh0aGlzLnByb3BzLmRhdGFTb3VyY2UubGVuZ3RoID4gcHJldlByb3BzLmRhdGFTb3VyY2UubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVTdGlja3lSb3dQb3NpdGlvbnMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5wcm9wcy5kYXRhU291cmNlLmxlbmd0aCA+IHByZXZQcm9wcy5kYXRhU291cmNlLmxlbmd0aCAmJiB0aGlzLnByb3BzLmdyb3VwQnkpIHtcbiAgICAgICAgICAgIC8vIGNyZWF0ZSBhc3NvY2lhdGl2ZSBhcnJheSAob2JqZWN0KSB3aXRoIHN0aWNreSByb3cga2V5ICYgaXRzIHZhbHVlc1xuICAgICAgICAgICAgLy8gPT4gdXNlZCBmb3Igc3RpY2t5IHJvdyBiYWRnZXNcbiAgICAgICAgICAgIGxldCBncm91cEJ5SWRzID0ge307XG4gICAgICAgICAgICB0aGlzLnByb3BzLmRhdGFTb3VyY2UubWFwKHJvdyA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IHZhbHVlID0gcm93LmRhdGFzW3RoaXMucHJvcHMuZ3JvdXBCeV0udmFsdWU7XG4gICAgICAgICAgICAgICAgbGV0IGRhdGUgPSBuZXcgRGF0ZSh2YWx1ZSk7XG5cbiAgICAgICAgICAgICAgICBpZiAoZGF0ZSBpbnN0YW5jZW9mIERhdGUgJiYgaXNGaW5pdGUoZGF0ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5zdWJzdHIoMCwgMTApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoIWdyb3VwQnlJZHMuaGFzT3duUHJvcGVydHkodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIGdyb3VwQnlJZHNbdmFsdWVdID0gW107XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGdyb3VwQnlJZHNbdmFsdWVdLnB1c2gocm93LmRhdGFzKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGdyb3VwQnlJZHM6IGdyb3VwQnlJZHMgfSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmlzU2Nyb2xsVG9Cb3R0b20odGhpcy5zY3JvbGxUb3AgPT09IHRoaXMudEJvZHkuc2Nyb2xsSGVpZ2h0IC0gdGhpcy50Qm9keS5vZmZzZXRIZWlnaHQpO1xuXG4gICAgICAgIHRoaXMucGxhY2VIb3Jpem9udGFsRmxvYXRpbmdFbGVtZW50KCk7XG4gICAgfVxuXG4gICAgLyoqICAgIEVORCBMaWZlY3ljbGUgbWV0aG9kcyAgICovXG5cbiAgICB1cGRhdGVTdGlja3lSb3dzUG9zaXRpb24oKSB7XG4gICAgICAgIGNvbnN0IHJvd0hlaWdodCA9IHRoaXMucHJvcHMuZGVuc2UgPyBjc3QuQ0VMTF9IRUlHSFRfREVOU0UgOiBjc3QuQ0VMTF9IRUlHSFQ7XG4gICAgICAgIHRoaXMuZ3JvdXBCeVJvd3NQb3NpdGlvbnMgPSBbXTtcbiAgICAgICAgLy8gSW5pdGlhbGl6ZSBuZXcgc3RpY2t5Um93cyBwb3NpdGlvblxuICAgICAgICBjb25zdCB0YWJsZUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChgJHt0aGlzLnByb3BzLnRhYklkfS1ib2R5YCk7XG4gICAgICAgIGNvbnN0IHN0aWNreVJvd3MgPSB0YWJsZUJvZHkuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnc3RpY2t5R3JvdXBCeScpO1xuICAgICAgICBpZiAoc3RpY2t5Um93cy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBBcnJheS5wcm90b3R5cGUuZmlsdGVyLmNhbGwoc3RpY2t5Um93cywgc3RpY2t5Um93ID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmdyb3VwQnlSb3dzUG9zaXRpb25zLnB1c2goXG4gICAgICAgICAgICAgICAgICAgIHN0aWNreVJvdy5uZXh0U2libGluZy5uZXh0U2libGluZy5vZmZzZXRUb3AgLSByb3dIZWlnaHQsXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdXBkYXRlRmxvYXRpbmdCb2R5RWxlbWVudFJlZnMgPSAoKSA9PiB7XG4gICAgICAgIHRoaXMudEJvZHlTY3JvbGxiYXJXaWR0aCA9IHRoaXMudEJvZHkub2Zmc2V0V2lkdGggLSB0aGlzLnRCb2R5LmNsaWVudFdpZHRoO1xuXG4gICAgICAgIGlmICh0aGlzLnRIZWFkICYmIHRoaXMudEJvZHlTY3JvbGxiYXJXaWR0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMudEhlYWQuc3R5bGUud2lkdGggPSAnY2FsYygxMDAlIC0gJyArIHRoaXMudEJvZHlTY3JvbGxiYXJXaWR0aCArICdweCknO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy50Qm9keUxlZnRQYWRkaW5nRWxlbWVudHMgPSB0aGlzLnRCb2R5LnF1ZXJ5U2VsZWN0b3JBbGwoXG4gICAgICAgICAgICAndHIgdGQ6bnRoLWNoaWxkKDEpLCAuZmxvYXRpbmctcGFyZW50LXJvdy1sYWJlbCcsXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMudEJvZHlSaWdodFBhZGRpbmdFbGVtZW50cyA9IHRoaXMudEJvZHkucXVlcnlTZWxlY3RvckFsbChcbiAgICAgICAgICAgICd0ciB0ZDpudGgtbGFzdC1jaGlsZCgxKSwgLmZsb2F0aW5nLXBhcmVudC1yb3ctaW5kaWNhdG9yJyxcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLnRCb2R5Rmlyc3RFbGVtZW50cyA9IHRoaXMudEJvZHkucXVlcnlTZWxlY3RvckFsbCgndHIgdGQ6bnRoLWNoaWxkKDIpJyk7XG4gICAgfTtcblxuICAgIGlzU2Nyb2xsVG9Cb3R0b20odmFsdWUpIHtcbiAgICAgICAgaWYgKHRoaXMuc3RhdGUuaXNTY3JvbGxUb0JvdHRvbSAhPT0gdmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgICAgICAgIGlzU2Nyb2xsVG9Cb3R0b206IHZhbHVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBam91dGUgLyBTdXBwcmltZSBsJ2lkIGRlIGwnaXRlbSBkdSBzZWxlY3RlZElkTGlzdFxuICAgICAqIEBwYXJhbSBpdGVtXG4gICAgICovXG4gICAgdG9nZ2xlSXRlbShpdGVtKSB7XG4gICAgICAgIGlmICh0aGlzLnByb3BzLnNlbGVjdGVkSWRMaXN0LmluY2x1ZGVzKGl0ZW0ucm93SWQpKSB7XG4gICAgICAgICAgICB0aGlzLnByb3BzLm9uU2VsZWN0KFxuICAgICAgICAgICAgICAgIHRoaXMucHJvcHMuc2VsZWN0ZWRJZExpc3QuZmlsdGVyKGZ1bmN0aW9uKGl0ZW1JZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gaXRlbUlkICE9PSBpdGVtLnJvd0lkO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucHJvcHMub25TZWxlY3QoWy4uLnRoaXMucHJvcHMuc2VsZWN0ZWRJZExpc3QsIGl0ZW0ucm93SWRdKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFPDqWxlY3Rpb25uZSAvIETDqXNlbGVjdGlvbm5lIHRvdXMgbGVzIMOpbMOpbWVudHMgZW4gZm9uY3Rpb24gZGUgbCfDqXRhdCBkZSBsYSBsaXN0ZVxuICAgICAqL1xuICAgIHRvZ2dsZUFsbCgpIHtcbiAgICAgICAgaWYgKHRoaXMucHJvcHMuc2VsZWN0ZWRJZExpc3QubGVuZ3RoID09PSB0aGlzLnByb3BzLmRhdGFTb3VyY2UubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLmRlc2VsZWN0QWxsKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdEFsbCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU8OpbGVjdGlvbm5lIHRvdXMgbGVzIGl0ZW1zXG4gICAgICovXG4gICAgc2VsZWN0QWxsKCkge1xuICAgICAgICB0aGlzLnByb3BzLm9uU2VsZWN0KHRoaXMucHJvcHMuZGF0YVNvdXJjZS5tYXAoaXRlbSA9PiBpdGVtLnJvd0lkKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRMOpc8OpbGVjdGlvbm5lIHRvdXMgbGVzIGl0ZW1zXG4gICAgICovXG4gICAgZGVzZWxlY3RBbGwoKSB7XG4gICAgICAgIHRoaXMucHJvcHMub25TZWxlY3QoW10pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEhhbmRsZSBob3Jpem9udGFsIHNjcm9sbCAod3JhcHBlckRpdilcbiAgICAgKiAtIHJlcGxhY2UgZWFjaCBmaXJzdCBjZWxscyBib2R5ICYgaGVhZGVyICYgYWRkIHJpZ2h0IHNoYWRvd3NcbiAgICAgKi9cbiAgICBoYW5kbGVIb3Jpem9udGFsU2Nyb2xsKGV2ZW50KSB7XG4gICAgICAgIC8vIGNhbmNlbCBpZiBzY3JvbGwgaXMgZnJvbSB0Ym9keSBPUiBpdCBkaWRuJ3QgY2hhbmdlXG4gICAgICAgIGlmIChldmVudC50YXJnZXQubm9kZU5hbWUgPT09ICdUQk9EWScgfHwgdGhpcy5zY3JvbGxMZWZ0ID09PSBldmVudC50YXJnZXQuc2Nyb2xsTGVmdCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zY3JvbGxMZWZ0ID0gZXZlbnQudGFyZ2V0LnNjcm9sbExlZnQ7XG5cbiAgICAgICAgLy8gUmVwbGFjZSBsaXZlIGRhdGFzIG5vdGlmaWNhdGlvblxuICAgICAgICB0aGlzLnBsYWNlSG9yaXpvbnRhbEZsb2F0aW5nRWxlbWVudCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEhhbmRsZSB2ZXJ0aWNhbCBzY3JvbGwgKHRib2R5KVxuICAgICAqIC0gYWRkIGJvdHRvbSBzaGFkb3dcbiAgICAgKiAtIHBsYWNlIGJhY2sgdG8gdG9wIGJ1dHRvblxuICAgICAqIC0gcmVxdWVzdCBuZXh0IGRhdGFzIGlmIHJlYWNoIGJvdHRvbVxuICAgICAqL1xuICAgIGhhbmRsZVZlcnRpY2FsU2Nyb2xsKGV2ZW50KSB7XG4gICAgICAgIC8vIGNhbmNlbCBpZiBzY3JvbGwgaXMgbm90IGZyb20gdGJvZHkgT1IgaXQgZGlkbid0IGNoYW5nZVxuICAgICAgICBpZiAoZXZlbnQudGFyZ2V0Lm5vZGVOYW1lICE9PSAnVEJPRFknIHx8IHRoaXMuc2Nyb2xsVG9wID09PSBldmVudC50YXJnZXQuc2Nyb2xsVG9wKSByZXR1cm47XG5cbiAgICAgICAgY29uc3Qgc2Nyb2xsaW5nVXAgPSB0aGlzLnNjcm9sbFRvcCA+IGV2ZW50LnRhcmdldC5zY3JvbGxUb3A7XG5cbiAgICAgICAgdGhpcy5zY3JvbGxUb3AgPSBldmVudC50YXJnZXQuc2Nyb2xsVG9wO1xuXG4gICAgICAgIC8vIEFkZCBib3R0b20gc2hhZG93IHRvIGhlYWRlciByb3dcbiAgICAgICAgY29uc3Qgc2hhZG93Qm90dG9tID0gJzBweCAwcHggMnB4IDBweCByZ2JhKDEyOCwgMTI4LCAxMjgsIDAuMzIpJztcbiAgICAgICAgdGhpcy50SGVhZC5zdHlsZVsnYm94LXNoYWRvdyddID0gdGhpcy5zY3JvbGxUb3AgPiAwID8gc2hhZG93Qm90dG9tIDogJ25vbmUnO1xuICAgICAgICBjb25zdCByb3dIZWlnaHQgPSB0aGlzLnByb3BzLmRlbnNlID8gY3N0LkNFTExfSEVJR0hUX0RFTlNFIDogY3N0LkNFTExfSEVJR0hUO1xuXG4gICAgICAgIC8vIEFkZCBiYWNrIHRvIHRvcCBidXR0b24gd2hlbiBzY3JvbGxpbmcgdXAgZnJvbSBjb25zdGFudCBkZWZpbmVkIHNjcm9sbCBwb2ludFxuICAgICAgICAvLyBpZiB0aGVyZSBub3QgbGl2ZSBkYXRhIG5vdGlmaWNhdGlvblxuICAgICAgICBpZiAodGhpcy5wcm9wcy5jb3VudExpdmVEYXRhcyA9PT0gMCkge1xuICAgICAgICAgICAgaWYgKHNjcm9sbGluZ1VwICYmIHRoaXMuc2Nyb2xsVG9wID49IGNzdC5OQl9ST1dTX0JBQ0tfVE9fVE9QICogcm93SGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5iYWNrVG9Ub3BCdXR0b24uc3R5bGUudG9wID0gYCR7cm93SGVpZ2h0ICogMS41fSBweGA7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuYmFja1RvVG9wQnV0dG9uLnN0eWxlLnRvcCA9IGAkey05OTk5OX1weGA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmhhbmRsZVN0aWNreVJvd1Bvc2l0aW9ucygpO1xuXG4gICAgICAgIHRoaXMuaXNTY3JvbGxUb0JvdHRvbShcbiAgICAgICAgICAgIHRoaXMuc2Nyb2xsVG9wID09PSBldmVudC50YXJnZXQuc2Nyb2xsSGVpZ2h0IC0gdGhpcy50Qm9keS5vZmZzZXRIZWlnaHQsXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgaGFuZGxlU3RpY2t5Um93UG9zaXRpb25zKCkge1xuICAgICAgICBjb25zdCB0YWJsZUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChgJHt0aGlzLnByb3BzLnRhYklkfS1ib2R5YCk7XG4gICAgICAgIGNvbnN0IHN0aWNreVJvd3MgPSB0YWJsZUJvZHkuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnc3RpY2t5R3JvdXBCeScpO1xuICAgICAgICBjb25zdCByb3dIZWlnaHQgPSB0aGlzLnByb3BzLmRlbnNlID8gY3N0LkNFTExfSEVJR0hUX0RFTlNFIDogY3N0LkNFTExfSEVJR0hUO1xuICAgICAgICBpZiAoc3RpY2t5Um93cy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBBcnJheS5wcm90b3R5cGUuZmlsdGVyLmNhbGwoc3RpY2t5Um93cywgKHN0aWNreVJvdywgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBmYWtlVHIgPSBzdGlja3lSb3cubmV4dFNpYmxpbmc7XG4gICAgICAgICAgICAgICAgaWYgKHRhYmxlQm9keS5zY3JvbGxUb3AgPiB0aGlzLmdyb3VwQnlSb3dzUG9zaXRpb25zW2luZGV4XSkge1xuICAgICAgICAgICAgICAgICAgICAvLyBDYWxjdWwgZGUgbGEgcG9zaXRpb24gZHUgJ3Bpbm5lZCcgaXRlbVxuICAgICAgICAgICAgICAgICAgICAvLyBwb3NpdGlvbm5lbWVudCBqdXN0ZSBlbiBkZXNzb3VzIGR1IGhlYWRlclxuICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlb2Ygc3RpY2t5Um93c1tpbmRleCArIDFdID09PSAndW5kZWZpbmVkJyB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgdGFibGVCb2R5LnNjcm9sbFRvcCA8IHN0aWNreVJvd3NbaW5kZXggKyAxXS5vZmZzZXRUb3BcbiAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBTaSBsYSBwcm9jaGFpbmUgbGlnbmUgZXN0IGF1c3NpIHVuICdwaW5uZWQnIGl0ZW0sXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBpbCBwb3Vzc2UgbGUgcHLDqWPDqWRlbnQgdmVycyBsZSBoYXV0XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZW9mIHRoaXMuZ3JvdXBCeVJvd3NQb3NpdGlvbnNbaW5kZXggKyAxXSAhPT0gJ3VuZGVmaW5lZCcgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmdyb3VwQnlSb3dzUG9zaXRpb25zW2luZGV4ICsgMV0gLSB0YWJsZUJvZHkuc2Nyb2xsVG9wIDxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dIZWlnaHQgLSAxMFxuICAgICAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RpY2t5Um93LnN0eWxlLnRvcCA9IGAke3RhYmxlQm9keS5zY3JvbGxUb3AgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZ3JvdXBCeVJvd3NQb3NpdGlvbnNbaW5kZXggKyAxXSAtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFibGVCb2R5LnNjcm9sbFRvcCAtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93SGVpZ2h0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBweGA7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0aWNreVJvdy5zdHlsZS50b3AgPSBgJHt0YWJsZUJvZHkuc2Nyb2xsVG9wfXB4YDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN0aWNreVJvdy5zdHlsZS5wb3NpdGlvbiAhPT0gJ2Fic29sdXRlJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFJlcG9zaXRpb25uZW1lbnQgZGVzIMOpbMOpbWVudHMgZGFucyB1bmUgcm93IGVuIHBvc2l0aW9uIGFic29sdXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RpY2t5Um93LnN0eWxlLnBvc2l0aW9uID0gJ2Fic29sdXRlJztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWtlVHIuc3R5bGUuZGlzcGxheSA9ICdpbmxpbmUtYmxvY2snO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0aWNreVJvdy5zdHlsZS5oZWlnaHQgPSB0aGlzLnByb3BzLmRlbnNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gYCR7Y3N0LkNFTExfSEVJR0hUX0RFTlNFIC0gOH1weGBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBgJHtjc3QuQ0VMTF9IRUlHSFQgLSA4fXB4YDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGlja3lSb3cucXVlcnlTZWxlY3RvcignYnV0dG9uJykuc3R5bGUubWF4SGVpZ2h0ID0gdGhpcy5wcm9wcy5kZW5zZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGAke2NzdC5DRUxMX0hFSUdIVF9ERU5TRSAtIDE2fXB4YFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGAke2NzdC5DRUxMX0hFSUdIVCAtIDE2fXB4YDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGlja3lSb3cucXVlcnlTZWxlY3RvcignYnV0dG9uJykuc3R5bGUubWluSGVpZ2h0ID0gdGhpcy5wcm9wcy5kZW5zZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGAke2NzdC5DRUxMX0hFSUdIVF9ERU5TRSAtIDE2fXB4YFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGAke2NzdC5DRUxMX0hFSUdIVCAtIDE2fXB4YDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGlja3lSb3cucXVlcnlTZWxlY3RvcignYnV0dG9uJykuc3R5bGUudG9wID0gJy0zcHgnO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0aWNreVJvdy5xdWVyeVNlbGVjdG9yKCcjc3RpY2t5Um93Q29udGVudCcpLnN0eWxlLnRvcCA9ICF0aGlzLnByb3BzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5kZW5zZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICc0cHgnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJy0zcHgnO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0aWNreVJvdy5xdWVyeVNlbGVjdG9yKCd0ZCcpLnN0eWxlLmhlaWdodCA9IHRoaXMucHJvcHMuZGVuc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBgJHtjc3QuQ0VMTF9IRUlHSFRfREVOU0UgLSA4fXB4YFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGAke2NzdC5DRUxMX0hFSUdIVCAtIDh9cHhgO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnByb3BzLmRlbnNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0aWNreVJvdy5xdWVyeVNlbGVjdG9yKCdidXR0b24nKS5zdHlsZS50b3AgPSAnMHB4JztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RpY2t5Um93LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbiBzcGFuJykuc3R5bGUucG9zaXRpb24gPSAncmVsYXRpdmUnO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGlja3lSb3cucXVlcnlTZWxlY3RvcignYnV0dG9uIHNwYW4nKS5zdHlsZS50b3AgPSAnLTRweCc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChzdGlja3lSb3cuc3R5bGUucG9zaXRpb24gIT09ICdyZWxhdGl2ZScpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gUmVwb3NpdGlvbm5lbWVudCBub3JtYWxcbiAgICAgICAgICAgICAgICAgICAgc3RpY2t5Um93LnN0eWxlLnBvc2l0aW9uID0gJ3JlbGF0aXZlJztcbiAgICAgICAgICAgICAgICAgICAgc3RpY2t5Um93LnN0eWxlLnRvcCA9ICcwcHgnO1xuICAgICAgICAgICAgICAgICAgICBmYWtlVHIuc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICAgICAgICAgICAgICAgICAgc3RpY2t5Um93LnN0eWxlLmhlaWdodCA9IHRoaXMucHJvcHMuZGVuc2VcbiAgICAgICAgICAgICAgICAgICAgICAgID8gYCR7Y3N0LkNFTExfSEVJR0hUX0RFTlNFfXB4YFxuICAgICAgICAgICAgICAgICAgICAgICAgOiBgJHtjc3QuQ0VMTF9IRUlHSFR9cHhgO1xuICAgICAgICAgICAgICAgICAgICBzdGlja3lSb3cucXVlcnlTZWxlY3RvcignI3N0aWNreS1iYWRnZScpLnN0eWxlLnRvcCA9ICcwcHgnO1xuICAgICAgICAgICAgICAgICAgICBzdGlja3lSb3cucXVlcnlTZWxlY3RvcignI3N0aWNreVJvd0NvbnRlbnQnKS5zdHlsZS50b3AgPSAnMnB4JztcbiAgICAgICAgICAgICAgICAgICAgc3RpY2t5Um93LnF1ZXJ5U2VsZWN0b3IoJ3RkJykuc3R5bGUuaGVpZ2h0ID0gdGhpcy5wcm9wcy5kZW5zZVxuICAgICAgICAgICAgICAgICAgICAgICAgPyBgJHtjc3QuQ0VMTF9IRUlHSFRfREVOU0V9cHhgXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGAke2NzdC5DRUxMX0hFSUdIVH1weGA7XG4gICAgICAgICAgICAgICAgICAgIHN0aWNreVJvdy5xdWVyeVNlbGVjdG9yKCdidXR0b24nKS5zdHlsZS5tYXhIZWlnaHQgPSB0aGlzLnByb3BzLmRlbnNlXG4gICAgICAgICAgICAgICAgICAgICAgICA/IGAke2NzdC5DRUxMX0hFSUdIVF9ERU5TRSAtIDJ9cHhgXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGAke2NzdC5DRUxMX0hFSUdIVCAtIDh9cHhgO1xuICAgICAgICAgICAgICAgICAgICBzdGlja3lSb3cucXVlcnlTZWxlY3RvcignYnV0dG9uJykuc3R5bGUubWluSGVpZ2h0ID0gdGhpcy5wcm9wcy5kZW5zZVxuICAgICAgICAgICAgICAgICAgICAgICAgPyBgJHtjc3QuQ0VMTF9IRUlHSFRfREVOU0UgLSAyfXB4YFxuICAgICAgICAgICAgICAgICAgICAgICAgOiBgJHtjc3QuQ0VMTF9IRUlHSFQgLSA4fXB4YDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMucHJvcHMuZGVuc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0aWNreVJvdy5xdWVyeVNlbGVjdG9yKCdidXR0b24gc3BhbicpLnN0eWxlLnRvcCA9ICcwcHgnO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTb21lIGVsZW1lbnQgbXVzdCBiZSByZXBsYWNlIFwibWFudWFsbHlcIlxuICAgICAqL1xuICAgIHBsYWNlSG9yaXpvbnRhbEZsb2F0aW5nRWxlbWVudCgpIHtcbiAgICAgICAgLy8gbGl2ZSBkYXRhcyBub3RpZmljYXRpb25cbiAgICAgICAgaWYgKHRoaXMubGl2ZURhdGFTcGFuKSB7XG4gICAgICAgICAgICB0aGlzLmxpdmVEYXRhU3Bhbi5zdHlsZS5sZWZ0ID1cbiAgICAgICAgICAgICAgICB0aGlzLndyYXBwZXJEaXYuY2xpZW50V2lkdGggLyAyIC0gMTAwICsgdGhpcy5zY3JvbGxMZWZ0ICsgJ3B4JztcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFJlcGxhY2UgbGVmdCBwYWRkaW5nIGNlbGxzXG4gICAgICAgIFsuLi50aGlzLnRCb2R5TGVmdFBhZGRpbmdFbGVtZW50cywgdGhpcy50SGVhZExlZnRQYWRkaW5nXS5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgICAgICAgICAgZWxlbWVudC5zdHlsZS5sZWZ0ID0gdGhpcy5zY3JvbGxMZWZ0ICsgJ3B4JztcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gVE9ETyAtIEZJWFxuICAgICAgICAvLyBMZXMgw6lsw6ltZW50cyBkZSBkcm9pdGUgc29udCBkw6ljYWzDqXMgZGUgMjJweCBsb3JzcXVlIGRlIG5vdXZlbGxlcyBsaWduZXMgc29udFxuICAgICAgICAvLyB2aXNpYmxlIChjaGlsZHJlbiBvdSBkZXRhaWxzKVxuXG4gICAgICAgIC8vIFJlcGxhY2UgcmlnaHQgcGFkZGluZyBjZWxsc1xuICAgICAgICBbLi4udGhpcy50Qm9keVJpZ2h0UGFkZGluZ0VsZW1lbnRzLCB0aGlzLnRIZWFkUmlnaHRQYWRkaW5nXS5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgICAgICAgICAgZWxlbWVudC5zdHlsZS5yaWdodCA9XG4gICAgICAgICAgICAgICAgTWF0aC5tYXgoMCwgdGhpcy53cmFwcGVyU2Nyb2xsT2Zmc2V0IC0gdGhpcy5zY3JvbGxMZWZ0IC0gdGhpcy50Qm9keVNjcm9sbGJhcldpZHRoKSArICdweCc7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIFJlcGxhY2UgZmlyc3QgY2VsbHMgJiBhZGQgcmlnaHQgc2hhZG93c1xuICAgICAgICBpZiAodGhpcy5wcm9wcy5zdGlja3kpIHtcbiAgICAgICAgICAgIGNvbnN0IHNoYWRvd1JpZ2h0ID0gJzFweCAwcHggMHB4IDBweCByZ2JhKDEyOCwgMTI4LCAxMjgsIDAuMzIpJztcbiAgICAgICAgICAgIFsuLi50aGlzLnRCb2R5Rmlyc3RFbGVtZW50cywgdGhpcy50SGVhZEZpcnN0XS5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgICAgICAgICAgICAgIGVsZW1lbnQuc3R5bGUubGVmdCA9IHRoaXMuc2Nyb2xsTGVmdCArICdweCc7XG4gICAgICAgICAgICAgICAgZWxlbWVudC5zdHlsZVsnYm94LXNoYWRvdyddID0gdGhpcy5zY3JvbGxMZWZ0ID4gMCA/IHNoYWRvd1JpZ2h0IDogJ25vbmUnO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBSZXBsYWNlIGNlbnRlcmVkIGVsZW1lbnRzIChlbGVtZW50cyB3aWR0aCBzaG91bGQgYmUgNTAlIG9mIHdyYXBwZXIpXG4gICAgICAgIGlmICh0aGlzLnRGb290Q2VudGVyZWREaXYpIHtcbiAgICAgICAgICAgIHRoaXMudEZvb3RDZW50ZXJlZERpdi5zdHlsZS5sZWZ0ID1cbiAgICAgICAgICAgICAgICBNYXRoLnJvdW5kKHRoaXMud3JhcHBlckRpdi5vZmZzZXRXaWR0aCAvIDQpICsgdGhpcy5zY3JvbGxMZWZ0ICsgJ3B4JztcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFJlcGxhY2Ugc3RpY2t5Um93Q29udGVudFxuICAgICAgICBjb25zdCB0YWJsZUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChgJHt0aGlzLnByb3BzLnRhYklkfS1ib2R5YCk7XG4gICAgICAgIGNvbnN0IHN0aWNreVJvd0NvbnRlbnREaXYgPSB0YWJsZUJvZHkuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnc3RpY2t5Um93Q29udGVudCcpO1xuICAgICAgICBpZiAoc3RpY2t5Um93Q29udGVudERpdi5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBBcnJheS5wcm90b3R5cGUuZmlsdGVyLmNhbGwoc3RpY2t5Um93Q29udGVudERpdiwgZGl2ID0+IHtcbiAgICAgICAgICAgICAgICBkaXYuc3R5bGUubGVmdCA9IGAke3RoaXMud3JhcHBlckRpdi5zY3JvbGxMZWZ0ICtcbiAgICAgICAgICAgICAgICAgICAgKHRoaXMucHJvcHMuc2VsZWN0YWJsZSA/IDI1IDogMCl9cHhgO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBoYW5kbGVSZXF1ZXN0TGl2ZURhdGFzKCkge1xuICAgICAgICB0aGlzLnNjcm9sbFRvVG9wKCk7XG4gICAgICAgIHRoaXMucHJvcHMucmVxdWVzdExpdmVEYXRhcygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNjcm9sbCBiYWNrIHRvIHRhYmxlIHRvcFxuICAgICAqL1xuICAgIHNjcm9sbFRvVG9wKCkge1xuICAgICAgICAvLyBIaWRlIGJhY2sgdG8gdG9wIGJ1dHRvblxuICAgICAgICB0aGlzLmJhY2tUb1RvcEJ1dHRvblsnc3R5bGUnXS50b3AgPSAtOTk5OTkgKyAncHgnO1xuXG4gICAgICAgIC8vIFNldCBzY3JvbGwgdG9wIHRvIDBcbiAgICAgICAgdGhpcy50Qm9keS5zY3JvbGxUb3AgPSAwO1xuICAgICAgICB0aGlzLnNjcm9sbFRvcCA9IDA7XG4gICAgfVxuXG4gICAgb3Blbk9yZGVyQ29sdW1uc01lbnUoZXZlbnQpIHtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgICBvcmRlckNvbHVtbnNBbmNob3I6IGV2ZW50LmN1cnJlbnRUYXJnZXQsXG4gICAgICAgICAgICBvcmRlckNvbHVtbnNNZW51T3BlbjogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgY2xvc2VPcmRlckNvbHVtbnNNZW51KCkge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICAgIG9yZGVyQ29sdW1uc0FuY2hvcjogbnVsbCxcbiAgICAgICAgICAgIG9yZGVyQ29sdW1uc01lbnVPcGVuOiBmYWxzZSxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBmdW5jdGlvbiBpcyBwYXNzIHRvIHRhYmxlIGJvZHkgdG8gYmUgYWR2aXNlZCB3aGVuIG5ldyByb3dzIGFyZSBkeW5hbWljYWxseSBhZGRlZCAoZXggZGV0YWlsIHJvd3MpXG4gICAgICogd2UgY2FuIHRoZW4gdXBkYXRlIG91ciBsaXN0IG9mIGZsb2F0aW5nIGJvZHkgZWxlbWVudHMgcmVmc1xuICAgICAqKi9cbiAgICBhZGROZXdSb3dSZWZzID0gKCkgPT4ge1xuICAgICAgICAvLyBkZWxheWVkIHJlZnMgZ2V0dGluZyB0byBsZXQgdGltZSBhdCBuZXcgcm93cyB0byBidWlsZCB1cFxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlRmxvYXRpbmdCb2R5RWxlbWVudFJlZnMoKTtcbiAgICAgICAgICAgIHRoaXMucGxhY2VIb3Jpem9udGFsRmxvYXRpbmdFbGVtZW50KCk7XG4gICAgICAgIH0sIDEwKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogU2Nyb2xsIGp1c3F1J2F1IHByb2NoYWluIHN0aWNrUm93XG4gICAgICpcbiAgICAgKiBAcGFyYW0gc3RpY2t5Um93SW5kZXhcbiAgICAgKi9cbiAgICBoYW5kbGVOZXh0U3RpY2t5Um93KHN0aWNreVJvd0luZGV4KSB7XG4gICAgICAgIGlmICh0aGlzLmdyb3VwQnlSb3dzUG9zaXRpb25zLmxlbmd0aCAtIDEgPiBzdGlja3lSb3dJbmRleCkge1xuICAgICAgICAgICAgY29uc3QgdGFibGVCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYCR7dGhpcy5wcm9wcy50YWJJZH0tYm9keWApO1xuICAgICAgICAgICAgdGFibGVCb2R5LnNjcm9sbFRvcCA9IHRoaXMuZ3JvdXBCeVJvd3NQb3NpdGlvbnNbc3RpY2t5Um93SW5kZXggKyAxXTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJlbmRlcigpIHtcbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgY2xhc3NlcyxcbiAgICAgICAgICAgIHRhYklkLFxuICAgICAgICAgICAgY29sdW1ucyxcbiAgICAgICAgICAgIG9yZGVyZWRDb2x1bW5zLFxuICAgICAgICAgICAgZGF0YVNvdXJjZSxcbiAgICAgICAgICAgIG9yZGVyYWJsZSxcbiAgICAgICAgICAgIG9uQ29sdW1uc09yZGVyVXBkYXRlLFxuICAgICAgICAgICAgbWFuZGF0b3J5Q29sdW1uSWQsXG4gICAgICAgICAgICBzZWxlY3RhYmxlLFxuICAgICAgICAgICAgc2VsZWN0ZWRJZExpc3QsXG4gICAgICAgICAgICBvblJvd0NsaWNrLFxuICAgICAgICAgICAgc29ydGFibGUsXG4gICAgICAgICAgICBzb3J0ZWRDb2x1bW5JZCxcbiAgICAgICAgICAgIHNvcnREaXJlY3Rpb24sXG4gICAgICAgICAgICBvblNvcnQsXG4gICAgICAgICAgICBmaWx0ZXJhYmxlLFxuICAgICAgICAgICAgb25GaWx0ZXJDaGFuZ2UsXG4gICAgICAgICAgICBpbmZpbml0ZVNjcm9sbCxcbiAgICAgICAgICAgIGhhc05leHREYXRhcyxcbiAgICAgICAgICAgIHJlcXVlc3ROZXh0RGF0YXMsXG4gICAgICAgICAgICBjb3VudExpdmVEYXRhcyxcbiAgICAgICAgICAgIGRhdGVMb2NhbGUsXG4gICAgICAgICAgICBudW1iZXJMb2NhbGUsXG4gICAgICAgICAgICBkZW5zZSxcbiAgICAgICAgICAgIGhlaWdodCxcbiAgICAgICAgICAgIHN0aWNreSxcbiAgICAgICAgICAgIHRyYW5zbGF0aW9ucyxcbiAgICAgICAgICAgIHZpZXcsXG4gICAgICAgICAgICBncm91cEJ5LFxuICAgICAgICAgICAgbG9va3VwQ29sdW1ucyxcbiAgICAgICAgICAgIGxvYWRpbmcsXG4gICAgICAgICAgICBmaXhlZENvbHVtbldpZHRoLFxuICAgICAgICAgICAgZGlzYWJsZUNvbnRleHRNZW51LFxuICAgICAgICAgICAgZm9vdGVyQ29udGVudCxcbiAgICAgICAgICAgIGRldGFpbFJvd3NPcHRpb25zLFxuICAgICAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgICAgICBjb25zdCB7IGRhdGVVcGRhdGUsIGlzU2Nyb2xsVG9Cb3R0b20sIGdyb3VwQnlJZHMgfSA9IHRoaXMuc3RhdGU7XG5cbiAgICAgICAgY29uc3QgaGVhZGVySGVpZ2h0ID0gZGVuc2UgPyBjc3QuQ0VMTF9IRUFERVJfSEVJR0hUX0RFTlNFIDogY3N0LkNFTExfSEVBREVSX0hFSUdIVDtcblxuICAgICAgICBsZXQgbmJDb2x1bW5zRGlzcGxheWVkID0gMDtcbiAgICAgICAgb3JkZXJlZENvbHVtbnMuZm9yRWFjaChjb2x1bW4gPT4ge1xuICAgICAgICAgICAgaWYgKGNvbHVtbi5kaXNwbGF5ZWQgIT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgbmJDb2x1bW5zRGlzcGxheWVkICs9IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xhc3Nlcy5yb290fT5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGlkPXt0YWJJZH1cbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzLnRhYmxlV3JhcHBlcn1cbiAgICAgICAgICAgICAgICAgICAgcmVmPXtkaXYgPT4gdGhpcy53cmFwcGVyRGl2ID0gZGl2fVxuICAgICAgICAgICAgICAgICAgICBvblNjcm9sbD17dGhpcy5oYW5kbGVIb3Jpem9udGFsU2Nyb2xsfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFRhYmxlIGNsYXNzTmFtZT17Y2xhc3Nlcy50YWJsZX0gc3R5bGU9e3sgaGVpZ2h0OiBoZWlnaHQgfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8SGlUYWJsZUhlYWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5zPXtjb2x1bW5zfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yZGVyZWRDb2x1bW5zPXtvcmRlcmVkQ29sdW1uc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhU291cmNlPXtkYXRhU291cmNlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGFibGU9e3NlbGVjdGFibGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRJZExpc3Q9e3NlbGVjdGVkSWRMaXN0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uU2VsZWN0PXt0aGlzLnRvZ2dsZUFsbH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3J0YWJsZT17c29ydGFibGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc29ydGVkQ29sdW1uSWQ9e3NvcnRlZENvbHVtbklkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvcnREaXJlY3Rpb249e3NvcnREaXJlY3Rpb259XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25Tb3J0PXtvblNvcnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyYWJsZT17ZmlsdGVyYWJsZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkZpbHRlckNoYW5nZT17b25GaWx0ZXJDaGFuZ2V9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3JkZXJhYmxlPXtvcmRlcmFibGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25Db2x1bW5zT3JkZXJVcGRhdGU9e29uQ29sdW1uc09yZGVyVXBkYXRlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hbmRhdG9yeUNvbHVtbklkPXttYW5kYXRvcnlDb2x1bW5JZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvblJlcXVlc3RMaXZlRGF0YXM9e3RoaXMuaGFuZGxlUmVxdWVzdExpdmVEYXRhc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudExpdmVEYXRhcz17Y291bnRMaXZlRGF0YXN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZUxvY2FsZT17ZGF0ZUxvY2FsZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXJMb2NhbGU9e251bWJlckxvY2FsZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZW5zZT17ZGVuc2V9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PXtoZWFkZXJIZWlnaHR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RpY2t5PXtzdGlja3l9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlldz17dmlld31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGlvbnM9e3RyYW5zbGF0aW9uc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb29rdXBDb2x1bW5zPXtsb29rdXBDb2x1bW5zfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpeGVkQ29sdW1uV2lkdGg9e2ZpeGVkQ29sdW1uV2lkdGh9XG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPEhpVGFibGVCb2R5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFiSWQ9e3RhYklkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbnM9e2NvbHVtbnN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3JkZXJlZENvbHVtbnM9e29yZGVyZWRDb2x1bW5zfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFTb3VyY2U9e2RhdGFTb3VyY2V9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0YWJsZT17c2VsZWN0YWJsZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZElkTGlzdD17c2VsZWN0ZWRJZExpc3R9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc29ydGVkQ29sdW1uSWQ9e3NvcnRlZENvbHVtbklkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uU2VsZWN0PXt0aGlzLnRvZ2dsZUl0ZW19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZVVwZGF0ZT17ZGF0ZVVwZGF0ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlTG9jYWxlPXtkYXRlTG9jYWxlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlckxvY2FsZT17bnVtYmVyTG9jYWxlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlbnNlPXtkZW5zZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9e2hlaWdodCAtIGhlYWRlckhlaWdodH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGlja3k9e3N0aWNreX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3PXt2aWV3fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uUm93Q2xpY2s9e29uUm93Q2xpY2t9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25TY3JvbGw9e3RoaXMuaGFuZGxlVmVydGljYWxTY3JvbGx9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkTmV3Um93UmVmcz17dGhpcy5hZGROZXdSb3dSZWZzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbGF0aW9ucz17dHJhbnNsYXRpb25zfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyb3VwQnk9e2dyb3VwQnl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGlja05leHQ9e3RoaXMuaGFuZGxlTmV4dFN0aWNreVJvd31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBncm91cEJ5SWRzPXtncm91cEJ5SWRzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvb2t1cENvbHVtbnM9e2xvb2t1cENvbHVtbnN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGluZz17bG9hZGluZ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXhlZENvbHVtbldpZHRoPXtmaXhlZENvbHVtbldpZHRofVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVDb250ZXh0TWVudT17ZGlzYWJsZUNvbnRleHRNZW51fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbFJvd3NPcHRpb25zPXtkZXRhaWxSb3dzT3B0aW9uc31cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICB7aW5maW5pdGVTY3JvbGwgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxIaVRhYmxlRm9vdGVyU2Nyb2xsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYklkPXt0YWJJZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzTmV4dERhdGFzPXtoYXNOZXh0RGF0YXN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3ROZXh0RGF0YXM9e3JlcXVlc3ROZXh0RGF0YXN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heEF1dG9SZXF1ZXN0PXszfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1Njcm9sbFRvQm90dG9tPXtpc1Njcm9sbFRvQm90dG9tfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGlvbnM9e3RyYW5zbGF0aW9uc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIHshaW5maW5pdGVTY3JvbGwgJiYgZm9vdGVyQ29udGVudCAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEhpVGFibGVGb290ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmJDb2x1bW5zRGlzcGxheWVkPXtuYkNvbHVtbnNEaXNwbGF5ZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXc9e3ZpZXd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Zm9vdGVyQ29udGVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0hpVGFibGVGb290ZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICA8L1RhYmxlPlxuXG4gICAgICAgICAgICAgICAgICAgIDxIaVRhYmxlQ29udGV4dE1lbnVcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhYklkPXt0YWJJZH1cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uU2VhcmNoPXt0aGlzLnByb3BzLm9uU2VhcmNofVxuICAgICAgICAgICAgICAgICAgICAgICAgb25SZWRpcmVjdD17dGhpcy5wcm9wcy5vblJlZGlyZWN0fVxuICAgICAgICAgICAgICAgICAgICAvPlxuXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgYmFjay10by10b3AtYnV0dG9uICR7Y2xhc3Nlcy5iYWNrVG9Ub3BCdXR0b25Db250YWluZXJ9YH0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8SGlCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwicmFpc2VkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3Nlcy5iYWNrVG9Ub3BCdXR0b259XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gdGhpcy5zY3JvbGxUb1RvcCgpfVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJvd1VwIGNsYXNzTmFtZT17Y2xhc3Nlcy5iYWNrVG9Ub3BCdXR0b25BcnJvd30gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7dHJhbnNsYXRpb25zLmJhY2tfdG9fdG9wfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJvd1VwIGNsYXNzTmFtZT17Y2xhc3Nlcy5iYWNrVG9Ub3BCdXR0b25BcnJvd30gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvSGlCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICk7XG4gICAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCB3aXRoU3R5bGVzKHN0eWxlcywgeyB3aXRoVGhlbWU6IHRydWUsIG5hbWU6ICdIbXVpSGlUYWJsZScgfSkoSGlUYWJsZSk7XG4iXX0=
31192
31206
 
31193
31207
  /***/ }),
31194
31208
  /* 292 */
@@ -34814,6 +34828,12 @@ var BodyRow = function (_React$PureComponent) {
34814
34828
 
34815
34829
  var _this = _possibleConstructorReturn(this, (BodyRow.__proto__ || Object.getPrototypeOf(BodyRow)).call(this));
34816
34830
 
34831
+ _this.handleOpenRowDetails = function (type) {
34832
+ return function () {
34833
+ _this.props.onOpenRowDetails(_this.props.row.rowId, type);
34834
+ };
34835
+ };
34836
+
34817
34837
  _this.state = {
34818
34838
  live: props.live,
34819
34839
  style: {
@@ -34867,11 +34887,6 @@ var BodyRow = function (_React$PureComponent) {
34867
34887
  this.props.onClick(this.props.row);
34868
34888
  }
34869
34889
  }
34870
- }, {
34871
- key: 'handleOpenRowDetails',
34872
- value: function handleOpenRowDetails() {
34873
- this.props.onOpenRowDetails(this.props.row.rowId);
34874
- }
34875
34890
  }, {
34876
34891
  key: 'handleSelect',
34877
34892
  value: function handleSelect() {
@@ -34899,7 +34914,8 @@ var BodyRow = function (_React$PureComponent) {
34899
34914
  sticky = _props.sticky,
34900
34915
  innerRow = _props.innerRow,
34901
34916
  isDetail = _props.isDetail,
34902
- other = _objectWithoutProperties(_props, ['classes', 'theme', 'row', 'columns', 'lookupColumns', 'orderedColumns', 'selectable', 'selected', 'onClick', 'view', 'dense', 'dateLocale', 'numberLocale', 'sticky', 'innerRow', 'isDetail']);
34917
+ detailRowsOptions = _props.detailRowsOptions,
34918
+ other = _objectWithoutProperties(_props, ['classes', 'theme', 'row', 'columns', 'lookupColumns', 'orderedColumns', 'selectable', 'selected', 'onClick', 'view', 'dense', 'dateLocale', 'numberLocale', 'sticky', 'innerRow', 'isDetail', 'detailRowsOptions']);
34903
34919
 
34904
34920
  var style = this.state.style;
34905
34921
 
@@ -34916,6 +34932,19 @@ var BodyRow = function (_React$PureComponent) {
34916
34932
  // If there is no datas don't display the row
34917
34933
  if (!row.hasOwnProperty('datas')) return false;
34918
34934
 
34935
+ var detailsInfos = {};
34936
+ if (row.details && row.details.length > 0) {
34937
+ detailsInfos = row.details.reduce(function (memo, item) {
34938
+ if (item.rows.length > 0 && detailRowsOptions[item.type] && detailRowsOptions[item.type].anchor) {
34939
+ memo[detailRowsOptions[item.type].anchor] = _extends({
34940
+ type: item.type,
34941
+ total: item.rows.length
34942
+ }, detailRowsOptions[item.type]);
34943
+ }
34944
+ return memo;
34945
+ }, {});
34946
+ }
34947
+
34919
34948
  return _react2.default.createElement(
34920
34949
  _Table.TableRow,
34921
34950
  {
@@ -35004,8 +35033,11 @@ var BodyRow = function (_React$PureComponent) {
35004
35033
  numberLocale: numberLocale,
35005
35034
  dense: dense,
35006
35035
  selected: selected,
35007
- onSelect: _this3.handleSelect,
35008
- onOpenDetails: _this3.handleOpenRowDetails,
35036
+ onSelect: _this3.handleSelect
35037
+ }, detailsInfos[colId] && {
35038
+ onOpenDetails: _this3.handleOpenRowDetails(detailsInfos[colId].type),
35039
+ detailInfos: detailsInfos[colId]
35040
+ }, {
35009
35041
  childrenCount: isParentAnchor ? row.children.length : null,
35010
35042
  colId: colId,
35011
35043
  lookedUp: lookedUp
@@ -35035,6 +35067,10 @@ BodyRow.propTypes = {
35035
35067
  * Densité d'affichage (joue sur la hauteur des lignes)
35036
35068
  */
35037
35069
  dense: _propTypes2.default.bool,
35070
+ /**
35071
+ * Options utilisées pour décrire le comportement de lignes de détails
35072
+ */
35073
+ detailRowsOptions: _propTypes2.default.object,
35038
35074
  /**
35039
35075
  * Fixe la taille des colonnes selon le type de vue
35040
35076
  * Sinon les colonnes s'adaptent à l'espace disponible
@@ -35109,10 +35145,11 @@ BodyRow.defaultProps = {
35109
35145
  live: false,
35110
35146
  innerRow: false,
35111
35147
  lookupColumns: [],
35112
- fixedColumnWidth: true
35148
+ fixedColumnWidth: true,
35149
+ detailRowsOptions: {}
35113
35150
  };
35114
35151
  exports.default = (0, _styles.withStyles)(styles, { withTheme: true, name: 'HmuiBodyRow' })(BodyRow);
35115
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9IaVRhYmxlL0JvZHlSb3cuanMiXSwibmFtZXMiOlsiY3N0Iiwic3R5bGVzIiwicm9vdFNlbGVjdGVkIiwiYmFja2dyb3VuZENvbG9yIiwidGhlbWUiLCJwYWxldHRlIiwiYmFja2dyb3VuZDMiLCJob3ZlciIsImZvbnRXZWlnaHQiLCJ0eXBvZ3JhcGh5IiwiZm9udFdlaWdodE1lZGl1bSIsInJvb3RTdGlja3kiLCJwb3NpdGlvbiIsImJvcmRlciIsInpJbmRleCIsInBhZGRpbmdUb3AiLCJwYWRkaW5nQm90dG9tIiwicGF0Y2hEaXYiLCJ3aWR0aCIsInBhZGRpbmdSaWdodCIsImhlaWdodCIsInBhdGNoRGl2SW5uZXJSb3ciLCJCb2R5Um93IiwicHJvcHMiLCJzdGF0ZSIsImxpdmUiLCJzdHlsZSIsImJ1c2luZXNzIiwicHJpbWFyeSIsIm5vcm1hbCIsInRyYW5zaXRpb24iLCJoYW5kbGVDbGljayIsImJpbmQiLCJoYW5kbGVPcGVuUm93RGV0YWlscyIsImhhbmRsZVNlbGVjdCIsInNldFN0YXRlIiwicHJldlByb3BzIiwicHJldlN0YXRlIiwicHJldkNvbnRleHQiLCJzZXRUaW1lb3V0IiwiZXZlbnQiLCJvbkNsaWNrIiwidGFyZ2V0IiwidGFnTmFtZSIsInJvdyIsIm9uT3BlblJvd0RldGFpbHMiLCJyb3dJZCIsIm9uU2VsZWN0IiwiY2xhc3NlcyIsImNvbHVtbnMiLCJsb29rdXBDb2x1bW5zIiwib3JkZXJlZENvbHVtbnMiLCJzZWxlY3RhYmxlIiwic2VsZWN0ZWQiLCJ2aWV3IiwiZGVuc2UiLCJkYXRlTG9jYWxlIiwibnVtYmVyTG9jYWxlIiwic3RpY2t5IiwiaW5uZXJSb3ciLCJpc0RldGFpbCIsIm90aGVyIiwidW5maXhlZENvbCIsInJvd1N0eWxlIiwiY3Vyc29yIiwiQ0VMTF9IRUlHSFRfREVOU0UiLCJDRUxMX0hFSUdIVCIsImJhY2tncm91bmQxIiwicGF0Y2hEaXZDbGFzcyIsImhhc093blByb3BlcnR5IiwicGFkZGluZ0xlZnQiLCJERUZBVUxUX1BBRERJTkciLCJtYXAiLCJjb2xSZWYiLCJpbmRleCIsImNvbFJlZklkIiwiY29sSWQiLCJkaXNwbGF5ZWQiLCJjb2xWaWV3IiwiY29sUmVmUHJvcHMiLCJmaXJzdCIsImFsaWduIiwiY29sRGF0YSIsImRhdGEiLCJlbGxpcHNpcyIsImZpeGVkV2lkdGgiLCJ0eXBlIiwiY29sdW1uUHJvcHMiLCJlZmZlY3RpdmVWaWV3IiwiaXNQYXJlbnRBbmNob3IiLCJwYXJlbnRBbmNob3JDb2x1bW4iLCJjaGlsZHJlbiIsImxlbmd0aCIsInVuZml4ZWQiLCJsb29rZWRVcCIsIkFycmF5IiwiaXNBcnJheSIsImluY2x1ZGVzIiwiZGF0YXMiLCJ1bmRlZmluZWQiLCJjb2xJdGVtIiwiZmluZCIsIml0ZW0iLCJpZCIsInZhbHVlIiwiUHVyZUNvbXBvbmVudCIsInByb3BUeXBlcyIsIm9iamVjdCIsImlzUmVxdWlyZWQiLCJib29sIiwiZml4ZWRDb2x1bW5XaWR0aCIsImFycmF5IiwiZnVuYyIsIm9wZW5lZEFzUGFyZW50Iiwib25lT2YiLCJkZWZhdWx0UHJvcHMiLCJ3aXRoVGhlbWUiLCJuYW1lIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUVBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOztBQUNBOztBQUNBOzs7O0FBQ0E7O0FBQ0E7O0lBQVlBLEc7Ozs7Ozs7Ozs7Ozs7OztBQVJaOzs7QUFVTyxJQUFNQywwQkFBUyxTQUFUQSxNQUFTO0FBQUEsV0FBVTtBQUM1QkMsc0JBQWM7QUFDVkMsNkJBQWlCQyxNQUFNQyxPQUFOLENBQWNDO0FBRHJCLFNBRGM7QUFJNUJDLGVBQU87QUFDSCx1QkFBVztBQUNQSixpQ0FBaUJDLE1BQU1DLE9BQU4sQ0FBY0UsS0FEeEI7QUFFUEMsNEJBQVlKLE1BQU1LLFVBQU4sQ0FBaUJDO0FBRnRCO0FBRFIsU0FKcUI7QUFVNUJDLG9CQUFZO0FBQ1JDLHNCQUFVLFVBREY7QUFFUkMsb0JBQVEsTUFGQTtBQUdSViw2QkFBaUIsU0FIVDtBQUlSVyxvQkFBUSxFQUpBO0FBS1JD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QTFDTDtBQTJDZjs7O0FBR0FDLG9CQUFnQixvQkFBVUosSUE5Q1g7QUErQ2Y7OztBQUdBMUQsb0JBQWdCLG9CQUFVNEQsS0FBVixDQUFnQkgsVUFsRGpCO0FBbURmOzs7QUFHQWhFLFNBQUssb0JBQVUrRCxNQUFWLENBQWlCQyxVQXREUDtBQXVEZjs7O0FBR0F4RCxnQkFBWSxvQkFBVXlELElBMURQO0FBMkRmOzs7QUFHQXhELGNBQVUsb0JBQVV3RCxJQTlETDtBQStEZjs7O0FBR0FuRCxZQUFRLG9CQUFVbUQsSUFsRUg7QUFtRWY7Ozs7QUFJQXZELFVBQU0sb0JBQVU0RCxLQUFWLENBQWdCLENBQUMsR0FBRCxFQUFNLEdBQU4sRUFBVyxHQUFYLENBQWhCO0FBdkVTLEM7QUFEakI1RixPLENBMkVLNkYsWSxHQUFlO0FBQ2xCL0QsZ0JBQVksS0FETTtBQUVsQkMsY0FBVSxLQUZRO0FBR2xCNEQsb0JBQWdCLEtBSEU7QUFJbEIzRCxVQUFNLEdBSlk7QUFLbEJDLFdBQU8sS0FMVztBQU1sQkcsWUFBUSxLQU5VO0FBT2xCakMsVUFBTSxLQVBZO0FBUWxCa0MsY0FBVSxLQVJRO0FBU2xCVCxtQkFBZSxFQVRHO0FBVWxCNEQsc0JBQWtCO0FBVkEsQztrQkEwT1gsd0JBQVc3RyxNQUFYLEVBQW1CLEVBQUVtSCxXQUFXLElBQWIsRUFBbUJDLE1BQU0sYUFBekIsRUFBbkIsRUFBNkQvRixPQUE3RCxDIiwiZmlsZSI6IkJvZHlSb3cuanMiLCJzb3VyY2VSb290IjoiL2hvbWUvdmRvc3NhbnRvcy9kZXYvaGlwYXktbWF0ZXJpYWwtdWkiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAZmxvd1xuLy8gQGluaGVyaXRlZENvbXBvbmVudCBCb2R5Q2VsbEJ1aWxkZXJcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQgeyBUYWJsZVJvdywgVGFibGVDZWxsIH0gZnJvbSAnbWF0ZXJpYWwtdWkvVGFibGUnO1xuaW1wb3J0IHsgZmFkZSB9IGZyb20gJ21hdGVyaWFsLXVpL3N0eWxlcy9jb2xvck1hbmlwdWxhdG9yJztcbmltcG9ydCBCb2R5Q2VsbEJ1aWxkZXIgZnJvbSAnLi9Cb2R5Q2VsbEJ1aWxkZXInO1xuaW1wb3J0IHsgd2l0aFN0eWxlcywgd2l0aFRoZW1lIH0gZnJvbSAnLi4vc3R5bGVzJztcbmltcG9ydCAqIGFzIGNzdCBmcm9tICcuL2NvbnN0YW50cyc7XG5cbmV4cG9ydCBjb25zdCBzdHlsZXMgPSB0aGVtZSA9PiAoe1xuICAgIHJvb3RTZWxlY3RlZDoge1xuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lLnBhbGV0dGUuYmFja2dyb3VuZDMsXG4gICAgfSxcbiAgICBob3Zlcjoge1xuICAgICAgICAnJjpob3Zlcic6IHtcbiAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogdGhlbWUucGFsZXR0ZS5ob3ZlcixcbiAgICAgICAgICAgIGZvbnRXZWlnaHQ6IHRoZW1lLnR5cG9ncmFwaHkuZm9udFdlaWdodE1lZGl1bSxcbiAgICAgICAgfSxcbiAgICB9LFxuICAgIHJvb3RTdGlja3k6IHtcbiAgICAgICAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gICAgICAgIGJvcmRlcjogJ25vbmUnLFxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICdpbmhlcml0JyxcbiAgICAgICAgekluZGV4OiAxMixcbiAgICAgICAgcGFkZGluZ1RvcDogMCxcbiAgICAgICAgcGFkZGluZ0JvdHRvbTogMCxcbiAgICB9LFxuICAgIHBhdGNoRGl2OiB7XG4gICAgICAgIHBvc2l0aW9uOiAncmVsYXRpdmUnLFxuICAgICAgICBib3JkZXI6ICdub25lJyxcbiAgICAgICAgd2lkdGg6IDAsXG4gICAgICAgIHBhZGRpbmdSaWdodDogMCxcbiAgICAgICAgcGFkZGluZ1RvcDogMCxcbiAgICAgICAgcGFkZGluZ0JvdHRvbTogMCxcbiAgICAgICAgaGVpZ2h0OiAnMTAwJScsXG4gICAgICAgIHpJbmRleDogMTIsXG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogJ2luaGVyaXQnLFxuICAgIH0sXG4gICAgcGF0Y2hEaXZJbm5lclJvdzoge1xuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjRUNFRkYwJyxcbiAgICB9LFxufSk7XG5cbmNsYXNzIEJvZHlSb3cgZXh0ZW5kcyBSZWFjdC5QdXJlQ29tcG9uZW50IHtcbiAgICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgICAgICAvKipcbiAgICAgICAgICogQ29sb25uZXMgZHUgdGFibGVhdSAobGFiZWwsIGxhcmdldXIsIGRvbm7DqWVzLCAuLi4gKVxuICAgICAgICAgKi9cbiAgICAgICAgY29sdW1uczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgICAgICAvKipcbiAgICAgICAgICogRGVuc2l0w6kgZCdhZmZpY2hhZ2UgKGpvdWUgc3VyIGxhIGhhdXRldXIgZGVzIGxpZ25lcylcbiAgICAgICAgICovXG4gICAgICAgIGRlbnNlOiBQcm9wVHlwZXMuYm9vbCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEZpeGUgbGEgdGFpbGxlIGRlcyBjb2xvbm5lcyBzZWxvbiBsZSB0eXBlIGRlIHZ1ZVxuICAgICAgICAgKiBTaW5vbiBsZXMgY29sb25uZXMgcydhZGFwdGVudCDDoCBsJ2VzcGFjZSBkaXNwb25pYmxlXG4gICAgICAgICAqL1xuICAgICAgICBmaXhlZENvbHVtbldpZHRoOiBQcm9wVHlwZXMuYm9vbCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEFwcGxpcXVlIGxlIHN0eWxlIGQndW5lIGxpZ25lIGludMOpZ3LDqWUgYSB1biBzb3VzLXRhYmxlYXVcbiAgICAgICAgICovXG4gICAgICAgIGlubmVyUm93OiBQcm9wVHlwZXMuYm9vbCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEFwcGxpcXVlIGxlIHN0eWxlIGQndW5lIGxpZ25lIGRlIGTDqXRhaWxcbiAgICAgICAgICovXG4gICAgICAgIGlzRGV0YWlsOiBQcm9wVHlwZXMuYm9vbCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFNpIGMnZXN0IHVuZSBub3V2ZWxsZSBsaWduZSAobGl2ZSkgb24gbHVpIGFwcGxpcXVlIHVuZSB0cmFuc2l0aW9uIHN1ciBsZSBiYWNrZ3JvdW5kXG4gICAgICAgICAqL1xuICAgICAgICBsaXZlOiBQcm9wVHlwZXMuYm9vbCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIElkZW50aWZpYW50IGRlIGxhIG91IGRlcyBjb2xvbm5lcyBzdXIgbGEvbGVzcXVlbGxlcyBpbCB5IGEgdW5lICdsb29rdXAnIHNlYXJjaFxuICAgICAgICAgKi9cbiAgICAgICAgbG9va3VwQ29sdW1uczogUHJvcFR5cGVzLmFycmF5LFxuICAgICAgICAvKipcbiAgICAgICAgICogRm9uY3Rpb24gZGUgY2FsbGJhY2sgYXBwZWzDqWUgYXUgY2xpY2sgc3VyIGxhIGxpZ25lXG4gICAgICAgICAqL1xuICAgICAgICBvbkNsaWNrOiBQcm9wVHlwZXMuZnVuYyxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEZvbmN0aW9uIGRlIGNhbGxiYWNrIGFwcGVsw6llIHBvdXIgb3V2cmlyIGxlcyBsaWduZXMgZGUgZMOpdGFpbHNcbiAgICAgICAgICogUGFzc2UgbCdpZCBkZSBsYSBsaWduZSAocm93SWQpXG4gICAgICAgICAqL1xuICAgICAgICBvbk9wZW5Sb3dEZXRhaWxzOiBQcm9wVHlwZXMuZnVuYyxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFVuaXF1ZW1lbnQgc2kgc2VsZWN0YWJsZSwgZm9uY3Rpb24gZGUgY2FsbGJhY2sgYXBwZWzDqWUgYXUgb25DaGFuZ2Ugc3VyIGxhIGNoZWNrYm94XG4gICAgICAgICAqL1xuICAgICAgICBvblNlbGVjdDogUHJvcFR5cGVzLmZ1bmMsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBVbmlxdWVtZW50IHNpIHJvdyBhIGRlcyBjaGlsZHJlbiwgYWZmaWNoZSBsYSBsaWduZSBcIm91dmVydGVcIiAoYXZlYyBzb3VzLXRhYmxlYXUpXG4gICAgICAgICAqL1xuICAgICAgICBvcGVuZWRBc1BhcmVudDogUHJvcFR5cGVzLmJvb2wsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUYWJsZWF1IGRlcyBjb2xvbm5lcyBhZmZpY2jDqWVzIChvcmRvbm7DqWVzLCB2aXNpYmxlcy9jYWNow6llcywgbC9tL3MpXG4gICAgICAgICAqL1xuICAgICAgICBvcmRlcmVkQ29sdW1uczogUHJvcFR5cGVzLmFycmF5LmlzUmVxdWlyZWQsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBPYmpldCBkZXMgdmFsZXVycyBhIGFmZmljaGVyXG4gICAgICAgICAqL1xuICAgICAgICByb3c6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIETDqWZpbml0IHNpIGxhIGxpZ25lIGVzdCBzw6lsZWN0aW9ubmFibGVcbiAgICAgICAgICovXG4gICAgICAgIHNlbGVjdGFibGU6IFByb3BUeXBlcy5ib29sLFxuICAgICAgICAvKipcbiAgICAgICAgICogVW5pcXVlbWVudCBzaSBzZWxlY3RhYmxlLCBkw6lmaW5pdCBzaSBsYSBsaWduZSBlc3Qgc8OpbGVjdGlvbm7DqWVcbiAgICAgICAgICovXG4gICAgICAgIHNlbGVjdGVkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIETDqWZpbml0IHNpIGxhIDFlIGNvbG9ubmUgcmVzdGUgdmlzaWJsZSDDoCBnYXVjaGVcbiAgICAgICAgICovXG4gICAgICAgIHN0aWNreTogUHJvcFR5cGVzLmJvb2wsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUYWlsbGUgZHUgdGFibGVhdSAoTC9NL1MpLCBkw6lmaW5pdCBsJ2VzcGFjZSBlbnRyZSBsZXMgY2VsbHVsZXNcbiAgICAgICAgICogZXQgbGV1cnMgdGFpbGxlcyBwYXIgZGVmYXVsdC5cbiAgICAgICAgICovXG4gICAgICAgIHZpZXc6IFByb3BUeXBlcy5vbmVPZihbJ2wnLCAnbScsICdzJ10pLFxuICAgIH07XG5cbiAgICBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgICAgICBzZWxlY3RhYmxlOiBmYWxzZSxcbiAgICAgICAgc2VsZWN0ZWQ6IGZhbHNlLFxuICAgICAgICBvcGVuZWRBc1BhcmVudDogZmFsc2UsXG4gICAgICAgIHZpZXc6ICdsJyxcbiAgICAgICAgZGVuc2U6IGZhbHNlLFxuICAgICAgICBzdGlja3k6IGZhbHNlLFxuICAgICAgICBsaXZlOiBmYWxzZSxcbiAgICAgICAgaW5uZXJSb3c6IGZhbHNlLFxuICAgICAgICBsb29rdXBDb2x1bW5zOiBbXSxcbiAgICAgICAgZml4ZWRDb2x1bW5XaWR0aDogdHJ1ZSxcbiAgICB9O1xuXG4gICAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICAgICAgc3VwZXIoKTtcblxuICAgICAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgICAgICAgbGl2ZTogcHJvcHMubGl2ZSxcbiAgICAgICAgICAgIHN0eWxlOiB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiBwcm9wcy5saXZlXG4gICAgICAgICAgICAgICAgICAgID8gZmFkZShwcm9wcy50aGVtZS5wYWxldHRlLmJ1c2luZXNzLnByaW1hcnkubm9ybWFsLCAwLjA4KVxuICAgICAgICAgICAgICAgICAgICA6IHByb3BzLnRoZW1lLnBhbGV0dGUuYmFja2dyb3VuZDMsXG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogcHJvcHMubGl2ZSA/ICdiYWNrZ3JvdW5kLWNvbG9yIDJzJyA6ICdub25lJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5oYW5kbGVDbGljayA9IHRoaXMuaGFuZGxlQ2xpY2suYmluZCh0aGlzKTtcbiAgICAgICAgdGhpcy5oYW5kbGVPcGVuUm93RGV0YWlscyA9IHRoaXMuaGFuZGxlT3BlblJvd0RldGFpbHMuYmluZCh0aGlzKTtcbiAgICAgICAgdGhpcy5oYW5kbGVTZWxlY3QgPSB0aGlzLmhhbmRsZVNlbGVjdC5iaW5kKHRoaXMpO1xuICAgIH1cblxuICAgIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgICAgICAvLyBMaXZlIGRhdGEgYW5pbWF0aW9uXG4gICAgICAgIGlmICh0aGlzLnN0YXRlLmxpdmUpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgICAgICAgIGxpdmU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHN0eWxlOiB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogdGhpcy5wcm9wcy50aGVtZS5wYWxldHRlLmJhY2tncm91bmQzLFxuICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiAnYmFja2dyb3VuZC1jb2xvciAycycsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY29tcG9uZW50RGlkVXBkYXRlKHByZXZQcm9wcywgcHJldlN0YXRlLCBwcmV2Q29udGV4dCkge1xuICAgICAgICAvLyBBZnRlciBhbmltYXRpb24sIHJlc2V0IHRyYW5zaXRpb24gdG8gbm9uZSB0byBoYW5kbGUgYmFja2dyb3VuZCBjaGFuZ2Ugb24gcm93IGhvdmVyXG4gICAgICAgIGlmIChwcmV2U3RhdGUubGl2ZSA9PT0gdHJ1ZSAmJiB0aGlzLnN0YXRlLmxpdmUgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogdGhpcy5wcm9wcy50aGVtZS5wYWxldHRlLmJhY2tncm91bmQzLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogJ25vbmUnLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSwgMjUwMCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBoYW5kbGVDbGljayhldmVudCkge1xuICAgICAgICAvLyBQcmV2ZW50IGNsaWNrIHByb3BhZ2F0aW9uIGlmIGl0J3MgYSBjbGljayBvbiBpbnB1dCAoY2hlY2tib3hlcy4uLilcbiAgICAgICAgaWYgKHRoaXMucHJvcHMub25DbGljayAmJiBldmVudC50YXJnZXQudGFnTmFtZSAhPT0gJ0lOUFVUJykge1xuICAgICAgICAgICAgdGhpcy5wcm9wcy5vbkNsaWNrKHRoaXMucHJvcHMucm93KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGhhbmRsZU9wZW5Sb3dEZXRhaWxzKCkge1xuICAgICAgICB0aGlzLnByb3BzLm9uT3BlblJvd0RldGFpbHModGhpcy5wcm9wcy5yb3cucm93SWQpO1xuICAgIH1cblxuICAgIGhhbmRsZVNlbGVjdCgpIHtcbiAgICAgICAgdGhpcy5wcm9wcy5vblNlbGVjdCh0aGlzLnByb3BzLnJvdyk7XG4gICAgfVxuXG4gICAgcmVuZGVyKCkge1xuICAgICAgICBjb25zdCB7XG4gICAgICAgICAgICBjbGFzc2VzLFxuICAgICAgICAgICAgdGhlbWUsXG4gICAgICAgICAgICByb3csXG4gICAgICAgICAgICBjb2x1bW5zLFxuICAgICAgICAgICAgbG9va3VwQ29sdW1ucyxcbiAgICAgICAgICAgIG9yZGVyZWRDb2x1bW5zLFxuICAgICAgICAgICAgc2VsZWN0YWJsZSxcbiAgICAgICAgICAgIHNlbGVjdGVkLFxuICAgICAgICAgICAgb25DbGljayxcbiAgICAgICAgICAgIHZpZXcsXG4gICAgICAgICAgICBkZW5zZSxcbiAgICAgICAgICAgIGRhdGVMb2NhbGUsXG4gICAgICAgICAgICBudW1iZXJMb2NhbGUsXG4gICAgICAgICAgICBzdGlja3ksXG4gICAgICAgICAgICBpbm5lclJvdyxcbiAgICAgICAgICAgIGlzRGV0YWlsLFxuICAgICAgICAgICAgLi4ub3RoZXJcbiAgICAgICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICAgICAgY29uc3QgeyBzdHlsZSB9ID0gdGhpcy5zdGF0ZTtcblxuICAgICAgICBsZXQgdW5maXhlZENvbCA9IHRydWU7XG5cbiAgICAgICAgY29uc3Qgcm93U3R5bGUgPSB7XG4gICAgICAgICAgICAuLi5zdHlsZSxcbiAgICAgICAgICAgIGN1cnNvcjogdHlwZW9mIG9uQ2xpY2sgPT09ICd1bmRlZmluZWQnID8gJ2F1dG8nIDogJ3BvaW50ZXInLFxuICAgICAgICAgICAgaGVpZ2h0OiBkZW5zZSA/IGNzdC5DRUxMX0hFSUdIVF9ERU5TRSA6IGNzdC5DRUxMX0hFSUdIVCxcbiAgICAgICAgICAgIC4uLihpc0RldGFpbCAmJiB7IGJhY2tncm91bmRDb2xvcjogdGhlbWUucGFsZXR0ZS5iYWNrZ3JvdW5kMSB9KSxcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBwYXRjaERpdkNsYXNzID0gY2xhc3NOYW1lcyhjbGFzc2VzLnBhdGNoRGl2LCB7XG4gICAgICAgICAgICBbY2xhc3Nlcy5wYXRjaERpdklubmVyUm93XTogaW5uZXJSb3csXG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIElmIHRoZXJlIGlzIG5vIGRhdGFzIGRvbid0IGRpc3BsYXkgdGhlIHJvd1xuICAgICAgICBpZiAoIXJvdy5oYXNPd25Qcm9wZXJ0eSgnZGF0YXMnKSkgcmV0dXJuIGZhbHNlO1xuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8VGFibGVSb3dcbiAgICAgICAgICAgICAgICBjbGFzc2VzPXt7IHNlbGVjdGVkOiBjbGFzc2VzLnJvb3RTZWxlY3RlZCwgaG92ZXI6IGNsYXNzZXMuaG92ZXIgfX1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXt0aGlzLmhhbmRsZUNsaWNrfVxuICAgICAgICAgICAgICAgIGhvdmVyXG4gICAgICAgICAgICAgICAgc3R5bGU9e3Jvd1N0eWxlfVxuICAgICAgICAgICAgICAgIHNlbGVjdGVkPXtzZWxlY3RlZH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7LyogTGVmdCBwYWRkaW5nIGNlbGwgKi99XG4gICAgICAgICAgICAgICAgPFRhYmxlQ2VsbFxuICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBkZW5zZSA/IGNzdC5DRUxMX0hFSUdIVF9ERU5TRSA6IGNzdC5DRUxMX0hFSUdIVCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmdMZWZ0OiBjc3QuREVGQVVMVF9QQURESU5HW3ZpZXddLFxuICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICBrZXk9e2Ake3Jvdy5yb3dJZH0tbGVmdC1jZWxsYH1cbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtwYXRjaERpdkNsYXNzfVxuICAgICAgICAgICAgICAgIC8+XG5cbiAgICAgICAgICAgICAgICB7b3JkZXJlZENvbHVtbnMubWFwKChjb2xSZWYsIGluZGV4KSA9PiB7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gRHluYW1pYyBjb2x1bW4gc2V0dGluZ3MgKGZyb20gT3JkZXJDb2x1bW5zKVxuICAgICAgICAgICAgICAgICAgICBjb25zdCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xJZDogY29sUmVmSWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5ZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICB2aWV3OiBjb2xWaWV3LFxuICAgICAgICAgICAgICAgICAgICAgICAgLi4uY29sUmVmUHJvcHNcbiAgICAgICAgICAgICAgICAgICAgfSA9IGNvbFJlZjtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoZGlzcGxheWVkID09PSBmYWxzZSkgcmV0dXJuIG51bGw7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gdGhlIGZpcnN0IGNvbHVtbiBpcyBzdGlja3kgKGV4Y2VwdCBjaGVja2JveClcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZmlyc3QgPSBpbmRleCA9PT0gMDtcblxuICAgICAgICAgICAgICAgICAgICAvLyBTdGF0aWMgY29sdW1uIHNldHRpbmdzXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbElkLFxuICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ24sXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiBjb2xEYXRhLFxuICAgICAgICAgICAgICAgICAgICAgICAgZWxsaXBzaXMsXG4gICAgICAgICAgICAgICAgICAgICAgICBmaXhlZFdpZHRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgLi4uY29sdW1uUHJvcHNcbiAgICAgICAgICAgICAgICAgICAgfSA9IGNvbHVtbnNbY29sUmVmSWRdO1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIHZpZXcgZGVmaW5lIGluIE9yZGVyQ29sdW1uIG9yIHRhYmxlIHByb3AgdmlldyBieSBkZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVmZmVjdGl2ZVZpZXcgPSBjb2xWaWV3IHx8IHZpZXc7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gYWRkIGNsaWNrYWJsZSBiYWRnZSBpbiBjZWxsIHRvIG9wZW4gY2hpbGRyZW5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaXNQYXJlbnRBbmNob3IgPVxuICAgICAgICAgICAgICAgICAgICAgICAgcm93Lmhhc093blByb3BlcnR5KCdwYXJlbnRBbmNob3JDb2x1bW4nKSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgcm93LnBhcmVudEFuY2hvckNvbHVtbiA9PT0gY29sSWQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvdy5oYXNPd25Qcm9wZXJ0eSgnY2hpbGRyZW4nKSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgcm93LmNoaWxkcmVuLmxlbmd0aCA+IDA7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gdGhlIGZpcnN0IG5vbiBmaXhlZCBjb2x1bW4gaXMgdGhlIG9ubHkgb25lIG5vdCBmaXhlZFxuICAgICAgICAgICAgICAgICAgICBjb25zdCB1bmZpeGVkID0gdW5maXhlZENvbCAmJiBmaXhlZFdpZHRoICE9PSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB1bmZpeGVkQ29sID0gdW5maXhlZCA/IGZhbHNlIDogdW5maXhlZENvbDtcblxuICAgICAgICAgICAgICAgICAgICAvLyBhZGQgbG9va2VkVXAgc3R5bGVcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbG9va2VkVXAgPSBBcnJheS5pc0FycmF5KGxvb2t1cENvbHVtbnMpICYmIGxvb2t1cENvbHVtbnMuaW5jbHVkZXMoY29sSWQpO1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIENlbGwgZGF0YVxuICAgICAgICAgICAgICAgICAgICBsZXQgZGF0YSA9IHJvdy5kYXRhc1tjb2xSZWZJZF07XG4gICAgICAgICAgICAgICAgICAgIC8vIEdldCBvYmplY3QgZGF0YSBmb3IgY29sdW1uIGJhc2VkIG9uIHJlZmVyZW5jZSBkYXRhc1xuICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YSAhPT0gdW5kZWZpbmVkICYmIGNvbERhdGEgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY29sSXRlbSA9IGNvbERhdGEuZmluZChpdGVtID0+IGl0ZW0uaWQgPT09IGRhdGEudmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvbEl0ZW0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBIeWRyYXRlIGRhdGEgb2JqZWN0IHdpdGggcmVmZXJlbmNlIGl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5jb2xJdGVtLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5kYXRhLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgPEJvZHlDZWxsQnVpbGRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsuLi5vdGhlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2Ake3Jvdy5yb3dJZH0tJHtjb2xJZH0tY2VsbGB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdWtleT17YCR7cm93LnJvd0lkfS0ke2NvbElkfS1jZWxsYH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja2JveFZhbHVlPXtyb3cucm93SWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT17dHlwZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhPXtkYXRhfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsbGlwc2lzPXtlbGxpcHNpc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGlnbj17YWxpZ259XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlldz17ZWZmZWN0aXZlVmlld31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nPXtjc3QuREVGQVVMVF9QQURESU5HW3ZpZXddfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPXt3aWR0aH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXhlZFdpZHRoPXshdW5maXhlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGlja3k9e3N0aWNreSAmJiBmaXJzdH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RhYmxlPXtzZWxlY3RhYmxlICYmIGZpcnN0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVMb2NhbGU9e2RhdGVMb2NhbGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyTG9jYWxlPXtudW1iZXJMb2NhbGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVuc2U9e2RlbnNlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkPXtzZWxlY3RlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvblNlbGVjdD17dGhpcy5oYW5kbGVTZWxlY3R9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25PcGVuRGV0YWlscz17dGhpcy5oYW5kbGVPcGVuUm93RGV0YWlsc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbkNvdW50PXtpc1BhcmVudEFuY2hvciA/IHJvdy5jaGlsZHJlbi5sZW5ndGggOiBudWxsfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbElkPXtjb2xJZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb29rZWRVcD17bG9va2VkVXB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgey4uLmNvbHVtblByb3BzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsuLi5jb2xSZWZQcm9wc31cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICB9KX1cblxuICAgICAgICAgICAgICAgIHsvKiBSaWdodCBwYWRkaW5nIGNlbGwgKi99XG4gICAgICAgICAgICAgICAgPFRhYmxlQ2VsbFxuICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBkZW5zZSA/IGNzdC5DRUxMX0hFSUdIVF9ERU5TRSA6IGNzdC5DRUxMX0hFSUdIVCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmdMZWZ0OiBjc3QuREVGQVVMVF9QQURESU5HW3ZpZXddLFxuICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICBrZXk9e2Ake3Jvdy5yb3dJZH0tcmlnaHQtY2VsbGB9XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17cGF0Y2hEaXZDbGFzc31cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9UYWJsZVJvdz5cbiAgICAgICAgKTtcbiAgICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHdpdGhTdHlsZXMoc3R5bGVzLCB7IHdpdGhUaGVtZTogdHJ1ZSwgbmFtZTogJ0htdWlCb2R5Um93JyB9KShCb2R5Um93KTtcbiJdfQ==
35152
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9IaVRhYmxlL0JvZHlSb3cuanMiXSwibmFtZXMiOlsiY3N0Iiwic3R5bGVzIiwicm9vdFNlbGVjdGVkIiwiYmFja2dyb3VuZENvbG9yIiwidGhlbWUiLCJwYWxldHRlIiwiYmFja2dyb3VuZDMiLCJob3ZlciIsImZvbnRXZWlnaHQiLCJ0eXBvZ3JhcGh5IiwiZm9udFdlaWdodE1lZGl1bSIsInJvb3RTdGlja3kiLCJwb3NpdGlvbiIsImJvcmRlciIsInpJbmRleCIsInBhZGRpbmdUb3AiLCJwYWRkaW5nQm90dG9tIiwicGF0Y2hEaXYiLCJ3aWR0aCIsInBhZGRpbmdSaWdodCIsImhlaWdodCIsInBhdGNoRGl2SW5uZXJSb3ciLCJCb2R5Um93IiwicHJvcHMiLCJoYW5kbGVPcGVuUm93RGV0YWlscyIsIm9uT3BlblJvd0RldGFpbHMiLCJyb3ciLCJyb3dJZCIsInR5cGUiLCJzdGF0ZSIsImxpdmUiLCJzdHlsZSIsImJ1c2luZXNzIiwicHJpbWFyeSIsIm5vcm1hbCIsInRyYW5zaXRpb24iLCJoYW5kbGVDbGljayIsImJpbmQiLCJoYW5kbGVTZWxlY3QiLCJzZXRTdGF0ZSIsInByZXZQcm9wcyIsInByZXZTdGF0ZSIsInByZXZDb250ZXh0Iiwic2V0VGltZW91dCIsImV2ZW50Iiwib25DbGljayIsInRhcmdldCIsInRhZ05hbWUiLCJvblNlbGVjdCIsImNsYXNzZXMiLCJjb2x1bW5zIiwibG9va3VwQ29sdW1ucyIsIm9yZGVyZWRDb2x1bW5zIiwic2VsZWN0YWJsZSIsInNlbGVjdGVkIiwidmlldyIsImRlbnNlIiwiZGF0ZUxvY2FsZSIsIm51bWJlckxvY2FsZSIsInN0aWNreSIsImlubmVyUm93IiwiaXNEZXRhaWwiLCJkZXRhaWxSb3dzT3B0aW9ucyIsIm90aGVyIiwidW5maXhlZENvbCIsInJvd1N0eWxlIiwiY3Vyc29yIiwiQ0VMTF9IRUlHSFRfREVOU0UiLCJDRUxMX0hFSUdIVCIsImJhY2tncm91bmQxIiwicGF0Y2hEaXZDbGFzcyIsImhhc093blByb3BlcnR5IiwiZGV0YWlsc0luZm9zIiwiZGV0YWlscyIsImxlbmd0aCIsInJlZHVjZSIsIm1lbW8iLCJpdGVtIiwicm93cyIsImFuY2hvciIsInRvdGFsIiwicGFkZGluZ0xlZnQiLCJERUZBVUxUX1BBRERJTkciLCJtYXAiLCJjb2xSZWYiLCJpbmRleCIsImNvbFJlZklkIiwiY29sSWQiLCJkaXNwbGF5ZWQiLCJjb2xWaWV3IiwiY29sUmVmUHJvcHMiLCJmaXJzdCIsImFsaWduIiwiY29sRGF0YSIsImRhdGEiLCJlbGxpcHNpcyIsImZpeGVkV2lkdGgiLCJjb2x1bW5Qcm9wcyIsImVmZmVjdGl2ZVZpZXciLCJpc1BhcmVudEFuY2hvciIsInBhcmVudEFuY2hvckNvbHVtbiIsImNoaWxkcmVuIiwidW5maXhlZCIsImxvb2tlZFVwIiwiQXJyYXkiLCJpc0FycmF5IiwiaW5jbHVkZXMiLCJkYXRhcyIsInVuZGVmaW5lZCIsImNvbEl0ZW0iLCJmaW5kIiwiaWQiLCJ2YWx1ZSIsIm9uT3BlbkRldGFpbHMiLCJkZXRhaWxJbmZvcyIsIlB1cmVDb21wb25lbnQiLCJwcm9wVHlwZXMiLCJvYmplY3QiLCJpc1JlcXVpcmVkIiwiYm9vbCIsImZpeGVkQ29sdW1uV2lkdGgiLCJhcnJheSIsImZ1bmMiLCJvcGVuZWRBc1BhcmVudCIsIm9uZU9mIiwiZGVmYXVsdFByb3BzIiwid2l0aFRoZW1lIiwibmFtZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFFQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7QUFDQTs7QUFDQTs7OztBQUNBOztBQUNBOztJQUFZQSxHOzs7Ozs7Ozs7Ozs7Ozs7QUFSWjs7O0FBVU8sSUFBTUMsMEJBQVMsU0FBVEEsTUFBUztBQUFBLFdBQVU7QUFDNUJDLHNCQUFjO0FBQ1ZDLDZCQUFpQkMsTUFBTUMsT0FBTixDQUFjQztBQURyQixTQURjO0FBSTVCQyxlQUFPO0FBQ0gsdUJBQVc7QUFDUEosaUNBQWlCQyxNQUFNQyxPQUFOLENBQWNFLEtBRHhCO0FBRVBDLDRCQUFZSixNQUFNSyxV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LG9CQUFnQixvQkFBVXFFLEtBQVYsQ0FBZ0JILFVBdERqQjtBQXVEZjs7O0FBR0E1RixTQUFLLG9CQUFVMkYsTUFBVixDQUFpQkMsVUExRFA7QUEyRGY7OztBQUdBakUsZ0JBQVksb0JBQVVrRSxJQTlEUDtBQStEZjs7O0FBR0FqRSxjQUFVLG9CQUFVaUUsSUFsRUw7QUFtRWY7OztBQUdBNUQsWUFBUSxvQkFBVTRELElBdEVIO0FBdUVmOzs7O0FBSUFoRSxVQUFNLG9CQUFVcUUsS0FBVixDQUFnQixDQUFDLEdBQUQsRUFBTSxHQUFOLEVBQVcsR0FBWCxDQUFoQjtBQTNFUyxDO0FBRGpCdEcsTyxDQStFS3VHLFksR0FBZTtBQUNsQnhFLGdCQUFZLEtBRE07QUFFbEJDLGNBQVUsS0FGUTtBQUdsQnFFLG9CQUFnQixLQUhFO0FBSWxCcEUsVUFBTSxHQUpZO0FBS2xCQyxXQUFPLEtBTFc7QUFNbEJHLFlBQVEsS0FOVTtBQU9sQjdCLFVBQU0sS0FQWTtBQVFsQjhCLGNBQVUsS0FSUTtBQVNsQlQsbUJBQWUsRUFURztBQVVsQnFFLHNCQUFrQixJQVZBO0FBV2xCMUQsdUJBQW1CO0FBWEQsQztrQkE2UFgsd0JBQVc3RCxNQUFYLEVBQW1CLEVBQUU2SCxXQUFXLElBQWIsRUFBbUJDLE1BQU0sYUFBekIsRUFBbkIsRUFBNkR6RyxPQUE3RCxDIiwiZmlsZSI6IkJvZHlSb3cuanMiLCJzb3VyY2VSb290IjoiL2hvbWUvdmRvc3NhbnRvcy9kZXYvaGlwYXktbWF0ZXJpYWwtdWkiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAZmxvd1xuLy8gQGluaGVyaXRlZENvbXBvbmVudCBCb2R5Q2VsbEJ1aWxkZXJcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQgeyBUYWJsZVJvdywgVGFibGVDZWxsIH0gZnJvbSAnbWF0ZXJpYWwtdWkvVGFibGUnO1xuaW1wb3J0IHsgZmFkZSB9IGZyb20gJ21hdGVyaWFsLXVpL3N0eWxlcy9jb2xvck1hbmlwdWxhdG9yJztcbmltcG9ydCBCb2R5Q2VsbEJ1aWxkZXIgZnJvbSAnLi9Cb2R5Q2VsbEJ1aWxkZXInO1xuaW1wb3J0IHsgd2l0aFN0eWxlcywgd2l0aFRoZW1lIH0gZnJvbSAnLi4vc3R5bGVzJztcbmltcG9ydCAqIGFzIGNzdCBmcm9tICcuL2NvbnN0YW50cyc7XG5cbmV4cG9ydCBjb25zdCBzdHlsZXMgPSB0aGVtZSA9PiAoe1xuICAgIHJvb3RTZWxlY3RlZDoge1xuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lLnBhbGV0dGUuYmFja2dyb3VuZDMsXG4gICAgfSxcbiAgICBob3Zlcjoge1xuICAgICAgICAnJjpob3Zlcic6IHtcbiAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogdGhlbWUucGFsZXR0ZS5ob3ZlcixcbiAgICAgICAgICAgIGZvbnRXZWlnaHQ6IHRoZW1lLnR5cG9ncmFwaHkuZm9udFdlaWdodE1lZGl1bSxcbiAgICAgICAgfSxcbiAgICB9LFxuICAgIHJvb3RTdGlja3k6IHtcbiAgICAgICAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gICAgICAgIGJvcmRlcjogJ25vbmUnLFxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICdpbmhlcml0JyxcbiAgICAgICAgekluZGV4OiAxMixcbiAgICAgICAgcGFkZGluZ1RvcDogMCxcbiAgICAgICAgcGFkZGluZ0JvdHRvbTogMCxcbiAgICB9LFxuICAgIHBhdGNoRGl2OiB7XG4gICAgICAgIHBvc2l0aW9uOiAncmVsYXRpdmUnLFxuICAgICAgICBib3JkZXI6ICdub25lJyxcbiAgICAgICAgd2lkdGg6IDAsXG4gICAgICAgIHBhZGRpbmdSaWdodDogMCxcbiAgICAgICAgcGFkZGluZ1RvcDogMCxcbiAgICAgICAgcGFkZGluZ0JvdHRvbTogMCxcbiAgICAgICAgaGVpZ2h0OiAnMTAwJScsXG4gICAgICAgIHpJbmRleDogMTIsXG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogJ2luaGVyaXQnLFxuICAgIH0sXG4gICAgcGF0Y2hEaXZJbm5lclJvdzoge1xuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjRUNFRkYwJyxcbiAgICB9LFxufSk7XG5cbmNsYXNzIEJvZHlSb3cgZXh0ZW5kcyBSZWFjdC5QdXJlQ29tcG9uZW50IHtcbiAgICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgICAgICAvKipcbiAgICAgICAgICogQ29sb25uZXMgZHUgdGFibGVhdSAobGFiZWwsIGxhcmdldXIsIGRvbm7DqWVzLCAuLi4gKVxuICAgICAgICAgKi9cbiAgICAgICAgY29sdW1uczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgICAgICAvKipcbiAgICAgICAgICogRGVuc2l0w6kgZCdhZmZpY2hhZ2UgKGpvdWUgc3VyIGxhIGhhdXRldXIgZGVzIGxpZ25lcylcbiAgICAgICAgICovXG4gICAgICAgIGRlbnNlOiBQcm9wVHlwZXMuYm9vbCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIE9wdGlvbnMgdXRpbGlzw6llcyBwb3VyIGTDqWNyaXJlIGxlIGNvbXBvcnRlbWVudCBkZSBsaWduZXMgZGUgZMOpdGFpbHNcbiAgICAgICAgICovXG4gICAgICAgIGRldGFpbFJvd3NPcHRpb25zOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgICAgICAvKipcbiAgICAgICAgICogRml4ZSBsYSB0YWlsbGUgZGVzIGNvbG9ubmVzIHNlbG9uIGxlIHR5cGUgZGUgdnVlXG4gICAgICAgICAqIFNpbm9uIGxlcyBjb2xvbm5lcyBzJ2FkYXB0ZW50IMOgIGwnZXNwYWNlIGRpc3BvbmlibGVcbiAgICAgICAgICovXG4gICAgICAgIGZpeGVkQ29sdW1uV2lkdGg6IFByb3BUeXBlcy5ib29sLFxuICAgICAgICAvKipcbiAgICAgICAgICogQXBwbGlxdWUgbGUgc3R5bGUgZCd1bmUgbGlnbmUgaW50w6lncsOpZSBhIHVuIHNvdXMtdGFibGVhdVxuICAgICAgICAgKi9cbiAgICAgICAgaW5uZXJSb3c6IFByb3BUeXBlcy5ib29sLFxuICAgICAgICAvKipcbiAgICAgICAgICogQXBwbGlxdWUgbGUgc3R5bGUgZCd1bmUgbGlnbmUgZGUgZMOpdGFpbFxuICAgICAgICAgKi9cbiAgICAgICAgaXNEZXRhaWw6IFByb3BUeXBlcy5ib29sLFxuICAgICAgICAvKipcbiAgICAgICAgICogU2kgYydlc3QgdW5lIG5vdXZlbGxlIGxpZ25lIChsaXZlKSBvbiBsdWkgYXBwbGlxdWUgdW5lIHRyYW5zaXRpb24gc3VyIGxlIGJhY2tncm91bmRcbiAgICAgICAgICovXG4gICAgICAgIGxpdmU6IFByb3BUeXBlcy5ib29sLFxuICAgICAgICAvKipcbiAgICAgICAgICogSWRlbnRpZmlhbnQgZGUgbGEgb3UgZGVzIGNvbG9ubmVzIHN1ciBsYS9sZXNxdWVsbGVzIGlsIHkgYSB1bmUgJ2xvb2t1cCcgc2VhcmNoXG4gICAgICAgICAqL1xuICAgICAgICBsb29rdXBDb2x1bW5zOiBQcm9wVHlwZXMuYXJyYXksXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBGb25jdGlvbiBkZSBjYWxsYmFjayBhcHBlbMOpZSBhdSBjbGljayBzdXIgbGEgbGlnbmVcbiAgICAgICAgICovXG4gICAgICAgIG9uQ2xpY2s6IFByb3BUeXBlcy5mdW5jLFxuICAgICAgICAvKipcbiAgICAgICAgICogRm9uY3Rpb24gZGUgY2FsbGJhY2sgYXBwZWzDqWUgcG91ciBvdXZyaXIgbGVzIGxpZ25lcyBkZSBkw6l0YWlsc1xuICAgICAgICAgKiBQYXNzZSBsJ2lkIGRlIGxhIGxpZ25lIChyb3dJZClcbiAgICAgICAgICovXG4gICAgICAgIG9uT3BlblJvd0RldGFpbHM6IFByb3BUeXBlcy5mdW5jLFxuICAgICAgICAvKipcbiAgICAgICAgICogVW5pcXVlbWVudCBzaSBzZWxlY3RhYmxlLCBmb25jdGlvbiBkZSBjYWxsYmFjayBhcHBlbMOpZSBhdSBvbkNoYW5nZSBzdXIgbGEgY2hlY2tib3hcbiAgICAgICAgICovXG4gICAgICAgIG9uU2VsZWN0OiBQcm9wVHlwZXMuZnVuYyxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFVuaXF1ZW1lbnQgc2kgcm93IGEgZGVzIGNoaWxkcmVuLCBhZmZpY2hlIGxhIGxpZ25lIFwib3V2ZXJ0ZVwiIChhdmVjIHNvdXMtdGFibGVhdSlcbiAgICAgICAgICovXG4gICAgICAgIG9wZW5lZEFzUGFyZW50OiBQcm9wVHlwZXMuYm9vbCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRhYmxlYXUgZGVzIGNvbG9ubmVzIGFmZmljaMOpZXMgKG9yZG9ubsOpZXMsIHZpc2libGVzL2NhY2jDqWVzLCBsL20vcylcbiAgICAgICAgICovXG4gICAgICAgIG9yZGVyZWRDb2x1bW5zOiBQcm9wVHlwZXMuYXJyYXkuaXNSZXF1aXJlZCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIE9iamV0IGRlcyB2YWxldXJzIGEgYWZmaWNoZXJcbiAgICAgICAgICovXG4gICAgICAgIHJvdzogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgICAgICAvKipcbiAgICAgICAgICogRMOpZmluaXQgc2kgbGEgbGlnbmUgZXN0IHPDqWxlY3Rpb25uYWJsZVxuICAgICAgICAgKi9cbiAgICAgICAgc2VsZWN0YWJsZTogUHJvcFR5cGVzLmJvb2wsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBVbmlxdWVtZW50IHNpIHNlbGVjdGFibGUsIGTDqWZpbml0IHNpIGxhIGxpZ25lIGVzdCBzw6lsZWN0aW9ubsOpZVxuICAgICAgICAgKi9cbiAgICAgICAgc2VsZWN0ZWQ6IFByb3BUeXBlcy5ib29sLFxuICAgICAgICAvKipcbiAgICAgICAgICogRMOpZmluaXQgc2kgbGEgMWUgY29sb25uZSByZXN0ZSB2aXNpYmxlIMOgIGdhdWNoZVxuICAgICAgICAgKi9cbiAgICAgICAgc3RpY2t5OiBQcm9wVHlwZXMuYm9vbCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRhaWxsZSBkdSB0YWJsZWF1IChML00vUyksIGTDqWZpbml0IGwnZXNwYWNlIGVudHJlIGxlcyBjZWxsdWxlc1xuICAgICAgICAgKiBldCBsZXVycyB0YWlsbGVzIHBhciBkZWZhdWx0LlxuICAgICAgICAgKi9cbiAgICAgICAgdmlldzogUHJvcFR5cGVzLm9uZU9mKFsnbCcsICdtJywgJ3MnXSksXG4gICAgfTtcblxuICAgIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgICAgIHNlbGVjdGFibGU6IGZhbHNlLFxuICAgICAgICBzZWxlY3RlZDogZmFsc2UsXG4gICAgICAgIG9wZW5lZEFzUGFyZW50OiBmYWxzZSxcbiAgICAgICAgdmlldzogJ2wnLFxuICAgICAgICBkZW5zZTogZmFsc2UsXG4gICAgICAgIHN0aWNreTogZmFsc2UsXG4gICAgICAgIGxpdmU6IGZhbHNlLFxuICAgICAgICBpbm5lclJvdzogZmFsc2UsXG4gICAgICAgIGxvb2t1cENvbHVtbnM6IFtdLFxuICAgICAgICBmaXhlZENvbHVtbldpZHRoOiB0cnVlLFxuICAgICAgICBkZXRhaWxSb3dzT3B0aW9uczoge30sXG4gICAgfTtcblxuICAgIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgICAgIHN1cGVyKCk7XG5cbiAgICAgICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgICAgICAgIGxpdmU6IHByb3BzLmxpdmUsXG4gICAgICAgICAgICBzdHlsZToge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogcHJvcHMubGl2ZVxuICAgICAgICAgICAgICAgICAgICA/IGZhZGUocHJvcHMudGhlbWUucGFsZXR0ZS5idXNpbmVzcy5wcmltYXJ5Lm5vcm1hbCwgMC4wOClcbiAgICAgICAgICAgICAgICAgICAgOiBwcm9wcy50aGVtZS5wYWxldHRlLmJhY2tncm91bmQzLFxuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IHByb3BzLmxpdmUgPyAnYmFja2dyb3VuZC1jb2xvciAycycgOiAnbm9uZScsXG4gICAgICAgICAgICB9LFxuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMuaGFuZGxlQ2xpY2sgPSB0aGlzLmhhbmRsZUNsaWNrLmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMuaGFuZGxlT3BlblJvd0RldGFpbHMgPSB0aGlzLmhhbmRsZU9wZW5Sb3dEZXRhaWxzLmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMuaGFuZGxlU2VsZWN0ID0gdGhpcy5oYW5kbGVTZWxlY3QuYmluZCh0aGlzKTtcbiAgICB9XG5cbiAgICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAgICAgLy8gTGl2ZSBkYXRhIGFuaW1hdGlvblxuICAgICAgICBpZiAodGhpcy5zdGF0ZS5saXZlKSB7XG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICAgICAgICBsaXZlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBzdHlsZToge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoaXMucHJvcHMudGhlbWUucGFsZXR0ZS5iYWNrZ3JvdW5kMyxcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogJ2JhY2tncm91bmQtY29sb3IgMnMnLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMsIHByZXZTdGF0ZSwgcHJldkNvbnRleHQpIHtcbiAgICAgICAgLy8gQWZ0ZXIgYW5pbWF0aW9uLCByZXNldCB0cmFuc2l0aW9uIHRvIG5vbmUgdG8gaGFuZGxlIGJhY2tncm91bmQgY2hhbmdlIG9uIHJvdyBob3ZlclxuICAgICAgICBpZiAocHJldlN0YXRlLmxpdmUgPT09IHRydWUgJiYgdGhpcy5zdGF0ZS5saXZlID09PSBmYWxzZSkge1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgICAgICAgICAgIHN0eWxlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoaXMucHJvcHMudGhlbWUucGFsZXR0ZS5iYWNrZ3JvdW5kMyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246ICdub25lJyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sIDI1MDApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaGFuZGxlQ2xpY2soZXZlbnQpIHtcbiAgICAgICAgLy8gUHJldmVudCBjbGljayBwcm9wYWdhdGlvbiBpZiBpdCdzIGEgY2xpY2sgb24gaW5wdXQgKGNoZWNrYm94ZXMuLi4pXG4gICAgICAgIGlmICh0aGlzLnByb3BzLm9uQ2xpY2sgJiYgZXZlbnQudGFyZ2V0LnRhZ05hbWUgIT09ICdJTlBVVCcpIHtcbiAgICAgICAgICAgIHRoaXMucHJvcHMub25DbGljayh0aGlzLnByb3BzLnJvdyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBoYW5kbGVPcGVuUm93RGV0YWlscyA9IHR5cGUgPT4gKCkgPT4ge1xuICAgICAgICB0aGlzLnByb3BzLm9uT3BlblJvd0RldGFpbHModGhpcy5wcm9wcy5yb3cucm93SWQsIHR5cGUpO1xuICAgIH07XG5cbiAgICBoYW5kbGVTZWxlY3QoKSB7XG4gICAgICAgIHRoaXMucHJvcHMub25TZWxlY3QodGhpcy5wcm9wcy5yb3cpO1xuICAgIH1cblxuICAgIHJlbmRlcigpIHtcbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgY2xhc3NlcyxcbiAgICAgICAgICAgIHRoZW1lLFxuICAgICAgICAgICAgcm93LFxuICAgICAgICAgICAgY29sdW1ucyxcbiAgICAgICAgICAgIGxvb2t1cENvbHVtbnMsXG4gICAgICAgICAgICBvcmRlcmVkQ29sdW1ucyxcbiAgICAgICAgICAgIHNlbGVjdGFibGUsXG4gICAgICAgICAgICBzZWxlY3RlZCxcbiAgICAgICAgICAgIG9uQ2xpY2ssXG4gICAgICAgICAgICB2aWV3LFxuICAgICAgICAgICAgZGVuc2UsXG4gICAgICAgICAgICBkYXRlTG9jYWxlLFxuICAgICAgICAgICAgbnVtYmVyTG9jYWxlLFxuICAgICAgICAgICAgc3RpY2t5LFxuICAgICAgICAgICAgaW5uZXJSb3csXG4gICAgICAgICAgICBpc0RldGFpbCxcbiAgICAgICAgICAgIGRldGFpbFJvd3NPcHRpb25zLFxuICAgICAgICAgICAgLi4ub3RoZXJcbiAgICAgICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICAgICAgY29uc3QgeyBzdHlsZSB9ID0gdGhpcy5zdGF0ZTtcblxuICAgICAgICBsZXQgdW5maXhlZENvbCA9IHRydWU7XG5cbiAgICAgICAgY29uc3Qgcm93U3R5bGUgPSB7XG4gICAgICAgICAgICAuLi5zdHlsZSxcbiAgICAgICAgICAgIGN1cnNvcjogdHlwZW9mIG9uQ2xpY2sgPT09ICd1bmRlZmluZWQnID8gJ2F1dG8nIDogJ3BvaW50ZXInLFxuICAgICAgICAgICAgaGVpZ2h0OiBkZW5zZSA/IGNzdC5DRUxMX0hFSUdIVF9ERU5TRSA6IGNzdC5DRUxMX0hFSUdIVCxcbiAgICAgICAgICAgIC4uLihpc0RldGFpbCAmJiB7IGJhY2tncm91bmRDb2xvcjogdGhlbWUucGFsZXR0ZS5iYWNrZ3JvdW5kMSB9KSxcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBwYXRjaERpdkNsYXNzID0gY2xhc3NOYW1lcyhjbGFzc2VzLnBhdGNoRGl2LCB7XG4gICAgICAgICAgICBbY2xhc3Nlcy5wYXRjaERpdklubmVyUm93XTogaW5uZXJSb3csXG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIElmIHRoZXJlIGlzIG5vIGRhdGFzIGRvbid0IGRpc3BsYXkgdGhlIHJvd1xuICAgICAgICBpZiAoIXJvdy5oYXNPd25Qcm9wZXJ0eSgnZGF0YXMnKSkgcmV0dXJuIGZhbHNlO1xuXG4gICAgICAgIGxldCBkZXRhaWxzSW5mb3MgPSB7fTtcbiAgICAgICAgaWYgKHJvdy5kZXRhaWxzICYmIHJvdy5kZXRhaWxzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGRldGFpbHNJbmZvcyA9IHJvdy5kZXRhaWxzLnJlZHVjZSgobWVtbywgaXRlbSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChpdGVtLnJvd3MubGVuZ3RoID4gMCAmJiBkZXRhaWxSb3dzT3B0aW9uc1tpdGVtLnR5cGVdICYmIGRldGFpbFJvd3NPcHRpb25zW2l0ZW0udHlwZV0uYW5jaG9yKSB7XG4gICAgICAgICAgICAgICAgICAgIG1lbW9bZGV0YWlsUm93c09wdGlvbnNbaXRlbS50eXBlXS5hbmNob3JdID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogaXRlbS50eXBlLFxuICAgICAgICAgICAgICAgICAgICAgICAgdG90YWw6IGl0ZW0ucm93cy5sZW5ndGgsXG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5kZXRhaWxSb3dzT3B0aW9uc1tpdGVtLnR5cGVdLFxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gbWVtbztcbiAgICAgICAgICAgIH0sIHt9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8VGFibGVSb3dcbiAgICAgICAgICAgICAgICBjbGFzc2VzPXt7IHNlbGVjdGVkOiBjbGFzc2VzLnJvb3RTZWxlY3RlZCwgaG92ZXI6IGNsYXNzZXMuaG92ZXIgfX1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXt0aGlzLmhhbmRsZUNsaWNrfVxuICAgICAgICAgICAgICAgIGhvdmVyXG4gICAgICAgICAgICAgICAgc3R5bGU9e3Jvd1N0eWxlfVxuICAgICAgICAgICAgICAgIHNlbGVjdGVkPXtzZWxlY3RlZH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7LyogTGVmdCBwYWRkaW5nIGNlbGwgKi99XG4gICAgICAgICAgICAgICAgPFRhYmxlQ2VsbFxuICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBkZW5zZSA/IGNzdC5DRUxMX0hFSUdIVF9ERU5TRSA6IGNzdC5DRUxMX0hFSUdIVCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmdMZWZ0OiBjc3QuREVGQVVMVF9QQURESU5HW3ZpZXddLFxuICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICBrZXk9e2Ake3Jvdy5yb3dJZH0tbGVmdC1jZWxsYH1cbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtwYXRjaERpdkNsYXNzfVxuICAgICAgICAgICAgICAgIC8+XG5cbiAgICAgICAgICAgICAgICB7b3JkZXJlZENvbHVtbnMubWFwKChjb2xSZWYsIGluZGV4KSA9PiB7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gRHluYW1pYyBjb2x1bW4gc2V0dGluZ3MgKGZyb20gT3JkZXJDb2x1bW5zKVxuICAgICAgICAgICAgICAgICAgICBjb25zdCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xJZDogY29sUmVmSWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5ZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICB2aWV3OiBjb2xWaWV3LFxuICAgICAgICAgICAgICAgICAgICAgICAgLi4uY29sUmVmUHJvcHNcbiAgICAgICAgICAgICAgICAgICAgfSA9IGNvbFJlZjtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoZGlzcGxheWVkID09PSBmYWxzZSkgcmV0dXJuIG51bGw7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gdGhlIGZpcnN0IGNvbHVtbiBpcyBzdGlja3kgKGV4Y2VwdCBjaGVja2JveClcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZmlyc3QgPSBpbmRleCA9PT0gMDtcblxuICAgICAgICAgICAgICAgICAgICAvLyBTdGF0aWMgY29sdW1uIHNldHRpbmdzXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbElkLFxuICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ24sXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiBjb2xEYXRhLFxuICAgICAgICAgICAgICAgICAgICAgICAgZWxsaXBzaXMsXG4gICAgICAgICAgICAgICAgICAgICAgICBmaXhlZFdpZHRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgLi4uY29sdW1uUHJvcHNcbiAgICAgICAgICAgICAgICAgICAgfSA9IGNvbHVtbnNbY29sUmVmSWRdO1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIHZpZXcgZGVmaW5lIGluIE9yZGVyQ29sdW1uIG9yIHRhYmxlIHByb3AgdmlldyBieSBkZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVmZmVjdGl2ZVZpZXcgPSBjb2xWaWV3IHx8IHZpZXc7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gYWRkIGNsaWNrYWJsZSBiYWRnZSBpbiBjZWxsIHRvIG9wZW4gY2hpbGRyZW5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaXNQYXJlbnRBbmNob3IgPVxuICAgICAgICAgICAgICAgICAgICAgICAgcm93Lmhhc093blByb3BlcnR5KCdwYXJlbnRBbmNob3JDb2x1bW4nKSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgcm93LnBhcmVudEFuY2hvckNvbHVtbiA9PT0gY29sSWQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvdy5oYXNPd25Qcm9wZXJ0eSgnY2hpbGRyZW4nKSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgcm93LmNoaWxkcmVuLmxlbmd0aCA+IDA7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gdGhlIGZpcnN0IG5vbiBmaXhlZCBjb2x1bW4gaXMgdGhlIG9ubHkgb25lIG5vdCBmaXhlZFxuICAgICAgICAgICAgICAgICAgICBjb25zdCB1bmZpeGVkID0gdW5maXhlZENvbCAmJiBmaXhlZFdpZHRoICE9PSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB1bmZpeGVkQ29sID0gdW5maXhlZCA/IGZhbHNlIDogdW5maXhlZENvbDtcblxuICAgICAgICAgICAgICAgICAgICAvLyBhZGQgbG9va2VkVXAgc3R5bGVcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbG9va2VkVXAgPSBBcnJheS5pc0FycmF5KGxvb2t1cENvbHVtbnMpICYmIGxvb2t1cENvbHVtbnMuaW5jbHVkZXMoY29sSWQpO1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIENlbGwgZGF0YVxuICAgICAgICAgICAgICAgICAgICBsZXQgZGF0YSA9IHJvdy5kYXRhc1tjb2xSZWZJZF07XG4gICAgICAgICAgICAgICAgICAgIC8vIEdldCBvYmplY3QgZGF0YSBmb3IgY29sdW1uIGJhc2VkIG9uIHJlZmVyZW5jZSBkYXRhc1xuICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YSAhPT0gdW5kZWZpbmVkICYmIGNvbERhdGEgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY29sSXRlbSA9IGNvbERhdGEuZmluZChpdGVtID0+IGl0ZW0uaWQgPT09IGRhdGEudmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvbEl0ZW0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBIeWRyYXRlIGRhdGEgb2JqZWN0IHdpdGggcmVmZXJlbmNlIGl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5jb2xJdGVtLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5kYXRhLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgPEJvZHlDZWxsQnVpbGRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsuLi5vdGhlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2Ake3Jvdy5yb3dJZH0tJHtjb2xJZH0tY2VsbGB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdWtleT17YCR7cm93LnJvd0lkfS0ke2NvbElkfS1jZWxsYH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja2JveFZhbHVlPXtyb3cucm93SWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT17dHlwZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhPXtkYXRhfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsbGlwc2lzPXtlbGxpcHNpc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGlnbj17YWxpZ259XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlldz17ZWZmZWN0aXZlVmlld31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nPXtjc3QuREVGQVVMVF9QQURESU5HW3ZpZXddfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPXt3aWR0aH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXhlZFdpZHRoPXshdW5maXhlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGlja3k9e3N0aWNreSAmJiBmaXJzdH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RhYmxlPXtzZWxlY3RhYmxlICYmIGZpcnN0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVMb2NhbGU9e2RhdGVMb2NhbGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyTG9jYWxlPXtudW1iZXJMb2NhbGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVuc2U9e2RlbnNlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkPXtzZWxlY3RlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvblNlbGVjdD17dGhpcy5oYW5kbGVTZWxlY3R9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgey4uLihkZXRhaWxzSW5mb3NbY29sSWRdICYmIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25PcGVuRGV0YWlsczogdGhpcy5oYW5kbGVPcGVuUm93RGV0YWlscyhkZXRhaWxzSW5mb3NbY29sSWRdLnR5cGUpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXRhaWxJbmZvczogZGV0YWlsc0luZm9zW2NvbElkXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuQ291bnQ9e2lzUGFyZW50QW5jaG9yID8gcm93LmNoaWxkcmVuLmxlbmd0aCA6IG51bGx9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sSWQ9e2NvbElkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvb2tlZFVwPXtsb29rZWRVcH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Li4uY29sdW1uUHJvcHN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgey4uLmNvbFJlZlByb3BzfVxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgIH0pfVxuXG4gICAgICAgICAgICAgICAgey8qIFJpZ2h0IHBhZGRpbmcgY2VsbCAqL31cbiAgICAgICAgICAgICAgICA8VGFibGVDZWxsXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IGRlbnNlID8gY3N0LkNFTExfSEVJR0hUX0RFTlNFIDogY3N0LkNFTExfSEVJR0hULFxuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZ0xlZnQ6IGNzdC5ERUZBVUxUX1BBRERJTkdbdmlld10sXG4gICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgIGtleT17YCR7cm93LnJvd0lkfS1yaWdodC1jZWxsYH1cbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtwYXRjaERpdkNsYXNzfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L1RhYmxlUm93PlxuICAgICAgICApO1xuICAgIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgd2l0aFN0eWxlcyhzdHlsZXMsIHsgd2l0aFRoZW1lOiB0cnVlLCBuYW1lOiAnSG11aUJvZHlSb3cnIH0pKEJvZHlSb3cpO1xuIl19
35116
35153
 
35117
35154
  /***/ }),
35118
35155
  /* 334 */
@@ -36085,6 +36122,8 @@ var CellLayout = function (_React$Component) {
36085
36122
  selected = _props.selected,
36086
36123
  onSelect = _props.onSelect,
36087
36124
  childrenCount = _props.childrenCount,
36125
+ detailInfos = _props.detailInfos,
36126
+ onOpenDetails = _props.onOpenDetails,
36088
36127
  theme = _props.theme,
36089
36128
  padding = _props.padding,
36090
36129
  lookedUp = _props.lookedUp;
@@ -36147,6 +36186,22 @@ var CellLayout = function (_React$Component) {
36147
36186
  { color: theme.palette.business.primary.normal, className: classes.pins },
36148
36187
  childrenCount
36149
36188
  )
36189
+ ),
36190
+ detailInfos && _react2.default.createElement(
36191
+ 'div',
36192
+ {
36193
+ style: {
36194
+ position: 'absolute',
36195
+ top: dense ? 2 : 6,
36196
+ right: 0
36197
+ },
36198
+ onClick: onOpenDetails
36199
+ },
36200
+ _react2.default.createElement(
36201
+ _HiPins2.default,
36202
+ { color: theme.palette.business.secondary.normal, className: classes.pins },
36203
+ detailInfos.total
36204
+ )
36150
36205
  )
36151
36206
  )
36152
36207
  );
@@ -36169,6 +36224,10 @@ CellLayout.propTypes = {
36169
36224
  * Densité, défini la hauteur de la ligne
36170
36225
  */
36171
36226
  dense: _propTypes2.default.bool,
36227
+ /**
36228
+ * Ajoute un Chip affichant le nombre de ligne de détails de la ligne et permettant de les affichés via onOpenDetails
36229
+ */
36230
+ detailInfos: _propTypes2.default.object,
36172
36231
  /**
36173
36232
  * Recherche lookup sur cette colonne
36174
36233
  */
@@ -36226,10 +36285,11 @@ CellLayout.defaultProps = {
36226
36285
  dense: false,
36227
36286
  fixedColumnWidth: true,
36228
36287
  sticky: false,
36229
- padding: 8
36288
+ padding: 8,
36289
+ detailInfos: null
36230
36290
  };
36231
36291
  exports.default = (0, _styles.withStyles)(styles, { withTheme: true, name: 'HmuiCellLayout' })(CellLayout);
36232
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9IaVRhYmxlL0JvZHlDZWxscy9DZWxsTGF5b3V0LmpzIl0sIm5hbWVzIjpbImNzdCIsInN0eWxlcyIsInJvb3QiLCJwYWRkaW5nIiwiYmFja2dyb3VuZENvbG9yIiwiYm9yZGVyIiwiZmxleENvbnRlbnQiLCJkaXNwbGF5IiwiZmxleERpcmVjdGlvbiIsImp1c3RpZnlDb250ZW50IiwicG9zaXRpb24iLCJjaGVja2JveCIsImZsb2F0IiwibG9va2VkVXAiLCJiYWNrZ3JvdW5kIiwiYm9yZGVyUmFkaXVzIiwicGlucyIsInRvcCIsIkNlbGxMYXlvdXQiLCJuZXh0UHJvcHMiLCJuZXh0U3RhdGUiLCJuZXh0Q29udGV4dCIsInNlbGVjdGVkIiwicHJvcHMiLCJzZWxlY3RhYmxlIiwiY2xhc3NlcyIsInR5cGUiLCJjaGlsZHJlbiIsImFsaWduIiwiQUxJR05fUklHSFRfVFlQRVMiLCJpbmNsdWRlcyIsInZpZXciLCJkZW5zZSIsIndpZHRoIiwiREVGQVVMVF9XSURUSFMiLCJmaXhlZENvbHVtbldpZHRoIiwic3RpY2t5Iiwib25TZWxlY3QiLCJjaGlsZHJlbkNvdW50IiwidGhlbWUiLCJvZmZzZXQiLCJfd2lkdGgiLCJsb29rZWRVcENsYXNzTmFtZSIsImNlbGxTdHlsZSIsInpJbmRleCIsInRleHRBbGlnbiIsImhlaWdodCIsIkNFTExfSEVJR0hUX0RFTlNFIiwiQ0VMTF9IRUlHSFQiLCJtYXhXaWR0aCIsIm1pbldpZHRoIiwibWFyZ2luIiwicGFkZGluZ0xlZnQiLCJwYWRkaW5nUmlnaHQiLCJyaWdodCIsInBhbGV0dGUiLCJidXNpbmVzcyIsInByaW1hcnkiLCJub3JtYWwiLCJDb21wb25lbnQiLCJwcm9wVHlwZXMiLCJlbGVtZW50Iiwib2JqZWN0IiwiYm9vbCIsInN0cmluZyIsImlzUmVxdWlyZWQiLCJvbmVPZiIsIm51bWJlciIsImZ1bmMiLCJkZWZhdWx0UHJvcHMiLCJ3aXRoVGhlbWUiLCJuYW1lIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFD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QUFHQWxELGNBQVUsb0JBQVVrRCxJQWhCTDtBQWlCZjs7O0FBR0FyQyxVQUFNLG9CQUFVc0MsTUFBVixDQUFpQkMsVUFwQlI7QUFxQmY7OztBQUdBbEMsVUFBTSxvQkFBVW1DLEtBQVYsQ0FBZ0IsQ0FBQyxHQUFELEVBQU0sR0FBTixFQUFXLEdBQVgsQ0FBaEIsQ0F4QlM7QUF5QmY7OztBQUdBakMsV0FBTyxvQkFBVWtDLE1BNUJGO0FBNkJmOzs7O0FBSUFoQyxzQkFBa0Isb0JBQVU0QixJQWpDYjtBQWtDZjs7O0FBR0FuQyxXQUFPLG9CQUFVb0MsTUFyQ0Y7QUFzQ2Y7OztBQUdBN0QsYUFBUyxvQkFBVWdFLE1BekNKO0FBMENmOzs7QUFHQS9CLFlBQVEsb0JBQVUyQixJQTdDSDtBQThDZjs7O0FBR0F2QyxnQkFBWSxvQkFBVXVDLElBakRQO0FBa0RmOzs7QUFHQXpDLGNBQVUsb0JBQVU0QyxLQUFWLENBQWdCLENBQUMsSUFBRCxFQUFPLEtBQVAsRUFBYyxPQUFkLENBQWhCLENBckRLO0FBc0RmOzs7QUFHQTdCLGNBQVUsb0JBQVUrQixJQXpETDtBQTBEZjs7O0FBR0E5QixtQkFBZSxvQkFBVTZCO0FBN0RWLEM7QUFGakJqRCxVLENBa0VLbUQsWSxHQUFlO0FBQ2xCdEMsVUFBTSxHQURZO0FBRWxCUCxnQkFBWSxLQUZNO0FBR2xCRixjQUFVLEtBSFE7QUFJbEJVLFdBQU8sS0FKVztBQUtsQkcsc0JBQWtCLElBTEE7QUFNbEJDLFlBQVEsS0FOVTtBQU9sQmpDLGFBQVM7QUFQUyxDO2tCQTZGWCx3QkFBV0YsTUFBWCxFQUFtQixFQUFFcUUsV0FBVyxJQUFiLEVBQW1CQyxNQUFNLGdCQUF6QixFQUFuQixFQUFnRXJELFVBQWhFLEMiLCJmaWxlIjoiQ2VsbExheW91dC5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS92ZG9zc2FudG9zL2Rldi9oaXBheS1tYXRlcmlhbC11aSIsInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgVGFibGVDZWxsIGZyb20gJ21hdGVyaWFsLXVpL1RhYmxlL1RhYmxlQ2VsbCc7XG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJztcblxuaW1wb3J0IEhpQ2hlY2tib3ggZnJvbSAnLi4vLi4vSGlDaGVja2JveCc7XG5pbXBvcnQgeyB3aXRoU3R5bGVzIH0gZnJvbSAnLi4vLi4vc3R5bGVzJztcbmltcG9ydCAqIGFzIGNzdCBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IEhpUGlucyBmcm9tICcuLi8uLi9IaVBpbnMnO1xuXG5leHBvcnQgY29uc3Qgc3R5bGVzID0gdGhlbWUgPT4gKHtcbiAgICByb290OiB7XG4gICAgICAgIHBhZGRpbmc6IDAsXG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogJ2luaGVyaXQnLFxuICAgICAgICBib3JkZXI6ICdub25lJyxcbiAgICB9LFxuICAgIGZsZXhDb250ZW50OiB7XG4gICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgZmxleERpcmVjdGlvbjogJ2NvbHVtbicsXG4gICAgICAgIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgICAgICAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gICAgfSxcbiAgICBjaGVja2JveDoge1xuICAgICAgICBmbG9hdDogJ2xlZnQnLFxuICAgICAgICBwb3NpdGlvbjogJ3JlbGF0aXZlJyxcbiAgICB9LFxuICAgIGxvb2tlZFVwOiB7XG4gICAgICAgIGJhY2tncm91bmQ6IGBsaW5lYXItZ3JhZGllbnQoMGRlZywgdHJhbnNwYXJlbnQgMjUlLCAjRkZGRjhEIDEwJSwgI0ZGRkY4RCA3NSUsIHRyYW5zcGFyZW50IDMwJSlgLFxuICAgICAgICBib3JkZXJSYWRpdXM6ICc0NSUnLFxuICAgIH0sXG4gICAgcGluczoge1xuICAgICAgICBwb3NpdGlvbjogJ3JlbGF0aXZlJyxcbiAgICAgICAgdG9wOiAzLFxuICAgIH1cbn0pO1xuXG4vKipcbiAqIENvbnN0cnVpdCB1bmUgY2VsbHVsZSBkdSBib2R5IGQnQWR2YW5jZWRUYWJsZVxuICogRMOpZmluaXQgbGEgbGFyZ2V1ciBldCBsZSBwYWRkaW5nIGVmZmVjdGlmXG4gKiBJbnTDqGdyZSBsYSBjaGVja2JveCBkZSBzw6lsZWN0aW9uIHNpIGJlc29pblxuICogR8OocmUgbGUgY29tcG9ydGVtZW50IHN0aWNreVxuICovXG5jbGFzcyBDZWxsTGF5b3V0IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcblxuICAgIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBDb250ZW51IGRlIGxhIGNlbGx1bGVcbiAgICAgICAgICovXG4gICAgICAgIGNoaWxkcmVuOiBQcm9wVHlwZXMuZWxlbWVudCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFVzZWZ1bCB0byBleHRlbmQgdGhlIHN0eWxlIGFwcGxpZWQgdG8gY29tcG9uZW50cy5cbiAgICAgICAgICovXG4gICAgICAgIGNsYXNzZXM6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBEZW5zaXTDqSwgZMOpZmluaSBsYSBoYXV0ZXVyIGRlIGxhIGxpZ25lXG4gICAgICAgICAqL1xuICAgICAgICBkZW5zZTogUHJvcFR5cGVzLmJvb2wsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBSZWNoZXJjaGUgbG9va3VwIHN1ciBjZXR0ZSBjb2xvbm5lXG4gICAgICAgICAqL1xuICAgICAgICBsb29rZWRVcDogUHJvcFR5cGVzLmJvb2wsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUeXBlIGRlIGNlbGx1bGVcbiAgICAgICAgICovXG4gICAgICAgIHR5cGU6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFZpZXcgKEwvTS9TKVxuICAgICAgICAgKi9cbiAgICAgICAgdmlldzogUHJvcFR5cGVzLm9uZU9mKFsnbCcsICdtJywgJ3MnXSksXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBMYXJnZXVyIGRlIGxhIGNlbGx1bGUgKGhvcnMgcGFkZGluZyksIGVzdCBkw6lkdWl0IGRlIHZpZXcgcGFyIGTDqWZhdXRcbiAgICAgICAgICovXG4gICAgICAgIHdpZHRoOiBQcm9wVHlwZXMubnVtYmVyLFxuICAgICAgICAvKipcbiAgICAgICAgICogRml4ZSBsYSB0YWlsbGUgZGVzIGNvbG9ubmVzIHNlbG9uIGxlIHR5cGUgZGUgdnVlXG4gICAgICAgICAqIFNpbm9uIGxlcyBjb2xvbm5lcyBzJ2FkYXB0ZW50IMOgIGwnZXNwYWNlIGRpc3BvbmlibGVcbiAgICAgICAgICovXG4gICAgICAgIGZpeGVkQ29sdW1uV2lkdGg6IFByb3BUeXBlcy5ib29sLFxuICAgICAgICAvKipcbiAgICAgICAgICogVGl0bGUgYWxpZ25lbWVudCwgZXN0IGTDqWR1aXQgZGUgdHlwZSBwYXIgZMOpZmF1dFxuICAgICAgICAgKi9cbiAgICAgICAgYWxpZ246IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBQYWRkaW5nIGRlIGxhIGNlbGx1bGUgKHB4KVxuICAgICAgICAgKi9cbiAgICAgICAgcGFkZGluZzogUHJvcFR5cGVzLm51bWJlcixcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRydWUgc2kgbGEgY29sb25uZSBlc3QgbGEgcHJlbWnDqHJlIGNvbG9ubmUgZXQgZG9pdCBhdm9pciB1biBjb21wb3J0ZW1lbnQgXCJzdGlja3lcIiBsb3JzIGR1IHNjcm9sbCBob3Jpem9udGFsXG4gICAgICAgICAqL1xuICAgICAgICBzdGlja3k6IFByb3BUeXBlcy5ib29sLFxuICAgICAgICAvKipcbiAgICAgICAgICogQWpvdXRlIHVuZSBjaGVja2JveFxuICAgICAgICAgKi9cbiAgICAgICAgc2VsZWN0YWJsZTogUHJvcFR5cGVzLmJvb2wsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiDDiXRhdCBkZSBsYSBjaGVja2JveFxuICAgICAgICAgKi9cbiAgICAgICAgc2VsZWN0ZWQ6IFByb3BUeXBlcy5vbmVPZihbdHJ1ZSwgZmFsc2UsICdtaXhlZCddKSxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEZvbmN0aW9uIGRlIGNhbGxiYWNrIGF1IGNsaWNrIGR1IHNlbGVjdFxuICAgICAgICAgKi9cbiAgICAgICAgb25TZWxlY3Q6IFByb3BUeXBlcy5mdW5jLFxuICAgICAgICAvKipcbiAgICAgICAgICogTm9tYnJlIGQnZW5mYW50c1xuICAgICAgICAgKi9cbiAgICAgICAgY2hpbGRyZW5Db3VudDogUHJvcFR5cGVzLm51bWJlcixcbiAgICB9O1xuXG4gICAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICAgICAgdmlldzogJ2wnLFxuICAgICAgICBzZWxlY3RhYmxlOiBmYWxzZSxcbiAgICAgICAgc2VsZWN0ZWQ6IGZhbHNlLFxuICAgICAgICBkZW5zZTogZmFsc2UsXG4gICAgICAgIGZpeGVkQ29sdW1uV2lkdGg6IHRydWUsXG4gICAgICAgIHN0aWNreTogZmFsc2UsXG4gICAgICAgIHBhZGRpbmc6IDgsXG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqICogU2hvdWxkIG5vdCB1cGRhdGUgaWYgc2VsZWN0ZWQgaGFzIGNoYW5nZWQgYnV0IGNlbGwgaXNuJ3Qgc2VsZWN0YWJsZSBhbnl3YXlcbiAgICAgKiBAcGFyYW0gbmV4dFByb3BzXG4gICAgICogQHBhcmFtIG5leHRTdGF0ZVxuICAgICAqIEBwYXJhbSBuZXh0Q29udGV4dFxuICAgICAqIEByZXR1cm5zIHtib29sZWFufVxuICAgICAqL1xuICAgIHNob3VsZENvbXBvbmVudFVwZGF0ZShuZXh0UHJvcHMsIG5leHRTdGF0ZSwgbmV4dENvbnRleHQpIHtcbiAgICAgICAgaWYgKCBuZXh0UHJvcHMuc2VsZWN0ZWQgPT09ICF0aGlzLnByb3BzLnNlbGVjdGVkICYmICF0aGlzLnByb3BzLnNlbGVjdGFibGUgJiYgIW5leHRQcm9wcy5zZWxlY3RhYmxlICkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHJlbmRlciAoKSB7XG4gICAgICAgIGNvbnN0IHtcbiAgICAgICAgICAgIGNsYXNzZXMsIHR5cGUsIGNoaWxkcmVuLFxuICAgICAgICAgICAgYWxpZ24gPSBjc3QuQUxJR05fUklHSFRfVFlQRVMuaW5jbHVkZXModHlwZSkgPyAncmlnaHQnIDogJ2xlZnQnLFxuICAgICAgICAgICAgdmlldywgZGVuc2UsIHdpZHRoID0gY3N0LkRFRkFVTFRfV0lEVEhTW3R5cGVdW3ZpZXddLCBmaXhlZENvbHVtbldpZHRoLCBzdGlja3ksXG4gICAgICAgICAgICBzZWxlY3RhYmxlLCBzZWxlY3RlZCwgb25TZWxlY3QsIGNoaWxkcmVuQ291bnQsIHRoZW1lLCBwYWRkaW5nLFxuICAgICAgICAgICAgbG9va2VkVXBcbiAgICAgICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICAgICAgY29uc3Qgb2Zmc2V0ID0gc2VsZWN0YWJsZSA/IGRlbnNlID8gMzIgOiA0MCA6IDA7XG5cbiAgICAgICAgLy8gSW5jbHVzIGxlIHBhZGRpbmcgZXQvb3UgbGEgY2hlY2tib3ggZGFucyBsYSBsYXJnZXVyIGRlIGxhIGNlbGx1bGVcbiAgICAgICAgY29uc3QgX3dpZHRoID0gd2lkdGggKyBvZmZzZXQgKyAoc2VsZWN0YWJsZSA/IHBhZGRpbmcgOiAyICogcGFkZGluZyk7XG5cbiAgICAgICAgY29uc3QgbG9va2VkVXBDbGFzc05hbWUgPSBjbGFzc05hbWVzKGNsYXNzZXMuZmxleENvbnRlbnQsIHsgW2NsYXNzZXMubG9va2VkVXBdOiBsb29rZWRVcCB9KTtcblxuICAgICAgICBjb25zdCBjZWxsU3R5bGUgPSB7XG4gICAgICAgICAgICB6SW5kZXg6IHN0aWNreSA/IDEyIDogMTEsXG4gICAgICAgICAgICB0ZXh0QWxpZ246IGFsaWduLFxuICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreSA/ICdyZWxhdGl2ZScgOiAnaW5oZXJpdCcsXG4gICAgICAgICAgICBib3JkZXI6ICdub25lJyxcbiAgICAgICAgICAgIGhlaWdodDogZGVuc2UgPyBjc3QuQ0VMTF9IRUlHSFRfREVOU0UgOiBjc3QuQ0VMTF9IRUlHSFQsXG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKGZpeGVkQ29sdW1uV2lkdGgpIHtcbiAgICAgICAgICAgIGNlbGxTdHlsZS5tYXhXaWR0aCA9IF93aWR0aDtcbiAgICAgICAgICAgIGNlbGxTdHlsZS5taW5XaWR0aCA9IF93aWR0aDtcbiAgICAgICAgICAgIGNlbGxTdHlsZS53aWR0aCA9IF93aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8VGFibGVDZWxsIGNsYXNzTmFtZT17Y2xhc3Nlcy5yb290fSBzdHlsZT17Y2VsbFN0eWxlfT5cbiAgICAgICAgICAgICAgICB7ISFzZWxlY3RhYmxlICYmIChcbiAgICAgICAgICAgICAgICAgICAgPEhpQ2hlY2tib3hcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzZXM9e3sgcm9vdDogY2xhc3Nlcy5jaGVja2JveCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgbWFyZ2luOiBkZW5zZSA/IDYgOiAxMCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT17MTh9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17b25TZWxlY3R9XG4gICAgICAgICAgICAgICAgICAgICAgICBjaGVja2VkPXtzZWxlY3RlZH1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICApfVxuXG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2xvb2tlZFVwQ2xhc3NOYW1lfVxuICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGBjYWxjKDEwMCUgLSAke29mZnNldH1weClgLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZ0xlZnQ6IHNlbGVjdGFibGUgPyAwIDogcGFkZGluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmdSaWdodDogcGFkZGluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogZGVuc2UgPyBjc3QuQ0VMTF9IRUlHSFRfREVOU0UgOiBjc3QuQ0VMTF9IRUlHSFQsXG4gICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgICAgICAgICAgICAgIHtjaGlsZHJlbkNvdW50ICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiBkZW5zZSA/IDIgOiA2LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByaWdodDogMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxIaVBpbnMgY29sb3I9e3RoZW1lLnBhbGV0dGUuYnVzaW5lc3MucHJpbWFyeS5ub3JtYWx9IGNsYXNzTmFtZT17Y2xhc3Nlcy5waW5zfT57Y2hpbGRyZW5Db3VudH08L0hpUGlucz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9UYWJsZUNlbGw+XG4gICAgICAgICk7XG4gICAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCB3aXRoU3R5bGVzKHN0eWxlcywgeyB3aXRoVGhlbWU6IHRydWUsIG5hbWU6ICdIbXVpQ2VsbExheW91dCcgfSkoQ2VsbExheW91dCk7XG4iXX0=
36292
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9IaVRhYmxlL0JvZHlDZWxscy9DZWxsTGF5b3V0LmpzIl0sIm5hbWVzIjpbImNzdCIsInN0eWxlcyIsInJvb3QiLCJwYWRkaW5nIiwiYmFja2dyb3VuZENvbG9yIiwiYm9yZGVyIiwiZmxleENvbnRlbnQiLCJkaXNwbGF5IiwiZmxleERpcmVjdGlvbiIsImp1c3RpZnlDb250ZW50IiwicG9zaXRpb24iLCJjaGVja2JveCIsImZsb2F0IiwibG9va2VkVXAiLCJiYWNrZ3JvdW5kIiwiYm9yZGVyUmFkaXVzIiwicGlucyIsInRvcCIsIkNlbGxMYXlvdXQiLCJuZXh0UHJvcHMiLCJuZXh0U3RhdGUiLCJuZXh0Q29udGV4dCIsInNlbGVjdGVkIiwicHJvcHMiLCJzZWxlY3RhYmxlIiwiY2xhc3NlcyIsInR5cGUiLCJjaGlsZHJlbiIsImFsaWduIiwiQUxJR05fUklHSFRfVFlQRVMiLCJpbmNsdWRlcyIsInZpZXciLCJkZW5zZSIsIndpZHRoIiwiREVGQVVMVF9XSURUSFMiLCJmaXhlZENvbHVtbldpZHRoIiwic3RpY2t5Iiwib25TZWxlY3QiLCJjaGlsZHJlbkNvdW50IiwiZGV0YWlsSW5mb3MiLCJvbk9wZW5EZXRhaWxzIiwidGhlbWUiLCJvZmZzZXQiLCJfd2lkdGgiLCJsb29rZWRVcENsYXNzTmFtZSIsImNlbGxTdHlsZSIsInpJbmRleCIsInRleHRBbGlnbiIsImhlaWdodCIsIkNFTExfSEVJR0hUX0RFTlNFIiwiQ0VMTF9IRUlHSFQiLCJtYXhXaWR0aCIsIm1pbldpZHRoIiwibWFyZ2luIiwicGFkZGluZ0xlZnQiLCJwYWRkaW5nUmlnaHQiLCJyaWdodCIsInBhbGV0dGUiLCJidXNpbmVzcyIsInByaW1hcnkiLCJub3JtYWwiLCJzZWNvbmRhcnkiLCJ0b3RhbCIsIkNvbXBvbmVudCIsInByb3BUeXBlcyIsImVsZW1lbnQiLCJvYmplY3QiLCJib29sIiwic3RyaW5nIiwiaXNSZXF1aXJlZCIsIm9uZU9mIiwibnVtYmVyIiwiZnVuYyIsImRlZmF1bHRQ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bEMsbUJBQWUsb0JBQVVpQztBQWpFVixDO0FBRmpCckQsVSxDQXNFS3VELFksR0FBZTtBQUNsQjFDLFVBQU0sR0FEWTtBQUVsQlAsZ0JBQVksS0FGTTtBQUdsQkYsY0FBVSxLQUhRO0FBSWxCVSxXQUFPLEtBSlc7QUFLbEJHLHNCQUFrQixJQUxBO0FBTWxCQyxZQUFRLEtBTlU7QUFPbEJqQyxhQUFTLENBUFM7QUFRbEJvQyxpQkFBYTtBQVJLLEM7a0JBMEdYLHdCQUFXdEMsTUFBWCxFQUFtQixFQUFFeUUsV0FBVyxJQUFiLEVBQW1CQyxNQUFNLGdCQUF6QixFQUFuQixFQUFnRXpELFVBQWhFLEMiLCJmaWxlIjoiQ2VsbExheW91dC5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS92ZG9zc2FudG9zL2Rldi9oaXBheS1tYXRlcmlhbC11aSIsInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgVGFibGVDZWxsIGZyb20gJ21hdGVyaWFsLXVpL1RhYmxlL1RhYmxlQ2VsbCc7XG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJztcblxuaW1wb3J0IEhpQ2hlY2tib3ggZnJvbSAnLi4vLi4vSGlDaGVja2JveCc7XG5pbXBvcnQgeyB3aXRoU3R5bGVzIH0gZnJvbSAnLi4vLi4vc3R5bGVzJztcbmltcG9ydCAqIGFzIGNzdCBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IEhpUGlucyBmcm9tICcuLi8uLi9IaVBpbnMnO1xuXG5leHBvcnQgY29uc3Qgc3R5bGVzID0gdGhlbWUgPT4gKHtcbiAgICByb290OiB7XG4gICAgICAgIHBhZGRpbmc6IDAsXG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogJ2luaGVyaXQnLFxuICAgICAgICBib3JkZXI6ICdub25lJyxcbiAgICB9LFxuICAgIGZsZXhDb250ZW50OiB7XG4gICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgZmxleERpcmVjdGlvbjogJ2NvbHVtbicsXG4gICAgICAgIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgICAgICAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gICAgfSxcbiAgICBjaGVja2JveDoge1xuICAgICAgICBmbG9hdDogJ2xlZnQnLFxuICAgICAgICBwb3NpdGlvbjogJ3JlbGF0aXZlJyxcbiAgICB9LFxuICAgIGxvb2tlZFVwOiB7XG4gICAgICAgIGJhY2tncm91bmQ6IGBsaW5lYXItZ3JhZGllbnQoMGRlZywgdHJhbnNwYXJlbnQgMjUlLCAjRkZGRjhEIDEwJSwgI0ZGRkY4RCA3NSUsIHRyYW5zcGFyZW50IDMwJSlgLFxuICAgICAgICBib3JkZXJSYWRpdXM6ICc0NSUnLFxuICAgIH0sXG4gICAgcGluczoge1xuICAgICAgICBwb3NpdGlvbjogJ3JlbGF0aXZlJyxcbiAgICAgICAgdG9wOiAzLFxuICAgIH1cbn0pO1xuXG4vKipcbiAqIENvbnN0cnVpdCB1bmUgY2VsbHVsZSBkdSBib2R5IGQnQWR2YW5jZWRUYWJsZVxuICogRMOpZmluaXQgbGEgbGFyZ2V1ciBldCBsZSBwYWRkaW5nIGVmZmVjdGlmXG4gKiBJbnTDqGdyZSBsYSBjaGVja2JveCBkZSBzw6lsZWN0aW9uIHNpIGJlc29pblxuICogR8OocmUgbGUgY29tcG9ydGVtZW50IHN0aWNreVxuICovXG5jbGFzcyBDZWxsTGF5b3V0IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcblxuICAgIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBDb250ZW51IGRlIGxhIGNlbGx1bGVcbiAgICAgICAgICovXG4gICAgICAgIGNoaWxkcmVuOiBQcm9wVHlwZXMuZWxlbWVudCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFVzZWZ1bCB0byBleHRlbmQgdGhlIHN0eWxlIGFwcGxpZWQgdG8gY29tcG9uZW50cy5cbiAgICAgICAgICovXG4gICAgICAgIGNsYXNzZXM6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBEZW5zaXTDqSwgZMOpZmluaSBsYSBoYXV0ZXVyIGRlIGxhIGxpZ25lXG4gICAgICAgICAqL1xuICAgICAgICBkZW5zZTogUHJvcFR5cGVzLmJvb2wsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBBam91dGUgdW4gQ2hpcCBhZmZpY2hhbnQgbGUgbm9tYnJlIGRlIGxpZ25lIGRlIGTDqXRhaWxzIGRlIGxhIGxpZ25lIGV0IHBlcm1ldHRhbnQgZGUgbGVzIGFmZmljaMOpcyB2aWEgb25PcGVuRGV0YWlsc1xuICAgICAgICAgKi9cbiAgICAgICAgZGV0YWlsSW5mb3M6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBSZWNoZXJjaGUgbG9va3VwIHN1ciBjZXR0ZSBjb2xvbm5lXG4gICAgICAgICAqL1xuICAgICAgICBsb29rZWRVcDogUHJvcFR5cGVzLmJvb2wsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUeXBlIGRlIGNlbGx1bGVcbiAgICAgICAgICovXG4gICAgICAgIHR5cGU6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFZpZXcgKEwvTS9TKVxuICAgICAgICAgKi9cbiAgICAgICAgdmlldzogUHJvcFR5cGVzLm9uZU9mKFsnbCcsICdtJywgJ3MnXSksXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBMYXJnZXVyIGRlIGxhIGNlbGx1bGUgKGhvcnMgcGFkZGluZyksIGVzdCBkw6lkdWl0IGRlIHZpZXcgcGFyIGTDqWZhdXRcbiAgICAgICAgICovXG4gICAgICAgIHdpZHRoOiBQcm9wVHlwZXMubnVtYmVyLFxuICAgICAgICAvKipcbiAgICAgICAgICogRml4ZSBsYSB0YWlsbGUgZGVzIGNvbG9ubmVzIHNlbG9uIGxlIHR5cGUgZGUgdnVlXG4gICAgICAgICAqIFNpbm9uIGxlcyBjb2xvbm5lcyBzJ2FkYXB0ZW50IMOgIGwnZXNwYWNlIGRpc3BvbmlibGVcbiAgICAgICAgICovXG4gICAgICAgIGZpeGVkQ29sdW1uV2lkdGg6IFByb3BUeXBlcy5ib29sLFxuICAgICAgICAvKipcbiAgICAgICAgICogVGl0bGUgYWxpZ25lbWVudCwgZXN0IGTDqWR1aXQgZGUgdHlwZSBwYXIgZMOpZmF1dFxuICAgICAgICAgKi9cbiAgICAgICAgYWxpZ246IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBQYWRkaW5nIGRlIGxhIGNlbGx1bGUgKHB4KVxuICAgICAgICAgKi9cbiAgICAgICAgcGFkZGluZzogUHJvcFR5cGVzLm51bWJlcixcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRydWUgc2kgbGEgY29sb25uZSBlc3QgbGEgcHJlbWnDqHJlIGNvbG9ubmUgZXQgZG9pdCBhdm9pciB1biBjb21wb3J0ZW1lbnQgXCJzdGlja3lcIiBsb3JzIGR1IHNjcm9sbCBob3Jpem9udGFsXG4gICAgICAgICAqL1xuICAgICAgICBzdGlja3k6IFByb3BUeXBlcy5ib29sLFxuICAgICAgICAvKipcbiAgICAgICAgICogQWpvdXRlIHVuZSBjaGVja2JveFxuICAgICAgICAgKi9cbiAgICAgICAgc2VsZWN0YWJsZTogUHJvcFR5cGVzLmJvb2wsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiDDiXRhdCBkZSBsYSBjaGVja2JveFxuICAgICAgICAgKi9cbiAgICAgICAgc2VsZWN0ZWQ6IFByb3BUeXBlcy5vbmVPZihbdHJ1ZSwgZmFsc2UsICdtaXhlZCddKSxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEZvbmN0aW9uIGRlIGNhbGxiYWNrIGF1IGNsaWNrIGR1IHNlbGVjdFxuICAgICAgICAgKi9cbiAgICAgICAgb25TZWxlY3Q6IFByb3BUeXBlcy5mdW5jLFxuICAgICAgICAvKipcbiAgICAgICAgICogTm9tYnJlIGQnZW5mYW50c1xuICAgICAgICAgKi9cbiAgICAgICAgY2hpbGRyZW5Db3VudDogUHJvcFR5cGVzLm51bWJlcixcbiAgICB9O1xuXG4gICAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICAgICAgdmlldzogJ2wnLFxuICAgICAgICBzZWxlY3RhYmxlOiBmYWxzZSxcbiAgICAgICAgc2VsZWN0ZWQ6IGZhbHNlLFxuICAgICAgICBkZW5zZTogZmFsc2UsXG4gICAgICAgIGZpeGVkQ29sdW1uV2lkdGg6IHRydWUsXG4gICAgICAgIHN0aWNreTogZmFsc2UsXG4gICAgICAgIHBhZGRpbmc6IDgsXG4gICAgICAgIGRldGFpbEluZm9zOiBudWxsLFxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiAqIFNob3VsZCBub3QgdXBkYXRlIGlmIHNlbGVjdGVkIGhhcyBjaGFuZ2VkIGJ1dCBjZWxsIGlzbid0IHNlbGVjdGFibGUgYW55d2F5XG4gICAgICogQHBhcmFtIG5leHRQcm9wc1xuICAgICAqIEBwYXJhbSBuZXh0U3RhdGVcbiAgICAgKiBAcGFyYW0gbmV4dENvbnRleHRcbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAgICAgKi9cbiAgICBzaG91bGRDb21wb25lbnRVcGRhdGUobmV4dFByb3BzLCBuZXh0U3RhdGUsIG5leHRDb250ZXh0KSB7XG4gICAgICAgIGlmICggbmV4dFByb3BzLnNlbGVjdGVkID09PSAhdGhpcy5wcm9wcy5zZWxlY3RlZCAmJiAhdGhpcy5wcm9wcy5zZWxlY3RhYmxlICYmICFuZXh0UHJvcHMuc2VsZWN0YWJsZSApIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICByZW5kZXIgKCkge1xuICAgICAgICBjb25zdCB7XG4gICAgICAgICAgICBjbGFzc2VzLCB0eXBlLCBjaGlsZHJlbixcbiAgICAgICAgICAgIGFsaWduID0gY3N0LkFMSUdOX1JJR0hUX1RZUEVTLmluY2x1ZGVzKHR5cGUpID8gJ3JpZ2h0JyA6ICdsZWZ0JyxcbiAgICAgICAgICAgIHZpZXcsIGRlbnNlLCB3aWR0aCA9IGNzdC5ERUZBVUxUX1dJRFRIU1t0eXBlXVt2aWV3XSwgZml4ZWRDb2x1bW5XaWR0aCwgc3RpY2t5LFxuICAgICAgICAgICAgc2VsZWN0YWJsZSwgc2VsZWN0ZWQsIG9uU2VsZWN0LCBjaGlsZHJlbkNvdW50LCBkZXRhaWxJbmZvcywgb25PcGVuRGV0YWlscywgdGhlbWUsIHBhZGRpbmcsXG4gICAgICAgICAgICBsb29rZWRVcFxuICAgICAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgICAgICBjb25zdCBvZmZzZXQgPSBzZWxlY3RhYmxlID8gZGVuc2UgPyAzMiA6IDQwIDogMDtcblxuICAgICAgICAvLyBJbmNsdXMgbGUgcGFkZGluZyBldC9vdSBsYSBjaGVja2JveCBkYW5zIGxhIGxhcmdldXIgZGUgbGEgY2VsbHVsZVxuICAgICAgICBjb25zdCBfd2lkdGggPSB3aWR0aCArIG9mZnNldCArIChzZWxlY3RhYmxlID8gcGFkZGluZyA6IDIgKiBwYWRkaW5nKTtcblxuICAgICAgICBjb25zdCBsb29rZWRVcENsYXNzTmFtZSA9IGNsYXNzTmFtZXMoY2xhc3Nlcy5mbGV4Q29udGVudCwgeyBbY2xhc3Nlcy5sb29rZWRVcF06IGxvb2tlZFVwIH0pO1xuXG4gICAgICAgIGNvbnN0IGNlbGxTdHlsZSA9IHtcbiAgICAgICAgICAgIHpJbmRleDogc3RpY2t5ID8gMTIgOiAxMSxcbiAgICAgICAgICAgIHRleHRBbGlnbjogYWxpZ24sXG4gICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5ID8gJ3JlbGF0aXZlJyA6ICdpbmhlcml0JyxcbiAgICAgICAgICAgIGJvcmRlcjogJ25vbmUnLFxuICAgICAgICAgICAgaGVpZ2h0OiBkZW5zZSA/IGNzdC5DRUxMX0hFSUdIVF9ERU5TRSA6IGNzdC5DRUxMX0hFSUdIVCxcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAoZml4ZWRDb2x1bW5XaWR0aCkge1xuICAgICAgICAgICAgY2VsbFN0eWxlLm1heFdpZHRoID0gX3dpZHRoO1xuICAgICAgICAgICAgY2VsbFN0eWxlLm1pbldpZHRoID0gX3dpZHRoO1xuICAgICAgICAgICAgY2VsbFN0eWxlLndpZHRoID0gX3dpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxUYWJsZUNlbGwgY2xhc3NOYW1lPXtjbGFzc2VzLnJvb3R9IHN0eWxlPXtjZWxsU3R5bGV9PlxuICAgICAgICAgICAgICAgIHshIXNlbGVjdGFibGUgJiYgKFxuICAgICAgICAgICAgICAgICAgICA8SGlDaGVja2JveFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3Nlcz17eyByb290OiBjbGFzc2VzLmNoZWNrYm94IH19XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17eyBtYXJnaW46IGRlbnNlID8gNiA6IDEwIH19XG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPXsxOH1cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtvblNlbGVjdH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrZWQ9e3NlbGVjdGVkfVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17bG9va2VkVXBDbGFzc05hbWV9XG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogYGNhbGMoMTAwJSAtICR7b2Zmc2V0fXB4KWAsXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nTGVmdDogc2VsZWN0YWJsZSA/IDAgOiBwYWRkaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZ1JpZ2h0OiBwYWRkaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBkZW5zZSA/IGNzdC5DRUxMX0hFSUdIVF9ERU5TRSA6IGNzdC5DRUxMX0hFSUdIVCxcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgICAgICAgICAgICAge2NoaWxkcmVuQ291bnQgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3A6IGRlbnNlID8gMiA6IDYsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEhpUGlucyBjb2xvcj17dGhlbWUucGFsZXR0ZS5idXNpbmVzcy5wcmltYXJ5Lm5vcm1hbH0gY2xhc3NOYW1lPXtjbGFzc2VzLnBpbnN9PntjaGlsZHJlbkNvdW50fTwvSGlQaW5zPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgIHtkZXRhaWxJbmZvcyAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogZGVuc2UgPyAyIDogNixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXtvbk9wZW5EZXRhaWxzfVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxIaVBpbnMgY29sb3I9e3RoZW1lLnBhbGV0dGUuYnVzaW5lc3Muc2Vjb25kYXJ5Lm5vcm1hbH0gY2xhc3NOYW1lPXtjbGFzc2VzLnBpbnN9PntkZXRhaWxJbmZvcy50b3RhbH08L0hpUGlucz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9UYWJsZUNlbGw+XG4gICAgICAgICk7XG4gICAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCB3aXRoU3R5bGVzKHN0eWxlcywgeyB3aXRoVGhlbWU6IHRydWUsIG5hbWU6ICdIbXVpQ2VsbExheW91dCcgfSkoQ2VsbExheW91dCk7XG4iXX0=
36233
36293
 
36234
36294
  /***/ }),
36235
36295
  /* 340 */
@@ -93547,6 +93607,7 @@ var styles = exports.styles = function styles(theme) {
93547
93607
  */
93548
93608
  function HiColoredLabel(props) {
93549
93609
  var classes = props.classes,
93610
+ className = props.className,
93550
93611
  label = props.label,
93551
93612
  color = props.color,
93552
93613
  active = props.active,
@@ -93561,7 +93622,7 @@ function HiColoredLabel(props) {
93561
93622
  return _react2.default.createElement(
93562
93623
  'div',
93563
93624
  {
93564
- className: (0, _classnames2.default)(classes.root, _defineProperty({}, classes.beta, beta)),
93625
+ className: (0, _classnames2.default)(classes.root, _defineProperty({}, classes.beta, beta), className),
93565
93626
  style: {
93566
93627
  backgroundColor: active ? color : (0, _colorManipulator.fade)(color, 0.08),
93567
93628
  color: active ? (0, _colorManipulator.getContrastedTextColor)(color, '#4C4C4C', '#FFF') : color,
@@ -93586,6 +93647,10 @@ HiColoredLabel.propTypes = {
93586
93647
  * Surcharge les classes du composant
93587
93648
  */
93588
93649
  classes: _propTypes2.default.object,
93650
+ /**
93651
+ * Surcharge les classes du composant
93652
+ */
93653
+ className: _propTypes2.default.string,
93589
93654
  /**
93590
93655
  * Couleur du text & du background
93591
93656
  */
@@ -93602,7 +93667,7 @@ HiColoredLabel.defaultProps = {
93602
93667
  };
93603
93668
 
93604
93669
  exports.default = (0, _withStyles2.default)(styles, { name: 'HmuiHiColoredLabel' })(HiColoredLabel);
93605
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9IaUNvbG9yZWRMYWJlbC9IaUNvbG9yZWRMYWJlbC5qcyJdLCJuYW1lcyI6WyJzdHlsZXMiLCJyb290IiwiZGlzcGxheSIsImFsaWduSXRlbXMiLCJtYXhXaWR0aCIsInBhZGRpbmciLCJib3JkZXJSYWRpdXMiLCJ0ZXh0T3ZlcmZsb3ciLCJvdmVyZmxvdyIsIndoaXRlU3BhY2UiLCJiZXRhIiwiZm9udFdlaWdodCIsImZvbnRTaXplIiwiZm9udEZhbWlseSIsInRoZW1lIiwidHlwb2dyYXBoeSIsInBhZGRpbmdMZWZ0IiwicGFkZGluZ1JpZ2h0IiwicGFkZGluZ1RvcCIsInBhZGRpbmdCb3R0b20iLCJIaUNvbG9yZWRMYWJlbCIsInByb3BzIiwiY2xhc3NlcyIsImxhYmVsIiwiY29sb3IiLCJhY3RpdmUiLCJiYWNrZ3JvdW5kQ29sb3IiLCJwcm9wVHlwZXMiLCJib29sIiwib2JqZWN0Iiwic3RyaW5nIiwiaXNSZXF1aXJlZCIsIm9uZU9mVHlwZSIsIm51bWJlciIsIm5vZGUiLCJkZWZhdWx0UHJvcHMiLCJuYW1lIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7Ozs7O0FBRU8sSUFBTUEsMEJBQVMsU0FBVEEsTUFBUztBQUFBLFdBQVU7QUFDNUJDLGNBQU07QUFDRkMscUJBQVMsYUFEUDtBQUVGQyx3QkFBWSxVQUZWO0FBR0ZDLHNCQUFVLE1BSFI7QUFJRkMscUJBQVMsU0FKUDtBQUtGQywwQkFBYyxDQUxaO0FBTUZDLDBCQUFjLFVBTlo7QUFPRkMsc0JBQVUsUUFQUjtBQVFGQyx3QkFBWTtBQVJWLFNBRHNCO0FBVzVCQyxjQUFNO0FBQ0ZDLHdCQUFZLEdBRFY7QUFFRkMsc0JBQVUsRUFGUjtBQUdGQyx3QkFBWUMsTUFBTUMsVUFBTixDQUFpQkYsVUFIM0I7QUFJRkcseUJBQWEsQ0FKWDtBQUtGQywwQkFBYyxDQUxaO0FBTUZDLHdCQUFZLENBTlY7QUFPRkMsMkJBQWU7QUFQYjtBQVhzQixLQUFWO0FBQUEsQ0FBZjs7QUFzQlA7Ozs7O0FBS0EsU0FBU0MsY0FBVCxDQUF3QkMsS0FBeEIsRUFBK0I7QUFBQSxRQUNuQkMsT0FEbUIsR0FDcUJELEtBRHJCLENBQ25CQyxPQURtQjtBQUFBLFFBQ1ZDLEtBRFUsR0FDcUJGLEtBRHJCLENBQ1ZFLEtBRFU7QUFBQSxRQUNIQyxLQURHLEdBQ3FCSCxLQURyQixDQUNIRyxLQURHO0FBQUEsUUFDSUMsTUFESixHQUNxQkosS0FEckIsQ0FDSUksTUFESjtBQUFBLFFBQ1lmLElBRFosR0FDcUJXLEtBRHJCLENBQ1lYLElBRFo7O0FBRTNCLFFBQUlDLGFBQWEsR0FBakI7QUFDQSxRQUFJRCxJQUFKLEVBQVU7QUFDTkMscUJBQWEsR0FBYjtBQUNILEtBRkQsTUFFTyxJQUFJYyxNQUFKLEVBQVk7QUFDZmQscUJBQWEsR0FBYjtBQUNIO0FBQ0QsV0FDSTtBQUFBO0FBQUE7QUFDSSx1QkFBVywwQkFBV1csUUFBUXJCLElBQW5CLHNCQUE0QnFCLFFBQVFaLElBQXBDLEVBQTJDQSxJQUEzQyxFQURmO0FBRUksbUJBQU87QUFDSGdCLGlDQUFpQkQsU0FBU0QsS0FBVCxHQUFpQiw0QkFBS0EsS0FBTCxFQUFZLElBQVosQ0FEL0I7QUFFSEEsdUJBQU9DLFNBQVMsOENBQXVCRCxLQUF2QixFQUE4QixTQUE5QixFQUF5QyxNQUF6QyxDQUFULEdBQTREQSxLQUZoRTtBQUdIYjtBQUhHO0FBRlg7QUFRS1k7QUFSTCxLQURKO0FBWUg7O0FBRURILGVBQWVPLFNBQWYsR0FBMkI7QUFDdkI7Ozs7QUFJQUYsWUFBUSxvQkFBVUcsSUFMSztBQU12Qjs7O0FBR0FsQixVQUFNLG9CQUFVa0IsSUFUTztBQVV2Qjs7O0FBR0FOLGFBQVMsb0JBQVVPLE1BYkk7QUFjdkI7OztBQUdBTCxXQUFPLG9CQUFVTSxNQUFWLENBQWlCQyxVQWpCRDtBQWtCdkI7OztBQUdBUixXQUFPLG9CQUFVUyxTQUFWLENBQW9CLENBQUMsb0JBQVVGLE1BQVgsRUFBbUIsb0JBQVVHLE1BQTdCLEVBQXFDLG9CQUFVQyxJQUEvQyxDQUFwQixFQUEwRUg7QUFyQjFELENBQTNCOztBQXdCQVgsZUFBZWUsWUFBZixHQUE4QjtBQUMxQlYsWUFBUSxLQURrQjtBQUUxQkQsV0FBTztBQUZtQixDQUE5Qjs7a0JBS2UsMEJBQVd4QixNQUFYLEVBQW1CLEVBQUVvQyxNQUFNLG9CQUFSLEVBQW5CLEVBQW1EaEIsY0FBbkQsQyIsImZpbGUiOiJIaUNvbG9yZWRMYWJlbC5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS92ZG9zc2FudG9zL2Rldi9oaXBheS1tYXRlcmlhbC11aSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQgd2l0aFN0eWxlcyBmcm9tICcuLi9zdHlsZXMvd2l0aFN0eWxlcyc7XG5pbXBvcnQgeyBnZXRDb250cmFzdGVkVGV4dENvbG9yLCBmYWRlIH0gZnJvbSAnLi4vc3R5bGVzL2NvbG9yTWFuaXB1bGF0b3InO1xuXG5leHBvcnQgY29uc3Qgc3R5bGVzID0gdGhlbWUgPT4gKHtcbiAgICByb290OiB7XG4gICAgICAgIGRpc3BsYXk6ICdpbmxpbmUtZmxleCcsXG4gICAgICAgIGFsaWduSXRlbXM6ICdiYXNlbGluZScsXG4gICAgICAgIG1heFdpZHRoOiAnMTAwJScsXG4gICAgICAgIHBhZGRpbmc6ICcycHggNHB4JyxcbiAgICAgICAgYm9yZGVyUmFkaXVzOiAyLFxuICAgICAgICB0ZXh0T3ZlcmZsb3c6ICdlbGxpcHNpcycsXG4gICAgICAgIG92ZXJmbG93OiAnaGlkZGVuJyxcbiAgICAgICAgd2hpdGVTcGFjZTogJ25vd3JhcCcsXG4gICAgfSxcbiAgICBiZXRhOiB7XG4gICAgICAgIGZvbnRXZWlnaHQ6IDYwMCxcbiAgICAgICAgZm9udFNpemU6IDEyLFxuICAgICAgICBmb250RmFtaWx5OiB0aGVtZS50eXBvZ3JhcGh5LmZvbnRGYW1pbHksXG4gICAgICAgIHBhZGRpbmdMZWZ0OiA5LFxuICAgICAgICBwYWRkaW5nUmlnaHQ6IDksXG4gICAgICAgIHBhZGRpbmdUb3A6IDMsXG4gICAgICAgIHBhZGRpbmdCb3R0b206IDIsXG4gICAgfSxcbn0pO1xuXG4vKipcbiAqIEhpQ29sb3JlZExhYmVsXG4gKlxuICogTGFiZWwgd2l0aCBiYWNrZ3JvdW5kIGNvbG9yICYgdGV4dCBjb2xvclxuICovXG5mdW5jdGlvbiBIaUNvbG9yZWRMYWJlbChwcm9wcykge1xuICAgIGNvbnN0IHsgY2xhc3NlcywgbGFiZWwsIGNvbG9yLCBhY3RpdmUsIGJldGEgfSA9IHByb3BzO1xuICAgIGxldCBmb250V2VpZ2h0ID0gNDAwO1xuICAgIGlmIChiZXRhKSB7XG4gICAgICAgIGZvbnRXZWlnaHQgPSA2MDA7XG4gICAgfSBlbHNlIGlmIChhY3RpdmUpIHtcbiAgICAgICAgZm9udFdlaWdodCA9IDUwMDtcbiAgICB9XG4gICAgcmV0dXJuIChcbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKGNsYXNzZXMucm9vdCwgeyBbY2xhc3Nlcy5iZXRhXTogYmV0YSB9KX1cbiAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiBhY3RpdmUgPyBjb2xvciA6IGZhZGUoY29sb3IsIDAuMDgpLFxuICAgICAgICAgICAgICAgIGNvbG9yOiBhY3RpdmUgPyBnZXRDb250cmFzdGVkVGV4dENvbG9yKGNvbG9yLCAnIzRDNEM0QycsICcjRkZGJykgOiBjb2xvcixcbiAgICAgICAgICAgICAgICBmb250V2VpZ2h0LFxuICAgICAgICAgICAgfX1cbiAgICAgICAgPlxuICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICA8L2Rpdj5cbiAgICApO1xufVxuXG5IaUNvbG9yZWRMYWJlbC5wcm9wVHlwZXMgPSB7XG4gICAgLyoqXG4gICAgICogQXBwbGlxdWUgbGUgc3R5bGUgZHUgbGFiZWwgYWN0aWZcbiAgICAgKiBCYWNrZ3JvdW5kIGRlIGxhIGNvdWxldXIgcHVyIGV0IGxhYmVsIGJsYW5jXG4gICAgICovXG4gICAgYWN0aXZlOiBQcm9wVHlwZXMuYm9vbCxcbiAgICAvKipcbiAgICAgKiBBcHBsaXF1ZSBsZSBzdHlsZSBkdSBsYWJlbCBcIkJFVEFcIiBkYW5zIGxhIHRvcEJhclxuICAgICAqL1xuICAgIGJldGE6IFByb3BUeXBlcy5ib29sLFxuICAgIC8qKlxuICAgICAqIFN1cmNoYXJnZSBsZXMgY2xhc3NlcyBkdSBjb21wb3NhbnRcbiAgICAgKi9cbiAgICBjbGFzc2VzOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIC8qKlxuICAgICAqIENvdWxldXIgZHUgdGV4dCAmIGR1IGJhY2tncm91bmRcbiAgICAgKi9cbiAgICBjb2xvcjogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgIC8qKlxuICAgICAqIExhYmVsIMOgIGFmZmljaGVyXG4gICAgICovXG4gICAgbGFiZWw6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5zdHJpbmcsIFByb3BUeXBlcy5udW1iZXIsIFByb3BUeXBlcy5ub2RlXSkuaXNSZXF1aXJlZCxcbn07XG5cbkhpQ29sb3JlZExhYmVsLmRlZmF1bHRQcm9wcyA9IHtcbiAgICBhY3RpdmU6IGZhbHNlLFxuICAgIGNvbG9yOiAnIzczNzM3MycsXG59O1xuXG5leHBvcnQgZGVmYXVsdCB3aXRoU3R5bGVzKHN0eWxlcywgeyBuYW1lOiAnSG11aUhpQ29sb3JlZExhYmVsJyB9KShIaUNvbG9yZWRMYWJlbCk7XG4iXX0=
93670
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9IaUNvbG9yZWRMYWJlbC9IaUNvbG9yZWRMYWJlbC5qcyJdLCJuYW1lcyI6WyJzdHlsZXMiLCJyb290IiwiZGlzcGxheSIsImFsaWduSXRlbXMiLCJtYXhXaWR0aCIsInBhZGRpbmciLCJib3JkZXJSYWRpdXMiLCJ0ZXh0T3ZlcmZsb3ciLCJvdmVyZmxvdyIsIndoaXRlU3BhY2UiLCJiZXRhIiwiZm9udFdlaWdodCIsImZvbnRTaXplIiwiZm9udEZhbWlseSIsInRoZW1lIiwidHlwb2dyYXBoeSIsInBhZGRpbmdMZWZ0IiwicGFkZGluZ1JpZ2h0IiwicGFkZGluZ1RvcCIsInBhZGRpbmdCb3R0b20iLCJIaUNvbG9yZWRMYWJlbCIsInByb3BzIiwiY2xhc3NlcyIsImNsYXNzTmFtZSIsImxhYmVsIiwiY29sb3IiLCJhY3RpdmUiLCJiYWNrZ3JvdW5kQ29sb3IiLCJwcm9wVHlwZXMiLCJib29sIiwib2JqZWN0Iiwic3RyaW5nIiwiaXNSZXF1aXJlZCIsIm9uZU9mVHlwZSIsIm51bWJlciIsIm5vZGUiLCJkZWZhdWx0UHJvcHMiLCJuYW1lIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7Ozs7O0FBRU8sSUFBTUEsMEJBQVMsU0FBVEEsTUFBUztBQUFBLFdBQVU7QUFDNUJDLGNBQU07QUFDRkMscUJBQVMsYUFEUDtBQUVGQyx3QkFBWSxVQUZWO0FBR0ZDLHNCQUFVLE1BSFI7QUFJRkMscUJBQVMsU0FKUDtBQUtGQywwQkFBYyxDQUxaO0FBTUZDLDBCQUFjLFVBTlo7QUFPRkMsc0JBQVUsUUFQUjtBQVFGQyx3QkFBWTtBQVJWLFNBRHNCO0FBVzVCQyxjQUFNO0FBQ0ZDLHdCQUFZLEdBRFY7QUFFRkMsc0JBQVUsRUFGUjtBQUdGQyx3QkFBWUMsTUFBTUMsVUFBTixDQUFpQkYsVUFIM0I7QUFJRkcseUJBQWEsQ0FKWDtBQUtGQywwQkFBYyxDQUxaO0FBTUZDLHdCQUFZLENBTlY7QUFPRkMsMkJBQWU7QUFQYjtBQVhzQixLQUFWO0FBQUEsQ0FBZjs7QUFzQlA7Ozs7O0FBS0EsU0FBU0MsY0FBVCxDQUF3QkMsS0FBeEIsRUFBK0I7QUFBQSxRQUNuQkMsT0FEbUIsR0FDZ0NELEtBRGhDLENBQ25CQyxPQURtQjtBQUFBLFFBQ1ZDLFNBRFUsR0FDZ0NGLEtBRGhDLENBQ1ZFLFNBRFU7QUFBQSxRQUNDQyxLQURELEdBQ2dDSCxLQURoQyxDQUNDRyxLQUREO0FBQUEsUUFDUUMsS0FEUixHQUNnQ0osS0FEaEMsQ0FDUUksS0FEUjtBQUFBLFFBQ2VDLE1BRGYsR0FDZ0NMLEtBRGhDLENBQ2VLLE1BRGY7QUFBQSxRQUN1QmhCLElBRHZCLEdBQ2dDVyxLQURoQyxDQUN1QlgsSUFEdkI7O0FBRTNCLFFBQUlDLGFBQWEsR0FBakI7QUFDQSxRQUFJRCxJQUFKLEVBQVU7QUFDTkMscUJBQWEsR0FBYjtBQUNILEtBRkQsTUFFTyxJQUFJZSxNQUFKLEVBQVk7QUFDZmYscUJBQWEsR0FBYjtBQUNIO0FBQ0QsV0FDSTtBQUFBO0FBQUE7QUFDSSx1QkFBVywwQkFBV1csUUFBUXJCLElBQW5CLHNCQUE0QnFCLFFBQVFaLElBQXBDLEVBQTJDQSxJQUEzQyxHQUFtRGEsU0FBbkQsQ0FEZjtBQUVJLG1CQUFPO0FBQ0hJLGlDQUFpQkQsU0FBU0QsS0FBVCxHQUFpQiw0QkFBS0EsS0FBTCxFQUFZLElBQVosQ0FEL0I7QUFFSEEsdUJBQU9DLFNBQVMsOENBQXVCRCxLQUF2QixFQUE4QixTQUE5QixFQUF5QyxNQUF6QyxDQUFULEdBQTREQSxLQUZoRTtBQUdIZDtBQUhHO0FBRlg7QUFRS2E7QUFSTCxLQURKO0FBWUg7O0FBRURKLGVBQWVRLFNBQWYsR0FBMkI7QUFDdkI7Ozs7QUFJQUYsWUFBUSxvQkFBVUcsSUFMSztBQU12Qjs7O0FBR0FuQixVQUFNLG9CQUFVbUIsSUFUTztBQVV2Qjs7O0FBR0FQLGFBQVMsb0JBQVVRLE1BYkk7QUFjdkI7OztBQUdBUCxlQUFXLG9CQUFVUSxNQWpCRTtBQWtCdkI7OztBQUdBTixXQUFPLG9CQUFVTSxNQUFWLENBQWlCQyxVQXJCRDtBQXNCdkI7OztBQUdBUixXQUFPLG9CQUFVUyxTQUFWLENBQW9CLENBQUMsb0JBQVVGLE1BQVgsRUFBbUIsb0JBQVVHLE1BQTdCLEVBQXFDLG9CQUFVQyxJQUEvQyxDQUFwQixFQUEwRUg7QUF6QjFELENBQTNCOztBQTRCQVosZUFBZWdCLFlBQWYsR0FBOEI7QUFDMUJWLFlBQVEsS0FEa0I7QUFFMUJELFdBQU87QUFGbUIsQ0FBOUI7O2tCQUtlLDBCQUFXekIsTUFBWCxFQUFtQixFQUFFcUMsTUFBTSxvQkFBUixFQUFuQixFQUFtRGpCLGNBQW5ELEMiLCJmaWxlIjoiSGlDb2xvcmVkTGFiZWwuanMiLCJzb3VyY2VSb290IjoiL2hvbWUvdmRvc3NhbnRvcy9kZXYvaGlwYXktbWF0ZXJpYWwtdWkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IHdpdGhTdHlsZXMgZnJvbSAnLi4vc3R5bGVzL3dpdGhTdHlsZXMnO1xuaW1wb3J0IHsgZ2V0Q29udHJhc3RlZFRleHRDb2xvciwgZmFkZSB9IGZyb20gJy4uL3N0eWxlcy9jb2xvck1hbmlwdWxhdG9yJztcblxuZXhwb3J0IGNvbnN0IHN0eWxlcyA9IHRoZW1lID0+ICh7XG4gICAgcm9vdDoge1xuICAgICAgICBkaXNwbGF5OiAnaW5saW5lLWZsZXgnLFxuICAgICAgICBhbGlnbkl0ZW1zOiAnYmFzZWxpbmUnLFxuICAgICAgICBtYXhXaWR0aDogJzEwMCUnLFxuICAgICAgICBwYWRkaW5nOiAnMnB4IDRweCcsXG4gICAgICAgIGJvcmRlclJhZGl1czogMixcbiAgICAgICAgdGV4dE92ZXJmbG93OiAnZWxsaXBzaXMnLFxuICAgICAgICBvdmVyZmxvdzogJ2hpZGRlbicsXG4gICAgICAgIHdoaXRlU3BhY2U6ICdub3dyYXAnLFxuICAgIH0sXG4gICAgYmV0YToge1xuICAgICAgICBmb250V2VpZ2h0OiA2MDAsXG4gICAgICAgIGZvbnRTaXplOiAxMixcbiAgICAgICAgZm9udEZhbWlseTogdGhlbWUudHlwb2dyYXBoeS5mb250RmFtaWx5LFxuICAgICAgICBwYWRkaW5nTGVmdDogOSxcbiAgICAgICAgcGFkZGluZ1JpZ2h0OiA5LFxuICAgICAgICBwYWRkaW5nVG9wOiAzLFxuICAgICAgICBwYWRkaW5nQm90dG9tOiAyLFxuICAgIH0sXG59KTtcblxuLyoqXG4gKiBIaUNvbG9yZWRMYWJlbFxuICpcbiAqIExhYmVsIHdpdGggYmFja2dyb3VuZCBjb2xvciAmIHRleHQgY29sb3JcbiAqL1xuZnVuY3Rpb24gSGlDb2xvcmVkTGFiZWwocHJvcHMpIHtcbiAgICBjb25zdCB7IGNsYXNzZXMsIGNsYXNzTmFtZSwgbGFiZWwsIGNvbG9yLCBhY3RpdmUsIGJldGEgfSA9IHByb3BzO1xuICAgIGxldCBmb250V2VpZ2h0ID0gNDAwO1xuICAgIGlmIChiZXRhKSB7XG4gICAgICAgIGZvbnRXZWlnaHQgPSA2MDA7XG4gICAgfSBlbHNlIGlmIChhY3RpdmUpIHtcbiAgICAgICAgZm9udFdlaWdodCA9IDUwMDtcbiAgICB9XG4gICAgcmV0dXJuIChcbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKGNsYXNzZXMucm9vdCwgeyBbY2xhc3Nlcy5iZXRhXTogYmV0YSB9LCBjbGFzc05hbWUpfVxuICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IGFjdGl2ZSA/IGNvbG9yIDogZmFkZShjb2xvciwgMC4wOCksXG4gICAgICAgICAgICAgICAgY29sb3I6IGFjdGl2ZSA/IGdldENvbnRyYXN0ZWRUZXh0Q29sb3IoY29sb3IsICcjNEM0QzRDJywgJyNGRkYnKSA6IGNvbG9yLFxuICAgICAgICAgICAgICAgIGZvbnRXZWlnaHQsXG4gICAgICAgICAgICB9fVxuICAgICAgICA+XG4gICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgIDwvZGl2PlxuICAgICk7XG59XG5cbkhpQ29sb3JlZExhYmVsLnByb3BUeXBlcyA9IHtcbiAgICAvKipcbiAgICAgKiBBcHBsaXF1ZSBsZSBzdHlsZSBkdSBsYWJlbCBhY3RpZlxuICAgICAqIEJhY2tncm91bmQgZGUgbGEgY291bGV1ciBwdXIgZXQgbGFiZWwgYmxhbmNcbiAgICAgKi9cbiAgICBhY3RpdmU6IFByb3BUeXBlcy5ib29sLFxuICAgIC8qKlxuICAgICAqIEFwcGxpcXVlIGxlIHN0eWxlIGR1IGxhYmVsIFwiQkVUQVwiIGRhbnMgbGEgdG9wQmFyXG4gICAgICovXG4gICAgYmV0YTogUHJvcFR5cGVzLmJvb2wsXG4gICAgLyoqXG4gICAgICogU3VyY2hhcmdlIGxlcyBjbGFzc2VzIGR1IGNvbXBvc2FudFxuICAgICAqL1xuICAgIGNsYXNzZXM6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgLyoqXG4gICAgICogU3VyY2hhcmdlIGxlcyBjbGFzc2VzIGR1IGNvbXBvc2FudFxuICAgICAqL1xuICAgIGNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICAvKipcbiAgICAgKiBDb3VsZXVyIGR1IHRleHQgJiBkdSBiYWNrZ3JvdW5kXG4gICAgICovXG4gICAgY29sb3I6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICAvKipcbiAgICAgKiBMYWJlbCDDoCBhZmZpY2hlclxuICAgICAqL1xuICAgIGxhYmVsOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMuc3RyaW5nLCBQcm9wVHlwZXMubnVtYmVyLCBQcm9wVHlwZXMubm9kZV0pLmlzUmVxdWlyZWQsXG59O1xuXG5IaUNvbG9yZWRMYWJlbC5kZWZhdWx0UHJvcHMgPSB7XG4gICAgYWN0aXZlOiBmYWxzZSxcbiAgICBjb2xvcjogJyM3MzczNzMnLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgd2l0aFN0eWxlcyhzdHlsZXMsIHsgbmFtZTogJ0htdWlIaUNvbG9yZWRMYWJlbCcgfSkoSGlDb2xvcmVkTGFiZWwpO1xuIl19
93606
93671
 
93607
93672
  /***/ }),
93608
93673
  /* 2643 */
@@ -103728,18 +103793,22 @@ var HiTableBody = function (_React$Component) {
103728
103793
  /**
103729
103794
  * Définit les id des lignes dont les détails sont affichés ou null
103730
103795
  * (ajoute une ligne pour chaque détails)
103796
+ * vérifie aussi le type du détail
103731
103797
  *
103732
103798
  * @param rowId
103799
+ * @param type
103733
103800
  */
103734
103801
 
103735
103802
  }, {
103736
103803
  key: 'toggleOpenedDetailsRowId',
103737
- value: function toggleOpenedDetailsRowId(rowId) {
103804
+ value: function toggleOpenedDetailsRowId(rowId, type) {
103738
103805
  this.setState(function (prevState) {
103739
103806
  return {
103740
- openedDetailsRowIdList: prevState.openedDetailsRowIdList.includes(rowId) ? prevState.openedDetailsRowIdList.filter(function (id) {
103741
- return id !== rowId;
103742
- }) : [].concat(_toConsumableArray(prevState.openedDetailsRowIdList), [rowId])
103807
+ openedDetailsRowIdList: prevState.openedDetailsRowIdList.find(function (item) {
103808
+ return item.id === rowId && item.type === type;
103809
+ }) ? prevState.openedDetailsRowIdList.filter(function (item) {
103810
+ return item.id !== rowId || item.type !== type;
103811
+ }) : [].concat(_toConsumableArray(prevState.openedDetailsRowIdList), [{ id: rowId, type: type }])
103743
103812
  };
103744
103813
  });
103745
103814
  this.props.addNewRowRefs();
@@ -103781,7 +103850,8 @@ var HiTableBody = function (_React$Component) {
103781
103850
  lookupColumns = _props.lookupColumns,
103782
103851
  loading = _props.loading,
103783
103852
  fixedColumnWidth = _props.fixedColumnWidth,
103784
- disableContextMenu = _props.disableContextMenu;
103853
+ disableContextMenu = _props.disableContextMenu,
103854
+ detailRowsOptions = _props.detailRowsOptions;
103785
103855
  var _state = this.state,
103786
103856
  openedParentRowId = _state.openedParentRowId,
103787
103857
  openedDetailsRowIdList = _state.openedDetailsRowIdList;
@@ -103853,9 +103923,6 @@ var HiTableBody = function (_React$Component) {
103853
103923
  // has children
103854
103924
  var hasChildren = row.hasOwnProperty('children') && row.children.length > 0;
103855
103925
 
103856
- // has detail rows
103857
- var hasDetailRows = row.hasOwnProperty('detailRows') && row.detailRows.length > 0;
103858
-
103859
103926
  var BodyRowProps = _extends({
103860
103927
  columns: columns,
103861
103928
  dateLocale: dateLocale,
@@ -103867,9 +103934,9 @@ var HiTableBody = function (_React$Component) {
103867
103934
  }, hasChildren && {
103868
103935
  openedAsParent: openedParentRowId === row.rowId,
103869
103936
  onClick: _this3.setOpenedParentRowId // if row has children, onClick display the children
103870
- }, hasDetailRows && {
103871
- onOpenRowDetails: _this3.toggleOpenedDetailsRowId
103872
103937
  }, {
103938
+ onOpenRowDetails: _this3.toggleOpenedDetailsRowId,
103939
+ detailRowsOptions: detailRowsOptions,
103873
103940
  orderedColumns: orderedColumns
103874
103941
  }, selectable && {
103875
103942
  selectable: selectable,
@@ -103892,7 +103959,6 @@ var HiTableBody = function (_React$Component) {
103892
103959
  parentIndicatorColumn: row.parentIndicatorColumn,
103893
103960
  parentLabel: row.parentLabel,
103894
103961
  parentLabelIcon: row.parentLabelIcon,
103895
- parentDetailRows: row.detailRows,
103896
103962
  children: row.children,
103897
103963
  onClose: _this3.setOpenedParentRowId
103898
103964
  }, BodyRowProps)));
@@ -103901,21 +103967,27 @@ var HiTableBody = function (_React$Component) {
103901
103967
  }
103902
103968
 
103903
103969
  // add opened detail rows
103904
- if (hasDetailRows && openedDetailsRowIdList.includes(row.rowId)) {
103905
- row.detailRows.forEach(function (detailRow) {
103906
- var detailRowProps = {
103907
- row: detailRow,
103908
- columns: columns,
103909
- orderedColumns: orderedColumns,
103910
- view: view,
103911
- dense: dense,
103912
- sticky: sticky,
103913
- isDetail: true,
103914
- fixedColumnWidth: fixedColumnWidth,
103915
- disableContextMenu: disableContextMenu
103916
- };
103970
+ if (row.details && row.details.length > 0) {
103971
+ row.details.forEach(function (detail) {
103972
+ if (detail.rows.length > 0 && openedDetailsRowIdList.find(function (item) {
103973
+ return item.id === row.rowId && item.type === detail.type;
103974
+ })) {
103975
+ detail.rows.forEach(function (detailRow) {
103976
+ var detailRowProps = {
103977
+ row: detailRow,
103978
+ columns: columns,
103979
+ orderedColumns: orderedColumns,
103980
+ view: view,
103981
+ dense: dense,
103982
+ sticky: sticky,
103983
+ isDetail: true,
103984
+ fixedColumnWidth: fixedColumnWidth,
103985
+ disableContextMenu: disableContextMenu
103986
+ };
103917
103987
 
103918
- tableRows.push(_react2.default.createElement(_BodyRow2.default, _extends({ key: row.rowId + '-' + detailRow.rowId }, detailRowProps)));
103988
+ tableRows.push(_react2.default.createElement(_BodyRow2.default, _extends({ key: row.rowId + '-' + detailRow.rowId }, detailRowProps)));
103989
+ });
103990
+ }
103919
103991
  });
103920
103992
  }
103921
103993
  });
@@ -103970,6 +104042,10 @@ HiTableBody.propTypes = {
103970
104042
  * Densité d'affichage (joue sur la hauteur des lignes)
103971
104043
  */
103972
104044
  dense: _propTypes2.default.bool,
104045
+ /**
104046
+ * Options utilisées pour décrire le comportement de lignes de détails
104047
+ */
104048
+ detailRowsOptions: _propTypes2.default.object,
103973
104049
  /**
103974
104050
  * Active/désactive le menu contextuel au clic droit sur les cellules du tableau
103975
104051
  */
@@ -104068,10 +104144,11 @@ HiTableBody.defaultProps = {
104068
104144
  sticky: true,
104069
104145
  view: 'l',
104070
104146
  loading: false,
104071
- disableContextMenu: true
104147
+ disableContextMenu: true,
104148
+ detailRowsOptions: {}
104072
104149
  };
104073
104150
  exports.default = (0, _styles.withStyles)(styles, { withTheme: true, name: 'HmuiHiTableBody' })(HiTableBody);
104074
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9IaVRhYmxlL0hpVGFibGVCb2R5LmpzIl0sIm5hbWVzIjpbImNzdCIsInN0eWxlcyIsInRib2R5IiwicG9zaXRpb24iLCJ3aWR0aCIsIm92ZXJmbG93WCIsIm92ZXJmbG93WSIsInpJbmRleCIsInRib2R5Rml4ZWRXaWR0aCIsImRpc3BsYXkiLCJ0Ym9keVJvd3MiLCJiYWNrZ3JvdW5kQ29sb3IiLCJ0aGVtZSIsInBhbGV0dGUiLCJiYWNrZ3JvdW5kMyIsInRib2R5Um93c0hvdmVyIiwiaG92ZXIiLCJmb250V2VpZ2h0IiwidHlwb2dyYXBoeSIsImZvbnRXZWlnaHRNZWRpdW0iLCJyaWdodFNoYWRvdyIsImJvcmRlcldpZHRoIiwiYm9yZGVyU3R5bGUiLCJ3ZWJraXRCb3JkZXJJbWFnZSIsIm1vekJvcmRlckltYWdlIiwib0JvcmRlckltYWdlIiwiYm9yZGVySW1hZ2UiLCJib3R0b21TaGFkb3ciLCJwYXRjaERpdiIsImhlaWdodCIsInRvcCIsIkhpVGFibGVCb2R5IiwicHJvcHMiLCJidWlsZEluZGljYXRvciIsImNvbHVtbnMiLCJkYXRlTG9jYWxlIiwiaW5kaWNhdG9yIiwiaW5kaWNhdG9yQ29sdW1uIiwicm93IiwicGFyZW50SW5kaWNhdG9yQ29sdW1uIiwidHlwZSIsIm9wdGlvbnMiLCJ5ZWFyIiwibW9udGgiLCJkYXkiLCJob3VyIiwibWludXRlIiwiZGF0ZSIsIkRhdGUiLCJkYXRhcyIsInZhbHVlIiwidG9Mb2NhbGVTdHJpbmciLCJzdGF0ZSIsIm9wZW5lZFBhcmVudFJvd0lkIiwib3BlbmVkRGV0YWlsc1Jvd0lkTGlzdCIsImJpbmQiLCJzZXRPcGVuZWRQYXJlbnRSb3dJZCIsInRvZ2dsZU9wZW5lZERldGFpbHNSb3dJZCIsInBvc2l0aW9uU3RpY2t5Um93TmV4dEJ1dHRvbiIsInByZXZQcm9wcyIsInByZXZTdGF0ZSIsInByZXZDb250ZXh0Iiwic2V0U3RhdGUiLCJyb3dJZCIsImFkZE5ld1Jvd1JlZnMiLCJ0YWJsZUNvbnRhaW5lciIsImRvY3VtZW50IiwiZ2V0RWxlbWVudEJ5SWQiLCJ0YWJJZCIsInN0aWNreVJvd05leHRCdXR0b25zIiwiZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSIsImxlbmd0aCIsIkFycmF5IiwicHJvdG90eXBlIiwiZmlsdGVyIiwiY2FsbCIsImJ1dHRvbiIsImluZGV4Iiwic3R5bGUiLCJwYXJlbnRFbGVtZW50IiwicHJldmlvdXNTaWJsaW5nIiwiZGVuc2UiLCJDRUxMX0hFSUdIVF9ERU5TRSIsIkNFTExfSEVJR0hUIiwibGFiZWwiLCJsZWZ0Iiwib2Zmc2V0V2lkdGgiLCJpbmNsdWRlcyIsImlkIiwiY2xhc3NlcyIsIm9yZGVyZWRDb2x1bW5zIiwiZGF0YVNvdXJjZSIsIm9uUm93Q2xpY2siLCJzZWxlY3RhYmxlIiwib25TZWxlY3QiLCJzZWxlY3RlZElkTGlzdCIsIm9uU2Nyb2xsIiwiZGF0ZVVwZGF0ZSIsInN0aWNreSIsInZpZXciLCJncm91cEJ5IiwidHJhbnNsYXRpb25zIiwibnVtYmVyTG9jYWxlIiwiZ3JvdXBCeUlkcyIsInNvcnRlZENvbHVtbklkIiwibG9va3VwQ29sdW1ucyIsImxvYWRpbmciLCJmaXhlZENvbHVtbldpZHRoIiwiZGlzYWJsZUNvbnRleHRNZW51IiwibmJDb2x1bW5zRGlzcGxheWVkIiwiZm9yRWFjaCIsImNvbHVtbiIsImRpc3BsYXllZCIsInRhYmxlUm93cyIsInN0aWNreVJvd1ZhbHVlIiwic3RpY2t5Um93SW5kZXgiLCJjdXJyZW50R3JvdXBCeVZhbHVlIiwiaXNGaW5pdGUiLCJzdWJzdHIiLCJUWVBFX0RBVEUiLCJ3ZWVrZGF5IiwiY2hhckF0IiwidG9VcHBlckNhc2UiLCJwdXNoIiwic3RpY2t5Um93Iiwib25DbGlja05leHQiLCJoYXNDaGlsZHJlbiIsImhhc093blByb3BlcnR5IiwiY2hpbGRyZW4iLCJoYXNEZXRhaWxSb3dzIiwiZGV0YWlsUm93cyIsIkJvZHlSb3dQcm9wcyIsImxpdmUiLCJ0cyIsIm9uQ2xpY2siLCJvcGVuZWRBc1BhcmVudCIsIm9uT3BlblJvd0RldGFpbHMiLCJzZWxlY3RlZCIsInBhcmVudExhYmVsIiwicGFyZW50TGFiZWxJY29uIiwiZGV0YWlsUm93UHJvcHMiLCJkZXRhaWxSb3ciLCJpc0RldGFpbCIsInRCb2R5Q2xhc3NlcyIsIm9wYWNpdHkiLCJtYXAiLCJ0YWJsZVJvdyIsIkNvbXBvbmVudCIsInByb3BUeXBlcyIsIm9iamVjdCIsImlzUmVxdWlyZWQiLCJhcnJheSIsInN0cmluZyIsIm51bWJlciIsImJvb2wiLCJmdW5jIiwib25lT2YiLCJkZWZhdWx0UHJvcHMiLCJ3aXRoVGhlbWUiLCJuYW1lIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOzs7O0FBQ0E7Ozs7QUFDQTs7QUFDQTs7OztBQUNBOztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOztJQUFZQSxHOzs7Ozs7Ozs7Ozs7Ozs7O0FBRUwsSUFBTUMsMEJBQVMsU0FBVEEsTUFBUztBQUFBLFdBQVU7QUFDNUJDLGVBQU87QUFDSEMsc0JBQVUsVUFEUDtBQUVIQyxtQkFBTyxNQUZKO0FBR0hDLHVCQUFXLFFBSFI7QUFJSEMsdUJBQVcsTUFKUjtBQUtIQyxvQkFBUTtBQUxMLFNBRHFCO0FBUTVCQyx5QkFBaUI7QUFDYkMscUJBQVMsT0FESSxDQUNJO0FBREosU0FSVztBQVc1QkMsbUJBQVc7QUFDUEMsNkJBQWlCQyxNQUFNQyxPQUFOLENBQWNDO0FBRHhCLFNBWGlCO0FBYzVCQyx3QkFBZ0I7QUFDWix1QkFBVztBQUNQSixpQ0FBaUJDLE1BQU1DLE9BQU4sQ0FBY0csS0FEeEI7QUFFUEMsNEJBQVlMLE1BQU1NLFVBQU4sQ0FBaUJDO0FBRnRCO0FBREMsU0FkWTtBQW9CNUJDLHFCQUFhO0FBQ1RDLHlCQUFhLGVBREo7QUFFVEMseUJBQWEsT0FGSjtBQUdUQywrQkFDSSxnRkFKSztBQUtUQyw0QkFDSSw2RUFOSztBQU9UQywwQkFBYywyRUFQTDtBQVFUQyx5QkFBYTtBQVJKLFNBcEJlO0FBOEI1QkMsc0JBQWM7QUFDVk4seUJBQWEsV0FESDtBQUVWQyx5QkFBYSxPQUZIO0FB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QURqQjVILFcsQ0FtSEs4SCxZLEdBQWU7QUFDbEJoRSxnQkFBWSxLQURNO0FBRWxCRSxvQkFBZ0IsRUFGRTtBQUdsQkUsZ0JBQVksSUFITTtBQUlsQjlELGdCQUFZLE9BSk07QUFLbEJtRSxrQkFBYyxPQUxJO0FBTWxCckIsV0FBTyxLQU5XO0FBT2xCcEQsWUFBUSxHQVBVO0FBUWxCcUUsWUFBUSxJQVJVO0FBU2xCQyxVQUFNLEdBVFk7QUFVbEJPLGFBQVMsS0FWUztBQVdsQkUsd0JBQW9CO0FBWEYsQztrQkE2VVgsd0JBQVczRyxNQUFYLEVBQW1CLEVBQUU2SixXQUFXLElBQWIsRUFBbUJDLE1BQU0saUJBQXpCLEVBQW5CLEVBQWlFaEksV0FBakUsQyIsImZpbGUiOiJIaVRhYmxlQm9keS5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS92ZG9zc2FudG9zL2Rldi9oaXBheS1tYXRlcmlhbC11aSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHsgVGFibGVCb2R5LCBUYWJsZVJvdyB9IGZyb20gJ21hdGVyaWFsLXVpL1RhYmxlJztcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IHsgd2l0aFN0eWxlcyB9IGZyb20gJy4uL3N0eWxlcyc7XG5pbXBvcnQgQm9keVJvdyBmcm9tICcuL0JvZHlSb3cnO1xuaW1wb3J0IENoaWxkUm93IGZyb20gJy4vQ2hpbGRSb3cnO1xuaW1wb3J0IEhpU3RpY2t5Um93IGZyb20gJy4vSGlTdGlja3lSb3cnO1xuaW1wb3J0ICogYXMgY3N0IGZyb20gJy4vY29uc3RhbnRzJztcblxuZXhwb3J0IGNvbnN0IHN0eWxlcyA9IHRoZW1lID0+ICh7XG4gICAgdGJvZHk6IHtcbiAgICAgICAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgIG92ZXJmbG93WDogJ2hpZGRlbicsXG4gICAgICAgIG92ZXJmbG93WTogJ2F1dG8nLFxuICAgICAgICB6SW5kZXg6IDExLFxuICAgIH0sXG4gICAgdGJvZHlGaXhlZFdpZHRoOiB7XG4gICAgICAgIGRpc3BsYXk6ICdibG9jaycgLyogc2VwZXJhdGVzIHRoZSB0Ym9keSBmcm9tIHRoZSBoZWFkZXIgKi8sXG4gICAgfSxcbiAgICB0Ym9keVJvd3M6IHtcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS5wYWxldHRlLmJhY2tncm91bmQzLFxuICAgIH0sXG4gICAgdGJvZHlSb3dzSG92ZXI6IHtcbiAgICAgICAgJyY6aG92ZXInOiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lLnBhbGV0dGUuaG92ZXIsXG4gICAgICAgICAgICBmb250V2VpZ2h0OiB0aGVtZS50eXBvZ3JhcGh5LmZvbnRXZWlnaHRNZWRpdW0sXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICByaWdodFNoYWRvdzoge1xuICAgICAgICBib3JkZXJXaWR0aDogJzRweCA0cHggNHB4IDAnLFxuICAgICAgICBib3JkZXJTdHlsZTogJ3NvbGlkJyxcbiAgICAgICAgd2Via2l0Qm9yZGVySW1hZ2U6XG4gICAgICAgICAgICAnLXdlYmtpdC1saW5lYXItZ3JhZGllbnQocmlnaHQsIHJnYmEoNDIsIDQyLCA0MiwgMC4xKSwgcmdiYSgwLCAwLCAwLCAwKSkgMSAxMDAlJyxcbiAgICAgICAgbW96Qm9yZGVySW1hZ2U6XG4gICAgICAgICAgICAnLW1vei1saW5lYXItZ3JhZGllbnQocmlnaHQsIHJnYmEoNDIsIDQyLCA0MiwgMC4xKSwgcmdiYSgwLCAwLCAwLCAwKSkgMSAxMDAlJyxcbiAgICAgICAgb0JvcmRlckltYWdlOiAnLW8tbGluZWFyLWdyYWRpZW50KHJpZ2h0LCByZ2JhKDQyLCA0MiwgNDIsIDAuMSksIHJnYmEoMCwgMCwgMCwgMCkpIDEgMTAwJScsXG4gICAgICAgIGJvcmRlckltYWdlOiAnbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKDQyLCA0MiwgNDIsIDAuMSksIHJnYmEoMCwgMCwgMCwgMCkpIDEgMTAwJScsXG4gICAgfSxcbiAgICBib3R0b21TaGFkb3c6IHtcbiAgICAgICAgYm9yZGVyV2lkdGg6ICcwIDAgNHB4IDAnLFxuICAgICAgICBib3JkZXJTdHlsZTogJ3NvbGlkJyxcbiAgICAgICAgd2Via2l0Qm9yZGVySW1hZ2U6XG4gICAgICAgICAgICAnLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCByZ2JhKDAsMCwwLCAwLjA4KSAwJSwgcmdiYSgwLDAsMCwgMCkgMTAwJSknLFxuICAgICAgICBtb3pCb3JkZXJJbWFnZTogJy1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwgcmdiYSgwLDAsMCwgMC4wOCksIHJnYmEoMCwwLDAsIDApIDEgMTAwJSknLFxuICAgICAgICBvQm9yZGVySW1hZ2U6ICctby1saW5lYXItZ3JhZGllbnQodG9wLCByZ2JhKDAsMCwwLCAwLjA4KSwgcmdiYSgwLCAwLCAwLCAwKSkgMSAxMDAlJyxcbiAgICAgICAgYm9yZGVySW1hZ2U6ICdsaW5lYXItZ3JhZGllbnQodG8gdG9wLCByZ2JhKDAsIDAsIDAsIDAuMDgpLCByZ2JhKDAsIDAsIDAsIDApKSAxIDEwMCUnLFxuICAgIH0sXG4gICAgcGF0Y2hEaXY6IHtcbiAgICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgICAgIHdpZHRoOiAyNCxcbiAgICAgICAgaGVpZ2h0OiA1MCxcbiAgICAgICAgdG9wOiAwLFxuICAgICAgICB6SW5kZXg6IDE1LFxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lLnBhbGV0dGUuYmFja2dyb3VuZDMsXG4gICAgfSxcbn0pO1xuXG4vKipcbiAqIEhpVGFibGUgQm9keVxuICogSGFuZGxlIHJvd3MgY3JlYXRpb24gYW5kIHVwZGF0ZSBmcm9tIGRhdGFzb3VyY2VcbiAqL1xuY2xhc3MgSGlUYWJsZUJvZHkgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICAgIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBVc2VmdWwgdG8gZXh0ZW5kIHRoZSBzdHlsZSBhcHBsaWVkIHRvIGNvbXBvbmVudHMuXG4gICAgICAgICAqL1xuICAgICAgICBjbGFzc2VzOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgICAgICAvKipcbiAgICAgICAgICogQ29sb25uZXMgZHUgdGFibGVhdSAobGFiZWwsIGxhcmdldXIsIGRvbm7DqWVzLCAuLi4gKVxuICAgICAgICAgKi9cbiAgICAgICAgY29sdW1uczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgICAgICAvKipcbiAgICAgICAgICogVGFibGVhdSBkZXMgZG9ubsOpZXNcbiAgICAgICAgICovXG4gICAgICAgIGRhdGFTb3VyY2U6IFByb3BUeXBlcy5hcnJheS5pc1JlcXVpcmVkLFxuICAgICAgICAvKipcbiAgICAgICAgICogTG9jYWxlIHV0aWxpc8OpZSBwb3VyIGxlIGZvcm1hdCBkZXMgZGF0ZXNcbiAgICAgICAgICovXG4gICAgICAgIGRhdGVMb2NhbGU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUaW1lc3RhbXAgZGUgbGEgZGVybmnDqHJlIG1pc2Ugw6Agam91ciBkdSB0YWJsZWF1XG4gICAgICAgICAqIHBlcm1ldCBkJ2FuaW1lciBsZXMgbm91dmVsbGVzIGxpZ25lc1xuICAgICAgICAgKi9cbiAgICAgICAgZGF0ZVVwZGF0ZTogUHJvcFR5cGVzLm51bWJlcixcbiAgICAgICAgLyoqXG4gICAgICAgICAqIERlbnNpdMOpIGQnYWZmaWNoYWdlIChqb3VlIHN1ciBsYSBoYXV0ZXVyIGRlcyBsaWduZXMpXG4gICAgICAgICAqL1xuICAgICAgICBkZW5zZTogUHJvcFR5cGVzLmJvb2wsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBBY3RpdmUvZMOpc2FjdGl2ZSBsZSBtZW51IGNvbnRleHR1ZWwgYXUgY2xpYyBkcm9pdCBzdXIgbGVzIGNlbGx1bGVzIGR1IHRhYmxlYXVcbiAgICAgICAgICovXG4gICAgICAgIGRpc2FibGVDb250ZXh0TWVudTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEZpeGUgbGEgdGFpbGxlIGRlcyBjb2xvbm5lcyBzZWxvbiBsZSB0eXBlIGRlIHZ1ZVxuICAgICAgICAgKiBTaW5vbiBsZXMgY29sb25uZXMgcydhZGFwdGVudCDDoCBsJ2VzcGFjZSBkaXNwb25pYmxlXG4gICAgICAgICAqL1xuICAgICAgICBmaXhlZENvbHVtbldpZHRoOiBQcm9wVHlwZXMuYm9vbCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEhhdXRldXIgZHUgdGFibGVhdSAocHgpXG4gICAgICAgICAqL1xuICAgICAgICBoZWlnaHQ6IFByb3BUeXBlcy5udW1iZXIsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiDDiXRhdCBkdSB0YWJsZWF1IGVuIGNvdXJzIGRlIGNoYXJnZW1lbnQgZGVzIGRvbm7DqWVzXG4gICAgICAgICAqL1xuICAgICAgICBsb2FkaW5nOiBQcm9wVHlwZXMuYm9vbCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIElkZW50aWZpYW50IGRlIGxhIG91IGRlcyBjb2xvbm5lcyBzdXIgbGEvbGVzcXVlbGxlcyBpbCB5IGEgdW5lICdsb29rdXAnIHNlYXJjaFxuICAgICAgICAgKi9cbiAgICAgICAgbG9va3VwQ29sdW1uczogUHJvcFR5cGVzLmFycmF5LFxuICAgICAgICAvKipcbiAgICAgICAgICogIExvY2FsZSB1dGlsaXPDqWUgcG91ciBsZSBmb3JtYXQgZGVzIG5vbWJyZXNcbiAgICAgICAgICovXG4gICAgICAgIG51bWJlckxvY2FsZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEZvbmN0aW9uIGRlIGNhbGxiYWNrIGF1IGNsaWNrIHN1ciB1bmUgbGlnbmVcbiAgICAgICAgICogUGFzc2UgbCdpZCBkZSBsYSBsaWduZSAocm93SWQpXG4gICAgICAgICAqL1xuICAgICAgICBvblJvd0NsaWNrOiBQcm9wVHlwZXMuZnVuYyxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEZvbmN0aW9uIGRlIGNhbGxiYWNrIGF1IHNjcm9sbCBzdXIgbGUgYm9keSBkdSB0YWJsZWF1XG4gICAgICAgICAqL1xuICAgICAgICBvblNjcm9sbDogUHJvcFR5cGVzLmZ1bmMsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBGb25jdGlvbiBkZSBjYWxsYmFjayBzdXIgbGEgc8OpbGVjdGlvbiBkJ3VuZSBsaWduZVxuICAgICAgICAgKiAob3Ugc8OpbGVjdGlvbi9kw6lzZWxlY3Rpb24gZGUgdG91cyBkYW5zIGxlIGhlYWRlcilcbiAgICAgICAgICogUGFzc2UgbCdpZCBkZSBsYSBsaWduZSBzw6lsZWN0aW9ubsOpZSAocm93SWQpXG4gICAgICAgICAqL1xuICAgICAgICBvblNlbGVjdDogUHJvcFR5cGVzLmZ1bmMsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUYWJsZWF1IGRlcyBjb2xvbm5lcyBhZmZpY2jDqWVzIChvcmRvbm7DqWVzLCB2aXNpYmxlcy9jYWNow6llcywgbC9tL3MpXG4gICAgICAgICAqL1xuICAgICAgICBvcmRlcmVkQ29sdW1uczogUHJvcFR5cGVzLmFycmF5LmlzUmVxdWlyZWQsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBbdjIgLSDDoCB2ZW5pcl0gTGVzIGxpZ25lcyBzb250IHPDqWxlY3Rpb25uYWJsZXMgKGFmZmljaGFnZSBkJ3VuZSBjaGVja2JveClcbiAgICAgICAgICovXG4gICAgICAgIHNlbGVjdGFibGU6IFByb3BUeXBlcy5ib29sLFxuICAgICAgICAvKipcbiAgICAgICAgICogTGlzdGUgZGVzIGlkIGRlcyBsaWduZXMgc8OpbGVjdGlvbm7DqWVzXG4gICAgICAgICAqL1xuICAgICAgICBzZWxlY3RlZElkTGlzdDogUHJvcFR5cGVzLmFycmF5LFxuICAgICAgICAvKipcbiAgICAgICAgICogRml4ZSBsYSBwcmVtacOocmUgY29sb25uZVxuICAgICAgICAgKi9cbiAgICAgICAgc3RpY2t5OiBQcm9wVHlwZXMuYm9vbCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIElkZW50aWZpYW50IHVuaXF1ZSDDoCBzcMOpY2lmaWVyIHNpIG9uIHV0aWxpc2UgcGx1c2lldXJzIGNvbXBvc2FudHMgSGlUYWJsZVxuICAgICAgICAgKi9cbiAgICAgICAgdGFiSWQ6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRhaWxsZSBkdSB0YWJsZWF1IChML00vUyksXG4gICAgICAgICAqIGTDqWZpbml0IGwnZXNwYWNlIGVudHJlIGxlcyBjZWxsdWxlcyBldCBsZXVycyB0YWlsbGVzIHBhciBkZWZhdWx0XG4gICAgICAgICAqL1xuICAgICAgICB2aWV3OiBQcm9wVHlwZXMub25lT2YoWydsJywgJ20nLCAncyddKSxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIElkIGRlIGxhIGNvbG9ubmUgcGFyIGxhcXVlbGxlIHNvbnQgcmVncm91cMOpIGxlcyDDqWzDqW1lbnRzXG4gICAgICAgICAqL1xuICAgICAgICBncm91cEJ5OiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgICAvKipcbiAgICAgICAgICogVGFibGVhdSBhc3NvY2lhdGlmIChwYXJlbnRHcm91cEJ5ID0+IGlkIGNvbnRlbnVzKVxuICAgICAgICAgKi9cbiAgICAgICAgZ3JvdXBCeUlkczogUHJvcFR5cGVzLm9iamVjdCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIElkIGRlIGxhIGNvbG9ubmUgdHJpw6lcbiAgICAgICAgICovXG4gICAgICAgIHNvcnRlZENvbHVtbklkOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgICAvKipcbiAgICAgICAgICogVHJhZHVjdGlvbiBkZXMgY2hhw65uZXMgYWZmaWNow6llc1xuICAgICAgICAgKi9cbiAgICAgICAgdHJhbnNsYXRpb25zOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgICAgICAvKipcbiAgICAgICAgICogQ2FsbGJhY2sgbG9ycyBkJ3VuIGNsaWMgc3VyIGxlIGJvdXRvbiAnTmV4dCcgZCd1bmUgc3RpY2tSb3dcbiAgICAgICAgICogQHBhcmFtIHtpbnR9IGluZGV4IGR1IHN0aWNreVJvd1xuICAgICAgICAgKi9cbiAgICAgICAgb25DbGlja05leHQ6IFByb3BUeXBlcy5mdW5jLFxuICAgIH07XG5cbiAgICBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgICAgICBzZWxlY3RhYmxlOiBmYWxzZSxcbiAgICAgICAgc2VsZWN0ZWRJZExpc3Q6IFtdLFxuICAgICAgICBkYXRlVXBkYXRlOiBudWxsLFxuICAgICAgICBkYXRlTG9jYWxlOiAnZW4tRU4nLFxuICAgICAgICBudW1iZXJMb2NhbGU6ICdlbi1FTicsXG4gICAgICAgIGRlbnNlOiBmYWxzZSxcbiAgICAgICAgaGVpZ2h0OiA0NTAsXG4gICAgICAgIHN0aWNreTogdHJ1ZSxcbiAgICAgICAgdmlldzogJ2wnLFxuICAgICAgICBsb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgZGlzYWJsZUNvbnRleHRNZW51OiB0cnVlLFxuICAgIH07XG5cbiAgICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgICAgICBzdXBlcigpO1xuXG4gICAgICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICAgICAgICBvcGVuZWRQYXJlbnRSb3dJZDogbnVsbCxcbiAgICAgICAgICAgIG9wZW5lZERldGFpbHNSb3dJZExpc3Q6IFtdLFxuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMuYnVpbGRJbmRpY2F0b3IgPSB0aGlzLmJ1aWxkSW5kaWNhdG9yLmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMuc2V0T3BlbmVkUGFyZW50Um93SWQgPSB0aGlzLnNldE9wZW5lZFBhcmVudFJvd0lkLmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMudG9nZ2xlT3BlbmVkRGV0YWlsc1Jvd0lkID0gdGhpcy50b2dnbGVPcGVuZWREZXRhaWxzUm93SWQuYmluZCh0aGlzKTtcbiAgICAgICAgdGhpcy5wb3NpdGlvblN0aWNreVJvd05leHRCdXR0b24gPSB0aGlzLnBvc2l0aW9uU3RpY2t5Um93TmV4dEJ1dHRvbi5iaW5kKHRoaXMpO1xuICAgIH1cblxuICAgIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgICAgICB0aGlzLnBvc2l0aW9uU3RpY2t5Um93TmV4dEJ1dHRvbigpO1xuICAgIH1cblxuICAgIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMsIHByZXZTdGF0ZSwgcHJldkNvbnRleHQpIHtcbiAgICAgICAgdGhpcy5wb3NpdGlvblN0aWNreVJvd05leHRCdXR0b24oKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEw6lmaW5pdCBsJ2lkIGRlIGxhIGxpZ25lIHBhcmVudGUgXCJvdXZlcnRlXCIgb3UgbnVsbFxuICAgICAqIChyZW1wbGFjZSBsYSBsaWduZSBwYXIgdW4gc291cy10YWJsZWF1KVxuICAgICAqIElsIG5lIHBldXQgeSBhdm9pciBxdSd1bmUgc2V1bGUgbGlnbmUgcGFyZW50ZSBcIm91dmVydGVcIiDDoCBsYSBmb2lzXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcm93XG4gICAgICovXG4gICAgc2V0T3BlbmVkUGFyZW50Um93SWQocm93KSB7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUocHJldlN0YXRlID0+ICh7XG4gICAgICAgICAgICBvcGVuZWRQYXJlbnRSb3dJZDpcbiAgICAgICAgICAgICAgICBwcmV2U3RhdGUub3BlbmVkUGFyZW50Um93SWQgPT09IG51bGwgfHwgcHJldlN0YXRlLm9wZW5lZFBhcmVudFJvd0lkICE9PSByb3cucm93SWRcbiAgICAgICAgICAgICAgICAgICAgPyByb3cucm93SWRcbiAgICAgICAgICAgICAgICAgICAgOiBudWxsLFxuICAgICAgICB9KSk7XG4gICAgICAgIHRoaXMucHJvcHMuYWRkTmV3Um93UmVmcygpO1xuICAgIH1cblxuICAgIHBvc2l0aW9uU3RpY2t5Um93TmV4dEJ1dHRvbigpIHtcbiAgICAgICAgLy8gaGFuZGxlIHN0aWNreVJvdyBuZXh0IGJ1dHRvbnMgcG9zaXRpb25cbiAgICAgICAgY29uc3QgdGFibGVDb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLnByb3BzLnRhYklkKTtcbiAgICAgICAgY29uc3Qgc3RpY2t5Um93TmV4dEJ1dHRvbnMgPSB0YWJsZUNvbnRhaW5lci5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdzdGlja3lSb3dOZXh0QnV0dG9uJyk7XG4gICAgICAgIGlmIChzdGlja3lSb3dOZXh0QnV0dG9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBBcnJheS5wcm90b3R5cGUuZmlsdGVyLmNhbGwoc3RpY2t5Um93TmV4dEJ1dHRvbnMsIChidXR0b24sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGluZGV4ID09PSBzdGlja3lSb3dOZXh0QnV0dG9ucy5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIGJ1dHRvbi5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgICAgICAgICAgICAgICAgICBidXR0b24ucGFyZW50RWxlbWVudC5zdHlsZS50b3AgPSAnMHB4JztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpZiAoYnV0dG9uLnN0eWxlLmRpc3BsYXkgPT09ICdub25lJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgYnV0dG9uLnN0eWxlLmRpc3BsYXkgPSAnaW5saW5lLWJsb2NrJztcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBidXR0b24ucGFyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50LnBhcmVudEVsZW1lbnQuc3R5bGUucG9zaXRpb24gPT09XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Fic29sdXRlJ1xuICAgICAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnV0dG9uLnBhcmVudEVsZW1lbnQucGFyZW50RWxlbWVudC5wcmV2aW91c1NpYmxpbmcuc3R5bGUuaGVpZ2h0ID0gdGhpc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAucHJvcHMuZGVuc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBgJHtjc3QuQ0VMTF9IRUlHSFRfREVOU0UgLSA4fXB4YFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGAke2NzdC5DRUxMX0hFSUdIVCAtIDh9cHhgO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgYnV0dG9uLnBhcmVudEVsZW1lbnQuc3R5bGUudG9wID0gJzRweCc7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbGFiZWwgPSBidXR0b24ucHJldmlvdXNTaWJsaW5nLnByZXZpb3VzU2libGluZztcbiAgICAgICAgICAgICAgICAgICAgYnV0dG9uLnN0eWxlLmxlZnQgPSBgJHt0YWJsZUNvbnRhaW5lci5vZmZzZXRXaWR0aCAtXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbC5vZmZzZXRXaWR0aCAtXG4gICAgICAgICAgICAgICAgICAgICAgICA0OCAtXG4gICAgICAgICAgICAgICAgICAgICAgICAxNjB9cHhgO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRMOpZmluaXQgbGVzIGlkIGRlcyBsaWduZXMgZG9udCBsZXMgZMOpdGFpbHMgc29udCBhZmZpY2jDqXMgb3UgbnVsbFxuICAgICAqIChham91dGUgdW5lIGxpZ25lIHBvdXIgY2hhcXVlIGTDqXRhaWxzKVxuICAgICAqXG4gICAgICogQHBhcmFtIHJvd0lkXG4gICAgICovXG4gICAgdG9nZ2xlT3BlbmVkRGV0YWlsc1Jvd0lkKHJvd0lkKSB7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUocHJldlN0YXRlID0+ICh7XG4gICAgICAgICAgICBvcGVuZWREZXRhaWxzUm93SWRMaXN0OiBwcmV2U3RhdGUub3BlbmVkRGV0YWlsc1Jvd0lkTGlzdC5pbmNsdWRlcyhyb3dJZClcbiAgICAgICAgICAgICAgICA/IHByZXZTdGF0ZS5vcGVuZWREZXRhaWxzUm93SWRMaXN0LmZpbHRlcihpZCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGlkICE9PSByb3dJZDtcbiAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgOiBbLi4ucHJldlN0YXRlLm9wZW5lZERldGFpbHNSb3dJZExpc3QsIHJvd0lkXSxcbiAgICAgICAgfSkpO1xuICAgICAgICB0aGlzLnByb3BzLmFkZE5ld1Jvd1JlZnMoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBCdWlsZCBjaGlsZHJlbiBzdWItdGFibGUgaW5kaWNhdG9yXG4gICAgICogQHBhcmFtIHJvd1xuICAgICAqIEByZXR1cm5zIHsqfVxuICAgICAqL1xuICAgIGJ1aWxkSW5kaWNhdG9yID0gcm93ID0+IHtcbiAgICAgICAgY29uc3QgeyBjb2x1bW5zLCBkYXRlTG9jYWxlIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgICAgIGxldCBpbmRpY2F0b3I7XG4gICAgICAgIGNvbnN0IGluZGljYXRvckNvbHVtbiA9IGNvbHVtbnNbcm93LnBhcmVudEluZGljYXRvckNvbHVtbl07XG4gICAgICAgIHN3aXRjaCAoaW5kaWNhdG9yQ29sdW1uLnR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ2RhdGUnOlxuICAgICAgICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICAgICAgICAgICAgICAgIHllYXI6ICdudW1lcmljJyxcbiAgICAgICAgICAgICAgICAgICAgbW9udGg6ICcyLWRpZ2l0JyxcbiAgICAgICAgICAgICAgICAgICAgZGF5OiAnMi1kaWdpdCcsXG4gICAgICAgICAgICAgICAgICAgIGhvdXI6ICcyLWRpZ2l0JyxcbiAgICAgICAgICAgICAgICAgICAgbWludXRlOiAnMi1kaWdpdCcsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUocm93LmRhdGFzW3Jvdy5wYXJlbnRJbmRpY2F0b3JDb2x1bW5dLnZhbHVlKTtcbiAgICAgICAgICAgICAgICBpbmRpY2F0b3IgPSBkYXRlLnRvTG9jYWxlU3RyaW5nKGRhdGVMb2NhbGUsIG9wdGlvbnMpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAndGV4dCc6XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGluZGljYXRvciA9IHJvdy5kYXRhc1tyb3cucGFyZW50SW5kaWNhdG9yQ29sdW1uXS52YWx1ZTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBpbmRpY2F0b3I7XG4gICAgfTtcblxuICAgIHJlbmRlcigpIHtcbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgY2xhc3NlcyxcbiAgICAgICAgICAgIHRhYklkLFxuICAgICAgICAgICAgY29sdW1ucyxcbiAgICAgICAgICAgIG9yZGVyZWRDb2x1bW5zLFxuICAgICAgICAgICAgZGF0YVNvdXJjZSxcbiAgICAgICAgICAgIG9uUm93Q2xpY2ssXG4gICAgICAgICAgICBzZWxlY3RhYmxlLFxuICAgICAgICAgICAgb25TZWxlY3QsXG4gICAgICAgICAgICBzZWxlY3RlZElkTGlzdCxcbiAgICAgICAgICAgIG9uU2Nyb2xsLFxuICAgICAgICAgICAgZGF0ZVVwZGF0ZSxcbiAgICAgICAgICAgIGRlbnNlLFxuICAgICAgICAgICAgaGVpZ2h0LFxuICAgICAgICAgICAgc3RpY2t5LFxuICAgICAgICAgICAgdmlldyxcbiAgICAgICAgICAgIGdyb3VwQnksXG4gICAgICAgICAgICB0cmFuc2xhdGlvbnMsXG4gICAgICAgICAgICBkYXRlTG9jYWxlLFxuICAgICAgICAgICAgbnVtYmVyTG9jYWxlLFxuICAgICAgICAgICAgZ3JvdXBCeUlkcyxcbiAgICAgICAgICAgIHNvcnRlZENvbHVtbklkLFxuICAgICAgICAgICAgbG9va3VwQ29sdW1ucyxcbiAgICAgICAgICAgIGxvYWRpbmcsXG4gICAgICAgICAgICBmaXhlZENvbHVtbldpZHRoLFxuICAgICAgICAgICAgZGlzYWJsZUNvbnRleHRNZW51LFxuICAgICAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgICAgICBjb25zdCB7IG9wZW5lZFBhcmVudFJvd0lkLCBvcGVuZWREZXRhaWxzUm93SWRMaXN0IH0gPSB0aGlzLnN0YXRlO1xuXG4gICAgICAgIGxldCBuYkNvbHVtbnNEaXNwbGF5ZWQgPSAwO1xuICAgICAgICBvcmRlcmVkQ29sdW1ucy5mb3JFYWNoKGNvbHVtbiA9PiB7XG4gICAgICAgICAgICBpZiAoY29sdW1uLmRpc3BsYXllZCAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICBuYkNvbHVtbnNEaXNwbGF5ZWQgKz0gMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gYnVpbGQgY29tcG9uZW50cyBsaXN0XG4gICAgICAgIGNvbnN0IHRhYmxlUm93cyA9IFtdO1xuICAgICAgICBsZXQgc3RpY2t5Um93VmFsdWU7XG4gICAgICAgIGxldCBzdGlja3lSb3dJbmRleCA9IDA7XG4gICAgICAgIGRhdGFTb3VyY2UuZm9yRWFjaCgocm93LCBpbmRleCkgPT4ge1xuXG4gICAgICAgICAgICAvLyBHZXN0aW9uIGR1IHN0aWNreSBncm91cCBieVxuICAgICAgICAgICAgaWYgKHR5cGVvZiBncm91cEJ5ICE9PSAndW5kZWZpbmVkJyAmJiBncm91cEJ5ID09PSBzb3J0ZWRDb2x1bW5JZCkge1xuICAgICAgICAgICAgICAgIGxldCBjdXJyZW50R3JvdXBCeVZhbHVlID0gcm93LmRhdGFzW2dyb3VwQnldLnZhbHVlO1xuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZShjdXJyZW50R3JvdXBCeVZhbHVlKTtcbiAgICAgICAgICAgICAgICBpZiAoZGF0ZSBpbnN0YW5jZW9mIERhdGUgJiYgaXNGaW5pdGUoZGF0ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudEdyb3VwQnlWYWx1ZSA9IGN1cnJlbnRHcm91cEJ5VmFsdWUuc3Vic3RyKDAsIDEwKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gVE9ETyA9PiBjb25kaXRpb24gZm9yIG90aGVyIGNvbHVtbnMgdHlwZVxuICAgICAgICAgICAgICAgIGlmIChjb2x1bW5zW2dyb3VwQnldLnR5cGUgPT09IGNzdC5UWVBFX0RBVEUpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGluZGV4ID09PSAwIHx8IGN1cnJlbnRHcm91cEJ5VmFsdWUgIT09IHN0aWNreVJvd1ZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGlja3lSb3dWYWx1ZSA9IGN1cnJlbnRHcm91cEJ5VmFsdWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbGFiZWwgPSBzdGlja3lSb3dWYWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRlIGluc3RhbmNlb2YgRGF0ZSAmJiBpc0Zpbml0ZShkYXRlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsID0gbmV3IERhdGUobGFiZWwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHllYXI6ICdudW1lcmljJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9udGg6ICdsb25nJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2Vla2RheTogJ2xvbmcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXk6ICdudW1lcmljJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsID0gbGFiZWwudG9Mb2NhbGVTdHJpbmcoZGF0ZUxvY2FsZSwgb3B0aW9ucyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWwgPSBsYWJlbC5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIGxhYmVsLnN1YnN0cigxKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgdGFibGVSb3dzLnB1c2goXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEhpU3RpY2t5Um93XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17YHN0aWNreV9yb3dfJHtyb3cucm93SWR9YH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVuc2U9e2RlbnNlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17c3RpY2t5Um93VmFsdWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPXtsYWJlbH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoPXtncm91cEJ5SWRzW2N1cnJlbnRHcm91cEJ5VmFsdWVdLmxlbmd0aH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sU3Bhbj17bmJDb2x1bW5zRGlzcGxheWVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleD17c3RpY2t5Um93SW5kZXh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbGF0aW9ucz17dHJhbnNsYXRpb25zLnN0aWNreVJvd31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlldz17dmlld31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGlja05leHQ9e3RoaXMucHJvcHMub25DbGlja05leHR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz4sXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICB0YWJsZVJvd3MucHVzaChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VGFibGVSb3dcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtgZ2hvc3Rfc3RpY2t5X3Jvd18ke3Jvdy5yb3dJZH1gfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9eydmYWtlU3RpY2t5R3JvdXBCeSd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IGRlbnNlID8gY3N0LkNFTExfSEVJR0hUX0RFTlNFIDogY3N0LkNFTExfSEVJR0hULFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogJ25vbmUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+LFxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0aWNreVJvd0luZGV4Kys7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIGhhcyBjaGlsZHJlblxuICAgICAgICAgICAgY29uc3QgaGFzQ2hpbGRyZW4gPSByb3cuaGFzT3duUHJvcGVydHkoJ2NoaWxkcmVuJykgJiYgcm93LmNoaWxkcmVuLmxlbmd0aCA+IDA7XG5cbiAgICAgICAgICAgIC8vIGhhcyBkZXRhaWwgcm93c1xuICAgICAgICAgICAgY29uc3QgaGFzRGV0YWlsUm93cyA9IHJvdy5oYXNPd25Qcm9wZXJ0eSgnZGV0YWlsUm93cycpICYmIHJvdy5kZXRhaWxSb3dzLmxlbmd0aCA+IDA7XG5cbiAgICAgICAgICAgIGNvbnN0IEJvZHlSb3dQcm9wcyA9IHtcbiAgICAgICAgICAgICAgICBjb2x1bW5zLFxuICAgICAgICAgICAgICAgIGRhdGVMb2NhbGUsXG4gICAgICAgICAgICAgICAgbnVtYmVyTG9jYWxlLFxuICAgICAgICAgICAgICAgIGRlbnNlLFxuICAgICAgICAgICAgICAgIGxpdmU6IHJvdy50cyA+PSBkYXRlVXBkYXRlLFxuICAgICAgICAgICAgICAgIGxvb2t1cENvbHVtbnMsXG4gICAgICAgICAgICAgICAgb25DbGljazogb25Sb3dDbGljayxcbiAgICAgICAgICAgICAgICAuLi4oaGFzQ2hpbGRyZW4gJiYge1xuICAgICAgICAgICAgICAgICAgICBvcGVuZWRBc1BhcmVudDogb3BlbmVkUGFyZW50Um93SWQgPT09IHJvdy5yb3dJZCxcbiAgICAgICAgICAgICAgICAgICAgb25DbGljazogdGhpcy5zZXRPcGVuZWRQYXJlbnRSb3dJZCwgLy8gaWYgcm93IGhhcyBjaGlsZHJlbiwgb25DbGljayBkaXNwbGF5IHRoZSBjaGlsZHJlblxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIC4uLihoYXNEZXRhaWxSb3dzICYmIHtcbiAgICAgICAgICAgICAgICAgICAgb25PcGVuUm93RGV0YWlsczogdGhpcy50b2dnbGVPcGVuZWREZXRhaWxzUm93SWQsXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgb3JkZXJlZENvbHVtbnMsXG4gICAgICAgICAgICAgICAgLi4uKHNlbGVjdGFibGUgJiYge1xuICAgICAgICAgICAgICAgICAgICBzZWxlY3RhYmxlLFxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZDogc2VsZWN0ZWRJZExpc3QuaW5jbHVkZXMocm93LnJvd0lkKSxcbiAgICAgICAgICAgICAgICAgICAgb25TZWxlY3QsXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgcm93LFxuICAgICAgICAgICAgICAgIHN0aWNreSxcbiAgICAgICAgICAgICAgICB0YWJJZCxcbiAgICAgICAgICAgICAgICB2aWV3LFxuICAgICAgICAgICAgICAgIGZpeGVkQ29sdW1uV2lkdGgsXG4gICAgICAgICAgICAgICAgZGlzYWJsZUNvbnRleHRNZW51LFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgaWYgKGhhc0NoaWxkcmVuICYmIG9wZW5lZFBhcmVudFJvd0lkID09PSByb3cucm93SWQpIHtcbiAgICAgICAgICAgICAgICB0YWJsZVJvd3MucHVzaChcbiAgICAgICAgICAgICAgICAgICAgPENoaWxkUm93XG4gICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2BjaGlsZHJlbi0ke3Jvdy5yb3dJZH1gfVxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50Um93SWQ9e3Jvdy5yb3dJZH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudFJvd0RhdGFzPXtyb3cuZGF0YXN9XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRJbmRpY2F0b3JDb2x1bW49e3Jvdy5wYXJlbnRJbmRpY2F0b3JDb2x1bW59XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRMYWJlbD17cm93LnBhcmVudExhYmVsfVxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50TGFiZWxJY29uPXtyb3cucGFyZW50TGFiZWxJY29ufVxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50RGV0YWlsUm93cz17cm93LmRldGFpbFJvd3N9XG4gICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbj17cm93LmNoaWxkcmVufVxuICAgICAgICAgICAgICAgICAgICAgICAgb25DbG9zZT17dGhpcy5zZXRPcGVuZWRQYXJlbnRSb3dJZH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHsuLi5Cb2R5Um93UHJvcHN9XG4gICAgICAgICAgICAgICAgICAgIC8+LFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRhYmxlUm93cy5wdXNoKDxCb2R5Um93IGtleT17cm93LnJvd0lkfSB7Li4uQm9keVJvd1Byb3BzfSAvPik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIGFkZCBvcGVuZWQgZGV0YWlsIHJvd3NcbiAgICAgICAgICAgIGlmIChoYXNEZXRhaWxSb3dzICYmIG9wZW5lZERldGFpbHNSb3dJZExpc3QuaW5jbHVkZXMocm93LnJvd0lkKSkge1xuICAgICAgICAgICAgICAgIHJvdy5kZXRhaWxSb3dzLmZvckVhY2goZGV0YWlsUm93ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGV0YWlsUm93UHJvcHMgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByb3c6IGRldGFpbFJvdyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbnMsXG4gICAgICAgICAgICAgICAgICAgICAgICBvcmRlcmVkQ29sdW1ucyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZpZXcsXG4gICAgICAgICAgICAgICAgICAgICAgICBkZW5zZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0aWNreSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzRGV0YWlsOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgZml4ZWRDb2x1bW5XaWR0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVDb250ZXh0TWVudSxcbiAgICAgICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgICAgICB0YWJsZVJvd3MucHVzaChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxCb2R5Um93IGtleT17YCR7cm93LnJvd0lkfS0ke2RldGFpbFJvdy5yb3dJZH1gfSB7Li4uZGV0YWlsUm93UHJvcHN9IC8+LFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCB0Qm9keUNsYXNzZXMgPSBjbGFzc05hbWVzKGNsYXNzZXMudGJvZHksIHtcbiAgICAgICAgICAgIFtjbGFzc2VzLnRib2R5Rml4ZWRXaWR0aF06IGZpeGVkQ29sdW1uV2lkdGgsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8VGFibGVCb2R5XG4gICAgICAgICAgICAgICAgaWQ9e2Ake3RhYklkfS1ib2R5YH1cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e3RCb2R5Q2xhc3Nlc31cbiAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQsXG4gICAgICAgICAgICAgICAgICAgIC4uLihsb2FkaW5nICYmIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNixcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICBvblNjcm9sbD17b25TY3JvbGx9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3RhYmxlUm93cy5tYXAodGFibGVSb3cgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGFibGVSb3c7XG4gICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICA8L1RhYmxlQm9keT5cbiAgICAgICAgKTtcbiAgICB9XG59XG5cblxuZXhwb3J0IGRlZmF1bHQgd2l0aFN0eWxlcyhzdHlsZXMsIHsgd2l0aFRoZW1lOiB0cnVlLCBuYW1lOiAnSG11aUhpVGFibGVCb2R5JyB9KShIaVRhYmxlQm9keSk7XG4iXX0=
104151
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9IaVRhYmxlL0hpVGFibGVCb2R5LmpzIl0sIm5hbWVzIjpbImNzdCIsInN0eWxlcyIsInRib2R5IiwicG9zaXRpb24iLCJ3aWR0aCIsIm92ZXJmbG93WCIsIm92ZXJmbG93WSIsInpJbmRleCIsInRib2R5Rml4ZWRXaWR0aCIsImRpc3BsYXkiLCJ0Ym9keVJvd3MiLCJiYWNrZ3JvdW5kQ29sb3IiLCJ0aGVtZSIsInBhbGV0dGUiLCJiYWNrZ3JvdW5kMyIsInRib2R5Um93c0hvdmVyIiwiaG92ZXIiLCJmb250V2VpZ2h0IiwidHlwb2dyYXBoeSIsImZvbnRXZWlnaHRNZWRpdW0iLCJyaWdodFNoYWRvdyIsImJvcmRlcldpZHRoIiwiYm9yZGVyU3R5bGUiLCJ3ZWJraXRCb3JkZXJJbWFnZSIsIm1vekJvcmRlckltYWdlIiwib0JvcmRlckltYWdlIiwiYm9yZGVySW1hZ2UiLCJib3R0b21TaGFkb3ciLCJwYXRjaERpdiIsImhlaWdodCIsInRvcCIsIkhpVGFibGVCb2R5IiwicHJvcHMiLCJidWlsZEluZGljYXRvciIsImNvbHVtbnMiLCJkYXRlTG9jYWxlIiwiaW5kaWNhdG9yIiwiaW5kaWNhdG9yQ29sdW1uIiwicm93IiwicGFyZW50SW5kaWNhdG9yQ29sdW1uIiwidHlwZSIsIm9wdGlvbnMiLCJ5ZWFyIiwibW9udGgiLCJkYXkiLCJob3VyIiwibWludXRlIiwiZGF0ZSIsIkRhdGUiLCJkYXRhcyIsInZhbHVlIiwidG9Mb2NhbGVTdHJpbmciLCJzdGF0ZSIsIm9wZW5lZFBhcmVudFJvd0lkIiwib3BlbmVkRGV0YWlsc1Jvd0lkTGlzdCIsImJpbmQiLCJzZXRPcGVuZWRQYXJlbnRSb3dJZCIsInRvZ2dsZU9wZW5lZERldGFpbHNSb3dJZCIsInBvc2l0aW9uU3RpY2t5Um93TmV4dEJ1dHRvbiIsInByZXZQcm9wcyIsInByZXZTdGF0ZSIsInByZXZDb250ZXh0Iiwic2V0U3RhdGUiLCJyb3dJZCIsImFkZE5ld1Jvd1JlZnMiLCJ0YWJsZUNvbnRhaW5lciIsImRvY3VtZW50IiwiZ2V0RWxlbWVudEJ5SWQiLCJ0YWJJZCIsInN0aWNreVJvd05leHRCdXR0b25zIiwiZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSIsImxlbmd0aCIsIkFycmF5IiwicHJvdG90eXBlIiwiZmlsdGVyIiwiY2FsbCIsImJ1dHRvbiIsImluZGV4Iiwic3R5bGUiLCJwYXJlbnRFbGVtZW50IiwicHJldmlvdXNTaWJsaW5nIiwiZGVuc2UiLCJDRUxMX0hFSUdIVF9ERU5TRSIsIkNFTExfSEVJR0hUIiwibGFiZWwiLCJsZWZ0Iiwib2Zmc2V0V2lkdGgiLCJmaW5kIiwiaXRlbSIsImlkIiwiY2xhc3NlcyIsIm9yZGVyZWRDb2x1bW5zIiwiZGF0YVNvdXJjZSIsIm9uUm93Q2xpY2siLCJzZWxlY3RhYmxlIiwib25TZWxlY3QiLCJzZWxlY3RlZElkTGlzdCIsIm9uU2Nyb2xsIiwiZGF0ZVVwZGF0ZSIsInN0aWNreSIsInZpZXciLCJncm91cEJ5IiwidHJhbnNsYXRpb25zIiwibnVtYmVyTG9jYWxlIiwiZ3JvdXBCeUlkcyIsInNvcnRlZENvbHVtbklkIiwibG9va3VwQ29sdW1ucyIsImxvYWRpbmciLCJmaXhlZENvbHVtbldpZHRoIiwiZGlzYWJsZUNvbnRleHRNZW51IiwiZGV0YWlsUm93c09wdGlvbnMiLCJuYkNvbHVtbnNEaXNwbGF5ZWQiLCJmb3JFYWNoIiwiY29sdW1uIiwiZGlzcGxheWVkIiwidGFibGVSb3dzIiwic3RpY2t5Um93VmFsdWUiLCJzdGlja3lSb3dJbmRleCIsImN1cnJlbnRHcm91cEJ5VmFsdWUiLCJpc0Zpbml0ZSIsInN1YnN0ciIsIlRZUEVfREFURSIsIndlZWtkYXkiLCJjaGFyQXQiLCJ0b1VwcGVyQ2FzZSIsInB1c2giLCJzdGlja3lSb3ciLCJvbkNsaWNrTmV4dCIsImhhc0NoaWxkcmVuIiwiaGFzT3duUHJvcGVydHkiLCJjaGlsZHJlbiIsIkJvZHlSb3dQcm9wcyIsImxpdmUiLCJ0cyIsIm9uQ2xpY2siLCJvcGVuZWRBc1BhcmVudCIsIm9uT3BlblJvd0RldGFpbHMiLCJzZWxlY3RlZCIsImluY2x1ZGVzIiwicGFyZW50TGFiZWwiLCJwYXJlbnRMYWJlbEljb24iLCJkZXRhaWxzIiwiZGV0YWlsIiwicm93cyIsImRldGFpbFJvd1Byb3BzIiwiZGV0YWlsUm93IiwiaXNEZXRhaWwiLCJ0Qm9keUNsYXNzZXMiLCJvcGFjaXR5IiwibWFwIiwidGFibGVSb3ciLCJDb21wb25lbnQiLCJwcm9wVHlwZXMiLCJvYmplY3QiLCJpc1JlcXVpcmVkIiwiYXJyYXkiLCJzdHJpbmciLCJudW1iZXIiLCJib29sIiwiZnVuYyIsIm9uZU9mIiwiZGVmYXVsdFByb3BzIiwid2l0aFRoZW1lIiwibmFtZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7OztBQUNBOzs7O0FBQ0E7O0FBQ0E7Ozs7QUFDQTs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7SUFBWUEsRzs7Ozs7Ozs7Ozs7Ozs7OztBQUVMLElBQU1DLDBCQUFTLFNBQVRBLE1BQVM7QUFBQSxXQUFVO0FBQzVCQyxlQUFPO0FBQ0hDLHNCQUFVLFVBRFA7QUFFSEMsbUJBQU8sTUFGSjtBQUdIQyx1QkFBVyxRQUhSO0FBSUhDLHVCQUFXLE1BSlI7QUFLSEMsb0JBQVE7QUFMTCxTQURxQjtBQVE1QkMseUJBQWlCO0FBQ2JDLHFCQUFTLE9BREksQ0FDSTtBQURKLFNBUlc7QUFXNUJDLG1CQUFXO0FBQ1BDLDZCQUFpQkMsTUFBTUMsT0FBTixDQUFjQztBQUR4QixTQVhpQjtBQWM1QkMsd0JBQWdCO0FBQ1osdUJBQVc7QUFDUEosaUNBQWlCQyxNQUFNQyxPQUFOLENBQWNHLEtBRHhCO0FBRVBDLDRCQUFZTCxNQUFNTSxVQUFOLENBQWlCQztBQUZ0QjtBQURDLFNBZFk7QUFvQjVCQyxxQkFBYTtBQUNUQyx5QkFBYSxlQURKO0FBRVRDLHlCQUFhLE9BRko7QUFHVEMsK0JBQ0ksZ0ZBSks7QUFLVEMsNEJBQ0ksNkVBTks7QUFPVEMsMEJBQWMsMkVBUEw7QUFRVEMseUJBQWE7QUFSSixTQXBCZTtBQThCNUJDLHNCQUFjO0FBQ1ZO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QUFVZ0UsSUE3RVA7QUE4RWY7OztBQUdBOUQsb0JBQWdCLG9CQUFVMkQsS0FqRlg7QUFrRmY7OztBQUdBeEQsWUFBUSxvQkFBVTJELElBckZIO0FBc0ZmOzs7QUFHQTFGLFdBQU8sb0JBQVV3RixNQUFWLENBQWlCRixVQXpGVDtBQTBGZjs7OztBQUlBdEQsVUFBTSxvQkFBVTRELEtBQVYsQ0FBZ0IsQ0FBQyxHQUFELEVBQU0sR0FBTixFQUFXLEdBQVgsQ0FBaEIsQ0E5RlM7QUErRmY7OztBQUdBM0QsYUFBUyxvQkFBVXVELE1BbEdKO0FBbUdmOzs7QUFHQXBELGdCQUFZLG9CQUFVaUQsTUF0R1A7QUF1R2Y7OztBQUdBaEQsb0JBQWdCLG9CQUFVbUQsTUExR1g7QUEyR2Y7OztBQUdBdEQsa0JBQWMsb0JBQVVtRCxNQTlHVDtBQStHZjs7OztBQUlBMUIsaUJBQWEsb0JBQVVnQztBQW5IUixDO0FBRGpCaEksVyxDQXVIS2tJLFksR0FBZTtBQUNsQm5FLGdCQUFZLEtBRE07QUFFbEJFLG9CQUFnQixFQUZFO0FBR2xCRSxnQkFBWSxJQUhNO0FBSWxCL0QsZ0JBQVksT0FKTTtBQUtsQm9FLGtCQUFjLE9BTEk7QUFNbEJ0QixXQUFPLEtBTlc7QUFPbEJwRCxZQUFRLEdBUFU7QUFRbEJzRSxZQUFRLElBUlU7QUFTbEJDLFVBQU0sR0FUWTtBQVVsQk8sYUFBUyxLQVZTO0FBV2xCRSx3QkFBb0IsSUFYRjtBQVlsQkMsdUJBQW1CO0FBWkQsQztrQkFpVlgsd0JBQVc3RyxNQUFYLEVBQW1CLEVBQUVpSyxXQUFXLElBQWIsRUFBbUJDLE1BQU0saUJBQXpCLEVBQW5CLEVBQWlFcEksV0FBakUsQyIsImZpbGUiOiJIaVRhYmxlQm9keS5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS92ZG9zc2FudG9zL2Rldi9oaXBheS1tYXRlcmlhbC11aSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHsgVGFibGVCb2R5LCBUYWJsZVJvdyB9IGZyb20gJ21hdGVyaWFsLXVpL1RhYmxlJztcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IHsgd2l0aFN0eWxlcyB9IGZyb20gJy4uL3N0eWxlcyc7XG5pbXBvcnQgQm9keVJvdyBmcm9tICcuL0JvZHlSb3cnO1xuaW1wb3J0IENoaWxkUm93IGZyb20gJy4vQ2hpbGRSb3cnO1xuaW1wb3J0IEhpU3RpY2t5Um93IGZyb20gJy4vSGlTdGlja3lSb3cnO1xuaW1wb3J0ICogYXMgY3N0IGZyb20gJy4vY29uc3RhbnRzJztcblxuZXhwb3J0IGNvbnN0IHN0eWxlcyA9IHRoZW1lID0+ICh7XG4gICAgdGJvZHk6IHtcbiAgICAgICAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgIG92ZXJmbG93WDogJ2hpZGRlbicsXG4gICAgICAgIG92ZXJmbG93WTogJ2F1dG8nLFxuICAgICAgICB6SW5kZXg6IDExLFxuICAgIH0sXG4gICAgdGJvZHlGaXhlZFdpZHRoOiB7XG4gICAgICAgIGRpc3BsYXk6ICdibG9jaycgLyogc2VwZXJhdGVzIHRoZSB0Ym9keSBmcm9tIHRoZSBoZWFkZXIgKi8sXG4gICAgfSxcbiAgICB0Ym9keVJvd3M6IHtcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS5wYWxldHRlLmJhY2tncm91bmQzLFxuICAgIH0sXG4gICAgdGJvZHlSb3dzSG92ZXI6IHtcbiAgICAgICAgJyY6aG92ZXInOiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lLnBhbGV0dGUuaG92ZXIsXG4gICAgICAgICAgICBmb250V2VpZ2h0OiB0aGVtZS50eXBvZ3JhcGh5LmZvbnRXZWlnaHRNZWRpdW0sXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICByaWdodFNoYWRvdzoge1xuICAgICAgICBib3JkZXJXaWR0aDogJzRweCA0cHggNHB4IDAnLFxuICAgICAgICBib3JkZXJTdHlsZTogJ3NvbGlkJyxcbiAgICAgICAgd2Via2l0Qm9yZGVySW1hZ2U6XG4gICAgICAgICAgICAnLXdlYmtpdC1saW5lYXItZ3JhZGllbnQocmlnaHQsIHJnYmEoNDIsIDQyLCA0MiwgMC4xKSwgcmdiYSgwLCAwLCAwLCAwKSkgMSAxMDAlJyxcbiAgICAgICAgbW96Qm9yZGVySW1hZ2U6XG4gICAgICAgICAgICAnLW1vei1saW5lYXItZ3JhZGllbnQocmlnaHQsIHJnYmEoNDIsIDQyLCA0MiwgMC4xKSwgcmdiYSgwLCAwLCAwLCAwKSkgMSAxMDAlJyxcbiAgICAgICAgb0JvcmRlckltYWdlOiAnLW8tbGluZWFyLWdyYWRpZW50KHJpZ2h0LCByZ2JhKDQyLCA0MiwgNDIsIDAuMSksIHJnYmEoMCwgMCwgMCwgMCkpIDEgMTAwJScsXG4gICAgICAgIGJvcmRlckltYWdlOiAnbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKDQyLCA0MiwgNDIsIDAuMSksIHJnYmEoMCwgMCwgMCwgMCkpIDEgMTAwJScsXG4gICAgfSxcbiAgICBib3R0b21TaGFkb3c6IHtcbiAgICAgICAgYm9yZGVyV2lkdGg6ICcwIDAgNHB4IDAnLFxuICAgICAgICBib3JkZXJTdHlsZTogJ3NvbGlkJyxcbiAgICAgICAgd2Via2l0Qm9yZGVySW1hZ2U6XG4gICAgICAgICAgICAnLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCByZ2JhKDAsMCwwLCAwLjA4KSAwJSwgcmdiYSgwLDAsMCwgMCkgMTAwJSknLFxuICAgICAgICBtb3pCb3JkZXJJbWFnZTogJy1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwgcmdiYSgwLDAsMCwgMC4wOCksIHJnYmEoMCwwLDAsIDApIDEgMTAwJSknLFxuICAgICAgICBvQm9yZGVySW1hZ2U6ICctby1saW5lYXItZ3JhZGllbnQodG9wLCByZ2JhKDAsMCwwLCAwLjA4KSwgcmdiYSgwLCAwLCAwLCAwKSkgMSAxMDAlJyxcbiAgICAgICAgYm9yZGVySW1hZ2U6ICdsaW5lYXItZ3JhZGllbnQodG8gdG9wLCByZ2JhKDAsIDAsIDAsIDAuMDgpLCByZ2JhKDAsIDAsIDAsIDApKSAxIDEwMCUnLFxuICAgIH0sXG4gICAgcGF0Y2hEaXY6IHtcbiAgICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgICAgIHdpZHRoOiAyNCxcbiAgICAgICAgaGVpZ2h0OiA1MCxcbiAgICAgICAgdG9wOiAwLFxuICAgICAgICB6SW5kZXg6IDE1LFxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lLnBhbGV0dGUuYmFja2dyb3VuZDMsXG4gICAgfSxcbn0pO1xuXG4vKipcbiAqIEhpVGFibGUgQm9keVxuICogSGFuZGxlIHJvd3MgY3JlYXRpb24gYW5kIHVwZGF0ZSBmcm9tIGRhdGFzb3VyY2VcbiAqL1xuY2xhc3MgSGlUYWJsZUJvZHkgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICAgIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBVc2VmdWwgdG8gZXh0ZW5kIHRoZSBzdHlsZSBhcHBsaWVkIHRvIGNvbXBvbmVudHMuXG4gICAgICAgICAqL1xuICAgICAgICBjbGFzc2VzOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgICAgICAvKipcbiAgICAgICAgICogQ29sb25uZXMgZHUgdGFibGVhdSAobGFiZWwsIGxhcmdldXIsIGRvbm7DqWVzLCAuLi4gKVxuICAgICAgICAgKi9cbiAgICAgICAgY29sdW1uczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgICAgICAvKipcbiAgICAgICAgICogVGFibGVhdSBkZXMgZG9ubsOpZXNcbiAgICAgICAgICovXG4gICAgICAgIGRhdGFTb3VyY2U6IFByb3BUeXBlcy5hcnJheS5pc1JlcXVpcmVkLFxuICAgICAgICAvKipcbiAgICAgICAgICogTG9jYWxlIHV0aWxpc8OpZSBwb3VyIGxlIGZvcm1hdCBkZXMgZGF0ZXNcbiAgICAgICAgICovXG4gICAgICAgIGRhdGVMb2NhbGU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUaW1lc3RhbXAgZGUgbGEgZGVybmnDqHJlIG1pc2Ugw6Agam91ciBkdSB0YWJsZWF1XG4gICAgICAgICAqIHBlcm1ldCBkJ2FuaW1lciBsZXMgbm91dmVsbGVzIGxpZ25lc1xuICAgICAgICAgKi9cbiAgICAgICAgZGF0ZVVwZGF0ZTogUHJvcFR5cGVzLm51bWJlcixcbiAgICAgICAgLyoqXG4gICAgICAgICAqIERlbnNpdMOpIGQnYWZmaWNoYWdlIChqb3VlIHN1ciBsYSBoYXV0ZXVyIGRlcyBsaWduZXMpXG4gICAgICAgICAqL1xuICAgICAgICBkZW5zZTogUHJvcFR5cGVzLmJvb2wsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBPcHRpb25zIHV0aWxpc8OpZXMgcG91ciBkw6ljcmlyZSBsZSBjb21wb3J0ZW1lbnQgZGUgbGlnbmVzIGRlIGTDqXRhaWxzXG4gICAgICAgICAqL1xuICAgICAgICBkZXRhaWxSb3dzT3B0aW9uczogUHJvcFR5cGVzLm9iamVjdCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEFjdGl2ZS9kw6lzYWN0aXZlIGxlIG1lbnUgY29udGV4dHVlbCBhdSBjbGljIGRyb2l0IHN1ciBsZXMgY2VsbHVsZXMgZHUgdGFibGVhdVxuICAgICAgICAgKi9cbiAgICAgICAgZGlzYWJsZUNvbnRleHRNZW51OiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkLFxuICAgICAgICAvKipcbiAgICAgICAgICogRml4ZSBsYSB0YWlsbGUgZGVzIGNvbG9ubmVzIHNlbG9uIGxlIHR5cGUgZGUgdnVlXG4gICAgICAgICAqIFNpbm9uIGxlcyBjb2xvbm5lcyBzJ2FkYXB0ZW50IMOgIGwnZXNwYWNlIGRpc3BvbmlibGVcbiAgICAgICAgICovXG4gICAgICAgIGZpeGVkQ29sdW1uV2lkdGg6IFByb3BUeXBlcy5ib29sLFxuICAgICAgICAvKipcbiAgICAgICAgICogSGF1dGV1ciBkdSB0YWJsZWF1IChweClcbiAgICAgICAgICovXG4gICAgICAgIGhlaWdodDogUHJvcFR5cGVzLm51bWJlcixcbiAgICAgICAgLyoqXG4gICAgICAgICAqIMOJdGF0IGR1IHRhYmxlYXUgZW4gY291cnMgZGUgY2hhcmdlbWVudCBkZXMgZG9ubsOpZXNcbiAgICAgICAgICovXG4gICAgICAgIGxvYWRpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgICAgICAvKipcbiAgICAgICAgICogSWRlbnRpZmlhbnQgZGUgbGEgb3UgZGVzIGNvbG9ubmVzIHN1ciBsYS9sZXNxdWVsbGVzIGlsIHkgYSB1bmUgJ2xvb2t1cCcgc2VhcmNoXG4gICAgICAgICAqL1xuICAgICAgICBsb29rdXBDb2x1bW5zOiBQcm9wVHlwZXMuYXJyYXksXG4gICAgICAgIC8qKlxuICAgICAgICAgKiAgTG9jYWxlIHV0aWxpc8OpZSBwb3VyIGxlIGZvcm1hdCBkZXMgbm9tYnJlc1xuICAgICAgICAgKi9cbiAgICAgICAgbnVtYmVyTG9jYWxlOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgICAvKipcbiAgICAgICAgICogRm9uY3Rpb24gZGUgY2FsbGJhY2sgYXUgY2xpY2sgc3VyIHVuZSBsaWduZVxuICAgICAgICAgKiBQYXNzZSBsJ2lkIGRlIGxhIGxpZ25lIChyb3dJZClcbiAgICAgICAgICovXG4gICAgICAgIG9uUm93Q2xpY2s6IFByb3BUeXBlcy5mdW5jLFxuICAgICAgICAvKipcbiAgICAgICAgICogRm9uY3Rpb24gZGUgY2FsbGJhY2sgYXUgc2Nyb2xsIHN1ciBsZSBib2R5IGR1IHRhYmxlYXVcbiAgICAgICAgICovXG4gICAgICAgIG9uU2Nyb2xsOiBQcm9wVHlwZXMuZnVuYyxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEZvbmN0aW9uIGRlIGNhbGxiYWNrIHN1ciBsYSBzw6lsZWN0aW9uIGQndW5lIGxpZ25lXG4gICAgICAgICAqIChvdSBzw6lsZWN0aW9uL2TDqXNlbGVjdGlvbiBkZSB0b3VzIGRhbnMgbGUgaGVhZGVyKVxuICAgICAgICAgKiBQYXNzZSBsJ2lkIGRlIGxhIGxpZ25lIHPDqWxlY3Rpb25uw6llIChyb3dJZClcbiAgICAgICAgICovXG4gICAgICAgIG9uU2VsZWN0OiBQcm9wVHlwZXMuZnVuYyxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRhYmxlYXUgZGVzIGNvbG9ubmVzIGFmZmljaMOpZXMgKG9yZG9ubsOpZXMsIHZpc2libGVzL2NhY2jDqWVzLCBsL20vcylcbiAgICAgICAgICovXG4gICAgICAgIG9yZGVyZWRDb2x1bW5zOiBQcm9wVHlwZXMuYXJyYXkuaXNSZXF1aXJlZCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFt2MiAtIMOgIHZlbmlyXSBMZXMgbGlnbmVzIHNvbnQgc8OpbGVjdGlvbm5hYmxlcyAoYWZmaWNoYWdlIGQndW5lIGNoZWNrYm94KVxuICAgICAgICAgKi9cbiAgICAgICAgc2VsZWN0YWJsZTogUHJvcFR5cGVzLmJvb2wsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBMaXN0ZSBkZXMgaWQgZGVzIGxpZ25lcyBzw6lsZWN0aW9ubsOpZXNcbiAgICAgICAgICovXG4gICAgICAgIHNlbGVjdGVkSWRMaXN0OiBQcm9wVHlwZXMuYXJyYXksXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBGaXhlIGxhIHByZW1pw6hyZSBjb2xvbm5lXG4gICAgICAgICAqL1xuICAgICAgICBzdGlja3k6IFByb3BUeXBlcy5ib29sLFxuICAgICAgICAvKipcbiAgICAgICAgICogSWRlbnRpZmlhbnQgdW5pcXVlIMOgIHNww6ljaWZpZXIgc2kgb24gdXRpbGlzZSBwbHVzaWV1cnMgY29tcG9zYW50cyBIaVRhYmxlXG4gICAgICAgICAqL1xuICAgICAgICB0YWJJZDogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgICAgICAvKipcbiAgICAgICAgICogVGFpbGxlIGR1IHRhYmxlYXUgKEwvTS9TKSxcbiAgICAgICAgICogZMOpZmluaXQgbCdlc3BhY2UgZW50cmUgbGVzIGNlbGx1bGVzIGV0IGxldXJzIHRhaWxsZXMgcGFyIGRlZmF1bHRcbiAgICAgICAgICovXG4gICAgICAgIHZpZXc6IFByb3BUeXBlcy5vbmVPZihbJ2wnLCAnbScsICdzJ10pLFxuICAgICAgICAvKipcbiAgICAgICAgICogSWQgZGUgbGEgY29sb25uZSBwYXIgbGFxdWVsbGUgc29udCByZWdyb3Vww6kgbGVzIMOpbMOpbWVudHNcbiAgICAgICAgICovXG4gICAgICAgIGdyb3VwQnk6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUYWJsZWF1IGFzc29jaWF0aWYgKHBhcmVudEdyb3VwQnkgPT4gaWQgY29udGVudXMpXG4gICAgICAgICAqL1xuICAgICAgICBncm91cEJ5SWRzOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgICAgICAvKipcbiAgICAgICAgICogSWQgZGUgbGEgY29sb25uZSB0cmnDqVxuICAgICAgICAgKi9cbiAgICAgICAgc29ydGVkQ29sdW1uSWQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUcmFkdWN0aW9uIGRlcyBjaGHDrm5lcyBhZmZpY2jDqWVzXG4gICAgICAgICAqL1xuICAgICAgICB0cmFuc2xhdGlvbnM6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBDYWxsYmFjayBsb3JzIGQndW4gY2xpYyBzdXIgbGUgYm91dG9uICdOZXh0JyBkJ3VuZSBzdGlja1Jvd1xuICAgICAgICAgKiBAcGFyYW0ge2ludH0gaW5kZXggZHUgc3RpY2t5Um93XG4gICAgICAgICAqL1xuICAgICAgICBvbkNsaWNrTmV4dDogUHJvcFR5cGVzLmZ1bmMsXG4gICAgfTtcblxuICAgIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgICAgIHNlbGVjdGFibGU6IGZhbHNlLFxuICAgICAgICBzZWxlY3RlZElkTGlzdDogW10sXG4gICAgICAgIGRhdGVVcGRhdGU6IG51bGwsXG4gICAgICAgIGRhdGVMb2NhbGU6ICdlbi1FTicsXG4gICAgICAgIG51bWJlckxvY2FsZTogJ2VuLUVOJyxcbiAgICAgICAgZGVuc2U6IGZhbHNlLFxuICAgICAgICBoZWlnaHQ6IDQ1MCxcbiAgICAgICAgc3RpY2t5OiB0cnVlLFxuICAgICAgICB2aWV3OiAnbCcsXG4gICAgICAgIGxvYWRpbmc6IGZhbHNlLFxuICAgICAgICBkaXNhYmxlQ29udGV4dE1lbnU6IHRydWUsXG4gICAgICAgIGRldGFpbFJvd3NPcHRpb25zOiB7fSxcbiAgICB9O1xuXG4gICAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICAgICAgc3VwZXIoKTtcblxuICAgICAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgICAgICAgb3BlbmVkUGFyZW50Um93SWQ6IG51bGwsXG4gICAgICAgICAgICBvcGVuZWREZXRhaWxzUm93SWRMaXN0OiBbXSxcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLmJ1aWxkSW5kaWNhdG9yID0gdGhpcy5idWlsZEluZGljYXRvci5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLnNldE9wZW5lZFBhcmVudFJvd0lkID0gdGhpcy5zZXRPcGVuZWRQYXJlbnRSb3dJZC5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLnRvZ2dsZU9wZW5lZERldGFpbHNSb3dJZCA9IHRoaXMudG9nZ2xlT3BlbmVkRGV0YWlsc1Jvd0lkLmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMucG9zaXRpb25TdGlja3lSb3dOZXh0QnV0dG9uID0gdGhpcy5wb3NpdGlvblN0aWNreVJvd05leHRCdXR0b24uYmluZCh0aGlzKTtcbiAgICB9XG5cbiAgICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAgICAgdGhpcy5wb3NpdGlvblN0aWNreVJvd05leHRCdXR0b24oKTtcbiAgICB9XG5cbiAgICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzLCBwcmV2U3RhdGUsIHByZXZDb250ZXh0KSB7XG4gICAgICAgIHRoaXMucG9zaXRpb25TdGlja3lSb3dOZXh0QnV0dG9uKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRMOpZmluaXQgbCdpZCBkZSBsYSBsaWduZSBwYXJlbnRlIFwib3V2ZXJ0ZVwiIG91IG51bGxcbiAgICAgKiAocmVtcGxhY2UgbGEgbGlnbmUgcGFyIHVuIHNvdXMtdGFibGVhdSlcbiAgICAgKiBJbCBuZSBwZXV0IHkgYXZvaXIgcXUndW5lIHNldWxlIGxpZ25lIHBhcmVudGUgXCJvdXZlcnRlXCIgw6AgbGEgZm9pc1xuICAgICAqXG4gICAgICogQHBhcmFtIHJvd1xuICAgICAqL1xuICAgIHNldE9wZW5lZFBhcmVudFJvd0lkKHJvdykge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHByZXZTdGF0ZSA9PiAoe1xuICAgICAgICAgICAgb3BlbmVkUGFyZW50Um93SWQ6XG4gICAgICAgICAgICAgICAgcHJldlN0YXRlLm9wZW5lZFBhcmVudFJvd0lkID09PSBudWxsIHx8IHByZXZTdGF0ZS5vcGVuZWRQYXJlbnRSb3dJZCAhPT0gcm93LnJvd0lkXG4gICAgICAgICAgICAgICAgICAgID8gcm93LnJvd0lkXG4gICAgICAgICAgICAgICAgICAgIDogbnVsbCxcbiAgICAgICAgfSkpO1xuICAgICAgICB0aGlzLnByb3BzLmFkZE5ld1Jvd1JlZnMoKTtcbiAgICB9XG5cbiAgICBwb3NpdGlvblN0aWNreVJvd05leHRCdXR0b24oKSB7XG4gICAgICAgIC8vIGhhbmRsZSBzdGlja3lSb3cgbmV4dCBidXR0b25zIHBvc2l0aW9uXG4gICAgICAgIGNvbnN0IHRhYmxlQ29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5wcm9wcy50YWJJZCk7XG4gICAgICAgIGNvbnN0IHN0aWNreVJvd05leHRCdXR0b25zID0gdGFibGVDb250YWluZXIuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnc3RpY2t5Um93TmV4dEJ1dHRvbicpO1xuICAgICAgICBpZiAoc3RpY2t5Um93TmV4dEJ1dHRvbnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlLmZpbHRlci5jYWxsKHN0aWNreVJvd05leHRCdXR0b25zLCAoYnV0dG9uLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChpbmRleCA9PT0gc3RpY2t5Um93TmV4dEJ1dHRvbnMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICAgICAgICBidXR0b24uc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICAgICAgICAgICAgICAgICAgYnV0dG9uLnBhcmVudEVsZW1lbnQuc3R5bGUudG9wID0gJzBweCc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGJ1dHRvbi5zdHlsZS5kaXNwbGF5ID09PSAnbm9uZScpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJ1dHRvbi5zdHlsZS5kaXNwbGF5ID0gJ2lubGluZS1ibG9jayc7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnV0dG9uLnBhcmVudEVsZW1lbnQucGFyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50LnN0eWxlLnBvc2l0aW9uID09PVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhYnNvbHV0ZSdcbiAgICAgICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1dHRvbi5wYXJlbnRFbGVtZW50LnBhcmVudEVsZW1lbnQucHJldmlvdXNTaWJsaW5nLnN0eWxlLmhlaWdodCA9IHRoaXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnByb3BzLmRlbnNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gYCR7Y3N0LkNFTExfSEVJR0hUX0RFTlNFIC0gOH1weGBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBgJHtjc3QuQ0VMTF9IRUlHSFQgLSA4fXB4YDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGJ1dHRvbi5wYXJlbnRFbGVtZW50LnN0eWxlLnRvcCA9ICc0cHgnO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGxhYmVsID0gYnV0dG9uLnByZXZpb3VzU2libGluZy5wcmV2aW91c1NpYmxpbmc7XG4gICAgICAgICAgICAgICAgICAgIGJ1dHRvbi5zdHlsZS5sZWZ0ID0gYCR7dGFibGVDb250YWluZXIub2Zmc2V0V2lkdGggLVxuICAgICAgICAgICAgICAgICAgICBsYWJlbC5vZmZzZXRXaWR0aCAtXG4gICAgICAgICAgICAgICAgICAgIDQ4IC1cbiAgICAgICAgICAgICAgICAgICAgMTYwfXB4YDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIETDqWZpbml0IGxlcyBpZCBkZXMgbGlnbmVzIGRvbnQgbGVzIGTDqXRhaWxzIHNvbnQgYWZmaWNow6lzIG91IG51bGxcbiAgICAgKiAoYWpvdXRlIHVuZSBsaWduZSBwb3VyIGNoYXF1ZSBkw6l0YWlscylcbiAgICAgKiB2w6lyaWZpZSBhdXNzaSBsZSB0eXBlIGR1IGTDqXRhaWxcbiAgICAgKlxuICAgICAqIEBwYXJhbSByb3dJZFxuICAgICAqIEBwYXJhbSB0eXBlXG4gICAgICovXG4gICAgdG9nZ2xlT3BlbmVkRGV0YWlsc1Jvd0lkKHJvd0lkLCB0eXBlKSB7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUocHJldlN0YXRlID0+ICh7XG4gICAgICAgICAgICBvcGVuZWREZXRhaWxzUm93SWRMaXN0OiBwcmV2U3RhdGUub3BlbmVkRGV0YWlsc1Jvd0lkTGlzdC5maW5kKGl0ZW0gPT4gaXRlbS5pZCA9PT0gcm93SWQgJiYgaXRlbS50eXBlID09PSB0eXBlKVxuICAgICAgICAgICAgICAgID8gcHJldlN0YXRlLm9wZW5lZERldGFpbHNSb3dJZExpc3QuZmlsdGVyKGl0ZW0gPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gaXRlbS5pZCAhPT0gcm93SWQgfHwgaXRlbS50eXBlICE9PSB0eXBlO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgOiBbLi4ucHJldlN0YXRlLm9wZW5lZERldGFpbHNSb3dJZExpc3QsIHsgaWQ6IHJvd0lkLCB0eXBlOiB0eXBlIH1dLFxuICAgICAgICB9KSk7XG4gICAgICAgIHRoaXMucHJvcHMuYWRkTmV3Um93UmVmcygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEJ1aWxkIGNoaWxkcmVuIHN1Yi10YWJsZSBpbmRpY2F0b3JcbiAgICAgKiBAcGFyYW0gcm93XG4gICAgICogQHJldHVybnMgeyp9XG4gICAgICovXG4gICAgYnVpbGRJbmRpY2F0b3IgPSByb3cgPT4ge1xuICAgICAgICBjb25zdCB7IGNvbHVtbnMsIGRhdGVMb2NhbGUgfSA9IHRoaXMucHJvcHM7XG5cbiAgICAgICAgbGV0IGluZGljYXRvcjtcbiAgICAgICAgY29uc3QgaW5kaWNhdG9yQ29sdW1uID0gY29sdW1uc1tyb3cucGFyZW50SW5kaWNhdG9yQ29sdW1uXTtcbiAgICAgICAgc3dpdGNoIChpbmRpY2F0b3JDb2x1bW4udHlwZSkge1xuICAgICAgICAgICAgY2FzZSAnZGF0ZSc6XG4gICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgICAgICAgICAgICAgICAgeWVhcjogJ251bWVyaWMnLFxuICAgICAgICAgICAgICAgICAgICBtb250aDogJzItZGlnaXQnLFxuICAgICAgICAgICAgICAgICAgICBkYXk6ICcyLWRpZ2l0JyxcbiAgICAgICAgICAgICAgICAgICAgaG91cjogJzItZGlnaXQnLFxuICAgICAgICAgICAgICAgICAgICBtaW51dGU6ICcyLWRpZ2l0JyxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZShyb3cuZGF0YXNbcm93LnBhcmVudEluZGljYXRvckNvbHVtbl0udmFsdWUpO1xuICAgICAgICAgICAgICAgIGluZGljYXRvciA9IGRhdGUudG9Mb2NhbGVTdHJpbmcoZGF0ZUxvY2FsZSwgb3B0aW9ucyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd0ZXh0JzpcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgaW5kaWNhdG9yID0gcm93LmRhdGFzW3Jvdy5wYXJlbnRJbmRpY2F0b3JDb2x1bW5dLnZhbHVlO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGluZGljYXRvcjtcbiAgICB9O1xuXG4gICAgcmVuZGVyKCkge1xuICAgICAgICBjb25zdCB7XG4gICAgICAgICAgICBjbGFzc2VzLFxuICAgICAgICAgICAgdGFiSWQsXG4gICAgICAgICAgICBjb2x1bW5zLFxuICAgICAgICAgICAgb3JkZXJlZENvbHVtbnMsXG4gICAgICAgICAgICBkYXRhU291cmNlLFxuICAgICAgICAgICAgb25Sb3dDbGljayxcbiAgICAgICAgICAgIHNlbGVjdGFibGUsXG4gICAgICAgICAgICBvblNlbGVjdCxcbiAgICAgICAgICAgIHNlbGVjdGVkSWRMaXN0LFxuICAgICAgICAgICAgb25TY3JvbGwsXG4gICAgICAgICAgICBkYXRlVXBkYXRlLFxuICAgICAgICAgICAgZGVuc2UsXG4gICAgICAgICAgICBoZWlnaHQsXG4gICAgICAgICAgICBzdGlja3ksXG4gICAgICAgICAgICB2aWV3LFxuICAgICAgICAgICAgZ3JvdXBCeSxcbiAgICAgICAgICAgIHRyYW5zbGF0aW9ucyxcbiAgICAgICAgICAgIGRhdGVMb2NhbGUsXG4gICAgICAgICAgICBudW1iZXJMb2NhbGUsXG4gICAgICAgICAgICBncm91cEJ5SWRzLFxuICAgICAgICAgICAgc29ydGVkQ29sdW1uSWQsXG4gICAgICAgICAgICBsb29rdXBDb2x1bW5zLFxuICAgICAgICAgICAgbG9hZGluZyxcbiAgICAgICAgICAgIGZpeGVkQ29sdW1uV2lkdGgsXG4gICAgICAgICAgICBkaXNhYmxlQ29udGV4dE1lbnUsXG4gICAgICAgICAgICBkZXRhaWxSb3dzT3B0aW9ucyxcbiAgICAgICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICAgICAgY29uc3QgeyBvcGVuZWRQYXJlbnRSb3dJZCwgb3BlbmVkRGV0YWlsc1Jvd0lkTGlzdCB9ID0gdGhpcy5zdGF0ZTtcblxuICAgICAgICBsZXQgbmJDb2x1bW5zRGlzcGxheWVkID0gMDtcbiAgICAgICAgb3JkZXJlZENvbHVtbnMuZm9yRWFjaChjb2x1bW4gPT4ge1xuICAgICAgICAgICAgaWYgKGNvbHVtbi5kaXNwbGF5ZWQgIT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgbmJDb2x1bW5zRGlzcGxheWVkICs9IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIGJ1aWxkIGNvbXBvbmVudHMgbGlzdFxuICAgICAgICBjb25zdCB0YWJsZVJvd3MgPSBbXTtcbiAgICAgICAgbGV0IHN0aWNreVJvd1ZhbHVlO1xuICAgICAgICBsZXQgc3RpY2t5Um93SW5kZXggPSAwO1xuICAgICAgICBkYXRhU291cmNlLmZvckVhY2goKHJvdywgaW5kZXgpID0+IHtcblxuICAgICAgICAgICAgLy8gR2VzdGlvbiBkdSBzdGlja3kgZ3JvdXAgYnlcbiAgICAgICAgICAgIGlmICh0eXBlb2YgZ3JvdXBCeSAhPT0gJ3VuZGVmaW5lZCcgJiYgZ3JvdXBCeSA9PT0gc29ydGVkQ29sdW1uSWQpIHtcbiAgICAgICAgICAgICAgICBsZXQgY3VycmVudEdyb3VwQnlWYWx1ZSA9IHJvdy5kYXRhc1tncm91cEJ5XS52YWx1ZTtcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoY3VycmVudEdyb3VwQnlWYWx1ZSk7XG4gICAgICAgICAgICAgICAgaWYgKGRhdGUgaW5zdGFuY2VvZiBEYXRlICYmIGlzRmluaXRlKGRhdGUpKSB7XG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRHcm91cEJ5VmFsdWUgPSBjdXJyZW50R3JvdXBCeVZhbHVlLnN1YnN0cigwLCAxMCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIFRPRE8gPT4gY29uZGl0aW9uIGZvciBvdGhlciBjb2x1bW5zIHR5cGVcbiAgICAgICAgICAgICAgICBpZiAoY29sdW1uc1tncm91cEJ5XS50eXBlID09PSBjc3QuVFlQRV9EQVRFKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpbmRleCA9PT0gMCB8fCBjdXJyZW50R3JvdXBCeVZhbHVlICE9PSBzdGlja3lSb3dWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RpY2t5Um93VmFsdWUgPSBjdXJyZW50R3JvdXBCeVZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxhYmVsID0gc3RpY2t5Um93VmFsdWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0ZSBpbnN0YW5jZW9mIERhdGUgJiYgaXNGaW5pdGUoZGF0ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbCA9IG5ldyBEYXRlKGxhYmVsKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5ZWFyOiAnbnVtZXJpYycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vbnRoOiAnbG9uZycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdlZWtkYXk6ICdsb25nJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF5OiAnbnVtZXJpYycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbCA9IGxhYmVsLnRvTG9jYWxlU3RyaW5nKGRhdGVMb2NhbGUsIG9wdGlvbnMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsID0gbGFiZWwuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBsYWJlbC5zdWJzdHIoMSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHRhYmxlUm93cy5wdXNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxIaVN0aWNreVJvd1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2BzdGlja3lfcm93XyR7cm93LnJvd0lkfWB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlbnNlPXtkZW5zZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3N0aWNreVJvd1ZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD17bGFiZWx9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aD17Z3JvdXBCeUlkc1tjdXJyZW50R3JvdXBCeVZhbHVlXS5sZW5ndGh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbFNwYW49e25iQ29sdW1uc0Rpc3BsYXllZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg9e3N0aWNreVJvd0luZGV4fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGlvbnM9e3RyYW5zbGF0aW9ucy5zdGlja3lSb3d9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXc9e3ZpZXd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2tOZXh0PXt0aGlzLnByb3BzLm9uQ2xpY2tOZXh0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+LFxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgdGFibGVSb3dzLnB1c2goXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPFRhYmxlUm93XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17YGdob3N0X3N0aWNreV9yb3dfJHtyb3cucm93SWR9YH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXsnZmFrZVN0aWNreUdyb3VwQnknfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBkZW5zZSA/IGNzdC5DRUxMX0hFSUdIVF9ERU5TRSA6IGNzdC5DRUxMX0hFSUdIVCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6ICdub25lJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPixcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGlja3lSb3dJbmRleCsrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBoYXMgY2hpbGRyZW5cbiAgICAgICAgICAgIGNvbnN0IGhhc0NoaWxkcmVuID0gcm93Lmhhc093blByb3BlcnR5KCdjaGlsZHJlbicpICYmIHJvdy5jaGlsZHJlbi5sZW5ndGggPiAwO1xuXG4gICAgICAgICAgICBjb25zdCBCb2R5Um93UHJvcHMgPSB7XG4gICAgICAgICAgICAgICAgY29sdW1ucyxcbiAgICAgICAgICAgICAgICBkYXRlTG9jYWxlLFxuICAgICAgICAgICAgICAgIG51bWJlckxvY2FsZSxcbiAgICAgICAgICAgICAgICBkZW5zZSxcbiAgICAgICAgICAgICAgICBsaXZlOiByb3cudHMgPj0gZGF0ZVVwZGF0ZSxcbiAgICAgICAgICAgICAgICBsb29rdXBDb2x1bW5zLFxuICAgICAgICAgICAgICAgIG9uQ2xpY2s6IG9uUm93Q2xpY2ssXG4gICAgICAgICAgICAgICAgLi4uKGhhc0NoaWxkcmVuICYmIHtcbiAgICAgICAgICAgICAgICAgICAgb3BlbmVkQXNQYXJlbnQ6IG9wZW5lZFBhcmVudFJvd0lkID09PSByb3cucm93SWQsXG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s6IHRoaXMuc2V0T3BlbmVkUGFyZW50Um93SWQsIC8vIGlmIHJvdyBoYXMgY2hpbGRyZW4sIG9uQ2xpY2sgZGlzcGxheSB0aGUgY2hpbGRyZW5cbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBvbk9wZW5Sb3dEZXRhaWxzOiB0aGlzLnRvZ2dsZU9wZW5lZERldGFpbHNSb3dJZCxcbiAgICAgICAgICAgICAgICBkZXRhaWxSb3dzT3B0aW9ucyxcbiAgICAgICAgICAgICAgICBvcmRlcmVkQ29sdW1ucyxcbiAgICAgICAgICAgICAgICAuLi4oc2VsZWN0YWJsZSAmJiB7XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGFibGUsXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkOiBzZWxlY3RlZElkTGlzdC5pbmNsdWRlcyhyb3cucm93SWQpLFxuICAgICAgICAgICAgICAgICAgICBvblNlbGVjdCxcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICByb3csXG4gICAgICAgICAgICAgICAgc3RpY2t5LFxuICAgICAgICAgICAgICAgIHRhYklkLFxuICAgICAgICAgICAgICAgIHZpZXcsXG4gICAgICAgICAgICAgICAgZml4ZWRDb2x1bW5XaWR0aCxcbiAgICAgICAgICAgICAgICBkaXNhYmxlQ29udGV4dE1lbnUsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBpZiAoaGFzQ2hpbGRyZW4gJiYgb3BlbmVkUGFyZW50Um93SWQgPT09IHJvdy5yb3dJZCkge1xuICAgICAgICAgICAgICAgIHRhYmxlUm93cy5wdXNoKFxuICAgICAgICAgICAgICAgICAgICA8Q2hpbGRSb3dcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleT17YGNoaWxkcmVuLSR7cm93LnJvd0lkfWB9XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRSb3dJZD17cm93LnJvd0lkfVxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50Um93RGF0YXM9e3Jvdy5kYXRhc31cbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudEluZGljYXRvckNvbHVtbj17cm93LnBhcmVudEluZGljYXRvckNvbHVtbn1cbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudExhYmVsPXtyb3cucGFyZW50TGFiZWx9XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRMYWJlbEljb249e3Jvdy5wYXJlbnRMYWJlbEljb259XG4gICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbj17cm93LmNoaWxkcmVufVxuICAgICAgICAgICAgICAgICAgICAgICAgb25DbG9zZT17dGhpcy5zZXRPcGVuZWRQYXJlbnRSb3dJZH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHsuLi5Cb2R5Um93UHJvcHN9XG4gICAgICAgICAgICAgICAgICAgIC8+LFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRhYmxlUm93cy5wdXNoKDxCb2R5Um93IGtleT17cm93LnJvd0lkfSB7Li4uQm9keVJvd1Byb3BzfSAvPik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIGFkZCBvcGVuZWQgZGV0YWlsIHJvd3NcbiAgICAgICAgICAgIGlmIChyb3cuZGV0YWlscyAmJiByb3cuZGV0YWlscy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgcm93LmRldGFpbHMuZm9yRWFjaChkZXRhaWwgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZGV0YWlsLnJvd3MubGVuZ3RoID4gMCAmJiBvcGVuZWREZXRhaWxzUm93SWRMaXN0LmZpbmQoaXRlbSA9PiBpdGVtLmlkID09PSByb3cucm93SWQgJiYgaXRlbS50eXBlID09PSBkZXRhaWwudHlwZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbC5yb3dzLmZvckVhY2goZGV0YWlsUm93ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkZXRhaWxSb3dQcm9wcyA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93OiBkZXRhaWxSb3csXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yZGVyZWRDb2x1bW5zLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZW5zZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RpY2t5LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0RldGFpbDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZml4ZWRDb2x1bW5XaWR0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZUNvbnRleHRNZW51LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJsZVJvd3MucHVzaChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJvZHlSb3cga2V5PXtgJHtyb3cucm93SWR9LSR7ZGV0YWlsUm93LnJvd0lkfWB9IHsuLi5kZXRhaWxSb3dQcm9wc30gLz4sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgdEJvZHlDbGFzc2VzID0gY2xhc3NOYW1lcyhjbGFzc2VzLnRib2R5LCB7XG4gICAgICAgICAgICBbY2xhc3Nlcy50Ym9keUZpeGVkV2lkdGhdOiBmaXhlZENvbHVtbldpZHRoLFxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPFRhYmxlQm9keVxuICAgICAgICAgICAgICAgIGlkPXtgJHt0YWJJZH0tYm9keWB9XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXt0Qm9keUNsYXNzZXN9XG4gICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0LFxuICAgICAgICAgICAgICAgICAgICAuLi4obG9hZGluZyAmJiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjYsXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgb25TY3JvbGw9e29uU2Nyb2xsfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt0YWJsZVJvd3MubWFwKHRhYmxlUm93ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRhYmxlUm93O1xuICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgPC9UYWJsZUJvZHk+XG4gICAgICAgICk7XG4gICAgfVxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IHdpdGhTdHlsZXMoc3R5bGVzLCB7IHdpdGhUaGVtZTogdHJ1ZSwgbmFtZTogJ0htdWlIaVRhYmxlQm9keScgfSkoSGlUYWJsZUJvZHkpO1xuIl19
104075
104152
 
104076
104153
  /***/ }),
104077
104154
  /* 2834 */
@@ -104084,6 +104161,8 @@ Object.defineProperty(exports, "__esModule", {
104084
104161
  value: true
104085
104162
  });
104086
104163
 
104164
+ var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
104165
+
104087
104166
  var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
104088
104167
 
104089
104168
  var _react = __webpack_require__(0);
@@ -104193,7 +104272,8 @@ var BodyCellBuilder = function (_React$PureComponent) {
104193
104272
  lookedUp = _props.lookedUp,
104194
104273
  fixedColumnWidth = _props.fixedColumnWidth,
104195
104274
  disableContextMenu = _props.disableContextMenu,
104196
- props = _objectWithoutProperties(_props, ['ukey', 'type', 'data', 'view', 'width', 'padding', 'align', 'dense', 'ellipsis', 'onSelect', 'selectable', 'selected', 'sticky', 'dateLocale', 'numberLocale', 'childrenCount', 'onOpenDetails', 'lookedUp', 'fixedColumnWidth', 'disableContextMenu']);
104275
+ detailInfos = _props.detailInfos,
104276
+ props = _objectWithoutProperties(_props, ['ukey', 'type', 'data', 'view', 'width', 'padding', 'align', 'dense', 'ellipsis', 'onSelect', 'selectable', 'selected', 'sticky', 'dateLocale', 'numberLocale', 'childrenCount', 'onOpenDetails', 'lookedUp', 'fixedColumnWidth', 'disableContextMenu', 'detailInfos']);
104197
104277
 
104198
104278
  var layoutProps = {
104199
104279
  type: type,
@@ -104208,7 +104288,9 @@ var BodyCellBuilder = function (_React$PureComponent) {
104208
104288
  sticky: sticky,
104209
104289
  childrenCount: childrenCount,
104210
104290
  lookedUp: lookedUp,
104211
- fixedColumnWidth: fixedColumnWidth
104291
+ fixedColumnWidth: fixedColumnWidth,
104292
+ detailInfos: detailInfos,
104293
+ onOpenDetails: onOpenDetails
104212
104294
  };
104213
104295
 
104214
104296
  var cellContent = void 0;
@@ -104321,13 +104403,16 @@ var BodyCellBuilder = function (_React$PureComponent) {
104321
104403
  break;
104322
104404
 
104323
104405
  case cst.TYPE_STATUS:
104324
- cellElement = _react2.default.createElement(_BodyCells.CellStatus, {
104406
+ cellElement = _react2.default.createElement(_BodyCells.CellStatus, _extends({
104325
104407
  code: data.value,
104326
- nbOperations: data.count_operations,
104327
104408
  value: data.label ? data.label : data.value,
104328
- onOpenDetails: onOpenDetails,
104329
104409
  sticky: sticky
104330
- });
104410
+ }, detailInfos && {
104411
+ nbOperations: detailInfos.total,
104412
+ onOpenDetails: onOpenDetails
104413
+ }));
104414
+ delete layoutProps.detailInfos;
104415
+ delete layoutProps.onOpenDetails;
104331
104416
  break;
104332
104417
 
104333
104418
  case cst.TYPE_THIRD_PARTY_SECURITY:
@@ -104401,6 +104486,10 @@ BodyCellBuilder.propTypes = {
104401
104486
  * Densité, défini la hauteur de la ligne
104402
104487
  */
104403
104488
  dense: _propTypes2.default.bool,
104489
+ /**
104490
+ * Ajoute un Chip affichant le nombre de ligne de détails de la ligne et permettant de les affichés via onOpenDetails
104491
+ */
104492
+ detailInfos: _propTypes2.default.object,
104404
104493
  /**
104405
104494
  * Active/désactive le menu contextuel au clic droit sur les cellules du tableau
104406
104495
  */
@@ -104458,10 +104547,11 @@ BodyCellBuilder.propTypes = {
104458
104547
  };
104459
104548
  BodyCellBuilder.defaultProps = {
104460
104549
  ellipsis: 'right',
104461
- disableContextMenu: true
104550
+ disableContextMenu: true,
104551
+ detailInfos: null
104462
104552
  };
104463
104553
  exports.default = BodyCellBuilder;
104464
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9IaVRhYmxlL0JvZHlDZWxsQnVpbGRlci5qcyJdLCJuYW1lcyI6WyJjc3QiLCJCb2R5Q2VsbEJ1aWxkZXIiLCJwcm9wcyIsImNvbGxlY3RDb250ZXh0TWVudURhdGFzIiwiYmluZCIsImRhdGEiLCJ2YWx1ZSIsImNvbnRleHRMYWJlbCIsImxhYmVsIiwidHlwZSIsIlRZUEVfREFURSIsIm9wdGlvbnMiLCJ5ZWFyIiwibW9udGgiLCJkYXkiLCJkYXRlIiwiRGF0ZSIsInRvTG9jYWxlU3RyaW5nIiwiZGF0ZUxvY2FsZSIsIlRZUEVfUkFURSIsInZpZXciLCJudW1iZXJMb2NhbGUiLCJpZCIsImNoZWNrYm94VmFsdWUiLCJjb2x1bW4iLCJjb2xJZCIsInVrZXkiLCJ3aWR0aCIsInBhZGRpbmciLCJhbGlnbiIsImRlbnNlIiwiZWxsaXBzaXMiLCJvblNlbGVjdCIsInNlbGVjdGFibGUiLCJzZWxlY3RlZCIsInN0aWNreSIsImNoaWxkcmVuQ291bnQiLCJvbk9wZW5EZXRhaWxzIiwibG9va2VkVXAiLCJmaXhlZENvbHVtbldpZHRoIiwiZGlzYWJsZUNvbnRleHRNZW51IiwibGF5b3V0UHJvcHMiLCJjZWxsQ29udGVudCIsImNlbGxFbGVtZW50IiwiVFlQRV9BQ0NPVU5UIiwiY29sb3IiLCJUWVBFX0FDQ09VTlRfTlVNQkVSIiwiY291bnRyeSIsImV4cGlyYXRpb25EYXRlIiwiZXhwaXJhdGlvbkRhdGVMYWJlbCIsInN0YXR1c0NvbG9yIiwiaXNzdWVyIiwiVFlQRV9BRERSRVNTIiwibmFtZSIsImNpdHkiLCJwb3N0YWxDb2RlIiwiaXNvQ291bnRyeSIsIlRZUEVfQ09VTlRSWSIsImltZyIsImRpc3BsYXlUaW1lIiwiVFlQRV9JQ09OIiwiaWNvbiIsIlRZUEVfSU1BR0UiLCJzaXplIiwiVFlQRV9OVU1FUklDIiwiY3VycmVuY3kiLCJwcmVjaXNpb24iLCJpc1Bvc2l0aXZlIiwidHJlbmRjaGlwIiwiaW5kaWNhdG9yIiwiVFlQRV9TRU5USU5FTCIsInNjb3JlIiwiYXV0b21hdGljRnJhdWRSZXZpZXdSZXN1bHQiLCJwZW5kaW5nTWFudWFsQWN0aW9uIiwic21hcnREZWNpc2lvbiIsIlRZUEVfU1RBVFVTIiwiY291bnRfb3BlcmF0aW9ucyIsIlRZUEVfVEhJUkRfUEFSVFlfU0VDVVJJVFkiLCJUWVBFX1RFWFQiLCJ0YWJJZCIsIlB1cmVDb21wb25lbnQiLCJwcm9wVHlwZXMiLCJzdHJpbmciLCJudW1iZXIiLCJjb2x1bW5EYXRhcyIsImFycmF5Iiwib2JqZWN0IiwiYm9vbCIsImlzUmVxdWlyZWQiLCJvbmVPZiIsImZ1bmMiLCJkZWZhdWx0UHJvcHMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUE7Ozs7QUFDQTs7OztBQUNBOztBQUVBOztJQUFZQSxHOztBQUNaOztBQWdCQTs7Ozs7Ozs7Ozs7Ozs7QUFFQTs7O0lBR3FCQyxlOzs7QUEyRmpCLDZCQUFZQyxLQUFaLEVBQW1CO0FBQUE7O0FBQUEsc0lBQ1RBLEtBRFM7O0FBR2YsY0FBS0MsdUJBQUwsR0FBK0IsTUFBS0EsdUJBQUwsQ0FBNkJDLElBQTdCLE9BQS9CO0FBSGU7QUFJbEI7O0FBRUQ7Ozs7Ozs7Ozs7O2tEQU8wQjtBQUFBLDhCQUVLLEtBQUtGLEtBQUwsQ0FBV0csSUFGaEI7QUFBQSxnQkFFZEMsS0FGYyxlQUVkQSxLQUZjO0FBQUEsZ0JBRUpELElBRkk7O0FBSXRCLGdCQUFJRSxlQUFlRixLQUFLRyxLQUFMLEdBQWFILEtBQUtHLEtBQWxCLEdBQTBCRixLQUE3Qzs7QUFFQSxvQkFBUSxLQUFLSixLQUFMLENBQVdPLElBQW5COztBQUVJLHFCQUFLVCxJQUFJVSxTQUFUO0FBQ0ksd0JBQU1DLFVBQVUsRUFBRUMsTUFBTSxTQUFSLEVBQW1CQyxPQUFPLFNBQTFCLEVBQXFDQyxLQUFLLFNBQTFDLEVBQWhCO0FBQ0Esd0JBQU1DLE9BQU8sSUFBSUMsSUFBSixDQUFTVixLQUFULENBQWI7QUFDQUMsbUNBQWVRLEtBQUtFLGNBQUwsQ0FBb0IsS0FBS2YsS0FBTCxDQUFXZ0IsVUFBL0IsRUFBMkNQLE9BQTND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LElBakVMO0FBa0VmOzs7O0FBSUFwRCxZQUFRLG9CQUFVb0QsSUF0RUg7QUF1RWY7OztBQUdBOUUsVUFBTSxvQkFBVXlFLE1BQVYsQ0FBaUJNLFVBMUVSO0FBMkVmOzs7QUFHQXBFLFVBQU0sb0JBQVVxRSxLQUFWLENBQWdCLENBQUMsR0FBRCxFQUFNLEdBQU4sRUFBVyxHQUFYLENBQWhCLENBOUVTO0FBK0VmOzs7QUFHQTlELFdBQU8sb0JBQVV3RDtBQWxGRixDO0FBREZsRixlLENBc0ZWMEYsWSxHQUFlO0FBQ2xCNUQsY0FBVSxPQURRO0FBRWxCUyx3QkFBb0I7QUFGRixDO2tCQXRGTHZDLGUiLCJmaWxlIjoiQm9keUNlbGxCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6Ii9ob21lL3Zkb3NzYW50b3MvZGV2L2hpcGF5LW1hdGVyaWFsLXVpIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgeyBDb250ZXh0TWVudVRyaWdnZXIgfSBmcm9tICdyZWFjdC1jb250ZXh0bWVudSc7XG5cbmltcG9ydCAqIGFzIGNzdCBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQge1xuICAgIENlbGxMYXlvdXQsXG4gICAgQ2VsbEFjY291bnQsXG4gICAgQ2VsbEFjY291bnROdW1iZXIsXG4gICAgQ2VsbEFkZHJlc3MsXG4gICAgQ2VsbERhdGUsXG4gICAgQ2VsbEljb24sXG4gICAgQ2VsbEltYWdlLFxuICAgIENlbGxOdW1lcmljLFxuICAgIENlbGxSYXRlLFxuICAgIENlbGxTZW50aW5lbCxcbiAgICBDZWxsU3RhdHVzLFxuICAgIENlbGxUZXh0LFxuICAgIENlbGxUaGlyZFBhcnR5U2VjdXJpdHksXG4gICAgQ2VsbENvdW50cnksXG59IGZyb20gJy4vQm9keUNlbGxzJztcbmltcG9ydCB7IGZvcm1hdFJhdGUgfSBmcm9tICcuLi91dGlscy9oaUhlbHBlcnMnO1xuXG4vKipcbiAqIENvbnN0cnVpdCBsYSBjZWxsdWxlIGNvcnJlc3BvbmRhbnRlIGF1IHR5cGUgZGVtYW5kw6lcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQm9keUNlbGxCdWlsZGVyIGV4dGVuZHMgUmVhY3QuUHVyZUNvbXBvbmVudCB7XG4gICAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRpdGxlIGFsaWduZW1lbnQsIGVzdCBkw6lkdWl0IGRlIHR5cGUgcGFyIGTDqWZhdXRcbiAgICAgICAgICovXG4gICAgICAgIGFsaWduOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgICAvKipcbiAgICAgICAgICogTm9tYnJlIGQnZW5mYW50c1xuICAgICAgICAgKi9cbiAgICAgICAgY2hpbGRyZW5Db3VudDogUHJvcFR5cGVzLm51bWJlcixcbiAgICAgICAgLyoqXG4gICAgICAgICAqIElkZW50aWZpYW50IGRlIGxhIGNvbG9ubmVcbiAgICAgICAgICovXG4gICAgICAgIGNvbElkOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgICAvKipcbiAgICAgICAgICogRG9ubsOpZXMgZGUgcsOpZsOpcmVuY2VzXG4gICAgICAgICAqL1xuICAgICAgICBjb2x1bW5EYXRhczogUHJvcFR5cGVzLmFycmF5LFxuICAgICAgICAvKipcbiAgICAgICAgICogRG9ubsOpZXMgcmVsYXRpdmVzIGF1IHR5cGUgZGUgbGEgY2VsbHVsZVxuICAgICAgICAgKi9cbiAgICAgICAgZGF0YTogUHJvcFR5cGVzLm9iamVjdCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIExvY2FsZSBhIHV0aWxpc8OpZSBwb3VyIGwnYWZmaWNoYWdlIGRlcyBkYXRlc1xuICAgICAgICAgKi9cbiAgICAgICAgZGF0ZUxvY2FsZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIERlbnNpdMOpLCBkw6lmaW5pIGxhIGhhdXRldXIgZGUgbGEgbGlnbmVcbiAgICAgICAgICovXG4gICAgICAgIGRlbnNlOiBQcm9wVHlwZXMuYm9vbCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEFjdGl2ZS9kw6lzYWN0aXZlIGxlIG1lbnUgY29udGV4dHVlbCBhdSBjbGljIGRyb2l0IHN1ciBsZXMgY2VsbHVsZXMgZHUgdGFibGVhdVxuICAgICAgICAgKi9cbiAgICAgICAgZGlzYWJsZUNvbnRleHRNZW51OiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkLFxuICAgICAgICAvKipcbiAgICAgICAgICogRWxsaXBzaXNcbiAgICAgICAgICovXG4gICAgICAgIGVsbGlwc2lzOiBQcm9wVHlwZXMub25lT2YoWydsZWZ0JywgJ3JpZ2h0JywgJ21pZGRsZScsICduYW1lJywgJ2FmdGVyLWZpcnN0LXdvcmQnXSksXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBGaXhlIGxhIHRhaWxsZSBkZXMgY29sb25uZXMgc2Vsb24gbGUgdHlwZSBkZSB2dWVcbiAgICAgICAgICogU2lub24gbGVzIGNvbG9ubmVzIHMnYWRhcHRlbnQgw6AgbCdlc3BhY2UgZGlzcG9uaWJsZVxuICAgICAgICAgKi9cbiAgICAgICAgZml4ZWRDb2x1bW5XaWR0aDogUHJvcFR5cGVzLmJvb2wsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBSZWNoZXJjaGUgbG9va3VwIHN1ciBjZXR0ZSBjb2xvbm5lXG4gICAgICAgICAqL1xuICAgICAgICBsb29rZWRVcDogUHJvcFR5cGVzLmJvb2wsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBMb2NhbGUgYSB1dGlsaXPDqWUgcG91ciBsJ2FmZmljaGFnZSBkZXMgZGF0ZXNcbiAgICAgICAgICovXG4gICAgICAgIG51bWJlckxvY2FsZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEZvbmN0aW9uIGRlIGNhbGxiYWNrIGF1IGNsaWNrIGR1IHNlbGVjdFxuICAgICAgICAgKi9cbiAgICAgICAgb25TZWxlY3Q6IFByb3BUeXBlcy5mdW5jLFxuICAgICAgICAvKipcbiAgICAgICAgICogUGFkZGluZyBkZSBsYSBjZWxsdWxlIChweClcbiAgICAgICAgICovXG4gICAgICAgIHBhZGRpbmc6IFByb3BUeXBlcy5udW1iZXIsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBBam91dGUgdW5lIGNoZWNrYm94XG4gICAgICAgICAqL1xuICAgICAgICBzZWxlY3RhYmxlOiBQcm9wVHlwZXMuYm9vbCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIMOJdGF0IGRlIGxhIGNoZWNrYm94XG4gICAgICAgICAqL1xuICAgICAgICBzZWxlY3RlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUcnVlIHNpIGxhIGNvbG9ubmUgZXN0IGxhIHByZW1pw6hyZSBjb2xvbm5lIGV0XG4gICAgICAgICAqIGRvaXQgYXZvaXIgdW4gY29tcG9ydGVtZW50IFwic3RpY2t5XCIgbG9ycyBkdSBzY3JvbGwgaG9yaXpvbnRhbFxuICAgICAgICAgKi9cbiAgICAgICAgc3RpY2t5OiBQcm9wVHlwZXMuYm9vbCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFR5cGUgZGUgbGEgY2VsbHVsZSAodm9pciBsYSBsaXN0ZXMgZGVzIGNvbnN0YW50ZXMpXG4gICAgICAgICAqL1xuICAgICAgICB0eXBlOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBWaWV3IChML00vUylcbiAgICAgICAgICovXG4gICAgICAgIHZpZXc6IFByb3BUeXBlcy5vbmVPZihbJ2wnLCAnbScsICdzJ10pLFxuICAgICAgICAvKipcbiAgICAgICAgICogTGFyZ2V1ciBkZSBsYSBjZWxsdWxlIChob3JzIHBhZGRpbmcpLCBlc3QgZMOpZHVpdCBkZSB2aWV3IHBhciBkw6lmYXV0XG4gICAgICAgICAqL1xuICAgICAgICB3aWR0aDogUHJvcFR5cGVzLm51bWJlcixcbiAgICB9O1xuXG4gICAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICAgICAgZWxsaXBzaXM6ICdyaWdodCcsXG4gICAgICAgIGRpc2FibGVDb250ZXh0TWVudTogdHJ1ZSxcbiAgICB9O1xuXG4gICAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICAgICAgc3VwZXIocHJvcHMpO1xuXG4gICAgICAgIHRoaXMuY29sbGVjdENvbnRleHRNZW51RGF0YXMgPSB0aGlzLmNvbGxlY3RDb250ZXh0TWVudURhdGFzLmJpbmQodGhpcyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29sbGVjQ29udGV4dE1lbnVEYXRhc1xuICAgICAqXG4gICAgICogZMOpZmluaXQgbGVzIGRvbm7DqWVzIHV0aWxpc8OpZXMgcGFyIGxlIGNvbnRleHQgbWVudSAobG9va3VwLCBleGNsdWRlLCBjb3B5LCByZWRpcmVjdClcbiAgICAgKiAtIHZhbHVlIDogdmFsZXVyIHN1ciBsYXF1ZWxsZSBvbiBmaWx0cmVcbiAgICAgKiAtIGxhYmVsIDogbGFiZWwgZGUgbGEgdmFsdWUgKHRyYWR1aXRlKVxuICAgICAqL1xuICAgIGNvbGxlY3RDb250ZXh0TWVudURhdGFzKCkge1xuXG4gICAgICAgIGNvbnN0IHsgdmFsdWUsIC4uLmRhdGEgfSA9IHRoaXMucHJvcHMuZGF0YTtcblxuICAgICAgICBsZXQgY29udGV4dExhYmVsID0gZGF0YS5sYWJlbCA/IGRhdGEubGFiZWwgOiB2YWx1ZTtcblxuICAgICAgICBzd2l0Y2ggKHRoaXMucHJvcHMudHlwZSkge1xuXG4gICAgICAgICAgICBjYXNlIGNzdC5UWVBFX0RBVEU6XG4gICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsgeWVhcjogJ251bWVyaWMnLCBtb250aDogJzItZGlnaXQnLCBkYXk6ICcyLWRpZ2l0JyB9O1xuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgY29udGV4dExhYmVsID0gZGF0ZS50b0xvY2FsZVN0cmluZyh0aGlzLnByb3BzLmRhdGVMb2NhbGUsIG9wdGlvbnMpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlIGNzdC5UWVBFX1JBVEU6XG4gICAgICAgICAgICAgICAgY29udGV4dExhYmVsID0gZm9ybWF0UmF0ZShcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHMudmlldyxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5udW1iZXJMb2NhbGUsXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpZDogdGhpcy5wcm9wcy5jaGVja2JveFZhbHVlLFxuICAgICAgICAgICAgY29sdW1uOiB0aGlzLnByb3BzLmNvbElkLFxuICAgICAgICAgICAgbGFiZWw6IGNvbnRleHRMYWJlbCxcbiAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHJlbmRlcigpIHtcbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgdWtleSxcbiAgICAgICAgICAgIHR5cGUsXG4gICAgICAgICAgICBkYXRhLFxuICAgICAgICAgICAgdmlldyxcbiAgICAgICAgICAgIHdpZHRoLFxuICAgICAgICAgICAgcGFkZGluZyxcbiAgICAgICAgICAgIGFsaWduLFxuICAgICAgICAgICAgZGVuc2UsXG4gICAgICAgICAgICBlbGxpcHNpcyxcbiAgICAgICAgICAgIG9uU2VsZWN0LFxuICAgICAgICAgICAgc2VsZWN0YWJsZSxcbiAgICAgICAgICAgIHNlbGVjdGVkLFxuICAgICAgICAgICAgc3RpY2t5LFxuICAgICAgICAgICAgZGF0ZUxvY2FsZSxcbiAgICAgICAgICAgIG51bWJlckxvY2FsZSxcbiAgICAgICAgICAgIGNoaWxkcmVuQ291bnQsXG4gICAgICAgICAgICBvbk9wZW5EZXRhaWxzLFxuICAgICAgICAgICAgbG9va2VkVXAsXG4gICAgICAgICAgICBmaXhlZENvbHVtbldpZHRoLFxuICAgICAgICAgICAgZGlzYWJsZUNvbnRleHRNZW51LFxuICAgICAgICAgICAgLi4ucHJvcHNcbiAgICAgICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICAgICAgY29uc3QgbGF5b3V0UHJvcHMgPSB7XG4gICAgICAgICAgICB0eXBlLFxuICAgICAgICAgICAgdmlldyxcbiAgICAgICAgICAgIHdpZHRoLFxuICAgICAgICAgICAgYWxpZ24sXG4gICAgICAgICAgICBkZW5zZSxcbiAgICAgICAgICAgIG9uU2VsZWN0LFxuICAgICAgICAgICAgcGFkZGluZyxcbiAgICAgICAgICAgIHNlbGVjdGFibGUsXG4gICAgICAgICAgICBzZWxlY3RlZCxcbiAgICAgICAgICAgIHN0aWNreSxcbiAgICAgICAgICAgIGNoaWxkcmVuQ291bnQsXG4gICAgICAgICAgICBsb29rZWRVcCxcbiAgICAgICAgICAgIGZpeGVkQ29sdW1uV2lkdGgsXG4gICAgICAgIH07XG5cbiAgICAgICAgbGV0IGNlbGxDb250ZW50O1xuICAgICAgICBpZiAodHlwZW9mIGRhdGEgIT09ICd1bmRlZmluZWQnKSB7XG5cbiAgICAgICAgICAgIGxldCBjZWxsRWxlbWVudDtcblxuICAgICAgICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgICAgICAgICAgY2FzZSBjc3QuVFlQRV9BQ0NPVU5UOlxuICAgICAgICAgICAgICAgICAgICBjZWxsRWxlbWVudCA9IChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxDZWxsQWNjb3VudCB2YWx1ZT17ZGF0YS52YWx1ZX0gY29sb3I9e2RhdGEuY29sb3J9IHN0aWNreT17c3RpY2t5fSAvPlxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgY3N0LlRZUEVfQUNDT1VOVF9OVU1CRVI6XG4gICAgICAgICAgICAgICAgICAgIGNlbGxFbGVtZW50ID0gKFxuICAgICAgICAgICAgICAgICAgICAgICAgPENlbGxBY2NvdW50TnVtYmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e2RhdGEudmFsdWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY291bnRyeT17ZGF0YS5jb3VudHJ5fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGlyYXRpb25EYXRlPXtkYXRhLmV4cGlyYXRpb25EYXRlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGlyYXRpb25EYXRlTGFiZWw9e2RhdGEuZXhwaXJhdGlvbkRhdGVMYWJlbH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXNDb2xvcj17ZGF0YS5zdGF0dXNDb2xvcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc3N1ZXI9e2RhdGEuaXNzdWVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0aWNreT17c3RpY2t5fVxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBjYXNlIGNzdC5UWVBFX0FERFJFU1M6XG4gICAgICAgICAgICAgICAgICAgIGNlbGxFbGVtZW50ID0gKFxuICAgICAgICAgICAgICAgICAgICAgICAgPENlbGxBZGRyZXNzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17ZGF0YS5uYW1lfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmVldEFkZHJlc3M9e2RhdGEudmFsdWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2l0eT17ZGF0YS5jaXR5fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc3RhbENvZGU9e2RhdGEucG9zdGFsQ29kZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudHJ5PXtkYXRhLmNvdW50cnl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNvQ291bnRyeT17ZGF0YS5pc29Db3VudHJ5fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXc9e3ZpZXd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RpY2t5PXtzdGlja3l9XG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgY3N0LlRZUEVfQ09VTlRSWTpcbiAgICAgICAgICAgICAgICAgICAgY2VsbEVsZW1lbnQgPSAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8Q2VsbENvdW50cnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD17ZGF0YS5sYWJlbCA/IGRhdGEubGFiZWwgOiBkYXRhLnZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGg9e2RhdGEuaW1nfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXtkYXRhLnZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXc9e3ZpZXd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RpY2t5PXtzdGlja3l9XG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgY3N0LlRZUEVfREFURTpcbiAgICAgICAgICAgICAgICAgICAgY2VsbEVsZW1lbnQgPSAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8Q2VsbERhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17ZGF0YS52YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhbGU9e2RhdGVMb2NhbGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlldz17dmlld31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5VGltZT17cHJvcHMuZGlzcGxheVRpbWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RpY2t5PXtzdGlja3l9XG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgY3N0LlRZUEVfSUNPTjpcbiAgICAgICAgICAgICAgICAgICAgY2VsbEVsZW1lbnQgPSAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8Q2VsbEljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17ZGF0YS5sYWJlbCA/IGRhdGEubGFiZWwgOiBkYXRhLnZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb249e2RhdGEuaWNvbn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj17ZGF0YS5jb2xvcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3PXt2aWV3fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0aWNreT17c3RpY2t5fVxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBjYXNlIGNzdC5UWVBFX0lNQUdFOlxuICAgICAgICAgICAgICAgICAgICBjZWxsRWxlbWVudCA9IChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxDZWxsSW1hZ2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17ZGF0YS5sYWJlbCA/IGRhdGEubGFiZWwgOiBkYXRhLnZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGg9e2RhdGEuaW1nfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9e3RoaXMucHJvcHMuc2l6ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3PXt2aWV3fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0aWNreT17c3RpY2t5fVxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBjYXNlIGNzdC5UWVBFX05VTUVSSUM6XG4gICAgICAgICAgICAgICAgICAgIGNlbGxFbGVtZW50ID0gKFxuICAgICAgICAgICAgICAgICAgICAgICAgPENlbGxOdW1lcmljXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e2RhdGEudmFsdWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVuY3k9e2RhdGEuY3VycmVuY3l9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlY2lzaW9uPXtkYXRhLnByZWNpc2lvbn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhbGU9e251bWJlckxvY2FsZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3PXt2aWV3fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0aWNreT17c3RpY2t5fVxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBjYXNlIGNzdC5UWVBFX1JBVEU6XG4gICAgICAgICAgICAgICAgICAgIGNlbGxFbGVtZW50ID0gKFxuICAgICAgICAgICAgICAgICAgICAgICAgPENlbGxSYXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e2RhdGEudmFsdWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNQb3NpdGl2ZT17ZGF0YS5pc1Bvc2l0aXZlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyZW5kY2hpcD17ZGF0YS50cmVuZGNoaXB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kaWNhdG9yPXtkYXRhLmluZGljYXRvcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhbGU9e251bWJlckxvY2FsZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3PXt2aWV3fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0aWNreT17c3RpY2t5fVxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBjYXNlIGNzdC5UWVBFX1NFTlRJTkVMOlxuICAgICAgICAgICAgICAgICAgICBjZWxsRWxlbWVudCA9IChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxDZWxsU2VudGluZWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY29yZT17ZGF0YS5zY29yZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcmF1ZFJlc3VsdD17ZGF0YS52YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvbWF0aWNGcmF1ZFJldmlld1Jlc3VsdD17ZGF0YS5hdXRvbWF0aWNGcmF1ZFJldmlld1Jlc3VsdH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZW5kaW5nTWFudWFsQWN0aW9uPXtkYXRhLnBlbmRpbmdNYW51YWxBY3Rpb259XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc21hcnREZWNpc2lvbj17cHJvcHMuc21hcnREZWNpc2lvbn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGlja3k9e3N0aWNreX1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgY2FzZSBjc3QuVFlQRV9TVEFUVVM6XG4gICAgICAgICAgICAgICAgICAgIGNlbGxFbGVtZW50ID0gKFxuICAgICAgICAgICAgICAgICAgICAgICAgPENlbGxTdGF0dXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2RlPXtkYXRhLnZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5iT3BlcmF0aW9ucz17ZGF0YS5jb3VudF9vcGVyYXRpb25zfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXtkYXRhLmxhYmVsID8gZGF0YS5sYWJlbCA6IGRhdGEudmFsdWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25PcGVuRGV0YWlscz17b25PcGVuRGV0YWlsc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGlja3k9e3N0aWNreX1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgY2FzZSBjc3QuVFlQRV9USElSRF9QQVJUWV9TRUNVUklUWTpcbiAgICAgICAgICAgICAgICAgICAgbGF5b3V0UHJvcHMuYWxpZ24gPSAnY2VudGVyJztcbiAgICAgICAgICAgICAgICAgICAgY2VsbEVsZW1lbnQgPSAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8Q2VsbFRoaXJkUGFydHlTZWN1cml0eVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXtkYXRhLnZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPXtkYXRhLmxhYmVsID8gZGF0YS5sYWJlbCA6IGRhdGEudmFsdWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RpY2t5PXtzdGlja3l9XG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgY3N0LlRZUEVfVEVYVDpcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICBjZWxsRWxlbWVudCA9IChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxDZWxsVGV4dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVrZXk9e3VrZXl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e2RhdGEudmFsdWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxsaXBzaXM9e2VsbGlwc2lzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXc9e3ZpZXd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RpY2t5PXtzdGlja3l9XG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY2VsbENvbnRlbnQgPSBkaXNhYmxlQ29udGV4dE1lbnUgPyAoXG4gICAgICAgICAgICAgICAgY2VsbEVsZW1lbnRcbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgPENvbnRleHRNZW51VHJpZ2dlclxuICAgICAgICAgICAgICAgICAgICBpZD17YGhpdGFibGVfY29udGV4dF9tZW51XyR7dGhpcy5wcm9wcy50YWJJZH1gfVxuICAgICAgICAgICAgICAgICAgICBjb2xsZWN0PXt0aGlzLmNvbGxlY3RDb250ZXh0TWVudURhdGFzfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge2NlbGxFbGVtZW50fVxuICAgICAgICAgICAgICAgIDwvQ29udGV4dE1lbnVUcmlnZ2VyPlxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiA8Q2VsbExheW91dCB7Li4ubGF5b3V0UHJvcHN9PntjZWxsQ29udGVudH08L0NlbGxMYXlvdXQ+O1xuICAgIH1cbn1cbiJdfQ==
104554
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9IaVRhYmxlL0JvZHlDZWxsQnVpbGRlci5qcyJdLCJuYW1lcyI6WyJjc3QiLCJCb2R5Q2VsbEJ1aWxkZXIiLCJwcm9wcyIsImNvbGxlY3RDb250ZXh0TWVudURhdGFzIiwiYmluZCIsImRhdGEiLCJ2YWx1ZSIsImNvbnRleHRMYWJlbCIsImxhYmVsIiwidHlwZSIsIlRZUEVfREFURSIsIm9wdGlvbnMiLCJ5ZWFyIiwibW9udGgiLCJkYXkiLCJkYXRlIiwiRGF0ZSIsInRvTG9jYWxlU3RyaW5nIiwiZGF0ZUxvY2FsZSIsIlRZUEVfUkFURSIsInZpZXciLCJudW1iZXJMb2NhbGUiLCJpZCIsImNoZWNrYm94VmFsdWUiLCJjb2x1bW4iLCJjb2xJZCIsInVrZXkiLCJ3aWR0aCIsInBhZGRpbmciLCJhbGlnbiIsImRlbnNlIiwiZWxsaXBzaXMiLCJvblNlbGVjdCIsInNlbGVjdGFibGUiLCJzZWxlY3RlZCIsInN0aWNreSIsImNoaWxkcmVuQ291bnQiLCJvbk9wZW5EZXRhaWxzIiwibG9va2VkVXAiLCJmaXhlZENvbHVtbldpZHRoIiwiZGlzYWJsZUNvbnRleHRNZW51IiwiZGV0YWlsSW5mb3MiLCJsYXlvdXRQcm9wcyIsImNlbGxDb250ZW50IiwiY2VsbEVsZW1lbnQiLCJUWVBFX0FDQ09VTlQiLCJjb2xvciIsIlRZUEVfQUNDT1VOVF9OVU1CRVIiLCJjb3VudHJ5IiwiZXhwaXJhdGlvbkRhdGUiLCJleHBpcmF0aW9uRGF0ZUxhYmVsIiwic3RhdHVzQ29sb3IiLCJpc3N1ZXIiLCJUWVBFX0FERFJFU1MiLCJuYW1lIiwiY2l0eSIsInBvc3RhbENvZGUiLCJpc29Db3VudHJ5IiwiVFlQRV9DT1VOVFJZIiwiaW1nIiwiZGlzcGxheVRpbWUiLCJUWVBFX0lDT04iLCJpY29uIiwiVFlQRV9JTUFHRSIsInNpemUiLCJUWVBFX05VTUVSSUMiLCJjdXJyZW5jeSIsInByZWNpc2lvbiIsImlzUG9zaXRpdmUiLCJ0cmVuZGNoaXAiLCJpbmRpY2F0b3IiLCJUWVBFX1NFTlRJTkVMIiwic2NvcmUiLCJhdXRvbWF0aWNGcmF1ZFJldmlld1Jlc3VsdCIsInBlbmRpbmdNYW51YWxBY3Rpb24iLCJzbWFydERlY2lzaW9uIiwiVFlQRV9TVEFUVVMiLCJuYk9wZXJhdGlvbnMiLCJ0b3RhbCIsIlRZUEVfVEhJUkRfUEFSVFlfU0VDVVJJVFkiLCJUWVBFX1RFWFQiLCJ0YWJJZCIsIlB1cmVDb21wb25lbnQiLCJwcm9wVHlwZXMiLCJzdHJpbmciLCJudW1iZXIiLCJjb2x1bW5EYXRhcyIsImFycmF5Iiwib2JqZWN0IiwiYm9vbCIsImlzUmVxdWlyZWQiLCJvbmVPZiIsImZ1bmMiLCJkZWZhdWx0UHJvcHMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQTs7OztBQUNBOzs7O0FBQ0E7O0FBRUE7O0lBQVlBLEc7O0FBQ1o7O0FBZ0JBOzs7Ozs7Ozs7Ozs7OztBQUVBOzs7SUFHcUJDLGU7OztBQWdHakIsNkJBQVlDLEtBQVosRUFBbUI7QUFBQTs7QUFBQSxzSUFDVEEsS0FEUzs7QUFHZixjQUFLQyx1QkFBTCxHQUErQixNQUFLQSx1QkFBTCxDQUE2QkMsSUFBN0IsT0FBL0I7QUFIZTtBQUlsQjs7QUFFRDs7Ozs7Ozs7Ozs7a0RBTzBCO0FBQUEsOEJBRUssS0FBS0YsS0FBTCxDQUFXRyxJQUZoQjtBQUFBLGdCQUVkQyxLQUZjLGVBRWRBLEtBRmM7QUFBQSxnQkFFSkQsSUFGSTs7QUFJdEIsZ0JBQUlFLGVBQWVGLEtBQUtHLEtBQUwsR0FBYUgsS0FBS0csS0FBbEIsR0FBMEJGLEtBQTdDOztBQUVBLG9CQUFRLEtBQUtKLEtBQUwsQ0FBV08sSUFBbkI7O0FBRUkscUJBQUtULElBQUlVLFNBQVQ7QUFDSSx3QkFBTUMsVUFBVSxFQUFFQyxNQUFNLFNBQVIsRUFBbUJDLE9BQU8sU0FBMUIsRUFBcUNDLEtBQUssU0FBMUMsRUFBaEI7QUFDQSx3QkFBTUMsT0FBTyxJQUFJQyxJQUFKLENBQVNWLEtBQVQsQ0FBYjtBQUNBQyxtQ0FBZVEsS0FBS0UsY0FBTCxDQUFvQixLQUFLZixLQUFMLENBQVdn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Y0FBVSxvQkFBVW1ELElBakRMO0FBa0RmOzs7QUFHQXBFLGtCQUFjLG9CQUFVK0QsTUFyRFQ7QUFzRGY7OztBQUdBcEQsY0FBVSxvQkFBVTRELElBekRMO0FBMERmOzs7QUFHQWhFLGFBQVMsb0JBQVV5RCxNQTdESjtBQThEZjs7O0FBR0FwRCxnQkFBWSxvQkFBVXdELElBakVQO0FBa0VmOzs7QUFHQXZELGNBQVUsb0JBQVV1RCxJQXJFTDtBQXNFZjs7OztBQUlBdEQsWUFBUSxvQkFBVXNELElBMUVIO0FBMkVmOzs7QUFHQWhGLFVBQU0sb0JBQVUyRSxNQUFWLENBQWlCTSxVQTlFUjtBQStFZjs7O0FBR0F0RSxVQUFNLG9CQUFVdUUsS0FBVixDQUFnQixDQUFDLEdBQUQsRUFBTSxHQUFOLEVBQVcsR0FBWCxDQUFoQixDQWxGUztBQW1GZjs7O0FBR0FoRSxXQUFPLG9CQUFVMEQ7QUF0RkYsQztBQURGcEYsZSxDQTBGVjRGLFksR0FBZTtBQUNsQjlELGNBQVUsT0FEUTtBQUVsQlMsd0JBQW9CLElBRkY7QUFHbEJDLGlCQUFhO0FBSEssQztrQkExRkx4QyxlIiwiZmlsZSI6IkJvZHlDZWxsQnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS92ZG9zc2FudG9zL2Rldi9oaXBheS1tYXRlcmlhbC11aSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHsgQ29udGV4dE1lbnVUcmlnZ2VyIH0gZnJvbSAncmVhY3QtY29udGV4dG1lbnUnO1xuXG5pbXBvcnQgKiBhcyBjc3QgZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHtcbiAgICBDZWxsTGF5b3V0LFxuICAgIENlbGxBY2NvdW50LFxuICAgIENlbGxBY2NvdW50TnVtYmVyLFxuICAgIENlbGxBZGRyZXNzLFxuICAgIENlbGxEYXRlLFxuICAgIENlbGxJY29uLFxuICAgIENlbGxJbWFnZSxcbiAgICBDZWxsTnVtZXJpYyxcbiAgICBDZWxsUmF0ZSxcbiAgICBDZWxsU2VudGluZWwsXG4gICAgQ2VsbFN0YXR1cyxcbiAgICBDZWxsVGV4dCxcbiAgICBDZWxsVGhpcmRQYXJ0eVNlY3VyaXR5LFxuICAgIENlbGxDb3VudHJ5LFxufSBmcm9tICcuL0JvZHlDZWxscyc7XG5pbXBvcnQgeyBmb3JtYXRSYXRlIH0gZnJvbSAnLi4vdXRpbHMvaGlIZWxwZXJzJztcblxuLyoqXG4gKiBDb25zdHJ1aXQgbGEgY2VsbHVsZSBjb3JyZXNwb25kYW50ZSBhdSB0eXBlIGRlbWFuZMOpXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEJvZHlDZWxsQnVpbGRlciBleHRlbmRzIFJlYWN0LlB1cmVDb21wb25lbnQge1xuICAgIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUaXRsZSBhbGlnbmVtZW50LCBlc3QgZMOpZHVpdCBkZSB0eXBlIHBhciBkw6lmYXV0XG4gICAgICAgICAqL1xuICAgICAgICBhbGlnbjogUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIE5vbWJyZSBkJ2VuZmFudHNcbiAgICAgICAgICovXG4gICAgICAgIGNoaWxkcmVuQ291bnQ6IFByb3BUeXBlcy5udW1iZXIsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJZGVudGlmaWFudCBkZSBsYSBjb2xvbm5lXG4gICAgICAgICAqL1xuICAgICAgICBjb2xJZDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIERvbm7DqWVzIGRlIHLDqWbDqXJlbmNlc1xuICAgICAgICAgKi9cbiAgICAgICAgY29sdW1uRGF0YXM6IFByb3BUeXBlcy5hcnJheSxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIERvbm7DqWVzIHJlbGF0aXZlcyBhdSB0eXBlIGRlIGxhIGNlbGx1bGVcbiAgICAgICAgICovXG4gICAgICAgIGRhdGE6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBMb2NhbGUgYSB1dGlsaXPDqWUgcG91ciBsJ2FmZmljaGFnZSBkZXMgZGF0ZXNcbiAgICAgICAgICovXG4gICAgICAgIGRhdGVMb2NhbGU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBEZW5zaXTDqSwgZMOpZmluaSBsYSBoYXV0ZXVyIGRlIGxhIGxpZ25lXG4gICAgICAgICAqL1xuICAgICAgICBkZW5zZTogUHJvcFR5cGVzLmJvb2wsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBBam91dGUgdW4gQ2hpcCBhZmZpY2hhbnQgbGUgbm9tYnJlIGRlIGxpZ25lIGRlIGTDqXRhaWxzIGRlIGxhIGxpZ25lIGV0IHBlcm1ldHRhbnQgZGUgbGVzIGFmZmljaMOpcyB2aWEgb25PcGVuRGV0YWlsc1xuICAgICAgICAgKi9cbiAgICAgICAgZGV0YWlsSW5mb3M6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBBY3RpdmUvZMOpc2FjdGl2ZSBsZSBtZW51IGNvbnRleHR1ZWwgYXUgY2xpYyBkcm9pdCBzdXIgbGVzIGNlbGx1bGVzIGR1IHRhYmxlYXVcbiAgICAgICAgICovXG4gICAgICAgIGRpc2FibGVDb250ZXh0TWVudTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEVsbGlwc2lzXG4gICAgICAgICAqL1xuICAgICAgICBlbGxpcHNpczogUHJvcFR5cGVzLm9uZU9mKFsnbGVmdCcsICdyaWdodCcsICdtaWRkbGUnLCAnbmFtZScsICdhZnRlci1maXJzdC13b3JkJ10pLFxuICAgICAgICAvKipcbiAgICAgICAgICogRml4ZSBsYSB0YWlsbGUgZGVzIGNvbG9ubmVzIHNlbG9uIGxlIHR5cGUgZGUgdnVlXG4gICAgICAgICAqIFNpbm9uIGxlcyBjb2xvbm5lcyBzJ2FkYXB0ZW50IMOgIGwnZXNwYWNlIGRpc3BvbmlibGVcbiAgICAgICAgICovXG4gICAgICAgIGZpeGVkQ29sdW1uV2lkdGg6IFByb3BUeXBlcy5ib29sLFxuICAgICAgICAvKipcbiAgICAgICAgICogUmVjaGVyY2hlIGxvb2t1cCBzdXIgY2V0dGUgY29sb25uZVxuICAgICAgICAgKi9cbiAgICAgICAgbG9va2VkVXA6IFByb3BUeXBlcy5ib29sLFxuICAgICAgICAvKipcbiAgICAgICAgICogTG9jYWxlIGEgdXRpbGlzw6llIHBvdXIgbCdhZmZpY2hhZ2UgZGVzIGRhdGVzXG4gICAgICAgICAqL1xuICAgICAgICBudW1iZXJMb2NhbGU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBGb25jdGlvbiBkZSBjYWxsYmFjayBhdSBjbGljayBkdSBzZWxlY3RcbiAgICAgICAgICovXG4gICAgICAgIG9uU2VsZWN0OiBQcm9wVHlwZXMuZnVuYyxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFBhZGRpbmcgZGUgbGEgY2VsbHVsZSAocHgpXG4gICAgICAgICAqL1xuICAgICAgICBwYWRkaW5nOiBQcm9wVHlwZXMubnVtYmVyLFxuICAgICAgICAvKipcbiAgICAgICAgICogQWpvdXRlIHVuZSBjaGVja2JveFxuICAgICAgICAgKi9cbiAgICAgICAgc2VsZWN0YWJsZTogUHJvcFR5cGVzLmJvb2wsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiDDiXRhdCBkZSBsYSBjaGVja2JveFxuICAgICAgICAgKi9cbiAgICAgICAgc2VsZWN0ZWQ6IFByb3BUeXBlcy5ib29sLFxuICAgICAgICAvKipcbiAgICAgICAgICogVHJ1ZSBzaSBsYSBjb2xvbm5lIGVzdCBsYSBwcmVtacOocmUgY29sb25uZSBldFxuICAgICAgICAgKiBkb2l0IGF2b2lyIHVuIGNvbXBvcnRlbWVudCBcInN0aWNreVwiIGxvcnMgZHUgc2Nyb2xsIGhvcml6b250YWxcbiAgICAgICAgICovXG4gICAgICAgIHN0aWNreTogUHJvcFR5cGVzLmJvb2wsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUeXBlIGRlIGxhIGNlbGx1bGUgKHZvaXIgbGEgbGlzdGVzIGRlcyBjb25zdGFudGVzKVxuICAgICAgICAgKi9cbiAgICAgICAgdHlwZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgICAgICAvKipcbiAgICAgICAgICogVmlldyAoTC9NL1MpXG4gICAgICAgICAqL1xuICAgICAgICB2aWV3OiBQcm9wVHlwZXMub25lT2YoWydsJywgJ20nLCAncyddKSxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIExhcmdldXIgZGUgbGEgY2VsbHVsZSAoaG9ycyBwYWRkaW5nKSwgZXN0IGTDqWR1aXQgZGUgdmlldyBwYXIgZMOpZmF1dFxuICAgICAgICAgKi9cbiAgICAgICAgd2lkdGg6IFByb3BUeXBlcy5udW1iZXIsXG4gICAgfTtcblxuICAgIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgICAgIGVsbGlwc2lzOiAncmlnaHQnLFxuICAgICAgICBkaXNhYmxlQ29udGV4dE1lbnU6IHRydWUsXG4gICAgICAgIGRldGFpbEluZm9zOiBudWxsLFxuICAgIH07XG5cbiAgICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgICAgICBzdXBlcihwcm9wcyk7XG5cbiAgICAgICAgdGhpcy5jb2xsZWN0Q29udGV4dE1lbnVEYXRhcyA9IHRoaXMuY29sbGVjdENvbnRleHRNZW51RGF0YXMuYmluZCh0aGlzKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb2xsZWNDb250ZXh0TWVudURhdGFzXG4gICAgICpcbiAgICAgKiBkw6lmaW5pdCBsZXMgZG9ubsOpZXMgdXRpbGlzw6llcyBwYXIgbGUgY29udGV4dCBtZW51IChsb29rdXAsIGV4Y2x1ZGUsIGNvcHksIHJlZGlyZWN0KVxuICAgICAqIC0gdmFsdWUgOiB2YWxldXIgc3VyIGxhcXVlbGxlIG9uIGZpbHRyZVxuICAgICAqIC0gbGFiZWwgOiBsYWJlbCBkZSBsYSB2YWx1ZSAodHJhZHVpdGUpXG4gICAgICovXG4gICAgY29sbGVjdENvbnRleHRNZW51RGF0YXMoKSB7XG5cbiAgICAgICAgY29uc3QgeyB2YWx1ZSwgLi4uZGF0YSB9ID0gdGhpcy5wcm9wcy5kYXRhO1xuXG4gICAgICAgIGxldCBjb250ZXh0TGFiZWwgPSBkYXRhLmxhYmVsID8gZGF0YS5sYWJlbCA6IHZhbHVlO1xuXG4gICAgICAgIHN3aXRjaCAodGhpcy5wcm9wcy50eXBlKSB7XG5cbiAgICAgICAgICAgIGNhc2UgY3N0LlRZUEVfREFURTpcbiAgICAgICAgICAgICAgICBjb25zdCBvcHRpb25zID0geyB5ZWFyOiAnbnVtZXJpYycsIG1vbnRoOiAnMi1kaWdpdCcsIGRheTogJzItZGlnaXQnIH07XG4gICAgICAgICAgICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHZhbHVlKTtcbiAgICAgICAgICAgICAgICBjb250ZXh0TGFiZWwgPSBkYXRlLnRvTG9jYWxlU3RyaW5nKHRoaXMucHJvcHMuZGF0ZUxvY2FsZSwgb3B0aW9ucyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgY3N0LlRZUEVfUkFURTpcbiAgICAgICAgICAgICAgICBjb250ZXh0TGFiZWwgPSBmb3JtYXRSYXRlKFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy52aWV3LFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLm51bWJlckxvY2FsZSxcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGlkOiB0aGlzLnByb3BzLmNoZWNrYm94VmFsdWUsXG4gICAgICAgICAgICBjb2x1bW46IHRoaXMucHJvcHMuY29sSWQsXG4gICAgICAgICAgICBsYWJlbDogY29udGV4dExhYmVsLFxuICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcmVuZGVyKCkge1xuICAgICAgICBjb25zdCB7XG4gICAgICAgICAgICB1a2V5LFxuICAgICAgICAgICAgdHlwZSxcbiAgICAgICAgICAgIGRhdGEsXG4gICAgICAgICAgICB2aWV3LFxuICAgICAgICAgICAgd2lkdGgsXG4gICAgICAgICAgICBwYWRkaW5nLFxuICAgICAgICAgICAgYWxpZ24sXG4gICAgICAgICAgICBkZW5zZSxcbiAgICAgICAgICAgIGVsbGlwc2lzLFxuICAgICAgICAgICAgb25TZWxlY3QsXG4gICAgICAgICAgICBzZWxlY3RhYmxlLFxuICAgICAgICAgICAgc2VsZWN0ZWQsXG4gICAgICAgICAgICBzdGlja3ksXG4gICAgICAgICAgICBkYXRlTG9jYWxlLFxuICAgICAgICAgICAgbnVtYmVyTG9jYWxlLFxuICAgICAgICAgICAgY2hpbGRyZW5Db3VudCxcbiAgICAgICAgICAgIG9uT3BlbkRldGFpbHMsXG4gICAgICAgICAgICBsb29rZWRVcCxcbiAgICAgICAgICAgIGZpeGVkQ29sdW1uV2lkdGgsXG4gICAgICAgICAgICBkaXNhYmxlQ29udGV4dE1lbnUsXG4gICAgICAgICAgICBkZXRhaWxJbmZvcyxcbiAgICAgICAgICAgIC4uLnByb3BzXG4gICAgICAgIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgICAgIGNvbnN0IGxheW91dFByb3BzID0ge1xuICAgICAgICAgICAgdHlwZSxcbiAgICAgICAgICAgIHZpZXcsXG4gICAgICAgICAgICB3aWR0aCxcbiAgICAgICAgICAgIGFsaWduLFxuICAgICAgICAgICAgZGVuc2UsXG4gICAgICAgICAgICBvblNlbGVjdCxcbiAgICAgICAgICAgIHBhZGRpbmcsXG4gICAgICAgICAgICBzZWxlY3RhYmxlLFxuICAgICAgICAgICAgc2VsZWN0ZWQsXG4gICAgICAgICAgICBzdGlja3ksXG4gICAgICAgICAgICBjaGlsZHJlbkNvdW50LFxuICAgICAgICAgICAgbG9va2VkVXAsXG4gICAgICAgICAgICBmaXhlZENvbHVtbldpZHRoLFxuICAgICAgICAgICAgZGV0YWlsSW5mb3MsXG4gICAgICAgICAgICBvbk9wZW5EZXRhaWxzLFxuICAgICAgICB9O1xuXG4gICAgICAgIGxldCBjZWxsQ29udGVudDtcbiAgICAgICAgaWYgKHR5cGVvZiBkYXRhICE9PSAndW5kZWZpbmVkJykge1xuXG4gICAgICAgICAgICBsZXQgY2VsbEVsZW1lbnQ7XG5cbiAgICAgICAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgY3N0LlRZUEVfQUNDT1VOVDpcbiAgICAgICAgICAgICAgICAgICAgY2VsbEVsZW1lbnQgPSAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8Q2VsbEFjY291bnQgdmFsdWU9e2RhdGEudmFsdWV9IGNvbG9yPXtkYXRhLmNvbG9yfSBzdGlja3k9e3N0aWNreX0gLz5cbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBjYXNlIGNzdC5UWVBFX0FDQ09VTlRfTlVNQkVSOlxuICAgICAgICAgICAgICAgICAgICBjZWxsRWxlbWVudCA9IChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxDZWxsQWNjb3VudE51bWJlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXtkYXRhLnZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50cnk9e2RhdGEuY291bnRyeX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBpcmF0aW9uRGF0ZT17ZGF0YS5leHBpcmF0aW9uRGF0ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBpcmF0aW9uRGF0ZUxhYmVsPXtkYXRhLmV4cGlyYXRpb25EYXRlTGFiZWx9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzQ29sb3I9e2RhdGEuc3RhdHVzQ29sb3J9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNzdWVyPXtkYXRhLmlzc3Vlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGlja3k9e3N0aWNreX1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgY2FzZSBjc3QuVFlQRV9BRERSRVNTOlxuICAgICAgICAgICAgICAgICAgICBjZWxsRWxlbWVudCA9IChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxDZWxsQWRkcmVzc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2RhdGEubmFtZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJlZXRBZGRyZXNzPXtkYXRhLnZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNpdHk9e2RhdGEuY2l0eX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3N0YWxDb2RlPXtkYXRhLnBvc3RhbENvZGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY291bnRyeT17ZGF0YS5jb3VudHJ5fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzb0NvdW50cnk9e2RhdGEuaXNvQ291bnRyeX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3PXt2aWV3fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0aWNreT17c3RpY2t5fVxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBjYXNlIGNzdC5UWVBFX0NPVU5UUlk6XG4gICAgICAgICAgICAgICAgICAgIGNlbGxFbGVtZW50ID0gKFxuICAgICAgICAgICAgICAgICAgICAgICAgPENlbGxDb3VudHJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9e2RhdGEubGFiZWwgPyBkYXRhLmxhYmVsIDogZGF0YS52YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoPXtkYXRhLmltZ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17ZGF0YS52YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3PXt2aWV3fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0aWNreT17c3RpY2t5fVxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBjYXNlIGNzdC5UWVBFX0RBVEU6XG4gICAgICAgICAgICAgICAgICAgIGNlbGxFbGVtZW50ID0gKFxuICAgICAgICAgICAgICAgICAgICAgICAgPENlbGxEYXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e2RhdGEudmFsdWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxlPXtkYXRlTG9jYWxlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXc9e3ZpZXd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheVRpbWU9e3Byb3BzLmRpc3BsYXlUaW1lfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0aWNreT17c3RpY2t5fVxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBjYXNlIGNzdC5UWVBFX0lDT046XG4gICAgICAgICAgICAgICAgICAgIGNlbGxFbGVtZW50ID0gKFxuICAgICAgICAgICAgICAgICAgICAgICAgPENlbGxJY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e2RhdGEubGFiZWwgPyBkYXRhLmxhYmVsIDogZGF0YS52YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uPXtkYXRhLmljb259XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I9e2RhdGEuY29sb3J9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlldz17dmlld31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGlja3k9e3N0aWNreX1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgY2FzZSBjc3QuVFlQRV9JTUFHRTpcbiAgICAgICAgICAgICAgICAgICAgY2VsbEVsZW1lbnQgPSAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8Q2VsbEltYWdlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e2RhdGEubGFiZWwgPyBkYXRhLmxhYmVsIDogZGF0YS52YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoPXtkYXRhLmltZ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPXt0aGlzLnByb3BzLnNpemV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlldz17dmlld31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGlja3k9e3N0aWNreX1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgY2FzZSBjc3QuVFlQRV9OVU1FUklDOlxuICAgICAgICAgICAgICAgICAgICBjZWxsRWxlbWVudCA9IChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxDZWxsTnVtZXJpY1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXtkYXRhLnZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbmN5PXtkYXRhLmN1cnJlbmN5fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZWNpc2lvbj17ZGF0YS5wcmVjaXNpb259XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxlPXtudW1iZXJMb2NhbGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlldz17dmlld31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGlja3k9e3N0aWNreX1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgY2FzZSBjc3QuVFlQRV9SQVRFOlxuICAgICAgICAgICAgICAgICAgICBjZWxsRWxlbWVudCA9IChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxDZWxsUmF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXtkYXRhLnZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzUG9zaXRpdmU9e2RhdGEuaXNQb3NpdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmVuZGNoaXA9e2RhdGEudHJlbmRjaGlwfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGljYXRvcj17ZGF0YS5pbmRpY2F0b3J9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxlPXtudW1iZXJMb2NhbGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlldz17dmlld31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGlja3k9e3N0aWNreX1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgY2FzZSBjc3QuVFlQRV9TRU5USU5FTDpcbiAgICAgICAgICAgICAgICAgICAgY2VsbEVsZW1lbnQgPSAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8Q2VsbFNlbnRpbmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NvcmU9e2RhdGEuc2NvcmV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJhdWRSZXN1bHQ9e2RhdGEudmFsdWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0b21hdGljRnJhdWRSZXZpZXdSZXN1bHQ9e2RhdGEuYXV0b21hdGljRnJhdWRSZXZpZXdSZXN1bHR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGVuZGluZ01hbnVhbEFjdGlvbj17ZGF0YS5wZW5kaW5nTWFudWFsQWN0aW9ufVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNtYXJ0RGVjaXNpb249e3Byb3BzLnNtYXJ0RGVjaXNpb259XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RpY2t5PXtzdGlja3l9XG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgY3N0LlRZUEVfU1RBVFVTOlxuICAgICAgICAgICAgICAgICAgICBjZWxsRWxlbWVudCA9IChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxDZWxsU3RhdHVzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29kZT17ZGF0YS52YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17ZGF0YS5sYWJlbCA/IGRhdGEubGFiZWwgOiBkYXRhLnZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0aWNreT17c3RpY2t5fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsuLi4oZGV0YWlsSW5mb3MgJiYge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYk9wZXJhdGlvbnM6IGRldGFpbEluZm9zLnRvdGFsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbk9wZW5EZXRhaWxzOiBvbk9wZW5EZXRhaWxzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICBkZWxldGUgbGF5b3V0UHJvcHMuZGV0YWlsSW5mb3M7XG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBsYXlvdXRQcm9wcy5vbk9wZW5EZXRhaWxzO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgY3N0LlRZUEVfVEhJUkRfUEFSVFlfU0VDVVJJVFk6XG4gICAgICAgICAgICAgICAgICAgIGxheW91dFByb3BzLmFsaWduID0gJ2NlbnRlcic7XG4gICAgICAgICAgICAgICAgICAgIGNlbGxFbGVtZW50ID0gKFxuICAgICAgICAgICAgICAgICAgICAgICAgPENlbGxUaGlyZFBhcnR5U2VjdXJpdHlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17ZGF0YS52YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD17ZGF0YS5sYWJlbCA/IGRhdGEubGFiZWwgOiBkYXRhLnZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0aWNreT17c3RpY2t5fVxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBjYXNlIGNzdC5UWVBFX1RFWFQ6XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgY2VsbEVsZW1lbnQgPSAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8Q2VsbFRleHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1a2V5PXt1a2V5fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXtkYXRhLnZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsbGlwc2lzPXtlbGxpcHNpc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3PXt2aWV3fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0aWNreT17c3RpY2t5fVxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNlbGxDb250ZW50ID0gZGlzYWJsZUNvbnRleHRNZW51ID8gKFxuICAgICAgICAgICAgICAgIGNlbGxFbGVtZW50XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgIDxDb250ZXh0TWVudVRyaWdnZXJcbiAgICAgICAgICAgICAgICAgICAgaWQ9e2BoaXRhYmxlX2NvbnRleHRfbWVudV8ke3RoaXMucHJvcHMudGFiSWR9YH1cbiAgICAgICAgICAgICAgICAgICAgY29sbGVjdD17dGhpcy5jb2xsZWN0Q29udGV4dE1lbnVEYXRhc31cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHtjZWxsRWxlbWVudH1cbiAgICAgICAgICAgICAgICA8L0NvbnRleHRNZW51VHJpZ2dlcj5cbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gPENlbGxMYXlvdXQgey4uLmxheW91dFByb3BzfT57Y2VsbENvbnRlbnR9PC9DZWxsTGF5b3V0PjtcbiAgICB9XG59XG4iXX0=
104465
104555
 
104466
104556
  /***/ }),
104467
104557
  /* 2835 */
@@ -106403,7 +106493,7 @@ CellStatus.propTypes = {
106403
106493
  /**
106404
106494
  * Nombre d'opérations financières
106405
106495
  */
106406
- nbOperations: _propTypes2.default.number.isRequired,
106496
+ nbOperations: _propTypes2.default.number,
106407
106497
  /**
106408
106498
  * Statut courant de la transaction
106409
106499
  */
@@ -106421,7 +106511,7 @@ CellStatus.defaultProps = {
106421
106511
  nbOperations: 0
106422
106512
  };
106423
106513
  exports.default = (0, _styles.withStyles)(styles, { withTheme: true, name: 'HmuiCellStatus' })(CellStatus);
106424
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9IaVRhYmxlL0JvZHlDZWxscy9DZWxsU3RhdHVzLmpzIl0sIm5hbWVzIjpbInN0eWxlcyIsImxhYmVsRGl2IiwiZGlzcGxheSIsImFsaWduSXRlbXMiLCJtYXhXaWR0aCIsInBpbnMiLCJwb3NpdGlvbiIsImJvdHRvbSIsIkNlbGxTdGF0dXMiLCJwcm9wcyIsImNsYXNzZXMiLCJ0aGVtZSIsIm5iT3BlcmF0aW9ucyIsInZhbHVlIiwiY29kZSIsIm9uT3BlbkRldGFpbHMiLCJjb2xvciIsInBhbGV0dGUiLCJzdGF0dXMiLCJuZXV0cmFsIiwibm9ybWFsIiwic3RpY2t5IiwiUHVyZUNvbXBvbmVudCIsInByb3BUeXBlcyIsIm9iamVjdCIsIm51bWJlciIsImlzUmVxdWlyZWQiLCJvbmVPZlR5cGUiLCJzdHJpbmciLCJmdW5jIiwiZGVmYXVsdFByb3BzIiwid2l0aFRoZW1lIiwibmFtZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7Ozs7QUFDQTs7OztBQUVBOzs7O0FBQ0E7Ozs7QUFDQTs7QUFDQTs7Ozs7Ozs7Ozs7O0FBRU8sSUFBTUEsMEJBQVMsU0FBVEEsTUFBUztBQUFBLFdBQVU7QUFDNUJDLGtCQUFVO0FBQ05DLHFCQUFTLGFBREg7QUFFTkMsd0JBQVksVUFGTjtBQUdOQyxzQkFBVTtBQUhKLFNBRGtCO0FBTTVCQyxjQUFNO0FBQ0ZDLHNCQUFVLFVBRFI7QUFFRkMsb0JBQVE7QUFGTjtBQU5zQixLQUFWO0FBQUEsQ0FBZjs7SUFZREMsVTs7Ozs7Ozs7Ozs7aUNBZ0NRO0FBQUEseUJBQytELEtBQUtDLEtBRHBFO0FBQUEsZ0JBQ0VDLE9BREYsVUFDRUEsT0FERjtBQUFBLGdCQUNXQyxLQURYLFVBQ1dBLEtBRFg7QUFBQSxnQkFDa0JDLFlBRGxCLFVBQ2tCQSxZQURsQjtBQUFBLGdCQUNnQ0MsS0FEaEMsVUFDZ0NBLEtBRGhDO0FBQUEsZ0JBQ3VDQyxJQUR2QyxVQUN1Q0EsSUFEdkM7QUFBQSxnQkFDNkNDLGFBRDdDLFVBQzZDQSxhQUQ3Qzs7O0FBR04sZ0JBQU1DLFFBQVEsT0FBT0wsTUFBTU0sT0FBTixDQUFjQyxNQUFkLENBQXFCSixJQUFyQixDQUFQLEtBQXNDLFdBQXRDLEdBQW9ESCxNQUFNTSxPQUFOLENBQWNDLE1BQWQsQ0FBcUJKLElBQXJCLENBQXBELEdBQWlGSCxNQUFNTSxPQUFOLENBQWNFLE9BQWQsQ0FBc0JDLE1BQXJIOztBQUVBLG1CQUNJO0FBQUE7QUFBQSxrQkFBUyxPQUFPUCxLQUFoQixFQUF1QixXQUFXLEtBQUtKLEtBQUwsQ0FBV1ksTUFBWCxHQUFvQixPQUFwQixHQUE4QixRQUFoRTtBQUNJO0FBQUE7QUFBQTtBQUNLVCxtQ0FBZSxDQUFmLEdBQ0c7QUFBQTtBQUFBLDBCQUFLLFdBQVdGLFFBQVFULFFBQXhCO0FBQ0ksa0ZBQWdCLE9BQU9ZLEtBQXZCLEVBQThCLE9BQU9HLEtBQXJDLEdBREo7QUFFSTtBQUFBO0FBQUEsOEJBQVEsT0FBT0EsS0FBZixFQUFzQixTQUFTRCxhQUEvQixFQUE4QyxXQUFXTCxRQUFRTCxJQUFqRTtBQUNLTztBQURMO0FBRkoscUJBREgsR0FRRywwREFBZ0IsT0FBT0MsS0FBdkIsRUFBOEIsT0FBT0csS0FBckM7QUFUUjtBQURKLGFBREo7QUFnQkg7Ozs7RUFyRG9CLGdCQUFNTSxhOztBQUF6QmQsVSxDQUNLZSxTLEdBQVk7QUFDZjs7O0FBR0FiLGFBQVMsb0JBQVVjLE1BSko7QUFLZjs7O0FBR0FiLFdBQU8sb0JBQVVhLE1BUkY7QUFTZjs7O0FBR0FaLGtCQUFjLG9CQUFVYSxNQUFWLENBQWlCQyxVQVpoQjtBQWFmOzs7QUFHQWIsV0FBTyxvQkFBVWMsU0FBVixDQUFvQixDQUFDLG9CQUFVRixNQUFYLEVBQW1CLG9CQUFVRyxNQUE3QixDQUFwQixFQUEwREYsVUFoQmxEO0FBaUJmOzs7QUFHQVosVUFBTSxvQkFBVVcsTUFBVixDQUFpQkMsVUFwQlI7QUFxQmY7OztBQUdBWCxtQkFBZSxvQkFBVWM7QUF4QlYsQztBQURqQnJCLFUsQ0E0QktzQixZLEdBQWU7QUFDbEJsQixrQkFBYztBQURJLEM7a0JBMkJYLHdCQUFXWixNQUFYLEVBQW1CLEVBQUUrQixXQUFXLElBQWIsRUFBbUJDLE1BQU0sZ0JBQXpCLEVBQW5CLEVBQWdFeEIsVUFBaEUsQyIsImZpbGUiOiJDZWxsU3RhdHVzLmpzIiwic291cmNlUm9vdCI6Ii9ob21lL3Zkb3NzYW50b3MvZGV2L2hpcGF5LW1hdGVyaWFsLXVpIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5cbmltcG9ydCBIaUNvbG9yZWRMYWJlbCBmcm9tICcuLi8uLi9IaUNvbG9yZWRMYWJlbCc7XG5pbXBvcnQgSGlQaW5zIGZyb20gJy4uLy4uL0hpUGlucyc7XG5pbXBvcnQgeyB3aXRoU3R5bGVzIH0gZnJvbSAnLi4vLi4vc3R5bGVzJztcbmltcG9ydCBUb29sdGlwIGZyb20gJy4uLy4uL1Rvb2x0aXAnO1xuXG5leHBvcnQgY29uc3Qgc3R5bGVzID0gdGhlbWUgPT4gKHtcbiAgICBsYWJlbERpdjoge1xuICAgICAgICBkaXNwbGF5OiAnaW5saW5lLWZsZXgnLFxuICAgICAgICBhbGlnbkl0ZW1zOiAnYmFzZWxpbmUnLFxuICAgICAgICBtYXhXaWR0aDogJ2NhbGMoMTAwJSAtIDM2cHgpJyxcbiAgICB9LFxuICAgIHBpbnM6IHtcbiAgICAgICAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gICAgICAgIGJvdHRvbTogMSxcbiAgICB9XG59KTtcblxuY2xhc3MgQ2VsbFN0YXR1cyBleHRlbmRzIFJlYWN0LlB1cmVDb21wb25lbnQge1xuICAgIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBVc2VmdWwgdG8gZXh0ZW5kIHRoZSBzdHlsZSBhcHBsaWVkIHRvIGNvbXBvbmVudHMuXG4gICAgICAgICAqL1xuICAgICAgICBjbGFzc2VzOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgICAgICAvKipcbiAgICAgICAgICogW09QVElPTkFMXSBVc2VmdWwgdG8gbW9kaWZ5IHRoZSB0aGVtZSB1c2VkIGJ5IGNvbXBvbmVudHMuXG4gICAgICAgICAqL1xuICAgICAgICB0aGVtZTogUHJvcFR5cGVzLm9iamVjdCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIE5vbWJyZSBkJ29ww6lyYXRpb25zIGZpbmFuY2nDqHJlc1xuICAgICAgICAgKi9cbiAgICAgICAgbmJPcGVyYXRpb25zOiBQcm9wVHlwZXMubnVtYmVyLmlzUmVxdWlyZWQsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBTdGF0dXQgY291cmFudCBkZSBsYSB0cmFuc2FjdGlvblxuICAgICAgICAgKi9cbiAgICAgICAgdmFsdWU6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5udW1iZXIsIFByb3BUeXBlcy5zdHJpbmddKS5pc1JlcXVpcmVkLFxuICAgICAgICAvKipcbiAgICAgICAgICogQ29kZSBkdSBzdGF0dXQgY291cmFudCBkZSBsYSB0cmFuc2FjdGlvbiAoZMOpdGVybWluZSBsYSBjb3VsZXVyIGR1IGxhYmVsKVxuICAgICAgICAgKi9cbiAgICAgICAgY29kZTogUHJvcFR5cGVzLm51bWJlci5pc1JlcXVpcmVkLFxuICAgICAgICAvKipcbiAgICAgICAgICogRm9uY3Rpb24gZGUgY2FsbGJhY2sgYXBwZWzDqWUgcG91ciBvdXZyaXIgbGVzIGxpZ25lcyBkZSBkw6l0YWlsc1xuICAgICAgICAgKi9cbiAgICAgICAgb25PcGVuRGV0YWlsczogUHJvcFR5cGVzLmZ1bmMsXG4gICAgfTtcblxuICAgIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgICAgIG5iT3BlcmF0aW9uczogMFxuICAgIH07XG5cbiAgICByZW5kZXIgKCkge1xuICAgICAgICBjb25zdCB7IGNsYXNzZXMsIHRoZW1lLCBuYk9wZXJhdGlvbnMsIHZhbHVlLCBjb2RlLCBvbk9wZW5EZXRhaWxzIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgICAgIGNvbnN0IGNvbG9yID0gdHlwZW9mIHRoZW1lLnBhbGV0dGUuc3RhdHVzW2NvZGVdICE9PSAndW5kZWZpbmVkJyA/IHRoZW1lLnBhbGV0dGUuc3RhdHVzW2NvZGVdIDogdGhlbWUucGFsZXR0ZS5uZXV0cmFsLm5vcm1hbDtcblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPFRvb2x0aXAgdGl0bGU9e3ZhbHVlfSBwbGFjZW1lbnQ9e3RoaXMucHJvcHMuc3RpY2t5ID8gJ3JpZ2h0JyA6ICdib3R0b20nfT5cbiAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICB7bmJPcGVyYXRpb25zID4gMCA/IChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtjbGFzc2VzLmxhYmVsRGl2fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SGlDb2xvcmVkTGFiZWwgbGFiZWw9e3ZhbHVlfSBjb2xvcj17Y29sb3J9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEhpUGlucyBjb2xvcj17Y29sb3J9IG9uQ2xpY2s9e29uT3BlbkRldGFpbHN9IGNsYXNzTmFtZT17Y2xhc3Nlcy5waW5zfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge25iT3BlcmF0aW9uc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0hpUGlucz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgICAgICAgPEhpQ29sb3JlZExhYmVsIGxhYmVsPXt2YWx1ZX0gY29sb3I9e2NvbG9yfSAvPlxuICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICApO1xuICAgIH1cbn1cbmV4cG9ydCBkZWZhdWx0IHdpdGhTdHlsZXMoc3R5bGVzLCB7IHdpdGhUaGVtZTogdHJ1ZSwgbmFtZTogJ0htdWlDZWxsU3RhdHVzJyB9KShDZWxsU3RhdHVzKTtcbiJdfQ==
106514
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9IaVRhYmxlL0JvZHlDZWxscy9DZWxsU3RhdHVzLmpzIl0sIm5hbWVzIjpbInN0eWxlcyIsImxhYmVsRGl2IiwiZGlzcGxheSIsImFsaWduSXRlbXMiLCJtYXhXaWR0aCIsInBpbnMiLCJwb3NpdGlvbiIsImJvdHRvbSIsIkNlbGxTdGF0dXMiLCJwcm9wcyIsImNsYXNzZXMiLCJ0aGVtZSIsIm5iT3BlcmF0aW9ucyIsInZhbHVlIiwiY29kZSIsIm9uT3BlbkRldGFpbHMiLCJjb2xvciIsInBhbGV0dGUiLCJzdGF0dXMiLCJuZXV0cmFsIiwibm9ybWFsIiwic3RpY2t5IiwiUHVyZUNvbXBvbmVudCIsInByb3BUeXBlcyIsIm9iamVjdCIsIm51bWJlciIsIm9uZU9mVHlwZSIsInN0cmluZyIsImlzUmVxdWlyZWQiLCJmdW5jIiwiZGVmYXVsdFByb3BzIiwid2l0aFRoZW1lIiwibmFtZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7Ozs7QUFDQTs7OztBQUVBOzs7O0FBQ0E7Ozs7QUFDQTs7QUFDQTs7Ozs7Ozs7Ozs7O0FBRU8sSUFBTUEsMEJBQVMsU0FBVEEsTUFBUztBQUFBLFdBQVU7QUFDNUJDLGtCQUFVO0FBQ05DLHFCQUFTLGFBREg7QUFFTkMsd0JBQVksVUFGTjtBQUdOQyxzQkFBVTtBQUhKLFNBRGtCO0FBTTVCQyxjQUFNO0FBQ0ZDLHNCQUFVLFVBRFI7QUFFRkMsb0JBQVE7QUFGTjtBQU5zQixLQUFWO0FBQUEsQ0FBZjs7SUFZREMsVTs7Ozs7Ozs7Ozs7aUNBZ0NRO0FBQUEseUJBQytELEtBQUtDLEtBRHBFO0FBQUEsZ0JBQ0VDLE9BREYsVUFDRUEsT0FERjtBQUFBLGdCQUNXQyxLQURYLFVBQ1dBLEtBRFg7QUFBQSxnQkFDa0JDLFlBRGxCLFVBQ2tCQSxZQURsQjtBQUFBLGdCQUNnQ0MsS0FEaEMsVUFDZ0NBLEtBRGhDO0FBQUEsZ0JBQ3VDQyxJQUR2QyxVQUN1Q0EsSUFEdkM7QUFBQSxnQkFDNkNDLGFBRDdDLFVBQzZDQSxhQUQ3Qzs7O0FBR04sZ0JBQU1DLFFBQVEsT0FBT0wsTUFBTU0sT0FBTixDQUFjQyxNQUFkLENBQXFCSixJQUFyQixDQUFQLEtBQXNDLFdBQXRDLEdBQW9ESCxNQUFNTSxPQUFOLENBQWNDLE1BQWQsQ0FBcUJKLElBQXJCLENBQXBELEdBQWlGSCxNQUFNTSxPQUFOLENBQWNFLE9BQWQsQ0FBc0JDLE1BQXJIOztBQUVBLG1CQUNJO0FBQUE7QUFBQSxrQkFBUyxPQUFPUCxLQUFoQixFQUF1QixXQUFXLEtBQUtKLEtBQUwsQ0FBV1ksTUFBWCxHQUFvQixPQUFwQixHQUE4QixRQUFoRTtBQUNJO0FBQUE7QUFBQTtBQUNLVCxtQ0FBZSxDQUFmLEdBQ0c7QUFBQTtBQUFBLDBCQUFLLFdBQVdGLFFBQVFULFFBQXhCO0FBQ0ksa0ZBQWdCLE9BQU9ZLEtBQXZCLEVBQThCLE9BQU9HLEtBQXJDLEdBREo7QUFFSTtBQUFBO0FBQUEsOEJBQVEsT0FBT0EsS0FBZixFQUFzQixTQUFTRCxhQUEvQixFQUE4QyxXQUFXTCxRQUFRTCxJQUFqRTtBQUNLTztBQURMO0FBRkoscUJBREgsR0FRRywwREFBZ0IsT0FBT0MsS0FBdkIsRUFBOEIsT0FBT0csS0FBckM7QUFUUjtBQURKLGFBREo7QUFnQkg7Ozs7RUFyRG9CLGdCQUFNTSxhOztBQUF6QmQsVSxDQUNLZSxTLEdBQVk7QUFDZjs7O0FBR0FiLGFBQVMsb0JBQVVjLE1BSko7QUFLZjs7O0FBR0FiLFdBQU8sb0JBQVVhLE1BUkY7QUFTZjs7O0FBR0FaLGtCQUFjLG9CQUFVYSxNQVpUO0FBYWY7OztBQUdBWixXQUFPLG9CQUFVYSxTQUFWLENBQW9CLENBQUMsb0JBQVVELE1BQVgsRUFBbUIsb0JBQVVFLE1BQTdCLENBQXBCLEVBQTBEQyxVQWhCbEQ7QUFpQmY7OztBQUdBZCxVQUFNLG9CQUFVVyxNQUFWLENBQWlCRyxVQXBCUjtBQXFCZjs7O0FBR0FiLG1CQUFlLG9CQUFVYztBQXhCVixDO0FBRGpCckIsVSxDQTRCS3NCLFksR0FBZTtBQUNsQmxCLGtCQUFjO0FBREksQztrQkEyQlgsd0JBQVdaLE1BQVgsRUFBbUIsRUFBRStCLFdBQVcsSUFBYixFQUFtQkMsTUFBTSxnQkFBekIsRUFBbkIsRUFBZ0V4QixVQUFoRSxDIiwiZmlsZSI6IkNlbGxTdGF0dXMuanMiLCJzb3VyY2VSb290IjoiL2hvbWUvdmRvc3NhbnRvcy9kZXYvaGlwYXktbWF0ZXJpYWwtdWkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcblxuaW1wb3J0IEhpQ29sb3JlZExhYmVsIGZyb20gJy4uLy4uL0hpQ29sb3JlZExhYmVsJztcbmltcG9ydCBIaVBpbnMgZnJvbSAnLi4vLi4vSGlQaW5zJztcbmltcG9ydCB7IHdpdGhTdHlsZXMgfSBmcm9tICcuLi8uLi9zdHlsZXMnO1xuaW1wb3J0IFRvb2x0aXAgZnJvbSAnLi4vLi4vVG9vbHRpcCc7XG5cbmV4cG9ydCBjb25zdCBzdHlsZXMgPSB0aGVtZSA9PiAoe1xuICAgIGxhYmVsRGl2OiB7XG4gICAgICAgIGRpc3BsYXk6ICdpbmxpbmUtZmxleCcsXG4gICAgICAgIGFsaWduSXRlbXM6ICdiYXNlbGluZScsXG4gICAgICAgIG1heFdpZHRoOiAnY2FsYygxMDAlIC0gMzZweCknLFxuICAgIH0sXG4gICAgcGluczoge1xuICAgICAgICBwb3NpdGlvbjogJ3JlbGF0aXZlJyxcbiAgICAgICAgYm90dG9tOiAxLFxuICAgIH1cbn0pO1xuXG5jbGFzcyBDZWxsU3RhdHVzIGV4dGVuZHMgUmVhY3QuUHVyZUNvbXBvbmVudCB7XG4gICAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFVzZWZ1bCB0byBleHRlbmQgdGhlIHN0eWxlIGFwcGxpZWQgdG8gY29tcG9uZW50cy5cbiAgICAgICAgICovXG4gICAgICAgIGNsYXNzZXM6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBbT1BUSU9OQUxdIFVzZWZ1bCB0byBtb2RpZnkgdGhlIHRoZW1lIHVzZWQgYnkgY29tcG9uZW50cy5cbiAgICAgICAgICovXG4gICAgICAgIHRoZW1lOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgICAgICAvKipcbiAgICAgICAgICogTm9tYnJlIGQnb3DDqXJhdGlvbnMgZmluYW5jacOocmVzXG4gICAgICAgICAqL1xuICAgICAgICBuYk9wZXJhdGlvbnM6IFByb3BUeXBlcy5udW1iZXIsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBTdGF0dXQgY291cmFudCBkZSBsYSB0cmFuc2FjdGlvblxuICAgICAgICAgKi9cbiAgICAgICAgdmFsdWU6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5udW1iZXIsIFByb3BUeXBlcy5zdHJpbmddKS5pc1JlcXVpcmVkLFxuICAgICAgICAvKipcbiAgICAgICAgICogQ29kZSBkdSBzdGF0dXQgY291cmFudCBkZSBsYSB0cmFuc2FjdGlvbiAoZMOpdGVybWluZSBsYSBjb3VsZXVyIGR1IGxhYmVsKVxuICAgICAgICAgKi9cbiAgICAgICAgY29kZTogUHJvcFR5cGVzLm51bWJlci5pc1JlcXVpcmVkLFxuICAgICAgICAvKipcbiAgICAgICAgICogRm9uY3Rpb24gZGUgY2FsbGJhY2sgYXBwZWzDqWUgcG91ciBvdXZyaXIgbGVzIGxpZ25lcyBkZSBkw6l0YWlsc1xuICAgICAgICAgKi9cbiAgICAgICAgb25PcGVuRGV0YWlsczogUHJvcFR5cGVzLmZ1bmMsXG4gICAgfTtcblxuICAgIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgICAgIG5iT3BlcmF0aW9uczogMFxuICAgIH07XG5cbiAgICByZW5kZXIgKCkge1xuICAgICAgICBjb25zdCB7IGNsYXNzZXMsIHRoZW1lLCBuYk9wZXJhdGlvbnMsIHZhbHVlLCBjb2RlLCBvbk9wZW5EZXRhaWxzIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgICAgIGNvbnN0IGNvbG9yID0gdHlwZW9mIHRoZW1lLnBhbGV0dGUuc3RhdHVzW2NvZGVdICE9PSAndW5kZWZpbmVkJyA/IHRoZW1lLnBhbGV0dGUuc3RhdHVzW2NvZGVdIDogdGhlbWUucGFsZXR0ZS5uZXV0cmFsLm5vcm1hbDtcblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPFRvb2x0aXAgdGl0bGU9e3ZhbHVlfSBwbGFjZW1lbnQ9e3RoaXMucHJvcHMuc3RpY2t5ID8gJ3JpZ2h0JyA6ICdib3R0b20nfT5cbiAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICB7bmJPcGVyYXRpb25zID4gMCA/IChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtjbGFzc2VzLmxhYmVsRGl2fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SGlDb2xvcmVkTGFiZWwgbGFiZWw9e3ZhbHVlfSBjb2xvcj17Y29sb3J9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEhpUGlucyBjb2xvcj17Y29sb3J9IG9uQ2xpY2s9e29uT3BlbkRldGFpbHN9IGNsYXNzTmFtZT17Y2xhc3Nlcy5waW5zfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge25iT3BlcmF0aW9uc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0hpUGlucz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgICAgICAgPEhpQ29sb3JlZExhYmVsIGxhYmVsPXt2YWx1ZX0gY29sb3I9e2NvbG9yfSAvPlxuICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICApO1xuICAgIH1cbn1cbmV4cG9ydCBkZWZhdWx0IHdpdGhTdHlsZXMoc3R5bGVzLCB7IHdpdGhUaGVtZTogdHJ1ZSwgbmFtZTogJ0htdWlDZWxsU3RhdHVzJyB9KShDZWxsU3RhdHVzKTtcbiJdfQ==
106425
106515
 
106426
106516
  /***/ }),
106427
106517
  /* 2847 */
@@ -107234,7 +107324,8 @@ var ChildRow = function (_React$PureComponent) {
107234
107324
  dense = _props.dense,
107235
107325
  sticky = _props.sticky,
107236
107326
  view = _props.view,
107237
- other = _objectWithoutProperties(_props, ['classes', 'theme', 'onClose', 'parentRowId', 'parentRowDatas', 'parentIndicatorColumn', 'parentLabel', 'parentLabelIcon', 'children', 'columns', 'orderedColumns', 'selectable', 'selected', 'dateLocale', 'dense', 'sticky', 'view']);
107327
+ row = _props.row,
107328
+ other = _objectWithoutProperties(_props, ['classes', 'theme', 'onClose', 'parentRowId', 'parentRowDatas', 'parentIndicatorColumn', 'parentLabel', 'parentLabelIcon', 'children', 'columns', 'orderedColumns', 'selectable', 'selected', 'dateLocale', 'dense', 'sticky', 'view', 'row']);
107238
107329
 
107239
107330
  var indicator = '';
107240
107331
  if (parentIndicatorColumn && columns.hasOwnProperty(parentIndicatorColumn)) {
@@ -107262,10 +107353,7 @@ var ChildRow = function (_React$PureComponent) {
107262
107353
  _Table.TableBody,
107263
107354
  null,
107264
107355
  _react2.default.createElement(_BodyRow2.default, _extends({
107265
- row: {
107266
- rowId: parentRowId,
107267
- datas: parentRowDatas
107268
- },
107356
+ row: row,
107269
107357
  selectable: selectable,
107270
107358
  selected: selected,
107271
107359
  columns: columns,
@@ -107389,10 +107477,6 @@ ChildRow.propTypes = {
107389
107477
  * Données de la ligne parente
107390
107478
  */
107391
107479
  parentRowDatas: _propTypes2.default.object.isRequired,
107392
- /**
107393
- * Ligne des détails de la ligne parente
107394
- */
107395
- parentDetailRows: _propTypes2.default.array,
107396
107480
  /**
107397
107481
  * Indicateur du sous-ensemble (en général la date)
107398
107482
  */
@@ -107468,7 +107552,7 @@ ChildRow.defaultProps = {
107468
107552
  view: 'l'
107469
107553
  };
107470
107554
  exports.default = (0, _styles.withStyles)(styles, { withTheme: true, name: 'HmuiChildRow' })(ChildRow);
107471
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9IaVRhYmxlL0NoaWxkUm93LmpzIl0sIm5hbWVzIjpbImNzdCIsIm1kaSIsInN0eWxlcyIsInN1YlRhYmxlIiwicG9zaXRpb24iLCJ3aWR0aCIsIm92ZXJmbG93IiwiYmFja2dyb3VuZENvbG9yIiwidGhlbWUiLCJwYWxldHRlIiwiYmFja2dyb3VuZDMiLCJ6SW5kZXgiLCJ0aXRsZSIsInRvcCIsImN1cnNvciIsImZvbnRGYW1pbHkiLCJjb2xvciIsIm5ldXRyYWwiLCJub3JtYWwiLCJmb250U2l6ZSIsImhlaWdodCIsImluZGljYXRvclNwYW4iLCJwYWRkaW5nRGVmYXVsdCIsInBhZGRpbmciLCJ0aXRsZUljb24iLCJtYXJnaW5SaWdodCIsImlubmVySGVhZGVyRGl2IiwiaW5uZXJGb290ZXJEaXYiLCJpbm5lclBhdGNoRGl2IiwicGFyZW50TGFiZWwiLCJ0eXBvZ3JhcGh5IiwiYm9keTMiLCJmb250V2VpZ2h0IiwiZm9udFdlaWdodFJlZ3VsYXIiLCJwYXJlbnRMYWJlbEljb24iLCJwYXJlbnRMYWJlbEljb25EZW5zZSIsInBhcmVudEluZGljYXRvciIsImlubmVyRml4ZWRSaWdodERpdiIsInJpZ2h0IiwidGV4dEFsaWduIiwiQ2hpbGRSb3ciLCJwcm9wcyIsImhhbmRsZUNsb3NlIiwib25DbG9zZSIsInBhcmVudFJvd0lkIiwiYmluZCIsImNsYXNzZXMiLCJwYXJlbnRSb3dEYXRhcyIsInBhcmVudEluZGljYXRvckNvbHVtbiIsImNoaWxkcmVuIiwiY29sdW1ucyIsIm9yZGVyZWRDb2x1bW5zIiwic2VsZWN0YWJsZSIsInNlbGVjdGVkIiwiZGF0ZUxvY2FsZSIsImRlbnNlIiwic3RpY2t5IiwidmlldyIsIm90aGVyIiwiaW5kaWNhdG9yIiwiaGFzT3duUHJvcGVydHkiLCJ0eXBlIiwiVFlQRV9EQVRFIiwib3B0aW9ucyIsInllYXIiLCJtb250aCIsImRheSIsImhvdXIiLCJtaW51dGUiLCJ2YWx1ZSIsInRvTG9jYWxlU3RyaW5nIiwiaWNvbiIsIm1kaUljb24iLCJJY29uTmFtZSIsImNoaWxkcmVuUm93cyIsInJvd0lkIiwiZGF0YXMiLCJvblNlbGVjdCIsIm1hcCIsImNoaWxkIiwiQ0VMTF9IRUlHSFRfREVOU0UiLCJDRUxMX0hFSUdIVCIsInBhZGRpbmdMZWZ0IiwiREVGQVVMVF9QQURESU5HIiwibGluZUhlaWdodCIsImRpc3BsYXkiLCJhbGlnbkl0ZW1zIiwibGVuZ3RoIiwiUHVyZUNvbXBvbmVudCIsInByb3BUeXBlcyIsIm9iamVjdCIsImlzT3BlbiIsImJvb2wiLCJpc1JlcXVpcmVkIiwiZnVuYyIsIm51bWJlciIsInBhcmVudERldGFpbFJvd3MiLCJhcnJheSIsInN0cmluZyIsIm51bWJlckxvY2FsZSIsInRyYW5zbGF0aW9ucyIsIm9uZU9mIiwiZGVmYXVsdFByb3BzIiwid2l0aFRoZW1lIiwibmFtZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUVBOzs7O0FBQ0E7O0FBQ0E7Ozs7QUFDQTs7SUFBWUEsRzs7QUFDWjs7QUFDQTs7QUFDQTs7SUFBWUMsRzs7Ozs7Ozs7Ozs7Ozs7QUFFTCxJQUFNQywwQkFBUyxTQUFUQSxNQUFTO0FBQUEsV0FBVTtBQUM1QkMsa0JBQVU7QUFDTkMsc0JBQVUsVUFESjtBQUVOQyxtQkFBTyxNQUZEO0FBR05DLHNCQUFVLFFBSEo7QUFJTkMsNkJBQWlCQyxNQUFNQyxPQUFOLENBQWNDLFdBSnpCO0FBS05DLG9CQUFRO0FBTEYsU0FEa0I7QUFRNUJDLGVBQU87QUFDSFIsc0JBQVUsVUFEUDtBQUVIUyxpQkFBSyxDQUFDLEVBRkg7QUFHSEMsb0JBQVEsU0FITDtBQUlIQyx3QkFBWSxzQ0FKVDtBQUtIQyxtQkFBT1IsTUFBTUMsT0FBTixDQUFjUSxPQUFkLENBQXNCQyxNQUwxQjtBQU1IQyxzQkFBVSxFQU5QO0FBT0hDLG9CQUFRLEVBUEw7QUFRSGYsbUJBQU87QUFSSixTQVJxQjtBQWtCNUJnQix1QkFBZTtBQUNYakIsc0JBQVU7QUFEQyxTQWxC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ZG9zc2FudG9zL2Rldi9oaXBheS1tYXRlcmlhbC11aSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgVGFibGUsIHsgVGFibGVCb2R5LCBUYWJsZVJvdywgVGFibGVDZWxsIH0gZnJvbSAnbWF0ZXJpYWwtdWkvVGFibGUnO1xuaW1wb3J0IENvbGxhcHNlIGZyb20gJ21hdGVyaWFsLXVpL3RyYW5zaXRpb25zL0NvbGxhcHNlJztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5cbmltcG9ydCBIaVBpbnMgZnJvbSAnLi4vSGlQaW5zJztcbmltcG9ydCB7IHdpdGhTdHlsZXMsIHdpdGhUaGVtZSB9IGZyb20gJy4uL3N0eWxlcyc7XG5pbXBvcnQgQm9keVJvdyBmcm9tICcuL0JvZHlSb3cnO1xuaW1wb3J0ICogYXMgY3N0IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgY2FwaXRhbGl6ZUZpcnN0TGV0dGVyIH0gZnJvbSBcIi4uL3V0aWxzL2hlbHBlcnNcIjtcbmltcG9ydCB7IGNhbWVsaXplIH0gZnJvbSBcIi4uL3V0aWxzL2hpSGVscGVyc1wiO1xuaW1wb3J0ICogYXMgbWRpIGZyb20gXCJtZGktbWF0ZXJpYWwtdWlcIjtcblxuZXhwb3J0IGNvbnN0IHN0eWxlcyA9IHRoZW1lID0+ICh7XG4gICAgc3ViVGFibGU6IHtcbiAgICAgICAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgIG92ZXJmbG93OiAnaGlkZGVuJyxcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS5wYWxldHRlLmJhY2tncm91bmQzLFxuICAgICAgICB6SW5kZXg6IDEwLFxuICAgIH0sXG4gICAgdGl0bGU6IHtcbiAgICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgICAgIHRvcDogLTQwLFxuICAgICAgICBjdXJzb3I6ICdwb2ludGVyJyxcbiAgICAgICAgZm9udEZhbWlseTogJ1JvYm90bywgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZicsXG4gICAgICAgIGNvbG9yOiB0aGVtZS5wYWxldHRlLm5ldXRyYWwubm9ybWFsLFxuICAgICAgICBmb250U2l6ZTogMTMsXG4gICAgICAgIGhlaWdodDogNDAsXG4gICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgfSxcbiAgICBpbmRpY2F0b3JTcGFuOiB7XG4gICAgICAgIHBvc2l0aW9uOiAncmVsYXRpdmUnLFxuICAgIH0sXG4gICAgcGFkZGluZ0RlZmF1bHQ6IHtcbiAgICAgICAgcGFkZGluZzogJzRweCAwcHgnLFxuICAgIH0sXG4gICAgdGl0bGVJY29uOiB7XG4gICAgICAgIHdpZHRoOiAnMThweCcsXG4gICAgICAgIGhlaWdodDogJzE4cHgnLFxuICAgICAgICBwb3NpdGlvbjogJ3JlbGF0aXZlJyxcbiAgICAgICAgdG9wOiA1LFxuICAgICAgICBtYXJnaW5SaWdodDogMTAsXG4gICAgfSxcbiAgICBpbm5lckhlYWRlckRpdjoge1xuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjRUNFRkYwJyxcbiAgICAgICAgY29sb3I6ICcjNzM3MzczJyxcbiAgICAgICAgY3Vyc29yOiAncG9pbnRlcicsXG4gICAgICAgIHBhZGRpbmc6IDAsXG4gICAgfSxcbiAgICBpbm5lckZvb3RlckRpdjoge1xuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjRUNFRkYwJyxcbiAgICAgICAgcGFkZGluZzogMCxcbiAgICB9LFxuICAgIGlubmVyUGF0Y2hEaXY6IHtcbiAgICAgICAgaGVpZ2h0OiAnMTAwJScsXG4gICAgICAgIHpJbmRleDogMTMsXG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogJyNFQ0VGRjAnLFxuICAgIH0sXG4gICAgcGFyZW50TGFiZWw6IHtcbiAgICAgICAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gICAgICAgIC4uLnRoZW1lLnR5cG9ncmFwaHkuYm9keTMsXG4gICAgICAgIGZvbnRXZWlnaHQ6IHRoZW1lLnR5cG9ncmFwaHkuZm9udFdlaWdodFJlZ3VsYXIsXG4gICAgfSxcbiAgICBwYXJlbnRMYWJlbEljb246IHtcbiAgICAgICAgY29sb3I6IHRoZW1lLnBhbGV0dGUubmV1dHJhbC5ub3JtYWwsXG4gICAgICAgIHdpZHRoOiA0MCxcbiAgICAgICAgaGVpZ2h0OiA0MCxcbiAgICAgICAgcGFkZGluZzogMTEsXG4gICAgfSxcbiAgICBwYXJlbnRMYWJlbEljb25EZW5zZToge1xuICAgICAgICBjb2xvcjogdGhlbWUucGFsZXR0ZS5uZXV0cmFsLm5vcm1hbCxcbiAgICAgICAgd2lkdGg6IDMyLFxuICAgICAgICBoZWlnaHQ6IDMyLFxuICAgICAgICBwYWRkaW5nOiA3LFxuICAgIH0sXG4gICAgcGFyZW50SW5kaWNhdG9yOiB7XG4gICAgICAgIHBvc2l0aW9uOiAncmVsYXRpdmUnLFxuICAgICAgICAuLi50aGVtZS50eXBvZ3JhcGh5LmJvZHkzLFxuICAgICAgICBmb250V2VpZ2h0OiB0aGVtZS50eXBvZ3JhcGh5LmZvbnRXZWlnaHRSZWd1bGFyLFxuICAgIH0sXG4gICAgaW5uZXJGaXhlZFJpZ2h0RGl2OiB7XG4gICAgICAgIHJpZ2h0OiAwLFxuICAgICAgICB0ZXh0QWxpZ246ICdyaWdodCcsXG4gICAgfSxcbn0pO1xuXG4vKipcbiAqIENoaWxkUm93IGVzdCB1bmUgbGlnbmUgZCd1biB0YWJsZWF1LFxuICogZWxsZSBlc3QgYWZmaWNow6llIGNvbW1lIHVuIHNvdXMtdGFibGVhdSDDoCBsJ2ludMOpcmlldXIgZGUgbGEgbGlnbmUgYXZlYyB1bmUgYm9yZHVyZSBhdXRvdXJcbiAqIGNlIHNvdXMtdGFibGVhdSBjb250aWVudCB1bmUgb3UgcGx1c2lldXJzIGxpZ25lcyBkZSBkb25uw6llIGR1IE3Dik1FIFRZUEUgb3Ugw6lxdWl2YWxlbnRlcyBxdWUgbGUgdGFibGVhdSBwYXJlbnQgKGV4OiB0cmFuc2FjdGlvbnMgPiBvcMOpcmF0aW9ucylcbiAqL1xuY2xhc3MgQ2hpbGRSb3cgZXh0ZW5kcyBSZWFjdC5QdXJlQ29tcG9uZW50XG57XG4gICAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFV0aWxlIHBvdXIgc3VyY2hhcmdlciBsZSBzdHlsZSBhcHBsaXF1w6kgYXV4IGNvbXBvc2FudHNcbiAgICAgICAgICovXG4gICAgICAgIGNsYXNzZXM6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBEw6l0ZXJtaW5lIHNpIGxhIGxpZ25lIHNlcmEgYWZmaWNow6llIG91IG5vblxuICAgICAgICAgKi9cbiAgICAgICAgaXNPcGVuOiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkLFxuICAgICAgICAvKipcbiAgICAgICAgICogRm9uY3Rpb24gZGUgY2FsbGJhY2sgcG91ciBjb2xsYXBzZXIgbGEgbGlnbmVcbiAgICAgICAgICovXG4gICAgICAgIG9uQ2xvc2U6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJZCBkZSBsYSBsaWduZSBwYXJlbnRlXG4gICAgICAgICAqL1xuICAgICAgICBwYXJlbnRSb3dJZDogUHJvcFR5cGVzLm51bWJlci5pc1JlcXVpcmVkLFxuICAgICAgICAvKipcbiAgICAgICAgICogRG9ubsOpZXMgZGUgbGEgbGlnbmUgcGFyZW50ZVxuICAgICAgICAgKi9cbiAgICAgICAgcGFyZW50Um93RGF0YXM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIExpZ25lIGRlcyBkw6l0YWlscyBkZSBsYSBsaWduZSBwYXJlbnRlXG4gICAgICAgICAqL1xuICAgICAgICBwYXJlbnREZXRhaWxSb3dzOiBQcm9wVHlwZXMuYXJyYXksXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJbmRpY2F0ZXVyIGR1IHNvdXMtZW5zZW1ibGUgKGVuIGfDqW7DqXJhbCBsYSBkYXRlKVxuICAgICAgICAgKi9cbiAgICAgICAgcGFyZW50SW5kaWNhdG9yQ29sdW1uOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgICAvKipcbiAgICAgICAgICogTGFiZWwgZHUgc291cy1lbnNlbWJsZVxuICAgICAgICAgKi9cbiAgICAgICAgcGFyZW50TGFiZWw6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJY29uZSBhc3NvY2nDqWUgYXUgbGFiZWwgZHUgc291cy1lbnNlbWJsZVxuICAgICAgICAgKi9cbiAgICAgICAgcGFyZW50TGFiZWxJY29uOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgICAvKipcbiAgICAgICAgICogTGlzdGUgZGVzIGRvbm7DqWVzIGRlcyBlbmZhbnRzXG4gICAgICAgICAqL1xuICAgICAgICBjaGlsZHJlbjogUHJvcFR5cGVzLmFycmF5LmlzUmVxdWlyZWQsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBDb2xvbm5lcyBkdSB0YWJsZWF1IChsYWJlbCwgbGFyZ2V1ciwgZG9ubsOpZXMsIC4uLiApXG4gICAgICAgICAqL1xuICAgICAgICBjb2x1bW5zOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUYWJsZWF1IGRlcyBjb2xvbm5lcyBhZmZpY2jDqWVzIChvcmRvbm7DqWVzLCB2aXNpYmxlcy9jYWNow6llcywgbC9tL3MpXG4gICAgICAgICAqL1xuICAgICAgICBvcmRlcmVkQ29sdW1uczogUHJvcFR5cGVzLmFycmF5LmlzUmVxdWlyZWQsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBEw6lmaW5pdCBzaSB1bmUgY2hlY2tib3ggZXN0IHByw6lzZW50ZSBlbiBkw6lidXQgZGUgbGlnbmVcbiAgICAgICAgICovXG4gICAgICAgIHNlbGVjdGFibGU6IFByb3BUeXBlcy5ib29sLFxuICAgICAgICAvKipcbiAgICAgICAgICogRm9uY3Rpb24gZGUgY2FsbGJhY2sgYXBwZWzDqSBhdSBjaGFuZ2UgZGUgbGEgY2hlY2tib3ggcHLDqXNlbnRlIHNpIHByb3Agc2VsZWN0YWJsZSA9IHRydWVcbiAgICAgICAgICovXG4gICAgICAgIG9uU2VsZWN0OiBQcm9wVHlwZXMuZnVuYyxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIETDqWZpbml0IHNpIGxhIGNoZWNrYm94IGVzdCBjb2Now6llXG4gICAgICAgICAqL1xuICAgICAgICBzZWxlY3RlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBMb2NhbGUgdXRpbGlzw6kgcG91ciBsZSBmb3JtYXQgZGVzIGRhdGVzXG4gICAgICAgICAqL1xuICAgICAgICBkYXRlTG9jYWxlOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgICAvKipcbiAgICAgICAgICogTG9jYWxlIHV0aWxpc8OpIHBvdXIgbGUgZm9ybWF0IGRlcyBub21icmVzXG4gICAgICAgICAqL1xuICAgICAgICBudW1iZXJMb2NhbGU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBEZW5zaXTDqSBkJ2FmZmljaGFnZSAoam91ZSBzdXIgbGEgaGF1dGV1ciBkZXMgbGlnbmVzKVxuICAgICAgICAgKi9cbiAgICAgICAgZGVuc2U6IFByb3BUeXBlcy5ib29sLFxuICAgICAgICAvKipcbiAgICAgICAgICogRml4ZSBsYSBwcmVtacOocmUgY29sb25uZVxuICAgICAgICAgKi9cbiAgICAgICAgc3RpY2t5OiBQcm9wVHlwZXMuYm9vbCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRyYWR1Y3Rpb24gZGVzIGNoYcOubmVzIGFmZmljaMOpZXNcbiAgICAgICAgICovXG4gICAgICAgIHRyYW5zbGF0aW9uczogUHJvcFR5cGVzLm9iamVjdCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRhaWxsZSBkdSB0YWJsZWF1IChML00vUyksIGTDqWZpbml0IGwnZXNwYWNlIGVudHJlIGxlcyBjZWxsdWxlcyBldCBsZXVycyB0YWlsbGVzIHBhciBkZWZhdWx0XG4gICAgICAgICAqL1xuICAgICAgICB2aWV3OiBQcm9wVHlwZXMub25lT2YoWydsJywnbScsJ3MnXSksXG4gICAgfTtcblxuICAgIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgICAgIGlzT3BlbjogZmFsc2UsXG4gICAgICAgIHBhcmVudEluZGljYXRvckNvbHVtbjogbnVsbCxcbiAgICAgICAgcGFyZW50TGFiZWw6ICcnLFxuICAgICAgICBzZWxlY3RhYmxlOiBmYWxzZSxcbiAgICAgICAgc2VsZWN0ZWQ6IGZhbHNlLFxuICAgICAgICBkYXRlTG9jYWxlOiAnZW4tRU4nLFxuICAgICAgICBudW1iZXJMb2NhbGU6ICdlbi1FTicsXG4gICAgICAgIGRlbnNlOiBmYWxzZSxcbiAgICAgICAgc3RpY2t5OiB0cnVlLFxuICAgICAgICB0cmFuc2xhdGlvbnM6IHt9LFxuICAgICAgICB2aWV3OiAnbCcsXG4gICAgfTtcblxuICAgIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgICAgIHN1cGVyKHByb3BzKTtcblxuICAgICAgICB0aGlzLmhhbmRsZUNsb3NlID0gdGhpcy5oYW5kbGVDbG9zZS5iaW5kKHRoaXMpO1xuICAgIH1cblxuICAgIGhhbmRsZUNsb3NlID0gKCkgPT4ge1xuICAgICAgICB0aGlzLnByb3BzLm9uQ2xvc2UodGhpcy5wcm9wcy5wYXJlbnRSb3dJZCk7XG4gICAgfTtcblxuICAgIHJlbmRlciAoKSB7XG4gICAgICAgIGNvbnN0IHtcbiAgICAgICAgICAgIGNsYXNzZXMsIHRoZW1lLCBvbkNsb3NlLFxuICAgICAgICAgICAgcGFyZW50Um93SWQsIHBhcmVudFJvd0RhdGFzLFxuICAgICAgICAgICAgcGFyZW50SW5kaWNhdG9yQ29sdW1uLCBwYXJlbnRMYWJlbCwgcGFyZW50TGFiZWxJY29uLFxuICAgICAgICAgICAgY2hpbGRyZW4sIGNvbHVtbnMsIG9yZGVyZWRDb2x1bW5zLFxuICAgICAgICAgICAgc2VsZWN0YWJsZSwgc2VsZWN0ZWQsXG4gICAgICAgICAgICBkYXRlTG9jYWxlLCBkZW5zZSwgc3RpY2t5LCB2aWV3LFxuICAgICAgICAgICAgLi4ub3RoZXJcbiAgICAgICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICAgICAgbGV0IGluZGljYXRvciA9ICcnO1xuICAgICAgICBpZihwYXJlbnRJbmRpY2F0b3JDb2x1bW4gJiYgY29sdW1ucy5oYXNPd25Qcm9wZXJ0eShwYXJlbnRJbmRpY2F0b3JDb2x1bW4pKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKGNvbHVtbnNbcGFyZW50SW5kaWNhdG9yQ29sdW1uXS50eXBlKVxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNhc2UgY3N0LlRZUEVfREFURTpcbiAgICAgICAgICAgICAgICAgICAgbGV0IG9wdGlvbnMgPSB7IHllYXI6IFwibnVtZXJpY1wiLCBtb250aDogXCIyLWRpZ2l0XCIsIGRheTogXCIyLWRpZ2l0XCIsIGhvdXI6IFwiMi1kaWdpdFwiLCBtaW51dGU6IFwiMi1kaWdpdFwifTtcbiAgICAgICAgICAgICAgICAgICAgaW5kaWNhdG9yID0gcGFyZW50Um93RGF0YXNbcGFyZW50SW5kaWNhdG9yQ29sdW1uXS52YWx1ZS50b0xvY2FsZVN0cmluZyhkYXRlTG9jYWxlLCBvcHRpb25zKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuXG4gICAgICAgIC8vIER5bmFtaWMgYnVpbGQgb2YgaWNvbiBjb21wb25lbnRcbiAgICAgICAgbGV0IGljb24gPSBudWxsO1xuICAgICAgICBpZiAocGFyZW50TGFiZWxJY29uKSB7XG4gICAgICAgICAgICBsZXQgbWRpSWNvbiA9IGNhcGl0YWxpemVGaXJzdExldHRlcihjYW1lbGl6ZShwYXJlbnRMYWJlbEljb24pKTtcbiAgICAgICAgICAgIGNvbnN0IEljb25OYW1lID0gbWRpW21kaUljb25dO1xuICAgICAgICAgICAgaWNvbiA9IDxJY29uTmFtZSBjbGFzc05hbWU9e2RlbnNlID8gY2xhc3Nlcy5wYXJlbnRMYWJlbEljb25EZW5zZSA6IGNsYXNzZXMucGFyZW50TGFiZWxJY29ufS8+O1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGNoaWxkcmVuUm93cyA9ICgpID0+IChcblxuICAgICAgICAgICAgPFRhYmxlIGNsYXNzTmFtZT17Y2xhc3Nlcy5zdWJUYWJsZX0gaWQ9eydzdWJUYWJsZSd9PlxuICAgICAgICAgICAgICAgIDxUYWJsZUJvZHk+XG4gICAgICAgICAgICAgICAgICAgIDxCb2R5Um93XG4gICAgICAgICAgICAgICAgICAgICAgICByb3c9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dJZDogcGFyZW50Um93SWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YXM6IHBhcmVudFJvd0RhdGFzXG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0YWJsZT17c2VsZWN0YWJsZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkPXtzZWxlY3RlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbnM9e2NvbHVtbnN9XG4gICAgICAgICAgICAgICAgICAgICAgICBvcmRlcmVkQ29sdW1ucz17b3JkZXJlZENvbHVtbnN9XG4gICAgICAgICAgICAgICAgICAgICAgICB2aWV3PXt2aWV3fVxuICAgICAgICAgICAgICAgICAgICAgICAgZGVuc2U9e2RlbnNlfVxuICAgICAgICAgICAgICAgICAgICAgICAgb25TZWxlY3Q9e3RoaXMucHJvcHMub25TZWxlY3R9XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGlja3k9e3N0aWNreX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlubmVyUm93PXt0cnVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgey4uLm90aGVyfVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICB7Y2hpbGRyZW4ubWFwKChjaGlsZCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Qm9keVJvd1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e3BhcmVudFJvd0lkKyctJytjaGlsZC5yb3dJZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93PXtjaGlsZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0YWJsZT17ZmFsc2V9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbnM9e2NvbHVtbnN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yZGVyZWRDb2x1bW5zPXtvcmRlcmVkQ29sdW1uc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlldz17dmlld31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVuc2U9e2RlbnNlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGlja3k9e3N0aWNreX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5uZXJSb3c9e3RydWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsuLi5vdGhlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgICAgPC9UYWJsZUJvZHk+XG4gICAgICAgICAgICA8L1RhYmxlPlxuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8VGFibGVSb3c+XG4gICAgICAgICAgICAgICAgPFRhYmxlQ2VsbCBjb2xTcGFuPXsxMDAwfSBzdHlsZT17e3BhZGRpbmc6MH19PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzZXMuaW5uZXJIZWFkZXJEaXZ9XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogZGVuc2UgPyBjc3QuQ0VMTF9IRUlHSFRfREVOU0UgOiBjc3QuQ0VMTF9IRUlHSFQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZ0xlZnQ6IGNzdC5ERUZBVUxUX1BBRERJTkdbdmlld11cbiAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXtvbkNsb3NlfVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgZmxvYXRpbmctcGFyZW50LXJvdy1sYWJlbCAke2NsYXNzZXMucGFyZW50TGFiZWx9YH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IChkZW5zZSA/IGNzdC5DRUxMX0hFSUdIVF9ERU5TRSA6IGNzdC5DRUxMX0hFSUdIVCkgKyAncHgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lSGVpZ2h0OiAoZGVuc2UgPyBjc3QuQ0VMTF9IRUlHSFRfREVOU0UgOiBjc3QuQ0VMTF9IRUlHSFQpICsgJ3B4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogJ2lubGluZS1mbGV4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aWNvbn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cGFyZW50TGFiZWx9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEhpUGlucyBjb2xvcj17dGhlbWUucGFsZXR0ZS5uZXV0cmFsLm5vcm1hbH0+e2NoaWxkcmVuLmxlbmd0aH08L0hpUGlucz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByaWdodDogMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogJ2lubGluZS1mbGV4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogKGRlbnNlID8gY3N0LkNFTExfSEVJR0hUX0RFTlNFIDogY3N0LkNFTExfSEVJR0hUKSArICdweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVIZWlnaHQ6IChkZW5zZSA/IGNzdC5DRUxMX0hFSUdIVF9ERU5TRSA6IGNzdC5DRUxMX0hFSUdIVCkgKyAncHgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2BmbG9hdGluZy1wYXJlbnQtcm93LWluZGljYXRvciAke2NsYXNzZXMucGFyZW50SW5kaWNhdG9yfWB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW5SaWdodDogY3N0LkRFRkFVTFRfUEFERElOR1t2aWV3XVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2luZGljYXRvcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPENvbGxhcHNlIGNvbXBvbmVudD17Y2hpbGRyZW5Sb3dzfSBpbj17dHJ1ZX0gdGltZW91dD1cImF1dG9cIiB1bm1vdW50T25FeGl0IC8+XG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3Nlcy5pbm5lckZvb3RlckRpdn1cbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBkZW5zZSA/IGNzdC5DRUxMX0hFSUdIVF9ERU5TRSA6IGNzdC5DRUxMX0hFSUdIVCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nTGVmdDogY3N0LkRFRkFVTFRfUEFERElOR1t2aWV3XVxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L1RhYmxlQ2VsbD5cbiAgICAgICAgICAgIDwvVGFibGVSb3c+XG4gICAgICAgICk7XG4gICAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCB3aXRoU3R5bGVzKHN0eWxlcywgeyB3aXRoVGhlbWU6IHRydWUsIG5hbWU6ICdIbXVpQ2hpbGRSb3cnIH0pKENoaWxkUm93KTtcbiJdfQ==
107555
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9IaVRhYmxlL0NoaWxkUm93LmpzIl0sIm5hbWVzIjpbImNzdCIsIm1kaSIsInN0eWxlcyIsInN1YlRhYmxlIiwicG9zaXRpb24iLCJ3aWR0aCIsIm92ZXJmbG93IiwiYmFja2dyb3VuZENvbG9yIiwidGhlbWUiLCJwYWxldHRlIiwiYmFja2dyb3VuZDMiLCJ6SW5kZXgiLCJ0aXRsZSIsInRvcCIsImN1cnNvciIsImZvbnRGYW1pbHkiLCJjb2xvciIsIm5ldXRyYWwiLCJub3JtYWwiLCJmb250U2l6ZSIsImhlaWdodCIsImluZGljYXRvclNwYW4iLCJwYWRkaW5nRGVmYXVsdCIsInBhZGRpbmciLCJ0aXRsZUljb24iLCJtYXJnaW5SaWdodCIsImlubmVySGVhZGVyRGl2IiwiaW5uZXJGb290ZXJEaXYiLCJpbm5lclBhdGNoRGl2IiwicGFyZW50TGFiZWwiLCJ0eXBvZ3JhcGh5IiwiYm9keTMiLCJmb250V2VpZ2h0IiwiZm9udFdlaWdodFJlZ3VsYXIiLCJwYXJlbnRMYWJlbEljb24iLCJwYXJlbnRMYWJlbEljb25EZW5zZSIsInBhcmVudEluZGljYXRvciIsImlubmVyRml4ZWRSaWdodERpdiIsInJpZ2h0IiwidGV4dEFsaWduIiwiQ2hpbGRSb3ciLCJwcm9wcyIsImhhbmRsZUNsb3NlIiwib25DbG9zZSIsInBhcmVudFJvd0lkIiwiYmluZCIsImNsYXNzZXMiLCJwYXJlbnRSb3dEYXRhcyIsInBhcmVudEluZGljYXRvckNvbHVtbiIsImNoaWxkcmVuIiwiY29sdW1ucyIsIm9yZGVyZWRDb2x1bW5zIiwic2VsZWN0YWJsZSIsInNlbGVjdGVkIiwiZGF0ZUxvY2FsZSIsImRlbnNlIiwic3RpY2t5IiwidmlldyIsInJvdyIsIm90aGVyIiwiaW5kaWNhdG9yIiwiaGFzT3duUHJvcGVydHkiLCJ0eXBlIiwiVFlQRV9EQVRFIiwib3B0aW9ucyIsInllYXIiLCJtb250aCIsImRheSIsImhvdXIiLCJtaW51dGUiLCJ2YWx1ZSIsInRvTG9jYWxlU3RyaW5nIiwiaWNvbiIsIm1kaUljb24iLCJJY29uTmFtZSIsImNoaWxkcmVuUm93cyIsIm9uU2VsZWN0IiwibWFwIiwiY2hpbGQiLCJyb3dJZCIsIkNFTExfSEVJR0hUX0RFTlNFIiwiQ0VMTF9IRUlHSFQiLCJwYWRkaW5nTGVmdCIsIkRFRkFVTFRfUEFERElORyIsImxpbmVIZWlnaHQiLCJkaXNwbGF5IiwiYWxpZ25JdGVtcyIsImxlbmd0aCIsIlB1cmVDb21wb25lbnQiLCJwcm9wVHlwZXMiLCJvYmplY3QiLCJpc09wZW4iLCJib29sIiwiaXNSZXF1aXJlZCIsImZ1bmMiLCJudW1iZXIiLCJzdHJpbmciLCJhcnJheSIsIm51bWJlckxvY2FsZSIsInRyYW5zbGF0aW9ucyIsIm9uZU9mIiwiZGVmYXVsdFByb3BzIiwid2l0aFRoZW1lIiwibmFtZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUVBOzs7O0FBQ0E7O0FBQ0E7Ozs7QUFDQTs7SUFBWUEsRzs7QUFDWjs7QUFDQTs7QUFDQTs7SUFBWUMsRzs7Ozs7Ozs7Ozs7Ozs7QUFFTCxJQUFNQywwQkFBUyxTQUFUQSxNQUFTO0FBQUEsV0FBVTtBQUM1QkMsa0JBQVU7QUFDTkMsc0JBQVUsVUFESjtBQUVOQyxtQkFBTyxNQUZEO0FBR05DLHNCQUFVLFFBSEo7QUFJTkMsNkJBQWlCQyxNQUFNQyxPQUFOLENBQWNDLFdBSnpCO0FBS05DLG9CQUFRO0FBTEYsU0FEa0I7QUFRNUJDLGVBQU87QUFDSFIsc0JBQVUsVUFEUDtBQUVIUyxpQkFBSyxDQUFDLEVBRkg7QUFHSEMsb0JBQVEsU0FITDtBQUlIQyx3QkFBWSxzQ0FKVDtBQUtIQyxtQkFBT1IsTUFBTUMsT0FBTixDQUFjUSxPQUFkLENBQXNCQyxNQUwxQjtBQU1IQyxzQkFBVSxFQU5QO0FBT0hDLG9CQUFRLEVBUEw7QUFRSGYsbUJBQU87QUFSSixTQVJxQjtBQWtCNUJnQix1QkFBZTtBQUNYakIsc0JBQVU7QUFEQyxTQWxCYTtBQXFCNUJrQix3QkFBZ0I7QUFD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QyxjQUFVLG9CQUFVZ0QsS0FBVixDQUFnQkosVUFwQ1g7QUFxQ2Y7OztBQUdBM0MsYUFBUyxvQkFBVXdDLE1BQVYsQ0FBaUJHLFVBeENYO0FBeUNmOzs7QUFHQTFDLG9CQUFnQixvQkFBVThDLEtBQVYsQ0FBZ0JKLFVBNUNqQjtBQTZDZjs7O0FBR0F6QyxnQkFBWSxvQkFBVXdDLElBaERQO0FBaURmOzs7QUFHQWhCLGNBQVUsb0JBQVVrQixJQXBETDtBQXFEZjs7O0FBR0F6QyxjQUFVLG9CQUFVdUMsSUF4REw7QUF5RGY7OztBQUdBdEMsZ0JBQVksb0JBQVUwQyxNQTVEUDtBQTZEZjs7O0FBR0FFLGtCQUFjLG9CQUFVRixNQWhFVDtBQWlFZjs7O0FBR0F6QyxXQUFPLG9CQUFVcUMsSUFwRUY7QUFxRWY7OztBQUdBcEMsWUFBUSxvQkFBVW9DLElBeEVIO0FBeUVmOzs7QUFHQU8sa0JBQWMsb0JBQVVULE1BNUVUO0FBNkVmOzs7QUFHQWpDLFVBQU0sb0JBQVUyQyxLQUFWLENBQWdCLENBQUMsR0FBRCxFQUFLLEdBQUwsRUFBUyxHQUFULENBQWhCO0FBaEZTLEM7QUFGakI1RCxRLENBcUZLNkQsWSxHQUFlO0FBQ2xCVixZQUFRLEtBRFU7QUFFbEIzQywyQkFBdUIsSUFGTDtBQUdsQm5CLGlCQUFhLEVBSEs7QUFJbEJ1QixnQkFBWSxLQUpNO0FBS2xCQyxjQUFVLEtBTFE7QUFNbEJDLGdCQUFZLE9BTk07QUFPbEI0QyxrQkFBYyxPQVBJO0FBUWxCM0MsV0FBTyxLQVJXO0FBU2xCQyxZQUFRLElBVFU7QUFVbEIyQyxrQkFBYyxFQVZJO0FBV2xCMUMsVUFBTTtBQVhZLEM7a0JBc0pYLHdCQUFXdkQsTUFBWCxFQUFtQixFQUFFb0csV0FBVyxJQUFiLEVBQW1CQyxNQUFNLGNBQXpCLEVBQW5CLEVBQThEL0QsUUFBOUQsQyIsImZpbGUiOiJDaGlsZFJvdy5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS92ZG9zc2FudG9zL2Rldi9oaXBheS1tYXRlcmlhbC11aSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgVGFibGUsIHsgVGFibGVCb2R5LCBUYWJsZVJvdywgVGFibGVDZWxsIH0gZnJvbSAnbWF0ZXJpYWwtdWkvVGFibGUnO1xuaW1wb3J0IENvbGxhcHNlIGZyb20gJ21hdGVyaWFsLXVpL3RyYW5zaXRpb25zL0NvbGxhcHNlJztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5cbmltcG9ydCBIaVBpbnMgZnJvbSAnLi4vSGlQaW5zJztcbmltcG9ydCB7IHdpdGhTdHlsZXMsIHdpdGhUaGVtZSB9IGZyb20gJy4uL3N0eWxlcyc7XG5pbXBvcnQgQm9keVJvdyBmcm9tICcuL0JvZHlSb3cnO1xuaW1wb3J0ICogYXMgY3N0IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgY2FwaXRhbGl6ZUZpcnN0TGV0dGVyIH0gZnJvbSBcIi4uL3V0aWxzL2hlbHBlcnNcIjtcbmltcG9ydCB7IGNhbWVsaXplIH0gZnJvbSBcIi4uL3V0aWxzL2hpSGVscGVyc1wiO1xuaW1wb3J0ICogYXMgbWRpIGZyb20gXCJtZGktbWF0ZXJpYWwtdWlcIjtcblxuZXhwb3J0IGNvbnN0IHN0eWxlcyA9IHRoZW1lID0+ICh7XG4gICAgc3ViVGFibGU6IHtcbiAgICAgICAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgIG92ZXJmbG93OiAnaGlkZGVuJyxcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS5wYWxldHRlLmJhY2tncm91bmQzLFxuICAgICAgICB6SW5kZXg6IDEwLFxuICAgIH0sXG4gICAgdGl0bGU6IHtcbiAgICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgICAgIHRvcDogLTQwLFxuICAgICAgICBjdXJzb3I6ICdwb2ludGVyJyxcbiAgICAgICAgZm9udEZhbWlseTogJ1JvYm90bywgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZicsXG4gICAgICAgIGNvbG9yOiB0aGVtZS5wYWxldHRlLm5ldXRyYWwubm9ybWFsLFxuICAgICAgICBmb250U2l6ZTogMTMsXG4gICAgICAgIGhlaWdodDogNDAsXG4gICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgfSxcbiAgICBpbmRpY2F0b3JTcGFuOiB7XG4gICAgICAgIHBvc2l0aW9uOiAncmVsYXRpdmUnLFxuICAgIH0sXG4gICAgcGFkZGluZ0RlZmF1bHQ6IHtcbiAgICAgICAgcGFkZGluZzogJzRweCAwcHgnLFxuICAgIH0sXG4gICAgdGl0bGVJY29uOiB7XG4gICAgICAgIHdpZHRoOiAnMThweCcsXG4gICAgICAgIGhlaWdodDogJzE4cHgnLFxuICAgICAgICBwb3NpdGlvbjogJ3JlbGF0aXZlJyxcbiAgICAgICAgdG9wOiA1LFxuICAgICAgICBtYXJnaW5SaWdodDogMTAsXG4gICAgfSxcbiAgICBpbm5lckhlYWRlckRpdjoge1xuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjRUNFRkYwJyxcbiAgICAgICAgY29sb3I6ICcjNzM3MzczJyxcbiAgICAgICAgY3Vyc29yOiAncG9pbnRlcicsXG4gICAgICAgIHBhZGRpbmc6IDAsXG4gICAgfSxcbiAgICBpbm5lckZvb3RlckRpdjoge1xuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjRUNFRkYwJyxcbiAgICAgICAgcGFkZGluZzogMCxcbiAgICB9LFxuICAgIGlubmVyUGF0Y2hEaXY6IHtcbiAgICAgICAgaGVpZ2h0OiAnMTAwJScsXG4gICAgICAgIHpJbmRleDogMTMsXG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogJyNFQ0VGRjAnLFxuICAgIH0sXG4gICAgcGFyZW50TGFiZWw6IHtcbiAgICAgICAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gICAgICAgIC4uLnRoZW1lLnR5cG9ncmFwaHkuYm9keTMsXG4gICAgICAgIGZvbnRXZWlnaHQ6IHRoZW1lLnR5cG9ncmFwaHkuZm9udFdlaWdodFJlZ3VsYXIsXG4gICAgfSxcbiAgICBwYXJlbnRMYWJlbEljb246IHtcbiAgICAgICAgY29sb3I6IHRoZW1lLnBhbGV0dGUubmV1dHJhbC5ub3JtYWwsXG4gICAgICAgIHdpZHRoOiA0MCxcbiAgICAgICAgaGVpZ2h0OiA0MCxcbiAgICAgICAgcGFkZGluZzogMTEsXG4gICAgfSxcbiAgICBwYXJlbnRMYWJlbEljb25EZW5zZToge1xuICAgICAgICBjb2xvcjogdGhlbWUucGFsZXR0ZS5uZXV0cmFsLm5vcm1hbCxcbiAgICAgICAgd2lkdGg6IDMyLFxuICAgICAgICBoZWlnaHQ6IDMyLFxuICAgICAgICBwYWRkaW5nOiA3LFxuICAgIH0sXG4gICAgcGFyZW50SW5kaWNhdG9yOiB7XG4gICAgICAgIHBvc2l0aW9uOiAncmVsYXRpdmUnLFxuICAgICAgICAuLi50aGVtZS50eXBvZ3JhcGh5LmJvZHkzLFxuICAgICAgICBmb250V2VpZ2h0OiB0aGVtZS50eXBvZ3JhcGh5LmZvbnRXZWlnaHRSZWd1bGFyLFxuICAgIH0sXG4gICAgaW5uZXJGaXhlZFJpZ2h0RGl2OiB7XG4gICAgICAgIHJpZ2h0OiAwLFxuICAgICAgICB0ZXh0QWxpZ246ICdyaWdodCcsXG4gICAgfSxcbn0pO1xuXG4vKipcbiAqIENoaWxkUm93IGVzdCB1bmUgbGlnbmUgZCd1biB0YWJsZWF1LFxuICogZWxsZSBlc3QgYWZmaWNow6llIGNvbW1lIHVuIHNvdXMtdGFibGVhdSDDoCBsJ2ludMOpcmlldXIgZGUgbGEgbGlnbmUgYXZlYyB1bmUgYm9yZHVyZSBhdXRvdXJcbiAqIGNlIHNvdXMtdGFibGVhdSBjb250aWVudCB1bmUgb3UgcGx1c2lldXJzIGxpZ25lcyBkZSBkb25uw6llIGR1IE3Dik1FIFRZUEUgb3Ugw6lxdWl2YWxlbnRlcyBxdWUgbGUgdGFibGVhdSBwYXJlbnQgKGV4OiB0cmFuc2FjdGlvbnMgPiBvcMOpcmF0aW9ucylcbiAqL1xuY2xhc3MgQ2hpbGRSb3cgZXh0ZW5kcyBSZWFjdC5QdXJlQ29tcG9uZW50XG57XG4gICAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFV0aWxlIHBvdXIgc3VyY2hhcmdlciBsZSBzdHlsZSBhcHBsaXF1w6kgYXV4IGNvbXBvc2FudHNcbiAgICAgICAgICovXG4gICAgICAgIGNsYXNzZXM6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBEw6l0ZXJtaW5lIHNpIGxhIGxpZ25lIHNlcmEgYWZmaWNow6llIG91IG5vblxuICAgICAgICAgKi9cbiAgICAgICAgaXNPcGVuOiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkLFxuICAgICAgICAvKipcbiAgICAgICAgICogRm9uY3Rpb24gZGUgY2FsbGJhY2sgcG91ciBjb2xsYXBzZXIgbGEgbGlnbmVcbiAgICAgICAgICovXG4gICAgICAgIG9uQ2xvc2U6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJZCBkZSBsYSBsaWduZSBwYXJlbnRlXG4gICAgICAgICAqL1xuICAgICAgICBwYXJlbnRSb3dJZDogUHJvcFR5cGVzLm51bWJlci5pc1JlcXVpcmVkLFxuICAgICAgICAvKipcbiAgICAgICAgICogRG9ubsOpZXMgZGUgbGEgbGlnbmUgcGFyZW50ZVxuICAgICAgICAgKi9cbiAgICAgICAgcGFyZW50Um93RGF0YXM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEluZGljYXRldXIgZHUgc291cy1lbnNlbWJsZSAoZW4gZ8OpbsOpcmFsIGxhIGRhdGUpXG4gICAgICAgICAqL1xuICAgICAgICBwYXJlbnRJbmRpY2F0b3JDb2x1bW46IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBMYWJlbCBkdSBzb3VzLWVuc2VtYmxlXG4gICAgICAgICAqL1xuICAgICAgICBwYXJlbnRMYWJlbDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEljb25lIGFzc29jacOpZSBhdSBsYWJlbCBkdSBzb3VzLWVuc2VtYmxlXG4gICAgICAgICAqL1xuICAgICAgICBwYXJlbnRMYWJlbEljb246IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBMaXN0ZSBkZXMgZG9ubsOpZXMgZGVzIGVuZmFudHNcbiAgICAgICAgICovXG4gICAgICAgIGNoaWxkcmVuOiBQcm9wVHlwZXMuYXJyYXkuaXNSZXF1aXJlZCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIENvbG9ubmVzIGR1IHRhYmxlYXUgKGxhYmVsLCBsYXJnZXVyLCBkb25uw6llcywgLi4uIClcbiAgICAgICAgICovXG4gICAgICAgIGNvbHVtbnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRhYmxlYXUgZGVzIGNvbG9ubmVzIGFmZmljaMOpZXMgKG9yZG9ubsOpZXMsIHZpc2libGVzL2NhY2jDqWVzLCBsL20vcylcbiAgICAgICAgICovXG4gICAgICAgIG9yZGVyZWRDb2x1bW5zOiBQcm9wVHlwZXMuYXJyYXkuaXNSZXF1aXJlZCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIETDqWZpbml0IHNpIHVuZSBjaGVja2JveCBlc3QgcHLDqXNlbnRlIGVuIGTDqWJ1dCBkZSBsaWduZVxuICAgICAgICAgKi9cbiAgICAgICAgc2VsZWN0YWJsZTogUHJvcFR5cGVzLmJvb2wsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBGb25jdGlvbiBkZSBjYWxsYmFjayBhcHBlbMOpIGF1IGNoYW5nZSBkZSBsYSBjaGVja2JveCBwcsOpc2VudGUgc2kgcHJvcCBzZWxlY3RhYmxlID0gdHJ1ZVxuICAgICAgICAgKi9cbiAgICAgICAgb25TZWxlY3Q6IFByb3BUeXBlcy5mdW5jLFxuICAgICAgICAvKipcbiAgICAgICAgICogRMOpZmluaXQgc2kgbGEgY2hlY2tib3ggZXN0IGNvY2jDqWVcbiAgICAgICAgICovXG4gICAgICAgIHNlbGVjdGVkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIExvY2FsZSB1dGlsaXPDqSBwb3VyIGxlIGZvcm1hdCBkZXMgZGF0ZXNcbiAgICAgICAgICovXG4gICAgICAgIGRhdGVMb2NhbGU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBMb2NhbGUgdXRpbGlzw6kgcG91ciBsZSBmb3JtYXQgZGVzIG5vbWJyZXNcbiAgICAgICAgICovXG4gICAgICAgIG51bWJlckxvY2FsZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIERlbnNpdMOpIGQnYWZmaWNoYWdlIChqb3VlIHN1ciBsYSBoYXV0ZXVyIGRlcyBsaWduZXMpXG4gICAgICAgICAqL1xuICAgICAgICBkZW5zZTogUHJvcFR5cGVzLmJvb2wsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBGaXhlIGxhIHByZW1pw6hyZSBjb2xvbm5lXG4gICAgICAgICAqL1xuICAgICAgICBzdGlja3k6IFByb3BUeXBlcy5ib29sLFxuICAgICAgICAvKipcbiAgICAgICAgICogVHJhZHVjdGlvbiBkZXMgY2hhw65uZXMgYWZmaWNow6llc1xuICAgICAgICAgKi9cbiAgICAgICAgdHJhbnNsYXRpb25zOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgICAgICAvKipcbiAgICAgICAgICogVGFpbGxlIGR1IHRhYmxlYXUgKEwvTS9TKSwgZMOpZmluaXQgbCdlc3BhY2UgZW50cmUgbGVzIGNlbGx1bGVzIGV0IGxldXJzIHRhaWxsZXMgcGFyIGRlZmF1bHRcbiAgICAgICAgICovXG4gICAgICAgIHZpZXc6IFByb3BUeXBlcy5vbmVPZihbJ2wnLCdtJywncyddKSxcbiAgICB9O1xuXG4gICAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICAgICAgaXNPcGVuOiBmYWxzZSxcbiAgICAgICAgcGFyZW50SW5kaWNhdG9yQ29sdW1uOiBudWxsLFxuICAgICAgICBwYXJlbnRMYWJlbDogJycsXG4gICAgICAgIHNlbGVjdGFibGU6IGZhbHNlLFxuICAgICAgICBzZWxlY3RlZDogZmFsc2UsXG4gICAgICAgIGRhdGVMb2NhbGU6ICdlbi1FTicsXG4gICAgICAgIG51bWJlckxvY2FsZTogJ2VuLUVOJyxcbiAgICAgICAgZGVuc2U6IGZhbHNlLFxuICAgICAgICBzdGlja3k6IHRydWUsXG4gICAgICAgIHRyYW5zbGF0aW9uczoge30sXG4gICAgICAgIHZpZXc6ICdsJyxcbiAgICB9O1xuXG4gICAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICAgICAgc3VwZXIocHJvcHMpO1xuXG4gICAgICAgIHRoaXMuaGFuZGxlQ2xvc2UgPSB0aGlzLmhhbmRsZUNsb3NlLmJpbmQodGhpcyk7XG4gICAgfVxuXG4gICAgaGFuZGxlQ2xvc2UgPSAoKSA9PiB7XG4gICAgICAgIHRoaXMucHJvcHMub25DbG9zZSh0aGlzLnByb3BzLnBhcmVudFJvd0lkKTtcbiAgICB9O1xuXG4gICAgcmVuZGVyICgpIHtcbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgY2xhc3NlcywgdGhlbWUsIG9uQ2xvc2UsXG4gICAgICAgICAgICBwYXJlbnRSb3dJZCwgcGFyZW50Um93RGF0YXMsXG4gICAgICAgICAgICBwYXJlbnRJbmRpY2F0b3JDb2x1bW4sIHBhcmVudExhYmVsLCBwYXJlbnRMYWJlbEljb24sXG4gICAgICAgICAgICBjaGlsZHJlbiwgY29sdW1ucywgb3JkZXJlZENvbHVtbnMsXG4gICAgICAgICAgICBzZWxlY3RhYmxlLCBzZWxlY3RlZCxcbiAgICAgICAgICAgIGRhdGVMb2NhbGUsIGRlbnNlLCBzdGlja3ksIHZpZXcsIHJvdyxcbiAgICAgICAgICAgIC4uLm90aGVyXG4gICAgICAgIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgICAgIGxldCBpbmRpY2F0b3IgPSAnJztcbiAgICAgICAgaWYocGFyZW50SW5kaWNhdG9yQ29sdW1uICYmIGNvbHVtbnMuaGFzT3duUHJvcGVydHkocGFyZW50SW5kaWNhdG9yQ29sdW1uKSkge1xuICAgICAgICAgICAgc3dpdGNoIChjb2x1bW5zW3BhcmVudEluZGljYXRvckNvbHVtbl0udHlwZSlcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjYXNlIGNzdC5UWVBFX0RBVEU6XG4gICAgICAgICAgICAgICAgICAgIGxldCBvcHRpb25zID0geyB5ZWFyOiBcIm51bWVyaWNcIiwgbW9udGg6IFwiMi1kaWdpdFwiLCBkYXk6IFwiMi1kaWdpdFwiLCBob3VyOiBcIjItZGlnaXRcIiwgbWludXRlOiBcIjItZGlnaXRcIn07XG4gICAgICAgICAgICAgICAgICAgIGluZGljYXRvciA9IHBhcmVudFJvd0RhdGFzW3BhcmVudEluZGljYXRvckNvbHVtbl0udmFsdWUudG9Mb2NhbGVTdHJpbmcoZGF0ZUxvY2FsZSwgb3B0aW9ucyk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cblxuICAgICAgICAvLyBEeW5hbWljIGJ1aWxkIG9mIGljb24gY29tcG9uZW50XG4gICAgICAgIGxldCBpY29uID0gbnVsbDtcbiAgICAgICAgaWYgKHBhcmVudExhYmVsSWNvbikge1xuICAgICAgICAgICAgbGV0IG1kaUljb24gPSBjYXBpdGFsaXplRmlyc3RMZXR0ZXIoY2FtZWxpemUocGFyZW50TGFiZWxJY29uKSk7XG4gICAgICAgICAgICBjb25zdCBJY29uTmFtZSA9IG1kaVttZGlJY29uXTtcbiAgICAgICAgICAgIGljb24gPSA8SWNvbk5hbWUgY2xhc3NOYW1lPXtkZW5zZSA/IGNsYXNzZXMucGFyZW50TGFiZWxJY29uRGVuc2UgOiBjbGFzc2VzLnBhcmVudExhYmVsSWNvbn0vPjtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBjaGlsZHJlblJvd3MgPSAoKSA9PiAoXG5cbiAgICAgICAgICAgIDxUYWJsZSBjbGFzc05hbWU9e2NsYXNzZXMuc3ViVGFibGV9IGlkPXsnc3ViVGFibGUnfT5cbiAgICAgICAgICAgICAgICA8VGFibGVCb2R5PlxuICAgICAgICAgICAgICAgICAgICA8Qm9keVJvd1xuICAgICAgICAgICAgICAgICAgICAgICAgcm93PXtyb3d9XG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RhYmxlPXtzZWxlY3RhYmxlfVxuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQ9e3NlbGVjdGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1ucz17Y29sdW1uc31cbiAgICAgICAgICAgICAgICAgICAgICAgIG9yZGVyZWRDb2x1bW5zPXtvcmRlcmVkQ29sdW1uc31cbiAgICAgICAgICAgICAgICAgICAgICAgIHZpZXc9e3ZpZXd9XG4gICAgICAgICAgICAgICAgICAgICAgICBkZW5zZT17ZGVuc2V9XG4gICAgICAgICAgICAgICAgICAgICAgICBvblNlbGVjdD17dGhpcy5wcm9wcy5vblNlbGVjdH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHN0aWNreT17c3RpY2t5fVxuICAgICAgICAgICAgICAgICAgICAgICAgaW5uZXJSb3c9e3RydWV9XG4gICAgICAgICAgICAgICAgICAgICAgICB7Li4ub3RoZXJ9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIHtjaGlsZHJlbi5tYXAoKGNoaWxkKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCb2R5Um93XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17cGFyZW50Um93SWQrJy0nK2NoaWxkLnJvd0lkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3c9e2NoaWxkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RhYmxlPXtmYWxzZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1ucz17Y29sdW1uc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3JkZXJlZENvbHVtbnM9e29yZGVyZWRDb2x1bW5zfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3PXt2aWV3fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZW5zZT17ZGVuc2V9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0aWNreT17c3RpY2t5fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbm5lclJvdz17dHJ1ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgey4uLm90aGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgICA8L1RhYmxlQm9keT5cbiAgICAgICAgICAgIDwvVGFibGU+XG4gICAgICAgICk7XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxUYWJsZVJvdz5cbiAgICAgICAgICAgICAgICA8VGFibGVDZWxsIGNvbFNwYW49ezEwMDB9IHN0eWxlPXt7cGFkZGluZzowfX0+XG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3Nlcy5pbm5lckhlYWRlckRpdn1cbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBkZW5zZSA/IGNzdC5DRUxMX0hFSUdIVF9ERU5TRSA6IGNzdC5DRUxMX0hFSUdIVCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nTGVmdDogY3N0LkRFRkFVTFRfUEFERElOR1t2aWV3XVxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uQ2xvc2V9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2BmbG9hdGluZy1wYXJlbnQtcm93LWxhYmVsICR7Y2xhc3Nlcy5wYXJlbnRMYWJlbH1gfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogKGRlbnNlID8gY3N0LkNFTExfSEVJR0hUX0RFTlNFIDogY3N0LkNFTExfSEVJR0hUKSArICdweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVIZWlnaHQ6IChkZW5zZSA/IGNzdC5DRUxMX0hFSUdIVF9ERU5TRSA6IGNzdC5DRUxMX0hFSUdIVCkgKyAncHgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiAnaW5saW5lLWZsZXgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpY29ufVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtwYXJlbnRMYWJlbH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SGlQaW5zIGNvbG9yPXt0aGVtZS5wYWxldHRlLm5ldXRyYWwubm9ybWFsfT57Y2hpbGRyZW4ubGVuZ3RofTwvSGlQaW5zPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiAnaW5saW5lLWZsZXgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAoZGVuc2UgPyBjc3QuQ0VMTF9IRUlHSFRfREVOU0UgOiBjc3QuQ0VMTF9IRUlHSFQpICsgJ3B4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZUhlaWdodDogKGRlbnNlID8gY3N0LkNFTExfSEVJR0hUX0RFTlNFIDogY3N0LkNFTExfSEVJR0hUKSArICdweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YGZsb2F0aW5nLXBhcmVudC1yb3ctaW5kaWNhdG9yICR7Y2xhc3Nlcy5wYXJlbnRJbmRpY2F0b3J9YH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpblJpZ2h0OiBjc3QuREVGQVVMVF9QQURESU5HW3ZpZXddXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aW5kaWNhdG9yfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8Q29sbGFwc2UgY29tcG9uZW50PXtjaGlsZHJlblJvd3N9IGluPXt0cnVlfSB0aW1lb3V0PVwiYXV0b1wiIHVubW91bnRPbkV4aXQgLz5cbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzLmlubmVyRm9vdGVyRGl2fVxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IGRlbnNlID8gY3N0LkNFTExfSEVJR0hUX0RFTlNFIDogY3N0LkNFTExfSEVJR0hULFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmdMZWZ0OiBjc3QuREVGQVVMVF9QQURESU5HW3ZpZXddXG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvVGFibGVDZWxsPlxuICAgICAgICAgICAgPC9UYWJsZVJvdz5cbiAgICAgICAgKTtcbiAgICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHdpdGhTdHlsZXMoc3R5bGVzLCB7IHdpdGhUaGVtZTogdHJ1ZSwgbmFtZTogJ0htdWlDaGlsZFJvdycgfSkoQ2hpbGRSb3cpO1xuIl19
107472
107556
 
107473
107557
  /***/ }),
107474
107558
  /* 2851 */
@@ -113136,9 +113220,8 @@ var styles = exports.styles = function styles(theme) {
113136
113220
  color: theme.palette.text.secondary,
113137
113221
  minWidth: 32
113138
113222
  },
113139
- beta: {
113140
- minWidth: 64,
113141
- maxWidth: 80
113223
+ betaWithoutAccountSelector: {
113224
+ marginLeft: 1.5 * theme.spacing.unit
113142
113225
  },
113143
113226
  searchInput: {
113144
113227
  backgroundColor: theme.palette.background1 + ' !important'
@@ -113323,7 +113406,7 @@ var HiTopBar = function (_React$Component) {
113323
113406
  accountSelectorContent
113324
113407
  ),
113325
113408
  beta && _react2.default.createElement(_HiColoredLabel2.default, {
113326
- className: classes.beta,
113409
+ className: (0, _classnames2.default)(_defineProperty({}, classes.betaWithoutAccountSelector, !hasAccountSelector)),
113327
113410
  label: 'BETA',
113328
113411
  beta: true,
113329
113412
  color: theme.palette.neutral.dark
@@ -113522,7 +113605,7 @@ HiTopBar.defaultProps = {
113522
113605
  }
113523
113606
  };
113524
113607
  exports.default = (0, _withStyles2.default)(styles, { withTheme: true, name: 'HmuiHiTopBar' })(HiTopBar);
113525
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9IaVRvcEJhci9IaVRvcEJhci5qcyJdLCJuYW1lcyI6WyJzdHlsZXMiLCJyb290Iiwid2lkdGgiLCJib3hTaGFkb3ciLCJjb2xvclByaW1hcnkiLCJiYWNrZ3JvdW5kQ29sb3IiLCJ0aGVtZSIsInBhbGV0dGUiLCJiYWNrZ3JvdW5kMyIsImNvbG9yIiwiYmFja2dyb3VuZDEiLCJ0ZXh0Iiwic2Vjb25kYXJ5IiwiY29sb3JQcmltYXJ5Rm9jdXMiLCJiYWNrZ3JvdW5kMiIsInRvb2xiYXIiLCJtaW5IZWlnaHQiLCJzcGFjaW5nIiwidW5pdCIsImxlZnRCdXR0b25Nb2JpbGUiLCJtYXJnaW5MZWZ0IiwibWFyZ2luUmlnaHQiLCJsZWZ0QnV0dG9uIiwicGFkZGluZ0xlZnQiLCJtaW5XaWR0aCIsImxlZnRCdXR0b25MYWJlbCIsImZvbnRTaXplIiwiaGVpZ2h0IiwiZmxleCIsInJpZ2h0Q29tcG9uZW50TW9iaWxlIiwiYWNjb3VudFNlbGVjdG9yQnV0dG9uIiwiYm9yZGVyTGVmdCIsImJvcmRlckNvbG9yIiwiZGlzcGxheSIsIm1heFdpZHRoIiwiYWNjb3VudFNlbGVjdG9yQnV0dG9uTGFiZWwiLCJ0ZXh0T3ZlcmZsb3ciLCJvdmVyZmxvdyIsIndoaXRlU3BhY2UiLCJpY29uQnV0dG9uIiwic2hvd1RvcEJhckJ1dHRvbiIsInBvc2l0aW9uIiwicmlnaHQiLCJtYXJnaW5Ub3AiLCJub3RpZmljYXRpb25CdXR0b24iLCJiZXRhIiwic2VhcmNoSW5wdXQiLCJzZWFyY2hJbnB1dEZvY3VzZWQiLCJub3RpZmljYXRpb25CYWRnZSIsImVuZEFkb3JubWVudEJ1dHRvbiIsImxpbmVIZWlnaHQiLCJwYWRkaW5nIiwibWFyZ2luIiwidGV4dFRyYW5zZm9ybSIsImZvbnRXZWlnaHQiLCJ0eXBvZ3JhcGh5IiwiZm9udFdlaWdodFJlZ3VsYXIiLCJjb2xsYXBzZU92ZXJmbG93IiwiSGlUb3BCYXIiLCJwcm9wcyIsInN0YXRlIiwiY29sbGFwc2VkIiwibWVudUFuY2hvciIsImhhbmRsZUNvbGxhcHNlIiwiYmluZCIsImhhbmRsZUNsaWNrTWVudSIsImhhbmRsZU9wZW5NZW51IiwiaGFuZGxlQ2xvc2VNZW51IiwiaGFuZGxlTWVudUl0ZW1DbGljayIsImV2ZW50Iiwic2V0U3RhdGUiLCJjdXJyZW50VGFyZ2V0IiwiY2FsbGJhY2siLCJvbkNsaWNrUmV0dXJuIiwiY2xhc3NlcyIsIm5vdGlmaWNhdGlvblZhbHVlIiwiaGlkZWFibGUiLCJoYXNTZXR0aW5ncyIsImhhc0FjY291bnRTZWxlY3RvciIsInRyYW5zbGF0aW9ucyIsIm9uQ2xpY2tNZW51IiwiYWNjb3VudFNlbGVjdG9yQ29udGVudCIsInJlZkJ1dHRvbnMiLCJzZWFyY2hGb2N1cyIsImNvbG9yUHJpbWFyeUNsYXNzIiwib25DbGlja05vdGlmaWNhdGlvbnMiLCJiYWNrIiwibWVudSIsImxhYmVsIiwib25DbGlja0FjY291bnRTZWxlY3RvciIsIm5ldXRyYWwiLCJkYXJrIiwib25DbGlja1NldHRpbmdzIiwiQm9vbGVhbiIsInN0eWxlIiwiQ29tcG9uZW50IiwicHJvcFR5cGVzIiwib25lT2ZUeXBlIiwic3RyaW5nIiwibm9kZSIsImJvb2wiLCJvYmplY3QiLCJudW1iZXIiLCJmdW5jIiwiaXNSZXF1aXJlZCIsIm9uZU9mIiwiZGVmYXVsdFByb3BzIiwic2VhcmNoIiwiYWxsX3R5cGVzIiwid2l0aFRoZW1lIiwibmFtZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7QUFPQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7Ozs7Ozs7Ozs7QUFFTyxJQUFNQSwwQkFBUyxTQUFUQSxNQUFTO0FBQUEsV0FBVTtBQUM1QkMsY0FBTTtBQUNGQyxtQkFBTyxNQURMO0FBRUZDLHVCQUFXO0FBRlQsU0FEc0I7QUFLNUJDLHNCQUFjO0FBQ1ZDLDZCQUFpQkMsTUFBTUMs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OEIsSUFBVixDQUFlQyxVQTVDZjtBQTZDZjs7O0FBR0FaLHFCQUFpQixvQkFBVVcsSUFoRFo7QUFpRGY7Ozs7QUFJQTlELGNBQVUsb0JBQVVnRSxLQUFWLENBQWdCLENBQUMsT0FBRCxFQUFVLFVBQVYsRUFBc0IsUUFBdEIsRUFBZ0MsUUFBaEMsQ0FBaEIsQ0FyREs7QUFzRGY7OztBQUdBdkIsZ0JBQVksb0JBQVVxQixJQXpEUDtBQTBEZjs7O0FBR0FwQixpQkFBYSxvQkFBVWlCLElBQVYsQ0FBZUksVUE3RGI7QUE4RGY7OztBQUdBMUQsaUJBQWEsb0JBQVVxRCxJQUFWLENBQWVLLFVBakViO0FBa0VmOzs7QUFHQWxHLFdBQU8sb0JBQVUrRixNQXJFRjtBQXNFZjs7O0FBR0F0QixrQkFBYyxvQkFBVXNCO0FBekVULEM7QUFEakIzQyxRLENBNEVLZ0QsWSxHQUFlO0FBQ2xCOUIsY0FBVSxLQURRO0FBRWxCQyxpQkFBYSxLQUZLO0FBR2xCQyx3QkFBb0IsS0FIRjtBQUlsQkssaUJBQWEsS0FKSztBQUtsQkosa0JBQWM7QUFDVk8sY0FBTSxNQURJO0FBRVZDLGNBQU0sTUFGSTtBQUdWb0IsZ0JBQVEsUUFIRTtBQUlWQyxtQkFBVztBQUpEO0FBTEksQztrQkFvUFgsMEJBQVc1RyxNQUFYLEVBQW1CLEVBQUU2RyxXQUFXLElBQWIsRUFBbUJDLE1BQU0sY0FBekIsRUFBbkIsRUFBOERwRCxRQUE5RCxDIiwiZmlsZSI6IkhpVG9wQmFyLmpzIiwic291cmNlUm9vdCI6Ii9ob21lL3Zkb3NzYW50b3MvZGV2L2hpcGF5LW1hdGVyaWFsLXVpIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgSGlkZGVuIGZyb20gJ21hdGVyaWFsLXVpL0hpZGRlbic7XG5pbXBvcnQgQXBwQmFyIGZyb20gJ21hdGVyaWFsLXVpL0FwcEJhcic7XG5pbXBvcnQgVG9vbGJhciBmcm9tICdtYXRlcmlhbC11aS9Ub29sYmFyJztcbmltcG9ydCBJY29uQnV0dG9uIGZyb20gJ21hdGVyaWFsLXVpL0ljb25CdXR0b24nO1xuaW1wb3J0IENvbGxhcHNlIGZyb20gJ21hdGVyaWFsLXVpL3RyYW5zaXRpb25zL0NvbGxhcHNlJztcbmltcG9ydCB7XG4gICAgQ2hldnJvbkRvdWJsZVVwLFxuICAgIENoZXZyb25Eb3VibGVEb3duLFxuICAgIE1lbnUgYXMgTWVudUljb24sXG4gICAgQXJyb3dMZWZ0LFxuICAgIERvdHNWZXJ0aWNhbCxcbn0gZnJvbSAnbWRpLW1hdGVyaWFsLXVpJztcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IE1lbnUsIHsgTWVudUl0ZW0gfSBmcm9tICdtYXRlcmlhbC11aS9NZW51JztcbmltcG9ydCB3aXRoU3R5bGVzIGZyb20gJy4uL3N0eWxlcy93aXRoU3R5bGVzJztcbmltcG9ydCBIaUljb25CdWlsZGVyIGZyb20gJy4uL3V0aWxzL0hpSWNvbkJ1aWxkZXInO1xuaW1wb3J0IEhpQmFkZ2UgZnJvbSAnLi4vSGlCYWRnZSc7XG5pbXBvcnQgSGlCdXR0b24gZnJvbSAnLi4vSGlCdXR0b24nO1xuaW1wb3J0IEhpQ29sb3JlZExhYmVsIGZyb20gJy4uL0hpQ29sb3JlZExhYmVsJztcbmltcG9ydCB7IGdldENvbnRyYXN0ZWRUZXh0Q29sb3IsIGZhZGUgfSBmcm9tICcuLi9zdHlsZXMvY29sb3JNYW5pcHVsYXRvcic7XG5cbmV4cG9ydCBjb25zdCBzdHlsZXMgPSB0aGVtZSA9PiAoe1xuICAgIHJvb3Q6IHtcbiAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgICAgYm94U2hhZG93OiAnMHB4IDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE2KScsXG4gICAgfSxcbiAgICBjb2xvclByaW1hcnk6IHtcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS5wYWxldHRlLmJhY2tncm91bmQzLFxuICAgICAgICBjb2xvcjogZ2V0Q29udHJhc3RlZFRleHRDb2xvcihcbiAgICAgICAgICAgIHRoZW1lLnBhbGV0dGUuYmFja2dyb3VuZDEsXG4gICAgICAgICAgICB0aGVtZS5wYWxldHRlLnRleHQuc2Vjb25kYXJ5LFxuICAgICAgICAgICAgJyNGRkYnLFxuICAgICAgICApLFxuICAgIH0sXG4gICAgY29sb3JQcmltYXJ5Rm9jdXM6IHtcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS5wYWxldHRlLmJhY2tncm91bmQyLFxuICAgICAgICBjb2xvcjogZ2V0Q29udHJhc3RlZFRleHRDb2xvcihcbiAgICAgICAgICAgIHRoZW1lLnBhbGV0dGUuYmFja2dyb3VuZDIsXG4gICAgICAgICAgICB0aGVtZS5wYWxldHRlLnRleHQuc2Vjb25kYXJ5LFxuICAgICAgICAgICAgJyNGRkYnLFxuICAgICAgICApLFxuICAgIH0sXG4gICAgdG9vbGJhcjoge1xuICAgICAgICBtaW5IZWlnaHQ6IDggKiB0aGVtZS5zcGFjaW5nLnVuaXQsXG4gICAgfSxcbiAgICBsZWZ0QnV0dG9uTW9iaWxlOiB7XG4gICAgICAgIG1hcmdpbkxlZnQ6IC0xLjUgKiB0aGVtZS5zcGFjaW5nLnVuaXQsXG4gICAgICAgIG1hcmdpblJpZ2h0OiAxLjUgKiB0aGVtZS5zcGFjaW5nLnVuaXQsXG4gICAgfSxcbiAgICBsZWZ0QnV0dG9uOiB7XG4gICAgICAgIHBhZGRpbmdMZWZ0OiAwLFxuICAgICAgICBtYXJnaW5MZWZ0OiAtMS41ICogdGhlbWUuc3BhY2luZy51bml0LFxuICAgICAgICBtaW5XaWR0aDogMTYgKiB0aGVtZS5zcGFjaW5nLnVuaXQsXG4gICAgfSxcbiAgICBsZWZ0QnV0dG9uTGFiZWw6IHtcbiAgICAgICAgY29sb3I6IHRoZW1lLnBhbGV0dGUudGV4dC5zZWNvbmRhcnksXG4gICAgICAgIG1hcmdpbkxlZnQ6IDIuNSAqIHRoZW1lLnNwYWNpbmcudW5pdCxcbiAgICAgICAgZm9udFNpemU6IDE0LFxuICAgICAgICBoZWlnaHQ6IDE2LFxuICAgIH0sXG4gICAgZmxleDoge1xuICAgICAgICBmbGV4OiAxLFxuICAgIH0sXG4gICAgcmlnaHRDb21wb25lbnRNb2JpbGU6IHtcbiAgICAgICAgbWFyZ2luUmlnaHQ6IC0xLjUgKiB0aGVtZS5zcGFjaW5nLnVuaXQsXG4gICAgfSxcbiAgICBhY2NvdW50U2VsZWN0b3JCdXR0b246IHtcbiAgICAgICAgbWFyZ2luUmlnaHQ6IDEuNSAqIHRoZW1lLnNwYWNpbmcudW5pdCxcbiAgICAgICAgYm9yZGVyTGVmdDogJ3NvbGlkIDFweCcsXG4gICAgICAgIGJvcmRlckNvbG9yOiBmYWRlKCcjMDAwJywgMC4xMiksXG4gICAgICAgIGRpc3BsYXk6ICdpbmxpbmUtYmxvY2snLFxuICAgICAgICBtaW5XaWR0aDogMTQ0LFxuICAgICAgICBtYXhXaWR0aDogMjg4LFxuICAgIH0sXG4gICAgYWNjb3VudFNlbGVjdG9yQnV0dG9uTGFiZWw6IHtcbiAgICAgICAgdGV4dE92ZXJmbG93OiAnZWxsaXBzaXMnLFxuICAgICAgICBvdmVyZmxvdzogJ2hpZGRlbicsXG4gICAgICAgIHdoaXRlU3BhY2U6ICdub3dyYXAnLFxuICAgIH0sXG4gICAgaWNvbkJ1dHRvbjoge1xuICAgICAgICBtYXJnaW5SaWdodDogLTIgKiB0aGVtZS5zcGFjaW5nLnVuaXQsXG4gICAgfSxcbiAgICBzaG93VG9wQmFyQnV0dG9uOiB7XG4gICAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgICByaWdodDogMzMsXG4gICAgICAgIG1hcmdpblRvcDogNSxcbiAgICB9LFxuICAgIG5vdGlmaWNhdGlvbkJ1dHRvbjoge1xuICAgICAgICBjb2xvcjogdGhlbWUucGFsZXR0ZS50ZXh0LnNlY29uZGFyeSxcbiAgICAgICAgbWluV2lkdGg6IDMyLFxuICAgIH0sXG4gICAgYmV0YToge1xuICAgICAgICBtaW5XaWR0aDogNjQsXG4gICAgICAgIG1heFdpZHRoOiA4MCxcbiAgICB9LFxuICAgIHNlYXJjaElucHV0OiB7XG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogYCR7dGhlbWUucGFsZXR0ZS5iYWNrZ3JvdW5kMX0gIWltcG9ydGFudGAsXG4gICAgfSxcbiAgICBzZWFyY2hJbnB1dEZvY3VzZWQ6IHtcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiBgJHt0aGVtZS5wYWxldHRlLmJhY2tncm91bmQzfSAhaW1wb3J0YW50YCxcbiAgICB9LFxuICAgIG5vdGlmaWNhdGlvbkJhZGdlOiB7XG4gICAgICAgIG1hcmdpblJpZ2h0OiAxMCxcbiAgICB9LFxuICAgIGVuZEFkb3JubWVudEJ1dHRvbjoge1xuICAgICAgICBoZWlnaHQ6IDMyLFxuICAgICAgICBsaW5lSGVpZ2h0OiAzMixcbiAgICAgICAgcGFkZGluZzogMCxcbiAgICAgICAgbWFyZ2luOiAwLFxuICAgICAgICBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJyxcbiAgICAgICAgY29sb3I6IGZhZGUoJyMwMDAnLCAwLjM4KSxcbiAgICAgICAgdGV4dFRyYW5zZm9ybTogJ2NhcGl0YWxpemUnLFxuICAgICAgICBmb250V2VpZ2h0OiB0aGVtZS50eXBvZ3JhcGh5LmZvbnRXZWlnaHRSZWd1bGFyLFxuICAgICAgICBtaW5XaWR0aDogNTAsXG4gICAgfSxcbiAgICBjb2xsYXBzZU92ZXJmbG93OiB7XG4gICAgICAgIG92ZXJmbG93OiAnaW5oZXJpdCcsXG4gICAgfSxcbn0pO1xuXG5jbGFzcyBIaVRvcEJhciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gICAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIENvbnRlbnUgZHUgYm91dG9uIMOgIGRyb2l0ZSBkZSBsJ2lucHV0IGRlIHJlY2hlcmNoZSAoYWNjb3VudFNlbGVjdG9yKVxuICAgICAgICAgKi9cbiAgICAgICAgYWNjb3VudFNlbGVjdG9yQ29udGVudDogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLnN0cmluZywgUHJvcFR5cGVzLm5vZGVdKSxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIETDqWZpbml0IHNpIGwnb24gZG9pdCBhZmZpY2hlciBsZSBib3V0b24gXCJCZXRhXCIgb3Ugbm9uXG4gICAgICAgICAqL1xuICAgICAgICBiZXRhOiBQcm9wVHlwZXMuYm9vbCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFBlcm1ldCBkZXMgc3VyY2hhcmdlcyBkZSBzdHlsZVxuICAgICAgICAgKi9cbiAgICAgICAgY2xhc3NlczogUHJvcFR5cGVzLm9iamVjdCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIETDqWZpbml0IHNpIGwnb24gZG9pdCBhZmZpY2hlciBsZSBib3V0b24gXCJBY2NvdW50IHNlbGVjdG9yXCIgb3Ugbm9uXG4gICAgICAgICAqL1xuICAgICAgICBoYXNBY2NvdW50U2VsZWN0b3I6IFByb3BUeXBlcy5ib29sLFxuICAgICAgICAvKipcbiAgICAgICAgICogRMOpZmluaXQgc2kgbCdvbiBkb2l0IGFmZmljaGVyIGxlIGJvdXRvbiBcIlNldHRpbmdzXCIgb3Ugbm9uXG4gICAgICAgICAqL1xuICAgICAgICBoYXNTZXR0aW5nczogUHJvcFR5cGVzLmJvb2wsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBMYSBUb3BCYXIgcGV1dCDDqnRyZSBjYWNow6llIHZpZSBsZSBib3V0b24gZG91YmxlIGNoZXZyb25cbiAgICAgICAgICovXG4gICAgICAgIGhpZGVhYmxlOiBQcm9wVHlwZXMuYm9vbCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIExhIHZhbGV1ciBhIGFmZmljaGVyIGRhbnMgbGUgYm91dHRvbiBkZSBub3RpZmljYXRpb24uXG4gICAgICAgICAqL1xuICAgICAgICBub3RpZmljYXRpb25WYWx1ZTogUHJvcFR5cGVzLm51bWJlcixcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEZvbmN0aW9uIGRlIGNhbGxiYWNrIGF1IGNsaWNrIHN1ciBsJ2FjY291bnRTZWxlY3RvcidcbiAgICAgICAgICovXG4gICAgICAgIG9uQ2xpY2tBY2NvdW50U2VsZWN0b3I6IFByb3BUeXBlcy5mdW5jLFxuICAgICAgICAvKipcbiAgICAgICAgICogRm9uY3Rpb24gZGUgY2FsbGJhY2sgYXUgY2xpY2sgc3VyIGxlIG1lbnVcbiAgICAgICAgICovXG4gICAgICAgIG9uQ2xpY2tNZW51OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgICAgICAvKipcbiAgICAgICAgICogRm9uY3Rpb24gZGUgY2FsbGJhY2sgYXUgY2xpY2sgc3VyIGxlIGJvdXRvbiBkZSBub3RpZmljYXRpb25zXG4gICAgICAgICAqL1xuICAgICAgICBvbkNsaWNrTm90aWZpY2F0aW9uczogUHJvcFR5cGVzLmZ1bmMsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBGb25jdGlvbiBkZSBjYWxsYmFjayBhdSBjbGljayBzdXIgbGUgYm91dG9uIFwiUmV0b3VyXCIgZHUgbWVudVxuICAgICAgICAgKi9cbiAgICAgICAgb25DbGlja1JldHVybjogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEZvbmN0aW9uIGRlIGNhbGxiYWNrIGF1IGNsaWNrIHN1ciBsZSBib3V0b24gXCJTZXR0aW5nc1wiIGR1IG1lbnVcbiAgICAgICAgICovXG4gICAgICAgIG9uQ2xpY2tTZXR0aW5nczogUHJvcFR5cGVzLmZ1bmMsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBQb3NpdGlvbmVtZW50IGRlIGxhIHRvcEJhci4gVGhlIGJlaGF2aW9yIG9mIHRoZSBkaWZmZXJlbnQgb3B0aW9ucyBpcyBkZXNjcmliZWRcbiAgICAgICAgICogW2hlcmVdKGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvTGVhcm4vQ1NTL0NTU19sYXlvdXQvUG9zaXRpb25pbmcpLlxuICAgICAgICAgKi9cbiAgICAgICAgcG9zaXRpb246IFByb3BUeXBlcy5vbmVPZihbJ2ZpeGVkJywgJ2Fic29sdXRlJywgJ3N0aWNreScsICdzdGF0aWMnXSksXG4gICAgICAgIC8qKlxuICAgICAgICAgKiAgUGFzc2UgdW5lIHJlZiBjYWxsYmFjayDDoCBsYSBkaXYgY29udGVuYW50IGxlcyBib3V0b25zIFwibWVudVwiIGV0IFwiYmFja1wiXG4gICAgICAgICAqL1xuICAgICAgICByZWZCdXR0b25zOiBQcm9wVHlwZXMuZnVuYyxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEV0YXQgZGUgZm9jdXMuXG4gICAgICAgICAqL1xuICAgICAgICBzZWFyY2hGb2N1czogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIElucHV0IGRlIHJlY2hlcmNoZVxuICAgICAgICAgKi9cbiAgICAgICAgc2VhcmNoSW5wdXQ6IFByb3BUeXBlcy5ub2RlLmlzUmVxdWlyZWQsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAaWdub3JlXG4gICAgICAgICAqL1xuICAgICAgICB0aGVtZTogUHJvcFR5cGVzLm9iamVjdCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRyYWR1Y3Rpb25zXG4gICAgICAgICAqL1xuICAgICAgICB0cmFuc2xhdGlvbnM6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgfTtcbiAgICBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgICAgICBoaWRlYWJsZTogZmFsc2UsXG4gICAgICAgIGhhc1NldHRpbmdzOiBmYWxzZSxcbiAgICAgICAgaGFzQWNjb3VudFNlbGVjdG9yOiBmYWxzZSxcbiAgICAgICAgc2VhcmNoRm9jdXM6IGZhbHNlLFxuICAgICAgICB0cmFuc2xhdGlvbnM6IHtcbiAgICAgICAgICAgIGJhY2s6ICdCYWNrJyxcbiAgICAgICAgICAgIG1lbnU6ICdNZW51JyxcbiAgICAgICAgICAgIHNlYXJjaDogJ3NlYXJjaCcsXG4gICAgICAgICAgICBhbGxfdHlwZXM6ICdBbGwgVHlwZXMnLFxuICAgICAgICB9LFxuICAgIH07XG5cbiAgICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgICAgICBzdXBlcihwcm9wcyk7XG5cbiAgICAgICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgICAgICAgIGNvbGxhcHNlZDogZmFsc2UsXG4gICAgICAgICAgICBtZW51QW5jaG9yOiBudWxsLFxuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMuaGFuZGxlQ29sbGFwc2UgPSB0aGlzLmhhbmRsZUNvbGxhcHNlLmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMuaGFuZGxlQ2xpY2tNZW51ID0gdGhpcy5oYW5kbGVDbGlja01lbnUuYmluZCh0aGlzKTtcbiAgICAgICAgdGhpcy5oYW5kbGVPcGVuTWVudSA9IHRoaXMuaGFuZGxlT3Blbk1lbnUuYmluZCh0aGlzKTtcbiAgICAgICAgdGhpcy5oYW5kbGVDbG9zZU1lbnUgPSB0aGlzLmhhbmRsZUNsb3NlTWVudS5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLmhhbmRsZU1lbnVJdGVtQ2xpY2sgPSB0aGlzLmhhbmRsZU1lbnVJdGVtQ2xpY2suYmluZCh0aGlzKTtcbiAgICB9XG5cbiAgICBoYW5kbGVPcGVuTWVudShldmVudCkge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHsgbWVudUFuY2hvcjogZXZlbnQuY3VycmVudFRhcmdldCB9KTtcbiAgICB9XG5cbiAgICBoYW5kbGVDbG9zZU1lbnUoKSB7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyBtZW51QW5jaG9yOiBudWxsIH0pO1xuICAgIH1cblxuICAgIGhhbmRsZU1lbnVJdGVtQ2xpY2soY2FsbGJhY2spIHtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IG1lbnVBbmNob3I6IG51bGwgfSk7XG4gICAgICAgIGNhbGxiYWNrKCk7XG4gICAgfVxuXG4gICAgaGFuZGxlQ29sbGFwc2UoKSB7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyBjb2xsYXBzZWQ6ICF0aGlzLnN0YXRlLmNvbGxhcHNlZCB9KTtcbiAgICB9XG5cbiAgICBoYW5kbGVDbGlja01lbnUoKSB7XG4gICAgICAgIHRoaXMucHJvcHMub25DbGlja1JldHVybigpO1xuICAgIH1cblxuICAgIHJlbmRlcigpIHtcbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgY2xhc3NlcyxcbiAgICAgICAgICAgIHRoZW1lLFxuICAgICAgICAgICAgbm90aWZpY2F0aW9uVmFsdWUsXG4gICAgICAgICAgICBiZXRhLFxuICAgICAgICAgICAgaGlkZWFibGUsXG4gICAgICAgICAgICBoYXNTZXR0aW5ncyxcbiAgICAgICAgICAgIGhhc0FjY291bnRTZWxlY3RvcixcbiAgICAgICAgICAgIHRyYW5zbGF0aW9ucyxcbiAgICAgICAgICAgIG9uQ2xpY2tNZW51LFxuICAgICAgICAgICAgYWNjb3VudFNlbGVjdG9yQ29udGVudCxcbiAgICAgICAgICAgIHJlZkJ1dHRvbnMsXG4gICAgICAgICAgICBzZWFyY2hJbnB1dCxcbiAgICAgICAgICAgIHNlYXJjaEZvY3VzLFxuICAgICAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgICAgICBjb25zdCBjb2xvclByaW1hcnlDbGFzcyA9IHNlYXJjaEZvY3VzID8gY2xhc3Nlcy5jb2xvclByaW1hcnlGb2N1cyA6IGNsYXNzZXMuY29sb3JQcmltYXJ5O1xuXG4gICAgICAgIGNvbnN0IG5vdGlmaWNhdGlvbkJ1dHRvbiA9XG4gICAgICAgICAgICBub3RpZmljYXRpb25WYWx1ZSA+IDAgPyAoXG4gICAgICAgICAgICAgICAgPEhpQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3Nlcy5ub3RpZmljYXRpb25CdXR0b259XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e3RoaXMucHJvcHMub25DbGlja05vdGlmaWNhdGlvbnN9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8SGlCYWRnZVxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e25vdGlmaWNhdGlvblZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3Nlcz17eyByb290OiBjbGFzc2VzLm5vdGlmaWNhdGlvbkJhZGdlIH19XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxIaUljb25CdWlsZGVyIGljb249XCJmYS1iZWxsLW9cIiBzaXplPXsyNX0gLz5cbiAgICAgICAgICAgICAgICAgICAgPC9IaUJhZGdlPlxuICAgICAgICAgICAgICAgIDwvSGlCdXR0b24+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICcnXG4gICAgICAgICAgICApO1xuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8QXBwQmFyXG4gICAgICAgICAgICAgICAgY2xhc3Nlcz17eyByb290OiBjbGFzc2VzLnJvb3QsIGNvbG9yUHJpbWFyeTogY29sb3JQcmltYXJ5Q2xhc3MgfX1cbiAgICAgICAgICAgICAgICBwb3NpdGlvbj17dGhpcy5wcm9wcy5wb3NpdGlvbn1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8SGlkZGVuIHNtRG93bj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxDb2xsYXBzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluPXshdGhpcy5zdGF0ZS5jb2xsYXBzZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzZXMuY29sbGFwc2VPdmVyZmxvd106ICFoaWRlYWJsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VG9vbGJhciBjbGFzc05hbWU9e2NsYXNzZXMudG9vbGJhcn0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgcmVmPXtyZWZCdXR0b25zfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtzZWFyY2hGb2N1cyA/IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SGlCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzLmxlZnRCdXR0b259XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e3RoaXMuaGFuZGxlQ2xpY2tNZW51fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj1cImluaGVyaXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEFycm93TGVmdCAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2NsYXNzZXMubGVmdEJ1dHRvbkxhYmVsfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt0cmFuc2xhdGlvbnMuYmFja31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvSGlCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxIaUJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzZXMubGVmdEJ1dHRvbn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17b25DbGlja01lbnV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yPVwiaW5oZXJpdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TWVudUljb24gc3R5bGU9e3sgaGVpZ2h0OiAyNCB9fSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2NsYXNzZXMubGVmdEJ1dHRvbkxhYmVsfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt0cmFuc2xhdGlvbnMubWVudX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvSGlCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2NsYXNzZXMuZmxleH0+e3NlYXJjaElucHV0fTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7bm90aWZpY2F0aW9uQnV0dG9ufVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aGFzQWNjb3VudFNlbGVjdG9yICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxIaUJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yPVwiaW5oZXJpdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzLmFjY291bnRTZWxlY3RvckJ1dHRvbn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc2VzPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBjbGFzc2VzLmFjY291bnRTZWxlY3RvckJ1dHRvbkxhYmVsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17dGhpcy5wcm9wcy5vbkNsaWNrQWNjb3VudFNlbGVjdG9yfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHthY2NvdW50U2VsZWN0b3JDb250ZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9IaUJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2JldGEgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEhpQ29sb3JlZExhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzLmJldGF9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9eydCRVRBJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZXRhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I9e3RoZW1lLnBhbGV0dGUubmV1dHJhbC5kYXJrfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyhoaWRlYWJsZSB8fCBoYXNTZXR0aW5ncykgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEljb25CdXR0b24gY29sb3I9XCJpbmhlcml0XCIgY2xhc3NOYW1lPXtjbGFzc2VzLmljb25CdXR0b259PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtoaWRlYWJsZSAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxDaGV2cm9uRG91YmxlVXAgb25DbGljaz17dGhpcy5oYW5kbGVDb2xsYXBzZX0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtoYXNTZXR0aW5ncyAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxIaUljb25CdWlsZGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXt0aGlzLnByb3BzLm9uQ2xpY2tTZXR0aW5nc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb249XCJmYS1nZWFyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9ezI0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0ljb25CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Ub29sYmFyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9Db2xsYXBzZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtoaWRlYWJsZSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUuY29sbGFwc2VkICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEljb25CdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e3RoaXMuaGFuZGxlQ29sbGFwc2V9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj1cImluaGVyaXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzLnNob3dUb3BCYXJCdXR0b259XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxDaGV2cm9uRG91YmxlRG93biAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0ljb25CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9IaWRkZW4+XG5cbiAgICAgICAgICAgICAgICA8SGlkZGVuIG1kVXA+XG4gICAgICAgICAgICAgICAgICAgIDxUb29sYmFyIGNsYXNzTmFtZT17Y2xhc3Nlcy50b29sYmFyfT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgcmVmPXtyZWZCdXR0b25zfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7c2VhcmNoRm9jdXMgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uIGNsYXNzTmFtZT17Y2xhc3Nlcy5sZWZ0QnV0dG9uTW9iaWxlfSBjb2xvcj1cImluaGVyaXRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJvd0xlZnQgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9JY29uQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzZXMubGVmdEJ1dHRvbk1vYmlsZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uQ2xpY2tNZW51fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I9XCJpbmhlcml0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE1lbnVJY29uIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvSWNvbkJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xhc3Nlcy5mbGV4fT57c2VhcmNoSW5wdXR9PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICB7bm90aWZpY2F0aW9uQnV0dG9ufVxuICAgICAgICAgICAgICAgICAgICAgICAgeyhoYXNBY2NvdW50U2VsZWN0b3IgfHwgaGFzU2V0dGluZ3MpICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xhc3Nlcy5yaWdodENvbXBvbmVudE1vYmlsZX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj1cImluaGVyaXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17dGhpcy5oYW5kbGVPcGVuTWVudX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtb3ducz17dGhpcy5zdGF0ZS5tZW51QW5jaG9yID8gJ3RvcC1iYXItbW9iaWxlLW1lbnUnIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGFzcG9wdXA9XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPERvdHNWZXJ0aWNhbCAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0ljb25CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxNZW51XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cInRvcC1iYXItbW9iaWxlLW1lbnVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5jaG9yRWw9e3RoaXMuc3RhdGUubWVudUFuY2hvcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZW49e0Jvb2xlYW4odGhpcy5zdGF0ZS5tZW51QW5jaG9yKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xvc2U9e3RoaXMuaGFuZGxlQ2xvc2VNZW51fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFwZXJQcm9wcz17eyBzdHlsZTogeyBtYXhXaWR0aDogMjY0IH0gfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2hhc0FjY291bnRTZWxlY3RvciAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE1lbnVJdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT1cImFjY291bnQtc2VsZWN0b3JcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVNZW51SXRlbUNsaWNrKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHMub25DbGlja0FjY291bnRTZWxlY3RvcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc2VzPXt7IHJvb3Q6IGNsYXNzZXMuYWNjb3VudFNlbGVjdG9yQnV0dG9uTGFiZWwgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHthY2NvdW50U2VsZWN0b3JDb250ZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvTWVudUl0ZW0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2hhc1NldHRpbmdzICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TWVudUl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PVwic2V0dGluZ3NcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVNZW51SXRlbUNsaWNrKHRoaXMucHJvcHMub25DbGlja1NldHRpbmdzKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZXR0aW5nc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvTWVudUl0ZW0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L01lbnU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICA8L1Rvb2xiYXI+XG4gICAgICAgICAgICAgICAgPC9IaWRkZW4+XG4gICAgICAgICAgICA8L0FwcEJhcj5cbiAgICAgICAgKTtcbiAgICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHdpdGhTdHlsZXMoc3R5bGVzLCB7IHdpdGhUaGVtZTogdHJ1ZSwgbmFtZTogJ0htdWlIaVRvcEJhcicgfSkoSGlUb3BCYXIpO1xuIl19
113608
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9IaVRvcEJhci9IaVRvcEJhci5qcyJdLCJuYW1lcyI6WyJzdHlsZXMiLCJyb290Iiwid2lkdGgiLCJib3hTaGFkb3ciLCJjb2xvclByaW1hcnkiLCJiYWNrZ3JvdW5kQ29sb3IiLCJ0aGVtZSIsInBhbGV0dGUiLCJiYWNrZ3JvdW5kMyIsImNvbG9yIiwiYmFja2dyb3VuZDEiLCJ0ZXh0Iiwic2Vjb25kYXJ5IiwiY29sb3JQcmltYXJ5Rm9jdXMiLCJiYWNrZ3JvdW5kMiIsInRvb2xiYXIiLCJtaW5IZWlnaHQiLCJzcGFjaW5nIiwidW5pdCIsImxlZnRCdXR0b25Nb2JpbGUiLCJtYXJnaW5MZWZ0IiwibWFyZ2luUmlnaHQiLCJsZWZ0QnV0dG9uIiwicGFkZGluZ0xlZnQiLCJtaW5XaWR0aCIsImxlZnRCdXR0b25MYWJlbCIsImZvbnRTaXplIiwiaGVpZ2h0IiwiZmxleCIsInJpZ2h0Q29tcG9uZW50TW9iaWxlIiwiYWNjb3VudFNlbGVjdG9yQnV0dG9uIiwiYm9yZGVyTGVmdCIsImJvcmRlckNvbG9yIiwiZGlzcGxheSIsIm1heFdpZHRoIiwiYWNjb3VudFNlbGVjdG9yQnV0dG9uTGFiZWwiLCJ0ZXh0T3ZlcmZsb3ciLCJvdmVyZmxvdyIsIndoaXRlU3BhY2UiLCJpY29uQnV0dG9uIiwic2hvd1RvcEJhckJ1dHRvbiIsInBvc2l0aW9uIiwicmlnaHQiLCJtYXJnaW5Ub3AiLCJub3RpZmljYXRpb25CdXR0b24iLCJiZXRhV2l0aG91dEFjY291bnRTZWxlY3RvciIsInNlYXJjaElucHV0Iiwic2VhcmNoSW5wdXRGb2N1c2VkIiwibm90aWZpY2F0aW9uQmFkZ2UiLCJlbmRBZG9ybm1lbnRCdXR0b24iLCJsaW5lSGVpZ2h0IiwicGFkZGluZyIsIm1hcmdpbiIsInRleHRUcmFuc2Zvcm0iLCJmb250V2VpZ2h0IiwidHlwb2dyYXBoeSIsImZvbnRXZWlnaHRSZWd1bGFyIiwiY29sbGFwc2VPdmVyZmxvdyIsIkhpVG9wQmFyIiwicHJvcHMiLCJzdGF0ZSIsImNvbGxhcHNlZCIsIm1lbnVBbmNob3IiLCJoYW5kbGVDb2xsYXBzZSIsImJpbmQiLCJoYW5kbGVDbGlja01lbnUiLCJoYW5kbGVPcGVuTWVudSIsImhhbmRsZUNsb3NlTWVudSIsImhhbmRsZU1lbnVJdGVtQ2xpY2siLCJldmVudCIsInNldFN0YXRlIiwiY3VycmVudFRhcmdldCIsImNhbGxiYWNrIiwib25DbGlja1JldHVybiIsImNsYXNzZXMiLCJub3RpZmljYXRpb25WYWx1ZSIsImJldGEiLCJoaWRlYWJsZSIsImhhc1NldHRpbmdzIiwiaGFzQWNjb3VudFNlbGVjdG9yIiwidHJhbnNsYXRpb25zIiwib25DbGlja01lbnUiLCJhY2NvdW50U2VsZWN0b3JDb250ZW50IiwicmVmQnV0dG9ucyIsInNlYXJjaEZvY3VzIiwiY29sb3JQcmltYXJ5Q2xhc3MiLCJvbkNsaWNrTm90aWZpY2F0aW9ucyIsImJhY2siLCJtZW51IiwibGFiZWwiLCJvbkNsaWNrQWNjb3VudFNlbGVjdG9yIiwibmV1dHJhbCIsImRhcmsiLCJvbkNsaWNrU2V0dGluZ3MiLCJCb29sZWFuIiwic3R5bGUiLCJDb21wb25lbnQiLCJwcm9wVHlwZXMiLCJvbmVPZlR5cGUiLCJzdHJpbmciLCJub2RlIiwiYm9vbCIsIm9iamVjdCIsIm51bWJlciIsImZ1bmMiLCJpc1JlcXVpcmVkIiwib25lT2YiLCJkZWZhdWx0UHJvcHMiLCJzZWFyY2giLCJhbGxfdHlwZXMiLCJ3aXRoVGhlbWUiLCJuYW1lIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOztBQU9BOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7Ozs7Ozs7OztBQUVPLElBQU1BLDBCQUFTLFNBQVRBLE1BQVM7QUFBQSxXQUFVO0FBQzVCQyxjQUFNO0FBQ0ZDLG1CQUFPLE1BREw7QUFFRkMsdUJBQVc7QUFGVCxTQURzQjtBQUs1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YjtBQXFDZjs7O0FBR0FuQiwwQkFBc0Isb0JBQVVrQixJQXhDakI7QUF5Q2Y7OztBQUdBL0IsbUJBQWUsb0JBQVUrQixJQUFWLENBQWVDLFVBNUNmO0FBNkNmOzs7QUFHQVoscUJBQWlCLG9CQUFVVyxJQWhEWjtBQWlEZjs7OztBQUlBL0QsY0FBVSxvQkFBVWlFLEtBQVYsQ0FBZ0IsQ0FBQyxPQUFELEVBQVUsVUFBVixFQUFzQixRQUF0QixFQUFnQyxRQUFoQyxDQUFoQixDQXJESztBQXNEZjs7O0FBR0F2QixnQkFBWSxvQkFBVXFCLElBekRQO0FBMERmOzs7QUFHQXBCLGlCQUFhLG9CQUFVaUIsSUFBVixDQUFlSSxVQTdEYjtBQThEZjs7O0FBR0EzRCxpQkFBYSxvQkFBVXNELElBQVYsQ0FBZUssVUFqRWI7QUFrRWY7OztBQUdBbkcsV0FBTyxvQkFBVWdHLE1BckVGO0FBc0VmOzs7QUFHQXRCLGtCQUFjLG9CQUFVc0I7QUF6RVQsQztBQURqQjVDLFEsQ0E0RUtpRCxZLEdBQWU7QUFDbEI5QixjQUFVLEtBRFE7QUFFbEJDLGlCQUFhLEtBRks7QUFHbEJDLHdCQUFvQixLQUhGO0FBSWxCSyxpQkFBYSxLQUpLO0FBS2xCSixrQkFBYztBQUNWTyxjQUFNLE1BREk7QUFFVkMsY0FBTSxNQUZJO0FBR1ZvQixnQkFBUSxRQUhFO0FBSVZDLG1CQUFXO0FBSkQ7QUFMSSxDO2tCQXNQWCwwQkFBVzdHLE1BQVgsRUFBbUIsRUFBRThHLFdBQVcsSUFBYixFQUFtQkMsTUFBTSxjQUF6QixFQUFuQixFQUE4RHJELFFBQTlELEMiLCJmaWxlIjoiSGlUb3BCYXIuanMiLCJzb3VyY2VSb290IjoiL2hvbWUvdmRvc3NhbnRvcy9kZXYvaGlwYXktbWF0ZXJpYWwtdWkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBIaWRkZW4gZnJvbSAnbWF0ZXJpYWwtdWkvSGlkZGVuJztcbmltcG9ydCBBcHBCYXIgZnJvbSAnbWF0ZXJpYWwtdWkvQXBwQmFyJztcbmltcG9ydCBUb29sYmFyIGZyb20gJ21hdGVyaWFsLXVpL1Rvb2xiYXInO1xuaW1wb3J0IEljb25CdXR0b24gZnJvbSAnbWF0ZXJpYWwtdWkvSWNvbkJ1dHRvbic7XG5pbXBvcnQgQ29sbGFwc2UgZnJvbSAnbWF0ZXJpYWwtdWkvdHJhbnNpdGlvbnMvQ29sbGFwc2UnO1xuaW1wb3J0IHtcbiAgICBDaGV2cm9uRG91YmxlVXAsXG4gICAgQ2hldnJvbkRvdWJsZURvd24sXG4gICAgTWVudSBhcyBNZW51SWNvbixcbiAgICBBcnJvd0xlZnQsXG4gICAgRG90c1ZlcnRpY2FsLFxufSBmcm9tICdtZGktbWF0ZXJpYWwtdWknO1xuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQgTWVudSwgeyBNZW51SXRlbSB9IGZyb20gJ21hdGVyaWFsLXVpL01lbnUnO1xuaW1wb3J0IHdpdGhTdHlsZXMgZnJvbSAnLi4vc3R5bGVzL3dpdGhTdHlsZXMnO1xuaW1wb3J0IEhpSWNvbkJ1aWxkZXIgZnJvbSAnLi4vdXRpbHMvSGlJY29uQnVpbGRlcic7XG5pbXBvcnQgSGlCYWRnZSBmcm9tICcuLi9IaUJhZGdlJztcbmltcG9ydCBIaUJ1dHRvbiBmcm9tICcuLi9IaUJ1dHRvbic7XG5pbXBvcnQgSGlDb2xvcmVkTGFiZWwgZnJvbSAnLi4vSGlDb2xvcmVkTGFiZWwnO1xuaW1wb3J0IHsgZ2V0Q29udHJhc3RlZFRleHRDb2xvciwgZmFkZSB9IGZyb20gJy4uL3N0eWxlcy9jb2xvck1hbmlwdWxhdG9yJztcblxuZXhwb3J0IGNvbnN0IHN0eWxlcyA9IHRoZW1lID0+ICh7XG4gICAgcm9vdDoge1xuICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICBib3hTaGFkb3c6ICcwcHggMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTYpJyxcbiAgICB9LFxuICAgIGNvbG9yUHJpbWFyeToge1xuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lLnBhbGV0dGUuYmFja2dyb3VuZDMsXG4gICAgICAgIGNvbG9yOiBnZXRDb250cmFzdGVkVGV4dENvbG9yKFxuICAgICAgICAgICAgdGhlbWUucGFsZXR0ZS5iYWNrZ3JvdW5kMSxcbiAgICAgICAgICAgIHRoZW1lLnBhbGV0dGUudGV4dC5zZWNvbmRhcnksXG4gICAgICAgICAgICAnI0ZGRicsXG4gICAgICAgICksXG4gICAgfSxcbiAgICBjb2xvclByaW1hcnlGb2N1czoge1xuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lLnBhbGV0dGUuYmFja2dyb3VuZDIsXG4gICAgICAgIGNvbG9yOiBnZXRDb250cmFzdGVkVGV4dENvbG9yKFxuICAgICAgICAgICAgdGhlbWUucGFsZXR0ZS5iYWNrZ3JvdW5kMixcbiAgICAgICAgICAgIHRoZW1lLnBhbGV0dGUudGV4dC5zZWNvbmRhcnksXG4gICAgICAgICAgICAnI0ZGRicsXG4gICAgICAgICksXG4gICAgfSxcbiAgICB0b29sYmFyOiB7XG4gICAgICAgIG1pbkhlaWdodDogOCAqIHRoZW1lLnNwYWNpbmcudW5pdCxcbiAgICB9LFxuICAgIGxlZnRCdXR0b25Nb2JpbGU6IHtcbiAgICAgICAgbWFyZ2luTGVmdDogLTEuNSAqIHRoZW1lLnNwYWNpbmcudW5pdCxcbiAgICAgICAgbWFyZ2luUmlnaHQ6IDEuNSAqIHRoZW1lLnNwYWNpbmcudW5pdCxcbiAgICB9LFxuICAgIGxlZnRCdXR0b246IHtcbiAgICAgICAgcGFkZGluZ0xlZnQ6IDAsXG4gICAgICAgIG1hcmdpbkxlZnQ6IC0xLjUgKiB0aGVtZS5zcGFjaW5nLnVuaXQsXG4gICAgICAgIG1pbldpZHRoOiAxNiAqIHRoZW1lLnNwYWNpbmcudW5pdCxcbiAgICB9LFxuICAgIGxlZnRCdXR0b25MYWJlbDoge1xuICAgICAgICBjb2xvcjogdGhlbWUucGFsZXR0ZS50ZXh0LnNlY29uZGFyeSxcbiAgICAgICAgbWFyZ2luTGVmdDogMi41ICogdGhlbWUuc3BhY2luZy51bml0LFxuICAgICAgICBmb250U2l6ZTogMTQsXG4gICAgICAgIGhlaWdodDogMTYsXG4gICAgfSxcbiAgICBmbGV4OiB7XG4gICAgICAgIGZsZXg6IDEsXG4gICAgfSxcbiAgICByaWdodENvbXBvbmVudE1vYmlsZToge1xuICAgICAgICBtYXJnaW5SaWdodDogLTEuNSAqIHRoZW1lLnNwYWNpbmcudW5pdCxcbiAgICB9LFxuICAgIGFjY291bnRTZWxlY3RvckJ1dHRvbjoge1xuICAgICAgICBtYXJnaW5SaWdodDogMS41ICogdGhlbWUuc3BhY2luZy51bml0LFxuICAgICAgICBib3JkZXJMZWZ0OiAnc29saWQgMXB4JyxcbiAgICAgICAgYm9yZGVyQ29sb3I6IGZhZGUoJyMwMDAnLCAwLjEyKSxcbiAgICAgICAgZGlzcGxheTogJ2lubGluZS1ibG9jaycsXG4gICAgICAgIG1pbldpZHRoOiAxNDQsXG4gICAgICAgIG1heFdpZHRoOiAyODgsXG4gICAgfSxcbiAgICBhY2NvdW50U2VsZWN0b3JCdXR0b25MYWJlbDoge1xuICAgICAgICB0ZXh0T3ZlcmZsb3c6ICdlbGxpcHNpcycsXG4gICAgICAgIG92ZXJmbG93OiAnaGlkZGVuJyxcbiAgICAgICAgd2hpdGVTcGFjZTogJ25vd3JhcCcsXG4gICAgfSxcbiAgICBpY29uQnV0dG9uOiB7XG4gICAgICAgIG1hcmdpblJpZ2h0OiAtMiAqIHRoZW1lLnNwYWNpbmcudW5pdCxcbiAgICB9LFxuICAgIHNob3dUb3BCYXJCdXR0b246IHtcbiAgICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgICAgIHJpZ2h0OiAzMyxcbiAgICAgICAgbWFyZ2luVG9wOiA1LFxuICAgIH0sXG4gICAgbm90aWZpY2F0aW9uQnV0dG9uOiB7XG4gICAgICAgIGNvbG9yOiB0aGVtZS5wYWxldHRlLnRleHQuc2Vjb25kYXJ5LFxuICAgICAgICBtaW5XaWR0aDogMzIsXG4gICAgfSxcbiAgICBiZXRhV2l0aG91dEFjY291bnRTZWxlY3Rvcjoge1xuICAgICAgICBtYXJnaW5MZWZ0OiAxLjUgKiB0aGVtZS5zcGFjaW5nLnVuaXQsXG4gICAgfSxcbiAgICBzZWFyY2hJbnB1dDoge1xuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IGAke3RoZW1lLnBhbGV0dGUuYmFja2dyb3VuZDF9ICFpbXBvcnRhbnRgLFxuICAgIH0sXG4gICAgc2VhcmNoSW5wdXRGb2N1c2VkOiB7XG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogYCR7dGhlbWUucGFsZXR0ZS5iYWNrZ3JvdW5kM30gIWltcG9ydGFudGAsXG4gICAgfSxcbiAgICBub3RpZmljYXRpb25CYWRnZToge1xuICAgICAgICBtYXJnaW5SaWdodDogMTAsXG4gICAgfSxcbiAgICBlbmRBZG9ybm1lbnRCdXR0b246IHtcbiAgICAgICAgaGVpZ2h0OiAzMixcbiAgICAgICAgbGluZUhlaWdodDogMzIsXG4gICAgICAgIHBhZGRpbmc6IDAsXG4gICAgICAgIG1hcmdpbjogMCxcbiAgICAgICAgZGlzcGxheTogJ2lubGluZS1ibG9jaycsXG4gICAgICAgIGNvbG9yOiBmYWRlKCcjMDAwJywgMC4zOCksXG4gICAgICAgIHRleHRUcmFuc2Zvcm06ICdjYXBpdGFsaXplJyxcbiAgICAgICAgZm9udFdlaWdodDogdGhlbWUudHlwb2dyYXBoeS5mb250V2VpZ2h0UmVndWxhcixcbiAgICAgICAgbWluV2lkdGg6IDUwLFxuICAgIH0sXG4gICAgY29sbGFwc2VPdmVyZmxvdzoge1xuICAgICAgICBvdmVyZmxvdzogJ2luaGVyaXQnLFxuICAgIH0sXG59KTtcblxuY2xhc3MgSGlUb3BCYXIgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICAgIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBDb250ZW51IGR1IGJvdXRvbiDDoCBkcm9pdGUgZGUgbCdpbnB1dCBkZSByZWNoZXJjaGUgKGFjY291bnRTZWxlY3RvcilcbiAgICAgICAgICovXG4gICAgICAgIGFjY291bnRTZWxlY3RvckNvbnRlbnQ6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5zdHJpbmcsIFByb3BUeXBlcy5ub2RlXSksXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBEw6lmaW5pdCBzaSBsJ29uIGRvaXQgYWZmaWNoZXIgbGUgYm91dG9uIFwiQmV0YVwiIG91IG5vblxuICAgICAgICAgKi9cbiAgICAgICAgYmV0YTogUHJvcFR5cGVzLmJvb2wsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBQZXJtZXQgZGVzIHN1cmNoYXJnZXMgZGUgc3R5bGVcbiAgICAgICAgICovXG4gICAgICAgIGNsYXNzZXM6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBEw6lmaW5pdCBzaSBsJ29uIGRvaXQgYWZmaWNoZXIgbGUgYm91dG9uIFwiQWNjb3VudCBzZWxlY3RvclwiIG91IG5vblxuICAgICAgICAgKi9cbiAgICAgICAgaGFzQWNjb3VudFNlbGVjdG9yOiBQcm9wVHlwZXMuYm9vbCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIETDqWZpbml0IHNpIGwnb24gZG9pdCBhZmZpY2hlciBsZSBib3V0b24gXCJTZXR0aW5nc1wiIG91IG5vblxuICAgICAgICAgKi9cbiAgICAgICAgaGFzU2V0dGluZ3M6IFByb3BUeXBlcy5ib29sLFxuICAgICAgICAvKipcbiAgICAgICAgICogTGEgVG9wQmFyIHBldXQgw6p0cmUgY2FjaMOpZSB2aWUgbGUgYm91dG9uIGRvdWJsZSBjaGV2cm9uXG4gICAgICAgICAqL1xuICAgICAgICBoaWRlYWJsZTogUHJvcFR5cGVzLmJvb2wsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBMYSB2YWxldXIgYSBhZmZpY2hlciBkYW5zIGxlIGJvdXR0b24gZGUgbm90aWZpY2F0aW9uLlxuICAgICAgICAgKi9cbiAgICAgICAgbm90aWZpY2F0aW9uVmFsdWU6IFByb3BUeXBlcy5udW1iZXIsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBGb25jdGlvbiBkZSBjYWxsYmFjayBhdSBjbGljayBzdXIgbCdhY2NvdW50U2VsZWN0b3InXG4gICAgICAgICAqL1xuICAgICAgICBvbkNsaWNrQWNjb3VudFNlbGVjdG9yOiBQcm9wVHlwZXMuZnVuYyxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEZvbmN0aW9uIGRlIGNhbGxiYWNrIGF1IGNsaWNrIHN1ciBsZSBtZW51XG4gICAgICAgICAqL1xuICAgICAgICBvbkNsaWNrTWVudTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEZvbmN0aW9uIGRlIGNhbGxiYWNrIGF1IGNsaWNrIHN1ciBsZSBib3V0b24gZGUgbm90aWZpY2F0aW9uc1xuICAgICAgICAgKi9cbiAgICAgICAgb25DbGlja05vdGlmaWNhdGlvbnM6IFByb3BUeXBlcy5mdW5jLFxuICAgICAgICAvKipcbiAgICAgICAgICogRm9uY3Rpb24gZGUgY2FsbGJhY2sgYXUgY2xpY2sgc3VyIGxlIGJvdXRvbiBcIlJldG91clwiIGR1IG1lbnVcbiAgICAgICAgICovXG4gICAgICAgIG9uQ2xpY2tSZXR1cm46IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBGb25jdGlvbiBkZSBjYWxsYmFjayBhdSBjbGljayBzdXIgbGUgYm91dG9uIFwiU2V0dGluZ3NcIiBkdSBtZW51XG4gICAgICAgICAqL1xuICAgICAgICBvbkNsaWNrU2V0dGluZ3M6IFByb3BUeXBlcy5mdW5jLFxuICAgICAgICAvKipcbiAgICAgICAgICogUG9zaXRpb25lbWVudCBkZSBsYSB0b3BCYXIuIFRoZSBiZWhhdmlvciBvZiB0aGUgZGlmZmVyZW50IG9wdGlvbnMgaXMgZGVzY3JpYmVkXG4gICAgICAgICAqIFtoZXJlXShodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL0xlYXJuL0NTUy9DU1NfbGF5b3V0L1Bvc2l0aW9uaW5nKS5cbiAgICAgICAgICovXG4gICAgICAgIHBvc2l0aW9uOiBQcm9wVHlwZXMub25lT2YoWydmaXhlZCcsICdhYnNvbHV0ZScsICdzdGlja3knLCAnc3RhdGljJ10pLFxuICAgICAgICAvKipcbiAgICAgICAgICogIFBhc3NlIHVuZSByZWYgY2FsbGJhY2sgw6AgbGEgZGl2IGNvbnRlbmFudCBsZXMgYm91dG9ucyBcIm1lbnVcIiBldCBcImJhY2tcIlxuICAgICAgICAgKi9cbiAgICAgICAgcmVmQnV0dG9uczogUHJvcFR5cGVzLmZ1bmMsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBFdGF0IGRlIGZvY3VzLlxuICAgICAgICAgKi9cbiAgICAgICAgc2VhcmNoRm9jdXM6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJbnB1dCBkZSByZWNoZXJjaGVcbiAgICAgICAgICovXG4gICAgICAgIHNlYXJjaElucHV0OiBQcm9wVHlwZXMubm9kZS5pc1JlcXVpcmVkLFxuICAgICAgICAvKipcbiAgICAgICAgICogQGlnbm9yZVxuICAgICAgICAgKi9cbiAgICAgICAgdGhlbWU6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUcmFkdWN0aW9uc1xuICAgICAgICAgKi9cbiAgICAgICAgdHJhbnNsYXRpb25zOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIH07XG4gICAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICAgICAgaGlkZWFibGU6IGZhbHNlLFxuICAgICAgICBoYXNTZXR0aW5nczogZmFsc2UsXG4gICAgICAgIGhhc0FjY291bnRTZWxlY3RvcjogZmFsc2UsXG4gICAgICAgIHNlYXJjaEZvY3VzOiBmYWxzZSxcbiAgICAgICAgdHJhbnNsYXRpb25zOiB7XG4gICAgICAgICAgICBiYWNrOiAnQmFjaycsXG4gICAgICAgICAgICBtZW51OiAnTWVudScsXG4gICAgICAgICAgICBzZWFyY2g6ICdzZWFyY2gnLFxuICAgICAgICAgICAgYWxsX3R5cGVzOiAnQWxsIFR5cGVzJyxcbiAgICAgICAgfSxcbiAgICB9O1xuXG4gICAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICAgICAgc3VwZXIocHJvcHMpO1xuXG4gICAgICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICAgICAgICBjb2xsYXBzZWQ6IGZhbHNlLFxuICAgICAgICAgICAgbWVudUFuY2hvcjogbnVsbCxcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLmhhbmRsZUNvbGxhcHNlID0gdGhpcy5oYW5kbGVDb2xsYXBzZS5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLmhhbmRsZUNsaWNrTWVudSA9IHRoaXMuaGFuZGxlQ2xpY2tNZW51LmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMuaGFuZGxlT3Blbk1lbnUgPSB0aGlzLmhhbmRsZU9wZW5NZW51LmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMuaGFuZGxlQ2xvc2VNZW51ID0gdGhpcy5oYW5kbGVDbG9zZU1lbnUuYmluZCh0aGlzKTtcbiAgICAgICAgdGhpcy5oYW5kbGVNZW51SXRlbUNsaWNrID0gdGhpcy5oYW5kbGVNZW51SXRlbUNsaWNrLmJpbmQodGhpcyk7XG4gICAgfVxuXG4gICAgaGFuZGxlT3Blbk1lbnUoZXZlbnQpIHtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IG1lbnVBbmNob3I6IGV2ZW50LmN1cnJlbnRUYXJnZXQgfSk7XG4gICAgfVxuXG4gICAgaGFuZGxlQ2xvc2VNZW51KCkge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHsgbWVudUFuY2hvcjogbnVsbCB9KTtcbiAgICB9XG5cbiAgICBoYW5kbGVNZW51SXRlbUNsaWNrKGNhbGxiYWNrKSB7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyBtZW51QW5jaG9yOiBudWxsIH0pO1xuICAgICAgICBjYWxsYmFjaygpO1xuICAgIH1cblxuICAgIGhhbmRsZUNvbGxhcHNlKCkge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHsgY29sbGFwc2VkOiAhdGhpcy5zdGF0ZS5jb2xsYXBzZWQgfSk7XG4gICAgfVxuXG4gICAgaGFuZGxlQ2xpY2tNZW51KCkge1xuICAgICAgICB0aGlzLnByb3BzLm9uQ2xpY2tSZXR1cm4oKTtcbiAgICB9XG5cbiAgICByZW5kZXIoKSB7XG4gICAgICAgIGNvbnN0IHtcbiAgICAgICAgICAgIGNsYXNzZXMsXG4gICAgICAgICAgICB0aGVtZSxcbiAgICAgICAgICAgIG5vdGlmaWNhdGlvblZhbHVlLFxuICAgICAgICAgICAgYmV0YSxcbiAgICAgICAgICAgIGhpZGVhYmxlLFxuICAgICAgICAgICAgaGFzU2V0dGluZ3MsXG4gICAgICAgICAgICBoYXNBY2NvdW50U2VsZWN0b3IsXG4gICAgICAgICAgICB0cmFuc2xhdGlvbnMsXG4gICAgICAgICAgICBvbkNsaWNrTWVudSxcbiAgICAgICAgICAgIGFjY291bnRTZWxlY3RvckNvbnRlbnQsXG4gICAgICAgICAgICByZWZCdXR0b25zLFxuICAgICAgICAgICAgc2VhcmNoSW5wdXQsXG4gICAgICAgICAgICBzZWFyY2hGb2N1cyxcbiAgICAgICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICAgICAgY29uc3QgY29sb3JQcmltYXJ5Q2xhc3MgPSBzZWFyY2hGb2N1cyA/IGNsYXNzZXMuY29sb3JQcmltYXJ5Rm9jdXMgOiBjbGFzc2VzLmNvbG9yUHJpbWFyeTtcblxuICAgICAgICBjb25zdCBub3RpZmljYXRpb25CdXR0b24gPVxuICAgICAgICAgICAgbm90aWZpY2F0aW9uVmFsdWUgPiAwID8gKFxuICAgICAgICAgICAgICAgIDxIaUJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzZXMubm90aWZpY2F0aW9uQnV0dG9ufVxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXt0aGlzLnByb3BzLm9uQ2xpY2tOb3RpZmljYXRpb25zfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPEhpQmFkZ2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXtub3RpZmljYXRpb25WYWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzZXM9e3sgcm9vdDogY2xhc3Nlcy5ub3RpZmljYXRpb25CYWRnZSB9fVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8SGlJY29uQnVpbGRlciBpY29uPVwiZmEtYmVsbC1vXCIgc2l6ZT17MjV9IC8+XG4gICAgICAgICAgICAgICAgICAgIDwvSGlCYWRnZT5cbiAgICAgICAgICAgICAgICA8L0hpQnV0dG9uPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAnJ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPEFwcEJhclxuICAgICAgICAgICAgICAgIGNsYXNzZXM9e3sgcm9vdDogY2xhc3Nlcy5yb290LCBjb2xvclByaW1hcnk6IGNvbG9yUHJpbWFyeUNsYXNzIH19XG4gICAgICAgICAgICAgICAgcG9zaXRpb249e3RoaXMucHJvcHMucG9zaXRpb259XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPEhpZGRlbiBzbURvd24+XG4gICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8Q29sbGFwc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbj17IXRoaXMuc3RhdGUuY29sbGFwc2VkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lcyh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc2VzLmNvbGxhcHNlT3ZlcmZsb3ddOiAhaGlkZWFibGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPFRvb2xiYXIgY2xhc3NOYW1lPXtjbGFzc2VzLnRvb2xiYXJ9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHJlZj17cmVmQnV0dG9uc30+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7c2VhcmNoRm9jdXMgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEhpQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3Nlcy5sZWZ0QnV0dG9ufVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXt0aGlzLmhhbmRsZUNsaWNrTWVudX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I9XCJpbmhlcml0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJvd0xlZnQgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtjbGFzc2VzLmxlZnRCdXR0b25MYWJlbH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7dHJhbnNsYXRpb25zLmJhY2t9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0hpQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SGlCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzLmxlZnRCdXR0b259XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uQ2xpY2tNZW51fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj1cImluaGVyaXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE1lbnVJY29uIHN0eWxlPXt7IGhlaWdodDogMjQgfX0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtjbGFzc2VzLmxlZnRCdXR0b25MYWJlbH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7dHJhbnNsYXRpb25zLm1lbnV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0hpQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtjbGFzc2VzLmZsZXh9PntzZWFyY2hJbnB1dH08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge25vdGlmaWNhdGlvbkJ1dHRvbn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2hhc0FjY291bnRTZWxlY3RvciAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SGlCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj1cImluaGVyaXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3Nlcy5hY2NvdW50U2VsZWN0b3JCdXR0b259XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3Nlcz17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogY2xhc3Nlcy5hY2NvdW50U2VsZWN0b3JCdXR0b25MYWJlbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e3RoaXMucHJvcHMub25DbGlja0FjY291bnRTZWxlY3Rvcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7YWNjb3VudFNlbGVjdG9yQ29udGVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvSGlCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtiZXRhICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxIaUNvbG9yZWRMYWJlbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lcyh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc2VzLmJldGFXaXRob3V0QWNjb3VudFNlbGVjdG9yXTogIWhhc0FjY291bnRTZWxlY3RvcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD17J0JFVEEnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJldGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj17dGhlbWUucGFsZXR0ZS5uZXV0cmFsLmRhcmt9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7KGhpZGVhYmxlIHx8IGhhc1NldHRpbmdzKSAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SWNvbkJ1dHRvbiBjb2xvcj1cImluaGVyaXRcIiBjbGFzc05hbWU9e2NsYXNzZXMuaWNvbkJ1dHRvbn0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2hpZGVhYmxlICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPENoZXZyb25Eb3VibGVVcCBvbkNsaWNrPXt0aGlzLmhhbmRsZUNvbGxhcHNlfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2hhc1NldHRpbmdzICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEhpSWNvbkJ1aWxkZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e3RoaXMucHJvcHMub25DbGlja1NldHRpbmdzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbj1cImZhLWdlYXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT17MjR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvSWNvbkJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1Rvb2xiYXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L0NvbGxhcHNlPlxuICAgICAgICAgICAgICAgICAgICAgICAge2hpZGVhYmxlICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZS5jb2xsYXBzZWQgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SWNvbkJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17dGhpcy5oYW5kbGVDb2xsYXBzZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yPVwiaW5oZXJpdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzZXMuc2hvd1RvcEJhckJ1dHRvbn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPENoZXZyb25Eb3VibGVEb3duIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvSWNvbkJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L0hpZGRlbj5cblxuICAgICAgICAgICAgICAgIDxIaWRkZW4gbWRVcD5cbiAgICAgICAgICAgICAgICAgICAgPFRvb2xiYXIgY2xhc3NOYW1lPXtjbGFzc2VzLnRvb2xiYXJ9PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiByZWY9e3JlZkJ1dHRvbnN9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtzZWFyY2hGb2N1cyA/IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEljb25CdXR0b24gY2xhc3NOYW1lPXtjbGFzc2VzLmxlZnRCdXR0b25Nb2JpbGV9IGNvbG9yPVwiaW5oZXJpdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEFycm93TGVmdCAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0ljb25CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEljb25CdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3Nlcy5sZWZ0QnV0dG9uTW9iaWxlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17b25DbGlja01lbnV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj1cImluaGVyaXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TWVudUljb24gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9JY29uQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtjbGFzc2VzLmZsZXh9PntzZWFyY2hJbnB1dH08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtub3RpZmljYXRpb25CdXR0b259XG4gICAgICAgICAgICAgICAgICAgICAgICB7KGhhc0FjY291bnRTZWxlY3RvciB8fCBoYXNTZXR0aW5ncykgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtjbGFzc2VzLnJpZ2h0Q29tcG9uZW50TW9iaWxlfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEljb25CdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yPVwiaW5oZXJpdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXt0aGlzLmhhbmRsZU9wZW5NZW51fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1vd25zPXt0aGlzLnN0YXRlLm1lbnVBbmNob3IgPyAndG9wLWJhci1tb2JpbGUtbWVudScgOiBudWxsfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oYXNwb3B1cD1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8RG90c1ZlcnRpY2FsIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvSWNvbkJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE1lbnVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwidG9wLWJhci1tb2JpbGUtbWVudVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNob3JFbD17dGhpcy5zdGF0ZS5tZW51QW5jaG9yfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Blbj17Qm9vbGVhbih0aGlzLnN0YXRlLm1lbnVBbmNob3IpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbG9zZT17dGhpcy5oYW5kbGVDbG9zZU1lbnV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYXBlclByb3BzPXt7IHN0eWxlOiB7IG1heFdpZHRoOiAyNjQgfSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aGFzQWNjb3VudFNlbGVjdG9yICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TWVudUl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PVwiYWNjb3VudC1zZWxlY3RvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZU1lbnVJdGVtQ2xpY2soXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5vbkNsaWNrQWNjb3VudFNlbGVjdG9yLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzZXM9e3sgcm9vdDogY2xhc3Nlcy5hY2NvdW50U2VsZWN0b3JCdXR0b25MYWJlbCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2FjY291bnRTZWxlY3RvckNvbnRlbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9NZW51SXRlbT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aGFzU2V0dGluZ3MgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxNZW51SXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9XCJzZXR0aW5nc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZU1lbnVJdGVtQ2xpY2sodGhpcy5wcm9wcy5vbkNsaWNrU2V0dGluZ3MpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNldHRpbmdzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9NZW51SXRlbT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvTWVudT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgIDwvVG9vbGJhcj5cbiAgICAgICAgICAgICAgICA8L0hpZGRlbj5cbiAgICAgICAgICAgIDwvQXBwQmFyPlxuICAgICAgICApO1xuICAgIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgd2l0aFN0eWxlcyhzdHlsZXMsIHsgd2l0aFRoZW1lOiB0cnVlLCBuYW1lOiAnSG11aUhpVG9wQmFyJyB9KShIaVRvcEJhcik7XG4iXX0=
113526
113609
 
113527
113610
  /***/ }),
113528
113611
  /* 2888 */