chbim-plugins
Version:
此插件和chbim云平台强绑定
842 lines • 1.38 MB
JavaScript
var Ty = Object.defineProperty;
var My = (x, a, o) => a in x ? Ty(x, a, { enumerable: !0, configurable: !0, writable: !0, value: o }) : x[a] = o;
var Ho = (x, a, o) => (My(x, typeof a != "symbol" ? a + "" : a, o), o);
import { openBlock as Ju, createElementBlock as $u, normalizeClass as Ud, renderSlot as Gd, defineComponent as sf, ref as Uc, onMounted as af, createElementVNode as Sr, toDisplayString as Sy, createApp as wd } from "vue";
const Ey = (x, a) => {
const o = x.__vccOpts || x;
for (const [c, f] of a)
o[c] = f;
return o;
}, by = {
name: "MukButton"
}, Cy = /* @__PURE__ */ Object.assign(by, {
props: {
size: {
type: String,
default: "middle"
},
type: {
type: String,
default: "default"
}
},
setup(x) {
return (a, o) => (Ju(), $u("button", {
class: Ud(["muk-btn", [x.size, x.type]])
}, [
Gd(a.$slots, "default", {}, void 0, !0)
], 2));
}
}), Ay = /* @__PURE__ */ Ey(Cy, [["__scopeId", "data-v-0e6d93cd"]]);
class Py {
constructor() {
this.dom = {
mask: document.querySelector(".js-mask"),
slices: [...document.querySelectorAll(".js-mask__slice")],
lines: [...document.querySelectorAll(".js-mask-line")],
logo: document.querySelector(".js-logo"),
titles: [...document.querySelectorAll(".js-transition-title")]
}, this.tl = null, this.state = !1, this.init();
}
resetScroll() {
window.scrollTo(0, 0);
}
createTimeline() {
this.tl = new TimelineMax({
paused: !0,
onComplete: () => {
this.state = !1;
}
}), this.tl.set(this.dom.titles, {
yPercent: 0
}).set(this.dom.mask, {
autoAlpha: 1
}).staggerFromTo(
this.dom.slices,
1.5,
{
xPercent: 100
},
{
xPercent: 0,
ease: Expo.easeInOut
},
-0.075
).addCallback(this.resetScroll.bind(this)).addLabel("loaderStart").set(this.dom.titles, {
yPercent: -100
}).set([this.dom.lines[0], this.dom.logo], {
autoAlpha: 1
}).fromTo(
this.dom.logo,
1,
{
yPercent: -100,
rotation: 10
},
{
yPercent: 0,
rotation: 0,
ease: Expo.easeOut
}
).addLabel("intermediateFrame").staggerFromTo(
this.dom.lines,
0.5,
{
scaleX: 0
},
{
scaleX: 1,
ease: Expo.easeInOut
},
0.75,
"-=1"
).set(this.dom.lines, {
transformOrigin: "right"
}).fromTo(
this.dom.lines[0],
1,
{
scaleX: 1
},
{
scaleX: 0,
ease: Expo.easeInOut
}
).fromTo(
this.dom.logo,
1,
{
yPercent: 0
},
{
yPercent: 105,
ease: Expo.easeOut
},
"-=1"
).staggerFromTo(
this.dom.slices,
0.5,
{
xPercent: 0
},
{
xPercent: 100,
ease: Expo.easeInOut
},
0.075
).set(this.dom.mask, {
autoAlpha: 0
}).addLabel("imagesStart", "-=0.85").staggerFromTo(
this.dom.titles,
1.5,
{
yPercent: 100
},
{
yPercent: 0,
ease: Expo.easeInOut
},
0.05,
"imagesStart"
).addLabel("loaderEnd");
}
continuation() {
this.init(), this.resetScroll(), this.tl.tweenFromTo("loaderStart", "loaderEnd");
}
show() {
this.init(), this.tl.tweenFromTo("loaderStart", "intermediateFrame");
}
hide() {
this.resetScroll(), this.tl.tweenFromTo("intermediateFrame", "loaderEnd");
}
init() {
document.querySelector(".mask-line.js-mask-line") && document.querySelector(".mask-line.js-mask-line").removeAttribute("style"), document.querySelector(".mask-line__inner.js-mask-line") && document.querySelector(".mask-line__inner.js-mask-line").removeAttribute("style"), this.createTimeline();
}
}
const Ly = { class: "mask js-mask" }, Ry = /* @__PURE__ */ Sr("div", { class: "mask__slice js-mask__slice" }, null, -1), Oy = /* @__PURE__ */ Sr("div", { class: "mask__slice js-mask__slice" }, null, -1), Iy = /* @__PURE__ */ Sr("div", { class: "mask__slice js-mask__slice" }, null, -1), Dy = { class: "mask__inner" }, zy = { class: "logo logo--mask" }, ky = {
class: "js-logo",
style: { color: "#fff" }
}, By = /* @__PURE__ */ Sr("div", { class: "mask-line js-mask-line" }, [
/* @__PURE__ */ Sr("div", { class: "mask-line__inner js-mask-line" })
], -1), Ny = {
name: "BimCutscenes"
}, Fy = /* @__PURE__ */ sf({
...Ny,
props: {
text: {
type: String,
default: "CHBIM云平台"
}
},
setup(x, { expose: a }) {
const o = Uc(null), c = () => {
o.value === null && (o.value = new Py());
}, f = () => {
c(), o.value.continuation();
};
return af(() => {
c();
}), a({
continuation: f
}), (u, m) => (Ju(), $u("div", Ly, [
Ry,
Oy,
Iy,
Sr("div", Dy, [
Sr("figure", zy, [
Sr("p", ky, Sy(x.text), 1)
]),
By
])
]));
}
});
/*!
* VERSION: 2.0.2
* DATE: 2018-08-27
* UPDATES AND DOCS AT: http://greensock.com
*
* Includes all of the following: TweenLite, TweenMax, TimelineLite, TimelineMax, EasePack, CSSPlugin, RoundPropsPlugin, BezierPlugin, AttrPlugin, DirectionalRotationPlugin
*
* @license Copyright (c) 2008-2018, GreenSock. All rights reserved.
* This work is subject to the terms at http://greensock.com/standard-license or for
* Club GreenSock members, the software agreement that was issued with your membership.
*
* @author: Jack Doyle, jack@greensock.com
**/
var hn = typeof module < "u" && module.exports && typeof global < "u" ? global : globalThis || window;
(hn._gsQueue || (hn._gsQueue = [])).push(function() {
hn._gsDefine(
"TweenMax",
["core.Animation", "core.SimpleTimeline", "TweenLite"],
function(x, a, o) {
var c = function(E) {
var P, w = [], M = E.length;
for (P = 0; P !== M; w.push(E[P++]))
;
return w;
}, f = function(E, P, w) {
var M, I, C = E.cycle;
for (M in C)
I = C[M], E[M] = typeof I == "function" ? I(w, P[w]) : I[w % I.length];
delete E.cycle;
}, u = function(E, P, w) {
o.call(this, E, P, w), this._cycle = 0, this._yoyo = this.vars.yoyo === !0 || !!this.vars.yoyoEase, this._repeat = this.vars.repeat || 0, this._repeatDelay = this.vars.repeatDelay || 0, this._repeat && this._uncache(!0), this.render = u.prototype.render;
}, m = 1e-10, g = o._internals, v = g.isSelector, S = g.isArray, b = u.prototype = o.to({}, 0.1, {}), O = [];
u.version = "2.0.2", b.constructor = u, b.kill()._gc = !1, u.killTweensOf = u.killDelayedCallsTo = o.killTweensOf, u.getTweensOf = o.getTweensOf, u.lagSmoothing = o.lagSmoothing, u.ticker = o.ticker, u.render = o.render, b.invalidate = function() {
return this._yoyo = this.vars.yoyo === !0 || !!this.vars.yoyoEase, this._repeat = this.vars.repeat || 0, this._repeatDelay = this.vars.repeatDelay || 0, this._yoyoEase = null, this._uncache(!0), o.prototype.invalidate.call(this);
}, b.updateTo = function(E, P) {
var w, M = this.ratio, I = this.vars.immediateRender || E.immediateRender;
P && this._startTime < this._timeline._time && (this._startTime = this._timeline._time, this._uncache(!1), this._gc ? this._enabled(!0, !1) : this._timeline.insert(this, this._startTime - this._delay));
for (w in E)
this.vars[w] = E[w];
if (this._initted || I) {
if (P)
this._initted = !1, I && this.render(0, !0, !0);
else if (this._gc && this._enabled(!0, !1), this._notifyPluginsOfEnabled && this._firstPT && o._onPluginEvent("_onDisable", this), this._time / this._duration > 0.998) {
var C = this._totalTime;
this.render(0, !0, !1), this._initted = !1, this.render(C, !0, !1);
} else if (this._initted = !1, this._init(), this._time > 0 || I)
for (var U, N = 1 / (1 - M), X = this._firstPT; X; )
U = X.s + X.c, X.c *= N, X.s = U - X.c, X = X._next;
}
return this;
}, b.render = function(E, P, w) {
this._initted || this._duration === 0 && this.vars.repeat && this.invalidate();
var M, I, C, U, N, X, J, Z, ct, Rt = this._dirty ? this.totalDuration() : this._totalDuration, tt = this._time, _t = this._totalTime, G = this._cycle, Pt = this._duration, Et = this._rawPrevTime;
if (E >= Rt - 1e-7 && E >= 0 ? (this._totalTime = Rt, this._cycle = this._repeat, this._yoyo && 1 & this._cycle ? (this._time = 0, this.ratio = this._ease._calcEnd ? this._ease.getRatio(0) : 0) : (this._time = Pt, this.ratio = this._ease._calcEnd ? this._ease.getRatio(1) : 1), this._reversed || (M = !0, I = "onComplete", w = w || this._timeline.autoRemoveChildren), Pt === 0 && (this._initted || !this.vars.lazy || w) && (this._startTime === this._timeline._duration && (E = 0), (0 > Et || 0 >= E && E >= -1e-7 || Et === m && this.data !== "isPause") && Et !== E && (w = !0, Et > m && (I = "onReverseComplete")), this._rawPrevTime = Z = !P || E || Et === E ? E : m)) : 1e-7 > E ? (this._totalTime = this._time = this._cycle = 0, this.ratio = this._ease._calcEnd ? this._ease.getRatio(0) : 0, (_t !== 0 || Pt === 0 && Et > 0) && (I = "onReverseComplete", M = this._reversed), 0 > E && (this._active = !1, Pt === 0 && (this._initted || !this.vars.lazy || w) && (Et >= 0 && (w = !0), this._rawPrevTime = Z = !P || E || Et === E ? E : m)), this._initted || (w = !0)) : (this._totalTime = this._time = E, this._repeat !== 0 && (U = Pt + this._repeatDelay, this._cycle = this._totalTime / U >> 0, this._cycle !== 0 && this._cycle === this._totalTime / U && E >= _t && this._cycle--, this._time = this._totalTime - this._cycle * U, this._yoyo && 1 & this._cycle && (this._time = Pt - this._time, ct = this._yoyoEase || this.vars.yoyoEase, ct && (this._yoyoEase || (ct !== !0 || this._initted ? this._yoyoEase = ct = ct === !0 ? this._ease : ct instanceof Ease ? ct : Ease.map[ct] : (ct = this.vars.ease, this._yoyoEase = ct = ct ? ct instanceof Ease ? ct : typeof ct == "function" ? new Ease(ct, this.vars.easeParams) : Ease.map[ct] || o.defaultEase : o.defaultEase)), this.ratio = ct ? 1 - ct.getRatio((Pt - this._time) / Pt) : 0)), this._time > Pt ? this._time = Pt : this._time < 0 && (this._time = 0)), this._easeType && !ct ? (N = this._time / Pt, X = this._easeType, J = this._easePower, (X === 1 || X === 3 && N >= 0.5) && (N = 1 - N), X === 3 && (N *= 2), J === 1 ? N *= N : J === 2 ? N *= N * N : J === 3 ? N *= N * N * N : J === 4 && (N *= N * N * N * N), X === 1 ? this.ratio = 1 - N : X === 2 ? this.ratio = N : this._time / Pt < 0.5 ? this.ratio = N / 2 : this.ratio = 1 - N / 2) : ct || (this.ratio = this._ease.getRatio(this._time / Pt))), tt === this._time && !w && G === this._cycle)
return void (_t !== this._totalTime && this._onUpdate && (P || this._callback("onUpdate")));
if (!this._initted) {
if (this._init(), !this._initted || this._gc)
return;
if (!w && this._firstPT && (this.vars.lazy !== !1 && this._duration || this.vars.lazy && !this._duration))
return this._time = tt, this._totalTime = _t, this._rawPrevTime = Et, this._cycle = G, g.lazyTweens.push(this), void (this._lazy = [E, P]);
!this._time || M || ct ? M && this._ease._calcEnd && !ct && (this.ratio = this._ease.getRatio(this._time === 0 ? 0 : 1)) : this.ratio = this._ease.getRatio(this._time / Pt);
}
for (this._lazy !== !1 && (this._lazy = !1), this._active || !this._paused && this._time !== tt && E >= 0 && (this._active = !0), _t === 0 && (this._initted === 2 && E > 0 && this._init(), this._startAt && (E >= 0 ? this._startAt.render(E, !0, w) : I || (I = "_dummyGS")), this.vars.onStart && (this._totalTime !== 0 || Pt === 0) && (P || this._callback("onStart"))), C = this._firstPT; C; )
C.f ? C.t[C.p](C.c * this.ratio + C.s) : C.t[C.p] = C.c * this.ratio + C.s, C = C._next;
this._onUpdate && (0 > E && this._startAt && this._startTime && this._startAt.render(E, !0, w), P || (this._totalTime !== _t || I) && this._callback("onUpdate")), this._cycle !== G && (P || this._gc || this.vars.onRepeat && this._callback("onRepeat")), I && (!this._gc || w) && (0 > E && this._startAt && !this._onUpdate && this._startTime && this._startAt.render(E, !0, w), M && (this._timeline.autoRemoveChildren && this._enabled(!1, !1), this._active = !1), !P && this.vars[I] && this._callback(I), Pt === 0 && this._rawPrevTime === m && Z !== m && (this._rawPrevTime = 0));
}, u.to = function(E, P, w) {
return new u(E, P, w);
}, u.from = function(E, P, w) {
return w.runBackwards = !0, w.immediateRender = w.immediateRender != 0, new u(E, P, w);
}, u.fromTo = function(E, P, w, M) {
return M.startAt = w, M.immediateRender = M.immediateRender != 0 && w.immediateRender != 0, new u(E, P, M);
}, u.staggerTo = u.allTo = function(E, P, w, M, I, C, U) {
M = M || 0;
var N, X, J, Z, ct = 0, Rt = [], tt = function() {
w.onComplete && w.onComplete.apply(w.onCompleteScope || this, arguments), I.apply(U || w.callbackScope || this, C || O);
}, _t = w.cycle, G = w.startAt && w.startAt.cycle;
for (S(E) || (typeof E == "string" && (E = o.selector(E) || E), v(E) && (E = c(E))), E = E || [], 0 > M && (E = c(E), E.reverse(), M *= -1), N = E.length - 1, J = 0; N >= J; J++) {
X = {};
for (Z in w)
X[Z] = w[Z];
if (_t && (f(X, E, J), X.duration != null && (P = X.duration, delete X.duration)), G) {
G = X.startAt = {};
for (Z in w.startAt)
G[Z] = w.startAt[Z];
f(X.startAt, E, J);
}
X.delay = ct + (X.delay || 0), J === N && I && (X.onComplete = tt), Rt[J] = new u(E[J], P, X), ct += M;
}
return Rt;
}, u.staggerFrom = u.allFrom = function(E, P, w, M, I, C, U) {
return w.runBackwards = !0, w.immediateRender = w.immediateRender != 0, u.staggerTo(E, P, w, M, I, C, U);
}, u.staggerFromTo = u.allFromTo = function(E, P, w, M, I, C, U, N) {
return M.startAt = w, M.immediateRender = M.immediateRender != 0 && w.immediateRender != 0, u.staggerTo(E, P, M, I, C, U, N);
}, u.delayedCall = function(E, P, w, M, I) {
return new u(P, 0, {
delay: E,
onComplete: P,
onCompleteParams: w,
callbackScope: M,
onReverseComplete: P,
onReverseCompleteParams: w,
immediateRender: !1,
useFrames: I,
overwrite: 0
});
}, u.set = function(E, P) {
return new u(E, 0, P);
}, u.isTweening = function(E) {
return o.getTweensOf(E, !0).length > 0;
};
var k = function(E, P) {
for (var w = [], M = 0, I = E._first; I; )
I instanceof o ? w[M++] = I : (P && (w[M++] = I), w = w.concat(k(I, P)), M = w.length), I = I._next;
return w;
}, R = u.getAllTweens = function(E) {
return k(x._rootTimeline, E).concat(k(x._rootFramesTimeline, E));
};
u.killAll = function(E, P, w, M) {
P == null && (P = !0), w == null && (w = !0);
var I, C, U, N = R(M != 0), X = N.length, J = P && w && M;
for (U = 0; X > U; U++)
C = N[U], (J || C instanceof a || (I = C.target === C.vars.onComplete) && w || P && !I) && (E ? C.totalTime(C._reversed ? 0 : C.totalDuration()) : C._enabled(!1, !1));
}, u.killChildTweensOf = function(E, P) {
if (E != null) {
var w, M, I, C, U, N = g.tweenLookup;
if (typeof E == "string" && (E = o.selector(E) || E), v(E) && (E = c(E)), S(E))
for (C = E.length; --C > -1; )
u.killChildTweensOf(E[C], P);
else {
w = [];
for (I in N)
for (M = N[I].target.parentNode; M; )
M === E && (w = w.concat(N[I].tweens)), M = M.parentNode;
for (U = w.length, C = 0; U > C; C++)
P && w[C].totalTime(w[C].totalDuration()), w[C]._enabled(!1, !1);
}
}
};
var F = function(E, P, w, M) {
P = P !== !1, w = w !== !1, M = M !== !1;
for (var I, C, U = R(M), N = P && w && M, X = U.length; --X > -1; )
C = U[X], (N || C instanceof a || (I = C.target === C.vars.onComplete) && w || P && !I) && C.paused(E);
};
return u.pauseAll = function(E, P, w) {
F(!0, E, P, w);
}, u.resumeAll = function(E, P, w) {
F(!1, E, P, w);
}, u.globalTimeScale = function(E) {
var P = x._rootTimeline, w = o.ticker.time;
return arguments.length ? (E = E || m, P._startTime = w - (w - P._startTime) * P._timeScale / E, P = x._rootFramesTimeline, w = o.ticker.frame, P._startTime = w - (w - P._startTime) * P._timeScale / E, P._timeScale = x._rootTimeline._timeScale = E, E) : P._timeScale;
}, b.progress = function(E, P) {
return arguments.length ? this.totalTime(
this.duration() * (this._yoyo && 1 & this._cycle ? 1 - E : E) + this._cycle * (this._duration + this._repeatDelay),
P
) : this._time / this.duration();
}, b.totalProgress = function(E, P) {
return arguments.length ? this.totalTime(this.totalDuration() * E, P) : this._totalTime / this.totalDuration();
}, b.time = function(E, P) {
return arguments.length ? (this._dirty && this.totalDuration(), E > this._duration && (E = this._duration), this._yoyo && 1 & this._cycle ? E = this._duration - E + this._cycle * (this._duration + this._repeatDelay) : this._repeat !== 0 && (E += this._cycle * (this._duration + this._repeatDelay)), this.totalTime(E, P)) : this._time;
}, b.duration = function(E) {
return arguments.length ? x.prototype.duration.call(this, E) : this._duration;
}, b.totalDuration = function(E) {
return arguments.length ? this._repeat === -1 ? this : this.duration(
(E - this._repeat * this._repeatDelay) / (this._repeat + 1)
) : (this._dirty && (this._totalDuration = this._repeat === -1 ? 999999999999 : this._duration * (this._repeat + 1) + this._repeatDelay * this._repeat, this._dirty = !1), this._totalDuration);
}, b.repeat = function(E) {
return arguments.length ? (this._repeat = E, this._uncache(!0)) : this._repeat;
}, b.repeatDelay = function(E) {
return arguments.length ? (this._repeatDelay = E, this._uncache(!0)) : this._repeatDelay;
}, b.yoyo = function(E) {
return arguments.length ? (this._yoyo = E, this) : this._yoyo;
}, u;
},
!0
), hn._gsDefine(
"TimelineLite",
["core.Animation", "core.SimpleTimeline", "TweenLite"],
function(x, a, o) {
var c = function(w) {
a.call(this, w), this._labels = {}, this.autoRemoveChildren = this.vars.autoRemoveChildren === !0, this.smoothChildTiming = this.vars.smoothChildTiming === !0, this._sortChildren = !0, this._onUpdate = this.vars.onUpdate;
var M, I, C = this.vars;
for (I in C)
M = C[I], v(M) && M.join("").indexOf("{self}") !== -1 && (C[I] = this._swapSelfInParams(M));
v(C.tweens) && this.add(C.tweens, 0, C.align, C.stagger);
}, f = 1e-10, u = o._internals, m = c._internals = {}, g = u.isSelector, v = u.isArray, S = u.lazyTweens, b = u.lazyRender, O = hn._gsDefine.globals, k = function(w) {
var M, I = {};
for (M in w)
I[M] = w[M];
return I;
}, R = function(w, M, I) {
var C, U, N = w.cycle;
for (C in N)
U = N[C], w[C] = typeof U == "function" ? U(I, M[I]) : U[I % U.length];
delete w.cycle;
}, F = m.pauseCallback = function() {
}, E = function(w) {
var M, I = [], C = w.length;
for (M = 0; M !== C; I.push(w[M++]))
;
return I;
}, P = c.prototype = new a();
return c.version = "2.0.2", P.constructor = c, P.kill()._gc = P._forcingPlayhead = P._hasPause = !1, P.to = function(w, M, I, C) {
var U = I.repeat && O.TweenMax || o;
return M ? this.add(new U(w, M, I), C) : this.set(w, I, C);
}, P.from = function(w, M, I, C) {
return this.add((I.repeat && O.TweenMax || o).from(w, M, I), C);
}, P.fromTo = function(w, M, I, C, U) {
var N = C.repeat && O.TweenMax || o;
return M ? this.add(N.fromTo(w, M, I, C), U) : this.set(w, C, U);
}, P.staggerTo = function(w, M, I, C, U, N, X, J) {
var Z, ct, Rt = new c({
onComplete: N,
onCompleteParams: X,
callbackScope: J,
smoothChildTiming: this.smoothChildTiming
}), tt = I.cycle;
for (typeof w == "string" && (w = o.selector(w) || w), w = w || [], g(w) && (w = E(w)), C = C || 0, 0 > C && (w = E(w), w.reverse(), C *= -1), ct = 0; ct < w.length; ct++)
Z = k(I), Z.startAt && (Z.startAt = k(Z.startAt), Z.startAt.cycle && R(Z.startAt, w, ct)), tt && (R(Z, w, ct), Z.duration != null && (M = Z.duration, delete Z.duration)), Rt.to(w[ct], M, Z, ct * C);
return this.add(Rt, U);
}, P.staggerFrom = function(w, M, I, C, U, N, X, J) {
return I.immediateRender = I.immediateRender != 0, I.runBackwards = !0, this.staggerTo(w, M, I, C, U, N, X, J);
}, P.staggerFromTo = function(w, M, I, C, U, N, X, J, Z) {
return C.startAt = I, C.immediateRender = C.immediateRender != 0 && I.immediateRender != 0, this.staggerTo(w, M, C, U, N, X, J, Z);
}, P.call = function(w, M, I, C) {
return this.add(o.delayedCall(0, w, M, I), C);
}, P.set = function(w, M, I) {
return I = this._parseTimeOrLabel(I, 0, !0), M.immediateRender == null && (M.immediateRender = I === this._time && !this._paused), this.add(new o(w, 0, M), I);
}, c.exportRoot = function(w, M) {
w = w || {}, w.smoothChildTiming == null && (w.smoothChildTiming = !0);
var I, C, U, N, X = new c(w), J = X._timeline;
for (M == null && (M = !0), J._remove(X, !0), X._startTime = 0, X._rawPrevTime = X._time = X._totalTime = J._time, U = J._first; U; )
N = U._next, M && U instanceof o && U.target === U.vars.onComplete || (C = U._startTime - U._delay, 0 > C && (I = 1), X.add(U, C)), U = N;
return J.add(X, 0), I && X.totalDuration(), X;
}, P.add = function(w, M, I, C) {
var U, N, X, J, Z, ct;
if (typeof M != "number" && (M = this._parseTimeOrLabel(M, 0, !0, w)), !(w instanceof x)) {
if (w instanceof Array || w && w.push && v(w)) {
for (I = I || "normal", C = C || 0, U = M, N = w.length, X = 0; N > X; X++)
v(J = w[X]) && (J = new c({ tweens: J })), this.add(J, U), typeof J != "string" && typeof J != "function" && (I === "sequence" ? U = J._startTime + J.totalDuration() / J._timeScale : I === "start" && (J._startTime -= J.delay())), U += C;
return this._uncache(!0);
}
if (typeof w == "string")
return this.addLabel(w, M);
if (typeof w != "function")
throw "Cannot add " + w + " into the timeline; it is not a tween, timeline, function, or string.";
w = o.delayedCall(0, w);
}
if (a.prototype.add.call(this, w, M), w._time && (U = Math.max(
0,
Math.min(
w.totalDuration(),
(this.rawTime() - w._startTime) * w._timeScale
)
), Math.abs(U - w._totalTime) > 1e-5 && w.render(U, !1, !1)), (this._gc || this._time === this._duration) && !this._paused && this._duration < this.duration())
for (Z = this, ct = Z.rawTime() > w._startTime; Z._timeline; )
ct && Z._timeline.smoothChildTiming ? Z.totalTime(Z._totalTime, !0) : Z._gc && Z._enabled(!0, !1), Z = Z._timeline;
return this;
}, P.remove = function(w) {
if (w instanceof x) {
this._remove(w, !1);
var M = w._timeline = w.vars.useFrames ? x._rootFramesTimeline : x._rootTimeline;
return w._startTime = (w._paused ? w._pauseTime : M._time) - (w._reversed ? w.totalDuration() - w._totalTime : w._totalTime) / w._timeScale, this;
}
if (w instanceof Array || w && w.push && v(w)) {
for (var I = w.length; --I > -1; )
this.remove(w[I]);
return this;
}
return typeof w == "string" ? this.removeLabel(w) : this.kill(null, w);
}, P._remove = function(w, M) {
a.prototype._remove.call(this, w, M);
var I = this._last;
return I ? this._time > this.duration() && (this._time = this._duration, this._totalTime = this._totalDuration) : this._time = this._totalTime = this._duration = this._totalDuration = 0, this;
}, P.append = function(w, M) {
return this.add(w, this._parseTimeOrLabel(null, M, !0, w));
}, P.insert = P.insertMultiple = function(w, M, I, C) {
return this.add(w, M || 0, I, C);
}, P.appendMultiple = function(w, M, I, C) {
return this.add(w, this._parseTimeOrLabel(null, M, !0, w), I, C);
}, P.addLabel = function(w, M) {
return this._labels[w] = this._parseTimeOrLabel(M), this;
}, P.addPause = function(w, M, I, C) {
var U = o.delayedCall(0, F, I, C || this);
return U.vars.onComplete = U.vars.onReverseComplete = M, U.data = "isPause", this._hasPause = !0, this.add(U, w);
}, P.removeLabel = function(w) {
return delete this._labels[w], this;
}, P.getLabelTime = function(w) {
return this._labels[w] != null ? this._labels[w] : -1;
}, P._parseTimeOrLabel = function(w, M, I, C) {
var U, N;
if (C instanceof x && C.timeline === this)
this.remove(C);
else if (C && (C instanceof Array || C.push && v(C)))
for (N = C.length; --N > -1; )
C[N] instanceof x && C[N].timeline === this && this.remove(C[N]);
if (U = typeof w != "number" || M ? this.duration() > 99999999999 ? this.recent().endTime(!1) : this._duration : 0, typeof M == "string")
return this._parseTimeOrLabel(
M,
I && typeof w == "number" && this._labels[M] == null ? w - U : 0,
I
);
if (M = M || 0, typeof w != "string" || !isNaN(w) && this._labels[w] == null)
w == null && (w = U);
else {
if (N = w.indexOf("="), N === -1)
return this._labels[w] == null ? I ? this._labels[w] = U + M : M : this._labels[w] + M;
M = parseInt(w.charAt(N - 1) + "1", 10) * Number(w.substr(N + 1)), w = N > 1 ? this._parseTimeOrLabel(w.substr(0, N - 1), 0, I) : U;
}
return Number(w) + M;
}, P.seek = function(w, M) {
return this.totalTime(
typeof w == "number" ? w : this._parseTimeOrLabel(w),
M !== !1
);
}, P.stop = function() {
return this.paused(!0);
}, P.gotoAndPlay = function(w, M) {
return this.play(w, M);
}, P.gotoAndStop = function(w, M) {
return this.pause(w, M);
}, P.render = function(w, M, I) {
this._gc && this._enabled(!0, !1);
var C, U, N, X, J, Z, ct, Rt = this._time, tt = this._dirty ? this.totalDuration() : this._totalDuration, _t = this._startTime, G = this._timeScale, Pt = this._paused;
if (Rt !== this._time && (w += this._time - Rt), w >= tt - 1e-7 && w >= 0)
this._totalTime = this._time = tt, this._reversed || this._hasPausedChild() || (U = !0, X = "onComplete", J = !!this._timeline.autoRemoveChildren, this._duration === 0 && (0 >= w && w >= -1e-7 || this._rawPrevTime < 0 || this._rawPrevTime === f) && this._rawPrevTime !== w && this._first && (J = !0, this._rawPrevTime > f && (X = "onReverseComplete"))), this._rawPrevTime = this._duration || !M || w || this._rawPrevTime === w ? w : f, w = tt + 1e-4;
else if (1e-7 > w)
if (this._totalTime = this._time = 0, (Rt !== 0 || this._duration === 0 && this._rawPrevTime !== f && (this._rawPrevTime > 0 || 0 > w && this._rawPrevTime >= 0)) && (X = "onReverseComplete", U = this._reversed), 0 > w)
this._active = !1, this._timeline.autoRemoveChildren && this._reversed ? (J = U = !0, X = "onReverseComplete") : this._rawPrevTime >= 0 && this._first && (J = !0), this._rawPrevTime = w;
else {
if (this._rawPrevTime = this._duration || !M || w || this._rawPrevTime === w ? w : f, w === 0 && U)
for (C = this._first; C && C._startTime === 0; )
C._duration || (U = !1), C = C._next;
w = 0, this._initted || (J = !0);
}
else {
if (this._hasPause && !this._forcingPlayhead && !M) {
if (w >= Rt)
for (C = this._first; C && C._startTime <= w && !Z; )
C._duration || C.data !== "isPause" || C.ratio || C._startTime === 0 && this._rawPrevTime === 0 || (Z = C), C = C._next;
else
for (C = this._last; C && C._startTime >= w && !Z; )
C._duration || C.data === "isPause" && C._rawPrevTime > 0 && (Z = C), C = C._prev;
Z && (this._time = w = Z._startTime, this._totalTime = w + this._cycle * (this._totalDuration + this._repeatDelay));
}
this._totalTime = this._time = this._rawPrevTime = w;
}
if (this._time !== Rt && this._first || I || J || Z) {
if (this._initted || (this._initted = !0), this._active || !this._paused && this._time !== Rt && w > 0 && (this._active = !0), Rt === 0 && this.vars.onStart && (this._time === 0 && this._duration || M || this._callback("onStart")), ct = this._time, ct >= Rt)
for (C = this._first; C && (N = C._next, ct === this._time && (!this._paused || Pt)); )
(C._active || C._startTime <= ct && !C._paused && !C._gc) && (Z === C && this.pause(), C._reversed ? C.render(
(C._dirty ? C.totalDuration() : C._totalDuration) - (w - C._startTime) * C._timeScale,
M,
I
) : C.render((w - C._startTime) * C._timeScale, M, I)), C = N;
else
for (C = this._last; C && (N = C._prev, ct === this._time && (!this._paused || Pt)); ) {
if (C._active || C._startTime <= Rt && !C._paused && !C._gc) {
if (Z === C) {
for (Z = C._prev; Z && Z.endTime() > this._time; )
Z.render(
Z._reversed ? Z.totalDuration() - (w - Z._startTime) * Z._timeScale : (w - Z._startTime) * Z._timeScale,
M,
I
), Z = Z._prev;
Z = null, this.pause();
}
C._reversed ? C.render(
(C._dirty ? C.totalDuration() : C._totalDuration) - (w - C._startTime) * C._timeScale,
M,
I
) : C.render((w - C._startTime) * C._timeScale, M, I);
}
C = N;
}
this._onUpdate && (M || (S.length && b(), this._callback("onUpdate"))), X && (this._gc || (_t === this._startTime || G !== this._timeScale) && (this._time === 0 || tt >= this.totalDuration()) && (U && (S.length && b(), this._timeline.autoRemoveChildren && this._enabled(!1, !1), this._active = !1), !M && this.vars[X] && this._callback(X)));
}
}, P._hasPausedChild = function() {
for (var w = this._first; w; ) {
if (w._paused || w instanceof c && w._hasPausedChild())
return !0;
w = w._next;
}
return !1;
}, P.getChildren = function(w, M, I, C) {
C = C || -9999999999;
for (var U = [], N = this._first, X = 0; N; )
N._startTime < C || (N instanceof o ? M !== !1 && (U[X++] = N) : (I !== !1 && (U[X++] = N), w !== !1 && (U = U.concat(N.getChildren(!0, M, I)), X = U.length))), N = N._next;
return U;
}, P.getTweensOf = function(w, M) {
var I, C, U = this._gc, N = [], X = 0;
for (U && this._enabled(!0, !0), I = o.getTweensOf(w), C = I.length; --C > -1; )
(I[C].timeline === this || M && this._contains(I[C])) && (N[X++] = I[C]);
return U && this._enabled(!1, !0), N;
}, P.recent = function() {
return this._recent;
}, P._contains = function(w) {
for (var M = w.timeline; M; ) {
if (M === this)
return !0;
M = M.timeline;
}
return !1;
}, P.shiftChildren = function(w, M, I) {
I = I || 0;
for (var C, U = this._first, N = this._labels; U; )
U._startTime >= I && (U._startTime += w), U = U._next;
if (M)
for (C in N)
N[C] >= I && (N[C] += w);
return this._uncache(!0);
}, P._kill = function(w, M) {
if (!w && !M)
return this._enabled(!1, !1);
for (var I = M ? this.getTweensOf(M) : this.getChildren(!0, !0, !1), C = I.length, U = !1; --C > -1; )
I[C]._kill(w, M) && (U = !0);
return U;
}, P.clear = function(w) {
var M = this.getChildren(!1, !0, !0), I = M.length;
for (this._time = this._totalTime = 0; --I > -1; )
M[I]._enabled(!1, !1);
return w !== !1 && (this._labels = {}), this._uncache(!0);
}, P.invalidate = function() {
for (var w = this._first; w; )
w.invalidate(), w = w._next;
return x.prototype.invalidate.call(this);
}, P._enabled = function(w, M) {
if (w === this._gc)
for (var I = this._first; I; )
I._enabled(w, !0), I = I._next;
return a.prototype._enabled.call(this, w, M);
}, P.totalTime = function(w, M, I) {
this._forcingPlayhead = !0;
var C = x.prototype.totalTime.apply(this, arguments);
return this._forcingPlayhead = !1, C;
}, P.duration = function(w) {
return arguments.length ? (this.duration() !== 0 && w !== 0 && this.timeScale(this._duration / w), this) : (this._dirty && this.totalDuration(), this._duration);
}, P.totalDuration = function(w) {
if (!arguments.length) {
if (this._dirty) {
for (var M, I, C = 0, U = this._last, N = 999999999999; U; )
M = U._prev, U._dirty && U.totalDuration(), U._startTime > N && this._sortChildren && !U._paused && !this._calculatingDuration ? (this._calculatingDuration = 1, this.add(U, U._startTime - U._delay), this._calculatingDuration = 0) : N = U._startTime, U._startTime < 0 && !U._paused && (C -= U._startTime, this._timeline.smoothChildTiming && (this._startTime += U._startTime / this._timeScale, this._time -= U._startTime, this._totalTime -= U._startTime, this._rawPrevTime -= U._startTime), this.shiftChildren(-U._startTime, !1, -9999999999), N = 0), I = U._startTime + U._totalDuration / U._timeScale, I > C && (C = I), U = M;
this._duration = this._totalDuration = C, this._dirty = !1;
}
return this._totalDuration;
}
return w && this.totalDuration() ? this.timeScale(this._totalDuration / w) : this;
}, P.paused = function(w) {
if (!w)
for (var M = this._first, I = this._time; M; )
M._startTime === I && M.data === "isPause" && (M._rawPrevTime = 0), M = M._next;
return x.prototype.paused.apply(this, arguments);
}, P.usesFrames = function() {
for (var w = this._timeline; w._timeline; )
w = w._timeline;
return w === x._rootFramesTimeline;
}, P.rawTime = function(w) {
return w && (this._paused || this._repeat && this.time() > 0 && this.totalProgress() < 1) ? this._totalTime % (this._duration + this._repeatDelay) : this._paused ? this._totalTime : (this._timeline.rawTime(w) - this._startTime) * this._timeScale;
}, c;
},
!0
), hn._gsDefine(
"TimelineMax",
["TimelineLite", "TweenLite", "easing.Ease"],
function(x, a, o) {
var c = function(O) {
x.call(this, O), this._repeat = this.vars.repeat || 0, this._repeatDelay = this.vars.repeatDelay || 0, this._cycle = 0, this._yoyo = this.vars.yoyo === !0, this._dirty = !0;
}, f = 1e-10, u = a._internals, m = u.lazyTweens, g = u.lazyRender, v = hn._gsDefine.globals, S = new o(null, null, 1, 0), b = c.prototype = new x();
return b.constructor = c, b.kill()._gc = !1, c.version = "2.0.2", b.invalidate = function() {
return this._yoyo = this.vars.yoyo === !0, this._repeat = this.vars.repeat || 0, this._repeatDelay = this.vars.repeatDelay || 0, this._uncache(!0), x.prototype.invalidate.call(this);
}, b.addCallback = function(O, k, R, F) {
return this.add(a.delayedCall(0, O, R, F), k);
}, b.removeCallback = function(O, k) {
if (O)
if (k == null)
this._kill(null, O);
else
for (var R = this.getTweensOf(O, !1), F = R.length, E = this._parseTimeOrLabel(k); --F > -1; )
R[F]._startTime === E && R[F]._enabled(!1, !1);
return this;
}, b.removePause = function(O) {
return this.removeCallback(x._internals.pauseCallback, O);
}, b.tweenTo = function(O, k) {
k = k || {};
var R, F, E, P = {
ease: S,
useFrames: this.usesFrames(),
immediateRender: !1,
lazy: !1
}, w = k.repeat && v.TweenMax || a;
for (F in k)
P[F] = k[F];
return P.time = this._parseTimeOrLabel(O), R = Math.abs(Number(P.time) - this._time) / this._timeScale || 1e-3, E = new w(this, R, P), P.onStart = function() {
E.target.paused(!0), E.vars.time === E.target.time() || R !== E.duration() || E.isFromTo || E.duration(
Math.abs(E.vars.time - E.target.time()) / E.target._timeScale
).render(E.time(), !0, !0), k.onStart && k.onStart.apply(
k.onStartScope || k.callbackScope || E,
k.onStartParams || []
);
}, E;
}, b.tweenFromTo = function(O, k, R) {
R = R || {}, O = this._parseTimeOrLabel(O), R.startAt = {
onComplete: this.seek,
onCompleteParams: [O],
callbackScope: this
}, R.immediateRender = R.immediateRender !== !1;
var F = this.tweenTo(k, R);
return F.isFromTo = 1, F.duration(Math.abs(F.vars.time - O) / this._timeScale || 1e-3);
}, b.render = function(O, k, R) {
this._gc && this._enabled(!0, !1);
var F, E, P, w, M, I, C, U, N = this._time, X = this._dirty ? this.totalDuration() : this._totalDuration, J = this._duration, Z = this._totalTime, ct = this._startTime, Rt = this._timeScale, tt = this._rawPrevTime, _t = this._paused, G = this._cycle;
if (N !== this._time && (O += this._time - N), O >= X - 1e-7 && O >= 0)
this._locked || (this._totalTime = X, this._cycle = this._repeat), this._reversed || this._hasPausedChild() || (E = !0, w = "onComplete", M = !!this._timeline.autoRemoveChildren, this._duration === 0 && (0 >= O && O >= -1e-7 || 0 > tt || tt === f) && tt !== O && this._first && (M = !0, tt > f && (w = "onReverseComplete"))), this._rawPrevTime = this._duration || !k || O || this._rawPrevTime === O ? O : f, this._yoyo && 1 & this._cycle ? this._time = O = 0 : (this._time = J, O = J + 1e-4);
else if (1e-7 > O)
if (this._locked || (this._totalTime = this._cycle = 0), this._time = 0, (N !== 0 || J === 0 && tt !== f && (tt > 0 || 0 > O && tt >= 0) && !this._locked) && (w = "onReverseComplete", E = this._reversed), 0 > O)
this._active = !1, this._timeline.autoRemoveChildren && this._reversed ? (M = E = !0, w = "onReverseComplete") : tt >= 0 && this._first && (M = !0), this._rawPrevTime = O;
else {
if (this._rawPrevTime = J || !k || O || this._rawPrevTime === O ? O : f, O === 0 && E)
for (F = this._first; F && F._startTime === 0; )
F._duration || (E = !1), F = F._next;
O = 0, this._initted || (M = !0);
}
else if (J === 0 && 0 > tt && (M = !0), this._time = this._rawPrevTime = O, this._locked || (this._totalTime = O, this._repeat !== 0 && (I = J + this._repeatDelay, this._cycle = this._totalTime / I >> 0, this._cycle !== 0 && this._cycle === this._totalTime / I && O >= Z && this._cycle--, this._time = this._totalTime - this._cycle * I, this._yoyo && 1 & this._cycle && (this._time = J - this._time), this._time > J ? (this._time = J, O = J + 1e-4) : this._time < 0 ? this._time = O = 0 : O = this._time)), this._hasPause && !this._forcingPlayhead && !k) {
if (O = this._time, O >= N || this._repeat && G !== this._cycle)
for (F = this._first; F && F._startTime <= O && !C; )
F._duration || F.data !== "isPause" || F.ratio || F._startTime === 0 && this._rawPrevTime === 0 || (C = F), F = F._next;
else
for (F = this._last; F && F._startTime >= O && !C; )
F._duration || F.data === "isPause" && F._rawPrevTime > 0 && (C = F), F = F._prev;
C && C._startTime < J && (this._time = O = C._startTime, this._totalTime = O + this._cycle * (this._totalDuration + this._repeatDelay));
}
if (this._cycle !== G && !this._locked) {
var Pt = this._yoyo && (1 & G) !== 0, Et = Pt === (this._yoyo && (1 & this._cycle) !== 0), At = this._totalTime, ce = this._cycle, re = this._rawPrevTime, Ft = this._time;
if (this._totalTime = G * J, this._cycle < G ? Pt = !Pt : this._totalTime += J, this._time = N, this._rawPrevTime = J === 0 ? tt - 1e-4 : tt, this._cycle = G, this._locked = !0, N = Pt ? 0 : J, this.render(N, k, J === 0), k || this._gc || this.vars.onRepeat && (this._cycle = ce, this._locked = !1, this._callback("onRepeat")), N !== this._time || (Et && (this._cycle = G, this._locked = !0, N = Pt ? J + 1e-4 : -1e-4, this.render(N, !0, !1)), this._locked = !1, this._paused && !_t))
return;
this._time = Ft, this._totalTime = At, this._cycle = ce, this._rawPrevTime = re;
}
if (!(this._time !== N && this._first || R || M || C))
return void (Z !== this._totalTime && this._onUpdate && (k || this._callback("onUpdate")));
if (this._initted || (this._initted = !0), this._active || !this._paused && this._totalTime !== Z && O > 0 && (this._active = !0), Z === 0 && this.vars.onStart && (this._totalTime === 0 && this._totalDuration || k || this._callback("onStart")), U = this._time, U >= N)
for (F = this._first; F && (P = F._next, U === this._time && (!this._paused || _t)); )
(F._active || F._startTime <= this._time && !F._paused && !F._gc) && (C === F && this.pause(), F._reversed ? F.render(
(F._dirty ? F.totalDuration() : F._totalDuration) - (O - F._startTime) * F._timeScale,
k,
R
) : F.render((O - F._startTime) * F._timeScale, k, R)), F = P;
else
for (F = this._last; F && (P = F._prev, U === this._time && (!this._paused || _t)); ) {
if (F._active || F._startTime <= N && !F._paused && !F._gc) {
if (C === F) {
for (C = F._prev; C && C.endTime() > this._time; )
C.render(
C._reversed ? C.totalDuration() - (O - C._startTime) * C._timeScale : (O - C._startTime) * C._timeScale,
k,
R
), C = C._prev;
C = null, this.pause();
}
F._reversed ? F.render(
(F._dirty ? F.totalDuration() : F._totalDuration) - (O - F._startTime) * F._timeScale,
k,
R
) : F.render((O - F._startTime) * F._timeScale, k, R);
}
F = P;
}
this._onUpdate && (k || (m.length && g(), this._callback("onUpdate"))), w && (this._locked || this._gc || (ct === this._startTime || Rt !== this._timeScale) && (this._time === 0 || X >= this.totalDuration()) && (E && (m.length && g(), this._timeline.autoRemoveChildren && this._enabled(!1, !1), this._active = !1), !k && this.vars[w] && this._callback(w)));
}, b.getActive = function(O, k, R) {
O == null && (O = !0), k == null && (k = !0), R == null && (R = !1);
var F, E, P = [], w = this.getChildren(O, k, R), M = 0, I = w.length;
for (F = 0; I > F; F++)
E = w[F], E.isActive() && (P[M++] = E);
return P;
}, b.getLabelAfter = function(O) {
O || O !== 0 && (O = this._time);
var k, R = this.getLabelsArray(), F = R.length;
for (k = 0; F > k; k++)
if (R[k].time > O)
return R[k].name;
return null;
}, b.getLabelBefore = function(O) {
O == null && (O = this._time);
for (var k = this.getLabelsArray(), R = k.length; --R > -1; )
if (k[R].time < O)
return k[R].name;
return null;
}, b.getLabelsArray = function() {
var O, k = [], R = 0;
for (O in this._labels)
k[R++] = { time: this._labels[O], name: O };
return k.sort(function(F, E) {
return F.time - E.time;
}), k;
}, b.invalidate = function() {
return this._locked = !1, x.prototype.invalidate.call(this);
}, b.progress = function(O, k) {
return arguments.length ? this.totalTime(
this.duration() * (this._yoyo && 1 & this._cycle ? 1 - O : O) + this._cycle * (this._duration + this._repeatDelay),
k
) : this._time / this.duration() || 0;
}, b.totalProgress = function(O, k) {
return arguments.length ? this.totalTime(this.totalDuration() * O, k) : this._totalTime / this.totalDuration() || 0;
}, b.totalDuration = function(O) {
return arguments.length ? this._repeat !== -1 && O ? this.timeScale(this.totalDuration() / O) : this : (this._dirty && (x.prototype.totalDuration.call(this), this._totalDuration = this._repeat === -1 ? 999999999999 : this._duration * (this._repeat + 1) + this._repeatDelay * this._repeat), this._totalDuration);
}, b.time = function(O, k) {
return arguments.length ? (this._dirty && this.totalDuration(), O > this._duration && (O = this._duration), this._yoyo && 1 & this._cycle ? O = this._duration - O + this._cycle * (this._duration + this._repeatDelay) : this._repeat !== 0 && (O += this._cycle * (this._duration + this._repeatDelay)), this.totalTime(O, k)) : this._time;
}, b.repeat = function(O) {
return arguments.length ? (this._repeat = O, this._uncache(!0)) : this._repeat;
}, b.repeatDelay = function(O) {
return arguments.length ? (this._repeatDelay = O, this._uncache(!0)) : this._repeatDelay;
}, b.yoyo = function(O) {
return arguments.length ? (this._yoyo = O, this) : this._yoyo;
}, b.currentLabel = function(O) {
return arguments.length ? this.seek(O, !0) : this.getLabelBefore(this._time + 1e-8);
}, c;
},
!0
), function() {
var x = 180 / Math.PI, a = [], o = [], c = [], f = {}, u = hn._gsDefine.globals, m = function(w, M, I, C) {
I === C && (I = C - (C - M) / 1e6), w === M && (M = w + (I - w) / 1e6), this.a = w, this.b = M, this.c = I, this.d = C, this.da = C - w, this.ca = I - w, this.ba = M - w;
}, g = ",x,y,z,left,top,right,bottom,marginTop,marginLeft,marginRight,marginBottom,paddingLeft,paddingTop,paddingRight,paddingBottom,backgroundPosition,backgroundPosition_y,", v = function(w, M, I, C) {
var U = { a: w }, N = {}, X = {}, J = { c: C }, Z = (w + M) / 2, ct = (M + I) / 2, Rt = (I + C) / 2, tt = (Z + ct) / 2, _t = (ct + Rt) / 2, G = (_t - tt) / 8;
return U.b = Z + (w - Z) / 4, N.b = tt + G, U.c = N.a = (U.b + N.b) / 2, N.c = X.a = (tt + _t) / 2, X.b = _t - G, J.b = Rt + (C - Rt) / 4, X.c = J.a = (X.b + J.b) / 2, [U, N, X, J];
}, S = function(w, M, I, C, U) {
var N, X, J, Z, ct, Rt, tt, _t, G, Pt, Et, At, ce, re = w.length - 1, Ft = 0, It = w[0].a;
for (N = 0; re > N; N++)
ct = w[Ft], X = ct.a, J = ct.d, Z = w[Ft + 1].d, U ? (Et = a[N], At = o[N], ce = (At + Et) * M * 0.25 / (C ? 0.5 : c[N] || 0.5), Rt = J - (J - X) * (C ? 0.5 * M : Et !== 0 ? ce / Et : 0), tt = J + (Z - J) * (C ? 0.5 * M : At !== 0 ? ce / At : 0), _t = J - (Rt + ((tt - Rt) * (3 * Et / (Et + At) + 0.5) / 4 || 0))) : (Rt = J - (J - X) * M * 0.5, tt = J + (Z - J) * M * 0.5, _t = J - (Rt + tt) / 2), Rt += _t, tt += _t, ct.c = G = Rt, N !== 0 ? ct.b = It : ct.b = It = ct.a + 0.6 * (ct.c - ct.a), ct.da = J - X, ct.ca = G - X, ct.ba = It - X, I ? (Pt = v(X, It, G, J), w.splice(Ft, 1, Pt[0], Pt[1], Pt[2], Pt[3]), Ft += 4) : Ft++, It = tt;
ct = w[Ft], ct.b = It, ct.c = It + 0.4 * (ct.d - It), ct.da = ct.d - ct.a, ct.ca = ct.c - ct.a, ct.ba = It - ct.a, I && (Pt = v(ct.a, It, ct.c, ct.d), w.splice(Ft, 1, Pt[0], Pt[1], Pt[2], Pt[3]));
}, b = function(w, M, I, C) {
var U, N, X, J, Z, ct, Rt = [];
if (C)
for (w = [C].concat(w), N = w.length; --N > -1; )
typeof (ct = w[N][M]) == "string" && ct.charAt(1) === "=" && (w[N][M] = C[M] + Number(ct.charAt(0) + ct.substr(2)));
if (U = w.length - 2, 0 > U)
return Rt[0] = new m(w[0][M], 0, 0, w[0][M]), Rt;
for (N = 0; U > N; N++)
X = w[N][M], J = w[N + 1][M], Rt[N] = new m(X, 0, 0, J), I && (Z = w[N + 2][M], a[N] = (a[N] || 0) + (J - X) * (J - X), o[N] = (o[N] || 0) + (Z - J) * (Z - J));
return Rt[N] = new m(w[N][M], 0, 0, w[N + 1][M]), Rt;
}, O = function(w, M, I, C, U, N) {
var X, J, Z, ct, Rt, tt, _t, G, Pt = {}, Et = [], At = N || w[0];
U = typeof U == "string" ? "," + U + "," : g, M == null && (M = 1);
for (J in w[0])
Et.push(J);
if (w.length > 1) {
for (G = w[w.length - 1], _t = !0, X = Et.length; --X > -1; )
if (J = Et[X], Math.abs(At[J] - G[J]) > 0.05) {
_t = !1;
break;
}
_t && (w = w.conc