Pen Settings

HTML

CSS

CSS Base

Vendor Prefixing

Add External Stylesheets/Pens

Any URLs added here will be added as <link>s in order, and before the CSS in the editor. You can use the CSS from another Pen by using its URL and the proper URL extension.

+ add another resource

JavaScript

Babel includes JSX processing.

Add External Scripts/Pens

Any URL's added here will be added as <script>s in order, and run before the JavaScript in the editor. You can use the URL of any other Pen and it will include the JavaScript from that Pen.

+ add another resource

Packages

Add Packages

Search for and use JavaScript packages from npm here. By selecting a package, an import statement will be added to the top of the JavaScript editor for this package.

Behavior

Auto Save

If active, Pens will autosave every 30 seconds after being saved once.

Auto-Updating Preview

If enabled, the preview panel updates automatically as you code. If disabled, use the "Run" button to update.

Format on Save

If enabled, your code will be formatted when you actively save your Pen. Note: your code becomes un-folded during formatting.

Editor Settings

Code Indentation

Want to change your Syntax Highlighting theme, Fonts and more?

Visit your global Editor Settings.

HTML

              
                <div id="sozai"></div>
              
            
!

CSS

              
                
              
            
!

JS

              
                //プラグイン本体
/*
 * Lazy Line Painter
 * SVG Stroke animation.
 *
 * https://github.com/camoconnell/lazy-line-painter
 * http://www.camoconnell.com
 *
 * Copyright 2013-2015 Cam O'Connell
 * All rights reserved.
 *
 * Licensed under the GNU license.
 *
 */


/*
 *
 * TERMS OF USE - EASING EQUATIONS
 *
 * Open source under the BSD License.
 *
 * Copyright © 2001 Robert Penner
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without modification,
 * are permitted provided that the following conditions are met:
 *
 * Redistributions of source code must retain the above copyright notice, this list of
 * conditions and the following disclaimer.
 * Redistributions in binary form must reproduce the above copyright notice, this list
 * of conditions and the following disclaimer in the documentation and/or other materials
 * provided with the distribution.
 *
 * Neither the name of the author nor the names of contributors may be used to endorse
 * or promote products derived from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
 *  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
 *  GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
 * OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 */
