     
 }
 
-class DoubleRightArrowPathProvider : DefaultPathProvider, SymbolPathProvider {
-    
-    override func path(inRect rect: CGRect, forAnimationProgress animationProgress: Float) -> UIBezierPath {
-        var points = [CGPoint]()
-        
-        let arrowSpacing :CGFloat = 6
-        
-        points.append(CGPoint(x: CGRectGetMaxX(rect) - arrowSpacing, y: CGRectGetMidY(rect)))
-        points.append(CGPoint(x: CGRectGetMinX(rect), y: CGRectGetMidY(rect)))
-        points.append(CGPoint(x: CGRectGetMidX(rect) - arrowSpacing, y: CGRectGetMinY(rect)))
-        points.append(CGPoint(x: CGRectGetMidX(rect) - arrowSpacing, y: CGRectGetMaxY(rect)))
-        
-        points.append(CGPoint(x: CGRectGetMaxX(rect), y: CGRectGetMidY(rect)))
-        points.append(CGPoint(x: CGRectGetMidX(rect), y: CGRectGetMinY(rect)))
-        points.append(CGPoint(x: CGRectGetMidX(rect), y: CGRectGetMaxY(rect)))
-        
-        let path = defaultPath()
-        
-        path.moveToPoint(points[0])
-        path.addLineToPoint(points[1])
-        path.moveToPoint(points[0])
-        path.addLineToPoint(points[2])
-        path.moveToPoint(points[0])
-        path.addLineToPoint(points[3])
-        
-        path.moveToPoint(points[4])
-        path.addLineToPoint(points[5])
-        path.moveToPoint(points[4])
-        path.addLineToPoint(points[6])
-        
-        path.closePath()
-        
-        return path
-    }
-    
-}
-
 class UpArrowPathProvider : RightArrowPathProvider, SymbolPathProvider {
     
     override func path(inRect rect: CGRect, forAnimationProgress animationProgress: Float) -> UIBezierPath {

    
}

internal class NilPathProvider : SymbolPathProvider {
    func path(inRect rect: CGRect, forAnimationProgress animationProgress: Float) -> UIBezierPath {
        return UIBezierPath()


import UIKit

let DefaultSymbolAnimationStart :Float = 0.3
let DefaultSymbolAnimationEnd :Float = 0.6

protocol SymbolPathProvider {
    func path(inRect rect: CGRect, forAnimationProgress animationProgress: Float) -> UIBezierPath
}

class DefaultPathProvider {
    let animationHelper: RangeAnimationHelper = RangeAnimationHelper(animationStart: DefaultSymbolAnimationStart, animationEnd: DefaultSymbolAnimationEnd)
    let margin :CGFloat = 2
    
    func defaultPath() -> UIBezierPath {
