anchor.diff:  }
   
   // Tweens used by circular progress indicator
  -final RepeatingCurveTween _kStrokeHeadTween =
  -    new RepeatingCurveTween(
  +final _RepeatingCurveTween _kStrokeHeadTween =
  +    new _RepeatingCurveTween(
           curve:new Interval(0.0, 0.5, curve: Curves.fastOutSlowIn),
           repeats:5);
   
  -final RepeatingCurveTween _kStrokeTailTween =
  -    new RepeatingCurveTween(
  +final _RepeatingCurveTween _kStrokeTailTween =
  +    new _RepeatingCurveTween(
           curve:new Interval(0.5, 1.0, curve: Curves.fastOutSlowIn),
           repeats:5);
   
  -final StepTween _kStepTween = new StepTween(begin:0, end:5);
  -
  -final RepeatingCurveTween _kRotationTween =
  -    new RepeatingCurveTween(curve:Curves.linear, repeats:5);
  +final _StepTween _kStepTween = new _StepTween(begin:0, end:5);
  +
  +final _RepeatingCurveTween _kRotationTween =
  +    new _RepeatingCurveTween(curve:Curves.linear, repeats:5);
   
   class _CircularProgressIndicatorState extends State<CircularProgressIndicator> {
  -  Animation<double> _animation;
  -  AnimationController _controller;
  +  AnimationController _animationController;
   
     void initState() {
       super.initState();
  -    _controller = new AnimationController(
  +    _animationController = new AnimationController(
         duration: const Duration(milliseconds: 6666)
       )..repeat();
  -    _animation = new CurvedAnimation(parent: _controller, curve: Curves.linear);
     }
   
     Widget build(BuildContext context) {
  
positive.code:     Paint paint = new Paint()
        ..color = valueColor
        ..strokeWidth = _kCircularProgressIndicatorStrokeWidth
        ..style = ui.PaintingStyle.stroke;
  
      // Determinite
      if (value != null) {
        double angle = value.clamp(0.0, 1.0) * _kSweep;
        Path path = new Path()
          ..arcTo(Point.origin & size, _kStartAngle, angle, false);
        canvas.drawPath(path, paint);
  
      // Non-determinite
      } else {
        paint.strokeCap = ui.StrokeCap.square;
  
        double arcSweep = math.max(headValue * 3 / 2 * math.PI - tailValue * 3 / 2 * math.PI, _kEpsilon);
        Path path = new Path()
  
negative.code:       return config._buildIndicator(context, 0.0, 0.0, 0, 0.0);
  
      return new AnimatedBuilder(
        animation: _animationController,
        builder: (BuildContext context, Widget child) {
          return config._buildIndicator(context,
              _kStrokeHeadTween.evaluate(_animationController),
              _kStrokeTailTween.evaluate(_animationController),
              _kStepTween.evaluate(_animationController),
              _kRotationTween.evaluate(_animationController));
        }
      );
    }
  