(function($) {

    'use strict';

    var dataKey = 'lazyLinePainter';
    var className = 'lazylinepainter';

    var methods = {

        /**
         * init
         * Responsible for caching user options,
         * creating svg element and setting dimensions.
         * @public
         * @param  {object} opts user defined options
         */
        init: function(userOpts) {

            return this.each(function() {

                var $this = $(this);
                var data = $this.data(dataKey);
                $this.addClass(className);

                // Continue if the plugin hasn't been initialized
                if (!data) {

                    var options = _getOptions($this, userOpts);
                    var totalDuration = options.delay + _getTotalDuration(options.paths);
                    var longestDuration = options.delay + _getLongestDuration(options.paths);

                    options.totalDuration = options.drawSequential ? totalDuration : longestDuration;
                    _setupPaths(options);

                    options.totalDuration *= options.speedMultiplier;

                    $this.append(options.svg);
                    $this.data(dataKey, options);
                    $this.lazylinepainter('resize');
                }
            });
        },


        /**
         * paint
         * Responsible for drawing path.
         * @public
         */
        paint: function() {

            return this.each(function() {

                // retrieve data object
                var $this = $(this);
                var data = $this.data(dataKey);

                $this.lazylinepainter('erase');

                // begin animation
                data.rAF = requestAnimationFrame(function(timestamp) {
                    _paint(timestamp, data);
                });

                // fire onStart callback
                if (data.onStart !== null) {
                    data.onStart();
                }
            });
        },


        /**
         * pause
         * Responsible for pausing path animation.
         * @public
         */
        pause: function() {

            return this.each(function() {

                var data = $(this).data(dataKey);

                if (!data.paused) {
                    data.paused = true;
                    cancelAnimationFrame(data.rAF);
                }
            });
        },


        /**
         * resume
         * Responsible for resuming path animation.
         * @public
         */
        resume: function() {

            return this.each(function() {

                var data = $(this).data(dataKey);

                if (data.paused) {
                    requestAnimationFrame(function(timestamp) {
                        adjustStartTime(timestamp, data);
                    });
                    data.paused = false;
                }
            });
        },


        /**
         * erase
         * Responsible for clearing path,
         * paint can still be called on the element after it has been erased.
         * @public
         */
        erase: function() {

            return this.each(function() {

                // retrieve data object
                var $this = $(this);
                var data = $this.data(dataKey);

                // reset / cancel rAF
                data.startTime = null;
                data.elapsedTime = null;
                cancelAnimationFrame(data.rAF);

                // reset callback
                data.onStrokeCompleteDone = false;

                // reset paused
                data.paused = false;

                // empty contents of svg
                for (var i = 0; i < data.paths.length; i++) {

                    var path = data.paths[i];
                    path.el.style.strokeDashoffset = path.length;
                    path.onStrokeCompleteDone = false;
                    path.onStrokeStartDone = false;
                }
            });
        },


        /**
         * destroy
         * Responsible for removing lazyline data and element from DOM
         * @public
         */
        destroy: function() {

            return this.each(function() {

                // retrieve / remove data object
                var $this = $(this);
                $this.removeData(dataKey);

                // empty container element
                $this.empty();

                // remove class
                $this.removeClass(className);
            });
        },


        /**
         * set
         * @public
         */
        set: function(progress) {

            return this.each(function() {

                var $this = $(this);
                var data = $this.data(dataKey);

                // set elapsedTime
                data.progress = progress;
                _updatePaths(data);
            });
        },


        /**
         * get
         * @public
         */
        get: function() {

            var $this = $(this);
            var data = $this.data(dataKey);
            return data;
        },


        /**
         * resize
         * @public
         */
        resize: function() {

            this.each(function() {

                var $this = $(this);
                var data = $this.data(dataKey);
                data.offset = $this.offset();

                for (var i = 0; i < data.paths.length; i++) {
                    _updatePosition(data, data.paths[i]);
                }
            });
        }
    };





    var _getOptions = function($this, userOpts) {

        var defaultOpts = {

            'strokeWidth': 2,
            'strokeDash': null,
            'strokeColor': '#000',
            'strokeOverColor': null,
            'strokeCap': 'round',
            'strokeJoin': 'round',
            'strokeOpacity': 1,

            'onComplete': null,
            'onUpdate': null,
            'onStart': null,
            'onStrokeStart': null,
            'onStrokeComplete': null,

            'delay': 0,
            'ease': null,
            'overrideKey': null,
            'drawSequential': true,
            'speedMultiplier': 1,
            'reverse': false,
            'paused': false,
            'progress': 0,

            'longestDuration': 0,
            'playhead': 0

        };

        var options = $.extend(defaultOpts, userOpts);

        // TODO - remove overrideKey, user should organise svgData before init
        // Set up path information
        // if overrideKey has been defined - use overrideKey as key within the svgData object.
        // else - use the elements id as key within the svgData object.
        var target = options.overrideKey ? options.overrideKey : $this.attr('id').replace('#', '');
        options.width = options.svgData[target].dimensions.width;
        options.height = options.svgData[target].dimensions.height;
        options.paths = $.extend(true, [], options.svgData[target].strokepath);
        options.svg = _getSVGElement('0 0 ' + options.width + ' ' + options.height);

        return options;
    };


    var _setupPaths = function(options) {

        var startTime = options.reverse ? options.totalDuration : 0;

        for (var i = 0; i < options.paths.length; i++) {

            var path = options.paths[i];

            path.progress = 0;
            path.index = i;
            path.el = _getPath(options, i);
            path.length = _getPathLength(path.el);
            path.delay = path.delay || 0;
            path.duration = path.duration;
            path.positions = _getPathPoints(path.el, path.length);
            path.ease = path.ease || null;

            path.el.style.strokeDasharray = _getStrokeDashArray(path, options, path.length);
            path.el.style.strokeDashoffset = path.length;
            path.el.style.display = 'block';
            path.el.getBoundingClientRect();

            path.onStrokeStart = path.onStrokeStart || null;
            path.onStrokeComplete = path.onStrokeComplete || null;
            path.onStrokeStartDone = false;
            path.onStrokeCompleteDone = false;
            path.onStrokeUpdate = path.onStrokeUpdate || null;

            var startProgress;
            var durationProgress = path.duration / options.totalDuration;

            if (options.reverse) {
                startTime -= path.duration;
                startProgress = startTime / options.totalDuration;
            } else {
                if (options.drawSequential) {
                    startTime = options.playhead + options.delay;
                } else {
                    startTime = path.delay + options.delay;
                }
                startProgress = startTime / options.totalDuration;
            }

            path.startTime = startTime;
            path.startProgress = startProgress;
            path.durationProgress = durationProgress;
            options.playhead += (path.duration + path.delay);
        }
    }


    /**
     * adjustStartTime
     * Responsible for managing time.
     * @private
     * @param  {number} timestamp identifies current time
     * @param  {object} data      contains options set on init() and paint()
     */
    var adjustStartTime = function(timestamp, data) {
        data.startTime = timestamp - data.elapsedTime;
        requestAnimationFrame(function(timestamp) {
            _paint(timestamp, data);
        });
    };


    /**
     * _paint
     * Responsible for animating paths.
     * Path incrementation is performed using requestAnimationFrame.
     * @private
     * @param  {number} timestamp   identifies current time
     * @param  {object} data        contains options set on init() and paint()
     */
    var _paint = function(timestamp, data) {

        // set startTime
        if (!data.startTime) {
            data.startTime = timestamp;
        }

        if (data.onUpdate !== null) {
            data.onUpdate();
        }

        // set elapsedTime
        data.elapsedTime = timestamp - data.startTime;
        data.progress = _getProgress(data.totalDuration, data.startTime, data.elapsedTime, data.ease);

        _updatePaths(data);

        if (data.progress < 1) {

            data.rAF = requestAnimationFrame(function(timestamp) {
                _paint(timestamp, data);
            });
        } else {

            if (data.onComplete !== null) {
                data.onComplete();
            }
        }
    };


    var _updatePaths = function(data) {

        for (var i = 0; i < data.paths.length; i++) {

            var path = data.paths[i];
            var elapsedProgress = _getElapsedProgress(data, path);
            path.progress = _getProgress(1, 0, elapsedProgress, path.ease);
            _setLine(data, path);
            _updatePosition(data, path);
            _updateStrokeCallbacks(data, path);
        }
    };


    var _getElapsedProgress = function(data, path) {

        var elapsedProgress;

        if (data.progress > path.startProgress && data.progress < (path.startProgress + path.durationProgress)) {
            elapsedProgress = (data.progress - path.startProgress) / path.durationProgress;
        } else if (data.progress >= (path.startProgress + path.durationProgress)) {
            elapsedProgress = 1;
        } else if (data.progress <= path.startProgress) {
            elapsedProgress = 0;
        }

        return elapsedProgress;
    };


    var _getProgress = function(duration, start, elapsed, ease) {

        var progress;

        if (elapsed > 0 && elapsed < duration) {
            if (ease) {
                progress = easing[ease](elapsed, 0, 1, duration);
            } else {
                progress = elapsed / duration;
            }
        } else if (elapsed >= duration) {
            progress = 1;
        } else if (elapsed <= start) {
            progress = 0;
        }

        return progress;
    };


    var _setLine = function(data, path) {

        var el = path.el;
        var length = path.progress * path.length;

        if (data.reverse || path.reverse) {
            el.style.strokeDashoffset = -path.length + length;
        } else {
            el.style.strokeDashoffset = path.length - length;
        }
    };


    var _updateStrokeCallbacks = function(data, path) {

        if (path.progress === 1) {

            // fire onStrokeComplete callback
            if (data.onStrokeComplete && !path.onStrokeCompleteDone) {
                data.onStrokeComplete(path);

                if (!path.onStrokeComplete) {
                    path.onStrokeCompleteDone = true;
                }
            }

            // fire onStrokeComplete callback of each line
            if (path.onStrokeComplete && !path.onStrokeCompleteDone) {
                path.onStrokeComplete(path);
                path.onStrokeCompleteDone = true;
            }

        } else if (path.progress > 0.00001) {

            // fire onStrokeStart callback
            if (data.onStrokeStart && !path.onStrokeStartDone) {
                data.onStrokeStart(path);

                if (!path.onStrokeStart) {
                    path.onStrokeStartDone = true;
                }
            }

            // fire onStrokeStart callback of each line
            if (path.onStrokeStart && !path.onStrokeStartDone) {
                path.onStrokeStart(path);
                path.onStrokeStartDone = true;
            }

            if (path.onStrokeUpdate) {
                path.onStrokeUpdate(path);
            }
        }
    };


    /**
     * _updatePosition
     * Responsible for updating the paths x / y position.
     * @private
     */
    var _updatePosition = function(data, path) {
        var index = Math.round((path.progress * (path.length - 1)));
        var position = path.positions[index];
        path.position = {
            x: data.offset.left + position.x,
            y: data.offset.top + position.y
        };
    };


    var _getTotalDuration = function(paths) {
        var totalDuration = 0;
        for (var i = 0; i < paths.length; i++) {
            var pathDelay = paths[i].delay || 0;
            totalDuration += (paths[i].duration + pathDelay);
        }
        return totalDuration;
    };


    var _getLongestDuration = function(paths) {
        var longestDuration = 0;
        for (var i = 0; i < paths.length; i++) {
            var pathDelay = paths[i].delay || 0;
            if ((paths[i].duration + pathDelay) > longestDuration) {
                longestDuration = (paths[i].duration + pathDelay);
            }
        }
        return longestDuration;
    };


    /**
     * _getPath
     * Responsible for creating a svg path element, and setting attributes on path.
     * @private
     * @param  {object} data contains options set on init
     * @param  {number} i    path index
     * @return {object} path svg path element
     */
    var _getPath = function(data, i) {
        var path = document.createElementNS('http://www.w3.org/2000/svg', 'path');
        var $path = $(path);
        data.svg.append($path);
        $path.attr(_getAttributes(data, data.paths[i]));
        return path;
    };


    /**
     * _getPathLength
     * Responsible for returning a svg path length.
     * @return {number} path length
     */
    var _getPathLength = function(el) {
        return Math.ceil(el.getTotalLength());
    };


    /**
     * _getPathPoints
     * Responsible for returning a svg path coords.
     * @return {array} path coords
     */
    var _getPathPoints = function(el, length) {
        var arr = [];
        for (var i = 0; i < length; i++) {
            var position = el.getPointAtLength(i);
            arr.push({
                x: position.x,
                y: position.y
            });
        };
        return arr;
    };


    /**
     * _getAttributes
     * Returns an object of path attributes,
     * selects either global options set on init or specific path option
     * @private
     * @param  {object} data  contains options set on init()
     * @param  {object} value contains specific path options
     * @return {object}       obj of path attributes
     */
    var _getAttributes = function(data, value) {
        return {
            'd': value.path,
            'stroke': !value.strokeColor ? data.strokeColor : value.strokeColor,
            'fill-opacity': 0,
            'stroke-opacity': !value.strokeOpacity ? data.strokeOpacity : value.strokeOpacity,
            'stroke-width': !value.strokeWidth ? data.strokeWidth : value.strokeWidth,
            'stroke-linecap': !value.strokeCap ? data.strokeCap : value.strokeCap,
            'stroke-linejoin': !value.strokeJoin ? data.strokeJoin : value.strokeJoin
        };
    };


    /**
     * _getSVGElement
     * Returns empty svg element with specified viewBox aspect ratio.
     * @private
     * @param  {string} viewBox
     * @return {obj}    jquery wrapped svg el
     */
    var _getSVGElement = function(viewBox) {
        var svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
        svg.setAttributeNS(null, 'viewBox', viewBox);
        svg.setAttribute('xmlns', 'http://www.w3.org/2000/svg');
        return $(svg);
    };


    /**
     * _getStrokeDashArray
     * @private
     */
    var _getStrokeDashArray = function(path, options, length) {
        var strokeDash;
        if (path.strokeDash) {
            strokeDash = _getStrokeDashString(path.strokeDash, length);
        } else if (options.strokeDash) {
            strokeDash = _getStrokeDashString(options.strokeDash, length);
        } else {
            strokeDash = length + ' ' + length;
        };
        return strokeDash;
    };


    /**
     * _getStrokeDashString
     * @private
     */
    var _getStrokeDashString = function(dashArray, length) {
        var strokeDashString = '';
        var strokeDashArray = dashArray.split(',');
        var strokeDashTotal = 0;
        var strokeDashNum;
        var strokeDashRemainder;
        for (var i = strokeDashArray.length - 1; i >= 0; i--) {
            strokeDashTotal += Number(strokeDashArray[i]);
        };
        strokeDashNum = Math.floor(length / strokeDashTotal);
        strokeDashRemainder = length - (strokeDashNum * strokeDashTotal);
        for (var i = strokeDashNum - 1; i >= 0; i--) {
            strokeDashString += (dashArray + ', ');
        };
        var preArray = strokeDashString + strokeDashRemainder + ', ' + length;
        return preArray.split(',').join('px,') + 'px';
    };


    /**
     * lazylinepainter
     * Extends jQuery's prototype object.
     * @public
     * @param  {string}     method  Expects lazylinepainter method name as string.
     * @return {function}           Returns lazylinepainter method.
     */
    $.fn.lazylinepainter = function(method) {
        if (methods[method]) {
            return methods[method].apply(this, Array.prototype.slice.call(arguments, 1));
        } else if (typeof method === 'object' || !method) {
            return methods.init.apply(this, arguments);
        } else {
            console.log('opps - issue finding method');
        }
    };


    /* penner easing */
    var easing = {

        easeLinear: function(t, b, c, d) {
            return c * t / d + b;
        },

        easeInQuad: function(t, b, c, d) {
            return c * (t /= d) * t + b;
        },

        easeOutQuad: function(t, b, c, d) {
            return -c * (t /= d) * (t - 2) + b;
        },

        easeInOutQuad: function(t, b, c, d) {
            if ((t /= d / 2) < 1) return c / 2 * t * t + b;
            return -c / 2 * ((--t) * (t - 2) - 1) + b;
        },

        easeInCubic: function(t, b, c, d) {
            return c * (t /= d) * t * t + b;
        },

        easeOutCubic: function(t, b, c, d) {
            return c * ((t = t / d - 1) * t * t + 1) + b;
        },

        easeInOutCubic: function(t, b, c, d) {
            if ((t /= d / 2) < 1) return c / 2 * t * t * t + b;
            return c / 2 * ((t -= 2) * t * t + 2) + b;
        },

        easeInQuart: function(t, b, c, d) {
            return c * (t /= d) * t * t * t + b;
        },

        easeOutQuart: function(t, b, c, d) {
            return -c * ((t = t / d - 1) * t * t * t - 1) + b;
        },

        easeInOutQuart: function(t, b, c, d) {
            if ((t /= d / 2) < 1) return c / 2 * t * t * t * t + b;
            return -c / 2 * ((t -= 2) * t * t * t - 2) + b;
        },

        easeInQuint: function(t, b, c, d) {
            return c * (t /= d) * t * t * t * t + b;
        },

        easeOutQuint: function(t, b, c, d) {
            return c * ((t = t / d - 1) * t * t * t * t + 1) + b;
        },

        easeInOutQuint: function(t, b, c, d) {
            if ((t /= d / 2) < 1) return c / 2 * t * t * t * t * t + b;
            return c / 2 * ((t -= 2) * t * t * t * t + 2) + b;
        },

        easeInSine: function(t, b, c, d) {
            return -c * Math.cos(t / d * (Math.PI / 2)) + c + b;
        },

        easeOutSine: function(t, b, c, d) {
            return c * Math.sin(t / d * (Math.PI / 2)) + b;
        },

        easeInOutSine: function(t, b, c, d) {
            return -c / 2 * (Math.cos(Math.PI * t / d) - 1) + b;
        },

        easeInExpo: function(t, b, c, d) {
            return (t == 0) ? b : c * Math.pow(2, 10 * (t / d - 1)) + b;
        },

        easeOutExpo: function(t, b, c, d) {
            return (t == d) ? b + c : c * (-Math.pow(2, -10 * t / d) + 1) + b;
        },

        easeInOutExpo: function(t, b, c, d) {
            if (t == 0) return b;
            if (t == d) return b + c;
            if ((t /= d / 2) < 1) return c / 2 * Math.pow(2, 10 * (t - 1)) + b;
            return c / 2 * (-Math.pow(2, -10 * --t) + 2) + b;
        },

        easeInCirc: function(t, b, c, d) {
            return -c * (Math.sqrt(1 - (t /= d) * t) - 1) + b;
        },

        easeOutCirc: function(t, b, c, d) {
            return c * Math.sqrt(1 - (t = t / d - 1) * t) + b;
        },

        easeInOutCirc: function(t, b, c, d) {
            if ((t /= d / 2) < 1) return -c / 2 * (Math.sqrt(1 - t * t) - 1) + b;
            return c / 2 * (Math.sqrt(1 - (t -= 2) * t) + 1) + b;
        },

        easeInElastic: function(t, b, c, d) {
            var s = 1.70158;
            var p = 0;
            var a = c;
            if (t == 0) return b;
            if ((t /= d) == 1) return b + c;
            if (!p) p = d * .3;
            if (a < Math.abs(c)) {
                a = c;
                var s = p / 4;
            } else var s = p / (2 * Math.PI) * Math.asin(c / a);
            return -(a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t * d - s) * (2 * Math.PI) / p)) + b;
        },

        easeOutElastic: function(t, b, c, d) {
            var s = 1.70158;
            var p = 0;
            var a = c;
            if (t == 0) return b;
            if ((t /= d) == 1) return b + c;
            if (!p) p = d * .3;
            if (a < Math.abs(c)) {
                a = c;
                var s = p / 4;
            } else var s = p / (2 * Math.PI) * Math.asin(c / a);
            return a * Math.pow(2, -10 * t) * Math.sin((t * d - s) * (2 * Math.PI) / p) + c + b;
        },

        easeInOutElastic: function(t, b, c, d) {
            var s = 1.70158;
            var p = 0;
            var a = c;
            if (t == 0) return b;
            if ((t /= d / 2) == 2) return b + c;
            if (!p) p = d * (.3 * 1.5);
            if (a < Math.abs(c)) {
                a = c;
                var s = p / 4;
            } else var s = p / (2 * Math.PI) * Math.asin(c / a);
            if (t < 1) return -.5 * (a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t * d - s) * (2 * Math.PI) / p)) + b;
            return a * Math.pow(2, -10 * (t -= 1)) * Math.sin((t * d - s) * (2 * Math.PI) / p) * .5 + c + b;
        },

        easeInBack: function(t, b, c, d, s) {
            if (s == undefined) s = 1.70158;
            return c * (t /= d) * t * ((s + 1) * t - s) + b;
        },

        easeOutBack: function(t, b, c, d, s) {
            if (s == undefined) s = 1.70158;
            return c * ((t = t / d - 1) * t * ((s + 1) * t + s) + 1) + b;
        },

        easeInOutBack: function(t, b, c, d, s) {
            if (s == undefined) s = 1.70158;
            if ((t /= d / 2) < 1) return c / 2 * (t * t * (((s *= (1.525)) + 1) * t - s)) + b;
            return c / 2 * ((t -= 2) * t * (((s *= (1.525)) + 1) * t + s) + 2) + b;
        },

        easeInBounce: function(t, b, c, d) {
            return c - easing.easeOutBounce(d - t, 0, c, d) + b;
        },

        easeOutBounce: function(t, b, c, d) {
            if ((t /= d) < (1 / 2.75)) {
                return c * (7.5625 * t * t) + b;
            } else if (t < (2 / 2.75)) {
                return c * (7.5625 * (t -= (1.5 / 2.75)) * t + .75) + b;
            } else if (t < (2.5 / 2.75)) {
                return c * (7.5625 * (t -= (2.25 / 2.75)) * t + .9375) + b;
            } else {
                return c * (7.5625 * (t -= (2.625 / 2.75)) * t + .984375) + b;
            }
        },

        easeInOutBounce: function(t, b, c, d) {
            if (t < d / 2) return easing.easeInBounce(t * 2, 0, c, d) * .5 + b;
            return easing.easeOutBounce(t * 2 - d, 0, c, d) * .5 + c * .5 + b;
        }
    }

})(jQuery);

