diff --git a/demo/src/App.js b/demo/src/App.js index 4b53099..a92d05c 100644 --- a/demo/src/App.js +++ b/demo/src/App.js @@ -50,7 +50,98 @@ class App extends Component { padding: 20 }} > - There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable. If you are going to use a passage of Lorem Ipsum, you need to be sure there isn't anything embarrassing hidden in the middle of text. All the Lorem Ipsum generators on the Internet tend to repeat predefined chunks as necessary, making this the first true generator on the Internet. It uses a dictionary of over 200 Latin words, combined with a handful of model sentence structures, to generate Lorem Ipsum which looks reasonable. The generated Lorem Ipsum is therefore always free from repetition, injected humour, or non-characteristic words etc. There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable. If you are going to use a passage of Lorem Ipsum, you need to be sure there isn't anything embarrassing hidden in the middle of text. All the Lorem Ipsum generators on the Internet tend to repeat predefined chunks as necessary, making this the first true generator on the Internet. It uses a dictionary of over 200 Latin words, combined with a handful of model sentence structures, to generate Lorem Ipsum which looks reasonable. The generated Lorem Ipsum is therefore always free from repetition, injected humour, or non-characteristic words etc. There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable. If you are going to use a passage of Lorem Ipsum, you need to be sure there isn't anything embarrassing hidden in the middle of text. All the Lorem Ipsum generators on the Internet tend to repeat predefined chunks as necessary, making this the first true generator on the Internet. It uses a dictionary of over 200 Latin words, combined with a handful of model sentence structures, to generate Lorem Ipsum which looks reasonable. The generated Lorem Ipsum is therefore always free from repetition, injected humour, or non-characteristic words etc. There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable. If you are going to use a passage of Lorem Ipsum, you need to be sure there isn't anything embarrassing hidden in the middle of text. All the Lorem Ipsum generators on the Internet tend to repeat predefined chunks as necessary, making this the first true generator on the Internet. It uses a dictionary of over 200 Latin words, combined with a handful of model sentence structures, to generate Lorem Ipsum which looks reasonable. The generated Lorem Ipsum is therefore always free from repetition, injected humour, or non-characteristic words etc. There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable. If you are going to use a passage of Lorem Ipsum, you need to be sure there isn't anything embarrassing hidden in the middle of text. All the Lorem Ipsum generators on the Internet tend to repeat predefined chunks as necessary, making this the first true generator on the Internet. It uses a dictionary of over 200 Latin words, combined with a handful of model sentence structures, to generate Lorem Ipsum which looks reasonable. The generated Lorem Ipsum is therefore always free from repetition, injected humour, or non-characteristic words etc. There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable. If you are going to use a passage of Lorem Ipsum, you need to be sure there isn't anything embarrassing hidden in the middle of text. All the Lorem Ipsum generators on the Internet tend to repeat predefined chunks as necessary, making this the first true generator on the Internet. It uses a dictionary of over 200 Latin words, combined with a handful of model sentence structures, to generate Lorem Ipsum which looks reasonable. The generated Lorem Ipsum is therefore always free from repetition, injected humour, or non-characteristic words etc. There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable. If you are going to use a passage of Lorem Ipsum, you need to be sure there isn't anything embarrassing hidden in the middle of text. All the Lorem Ipsum generators on the Internet tend to repeat predefined chunks as necessary, making this the first true generator on the Internet. It uses a dictionary of over 200 Latin words, combined with a handful of model sentence structures, to generate Lorem Ipsum which looks reasonable. The generated Lorem Ipsum is therefore always free from repetition, injected humour, or non-characteristic words etc. There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable. If you are going to use a passage of Lorem Ipsum, you need to be sure there isn't anything embarrassing hidden in the middle of text. All the Lorem Ipsum generators on the Internet tend to repeat predefined chunks as necessary, making this the first true generator on the Internet. It uses a dictionary of over 200 Latin words, combined with a handful of model sentence structures, to generate Lorem Ipsum which looks reasonable. The generated Lorem Ipsum is therefore always free from repetition, injected humour, or non-characteristic words etc. There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable. If you are going to use a passage of Lorem Ipsum, you need to be sure there isn't anything embarrassing hidden in the middle of text. All the Lorem Ipsum generators on the Internet tend to repeat predefined chunks as necessary, making this the first true generator on the Internet. It uses a dictionary of over 200 Latin words, combined with a handful of model sentence structures, to generate Lorem Ipsum which looks reasonable. The generated Lorem Ipsum is therefore always free from repetition, injected humour, or non-characteristic words etc. There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable. If you are going to use a passage of Lorem Ipsum, you need to be sure there isn't anything embarrassing hidden in the middle of text. All the Lorem Ipsum generators on the Internet tend to repeat predefined chunks as necessary, making this the first true generator on the Internet. It uses a dictionary of over 200 Latin words, combined with a handful of model sentence structures, to generate Lorem Ipsum which looks reasonable. The generated Lorem Ipsum is therefore always free from repetition, injected humour, or non-characteristic words etc. There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable. If you are going to use a passage of Lorem Ipsum, you need to be sure there isn't anything embarrassing hidden in the middle of text. All the Lorem Ipsum generators on the Internet tend to repeat predefined chunks as necessary, making this the first true generator on the Internet. It uses a dictionary of over 200 Latin words, combined with a handful of model sentence structures, to generate Lorem Ipsum which looks reasonable. The generated Lorem Ipsum is therefore always free from repetition, injected humour, or non-characteristic words etc. There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable. If you are going to use a passage of Lorem Ipsum, you need to be sure there isn't anything embarrassing hidden in the middle of text. All the Lorem Ipsum generators on the Internet tend to repeat predefined chunks as necessary, making this the first true generator on the Internet. It uses a dictionary of over 200 Latin words, combined with a handful of model sentence structures, to generate Lorem Ipsum which looks reasonable. The generated Lorem Ipsum is therefore always free from repetition, injected humour, or non-characteristic words etc. There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable. If you are going to use a passage of Lorem Ipsum, you need to be sure there isn't anything embarrassing hidden in the middle of text. All the Lorem Ipsum generators on the Internet tend to repeat predefined chunks as necessary, making this the first true generator on the Internet. It uses a dictionary of over 200 Latin words, combined with a handful of model sentence structures, to generate Lorem Ipsum which looks reasonable. The generated Lorem Ipsum is therefore always free from repetition, injected humour, or non-characteristic words etc. There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable. If you are going to use a passage of Lorem Ipsum, you need to be sure there isn't anything embarrassing hidden in the middle of text. All the Lorem Ipsum generators on the Internet tend to repeat predefined chunks as necessary, making this the first true generator on the Internet. It uses a dictionary of over 200 Latin words, combined with a handful of model sentence structures, to generate Lorem Ipsum which looks reasonable. The generated Lorem Ipsum is therefore always free from repetition, injected humour, or non-characteristic words etc. There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable. If you are going to use a passage of Lorem Ipsum, you need to be sure there isn't anything embarrassing hidden in the middle of text. All the Lorem Ipsum generators on the Internet tend to repeat predefined chunks as necessary, making this the first true generator on the Internet. It uses a dictionary of over 200 Latin words, combined with a handful of model sentence structures, to generate Lorem Ipsum which looks reasonable. The generated Lorem Ipsum is therefore always free from repetition, injected humour, or non-characteristic words etc. There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable. If you are going to use a passage of Lorem Ipsum, you need to be sure there isn't anything embarrassing hidden in the middle of text. All the Lorem Ipsum generators on the Internet tend to repeat predefined chunks as necessary, making this the first true generator on the Internet. It uses a dictionary of over 200 Latin words, combined with a handful of model sentence structures, to generate Lorem Ipsum which looks reasonable. The generated Lorem Ipsum is therefore always free from repetition, injected humour, or non-characteristic words etc. There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable. If you are going to use a passage of Lorem Ipsum, you need to be sure there isn't anything embarrassing hidden in the middle of text. All the Lorem Ipsum generators on the Internet tend to repeat predefined chunks as necessary, making this the first true generator on the Internet. It uses a dictionary of over 200 Latin words, combined with a handful of model sentence structures, to generate Lorem Ipsum which looks reasonable. The generated Lorem Ipsum is therefore always free from repetition, injected humour, or non-characteristic words etc. There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable. If you are going to use a passage of Lorem Ipsum, you need to be sure there isn't anything embarrassing hidden in the middle of text. All the Lorem Ipsum generators on the Internet tend to repeat predefined chunks as necessary, making this the first true generator on the Internet. It uses a dictionary of over 200 Latin words, combined with a handful of model sentence structures, to generate Lorem Ipsum which looks reasonable. The generated Lorem Ipsum is therefore always free from repetition, injected humour, or non-characteristic words etc. + There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable. + If you are going to use a passage of Lorem Ipsum, you need to be sure there isn't anything embarrassing hidden in the middle of text. + + All the Lorem Ipsum generators on the Internet tend to repeat predefined chunks as necessary, making this the first true generator on the Internet. + It uses a dictionary of over 200 Latin words, combined with a handful of model sentence structures, to generate Lorem Ipsum which looks reasonable. + The generated Lorem Ipsum is therefore always free from repetition, injected humour, or non-characteristic words etc. + There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable. + If you are going to use a passage of Lorem Ipsum, you need to be sure there isn't anything embarrassing hidden in the middle of text. + All the Lorem Ipsum generators on the Internet tend to repeat predefined chunks as necessary, making this the first true generator on the Internet. + It uses a dictionary of over 200 Latin words, combined with a handful of model sentence structures, to generate Lorem Ipsum which looks reasonable. + The generated Lorem Ipsum is therefore always free from repetition, injected humour, or non-characteristic words etc. + There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable. + If you are going to use a passage of Lorem Ipsum, you need to be sure there isn't anything embarrassing hidden in the middle of text. + All the Lorem Ipsum generators on the Internet tend to repeat predefined chunks as necessary, making this the first true generator on the Internet. + It uses a dictionary of over 200 Latin words, combined with a handful of model sentence structures, to generate Lorem Ipsum which looks reasonable. + The generated Lorem Ipsum is therefore always free from repetition, injected humour, or non-characteristic words etc. + There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable. + If you are going to use a passage of Lorem Ipsum, you need to be sure there isn't anything embarrassing hidden in the middle of text. + All the Lorem Ipsum generators on the Internet tend to repeat predefined chunks as necessary, making this the first true generator on the Internet. + It uses a dictionary of over 200 Latin words, combined with a handful of model sentence structures, to generate Lorem Ipsum which looks reasonable. + The generated Lorem Ipsum is therefore always free from repetition, injected humour, or non-characteristic words etc. + There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable. + If you are going to use a passage of Lorem Ipsum, you need to be sure there isn't anything embarrassing hidden in the middle of text. + All the Lorem Ipsum generators on the Internet tend to repeat predefined chunks as necessary, making this the first true generator on the Internet. + It uses a dictionary of over 200 Latin words, combined with a handful of model sentence structures, to generate Lorem Ipsum which looks reasonable. + The generated Lorem Ipsum is therefore always free from repetition, injected humour, or non-characteristic words etc. + There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable. + If you are going to use a passage of Lorem Ipsum, you need to be sure there isn't anything embarrassing hidden in the middle of text. + All the Lorem Ipsum generators on the Internet tend to repeat predefined chunks as necessary, making this the first true generator on the Internet. + It uses a dictionary of over 200 Latin words, combined with a handful of model sentence structures, to generate Lorem Ipsum which looks reasonable. + The generated Lorem Ipsum is therefore always free from repetition, injected humour, or non-characteristic words etc. + There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable. + If you are going to use a passage of Lorem Ipsum, you need to be sure there isn't anything embarrassing hidden in the middle of text. + All the Lorem Ipsum generators on the Internet tend to repeat predefined chunks as necessary, making this the first true generator on the Internet. + It uses a dictionary of over 200 Latin words, combined with a handful of model sentence structures, to generate Lorem Ipsum which looks reasonable. + The generated Lorem Ipsum is therefore always free from repetition, injected humour, or non-characteristic words etc. + There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable. + If you are going to use a passage of Lorem Ipsum, you need to be sure there isn't anything embarrassing hidden in the middle of text. + All the Lorem Ipsum generators on the Internet tend to repeat predefined chunks as necessary, making this the first true generator on the Internet. + It uses a dictionary of over 200 Latin words, combined with a handful of model sentence structures, to generate Lorem Ipsum which looks reasonable. + The generated Lorem Ipsum is therefore always free from repetition, injected humour, or non-characteristic words etc. + There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable. + If you are going to use a passage of Lorem Ipsum, you need to be sure there isn't anything embarrassing hidden in the middle of text. + All the Lorem Ipsum generators on the Internet tend to repeat predefined chunks as necessary, making this the first true generator on the Internet. + It uses a dictionary of over 200 Latin words, combined with a handful of model sentence structures, to generate Lorem Ipsum which looks reasonable. + The generated Lorem Ipsum is therefore always free from repetition, injected humour, or non-characteristic words etc. + There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable. + If you are going to use a passage of Lorem Ipsum, you need to be sure there isn't anything embarrassing hidden in the middle of text. + All the Lorem Ipsum generators on the Internet tend to repeat predefined chunks as necessary, making this the first true generator on the Internet. + It uses a dictionary of over 200 Latin words, combined with a handful of model sentence structures, to generate Lorem Ipsum which looks reasonable. + The generated Lorem Ipsum is therefore always free from repetition, injected humour, or non-characteristic words etc. + There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable. + If you are going to use a passage of Lorem Ipsum, you need to be sure there isn't anything embarrassing hidden in the middle of text. + All the Lorem Ipsum generators on the Internet tend to repeat predefined chunks as necessary, making this the first true generator on the Internet. + It uses a dictionary of over 200 Latin words, combined with a handful of model sentence structures, to generate Lorem Ipsum which looks reasonable. + The generated Lorem Ipsum is therefore always free from repetition, injected humour, or non-characteristic words etc. + There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable. + If you are going to use a passage of Lorem Ipsum, you need to be sure there isn't anything embarrassing hidden in the middle of text. + All the Lorem Ipsum generators on the Internet tend to repeat predefined chunks as necessary, making this the first true generator on the Internet. + It uses a dictionary of over 200 Latin words, combined with a handful of model sentence structures, to generate Lorem Ipsum which looks reasonable. + The generated Lorem Ipsum is therefore always free from repetition, injected humour, or non-characteristic words etc. + There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable. + If you are going to use a passage of Lorem Ipsum, you need to be sure there isn't anything embarrassing hidden in the middle of text. + All the Lorem Ipsum generators on the Internet tend to repeat predefined chunks as necessary, making this the first true generator on the Internet. + It uses a dictionary of over 200 Latin words, combined with a handful of model sentence structures, to generate Lorem Ipsum which looks reasonable. + The generated Lorem Ipsum is therefore always free from repetition, injected humour, or non-characteristic words etc. + There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable. + If you are going to use a passage of Lorem Ipsum, you need to be sure there isn't anything embarrassing hidden in the middle of text. + All the Lorem Ipsum generators on the Internet tend to repeat predefined chunks as necessary, making this the first true generator on the Internet. + It uses a dictionary of over 200 Latin words, combined with a handful of model sentence structures, to generate Lorem Ipsum which looks reasonable. + The generated Lorem Ipsum is therefore always free from repetition, injected humour, or non-characteristic words etc. + There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable. + If you are going to use a passage of Lorem Ipsum, you need to be sure there isn't anything embarrassing hidden in the middle of text. + All the Lorem Ipsum generators on the Internet tend to repeat predefined chunks as necessary, making this the first true generator on the Internet. + It uses a dictionary of over 200 Latin words, combined with a handful of model sentence structures, to generate Lorem Ipsum which looks reasonable. + The generated Lorem Ipsum is therefore always free from repetition, injected humour, or non-characteristic words etc. + There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable. + If you are going to use a passage of Lorem Ipsum, you need to be sure there isn't anything embarrassing hidden in the middle of text. + All the Lorem Ipsum generators on the Internet tend to repeat predefined chunks as necessary, making this the first true generator on the Internet. + It uses a dictionary of over 200 Latin words, combined with a handful of model sentence structures, to generate Lorem Ipsum which looks reasonable. + The generated Lorem Ipsum is therefore always free from repetition, injected humour, or non-characteristic words etc. + There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable. + If you are going to use a passage of Lorem Ipsum, you need to be sure there isn't anything embarrassing hidden in the middle of text. + All the Lorem Ipsum generators on the Internet tend to repeat predefined chunks as necessary, making this the first true generator on the Internet. + It uses a dictionary of over 200 Latin words, combined with a handful of model sentence structures, to generate Lorem Ipsum which looks reasonable. + The generated Lorem Ipsum is therefore always free from repetition, injected humour, or non-characteristic words etc. + There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable. + If you are going to use a passage of Lorem Ipsum, you need to be sure there isn't anything embarrassing hidden in the middle of text. + All the Lorem Ipsum generators on the Internet tend to repeat predefined chunks as necessary, making this the first true generator on the Internet. + It uses a dictionary of over 200 Latin words, combined with a handful of model sentence structures, to generate Lorem Ipsum which looks reasonable. + The generated Lorem Ipsum is therefore always free from repetition, injected humour, or non-characteristic words etc. + diff --git a/lib/index.js b/lib/index.js index 2e3748c..28316dc 100644 --- a/lib/index.js +++ b/lib/index.js @@ -722,8 +722,6 @@ var PullRefresh = function (_Component) { if (!e.touches && this._scrollElement.scrollTop === 0) { this._started = true; - evt.preventDefault(); - evt.stopPropagation(); return false; } } @@ -996,7 +994,7 @@ PullRefresh.defaultProps = { pulledComponent: undefined, supportDesktop: false }; -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9tYWluLmpzIl0sIm5hbWVzIjpbIlB1bGxSZWZyZXNoIiwicHJvcHMiLCJzdGF0ZSIsInkiLCJzdGVwIiwid2lkdGgiLCJfeSIsIl9zdGVwIiwiX3RvdWNoIiwiX2xvY2siLCJfbG9vcCIsImJpbmQiLCJfc2Nyb2xsRWxlbWVudCIsIm9uVG91Y2hTdGFydCIsIm9uVG91Y2hFbmQiLCJvblRvdWNoTW92ZSIsIm9uU3RlcCIsIm9uU2Nyb2xsIiwic2V0RWxlbWVudCIsIl9hbmltYXRvciIsIm9uIiwibG9hZGluZyIsIl9tb3VudGVkIiwic3RvcCIsIm5leHRTdGVwIiwiTWF0aCIsImZsb29yIiwibmV4dCIsIm1heCIsIm9uUmVmcmVzaCIsInNldFN0YXRlIiwiX3JlZnJlc2hlZCIsInVwZGF0ZSIsIm9uUHVsbCIsInN0YXJ0IiwiZXZ0Iiwic3VwcG9ydERlc2t0b3AiLCJkaXNhYmxlZCIsImUiLCJuYXRpdmVFdmVudCIsInRvdWNoZXMiLCJwYWdlWSIsIl9zdGFydGVkIiwic2Nyb2xsVG9wIiwicHJldmVudERlZmF1bHQiLCJzdG9wUHJvcGFnYXRpb24iLCJwdWxsIiwibmV4dFByb3BzIiwibmV4dFN0YXRlIiwiY3VycmVudFByb3BzIiwiY3VycmVudFN0YXRlIiwib2Zmc2V0IiwiekluZGV4IiwiY29sb3IiLCJzaXplIiwiZWxlbWVudCIsIndhaXRpbmdDb21wb25lbnQiLCJ1bmRlZmluZWQiLCJyZW5kZXJEZWZhdWx0V2FpdGluZyIsImJhY2tncm91bmRDb2xvciIsInVzZXJTZWxlY3QiLCJib3hTaXppbmciLCJoZWlnaHQiLCJib3JkZXJSYWRpdXMiLCJwYWRkaW5nIiwidHJhbnNmb3JtT3JpZ2luIiwiUEkiLCJwdWxsZWRDb21wb25lbnQiLCJyZW5kZXJEZWZhdWx0UHVsbGVkIiwicmVuZGVyRGVmYXVsdFB1bGxpbmciLCJwdWxsaW5nQ29tcG9uZW50IiwidG9wIiwibWluIiwicG9zaXRpb24iLCJsZWZ0IiwiZGlzcGxheSIsInBvaW50ZXJFdmVudHMiLCJqdXN0aWZ5Q29udGVudCIsInJlbmRlclB1bGxpbmciLCJyZW5kZXJQdWxsZWQiLCJyZW5kZXJXYWl0aW5nIiwicHJvcFR5cGVzIiwibnVtYmVyIiwic3RyaW5nIiwib25lT2ZUeXBlIiwiZnVuYyIsImJvb2wiLCJkZWZhdWx0UHJvcHMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQTs7OztBQUNBOzs7O0FBQ0E7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7O0FBQ0E7Ozs7QUFDQTs7Ozs7Ozs7Ozs7O0lBRXFCQSxXOzs7QUFDbkIsdUJBQVlDLEtBQVosRUFBbUI7QUFBQTs7QUFBQSwwSEFDWEEsS0FEVzs7QUFFakIsVUFBS0MsS0FBTCxHQUFhO0FBQ1hDLFNBQUcsQ0FEUTtBQUVYQyxZQUFNLENBRks7QUFHWEMsYUFBTztBQUhJLEtBQWI7QUFLQSxVQUFLQyxFQUFMLEdBQVUsQ0FBVjtBQUNBLFVBQUtDLEtBQUwsR0FBYSxDQUFiO0FBQ0EsVUFBS0MsTUFBTCxHQUFjLEtBQWQ7QUFDQSxVQUFLQyxLQUFMLEdBQWEsS0FBYjtBQUNBLFVBQUtDLEtBQUwsR0FBYSxNQUFLQSxLQUFMLENBQVdDLElBQVgsT0FBYjtBQUNBLFVBQUtDLGNBQUwsR0FBc0Isc0JBQXRCO0FBQ0EsVUFBS0MsWUFBTCxHQUFvQixNQUFLQSxZQUFMLENBQWtCRixJQUFsQixPQUFwQjtBQUNBLFVBQUtHLFVBQUwsR0FBa0IsTUFBS0EsVUFBTCxDQUFnQkgsSUFBaEIsT0FBbEI7QUFDQSxVQUFLSSxXQUFMLEdBQW1CLE1BQUtBLFdBQUwsQ0FBaUJKLElBQWpCLE9BQW5CO0FBQ0EsVUFBS0ssTUFBTCxHQUFjLE1BQUtBLE1BQUwsQ0FBWUwsSUFBWixPQUFkO0FBQ0EsVUFBS00sUUFBTCxHQUFnQixNQUFLQSxRQUFMLENBQWNOLElBQWQsT0FBaEI7QUFDQSxVQUFLTyxVQUFMLEdBQWtCLE1BQUtBLFVBQUwsQ0FBZ0JQLElBQWhCLE9BQWxCO0FBQ0EsVUFBS1EsU0FBTCxHQUFpQiw4QkFBakI7QUFDQSxVQUFLQSxT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QUFpQixvQkFBVWlCLFNBQVYsQ0FBb0IsQ0FBRSxvQkFBVUMsSUFBWixFQUFrQixvQkFBVUMsSUFBNUIsQ0FBcEIsQ0FQSztBQVF0QmxELGtCQUFnQixvQkFBVWtEO0FBUkosQ0FBeEI7O0FBV0F0RixZQUFZdUYsWUFBWixHQUEyQjtBQUN6QmxDLFNBQU8sU0FEa0I7QUFFekJGLFVBQVEsQ0FGaUI7QUFHekJHLFFBQU0sRUFIbUI7QUFJekIxQixPQUFLLEVBSm9CO0FBS3pCNEIsb0JBQWtCQyxTQUxPO0FBTXpCYSxvQkFBa0JiLFNBTk87QUFPekJVLG1CQUFpQlYsU0FQUTtBQVF6QnJCLGtCQUFnQjtBQVJTLENBQTNCIiwiZmlsZSI6Im1haW4uanMiLCJzb3VyY2VSb290IjoiL1VzZXJzL3NoaWJhdGEvcHJvai9yZWFjdC1wdWxscmVmcmVzaCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBDb21wb25lbnQgfSBmcm9tICdyZWFjdCdcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcydcbmltcG9ydCB7IGZpbmRET01Ob2RlIH0gZnJvbSAncmVhY3QtZG9tJ1xuaW1wb3J0IGRlZmF1bHRTdHlsZSBmcm9tICcuL3N0eWxlJ1xuaW1wb3J0IEFuaW1hdGlvbkZyYW1lIGZyb20gJy4vYW5pbWF0aW9uZnJhbWUnXG5pbXBvcnQgU2Nyb2xsRWxlbWVudCBmcm9tICcuL3Njcm9sbCdcbmltcG9ydCB7IERpdiwgU3ZnLCBDaXJjbGUsIFBhdGggfSBmcm9tICcuL2NvbXBvbmVudHMnXG5pbXBvcnQgUm90YXRhYmxlIGZyb20gJy4vcm90YXRhYmxlJ1xuaW1wb3J0IHNoYWRvdyBmcm9tICcuL3NoYWRvdydcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUHVsbFJlZnJlc2ggZXh0ZW5kcyBDb21wb25lbnQge1xuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgIHN1cGVyKHByb3BzKVxuICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICB5OiAwLFxuICAgICAgc3RlcDogMCxcbiAgICAgIHdpZHRoOiAwXG4gICAgfVxuICAgIHRoaXMuX3kgPSAwXG4gICAgdGhpcy5fc3RlcCA9IDBcbiAgICB0aGlzLl90b3VjaCA9IGZhbHNlXG4gICAgdGhpcy5fbG9jayA9IGZhbHNlXG4gICAgdGhpcy5fbG9vcCA9IHRoaXMuX2xvb3AuYmluZCh0aGlzKVxuICAgIHRoaXMuX3Njcm9sbEVsZW1lbnQgPSBuZXcgU2Nyb2xsRWxlbWVudCgpXG4gICAgdGhpcy5vblRvdWNoU3RhcnQgPSB0aGlzLm9uVG91Y2hTdGFydC5iaW5kKHRoaXMpXG4gICAgdGhpcy5vblRvdWNoRW5kID0gdGhpcy5vblRvdWNoRW5kLmJpbmQodGhpcylcbiAgICB0aGlzLm9uVG91Y2hNb3ZlID0gdGhpcy5vblRvdWNoTW92ZS5iaW5kKHRoaXMpXG4gICAgdGhpcy5vblN0ZXAgPSB0aGlzLm9uU3RlcC5iaW5kKHRoaXMpXG4gICAgdGhpcy5vblNjcm9sbCA9IHRoaXMub25TY3JvbGwuYmluZCh0aGlzKVxuICAgIHRoaXMuc2V0RWxlbWVudCA9IHRoaXMuc2V0RWxlbWVudC5iaW5kKHRoaXMpXG4gICAgdGhpcy5fYW5pbWF0b3IgPSBuZXcgQW5pbWF0aW9uRnJhbWUoKVxuICAgIHRoaXMuX2FuaW1hdG9yLm9uKCdmcmFtZScsIHRoaXMuX2xvb3ApXG4gIH1cbiAgX2xvb3AoKSB7XG4gICAgY29uc3QgeyBsb2FkaW5nIH0gPSB0aGlzLnN0YXRlXG4gICAgaWYoIXRoaXMuX21vdW50ZWQgfHwgdGhpcy5fc3RlcCA8PSAwKSB7XG4gICAgICB0aGlzLl9sb2NrID0gZmFsc2VcbiAgICAgIHRoaXMuX2FuaW1hdG9yLnN0b3AoKVxuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGlmKGxvYWRpbmcpIHtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgbmV4dFN0ZXAgPSB0aGlzLl9zdGVwICogMC44XG4gICAgICB0aGlzLl9zdGVwID0gTWF0aC5mbG9vcihuZXh0U3RlcClcbiAgICAgIHRoaXMub25TdGVwKHRoaXMuX3N0ZXApXG4gICAgfVxuICB9XG4gIGFib3J0KCkge1xuICAgIHRoaXMuX2xvY2sgPSBmYWxzZVxuICAgIHRoaXMuX3N0ZXAgPSAwXG4gICAgdGhpcy5fdG91Y2ggPSBmYWxzZVxuICB9XG4gIG9uUHVsbChzdGVwLCBuZXh0KSB7XG4gICAgY29uc3QgeyBtYXgsIG9uUmVmcmVzaCB9ID0gdGhpcy5wcm9wc1xuICAgIGlmKCFvblJlZnJlc2ggfHwgc3RlcCAqIDAuNiA8IG1heCkge1xuICAgICAgdGhpcy5fbG9jayA9IGZhbHNlXG4gICAgICBuZXh0KClcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgIGxvYWRpbmc6dHJ1ZVxuICAgIH0pXG4gICAgb25SZWZyZXNoKF8gPT4ge1xuICAgICAgdGhpcy5fbG9jayA9IGZhbHNlXG4gICAgICB0aGlzLl9yZWZyZXNoZWQgPSB0cnVlXG4gICAgICBpZighdGhpcy5fbW91bnRlZCkgcmV0dXJuXG4gICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgbG9hZGluZzpmYWxzZVxuICAgICAgfSlcbiAgICAgIG5leHQoKVxuICAgIH0pXG4gICAgbmV4dCgpXG4gIH1cbiAgcHVsbChzdGVwKSB7XG4gICAgaWYodGhpcy5fbG9jaykgcmV0dXJuXG5cbiAgICB0aGlzLl9zY3JvbGxFbGVtZW50LnVwZGF0ZSgpXG4gICAgdGhpcy5fc3RlcCA9IHN0ZXBcbiAgICB0aGlzLm9uU3RlcCh0aGlzLl9zdGVwKVxuICAgIHRoaXMuX2xvY2sgPSB0cnVlXG4gICAgdGhpcy5vblB1bGwodGhpcy5fc3RlcCwgKCkgPT4ge1xuICAgICAgdGhpcy5fdG91Y2ggPSB0cnVlXG4gICAgICB0aGlzLl9hbmltYXRvci5zdGFydCgpXG4gICAgfSlcbiAgfVxuICBvblRvdWNoU3RhcnQoZXZ0KSB7XG4gICAgY29uc3QgeyBzdXBwb3J0RGVza3RvcCwgZGlzYWJsZWQgfSA9IHRoaXMucHJvcHNcbiAgICBpZihkaXNhYmxlZCkgcmV0dXJuXG4gICAgaWYodGhpcy5fbG9jaykgcmV0dXJuXG4gICAgdGhpcy5fcmVmcmVzaGVkID0gZmFsc2VcbiAgICB0aGlzLl9zY3JvbGxFbGVtZW50LnVwZGF0ZSgpXG4gICAgY29uc3QgZSA9IGV2dC5uYXRpdmVFdmVudCB8fCBldnRcbiAgICBpZighc3VwcG9ydERlc2t0b3AgJiYgIWUudG91Y2hlcykgcmV0dXJuXG4gICAgdGhpcy5feSA9IGUudG91Y2hlcyA/IGUudG91Y2hlc1swXS5wYWdlWSA6IGUucGFnZVlcbiAgICB0aGlzLl9zdGFydGVkID0gZmFsc2VcbiAgICB0aGlzLl9zdGVwID0gLXRoaXMuX3Njcm9sbEVsZW1lbnQuc2Nyb2xsVG9wXG4gICAgdGhpcy5fdG91Y2ggPSB0cnVlXG5cbiAgICBpZighZS50b3VjaGVzICYmIHRoaXMuX3Njcm9sbEVsZW1lbnQuc2Nyb2xsVG9wID09PSAwKSB7XG4gICAgICB0aGlzLl9zdGFydGVkID0gdHJ1ZVxuICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KClcbiAgICAgIGV2dC5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuICB9XG4gIG9uVG91Y2hFbmQoZXZ0KSB7XG4gICAgY29uc3QgeyBzdXBwb3J0RGVza3RvcCwgZGlzYWJsZWQgfSA9IHRoaXMucHJvcHNcbiAgICBpZihkaXNhYmxlZCkgcmV0dXJuXG4gICAgaWYodGhpcy5fbG9jaykgcmV0dXJuXG4gICAgY29uc3QgZSA9IGV2dC5uYXRpdmVFdmVudCB8fCBldnRcbiAgICBpZighc3VwcG9ydERlc2t0b3AgJiYgIWUudG91Y2hlcykgcmV0dXJuXG4gICAgdGhpcy5fc3RhcnRlZCA9IGZhbHNlXG4gICAgdGhpcy5fbG9jayA9IHRydWVcbiAgICB0aGlzLm9uUHVsbCh0aGlzLl9zdGVwLCAoKSA9PiB7XG4gICAgICB0aGlzLl90b3VjaCA9IGZhbHNlXG4gICAgICB0aGlzLl9hbmltYXRvci5zdGFydCgpXG4gICAgfSlcbiAgICByZXR1cm4gdHJ1ZVxuICB9XG4gIG9uVG91Y2hNb3ZlKGV2dCkge1xuICAgIGNvbnN0IHsgc3VwcG9ydERlc2t0b3AsIGRpc2FibGVkIH0gPSB0aGlzLnByb3BzXG4gICAgaWYoZGlzYWJsZWQpIHJldHVyblxuICAgIGlmKHRoaXMuX2xvY2spIHJldHVyblxuICAgIGNvbnN0IGUgPSBldnQubmF0aXZlRXZlbnQgfHwgZXZ0XG4gICAgaWYoIXN1cHBvcnREZXNrdG9wICYmICFlLnRvdWNoZXMpIHJldHVyblxuICAgIGxldCB5ID0gZS50b3VjaGVzID8gZS50b3VjaGVzWzBdLnBhZ2VZIDogZS5wYWdlWVxuICAgIGxldCBzdGVwID0gdGhpcy5fdG91Y2ggPyB0aGlzLl9zdGVwICsgeSAtIHRoaXMuX3kgOiAwXG4gICAgaWYodGhpcy5fdG91Y2ggJiYgc3RlcCAhPT0gdGhpcy5fc3RlcCkge1xuICAgICAgdGhpcy5fc3RlcCA9IHN0ZXBcbiAgICAgIHRoaXMuX3kgPSB5XG4gICAgICBpZih0aGlzLl9zY3JvbGxFbGVtZW50LnNjcm9sbFRvcCA9PT0gMCkge1xuICAgICAgICB0aGlzLl9zdGFydGVkID0gdHJ1ZVxuICAgICAgfVxuICAgICAgaWYodGhpcy5fc3RhcnRlZCkge1xuICAgICAgICB0aGlzLm9uU3RlcChNYXRoLm1heCgwLCB0aGlzLl9zdGVwKSlcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmVmcmVzaCgpIHtcbiAgICBjb25zdCB7IG1heCB9ID0gdGhpcy5wcm9wc1xuICAgIHRoaXMucHVsbChtYXggLyAwLjYgKyAxKVxuICB9XG4gIG9uU3RlcChzdGVwKSB7XG4gICAgdGhpcy5zZXRTdGF0ZSh7IHN0ZXAgfSlcbiAgfVxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICB0aGlzLl9tb3VudGVkID0gdHJ1ZVxuICB9XG4gIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgIHRoaXMuX21vdW50ZWQgPSBmYWxzZVxuICB9XG4gIHNob3VsZENvbXBvbmVudFVwZGF0ZShuZXh0UHJvcHMsIG5leHRTdGF0ZSkge1xuICAgIGNvbnN0IGN1cnJlbnRQcm9wcyA9IHRoaXMucHJvcHNcbiAgICBjb25zdCBjdXJyZW50U3RhdGUgPSB0aGlzLnN0YXRlXG4gICAgcmV0dXJuIGZhbHNlXG4gICAgICB8fCBuZXh0U3RhdGUubG9hZGluZyAhPT0gY3VycmVudFN0YXRlLmxvYWRpbmdcbiAgICAgIHx8IG5leHRTdGF0ZS5zdGVwICE9PSBjdXJyZW50U3RhdGUuc3RlcFxuICAgICAgfHwgbmV4dFByb3BzLm9mZnNldCAhPT0gY3VycmVudFByb3BzLm9mZnNldFxuICAgICAgfHwgbmV4dFByb3BzLnpJbmRleCAhPT0gY3VycmVudFByb3BzLnpJbmRleFxuICAgICAgfHwgbmV4dFByb3BzLm1heCAhPT0gY3VycmVudFByb3BzLm1heFxuICAgICAgfHwgbmV4dFByb3BzLmNvbG9yICE9PSBjdXJyZW50UHJvcHMuY29sb3JcbiAgICAgIHx8IG5leHRQcm9wcy5zaXplICE9PSBjdXJyZW50UHJvcHMuc2l6ZVxuICB9XG4gIHNldEVsZW1lbnQoZWxlbWVudCkge1xuICAgIHRoaXMuX3Njcm9sbEVsZW1lbnQuZWxlbWVudCA9IGVsZW1lbnRcbiAgfVxuICBvblNjcm9sbChldnQpIHtcbiAgICB0aGlzLl9zY3JvbGxFbGVtZW50Lm9uU2Nyb2xsKGV2dClcbiAgfVxuICByZW5kZXJXYWl0aW5nKCkge1xuICAgIGNvbnN0IHsgd2FpdGluZ0NvbXBvbmVudCB9ID0gdGhpcy5wcm9wc1xuICAgIGlmKHdhaXRpbmdDb21wb25lbnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHR5cGVvZiB3YWl0aW5nQ29tcG9uZW50ID09PSAnZnVuY3Rpb24nID8gIHdhaXRpbmdDb21wb25lbnQodGhpcy5wcm9wcykgOiB3YWl0aW5nQ29tcG9uZW50XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnJlbmRlckRlZmF1bHRXYWl0aW5nKHRoaXMucHJvcHMpXG4gIH1cbiAgcmVuZGVyRGVmYXVsdFdhaXRpbmcocHJvcHMpIHtcbiAgICBjb25zdCB7IG1heCwgc2l6ZSwgY29sb3IgfSA9IHByb3BzXG4gICAgcmV0dXJuIChcbiAgICAgIDxEaXZcbiAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6J3doaXRlJyxcbiAgICAgICAgICB1c2VyU2VsZWN0Oidub25lJyxcbiAgICAgICAgICBib3hTaXppbmc6ICdib3JkZXItYm94JyxcbiAgICAgICAgICAuLi5zaGFkb3coMiksXG4gICAgICAgICAgd2lkdGg6IHNpemUsXG4gICAgICAgICAgaGVpZ2h0OiBzaXplLFxuICAgICAgICAgIGJvcmRlclJhZGl1czogc2l6ZSAvIDIsXG4gICAgICAgICAgcGFkZGluZzogKHNpemUgLSAzMCkgLyAyXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIDxSb3RhdGFibGU+XG4gICAgICAgICAgPFN2ZyB3aWR0aD17MzB9IGhlaWdodD17MzB9IHZpZXdCb3g9JzAgMCAzMCAzMCc+XG4gICAgICAgICAgICA8Q2lyY2xlXG4gICAgICAgICAgICAgIHN0eWxlPXt7IHRyYW5zZm9ybU9yaWdpbjogJ2NlbnRlcicgfX1cbiAgICAgICAgICAgICAgc3Ryb2tlPXtjb2xvcn1cbiAgICAgICAgICAgICAgc3Ryb2tlRGFzaGFycmF5PXtbTWF0aC5QSSAqIDhdfVxuICAgICAgICAgICAgICBzdHJva2VEYXNob2Zmc2V0PXswfVxuICAgICAgICAgICAgICBmaWxsPSdub25lJ1xuICAgICAgICAgICAgICBzdHJva2VXaWR0aD17Mn1cbiAgICAgICAgICAgICAgY3g9ezE1fVxuICAgICAgICAgICAgICBjeT17MTV9XG4gICAgICAgICAgICAgIHI9ezh9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvU3ZnPlxuICAgICAgICA8L1JvdGF0YWJsZT5cbiAgICAgIDwvRGl2PlxuICAgIClcbiAgfVxuICByZW5kZXJQdWxsZWQoKSB7XG4gICAgY29uc3QgeyBzdGVwIH0gPSB0aGlzLnN0YXRlXG4gICAgY29uc3QgeyBwdWxsZWRDb21wb25lbnQgfSA9IHRoaXMucHJvcHNcbiAgICBpZihwdWxsZWRDb21wb25lbnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHR5cGVvZiBwdWxsZWRDb21wb25lbnQgPT09ICdmdW5jdGlvbicgPyAgcHVsbGVkQ29tcG9uZW50KHRoaXMucHJvcHMsIHN0ZXApIDogcHVsbGVkQ29tcG9uZW50XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnJlbmRlckRlZmF1bHRQdWxsZWQodGhpcy5wcm9wcywgc3RlcClcbiAgfVxuICByZW5kZXJEZWZhdWx0UHVsbGVkKHByb3BzLCBzdGVwKSB7XG4gICAgcmV0dXJuIHRoaXMucmVuZGVyRGVmYXVsdFB1bGxpbmcocHJvcHMsIHN0ZXApXG4gIH1cbiAgcmVuZGVyUHVsbGluZygpIHtcbiAgICBjb25zdCB7IHN0ZXAgfSA9IHRoaXMuc3RhdGVcbiAgICBjb25zdCB7IHB1bGxpbmdDb21wb25lbnQgfSA9IHRoaXMucHJvcHNcbiAgICBpZihwdWxsaW5nQ29tcG9uZW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiB0eXBlb2YgcHVsbGluZ0NvbXBvbmVudCA9PT0gJ2Z1bmN0aW9uJyA/ICBwdWxsaW5nQ29tcG9uZW50KHRoaXMucHJvcHMsIHN0ZXApIDogcHVsbGluZ0NvbXBvbmVudFxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5yZW5kZXJEZWZhdWx0UHVsbGluZyh0aGlzLnByb3BzLCBzdGVwKVxuICB9XG4gIHJlbmRlckRlZmF1bHRQdWxsaW5nKHByb3BzLCBzdGVwKSB7XG4gICAgY29uc3QgeyBtYXgsIHNpemUsIGNvbG9yIH0gPSBwcm9wc1xuICAgIHJldHVybiAoXG4gICAgICA8RGl2XG4gICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgYmFja2dyb3VuZENvbG9yOid3aGl0ZScsXG4gICAgICAgICAgdXNlclNlbGVjdDonbm9uZScsXG4gICAgICAgICAgYm94U2l6aW5nOiAnYm9yZGVyLWJveCcsXG4gICAgICAgICAgLi4uc2hhZG93KDIpLFxuICAgICAgICAgIHdpZHRoOiBzaXplLFxuICAgICAgICAgIGhlaWdodDogc2l6ZSxcbiAgICAgICAgICBib3JkZXJSYWRpdXM6IHNpemUgLyAyLFxuICAgICAgICAgIHBhZGRpbmc6IChzaXplIC0gMzApIC8gMlxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICA8Um90YXRhYmxlIG9mZnNldD17c3RlcH0gZGlzYWJsZWQ+XG4gICAgICAgICAgPFN2ZyB3aWR0aD17MzB9IGhlaWdodD17MzB9IHZpZXdCb3g9JzAgMCAzMCAzMCc+XG4gICAgICAgICAgICA8UGF0aCBmaWxsPXtjb2xvcn0gZD0nTTEzLjMsMTVMNy4xLDguOUwwLjksMTUnIC8+XG4gICAgICAgICAgICA8Q2lyY2xlXG4gICAgICAgICAgICAgIHN0eWxlPXt7IHRyYW5zZm9ybU9yaWdpbjogJ2NlbnRlcicgfX1cbiAgICAgICAgICAgICAgc3Ryb2tlPXtjb2xvcn1cbiAgICAgICAgICAgICAgc3Ryb2tlRGFzaGFycmF5PXtbTWF0aC5QSSAqIDhdfVxuICAgICAgICAgICAgICBzdHJva2VEYXNob2Zmc2V0PXswfVxuICAgICAgICAgICAgICBmaWxsPSdub25lJ1xuICAgICAgICAgICAgICBzdHJva2VXaWR0aD17Mn1cbiAgICAgICAgICAgICAgY3g9ezE1fVxuICAgICAgICAgICAgICBjeT17MTV9XG4gICAgICAgICAgICAgIHI9ezh9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvU3ZnPlxuICAgICAgICA8L1JvdGF0YWJsZT5cbiAgICAgIDwvRGl2PlxuICAgIClcbiAgfVxuICByZW5kZXIoKSB7XG4gICAgY29uc3QgeyBvZmZzZXQsIHpJbmRleCwgbWF4LCBzaXplIH0gPSB0aGlzLnByb3BzXG4gICAgY29uc3QgeyB3aWR0aCwgc3RlcCwgbG9hZGluZyB9ID0gdGhpcy5zdGF0ZVxuICAgIGNvbnN0IHRvcCA9IE1hdGgubWluKHN0ZXAsIG1heCkgLSBzaXplIC0gNlxuICAgIGlmKHN0ZXAgPD0gMCkgcmV0dXJuIGZhbHNlXG4gICAgcmV0dXJuIChcbiAgICAgIDxEaXZcbiAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICAgICAgICB6SW5kZXg6IHpJbmRleCxcbiAgICAgICAgICB0b3A6IG9mZnNldCArIHRvcCxcbiAgICAgICAgICBsZWZ0OiAwLFxuICAgICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgICAgIHBvaW50ZXJFdmVudHM6ICdub25lJyxcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcidcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgeyAhdGhpcy5fbG9jayAmJiAhbG9hZGluZyAmJiAhdGhpcy5fcmVmcmVzaGVkICYmIHRoaXMucmVuZGVyUHVsbGluZygpIH1cbiAgICAgICAgeyAhdGhpcy5fbG9jayAmJiAhbG9hZGluZyAmJiAgdGhpcy5fcmVmcmVzaGVkICYmIHRoaXMucmVuZGVyUHVsbGVkKCkgfVxuICAgICAgICB7ICh0aGlzLl9sb2NrIHx8IGxvYWRpbmcgKSAmJiB0aGlzLnJlbmRlcldhaXRpbmcoKSB9XG4gICAgICA8L0Rpdj5cbiAgICApXG4gIH1cbn1cblxuUHVsbFJlZnJlc2gucHJvcFR5cGVzID0ge1xuICBvZmZzZXQ6IFByb3BUeXBlcy5udW1iZXIsXG4gIHNpemU6IFByb3BUeXBlcy5udW1iZXIsXG4gIG1heDogUHJvcFR5cGVzLm51bWJlcixcbiAgY29sb3I6IFByb3BUeXBlcy5zdHJpbmcsXG4gIHdhaXRpbmdDb21wb25lbnQ6IFByb3BUeXBlcy5vbmVPZlR5cGUoWyBQcm9wVHlwZXMuZnVuYywgUHJvcFR5cGVzLmJvb2wgXSksXG4gIHB1bGxpbmdDb21wb25lbnQ6IFByb3BUeXBlcy5vbmVPZlR5cGUoWyBQcm9wVHlwZXMuZnVuYywgUHJvcFR5cGVzLmJvb2wgXSksXG4gIHB1bGxlZENvbXBvbmVudDogUHJvcFR5cGVzLm9uZU9mVHlwZShbIFByb3BUeXBlcy5mdW5jLCBQcm9wVHlwZXMuYm9vbCBdKSxcbiAgc3VwcG9ydERlc2t0b3A6IFByb3BUeXBlcy5ib29sXG59XG5cblB1bGxSZWZyZXNoLmRlZmF1bHRQcm9wcyA9IHtcbiAgY29sb3I6ICcjMDAwMDAwJyxcbiAgb2Zmc2V0OiAwLFxuICBzaXplOiA0MCxcbiAgbWF4OiA2MCxcbiAgd2FpdGluZ0NvbXBvbmVudDogdW5kZWZpbmVkLFxuICBwdWxsaW5nQ29tcG9uZW50OiB1bmRlZmluZWQsXG4gIHB1bGxlZENvbXBvbmVudDogdW5kZWZpbmVkLFxuICBzdXBwb3J0RGVza3RvcDogZmFsc2Vcbn1cbiJdfQ== +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9tYWluLmpzIl0sIm5hbWVzIjpbIlB1bGxSZWZyZXNoIiwicHJvcHMiLCJzdGF0ZSIsInkiLCJzdGVwIiwid2lkdGgiLCJfeSIsIl9zdGVwIiwiX3RvdWNoIiwiX2xvY2siLCJfbG9vcCIsImJpbmQiLCJfc2Nyb2xsRWxlbWVudCIsIm9uVG91Y2hTdGFydCIsIm9uVG91Y2hFbmQiLCJvblRvdWNoTW92ZSIsIm9uU3RlcCIsIm9uU2Nyb2xsIiwic2V0RWxlbWVudCIsIl9hbmltYXRvciIsIm9uIiwibG9hZGluZyIsIl9tb3VudGVkIiwic3RvcCIsIm5leHRTdGVwIiwiTWF0aCIsImZsb29yIiwibmV4dCIsIm1heCIsIm9uUmVmcmVzaCIsInNldFN0YXRlIiwiX3JlZnJlc2hlZCIsInVwZGF0ZSIsIm9uUHVsbCIsInN0YXJ0IiwiZXZ0Iiwic3VwcG9ydERlc2t0b3AiLCJkaXNhYmxlZCIsImUiLCJuYXRpdmVFdmVudCIsInRvdWNoZXMiLCJwYWdlWSIsIl9zdGFydGVkIiwic2Nyb2xsVG9wIiwicHVsbCIsIm5leHRQcm9wcyIsIm5leHRTdGF0ZSIsImN1cnJlbnRQcm9wcyIsImN1cnJlbnRTdGF0ZSIsIm9mZnNldCIsInpJbmRleCIsImNvbG9yIiwic2l6ZSIsImVsZW1lbnQiLCJ3YWl0aW5nQ29tcG9uZW50IiwidW5kZWZpbmVkIiwicmVuZGVyRGVmYXVsdFdhaXRpbmciLCJiYWNrZ3JvdW5kQ29sb3IiLCJ1c2VyU2VsZWN0IiwiYm94U2l6aW5nIiwiaGVpZ2h0IiwiYm9yZGVyUmFkaXVzIiwicGFkZGluZyIsInRyYW5zZm9ybU9yaWdpbiIsIlBJIiwicHVsbGVkQ29tcG9uZW50IiwicmVuZGVyRGVmYXVsdFB1bGxlZCIsInJlbmRlckRlZmF1bHRQdWxsaW5nIiwicHVsbGluZ0NvbXBvbmVudCIsInRvcCIsIm1pbiIsInBvc2l0aW9uIiwibGVmdCIsImRpc3BsYXkiLCJwb2ludGVyRXZlbnRzIiwianVzdGlmeUNvbnRlbnQiLCJyZW5kZXJQdWxsaW5nIiwicmVuZGVyUHVsbGVkIiwicmVuZGVyV2FpdGluZyIsInByb3BUeXBlcyIsIm51bWJlciIsInN0cmluZyIsIm9uZU9mVHlwZSIsImZ1bmMiLCJib29sIiwiZGVmYXVsdFByb3BzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUE7Ozs7QUFDQTs7OztBQUNBOztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOztBQUNBOzs7O0FBQ0E7Ozs7Ozs7Ozs7OztJQUVxQkEsVzs7O0FBQ25CLHVCQUFZQyxLQUFaLEVBQW1CO0FBQUE7O0FBQUEsMEhBQ1hBLEtBRFc7O0FBRWpCLFVBQUtDLEtBQUwsR0FBYTtBQUNYQyxTQUFHLENBRFE7QUFFWEMsWUFBTSxDQUZLO0FBR1hDLGFBQU87QUFISSxLQUFiO0FBS0EsVUFBS0MsRUFBTCxHQUFVLENBQVY7QUFDQSxVQUFLQyxLQUFMLEdBQWEsQ0FBYjtBQUNBLFVBQUtDLE1BQUwsR0FBYyxLQUFkO0FBQ0EsVUFBS0MsS0FBTCxHQUFhLEtBQWI7QUFDQSxVQUFLQyxLQUFMLEdBQWEsTUFBS0EsS0FBTCxDQUFXQyxJQUFYLE9BQWI7QUFDQSxVQUFLQyxjQUFMLEdBQXNCLHNCQUF0QjtBQUNBLFVBQUtDLFlBQUwsR0FBb0IsTUFBS0EsWUFBTCxDQUFrQkYsSUFBbEIsT0FBcEI7QUFDQSxVQUFLRyxVQUFMLEdBQWtCLE1BQUtBLFVBQUwsQ0FBZ0JILElBQWhCLE9BQWxCO0FBQ0EsVUFBS0ksV0FBTCxHQUFtQixNQUFLQSxXQUFMLENBQWlCSixJQUFqQixPQUFuQjtBQUNBLFVBQUtLLE1BQUwsR0FBYyxNQUFLQSxNQUFMLENBQVlMLElBQVosT0FBZDtBQUNBLFVBQUtNLFFBQUwsR0FBZ0IsTUFBS0EsUUFBTCxDQUFjTixJQUFkLE9BQWhCO0FBQ0EsVUFBS08sVUFBTCxHQUFrQixNQUFLQSxVQUFMLENBQWdCUCxJQUFoQixPQUFsQjtBQUNBLFVBQUtRLFNBQUwsR0FBaUIsOEJBQWpCO0FBQ0EsVUFBS0EsU0FBTCxDQUFlQyxFQUFmLENBQWtCLE9BQWxCLEVBQTJCLE1B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SztBQVF0QmhELGtCQUFnQixvQkFBVWdEO0FBUkosQ0FBeEI7O0FBV0FwRixZQUFZcUYsWUFBWixHQUEyQjtBQUN6QmxDLFNBQU8sU0FEa0I7QUFFekJGLFVBQVEsQ0FGaUI7QUFHekJHLFFBQU0sRUFIbUI7QUFJekJ4QixPQUFLLEVBSm9CO0FBS3pCMEIsb0JBQWtCQyxTQUxPO0FBTXpCYSxvQkFBa0JiLFNBTk87QUFPekJVLG1CQUFpQlYsU0FQUTtBQVF6Qm5CLGtCQUFnQjtBQVJTLENBQTNCIiwiZmlsZSI6Im1haW4uanMiLCJzb3VyY2VSb290IjoiL1VzZXJzL3NoaWJhdGEvcHJvai9yZWFjdC1wdWxscmVmcmVzaCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBDb21wb25lbnQgfSBmcm9tICdyZWFjdCdcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcydcbmltcG9ydCB7IGZpbmRET01Ob2RlIH0gZnJvbSAncmVhY3QtZG9tJ1xuaW1wb3J0IGRlZmF1bHRTdHlsZSBmcm9tICcuL3N0eWxlJ1xuaW1wb3J0IEFuaW1hdGlvbkZyYW1lIGZyb20gJy4vYW5pbWF0aW9uZnJhbWUnXG5pbXBvcnQgU2Nyb2xsRWxlbWVudCBmcm9tICcuL3Njcm9sbCdcbmltcG9ydCB7IERpdiwgU3ZnLCBDaXJjbGUsIFBhdGggfSBmcm9tICcuL2NvbXBvbmVudHMnXG5pbXBvcnQgUm90YXRhYmxlIGZyb20gJy4vcm90YXRhYmxlJ1xuaW1wb3J0IHNoYWRvdyBmcm9tICcuL3NoYWRvdydcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUHVsbFJlZnJlc2ggZXh0ZW5kcyBDb21wb25lbnQge1xuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgIHN1cGVyKHByb3BzKVxuICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICB5OiAwLFxuICAgICAgc3RlcDogMCxcbiAgICAgIHdpZHRoOiAwXG4gICAgfVxuICAgIHRoaXMuX3kgPSAwXG4gICAgdGhpcy5fc3RlcCA9IDBcbiAgICB0aGlzLl90b3VjaCA9IGZhbHNlXG4gICAgdGhpcy5fbG9jayA9IGZhbHNlXG4gICAgdGhpcy5fbG9vcCA9IHRoaXMuX2xvb3AuYmluZCh0aGlzKVxuICAgIHRoaXMuX3Njcm9sbEVsZW1lbnQgPSBuZXcgU2Nyb2xsRWxlbWVudCgpXG4gICAgdGhpcy5vblRvdWNoU3RhcnQgPSB0aGlzLm9uVG91Y2hTdGFydC5iaW5kKHRoaXMpXG4gICAgdGhpcy5vblRvdWNoRW5kID0gdGhpcy5vblRvdWNoRW5kLmJpbmQodGhpcylcbiAgICB0aGlzLm9uVG91Y2hNb3ZlID0gdGhpcy5vblRvdWNoTW92ZS5iaW5kKHRoaXMpXG4gICAgdGhpcy5vblN0ZXAgPSB0aGlzLm9uU3RlcC5iaW5kKHRoaXMpXG4gICAgdGhpcy5vblNjcm9sbCA9IHRoaXMub25TY3JvbGwuYmluZCh0aGlzKVxuICAgIHRoaXMuc2V0RWxlbWVudCA9IHRoaXMuc2V0RWxlbWVudC5iaW5kKHRoaXMpXG4gICAgdGhpcy5fYW5pbWF0b3IgPSBuZXcgQW5pbWF0aW9uRnJhbWUoKVxuICAgIHRoaXMuX2FuaW1hdG9yLm9uKCdmcmFtZScsIHRoaXMuX2xvb3ApXG4gIH1cbiAgX2xvb3AoKSB7XG4gICAgY29uc3QgeyBsb2FkaW5nIH0gPSB0aGlzLnN0YXRlXG4gICAgaWYoIXRoaXMuX21vdW50ZWQgfHwgdGhpcy5fc3RlcCA8PSAwKSB7XG4gICAgICB0aGlzLl9sb2NrID0gZmFsc2VcbiAgICAgIHRoaXMuX2FuaW1hdG9yLnN0b3AoKVxuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGlmKGxvYWRpbmcpIHtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgbmV4dFN0ZXAgPSB0aGlzLl9zdGVwICogMC44XG4gICAgICB0aGlzLl9zdGVwID0gTWF0aC5mbG9vcihuZXh0U3RlcClcbiAgICAgIHRoaXMub25TdGVwKHRoaXMuX3N0ZXApXG4gICAgfVxuICB9XG4gIGFib3J0KCkge1xuICAgIHRoaXMuX2xvY2sgPSBmYWxzZVxuICAgIHRoaXMuX3N0ZXAgPSAwXG4gICAgdGhpcy5fdG91Y2ggPSBmYWxzZVxuICB9XG4gIG9uUHVsbChzdGVwLCBuZXh0KSB7XG4gICAgY29uc3QgeyBtYXgsIG9uUmVmcmVzaCB9ID0gdGhpcy5wcm9wc1xuICAgIGlmKCFvblJlZnJlc2ggfHwgc3RlcCAqIDAuNiA8IG1heCkge1xuICAgICAgdGhpcy5fbG9jayA9IGZhbHNlXG4gICAgICBuZXh0KClcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgIGxvYWRpbmc6dHJ1ZVxuICAgIH0pXG4gICAgb25SZWZyZXNoKF8gPT4ge1xuICAgICAgdGhpcy5fbG9jayA9IGZhbHNlXG4gICAgICB0aGlzLl9yZWZyZXNoZWQgPSB0cnVlXG4gICAgICBpZighdGhpcy5fbW91bnRlZCkgcmV0dXJuXG4gICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgbG9hZGluZzpmYWxzZVxuICAgICAgfSlcbiAgICAgIG5leHQoKVxuICAgIH0pXG4gICAgbmV4dCgpXG4gIH1cbiAgcHVsbChzdGVwKSB7XG4gICAgaWYodGhpcy5fbG9jaykgcmV0dXJuXG5cbiAgICB0aGlzLl9zY3JvbGxFbGVtZW50LnVwZGF0ZSgpXG4gICAgdGhpcy5fc3RlcCA9IHN0ZXBcbiAgICB0aGlzLm9uU3RlcCh0aGlzLl9zdGVwKVxuICAgIHRoaXMuX2xvY2sgPSB0cnVlXG4gICAgdGhpcy5vblB1bGwodGhpcy5fc3RlcCwgKCkgPT4ge1xuICAgICAgdGhpcy5fdG91Y2ggPSB0cnVlXG4gICAgICB0aGlzLl9hbmltYXRvci5zdGFydCgpXG4gICAgfSlcbiAgfVxuICBvblRvdWNoU3RhcnQoZXZ0KSB7XG4gICAgY29uc3QgeyBzdXBwb3J0RGVza3RvcCwgZGlzYWJsZWQgfSA9IHRoaXMucHJvcHNcbiAgICBpZihkaXNhYmxlZCkgcmV0dXJuXG4gICAgaWYodGhpcy5fbG9jaykgcmV0dXJuXG4gICAgdGhpcy5fcmVmcmVzaGVkID0gZmFsc2VcbiAgICB0aGlzLl9zY3JvbGxFbGVtZW50LnVwZGF0ZSgpXG4gICAgY29uc3QgZSA9IGV2dC5uYXRpdmVFdmVudCB8fCBldnRcbiAgICBpZighc3VwcG9ydERlc2t0b3AgJiYgIWUudG91Y2hlcykgcmV0dXJuXG4gICAgdGhpcy5feSA9IGUudG91Y2hlcyA/IGUudG91Y2hlc1swXS5wYWdlWSA6IGUucGFnZVlcbiAgICB0aGlzLl9zdGFydGVkID0gZmFsc2VcbiAgICB0aGlzLl9zdGVwID0gLXRoaXMuX3Njcm9sbEVsZW1lbnQuc2Nyb2xsVG9wXG4gICAgdGhpcy5fdG91Y2ggPSB0cnVlXG5cbiAgICBpZighZS50b3VjaGVzICYmIHRoaXMuX3Njcm9sbEVsZW1lbnQuc2Nyb2xsVG9wID09PSAwKSB7XG4gICAgICB0aGlzLl9zdGFydGVkID0gdHJ1ZVxuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuICB9XG4gIG9uVG91Y2hFbmQoZXZ0KSB7XG4gICAgY29uc3QgeyBzdXBwb3J0RGVza3RvcCwgZGlzYWJsZWQgfSA9IHRoaXMucHJvcHNcbiAgICBpZihkaXNhYmxlZCkgcmV0dXJuXG4gICAgaWYodGhpcy5fbG9jaykgcmV0dXJuXG4gICAgY29uc3QgZSA9IGV2dC5uYXRpdmVFdmVudCB8fCBldnRcbiAgICBpZighc3VwcG9ydERlc2t0b3AgJiYgIWUudG91Y2hlcykgcmV0dXJuXG4gICAgdGhpcy5fc3RhcnRlZCA9IGZhbHNlXG4gICAgdGhpcy5fbG9jayA9IHRydWVcbiAgICB0aGlzLm9uUHVsbCh0aGlzLl9zdGVwLCAoKSA9PiB7XG4gICAgICB0aGlzLl90b3VjaCA9IGZhbHNlXG4gICAgICB0aGlzLl9hbmltYXRvci5zdGFydCgpXG4gICAgfSlcbiAgICByZXR1cm4gdHJ1ZVxuICB9XG4gIG9uVG91Y2hNb3ZlKGV2dCkge1xuICAgIGNvbnN0IHsgc3VwcG9ydERlc2t0b3AsIGRpc2FibGVkIH0gPSB0aGlzLnByb3BzXG4gICAgaWYoZGlzYWJsZWQpIHJldHVyblxuICAgIGlmKHRoaXMuX2xvY2spIHJldHVyblxuICAgIGNvbnN0IGUgPSBldnQubmF0aXZlRXZlbnQgfHwgZXZ0XG4gICAgaWYoIXN1cHBvcnREZXNrdG9wICYmICFlLnRvdWNoZXMpIHJldHVyblxuICAgIGxldCB5ID0gZS50b3VjaGVzID8gZS50b3VjaGVzWzBdLnBhZ2VZIDogZS5wYWdlWVxuICAgIGxldCBzdGVwID0gdGhpcy5fdG91Y2ggPyB0aGlzLl9zdGVwICsgeSAtIHRoaXMuX3kgOiAwXG4gICAgaWYodGhpcy5fdG91Y2ggJiYgc3RlcCAhPT0gdGhpcy5fc3RlcCkge1xuICAgICAgdGhpcy5fc3RlcCA9IHN0ZXBcbiAgICAgIHRoaXMuX3kgPSB5XG4gICAgICBpZih0aGlzLl9zY3JvbGxFbGVtZW50LnNjcm9sbFRvcCA9PT0gMCkge1xuICAgICAgICB0aGlzLl9zdGFydGVkID0gdHJ1ZVxuICAgICAgfVxuICAgICAgaWYodGhpcy5fc3RhcnRlZCkge1xuICAgICAgICB0aGlzLm9uU3RlcChNYXRoLm1heCgwLCB0aGlzLl9zdGVwKSlcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmVmcmVzaCgpIHtcbiAgICBjb25zdCB7IG1heCB9ID0gdGhpcy5wcm9wc1xuICAgIHRoaXMucHVsbChtYXggLyAwLjYgKyAxKVxuICB9XG4gIG9uU3RlcChzdGVwKSB7XG4gICAgdGhpcy5zZXRTdGF0ZSh7IHN0ZXAgfSlcbiAgfVxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICB0aGlzLl9tb3VudGVkID0gdHJ1ZVxuICB9XG4gIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgIHRoaXMuX21vdW50ZWQgPSBmYWxzZVxuICB9XG4gIHNob3VsZENvbXBvbmVudFVwZGF0ZShuZXh0UHJvcHMsIG5leHRTdGF0ZSkge1xuICAgIGNvbnN0IGN1cnJlbnRQcm9wcyA9IHRoaXMucHJvcHNcbiAgICBjb25zdCBjdXJyZW50U3RhdGUgPSB0aGlzLnN0YXRlXG4gICAgcmV0dXJuIGZhbHNlXG4gICAgICB8fCBuZXh0U3RhdGUubG9hZGluZyAhPT0gY3VycmVudFN0YXRlLmxvYWRpbmdcbiAgICAgIHx8IG5leHRTdGF0ZS5zdGVwICE9PSBjdXJyZW50U3RhdGUuc3RlcFxuICAgICAgfHwgbmV4dFByb3BzLm9mZnNldCAhPT0gY3VycmVudFByb3BzLm9mZnNldFxuICAgICAgfHwgbmV4dFByb3BzLnpJbmRleCAhPT0gY3VycmVudFByb3BzLnpJbmRleFxuICAgICAgfHwgbmV4dFByb3BzLm1heCAhPT0gY3VycmVudFByb3BzLm1heFxuICAgICAgfHwgbmV4dFByb3BzLmNvbG9yICE9PSBjdXJyZW50UHJvcHMuY29sb3JcbiAgICAgIHx8IG5leHRQcm9wcy5zaXplICE9PSBjdXJyZW50UHJvcHMuc2l6ZVxuICB9XG4gIHNldEVsZW1lbnQoZWxlbWVudCkge1xuICAgIHRoaXMuX3Njcm9sbEVsZW1lbnQuZWxlbWVudCA9IGVsZW1lbnRcbiAgfVxuICBvblNjcm9sbChldnQpIHtcbiAgICB0aGlzLl9zY3JvbGxFbGVtZW50Lm9uU2Nyb2xsKGV2dClcbiAgfVxuICByZW5kZXJXYWl0aW5nKCkge1xuICAgIGNvbnN0IHsgd2FpdGluZ0NvbXBvbmVudCB9ID0gdGhpcy5wcm9wc1xuICAgIGlmKHdhaXRpbmdDb21wb25lbnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHR5cGVvZiB3YWl0aW5nQ29tcG9uZW50ID09PSAnZnVuY3Rpb24nID8gIHdhaXRpbmdDb21wb25lbnQodGhpcy5wcm9wcykgOiB3YWl0aW5nQ29tcG9uZW50XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnJlbmRlckRlZmF1bHRXYWl0aW5nKHRoaXMucHJvcHMpXG4gIH1cbiAgcmVuZGVyRGVmYXVsdFdhaXRpbmcocHJvcHMpIHtcbiAgICBjb25zdCB7IG1heCwgc2l6ZSwgY29sb3IgfSA9IHByb3BzXG4gICAgcmV0dXJuIChcbiAgICAgIDxEaXZcbiAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6J3doaXRlJyxcbiAgICAgICAgICB1c2VyU2VsZWN0Oidub25lJyxcbiAgICAgICAgICBib3hTaXppbmc6ICdib3JkZXItYm94JyxcbiAgICAgICAgICAuLi5zaGFkb3coMiksXG4gICAgICAgICAgd2lkdGg6IHNpemUsXG4gICAgICAgICAgaGVpZ2h0OiBzaXplLFxuICAgICAgICAgIGJvcmRlclJhZGl1czogc2l6ZSAvIDIsXG4gICAgICAgICAgcGFkZGluZzogKHNpemUgLSAzMCkgLyAyXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIDxSb3RhdGFibGU+XG4gICAgICAgICAgPFN2ZyB3aWR0aD17MzB9IGhlaWdodD17MzB9IHZpZXdCb3g9JzAgMCAzMCAzMCc+XG4gICAgICAgICAgICA8Q2lyY2xlXG4gICAgICAgICAgICAgIHN0eWxlPXt7IHRyYW5zZm9ybU9yaWdpbjogJ2NlbnRlcicgfX1cbiAgICAgICAgICAgICAgc3Ryb2tlPXtjb2xvcn1cbiAgICAgICAgICAgICAgc3Ryb2tlRGFzaGFycmF5PXtbTWF0aC5QSSAqIDhdfVxuICAgICAgICAgICAgICBzdHJva2VEYXNob2Zmc2V0PXswfVxuICAgICAgICAgICAgICBmaWxsPSdub25lJ1xuICAgICAgICAgICAgICBzdHJva2VXaWR0aD17Mn1cbiAgICAgICAgICAgICAgY3g9ezE1fVxuICAgICAgICAgICAgICBjeT17MTV9XG4gICAgICAgICAgICAgIHI9ezh9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvU3ZnPlxuICAgICAgICA8L1JvdGF0YWJsZT5cbiAgICAgIDwvRGl2PlxuICAgIClcbiAgfVxuICByZW5kZXJQdWxsZWQoKSB7XG4gICAgY29uc3QgeyBzdGVwIH0gPSB0aGlzLnN0YXRlXG4gICAgY29uc3QgeyBwdWxsZWRDb21wb25lbnQgfSA9IHRoaXMucHJvcHNcbiAgICBpZihwdWxsZWRDb21wb25lbnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHR5cGVvZiBwdWxsZWRDb21wb25lbnQgPT09ICdmdW5jdGlvbicgPyAgcHVsbGVkQ29tcG9uZW50KHRoaXMucHJvcHMsIHN0ZXApIDogcHVsbGVkQ29tcG9uZW50XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnJlbmRlckRlZmF1bHRQdWxsZWQodGhpcy5wcm9wcywgc3RlcClcbiAgfVxuICByZW5kZXJEZWZhdWx0UHVsbGVkKHByb3BzLCBzdGVwKSB7XG4gICAgcmV0dXJuIHRoaXMucmVuZGVyRGVmYXVsdFB1bGxpbmcocHJvcHMsIHN0ZXApXG4gIH1cbiAgcmVuZGVyUHVsbGluZygpIHtcbiAgICBjb25zdCB7IHN0ZXAgfSA9IHRoaXMuc3RhdGVcbiAgICBjb25zdCB7IHB1bGxpbmdDb21wb25lbnQgfSA9IHRoaXMucHJvcHNcbiAgICBpZihwdWxsaW5nQ29tcG9uZW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiB0eXBlb2YgcHVsbGluZ0NvbXBvbmVudCA9PT0gJ2Z1bmN0aW9uJyA/ICBwdWxsaW5nQ29tcG9uZW50KHRoaXMucHJvcHMsIHN0ZXApIDogcHVsbGluZ0NvbXBvbmVudFxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5yZW5kZXJEZWZhdWx0UHVsbGluZyh0aGlzLnByb3BzLCBzdGVwKVxuICB9XG4gIHJlbmRlckRlZmF1bHRQdWxsaW5nKHByb3BzLCBzdGVwKSB7XG4gICAgY29uc3QgeyBtYXgsIHNpemUsIGNvbG9yIH0gPSBwcm9wc1xuICAgIHJldHVybiAoXG4gICAgICA8RGl2XG4gICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgYmFja2dyb3VuZENvbG9yOid3aGl0ZScsXG4gICAgICAgICAgdXNlclNlbGVjdDonbm9uZScsXG4gICAgICAgICAgYm94U2l6aW5nOiAnYm9yZGVyLWJveCcsXG4gICAgICAgICAgLi4uc2hhZG93KDIpLFxuICAgICAgICAgIHdpZHRoOiBzaXplLFxuICAgICAgICAgIGhlaWdodDogc2l6ZSxcbiAgICAgICAgICBib3JkZXJSYWRpdXM6IHNpemUgLyAyLFxuICAgICAgICAgIHBhZGRpbmc6IChzaXplIC0gMzApIC8gMlxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICA8Um90YXRhYmxlIG9mZnNldD17c3RlcH0gZGlzYWJsZWQ+XG4gICAgICAgICAgPFN2ZyB3aWR0aD17MzB9IGhlaWdodD17MzB9IHZpZXdCb3g9JzAgMCAzMCAzMCc+XG4gICAgICAgICAgICA8UGF0aCBmaWxsPXtjb2xvcn0gZD0nTTEzLjMsMTVMNy4xLDguOUwwLjksMTUnIC8+XG4gICAgICAgICAgICA8Q2lyY2xlXG4gICAgICAgICAgICAgIHN0eWxlPXt7IHRyYW5zZm9ybU9yaWdpbjogJ2NlbnRlcicgfX1cbiAgICAgICAgICAgICAgc3Ryb2tlPXtjb2xvcn1cbiAgICAgICAgICAgICAgc3Ryb2tlRGFzaGFycmF5PXtbTWF0aC5QSSAqIDhdfVxuICAgICAgICAgICAgICBzdHJva2VEYXNob2Zmc2V0PXswfVxuICAgICAgICAgICAgICBmaWxsPSdub25lJ1xuICAgICAgICAgICAgICBzdHJva2VXaWR0aD17Mn1cbiAgICAgICAgICAgICAgY3g9ezE1fVxuICAgICAgICAgICAgICBjeT17MTV9XG4gICAgICAgICAgICAgIHI9ezh9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvU3ZnPlxuICAgICAgICA8L1JvdGF0YWJsZT5cbiAgICAgIDwvRGl2PlxuICAgIClcbiAgfVxuICByZW5kZXIoKSB7XG4gICAgY29uc3QgeyBvZmZzZXQsIHpJbmRleCwgbWF4LCBzaXplIH0gPSB0aGlzLnByb3BzXG4gICAgY29uc3QgeyB3aWR0aCwgc3RlcCwgbG9hZGluZyB9ID0gdGhpcy5zdGF0ZVxuICAgIGNvbnN0IHRvcCA9IE1hdGgubWluKHN0ZXAsIG1heCkgLSBzaXplIC0gNlxuICAgIGlmKHN0ZXAgPD0gMCkgcmV0dXJuIGZhbHNlXG4gICAgcmV0dXJuIChcbiAgICAgIDxEaXZcbiAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICAgICAgICB6SW5kZXg6IHpJbmRleCxcbiAgICAgICAgICB0b3A6IG9mZnNldCArIHRvcCxcbiAgICAgICAgICBsZWZ0OiAwLFxuICAgICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgICAgIHBvaW50ZXJFdmVudHM6ICdub25lJyxcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcidcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgeyAhdGhpcy5fbG9jayAmJiAhbG9hZGluZyAmJiAhdGhpcy5fcmVmcmVzaGVkICYmIHRoaXMucmVuZGVyUHVsbGluZygpIH1cbiAgICAgICAgeyAhdGhpcy5fbG9jayAmJiAhbG9hZGluZyAmJiAgdGhpcy5fcmVmcmVzaGVkICYmIHRoaXMucmVuZGVyUHVsbGVkKCkgfVxuICAgICAgICB7ICh0aGlzLl9sb2NrIHx8IGxvYWRpbmcgKSAmJiB0aGlzLnJlbmRlcldhaXRpbmcoKSB9XG4gICAgICA8L0Rpdj5cbiAgICApXG4gIH1cbn1cblxuUHVsbFJlZnJlc2gucHJvcFR5cGVzID0ge1xuICBvZmZzZXQ6IFByb3BUeXBlcy5udW1iZXIsXG4gIHNpemU6IFByb3BUeXBlcy5udW1iZXIsXG4gIG1heDogUHJvcFR5cGVzLm51bWJlcixcbiAgY29sb3I6IFByb3BUeXBlcy5zdHJpbmcsXG4gIHdhaXRpbmdDb21wb25lbnQ6IFByb3BUeXBlcy5vbmVPZlR5cGUoWyBQcm9wVHlwZXMuZnVuYywgUHJvcFR5cGVzLmJvb2wgXSksXG4gIHB1bGxpbmdDb21wb25lbnQ6IFByb3BUeXBlcy5vbmVPZlR5cGUoWyBQcm9wVHlwZXMuZnVuYywgUHJvcFR5cGVzLmJvb2wgXSksXG4gIHB1bGxlZENvbXBvbmVudDogUHJvcFR5cGVzLm9uZU9mVHlwZShbIFByb3BUeXBlcy5mdW5jLCBQcm9wVHlwZXMuYm9vbCBdKSxcbiAgc3VwcG9ydERlc2t0b3A6IFByb3BUeXBlcy5ib29sXG59XG5cblB1bGxSZWZyZXNoLmRlZmF1bHRQcm9wcyA9IHtcbiAgY29sb3I6ICcjMDAwMDAwJyxcbiAgb2Zmc2V0OiAwLFxuICBzaXplOiA0MCxcbiAgbWF4OiA2MCxcbiAgd2FpdGluZ0NvbXBvbmVudDogdW5kZWZpbmVkLFxuICBwdWxsaW5nQ29tcG9uZW50OiB1bmRlZmluZWQsXG4gIHB1bGxlZENvbXBvbmVudDogdW5kZWZpbmVkLFxuICBzdXBwb3J0RGVza3RvcDogZmFsc2Vcbn1cbiJdfQ== /***/ }), /* 12 */ diff --git a/package.json b/package.json index 1742623..5e26cf9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-pullrefresh", - "version": "1.6.8", + "version": "1.6.9", "description": "react component pull to refresh navigation", "main": "index.js", "scripts": { diff --git a/src/main.js b/src/main.js index 630edc4..76223e6 100644 --- a/src/main.js +++ b/src/main.js @@ -98,8 +98,6 @@ export default class PullRefresh extends Component { if(!e.touches && this._scrollElement.scrollTop === 0) { this._started = true - evt.preventDefault() - evt.stopPropagation() return false } }