     })
      );
    }

  };

  Gestures.register({
    name: 'track',
    touchaction: 'none',
    deps: ['mousedown', 'touchmove', 'touchend'],

    mousedown: function(info, e) {
      var t = e.currentTarget;
      var self = this;
      var movefn = function movefn(e, up) {
        if (!info.tracking && !up) {
          // set up tap prevention
          Gestures.cancelNextClick();
        }
        // first move is 'start', subsequent moves are 'move', mouseup is 'end'
        var 