/*
 * Lazy Line Painter - Path Object
 * Generated using 'SVG to Lazy Line Converter'
 *
 * http://lazylinepainter.info
 * Copyright 2013, Cam O'Connell
 *
 */

//記述ここから
var pathObj = {
    "sozai": {
        "strokepath": [
            {
                "path": "M357.2,374.2l28.5,57.5l0.1,0.1c0,0,2.7,4.4,6.6,9.9c3.9,5.4,9.1,11.9,14.3,16c2.6,2,7.9,5.9,14.5,10.7   c10,7.1,23.1,16.1,34.2,23.7c5.6,3.8,10.7,7.2,14.7,9.8c2,1.3,3.8,2.4,5.2,3.3c1.4,0.9,2.5,1.5,3.2,1.8c0.7,0.3,1.5,0.6,2.5,0.8   c2.9,0.6,7.3,1,12.5,1c7.1,0,15.5-0.7,23.5-2.5c4-0.9,7.8-2,11.2-3.5c3.4-1.5,6.5-3.3,9-5.6c1.8-1.6,3.9-4,6.3-6.9   c8.3-10.2,19.9-27.7,29.9-46.1c5-9.2,9.6-18.7,13.2-27.6c3.6-8.9,6.2-17.3,7.1-24.5c0.1-0.8-0.5-1.6-1.3-1.7   c-0.8-0.1-1.6,0.5-1.7,1.3c-1,7.7-4.1,17.4-8.5,27.6c-6.5,15.3-15.8,32-24.8,46c-4.5,7-8.8,13.3-12.7,18.4   c-3.9,5.1-7.2,9.1-9.7,11.3c-2.1,1.9-4.9,3.6-8.1,5c-9.7,4.2-23.2,5.8-33.5,5.7c-3.4,0-6.4-0.2-8.8-0.4c-1.2-0.1-2.2-0.3-3.1-0.5   c-0.8-0.2-1.5-0.4-1.9-0.6c-0.3-0.1-0.9-0.5-1.6-0.9c-2.8-1.6-8-5-14.3-9.2c-9.5-6.3-21.6-14.6-32.1-22   c-5.3-3.7-10.2-7.2-14.2-10.1c-4-2.9-7.2-5.2-8.9-6.6c-4.8-3.8-9.9-10.1-13.7-15.5c-1.9-2.7-3.5-5.1-4.7-6.8   c-0.6-0.9-1-1.6-1.3-2.1c-0.2-0.2-0.3-0.4-0.3-0.6c-0.1-0.1-0.1-0.2-0.1-0.2L387,431l1.3-0.7l-28.5-57.5c-0.4-0.7-1.3-1-2-0.7   C357.1,372.5,356.8,373.4,357.2,374.2L357.2,374.2z",
                "duration": 1800
            },
            {
                "path": "M485.7,459.8c0,0,0.5,0,1.4,0c4.6,0,19.1-0.4,31.5-5.1c0.5-0.2,0.8-0.8,0.6-1.3c-0.2-0.5-0.8-0.8-1.3-0.6   c-12,4.6-26.4,5-30.8,5c-0.4,0-0.8,0-1,0s-0.3,0-0.3,0c-0.6,0-1,0.4-1,1C484.7,459.3,485.2,459.7,485.7,459.8L485.7,459.8z",
                "duration": 600
            },
            {
                "path": "M580.1,424.4c0,0,0,1.3,0,3.7c0.1,7.2,0.2,24.4,0.2,45.4c0,22.2-0.2,48.8-0.7,72.8c-0.6,24-1.5,45.4-3.2,57.1   c-0.1,0.8,0.5,1.6,1.3,1.7c0.8,0.1,1.6-0.5,1.7-1.3c1.7-12,2.6-33.4,3.2-57.4c0.6-24,0.7-50.6,0.7-72.9c0-28.1-0.3-49.2-0.3-49.2   c0-0.8-0.7-1.5-1.5-1.5C580.7,422.9,580.1,423.6,580.1,424.4L580.1,424.4z",
                "duration": 600
            },
            {
                "path": "M521.3,134.3L521.3,134.3c0.5,0.7,17.1,26.4,17.1,62.4c0,19-4.6,40.8-18.6,63.5l1.3,0.8l-0.4-1.4l-56,16l0.4,1.4l1.3,0.8   c0.1-0.2,11.9-19.1,12.7-54.1c0-0.8-0.6-1.4-1.3-1.5s-1.5,0.4-1.6,1.2c0,0,0,0.1-0.1,0.4c-0.4,2.1-2.6,11.8-6.4,22.7   c-1.9,5.4-4.2,11.2-7,16.3c-2.7,5.2-5.8,9.8-9.2,13.1l1,1.1l-0.6-1.4c0,0-0.3,0.1-0.8,0.3c-4.1,1.6-22.5,9-42.5,16   c-10,3.5-20.3,6.9-29.4,9.5c-4.5,1.3-8.7,2.4-12.4,3.1c-3.7,0.8-6.8,1.2-9.2,1.3c-0.8,0-1.5,0.7-1.5,1.5c0,0.8,0.7,1.5,1.5,1.5   c2.8-0.1,6.4-0.6,10.5-1.5c14.3-3.1,35.5-10.4,53.1-16.8c17.6-6.5,31.7-12.2,31.7-12.2c0.2-0.1,0.3-0.2,0.5-0.3   c4-3.9,7.4-9.1,10.4-14.9c4.4-8.7,7.7-18.4,9.9-26.1c2.2-7.6,3.3-13.1,3.3-13.1l-1.5-0.3l-1.5,0c-0.4,17.2-3.5,30.4-6.5,39.2   c-1.5,4.4-2.9,7.8-4,10c-0.5,1.1-1,2-1.3,2.5c-0.2,0.3-0.3,0.5-0.4,0.6l-0.1,0.1l0,0l0,0c-0.3,0.5-0.3,1.2,0.1,1.7   c0.4,0.5,1,0.7,1.6,0.5l56-16c0.4-0.1,0.7-0.3,0.9-0.7c14.4-23.2,19.1-45.6,19.1-65.1c0-37.5-17.5-63.9-17.5-64   c-0.5-0.7-1.4-0.9-2.1-0.4C521.1,132.7,520.9,133.6,521.3,134.3L521.3,134.3z",
                "duration": 1800
            },
            {
                "path": "M378.2,212.6c0,0.1-30.3,100.9-30.7,227.8c0,2.4,0,4.7,0,7.1c0,120.6,9.9,206.8,30.7,263c0.3,0.8,1.2,1.2,1.9,0.9   c0.8-0.3,1.2-1.2,0.9-1.9c-20.6-55.5-30.5-141.5-30.5-261.9c0-2.3,0-4.7,0-7.1c0.2-63.2,7.9-119.9,15.5-160.9   c3.8-20.5,7.6-37,10.4-48.4c1.4-5.7,2.6-10.1,3.4-13.1c0.4-1.5,0.7-2.6,1-3.4c0.1-0.4,0.2-0.7,0.3-0.9c0.1-0.2,0.1-0.3,0.1-0.3   c0.2-0.8-0.2-1.6-1-1.9C379.3,211.3,378.5,211.8,378.2,212.6L378.2,212.6z",
                "duration": 800
            },
            {
                "path": "M401.4,188.6c0,0-10.5,23.5-21.1,50.5c-5.3,13.5-10.7,27.8-14.8,40.5c-2.1,6.3-3.8,12.3-5.1,17.5   c-1.3,5.2-2.1,9.7-2.3,13.3c0,0.6,0.4,1,1,1c0.6,0,1-0.4,1-1c0.2-3.3,0.9-7.7,2.2-12.9c4.4-18.1,14.6-45.1,23.7-67.7   c4.6-11.3,8.8-21.4,12-28.7c1.6-3.7,2.9-6.6,3.7-8.6c0.9-2,1.4-3.2,1.4-3.2c0.2-0.5,0-1.1-0.5-1.3   C402.2,187.9,401.6,188.1,401.4,188.6L401.4,188.6z",
                "duration": 800
            },
            {
                "path": "M532.9,160.5c0,0,0.1,0.1,0.2,0.3c1.6,2.9,15.3,27.7,28.6,62.3c13.3,34.6,26.1,78.9,26.1,120.5c0,23.1-4,45.4-14,64.7   c-0.3,0.6-0.2,1.4,0.4,1.9c0.6,0.4,1.4,0.4,1.9,0c0.1-0.1,9.6-8.4,19.2-24.5c9.5-16.1,19.1-40,19.1-71.1c0-25.8-6.5-56.4-24.9-91.7   c-0.4-0.7-1.3-1-2-0.6c-0.7,0.4-1,1.3-0.6,2c18.1,34.9,24.5,65,24.5,90.3c0,30.5-9.3,53.9-18.7,69.6c-4.7,7.9-9.3,13.8-12.8,17.8   c-1.7,2-3.2,3.5-4.2,4.5c-0.5,0.5-0.9,0.9-1.2,1.1c-0.1,0.1-0.2,0.2-0.3,0.3l-0.1,0.1l0,0l1,1.1l1.3,0.7   c10.3-19.9,14.3-42.6,14.3-66.1c0-43.5-13.8-89.6-27.6-124.9c-13.8-35.2-27.6-59.6-27.6-59.7c-0.4-0.7-1.3-1-2-0.6   C532.7,158.9,532.5,159.8,532.9,160.5L532.9,160.5z",
                "duration": 1300
            },
            {
                "path": "M538.7,189.4c0,0,0.2,0.4,0.5,1c2.4,5.1,13.4,28.4,24.5,55.7c11.1,27.4,22.3,58.9,25.2,80.2c0.1,0.5,0.6,0.9,1.1,0.9   c0.5-0.1,0.9-0.6,0.9-1.1c-1.5-11.6-5.5-26-10.5-41c-15-45.2-39.9-96.6-39.9-96.6c-0.2-0.5-0.8-0.7-1.3-0.5   C538.7,188.3,538.5,188.9,538.7,189.4L538.7,189.4z",
                "duration": 600
            },
            {
                "path": "M424.9,470.4c0,0,0,0.3,0.1,0.9c0.3,4.3,1.6,23.3,1.6,49.8c0,38.1-2.7,91.8-14.9,139.4c-6.1,23.8-14.6,46-26.2,64   c-11.6,18-26.4,31.7-45,38.6c-0.8,0.3-1.2,1.1-0.9,1.9c0.3,0.8,1.1,1.2,1.9,0.9c19.4-7.2,34.7-21.4,46.5-39.7   c17.8-27.5,28.1-64.4,34.1-101.6c5.9-37.2,7.5-74.7,7.5-103.4c0-30.3-1.7-50.9-1.7-50.9c-0.1-0.8-0.8-1.4-1.6-1.4   C425.5,468.8,424.8,469.5,424.9,470.4L424.9,470.4z",
                "duration": 800
            },
            {
                "path": "M414.6,645.3c0.1,0,9.5,6.4,25.5,12.7c15.9,6.3,38.4,12.7,64.4,12.7c28.5,0,61.2-7.6,94.3-31.2c0.7-0.5,0.8-1.4,0.4-2.1   c-0.5-0.7-1.4-0.8-2.1-0.4c-32.5,23.2-64.6,30.6-92.5,30.6c-25.5,0-47.6-6.2-63.3-12.5c-7.8-3.1-14.1-6.2-18.4-8.6   c-2.1-1.2-3.8-2.1-4.9-2.8c-0.6-0.3-1-0.6-1.2-0.8c-0.1-0.1-0.2-0.2-0.3-0.2l-0.1,0l0,0c-0.7-0.5-1.6-0.3-2.1,0.4   C413.7,643.9,413.9,644.8,414.6,645.3L414.6,645.3z",
                "duration": 800
            },
            {
                "path": "M442.4,341.8L442.4,341.8c-0.4,0.4-2.2,1.8-4.3,3.5c-2.1,1.7-4.7,3.5-6.7,4.6c-0.4,0.2-1,0.5-1.7,0.7   c-1.2,0.4-2.8,0.8-4.5,1.1c-2.5,0.5-5.2,0.8-7.2,1c-1,0.1-1.9,0.2-2.5,0.2c-0.3,0-0.5,0-0.7,0.1s-0.2,0-0.2,0l0.1,2l0.3-2   l-28.3-4.3c-1.1-0.2-2.1,0.6-2.3,1.7c-0.2,1.1,0.6,2.1,1.7,2.3l28.3,4.3c0.1,0,0.3,0,0.4,0c0,0,3.4-0.2,7.3-0.8   c2-0.3,4.1-0.6,6-1.1c1-0.2,1.9-0.5,2.8-0.7c0.9-0.3,1.6-0.6,2.3-1c2.5-1.4,5.3-3.5,7.6-5.3c2.3-1.8,4-3.3,4-3.3   c0.8-0.7,0.9-2,0.2-2.8C444.5,341.2,443.2,341.1,442.4,341.8L442.4,341.8z",
                "duration": 1000
            },
            {
                "path": "M410,459.3c0,0,0.1,0.9,0.3,2.5c1.2,11.6,6.2,61.4,6.2,114.4c0,39.3-2.7,80.4-11.6,108.8c-0.2,0.5,0.1,1.1,0.7,1.3   c0.5,0.2,1.1-0.1,1.3-0.7c9-28.8,11.7-70,11.7-109.4c0-60.7-6.5-117.1-6.5-117.1c-0.1-0.5-0.6-0.9-1.1-0.9   C410.4,458.3,410,458.8,410,459.3L410,459.3z",
                "duration": 600
            },
            {
                "path": "M311.5,576.1l-89.1,33.5l-0.2,0.1c0,0-4.3,2.5-9.3,6.4c-2.5,1.9-5.1,4.1-7.5,6.5c-2.4,2.4-4.5,5-5.8,7.7   c-0.6,1.3-2.2,4.7-4.6,9.7c-16.4,35.2-68.4,149.3-68.4,149.3c-0.2,0.5-0.2,1,0.1,1.5c0,0,12.8,19.3,29.2,40.7   c8.2,10.7,17.3,22,26.2,31.6c8.9,9.7,17.6,17.7,25.1,22.1c14.5,8.5,29.4,18.1,41.8,27.1c6.2,4.5,11.8,8.8,16.4,12.8   c4.6,3.9,8.1,7.5,10.3,10.3c0.5,0.7,1.4,0.8,2.1,0.3c0.7-0.5,0.8-1.4,0.3-2.1c-2.4-3.2-6-6.8-10.7-10.8   c-14-12.1-36.8-27.4-58.7-40.2c-7-4.1-15.6-12-24.4-21.6c-13.2-14.3-27-32.3-37.5-46.7c-5.2-7.2-9.6-13.5-12.7-18   c-1.5-2.3-2.8-4.1-3.6-5.3c-0.4-0.6-0.7-1.1-1-1.4c-0.2-0.3-0.3-0.5-0.3-0.5L128,790l1.4,0.6c0,0,0.3-0.6,0.8-1.7   c3.7-8.2,20.6-45.2,37.2-81.3c8.3-18.1,16.4-35.9,22.9-49.8c3.2-7,6-12.9,8.1-17.4c2.1-4.5,3.6-7.6,4.1-8.7c1.1-2.3,3-4.7,5.3-7   c3.3-3.4,7.4-6.5,10.6-8.8c1.6-1.1,3-2,4-2.7c0.5-0.3,0.9-0.6,1.2-0.7c0.1-0.1,0.2-0.1,0.3-0.2l0.1-0.1L223,611l0.5,1.4l89.1-33.5   c0.8-0.3,1.2-1.2,0.9-1.9C313.2,576.2,312.3,575.8,311.5,576.1L311.5,576.1z",
                "duration": 1800
            },
            {
                "path": "M684.2,578.9c0,0,0.4,0.1,1.3,0.3c6.3,1.4,34.7,8,62.6,16.1c14,4.1,27.9,8.5,38.8,13c5.5,2.2,10.2,4.4,13.8,6.5   c1.8,1,3.3,2.1,4.5,3c1.2,1,2,1.9,2.5,2.6c1,1.7,3,5.3,5.7,10.2c9.3,17.2,26.9,50.8,42.1,80.1c7.6,14.7,14.6,28.2,19.8,38.1   c2.6,5,4.7,9,6.1,11.8c1.4,2.8,2.3,4.4,2.3,4.4l1.3-0.7l-1.2-1c0,0-0.3,0.3-0.8,1c-8.3,9.9-76.9,91-146.1,143.3   c-0.7,0.5-0.8,1.4-0.3,2.1c0.5,0.7,1.4,0.8,2.1,0.3c37.1-28.1,74-64.3,101.5-93.5c27.6-29.2,45.9-51.3,45.9-51.4   c0.4-0.5,0.5-1.1,0.2-1.6c0,0-16.8-32.7-34.8-67.1c-9-17.2-18.2-34.9-25.7-49.1c-3.8-7.1-7.1-13.4-9.8-18.3   c-2.7-4.9-4.7-8.5-5.8-10.3c-0.8-1.3-2-2.4-3.4-3.6c-2.8-2.2-6.7-4.4-11.5-6.6c-8.4-3.9-19.5-7.9-31.4-11.6c-35.8-11.3-79-21-79-21   c-0.8-0.2-1.6,0.3-1.8,1.1C682.9,578,683.4,578.8,684.2,578.9L684.2,578.9z",
                "duration": 1400
            },
            {
                "path": "M276.7,913.8c0,0,0-0.3,0-0.9c0-4.2-0.5-23-9.3-47c-8.8-24-25.8-53.1-58.8-77.7c-0.4-0.3-1.1-0.2-1.4,0.2   c-0.1,0.2-1.3,1.9-1.3,5.7c0,5.1,2.1,14,11.3,28.4c8.1,12.6,16.9,20.7,24.3,27c3.7,3.1,7,5.8,9.7,8.4c2.7,2.6,4.7,5,5.9,7.5   c0.2,0.5,0.8,0.7,1.3,0.5c0.5-0.2,0.7-0.8,0.5-1.3c-1.3-2.9-3.6-5.5-6.3-8.2c-8.3-7.9-21.8-16.4-33.7-35   c-9.1-14.2-10.9-22.8-10.9-27.3c0-1.7,0.3-2.9,0.5-3.6c0.1-0.4,0.2-0.6,0.3-0.8l0.1-0.1l0,0l-0.4-0.2l0.3,0.3l0,0l-0.4-0.2l0.3,0.3   L208,789l-0.6,0.8c32.6,24.4,49.4,53.1,58.1,76.8c8.7,23.7,9.2,42.3,9.2,46.3c0,0.3,0,0.5,0,0.6s0,0.2,0,0.2c0,0.6,0.4,1,1,1   C276.2,914.8,276.6,914.3,276.7,913.8L276.7,913.8z",
                "duration": 1300
            },
            {
                "path": "M273.5,770.9c0,0-1.1,27.8-1.1,65.6c0,25.2,0.5,55,2.1,84c1.6,29,4.4,57.3,9,79.7c5.3,26,7.1,34.7,7.1,34.7   c0.1,0.4,0.3,0.7,0.6,1c0.3,0.2,0.7,0.3,1.1,0.2c0.4-0.1,0.7-0.3,1-0.6c0.2-0.3,0.3-0.7,0.2-1.1l-7.1-34.7c-0.2-0.8-1-1.3-1.8-1.2   c-0.8,0.2-1.3,1-1.2,1.8c0,0,0.4,2.2,1.1,5.4c2,9.7,6,29.2,6,29.2c0.1,0.4,0.3,0.7,0.6,1c0.3,0.2,0.7,0.3,1.1,0.2   c0.4-0.1,0.7-0.3,1-0.6c0.2-0.3,0.3-0.7,0.2-1.1c0,0-1.8-8.7-7.1-34.7c-4.5-22.2-7.3-50.4-9-79.3c-1.6-28.9-2.1-58.6-2.1-83.8   c0-18.9,0.3-35.3,0.6-46.9c0.1-5.8,0.3-10.5,0.4-13.7c0.1-1.6,0.1-2.8,0.1-3.7c0-0.8,0-1.3,0-1.3c0-0.8-0.6-1.5-1.4-1.6   C274.2,769.5,273.5,770.1,273.5,770.9L273.5,770.9z",
                "duration": 1300
            },
            {
                "path": "M205.9,630.3c0,0,8.6,32,21.3,69.7c6.3,18.9,13.7,39.1,21.5,57.6c7.8,18.4,16.1,35,24.3,46.5c0.3,0.4,0.9,0.6,1.4,0.2   c0.4-0.3,0.6-0.9,0.2-1.4c-8.1-11.3-16.3-27.8-24.1-46.1c-11.7-27.5-22.4-59.3-30.1-84.2c-3.9-12.4-7-23.2-9.2-30.8   c-1.1-3.8-1.9-6.8-2.5-8.9c-0.6-2.1-0.9-3.2-0.9-3.2c-0.1-0.5-0.7-0.8-1.2-0.7C206.1,629.2,205.8,629.7,205.9,630.3L205.9,630.3z",
                "duration": 800
            },
            {
                "path": "M734.8,780.1c0,0,0,0.5,0.1,1.4c0.3,6.4,1.4,34.6,1.4,73.3c0,37.2-1.1,84-4.9,130.3c-3.9,46.3-10.6,92.2-21.8,127.5   c-0.3,0.8,0.2,1.6,1,1.9c0.8,0.3,1.6-0.2,1.9-1c11.3-35.6,18-81.7,21.9-128.2c3.9-46.5,4.9-93.4,4.9-130.6   c0-44.2-1.5-74.8-1.5-74.8c0-0.8-0.7-1.5-1.6-1.4C735.4,778.5,734.8,779.2,734.8,780.1L734.8,780.1z",
                "duration": 600
            },
            {
                "path": "M192,872.7c0,0,0.1,0.6,0.2,1.9c0.7,8.4,3.6,44.4,3.6,77.3c0,9.4-0.2,18.6-0.8,26.8c-0.6,8.2-1.5,15.5-2.9,21   c-0.2,0.8,0.3,1.6,1.1,1.8c0.8,0.2,1.6-0.3,1.8-1.1c1.4-5.8,2.4-13.2,3-21.5c0.6-8.3,0.8-17.5,0.8-27c0-37.9-3.8-79.4-3.8-79.4   c-0.1-0.8-0.8-1.4-1.6-1.4C192.5,871.1,191.9,871.9,192,872.7L192,872.7z",
                "duration": 600
            },
            {
                "path": "M734.1,946.9c0,0,2.9,10.4,6.7,22.3c1.9,6,4.1,12.3,6.3,17.9c2.2,5.6,4.4,10.5,6.6,13.7c0.5,0.7,1.4,0.9,2.1,0.4   c0.7-0.5,0.9-1.4,0.4-2.1c-1.9-2.8-4.1-7.6-6.3-13.1c-3.3-8.3-6.5-18.3-8.9-26.2c-1.2-4-2.2-7.4-2.9-9.8c-0.4-1.2-0.6-2.2-0.8-2.9   c-0.2-0.7-0.3-1-0.3-1c-0.2-0.8-1-1.3-1.8-1C734.4,945.3,733.9,946.1,734.1,946.9L734.1,946.9z",
                "duration": 600
            },
            {
                "path": "M816.9,836.8c0,0,10.9,34.7,24.7,72.5c6.9,18.9,14.5,38.6,21.9,55.2c3.7,8.3,7.3,15.8,10.7,22c3.4,6.2,6.7,11.2,9.7,14.5   c0.6,0.6,1.5,0.6,2.1,0.1c0.6-0.6,0.6-1.5,0.1-2.1c-2.7-3-5.9-7.8-9.3-13.9c-5.9-10.7-12.4-25.4-18.9-41.4   c-9.7-24-19.3-50.9-26.4-71.9c-3.6-10.5-6.5-19.4-8.6-25.8c-1-3.2-1.8-5.7-2.4-7.4c-0.6-1.7-0.8-2.7-0.8-2.7   c-0.2-0.8-1.1-1.2-1.9-1C817.1,835.2,816.6,836,816.9,836.8L816.9,836.8z",
                "duration": 800
            },
            {
                "path": "M802,623.4c0,0-0.2,0.5-0.5,1.5c-2.3,7.3-12.9,40.2-25.7,76.6c-6.4,18.2-13.5,37.1-20.3,54.2c-6.9,17-13.6,32.1-19.4,42.3   c-0.3,0.5-0.1,1.1,0.4,1.4c0.5,0.3,1.1,0.1,1.4-0.4c6.3-11.1,13.5-27.5,20.9-46C780.8,697.5,803.9,624,804,624   c0.2-0.5-0.1-1.1-0.7-1.3C802.8,622.5,802.2,622.8,802,623.4L802,623.4z",
                "duration": 600
            },
            {
                "path": "M783.7,714.6c0,0-0.1,0.3-0.3,0.8c-1.6,3.9-8.9,21.4-18.1,39.4c-4.6,9-9.6,18.2-14.6,25.9c-5,7.7-10,13.8-14.3,16.8   c-0.5,0.3-0.6,0.9-0.3,1.4c0.3,0.5,0.9,0.6,1.4,0.3c5.1-3.5,10.5-10.4,15.9-18.9c8.1-12.7,16.1-28.9,22.2-42c6-13,10-22.9,10-22.9   c0.2-0.5,0-1.1-0.6-1.3C784.5,713.9,783.9,714.1,783.7,714.6L783.7,714.6z",
                "duration": 600
            },
            {
                "path": "M247.5,683.6c0,0,2.1,19.9,6.3,44.4c2.1,12.3,4.8,25.7,7.9,38.4c3.2,12.7,6.9,24.6,11.2,34c0.2,0.5,0.8,0.7,1.3,0.5   c0.5-0.2,0.7-0.8,0.5-1.3c-4.2-9.2-7.9-21-11.1-33.6c-4.8-18.9-8.3-39.6-10.7-55.5c-1.2-8-2.1-14.7-2.6-19.5   c-0.3-2.4-0.5-4.3-0.7-5.6c-0.1-1.3-0.2-2-0.2-2c-0.1-0.5-0.5-0.9-1.1-0.9C247.8,682.6,247.4,683.1,247.5,683.6L247.5,683.6z",
                "duration": 600
            },
            {
                "path": "M380.9,304.6c0,0,0.2,0,0.5-0.1c2.4-0.3,12.9-1.4,25.7-1.4c11.1,0,23.9,0.8,34.6,3.7c5.3,1.4,10.1,3.4,13.9,5.9   c3.8,2.5,6.5,5.6,7.9,9.4c2.3,6.2,6.7,18.1,10.5,30.3c1.9,6.1,3.7,12.3,5,18c1.3,5.6,2.1,10.6,2.1,14.3c0,1.3-0.1,2.4-0.3,3.3   c-0.2,0.8,0.3,1.6,1.2,1.8c0.8,0.2,1.6-0.3,1.8-1.2c0.2-1.2,0.3-2.5,0.3-3.9c0-4.1-0.8-9.2-2.1-15c-3.9-17.2-12.1-39.4-15.6-48.7   c-1.7-4.5-4.9-8.1-9.1-10.9c-6.2-4.2-14.6-6.6-23.5-8.1c-8.9-1.5-18.3-1.9-26.7-1.9c-14.8,0-26.5,1.4-26.5,1.4   c-0.8,0.1-1.4,0.8-1.3,1.7C379.4,304.1,380.1,304.7,380.9,304.6L380.9,304.6z",
                "duration": 1000
            },
            {
                "path": "M480.1,414.3l6.7,1.3c0.5,0.1,1.1-0.2,1.2-0.8s-0.2-1.1-0.8-1.2l-6.7-1.3c-0.5-0.1-1.1,0.2-1.2,0.8   S479.6,414.2,480.1,414.3",
                "duration": 600
            },
            {
                "path": "M499.5,408.7l-5.4,3.1c-0.5,0.3-0.6,0.9-0.4,1.4c0.3,0.5,0.9,0.6,1.4,0.4l5.4-3.1c0.5-0.3,0.6-0.9,0.4-1.4   C500.5,408.6,499.9,408.5,499.5,408.7",
                "duration": 600
            },
            {
                "path": "M401.4,352l-5.8,4.9c-0.6,0.5-0.7,1.5-0.2,2.1c0.5,0.6,1.5,0.7,2.1,0.2l5.8-4.9c0.6-0.5,0.7-1.5,0.2-2.1   C403,351.5,402,351.4,401.4,352",
                "duration": 600
            },
            {
                "path": "M408.3,353.4l-3.8,6.3c-0.4,0.7-0.2,1.6,0.5,2.1c0.7,0.4,1.6,0.2,2.1-0.5l3.8-6.3c0.4-0.7,0.2-1.6-0.5-2.1   C409.6,352.5,408.7,352.7,408.3,353.4",
                "duration": 600
            },
            {
                "path": "M416,356v5c0,0.8,0.7,1.5,1.5,1.5c0.8,0,1.5-0.7,1.5-1.5v-5c0-0.8-0.7-1.5-1.5-1.5C416.7,354.5,416,355.2,416,356",
                "duration": 600
            },
            {
                "path": "M439.3,339.7L439.3,339.7c-0.4,0.5-2.1,2.4-4.5,4.4c-2.4,2-5.5,4-8.5,4.6c-3.4,0.7-6.2,1.2-8.2,1.5c-2,0.4-3.1,0.5-3.1,0.5   l0.1,0.5l0-0.5l-23.5-1c-0.3,0-0.5,0.2-0.5,0.5c0,0.3,0.2,0.5,0.5,0.5l23.5,1l0.1,0c0,0,4.5-0.8,11.3-2.1c3.6-0.7,6.9-3,9.5-5.2   c2.5-2.2,4.2-4.1,4.2-4.1c0.2-0.2,0.1-0.5-0.1-0.7C439.8,339.4,439.5,339.5,439.3,339.7L439.3,339.7z",
                "duration": 600
            },
            {
                "path": "M358,307.4c0,0-4.9,149.2-4.9,236.5c0,13.6,0.1,25.8,0.4,35.6c0.3,9.8,0.7,17.3,1.4,21.8c0.1,0.8,0.9,1.4,1.7,1.3   c0.8-0.1,1.4-0.9,1.3-1.7c-0.6-4.2-1.1-11.7-1.3-21.5c-0.3-9.8-0.4-21.9-0.4-35.5c0-43.6,1.2-102.7,2.5-150.9   c0.6-24.1,1.2-45.5,1.7-60.8c0.2-7.7,0.4-13.8,0.6-18.1c0.1-4.2,0.2-6.6,0.2-6.6c0-0.8-0.6-1.5-1.4-1.5   C358.7,305.9,358,306.6,358,307.4L358,307.4z",
                "duration": 800
            },
            {
                "path": "M512.4,332.9c0,0,2.6,0.8,6.1,1.7c1.7,0.4,3.6,0.8,5.5,1.2c1.9,0.3,3.8,0.5,5.6,0.5c1.2,0,2.2-0.1,3.3-0.4   c1.4-0.4,3.6-1.1,6.1-1.9c7.7-2.5,18.7-6.1,18.7-6.1c0.1,0,0.3-0.1,0.4-0.2c0,0,2.5-1.5,5.2-3.5c1.3-1,2.7-2.1,3.9-3.3   c0.6-0.6,1.1-1.2,1.5-1.8c0.4-0.6,0.8-1.3,1-2.1c0.2-1.1-0.4-2.1-1.5-2.4c-1.1-0.2-2.1,0.4-2.4,1.5c0,0.1-0.1,0.4-0.4,0.8   c-0.4,0.7-1.3,1.5-2.3,2.4c-1.5,1.3-3.3,2.6-4.7,3.5c-0.7,0.5-1.3,0.9-1.7,1.1c-0.2,0.1-0.4,0.2-0.5,0.3l-0.1,0.1l0,0l1,1.7   l-0.6-1.9c0,0-1.2,0.4-3.1,1c-2.9,0.9-7.3,2.4-11.5,3.8c-4.2,1.4-8.2,2.6-10.1,3.2c-0.5,0.1-1.2,0.2-2.2,0.2   c-1.4,0-3.1-0.2-4.9-0.5c-2.7-0.4-5.5-1.1-7.6-1.7c-1.1-0.3-1.9-0.5-2.6-0.7c-0.3-0.1-0.6-0.2-0.7-0.2l-0.2-0.1l-0.1,0   c-1.1-0.3-2.2,0.2-2.5,1.3C510.8,331.4,511.3,332.6,512.4,332.9L512.4,332.9z",
                "duration": 1400
            },
            {
                "path": "M514.8,327.3c0,0,6.9,2.7,13.3,2.7c1.5,0,2.9-0.1,4.3-0.5c6.9-1.8,20.9-6.4,20.9-6.4l0,0l10.3-3.6c0.3-0.1,0.4-0.4,0.3-0.6   c-0.1-0.3-0.4-0.4-0.6-0.3l-10.3,3.6l0.2,0.5l-0.2-0.5c0,0-0.9,0.3-2.3,0.7c-4.3,1.4-13.4,4.2-18.6,5.6c-1.2,0.3-2.6,0.5-4,0.5   c-3.1,0-6.3-0.7-8.8-1.3c-1.2-0.3-2.3-0.7-3-0.9c-0.4-0.1-0.7-0.2-0.9-0.3c-0.2-0.1-0.3-0.1-0.3-0.1c-0.3-0.1-0.5,0-0.6,0.3   C514.4,326.9,514.6,327.2,514.8,327.3L514.8,327.3z",
                "duration": 800
            },
            {
                "path": "M545.6,331.2l3.5,5.3c0.5,0.7,1.4,0.9,2.1,0.4c0.7-0.5,0.9-1.4,0.4-2.1l-3.5-5.3c-0.5-0.7-1.4-0.9-2.1-0.4   C545.3,329.5,545.1,330.5,545.6,331.2",
                "duration": 600
            },
            {
                "path": "M552.8,328.1l4.1,4.2c0.6,0.6,1.5,0.6,2.1,0s0.6-1.5,0-2.1l-4.1-4.2c-0.6-0.6-1.5-0.6-2.1,0S552.2,327.5,552.8,328.1",
                "duration": 600
            },
            {
                "path": "M559.7,324.9l3.8,2.7c0.7,0.5,1.6,0.3,2.1-0.4s0.3-1.6-0.4-2.1l-3.8-2.7c-0.7-0.5-1.6-0.3-2.1,0.4S559.1,324.4,559.7,324.9   ",
                "duration": 600
            },
            {
                "path": "M601,366.1c0,0,0,0.4,0.1,1.1c1.4,11.3,12.5,104.7,12.5,202c0,45.4-2.4,91.7-9.4,130.9c-3.5,19.6-8.1,37.3-14.1,52.3   c-6,15-13.3,27.1-22.2,35.4c-0.6,0.6-0.6,1.5-0.1,2.1c0.6,0.6,1.5,0.6,2.1,0.1c9.3-8.8,16.8-21.3,22.9-36.5   c9.1-22.8,15-51.8,18.7-83.6c3.6-31.8,5-66.5,5-100.6c0-104.1-12.7-203.5-12.7-203.6c-0.1-0.8-0.9-1.4-1.7-1.3   C601.4,364.6,600.9,365.3,601,366.1L601,366.1z",
                "duration": 800
            },
            {
                "path": "M591.5,388.4c0,0,0,0.4,0.1,1.3c1.4,12.7,12.5,117.6,12.5,218.9c0,50.9-2.8,100.9-11,137.7c-0.1,0.5,0.2,1.1,0.8,1.2   c0.5,0.1,1.1-0.2,1.2-0.8c8.3-37.1,11.1-87.1,11.1-138.1c0-108.1-12.6-220.4-12.6-220.4c-0.1-0.5-0.6-0.9-1.1-0.9   C591.8,387.3,591.4,387.8,591.5,388.4L591.5,388.4z",
                "duration": 600
            },
            {
                "path": "M580.1,511.8c0,0,2.1,30.7,6,64.1c1.9,16.7,4.3,34,7.1,48.6c1.4,7.3,2.9,13.9,4.5,19.3c1.6,5.5,3.3,9.8,5.2,12.7   c0.5,0.7,1.4,0.9,2.1,0.4c0.7-0.5,0.9-1.4,0.4-2.1c-1.6-2.4-3.3-6.6-4.8-11.9c-2.7-9.3-5.2-22.2-7.4-36.3   c-3.2-21.1-5.8-44.9-7.5-63.4c-0.9-9.2-1.5-17.2-2-22.8c-0.2-2.8-0.4-5-0.5-6.6c-0.1-1.5-0.2-2.3-0.2-2.3c-0.1-0.8-0.8-1.5-1.6-1.4   C580.7,510.3,580,511,580.1,511.8L580.1,511.8z",
                "duration": 800
            },
            {
                "path": "M580.6,424.5c0,0,0.1,0.6,0.1,1.7c0.7,8.3,4,46,7,86.9c3.1,40.9,5.9,85,5.9,106c0,1.7,0,3.2-0.1,4.5c0,0.6,0.4,1,1,1   c0.6,0,1-0.4,1-1c0-1.4,0.1-2.9,0.1-4.6c0-22.6-3.3-71.2-6.5-114.3c-3.3-43.1-6.5-80.5-6.5-80.5c0-0.6-0.5-1-1.1-0.9   C581,423.4,580.6,423.9,580.6,424.5L580.6,424.5z",
                "duration": 600
            },
            {
                "path": "M586.8,224.1l0.1,0.1c0.6,1.4,5.5,13.8,10.3,31.9c4.8,18.1,9.5,42.1,9.4,66.6c0,16.4-2.1,33-7.5,48.3   c-0.3,0.8,0.1,1.6,0.9,1.9c0.8,0.3,1.6-0.1,1.9-0.9c5.6-15.8,7.7-32.7,7.7-49.3c0-25.7-5-50.6-10-69.1c-5-18.5-10-30.6-10-30.7   c-0.3-0.8-1.2-1.1-2-0.8C586.8,222.4,586.4,223.3,586.8,224.1L586.8,224.1z",
                "duration": 600
            },
            {
                "path": "M357,373.6c0,0,1.3,18.3,4.8,39.1c1.7,10.4,4,21.5,6.9,31.4c2.9,9.8,6.4,18.4,10.9,23.9l1.2-0.9l1.1-1.1   c0,0-0.1-0.1-0.2-0.2c-1.1-1.1-6.1-6.1-11.3-12.3c-2.6-3.1-5.3-6.4-7.6-9.7c-2.3-3.3-4.2-6.4-5.2-9.1c-0.3-0.8-1.2-1.2-1.9-0.8   c-0.8,0.3-1.2,1.2-0.8,1.9c1.3,3.2,3.5,6.8,6,10.4c7.7,10.8,19,21.9,19,21.9c0.6,0.6,1.5,0.6,2.1,0c0.6-0.5,0.7-1.4,0.2-2.1   c-4-4.9-7.5-13.2-10.3-22.8c-4.3-14.5-7.2-32-9-45.8c-0.9-6.9-1.6-12.9-2-17.2c-0.2-2.1-0.4-3.8-0.5-5c0-0.6-0.1-1-0.1-1.3   s0-0.5,0-0.5c-0.1-0.8-0.8-1.4-1.6-1.4C357.6,372.1,356.9,372.8,357,373.6L357,373.6z",
                "duration": 1300
            },
            {
                "path": "M495.4,291.2L495.4,291.2c0.9-0.6,8.4-5.9,19.8-10.9c11.3-5.1,26.4-10,42.4-10c5.2,0,10.4,0.5,15.6,1.7   c0.8,0.2,1.6-0.3,1.8-1.1c0.2-0.8-0.3-1.6-1.1-1.8c-5.5-1.2-10.9-1.8-16.3-1.8c-17.1,0-33,5.4-44.7,10.7   c-11.7,5.4-19.1,10.7-19.2,10.7c-0.7,0.5-0.8,1.4-0.3,2.1C493.8,291.5,494.7,291.7,495.4,291.2L495.4,291.2z",
                "duration": 600
            },
            {
                "path": "M390,438.1c0,0,0,0.2,0.1,0.6c0.7,6.2,6.1,58,6.1,118.7c0,41.6-2.5,87.5-10.9,125.7c-4.2,19.1-9.8,36.3-17.2,50.1   c-7.4,13.8-16.6,24.2-27.8,29.8c-0.7,0.4-1,1.3-0.7,2c0.4,0.7,1.3,1,2,0.7c12-6,21.5-16.9,29.1-31.1c11.4-21.2,18.4-49.9,22.7-81   c4.3-31.2,5.7-64.9,5.7-96.2c0-65-6.2-119.6-6.2-119.6c-0.1-0.8-0.8-1.4-1.7-1.3C390.5,436.5,389.9,437.3,390,438.1L390,438.1z",
                "duration": 800
            },
            {
                "path": "M712.2,770.1c-1.3-1.6-3.1-3.6-5.3-6c-7.7-8.5-20.3-23.1-31.1-49.8c-10.8-26.7-19.7-65.5-19.7-122.2   c0-18,0.9-37.7,2.9-59.4c2.3-24.5,3.3-48.5,3.3-71.9c0-74.2-10.2-142-23.9-196.4c-6.8-27.2-14.5-51.1-22.3-70.7   c-7.7-19.6-15.5-35.1-22.4-45.4c-16.1-24-35.3-36.5-50.5-42.9c-15.2-6.4-26.3-6.9-26.5-6.9l-0.1,1.5l0.7-1.3   c-0.1-0.1-25.2-13.8-61-13.9c-29.7,0-66.8,9.6-102.9,44.3c-24.2,23.4-38.9,49.1-47.4,74.8c-8.5,25.8-11,51.6-11,75.3   c0,30.3,4,57.1,4.6,75.9c0,0.8,0.7,1.5,1.5,1.5c0.8,0,1.5-0.7,1.5-1.5c-0.6-19.1-4.6-45.8-4.6-75.8c0-23.5,2.4-49,10.9-74.4   c8.4-25.4,22.8-50.6,46.6-73.6c35.5-34.2,71.7-43.5,100.8-43.5c17.5,0,32.4,3.4,43,6.8c5.3,1.7,9.4,3.4,12.3,4.6   c1.4,0.6,2.5,1.2,3.2,1.5c0.4,0.2,0.6,0.3,0.8,0.4c0.1,0,0.2,0.1,0.2,0.1l0.1,0c0.2,0.1,0.4,0.2,0.7,0.2l0,0   c0.5,0,11.5,0.6,26.1,6.9c14.6,6.3,33,18.4,48.5,41.5c6.8,10.1,14.5,25.3,22.1,44.8c23,58.5,46,155.2,46,266   c0,23.3-1,47.3-3.3,71.7c-2,21.8-2.9,41.7-2.9,59.7c0,65.2,11.7,107.1,24.7,134.3c6.5,13.6,13.3,23.5,19.1,30.7   c2.9,3.6,5.5,6.6,7.8,9.1c2.2,2.4,4,4.4,5.1,5.8c0.5,0.7,1.5,0.8,2.1,0.3C712.6,771.7,712.7,770.7,712.2,770.1L712.2,770.1z",
                "duration": 1800
            },
            {
                "path": "M339.8,170.1c-0.3,0.3-41.1,52.9-41.1,232.4c0,0.5,0,1,0,1.5c0,32.3,3.9,73.9,7.6,117.5c3.8,43.6,7.6,89.1,7.6,129.1   c0,26.4-1.6,50.5-6,70c-2.2,9.7-5,18.3-8.6,25.5c-3.6,7.2-8,12.9-13.3,17.1c-0.7,0.5-0.8,1.5-0.3,2.1c0.5,0.7,1.5,0.8,2.1,0.3   c5.7-4.5,10.3-10.6,14.1-18.1c5.6-11.2,9.4-25.5,11.7-41.9c2.3-16.4,3.3-35,3.3-55c0-40.2-3.8-85.8-7.6-129.4   c-3.8-43.6-7.6-85.1-7.6-117.2c0-0.5,0-1,0-1.5c0-89.5,10.2-147.3,20.3-182.6c5.1-17.6,10.1-29.7,13.9-37.3   c1.9-3.8,3.5-6.5,4.5-8.2c0.5-0.9,1-1.5,1.3-1.9c0.1-0.2,0.2-0.3,0.3-0.4l0.1-0.1l0,0l0,0c0.5-0.7,0.4-1.6-0.3-2.1   C341.3,169.3,340.3,169.4,339.8,170.1L339.8,170.1z",
                "duration": 1300
            },
            {
                "path": "M385.5,725.6c0,0.1,2.8,7,8.7,16c5.9,9,14.8,20,27,28.1l0.8-1.2l0.2-1.5l-0.1,0c-0.9-0.1-8.8-1.1-18.5-4.9   c-9.6-3.8-20.9-10.3-28.4-21.2c-0.5-0.7-1.4-0.9-2.1-0.4c-0.7,0.5-0.9,1.4-0.4,2.1c8.3,12,20.5,18.8,30.7,22.6   c10.2,3.8,18.3,4.7,18.4,4.7c0.7,0.1,1.3-0.3,1.6-1c0.2-0.7,0-1.4-0.6-1.8c-11.8-7.8-20.4-18.5-26.1-27.3c-2.9-4.4-5-8.3-6.4-11   c-0.7-1.4-1.2-2.5-1.6-3.3c-0.2-0.4-0.3-0.7-0.4-0.9c0-0.1-0.1-0.2-0.1-0.2l0-0.1c-0.3-0.8-1.2-1.1-2-0.8   C385.5,724,385.2,724.9,385.5,725.6L385.5,725.6z",
                "duration": 1000
            },
            {
                "path": "M370.7,733.5c0,0,0-0.1-0.1-0.2c-2.1-4.2-36.4-74.7-36.4-178.4c0-8.2,0.2-16.6,0.7-25.2c0-0.8-0.6-1.5-1.4-1.6   c-0.8,0-1.5,0.6-1.6,1.4c-0.5,8.6-0.7,17.1-0.7,25.3c0,107.8,36.8,179.8,36.9,179.9c0.4,0.7,1.3,1,2,0.7   C370.8,735.1,371,734.2,370.7,733.5L370.7,733.5z",
                "duration": 600
            },
            {
                "path": "M684.9,779.6c-6.4-5.8-11.7-13.9-16-23.7c-6.4-14.6-10.4-32.9-12.8-52.1c-2.4-19.2-3.2-39.3-3.2-57.7   c0-19,0.9-36.1,1.7-48.5c0.4-6.2,0.9-11.2,1.2-14.7c0.2-1.7,0.3-3.1,0.4-4c0.1-0.9,0.1-1.4,0.1-1.4c0.1-0.8-0.5-1.6-1.3-1.7   c-0.8-0.1-1.6,0.5-1.7,1.3c0,0-3.5,30.7-3.5,68.9c0,24.6,1.5,52.4,6.3,77c2.4,12.3,5.7,23.9,10,33.9c4.4,10,9.8,18.5,16.7,24.7   c0.6,0.6,1.6,0.5,2.1-0.1C685.5,781.1,685.5,780.2,684.9,779.6L684.9,779.6z",
                "duration": 800
            },
            {
                "path": "M652.1,694.1c0,0.1,5.4,14.6,15.3,31.7c5,8.5,11.1,17.7,18.2,25.9c7.2,8.3,15.4,15.6,24.6,20.6c0.7,0.4,1.6,0.1,2-0.6   c0.4-0.7,0.1-1.6-0.6-2c-8.8-4.7-16.8-11.9-23.8-19.9c-10.5-12.1-18.8-26.3-24.4-37.5c-2.8-5.6-5-10.4-6.4-13.8   c-0.7-1.7-1.3-3.1-1.6-4c-0.2-0.5-0.3-0.8-0.4-1.1c0-0.1-0.1-0.2-0.1-0.3l0-0.1c-0.3-0.8-1.1-1.2-1.9-0.9   C652.2,692.5,651.8,693.3,652.1,694.1L652.1,694.1z",
                "duration": 800
            },
            {
                "path": "M683.7,778.7c-16.1-8.3-28.6-20.1-38.3-33.2c-14.5-19.6-22.6-42.1-27.1-59.7c-2.2-8.8-3.6-16.4-4.3-21.7   c-0.4-2.7-0.6-4.8-0.8-6.3c-0.1-0.7-0.1-1.3-0.2-1.7c0-0.2,0-0.3,0-0.4c0-0.1,0-0.1,0-0.1c-0.1-0.8-0.8-1.5-1.6-1.4   c-0.8,0.1-1.5,0.8-1.4,1.6c0,0.1,1.5,22.9,11.2,50c4.9,13.5,11.8,28.2,21.7,41.5c9.9,13.4,22.7,25.5,39.3,34.1   c0.7,0.4,1.6,0.1,2-0.6C684.7,779.9,684.4,779,683.7,778.7L683.7,778.7z",
                "duration": 800
            },
            {
                "path": "M623,709.5c0,0,0,0,0,0.1c-0.3,1.4-3.5,14.4-11.9,30.2c-8.4,15.9-21.9,34.6-42.9,47.8c-0.7,0.4-0.9,1.4-0.5,2.1   c0.4,0.7,1.4,0.9,2.1,0.5c22.3-14,36.3-34,44.7-50.5c8.5-16.5,11.4-29.5,11.4-29.6c0.2-0.8-0.3-1.6-1.1-1.8   C624,708.2,623.2,708.7,623,709.5L623,709.5z",
                "duration": 600
            },
            {
                "path": "M642.2,379.9c0,0,0.1,0.3,0.2,0.9c0.8,4.7,4.3,26.2,7.7,52.9c3.3,26.7,6.5,58.5,6.5,83.8c0,5.3-0.1,10.3-0.4,14.8   c-0.1,0.8,0.6,1.5,1.4,1.6c0.8,0.1,1.5-0.6,1.6-1.4c0.3-4.7,0.4-9.7,0.4-15c0-27.2-3.6-61.7-7.2-89.4c-3.6-27.7-7.2-48.7-7.2-48.7   c-0.1-0.8-0.9-1.4-1.7-1.2C642.6,378.3,642,379.1,642.2,379.9L642.2,379.9z",
                "duration": 600
            },
            {
                "path": "M657,524.2c0,0,0.1,0.6,0.3,1.7c1.3,8.6,7.3,47.5,13,90.1c2.8,21.3,5.6,43.5,7.6,63.4c2,19.8,3.4,37.3,3.4,48.9   c0,1.2,0,2.3,0,3.4c0,0.6,0.4,1,1,1c0.6,0,1-0.4,1-1c0-1.1,0-2.3,0-3.5c0-12.6-1.5-31.6-3.8-53.1c-6.8-64.5-20.5-151.3-20.5-151.3   c-0.1-0.5-0.6-0.9-1.1-0.8C657.2,523.1,656.9,523.6,657,524.2L657,524.2z",
                "duration": 600
            },
            {
                "path": "M679.9,743.4c0,0,0,0.2-0.1,0.7c-0.3,3.2-1.9,16.6-5.4,26.6c-0.2,0.5,0.1,1.1,0.6,1.3c0.5,0.2,1.1-0.1,1.3-0.6   c2.1-5.9,3.5-12.9,4.3-18.3c0.9-5.5,1.2-9.4,1.2-9.5c0-0.6-0.4-1-0.9-1.1C680.4,742.4,680,742.8,679.9,743.4L679.9,743.4z",
                "duration": 600
            },
            {
                "path": "M339.9,642.5c0,0,0,0.4-0.1,1.1c-0.3,5.2-2.1,29-8.7,54.3c-3.3,12.6-7.8,25.7-14,36.9c-6.1,11.3-13.9,20.8-23.6,26.4   c-0.5,0.3-0.6,0.9-0.4,1.4c0.3,0.5,0.9,0.6,1.4,0.4c10.8-6.3,19.2-17,25.6-29.5c9.7-18.7,15.1-41.4,18.1-59.4   c3-18,3.7-31.4,3.7-31.4c0-0.6-0.4-1-1-1C340.3,641.5,339.9,641.9,339.9,642.5L339.9,642.5z",
                "duration": 600
            },
            {
                "path": "M347.1,674c0,0,0,0.1,0,0.2c-0.5,2.3-5,22.2-14.8,42.7c-4.9,10.3-11,20.7-18.6,29.1c-7.6,8.4-16.5,14.9-26.9,17.4   c-0.5,0.1-0.9,0.7-0.7,1.2c0.1,0.5,0.7,0.9,1.2,0.7c11.3-2.7,20.8-9.8,28.7-18.8c11.8-13.6,20.1-31.6,25.4-46.2   c5.3-14.6,7.7-25.9,7.7-25.9c0.1-0.5-0.2-1.1-0.8-1.2C347.7,673.1,347.2,673.5,347.1,674L347.1,674z",
                "duration": 600
            },
            {
                "path": "M380.6,707c-1.5-4.3-3.1-10.9-4.6-19.1c-5.4-28.8-10.4-77.3-14-118.6c-1.8-20.6-3.3-39.5-4.4-53.2   c-0.5-6.8-0.9-12.4-1.2-16.2c-0.1-1.9-0.2-3.4-0.3-4.4c-0.1-1-0.1-1.5-0.1-1.5c0-0.6-0.5-1-1.1-0.9c-0.6,0-1,0.5-0.9,1.1   c0,0,3,44.5,7.6,93.5c2.3,24.5,5,50,7.9,71.7c1.5,10.8,3,20.7,4.5,29c1.5,8.3,3.1,14.9,4.7,19.5c0.2,0.5,0.8,0.8,1.3,0.6   C380.5,708.1,380.8,707.5,380.6,707L380.6,707z",
                "duration": 800
            },
            {
                "path": "M401.7,693.4c0,0-0.8,5.1-0.8,13c0,15.4,2.9,41.6,20.3,62.7c0.4,0.4,1,0.5,1.4,0.1c0.4-0.4,0.5-1,0.1-1.4   c-16.9-20.5-19.9-46.3-19.9-61.4c0-3.9,0.2-7.1,0.4-9.3c0.1-1.1,0.2-2,0.3-2.5c0-0.3,0.1-0.5,0.1-0.7c0-0.1,0-0.2,0-0.2   c0.1-0.5-0.3-1.1-0.8-1.1C402.3,692.5,401.8,692.9,401.7,693.4L401.7,693.4z",
                "duration": 600
            },
            {
                "path": "M654.7,373.8c0,0,0.1,0.7,0.4,2.1c1.8,10.6,10.2,59.1,18,117.4c7.9,58.4,15.3,126.7,15.3,176.9c0,13.6-0.5,25.9-1.8,36.2   c-1.2,10.3-3.1,18.8-5.8,24.7c-0.3,0.8,0,1.6,0.8,2c0.8,0.3,1.6,0,2-0.8c2.8-6.3,4.8-15,6-25.5c1.2-10.5,1.8-22.9,1.8-36.6   c0-53.8-8.4-128-16.9-188.8c-8.4-60.8-16.9-108.2-16.9-108.2c-0.1-0.8-0.9-1.4-1.7-1.2C655.1,372.2,654.6,372.9,654.7,373.8   L654.7,373.8z",
                "duration": 800
            },
            {
                "path": "M465,448h11c0.2,0,0.3,0,0.4-0.1l19.1-5.8l23.1-2.7l0.3-0.1l10.6-3.4c0.8-0.3,1.2-1.1,1-1.9c-0.3-0.8-1.1-1.2-1.9-1   l-10.4,3.4l-23.1,2.7l-0.3,0.1l-19,5.8l-10.8,0c-0.8,0-1.5,0.7-1.5,1.5C463.5,447.3,464.2,448,465,448L465,448z",
                "duration": 600
            },
            {
                "path": "M421,879.8l-6.8,1.6l-4.6-14l-27.5-0.4l-6.9,18.7l-14.8-10.2l29-59.3l10.7-0.9L421,879.8z M378.9,856.4l-1.4-1.8   c-1.8,3.1-3.5,6.3-4.9,9.7c-1.4,3.4-2.7,7-3.7,10.8l3.5,1.5c0.5-3.5,1.3-7,2.4-10.3C375.9,862.9,377.3,859.6,378.9,856.4z    M407.3,860.6l-2.2-6.7l-20.7,5.1l-1.2,3.1L407.3,860.6z M403.5,849l-7.2-25.8l-9.9,29.8L403.5,849z",
                "duration": 600
            },
            {
                "path": "M469.8,813.5l-5.5,70.5l-6.9-0.6l-0.4-9.6c-1.8,2.5-3.8,4.4-6.1,5.6c-2.3,1.3-4.9,1.9-7.8,1.9c-4.7,0-8.6-1.7-11.9-5   c-3.3-3.4-4.9-7.4-4.9-12.1c0-2.5,0.5-4.8,1.4-6.9c0.9-2.1,2.3-4,4.2-5.6c1.8-1.6,3.7-2.7,5.9-3.5c2.2-0.8,4.5-1.2,7.1-1.2   c2.4,0,4.5,0.3,6.3,1s3.3,1.6,4.5,2.8l-1.6-33.8L469.8,813.5z M456.4,863.6c0-4.3-1.1-7.5-3.2-9.5c-2.1-2.1-5.3-3.1-9.6-3.1h-0.7   l-0.9,5l-5.1-1l-0.4,2.8l4.9,1.2l-0.5,3.5l-4.9-1.2l-0.5,2.7l4.8,1.4l-0.6,3l-4.7-1.2l-0.8,3.2l4.9,1.1l-0.8,4.9   c0.9,0.4,1.8,0.7,2.7,0.9c0.9,0.2,1.8,0.3,2.7,0.3c1.8,0,3.5-0.4,5-1.1c1.5-0.7,2.9-1.8,4.2-3.2c1.2-1.4,2.1-2.8,2.7-4.4   C456.1,867.2,456.4,865.4,456.4,863.6z M451.6,821.9c0,0.9-0.2,1.6-0.7,2.1c-0.4,0.4-1.1,0.7-2.1,0.7c-0.9,0-1.6-0.2-2.1-0.7   c-0.5-0.4-0.7-1.1-0.7-2.1c0-0.9,0.2-1.7,0.7-2.1c0.5-0.5,1.2-0.7,2.1-0.7c0.9,0,1.6,0.2,2.1,0.7   C451.4,820.2,451.6,821,451.6,821.9z M452.3,830.8c0,0.9-0.2,1.6-0.7,2.1c-0.4,0.4-1.1,0.7-2.1,0.7c-0.9,0-1.6-0.2-2-0.7   c-0.5-0.4-0.7-1.1-0.7-2.1c0-0.9,0.2-1.5,0.7-2c0.5-0.5,1.1-0.7,2-0.7c0.9,0,1.6,0.2,2.1,0.7C452.1,829.2,452.3,829.9,452.3,830.8z    M453.4,840.3c0,0.9-0.2,1.6-0.7,2.1c-0.4,0.4-1.1,0.7-2.1,0.7c-0.9,0-1.6-0.2-2.1-0.7c-0.5-0.4-0.7-1.1-0.7-2.1   c0-0.9,0.2-1.6,0.7-2.1c0.5-0.5,1.2-0.7,2.1-0.7c0.9,0,1.6,0.2,2.1,0.7C453.1,838.7,453.4,839.4,453.4,840.3z",
                "duration": 1800
            },
            {
                "path": "M532.1,848.2l-14,34.8l-6.1,1l-10.3-26.1l-6.9,21.9l-10.9,5.4l-1-3.9l4.5-2.1l-0.7-2.3l-4.6,2.1l-0.8-3.5l4.1-1.7l-0.7-2.2   l-4.1,1.5l-0.8-3.2l3.7-1.5l-0.7-2.2l-3.6,1.5l-5.4-19.3l6.4-2.9l11.1,27.2l9-24.6l10.5-2.9l5.7,29.4l10-29.1L532.1,848.2z    M507,886.1c0,1.3-0.5,2.4-1.4,3.4c-0.9,0.9-2.1,1.4-3.4,1.4c-1.3,0-2.4-0.5-3.4-1.4c-0.9-0.9-1.4-2.1-1.4-3.4   c0-1.3,0.5-2.4,1.4-3.3c0.9-0.9,2.1-1.4,3.4-1.4c1.3,0,2.4,0.5,3.4,1.4C506.6,883.7,507,884.8,507,886.1z",
                "duration": 1000
            },
            {
                "path": "M573.4,877.8l0,2.1c-4,1.8-7.9,3.1-11.8,4c-3.9,0.9-7.7,1.3-11.5,1.3c-2.1,0-4-0.2-5.8-0.6c-1.7-0.4-3.3-1-4.7-1.8   c-1.6-0.9-2.9-2.2-3.7-3.7c-0.8-1.5-1.3-3.2-1.3-5.2c0-3.5,1.8-6.6,5.3-9.3s8.7-5.1,15.7-7.1c-0.6-1.6-1.5-2.9-2.9-3.7   c-1.3-0.8-3.1-1.3-5.1-1.3c-2.2,0-4.3,0.5-6.1,1.4c-1.8,0.9-3.4,2.2-4.8,4l-2.1-2c2.2-3.3,4.8-5.8,8-7.5c3.2-1.7,6.9-2.5,11.1-2.5   c3.4,0,6.5,1,9.1,2.9c2.6,1.9,4.8,4.8,6.6,8.6c1.4,3,2.5,6.2,3.1,9.6C573.2,870.3,573.5,873.9,573.4,877.8z M558.3,874.9   c0-2.3-0.1-4.6-0.3-6.9c-0.2-2.3-0.5-4.5-1-6.8c-2.4,0.7-4.6,1.4-6.5,2.2c-1.9,0.8-3.6,1.6-5.1,2.5l3.9,15.9c2,0,3.8-0.1,5.3-0.3   c1.5-0.2,2.7-0.6,3.6-1.1c0.1-0.9,0.1-1.8,0.1-2.7C558.3,876.7,558.3,875.8,558.3,874.9z M567.4,864.4c0-0.9-0.2-1.6-0.7-2.1   s-1.1-0.7-2.1-0.7c-0.9,0-1.6,0.2-2.1,0.7c-0.5,0.5-0.7,1.2-0.7,2.1c0,0.9,0.2,1.6,0.7,2.1c0.5,0.4,1.2,0.7,2.1,0.7   c0.9,0,1.6-0.2,2.1-0.7C567.2,866,567.4,865.3,567.4,864.4z M569,874.8c0-1-0.3-1.8-1-2.5c-0.7-0.7-1.5-1-2.5-1c-1,0-1.8,0.3-2.5,1   c-0.7,0.7-1.1,1.5-1.1,2.5c0,1,0.4,1.8,1.1,2.5c0.7,0.7,1.5,1,2.5,1c1,0,1.8-0.3,2.5-1C568.7,876.6,569,875.7,569,874.8z",
                "duration": 1800
            },
            {
                "path": "M618.1,869.4c0,13.2-1.8,23.1-5.5,29.7c-3.7,6.6-9.2,9.9-16.5,9.9c-3.4,0-6.6-0.5-9.4-1.4c-2.9-0.9-5.5-2.3-7.8-4.2   l1.8-3.4c1.7,1.4,3.6,2.5,5.8,3.2c2.1,0.7,4.5,1.1,7.1,1.1c0.9,0,1.8,0,2.7-0.1c0.9-0.1,1.7-0.3,2.5-0.5c-0.4,0.1-0.8,0.1-1.2,0.1   c-0.4,0-0.8,0-1.2,0c-1.9,0-3.8-0.3-5.5-0.9c-1.7-0.6-3.4-1.5-5-2.8c-1.6-1.3-2.9-2.8-3.7-4.4s-1.3-3.4-1.4-5.3   c1.1,1.4,2,2.7,3,3.7c0.9,1,1.9,1.8,2.7,2.4c1.1,0.7,2.4,1.3,3.7,1.7c1.3,0.4,2.8,0.6,4.3,0.6c4.3,0,7.7-2.4,10-7.2   c2.3-4.8,3.7-12,4.1-21.6c-0.8,1.3-1.5,2.4-2.3,3.4s-1.6,1.8-2.4,2.4l1.4,3.4l-2.3,2l-1.5-4c-0.8,0.4-1.6,0.6-2.6,0.8   c-0.9,0.1-1.9,0.1-2.9,0l-1.1,4.3l-3.5-0.8l1.7-4c-1.2-0.4-2.2-0.9-3.2-1.7c-1-0.7-1.8-1.7-2.6-2.8l-3.3,2.5l-2.6-2.7l4.5-2.6   c-0.4-0.9-0.8-2-1-3c-0.3-1.1-0.5-2.2-0.6-3.4l-3.7,1.4l-1.2-3l4.6-1.3c0-0.3-0.1-0.5-0.1-0.8c0-0.3,0-0.6,0-0.9   c0-0.4,0-0.9,0.1-1.6c0.1-0.7,0.1-1.6,0.2-2.6h-5.2l0.4-3.6l5.1,0.8l0.4-3.1l6.5-0.5c-0.5,2.1-0.9,4.1-1.2,5.9   c-0.3,1.9-0.4,3.6-0.4,5.2c0,1.7,0.2,3.3,0.5,4.7c0.3,1.4,0.8,2.7,1.5,3.8c0.8,1.4,1.8,2.5,3,3.2c1.2,0.7,2.6,1.1,4.2,1.1   c3.1,0,5.4-1,6.9-3c1.5-2,2.3-5,2.3-9.1c0-1.4-0.1-2.8-0.3-4.4s-0.5-3.2-1-4.9l10.4-2.4c0.4,3.8,0.7,7.5,0.9,10.9   C618,863,618.1,866.3,618.1,869.4z",
                "duration": 1800
            },
            {
                "path": "M654.2,852.2c0,2.1-0.5,3.7-1.4,4.7c-0.9,1-2.3,1.6-4.1,1.6c-1.7,0-2.9-0.3-3.8-0.9s-1.3-1.6-1.3-2.8   c0-0.6,0.2-1.2,0.5-1.7c0.3-0.5,0.8-0.9,1.5-1.3l1.1,0.8c-0.2,0.2-0.3,0.4-0.4,0.6c-0.1,0.2-0.2,0.4-0.2,0.6c0,0.5,0.2,0.9,0.5,1.1   s0.8,0.4,1.3,0.4c0.8,0,1.4-0.2,1.8-0.6c0.4-0.4,0.6-1,0.6-1.9c0-0.7-0.2-1.3-0.5-1.8s-0.9-1-1.6-1.4c-0.5-0.3-1.1-0.5-1.8-0.7   c-0.7-0.2-1.4-0.2-2.1-0.2c-1,0-1.9,0.1-2.6,0.4c-0.8,0.2-1.5,0.6-2.2,1.1c-0.7,0.5-1.3,1.2-1.7,1.9c-0.4,0.7-0.5,1.6-0.5,2.5   c0,0.9,0.3,1.8,1,2.6c0.7,0.9,1.7,1.7,3,2.6c2.4,1.5,4.2,2.7,5.5,3.5s1.9,1.2,2,1.3c1.4,1.2,2.4,2.4,3.1,3.7c0.7,1.3,1,2.8,1,4.4   c0,2.2-0.4,4.1-1.2,5.9c-0.8,1.7-2,3.3-3.7,4.5c-1.5,1.2-3.2,2.1-5.1,2.7c-1.9,0.6-3.9,0.9-6.2,0.9c-1.5,0-2.9-0.2-4.2-0.5   c-1.3-0.3-2.6-0.9-3.9-1.6c-1.3-0.7-2.4-1.5-3.4-2.5s-1.8-2.1-2.4-3.4l2.9-2.7c1.2,2.2,2.6,3.8,4.3,4.9s3.7,1.6,5.9,1.6   c2,0,3.7-0.6,5-1.8c1.3-1.2,1.9-2.8,1.9-4.8c0-1.3-0.3-2.5-0.9-3.7c-0.6-1.2-1.5-2.4-2.6-3.6c-1.1-0.9-2.2-1.9-3.3-2.8   c-1.1-0.9-2.2-1.9-3.3-2.8c-1.2-1.2-2-2.4-2.6-3.7c-0.6-1.3-0.9-2.6-0.9-4c0-1.7,0.4-3.2,1.1-4.6c0.7-1.4,1.8-2.5,3.3-3.6   c1.3-0.9,2.7-1.5,4.2-2c1.6-0.4,3.2-0.6,5.1-0.6c1.5,0,2.9,0.1,4.1,0.4c1.2,0.3,2.3,0.7,3.3,1.2c1.3,0.7,2.2,1.5,2.8,2.5   C653.9,849.7,654.2,850.9,654.2,852.2z M633.6,869.6c0,1.3-0.5,2.4-1.4,3.3c-0.9,0.9-2,1.4-3.3,1.4c-1.3,0-2.4-0.5-3.3-1.4   s-1.4-2-1.4-3.3s0.5-2.4,1.4-3.3c0.9-0.9,2-1.4,3.3-1.4c1.3,0,2.4,0.5,3.3,1.4C633.1,867.3,633.6,868.4,633.6,869.6z",
                "duration": 1800
            }
        ],
        "dimensions": {
            "width": 3000,
            "height": 3000
    
        }
    }
};

/*
 Setup and Paint your lazyline!
 */

 $(document).ready(function(){
 $('#sozai').lazylinepainter(
 {
    "svgData": pathObj,
    "strokeWidth": 1,
    "strokeColor": "#0c89a7"
}).lazylinepainter('paint');
 });
              
            
!
999px

Console