// Path: core/src/main/java/com/kaichunlin/transition/TransitionConfig.java
// public class TransitionConfig {
//     static boolean _debug;
//     static boolean _printDebug;
// 
//     /**
//      * @param debug set debugging
//      */
//     public static void setDebug(boolean debug) {
//         _debug = debug;
//     }
// 
//     /**
//      * @return is debugging enabled
//      */
//     public static boolean isDebug() {
//         return _debug;
//     }
// 
//     /**
//      * @param printDebug set auto printing transition detail messages on transition/animation end
//      */
//     public static void setPrintDebug(boolean printDebug) {
//         _printDebug = printDebug;
//     }
// 
//     /**
//      * @return is auto printing transition detail messages on transition/animation end enabled
//      */
//     public static boolean isPrintDebug() {
//         return _printDebug;
//     }
// }


import android.support.annotation.CheckResult;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.view.View;
import com.kaichunlin.transition.TransitionConfig;
import com.nineoldandroids.animation.Animator;
import com.nineoldandroids.animation.AnimatorSet;
import com.nineoldandroids.animation.ValueAnimator;
import java.util.ArrayList;
        final int size = animators.size();
        Animator animator;
        for (int i = 0; i < size; i++) {
            animator = animators.get(i);
            if (!(animator instanceof ValueAnimator)) {
                throw new UnsupportedOperationException("Only ValueAnimator and its subclasses are supported: " + animator);
            }
        }
        mDuration = mAnimSet.getDuration();
        if (mAnimSet.getDuration() >= 0) {
            long duration = mAnimSet.getDuration();
            for (int i = 0; i < size; i++) {
                animators.get(i).setDuration(duration);
            }
        } else {
            for (int i = 0; i < size; i++) {
                animator = animators.get(i);
                long endTime = animator.getStartDelay() + animator.getDuration();
                if (mDuration < endTime) {
                    mDuration = endTime;
                }
            }
        }
        mTotalDuration = mStartDelay + mDuration;
        updateProgressWidth();
    }

    @Override
    public void start() {
        super.start();
// Path: core/src/main/java/com/kaichunlin/transition/TransitionConfig.java
// public class TransitionConfig {
//     static boolean _debug;
//     static boolean _printDebug;
// 
//     /**
//      * @param debug set debugging
//      */
//     public static void setDebug(boolean debug) {
//         _debug = debug;
//     }
// 
//     /**
//      * @return is debugging enabled
//      */
//     public static boolean isDebug() {
//         return _debug;
//     }
// 
//     /**
//      * @param printDebug set auto printing transition detail messages on transition/animation end
//      */
//     public static void setPrintDebug(boolean printDebug) {
//         _printDebug = printDebug;
//     }
// 
//     /**
//      * @return is auto printing transition detail messages on transition/animation end enabled
//      */
//     public static boolean isPrintDebug() {
//         return _printDebug;
//     }
// }


// Path: core/src/main/java/com/kaichunlin/transition/internal/DefaultTransitionController.java
import android.support.annotation.CheckResult;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.view.View;
import com.kaichunlin.transition.TransitionConfig;
import com.nineoldandroids.animation.Animator;
import com.nineoldandroids.animation.AnimatorSet;
import com.nineoldandroids.animation.ValueAnimator;
import java.util.ArrayList;

        final int size = animators.size();
        Animator animator;
        for (int i = 0; i < size; i++) {
            animator = animators.get(i);
            if (!(animator instanceof ValueAnimator)) {
                throw new UnsupportedOperationException("Only ValueAnimator and its subclasses are supported: " + animator);
            }
        }
        mDuration = mAnimSet.getDuration();
        if (mAnimSet.getDuration() >= 0) {
            long duration = mAnimSet.getDuration();
            for (int i = 0; i < size; i++) {
                animators.get(i).setDuration(duration);
            }
        } else {
            for (int i = 0; i < size; i++) {
                animator = animators.get(i);
                long endTime = animator.getStartDelay() + animator.getDuration();
                if (mDuration < endTime) {
                    mDuration = endTime;
                }
            }
        }
        mTotalDuration = mStartDelay + mDuration;
        updateProgressWidth();
    }

    @Override
    public void start() {
        super.start();
        if (TransitionConfig.isDebug()) {