     private var _isScaling = false;
     private var _gestureScaleAxis = GestureScaleAxis.Both;
     private var _closestDataSetToTouch: ChartDataSet!;
+    private var _panGestureReachedEdge: Bool = false;
+    private weak var _outerScrollView: UIScrollView?;
     
     /// the last highlighted object
     private var _lastHighlighted: ChartHighlight!;

        }
    }
    
    public func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWithGestureRecognizer otherGestureRecognizer: UIGestureRecognizer) -> Bool
    {
        if ((gestureRecognizer.isKindOfClass(UIPinchGestureRecognizer) && otherGestureRecognizer.isKindOfClass(UIPanGestureRecognizer)) || (gestureRecognizer.isKindOfClass(UIPanGestureRecognizer) && otherGestureRecognizer.isKindOfClass(UIPinchGestureRecognizer)))
        {
            return true;
        }
        
        return false;

            y: _decelerationVelocity.y * timeInterval
        );
        
        if (!performPanChange(translation: distance))
        {
            // We reached the edge, stop
            _decelerationVelocity.x = 0.0;
            _decelerationVelocity.y = 0.0;
        }
        
        _decelerationLastTime = currentTime;
        
