@hipay/hipay-material-ui 1.0.0-beta.26 → 1.0.0-beta.27
Sign up to get free protection for your applications and to get access to all the features.
- package/HI-CHANGELOG.md +37 -0
- package/HiForm/HiFormControl.js +4 -4
- package/HiSelect/HiSelect.js +8 -6
- package/HiTable/BodyCells/CellRate.js +3 -3
- package/HiTable/HiTableFooter.js +5 -6
- package/es/HiForm/HiFormControl.js +4 -4
- package/es/HiSelect/HiSelect.js +8 -6
- package/es/HiTable/BodyCells/CellRate.js +3 -3
- package/es/HiTable/HiTableFooter.js +6 -6
- package/index.es.js +1 -1
- package/index.js +1 -1
- package/package.json +1 -1
- package/umd/hipay-material-ui.development.js +24 -19
- package/umd/hipay-material-ui.production.min.js +4 -4
@@ -19187,7 +19187,7 @@ var HiFormControl = function (_React$PureComponent) {
|
|
19187
19187
|
error: error,
|
19188
19188
|
ref: rootRef
|
19189
19189
|
}, others),
|
19190
|
-
|
19190
|
+
error && errorText && helperOpen && _react2.default.createElement(
|
19191
19191
|
'div',
|
19192
19192
|
{ className: classes.errorDiv },
|
19193
19193
|
_react2.default.createElement('div', {
|
@@ -19195,7 +19195,7 @@ var HiFormControl = function (_React$PureComponent) {
|
|
19195
19195
|
}),
|
19196
19196
|
errorText
|
19197
19197
|
),
|
19198
|
-
|
19198
|
+
helperIcon && helperText && !error && helperOpen && _react2.default.createElement(
|
19199
19199
|
'div',
|
19200
19200
|
{
|
19201
19201
|
className: classes.helperDiv
|
@@ -19218,11 +19218,11 @@ var HiFormControl = function (_React$PureComponent) {
|
|
19218
19218
|
disabled: disabled,
|
19219
19219
|
focused: !disabled && (focused || hovered)
|
19220
19220
|
}, InputLabelProps),
|
19221
|
-
|
19221
|
+
error && _react2.default.createElement(_mdiMaterialUi.Alert, {
|
19222
19222
|
className: classes.errorIcon,
|
19223
19223
|
onClick: this.handleHelperClick
|
19224
19224
|
}),
|
19225
|
-
|
19225
|
+
helperIcon && helperText && !error && _react2.default.createElement(_mdiMaterialUi.Information, {
|
19226
19226
|
className: (0, _classnames2.default)(classes.helperIcon, _defineProperty({}, classes.helperIconActive, helperOpen)),
|
19227
19227
|
onClick: this.handleHelperClick
|
19228
19228
|
})
|
@@ -19348,7 +19348,7 @@ HiFormControl.defaultProps = {
|
|
19348
19348
|
maxLength: 280
|
19349
19349
|
};
|
19350
19350
|
exports.default = (0, _withStyles2.default)(styles, { name: 'HmuiHiFormControl' })(HiFormControl);
|
19351
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9IaUZvcm0vSGlGb3JtQ29udHJvbC5qcyJdLCJuYW1lcyI6WyJzdHlsZXMiLCJoZWxwZXJUZXh0Q2xhc3NOYW1lIiwiY29sb3IiLCJ0aGVtZSIsInBhbGV0dGUiLCJuZXV0cmFsIiwibm9ybWFsIiwiZm9udFNpemUiLCJ0ZXh0QWxpZ24iLCJtYXJnaW5Ub3AiLCJlcnJvckljb24iLCJ3aWR0aCIsImhlaWdodCIsIm5lZ2F0aXZlIiwicG9zaXRpb24iLCJyaWdodCIsImN1cnNvciIsInRvcCIsImVycm9yRGl2IiwidHlwb2dyYXBoeSIsImg1IiwiYmFja2dyb3VuZENvbG9yIiwicGFkZGluZyIsInZlcnRpY2FsQWxpZ24iLCJib3JkZXJSYWRpdXMiLCJtYXJnaW5Cb3R0b20iLCJmb250V2VpZ2h0IiwiZm9udFdlaWdodFJlZ3VsYXIiLCJhcnJvd0Rvd24iLCJib3JkZXJMZWZ0IiwiYm9yZGVyUmlnaHQiLCJib3JkZXJUb3AiLCJib3R0b20iLCJlcnJvckRpdkFycm93RG93biIsImJvcmRlclRvcENvbG9yIiwiaGVscGVySWNvbiIsImhlbHBlckljb25BY3RpdmUiLCJidXNpbmVzcyIsInByaW1hcnkiLCJoZWxwZXJEaXYiLCJkYXJrIiwiYm94U2hhZG93IiwibGluZUhlaWdodCIsImhlbHBlckRpdkFycm93RG93biIsIkhpRm9ybUNvbnRyb2wiLCJwcm9wcyIsImhhbmRsZUZvY3VzIiwic2V0U3RhdGUiLCJmb2N1c2VkIiwidmFsdWUiLCJzdGF0ZSIsImhvdmVyZWQiLCJoYW5kbGVIb3ZlciIsImhlbHBlck9wZW4iLCJoYW5kbGVIZWxwZXJDbGljayIsImJpbmQiLCJldmVudCIsInByZXZTdGF0ZSIsInByZXZlbnREZWZhdWx0IiwiY2hpbGRyZW4iLCJjbGFzc2VzIiwiY2xhc3NOYW1lIiwiZGlzYWJsZWQiLCJlcnJvciIsImVycm9yVGV4dCIsImlkIiwibGFiZWwiLCJJbnB1dExhYmVsUHJvcHMiLCJoZWxwZXJUZXh0IiwiRm9ybUhlbHBlclRleHRQcm9wcyIsImZ1bGxXaWR0aCIsInJlcXVpcmVkIiwibXVsdGlsaW5lIiwicm9vdFJlZiIsIm1heExlbmd0aCIsIm5iQ2hhcnMiLCJvdGhlcnMiLCJfX2h0bWwiLCJQdXJlQ29tcG9uZW50IiwicHJvcFR5cGVzIiwibm9kZSIsIm9iamVjdCIsInN0cmluZyIsImJvb2wiLCJudW1iZXIiLCJkZWZhdWx0UHJvcHMiLCJuYW1lIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7a1FBQUE7O0FBRUE7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7Ozs7Ozs7Ozs7OztBQUVPLElBQU1BLDBCQUFTLFNBQVRBLE1BQVM7QUFBQSxXQUFVO0FBQzVCQyw2QkFBcUI7QUFDakJDLG1CQUFPQyxNQUFNQyxPQUFOLENBQWNDLE9BQWQsQ0FBc0JDLE1BRFo7QUFFakJDLHNCQUFVLEVBRk87QUFHakJDLHVCQUFXLE9BSE07QUFJakJDLHVCQUFXO0FBSk0sU0FETztBQU81QkMsbUJBQVc7QUFDUEMsbUJBQU8sRUFEQTtBQUVQQyxvQkFBUSxFQUZEO0FBR1BWLG1CQUFPQyxNQUFNQyxPQUFOLENBQWNTLFFBQWQsQ0FBdUJQLE1BSHZCO0FBSVBRLHNCQUFVLFVBSkg7QUFLUEMsbUJBQU8sQ0FMQTtBQU1QQyxvQkFBUSxTQU5EO0FBT1BDLGlCQUFLO0FBUEUsU0FQaUI7QUFnQjVCQywrQkFDT2YsTUFBTWdCLFVBQU4sQ0FBaUJDLEVBRHhCO0FBRUlDLDZCQUFpQmxCLE1BQU1DLE9BQU4sQ0FBY1MsUUFBZCxDQUF1QlAsTUFGNUM7QUFHSUosbUJBQU8sU0FIWDtBQUlJb0IscUJBQVMsVUFKYjtBQUtJQywyQkFBZSxRQUxuQjtBQU1JQywwQkFBYyxDQU5sQjtBQU9JVixzQkFBVSxVQVBkO0FBUUlXLDBCQUFjLENBUmxCO0FBU0lDLHdCQUFZdkIsTUFBTWdCLFVBQU4sQ0FBaUJRO0FBVGpDLFVBaEI0QjtBQTJCNUJDLG1CQUFXO0FBQ1BqQixtQkFBTyxDQURBO0FBRVBDLG9CQUFRLENBRkQ7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RixNQUFNLG1CQUFSLEVBQW5CLEVBQWtEMUMsYUFBbEQsQyIsImZpbGUiOiJIaUZvcm1Db250cm9sLmpzIiwic291cmNlUm9vdCI6Ii9ob21lL21zb3VjeS93b3Jrc3BhY2UvaGlwYXktbWF0ZXJpYWwtdWkiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAaW5oZXJpdGVkQ29tcG9uZW50IEZvcm1Db250cm9sXG5cbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQgeyBBbGVydCwgSW5mb3JtYXRpb24gfSBmcm9tICdtZGktbWF0ZXJpYWwtdWknO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1IZWxwZXJUZXh0IH0gZnJvbSAnbWF0ZXJpYWwtdWkvRm9ybSc7XG5pbXBvcnQgd2l0aFN0eWxlcyBmcm9tICcuLi9zdHlsZXMvd2l0aFN0eWxlcyc7XG5pbXBvcnQgSGlGb3JtTGFiZWwgZnJvbSAnLi9IaUZvcm1MYWJlbCc7XG5pbXBvcnQge2VzY2FwZUhUTUx9IGZyb20gXCIuLi91dGlscy9oaUhlbHBlcnNcIjtcblxuZXhwb3J0IGNvbnN0IHN0eWxlcyA9IHRoZW1lID0+ICh7XG4gICAgaGVscGVyVGV4dENsYXNzTmFtZToge1xuICAgICAgICBjb2xvcjogdGhlbWUucGFsZXR0ZS5uZXV0cmFsLm5vcm1hbCxcbiAgICAgICAgZm9udFNpemU6IDExLFxuICAgICAgICB0ZXh0QWxpZ246ICdyaWdodCcsXG4gICAgICAgIG1hcmdpblRvcDogMixcbiAgICB9LFxuICAgIGVycm9ySWNvbjoge1xuICAgICAgICB3aWR0aDogMTksXG4gICAgICAgIGhlaWdodDogMTksXG4gICAgICAgIGNvbG9yOiB0aGVtZS5wYWxldHRlLm5lZ2F0aXZlLm5vcm1hbCxcbiAgICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgICAgIHJpZ2h0OiA4LFxuICAgICAgICBjdXJzb3I6ICdwb2ludGVyJyxcbiAgICAgICAgdG9wOiAnLTJweCcsXG4gICAgfSxcbiAgICBlcnJvckRpdjoge1xuICAgICAgICAuLi50aGVtZS50eXBvZ3JhcGh5Lmg1LFxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lLnBhbGV0dGUubmVnYXRpdmUubm9ybWFsLFxuICAgICAgICBjb2xvcjogJyNGRkZGRkYnLFxuICAgICAgICBwYWRkaW5nOiAnMTZweCA4cHgnLFxuICAgICAgICB2ZXJ0aWNhbEFsaWduOiAnbWlkZGxlJyxcbiAgICAgICAgYm9yZGVyUmFkaXVzOiAyLFxuICAgICAgICBwb3NpdGlvbjogJ3JlbGF0aXZlJyxcbiAgICAgICAgbWFyZ2luQm90dG9tOiA1LFxuICAgICAgICBmb250V2VpZ2h0OiB0aGVtZS50eXBvZ3JhcGh5LmZvbnRXZWlnaHRSZWd1bGFyLFxuICAgIH0sXG4gICAgYXJyb3dEb3duOiB7XG4gICAgICAgIHdpZHRoOiAwLFxuICAgICAgICBoZWlnaHQ6IDAsXG4gICAgICAgIGJvcmRlckxlZnQ6ICc0cHggc29saWQgdHJhbnNwYXJlbnQnLFxuICAgICAgICBib3JkZXJSaWdodDogJzRweCBzb2xpZCB0cmFuc3BhcmVudCcsXG4gICAgICAgIGJvcmRlclRvcDogJzRweCBzb2xpZCAjMDAwJyxcbiAgICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgICAgIGJvdHRvbTogLTQsXG4gICAgICAgIHJpZ2h0OiAxNCxcbiAgICB9LFxuICAgIGVycm9yRGl2QXJyb3dEb3duOiB7XG4gICAgICAgIGJvcmRlclRvcENvbG9yOiB0aGVtZS5wYWxldHRlLm5lZ2F0aXZlLm5vcm1hbCxcbiAgICB9LFxuICAgIGhlbHBlckljb246IHtcbiAgICAgICAgd2lkdGg6IDE5LFxuICAgICAgICBoZWlnaHQ6IDE5LFxuICAgICAgICBjb2xvcjogdGhlbWUucGFsZXR0ZS5uZXV0cmFsLm5vcm1hbCxcbiAgICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgICAgIHJpZ2h0OiA4LFxuICAgICAgICBjdXJzb3I6ICdwb2ludGVyJyxcbiAgICAgICAgdG9wOiAnLTJweCcsXG4gICAgfSxcbiAgICBoZWxwZXJJY29uQWN0aXZlOiB7XG4gICAgICAgIGNvbG9yOiB0aGVtZS5wYWxldHRlLmJ1c2luZXNzLnByaW1hcnkubm9ybWFsLFxuICAgIH0sXG4gICAgaGVscGVyRGl2OiB7XG4gICAgICAgIC4uLnRoZW1lLnR5cG9ncmFwaHkuaDUsXG4gICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogJyNmZmZmZmYnLFxuICAgICAgICBjb2xvcjogdGhlbWUucGFsZXR0ZS5uZXV0cmFsLmRhcmssXG4gICAgICAgIHBhZGRpbmc6ICcxNnB4IDhweCcsXG4gICAgICAgIGJvcmRlclJhZGl1czogMixcbiAgICAgICAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gICAgICAgIG1hcmdpbkJvdHRvbTogNSxcbiAgICAgICAgZm9udFdlaWdodDogdGhlbWUudHlwb2dyYXBoeS5mb250V2VpZ2h0UmVndWxhcixcbiAgICAgICAgYm94U2hhZG93OiAnMHB4IDFweCA3cHggcmdiYSgwLCAwLCAwLCAwLjE2KScsXG4gICAgICAgIGxpbmVIZWlnaHQ6IDEuNSxcbiAgICB9LFxuICAgIGhlbHBlckRpdkFycm93RG93bjoge1xuICAgICAgICBib3JkZXJUb3BDb2xvcjogJyNmZmZmZmYnLFxuICAgIH0sXG59KTtcblxuLyoqXG4gKiBDaGFtcHMgaW5wdXQgcG91ciBmb3JtdWxhaXJlXG4gKi9cbmNsYXNzIEhpRm9ybUNvbnRyb2wgZXh0ZW5kcyBSZWFjdC5QdXJlQ29tcG9uZW50IHtcbiAgICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgICAgICAvKipcbiAgICAgICAgICogQ29udGVudSBkdSBmb3JtIGNvbnRyb2xcbiAgICAgICAgICovXG4gICAgICAgIGNoaWxkcmVuOiBQcm9wVHlwZXMubm9kZSxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFVzZWZ1bCB0byBleHRlbmQgdGhlIHN0eWxlIGFwcGxpZWQgdG8gY29tcG9uZW50cy5cbiAgICAgICAgICovXG4gICAgICAgIGNsYXNzZXM6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBDbGFzc2VzIENTUyBhcHBsaXF1w6llc1xuICAgICAgICAgKi9cbiAgICAgICAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgICAvKipcbiAgICAgICAgICogU2kgYHRydWVgLCBsJ2lucHV0IHNlcmEgaW5hY3RpZi5cbiAgICAgICAgICovXG4gICAgICAgIGRpc2FibGVkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFNpIGB0cnVlYCwgbGUgY2hhbXBzIHNlcmEgZW4gZXJyZXVyLlxuICAgICAgICAgKi9cbiAgICAgICAgZXJyb3I6IFByb3BUeXBlcy5ib29sLFxuICAgICAgICAvKipcbiAgICAgICAgICogVGV4dGUgZGUgbCdlcnJldXJcbiAgICAgICAgICovXG4gICAgICAgIGVycm9yVGV4dDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFByb3ByacOpdMOpcyBhcHBsaXF1w6llcyBhdSBjb21wb3NhbnQgRm9ybUhlbHBlclRleHRcbiAgICAgICAgICovXG4gICAgICAgIEZvcm1IZWxwZXJUZXh0UHJvcHM6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBTaSBgdHJ1ZWAsIGxlIGNoYW1zcCBwcmVuZHJhIHRvdXRlIGxhIGxhcmdldXIuXG4gICAgICAgICAqL1xuICAgICAgICBmdWxsV2lkdGg6IFByb3BUeXBlcy5ib29sLFxuICAgICAgICAvKipcbiAgICAgICAgICogU2kgXCJ0cnVlXCIsIGxlIHRleHRlIGQnYWlkZSBzJ2FmZmljaGVyYSBzZXVsZW1lbnQgYXUgY2xpYyBzdXIgbCdpY8O0bmUgXCJJbmZvcm1hdGlvblwiXG4gICAgICAgICAqL1xuICAgICAgICBoZWxwZXJJY29uOiBQcm9wVHlwZXMuYm9vbCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRleHRlIGRlIGwnYWlkZVxuICAgICAgICAgKi9cbiAgICAgICAgaGVscGVyVGV4dDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIGlkIGRlIGwnw6lsw6ltZW50IGlucHV0XG4gICAgICAgICAqL1xuICAgICAgICBpZDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFByb3ByacOpdMOpcyBhcHBsaXF1w6llcyBhdSBjb21wb3NhbnQgSW5wdXRMYWJlbFxuICAgICAgICAgKi9cbiAgICAgICAgSW5wdXRMYWJlbFByb3BzOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgICAgICAvKipcbiAgICAgICAgICogTGFiZWwgZHUgY2hhbXBzXG4gICAgICAgICAqL1xuICAgICAgICBsYWJlbDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIE5vbWJyZSBkZSBjYXJhY3TDqHJlcyBtYXggcG91ciB1biB0ZXh0IGFyZWFcbiAgICAgICAgICogVmFsYWJsZSB1bmlxdWVtZW50IHNpIGwnb3B0aW9uIG11bHRpbGluZSBlc3Qgw6AgdHJ1ZVxuICAgICAgICAgKi9cbiAgICAgICAgbWF4TGVuZ3RoOiBQcm9wVHlwZXMubnVtYmVyLFxuICAgICAgICAvKipcbiAgICAgICAgICogU2kgYHRydWVgLCBsZSBjaGFtcHMgaW5wdXQgc2VyYSB1biB0ZXh0YXJlYVxuICAgICAgICAgKi9cbiAgICAgICAgbXVsdGlsaW5lOiBQcm9wVHlwZXMuYm9vbCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIE5vbWJyZSBkZSBjYXJhY3TDqHJlcyBhdXRvcmlzw6lzIHBvdXIgbGVzIHRleHRBcmVhXG4gICAgICAgICAqL1xuICAgICAgICBuYkNoYXJzOiBQcm9wVHlwZXMubnVtYmVyLFxuICAgICAgICAvKipcbiAgICAgICAgICogdHJ1ZSBzaSBjaGFtcHMgb2JsaWdhdG9pcmVcbiAgICAgICAgICovXG4gICAgICAgIHJlcXVpcmVkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFBhc3PDqSDDoCBsYSBwcm9wIHJlZiBkdSBjb21wb3NhbnQgRm9ybUNvbnRyb2xcbiAgICAgICAgICovXG4gICAgICAgIHJvb3RSZWY6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgfTtcblxuICAgIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgICAgIGZ1bGxXaWR0aDogdHJ1ZSxcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIGRpc2FibGVkOiBmYWxzZSxcbiAgICAgICAgZXJyb3I6IGZhbHNlLFxuICAgICAgICBlcnJvclRleHQ6ICcnLFxuICAgICAgICBoZWxwZXJUZXh0OiAnJyxcbiAgICAgICAgaGVscGVySWNvbjogZmFsc2UsXG4gICAgICAgIG11bHRpbGluZTogZmFsc2UsXG4gICAgICAgIG5iQ2hhcnM6IDAsXG4gICAgICAgIG1heExlbmd0aDogMjgwLFxuICAgIH07XG5cbiAgICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgICAgICBzdXBlcihwcm9wcyk7XG5cbiAgICAgICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgICAgICAgIGhlbHBlck9wZW46IGZhbHNlLFxuICAgICAgICAgICAgZm9jdXNlZDogZmFsc2UsXG4gICAgICAgICAgICBob3ZlcmVkOiBmYWxzZSxcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLmhhbmRsZUhlbHBlckNsaWNrID0gdGhpcy5oYW5kbGVIZWxwZXJDbGljay5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLmhhbmRsZUZvY3VzID0gdGhpcy5oYW5kbGVGb2N1cy5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLmhhbmRsZUhvdmVyID0gdGhpcy5oYW5kbGVIb3Zlci5iaW5kKHRoaXMpO1xuICAgIH1cblxuICAgIGhhbmRsZUhlbHBlckNsaWNrKGV2ZW50KSB7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUocHJldlN0YXRlID0+ICh7IGhlbHBlck9wZW46ICFwcmV2U3RhdGUuaGVscGVyT3BlbiB9KSk7XG4gICAgICAgIGlmIChldmVudCkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGhhbmRsZUZvY3VzID0gdmFsdWUgPT4gKCkgPT4ge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHsgZm9jdXNlZDogdmFsdWUgfSk7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gZmFsc2UgJiYgdGhpcy5zdGF0ZS5ob3ZlcmVkKSB7XG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgaG92ZXJlZDogZmFsc2UgfSk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgaGFuZGxlSG92ZXIgPSB2YWx1ZSA9PiAoKSA9PiB7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyBob3ZlcmVkOiB2YWx1ZSB9KTtcbiAgICB9O1xuXG4gICAgcmVuZGVyKCkge1xuICAgICAgICBjb25zdCB7XG4gICAgICAgICAgICBjaGlsZHJlbixcbiAgICAgICAgICAgIGNsYXNzZXMsXG4gICAgICAgICAgICBjbGFzc05hbWUsXG4gICAgICAgICAgICBkaXNhYmxlZCxcbiAgICAgICAgICAgIGVycm9yLFxuICAgICAgICAgICAgZXJyb3JUZXh0LFxuICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICBsYWJlbCxcbiAgICAgICAgICAgIElucHV0TGFiZWxQcm9wcyxcbiAgICAgICAgICAgIGhlbHBlclRleHQsXG4gICAgICAgICAgICBoZWxwZXJJY29uLFxuICAgICAgICAgICAgRm9ybUhlbHBlclRleHRQcm9wcyxcbiAgICAgICAgICAgIGZ1bGxXaWR0aCxcbiAgICAgICAgICAgIHJlcXVpcmVkLFxuICAgICAgICAgICAgbXVsdGlsaW5lLFxuICAgICAgICAgICAgcm9vdFJlZixcbiAgICAgICAgICAgIG1heExlbmd0aCxcbiAgICAgICAgICAgIG5iQ2hhcnMsXG4gICAgICAgICAgICAuLi5vdGhlcnNcbiAgICAgICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICAgICAgY29uc3QgeyBoZWxwZXJPcGVuLCBmb2N1c2VkLCBob3ZlcmVkIH0gPSB0aGlzLnN0YXRlO1xuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8Rm9ybUNvbnRyb2xcbiAgICAgICAgICAgICAgICBmdWxsV2lkdGg9e2Z1bGxXaWR0aH1cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICAgICAgICAgICAgICBlcnJvcj17ZXJyb3J9XG4gICAgICAgICAgICAgICAgcmVmPXtyb290UmVmfVxuICAgICAgICAgICAgICAgIHsuLi5vdGhlcnN9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgeyFkaXNhYmxlZCAmJlxuICAgICAgICAgICAgICAgICAgICBlcnJvciAmJlxuICAgICAgICAgICAgICAgICAgICBlcnJvclRleHQgJiZcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyT3BlbiAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xhc3Nlcy5lcnJvckRpdn0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoY2xhc3Nlcy5hcnJvd0Rvd24sIGNsYXNzZXMuZXJyb3JEaXZBcnJvd0Rvd24pfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2Vycm9yVGV4dH1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICApfVxuXG4gICAgICAgICAgICAgICAgeyFkaXNhYmxlZCAmJlxuICAgICAgICAgICAgICAgICAgICBoZWxwZXJJY29uICYmXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlclRleHQgJiZcbiAgICAgICAgICAgICAgICAgICAgIWVycm9yICYmXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlck9wZW4gJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3Nlcy5oZWxwZXJEaXZ9XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc2VzLmFycm93RG93bixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzZXMuaGVscGVyRGl2QXJyb3dEb3duLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYW5nZXJvdXNseVNldElubmVySFRNTD17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19odG1sOiBlc2NhcGVIVE1MKGhlbHBlclRleHQpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgICAgICB7bGFiZWwgJiYgKFxuICAgICAgICAgICAgICAgICAgICA8SGlGb3JtTGFiZWxcbiAgICAgICAgICAgICAgICAgICAgICAgIGh0bWxGb3I9e2lkfVxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9e2xhYmVsfVxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ9e3JlcXVpcmVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgZm9jdXNlZD17IWRpc2FibGVkICYmIChmb2N1c2VkIHx8IGhvdmVyZWQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgey4uLklucHV0TGFiZWxQcm9wc31cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgeyFkaXNhYmxlZCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEFsZXJ0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzZXMuZXJyb3JJY29ufVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17dGhpcy5oYW5kbGVIZWxwZXJDbGlja31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgeyFkaXNhYmxlZCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHBlckljb24gJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwZXJUZXh0ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIWVycm9yICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEluZm9ybWF0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoY2xhc3Nlcy5oZWxwZXJJY29uLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzZXMuaGVscGVySWNvbkFjdGl2ZV06IGhlbHBlck9wZW4sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e3RoaXMuaGFuZGxlSGVscGVyQ2xpY2t9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgPC9IaUZvcm1MYWJlbD5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgb25Nb3VzZUVudGVyPXt0aGlzLmhhbmRsZUhvdmVyKHRydWUpfVxuICAgICAgICAgICAgICAgICAgICBvbk1vdXNlTGVhdmU9e3RoaXMuaGFuZGxlSG92ZXIoZmFsc2UpfVxuICAgICAgICAgICAgICAgICAgICBvbkZvY3VzPXt0aGlzLmhhbmRsZUZvY3VzKHRydWUpfVxuICAgICAgICAgICAgICAgICAgICBvbkJsdXI9e3RoaXMuaGFuZGxlRm9jdXMoZmFsc2UpfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIHshbXVsdGlsaW5lICYmXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlclRleHQgJiZcbiAgICAgICAgICAgICAgICAgICAgIWhlbHBlckljb24gJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgPEZvcm1IZWxwZXJUZXh0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzLmhlbHBlclRleHRDbGFzc05hbWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgey4uLkZvcm1IZWxwZXJUZXh0UHJvcHN9XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2hlbHBlclRleHR9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L0Zvcm1IZWxwZXJUZXh0PlxuICAgICAgICAgICAgICAgICAgICApfVxuXG4gICAgICAgICAgICAgICAge211bHRpbGluZSAmJiAoXG4gICAgICAgICAgICAgICAgICAgIDxGb3JtSGVscGVyVGV4dFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzLmhlbHBlclRleHRDbGFzc05hbWV9XG4gICAgICAgICAgICAgICAgICAgICAgICB7Li4uRm9ybUhlbHBlclRleHRQcm9wc31cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAge25iQ2hhcnN9L3ttYXhMZW5ndGh9XG4gICAgICAgICAgICAgICAgICAgIDwvRm9ybUhlbHBlclRleHQ+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvRm9ybUNvbnRyb2w+XG4gICAgICAgICk7XG4gICAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCB3aXRoU3R5bGVzKHN0eWxlcywgeyBuYW1lOiAnSG11aUhpRm9ybUNvbnRyb2wnIH0pKEhpRm9ybUNvbnRyb2wpO1xuIl19
|
19351
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9IaUZvcm0vSGlGb3JtQ29udHJvbC5qcyJdLCJuYW1lcyI6WyJzdHlsZXMiLCJoZWxwZXJUZXh0Q2xhc3NOYW1lIiwiY29sb3IiLCJ0aGVtZSIsInBhbGV0dGUiLCJuZXV0cmFsIiwibm9ybWFsIiwiZm9udFNpemUiLCJ0ZXh0QWxpZ24iLCJtYXJnaW5Ub3AiLCJlcnJvckljb24iLCJ3aWR0aCIsImhlaWdodCIsIm5lZ2F0aXZlIiwicG9zaXRpb24iLCJyaWdodCIsImN1cnNvciIsInRvcCIsImVycm9yRGl2IiwidHlwb2dyYXBoeSIsImg1IiwiYmFja2dyb3VuZENvbG9yIiwicGFkZGluZyIsInZlcnRpY2FsQWxpZ24iLCJib3JkZXJSYWRpdXMiLCJtYXJnaW5Cb3R0b20iLCJmb250V2VpZ2h0IiwiZm9udFdlaWdodFJlZ3VsYXIiLCJhcnJvd0Rvd24iLCJib3JkZXJMZWZ0IiwiYm9yZGVyUmlnaHQiLCJib3JkZXJUb3AiLCJib3R0b20iLCJlcnJvckRpdkFycm93RG93biIsImJvcmRlclRvcENvbG9yIiwiaGVscGVySWNvbiIsImhlbHBlckljb25BY3RpdmUiLCJidXNpbmVzcyIsInByaW1hcnkiLCJoZWxwZXJEaXYiLCJkYXJrIiwiYm94U2hhZG93IiwibGluZUhlaWdodCIsImhlbHBlckRpdkFycm93RG93biIsIkhpRm9ybUNvbnRyb2wiLCJwcm9wcyIsImhhbmRsZUZvY3VzIiwic2V0U3RhdGUiLCJmb2N1c2VkIiwidmFsdWUiLCJzdGF0ZSIsImhvdmVyZWQiLCJoYW5kbGVIb3ZlciIsImhlbHBlck9wZW4iLCJoYW5kbGVIZWxwZXJDbGljayIsImJpbmQiLCJldmVudCIsInByZXZTdGF0ZSIsInByZXZlbnREZWZhdWx0IiwiY2hpbGRyZW4iLCJjbGFzc2VzIiwiY2xhc3NOYW1lIiwiZGlzYWJsZWQiLCJlcnJvciIsImVycm9yVGV4dCIsImlkIiwibGFiZWwiLCJJbnB1dExhYmVsUHJvcHMiLCJoZWxwZXJUZXh0IiwiRm9ybUhlbHBlclRleHRQcm9wcyIsImZ1bGxXaWR0aCIsInJlcXVpcmVkIiwibXVsdGlsaW5lIiwicm9vdFJlZiIsIm1heExlbmd0aCIsIm5iQ2hhcnMiLCJvdGhlcnMiLCJfX2h0bWwiLCJQdXJlQ29tcG9uZW50IiwicHJvcFR5cGVzIiwibm9kZSIsIm9iamVjdCIsInN0cmluZyIsImJvb2wiLCJudW1iZXIiLCJkZWZhdWx0UHJvcHMiLCJuYW1lIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7a1FBQUE7O0FBRUE7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7Ozs7Ozs7Ozs7OztBQUVPLElBQU1BLDBCQUFTLFNBQVRBLE1BQVM7QUFBQSxXQUFVO0FBQzVCQyw2QkFBcUI7QUFDakJDLG1CQUFPQyxNQUFNQyxPQUFOLENBQWNDLE9BQWQsQ0FBc0JDLE1BRFo7QUFFakJDLHNCQUFVLEVBRk87QUFHakJDLHVCQUFXLE9BSE07QUFJakJDLHVCQUFXO0FBSk0sU0FETztBQU81QkMsbUJBQVc7QUFDUEMsbUJBQU8sRUFEQTtBQUVQQyxvQkFBUSxFQUZEO0FBR1BWLG1CQUFPQyxNQUFNQyxPQUFOLENBQWNTLFFBQWQsQ0FBdUJQLE1BSHZCO0FBSVBRLHNCQUFVLFVBSkg7QUFLUEMsbUJBQU8sQ0FMQTtBQU1QQyxvQkFBUSxTQU5EO0FBT1BDLGlCQUFLO0FBUEUsU0FQaUI7QUFnQjVCQywrQkFDT2YsTUFBTWdCLFVBQU4sQ0FBaUJDLEVBRHhCO0FBRUlDLDZCQUFpQmxCLE1BQU1DLE9BQU4sQ0FBY1MsUUFBZCxDQUF1QlAsTUFGNUM7QUFHSUosbUJBQU8sU0FIWDtBQUlJb0IscUJBQVMsVUFKYjtBQUtJQywyQkFBZSxRQUxuQjtBQU1JQywwQkFBYyxDQU5sQjtBQU9JVixzQkFBVSxVQVBkO0FBUUlXLDBCQUFjLENBUmxCO0FBU0lDLHdCQUFZdkIsTUFBTWdCLFVBQU4sQ0FBaUJRO0FBVGpDLFVBaEI0QjtBQTJCNUJDLG1CQUFXO0FBQ1BqQixtQkFBTyxDQURBO0FBRVBDLG9CQUFRLENBRkQ7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b3VjeS93b3Jrc3BhY2UvaGlwYXktbWF0ZXJpYWwtdWkiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAaW5oZXJpdGVkQ29tcG9uZW50IEZvcm1Db250cm9sXG5cbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQgeyBBbGVydCwgSW5mb3JtYXRpb24gfSBmcm9tICdtZGktbWF0ZXJpYWwtdWknO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1IZWxwZXJUZXh0IH0gZnJvbSAnbWF0ZXJpYWwtdWkvRm9ybSc7XG5pbXBvcnQgd2l0aFN0eWxlcyBmcm9tICcuLi9zdHlsZXMvd2l0aFN0eWxlcyc7XG5pbXBvcnQgSGlGb3JtTGFiZWwgZnJvbSAnLi9IaUZvcm1MYWJlbCc7XG5pbXBvcnQge2VzY2FwZUhUTUx9IGZyb20gXCIuLi91dGlscy9oaUhlbHBlcnNcIjtcblxuZXhwb3J0IGNvbnN0IHN0eWxlcyA9IHRoZW1lID0+ICh7XG4gICAgaGVscGVyVGV4dENsYXNzTmFtZToge1xuICAgICAgICBjb2xvcjogdGhlbWUucGFsZXR0ZS5uZXV0cmFsLm5vcm1hbCxcbiAgICAgICAgZm9udFNpemU6IDExLFxuICAgICAgICB0ZXh0QWxpZ246ICdyaWdodCcsXG4gICAgICAgIG1hcmdpblRvcDogMixcbiAgICB9LFxuICAgIGVycm9ySWNvbjoge1xuICAgICAgICB3aWR0aDogMTksXG4gICAgICAgIGhlaWdodDogMTksXG4gICAgICAgIGNvbG9yOiB0aGVtZS5wYWxldHRlLm5lZ2F0aXZlLm5vcm1hbCxcbiAgICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgICAgIHJpZ2h0OiA4LFxuICAgICAgICBjdXJzb3I6ICdwb2ludGVyJyxcbiAgICAgICAgdG9wOiAnLTJweCcsXG4gICAgfSxcbiAgICBlcnJvckRpdjoge1xuICAgICAgICAuLi50aGVtZS50eXBvZ3JhcGh5Lmg1LFxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lLnBhbGV0dGUubmVnYXRpdmUubm9ybWFsLFxuICAgICAgICBjb2xvcjogJyNGRkZGRkYnLFxuICAgICAgICBwYWRkaW5nOiAnMTZweCA4cHgnLFxuICAgICAgICB2ZXJ0aWNhbEFsaWduOiAnbWlkZGxlJyxcbiAgICAgICAgYm9yZGVyUmFkaXVzOiAyLFxuICAgICAgICBwb3NpdGlvbjogJ3JlbGF0aXZlJyxcbiAgICAgICAgbWFyZ2luQm90dG9tOiA1LFxuICAgICAgICBmb250V2VpZ2h0OiB0aGVtZS50eXBvZ3JhcGh5LmZvbnRXZWlnaHRSZWd1bGFyLFxuICAgIH0sXG4gICAgYXJyb3dEb3duOiB7XG4gICAgICAgIHdpZHRoOiAwLFxuICAgICAgICBoZWlnaHQ6IDAsXG4gICAgICAgIGJvcmRlckxlZnQ6ICc0cHggc29saWQgdHJhbnNwYXJlbnQnLFxuICAgICAgICBib3JkZXJSaWdodDogJzRweCBzb2xpZCB0cmFuc3BhcmVudCcsXG4gICAgICAgIGJvcmRlclRvcDogJzRweCBzb2xpZCAjMDAwJyxcbiAgICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgICAgIGJvdHRvbTogLTQsXG4gICAgICAgIHJpZ2h0OiAxNCxcbiAgICB9LFxuICAgIGVycm9yRGl2QXJyb3dEb3duOiB7XG4gICAgICAgIGJvcmRlclRvcENvbG9yOiB0aGVtZS5wYWxldHRlLm5lZ2F0aXZlLm5vcm1hbCxcbiAgICB9LFxuICAgIGhlbHBlckljb246IHtcbiAgICAgICAgd2lkdGg6IDE5LFxuICAgICAgICBoZWlnaHQ6IDE5LFxuICAgICAgICBjb2xvcjogdGhlbWUucGFsZXR0ZS5uZXV0cmFsLm5vcm1hbCxcbiAgICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgICAgIHJpZ2h0OiA4LFxuICAgICAgICBjdXJzb3I6ICdwb2ludGVyJyxcbiAgICAgICAgdG9wOiAnLTJweCcsXG4gICAgfSxcbiAgICBoZWxwZXJJY29uQWN0aXZlOiB7XG4gICAgICAgIGNvbG9yOiB0aGVtZS5wYWxldHRlLmJ1c2luZXNzLnByaW1hcnkubm9ybWFsLFxuICAgIH0sXG4gICAgaGVscGVyRGl2OiB7XG4gICAgICAgIC4uLnRoZW1lLnR5cG9ncmFwaHkuaDUsXG4gICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogJyNmZmZmZmYnLFxuICAgICAgICBjb2xvcjogdGhlbWUucGFsZXR0ZS5uZXV0cmFsLmRhcmssXG4gICAgICAgIHBhZGRpbmc6ICcxNnB4IDhweCcsXG4gICAgICAgIGJvcmRlclJhZGl1czogMixcbiAgICAgICAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gICAgICAgIG1hcmdpbkJvdHRvbTogNSxcbiAgICAgICAgZm9udFdlaWdodDogdGhlbWUudHlwb2dyYXBoeS5mb250V2VpZ2h0UmVndWxhcixcbiAgICAgICAgYm94U2hhZG93OiAnMHB4IDFweCA3cHggcmdiYSgwLCAwLCAwLCAwLjE2KScsXG4gICAgICAgIGxpbmVIZWlnaHQ6IDEuNSxcbiAgICB9LFxuICAgIGhlbHBlckRpdkFycm93RG93bjoge1xuICAgICAgICBib3JkZXJUb3BDb2xvcjogJyNmZmZmZmYnLFxuICAgIH0sXG59KTtcblxuLyoqXG4gKiBDaGFtcHMgaW5wdXQgcG91ciBmb3JtdWxhaXJlXG4gKi9cbmNsYXNzIEhpRm9ybUNvbnRyb2wgZXh0ZW5kcyBSZWFjdC5QdXJlQ29tcG9uZW50IHtcbiAgICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgICAgICAvKipcbiAgICAgICAgICogQ29udGVudSBkdSBmb3JtIGNvbnRyb2xcbiAgICAgICAgICovXG4gICAgICAgIGNoaWxkcmVuOiBQcm9wVHlwZXMubm9kZSxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFVzZWZ1bCB0byBleHRlbmQgdGhlIHN0eWxlIGFwcGxpZWQgdG8gY29tcG9uZW50cy5cbiAgICAgICAgICovXG4gICAgICAgIGNsYXNzZXM6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBDbGFzc2VzIENTUyBhcHBsaXF1w6llc1xuICAgICAgICAgKi9cbiAgICAgICAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgICAvKipcbiAgICAgICAgICogU2kgYHRydWVgLCBsJ2lucHV0IHNlcmEgaW5hY3RpZi5cbiAgICAgICAgICovXG4gICAgICAgIGRpc2FibGVkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFNpIGB0cnVlYCwgbGUgY2hhbXBzIHNlcmEgZW4gZXJyZXVyLlxuICAgICAgICAgKi9cbiAgICAgICAgZXJyb3I6IFByb3BUeXBlcy5ib29sLFxuICAgICAgICAvKipcbiAgICAgICAgICogVGV4dGUgZGUgbCdlcnJldXJcbiAgICAgICAgICovXG4gICAgICAgIGVycm9yVGV4dDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFByb3ByacOpdMOpcyBhcHBsaXF1w6llcyBhdSBjb21wb3NhbnQgRm9ybUhlbHBlclRleHRcbiAgICAgICAgICovXG4gICAgICAgIEZvcm1IZWxwZXJUZXh0UHJvcHM6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBTaSBgdHJ1ZWAsIGxlIGNoYW1zcCBwcmVuZHJhIHRvdXRlIGxhIGxhcmdldXIuXG4gICAgICAgICAqL1xuICAgICAgICBmdWxsV2lkdGg6IFByb3BUeXBlcy5ib29sLFxuICAgICAgICAvKipcbiAgICAgICAgICogU2kgXCJ0cnVlXCIsIGxlIHRleHRlIGQnYWlkZSBzJ2FmZmljaGVyYSBzZXVsZW1lbnQgYXUgY2xpYyBzdXIgbCdpY8O0bmUgXCJJbmZvcm1hdGlvblwiXG4gICAgICAgICAqL1xuICAgICAgICBoZWxwZXJJY29uOiBQcm9wVHlwZXMuYm9vbCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRleHRlIGRlIGwnYWlkZVxuICAgICAgICAgKi9cbiAgICAgICAgaGVscGVyVGV4dDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIGlkIGRlIGwnw6lsw6ltZW50IGlucHV0XG4gICAgICAgICAqL1xuICAgICAgICBpZDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFByb3ByacOpdMOpcyBhcHBsaXF1w6llcyBhdSBjb21wb3NhbnQgSW5wdXRMYWJlbFxuICAgICAgICAgKi9cbiAgICAgICAgSW5wdXRMYWJlbFByb3BzOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgICAgICAvKipcbiAgICAgICAgICogTGFiZWwgZHUgY2hhbXBzXG4gICAgICAgICAqL1xuICAgICAgICBsYWJlbDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIE5vbWJyZSBkZSBjYXJhY3TDqHJlcyBtYXggcG91ciB1biB0ZXh0IGFyZWFcbiAgICAgICAgICogVmFsYWJsZSB1bmlxdWVtZW50IHNpIGwnb3B0aW9uIG11bHRpbGluZSBlc3Qgw6AgdHJ1ZVxuICAgICAgICAgKi9cbiAgICAgICAgbWF4TGVuZ3RoOiBQcm9wVHlwZXMubnVtYmVyLFxuICAgICAgICAvKipcbiAgICAgICAgICogU2kgYHRydWVgLCBsZSBjaGFtcHMgaW5wdXQgc2VyYSB1biB0ZXh0YXJlYVxuICAgICAgICAgKi9cbiAgICAgICAgbXVsdGlsaW5lOiBQcm9wVHlwZXMuYm9vbCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIE5vbWJyZSBkZSBjYXJhY3TDqHJlcyBhdXRvcmlzw6lzIHBvdXIgbGVzIHRleHRBcmVhXG4gICAgICAgICAqL1xuICAgICAgICBuYkNoYXJzOiBQcm9wVHlwZXMubnVtYmVyLFxuICAgICAgICAvKipcbiAgICAgICAgICogdHJ1ZSBzaSBjaGFtcHMgb2JsaWdhdG9pcmVcbiAgICAgICAgICovXG4gICAgICAgIHJlcXVpcmVkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFBhc3PDqSDDoCBsYSBwcm9wIHJlZiBkdSBjb21wb3NhbnQgRm9ybUNvbnRyb2xcbiAgICAgICAgICovXG4gICAgICAgIHJvb3RSZWY6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgfTtcblxuICAgIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgICAgIGZ1bGxXaWR0aDogdHJ1ZSxcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIGRpc2FibGVkOiBmYWxzZSxcbiAgICAgICAgZXJyb3I6IGZhbHNlLFxuICAgICAgICBlcnJvclRleHQ6ICcnLFxuICAgICAgICBoZWxwZXJUZXh0OiAnJyxcbiAgICAgICAgaGVscGVySWNvbjogZmFsc2UsXG4gICAgICAgIG11bHRpbGluZTogZmFsc2UsXG4gICAgICAgIG5iQ2hhcnM6IDAsXG4gICAgICAgIG1heExlbmd0aDogMjgwLFxuICAgIH07XG5cbiAgICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgICAgICBzdXBlcihwcm9wcyk7XG5cbiAgICAgICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgICAgICAgIGhlbHBlck9wZW46IGZhbHNlLFxuICAgICAgICAgICAgZm9jdXNlZDogZmFsc2UsXG4gICAgICAgICAgICBob3ZlcmVkOiBmYWxzZSxcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLmhhbmRsZUhlbHBlckNsaWNrID0gdGhpcy5oYW5kbGVIZWxwZXJDbGljay5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLmhhbmRsZUZvY3VzID0gdGhpcy5oYW5kbGVGb2N1cy5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLmhhbmRsZUhvdmVyID0gdGhpcy5oYW5kbGVIb3Zlci5iaW5kKHRoaXMpO1xuICAgIH1cblxuICAgIGhhbmRsZUhlbHBlckNsaWNrKGV2ZW50KSB7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUocHJldlN0YXRlID0+ICh7IGhlbHBlck9wZW46ICFwcmV2U3RhdGUuaGVscGVyT3BlbiB9KSk7XG4gICAgICAgIGlmIChldmVudCkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGhhbmRsZUZvY3VzID0gdmFsdWUgPT4gKCkgPT4ge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHsgZm9jdXNlZDogdmFsdWUgfSk7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gZmFsc2UgJiYgdGhpcy5zdGF0ZS5ob3ZlcmVkKSB7XG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgaG92ZXJlZDogZmFsc2UgfSk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgaGFuZGxlSG92ZXIgPSB2YWx1ZSA9PiAoKSA9PiB7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyBob3ZlcmVkOiB2YWx1ZSB9KTtcbiAgICB9O1xuXG4gICAgcmVuZGVyKCkge1xuICAgICAgICBjb25zdCB7XG4gICAgICAgICAgICBjaGlsZHJlbixcbiAgICAgICAgICAgIGNsYXNzZXMsXG4gICAgICAgICAgICBjbGFzc05hbWUsXG4gICAgICAgICAgICBkaXNhYmxlZCxcbiAgICAgICAgICAgIGVycm9yLFxuICAgICAgICAgICAgZXJyb3JUZXh0LFxuICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICBsYWJlbCxcbiAgICAgICAgICAgIElucHV0TGFiZWxQcm9wcyxcbiAgICAgICAgICAgIGhlbHBlclRleHQsXG4gICAgICAgICAgICBoZWxwZXJJY29uLFxuICAgICAgICAgICAgRm9ybUhlbHBlclRleHRQcm9wcyxcbiAgICAgICAgICAgIGZ1bGxXaWR0aCxcbiAgICAgICAgICAgIHJlcXVpcmVkLFxuICAgICAgICAgICAgbXVsdGlsaW5lLFxuICAgICAgICAgICAgcm9vdFJlZixcbiAgICAgICAgICAgIG1heExlbmd0aCxcbiAgICAgICAgICAgIG5iQ2hhcnMsXG4gICAgICAgICAgICAuLi5vdGhlcnNcbiAgICAgICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICAgICAgY29uc3QgeyBoZWxwZXJPcGVuLCBmb2N1c2VkLCBob3ZlcmVkIH0gPSB0aGlzLnN0YXRlO1xuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8Rm9ybUNvbnRyb2xcbiAgICAgICAgICAgICAgICBmdWxsV2lkdGg9e2Z1bGxXaWR0aH1cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICAgICAgICAgICAgICBlcnJvcj17ZXJyb3J9XG4gICAgICAgICAgICAgICAgcmVmPXtyb290UmVmfVxuICAgICAgICAgICAgICAgIHsuLi5vdGhlcnN9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2Vycm9yICYmXG4gICAgICAgICAgICAgICAgICAgIGVycm9yVGV4dCAmJlxuICAgICAgICAgICAgICAgICAgICBoZWxwZXJPcGVuICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtjbGFzc2VzLmVycm9yRGl2fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lcyhjbGFzc2VzLmFycm93RG93biwgY2xhc3Nlcy5lcnJvckRpdkFycm93RG93bil9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZXJyb3JUZXh0fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgICAgICB7aGVscGVySWNvbiAmJlxuICAgICAgICAgICAgICAgICAgICBoZWxwZXJUZXh0ICYmXG4gICAgICAgICAgICAgICAgICAgICFlcnJvciAmJlxuICAgICAgICAgICAgICAgICAgICBoZWxwZXJPcGVuICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzZXMuaGVscGVyRGl2fVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3Nlcy5hcnJvd0Rvd24sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc2VzLmhlbHBlckRpdkFycm93RG93bixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9faHRtbDogZXNjYXBlSFRNTChoZWxwZXJUZXh0KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICApfVxuXG4gICAgICAgICAgICAgICAge2xhYmVsICYmIChcbiAgICAgICAgICAgICAgICAgICAgPEhpRm9ybUxhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICBodG1sRm9yPXtpZH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPXtsYWJlbH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkPXtyZXF1aXJlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGZvY3VzZWQ9eyFkaXNhYmxlZCAmJiAoZm9jdXNlZCB8fCBob3ZlcmVkKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIHsuLi5JbnB1dExhYmVsUHJvcHN9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtlcnJvciAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBbGVydFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzLmVycm9ySWNvbn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e3RoaXMuaGFuZGxlSGVscGVyQ2xpY2t9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIHtoZWxwZXJJY29uICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscGVyVGV4dCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICFlcnJvciAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJbmZvcm1hdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKGNsYXNzZXMuaGVscGVySWNvbiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc2VzLmhlbHBlckljb25BY3RpdmVdOiBoZWxwZXJPcGVuLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXt0aGlzLmhhbmRsZUhlbHBlckNsaWNrfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgIDwvSGlGb3JtTGFiZWw+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIG9uTW91c2VFbnRlcj17dGhpcy5oYW5kbGVIb3Zlcih0cnVlKX1cbiAgICAgICAgICAgICAgICAgICAgb25Nb3VzZUxlYXZlPXt0aGlzLmhhbmRsZUhvdmVyKGZhbHNlKX1cbiAgICAgICAgICAgICAgICAgICAgb25Gb2N1cz17dGhpcy5oYW5kbGVGb2N1cyh0cnVlKX1cbiAgICAgICAgICAgICAgICAgICAgb25CbHVyPXt0aGlzLmhhbmRsZUZvY3VzKGZhbHNlKX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB7IW11bHRpbGluZSAmJlxuICAgICAgICAgICAgICAgICAgICBoZWxwZXJUZXh0ICYmXG4gICAgICAgICAgICAgICAgICAgICFoZWxwZXJJY29uICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxGb3JtSGVscGVyVGV4dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3Nlcy5oZWxwZXJUZXh0Q2xhc3NOYW1lfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsuLi5Gb3JtSGVscGVyVGV4dFByb3BzfVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtoZWxwZXJUZXh0fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9Gb3JtSGVscGVyVGV4dD5cbiAgICAgICAgICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAgICAgIHttdWx0aWxpbmUgJiYgKFxuICAgICAgICAgICAgICAgICAgICA8Rm9ybUhlbHBlclRleHRcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3Nlcy5oZWxwZXJUZXh0Q2xhc3NOYW1lfVxuICAgICAgICAgICAgICAgICAgICAgICAgey4uLkZvcm1IZWxwZXJUZXh0UHJvcHN9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtuYkNoYXJzfS97bWF4TGVuZ3RofVxuICAgICAgICAgICAgICAgICAgICA8L0Zvcm1IZWxwZXJUZXh0PlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L0Zvcm1Db250cm9sPlxuICAgICAgICApO1xuICAgIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgd2l0aFN0eWxlcyhzdHlsZXMsIHsgbmFtZTogJ0htdWlIaUZvcm1Db250cm9sJyB9KShIaUZvcm1Db250cm9sKTtcbiJdfQ==
|
19352
19352
|
|
19353
19353
|
/***/ }),
|
19354
19354
|
/* 76 */
|
@@ -54427,9 +54427,9 @@ var _initialiseProps = function _initialiseProps() {
|
|
54427
54427
|
if (_this3.state.open) {
|
54428
54428
|
_this3.handleClose();
|
54429
54429
|
} else {
|
54430
|
-
if (!
|
54431
|
-
//document.body.style.overflow = 'hidden';
|
54432
|
-
}
|
54430
|
+
/*if (!this.props.staticPosition) {
|
54431
|
+
// document.body.style.overflow = 'hidden';
|
54432
|
+
}*/
|
54433
54433
|
_this3.setState({ open: true });
|
54434
54434
|
var options = _this3.props.options.slice();
|
54435
54435
|
_this3.handleSuggestions(options);
|
@@ -54491,9 +54491,11 @@ var _initialiseProps = function _initialiseProps() {
|
|
54491
54491
|
} else if (event.key === 'ArrowUp') {
|
54492
54492
|
nextItem = (0, _hiHelpers.getNextItemSelectable)(document.activeElement, 'up');
|
54493
54493
|
} else if (event.key === 'Tab') {
|
54494
|
-
if (!
|
54495
|
-
|
54496
|
-
}
|
54494
|
+
/* if (!this.props.staticPosition) {
|
54495
|
+
document.body.style.overflow = 'auto';
|
54496
|
+
} */
|
54497
|
+
_this3.setState({ open: false });
|
54498
|
+
} else if (event.key === 'Escape') {
|
54497
54499
|
_this3.setState({ open: false });
|
54498
54500
|
}
|
54499
54501
|
if (nextItem) {
|
@@ -54703,7 +54705,7 @@ var _initialiseProps = function _initialiseProps() {
|
|
54703
54705
|
};
|
54704
54706
|
|
54705
54707
|
exports.default = (0, _styles.withStyles)(styles, { name: 'HmuiHiSelect' })(HiSelect);
|
54706
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9IaVNlbGVjdC9IaVNlbGVjdC5qcyJdLCJuYW1lcyI6WyJzdHlsZXMiLCJyb290IiwiYmFja2dyb3VuZENvbG9yIiwidGhlbWUiLCJwYWxldHRlIiwiYmFja2dyb3VuZDIiLCJtYXhXaWR0aCIsIndpZHRoIiwicG9zaXRpb24iLCJwb3BwZXIiLCJ6SW5kZXgiLCJwYXBlciIsImJvcmRlclJhZGl1cyIsIm1heEhlaWdodCIsInRyYW5zaXRpb24iLCJsYWJlbEljb24iLCJtYXJnaW5SaWdodCIsInNlbGVjdEljb25MYWJlbCIsIndoaXRlU3BhY2UiLCJvdmVyZmxvdyIsInRleHRPdmVyZmxvdyIsInBhZGRpbmdSaWdodCIsInR5cG9ncmFwaHkiLCJib2R5MSIsImRpc3BsYXkiLCJIaVNlbGVjdCIsInByb3BzIiwic3RhdGUiLCJvcGVuIiwiZm9jdXNlZCIsInN1Z2dlc3Rpb25zIiwiaGllcmFyY2h5U2VsZWN0ZWQiLCJoaWVyYXJjaHkiLCJuYk9wdGlvbnMiLCJkeW5hbWljIiwidmFsdWVJbk9wdGlvbnMiLCJ2YWwiLCJ2YWx1ZSIsIm9wdGlvbnMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiaW5kZXhPZiIsIml0ZW0iLCJpZCIsInBpbm5lZEl0ZW0iLCJFcnJvciIsImhpZXJhcmNoaWMiLCJoaWVyYXJjaHlUcmVlcyIsImJ1aWxkSGllcmFyY2h5VHJlZXMiLCJvcHRpb25zTGVuZ3RoIiwib3B0aW9uIiwiaGFzQ2hpbGRyZW4iLCJoYW5kbGVTZWxlY3QiLCJiaW5kIiwiaGFuZGxlQ2xpY2siLCJoYW5kbGVDbG9zZSIsImhhbmRsZUNsaWNrQXdheSIsImhhbmRsZVJlcXVlc3REZWxldGUiLCJoYW5kbGVTdWdnZXN0aW9ucyIsImhhbmRsZUZvY3VzIiwiaGFuZGxlQmx1ciIsIm5leHRQcm9wcyIsIm9uU2VhcmNoIiwic2V0U3RhdGUiLCJBcnJheSIsImlzQXJyYXkiLCJoYXNPd25Qcm9wZXJ0eSIsInBhcmVudElkIiwicHVzaCIsImluY2x1ZGVzIiwiY2xhc3NlcyIsImRpc2FibGVkIiwiZXJyb3IiLCJsb2FkaW5nIiwiY2hlY2tib3giLCJzZWFyY2hhYmxlIiwiZGlzcGxheUFzQ2hpcCIsInR5cGUiLCJ0cmFuc2xhdGlvbnMiLCJwYXJlbnRJdGVtU2VsZWN0YWJsZSIsImljb24iLCJwYXJlbnRJY29uIiwiaG92ZXJJY29uIiwiY2hlY2tlZEljb24iLCJwbGFjZWhvbGRlciIsInN0YXRpY1Bvc2l0aW9uIiwiaGFzQWxsIiwic2VsZWN0ZWRJZExpc3QiLCJfc3VnZ2VzdGlvbnMiLCJ1bnNoaWZ0IiwiY2VudGVyZWQiLCJsYWJlbCIsIm9uZV9pdGVtX3NlbGVjdGVkIiwibl9pdGVtc19zZWxlY3RlZCIsInJlcGxhY2UiLCJhbGwiLCJmaW5kIiwibyIsInVuZGVmaW5lZCIsImNoaXBGaWx0ZXIiLCJwb3BwZXJDbGFzcyIsInBvcHBlckNsb3NlIiwiYWxsU2VsZWN0ZWQiLCJwb3BwZXJTdHlsZSIsImNvbnRhaW5lcldpZHRoIiwiY29udGVudCIsInRyYW5zZm9ybU9yaWdpbiIsInNlYXJjaCIsInNlYXJjaEZpZWxkIiwiZWwiLCJoYW5kbGVLZXlEb3duU2VhcmNoIiwiaGFuZGxlS2V5RG93biIsIm92ZXJsYXkiLCJvbk1vdXNlRW50ZXIiLCJvbk1vdXNlTGVhdmUiLCJzZWxlY3RJbnB1dEVsZW1lbnQiLCJQdXJlQ29tcG9uZW50IiwicHJvcFR5cGVzIiwiYm9vbCIsIm5vZGUiLCJvYmplY3QiLCJpc1JlcXVpcmVkIiwiaWNvbkFsbCIsIm9uZU9mVHlwZSIsInN0cmluZyIsIm11bHRpcGxlIiwibmFtZSIsIm9uQ2hhbmdlIiwiZnVuYyIsIm9uQ2xvc2UiLCJhcnJheSIsIm9uZU9mIiwibnVtYmVyIiwiZGVmYXVsdFByb3BzIiwiaGVpZ2h0Iiwibm9fcmVzdWx0X21hdGNoIiwibl9jaGlsZHJlbiIsIm9uZV9jaGlsZCIsInNsaWNlIiwib25DbGljayIsInNldFRpbWVvdXQiLCJmb2N1cyIsImZvY3VzT25TZWxlY3RlZEl0ZW0iLCJpdGVtU2VsZWN0ZWQiLCJxdWVyeVNlbGVjdG9yIiwicGFyZW50RWxlbWVudCIsInRhZ05hbWUiLCJpdGVtcyIsImdldEVsZW1lbnRzQnlUYWdOYW1lIiwiaXRlbVRvRm9jdXMiLCJuZXh0SXRlbSIsImV2ZW50Iiwia2V5IiwiZG9jdW1lbnQiLCJhY3RpdmVFbGVtZW50IiwiY29udGFpbnMiLCJ0YXJnZXQiLCJoaVNlbGVjdGVkIiwidmFsdWVMaXN0IiwiT2JqZWN0Iiwia2V5cyIsImZpbHRlciIsInNwbGljZSIsIm1hcCIsInBhcmVudEl0ZW1JZCIsImlkc0luU3VnZ2VzdGlvbnMiLCJzdWdnZXN0aW9uIiwiYWxsQ2hpbGRyZW5TdWdnZXN0aW9uc1NlbGVjdGVkIiwiY29uY2F0IiwiYWxsSXRlbSIsImV2dCIsInN0b3BQcm9wYWdhdGlvbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O2tRQUFBOztBQUVBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOztBQUNBOztBQUNBOzs7O0FBQ0E7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOztBQUNBOztBQUNBOzs7Ozs7Ozs7Ozs7Ozs7O0FBRU8sSUFBTUEsMEJBQVMsU0FBVEEsTUFBUztBQUFBLFdBQVU7QUFDNUJDLGNBQU07QUFDRkMsNkJBQWlCQyxNQUFNQyxPQUFOLENBQWNDLFdBRDdCO0FBRUZDLHNCQUFVLEdBRlI7QUFHRkMsbUJBQU8sTUFITDtBQUlGQyxzQkFBVTtBQUpSLFNBRHNCO0FBTzVCQyxnQkFBUTtBQUNKRixtQkFBTyxNQURIO0FBRUpHLG9CQUFRO0FBRkosU0FQb0I7QUFXNUJDLGVBQU87QUFDSEMsMEJBQWMsU0FEWDtBQUVIQyx1QkFBVyxHQUZSO0FBR0hDLHdCQUFZO0FBSFQsU0FYcUI7QUFnQjVCQyxtQkFBVztBQUNQQyx5QkFBYTtBQUROLFNBaEJpQjtBQW1CNUJDO0FBQ0lDLHdCQUFZLFFBRGhCO0FBRUlDLHNCQUFVLFFBRmQ7QUFHSUMsMEJBQWMsVUFIbEI7QUFJSUMsMEJBQWM7QUFKbEIsV0FLT2xCLE1BQU1tQixVQUFOLENB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QUFaLENBQW1CO0FBQUEsdUJBQWNLLFdBQVczSCxFQUFYLEtBQWtCLE1BQWhDO0FBQUEsYUFBbkIsRUFBMkRKLE1BQTNELEtBQXNFLENBQTFFLEVBQTZFO0FBQ3pFLG9CQUFNa0ksVUFBVTtBQUNaOUgsd0JBQUksTUFEUTtBQUVacUMsMEJBQU0wQyxPQUZNO0FBR1ovQiwyQkFBT2IsYUFBYWlCO0FBSFIsaUJBQWhCO0FBS0Esb0JBQUkyQixZQUFZLEtBQWhCLEVBQXVCO0FBQ25CK0MsNEJBQVE1RixJQUFSLEdBQWUsTUFBZjtBQUNIO0FBQ0QvQyw0QkFBWTJELE9BQVosQ0FBb0JnRixPQUFwQjtBQUNIO0FBQ0o7O0FBRUQsZUFBSzFHLFFBQUwsQ0FBYztBQUNWakM7QUFEVSxTQUFkO0FBR0gsSzs7U0FFRDJCLG1CLEdBQXNCLGVBQU87QUFDekJpSCxZQUFJQyxlQUFKO0FBQ0EsZUFBS2pKLEtBQUwsQ0FBV3FHLFFBQVgsQ0FBb0IsT0FBS3JHLEtBQUwsQ0FBV29HLElBQS9CLEVBQXFDLEVBQXJDO0FBQ0gsSzs7O2tCQTBMVSx3QkFBVzlILE1BQVgsRUFBbUIsRUFBRThILE1BQU0sY0FBUixFQUFuQixFQUE2Q3JHLFFBQTdDLEMiLCJmaWxlIjoiSGlTZWxlY3QuanMiLCJzb3VyY2VSb290IjoiL2hvbWUvbXNvdWN5L3dvcmtzcGFjZS9oaXBheS1tYXRlcmlhbC11aSIsInNvdXJjZXNDb250ZW50IjpbIi8vIEBpbmhlcml0ZWRDb21wb25lbnQgSW5wdXRcblxuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCBHcm93IGZyb20gJ21hdGVyaWFsLXVpL3RyYW5zaXRpb25zL0dyb3cnO1xuaW1wb3J0IHsgZmluZERPTU5vZGUgfSBmcm9tICdyZWFjdC1kb20nO1xuaW1wb3J0IFBhcGVyIGZyb20gJ21hdGVyaWFsLXVpL1BhcGVyJztcbmltcG9ydCBDbGlja0F3YXlMaXN0ZW5lciBmcm9tICdtYXRlcmlhbC11aS91dGlscy9DbGlja0F3YXlMaXN0ZW5lcic7XG5pbXBvcnQgeyBNYW5hZ2VyLCBUYXJnZXQsIFBvcHBlciB9IGZyb20gJ3JlYWN0LXBvcHBlcic7XG5pbXBvcnQgeyBDaGVja2JveEJsYW5rT3V0bGluZSwgQ2hlY2tib3hNYXJrZWQgfSBmcm9tICdtZGktbWF0ZXJpYWwtdWknO1xuaW1wb3J0IEhpU2VsZWN0YWJsZUxpc3QgZnJvbSAnLi4vSGlTZWxlY3RhYmxlTGlzdCc7XG5pbXBvcnQgeyBIaVNlYXJjaEZpZWxkIH0gZnJvbSAnLi4vSGlGb3JtJztcbmltcG9ydCBTZWxlY3RJbnB1dCBmcm9tICcuL1NlbGVjdElucHV0JztcbmltcG9ydCBIaUNoaXAgZnJvbSAnLi4vSGlDaGlwL0hpQ2hpcCc7XG5pbXBvcnQgeyB3aXRoU3R5bGVzIH0gZnJvbSAnLi4vc3R5bGVzJztcbmltcG9ydCB7IGFycmF5VW5pcXVlLCBnZXROZXh0SXRlbVNlbGVjdGFibGUgfSBmcm9tICcuLi91dGlscy9oaUhlbHBlcnMnO1xuaW1wb3J0IEhpSWNvbkJ1aWxkZXIgZnJvbSAnLi4vdXRpbHMvSGlJY29uQnVpbGRlcic7XG5cbmV4cG9ydCBjb25zdCBzdHlsZXMgPSB0aGVtZSA9PiAoe1xuICAgIHJvb3Q6IHtcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS5wYWxldHRlLmJhY2tncm91bmQyLFxuICAgICAgICBtYXhXaWR0aDogNTAwLFxuICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICBwb3NpdGlvbjogJ3JlbGF0aXZlJyxcbiAgICB9LFxuICAgIHBvcHBlcjoge1xuICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICB6SW5kZXg6IDEyMDAsXG4gICAgfSxcbiAgICBwYXBlcjoge1xuICAgICAgICBib3JkZXJSYWRpdXM6ICcwcHggMnB4JyxcbiAgICAgICAgbWF4SGVpZ2h0OiA0NDAsXG4gICAgICAgIHRyYW5zaXRpb246ICdub25lICFpbXBvcnRhbnQnLFxuICAgIH0sXG4gICAgbGFiZWxJY29uOiB7XG4gICAgICAgIG1hcmdpblJpZ2h0OiAxMCxcbiAgICB9LFxuICAgIHNlbGVjdEljb25MYWJlbDoge1xuICAgICAgICB3aGl0ZVNwYWNlOiAnbm93cmFwJyxcbiAgICAgICAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxuICAgICAgICB0ZXh0T3ZlcmZsb3c6ICdlbGxpcHNpcycsXG4gICAgICAgIHBhZGRpbmdSaWdodDogMTYsXG4gICAgICAgIC4uLnRoZW1lLnR5cG9ncmFwaHkuYm9keTEsXG4gICAgICAgIGRpc3BsYXk6ICdpbmxpbmUtZmxleCcsXG4gICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgfSxcbn0pO1xuXG4vKipcbiAqXG4gKiBVdGlsaXPDqSBwb3VyIHRvdXMgdHlwZXMgZGUgc2VsZWN0cyBkYW5zIGxlcyBmb3JtdWxhaXJlcy5cbiAqIC0gc2luZ2xlIC8gbXVsdGlwbGUgKCBtdWx0aS1zZWxlY3QgKVxuICogLSBhdmVjIC8gc2FucyBjaGVja2JveGVzXG4gKiAtIGF2ZWMgLyBzYW5zIGJhcnJlIGRlIHJlY2hlcmNoZVxuICogLSBhdmVjIC8gc2FucyBvcHRpb24gXCJBbGxcIlxuICogLSBwcmlzZSBlbiBjb21wdGUgZHUgdHlwZSBkZXMgw6lsw6ltZW50cyAodGV4dCwgaW1hZ2UsIGljb24sIC4uLilcbiAqXG4gKiBDZSBjb21wb3NhbnQgcsOpdW5pIGxlcyBzb3VzLWNvbXBvc2FudHNcbiAqIC0gU2VsZWN0SW5wdXQgOiBhZmZpY2hlIGwnw6lsw6ltZW50IGRhbnMgbGUgZm9ybXVsYWlyZVxuICogLSBIaVNlYXJjaEZpZWxkIDogaW50w6hncmUgdW5lIGJhcnJlIGRlIHJlY2hlcmNoZSBkYW5zIGxlIFBvcHBlcixcbiAqIGlsIGZpbHRyZSBsYSBsaXN0ZSBkZXMgc3VnZ2VzdGlvbnNcbiAqIC0gSGlTZWxlY3RhYmxlTGlzdCA6IGFmZmljaGUgbGEgbGlzdGUgZGVzIHN1Z2dlc3Rpb25zIHNlbG9uIGxlIHR5cGUgZGVzIMOpbMOpbWVudHNcbiAqL1xuY2xhc3MgSGlTZWxlY3QgZXh0ZW5kcyBSZWFjdC5QdXJlQ29tcG9uZW50IHtcbiAgICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgICAgICAvKipcbiAgICAgICAgICogQWZmaWNoZSB1bmUgY2hlY2tib3ggcG91ciBjaGFxdWUgw6lsw6ltZW50cywgcGFyIGTDqWZhdXQgc2kgb3B0aW9ucyBlc3QgbmVzdGVkXG4gICAgICAgICAqL1xuICAgICAgICBjaGVja2JveDogUHJvcFR5cGVzLmJvb2wsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJY29uIGFmZmljaMOpIGxvcnNxdWUgbCdpdGVtIGVzdCBzw6lsZWN0aW9ubsOpXG4gICAgICAgICAqL1xuICAgICAgICBjaGVja2VkSWNvbjogUHJvcFR5cGVzLm5vZGUsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBVc2VmdWwgdG8gZXh0ZW5kIHRoZSBzdHlsZSBhcHBsaWVkIHRvIGNvbXBvbmVudHMuXG4gICAgICAgICAqL1xuICAgICAgICBjbGFzc2VzOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgICAgICAvKipcbiAgICAgICAgICogSW5hY3RpZlxuICAgICAgICAgKi9cbiAgICAgICAgZGlzYWJsZWQ6IFByb3BUeXBlcy5ib29sLFxuICAgICAgICAvKipcbiAgICAgICAgICogT3B0aW9uIHBlcm1ldHRhbnQgZCdhZmZpY2hlciBsZXMgc8OpbGVjdGlvbiBzb3VzIGZvcm1lIGRlIENoaXAuXG4gICAgICAgICAqL1xuICAgICAgICBkaXNwbGF5QXNDaGlwOiBQcm9wVHlwZXMuYm9vbCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIE9wdGlvbiBwZXJtZXR0YW50IGRlIGTDqWZpbmlyIHNpIGxlcyBvcHRpb25zIGR1IHNlbGVjdCBzb250IGR5bmFtaXF1ZXMuXG4gICAgICAgICAqIFNpIGxlcyBvcHRpb25zIGR1IHNlbGVjdCBzb250IGluaXRpYWxpc8OpZXMgw6AgdmlkZSwgYWxvcnMgY2Ugc2VyYSBtaXMgw6AgdHJ1ZVxuICAgICAgICAgKiBhdXRvbWF0aXF1ZW1lbnQuXG4gICAgICAgICAqL1xuICAgICAgICBkeW5hbWljOiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkLFxuICAgICAgICAvKipcbiAgICAgICAgICogQXBwbGlxdWUgbGUgc3R5bGUgZXJyb3JcbiAgICAgICAgICovXG4gICAgICAgIGVycm9yOiBQcm9wVHlwZXMuYm9vbCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEFmZmljaGUgbCfDqWzDqW1lbnQgJ0FsbCdcbiAgICAgICAgICovXG4gICAgICAgIGhhc0FsbDogUHJvcFR5cGVzLmJvb2wsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBMZXMgaXRlbXMgc29udCBoacOpcmFyY2hpc8Opc1xuICAgICAgICAgKi9cbiAgICAgICAgaGllcmFyY2hpYzogUHJvcFR5cGVzLmJvb2wsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJY29uIGFmZmljaMOpIGxvcnNxdWUgbCdpdGVtIG4nZXN0IHBhcyBzw6lsZWN0aW9ubsOpIGV0IHF1J29uIGxlIHN1cnZvbGVcbiAgICAgICAgICovXG4gICAgICAgIGhvdmVySWNvbjogUHJvcFR5cGVzLm5vZGUsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJY29uIGFmZmljaMOpIGxvcnNxdWUgbCdpdGVtIG4nZXN0IHBhcyBzw6lsZWN0aW9ubsOpXG4gICAgICAgICAqL1xuICAgICAgICBpY29uOiBQcm9wVHlwZXMubm9kZSxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIE5vbSBkZSBsJ2ljw7RuZVxuICAgICAgICAgKi9cbiAgICAgICAgaWNvbkFsbDogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLnN0cmluZywgUHJvcFR5cGVzLmJvb2xdKSxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIGlkIGR1IHNlbGVjdFxuICAgICAgICAgKi9cbiAgICAgICAgaWQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBBam91dGUgdW4gbG9hZGVyXG4gICAgICAgICAqL1xuICAgICAgICBsb2FkaW5nOiBQcm9wVHlwZXMuYm9vbCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEF1dG9yaXNlIGxhIHPDqWxlY3Rpb24gZGUgcGx1c2lldXJzIHZhbGV1cnNcbiAgICAgICAgICovXG4gICAgICAgIG11bHRpcGxlOiBQcm9wVHlwZXMuYm9vbCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIE5vbSBkdSBjaGFtcCBkZSBmb3JtdWxhaXJlXG4gICAgICAgICAqL1xuICAgICAgICBuYW1lOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBGb25jdGlvbiBkZSBjYWxsYmFjayBxdWkgcmVudm9pdCBsYS9sZXMgdmFsZXVycyBzw6lsZWN0aW9ubsOpZXNcbiAgICAgICAgICpcbiAgICAgICAgICogQHBhcmFtIHtvYmplY3R9IGV2ZW50XG4gICAgICAgICAqIEBwYXJhbSB7c3RyaW5nIHx8IGFycmF5fSB2YWx1ZVxuICAgICAgICAgKi9cbiAgICAgICAgb25DaGFuZ2U6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBGb25jdGlvbiBkZSBjYWxsYmFjayBhcHBlbMOpZSBsb3JzcXUnb24gZmVybWUgbGUgc2VsZWN0XG4gICAgICAgICAqL1xuICAgICAgICBvbkNsb3NlOiBQcm9wVHlwZXMuZnVuYyxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEZvbmN0aW9uIGRlIGNhbGxiYWNrIGFwcGVsw6llIGxvcnNxdSdvbiBzdXJ2b2xlIGxlIGNoYW1wc1xuICAgICAgICAgKi9cbiAgICAgICAgb25Nb3VzZUVudGVyOiBQcm9wVHlwZXMuZnVuYyxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEZvbmN0aW9uIGRlIGNhbGxiYWNrIGFwcGVsw6llIGxvcnNxdWUgbGUgY3Vyc2V1ciBxdWl0dGUgbGUgY2hhbXBzXG4gICAgICAgICAqL1xuICAgICAgICBvbk1vdXNlTGVhdmU6IFByb3BUeXBlcy5mdW5jLFxuICAgICAgICAvKipcbiAgICAgICAgICogRm9uY3Rpb24gZGUgY2FsbGJhY2sgYXBwZWzDqWUgbG9yc3F1J29uIMOpY3JpdCBkYW5zIGxhIGJhcnJlIGRlIHJlY2hlcmNoZVxuICAgICAgICAgKiBBIHV0aWxpc2VyIHBvdXIgbGVzIHNlbGVjdHMgYXZlYyBkZXMgZG9ubsOpZXMgZHluYW1pcXVlc1xuICAgICAgICAgKlxuICAgICAgICAgKiBAcGFyYW0ge29iamVjdH0gZXZlbnRcbiAgICAgICAgICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gICAgICAgICAqL1xuICAgICAgICBvblNlYXJjaDogUHJvcFR5cGVzLmZ1bmMsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBMaXN0ZXMgZGVzIG9wdGlvbnMgZHUgc2VsZWN0XG4gICAgICAgICAqL1xuICAgICAgICBvcHRpb25zOiBQcm9wVHlwZXMuYXJyYXkuaXNSZXF1aXJlZCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEljb24gYWZmaWNow6kgbG9yc3F1J3VuIGl0ZW0gcGFyZW50IG4nZXN0IHBhcyBzw6lsZWN0aW9ubsOpXG4gICAgICAgICAqL1xuICAgICAgICBwYXJlbnRJY29uOiBQcm9wVHlwZXMubm9kZSxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIExlcyBpdGVtcyBwYXJlbnRzIHNvbnQgc8OpbGVjdGlvbm5hYmxlc1xuICAgICAgICAgKi9cbiAgICAgICAgcGFyZW50SXRlbVNlbGVjdGFibGU6IFByb3BUeXBlcy5ib29sLFxuICAgICAgICAvKipcbiAgICAgICAgICogSXRlbSDDqXBpbmdsw6kgZW4gZMOpYnV0IGRlIGxpc3RlXG4gICAgICAgICAqL1xuICAgICAgICBwaW5uZWRJdGVtOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgICAgICAvKipcbiAgICAgICAgICogUGxhY2Vob2xkZXIgYWZmaWNow6kgbG9yc3F1ZSBsZSBzZWxlY3QgZXN0IGZlcm3DqVxuICAgICAgICAgKiBTdXJjaGFyZ2UgbGUgcGxhY2Vob2xkZXIgcGFyIGTDqWZhdXRcbiAgICAgICAgICovXG4gICAgICAgIHBsYWNlaG9sZGVyOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgICAvKipcbiAgICAgICAgICogQWZmaWNoZSB1biBpbnB1dCBkZSByZWNoZXJjaGUgcGVybWV0dGFudCBkZSBmaWx0cmVyIGxlcyBvcHRpb25zXG4gICAgICAgICAqL1xuICAgICAgICBzZWFyY2hhYmxlOiBQcm9wVHlwZXMuYm9vbCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFNpIHRydWUsIGxlIGNvbnRlbnUgZHUgc2VsZWN0IHNlcmEgZGFucyB1bmUgZGl2IHN0YXRpYyBwbHV0b3QgcXVlIGRhbnMgdW5lIHBvcHBlciBhYnNvbHV0ZVxuICAgICAgICAgKi9cbiAgICAgICAgc3RhdGljUG9zaXRpb246IFByb3BUeXBlcy5ib29sLFxuICAgICAgICAvKipcbiAgICAgICAgICogVHJhZHVjdGlvbnMgKHBhciBkw6lmYXV0IGVuIGFuZ2xhaXMpXG4gICAgICAgICAqL1xuICAgICAgICB0cmFuc2xhdGlvbnM6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUeXBlIGRlcyDDqWzDqW1lbnRzIGR1IHNlbGVjdCwgZMOpZmluaXQgbGUgcmVuZHUgZCd1biDDqWzDqW1lbnRcbiAgICAgICAgICovXG4gICAgICAgIHR5cGU6IFByb3BUeXBlcy5vbmVPZihbJ2ljb24nLCAndGV4dCcsICdpbWFnZScsICdwcmltYXJ5LWhpZ2hsaWdodCddKSxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFZhbHVlKHMpIGR1IHNlbGVjdFxuICAgICAgICAgKi9cbiAgICAgICAgdmFsdWU6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5udW1iZXIsIFByb3BUeXBlcy5zdHJpbmcsIFByb3BUeXBlcy5hcnJheV0pLFxuICAgIH07XG5cbiAgICBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgICAgICBkaXNhYmxlZDogZmFsc2UsXG4gICAgICAgIGVycm9yOiBmYWxzZSxcbiAgICAgICAgbXVsdGlwbGU6IGZhbHNlLFxuICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgIGNoZWNrYm94OiBmYWxzZSxcbiAgICAgICAgc2VhcmNoYWJsZTogZmFsc2UsXG4gICAgICAgIGhhc0FsbDogZmFsc2UsXG4gICAgICAgIGljb25BbGw6IGZhbHNlLFxuICAgICAgICBoaWVyYXJjaGljOiBmYWxzZSxcbiAgICAgICAgcGFyZW50SXRlbVNlbGVjdGFibGU6IGZhbHNlLFxuICAgICAgICBkaXNwbGF5QXNDaGlwOiBmYWxzZSxcbiAgICAgICAgZHluYW1pYzogZmFsc2UsXG4gICAgICAgIGljb246IDxDaGVja2JveEJsYW5rT3V0bGluZSBzdHlsZT17eyB3aWR0aDogMjAsIGhlaWdodDogMjAgfX0gLz4sXG4gICAgICAgIHBhcmVudEljb246IDxDaGVja2JveEJsYW5rT3V0bGluZSBzdHlsZT17eyB3aWR0aDogMjAsIGhlaWdodDogMjAgfX0gLz4sXG4gICAgICAgIGhvdmVySWNvbjogPENoZWNrYm94QmxhbmtPdXRsaW5lIHN0eWxlPXt7IHdpZHRoOiAyMCwgaGVpZ2h0OiAyMCB9fSAvPixcbiAgICAgICAgY2hlY2tlZEljb246IDxDaGVja2JveE1hcmtlZCBzdHlsZT17eyB3aWR0aDogMjAsIGhlaWdodDogMjAgfX0gLz4sXG4gICAgICAgIHRyYW5zbGF0aW9uczoge1xuICAgICAgICAgICAgYWxsOiAnQWxsJyxcbiAgICAgICAgICAgIG5vX3Jlc3VsdF9tYXRjaDogJ05vIHJlc3VsdCBtYXRjaCcsXG4gICAgICAgICAgICBzZWFyY2g6ICdTZWFyY2gnLFxuICAgICAgICAgICAgbl9pdGVtc19zZWxlY3RlZDogJyVzIGl0ZW1zIHNlbGVjdGVkJyxcbiAgICAgICAgICAgIG9uZV9pdGVtX3NlbGVjdGVkOiAnJXMgaXRlbSBzZWxlY3RlZCcsXG4gICAgICAgICAgICBuX2NoaWxkcmVuOiAnJXMgaXRlbXMnLFxuICAgICAgICAgICAgb25lX2NoaWxkOiAnJXMgaXRlbScsXG4gICAgICAgIH0sXG4gICAgICAgIHN0YXRpY1Bvc2l0aW9uOiBmYWxzZSxcbiAgICB9O1xuXG4gICAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICAgICAgc3VwZXIocHJvcHMpO1xuXG4gICAgICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICAgICAgICBvcGVuOiBmYWxzZSxcbiAgICAgICAgICAgIGZvY3VzZWQ6IGZhbHNlLFxuICAgICAgICAgICAgc3VnZ2VzdGlvbnM6IFtdLFxuICAgICAgICAgICAgaGllcmFyY2h5U2VsZWN0ZWQ6IHt9LFxuICAgICAgICAgICAgaGllcmFyY2h5OiB7fSxcbiAgICAgICAgICAgIG5iT3B0aW9uczogMCxcbiAgICAgICAgICAgIGR5bmFtaWM6IHByb3BzLmR5bmFtaWMgfHwgZmFsc2UsXG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gQ2hlY2sgaWYgdmFsdWUgaXMgaW4gb3B0aW9uc1xuICAgICAgICBsZXQgdmFsdWVJbk9wdGlvbnMgPSBmYWxzZTtcbiAgICAgICAgY29uc3QgdmFsID0gcHJvcHMudmFsdWU7XG4gICAgICAgIC8vIE5vIG9wdGlvbnMgcHJvdmlkZWQuXG4gICAgICAgIGlmICghcHJvcHMub3B0aW9ucy5sZW5ndGggfHwgIXZhbCB8fCAhdmFsLmxlbmd0aCkge1xuICAgICAgICAgICAgdmFsdWVJbk9wdGlvbnMgPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gQ2hlY2sgaWYgYW4gb3B0aW9uIG1hdGNoIHZhbHVlIHByb3AuXG4gICAgICAgICAgICBwcm9wcy5vcHRpb25zLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCF2YWx1ZUluT3B0aW9ucyAmJiB2YWwuaW5kZXhPZihpdGVtLmlkKSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWVJbk9wdGlvbnMgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgaWYgKCF2YWx1ZUluT3B0aW9ucyAmJiBwcm9wcy5waW5uZWRJdGVtKXtcbiAgICAgICAgICAgICAgICBpZiAocHJvcHMudmFsdWUuaW5kZXhPZihwcm9wcy5waW5uZWRJdGVtLmlkKT49MCkge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZUluT3B0aW9ucyA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF2YWx1ZUluT3B0aW9ucykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdwcm9wIHZhbHVlIHByb3ZpZGVkIGRvZXMgbm90IG1hdGNoIGFueSBvcHRpb24uJyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocHJvcHMuaGllcmFyY2hpYyA9PT0gdHJ1ZSAmJiBwcm9wcy5vcHRpb25zLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgIGNvbnN0IGhpZXJhcmNoeVRyZWVzID0gdGhpcy5idWlsZEhpZXJhcmNoeVRyZWVzKHByb3BzKTtcblxuICAgICAgICAgICAgdGhpcy5zdGF0ZS5oaWVyYXJjaHkgPSBoaWVyYXJjaHlUcmVlcy5oaWVyYXJjaHk7XG4gICAgICAgICAgICB0aGlzLnN0YXRlLmhpZXJhcmNoeVNlbGVjdGVkID0gaGllcmFyY2h5VHJlZXMuaGllcmFyY2h5U2VsZWN0ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocHJvcHMub3B0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAvLyBHZXQgcmVhbCBvcHRpb25zIG51bWJlciAocGFyZW50ICYgX2FsbCBhcmUgbm90IHJlYWwgb3B0aW9ucylcbiAgICAgICAgICAgIGxldCBvcHRpb25zTGVuZ3RoID0gMDtcbiAgICAgICAgICAgIHByb3BzLm9wdGlvbnMuZm9yRWFjaChvcHRpb24gPT4ge1xuICAgICAgICAgICAgICAgIGlmIChvcHRpb24uaGFzQ2hpbGRyZW4gIT09IHRydWUgJiYgb3B0aW9uLmlkICE9PSAnX2FsbCcpIHtcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9uc0xlbmd0aCsrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZS5uYk9wdGlvbnMgPSBvcHRpb25zTGVuZ3RoO1xuICAgICAgICB9IGVsc2UgaWYgKCFwcm9wcy5keW5hbWljKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlLmR5bmFtaWMgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5oYW5kbGVTZWxlY3QgPSB0aGlzLmhhbmRsZVNlbGVjdC5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLmhhbmRsZUNsaWNrID0gdGhpcy5oYW5kbGVDbGljay5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLmhhbmRsZUNsb3NlID0gdGhpcy5oYW5kbGVDbG9zZS5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLmhhbmRsZUNsaWNrQXdheSA9IHRoaXMuaGFuZGxlQ2xpY2tBd2F5LmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMuaGFuZGxlUmVxdWVzdERlbGV0ZSA9IHRoaXMuaGFuZGxlUmVxdWVzdERlbGV0ZS5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLmhhbmRsZVN1Z2dlc3Rpb25zID0gdGhpcy5oYW5kbGVTdWdnZXN0aW9ucy5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLmhhbmRsZUZvY3VzID0gdGhpcy5oYW5kbGVGb2N1cy5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLmhhbmRsZUJsdXIgPSB0aGlzLmhhbmRsZUJsdXIuYmluZCh0aGlzKTtcbiAgICB9XG5cbiAgICBjb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKG5leHRQcm9wcykge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICB0eXBlb2YgdGhpcy5wcm9wcy5vblNlYXJjaCAhPT0gJ3VuZGVmaW5lZCcgJiZcbiAgICAgICAgICAgIHRoaXMucHJvcHMub3B0aW9ucyAmJlxuICAgICAgICAgICAgdGhpcy5wcm9wcy5vcHRpb25zLmxlbmd0aCA+IDBcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZVN1Z2dlc3Rpb25zKG5leHRQcm9wcy5vcHRpb25zKTtcbiAgICAgICAgICAgIGxldCBvcHRpb25zTGVuZ3RoID0gMDtcbiAgICAgICAgICAgIG5leHRQcm9wcy5vcHRpb25zLmZvckVhY2gob3B0aW9uID0+IHtcbiAgICAgICAgICAgICAgICBpZiAob3B0aW9uLmhhc0NoaWxkcmVuICE9PSB0cnVlICYmIG9wdGlvbi5pZCAhPT0gJ19hbGwnKSB7XG4gICAgICAgICAgICAgICAgICAgIG9wdGlvbnNMZW5ndGgrKztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBuYk9wdGlvbnM6IG9wdGlvbnNMZW5ndGggfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobmV4dFByb3BzLmhpZXJhcmNoaWMgPT09IHRydWUgJiYgbmV4dFByb3BzLm9wdGlvbnMubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgY29uc3QgaGllcmFyY2h5VHJlZXMgPSB0aGlzLmJ1aWxkSGllcmFyY2h5VHJlZXMobmV4dFByb3BzKTtcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBoaWVyYXJjaHk6IGhpZXJhcmNoeVRyZWVzLmhpZXJhcmNoeSwgaGllcmFyY2h5U2VsZWN0ZWQ6IGhpZXJhcmNoeVRyZWVzLmhpZXJhcmNoeVNlbGVjdGVkIH0pXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBidWlsZEhpZXJhcmNoeVRyZWVzKHByb3BzKSB7XG4gICAgICAgIC8vIENvbnN0cnVjdCB0d28gYXNzb2NpYXRpdmUgYXJyYXlzXG4gICAgICAgIC8vIGhpZXJhcmNoeVtwYXJlbnRJZF0gPT4gY2hpbGRyZW5cbiAgICAgICAgLy8gaGllcmFyY2h5U2VsZWN0ZWRbcGFyZW50SWRdID0+IHNlbGVjdGVkIGNoaWxkcmVuXG4gICAgICAgIGNvbnN0IGhpZXJhcmNoeSA9IHt9O1xuICAgICAgICBjb25zdCBoaWVyYXJjaHlTZWxlY3RlZCA9IHt9O1xuICAgICAgICBsZXQgdmFsdWUgPSBwcm9wcy52YWx1ZSB8fCBbXTtcbiAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KHZhbHVlKSkgdmFsdWUgPSBbcHJvcHMudmFsdWVdO1xuICAgICAgICBwcm9wcy5vcHRpb25zLmZvckVhY2gob3B0aW9uID0+IHtcbiAgICAgICAgICAgIGlmIChvcHRpb24uaGFzQ2hpbGRyZW4gPT09IHRydWUgJiYgIWhpZXJhcmNoeS5oYXNPd25Qcm9wZXJ0eShvcHRpb24uaWQpKSB7XG4gICAgICAgICAgICAgICAgaGllcmFyY2h5W29wdGlvbi5pZF0gPSBbXTtcbiAgICAgICAgICAgICAgICBoaWVyYXJjaHlTZWxlY3RlZFtvcHRpb24uaWRdID0gW107XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG9wdGlvbi5oYXNPd25Qcm9wZXJ0eSgncGFyZW50SWQnKSkge1xuICAgICAgICAgICAgICAgIGhpZXJhcmNoeVtvcHRpb24ucGFyZW50SWRdLnB1c2gob3B0aW9uLmlkKTtcbiAgICAgICAgICAgICAgICBpZiAodmFsdWUuaW5jbHVkZXMob3B0aW9uLmlkKSkge1xuICAgICAgICAgICAgICAgICAgICBoaWVyYXJjaHlTZWxlY3RlZFtvcHRpb24ucGFyZW50SWRdLnB1c2gob3B0aW9uLmlkKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4geyBoaWVyYXJjaHksIGhpZXJhcmNoeVNlbGVjdGVkIH07XG4gICAgfVxuXG4gICAgaGFuZGxlQ2xpY2sgPSAoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLnN0YXRlLm9wZW4pIHtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlQ2xvc2UoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5wcm9wcy5zdGF0aWNQb3NpdGlvbikge1xuICAgICAgICAgICAgICAgIC8vZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdyA9ICdoaWRkZW4nO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7b3BlbjogdHJ1ZX0pO1xuICAgICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMucHJvcHMub3B0aW9ucy5zbGljZSgpO1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVTdWdnZXN0aW9ucyhvcHRpb25zKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMucHJvcHMub25DbGljaykge1xuICAgICAgICAgICAgICAgIHRoaXMucHJvcHMub25DbGljaygpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBHZXN0aW9uIGR1IGZvY3VzXG4gICAgICAgICAgICBpZiAodGhpcy5zZWFyY2hGaWVsZCkge1xuICAgICAgICAgICAgICAgIC8vIHNpIHNlYXJjaGFibGUsIGZvY3VzIHN1ciBsZSBjaGFtcHMgZGUgcmVjaGVyY2hlXG4gICAgICAgICAgICAgICAgY29uc3Qgc2VhcmNoRmllbGQgPSB0aGlzLnNlYXJjaEZpZWxkO1xuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBzZWFyY2hGaWVsZC5mb2N1cygpO1xuICAgICAgICAgICAgICAgIH0sIDEpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLm92ZXJsYXkpIHtcbiAgICAgICAgICAgICAgICAvLyBzaW5vbiBmb2N1cyBzdXIgbGUgZGVybmllciDDqWzDqW1lbnQgc2VsZWN0aW9ubsOpXG4gICAgICAgICAgICAgICAgdGhpcy5mb2N1c09uU2VsZWN0ZWRJdGVtKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgZm9jdXNPblNlbGVjdGVkSXRlbSA9ICgpID0+IHtcbiAgICAgICAgLy8gT24gcsOpY3Vww6hyZSBsYSBkaXYgcGFyZW50IFwib3ZlcmxheVwiXG4gICAgICAgIGNvbnN0IG92ZXJsYXkgPSBmaW5kRE9NTm9kZSh0aGlzLm92ZXJsYXkpO1xuICAgICAgICBjb25zdCBtdWx0aXBsZSA9IHRoaXMucHJvcHMubXVsdGlwbGU7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5wcm9wcy52YWx1ZTtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRJZExpc3QgPSBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogW3ZhbHVlXTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBsZXQgZm9jdXNlZCA9IGZhbHNlO1xuICAgICAgICAgICAgLy8gU2kgdW4gb3UgcGx1c2lldXJzIGl0ZW1zIHNvbnQgc2VsZWN0aW9ubsOpcywgb24gZm9jdXMgc3VyIGxlIGRlcm5pZXJcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZElkTGlzdC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXRlbVNlbGVjdGVkID0gb3ZlcmxheS5xdWVyeVNlbGVjdG9yKFxuICAgICAgICAgICAgICAgICAgICBgW2RhdGEtaWQ9XCIke3NlbGVjdGVkSWRMaXN0W3NlbGVjdGVkSWRMaXN0Lmxlbmd0aCAtIDFdfVwiXWAsXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBpZiAoaXRlbVNlbGVjdGVkICYmIGl0ZW1TZWxlY3RlZC5wYXJlbnRFbGVtZW50LnRhZ05hbWUgPT09ICdMSScpIHtcbiAgICAgICAgICAgICAgICAgICAgaXRlbVNlbGVjdGVkLnBhcmVudEVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgICAgICAgICAgICAgZm9jdXNlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gU2kgcGFzIGQnaXRlbSBzZWxlY3Rpb25uw6ksIG91IHBhcyB2aXNpYmxlIChlbiBjYXMgZGUgcmVjaGVyY2hlKSwgZm9jdXMgc3VyIGxlIHByZW1pZXJcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZElkTGlzdC5sZW5ndGggPT09IDAgfHwgIWZvY3VzZWQpIHtcbiAgICAgICAgICAgICAgICAvLyBPbiByZWN1cMOocmUgdG91cyBsZXMgaXRlbXNcbiAgICAgICAgICAgICAgICBjb25zdCBpdGVtcyA9IG92ZXJsYXkuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2xpJyk7XG4gICAgICAgICAgICAgICAgbGV0IGl0ZW1Ub0ZvY3VzID0gaXRlbXNbMF07XG4gICAgICAgICAgICAgICAgLy8gU2kgc2VsZWN0IG11bHRpcGxlLCBldCBxdSdhdSBtb2lucyB1biBzZWxlY3Rpb25uw6ksIGZvY3VzIHN1ciBsZSAyZSBpdGVtXG4gICAgICAgICAgICAgICAgaWYgKG11bHRpcGxlICYmIHNlbGVjdGVkSWRMaXN0Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgaXRlbVRvRm9jdXMgPSBpdGVtc1sxXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGl0ZW1Ub0ZvY3VzKSB7XG4gICAgICAgICAgICAgICAgICAgIGl0ZW1Ub0ZvY3VzLmZvY3VzKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9LCAxKTtcbiAgICB9O1xuXG4gICAgLy8gS2V5IGRvd24gb24gbGlzdCBpdGVtc1xuICAgIGhhbmRsZUtleURvd24gPSBldmVudCA9PiB7XG4gICAgICAgIGxldCBuZXh0SXRlbTtcbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93RG93bicpIHtcbiAgICAgICAgICAgIG5leHRJdGVtID0gZ2V0TmV4dEl0ZW1TZWxlY3RhYmxlKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQsICdkb3duJyk7XG4gICAgICAgIH0gZWxzZSBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dVcCcpIHtcbiAgICAgICAgICAgIG5leHRJdGVtID0gZ2V0TmV4dEl0ZW1TZWxlY3RhYmxlKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQsICd1cCcpO1xuICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gJ1RhYicpIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5wcm9wcy5zdGF0aWNQb3NpdGlvbikge1xuICAgICAgICAgICAgICAgIC8vZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdyA9ICdhdXRvJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBvcGVuOiBmYWxzZSB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobmV4dEl0ZW0pIHtcbiAgICAgICAgICAgIG5leHRJdGVtLmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgLy8gS2V5IGRvd24gb24gc2VhcmNoIGlucHV0XG4gICAgaGFuZGxlS2V5RG93blNlYXJjaCA9IGV2ZW50ID0+IHtcbiAgICAgICAgaWYgKHRoaXMub3ZlcmxheSAmJiAoZXZlbnQua2V5ID09PSAnQXJyb3dEb3duJyB8fCBldmVudC5rZXkgPT09ICdBcnJvd1VwJykpIHtcbiAgICAgICAgICAgIHRoaXMuZm9jdXNPblNlbGVjdGVkSXRlbSgpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIGhhbmRsZUZvY3VzID0gKCkgPT4ge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHsgZm9jdXNlZDogdHJ1ZSB9KTtcbiAgICB9O1xuXG4gICAgaGFuZGxlQmx1ciA9ICgpID0+IHtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGZvY3VzZWQ6IGZhbHNlIH0pO1xuICAgIH07XG5cbiAgICBoYW5kbGVDbG9zZSA9ICgpID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLnByb3BzLnN0YXRpY1Bvc2l0aW9uKSB7XG4gICAgICAgICAgICAvL2RvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3cgPSAnYXV0byc7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgICBvcGVuOiBmYWxzZSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKHRoaXMucHJvcHMub25DbG9zZSkge1xuICAgICAgICAgICAgdGhpcy5wcm9wcy5vbkNsb3NlKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0SW5wdXRFbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdElucHV0RWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIGhhbmRsZUNsaWNrQXdheSA9IChldmVudCkgPT4ge1xuICAgICAgICAvLyBBdSBjbGljIHN1ciBsZSBib3V0b24sIG9uIGxhaXNzZSBsZSBoYW5kbGVDbGljayBmZXJtZXIgbGUgc2VsZWN0XG4gICAgICAgIGlmICghdGhpcy5zZWxlY3RJbnB1dEVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSkge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVDbG9zZShldmVudCk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogQ2FsbCBvbkNoYW5nZSB3aXRoIHRoZSB1cGRhdGVkIHZhbHVlXG4gICAgICpcbiAgICAgKiAtIGhhbmRsZSBzaW5nbGUgdmFsdWVcbiAgICAgKiAtIGhhbmRsZSBtdWx0aXBsZSB2YWx1ZVxuICAgICAqIC0gaGFuZGxlICdfYWxsJyBpZFxuICAgICAqXG4gICAgICogQHBhcmFtIGV2ZW50XG4gICAgICogQHBhcmFtIGl0ZW1cbiAgICAgKi9cbiAgICBoYW5kbGVTZWxlY3QgPSAoZXZlbnQsIGl0ZW0pID0+IHtcbiAgICAgICAgY29uc3QgeyBtdWx0aXBsZSwgdmFsdWUsIG9uQ2hhbmdlLCBvcHRpb25zLCBoaWVyYXJjaGljLCBwaW5uZWRJdGVtIH0gPSB0aGlzLnByb3BzO1xuICAgICAgICBjb25zdCB7IGhpZXJhcmNoeVNlbGVjdGVkLCBoaWVyYXJjaHksIG5iT3B0aW9ucyB9ID0gdGhpcy5zdGF0ZTtcbiAgICAgICAgY29uc3QgaGlTZWxlY3RlZCA9IHsgLi4uaGllcmFyY2h5U2VsZWN0ZWQgfTtcblxuICAgICAgICBpZiAobXVsdGlwbGUpIHtcbiAgICAgICAgICAgIGxldCB2YWx1ZUxpc3QgPSB2YWx1ZTtcbiAgICAgICAgICAgIGlmIChpdGVtLmlkID09PSAnX2FsbCcpIHtcbiAgICAgICAgICAgICAgICBpZiAodmFsdWVMaXN0Lmxlbmd0aCA9PT0gbmJPcHRpb25zKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlTGlzdCA9IFtdO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaGllcmFyY2hpYykge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWYgaGllcmFyY2hpYyBzZWxlY3QgPT4gZW1wdHkgYXNzb2NpYXRpdmUgYXJyYXkgb2Ygc2VsZWN0ZWQgY2hpbGRyZW5cbiAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdC5rZXlzKGhpU2VsZWN0ZWQpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaVNlbGVjdGVkW2tleV0gPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9ucy5mb3JFYWNoKG9wdGlvbiA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uLmhhc0NoaWxkcmVuICE9PSB0cnVlICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIXZhbHVlTGlzdC5pbmNsdWRlcyhvcHRpb24uaWQpICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uLmlkICE9PSAnX2FsbCdcbiAgICAgICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlTGlzdC5wdXNoKG9wdGlvbi5pZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG9wdGlvbi5oYXNDaGlsZHJlbiA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlmIGhpZXJhcmNoaWMgc2VsZWN0ID0+IGZpbGwgYXNzb2NpYXRpdmUgYXJyYXkgb2Ygc2VsZWN0ZWQgY2hpbGRyZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaVNlbGVjdGVkW29wdGlvbi5pZF0gPSBoaWVyYXJjaHlbb3B0aW9uLmlkXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgICAgICB2YWx1ZUxpc3QuaW5jbHVkZXMoaXRlbS5pZCkgfHxcbiAgICAgICAgICAgICAgICAoaXRlbS5oYXNDaGlsZHJlbiA9PT0gdHJ1ZSAmJlxuICAgICAgICAgICAgICAgICAgICBoaWVyYXJjaHlTZWxlY3RlZFtpdGVtLmlkXS5sZW5ndGggPT09IGhpZXJhcmNoeVtpdGVtLmlkXS5sZW5ndGgpXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAvLyBpdGVtIGTDqWrDoCBzw6lsZWN0aW9ubsOpID0+IG9uIGxlIGTDqXNlbGVjdGlvbm5lXG4gICAgICAgICAgICAgICAgaWYgKGl0ZW0uaGFzQ2hpbGRyZW4gIT09IHRydWUpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWVMaXN0ID0gdmFsdWVMaXN0LmZpbHRlcih2YWwgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbCAhPT0gaXRlbS5pZDtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKGl0ZW0uaGFzQ2hpbGRyZW4gPT09IHRydWUpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gcmVtb3ZlIGFsbCBjaGlsZHJlblxuICAgICAgICAgICAgICAgICAgICB2YWx1ZUxpc3QgPSB2YWx1ZUxpc3QuZmlsdGVyKHZhbCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIXRoaXMuc3RhdGUuaGllcmFyY2h5W2l0ZW0uaWRdLmluY2x1ZGVzKHZhbCk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBoaVNlbGVjdGVkW2l0ZW0uaWRdID0gW107XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpdGVtLmhhc093blByb3BlcnR5KCdwYXJlbnRJZCcpKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFNpIGl0ZW0gZXN0IHVuIGVuZmFudCBvbiBsJ2VubMOodmUgZHUgdGFibGVhdSBhc3NvY2lhdGlmIGRlc1xuICAgICAgICAgICAgICAgICAgICAvLyBlbG10cyBzw6lsZWN0aW9ubsOpc1xuICAgICAgICAgICAgICAgICAgICBoaVNlbGVjdGVkW2l0ZW0ucGFyZW50SWRdLnNwbGljZShoaVNlbGVjdGVkW2l0ZW0ucGFyZW50SWRdLmluZGV4T2YoaXRlbS5pZCksIDEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKHBpbm5lZEl0ZW0gJiYgaXRlbS5pZCA9PT0gcGlubmVkSXRlbS5pZCkge1xuICAgICAgICAgICAgICAgICAgICBPYmplY3Qua2V5cyhoaVNlbGVjdGVkKS5tYXAocGFyZW50SXRlbUlkID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhpU2VsZWN0ZWRbcGFyZW50SXRlbUlkXSA9IFtdO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZUxpc3QgPSBbaXRlbS5pZF07XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gaXRlbSBub24gc8OpbGVjdGlvbm7DqSA9PiBvbiBsZSBzw6lsZWN0aW9ubmVcbiAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW0uaGFzQ2hpbGRyZW4gIT09IHRydWUpIHZhbHVlTGlzdC5wdXNoKGl0ZW0uaWQpO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChwaW5uZWRJdGVtICYmIHZhbHVlTGlzdC5pbmNsdWRlcyhwaW5uZWRJdGVtLmlkKSl7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZUxpc3Quc3BsaWNlKHZhbHVlTGlzdC5pbmRleE9mKHBpbm5lZEl0ZW0uaWQpLCAxKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChpdGVtLmhhc0NoaWxkcmVuID09PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFNpIGl0ZW0gcGFyZW50ID0+IG9uIGFqb3V0ZSB0b3VzIGxlcyBlbmZhbnRzXG4gICAgICAgICAgICAgICAgICAgIC8vIE91IG9uIGxlcyBzdXBwcmltZSBzJ2lscyBzb250IGTDqWrDoCB0b3VzIHPDqWxlY3Rpb25uw6lzIChkYW5zIHVuZSBsaXN0ZSBmaWx0csOpZSlcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaWRzSW5TdWdnZXN0aW9ucyA9IFtdO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlLnN1Z2dlc3Rpb25zLmZvckVhY2goc3VnZ2VzdGlvbiA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5zdGF0ZS5oaWVyYXJjaHlbaXRlbS5pZF0uaW5jbHVkZXMoc3VnZ2VzdGlvbi5pZCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZHNJblN1Z2dlc3Rpb25zLnB1c2goc3VnZ2VzdGlvbi5pZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAvLyBpZihoaWVyYXJjaHlTZWxlY3RlZFtpdGVtLmlkXS5sZW5ndGggPiAwKSB7fVxuICAgICAgICAgICAgICAgICAgICBsZXQgYWxsQ2hpbGRyZW5TdWdnZXN0aW9uc1NlbGVjdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgaWRzSW5TdWdnZXN0aW9ucy5mb3JFYWNoKGlkID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaGllcmFyY2h5U2VsZWN0ZWRbaXRlbS5pZF0uaW5jbHVkZXMoaWQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsQ2hpbGRyZW5TdWdnZXN0aW9uc1NlbGVjdGVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChhbGxDaGlsZHJlblN1Z2dlc3Rpb25zU2VsZWN0ZWQgPT09IHRydWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIE9uIHN1cHByaW1lIGxlcyBlbmZhbnRzIGNhciBkw6lqw6AgdG91cyBzw6lsZWN0aW9ubsOpc1xuICAgICAgICAgICAgICAgICAgICAgICAgaWRzSW5TdWdnZXN0aW9ucy5mb3JFYWNoKGlkID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZUxpc3Quc3BsaWNlKHZhbHVlTGlzdC5pbmRleE9mKGlkKSwgMSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGlTZWxlY3RlZFtpdGVtLmlkXS5zcGxpY2UoaGlTZWxlY3RlZFtpdGVtLmlkXS5pbmRleE9mKGlkKSwgMSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIE9uIGFqb3V0ZSB0b3VzIGxlcyBlbmZhbnRzIGZpbHRyw6lzIGF1IMOpbMOpbWVudHMgc8OpbGVjdGlvbm7DqXNcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlTGlzdCA9IGFycmF5VW5pcXVlKHZhbHVlTGlzdC5jb25jYXQoaWRzSW5TdWdnZXN0aW9ucykpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaGlTZWxlY3RlZFtpdGVtLmlkXSA9IGFycmF5VW5pcXVlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpU2VsZWN0ZWRbaXRlbS5pZF0uY29uY2F0KGlkc0luU3VnZ2VzdGlvbnMpLFxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBoaWVyYXJjaHlTZWxlY3RlZDogaGlTZWxlY3RlZCB9KTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGl0ZW0uaGFzT3duUHJvcGVydHkoJ3BhcmVudElkJykpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gU2kgaXRlbSBlc3QgdW4gZW5mYW50IG9uIGwnYWpvdXRlIGR1IHRhYmxlYXUgYXNzb2NpYXRpZiBkZXNcbiAgICAgICAgICAgICAgICAgICAgLy8gZWxtdHMgc8OpbGVjdGlvbm7DqXNcbiAgICAgICAgICAgICAgICAgICAgaGlTZWxlY3RlZFtpdGVtLnBhcmVudElkXS5wdXNoKGl0ZW0uaWQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBoaWVyYXJjaHlTZWxlY3RlZDogaGlTZWxlY3RlZCB9KTtcbiAgICAgICAgICAgIG9uQ2hhbmdlKGV2ZW50LCB2YWx1ZUxpc3QsIGl0ZW0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgb25DaGFuZ2UoZXZlbnQsIGl0ZW0uaWQsIGl0ZW0pO1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVDbG9zZSgpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIFVwZGF0ZSBzdWdnZXN0aW9ucyBsaXN0XG4gICAgICogLSBhZGQgJ19ub19yZXN1bHQnIGl0ZW0gaWYgc3VnZ2VzdGlvbiBsaXN0IGlzIGVtcHR5XG4gICAgICogLSBhZGQgJ19hbGwnIGl0ZW0gaWYgc3VnZ2VzdGlvbiBsaXN0IGlzIGNvbXBsZXRlXG4gICAgICogQHBhcmFtIHN1Z2dlc3Rpb25zXG4gICAgICovXG4gICAgaGFuZGxlU3VnZ2VzdGlvbnMgPSBzdWdnZXN0aW9ucyA9PiB7XG4gICAgICAgIGNvbnN0IHsgb3B0aW9ucywgaGFzQWxsLCBpY29uQWxsLCB0cmFuc2xhdGlvbnMsIG11bHRpcGxlIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgICAgIGlmIChzdWdnZXN0aW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIC8vIEhhbmRsZSBObyBSZXN1bHRcbiAgICAgICAgICAgIC8vIEZJWCB0byByZW1vdmUgYWxsIGl0ZW1cbiAgICAgICAgICAgIHN1Z2dlc3Rpb25zID0gW107XG4gICAgICAgICAgICBzdWdnZXN0aW9ucy5wdXNoKHtcbiAgICAgICAgICAgICAgICBpZDogJ19ub19yZXN1bHQnLFxuICAgICAgICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgICAgICAgICBkaXNhYmxlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBjZW50ZXJlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBjaGVja2JveDogZmFsc2UsXG4gICAgICAgICAgICAgICAgbGFiZWw6IHRyYW5zbGF0aW9ucy5ub19yZXN1bHRfbWF0Y2gsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgIGhhc0FsbCAmJlxuICAgICAgICAgICAgc3VnZ2VzdGlvbnMubGVuZ3RoID4gMCAmJlxuICAgICAgICAgICAgc3VnZ2VzdGlvbnMubGVuZ3RoID09PSBvcHRpb25zLmxlbmd0aCAmJlxuICAgICAgICAgICAgbXVsdGlwbGUgPT09IHRydWVcbiAgICAgICAgKSB7XG4gICAgICAgICAgICAvLyBIYW5kbGUgJ0FsbCdcbiAgICAgICAgICAgIGlmIChzdWdnZXN0aW9ucy5maWx0ZXIoc3VnZ2VzdGlvbiA9PiBzdWdnZXN0aW9uLmlkID09PSAnX2FsbCcpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGFsbEl0ZW0gPSB7XG4gICAgICAgICAgICAgICAgICAgIGlkOiAnX2FsbCcsXG4gICAgICAgICAgICAgICAgICAgIGljb246IGljb25BbGwsXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiB0cmFuc2xhdGlvbnMuYWxsLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgaWYgKGljb25BbGwgIT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgICAgIGFsbEl0ZW0udHlwZSA9ICdpY29uJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgc3VnZ2VzdGlvbnMudW5zaGlmdChhbGxJdGVtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgICAgc3VnZ2VzdGlvbnMsXG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBoYW5kbGVSZXF1ZXN0RGVsZXRlID0gZXZ0ID0+IHtcbiAgICAgICAgZXZ0LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB0aGlzLnByb3BzLm9uQ2hhbmdlKHRoaXMucHJvcHMubmFtZSwgW10pO1xuICAgIH07XG5cbiAgICByZW5kZXIoKSB7XG4gICAgICAgIGNvbnN0IHtcbiAgICAgICAgICAgIGNsYXNzZXMsXG4gICAgICAgICAgICBkaXNhYmxlZCxcbiAgICAgICAgICAgIGVycm9yLFxuICAgICAgICAgICAgbG9hZGluZyxcbiAgICAgICAgICAgIG9wdGlvbnMsXG4gICAgICAgICAgICBjaGVja2JveCxcbiAgICAgICAgICAgIHNlYXJjaGFibGUsXG4gICAgICAgICAgICBkaXNwbGF5QXNDaGlwLFxuICAgICAgICAgICAgdHlwZSxcbiAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgdHJhbnNsYXRpb25zLFxuICAgICAgICAgICAgcGFyZW50SXRlbVNlbGVjdGFibGUsXG4gICAgICAgICAgICBpY29uLFxuICAgICAgICAgICAgcGFyZW50SWNvbixcbiAgICAgICAgICAgIGhvdmVySWNvbixcbiAgICAgICAgICAgIGNoZWNrZWRJY29uLFxuICAgICAgICAgICAgaGllcmFyY2hpYyxcbiAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgcGxhY2Vob2xkZXIsXG4gICAgICAgICAgICBzdGF0aWNQb3NpdGlvbixcbiAgICAgICAgICAgIHBpbm5lZEl0ZW0sXG4gICAgICAgICAgICBoYXNBbGwsXG4gICAgICAgIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgICAgIGNvbnN0IHsgb3Blbiwgc3VnZ2VzdGlvbnMsIGZvY3VzZWQsIGR5bmFtaWMgfSA9IHRoaXMuc3RhdGU7XG5cbiAgICAgICAgbGV0IGRpc3BsYXkgPSAnJztcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRJZExpc3QgPSBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogdmFsdWUgPyBbdmFsdWVdIDogW107XG5cbiAgICAgICAgbGV0IF9zdWdnZXN0aW9ucyA9IFsuLi5zdWdnZXN0aW9uc107XG5cbiAgICAgICAgaWYgKHBpbm5lZEl0ZW0pIHtcbiAgICAgICAgICAgIF9zdWdnZXN0aW9ucy51bnNoaWZ0KHBpbm5lZEl0ZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gSWYgbG9hZGluZ1xuICAgICAgICBpZiAobG9hZGluZykge1xuICAgICAgICAgICAgX3N1Z2dlc3Rpb25zLnVuc2hpZnQoXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBpZDogJ19sb2FkaW5nJyxcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2xvYWRlcicsXG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBjZW50ZXJlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgY2hlY2tib3g6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ2xvYWRpbmcnLFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoKGR5bmFtaWMgfHwgbG9hZGluZykgJiYgc2VsZWN0ZWRJZExpc3QubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICBkaXNwbGF5ID0gdHJhbnNsYXRpb25zLm9uZV9pdGVtX3NlbGVjdGVkO1xuICAgICAgICB9IGVsc2UgaWYgKCh0aGlzLnN0YXRlLm5iT3B0aW9ucyAhPT0gc2VsZWN0ZWRJZExpc3QubGVuZ3RoIHx8ICFoYXNBbGwpICYmIHNlbGVjdGVkSWRMaXN0Lmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgIGRpc3BsYXkgPSB0cmFuc2xhdGlvbnMubl9pdGVtc19zZWxlY3RlZC5yZXBsYWNlKCclcycsIHNlbGVjdGVkSWRMaXN0Lmxlbmd0aCk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5zdGF0ZS5uYk9wdGlvbnMgPT09IHNlbGVjdGVkSWRMaXN0Lmxlbmd0aCAmJiB0aGlzLnN0YXRlLm5iT3B0aW9ucyA+IDEpIHtcbiAgICAgICAgICAgIGRpc3BsYXkgPSB0cmFuc2xhdGlvbnMuYWxsO1xuICAgICAgICB9IGVsc2UgaWYgKHNlbGVjdGVkSWRMaXN0Lmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgbGV0IGl0ZW0gPSBvcHRpb25zLmZpbmQobyA9PiBvLmlkID09PSBzZWxlY3RlZElkTGlzdFswXSk7XG4gICAgICAgICAgICBpZiAoaXRlbSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheSA9IHRyYW5zbGF0aW9ucy5vbmVfaXRlbV9zZWxlY3RlZDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZSAhPT0gJ2ljb24nKSB7XG4gICAgICAgICAgICAgICAgaWYgKHBpbm5lZEl0ZW0pIHtcbiAgICAgICAgICAgICAgICAgICAgaXRlbSA9IHBpbm5lZEl0ZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGRpc3BsYXkgPSBpdGVtLmxhYmVsO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5ID0gKFxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2NsYXNzZXMuc2VsZWN0SWNvbkxhYmVsfT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxIaUljb25CdWlsZGVyIGljb249e2l0ZW0uaWNvbn0gY2xhc3NOYW1lPXtjbGFzc2VzLmxhYmVsSWNvbn0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtpdGVtLmxhYmVsfVxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChkaXNwbGF5QXNDaGlwKSB7XG4gICAgICAgICAgICBjb25zdCBjaGlwRmlsdGVyID0gPEhpQ2hpcCBsYWJlbD17cGxhY2Vob2xkZXIgfHwgZGlzcGxheX0gb25EZWxldGU9e3RoaXMuaGFuZGxlUmVxdWVzdERlbGV0ZX0gLz47XG4gICAgICAgICAgICBpZiAoZGlzcGxheSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXkgPSBjaGlwRmlsdGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcG9wcGVyQ2xhc3MgPSBjbGFzc05hbWVzKGNsYXNzZXMucG9wcGVyLCB7XG4gICAgICAgICAgICBbY2xhc3Nlcy5wb3BwZXJDbG9zZV06ICFvcGVuLFxuICAgICAgICB9KTtcblxuICAgICAgICBsZXQgYWxsU2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgICAgaWYgKHNlbGVjdGVkSWRMaXN0Lmxlbmd0aCA9PT0gdGhpcy5zdGF0ZS5uYk9wdGlvbnMpIHtcbiAgICAgICAgICAgIGFsbFNlbGVjdGVkID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBwb3BwZXJTdHlsZSA9IHt9O1xuICAgICAgICBpZiAodGhpcy5wcm9wcy5jb250YWluZXJXaWR0aCA+IDApIHtcbiAgICAgICAgICAgIHBvcHBlclN0eWxlID0geyB3aWR0aDogdGhpcy5wcm9wcy5jb250YWluZXJXaWR0aCB9O1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY29udGVudCA9IDxDbGlja0F3YXlMaXN0ZW5lciBvbkNsaWNrQXdheT17dGhpcy5oYW5kbGVDbGlja0F3YXl9PlxuICAgICAgICAgICAgPEdyb3cgaW49e29wZW59IGlkPVwibWVudS1saXN0XCIgc3R5bGU9e3sgdHJhbnNmb3JtT3JpZ2luOiAnMCAwIDAnIH19PlxuICAgICAgICAgICAgICAgIDxQYXBlciBjbGFzc05hbWU9e2NsYXNzZXMucGFwZXJ9PlxuICAgICAgICAgICAgICAgICAgICB7ISFzZWFyY2hhYmxlICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxIaVNlYXJjaEZpZWxkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbUxpc3Q9e29wdGlvbnN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2tGaWx0ZXJlZExpc3Q9e3RoaXMuaGFuZGxlU3VnZ2VzdGlvbnN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyUHJvcGVydHlMaXN0PXtbJ2xhYmVsJ119XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9e3RyYW5zbGF0aW9ucy5zZWFyY2h9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0b0ZvY3VzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25TZWFyY2g9e3RoaXMucHJvcHMub25TZWFyY2h9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRSZWY9e2VsID0+IHsgdGhpcy5zZWFyY2hGaWVsZCA9IGVsOyB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uS2V5RG93bj17dGhpcy5oYW5kbGVLZXlEb3duU2VhcmNofVxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAgICAgICAgICA8SGlTZWxlY3RhYmxlTGlzdFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT17dHlwZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudEl0ZW1TZWxlY3RhYmxlPXtwYXJlbnRJdGVtU2VsZWN0YWJsZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1MaXN0PXtfc3VnZ2VzdGlvbnN9XG4gICAgICAgICAgICAgICAgICAgICAgICBvblNlbGVjdD17dGhpcy5oYW5kbGVTZWxlY3R9XG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZElkTGlzdD17c2VsZWN0ZWRJZExpc3R9XG4gICAgICAgICAgICAgICAgICAgICAgICBjaGVja2JveD17Y2hlY2tib3h9XG4gICAgICAgICAgICAgICAgICAgICAgICBoaWVyYXJjaHk9e3RoaXMuc3RhdGUuaGllcmFyY2h5fVxuICAgICAgICAgICAgICAgICAgICAgICAgaGllcmFyY2hpYz17aGllcmFyY2hpY31cbiAgICAgICAgICAgICAgICAgICAgICAgIGhpZXJhcmNoeVNlbGVjdGVkPXt0aGlzLnN0YXRlLmhpZXJhcmNoeVNlbGVjdGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRpb25zPXt0cmFuc2xhdGlvbnN9XG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uPXtpY29ufVxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50SWNvbj17cGFyZW50SWNvbn1cbiAgICAgICAgICAgICAgICAgICAgICAgIGhvdmVySWNvbj17aG92ZXJJY29ufVxuICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tlZEljb249e2NoZWNrZWRJY29ufVxuICAgICAgICAgICAgICAgICAgICAgICAgYWxsU2VsZWN0ZWQ9e2FsbFNlbGVjdGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXt0aGlzLmhhbmRsZUtleURvd259XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9QYXBlcj5cbiAgICAgICAgICAgIDwvR3Jvdz5cbiAgICAgICAgPC9DbGlja0F3YXlMaXN0ZW5lcj5cblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3Nlcy5yb290fVxuICAgICAgICAgICAgICAgIHJlZj17ZWwgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm92ZXJsYXkgPSBlbDtcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxNYW5hZ2VyPlxuICAgICAgICAgICAgICAgICAgICA8VGFyZ2V0PlxuICAgICAgICAgICAgICAgICAgICAgICAgPFNlbGVjdElucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9e2lkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXtwbGFjZWhvbGRlciB8fCBkaXNwbGF5fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZW49e29wZW59XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9jdXNlZD17Zm9jdXNlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPXt0eXBlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBub0J1dHRvbj17ZGlzcGxheUFzQ2hpcH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcj17ZXJyb3J9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17dGhpcy5oYW5kbGVDbGlja31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkZvY3VzPXt0aGlzLmhhbmRsZUZvY3VzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQmx1cj17dGhpcy5oYW5kbGVCbHVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uTW91c2VFbnRlcj17dGhpcy5wcm9wcy5vbk1vdXNlRW50ZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25Nb3VzZUxlYXZlPXt0aGlzLnByb3BzLm9uTW91c2VMZWF2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZFbGVtZW50PXsoZWwpID0+IHsgdGhpcy5zZWxlY3RJbnB1dEVsZW1lbnQgPSBlbCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9UYXJnZXQ+XG4gICAgICAgICAgICAgICAgICAgIHtvcGVuICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY1Bvc2l0aW9uID8gKFxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT17cG9wcGVyU3R5bGV9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtjb250ZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxQb3BwZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLXN0YXJ0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnRzRW5hYmxlZD17b3Blbn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtwb3BwZXJDbGFzc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3BvcHBlclN0eWxlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2NvbnRlbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Qb3BwZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgPC9NYW5hZ2VyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICk7XG4gICAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCB3aXRoU3R5bGVzKHN0eWxlcywgeyBuYW1lOiAnSG11aUhpU2VsZWN0JyB9KShIaVNlbGVjdCk7XG4iXX0=
|
54708
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9IaVNlbGVjdC9IaVNlbGVjdC5qcyJdLCJuYW1lcyI6WyJzdHlsZXMiLCJyb290IiwiYmFja2dyb3VuZENvbG9yIiwidGhlbWUiLCJwYWxldHRlIiwiYmFja2dyb3VuZDIiLCJtYXhXaWR0aCIsIndpZHRoIiwicG9zaXRpb24iLCJwb3BwZXIiLCJ6SW5kZXgiLCJwYXBlciIsImJvcmRlclJhZGl1cyIsIm1heEhlaWdodCIsInRyYW5zaXRpb24iLCJsYWJlbEljb24iLCJtYXJnaW5SaWdodCIsInNlbGVjdEljb25MYWJlbCIsIndoaXRlU3BhY2UiLCJvdmVyZmxvdyIsInRleHRPdmVyZmxvdyIsInBhZGRpbmdSaWdodCIsInR5cG9ncmFwaHkiLCJib2R5MSIsImRpc3BsYXkiLCJIaVNlbGVjdCIsInByb3BzIiwic3RhdGUiLCJvcGVuIiwiZm9jdXNlZCIsInN1Z2dlc3Rpb25zIiwiaGllcmFyY2h5U2VsZWN0ZWQiLCJoaWVyYXJjaHkiLCJuYk9wdGlvbnMiLCJkeW5hbWljIiwidmFsdWVJbk9wdGlvbnMiLCJ2YWwiLCJ2YWx1ZSIsIm9wdGlvbnMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiaW5kZXhPZiIsIml0ZW0iLCJpZCIsInBpbm5lZEl0ZW0iLCJFcnJvciIsImhpZXJhcmNoaWMiLCJoaWVyYXJjaHlUcmVlcyIsImJ1aWxkSGllcmFyY2h5VHJlZXMiLCJvcHRpb25zTGVuZ3RoIiwib3B0aW9uIiwiaGFzQ2hpbGRyZW4iLCJoYW5kbGVTZWxlY3QiLCJiaW5kIiwiaGFuZGxlQ2xpY2siLCJoYW5kbGVDbG9zZSIsImhhbmRsZUNsaWNrQXdheSIsImhhbmRsZVJlcXVlc3REZWxldGUiLCJoYW5kbGVTdWdnZXN0aW9ucyIsImhhbmRsZUZvY3VzIiwiaGFuZGxlQmx1ciIsIm5leHRQcm9wcyIsIm9uU2VhcmNoIiwic2V0U3RhdGUiLCJBcnJheSIsImlzQXJyYXkiLCJoYXNPd25Qcm9wZXJ0eSIsInBhcmVudElkIiwicHVzaCIsImluY2x1ZGVzIiwiY2xhc3NlcyIsImRpc2FibGVkIiwiZXJyb3IiLCJsb2FkaW5nIiwiY2hlY2tib3giLCJzZWFyY2hhYmxlIiwiZGlzcGxheUFzQ2hpcCIsInR5cGUiLCJ0cmFuc2xhdGlvbnMiLCJwYXJlbnRJdGVtU2VsZWN0YWJsZSIsImljb24iLCJwYXJlbnRJY29uIiwiaG92ZXJJY29uIiwiY2hlY2tlZEljb24iLCJwbGFjZWhvbGRlciIsInN0YXRpY1Bvc2l0aW9uIiwiaGFzQWxsIiwic2VsZWN0ZWRJZExpc3QiLCJfc3VnZ2VzdGlvbnMiLCJ1bnNoaWZ0IiwiY2VudGVyZWQiLCJsYWJlbCIsIm9uZV9pdGVtX3NlbGVjdGVkIiwibl9pdGVtc19zZWxlY3RlZCIsInJlcGxhY2UiLCJhbGwiLCJmaW5kIiwibyIsInVuZGVmaW5lZCIsImNoaXBGaWx0ZXIiLCJwb3BwZXJDbGFzcyIsInBvcHBlckNsb3NlIiwiYWxsU2VsZWN0ZWQiLCJwb3BwZXJTdHlsZSIsImNvbnRhaW5lcldpZHRoIiwiY29udGVudCIsInRyYW5zZm9ybU9yaWdpbiIsInNlYXJjaCIsInNlYXJjaEZpZWxkIiwiZWwiLCJoYW5kbGVLZXlEb3duU2VhcmNoIiwiaGFuZGxlS2V5RG93biIsIm92ZXJsYXkiLCJvbk1vdXNlRW50ZXIiLCJvbk1vdXNlTGVhdmUiLCJzZWxlY3RJbnB1dEVsZW1lbnQiLCJQdXJlQ29tcG9uZW50IiwicHJvcFR5cGVzIiwiYm9vbCIsIm5vZGUiLCJvYmplY3QiLCJpc1JlcXVpcmVkIiwiaWNvbkFsbCIsIm9uZU9mVHlwZSIsInN0cmluZyIsIm11bHRpcGxlIiwibmFtZSIsIm9uQ2hhbmdlIiwiZnVuYyIsIm9uQ2xvc2UiLCJhcnJheSIsIm9uZU9mIiwibnVtYmVyIiwiZGVmYXVsdFByb3BzIiwiaGVpZ2h0Iiwibm9fcmVzdWx0X21hdGNoIiwibl9jaGlsZHJlbiIsIm9uZV9jaGlsZCIsInNsaWNlIiwib25DbGljayIsInNldFRpbWVvdXQiLCJmb2N1cyIsImZvY3VzT25TZWxlY3RlZEl0ZW0iLCJpdGVtU2VsZWN0ZWQiLCJxdWVyeVNlbGVjdG9yIiwicGFyZW50RWxlbWVudCIsInRhZ05hbWUiLCJpdGVtcyIsImdldEVsZW1lbnRzQnlUYWdOYW1lIiwiaXRlbVRvRm9jdXMiLCJuZXh0SXRlbSIsImV2ZW50Iiwia2V5IiwiZG9jdW1lbnQiLCJhY3RpdmVFbGVtZW50IiwiY29udGFpbnMiLCJ0YXJnZXQiLCJoaVNlbGVjdGVkIiwidmFsdWVMaXN0IiwiT2JqZWN0Iiwia2V5cyIsImZpbHRlciIsInNwbGljZSIsIm1hcCIsInBhcmVudEl0ZW1JZCIsImlkc0luU3VnZ2VzdGlvbnMiLCJzdWdnZXN0aW9uIiwiYWxsQ2hpbGRyZW5TdWdnZXN0aW9uc1NlbGVjdGVkIiwiY29uY2F0IiwiYWxsSXRlbSIsImV2dCIsInN0b3BQcm9wYWdhdGlvbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O2tRQUFBOztBQUVBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOztBQUNBOztBQUNBOzs7O0FBQ0E7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOztBQUNBOztBQUNBOzs7Ozs7Ozs7Ozs7Ozs7O0FBRU8sSUFBTUEsMEJBQVMsU0FBVEEsTUFBUztBQUFBLFdBQVU7QUFDNUJDLGNBQU07QUFDRkMsNkJBQWlCQyxNQUFNQyxPQUFOLENBQWNDLFdBRDdCO0FBRUZDLHNCQUFVLEdBRlI7QUFHRkMsbUJBQU8sTUFITDtBQUlGQyxzQkFBVTtBQUpSLFNBRHNCO0FBTzVCQyxnQkFBUTtBQUNKRixtQkFBTyxNQURIO0FBRUpHLG9CQUFRO0FBRkosU0FQb0I7QUFXNUJDLGVBQU87QUFDSEMsMEJBQWMsU0FEWDtBQUVIQyx1QkFBVyxHQUZSO0FBR0hDLHdCQUFZO0FBSFQsU0FYcUI7QUFnQjVCQyxtQkFBVztBQUNQQyx5QkFBYTtBQUROLFNBaEJpQjtBQW1CNUJDO0FBQ0lDLHdCQUFZLFFBRGhCO0FBRUlDLHNCQUFVLFFBRmQ7QUFHSUMsMEJBQWMsVUFIbEI7QUFJSUMsMEJBQWM7QUFKbEIsV0FLT2xCLE1BQU1tQixVQUFOLENB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bUI7QUFBQSx1QkFBY0ssV0FBVzNILEVBQVgsS0FBa0IsTUFBaEM7QUFBQSxhQUFuQixFQUEyREosTUFBM0QsS0FBc0UsQ0FBMUUsRUFBNkU7QUFDekUsb0JBQU1rSSxVQUFVO0FBQ1o5SCx3QkFBSSxNQURRO0FBRVpxQywwQkFBTTBDLE9BRk07QUFHWi9CLDJCQUFPYixhQUFhaUI7QUFIUixpQkFBaEI7QUFLQSxvQkFBSTJCLFlBQVksS0FBaEIsRUFBdUI7QUFDbkIrQyw0QkFBUTVGLElBQVIsR0FBZSxNQUFmO0FBQ0g7QUFDRC9DLDRCQUFZMkQsT0FBWixDQUFvQmdGLE9BQXBCO0FBQ0g7QUFDSjs7QUFFRCxlQUFLMUcsUUFBTCxDQUFjO0FBQ1ZqQztBQURVLFNBQWQ7QUFHSCxLOztTQUVEMkIsbUIsR0FBc0IsZUFBTztBQUN6QmlILFlBQUlDLGVBQUo7QUFDQSxlQUFLakosS0FBTCxDQUFXcUcsUUFBWCxDQUFvQixPQUFLckcsS0FBTCxDQUFXb0csSUFBL0IsRUFBcUMsRUFBckM7QUFDSCxLOzs7a0JBMExVLHdCQUFXOUgsTUFBWCxFQUFtQixFQUFFOEgsTUFBTSxjQUFSLEVBQW5CLEVBQTZDckcsUUFBN0MsQyIsImZpbGUiOiJIaVNlbGVjdC5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS9tc291Y3kvd29ya3NwYWNlL2hpcGF5LW1hdGVyaWFsLXVpIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQGluaGVyaXRlZENvbXBvbmVudCBJbnB1dFxuXG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IEdyb3cgZnJvbSAnbWF0ZXJpYWwtdWkvdHJhbnNpdGlvbnMvR3Jvdyc7XG5pbXBvcnQgeyBmaW5kRE9NTm9kZSB9IGZyb20gJ3JlYWN0LWRvbSc7XG5pbXBvcnQgUGFwZXIgZnJvbSAnbWF0ZXJpYWwtdWkvUGFwZXInO1xuaW1wb3J0IENsaWNrQXdheUxpc3RlbmVyIGZyb20gJ21hdGVyaWFsLXVpL3V0aWxzL0NsaWNrQXdheUxpc3RlbmVyJztcbmltcG9ydCB7IE1hbmFnZXIsIFRhcmdldCwgUG9wcGVyIH0gZnJvbSAncmVhY3QtcG9wcGVyJztcbmltcG9ydCB7IENoZWNrYm94QmxhbmtPdXRsaW5lLCBDaGVja2JveE1hcmtlZCB9IGZyb20gJ21kaS1tYXRlcmlhbC11aSc7XG5pbXBvcnQgSGlTZWxlY3RhYmxlTGlzdCBmcm9tICcuLi9IaVNlbGVjdGFibGVMaXN0JztcbmltcG9ydCB7IEhpU2VhcmNoRmllbGQgfSBmcm9tICcuLi9IaUZvcm0nO1xuaW1wb3J0IFNlbGVjdElucHV0IGZyb20gJy4vU2VsZWN0SW5wdXQnO1xuaW1wb3J0IEhpQ2hpcCBmcm9tICcuLi9IaUNoaXAvSGlDaGlwJztcbmltcG9ydCB7IHdpdGhTdHlsZXMgfSBmcm9tICcuLi9zdHlsZXMnO1xuaW1wb3J0IHsgYXJyYXlVbmlxdWUsIGdldE5leHRJdGVtU2VsZWN0YWJsZSB9IGZyb20gJy4uL3V0aWxzL2hpSGVscGVycyc7XG5pbXBvcnQgSGlJY29uQnVpbGRlciBmcm9tICcuLi91dGlscy9IaUljb25CdWlsZGVyJztcblxuZXhwb3J0IGNvbnN0IHN0eWxlcyA9IHRoZW1lID0+ICh7XG4gICAgcm9vdDoge1xuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lLnBhbGV0dGUuYmFja2dyb3VuZDIsXG4gICAgICAgIG1heFdpZHRoOiA1MDAsXG4gICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgIHBvc2l0aW9uOiAncmVsYXRpdmUnLFxuICAgIH0sXG4gICAgcG9wcGVyOiB7XG4gICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgIHpJbmRleDogMTIwMCxcbiAgICB9LFxuICAgIHBhcGVyOiB7XG4gICAgICAgIGJvcmRlclJhZGl1czogJzBweCAycHgnLFxuICAgICAgICBtYXhIZWlnaHQ6IDQ0MCxcbiAgICAgICAgdHJhbnNpdGlvbjogJ25vbmUgIWltcG9ydGFudCcsXG4gICAgfSxcbiAgICBsYWJlbEljb246IHtcbiAgICAgICAgbWFyZ2luUmlnaHQ6IDEwLFxuICAgIH0sXG4gICAgc2VsZWN0SWNvbkxhYmVsOiB7XG4gICAgICAgIHdoaXRlU3BhY2U6ICdub3dyYXAnLFxuICAgICAgICBvdmVyZmxvdzogJ2hpZGRlbicsXG4gICAgICAgIHRleHRPdmVyZmxvdzogJ2VsbGlwc2lzJyxcbiAgICAgICAgcGFkZGluZ1JpZ2h0OiAxNixcbiAgICAgICAgLi4udGhlbWUudHlwb2dyYXBoeS5ib2R5MSxcbiAgICAgICAgZGlzcGxheTogJ2lubGluZS1mbGV4JyxcbiAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICB9LFxufSk7XG5cbi8qKlxuICpcbiAqIFV0aWxpc8OpIHBvdXIgdG91cyB0eXBlcyBkZSBzZWxlY3RzIGRhbnMgbGVzIGZvcm11bGFpcmVzLlxuICogLSBzaW5nbGUgLyBtdWx0aXBsZSAoIG11bHRpLXNlbGVjdCApXG4gKiAtIGF2ZWMgLyBzYW5zIGNoZWNrYm94ZXNcbiAqIC0gYXZlYyAvIHNhbnMgYmFycmUgZGUgcmVjaGVyY2hlXG4gKiAtIGF2ZWMgLyBzYW5zIG9wdGlvbiBcIkFsbFwiXG4gKiAtIHByaXNlIGVuIGNvbXB0ZSBkdSB0eXBlIGRlcyDDqWzDqW1lbnRzICh0ZXh0LCBpbWFnZSwgaWNvbiwgLi4uKVxuICpcbiAqIENlIGNvbXBvc2FudCByw6l1bmkgbGVzIHNvdXMtY29tcG9zYW50c1xuICogLSBTZWxlY3RJbnB1dCA6IGFmZmljaGUgbCfDqWzDqW1lbnQgZGFucyBsZSBmb3JtdWxhaXJlXG4gKiAtIEhpU2VhcmNoRmllbGQgOiBpbnTDqGdyZSB1bmUgYmFycmUgZGUgcmVjaGVyY2hlIGRhbnMgbGUgUG9wcGVyLFxuICogaWwgZmlsdHJlIGxhIGxpc3RlIGRlcyBzdWdnZXN0aW9uc1xuICogLSBIaVNlbGVjdGFibGVMaXN0IDogYWZmaWNoZSBsYSBsaXN0ZSBkZXMgc3VnZ2VzdGlvbnMgc2Vsb24gbGUgdHlwZSBkZXMgw6lsw6ltZW50c1xuICovXG5jbGFzcyBIaVNlbGVjdCBleHRlbmRzIFJlYWN0LlB1cmVDb21wb25lbnQge1xuICAgIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBBZmZpY2hlIHVuZSBjaGVja2JveCBwb3VyIGNoYXF1ZSDDqWzDqW1lbnRzLCBwYXIgZMOpZmF1dCBzaSBvcHRpb25zIGVzdCBuZXN0ZWRcbiAgICAgICAgICovXG4gICAgICAgIGNoZWNrYm94OiBQcm9wVHlwZXMuYm9vbCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEljb24gYWZmaWNow6kgbG9yc3F1ZSBsJ2l0ZW0gZXN0IHPDqWxlY3Rpb25uw6lcbiAgICAgICAgICovXG4gICAgICAgIGNoZWNrZWRJY29uOiBQcm9wVHlwZXMubm9kZSxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFVzZWZ1bCB0byBleHRlbmQgdGhlIHN0eWxlIGFwcGxpZWQgdG8gY29tcG9uZW50cy5cbiAgICAgICAgICovXG4gICAgICAgIGNsYXNzZXM6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJbmFjdGlmXG4gICAgICAgICAqL1xuICAgICAgICBkaXNhYmxlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBPcHRpb24gcGVybWV0dGFudCBkJ2FmZmljaGVyIGxlcyBzw6lsZWN0aW9uIHNvdXMgZm9ybWUgZGUgQ2hpcC5cbiAgICAgICAgICovXG4gICAgICAgIGRpc3BsYXlBc0NoaXA6IFByb3BUeXBlcy5ib29sLFxuICAgICAgICAvKipcbiAgICAgICAgICogT3B0aW9uIHBlcm1ldHRhbnQgZGUgZMOpZmluaXIgc2kgbGVzIG9wdGlvbnMgZHUgc2VsZWN0IHNvbnQgZHluYW1pcXVlcy5cbiAgICAgICAgICogU2kgbGVzIG9wdGlvbnMgZHUgc2VsZWN0IHNvbnQgaW5pdGlhbGlzw6llcyDDoCB2aWRlLCBhbG9ycyBjZSBzZXJhIG1pcyDDoCB0cnVlXG4gICAgICAgICAqIGF1dG9tYXRpcXVlbWVudC5cbiAgICAgICAgICovXG4gICAgICAgIGR5bmFtaWM6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBBcHBsaXF1ZSBsZSBzdHlsZSBlcnJvclxuICAgICAgICAgKi9cbiAgICAgICAgZXJyb3I6IFByb3BUeXBlcy5ib29sLFxuICAgICAgICAvKipcbiAgICAgICAgICogQWZmaWNoZSBsJ8OpbMOpbWVudCAnQWxsJ1xuICAgICAgICAgKi9cbiAgICAgICAgaGFzQWxsOiBQcm9wVHlwZXMuYm9vbCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIExlcyBpdGVtcyBzb250IGhpw6lyYXJjaGlzw6lzXG4gICAgICAgICAqL1xuICAgICAgICBoaWVyYXJjaGljOiBQcm9wVHlwZXMuYm9vbCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEljb24gYWZmaWNow6kgbG9yc3F1ZSBsJ2l0ZW0gbidlc3QgcGFzIHPDqWxlY3Rpb25uw6kgZXQgcXUnb24gbGUgc3Vydm9sZVxuICAgICAgICAgKi9cbiAgICAgICAgaG92ZXJJY29uOiBQcm9wVHlwZXMubm9kZSxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEljb24gYWZmaWNow6kgbG9yc3F1ZSBsJ2l0ZW0gbidlc3QgcGFzIHPDqWxlY3Rpb25uw6lcbiAgICAgICAgICovXG4gICAgICAgIGljb246IFByb3BUeXBlcy5ub2RlLFxuICAgICAgICAvKipcbiAgICAgICAgICogTm9tIGRlIGwnaWPDtG5lXG4gICAgICAgICAqL1xuICAgICAgICBpY29uQWxsOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMuc3RyaW5nLCBQcm9wVHlwZXMuYm9vbF0pLFxuICAgICAgICAvKipcbiAgICAgICAgICogaWQgZHUgc2VsZWN0XG4gICAgICAgICAqL1xuICAgICAgICBpZDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEFqb3V0ZSB1biBsb2FkZXJcbiAgICAgICAgICovXG4gICAgICAgIGxvYWRpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgICAgICAvKipcbiAgICAgICAgICogQXV0b3Jpc2UgbGEgc8OpbGVjdGlvbiBkZSBwbHVzaWV1cnMgdmFsZXVyc1xuICAgICAgICAgKi9cbiAgICAgICAgbXVsdGlwbGU6IFByb3BUeXBlcy5ib29sLFxuICAgICAgICAvKipcbiAgICAgICAgICogTm9tIGR1IGNoYW1wIGRlIGZvcm11bGFpcmVcbiAgICAgICAgICovXG4gICAgICAgIG5hbWU6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEZvbmN0aW9uIGRlIGNhbGxiYWNrIHF1aSByZW52b2l0IGxhL2xlcyB2YWxldXJzIHPDqWxlY3Rpb25uw6llc1xuICAgICAgICAgKlxuICAgICAgICAgKiBAcGFyYW0ge29iamVjdH0gZXZlbnRcbiAgICAgICAgICogQHBhcmFtIHtzdHJpbmcgfHwgYXJyYXl9IHZhbHVlXG4gICAgICAgICAqL1xuICAgICAgICBvbkNoYW5nZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEZvbmN0aW9uIGRlIGNhbGxiYWNrIGFwcGVsw6llIGxvcnNxdSdvbiBmZXJtZSBsZSBzZWxlY3RcbiAgICAgICAgICovXG4gICAgICAgIG9uQ2xvc2U6IFByb3BUeXBlcy5mdW5jLFxuICAgICAgICAvKipcbiAgICAgICAgICogRm9uY3Rpb24gZGUgY2FsbGJhY2sgYXBwZWzDqWUgbG9yc3F1J29uIHN1cnZvbGUgbGUgY2hhbXBzXG4gICAgICAgICAqL1xuICAgICAgICBvbk1vdXNlRW50ZXI6IFByb3BUeXBlcy5mdW5jLFxuICAgICAgICAvKipcbiAgICAgICAgICogRm9uY3Rpb24gZGUgY2FsbGJhY2sgYXBwZWzDqWUgbG9yc3F1ZSBsZSBjdXJzZXVyIHF1aXR0ZSBsZSBjaGFtcHNcbiAgICAgICAgICovXG4gICAgICAgIG9uTW91c2VMZWF2ZTogUHJvcFR5cGVzLmZ1bmMsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBGb25jdGlvbiBkZSBjYWxsYmFjayBhcHBlbMOpZSBsb3JzcXUnb24gw6ljcml0IGRhbnMgbGEgYmFycmUgZGUgcmVjaGVyY2hlXG4gICAgICAgICAqIEEgdXRpbGlzZXIgcG91ciBsZXMgc2VsZWN0cyBhdmVjIGRlcyBkb25uw6llcyBkeW5hbWlxdWVzXG4gICAgICAgICAqXG4gICAgICAgICAqIEBwYXJhbSB7b2JqZWN0fSBldmVudFxuICAgICAgICAgKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAgICAgICAgICovXG4gICAgICAgIG9uU2VhcmNoOiBQcm9wVHlwZXMuZnVuYyxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIExpc3RlcyBkZXMgb3B0aW9ucyBkdSBzZWxlY3RcbiAgICAgICAgICovXG4gICAgICAgIG9wdGlvbnM6IFByb3BUeXBlcy5hcnJheS5pc1JlcXVpcmVkLFxuICAgICAgICAvKipcbiAgICAgICAgICogSWNvbiBhZmZpY2jDqSBsb3JzcXUndW4gaXRlbSBwYXJlbnQgbidlc3QgcGFzIHPDqWxlY3Rpb25uw6lcbiAgICAgICAgICovXG4gICAgICAgIHBhcmVudEljb246IFByb3BUeXBlcy5ub2RlLFxuICAgICAgICAvKipcbiAgICAgICAgICogTGVzIGl0ZW1zIHBhcmVudHMgc29udCBzw6lsZWN0aW9ubmFibGVzXG4gICAgICAgICAqL1xuICAgICAgICBwYXJlbnRJdGVtU2VsZWN0YWJsZTogUHJvcFR5cGVzLmJvb2wsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJdGVtIMOpcGluZ2zDqSBlbiBkw6lidXQgZGUgbGlzdGVcbiAgICAgICAgICovXG4gICAgICAgIHBpbm5lZEl0ZW06IFByb3BUeXBlcy5vYmplY3QsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBQbGFjZWhvbGRlciBhZmZpY2jDqSBsb3JzcXVlIGxlIHNlbGVjdCBlc3QgZmVybcOpXG4gICAgICAgICAqIFN1cmNoYXJnZSBsZSBwbGFjZWhvbGRlciBwYXIgZMOpZmF1dFxuICAgICAgICAgKi9cbiAgICAgICAgcGxhY2Vob2xkZXI6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBBZmZpY2hlIHVuIGlucHV0IGRlIHJlY2hlcmNoZSBwZXJtZXR0YW50IGRlIGZpbHRyZXIgbGVzIG9wdGlvbnNcbiAgICAgICAgICovXG4gICAgICAgIHNlYXJjaGFibGU6IFByb3BUeXBlcy5ib29sLFxuICAgICAgICAvKipcbiAgICAgICAgICogU2kgdHJ1ZSwgbGUgY29udGVudSBkdSBzZWxlY3Qgc2VyYSBkYW5zIHVuZSBkaXYgc3RhdGljIHBsdXRvdCBxdWUgZGFucyB1bmUgcG9wcGVyIGFic29sdXRlXG4gICAgICAgICAqL1xuICAgICAgICBzdGF0aWNQb3NpdGlvbjogUHJvcFR5cGVzLmJvb2wsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUcmFkdWN0aW9ucyAocGFyIGTDqWZhdXQgZW4gYW5nbGFpcylcbiAgICAgICAgICovXG4gICAgICAgIHRyYW5zbGF0aW9uczogUHJvcFR5cGVzLm9iamVjdCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFR5cGUgZGVzIMOpbMOpbWVudHMgZHUgc2VsZWN0LCBkw6lmaW5pdCBsZSByZW5kdSBkJ3VuIMOpbMOpbWVudFxuICAgICAgICAgKi9cbiAgICAgICAgdHlwZTogUHJvcFR5cGVzLm9uZU9mKFsnaWNvbicsICd0ZXh0JywgJ2ltYWdlJywgJ3ByaW1hcnktaGlnaGxpZ2h0J10pLFxuICAgICAgICAvKipcbiAgICAgICAgICogVmFsdWUocykgZHUgc2VsZWN0XG4gICAgICAgICAqL1xuICAgICAgICB2YWx1ZTogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLm51bWJlciwgUHJvcFR5cGVzLnN0cmluZywgUHJvcFR5cGVzLmFycmF5XSksXG4gICAgfTtcblxuICAgIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgICAgIGRpc2FibGVkOiBmYWxzZSxcbiAgICAgICAgZXJyb3I6IGZhbHNlLFxuICAgICAgICBtdWx0aXBsZTogZmFsc2UsXG4gICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgY2hlY2tib3g6IGZhbHNlLFxuICAgICAgICBzZWFyY2hhYmxlOiBmYWxzZSxcbiAgICAgICAgaGFzQWxsOiBmYWxzZSxcbiAgICAgICAgaWNvbkFsbDogZmFsc2UsXG4gICAgICAgIGhpZXJhcmNoaWM6IGZhbHNlLFxuICAgICAgICBwYXJlbnRJdGVtU2VsZWN0YWJsZTogZmFsc2UsXG4gICAgICAgIGRpc3BsYXlBc0NoaXA6IGZhbHNlLFxuICAgICAgICBkeW5hbWljOiBmYWxzZSxcbiAgICAgICAgaWNvbjogPENoZWNrYm94QmxhbmtPdXRsaW5lIHN0eWxlPXt7IHdpZHRoOiAyMCwgaGVpZ2h0OiAyMCB9fSAvPixcbiAgICAgICAgcGFyZW50SWNvbjogPENoZWNrYm94QmxhbmtPdXRsaW5lIHN0eWxlPXt7IHdpZHRoOiAyMCwgaGVpZ2h0OiAyMCB9fSAvPixcbiAgICAgICAgaG92ZXJJY29uOiA8Q2hlY2tib3hCbGFua091dGxpbmUgc3R5bGU9e3sgd2lkdGg6IDIwLCBoZWlnaHQ6IDIwIH19IC8+LFxuICAgICAgICBjaGVja2VkSWNvbjogPENoZWNrYm94TWFya2VkIHN0eWxlPXt7IHdpZHRoOiAyMCwgaGVpZ2h0OiAyMCB9fSAvPixcbiAgICAgICAgdHJhbnNsYXRpb25zOiB7XG4gICAgICAgICAgICBhbGw6ICdBbGwnLFxuICAgICAgICAgICAgbm9fcmVzdWx0X21hdGNoOiAnTm8gcmVzdWx0IG1hdGNoJyxcbiAgICAgICAgICAgIHNlYXJjaDogJ1NlYXJjaCcsXG4gICAgICAgICAgICBuX2l0ZW1zX3NlbGVjdGVkOiAnJXMgaXRlbXMgc2VsZWN0ZWQnLFxuICAgICAgICAgICAgb25lX2l0ZW1fc2VsZWN0ZWQ6ICclcyBpdGVtIHNlbGVjdGVkJyxcbiAgICAgICAgICAgIG5fY2hpbGRyZW46ICclcyBpdGVtcycsXG4gICAgICAgICAgICBvbmVfY2hpbGQ6ICclcyBpdGVtJyxcbiAgICAgICAgfSxcbiAgICAgICAgc3RhdGljUG9zaXRpb246IGZhbHNlLFxuICAgIH07XG5cbiAgICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgICAgICBzdXBlcihwcm9wcyk7XG5cbiAgICAgICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgICAgICAgIG9wZW46IGZhbHNlLFxuICAgICAgICAgICAgZm9jdXNlZDogZmFsc2UsXG4gICAgICAgICAgICBzdWdnZXN0aW9uczogW10sXG4gICAgICAgICAgICBoaWVyYXJjaHlTZWxlY3RlZDoge30sXG4gICAgICAgICAgICBoaWVyYXJjaHk6IHt9LFxuICAgICAgICAgICAgbmJPcHRpb25zOiAwLFxuICAgICAgICAgICAgZHluYW1pYzogcHJvcHMuZHluYW1pYyB8fCBmYWxzZSxcbiAgICAgICAgfTtcblxuICAgICAgICAvLyBDaGVjayBpZiB2YWx1ZSBpcyBpbiBvcHRpb25zXG4gICAgICAgIGxldCB2YWx1ZUluT3B0aW9ucyA9IGZhbHNlO1xuICAgICAgICBjb25zdCB2YWwgPSBwcm9wcy52YWx1ZTtcbiAgICAgICAgLy8gTm8gb3B0aW9ucyBwcm92aWRlZC5cbiAgICAgICAgaWYgKCFwcm9wcy5vcHRpb25zLmxlbmd0aCB8fCAhdmFsIHx8ICF2YWwubGVuZ3RoKSB7XG4gICAgICAgICAgICB2YWx1ZUluT3B0aW9ucyA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBDaGVjayBpZiBhbiBvcHRpb24gbWF0Y2ggdmFsdWUgcHJvcC5cbiAgICAgICAgICAgIHByb3BzLm9wdGlvbnMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIXZhbHVlSW5PcHRpb25zICYmIHZhbC5pbmRleE9mKGl0ZW0uaWQpICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZUluT3B0aW9ucyA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAoIXZhbHVlSW5PcHRpb25zICYmIHByb3BzLnBpbm5lZEl0ZW0pe1xuICAgICAgICAgICAgICAgIGlmIChwcm9wcy52YWx1ZS5pbmRleE9mKHByb3BzLnBpbm5lZEl0ZW0uaWQpPj0wKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlSW5PcHRpb25zID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXZhbHVlSW5PcHRpb25zKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3Byb3AgdmFsdWUgcHJvdmlkZWQgZG9lcyBub3QgbWF0Y2ggYW55IG9wdGlvbi4nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChwcm9wcy5oaWVyYXJjaGljID09PSB0cnVlICYmIHByb3BzLm9wdGlvbnMubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgY29uc3QgaGllcmFyY2h5VHJlZXMgPSB0aGlzLmJ1aWxkSGllcmFyY2h5VHJlZXMocHJvcHMpO1xuXG4gICAgICAgICAgICB0aGlzLnN0YXRlLmhpZXJhcmNoeSA9IGhpZXJhcmNoeVRyZWVzLmhpZXJhcmNoeTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUuaGllcmFyY2h5U2VsZWN0ZWQgPSBoaWVyYXJjaHlUcmVlcy5oaWVyYXJjaHlTZWxlY3RlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChwcm9wcy5vcHRpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIC8vIEdldCByZWFsIG9wdGlvbnMgbnVtYmVyIChwYXJlbnQgJiBfYWxsIGFyZSBub3QgcmVhbCBvcHRpb25zKVxuICAgICAgICAgICAgbGV0IG9wdGlvbnNMZW5ndGggPSAwO1xuICAgICAgICAgICAgcHJvcHMub3B0aW9ucy5mb3JFYWNoKG9wdGlvbiA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKG9wdGlvbi5oYXNDaGlsZHJlbiAhPT0gdHJ1ZSAmJiBvcHRpb24uaWQgIT09ICdfYWxsJykge1xuICAgICAgICAgICAgICAgICAgICBvcHRpb25zTGVuZ3RoKys7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLnN0YXRlLm5iT3B0aW9ucyA9IG9wdGlvbnNMZW5ndGg7XG4gICAgICAgIH0gZWxzZSBpZiAoIXByb3BzLmR5bmFtaWMpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUuZHluYW1pYyA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmhhbmRsZVNlbGVjdCA9IHRoaXMuaGFuZGxlU2VsZWN0LmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMuaGFuZGxlQ2xpY2sgPSB0aGlzLmhhbmRsZUNsaWNrLmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMuaGFuZGxlQ2xvc2UgPSB0aGlzLmhhbmRsZUNsb3NlLmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMuaGFuZGxlQ2xpY2tBd2F5ID0gdGhpcy5oYW5kbGVDbGlja0F3YXkuYmluZCh0aGlzKTtcbiAgICAgICAgdGhpcy5oYW5kbGVSZXF1ZXN0RGVsZXRlID0gdGhpcy5oYW5kbGVSZXF1ZXN0RGVsZXRlLmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMuaGFuZGxlU3VnZ2VzdGlvbnMgPSB0aGlzLmhhbmRsZVN1Z2dlc3Rpb25zLmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMuaGFuZGxlRm9jdXMgPSB0aGlzLmhhbmRsZUZvY3VzLmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMuaGFuZGxlQmx1ciA9IHRoaXMuaGFuZGxlQmx1ci5iaW5kKHRoaXMpO1xuICAgIH1cblxuICAgIGNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMobmV4dFByb3BzKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIHR5cGVvZiB0aGlzLnByb3BzLm9uU2VhcmNoICE9PSAndW5kZWZpbmVkJyAmJlxuICAgICAgICAgICAgdGhpcy5wcm9wcy5vcHRpb25zICYmXG4gICAgICAgICAgICB0aGlzLnByb3BzLm9wdGlvbnMubGVuZ3RoID4gMFxuICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlU3VnZ2VzdGlvbnMobmV4dFByb3BzLm9wdGlvbnMpO1xuICAgICAgICAgICAgbGV0IG9wdGlvbnNMZW5ndGggPSAwO1xuICAgICAgICAgICAgbmV4dFByb3BzLm9wdGlvbnMuZm9yRWFjaChvcHRpb24gPT4ge1xuICAgICAgICAgICAgICAgIGlmIChvcHRpb24uaGFzQ2hpbGRyZW4gIT09IHRydWUgJiYgb3B0aW9uLmlkICE9PSAnX2FsbCcpIHtcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9uc0xlbmd0aCsrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IG5iT3B0aW9uczogb3B0aW9uc0xlbmd0aCB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChuZXh0UHJvcHMuaGllcmFyY2hpYyA9PT0gdHJ1ZSAmJiBuZXh0UHJvcHMub3B0aW9ucy5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICBjb25zdCBoaWVyYXJjaHlUcmVlcyA9IHRoaXMuYnVpbGRIaWVyYXJjaHlUcmVlcyhuZXh0UHJvcHMpO1xuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGhpZXJhcmNoeTogaGllcmFyY2h5VHJlZXMuaGllcmFyY2h5LCBoaWVyYXJjaHlTZWxlY3RlZDogaGllcmFyY2h5VHJlZXMuaGllcmFyY2h5U2VsZWN0ZWQgfSlcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGJ1aWxkSGllcmFyY2h5VHJlZXMocHJvcHMpIHtcbiAgICAgICAgLy8gQ29uc3RydWN0IHR3byBhc3NvY2lhdGl2ZSBhcnJheXNcbiAgICAgICAgLy8gaGllcmFyY2h5W3BhcmVudElkXSA9PiBjaGlsZHJlblxuICAgICAgICAvLyBoaWVyYXJjaHlTZWxlY3RlZFtwYXJlbnRJZF0gPT4gc2VsZWN0ZWQgY2hpbGRyZW5cbiAgICAgICAgY29uc3QgaGllcmFyY2h5ID0ge307XG4gICAgICAgIGNvbnN0IGhpZXJhcmNoeVNlbGVjdGVkID0ge307XG4gICAgICAgIGxldCB2YWx1ZSA9IHByb3BzLnZhbHVlIHx8IFtdO1xuICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkodmFsdWUpKSB2YWx1ZSA9IFtwcm9wcy52YWx1ZV07XG4gICAgICAgIHByb3BzLm9wdGlvbnMuZm9yRWFjaChvcHRpb24gPT4ge1xuICAgICAgICAgICAgaWYgKG9wdGlvbi5oYXNDaGlsZHJlbiA9PT0gdHJ1ZSAmJiAhaGllcmFyY2h5Lmhhc093blByb3BlcnR5KG9wdGlvbi5pZCkpIHtcbiAgICAgICAgICAgICAgICBoaWVyYXJjaHlbb3B0aW9uLmlkXSA9IFtdO1xuICAgICAgICAgICAgICAgIGhpZXJhcmNoeVNlbGVjdGVkW29wdGlvbi5pZF0gPSBbXTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAob3B0aW9uLmhhc093blByb3BlcnR5KCdwYXJlbnRJZCcpKSB7XG4gICAgICAgICAgICAgICAgaGllcmFyY2h5W29wdGlvbi5wYXJlbnRJZF0ucHVzaChvcHRpb24uaWQpO1xuICAgICAgICAgICAgICAgIGlmICh2YWx1ZS5pbmNsdWRlcyhvcHRpb24uaWQpKSB7XG4gICAgICAgICAgICAgICAgICAgIGhpZXJhcmNoeVNlbGVjdGVkW29wdGlvbi5wYXJlbnRJZF0ucHVzaChvcHRpb24uaWQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB7IGhpZXJhcmNoeSwgaGllcmFyY2h5U2VsZWN0ZWQgfTtcbiAgICB9XG5cbiAgICBoYW5kbGVDbGljayA9ICgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuc3RhdGUub3Blbikge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVDbG9zZSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLyppZiAoIXRoaXMucHJvcHMuc3RhdGljUG9zaXRpb24pIHtcbiAgICAgICAgICAgICAgICAvLyBkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93ID0gJ2hpZGRlbic7XG4gICAgICAgICAgICB9Ki9cbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBvcGVuOiB0cnVlIH0pO1xuICAgICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMucHJvcHMub3B0aW9ucy5zbGljZSgpO1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVTdWdnZXN0aW9ucyhvcHRpb25zKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMucHJvcHMub25DbGljaykge1xuICAgICAgICAgICAgICAgIHRoaXMucHJvcHMub25DbGljaygpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBHZXN0aW9uIGR1IGZvY3VzXG4gICAgICAgICAgICBpZiAodGhpcy5zZWFyY2hGaWVsZCkge1xuICAgICAgICAgICAgICAgIC8vIHNpIHNlYXJjaGFibGUsIGZvY3VzIHN1ciBsZSBjaGFtcHMgZGUgcmVjaGVyY2hlXG4gICAgICAgICAgICAgICAgY29uc3Qgc2VhcmNoRmllbGQgPSB0aGlzLnNlYXJjaEZpZWxkO1xuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBzZWFyY2hGaWVsZC5mb2N1cygpO1xuICAgICAgICAgICAgICAgIH0sIDEpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLm92ZXJsYXkpIHtcbiAgICAgICAgICAgICAgICAvLyBzaW5vbiBmb2N1cyBzdXIgbGUgZGVybmllciDDqWzDqW1lbnQgc2VsZWN0aW9ubsOpXG4gICAgICAgICAgICAgICAgdGhpcy5mb2N1c09uU2VsZWN0ZWRJdGVtKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgZm9jdXNPblNlbGVjdGVkSXRlbSA9ICgpID0+IHtcbiAgICAgICAgLy8gT24gcsOpY3Vww6hyZSBsYSBkaXYgcGFyZW50IFwib3ZlcmxheVwiXG4gICAgICAgIGNvbnN0IG92ZXJsYXkgPSBmaW5kRE9NTm9kZSh0aGlzLm92ZXJsYXkpO1xuICAgICAgICBjb25zdCBtdWx0aXBsZSA9IHRoaXMucHJvcHMubXVsdGlwbGU7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5wcm9wcy52YWx1ZTtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRJZExpc3QgPSBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogW3ZhbHVlXTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBsZXQgZm9jdXNlZCA9IGZhbHNlO1xuICAgICAgICAgICAgLy8gU2kgdW4gb3UgcGx1c2lldXJzIGl0ZW1zIHNvbnQgc2VsZWN0aW9ubsOpcywgb24gZm9jdXMgc3VyIGxlIGRlcm5pZXJcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZElkTGlzdC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXRlbVNlbGVjdGVkID0gb3ZlcmxheS5xdWVyeVNlbGVjdG9yKFxuICAgICAgICAgICAgICAgICAgICBgW2RhdGEtaWQ9XCIke3NlbGVjdGVkSWRMaXN0W3NlbGVjdGVkSWRMaXN0Lmxlbmd0aCAtIDFdfVwiXWAsXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBpZiAoaXRlbVNlbGVjdGVkICYmIGl0ZW1TZWxlY3RlZC5wYXJlbnRFbGVtZW50LnRhZ05hbWUgPT09ICdMSScpIHtcbiAgICAgICAgICAgICAgICAgICAgaXRlbVNlbGVjdGVkLnBhcmVudEVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgICAgICAgICAgICAgZm9jdXNlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gU2kgcGFzIGQnaXRlbSBzZWxlY3Rpb25uw6ksIG91IHBhcyB2aXNpYmxlIChlbiBjYXMgZGUgcmVjaGVyY2hlKSwgZm9jdXMgc3VyIGxlIHByZW1pZXJcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZElkTGlzdC5sZW5ndGggPT09IDAgfHwgIWZvY3VzZWQpIHtcbiAgICAgICAgICAgICAgICAvLyBPbiByZWN1cMOocmUgdG91cyBsZXMgaXRlbXNcbiAgICAgICAgICAgICAgICBjb25zdCBpdGVtcyA9IG92ZXJsYXkuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2xpJyk7XG4gICAgICAgICAgICAgICAgbGV0IGl0ZW1Ub0ZvY3VzID0gaXRlbXNbMF07XG4gICAgICAgICAgICAgICAgLy8gU2kgc2VsZWN0IG11bHRpcGxlLCBldCBxdSdhdSBtb2lucyB1biBzZWxlY3Rpb25uw6ksIGZvY3VzIHN1ciBsZSAyZSBpdGVtXG4gICAgICAgICAgICAgICAgaWYgKG11bHRpcGxlICYmIHNlbGVjdGVkSWRMaXN0Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgaXRlbVRvRm9jdXMgPSBpdGVtc1sxXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGl0ZW1Ub0ZvY3VzKSB7XG4gICAgICAgICAgICAgICAgICAgIGl0ZW1Ub0ZvY3VzLmZvY3VzKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9LCAxKTtcbiAgICB9O1xuXG4gICAgLy8gS2V5IGRvd24gb24gbGlzdCBpdGVtc1xuICAgIGhhbmRsZUtleURvd24gPSBldmVudCA9PiB7XG4gICAgICAgIGxldCBuZXh0SXRlbTtcbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93RG93bicpIHtcbiAgICAgICAgICAgIG5leHRJdGVtID0gZ2V0TmV4dEl0ZW1TZWxlY3RhYmxlKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQsICdkb3duJyk7XG4gICAgICAgIH0gZWxzZSBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dVcCcpIHtcbiAgICAgICAgICAgIG5leHRJdGVtID0gZ2V0TmV4dEl0ZW1TZWxlY3RhYmxlKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQsICd1cCcpO1xuICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gJ1RhYicpIHtcbiAgICAgICAgICAgIC8qIGlmICghdGhpcy5wcm9wcy5zdGF0aWNQb3NpdGlvbikge1xuICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3cgPSAnYXV0byc7XG4gICAgICAgICAgICB9ICovXG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgb3BlbjogZmFsc2UgfSk7XG4gICAgICAgIH0gZWxzZSBpZiAoZXZlbnQua2V5ID09PSAnRXNjYXBlJykge1xuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IG9wZW46IGZhbHNlIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChuZXh0SXRlbSkge1xuICAgICAgICAgICAgbmV4dEl0ZW0uZm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICAvLyBLZXkgZG93biBvbiBzZWFyY2ggaW5wdXRcbiAgICBoYW5kbGVLZXlEb3duU2VhcmNoID0gZXZlbnQgPT4ge1xuICAgICAgICBpZiAodGhpcy5vdmVybGF5ICYmIChldmVudC5rZXkgPT09ICdBcnJvd0Rvd24nIHx8IGV2ZW50LmtleSA9PT0gJ0Fycm93VXAnKSkge1xuICAgICAgICAgICAgdGhpcy5mb2N1c09uU2VsZWN0ZWRJdGVtKCk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgaGFuZGxlRm9jdXMgPSAoKSA9PiB7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyBmb2N1c2VkOiB0cnVlIH0pO1xuICAgIH07XG5cbiAgICBoYW5kbGVCbHVyID0gKCkgPT4ge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHsgZm9jdXNlZDogZmFsc2UgfSk7XG4gICAgfTtcblxuICAgIGhhbmRsZUNsb3NlID0gKCkgPT4ge1xuICAgICAgICBpZiAoIXRoaXMucHJvcHMuc3RhdGljUG9zaXRpb24pIHtcbiAgICAgICAgICAgIC8vZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdyA9ICdhdXRvJztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICAgIG9wZW46IGZhbHNlLFxuICAgICAgICB9KTtcblxuICAgICAgICBpZiAodGhpcy5wcm9wcy5vbkNsb3NlKSB7XG4gICAgICAgICAgICB0aGlzLnByb3BzLm9uQ2xvc2UoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5zZWxlY3RJbnB1dEVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0SW5wdXRFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgaGFuZGxlQ2xpY2tBd2F5ID0gKGV2ZW50KSA9PiB7XG4gICAgICAgIC8vIEF1IGNsaWMgc3VyIGxlIGJvdXRvbiwgb24gbGFpc3NlIGxlIGhhbmRsZUNsaWNrIGZlcm1lciBsZSBzZWxlY3RcbiAgICAgICAgaWYgKCF0aGlzLnNlbGVjdElucHV0RWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpKSB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZUNsb3NlKGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBDYWxsIG9uQ2hhbmdlIHdpdGggdGhlIHVwZGF0ZWQgdmFsdWVcbiAgICAgKlxuICAgICAqIC0gaGFuZGxlIHNpbmdsZSB2YWx1ZVxuICAgICAqIC0gaGFuZGxlIG11bHRpcGxlIHZhbHVlXG4gICAgICogLSBoYW5kbGUgJ19hbGwnIGlkXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZXZlbnRcbiAgICAgKiBAcGFyYW0gaXRlbVxuICAgICAqL1xuICAgIGhhbmRsZVNlbGVjdCA9IChldmVudCwgaXRlbSkgPT4ge1xuICAgICAgICBjb25zdCB7IG11bHRpcGxlLCB2YWx1ZSwgb25DaGFuZ2UsIG9wdGlvbnMsIGhpZXJhcmNoaWMsIHBpbm5lZEl0ZW0gfSA9IHRoaXMucHJvcHM7XG4gICAgICAgIGNvbnN0IHsgaGllcmFyY2h5U2VsZWN0ZWQsIGhpZXJhcmNoeSwgbmJPcHRpb25zIH0gPSB0aGlzLnN0YXRlO1xuICAgICAgICBjb25zdCBoaVNlbGVjdGVkID0geyAuLi5oaWVyYXJjaHlTZWxlY3RlZCB9O1xuXG4gICAgICAgIGlmIChtdWx0aXBsZSkge1xuICAgICAgICAgICAgbGV0IHZhbHVlTGlzdCA9IHZhbHVlO1xuICAgICAgICAgICAgaWYgKGl0ZW0uaWQgPT09ICdfYWxsJykge1xuICAgICAgICAgICAgICAgIGlmICh2YWx1ZUxpc3QubGVuZ3RoID09PSBuYk9wdGlvbnMpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWVMaXN0ID0gW107XG4gICAgICAgICAgICAgICAgICAgIGlmIChoaWVyYXJjaGljKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBpZiBoaWVyYXJjaGljIHNlbGVjdCA9PiBlbXB0eSBhc3NvY2lhdGl2ZSBhcnJheSBvZiBzZWxlY3RlZCBjaGlsZHJlblxuICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmtleXMoaGlTZWxlY3RlZCkuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpU2VsZWN0ZWRba2V5XSA9IFtdO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBvcHRpb25zLmZvckVhY2gob3B0aW9uID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb24uaGFzQ2hpbGRyZW4gIT09IHRydWUgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAhdmFsdWVMaXN0LmluY2x1ZGVzKG9wdGlvbi5pZCkgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb24uaWQgIT09ICdfYWxsJ1xuICAgICAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVMaXN0LnB1c2gob3B0aW9uLmlkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAob3B0aW9uLmhhc0NoaWxkcmVuID09PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWYgaGllcmFyY2hpYyBzZWxlY3QgPT4gZmlsbCBhc3NvY2lhdGl2ZSBhcnJheSBvZiBzZWxlY3RlZCBjaGlsZHJlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpU2VsZWN0ZWRbb3B0aW9uLmlkXSA9IGhpZXJhcmNoeVtvcHRpb24uaWRdO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgICAgIHZhbHVlTGlzdC5pbmNsdWRlcyhpdGVtLmlkKSB8fFxuICAgICAgICAgICAgICAgIChpdGVtLmhhc0NoaWxkcmVuID09PSB0cnVlICYmXG4gICAgICAgICAgICAgICAgICAgIGhpZXJhcmNoeVNlbGVjdGVkW2l0ZW0uaWRdLmxlbmd0aCA9PT0gaGllcmFyY2h5W2l0ZW0uaWRdLmxlbmd0aClcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIC8vIGl0ZW0gZMOpasOgIHPDqWxlY3Rpb25uw6kgPT4gb24gbGUgZMOpc2VsZWN0aW9ubmVcbiAgICAgICAgICAgICAgICBpZiAoaXRlbS5oYXNDaGlsZHJlbiAhPT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZUxpc3QgPSB2YWx1ZUxpc3QuZmlsdGVyKHZhbCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsICE9PSBpdGVtLmlkO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoaXRlbS5oYXNDaGlsZHJlbiA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgICAgICAvLyByZW1vdmUgYWxsIGNoaWxkcmVuXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlTGlzdCA9IHZhbHVlTGlzdC5maWx0ZXIodmFsID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAhdGhpcy5zdGF0ZS5oaWVyYXJjaHlbaXRlbS5pZF0uaW5jbHVkZXModmFsKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIGhpU2VsZWN0ZWRbaXRlbS5pZF0gPSBbXTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGl0ZW0uaGFzT3duUHJvcGVydHkoJ3BhcmVudElkJykpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gU2kgaXRlbSBlc3QgdW4gZW5mYW50IG9uIGwnZW5sw6h2ZSBkdSB0YWJsZWF1IGFzc29jaWF0aWYgZGVzXG4gICAgICAgICAgICAgICAgICAgIC8vIGVsbXRzIHPDqWxlY3Rpb25uw6lzXG4gICAgICAgICAgICAgICAgICAgIGhpU2VsZWN0ZWRbaXRlbS5wYXJlbnRJZF0uc3BsaWNlKGhpU2VsZWN0ZWRbaXRlbS5wYXJlbnRJZF0uaW5kZXhPZihpdGVtLmlkKSwgMSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAocGlubmVkSXRlbSAmJiBpdGVtLmlkID09PSBwaW5uZWRJdGVtLmlkKSB7XG4gICAgICAgICAgICAgICAgICAgIE9iamVjdC5rZXlzKGhpU2VsZWN0ZWQpLm1hcChwYXJlbnRJdGVtSWQgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaGlTZWxlY3RlZFtwYXJlbnRJdGVtSWRdID0gW107XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlTGlzdCA9IFtpdGVtLmlkXTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAvLyBpdGVtIG5vbiBzw6lsZWN0aW9ubsOpID0+IG9uIGxlIHPDqWxlY3Rpb25uZVxuICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbS5oYXNDaGlsZHJlbiAhPT0gdHJ1ZSkgdmFsdWVMaXN0LnB1c2goaXRlbS5pZCk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHBpbm5lZEl0ZW0gJiYgdmFsdWVMaXN0LmluY2x1ZGVzKHBpbm5lZEl0ZW0uaWQpKXtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlTGlzdC5zcGxpY2UodmFsdWVMaXN0LmluZGV4T2YocGlubmVkSXRlbS5pZCksIDEpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKGl0ZW0uaGFzQ2hpbGRyZW4gPT09IHRydWUpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gU2kgaXRlbSBwYXJlbnQgPT4gb24gYWpvdXRlIHRvdXMgbGVzIGVuZmFudHNcbiAgICAgICAgICAgICAgICAgICAgLy8gT3Ugb24gbGVzIHN1cHByaW1lIHMnaWxzIHNvbnQgZMOpasOgIHRvdXMgc8OpbGVjdGlvbm7DqXMgKGRhbnMgdW5lIGxpc3RlIGZpbHRyw6llKVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBpZHNJblN1Z2dlc3Rpb25zID0gW107XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUuc3VnZ2VzdGlvbnMuZm9yRWFjaChzdWdnZXN0aW9uID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnN0YXRlLmhpZXJhcmNoeVtpdGVtLmlkXS5pbmNsdWRlcyhzdWdnZXN0aW9uLmlkKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkc0luU3VnZ2VzdGlvbnMucHVzaChzdWdnZXN0aW9uLmlkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIC8vIGlmKGhpZXJhcmNoeVNlbGVjdGVkW2l0ZW0uaWRdLmxlbmd0aCA+IDApIHt9XG4gICAgICAgICAgICAgICAgICAgIGxldCBhbGxDaGlsZHJlblN1Z2dlc3Rpb25zU2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBpZHNJblN1Z2dlc3Rpb25zLmZvckVhY2goaWQgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFoaWVyYXJjaHlTZWxlY3RlZFtpdGVtLmlkXS5pbmNsdWRlcyhpZCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGxDaGlsZHJlblN1Z2dlc3Rpb25zU2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGFsbENoaWxkcmVuU3VnZ2VzdGlvbnNTZWxlY3RlZCA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gT24gc3VwcHJpbWUgbGVzIGVuZmFudHMgY2FyIGTDqWrDoCB0b3VzIHPDqWxlY3Rpb25uw6lzXG4gICAgICAgICAgICAgICAgICAgICAgICBpZHNJblN1Z2dlc3Rpb25zLmZvckVhY2goaWQgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlTGlzdC5zcGxpY2UodmFsdWVMaXN0LmluZGV4T2YoaWQpLCAxKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaVNlbGVjdGVkW2l0ZW0uaWRdLnNwbGljZShoaVNlbGVjdGVkW2l0ZW0uaWRdLmluZGV4T2YoaWQpLCAxKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gT24gYWpvdXRlIHRvdXMgbGVzIGVuZmFudHMgZmlsdHLDqXMgYXUgw6lsw6ltZW50cyBzw6lsZWN0aW9ubsOpc1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVMaXN0ID0gYXJyYXlVbmlxdWUodmFsdWVMaXN0LmNvbmNhdChpZHNJblN1Z2dlc3Rpb25zKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBoaVNlbGVjdGVkW2l0ZW0uaWRdID0gYXJyYXlVbmlxdWUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGlTZWxlY3RlZFtpdGVtLmlkXS5jb25jYXQoaWRzSW5TdWdnZXN0aW9ucyksXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGhpZXJhcmNoeVNlbGVjdGVkOiBoaVNlbGVjdGVkIH0pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaXRlbS5oYXNPd25Qcm9wZXJ0eSgncGFyZW50SWQnKSkge1xuICAgICAgICAgICAgICAgICAgICAvLyBTaSBpdGVtIGVzdCB1biBlbmZhbnQgb24gbCdham91dGUgZHUgdGFibGVhdSBhc3NvY2lhdGlmIGRlc1xuICAgICAgICAgICAgICAgICAgICAvLyBlbG10cyBzw6lsZWN0aW9ubsOpc1xuICAgICAgICAgICAgICAgICAgICBoaVNlbGVjdGVkW2l0ZW0ucGFyZW50SWRdLnB1c2goaXRlbS5pZCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGhpZXJhcmNoeVNlbGVjdGVkOiBoaVNlbGVjdGVkIH0pO1xuICAgICAgICAgICAgb25DaGFuZ2UoZXZlbnQsIHZhbHVlTGlzdCwgaXRlbSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBvbkNoYW5nZShldmVudCwgaXRlbS5pZCwgaXRlbSk7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZUNsb3NlKCk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogVXBkYXRlIHN1Z2dlc3Rpb25zIGxpc3RcbiAgICAgKiAtIGFkZCAnX25vX3Jlc3VsdCcgaXRlbSBpZiBzdWdnZXN0aW9uIGxpc3QgaXMgZW1wdHlcbiAgICAgKiAtIGFkZCAnX2FsbCcgaXRlbSBpZiBzdWdnZXN0aW9uIGxpc3QgaXMgY29tcGxldGVcbiAgICAgKiBAcGFyYW0gc3VnZ2VzdGlvbnNcbiAgICAgKi9cbiAgICBoYW5kbGVTdWdnZXN0aW9ucyA9IHN1Z2dlc3Rpb25zID0+IHtcbiAgICAgICAgY29uc3QgeyBvcHRpb25zLCBoYXNBbGwsIGljb25BbGwsIHRyYW5zbGF0aW9ucywgbXVsdGlwbGUgfSA9IHRoaXMucHJvcHM7XG5cbiAgICAgICAgaWYgKHN1Z2dlc3Rpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgLy8gSGFuZGxlIE5vIFJlc3VsdFxuICAgICAgICAgICAgLy8gRklYIHRvIHJlbW92ZSBhbGwgaXRlbVxuICAgICAgICAgICAgc3VnZ2VzdGlvbnMgPSBbXTtcbiAgICAgICAgICAgIHN1Z2dlc3Rpb25zLnB1c2goe1xuICAgICAgICAgICAgICAgIGlkOiAnX25vX3Jlc3VsdCcsXG4gICAgICAgICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICAgICAgICAgIGRpc2FibGVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIGNlbnRlcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIGNoZWNrYm94OiBmYWxzZSxcbiAgICAgICAgICAgICAgICBsYWJlbDogdHJhbnNsYXRpb25zLm5vX3Jlc3VsdF9tYXRjaCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgaGFzQWxsICYmXG4gICAgICAgICAgICBzdWdnZXN0aW9ucy5sZW5ndGggPiAwICYmXG4gICAgICAgICAgICBzdWdnZXN0aW9ucy5sZW5ndGggPT09IG9wdGlvbnMubGVuZ3RoICYmXG4gICAgICAgICAgICBtdWx0aXBsZSA9PT0gdHJ1ZVxuICAgICAgICApIHtcbiAgICAgICAgICAgIC8vIEhhbmRsZSAnQWxsJ1xuICAgICAgICAgICAgaWYgKHN1Z2dlc3Rpb25zLmZpbHRlcihzdWdnZXN0aW9uID0+IHN1Z2dlc3Rpb24uaWQgPT09ICdfYWxsJykubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYWxsSXRlbSA9IHtcbiAgICAgICAgICAgICAgICAgICAgaWQ6ICdfYWxsJyxcbiAgICAgICAgICAgICAgICAgICAgaWNvbjogaWNvbkFsbCxcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6IHRyYW5zbGF0aW9ucy5hbGwsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBpZiAoaWNvbkFsbCAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgYWxsSXRlbS50eXBlID0gJ2ljb24nO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBzdWdnZXN0aW9ucy51bnNoaWZ0KGFsbEl0ZW0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgICBzdWdnZXN0aW9ucyxcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIGhhbmRsZVJlcXVlc3REZWxldGUgPSBldnQgPT4ge1xuICAgICAgICBldnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHRoaXMucHJvcHMub25DaGFuZ2UodGhpcy5wcm9wcy5uYW1lLCBbXSk7XG4gICAgfTtcblxuICAgIHJlbmRlcigpIHtcbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgY2xhc3NlcyxcbiAgICAgICAgICAgIGRpc2FibGVkLFxuICAgICAgICAgICAgZXJyb3IsXG4gICAgICAgICAgICBsb2FkaW5nLFxuICAgICAgICAgICAgb3B0aW9ucyxcbiAgICAgICAgICAgIGNoZWNrYm94LFxuICAgICAgICAgICAgc2VhcmNoYWJsZSxcbiAgICAgICAgICAgIGRpc3BsYXlBc0NoaXAsXG4gICAgICAgICAgICB0eXBlLFxuICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICB0cmFuc2xhdGlvbnMsXG4gICAgICAgICAgICBwYXJlbnRJdGVtU2VsZWN0YWJsZSxcbiAgICAgICAgICAgIGljb24sXG4gICAgICAgICAgICBwYXJlbnRJY29uLFxuICAgICAgICAgICAgaG92ZXJJY29uLFxuICAgICAgICAgICAgY2hlY2tlZEljb24sXG4gICAgICAgICAgICBoaWVyYXJjaGljLFxuICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICBwbGFjZWhvbGRlcixcbiAgICAgICAgICAgIHN0YXRpY1Bvc2l0aW9uLFxuICAgICAgICAgICAgcGlubmVkSXRlbSxcbiAgICAgICAgICAgIGhhc0FsbCxcbiAgICAgICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICAgICAgY29uc3QgeyBvcGVuLCBzdWdnZXN0aW9ucywgZm9jdXNlZCwgZHluYW1pYyB9ID0gdGhpcy5zdGF0ZTtcblxuICAgICAgICBsZXQgZGlzcGxheSA9ICcnO1xuICAgICAgICBjb25zdCBzZWxlY3RlZElkTGlzdCA9IEFycmF5LmlzQXJyYXkodmFsdWUpID8gdmFsdWUgOiB2YWx1ZSA/IFt2YWx1ZV0gOiBbXTtcblxuICAgICAgICBsZXQgX3N1Z2dlc3Rpb25zID0gWy4uLnN1Z2dlc3Rpb25zXTtcblxuICAgICAgICBpZiAocGlubmVkSXRlbSkge1xuICAgICAgICAgICAgX3N1Z2dlc3Rpb25zLnVuc2hpZnQocGlubmVkSXRlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBJZiBsb2FkaW5nXG4gICAgICAgIGlmIChsb2FkaW5nKSB7XG4gICAgICAgICAgICBfc3VnZ2VzdGlvbnMudW5zaGlmdChcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGlkOiAnX2xvYWRpbmcnLFxuICAgICAgICAgICAgICAgICAgICB0eXBlOiAnbG9hZGVyJyxcbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGNlbnRlcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBjaGVja2JveDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnbG9hZGluZycsXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICgoZHluYW1pYyB8fCBsb2FkaW5nKSAmJiBzZWxlY3RlZElkTGlzdC5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgIGRpc3BsYXkgPSB0cmFuc2xhdGlvbnMub25lX2l0ZW1fc2VsZWN0ZWQ7XG4gICAgICAgIH0gZWxzZSBpZiAoKHRoaXMuc3RhdGUubmJPcHRpb25zICE9PSBzZWxlY3RlZElkTGlzdC5sZW5ndGggfHwgIWhhc0FsbCkgJiYgc2VsZWN0ZWRJZExpc3QubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgZGlzcGxheSA9IHRyYW5zbGF0aW9ucy5uX2l0ZW1zX3NlbGVjdGVkLnJlcGxhY2UoJyVzJywgc2VsZWN0ZWRJZExpc3QubGVuZ3RoKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnN0YXRlLm5iT3B0aW9ucyA9PT0gc2VsZWN0ZWRJZExpc3QubGVuZ3RoICYmIHRoaXMuc3RhdGUubmJPcHRpb25zID4gMSkge1xuICAgICAgICAgICAgZGlzcGxheSA9IHRyYW5zbGF0aW9ucy5hbGw7XG4gICAgICAgIH0gZWxzZSBpZiAoc2VsZWN0ZWRJZExpc3QubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICBsZXQgaXRlbSA9IG9wdGlvbnMuZmluZChvID0+IG8uaWQgPT09IHNlbGVjdGVkSWRMaXN0WzBdKTtcbiAgICAgICAgICAgIGlmIChpdGVtID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5ID0gdHJhbnNsYXRpb25zLm9uZV9pdGVtX3NlbGVjdGVkO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlICE9PSAnaWNvbicpIHtcbiAgICAgICAgICAgICAgICBpZiAocGlubmVkSXRlbSkge1xuICAgICAgICAgICAgICAgICAgICBpdGVtID0gcGlubmVkSXRlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZGlzcGxheSA9IGl0ZW0ubGFiZWw7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGRpc3BsYXkgPSAoXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17Y2xhc3Nlcy5zZWxlY3RJY29uTGFiZWx9PlxuICAgICAgICAgICAgICAgICAgICAgICAgPEhpSWNvbkJ1aWxkZXIgaWNvbj17aXRlbS5pY29ufSBjbGFzc05hbWU9e2NsYXNzZXMubGFiZWxJY29ufSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAge2l0ZW0ubGFiZWx9XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGRpc3BsYXlBc0NoaXApIHtcbiAgICAgICAgICAgIGNvbnN0IGNoaXBGaWx0ZXIgPSA8SGlDaGlwIGxhYmVsPXtwbGFjZWhvbGRlciB8fCBkaXNwbGF5fSBvbkRlbGV0ZT17dGhpcy5oYW5kbGVSZXF1ZXN0RGVsZXRlfSAvPjtcbiAgICAgICAgICAgIGlmIChkaXNwbGF5KSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheSA9IGNoaXBGaWx0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBwb3BwZXJDbGFzcyA9IGNsYXNzTmFtZXMoY2xhc3Nlcy5wb3BwZXIsIHtcbiAgICAgICAgICAgIFtjbGFzc2VzLnBvcHBlckNsb3NlXTogIW9wZW4sXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGxldCBhbGxTZWxlY3RlZCA9IGZhbHNlO1xuICAgICAgICBpZiAoc2VsZWN0ZWRJZExpc3QubGVuZ3RoID09PSB0aGlzLnN0YXRlLm5iT3B0aW9ucykge1xuICAgICAgICAgICAgYWxsU2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IHBvcHBlclN0eWxlID0ge307XG4gICAgICAgIGlmICh0aGlzLnByb3BzLmNvbnRhaW5lcldpZHRoID4gMCkge1xuICAgICAgICAgICAgcG9wcGVyU3R5bGUgPSB7IHdpZHRoOiB0aGlzLnByb3BzLmNvbnRhaW5lcldpZHRoIH07XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjb250ZW50ID0gPENsaWNrQXdheUxpc3RlbmVyIG9uQ2xpY2tBd2F5PXt0aGlzLmhhbmRsZUNsaWNrQXdheX0+XG4gICAgICAgICAgICA8R3JvdyBpbj17b3Blbn0gaWQ9XCJtZW51LWxpc3RcIiBzdHlsZT17eyB0cmFuc2Zvcm1PcmlnaW46ICcwIDAgMCcgfX0+XG4gICAgICAgICAgICAgICAgPFBhcGVyIGNsYXNzTmFtZT17Y2xhc3Nlcy5wYXBlcn0+XG4gICAgICAgICAgICAgICAgICAgIHshIXNlYXJjaGFibGUgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgPEhpU2VhcmNoRmllbGRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtTGlzdD17b3B0aW9uc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFja0ZpbHRlcmVkTGlzdD17dGhpcy5oYW5kbGVTdWdnZXN0aW9uc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJQcm9wZXJ0eUxpc3Q9e1snbGFiZWwnXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj17dHJhbnNsYXRpb25zLnNlYXJjaH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvRm9jdXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvblNlYXJjaD17dGhpcy5wcm9wcy5vblNlYXJjaH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFJlZj17ZWwgPT4geyB0aGlzLnNlYXJjaEZpZWxkID0gZWw7IH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXt0aGlzLmhhbmRsZUtleURvd25TZWFyY2h9XG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICApfVxuXG4gICAgICAgICAgICAgICAgICAgIDxIaVNlbGVjdGFibGVMaXN0XG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPXt0eXBlfVxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50SXRlbVNlbGVjdGFibGU9e3BhcmVudEl0ZW1TZWxlY3RhYmxlfVxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbUxpc3Q9e19zdWdnZXN0aW9uc31cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uU2VsZWN0PXt0aGlzLmhhbmRsZVNlbGVjdH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkSWRMaXN0PXtzZWxlY3RlZElkTGlzdH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrYm94PXtjaGVja2JveH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGhpZXJhcmNoeT17dGhpcy5zdGF0ZS5oaWVyYXJjaHl9XG4gICAgICAgICAgICAgICAgICAgICAgICBoaWVyYXJjaGljPXtoaWVyYXJjaGljfVxuICAgICAgICAgICAgICAgICAgICAgICAgaGllcmFyY2h5U2VsZWN0ZWQ9e3RoaXMuc3RhdGUuaGllcmFyY2h5U2VsZWN0ZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGlvbnM9e3RyYW5zbGF0aW9uc31cbiAgICAgICAgICAgICAgICAgICAgICAgIGljb249e2ljb259XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRJY29uPXtwYXJlbnRJY29ufVxuICAgICAgICAgICAgICAgICAgICAgICAgaG92ZXJJY29uPXtob3Zlckljb259XG4gICAgICAgICAgICAgICAgICAgICAgICBjaGVja2VkSWNvbj17Y2hlY2tlZEljb259XG4gICAgICAgICAgICAgICAgICAgICAgICBhbGxTZWxlY3RlZD17YWxsU2VsZWN0ZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbktleURvd249e3RoaXMuaGFuZGxlS2V5RG93bn1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L1BhcGVyPlxuICAgICAgICAgICAgPC9Hcm93PlxuICAgICAgICA8L0NsaWNrQXdheUxpc3RlbmVyPlxuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzLnJvb3R9XG4gICAgICAgICAgICAgICAgcmVmPXtlbCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub3ZlcmxheSA9IGVsO1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPE1hbmFnZXI+XG4gICAgICAgICAgICAgICAgICAgIDxUYXJnZXQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8U2VsZWN0SW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD17aWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3BsYWNlaG9sZGVyIHx8IGRpc3BsYXl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Blbj17b3Blbn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb2N1c2VkPXtmb2N1c2VkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9e3R5cGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vQnV0dG9uPXtkaXNwbGF5QXNDaGlwfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yPXtlcnJvcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXt0aGlzLmhhbmRsZUNsaWNrfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uRm9jdXM9e3RoaXMuaGFuZGxlRm9jdXN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25CbHVyPXt0aGlzLmhhbmRsZUJsdXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25Nb3VzZUVudGVyPXt0aGlzLnByb3BzLm9uTW91c2VFbnRlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbk1vdXNlTGVhdmU9e3RoaXMucHJvcHMub25Nb3VzZUxlYXZlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZkVsZW1lbnQ9eyhlbCkgPT4geyB0aGlzLnNlbGVjdElucHV0RWxlbWVudCA9IGVsIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8L1RhcmdldD5cbiAgICAgICAgICAgICAgICAgICAge29wZW4gJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljUG9zaXRpb24gPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXtwb3BwZXJTdHlsZX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2NvbnRlbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPFBvcHBlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tc3RhcnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudHNFbmFibGVkPXtvcGVufVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e3BvcHBlckNsYXNzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17cG9wcGVyU3R5bGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Y29udGVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1BvcHBlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICA8L01hbmFnZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKTtcbiAgICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHdpdGhTdHlsZXMoc3R5bGVzLCB7IG5hbWU6ICdIbXVpSGlTZWxlY3QnIH0pKEhpU2VsZWN0KTtcbiJdfQ==
|
54707
54709
|
|
54708
54710
|
/***/ }),
|
54709
54711
|
/* 470 */
|
@@ -128120,8 +128122,8 @@ var styles = exports.styles = function styles(theme) {
|
|
128120
128122
|
negative: {
|
128121
128123
|
color: theme.palette.negative.normal
|
128122
128124
|
},
|
128123
|
-
|
128124
|
-
color: theme.palette.
|
128125
|
+
neutral: {
|
128126
|
+
color: theme.palette.neutral.normal
|
128125
128127
|
},
|
128126
128128
|
spanIndicator: {
|
128127
128129
|
fontSize: 11,
|
@@ -128175,7 +128177,7 @@ var CellRate = function (_React$Component) {
|
|
128175
128177
|
|
128176
128178
|
switch (trendchip) {
|
128177
128179
|
case cst.NO_EVOLUTION:
|
128178
|
-
trendIcon = _react2.default.createElement(_mdiMaterialUi.Equal, { className: classes.trendChipIcon + ' ' + classes.
|
128180
|
+
trendIcon = _react2.default.createElement(_mdiMaterialUi.Equal, { className: classes.trendChipIcon + ' ' + classes.neutral });
|
128179
128181
|
break;
|
128180
128182
|
case cst.EVOLUTION_UP:
|
128181
128183
|
trendIcon = _react2.default.createElement(_mdiMaterialUi.ArrowTopRight, {
|
@@ -128244,7 +128246,7 @@ CellRate.defaultProps = {
|
|
128244
128246
|
isPositive: true
|
128245
128247
|
};
|
128246
128248
|
exports.default = (0, _withStyles2.default)(styles, { name: 'HmuiCellRate' })(CellRate);
|
128247
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
128249
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9IaVRhYmxlL0JvZHlDZWxscy9DZWxsUmF0ZS5qcyJdLCJuYW1lcyI6WyJjc3QiLCJzdHlsZXMiLCJmbGV4Q29udGVudCIsImRpc3BsYXkiLCJmbGV4RGlyZWN0aW9uIiwianVzdGlmeUNvbnRlbnQiLCJvdmVyZmxvdyIsInBvc2l0aW9uIiwidHJlbmRDaGlwSWNvbiIsIndpZHRoIiwiaGVpZ2h0IiwidG9wIiwicG9zaXRpdmUiLCJjb2xvciIsInRoZW1lIiwicGFsZXR0ZSIsIm5vcm1hbCIsIm5lZ2F0aXZlIiwibmV1dHJhbCIsInNwYW5JbmRpY2F0b3IiLCJmb250U2l6ZSIsImZsb2F0IiwicmlnaHQiLCJyYXRlRGl2IiwiQ2VsbFJhdGUiLCJuZXh0UHJvcHMiLCJuZXh0U3RhdGUiLCJKU09OIiwic3RyaW5naWZ5IiwicHJvcHMiLCJzdGF0ZSIsImNsYXNzZXMiLCJ2YWx1ZSIsInRyZW5kY2hpcCIsImlzUG9zaXRpdmUiLCJpbmRpY2F0b3IiLCJsb2NhbGUiLCJ2aWV3IiwidHJlbmRJY29uIiwiZGlzcGxheWVkUmF0ZSIsIk5PX0VWT0xVVElPTiIsIkVWT0xVVElPTl9VUCIsIkVWT0xVVElPTl9ET1dOIiwiQ29tcG9uZW50IiwicHJvcFR5cGVzIiwib2JqZWN0IiwibnVtYmVyIiwiaXNSZXF1aXJlZCIsIm9uZU9mIiwiYm9vbCIsInN0cmluZyIsImRlZmF1bHRQcm9wcyIsIm5hbWUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOztBQUNBOztBQUNBOzs7O0FBQ0E7O0lBQVlBLEc7Ozs7Ozs7Ozs7Ozs7O0FBRUwsSUFBTUMsMEJBQVMsU0FBVEEsTUFBUztBQUFBLFdBQVU7QUFDNUJDLHFCQUFhO0FBQ1RDLHFCQUFTLE1BREE7QUFFVEMsMkJBQWUsUUFGTjtBQUdUQyw0QkFBZ0IsUUFIUDtBQUlUQyxzQkFBVSxRQUpEO0FBS1RDLHNCQUFVO0FBTEQsU0FEZTtBQVE1QkMsdUJBQWU7QUFDWEMsbUJBQU8s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QUFWLENBQWdCLENBQUMsSUFBRCxFQUFPLE1BQVAsRUFBZSxPQUFmLENBQWhCLEVBQXlDRCxVQVpyQztBQWFmOzs7QUFHQWIsZ0JBQVksb0JBQVVlLElBaEJQO0FBaUJmOzs7QUFHQWQsZUFBVyxvQkFBVWUsTUFwQk47QUFxQmY7OztBQUdBZCxZQUFRLG9CQUFVYyxNQXhCSDtBQXlCZjs7O0FBR0FiLFVBQU0sb0JBQVVXLEtBQVYsQ0FBZ0IsQ0FBQyxHQUFELEVBQUssR0FBTCxFQUFTLEdBQVQsQ0FBaEI7QUE1QlMsQztBQUZqQnhCLFEsQ0FpQ0syQixZLEdBQWU7QUFDbEJqQixnQkFBWTtBQURNLEM7a0JBa0RYLDBCQUFXakMsTUFBWCxFQUFtQixFQUFFbUQsTUFBTSxjQUFSLEVBQW5CLEVBQTZDNUIsUUFBN0MsQyIsImZpbGUiOiJDZWxsUmF0ZS5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS9tc291Y3kvd29ya3NwYWNlL2hpcGF5LW1hdGVyaWFsLXVpIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCB7IEFycm93Qm90dG9tUmlnaHQsIEFycm93VG9wUmlnaHQsIEVxdWFsIH0gZnJvbSAnbWRpLW1hdGVyaWFsLXVpJztcbmltcG9ydCB7IGZvcm1hdFJhdGUgfSBmcm9tICcuLi8uLi91dGlscy9oaUhlbHBlcnMnO1xuaW1wb3J0IHdpdGhTdHlsZXMgZnJvbSAnLi4vLi4vc3R5bGVzL3dpdGhTdHlsZXMnO1xuaW1wb3J0ICogYXMgY3N0IGZyb20gJy4uL2NvbnN0YW50cyc7XG5cbmV4cG9ydCBjb25zdCBzdHlsZXMgPSB0aGVtZSA9PiAoe1xuICAgIGZsZXhDb250ZW50OiB7XG4gICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgZmxleERpcmVjdGlvbjogJ2NvbHVtbicsXG4gICAgICAgIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgICAgICAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxuICAgICAgICBwb3NpdGlvbjogJ3JlbGF0aXZlJyxcbiAgICB9LFxuICAgIHRyZW5kQ2hpcEljb246IHtcbiAgICAgICAgd2lkdGg6IDE0LFxuICAgICAgICBoZWlnaHQ6IDE0LFxuICAgICAgICBwb3NpdGlvbjogJ3JlbGF0aXZlJyxcbiAgICAgICAgdG9wOiAyLFxuICAgIH0sXG4gICAgcG9zaXRpdmU6IHtcbiAgICAgICAgY29sb3I6IHRoZW1lLnBhbGV0dGUucG9zaXRpdmUubm9ybWFsXG4gICAgfSxcbiAgICBuZWdhdGl2ZToge1xuICAgICAgICBjb2xvcjogdGhlbWUucGFsZXR0ZS5uZWdhdGl2ZS5ub3JtYWxcbiAgICB9LFxuICAgIG5ldXRyYWw6IHtcbiAgICAgICAgY29sb3I6IHRoZW1lLnBhbGV0dGUubmV1dHJhbC5ub3JtYWxcbiAgICB9LFxuICAgIHNwYW5JbmRpY2F0b3I6IHtcbiAgICAgICAgZm9udFNpemU6IDExLFxuICAgICAgICBmbG9hdDogJ3JpZ2h0JyxcbiAgICAgICAgY29sb3I6ICcjNzM3MzczJyxcbiAgICAgICAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gICAgICAgIHJpZ2h0OiAzXG4gICAgfSxcbiAgICByYXRlRGl2OiB7XG4gICAgICAgIHBvc2l0aW9uOiAncmVsYXRpdmUnLFxuICAgIH1cbn0pO1xuXG4vKipcbiAqIENldHRlIGNlbGx1bGUgcGVybWV0IGQnYWZmaWNoZXIgdW4gcG91cmNlbnRhZ2VcbiAqIGF2ZWMgdW5lIGljw7RuZSBkJ8Opdm9sdXRpb24gKG9wdGlvbm5lbGxlKSBldCB1biBpbmRpY2F0ZXVyIGR1IHR5cGUgZGUgZG9ubsOpZXMgcmVwcsOpc2VudMOpZXMgKG9wdGlvbm5lbClcbiAqL1xuY2xhc3MgQ2VsbFJhdGUgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuXG4gICAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFVzZWZ1bCB0byBleHRlbmQgdGhlIHN0eWxlIGFwcGxpZWQgdG8gY29tcG9uZW50cy5cbiAgICAgICAgICovXG4gICAgICAgIGNsYXNzZXM6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBSYXRlXG4gICAgICAgICAqL1xuICAgICAgICB2YWx1ZTogUHJvcFR5cGVzLm51bWJlci5pc1JlcXVpcmVkLFxuICAgICAgICAvKipcbiAgICAgICAgICogw4l2b2x1dGlvbiBwYXIgcmFwcG9ydCDDoCBsYSBww6lyaW9kZSBwcsOpY8OpZGVudGUsIGTDqXRlcm1pbmUgbCdpY8O0bmUgYXNzb2Npw6llXG4gICAgICAgICAqL1xuICAgICAgICB0cmVuZGNoaXA6IFByb3BUeXBlcy5vbmVPZihbJ3VwJywgJ2Rvd24nLCAnZXF1YWwnXSkuaXNSZXF1aXJlZCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRydWUgc2kgdW5lIGF1Z21lbnRhdGlvbiBlc3QgY29uc2lkw6lyw6llIGNvbW1lIHBvc2l0aXZlLCBkw6l0ZXJtaW5lIGxhIGNvdWxldXIgZGUgbCdpY8O0bmVcbiAgICAgICAgICovXG4gICAgICAgIGlzUG9zaXRpdmU6IFByb3BUeXBlcy5ib29sLFxuICAgICAgICAvKipcbiAgICAgICAgICogU3DDqWNpZmllIGxlIHR5cGUgZGUgZG9ubsOpZSDDqXZhbHXDqSAoZXg6ICd2b2x1bWUnLCAnYW1vdW50JywgLi4uKVxuICAgICAgICAgKi9cbiAgICAgICAgaW5kaWNhdG9yOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgICAvKipcbiAgICAgICAgICogTG9jYWxlIEJDUCA0N1xuICAgICAgICAgKi9cbiAgICAgICAgbG9jYWxlOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgICAvKipcbiAgICAgICAgICogVmlldyAoTC9NL1MpXG4gICAgICAgICAqL1xuICAgICAgICB2aWV3OiBQcm9wVHlwZXMub25lT2YoWydsJywnbScsJ3MnXSksXG4gICAgfTtcblxuICAgIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgICAgIGlzUG9zaXRpdmU6IHRydWVcbiAgICB9O1xuXG4gICAgc2hvdWxkQ29tcG9uZW50VXBkYXRlKG5leHRQcm9wcywgbmV4dFN0YXRlKXtcbiAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh0aGlzLnByb3BzKSAhPT0gSlNPTi5zdHJpbmdpZnkobmV4dFByb3BzKSB8fCBKU09OLnN0cmluZ2lmeSh0aGlzLnN0YXRlKSAhPT0gSlNPTi5zdHJpbmdpZnkobmV4dFN0YXRlKTtcbiAgICB9XG5cbiAgICByZW5kZXIgKCkge1xuXG4gICAgICAgIGNvbnN0IHsgY2xhc3NlcywgdmFsdWUsIHRyZW5kY2hpcCwgaXNQb3NpdGl2ZSwgaW5kaWNhdG9yLCBsb2NhbGUsIHZpZXcgfSA9IHRoaXMucHJvcHM7XG5cbiAgICAgICAgbGV0IHRyZW5kSWNvbiwgZGlzcGxheWVkUmF0ZSA9IGZvcm1hdFJhdGUodmFsdWUsIHZpZXcsIGxvY2FsZSk7XG5cbiAgICAgICAgc3dpdGNoICh0cmVuZGNoaXApIHtcbiAgICAgICAgICAgIGNhc2UgY3N0Lk5PX0VWT0xVVElPTjpcbiAgICAgICAgICAgICAgICB0cmVuZEljb24gPSAoPEVxdWFsIGNsYXNzTmFtZT17Y2xhc3Nlcy50cmVuZENoaXBJY29uICsgJyAnICsgY2xhc3Nlcy5uZXV0cmFsfS8+KTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgY3N0LkVWT0xVVElPTl9VUDpcbiAgICAgICAgICAgICAgICB0cmVuZEljb24gPSAoXG4gICAgICAgICAgICAgICAgICAgIDxBcnJvd1RvcFJpZ2h0XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoY2xhc3Nlcy50cmVuZENoaXBJY29uLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzZXMucG9zaXRpdmVdOiBpc1Bvc2l0aXZlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc2VzLm5lZ2F0aXZlXTogIWlzUG9zaXRpdmUsXG4gICAgICAgICAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBjc3QuRVZPTFVUSU9OX0RPV046XG4gICAgICAgICAgICAgICAgdHJlbmRJY29uID0gKFxuICAgICAgICAgICAgICAgICAgICA8QXJyb3dCb3R0b21SaWdodFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKGNsYXNzZXMudHJlbmRDaGlwSWNvbiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc2VzLnBvc2l0aXZlXTogIWlzUG9zaXRpdmUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzZXMubmVnYXRpdmVdOiBpc1Bvc2l0aXZlLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xhc3Nlcy5mbGV4Q29udGVudH0+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e3R5cGVvZiBpbmRpY2F0b3IgPT09ICd1bmRlZmluZWQnICYmIGNsYXNzZXMucmF0ZURpdiB8fCAnJ30+e2Rpc3BsYXllZFJhdGV9e3RyZW5kSWNvbn08L2Rpdj5cbiAgICAgICAgICAgICAgICB7dHlwZW9mIGluZGljYXRvciAhPT0gJ3VuZGVmaW5lZCcgJiYgPHNwYW4gY2xhc3NOYW1lPXtjbGFzc2VzLnNwYW5JbmRpY2F0b3J9PntpbmRpY2F0b3J9PC9zcGFuPn1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICApO1xuICAgIH1cblxufVxuXG5leHBvcnQgZGVmYXVsdCB3aXRoU3R5bGVzKHN0eWxlcywgeyBuYW1lOiAnSG11aUNlbGxSYXRlJyB9KShDZWxsUmF0ZSk7XG4iXX0=
|
128248
128250
|
|
128249
128251
|
/***/ }),
|
128250
128252
|
/* 3004 */
|
@@ -147451,8 +147453,11 @@ var HiTableFooter = function (_React$Component) {
|
|
147451
147453
|
|
147452
147454
|
_createClass(HiTableFooter, [{
|
147453
147455
|
key: 'shouldComponentUpdate',
|
147454
|
-
|
147455
|
-
|
147456
|
+
|
147457
|
+
|
147458
|
+
// Table footer never need to be updated
|
147459
|
+
value: function shouldComponentUpdate() {
|
147460
|
+
return false;
|
147456
147461
|
}
|
147457
147462
|
}, {
|
147458
147463
|
key: 'render',
|
@@ -147508,7 +147513,7 @@ HiTableFooter.propTypes = {
|
|
147508
147513
|
view: _propTypes2.default.oneOf(['l', 'm', 's'])
|
147509
147514
|
};
|
147510
147515
|
exports.default = (0, _styles.withStyles)(styles, { name: 'HmuiHiTableFooter' })(HiTableFooter);
|
147511
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
147516
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9IaVRhYmxlL0hpVGFibGVGb290ZXIuanMiXSwibmFtZXMiOlsiY3N0Iiwic3R5bGVzIiwidGZvb3QiLCJ6SW5kZXgiLCJ0Zm9vdENlbGwiLCJib3JkZXJUb3AiLCJib3JkZXJUb3BDb2xvciIsInRoZW1lIiwicGFsZXR0ZSIsImxpbmUiLCJzdGVwcGVyIiwicGFkZGluZyIsInBhdGNoRGl2IiwicG9zaXRpb24iLCJib3JkZXIiLCJ3aWR0aCIsInBhZGRpbmdSaWdodCIsInBhZGRpbmdUb3AiLCJwYWRkaW5nQm90dG9tIiwiaGVpZ2h0IiwiYmFja2dyb3VuZENvbG9yIiwiSGlUYWJsZUZvb3RlciIsInByb3BzIiwiY2xhc3NlcyIsIm5iQ29sdW1uc0Rpc3BsYXllZCIsInZpZXciLCJwYWRkaW5nTGVmdCIsIkRFRkFVTFRfUEFERElORyIsInJvb3QiLCJjaGlsZHJlbiIsIkNvbXBvbmVudCIsInByb3BUeXBlcyIsIm51bWJlciIsImlzUmVxdWlyZWQiLCJvbmVPZiIsIm5hbWUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOzs7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7QUFDQTs7SUFBWUEsRzs7Ozs7Ozs7Ozs7O0FBRUwsSUFBTUMsMEJBQVMsU0FBVEEsTUFBUztBQUFBLFdBQVU7QUFDNUJDLGVBQU87QUFDSEMsb0JBQVE7QUFETCxTQURxQjtBQUk1QkMsbUJBQVc7QUFDUEMsdUJBQVcsV0FESjtBQUVQQyw0QkFBZ0JDLE1BQU1DLE9BQU4sQ0FBY0MsSUFBZCxDQUFtQkMsT0FGNUI7QUFHUEMscUJBQVM7QUFIRixTQUppQjtBQVM1QkMsa0JBQVU7QUFDTkMsc0JBQVUsVUFESjtBQUVOQyxvQkFBUSxNQUZGO0FBR05DLG1CQUFPLENBSEQ7QUFJTkMsMEJBQWMsQ0FKUjtBQUtOQyx3QkFBWSxDQUxOO0FBTU5DLDJCQUFlLENBTlQ7QUFPTkMsb0JBQVEsTUFQRjtBQVFOaEIsb0JBQVEsRUFSRjtBQVNOaUIsNkJBQWlCO0FBVFg7QUFUa0IsS0FBVjtBQUFBLENBQWY7O0lBc0JEQyxhOzs7Ozs7Ozs7Ozs7O0FBYUY7Z0RBQ3dCO0FBQ3BCLG1CQUFPLEtBQVA7QUFDSDs7O2lDQUVRO0FBQUEseUJBQ3lDLEtBQUtDLEtBRDlDO0FBQUEsZ0JBQ0dDLE9BREgsVUFDR0EsT0FESDtBQUFBLGdCQUNZQyxrQkFEWixVQUNZQSxrQkFEWjtBQUFBLGdCQUNnQ0MsSUFEaEMsVUFDZ0NBLElBRGhDOzs7QUFHTCxtQkFDSTtBQUFBO0FBQUEsa0JBQWEsV0FBV0YsUUFBUXJCLEtBQWhDO0FBQ0k7QUFBQTtBQUFBO0FBRUk7QUFDSSwrQkFBTztBQUNId0IseUNBQWExQixJQUFJMkIsZUFBSixDQUFvQkYsSUFBcEI7QUFEVix5QkFEWDtBQUlJLDZCQUFLLGtCQUpUO0FBS0ksbUNBQVdGLFFBQVFYO0FBTHZCLHNCQUZKO0FBVUk7QUFBQTtBQUFBLDBCQUFXLFNBQVNZLGtCQUFwQixFQUF3QyxTQUFTLEVBQUVJLE1BQU1MLFFBQVFuQixTQUFoQixFQUFqRDtBQUNLLDZCQUFLa0IsS0FBTCxDQUFXTztBQURoQixxQkFWSjtBQWVJO0FBQ0ksK0JBQU87QUFDSEgseUNBQWExQixJQUFJMkIsZUFBSixDQUFvQkYsSUFBcEI7QUFEVix5QkFEWDtBQUlJLDZCQUFLLG1CQUpUO0FBS0ksbUNBQVdGLFFBQVFYO0FBTHZCO0FBZko7QUFESixhQURKO0FBMkJIOzs7O0VBaER1QixnQkFBTWtCLFM7O0FBQTVCVCxhLENBQ0tVLFMsR0FBWTtBQUNmOzs7QUFHQVAsd0JBQW9CLG9CQUFVUSxNQUFWLENBQWlCQyxVQUp0QjtBQUtmOzs7O0FBSUFSLFVBQU0sb0JBQVVTLEtBQVYsQ0FBZ0IsQ0FBQyxHQUFELEVBQU0sR0FBTixFQUFXLEdBQVgsQ0FBaEI7QUFUUyxDO2tCQWtEUix3QkFBV2pDLE1BQVgsRUFBbUIsRUFBRWtDLE1BQU0sbUJBQVIsRUFBbkIsRUFBa0RkLGFBQWxELEMiLCJmaWxlIjoiSGlUYWJsZUZvb3Rlci5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS9tc291Y3kvd29ya3NwYWNlL2hpcGF5LW1hdGVyaWFsLXVpIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IFRhYmxlQ2VsbCwgVGFibGVGb290ZXIsIFRhYmxlUm93IH0gZnJvbSAnbWF0ZXJpYWwtdWkvVGFibGUnO1xuaW1wb3J0IHsgd2l0aFN0eWxlcyB9IGZyb20gJy4uL3N0eWxlcyc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0ICogYXMgY3N0IGZyb20gJy4vY29uc3RhbnRzJztcblxuZXhwb3J0IGNvbnN0IHN0eWxlcyA9IHRoZW1lID0+ICh7XG4gICAgdGZvb3Q6IHtcbiAgICAgICAgekluZGV4OiAxMyxcbiAgICB9LFxuICAgIHRmb290Q2VsbDoge1xuICAgICAgICBib3JkZXJUb3A6ICcxcHggc29saWQnLFxuICAgICAgICBib3JkZXJUb3BDb2xvcjogdGhlbWUucGFsZXR0ZS5saW5lLnN0ZXBwZXIsXG4gICAgICAgIHBhZGRpbmc6IDAsXG4gICAgfSxcbiAgICBwYXRjaERpdjoge1xuICAgICAgICBwb3NpdGlvbjogJ3JlbGF0aXZlJyxcbiAgICAgICAgYm9yZGVyOiAnbm9uZScsXG4gICAgICAgIHdpZHRoOiAwLFxuICAgICAgICBwYWRkaW5nUmlnaHQ6IDAsXG4gICAgICAgIHBhZGRpbmdUb3A6IDAsXG4gICAgICAgIHBhZGRpbmdCb3R0b206IDAsXG4gICAgICAgIGhlaWdodDogJzEwMCUnLFxuICAgICAgICB6SW5kZXg6IDEyLFxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICdpbmhlcml0JyxcbiAgICB9LFxufSk7XG5cbmNsYXNzIEhpVGFibGVGb290ZXIgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICAgIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBOb21icmUgZGUgY29sb25uZXMgYWZmaWNow6llc1xuICAgICAgICAgKi9cbiAgICAgICAgbmJDb2x1bW5zRGlzcGxheWVkOiBQcm9wVHlwZXMubnVtYmVyLmlzUmVxdWlyZWQsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUYWlsbGUgZHUgdGFibGVhdSAoTC9NL1MpLFxuICAgICAgICAgKiBkw6lmaW5pdCBsJ2VzcGFjZSBlbnRyZSBsZXMgY2VsbHVsZXMgZXQgbGV1cnMgdGFpbGxlcyBwYXIgZGVmYXVsdFxuICAgICAgICAgKi9cbiAgICAgICAgdmlldzogUHJvcFR5cGVzLm9uZU9mKFsnbCcsICdtJywgJ3MnXSksXG4gICAgfTtcblxuICAgIC8vIFRhYmxlIGZvb3RlciBuZXZlciBuZWVkIHRvIGJlIHVwZGF0ZWRcbiAgICBzaG91bGRDb21wb25lbnRVcGRhdGUoKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZW5kZXIoKSB7XG4gICAgICAgIGNvbnN0IHsgY2xhc3NlcywgbmJDb2x1bW5zRGlzcGxheWVkLCB2aWV3IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8VGFibGVGb290ZXIgY2xhc3NOYW1lPXtjbGFzc2VzLnRmb290fT5cbiAgICAgICAgICAgICAgICA8VGFibGVSb3c+XG4gICAgICAgICAgICAgICAgICAgIHsvKiBMZWZ0IHBhZGRpbmcgY2VsbCAqL31cbiAgICAgICAgICAgICAgICAgICAgPFRhYmxlQ2VsbFxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nTGVmdDogY3N0LkRFRkFVTFRfUEFERElOR1t2aWV3XSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICBrZXk9eydmb290ZXItbGVmdC1jZWxsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3Nlcy5wYXRjaERpdn1cbiAgICAgICAgICAgICAgICAgICAgLz5cblxuICAgICAgICAgICAgICAgICAgICA8VGFibGVDZWxsIGNvbFNwYW49e25iQ29sdW1uc0Rpc3BsYXllZH0gY2xhc3Nlcz17eyByb290OiBjbGFzc2VzLnRmb290Q2VsbCB9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt0aGlzLnByb3BzLmNoaWxkcmVufVxuICAgICAgICAgICAgICAgICAgICA8L1RhYmxlQ2VsbD5cblxuICAgICAgICAgICAgICAgICAgICB7LyogUmlnaHQgcGFkZGluZyBjZWxsICovfVxuICAgICAgICAgICAgICAgICAgICA8VGFibGVDZWxsXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmdMZWZ0OiBjc3QuREVGQVVMVF9QQURESU5HW3ZpZXddLFxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGtleT17J2Zvb3Rlci1yaWdodC1jZWxsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3Nlcy5wYXRjaERpdn1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L1RhYmxlUm93PlxuICAgICAgICAgICAgPC9UYWJsZUZvb3Rlcj5cbiAgICAgICAgKTtcbiAgICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHdpdGhTdHlsZXMoc3R5bGVzLCB7IG5hbWU6ICdIbXVpSGlUYWJsZUZvb3RlcicgfSkoSGlUYWJsZUZvb3Rlcik7XG4iXX0=
|
147512
147517
|
|
147513
147518
|
/***/ }),
|
147514
147519
|
/* 3014 */
|