Skip to content

Instantly share code, notes, and snippets.

@taise
Last active July 28, 2019 05:39
Show Gist options
  • Select an option

  • Save taise/675440d1142f1e1e7c0b55744345b447 to your computer and use it in GitHub Desktop.

Select an option

Save taise/675440d1142f1e1e7c0b55744345b447 to your computer and use it in GitHub Desktop.
(function() {
var d, aa = "function" == typeof Object.create ? Object.create : function(a) {
var b = function() {};
b.prototype = a;
return new b
},
ba;
if ("function" == typeof Object.setPrototypeOf) ba = Object.setPrototypeOf;
else {
var ca;
a: {
var da = {
a: !0
},
ea = {};
try {
ea.__proto__ = da;
ca = ea.a;
break a
} catch (a) {}
ca = !1
}
ba = ca ? function(a, b) {
a.__proto__ = b;
if (a.__proto__ !== b) throw new TypeError(a + " is not extensible");
return a
} : null
}
var ha = ba,
k = function(a, b) {
a.prototype = aa(b.prototype);
a.prototype.constructor = a;
if (ha) ha(a, b);
else
for (var c in b)
if ("prototype" != c)
if (Object.defineProperties) {
var e = Object.getOwnPropertyDescriptor(b, c);
e && Object.defineProperty(a, c, e)
} else a[c] = b[c];
a.superClass_ = b.prototype
},
ia = "function" == typeof Object.defineProperties ? Object.defineProperty : function(a, b, c) {
a != Array.prototype && a != Object.prototype && (a[b] = c.value)
},
ja = "undefined" != typeof window && window === this ? this : "undefined" != typeof global && null !=
global ? global : this,
ka = function() {
ka = function() {};
ja.Symbol || (ja.Symbol = ma)
},
ma = function() {
var a = 0;
return function(b) {
return "jscomp_symbol_" + (b || "") + a++
}
}(),
oa = function() {
ka();
var a = ja.Symbol.iterator;
a || (a = ja.Symbol.iterator = ja.Symbol("iterator"));
"function" != typeof Array.prototype[a] && ia(Array.prototype, a, {
configurable: !0,
writable: !0,
value: function() {
return na(this)
}
});
oa = function() {}
},
na = function(a) {
var b = 0;
return pa(function() {
return b < a.length ? {
done: !1,
value: a[b++]
} : {
done: !0
}
})
},
pa = function(a) {
oa();
a = {
next: a
};
a[ja.Symbol.iterator] = function() {
return this
};
return a
},
l = function(a) {
oa();
var b = a[Symbol.iterator];
return b ? b.call(a) : na(a)
},
qa = function(a) {
if (!(a instanceof Array)) {
a = l(a);
for (var b, c = []; !(b = a.next()).done;) c.push(b.value);
a = c
}
return a
},
ra = function(a, b) {
if (b) {
for (var c = ja, e = a.split("."), f = 0; f < e.length - 1; f++) {
var g = e[f];
g in c || (c[g] = {});
c = c[g]
}
e = e[e.length - 1];
f = c[e];
g = b(f);
g != f && null != g && ia(c, e, {
configurable: !0,
writable: !0,
value: g
})
}
};
ra("String.prototype.repeat", function(a) {
return a ? a : function(a) {
if (null == this) throw new TypeError("The 'this' value for String.prototype.repeat must not be null or undefined");
var b = this + "";
if (0 > a || 1342177279 < a) throw new RangeError("Invalid count value");
a |= 0;
for (var e = ""; a;)
if (a & 1 && (e += b), a >>>= 1) b += b;
return e
}
});
ra("Array.prototype.fill", function(a) {
return a ? a : function(a, c, e) {
var b = this.length || 0;
0 > c && (c = Math.max(0, b + c));
if (null == e || e > b) e = b;
e = Number(e);
0 > e && (e = Math.max(0, b + e));
for (c = Number(c || 0); c < e; c++) this[c] = a;
return this
}
});
ra("Object.is", function(a) {
return a ? a : function(a, c) {
return a === c ? 0 !== a || 1 / a === 1 / c : a !== a && c !== c
}
});
ra("Array.prototype.includes", function(a) {
return a ? a : function(a, c) {
var b = this;
b instanceof String && (b = String(b));
for (var f = b.length, g = c || 0; g < f; g++)
if (b[g] == a || Object.is(b[g], a)) return !0;
return !1
}
});
var sa = function(a, b) {
return Object.prototype.hasOwnProperty.call(a, b)
};
ra("WeakMap", function(a) {
function b(a) {
sa(a, e) || ia(a, e, {
value: {}
})
}
function c(a) {
var c = Object[a];
c && (Object[a] = function(a) {
b(a);
return c(a)
})
}
if (function() {
if (!a || !Object.seal) return !1;
try {
var b = Object.seal({}),
c = Object.seal({}),
e = new a([
[b, 2],
[c, 3]
]);
if (2 != e.get(b) || 3 != e.get(c)) return !1;
e["delete"](b);
e.set(c, 4);
return !e.has(b) && 4 == e.get(c)
} catch (p) {
return !1
}
}()) return a;
var e = "$jscomp_hidden_" + Math.random().toString().substring(2);
c("freeze");
c("preventExtensions");
c("seal");
var f = 0,
g = function(a) {
this.PolyfillWeakMap$id_ =
(f += Math.random() + 1).toString();
if (a) {
ka();
oa();
a = l(a);
for (var b; !(b = a.next()).done;) b = b.value, this.set(b[0], b[1])
}
};
g.prototype.set = function(a, c) {
b(a);
if (!sa(a, e)) throw Error("a`" + a);
a[e][this.PolyfillWeakMap$id_] = c;
return this
};
g.prototype.get = function(a) {
return sa(a, e) ? a[e][this.PolyfillWeakMap$id_] : void 0
};
g.prototype.has = function(a) {
return sa(a, e) && sa(a[e], this.PolyfillWeakMap$id_)
};
g.prototype["delete"] = function(a) {
return sa(a, e) && sa(a[e], this.PolyfillWeakMap$id_) ? delete a[e][this.PolyfillWeakMap$id_] :
!1
};
return g
});
ra("Map", function(a) {
if (function() {
if (!a || !a.prototype.entries || "function" != typeof Object.seal) return !1;
try {
var b = Object.seal({
x: 4
}),
c = new a(l([
[b, "s"]
]));
if ("s" != c.get(b) || 1 != c.size || c.get({
x: 4
}) || c.set({
x: 4
}, "t") != c || 2 != c.size) return !1;
var e = c.entries(),
f = e.next();
if (f.done || f.value[0] != b || "s" != f.value[1]) return !1;
f = e.next();
return f.done || 4 != f.value[0].x || "t" != f.value[1] || !e.next().done ? !1 : !0
} catch (t) {
return !1
}
}()) return a;
ka();
oa();
var b = new WeakMap,
c = function(a) {
this.data_ = {};
this.PolyfillMap$head_ =
g();
this.size = 0;
if (a) {
a = l(a);
for (var b; !(b = a.next()).done;) b = b.value, this.set(b[0], b[1])
}
};
c.prototype.set = function(a, b) {
var c = e(this, a);
c.list || (c.list = this.data_[c.id] = []);
c.entry ? c.entry.value = b : (c.entry = {
next: this.PolyfillMap$head_,
previous: this.PolyfillMap$head_.previous,
head: this.PolyfillMap$head_,
key: a,
value: b
}, c.list.push(c.entry), this.PolyfillMap$head_.previous.next = c.entry, this.PolyfillMap$head_.previous = c.entry, this.size++);
return this
};
c.prototype["delete"] = function(a) {
a = e(this, a);
return a.entry &&
a.list ? (a.list.splice(a.index, 1), a.list.length || delete this.data_[a.id], a.entry.previous.next = a.entry.next, a.entry.next.previous = a.entry.previous, a.entry.head = null, this.size--, !0) : !1
};
c.prototype.clear = function() {
this.data_ = {};
this.PolyfillMap$head_ = this.PolyfillMap$head_.previous = g();
this.size = 0
};
c.prototype.has = function(a) {
return !!e(this, a).entry
};
c.prototype.get = function(a) {
return (a = e(this, a).entry) && a.value
};
c.prototype.entries = function() {
return f(this, function(a) {
return [a.key, a.value]
})
};
c.prototype.keys =
function() {
return f(this, function(a) {
return a.key
})
};
c.prototype.values = function() {
return f(this, function(a) {
return a.value
})
};
c.prototype.forEach = function(a, b) {
for (var c = this.entries(), e; !(e = c.next()).done;) e = e.value, a.call(b, e[1], e[0], this)
};
c.prototype[Symbol.iterator] = c.prototype.entries;
var e = function(a, c) {
var e = c && typeof c;
"object" == e || "function" == e ? b.has(c) ? e = b.get(c) : (e = "" + ++h, b.set(c, e)) : e = "p_" + c;
var f = a.data_[e];
if (f && sa(a.data_, e))
for (var g = 0; g < f.length; g++) {
var m = f[g];
if (c !== c && m.key !==
m.key || c === m.key) return {
id: e,
list: f,
index: g,
entry: m
}
}
return {
id: e,
list: f,
index: -1,
entry: void 0
}
},
f = function(a, b) {
var c = a.PolyfillMap$head_;
return pa(function() {
if (c) {
for (; c.head != a.PolyfillMap$head_;) c = c.previous;
for (; c.next != c.head;) return c = c.next, {
done: !1,
value: b(c)
};
c = null
}
return {
done: !0,
value: void 0
}
})
},
g = function() {
var a = {};
return a.previous = a.next = a.head = a
},
h = 0;
return c
});
ra("Promise", function(a) {
function b() {
this.batch_ = null
}
function c(a) {
return a instanceof f ? a : new f(function(b) {
b(a)
})
}
if (a) return a;
b.prototype.asyncExecute = function(a) {
null == this.batch_ && (this.batch_ = [], this.asyncExecuteBatch_());
this.batch_.push(a)
};
b.prototype.asyncExecuteBatch_ = function() {
var a = this;
this.asyncExecuteFunction(function() {
a.executeBatch_()
})
};
var e = ja.setTimeout;
b.prototype.asyncExecuteFunction = function(a) {
e(a, 0)
};
b.prototype.executeBatch_ = function() {
for (; this.batch_ && this.batch_.length;) {
var a =
this.batch_;
this.batch_ = [];
for (var b = 0; b < a.length; ++b) {
var c = a[b];
delete a[b];
try {
c()
} catch (p) {
this.asyncThrow_(p)
}
}
}
this.batch_ = null
};
b.prototype.asyncThrow_ = function(a) {
this.asyncExecuteFunction(function() {
throw a;
})
};
var f = function(a) {
this.state_ = 0;
this.PolyfillPromise$result_ = void 0;
this.onSettledCallbacks_ = [];
var b = this.createResolveAndReject_();
try {
a(b.resolve, b.reject)
} catch (n) {
b.reject(n)
}
};
f.prototype.createResolveAndReject_ = function() {
function a(a) {
return function(e) {
c || (c = !0, a.call(b, e))
}
}
var b = this,
c = !1;
return {
resolve: a(this.resolveTo_),
reject: a(this.reject_)
}
};
f.prototype.resolveTo_ = function(a) {
if (a === this) this.reject_(new TypeError("A Promise cannot resolve to itself"));
else if (a instanceof f) this.settleSameAsPromise_(a);
else {
a: switch (typeof a) {
case "object":
var b = null != a;
break a;
case "function":
b = !0;
break a;
default:
b = !1
}
b ? this.resolveToNonPromiseObj_(a) : this.fulfill_(a)
}
};
f.prototype.resolveToNonPromiseObj_ = function(a) {
var b = void 0;
try {
b = a.then
} catch (n) {
this.reject_(n);
return
}
"function" ==
typeof b ? this.settleSameAsThenable_(b, a) : this.fulfill_(a)
};
f.prototype.reject_ = function(a) {
this.settle_(2, a)
};
f.prototype.fulfill_ = function(a) {
this.settle_(1, a)
};
f.prototype.settle_ = function(a, b) {
if (0 != this.state_) throw Error("Cannot settle(" + a + ", " + b | "): Promise already settled in state" + this.state_);
this.state_ = a;
this.PolyfillPromise$result_ = b;
this.executeOnSettledCallbacks_()
};
f.prototype.executeOnSettledCallbacks_ = function() {
if (null != this.onSettledCallbacks_) {
for (var a = this.onSettledCallbacks_,
b = 0; b < a.length; ++b) a[b].call(), a[b] = null;
this.onSettledCallbacks_ = null
}
};
var g = new b;
f.prototype.settleSameAsPromise_ = function(a) {
var b = this.createResolveAndReject_();
a.callWhenSettled_(b.resolve, b.reject)
};
f.prototype.settleSameAsThenable_ = function(a, b) {
var c = this.createResolveAndReject_();
try {
a.call(b, c.resolve, c.reject)
} catch (p) {
c.reject(p)
}
};
f.prototype.then = function(a, b) {
function c(a, b) {
return "function" == typeof a ? function(b) {
try {
e(a(b))
} catch (Ga) {
g(Ga)
}
} : b
}
var e, g, h = new f(function(a, b) {
e = a;
g =
b
});
this.callWhenSettled_(c(a, e), c(b, g));
return h
};
f.prototype["catch"] = function(a) {
return this.then(void 0, a)
};
f.prototype.callWhenSettled_ = function(a, b) {
function c() {
switch (e.state_) {
case 1:
a(e.PolyfillPromise$result_);
break;
case 2:
b(e.PolyfillPromise$result_);
break;
default:
throw Error("b`" + e.state_);
}
}
var e = this;
null == this.onSettledCallbacks_ ? g.asyncExecute(c) : this.onSettledCallbacks_.push(function() {
g.asyncExecute(c)
})
};
f.resolve = c;
f.reject = function(a) {
return new f(function(b, c) {
c(a)
})
};
f.race =
function(a) {
return new f(function(b, e) {
for (var f = l(a), g = f.next(); !g.done; g = f.next()) c(g.value).callWhenSettled_(b, e)
})
};
f.all = function(a) {
var b = l(a),
e = b.next();
return e.done ? c([]) : new f(function(a, f) {
function g(b) {
return function(c) {
h[b] = c;
m--;
0 == m && a(h)
}
}
var h = [],
m = 0;
do h.push(void 0), m++, c(e.value).callWhenSettled_(g(h.length - 1), f), e = b.next(); while (!e.done)
})
};
return f
});
var ta = ta || {},
q = this,
va = function(a) {
return void 0 !== a
},
u = function(a) {
return "string" == typeof a
},
v = function(a) {
return "number" == typeof a
},
wa = function() {},
xa = function(a) {
a.instance_ = void 0;
a.getInstance = function() {
return a.instance_ ? a.instance_ : a.instance_ = new a
}
},
ya = function(a) {
var b = typeof a;
if ("object" == b)
if (a) {
if (a instanceof Array) return "array";
if (a instanceof Object) return b;
var c = Object.prototype.toString.call(a);
if ("[object Window]" == c) return "object";
if ("[object Array]" == c || "number" == typeof a.length &&
"undefined" != typeof a.splice && "undefined" != typeof a.propertyIsEnumerable && !a.propertyIsEnumerable("splice")) return "array";
if ("[object Function]" == c || "undefined" != typeof a.call && "undefined" != typeof a.propertyIsEnumerable && !a.propertyIsEnumerable("call")) return "function"
} else return "null";
else if ("function" == b && "undefined" == typeof a.call) return "object";
return b
},
za = function(a) {
return "array" == ya(a)
},
Aa = function(a) {
var b = ya(a);
return "array" == b || "object" == b && "number" == typeof a.length
},
Ba = function(a) {
return "function" ==
ya(a)
},
Ca = function(a) {
var b = typeof a;
return "object" == b && null != a || "function" == b
},
Fa = function(a) {
return a[Da] || (a[Da] = ++Ea)
},
Da = "closure_uid_" + (1E9 * Math.random() >>> 0),
Ea = 0,
Ha = function(a, b, c) {
return a.call.apply(a.bind, arguments)
},
Ia = function(a, b, c) {
if (!a) throw Error();
if (2 < arguments.length) {
var e = Array.prototype.slice.call(arguments, 2);
return function() {
var c = Array.prototype.slice.call(arguments);
Array.prototype.unshift.apply(c, e);
return a.apply(b, c)
}
}
return function() {
return a.apply(b, arguments)
}
},
Ja = function(a, b, c) {
Function.prototype.bind && -1 != Function.prototype.bind.toString().indexOf("native code") ? Ja = Ha : Ja = Ia;
return Ja.apply(null, arguments)
},
Ka = function(a, b) {
var c = Array.prototype.slice.call(arguments, 1);
return function() {
var b = c.slice();
b.push.apply(b, arguments);
return a.apply(this, b)
}
},
La = Date.now || function() {
return +new Date
},
Ma = function(a, b) {
var c = a.split("."),
e = q;
c[0] in e || !e.execScript || e.execScript("var " + c[0]);
for (var f; c.length && (f = c.shift());) !c.length && va(b) ? e[f] = b : e[f] && e[f] !==
Object.prototype[f] ? e = e[f] : e = e[f] = {}
},
w = function(a, b) {
function c() {}
c.prototype = b.prototype;
a.superClass_ = b.prototype;
a.prototype = new c;
a.prototype.constructor = a;
a.base = function(a, c, g) {
for (var e = Array(arguments.length - 2), f = 2; f < arguments.length; f++) e[f - 2] = arguments[f];
return b.prototype[c].apply(a, e)
}
};
var Na = function() {};
Na.prototype.allowCursorControl = function() {
return !0
};
var Oa = function(a) {
this.SRC = a;
this.doodle_Preloader$finishedLoading_ = !1;
this.preloadCallbacks_ = []
},
Pa = function(a) {
if (!a.doodle_Preloader$finishedLoading_) {
a.doodle_Preloader$finishedLoading_ = !0;
for (var b = 0, c; c = a.preloadCallbacks_[b]; b++) c()
}
};
Oa.prototype.isLoaded = function() {
return this.doodle_Preloader$finishedLoading_
};
var Qa = function(a, b) {
a.doodle_Preloader$finishedLoading_ ? b() : a.preloadCallbacks_.push(b)
};
Oa.prototype.unload = function() {
this.doodle_Preloader$finishedLoading_ = !1;
this.preloadCallbacks_ = []
};
var Ra = function(a) {
Oa.call(this, a);
this.image = new Image
};
w(Ra, Oa);
Ra.prototype.preload = function() {
if (!this.image.src) {
var a = this;
this.image.onload = function() {
Pa(a)
};
this.image.src = this.SRC;
(this.image.complete || "complete" == this.image.readyState) && Pa(this)
}
};
Ra.prototype.unload = function() {
Ra.superClass_.unload.call(this);
this.image = new Image
};
var Ua = function(a) {
var b = new Image,
c = Sa,
e = "";
b.onerror = b.onload = b.onabort = function() {
delete Ta[c]
};
Ta[c] = b; - 1 != a.search("&ei=") || (e = "&ei=");
a = "/gen_204?atyp=i&ct=doodle&cad=" + a + e + "&zx=" + La();
/^http:/i.test(a) && "https:" == window.location.protocol ? delete Ta[c] : (b.src = a, Sa = c + 1)
},
Ta = [],
Sa = 0;
var Va;
var Wa = Array.prototype.indexOf ? function(a, b) {
return Array.prototype.indexOf.call(a, b, void 0)
} : function(a, b) {
if (u(a)) return u(b) && 1 == b.length ? a.indexOf(b, 0) : -1;
for (var c = 0; c < a.length; c++)
if (c in a && a[c] === b) return c;
return -1
},
Xa = Array.prototype.lastIndexOf ? function(a, b) {
return Array.prototype.lastIndexOf.call(a, b, a.length - 1)
} : function(a, b) {
var c = a.length - 1;
0 > c && (c = Math.max(0, a.length + c));
if (u(a)) return u(b) && 1 == b.length ? a.lastIndexOf(b, c) : -1;
for (; 0 <= c; c--)
if (c in a && a[c] === b) return c;
return -1
},
Ya =
Array.prototype.forEach ? function(a, b, c) {
Array.prototype.forEach.call(a, b, c)
} : function(a, b, c) {
for (var e = a.length, f = u(a) ? a.split("") : a, g = 0; g < e; g++) g in f && b.call(c, f[g], g, a)
},
Za = Array.prototype.filter ? function(a, b) {
return Array.prototype.filter.call(a, b, void 0)
} : function(a, b) {
for (var c = a.length, e = [], f = 0, g = u(a) ? a.split("") : a, h = 0; h < c; h++)
if (h in g) {
var m = g[h];
b.call(void 0, m, h, a) && (e[f++] = m)
} return e
},
$a = Array.prototype.map ? function(a, b, c) {
return Array.prototype.map.call(a, b, c)
} : function(a, b, c) {
for (var e =
a.length, f = Array(e), g = u(a) ? a.split("") : a, h = 0; h < e; h++) h in g && (f[h] = b.call(c, g[h], h, a));
return f
},
ab = Array.prototype.every ? function(a, b) {
return Array.prototype.every.call(a, b, void 0)
} : function(a, b) {
for (var c = a.length, e = u(a) ? a.split("") : a, f = 0; f < c; f++)
if (f in e && !b.call(void 0, e[f], f, a)) return !1;
return !0
},
bb = function(a, b, c) {
a: {
for (var e = a.length, f = u(a) ? a.split("") : a, g = 0; g < e; g++)
if (g in f && b.call(c, f[g], g, a)) {
b = g;
break a
} b = -1
}
return 0 > b ? null : u(a) ? a.charAt(b) : a[b]
},
cb = function(a, b) {
for (var c = u(a) ? a.split("") :
a, e = a.length - 1; 0 <= e; e--)
if (e in c && b.call(void 0, c[e], e, a)) return e;
return -1
},
db = function(a, b) {
return 0 <= Wa(a, b)
},
eb = function(a, b) {
var c = Wa(a, b),
e;
(e = 0 <= c) && Array.prototype.splice.call(a, c, 1);
return e
},
fb = function(a) {
return Array.prototype.concat.apply([], arguments)
},
gb = function(a) {
var b = a.length;
if (0 < b) {
for (var c = Array(b), e = 0; e < b; e++) c[e] = a[e];
return c
}
return []
},
hb = function(a, b) {
for (var c = 1; c < arguments.length; c++) {
var e = arguments[c];
if (Aa(e)) {
var f = a.length || 0,
g = e.length || 0;
a.length = f + g;
for (var h =
0; h < g; h++) a[f + h] = e[h]
} else a.push(e)
}
},
jb = function(a, b, c, e) {
Array.prototype.splice.apply(a, ib(arguments, 1))
},
ib = function(a, b, c) {
return 2 >= arguments.length ? Array.prototype.slice.call(a, b) : Array.prototype.slice.call(a, b, c)
};
var kb = function(a) {
if (a.classList) return a.classList;
a = a.className;
return u(a) && a.match(/\S+/g) || []
},
lb = function(a, b) {
return a.classList ? a.classList.contains(b) : db(kb(a), b)
},
mb = function(a, b) {
a.classList ? a.classList.add(b) : lb(a, b) || (a.className += 0 < a.className.length ? " " + b : b)
},
nb = function(a, b) {
if (a.classList) Ya(b, function(b) {
mb(a, b)
});
else {
var c = {};
Ya(kb(a), function(a) {
c[a] = !0
});
Ya(b, function(a) {
c[a] = !0
});
a.className = "";
for (var e in c) a.className += 0 < a.className.length ? " " + e : e
}
},
ob = function(a, b) {
a.classList ?
a.classList.remove(b) : lb(a, b) && (a.className = Za(kb(a), function(a) {
return a != b
}).join(" "))
},
pb = function(a, b) {
a.classList ? Ya(b, function(b) {
ob(a, b)
}) : a.className = Za(kb(a), function(a) {
return !db(b, a)
}).join(" ")
};
var qb = RegExp("[A-Za-z\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u02b8\u0300-\u0590\u0800-\u1fff\u200e\u2c00-\ufb1c\ufe00-\ufe6f\ufefd-\uffff]"),
rb = RegExp("^[^A-Za-z\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u02b8\u0300-\u0590\u0800-\u1fff\u200e\u2c00-\ufb1c\ufe00-\ufe6f\ufefd-\uffff]*[\u0591-\u06ef\u06fa-\u07ff\u200f\ufb1d-\ufdff\ufe70-\ufefc]"),
sb = /^http:\/\/.*/,
tb = /\s+/,
ub = /[\d\u06f0-\u06f9]/;
var vb = function(a) {
return a.replace(/[\t\r\n ]+/g, " ").replace(/^[\t\r\n ]+|[\t\r\n ]+$/g, "")
},
wb = String.prototype.trim ? function(a) {
return a.trim()
} : function(a) {
return /^[\s\xa0]*([\s\S]*?)[\s\xa0]*$/.exec(a)[1]
},
xb = function(a, b) {
var c = String(a).toLowerCase(),
e = String(b).toLowerCase();
return c < e ? -1 : c == e ? 0 : 1
},
Fb = function(a) {
if (!yb.test(a)) return a; - 1 != a.indexOf("&") && (a = a.replace(zb, "&amp;")); - 1 != a.indexOf("<") && (a = a.replace(Ab, "&lt;")); - 1 != a.indexOf(">") && (a = a.replace(Bb, "&gt;")); - 1 != a.indexOf('"') &&
(a = a.replace(Cb, "&quot;")); - 1 != a.indexOf("'") && (a = a.replace(Db, "&#39;")); - 1 != a.indexOf("\x00") && (a = a.replace(Eb, "&#0;"));
return a
},
zb = /&/g,
Ab = /</g,
Bb = />/g,
Cb = /"/g,
Db = /'/g,
Eb = /\x00/g,
yb = /[\x00&<>"']/,
Gb = function(a, b) {
return -1 != a.indexOf(b)
},
Hb = String.prototype.repeat ? function(a, b) {
return a.repeat(b)
} : function(a, b) {
return Array(b + 1).join(a)
},
Ib = function(a, b) {
var c = va(void 0) ? a.toFixed(void 0) : String(a),
e = c.indexOf("."); - 1 == e && (e = c.length);
return Hb("0", Math.max(0, b - e)) + c
},
Jb = function(a, b) {
return a <
b ? -1 : a > b ? 1 : 0
},
Kb = function() {
return "background-color".replace(/\-([a-z])/g, function(a, b) {
return b.toUpperCase()
})
},
Lb = function(a) {
var b = u(void 0) ? "undefined".replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g, "\\$1").replace(/\x08/g, "\\x08") : "\\s";
return a.replace(new RegExp("(^" + (b ? "|[" + b + "]+" : "") + ")([a-z])", "g"), function(a, b, f) {
return b + f.toUpperCase()
})
};
var Mb = function(a, b) {
return Math.min(Math.max(a, 0), b)
},
Nb = function(a, b, c) {
return a + c * (b - a)
};
var Ob = "StopIteration" in q ? q.StopIteration : {
message: "StopIteration",
stack: ""
},
Pb = function() {};
Pb.prototype.next = function() {
throw Ob;
};
Pb.prototype.__iterator__ = function() {
return this
};
var Qb = function(a) {
if (a instanceof Pb) return a;
if ("function" == typeof a.__iterator__) return a.__iterator__(!1);
if (Aa(a)) {
var b = 0,
c = new Pb;
c.next = function() {
for (;;) {
if (b >= a.length) throw Ob;
if (b in a) return a[b++];
b++
}
};
return c
}
throw Error("c");
},
Rb = function(a) {
try {
return Qb(a).next()
} catch (b) {
if (b != Ob) throw b;
return null
}
};
var Sb = function(a, b, c) {
for (var e in a) b.call(c, a[e], e, a)
},
Tb = function(a) {
var b = [],
c = 0,
e;
for (e in a) b[c++] = a[e];
return b
},
Ub = function(a) {
var b = [],
c = 0,
e;
for (e in a) b[c++] = e;
return b
},
Vb = "constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" "),
Wb = function(a, b) {
for (var c, e, f = 1; f < arguments.length; f++) {
e = arguments[f];
for (c in e) a[c] = e[c];
for (var g = 0; g < Vb.length; g++) c = Vb[g], Object.prototype.hasOwnProperty.call(e, c) && (a[c] = e[c])
}
},
Xb = function(a) {
var b = arguments.length;
if (1 == b && za(arguments[0])) return Xb.apply(null, arguments[0]);
for (var c = {}, e = 0; e < b; e++) c[arguments[e]] = !0;
return c
};
var Yb = function(a, b) {
this.map_ = {};
this.goog_structs_Map$keys_ = [];
this.version_ = this.goog_structs_Map$count_ = 0;
var c = arguments.length;
if (1 < c) {
if (c % 2) throw Error("e");
for (var e = 0; e < c; e += 2) this.set(arguments[e], arguments[e + 1])
} else if (a) {
a instanceof Yb ? (c = a.getKeys(), e = a.getValues()) : (c = Ub(a), e = Tb(a));
for (var f = 0; f < c.length; f++) this.set(c[f], e[f])
}
};
Yb.prototype.getValues = function() {
Zb(this);
for (var a = [], b = 0; b < this.goog_structs_Map$keys_.length; b++) a.push(this.map_[this.goog_structs_Map$keys_[b]]);
return a
};
Yb.prototype.getKeys = function() {
Zb(this);
return this.goog_structs_Map$keys_.concat()
};
Yb.prototype.equals = function(a) {
if (this === a) return !0;
if (this.goog_structs_Map$count_ != a.goog_structs_Map$count_) return !1;
var b = $b;
Zb(this);
for (var c, e = 0; c = this.goog_structs_Map$keys_[e]; e++)
if (!b(this.get(c), a.get(c))) return !1;
return !0
};
var $b = function(a, b) {
return a === b
};
Yb.prototype.remove = function(a) {
return ac(this.map_, a) ? (delete this.map_[a], this.goog_structs_Map$count_--, this.version_++, this.goog_structs_Map$keys_.length > 2 * this.goog_structs_Map$count_ && Zb(this), !0) : !1
};
var Zb = function(a) {
if (a.goog_structs_Map$count_ != a.goog_structs_Map$keys_.length) {
for (var b = 0, c = 0; b < a.goog_structs_Map$keys_.length;) {
var e = a.goog_structs_Map$keys_[b];
ac(a.map_, e) && (a.goog_structs_Map$keys_[c++] = e);
b++
}
a.goog_structs_Map$keys_.length = c
}
if (a.goog_structs_Map$count_ != a.goog_structs_Map$keys_.length) {
var f = {};
for (c = b = 0; b < a.goog_structs_Map$keys_.length;) e = a.goog_structs_Map$keys_[b], ac(f, e) || (a.goog_structs_Map$keys_[c++] = e, f[e] = 1), b++;
a.goog_structs_Map$keys_.length = c
}
};
Yb.prototype.get = function(a, b) {
return ac(this.map_, a) ? this.map_[a] : b
};
Yb.prototype.set = function(a, b) {
ac(this.map_, a) || (this.goog_structs_Map$count_++, this.goog_structs_Map$keys_.push(a), this.version_++);
this.map_[a] = b
};
Yb.prototype.forEach = function(a, b) {
for (var c = this.getKeys(), e = 0; e < c.length; e++) {
var f = c[e],
g = this.get(f);
a.call(b, g, f, this)
}
};
Yb.prototype.__iterator__ = function(a) {
Zb(this);
var b = 0,
c = this.version_,
e = this,
f = new Pb;
f.next = function() {
if (c != e.version_) throw Error("f");
if (b >= e.goog_structs_Map$keys_.length) throw Ob;
var f = e.goog_structs_Map$keys_[b++];
return a ? f : e.map_[f]
};
return f
};
var ac = function(a, b) {
return Object.prototype.hasOwnProperty.call(a, b)
};
var bc = function(a) {
if (a.getValues && "function" == typeof a.getValues) return a.getValues();
if (u(a)) return a.split("");
if (Aa(a)) {
for (var b = [], c = a.length, e = 0; e < c; e++) b.push(a[e]);
return b
}
return Tb(a)
},
cc = function(a, b) {
if (a.forEach && "function" == typeof a.forEach) a.forEach(b, void 0);
else if (Aa(a) || u(a)) Ya(a, b, void 0);
else {
if (a.getKeys && "function" == typeof a.getKeys) var c = a.getKeys();
else if (a.getValues && "function" == typeof a.getValues) c = void 0;
else if (Aa(a) || u(a)) {
c = [];
for (var e = a.length, f = 0; f < e; f++) c.push(f)
} else c =
Ub(a);
e = bc(a);
f = e.length;
for (var g = 0; g < f; g++) b.call(void 0, e[g], c && c[g], a)
}
};
var dc = /^(?:([^:/?#.]+):)?(?:\/\/(?:([^/?#]*)@)?([^/#?]*?)(?::([0-9]+))?(?=[/#?]|$))?([^?#]+)?(?:\?([^#]*))?(?:#([\s\S]*))?$/,
ec = function(a, b) {
if (a)
for (var c = a.split("&"), e = 0; e < c.length; e++) {
var f = c[e].indexOf("="),
g = null;
if (0 <= f) {
var h = c[e].substring(0, f);
g = c[e].substring(f + 1)
} else h = c[e];
b(h, g ? decodeURIComponent(g.replace(/\+/g, " ")) : "")
}
},
fc = function(a, b) {
var c;
if (c = "ds" + (null != b ? "=" + encodeURIComponent(String(b)) : "")) {
var e = a.indexOf("#");
0 > e && (e = a.length);
var f = a.indexOf("?");
if (0 > f || f > e) {
f = e;
var g = ""
} else g = a.substring(f + 1, e);
e = [a.substr(0, f), g, a.substr(e)];
f = e[1];
e[1] = c ? f ? f + "&" + c : c : f;
c = e[0] + (e[1] ? "?" + e[1] : "") + e[2]
} else c = a;
return c
},
gc = function(a, b, c) {
for (; 0 <= (b = a.indexOf("ds", b)) && b < c;) {
var e = a.charCodeAt(b - 1);
if (38 == e || 63 == e)
if (e = a.charCodeAt(b + 2), !e || 61 == e || 38 == e || 35 == e) return b;
b += 3
}
return -1
},
hc = /#|$/,
ic = /[?&]($|#)/,
jc = function(a) {
for (var b = a.search(hc), c = 0, e, f = []; 0 <= (e = gc(a, c, b));) f.push(a.substring(c, e)), c = Math.min(a.indexOf("&", e) + 1 || b, b);
f.push(a.substr(c));
return f.join("").replace(ic,
"$1")
};
var kc = function(a, b) {
this.domain_ = this.userInfo_ = this.scheme_ = "";
this.port_ = null;
this.fragment_ = this.path_ = "";
this.goog_Uri$ignoreCase_ = !1;
var c;
a instanceof kc ? (this.goog_Uri$ignoreCase_ = va(b) ? b : a.goog_Uri$ignoreCase_, lc(this, a.scheme_), this.userInfo_ = a.userInfo_, this.domain_ = a.domain_, mc(this, a.port_), this.path_ = a.path_, nc(this, oc(a.queryData_)), this.fragment_ = a.fragment_) : a && (c = String(a).match(dc)) ? (this.goog_Uri$ignoreCase_ = !!b, lc(this, c[1] || "", !0), this.userInfo_ = pc(c[2] || ""), this.domain_ = pc(c[3] ||
"", !0), mc(this, c[4]), this.path_ = pc(c[5] || "", !0), nc(this, c[6] || "", !0), this.fragment_ = pc(c[7] || "")) : (this.goog_Uri$ignoreCase_ = !!b, this.queryData_ = new qc(null, this.goog_Uri$ignoreCase_))
};
kc.prototype.toString = function() {
var a = [],
b = this.scheme_;
b && a.push(rc(b, sc, !0), ":");
var c = this.domain_;
if (c || "file" == b) a.push("//"), (b = this.userInfo_) && a.push(rc(b, sc, !0), "@"), a.push(encodeURIComponent(String(c)).replace(/%25([0-9a-fA-F]{2})/g, "%$1")), c = this.port_, null != c && a.push(":", String(c));
if (c = this.path_) this.domain_ && "/" != c.charAt(0) && a.push("/"), a.push(rc(c, "/" == c.charAt(0) ? tc : uc, !0));
(c = this.queryData_.toString()) && a.push("?", c);
(c = this.fragment_) && a.push("#", rc(c, vc));
return a.join("")
};
kc.prototype.resolve = function(a) {
var b = new kc(this),
c = !!a.scheme_;
c ? lc(b, a.scheme_) : c = !!a.userInfo_;
c ? b.userInfo_ = a.userInfo_ : c = !!a.domain_;
c ? b.domain_ = a.domain_ : c = null != a.port_;
var e = a.path_;
if (c) mc(b, a.port_);
else if (c = !!a.path_) {
if ("/" != e.charAt(0))
if (this.domain_ && !this.path_) e = "/" + e;
else {
var f = b.path_.lastIndexOf("/"); - 1 != f && (e = b.path_.substr(0, f + 1) + e)
} f = e;
if (".." == f || "." == f) e = "";
else if (Gb(f, "./") || Gb(f, "/.")) {
e = 0 == f.lastIndexOf("/", 0);
f = f.split("/");
for (var g = [], h = 0; h < f.length;) {
var m = f[h++];
"." == m ? e && h == f.length && g.push("") : ".." == m ? ((1 < g.length || 1 == g.length && "" != g[0]) && g.pop(), e && h == f.length && g.push("")) : (g.push(m), e = !0)
}
e = g.join("/")
} else e = f
}
c ? b.path_ = e : c = "" !== a.queryData_.toString();
c ? nc(b, oc(a.queryData_)) : c = !!a.fragment_;
c && (b.fragment_ = a.fragment_);
return b
};
var lc = function(a, b, c) {
a.scheme_ = c ? pc(b, !0) : b;
a.scheme_ && (a.scheme_ = a.scheme_.replace(/:$/, ""))
},
mc = function(a, b) {
if (b) {
b = Number(b);
if (isNaN(b) || 0 > b) throw Error("g`" + b);
a.port_ = b
} else a.port_ = null
},
nc = function(a, b, c) {
b instanceof qc ? (a.queryData_ = b, wc(a.queryData_, a.goog_Uri$ignoreCase_)) : (c || (b = rc(b, xc)), a.queryData_ = new qc(b, a.goog_Uri$ignoreCase_))
},
pc = function(a, b) {
return a ? b ? decodeURI(a.replace(/%25/g, "%2525")) : decodeURIComponent(a) : ""
},
rc = function(a, b, c) {
return u(a) ? (a = encodeURI(a).replace(b,
yc), c && (a = a.replace(/%25([0-9a-fA-F]{2})/g, "%$1")), a) : null
},
yc = function(a) {
a = a.charCodeAt(0);
return "%" + (a >> 4 & 15).toString(16) + (a & 15).toString(16)
},
sc = /[#\/\?@]/g,
uc = /[#\?:]/g,
tc = /[#\?]/g,
xc = /[#\?@]/g,
vc = /#/g,
qc = function(a, b) {
this.goog_Uri_QueryData$count_ = this.keyMap_ = null;
this.encodedQuery_ = a || null;
this.goog_Uri_QueryData$ignoreCase_ = !!b
},
zc = function(a) {
a.keyMap_ || (a.keyMap_ = new Yb, a.goog_Uri_QueryData$count_ = 0, a.encodedQuery_ && ec(a.encodedQuery_, function(b, c) {
a.add(decodeURIComponent(b.replace(/\+/g,
" ")), c)
}))
};
qc.prototype.add = function(a, b) {
zc(this);
this.encodedQuery_ = null;
a = Ac(this, a);
var c = this.keyMap_.get(a);
c || this.keyMap_.set(a, c = []);
c.push(b);
this.goog_Uri_QueryData$count_ += 1;
return this
};
qc.prototype.remove = function(a) {
zc(this);
a = Ac(this, a);
return ac(this.keyMap_.map_, a) ? (this.encodedQuery_ = null, this.goog_Uri_QueryData$count_ -= this.keyMap_.get(a).length, this.keyMap_.remove(a)) : !1
};
var Bc = function(a, b) {
zc(a);
b = Ac(a, b);
return ac(a.keyMap_.map_, b)
};
d = qc.prototype;
d.forEach = function(a, b) {
zc(this);
this.keyMap_.forEach(function(c, e) {
Ya(c, function(c) {
a.call(b, c, e, this)
}, this)
}, this)
};
d.getKeys = function() {
zc(this);
for (var a = this.keyMap_.getValues(), b = this.keyMap_.getKeys(), c = [], e = 0; e < b.length; e++)
for (var f = a[e], g = 0; g < f.length; g++) c.push(b[e]);
return c
};
d.getValues = function(a) {
zc(this);
var b = [];
if (u(a)) Bc(this, a) && (b = fb(b, this.keyMap_.get(Ac(this, a))));
else {
a = this.keyMap_.getValues();
for (var c = 0; c < a.length; c++) b = fb(b, a[c])
}
return b
};
d.set = function(a, b) {
zc(this);
this.encodedQuery_ = null;
a = Ac(this, a);
Bc(this, a) && (this.goog_Uri_QueryData$count_ -= this.keyMap_.get(a).length);
this.keyMap_.set(a, [b]);
this.goog_Uri_QueryData$count_ += 1;
return this
};
d.get = function(a, b) {
var c = a ? this.getValues(a) : [];
return 0 < c.length ? String(c[0]) : b
};
d.toString = function() {
if (this.encodedQuery_) return this.encodedQuery_;
if (!this.keyMap_) return "";
for (var a = [], b = this.keyMap_.getKeys(), c = 0; c < b.length; c++) {
var e = b[c],
f = encodeURIComponent(String(e));
e = this.getValues(e);
for (var g = 0; g < e.length; g++) {
var h = f;
"" !== e[g] && (h += "=" + encodeURIComponent(String(e[g])));
a.push(h)
}
}
return this.encodedQuery_ = a.join("&")
};
var oc = function(a) {
var b = new qc;
b.encodedQuery_ = a.encodedQuery_;
a.keyMap_ && (b.keyMap_ = new Yb(a.keyMap_), b.goog_Uri_QueryData$count_ = a.goog_Uri_QueryData$count_);
return b
},
Ac = function(a, b) {
var c = String(b);
a.goog_Uri_QueryData$ignoreCase_ && (c = c.toLowerCase());
return c
},
wc = function(a, b) {
b && !a.goog_Uri_QueryData$ignoreCase_ && (zc(a), a.encodedQuery_ = null, a.keyMap_.forEach(function(a, b) {
var c = b.toLowerCase();
b != c && (this.remove(b), this.remove(c), 0 < a.length && (this.encodedQuery_ = null, this.keyMap_.set(Ac(this,
c), gb(a)), this.goog_Uri_QueryData$count_ += a.length))
}, a));
a.goog_Uri_QueryData$ignoreCase_ = b
};
var Cc, Dc, Ec = navigator.userAgent,
Fc = window.location.href,
Gc = Gb(Ec, "iPad") || Gb(Ec, "iPhone") || Gb(Ec, "iPod"),
Hc = Gb(Ec.toLowerCase(), "gsa"),
Ic = Gc && Hc,
Jc = Hc && !Gc,
Kc = Gc || Gb(Ec, "Android") || Gb(Ec, "Mobile") || Gb(Ec, "Silk") || Gb(Ec, "UCBrowser") || Gb(Ec, "UCWEB"),
Lc = Gb(Ec, "Chrome") && Gb(Ec, "Mobile") && Gb(Ec, "wv"),
Mc = 0 <= Ec.indexOf("MSIE"),
Nc = Gb(Fc, "/logos/") && Gb(Fc, ".html"),
Oc = function() {
return !!document.getElementById("fkbx") || 0 <= Fc.indexOf("ntp=1")
},
Pc = function(a, b) {
for (var c = 1; c < arguments.length; c += 2) {
var e = arguments[c],
f = arguments[c + 1],
g = a.style;
g && e in g ? g[e] = f : e in a ? a[e] = f : Mc && g && "opacity" == e && (a.zoom = 1, e = (g.filter || "").replace(/alpha\([^)]*\)/, ""), isNaN(parseFloat(f)) || (e += "alpha(opacity=" + 100 * f + ")"), g.filter = e)
}
},
Qc = function() {
return self.performance && self.performance.now ? self.performance.now() : La()
},
Rc = ["", "moz", "ms", "o", "webkit"],
Sc = function(a) {
var b = document;
if (!b) return null;
for (var c = 0; c < Rc.length; c++) {
var e = Rc[c],
f = a;
0 < e.length && (f = a.charAt(0).toUpperCase() + a.substr(1));
e += f;
if ("undefined" != typeof b[e]) return e
}
return null
},
Tc = function() {
var a = google.doodle ? google.doodle.url : "";
if (a) {
var b = !Ic;
if (google.nav && google.nav.go) {
var c = a;
if (0 == a.indexOf("/search")) {
c = new kc(window.location);
c.path_ = "/search";
a = (a instanceof kc ? new kc(a) : new kc(a, void 0)).queryData_;
for (var e = a.getKeys(), f = 0; f < e.length; f++) {
var g = e[f],
h = c,
m = g;
g = a.get(g);
h.queryData_.set(m, g)
}
c = c.toString()
}
b ? window.open(c) : google.nav.go(c)
} else b ? window.open(a) : window.parent ? window.parent.location.assign(a) : window.location.assign(a)
}
},
Uc = function(a, b) {
var c =
window.google ? window.google.doodle : null;
return c && void 0 != c[a] ? c[a] : b
},
Vc = Uc("alt", ""),
Wc = Uc("hl", "en"),
y = function(a) {
var b = void 0,
c = Uc("msgs", {});
va(b) || (b = a);
if (!(c = c[a])) {
var e = Uc("alltranslations", {});
if (e)
if (c = e.messages, e = e.translations, c && e) {
for (var f = -1, g = 0; g < c.length; g++)
if (c[g] == a) {
f = g;
break
} c = -1 == f ? "" : (e[Wc] || e.en).ALL[f]
} else c = "";
else c = ""
}
a = c || b;
c = b = 0;
e = !1;
f = a.split(tb);
for (g = 0; g < f.length; g++) {
var h = f[g];
rb.test(h) ? (b++, c++) : sb.test(h) ? e = !0 : qb.test(h) ? c++ : ub.test(h) && (e = !0)
}
b = 0 == c ? e ?
1 : 0 : .4 < b / c ? -1 : 1;
return 1 == b ? "\u202a" + a + "\u202c" : -1 == b ? "\u202b" + a + "\u202c" : a
},
Xc = function() {
for (var a = ["requestAnimationFrame", "mozRequestAnimationFrame", "msRequestAnimationFrame", "oRequestAnimationFrame", "webkitRequestAnimationFrame"], b = 0; b < a.length; b++) {
var c = window[a[b]];
if (c) return function(a, b, e) {
return c(function(b) {
return a.call(e, b)
}, b)
}
}
var e = 0,
f = 33,
g = 50;
return function(a, b, c) {
b && 0 > --g && (1.25 < b / f ? (e = 0, f = Math.min(66, ++f)) : 10 < ++e && (e = 0, f = Math.max(17, --f)));
window.setTimeout(function(b) {
a.call(c,
b)
}, f)
}
},
Yc = function(a, b, c) {
Yc = Xc();
return Yc(a, b, c)
},
$c = function(a, b, c) {
var e = Math.max(0, c - 230) + (document.querySelector("div.og-pdp") ? 36 : 12);
Pc(a, "width", b + "px", "height", c + "px");
Zc(e)
},
Zc = function(a) {
a += "px";
var b = document.getElementById("lga");
b && Pc(b, "marginBottom", a);
if (!Oc()) {
b = document.getElementById("searchform");
var c = document.getElementById("gb");
b && (Pc(b, "transform", "translateY(" + a + ")"), Pc(c, "transform", "translateY(-" + a + ")"), Pc(c, "z-index", "1"));
a = document.createEvent("UIEvents");
a.initUIEvent("resize",
!1, !1, window, 0);
window.dispatchEvent(a)
}
};
var ad;
a: {
var bd = q.navigator;
if (bd) {
var cd = bd.userAgent;
if (cd) {
ad = cd;
break a
}
}
ad = ""
}
var dd = function(a) {
return Gb(ad, a)
};
var ed = function(a) {
ed[" "](a);
return a
};
ed[" "] = wa;
var gd = function(a, b) {
var c = fd;
return Object.prototype.hasOwnProperty.call(c, a) ? c[a] : c[a] = b(a)
};
var hd = dd("Opera"),
z = dd("Trident") || dd("MSIE"),
id = dd("Edge"),
jd = dd("Gecko") && !(Gb(ad.toLowerCase(), "webkit") && !dd("Edge")) && !(dd("Trident") || dd("MSIE")) && !dd("Edge"),
kd = Gb(ad.toLowerCase(), "webkit") && !dd("Edge"),
ld = kd && dd("Mobile"),
md = dd("Macintosh"),
nd = dd("Android"),
od = dd("iPhone") && !dd("iPod") && !dd("iPad"),
pd = dd("iPad"),
qd = function() {
var a = q.document;
return a ? a.documentMode : void 0
},
rd;
a: {
var sd = "",
td = function() {
var a = ad;
if (jd) return /rv:([^\);]+)(\)|;)/.exec(a);
if (id) return /Edge\/([\d\.]+)/.exec(a);
if (z) return /\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(a);
if (kd) return /WebKit\/(\S+)/.exec(a);
if (hd) return /(?:Version)[ \/]?(\S+)/.exec(a)
}();td && (sd = td ? td[1] : "");
if (z) {
var ud = qd();
if (null != ud && ud > parseFloat(sd)) {
rd = String(ud);
break a
}
}
rd = sd
}
var vd = rd,
fd = {},
wd = function(a) {
return gd(a, function() {
for (var b = 0, c = wb(String(vd)).split("."), e = wb(String(a)).split("."), f = Math.max(c.length, e.length), g = 0; 0 == b && g < f; g++) {
var h = c[g] || "",
m = e[g] || "";
do {
h = /(\d*)(\D*)(.*)/.exec(h) || ["", "", "", ""];
m = /(\d*)(\D*)(.*)/.exec(m) || ["", "", "", ""];
if (0 == h[0].length && 0 == m[0].length) break;
b = Jb(0 == h[1].length ? 0 : parseInt(h[1], 10), 0 == m[1].length ? 0 : parseInt(m[1], 10)) || Jb(0 == h[2].length, 0 == m[2].length) || Jb(h[2], m[2]);
h = h[3];
m = m[3]
} while (0 == b)
}
return 0 <= b
})
},
xd;
var yd = q.document;
xd = yd && z ? qd() || ("CSS1Compat" == yd.compatMode ? parseInt(vd, 10) : 5) : void 0;
var zd = !z || 9 <= Number(xd),
Ad = !z || 9 <= Number(xd),
Bd = z && !wd("9"),
Cd = "ontouchstart" in q || !!(q.document && document.documentElement && "ontouchstart" in document.documentElement) || !(!q.navigator || !q.navigator.maxTouchPoints && !q.navigator.msMaxTouchPoints),
Dd = function() {
if (!q.addEventListener || !Object.defineProperty) return !1;
var a = !1,
b = Object.defineProperty({}, "passive", {
get: function() {
a = !0
}
});
q.addEventListener("test", wa, b);
q.removeEventListener("test", wa, b);
return a
}();
var Ed = function() {
this.disposed_ = this.disposed_;
this.onDisposeCallbacks_ = this.onDisposeCallbacks_
};
Ed.prototype.disposed_ = !1;
Ed.prototype.dispose = function() {
this.disposed_ || (this.disposed_ = !0, this.disposeInternal())
};
var Gd = function(a, b) {
var c = Ka(Fd, b);
a.disposed_ ? va(void 0) ? c.call(void 0) : c() : (a.onDisposeCallbacks_ || (a.onDisposeCallbacks_ = []), a.onDisposeCallbacks_.push(va(void 0) ? Ja(c, void 0) : c))
};
Ed.prototype.disposeInternal = function() {
if (this.onDisposeCallbacks_)
for (; this.onDisposeCallbacks_.length;) this.onDisposeCallbacks_.shift()()
};
var Fd = function(a) {
a && "function" == typeof a.dispose && a.dispose()
};
var Hd = function(a, b) {
this.type = a;
this.goog_events_Event$currentTarget = this.target = b;
this.propagationStopped_ = !1;
this.returnValue_ = !0
};
Hd.prototype.stopPropagation = function() {
this.propagationStopped_ = !0
};
Hd.prototype.preventDefault = function() {
this.returnValue_ = !1
};
var Id;
Id = kd ? "webkitTransitionEnd" : hd ? "otransitionend" : "transitionend";
var Jd = function(a, b) {
Hd.call(this, a ? a.type : "");
this.relatedTarget = this.goog_events_Event$currentTarget = this.target = null;
this.button = this.screenY = this.screenX = this.clientY = this.clientX = 0;
this.key = "";
this.goog_events_BrowserEvent$keyCode = 0;
this.platformModifierKey = this.metaKey = this.shiftKey = this.altKey = this.ctrlKey = !1;
this.pointerId = 0;
this.pointerType = "";
this.event_ = null;
a && this.init(a, b)
};
w(Jd, Hd);
var Kd = [1, 4, 2],
Ld = {
2: "touch",
3: "pen",
4: "mouse"
};
Jd.prototype.init = function(a, b) {
var c = this.type = a.type,
e = a.changedTouches ? a.changedTouches[0] : null;
this.target = a.target || a.srcElement;
this.goog_events_Event$currentTarget = b;
var f = a.relatedTarget;
if (f) {
if (jd) {
a: {
try {
ed(f.nodeName);
var g = !0;
break a
} catch (h) {}
g = !1
}
g || (f = null)
}
} else "mouseover" == c ? f = a.fromElement : "mouseout" == c && (f = a.toElement);
this.relatedTarget = f;
null === e ? (this.clientX = void 0 !== a.clientX ? a.clientX : a.pageX, this.clientY = void 0 !== a.clientY ? a.clientY : a.pageY, this.screenX = a.screenX || 0, this.screenY =
a.screenY || 0) : (this.clientX = void 0 !== e.clientX ? e.clientX : e.pageX, this.clientY = void 0 !== e.clientY ? e.clientY : e.pageY, this.screenX = e.screenX || 0, this.screenY = e.screenY || 0);
this.button = a.button;
this.goog_events_BrowserEvent$keyCode = a.keyCode || 0;
this.key = a.key || "";
this.ctrlKey = a.ctrlKey;
this.altKey = a.altKey;
this.shiftKey = a.shiftKey;
this.metaKey = a.metaKey;
this.platformModifierKey = md ? a.metaKey : a.ctrlKey;
this.pointerId = a.pointerId || 0;
this.pointerType = u(a.pointerType) ? a.pointerType : Ld[a.pointerType] || "";
this.event_ =
a;
a.defaultPrevented && this.preventDefault()
};
var Md = function(a) {
return zd ? 0 == a.event_.button : "click" == a.type ? !0 : !!(a.event_.button & Kd[0])
};
Jd.prototype.stopPropagation = function() {
Jd.superClass_.stopPropagation.call(this);
this.event_.stopPropagation ? this.event_.stopPropagation() : this.event_.cancelBubble = !0
};
Jd.prototype.preventDefault = function() {
Jd.superClass_.preventDefault.call(this);
var a = this.event_;
if (a.preventDefault) a.preventDefault();
else if (a.returnValue = !1, Bd) try {
if (a.ctrlKey || 112 <= a.keyCode && 123 >= a.keyCode) a.keyCode = -1
} catch (b) {}
};
var Nd = "closure_listenable_" + (1E6 * Math.random() | 0),
Od = function(a) {
return !(!a || !a[Nd])
},
Pd = 0;
var Qd = function(a, b, c, e, f) {
this.listener = a;
this.proxy = null;
this.src = b;
this.type = c;
this.capture = !!e;
this.handler = f;
this.key = ++Pd;
this.removed = this.callOnce = !1
},
Rd = function(a) {
a.removed = !0;
a.listener = null;
a.proxy = null;
a.src = null;
a.handler = null
};
var Sd = function(a) {
this.src = a;
this.goog_events_ListenerMap$listeners = {};
this.typeCount_ = 0
};
Sd.prototype.add = function(a, b, c, e, f) {
var g = a.toString();
a = this.goog_events_ListenerMap$listeners[g];
a || (a = this.goog_events_ListenerMap$listeners[g] = [], this.typeCount_++);
var h = Td(a, b, e, f); - 1 < h ? (b = a[h], c || (b.callOnce = !1)) : (b = new Qd(b, this.src, g, !!e, f), b.callOnce = c, a.push(b));
return b
};
Sd.prototype.remove = function(a, b, c, e) {
a = a.toString();
if (!(a in this.goog_events_ListenerMap$listeners)) return !1;
var f = this.goog_events_ListenerMap$listeners[a];
b = Td(f, b, c, e);
return -1 < b ? (Rd(f[b]), Array.prototype.splice.call(f, b, 1), 0 == f.length && (delete this.goog_events_ListenerMap$listeners[a], this.typeCount_--), !0) : !1
};
var Ud = function(a, b) {
var c = b.type;
c in a.goog_events_ListenerMap$listeners && eb(a.goog_events_ListenerMap$listeners[c], b) && (Rd(b), 0 == a.goog_events_ListenerMap$listeners[c].length && (delete a.goog_events_ListenerMap$listeners[c], a.typeCount_--))
},
Vd = function(a, b, c, e, f) {
a = a.goog_events_ListenerMap$listeners[b.toString()];
b = -1;
a && (b = Td(a, c, e, f));
return -1 < b ? a[b] : null
},
Td = function(a, b, c, e) {
for (var f = 0; f < a.length; ++f) {
var g = a[f];
if (!g.removed && g.listener == b && g.capture == !!c && g.handler == e) return f
}
return -1
};
var Wd = "closure_lm_" + (1E6 * Math.random() | 0),
Xd = {},
Yd = 0,
$d = function(a, b, c, e, f) {
if (e && e.once) return Zd(a, b, c, e, f);
if (za(b)) {
for (var g = 0; g < b.length; g++) $d(a, b[g], c, e, f);
return null
}
c = ae(c);
return Od(a) ? a.listen(b, c, Ca(e) ? !!e.capture : !!e, f) : be(a, b, c, !1, e, f)
},
be = function(a, b, c, e, f, g) {
if (!b) throw Error("i");
var h = Ca(f) ? !!f.capture : !!f,
m = ce(a);
m || (a[Wd] = m = new Sd(a));
c = m.add(b, c, e, h, g);
if (c.proxy) return c;
e = de();
c.proxy = e;
e.src = a;
e.listener = c;
if (a.addEventListener) Dd || (f = h), void 0 === f && (f = !1), a.addEventListener(b.toString(),
e, f);
else if (a.attachEvent) a.attachEvent(ee(b.toString()), e);
else if (a.addListener && a.removeListener) a.addListener(e);
else throw Error("j");
Yd++;
return c
},
de = function() {
var a = fe,
b = Ad ? function(c) {
return a.call(b.src, b.listener, c)
} : function(c) {
c = a.call(b.src, b.listener, c);
if (!c) return c
};
return b
},
Zd = function(a, b, c, e, f) {
if (za(b)) {
for (var g = 0; g < b.length; g++) Zd(a, b[g], c, e, f);
return null
}
c = ae(c);
return Od(a) ? a.eventTargetListeners_.add(String(b), c, !0, Ca(e) ? !!e.capture : !!e, f) : be(a, b, c, !0, e, f)
},
ge = function(a,
b, c, e, f) {
if (za(b))
for (var g = 0; g < b.length; g++) ge(a, b[g], c, e, f);
else e = Ca(e) ? !!e.capture : !!e, c = ae(c), Od(a) ? a.unlisten(b, c, e, f) : a && (a = ce(a)) && (b = Vd(a, b, c, e, f)) && he(b)
},
he = function(a) {
if (!v(a) && a && !a.removed) {
var b = a.src;
if (Od(b)) Ud(b.eventTargetListeners_, a);
else {
var c = a.type,
e = a.proxy;
b.removeEventListener ? b.removeEventListener(c, e, a.capture) : b.detachEvent ? b.detachEvent(ee(c), e) : b.addListener && b.removeListener && b.removeListener(e);
Yd--;
(c = ce(b)) ? (Ud(c, a), 0 == c.typeCount_ && (c.src = null, b[Wd] = null)) : Rd(a)
}
}
},
ee = function(a) {
return a in Xd ? Xd[a] : Xd[a] = "on" + a
},
je = function(a, b, c, e) {
var f = !0;
if (a = ce(a))
if (b = a.goog_events_ListenerMap$listeners[b.toString()])
for (b = b.concat(), a = 0; a < b.length; a++) {
var g = b[a];
g && g.capture == c && !g.removed && (g = ie(g, e), f = f && !1 !== g)
}
return f
},
ie = function(a, b) {
var c = a.listener,
e = a.handler || a.src;
a.callOnce && he(a);
return c.call(e, b)
},
fe = function(a, b) {
if (a.removed) return !0;
if (!Ad) {
var c;
if (!(c = b)) a: {
c = ["window", "event"];
for (var e = q, f = 0; f < c.length; f++)
if (e = e[c[f]], null == e) {
c = null;
break a
} c =
e
}
f = c;
c = new Jd(f, this);
e = !0;
if (!(0 > f.keyCode || void 0 != f.returnValue)) {
a: {
var g = !1;
if (0 == f.keyCode) try {
f.keyCode = -1;
break a
} catch (n) {
g = !0
}
if (g || void 0 == f.returnValue) f.returnValue = !0
}
f = [];
for (g = c.goog_events_Event$currentTarget; g; g = g.parentNode) f.push(g);g = a.type;
for (var h = f.length - 1; !c.propagationStopped_ && 0 <= h; h--) {
c.goog_events_Event$currentTarget = f[h];
var m = je(f[h], g, !0, c);
e = e && m
}
for (h = 0; !c.propagationStopped_ && h < f.length; h++) c.goog_events_Event$currentTarget = f[h],
m = je(f[h], g, !1, c),
e = e && m
}
return e
}
return ie(a,
new Jd(b, this))
},
ce = function(a) {
a = a[Wd];
return a instanceof Sd ? a : null
},
ke = "__closure_events_fn_" + (1E9 * Math.random() >>> 0),
ae = function(a) {
if (Ba(a)) return a;
a[ke] || (a[ke] = function(b) {
return a.handleEvent(b)
});
return a[ke]
};
var le = function() {
Ed.call(this);
this.eventTargetListeners_ = new Sd(this);
this.actualEventTarget_ = this;
this.parentEventTarget_ = null
};
w(le, Ed);
le.prototype[Nd] = !0;
le.prototype.getParentEventTarget = function() {
return this.parentEventTarget_
};
le.prototype.setParentEventTarget = function(a) {
this.parentEventTarget_ = a
};
le.prototype.addEventListener = function(a, b, c, e) {
$d(this, a, b, c, e)
};
le.prototype.removeEventListener = function(a, b, c, e) {
ge(this, a, b, c, e)
};
var ne = function(a, b) {
var c, e = a.getParentEventTarget();
if (e)
for (c = []; e; e = e.getParentEventTarget()) c.push(e);
e = a.actualEventTarget_;
var f = b,
g = f.type || f;
if (u(f)) f = new Hd(f, e);
else if (f instanceof Hd) f.target = f.target || e;
else {
var h = f;
f = new Hd(g, e);
Wb(f, h)
}
h = !0;
if (c)
for (var m = c.length - 1; !f.propagationStopped_ && 0 <= m; m--) {
var n = f.goog_events_Event$currentTarget = c[m];
h = me(n, g, !0, f) && h
}
f.propagationStopped_ || (n = f.goog_events_Event$currentTarget = e, h = me(n, g, !0, f) && h, f.propagationStopped_ || (h = me(n, g, !1, f) && h));
if (c)
for (m = 0; !f.propagationStopped_ && m < c.length; m++) n = f.goog_events_Event$currentTarget = c[m], h = me(n, g, !1, f) && h;
return h
};
le.prototype.disposeInternal = function() {
le.superClass_.disposeInternal.call(this);
if (this.eventTargetListeners_) {
var a = this.eventTargetListeners_,
b = 0,
c;
for (c in a.goog_events_ListenerMap$listeners) {
for (var e = a.goog_events_ListenerMap$listeners[c], f = 0; f < e.length; f++) ++b, Rd(e[f]);
delete a.goog_events_ListenerMap$listeners[c];
a.typeCount_--
}
}
this.parentEventTarget_ = null
};
le.prototype.listen = function(a, b, c, e) {
return this.eventTargetListeners_.add(String(a), b, !1, c, e)
};
le.prototype.unlisten = function(a, b, c, e) {
return this.eventTargetListeners_.remove(String(a), b, c, e)
};
var me = function(a, b, c, e) {
b = a.eventTargetListeners_.goog_events_ListenerMap$listeners[String(b)];
if (!b) return !0;
b = b.concat();
for (var f = !0, g = 0; g < b.length; ++g) {
var h = b[g];
if (h && !h.removed && h.capture == c) {
var m = h.listener,
n = h.handler || h.src;
h.callOnce && Ud(a.eventTargetListeners_, h);
f = !1 !== m.call(n, e) && f
}
}
return f && 0 != e.returnValue_
};
var oe = function() {};
oe.prototype.cachedOptions_ = null;
var qe = function(a) {
var b;
(b = a.cachedOptions_) || (b = {}, pe(a) && (b[0] = !0, b[1] = !0), b = a.cachedOptions_ = b);
return b
};
var re, se = function() {};
w(se, oe);
var te = function(a) {
return (a = pe(a)) ? new ActiveXObject(a) : new XMLHttpRequest
},
pe = function(a) {
if (!a.ieProgId_ && "undefined" == typeof XMLHttpRequest && "undefined" != typeof ActiveXObject) {
for (var b = ["MSXML2.XMLHTTP.6.0", "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP", "Microsoft.XMLHTTP"], c = 0; c < b.length; c++) {
var e = b[c];
try {
return new ActiveXObject(e), a.ieProgId_ = e
} catch (f) {}
}
throw Error("k");
}
return a.ieProgId_
};
re = new se;
var ue = function(a, b, c) {
if (Ba(a)) c && (a = Ja(a, c));
else if (a && "function" == typeof a.handleEvent) a = Ja(a.handleEvent, a);
else throw Error("l");
return 2147483647 < Number(b) ? -1 : q.setTimeout(a, b || 0)
};
var ve = function(a) {
le.call(this);
this.headers = new Yb;
this.xmlHttpFactory_ = a || null;
this.active_ = !1;
this.xhrOptions_ = this.xhr_ = null;
this.lastUri_ = "";
this.inAbort_ = this.inOpen_ = this.inSend_ = this.errorDispatched_ = !1;
this.timeoutInterval_ = 0;
this.timeoutId_ = null;
this.responseType_ = "";
this.useXhr2Timeout_ = this.withCredentials_ = !1
};
w(ve, le);
var we = /^https?$/i,
xe = ["POST", "PUT"],
ye = [],
ze = function(a, b) {
var c = new ve;
ye.push(c);
b && c.listen("complete", b);
c.eventTargetListeners_.add("ready", c.cleanupSend_, !0, void 0, void 0);
c.send(a, void 0, void 0, void 0);
return c
};
ve.prototype.cleanupSend_ = function() {
this.dispose();
eb(ye, this)
};
ve.prototype.send = function(a, b, c, e) {
if (this.xhr_) throw Error("m`" + this.lastUri_ + "`" + a);
b = b ? b.toUpperCase() : "GET";
this.lastUri_ = a;
this.errorDispatched_ = !1;
this.active_ = !0;
this.xhr_ = this.xmlHttpFactory_ ? te(this.xmlHttpFactory_) : te(re);
this.xhrOptions_ = this.xmlHttpFactory_ ? qe(this.xmlHttpFactory_) : qe(re);
this.xhr_.onreadystatechange = Ja(this.onReadyStateChange_, this);
try {
this.inOpen_ = !0, this.xhr_.open(b, String(a), !0), this.inOpen_ = !1
} catch (g) {
Ae(this);
return
}
a = c || "";
var f = new Yb(this.headers);
e && cc(e,
function(a, b) {
f.set(b, a)
});
e = bb(f.getKeys(), Be);
c = q.FormData && a instanceof q.FormData;
!db(xe, b) || e || c || f.set("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");
f.forEach(function(a, b) {
this.xhr_.setRequestHeader(b, a)
}, this);
this.responseType_ && (this.xhr_.responseType = this.responseType_);
"withCredentials" in this.xhr_ && this.xhr_.withCredentials !== this.withCredentials_ && (this.xhr_.withCredentials = this.withCredentials_);
try {
Ce(this), 0 < this.timeoutInterval_ && ((this.useXhr2Timeout_ = De(this.xhr_)) ?
(this.xhr_.timeout = this.timeoutInterval_, this.xhr_.ontimeout = Ja(this.goog_net_XhrIo_prototype$timeout_, this)) : this.timeoutId_ = ue(this.goog_net_XhrIo_prototype$timeout_, this.timeoutInterval_, this)), this.inSend_ = !0, this.xhr_.send(a), this.inSend_ = !1
} catch (g) {
Ae(this)
}
};
var De = function(a) {
return z && wd(9) && v(a.timeout) && va(a.ontimeout)
},
Be = function(a) {
return "content-type" == a.toLowerCase()
};
ve.prototype.goog_net_XhrIo_prototype$timeout_ = function() {
"undefined" != typeof ta && this.xhr_ && (ne(this, "timeout"), this.abort(8))
};
var Ae = function(a) {
a.active_ = !1;
a.xhr_ && (a.inAbort_ = !0, a.xhr_.abort(), a.inAbort_ = !1);
Ee(a);
Fe(a)
},
Ee = function(a) {
a.errorDispatched_ || (a.errorDispatched_ = !0, ne(a, "complete"), ne(a, "error"))
};
ve.prototype.abort = function() {
this.xhr_ && this.active_ && (this.active_ = !1, this.inAbort_ = !0, this.xhr_.abort(), this.inAbort_ = !1, ne(this, "complete"), ne(this, "abort"), Fe(this))
};
ve.prototype.disposeInternal = function() {
this.xhr_ && (this.active_ && (this.active_ = !1, this.inAbort_ = !0, this.xhr_.abort(), this.inAbort_ = !1), Fe(this, !0));
ve.superClass_.disposeInternal.call(this)
};
ve.prototype.onReadyStateChange_ = function() {
if (!this.disposed_)
if (this.inOpen_ || this.inSend_ || this.inAbort_) Ge(this);
else this.onReadyStateChangeEntryPoint_()
};
ve.prototype.onReadyStateChangeEntryPoint_ = function() {
Ge(this)
};
var Ge = function(a) {
if (a.active_ && "undefined" != typeof ta && (!a.xhrOptions_[1] || 4 != (a.xhr_ ? a.xhr_.readyState : 0) || 2 != He(a)))
if (a.inSend_ && 4 == (a.xhr_ ? a.xhr_.readyState : 0)) ue(a.onReadyStateChange_, 0, a);
else if (ne(a, "readystatechange"), 4 == (a.xhr_ ? a.xhr_.readyState : 0)) {
a.active_ = !1;
try {
Ie(a) ? (ne(a, "complete"), ne(a, "success")) : Ee(a)
} finally {
Fe(a)
}
}
},
Fe = function(a, b) {
if (a.xhr_) {
Ce(a);
var c = a.xhr_,
e = a.xhrOptions_[0] ? wa : null;
a.xhr_ = null;
a.xhrOptions_ = null;
b || ne(a, "ready");
try {
c.onreadystatechange = e
} catch (f) {}
}
},
Ce = function(a) {
a.xhr_ && a.useXhr2Timeout_ && (a.xhr_.ontimeout = null);
a.timeoutId_ && (q.clearTimeout(a.timeoutId_), a.timeoutId_ = null)
},
Ie = function(a) {
var b = He(a);
a: switch (b) {
case 200:
case 201:
case 202:
case 204:
case 206:
case 304:
case 1223:
var c = !0;
break a;
default:
c = !1
}
if (!c) {
if (b = 0 === b) a = String(a.lastUri_).match(dc)[1] || null, !a && q.self && q.self.location && (a = q.self.location.protocol, a = a.substr(0, a.length - 1)), b = !we.test(a ? a.toLowerCase() : "");
c = b
}
return c
},
He = function(a) {
try {
return 2 < (a.xhr_ ? a.xhr_.readyState :
0) ? a.xhr_.status : -1
} catch (b) {
return -1
}
},
Je = function(a) {
try {
return a.xhr_ ? a.xhr_.responseText : ""
} catch (b) {
return ""
}
},
Ke = function(a) {
try {
if (!a.xhr_) return null;
if ("response" in a.xhr_) return a.xhr_.response;
switch (a.responseType_) {
case "":
case "text":
return a.xhr_.responseText;
case "arraybuffer":
if ("mozResponseArrayBuffer" in a.xhr_) return a.xhr_.mozResponseArrayBuffer
}
return null
} catch (b) {
return null
}
};
var Le = function(a, b) {
this.PRELOADERS_ = a;
this.CLIPS_ = b;
this.overallGainNode_ = this.doodle_Audio$audioContext_ = null;
this.unmutedGainValue_ = 1;
this.kickstartAudioBufferSourceNode_ = null
},
Me = !(!window.AudioContext && !window.webkitAudioContext) && !!window.GainNode;
Le.prototype.init = function(a) {
if (!Me) return !1;
if (this.doodle_Audio$audioContext_) return !0;
this.doodle_Audio$audioContext_ = new(window.AudioContext || window.webkitAudioContext);
this.overallGainNode_ = this.doodle_Audio$audioContext_.createGain();
this.overallGainNode_.connect(this.doodle_Audio$audioContext_.destination);
for (var b in this.PRELOADERS_) this.PRELOADERS_[b].init(this.doodle_Audio$audioContext_);
for (b in this.CLIPS_) this.CLIPS_[b].init(this.doodle_Audio$audioContext_, this.overallGainNode_);
if (Gc) {
Ne(this);
var c = this;
Zd(a, "touchend", function() {
Ne(c)
})
}
return !0
};
var Oe = function(a) {
a.kickstartAudioBufferSourceNode_ = a.doodle_Audio$audioContext_.createBufferSource();
a.kickstartAudioBufferSourceNode_.buffer = a.doodle_Audio$audioContext_.createBuffer(1, 1, 22050);
a.kickstartAudioBufferSourceNode_.connect(a.doodle_Audio$audioContext_.destination);
a.kickstartAudioBufferSourceNode_.start(0)
},
Ne = function(a) {
a.doodle_Audio$audioContext_ && (null == a.kickstartAudioBufferSourceNode_ ? Oe(a) : va(a.kickstartAudioBufferSourceNode_.playbackState) ? a.kickstartAudioBufferSourceNode_.playbackState !==
a.kickstartAudioBufferSourceNode_.PLAYING_STATE && a.kickstartAudioBufferSourceNode_.playbackState !== a.kickstartAudioBufferSourceNode_.FINISHED_STATE && Oe(a) : Oe(a))
};
Le.prototype.getContext = function() {
return this.doodle_Audio$audioContext_
};
Le.prototype.reset = function() {
for (var a in this.PRELOADERS_) this.PRELOADERS_[a].preloadCallbacks_ = [];
for (var b in this.CLIPS_) Pe(this.CLIPS_[b])
};
// Audio
var Re = function() {
var a = Qe;
a.overallGainNode_ && (a.overallGainNode_.gain.value = a.unmutedGainValue_)
},
Te = function(a, b) {
this.preloader_ = Se.SOUNDS;
this.START_TIME = a;
this.DURATION = b;
this.playRecords_ = {};
this.destinationNode_ = this.doodle_Audio_Clip$audioContext_ = this.gainNode_ = null;
this.nodes_ = [];
this.nextPlayId_ = 0
};
Te.prototype.init = function(a, b) {
this.doodle_Audio_Clip$audioContext_ = a;
this.destinationNode_ = b;
this.doodle_Audio_Clip$audioContext_.createGain && (this.gainNode_ = this.doodle_Audio_Clip$audioContext_.createGain())
};
Te.prototype.getContext = function() {
return this.doodle_Audio_Clip$audioContext_
};
var Ue = document.createElement("audio"),
Ve = Ba(Ue.canPlayType) && "" != Ue.canPlayType("audio/ogg") ? ".ogg" : ".mp3",
We = function(a) {
if (a.doodle_Audio_Clip$audioContext_) {
var b = 1E3 * a.doodle_Audio_Clip$audioContext_.currentTime,
c;
for (c in a.playRecords_) {
var e = a.playRecords_[c];
!e.looping && e.playTime + a.DURATION < b && delete a.playRecords_[c]
}
}
};
Te.prototype.play = function(a, b, c) {
if (!this.doodle_Audio_Clip$audioContext_ || !this.destinationNode_) return -1;
We(this);
a = this.doodle_Audio_Clip$audioContext_.currentTime + (a || 0) / 1E3;
var e = this.doodle_Audio_Clip$audioContext_.createBufferSource();
this.gainNode_ ? (e.connect(this.gainNode_), this.gainNode_.connect(this.destinationNode_)) : e.connect(this.destinationNode_);
e.loop = !!b;
try {
e.buffer = this.preloader_.doodle_Audio_Preloader$buffer
} catch (h) {
return -1
}
e.playbackRate.value = 1;
c = c || 0;
var f = this.START_TIME /
1E3,
g = this.DURATION / 1E3;
b ? (e.loopStart = f, e.loopEnd = f + g, e.start(a, f + c / 1E3)) : e.start(a, f + c / 1E3, g);
f = this.nextPlayId_++;
this.playRecords_[f] = {
node: e,
playTime: 1E3 * a - c,
looping: !!b
};
return f
};
Te.prototype.removeNode = function(a) {
if (db(this.nodes_, a)) {
if (this.gainNode_)
for (var b = [this.gainNode_].concat(this.nodes_), c = 0, e; e = b[c++];) e.disconnect();
eb(this.nodes_, a);
if (this.gainNode_)
for (a = [this.gainNode_].concat(this.nodes_).concat(this.destinationNode_), b = 0; b < a.length - 1; b++) a[b].connect(a[b + 1])
}
};
var Pe = function(a, b) {
We(a);
if (va(b)) {
if (a.playRecords_[b]) {
try {
a.playRecords_[b].node.stop(0)
} catch (f) {}
var c = (1E3 * a.doodle_Audio_Clip$audioContext_.currentTime - a.playRecords_[b].playTime) % a.DURATION;
delete a.playRecords_[b];
return [c]
}
return []
}
c = [];
for (var e in a.playRecords_) c = c.concat(Pe(a, e));
return c
},
Xe = function(a, b) {
Oa.call(this, a + b + Ve);
this.doodle_Audio_Preloader$audioContext_ = this.doodle_Audio_Preloader$buffer = null;
this.status_ = 0
};
w(Xe, Oa);
Xe.prototype.init = function(a) {
this.doodle_Audio_Preloader$audioContext_ = a
};
Xe.prototype.preload = function(a) {
a && Qa(this, a);
if (0 == this.status_ && this.doodle_Audio_Preloader$audioContext_) {
a = new ve;
a.responseType_ = "arraybuffer";
var b = this;
a.listen("complete", function() {
b.doodle_Audio_Preloader$audioContext_.decodeAudioData(Ke(this), function(a) {
a && (b.doodle_Audio_Preloader$buffer = a, b.status_ = 3, Pa(b))
});
b.status_ = 2
});
a.send(this.SRC);
this.status_ = 1
}
};
var A = function(a, b) {
this.x = va(a) ? a : 0;
this.y = va(b) ? b : 0
};
A.prototype.equals = function(a) {
return a instanceof A && Ye(this, a)
};
var Ye = function(a, b) {
return a == b ? !0 : a && b ? a.x == b.x && a.y == b.y : !1
},
Ze = function(a, b) {
return new A(a.x - b.x, a.y - b.y)
};
d = A.prototype;
d.ceil = function() {
this.x = Math.ceil(this.x);
this.y = Math.ceil(this.y);
return this
};
d.floor = function() {
this.x = Math.floor(this.x);
this.y = Math.floor(this.y);
return this
};
d.round = function() {
this.x = Math.round(this.x);
this.y = Math.round(this.y);
return this
};
d.translate = function(a, b) {
a instanceof A ? (this.x += a.x, this.y += a.y) : (this.x += Number(a), v(b) && (this.y += b));
return this
};
d.scale = function(a, b) {
var c = v(b) ? b : a;
this.x *= a;
this.y *= c;
return this
};
var $e = function(a, b, c) {
this.goog_math_Bezier$x1 = a;
this.goog_math_Bezier$y1 = b;
this.goog_math_Bezier$x2 = c
};
$e.prototype.equals = function(a) {
return this.goog_math_Bezier$x1 == a.goog_math_Bezier$x1 && this.goog_math_Bezier$y1 == a.goog_math_Bezier$y1 && this.goog_math_Bezier$x2 == a.goog_math_Bezier$x2 && !0
};
var af = function(a, b) {
if (0 == b) return 0;
if (1 == b) return 1;
var c = Nb(0, a.goog_math_Bezier$x1, b),
e = Nb(a.goog_math_Bezier$x1, a.goog_math_Bezier$x2, b),
f = Nb(a.goog_math_Bezier$x2, 1, b);
c = Nb(c, e, b);
e = Nb(e, f, b);
return Nb(c, e, b)
},
bf = function(a, b) {
var c = (b - 0) / 1;
if (0 >= c) return 0;
if (1 <= c) return 1;
for (var e = 0, f = 1, g = 0, h = 0; 8 > h; h++) {
g = af(a, c);
var m = (af(a, c + 1E-6) - g) / 1E-6;
if (1E-6 > Math.abs(g - b)) return c;
if (1E-6 > Math.abs(m)) break;
else g < b ? e = c : f = c, c -= (g - b) / m
}
for (h = 0; 1E-6 < Math.abs(g - b) && 8 > h; h++) g < b ? (e = c, c = (c + f) / 2) : (f = c, c =
(c + e) / 2), g = af(a, c);
return c
};
var cf = function(a, b, c) {
var e = new $e(a, b, c);
return function(a) {
a = bf(e, a);
if (0 == a) a = 0;
else if (1 == a) a = 1;
else {
var b = Nb(0, e.goog_math_Bezier$y1, a),
c = Nb(e.goog_math_Bezier$y1, 1, a),
f = Nb(1, 1, a);
b = Nb(b, c, a);
c = Nb(c, f, a);
a = Nb(b, c, a)
}
return a
}
},
df = function(a) {
return a
},
ef = cf(.25, .1, .25),
ff = cf(.4, 0, 1),
gf = cf(0, 0, .6),
hf = cf(.6, 0, .4);
var jf, kf = {
allowedToAnimateCta: !0,
allowedToExpand: !0,
shouldDoIosNativeShare: !1,
shouldFillWindow: !1,
shouldRotateToLandscape: !1,
shouldUseFullscreenApi: !1,
shouldWriteScoreCookie: !1,
shouldSetMetaViewportUserScaleableNo: !1,
templatesShouldFetchDoodleArgsFromSlashDoodles: !1,
allowedToLoadExtraAssetsBeforeCtaClick: !1,
shouldUseMobileUi: !1,
shouldLogFirstClickOnLoad: !1,
name: 0
},
lf = {
allowedToAnimateCta: !0,
allowedToExpand: !0,
shouldDoIosNativeShare: !1,
shouldFillWindow: !1,
shouldRotateToLandscape: !1,
shouldUseFullscreenApi: !1,
shouldWriteScoreCookie: !1,
shouldSetMetaViewportUserScaleableNo: !0,
templatesShouldFetchDoodleArgsFromSlashDoodles: !1,
allowedToLoadExtraAssetsBeforeCtaClick: !1,
shouldUseMobileUi: !1,
shouldLogFirstClickOnLoad: !1,
name: 1
},
mf = {
allowedToAnimateCta: !0,
allowedToExpand: !1,
shouldDoIosNativeShare: !0,
shouldFillWindow: !0,
shouldRotateToLandscape: !1,
shouldUseFullscreenApi: !1,
shouldWriteScoreCookie: !1,
shouldSetMetaViewportUserScaleableNo: !1,
templatesShouldFetchDoodleArgsFromSlashDoodles: !1,
allowedToLoadExtraAssetsBeforeCtaClick: !0,
shouldUseMobileUi: !0,
shouldLogFirstClickOnLoad: !0,
name: 2
},
nf = {
allowedToAnimateCta: !0,
allowedToExpand: !1,
shouldDoIosNativeShare: !1,
shouldFillWindow: !0,
shouldRotateToLandscape: !0,
shouldUseFullscreenApi: !1,
shouldWriteScoreCookie: !1,
shouldSetMetaViewportUserScaleableNo: !1,
templatesShouldFetchDoodleArgsFromSlashDoodles: !1,
allowedToLoadExtraAssetsBeforeCtaClick: !0,
shouldUseMobileUi: !0,
shouldLogFirstClickOnLoad: !0,
name: 3
},
of = {
allowedToAnimateCta: !0,
allowedToExpand: !1,
shouldDoIosNativeShare: !1,
shouldFillWindow: !0,
shouldRotateToLandscape: !1,
shouldUseFullscreenApi: !1,
shouldWriteScoreCookie: !0,
shouldSetMetaViewportUserScaleableNo: !1,
templatesShouldFetchDoodleArgsFromSlashDoodles: !0,
allowedToLoadExtraAssetsBeforeCtaClick: !0,
shouldUseMobileUi: !0,
shouldLogFirstClickOnLoad: !0,
name: 4
},
pf = {
allowedToAnimateCta: !1,
allowedToExpand: !0,
shouldDoIosNativeShare: !1,
shouldFillWindow: !1,
shouldRotateToLandscape: !1,
shouldUseFullscreenApi: !1,
shouldWriteScoreCookie: !1,
shouldSetMetaViewportUserScaleableNo: !1,
templatesShouldFetchDoodleArgsFromSlashDoodles: !1,
allowedToLoadExtraAssetsBeforeCtaClick: !1,
shouldUseMobileUi: !1,
shouldLogFirstClickOnLoad: !1,
name: 6
},
qf = {
allowedToAnimateCta: !0,
allowedToExpand: !1,
shouldDoIosNativeShare: !1,
shouldFillWindow: !0,
shouldRotateToLandscape: !0,
shouldUseFullscreenApi: !0,
shouldWriteScoreCookie: !1,
shouldSetMetaViewportUserScaleableNo: !1,
templatesShouldFetchDoodleArgsFromSlashDoodles: !1,
allowedToLoadExtraAssetsBeforeCtaClick: !0,
shouldUseMobileUi: !0,
shouldLogFirstClickOnLoad: !0,
name: 7
},
rf = {
allowedToAnimateCta: !0,
allowedToExpand: !1,
shouldDoIosNativeShare: !1,
shouldFillWindow: !0,
shouldRotateToLandscape: !1,
shouldUseFullscreenApi: !1,
shouldWriteScoreCookie: !1,
shouldSetMetaViewportUserScaleableNo: !1,
templatesShouldFetchDoodleArgsFromSlashDoodles: !0,
allowedToLoadExtraAssetsBeforeCtaClick: !0,
shouldUseMobileUi: !1,
shouldLogFirstClickOnLoad: !1,
name: 9
},
sf = {
allowedToAnimateCta: !0,
allowedToExpand: !1,
shouldDoIosNativeShare: !1,
shouldFillWindow: !0,
shouldRotateToLandscape: !0,
shouldUseFullscreenApi: !0,
shouldWriteScoreCookie: !1,
shouldSetMetaViewportUserScaleableNo: !1,
templatesShouldFetchDoodleArgsFromSlashDoodles: !0,
allowedToLoadExtraAssetsBeforeCtaClick: !0,
shouldUseMobileUi: !0,
shouldLogFirstClickOnLoad: !0,
name: 8
},
tf = {
allowedToAnimateCta: !0,
allowedToExpand: !1,
shouldDoIosNativeShare: !1,
shouldFillWindow: !0,
shouldRotateToLandscape: !0,
shouldUseFullscreenApi: !1,
shouldWriteScoreCookie: !1,
shouldSetMetaViewportUserScaleableNo: !1,
templatesShouldFetchDoodleArgsFromSlashDoodles: !0,
allowedToLoadExtraAssetsBeforeCtaClick: !0,
shouldUseMobileUi: !0,
shouldLogFirstClickOnLoad: !0,
name: 5
},
uf = {
allowedToAnimateCta: !0,
allowedToExpand: !1,
shouldDoIosNativeShare: !1,
shouldFillWindow: !0,
shouldRotateToLandscape: !0,
shouldUseFullscreenApi: !0,
shouldWriteScoreCookie: !1,
shouldSetMetaViewportUserScaleableNo: !1,
templatesShouldFetchDoodleArgsFromSlashDoodles: !1,
allowedToLoadExtraAssetsBeforeCtaClick: !0,
shouldUseMobileUi: !0,
shouldLogFirstClickOnLoad: !0,
name: 10
},
vf = {
allowedToAnimateCta: !0,
allowedToExpand: !0,
shouldDoIosNativeShare: !1,
shouldFillWindow: !1,
shouldRotateToLandscape: !1,
shouldUseFullscreenApi: !1,
shouldWriteScoreCookie: !1,
shouldSetMetaViewportUserScaleableNo: !1,
templatesShouldFetchDoodleArgsFromSlashDoodles: !1,
allowedToLoadExtraAssetsBeforeCtaClick: !1,
shouldUseMobileUi: !1,
shouldLogFirstClickOnLoad: !1,
name: 11
};
var xf = function() {
wf();
return jf.allowedToAnimateCta
},
yf = function() {
wf();
return jf.shouldDoIosNativeShare
},
zf = function() {
wf();
return jf.allowedToExpand
},
Af = function() {
wf();
return jf.shouldLogFirstClickOnLoad
},
wf = function() {
null == jf && (jf = Ic && !Nc ? mf : Jc ? nf : Gb(Ec, "Gbot") ? of : Oc() && !Kc ? pf : 0 <= Fc.indexOf("fpdoodle=1") && document.getElementById("fpdoodle") ? qf : document.querySelector("body.hp") ? Kc ? lf : kf : Nc ? Lc ? tf : Kc ? sf : rf : Kc ? uf : vf)
};
var Ef = function(a, b, c) {
Ed.call(this);
this.sleepTime_ = a;
this.sleepCallback_ = b;
this.wakeCallback_ = c;
this.lastInteractTime_ = La();
this.vendorHidden_ = Sc("hidden");
this.vendorVisibilityChange_ = (this.vendorVisibilityState_ = Sc("visibilityState")) ? this.vendorVisibilityState_.replace(/state$/i, "change").toLowerCase() : null;
this.isHidden_ = Bf(this);
this.isIdle_ = !1;
this.isSleeping_ = this.isHidden_;
Cf(this);
Df(this)
};
w(Ef, Ed);
var Cf = function(a) {
a.vendorVisibilityChange_ ? Ff(a) : Jc && Gf(a, function() {
Ff(a)
})
},
Ff = function(a) {
a.visibilityChangeCallback_ = function() {
a.isHidden_ = Bf(a);
a.isHidden_ || (a.lastInteractTime_ = La(), a.isIdle_ = !1);
Hf(a)
};
var b = window.agsa_ext;
a.vendorVisibilityChange_ ? document.addEventListener(a.vendorVisibilityChange_, a.visibilityChangeCallback_, !1) : b && b.registerPageVisibilityListener && (google.doodle || (google.doodle = {}), google.doodle.pvc = function() {
a.visibilityChangeCallback_ && a.visibilityChangeCallback_()
},
b.registerPageVisibilityListener("google.doodle.pvc();"))
},
Gf = function(a, b) {
window.agsa_ext ? b() : a.agsaExtTimeout_ = window.setTimeout(function() {
Cf(a)
}, 100)
};
Ef.prototype.disposeInternal = function() {
window.clearTimeout(this.doodle_Hibernator$timeout_);
window.clearTimeout(this.agsaExtTimeout_);
this.visibilityChangeCallback_ && (this.vendorVisibilityChange_ && document.removeEventListener ? document.removeEventListener(this.vendorVisibilityChange_, this.visibilityChangeCallback_, !1) : window.agsa_ext && window.agsa_ext.registerPageVisibilityListener && (this.visibilityChangeCallback_ = null));
Ef.superClass_.disposeInternal.call(this)
};
var Bf = function(a) {
if (!a.vendorHidden_ && !a.vendorVisibilityState_ && window.agsa_ext && window.agsa_ext.getPageVisibility) return "hidden" == window.agsa_ext.getPageVisibility();
var b = document[a.vendorVisibilityState_];
return document[a.vendorHidden_] || "hidden" == b
},
Hf = function(a) {
var b = a.isHidden_ || a.isIdle_;
a.isSleeping_ && !b ? (a.isSleeping_ = !1, a.wakeCallback_(), Df(a)) : !a.isSleeping_ && b && (a.isSleeping_ = !0, a.sleepCallback_())
},
Df = function(a) {
a.doodle_Hibernator$timeout_ && window.clearTimeout(a.doodle_Hibernator$timeout_);
var b = Math.max(100, a.sleepTime_ - If(a));
a.doodle_Hibernator$timeout_ = window.setTimeout(function() {
a.doodle_Hibernator$timeout_ = null;
a.isIdle_ = If(a) >= a.sleepTime_;
a.isIdle_ || Df(a);
Hf(a)
}, b)
},
If = function(a) {
return La() - a.lastInteractTime_
};
(function() {
var a = new Na;
a.contains = function() {
return !0
};
a.allowCursorControl = function() {
return !1
};
return a
})();
var Kf = function() {
this.stopped_ = !0;
this.doodle_EventLoop$isRunning_ = !1;
this.queue_ = [];
this.queueDirty_ = !1;
this.tooSlowTicks_ = this.lastTickStartTime_ = this.curTick = 0;
this.msPerEvent = Jf
};
w(Kf, Ed);
xa(Kf);
var Jf = 1E3 / 60,
Lf = function(a) {
this.MS_PER_EVENT = 1E3 / 60;
this.doodle_EventLoop_EventSequence$callback_ = a;
this.nextFrameTime = Kf.getInstance().curTick;
this.frameIndex_ = 0
},
Mf = function(a) {
var b = a.doodle_EventLoop_EventSequence$callback_(a.frameIndex_);
a.frameIndex_++;
a.nextFrameTime = Kf.getInstance().curTick + a.MS_PER_EVENT / Kf.getInstance().msPerEvent;
return b
};
Lf.prototype.cancel = function() {
this.doodle_EventLoop_EventSequence$callback_ = function() {
return !1
}
};
var Of = function(a, b) {
var c = new Lf(b);
Nf(a, c)
},
Nf = function(a, b) {
a.queue_.push(b);
a.queueDirty_ = !0
},
Qf = function(a) {
if (a.stopped_) a.doodle_EventLoop$isRunning_ = !1;
else {
a.doodle_EventLoop$isRunning_ = !0;
Pf(a);
a.queueDirty_ && (a.queue_.sort(function(a, b) {
return a.nextFrameTime == b.nextFrameTime ? b.MS_PER_EVENT - a.MS_PER_EVENT : a.nextFrameTime - b.nextFrameTime
}), a.queueDirty_ = !1);
for (var b = 0, c = 0, e; e = a.queue_[c]; c++)
if (e.nextFrameTime <= a.curTick) Mf(e) && Nf(a, e), b++;
else break;
a.queue_.splice(0, b);
a.curTick++;
Yc(function() {
Qf(a)
})
}
},
Pf = function(a) {
var b = (new Date).getTime();
30 < a.curTick && a.lastTickStartTime_ && (b - a.lastTickStartTime_ >= 1.05 * a.msPerEvent ? a.tooSlowTicks_++ : a.tooSlowTicks_ >>= 1, 20 < a.tooSlowTicks_ && (a.msPerEvent = Math.min(50, 1.2 * a.msPerEvent), a.tooSlowTicks_ = 0));
a.lastTickStartTime_ = b
};
Kf.prototype.start = function() {
this.stopped_ = !1;
this.doodle_EventLoop$isRunning_ || Qf(this)
};
Kf.prototype.disposeInternal = function() {
this.reset();
Kf.superClass_.disposeInternal.call(this)
};
Kf.prototype.reset = function() {
this.stopped_ = !0;
this.queue_ = [];
this.curTick = 0;
this.queueDirty_ = !1;
this.msPerEvent = Jf;
this.lastTickStartTime_ = this.tooSlowTicks_ = 0
};
var Sf = function(a, b, c) {
var e = Rf;
this.from_ = a;
this.to_ = b;
this.tweenState_ = {};
this.doodle_Tween$easingFn_ = e || ef;
this.getNow_ = c || Qc;
this.timeStarted = null;
this.rewinding_ = !1
},
Uf = function(a) {
var b = Math.min(Math.max(Tf(a) / 400, 0), 1);
a.rewinding_ && (b = 1 - b);
for (var c in a.from_)
if (a.to_.hasOwnProperty(c)) {
var e = a.tweenState_,
f = c;
var g = a.from_[c];
var h = a.to_[c];
g += (a.doodle_Tween$easingFn_ || ef)(b) * (h - g);
e[f] = g
} return a.tweenState_
},
Tf = function(a) {
return null === a.timeStarted ? 0 : a.getNow_() - a.timeStarted
};
Sf.prototype.start = function() {
this.timeStarted = this.getNow_();
this.rewinding_ = !1
};
Sf.prototype.reset = function() {
this.timeStarted = null
};
var Rf = function(a) {
return 3 * a * a - 2 * a * a * a
};
var Vf = function(a, b) {
Ed.call(this);
this.expanded_ = !1;
this.doodle_Expander$container_ = a;
this.eventDispatcher_ = b || null;
this.updateFn_ = function() {
return !1
}
};
w(Vf, Ed);
Vf.prototype.disposeInternal = function() {
this.reset();
this.doodle_Expander$container_ = null
};
Vf.prototype.reset = function() {
this.expanded_ && (Pc(this.doodle_Expander$container_, "width", "", "height", ""), Zc(0), this.doodle_Expander$container_.style.width = "", this.doodle_Expander$container_.style.height = "");
this.expanded_ = !1
};
var Wf = function(a, b) {
if (a.doodle_Expander$container_ && zf() && !a.expanded_) {
var c = a.doodle_Expander$container_;
Oc() && Pc(c.parentNode, "width", "100%");
var e = c.offsetHeight,
f = c.offsetWidth,
g = Math.min(960, c.parentNode.clientWidth) - 0,
h = g / (960 / 540),
m = Kf.getInstance(),
n = Qc(),
p = new Sf({
height: e,
width: f
}, {
height: h,
width: g
}, function() {
return n
});
p.start();
a.expanded_ = !0;
a.updateFn_ = function() {
n = Qc();
var e = Uf(p);
$c(c, Math.round(e.width), Math.round(e.height));
a.eventDispatcher_ && a.eventDispatcher_.handleResize(!1);
return 400 <= Tf(p) ? (b(), a.updateFn_ = function() {
return !1
}, !1) : !0
};
Of(m, function() {
return a.updateFn_()
})
}
};
Vf.prototype.update = function() {
this.updateFn_()
};
var Xf = !z || 9 <= Number(xd),
Yf = !jd && !z || z && 9 <= Number(xd) || jd && wd("1.9.1"),
Zf = z && !wd("9");
var $f = function(a, b) {
this.width = a;
this.height = b
};
d = $f.prototype;
d.aspectRatio = function() {
return this.width / this.height
};
d.ceil = function() {
this.width = Math.ceil(this.width);
this.height = Math.ceil(this.height);
return this
};
d.floor = function() {
this.width = Math.floor(this.width);
this.height = Math.floor(this.height);
return this
};
d.round = function() {
this.width = Math.round(this.width);
this.height = Math.round(this.height);
return this
};
d.scale = function(a, b) {
var c = v(b) ? b : a;
this.width *= a;
this.height *= c;
return this
};
var cg = function(a) {
return a ? new ag(bg(a)) : Va || (Va = new ag)
},
eg = function(a, b) {
var c = b || document;
if (c.getElementsByClassName) c = c.getElementsByClassName(a)[0];
else {
c = document;
var e = b || c;
c = e.querySelectorAll && e.querySelector && a ? e.querySelector("" + (a ? "." + a : "")) : dg(c, "*", a, b)[0] || null
}
return c || null
},
dg = function(a, b, c, e) {
a = e || a;
b = b && "*" != b ? String(b).toUpperCase() : "";
if (a.querySelectorAll && a.querySelector && (b || c)) return a.querySelectorAll(b + (c ? "." + c : ""));
if (c && a.getElementsByClassName) {
a = a.getElementsByClassName(c);
if (b) {
e = {};
for (var f = 0, g = 0, h; h = a[g]; g++) b == h.nodeName && (e[f++] = h);
e.length = f;
return e
}
return a
}
a = a.getElementsByTagName(b || "*");
if (c) {
e = {};
for (g = f = 0; h = a[g]; g++) b = h.className, "function" == typeof b.split && db(b.split(/\s+/), c) && (e[f++] = h);
e.length = f;
return e
}
return a
},
gg = function(a, b) {
Sb(b, function(b, e) {
b && b.implementsGoogStringTypedString && (b = b.getTypedStringValue());
"style" == e ? a.style.cssText = b : "class" == e ? a.className = b : "for" == e ? a.htmlFor = b : fg.hasOwnProperty(e) ? a.setAttribute(fg[e], b) : 0 == e.lastIndexOf("aria-",
0) || 0 == e.lastIndexOf("data-", 0) ? a.setAttribute(e, b) : a[e] = b
})
},
fg = {
cellpadding: "cellPadding",
cellspacing: "cellSpacing",
colspan: "colSpan",
frameborder: "frameBorder",
height: "height",
maxlength: "maxLength",
nonce: "nonce",
role: "role",
rowspan: "rowSpan",
type: "type",
usemap: "useMap",
valign: "vAlign",
width: "width"
},
hg = function() {
var a = window.document;
a = "CSS1Compat" == a.compatMode ? a.documentElement : a.body;
return new $f(a.clientWidth, a.clientHeight)
},
jg = function(a) {
var b = ig(a);
a = a.parentWindow || a.defaultView;
return z &&
wd("10") && a.pageYOffset != b.scrollTop ? new A(b.scrollLeft, b.scrollTop) : new A(a.pageXOffset || b.scrollLeft, a.pageYOffset || b.scrollTop)
},
ig = function(a) {
return a.scrollingElement ? a.scrollingElement : kd || "CSS1Compat" != a.compatMode ? a.body || a.documentElement : a.documentElement
},
B = function(a, b, c) {
return kg(document, arguments)
},
kg = function(a, b) {
var c = String(b[0]),
e = b[1];
if (!Xf && e && (e.name || e.type)) {
c = ["<", c];
e.name && c.push(' name="', Fb(e.name), '"');
if (e.type) {
c.push(' type="', Fb(e.type), '"');
var f = {};
Wb(f, e);
delete f.type;
e = f
}
c.push(">");
c = c.join("")
}
c = a.createElement(c);
e && (u(e) ? c.className = e : za(e) ? c.className = e.join(" ") : gg(c, e));
2 < b.length && lg(a, c, b);
return c
},
lg = function(a, b, c) {
function e(c) {
c && b.appendChild(u(c) ? a.createTextNode(c) : c)
}
for (var f = 2; f < c.length; f++) {
var g = c[f];
!Aa(g) || Ca(g) && 0 < g.nodeType ? e(g) : Ya(mg(g) ? gb(g) : g, e)
}
},
ng = function(a) {
for (var b; b = a.firstChild;) a.removeChild(b)
},
C = function(a) {
return a && a.parentNode ? a.parentNode.removeChild(a) : null
},
pg = function(a, b) {
if (!a || !b) return !1;
if (a.contains &&
1 == b.nodeType) return a == b || a.contains(b);
if ("undefined" != typeof a.compareDocumentPosition) return a == b || !!(a.compareDocumentPosition(b) & 16);
for (; b && a != b;) b = b.parentNode;
return b == a
},
bg = function(a) {
return 9 == a.nodeType ? a : a.ownerDocument || a.document
},
qg = function(a, b) {
if ("textContent" in a) a.textContent = b;
else if (3 == a.nodeType) a.data = String(b);
else if (a.firstChild && 3 == a.firstChild.nodeType) {
for (; a.lastChild != a.firstChild;) a.removeChild(a.lastChild);
a.firstChild.data = String(b)
} else ng(a), a.appendChild(bg(a).createTextNode(String(b)))
},
rg = {
SCRIPT: 1,
STYLE: 1,
HEAD: 1,
IFRAME: 1,
OBJECT: 1
},
sg = {
IMG: " ",
BR: "\n"
},
tg = function(a, b) {
b ? a.tabIndex = 0 : (a.tabIndex = -1, a.removeAttribute("tabIndex"))
},
ug = function(a) {
return z && !wd("9") ? (a = a.getAttributeNode("tabindex"), null != a && a.specified) : a.hasAttribute("tabindex")
},
vg = function(a) {
a = a.tabIndex;
return v(a) && 0 <= a && 32768 > a
},
xg = function(a) {
if (Zf && null !== a && "innerText" in a) a = a.innerText.replace(/(\r\n|\r|\n)/g, "\n");
else {
var b = [];
wg(a, b, !0);
a = b.join("")
}
a = a.replace(/ \xAD /g, " ").replace(/\xAD/g, "");
a = a.replace(/\u200B/g,
"");
Zf || (a = a.replace(/ +/g, " "));
" " != a && (a = a.replace(/^\s*/, ""));
return a
},
yg = function(a) {
var b = [];
wg(a, b, !1);
return b.join("")
},
wg = function(a, b, c) {
if (!(a.nodeName in rg))
if (3 == a.nodeType) c ? b.push(String(a.nodeValue).replace(/(\r\n|\r|\n)/g, "")) : b.push(a.nodeValue);
else if (a.nodeName in sg) b.push(sg[a.nodeName]);
else
for (a = a.firstChild; a;) wg(a, b, c), a = a.nextSibling
},
mg = function(a) {
if (a && "number" == typeof a.length) {
if (Ca(a)) return "function" == typeof a.item || "string" == typeof a.item;
if (Ba(a)) return "function" ==
typeof a.item
}
return !1
},
ag = function(a) {
this.document_ = a || q.document || document
};
ag.prototype.getElement = function(a) {
return u(a) ? this.document_.getElementById(a) : a
};
ag.prototype.getElementsByTagName = function(a, b) {
return (b || this.document_).getElementsByTagName(String(a))
};
ag.prototype.createDom = function(a, b, c) {
return kg(this.document_, arguments)
};
var zg = function(a, b) {
return a.document_.createElement(String(b))
};
d = ag.prototype;
d.appendChild = function(a, b) {
a.appendChild(b)
};
d.canHaveChildren = function(a) {
if (1 != a.nodeType) return !1;
switch (a.tagName) {
case "APPLET":
case "AREA":
case "BASE":
case "BR":
case "COL":
case "COMMAND":
case "EMBED":
case "FRAME":
case "HR":
case "IMG":
case "INPUT":
case "IFRAME":
case "ISINDEX":
case "KEYGEN":
case "LINK":
case "NOFRAMES":
case "NOSCRIPT":
case "META":
case "OBJECT":
case "PARAM":
case "SCRIPT":
case "SOURCE":
case "STYLE":
case "TRACK":
case "WBR":
return !1
}
return !0
};
d.removeNode = C;
d.getChildren = function() {
return Yf && void 0 != (void 0).children ? (void 0).children : Za((void 0).childNodes, function(a) {
return 1 == a.nodeType
})
};
d.contains = pg;
var Ag = [5, 6, 7, 8, 9],
Bg = 0,
Cg = !1,
Dg = {},
Eg = [],
Fg = function(a, b, c) {
Dg[a] = b;
c && !Eg.includes(a) && Eg.push(a)
},
Gg = function(a) {
var b = La();
0 == a && (Bg = b);
Dg.e = a;
Dg.t = 0 == Bg ? -1 : Math.floor(b - Bg);
Dg.m = Kc ? 1 : 0;
b = hg();
Dg.w = b.width > b.height ? 1 : 0;
Dg.o = "orientation" in window ? parseInt(window.orientation, 10) : "_";
b = [];
for (var c in Dg) Dg.hasOwnProperty(c) && b.push(c + ":" + Dg[c]);
c = b.join(",");
b = 0 <= Ag.indexOf(a);
window.google && window.google.log ? (10 == a ? (Cc || (b = document.getElementById("hplogoved")) && (Cc = b.getAttribute("data-ved")),
(b = Cc) && (c += "&ved=" + b)) : b && (Dc || (b = document.getElementById("hplogoshareved")) && (Dc = b.getAttribute("data-ved")), (b = Dc) && (c += "&ved=" + b)), window.google.log("doodle", c)) : Ua(c);
for (; 0 < Eg.length;) delete Dg[Eg.pop()];
Cg || 0 != a || Af() || (Cg = !0, Gg(10))
};
var Jg = function(a, b, c, e, f, g) {
if (!(z || id || kd && wd("525"))) return !0;
if (md && f) return Hg(a);
if (f && !e) return !1;
v(b) && (b = Ig(b));
f = 17 == b || 18 == b || md && 91 == b;
if ((!c || md) && f || md && 16 == b && (e || g)) return !1;
if ((kd || id) && e && c) switch (a) {
case 220:
case 219:
case 221:
case 192:
case 186:
case 189:
case 187:
case 188:
case 190:
case 191:
case 192:
case 222:
return !1
}
if (z && e && b == a) return !1;
switch (a) {
case 13:
return !0;
case 27:
return !(kd || id)
}
return Hg(a)
},
Hg = function(a) {
if (48 <= a && 57 >= a || 96 <= a && 106 >= a || 65 <= a && 90 >= a || (kd || id) && 0 == a) return !0;
switch (a) {
case 32:
case 43:
case 63:
case 64:
case 107:
case 109:
case 110:
case 111:
case 186:
case 59:
case 189:
case 187:
case 61:
case 188:
case 190:
case 191:
case 192:
case 222:
case 219:
case 220:
case 221:
return !0;
default:
return !1
}
},
Ig = function(a) {
if (jd) a = Kg(a);
else if (md && kd) switch (a) {
case 93:
a = 91
}
return a
},
Kg = function(a) {
switch (a) {
case 61:
return 187;
case 59:
return 186;
case 173:
return 189;
case 224:
return 91;
case 0:
return 224;
default:
return a
}
};
var Lg = function(a) {
Ed.call(this);
this.goog_events_EventHandler$handler_ = a;
this.goog_events_EventHandler$keys_ = {}
};
w(Lg, Ed);
var Mg = [];
Lg.prototype.listen = function(a, b, c, e) {
za(b) || (b && (Mg[0] = b.toString()), b = Mg);
for (var f = 0; f < b.length; f++) {
var g = $d(a, b[f], c || this.handleEvent, e || !1, this.goog_events_EventHandler$handler_ || this);
if (!g) break;
this.goog_events_EventHandler$keys_[g.key] = g
}
return this
};
Lg.prototype.unlisten = function(a, b, c, e, f) {
if (za(b))
for (var g = 0; g < b.length; g++) this.unlisten(a, b[g], c, e, f);
else c = c || this.handleEvent, e = Ca(e) ? !!e.capture : !!e, f = f || this.goog_events_EventHandler$handler_ || this, c = ae(c), e = !!e, b = Od(a) ? Vd(a.eventTargetListeners_, String(b), c, e, f) : a ? (a = ce(a)) ? Vd(a, b, c, e, f) : null : null, b && (he(b), delete this.goog_events_EventHandler$keys_[b.key]);
return this
};
var Ng = function(a) {
Sb(a.goog_events_EventHandler$keys_, function(a, c) {
this.goog_events_EventHandler$keys_.hasOwnProperty(c) && he(a)
}, a);
a.goog_events_EventHandler$keys_ = {}
};
Lg.prototype.disposeInternal = function() {
Lg.superClass_.disposeInternal.call(this);
Ng(this)
};
Lg.prototype.handleEvent = function() {
throw Error("n");
};
var Og = function(a, b) {
window.google && google.doodle && (b && Ma("google.doodle.cpDestroy", b), Ma("google.doodle.cpInit", function() {
b && b();
a()
}))
};
var Qg = function(a, b, c) {
if (!Pg) return b;
try {
var e = window.localStorage.getItem(a)
} catch (f) {
return b
}
if (null == e) return b;
a = JSON.parse(e);
return c && !c(a) ? b : a
},
Rg = function(a, b, c) {
if (Pg && (!c || c(b))) try {
window.localStorage.setItem(a, JSON.stringify(b))
} catch (e) {}
},
Pg = !!self.localStorage;
var Sg = function(a) {
return 0 == a.indexOf("//") ? "https:" + a : a
},
Ug = function() {
var a = Tg(),
b = Uc("share", "");
Gg(9);
a = fc(jc(a), "ios");
window.location = "http://www.google.com/doodles/_SHARE?description=" + encodeURIComponent(b) + "&url=" + encodeURIComponent(a)
},
Vg = function() {
var a = Tg();
a = fc(jc(a), "cl");
return Sg(a)
};
var Wg = function(a, b) {
this.imagePreloaders_ = [];
this.imageSizes_ = [];
for (var c = 0, e; e = b[c]; c++) {
var f = new Ra(a + e.filename);
e = e.size;
this.imagePreloaders_.push(f);
this.imageSizes_.push(e)
}
};
d = Wg.prototype;
d.preload = function(a, b) {
var c = this.imagePreloaders_[v(a) ? a : a[0]];
b && Qa(c, b);
c.preload()
};
d.unload = function(a) {
this.imagePreloaders_[v(a) ? a : a[0]].unload()
};
d.isLoaded = function() {
return this.imagePreloaders_[v(void 0) ? void 0 : (void 0)[0]].isLoaded()
};
d.getWidth = function(a) {
return a[3]
};
d.getHeight = function(a) {
return a[4]
};
d.getSize = function() {
return {
width: (void 0)[3],
height: (void 0)[4]
}
};
d.drawImage = function(a, b, c, e, f, g, h, m, n, p) {
var r = b[1],
t = b[2],
x = b[3],
fa = b[4];
if (void 0 == f) {
var R = r;
var Ga = t;
var ua = x;
var la = fa;
f = x;
g = fa
} else void 0 == h ? (R = r, Ga = t, ua = x, la = fa) : (R = r + c, Ga = t + e, ua = f, la = g, c = h, e = m, f = n, g = p);
R < r && (p = r - R, R = r, ua -= p, c += p, f -= p);
Ga < t && (p = t - Ga, Ga = t, la -= p, e += p, g -= p);
R + ua > r + x && (p = R + ua - (r + x), ua -= p, f -= p);
Ga + la > t + fa && (p = Ga + la - (t + fa), la -= p, g -= p);
b = this.imagePreloaders_[v(b) ? b : b[0]];
if (!b.isLoaded()) throw Error("o");
0 < ua && 0 < la && a.drawImage(b.image, R, Ga, ua, la, c, e, f, g)
};
var Xg = function(a, b) {
this.preloaders_ = $a(b, function(b) {
return new Ra(a + b)
});
this.canvases_ = new Map
};
Xg.prototype.preload = function(a, b) {
var c = Yg(this, a);
Qa(c, b);
c.preload()
};
var Yg = function(a, b) {
return "number" == typeof b ? a.preloaders_[b] : a.preloaders_[b[0]]
};
Xg.prototype.getHeight = function(a) {
return a[4]
};
Xg.prototype.getWidth = function(a) {
return a[3]
};
var $g = function(a, b, c) {
c = void 0 === c ? 1 : c;
var e = b + "," + c;
if (!a.canvases_.has(e)) {
var f = Yg(a, b[0]);
if (!f.isLoaded()) return null;
a.canvases_.set(e, Zg(b, f.image, c))
}
return a.canvases_.get(e)
},
Zg = function(a, b, c) {
var e = document.createElement("canvas"),
f = a[3] + 10,
g = a[4] + 10;
e.width = Math.ceil(f * c);
e.height = Math.ceil(g * c);
var h = e.getContext("2d");
h.scale(c, c);
h.drawImage(b, a[1] - 5, a[2] - 5, f, g, 0, 0, f, g);
return e
};
Xg.prototype.unload = function(a) {
Yg(this, a).unload()
};
var ah = function() {
this.wasFinished_ = this.wasStarted_ = !1
};
d = ah.prototype;
d.update = function(a) {
this.wasStarted_ || (this.onStart(), this.wasStarted_ = !0);
if (this.module$exports$logo17$action_Action_prototype$isFinished()) this.wasFinished_ || (this.onFinish(), this.wasFinished_ = !0);
else this.onUpdate(a)
};
d.module$exports$logo17$action_Action_prototype$isFinished = function() {
return !0
};
d.onStart = function() {};
d.onUpdate = function() {};
d.onFinish = function() {};
var bh = function(a) {
ah.call(this);
this.module$exports$logo17$action_CallbackAction$callback_ = a
};
k(bh, ah);
bh.prototype.onFinish = function() {
ah.prototype.onFinish.call(this);
this.module$exports$logo17$action_CallbackAction$callback_()
};
var ch = function(a) {
ah.call(this);
this.module$exports$logo17$action_ActionSequence$actions_ = a;
this.activeIndex_ = 0
};
k(ch, ah);
ch.prototype.module$exports$logo17$action_Action_prototype$isFinished = function() {
return this.activeIndex_ >= this.module$exports$logo17$action_ActionSequence$actions_.length
};
ch.prototype.onUpdate = function(a) {
this.module$exports$logo17$action_Action_prototype$isFinished() || (this.module$exports$logo17$action_ActionSequence$actions_[this.activeIndex_].update(a), this.module$exports$logo17$action_ActionSequence$actions_[this.activeIndex_].module$exports$logo17$action_Action_prototype$isFinished() && this.activeIndex_++)
};
var dh = function(a) {
ah.call(this);
this.module$exports$logo17$action_ActionGroup$actions_ = a
};
k(dh, ah);
dh.prototype.module$exports$logo17$action_Action_prototype$isFinished = function() {
for (var a = l(this.module$exports$logo17$action_ActionGroup$actions_), b = a.next(); !b.done; b = a.next())
if (!b.value.module$exports$logo17$action_Action_prototype$isFinished()) return !1;
return !0
};
dh.prototype.onUpdate = function(a) {
if (!this.module$exports$logo17$action_Action_prototype$isFinished())
for (var b = l(this.module$exports$logo17$action_ActionGroup$actions_), c = b.next(); !c.done; c = b.next()) c.value.update(a)
};
var eh = function() {
this.module$exports$logo17$ActionManager$actions_ = []
};
eh.prototype.update = function(a) {
for (var b = this.module$exports$logo17$ActionManager$actions_.length - 1; 0 <= b; b--) this.module$exports$logo17$ActionManager$actions_[b].update(a), this.module$exports$logo17$ActionManager$actions_[b].module$exports$logo17$action_Action_prototype$isFinished() && this.module$exports$logo17$ActionManager$actions_.splice(b, 1)
};
var fh = function(a, b) {
a.module$exports$logo17$ActionManager$actions_.push(b)
};
var gh = function(a, b, c) {
this.x = a;
this.y = b;
this.z = c
},
hh = function(a) {
return D(a.x, a.y, a.z)
};
gh.prototype.scale = function(a) {
this.x *= a;
this.y *= a;
this.z *= a;
return this
};
var ih = function(a) {
return a.set(a.x - a.z, (a.x + a.z) / 2 + a.y, 0)
},
jh = function(a, b) {
return a.set(a.x / 2 + a.y, void 0 === b ? 0 : b, a.y - a.x / 2)
},
kh = function(a, b) {
a.x += b.x;
a.y += b.y;
a.z += b.z;
return a
};
gh.prototype.add = function(a, b, c) {
this.x += a;
this.y += b;
this.z += c;
return this
};
gh.prototype.set = function(a, b, c) {
this.x = a;
this.y = b;
this.z = c;
return this
};
var lh = function(a, b) {
a.x = b.x;
a.y = b.y;
a.z = b.z
};
gh.prototype.release = function() {
0 > mh.indexOf(this) && mh.push(this)
};
gh.prototype.equals = function(a) {
return this == a || !!a && this.x == a.x && this.y == a.y && this.z == a.z
};
var D = function(a, b, c) {
var e = mh.shift();
return e ? e.set(a, b, c) : new gh(a, b, c)
},
nh = function(a) {
try {
var b = JSON.parse(a);
return va(b.x) && va(b.y) && va(b.z) ? D(b.x, b.y, b.z) : null
} catch (c) {
return null
}
},
oh = function(a, b) {
var c = a.x - b.x,
e = a.y - b.y,
f = a.z - b.z;
return Math.sqrt(c * c + e * e + f * f)
},
ph = function(a, b, c) {
return D(Nb(a.x, b.x, c), Nb(a.y, b.y, c), Nb(a.z, b.z, c))
},
mh = [];
var rh = function(a, b, c, e, f, g) {
if (6 == arguments.length) qh(this, a, b, c, e, f, g);
else {
if (0 != arguments.length) throw Error("p");
this.m00_ = this.m11_ = 1;
this.m10_ = this.m01_ = this.m02_ = this.m12_ = 0
}
},
qh = function(a, b, c, e, f, g, h) {
if (!(v(b) && v(c) && v(e) && v(f) && v(g) && v(h))) throw Error("q");
a.m00_ = b;
a.m10_ = c;
a.m01_ = e;
a.m11_ = f;
a.m02_ = g;
a.m12_ = h
};
d = rh.prototype;
d.scale = function(a, b) {
this.m00_ *= a;
this.m10_ *= a;
this.m01_ *= b;
this.m11_ *= b;
return this
};
d.translate = function(a, b) {
this.m02_ += a * this.m00_ + b * this.m01_;
this.m12_ += a * this.m10_ + b * this.m11_;
return this
};
d.toString = function() {
return "matrix(" + [this.m00_, this.m10_, this.m01_, this.m11_, this.m02_, this.m12_].join() + ")"
};
d.transform = function(a, b, c, e, f) {
var g = b;
for (b += 2 * f; g < b;) {
f = a[g++];
var h = a[g++];
c[e++] = f * this.m00_ + h * this.m01_ + this.m02_;
c[e++] = f * this.m10_ + h * this.m11_ + this.m12_
}
};
d.equals = function(a) {
return this == a ? !0 : a ? this.m00_ == a.m00_ && this.m01_ == a.m01_ && this.m02_ == a.m02_ && this.m10_ == a.m10_ && this.m11_ == a.m11_ && this.m12_ == a.m12_ : !1
};
var E = function(a) {
a = void 0 === a ? D(0, 0, 0) : a;
Ed.call(this);
this.worldPosition = D(0, 0, 0);
this.position = a;
this.initialPosition_ = hh(this.position);
this.objectAnchor_ = null;
this.opacity = this.scale = 1;
this.renderTransform = new rh;
this.renderOpacity = this.opacity;
this.forceIsometric = !1;
this.children = [];
this.childrenChanged_ = !1;
this.descendants_ = [];
this.actionManager = new eh
};
k(E, Ed);
d = E.prototype;
d.disposeInternal = function() {
Ed.prototype.disposeInternal.call(this);
this.actionManager.module$exports$logo17$ActionManager$actions_ = [];
this.position.release();
this.initialPosition_.release();
this.worldPosition.release()
};
d.update = function(a) {
for (var b = l(this.children), c = b.next(); !c.done; c = b.next()) c.value.update(a);
this.actionManager.update(a)
};
d.render = function(a) {
0 < this.renderOpacity && this.renderInternal(a);
if (0 < this.children.length)
for (var b = l(this.children), c = b.next(); !c.done; c = b.next()) c.value.render(a)
};
d.renderInternal = function() {};
d.reset = function() {
lh(this.position, this.initialPosition_);
for (var a = l(this.children), b = a.next(); !b.done; b = a.next()) b.value.reset();
this.actionManager.module$exports$logo17$ActionManager$actions_ = []
};
var sh = function(a, b, c, e, f) {
if (b) {
var g = a.renderTransform;
g.m00_ = b.m00_;
g.m10_ = b.m10_;
g.m01_ = b.m01_;
g.m11_ = b.m11_;
g.m02_ = b.m02_;
g.m12_ = b.m12_
} else qh(a.renderTransform, 1, 0, 0, 1, 0, 0);
c ? a.worldPosition.set(a.position.x + c.x, a.position.y + c.y, a.position.z + c.z) : lh(a.worldPosition, a.position);
(e = e || a.forceIsometric) ? (b = ih(hh(a.position)), a.renderTransform.translate(b.x, b.y), b.release()) : a.renderTransform.translate(a.position.x, a.position.y);
a.renderTransform.scale(a.scale, a.scale);
a.renderOpacity = f * a.opacity;
f = l(a.children);
for (b = f.next(); !b.done; b = f.next()) sh(b.value, a.renderTransform, a.worldPosition, e, a.renderOpacity)
};
E.prototype.getWidth = function() {
return 0
};
E.prototype.getHeight = function() {
return 0
};
E.prototype.getCenterPosition = function() {
return hh(this.position)
};
var th = function(a) {
return a.objectAnchor_ ? hh(a.objectAnchor_) : a.getCenterPosition()
},
F = function(a, b) {
a.children.push(b);
Gd(a, b);
a.childrenChanged_ = !0
},
uh = function(a, b) {
jb(a.children, 0, 0, b);
Gd(a, b);
a.childrenChanged_ = !0
};
E.prototype.removeChild = function(a) {
eb(this.children, a);
this.childrenChanged_ = !0
};
E.prototype.getChildren = function() {
return this.children
};
E.prototype.getDescendants = function() {
if (this.childrenChanged_) {
this.descendants_ = [].concat(qa(this.children));
for (var a = l(this.children), b = a.next(); !b.done; b = a.next()) this.descendants_.push.apply(this.descendants_, [].concat(qa(b.value.getDescendants())))
}
return this.descendants_
};
var wh = function() {
Wg.call(this, "/logos/2017/logo17/", vh)
};
w(wh, Wg);
var vh = [{
filename: "main-sprite.png",
size: [20, 20]
}];
xa(wh);
var yh = function() {
Xg.call(this, "/logos/2017/logo17/", xh)
};
k(yh, Xg);
var xh = "loading-sprite.svg shared-sprite.svg one-sprite.svg one-six-sprite.svg two-sprite.svg three-sprite.svg three-five-sprite.svg four-sprite.svg four-five-sprite.svg four-six-sprite.svg five-sprite.svg six-sprite.svg".split(" "),
G = {
BLOCK01_DECOR: [11, 20, 37050, 68.2, 34.9],
BLOCK02_06_DECOR: [11, 20, 37105, 54.8, 27.8],
BLOCK04_08_DECOR: [11, 20, 37153, 53.8, 26.8],
BUNNY_EAST_0: [1, 20, 20, 128, 169],
BUNNY_EAST_1: [1, 20, 209, 128, 169],
BUNNY_EAST_10: [1, 20, 398, 128, 169],
BUNNY_EAST_11: [1, 20, 587, 128, 169],
BUNNY_EAST_12: [1,
20, 776, 128, 169
],
BUNNY_EAST_13: [1, 20, 965, 128, 169],
BUNNY_EAST_14: [1, 20, 1154, 128, 169],
BUNNY_EAST_15: [1, 20, 1343, 128, 169],
BUNNY_EAST_16: [1, 20, 1532, 128, 169],
BUNNY_EAST_17: [1, 20, 1721, 128, 169],
BUNNY_EAST_18: [1, 20, 1910, 128, 169],
BUNNY_EAST_2: [1, 20, 2099, 128, 169],
BUNNY_EAST_3: [1, 20, 2288, 128, 169],
BUNNY_EAST_4: [1, 20, 2477, 128, 169],
BUNNY_EAST_5: [1, 20, 2666, 128, 169],
BUNNY_EAST_6: [1, 20, 2855, 128, 169],
BUNNY_EAST_7: [1, 20, 3044, 128, 169],
BUNNY_EAST_8: [1, 20, 3233, 128, 169],
BUNNY_EAST_9: [1, 20, 3422, 128, 169],
BUNNY_NORTH_0: [1, 20,
3611, 128, 170
],
BUNNY_NORTH_1: [1, 20, 3801, 128, 170],
BUNNY_NORTH_10: [1, 20, 3991, 128, 170],
BUNNY_NORTH_11: [1, 20, 4181, 128, 170],
BUNNY_NORTH_12: [1, 20, 4371, 128, 170],
BUNNY_NORTH_13: [1, 20, 4561, 128, 170],
BUNNY_NORTH_14: [1, 20, 4751, 128, 170],
BUNNY_NORTH_15: [1, 20, 4941, 128, 170],
BUNNY_NORTH_16: [1, 20, 5131, 128, 170],
BUNNY_NORTH_17: [1, 20, 5321, 128, 170],
BUNNY_NORTH_18: [1, 20, 5511, 128, 170],
BUNNY_NORTH_2: [1, 20, 5701, 128, 170],
BUNNY_NORTH_3: [1, 20, 5891, 128, 170],
BUNNY_NORTH_4: [1, 20, 6081, 128, 170],
BUNNY_NORTH_5: [1, 20, 6271, 128, 170],
BUNNY_NORTH_6: [1,
20, 6461, 128, 170
],
BUNNY_NORTH_7: [1, 20, 6651, 128, 170],
BUNNY_NORTH_8: [1, 20, 6841, 128, 170],
BUNNY_NORTH_9: [1, 20, 7031, 128, 170],
BUNNY_SOUTH_0: [1, 20, 7221, 128, 170],
BUNNY_SOUTH_1: [1, 20, 7411, 128, 170],
BUNNY_SOUTH_10: [1, 20, 7601, 128, 170],
BUNNY_SOUTH_11: [1, 20, 7791, 128, 170],
BUNNY_SOUTH_12: [1, 20, 7981, 128, 170],
BUNNY_SOUTH_13: [1, 20, 8171, 128, 170],
BUNNY_SOUTH_14: [1, 20, 8361, 128, 170],
BUNNY_SOUTH_15: [1, 20, 8551, 128, 170],
BUNNY_SOUTH_16: [1, 20, 8741, 128, 170],
BUNNY_SOUTH_17: [1, 20, 8931, 128, 170],
BUNNY_SOUTH_18: [1, 20, 9121, 128, 170],
BUNNY_SOUTH_2: [1, 20, 9311, 128, 170],
BUNNY_SOUTH_3: [1, 20, 9501, 128, 170],
BUNNY_SOUTH_4: [1, 20, 9691, 128, 170],
BUNNY_SOUTH_5: [1, 20, 9881, 128, 170],
BUNNY_SOUTH_6: [1, 20, 10071, 128, 170],
BUNNY_SOUTH_7: [1, 20, 10261, 128, 170],
BUNNY_SOUTH_8: [1, 20, 10451, 128, 170],
BUNNY_SOUTH_9: [1, 20, 10641, 128, 170],
BUNNY_WEST_0: [1, 20, 10831, 128, 170],
BUNNY_WEST_1: [1, 20, 11021, 128, 170],
BUNNY_WEST_10: [1, 20, 11211, 128, 170],
BUNNY_WEST_11: [1, 20, 11401, 128, 170],
BUNNY_WEST_12: [1, 20, 11591, 128, 170],
BUNNY_WEST_13: [1, 20, 11781, 128, 170],
BUNNY_WEST_14: [1,
20, 11971, 128, 170
],
BUNNY_WEST_15: [1, 20, 12161, 128, 170],
BUNNY_WEST_16: [1, 20, 12351, 128, 170],
BUNNY_WEST_17: [1, 20, 12541, 128, 170],
BUNNY_WEST_18: [1, 20, 12731, 128, 170],
BUNNY_WEST_2: [1, 20, 12921, 128, 170],
BUNNY_WEST_3: [1, 20, 13111, 128, 170],
BUNNY_WEST_4: [1, 20, 13301, 128, 170],
BUNNY_WEST_5: [1, 20, 13491, 128, 170],
BUNNY_WEST_6: [1, 20, 13681, 128, 170],
BUNNY_WEST_7: [1, 20, 13871, 128, 170],
BUNNY_WEST_8: [1, 20, 14061, 128, 170],
BUNNY_WEST_9: [1, 20, 14251, 128, 170],
CARROT: [1, 20, 14545, 128, 128],
CARROT_1: [0, 20, 20, 55, 90],
CARROT_10: [0, 20, 130,
55, 90
],
CARROT_11: [0, 20, 240, 55, 90],
CARROT_12: [0, 20, 350, 55, 90],
CARROT_13: [0, 20, 460, 55, 90],
CARROT_14: [0, 20, 570, 55, 90],
CARROT_15: [0, 20, 680, 55, 90],
CARROT_16: [0, 20, 790, 55, 90],
CARROT_17: [0, 20, 900, 55, 90],
CARROT_18: [0, 20, 1010, 55, 90],
CARROT_19: [0, 20, 1120, 55, 90],
CARROT_2: [0, 20, 1230, 55, 90],
CARROT_20: [0, 20, 1340, 55, 90],
CARROT_21: [0, 20, 1450, 55, 90],
CARROT_22: [0, 20, 1560, 55, 90],
CARROT_23: [0, 20, 1670, 55, 90],
CARROT_24: [0, 20, 1780, 55, 90],
CARROT_25: [0, 20, 1890, 55, 90],
CARROT_26: [0, 20, 2E3, 55, 90],
CARROT_27: [0, 20, 2110, 55, 90],
CARROT_28: [0, 20, 2220, 55, 90],
CARROT_29: [0, 20, 2330, 55, 90],
CARROT_3: [0, 20, 2440, 55, 90],
CARROT_30: [0, 20, 2550, 55, 90],
CARROT_31: [0, 20, 2660, 55, 90],
CARROT_32: [0, 20, 2770, 55, 90],
CARROT_33: [0, 20, 2880, 55, 90],
CARROT_34: [0, 20, 2990, 55, 90],
CARROT_35: [0, 20, 3100, 55, 90],
CARROT_36: [0, 20, 3210, 55, 90],
CARROT_37: [0, 20, 3320, 55, 90],
CARROT_38: [0, 20, 3430, 55, 90],
CARROT_39: [0, 20, 3540, 55, 90],
CARROT_4: [0, 20, 3650, 55, 90],
CARROT_40: [0, 20, 3760, 55, 90],
CARROT_41: [0, 20, 3870, 55, 90],
CARROT_42: [0, 20, 3980, 55, 90],
CARROT_43: [0, 20, 4090, 55, 90],
CARROT_44: [0, 20, 4200, 55, 90],
CARROT_45: [0, 20, 4310, 55, 90],
CARROT_46: [0, 20, 4420, 55, 90],
CARROT_47: [0, 20, 4530, 55, 90],
CARROT_48: [0, 20, 4640, 55, 90],
CARROT_5: [0, 20, 4750, 55, 90],
CARROT_6: [0, 20, 4860, 55, 90],
CARROT_7: [0, 20, 4970, 55, 90],
CARROT_8: [0, 20, 5080, 55, 90],
CARROT_9: [0, 20, 5190, 55, 90],
CARROT_EAT_1: [1, 20, 14693, 55, 61],
CARROT_EAT_10: [1, 20, 14774, 55, 61],
CARROT_EAT_11: [1, 20, 14855, 55, 61],
CARROT_EAT_12: [1, 20, 14936, 55, 61],
CARROT_EAT_2: [1, 20, 15017, 55, 61],
CARROT_EAT_3: [1, 20, 15098, 55, 61],
CARROT_EAT_4: [1, 20, 15179, 55, 61],
CARROT_EAT_5: [1, 20, 15260, 55, 61],
CARROT_EAT_6: [1, 20, 15341, 55, 61],
CARROT_EAT_7: [1, 20, 15422, 55, 61],
CARROT_EAT_8: [1, 20, 15503, 55, 61],
CARROT_EAT_9: [1, 20, 15584, 55, 61],
CARROT_SHADOW: [1, 20, 15665, 64, 32],
CLOUD_01: [2, 20, 20, 97, 84],
CLOUD_02: [2, 20, 124, 47, 33],
CLOUD_03: [2, 20, 177, 57, 34],
CLOUD_04: [2, 20, 231, 115, 71],
CTA_PLAY: [0, 20, 5300, 67.6, 102.5],
CTA_PLAY_BG: [0, 20, 5423, 137.9, 137.9],
CUBE_1: [1, 20, 17917, 128, 128],
CUBE_2: [1, 20, 18065, 128, 128],
CUBE_3: [1, 20, 18213, 128, 128],
FLOWER_001: [2, 20, 322, 24, 14],
FLOWER_002: [2, 20, 356, 24,
14
],
FLOWER_003: [2, 20, 390, 24, 14],
FLOWER_004: [2, 20, 424, 24, 14],
FLOWER_005: [2, 20, 458, 24, 14],
FLOWER_006: [2, 20, 492, 24, 14],
FLOWER_007: [2, 20, 526, 24, 14],
FLOWER_008: [2, 20, 560, 24, 14],
FLOWER_009: [2, 20, 594, 24, 14],
FLOWER_010: [2, 20, 628, 24, 14],
FLOWER_011: [2, 20, 662, 24, 14],
FLOWER_012: [2, 20, 696, 24, 14],
FLOWER_013: [2, 20, 730, 24, 14],
FLOWER_TALL_001: [2, 20, 764, 90, 61],
FLOWER_TALL_002: [2, 20, 845, 90, 61],
FLOWER_TALL_003: [2, 20, 926, 90, 61],
FLOWER_TALL_004: [2, 20, 1007, 90, 61],
FLOWER_TALL_005: [2, 20, 1088, 90, 61],
FLOWER_TALL_006: [2, 20,
1169, 90, 61
],
FLOWER_TALL_007: [2, 20, 1250, 90, 61],
FLOWER_TALL_008: [2, 20, 1331, 90, 61],
FLOWER_TALL_009: [2, 20, 1412, 90, 61],
FLOWER_TALL_010: [2, 20, 1493, 90, 61],
FLOWER_TALL_011: [2, 20, 1574, 90, 61],
FLOWER_TALL_012: [2, 20, 1655, 90, 61],
FLOWER_TALL_013: [2, 20, 1736, 90, 61],
FLOWER_TALL_014: [2, 20, 1817, 90, 61],
FLOWER_YELLOW_001: [2, 20, 1898, 18, 10],
FLOWER_YELLOW_002: [2, 20, 1928, 18, 10],
FLOWER_YELLOW_003: [2, 20, 1958, 18, 10],
FLOWER_YELLOW_004: [2, 20, 1988, 18, 10],
FLOWER_YELLOW_005: [2, 20, 2018, 18, 10],
FLOWER_YELLOW_006: [2, 20, 2048, 18, 10],
FLOWER_YELLOW_007: [2,
20, 2078, 18, 10
],
FLOWER_YELLOW_008: [2, 20, 2108, 18, 10],
FLOWER_YELLOW_009: [2, 20, 2138, 18, 10],
FLOWER_YELLOW_010: [2, 20, 2168, 18, 10],
FOUNTAIN: [2, 20, 2198, 150, 156],
FOUNTAIN_ALT: [2, 20, 2374, 133, 152],
FOUNTAIN_RIPPLE_001: [2, 20, 2546, 44, 20],
FOUNTAIN_RIPPLE_002: [2, 20, 2586, 44, 20],
FOUNTAIN_RIPPLE_003: [2, 20, 2626, 44, 20],
FOUNTAIN_RIPPLE_004: [2, 20, 2666, 44, 20],
FOUNTAIN_RIPPLE_005: [2, 20, 2706, 44, 20],
FOUNTAIN_RIPPLE_006: [2, 20, 2746, 44, 20],
FOUNTAIN_RIPPLE_007: [2, 20, 2786, 44, 20],
FOUNTAIN_RIPPLE_008: [2, 20, 2826, 44, 20],
FOUNTAIN_RIPPLE_009: [2,
20, 2866, 44, 20
],
FOUNTAIN_RIPPLE_010: [2, 20, 2906, 44, 20],
FOUNTAIN_RIPPLE_011: [2, 20, 2946, 44, 20],
FOUNTAIN_RIPPLE_012: [2, 20, 2986, 44, 20],
FOUNTAIN_RIPPLE_013: [2, 20, 3026, 44, 20],
FOUNTAIN_RIPPLE_014: [2, 20, 3066, 44, 20],
FOUNTAIN_RIPPLE_015: [2, 20, 3106, 44, 20],
FOUNTAIN_RIPPLE_016: [2, 20, 3146, 44, 20],
FOUNTAIN_RIPPLE_017: [2, 20, 3186, 44, 20],
FOUNTAIN_RIPPLE_018: [2, 20, 3226, 44, 20],
FOUNTAIN_RIPPLE_019: [2, 20, 3266, 44, 20],
FOUNTAIN_RIPPLE_020: [2, 20, 3306, 44, 20],
FOUNTAIN_RIPPLE_021: [2, 20, 3346, 44, 20],
FOUNTAIN_WATER_0: [2, 20, 3386, 80,
80
],
FOUNTAIN_WATER_1: [2, 20, 3486, 80, 80],
FOUNTAIN_WATER_10: [2, 20, 3586, 80, 80],
FOUNTAIN_WATER_11: [2, 20, 3686, 80, 80],
FOUNTAIN_WATER_12: [2, 20, 3786, 80, 80],
FOUNTAIN_WATER_13: [2, 20, 3886, 80, 80],
FOUNTAIN_WATER_14: [2, 20, 3986, 80, 80],
FOUNTAIN_WATER_15: [2, 20, 4086, 80, 80],
FOUNTAIN_WATER_16: [2, 20, 4186, 80, 80],
FOUNTAIN_WATER_17: [2, 20, 4286, 80, 80],
FOUNTAIN_WATER_18: [2, 20, 4386, 80, 80],
FOUNTAIN_WATER_19: [2, 20, 4486, 80, 80],
FOUNTAIN_WATER_2: [2, 20, 4586, 80, 80],
FOUNTAIN_WATER_20: [2, 20, 4686, 80, 80],
FOUNTAIN_WATER_21: [2, 20, 4786, 80,
80
],
FOUNTAIN_WATER_22: [2, 20, 4886, 80, 80],
FOUNTAIN_WATER_23: [2, 20, 4986, 80, 80],
FOUNTAIN_WATER_24: [2, 20, 5086, 80, 80],
FOUNTAIN_WATER_25: [2, 20, 5186, 80, 80],
FOUNTAIN_WATER_26: [2, 20, 5286, 80, 80],
FOUNTAIN_WATER_27: [2, 20, 5386, 80, 80],
FOUNTAIN_WATER_28: [2, 20, 5486, 80, 80],
FOUNTAIN_WATER_3: [2, 20, 5586, 80, 80],
FOUNTAIN_WATER_4: [2, 20, 5686, 80, 80],
FOUNTAIN_WATER_5: [2, 20, 5786, 80, 80],
FOUNTAIN_WATER_6: [2, 20, 5886, 80, 80],
FOUNTAIN_WATER_7: [2, 20, 5986, 80, 80],
FOUNTAIN_WATER_8: [2, 20, 6086, 80, 80],
FOUNTAIN_WATER_9: [2, 20, 6186, 80, 80],
GATE: [2, 20, 6286, 153, 195],
LOADING_E: [0, 20, 5581, 41, 36],
LOADING_G1: [0, 20, 5637, 41, 36],
LOADING_G2: [0, 20, 5693, 41, 36],
LOADING_L: [0, 20, 5749, 41, 36],
LOADING_O1: [0, 20, 5805, 41, 36],
LOADING_O2: [0, 20, 5861, 41, 36],
N027_L2_BLOCK01_001: [4, 20, 20, 99, 174],
N027_L2_BLOCK01_002: [4, 20, 214, 99, 174],
N027_L2_BLOCK01_003: [4, 20, 408, 99, 174],
N027_L2_BLOCK01_004: [4, 20, 602, 99, 174],
N027_L2_BLOCK01_005: [4, 20, 796, 99, 174],
N027_L2_BLOCK01_006: [4, 20, 990, 99, 174],
N027_L2_BLOCK01_007: [4, 20, 1184, 99, 174],
N027_L2_BLOCK01_008: [4, 20, 1378, 99, 174],
N027_L2_BLOCK01_009: [4, 20, 1572, 99, 174],
N027_L2_BLOCK01_010: [4, 20, 1766, 99, 174],
N027_L2_BLOCK01_011: [4, 20, 1960, 99, 174],
N027_L2_BLOCK01_012: [4, 20, 2154, 99, 174],
N027_L2_BLOCK01_013: [4, 20, 2348, 99, 174],
N027_L2_BLOCK01_014: [4, 20, 2542, 99, 174],
N027_L2_BLOCK01_015: [4, 20, 2736, 99, 174],
N027_L2_BLOCK01_016: [4, 20, 2930, 99, 174],
N027_L2_BLOCK01_017: [4, 20, 3124, 99, 174],
N027_L2_BLOCK01_018: [4, 20, 3318, 99, 174],
N028_L2_BLOCK02_001: [4, 20, 3512, 52, 65],
N028_L2_BLOCK02_002: [4, 20, 3597, 52, 65],
N028_L2_BLOCK02_003: [4, 20, 3682, 52, 65],
N028_L2_BLOCK02_004: [4, 20, 3767, 52, 65],
N028_L2_BLOCK02_005: [4, 20, 3852, 52, 65],
N028_L2_BLOCK02_006: [4, 20, 3937, 52, 65],
N028_L2_BLOCK02_007: [4, 20, 4022, 52, 65],
N028_L2_BLOCK02_008: [4, 20, 4107, 52, 65],
N028_L2_BLOCK02_009: [4, 20, 4192, 52, 65],
N028_L2_BLOCK02_010: [4, 20, 4277, 52, 65],
N028_L2_BLOCK02_011: [4, 20, 4362, 52, 65],
N028_L2_BLOCK02_012: [4, 20, 4447, 52, 65],
N028_L2_BLOCK02_013: [4, 20, 4532, 52, 65],
N028_L2_BLOCK02_014: [4, 20, 4617, 52, 65],
N028_L2_BLOCK02_015: [4, 20, 4702, 52, 65],
N028_L2_BLOCK02_016: [4, 20, 4787, 52, 65],
N028_L2_BLOCK02_017: [4,
20, 4872, 52, 65
],
N028_L2_BLOCK02_018: [4, 20, 4957, 52, 65],
N029_L2_BLOCK03_001: [4, 20, 5042, 123, 202],
N029_L2_BLOCK03_002: [4, 20, 5264, 123, 202],
N029_L2_BLOCK03_003: [4, 20, 5486, 123, 202],
N029_L2_BLOCK03_004: [4, 20, 5708, 123, 202],
N029_L2_BLOCK03_005: [4, 20, 5930, 123, 202],
N029_L2_BLOCK03_006: [4, 20, 6152, 123, 202],
N029_L2_BLOCK03_007: [4, 20, 6374, 123, 202],
N029_L2_BLOCK03_008: [4, 20, 6596, 123, 202],
N029_L2_BLOCK03_009: [4, 20, 6818, 123, 202],
N029_L2_BLOCK03_010: [4, 20, 7040, 123, 202],
N029_L2_BLOCK03_011: [4, 20, 7262, 123, 202],
N029_L2_BLOCK03_012: [4,
20, 7484, 123, 202
],
N029_L2_BLOCK03_013: [4, 20, 7706, 123, 202],
N029_L2_BLOCK03_014: [4, 20, 7928, 123, 202],
N029_L2_BLOCK03_015: [4, 20, 8150, 123, 202],
N029_L2_BLOCK03_016: [4, 20, 8372, 123, 202],
N029_L2_BLOCK03_017: [4, 20, 8594, 123, 202],
N029_L2_BLOCK03_018: [4, 20, 8816, 123, 202],
N030_L2_BLOCK04_001: [4, 20, 9038, 77, 42],
N030_L2_BLOCK04_002: [4, 20, 9100, 77, 42],
N030_L2_BLOCK04_003: [4, 20, 9162, 77, 42],
N030_L2_BLOCK04_004: [4, 20, 9224, 77, 42],
N030_L2_BLOCK04_005: [4, 20, 9286, 77, 42],
N030_L2_BLOCK04_006: [4, 20, 9348, 77, 42],
N030_L2_BLOCK04_007: [4,
20, 9410, 77, 42
],
N030_L2_BLOCK04_008: [4, 20, 9472, 77, 42],
N030_L2_BLOCK04_009: [4, 20, 9534, 77, 42],
N030_L2_BLOCK04_010: [4, 20, 9596, 77, 42],
N030_L2_BLOCK04_011: [4, 20, 9658, 77, 42],
N030_L2_BLOCK04_012: [4, 20, 9720, 77, 42],
N030_L2_BLOCK04_013: [4, 20, 9782, 77, 42],
N030_L2_BLOCK04_014: [4, 20, 9844, 77, 42],
N030_L2_BLOCK04_015: [4, 20, 9906, 77, 42],
N030_L2_BLOCK04_016: [4, 20, 9968, 77, 42],
N030_L2_BLOCK04_017: [4, 20, 10030, 77, 42],
N030_L2_BLOCK04_018: [4, 20, 10092, 77, 42],
N030_L2_BLOCK04_019: [4, 20, 10154, 77, 42],
N032_L2_ISLAND01_APPLE: [4, 20,
10216, 128, 201
],
N033_L2_APPLETREESPIN_1: [4, 20, 10437, 119, 103],
N033_L2_APPLETREESPIN_10: [4, 20, 10560, 119, 103],
N033_L2_APPLETREESPIN_11: [4, 20, 10683, 119, 103],
N033_L2_APPLETREESPIN_12: [4, 20, 10806, 119, 103],
N033_L2_APPLETREESPIN_13: [4, 20, 10929, 119, 103],
N033_L2_APPLETREESPIN_14: [4, 20, 11052, 119, 103],
N033_L2_APPLETREESPIN_15: [4, 20, 11175, 119, 103],
N033_L2_APPLETREESPIN_16: [4, 20, 11298, 119, 103],
N033_L2_APPLETREESPIN_17: [4, 20, 11421, 119, 103],
N033_L2_APPLETREESPIN_18: [4, 20, 11544, 119, 103],
N033_L2_APPLETREESPIN_19: [4,
20, 11667, 119, 103
],
N033_L2_APPLETREESPIN_2: [4, 20, 11790, 119, 103],
N033_L2_APPLETREESPIN_20: [4, 20, 11913, 119, 103],
N033_L2_APPLETREESPIN_21: [4, 20, 12036, 119, 103],
N033_L2_APPLETREESPIN_22: [4, 20, 12159, 119, 103],
N033_L2_APPLETREESPIN_23: [4, 20, 12282, 119, 103],
N033_L2_APPLETREESPIN_24: [4, 20, 12405, 119, 103],
N033_L2_APPLETREESPIN_25: [4, 20, 12528, 119, 103],
N033_L2_APPLETREESPIN_26: [4, 20, 12651, 119, 103],
N033_L2_APPLETREESPIN_27: [4, 20, 12774, 119, 103],
N033_L2_APPLETREESPIN_28: [4, 20, 12897, 119, 103],
N033_L2_APPLETREESPIN_29: [4,
20, 13020, 119, 103
],
N033_L2_APPLETREESPIN_3: [4, 20, 13143, 119, 103],
N033_L2_APPLETREESPIN_30: [4, 20, 13266, 119, 103],
N033_L2_APPLETREESPIN_31: [4, 20, 13389, 119, 103],
N033_L2_APPLETREESPIN_32: [4, 20, 13512, 119, 103],
N033_L2_APPLETREESPIN_33: [4, 20, 13635, 119, 103],
N033_L2_APPLETREESPIN_34: [4, 20, 13758, 119, 103],
N033_L2_APPLETREESPIN_35: [4, 20, 13881, 119, 103],
N033_L2_APPLETREESPIN_36: [4, 20, 14004, 119, 103],
N033_L2_APPLETREESPIN_37: [4, 20, 14127, 119, 103],
N033_L2_APPLETREESPIN_38: [4, 20, 14250, 119, 103],
N033_L2_APPLETREESPIN_39: [4,
20, 14373, 119, 103
],
N033_L2_APPLETREESPIN_4: [4, 20, 14496, 119, 103],
N033_L2_APPLETREESPIN_40: [4, 20, 14619, 119, 103],
N033_L2_APPLETREESPIN_41: [4, 20, 14742, 119, 103],
N033_L2_APPLETREESPIN_42: [4, 20, 14865, 119, 103],
N033_L2_APPLETREESPIN_43: [4, 20, 14988, 119, 103],
N033_L2_APPLETREESPIN_44: [4, 20, 15111, 119, 103],
N033_L2_APPLETREESPIN_45: [4, 20, 15234, 119, 103],
N033_L2_APPLETREESPIN_46: [4, 20, 15357, 119, 103],
N033_L2_APPLETREESPIN_47: [4, 20, 15480, 119, 103],
N033_L2_APPLETREESPIN_48: [4, 20, 15603, 119, 103],
N033_L2_APPLETREESPIN_5: [4,
20, 15726, 119, 103
],
N033_L2_APPLETREESPIN_6: [4, 20, 15849, 119, 103],
N033_L2_APPLETREESPIN_7: [4, 20, 15972, 119, 103],
N033_L2_APPLETREESPIN_8: [4, 20, 16095, 119, 103],
N033_L2_APPLETREESPIN_9: [4, 20, 16218, 119, 103],
N034_L2_ISLAND02_PEAR_1: [4, 20, 16341, 128, 141],
N035_L2_ISLAND03_STAIRS: [4, 20, 16502, 128, 149],
N036_L2_ISLAND06_CHERRY: [4, 20, 16671, 133, 233],
N037_L2_ISLAND05_STRAWBERRY: [4, 20, 20324, 128, 98],
N037_L2_STRAWBERRYSPIN_001: [4, 20, 16924, 68, 65],
N037_L2_STRAWBERRYSPIN_002: [4, 20, 17009, 68, 65],
N037_L2_STRAWBERRYSPIN_003: [4,
20, 17094, 68, 65
],
N037_L2_STRAWBERRYSPIN_004: [4, 20, 17179, 68, 65],
N037_L2_STRAWBERRYSPIN_005: [4, 20, 17264, 68, 65],
N037_L2_STRAWBERRYSPIN_006: [4, 20, 17349, 68, 65],
N037_L2_STRAWBERRYSPIN_007: [4, 20, 17434, 68, 65],
N037_L2_STRAWBERRYSPIN_008: [4, 20, 17519, 68, 65],
N037_L2_STRAWBERRYSPIN_009: [4, 20, 17604, 68, 65],
N037_L2_STRAWBERRYSPIN_010: [4, 20, 17689, 68, 65],
N037_L2_STRAWBERRYSPIN_011: [4, 20, 17774, 68, 65],
N037_L2_STRAWBERRYSPIN_012: [4, 20, 17859, 68, 65],
N037_L2_STRAWBERRYSPIN_013: [4, 20, 17944, 68, 65],
N037_L2_STRAWBERRYSPIN_014: [4,
20, 18029, 68, 65
],
N037_L2_STRAWBERRYSPIN_015: [4, 20, 18114, 68, 65],
N037_L2_STRAWBERRYSPIN_016: [4, 20, 18199, 68, 65],
N037_L2_STRAWBERRYSPIN_017: [4, 20, 18284, 68, 65],
N037_L2_STRAWBERRYSPIN_018: [4, 20, 18369, 68, 65],
N037_L2_STRAWBERRYSPIN_019: [4, 20, 18454, 68, 65],
N037_L2_STRAWBERRYSPIN_020: [4, 20, 18539, 68, 65],
N037_L2_STRAWBERRYSPIN_021: [4, 20, 18624, 68, 65],
N037_L2_STRAWBERRYSPIN_022: [4, 20, 18709, 68, 65],
N037_L2_STRAWBERRYSPIN_023: [4, 20, 18794, 68, 65],
N037_L2_STRAWBERRYSPIN_024: [4, 20, 18879, 68, 65],
N037_L2_STRAWBERRYSPIN_025: [4,
20, 18964, 68, 65
],
N037_L2_STRAWBERRYSPIN_026: [4, 20, 19049, 68, 65],
N037_L2_STRAWBERRYSPIN_027: [4, 20, 19134, 68, 65],
N037_L2_STRAWBERRYSPIN_028: [4, 20, 19219, 68, 65],
N037_L2_STRAWBERRYSPIN_029: [4, 20, 19304, 68, 65],
N037_L2_STRAWBERRYSPIN_030: [4, 20, 19389, 68, 65],
N037_L2_STRAWBERRYSPIN_031: [4, 20, 19474, 68, 65],
N037_L2_STRAWBERRYSPIN_032: [4, 20, 19559, 68, 65],
N037_L2_STRAWBERRYSPIN_033: [4, 20, 19644, 68, 65],
N037_L2_STRAWBERRYSPIN_034: [4, 20, 19729, 68, 65],
N037_L2_STRAWBERRYSPIN_035: [4, 20, 19814, 68, 65],
N037_L2_STRAWBERRYSPIN_036: [4,
20, 19899, 68, 65
],
N037_L2_STRAWBERRYSPIN_037: [4, 20, 19984, 68, 65],
N037_L2_STRAWBERRYSPIN_038: [4, 20, 20069, 68, 65],
N037_L2_STRAWBERRYSPIN_039: [4, 20, 20154, 68, 65],
N037_L2_STRAWBERRYSPIN_040: [4, 20, 20239, 68, 65],
N039_L2_CLOUD01: [4, 20, 20442, 108, 69],
N040_L2_CLOUD02: [4, 20, 20531, 52, 58],
N041_L2_CLOUD03: [4, 20, 20609, 100, 77],
N042_L2_CLOUD04: [4, 20, 20706, 110, 99],
N043_L2_TILE01_002: [1, 20, 15717, 128, 128],
N044_L2_TILE02_008: [4, 20, 20825, 128, 128],
N045_L2_TILE03_008: [1, 20, 15865, 128, 128],
N046_L2_TILE04_13: [4, 20, 20973, 128, 128],
N047_L2_TILE05_013: [4, 20, 21121, 128, 128],
N049_L3_BLOCK01_001: [5, 20, 20, 88, 46],
N049_L3_BLOCK01_002: [5, 20, 86, 88, 46],
N049_L3_BLOCK01_003: [5, 20, 152, 88, 46],
N049_L3_BLOCK01_004: [5, 20, 218, 88, 46],
N049_L3_BLOCK01_005: [5, 20, 284, 88, 46],
N049_L3_BLOCK01_006: [5, 20, 350, 88, 46],
N049_L3_BLOCK01_007: [5, 20, 416, 88, 46],
N049_L3_BLOCK01_008: [5, 20, 482, 88, 46],
N049_L3_BLOCK01_009: [5, 20, 548, 88, 46],
N049_L3_BLOCK01_010: [5, 20, 614, 88, 46],
N049_L3_BLOCK01_011: [5, 20, 680, 88, 46],
N049_L3_BLOCK01_012: [5, 20, 746, 88, 46],
N049_L3_BLOCK01_013: [5,
20, 812, 88, 46
],
N049_L3_BLOCK01_014: [5, 20, 878, 88, 46],
N049_L3_BLOCK01_015: [5, 20, 944, 88, 46],
N049_L3_BLOCK01_016: [5, 20, 1010, 88, 46],
N049_L3_BLOCK01_017: [5, 20, 1076, 88, 46],
N050_L3_BLOCK02_001: [5, 20, 1142, 33, 59],
N050_L3_BLOCK02_002: [5, 20, 1221, 33, 59],
N050_L3_BLOCK02_003: [5, 20, 1300, 33, 59],
N050_L3_BLOCK02_004: [5, 20, 1379, 33, 59],
N050_L3_BLOCK02_005: [5, 20, 1458, 33, 59],
N050_L3_BLOCK02_006: [5, 20, 1537, 33, 59],
N050_L3_BLOCK02_007: [5, 20, 1616, 33, 59],
N050_L3_BLOCK02_008: [5, 20, 1695, 33, 59],
N050_L3_BLOCK02_009: [5, 20, 1774, 33,
59
],
N050_L3_BLOCK02_010: [5, 20, 1853, 33, 59],
N050_L3_BLOCK02_011: [5, 20, 1932, 33, 59],
N050_L3_BLOCK02_012: [5, 20, 2011, 33, 59],
N050_L3_BLOCK02_013: [5, 20, 2090, 33, 59],
N050_L3_BLOCK02_014: [5, 20, 2169, 33, 59],
N050_L3_BLOCK02_015: [5, 20, 2248, 33, 59],
N050_L3_BLOCK02_016: [5, 20, 2327, 33, 59],
N050_L3_BLOCK02_017: [5, 20, 2406, 33, 59],
N050_L3_BLOCK02_018: [5, 20, 2485, 33, 59],
N051_L3_BLOCK03_001: [5, 20, 2564, 76, 206],
N051_L3_BLOCK03_002: [5, 20, 2790, 76, 206],
N051_L3_BLOCK03_003: [5, 20, 3016, 76, 206],
N051_L3_BLOCK03_004: [5, 20, 3242, 76, 206],
N051_L3_BLOCK03_005: [5, 20, 3468, 76, 206],
N051_L3_BLOCK03_006: [5, 20, 3694, 76, 206],
N051_L3_BLOCK03_007: [5, 20, 3920, 76, 206],
N051_L3_BLOCK03_008: [5, 20, 4146, 76, 206],
N051_L3_BLOCK03_009: [5, 20, 4372, 76, 206],
N051_L3_BLOCK03_010: [5, 20, 4598, 76, 206],
N051_L3_BLOCK03_011: [5, 20, 4824, 76, 206],
N051_L3_BLOCK03_012: [5, 20, 5050, 76, 206],
N052_L3_BLOCK04_001: [5, 20, 5276, 111, 73],
N052_L3_BLOCK04_002: [5, 20, 5369, 111, 73],
N052_L3_BLOCK04_003: [5, 20, 5462, 111, 73],
N052_L3_BLOCK04_004: [5, 20, 5555, 111, 73],
N052_L3_BLOCK04_005: [5, 20, 5648, 111,
73
],
N052_L3_BLOCK04_006: [5, 20, 5741, 111, 73],
N052_L3_BLOCK04_007: [5, 20, 5834, 111, 73],
N052_L3_BLOCK04_008: [5, 20, 5927, 111, 73],
N052_L3_BLOCK04_009: [5, 20, 6020, 111, 73],
N052_L3_BLOCK04_010: [5, 20, 6113, 111, 73],
N052_L3_BLOCK04_011: [5, 20, 6206, 111, 73],
N052_L3_BLOCK04_012: [5, 20, 6299, 111, 73],
N052_L3_BLOCK04_013: [5, 20, 6392, 111, 73],
N052_L3_BLOCK04_014: [5, 20, 6485, 111, 73],
N052_L3_BLOCK04_015: [5, 20, 6578, 111, 73],
N052_L3_BLOCK04_016: [5, 20, 6671, 111, 73],
N052_L3_BLOCK04_017: [5, 20, 6764, 111, 73],
N052_L3_BLOCK04_018: [5, 20, 6857,
111, 73
],
N052_L3_BLOCK04_019: [5, 20, 6950, 111, 73],
N052_L3_BLOCK04_020: [5, 20, 7043, 111, 73],
N052_L3_BLOCK04_021: [5, 20, 7136, 111, 73],
N052_L3_BLOCK04_022: [5, 20, 7229, 111, 73],
N052_L3_BLOCK04_023: [5, 20, 7322, 111, 73],
N052_L3_BLOCK04_024: [5, 20, 7415, 111, 73],
N052_L3_BLOCK04_025: [5, 20, 7508, 111, 73],
N052_L3_BLOCK04_026: [5, 20, 7601, 111, 73],
N052_L3_BLOCK04_027: [5, 20, 7694, 111, 73],
N052_L3_BLOCK04_028: [5, 20, 7787, 111, 73],
N052_L3_BLOCK04_029: [5, 20, 7880, 111, 73],
N052_L3_BLOCK04_030: [5, 20, 7973, 111, 73],
N052_L3_BLOCK04_031: [5, 20,
8066, 111, 73
],
N052_L3_BLOCK04_032: [5, 20, 8159, 111, 73],
N052_L3_BLOCK04_033: [5, 20, 8252, 111, 73],
N052_L3_BLOCK04_034: [5, 20, 8345, 111, 73],
N052_L3_BLOCK04_035: [5, 20, 8438, 111, 73],
N052_L3_BLOCK04_036: [5, 20, 8531, 111, 73],
N052_L3_BLOCK04_037: [5, 20, 8624, 111, 73],
N052_L3_BLOCK04_038: [5, 20, 8717, 111, 73],
N052_L3_BLOCK04_039: [5, 20, 8810, 111, 73],
N052_L3_BLOCK04_040: [5, 20, 8903, 111, 73],
N052_L3_BLOCK04_041: [5, 20, 8996, 111, 73],
N052_L3_BLOCK04_042: [5, 20, 9089, 111, 73],
N054_L3_WATERFALL_BLOCK05_001: [5, 20, 9182, 91, 77],
N054_L3_WATERFALL_BLOCK05_002: [5,
20, 9279, 91, 77
],
N054_L3_WATERFALL_BLOCK05_003: [5, 20, 9376, 91, 77],
N054_L3_WATERFALL_BLOCK05_004: [5, 20, 9473, 91, 77],
N054_L3_WATERFALL_BLOCK05_005: [5, 20, 9570, 91, 77],
N054_L3_WATERFALL_BLOCK05_006: [5, 20, 9667, 91, 77],
N054_L3_WATERFALL_BLOCK05_007: [5, 20, 9764, 91, 77],
N054_L3_WATERFALL_BLOCK05_008: [5, 20, 9861, 91, 77],
N054_L3_WATERFALL_BLOCK05_009: [5, 20, 9958, 91, 77],
N054_L3_WATERFALL_BLOCK05_010: [5, 20, 10055, 91, 77],
N054_L3_WATERFALL_BLOCK05_011: [5, 20, 10152, 91, 77],
N054_L3_WATERFALL_BLOCK05_012: [5, 20, 10249, 91, 77],
N054_L3_WATERFALL_BLOCK05_013: [5,
20, 10346, 91, 77
],
N054_L3_WATERFALL_BLOCK05_014: [5, 20, 10443, 91, 77],
N054_L3_WATERFALL_BLOCK05_015: [5, 20, 10540, 91, 77],
N054_L3_WATERFALL_BLOCK05_016: [5, 20, 10637, 91, 77],
N054_L3_WATERFALL_BLOCK05_017: [5, 20, 10734, 91, 77],
N054_L3_WATERFALL_BLOCK05_018: [5, 20, 10831, 91, 77],
N054_L3_WATERFALL_BLOCK05_019: [5, 20, 10928, 91, 77],
N054_L3_WATERFALL_BLOCK05_020: [5, 20, 11025, 91, 77],
N055_L3_WATERFALL_BLOCK06_001: [5, 20, 11122, 90, 107],
N055_L3_WATERFALL_BLOCK06_002: [5, 20, 11249, 90, 107],
N055_L3_WATERFALL_BLOCK06_003: [5, 20, 11376,
90, 107
],
N055_L3_WATERFALL_BLOCK06_004: [5, 20, 11503, 90, 107],
N055_L3_WATERFALL_BLOCK06_005: [5, 20, 11630, 90, 107],
N055_L3_WATERFALL_BLOCK06_006: [5, 20, 11757, 90, 107],
N055_L3_WATERFALL_BLOCK06_007: [5, 20, 11884, 90, 107],
N055_L3_WATERFALL_BLOCK06_008: [5, 20, 12011, 90, 107],
N055_L3_WATERFALL_BLOCK06_009: [5, 20, 12138, 90, 107],
N055_L3_WATERFALL_BLOCK06_010: [5, 20, 12265, 90, 107],
N055_L3_WATERFALL_BLOCK06_011: [5, 20, 12392, 90, 107],
N055_L3_WATERFALL_BLOCK06_012: [5, 20, 12519, 90, 107],
N055_L3_WATERFALL_BLOCK06_013: [5, 20, 12646, 90,
107
],
N055_L3_WATERFALL_BLOCK06_014: [5, 20, 12773, 90, 107],
N055_L3_WATERFALL_BLOCK06_015: [5, 20, 12900, 90, 107],
N055_L3_WATERFALL_BLOCK06_016: [5, 20, 12900, 90, 107],
N055_L3_WATERFALL_BLOCK06_017: [5, 20, 12900, 90, 107],
N055_L3_WATERFALL_BLOCK06_018: [5, 20, 12900, 90, 107],
N055_L3_WATERFALL_BLOCK06_019: [5, 20, 12900, 90, 107],
N055_L3_WATERFALL_BLOCK06_020: [5, 20, 12900, 90, 107],
N055_L3_WATERFALL_BLOCK06_021: [5, 20, 12900, 90, 107],
N056_L3_WATERFALL_BLOCK07_001: [5, 20, 13027, 132, 152],
N056_L3_WATERFALL_BLOCK07_002: [5, 20, 13199, 132,
152
],
N056_L3_WATERFALL_BLOCK07_003: [5, 20, 13371, 132, 152],
N056_L3_WATERFALL_BLOCK07_004: [5, 20, 13543, 132, 152],
N056_L3_WATERFALL_BLOCK07_005: [5, 20, 13715, 132, 152],
N056_L3_WATERFALL_BLOCK07_006: [5, 20, 13887, 132, 152],
N056_L3_WATERFALL_BLOCK07_007: [5, 20, 14059, 132, 152],
N056_L3_WATERFALL_BLOCK07_008: [5, 20, 14231, 132, 152],
N056_L3_WATERFALL_BLOCK07_009: [5, 20, 14403, 132, 152],
N056_L3_WATERFALL_BLOCK07_010: [5, 20, 14575, 132, 152],
N056_L3_WATERFALL_BLOCK07_011: [5, 20, 14747, 132, 152],
N056_L3_WATERFALL_BLOCK07_012: [5, 20, 14919,
132, 152
],
N056_L3_WATERFALL_BLOCK07_013: [5, 20, 15091, 132, 152],
N056_L3_WATERFALL_BLOCK07_014: [5, 20, 15263, 132, 152],
N056_L3_WATERFALL_BLOCK07_015: [5, 20, 15435, 132, 152],
N056_L3_WATERFALL_BLOCK07_016: [5, 20, 15607, 132, 152],
N056_L3_WATERFALL_BLOCK07_017: [5, 20, 15779, 132, 152],
N056_L3_WATERFALL_BLOCK07_018: [5, 20, 15951, 132, 152],
N056_L3_WATERFALL_BLOCK07_019: [5, 20, 16123, 132, 152],
N056_L3_WATERFALL_BLOCK07_020: [5, 20, 16295, 132, 152],
N056_L3_WATERFALL_BLOCK07_021: [5, 20, 16467, 132, 152],
N056_L3_WATERFALL_BLOCK07_022: [5,
20, 16639, 132, 152
],
N056_L3_WATERFALL_BLOCK07_023: [5, 20, 16811, 132, 152],
N056_L3_WATERFALL_BLOCK07_024: [5, 20, 16983, 132, 152],
N056_L3_WATERFALL_BLOCK07_025: [5, 20, 17155, 132, 152],
N057_L3_WATERFALL_BLOCK08_001: [5, 20, 17327, 70, 59],
N057_L3_WATERFALL_BLOCK08_002: [5, 20, 17406, 70, 59],
N057_L3_WATERFALL_BLOCK08_003: [5, 20, 17485, 70, 59],
N057_L3_WATERFALL_BLOCK08_004: [5, 20, 17564, 70, 59],
N057_L3_WATERFALL_BLOCK08_005: [5, 20, 17643, 70, 59],
N057_L3_WATERFALL_BLOCK08_006: [5, 20, 17722, 70, 59],
N057_L3_WATERFALL_BLOCK08_007: [5, 20,
17801, 70, 59
],
N057_L3_WATERFALL_BLOCK08_008: [5, 20, 17880, 70, 59],
N057_L3_WATERFALL_BLOCK08_009: [5, 20, 17959, 70, 59],
N057_L3_WATERFALL_BLOCK08_010: [5, 20, 18038, 70, 59],
N057_L3_WATERFALL_BLOCK08_011: [5, 20, 18117, 70, 59],
N057_L3_WATERFALL_BLOCK08_012: [5, 20, 18196, 70, 59],
N057_L3_WATERFALL_BLOCK08_013: [5, 20, 18275, 70, 59],
N057_L3_WATERFALL_BLOCK08_014: [5, 20, 18354, 70, 59],
N057_L3_WATERFALL_BLOCK08_015: [5, 20, 18433, 70, 59],
N057_L3_WATERFALL_BLOCK08_016: [5, 20, 18512, 70, 59],
N057_L3_WATERFALL_BLOCK08_017: [5, 20, 18591, 70, 59],
N057_L3_WATERFALL_BLOCK08_018: [5, 20, 18670, 70, 59],
N057_L3_WATERFALL_BLOCK08_019: [5, 20, 18749, 70, 59],
N057_L3_WATERFALL_BLOCK08_020: [5, 20, 18828, 70, 59],
N062_L3_TILE05_012: [1, 20, 16013, 128, 128],
N063_L3_TILE06_013: [1, 20, 16161, 128, 128],
N064_L3_TILE07_009: [1, 20, 16309, 128, 128],
N065_L3_TILE08_010: [1, 20, 16457, 128, 128],
N066_L3_CLOUD01: [5, 20, 19499, 51.6, 40.3],
N067_L3_CLOUD02: [5, 20, 19560, 100.6, 67.2],
N068_L3_CLOUD03: [5, 20, 19648, 62.1, 54.3],
N069_L3_CLOUD04: [5, 20, 19723, 122.4, 94.5],
N070_L3_WINDMILLBUILDING: [5, 20, 19838,
145.7, 270.8
],
N071_L3_WINDMILL_PROPELLER_001: [5, 20, 20129, 137, 178],
N071_L3_WINDMILL_PROPELLER_002: [5, 20, 20327, 137, 178],
N071_L3_WINDMILL_PROPELLER_003: [5, 20, 20525, 137, 178],
N071_L3_WINDMILL_PROPELLER_004: [5, 20, 20723, 137, 178],
N071_L3_WINDMILL_PROPELLER_005: [5, 20, 20921, 137, 178],
N071_L3_WINDMILL_PROPELLER_006: [5, 20, 21119, 137, 178],
N071_L3_WINDMILL_PROPELLER_007: [5, 20, 21317, 137, 178],
N071_L3_WINDMILL_PROPELLER_008: [5, 20, 21515, 137, 178],
N071_L3_WINDMILL_PROPELLER_009: [5, 20, 21713, 137, 178],
N071_L3_WINDMILL_PROPELLER_010: [5,
20, 21911, 137, 178
],
N071_L3_WINDMILL_PROPELLER_011: [5, 20, 22109, 137, 178],
N071_L3_WINDMILL_PROPELLER_012: [5, 20, 22307, 137, 178],
N071_L3_WINDMILL_PROPELLER_013: [5, 20, 22505, 137, 178],
N071_L3_WINDMILL_PROPELLER_014: [5, 20, 22703, 137, 178],
N071_L3_WINDMILL_PROPELLER_015: [5, 20, 22901, 137, 178],
N071_L3_WINDMILL_PROPELLER_016: [5, 20, 23099, 137, 178],
N071_L3_WINDMILL_PROPELLER_017: [5, 20, 23297, 137, 178],
N071_L3_WINDMILL_PROPELLER_018: [5, 20, 23495, 137, 178],
N071_L3_WINDMILL_PROPELLER_019: [5, 20, 23693, 137, 178],
N071_L3_WINDMILL_PROPELLER_020: [5,
20, 23891, 137, 178
],
N071_L3_WINDMILL_PROPELLER_021: [5, 20, 24089, 137, 178],
N071_L3_WINDMILL_PROPELLER_022: [5, 20, 24287, 137, 178],
N071_L3_WINDMILL_PROPELLER_023: [5, 20, 24485, 137, 178],
N071_L3_WINDMILL_PROPELLER_024: [5, 20, 24683, 137, 178],
N071_L3_WINDMILL_PROPELLER_025: [5, 20, 24881, 137, 178],
N071_L3_WINDMILL_PROPELLER_026: [5, 20, 25079, 137, 178],
N071_L3_WINDMILL_PROPELLER_027: [5, 20, 25277, 137, 178],
N071_L3_WINDMILL_PROPELLER_028: [5, 20, 25475, 137, 178],
N071_L3_WINDMILL_PROPELLER_029: [5, 20, 25673, 137, 178],
N071_L3_WINDMILL_PROPELLER_030: [5,
20, 25871, 137, 178
],
N071_L3_WINDMILL_PROPELLER_031: [5, 20, 26069, 137, 178],
N071_L3_WINDMILL_PROPELLER_032: [5, 20, 26267, 137, 178],
N071_L3_WINDMILL_PROPELLER_033: [5, 20, 26465, 137, 178],
N071_L3_WINDMILL_PROPELLER_034: [5, 20, 26663, 137, 178],
N071_L3_WINDMILL_PROPELLER_035: [5, 20, 26861, 137, 178],
N071_L3_WINDMILL_PROPELLER_036: [5, 20, 27059, 137, 178],
N071_L3_WINDMILL_PROPELLER_037: [5, 20, 27257, 137, 178],
N071_L3_WINDMILL_PROPELLER_038: [5, 20, 27455, 137, 178],
N071_L3_WINDMILL_PROPELLER_039: [5, 20, 27653, 137, 178],
N071_L3_WINDMILL_PROPELLER_040: [5,
20, 27851, 137, 178
],
N071_L3_WINDMILL_PROPELLER_041: [5, 20, 28049, 137, 178],
N071_L3_WINDMILL_PROPELLER_042: [5, 20, 28247, 137, 178],
N071_L3_WINDMILL_PROPELLER_043: [5, 20, 28445, 137, 178],
N071_L3_WINDMILL_PROPELLER_044: [5, 20, 28643, 137, 178],
N071_L3_WINDMILL_PROPELLER_045: [5, 20, 28841, 137, 178],
N071_L3_WINDMILL_PROPELLER_046: [5, 20, 29039, 137, 178],
N071_L3_WINDMILL_PROPELLER_047: [5, 20, 29237, 137, 178],
N071_L3_WINDMILL_PROPELLER_048: [5, 20, 29435, 137, 178],
N072_L3_ISLAND01: [5, 20, 29633, 98.3, 77.8],
N074_L3_ISLAND03: [5, 20, 29731,
98.3, 77.8
],
N075_L3_ISLAND04: [5, 20, 29829, 98.3, 188],
N076_L3_ISLAND05: [5, 20, 30037, 98.4, 94.3],
N077_L3_ISLAND06: [5, 20, 30152, 98.4, 77.8],
N078_L3_LEAVES_001: [5, 20, 30250, 86, 78],
N078_L3_LEAVES_002: [5, 20, 30348, 86, 78],
N078_L3_LEAVES_003: [5, 20, 30446, 86, 78],
N078_L3_LEAVES_004: [5, 20, 30544, 86, 78],
N078_L3_LEAVES_005: [5, 20, 30642, 86, 78],
N078_L3_LEAVES_006: [5, 20, 30740, 86, 78],
N078_L3_LEAVES_007: [5, 20, 30838, 86, 78],
N078_L3_LEAVES_008: [5, 20, 30936, 86, 78],
N078_L3_LEAVES_009: [5, 20, 31034, 86, 78],
N078_L3_LEAVES_010: [5, 20, 31132,
86, 78
],
N078_L3_LEAVES_011: [5, 20, 31230, 86, 78],
N078_L3_LEAVES_012: [5, 20, 31328, 86, 78],
N078_L3_LEAVES_013: [5, 20, 31426, 86, 78],
N078_L3_LEAVES_014: [5, 20, 31524, 86, 78],
N078_L3_LEAVES_015: [5, 20, 31622, 86, 78],
N078_L3_LEAVES_016: [5, 20, 31720, 86, 78],
N078_L3_LEAVES_017: [5, 20, 31818, 86, 78],
N078_L3_LEAVES_018: [5, 20, 31916, 86, 78],
N078_L3_LEAVES_019: [5, 20, 32014, 86, 78],
N078_L3_LEAVES_020: [5, 20, 32112, 86, 78],
N078_L3_LEAVES_021: [5, 20, 32210, 86, 78],
N078_L3_LEAVES_022: [5, 20, 32308, 86, 78],
N078_L3_LEAVES_023: [5, 20, 32406, 86, 78],
N080_L3_BIRDLOOP_001: [5, 20, 32504, 51, 100],
N080_L3_BIRDLOOP_002: [5, 20, 32624, 51, 100],
N080_L3_BIRDLOOP_003: [5, 20, 32744, 51, 100],
N080_L3_BIRDLOOP_004: [5, 20, 32864, 51, 100],
N080_L3_BIRDLOOP_005: [5, 20, 32984, 51, 100],
N080_L3_BIRDLOOP_006: [5, 20, 33104, 51, 100],
N080_L3_BIRDLOOP_007: [5, 20, 33224, 51, 100],
N080_L3_BIRDLOOP_008: [5, 20, 33344, 51, 100],
N080_L3_BIRDLOOP_009: [5, 20, 33464, 51, 100],
N080_L3_BIRDLOOP_010: [5, 20, 33584, 51, 100],
N080_L3_BIRDLOOP_011: [5, 20, 33704, 51, 100],
N080_L3_BIRDLOOP_012: [5, 20, 33824, 51, 100],
N080_L3_BIRDLOOP_013: [5,
20, 33944, 51, 100
],
N080_L3_BIRDLOOP_014: [5, 20, 34064, 51, 100],
N080_L3_BIRDLOOP_015: [5, 20, 34184, 51, 100],
N080_L3_BIRDLOOP_016: [5, 20, 34304, 51, 100],
N080_L3_BIRDLOOP_017: [5, 20, 34424, 51, 100],
N080_L3_BIRDLOOP_018: [5, 20, 34544, 51, 100],
N080_L3_BIRDLOOP_019: [5, 20, 34664, 51, 100],
N080_L3_BIRDLOOP_020: [5, 20, 34784, 51, 100],
N080_L3_BIRDLOOP_021: [5, 20, 34904, 51, 100],
N080_L3_BIRDLOOP_022: [5, 20, 35024, 51, 100],
N080_L3_BIRDLOOP_023: [5, 20, 35144, 51, 100],
N080_L3_BIRDLOOP_024: [5, 20, 35264, 51, 100],
N080_L3_BIRDLOOP_025: [5, 20, 35384,
51, 100
],
N080_L3_BIRDLOOP_026: [5, 20, 35504, 51, 100],
N080_L3_BIRDLOOP_027: [5, 20, 35624, 51, 100],
N080_L3_BIRDLOOP_028: [5, 20, 35744, 51, 100],
N080_L3_BIRDLOOP_029: [5, 20, 35864, 51, 100],
N080_L3_BIRDLOOP_030: [5, 20, 35984, 51, 100],
N080_L3_BIRDLOOP_031: [5, 20, 36104, 51, 100],
N080_L3_BIRDLOOP_032: [5, 20, 36224, 51, 100],
N080_L3_BIRDLOOP_033: [5, 20, 36344, 51, 100],
N080_L3_BIRDLOOP_034: [5, 20, 36464, 51, 100],
N080_L3_BIRDLOOP_035: [5, 20, 36584, 51, 100],
N080_L3_BIRDLOOP_036: [5, 20, 36704, 51, 100],
N080_L3_BIRDLOOP_037: [5, 20, 36824, 51, 100],
N080_L3_BIRDLOOP_038: [5,
20, 36944, 51, 100
],
N080_L3_BIRDLOOP_039: [5, 20, 37064, 51, 100],
N080_L3_BIRDLOOP_040: [5, 20, 37184, 51, 100],
N080_L3_BIRDLOOP_041: [5, 20, 37304, 51, 100],
N080_L3_BIRDLOOP_042: [5, 20, 37424, 51, 100],
N080_L3_BIRDLOOP_043: [5, 20, 37544, 51, 100],
N080_L3_BIRDLOOP_044: [5, 20, 37664, 51, 100],
N080_L3_BIRDLOOP_045: [5, 20, 37784, 51, 100],
N080_L3_BIRDLOOP_046: [5, 20, 37904, 51, 100],
N080_L3_BIRDLOOP_047: [5, 20, 38024, 51, 100],
N080_L3_BIRDLOOP_048: [5, 20, 38144, 51, 100],
N080_L3_BIRDLOOP_049: [5, 20, 38264, 51, 100],
N080_L3_BIRDLOOP_050: [5, 20, 38384,
51, 100
],
N080_L3_BIRDLOOP_051: [5, 20, 38504, 51, 100],
N080_L3_BIRDLOOP_052: [5, 20, 38624, 51, 100],
N080_L3_BIRDLOOP_053: [5, 20, 38744, 51, 100],
N080_L3_BIRDLOOP_054: [5, 20, 38864, 51, 100],
N080_L3_BIRDLOOP_055: [5, 20, 38984, 51, 100],
N080_L3_BIRDLOOP_056: [5, 20, 39104, 51, 100],
N080_L3_BIRDLOOP_057: [5, 20, 39224, 51, 100],
N080_L3_BIRDLOOP_058: [5, 20, 39344, 51, 100],
N080_L3_BIRDLOOP_059: [5, 20, 39464, 51, 100],
N080_L3_BIRDLOOP_060: [5, 20, 39584, 51, 100],
N080_L3_BIRDLOOP_061: [5, 20, 39704, 51, 100],
N080_L3_BIRDLOOP_062: [5, 20, 39824, 51, 100],
N080_L3_BIRDLOOP_063: [5,
20, 39944, 51, 100
],
N080_L3_BIRDLOOP_064: [5, 20, 40064, 51, 100],
N080_L3_BIRDLOOP_065: [5, 20, 40184, 51, 100],
N093_L4_CLOUD01: [7, 20, 20, 110.4, 77.8],
N094_L4_CLOUD02: [7, 20, 118, 129.9, 65.5],
N095_L4_CLOUD03: [7, 20, 204, 83.6, 62.4],
N096_L4_OWL_TREE: [7, 20, 287, 140, 190],
N097_L4_SQUIRREL_TREE: [7, 20, 497, 144, 346.4],
N098_L4_WATER: [1, 20, 16605, 128, 108],
N099_L4_TILE01_002: [1, 20, 16733, 128, 128],
N101_L4_TILE03_007: [1, 20, 16881, 128, 128],
N105_L4_TILE07_009: [1, 20, 17029, 128, 128],
N106_L4_TILE08_010: [1, 20, 17177, 128, 128],
N107_L4_TILE09_013: [1,
20, 17325, 128, 128
],
N109_L4_TILE11_010: [1, 20, 17473, 128, 128],
N110_L4_TILE12_012: [1, 20, 17621, 128, 128],
N111_L4_TILE13_007: [1, 20, 17769, 128, 128],
N114_L4_BLOCK01_FLOWER_001: [7, 20, 864, 70, 34],
N114_L4_BLOCK01_FLOWER_002: [7, 20, 918, 70, 34],
N114_L4_BLOCK01_FLOWER_003: [7, 20, 972, 70, 34],
N114_L4_BLOCK01_FLOWER_004: [7, 20, 1026, 70, 34],
N114_L4_BLOCK01_FLOWER_005: [7, 20, 1080, 70, 34],
N114_L4_BLOCK01_FLOWER_006: [7, 20, 1134, 70, 34],
N114_L4_BLOCK01_FLOWER_007: [7, 20, 1188, 70, 34],
N114_L4_BLOCK01_FLOWER_008: [7, 20, 1242, 70, 34],
N114_L4_BLOCK01_FLOWER_009: [7,
20, 1296, 70, 34
],
N114_L4_BLOCK01_FLOWER_010: [7, 20, 1350, 70, 34],
N114_L4_BLOCK01_FLOWER_011: [7, 20, 1404, 70, 34],
N114_L4_BLOCK01_FLOWER_012: [7, 20, 1458, 70, 34],
N114_L4_BLOCK01_FLOWER_013: [7, 20, 1512, 70, 34],
N114_L4_BLOCK01_FLOWER_014: [7, 20, 1566, 70, 34],
N114_L4_BLOCK01_FLOWER_015: [7, 20, 1620, 70, 34],
N114_L4_BLOCK01_FLOWER_016: [7, 20, 1674, 70, 34],
N115_L4_BLOCK02_08_FLOWER_0: [7, 20, 1728, 65, 33],
N115_L4_BLOCK02_08_FLOWER_1: [7, 20, 1781, 65, 33],
N115_L4_BLOCK02_08_FLOWER_10: [7, 20, 1834, 65, 33],
N115_L4_BLOCK02_08_FLOWER_11: [7,
20, 1887, 65, 33
],
N115_L4_BLOCK02_08_FLOWER_12: [7, 20, 1940, 65, 33],
N115_L4_BLOCK02_08_FLOWER_13: [7, 20, 1993, 65, 33],
N115_L4_BLOCK02_08_FLOWER_14: [7, 20, 2046, 65, 33],
N115_L4_BLOCK02_08_FLOWER_15: [7, 20, 2099, 65, 33],
N115_L4_BLOCK02_08_FLOWER_16: [7, 20, 2152, 65, 33],
N115_L4_BLOCK02_08_FLOWER_2: [7, 20, 2205, 65, 33],
N115_L4_BLOCK02_08_FLOWER_3: [7, 20, 2258, 65, 33],
N115_L4_BLOCK02_08_FLOWER_4: [7, 20, 2311, 65, 33],
N115_L4_BLOCK02_08_FLOWER_5: [7, 20, 2364, 65, 33],
N115_L4_BLOCK02_08_FLOWER_6: [7, 20, 2417, 65, 33],
N115_L4_BLOCK02_08_FLOWER_7: [7,
20, 2470, 65, 33
],
N115_L4_BLOCK02_08_FLOWER_8: [7, 20, 2523, 65, 33],
N115_L4_BLOCK02_08_FLOWER_9: [7, 20, 2576, 65, 33],
N116_L4_BLOCK03_MOLE_001: [7, 20, 2629, 78, 115],
N116_L4_BLOCK03_MOLE_002: [7, 20, 2764, 78, 115],
N116_L4_BLOCK03_MOLE_003: [7, 20, 2899, 78, 115],
N116_L4_BLOCK03_MOLE_004: [7, 20, 3034, 78, 115],
N116_L4_BLOCK03_MOLE_005: [7, 20, 3169, 78, 115],
N116_L4_BLOCK03_MOLE_006: [7, 20, 3304, 78, 115],
N116_L4_BLOCK03_MOLE_007: [7, 20, 3439, 78, 115],
N116_L4_BLOCK03_MOLE_008: [7, 20, 3574, 78, 115],
N116_L4_BLOCK03_MOLE_009: [7, 20, 3709, 78, 115],
N116_L4_BLOCK03_MOLE_010: [7, 20, 3844, 78, 115],
N116_L4_BLOCK03_MOLE_011: [7, 20, 3979, 78, 115],
N116_L4_BLOCK03_MOLE_012: [7, 20, 4114, 78, 115],
N116_L4_BLOCK03_MOLE_013: [7, 20, 4249, 78, 115],
N116_L4_BLOCK03_MOLE_014: [7, 20, 4384, 78, 115],
N116_L4_BLOCK03_MOLE_015: [7, 20, 4519, 78, 115],
N116_L4_BLOCK03_MOLE_016: [7, 20, 4654, 78, 115],
N116_L4_BLOCK03_MOLE_017: [7, 20, 4789, 78, 115],
N116_L4_BLOCK03_MOLE_018: [7, 20, 4924, 78, 115],
N116_L4_BLOCK03_MOLE_019: [7, 20, 5059, 78, 115],
N116_L4_BLOCK03_MOLE_020: [7, 20, 5194, 78, 115],
N116_L4_BLOCK03_MOLE_021: [7,
20, 5329, 78, 115
],
N116_L4_BLOCK03_MOLE_022: [7, 20, 5464, 78, 115],
N116_L4_BLOCK03_MOLE_023: [7, 20, 5599, 78, 115],
N116_L4_BLOCK03_MOLE_024: [7, 20, 5734, 78, 115],
N116_L4_BLOCK03_MOLE_025: [7, 20, 5869, 78, 115],
N116_L4_BLOCK03_MOLE_026: [7, 20, 6004, 78, 115],
N116_L4_BLOCK03_MOLE_027: [7, 20, 6139, 78, 115],
N116_L4_BLOCK03_MOLE_028: [7, 20, 6274, 78, 115],
N116_L4_BLOCK03_MOLE_029: [7, 20, 6409, 78, 115],
N116_L4_BLOCK03_MOLE_030: [7, 20, 6544, 78, 115],
N116_L4_BLOCK03_MOLE_031: [7, 20, 6679, 78, 115],
N116_L4_BLOCK03_MOLE_032: [7, 20, 6814, 78, 115],
N116_L4_BLOCK03_MOLE_033: [7,
20, 6949, 78, 115
],
N116_L4_BLOCK03_MOLE_034: [7, 20, 7084, 78, 115],
N116_L4_BLOCK03_MOLE_035: [7, 20, 7219, 78, 115],
N116_L4_BLOCK03_MOLE_036: [7, 20, 7354, 78, 115],
N116_L4_BLOCK03_MOLE_037: [7, 20, 7489, 78, 115],
N116_L4_BLOCK03_MOLE_038: [7, 20, 7624, 78, 115],
N116_L4_BLOCK03_MOLE_039: [7, 20, 7759, 78, 115],
N116_L4_BLOCK03_MOLE_040: [7, 20, 7894, 78, 115],
N116_L4_BLOCK03_MOLE_041: [7, 20, 8029, 78, 115],
N116_L4_BLOCK03_MOLE_042: [7, 20, 8164, 78, 115],
N116_L4_BLOCK03_MOLE_043: [7, 20, 8299, 78, 115],
N116_L4_BLOCK03_MOLE_044: [7, 20, 8434, 78, 115],
N116_L4_BLOCK03_MOLE_045: [7,
20, 8569, 78, 115
],
N116_L4_BLOCK03_MOLE_046: [7, 20, 8704, 78, 115],
N116_L4_BLOCK03_MOLE_047: [7, 20, 8839, 78, 115],
N116_L4_BLOCK03_MOLE_048: [7, 20, 8974, 78, 115],
N116_L4_BLOCK03_MOLE_049: [7, 20, 9109, 78, 115],
N116_L4_BLOCK03_MOLE_050: [7, 20, 9244, 78, 115],
N116_L4_BLOCK03_MOLE_051: [7, 20, 9379, 78, 115],
N116_L4_BLOCK03_MOLE_052: [7, 20, 9514, 78, 115],
N116_L4_BLOCK03_MOLE_053: [7, 20, 9649, 78, 115],
N116_L4_BLOCK03_MOLE_054: [7, 20, 9784, 78, 115],
N116_L4_BLOCK03_MOLE_055: [7, 20, 9919, 78, 115],
N116_L4_BLOCK03_MOLE_056: [7, 20, 10054, 78, 115],
N116_L4_BLOCK03_MOLE_057: [7, 20, 10189, 78, 115],
N117_L4_BLOCK04_FLOWER_001: [8, 20, 20, 92, 50],
N117_L4_BLOCK04_FLOWER_002: [8, 20, 90, 92, 50],
N117_L4_BLOCK04_FLOWER_003: [8, 20, 160, 92, 50],
N117_L4_BLOCK04_FLOWER_004: [8, 20, 230, 92, 50],
N117_L4_BLOCK04_FLOWER_005: [8, 20, 300, 92, 50],
N117_L4_BLOCK04_FLOWER_006: [8, 20, 370, 92, 50],
N117_L4_BLOCK04_FLOWER_007: [8, 20, 440, 92, 50],
N117_L4_BLOCK04_FLOWER_008: [8, 20, 510, 92, 50],
N117_L4_BLOCK04_FLOWER_009: [8, 20, 580, 92, 50],
N117_L4_BLOCK04_FLOWER_010: [8, 20, 650, 92, 50],
N117_L4_BLOCK04_FLOWER_011: [8,
20, 720, 92, 50
],
N117_L4_BLOCK04_FLOWER_012: [8, 20, 790, 92, 50],
N117_L4_BLOCK04_FLOWER_013: [8, 20, 860, 92, 50],
N117_L4_BLOCK04_FLOWER_014: [8, 20, 930, 92, 50],
N117_L4_BLOCK04_FLOWER_015: [8, 20, 1E3, 92, 50],
N118_L4_BLOCK05_LOGS_0: [7, 20, 10324, 58, 86],
N118_L4_BLOCK05_LOGS_1: [7, 20, 10430, 58, 86],
N118_L4_BLOCK05_LOGS_10: [7, 20, 10536, 58, 86],
N118_L4_BLOCK05_LOGS_11: [7, 20, 10642, 58, 86],
N118_L4_BLOCK05_LOGS_12: [7, 20, 10748, 58, 86],
N118_L4_BLOCK05_LOGS_13: [7, 20, 10854, 58, 86],
N118_L4_BLOCK05_LOGS_14: [7, 20, 10960, 58, 86],
N118_L4_BLOCK05_LOGS_15: [7,
20, 11066, 58, 86
],
N118_L4_BLOCK05_LOGS_16: [7, 20, 11172, 58, 86],
N118_L4_BLOCK05_LOGS_17: [7, 20, 11278, 58, 86],
N118_L4_BLOCK05_LOGS_18: [7, 20, 11384, 58, 86],
N118_L4_BLOCK05_LOGS_19: [7, 20, 11490, 58, 86],
N118_L4_BLOCK05_LOGS_2: [7, 20, 11596, 58, 86],
N118_L4_BLOCK05_LOGS_20: [7, 20, 11702, 58, 86],
N118_L4_BLOCK05_LOGS_21: [7, 20, 11808, 58, 86],
N118_L4_BLOCK05_LOGS_22: [7, 20, 11914, 58, 86],
N118_L4_BLOCK05_LOGS_23: [7, 20, 12020, 58, 86],
N118_L4_BLOCK05_LOGS_3: [7, 20, 12126, 58, 86],
N118_L4_BLOCK05_LOGS_4: [7, 20, 12232, 58, 86],
N118_L4_BLOCK05_LOGS_5: [7,
20, 12338, 58, 86
],
N118_L4_BLOCK05_LOGS_6: [7, 20, 12444, 58, 86],
N118_L4_BLOCK05_LOGS_7: [7, 20, 12550, 58, 86],
N118_L4_BLOCK05_LOGS_8: [7, 20, 12656, 58, 86],
N118_L4_BLOCK05_LOGS_9: [7, 20, 12762, 58, 86],
N119_L4_BLOCK06_FLOWER_001: [7, 20, 12868, 91, 63],
N119_L4_BLOCK06_FLOWER_002: [7, 20, 12951, 91, 63],
N119_L4_BLOCK06_FLOWER_003: [7, 20, 13034, 91, 63],
N119_L4_BLOCK06_FLOWER_004: [7, 20, 13117, 91, 63],
N119_L4_BLOCK06_FLOWER_005: [7, 20, 13200, 91, 63],
N119_L4_BLOCK06_FLOWER_006: [7, 20, 13283, 91, 63],
N119_L4_BLOCK06_FLOWER_007: [7, 20, 13366, 91,
63
],
N119_L4_BLOCK06_FLOWER_008: [7, 20, 13449, 91, 63],
N119_L4_BLOCK06_FLOWER_009: [7, 20, 13532, 91, 63],
N119_L4_BLOCK06_FLOWER_010: [7, 20, 13615, 91, 63],
N119_L4_BLOCK06_FLOWER_011: [7, 20, 13698, 91, 63],
N119_L4_BLOCK06_FLOWER_012: [7, 20, 13781, 91, 63],
N119_L4_BLOCK06_FLOWER_013: [7, 20, 13864, 91, 63],
N119_L4_BLOCK06_FLOWER_014: [7, 20, 13947, 91, 63],
N119_L4_BLOCK06_FLOWER_015: [7, 20, 14030, 91, 63],
N119_L4_BLOCK06_FLOWER_016: [7, 20, 14113, 91, 63],
N119_L4_BLOCK06_FLOWER_017: [7, 20, 14196, 91, 63],
N119_L4_BLOCK06_FLOWER_018: [7, 20, 14279,
91, 63
],
N120_L4_BLOCK07_FLOWER_001: [8, 20, 1070, 93, 85],
N120_L4_BLOCK07_FLOWER_002: [8, 20, 1175, 93, 85],
N120_L4_BLOCK07_FLOWER_003: [8, 20, 1280, 93, 85],
N120_L4_BLOCK07_FLOWER_004: [8, 20, 1385, 93, 85],
N120_L4_BLOCK07_FLOWER_005: [8, 20, 1490, 93, 85],
N120_L4_BLOCK07_FLOWER_006: [8, 20, 1595, 93, 85],
N120_L4_BLOCK07_FLOWER_007: [8, 20, 1700, 93, 85],
N120_L4_BLOCK07_FLOWER_008: [8, 20, 1805, 93, 85],
N120_L4_BLOCK07_FLOWER_009: [8, 20, 1910, 93, 85],
N120_L4_BLOCK07_FLOWER_010: [8, 20, 2015, 93, 85],
N120_L4_BLOCK07_FLOWER_011: [8, 20, 2120, 93, 85],
N120_L4_BLOCK07_FLOWER_012: [8, 20, 2225, 93, 85],
N120_L4_BLOCK07_FLOWER_013: [8, 20, 2330, 93, 85],
N120_L4_BLOCK07_FLOWER_014: [8, 20, 2435, 93, 85],
N120_L4_BLOCK07_FLOWER_015: [8, 20, 2540, 93, 85],
N120_L4_BLOCK07_FLOWER_016: [8, 20, 2645, 93, 85],
N120_L4_BLOCK07_FLOWER_017: [8, 20, 2750, 93, 85],
N120_L4_BLOCK07_FLOWER_018: [8, 20, 2855, 93, 85],
N120_L4_BLOCK07_FLOWER_019: [8, 20, 2960, 93, 85],
N120_L4_BLOCK07_FLOWER_020: [8, 20, 3065, 93, 85],
N120_L4_BLOCK07_FLOWER_021: [8, 20, 3170, 93, 85],
N120_L4_BLOCK07_FLOWER_022: [8, 20, 3275, 93, 85],
N120_L4_BLOCK07_FLOWER_023: [8,
20, 3380, 93, 85
],
N120_L4_BLOCK07_FLOWER_024: [8, 20, 3485, 93, 85],
N120_L4_BLOCK07_FLOWER_025: [8, 20, 3590, 93, 85],
N120_L4_BLOCK07_FLOWER_026: [8, 20, 3695, 93, 85],
N120_L4_BLOCK07_FLOWER_027: [8, 20, 3800, 93, 85],
N120_L4_BLOCK07_FLOWER_028: [8, 20, 3905, 93, 85],
N120_L4_BLOCK07_FLOWER_029: [8, 20, 4010, 93, 85],
N120_L4_BLOCK07_FLOWER_030: [8, 20, 4115, 93, 85],
N120_L4_BLOCK07_FLOWER_031: [8, 20, 4220, 93, 85],
N120_L4_BLOCK07_FLOWER_032: [8, 20, 4325, 93, 85],
N120_L4_BLOCK07_FLOWER_033: [8, 20, 4430, 93, 85],
N120_L4_BLOCK07_FLOWER_034: [8, 20, 4535,
93, 85
],
N120_L4_BLOCK07_FLOWER_035: [8, 20, 4640, 93, 85],
N120_L4_BLOCK07_FLOWER_036: [8, 20, 4745, 93, 85],
N120_L4_BLOCK07_FLOWER_037: [8, 20, 4850, 93, 85],
N120_L4_BLOCK07_FLOWER_038: [8, 20, 4955, 93, 85],
N120_L4_BLOCK07_FLOWER_039: [8, 20, 5060, 93, 85],
N120_L4_BLOCK07_FLOWER_040: [8, 20, 5165, 93, 85],
N120_L4_BLOCK07_FLOWER_041: [8, 20, 5270, 93, 85],
N120_L4_BLOCK07_FLOWER_042: [8, 20, 5375, 93, 85],
N120_L4_BLOCK07_FLOWER_043: [8, 20, 5480, 93, 85],
N120_L4_BLOCK07_FLOWER_044: [8, 20, 5585, 93, 85],
N120_L4_BLOCK07_FLOWER_045: [8, 20, 5690, 93, 85],
N121_L4_BLOCK09_15_MUSH01_001: [7, 20, 14362, 37, 57],
N121_L4_BLOCK09_15_MUSH01_002: [7, 20, 14439, 37, 57],
N121_L4_BLOCK09_15_MUSH01_003: [7, 20, 14516, 37, 57],
N121_L4_BLOCK09_15_MUSH01_004: [7, 20, 14593, 37, 57],
N121_L4_BLOCK09_15_MUSH01_005: [7, 20, 14670, 37, 57],
N121_L4_BLOCK09_15_MUSH01_006: [7, 20, 14747, 37, 57],
N121_L4_BLOCK09_15_MUSH01_007: [7, 20, 14824, 37, 57],
N121_L4_BLOCK09_15_MUSH01_008: [7, 20, 14901, 37, 57],
N121_L4_BLOCK09_15_MUSH01_009: [7, 20, 14978, 37, 57],
N121_L4_BLOCK09_15_MUSH01_010: [7, 20, 15055, 37, 57],
N121_L4_BLOCK09_15_MUSH01_011: [7,
20, 15132, 37, 57
],
N121_L4_BLOCK09_15_MUSH01_012: [7, 20, 15209, 37, 57],
N121_L4_BLOCK09_15_MUSH01_013: [7, 20, 15286, 37, 57],
N121_L4_BLOCK09_15_MUSH01_014: [7, 20, 15363, 37, 57],
N122_L4_BLOCK09_15_MUSH02_001: [7, 20, 15440, 19, 25],
N122_L4_BLOCK09_15_MUSH02_002: [7, 20, 15485, 19, 25],
N122_L4_BLOCK09_15_MUSH02_003: [7, 20, 15530, 19, 25],
N122_L4_BLOCK09_15_MUSH02_004: [7, 20, 15575, 19, 25],
N122_L4_BLOCK09_15_MUSH02_005: [7, 20, 15620, 19, 25],
N122_L4_BLOCK09_15_MUSH02_006: [7, 20, 15665, 19, 25],
N122_L4_BLOCK09_15_MUSH02_007: [7, 20, 15710, 19,
25
],
N122_L4_BLOCK09_15_MUSH02_008: [7, 20, 15755, 19, 25],
N122_L4_BLOCK09_15_MUSH02_009: [7, 20, 15800, 19, 25],
N122_L4_BLOCK09_15_MUSH02_010: [7, 20, 15845, 19, 25],
N122_L4_BLOCK09_15_MUSH02_011: [7, 20, 15890, 19, 25],
N122_L4_BLOCK09_15_MUSH02_012: [7, 20, 15935, 19, 25],
N122_L4_BLOCK09_15_MUSH02_013: [7, 20, 15980, 19, 25],
N122_L4_BLOCK09_15_MUSH02_014: [7, 20, 16025, 19, 25],
N123_L4_BLOCK10_FLOWER_TREE_001: [9, 20, 20, 60, 175],
N123_L4_BLOCK10_FLOWER_TREE_002: [9, 20, 215, 60, 175],
N123_L4_BLOCK10_FLOWER_TREE_003: [9, 20, 410, 60, 175],
N123_L4_BLOCK10_FLOWER_TREE_004: [9,
20, 605, 60, 175
],
N123_L4_BLOCK10_FLOWER_TREE_005: [9, 20, 800, 60, 175],
N123_L4_BLOCK10_FLOWER_TREE_006: [9, 20, 995, 60, 175],
N123_L4_BLOCK10_FLOWER_TREE_007: [9, 20, 1190, 60, 175],
N123_L4_BLOCK10_FLOWER_TREE_008: [9, 20, 1385, 60, 175],
N123_L4_BLOCK10_FLOWER_TREE_009: [9, 20, 1580, 60, 175],
N123_L4_BLOCK10_FLOWER_TREE_010: [9, 20, 1775, 60, 175],
N123_L4_BLOCK10_FLOWER_TREE_011: [9, 20, 1970, 60, 175],
N123_L4_BLOCK10_FLOWER_TREE_012: [9, 20, 2165, 60, 175],
N123_L4_BLOCK10_FLOWER_TREE_013: [9, 20, 2360, 60, 175],
N123_L4_BLOCK10_FLOWER_TREE_014: [9,
20, 2555, 60, 175
],
N123_L4_BLOCK10_FLOWER_TREE_015: [9, 20, 2750, 60, 175],
N123_L4_BLOCK10_FLOWER_TREE_016: [9, 20, 2945, 60, 175],
N123_L4_BLOCK10_FLOWER_TREE_017: [9, 20, 3140, 60, 175],
N123_L4_BLOCK10_FLOWER_TREE_018: [9, 20, 3335, 60, 175],
N123_L4_BLOCK10_FLOWER_TREE_019: [9, 20, 3530, 60, 175],
N123_L4_BLOCK10_FLOWER_TREE_020: [9, 20, 3725, 60, 175],
N124_L4_FISH_001: [9, 20, 3920, 97, 94],
N124_L4_FISH_002: [9, 20, 4034, 97, 94],
N124_L4_FISH_003: [9, 20, 4148, 97, 94],
N124_L4_FISH_004: [9, 20, 4262, 97, 94],
N124_L4_FISH_005: [9, 20, 4376, 97, 94],
N124_L4_FISH_006: [9,
20, 4490, 97, 94
],
N124_L4_FISH_007: [9, 20, 4604, 97, 94],
N124_L4_FISH_008: [9, 20, 4718, 97, 94],
N124_L4_FISH_009: [9, 20, 4832, 97, 94],
N124_L4_FISH_010: [9, 20, 4946, 97, 94],
N124_L4_FISH_011: [9, 20, 5060, 97, 94],
N124_L4_FISH_012: [9, 20, 5174, 97, 94],
N124_L4_FISH_013: [9, 20, 5288, 97, 94],
N124_L4_FISH_014: [9, 20, 5402, 97, 94],
N124_L4_FISH_015: [9, 20, 5516, 97, 94],
N124_L4_FISH_016: [9, 20, 5630, 97, 94],
N124_L4_FISH_017: [9, 20, 5744, 97, 94],
N124_L4_FISH_018: [9, 20, 5858, 97, 94],
N124_L4_FISH_019: [9, 20, 5972, 97, 94],
N124_L4_FISH_020: [9, 20, 6086, 97,
94
],
N124_L4_FISH_021: [9, 20, 6200, 97, 94],
N124_L4_FISH_022: [9, 20, 6314, 97, 94],
N124_L4_FISH_023: [9, 20, 6428, 97, 94],
N124_L4_FISH_024: [9, 20, 6542, 97, 94],
N124_L4_FISH_025: [9, 20, 6656, 97, 94],
N124_L4_FISH_026: [9, 20, 6770, 97, 94],
N124_L4_FISH_027: [9, 20, 6884, 97, 94],
N124_L4_FISH_028: [9, 20, 6998, 97, 94],
N124_L4_FISH_029: [9, 20, 7112, 97, 94],
N124_L4_FISH_030: [9, 20, 7226, 97, 94],
N124_L4_FISH_031: [9, 20, 7340, 97, 94],
N124_L4_FISH_032: [9, 20, 7454, 97, 94],
N124_L4_FISH_033: [9, 20, 7568, 97, 94],
N124_L4_FISH_034: [9, 20, 7682, 97, 94],
N125_L4_BLOCK11_POND_001: [9,
20, 7796, 68, 77
],
N125_L4_BLOCK11_POND_002: [9, 20, 7893, 68, 77],
N125_L4_BLOCK11_POND_003: [9, 20, 7990, 68, 77],
N125_L4_BLOCK11_POND_004: [9, 20, 8087, 68, 77],
N125_L4_BLOCK11_POND_005: [9, 20, 8184, 68, 77],
N125_L4_BLOCK11_POND_006: [9, 20, 8281, 68, 77],
N125_L4_BLOCK11_POND_007: [9, 20, 8378, 68, 77],
N125_L4_BLOCK11_POND_008: [9, 20, 8475, 68, 77],
N125_L4_BLOCK11_POND_009: [9, 20, 8572, 68, 77],
N125_L4_BLOCK11_POND_010: [9, 20, 8669, 68, 77],
N125_L4_BLOCK11_POND_011: [9, 20, 8766, 68, 77],
N125_L4_BLOCK11_POND_012: [9, 20, 8863, 68, 77],
N125_L4_BLOCK11_POND_013: [9,
20, 8960, 68, 77
],
N125_L4_BLOCK11_POND_014: [9, 20, 9057, 68, 77],
N125_L4_BLOCK11_POND_015: [9, 20, 9154, 68, 77],
N125_L4_BLOCK11_POND_016: [9, 20, 9251, 68, 77],
N125_L4_BLOCK11_POND_017: [9, 20, 9348, 68, 77],
N125_L4_BLOCK11_POND_018: [9, 20, 9445, 68, 77],
N125_L4_BLOCK11_POND_019: [9, 20, 9542, 68, 77],
N125_L4_BLOCK11_POND_020: [9, 20, 9639, 68, 77],
N125_L4_BLOCK11_POND_021: [9, 20, 9736, 68, 77],
N125_L4_BLOCK11_POND_022: [9, 20, 9833, 68, 77],
N125_L4_BLOCK11_POND_023: [9, 20, 9930, 68, 77],
N125_L4_BLOCK11_POND_024: [9, 20, 10027, 68, 77],
N126_L4_BLOCK11_DECO_001: [7,
20, 16070, 59, 12
],
N126_L4_BLOCK11_DECO_002: [7, 20, 16102, 59, 12],
N126_L4_BLOCK11_DECO_003: [7, 20, 16134, 59, 12],
N126_L4_BLOCK11_DECO_004: [7, 20, 16166, 59, 12],
N126_L4_BLOCK11_DECO_005: [7, 20, 16198, 59, 12],
N126_L4_BLOCK11_DECO_006: [7, 20, 16230, 59, 12],
N126_L4_BLOCK11_DECO_007: [7, 20, 16262, 59, 12],
N126_L4_BLOCK11_DECO_008: [7, 20, 16294, 59, 12],
N126_L4_BLOCK11_DECO_009: [7, 20, 16326, 59, 12],
N126_L4_BLOCK11_DECO_010: [7, 20, 16358, 59, 12],
N126_L4_BLOCK11_DECO_011: [7, 20, 16390, 59, 12],
N126_L4_BLOCK11_DECO_012: [7, 20, 16422, 59, 12],
N126_L4_BLOCK11_DECO_013: [7,
20, 16454, 59, 12
],
N126_L4_BLOCK11_DECO_014: [7, 20, 16486, 59, 12],
N127_L4_BLOCK13_FLOWER001: [7, 20, 16518, 59, 62],
N127_L4_BLOCK13_FLOWER002: [7, 20, 16600, 59, 62],
N127_L4_BLOCK13_FLOWER003: [7, 20, 16682, 59, 62],
N127_L4_BLOCK13_FLOWER004: [7, 20, 16764, 59, 62],
N127_L4_BLOCK13_FLOWER005: [7, 20, 16846, 59, 62],
N127_L4_BLOCK13_FLOWER006: [7, 20, 16928, 59, 62],
N127_L4_BLOCK13_FLOWER007: [7, 20, 17010, 59, 62],
N127_L4_BLOCK13_FLOWER008: [7, 20, 17092, 59, 62],
N127_L4_BLOCK13_FLOWER009: [7, 20, 17174, 59, 62],
N127_L4_BLOCK13_FLOWER010: [7, 20, 17256,
59, 62
],
N128_L4_BLOCK14_FLOWER_TREE_001: [9, 20, 10124, 60, 167],
N128_L4_BLOCK14_FLOWER_TREE_002: [9, 20, 10311, 60, 167],
N128_L4_BLOCK14_FLOWER_TREE_003: [9, 20, 10498, 60, 167],
N128_L4_BLOCK14_FLOWER_TREE_004: [9, 20, 10685, 60, 167],
N128_L4_BLOCK14_FLOWER_TREE_005: [9, 20, 10872, 60, 167],
N128_L4_BLOCK14_FLOWER_TREE_006: [9, 20, 11059, 60, 167],
N128_L4_BLOCK14_FLOWER_TREE_007: [9, 20, 11246, 60, 167],
N128_L4_BLOCK14_FLOWER_TREE_008: [9, 20, 11433, 60, 167],
N128_L4_BLOCK14_FLOWER_TREE_009: [9, 20, 11620, 60, 167],
N128_L4_BLOCK14_FLOWER_TREE_010: [9,
20, 11807, 60, 167
],
N128_L4_BLOCK14_FLOWER_TREE_011: [9, 20, 11994, 60, 167],
N128_L4_BLOCK14_FLOWER_TREE_012: [9, 20, 12181, 60, 167],
N128_L4_BLOCK14_FLOWER_TREE_013: [9, 20, 12368, 60, 167],
N128_L4_BLOCK14_FLOWER_TREE_014: [9, 20, 12555, 60, 167],
N128_L4_BLOCK14_FLOWER_TREE_015: [9, 20, 12742, 60, 167],
N128_L4_BLOCK14_FLOWER_TREE_016: [9, 20, 12929, 60, 167],
N128_L4_BLOCK14_FLOWER_TREE_017: [9, 20, 13116, 60, 167],
N128_L4_BLOCK14_FLOWER_TREE_018: [9, 20, 13303, 60, 167],
N128_L4_BLOCK14_FLOWER_TREE_019: [9, 20, 13490, 60, 167],
N128_L4_BLOCK14_FLOWER_TREE_020: [9,
20, 13677, 60, 167
],
N128_L4_BLOCK14_FLOWER_TREE_021: [9, 20, 13864, 60, 167],
N129_L4_SQUIRREL_001: [7, 20, 17338, 59, 111],
N129_L4_SQUIRREL_002: [7, 20, 17469, 59, 111],
N129_L4_SQUIRREL_003: [7, 20, 17600, 59, 111],
N129_L4_SQUIRREL_004: [7, 20, 17731, 59, 111],
N129_L4_SQUIRREL_005: [7, 20, 17862, 59, 111],
N129_L4_SQUIRREL_006: [7, 20, 17993, 59, 111],
N129_L4_SQUIRREL_007: [7, 20, 18124, 59, 111],
N129_L4_SQUIRREL_008: [7, 20, 18255, 59, 111],
N129_L4_SQUIRREL_009: [7, 20, 18386, 59, 111],
N129_L4_SQUIRREL_010: [7, 20, 18517, 59, 111],
N129_L4_SQUIRREL_011: [7,
20, 18648, 59, 111
],
N129_L4_SQUIRREL_012: [7, 20, 18779, 59, 111],
N129_L4_SQUIRREL_013: [7, 20, 18910, 59, 111],
N129_L4_SQUIRREL_014: [7, 20, 19041, 59, 111],
N129_L4_SQUIRREL_015: [7, 20, 19172, 59, 111],
N129_L4_SQUIRREL_016: [7, 20, 19303, 59, 111],
N129_L4_SQUIRREL_017: [7, 20, 19434, 59, 111],
N129_L4_SQUIRREL_018: [7, 20, 17338, 59, 111],
N130_L4_OWL_HEAD_001: [7, 20, 19565, 92, 83],
N130_L4_OWL_HEAD_004: [7, 20, 19668, 92, 83],
N130_L4_OWL_HEAD_005: [7, 20, 19771, 92, 83],
N130_L4_OWL_HEAD_006: [7, 20, 19874, 92, 83],
N130_L4_OWL_HEAD_007: [7, 20, 19977, 92, 83],
N130_L4_OWL_HEAD_011: [7, 20, 20080, 92, 83],
N130_L4_OWL_HEAD_012: [7, 20, 20183, 92, 83],
N130_L4_OWL_HEAD_013: [7, 20, 20286, 92, 83],
N130_L4_OWL_HEAD_014: [7, 20, 20389, 92, 83],
N130_L4_OWL_HEAD_015: [7, 20, 20492, 92, 83],
N130_L4_OWL_HEAD_019: [7, 20, 20595, 92, 83],
N130_L4_OWL_HEAD_020: [7, 20, 20698, 92, 83],
N130_L4_OWL_HEAD_021: [7, 20, 20801, 92, 83],
N130_L4_OWL_HEAD_028: [7, 20, 20904, 92, 83],
N130_L4_OWL_HEAD_029: [7, 20, 21007, 92, 83],
N130_L4_OWL_HEAD_030: [7, 20, 21110, 92, 83],
N130_L4_OWL_HEAD_031: [7, 20, 21213, 92, 83],
N130_L4_OWL_HEAD_032: [7,
20, 21316, 92, 83
],
N130_L4_OWL_HEAD_033: [7, 20, 21419, 92, 83],
N130_L4_OWL_HEAD_034: [7, 20, 21522, 92, 83],
N130_L4_OWL_HEAD_035: [7, 20, 21625, 92, 83],
N130_L4_OWL_HEAD_037: [7, 20, 21728, 92, 83],
N130_L4_OWL_HEAD_038: [7, 20, 21831, 92, 83],
N131_L5_CLOUD01: [10, 20, 20, 101.7, 100],
N132_L5_CLOUD02: [10, 20, 140, 101.4, 69.8],
N133_L5_CLOUD03: [10, 20, 230, 55.2, 44.4],
N134_L5_CLOUD04: [10, 20, 295, 166.5, 100.5],
N135_L5_CLOUD05: [10, 20, 416, 89.9, 109.6],
N158_L5_BLOCK01_FLOORDECO_001: [10, 20, 546, 70, 34],
N158_L5_BLOCK01_FLOORDECO_002: [10, 20, 600, 70,
34
],
N158_L5_BLOCK01_FLOORDECO_003: [10, 20, 654, 70, 34],
N158_L5_BLOCK01_FLOORDECO_004: [10, 20, 708, 70, 34],
N158_L5_BLOCK01_FLOORDECO_005: [10, 20, 762, 70, 34],
N158_L5_BLOCK01_FLOORDECO_006: [10, 20, 816, 70, 34],
N158_L5_BLOCK01_FLOORDECO_007: [10, 20, 870, 70, 34],
N158_L5_BLOCK01_FLOORDECO_008: [10, 20, 924, 70, 34],
N158_L5_BLOCK01_FLOORDECO_009: [10, 20, 978, 70, 34],
N158_L5_BLOCK01_FLOORDECO_010: [10, 20, 1032, 70, 34],
N158_L5_BLOCK01_FLOORDECO_011: [10, 20, 1086, 70, 34],
N158_L5_BLOCK01_FLOORDECO_012: [10, 20, 1140, 70, 34],
N158_L5_BLOCK01_FLOORDECO_013: [10,
20, 1194, 70, 34
],
N158_L5_BLOCK01_FLOORDECO_014: [10, 20, 1248, 70, 34],
N158_L5_BLOCK01_FLOORDECO_015: [10, 20, 1302, 70, 34],
N158_L5_BLOCK01_FLOORDECO_016: [10, 20, 1356, 70, 34],
N158_L5_BLOCK01_FLOORDECO_017: [10, 20, 1410, 70, 34],
N159_L5_BLOCK02_FLOWER_001: [10, 20, 1464, 65, 33],
N159_L5_BLOCK02_FLOWER_002: [10, 20, 1517, 65, 33],
N159_L5_BLOCK02_FLOWER_003: [10, 20, 1570, 65, 33],
N159_L5_BLOCK02_FLOWER_004: [10, 20, 1623, 65, 33],
N159_L5_BLOCK02_FLOWER_005: [10, 20, 1676, 65, 33],
N159_L5_BLOCK02_FLOWER_006: [10, 20, 1729, 65, 33],
N159_L5_BLOCK02_FLOWER_007: [10,
20, 1782, 65, 33
],
N159_L5_BLOCK02_FLOWER_008: [10, 20, 1835, 65, 33],
N159_L5_BLOCK02_FLOWER_009: [10, 20, 1888, 65, 33],
N159_L5_BLOCK02_FLOWER_010: [10, 20, 1941, 65, 33],
N159_L5_BLOCK02_FLOWER_011: [10, 20, 1994, 65, 33],
N159_L5_BLOCK02_FLOWER_012: [10, 20, 2047, 65, 33],
N159_L5_BLOCK02_FLOWER_013: [10, 20, 2100, 65, 33],
N159_L5_BLOCK02_FLOWER_014: [10, 20, 2153, 65, 33],
N159_L5_BLOCK02_FLOWER_015: [10, 20, 2206, 65, 33],
N160_L5_BLOCK03_FLOWER_001: [10, 20, 2259, 62, 32],
N160_L5_BLOCK03_FLOWER_002: [10, 20, 2311, 62, 32],
N160_L5_BLOCK03_FLOWER_003: [10,
20, 2363, 62, 32
],
N160_L5_BLOCK03_FLOWER_004: [10, 20, 2415, 62, 32],
N160_L5_BLOCK03_FLOWER_005: [10, 20, 2467, 62, 32],
N160_L5_BLOCK03_FLOWER_006: [10, 20, 2519, 62, 32],
N160_L5_BLOCK03_FLOWER_007: [10, 20, 2571, 62, 32],
N160_L5_BLOCK03_FLOWER_008: [10, 20, 2623, 62, 32],
N160_L5_BLOCK03_FLOWER_009: [10, 20, 2675, 62, 32],
N161_L5_BLOCK04_FLOWER_001: [8, 20, 5795, 57, 41],
N161_L5_BLOCK04_FLOWER_002: [8, 20, 5856, 57, 41],
N161_L5_BLOCK04_FLOWER_003: [8, 20, 5917, 57, 41],
N161_L5_BLOCK04_FLOWER_004: [8, 20, 5978, 57, 41],
N161_L5_BLOCK04_FLOWER_005: [8,
20, 6039, 57, 41
],
N161_L5_BLOCK04_FLOWER_006: [8, 20, 6100, 57, 41],
N161_L5_BLOCK04_FLOWER_007: [8, 20, 6161, 57, 41],
N161_L5_BLOCK04_FLOWER_008: [8, 20, 6222, 57, 41],
N161_L5_BLOCK04_FLOWER_009: [8, 20, 6283, 57, 41],
N161_L5_BLOCK04_FLOWER_010: [8, 20, 6344, 57, 41],
N161_L5_BLOCK04_FLOWER_011: [8, 20, 6405, 57, 41],
N161_L5_BLOCK04_FLOWER_012: [8, 20, 6466, 57, 41],
N161_L5_BLOCK04_FLOWER_013: [8, 20, 6527, 57, 41],
N167_L5_BLOCK10_FLOORDECO_001: [10, 20, 2727, 70, 35],
N167_L5_BLOCK10_FLOORDECO_002: [10, 20, 2782, 70, 35],
N167_L5_BLOCK10_FLOORDECO_003: [10,
20, 2837, 70, 35
],
N167_L5_BLOCK10_FLOORDECO_004: [10, 20, 2892, 70, 35],
N167_L5_BLOCK10_FLOORDECO_005: [10, 20, 2947, 70, 35],
N167_L5_BLOCK10_FLOORDECO_006: [10, 20, 3002, 70, 35],
N167_L5_BLOCK10_FLOORDECO_007: [10, 20, 3057, 70, 35],
N167_L5_BLOCK10_FLOORDECO_008: [10, 20, 3112, 70, 35],
N167_L5_BLOCK10_FLOORDECO_009: [10, 20, 3167, 70, 35],
N167_L5_BLOCK10_FLOORDECO_010: [10, 20, 3222, 70, 35],
N167_L5_BLOCK10_FLOORDECO_011: [10, 20, 3277, 70, 35],
N167_L5_BLOCK10_FLOORDECO_012: [10, 20, 3332, 70, 35],
N169_L5_BLOCK12_TREE_001: [10, 20, 3387, 95, 168],
N169_L5_BLOCK12_TREE_002: [10, 20, 3575, 95, 168],
N169_L5_BLOCK12_TREE_003: [10, 20, 3763, 95, 168],
N169_L5_BLOCK12_TREE_004: [10, 20, 3951, 95, 168],
N169_L5_BLOCK12_TREE_005: [10, 20, 4139, 95, 168],
N169_L5_BLOCK12_TREE_006: [10, 20, 4327, 95, 168],
N169_L5_BLOCK12_TREE_007: [10, 20, 4515, 95, 168],
N169_L5_BLOCK12_TREE_008: [10, 20, 4703, 95, 168],
N169_L5_BLOCK12_TREE_009: [10, 20, 4891, 95, 168],
N169_L5_BLOCK12_TREE_010: [10, 20, 5079, 95, 168],
N169_L5_BLOCK12_TREE_011: [10, 20, 5267, 95, 168],
N169_L5_BLOCK12_TREE_012: [10, 20, 5455, 95, 168],
N169_L5_BLOCK12_TREE_013: [10,
20, 5643, 95, 168
],
N169_L5_BLOCK12_TREE_014: [10, 20, 5831, 95, 168],
N173_L5_BLOCK16_FROG_001: [10, 20, 6019, 41, 51],
N173_L5_BLOCK16_FROG_002: [10, 20, 6090, 41, 51],
N173_L5_BLOCK16_FROG_003: [10, 20, 6161, 41, 51],
N173_L5_BLOCK16_FROG_004: [10, 20, 6232, 41, 51],
N173_L5_BLOCK16_FROG_005: [10, 20, 6303, 41, 51],
N173_L5_BLOCK16_FROG_006: [10, 20, 6374, 41, 51],
N173_L5_BLOCK16_FROG_007: [10, 20, 6445, 41, 51],
N173_L5_BLOCK16_FROG_008: [10, 20, 6516, 41, 51],
N173_L5_BLOCK16_FROG_009: [10, 20, 6587, 41, 51],
N173_L5_BLOCK16_FROG_010: [10, 20, 6658, 41, 51],
N173_L5_BLOCK16_FROG_011: [10, 20, 6729, 41, 51],
N173_L5_BLOCK16_FROG_012: [10, 20, 6800, 41, 51],
N173_L5_BLOCK16_FROG_013: [10, 20, 6871, 41, 51],
N173_L5_BLOCK16_FROG_014: [10, 20, 6942, 41, 51],
N173_L5_BLOCK16_FROG_015: [10, 20, 7013, 41, 51],
N173_L5_BLOCK16_FROG_016: [10, 20, 7084, 41, 51],
N173_L5_BLOCK16_FROG_017: [10, 20, 7155, 41, 51],
N173_L5_BLOCK16_FROG_018: [10, 20, 7226, 41, 51],
N173_L5_BLOCK16_FROG_019: [10, 20, 7297, 41, 51],
N173_L5_BLOCK16_FROG_020: [10, 20, 7368, 41, 51],
N173_L5_BLOCK16_FROG_021: [10, 20, 7439, 41, 51],
N173_L5_BLOCK16_FROG_022: [10,
20, 7510, 41, 51
],
N173_L5_BLOCK16_FROG_023: [10, 20, 7581, 41, 51],
N173_L5_BLOCK16_FROG_024: [10, 20, 7652, 41, 51],
N173_L5_BLOCK16_FROG_025: [10, 20, 7723, 41, 51],
N173_L5_BLOCK16_FROG_026: [10, 20, 7794, 41, 51],
N173_L5_BLOCK16_FROG_027: [10, 20, 7865, 41, 51],
N173_L5_BLOCK16_FROG_028: [10, 20, 7936, 41, 51],
N173_L5_BLOCK16_FROG_029: [10, 20, 8007, 41, 51],
N173_L5_BLOCK16_FROG_030: [10, 20, 8078, 41, 51],
N173_L5_BLOCK16_FROG_031: [10, 20, 8149, 41, 51],
N173_L5_BLOCK16_FROG_032: [10, 20, 8220, 41, 51],
N173_L5_BLOCK16_FROG_033: [10, 20, 8291, 41, 51],
N173_L5_BLOCK16_FROG_034: [10,
20, 8362, 41, 51
],
N173_L5_BLOCK16_FROG_035: [10, 20, 8433, 41, 51],
N174_L5_BLOCK17_PONDFROG_001: [10, 20, 8504, 110, 138],
N174_L5_BLOCK17_PONDFROG_002: [10, 20, 8662, 110, 138],
N174_L5_BLOCK17_PONDFROG_003: [10, 20, 8820, 110, 138],
N174_L5_BLOCK17_PONDFROG_004: [10, 20, 8978, 110, 138],
N174_L5_BLOCK17_PONDFROG_005: [10, 20, 9136, 110, 138],
N174_L5_BLOCK17_PONDFROG_006: [10, 20, 9294, 110, 138],
N174_L5_BLOCK17_PONDFROG_007: [10, 20, 9452, 110, 138],
N174_L5_BLOCK17_PONDFROG_008: [10, 20, 9610, 110, 138],
N174_L5_BLOCK17_PONDFROG_009: [10, 20, 9768, 110,
138
],
N174_L5_BLOCK17_PONDFROG_010: [10, 20, 9926, 110, 138],
N174_L5_BLOCK17_PONDFROG_011: [10, 20, 10084, 110, 138],
N174_L5_BLOCK17_PONDFROG_012: [10, 20, 10242, 110, 138],
N174_L5_BLOCK17_PONDFROG_013: [10, 20, 10400, 110, 138],
N174_L5_BLOCK17_PONDFROG_014: [10, 20, 10558, 110, 138],
N174_L5_BLOCK17_PONDFROG_015: [10, 20, 10716, 110, 138],
N174_L5_BLOCK17_PONDFROG_016: [10, 20, 10874, 110, 138],
N174_L5_BLOCK17_PONDFROG_017: [10, 20, 11032, 110, 138],
N174_L5_BLOCK17_PONDFROG_018: [10, 20, 11190, 110, 138],
N174_L5_BLOCK17_PONDFROG_019: [10, 20, 11348,
110, 138
],
N174_L5_BLOCK17_PONDFROG_020: [10, 20, 11506, 110, 138],
N174_L5_BLOCK17_PONDFROG_021: [10, 20, 11664, 110, 138],
N174_L5_BLOCK17_PONDFROG_022: [10, 20, 11822, 110, 138],
N174_L5_BLOCK17_PONDFROG_023: [10, 20, 11980, 110, 138],
N174_L5_BLOCK17_PONDFROG_024: [10, 20, 12138, 110, 138],
N174_L5_BLOCK17_PONDFROG_025: [10, 20, 12296, 110, 138],
N174_L5_BLOCK17_PONDFROG_026: [10, 20, 12454, 110, 138],
N174_L5_BLOCK17_PONDFROG_027: [10, 20, 12612, 110, 138],
N174_L5_BLOCK17_PONDFROG_028: [10, 20, 12770, 110, 138],
N174_L5_BLOCK17_PONDFROG_029: [10,
20, 12928, 110, 138
],
N174_L5_BLOCK17_PONDFROG_030: [10, 20, 13086, 110, 138],
N175_L5_BLOCK17_POND_001: [10, 20, 13244, 82, 40],
N175_L5_BLOCK17_POND_002: [10, 20, 13304, 82, 40],
N175_L5_BLOCK17_POND_003: [10, 20, 13364, 82, 40],
N175_L5_BLOCK17_POND_004: [10, 20, 13424, 82, 40],
N175_L5_BLOCK17_POND_005: [10, 20, 13484, 82, 40],
N175_L5_BLOCK17_POND_006: [10, 20, 13544, 82, 40],
N175_L5_BLOCK17_POND_007: [10, 20, 13604, 82, 40],
N175_L5_BLOCK17_POND_008: [10, 20, 13664, 82, 40],
N175_L5_BLOCK17_POND_009: [10, 20, 13724, 82, 40],
N175_L5_BLOCK17_POND_010: [10,
20, 13784, 82, 40
],
N175_L5_BLOCK17_POND_011: [10, 20, 13844, 82, 40],
N175_L5_BLOCK17_POND_012: [10, 20, 13904, 82, 40],
N176_L5_BLOCK17_WATERFALL_001: [6, 20, 20, 30, 144],
N176_L5_BLOCK17_WATERFALL_002: [6, 20, 184, 30, 144],
N176_L5_BLOCK17_WATERFALL_003: [6, 20, 348, 30, 144],
N176_L5_BLOCK17_WATERFALL_004: [6, 20, 512, 30, 144],
N176_L5_BLOCK17_WATERFALL_005: [6, 20, 676, 30, 144],
N176_L5_BLOCK17_WATERFALL_006: [6, 20, 840, 30, 144],
N176_L5_BLOCK17_WATERFALL_007: [6, 20, 1004, 30, 144],
N176_L5_BLOCK17_WATERFALL_008: [6, 20, 1168, 30, 144],
N176_L5_BLOCK17_WATERFALL_009: [6,
20, 1332, 30, 144
],
N176_L5_BLOCK17_WATERFALL_010: [6, 20, 1496, 30, 144],
N176_L5_BLOCK17_WATERFALL_011: [6, 20, 1660, 30, 144],
N176_L5_BLOCK17_WATERFALL_012: [6, 20, 1824, 30, 144],
N176_L5_BLOCK17_WATERFALL_013: [6, 20, 1988, 30, 144],
N176_L5_BLOCK17_WATERFALL_014: [6, 20, 2152, 30, 144],
N176_L5_BLOCK17_WATERFALL_015: [6, 20, 2316, 30, 144],
N176_L5_BLOCK17_WATERFALL_016: [6, 20, 2480, 30, 144],
N176_L5_BLOCK17_WATERFALL_017: [6, 20, 2644, 30, 144],
N176_L5_BLOCK17_WATERFALL_018: [6, 20, 2808, 30, 144],
N176_L5_BLOCK17_WATERFALL_019: [6, 20, 2972, 30,
144
],
N176_L5_BLOCK17_WATERFALL_020: [6, 20, 3136, 30, 144],
N176_L5_BLOCK17_WATERFALL_021: [6, 20, 3300, 30, 144],
N176_L5_BLOCK17_WATERFALL_022: [6, 20, 3464, 30, 144],
N176_L5_BLOCK17_WATERFALL_023: [6, 20, 3628, 30, 144],
N176_L5_BLOCK17_WATERFALL_024: [6, 20, 3792, 30, 144],
N176_L5_BLOCK17_WATERFALL_025: [6, 20, 3956, 30, 144],
N176_L5_BLOCK17_WATERFALL_026: [6, 20, 4120, 30, 144],
N176_L5_BLOCK17_WATERFALL_027: [6, 20, 4284, 30, 144],
N176_L5_BLOCK17_WATERFALL_028: [6, 20, 4448, 30, 144],
N176_L5_BLOCK17_WATERFALL_029: [6, 20, 4612, 30, 144],
N176_L5_BLOCK17_WATERFALL_030: [6,
20, 4776, 30, 144
],
N176_L5_BLOCK17_WATERFALL_031: [6, 20, 4940, 30, 144],
N176_L5_BLOCK17_WATERFALL_032: [6, 20, 5104, 30, 144],
N176_L5_BLOCK17_WATERFALL_033: [6, 20, 5268, 30, 144],
N178_L5_BLOCK19_DUCKLINGS_001: [10, 20, 13964, 82, 58],
N178_L5_BLOCK19_DUCKLINGS_002: [10, 20, 14042, 82, 58],
N178_L5_BLOCK19_DUCKLINGS_003: [10, 20, 14120, 82, 58],
N178_L5_BLOCK19_DUCKLINGS_004: [10, 20, 14198, 82, 58],
N178_L5_BLOCK19_DUCKLINGS_005: [10, 20, 14276, 82, 58],
N178_L5_BLOCK19_DUCKLINGS_006: [10, 20, 14354, 82, 58],
N178_L5_BLOCK19_DUCKLINGS_007: [10, 20, 14432,
82, 58
],
N178_L5_BLOCK19_DUCKLINGS_008: [10, 20, 14510, 82, 58],
N178_L5_BLOCK19_DUCKLINGS_009: [10, 20, 14588, 82, 58],
N178_L5_BLOCK19_DUCKLINGS_010: [10, 20, 14666, 82, 58],
N178_L5_BLOCK19_DUCKLINGS_011: [10, 20, 14744, 82, 58],
N178_L5_BLOCK19_DUCKLINGS_012: [10, 20, 14822, 82, 58],
N178_L5_BLOCK19_DUCKLINGS_013: [10, 20, 14666, 82, 58],
N178_L5_BLOCK19_DUCKLINGS_014: [10, 20, 14666, 82, 58],
N178_L5_BLOCK19_DUCKLINGS_015: [10, 20, 14666, 82, 58],
N178_L5_BLOCK19_DUCKLINGS_016: [10, 20, 14666, 82, 58],
N178_L5_BLOCK19_DUCKLINGS_017: [10, 20, 14666, 82,
58
],
N179_L5_BLOCK20_DUCK_001: [10, 20, 14900, 93, 104],
N179_L5_BLOCK20_DUCK_002: [10, 20, 15024, 93, 104],
N179_L5_BLOCK20_DUCK_003: [10, 20, 15148, 93, 104],
N179_L5_BLOCK20_DUCK_004: [10, 20, 15272, 93, 104],
N179_L5_BLOCK20_DUCK_005: [10, 20, 15396, 93, 104],
N179_L5_BLOCK20_DUCK_006: [10, 20, 15520, 93, 104],
N179_L5_BLOCK20_DUCK_007: [10, 20, 15644, 93, 104],
N179_L5_BLOCK20_DUCK_008: [10, 20, 15768, 93, 104],
N179_L5_BLOCK20_DUCK_009: [10, 20, 15892, 93, 104],
N179_L5_BLOCK20_DUCK_010: [10, 20, 16016, 93, 104],
N179_L5_BLOCK20_DUCK_011: [10, 20, 16140,
93, 104
],
N179_L5_BLOCK20_DUCK_012: [10, 20, 16264, 93, 104],
N179_L5_BLOCK20_DUCK_013: [10, 20, 16388, 93, 104],
N179_L5_BLOCK20_DUCK_014: [10, 20, 16512, 93, 104],
N179_L5_BLOCK20_DUCK_015: [10, 20, 16636, 93, 104],
N179_L5_BLOCK20_DUCK_016: [10, 20, 16760, 93, 104],
N179_L5_BLOCK20_DUCK_017: [10, 20, 16884, 93, 104],
N179_L5_BLOCK20_DUCK_018: [10, 20, 17008, 93, 104],
N179_L5_BLOCK20_DUCK_019: [10, 20, 17132, 93, 104],
N179_L5_BLOCK20_DUCK_020: [10, 20, 17256, 93, 104],
N179_L5_BLOCK20_DUCK_021: [10, 20, 17380, 93, 104],
N179_L5_BLOCK20_DUCK_022: [10, 20, 17504,
93, 104
],
N179_L5_BLOCK20_DUCK_023: [10, 20, 17628, 93, 104],
N179_L5_BLOCK20_DUCK_024: [10, 20, 17752, 93, 104],
N179_L5_BLOCK20_DUCK_025: [10, 20, 17876, 93, 104],
N179_L5_BLOCK20_DUCK_026: [10, 20, 18E3, 93, 104],
N179_L5_BLOCK20_DUCK_027: [10, 20, 18124, 93, 104],
N179_L5_BLOCK20_DUCK_028: [10, 20, 18248, 93, 104],
N179_L5_BLOCK20_DUCK_029: [10, 20, 18372, 93, 104],
N179_L5_BLOCK20_DUCK_030: [10, 20, 18496, 93, 104],
N179_L5_BLOCK20_DUCK_031: [10, 20, 18620, 93, 104],
N179_L5_BLOCK20_DUCK_032: [10, 20, 18744, 93, 104],
N179_L5_BLOCK20_DUCK_033: [10, 20, 18868,
93, 104
],
N179_L5_BLOCK20_DUCK_034: [10, 20, 18992, 93, 104],
N179_L5_BLOCK20_DUCK_035: [10, 20, 19116, 93, 104],
N179_L5_BLOCK20_DUCK_036: [10, 20, 19240, 93, 104],
N179_L5_BLOCK20_DUCK_037: [10, 20, 19364, 93, 104],
N179_L5_BLOCK20_DUCK_038: [10, 20, 19488, 93, 104],
N183_L5_ISLAND01: [10, 20, 19612, 191.9, 157.4],
N184_L5_ISLAND01_DRAGONFLY_001: [10, 20, 19790, 238, 142],
N184_L5_ISLAND01_DRAGONFLY_002: [10, 20, 19952, 238, 142],
N184_L5_ISLAND01_DRAGONFLY_003: [10, 20, 20114, 238, 142],
N184_L5_ISLAND01_DRAGONFLY_004: [10, 20, 20276, 238, 142],
N184_L5_ISLAND01_DRAGONFLY_005: [10,
20, 20438, 238, 142
],
N184_L5_ISLAND01_DRAGONFLY_006: [10, 20, 20600, 238, 142],
N184_L5_ISLAND01_DRAGONFLY_007: [10, 20, 20762, 238, 142],
N184_L5_ISLAND01_DRAGONFLY_008: [10, 20, 20924, 238, 142],
N184_L5_ISLAND01_DRAGONFLY_009: [10, 20, 21086, 238, 142],
N184_L5_ISLAND01_DRAGONFLY_010: [10, 20, 21248, 238, 142],
N184_L5_ISLAND01_DRAGONFLY_011: [10, 20, 21410, 238, 142],
N184_L5_ISLAND01_DRAGONFLY_012: [10, 20, 21572, 238, 142],
N184_L5_ISLAND01_DRAGONFLY_013: [10, 20, 21734, 238, 142],
N184_L5_ISLAND01_DRAGONFLY_014: [10, 20, 21896, 238, 142],
N184_L5_ISLAND01_DRAGONFLY_015: [10,
20, 22058, 238, 142
],
N184_L5_ISLAND01_DRAGONFLY_016: [10, 20, 22220, 238, 142],
N184_L5_ISLAND01_DRAGONFLY_017: [10, 20, 22382, 238, 142],
N184_L5_ISLAND01_DRAGONFLY_018: [10, 20, 22544, 238, 142],
N184_L5_ISLAND01_DRAGONFLY_019: [10, 20, 22706, 238, 142],
N184_L5_ISLAND01_DRAGONFLY_020: [10, 20, 22868, 238, 142],
N184_L5_ISLAND01_DRAGONFLY_021: [10, 20, 23030, 238, 142],
N184_L5_ISLAND01_DRAGONFLY_022: [10, 20, 23192, 238, 142],
N184_L5_ISLAND01_DRAGONFLY_023: [10, 20, 23354, 238, 142],
N184_L5_ISLAND01_DRAGONFLY_024: [10, 20, 23516, 238, 142],
N184_L5_ISLAND01_DRAGONFLY_025: [10,
20, 23678, 238, 142
],
N184_L5_ISLAND01_DRAGONFLY_026: [10, 20, 23840, 238, 142],
N184_L5_ISLAND01_DRAGONFLY_027: [10, 20, 24002, 238, 142],
N184_L5_ISLAND01_DRAGONFLY_028: [10, 20, 24164, 238, 142],
N184_L5_ISLAND01_DRAGONFLY_029: [10, 20, 24326, 238, 142],
N184_L5_ISLAND01_DRAGONFLY_030: [10, 20, 24488, 238, 142],
N184_L5_ISLAND01_DRAGONFLY_031: [10, 20, 24650, 238, 142],
N184_L5_ISLAND01_DRAGONFLY_032: [10, 20, 24812, 238, 142],
N184_L5_ISLAND01_DRAGONFLY_033: [10, 20, 24974, 238, 142],
N184_L5_ISLAND01_DRAGONFLY_034: [10, 20, 25136, 238, 142],
N184_L5_ISLAND01_DRAGONFLY_035: [10,
20, 25298, 238, 142
],
N184_L5_ISLAND01_DRAGONFLY_036: [10, 20, 25460, 238, 142],
N184_L5_ISLAND01_DRAGONFLY_037: [10, 20, 25622, 238, 142],
N184_L5_ISLAND01_DRAGONFLY_038: [10, 20, 25784, 238, 142],
N184_L5_ISLAND01_DRAGONFLY_039: [10, 20, 25946, 238, 142],
N184_L5_ISLAND01_DRAGONFLY_040: [10, 20, 26108, 238, 142],
N184_L5_ISLAND01_DRAGONFLY_041: [10, 20, 26270, 238, 142],
N184_L5_ISLAND01_DRAGONFLY_042: [10, 20, 26432, 238, 142],
N184_L5_ISLAND01_DRAGONFLY_043: [10, 20, 26594, 238, 142],
N184_L5_ISLAND01_DRAGONFLY_044: [10, 20, 26756, 238, 142],
N184_L5_ISLAND01_DRAGONFLY_045: [10,
20, 26918, 238, 142
],
N184_L5_ISLAND01_DRAGONFLY_046: [10, 20, 27080, 238, 142],
N184_L5_ISLAND01_DRAGONFLY_047: [10, 20, 27242, 238, 142],
N184_L5_ISLAND01_DRAGONFLY_048: [10, 20, 27404, 238, 142],
N184_L5_ISLAND01_DRAGONFLY_049: [10, 20, 27566, 238, 142],
N184_L5_ISLAND01_DRAGONFLY_050: [10, 20, 27728, 238, 142],
N184_L5_ISLAND01_DRAGONFLY_051: [10, 20, 27890, 238, 142],
N184_L5_ISLAND01_DRAGONFLY_052: [10, 20, 28052, 238, 142],
N184_L5_ISLAND01_DRAGONFLY_053: [10, 20, 28214, 238, 142],
N184_L5_ISLAND01_DRAGONFLY_054: [10, 20, 28376, 238, 142],
N184_L5_ISLAND01_DRAGONFLY_055: [10,
20, 28538, 238, 142
],
N184_L5_ISLAND01_DRAGONFLY_056: [10, 20, 28700, 238, 142],
N184_L5_ISLAND01_DRAGONFLY_057: [10, 20, 28862, 238, 142],
N184_L5_ISLAND01_DRAGONFLY_058: [10, 20, 29024, 238, 142],
N184_L5_ISLAND01_DRAGONFLY_059: [10, 20, 29186, 238, 142],
N184_L5_ISLAND01_DRAGONFLY_060: [10, 20, 29348, 238, 142],
N184_L5_ISLAND01_DRAGONFLY_061: [10, 20, 29510, 238, 142],
N184_L5_ISLAND01_DRAGONFLY_062: [10, 20, 29672, 238, 142],
N184_L5_ISLAND01_DRAGONFLY_063: [10, 20, 29834, 238, 142],
N184_L5_ISLAND01_DRAGONFLY_064: [10, 20, 29996, 238, 142],
N184_L5_ISLAND01_DRAGONFLY_065: [10,
20, 30158, 238, 142
],
N184_L5_ISLAND01_DRAGONFLY_066: [10, 20, 30320, 238, 142],
N185_L5_ISLAND02: [10, 20, 30482, 180, 280.7],
N186_L5_ISLAND02_TURBINE_001: [10, 20, 30783, 82, 100],
N186_L5_ISLAND02_TURBINE_002: [10, 20, 30903, 82, 100],
N186_L5_ISLAND02_TURBINE_003: [10, 20, 31023, 82, 100],
N186_L5_ISLAND02_TURBINE_004: [10, 20, 31143, 82, 100],
N186_L5_ISLAND02_TURBINE_005: [10, 20, 31263, 82, 100],
N186_L5_ISLAND02_TURBINE_006: [10, 20, 31383, 82, 100],
N186_L5_ISLAND02_TURBINE_007: [10, 20, 31503, 82, 100],
N186_L5_ISLAND02_TURBINE_008: [10, 20, 31623,
82, 100
],
N186_L5_ISLAND02_TURBINE_009: [10, 20, 31743, 82, 100],
N186_L5_ISLAND02_TURBINE_010: [10, 20, 31863, 82, 100],
N186_L5_ISLAND02_TURBINE_011: [10, 20, 31983, 82, 100],
N187_L5_ISLAND02_WATERFALL_001: [10, 20, 32103, 23, 98],
N187_L5_ISLAND02_WATERFALL_002: [10, 20, 32221, 23, 98],
N187_L5_ISLAND02_WATERFALL_003: [10, 20, 32339, 23, 98],
N187_L5_ISLAND02_WATERFALL_004: [10, 20, 32457, 23, 98],
N187_L5_ISLAND02_WATERFALL_005: [10, 20, 32575, 23, 98],
N187_L5_ISLAND02_WATERFALL_006: [10, 20, 32693, 23, 98],
N187_L5_ISLAND02_WATERFALL_007: [10, 20,
32811, 23, 98
],
N187_L5_ISLAND02_WATERFALL_008: [10, 20, 32929, 23, 98],
N187_L5_ISLAND02_WATERFALL_009: [10, 20, 33047, 23, 98],
N187_L5_ISLAND02_WATERFALL_010: [10, 20, 33165, 23, 98],
N188_L5_LAKE_FROG_002: [10, 20, 33283, 110, 143],
N188_L5_LAKE_FROG_003: [10, 20, 33446, 110, 143],
N188_L5_LAKE_FROG_004: [10, 20, 33609, 110, 143],
N188_L5_LAKE_FROG_006: [10, 20, 33772, 110, 143],
N188_L5_LAKE_FROG_007: [10, 20, 33935, 110, 143],
N188_L5_LAKE_FROG_008: [10, 20, 34098, 110, 143],
N188_L5_LAKE_FROG_009: [10, 20, 34261, 110, 143],
N188_L5_LAKE_FROG_011: [10, 20,
34424, 110, 143
],
N188_L5_LAKE_FROG_013: [10, 20, 34587, 110, 143],
N188_L5_LAKE_FROG_014: [10, 20, 34750, 110, 143],
N188_L5_LAKE_FROG_016: [10, 20, 34913, 110, 143],
N188_L5_LAKE_FROG_017: [10, 20, 35076, 110, 143],
N188_L5_LAKE_FROG_018: [10, 20, 35239, 110, 143],
N188_L5_LAKE_FROG_019: [10, 20, 35402, 110, 143],
N188_L5_LAKE_FROG_020: [10, 20, 35565, 110, 143],
N188_L5_LAKE_FROG_021: [10, 20, 35728, 110, 143],
N188_L5_LAKE_FROG_022: [10, 20, 35891, 110, 143],
N188_L5_LAKE_FROG_023: [10, 20, 36054, 110, 143],
N188_L5_LAKE_FROG_024: [10, 20, 36217, 110, 143],
N191_L5_WATER_LILLY_001: [10,
20, 36380, 48, 26
],
N191_L5_WATER_LILLY_002: [10, 20, 36426, 48, 26],
N191_L5_WATER_LILLY_003: [10, 20, 36472, 48, 26],
N191_L5_WATER_LILLY_004: [10, 20, 36518, 48, 26],
N191_L5_WATER_LILLY_005: [10, 20, 36564, 48, 26],
N191_L5_WATER_LILLY_006: [10, 20, 36610, 48, 26],
N191_L5_WATER_LILLY_007: [10, 20, 36656, 48, 26],
N191_L5_WATER_LILLY_008: [10, 20, 36702, 48, 26],
N191_L5_WATER_LILLY_009: [10, 20, 36748, 48, 26],
N191_L5_WATER_LILLY_010: [10, 20, 36794, 48, 26],
N191_L5_WATER_LILLY_011: [10, 20, 36840, 48, 26],
N191_L5_WATER_LILLY_012: [10, 20, 36886, 48, 26],
N191_L5_WATER_LILLY_013: [10,
20, 36932, 48, 26
],
N191_L5_WATER_LILLY_014: [10, 20, 36978, 48, 26],
N191_L5_WATER_LILLY_015: [10, 20, 37024, 48, 26],
N191_L5_WATER_LILLY_016: [10, 20, 37070, 48, 26],
N191_L5_WATER_LILLY_017: [10, 20, 37116, 48, 26],
N191_L5_WATER_LILLY_018: [10, 20, 37162, 48, 26],
N191_L5_WATER_LILLY_019: [10, 20, 37208, 48, 26],
N191_L5_WATER_LILLY_020: [10, 20, 37254, 48, 26],
N191_L5_WATER_LILLY_021: [10, 20, 37300, 48, 26],
N192_L5_ISLAND02_STREAM_001: [10, 20, 37346, 96, 26],
N192_L5_ISLAND02_STREAM_002: [10, 20, 37392, 96, 26],
N192_L5_ISLAND02_STREAM_003: [10, 20, 37438,
96, 26
],
N192_L5_ISLAND02_STREAM_004: [10, 20, 37484, 96, 26],
N192_L5_ISLAND02_STREAM_005: [10, 20, 37530, 96, 26],
N192_L5_ISLAND02_STREAM_006: [10, 20, 37576, 96, 26],
N192_L5_ISLAND02_STREAM_007: [10, 20, 37622, 96, 26],
N192_L5_ISLAND02_STREAM_008: [10, 20, 37668, 96, 26],
N192_L5_ISLAND02_STREAM_009: [10, 20, 37714, 96, 26],
N192_L5_ISLAND02_STREAM_010: [10, 20, 37760, 96, 26],
N192_L5_ISLAND02_STREAM_011: [10, 20, 37806, 96, 26],
N192_L5_ISLAND02_STREAM_012: [10, 20, 37852, 96, 26],
N192_L5_ISLAND02_STREAM_013: [10, 20, 37898, 96, 26],
N192_L5_ISLAND02_STREAM_014: [10,
20, 37944, 96, 26
],
N192_L5_ISLAND02_STREAM_015: [10, 20, 37990, 96, 26],
N192_L5_ISLAND02_STREAM_016: [10, 20, 38036, 96, 26],
N192_L5_ISLAND02_STREAM_017: [10, 20, 38082, 96, 26],
N192_L5_ISLAND02_STREAM_018: [10, 20, 38128, 96, 26],
N192_L5_ISLAND02_STREAM_019: [10, 20, 38174, 96, 26],
N192_L5_ISLAND02_STREAM_020: [10, 20, 38220, 96, 26],
N192_L5_ISLAND02_STREAM_021: [10, 20, 38266, 96, 26],
N192_L5_ISLAND02_STREAM_022: [10, 20, 38312, 96, 26],
N192_L5_ISLAND02_STREAM_023: [10, 20, 38358, 96, 26],
N192_L5_ISLAND02_STREAM_024: [10, 20, 38404, 96, 26],
N192_L5_ISLAND02_STREAM_025: [10,
20, 38450, 96, 26
],
N192_L5_ISLAND02_STREAM_026: [10, 20, 38496, 96, 26],
N192_L5_ISLAND02_STREAM_027: [10, 20, 38542, 96, 26],
N192_L5_ISLAND02_STREAM_028: [10, 20, 38588, 96, 26],
N192_L5_ISLAND02_STREAM_029: [10, 20, 38634, 96, 26],
N192_L5_ISLAND02_STREAM_030: [10, 20, 38680, 96, 26],
N192_L5_ISLAND02_STREAM_031: [10, 20, 38726, 96, 26],
N192_L5_ISLAND02_STREAM_032: [10, 20, 38772, 96, 26],
N192_L5_ISLAND02_STREAM_033: [10, 20, 38818, 96, 26],
N193_L6_CLOUD01: [11, 20, 20, 104.6, 91.5],
N194_L6_CLOUD02: [11, 20, 132, 97.4, 58.2],
N195_L6_CLOUD03: [11, 20, 211,
42.4, 22.2
],
N196_L6_CLOUD04: [11, 20, 254, 52.4, 82.3],
N197_L6_CLOUD05: [11, 20, 357, 122.5, 148.6],
N198_L6_CLOUD06: [11, 20, 526, 56.4, 60.3],
N199_L6_CLOUD07: [11, 20, 607, 121.5, 102.6],
N200_L6_ISLAND04_SHEEP_004: [11, 20, 730, 59, 80],
N200_L6_ISLAND04_SHEEP_005: [11, 20, 830, 59, 80],
N200_L6_ISLAND04_SHEEP_006: [11, 20, 930, 59, 80],
N200_L6_ISLAND04_SHEEP_007: [11, 20, 1030, 59, 80],
N200_L6_ISLAND04_SHEEP_008: [11, 20, 1130, 59, 80],
N200_L6_ISLAND04_SHEEP_009: [11, 20, 1230, 59, 80],
N200_L6_ISLAND04_SHEEP_010: [11, 20, 1330, 59, 80],
N200_L6_ISLAND04_SHEEP_011: [11,
20, 1430, 59, 80
],
N200_L6_ISLAND04_SHEEP_012: [11, 20, 1530, 59, 80],
N200_L6_ISLAND04_SHEEP_013: [11, 20, 1630, 59, 80],
N200_L6_ISLAND04_SHEEP_014: [11, 20, 1730, 59, 80],
N200_L6_ISLAND04_SHEEP_015: [11, 20, 1830, 59, 80],
N200_L6_ISLAND04_SHEEP_016: [11, 20, 1930, 59, 80],
N200_L6_ISLAND04_SHEEP_017: [11, 20, 2030, 59, 80],
N200_L6_ISLAND04_SHEEP_018: [11, 20, 2130, 59, 80],
N200_L6_ISLAND04_SHEEP_019: [11, 20, 2230, 59, 80],
N200_L6_ISLAND04_SHEEP_020: [11, 20, 2330, 59, 80],
N200_L6_ISLAND04_SHEEP_021: [11, 20, 2430, 59, 80],
N200_L6_ISLAND04_SHEEP_022: [11,
20, 2530, 59, 80
],
N200_L6_ISLAND04_SHEEP_023: [11, 20, 2630, 59, 80],
N200_L6_ISLAND04_SHEEP_024: [11, 20, 2730, 59, 80],
N200_L6_ISLAND04_SHEEP_025: [11, 20, 2830, 59, 80],
N202_L6_ISLAND03_STRINGHAY_001: [11, 20, 2930, 41, 184],
N202_L6_ISLAND03_STRINGHAY_002: [11, 20, 3134, 41, 184],
N202_L6_ISLAND03_STRINGHAY_003: [11, 20, 3338, 41, 184],
N202_L6_ISLAND03_STRINGHAY_004: [11, 20, 3542, 41, 184],
N202_L6_ISLAND03_STRINGHAY_005: [11, 20, 3746, 41, 184],
N202_L6_ISLAND03_STRINGHAY_006: [11, 20, 3950, 41, 184],
N202_L6_ISLAND03_STRINGHAY_007: [11, 20, 4154,
41, 184
],
N202_L6_ISLAND03_STRINGHAY_008: [11, 20, 4358, 41, 184],
N202_L6_ISLAND03_STRINGHAY_009: [11, 20, 4562, 41, 184],
N202_L6_ISLAND03_STRINGHAY_010: [11, 20, 4766, 41, 184],
N205_L6_ISLAND01_PIG_001: [11, 20, 4970, 137, 117],
N205_L6_ISLAND01_PIG_002: [11, 20, 5107, 137, 117],
N205_L6_ISLAND01_PIG_003: [11, 20, 5244, 137, 117],
N205_L6_ISLAND01_PIG_004: [11, 20, 5381, 137, 117],
N205_L6_ISLAND01_PIG_005: [11, 20, 5518, 137, 117],
N205_L6_ISLAND01_PIG_006: [11, 20, 5655, 137, 117],
N205_L6_ISLAND01_PIG_007: [11, 20, 5792, 137, 117],
N205_L6_ISLAND01_PIG_008: [11,
20, 5929, 137, 117
],
N205_L6_ISLAND01_PIG_009: [11, 20, 6066, 137, 117],
N205_L6_ISLAND01_PIG_010: [11, 20, 6203, 137, 117],
N205_L6_ISLAND01_PIG_011: [11, 20, 6340, 137, 117],
N205_L6_ISLAND01_PIG_012: [11, 20, 6477, 137, 117],
N205_L6_ISLAND01_PIG_013: [11, 20, 6614, 137, 117],
N205_L6_ISLAND01_PIG_014: [11, 20, 6751, 137, 117],
N205_L6_ISLAND01_PIG_015: [11, 20, 6888, 137, 117],
N205_L6_ISLAND01_PIG_016: [11, 20, 7025, 137, 117],
N205_L6_ISLAND01_PIG_017: [11, 20, 7162, 137, 117],
N205_L6_ISLAND01_PIG_018: [11, 20, 7299, 137, 117],
N205_L6_ISLAND01_PIG_019: [11,
20, 7436, 137, 117
],
N205_L6_ISLAND01_PIG_020: [11, 20, 7573, 137, 117],
N205_L6_ISLAND01_PIG_021: [11, 20, 7710, 137, 117],
N205_L6_ISLAND01_PIG_022: [11, 20, 7847, 137, 117],
N205_L6_ISLAND01_PIG_023: [11, 20, 7984, 137, 117],
N205_L6_ISLAND01_PIG_024: [11, 20, 8121, 137, 117],
N205_L6_ISLAND01_PIG_025: [11, 20, 8258, 137, 117],
N205_L6_ISLAND01_PIG_026: [11, 20, 8395, 137, 117],
N205_L6_ISLAND01_PIG_027: [11, 20, 8532, 137, 117],
N205_L6_ISLAND01_PIG_028: [11, 20, 8669, 137, 117],
N205_L6_ISLAND01_PIG_029: [11, 20, 8806, 137, 117],
N205_L6_ISLAND01_PIG_030: [11,
20, 8943, 137, 117
],
N205_L6_ISLAND01_PIG_031: [11, 20, 9080, 137, 117],
N205_L6_ISLAND01_PIG_032: [11, 20, 9217, 137, 117],
N205_L6_ISLAND01_PIG_033: [11, 20, 9354, 137, 117],
N205_L6_ISLAND01_PIG_034: [11, 20, 9491, 137, 117],
N205_L6_ISLAND01_PIG_035: [11, 20, 9628, 137, 117],
N205_L6_ISLAND01_PIG_036: [11, 20, 9765, 137, 117],
N205_L6_ISLAND01_PIG_037: [11, 20, 9902, 137, 117],
N205_L6_ISLAND01_PIG_038: [11, 20, 10039, 137, 117],
N205_L6_ISLAND01_PIG_039: [11, 20, 10176, 137, 117],
N205_L6_ISLAND01_PIG_040: [11, 20, 10313, 137, 117],
N205_L6_ISLAND01_PIG_041: [11,
20, 10450, 137, 117
],
N205_L6_ISLAND01_PIG_042: [11, 20, 10587, 137, 117],
N205_L6_ISLAND01_PIG_043: [11, 20, 10724, 137, 117],
N205_L6_ISLAND01_PIG_044: [11, 20, 10861, 137, 117],
N205_L6_ISLAND01_PIG_045: [11, 20, 10998, 137, 117],
N205_L6_ISLAND01_PIG_046: [11, 20, 11135, 137, 117],
N205_L6_ISLAND01_PIG_047: [11, 20, 11272, 137, 117],
N205_L6_ISLAND01_PIG_048: [11, 20, 11409, 137, 117],
N205_L6_ISLAND01_PIG_049: [11, 20, 11546, 137, 117],
N205_L6_ISLAND01_PIG_050: [11, 20, 11683, 137, 117],
N205_L6_ISLAND01_PIG_051: [11, 20, 11820, 137, 117],
N205_L6_ISLAND01_PIG_052: [11,
20, 11957, 137, 117
],
N205_L6_ISLAND01_PIG_053: [11, 20, 12094, 137, 117],
N205_L6_ISLAND01_PIG_054: [11, 20, 12231, 137, 117],
N205_L6_ISLAND01_PIG_055: [11, 20, 12368, 137, 117],
N205_L6_ISLAND01_PIG_056: [11, 20, 12505, 137, 117],
N205_L6_ISLAND01_PIG_057: [11, 20, 12642, 137, 117],
N205_L6_ISLAND01_PIG_058: [11, 20, 12779, 137, 117],
N205_L6_ISLAND01_PIG_059: [11, 20, 12916, 137, 117],
N205_L6_ISLAND01_PIG_060: [11, 20, 13053, 137, 117],
N205_L6_ISLAND01_PIG_061: [11, 20, 13190, 137, 117],
N205_L6_ISLAND01_PIG_062: [11, 20, 13327, 137, 117],
N205_L6_ISLAND01_PIG_063: [11,
20, 13464, 137, 117
],
N210_L6_BLOCK10_MILL_001: [11, 20, 13601, 66, 142],
N210_L6_BLOCK10_MILL_002: [11, 20, 13763, 66, 142],
N210_L6_BLOCK10_MILL_003: [11, 20, 13925, 66, 142],
N210_L6_BLOCK10_MILL_004: [11, 20, 14087, 66, 142],
N210_L6_BLOCK10_MILL_005: [11, 20, 14249, 66, 142],
N210_L6_BLOCK10_MILL_006: [11, 20, 14411, 66, 142],
N210_L6_BLOCK10_MILL_007: [11, 20, 14573, 66, 142],
N210_L6_BLOCK10_MILL_008: [11, 20, 14735, 66, 142],
N210_L6_BLOCK10_MILL_009: [11, 20, 14897, 66, 142],
N210_L6_BLOCK10_MILL_010: [11, 20, 15059, 66, 142],
N210_L6_BLOCK10_MILL_011: [11,
20, 15221, 66, 142
],
N210_L6_BLOCK10_MILL_012: [11, 20, 15383, 66, 142],
N210_L6_BLOCK10_MILL_013: [11, 20, 15545, 66, 142],
N210_L6_BLOCK10_MILL_014: [11, 20, 15707, 66, 142],
N210_L6_BLOCK10_MILL_015: [11, 20, 15869, 66, 142],
N210_L6_BLOCK10_MILL_016: [11, 20, 16031, 66, 142],
N210_L6_BLOCK10_MILL_017: [11, 20, 16193, 66, 142],
N210_L6_BLOCK10_MILL_018: [11, 20, 16355, 66, 142],
N210_L6_BLOCK10_MILL_019: [11, 20, 16517, 66, 142],
N210_L6_BLOCK10_MILL_020: [11, 20, 16679, 66, 142],
N210_L6_BLOCK10_MILL_021: [11, 20, 16841, 66, 142],
N210_L6_BLOCK10_MILL_022: [11,
20, 17003, 66, 142
],
N210_L6_BLOCK10_MILL_023: [11, 20, 17165, 66, 142],
N211_L6_BLOCK11_BUCKETS_001: [11, 20, 17327, 66, 60],
N211_L6_BLOCK11_BUCKETS_002: [11, 20, 17407, 66, 60],
N211_L6_BLOCK11_BUCKETS_003: [11, 20, 17487, 66, 60],
N211_L6_BLOCK11_BUCKETS_004: [11, 20, 17567, 66, 60],
N211_L6_BLOCK11_BUCKETS_005: [11, 20, 17647, 66, 60],
N211_L6_BLOCK11_BUCKETS_006: [11, 20, 17727, 66, 60],
N211_L6_BLOCK11_BUCKETS_007: [11, 20, 17807, 66, 60],
N211_L6_BLOCK11_BUCKETS_008: [11, 20, 17887, 66, 60],
N211_L6_BLOCK11_BUCKETS_009: [11, 20, 17967, 66, 60],
N211_L6_BLOCK11_BUCKETS_010: [11,
20, 18047, 66, 60
],
N211_L6_BLOCK11_BUCKETS_011: [11, 20, 18127, 66, 60],
N211_L6_BLOCK11_BUCKETS_012: [11, 20, 18207, 66, 60],
N211_L6_BLOCK11_BUCKETS_013: [11, 20, 18287, 66, 60],
N211_L6_BLOCK11_BUCKETS_014: [11, 20, 18367, 66, 60],
N211_L6_BLOCK11_BUCKETS_015: [11, 20, 18447, 66, 60],
N211_L6_BLOCK11_BUCKETS_016: [11, 20, 18527, 66, 60],
N211_L6_BLOCK11_BUCKETS_017: [11, 20, 18607, 66, 60],
N211_L6_BLOCK11_BUCKETS_018: [11, 20, 18687, 66, 60],
N211_L6_BLOCK11_BUCKETS_019: [11, 20, 18767, 66, 60],
N211_L6_BLOCK11_BUCKETS_020: [11, 20, 18847, 66, 60],
N211_L6_BLOCK11_BUCKETS_021: [11,
20, 18927, 66, 60
],
N211_L6_BLOCK11_BUCKETS_022: [11, 20, 19007, 66, 60],
N211_L6_BLOCK11_BUCKETS_023: [11, 20, 19087, 66, 60],
N211_L6_BLOCK11_BUCKETS_024: [11, 20, 19167, 66, 60],
N211_L6_BLOCK11_BUCKETS_025: [11, 20, 19247, 66, 60],
N211_L6_BLOCK11_BUCKETS_026: [11, 20, 19327, 66, 60],
N212_L6_BLOCK12_SHEEP_001: [11, 20, 19407, 59, 82],
N212_L6_BLOCK12_SHEEP_002: [11, 20, 19509, 59, 82],
N212_L6_BLOCK12_SHEEP_003: [11, 20, 19611, 59, 82],
N212_L6_BLOCK12_SHEEP_004: [11, 20, 19713, 59, 82],
N212_L6_BLOCK12_SHEEP_005: [11, 20, 19815, 59, 82],
N212_L6_BLOCK12_SHEEP_006: [11,
20, 19917, 59, 82
],
N212_L6_BLOCK12_SHEEP_007: [11, 20, 20019, 59, 82],
N212_L6_BLOCK12_SHEEP_008: [11, 20, 20121, 59, 82],
N212_L6_BLOCK12_SHEEP_009: [11, 20, 20223, 59, 82],
N212_L6_BLOCK12_SHEEP_010: [11, 20, 20325, 59, 82],
N212_L6_BLOCK12_SHEEP_011: [11, 20, 20427, 59, 82],
N212_L6_BLOCK12_SHEEP_012: [11, 20, 20529, 59, 82],
N212_L6_BLOCK12_SHEEP_013: [11, 20, 20631, 59, 82],
N212_L6_BLOCK12_SHEEP_014: [11, 20, 20733, 59, 82],
N212_L6_BLOCK12_SHEEP_015: [11, 20, 20835, 59, 82],
N212_L6_BLOCK12_SHEEP_016: [11, 20, 20937, 59, 82],
N212_L6_BLOCK12_SHEEP_017: [11,
20, 21039, 59, 82
],
N212_L6_BLOCK12_SHEEP_018: [11, 20, 21141, 59, 82],
N212_L6_BLOCK12_SHEEP_019: [11, 20, 21243, 59, 82],
N212_L6_BLOCK12_SHEEP_020: [11, 20, 21345, 59, 82],
N212_L6_BLOCK12_SHEEP_021: [11, 20, 21447, 59, 82],
N212_L6_BLOCK12_SHEEP_022: [11, 20, 21549, 59, 82],
N212_L6_BLOCK12_SHEEP_023: [11, 20, 21651, 59, 82],
N212_L6_BLOCK12_SHEEP_024: [11, 20, 21753, 59, 82],
N212_L6_BLOCK12_SHEEP_025: [11, 20, 21855, 59, 82],
N212_L6_BLOCK12_SHEEP_026: [11, 20, 21957, 59, 82],
N213_L6_BLOCK13_15_CHICKS_001: [11, 20, 22059, 80, 62],
N213_L6_BLOCK13_15_CHICKS_002: [11,
20, 22141, 80, 62
],
N213_L6_BLOCK13_15_CHICKS_003: [11, 20, 22223, 80, 62],
N213_L6_BLOCK13_15_CHICKS_004: [11, 20, 22305, 80, 62],
N213_L6_BLOCK13_15_CHICKS_005: [11, 20, 22387, 80, 62],
N213_L6_BLOCK13_15_CHICKS_006: [11, 20, 22469, 80, 62],
N213_L6_BLOCK13_15_CHICKS_007: [11, 20, 22551, 80, 62],
N213_L6_BLOCK13_15_CHICKS_008: [11, 20, 22633, 80, 62],
N213_L6_BLOCK13_15_CHICKS_009: [11, 20, 22715, 80, 62],
N213_L6_BLOCK13_15_CHICKS_010: [11, 20, 22797, 80, 62],
N213_L6_BLOCK13_15_CHICKS_011: [11, 20, 22879, 80, 62],
N213_L6_BLOCK13_15_CHICKS_012: [11, 20,
22961, 80, 62
],
N213_L6_BLOCK13_15_CHICKS_013: [11, 20, 23043, 80, 62],
N213_L6_BLOCK13_15_CHICKS_014: [11, 20, 23125, 80, 62],
N213_L6_BLOCK13_15_CHICKS_015: [11, 20, 23207, 80, 62],
N213_L6_BLOCK13_15_CHICKS_016: [11, 20, 23289, 80, 62],
N213_L6_BLOCK13_15_CHICKS_017: [11, 20, 23371, 80, 62],
N213_L6_BLOCK13_15_CHICKS_018: [11, 20, 23453, 80, 62],
N213_L6_BLOCK13_15_CHICKS_019: [11, 20, 23535, 80, 62],
N213_L6_BLOCK13_15_CHICKS_020: [11, 20, 23617, 80, 62],
N213_L6_BLOCK13_15_CHICKS_021: [11, 20, 23699, 80, 62],
N213_L6_BLOCK13_15_CHICKS_022: [11, 20, 23781,
80, 62
],
N213_L6_BLOCK13_15_CHICKS_023: [11, 20, 23617, 80, 62],
N214_L6_BLOCK14_CHICKEN_001: [11, 20, 23863, 41, 72],
N214_L6_BLOCK14_CHICKEN_002: [11, 20, 23955, 41, 72],
N214_L6_BLOCK14_CHICKEN_003: [11, 20, 24047, 41, 72],
N214_L6_BLOCK14_CHICKEN_004: [11, 20, 24139, 41, 72],
N214_L6_BLOCK14_CHICKEN_005: [11, 20, 24231, 41, 72],
N214_L6_BLOCK14_CHICKEN_006: [11, 20, 24323, 41, 72],
N214_L6_BLOCK14_CHICKEN_007: [11, 20, 24415, 41, 72],
N214_L6_BLOCK14_CHICKEN_008: [11, 20, 24507, 41, 72],
N214_L6_BLOCK14_CHICKEN_009: [11, 20, 24599, 41, 72],
N214_L6_BLOCK14_CHICKEN_010: [11,
20, 24691, 41, 72
],
N214_L6_BLOCK14_CHICKEN_011: [11, 20, 24783, 41, 72],
N214_L6_BLOCK14_CHICKEN_012: [11, 20, 24875, 41, 72],
N214_L6_BLOCK14_CHICKEN_013: [11, 20, 24967, 41, 72],
N214_L6_BLOCK14_CHICKEN_014: [11, 20, 25059, 41, 72],
N214_L6_BLOCK14_CHICKEN_015: [11, 20, 25151, 41, 72],
N214_L6_BLOCK14_CHICKEN_016: [11, 20, 25243, 41, 72],
N214_L6_BLOCK14_CHICKEN_017: [11, 20, 25335, 41, 72],
N214_L6_BLOCK14_CHICKEN_018: [11, 20, 25427, 41, 72],
N214_L6_BLOCK14_CHICKEN_019: [11, 20, 25519, 41, 72],
N214_L6_BLOCK14_CHICKEN_020: [11, 20, 25611, 41, 72],
N214_L6_BLOCK14_CHICKEN_021: [11,
20, 25703, 41, 72
],
N214_L6_BLOCK14_CHICKEN_022: [11, 20, 25795, 41, 72],
N214_L6_BLOCK14_CHICKEN_023: [11, 20, 25887, 41, 72],
N214_L6_BLOCK14_CHICKEN_024: [11, 20, 25979, 41, 72],
N214_L6_BLOCK14_CHICKEN_025: [11, 20, 26071, 41, 72],
N214_L6_BLOCK14_CHICKEN_026: [11, 20, 26163, 41, 72],
N214_L6_BLOCK14_CHICKEN_027: [11, 20, 26255, 41, 72],
N214_L6_BLOCK14_CHICKEN_028: [11, 20, 26347, 41, 72],
N214_L6_BLOCK14_CHICKEN_029: [11, 20, 26439, 41, 72],
N214_L6_BLOCK14_CHICKEN_030: [11, 20, 26531, 41, 72],
N214_L6_BLOCK14_CHICKEN_031: [11, 20, 26623, 41, 72],
N214_L6_BLOCK14_CHICKEN_032: [11,
20, 24783, 41, 72
],
N214_L6_BLOCK14_CHICKEN_033: [11, 20, 26715, 41, 72],
N214_L6_BLOCK14_CHICKEN_034: [11, 20, 26807, 41, 72],
N214_L6_BLOCK14_CHICKEN_035: [11, 20, 26899, 41, 72],
N214_L6_BLOCK14_CHICKEN_036: [11, 20, 26991, 41, 72],
N214_L6_BLOCK14_CHICKEN_037: [11, 20, 27083, 41, 72],
N214_L6_BLOCK14_CHICKEN_038: [11, 20, 24783, 41, 72],
N214_L6_BLOCK14_CHICKEN_039: [11, 20, 27175, 41, 72],
N214_L6_BLOCK14_CHICKEN_040: [11, 20, 27267, 41, 72],
N214_L6_BLOCK14_CHICKEN_041: [11, 20, 27359, 41, 72],
N214_L6_BLOCK14_CHICKEN_042: [11, 20, 25427, 41, 72],
N215_L6_BLOCK16_18_PIGLET_001: [11,
20, 27451, 117, 92
],
N215_L6_BLOCK16_18_PIGLET_002: [11, 20, 27563, 117, 92],
N215_L6_BLOCK16_18_PIGLET_003: [11, 20, 27675, 117, 92],
N215_L6_BLOCK16_18_PIGLET_004: [11, 20, 27787, 117, 92],
N215_L6_BLOCK16_18_PIGLET_005: [11, 20, 27899, 117, 92],
N215_L6_BLOCK16_18_PIGLET_006: [11, 20, 28011, 117, 92],
N215_L6_BLOCK16_18_PIGLET_007: [11, 20, 28123, 117, 92],
N215_L6_BLOCK16_18_PIGLET_008: [11, 20, 28235, 117, 92],
N215_L6_BLOCK16_18_PIGLET_009: [11, 20, 28347, 117, 92],
N215_L6_BLOCK16_18_PIGLET_010: [11, 20, 28459, 117, 92],
N215_L6_BLOCK16_18_PIGLET_011: [11,
20, 28571, 117, 92
],
N215_L6_BLOCK16_18_PIGLET_012: [11, 20, 28683, 117, 92],
N215_L6_BLOCK16_18_PIGLET_013: [11, 20, 28795, 117, 92],
N215_L6_BLOCK16_18_PIGLET_014: [11, 20, 28907, 117, 92],
N215_L6_BLOCK16_18_PIGLET_015: [11, 20, 29019, 117, 92],
N215_L6_BLOCK16_18_PIGLET_016: [11, 20, 29131, 117, 92],
N215_L6_BLOCK16_18_PIGLET_017: [11, 20, 29243, 117, 92],
N215_L6_BLOCK16_18_PIGLET_018: [11, 20, 29355, 117, 92],
N215_L6_BLOCK16_18_PIGLET_019: [11, 20, 29467, 117, 92],
N215_L6_BLOCK16_18_PIGLET_020: [11, 20, 29579, 117, 92],
N215_L6_BLOCK16_18_PIGLET_021: [11,
20, 29691, 117, 92
],
N215_L6_BLOCK16_18_PIGLET_022: [11, 20, 29803, 117, 92],
N215_L6_BLOCK16_18_PIGLET_023: [11, 20, 29915, 117, 92],
N215_L6_BLOCK16_18_PIGLET_024: [11, 20, 30027, 117, 92],
N215_L6_BLOCK16_18_PIGLET_025: [11, 20, 30139, 117, 92],
N215_L6_BLOCK16_18_PIGLET_026: [11, 20, 30251, 117, 92],
N215_L6_BLOCK16_18_PIGLET_027: [11, 20, 30363, 117, 92],
N215_L6_BLOCK16_18_PIGLET_028: [11, 20, 30475, 117, 92],
N215_L6_BLOCK16_18_PIGLET_029: [11, 20, 30587, 117, 92],
N215_L6_BLOCK16_18_PIGLET_030: [11, 20, 30699, 117, 92],
N215_L6_BLOCK16_18_PIGLET_031: [11,
20, 30811, 117, 92
],
N215_L6_BLOCK16_18_PIGLET_032: [11, 20, 30923, 117, 92],
N215_L6_BLOCK16_18_PIGLET_033: [11, 20, 31035, 117, 92],
N215_L6_BLOCK16_18_PIGLET_034: [11, 20, 31147, 117, 92],
N215_L6_BLOCK16_18_PIGLET_035: [11, 20, 31259, 117, 92],
N215_L6_BLOCK16_18_PIGLET_036: [11, 20, 31371, 117, 92],
N215_L6_BLOCK16_18_PIGLET_037: [11, 20, 31483, 117, 92],
N215_L6_BLOCK16_18_PIGLET_038: [11, 20, 30923, 117, 92],
N215_L6_BLOCK16_18_PIGLET_039: [11, 20, 31595, 117, 92],
N215_L6_BLOCK16_18_PIGLET_040: [11, 20, 31707, 117, 92],
N215_L6_BLOCK16_18_PIGLET_041: [11,
20, 30699, 117, 92
],
N216_L6_BLOCK17_PIG_001: [11, 20, 31819, 137, 105],
N216_L6_BLOCK17_PIG_002: [11, 20, 31944, 137, 105],
N216_L6_BLOCK17_PIG_003: [11, 20, 32069, 137, 105],
N216_L6_BLOCK17_PIG_004: [11, 20, 32194, 137, 105],
N216_L6_BLOCK17_PIG_005: [11, 20, 32319, 137, 105],
N216_L6_BLOCK17_PIG_006: [11, 20, 32444, 137, 105],
N216_L6_BLOCK17_PIG_007: [11, 20, 32569, 137, 105],
N216_L6_BLOCK17_PIG_008: [11, 20, 32694, 137, 105],
N216_L6_BLOCK17_PIG_009: [11, 20, 32819, 137, 105],
N216_L6_BLOCK17_PIG_010: [11, 20, 32944, 137, 105],
N216_L6_BLOCK17_PIG_011: [11,
20, 33069, 137, 105
],
N216_L6_BLOCK17_PIG_012: [11, 20, 33194, 137, 105],
N216_L6_BLOCK17_PIG_013: [11, 20, 33319, 137, 105],
N216_L6_BLOCK17_PIG_014: [11, 20, 33444, 137, 105],
N216_L6_BLOCK17_PIG_015: [11, 20, 33569, 137, 105],
N216_L6_BLOCK17_PIG_016: [11, 20, 33694, 137, 105],
N216_L6_BLOCK17_PIG_017: [11, 20, 33819, 137, 105],
N216_L6_BLOCK17_PIG_018: [11, 20, 33944, 137, 105],
N216_L6_BLOCK17_PIG_019: [11, 20, 34069, 137, 105],
N216_L6_BLOCK17_PIG_020: [11, 20, 34194, 137, 105],
N216_L6_BLOCK17_PIG_021: [11, 20, 34319, 137, 105],
N216_L6_BLOCK17_PIG_022: [11,
20, 34444, 137, 105
],
N216_L6_BLOCK17_PIG_023: [11, 20, 34569, 137, 105],
N216_L6_BLOCK17_PIG_024: [11, 20, 34694, 137, 105],
N216_L6_BLOCK17_PIG_025: [11, 20, 34819, 137, 105],
N216_L6_BLOCK17_PIG_026: [11, 20, 34944, 137, 105],
N216_L6_BLOCK17_PIG_027: [11, 20, 35069, 137, 105],
N216_L6_BLOCK17_PIG_028: [11, 20, 35194, 137, 105],
N216_L6_BLOCK17_PIG_029: [11, 20, 35319, 137, 105],
N216_L6_BLOCK17_PIG_030: [11, 20, 35444, 137, 105],
N216_L6_BLOCK17_PIG_031: [11, 20, 35569, 137, 105],
N218_L6_BLOCK21_FLOWER_001: [11, 20, 35694, 39, 25],
N218_L6_BLOCK21_FLOWER_002: [11,
20, 35739, 39, 25
],
N218_L6_BLOCK21_FLOWER_003: [11, 20, 35784, 39, 25],
N218_L6_BLOCK21_FLOWER_004: [11, 20, 35829, 39, 25],
N218_L6_BLOCK21_FLOWER_005: [11, 20, 35874, 39, 25],
N218_L6_BLOCK21_FLOWER_006: [11, 20, 35919, 39, 25],
N218_L6_BLOCK21_FLOWER_007: [11, 20, 35964, 39, 25],
N218_L6_BLOCK21_FLOWER_008: [11, 20, 36009, 39, 25],
N219_L6_BLOCK21_FENCE_001: [11, 20, 36054, 45, 63],
N219_L6_BLOCK21_FENCE_002: [11, 20, 36137, 45, 63],
N219_L6_BLOCK21_FENCE_003: [11, 20, 36220, 45, 63],
N219_L6_BLOCK21_FENCE_004: [11, 20, 36303, 45, 63],
N219_L6_BLOCK21_FENCE_005: [11,
20, 36386, 45, 63
],
N219_L6_BLOCK21_FENCE_006: [11, 20, 36469, 45, 63],
N219_L6_BLOCK21_FENCE_007: [11, 20, 36552, 45, 63],
N219_L6_BLOCK21_FENCE_008: [11, 20, 36635, 45, 63],
N219_L6_BLOCK21_FENCE_009: [11, 20, 36718, 45, 63],
N219_L6_BLOCK21_FENCE_010: [11, 20, 36801, 45, 63],
N219_L6_BLOCK21_FENCE_011: [11, 20, 36884, 45, 63],
N219_L6_BLOCK21_FENCE_012: [11, 20, 36967, 45, 63],
PIG_ISLAND: [11, 20, 37200, 171.1, 124.4],
PLANT_001: [3, 20, 20, 41, 51],
PLANT_002: [3, 20, 91, 41, 51],
PLANT_003: [3, 20, 162, 41, 51],
PLANT_004: [3, 20, 233, 41, 51],
PLANT_005: [3, 20, 304,
41, 51
],
PLANT_006: [3, 20, 375, 41, 51],
PLANT_007: [3, 20, 446, 41, 51],
PLANT_008: [3, 20, 517, 41, 51],
PLANT_009: [3, 20, 588, 41, 51],
PLANT_010: [3, 20, 659, 41, 51],
PLANT_011: [3, 20, 730, 41, 51],
PLANT_012: [3, 20, 801, 41, 51],
PLANT_013: [3, 20, 872, 41, 51],
PLANT_014: [3, 20, 943, 41, 51],
PLANT_015: [3, 20, 1014, 41, 51],
PLANT_016: [3, 20, 1085, 41, 51],
PLANT_017: [3, 20, 1156, 41, 51],
PLANT_018: [3, 20, 1227, 41, 51],
POND_ISLAND: [11, 20, 37345, 238.5, 276.9],
PURPLE_DARK_LEFT_0: [1, 20, 18361, 128, 128],
PURPLE_DARK_LEFT_1: [1, 20, 18509, 128, 128],
PURPLE_DARK_LEFT_2: [1,
20, 18657, 128, 128
],
PURPLE_DARK_LEFT_3: [1, 20, 18805, 128, 128],
PURPLE_DARK_LEFT_4: [1, 20, 18953, 128, 128],
PURPLE_DARK_LEFT_5: [1, 20, 19101, 128, 128],
PURPLE_DARK_LEFT_6: [1, 20, 19249, 128, 128],
PURPLE_DARK_LEFT_7: [1, 20, 19397, 128, 128],
PURPLE_DARK_LEFT_8: [1, 20, 19545, 128, 128],
PURPLE_DARK_RIGHT_0: [1, 20, 19693, 128, 128],
PURPLE_DARK_RIGHT_1: [1, 20, 19841, 128, 128],
PURPLE_DARK_RIGHT_2: [1, 20, 19989, 128, 128],
PURPLE_DARK_RIGHT_3: [1, 20, 20137, 128, 128],
PURPLE_DARK_RIGHT_4: [1, 20, 20285, 128, 128],
PURPLE_DARK_RIGHT_5: [1, 20, 20433, 128, 128],
PURPLE_DARK_RIGHT_6: [1, 20, 20581, 128, 128],
PURPLE_DARK_TOP_0: [1, 20, 20729, 128, 128],
PURPLE_DARK_TOP_1: [1, 20, 20877, 128, 128],
PURPLE_DARK_TOP_2: [1, 20, 21025, 128, 128],
PURPLE_DARK_TOP_3: [1, 20, 21173, 128, 128],
PURPLE_DARK_TOP_4: [1, 20, 21321, 128, 128],
PURPLE_DARK_TOP_5: [1, 20, 21469, 128, 128],
PURPLE_DARK_TOP_6: [1, 20, 21617, 128, 128],
PURPLE_DARK_TOP_7: [1, 20, 21765, 128, 128],
PURPLE_DARK_TOP_8: [1, 20, 21913, 128, 128],
PURPLE_DARK_TOP_9: [1, 20, 22061, 128, 128],
PURPLE_LIGHT_LEFT_0: [1, 20, 22209, 128, 128],
PURPLE_LIGHT_LEFT_1: [1, 20, 22357,
128, 128
],
PURPLE_LIGHT_LEFT_10: [1, 20, 22505, 128, 128],
PURPLE_LIGHT_LEFT_11: [1, 20, 22653, 128, 128],
PURPLE_LIGHT_LEFT_12: [1, 20, 22801, 128, 128],
PURPLE_LIGHT_LEFT_2: [1, 20, 22949, 128, 128],
PURPLE_LIGHT_LEFT_3: [1, 20, 23097, 128, 128],
PURPLE_LIGHT_LEFT_4: [1, 20, 23245, 128, 128],
PURPLE_LIGHT_LEFT_5: [1, 20, 23393, 128, 128],
PURPLE_LIGHT_LEFT_6: [1, 20, 23541, 128, 128],
PURPLE_LIGHT_LEFT_7: [1, 20, 23689, 128, 128],
PURPLE_LIGHT_LEFT_8: [1, 20, 23837, 128, 128],
PURPLE_LIGHT_LEFT_9: [1, 20, 23985, 128, 128],
PURPLE_LIGHT_RIGHT_0: [1, 20, 24133, 128, 128],
PURPLE_LIGHT_RIGHT_1: [1, 20, 24281, 128, 128],
PURPLE_LIGHT_RIGHT_2: [1, 20, 24429, 128, 128],
PURPLE_LIGHT_RIGHT_3: [1, 20, 24577, 128, 128],
PURPLE_LIGHT_RIGHT_4: [1, 20, 24725, 128, 128],
PURPLE_LIGHT_RIGHT_5: [1, 20, 24873, 128, 128],
PURPLE_LIGHT_RIGHT_6: [1, 20, 20581, 128, 128],
PURPLE_LIGHT_TOP_0: [1, 20, 25021, 128, 128],
PURPLE_LIGHT_TOP_1: [1, 20, 25169, 128, 128],
PURPLE_LIGHT_TOP_2: [1, 20, 25317, 128, 128],
PURPLE_LIGHT_TOP_3: [1, 20, 25465, 128, 128],
PURPLE_LIGHT_TOP_4: [1, 20, 25613, 128, 128],
PURPLE_LIGHT_TOP_5: [1, 20, 25761, 128, 128],
PURPLE_LIGHT_TOP_6: [1,
20, 20581, 128, 128
],
SHADOW_LEFT: [1, 20, 14441, 64, 32],
SHADOW_RIGHT: [1, 20, 14493, 64, 32],
SHED_ISLAND: [11, 20, 37642, 198, 253.9],
SHEEP_ISLAND: [11, 20, 37916, 116.2, 103.9],
THREE_SPRITE_N062_L3_TILE05_012: [5, 20, 18907, 128, 128],
THREE_SPRITE_N063_L3_TILE06_013: [5, 20, 19055, 128, 128],
THREE_SPRITE_N064_L3_TILE07_009: [5, 20, 19203, 128, 128],
THREE_SPRITE_N065_L3_TILE08_010: [5, 20, 19351, 128, 128],
TREE_0: [2, 20, 6501, 120, 170],
TREE_1: [2, 20, 6691, 114, 182],
TREE_10: [2, 20, 6893, 114, 182],
TREE_11: [2, 20, 7095, 114, 182],
TREE_12: [2, 20, 7297, 114,
182
],
TREE_13: [2, 20, 7499, 114, 182],
TREE_14: [2, 20, 7701, 114, 182],
TREE_15: [2, 20, 7903, 114, 182],
TREE_16: [2, 20, 8105, 114, 182],
TREE_17: [2, 20, 8307, 114, 182],
TREE_18: [2, 20, 8509, 114, 182],
TREE_19: [2, 20, 8711, 114, 182],
TREE_2: [2, 20, 8913, 114, 182],
TREE_20: [2, 20, 9115, 114, 182],
TREE_21: [2, 20, 9317, 114, 182],
TREE_3: [2, 20, 9519, 114, 182],
TREE_4: [2, 20, 9721, 114, 182],
TREE_5: [2, 20, 9923, 114, 182],
TREE_6: [2, 20, 10125, 114, 182],
TREE_7: [2, 20, 10327, 114, 182],
TREE_8: [2, 20, 10529, 114, 182],
TREE_9: [2, 20, 10731, 114, 182]
};
xa(yh);
var zh = 1E3 / 60,
Ah = window.google && window.google.doodle && window.google.doodle.isDemoHtml ? "" : "/logos/2017/logo17/",
Bh = "L1.json L2.json L3.json L4.json L5.json L6.json".split(" "),
Ch = [
[2, 3],
[4],
[5, 6],
[7, 8, 9],
[10, 6, 8],
[11, 3, 9]
],
Dh = [2, 5, 4, 7, 6, 6],
Eh = ["T1.json", "T2.json", "T3.json"];
/*
Visual Blocks Editor
Copyright 2013 Google Inc.
https://developers.google.com/blockly/
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
var Fh, Gh, H = {};
/*
Visual Blocks Editor
Copyright 2016 Massachusetts Institute of Technology
All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
var I = {
motion: {
primary: "#A4DD4A",
secondary: "#009444",
tertiary: "#A4DD4A",
turn: "#26A2F6",
turnSecondary: "#007ec4"
},
looks: {
primary: "#9966FF",
secondary: "#855CD6",
tertiary: "#774DCB"
},
sounds: {
primary: "#CF63CF",
secondary: "#C94FC9",
tertiary: "#BD42BD"
},
control: {
primary: "#F7941D",
secondary: "#c16500",
tertiary: "#c16500"
},
event: {
primary: "#14A795",
secondary: "#338c7b",
tertiary: "#338c7b"
},
sensing: {
primary: "#5CB1D6",
secondary: "#47A8D1",
tertiary: "#2E8EB8"
},
pen: {
primary: "#0fBD8C",
secondary: "#0DA57A",
tertiary: "#0B8E69"
},
operators: {
primary: "#59C059",
secondary: "#46B946",
tertiary: "#389438"
},
data: {
primary: "#FF8C1A",
secondary: "#FF8000",
tertiary: "#DB6E00"
},
more: {
primary: "#FF6680",
secondary: "#FF4D6A",
tertiary: "#FF3355"
},
text: "#575E75",
workspace: "#F9F9F9",
topBorder: "transparent",
toolboxHover: "#4C97FF",
toolboxSelected: "#e9eef2",
toolboxText: "#575E75",
toolbox: "#FFFFFF",
flyout: "#F9F9F9",
scrollbar: "#CECDCE",
scrollbarHover: "#CECDCE",
textField: "#FFFFFF",
insertionMarker: "#000000",
insertionMarkerOpacity: .2,
dragShadowOpacity: .3,
stackGlow: "#FFF200",
stackGlowOpacity: 1,
replacementGlow: "#FFFFFF",
replacementGlowOpacity: 1,
colourPickerStroke: "#FFFFFF",
fieldShadow: "rgba(0,0,0,0.1)",
dropDownShadow: "rgba(0, 0, 0, .3)",
numPadBackground: "#547AB2",
numPadBorder: "#435F91",
numPadActiveBackground: "#435F91",
numPadText: "#FFFFFF",
valueReportBackground: "#FFFFFF",
valueReportBorder: "#AAAAAA"
};
/*
Visual Blocks Editor
Copyright 2016 Google Inc.
https://developers.google.com/blockly/
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
var J = null,
Hh = null,
Ih = {};
Cd && (Ih = {
mousedown: ["touchstart"],
mousemove: ["touchmove"],
mouseup: ["touchend", "touchcancel"]
});
var Jh = 0,
Lh = function(a, b) {
Kh();
1 == a.changedTouches.length && (Jh = setTimeout(function() {
a.button = 2;
a.clientX = a.changedTouches[0].clientX;
a.clientY = a.changedTouches[0].clientY;
b.onMouseDown_(a)
}, 750))
},
Kh = function() {
Jh && (clearTimeout(Jh), Jh = 0)
},
Ph = function() {
var a = K;
0 != a.dragMode_ && (J = null, Mh(a), Nh("handopen"), a.dragMode_ = 0, Hh && (Oh(Hh), Hh = null), Fh && (Oh(Fh), Fh = null))
},
Rh = function(a) {
var b = K;
if (0 != b.dragMode_) {
var c = a.clientX - b.startDragMouseX,
e = a.clientY - b.startDragMouseY;
Qh(b, b.startScrollX + c, b.startScrollY +
e);
3 < Math.sqrt(c * c + e * e) && (Kh(), b.dragMode_ = 2);
a.stopPropagation();
a.preventDefault()
}
},
Sh = function(a) {
var b = [];
if (a.changedTouches)
for (var c = 0; c < a.changedTouches.length; c++) b[c] = {
type: a.type,
changedTouches: [a.changedTouches[c]],
target: a.target,
stopPropagation: function() {
a.stopPropagation()
},
preventDefault: function() {
a.preventDefault()
}
};
else b.push(a);
return b
};
/*
Visual Blocks Editor
Copyright 2012 Google Inc.
https://developers.google.com/blockly/
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
var Wh = function(a) {
this.id = Th();
Uh[this.id] = this;
this.options = a || new Vh({});
this.RTL = !!this.options.RTL;
this.horizontalLayout = !!this.options.horizontalLayout;
this.toolboxPosition = this.options.toolboxPosition;
this.topBlocks_ = [];
this.Blockly_Workspace$listeners_ = [];
this.undoStack = [];
this.redoStack = [];
this.blockDB = Object.create(null);
this.variableList = []
};
Wh.prototype.rendered = !1;
Wh.prototype.dispose = function() {
this.Blockly_Workspace$listeners_.length = 0;
this.Blockly_Workspace_prototype$clear();
delete Uh[this.id]
};
var Yh = function(a, b) {
a.topBlocks_.push(b);
if (a.isFlyout)
for (var c = Xh(b), e = 0; e < c.length; e++) - 1 == a.variableList.indexOf(c[e]) && a.variableList.push(c[e])
},
Zh = function(a, b) {
if (!eb(a.topBlocks_, b)) throw "Block not present in workspace's list of top-most blocks.";
},
$h = function(a, b) {
var c = [].concat(a.topBlocks_);
if (b && 1 < c.length) {
var e = Math.sin(3 * Math.PI / 180);
a.RTL && (e *= -1);
c.sort(function(a, b) {
var c = a.getRelativeToSurfaceXY(),
f = b.getRelativeToSurfaceXY();
return c.y + e * c.x - (f.y + e * f.x)
})
}
return c
},
ai = function(a) {
a =
$h(a, !1);
for (var b = 0; b < a.length; b++) a.push.apply(a, a[b].getChildren());
return a
};
Wh.prototype.Blockly_Workspace_prototype$clear = function() {
var a = bi;
for (a || ci(!0); this.topBlocks_.length;) this.topBlocks_[0].dispose(!1);
a || ci(!1);
this.variableList.length = 0;
di && ei();
fi && L(!0)
};
Wh.prototype.renameVariable = function(a, b) {
var c = gi(this, a),
e = gi(this, b);
if (-1 != e && this.variableList[e] != b) var f = this.variableList[e];
ci(!0);
for (var g = ai(this), h = 0; h < g.length; h++) hi(g[h], a, b), f && hi(g[h], f, b);
ci(!1);
c == e || -1 != c && -1 == e ? this.variableList[c] = b : -1 != c && -1 != e ? (this.variableList[e] = b, this.variableList.splice(c, 1)) : (this.variableList.push(b), console.log("Tried to rename an non-existent variable."))
};
Wh.prototype.createVariable = function(a) {
"No variable selected" != a.toLowerCase() && -1 == gi(this, a) && this.variableList.push(a)
};
var ji = function(a, b) {
for (var c = [], e = ai(a), f = 0; f < e.length; f++) {
var g = ii(e[f]);
if (g)
for (var h = 0; h < g.length; h++) {
var m = g[h];
m && m.toLowerCase() == b.toLowerCase() && c.push(e[f])
}
}
return c
},
ni = function(a, b) {
function c() {
ci(!0);
for (var a = 0; a < f.length; a++) f[a].dispose(!0, !1);
ci(!1);
m.variableList.splice(e, 1)
}
var e = gi(a, b);
if (-1 != e) {
for (var f = ji(a, b), g = 0, h; h = f[g]; g++)
if ("procedures_defnoreturn" == h.type || "procedures_defreturn" == h.type) {
g = ki(h, "NAME");
li(M.CANNOT_DELETE_VARIABLE_PROCEDURE.replace("%1", b).replace("%2",
g));
return
} var m = a;
1 < f.length ? mi(M.DELETE_VARIABLE_CONFIRMATION.replace("%1", String(f.length)).replace("%2", b), function(a) {
a && c()
}) : c()
}
},
gi = function(a, b) {
for (var c = 0, e; e = a.variableList[c]; c++)
if (e.toLowerCase() == b.toLowerCase()) return c;
return -1
};
d = Wh.prototype;
d.getWidth = function() {
return 0
};
d.newBlock = function(a, b) {
return new oi(this, a, b)
};
d.clearUndo = function() {
this.undoStack.length = 0;
for (var a = this.redoStack.length = 0, b; b = pi[a]; a++) b.recordUndo = !1
};
d.addChangeListener = function(a) {
this.Blockly_Workspace$listeners_.push(a);
return a
};
d.removeChangeListener = function(a) {
eb(this.Blockly_Workspace$listeners_, a)
};
var qi = function(a, b) {
var c = a.blockDB[b];
!c && a.getFlyout() && a.getFlyout().workspace && (c = a.getFlyout().workspace.blockDB[b]);
return c || null
};
Wh.prototype.getFlyout = function() {
return null
};
var Uh = Object.create(null);
Wh.prototype.clear = Wh.prototype.Blockly_Workspace_prototype$clear;
Wh.prototype.clearUndo = Wh.prototype.clearUndo;
Wh.prototype.addChangeListener = Wh.prototype.addChangeListener;
Wh.prototype.removeChangeListener = Wh.prototype.removeChangeListener;
var ui = function(a, b, c, e, f, g) {
this.workspace_ = a;
this.Blockly_Bubble$content_ = b;
this.shape_ = c;
c = 20;
this.workspace_.RTL && (c = -c);
this.arrow_radians_ = c * Math.PI / 180;
a.svgBubbleCanvas_.appendChild(ri(this, b, !(!f || !g)));
this.anchorXY_ = e;
this.rendered_ && si(this);
f && g || (b = this.Blockly_Bubble$content_.getBBox(), f = b.width + 12, g = b.height + 12);
this.setBubbleSize(f, g);
si(this);
ti(this);
this.rendered_ = !0;
a.options.readOnly || (N(this.bubbleBack_, "mousedown", this, this.bubbleMouseDown_), this.resizeGroup_ && N(this.resizeGroup_,
"mousedown", this, this.resizeMouseDown_))
},
vi = null,
wi = null;
ui.prototype.resizeCallback_ = null;
var xi = function() {
vi && (Oh(vi), vi = null);
wi && (Oh(wi), wi = null)
},
yi = function() {
J = null;
Nh("handopen");
xi()
};
d = ui.prototype;
d.rendered_ = !1;
d.anchorXY_ = null;
d.relativeLeft_ = 0;
d.relativeTop_ = 0;
d.Blockly_Bubble_prototype$width_ = 0;
d.Blockly_Bubble_prototype$height_ = 0;
d.autoLayout_ = !0;
var ri = function(a, b, c) {
a.bubbleGroup_ = O("g", {}, null);
var e = {
filter: "url(#" + a.workspace_.options.embossFilterId + ")"
}; - 1 != ad.indexOf("JavaFX") && (e = {});
e = O("g", e, a.bubbleGroup_);
a.bubbleArrow_ = O("path", {}, e);
a.bubbleBack_ = O("rect", {
"class": "blocklyDraggable",
x: 0,
y: 0,
rx: 6,
ry: 6
}, e);
c ? (a.resizeGroup_ = O("g", {
"class": a.workspace_.RTL ? "blocklyResizeSW" : "blocklyResizeSE"
}, a.bubbleGroup_), O("polygon", {
points: "0,x x,x x,0".replace(/x/g, (12).toString())
}, a.resizeGroup_), O("line", {
"class": "blocklyResizeLine",
x1: 4,
y1: 11,
x2: 11,
y2: 4
}, a.resizeGroup_), O("line", {
"class": "blocklyResizeLine",
x1: 8,
y1: 11,
x2: 11,
y2: 8
}, a.resizeGroup_)) : a.resizeGroup_ = null;
a.bubbleGroup_.appendChild(b);
return a.bubbleGroup_
};
ui.prototype.bubbleMouseDown_ = function(a) {
zi(this);
xi();
Ai(a) ? a.stopPropagation() : Bi(a) || (Nh("handclosed"), Ci(this.workspace_, a, new A(this.workspace_.RTL ? -this.relativeLeft_ : this.relativeLeft_, this.relativeTop_)), vi = N(document, "mouseup", this, yi), wi = N(document, "mousemove", this, this.bubbleMouseMove_), Di(), a.stopPropagation())
};
ui.prototype.bubbleMouseMove_ = function(a) {
this.autoLayout_ = !1;
a = Ei(this.workspace_, a);
this.relativeLeft_ = this.workspace_.RTL ? -a.x : a.x;
this.relativeTop_ = a.y;
si(this);
ti(this)
};
ui.prototype.resizeMouseDown_ = function(a) {
zi(this);
xi();
Ai(a) || (Nh("handclosed"), Ci(this.workspace_, a, new A(this.workspace_.RTL ? -this.Blockly_Bubble_prototype$width_ : this.Blockly_Bubble_prototype$width_, this.Blockly_Bubble_prototype$height_)), vi = N(document, "mouseup", this, yi), wi = N(document, "mousemove", this, this.resizeMouseMove_), Di());
a.stopPropagation()
};
ui.prototype.resizeMouseMove_ = function(a) {
this.autoLayout_ = !1;
a = Ei(this.workspace_, a);
this.setBubbleSize(this.workspace_.RTL ? -a.x : a.x, a.y);
this.workspace_.RTL && si(this)
};
var zi = function(a) {
a.bubbleGroup_.parentNode.appendChild(a.bubbleGroup_)
},
si = function(a) {
var b = a.anchorXY_.x;
b = a.workspace_.RTL ? b - (a.relativeLeft_ + a.Blockly_Bubble_prototype$width_) : b + a.relativeLeft_;
a.bubbleGroup_.setAttribute("transform", "translate(" + b + "," + (a.relativeTop_ + a.anchorXY_.y) + ")")
};
ui.prototype.getBubbleSize = function() {
return {
width: this.Blockly_Bubble_prototype$width_,
height: this.Blockly_Bubble_prototype$height_
}
};
ui.prototype.setBubbleSize = function(a, b) {
a = Math.max(a, 57);
b = Math.max(b, 32);
this.Blockly_Bubble_prototype$width_ = a;
this.Blockly_Bubble_prototype$height_ = b;
this.bubbleBack_.setAttribute("width", a);
this.bubbleBack_.setAttribute("height", b);
this.resizeGroup_ && (this.workspace_.RTL ? this.resizeGroup_.setAttribute("transform", "translate(12," + (b - 12) + ") scale(-1 1)") : this.resizeGroup_.setAttribute("transform", "translate(" + (a - 12) + "," + (b - 12) + ")"));
if (this.rendered_) {
if (this.autoLayout_) {
var c = -this.Blockly_Bubble_prototype$width_ /
4,
e = -this.Blockly_Bubble_prototype$height_ - 64,
f = this.workspace_.getMetrics();
f.viewWidth /= this.workspace_.scale;
f.viewLeft /= this.workspace_.scale;
var g = this.anchorXY_.x;
this.workspace_.RTL ? g - f.viewLeft - c - this.Blockly_Bubble_prototype$width_ < Fi ? c = g - f.viewLeft - this.Blockly_Bubble_prototype$width_ - Fi : g - f.viewLeft - c > f.viewWidth && (c = g - f.viewLeft - f.viewWidth) : g + c < f.viewLeft ? c = f.viewLeft - g : f.viewLeft + f.viewWidth < g + c + this.Blockly_Bubble_prototype$width_ + 12 + Fi && (c = f.viewLeft + f.viewWidth - g - this.Blockly_Bubble_prototype$width_ -
Fi);
this.anchorXY_.y + e < f.viewTop && (e = this.shape_.getBBox().height);
this.relativeLeft_ = c;
this.relativeTop_ = e
}
si(this);
ti(this)
}
this.resizeCallback_ && this.resizeCallback_()
};
var ti = function(a) {
var b = [],
c = a.Blockly_Bubble_prototype$width_ / 2,
e = a.Blockly_Bubble_prototype$height_ / 2,
f = -a.relativeLeft_,
g = -a.relativeTop_;
if (c == f && e == g) b.push("M " + c + "," + e);
else {
g -= e;
f -= c;
a.workspace_.RTL && (f *= -1);
var h = Math.sqrt(g * g + f * f),
m = Math.acos(f / h);
0 > g && (m = 2 * Math.PI - m);
var n = m + Math.PI / 2;
n > 2 * Math.PI && (n -= 2 * Math.PI);
var p = Math.sin(n),
r = Math.cos(n),
t = a.getBubbleSize();
n = (t.width + t.height) / 5;
n = Math.min(n, t.width, t.height) / 4;
t = 1 - 8 / h;
f = c + t * f;
g = e + t * g;
t = c + n * r;
var x = e + n * p;
c -= n * r;
e -= n * p;
p = m + a.arrow_radians_;
p > 2 * Math.PI && (p -= 2 * Math.PI);
m = Math.sin(p) * h / 4;
h = Math.cos(p) * h / 4;
b.push("M" + t + "," + x);
b.push("C" + (t + h) + "," + (x + m) + " " + f + "," + g + " " + f + "," + g);
b.push("C" + f + "," + g + " " + (c + h) + "," + (e + m) + " " + c + "," + e)
}
b.push("z");
a.bubbleArrow_.setAttribute("d", b.join(" "))
};
ui.prototype.setColour = function(a) {
this.bubbleBack_.setAttribute("fill", a);
this.bubbleArrow_.setAttribute("fill", a)
};
ui.prototype.dispose = function() {
xi();
C(this.bubbleGroup_);
this.shape_ = this.Blockly_Bubble$content_ = this.workspace_ = this.resizeGroup_ = this.bubbleBack_ = this.bubbleArrow_ = this.bubbleGroup_ = null
};
var Gi = function(a) {
this.block_ = a
};
Gi.prototype.bubble = null;
var Ii = function(a) {
a.iconGroup_ || (a.iconGroup_ = O("g", {
"class": "blocklyIconGroup"
}, null), a.block_.isInFlyout && Hi(a.iconGroup_, "blocklyIconGroupReadonly"), a.drawIcon_(a.iconGroup_), a.block_.getSvgRoot().appendChild(a.iconGroup_), N(a.iconGroup_, "mouseup", a, a.iconClick), a.updateEditable())
};
Gi.prototype.dispose = function() {
C(this.iconGroup_);
this.iconGroup_ = null;
this.setVisible(!1);
this.block_ = null
};
Gi.prototype.updateEditable = function() {};
Gi.prototype.isVisible = function() {
return !!this.bubble_
};
Gi.prototype.iconClick = function(a) {
Ji(this.block_.workspace) || this.block_.isInFlyout || Ai(a) || this.setVisible(!this.isVisible())
};
var Ki = function(a) {
a.isVisible() && a.bubble_.setColour(a.block_.colour_)
};
/*
Visual Blocks Editor
Copyright 2011 Google Inc.
https://developers.google.com/blockly/
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
var Li = function(a) {
Li.superClass_.constructor.call(this, a);
Ii(this)
};
w(Li, Gi);
Li.prototype.text_ = "";
Li.prototype.Blockly_Comment_prototype$width_ = 160;
Li.prototype.Blockly_Comment_prototype$height_ = 80;
Li.prototype.drawIcon_ = function(a) {
O("circle", {
"class": "blocklyIconShape",
r: "8",
cx: "8",
cy: "8"
}, a);
O("path", {
"class": "blocklyIconSymbol",
d: "m6.8,10h2c0.003,-0.617 0.271,-0.962 0.633,-1.266 2.875,-2.405 0.607,-5.534 -3.765,-3.874v1.7c3.12,-1.657 3.698,0.118 2.336,1.25 -1.201,0.998 -1.201,1.528 -1.204,2.19z"
}, a);
O("rect", {
"class": "blocklyIconSymbol",
x: "6.8",
y: "10.78",
height: "2",
width: "2"
}, a)
};
var Ni = function(a) {
a.foreignObject_ = O("foreignObject", {
x: 6,
y: 6
}, null);
var b = document.createElementNS("http://www.w3.org/1999/xhtml", "body");
b.setAttribute("xmlns", "http://www.w3.org/1999/xhtml");
b.className = "blocklyMinimalBody";
var c = document.createElementNS("http://www.w3.org/1999/xhtml", "textarea");
c.className = "blocklyCommentTextarea";
c.setAttribute("dir", a.block_.RTL ? "RTL" : "LTR");
b.appendChild(c);
a.textarea_ = c;
a.foreignObject_.appendChild(b);
N(c, "mouseup", a, a.textareaFocus_);
N(c, "wheel", a, function(a) {
a.stopPropagation()
});
N(c, "change", a, function() {
this.text_ != c.value && (P(new Mi(this.block_, "comment", null, this.text_, c.value)), this.text_ = c.value)
});
setTimeout(function() {
c.focus()
}, 0);
return a.foreignObject_
};
d = Li.prototype;
d.updateEditable = function() {
this.isVisible() && (this.setVisible(!1), this.setVisible(!0));
Gi.prototype.updateEditable.call(this)
};
d.resizeBubble_ = function() {
if (this.isVisible()) {
var a = this.bubble_.getBubbleSize();
this.foreignObject_.setAttribute("width", a.width - 12);
this.foreignObject_.setAttribute("height", a.height - 12);
this.textarea_.style.width = a.width - 12 - 4 + "px";
this.textarea_.style.height = a.height - 12 - 4 + "px"
}
};
d.setVisible = function(a) {
if (a != this.isVisible())
if (P(new Oi(this.block_, "commentOpen", !a, a)), !Pi(this.block_) && !this.textarea_ || z) {
if (a != this.isVisible())
if (P(new Oi(this.block_, "warningOpen", !a, a)), a) {
a = Qi(Ri(this));
this.bubble = new ui(this.block_.workspace, a, this.block_.svgPath_, null, null, null);
if (this.block_.RTL)
for (var b = a.getBBox().width, c = 0, e; e = a.childNodes[c]; c++) e.setAttribute("text-anchor", "end"), e.setAttribute("x", b + 6);
Ki(this);
a = this.bubble.getBubbleSize();
this.bubble.setBubbleSize(a.width,
a.height)
} else this.bubble.dispose(), this.bubble = null
} else b = Ri(this), c = this.getBubbleSize(), a ? (this.bubble_ = new ui(this.block_.workspace, Ni(this), this.block_.svgPath_, this.iconXY_, this.Blockly_Comment_prototype$width_, this.Blockly_Comment_prototype$height_), this.bubble_.resizeCallback_ = this.resizeBubble_.bind(this), Ki(this)) : (this.bubble_.dispose(), this.foreignObject_ = this.textarea_ = this.bubble_ = null), Si(this, b), this.setBubbleSize(c.width, c.height)
};
d.textareaFocus_ = function() {
zi(this.bubble_);
this.textarea_.focus()
};
d.getBubbleSize = function() {
return this.isVisible() ? this.bubble_.getBubbleSize() : {
width: this.Blockly_Comment_prototype$width_,
height: this.Blockly_Comment_prototype$height_
}
};
d.setBubbleSize = function(a, b) {
this.textarea_ ? this.bubble_.setBubbleSize(a, b) : (this.Blockly_Comment_prototype$width_ = a, this.Blockly_Comment_prototype$height_ = b)
};
var Ri = function(a) {
return a.textarea_ ? a.textarea_.value : a.text_
},
Si = function(a, b) {
a.text_ != b && (P(new Mi(a.block_, "comment", null, a.text_, b)), a.text_ = b);
a.textarea_ && (a.textarea_.value = b)
};
Li.prototype.dispose = function() {
0 == Q && Si(this, "");
this.block_.comment = null;
Gi.prototype.dispose.call(this)
};
var Ui = function(a, b) {
this.Blockly_Connection$sourceBlock = a;
this.type = b;
a.workspace.connectionDBList && (this.Blockly_Connection_prototype$db = a.workspace.connectionDBList[b], this.dbOpposite = a.workspace.connectionDBList[Ti[b]], this.Blockly_Connection_prototype$hidden = !this.Blockly_Connection_prototype$db)
};
d = Ui.prototype;
d.targetConnection = null;
d.check_ = null;
d.shadowDom_ = null;
d.x = 0;
d.y = 0;
d.inDB = !1;
d.Blockly_Connection_prototype$db = null;
d.dbOpposite = null;
d.Blockly_Connection_prototype$hidden = null;
d.connectInternal = function(a) {
var b = this,
c = b.Blockly_Connection$sourceBlock,
e = a.Blockly_Connection$sourceBlock,
f = !1;
b == Vi(c) && (f = !0);
if (a.targetConnection) {
if (f) var g = a.targetConnection;
a.disconnect()
}
if (b.targetConnection) {
var h = S(b),
m = b.shadowDom_;
b.shadowDom_ = null;
if (h.isShadowBlock) m = Wi(h), h.dispose(), h = null;
else if (3 == b.type) {
if (!h.previousConnection) throw "Orphan block does not have a previous connection.";
for (var n = e; n.nextConnection;) {
var p = Xi(n);
if (p && !p.isShadowBlock) n = p;
else {
Yi(h.previousConnection,
n.nextConnection) && (n.nextConnection.connect(h.previousConnection), h = null);
break
}
}
}
if (h && (b.disconnect(), Zi)) {
var r = bi;
setTimeout(function() {
h.workspace && !h.parentBlock && (ci(r), h.outputConnection ? $i(h.outputConnection, b) : h.previousConnection && $i(h.previousConnection, b), ci(!1))
}, 0)
}
b.shadowDom_ = m
}
f && g && g.connect(c.previousConnection);
var t;
0 == Q && (t = new aj(e));
bj(b, a);
e.Blockly_Block_prototype$setParent(c);
t && (cj(t), P(t))
};
d.dispose = function() {
if (this.targetConnection) throw "Disconnect connection before disposing of it.";
this.inDB && dj(this.Blockly_Connection_prototype$db, this);
ej == this && (ej = null);
fj == this && (fj = null);
this.dbOpposite = this.Blockly_Connection_prototype$db = null
};
var gj = function(a) {
return 1 == a.type || 3 == a.type
},
hj = function(a, b) {
if (!b) return 3;
if (gj(a)) var c = a.Blockly_Connection$sourceBlock,
e = b.Blockly_Connection$sourceBlock;
else e = a.Blockly_Connection$sourceBlock, c = b.Blockly_Connection$sourceBlock;
return c && c == e ? 1 : b.type != Ti[a.type] ? 2 : c && e && c.workspace !== e.workspace ? 5 : Yi(a, b) ? c.isShadowBlock && !e.isShadowBlock ? 6 : 0 : 4
};
Ui.prototype.isConnectionAllowed = function(a) {
if (a.Blockly_Connection$sourceBlock.isInsertionMarker_ || 0 != hj(this, a)) return !1;
var b = Vi(this.Blockly_Connection$sourceBlock);
switch (a.type) {
case 4:
if (!b || this != b) {
if (this.targetConnection) return !1;
if (a.targetConnection) return a.targetConnection == ij ? !0 : !1
}
if (b)
if (this == b) {
if (this.targetConnection) return !1
} else if (this == this.Blockly_Connection$sourceBlock.nextConnection && a.targetConnection && !S(a).isInsertionMarker_) return !1;
break;
case 2:
return !1;
case 1:
if (a.targetConnection &&
!jj(S(a)) && !S(a).isShadowBlock) return !1;
break;
case 3:
if (b && this == this.Blockly_Connection$sourceBlock.previousConnection && a.targetConnection && !S(a).isInsertionMarker_ && !b.targetConnection || a.targetConnection && !S(a).isInsertionMarker_ && !this.Blockly_Connection$sourceBlock.nextConnection && !S(a).isShadowBlock && S(a).nextConnection) return !1;
break;
default:
throw "Unknown connection type in isConnectionAllowed";
}
return -1 != kj.indexOf(a) ? !1 : !0
};
Ui.prototype.connect = function(a) {
if (this.targetConnection != a) {
switch (hj(this, a)) {
case 0:
break;
case 1:
throw "Attempted to connect a block to itself.";
case 5:
throw "Blocks not on same workspace.";
case 2:
throw "Attempt to connect incompatible types.";
case 3:
throw "Target connection is null.";
case 4:
throw "Connection checks failed. " + (this + " expected " + this.check_ + ", found " + a.check_);
case 6:
throw "Connecting non-shadow to shadow block.";
default:
throw "Unknown connection failure: this should never happen!";
}
gj(this) ? this.connectInternal(a) : a.connectInternal(this)
}
};
var bj = function(a, b) {
a.targetConnection = b;
b.targetConnection = a
};
Ui.prototype.disconnect = function() {
var a = this.targetConnection;
if (gj(this)) {
var b = this.Blockly_Connection$sourceBlock;
var c = a.Blockly_Connection$sourceBlock;
a = this
} else b = a.Blockly_Connection$sourceBlock, c = this.Blockly_Connection$sourceBlock;
this.disconnectInternal(b, c);
a.respawnShadow()
};
Ui.prototype.disconnectInternal = function(a, b) {
var c;
0 == Q && (c = new aj(b));
this.targetConnection = this.targetConnection.targetConnection = null;
b.Blockly_Block_prototype$setParent(null);
c && (cj(c), P(c))
};
Ui.prototype.respawnShadow = function() {
var a = this.Blockly_Connection$sourceBlock,
b = this.shadowDom_;
if (a.workspace && b && Zi)
if (a = lj(b, a.workspace), a.outputConnection) this.connect(a.outputConnection);
else if (a.previousConnection) this.connect(a.previousConnection);
else throw "Child block does not have output or previous statement.";
};
var S = function(a) {
return a.targetConnection ? a.targetConnection.Blockly_Connection$sourceBlock : null
},
Yi = function(a, b) {
if (!a.check_ || !b.check_) return !0;
for (var c = 0; c < a.check_.length; c++)
if (-1 != b.check_.indexOf(a.check_[c])) return !0;
return !1
};
Ui.prototype.onCheckChanged = function() {
this.targetConnection && !Yi(this, this.targetConnection) && mj(gj(this) ? S(this) : this.Blockly_Connection$sourceBlock)
};
var nj = function(a, b) {
b ? (za(b) || (b = [b]), a.check_ = b, a.onCheckChanged()) : a.check_ = null
};
Ui.prototype.neighbours = function() {
return []
};
Ui.prototype.toString = function() {
var a = this.Blockly_Connection$sourceBlock;
if (a)
if (a.outputConnection == this) var b = "Output Connection of ";
else if (a.previousConnection == this) b = "Previous Connection of ";
else if (a.nextConnection == this) b = "Next Connection of ";
else if (b = bb(a.inputList, function(a) {
return a.connection == this
}, this)) b = 'Input "' + b.name + '" connection on ';
else return console.warn("Connection not actually connected to sourceBlock"), "Orphan Connection";
else return "Orphan Connection";
return b +
oj(a)
};
/*
Visual Blocks Editor
Copyright 2017 Google Inc.
https://developers.google.com/blockly/
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
var pj = {},
sj = function() {
this.tooltipWhenNotConnected_ = this.tooltip;
qj(this, function() {
var a = this.parentBlock;
return a && rj(a) && a.tooltip || this.tooltipWhenNotConnected_
}.bind(this))
},
tj;
(tj = !u("parent_tooltip_when_inline")) || (tj = /^[\s\xa0]*$/.test("parent_tooltip_when_inline"));
if (tj) throw Error("s`parent_tooltip_when_inline");
if (pj.parent_tooltip_when_inline) throw Error("t`parent_tooltip_when_inline");
if (!Ba(sj)) throw Error("u`parent_tooltip_when_inline");
pj.parent_tooltip_when_inline = sj;
var uj = function(a, b, c, e) {
this.top = a;
this.right = b;
this.bottom = c;
this.left = e
};
d = uj.prototype;
d.getWidth = function() {
return this.right - this.left
};
d.getHeight = function() {
return this.bottom - this.top
};
d.contains = function(a) {
return this && a ? a instanceof uj ? a.left >= this.left && a.right <= this.right && a.top >= this.top && a.bottom <= this.bottom : a.x >= this.left && a.x <= this.right && a.y >= this.top && a.y <= this.bottom : !1
};
d.ceil = function() {
this.top = Math.ceil(this.top);
this.right = Math.ceil(this.right);
this.bottom = Math.ceil(this.bottom);
this.left = Math.ceil(this.left);
return this
};
d.floor = function() {
this.top = Math.floor(this.top);
this.right = Math.floor(this.right);
this.bottom = Math.floor(this.bottom);
this.left = Math.floor(this.left);
return this
};
d.round = function() {
this.top = Math.round(this.top);
this.right = Math.round(this.right);
this.bottom = Math.round(this.bottom);
this.left = Math.round(this.left);
return this
};
d.translate = function(a, b) {
a instanceof A ? (this.left += a.x, this.right += a.x, this.top += a.y, this.bottom += a.y) : (this.left += a, this.right += a, v(b) && (this.top += b, this.bottom += b));
return this
};
d.scale = function(a, b) {
var c = v(b) ? b : a;
this.left *= a;
this.right *= a;
this.top *= c;
this.bottom *= c;
return this
};
var vj = function(a, b, c, e) {
this.left = a;
this.top = b;
this.width = c;
this.height = e
};
d = vj.prototype;
d.contains = function(a) {
return a instanceof A ? a.x >= this.left && a.x <= this.left + this.width && a.y >= this.top && a.y <= this.top + this.height : this.left <= a.left && this.left + this.width >= a.left + a.width && this.top <= a.top && this.top + this.height >= a.top + a.height
};
d.getSize = function() {
return new $f(this.width, this.height)
};
d.ceil = function() {
this.left = Math.ceil(this.left);
this.top = Math.ceil(this.top);
this.width = Math.ceil(this.width);
this.height = Math.ceil(this.height);
return this
};
d.floor = function() {
this.left = Math.floor(this.left);
this.top = Math.floor(this.top);
this.width = Math.floor(this.width);
this.height = Math.floor(this.height);
return this
};
d.round = function() {
this.left = Math.round(this.left);
this.top = Math.round(this.top);
this.width = Math.round(this.width);
this.height = Math.round(this.height);
return this
};
d.translate = function(a, b) {
a instanceof A ? (this.left += a.x, this.top += a.y) : (this.left += a, v(b) && (this.top += b));
return this
};
d.scale = function(a, b) {
var c = v(b) ? b : a;
this.left *= a;
this.width *= a;
this.top *= c;
this.height *= c;
return this
};
var wj = {},
xj = function(a, b) {
var c = bg(a);
return c.defaultView && c.defaultView.getComputedStyle && (c = c.defaultView.getComputedStyle(a, null)) ? c[b] || c.getPropertyValue(b) || "" : ""
},
yj = function(a, b) {
return xj(a, b) || (a.currentStyle ? a.currentStyle[b] : null) || a.style && a.style[b]
},
zj = function() {
var a = document,
b = a.body;
a = a.documentElement;
return new A(b.scrollLeft || a.scrollLeft, b.scrollTop || a.scrollTop)
},
Aj = function(a) {
try {
var b = a.getBoundingClientRect()
} catch (c) {
return {
left: 0,
top: 0,
right: 0,
bottom: 0
}
}
z && a.ownerDocument.body &&
(a = a.ownerDocument, b.left -= a.documentElement.clientLeft + a.body.clientLeft, b.top -= a.documentElement.clientTop + a.body.clientTop);
return b
},
Bj = function(a) {
var b = bg(a),
c = new A(0, 0);
var e = b ? bg(b) : document;
e = !z || 9 <= Number(xd) || "CSS1Compat" == cg(e).document_.compatMode ? e.documentElement : e.body;
if (a == e) return c;
a = Aj(a);
b = jg(cg(b).document_);
c.x = a.left + b.x;
c.y = a.top + b.y;
return c
},
Dj = function(a) {
var b = Cj;
if ("none" != yj(a, "display")) return b(a);
var c = a.style,
e = c.display,
f = c.visibility,
g = c.position;
c.visibility =
"hidden";
c.position = "absolute";
c.display = "inline";
a = b(a);
c.display = e;
c.position = g;
c.visibility = f;
return a
},
Cj = function(a) {
var b = a.offsetWidth,
c = a.offsetHeight,
e = kd && !b && !c;
return va(b) && !e || !a.getBoundingClientRect ? new $f(b, c) : (a = Aj(a), new $f(a.right - a.left, a.bottom - a.top))
},
Ej = function(a, b) {
a.style.display = b ? "" : "none"
},
Fj = jd ? "MozUserSelect" : kd || id ? "WebkitUserSelect" : null,
Gj = function(a, b) {
var c = b ? null : a.getElementsByTagName("*");
if (Fj) {
var e = "none";
a.style && (a.style[Fj] = e);
if (c)
for (var f = 0, g; g = c[f]; f++) g.style &&
(g.style[Fj] = e)
} else if (z || hd)
if (e = "on", a.setAttribute("unselectable", e), c)
for (f = 0; g = c[f]; f++) g.setAttribute("unselectable", e)
},
Hj = {
thin: 2,
medium: 4,
thick: 6
},
Ij = function(a, b) {
if ("none" == (a.currentStyle ? a.currentStyle[b + "Style"] : null)) return 0;
var c = a.currentStyle ? a.currentStyle[b + "Width"] : null;
if (c in Hj) var e = Hj[c];
else if (/^\d+px?$/.test(c)) e = parseInt(c, 10);
else {
e = a.style.left;
var f = a.runtimeStyle.left;
a.runtimeStyle.left = a.currentStyle.left;
a.style.left = c;
c = a.style.pixelLeft;
a.style.left = e;
a.runtimeStyle.left =
f;
e = +c
}
return e
};
var di = function() {},
Jj, Kj, Lj = null,
Mj = null,
Nj = null,
Oj = null,
Pj = null,
Qj = function(a, b) {
Lj.style.backgroundColor = a;
Lj.style.borderColor = b
},
Rj = function(a) {
Lj.setAttribute("data-category", a)
},
Uj = function(a, b, c, e) {
var f = b.workspace.scale,
g = b.width,
h = b.height;
g *= f;
h *= f;
f = b.getSvgRoot().getBoundingClientRect();
g = f.left + g / 2;
h = f.top + h;
f = f.top;
e && (f += e);
Mj = Sj(b.workspace).parentNode;
return Tj(a, g, h, g, f, c)
},
Tj = function(a, b, c, e, f, g) {
Nj = a;
Pj = g ? g : null;
g = a = Lj;
var h = Mj.getBoundingClientRect();
var m = Dj(Mj);
g = Dj(g);
if (c +
g.height > h.top + m.height) {
var n = e;
var p = f - g.height - 20;
e = !0
} else n = b, p = c + 20, e = !1;
b = Math.max(h.left, Math.min(n - 8, h.left + m.width));
n -= g.width / 2;
n = Math.max(h.left, Math.min(n, h.left + m.width - g.width));
b = Math.max(12, Math.min(b - n, g.width - 12 - 16));
h = n;
c = e ? f - g.height : c;
f = n;
m = p;
g = (e ? g.height - 1 : 0) - 9;
e = !e;
Kj.style.transform = "translate(" + b + "px," + g + "px) rotate(45deg)";
Kj.setAttribute("class", e ? "blocklyDropDownArrow arrowTop" : "blocklyDropDownArrow arrowBottom");
a.style.left = h + "px";
a.style.top = c + "px";
a.style.display =
"block";
a.style.opacity = 1;
a.style.transform = "translate(" + (f - h) + "px," + (m - c) + "px)";
return e
},
Vj = function() {
var a = Lj;
a.style.transform = "translate(0px, 0px)";
a.style.opacity = 0;
Oj = setTimeout(function() {
ei()
}, 250);
Pj && (Pj(), Pj = null)
},
ei = function() {
if (Nj) {
var a = Lj;
Oj && window.clearTimeout(Oj);
a.style.transform = "";
a.style.top = "";
a.style.left = "";
a.style.display = "none";
Jj.innerHTML = "";
Nj = null;
Pj && (Pj(), Pj = null)
}
};
var Wj = function(a, b) {
this.Blockly_Field$size_ = new $f(48, 32);
this.Blockly_Field_prototype$setValue(a);
this.validator_ = b ? b : null
},
Xj = null,
Yj = 0;
d = Wj.prototype;
d.name = null;
d.text = "";
d.Blockly_Field_prototype$sourceBlock = null;
d.Blockly_Field_prototype$visible = !0;
d.argType_ = null;
d.validator_ = null;
d.EDITABLE = !0;
d.init = function() {
if (!this.fieldGroup_) {
this.fieldGroup_ = O("g", {}, null);
this.Blockly_Field_prototype$visible || (this.fieldGroup_.style.display = "none");
var a = null === this.argType_ || 0 === this.argType_.length ? null : this.argType_.join(" ");
null !== a && (this.Blockly_Field_prototype$sourceBlock.isShadowBlock ? this.Blockly_Field_prototype$sourceBlock.svgGroup.setAttribute("data-argument-type", a) : this.fieldGroup_.setAttribute("data-argument-type", a));
a = this.getSize();
this.textElement_ = O("text", {
"class": "blocklyText",
x: this.Blockly_Field_prototype$sourceBlock.RTL ? -a.width / 2 : a.width / 2,
y: a.height / 2 + 1,
"dominant-baseline": "middle",
"text-anchor": "middle"
}, this.fieldGroup_);
this.updateEditable();
this.Blockly_Field_prototype$sourceBlock.getSvgRoot().appendChild(this.fieldGroup_);
this.mouseUpWrapper_ = N(Zj(this), "mouseup", this, this.Blockly_Field_prototype$onMouseUp_);
this.render();
this.Blockly_Field$size_.width = 0
}
};
d.dispose = function() {
this.mouseUpWrapper_ && (Oh(this.mouseUpWrapper_), this.mouseUpWrapper_ = null);
this.Blockly_Field_prototype$sourceBlock = null;
C(this.fieldGroup_);
this.validator_ = this.textElement_ = this.fieldGroup_ = null
};
d.updateEditable = function() {
var a = this.fieldGroup_;
this.EDITABLE && a && (Pi(this.Blockly_Field_prototype$sourceBlock) ? (Hi(a, "blocklyEditableText"), ak(a, "blocklyNonEditableText"), this.fieldGroup_.style.cursor = this.CURSOR) : (Hi(a, "blocklyNonEditableText"), ak(a, "blocklyEditableText"), this.fieldGroup_.style.cursor = ""))
};
d.isVisible = function() {
return this.Blockly_Field_prototype$visible
};
d.setVisible = function(a) {
if (this.Blockly_Field_prototype$visible != a) {
this.Blockly_Field_prototype$visible = a;
var b = this.getSvgRoot();
b && (b.style.display = a ? "block" : "none", this.render())
}
};
var bk = function(a, b) {
null == a.argType_ && (a.argType_ = []);
a.argType_.push(b)
};
Wj.prototype.classValidator = function(a) {
return a
};
var ck = function(a, b) {
var c = a.classValidator(b);
if (null === c) return null;
void 0 !== c && (b = c);
if (c = a.validator_) {
c = c.call(a, b);
if (null === c) return null;
void 0 !== c && (b = c)
}
return b
};
Wj.prototype.getSvgRoot = function() {
return this.fieldGroup_
};
Wj.prototype.render = function() {
if (this.Blockly_Field_prototype$visible && this.textElement_) {
ng(this.textElement_);
var a = document.createTextNode(dk(this));
this.textElement_.appendChild(a);
ek(this.textElement_);
a = ek(this.textElement_);
this.EDITABLE && (a += 0);
this.arrowWidth_ = 0;
this.positionArrow && (this.arrowWidth_ = this.positionArrow(a), a += this.arrowWidth_);
this.box_ && (a += 0);
this.Blockly_Field$size_.width = a;
a = (this.Blockly_Field$size_.width - this.arrowWidth_) / 2;
this.Blockly_Field_prototype$sourceBlock.RTL &&
(a += this.arrowWidth_);
this.Blockly_Field_prototype$sourceBlock.isShadowBlock && !this.positionArrow && (a = this.Blockly_Field_prototype$sourceBlock.RTL ? Math.min(this.Blockly_Field$size_.width - 24, a) : Math.max(24, a));
this.textElement_.setAttribute("x", a)
}
this.box_ && (this.box_.setAttribute("width", this.Blockly_Field$size_.width), this.box_.setAttribute("height", this.Blockly_Field$size_.height))
};
var ek = function(a) {
var b = a.textContent + "\n" + a.className.baseVal,
c;
if (Xj && (c = Xj[b])) return c;
try {
c = a.getComputedTextLength()
} catch (e) {
return 8 * a.textContent.length
}
Xj && (Xj[b] = c);
return c
},
fk = function() {
Yj++;
Xj || (Xj = {})
},
gk = function() {
Yj--;
Yj || (Xj = null)
};
Wj.prototype.getSize = function() {
this.Blockly_Field$size_.width || this.render();
return this.Blockly_Field$size_
};
var hk = function(a) {
var b = a.getSize();
return new $f(b.width * a.Blockly_Field_prototype$sourceBlock.workspace.scale, b.height * a.Blockly_Field_prototype$sourceBlock.workspace.scale)
},
dk = function(a) {
var b = a.text;
if (!b) return "\u00a0";
4 < b.length && (b = b.substring(0, 2) + "\u2026");
b = b.replace(/\s/g, "\u00a0");
a.Blockly_Field_prototype$sourceBlock.RTL && (b += "\u200f");
return b
};
d = Wj.prototype;
d.Blockly_Field_prototype$getText = function() {
return this.text
};
d.Blockly_Field_prototype$setText = function(a) {
null !== a && (a = String(a), a !== this.text && (this.text = a, this.Blockly_Field$size_.width = 0, this.Blockly_Field_prototype$sourceBlock && this.Blockly_Field_prototype$sourceBlock.rendered && (this.Blockly_Field_prototype$sourceBlock.render(), ik(this.Blockly_Field_prototype$sourceBlock))))
};
d.getValue = function() {
return this.Blockly_Field_prototype$getText()
};
d.Blockly_Field_prototype$setValue = function(a) {
if (null !== a) {
var b = this.getValue();
b != a && (this.Blockly_Field_prototype$sourceBlock && 0 == Q && P(new Mi(this.Blockly_Field_prototype$sourceBlock, "field", this.name, b, a)), this.Blockly_Field_prototype$setText(a))
}
};
d.Blockly_Field_prototype$onMouseUp_ = function(a) {
if (!od && !pd || wd("537.51.2") || 0 === a.layerX || 0 === a.layerY) Ai(a) || Ji(this.Blockly_Field_prototype$sourceBlock.workspace) || Pi(this.Blockly_Field_prototype$sourceBlock) && this.showEditor()
};
d.Blockly_Field_prototype$setTooltip = function() {};
var Zj = function(a) {
for (var b = 0, c = 0, e; e = a.Blockly_Field_prototype$sourceBlock.inputList[c]; c++) b += e.fieldRow.length;
return 1 >= b ? a.Blockly_Field_prototype$sourceBlock.getSvgRoot() : a.getSvgRoot()
};
var Hi = function(a, b) {
var c = a.getAttribute("class") || "";
if (-1 != (" " + c + " ").indexOf(" " + b + " ")) return !1;
c && (c += " ");
a.setAttribute("class", c + b);
return !0
},
ak = function(a, b) {
var c = a.getAttribute("class");
if (-1 == (" " + c + " ").indexOf(" " + b + " ")) return !1;
c = c.split(/\s+/);
for (var e = 0; e < c.length; e++) c[e] && c[e] != b || (c.splice(e, 1), e--);
c.length ? a.setAttribute("class", c.join(" ")) : a.removeAttribute("class");
return !0
},
jk = function(a) {
a.preventDefault();
a.stopPropagation()
},
Bi = function(a) {
return "textarea" == a.target.type ||
"text" == a.target.type || "number" == a.target.type || "email" == a.target.type || "password" == a.target.type || "search" == a.target.type || "tel" == a.target.type || "url" == a.target.type || a.target.isContentEditable
},
nk = function(a) {
var b = new A(0, 0),
c = a.getAttribute("x");
c && (b.x = parseInt(c, 10));
if (c = a.getAttribute("y")) b.y = parseInt(c, 10);
if (c = (c = a.getAttribute("transform")) && c.match(kk)) b.x += parseFloat(c[1]), c[3] && (b.y += parseFloat(c[3]));
(a = a.getAttribute("style")) && -1 < a.indexOf("translate") && ((c = a.match(lk)) || (c = a.match(mk)),
c && (b.x += parseFloat(c[1]), c[3] && (b.y += parseFloat(c[3]))));
return b
},
pk = function(a) {
for (var b = 0, c = 0, e; a;) {
var f = nk(a);
e = 1;
var g = a.getAttribute("transform");
g && (g = g.match(ok)) && g[1] && (e = parseFloat(g[1]));
b = b * e + f.x;
c = c * e + f.y;
if (-1 != (" " + (a.getAttribute("class") || "") + " ").indexOf(" injectionDiv ")) break;
a = a.parentNode
}
return new A(b, c)
},
kk = /translate\(\s*([-+\d.e]+)([ ,]\s*([-+\d.e]+)\s*\))?/,
ok = /scale\(\s*([-+\d.e]+)\s*\)/,
mk = /transform:\s*translate3d\(\s*([-+\d.e]+)px([ ,]\s*([-+\d.e]+)\s*)px([ ,]\s*([-+\d.e]+)\s*)px\)?/,
lk = /transform:\s*translate\(\s*([-+\d.e]+)px([ ,]\s*([-+\d.e]+)\s*)px\)?/,
O = function(a, b, c) {
a = document.createElementNS("http://www.w3.org/2000/svg", a);
for (var e in b) a.setAttribute(e, b[e]);
document.body.runtimeStyle && (a.runtimeStyle = a.currentStyle = a.style);
c && c.appendChild(a);
return a
},
Ai = function(a) {
return a.ctrlKey && md ? !0 : 2 == a.button
},
qk = function(a, b, c) {
var e = b.createSVGPoint();
e.x = a.clientX;
e.y = a.clientY;
c || (c = b.getScreenCTM().inverse());
return e.matrixTransform(c)
},
rk = function(a) {
return a.length ?
a.reduce(function(a, c) {
return a.length < c.length ? a : c
}).length : 0
},
sk = function(a, b) {
if (!a.length) return 0;
if (1 == a.length) return a[0].length;
for (var c = 0, e = b || rk(a), f = 0; f < e; f++) {
for (var g = a[0][f], h = 1; h < a.length; h++)
if (g != a[h][f]) return c;
" " == g && (c = f + 1)
}
for (h = 1; h < a.length; h++)
if ((g = a[h][f]) && " " != g) return c;
return e
},
tk = function(a, b) {
if (!a.length) return 0;
if (1 == a.length) return a[0].length;
for (var c = 0, e = b || rk(a), f = 0; f < e; f++) {
for (var g = a[0].substr(-f - 1, 1), h = 1; h < a.length; h++)
if (g != a[h].substr(-f - 1, 1)) return c;
" " == g && (c = f + 1)
}
for (h = 1; h < a.length; h++)
if ((g = a[h].charAt(a[h].length - f - 1)) && " " != g) return c;
return e
},
vk = function(a) {
if (!u(a)) return a;
a = uk(a, !1);
return a.length ? a[0] : ""
},
uk = function(a, b) {
var c = [],
e = a.split("");
e.push("");
for (var f = 0, g = [], h = null, m = 0; m < e.length; m++) {
var n = e[m];
0 == f ? "%" == n ? ((n = g.join("")) && c.push(n), g.length = 0, f = 1) : g.push(n) : 1 == f ? "%" == n ? (g.push(n), f = 0) : b && "0" <= n && "9" >= n ? (f = 2, h = n, (n = g.join("")) && c.push(n), g.length = 0) : "{" == n ? f = 3 : (g.push("%", n), f = 0) : 2 == f ? "0" <= n && "9" >= n ? h += n : (c.push(parseInt(h,
10)), m--, f = 0) : 3 == f && ("" == n ? (g.splice(0, 0, "%{"), m--, f = 0) : "}" != n ? g.push(n) : (f = g.join(""), /[a-zA-Z][a-zA-Z0-9_]*/.test(f) ? (n = f.toUpperCase(), (n = 0 == n.lastIndexOf("BKY_", 0) ? n.substring(4) : null) && n in M ? (f = M[n], f = u(f) ? uk(f, !0) : b ? String(f) : f, c = c.concat(f)) : c.push("%{" + f + "}")) : c.push("%{" + f + "}"), f = g.length = 0))
}(n = g.join("")) && c.push(n);
e = [];
for (m = g.length = 0; m < c.length; ++m) "string" == typeof c[m] ? g.push(c[m]) : ((n = g.join("")) && e.push(n), g.length = 0, e.push(c[m]));
(n = g.join("")) && e.push(n);
g.length = 0;
return e
},
Th = function() {
for (var a = wk.length, b = [], c = 0; 20 > c; c++) b[c] = wk.charAt(Math.random() * a);
return b.join("")
},
wk = "!#$%()*+,-./:;=?@[]^_`{|}~ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",
xk = function(a, b, c) {
for (var e = [0], f = [], g = 0; g < a.length; g++) e[e.length - 1] += a[g].length, !0 === b[g] ? (e.push(0), f.push(a[g].charAt(a[g].length - 1))) : !1 === b[g] && e[e.length - 1]++;
a = Math.max.apply(Math, e);
for (g = b = 0; g < e.length; g++) b -= 2 * Math.pow(Math.abs(c - e[g]), 1.5), b -= Math.pow(a - e[g], 1.5), -1 != ".?!".indexOf(f[g]) ? b +=
c / 3 : -1 != ",;)]}".indexOf(f[g]) && (b += c / 4);
1 < e.length && e[e.length - 1] <= e[e.length - 2] && (b += .5);
return b
},
yk = function(a, b, c) {
for (var e = xk(a, b, c), f, g = 0; g < b.length - 1; g++)
if (b[g] != b[g + 1]) {
var h = [].concat(b);
h[g] = !h[g];
h[g + 1] = !h[g + 1];
var m = xk(a, h, c);
m > e && (e = m, f = h)
} return f ? yk(a, f, c) : b
},
Ak = function() {
if (void 0 !== zk) return zk;
if (!q.getComputedStyle) return !1;
var a = document.createElement("p"),
b = "none",
c = {
webkitTransform: "-webkit-transform",
OTransform: "-o-transform",
msTransform: "-ms-transform",
MozTransform: "-moz-transform",
transform: "transform"
};
document.body.insertBefore(a, null);
for (var e in c)
if (void 0 !== a.style[e]) {
a.style[e] = "translate3d(1px,1px,1px)";
b = q.getComputedStyle(a);
if (!b) return document.body.removeChild(a), !1;
b = b.getPropertyValue(c[e])
} document.body.removeChild(a);
return zk = "none" !== b
},
zk, Bk = function(a, b) {
var c = b.nextSibling,
e = b.parentNode;
if (!e) throw "Reference node has no parent.";
c ? e.insertBefore(a, c) : e.appendChild(a)
},
Ck = function(a, b) {
a.style.transform = b;
a.style["-webkit-transform"] = b
};
var Dk = function(a, b, c) {
Dk.superClass_.constructor.call(this, a, b);
this.restrictor_ = c ? c : null;
bk(this, "text");
this.Blockly_FieldTextInput$arrowSize_ = this.Blockly_FieldTextInput$arrowY_ = 0
},
Ek;
w(Dk, Wj);
d = Dk.prototype;
d.CURSOR = "text";
d.spellcheck_ = !0;
d.init = function() {
Dk.superClass_.init.call(this);
this.Blockly_Field_prototype$sourceBlock.isShadowBlock || (this.box_ = O("rect", {
rx: 4,
ry: 4,
x: 0,
y: 0,
width: this.Blockly_Field$size_.width,
height: this.Blockly_Field$size_.height,
fill: I.textField,
stroke: this.Blockly_Field_prototype$sourceBlock.colourTertiary_
}), this.fieldGroup_.insertBefore(this.box_, this.textElement_))
};
d.dispose = function() {
Fk(this);
Dk.superClass_.dispose.call(this)
};
d.Blockly_Field_prototype$setValue = function(a) {
if (null !== a) {
if (this.Blockly_Field_prototype$sourceBlock) {
var b = ck(this, a);
null !== b && (a = b)
}
Wj.prototype.Blockly_Field_prototype$setValue.call(this, a)
}
};
d.Blockly_Field_prototype$setText = function(a) {
null !== a && (a = String(a), a !== this.text && (this.Blockly_Field_prototype$sourceBlock && 0 == Q && P(new Mi(this.Blockly_Field_prototype$sourceBlock, "field", this.name, this.text, a)), Wj.prototype.Blockly_Field_prototype$setText.call(this, a)))
};
d.showEditor = function(a, b, c, e) {
this.workspace_ = this.Blockly_Field_prototype$sourceBlock.workspace;
a = a || !1;
var f = b || !1;
Gk(this, this.Blockly_Field_prototype$sourceBlock.RTL, Hk(this), Ik(), .25);
b = Jk;
b.className += " fieldTextInput";
var g = B("INPUT", "blocklyHtmlInput");
g.setAttribute("spellcheck", this.spellcheck_);
f && g.setAttribute("readonly", "true");
Ek = g;
b.appendChild(g);
c && (this.Blockly_Field_prototype$sourceBlock.RTL ? g.style.paddingLeft = this.Blockly_FieldTextInput$arrowSize_ + 0 + "px" : g.style.paddingRight =
this.Blockly_FieldTextInput$arrowSize_ + 0 + "px", c = B("IMG", "blocklyTextDropDownArrow"), c.setAttribute("src", K.options.pathToMedia + "dropdown-arrow-dark.svg"), c.style.width = this.Blockly_FieldTextInput$arrowSize_ + "px", c.style.height = this.Blockly_FieldTextInput$arrowSize_ + "px", c.style.top = this.Blockly_FieldTextInput$arrowY_ + "px", c.style.cursor = "pointer", this.Blockly_Field_prototype$sourceBlock.RTL ? c.style.left = "11px" : c.style.right = "11px", e && (g.dropDownArrowMouseWrapper_ = T(c, "mousedown", this, e)), b.appendChild(c));
g.value = g.defaultValue = this.text;
g.oldValue_ = null;
Kk(this);
this.resizeEditor();
a || (g.focus(), g.select(), g.setSelectionRange(0, 99999));
g.onKeyDownWrapper_ = N(g, "keydown", this, this.onHtmlInputKeyDown_);
g.onKeyUpWrapper_ = N(g, "keyup", this, this.onHtmlInputChange_);
g.onKeyPressWrapper_ = N(g, "keypress", this, this.onHtmlInputChange_);
g.onInputWrapper_ = T(g, "input", this, this.onHtmlInputChange_);
g.onWorkspaceChangeWrapper_ = this.resizeEditor.bind(this);
this.workspace_.addChangeListener(g.onWorkspaceChangeWrapper_);
b.style.transition += ",padding 0.25s,width 0.25s,height 0.25s,margin-left 0.25s";
b.style.transition = "box-shadow 0.25s";
g.style.transition = "font-size 0.25s";
g.style.fontSize = "14pt";
b.style.boxShadow = "0px 0px 0px 4px " + I.fieldShadow
};
d.onHtmlInputKeyDown_ = function(a) {
var b = Ek;
13 == a.keyCode ? L() : 27 == a.keyCode ? (b.value = b.defaultValue, L()) : 9 == a.keyCode && (L(), this.Blockly_Field_prototype$sourceBlock.tab(this, !a.shiftKey), a.preventDefault())
};
var Lk = [97, 99, 118, 120];
Dk.prototype.onHtmlInputChange_ = function(a) {
if ("keypress" === a.type && this.restrictor_) {
var b = !1;
if (jd) {
var c = a.charCode;
if (32 > c || 127 == c) b = !0;
else if (a.metaKey || a.ctrlKey) b = -1 < Lk.indexOf(c)
} else c = a.keyCode;
c = String.fromCharCode(c);
if (!b && !this.restrictor_.test(c) && a.preventDefault) {
a.preventDefault();
return
}
}
a = Ek;
b = a.value;
b !== a.oldValue_ ? (a.oldValue_ = b, this.Blockly_Field_prototype$setText(b), Kk(this)) : kd && this.Blockly_Field_prototype$sourceBlock.render();
this.resizeEditor()
};
var Kk = function(a) {
var b = !0,
c = Ek;
a.Blockly_Field_prototype$sourceBlock && (b = ck(a, c.value));
null === b ? Hi(c, "blocklyInvalidInput") : ak(c, "blocklyInvalidInput")
};
Dk.prototype.resizeEditor = function() {
var a = this.Blockly_Field_prototype$sourceBlock.workspace.scale,
b = Jk;
var c = String(Ek.style.fontSize);
var e = Ek.style.fontFamily,
f = Ek.style.fontWeight,
g = Ek.value,
h = document.createElement("canvas").getContext("2d");
h.font = f + " " + c + " " + e;
c = (h.measureText(g).width + 45) * a;
c = Math.max(c, 52 * a);
c = Math.min(c, 96 * a);
b.style.width = c / a + 1 + "px";
b.style.height = "41px";
b.style.transform = "scale(" + a + ")";
b.style.marginLeft = -.5 * (c - Mk(this.Blockly_Field_prototype$sourceBlock).width * a) + "px";
e = (2 == this.Blockly_Field_prototype$sourceBlock.outputShape_ ? 16 : 4) + .5;
b.style.borderRadius = e + "px";
Ek.style.borderRadius = e + "px";
b.style.borderColor = this.Blockly_Field_prototype$sourceBlock.colourTertiary_;
e = Bj(Zj(this));
e.x -= a / 2;
e.y -= a / 2;
this.Blockly_Field_prototype$sourceBlock.RTL && (e.x += c, e.x -= b.offsetWidth * a, e.x += 1 * a);
e.y += 1 * a;
jd && Jk.style.top && (e.x += 2 * a, e.y += 1 * a);
kd && (e.y -= 1 * a);
b.style.left = e.x + "px";
b.style.top = e.y + "px"
};
var Hk = function(a) {
return function() {
var b = Jk,
c = Ek,
e = c.value;
if (a.Blockly_Field_prototype$sourceBlock)
if (e = ck(a, e), null === e) e = c.defaultValue;
else if (a.onFinishEditing_) a.onFinishEditing_(e);
a.Blockly_Field_prototype$setText(e);
a.Blockly_Field_prototype$sourceBlock.rendered && a.render();
Oh(c.onKeyDownWrapper_);
Oh(c.onKeyUpWrapper_);
Oh(c.onKeyPressWrapper_);
Oh(c.onInputWrapper_);
c.dropDownArrowMouseWrapper_ && Oh(c.dropDownArrowMouseWrapper_);
a.workspace_.removeChangeListener(c.onWorkspaceChangeWrapper_);
ci(!1);
c.style.fontSize = "12pt";
b.style.boxShadow = "";
a.Blockly_Field_prototype$sourceBlock && (c = Mk(a.Blockly_Field_prototype$sourceBlock), b.style.width = c.width + 1 + "px", b.style.height = c.height + 1 + "px");
b.style.marginLeft = 0
}
},
Ik = function() {
return function() {
var a = Jk.style;
a.width = "auto";
a.height = "auto";
a.fontSize = "";
Jk.className = "blocklyWidgetDiv";
Jk.removeAttribute("style");
Ek.style.transition = "";
Ek = null
}
};
var Nk = function(a, b) {
this.symbol_ = O("tspan", {}, null);
this.symbol_.appendChild(document.createTextNode("\u00b0"));
a = a && !isNaN(a) ? String(a) : "0";
Nk.superClass_.constructor.call(this, a, b);
bk(this, "angle")
};
w(Nk, Dk);
Nk.prototype.showEditor = function() {
Nk.superClass_.showEditor.call(this, ld || nd || pd);
ei();
Jj.innerHTML = "";
var a = O("svg", {
xmlns: "http://www.w3.org/2000/svg",
"xmlns:html": "http://www.w3.org/1999/xhtml",
"xmlns:xlink": "http://www.w3.org/1999/xlink",
version: "1.1",
height: "100px",
width: "100px"
}, Jj);
O("circle", {
cx: 50,
cy: 50,
r: 49,
"class": "blocklyAngleCircle"
}, a);
this.gauge_ = O("path", {
"class": "blocklyAngleGauge"
}, a);
this.line_ = O("line", {
x1: 50,
y1: 50,
"class": "blocklyAngleLine"
}, a);
for (var b = 0; 360 > b; b += 15) O("line", {
x1: 99,
y1: 50,
x2: 99 - (0 == b % 45 ? 10 : 5),
y2: 50,
"class": "blocklyAngleMarks",
transform: "rotate(" + b + ",50,50)"
}, a);
Qj(this.Blockly_Field_prototype$sourceBlock.parentBlock.colour_, this.Blockly_Field_prototype$sourceBlock.colourTertiary_);
Rj(this.Blockly_Field_prototype$sourceBlock.parentBlock.category_);
Uj(this, this.Blockly_Field_prototype$sourceBlock);
T(a, "click", this, function() {
L();
Vj();
Oh(this.moveWrapper_)
});
this.moveWrapper_ = T(a, "mousemove", this, this.Blockly_FieldAngle_prototype$onMouseMove);
Ok(this)
};
Nk.prototype.Blockly_FieldAngle_prototype$onMouseMove = function(a) {
var b = this.gauge_.ownerSVGElement.getBoundingClientRect(),
c = a.clientX - b.left - 50;
a = a.clientY - b.top - 50;
b = Math.atan(-a / c);
isNaN(b) || (b = 180 * b / Math.PI, 0 > c ? b += 180 : 0 < a && (b += 360), b = 15 * Math.round((450 - b) / 15), b = ck(this, String(b)), Ek.value = b, this.Blockly_Field_prototype$setValue(b), Kk(this), this.resizeEditor())
};
Nk.prototype.Blockly_Field_prototype$setText = function(a) {
Nk.superClass_.Blockly_Field_prototype$setText.call(this, a);
this.textElement_ && (Ok(this), this.Blockly_Field_prototype$sourceBlock.RTL ? this.textElement_.insertBefore(this.symbol_, this.textElement_.firstChild) : this.textElement_.appendChild(this.symbol_), this.Blockly_Field$size_.width = 0)
};
var Ok = function(a) {
if (a.gauge_) {
var b = (Number(a.Blockly_Field_prototype$getText()) + 90) * Math.PI / 180,
c = ["M ", 50, ",", 50],
e = 50,
f = 50;
if (!isNaN(b)) {
var g = 90 * Math.PI / 180,
h = 49 * Math.cos(g),
m = -49 * Math.sin(g);
b = 2 * g - b;
e += 49 * Math.cos(b);
f -= 49 * Math.sin(b);
c.push(" l ", h, ",", m, " A ", 49, ",", 49, " 0 ", 1 - Math.abs(Math.floor((b - g) / Math.PI) % 2), " ", Number(!0), " ", e, ",", f, " z")
}
a.gauge_.setAttribute("d", c.join(""));
a.line_.setAttribute("x2", e);
a.line_.setAttribute("y2", f)
}
};
Nk.prototype.classValidator = function(a) {
if (null === a) return null;
a = parseFloat(a || 0);
if (isNaN(a)) return null;
a %= 360;
0 > a && (a += 360);
180 < a && (a -= 360);
return String(a)
};
var Pk = function(a, b) {
Pk.superClass_.constructor.call(this, "", b);
this.Blockly_Field_prototype$setValue(a);
bk(this, "checkbox")
};
w(Pk, Wj);
d = Pk.prototype;
d.CURSOR = "default";
d.init = function() {
this.fieldGroup_ || (Pk.superClass_.init.call(this), this.checkElement_ = O("text", {
"class": "blocklyText blocklyCheckbox",
x: -3,
y: 14
}, this.fieldGroup_), this.checkElement_.appendChild(document.createTextNode("\u2713")), this.checkElement_.style.display = this.state_ ? "block" : "none")
};
d.getValue = function() {
return String(this.state_).toUpperCase()
};
d.Blockly_Field_prototype$setValue = function(a) {
a = "string" == typeof a ? "TRUE" == a.toUpperCase() : !!a;
this.state_ !== a && (this.Blockly_Field_prototype$sourceBlock && 0 == Q && P(new Mi(this.Blockly_Field_prototype$sourceBlock, "field", this.name, this.state_, String(a))), this.state_ = a, this.checkElement_ && (this.checkElement_.style.display = a ? "block" : "none"))
};
d.showEditor = function() {
var a = !this.state_;
this.Blockly_Field_prototype$sourceBlock && (a = ck(this, String(a)));
null !== a && this.Blockly_Field_prototype$setValue(String(a).toUpperCase())
};
var Qk = {
aliceblue: "#f0f8ff",
antiquewhite: "#faebd7",
aqua: "#00ffff",
aquamarine: "#7fffd4",
azure: "#f0ffff",
beige: "#f5f5dc",
bisque: "#ffe4c4",
black: "#000000",
blanchedalmond: "#ffebcd",
blue: "#0000ff",
blueviolet: "#8a2be2",
brown: "#a52a2a",
burlywood: "#deb887",
cadetblue: "#5f9ea0",
chartreuse: "#7fff00",
chocolate: "#d2691e",
coral: "#ff7f50",
cornflowerblue: "#6495ed",
cornsilk: "#fff8dc",
crimson: "#dc143c",
cyan: "#00ffff",
darkblue: "#00008b",
darkcyan: "#008b8b",
darkgoldenrod: "#b8860b",
darkgray: "#a9a9a9",
darkgreen: "#006400",
darkgrey: "#a9a9a9",
darkkhaki: "#bdb76b",
darkmagenta: "#8b008b",
darkolivegreen: "#556b2f",
darkorange: "#ff8c00",
darkorchid: "#9932cc",
darkred: "#8b0000",
darksalmon: "#e9967a",
darkseagreen: "#8fbc8f",
darkslateblue: "#483d8b",
darkslategray: "#2f4f4f",
darkslategrey: "#2f4f4f",
darkturquoise: "#00ced1",
darkviolet: "#9400d3",
deeppink: "#ff1493",
deepskyblue: "#00bfff",
dimgray: "#696969",
dimgrey: "#696969",
dodgerblue: "#1e90ff",
firebrick: "#b22222",
floralwhite: "#fffaf0",
forestgreen: "#228b22",
fuchsia: "#ff00ff",
gainsboro: "#dcdcdc",
ghostwhite: "#f8f8ff",
gold: "#ffd700",
goldenrod: "#daa520",
gray: "#808080",
green: "#008000",
greenyellow: "#adff2f",
grey: "#808080",
honeydew: "#f0fff0",
hotpink: "#ff69b4",
indianred: "#cd5c5c",
indigo: "#4b0082",
ivory: "#fffff0",
khaki: "#f0e68c",
lavender: "#e6e6fa",
lavenderblush: "#fff0f5",
lawngreen: "#7cfc00",
lemonchiffon: "#fffacd",
lightblue: "#add8e6",
lightcoral: "#f08080",
lightcyan: "#e0ffff",
lightgoldenrodyellow: "#fafad2",
lightgray: "#d3d3d3",
lightgreen: "#90ee90",
lightgrey: "#d3d3d3",
lightpink: "#ffb6c1",
lightsalmon: "#ffa07a",
lightseagreen: "#20b2aa",
lightskyblue: "#87cefa",
lightslategray: "#778899",
lightslategrey: "#778899",
lightsteelblue: "#b0c4de",
lightyellow: "#ffffe0",
lime: "#00ff00",
limegreen: "#32cd32",
linen: "#faf0e6",
magenta: "#ff00ff",
maroon: "#800000",
mediumaquamarine: "#66cdaa",
mediumblue: "#0000cd",
mediumorchid: "#ba55d3",
mediumpurple: "#9370db",
mediumseagreen: "#3cb371",
mediumslateblue: "#7b68ee",
mediumspringgreen: "#00fa9a",
mediumturquoise: "#48d1cc",
mediumvioletred: "#c71585",
midnightblue: "#191970",
mintcream: "#f5fffa",
mistyrose: "#ffe4e1",
moccasin: "#ffe4b5",
navajowhite: "#ffdead",
navy: "#000080",
oldlace: "#fdf5e6",
olive: "#808000",
olivedrab: "#6b8e23",
orange: "#ffa500",
orangered: "#ff4500",
orchid: "#da70d6",
palegoldenrod: "#eee8aa",
palegreen: "#98fb98",
paleturquoise: "#afeeee",
palevioletred: "#db7093",
papayawhip: "#ffefd5",
peachpuff: "#ffdab9",
peru: "#cd853f",
pink: "#ffc0cb",
plum: "#dda0dd",
powderblue: "#b0e0e6",
purple: "#800080",
red: "#ff0000",
rosybrown: "#bc8f8f",
royalblue: "#4169e1",
saddlebrown: "#8b4513",
salmon: "#fa8072",
sandybrown: "#f4a460",
seagreen: "#2e8b57",
seashell: "#fff5ee",
sienna: "#a0522d",
silver: "#c0c0c0",
skyblue: "#87ceeb",
slateblue: "#6a5acd",
slategray: "#708090",
slategrey: "#708090",
snow: "#fffafa",
springgreen: "#00ff7f",
steelblue: "#4682b4",
tan: "#d2b48c",
teal: "#008080",
thistle: "#d8bfd8",
tomato: "#ff6347",
turquoise: "#40e0d0",
violet: "#ee82ee",
wheat: "#f5deb3",
white: "#ffffff",
whitesmoke: "#f5f5f5",
yellow: "#ffff00",
yellowgreen: "#9acd32"
};
var Vk = function(a) {
var b = {};
a = String(a);
var c = "#" == a.charAt(0) ? a : "#" + a;
if (Rk.test(c)) return b.hex = Sk(c), b.type = "hex", b;
a: {
var e = a.match(Tk);
if (e) {
c = Number(e[1]);
var f = Number(e[2]);
e = Number(e[3]);
if (0 <= c && 255 >= c && 0 <= f && 255 >= f && 0 <= e && 255 >= e) {
c = [c, f, e];
break a
}
}
c = []
}
if (c.length) return b.hex = Uk(c), b.type = "rgb", b;
if (Qk && (c = Qk[a.toLowerCase()])) return b.hex = c, b.type = "named", b;
throw Error("v`" + a);
},
Wk = /#(.)(.)(.)/,
Sk = function(a) {
if (!Rk.test(a)) throw Error("w`" + a);
4 == a.length && (a = a.replace(Wk, "#$1$1$2$2$3$3"));
return a.toLowerCase()
},
Xk = function(a) {
a = Sk(a);
return [parseInt(a.substr(1, 2), 16), parseInt(a.substr(3, 2), 16), parseInt(a.substr(5, 2), 16)]
},
Uk = function(a) {
var b = a[0],
c = a[1];
a = a[2];
b = Number(b);
c = Number(c);
a = Number(a);
if (b != (b & 255) || c != (c & 255) || a != (a & 255)) throw Error("x`" + b + "`" + c + "`" + a);
b = Yk(b.toString(16));
c = Yk(c.toString(16));
a = Yk(a.toString(16));
return "#" + b + c + a
},
Rk = /^#(?:[0-9a-f]{3}){1,2}$/i,
Tk = /^(?:rgb)?\((0|[1-9]\d{0,2}),\s?(0|[1-9]\d{0,2}),\s?(0|[1-9]\d{0,2})\)$/i,
Yk = function(a) {
return 1 == a.length ?
"0" + a : a
},
Zk = function(a) {
var b = 0,
c = 0,
e = 0,
f = Math.floor(a / 60),
g = a / 60 - f;
a = 165.75 * .55;
var h = 165.75 * (1 - .45 * g);
g = 165.75 * (1 - .45 * (1 - g));
switch (f) {
case 1:
b = h;
c = 165.75;
e = a;
break;
case 2:
b = a;
c = 165.75;
e = g;
break;
case 3:
b = a;
c = h;
e = 165.75;
break;
case 4:
b = g;
c = a;
e = 165.75;
break;
case 5:
b = 165.75;
c = a;
e = h;
break;
case 6:
case 0:
b = 165.75, c = g, e = a
}
return [Math.floor(b), Math.floor(c), Math.floor(e)]
},
$k = function(a, b) {
var c = [0, 0, 0];
b = Mb(b, 1);
return [Math.round(b * c[0] + (1 - b) * a[0]), Math.round(b * c[1] + (1 - b) * a[1]), Math.round(b * c[2] + (1 - b) *
a[2])]
};
var al = function() {};
xa(al);
al.prototype.nextId_ = 0;
var cl = function(a) {
le.call(this);
this.goog_ui_Component$dom_ = a || cg();
this.rightToLeft_ = bl;
this.goog_ui_Component$id_ = null;
this.inDocument_ = !1;
this.goog_ui_Component$element_ = null;
this.googUiComponentHandler_ = void 0;
this.childIndex_ = this.children_ = this.goog_ui_Component$parent_ = this.model_ = null;
this.wasDecorated_ = !1
};
w(cl, le);
cl.prototype.idGenerator_ = al.getInstance();
var bl = null,
dl = function(a, b) {
switch (a) {
case 1:
return b ? "disable" : "enable";
case 2:
return b ? "highlight" : "unhighlight";
case 4:
return b ? "activate" : "deactivate";
case 8:
return b ? "select" : "unselect";
case 16:
return b ? "check" : "uncheck";
case 32:
return b ? "focus" : "blur";
case 64:
return b ? "open" : "close"
}
throw Error("y");
};
cl.prototype.getId = function() {
return this.goog_ui_Component$id_ || (this.goog_ui_Component$id_ = ":" + (this.idGenerator_.nextId_++).toString(36))
};
var el = function(a, b) {
if (a.goog_ui_Component$parent_ && a.goog_ui_Component$parent_.childIndex_) {
var c = a.goog_ui_Component$parent_.childIndex_,
e = a.goog_ui_Component$id_;
e in c && delete c[e];
c = a.goog_ui_Component$parent_.childIndex_;
if (null !== c && b in c) throw Error("d`" + b);
c[b] = a
}
a.goog_ui_Component$id_ = b
};
cl.prototype.getElement = function() {
return this.goog_ui_Component$element_
};
var fl = function(a) {
a.googUiComponentHandler_ || (a.googUiComponentHandler_ = new Lg(a));
return a.googUiComponentHandler_
},
hl = function(a, b) {
if (a == b) throw Error("z");
if (b && a.goog_ui_Component$parent_ && a.goog_ui_Component$id_ && gl(a.goog_ui_Component$parent_, a.goog_ui_Component$id_) && a.goog_ui_Component$parent_ != b) throw Error("z");
a.goog_ui_Component$parent_ = b;
cl.superClass_.setParentEventTarget.call(a, b)
};
cl.prototype.goog_ui_Component_prototype$getParent = function() {
return this.goog_ui_Component$parent_
};
cl.prototype.setParentEventTarget = function(a) {
if (this.goog_ui_Component$parent_ && this.goog_ui_Component$parent_ != a) throw Error("A");
cl.superClass_.setParentEventTarget.call(this, a)
};
cl.prototype.createDom = function() {
this.goog_ui_Component$element_ = zg(this.goog_ui_Component$dom_, "DIV")
};
cl.prototype.render = function(a) {
il(this, a)
};
var il = function(a, b, c) {
if (a.inDocument_) throw Error("B");
a.goog_ui_Component$element_ || a.createDom();
b ? b.insertBefore(a.goog_ui_Component$element_, c || null) : a.goog_ui_Component$dom_.document_.body.appendChild(a.goog_ui_Component$element_);
a.goog_ui_Component$parent_ && !a.goog_ui_Component$parent_.inDocument_ || a.enterDocument()
};
d = cl.prototype;
d.goog_ui_Component_prototype$decorate = function(a) {
if (this.inDocument_) throw Error("B");
if (a && this.goog_ui_Component_prototype$canDecorate(a)) {
this.wasDecorated_ = !0;
var b = bg(a);
this.goog_ui_Component$dom_ && this.goog_ui_Component$dom_.document_ == b || (this.goog_ui_Component$dom_ = cg(a));
this.decorateInternal(a);
this.enterDocument()
} else throw Error("C");
};
d.goog_ui_Component_prototype$canDecorate = function() {
return !0
};
d.decorateInternal = function(a) {
this.goog_ui_Component$element_ = a
};
d.enterDocument = function() {
this.inDocument_ = !0;
jl(this, function(a) {
!a.inDocument_ && a.getElement() && a.enterDocument()
})
};
d.exitDocument = function() {
jl(this, function(a) {
a.inDocument_ && a.exitDocument()
});
this.googUiComponentHandler_ && Ng(this.googUiComponentHandler_);
this.inDocument_ = !1
};
d.disposeInternal = function() {
this.inDocument_ && this.exitDocument();
this.googUiComponentHandler_ && (this.googUiComponentHandler_.dispose(), delete this.googUiComponentHandler_);
jl(this, function(a) {
a.dispose()
});
!this.wasDecorated_ && this.goog_ui_Component$element_ && C(this.goog_ui_Component$element_);
this.goog_ui_Component$parent_ = this.model_ = this.goog_ui_Component$element_ = this.childIndex_ = this.children_ = null;
cl.superClass_.disposeInternal.call(this)
};
d.goog_ui_Component_prototype$addChildAt = function(a, b, c) {
if (a.inDocument_ && (c || !this.inDocument_)) throw Error("B");
if (0 > b || b > kl(this)) throw Error("D");
this.childIndex_ && this.children_ || (this.childIndex_ = {}, this.children_ = []);
if (a.goog_ui_Component_prototype$getParent() == this) {
var e = a.getId();
this.childIndex_[e] = a;
eb(this.children_, a)
} else {
e = this.childIndex_;
var f = a.getId();
if (null !== e && f in e) throw Error("d`" + f);
e[f] = a
}
hl(a, this);
jb(this.children_, b, 0, a);
a.inDocument_ && this.inDocument_ && a.goog_ui_Component_prototype$getParent() ==
this ? (c = this.goog_ui_Component_prototype$getContentElement(), b = c.childNodes[b] || null, b != a.getElement() && c.insertBefore(a.getElement(), b)) : c ? (this.goog_ui_Component$element_ || this.createDom(), b = ll(this, b + 1), il(a, this.goog_ui_Component_prototype$getContentElement(), b ? b.goog_ui_Component$element_ : null)) : this.inDocument_ && !a.inDocument_ && a.goog_ui_Component$element_ && a.goog_ui_Component$element_.parentNode && 1 == a.goog_ui_Component$element_.parentNode.nodeType && a.enterDocument()
};
d.goog_ui_Component_prototype$getContentElement = function() {
return this.goog_ui_Component$element_
};
var ml = function(a) {
null == a.rightToLeft_ && (a.rightToLeft_ = "rtl" == yj(a.inDocument_ ? a.goog_ui_Component$element_ : a.goog_ui_Component$dom_.document_.body, "direction"));
return a.rightToLeft_
};
cl.prototype.goog_ui_Component_prototype$setRightToLeft = function(a) {
if (this.inDocument_) throw Error("B");
this.rightToLeft_ = a
};
var kl = function(a) {
return a.children_ ? a.children_.length : 0
},
gl = function(a, b) {
if (a.childIndex_ && b) {
var c = a.childIndex_;
c = (null !== c && b in c ? c[b] : void 0) || null
} else c = null;
return c
},
ll = function(a, b) {
return a.children_ ? a.children_[b] || null : null
},
jl = function(a, b, c) {
a.children_ && Ya(a.children_, b, c)
},
nl = function(a, b) {
return a.children_ && b ? Wa(a.children_, b) : -1
};
cl.prototype.removeChild = function(a, b) {
if (a) {
var c = u(a) ? a : a.getId();
a = gl(this, c);
if (c && a) {
var e = this.childIndex_;
c in e && delete e[c];
eb(this.children_, a);
b && (a.exitDocument(), a.goog_ui_Component$element_ && C(a.goog_ui_Component$element_));
hl(a, null)
}
}
if (!a) throw Error("E");
return a
};
var pl = function(a, b) {
le.call(this);
a && ol(this, a, b)
};
w(pl, le);
d = pl.prototype;
d.goog_events_KeyHandler_prototype$element_ = null;
d.keyPressKey_ = null;
d.keyDownKey_ = null;
d.keyUpKey_ = null;
d.lastKey_ = -1;
d.keyCode_ = -1;
d.altKey_ = !1;
var ql = {
3: 13,
12: 144,
63232: 38,
63233: 40,
63234: 37,
63235: 39,
63236: 112,
63237: 113,
63238: 114,
63239: 115,
63240: 116,
63241: 117,
63242: 118,
63243: 119,
63244: 120,
63245: 121,
63246: 122,
63247: 123,
63248: 44,
63272: 46,
63273: 36,
63275: 35,
63276: 33,
63277: 34,
63289: 144,
63302: 45
},
rl = {
Up: 38,
Down: 40,
Left: 37,
Right: 39,
Enter: 13,
F1: 112,
F2: 113,
F3: 114,
F4: 115,
F5: 116,
F6: 117,
F7: 118,
F8: 119,
F9: 120,
F10: 121,
F11: 122,
F12: 123,
"U+007F": 46,
Home: 36,
End: 35,
PageUp: 33,
PageDown: 34,
Insert: 45
},
sl = z || id || kd && wd("525"),
tl = md && jd;
pl.prototype.handleKeyDown_ = function(a) {
if (kd || id)
if (17 == this.lastKey_ && !a.ctrlKey || 18 == this.lastKey_ && !a.altKey || md && 91 == this.lastKey_ && !a.metaKey) this.keyCode_ = this.lastKey_ = -1; - 1 == this.lastKey_ && (a.ctrlKey && 17 != a.goog_events_BrowserEvent$keyCode ? this.lastKey_ = 17 : a.altKey && 18 != a.goog_events_BrowserEvent$keyCode ? this.lastKey_ = 18 : a.metaKey && 91 != a.goog_events_BrowserEvent$keyCode && (this.lastKey_ = 91));
sl && !Jg(a.goog_events_BrowserEvent$keyCode, this.lastKey_, a.shiftKey, a.ctrlKey, a.altKey, a.metaKey) ?
this.handleEvent(a) : (this.keyCode_ = Ig(a.goog_events_BrowserEvent$keyCode), tl && (this.altKey_ = a.altKey))
};
pl.prototype.handleKeyup_ = function(a) {
this.keyCode_ = this.lastKey_ = -1;
this.altKey_ = a.altKey
};
pl.prototype.handleEvent = function(a) {
var b = a.event_,
c = b.altKey;
if (z && "keypress" == a.type) {
var e = this.keyCode_;
var f = 13 != e && 27 != e ? b.keyCode : 0
} else(kd || id) && "keypress" == a.type ? (e = this.keyCode_, f = 0 <= b.charCode && 63232 > b.charCode && Hg(e) ? b.charCode : 0) : hd && !kd ? (e = this.keyCode_, f = Hg(e) ? b.keyCode : 0) : (e = b.keyCode || this.keyCode_, f = b.charCode || 0, tl && (c = this.altKey_), md && 63 == f && 224 == e && (e = 191));
var g = e = Ig(e);
e ? 63232 <= e && e in ql ? g = ql[e] : 25 == e && a.shiftKey && (g = 9) : b.keyIdentifier && b.keyIdentifier in rl && (g = rl[b.keyIdentifier]);
a = g == this.lastKey_;
this.lastKey_ = g;
b = new ul(g, f, a, b);
b.altKey = c;
ne(this, b)
};
pl.prototype.getElement = function() {
return this.goog_events_KeyHandler_prototype$element_
};
var ol = function(a, b, c) {
a.keyUpKey_ && vl(a);
a.goog_events_KeyHandler_prototype$element_ = b;
a.keyPressKey_ = $d(a.goog_events_KeyHandler_prototype$element_, "keypress", a, c);
a.keyDownKey_ = $d(a.goog_events_KeyHandler_prototype$element_, "keydown", a.handleKeyDown_, c, a);
a.keyUpKey_ = $d(a.goog_events_KeyHandler_prototype$element_, "keyup", a.handleKeyup_, c, a)
},
vl = function(a) {
a.keyPressKey_ && (he(a.keyPressKey_), he(a.keyDownKey_), he(a.keyUpKey_), a.keyPressKey_ = null, a.keyDownKey_ = null, a.keyUpKey_ = null);
a.goog_events_KeyHandler_prototype$element_ =
null;
a.lastKey_ = -1;
a.keyCode_ = -1
};
pl.prototype.disposeInternal = function() {
pl.superClass_.disposeInternal.call(this);
vl(this)
};
var ul = function(a, b, c, e) {
Jd.call(this, e);
this.type = "key";
this.goog_events_BrowserEvent$keyCode = a;
this.repeat = c
};
w(ul, Jd);
var wl;
Xb("A AREA BUTTON HEAD INPUT LINK MENU META OPTGROUP OPTION PROGRESS STYLE SELECT SOURCE TEXTAREA TITLE TRACK".split(" "));
var xl = function(a, b) {
b ? a.setAttribute("role", b) : a.removeAttribute("role")
},
yl = function(a, b, c) {
za(c) && (c = c.join(" "));
var e = "aria-" + b;
"" === c || void 0 == c ? (wl || (wl = {
atomic: !1,
autocomplete: "none",
dropeffect: "none",
haspopup: !1,
live: "off",
multiline: !1,
multiselectable: !1,
orientation: "vertical",
readonly: !1,
relevant: "additions text",
required: !1,
sort: "none",
busy: !1,
disabled: !1,
hidden: !1,
invalid: "false"
}), c = wl, b in c ? a.setAttribute(e, c[b]) : a.removeAttribute(e)) : a.setAttribute(e, c)
},
zl = function(a) {
a.removeAttribute("aria-activedescendant")
},
Al = function(a, b) {
var c = a.getAttribute("aria-" + b);
return null == c || void 0 == c ? "" : String(c)
};
var Bl = function() {},
Cl;
xa(Bl);
var Dl = {
button: "pressed",
checkbox: "checked",
menuitem: "selected",
menuitemcheckbox: "checked",
menuitemradio: "checked",
radio: "checked",
tab: "selected",
treeitem: "selected"
};
Bl.prototype.goog_ui_ControlRenderer_prototype$getAriaRole = function() {};
Bl.prototype.createDom = function(a) {
return a.goog_ui_Component$dom_.createDom("DIV", El(this, a).join(" "), a.goog_ui_Control_prototype$content_)
};
Bl.prototype.goog_ui_ControlRenderer_prototype$getContentElement = function(a) {
return a
};
var Gl = function(a, b, c) {
if (a = a.getElement ? a.getElement() : a) {
var e = [b];
z && !wd("7") && (e = Fl(kb(a), b), e.push(b));
(c ? nb : pb)(a, e)
}
};
Bl.prototype.goog_ui_ControlRenderer_prototype$canDecorate = function() {
return !0
};
Bl.prototype.goog_ui_ControlRenderer_prototype$decorate = function(a, b) {
b.id && el(a, b.id);
var c = this.goog_ui_ControlRenderer_prototype$getContentElement(b);
c && c.firstChild ? a.setContentInternal(c.firstChild.nextSibling ? gb(c.childNodes) : c.firstChild) : a.setContentInternal(null);
var e = 0,
f = this.goog_ui_ControlRenderer_prototype$getCssClass(),
g = this.goog_ui_ControlRenderer_prototype$getCssClass(),
h = !1,
m = !1,
n = !1,
p = gb(kb(b));
Ya(p, function(a) {
h || a != f ? m || a != g ? e |= this.getStateFromClass(a) : m = !0 : (h = !0, g == f && (m = !0));
1 == this.getStateFromClass(a) && ug(c) && vg(c) && tg(c, !1)
}, this);
a.state_ = e;
h || (p.push(f), g == f && (m = !0));
m || p.push(g);
var r = a.extraClassNames_;
r && p.push.apply(p, r);
if (z && !wd("7")) {
var t = Fl(p);
0 < t.length && (p.push.apply(p, t), n = !0)
}
if (!h || !m || r || n) b.className = p.join(" ");
return b
};
var Hl = function(a, b, c) {
if (a = c || a.goog_ui_ControlRenderer_prototype$getAriaRole()) c = b.getAttribute("role") || null, a != c && xl(b, a)
},
Jl = function(a, b) {
a.isVisible() || yl(b, "hidden", !a.isVisible());
a.isEnabled() || Il(b, 1, !a.isEnabled());
a.supportedStates_ & 8 && Il(b, 8, !!(a.state_ & 8));
a.supportedStates_ & 16 && Il(b, 16, !!(a.state_ & 16));
a.supportedStates_ & 64 && Il(b, 64, !!(a.state_ & 64))
},
Kl = function(a, b) {
var c;
if (a.supportedStates_ & 32 && (c = a.getElement())) {
if (!b && a.state_ & 32) {
try {
c.blur()
} catch (e) {}
a.state_ & 32 && a.goog_ui_Control_prototype$handleBlur(null)
}(ug(c) &&
vg(c)) != b && tg(c, b)
}
};
Bl.prototype.setVisible = function(a, b) {
Ej(a, b);
a && yl(a, "hidden", !b)
};
var Il = function(a, b, c) {
Cl || (Cl = {
1: "disabled",
8: "selected",
16: "checked",
64: "expanded"
});
b = Cl[b];
var e = a.getAttribute("role") || null;
e && (e = Dl[e] || b, b = "checked" == b || "selected" == b ? e : b);
b && yl(a, b, c)
};
Bl.prototype.goog_ui_ControlRenderer_prototype$setContent = function(a, b) {
var c = this.goog_ui_ControlRenderer_prototype$getContentElement(a);
if (c && (ng(c), b))
if (u(b)) qg(c, b);
else {
var e = function(a) {
if (a) {
var b = bg(c);
c.appendChild(u(a) ? b.createTextNode(a) : a)
}
};
za(b) ? Ya(b, e) : !Aa(b) || "nodeType" in b ? e(b) : Ya(gb(b), e)
}
};
Bl.prototype.goog_ui_ControlRenderer_prototype$getCssClass = function() {
return "goog-control"
};
var El = function(a, b) {
var c = a.goog_ui_ControlRenderer_prototype$getCssClass(),
e = [c],
f = a.goog_ui_ControlRenderer_prototype$getCssClass();
f != c && e.push(f);
c = b.getState();
for (f = []; c;) {
var g = c & -c;
f.push(a.getClassForState(g));
c &= ~g
}
e.push.apply(e, f);
(c = b.extraClassNames_) && e.push.apply(e, c);
z && !wd("7") && e.push.apply(e, Fl(e));
return e
},
Fl = function(a, b) {
var c = [];
b && (a = fb(a, [b]));
Ya([], function(e) {
!ab(e, Ka(db, a)) || b && !db(e, b) || c.push(e.join("_"))
});
return c
};
Bl.prototype.getClassForState = function(a) {
this.classByState_ || Ll(this);
return this.classByState_[a]
};
Bl.prototype.getStateFromClass = function(a) {
if (!this.stateByClass_) {
this.classByState_ || Ll(this);
var b = this.classByState_,
c = {},
e;
for (e in b) c[b[e]] = e;
this.stateByClass_ = c
}
a = parseInt(this.stateByClass_[a], 10);
return isNaN(a) ? 0 : a
};
var Ll = function(a) {
var b = a.goog_ui_ControlRenderer_prototype$getCssClass();
b.replace(/\xa0|\s/g, " ");
a.classByState_ = {
1: b + "-disabled",
2: b + "-hover",
4: b + "-active",
8: b + "-selected",
16: b + "-checked",
32: b + "-focused",
64: b + "-open"
}
};
var Nl = function(a, b) {
if (!a) throw Error("F`" + a);
if (!Ba(b)) throw Error("G`" + b);
Ml[a] = b
},
Ol = {},
Ml = {};
var U = function(a, b, c) {
cl.call(this, c);
if (!b) {
b = this.constructor;
for (var e; b;) {
e = Fa(b);
if (e = Ol[e]) break;
b = b.superClass_ ? b.superClass_.constructor : null
}
b = e ? Ba(e.getInstance) ? e.getInstance() : new e : null
}
this.goog_ui_Control_prototype$renderer_ = b;
this.setContentInternal(va(a) ? a : null)
};
w(U, cl);
d = U.prototype;
d.goog_ui_Control_prototype$content_ = null;
d.state_ = 0;
d.supportedStates_ = 39;
d.autoStates_ = 255;
d.statesWithTransitionEvents_ = 0;
d.goog_ui_Control_prototype$visible_ = !0;
d.extraClassNames_ = null;
d.handleMouseEvents_ = !0;
d.createDom = function() {
var a = this.goog_ui_Control_prototype$renderer_.createDom(this);
this.goog_ui_Component$element_ = a;
Hl(this.goog_ui_Control_prototype$renderer_, a, this.getPreferredAriaRole());
Gj(a, !z && !hd);
this.isVisible() || this.goog_ui_Control_prototype$renderer_.setVisible(a, !1)
};
d.getPreferredAriaRole = function() {
return null
};
d.goog_ui_Component_prototype$getContentElement = function() {
return this.goog_ui_Control_prototype$renderer_.goog_ui_ControlRenderer_prototype$getContentElement(this.getElement())
};
d.goog_ui_Component_prototype$canDecorate = function() {
return this.goog_ui_Control_prototype$renderer_.goog_ui_ControlRenderer_prototype$canDecorate()
};
d.decorateInternal = function(a) {
this.goog_ui_Component$element_ = a = this.goog_ui_Control_prototype$renderer_.goog_ui_ControlRenderer_prototype$decorate(this, a);
Hl(this.goog_ui_Control_prototype$renderer_, a, this.getPreferredAriaRole());
Gj(a, !z && !hd);
this.goog_ui_Control_prototype$visible_ = "none" != a.style.display
};
d.enterDocument = function() {
U.superClass_.enterDocument.call(this);
Jl(this, this.goog_ui_Component$element_);
var a = this.goog_ui_Control_prototype$renderer_;
if (ml(this)) {
var b = this.getElement();
Gl(b, a.goog_ui_ControlRenderer_prototype$getCssClass() + "-rtl", !0)
}
this.isEnabled() && Kl(this, this.isVisible());
this.supportedStates_ & -2 && (this.handleMouseEvents_ && Pl(this, !0), this.supportedStates_ & 32 && (a = this.getElement())) && (b = this.goog_ui_Control_prototype$keyHandler_ || (this.goog_ui_Control_prototype$keyHandler_ =
new pl), ol(b, a), fl(this).listen(b, "key", this.handleKeyEvent).listen(a, "focus", this.goog_ui_Control_prototype$handleFocus).listen(a, "blur", this.goog_ui_Control_prototype$handleBlur))
};
var Pl = function(a, b) {
var c = fl(a),
e = a.getElement();
b ? (c.listen(e, "mouseover", a.handleMouseOver).listen(e, "mousedown", a.handleMouseDown).listen(e, "mouseup", a.handleMouseUp).listen(e, "mouseout", a.handleMouseOut), a.handleContextMenu != wa && c.listen(e, "contextmenu", a.handleContextMenu), z && (wd(9) || c.listen(e, "dblclick", a.handleDblClick), a.ieMouseEventSequenceSimulator_ || (a.ieMouseEventSequenceSimulator_ = new Ql(a), Gd(a, a.ieMouseEventSequenceSimulator_)))) : (c.unlisten(e, "mouseover", a.handleMouseOver).unlisten(e,
"mousedown", a.handleMouseDown).unlisten(e, "mouseup", a.handleMouseUp).unlisten(e, "mouseout", a.handleMouseOut), a.handleContextMenu != wa && c.unlisten(e, "contextmenu", a.handleContextMenu), z && (wd(9) || c.unlisten(e, "dblclick", a.handleDblClick), Fd(a.ieMouseEventSequenceSimulator_), a.ieMouseEventSequenceSimulator_ = null))
};
d = U.prototype;
d.exitDocument = function() {
U.superClass_.exitDocument.call(this);
this.goog_ui_Control_prototype$keyHandler_ && vl(this.goog_ui_Control_prototype$keyHandler_);
this.isVisible() && this.isEnabled() && Kl(this, !1)
};
d.disposeInternal = function() {
U.superClass_.disposeInternal.call(this);
this.goog_ui_Control_prototype$keyHandler_ && (this.goog_ui_Control_prototype$keyHandler_.dispose(), delete this.goog_ui_Control_prototype$keyHandler_);
delete this.goog_ui_Control_prototype$renderer_;
this.ieMouseEventSequenceSimulator_ = this.extraClassNames_ = this.goog_ui_Control_prototype$content_ = null
};
d.setContentInternal = function(a) {
this.goog_ui_Control_prototype$content_ = a
};
d.getCaption = function() {
var a = this.goog_ui_Control_prototype$content_;
if (!a) return "";
a = u(a) ? a : za(a) ? $a(a, yg).join("") : xg(a);
return vb(a)
};
d.goog_ui_Component_prototype$setRightToLeft = function(a) {
U.superClass_.goog_ui_Component_prototype$setRightToLeft.call(this, a);
var b = this.getElement();
b && Gl(b, this.goog_ui_Control_prototype$renderer_.goog_ui_ControlRenderer_prototype$getCssClass() + "-rtl", a)
};
d.isVisible = function() {
return this.goog_ui_Control_prototype$visible_
};
d.setVisible = function(a, b) {
if (b || this.goog_ui_Control_prototype$visible_ != a && ne(this, a ? "show" : "hide")) {
var c = this.getElement();
c && this.goog_ui_Control_prototype$renderer_.setVisible(c, a);
this.isEnabled() && Kl(this, a);
this.goog_ui_Control_prototype$visible_ = a;
return !0
}
return !1
};
d.isEnabled = function() {
return !(this.state_ & 1)
};
d.setEnabled = function(a) {
var b = this.goog_ui_Component_prototype$getParent();
b && "function" == typeof b.isEnabled && !b.isEnabled() || !Rl(this, 1, !a) || (a || (Sl(this, !1), this.goog_ui_Control_prototype$setHighlighted(!1)), this.isVisible() && Kl(this, a), Tl(this, 1, !a, !0))
};
d.goog_ui_Control_prototype$setHighlighted = function(a) {
Rl(this, 2, a) && Tl(this, 2, a)
};
var Sl = function(a, b) {
Rl(a, 4, b) && Tl(a, 4, b)
};
U.prototype.setSelected = function(a) {
Rl(this, 8, a) && Tl(this, 8, a)
};
var Ul = function(a, b) {
Rl(a, 16, b) && Tl(a, 16, b)
},
Vl = function(a, b) {
Rl(a, 64, b) && Tl(a, 64, b)
};
U.prototype.getState = function() {
return this.state_
};
var Tl = function(a, b, c, e) {
if (!e && 1 == b) a.setEnabled(!c);
else if (a.supportedStates_ & b && c != !!(a.state_ & b)) {
var f = a.goog_ui_Control_prototype$renderer_;
if (e = a.getElement())(f = f.getClassForState(b)) && Gl(a, f, c), Il(e, b, c);
a.state_ = c ? a.state_ | b : a.state_ & ~b
}
};
U.prototype.setSupportedState = function(a, b) {
if (this.inDocument_ && this.state_ & a && !b) throw Error("B");
!b && this.state_ & a && Tl(this, a, !1);
this.supportedStates_ = b ? this.supportedStates_ | a : this.supportedStates_ & ~a
};
var Wl = function(a, b) {
return !!(a.autoStates_ & b) && !!(a.supportedStates_ & b)
},
Rl = function(a, b, c) {
return !!(a.supportedStates_ & b) && !!(a.state_ & b) != c && (!(a.statesWithTransitionEvents_ & b) || ne(a, dl(b, c))) && !a.disposed_
};
U.prototype.handleMouseOver = function(a) {
!Xl(a, this.getElement()) && ne(this, "enter") && this.isEnabled() && Wl(this, 2) && this.goog_ui_Control_prototype$setHighlighted(!0)
};
U.prototype.handleMouseOut = function(a) {
!Xl(a, this.getElement()) && ne(this, "leave") && (Wl(this, 4) && Sl(this, !1), Wl(this, 2) && this.goog_ui_Control_prototype$setHighlighted(!1))
};
U.prototype.handleContextMenu = wa;
var Xl = function(a, b) {
return !!a.relatedTarget && pg(b, a.relatedTarget)
};
d = U.prototype;
d.handleMouseDown = function(a) {
if (this.isEnabled() && (Wl(this, 2) && this.goog_ui_Control_prototype$setHighlighted(!0), Md(a) && !(kd && md && a.ctrlKey))) {
Wl(this, 4) && Sl(this, !0);
var b;
if (b = this.goog_ui_Control_prototype$renderer_) {
var c;
b = this.supportedStates_ & 32 && (c = this.getElement()) ? ug(c) && vg(c) : !1
}
b && this.getElement().focus()
}!Md(a) || kd && md && a.ctrlKey || a.preventDefault()
};
d.handleMouseUp = function(a) {
this.isEnabled() && (Wl(this, 2) && this.goog_ui_Control_prototype$setHighlighted(!0), this.state_ & 4 && this.performActionInternal(a) && Wl(this, 4) && Sl(this, !1))
};
d.handleDblClick = function(a) {
this.isEnabled() && this.performActionInternal(a)
};
d.performActionInternal = function(a) {
Wl(this, 16) && Ul(this, !(this.state_ & 16));
Wl(this, 8) && this.setSelected(!0);
Wl(this, 64) && Vl(this, !(this.state_ & 64));
var b = new Hd("action", this);
a && (b.altKey = a.altKey, b.ctrlKey = a.ctrlKey, b.metaKey = a.metaKey, b.shiftKey = a.shiftKey, b.platformModifierKey = a.platformModifierKey);
return ne(this, b)
};
d.goog_ui_Control_prototype$handleFocus = function() {
Wl(this, 32) && Rl(this, 32, !0) && Tl(this, 32, !0)
};
d.goog_ui_Control_prototype$handleBlur = function() {
Wl(this, 4) && Sl(this, !1);
Wl(this, 32) && Rl(this, 32, !1) && Tl(this, 32, !1)
};
d.handleKeyEvent = function(a) {
return this.isVisible() && this.isEnabled() && this.goog_ui_Control_prototype$handleKeyEventInternal(a) ? (a.preventDefault(), a.stopPropagation(), !0) : !1
};
d.goog_ui_Control_prototype$handleKeyEventInternal = function(a) {
return 13 == a.goog_events_BrowserEvent$keyCode && this.performActionInternal(a)
};
if (!Ba(U)) throw Error("H`" + U);
if (!Ba(Bl)) throw Error("I`" + Bl);
var Yl = Fa(U);
Ol[Yl] = Bl;
Nl("goog-control", function() {
return new U(null)
});
var Ql = function(a) {
Ed.call(this);
this.control_ = a;
this.clickExpected_ = !1;
this.goog_ui_Control_IeMouseEventSequenceSimulator_$handler_ = new Lg(this);
Gd(this, this.goog_ui_Control_IeMouseEventSequenceSimulator_$handler_);
a = this.control_.goog_ui_Component$element_;
this.goog_ui_Control_IeMouseEventSequenceSimulator_$handler_.listen(a, "mousedown", this.handleMouseDown_).listen(a, "mouseup", this.handleMouseUp_).listen(a, "click", this.handleClick_)
};
w(Ql, Ed);
var Zl = !z || 9 <= Number(xd);
Ql.prototype.handleMouseDown_ = function() {
this.clickExpected_ = !1
};
Ql.prototype.handleMouseUp_ = function() {
this.clickExpected_ = !0
};
var $l = function(a, b) {
if (!Zl) return a.button = 0, a.type = b, a;
var c = document.createEvent("MouseEvents");
c.initMouseEvent(b, a.bubbles, a.cancelable, a.view || null, a.detail, a.screenX, a.screenY, a.clientX, a.clientY, a.ctrlKey, a.altKey, a.shiftKey, a.metaKey, 0, a.relatedTarget || null);
return c
};
Ql.prototype.handleClick_ = function(a) {
if (this.clickExpected_) this.clickExpected_ = !1;
else {
var b = a.event_,
c = b.button,
e = b.type,
f = $l(b, "mousedown");
this.control_.handleMouseDown(new Jd(f, a.goog_events_Event$currentTarget));
f = $l(b, "mouseup");
this.control_.handleMouseUp(new Jd(f, a.goog_events_Event$currentTarget));
Zl || (b.button = c, b.type = e)
}
};
Ql.prototype.disposeInternal = function() {
this.control_ = null;
Ql.superClass_.disposeInternal.call(this)
};
var bm = function(a, b, c, e, f) {
this.reversed = !!b;
this.node = null;
this.tagType = 0;
this.started_ = !1;
this.constrained = !c;
a && am(this, a, e);
this.goog_dom_TagIterator$depth = void 0 != f ? f : this.tagType || 0;
this.reversed && (this.goog_dom_TagIterator$depth *= -1)
};
w(bm, Pb);
var am = function(a, b, c) {
if (a.node = b) a.tagType = v(c) ? c : 1 != a.node.nodeType ? 0 : a.reversed ? -1 : 1;
v(void 0) && (a.goog_dom_TagIterator$depth = void 0)
};
bm.prototype.next = function() {
if (this.started_) {
if (!this.node || this.constrained && 0 == this.goog_dom_TagIterator$depth) throw Ob;
var a = this.node;
var b = this.reversed ? -1 : 1;
if (this.tagType == b) {
var c = this.reversed ? a.lastChild : a.firstChild;
c ? am(this, c) : am(this, a, -1 * b)
} else(c = this.reversed ? a.previousSibling : a.nextSibling) ? am(this, c) : am(this, a.parentNode, -1 * b);
this.goog_dom_TagIterator$depth += this.tagType * (this.reversed ? -1 : 1)
} else this.started_ = !0;
a = this.node;
if (!this.node) throw Ob;
return a
};
bm.prototype.equals = function(a) {
return a.node == this.node && (!this.node || a.tagType == this.tagType)
};
bm.prototype.splice = function(a) {
var b = this.node,
c = this.reversed ? 1 : -1;
this.tagType == c && (this.tagType = -1 * c, this.goog_dom_TagIterator$depth += this.tagType * (this.reversed ? -1 : 1));
this.reversed = !this.reversed;
bm.prototype.next.call(this);
this.reversed = !this.reversed;
c = Aa(arguments[0]) ? arguments[0] : arguments;
for (var e = c.length - 1; 0 <= e; e--) b.parentNode && b.parentNode.insertBefore(c[e], b.nextSibling);
C(b)
};
var cm = function(a, b, c, e) {
bm.call(this, a, b, c, null, e)
};
w(cm, bm);
cm.prototype.next = function() {
do cm.superClass_.next.call(this); while (-1 == this.tagType);
return this.node
};
var dm = function() {};
w(dm, Bl);
xa(dm);
var em = 0;
dm.prototype.createDom = function(a) {
var b = El(this, a);
a = a.goog_ui_Component$dom_.createDom("DIV", b, fm(this, a.goog_ui_Control_prototype$content_, a.getSize(), a.goog_ui_Component$dom_));
xl(a, "grid");
return a
};
var fm = function(a, b, c, e) {
for (var f = [], g = 0, h = 0; g < c.height; g++) {
for (var m = [], n = 0; n < c.width; n++) {
var p = b && b[h++];
m.push(gm(a, p, e))
}
f.push(hm(a, m, e))
}
a = e.createDom("TABLE", a.goog_ui_ControlRenderer_prototype$getCssClass() + "-table", e.createDom("TBODY", a.goog_ui_ControlRenderer_prototype$getCssClass() + "-body", f));
a.cellSpacing = "0";
a.cellPadding = "0";
return a
},
hm = function(a, b, c) {
a = c.createDom("TR", a.goog_ui_ControlRenderer_prototype$getCssClass() + "-row", b);
xl(a, "row");
return a
},
gm = function(a, b, c) {
a = c.createDom("TD", {
"class": a.goog_ui_ControlRenderer_prototype$getCssClass() + "-cell",
id: a.goog_ui_ControlRenderer_prototype$getCssClass() + "-cell-" + em++
}, b);
xl(a, "gridcell");
yl(a, "selected", !1);
if (!xg(a) && !Al(a, "label")) {
var e;
b = new cm(a);
for (c = ""; !c && (e = Rb(b));) 1 == e.nodeType && (c = Al(e, "label") || e.title);
(e = c) && yl(a, "label", e)
}
return a
};
dm.prototype.goog_ui_ControlRenderer_prototype$canDecorate = function() {
return !1
};
dm.prototype.goog_ui_ControlRenderer_prototype$decorate = function() {
return null
};
dm.prototype.goog_ui_ControlRenderer_prototype$setContent = function(a, b) {
if (a) {
var c = dg(document, "TBODY", this.goog_ui_ControlRenderer_prototype$getCssClass() + "-body", a)[0];
if (c) {
var e = 0;
Ya(c.rows, function(a) {
Ya(a.cells, function(a) {
ng(a);
if (b) {
var c = b[e++];
c && a.appendChild(c)
}
})
});
if (e < b.length) {
for (var f = [], g = cg(a), h = c.rows[0].cells.length; e < b.length;) {
var m = b[e++];
f.push(gm(this, m, g));
f.length == h && (m = hm(this, f, g), c.appendChild(m), f.length = 0)
}
if (0 < f.length) {
for (; f.length < h;) f.push(gm(this, "", g));
m =
hm(this, f, g);
c.appendChild(m)
}
}
}
Gj(a, jd)
}
};
var im = function(a, b, c) {
for (b = b.getElement(); c && 1 == c.nodeType && c != b;) {
if ("TD" == c.tagName && lb(c, a.goog_ui_ControlRenderer_prototype$getCssClass() + "-cell")) return c.firstChild;
c = c.parentNode
}
return null
};
dm.prototype.goog_ui_ControlRenderer_prototype$getCssClass = function() {
return "goog-palette"
};
var km = function(a) {
le.call(this);
this.items_ = [];
jm(this, a)
};
w(km, le);
km.prototype.goog_ui_SelectionModel_prototype$selectedItem_ = null;
km.prototype.selectionHandler_ = null;
var jm = function(a, b) {
b && (Ya(b, function(a) {
lm(this, a, !1)
}, a), hb(a.items_, b))
};
km.prototype.setSelectedItem = function(a) {
a != this.goog_ui_SelectionModel_prototype$selectedItem_ && (lm(this, this.goog_ui_SelectionModel_prototype$selectedItem_, !1), this.goog_ui_SelectionModel_prototype$selectedItem_ = a, lm(this, a, !0));
ne(this, "select")
};
var mm = function(a, b) {
a.setSelectedItem(a.items_[b] || null)
};
km.prototype.disposeInternal = function() {
km.superClass_.disposeInternal.call(this);
delete this.items_;
this.goog_ui_SelectionModel_prototype$selectedItem_ = null
};
var lm = function(a, b, c) {
b && ("function" == typeof a.selectionHandler_ ? a.selectionHandler_(b, c) : "function" == typeof b.setSelected && b.setSelected(c))
};
var om = function(a, b, c) {
U.call(this, a, b || dm.getInstance(), c);
this.autoStates_ &= -89;
this.currentCellControl_ = new nm;
this.currentCellControl_.setParentEventTarget(this);
this.lastHighlightedIndex_ = -1
};
w(om, U);
d = om.prototype;
d.goog_ui_Palette_prototype$size_ = null;
d.goog_ui_Palette_prototype$highlightedIndex_ = -1;
d.selectionModel_ = null;
d.disposeInternal = function() {
om.superClass_.disposeInternal.call(this);
this.selectionModel_ && (this.selectionModel_.dispose(), this.selectionModel_ = null);
this.goog_ui_Palette_prototype$size_ = null;
this.currentCellControl_.dispose()
};
d.setContentInternal = function(a) {
om.superClass_.setContentInternal.call(this, a);
pm(this);
if (this.selectionModel_) {
var b = this.selectionModel_,
c = b.items_;
if (!za(c))
for (var e = c.length - 1; 0 <= e; e--) delete c[e];
c.length = 0;
b.goog_ui_SelectionModel_prototype$selectedItem_ = null;
jm(this.selectionModel_, a)
} else this.selectionModel_ = new km(a), a = Ja(this.goog_ui_Palette_prototype$selectItem_, this), this.selectionModel_.selectionHandler_ = a, fl(this).listen(this.selectionModel_, "select", this.handleSelectionChange);
this.goog_ui_Palette_prototype$highlightedIndex_ = -1
};
d.getCaption = function() {
return ""
};
d.handleMouseOver = function(a) {
om.superClass_.handleMouseOver.call(this, a);
var b = im(this.goog_ui_Control_prototype$renderer_, this, a.target);
b && a.relatedTarget && pg(b, a.relatedTarget) || b == qm(this) || (a = this.goog_ui_Control_prototype$content_, rm(this, a && b ? Wa(a, b) : -1))
};
d.handleMouseDown = function(a) {
om.superClass_.handleMouseDown.call(this, a);
if (this.state_ & 4 && (a = im(this.goog_ui_Control_prototype$renderer_, this, a.target), a != qm(this))) {
var b = this.goog_ui_Control_prototype$content_;
rm(this, b && a ? Wa(b, a) : -1)
}
};
d.performActionInternal = function(a) {
var b = qm(this);
return b ? (a && (this.selectionModel_ && this.selectionModel_.goog_ui_SelectionModel_prototype$selectedItem_ ? "mouseup" != a.type || im(this.goog_ui_Control_prototype$renderer_, this, a.target) : 1) && this.setSelectedItem(b), om.superClass_.performActionInternal.call(this, a)) : !1
};
d.handleKeyEvent = function(a) {
var b = this.goog_ui_Control_prototype$content_;
b = b ? b.length : 0;
var c = this.goog_ui_Palette_prototype$size_.width;
if (0 == b || !this.isEnabled()) return !1;
if (13 == a.goog_events_BrowserEvent$keyCode || 32 == a.goog_events_BrowserEvent$keyCode) return this.performActionInternal(a);
if (36 == a.goog_events_BrowserEvent$keyCode) return rm(this, 0), !0;
if (35 == a.goog_events_BrowserEvent$keyCode) return rm(this, b - 1), !0;
if (0 > this.goog_ui_Palette_prototype$highlightedIndex_)
if (this.selectionModel_) {
var e =
this.selectionModel_;
var f = e.goog_ui_SelectionModel_prototype$selectedItem_;
e = f ? Wa(e.items_, f) : -1
} else e = -1;
else e = this.goog_ui_Palette_prototype$highlightedIndex_;
switch (a.goog_events_BrowserEvent$keyCode) {
case 37:
if (-1 == e || 0 == e) e = b;
rm(this, e - 1);
a.preventDefault();
return !0;
case 39:
return e == b - 1 && (e = -1), rm(this, e + 1), a.preventDefault(), !0;
case 38:
-1 == e && (e = b + c - 1);
if (e >= c) return rm(this, e - c), a.preventDefault(), !0;
break;
case 40:
if (-1 == e && (e = -c), e < b - c) return rm(this, e + c), a.preventDefault(), !0
}
return !1
};
d.handleSelectionChange = function() {};
d.getSize = function() {
return this.goog_ui_Palette_prototype$size_
};
var sm = function(a, b) {
if (a.getElement()) throw Error("B");
a.goog_ui_Palette_prototype$size_ = v(b) ? new $f(b, void 0) : b;
pm(a)
},
qm = function(a) {
var b = a.goog_ui_Control_prototype$content_;
return b && b[a.goog_ui_Palette_prototype$highlightedIndex_]
},
rm = function(a, b) {
b != a.goog_ui_Palette_prototype$highlightedIndex_ && (tm(a, a.goog_ui_Palette_prototype$highlightedIndex_, !1), a.lastHighlightedIndex_ = a.goog_ui_Palette_prototype$highlightedIndex_, a.goog_ui_Palette_prototype$highlightedIndex_ = b, tm(a, b, !0), ne(a, "a"))
};
om.prototype.setSelectedItem = function(a) {
this.selectionModel_ && this.selectionModel_.setSelectedItem(a)
};
var tm = function(a, b, c) {
if (a.getElement()) {
var e = a.goog_ui_Control_prototype$content_;
if (e && 0 <= b && b < e.length) {
var f = (f = qm(a)) ? f.parentNode : null;
a.currentCellControl_.getElement() != f && (a.currentCellControl_.goog_ui_Component$element_ = f);
f = a.currentCellControl_;
f.goog_ui_Control_prototype$setHighlighted(c);
!!(f.state_ & 2) == c && (f = a.goog_ui_Control_prototype$renderer_, b = e[b]) && (b = b ? b.parentNode : null, e = f.goog_ui_ControlRenderer_prototype$getCssClass() + "-cell-hover", c ? mb(b, e) : ob(b, e), c ? yl(a.goog_ui_Component$element_,
"activedescendant", b.id) : b.id == Al(a.goog_ui_Component$element_, "activedescendant") && zl(a.goog_ui_Component$element_))
}
}
};
om.prototype.goog_ui_Control_prototype$setHighlighted = function(a) {
a && -1 == this.goog_ui_Palette_prototype$highlightedIndex_ ? rm(this, -1 < this.lastHighlightedIndex_ ? this.lastHighlightedIndex_ : 0) : a || rm(this, -1);
om.superClass_.goog_ui_Control_prototype$setHighlighted.call(this, a)
};
om.prototype.goog_ui_Palette_prototype$selectItem_ = function(a, b) {
if (this.getElement() && a) {
var c = a.parentNode,
e = this.goog_ui_Control_prototype$renderer_.goog_ui_ControlRenderer_prototype$getCssClass() + "-cell-selected";
b ? mb(c, e) : ob(c, e);
yl(c, "selected", b)
}
};
var pm = function(a) {
var b = a.goog_ui_Control_prototype$content_;
if (b)
if (a.goog_ui_Palette_prototype$size_ && a.goog_ui_Palette_prototype$size_.width) {
if (b = Math.ceil(b.length / a.goog_ui_Palette_prototype$size_.width), !v(a.goog_ui_Palette_prototype$size_.height) || a.goog_ui_Palette_prototype$size_.height < b) a.goog_ui_Palette_prototype$size_.height = b
} else b = Math.ceil(Math.sqrt(b.length)), a.goog_ui_Palette_prototype$size_ = new $f(b, b);
else a.goog_ui_Palette_prototype$size_ = new $f(0, 0)
},
nm = function() {
U.call(this,
null);
this.statesWithTransitionEvents_ |= 2
};
w(nm, U);
var vm = function(a, b, c) {
this.colors_ = a || [];
om.call(this, null, b || dm.getInstance(), c);
um(this, this.colors_)
};
w(vm, om);
vm.prototype.normalizedColors_ = null;
vm.prototype.labels_ = null;
var um = function(a, b) {
a.colors_ = b;
a.labels_ = null;
a.normalizedColors_ = null;
var c = wm(a);
a.goog_ui_Control_prototype$renderer_.goog_ui_ControlRenderer_prototype$setContent(a.getElement(), c);
a.setContentInternal(c)
};
vm.prototype.getSelectedColor = function() {
var a = this.selectionModel_ ? this.selectionModel_.goog_ui_SelectionModel_prototype$selectedItem_ : null;
if (a) {
var b = a.style[Kb()];
if ("undefined" !== typeof b) a = b;
else {
b = a.style;
var c = wj["background-color"];
if (!c) {
var e = Kb();
c = e;
void 0 === a.style[e] && (e = (kd ? "Webkit" : jd ? "Moz" : z ? "ms" : hd ? "O" : null) + Lb(e), void 0 !== a.style[e] && (c = e));
wj["background-color"] = c
}
a = b[c] || ""
}
return xm(a)
}
return null
};
var ym = function(a, b) {
var c = xm(b);
a.normalizedColors_ || (a.normalizedColors_ = $a(a.colors_, function(a) {
return xm(a)
}));
a.selectionModel_ && mm(a.selectionModel_, c ? Wa(a.normalizedColors_, c) : -1)
},
wm = function(a) {
return $a(a.colors_, function(a, c) {
var b = this.goog_ui_Component$dom_.createDom("DIV", {
"class": this.goog_ui_Control_prototype$renderer_.goog_ui_ControlRenderer_prototype$getCssClass() + "-colorswatch",
style: "background-color:" + a
});
b.title = this.labels_ && this.labels_[c] ? this.labels_[c] : "#" == a.charAt(0) ?
"RGB (" + Xk(a).join(", ") + ")" : a;
return b
}, a)
},
xm = function(a) {
if (a) try {
return Vk(a).hex
} catch (b) {}
return null
};
var zm = function(a, b) {
cl.call(this, a);
this.colorPalette_ = b || null;
fl(this).listen(this, "action", this.onColorPaletteAction_)
};
w(zm, cl);
var Cm = function(a) {
var b = Am;
a.colorPalette_ ? um(a.colorPalette_, b) : Bm(a, b)
},
Dm = function(a) {
a.colorPalette_ || Bm(a, []);
sm(a.colorPalette_, 7)
};
zm.prototype.getSize = function() {
return this.colorPalette_ ? this.colorPalette_.getSize() : null
};
zm.prototype.getSelectedColor = function() {
return this.colorPalette_ ? this.colorPalette_.getSelectedColor() : null
};
var Em = function(a, b) {
a.colorPalette_ && ym(a.colorPalette_, b)
};
d = zm.prototype;
d.goog_ui_Component_prototype$canDecorate = function() {
return !1
};
d.enterDocument = function() {
zm.superClass_.enterDocument.call(this);
this.colorPalette_ && this.colorPalette_.render(this.getElement());
this.getElement().unselectable = "on"
};
d.disposeInternal = function() {
zm.superClass_.disposeInternal.call(this);
this.colorPalette_ && (this.colorPalette_.dispose(), this.colorPalette_ = null)
};
d.focus = function() {
this.colorPalette_ && this.colorPalette_.getElement().focus()
};
d.onColorPaletteAction_ = function(a) {
a.stopPropagation();
ne(this, "change")
};
var Bm = function(a, b) {
var c = new vm(b, null, a.goog_ui_Component$dom_);
sm(c, 5);
c.setSupportedState(32, !0);
a.goog_ui_Component_prototype$addChildAt(c, kl(a), void 0);
a.colorPalette_ = c;
a.inDocument_ && a.colorPalette_.render(a.getElement())
},
Am = "#ffffff #cccccc #c0c0c0 #999999 #666666 #333333 #000000 #ffcccc #ff6666 #ff0000 #cc0000 #990000 #660000 #330000 #ffcc99 #ff9966 #ff9900 #ff6600 #cc6600 #993300 #663300 #ffff99 #ffff66 #ffcc66 #ffcc33 #cc9933 #996633 #663333 #ffffcc #ffff33 #ffff00 #ffcc00 #999900 #666600 #333300 #99ff99 #66ff99 #33ff33 #33cc00 #009900 #006600 #003300 #99ffff #33ffff #66cccc #00cccc #339999 #336666 #003333 #ccffff #66ffff #33ccff #3366ff #3333ff #000099 #000066 #ccccff #9999ff #6666cc #6633ff #6600cc #333399 #330099 #ffccff #ff99ff #cc66cc #cc33cc #993399 #663366 #330033".split(" ");
var Fm = function(a, b) {
Fm.superClass_.constructor.call(this, a, b);
bk(this, "colour")
},
Gm;
w(Fm, Wj);
d = Fm.prototype;
d.init = function(a) {
Fm.superClass_.init.call(this, a);
this.Blockly_Field_prototype$setValue(this.getValue())
};
d.CURSOR = "default";
d.dispose = function() {
Fk(this);
Fm.superClass_.dispose.call(this)
};
d.getValue = function() {
return this.colour_
};
d.Blockly_Field_prototype$setValue = function(a) {
this.Blockly_Field_prototype$sourceBlock && 0 == Q && this.colour_ != a && P(new Mi(this.Blockly_Field_prototype$sourceBlock, "field", this.name, this.colour_, a));
this.colour_ = a;
this.Blockly_Field_prototype$sourceBlock && this.Blockly_Field_prototype$sourceBlock.setColour(a, this.Blockly_Field_prototype$sourceBlock.colourSecondary_, this.Blockly_Field_prototype$sourceBlock.colourTertiary_)
};
d.Blockly_Field_prototype$getText = function() {
var a = this.colour_,
b = a.match(/^#(.)\1(.)\2(.)\3$/);
b && (a = "#" + b[1] + b[2] + b[3]);
return a
};
d.getSize = function() {
return new $f(48, 32)
};
d.showEditor = function() {
Gk(this, this.Blockly_Field_prototype$sourceBlock.RTL, Hm);
var a = new zm;
Dm(a);
Cm(a);
var b = hg(),
c = zj(),
e = Bj(Zj(this)),
f = hk(this);
a.render(Jk);
Em(a, this.getValue());
var g = Dj(a.getElement());
e.y = e.y + g.height + f.height >= b.height + c.y ? e.y - (g.height - 1) : e.y + (f.height - 1);
this.Blockly_Field_prototype$sourceBlock.RTL ? (e.x += f.width, e.x -= g.width, e.x < c.x && (e.x = c.x)) : e.x > b.width + c.x - g.width && (e.x = b.width + c.x - g.width);
Im(e.x, e.y, b, c, this.Blockly_Field_prototype$sourceBlock.RTL);
var h = this;
Gm =
$d(a, "change", function(a) {
a = a.target.getSelectedColor() || "#000000";
L();
h.Blockly_Field_prototype$sourceBlock && (a = ck(h, a));
null !== a && h.Blockly_Field_prototype$setValue(a)
})
};
var Hm = function() {
Gm && he(Gm);
ci(!1)
};
var Jm = function(a, b, c, e, f) {
this.Blockly_Field_prototype$sourceBlock = null;
this.Blockly_FieldImage$height_ = Number(c);
this.Blockly_FieldImage$width_ = Number(b);
this.Blockly_Field$size_ = new $f(this.Blockly_FieldImage$width_, this.Blockly_FieldImage$height_);
this.text = e || "";
this.flipRTL_ = !!f;
this.Blockly_Field_prototype$setValue(a)
};
w(Jm, Wj);
d = Jm.prototype;
d.EDITABLE = !1;
d.init = function() {
this.fieldGroup_ || (this.fieldGroup_ = O("g", {}, null), this.Blockly_Field_prototype$visible || (this.fieldGroup_.style.display = "none"), this.Blockly_FieldImage$imageElement_ = O("image", {
height: this.Blockly_FieldImage$height_ + "px",
width: this.Blockly_FieldImage$width_ + "px"
}, this.fieldGroup_), this.Blockly_Field_prototype$setValue(this.src_), this.Blockly_Field_prototype$sourceBlock.getSvgRoot().appendChild(this.fieldGroup_), this.Blockly_Field_prototype$setTooltip(this.Blockly_Field_prototype$sourceBlock),
Km(this.Blockly_FieldImage$imageElement_))
};
d.dispose = function() {
C(this.fieldGroup_);
this.Blockly_FieldImage$imageElement_ = this.fieldGroup_ = null
};
d.Blockly_Field_prototype$setTooltip = function(a) {
this.Blockly_FieldImage$imageElement_.tooltip = a
};
d.getValue = function() {
return this.src_
};
d.Blockly_Field_prototype$setValue = function(a) {
null !== a && (this.src_ = a, this.Blockly_FieldImage$imageElement_ && this.Blockly_FieldImage$imageElement_.setAttributeNS("http://www.w3.org/1999/xlink", "xlink:href", a || ""))
};
d.Blockly_Field_prototype$setText = function(a) {
null !== a && (this.text = a)
};
d.render = function() {};
var Lm = function(a, b, c, e, f) {
b = this.Blockly_FieldNumber_prototype$getNumRestrictor(b, c, e);
a = a && !isNaN(a) ? String(a) : "0";
Lm.superClass_.constructor.call(this, a, f, b);
bk(this, "number")
};
w(Lm, Dk);
var Mm = "789456123.0- ".split(""),
Nm = 'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 40"><path d="M28.89,11.45H16.79a2.86,2.86,0,0,0-2,.84L9.09,18a2.85,2.85,0,0,0,0,4l5.69,5.69a2.86,2.86,0,0,0,2,.84h12.1a2.86,2.86,0,0,0,2.86-2.86V14.31A2.86,2.86,0,0,0,28.89,11.45ZM27.15,22.73a1,1,0,0,1,0,1.41,1,1,0,0,1-.71.3,1,1,0,0,1-.71-0.3L23,21.41l-2.73,2.73a1,1,0,0,1-1.41,0,1,1,0,0,1,0-1.41L21.59,20l-2.73-2.73a1,1,0,0,1,0-1.41,1,1,0,0,1,1.41,0L23,18.59l2.73-2.73a1,1,0,1,1,1.42,1.41L24.42,20Z" fill="' + I.numPadText +
'"/></svg>',
Om = null;
Lm.prototype.Blockly_FieldNumber_prototype$getNumRestrictor = function(a, b, c) {
a = Number(a);
c = Number(c);
this.decimalAllowed_ = "undefined" == typeof c || isNaN(c) || 0 == c || Math.floor(c) != c;
this.negativeAllowed_ = "undefined" == typeof a || isNaN(a) || 0 > a;
c = "[\\d]";
this.decimalAllowed_ && (c += "|[\\.]");
this.negativeAllowed_ && (c += "|[-]");
return new RegExp(c)
};
Lm.prototype.showEditor = function() {
Om = this;
var a = ld || nd || pd;
Lm.superClass_.showEditor.call(this, !1, a);
if (a) {
ei();
Jj.innerHTML = "";
a = Jj;
a.setAttribute("role", "menu");
a.setAttribute("aria-haspopup", "true");
for (var b = 0, c; c = Mm[b]; b++) {
var e = document.createElement("button");
e.setAttribute("role", "menuitem");
e.setAttribute("class", "blocklyNumPadButton");
e.title = c;
e.innerHTML = c;
T(e, "mousedown", e, Lm.prototype.numPadButtonTouch);
if ("." != c || this.decimalAllowed_)
if ("-" != c || this.negativeAllowed_)
if (" " != c || this.negativeAllowed_) " " ==
c && this.negativeAllowed_ && e.setAttribute("style", "visibility: hidden");
else continue;
else continue;
else e.setAttribute("style", "visibility: hidden");
a.appendChild(e)
}
b = document.createElement("button");
b.setAttribute("role", "menuitem");
b.setAttribute("class", "blocklyNumPadButton");
b.title = "Delete";
c = document.createElement("img");
c.src = Nm;
b.appendChild(c);
T(b, "mousedown", null, Pm);
a.appendChild(b);
Qj(I.numPadBackground, I.numPadBorder);
a.style.width = "168px";
b = this.Blockly_Field_prototype$sourceBlock.workspace.scale;
e = Mk(this.Blockly_Field_prototype$sourceBlock);
e.width *= b;
e.height *= b;
c = Bj(Zj(this));
a = c.x + e.width / 2;
e = c.y + e.height + 8;
b = c.y - 64 * b - -8 * b;
Mj = Sj(this.Blockly_Field_prototype$sourceBlock.workspace).parentNode;
Tj(this, a, e, a, b, this.Blockly_FieldNumber_prototype$onHide_.bind(this))
}
};
Lm.prototype.numPadButtonTouch = function() {
var a = Ek.value;
Qm(a.slice(0, Ek.selectionStart) + this.innerHTML + a.slice(Ek.selectionEnd));
J = null
};
var Pm = function() {
var a = Ek.value,
b = Ek.selectionStart,
c = Ek.selectionEnd,
e = a.slice(0, b) + a.slice(c);
0 == c - b && (e = a.slice(0, b - 1) + a.slice(b));
Qm(e);
J = null
},
Qm = function(a) {
Ek.value = a;
Lm.superClass_.resizeEditor.call(Om);
Ek.setSelectionRange(a.length, a.length);
Ek.scrollLeft = Ek.scrollWidth;
Kk(Om)
};
Lm.prototype.Blockly_FieldNumber_prototype$onHide_ = function() {
Jj.removeAttribute("role");
Jj.removeAttribute("aria-haspopup")
};
var Rm = function(a) {
this.ariaRole_ = a
};
xa(Rm);
var Sm = function(a, b) {
a && (a.tabIndex = b ? 0 : -1)
};
Rm.prototype.createDom = function(a) {
return a.goog_ui_Component$dom_.createDom("DIV", Tm(this, a).join(" "))
};
Rm.prototype.goog_ui_ContainerRenderer_prototype$canDecorate = function(a) {
return "DIV" == a.tagName
};
var Vm = function(a, b, c) {
c.id && el(b, c.id);
var e = a.goog_ui_ContainerRenderer_prototype$getCssClass(),
f = !1,
g = kb(c);
g && Ya(g, function(a) {
if (a == e) f = !0;
else if (a)
if (a == e + "-disabled") b.setEnabled(!1);
else if (a == e + "-horizontal") {
if (b.getElement()) throw Error("B");
b.goog_ui_Container_prototype$orientation_ = "horizontal"
} else if (a == e + "-vertical") {
if (b.getElement()) throw Error("B");
b.goog_ui_Container_prototype$orientation_ = "vertical"
}
}, a);
f || mb(c, e);
Um(a, b, c);
return c
},
Um = function(a, b, c) {
if (c)
for (var e = c.firstChild,
f; e && e.parentNode == c;) {
f = e.nextSibling;
if (1 == e.nodeType) {
var g = a.getDecoratorForChild(e);
g && (g.goog_ui_Component$element_ = e, b.isEnabled() || g.setEnabled(!1), b.goog_ui_Component_prototype$addChildAt(g, kl(b), void 0), g.goog_ui_Component_prototype$decorate(e))
} else e.nodeValue && "" != wb(e.nodeValue) || c.removeChild(e);
e = f
}
};
Rm.prototype.getDecoratorForChild = function(a) {
a: {
a = kb(a);
for (var b = 0, c = a.length; b < c; b++) {
var e = a[b];
if (e = e in Ml ? Ml[e]() : null) {
a = e;
break a
}
}
a = null
}
return a
};
Rm.prototype.goog_ui_ContainerRenderer_prototype$initializeDom = function(a) {
a = a.getElement();
Gj(a, jd);
z && (a.hideFocus = !0);
var b = this.ariaRole_;
b && xl(a, b)
};
Rm.prototype.goog_ui_ContainerRenderer_prototype$getCssClass = function() {
return "goog-container"
};
var Tm = function(a, b) {
var c = a.goog_ui_ContainerRenderer_prototype$getCssClass(),
e = [c, "horizontal" == b.goog_ui_Container_prototype$orientation_ ? c + "-horizontal" : c + "-vertical"];
b.isEnabled() || e.push(c + "-disabled");
return e
};
var Wm = function(a, b, c) {
cl.call(this, c);
this.goog_ui_Container_prototype$renderer_ = b || Rm.getInstance();
this.goog_ui_Container_prototype$orientation_ = a || "vertical"
};
w(Wm, cl);
d = Wm.prototype;
d.keyEventTarget_ = null;
d.goog_ui_Container_prototype$keyHandler_ = null;
d.goog_ui_Container_prototype$renderer_ = null;
d.goog_ui_Container_prototype$orientation_ = null;
d.goog_ui_Container_prototype$visible_ = !0;
d.enabled_ = !0;
d.goog_ui_Container_prototype$focusable_ = !0;
d.goog_ui_Container_prototype$highlightedIndex_ = -1;
d.openItem_ = null;
d.mouseButtonPressed_ = !1;
d.childElementIdMap_ = null;
var Xm = function(a) {
return a.keyEventTarget_ || a.getElement()
};
d = Wm.prototype;
d.createDom = function() {
this.goog_ui_Component$element_ = this.goog_ui_Container_prototype$renderer_.createDom(this)
};
d.goog_ui_Component_prototype$getContentElement = function() {
return this.getElement()
};
d.goog_ui_Component_prototype$canDecorate = function(a) {
return this.goog_ui_Container_prototype$renderer_.goog_ui_ContainerRenderer_prototype$canDecorate(a)
};
d.decorateInternal = function(a) {
this.goog_ui_Component$element_ = Vm(this.goog_ui_Container_prototype$renderer_, this, a);
"none" == a.style.display && (this.goog_ui_Container_prototype$visible_ = !1)
};
d.enterDocument = function() {
Wm.superClass_.enterDocument.call(this);
jl(this, function(a) {
a.inDocument_ && Ym(this, a)
}, this);
var a = this.getElement();
this.goog_ui_Container_prototype$renderer_.goog_ui_ContainerRenderer_prototype$initializeDom(this);
this.setVisible(this.goog_ui_Container_prototype$visible_, !0);
fl(this).listen(this, "enter", this.handleEnterItem).listen(this, "highlight", this.handleHighlightItem).listen(this, "unhighlight", this.handleUnHighlightItem).listen(this, "open", this.handleOpenItem).listen(this,
"close", this.handleCloseItem).listen(a, "mousedown", this.handleMouseDown).listen(bg(a), "mouseup", this.handleDocumentMouseUp).listen(a, ["mousedown", "mouseup", "mouseover", "mouseout", "contextmenu"], this.handleChildMouseEvents);
this.goog_ui_Container_prototype$focusable_ && Zm(this, !0)
};
var Zm = function(a, b) {
var c = fl(a),
e = Xm(a);
b ? c.listen(e, "focus", a.goog_ui_Container_prototype$handleFocus).listen(e, "blur", a.goog_ui_Container_prototype$handleBlur).listen(a.goog_ui_Container_prototype$keyHandler_ || (a.goog_ui_Container_prototype$keyHandler_ = new pl(Xm(a))), "key", a.handleKeyEvent) : c.unlisten(e, "focus", a.goog_ui_Container_prototype$handleFocus).unlisten(e, "blur", a.goog_ui_Container_prototype$handleBlur).unlisten(a.goog_ui_Container_prototype$keyHandler_ || (a.goog_ui_Container_prototype$keyHandler_ =
new pl(Xm(a))), "key", a.handleKeyEvent)
};
d = Wm.prototype;
d.exitDocument = function() {
this.goog_ui_Container_prototype$setHighlightedIndex(-1);
this.openItem_ && Vl(this.openItem_, !1);
this.mouseButtonPressed_ = !1;
Wm.superClass_.exitDocument.call(this)
};
d.disposeInternal = function() {
Wm.superClass_.disposeInternal.call(this);
this.goog_ui_Container_prototype$keyHandler_ && (this.goog_ui_Container_prototype$keyHandler_.dispose(), this.goog_ui_Container_prototype$keyHandler_ = null);
this.goog_ui_Container_prototype$renderer_ = this.openItem_ = this.childElementIdMap_ = this.keyEventTarget_ = null
};
d.handleEnterItem = function() {
return !0
};
d.handleHighlightItem = function(a) {
var b = nl(this, a.target);
if (-1 < b && b != this.goog_ui_Container_prototype$highlightedIndex_) {
var c = ll(this, this.goog_ui_Container_prototype$highlightedIndex_);
c && c.goog_ui_Control_prototype$setHighlighted(!1);
this.goog_ui_Container_prototype$highlightedIndex_ = b;
c = ll(this, this.goog_ui_Container_prototype$highlightedIndex_);
this.mouseButtonPressed_ && Sl(c, !0);
this.openItem_ && c != this.openItem_ && (c.supportedStates_ & 64 ? Vl(c, !0) : Vl(this.openItem_, !1))
}
b = this.getElement();
null !=
a.target.getElement() && yl(b, "activedescendant", a.target.getElement().id)
};
d.handleUnHighlightItem = function(a) {
a.target == ll(this, this.goog_ui_Container_prototype$highlightedIndex_) && (this.goog_ui_Container_prototype$highlightedIndex_ = -1);
a = this.getElement();
zl(a)
};
d.handleOpenItem = function(a) {
(a = a.target) && a != this.openItem_ && a.goog_ui_Component_prototype$getParent() == this && (this.openItem_ && Vl(this.openItem_, !1), this.openItem_ = a)
};
d.handleCloseItem = function(a) {
a.target == this.openItem_ && (this.openItem_ = null);
var b = this.getElement(),
c = a.target.getElement();
b && a.target.state_ & 2 && c && (a = "", c && (a = c.id), yl(b, "activedescendant", a))
};
d.handleMouseDown = function(a) {
this.enabled_ && (this.mouseButtonPressed_ = !0);
var b = Xm(this);
b && ug(b) && vg(b) ? b.focus() : a.preventDefault()
};
d.handleDocumentMouseUp = function() {
this.mouseButtonPressed_ = !1
};
d.handleChildMouseEvents = function(a) {
var b = $m(this, a.target);
if (b) switch (a.type) {
case "mousedown":
b.handleMouseDown(a);
break;
case "mouseup":
b.handleMouseUp(a);
break;
case "mouseover":
b.handleMouseOver(a);
break;
case "mouseout":
b.handleMouseOut(a);
break;
case "contextmenu":
b.handleContextMenu(a)
}
};
var $m = function(a, b) {
if (a.childElementIdMap_)
for (var c = a.getElement(); b && b !== c;) {
var e = b.id;
if (e in a.childElementIdMap_) return a.childElementIdMap_[e];
b = b.parentNode
}
return null
};
Wm.prototype.goog_ui_Container_prototype$handleFocus = function() {};
Wm.prototype.goog_ui_Container_prototype$handleBlur = function() {
this.goog_ui_Container_prototype$setHighlightedIndex(-1);
this.mouseButtonPressed_ = !1;
this.openItem_ && Vl(this.openItem_, !1)
};
Wm.prototype.handleKeyEvent = function(a) {
return this.isEnabled() && this.isVisible() && (0 != kl(this) || this.keyEventTarget_) && this.goog_ui_Container_prototype$handleKeyEventInternal(a) ? (a.preventDefault(), a.stopPropagation(), !0) : !1
};
Wm.prototype.goog_ui_Container_prototype$handleKeyEventInternal = function(a) {
var b = ll(this, this.goog_ui_Container_prototype$highlightedIndex_);
if (b && "function" == typeof b.handleKeyEvent && b.handleKeyEvent(a) || this.openItem_ && this.openItem_ != b && "function" == typeof this.openItem_.handleKeyEvent && this.openItem_.handleKeyEvent(a)) return !0;
if (a.shiftKey || a.ctrlKey || a.metaKey || a.altKey) return !1;
switch (a.goog_events_BrowserEvent$keyCode) {
case 27:
if (this.goog_ui_Container_prototype$focusable_) Xm(this).blur();
else return !1;
break;
case 36:
an(this);
break;
case 35:
bn(this);
break;
case 38:
if ("vertical" == this.goog_ui_Container_prototype$orientation_) cn(this);
else return !1;
break;
case 37:
if ("horizontal" == this.goog_ui_Container_prototype$orientation_) ml(this) ? dn(this) : cn(this);
else return !1;
break;
case 40:
if ("vertical" == this.goog_ui_Container_prototype$orientation_) dn(this);
else return !1;
break;
case 39:
if ("horizontal" == this.goog_ui_Container_prototype$orientation_) ml(this) ? cn(this) : dn(this);
else return !1;
break;
default:
return !1
}
return !0
};
var Ym = function(a, b) {
var c = b.getElement();
c = c.id || (c.id = b.getId());
a.childElementIdMap_ || (a.childElementIdMap_ = {});
a.childElementIdMap_[c] = b
};
d = Wm.prototype;
d.goog_ui_Component_prototype$addChildAt = function(a, b, c) {
a.statesWithTransitionEvents_ |= 2;
a.statesWithTransitionEvents_ |= 64;
a.setSupportedState(32, !1);
a.inDocument_ && 0 != a.handleMouseEvents_ && Pl(a, !1);
a.handleMouseEvents_ = !1;
var e = a.goog_ui_Component_prototype$getParent() == this ? nl(this, a) : -1;
Wm.superClass_.goog_ui_Component_prototype$addChildAt.call(this, a, b, c);
a.inDocument_ && this.inDocument_ && Ym(this, a);
a = e; - 1 == a && (a = kl(this));
a == this.goog_ui_Container_prototype$highlightedIndex_ ? this.goog_ui_Container_prototype$highlightedIndex_ =
Math.min(kl(this) - 1, b) : a > this.goog_ui_Container_prototype$highlightedIndex_ && b <= this.goog_ui_Container_prototype$highlightedIndex_ ? this.goog_ui_Container_prototype$highlightedIndex_++ : a < this.goog_ui_Container_prototype$highlightedIndex_ && b > this.goog_ui_Container_prototype$highlightedIndex_ && this.goog_ui_Container_prototype$highlightedIndex_--
};
d.removeChild = function(a, b) {
if (a = u(a) ? gl(this, a) : a) {
var c = nl(this, a); - 1 != c && (c == this.goog_ui_Container_prototype$highlightedIndex_ ? (a.goog_ui_Control_prototype$setHighlighted(!1), this.goog_ui_Container_prototype$highlightedIndex_ = -1) : c < this.goog_ui_Container_prototype$highlightedIndex_ && this.goog_ui_Container_prototype$highlightedIndex_--);
var e = a.getElement();
e && e.id && this.childElementIdMap_ && (c = this.childElementIdMap_, e = e.id, e in c && delete c[e])
}
c = a = Wm.superClass_.removeChild.call(this, a, b);
c.inDocument_ &&
1 != c.handleMouseEvents_ && Pl(c, !0);
c.handleMouseEvents_ = !0;
return a
};
d.isVisible = function() {
return this.goog_ui_Container_prototype$visible_
};
d.setVisible = function(a, b) {
if (b || this.goog_ui_Container_prototype$visible_ != a && ne(this, a ? "show" : "hide")) {
this.goog_ui_Container_prototype$visible_ = a;
var c = this.getElement();
c && (Ej(c, a), this.goog_ui_Container_prototype$focusable_ && Sm(Xm(this), this.enabled_ && this.goog_ui_Container_prototype$visible_), b || ne(this, this.goog_ui_Container_prototype$visible_ ? "aftershow" : "afterhide"));
return !0
}
return !1
};
d.isEnabled = function() {
return this.enabled_
};
d.setEnabled = function(a) {
this.enabled_ != a && ne(this, a ? "enable" : "disable") && (a ? (this.enabled_ = !0, jl(this, function(a) {
a.wasDisabled ? delete a.wasDisabled : a.setEnabled(!0)
})) : (jl(this, function(a) {
a.isEnabled() ? a.setEnabled(!1) : a.wasDisabled = !0
}), this.mouseButtonPressed_ = this.enabled_ = !1), this.goog_ui_Container_prototype$focusable_ && Sm(Xm(this), a && this.goog_ui_Container_prototype$visible_))
};
var en = function(a, b) {
b != a.goog_ui_Container_prototype$focusable_ && a.inDocument_ && Zm(a, b);
a.goog_ui_Container_prototype$focusable_ = b;
a.enabled_ && a.goog_ui_Container_prototype$visible_ && Sm(Xm(a), b)
};
Wm.prototype.goog_ui_Container_prototype$setHighlightedIndex = function(a) {
(a = ll(this, a)) ? a.goog_ui_Control_prototype$setHighlighted(!0): -1 < this.goog_ui_Container_prototype$highlightedIndex_ && ll(this, this.goog_ui_Container_prototype$highlightedIndex_).goog_ui_Control_prototype$setHighlighted(!1)
};
var an = function(a) {
fn(a, function(a, c) {
return (a + 1) % c
}, kl(a) - 1)
},
bn = function(a) {
fn(a, function(a, c) {
a--;
return 0 > a ? c - 1 : a
}, 0)
},
dn = function(a) {
fn(a, function(a, c) {
return (a + 1) % c
}, a.goog_ui_Container_prototype$highlightedIndex_)
},
cn = function(a) {
fn(a, function(a, c) {
a--;
return 0 > a ? c - 1 : a
}, a.goog_ui_Container_prototype$highlightedIndex_)
},
fn = function(a, b, c) {
c = 0 > c ? nl(a, a.openItem_) : c;
var e = kl(a);
c = b.call(a, c, e);
for (var f = 0; f <= e;) {
var g = ll(a, c);
if (g && a.canHighlightItem(g)) {
a.goog_ui_Container_prototype$setHighlightedIndex(c);
break
}
f++;
c = b.call(a, c, e)
}
};
Wm.prototype.canHighlightItem = function(a) {
return a.isVisible() && a.isEnabled() && !!(a.supportedStates_ & 2)
};
var gn = function() {};
w(gn, Bl);
xa(gn);
gn.prototype.goog_ui_ControlRenderer_prototype$getCssClass = function() {
return "goog-menuheader"
};
var hn = function(a, b, c) {
U.call(this, a, c || gn.getInstance(), b);
this.setSupportedState(1, !1);
this.setSupportedState(2, !1);
this.setSupportedState(4, !1);
this.setSupportedState(32, !1);
this.state_ = 1
};
w(hn, U);
Nl("goog-menuheader", function() {
return new hn(null)
});
var jn = function() {
this.classNameCache_ = []
};
w(jn, Bl);
xa(jn);
var kn = function(a, b) {
var c = a.classNameCache_[b];
if (!c) {
switch (b) {
case 0:
c = a.goog_ui_ControlRenderer_prototype$getCssClass() + "-highlight";
break;
case 1:
c = a.goog_ui_ControlRenderer_prototype$getCssClass() + "-checkbox";
break;
case 2:
c = a.goog_ui_ControlRenderer_prototype$getCssClass() + "-content"
}
a.classNameCache_[b] = c
}
return c
};
d = jn.prototype;
d.goog_ui_ControlRenderer_prototype$getAriaRole = function() {
return "menuitem"
};
d.createDom = function(a) {
var b = a.goog_ui_Component$dom_.createDom("DIV", El(this, a).join(" "), ln(this, a.goog_ui_Control_prototype$content_, a.goog_ui_Component$dom_));
mn(this, a, b, !!(a.supportedStates_ & 8) || !!(a.supportedStates_ & 16));
return b
};
d.goog_ui_ControlRenderer_prototype$getContentElement = function(a) {
return a && a.firstChild
};
d.goog_ui_ControlRenderer_prototype$decorate = function(a, b) {
if (va(b.firstElementChild)) var c = b.firstElementChild;
else
for (c = b.firstChild; c && 1 != c.nodeType;) c = c.nextSibling;
var e = kn(this, 2);
c && lb(c, e) || b.appendChild(ln(this, b.childNodes, a.goog_ui_Component$dom_));
lb(b, "goog-option") && (a.setSupportedState(16, !0), a && b && mn(this, a, b, !0));
return jn.superClass_.goog_ui_ControlRenderer_prototype$decorate.call(this, a, b)
};
d.goog_ui_ControlRenderer_prototype$setContent = function(a, b) {
var c = this.goog_ui_ControlRenderer_prototype$getContentElement(a),
e = nn(this, a) ? c.firstChild : null;
jn.superClass_.goog_ui_ControlRenderer_prototype$setContent.call(this, a, b);
e && !nn(this, a) && c.insertBefore(e, c.firstChild || null)
};
var ln = function(a, b, c) {
a = kn(a, 2);
return c.createDom("DIV", a, b)
},
nn = function(a, b) {
var c = a.goog_ui_ControlRenderer_prototype$getContentElement(b);
if (c) {
c = c.firstChild;
var e = kn(a, 1);
return !!c && Ca(c) && 1 == c.nodeType && lb(c, e)
}
return !1
},
mn = function(a, b, c, e) {
Hl(a, c, b.getPreferredAriaRole());
Jl(b, c);
e != nn(a, c) && (e ? mb(c, "goog-option") : ob(c, "goog-option"), c = a.goog_ui_ControlRenderer_prototype$getContentElement(c), e ? (a = kn(a, 1), c.insertBefore(b.goog_ui_Component$dom_.createDom("DIV", a), c.firstChild || null)) : c.removeChild(c.firstChild))
};
jn.prototype.getClassForState = function(a) {
switch (a) {
case 2:
return kn(this, 0);
case 16:
case 8:
return "goog-option-selected";
default:
return jn.superClass_.getClassForState.call(this, a)
}
};
jn.prototype.getStateFromClass = function(a) {
var b = kn(this, 0);
switch (a) {
case "goog-option-selected":
return 16;
case b:
return 2;
default:
return jn.superClass_.getStateFromClass.call(this, a)
}
};
jn.prototype.goog_ui_ControlRenderer_prototype$getCssClass = function() {
return "goog-menuitem"
};
var on = function(a, b, c, e) {
U.call(this, a, e || jn.getInstance(), c);
this.model_ = b
};
w(on, U);
d = on.prototype;
d.getValue = function() {
var a = this.model_;
return null != a ? a : this.getCaption()
};
d.setSupportedState = function(a, b) {
on.superClass_.setSupportedState.call(this, a, b);
switch (a) {
case 8:
this.state_ & 16 && !b && Ul(this, !1);
var c = this.getElement();
c && this && c && mn(this.goog_ui_Control_prototype$renderer_, this, c, b);
break;
case 16:
(c = this.getElement()) && this && c && mn(this.goog_ui_Control_prototype$renderer_, this, c, b)
}
};
d.getCaption = function() {
var a = this.goog_ui_Control_prototype$content_;
return za(a) ? (a = $a(a, function(a) {
return Ca(a) && 1 == a.nodeType && (lb(a, "goog-menuitem-accel") || lb(a, "goog-menuitem-mnemonic-separator")) ? "" : yg(a)
}).join(""), vb(a)) : on.superClass_.getCaption.call(this)
};
d.handleMouseUp = function(a) {
var b = this.goog_ui_Component_prototype$getParent();
if (b) {
var c = b.openingCoords;
b.openingCoords = null;
if (c && v(a.clientX) && Ye(c, new A(a.clientX, a.clientY))) return
}
on.superClass_.handleMouseUp.call(this, a)
};
d.goog_ui_Control_prototype$handleKeyEventInternal = function(a) {
return a.goog_events_BrowserEvent$keyCode == this.mnemonicKey_ && this.performActionInternal(a) ? !0 : on.superClass_.goog_ui_Control_prototype$handleKeyEventInternal.call(this, a)
};
d.getMnemonic = function() {
return this.mnemonicKey_
};
Nl("goog-menuitem", function() {
return new on(null)
});
on.prototype.getPreferredAriaRole = function() {
return this.supportedStates_ & 16 ? "menuitemcheckbox" : this.supportedStates_ & 8 ? "menuitemradio" : on.superClass_.getPreferredAriaRole.call(this)
};
on.prototype.goog_ui_Component_prototype$getParent = function() {
return U.prototype.goog_ui_Component_prototype$getParent.call(this)
};
on.prototype.getParentEventTarget = function() {
return U.prototype.getParentEventTarget.call(this)
};
var pn = function() {};
w(pn, Bl);
xa(pn);
pn.prototype.createDom = function(a) {
return a.goog_ui_Component$dom_.createDom("DIV", this.goog_ui_ControlRenderer_prototype$getCssClass())
};
pn.prototype.goog_ui_ControlRenderer_prototype$decorate = function(a, b) {
b.id && el(a, b.id);
if ("HR" == b.tagName) {
var c = b;
b = this.createDom(a);
c.parentNode && c.parentNode.insertBefore(b, c);
C(c)
} else mb(b, this.goog_ui_ControlRenderer_prototype$getCssClass());
return b
};
pn.prototype.goog_ui_ControlRenderer_prototype$setContent = function() {};
pn.prototype.goog_ui_ControlRenderer_prototype$getCssClass = function() {
return "goog-menuseparator"
};
var qn = function(a, b) {
U.call(this, null, a || pn.getInstance(), b);
this.setSupportedState(1, !1);
this.setSupportedState(2, !1);
this.setSupportedState(4, !1);
this.setSupportedState(32, !1);
this.state_ = 1
};
w(qn, U);
qn.prototype.enterDocument = function() {
qn.superClass_.enterDocument.call(this);
var a = this.getElement();
xl(a, "separator")
};
Nl("goog-menuseparator", function() {
return new qn
});
var rn = function(a) {
this.ariaRole_ = a || "menu"
};
w(rn, Rm);
xa(rn);
rn.prototype.goog_ui_ContainerRenderer_prototype$canDecorate = function(a) {
return "UL" == a.tagName || rn.superClass_.goog_ui_ContainerRenderer_prototype$canDecorate.call(this, a)
};
rn.prototype.getDecoratorForChild = function(a) {
return "HR" == a.tagName ? new qn : rn.superClass_.getDecoratorForChild.call(this, a)
};
rn.prototype.goog_ui_ContainerRenderer_prototype$getCssClass = function() {
return "goog-menu"
};
rn.prototype.goog_ui_ContainerRenderer_prototype$initializeDom = function(a) {
rn.superClass_.goog_ui_ContainerRenderer_prototype$initializeDom.call(this, a);
a = a.getElement();
yl(a, "haspopup", "true")
};
Nl("goog-menuseparator", function() {
return new qn
});
var sn = function(a, b) {
Wm.call(this, "vertical", b || rn.getInstance(), a);
en(this, !1)
};
w(sn, Wm);
sn.prototype.allowAutoFocus_ = !0;
var tn = function(a) {
a.allowAutoFocus_ = !0;
en(a, !0)
};
d = sn.prototype;
d.setVisible = function(a, b, c) {
(b = sn.superClass_.setVisible.call(this, a, b)) && a && this.inDocument_ && this.allowAutoFocus_ && Xm(this).focus();
a && c && v(c.clientX) ? this.openingCoords = new A(c.clientX, c.clientY) : this.openingCoords = null;
return b
};
d.handleEnterItem = function(a) {
this.allowAutoFocus_ && Xm(this).focus();
return sn.superClass_.handleEnterItem.call(this, a)
};
d.canHighlightItem = function(a) {
return a.isEnabled() && a.isVisible() && !!(a.supportedStates_ & 2)
};
d.decorateInternal = function(a) {
for (var b = this.goog_ui_Container_prototype$renderer_, c = dg(this.goog_ui_Component$dom_.document_, "DIV", b.goog_ui_ContainerRenderer_prototype$getCssClass() + "-content", a), e = c.length, f = 0; f < e; f++) Um(b, this, c[f]);
sn.superClass_.decorateInternal.call(this, a)
};
d.goog_ui_Container_prototype$handleKeyEventInternal = function(a) {
var b = sn.superClass_.goog_ui_Container_prototype$handleKeyEventInternal.call(this, a);
b || jl(this, function(c) {
!b && c.getMnemonic && c.mnemonicKey_ == a.goog_events_BrowserEvent$keyCode && (this.isEnabled() && this.goog_ui_Container_prototype$setHighlightedIndex(nl(this, c)), b = c.handleKeyEvent(a))
}, this);
return b
};
d.goog_ui_Container_prototype$setHighlightedIndex = function(a) {
sn.superClass_.goog_ui_Container_prototype$setHighlightedIndex.call(this, a);
if (a = ll(this, a)) {
var b = a.getElement();
a = this.getElement() || ig(document);
var c = a || ig(document);
var e = Bj(b),
f = Bj(c);
if (!z || 9 <= Number(xd)) {
h = xj(c, "borderLeftWidth");
var g = xj(c, "borderRightWidth");
m = xj(c, "borderTopWidth");
n = xj(c, "borderBottomWidth");
g = new uj(parseFloat(m), parseFloat(g), parseFloat(n), parseFloat(h))
} else {
var h = Ij(c, "borderLeft");
g = Ij(c, "borderRight");
var m = Ij(c, "borderTop"),
n = Ij(c, "borderBottom");
g = new uj(m, g, n, h)
}
c == ig(document) ? (h = e.x - c.scrollLeft, e = e.y - c.scrollTop, !z || 10 <= Number(xd) || (h += g.left, e += g.top)) : (h = e.x - f.x - g.left, e = e.y - f.y - g.top);
b = Cj(b);
f = c.clientHeight - b.height;
g = c.scrollLeft;
m = c.scrollTop;
g += Math.min(h, Math.max(h - (c.clientWidth - b.width), 0));
m += Math.min(e, Math.max(e - f, 0));
c = new A(g, m);
a.scrollLeft = c.x;
a.scrollTop = c.y
}
};
var vn = function(a, b) {
this.Blockly_FieldDropdown$menuGenerator_ = a;
this.Blockly_FieldDropdown_prototype$trimOptions();
var c = un(this)[0];
vn.superClass_.constructor.call(this, c[1], b);
bk(this, "dropdown")
};
w(vn, Wj);
d = vn.prototype;
d.CURSOR = "default";
d.selectedItem = null;
d.value = "";
d.disableColourChange_ = !1;
d.init = function() {
if (!this.fieldGroup_) {
this.Blockly_FieldDropdown$arrowSize_ = 12;
this.Blockly_FieldDropdown$arrowX_ = 0;
this.Blockly_FieldDropdown$arrowY_ = 11;
this.arrow_ = O("image", {
height: this.Blockly_FieldDropdown$arrowSize_ + "px",
width: this.Blockly_FieldDropdown$arrowSize_ + "px"
});
this.arrow_.setAttributeNS("http://www.w3.org/1999/xlink", "xlink:href", K.options.pathToMedia + "dropdown-arrow.svg");
vn.superClass_.init.call(this);
this.Blockly_Field_prototype$sourceBlock.isShadowBlock || (this.box_ = O("rect", {
rx: 4,
ry: 4,
x: 0,
y: 0,
width: this.Blockly_Field$size_.width,
height: this.Blockly_Field$size_.height,
stroke: this.Blockly_Field_prototype$sourceBlock.colourTertiary_,
fill: this.Blockly_Field_prototype$sourceBlock.colour_,
"class": "blocklyBlockBackground",
"fill-opacity": 1
}, null), this.fieldGroup_.insertBefore(this.box_, this.textElement_));
var a = this.text;
this.text = null;
this.Blockly_Field_prototype$setText(a)
}
};
d.showEditor = function() {
this.dropDownOpen_ = !0;
ei();
Jj.innerHTML = "";
var a = Jj,
b = this,
c = new sn;
c.goog_ui_Component_prototype$setRightToLeft(this.Blockly_Field_prototype$sourceBlock.RTL);
for (var e = un(this), f = 0; f < e.length; f++) {
var g = e[f][0],
h = e[f][1];
if ("object" == typeof g) {
var m = new Image(g.width, g.height);
m.src = g.src;
m.alt = g.alt || "";
g = m
}
g = new on(g);
g.goog_ui_Component_prototype$setRightToLeft(this.Blockly_Field_prototype$sourceBlock.RTL);
g.model_ = h;
g.setSupportedState(16, !0);
c.goog_ui_Component_prototype$addChildAt(g,
kl(c), !0);
h = h == this.value;
Ul(g, h);
h && (this.selectedItem = g)
}
$d(c, "action", function(a) {
if (a = a.target) b.onItemSelected(this, a);
Vj();
ci(!1)
});
$d(c, "touchstart", function(a) {
$m(this, a.target).handleMouseDown(a)
});
$d(c, "touchend", function(a) {
$m(this, a.target).performActionInternal(a)
});
c.render(a);
a = c.getElement();
Hi(a, "blocklyDropdownMenu");
Dj(a).height = a.scrollHeight;
Qj(this.Blockly_Field_prototype$sourceBlock.isShadowBlock ? this.Blockly_Field_prototype$sourceBlock.parentBlock.colour_ : this.Blockly_Field_prototype$sourceBlock.colour_,
this.Blockly_Field_prototype$sourceBlock.colourTertiary_);
Rj(this.Blockly_Field_prototype$sourceBlock.isShadowBlock ? this.Blockly_Field_prototype$sourceBlock.parentBlock.category_ : this.Blockly_Field_prototype$sourceBlock.category_);
f = this.Blockly_Field_prototype$sourceBlock.workspace.scale;
h = this.Blockly_Field$size_.width;
e = this.Blockly_Field$size_.height;
h *= f;
e *= f;
f = this.fieldGroup_.getBoundingClientRect();
h = f.left + h / 2;
e = f.top + e;
f = f.top;
Mj = Sj(this.Blockly_Field_prototype$sourceBlock.workspace).parentNode;
Tj(this, h, e, h, f, this.Blockly_FieldDropdown_prototype$onHide.bind(this));
tn(c);
a.focus();
this.disableColourChange_ || (this.Blockly_Field_prototype$sourceBlock.isShadowBlock ? (this.savedPrimary_ = this.Blockly_Field_prototype$sourceBlock.colour_, this.Blockly_Field_prototype$sourceBlock.setColour(this.Blockly_Field_prototype$sourceBlock.colourTertiary_, this.Blockly_Field_prototype$sourceBlock.colourSecondary_, this.Blockly_Field_prototype$sourceBlock.colourTertiary_)) : this.box_ && this.box_.setAttribute("fill",
this.Blockly_Field_prototype$sourceBlock.colourTertiary_))
};
d.Blockly_FieldDropdown_prototype$onHide = function() {
this.dropDownOpen_ = !1;
!this.disableColourChange_ && this.Blockly_Field_prototype$sourceBlock && (this.Blockly_Field_prototype$sourceBlock.isShadowBlock ? this.Blockly_Field_prototype$sourceBlock.setColour(this.savedPrimary_, this.Blockly_Field_prototype$sourceBlock.colourSecondary_, this.Blockly_Field_prototype$sourceBlock.colourTertiary_) : this.box_ && this.box_.setAttribute("fill", this.Blockly_Field_prototype$sourceBlock.colour_))
};
d.onItemSelected = function(a, b) {
var c = b.getValue();
this.Blockly_Field_prototype$sourceBlock && (c = ck(this, c));
null !== c && this.Blockly_Field_prototype$setValue(c)
};
d.Blockly_FieldDropdown_prototype$trimOptions = function() {
this.suffixField = this.prefixField = null;
var a = this.Blockly_FieldDropdown$menuGenerator_;
if (za(a)) {
for (var b = !1, c = 0; c < a.length; c++) {
var e = a[c][0];
"string" == typeof e ? a[c][0] = vk(e) : (null != e.alt && (a[c][0].alt = vk(e.alt)), b = !0)
}
if (!(b || 2 > a.length)) {
var f = [];
for (c = 0; c < a.length; c++) f.push(a[c][0]);
c = rk(f);
b = sk(f, c);
e = tk(f, c);
if ((b || e) && !(c <= b + e)) {
b && (this.prefixField = f[0].substring(0, b - 1));
e && (this.suffixField = f[0].substr(1 - e));
f = [];
for (c = 0; c < a.length; c++) {
var g =
a[c][0],
h = a[c][1];
g = g.substring(b, g.length - e);
f[c] = [g, h]
}
this.Blockly_FieldDropdown$menuGenerator_ = f
}
}
}
};
var un = function(a) {
return Ba(a.Blockly_FieldDropdown$menuGenerator_) ? a.Blockly_FieldDropdown$menuGenerator_.call(a) : a.Blockly_FieldDropdown$menuGenerator_
};
d = vn.prototype;
d.getValue = function() {
return this.value
};
d.Blockly_Field_prototype$setValue = function(a) {
if (null !== a && a !== this.value) {
this.Blockly_Field_prototype$sourceBlock && 0 == Q && P(new Mi(this.Blockly_Field_prototype$sourceBlock, "field", this.name, this.value, a));
this.selectedItem && (Ul(this.selectedItem, !1), this.selectedItem = null);
this.value = a;
for (var b = un(this), c = 0; c < b.length; c++)
if (b[c][1] == a) {
a = b[c][0];
"object" == typeof a ? this.Blockly_Field_prototype$setText(a.alt) : this.Blockly_Field_prototype$setText(a);
return
} this.Blockly_Field_prototype$setText(a)
}
};
d.Blockly_Field_prototype$setText = function(a) {
null !== a && a !== this.text && (this.text = a, this.textElement_ && (a = this.text, 4 < a.length ? (a = a.substring(0, 2) + "\u2026", this.textElement_.setAttribute("class", "blocklyText blocklyTextTruncated")) : this.textElement_.setAttribute("class", "blocklyText"), ng(this.textElement_), a = a.replace(/\s/g, "\u00a0"), this.Blockly_Field_prototype$sourceBlock.RTL && a && (a += "\u200f"), a || (a = "\u00a0"), this.textElement_.appendChild(document.createTextNode(a)), this.Blockly_Field$size_.width =
0), this.textElement_ && (this.textElement_.setAttribute("class", this.textElement_.getAttribute("class") + " blocklyDropdownText"), this.textElement_.parentNode.appendChild(this.arrow_)), this.Blockly_Field_prototype$sourceBlock && this.Blockly_Field_prototype$sourceBlock.rendered && (this.Blockly_Field_prototype$sourceBlock.render(), ik(this.Blockly_Field_prototype$sourceBlock)))
};
d.positionArrow = function(a) {
if (!this.arrow_) return 0;
this.Blockly_FieldDropdown$arrowX_ = this.Blockly_Field_prototype$sourceBlock.RTL ? this.Blockly_FieldDropdown$arrowSize_ - 0 : a + 0;
a = this.Blockly_FieldDropdown$arrowSize_ + 0;
this.box_ && (this.Blockly_FieldDropdown$arrowX_ += 0);
this.arrow_.setAttribute("transform", "translate(" + this.Blockly_FieldDropdown$arrowX_ + "," + this.Blockly_FieldDropdown$arrowY_ + ")");
return a
};
d.dispose = function() {
this.selectedItem = null;
Fk(this);
vn.superClass_.dispose.call(this)
};
var wn = function(a, b, c, e) {
this.dropDownOpen_ = !1;
this.Blockly_FieldTextDropdown_prototype$trimOptions();
wn.superClass_.constructor.call(this, a, c, e);
bk(this, "textdropdown")
};
w(wn, Dk);
d = wn.prototype;
d.init = function() {
wn.superClass_.init.call(this);
this.arrow_ || (this.Blockly_FieldTextInput$arrowSize_ = 12, this.Blockly_FieldTextInput$arrowY_ = 11, this.arrow_ = O("image", {
height: this.Blockly_FieldTextInput$arrowSize_ + "px",
width: this.Blockly_FieldTextInput$arrowSize_ + "px"
}), this.arrow_.setAttributeNS("http://www.w3.org/1999/xlink", "xlink:href", K.options.pathToMedia + "dropdown-arrow-dark.svg"), this.arrow_.style.cursor = "pointer", this.fieldGroup_.appendChild(this.arrow_), this.mouseUpWrapper_ = T(this.arrow_,
"mouseup", this, this.showDropdown_));
this.disableColourChange_ = !0
};
d.Blockly_FieldTextDropdown_prototype$trimOptions = vn.prototype.Blockly_FieldDropdown_prototype$trimOptions;
d.dispose = function() {
this.mouseUpWrapper_ && (Oh(this.mouseUpWrapper_), J = this.mouseUpWrapper_ = null);
wn.superClass_.dispose.call(this)
};
d.showEditor = function() {
this.dropDownOpen_ || wn.superClass_.showEditor.call(this, void 0, void 0, !0, function() {
L();
this.showDropdown_();
J = null
})
};
d.positionArrow = vn.prototype.positionArrow;
d.showDropdown_ = vn.prototype.showEditor;
var xn = function(a, b, c, e, f, g) {
c = this.Blockly_FieldNumberDropdown_prototype$getNumRestrictor(c, e, f);
xn.superClass_.constructor.call(this, a, b, g, c);
bk(this, "numberdropdown")
};
xn.prototype.Blockly_FieldNumberDropdown_prototype$getNumRestrictor = Lm.prototype.Blockly_FieldNumber_prototype$getNumRestrictor;
w(xn, wn);
var M = {};
var Ti = [, 2, 1, 4, 3];
var Xh = function(a) {
if (a instanceof oi) var b = a.getDescendants();
else if (a instanceof Wh || a instanceof V) b = ai(a);
else throw "Not Block or Workspace: " + a;
a = Object.create(null);
for (var c = 0; c < b.length; c++) {
var e = ii(b[c]);
if (e)
for (var f = 0; f < e.length; f++) {
var g = e[f];
g && "No variable selected" != g.toLowerCase() && (a[g.toLowerCase()] = g)
}
}
b = [];
for (var h in a) b.push(a[h]);
return b
},
Dn = function(a) {
var b = a.variableList;
b.sort(xb);
var c = [],
e = B("button");
e.setAttribute("text", M.NEW_VARIABLE);
e.setAttribute("callbackKey",
"CREATE_VARIABLE");
yn(a, function(a) {
zn(a.targetWorkspace_)
});
c.push(e);
for (a = 0; a < b.length; a++)
if (H.data_variable) {
e = B("block");
e.setAttribute("type", "data_variable");
e.setAttribute("gap", 8);
var f = B("field", null, b[a]);
f.setAttribute("name", "VARIABLE");
e.appendChild(f);
c.push(e)
} 1 < c.length && (c[c.length - 1].setAttribute("gap", 24), H.data_setvariableto && (e = B("block"), e.setAttribute("type", "data_setvariableto"), e.setAttribute("gap", 8), e.appendChild(An(b[0])), e.appendChild(Bn()), c.push(e)), H.data_changevariableby &&
(e = B("block"), e.setAttribute("type", "data_changevariableby"), e.setAttribute("gap", 8), e.appendChild(An(b[0])), e.appendChild(Cn()), c.push(e)), H.data_showvariable && (e = B("block"), e.setAttribute("type", "data_showvariable"), e.setAttribute("gap", 8), e.appendChild(An(b[0])), c.push(e)), H.data_hidevariable && (e = B("block"), e.setAttribute("type", "data_hidevariable"), e.appendChild(An(b[0])), c.push(e)));
return c
},
En = function(a) {
var b = B("value");
b.setAttribute("name", a);
return b
},
Fn = function(a) {
var b = B("shadow");
b.setAttribute("type", a);
return b
},
An = function(a) {
var b = En("VARIABLE"),
c = Fn("data_variablemenu");
a = B("field", null, a);
a.setAttribute("name", "VARIABLE");
c.appendChild(a);
b.appendChild(c);
return b
},
Bn = function() {
var a = En("VALUE"),
b = Fn("text"),
c = B("field", null, "0");
c.setAttribute("name", "TEXT");
b.appendChild(c);
a.appendChild(b);
return a
},
Cn = function() {
var a = En("VALUE"),
b = Fn("math_number"),
c = B("field", null, "1");
c.setAttribute("name", "NUM");
b.appendChild(c);
a.appendChild(b);
return a
},
Gn = function(a) {
a = a.variableList;
var b = "";
if (a.length)
for (var c = 1, e = 0, f = "ijkmnopqrstuvwxyzabcdefgh".charAt(e); !b;) {
for (var g = !1, h = 0; h < a.length; h++)
if (a[h].toLowerCase() == f) {
g = !0;
break
} g ? (e++, 25 == e && (e = 0, c++), f = "ijkmnopqrstuvwxyzabcdefgh".charAt(e), 1 < c && (f += c)) : b = f
} else b = "i";
return b
},
zn = function(a) {
var b = function(c) {
Hn(M.NEW_VARIABLE_TITLE, c, function(c) {
c && (-1 != gi(a, c) ? li(M.VARIABLE_ALREADY_EXISTS.replace("%1", c.toLowerCase()), function() {
b(c)
}) : a.createVariable(c))
})
};
b("")
},
Hn = function(a, b, c) {
In(a, b, function(a) {
a && (a = a.replace(/[\s\xa0]+/g,
" ").replace(/^ | $/g, ""), a == M.RENAME_VARIABLE || a == M.NEW_VARIABLE) && (a = null);
c(a)
})
};
var Jn = function(a, b) {
Jn.superClass_.constructor.call(this, Kn, b);
this.Blockly_Field_prototype$setValue(a || "");
bk(this, "variable")
};
w(Jn, vn);
d = Jn.prototype;
d.renameVarItemIndex_ = -1;
d.deleteVarItemIndex_ = -1;
d.init = function() {
this.fieldGroup_ || (Jn.superClass_.init.call(this), this.getValue() || this.Blockly_Field_prototype$setValue(Gn(this.Blockly_Field_prototype$sourceBlock.isInFlyout ? this.Blockly_Field_prototype$sourceBlock.workspace.targetWorkspace : this.Blockly_Field_prototype$sourceBlock.workspace)), this.Blockly_Field_prototype$sourceBlock.isInFlyout || this.Blockly_Field_prototype$sourceBlock.workspace.createVariable(this.getValue()))
};
d.getValue = function() {
return this.Blockly_Field_prototype$getText()
};
d.Blockly_Field_prototype$setValue = function(a) {
this.Blockly_Field_prototype$sourceBlock && 0 == Q && P(new Mi(this.Blockly_Field_prototype$sourceBlock, "field", this.name, this.value, a));
this.value = a;
this.Blockly_Field_prototype$setText(a)
};
var Kn = function() {
var a = this.Blockly_Field_prototype$sourceBlock && this.Blockly_Field_prototype$sourceBlock.workspace ? this.Blockly_Field_prototype$sourceBlock.workspace.variableList.slice(0) : [],
b = this.Blockly_Field_prototype$getText();
b && -1 == a.indexOf(b) && a.push(b);
a.sort(xb);
this.renameVarItemIndex_ = a.length;
a.push(M.RENAME_VARIABLE);
this.deleteVarItemIndex_ = a.length;
a.push(M.DELETE_VARIABLE.replace("%1", b));
b = [];
for (var c = 0; c < a.length; c++) b[c] = [a[c], a[c]];
return b
};
Jn.prototype.onItemSelected = function(a, b) {
var c = b.getValue();
if (this.Blockly_Field_prototype$sourceBlock) {
var e = this.Blockly_Field_prototype$sourceBlock.workspace;
if (0 <= this.renameVarItemIndex_ && ll(a, this.renameVarItemIndex_) === b) {
var f = this.Blockly_Field_prototype$getText();
Di();
Hn(M.RENAME_VARIABLE_TITLE.replace("%1", f), f, function(a) {
a && e.renameVariable(f, a)
});
return
}
if (0 <= this.deleteVarItemIndex_ && ll(a, this.deleteVarItemIndex_) === b) {
ni(e, this.Blockly_Field_prototype$getText());
return
}
c = ck(this,
c)
}
null !== c && this.Blockly_Field_prototype$setValue(c)
};
var Ln = function(a) {
Ln.superClass_.constructor.call(this, a)
};
w(Ln, Wj);
Ln.prototype.EDITABLE = !0;
Ln.prototype.init = function() {
this.fieldGroup_ || (Ln.superClass_.init.call(this), this.getValue() || this.Blockly_Field_prototype$setValue(Gn(this.Blockly_Field_prototype$sourceBlock.isInFlyout ? this.Blockly_Field_prototype$sourceBlock.workspace.targetWorkspace : this.Blockly_Field_prototype$sourceBlock.workspace)), this.Blockly_Field_prototype$sourceBlock.isInFlyout || this.Blockly_Field_prototype$sourceBlock.workspace.createVariable(this.getValue()))
};
Ln.prototype.showEditor = function() {};
Ln.prototype.updateEditable = function() {};
var Mn = !1,
Nn = 0,
On = 0,
Pn = 0,
Qn = 0,
Rn = null,
Sn = null,
Tn = null,
Km = function(a) {
T(a, "mouseover", null, Un);
T(a, "mouseout", null, Vn);
a.addEventListener("mousemove", Wn, !1)
},
Un = function(a) {
for (a = a.target; !u(a.tooltip) && !Ba(a.tooltip);) a = a.tooltip;
Rn != a && (Xn(), Sn = null, Rn = a);
clearTimeout(Nn)
},
Vn = function() {
Nn = setTimeout(function() {
Sn = Rn = null;
Xn()
}, 1);
clearTimeout(On)
},
Wn = function(a) {
if (Rn && Rn.tooltip && 0 == Yn && !Zn)
if (Mn) {
var b = Pn - a.pageX;
a = Qn - a.pageY;
10 < Math.sqrt(b * b + a * a) && Xn()
} else Sn != Rn && (clearTimeout(On), Pn = a.pageX,
Qn = a.pageY, On = setTimeout($n, 750))
},
Xn = function() {
Mn && (Mn = !1, Tn && (Tn.style.display = "none"));
clearTimeout(On)
},
$n = function() {
Sn = Rn;
if (Tn) {
ng(Tn);
for (var a = Rn.tooltip; Ba(a);) a = a();
a = a.split("\n");
for (var b = 0; b < a.length; b++) {
var c = b;
var e = a[b],
f = 50;
if (e.length <= f) var g = e;
else {
for (var h = e.trim().split(/\s+/), m = 0; m < h.length; m++) h[m].length > f && (f = h[m].length);
m = -Infinity;
var n = 1;
do {
var p = m;
g = e;
e = [];
var r = h.length / n,
t = 1;
for (m = 0; m < h.length - 1; m++) t < (m + 1.5) / r ? (t++, e[m] = !0) : e[m] = !1;
e = yk(h, e, f);
m = xk(h, e, f);
r =
h;
t = [];
for (var x = 0; x < r.length; x++) t.push(r[x]), void 0 !== e[x] && t.push(e[x] ? "\n" : " ");
e = t.join("");
n++
} while (m > p)
}
a[c] = g
}
a = a.join("\n");
a = a.split("\n");
for (b = 0; b < a.length; b++) c = document.createElement("div"), c.appendChild(document.createTextNode(a[b])), Tn.appendChild(c);
a = Rn.RTL;
b = hg();
Tn.style.direction = a ? "rtl" : "ltr";
Tn.style.display = "block";
Mn = !0;
c = Pn;
c = a ? c - (0 + Tn.offsetWidth) : c + 0;
g = Qn + 10;
g + Tn.offsetHeight > b.height + window.scrollY && (g -= Tn.offsetHeight + 20);
a ? c = Math.max(5 - window.scrollX, c) : c + Tn.offsetWidth >
b.width + window.scrollX - 10 && (c = b.width - Tn.offsetWidth - 10);
Tn.style.top = g + "px";
Tn.style.left = c + "px"
}
};
var ao = function(a, b) {
this.Blockly_Field$size_ = new $f(0, 0);
this.class_ = b;
this.Blockly_Field_prototype$setValue(a)
};
w(ao, Wj);
d = ao.prototype;
d.EDITABLE = !1;
d.init = function() {
this.textElement_ || (this.textElement_ = O("text", {
"class": "blocklyText",
y: 1,
"text-anchor": "middle",
"dominant-baseline": "middle"
}, null), this.class_ && Hi(this.textElement_, this.class_), this.Blockly_Field_prototype$visible || (this.textElement_.style.display = "none"), this.Blockly_Field_prototype$sourceBlock.getSvgRoot().appendChild(this.textElement_), this.textElement_.tooltip = this.Blockly_Field_prototype$sourceBlock, Km(this.textElement_), this.render())
};
d.dispose = function() {
C(this.textElement_);
this.textElement_ = null
};
d.getSvgRoot = function() {
return this.textElement_
};
d.Blockly_Field_prototype$setTooltip = function(a) {
this.textElement_.tooltip = a
};
var bo = function(a, b, c, e) {
this.type = a;
this.name = b;
this.Blockly_Input$sourceBlock = c;
this.connection = e;
this.fieldRow = []
};
bo.prototype.Blockly_Input_prototype$visible_ = !0;
var eo = function(a, b, c) {
co(a, a.fieldRow.length, b, c);
return a
},
co = function(a, b, c, e) {
if (0 > b || b > a.fieldRow.length) throw Error("J`" + b);
if (!c && !e) throw Error("K");
u(c) && (c = new ao(c));
c.Blockly_Field_prototype$sourceBlock = a.Blockly_Input$sourceBlock;
a.Blockly_Input$sourceBlock.rendered && c.init();
c.name = e ? e : null;
c.prefixField && (b = co(a, b, c.prefixField));
a.fieldRow.splice(b, 0, c);
++b;
c.suffixField && (b = co(a, b, c.suffixField));
a.Blockly_Input$sourceBlock.rendered && (a.Blockly_Input$sourceBlock.render(), ik(a.Blockly_Input$sourceBlock));
return b
};
bo.prototype.isVisible = function() {
return this.Blockly_Input_prototype$visible_
};
bo.prototype.setVisible = function(a) {
var b = [];
if (this.Blockly_Input_prototype$visible_ == a) return b;
for (var c = (this.Blockly_Input_prototype$visible_ = a) ? "block" : "none", e = 0, f; f = this.fieldRow[e]; e++) f.setVisible(a);
if (this.connection) {
if (a) b = fo(this.connection);
else if (e = this.connection, go(e, !0), e.targetConnection)
for (e = S(e).getDescendants(), f = 0; f < e.length; f++) {
for (var g = e[f], h = g.getConnections(!0), m = 0; m < h.length; m++) go(h[m], !0);
g = ho(g);
for (m = 0; m < g.length; m++) g[m].setVisible(!1)
}
if (e = S(this.connection)) e.getSvgRoot().style.display =
c, a || (e.rendered = !1)
}
return b
};
bo.prototype.init = function() {
if (this.Blockly_Input$sourceBlock.workspace.rendered)
for (var a = 0; a < this.fieldRow.length; a++) this.fieldRow[a].init(this.Blockly_Input$sourceBlock)
};
bo.prototype.dispose = function() {
for (var a = 0, b; b = this.fieldRow[a]; a++) b.dispose();
this.connection && this.connection.dispose();
this.Blockly_Input$sourceBlock = null
};
var oi = function(a, b, c) {
var e = a && a.getFlyout && a.getFlyout() ? a.getFlyout().workspace : null;
this.id = !c || qi(a, c) || e && qi(e, c) ? Th() : c;
a.blockDB[this.id] = this;
this.previousConnection = this.nextConnection = this.outputConnection = null;
this.inputList = [];
this.inputsInline = !0;
this.disabled = !1;
this.tooltip = "";
this.Blockly_Block$contextMenu = !0;
this.parentBlock = null;
this.childBlocks = [];
this.editable_ = this.movable_ = this.deletable_ = !0;
this.checkboxInFlyout_ = this.Blockly_Block$collapsed = this.isShadowBlock = !1;
this.category_ =
this.outputShape_ = this.comment = null;
this.xy_ = new A(0, 0);
this.workspace = a;
this.isInFlyout = a.isFlyout;
this.isInMutator = a.isMutator;
this.RTL = a.RTL;
this.isInsertionMarker_ = !1;
if (b) {
this.type = b;
b = H[b];
for (var f in b) this[f] = b[f]
}
Yh(a, this);
Ba(this.init) ? this.init() : null != this.json && io(this, this.json);
this.inputsInlineDefault = this.inputsInline;
0 == Q && P(new jo(this));
if (Ba(this.onchange)) {
if ((a = this.onchange) && !Ba(a)) throw Error("L");
this.onchangeWrapper_ && this.workspace.removeChangeListener(this.onchangeWrapper_);
if (this.onchange = a) this.onchangeWrapper_ = a.bind(this), this.workspace.addChangeListener(this.onchangeWrapper_)
}
};
d = oi.prototype;
d.data = null;
d.colour_ = "#FF0000";
d.colourSecondary_ = "#FF0000";
d.colourTertiary_ = "#FF0000";
d.dispose = function(a) {
if (this.workspace) {
this.onchangeWrapper_ && this.workspace.removeChangeListener(this.onchangeWrapper_);
mj(this, a);
0 == Q && P(new ko(this));
Q++;
try {
this.workspace && (Zh(this.workspace, this), delete this.workspace.blockDB[this.id], this.workspace = null);
lo == this && (lo = null);
for (var b = this.childBlocks.length - 1; 0 <= b; b--) this.childBlocks[b].dispose(!1);
b = 0;
for (var c; c = this.inputList[b]; b++) c.dispose();
this.inputList.length = 0;
var e = this.getConnections(!0);
for (b = 0; b < e.length; b++) {
var f = e[b];
f.targetConnection && f.disconnect();
e[b].dispose()
}
} finally {
Q--
}
}
};
var mj = function(a, b) {
if (a.outputConnection) a.outputConnection.targetConnection && a.outputConnection.disconnect();
else if (a.previousConnection) {
var c = null;
a.previousConnection.targetConnection && (c = a.previousConnection.targetConnection, a.previousConnection.disconnect());
var e = Xi(a);
b && e && (e = a.nextConnection.targetConnection, e.disconnect(), c && Yi(c, e) && c.connect(e))
}
};
oi.prototype.getConnections = function() {
var a = [];
this.outputConnection && a.push(this.outputConnection);
this.previousConnection && a.push(this.previousConnection);
this.nextConnection && a.push(this.nextConnection);
for (var b = 0, c; c = this.inputList[b]; b++) c.connection && a.push(c.connection);
return a
};
var mo = function(a) {
for (a = a.nextConnection; a;) {
var b = S(a);
if (!b) return a;
a = b.nextConnection
}
return null
},
ik = function(a) {
if (a.workspace && 0 == Yn) {
var b = no(a);
if (!b.isInFlyout) {
a = a.getConnections(!1);
for (var c = 0, e; e = a[c]; c++) {
e.targetConnection && gj(e) && ik(S(e));
for (var f = e.neighbours(48), g = 0, h; h = f[g]; g++) e.targetConnection && h.targetConnection || no(h.Blockly_Connection$sourceBlock) != b && (gj(e) ? $i(h, e) : $i(e, h))
}
}
}
},
Xi = function(a) {
return a.nextConnection && S(a.nextConnection)
},
Vi = function(a) {
for (var b = 0, c; c =
a.inputList[b]; b++)
if (c.connection && 3 == c.connection.type) return c.connection;
return null
},
no = function(a) {
var b = a;
do a = b, b = a.parentBlock; while (b);
return a
};
oi.prototype.getChildren = function() {
return this.childBlocks
};
oi.prototype.Blockly_Block_prototype$setParent = function(a) {
if (a != this.parentBlock) {
if (this.parentBlock) {
eb(this.parentBlock.childBlocks, this);
if (this.previousConnection && this.previousConnection.targetConnection) throw "Still connected to previous block.";
if (this.outputConnection && this.outputConnection.targetConnection) throw "Still connected to parent block.";
this.parentBlock = null
} else Zh(this.workspace, this);
(this.parentBlock = a) ? a.childBlocks.push(this): Yh(this.workspace, this)
}
};
oi.prototype.getDescendants = function(a) {
for (var b = [this], c, e = 0; c = this.childBlocks[e]; e++) a && c.isShadowBlock || b.push.apply(b, c.getDescendants(a));
return b
};
var oo = function(a) {
return a.deletable_ && !a.isShadowBlock && !(a.workspace && a.workspace.options.readOnly)
},
jj = function(a) {
return a.movable_ && !a.isShadowBlock && !(a.workspace && a.workspace.options.readOnly)
};
oi.prototype.setMovable = function(a) {
this.movable_ = a
};
oi.prototype.setShadow = function(a) {
this.isShadowBlock = a
};
oi.prototype.setInsertionMarker = function(a) {
this.isInsertionMarker_ != a && (this.isInsertionMarker_ = a) && (this.setColour(I.insertionMarker, void 0, void 0), this.opacity_ = I.insertionMarkerOpacity, this.rendered && po(this), Hi(this.svgGroup, "blocklyInsertionMarker"))
};
var Pi = function(a) {
return a.editable_ && !(a.workspace && a.workspace.options.readOnly)
};
oi.prototype.setEditable = function(a) {
this.editable_ = a;
a = 0;
for (var b; b = this.inputList[a]; a++)
for (var c = 0, e; e = b.fieldRow[c]; c++) e.updateEditable()
};
var qo = function(a, b) {
if (!b && a.Blockly_Block$collapsed) {
if (a.outputConnection && go(a.outputConnection, b), a.previousConnection && go(a.previousConnection, b), a.nextConnection) {
go(a.nextConnection, b);
var c = S(a.nextConnection);
c && qo(c, b)
}
} else
for (var e = a.getConnections(!0), f = 0; c = e[f]; f++) go(c, b), gj(c) && (c = S(c)) && qo(c, b)
},
qj = function(a, b) {
a.tooltip = b
},
ro = function(a) {
var b = Number(a);
if (isNaN(b)) {
if (u(a) && a.match(/^#[0-9a-fA-F]{6}$/)) return a;
throw "Invalid colour: " + a;
}
return Uk(Zk(b))
};
oi.prototype.setColour = function(a, b, c) {
this.colour_ = ro(a);
void 0 !== b ? a = ro(b) : (a = Xk(this.colour_), a = Uk($k(a, .1)));
this.colourSecondary_ = a;
void 0 !== c ? c = ro(c) : (c = Xk(this.colour_), c = Uk($k(c, .2)));
this.colourTertiary_ = c;
this.rendered && po(this)
};
var so = function(a, b) {
for (var c = 0, e; e = a.inputList[c]; c++)
for (var f = 0, g; g = e.fieldRow[f]; f++)
if (g.name === b) return g;
return null
},
ii = function(a) {
for (var b = [], c = 0, e; e = a.inputList[c]; c++)
for (var f = 0, g; g = e.fieldRow[f]; f++)(g instanceof Jn || g instanceof Ln) && b.push(g.getValue());
return b
},
hi = function(a, b, c) {
for (var e = 0, f; f = a.inputList[e]; e++)
for (var g = 0, h; h = f.fieldRow[g]; g++) {
var m;
if (m = h instanceof Jn || h instanceof Ln) m = h.getValue(), m = b.toLowerCase() == m.toLowerCase();
m && h.Blockly_Field_prototype$setValue(c)
}
},
ki = function(a, b) {
var c = so(a, b);
return c ? c.getValue() : null
};
oi.prototype.setPreviousStatement = function(a, b) {
a ? (void 0 === b && (b = null), this.previousConnection || (this.previousConnection = this.makeConnection(4)), nj(this.previousConnection, b)) : this.previousConnection && (this.previousConnection.dispose(), this.previousConnection = null)
};
oi.prototype.setNextStatement = function(a, b) {
a ? (void 0 === b && (b = null), this.nextConnection || (this.nextConnection = this.makeConnection(3)), nj(this.nextConnection, b)) : this.nextConnection && (this.nextConnection.dispose(), this.nextConnection = null)
};
oi.prototype.setOutput = function(a, b) {
a ? (void 0 === b && (b = null), this.outputConnection || (this.outputConnection = this.makeConnection(2)), nj(this.outputConnection, b)) : this.outputConnection && (this.outputConnection.dispose(), this.outputConnection = null)
};
oi.prototype.setInputsInline = function(a) {
this.inputsInline != a && (P(new Mi(this, "inline", null, this.inputsInline, a)), this.inputsInline = a)
};
var rj = function(a) {
if (void 0 != a.inputsInline) return a.inputsInline;
for (var b = 1; b < a.inputList.length; b++)
if (5 == a.inputList[b - 1].type && 5 == a.inputList[b].type) return !1;
for (b = 1; b < a.inputList.length; b++)
if (1 == a.inputList[b - 1].type && 5 == a.inputList[b].type) return !0;
return !1
};
oi.prototype.setDisabled = function(a) {
this.disabled != a && (P(new Mi(this, "disabled", null, this.disabled, a)), this.disabled = a)
};
oi.prototype.setCollapsed = function(a) {
this.Blockly_Block$collapsed != a && (P(new Mi(this, "collapsed", null, this.Blockly_Block$collapsed, a)), this.Blockly_Block$collapsed = a)
};
oi.prototype.toString = function(a, b) {
var c = [],
e = b || "?";
if (this.Blockly_Block$collapsed) c.push(to(this, "_TEMP_COLLAPSED_INPUT").fieldRow[0].text);
else
for (var f = 0, g; g = this.inputList[f]; f++) {
for (var h = 0, m; m = g.fieldRow[h]; h++) m instanceof vn && !m.getValue() ? c.push(e) : c.push(m.Blockly_Field_prototype$getText());
g.connection && ((g = S(g.connection)) ? c.push(g.toString(void 0, b)) : c.push(e))
}
c = wb(c.join(" ")) || "???";
a && c.length > a && (c = c.substring(0, a - 3) + "...");
return c
};
var io = function(a, b) {
if (void 0 !== b.colour) {
var c = b.colour,
e = u(c) ? vk(c) : c;
c = b.colourSecondary;
var f = u(c) ? vk(c) : c;
c = b.colourTertiary;
c = u(c) ? vk(c) : c;
a.setColour(e, f, c)
}
for (e = 0; void 0 !== b["message" + e];) {
f = a;
var g = b["args" + e] || [],
h = b["lastDummyAlign" + e],
m = uk(b["message" + e], !0),
n = 0;
c = [];
for (var p = 0; p < m.length; p++) {
var r = m[p];
"number" == typeof r ? (n++, c.push(g[r - 1])) : (r = r.trim()) && c.push(r)
}!c.length || "string" != typeof c[c.length - 1] && 0 != c[c.length - 1].type.lastIndexOf("field_", 0) || (p = {
type: "input_dummy"
}, h &&
(p.align = h), c.push(p));
h = [];
for (p = 0; p < c.length; p++)
if (m = c[p], "string" == typeof m) h.push([m, void 0]);
else {
g = r = null;
do
if (n = !1, "string" == typeof m) r = new ao(m);
else switch (m.type) {
case "input_value":
g = f.appendInput(1, m.name);
break;
case "input_statement":
g = f.appendInput(3, m.name);
break;
case "input_dummy":
g = f.appendInput(5, m.name || "");
break;
case "field_label":
r = m;
var t = vk(r.text);
r = new ao(String(t), r["class"]);
break;
case "field_input":
r = m;
t = vk(r.text);
t = new Dk(String(t), r["class"]);
"boolean" == typeof r.spellcheck &&
(t.spellcheck_ = r.spellcheck);
r = t;
break;
case "field_textdropdown":
r = new wn(m.text, m.options);
"boolean" == typeof m.spellcheck && (r.spellcheck_ = m.spellcheck);
break;
case "field_numberdropdown":
r = new xn(m.value, m.options, m.min, m.max, m.precision);
break;
case "field_angle":
r = new Nk(m.angle);
break;
case "field_checkbox":
r = new Pk(m.checked ? "TRUE" : "FALSE");
break;
case "field_colour":
r = new Fm(m.colour);
break;
case "field_variable":
r = vk(m.variable);
r = new Jn(String(r));
break;
case "field_dropdown":
r = new vn(m.options);
break;
case "field_iconmenu":
r = new uo(m.options);
break;
case "field_image":
var x = m;
r = vk(x.src);
t = Number(vk(x.width));
var fa = Number(vk(x.height)),
R = vk(x.alt);
x = vk(x.flip_rtl);
r = new Jm(String(r), t, fa, String(R), !!x);
break;
case "field_number":
r = new Lm(m.value, m.min, m.max, m.precision);
break;
case "field_variable_getter":
r = m;
t = vk(r.text);
r = new Ln(String(t), r.name);
break;
case "field_date":
if (vo) {
r = new vo(m.date);
break
}
default:
m.alt && (m = m.alt, n = !0)
}
while (n);
if (r) h.push([r, m.name]);
else if (g) {
if (m.check) {
if (!g.connection) throw "This input does not have a connection.";
nj(g.connection, m.check)
}
m.align && g.Blockly_Input$sourceBlock.rendered && g.Blockly_Input$sourceBlock.render();
for (m = 0; m < h.length; m++) eo(g, h[m][0], h[m][1]);
h.length = 0
}
} e++
}
void 0 !== b.inputsInline && a.setInputsInline(b.inputsInline);
void 0 !== b.output && a.setOutput(!0, b.output);
void 0 !== b.previousStatement && a.setPreviousStatement(!0, b.previousStatement);
void 0 !== b.nextStatement && a.setNextStatement(!0, b.nextStatement);
void 0 !== b.tooltip && (c = b.tooltip, e = vk(c), a.tooltip = String(e));
void 0 !== b.enableContextMenu &&
(c = b.enableContextMenu, a.Blockly_Block$contextMenu = !!c);
void 0 !== b.helpUrl && (c = b.helpUrl, e = vk(c), a.helpUrl = String(e));
u(b.extensions) && (console.warn("JSON attribute 'extensions' should be an array of strings. Found raw string in JSON for '" + b.type + "' block."), b.extensions = [b.extensions]);
if (Array.isArray(b.extensions))
for (f = b.extensions, e = 0; e < f.length; ++e) {
c = f[e];
p = a;
h = pj[c];
if (!Ba(h)) throw Error("r`" + c);
h.apply(p)
}
void 0 !== b.outputShape && (a.outputShape_ = b.outputShape);
void 0 !== b.checkboxInFlyout &&
(a.checkboxInFlyout_ = b.checkboxInFlyout);
void 0 !== b.category && (a.category_ = b.category)
};
oi.prototype.appendInput = function(a, b) {
var c = null;
if (1 == a || 3 == a) c = this.makeConnection(a);
c = new bo(a, b, this, c);
this.inputList.push(c);
return c
};
oi.prototype.removeInput = function(a) {
for (var b = 0, c; c = this.inputList[b]; b++)
if (c.name == a) {
c.connection && c.connection.targetConnection && (c.connection.shadowDom_ = null, a = S(c.connection), a.isShadowBlock ? a.dispose() : mj(a));
c.dispose();
this.inputList.splice(b, 1);
break
}
};
var to = function(a, b) {
for (var c = 0, e; e = a.inputList[c]; c++)
if (e.name == b) return e;
return null
};
d = oi.prototype;
d.getCommentText = function() {
return this.comment || ""
};
d.setCommentText = function(a) {
this.comment != a && (P(new Mi(this, "comment", null, this.comment, a || "")), this.comment = a)
};
d.setWarningText = function() {};
d.getRelativeToSurfaceXY = function() {
return this.xy_
};
d.moveBy = function(a, b) {
var c = new aj(this);
this.xy_.translate(a, b);
cj(c);
P(c)
};
d.makeConnection = function(a) {
return new Ui(this, a)
};
var oj = function(a) {
var b = a.type ? '"' + a.type + '" block' : "Block";
a.id && (b += ' (id="' + a.id + '")');
return b
};
oi.prototype.getProcedureDef = function() {
return []
};
oi.prototype.mutationToDom = function() {
return null
};
oi.prototype.domToMutation = function() {};
var wo = function(a) {
this.Blockly_BlockDragSurfaceSvg_prototype$container_ = a;
this.createDom()
};
d = wo.prototype;
d.Blockly_BlockDragSurfaceSvg_prototype$SVG_ = null;
d.Blockly_BlockDragSurfaceSvg_prototype$dragGroup_ = null;
d.Blockly_BlockDragSurfaceSvg_prototype$container_ = null;
d.Blockly_BlockDragSurfaceSvg_prototype$scale_ = 1;
d.createDom = function() {
this.Blockly_BlockDragSurfaceSvg_prototype$SVG_ || (this.Blockly_BlockDragSurfaceSvg_prototype$SVG_ = O("svg", {
xmlns: "http://www.w3.org/2000/svg",
"xmlns:html": "http://www.w3.org/1999/xhtml",
"xmlns:xlink": "http://www.w3.org/1999/xlink",
version: "1.1",
"class": "blocklyBlockDragSurface"
}, this.Blockly_BlockDragSurfaceSvg_prototype$container_), this.Blockly_BlockDragSurfaceSvg_prototype$dragGroup_ = O("g", {}, this.Blockly_BlockDragSurfaceSvg_prototype$SVG_))
};
d.translateSurface = function(a, b) {
a *= this.Blockly_BlockDragSurfaceSvg_prototype$scale_;
b *= this.Blockly_BlockDragSurfaceSvg_prototype$scale_;
a = Number(a.toFixed(0));
b = Number(b.toFixed(0));
this.Blockly_BlockDragSurfaceSvg_prototype$SVG_.style.display = "block";
Ck(this.Blockly_BlockDragSurfaceSvg_prototype$SVG_, "translate3d(" + a + "px, " + b + "px, 0px)")
};
d.getSurfaceTranslation = function() {
var a = nk(this.Blockly_BlockDragSurfaceSvg_prototype$SVG_);
return new A(a.x / this.Blockly_BlockDragSurfaceSvg_prototype$scale_, a.y / this.Blockly_BlockDragSurfaceSvg_prototype$scale_)
};
d.clearAndHide = function(a) {
a.appendChild(this.Blockly_BlockDragSurfaceSvg_prototype$dragGroup_.firstChild);
this.Blockly_BlockDragSurfaceSvg_prototype$SVG_.style.display = "none";
document.getElementsByClassName("injectionDiv")[0].style.overflow = "hidden"
};
var xo = {
ERAS: ["BC", "AD"],
ERANAMES: ["Before Christ", "Anno Domini"],
NARROWMONTHS: "JFMAMJJASOND".split(""),
STANDALONENARROWMONTHS: "JFMAMJJASOND".split(""),
MONTHS: "January February March April May June July August September October November December".split(" "),
STANDALONEMONTHS: "January February March April May June July August September October November December".split(" "),
SHORTMONTHS: "Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),
STANDALONESHORTMONTHS: "Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),
WEEKDAYS: "Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),
STANDALONEWEEKDAYS: "Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),
SHORTWEEKDAYS: "Sun Mon Tue Wed Thu Fri Sat".split(" "),
STANDALONESHORTWEEKDAYS: "Sun Mon Tue Wed Thu Fri Sat".split(" "),
NARROWWEEKDAYS: "SMTWTFS".split(""),
STANDALONENARROWWEEKDAYS: "SMTWTFS".split(""),
SHORTQUARTERS: ["Q1", "Q2", "Q3", "Q4"],
QUARTERS: ["1st quarter", "2nd quarter", "3rd quarter", "4th quarter"],
AMPMS: ["AM", "PM"],
DATEFORMATS: ["EEEE, MMMM d, y",
"MMMM d, y", "MMM d, y", "M/d/yy"
],
TIMEFORMATS: ["h:mm:ss a zzzz", "h:mm:ss a z", "h:mm:ss a", "h:mm a"],
DATETIMEFORMATS: ["{1} 'at' {0}", "{1} 'at' {0}", "{1}, {0}", "{1}, {0}"],
FIRSTDAYOFWEEK: 6,
WEEKENDRANGE: [5, 6],
FIRSTWEEKCUTOFFDAY: 5
},
yo = xo;
yo = xo;
var zo = /^(\d{4})(?:(?:-?(\d{2})(?:-?(\d{2}))?)|(?:-?(\d{3}))|(?:-?W(\d{2})(?:-?([1-7]))?))?$/,
Ao = /^(\d{2})(?::?(\d{2})(?::?(\d{2})(\.\d+)?)?)?$/,
Bo = /Z|(?:([-+])(\d{2})(?::?(\d{2}))?)$/,
Co = function(a, b) {
switch (b) {
case 1:
return 0 != a % 4 || 0 == a % 100 && 0 != a % 400 ? 28 : 29;
case 5:
case 8:
case 10:
case 3:
return 30
}
return 31
},
Do = function(a, b, c) {
u(a) ? (this.years = "y" == a ? b : 0, this.months = "m" == a ? b : 0, this.days = "d" == a ? b : 0, this.hours = "h" == a ? b : 0, this.minutes = "n" == a ? b : 0, this.seconds = "s" == a ? b : 0) : (this.years = a || 0, this.months = b ||
0, this.days = c || 0, this.seconds = this.minutes = this.hours = 0)
};
Do.prototype.toIsoString = function(a) {
var b = Math.min(this.years, this.months, this.days, this.hours, this.minutes, this.seconds),
c = Math.max(this.years, this.months, this.days, this.hours, this.minutes, this.seconds);
if (0 > b && 0 < c) return null;
if (!a && 0 == b && 0 == c) return "PT0S";
c = [];
0 > b && c.push("-");
c.push("P");
(this.years || a) && c.push(Math.abs(this.years) + "Y");
(this.months || a) && c.push(Math.abs(this.months) + "M");
(this.days || a) && c.push(Math.abs(this.days) + "D");
if (this.hours || this.minutes || this.seconds || a) c.push("T"),
(this.hours || a) && c.push(Math.abs(this.hours) + "H"), (this.minutes || a) && c.push(Math.abs(this.minutes) + "M"), (this.seconds || a) && c.push(Math.abs(this.seconds) + "S");
return c.join("")
};
Do.prototype.equals = function(a) {
return a.years == this.years && a.months == this.months && a.days == this.days && a.hours == this.hours && a.minutes == this.minutes && a.seconds == this.seconds
};
Do.prototype.add = function(a) {
this.years += a.years;
this.months += a.months;
this.days += a.days;
this.hours += a.hours;
this.minutes += a.minutes;
this.seconds += a.seconds
};
var Go = function(a, b, c) {
v(a) ? (this.date = Eo(a, b || 0, c || 1), Fo(this, c || 1)) : Ca(a) ? (this.date = Eo(a.getFullYear(), a.getMonth(), a.getDate()), Fo(this, a.getDate())) : (this.date = new Date(La()), a = this.date.getDate(), this.date.setHours(0), this.date.setMinutes(0), this.date.setSeconds(0), this.date.setMilliseconds(0), Fo(this, a))
},
Eo = function(a, b, c) {
b = new Date(a, b, c);
0 <= a && 100 > a && b.setFullYear(b.getFullYear() - 1900);
return b
};
d = Go.prototype;
d.firstDayOfWeek_ = yo.FIRSTDAYOFWEEK;
d.firstWeekCutOffDay_ = yo.FIRSTWEEKCUTOFFDAY;
d.goog_date_Date_prototype$clone = function() {
var a = new Go(this.date);
a.firstDayOfWeek_ = this.firstDayOfWeek_;
a.firstWeekCutOffDay_ = this.firstWeekCutOffDay_;
return a
};
d.getFullYear = function() {
return this.date.getFullYear()
};
d.getMonth = function() {
return this.date.getMonth()
};
d.getDate = function() {
return this.date.getDate()
};
d.getTime = function() {
return this.date.getTime()
};
d.getDay = function() {
return this.date.getDay()
};
d.getUTCFullYear = function() {
return this.date.getUTCFullYear()
};
d.getUTCMonth = function() {
return this.date.getUTCMonth()
};
d.getUTCDate = function() {
return this.date.getUTCDate()
};
d.getUTCHours = function() {
return this.date.getUTCHours()
};
d.getUTCMinutes = function() {
return this.date.getUTCMinutes()
};
d.getTimezoneOffset = function() {
return this.date.getTimezoneOffset()
};
d.set = function(a) {
this.date = new Date(a.getFullYear(), a.getMonth(), a.getDate())
};
var Ho = function(a, b) {
a.date.setDate(b)
};
Go.prototype.add = function(a) {
if (a.years || a.months) {
var b = this.getMonth() + a.months + 12 * a.years,
c = this.getFullYear() + Math.floor(b / 12);
b %= 12;
0 > b && (b += 12);
var e = Math.min(Co(c, b), this.getDate());
Ho(this, 1);
this.date.setFullYear(c);
this.date.setMonth(b);
Ho(this, e)
}
a.days && (a = new Date((new Date(this.getFullYear(), this.getMonth(), this.getDate(), 12)).getTime() + 864E5 * a.days), Ho(this, 1), this.date.setFullYear(a.getFullYear()), this.date.setMonth(a.getMonth()), Ho(this, a.getDate()), Fo(this, a.getDate()))
};
Go.prototype.toIsoString = function(a) {
return [this.getFullYear(), Ib(this.getMonth() + 1, 2), Ib(this.getDate(), 2)].join(a ? "-" : "") + ""
};
Go.prototype.equals = function(a) {
return !(!a || this.getFullYear() != a.getFullYear() || this.getMonth() != a.getMonth() || this.getDate() != a.getDate())
};
Go.prototype.toString = function() {
return this.toIsoString()
};
var Fo = function(a, b) {
a.getDate() != b && a.date.setUTCHours(a.date.getUTCHours() + (a.getDate() < b ? 1 : -1))
};
Go.prototype.valueOf = function() {
return this.date.valueOf()
};
var Io = function(a, b, c, e, f, g, h) {
this.date = v(a) ? new Date(a, b || 0, c || 1, e || 0, f || 0, g || 0, h || 0) : new Date(a && a.getTime ? a.getTime() : La())
};
w(Io, Go);
d = Io.prototype;
d.getHours = function() {
return this.date.getHours()
};
d.getMinutes = function() {
return this.date.getMinutes()
};
d.getSeconds = function() {
return this.date.getSeconds()
};
d.getUTCHours = function() {
return this.date.getUTCHours()
};
d.getUTCMinutes = function() {
return this.date.getUTCMinutes()
};
d.add = function(a) {
Go.prototype.add.call(this, a);
a.hours && this.date.setUTCHours(this.date.getUTCHours() + a.hours);
a.minutes && this.date.setUTCMinutes(this.date.getUTCMinutes() + a.minutes);
a.seconds && this.date.setUTCSeconds(this.date.getUTCSeconds() + a.seconds)
};
d.toIsoString = function(a) {
var b = Go.prototype.toIsoString.call(this, a);
return a ? b + " " + Ib(this.getHours(), 2) + ":" + Ib(this.getMinutes(), 2) + ":" + Ib(this.getSeconds(), 2) + "" : b + "T" + Ib(this.getHours(), 2) + Ib(this.getMinutes(), 2) + Ib(this.getSeconds(), 2) + ""
};
d.equals = function(a) {
return this.getTime() == a.getTime()
};
d.toString = function() {
return this.toIsoString()
};
d.goog_date_Date_prototype$clone = function() {
var a = new Io(this.date);
a.firstDayOfWeek_ = this.firstDayOfWeek_;
a.firstWeekCutOffDay_ = this.firstWeekCutOffDay_;
return a
};
var Jo = function(a) {
var b = new Io(2E3);
a = wb(a);
a = a.split(-1 == a.indexOf("T") ? " " : "T");
var c = a[0].match(zo);
if (c) {
var e = Number(c[2]),
f = Number(c[3]),
g = Number(c[4]);
var h = Number(c[5]);
var m = Number(c[6]) || 1;
b.date.setFullYear(Number(c[1]));
g ? (Ho(b, 1), b.date.setMonth(0), b.add(new Do("d", g - 1))) : h ? (b.date.setMonth(0), Ho(b, 1), c = b.getDay() || 7, b.add(new Do("d", (4 >= c ? 1 - c : 8 - c) + (Number(m) + 7 * (Number(h) - 1)) - 1))) : (e && (Ho(b, 1), b.date.setMonth(e - 1)), f && Ho(b, f));
h = !0
} else h = !1;
h && !(h = 2 > a.length) && (a = a[1], h = a.match(Bo),
m = 0, h && ("Z" != h[0] && (m = 60 * Number(h[2]) + Number(h[3]), m *= "-" == h[1] ? 1 : -1), m -= b.getTimezoneOffset(), a = a.substr(0, a.length - h[0].length)), (h = a.match(Ao)) ? (b.date.setHours(Number(h[1])), b.date.setMinutes(Number(h[2]) || 0), b.date.setSeconds(Number(h[3]) || 0), b.date.setMilliseconds(h[4] ? 1E3 * Number(h[4]) : 0), 0 != m && b.date.setTime(b.getTime() + 6E4 * m), h = !0) : h = !1);
return h ? b : null
};
var Mo = function() {
var a = Ko;
this.startDate_ = Lo;
this.goog_date_DateRange$endDate_ = a
},
Lo = new Go(0, 0, 1),
Ko = new Go(9999, 11, 31);
Mo.prototype.contains = function(a) {
return a.valueOf() >= this.startDate_.valueOf() && a.valueOf() <= this.goog_date_DateRange$endDate_.valueOf()
};
Mo.prototype.iterator = function() {
return new No(this)
};
var No = function(a) {
this.nextDate_ = a.startDate_.goog_date_Date_prototype$clone();
this.goog_date_DateRange_Iterator$endDate_ = Number(a.goog_date_DateRange$endDate_.toIsoString())
};
w(No, Pb);
No.prototype.next = function() {
if (Number(this.nextDate_.toIsoString()) > this.goog_date_DateRange_Iterator$endDate_) throw Ob;
var a = this.nextDate_.goog_date_Date_prototype$clone();
this.nextDate_.add(new Do("d", 1));
return a
};
var Oo = function() {},
Qo = function(a) {
if ("number" == typeof a) {
var b = new Oo;
b.standardOffset_ = a;
var c = a;
if (0 == c) c = "Etc/GMT";
else {
var e = ["Etc/GMT", 0 > c ? "-" : "+"];
c = Math.abs(c);
e.push(Math.floor(c / 60) % 100);
c %= 60;
0 != c && e.push(":", Ib(c, 2));
c = e.join("")
}
b.timeZoneId_ = c;
c = a;
0 == c ? c = "UTC" : (e = ["UTC", 0 > c ? "+" : "-"], c = Math.abs(c), e.push(Math.floor(c / 60) % 100), c %= 60, 0 != c && e.push(":", c), c = e.join(""));
a = Po(a);
b.tzNames_ = [c, c];
b.tzNamesExt_ = {
STD_LONG_NAME_GMT: a,
STD_GENERIC_LOCATION: a
};
b.transitions_ = [];
return b
}
b = new Oo;
b.timeZoneId_ = a.id;
b.standardOffset_ = -a.std_offset;
b.tzNames_ = a.names;
b.tzNamesExt_ = a.names_ext;
b.transitions_ = a.transitions;
return b
},
Po = function(a) {
var b = ["GMT"];
b.push(0 >= a ? "+" : "-");
a = Math.abs(a);
b.push(Ib(Math.floor(a / 60) % 100, 2), ":", Ib(a % 60, 2));
return b.join("")
},
Ro = function(a, b) {
for (var c = Date.UTC(b.getUTCFullYear(), b.getUTCMonth(), b.getUTCDate(), b.getUTCHours(), b.getUTCMinutes()) / 36E5, e = 0; e < a.transitions_.length && c >= a.transitions_[e];) e += 2;
return 0 == e ? 0 : a.transitions_[e - 1]
};
var Uo = function(a, b) {
this.patternParts_ = [];
this.dateTimeSymbols_ = b || yo;
"number" == typeof a ? So(this, a) : To(this, a)
},
Vo = [/^'(?:[^']|'')*('|$)/, /^(?:G+|y+|M+|k+|S+|E+|a+|h+|K+|H+|c+|L+|Q+|d+|m+|s+|v+|V+|w+|z+|Z+)/, /^[^'GyMkSEahKHcLQdmsvVwzZ]+/],
Wo = function(a) {
return a.getHours ? a.getHours() : 0
},
To = function(a, b) {
for (Xo && (b = b.replace(/\u200f/g, "")); b;) {
for (var c = b, e = 0; e < Vo.length; ++e) {
var f = b.match(Vo[e]);
if (f) {
var g = f[0];
b = b.substring(g.length);
0 == e && ("''" == g ? g = "'" : (g = g.substring(1, "'" == f[1] ? g.length - 1 : g.length),
g = g.replace(/''/g, "'")));
a.patternParts_.push({
text: g,
type: e
});
break
}
}
if (c === b) throw Error("M`" + b);
}
},
Zo = function(a, b) {
if (!b) throw Error("N");
for (var c = [], e = 0; e < a.patternParts_.length; ++e) {
var f = a.patternParts_[e].text;
1 == a.patternParts_[e].type ? c.push(Yo(a, f, b, b, b)) : c.push(f)
}
return c.join("")
},
So = function(a, b) {
if (4 > b) var c = a.dateTimeSymbols_.DATEFORMATS[b];
else if (8 > b) c = a.dateTimeSymbols_.TIMEFORMATS[b - 4];
else if (12 > b) c = a.dateTimeSymbols_.DATETIMEFORMATS[b - 8], c = c.replace("{1}", a.dateTimeSymbols_.DATEFORMATS[b -
8]), c = c.replace("{0}", a.dateTimeSymbols_.TIMEFORMATS[b - 8]);
else {
So(a, 10);
return
}
To(a, c)
},
$o = function(a, b) {
var c = String(b);
var e = a.dateTimeSymbols_ || yo;
if (void 0 !== e.ZERODIGIT) {
for (var f = [], g = 0; g < c.length; g++) {
var h = c.charCodeAt(g);
f.push(48 <= h && 57 >= h ? String.fromCharCode(e.ZERODIGIT + h - 48) : c.charAt(g))
}
c = f.join("")
}
return c
},
Xo = !1,
ap = function(a) {
if (!(a.getHours && a.getSeconds && a.getMinutes)) throw Error("O");
},
Yo = function(a, b, c, e, f) {
var g = b.length;
switch (b.charAt(0)) {
case "G":
return c = 0 < e.getFullYear() ?
1 : 0, 4 <= g ? a.dateTimeSymbols_.ERANAMES[c] : a.dateTimeSymbols_.ERAS[c];
case "y":
return c = e.getFullYear(), 0 > c && (c = -c), 2 == g && (c %= 100), $o(a, Ib(c, g));
case "M":
a: switch (c = e.getMonth(), g) {
case 5:
g = a.dateTimeSymbols_.NARROWMONTHS[c];
break a;
case 4:
g = a.dateTimeSymbols_.MONTHS[c];
break a;
case 3:
g = a.dateTimeSymbols_.SHORTMONTHS[c];
break a;
default:
g = $o(a, Ib(c + 1, g))
}
return g;
case "k":
return ap(f), $o(a, Ib(Wo(f) || 24, g));
case "S":
return $o(a, (f.getTime() % 1E3 / 1E3).toFixed(Math.min(3, g)).substr(2) + (3 < g ? Ib(0, g - 3) : ""));
case "E":
return c = e.getDay(), 4 <= g ? a.dateTimeSymbols_.WEEKDAYS[c] : a.dateTimeSymbols_.SHORTWEEKDAYS[c];
case "a":
return ap(f), g = Wo(f), a.dateTimeSymbols_.AMPMS[12 <= g && 24 > g ? 1 : 0];
case "h":
return ap(f), $o(a, Ib(Wo(f) % 12 || 12, g));
case "K":
return ap(f), $o(a, Ib(Wo(f) % 12, g));
case "H":
return ap(f), $o(a, Ib(Wo(f), g));
case "c":
a: switch (c = e.getDay(), g) {
case 5:
g = a.dateTimeSymbols_.STANDALONENARROWWEEKDAYS[c];
break a;
case 4:
g = a.dateTimeSymbols_.STANDALONEWEEKDAYS[c];
break a;
case 3:
g = a.dateTimeSymbols_.STANDALONESHORTWEEKDAYS[c];
break a;
default:
g = $o(a, Ib(c, 1))
}
return g;
case "L":
a: switch (c = e.getMonth(), g) {
case 5:
g = a.dateTimeSymbols_.STANDALONENARROWMONTHS[c];
break a;
case 4:
g = a.dateTimeSymbols_.STANDALONEMONTHS[c];
break a;
case 3:
g = a.dateTimeSymbols_.STANDALONESHORTMONTHS[c];
break a;
default:
g = $o(a, Ib(c + 1, g))
}
return g;
case "Q":
return c = Math.floor(e.getMonth() / 3), 4 > g ? a.dateTimeSymbols_.SHORTQUARTERS[c] : a.dateTimeSymbols_.QUARTERS[c];
case "d":
return $o(a, Ib(e.getDate(), g));
case "m":
return ap(f), $o(a, Ib(f.getMinutes(), g));
case "s":
return ap(f),
$o(a, Ib(f.getSeconds(), g));
case "v":
return g = Qo(c.getTimezoneOffset()), g.timeZoneId_;
case "V":
return a = Qo(c.getTimezoneOffset()), 2 >= g ? a.timeZoneId_ : 0 < Ro(a, c) ? va(a.tzNamesExt_.DST_GENERIC_LOCATION) ? a.tzNamesExt_.DST_GENERIC_LOCATION : a.tzNamesExt_.DST_GENERIC_LOCATION : va(a.tzNamesExt_.STD_GENERIC_LOCATION) ? a.tzNamesExt_.STD_GENERIC_LOCATION : a.tzNamesExt_.STD_GENERIC_LOCATION;
case "w":
return c = a.dateTimeSymbols_.FIRSTWEEKCUTOFFDAY, f = new Date(f.getFullYear(), f.getMonth(), f.getDate()), b = a.dateTimeSymbols_.FIRSTDAYOFWEEK ||
0, c = f.valueOf() + 864E5 * (((va(c) ? c : 3) - b + 7) % 7 - ((f.getDay() + 6) % 7 - b + 7) % 7), $o(a, Ib(Math.floor(Math.round((c - (new Date((new Date(c)).getFullYear(), 0, 1)).valueOf()) / 864E5) / 7) + 1, g));
case "z":
return a = Qo(c.getTimezoneOffset()), 4 > g ? a.tzNames_[0 < Ro(a, c) ? 2 : 0] : a.tzNames_[0 < Ro(a, c) ? 3 : 1];
case "Z":
return f = Qo(c.getTimezoneOffset()), 4 > g ? (g = -(f.standardOffset_ - Ro(f, c)), a = [0 > g ? "-" : "+"], g = Math.abs(g), a.push(Ib(Math.floor(g / 60) % 100, 2), Ib(g % 60, 2)), g = a.join("")) : g = $o(a, Po(f.standardOffset_ - Ro(f, c))), g;
default:
return ""
}
};
var bp = {
YEAR_FULL: "y",
YEAR_FULL_WITH_ERA: "y G",
YEAR_MONTH_ABBR: "MMM y",
YEAR_MONTH_FULL: "MMMM y",
MONTH_DAY_ABBR: "MMM d",
MONTH_DAY_FULL: "MMMM dd",
MONTH_DAY_SHORT: "M/d",
MONTH_DAY_MEDIUM: "MMMM d",
MONTH_DAY_YEAR_MEDIUM: "MMM d, y",
WEEKDAY_MONTH_DAY_MEDIUM: "EEE, MMM d",
WEEKDAY_MONTH_DAY_YEAR_MEDIUM: "EEE, MMM d, y",
DAY_ABBR: "d"
},
cp = bp;
cp = bp;
var dp = function(a) {
this.baseCssClass_ = W();
this.goog_ui_DefaultDatePickerRenderer$dom_ = a || cg()
},
ep = function(a, b, c, e) {
var f = [a.baseCssClass_ + "-btn"];
e && f.push(e);
e = zg(a.goog_ui_DefaultDatePickerRenderer$dom_, "BUTTON");
e.className = f.join(" ");
e.appendChild(a.goog_ui_DefaultDatePickerRenderer$dom_.document_.createTextNode(String(c)));
b.appendChild(e)
};
var fp = function(a, b, c, e) {
cl.call(this, c);
this.symbols_ = b || yo;
this.wdayNames_ = this.symbols_.STANDALONESHORTWEEKDAYS;
this.i18nDateFormatterDay_ = new Uo("d", this.symbols_);
new Uo("dd", this.symbols_);
this.i18nDateFormatterWeek_ = new Uo("w", this.symbols_);
this.i18nDateFormatterDayAriaLabel_ = new Uo("d MMM", this.symbols_);
this.i18nDateFormatterYear_ = new Uo(cp.YEAR_FULL || "y", this.symbols_);
this.i18nDateFormatterMonthYear_ = new Uo(cp.YEAR_MONTH_FULL || "MMMM y", this.symbols_);
this.goog_ui_DatePicker$renderer_ =
e || new dp(this.goog_ui_Component$dom_);
this.date_ = new Go(a);
this.date_.firstWeekCutOffDay_ = this.symbols_.FIRSTWEEKCUTOFFDAY;
this.date_.firstDayOfWeek_ = this.symbols_.FIRSTDAYOFWEEK;
this.activeMonth_ = this.date_.goog_date_Date_prototype$clone();
Ho(this.activeMonth_, 1);
this.wdayStyles_ = " ".split(" ");
this.wdayStyles_[this.symbols_.WEEKENDRANGE[0]] = W() + "-wkend-start";
this.wdayStyles_[this.symbols_.WEEKENDRANGE[1]] = W() + "-wkend-end";
this.keyHandlers_ = {};
this.grid_ = []
};
w(fp, cl);
d = fp.prototype;
d.userSelectableDateRange_ = new Mo;
d.showWeekNum_ = !0;
d.allowNone_ = !0;
d.elNavRow_ = null;
d.elMonthYear_ = null;
d.elFootRow_ = null;
d.cellIdGenerator_ = al.getInstance();
var W = function() {
return "goog-date-picker"
},
jp = function(a) {
a.showWeekNum_ = !1;
gp(a);
hp(a);
ip(a)
},
lp = function(a) {
a.allowNone_ = !1;
a.elNone_ && kp(a)
},
kp = function(a) {
Ej(a.elToday_, !0);
Ej(a.elNone_, a.allowNone_);
Ej(a.tableFoot_, !0)
};
d = fp.prototype;
d.previousMonth = function() {
this.activeMonth_.add(new Do("m", -1));
ip(this);
mp(this)
};
d.nextMonth = function() {
this.activeMonth_.add(new Do("m", 1));
ip(this);
mp(this)
};
d.previousYear = function() {
this.activeMonth_.add(new Do("y", -1));
ip(this);
mp(this)
};
d.nextYear = function() {
this.activeMonth_.add(new Do("y", 1));
ip(this);
mp(this)
};
d.selectToday = function() {
np(this, new Go)
};
d.selectNone = function() {
this.allowNone_ && np(this, null)
};
var np = function(a, b) {
op(a, b, !0)
},
op = function(a, b, c) {
var e = b == a.date_ || b && a.date_ && b.getFullYear() == a.date_.getFullYear() && b.getMonth() == a.date_.getMonth(),
f = b == a.date_ || e && b.getDate() == a.date_.getDate();
a.date_ = b && new Go(b);
b && (a.activeMonth_.set(a.date_), a.activeMonth_.date.setFullYear(a.date_.getFullYear()), Ho(a.activeMonth_, 1));
ip(a);
c && ne(a, new pp("select", a, a.date_));
f || ne(a, new pp("change", a, a.date_));
e || mp(a)
},
gp = function(a) {
if (a.elNavRow_) {
for (var b = a.elNavRow_; b.firstChild;) b.removeChild(b.firstChild);
var c = a.goog_ui_DatePicker$renderer_,
e = a.symbols_.DATEFORMATS[0].toLowerCase();
var f = zg(c.goog_ui_DefaultDatePickerRenderer$dom_, "TD");
f.colSpan = 5;
ep(c, f, "\u00ab", c.baseCssClass_ + "-previousMonth");
ep(c, f, "", c.baseCssClass_ + "-month");
ep(c, f, "\u00bb", c.baseCssClass_ + "-nextMonth");
var g = zg(c.goog_ui_DefaultDatePickerRenderer$dom_, "TD");
g.colSpan = 3;
ep(c, g, "\u00ab", c.baseCssClass_ + "-previousYear");
ep(c, g, "", c.baseCssClass_ + "-year");
ep(c, g, "\u00bb", c.baseCssClass_ + "-nextYear");
e.indexOf("y") < e.indexOf("m") ?
(b.appendChild(g), b.appendChild(f)) : (b.appendChild(f), b.appendChild(g));
qp(a, b, W() + "-previousMonth", a.previousMonth);
qp(a, b, W() + "-nextMonth", a.nextMonth);
qp(a, b, W() + "-month", a.showMonthMenu_);
qp(a, b, W() + "-previousYear", a.previousYear);
qp(a, b, W() + "-nextYear", a.nextYear);
qp(a, b, W() + "-year", a.showYearMenu_);
a.elMonth_ = eg(W() + "-month", b);
c = cg();
a.elYear_ = eg(W() + "-year", b || c.document_)
}
},
qp = function(a, b, c, e) {
b = eg(c, b);
fl(a).listen(b, "click", function(a) {
a.preventDefault();
e.call(this, a)
})
},
hp = function(a) {
if (a.elFootRow_) {
var b =
a.elFootRow_;
ng(b);
var c = a.goog_ui_DatePicker$renderer_,
e = a.showWeekNum_,
f = zg(c.goog_ui_DefaultDatePickerRenderer$dom_, "TD");
f.colSpan = e ? 2 : 3;
f.className = c.baseCssClass_ + "-today-cont";
ep(c, f, "Today", c.baseCssClass_ + "-today-btn");
b.appendChild(f);
f = zg(c.goog_ui_DefaultDatePickerRenderer$dom_, "TD");
f.colSpan = e ? 4 : 3;
b.appendChild(f);
f = zg(c.goog_ui_DefaultDatePickerRenderer$dom_, "TD");
f.colSpan = 2;
f.className = c.baseCssClass_ + "-none-cont";
ep(c, f, "None", c.baseCssClass_ + "-none-btn");
b.appendChild(f);
qp(a, b,
W() + "-today-btn", a.selectToday);
qp(a, b, W() + "-none-btn", a.selectNone);
a.elToday_ = eg(W() + "-today-btn", b);
a.elNone_ = eg(W() + "-none-btn", b);
kp(a)
}
};
d = fp.prototype;
d.decorateInternal = function(a) {
fp.superClass_.decorateInternal.call(this, a);
mb(a, W());
var b = this.goog_ui_Component$dom_.createDom("TABLE", {
role: "presentation"
}),
c = this.goog_ui_Component$dom_.createDom("THEAD"),
e = this.goog_ui_Component$dom_.createDom("TBODY", {
role: "grid"
}),
f = this.goog_ui_Component$dom_.createDom("TFOOT");
e.tabIndex = 0;
this.tableBody_ = e;
this.tableFoot_ = f;
var g = this.goog_ui_Component$dom_.createDom("TR", {
role: "row"
});
g.className = W() + "-head";
this.elNavRow_ = g;
gp(this);
c.appendChild(g);
this.elTable_ = [];
for (var h = 0; 7 > h; h++) {
g = zg(this.goog_ui_Component$dom_, "TR");
this.elTable_[h] = [];
for (var m = 0; 8 > m; m++) {
var n = zg(this.goog_ui_Component$dom_, 0 == m || 0 == h ? "th" : "td");
0 != m && 0 != h || m == h ? 0 !== h && 0 !== m && (xl(n, "gridcell"), n.setAttribute("tabindex", "-1")) : (n.className = 0 == m ? W() + "-week" : W() + "-wday", xl(n, 0 == m ? "rowheader" : "columnheader"));
g.appendChild(n);
this.elTable_[h][m] = n
}
e.appendChild(g)
}
g = zg(this.goog_ui_Component$dom_, "TR");
g.className = W() + "-foot";
this.elFootRow_ = g;
hp(this);
f.appendChild(g);
b.cellSpacing = "0";
b.cellPadding = "0";
b.appendChild(c);
b.appendChild(e);
b.appendChild(f);
a.appendChild(b);
if (this.getElement()) {
for (b = 0; 7 > b; b++) qg(this.elTable_[0][b + 1], this.wdayNames_[((b + this.activeMonth_.firstDayOfWeek_ + 7) % 7 + 1) % 7]);
Ej(this.elTable_[0][0].parentElement || this.elTable_[0][0].parentNode, !0)
}
ip(this);
a.tabIndex = 0
};
d.createDom = function() {
fp.superClass_.createDom.call(this);
this.decorateInternal(this.getElement())
};
d.enterDocument = function() {
fp.superClass_.enterDocument.call(this);
var a = fl(this);
a.listen(this.tableBody_, "click", this.handleGridClick_);
a.listen(rp(this, this.getElement()), "key", this.handleGridKeyPress_)
};
d.exitDocument = function() {
fp.superClass_.exitDocument.call(this);
this.destroyMenu_();
for (var a in this.keyHandlers_) this.keyHandlers_[a].dispose();
this.keyHandlers_ = {}
};
d.create = fp.prototype.goog_ui_Component_prototype$decorate;
d.disposeInternal = function() {
fp.superClass_.disposeInternal.call(this);
this.elNone_ = this.elToday_ = this.elYear_ = this.elMonthYear_ = this.elMonth_ = this.elFootRow_ = this.elNavRow_ = this.tableFoot_ = this.tableBody_ = this.elTable_ = null
};
d.handleGridClick_ = function(a) {
if ("TD" == a.target.tagName) {
var b, c = -2,
e = -2;
for (b = a.target; b; b = b.previousSibling, c++);
for (b = a.target.parentNode; b; b = b.previousSibling, e++);
a = this.grid_[e][c];
this.userSelectableDateRange_.contains(a) && np(this, a.goog_date_Date_prototype$clone())
}
};
d.handleGridKeyPress_ = function(a) {
switch (a.goog_events_BrowserEvent$keyCode) {
case 33:
a.preventDefault();
var b = -1;
break;
case 34:
a.preventDefault();
b = 1;
break;
case 37:
a.preventDefault();
var c = -1;
break;
case 39:
a.preventDefault();
c = 1;
break;
case 38:
a.preventDefault();
c = -7;
break;
case 40:
a.preventDefault();
c = 7;
break;
case 36:
a.preventDefault(), this.selectToday();
case 46:
a.preventDefault();
this.selectNone();
break;
case 13:
case 32:
a.preventDefault(), op(this, this.date_, !0);
default:
return
}
this.date_ ? (a = this.date_.goog_date_Date_prototype$clone(),
a.add(new Do(0, b, c))) : (a = this.activeMonth_.goog_date_Date_prototype$clone(), Ho(a, 1));
this.userSelectableDateRange_.contains(a) && (op(this, a, !1), this.selectedCell_.focus())
};
d.showMonthMenu_ = function(a) {
a.stopPropagation();
a = [];
for (var b = 0; 12 > b; b++) a.push(this.symbols_.STANDALONEMONTHS[b]);
sp(this, this.elMonth_, a, this.handleMonthMenuClick_, this.symbols_.STANDALONEMONTHS[this.activeMonth_.getMonth()])
};
d.showYearMenu_ = function(a) {
a.stopPropagation();
a = [];
for (var b = this.activeMonth_.getFullYear(), c = this.activeMonth_.goog_date_Date_prototype$clone(), e = -5; 5 >= e; e++) c.date.setFullYear(b + e), a.push(Zo(this.i18nDateFormatterYear_, c));
sp(this, this.elYear_, a, this.handleYearMenuClick_, Zo(this.i18nDateFormatterYear_, this.activeMonth_))
};
d.handleMonthMenuClick_ = function(a) {
a = Number(a.getAttribute("itemIndex"));
this.activeMonth_.date.setMonth(a);
ip(this);
this.elMonth_.focus && this.elMonth_.focus()
};
d.handleYearMenuClick_ = function(a) {
3 == a.firstChild.nodeType && (a = Number(a.getAttribute("itemIndex")), this.activeMonth_.date.setFullYear(this.activeMonth_.getFullYear() + a - 5), ip(this));
this.elYear_.focus()
};
var sp = function(a, b, c, e, f) {
a.destroyMenu_();
var g = zg(a.goog_ui_Component$dom_, "DIV");
g.className = W() + "-menu";
a.menuSelected_ = null;
for (var h = zg(a.goog_ui_Component$dom_, "UL"), m = 0; m < c.length; m++) {
var n = a.goog_ui_Component$dom_.createDom("LI", null, c[m]);
n.setAttribute("itemIndex", m);
c[m] == f && (a.menuSelected_ = n);
h.appendChild(n)
}
g.appendChild(h);
g.style.left = b.offsetLeft + b.parentNode.offsetLeft + "px";
g.style.top = b.offsetTop + "px";
g.style.width = b.clientWidth + "px";
a.elMonth_.parentNode.appendChild(g);
a.menu_ =
g;
a.menuSelected_ || (a.menuSelected_ = h.firstChild);
a.menuSelected_.className = W() + "-menu-selected";
a.menuCallback_ = e;
b = fl(a);
b.listen(a.menu_, "click", a.handleMenuClick_);
b.listen(rp(a, a.menu_), "key", a.handleMenuKeyPress_);
b.listen(a.goog_ui_Component$dom_.document_, "click", a.destroyMenu_);
g.tabIndex = 0;
g.focus()
};
fp.prototype.handleMenuClick_ = function(a) {
a.stopPropagation();
this.destroyMenu_();
this.menuCallback_ && this.menuCallback_(a.target)
};
fp.prototype.handleMenuKeyPress_ = function(a) {
a.stopPropagation();
var b = this.menuSelected_;
switch (a.goog_events_BrowserEvent$keyCode) {
case 35:
a.preventDefault();
var c = b.parentNode.lastChild;
break;
case 36:
a.preventDefault();
c = b.parentNode.firstChild;
break;
case 38:
a.preventDefault();
c = b.previousSibling;
break;
case 40:
a.preventDefault();
c = b.nextSibling;
break;
case 13:
case 9:
case 0:
a.preventDefault(), this.destroyMenu_(), this.menuCallback_(b)
}
c && c != b && (b.className = "", c.className = W() + "-menu-selected", this.menuSelected_ =
c)
};
fp.prototype.destroyMenu_ = function() {
if (this.menu_) {
var a = fl(this);
a.unlisten(this.menu_, "click", this.handleMenuClick_);
a.unlisten(rp(this, this.menu_), "key", this.handleMenuKeyPress_);
a.unlisten(this.goog_ui_Component$dom_.document_, "click", this.destroyMenu_);
C(this.menu_);
delete this.menu_
}
};
var ip = function(a) {
if (a.getElement()) {
var b = a.activeMonth_.goog_date_Date_prototype$clone();
Ho(b, 1);
a.elMonthYear_ && qg(a.elMonthYear_, Zo(a.i18nDateFormatterMonthYear_, b));
a.elMonth_ && qg(a.elMonth_, a.symbols_.STANDALONEMONTHS[b.getMonth()]);
a.elYear_ && qg(a.elYear_, Zo(a.i18nDateFormatterYear_, b));
var c = ((b.getDay() + 6) % 7 - b.firstDayOfWeek_ + 7) % 7;
b.add(new Do("m", -1));
Ho(b, Co(b.getFullYear(), b.getMonth()) - (c - 1));
c = new Do("d", 1);
a.grid_ = [];
for (var e = 0; 6 > e; e++) {
a.grid_[e] = [];
for (var f = 0; 7 > f; f++) {
a.grid_[e][f] =
b.goog_date_Date_prototype$clone();
var g = b.getFullYear();
b.add(c);
0 == b.getMonth() && 1 == b.getDate() && g++;
b.date.setFullYear(g)
}
}
if (a.getElement())
for (b = a.activeMonth_.getMonth(), f = new Go, c = f.getFullYear(), e = f.getMonth(), f = f.getDate(), g = 0; 6 > g; g++) {
a.showWeekNum_ ? (qg(a.elTable_[g + 1][0], Zo(a.i18nDateFormatterWeek_, a.grid_[g][0])), a.elTable_[g + 1][0].className = W() + "-week") : (qg(a.elTable_[g + 1][0], ""), a.elTable_[g + 1][0].className = "");
for (var h = 0; 7 > h; h++) {
var m = a.grid_[g][h],
n = a.elTable_[g + 1][h + 1];
n.id || (n.id =
":" + (a.cellIdGenerator_.nextId_++).toString(36));
xl(n, "gridcell");
var p = Zo(a.i18nDateFormatterDayAriaLabel_, m);
yl(n, "label", p);
p = [W() + "-date"];
a.userSelectableDateRange_.contains(m) || p.push(W() + "-unavailable-date");
m.getMonth() != b && p.push(W() + "-other-month");
var r = (h + a.activeMonth_.firstDayOfWeek_ + 7) % 7;
a.wdayStyles_[r] && p.push(a.wdayStyles_[r]);
m.getDate() == f && m.getMonth() == e && m.getFullYear() == c && p.push(W() + "-today");
a.date_ && m.getDate() == a.date_.getDate() && m.getMonth() == a.date_.getMonth() && m.getFullYear() ==
a.date_.getFullYear() && (p.push(W() + "-selected"), a.selectedCell_ = n);
m = Zo(a.i18nDateFormatterDay_, m);
qg(n, m);
n.className = p.join(" ")
}
4 <= g && Ej(a.elTable_[g + 1][0].parentElement || a.elTable_[g + 1][0].parentNode, a.grid_[g][0].getMonth() == b || !0)
}
}
},
mp = function(a) {
var b = new pp("changeActiveMonth", a, a.activeMonth_.goog_date_Date_prototype$clone());
ne(a, b)
},
rp = function(a, b) {
var c = Fa(b);
c in a.keyHandlers_ || (a.keyHandlers_[c] = new pl(b));
return a.keyHandlers_[c]
},
pp = function(a, b, c) {
Hd.call(this, a, b);
this.date =
c
};
w(pp, Hd);
/*
Visual Blocks Editor
Copyright 2015 Google Inc.
https://developers.google.com/blockly/
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
var vo = function(a, b) {
a || (a = (new Go).toIsoString(!0));
vo.superClass_.constructor.call(this, a, b);
this.Blockly_Field_prototype$setValue(a);
bk(this, "date")
},
tp;
w(vo, Wj);
d = vo.prototype;
d.CURSOR = "text";
d.dispose = function() {
Fk(this);
vo.superClass_.dispose.call(this)
};
d.getValue = function() {
return this.date_
};
d.Blockly_Field_prototype$setValue = function(a) {
if (this.Blockly_Field_prototype$sourceBlock) {
var b = ck(this, a);
null !== b && (a = b)
}
this.date_ = a;
Wj.prototype.Blockly_Field_prototype$setText.call(this, a)
};
d.showEditor = function() {
Gk(this, this.Blockly_Field_prototype$sourceBlock.RTL, up);
var a = new fp;
lp(a);
jp(a);
var b = hg(),
c = zj(),
e = Bj(Zj(this)),
f = hk(this);
a.render(Jk);
np(a, Jo(this.getValue()));
var g = Dj(a.getElement());
e.y = e.y + g.height + f.height >= b.height + c.y ? e.y - (g.height - 1) : e.y + (f.height - 1);
this.Blockly_Field_prototype$sourceBlock.RTL ? (e.x += f.width, e.x -= g.width, e.x < c.x && (e.x = c.x)) : e.x > b.width + c.x - g.width && (e.x = b.width + c.x - g.width);
Im(e.x, e.y, b, c, this.Blockly_Field_prototype$sourceBlock.RTL);
var h = this;
tp = $d(a, "change", function(a) {
a = a.date ? a.date.toIsoString(!0) : "";
L();
h.Blockly_Field_prototype$sourceBlock && (a = ck(h, a));
h.Blockly_Field_prototype$setValue(a)
})
};
var up = function() {
tp && he(tp);
ci(!1)
},
vp = [".blocklyWidgetDiv .goog-date-picker,", ".blocklyWidgetDiv .goog-date-picker th,", ".blocklyWidgetDiv .goog-date-picker td {", " font: 13px Arial, sans-serif;", "}", ".blocklyWidgetDiv .goog-date-picker {", " -moz-user-focus: normal;", " -moz-user-select: none;", " position: relative;", " border: 1px solid #000;", " float: left;", " padding: 2px;", " color: #000;", " background: #c3d9ff;", " cursor: default;", "}", ".blocklyWidgetDiv .goog-date-picker th {", " text-align: center;",
"}", ".blocklyWidgetDiv .goog-date-picker td {", " text-align: center;", " vertical-align: middle;", " padding: 1px 3px;", "}", ".blocklyWidgetDiv .goog-date-picker-menu {", " position: absolute;", " background: threedface;", " border: 1px solid gray;", " -moz-user-focus: normal;", " z-index: 1;", " outline: none;", "}", ".blocklyWidgetDiv .goog-date-picker-menu ul {", " list-style: none;", " margin: 0px;", " padding: 0px;", "}", ".blocklyWidgetDiv .goog-date-picker-menu ul li {", " cursor: default;", "}",
".blocklyWidgetDiv .goog-date-picker-menu-selected {", " background: #ccf;", "}", ".blocklyWidgetDiv .goog-date-picker th {", " font-size: .9em;", "}", ".blocklyWidgetDiv .goog-date-picker td div {", " float: left;", "}", ".blocklyWidgetDiv .goog-date-picker button {", " padding: 0px;", " margin: 1px 0;", " border: 0;", " color: #20c;", " font-weight: bold;", " background: transparent;", "}", ".blocklyWidgetDiv .goog-date-picker-date {", " background: #fff;", "}", ".blocklyWidgetDiv .goog-date-picker-week,",
".blocklyWidgetDiv .goog-date-picker-wday {", " padding: 1px 3px;", " border: 0;", " border-color: #a2bbdd;", " border-style: solid;", "}", ".blocklyWidgetDiv .goog-date-picker-week {", " border-right-width: 1px;", "}", ".blocklyWidgetDiv .goog-date-picker-wday {", " border-bottom-width: 1px;", "}", ".blocklyWidgetDiv .goog-date-picker-head td {", " text-align: center;", "}", ".blocklyWidgetDiv td.goog-date-picker-today-cont {", " text-align: center;", "}", ".blocklyWidgetDiv td.goog-date-picker-none-cont {",
" text-align: center;", "}", ".blocklyWidgetDiv .goog-date-picker-month {", " min-width: 11ex;", " white-space: nowrap;", "}", ".blocklyWidgetDiv .goog-date-picker-year {", " min-width: 6ex;", " white-space: nowrap;", "}", ".blocklyWidgetDiv .goog-date-picker-monthyear {", " white-space: nowrap;", "}", ".blocklyWidgetDiv .goog-date-picker table {", " border-collapse: collapse;", "}", ".blocklyWidgetDiv .goog-date-picker-other-month {", " color: #888;", "}", ".blocklyWidgetDiv .goog-date-picker-wkend-start,",
".blocklyWidgetDiv .goog-date-picker-wkend-end {", " background: #eee;", "}", ".blocklyWidgetDiv td.goog-date-picker-selected {", " background: #c3d9ff;", "}", ".blocklyWidgetDiv .goog-date-picker-today {", " background: #9ab;", " font-weight: bold !important;", " border-color: #246 #9bd #9bd #246;", " color: #fff;", "}"
];
var wp = "",
xp = null,
yp = [],
zp = "",
Ap = function(a) {
document.head.insertBefore(a, document.head.firstChild);
xp = a.sheet;
Nh("handopen")
},
Bp = function() {
0 < yp.length && yp[yp.length - 1].remove()
},
Cp = function() {
Bp();
var a = yp.pop();
0 < yp.length && Ap(yp[yp.length - 1]);
return a
},
Nh = function(a) {
if (!(ld || nd || pd) && wp != a) {
wp = a;
var b = "handopen" == a ? "default" : "url(" + zp + "/" + a + ".cur), auto";
var c = ".blocklyDraggable {\n cursor: " + b + ";\n}\n";
xp.deleteRule(0);
xp.insertRule(c, 0);
c = document.getElementsByClassName("blocklyToolboxDiv");
for (var e = 0, f; f = c[e]; e++) f.style.cursor = "handdelete" == a ? b : "";
document.body.parentNode.style.cursor = "handopen" == a ? "" : b
}
},
Dp = [".blocklySvg {", "outline: none;", "overflow: hidden;", "position: absolute;", "display: block;", "box-sizing: border-box;", "}", ".blocklyRelativeWrapper {", "position: relative;", "width: 100%;", "height: 100%;", "}", ".blocklyWidgetDiv {", "display: none;", "position: absolute;", "z-index: 99999;", "}", ".injectionDiv {", "height: 100%;", "position: relative;", "overflow: hidden;", "}", ".blocklyNonSelectable {",
"user-select: none;", "-moz-user-select: none;", "-webkit-user-select: none;", "-ms-user-select: none;", "}", ".blocklyWidgetDiv.fieldTextInput {", "overflow: hidden;", "border: 1px solid;", "box-sizing: border-box;", "transform-origin: 0 0;", "-ms-transform-origin: 0 0;", "-moz-transform-origin: 0 0;", "-webkit-transform-origin: 0 0;", "}", ".blocklyTextDropDownArrow {", "position: absolute;", "}", ".blocklyNonSelectable {", "user-select: none;", "-moz-user-select: none;", "-webkit-user-select: none;", "-ms-user-select: none;",
"}", ".blocklyWsDragSurface {", "display: none;", "position: absolute;", "overflow: visible;", "top: 0;", "left: 0;", "}", ".blocklyBlockDragSurface {", "display: none;", "position: absolute;", "top: 0;", "left: 0;", "right: 0;", "bottom: 0;", "overflow: visible !important;", "z-index: 50;", "}", ".blocklyTooltipDiv {", "background-color: #ffffc7;", "border: 1px solid #ddc;", "box-shadow: 4px 4px 20px 1px rgba(0,0,0,.15);", "color: #000;", "display: none;", 'font-family: "Helvetica Neue", Helvetica, sans-serif;', "font-size: 9pt;",
"opacity: 0.9;", "padding: 2px;", "position: absolute;", "z-index: 100000;", "}", ".blocklyDropDownDiv {", "position: fixed;", "left: 0;", "top: 0;", "z-index: 1000;", "display: none;", "border: 1px solid;", "border-radius: 4px;", "box-shadow: 0px 0px 8px 1px " + I.dropDownShadow + ";", "padding: 4px;", "-webkit-user-select: none;", "}", ".blocklyDropDownContent {", "max-height: 300px;", "overflow: auto;", "}", ".blocklyDropDownArrow {", "position: absolute;", "left: 0;", "top: 0;", "width: 16px;", "height: 16px;", "z-index: -1;",
"background-color: inherit;", "border-color: inherit;", "}", ".blocklyDropDownButton {", "display: inline-block;", "float: left;", "padding: 0;", "margin: 4px;", "border-radius: 4px;", "outline: none;", "border: 1px solid;", "transition: box-shadow .1s;", "cursor: pointer;", "}", ".blocklyDropDownButtonHover {", "box-shadow: 0px 0px 0px 4px " + I.fieldShadow + ";", "}", ".blocklyDropDownButton:active {", "box-shadow: 0px 0px 0px 6px " + I.fieldShadow + ";", "}", ".blocklyDropDownButton > img {", "width: 80%;", "height: 80%;",
"margin-top: 5%", "}", ".blocklyDropDownPlaceholder {", "display: inline-block;", "float: left;", "padding: 0;", "margin: 4px;", "}", ".blocklyNumPadButton {", "display: inline-block;", "float: left;", "padding: 0;", "width: 48px;", "height: 48px;", "margin: 4px;", "border-radius: 4px;", "background: $colour_numPadBackground;", "color: $colour_numPadText;", "outline: none;", "border: 1px solid $colour_numPadBorder;", "cursor: pointer;", "font-weight: 600;", 'font-family: "Helvetica Neue", Helvetica, sans-serif;', "font-size: 12pt;",
"-webkit-tap-highlight-color: rgba(0,0,0,0);", "}", ".blocklyNumPadButton > img {", "margin-top: 10%;", "width: 80%;", "height: 80%;", "}", ".blocklyNumPadButton:active {", "background: $colour_numPadActiveBackground;", "-webkit-tap-highlight-color: rgba(0,0,0,0);", "}", ".arrowTop {", "border-top: 1px solid;", "border-left: 1px solid;", "border-top-left-radius: 4px;", "border-color: inherit;", "}", ".arrowBottom {", "border-bottom: 1px solid;", "border-right: 1px solid;", "border-bottom-right-radius: 4px;", "border-color: inherit;",
"}", ".valueReportBox {", "min-width: 50px;", "max-width: 300px;", "max-height: 200px;", "overflow: auto;", "word-wrap: break-word;", "text-align: center;", 'font-family: "Helvetica Neue", Helvetica, sans-serif;', "font-size: .8em;", "}", ".blocklyResizeSE {", "cursor: se-resize;", "fill: #aaa;", "}", ".blocklyResizeSW {", "cursor: sw-resize;", "fill: #aaa;", "}", ".blocklyResizeLine {", "stroke: #888;", "stroke-width: 1;", "}", ".blocklyHighlightedConnectionPath {", "fill: none;", "stroke: #fc3;", "stroke-width: 4px;", "}",
".blocklyPath {", "stroke-width: 0px;", "}", ".blocklySelected>.blocklyPath {", "}", ".blocklyDragging>.blocklyPath {", "}", ".blocklyDisabled>.blocklyPath {", "fill-opacity: .5;", "stroke-opacity: .5;", "}", ".blocklyInsertionMarker>.blocklyPath {", "stroke: none;", "}", ".blocklyText {", "fill: #fff;", 'font-family: "Helvetica Neue", Helvetica, sans-serif;', "font-size: 12pt;", "font-weight: 500;", "}", ".blocklyTextTruncated {", "font-size: 11pt;", "}", ".blocklyNonEditableText>text {", "pointer-events: none;", "}", ".blocklyNonEditableText>text,",
".blocklyEditableText>text {", "fill: $colour_text;", "}", ".blocklyDropdownText {", "fill: #fff !important;", "}", ".blocklyBubbleText {", "fill: $colour_text;", "}", ".blocklyFlyout {", "position: absolute;", "z-index: 20;", "}", ".blocklyFlyoutButton {", "fill: #888;", "cursor: default;", "}", ".blocklyFlyoutButtonShadow {", "fill: #666;", "}", ".blocklyFlyoutButton:hover {", "fill: #aaa;", "}", ".blocklyFlyoutLabel {", "cursor: default;", "}", ".blocklyFlyoutLabelBackground {", "opacity: 0;", "}", ".blocklyFlyoutLabelText {",
"fill: #000;", "}", ".blocklySvg text, .blocklyBlockDragSurface text {", "user-select: none;", "-moz-user-select: none;", "-webkit-user-select: none;", "cursor: inherit;", "}", ".blocklyHidden {", "display: none;", "}", ".blocklyFieldDropdown:not(.blocklyHidden) {", "display: block;", "}", ".blocklyIconGroup {", "cursor: default;", "}", ".blocklyIconGroup:not(:hover),", ".blocklyIconGroupReadonly {", "opacity: .6;", "}", ".blocklyIconShape {", "fill: #00f;", "stroke: #fff;", "stroke-width: 1px;", "}", ".blocklyIconSymbol {",
"fill: #fff;", "}", ".blocklyMinimalBody {", "margin: 0;", "padding: 0;", "}", ".blocklyCommentTextarea {", "background-color: #ffc;", "border: 0;", "margin: 0;", "padding: 2px;", "resize: none;", "}", ".blocklyHtmlInput {", "border: none;", 'font-family: "Helvetica Neue", Helvetica, sans-serif;', "font-size: 12pt;", "height: 100%;", "margin: 0;", "outline: none;", "box-sizing: border-box;", "width: 100%;", "text-align: center;", "color: $colour_text;", "font-weight: 500;", "}", ".blocklyMainBackground {", "stroke: none;",
"}", ".blocklyMutatorBackground {", "fill: #fff;", "stroke: #ddd;", "stroke-width: 1;", "}", ".blocklyFlyoutBackground {", "fill: $colour_flyout;", "fill-opacity: .8;", "}", ".blocklyMainWorkspaceScrollbar {", "z-index: 21;", "}", ".blocklyFlyoutScrollbar {", "z-index: 30;", "}", ".blocklyScrollbarHorizontal, .blocklyScrollbarVertical {", "position: absolute;", "left: 0;", "outline: none;", "}", ".blocklyScrollbarBackground {", "opacity: 0;", "}", ".blocklyScrollbarHandle {", "fill: $colour_scrollbar;", "}", ".blocklyScrollbarBackground:hover+.blocklyScrollbarHandle,",
".blocklyScrollbarHandle:hover {", "fill: $colour_scrollbarHover;", "}", ".blocklyZoom>image {", "opacity: 1;", "}", ".blocklyFlyout .blocklyScrollbarHandle {", "fill: #bbb;", "}", ".blocklyFlyout .blocklyScrollbarBackground:hover+.blocklyScrollbarHandle,", ".blocklyFlyout .blocklyScrollbarHandle:hover {", "fill: #aaa;", "}", ".blocklyInvalidInput {", "background: #faa;", "}", ".blocklyAngleCircle {", "stroke: #444;", "stroke-width: 1;", "fill: #ddd;", "fill-opacity: .8;", "}", ".blocklyAngleMarks {", "stroke: #444;", "stroke-width: 1;",
"}", ".blocklyAngleGauge {", "fill: #f88;", "fill-opacity: .8;", "}", ".blocklyAngleLine {", "stroke: #f00;", "stroke-width: 2;", "stroke-linecap: round;", "}", ".blocklyContextMenu {", "border-radius: 4px;", "}", ".blocklyDropdownMenu {", "padding: 0 !important;", "}", ".blocklyDropDownNumPad {", "background-color: $colour_numPadBackground;", "}", ".blocklyWidgetDiv .goog-option-selected .goog-menuitem-checkbox,", ".blocklyWidgetDiv .goog-option-selected .goog-menuitem-icon {", "background: url(<<<PATH>>>/sprites.png) no-repeat -48px -16px !important;",
"}", ".blocklyToolboxDiv {", "background-color: $colour_toolbox;", "color: $colour_toolboxText;", "overflow-x: visible;", "overflow-y: auto;", "position: absolute;", 'font-family: "Helvetica Neue", Helvetica, sans-serif;', "z-index: 40;", "}", ".blocklyTreeRoot {", "padding: 4px 0;", "}", ".blocklyTreeRoot:focus {", "outline: none;", "}", ".blocklyTreeRow {", "height: 22px;", "line-height: 22px;", "margin-bottom: 3px;", "padding-right: 8px;", "white-space: nowrap;", "}", ".blocklyHorizontalTree {", "float: left;", "margin: 1px 5px 8px 0;",
"}", ".blocklyHorizontalTreeRtl {", "float: right;", "margin: 1px 0 8px 5px;", "}", '.blocklyToolboxDiv[dir="RTL"] .blocklyTreeRow {', "margin-left: 8px;", "}", ".blocklyTreeRow:not(.blocklyTreeSelected):hover {", "background-color: #e4e4e4;", "}", ".blocklyTreeSeparator {", "border-bottom: solid #e5e5e5 1px;", "height: 0;", "margin: 5px 0;", "}", ".blocklyTreeSeparatorHorizontal {", "border-right: solid #e5e5e5 1px;", "width: 0;", "padding: 5px 0;", "margin: 0 5px;", "}", ".blocklyTreeIcon {", "background-image: url(<<<PATH>>>/sprites.png);",
"height: 16px;", "vertical-align: middle;", "width: 16px;", "}", ".blocklyTreeIconClosedLtr {", "background-position: -32px -1px;", "}", ".blocklyTreeIconClosedRtl {", "background-position: 0px -1px;", "}", ".blocklyTreeIconOpen {", "background-position: -16px -1px;", "}", ".blocklyTreeSelected>.blocklyTreeIconClosedLtr {", "background-position: -32px -17px;", "}", ".blocklyTreeSelected>.blocklyTreeIconClosedRtl {", "background-position: 0px -17px;", "}", ".blocklyTreeSelected>.blocklyTreeIconOpen {", "background-position: -16px -17px;",
"}", ".blocklyTreeIconNone,", ".blocklyTreeSelected>.blocklyTreeIconNone {", "background-position: -48px -1px;", "}", ".blocklyTreeLabel {", "cursor: default;", 'font-family: "Helvetica Neue", Helvetica, sans-serif;', "font-size: 16px;", "padding: 0 3px;", "vertical-align: middle;", "}", ".blocklyTreeSelected .blocklyTreeLabel {", "color: #fff;", "}", ".blocklyWidgetDiv .goog-palette {", "outline: none;", "cursor: default;", "}", ".blocklyWidgetDiv .goog-palette-table {", "border-collapse: collapse;", "}", ".blocklyWidgetDiv .goog-palette-cell {",
"height: 13px;", "width: 15px;", "margin: 0;", "border: 0;", "text-align: center;", "vertical-align: middle;", "font-size: 1px;", "}", ".blocklyWidgetDiv .goog-palette-colorswatch {", "position: relative;", "height: 13px;", "width: 15px;", "}", ".blocklyWidgetDiv .goog-palette-cell-hover .goog-palette-colorswatch {", "border: 1px solid #FFF;", "box-sizing: border-box;", "}", ".blocklyWidgetDiv .goog-palette-cell-selected .goog-palette-colorswatch {", "border: 1px solid #000;", "box-sizing: border-box;", "color: #fff;",
"}", ".blocklyWidgetDiv .goog-menu {", "background: #fff;", "border-color: #ccc #666 #666 #ccc;", "border-style: solid;", "border-width: 1px;", "cursor: default;", 'font: normal 13px "Helvetica Neue", Helvetica, sans-serif;', "margin: 0;", "outline: none;", "padding: 4px 0;", "position: absolute;", "overflow-y: auto;", "overflow-x: hidden;", "max-height: 100%;", "z-index: 20000;", "}", ".blocklyDropDownDiv .goog-menu {", "cursor: default;", 'font: normal 13px "Helvetica Neue", Helvetica, sans-serif;', "outline: none;",
"z-index: 20000;", "}", ".blocklyWidgetDiv .goog-menuitem {", "color: #000;", 'font: normal 13px "Helvetica Neue", Helvetica, sans-serif;', "list-style: none;", "margin: 0;", "padding: 4px 7em 4px 28px;", "white-space: nowrap;", "}", ".blocklyDropDownDiv .goog-menuitem {", "color: #fff;", 'font: normal 13px "Helvetica Neue", Helvetica, sans-serif;', "font-weight: bold;", "list-style: none;", "margin: 0;", "padding: 4px 7em 4px 28px;", "white-space: nowrap;", "}", ".blocklyWidgetDiv .goog-menuitem.goog-menuitem-rtl, ",
".blocklyDropDownDiv .goog-menuitem.goog-menuitem-rtl {", "padding-left: 7em;", "padding-right: 28px;", "}", ".blocklyWidgetDiv .goog-menu-nocheckbox .goog-menuitem,", ".blocklyWidgetDiv .goog-menu-noicon .goog-menuitem, ", ".blocklyDropDownDiv .goog-menu-nocheckbox .goog-menuitem,", ".blocklyDropDownDiv .goog-menu-noicon .goog-menuitem { ", "padding-left: 12px;", "}", ".blocklyWidgetDiv .goog-menu-noaccel .goog-menuitem, ", ".blocklyDropDownDiv .goog-menu-noaccel .goog-menuitem {", "padding-right: 20px;", "}",
".blocklyWidgetDiv .goog-menuitem-content ", ".blocklyDropDownDiv .goog-menuitem-content {", "color: #000;", 'font: normal 13px "Helvetica Neue", Helvetica, sans-serif;', "}", ".blocklyWidgetDiv .goog-menuitem-disabled .goog-menuitem-accel,", ".blocklyWidgetDiv .goog-menuitem-disabled .goog-menuitem-content, ", ".blocklyDropDownDiv .goog-menuitem-disabled .goog-menuitem-accel,", ".blocklyDropDownDiv .goog-menuitem-disabled .goog-menuitem-content {", "color: #ccc !important;", "}", ".blocklyWidgetDiv .goog-menuitem-disabled .goog-menuitem-icon, ",
".blocklyDropDownDiv .goog-menuitem-disabled .goog-menuitem-icon {", "opacity: 0.3;", "-moz-opacity: 0.3;", "filter: alpha(opacity=30);", "}", ".blocklyWidgetDiv .goog-menuitem-highlight,", ".blocklyWidgetDiv .goog-menuitem-hover {", "background-color: #d6e9f8;", "border-color: #d6e9f8;", "border-style: dotted;", "border-width: 1px 0;", "padding-bottom: 3px;", "padding-top: 3px;", "}", ".blocklyDropDownDiv .goog-menuitem-highlight,", ".blocklyDropDownDiv .goog-menuitem-hover {", "background-color: rgba(0, 0, 0, 0.2);",
"}", ".blocklyWidgetDiv .goog-menuitem-checkbox,", ".blocklyWidgetDiv .goog-menuitem-icon, ", ".blocklyDropDownDiv .goog-menuitem-checkbox,", ".blocklyDropDownDiv .goog-menuitem-icon {", "background-repeat: no-repeat;", "height: 16px;", "left: 6px;", "position: absolute;", "right: auto;", "vertical-align: middle;", "width: 16px;", "}", ".blocklyWidgetDiv .goog-option-selected .goog-menuitem-checkbox,", ".blocklyWidgetDiv .goog-option-selected .goog-menuitem-icon,", ".blocklyDropDownDiv .goog-option-selected .goog-menuitem-checkbox,",
".blocklyDropDownDiv .goog-option-selected .goog-menuitem-icon {", "background: url(<<<PATH>>>/sprites.png) no-repeat -48px -16px !important;", "position: static;", "float: left;", "margin-left: -24px;", "}", ".blocklyWidgetDiv .goog-menuitem-rtl .goog-menuitem-checkbox,", ".blocklyWidgetDiv .goog-menuitem-rtl .goog-menuitem-icon,", ".blocklyDropDownDiv .goog-menuitem-rtl .goog-menuitem-checkbox,", ".blocklyDropDownDiv .goog-menuitem-rtl .goog-menuitem-icon {", "float: right;", "margin-left: 6px;", "}", ".blocklyWidgetDiv .goog-menuitem-accel, ",
".blocklyDropDownDiv .goog-menuitem-accel {", "color: #999;", "direction: ltr;", "left: auto;", "padding: 0 6px;", "position: absolute;", "right: 0;", "text-align: right;", "}", ".blocklyWidgetDiv .goog-menuitem-rtl .goog-menuitem-accel, ", ".blocklyDropDownDiv .goog-menuitem-rtl .goog-menuitem-accel {", "left: 0;", "right: auto;", "text-align: left;", "}", ".blocklyWidgetDiv .goog-menuitem-mnemonic-hint, ", ".blocklyDropDownDiv .goog-menuitem-mnemonic-hint {", "text-decoration: underline;", "}", ".blocklyWidgetDiv .goog-menuitem-mnemonic-separator, ",
".blocklyDropDownDiv .goog-menuitem-mnemonic-separator {", "color: #999;", "font-size: 12px;", "padding-left: 4px;", "}", ".blocklyWidgetDiv .goog-menuseparator, ", ".blocklyDropDownDiv .goog-menuseparator {", "border-top: 1px solid #ccc;", "margin: 4px 0;", "padding: 0;", "}", ".blocklyFlyoutCheckbox {", "fill: red;", "}", ".blocklyFlyoutCheckbox.checked {", "fill: blue;", "}", ".scratchCategoryMenu {", "width: 250px;", "background: $colour_toolbox;", "color: $colour_toolboxText;", "font-size: .9em;", "user-select: none;",
"-webkit-user-select: none;", "-moz-user-select: none;", "-ms-user-select: none;", "}", ".scratchCategoryRow {", "width: 50%;", "}", ".scratchCategoryMenuItem {", "padding: 4px;", "width: 50%;", "cursor: pointer;", "}", ".scratchCategoryMenuItem.categorySelected {", "background: $colour_toolboxSelected;", "border-radius: 16px;", "}", ".scratchCategoryItemBubbleLTR {", "width: 14px;", "height: 14px;", "border: 1px solid;", "border-radius: 8px;", "float: left;", "margin-right: 8px;", "}", ".scratchCategoryItemBubbleRTL {",
"width: 14px;", "height: 14px;", "border: 1px solid;", "border-radius: 8px;", "float: right;", "margin-left: 8px;", "}", ".scratchCategoryMenuItem:hover {", "color: $colour_toolboxHover !important;", "}", ""
];
H.math = {};
H.math_number = {
init: function() {
io(this, {
message0: "%1",
args0: [{
type: "field_number",
name: "NUM",
value: "0"
}],
output: "Number",
outputShape: 2,
colour: I.textField
})
}
};
H.math_integer = {
init: function() {
io(this, {
message0: "%1",
args0: [{
type: "field_number",
name: "NUM",
precision: 1
}],
output: "Number",
outputShape: 2,
colour: I.textField
})
}
};
H.math_whole_number = {
init: function() {
io(this, {
message0: "%1",
args0: [{
type: "field_number",
name: "NUM",
min: 0,
precision: 1
}],
output: "Number",
outputShape: 2,
colour: I.textField
})
}
};
H.math_positive_number = {
init: function() {
io(this, {
message0: "%1",
args0: [{
type: "field_number",
name: "NUM",
min: 0
}],
output: "Number",
outputShape: 2,
colour: I.textField
})
}
};
H.math_angle = {
init: function() {
io(this, {
message0: "%1",
args0: [{
type: "field_angle",
name: "NUM",
value: 90
}],
output: "Number",
outputShape: 2,
colour: I.textField
})
}
};
H.control = {};
H.control_repeat = {
init: function() {
io(this, {
id: "control_repeat",
message0: "%1 %2 %3",
args0: [{
type: "input_statement",
name: "SUBSTACK"
}, {
type: "field_image",
src: K.options.pathToMedia + "icons/control_repeat.svg",
width: 40,
height: 40,
alt: "*",
flip_rtl: !0
}, {
type: "input_value",
name: "TIMES",
check: "Number"
}],
inputsInline: !0,
previousStatement: null,
nextStatement: null,
category: "control",
colour: I.control.primary,
colourSecondary: I.control.secondary,
colourTertiary: I.control.tertiary
})
}
};
H.control_forever = {
init: function() {
io(this, {
id: "control_forever",
message0: "%1 %2",
args0: [{
type: "input_statement",
name: "SUBSTACK"
}, {
type: "field_image",
src: K.options.pathToMedia + "icons/control_forever.svg",
width: 40,
height: 40,
alt: "*",
flip_rtl: !0
}],
inputsInline: !0,
previousStatement: null,
category: "control",
colour: I.control.primary,
colourSecondary: I.control.secondary,
colourTertiary: I.control.tertiary
})
}
};
H.control_repeat = {
init: function() {
io(this, {
id: "control_repeat",
message0: "%1 %2 %3",
args0: [{
type: "input_statement",
name: "SUBSTACK"
}, {
type: "field_image",
src: K.options.pathToMedia + "icons/control_repeat.svg",
width: 40,
height: 40,
alt: "*",
flip_rtl: !0
}, {
type: "input_value",
name: "TIMES",
check: "Number"
}],
inputsInline: !0,
previousStatement: null,
nextStatement: null,
category: "control",
colour: I.control.primary,
colourSecondary: I.control.secondary,
colourTertiary: I.control.tertiary
})
}
};
H.control_stop = {
init: function() {
io(this, {
id: "control_stop",
message0: "%1",
args0: [{
type: "field_image",
src: K.options.pathToMedia + "icons/control_stop.svg",
width: 40,
height: 40,
alt: "Stop"
}],
inputsInline: !0,
previousStatement: null,
category: "control",
colour: I.control.primary,
colourSecondary: I.control.secondary,
colourTertiary: I.control.tertiary
})
}
};
H.control_wait = {
init: function() {
io(this, {
id: "control_wait",
message0: "%1 %2",
args0: [{
type: "field_image",
src: K.options.pathToMedia + "icons/control_wait.svg",
width: 40,
height: 40,
alt: "Wait"
}, {
type: "input_value",
name: "DURATION",
check: "Number"
}],
inputsInline: !0,
previousStatement: null,
nextStatement: null,
category: "control",
colour: I.control.primary,
colourSecondary: I.control.secondary,
colourTertiary: I.control.tertiary
})
}
};
H.event = {};
H.event_whenflagclicked = {
init: function() {
io(this, {
id: "event_whenflagclicked",
message0: "%1",
args0: [{
type: "field_image",
src: K.options.pathToMedia + "icons/event_whenflagclicked.svg",
width: 40,
height: 40,
alt: "When green flag clicked",
flip_rtl: !0
}],
inputsInline: !0,
nextStatement: null,
category: "events",
colour: I.event.primary,
colourSecondary: I.event.secondary,
colourTertiary: I.event.tertiary
})
}
};
H.dropdown_whenbroadcast = {
init: function() {
eo(this.appendInput(5, ""), new uo([{
src: K.options.pathToMedia + "icons/event_when-broadcast-received_blue.svg",
value: "blue",
width: 48,
height: 48,
alt: "Blue"
}, {
src: K.options.pathToMedia + "icons/event_when-broadcast-received_green.svg",
value: "green",
width: 48,
height: 48,
alt: "Green"
}, {
src: K.options.pathToMedia + "icons/event_when-broadcast-received_coral.svg",
value: "coral",
width: 48,
height: 48,
alt: "Coral"
}, {
src: K.options.pathToMedia + "icons/event_when-broadcast-received_magenta.svg",
value: "magenta",
width: 48,
height: 48,
alt: "Magenta"
}, {
src: K.options.pathToMedia + "icons/event_when-broadcast-received_orange.svg",
value: "orange",
width: 48,
height: 48,
alt: "Orange"
}, {
src: K.options.pathToMedia + "icons/event_when-broadcast-received_purple.svg",
value: "purple",
width: 48,
height: 48,
alt: "Purple"
}]), "CHOICE");
this.setOutput(!0);
this.setColour(I.event.primary, I.event.secondary, I.event.tertiary)
}
};
H.event_whenbroadcastreceived = {
init: function() {
io(this, {
id: "event_whenbroadcastreceived",
message0: "%1 %2",
args0: [{
type: "field_image",
src: K.options.pathToMedia + "icons/event_when-broadcast-received_blue.svg",
width: 40,
height: 40,
alt: "Broadcast received"
}, {
type: "input_value",
name: "CHOICE"
}],
inputsInline: !0,
nextStatement: null,
category: "events",
colour: I.event.primary,
colourSecondary: I.event.secondary,
colourTertiary: I.event.tertiary
})
}
};
H.dropdown_broadcast = {
init: function() {
eo(this.appendInput(5, ""), new uo([{
src: K.options.pathToMedia + "icons/event_broadcast_blue.svg",
value: "blue",
width: 48,
height: 48,
alt: "Blue"
}, {
src: K.options.pathToMedia + "icons/event_broadcast_green.svg",
value: "green",
width: 48,
height: 48,
alt: "Green"
}, {
src: K.options.pathToMedia + "icons/event_broadcast_coral.svg",
value: "coral",
width: 48,
height: 48,
alt: "Coral"
}, {
src: K.options.pathToMedia + "icons/event_broadcast_magenta.svg",
value: "magenta",
width: 48,
height: 48,
alt: "Magenta"
},
{
src: K.options.pathToMedia + "icons/event_broadcast_orange.svg",
value: "orange",
width: 48,
height: 48,
alt: "Orange"
}, {
src: K.options.pathToMedia + "icons/event_broadcast_purple.svg",
value: "purple",
width: 48,
height: 48,
alt: "Purple"
}
]), "CHOICE");
this.setOutput(!0);
this.setColour(I.event.primary, I.event.secondary, I.event.tertiary)
}
};
H.event_broadcast = {
init: function() {
io(this, {
id: "event_broadcast",
message0: "%1 %2",
args0: [{
type: "field_image",
src: K.options.pathToMedia + "icons/event_broadcast_blue.svg",
width: 40,
height: 40,
alt: "Broadcast"
}, {
type: "input_value",
name: "CHOICE"
}],
inputsInline: !0,
previousStatement: null,
nextStatement: null,
category: "events",
colour: I.event.primary,
colourSecondary: I.event.secondary,
colourTertiary: I.event.tertiary
})
}
};
H.defaultToolbox = '<xml id="toolbox-categories" style="display: none"></xml>';
H.defaultToolboxSimple = '<xml id="toolbox-simple" style="display: none"><block type="event_whenflagclicked"></block><block type="event_whenbroadcastreceived"><value name="CHOICE"><shadow type="dropdown_whenbroadcast"><field name="CHOICE">blue</field></shadow></value></block><block type="event_broadcast"><value name="CHOICE"><shadow type="dropdown_broadcast"><field name="CHOICE">blue</field></shadow></value></block><block type="control_forever"></block><block type="control_repeat"><value name="TIMES"><shadow type="math_whole_number"><field name="NUM">4</field></shadow></value></block><block type="control_stop"></block><block type="control_wait"><value name="DURATION"><shadow type="math_positive_number"><field name="NUM">1</field></shadow></value></block></xml>';
var Vh = function(a) {
var b = !!a.readOnly;
if (b) var c = null,
e = !1,
f = !1,
g = !1,
h = !1,
m = !1,
n = !1;
else {
if (!a.toolbox) {
var p = (new DOMParser).parseFromString(H.defaultToolbox, "text/xml");
a.toolbox = p.documentElement
}
c = Ep(a.toolbox);
e = !(!c || !c.getElementsByTagName("category").length);
f = a.trashcan;
void 0 === f && (f = !1);
g = a.collapse;
void 0 === g && (g = e);
h = a.comments;
void 0 === h && (h = e);
m = a.disable;
void 0 === m && (m = e);
n = a.sounds;
void 0 === n && (n = !0)
}
var r = !!a.rtl,
t = a.horizontalLayout;
void 0 === t && (t = !1);
p = a.toolboxPosition;
p = "end" ===
p ? !1 : !0;
p = t ? p ? 0 : 1 : p == r ? 3 : 2;
var x = a.scrollbars;
void 0 === x && (x = e);
var fa = a.css;
void 0 === fa && (fa = !0);
var R = "https://blockly-demo.appspot.com/static/media/";
a.media ? R = a.media : a.path && (R = a.path + "media/");
var Ga = void 0 === a.oneBasedIndex ? !0 : !!a.oneBasedIndex,
ua = a.colours;
if (ua)
for (var la in ua) ua.hasOwnProperty(la) && I.hasOwnProperty(la) && (I[la] = ua[la]);
this.RTL = r;
this.oneBasedIndex = Ga;
this.collapse = g;
this.comments = h;
this.disable = m;
this.readOnly = b;
this.pathToMedia = R;
this.hasCategories = e;
this.hasScrollbars =
x;
this.hasTrashcan = f;
this.hasSounds = n;
this.hasCss = fa;
this.horizontalLayout = t;
this.languageTree = c;
b = a.grid || {};
la = {};
la.spacing = parseFloat(b.spacing) || 0;
la.colour = b.colour || "#888";
la.length = parseFloat(b.length) || 1;
la.snap = 0 < la.spacing && !!b.snap;
this.gridOptions = la;
a = a.zoom || {};
b = {};
b.controls = void 0 === a.controls ? !1 : !!a.controls;
b.wheel = void 0 === a.wheel ? !1 : !!a.wheel;
b.startScale = void 0 === a.startScale ? 1 : parseFloat(a.startScale);
b.maxScale = void 0 === a.maxScale ? 3 : parseFloat(a.maxScale);
b.minScale = void 0 ===
a.minScale ? .3 : parseFloat(a.minScale);
b.scaleSpeed = void 0 === a.scaleSpeed ? 1.2 : parseFloat(a.scaleSpeed);
this.zoomOptions = b;
this.toolboxPosition = p;
this.insetShadowFilterId = this.embossFilterId = void 0
};
Vh.prototype.parentWorkspace = null;
Vh.prototype.setMetrics = null;
Vh.prototype.getMetrics = null;
var Ep = function(a) {
a ? ("string" != typeof a && ("undefined" == typeof XSLTProcessor && a.outerHTML ? a = a.outerHTML : a instanceof Element || (a = null)), "string" == typeof a && (a = Fp(a))) : a = null;
return a
};
var Gp = function(a) {
this.Blockly_WorkspaceDragSurfaceSvg_prototype$container_ = a;
this.createDom()
};
d = Gp.prototype;
d.Blockly_WorkspaceDragSurfaceSvg_prototype$container_ = null;
d.createDom = function() {
this.Blockly_WorkspaceDragSurfaceSvg$SVG_ || (this.Blockly_WorkspaceDragSurfaceSvg$SVG_ = O("svg", {
xmlns: "http://www.w3.org/2000/svg",
"xmlns:html": "http://www.w3.org/1999/xhtml",
"xmlns:xlink": "http://www.w3.org/1999/xlink",
version: "1.1",
"class": "blocklyWsDragSurface"
}, null), this.Blockly_WorkspaceDragSurfaceSvg_prototype$container_.appendChild(this.Blockly_WorkspaceDragSurfaceSvg$SVG_))
};
d.translateSurface = function(a, b) {
var c = a.toFixed(0),
e = b.toFixed(0);
this.Blockly_WorkspaceDragSurfaceSvg$SVG_.style.display = "block";
Ck(this.Blockly_WorkspaceDragSurfaceSvg$SVG_, "translate3d(" + c + "px, " + e + "px, 0px)")
};
d.getSurfaceTranslation = function() {
return nk(this.Blockly_WorkspaceDragSurfaceSvg$SVG_)
};
d.clearAndHide = function(a) {
var b = this.Blockly_WorkspaceDragSurfaceSvg$SVG_.childNodes[0],
c = this.Blockly_WorkspaceDragSurfaceSvg$SVG_.childNodes[1];
if (!b || !c || -1 == (" " + b.getAttribute("class") + " ").indexOf(" blocklyBlockCanvas ") || -1 == (" " + c.getAttribute("class") + " ").indexOf(" blocklyBubbleCanvas ")) throw "Couldn't clear and hide the drag surface. A node was missing.";
null != this.previousSibling_ ? Bk(b, this.previousSibling_) : a.insertBefore(b, a.firstChild);
Bk(c, b);
this.Blockly_WorkspaceDragSurfaceSvg$SVG_.style.display =
"none";
Ck(this.Blockly_WorkspaceDragSurfaceSvg$SVG_, "");
this.previousSibling_ = null
};
var Hp = {
currentBlock: null,
show: function(a, b, c) {
Gk(Hp, c, null);
if (b.length) {
var e = new sn;
e.goog_ui_Component_prototype$setRightToLeft(c);
for (var f = 0, g; g = b[f]; f++) {
var h = new on(g.text);
h.goog_ui_Component_prototype$setRightToLeft(c);
e.goog_ui_Component_prototype$addChildAt(h, kl(e), !0);
h.setEnabled(g.enabled);
g.enabled && ($d(h, "action", g.callback), h.handleContextMenu = function() {
ne(this, "action")
})
}
$d(e, "action", Hp.hide);
b = hg();
f = zj();
e.render(Jk);
var m = e.getElement();
Hi(m, "blocklyContextMenu");
N(m, "contextmenu",
null, jk);
g = Dj(m);
h = a.clientX + f.x;
var n = a.clientY + f.y;
a.clientY + g.height >= b.height && (n -= g.height);
c ? g.width >= a.clientX && (h += g.width) : a.clientX + g.width >= b.width && (h -= g.width);
Im(h, n, b, f, c);
tn(e);
setTimeout(function() {
m.focus()
}, 1);
Hp.currentBlock = null
} else Hp.hide()
},
hide: function() {
Fk(Hp);
Hp.currentBlock = null
},
callbackFactory: function(a, b) {
return function() {
Q++;
try {
var c = lj(b, a.workspace),
e = a.getRelativeToSurfaceXY();
e.x = a.RTL ? e.x - 48 : e.x + 48;
e.y += 96;
c.moveBy(e.x, e.y)
} finally {
Q--
}
0 == Q && !c.isShadowBlock &&
P(new jo(c));
Ip(c)
}
}
};
var Jp = function(a, b) {
Jp.superClass_.constructor.call(this, a, b)
};
w(Jp, Ui);
var Kp = function(a, b) {
var c = a.x - b.x,
e = a.y - b.y;
return Math.sqrt(c * c + e * e)
},
$i = function(a, b) {
if (0 == Yn) {
var c = no(a.Blockly_Connection$sourceBlock);
if (!c.isInFlyout) {
var e = !1;
if (!jj(c)) {
c = no(b.Blockly_Connection$sourceBlock);
if (!jj(c)) return;
b = a;
e = !0
}
var f = lo == c;
f || c.addSelect();
var g = b.x + 48 - a.x,
h = b.y + 48 - a.y;
e && (h = -h);
c.RTL && (g = -g);
c.moveBy(g, h);
f || c.removeSelect()
}
}
};
Jp.prototype.moveTo = function(a, b) {
this.inDB && dj(this.Blockly_Connection_prototype$db, this);
this.x = a;
this.y = b;
this.Blockly_Connection_prototype$hidden || Lp(this.Blockly_Connection_prototype$db, this)
};
Jp.prototype.moveBy = function(a, b) {
this.moveTo(this.x + a, this.y + b)
};
var Np = function(a) {
var b = a.targetConnection.x - a.x,
c = a.targetConnection.y - a.y;
if (0 != b || 0 != c) {
a = S(a);
var e = a.getSvgRoot();
if (!e) throw "block is not rendered.";
e = nk(e);
a.getSvgRoot().setAttribute("transform", "translate(" + (e.x - b) + "," + (e.y - c) + ")");
Mp(a, -b, -c)
}
};
Jp.prototype.closest = function(a, b) {
var c = this.dbOpposite;
if (c.length) {
var e = this.y,
f = this.x;
this.x = f + b.x;
this.y = e + b.y;
for (var g = Op(c, this), h = null, m = a, n, p = g - 1; 0 <= p && Math.abs(c[p].y - this.y) <= a;) n = c[p], this.isConnectionAllowed(n, m) && (h = n, m = Kp(n, this)), p--;
for (; g < c.length && Math.abs(c[g].y - this.y) <= a;) n = c[g], this.isConnectionAllowed(n, m) && (h = n, m = Kp(n, this)), g++;
this.x = f;
this.y = e;
c = {
connection: h,
radius: m
}
} else c = {
connection: null,
radius: a
};
return c
};
var fo = function(a) {
go(a, !1);
var b = [];
if (1 != a.type && 3 != a.type) return b;
if (a = S(a)) {
if (a.Blockly_Block$collapsed) {
var c = [];
a.outputConnection && c.push(a.outputConnection);
a.nextConnection && c.push(a.nextConnection);
a.previousConnection && c.push(a.previousConnection)
} else c = a.getConnections(!0);
for (var e = 0; e < c.length; e++) b.push.apply(b, fo(c[e]));
b.length || (b[0] = a)
}
return b
},
go = function(a, b) {
(a.Blockly_Connection_prototype$hidden = b) && a.inDB ? dj(a.Blockly_Connection_prototype$db, a) : b || a.inDB || Lp(a.Blockly_Connection_prototype$db,
a)
};
d = Jp.prototype;
d.isConnectionAllowed = function(a, b) {
return Kp(this, a) > b ? !1 : Jp.superClass_.isConnectionAllowed.call(this, a)
};
d.disconnectInternal = function(a, b) {
Jp.superClass_.disconnectInternal.call(this, a, b);
a.rendered && a.render();
b.rendered && (Pp(b), b.render())
};
d.respawnShadow = function() {
var a = this.Blockly_Connection$sourceBlock,
b = this.shadowDom_;
if (a.workspace && b && Zi) {
Jp.superClass_.respawnShadow.call(this);
b = S(this);
if (!b) throw "Couldn't respawn the shadow block that should exist here.";
b.initSvg();
b.render(!1);
a.rendered && a.render()
}
};
d.neighbours = function(a) {
return Qp(this.dbOpposite, this, a)
};
d.connectInternal = function(a) {
Jp.superClass_.connectInternal.call(this, a);
var b = this.Blockly_Connection$sourceBlock;
a = a.Blockly_Connection$sourceBlock;
b.rendered && Pp(b);
a.rendered && Pp(a);
b.rendered && a.rendered && (3 == this.type || 4 == this.type ? a.render() : b.render())
};
d.onCheckChanged = function() {
this.targetConnection && !Yi(this, this.targetConnection) && (mj(gj(this) ? S(this) : this.Blockly_Connection$sourceBlock), ik(this.Blockly_Connection$sourceBlock))
};
var Rp = function(a) {
Rp.superClass_.constructor.call(this, a);
Ii(this);
this.text_ = {}
};
w(Rp, Gi);
Rp.prototype.drawIcon_ = function(a) {
O("path", {
"class": "blocklyIconShape",
d: "M2,15Q-1,15 0.5,12L6.5,1.7Q8,-1 9.5,1.7L15.5,12Q17,15 14,15z"
}, a);
O("path", {
"class": "blocklyIconSymbol",
d: "m7,4.8v3.16l0.27,2.27h1.46l0.27,-2.27v-3.16z"
}, a);
O("rect", {
"class": "blocklyIconSymbol",
x: "7",
y: "11",
height: "2",
width: "2"
}, a)
};
var Qi = function(a) {
var b = O("text", {
"class": "blocklyText blocklyBubbleText",
y: 6
}, null);
a = a.split("\n");
for (var c = 0; c < a.length; c++) O("tspan", {
dy: "1em",
x: 6
}, b).appendChild(document.createTextNode(a[c]));
return b
};
Rp.prototype.setVisible = function(a) {
if (a != this.isVisible())
if (P(new Oi(this.block_, "warningOpen", !a, a)), a) {
a = Qi(Sp(this));
this.bubble = new ui(this.block_.workspace, a, this.block_.svgPath_, null, null, null);
if (this.block_.RTL)
for (var b = a.getBBox().width, c = 0, e; e = a.childNodes[c]; c++) e.setAttribute("text-anchor", "end"), e.setAttribute("x", b + 6);
Ki(this);
a = this.bubble.getBubbleSize();
this.bubble.setBubbleSize(a.width, a.height)
} else this.bubble.dispose(), this.bubble = null
};
var Tp = function(a, b, c) {
a.text_[c] != b && (b ? a.text_[c] = b : delete a.text_[c], a.isVisible() && (a.setVisible(!1), a.setVisible(!0)))
},
Sp = function(a) {
var b = [],
c;
for (c in a.text_) b.push(a.text_[c]);
return b.join("\n")
};
Rp.prototype.dispose = function() {
this.block_.warning = null;
Gi.prototype.dispose.call(this)
};
var X = function(a, b, c) {
this.svgGroup = O("g", {}, null);
this.maskIdTop = Math.floor(1E3 * Math.random());
this.maskIdBottom = Math.floor(1E3 * Math.random());
this.svgShadowClipPathBottom_ = O("clipPath", {
"class": "clippingPath",
id: "bottomClip" + this.maskIdBottom
}, this.svgGroup);
this.svgShadowClipRectBottom_ = O("rect", {
"class": "clippingRectangle"
}, this.svgShadowClipPathBottom_);
this.svgShadowClipPathTop_ = O("clipPath", {
"class": "clippingPath",
id: "topClip" + this.maskIdTop
}, this.svgGroup);
this.svgShadowClipRectTop_ = O("rect", {
"class": "clippingRectangle"
}, this.svgShadowClipPathTop_);
this.svgShadowPathBottom_ = O("path", {
"class": "shadowPathBottom"
}, this.svgGroup);
this.svgShadowPathTop_ = O("path", {
"class": "shadowPathTop"
}, this.svgGroup);
this.svgPath_ = O("path", {
"class": "blocklyPath blocklyBlockBackground"
}, this.svgGroup);
this.svgPath_.tooltip = this;
this.rendered = !1;
this.inputShapes_ = {};
this.useDragSurface_ = Ak() && a.blockDragSurface;
Km(this.svgPath_);
X.superClass_.constructor.call(this, a, b, c)
};
w(X, oi);
d = X.prototype;
d.height = 0;
d.width = 0;
d.opacity_ = 1;
d.dragStartXY_ = null;
d.initSvg = function() {
if (!this.isInsertionMarker_) {
for (var a = 0, b; b = this.inputList[a]; a++) b.init(), 1 === b.type && (this.inputShapes_[b.name] || b.connection.shadowDom_ || (this.inputShapes_[b.name] = O("path", {
"class": "blocklyPath",
style: "visibility: hidden"
}, this.svgGroup)));
b = ho(this);
for (a = 0; a < b.length; a++) Ii(b[a])
}
po(this);
Up(this);
if (!this.workspace.options.readOnly && !this.eventsInit_) {
N(this.getSvgRoot(), "mousedown", this, this.onMouseDown_);
var c = this;
T(this.getSvgRoot(), "touchstart", null, function(a) {
Lh(a,
c)
})
}
this.eventsInit_ = !0;
this.getSvgRoot().parentNode || this.workspace.svgBlockCanvas_.appendChild(this.getSvgRoot())
};
var Ip = function(a) {
if (a.isShadowBlock && a.parentBlock) Ip(a.parentBlock);
else if (lo != a) {
var b = null;
if (lo) {
b = lo.id;
Q++;
try {
Vp(lo)
} finally {
Q--
}
}
b = new Oi(null, "selected", b, a.id);
b.workspaceId = a.workspace.id;
P(b);
lo = a;
a.addSelect()
}
},
Vp = function(a) {
if (lo == a) {
var b = new Oi(null, "selected", a.id, void 0);
b.workspaceId = a.workspace.id;
P(b);
lo = null;
a.removeSelect()
}
};
X.prototype.mutator = null;
X.prototype.comment = null;
X.prototype.warning = null;
var ho = function(a) {
var b = [];
a.comment && b.push(a.comment);
a.warning && b.push(a.warning);
return b
},
Wp = null,
Xp = null,
dq = function() {
Wp && (Oh(Wp), Wp = null);
Xp && (Oh(Xp), Xp = null);
var a = lo;
if (2 == Yn && a) {
Yp ? Zp() : $p && (Q++, ij && aq(), $p.dispose(), $p = null, Q--);
var b = a.getRelativeToSurfaceXY();
b = Ze(b, a.dragStartXY_);
var c = new aj(a);
c.oldCoordinate = a.dragStartXY_;
cj(c);
P(c);
Mp(a, b.x, b.y);
delete a.draggedBubbles_;
bq(a, !1);
cq(a);
a.render();
a.workspace.setResizesEnabled(!0);
var e = bi;
setTimeout(function() {
ci(e);
if (a.workspace &&
0 == Yn && !a.parentBlock && !a.isInFlyout && a.workspace.options.gridOptions && a.workspace.options.gridOptions.snap) {
var b = a.workspace.options.gridOptions.spacing,
c = b / 2,
h = a.getRelativeToSurfaceXY(),
m = Math.round((h.x - c) / b) * b + c - h.x;
b = Math.round((h.y - c) / b) * b + c - h.y;
m = Math.round(m);
b = Math.round(b);
0 == m && 0 == b || a.moveBy(m, b)
}
ci(!1)
}, 0);
setTimeout(function() {
ci(e);
ik(a);
ci(!1)
}, 0)
}
Yn = 0;
Nh("handopen")
};
X.prototype.Blockly_Block_prototype$setParent = function(a) {
if (a != this.parentBlock) {
var b = this.getSvgRoot();
if (this.parentBlock && b) {
var c = this.getRelativeToSurfaceXY();
lo != this && (this.workspace.svgBlockCanvas_.appendChild(b), this.translate(c.x, c.y))
}
fk();
X.superClass_.Blockly_Block_prototype$setParent.call(this, a);
gk();
a && (c = this.getRelativeToSurfaceXY(), a.getSvgRoot().appendChild(b), b = this.getRelativeToSurfaceXY(), Mp(this, b.x - c.x, b.y - c.y), this.isShadowBlock && this.setColour(this.colour_, this.colourSecondary_,
a.colourTertiary_))
}
};
X.prototype.getRelativeToSurfaceXY = function() {
var a = 0,
b = 0,
c = this.useDragSurface_ ? this.workspace.blockDragSurface.Blockly_BlockDragSurfaceSvg_prototype$dragGroup_ : null,
e = this.getSvgRoot();
if (e) {
do {
var f = nk(e);
a += f.x;
b += f.y;
this.useDragSurface_ && this.workspace.blockDragSurface.Blockly_BlockDragSurfaceSvg_prototype$dragGroup_.firstChild == e && (f = this.workspace.blockDragSurface.getSurfaceTranslation(), a += f.x, b += f.y);
e = e.parentNode
} while (e && e != this.workspace.svgBlockCanvas_ && e != c)
}
return new A(a, b)
};
X.prototype.moveBy = function(a, b) {
var c = 0 == Q;
if (c) var e = new aj(this);
var f = this.getRelativeToSurfaceXY();
this.translate(f.x + a, f.y + b);
Mp(this, a, b);
c && (cj(e), P(e));
eq(this.workspace)
};
X.prototype.translate = function(a, b, c) {
c ? this.getSvgRoot().setAttribute("style", "transform: translate3d(" + a + "px," + b + "px, 0px)") : this.getSvgRoot().setAttribute("transform", "translate(" + a + "," + b + ")")
};
var fq = function(a) {
if (a.useDragSurface_) {
var b = a.getRelativeToSurfaceXY();
a.getSvgRoot().removeAttribute("transform");
a.workspace.blockDragSurface.translateSurface(b.x, b.y);
b = a.workspace.blockDragSurface;
b.Blockly_BlockDragSurfaceSvg_prototype$dragGroup_.appendChild(a.getSvgRoot());
b.Blockly_BlockDragSurfaceSvg_prototype$SVG_.style.display = "block";
document.getElementsByClassName("injectionDiv")[0].style.overflow = "visible"
}
},
gq = function(a) {
var b = a.getRelativeToSurfaceXY(),
c = Mk(a);
a.RTL ? (a = new A(b.x -
c.width, b.y), b = new A(b.x, b.y + c.height)) : (a = new A(b.x, b.y), b = new A(b.x + c.width, b.y + c.height));
return {
topLeft: a,
bottomRight: b
}
};
X.prototype.setCollapsed = function(a) {
if (this.Blockly_Block$collapsed != a) {
for (var b = [], c = 0, e; e = this.inputList[c]; c++) b.push.apply(b, e.setVisible(!a));
if (a) {
e = ho(this);
for (c = 0; c < e.length; c++) e[c].setVisible(!1);
c = this.toString(30);
eo(this.appendInput(5, "_TEMP_COLLAPSED_INPUT"), c).init()
} else this.removeInput("_TEMP_COLLAPSED_INPUT"), this.setWarningText(null);
X.superClass_.setCollapsed.call(this, a);
b.length || (b[0] = this);
if (this.rendered)
for (c = 0; a = b[c]; c++) a.render()
}
};
X.prototype.tab = function(a, b) {
for (var c = [], e = 0, f; f = this.inputList[e]; e++) {
for (var g = 0, h; h = f.fieldRow[g]; g++) h instanceof Dk && c.push(h);
f.connection && (f = S(f.connection)) && c.push(f)
}
e = c.indexOf(a); - 1 == e && (e = b ? -1 : c.length);
(c = c[b ? e + 1 : e - 1]) ? c instanceof Wj ? c.showEditor() : c.tab(null, b): (c = this.parentBlock) && c.tab(this, b)
};
X.prototype.onMouseDown_ = function(a) {
if (!this.workspace.options.readOnly)
if (this.isInFlyout) "touchstart" == a.type && Ai(a) && (hq(), L(!0), ei(), Di(!0), iq(this, a), J = null, a.stopPropagation(), a.preventDefault());
else {
this.isInMutator && this.workspace.resize();
var b = this.workspace,
c = jg(document);
Ye(b.lastRecordedPageScroll_, c) || (b.lastRecordedPageScroll_ = c, jq(b), kq(b));
this.workspace.markFocused();
hq();
Ip(this);
Di();
ei();
if (Ai(a)) iq(this, a), J = null;
else if (jj(this)) {
bi || ci(!0);
this.dragStartXY_ = this.getRelativeToSurfaceXY();
Ci(this.workspace, a, this.dragStartXY_);
Yn = 1;
Wp = N(document, "mouseup", this, this.Blockly_BlockSvg_prototype$onMouseUp_);
Xp = N(document, "mousemove", this, this.onMouseMove_);
this.draggedBubbles_ = [];
b = this.getDescendants();
c = 0;
for (var e; e = b[c]; c++) {
e = ho(e);
for (var f = 0; f < e.length; f++) {
var g = e[f].iconXY_;
g.bubble = e[f];
this.draggedBubbles_.push(g)
}
}
} else return;
a.stopPropagation();
a.preventDefault()
}
};
X.prototype.Blockly_BlockSvg_prototype$onMouseUp_ = function(a) {
var b = !!Zn || !!Nj;
J = null;
2 == Yn || b || (P(new Oi(this, "click", void 0, void 0)), P(new Oi(no(qi(this.workspace, this.id)), "stackclick", void 0, void 0)));
hq();
a = lq(this.workspace, a);
lo && ej && 2 != a ? (fj.connect(ej), this.svgShadowPathTop_.setAttribute("fill-opacity", 0), this.rendered && mq((gj(fj) ? ej : fj).Blockly_Connection$sourceBlock.workspace, "click"), this.workspace.trashcan && this.workspace.trashcan.close()) : a && !this.parentBlock && oo(lo) && ((a = this.workspace.trashcan) &&
ue(a.close, 100, a), lo.dispose(!1, !0));
ej && (ej = null);
Nh("handopen");
Zn || ci(!1)
};
var iq = function(a, b) {
if (!a.workspace.options.readOnly && a.Blockly_Block$contextMenu) {
var c = [];
if (oo(a) && jj(a) && !a.isInFlyout) {
c.push({
text: M.DUPLICATE_BLOCK,
enabled: !0,
callback: function() {
var b = nq,
c = oq;
pq(a);
qq(a.workspace);
nq = b;
oq = c
}
});
if (Pi(a) && a.workspace.options.comments) {
var e = {
enabled: !z
};
a.comment ? (e.text = M.REMOVE_COMMENT, e.callback = function() {
a.setCommentText(null)
}) : (e.text = M.ADD_COMMENT, e.callback = function() {
a.setCommentText("")
});
c.push(e)
}
e = a.getDescendants(!0).length;
var f = Xi(a);
f && (e -=
f.getDescendants(!0).length);
e = {
text: 1 == e ? M.DELETE_BLOCK : M.DELETE_X_BLOCKS.replace("%1", String(e)),
enabled: !0,
callback: function() {
ci(!0);
a.dispose(!0, !0);
ci(!1)
}
};
c.push(e)
}
e = {
enabled: !(Ba(a.helpUrl) ? !a.helpUrl() : !a.helpUrl)
};
e.text = M.HELP;
e.callback = function() {
var b = Ba(a.helpUrl) ? a.helpUrl() : a.helpUrl;
b && alert(b)
};
c.push(e);
a.customContextMenu && !a.isInFlyout && a.customContextMenu(c);
Hp.show(b, c, a.RTL);
Hp.currentBlock = a
}
},
Mp = function(a, b, c) {
if (a.rendered) {
for (var e = a.getConnections(!1), f = 0; f < e.length; f++) e[f].moveBy(b,
c);
e = ho(a);
for (f = 0; f < e.length; f++) {
var g = e[f],
h = g.block_.getRelativeToSurfaceXY(),
m = nk(g.iconGroup_);
h = new A(h.x + m.x + 8.5, h.y + m.y + 8.5);
Ye(g.iconXY_, h) || (g.iconXY_ = h, g.isVisible() && (g = g.bubble_, g.anchorXY_ = h, g.rendered_ && si(g)))
}
for (f = 0; f < a.childBlocks.length; f++) Mp(a.childBlocks[f], b, c)
}
},
bq = function(a, b) {
if (b) {
var c = a.getSvgRoot();
c.translate_ = "";
c.skew_ = "";
kj = kj.concat(a.getConnections(!0));
Hi(a.svgGroup, "blocklyDragging")
} else kj = [], ak(a.svgGroup, "blocklyDragging");
for (c = 0; c < a.childBlocks.length; c++) bq(a.childBlocks[c],
b)
},
cq = function(a) {
var b = a.getRelativeToSurfaceXY();
a.getSvgRoot().removeAttribute("transform");
a.translate(b.x, b.y, !1);
a.workspace.blockDragSurface.clearAndHide(a.workspace.svgBlockCanvas_)
};
X.prototype.onMouseMove_ = function(a) {
if ("mousemove" == a.type && 1 >= a.clientX && 0 == a.clientY && 0 == a.button) a.stopPropagation();
else {
var b = this.getRelativeToSurfaceXY(),
c = Ei(this.workspace, a),
e;
if (e = 1 == Yn) {
e = b.x - c.x;
var f = b.y - c.y;
e = 3 < Math.sqrt(e * e + f * f) * this.workspace.scale
}
e && (Nh("handclosed"), Yn = 2, Kh(), this.workspace.setResizesEnabled(!1), L(!0), ei(), this.parentBlock && mj(this), bq(this, !0), fq(this));
if (2 == Yn) {
b = Ze(b, this.dragStartXY_);
e = this.getSvgRoot();
this.useDragSurface_ ? this.workspace.blockDragSurface.translateSurface(c.x,
c.y) : (e.translate_ = "translate(" + c.x + "," + c.y + ")", e.setAttribute("transform", e.translate_ + e.skew_));
for (f = 0; f < this.draggedBubbles_.length; f++) e = this.draggedBubbles_[f], c = e.bubble, e = new A(e.x + b.x, e.y + b.y), c.iconXY_ = e, c.isVisible() && (c = c.bubble_, c.anchorXY_ = e, c.rendered_ && si(c));
var g = this.getConnections(!1);
(c = mo(this)) && c != this.nextConnection && g.push(c);
var h = null;
e = null;
var m = 48;
fj && ej && (m = 96);
for (f = 0; f < g.length; f++) {
var n = g[f],
p = n.closest(m, b);
p.connection && (h = p.connection, e = n, m = p.radius)
}
f = !0;
e &&
2 == e.type ? f = !0 : fj && ej && (g = fj.x + b.x - ej.x, b = fj.y + b.y - ej.y, b = Math.sqrt(g * g + b * b), h && m > b - 20 && (f = !1));
if (f) {
b = h;
f = e;
c = e == c;
Q++;
ej && ej != b && (Yp ? Zp() : $p && ij && aq(), $p && (c && fj.Blockly_Connection$sourceBlock == this || !c && fj.Blockly_Connection$sourceBlock != this) && ($p.dispose(), $p = null), fj = ej = null);
c = lq(this.workspace, a);
e = lo && b && 2 != c;
c && !this.parentBlock && oo(lo) && !e ? (Nh("handdelete"), 1 == c && this.workspace.trashcan && rq(this.workspace.trashcan, !0), c = !0) : (Nh("handclosed"), this.workspace.trashcan && rq(this.workspace.trashcan,
!1), c = !1);
if (!c && b && b != ej && !b.Blockly_Connection$sourceBlock.isInsertionMarker_)
if (ej = b, fj = f, 2 == f.type || 4 == f.type && b.targetConnection && !this.nextConnection) S(b) ? (Yp = S(b), sq(!0)) : 2 == f.type && (Yp = b.Blockly_Connection$sourceBlock);
else {
c = fj.Blockly_Connection$sourceBlock;
$p || ($p = this.workspace.newBlock(c.type), $p.setInsertionMarker(!0), $p.initSvg());
c = $p;
a: {
h = f.Blockly_Connection$sourceBlock;e = c.getConnections(!0);h = h.getConnections(!0);
if (e.length != h.length) throw "Connection lists did not match in length.";
for (m = 0; m < h.length; m++)
if (h[m] == f) {
e = e[m];
break a
} e = null
}
e != ij && (c.rendered = !0, c.render(), c.getSvgRoot().setAttribute("visibility", "visible"), 3 == e.type && (f = b.x - e.x, h = b.y - e.y, e == Vi(c) && (h -= Mk(b.Blockly_Connection$sourceBlock, !0).height - 64), c.moveBy(f, h)), e.connect(b), ij = e)
} Q--;
oo(this) && lq(this.workspace, a)
}
}
a.stopPropagation();
a.preventDefault()
}
};
var Zp = function() {
(1 != ej.type || ej.targetConnection) && sq(!1);
Yp = null
},
aq = function() {
if (ij != $p.nextConnection || $p.previousConnection && $p.previousConnection.targetConnection)
if (3 == ij.type && ij != $p.nextConnection) {
var a = ij.targetConnection;
mj(a.Blockly_Connection$sourceBlock, !1);
var b = $p.previousConnection ? $p.previousConnection.targetConnection : null;
mj($p, !0);
b && b.connect(a)
} else mj($p, !0);
else mj(S(ij), !1);
if (ij.targetConnection) throw "insertionMarkerConnection still connected at the end of disconnectInsertionMarker";
ij = null;
$p.getSvgRoot().setAttribute("visibility", "hidden")
},
Up = function(a) {
jj(a) ? Hi(a.svgGroup, "blocklyDraggable") : ak(a.svgGroup, "blocklyDraggable")
};
d = X.prototype;
d.setMovable = function(a) {
X.superClass_.setMovable.call(this, a);
Up(this)
};
d.setEditable = function(a) {
X.superClass_.setEditable.call(this, a);
a = ho(this);
for (var b = 0; b < a.length; b++) a[b].updateEditable()
};
d.setShadow = function(a) {
X.superClass_.setShadow.call(this, a);
po(this)
};
d.setInsertionMarker = function(a) {
X.superClass_.setInsertionMarker.call(this, a);
po(this)
};
d.getSvgRoot = function() {
return this.svgGroup
};
d.dispose = function(a, b) {
if (this.workspace) {
Xn();
fk();
var c = this.workspace;
lo == this && (Vp(this), hq());
Hp.currentBlock == this && Hp.hide();
if (b && this.rendered) {
mj(this, a);
mq(this.workspace, "delete");
var e = this.workspace;
var f = this.svgGroup,
g = 0,
h = 0,
m = 1;
if (pg(e.svgBlockCanvas_, f) || pg(e.svgBubbleCanvas_, f)) m = e.scale;
do {
var n = nk(f);
if (f == e.svgBlockCanvas_ || f == e.svgBubbleCanvas_) m = 1;
g += n.x * m;
h += n.y * m;
f = f.parentNode
} while (f && f != Sj(e));
e = new A(g, h);
g = this.svgGroup.cloneNode(!0);
g.translateX_ = e.x;
g.translateY_ =
e.y;
g.setAttribute("transform", "translate(" + g.translateX_ + "," + g.translateY_ + ")");
Sj(this.workspace).appendChild(g);
g.bBox_ = g.getBBox();
tq(g, this.RTL, new Date, this.workspace.scale)
}
this.rendered = !1;
Q++;
try {
var p = ho(this);
for (e = 0; e < p.length; e++) p[e].dispose()
} finally {
Q--
}
X.superClass_.dispose.call(this, a);
C(this.svgGroup);
eq(c);
this.svgPath_ = this.svgGroup = null;
gk()
}
};
var tq = function(a, b, c, e) {
var f = (new Date - c) / 150;
1 < f ? C(a) : (a.setAttribute("transform", "translate(" + (a.translateX_ + (b ? -1 : 1) * a.bBox_.width * e / 2 * f) + "," + (a.translateY_ + a.bBox_.height * e * f) + ") scale(" + (1 - f) * e + ")"), setTimeout(function() {
tq(a, b, c, e)
}, 10))
};
X.prototype.setDisabled = function(a) {
this.disabled != a && (X.superClass_.setDisabled.call(this, a), this.rendered && Pp(this))
};
var Pp = function(a) {
var b;
if (!(b = a.disabled)) a: for (b = a;;) {
b: {
do {
var c = b;
b = b.parentBlock;
if (!b) {
b = null;
break b
}
} while (Xi(b) == c)
}
if (!b) {
b = !1;
break a
}
if (b.disabled) {
b = !0;
break a
}
}
b ? Hi(a.svgGroup, "blocklyDisabled") && a.svgPath_.setAttribute("fill", "url(#" + a.workspace.options.disabledPatternId + ")") : ak(a.svgGroup, "blocklyDisabled") && po(a);
a = a.getChildren();
for (b = 0; c = a[b]; b++) Pp(c)
};
X.prototype.getCommentText = function() {
return this.comment ? Ri(this.comment).replace(/\s+$/, "").replace(/ +\n/g, "\n") : ""
};
X.prototype.setCommentText = function(a) {
var b = !1;
u(a) ? (this.comment || (this.comment = new Li(this), b = !0), Si(this.comment, a)) : this.comment && (this.comment.dispose(), b = !0);
b && this.rendered && (this.render(), ik(this))
};
X.prototype.setWarningText = function(a, b) {
this.setWarningText.pid_ || (this.setWarningText.pid_ = Object.create(null));
var c = b || "";
if (c) this.setWarningText.pid_[c] && (clearTimeout(this.setWarningText.pid_[c]), delete this.setWarningText.pid_[c]);
else
for (var e in this.setWarningText.pid_) clearTimeout(this.setWarningText.pid_[e]), delete this.setWarningText.pid_[e];
if (2 == Yn) {
var f = this;
this.setWarningText.pid_[c] = setTimeout(function() {
f.workspace && (delete f.setWarningText.pid_[c], f.setWarningText(a, c))
}, 100)
} else {
this.isInFlyout &&
(a = null);
e = !1;
if (u(a)) this.warning || (this.warning = new Rp(this), e = !0), Tp(this.warning, a, c);
else if (this.warning && !c) this.warning.dispose(), e = !0;
else if (this.warning) {
e = Sp(this.warning);
Tp(this.warning, "", c);
var g = Sp(this.warning);
g || this.warning.dispose();
e = e != g
}
e && this.rendered && (this.render(), ik(this))
}
};
var uq = function(a, b) {
if (a.rendered)
if (b) a.svgPath_.setAttribute("filter", "url(#" + a.workspace.options.embossFilterId + ")");
else {
var c = a.svgPath_;
z && wd("10.0") ? c.setAttribute("filter", "") : c.removeAttribute("filter")
}
};
d = X.prototype;
d.addSelect = function() {
Hi(this.svgGroup, "blocklySelected");
var a = this;
do {
var b = a.getSvgRoot();
b.parentNode.appendChild(b);
a = a.parentBlock
} while (a)
};
d.removeSelect = function() {
ak(this.svgGroup, "blocklySelected")
};
d.setColour = function(a, b, c) {
X.superClass_.setColour.call(this, a, b, c);
this.rendered && po(this)
};
d.setPreviousStatement = function(a, b) {
X.superClass_.setPreviousStatement.call(this, a, b);
this.rendered && (this.render(), ik(this))
};
d.setNextStatement = function(a, b) {
X.superClass_.setNextStatement.call(this, a, b);
this.rendered && (this.render(), ik(this))
};
d.setOutput = function(a, b) {
X.superClass_.setOutput.call(this, a, b);
this.rendered && (this.render(), ik(this))
};
d.setInputsInline = function(a) {
X.superClass_.setInputsInline.call(this, a);
this.rendered && (this.render(), ik(this))
};
d.removeInput = function(a, b) {
X.superClass_.removeInput.call(this, a, b);
this.rendered && (this.render(), ik(this))
};
d.appendInput = function(a, b) {
var c = X.superClass_.appendInput.call(this, a, b);
this.rendered && (this.render(), ik(this));
return c
};
d.getConnections = function(a) {
var b = [];
if (a || this.rendered)
if (this.outputConnection && b.push(this.outputConnection), this.previousConnection && b.push(this.previousConnection), this.nextConnection && b.push(this.nextConnection), a || !this.Blockly_Block$collapsed) {
a = 0;
for (var c; c = this.inputList[a]; a++) c.connection && b.push(c.connection)
} return b
};
d.makeConnection = function(a) {
return new Jp(this, a)
};
var bi = "",
Zi = !0,
Q = 0,
pi = [],
P = function(a) {
0 == Q && (pi.length || setTimeout(vq, 0), pi.push(a))
},
vq = function() {
for (var a = wq(pi, !0), b = pi.length = 0, c; c = a[b]; b++) {
var e = Uh[c.workspaceId] || null;
if (e) {
c.recordUndo && (e.undoStack.push(c), e.redoStack.length = 0, 1024 < e.undoStack.length && e.undoStack.unshift());
for (var f = e.Blockly_Workspace$listeners_.slice(), g = 0; e = f[g]; g++) e(c)
}
}
},
wq = function(a, b) {
var c = gb(a);
b || c.reverse();
for (var e = 0, f; f = c[e]; e++)
for (var g = e + 1, h; h = c[g]; g++) f.type == h.type && f.blockId == h.blockId && f.workspaceId ==
h.workspaceId && ("move" == f.type ? (f.newParentId = h.newParentId, f.newInputName = h.newInputName, f.newCoordinate = h.newCoordinate, c.splice(g, 1), g--) : "change" == f.type && f.element == h.element && f.name == h.name ? (f.newValue = h.newValue, c.splice(g, 1), g--) : "ui" != f.type || "click" != h.element || "commentOpen" != f.element && "mutatorOpen" != f.element && "warningOpen" != f.element || (f.newValue = h.newValue, c.splice(g, 1), g--));
for (e = c.length - 1; 0 <= e; e--) c[e].isNull() && c.splice(e, 1);
b || c.reverse();
for (e = 1; f = c[e]; e++) "change" == f.type && "mutation" ==
f.element && c.unshift(c.splice(e, 1)[0]);
return c
},
ci = function(a) {
bi = "boolean" == typeof a ? a ? Th() : "" : a
},
xq = function(a) {
var b = [];
a = a.getDescendants();
for (var c = 0, e; e = a[c]; c++) b[c] = e.id;
return b
},
yq = function(a) {
a && (this.blockId = a.id, this.workspaceId = a.workspace.id);
this.Blockly_Events_Abstract$group = bi;
this.recordUndo = Zi
};
yq.prototype.isNull = function() {
return !1
};
yq.prototype.Blockly_Events_Abstract_prototype$run = function() {};
var jo = function(a) {
a && (jo.superClass_.constructor.call(this, a), this.Blockly_Events_Create$xml = a.workspace.rendered ? zq(a) : Wi(a), this.Blockly_Events_Create$ids = xq(a))
};
w(jo, yq);
jo.prototype.type = "create";
jo.prototype.Blockly_Events_Abstract_prototype$run = function(a) {
var b = Uh[this.workspaceId] || null;
if (a) a = B("xml"), a.appendChild(this.Blockly_Events_Create$xml), Aq(a, b);
else {
a = 0;
for (var c; c = this.Blockly_Events_Create$ids[a]; a++) {
var e = qi(b, c);
e ? e.dispose(!1, !1) : c == this.blockId && console.warn("Can't uncreate non-existant block: " + c)
}
}
};
var ko = function(a) {
if (a) {
if (a.parentBlock) throw "Connected blocks cannot be deleted.";
ko.superClass_.constructor.call(this, a);
this.oldXml = a.workspace.rendered ? zq(a) : Wi(a);
this.Blockly_Events_Delete$ids = xq(a)
}
};
w(ko, yq);
ko.prototype.type = "delete";
ko.prototype.Blockly_Events_Abstract_prototype$run = function(a) {
var b = Uh[this.workspaceId] || null;
if (a) {
a = 0;
for (var c; c = this.Blockly_Events_Delete$ids[a]; a++) {
var e = qi(b, c);
e ? e.dispose(!1, !1) : c == this.blockId && console.warn("Can't delete non-existant block: " + c)
}
} else a = B("xml"), a.appendChild(this.oldXml), Aq(a, b)
};
var Mi = function(a, b, c, e, f) {
a && (Mi.superClass_.constructor.call(this, a), this.element = b, this.name = c, this.Blockly_Events_Change$oldValue = e, this.newValue = f)
};
w(Mi, yq);
Mi.prototype.type = "change";
Mi.prototype.isNull = function() {
return this.Blockly_Events_Change$oldValue == this.newValue
};
Mi.prototype.Blockly_Events_Abstract_prototype$run = function(a) {
var b = qi(Uh[this.workspaceId] || null, this.blockId);
if (b) switch (b.mutator && b.mutator.setVisible(!1), a = a ? this.newValue : this.Blockly_Events_Change$oldValue, this.element) {
case "field":
(b = so(b, this.name)) ? (ck(b, a), b.Blockly_Field_prototype$setValue(a)) : console.warn("Can't set non-existant field: " + this.name);
break;
case "comment":
b.setCommentText(a || null);
break;
case "collapsed":
b.setCollapsed(a);
break;
case "disabled":
b.setDisabled(a);
break;
case "inline":
b.setInputsInline(a);
break;
case "mutation":
var c = "";
b.mutationToDom && (c = null);
b.domToMutation && (a = a || "<mutation></mutation>", Fp("<xml>" + a + "</xml>"));
P(new Mi(b, "mutation", null, c, a));
break;
default:
console.warn("Unknown change type: " + this.element)
} else console.warn("Can't change non-existant block: " + this.blockId)
};
var aj = function(a) {
a && (aj.superClass_.constructor.call(this, a), a = Bq(this), this.oldParentId = a.parentId, this.oldInputName = a.inputName, this.oldCoordinate = a.coordinate)
};
w(aj, yq);
aj.prototype.type = "move";
var cj = function(a) {
var b = Bq(a);
a.newParentId = b.parentId;
a.newInputName = b.inputName;
a.newCoordinate = b.coordinate
},
Bq = function(a) {
var b = qi(Uh[a.workspaceId] || null, a.blockId);
a = {};
var c = b.parentBlock;
if (c) {
a.parentId = c.id;
a: {
for (var e = 0, f; f = c.inputList[e]; e++)
if (f.connection && S(f.connection) == b) {
b = f;
break a
} b = null
}
b && (a.inputName = b.name)
} else a.coordinate = b.getRelativeToSurfaceXY();
return a
};
aj.prototype.isNull = function() {
return this.oldParentId == this.newParentId && this.oldInputName == this.newInputName && Ye(this.oldCoordinate, this.newCoordinate)
};
aj.prototype.Blockly_Events_Abstract_prototype$run = function(a) {
var b = Uh[this.workspaceId] || null,
c = qi(b, this.blockId);
if (c) {
var e = a ? this.newParentId : this.oldParentId,
f = a ? this.newInputName : this.oldInputName;
a = a ? this.newCoordinate : this.oldCoordinate;
var g = null;
if (e && (g = qi(b, e), !g)) {
console.warn("Can't connect to non-existant block: " + e);
return
}
c.parentBlock && mj(c);
if (a) f = c.getRelativeToSurfaceXY(), c.moveBy(a.x - f.x, a.y - f.y);
else {
c = c.outputConnection || c.previousConnection;
if (f) {
if (b = to(g, f)) var h = b.connection
} else 4 ==
c.type && (h = g.nextConnection);
h ? c.connect(h) : console.warn("Can't connect to non-existant input: " + f)
}
} else console.warn("Can't move non-existant block: " + this.blockId)
};
var Oi = function(a, b, c, e) {
Oi.superClass_.constructor.call(this, a);
this.element = b;
this.newValue = e;
this.recordUndo = !1
};
w(Oi, yq);
Oi.prototype.type = "ui";
var fi = {},
Jk = null,
Zn = null,
Cq = null,
Dq = null,
Eq = null,
Fq = 0,
Gk = function(a, b, c, e, f) {
L();
Zn = a;
Cq = va(c) ? c : null;
Dq = va(e) ? e : null;
Fq = null != f ? f : 0;
Jk.style.top = zj().y + "px";
Jk.style.direction = b ? "rtl" : "ltr";
Jk.style.display = "block"
},
L = function(a) {
Eq ? (window.clearTimeout(Eq), Dq && Dq(), Zn = Eq = Dq = null, Gq()) : Zn && (Cq && Cq(), Cq = null, Dq && !a ? Eq = window.setTimeout(L, 1E3 * Fq) : (Dq && Dq(), Zn = Dq = null, Gq()), ci(!1))
},
Gq = function() {
Jk.style.display = "none";
Jk.style.left = "";
Jk.style.top = "";
Jk.style.height = "";
ng(Jk)
},
Fk = function(a) {
Zn ==
a && L()
},
Im = function(a, b, c, e, f) {
b < e.y && (b = e.y);
f ? a > c.width + e.x && (a = c.width + e.x) : a < e.x && (a = e.x);
Jk.style.left = a + "px";
Jk.style.top = b + "px";
Jk.style.height = c.height + "px"
};
var K = null,
lo = null,
ej = null,
fj = null,
kj = [],
ij = null,
$p = null,
Yp = null,
nq = null,
oq = null,
Yn = 0,
Hq = function(a) {
return {
width: a.cachedWidth_,
height: a.cachedHeight_
}
},
Iq = function(a) {
for (; a.options.parentWorkspace;) a = a.options.parentWorkspace;
var b = Sj(a),
c = b.parentNode;
if (c) {
var e = c.offsetWidth;
c = c.offsetHeight;
b.cachedWidth_ != e && (b.setAttribute("width", e + "px"), b.cachedWidth_ = e);
b.cachedHeight_ != c && (b.setAttribute("height", c + "px"), b.cachedHeight_ = c);
a.resize()
}
},
Jq = function(a) {
if (!K.options.readOnly && !Bi(a))
if (27 ==
a.keyCode) Di(), Vj();
else if (8 == a.keyCode || 46 == a.keyCode) a.preventDefault();
else if (a.altKey || a.ctrlKey || a.metaKey)
if (lo && oo(lo) && jj(lo) && (67 == a.keyCode ? (Di(), pq(lo)) : 88 == a.keyCode && (pq(lo), Di(), lo.dispose(2 != Yn, !0), ej && (C(Ui.highlightedPath_), delete Ui.highlightedPath_, ej = null))), 86 == a.keyCode) nq && (ci(!0), qq(oq), ci(!1));
else if (90 == a.keyCode) {
Di();
a = a.shiftKey;
var b = K,
c = a ? b.redoStack : b.undoStack;
b = a ? b.undoStack : b.redoStack;
var e = c.pop();
if (e) {
for (var f = [e]; c.length && e.Blockly_Events_Abstract$group &&
e.Blockly_Events_Abstract$group == c[c.length - 1].Blockly_Events_Abstract$group;) f.push(c.pop());
for (c = 0; e = f[c]; c++) b.push(e);
f = wq(f, a);
Zi = !1;
for (c = 0; e = f[c]; c++) e.Blockly_Events_Abstract_prototype$run(a);
Zi = !0
}
}
},
hq = function() {
dq();
Kq()
},
pq = function(a) {
var b = Wi(a),
c = a.getRelativeToSurfaceXY();
b.setAttribute("x", a.RTL ? -c.x : c.x);
b.setAttribute("y", c.y);
nq = b;
oq = a.workspace
},
Di = function(a) {
Xn();
L();
a || (a = K, a.toolbox_ && a.toolbox_.flyout_ && a.toolbox_.flyout_.autoClose && a.toolbox_.setSelectedItem(null))
},
li =
function(a, b) {
window.alert(a);
b && b()
},
mi = function(a, b) {
b(window.confirm(a))
},
In = function(a, b, c) {
c(window.prompt(a, b))
},
N = function(a, b, c, e, f) {
var g = !1,
h = function(a) {
var b = !f;
a = Sh(a);
for (var h = 0, m; m = a[h]; h++) {
var n;
(n = !b) || (n = !(0 == m.type.lastIndexOf("touch", 0) || 0 == m.type.lastIndexOf("mouse", 0))) || (n = m.changedTouches && m.changedTouches[0] && void 0 != m.changedTouches[0].identifier && null != m.changedTouches[0].identifier ? m.changedTouches[0].identifier : "mouse", void 0 != J && null != J ? n = J == n : "mousedown" == m.type ||
"touchstart" == m.type ? (J = n, n = !0) : n = !1);
if (n) {
n = m;
if (0 == n.type.lastIndexOf("touch", 0)) {
var p = n.changedTouches[0];
n.clientX = p.clientX;
n.clientY = p.clientY
}
c ? e.call(c, m) : e(m);
g = !0
}
}
};
a.addEventListener(b, h, !1);
var m = [
[a, b, h]
];
if (b in Ih)
for (var n = function(a) {
h(a);
g && a.preventDefault()
}, p = 0, r; r = Ih[b][p]; p++) a.addEventListener(r, n, !1), m.push([a, r, n]);
return m
},
T = function(a, b, c, e) {
var f = function(a) {
c ? e.call(c, a) : e(a)
};
a.addEventListener(b, f, !1);
var g = [
[a, b, f]
];
if (b in Ih)
for (var h = function(a) {
if (1 == a.changedTouches.length) {
var b =
a.changedTouches[0];
a.clientX = b.clientX;
a.clientY = b.clientY
}
f(a);
a.preventDefault()
}, m = 0, n; n = Ih[b][m]; m++) a.addEventListener(n, h, !1), g.push([a, n, h]);
return g
},
Oh = function(a) {
for (; a.length;) {
var b = a.pop();
b[0].removeEventListener(b[1], b[2], !1)
}
};
q.console || (q.console = {
log: function() {},
warn: function() {}
});
q.Blockly || (q.Blockly = {});
q.Blockly.getMainWorkspace = function() {
return K
};
var Lq = function() {};
Lq.prototype = [];
var Lp = function(a, b) {
if (b.inDB) throw "Connection already in database.";
b.Blockly_Connection$sourceBlock.isInFlyout || (a.splice(Op(a, b), 0, b), b.inDB = !0)
},
Mq = function(a, b) {
if (!a.length) return -1;
var c = Op(a, b);
if (c >= a.length) return -1;
for (var e = b.y, f = c; 0 <= f && a[f].y == e;) {
if (a[f] == b) return f;
f--
}
for (; c < a.length && a[c].y == e;) {
if (a[c] == b) return c;
c++
}
return -1
},
Op = function(a, b) {
if (!a.length) return 0;
for (var c = 0, e = a.length; c < e;) {
var f = Math.floor((c + e) / 2);
if (a[f].y < b.y) c = f + 1;
else if (a[f].y > b.y) e = f;
else {
c = f;
break
}
}
return c
},
dj = function(a, b) {
if (!b.inDB) throw "Connection not in database.";
var c = Mq(a, b);
if (-1 == c) throw "Unable to find connection in connectionDB.";
b.inDB = !1;
a.splice(c, 1)
},
Qp = function(a, b, c) {
function e(a) {
var b = g - f[a].x,
e = h - f[a].y;
Math.sqrt(b * b + e * e) <= c && n.push(f[a]);
return e < c
}
var f = a,
g = b.x,
h = b.y;
a = 0;
for (var m = b = f.length - 2; a < m;) f[m].y < h ? a = m : b = m, m = Math.floor((a + b) / 2);
var n = [];
b = a = m;
if (f.length) {
for (; 0 <= a && e(a);) a--;
do b++; while (b < f.length && e(b))
}
return n
};
var Oq = function(a, b, c, e) {
this.workspace_ = a;
this.targetWorkspace_ = b;
this.text_ = c.getAttribute("text");
this.Blockly_FlyoutButton$position_ = new A(0, 0);
this.isLabel_ = e;
this.Blockly_FlyoutButton$callback_ = null;
a = c.getAttribute("callbackKey");
this.isLabel_ && a ? console.warn("Labels should not have callbacks. Label text: " + this.text_) : this.isLabel_ || a && Nq(b, a) ? this.Blockly_FlyoutButton$callback_ = Nq(b, a) : console.warn("Buttons should have callbacks. Button text: " + this.text_);
this.cssClass_ = c.getAttribute("web-class") ||
null
};
Oq.prototype.width = 0;
Oq.prototype.height = 0;
Oq.prototype.createDom = function() {
var a = this.isLabel_ ? "blocklyFlyoutLabel" : "blocklyFlyoutButton";
this.cssClass_ && (a += " " + this.cssClass_);
this.svgGroup_ = O("g", {
"class": a
}, this.workspace_.svgBlockCanvas_);
if (!this.isLabel_) var b = O("rect", {
"class": "blocklyFlyoutButtonShadow",
rx: 4,
ry: 4,
x: 1,
y: 1
}, this.svgGroup_);
a = O("rect", {
"class": this.isLabel_ ? "blocklyFlyoutLabelBackground" : "blocklyFlyoutButtonBackground",
rx: 4,
ry: 4
}, this.svgGroup_);
var c = O("text", {
"class": this.isLabel_ ? "blocklyFlyoutLabelText" : "blocklyText",
x: 0,
y: 0,
"text-anchor": "middle"
}, this.svgGroup_);
c.textContent = this.text_;
this.width = c.getComputedTextLength() + 10;
this.height = 20;
this.isLabel_ || (b.setAttribute("width", this.width), b.setAttribute("height", this.height));
a.setAttribute("width", this.width);
a.setAttribute("height", this.height);
c.setAttribute("x", this.width / 2);
c.setAttribute("y", this.height - 5);
Pq(this);
return this.svgGroup_
};
Oq.prototype.show = function() {
Pq(this);
this.svgGroup_.setAttribute("display", "block")
};
var Pq = function(a) {
a.svgGroup_.setAttribute("transform", "translate(" + a.Blockly_FlyoutButton$position_.x + "," + a.Blockly_FlyoutButton$position_.y + ")")
};
Oq.prototype.moveTo = function(a, b) {
this.Blockly_FlyoutButton$position_.x = a;
this.Blockly_FlyoutButton$position_.y = b;
Pq(this)
};
Oq.prototype.dispose = function() {
this.svgGroup_ && (C(this.svgGroup_), this.svgGroup_ = null);
this.targetWorkspace_ = this.workspace_ = null
};
Oq.prototype.onMouseUp = function(a) {
a.preventDefault();
a.stopPropagation();
Kq();
this.Blockly_FlyoutButton$callback_ && this.Blockly_FlyoutButton$callback_(this)
};
var Qq = function(a) {
a.getMetrics = this.getMetrics_.bind(this);
a.setMetrics = this.setMetrics_.bind(this);
this.workspace = new V(a);
this.workspace.isFlyout = !0;
this.RTL = !!a.RTL;
this.horizontalLayout = a.horizontalLayout;
this.toolboxPosition = a.toolboxPosition;
this.eventWrappers_ = [];
this.backgroundButtons = [];
this.buttons = [];
this.Blockly_Flyout$listeners = [];
this.permanentlyDisabled_ = [];
this.startDragMouseX = this.startDragMouseY = 0;
this.parentToolbox = null
},
Rq = null,
Sq = null,
Tq = null,
Uq = null,
Vq = null,
Wq = null;
d = Qq.prototype;
d.autoClose = !0;
d.Blockly_Flyout_prototype$isVisible_ = !1;
d.Blockly_Flyout_prototype$containerVisible_ = !0;
d.CORNER_RADIUS = 0;
d.MARGIN = 12;
d.GAP_X = 3 * Qq.prototype.MARGIN;
d.GAP_Y = Qq.prototype.MARGIN;
d.width = 0;
d.height = 0;
d.dragMode = 0;
d.createDom = function(a) {
this.svgGroup_ = O(a, {
"class": "blocklyFlyout",
style: "display: none"
}, null);
this.svgBackground_ = O("path", {
"class": "blocklyFlyoutBackground"
}, this.svgGroup_);
this.svgGroup_.appendChild(this.workspace.createDom());
return this.svgGroup_
};
d.init = function(a) {
this.targetWorkspace_ = a;
this.workspace.targetWorkspace = a;
this.scrollbar_ = new Xq(this.workspace, this.horizontalLayout, "blocklyFlyoutScrollbar");
this.position();
Array.prototype.push.apply(this.eventWrappers_, T(this.svgGroup_, "wheel", this, this.wheel_));
Array.prototype.push.apply(this.eventWrappers_, T(this.svgGroup_, "mousedown", this, this.onMouseDown_))
};
d.dispose = function() {
this.hide();
Oh(this.eventWrappers_);
this.scrollbar_ && (this.scrollbar_.dispose(), this.scrollbar_ = null);
this.workspace && (this.workspace.targetWorkspace = null, this.workspace.dispose(), this.workspace = null);
this.svgGroup_ && (C(this.svgGroup_), this.svgGroup_ = null);
this.targetWorkspace_ = this.svgBackground_ = this.parentToolbox = null
};
d.getWidth = function() {
return this.parentToolbox ? this.parentToolbox.getWidth() : this.DEFAULT_WIDTH
};
d.getHeight = function() {
return this.height
};
d.isVisible = function() {
return this.Blockly_Flyout_prototype$isVisible_
};
d.setVisible = function(a) {
var b = a != this.isVisible();
this.Blockly_Flyout_prototype$isVisible_ = a;
b && Yq(this)
};
d.setContainerVisible = function(a) {
var b = a != this.Blockly_Flyout_prototype$containerVisible_;
this.Blockly_Flyout_prototype$containerVisible_ = a;
b && Yq(this)
};
var Yq = function(a) {
var b = a.Blockly_Flyout_prototype$containerVisible_ ? a.isVisible() : !1;
a.svgGroup_.style.display = b ? "block" : "none";
a.scrollbar_.setContainerVisible(b)
};
Qq.prototype.hide = function() {
if (this.isVisible()) {
this.setVisible(!1);
for (var a = 0, b; b = this.Blockly_Flyout$listeners[a]; a++) Oh(b);
this.Blockly_Flyout$listeners.length = 0;
this.reflowWrapper_ && (this.workspace.removeChangeListener(this.reflowWrapper_), this.reflowWrapper_ = null)
}
};
Qq.prototype.show = function(a) {
this.workspace.setResizesEnabled(!1);
this.hide();
this.clearOldBlocks();
"string" == typeof a && (a = Zq(this.workspace.targetWorkspace, a)(this.workspace.targetWorkspace));
this.setVisible(!0);
for (var b = [], c = [], e = this.permanentlyDisabled_.length = 0, f; f = a[e]; e++)
if (f.tagName) {
var g = f.tagName.toUpperCase(),
h = this.horizontalLayout ? this.GAP_X : this.GAP_Y;
if ("BLOCK" == g) g = lj(f, this.workspace), g.disabled && this.permanentlyDisabled_.push(g), b.push({
type: "block",
block: g
}), f = parseInt(f.getAttribute("gap"),
10), c.push(isNaN(f) ? h : f);
else if ("SEP" == f.tagName.toUpperCase()) f = parseInt(f.getAttribute("gap"), 10), !isNaN(f) && 0 < c.length ? c[c.length - 1] = f : c.push(h);
else if ("BUTTON" == g || "LABEL" == g) f = new Oq(this.workspace, this.targetWorkspace_, f, "LABEL" == g), b.push({
type: "button",
button: f
}), c.push(h)
} this.layout_(b, c);
this.Blockly_Flyout$listeners.push(T(this.svgBackground_, "mouseover", this, function() {
for (var a = $h(this.workspace, !1), b = 0, c; c = a[b]; b++) c.removeSelect()
}));
this.workspace.setResizesEnabled(!0);
this.reflow();
this.position();
this.reflowWrapper_ = this.reflow.bind(this);
this.workspace.addChangeListener(this.reflowWrapper_)
};
Qq.prototype.clearOldBlocks = function() {
for (var a = $h(this.workspace, !1), b = 0, c; c = a[b]; b++) c.workspace == this.workspace && c.dispose(!1, !1);
for (b = 0; a = this.backgroundButtons[b]; b++) C(a);
for (b = this.backgroundButtons.length = 0; a = this.buttons[b]; b++) a.dispose();
this.buttons.length = 0
};
Qq.prototype.addBlockListeners = function(a, b, c) {
this.autoClose ? (this.Blockly_Flyout$listeners.push(N(a, "mousedown", null, $q(this, b))), this.Blockly_Flyout$listeners.push(N(c, "mousedown", null, $q(this, b)))) : (this.Blockly_Flyout$listeners.push(N(a, "mousedown", null, ar(this, b))), this.Blockly_Flyout$listeners.push(N(c, "mousedown", null, ar(this, b))));
this.Blockly_Flyout$listeners.push(T(a, "mouseover", b, b.addSelect));
this.Blockly_Flyout$listeners.push(T(a, "mouseout", b, b.removeSelect));
this.Blockly_Flyout$listeners.push(T(c,
"mouseover", b, b.addSelect));
this.Blockly_Flyout$listeners.push(T(c, "mouseout", b, b.removeSelect))
};
var ar = function(a, b) {
return function(c) {
Ai(c) ? (hq(), L(!0), ei(), Di(!0), iq(b, c), J = null) : (a.dragMode_ = 0, hq(), L(!0), ei(), Di(), a.startDragMouseY = c.clientY, a.startDragMouseX = c.clientX, Sq = c, Tq = b, Rq = a, Uq = T(document, "mouseup", a, a.Blockly_Flyout_prototype$onMouseUp_), Wq = T(document, "mousemove", a, a.onMouseMoveBlock_));
c.stopPropagation();
c.preventDefault()
}
};
Qq.prototype.onMouseDown_ = function(a) {
this.dragMode_ = 2;
Ai(a) ? J = null : (L(!0), ei(), Di(!0), this.dragMode_ = 2, this.startDragMouseY = a.clientY, this.startDragMouseX = a.clientX, Rq = this, Vq = T(document, "mousemove", this, this.Blockly_Flyout_prototype$onMouseMove), Uq = T(document, "mouseup", this, Kq), a.preventDefault(), a.stopPropagation())
};
Qq.prototype.Blockly_Flyout_prototype$onMouseUp_ = function() {
if (!Ji(this.workspace)) {
J = null;
var a = !!Zn || !!Nj;
this.autoClose ? $q(this, Tq)(Sq) : a || (P(new Oi(Tq, "click", void 0, void 0)), P(new Oi(Tq, "stackclick", void 0, void 0)))
}
hq()
};
Qq.prototype.Blockly_Flyout_prototype$onMouseMove = function(a) {
var b = this.getMetrics_();
if (this.horizontalLayout) {
if (!(0 > b.contentWidth - b.viewWidth)) {
var c = a.clientX - this.startDragMouseX;
this.startDragMouseX = a.clientX;
a = b.viewLeft - c;
a = Mb(a, b.contentWidth - b.viewWidth);
this.scrollbar_.set(a)
}
} else 0 > b.contentHeight - b.viewHeight || (c = a.clientY - this.startDragMouseY, this.startDragMouseY = a.clientY, a = b.viewTop - c, a = Mb(a, b.contentHeight - b.viewHeight), this.scrollbar_.set(a))
};
Qq.prototype.onMouseMoveBlock_ = function(a) {
if (!("mousemove" == a.type && 1 >= a.clientX && 0 == a.clientY && 0 == a.button)) {
Nh("handclosed");
var b = a.clientX - Sq.clientX;
var c = a.clientY - Sq.clientY;
2 == this.dragMode_ ? b = !1 : 10 > Math.sqrt(b * b + c * c) ? (this.dragMode_ = 1, b = !1) : this.isDragTowardWorkspace_(b, c) || !this.scrollbar_.isVisible() ? b = !0 : (this.dragMode_ = 2, b = !1);
Kh();
b ? $q(this, Tq)(Sq) : 2 == this.dragMode_ && this.Blockly_Flyout_prototype$onMouseMove(a)
}
a.stopPropagation()
};
var $q = function(a, b) {
return function(c) {
L(!0);
ei();
if (!Ai(c) && !b.disabled) {
Q++;
a.targetWorkspace_.setResizesEnabled(!1);
try {
var e = a.placeNewBlock_(b)
} finally {
Q--
}
0 == Q && (ci(!0), P(new jo(e)));
a.autoClose && a.hide();
e.onMouseDown_(c);
Yn = 2;
bq(e, !0);
fq(e)
}
}
},
Kq = function() {
Rq && (2 == Rq.dragMode && (J = null), Rq.dragMode = 0, Rq = null);
Uq && (Oh(Uq), Uq = null);
Wq && (Oh(Wq), Wq = null);
Vq && (Oh(Vq), Vq = null);
Tq = Sq = null
};
Qq.prototype.reflow = function() {
this.reflowWrapper_ && this.workspace.removeChangeListener(this.reflowWrapper_);
var a = $h(this.workspace, !1);
this.reflowInternal_(a);
this.reflowWrapper_ && this.workspace.addChangeListener(this.reflowWrapper_)
};
var cr = function(a) {
a = ai(a);
for (var b = [], c = [], e = 0; e < a.length; e++)
if (a[e].getProcedureDef) {
var f = [];
f[2] ? b.push(f) : c.push(f)
} c.sort(br);
b.sort(br);
return [c, b]
},
br = function(a, b) {
return a[0].toLowerCase().localeCompare(b[0].toLowerCase())
},
dr = function(a) {
function b(a, b) {
for (var e = 0; e < a.length; e++) {
var f = a[e][0],
g = a[e][1],
h = B("block");
h.setAttribute("type", b);
h.setAttribute("gap", 16);
var t = B("mutation");
t.setAttribute("name", f);
h.appendChild(t);
for (f = 0; f < g.length; f++) {
var x = B("arg");
x.setAttribute("name",
g[f]);
t.appendChild(x)
}
c.push(h)
}
}
var c = [];
if (H.procedures_defnoreturn) {
var e = B("block");
e.setAttribute("type", "procedures_defnoreturn");
e.setAttribute("gap", 16);
var f = B("field", null, M.PROCEDURES_DEFNORETURN_PROCEDURE);
f.setAttribute("name", "NAME");
e.appendChild(f);
c.push(e)
}
H.procedures_defreturn && (e = B("block"), e.setAttribute("type", "procedures_defreturn"), e.setAttribute("gap", 16), f = B("field", null, M.PROCEDURES_DEFRETURN_PROCEDURE), f.setAttribute("name", "NAME"), e.appendChild(f), c.push(e));
H.procedures_report &&
(e = B("block"), e.setAttribute("type", "procedures_report"), e.setAttribute("gap", 16), c.push(e));
c.length && c[c.length - 1].setAttribute("gap", 24);
a = cr(a);
b(a[0], "procedures_callnoreturn");
b(a[1], "procedures_callreturn");
return c
};
var fr = function(a) {
this.workspace_ = a;
this.hScroll = new Xq(a, !0, "blocklyMainWorkspaceScrollbar");
this.corner_ = this.vScroll = null;
a.addChangeListener(er(a))
};
fr.prototype.Blockly_ScrollbarPair_prototype$oldHostMetrics_ = null;
var er = function(a) {
return function() {
if (!Ji(a)) {
var b = a.getMetrics(),
c = b.viewTop + b.absoluteTop;
if (b.contentTop < c || b.contentTop + b.contentHeight > b.viewHeight + c)
for (var e = $h(a, !1), f = 0, g; g = e[f]; f++) {
var h = g.getRelativeToSurfaceXY(),
m = c + 25 - Mk(g).height - h.y;
0 < m && g.moveBy(0, m);
h = c + b.viewHeight - 25 - h.y;
0 > h && g.moveBy(0, h)
}
}
}
};
fr.prototype.dispose = function() {
this.corner_ && (C(this.corner_), this.corner_ = null);
this.Blockly_ScrollbarPair_prototype$oldHostMetrics_ = this.workspace_ = null;
this.hScroll.dispose();
this.hScroll = null;
this.vScroll && (this.vScroll.dispose(), this.vScroll = null)
};
fr.prototype.resize = function() {
var a = this.workspace_.getMetrics();
if (a) {
var b = !1;
this.Blockly_ScrollbarPair_prototype$oldHostMetrics_ && this.Blockly_ScrollbarPair_prototype$oldHostMetrics_.viewWidth == a.viewWidth && this.Blockly_ScrollbarPair_prototype$oldHostMetrics_.viewHeight == a.viewHeight && this.Blockly_ScrollbarPair_prototype$oldHostMetrics_.absoluteTop == a.absoluteTop && this.Blockly_ScrollbarPair_prototype$oldHostMetrics_.absoluteLeft == a.absoluteLeft ? this.Blockly_ScrollbarPair_prototype$oldHostMetrics_ &&
this.Blockly_ScrollbarPair_prototype$oldHostMetrics_.contentWidth == a.contentWidth && this.Blockly_ScrollbarPair_prototype$oldHostMetrics_.viewLeft == a.viewLeft && this.Blockly_ScrollbarPair_prototype$oldHostMetrics_.contentLeft == a.contentLeft || (b = !0) : b = !0;
b && this.hScroll.resize(a);
this.Blockly_ScrollbarPair_prototype$oldHostMetrics_ = a
}
};
fr.prototype.set = function(a) {
this.hScroll.set(a)
};
var Xq = function(a, b, c) {
this.workspace_ = a;
this.horizontal_ = b;
this.Blockly_Scrollbar$oldHostMetrics_ = null;
a = "blocklyScrollbar" + (this.horizontal_ ? "Horizontal" : "Vertical");
c && (a += " " + c);
this.outerSvg_ = O("svg", {
"class": a
}, null);
this.svgGroup_ = O("g", {}, this.outerSvg_);
this.svgBackground_ = O("rect", {
"class": "blocklyScrollbarBackground"
}, this.svgGroup_);
c = Math.floor((Fi - 5) / 2);
this.svgHandle_ = O("rect", {
"class": "blocklyScrollbarHandle",
rx: c,
ry: c
}, this.svgGroup_);
Bk(this.outerSvg_, Sj(this.workspace_));
this.Blockly_Scrollbar$position_ =
new A(0, 0);
b ? (this.svgBackground_.setAttribute("height", Fi), this.outerSvg_.setAttribute("height", Fi), this.svgHandle_.setAttribute("height", Fi - 5), this.svgHandle_.setAttribute("y", 2.5), this.lengthAttribute_ = "width", this.positionAttribute_ = "x") : (this.svgBackground_.setAttribute("width", Fi), this.outerSvg_.setAttribute("width", Fi), this.svgHandle_.setAttribute("width", Fi - 5), this.svgHandle_.setAttribute("x", 2.5), this.lengthAttribute_ = "height", this.positionAttribute_ = "y");
this.onMouseDownBarWrapper_ = N(this.svgBackground_,
"mousedown", this, this.onMouseDownBar_);
this.onMouseDownHandleWrapper_ = N(this.svgHandle_, "mousedown", this, this.onMouseDownHandle_)
},
gr, hr;
d = Xq.prototype;
d.origin_ = new A(0, 0);
d.originHasChanged_ = !0;
d.scrollViewSize_ = 0;
d.handleLength_ = 0;
d.handlePosition_ = 0;
d.Blockly_Scrollbar_prototype$isVisible_ = !0;
d.Blockly_Scrollbar_prototype$containerVisible_ = !0;
var Fi = 5;
Xq.prototype.dispose = function() {
ir();
Oh(this.onMouseDownBarWrapper_);
this.onMouseDownBarWrapper_ = null;
Oh(this.onMouseDownHandleWrapper_);
this.onMouseDownHandleWrapper_ = null;
C(this.outerSvg_);
this.workspace_ = this.svgHandle_ = this.svgBackground_ = this.svgGroup_ = this.outerSvg_ = null
};
var jr = function(a, b) {
a.handlePosition_ = b;
a.svgHandle_.setAttribute(a.positionAttribute_, a.handlePosition_)
},
kr = function(a, b) {
a.scrollViewSize_ = b;
a.outerSvg_.setAttribute(a.lengthAttribute_, a.scrollViewSize_);
a.svgBackground_.setAttribute(a.lengthAttribute_, a.scrollViewSize_)
};
fr.prototype.setContainerVisible = function(a) {
this.hScroll.setContainerVisible(a);
this.vScroll.setContainerVisible(a)
};
var lr = function(a, b, c) {
a.Blockly_Scrollbar$position_.x = b;
a.Blockly_Scrollbar$position_.y = c;
Ck(a.outerSvg_, "translate(" + (a.Blockly_Scrollbar$position_.x + a.origin_.x) + "px," + (a.Blockly_Scrollbar$position_.y + a.origin_.y) + "px)")
};
Xq.prototype.resize = function(a) {
if (!a && (a = this.workspace_.getMetrics(), !a)) return;
if (this.originHasChanged_) this.originHasChanged_ = !1;
else {
var b = this.Blockly_Scrollbar$oldHostMetrics_;
if (a && b && a.viewWidth == b.viewWidth && a.viewHeight == b.viewHeight && a.viewLeft == b.viewLeft && a.viewTop == b.viewTop && a.absoluteTop == b.absoluteTop && a.absoluteLeft == b.absoluteLeft && a.contentWidth == b.contentWidth && a.contentHeight == b.contentHeight && a.contentLeft == b.contentLeft && a.contentTop == b.contentTop) return
}
this.Blockly_Scrollbar$oldHostMetrics_ =
a;
if (this.horizontal_) {
kr(this, Math.max(0, a.viewWidth - 1));
lr(this, a.absoluteLeft + .5, a.absoluteTop + a.viewHeight - Fi - .5);
this.setVisible(this.scrollViewSize_ < a.contentWidth);
this.ratio_ = this.scrollViewSize_ / a.contentWidth;
if (-Infinity == this.ratio_ || Infinity == this.ratio_ || isNaN(this.ratio_)) this.ratio_ = 0;
this.handleLength_ = Math.max(0, a.viewWidth * this.ratio_);
this.svgHandle_.setAttribute(this.lengthAttribute_, this.handleLength_);
jr(this, mr(this, (a.viewLeft - a.contentLeft) * this.ratio_))
} else {
kr(this, Math.max(0,
a.viewHeight - 1));
b = a.absoluteLeft + .5;
this.workspace_.RTL || (b += a.viewWidth - Fi - 1);
lr(this, b, a.absoluteTop + .5);
this.setVisible(this.scrollViewSize_ < a.contentHeight);
this.ratio_ = this.scrollViewSize_ / a.contentHeight;
if (-Infinity == this.ratio_ || Infinity == this.ratio_ || isNaN(this.ratio_)) this.ratio_ = 0;
this.handleLength_ = Math.max(0, a.viewHeight * this.ratio_);
this.svgHandle_.setAttribute(this.lengthAttribute_, this.handleLength_);
jr(this, mr(this, (a.viewTop - a.contentTop) * this.ratio_))
}
nr(this)
};
Xq.prototype.isVisible = function() {
return this.Blockly_Scrollbar_prototype$isVisible_
};
Xq.prototype.setContainerVisible = function(a) {
var b = a != this.Blockly_Scrollbar_prototype$containerVisible_;
this.Blockly_Scrollbar_prototype$containerVisible_ = a;
b && or(this)
};
Xq.prototype.setVisible = function(a) {
var b = a != this.isVisible();
this.Blockly_Scrollbar_prototype$isVisible_ = a;
b && or(this)
};
var or = function(a) {
a.Blockly_Scrollbar_prototype$containerVisible_ && a.isVisible() ? a.outerSvg_.setAttribute("display", "block") : a.outerSvg_.setAttribute("display", "none")
};
Xq.prototype.onMouseDownBar_ = function(a) {
this.workspace_.markFocused();
J = null;
ir();
if (Ai(a)) a.stopPropagation();
else {
var b = qk(a, Sj(this.workspace_), this.workspace_.inverseScreenCTM_);
b = this.horizontal_ ? b.x : b.y;
var c = pk(this.svgHandle_);
c = this.horizontal_ ? c.x : c.y;
var e = this.handlePosition_,
f = .95 * this.handleLength_;
b <= c ? e -= f : b >= c + this.handleLength_ && (e += f);
L(!0);
ei();
jr(this, mr(this, e));
nr(this);
a.stopPropagation();
a.preventDefault()
}
};
Xq.prototype.onMouseDownHandle_ = function(a) {
this.workspace_.markFocused();
ir();
Ai(a) ? a.stopPropagation() : (this.startDragHandle = this.handlePosition_, pr(this.workspace_), this.startDragMouse = this.horizontal_ ? a.clientX : a.clientY, gr = N(document, "mouseup", this, this.onMouseUpHandle_), hr = N(document, "mousemove", this, this.onMouseMoveHandle_), L(!0), ei(), a.stopPropagation(), a.preventDefault())
};
Xq.prototype.onMouseMoveHandle_ = function(a) {
jr(this, mr(this, this.startDragHandle + ((this.horizontal_ ? a.clientX : a.clientY) - this.startDragMouse)));
nr(this)
};
Xq.prototype.onMouseUpHandle_ = function() {
Mh(this.workspace_);
J = null;
ir()
};
var ir = function() {
Di(!0);
gr && (Oh(gr), gr = null);
hr && (Oh(hr), hr = null)
},
mr = function(a, b) {
return b = 0 >= b || isNaN(b) || a.scrollViewSize_ < a.handleLength_ ? 0 : Math.min(b, a.scrollViewSize_ - a.handleLength_)
},
nr = function(a) {
var b = a.handlePosition_ / a.scrollViewSize_;
isNaN(b) && (b = 0);
var c = {};
a.horizontal_ ? c.x = b : c.y = b;
a.workspace_.setMetrics(c)
};
Xq.prototype.set = function(a) {
jr(this, mr(this, a * this.ratio_));
nr(this)
};
var qr = function(a, b, c) {
if (b != a.origin_.x || c != a.origin_.y) a.origin_ = new A(b, c), a.originHasChanged_ = !0
};
var rr = function(a) {
a.getMetrics = this.getMetrics_.bind(this);
a.setMetrics = this.setMetrics_.bind(this);
rr.superClass_.constructor.call(this, a);
this.horizontalLayout = !0
};
w(rr, Qq);
d = rr.prototype;
d.getMetrics_ = function() {
if (!this.isVisible()) return null;
try {
var a = this.workspace.svgBlockCanvas_.getBBox()
} catch (e) {
a = {
height: 0,
y: 0,
width: 0,
x: 0
}
}
var b = 2;
1 == this.toolboxPosition && (b = 0);
var c = this.height;
0 == this.toolboxPosition && (c += this.MARGIN);
return {
viewHeight: c,
viewWidth: this.width - 4,
contentHeight: a.height * this.workspace.scale + 2 * this.MARGIN,
contentWidth: a.width * this.workspace.scale + 2 * this.MARGIN,
viewTop: -this.workspace.scrollY,
viewLeft: -this.workspace.scrollX,
contentTop: a.y,
contentLeft: a.x,
absoluteTop: b,
absoluteLeft: 2
}
};
d.setMetrics_ = function(a) {
var b = this.getMetrics_();
b && (v(a.x) && (this.workspace.scrollX = -b.contentWidth * a.x), this.workspace.translate(this.workspace.scrollX + b.absoluteLeft, this.workspace.scrollY + b.absoluteTop))
};
d.position = function() {
if (this.isVisible()) {
var a = this.targetWorkspace_.getMetrics();
if (a) {
var b = this.horizontalLayout ? a.viewWidth - 0 : this.width - 0,
c = this.horizontalLayout ? this.height - 0 : a.viewHeight - 0,
e = ["M 0,0"];
0 == this.toolboxPosition ? (e.push("h", b + 0), e.push("v", c), e.push("a", 0, 0, 0, 0, 1, -0, 0), e.push("h", -1 * b), e.push("a", 0, 0, 0, 0, 1, -0, -0)) : (e.push("a", 0, 0, 0, 0, 1, 0, -0), e.push("h", b), e.push("a", 0, 0, 0, 0, 1, 0, 0), e.push("v", c), e.push("h", -b - 0));
e.push("z");
this.svgBackground_.setAttribute("d", e.join(" "));
b =
a.absoluteLeft;
3 == this.toolboxPosition && (b += a.viewWidth, b -= this.width);
c = a.absoluteTop;
1 == this.toolboxPosition && (c += a.viewHeight, c -= this.height);
this.horizontalLayout ? this.width = a.viewWidth : this.height = a.viewHeight;
this.svgGroup_.setAttribute("width", this.width);
this.svgGroup_.setAttribute("height", this.height);
Ck(this.svgGroup_, "translate(" + b + "px," + c + "px)");
this.scrollbar_ && (qr(this.scrollbar_, b, c), this.scrollbar_.resize());
this.svgGroup_.style.opacity = 1
}
}
};
d.scrollToStart = function() {
this.scrollbar_.set(this.RTL ? Infinity : 0)
};
d.wheel_ = function(a) {
var b = a.deltaX;
if (b) {
jd && (b *= 10);
var c = this.getMetrics_();
b = c.viewLeft + b;
b = Math.min(b, c.contentWidth - c.viewWidth);
b = Math.max(b, 0);
this.scrollbar_.set(b);
L(!0);
ei()
}
a.preventDefault();
a.stopPropagation()
};
d.layout_ = function(a, b) {
this.workspace.scale = this.targetWorkspace_.scale;
var c = this.MARGIN,
e = c;
this.RTL && (a = a.reverse());
for (var f = 0, g; g = a[f]; f++)
if ("block" == g.type) {
g = g.block;
for (var h = g.getDescendants(), m = 0, n; n = h[m]; m++) n.isInFlyout = !0;
h = g.getSvgRoot();
m = Mk(g);
n = e;
this.RTL && (n += m.width);
g.moveBy(n, c);
e += m.width + b[f];
m = O("rect", {
"fill-opacity": 0
}, null);
m.tooltip = g;
Km(m);
this.workspace.svgBlockCanvas_.insertBefore(m, g.getSvgRoot());
g.flyoutRect_ = m;
this.backgroundButtons[f] = m;
this.addBlockListeners(h,
g, m)
} else "button" == g.type && (g = g.button, h = g.createDom(), g.moveTo(e, c), g.show(), T(h, "mouseup", g, g.onMouseUp), this.buttons.push(g), e += g.width + b[f])
};
d.Blockly_Flyout_prototype$onMouseMove = function(a) {
var b = this.getMetrics_();
if (!(0 > b.contentWidth - b.viewWidth)) {
var c = a.clientX - this.startDragMouseX;
this.startDragMouseX = a.clientX;
a = b.viewLeft - c;
a = Mb(a, b.contentWidth - b.viewWidth);
this.scrollbar_.set(a)
}
};
d.isDragTowardWorkspace_ = function(a, b) {
var c = Math.atan2(b, a) / Math.PI * 180,
e = !1;
0 == this.toolboxPosition ? 160 > c && 20 < c && (e = !0) : -160 < c && -20 > c && (e = !0);
return e
};
d.placeNewBlock_ = function(a) {
var b = this.targetWorkspace_,
c = a.getSvgRoot();
if (!c) throw "originBlock is not rendered.";
c = pk(c);
var e = this.workspace.scrollX,
f = this.workspace.scale;
c.x += e / f - e;
3 == this.toolboxPosition && (e = b.getMetrics().viewWidth - this.width, f = b.scale, c.x += e / f - e);
e = this.workspace.scrollY;
f = this.workspace.scale;
c.y += e / f - e;
1 == this.toolboxPosition && (e = b.getMetrics().viewHeight - this.height, f = b.scale, c.y += e / f - e, c.x += c.x / f - c.x);
a = Wi(a);
a = lj(a, b);
f = a.getSvgRoot();
if (!f) throw "block is not rendered.";
f = pk(f);
f.x += b.scrollX / b.scale - b.scrollX;
f.y += b.scrollY / b.scale - b.scrollY;
b.toolbox_ && !b.scrollbar && (f.x += b.toolbox_.getWidth() / b.scale, f.y += b.toolbox_.getHeight() / b.scale);
a.moveBy(c.x - f.x, c.y - f.y);
return a
};
d.getClientRect = function() {
if (!this.svgGroup_) return null;
var a = this.svgGroup_.getBoundingClientRect(),
b = a.top;
a = a.height;
return 0 == this.toolboxPosition ? new vj(-1E9, b - 1E9, 2E9, 1E9 + a) : 1 == this.toolboxPosition ? new vj(-1E9, b, 2E9, 1E9 + a) : null
};
d.reflowInternal_ = function(a) {
this.workspace.scale = this.targetWorkspace_.scale;
for (var b = 0, c = 0, e; e = a[c]; c++) b = Math.max(b, Mk(e).height);
b += 1.5 * this.MARGIN;
b *= this.workspace.scale;
b += Fi;
if (this.height != b) {
for (c = 0; e = a[c]; c++) {
var f = Mk(e);
if (e.flyoutRect_) {
e.flyoutRect_.setAttribute("width", f.width);
e.flyoutRect_.setAttribute("height", f.height);
var g = e.getRelativeToSurfaceXY();
e.flyoutRect_.setAttribute("y", g.y);
e.flyoutRect_.setAttribute("x", this.RTL ? g.x - f.width : g.x);
e.flyoutRect_.setAttribute("y", g.y)
}
}
this.height =
b;
this.targetWorkspace_.resize()
}
};
var sr = function(a) {
a.getMetrics = this.getMetrics_.bind(this);
a.setMetrics = this.setMetrics_.bind(this);
sr.superClass_.constructor.call(this, a);
this.horizontalLayout = !1;
this.checkboxes_ = []
};
w(sr, Qq);
d = sr.prototype;
d.autoClose = !1;
d.DEFAULT_WIDTH = 250;
d.CHECKBOX_MARGIN = Qq.prototype.MARGIN;
d.init = function(a) {
sr.superClass_.init.call(this, a);
this.workspace.scale = a.scale
};
d.createDom = function(a) {
sr.superClass_.createDom.call(this, a);
this.defs_ = O("defs", {}, this.svgGroup_);
a = O("clipPath", {
id: "blocklyBlockMenuClipPath"
}, this.defs_);
this.clipRect_ = O("rect", {
id: "blocklyBlockMenuClipRect",
height: "0",
width: "0",
y: "0",
x: "0"
}, a);
this.workspace.svgGroup_.setAttribute("clip-path", "url(#blocklyBlockMenuClipPath)");
return this.svgGroup_
};
d.getMetrics_ = function() {
if (!this.isVisible()) return null;
try {
var a = this.workspace.svgBlockCanvas_.getBBox()
} catch (e) {
a = {
height: 0,
y: 0,
width: 0,
x: 0
}
}
var b = this.height - 4,
c = this.getWidth() - 2;
return {
viewHeight: b,
viewWidth: c,
contentHeight: a.height * this.workspace.scale + 2 * this.MARGIN,
contentWidth: a.width * this.workspace.scale + 2 * this.MARGIN,
viewTop: -this.workspace.scrollY,
viewLeft: -this.workspace.scrollX,
contentTop: a.y,
contentLeft: a.x,
absoluteTop: 2,
absoluteLeft: 0
}
};
d.setMetrics_ = function(a) {
var b = this.getMetrics_();
b && (v(a.y) && (this.workspace.scrollY = -b.contentHeight * a.y), this.workspace.translate(this.workspace.scrollX + b.absoluteLeft, this.workspace.scrollY + b.absoluteTop), this.clipRect_.setAttribute("height", b.viewHeight + "px"), this.clipRect_.setAttribute("width", b.viewWidth + "px"))
};
d.position = function() {
if (this.isVisible()) {
var a = this.targetWorkspace_.getMetrics();
if (a) {
this.width = this.getWidth();
if (this.parentToolbox) var b = this.parentToolbox.HtmlDiv.offsetLeft,
c = this.parentToolbox.HtmlDiv.offsetTop + this.parentToolbox.getHeight();
else b = 3 == this.toolboxPosition ? a.viewWidth - this.width : 0, c = 0;
this.height = a.viewHeight - c;
a = this.width;
var e = this.height,
f = 3 == this.toolboxPosition,
g = ["M 0,0"];
g.push("h", a);
g.push("a", 0, 0, 0, 0, f ? 0 : 1, f ? -0 : 0, 0);
g.push("v", Math.max(0, e - 0));
g.push("a", 0, 0,
0, 0, f ? 0 : 1, f ? 0 : -0, 0);
g.push("h", -a);
g.push("z");
this.svgBackground_.setAttribute("d", g.join(" "));
this.svgGroup_.setAttribute("width", this.width);
this.svgGroup_.setAttribute("height", this.height);
Ck(this.svgGroup_, "translate(" + b + "px," + c + "px)");
this.scrollbar_ && (qr(this.scrollbar_, b, c), this.scrollbar_.resize());
this.svgGroup_.style.opacity = 1
}
}
};
d.scrollToStart = function() {
this.scrollbar_.set(0)
};
d.wheel_ = function(a) {
var b = a.deltaY;
if (b) {
jd && (b *= 10);
var c = this.getMetrics_();
b = c.viewTop + b;
b = Math.min(b, c.contentHeight - c.viewHeight);
b = Math.max(b, 0);
this.scrollbar_.set(b);
L(!0);
ei()
}
a.preventDefault();
a.stopPropagation()
};
d.clearOldBlocks = function() {
sr.superClass_.clearOldBlocks.call(this);
for (var a = 0, b; b = this.checkboxes_[a]; a++) b.block.flyoutCheckbox = null, C(b.svgRoot);
this.checkboxes_ = []
};
d.addBlockListeners = function(a, b, c) {
sr.superClass_.addBlockListeners.call(this, a, b, c);
b.flyoutCheckbox && this.Blockly_Flyout$listeners.push(T(b.flyoutCheckbox.svgRoot, "mousedown", null, tr(b.flyoutCheckbox)))
};
d.layout_ = function(a, b) {
for (var c = this.MARGIN, e = this.getWidth() / this.workspace.scale, f = c, g = 0, h; h = a[g]; g++)
if ("block" == h.type) {
h = h.block;
for (var m = h.getDescendants(), n = 0, p; p = m[n]; n++) p.isInFlyout = !0;
m = h.getSvgRoot();
n = Mk(h);
p = h.getRelativeToSurfaceXY().x;
var r = e - this.MARGIN;
p = this.RTL ? r - p : c;
if (h.checkboxInFlyout_) {
r = h;
var t = c,
x = f,
fa = n,
R = r.getSvgRoot(),
Ga = 20 + this.CHECKBOX_MARGIN;
t = O("rect", {
"class": "blocklyFlyoutCheckbox",
height: 20,
width: 20,
x: this.RTL ? this.getWidth() / this.workspace.scale - Ga : t,
y: x + fa.height /
2 - 10
}, null);
x = {
svgRoot: t,
clicked: !1,
block: r
};
r.flyoutCheckbox = x;
this.workspace.svgBlockCanvas_.insertBefore(t, R);
this.checkboxes_.push(x);
p = this.RTL ? p - (20 + this.CHECKBOX_MARGIN) : p + (20 + this.CHECKBOX_MARGIN)
}
h.moveBy(p, f + 0);
r = h;
R = g;
p = O("rect", {
"fill-opacity": 0,
x: p,
y: f,
height: n.height,
width: n.width
}, null);
p.tooltip = r;
Km(p);
this.workspace.svgBlockCanvas_.insertBefore(p, r.getSvgRoot());
r.flyoutRect_ = p;
this.backgroundButtons[R] = p;
this.addBlockListeners(m, h, p);
f += n.height + b[g] + 0
} else "button" == h.type && (h =
h.button, m = h.createDom(), h.moveTo(c, f), h.show(), T(m, "mouseup", h, h.onMouseUp), this.buttons.push(h), f += h.height + b[g])
};
var tr = function(a) {
return function(b) {
a.clicked = !a.clicked;
a.clicked ? Hi(a.svgRoot, "checked") : ak(a.svgRoot, "checked");
b.stopPropagation();
b.preventDefault()
}
};
d = sr.prototype;
d.Blockly_Flyout_prototype$onMouseMove = function(a) {
var b = this.getMetrics_();
if (!(0 > b.contentHeight - b.viewHeight)) {
var c = a.clientY - this.startDragMouseY;
this.startDragMouseY = a.clientY;
a = b.viewTop - c;
a = Mb(a, b.contentHeight - b.viewHeight);
this.scrollbar_.set(a)
}
};
d.isDragTowardWorkspace_ = function(a, b) {
var c = Math.atan2(b, a) / Math.PI * 180,
e = !1;
if (2 == this.toolboxPosition) 70 > c && -70 < c && (e = !0);
else if (-110 > c || 110 < c) e = !0;
return e
};
d.placeNewBlock_ = function(a) {
var b = this.targetWorkspace_,
c = a.getSvgRoot();
if (!c) throw "originBlock is not rendered.";
c = pk(c);
var e = this.workspace.scale,
f = b.getMetrics();
3 == this.toolboxPosition && (f = f.viewWidth - this.width, c.x += f / e - f);
this.parentToolbox && (c.y += this.parentToolbox.getHeight() / b.scale - this.parentToolbox.getHeight(), f = this.parentToolbox.getWidth() / b.scale - this.parentToolbox.getWidth(), c.x = 3 == this.toolboxPosition ? c.x + f : c.x - f);
f = this.workspace.scrollY;
c.y += f / e - f;
a = Wi(a);
b.setResizesEnabled(!1);
a = lj(a, b);
f = a.getSvgRoot();
if (!f) throw "block is not rendered.";
f = pk(f);
f.x += b.scrollX / b.scale - b.scrollX;
f.y += b.scrollY / b.scale - b.scrollY;
a.moveBy((e * c.x - b.scale * f.x) / b.scale, (e * c.y - b.scale * f.y) / b.scale);
return a
};
d.getClientRect = function() {
if (!this.svgGroup_) return null;
var a = this.svgGroup_.getBoundingClientRect(),
b = a.left;
a = a.width;
return 2 == this.toolboxPosition ? new vj(b - 1E9, -1E9, 1E9 + a, 2E9) : new vj(b, -1E9, 1E9 + a, 2E9)
};
d.reflowInternal_ = function() {};
var ur = function(a) {
this.workspace_ = a;
this.RTL = a.options.RTL;
this.horizontalLayout_ = a.options.horizontalLayout;
this.toolboxPosition = a.options.toolboxPosition
};
d = ur.prototype;
d.width = 250;
d.height = 0;
d.Blockly_Toolbox_prototype$selectedItem_ = null;
d.init = function() {
var a = this.workspace_,
b = Sj(this.workspace_);
this.HtmlDiv = B("DIV", "blocklyToolboxDiv");
this.HtmlDiv.setAttribute("dir", a.RTL ? "RTL" : "LTR");
b.parentNode.insertBefore(this.HtmlDiv, b);
N(this.HtmlDiv, "mousedown", this, function(a) {
Vj();
Ai(a) || a.target == this.HtmlDiv ? Di(!1) : Di(!0);
J = null
});
vr(this);
this.categoryMenu_ = new wr(this, this.HtmlDiv);
this.populate(a.options.languageTree);
this.position()
};
d.dispose = function() {
this.flyout_.dispose();
this.categoryMenu_.dispose();
this.categoryMenu_ = null;
C(this.HtmlDiv);
this.workspace_ = null
};
var vr = function(a) {
var b = a.workspace_,
c = {
disabledPatternId: b.options.disabledPatternId,
parentWorkspace: b,
RTL: b.RTL,
oneBasedIndex: b.options.oneBasedIndex,
horizontalLayout: b.horizontalLayout,
toolboxPosition: b.options.toolboxPosition
};
b.horizontalLayout ? a.flyout_ = new rr(c) : a.flyout_ = new sr(c);
a.flyout_.parentToolbox = a;
c = a.flyout_.createDom("svg");
var e = Sj(a.workspace_);
e.parentNode && e.parentNode.insertBefore(c, e.nextSibling);
a.flyout_.init(b)
};
d = ur.prototype;
d.populate = function(a) {
this.categoryMenu_.populate(a);
this.setSelectedItem(this.categoryMenu_.categories_[0])
};
d.getWidth = function() {
return this.width
};
d.getHeight = function() {
return this.categoryMenu_ ? this.categoryMenu_.getHeight() : 0
};
d.position = function() {
var a = this.HtmlDiv;
if (a) {
var b = Sj(this.workspace_);
b = Hq(b);
this.horizontalLayout_ ? (a.style.left = "0", a.style.height = "auto", a.style.width = b.width + "px", this.height = a.offsetHeight, 0 == this.toolboxPosition ? a.style.top = "0" : a.style.bottom = "0") : (3 == this.toolboxPosition ? a.style.right = "0" : a.style.left = "0", a.style.height = this.getHeight() + "px", a.style.width = this.width + "px");
this.flyout_.position()
}
};
d.getClientRect = function() {
if (!this.HtmlDiv) return null;
var a = this.HtmlDiv.getBoundingClientRect(),
b = a.left,
c = a.top,
e = a.width;
a = a.height;
return 2 == this.toolboxPosition ? new vj(-1E7, -1E7, 1E7 + b + e, 2E7) : 3 == this.toolboxPosition ? new vj(b, -1E7, 1E7 + e, 2E7) : 0 == this.toolboxPosition ? new vj(-1E7, -1E7, 2E7, 1E7 + c + a) : new vj(0, c, 2E7, 1E7 + e)
};
var xr = function(a) {
var b = a.Blockly_Toolbox_prototype$selectedItem_;
b && (b.custom_ || b.contents_) && a.flyout_.show(b.custom_ ? b.custom_ : b.contents_)
};
ur.prototype.setSelectedItem = function(a) {
if (this.Blockly_Toolbox_prototype$selectedItem_) {
if (this.Blockly_Toolbox_prototype$selectedItem_ == a) return;
this.Blockly_Toolbox_prototype$selectedItem_.setSelected(!1)
}
this.Blockly_Toolbox_prototype$selectedItem_ = a;
null != this.Blockly_Toolbox_prototype$selectedItem_ && (this.Blockly_Toolbox_prototype$selectedItem_.setSelected(!0), this.flyout_.show(a.custom_ ? a.custom_ : a.contents_), this.flyout_.scrollToStart())
};
var yr = function(a) {
return function() {
this.setSelectedItem(a);
J = null
}
},
wr = function(a, b) {
this.Blockly_Toolbox_CategoryMenu$parent_ = a;
this.Blockly_Toolbox_CategoryMenu$height_ = 0;
this.Blockly_Toolbox_CategoryMenu$parentHtml_ = b;
this.createDom();
this.categories_ = []
};
wr.prototype.getHeight = function() {
return this.Blockly_Toolbox_CategoryMenu$height_
};
wr.prototype.createDom = function() {
this.table = B("table", "scratchCategoryMenu");
this.Blockly_Toolbox_CategoryMenu$parentHtml_.appendChild(this.table)
};
wr.prototype.populate = function(a) {
if (a) {
this.dispose();
this.createDom();
for (var b = [], c = 0, e; e = a.childNodes[c]; c++) e.tagName && "CATEGORY" == e.tagName.toUpperCase() && b.push(e);
a = Math.ceil(b.length / 2);
for (c = 0; c < a; c += 1) {
e = b[c];
var f = B("tr", "scratchCategoryMenuRow");
this.table.appendChild(f);
e && this.categories_.push(new zr(this, f, e));
b[c + a] && this.categories_.push(new zr(this, f, b[c + a]))
}
this.Blockly_Toolbox_CategoryMenu$height_ = this.table.offsetHeight
}
};
wr.prototype.dispose = function() {
for (var a = 0, b; b = this.categories_[a]; a++) b.dispose();
this.table && (C(this.table), this.table = null)
};
var zr = function(a, b, c) {
this.Blockly_Toolbox_Category$parent_ = a;
this.Blockly_Toolbox_Category$parentHtml_ = b;
this.Blockly_Toolbox_Category$name_ = c.getAttribute("name");
this.setColour(c);
this.custom_ = c.getAttribute("custom");
this.contents_ = [];
if (!this.custom_)
for (a = 0; b = c.childNodes[a]; a++)
if (b.tagName) switch (b.tagName.toUpperCase()) {
case "BLOCK":
case "SHADOW":
case "LABEL":
case "BUTTON":
case "TEXT":
this.contents_.push(b)
}
this.createDom()
};
zr.prototype.dispose = function() {
this.item_ && (C(this.item_), this.item = null);
this.contents_ = this.Blockly_Toolbox_Category$parentHtml_ = this.Blockly_Toolbox_Category$parent_ = null
};
zr.prototype.createDom = function() {
var a = this.Blockly_Toolbox_Category$parent_.Blockly_Toolbox_CategoryMenu$parent_;
this.item_ = B("td", {
"class": "scratchCategoryMenuItem"
}, this.Blockly_Toolbox_Category$name_);
this.bubble_ = B("div", {
"class": a.RTL ? "scratchCategoryItemBubbleRTL" : "scratchCategoryItemBubbleLTR"
});
this.bubble_.style.backgroundColor = this.colour_;
this.bubble_.style.borderColor = this.secondaryColour_;
this.item_.appendChild(this.bubble_);
this.Blockly_Toolbox_Category$parentHtml_.appendChild(this.item_);
T(this.item_, "mousedown", a, yr(this))
};
zr.prototype.setSelected = function(a) {
this.item_.className = a ? "scratchCategoryMenuItem categorySelected" : "scratchCategoryMenuItem"
};
zr.prototype.setColour = function(a) {
var b = a.getAttribute("colour");
a = a.getAttribute("secondaryColour");
u(b) ? (b.match(/^#[0-9a-fA-F]{6}$/) ? this.colour_ = b : this.colour_ = Uk(Zk(Number(b))), a.match(/^#[0-9a-fA-F]{6}$/) ? this.secondaryColour_ = a : this.secondaryColour_ = Uk(Zk(a))) : this.secondaryColour_ = this.colour_ = "#000000"
};
var Ar = function(a) {
this.workspace_ = a
};
d = Ar.prototype;
d.Blockly_Trashcan_prototype$isOpen = !1;
d.svgGroup_ = null;
d.svgLid_ = null;
d.lidTask_ = 0;
d.lidOpen_ = 0;
d.Blockly_Trashcan_prototype$left_ = 0;
d.Blockly_Trashcan_prototype$top_ = 0;
d.createDom = function() {
this.svgGroup_ = O("g", {
"class": "blocklyTrash"
}, null);
var a = String(Math.random()).substring(2),
b = O("clipPath", {
id: "blocklyTrashBodyClipPath" + a
}, this.svgGroup_);
O("rect", {
width: 47,
height: 44,
y: 16
}, b);
O("image", {
width: 96,
x: -0,
height: 124,
y: -32,
"clip-path": "url(#blocklyTrashBodyClipPath" + a + ")"
}, this.svgGroup_).setAttributeNS("http://www.w3.org/1999/xlink", "xlink:href", this.workspace_.options.pathToMedia + "sprites.png");
b = O("clipPath", {
id: "blocklyTrashLidClipPath" + a
}, this.svgGroup_);
O("rect", {
width: 47,
height: 16
}, b);
this.svgLid_ = O("image", {
width: 96,
x: -0,
height: 124,
y: -32,
"clip-path": "url(#blocklyTrashLidClipPath" + a + ")"
}, this.svgGroup_);
this.svgLid_.setAttributeNS("http://www.w3.org/1999/xlink", "xlink:href", this.workspace_.options.pathToMedia + "sprites.png");
N(this.svgGroup_, "mouseup", this, this.click);
this.animateLid_();
return this.svgGroup_
};
d.init = function(a) {
this.bottom_ = 20 + a;
rq(this, !1);
return this.bottom_ + 44 + 16
};
d.dispose = function() {
this.svgGroup_ && (C(this.svgGroup_), this.svgGroup_ = null);
this.workspace_ = this.svgLid_ = null;
clearTimeout(this.lidTask_)
};
d.position = function() {
var a = this.workspace_.getMetrics();
a && (this.workspace_.RTL ? (this.Blockly_Trashcan_prototype$left_ = 20 + Fi, 2 == a.toolboxPosition && (this.Blockly_Trashcan_prototype$left_ += a.flyoutWidth, this.workspace_.toolbox_ && (this.Blockly_Trashcan_prototype$left_ += a.absoluteLeft))) : (this.Blockly_Trashcan_prototype$left_ = a.viewWidth + a.absoluteLeft - 47 - 20 - Fi, 3 == a.toolboxPosition && (this.Blockly_Trashcan_prototype$left_ -= a.flyoutWidth)), this.Blockly_Trashcan_prototype$top_ = a.viewHeight + a.absoluteTop -
60 - this.bottom_, 1 == a.toolboxPosition && (this.Blockly_Trashcan_prototype$top_ -= a.flyoutHeight), this.svgGroup_.setAttribute("transform", "translate(" + this.Blockly_Trashcan_prototype$left_ + "," + this.Blockly_Trashcan_prototype$top_ + ")"))
};
d.getClientRect = function() {
if (!this.svgGroup_) return null;
var a = this.svgGroup_.getBoundingClientRect();
return new vj(a.left + 0 - 10, a.top + 32 - 10, 67, 80)
};
var rq = function(a, b) {
a.Blockly_Trashcan_prototype$isOpen != b && (clearTimeout(a.lidTask_), a.Blockly_Trashcan_prototype$isOpen = b, a.animateLid_())
};
Ar.prototype.animateLid_ = function() {
this.lidOpen_ += this.Blockly_Trashcan_prototype$isOpen ? .2 : -.2;
this.lidOpen_ = Mb(this.lidOpen_, 1);
var a = 45 * this.lidOpen_;
this.svgLid_.setAttribute("transform", "rotate(" + (this.workspace_.RTL ? -a : a) + "," + (this.workspace_.RTL ? 4 : 43) + ",14)");
this.svgGroup_.style.opacity = Nb(.4, .8, this.lidOpen_);
0 < this.lidOpen_ && 1 > this.lidOpen_ && (this.lidTask_ = setTimeout(this.animateLid_.bind(this), 20))
};
Ar.prototype.close = function() {
rq(this, !1)
};
Ar.prototype.click = function() {
var a = this.workspace_.startScrollX - this.workspace_.scrollX,
b = this.workspace_.startScrollY - this.workspace_.scrollY;
3 < Math.sqrt(a * a + b * b) || console.log("TODO: Inspect trash.")
};
var uo = function(a) {
this.icons_ = a;
uo.superClass_.constructor.call(this, a[0].value);
bk(this, "iconmenu")
};
w(uo, Wj);
uo.prototype.init = function(a) {
this.Blockly_FieldIconMenu$arrowX_ = 18;
this.Blockly_FieldIconMenu$arrowY_ = 10;
a.RTL && (this.Blockly_FieldIconMenu$arrowX_ = -this.Blockly_FieldIconMenu$arrowX_ - 12);
this.arrowIcon_ = O("image", {
height: "12px",
width: "12px",
transform: "translate(" + this.Blockly_FieldIconMenu$arrowX_ + "," + this.Blockly_FieldIconMenu$arrowY_ + ")"
});
this.arrowIcon_.setAttributeNS("http://www.w3.org/1999/xlink", "xlink:href", K.options.pathToMedia + "dropdown-arrow.svg");
a.getSvgRoot().appendChild(this.arrowIcon_);
uo.superClass_.init.call(this, a)
};
uo.prototype.CURSOR = "default";
uo.prototype.Blockly_Field_prototype$setValue = function(a) {
null !== a && a !== this.value_ && (this.Blockly_Field_prototype$sourceBlock && 0 == Q && P(new Mi(this.Blockly_Field_prototype$sourceBlock, "field", this.name, this.value_, a)), this.value_ = a, Br(this, Cr(this, this.value_)))
};
var Br = function(a, b) {
if (a.Blockly_Field_prototype$sourceBlock && a.Blockly_Field_prototype$sourceBlock.parentBlock)
for (var c = a.Blockly_Field_prototype$sourceBlock.parentBlock, e = 0, f; f = c.inputList[e]; e++)
for (var g = 0, h; h = f.fieldRow[g]; g++)
if (h instanceof Jm) {
h.Blockly_Field_prototype$setValue(b);
return
}
};
uo.prototype.getValue = function() {
return this.value_
};
var Cr = function(a, b) {
for (var c = 0, e; e = a.icons_[c]; c++)
if (e.value === b) return e.src;
return ""
};
uo.prototype.showEditor = function() {
if (Nj === this) {
Vj();
var a = !0
} else a = !1;
if (!a) {
ei();
Jj.innerHTML = "";
var b = Jj;
b.setAttribute("role", "menu");
b.setAttribute("aria-haspopup", "true");
a = 0;
for (var c; c = this.icons_[a]; a++) {
if ("placeholder" == c.type) {
var e = document.createElement("span");
e.setAttribute("class", "blocklyDropDownPlaceholder");
e.style.width = c.width + "px";
e.style.height = c.height + "px"
} else {
e = document.createElement("button");
e.setAttribute("id", ":" + a);
e.setAttribute("role", "menuitem");
e.setAttribute("class",
"blocklyDropDownButton");
e.title = c.alt;
e.style.width = c.width + "px";
e.style.height = c.height + "px";
var f = this.Blockly_Field_prototype$sourceBlock.colour_;
c.value == this.getValue() && (f = this.Blockly_Field_prototype$sourceBlock.colourTertiary_, e.setAttribute("aria-selected", "true"));
e.style.backgroundColor = f;
e.style.borderColor = this.Blockly_Field_prototype$sourceBlock.colourTertiary_;
T(e, "click", this, this.buttonClick_);
T(e, "mouseup", this, this.buttonClick_);
T(e, "mousedown", e, function(a) {
this.setAttribute("class",
"blocklyDropDownButton blocklyDropDownButtonHover");
a.preventDefault()
});
T(e, "mouseover", e, function() {
this.setAttribute("class", "blocklyDropDownButton blocklyDropDownButtonHover");
b.setAttribute("aria-activedescendant", this.id)
});
T(e, "mouseout", e, function() {
this.setAttribute("class", "blocklyDropDownButton");
b.removeAttribute("aria-activedescendant")
});
f = document.createElement("img");
f.src = c.src;
e.setAttribute("data-value", c.value);
f.setAttribute("data-value", c.value);
e.appendChild(f)
}
b.appendChild(e)
}
b.style.width =
"168px";
Qj(this.Blockly_Field_prototype$sourceBlock.colour_, this.Blockly_Field_prototype$sourceBlock.colourTertiary_);
Rj(this.Blockly_Field_prototype$sourceBlock.parentBlock.category_);
this.savedPrimary_ = this.Blockly_Field_prototype$sourceBlock.colour_;
this.Blockly_Field_prototype$sourceBlock.setColour(this.Blockly_Field_prototype$sourceBlock.colourSecondary_, this.Blockly_Field_prototype$sourceBlock.colourSecondary_, this.Blockly_Field_prototype$sourceBlock.colourTertiary_);
a = this.Blockly_Field_prototype$sourceBlock.workspace.scale;
Uj(this, this.Blockly_Field_prototype$sourceBlock, this.Blockly_FieldIconMenu_prototype$onHide_.bind(this), -(64 * a) - -8 * a) || this.arrowIcon_.setAttribute("transform", "translate(" + (this.Blockly_FieldIconMenu$arrowX_ + 16 / 1.5 + 1) + "," + (this.Blockly_FieldIconMenu$arrowY_ + 16 / 1.5) + ") rotate(180)")
}
};
uo.prototype.buttonClick_ = function(a) {
a = a.target.getAttribute("data-value");
this.Blockly_Field_prototype$setValue(a);
Vj()
};
uo.prototype.Blockly_FieldIconMenu_prototype$onHide_ = function() {
this.Blockly_Field_prototype$sourceBlock && this.Blockly_Field_prototype$sourceBlock.setColour(this.savedPrimary_, this.Blockly_Field_prototype$sourceBlock.colourSecondary_, this.Blockly_Field_prototype$sourceBlock.colourTertiary_);
Jj.removeAttribute("role");
Jj.removeAttribute("aria-haspopup");
Jj.removeAttribute("aria-activedescendant");
this.arrowIcon_.setAttribute("transform", "translate(" + this.Blockly_FieldIconMenu$arrowX_ + "," + this.Blockly_FieldIconMenu$arrowY_ +
")")
};
var po = function(a) {
var b = a.colourSecondary_;
a.svgPath_.setAttribute("stroke", a.colourTertiary_);
a.svgShadowPathTop_.setAttribute("transform", "translate(0,3)");
a.svgShadowPathBottom_.setAttribute("transform", "translate(0,3)");
a.svgPath_.setAttribute("fill", a.colour_);
a.svgShadowPathTop_.setAttribute("fill", b);
a.svgShadowPathBottom_.setAttribute("fill", b);
a.svgPath_.setAttribute("fill-opacity", a.opacity_);
a.svgShadowPathTop_.setAttribute("fill-opacity", a.opacity_);
a.svgShadowPathBottom_.setAttribute("fill-opacity",
a.opacity_);
b = 0;
for (var c; c = a.inputList[b]; b++)
for (var e = 0, f; f = c.fieldRow[e]; e++) f.Blockly_Field_prototype$setText(null)
},
sq = function(a) {
var b = Yp;
a ? (b.svgPath_.setAttribute("filter", "url(#blocklyReplacementGlowFilter)"), Hi(b.svgGroup, "blocklyReplaceable")) : (b.svgPath_.removeAttribute("filter"), ak(b.svgGroup, "blocklyReplaceable"))
},
Mk = function(a, b) {
var c = a.height,
e = a.width;
!b && Dr(a) && (c = c + -8 + 32);
var f = Xi(a);
f && (f = Mk(f, b), e += f.width, e -= 8, c = Math.max(c, f.height));
return {
height: c,
width: e
}
};
X.prototype.render = function(a) {
fk();
this.rendered = !0;
for (var b = this.renderingMetrics_, c = {
statement: null,
imageField: null,
iconMenu: null,
width: 0,
height: 0,
bayHeight: 0,
bayWidth: 0,
bayNotchAtRight: !0,
fieldRadius: 0,
startHat: !1,
endCap: !1
}, e = 0, f; f = this.inputList[e]; e++) {
if (3 == f.type) {
c.statement = f;
c.bayHeight = 64;
c.bayWidth = 32;
if (f.connection && f.connection.targetConnection) {
var g = S(f.connection);
g = Mk(g, !0);
c.bayHeight = Math.max(c.bayHeight, g.height);
c.bayWidth = Math.max(c.bayWidth, g.width)
}(g = S(f.connection)) &&
!mo(g) ? c.bayNotchAtRight = !1 : c.bayWidth -= 8
}
g = 0;
for (var h; h = f.fieldRow[g]; g++) h instanceof Jm && (c.imageField = h), h instanceof uo && (c.iconMenu = h), c.fieldRadius = h instanceof Dk ? 2 == h.Blockly_Field_prototype$sourceBlock.outputShape_ ? 16 : 4 : 16
}
this.nextConnection && !this.previousConnection && (c.startHat = !0);
this.nextConnection || !this.previousConnection || this.outputConnection || c.statement || (c.endCap = !0);
c.iconMenu && (e = c.iconMenu, (f = Cr(e, e.getValue())) && Br(e, f));
c.width = 64;
c.height = 64;
this.outputConnection && (c.height =
32, c.width = 48);
c.statement && (c.width += c.bayWidth + 16 + 8, c.height = c.bayHeight + 12);
c.startHat && (c.width += 4);
c.endCap && (c.width += 4);
if (b && b.statement == c.statement && b.imageField == c.imageField && b.height == c.height && b.width == c.width && b.bayHeight == c.bayHeight && b.bayWidth == c.bayWidth && b.fieldRadius == c.fieldRadius && b.startHat == c.startHat) c.statement && c.statement.connection && c.statement.targetConnection && Np(c.statement.connection), this.nextConnection && this.nextConnection.targetConnection && Np(this.nextConnection);
else {
this.height = c.height;
this.width = c.width;
b = this.getRelativeToSurfaceXY();
e = [];
c.startHat ? (e.push("m 32,0"), e.push("A 32,32 0 0,0 0,32")) : this.previousConnection ? (e.push("m 4,0"), e.push("A 4,4 0 0,0 0,4"), e.push("V", String(c.height - 4 - 12 - 34)), e.push("c 0,2 1,3 2,4 l 4,4 c 1,1 2,2 2,4 v 12 c 0,2 -1,3 -2,4 l -4,4 c -1,1 -2,2 -2,4"), this.previousConnection.moveTo(b.x, b.y + c.height - 8), e.push("V", String(c.height - 4))) : (e.push("m", c.fieldRadius + ",0"), e.push("A", c.fieldRadius + "," + c.fieldRadius, "0", "0,0",
"0," + c.fieldRadius), e.push("V", String(c.height - c.fieldRadius)));
c.startHat ? e.push("a", "32,32 0 0,0 32,32") : this.previousConnection ? e.push("a", "4,4 0 0,0 4,4") : e.push("a", c.fieldRadius + "," + c.fieldRadius, "0", "0,0", c.fieldRadius + "," + c.fieldRadius);
c.statement && (e.push("h", "16"), e.push("a", "4,4 0 0,0 4,-4"), e.push("v", "-10"), e.push("c 0,-2 1,-3 2,-4 l 4,-4 c 1,-1 2,-2 2,-4 v -12 c 0,-2 -1,-3 -2,-4 l -4,-4 c -1,-1 -2,-2 -2,-4"), e.push("v", String(-c.bayHeight + 54)), e.push("a", "4,4 0 0,1 4,-4"), e.push("h",
String(c.bayWidth - 8)), e.push("a", "4,4 0 0,1 4,4"), c.bayNotchAtRight && (e.push("v", String(c.bayHeight - 12 - 34 - 8)), e.push("c 0,2 1,3 2,4 l 4,4 c 1,1 2,2 2,4 v 12 c 0,2 -1,3 -2,4 l -4,4 c -1,1 -2,2 -2,4")), e.push("V", c.bayHeight + 8), e.push("a", "4,4 0 0,0 4,4"), f = b.x + 8 + 16, this.RTL && (f = b.x - 8 - 16), c.statement.connection.moveTo(f, b.y + c.height - 8), c.statement.connection.targetConnection && Np(c.statement.connection));
this.isShadowBlock ? e.push("H", String(c.width - c.fieldRadius)) : e.push("H", String(c.width - 4));
this.isShadowBlock ?
(e.push("a", c.fieldRadius + "," + c.fieldRadius, "0", "0,0", c.fieldRadius + "," + -1 * c.fieldRadius), e.push("v", String(-1 * (c.height - 2 * c.fieldRadius)))) : (e.push("a", "4,4 0 0,0 4,-4"), e.push("v", "-10"));
if (this.nextConnection) {
e.push("c 0,-2 1,-3 2,-4 l 4,-4 c 1,-1 2,-2 2,-4 v -12 c 0,-2 -1,-3 -2,-4 l -4,-4 c -1,-1 -2,-2 -2,-4");
this.width += 8;
var m;
this.RTL ? m = b.x - c.width : m = b.x + c.width;
this.nextConnection.moveTo(m, b.y + c.height - 8);
this.nextConnection.targetConnection && Np(this.nextConnection);
e.push("V", "4")
} else this.isShadowBlock ||
e.push("V", "4");
this.isShadowBlock ? e.push("a", c.fieldRadius + "," + c.fieldRadius, "0", "0,0", "-" + c.fieldRadius + ",-" + c.fieldRadius) : e.push("a", "4,4 0 0,0 -4,-4");
e.push("z");
m = e.join(" ");
this.svgPath_.setAttribute("d", m);
this.svgShadowPathBottom_.setAttribute("d", m);
this.svgShadowClipRectBottom_.setAttribute("y", c.height / 2);
this.svgShadowClipRectBottom_.setAttribute("width", c.width + .5 * c.width);
this.svgShadowClipRectBottom_.setAttribute("height", c.height);
this.svgShadowPathBottom_.setAttribute("clip-path",
"url(#bottomClip" + this.maskIdBottom + ")");
this.svgShadowPathTop_.setAttribute("d", m);
this.svgShadowClipRectTop_.setAttribute("y", "0");
this.svgShadowClipRectTop_.setAttribute("width", c.width + .5 * c.width);
this.svgShadowClipRectTop_.setAttribute("height", c.height / 2);
this.svgShadowPathTop_.setAttribute("clip-path", "url(#topClip" + this.maskIdTop + ")");
this.RTL && this.svgPath_.setAttribute("transform", "scale(-1 1)");
c.imageField && (m = c.imageField.getSvgRoot(), b = c.imageField.getSize(), e = c.width - b.width - 8, f = c.height -
b.height - 12, c.endCap && (e -= 4), g = "scale(1 1)", this.RTL && (c.imageField.flipRTL_ ? (g = "scale(-1 1)", e = -c.width + b.width + 8) : e = -c.width + 8), m && (this.isInsertionMarker_ && m.setAttribute("display", "none"), m.setAttribute("transform", "translate(" + e + "," + f + ") " + g)));
Dr(this) && (m = Dr(this).getSvgRoot(), b = 8 + (c.bayWidth ? 24 : 0) + c.bayWidth, c.startHat && (b += 8), this.RTL && (b = -b), m.setAttribute("transform", "translate(" + b + "," + (c.height + -8) + ")"));
m = [];
this.isShadowBlock ? m.push("argument") : (c.statement && m.push("c-block"), c.startHat ?
m.push("hat") : c.statement || m.push("stack"), this.nextConnection || m.push("end"));
this.svgGroup.setAttribute("data-shapes", m.join(" "));
this.category_ && this.svgGroup.setAttribute("data-category", this.category_);
this.renderingMetrics_ = c
}!1 !== a && ((a = this.parentBlock) ? a.render(!0) : eq(this.workspace));
gk()
};
var Dr = function(a) {
for (var b = 0, c; c = a.childBlocks[b]; b++)
if (c.isShadowBlock) return c;
return null
};
var zq = function(a, b) {
var c;
a.workspace.RTL && (c = a.workspace.getWidth());
var e = Wi(a, b),
f = a.getRelativeToSurfaceXY();
e.setAttribute("x", Math.round(a.workspace.RTL ? c - f.x : f.x));
e.setAttribute("y", Math.round(f.y));
return e
},
Wi = function(a, b) {
var c = B(a.isShadowBlock ? "shadow" : "block");
c.setAttribute("type", a.type);
b || c.setAttribute("id", a.id);
for (var e = 0, f; f = a.inputList[e]; e++)
for (var g = 0, h; h = f.fieldRow[g]; g++)
if (h.name && h.EDITABLE) {
var m = B("field", null, h.getValue());
m.setAttribute("name", h.name);
c.appendChild(m)
} if (e =
a.getCommentText()) e = B("comment", null, e), "object" == typeof a.comment && (e.setAttribute("pinned", a.comment.isVisible()), f = a.comment.getBubbleSize(), e.setAttribute("h", f.height), e.setAttribute("w", f.width)), c.appendChild(e);
a.data && (e = B("data", null, a.data), c.appendChild(e));
for (e = 0; f = a.inputList[e]; e++) {
var n;
h = !0;
5 != f.type && (m = S(f.connection), 1 == f.type ? n = B("value") : 3 == f.type && (n = B("statement")), g = f.connection.shadowDom_, !g || m && m.isShadowBlock || n.appendChild(Er(g)), m && (n.appendChild(Wi(m, b)), h = !1), n.setAttribute("name",
f.name), h || c.appendChild(n))
}
a.inputsInlineDefault != a.inputsInline && c.setAttribute("inline", a.inputsInline);
a.Blockly_Block$collapsed && c.setAttribute("collapsed", !0);
a.disabled && c.setAttribute("disabled", !0);
oo(a) || a.isShadowBlock || c.setAttribute("deletable", !1);
jj(a) || a.isShadowBlock || c.setAttribute("movable", !1);
Pi(a) || c.setAttribute("editable", !1);
if (e = Xi(a)) n = B("next", null, Wi(e, b)), c.appendChild(n);
g = a.nextConnection && a.nextConnection.shadowDom_;
!g || e && e.isShadowBlock || n.appendChild(Er(g));
return c
},
Er = function(a) {
for (var b = a = a.cloneNode(!0), c; b;)
if (b.firstChild) b = b.firstChild;
else {
for (; b && !b.nextSibling;) c = b, b = b.parentNode, 3 == c.nodeType && "" == c.data.trim() && b.firstChild != c && C(c);
b && (c = b, b = b.nextSibling, 3 == c.nodeType && "" == c.data.trim() && C(c))
} return a
},
Fp = function(a) {
return (new DOMParser).parseFromString(a, "text/xml").firstChild
},
Aq = function(a, b) {
var c;
b.RTL && (c = b.getWidth());
fk();
var e = a.childNodes.length,
f = bi;
f || ci(!0);
b.setResizesEnabled && b.setResizesEnabled(!1);
for (var g = 0; g < e; g++) {
var h =
a.childNodes[g],
m = h.nodeName.toLowerCase();
if ("block" == m || "shadow" == m && !Zi) {
m = lj(h, b);
var n = parseInt(h.getAttribute("x"), 10);
h = parseInt(h.getAttribute("y"), 10);
isNaN(n) || isNaN(h) || m.moveBy(b.RTL ? c - n : n, h)
}
}
f || ci(!1);
gk();
if (!b.isFlyout)
for (c = Xh(b), e = 0; e < c.length; e++) b.createVariable(c[e]);
b.setResizesEnabled && b.setResizesEnabled(!0)
},
lj = function(a, b) {
Q++;
try {
var c = Fr(a, b);
if (b.rendered) {
qo(c, !0);
for (var e = c.getDescendants(), f = e.length - 1; 0 <= f; f--) e[f].initSvg();
for (f = e.length - 1; 0 <= f; f--) e[f].render(!1);
b.isFlyout ? setTimeout(function() {
c.workspace && (z || id) && c.render()
}, 1) : setTimeout(function() {
c.workspace && (qo(c, !1), (z || id) && c.render())
}, 1);
Pp(c);
eq(b)
}
} finally {
Q--
}
0 == Q && P(new jo(c));
return c
},
Fr = function(a, b) {
var c = null,
e = a.getAttribute("type"),
f = a.getAttribute("id");
c = b.newBlock(e, f);
var g = null;
f = 0;
for (var h; h = a.childNodes[f]; f++)
if (3 != h.nodeType) {
for (var m = g = null, n = 0, p; p = h.childNodes[n]; n++) 1 == p.nodeType && ("block" == p.nodeName.toLowerCase() ? g = p : "shadow" == p.nodeName.toLowerCase() && (m = p));
!g && m &&
(g = m);
n = h.getAttribute("name");
switch (h.nodeName.toLowerCase()) {
case "mutation":
c.domToMutation && c.initSvg && c.initSvg();
break;
case "comment":
c.setCommentText(h.textContent);
var r = h.getAttribute("pinned");
r && !c.isInFlyout && setTimeout(function() {
c.comment && c.comment.setVisible && c.comment.setVisible("true" == r)
}, 1);
g = parseInt(h.getAttribute("w"), 10);
h = parseInt(h.getAttribute("h"), 10);
!isNaN(g) && !isNaN(h) && c.comment && c.comment.setVisible && c.comment.setBubbleSize(g, h);
break;
case "data":
c.data = h.textContent;
break;
case "title":
case "field":
g = so(c, n);
if (!g) {
console.warn("Ignoring non-existent field " + n + " in block " + e);
break
}
g.Blockly_Field_prototype$setValue(h.textContent);
break;
case "value":
case "statement":
h = to(c, n);
if (!h) {
console.warn("Ignoring non-existent input " + n + " in block " + e);
break
}
m && (h.connection.shadowDom_ = m);
g && (g = Fr(g, b), g.outputConnection ? h.connection.connect(g.outputConnection) : g.previousConnection && h.connection.connect(g.previousConnection));
break;
case "next":
m && c.nextConnection && (c.nextConnection.shadowDom_ =
m);
g && (g = Fr(g, b), c.nextConnection.connect(g.previousConnection));
break;
default:
console.warn("Ignoring unknown tag: " + h.nodeName)
}
}(e = a.getAttribute("inline")) && c.setInputsInline("true" == e);
(e = a.getAttribute("disabled")) && c.setDisabled("true" == e);
if (e = a.getAttribute("deletable")) c.deletable_ = "true" == e;
(e = a.getAttribute("movable")) && c.setMovable("true" == e);
(e = a.getAttribute("editable")) && c.setEditable("true" == e);
(e = a.getAttribute("collapsed")) && c.setCollapsed("true" == e);
if ("shadow" == a.nodeName.toLowerCase()) {
e =
c.getChildren();
for (f = 0; e[f]; f++);
c.setShadow(!0)
}
return c
};
q.Blockly || (q.Blockly = {});
q.Blockly.Xml || (q.Blockly.Xml = {});
q.Blockly.Xml.domToText = function(a) {
return (new XMLSerializer).serializeToString(a)
};
q.Blockly.Xml.domToWorkspace = Aq;
q.Blockly.Xml.textToDom = Fp;
q.Blockly.Xml.workspaceToDom = function(a, b) {
for (var c = B("xml"), e = $h(a, !0), f = 0, g; g = e[f]; f++) c.appendChild(zq(g, b));
return c
};
var Gr = function(a) {
this.workspace_ = a
};
d = Gr.prototype;
d.svgGroup_ = null;
d.Blockly_ZoomControls_prototype$left_ = 0;
d.Blockly_ZoomControls_prototype$top_ = 0;
d.createDom = function() {
var a = this.workspace_;
this.svgGroup_ = O("g", {
"class": "blocklyZoom"
}, null);
var b = O("image", {
width: 36,
height: 36,
y: 0
}, this.svgGroup_);
b.setAttributeNS("http://www.w3.org/1999/xlink", "xlink:href", a.options.pathToMedia + "zoom-in.svg");
var c = O("image", {
width: 36,
height: 36,
y: 44
}, this.svgGroup_);
c.setAttributeNS("http://www.w3.org/1999/xlink", "xlink:href", a.options.pathToMedia + "zoom-out.svg");
var e = O("image", {
width: 36,
height: 36,
y: 88
}, this.svgGroup_);
e.setAttributeNS("http://www.w3.org/1999/xlink",
"xlink:href", a.options.pathToMedia + "zoom-reset.svg");
N(b, "mousedown", null, function(b) {
a.markFocused();
Hr(a, 1);
J = null;
b.stopPropagation();
b.preventDefault()
});
N(c, "mousedown", null, function(b) {
a.markFocused();
Hr(a, -1);
J = null;
b.stopPropagation();
b.preventDefault()
});
N(e, "mousedown", null, function(b) {
a.markFocused();
Ir(a, a.options.zoomOptions.startScale);
if (a.scrollbar) {
L(!0);
ei();
Di(!1);
var c = a.getMetrics(),
e = (c.contentWidth - c.viewWidth) / 2;
a.flyout_ && (e -= a.flyout_.width / 2);
a.scrollbar.set(e, (c.contentHeight -
c.viewHeight) / 2)
}
J = null;
b.stopPropagation();
b.preventDefault()
});
return this.svgGroup_
};
d.init = function(a) {
this.bottom_ = 12 + a;
return this.bottom_ + 124
};
d.dispose = function() {
this.svgGroup_ && (C(this.svgGroup_), this.svgGroup_ = null);
this.workspace_ = null
};
d.position = function() {
var a = this.workspace_.getMetrics();
a && (this.workspace_.RTL ? (this.Blockly_ZoomControls_prototype$left_ = 12 + Fi, 2 == a.toolboxPosition && (this.Blockly_ZoomControls_prototype$left_ += a.flyoutWidth, this.workspace_.toolbox_ && (this.Blockly_ZoomControls_prototype$left_ += a.absoluteLeft))) : (this.Blockly_ZoomControls_prototype$left_ = a.viewWidth + a.absoluteLeft - 36 - 12 - Fi, 3 == a.toolboxPosition && (this.Blockly_ZoomControls_prototype$left_ -= a.flyoutWidth)), this.Blockly_ZoomControls_prototype$top_ = a.viewHeight +
a.absoluteTop - 124 - this.bottom_, 1 == a.toolboxPosition && (this.Blockly_ZoomControls_prototype$top_ -= a.flyoutHeight), this.svgGroup_.setAttribute("transform", "translate(" + this.Blockly_ZoomControls_prototype$left_ + "," + this.Blockly_ZoomControls_prototype$top_ + ")"))
};
/*
Visual Blocks Language
Copyright 2012 Google Inc.
https://developers.google.com/blockly/
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
M.en = {};
M.LOGIC_HUE = "210";
M.LOOPS_HUE = "120";
M.MATH_HUE = "230";
M.TEXTS_HUE = "160";
M.LISTS_HUE = "260";
M.COLOUR_HUE = "20";
M.VARIABLES_HUE = "330";
M.PROCEDURES_HUE = "290";
M.VARIABLES_DEFAULT_NAME = "item";
M.TODAY = "Today";
M.DUPLICATE_BLOCK = "Duplicate";
M.ADD_COMMENT = "Add Comment";
M.REMOVE_COMMENT = "Remove Comment";
M.EXTERNAL_INPUTS = "External Inputs";
M.INLINE_INPUTS = "Inline Inputs";
M.DELETE_BLOCK = "Delete Block";
M.DELETE_X_BLOCKS = "Delete %1 Blocks";
M.DELETE_ALL_BLOCKS = "Delete all %1 blocks?";
M.CLEAN_UP = "Clean up Blocks";
M.COLLAPSE_BLOCK = "Collapse Block";
M.COLLAPSE_ALL = "Collapse Blocks";
M.EXPAND_BLOCK = "Expand Block";
M.EXPAND_ALL = "Expand Blocks";
M.DISABLE_BLOCK = "Disable Block";
M.ENABLE_BLOCK = "Enable Block";
M.HELP = "Help";
M.UNDO = "Undo";
M.REDO = "Redo";
M.CHANGE_VALUE_TITLE = "Change value:";
M.RENAME_VARIABLE = "Rename variable...";
M.RENAME_VARIABLE_TITLE = 'Rename all "%1" variables to:';
M.NEW_VARIABLE = "Create variable...";
M.NEW_VARIABLE_TITLE = "New variable name:";
M.VARIABLE_ALREADY_EXISTS = 'A variable named "%1" already exists.';
M.DELETE_VARIABLE_CONFIRMATION = 'Delete %1 uses of the "%2" variable?';
M.CANNOT_DELETE_VARIABLE_PROCEDURE = 'Can\'t delete the variable "%1" because it is part of the definition of the procedure "%2"';
M.DELETE_VARIABLE = 'Delete the "%1" variable';
M.COLOUR_PICKER_HELPURL = "https://en.wikipedia.org/wiki/Color";
M.COLOUR_PICKER_TOOLTIP = "Choose a colour from the palette.";
M.COLOUR_RANDOM_HELPURL = "http://randomcolour.com";
M.COLOUR_RANDOM_TITLE = "random colour";
M.COLOUR_RANDOM_TOOLTIP = "Choose a colour at random.";
M.COLOUR_RGB_HELPURL = "http://www.december.com/html/spec/colorper.html";
M.COLOUR_RGB_TITLE = "colour with";
M.COLOUR_RGB_RED = "red";
M.COLOUR_RGB_GREEN = "green";
M.COLOUR_RGB_BLUE = "blue";
M.COLOUR_RGB_TOOLTIP = "Create a colour with the specified amount of red, green, and blue. All values must be between 0 and 100.";
M.COLOUR_BLEND_HELPURL = "http://meyerweb.com/eric/tools/color-blend/";
M.COLOUR_BLEND_TITLE = "blend";
M.COLOUR_BLEND_COLOUR1 = "colour 1";
M.COLOUR_BLEND_COLOUR2 = "colour 2";
M.COLOUR_BLEND_RATIO = "ratio";
M.COLOUR_BLEND_TOOLTIP = "Blends two colours together with a given ratio (0.0 - 1.0).";
M.CONTROLS_REPEAT_HELPURL = "https://en.wikipedia.org/wiki/For_loop";
M.CONTROLS_REPEAT_TITLE = "repeat %1 times";
M.CONTROLS_REPEAT_INPUT_DO = "do";
M.CONTROLS_REPEAT_TOOLTIP = "Do some statements several times.";
M.CONTROLS_WHILEUNTIL_HELPURL = "https://github.com/google/blockly/wiki/Loops#repeat";
M.CONTROLS_WHILEUNTIL_INPUT_DO = M.CONTROLS_REPEAT_INPUT_DO;
M.CONTROLS_WHILEUNTIL_OPERATOR_WHILE = "repeat while";
M.CONTROLS_WHILEUNTIL_OPERATOR_UNTIL = "repeat until";
M.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE = "While a value is true, then do some statements.";
M.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL = "While a value is false, then do some statements.";
M.CONTROLS_FOR_HELPURL = "https://github.com/google/blockly/wiki/Loops#count-with";
M.CONTROLS_FOR_TOOLTIP = 'Have the variable "%1" take on the values from the start number to the end number, counting by the specified interval, and do the specified blocks.';
M.CONTROLS_FOR_TITLE = "count with %1 from %2 to %3 by %4";
M.CONTROLS_FOR_INPUT_DO = M.CONTROLS_REPEAT_INPUT_DO;
M.CONTROLS_FOREACH_HELPURL = "https://github.com/google/blockly/wiki/Loops#for-each";
M.CONTROLS_FOREACH_TITLE = "for each item %1 in list %2";
M.CONTROLS_FOREACH_INPUT_DO = M.CONTROLS_REPEAT_INPUT_DO;
M.CONTROLS_FOREACH_TOOLTIP = 'For each item in a list, set the variable "%1" to the item, and then do some statements.';
M.CONTROLS_FLOW_STATEMENTS_HELPURL = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks";
M.CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK = "break out of loop";
M.CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE = "continue with next iteration of loop";
M.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK = "Break out of the containing loop.";
M.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE = "Skip the rest of this loop, and continue with the next iteration.";
M.CONTROLS_FLOW_STATEMENTS_WARNING = "Warning: This block may only be used within a loop.";
M.CONTROLS_IF_HELPURL = "https://github.com/google/blockly/wiki/IfElse";
M.CONTROLS_IF_TOOLTIP_1 = "If a value is true, then do some statements.";
M.CONTROLS_IF_TOOLTIP_2 = "If a value is true, then do the first block of statements. Otherwise, do the second block of statements.";
M.CONTROLS_IF_TOOLTIP_3 = "If the first value is true, then do the first block of statements. Otherwise, if the second value is true, do the second block of statements.";
M.CONTROLS_IF_TOOLTIP_4 = "If the first value is true, then do the first block of statements. Otherwise, if the second value is true, do the second block of statements. If none of the values are true, do the last block of statements.";
M.CONTROLS_IF_MSG_IF = "if";
M.CONTROLS_IF_MSG_ELSEIF = "else if";
M.CONTROLS_IF_MSG_ELSE = "else";
M.CONTROLS_IF_MSG_THEN = M.CONTROLS_REPEAT_INPUT_DO;
M.CONTROLS_IF_IF_TITLE_IF = M.CONTROLS_IF_MSG_IF;
M.CONTROLS_IF_IF_TOOLTIP = "Add, remove, or reorder sections to reconfigure this if block.";
M.CONTROLS_IF_ELSEIF_TITLE_ELSEIF = M.CONTROLS_IF_MSG_ELSEIF;
M.CONTROLS_IF_ELSEIF_TOOLTIP = "Add a condition to the if block.";
M.CONTROLS_IF_ELSE_TITLE_ELSE = M.CONTROLS_IF_MSG_ELSE;
M.CONTROLS_IF_ELSE_TOOLTIP = "Add a final, catch-all condition to the if block.";
M.LOGIC_COMPARE_HELPURL = "https://en.wikipedia.org/wiki/Inequality_(mathematics)";
M.LOGIC_COMPARE_TOOLTIP_EQ = "Return true if both inputs equal each other.";
M.LOGIC_COMPARE_TOOLTIP_NEQ = "Return true if both inputs are not equal to each other.";
M.LOGIC_COMPARE_TOOLTIP_LT = "Return true if the first input is smaller than the second input.";
M.LOGIC_COMPARE_TOOLTIP_LTE = "Return true if the first input is smaller than or equal to the second input.";
M.LOGIC_COMPARE_TOOLTIP_GT = "Return true if the first input is greater than the second input.";
M.LOGIC_COMPARE_TOOLTIP_GTE = "Return true if the first input is greater than or equal to the second input.";
M.LOGIC_OPERATION_HELPURL = "https://github.com/google/blockly/wiki/Logic#logical-operations";
M.LOGIC_OPERATION_TOOLTIP_AND = "Return true if both inputs are true.";
M.LOGIC_OPERATION_AND = "and";
M.LOGIC_OPERATION_TOOLTIP_OR = "Return true if at least one of the inputs is true.";
M.LOGIC_OPERATION_OR = "or";
M.LOGIC_NEGATE_HELPURL = "https://github.com/google/blockly/wiki/Logic#not";
M.LOGIC_NEGATE_TITLE = "not %1";
M.LOGIC_NEGATE_TOOLTIP = "Returns true if the input is false. Returns false if the input is true.";
M.LOGIC_BOOLEAN_HELPURL = "https://github.com/google/blockly/wiki/Logic#values";
M.LOGIC_BOOLEAN_TRUE = "true";
M.LOGIC_BOOLEAN_FALSE = "false";
M.LOGIC_BOOLEAN_TOOLTIP = "Returns either true or false.";
M.LOGIC_NULL_HELPURL = "https://en.wikipedia.org/wiki/Nullable_type";
M.LOGIC_NULL = "null";
M.LOGIC_NULL_TOOLTIP = "Returns null.";
M.LOGIC_TERNARY_HELPURL = "https://en.wikipedia.org/wiki/%3F:";
M.LOGIC_TERNARY_CONDITION = "test";
M.LOGIC_TERNARY_IF_TRUE = "if true";
M.LOGIC_TERNARY_IF_FALSE = "if false";
M.LOGIC_TERNARY_TOOLTIP = 'Check the condition in "test". If the condition is true, returns the "if true" value; otherwise returns the "if false" value.';
M.MATH_NUMBER_HELPURL = "https://en.wikipedia.org/wiki/Number";
M.MATH_NUMBER_TOOLTIP = "A number.";
M.MATH_ADDITION_SYMBOL = "+";
M.MATH_SUBTRACTION_SYMBOL = "-";
M.MATH_DIVISION_SYMBOL = "\u00f7";
M.MATH_MULTIPLICATION_SYMBOL = "\u00d7";
M.MATH_POWER_SYMBOL = "^";
M.MATH_TRIG_SIN = "sin";
M.MATH_TRIG_COS = "cos";
M.MATH_TRIG_TAN = "tan";
M.MATH_TRIG_ASIN = "asin";
M.MATH_TRIG_ACOS = "acos";
M.MATH_TRIG_ATAN = "atan";
M.MATH_ARITHMETIC_HELPURL = "https://en.wikipedia.org/wiki/Arithmetic";
M.MATH_ARITHMETIC_TOOLTIP_ADD = "Return the sum of the two numbers.";
M.MATH_ARITHMETIC_TOOLTIP_MINUS = "Return the difference of the two numbers.";
M.MATH_ARITHMETIC_TOOLTIP_MULTIPLY = "Return the product of the two numbers.";
M.MATH_ARITHMETIC_TOOLTIP_DIVIDE = "Return the quotient of the two numbers.";
M.MATH_ARITHMETIC_TOOLTIP_POWER = "Return the first number raised to the power of the second number.";
M.MATH_SINGLE_HELPURL = "https://en.wikipedia.org/wiki/Square_root";
M.MATH_SINGLE_OP_ROOT = "square root";
M.MATH_SINGLE_TOOLTIP_ROOT = "Return the square root of a number.";
M.MATH_SINGLE_OP_ABSOLUTE = "absolute";
M.MATH_SINGLE_TOOLTIP_ABS = "Return the absolute value of a number.";
M.MATH_SINGLE_TOOLTIP_NEG = "Return the negation of a number.";
M.MATH_SINGLE_TOOLTIP_LN = "Return the natural logarithm of a number.";
M.MATH_SINGLE_TOOLTIP_LOG10 = "Return the base 10 logarithm of a number.";
M.MATH_SINGLE_TOOLTIP_EXP = "Return e to the power of a number.";
M.MATH_SINGLE_TOOLTIP_POW10 = "Return 10 to the power of a number.";
M.MATH_TRIG_HELPURL = "https://en.wikipedia.org/wiki/Trigonometric_functions";
M.MATH_TRIG_TOOLTIP_SIN = "Return the sine of a degree (not radian).";
M.MATH_TRIG_TOOLTIP_COS = "Return the cosine of a degree (not radian).";
M.MATH_TRIG_TOOLTIP_TAN = "Return the tangent of a degree (not radian).";
M.MATH_TRIG_TOOLTIP_ASIN = "Return the arcsine of a number.";
M.MATH_TRIG_TOOLTIP_ACOS = "Return the arccosine of a number.";
M.MATH_TRIG_TOOLTIP_ATAN = "Return the arctangent of a number.";
M.MATH_CONSTANT_HELPURL = "https://en.wikipedia.org/wiki/Mathematical_constant";
M.MATH_CONSTANT_TOOLTIP = "Return one of the common constants: \u03c0 (3.141\u2026), e (2.718\u2026), \u03c6 (1.618\u2026), sqrt(2) (1.414\u2026), sqrt(\u00bd) (0.707\u2026), or \u221e (infinity).";
M.MATH_IS_EVEN = "is even";
M.MATH_IS_ODD = "is odd";
M.MATH_IS_PRIME = "is prime";
M.MATH_IS_WHOLE = "is whole";
M.MATH_IS_POSITIVE = "is positive";
M.MATH_IS_NEGATIVE = "is negative";
M.MATH_IS_DIVISIBLE_BY = "is divisible by";
M.MATH_IS_TOOLTIP = "Check if a number is an even, odd, prime, whole, positive, negative, or if it is divisible by certain number. Returns true or false.";
M.MATH_CHANGE_HELPURL = "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter";
M.MATH_CHANGE_TITLE = "change %1 by %2";
M.MATH_CHANGE_TITLE_ITEM = M.VARIABLES_DEFAULT_NAME;
M.MATH_CHANGE_TOOLTIP = 'Add a number to variable "%1".';
M.MATH_ROUND_HELPURL = "https://en.wikipedia.org/wiki/Rounding";
M.MATH_ROUND_TOOLTIP = "Round a number up or down.";
M.MATH_ROUND_OPERATOR_ROUND = "round";
M.MATH_ROUND_OPERATOR_ROUNDUP = "round up";
M.MATH_ROUND_OPERATOR_ROUNDDOWN = "round down";
M.MATH_ONLIST_HELPURL = "";
M.MATH_ONLIST_OPERATOR_SUM = "sum of list";
M.MATH_ONLIST_TOOLTIP_SUM = "Return the sum of all the numbers in the list.";
M.MATH_ONLIST_OPERATOR_MIN = "min of list";
M.MATH_ONLIST_TOOLTIP_MIN = "Return the smallest number in the list.";
M.MATH_ONLIST_OPERATOR_MAX = "max of list";
M.MATH_ONLIST_TOOLTIP_MAX = "Return the largest number in the list.";
M.MATH_ONLIST_OPERATOR_AVERAGE = "average of list";
M.MATH_ONLIST_TOOLTIP_AVERAGE = "Return the average (arithmetic mean) of the numeric values in the list.";
M.MATH_ONLIST_OPERATOR_MEDIAN = "median of list";
M.MATH_ONLIST_TOOLTIP_MEDIAN = "Return the median number in the list.";
M.MATH_ONLIST_OPERATOR_MODE = "modes of list";
M.MATH_ONLIST_TOOLTIP_MODE = "Return a list of the most common item(s) in the list.";
M.MATH_ONLIST_OPERATOR_STD_DEV = "standard deviation of list";
M.MATH_ONLIST_TOOLTIP_STD_DEV = "Return the standard deviation of the list.";
M.MATH_ONLIST_OPERATOR_RANDOM = "random item of list";
M.MATH_ONLIST_TOOLTIP_RANDOM = "Return a random element from the list.";
M.MATH_MODULO_HELPURL = "https://en.wikipedia.org/wiki/Modulo_operation";
M.MATH_MODULO_TITLE = "remainder of %1 \u00f7 %2";
M.MATH_MODULO_TOOLTIP = "Return the remainder from dividing the two numbers.";
M.MATH_CONSTRAIN_HELPURL = "https://en.wikipedia.org/wiki/Clamping_%28graphics%29";
M.MATH_CONSTRAIN_TITLE = "constrain %1 low %2 high %3";
M.MATH_CONSTRAIN_TOOLTIP = "Constrain a number to be between the specified limits (inclusive).";
M.MATH_RANDOM_INT_HELPURL = "https://en.wikipedia.org/wiki/Random_number_generation";
M.MATH_RANDOM_INT_TITLE = "random integer from %1 to %2";
M.MATH_RANDOM_INT_TOOLTIP = "Return a random integer between the two specified limits, inclusive.";
M.MATH_RANDOM_FLOAT_HELPURL = "https://en.wikipedia.org/wiki/Random_number_generation";
M.MATH_RANDOM_FLOAT_TITLE_RANDOM = "random fraction";
M.MATH_RANDOM_FLOAT_TOOLTIP = "Return a random fraction between 0.0 (inclusive) and 1.0 (exclusive).";
M.TEXT_TEXT_HELPURL = "https://en.wikipedia.org/wiki/String_(computer_science)";
M.TEXT_TEXT_TOOLTIP = "A letter, word, or line of text.";
M.TEXT_JOIN_HELPURL = "https://github.com/google/blockly/wiki/Text#text-creation";
M.TEXT_JOIN_TITLE_CREATEWITH = "create text with";
M.TEXT_JOIN_TOOLTIP = "Create a piece of text by joining together any number of items.";
M.TEXT_CREATE_JOIN_TITLE_JOIN = "join";
M.TEXT_CREATE_JOIN_TOOLTIP = "Add, remove, or reorder sections to reconfigure this text block.";
M.TEXT_CREATE_JOIN_ITEM_TITLE_ITEM = M.VARIABLES_DEFAULT_NAME;
M.TEXT_CREATE_JOIN_ITEM_TOOLTIP = "Add an item to the text.";
M.TEXT_APPEND_HELPURL = "https://github.com/google/blockly/wiki/Text#text-modification";
M.TEXT_APPEND_TO = "to";
M.TEXT_APPEND_APPENDTEXT = "append text";
M.TEXT_APPEND_VARIABLE = M.VARIABLES_DEFAULT_NAME;
M.TEXT_APPEND_TOOLTIP = 'Append some text to variable "%1".';
M.TEXT_LENGTH_HELPURL = "https://github.com/google/blockly/wiki/Text#text-modification";
M.TEXT_LENGTH_TITLE = "length of %1";
M.TEXT_LENGTH_TOOLTIP = "Returns the number of letters (including spaces) in the provided text.";
M.TEXT_ISEMPTY_HELPURL = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text";
M.TEXT_ISEMPTY_TITLE = "%1 is empty";
M.TEXT_ISEMPTY_TOOLTIP = "Returns true if the provided text is empty.";
M.TEXT_INDEXOF_HELPURL = "https://github.com/google/blockly/wiki/Text#finding-text";
M.TEXT_INDEXOF_TOOLTIP = "Returns the index of the first/last occurrence of the first text in the second text. Returns %1 if text is not found.";
M.TEXT_INDEXOF_INPUT_INTEXT = "in text";
M.TEXT_INDEXOF_OPERATOR_FIRST = "find first occurrence of text";
M.TEXT_INDEXOF_OPERATOR_LAST = "find last occurrence of text";
M.TEXT_INDEXOF_TAIL = "";
M.TEXT_CHARAT_HELPURL = "https://github.com/google/blockly/wiki/Text#extracting-text";
M.TEXT_CHARAT_INPUT_INTEXT = "in text";
M.TEXT_CHARAT_FROM_START = "get letter #";
M.TEXT_CHARAT_FROM_END = "get letter # from end";
M.TEXT_CHARAT_FIRST = "get first letter";
M.TEXT_CHARAT_LAST = "get last letter";
M.TEXT_CHARAT_RANDOM = "get random letter";
M.TEXT_CHARAT_TAIL = "";
M.TEXT_CHARAT_TOOLTIP = "Returns the letter at the specified position.";
M.TEXT_GET_SUBSTRING_TOOLTIP = "Returns a specified portion of the text.";
M.TEXT_GET_SUBSTRING_HELPURL = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text";
M.TEXT_GET_SUBSTRING_INPUT_IN_TEXT = "in text";
M.TEXT_GET_SUBSTRING_START_FROM_START = "get substring from letter #";
M.TEXT_GET_SUBSTRING_START_FROM_END = "get substring from letter # from end";
M.TEXT_GET_SUBSTRING_START_FIRST = "get substring from first letter";
M.TEXT_GET_SUBSTRING_END_FROM_START = "to letter #";
M.TEXT_GET_SUBSTRING_END_FROM_END = "to letter # from end";
M.TEXT_GET_SUBSTRING_END_LAST = "to last letter";
M.TEXT_GET_SUBSTRING_TAIL = "";
M.TEXT_CHANGECASE_HELPURL = "https://github.com/google/blockly/wiki/Text#adjusting-text-case";
M.TEXT_CHANGECASE_TOOLTIP = "Return a copy of the text in a different case.";
M.TEXT_CHANGECASE_OPERATOR_UPPERCASE = "to UPPER CASE";
M.TEXT_CHANGECASE_OPERATOR_LOWERCASE = "to lower case";
M.TEXT_CHANGECASE_OPERATOR_TITLECASE = "to Title Case";
M.TEXT_TRIM_HELPURL = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces";
M.TEXT_TRIM_TOOLTIP = "Return a copy of the text with spaces removed from one or both ends.";
M.TEXT_TRIM_OPERATOR_BOTH = "trim spaces from both sides of";
M.TEXT_TRIM_OPERATOR_LEFT = "trim spaces from left side of";
M.TEXT_TRIM_OPERATOR_RIGHT = "trim spaces from right side of";
M.TEXT_PRINT_HELPURL = "https://github.com/google/blockly/wiki/Text#printing-text";
M.TEXT_PRINT_TITLE = "print %1";
M.TEXT_PRINT_TOOLTIP = "Print the specified text, number or other value.";
M.TEXT_PROMPT_HELPURL = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user";
M.TEXT_PROMPT_TYPE_TEXT = "prompt for text with message";
M.TEXT_PROMPT_TYPE_NUMBER = "prompt for number with message";
M.TEXT_PROMPT_TOOLTIP_NUMBER = "Prompt for user for a number.";
M.TEXT_PROMPT_TOOLTIP_TEXT = "Prompt for user for some text.";
M.TEXT_COUNT_MESSAGE0 = "count %1 in %2";
M.TEXT_COUNT_HELPURL = "https://github.com/google/blockly/wiki/Text#counting-substrings";
M.TEXT_COUNT_TOOLTIP = "Count how many times some text occurs within some other text.";
M.TEXT_REPLACE_MESSAGE0 = "replace %1 with %2 in %3";
M.TEXT_REPLACE_HELPURL = "https://github.com/google/blockly/wiki/Text#replacing-substrings";
M.TEXT_REPLACE_TOOLTIP = "Replace all occurances of some text within some other text.";
M.TEXT_REVERSE_MESSAGE0 = "reverse %1";
M.TEXT_REVERSE_HELPURL = "https://github.com/google/blockly/wiki/Text#reversing-text";
M.TEXT_REVERSE_TOOLTIP = "Reverses the order of the characters in the text.";
M.LISTS_CREATE_EMPTY_HELPURL = "https://github.com/google/blockly/wiki/Lists#create-empty-list";
M.LISTS_CREATE_EMPTY_TITLE = "create empty list";
M.LISTS_CREATE_EMPTY_TOOLTIP = "Returns a list, of length 0, containing no data records";
M.LISTS_CREATE_WITH_HELPURL = "https://github.com/google/blockly/wiki/Lists#create-list-with";
M.LISTS_CREATE_WITH_TOOLTIP = "Create a list with any number of items.";
M.LISTS_CREATE_WITH_INPUT_WITH = "create list with";
M.LISTS_CREATE_WITH_CONTAINER_TITLE_ADD = "list";
M.LISTS_CREATE_WITH_CONTAINER_TOOLTIP = "Add, remove, or reorder sections to reconfigure this list block.";
M.LISTS_CREATE_WITH_ITEM_TITLE = M.VARIABLES_DEFAULT_NAME;
M.LISTS_CREATE_WITH_ITEM_TOOLTIP = "Add an item to the list.";
M.LISTS_REPEAT_HELPURL = "https://github.com/google/blockly/wiki/Lists#create-list-with";
M.LISTS_REPEAT_TOOLTIP = "Creates a list consisting of the given value repeated the specified number of times.";
M.LISTS_REPEAT_TITLE = "create list with item %1 repeated %2 times";
M.LISTS_LENGTH_HELPURL = "https://github.com/google/blockly/wiki/Lists#length-of";
M.LISTS_LENGTH_TITLE = "length of %1";
M.LISTS_LENGTH_TOOLTIP = "Returns the length of a list.";
M.LISTS_ISEMPTY_HELPURL = "https://github.com/google/blockly/wiki/Lists#is-empty";
M.LISTS_ISEMPTY_TITLE = "%1 is empty";
M.LISTS_ISEMPTY_TOOLTIP = "Returns true if the list is empty.";
M.LISTS_INLIST = "in list";
M.LISTS_INDEX_OF_HELPURL = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list";
M.LISTS_INDEX_OF_INPUT_IN_LIST = M.LISTS_INLIST;
M.LISTS_INDEX_OF_FIRST = "find first occurrence of item";
M.LISTS_INDEX_OF_LAST = "find last occurrence of item";
M.LISTS_INDEX_OF_TOOLTIP = "Returns the index of the first/last occurrence of the item in the list. Returns %1 if item is not found.";
M.LISTS_GET_INDEX_HELPURL = M.LISTS_INDEX_OF_HELPURL;
M.LISTS_GET_INDEX_GET = "get";
M.LISTS_GET_INDEX_GET_REMOVE = "get and remove";
M.LISTS_GET_INDEX_REMOVE = "remove";
M.LISTS_GET_INDEX_FROM_START = "#";
M.LISTS_GET_INDEX_FROM_END = "# from end";
M.LISTS_GET_INDEX_FIRST = "first";
M.LISTS_GET_INDEX_LAST = "last";
M.LISTS_GET_INDEX_RANDOM = "random";
M.LISTS_GET_INDEX_TAIL = "";
M.LISTS_GET_INDEX_INPUT_IN_LIST = M.LISTS_INLIST;
M.LISTS_INDEX_FROM_START_TOOLTIP = "%1 is the first item.";
M.LISTS_INDEX_FROM_END_TOOLTIP = "%1 is the last item.";
M.LISTS_GET_INDEX_TOOLTIP_GET_FROM = "Returns the item at the specified position in a list.";
M.LISTS_GET_INDEX_TOOLTIP_GET_FIRST = "Returns the first item in a list.";
M.LISTS_GET_INDEX_TOOLTIP_GET_LAST = "Returns the last item in a list.";
M.LISTS_GET_INDEX_TOOLTIP_GET_RANDOM = "Returns a random item in a list.";
M.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM = "Removes and returns the item at the specified position in a list.";
M.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST = "Removes and returns the first item in a list.";
M.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST = "Removes and returns the last item in a list.";
M.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM = "Removes and returns a random item in a list.";
M.LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM = "Removes the item at the specified position in a list.";
M.LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST = "Removes the first item in a list.";
M.LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST = "Removes the last item in a list.";
M.LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM = "Removes a random item in a list.";
M.LISTS_SET_INDEX_HELPURL = "https://github.com/google/blockly/wiki/Lists#in-list--set";
M.LISTS_SET_INDEX_INPUT_IN_LIST = M.LISTS_INLIST;
M.LISTS_SET_INDEX_SET = "set";
M.LISTS_SET_INDEX_INSERT = "insert at";
M.LISTS_SET_INDEX_INPUT_TO = "as";
M.LISTS_SET_INDEX_TOOLTIP_SET_FROM = "Sets the item at the specified position in a list.";
M.LISTS_SET_INDEX_TOOLTIP_SET_FIRST = "Sets the first item in a list.";
M.LISTS_SET_INDEX_TOOLTIP_SET_LAST = "Sets the last item in a list.";
M.LISTS_SET_INDEX_TOOLTIP_SET_RANDOM = "Sets a random item in a list.";
M.LISTS_SET_INDEX_TOOLTIP_INSERT_FROM = "Inserts the item at the specified position in a list.";
M.LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST = "Inserts the item at the start of a list.";
M.LISTS_SET_INDEX_TOOLTIP_INSERT_LAST = "Append the item to the end of a list.";
M.LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM = "Inserts the item randomly in a list.";
M.LISTS_GET_SUBLIST_HELPURL = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist";
M.LISTS_GET_SUBLIST_INPUT_IN_LIST = M.LISTS_INLIST;
M.LISTS_GET_SUBLIST_START_FROM_START = "get sub-list from #";
M.LISTS_GET_SUBLIST_START_FROM_END = "get sub-list from # from end";
M.LISTS_GET_SUBLIST_START_FIRST = "get sub-list from first";
M.LISTS_GET_SUBLIST_END_FROM_START = "to #";
M.LISTS_GET_SUBLIST_END_FROM_END = "to # from end";
M.LISTS_GET_SUBLIST_END_LAST = "to last";
M.LISTS_GET_SUBLIST_TAIL = "";
M.LISTS_GET_SUBLIST_TOOLTIP = "Creates a copy of the specified portion of a list.";
M.LISTS_SORT_HELPURL = "https://github.com/google/blockly/wiki/Lists#sorting-a-list";
M.LISTS_SORT_TITLE = "sort %1 %2 %3";
M.LISTS_SORT_TOOLTIP = "Sort a copy of a list.";
M.LISTS_SORT_ORDER_ASCENDING = "ascending";
M.LISTS_SORT_ORDER_DESCENDING = "descending";
M.LISTS_SORT_TYPE_NUMERIC = "numeric";
M.LISTS_SORT_TYPE_TEXT = "alphabetic";
M.LISTS_SORT_TYPE_IGNORECASE = "alphabetic, ignore case";
M.LISTS_SPLIT_HELPURL = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists";
M.LISTS_SPLIT_LIST_FROM_TEXT = "make list from text";
M.LISTS_SPLIT_TEXT_FROM_LIST = "make text from list";
M.LISTS_SPLIT_WITH_DELIMITER = "with delimiter";
M.LISTS_SPLIT_TOOLTIP_SPLIT = "Split text into a list of texts, breaking at each delimiter.";
M.LISTS_SPLIT_TOOLTIP_JOIN = "Join a list of texts into one text, separated by a delimiter.";
M.LISTS_REVERSE_HELPURL = "https://github.com/google/blockly/wiki/Lists#reversing-a-list";
M.LISTS_REVERSE_MESSAGE0 = "reverse %1";
M.LISTS_REVERSE_TOOLTIP = "Reverse a copy of a list.";
M.ORDINAL_NUMBER_SUFFIX = "";
M.VARIABLES_GET_HELPURL = "https://github.com/google/blockly/wiki/Variables#get";
M.VARIABLES_GET_TOOLTIP = "Returns the value of this variable.";
M.VARIABLES_GET_CREATE_SET = 'Create "set %1"';
M.VARIABLES_SET_HELPURL = "https://github.com/google/blockly/wiki/Variables#set";
M.VARIABLES_SET = "set %1 to %2";
M.VARIABLES_SET_TOOLTIP = "Sets this variable to be equal to the input.";
M.VARIABLES_SET_CREATE_GET = 'Create "get %1"';
M.PROCEDURES_DEFNORETURN_HELPURL = "https://en.wikipedia.org/wiki/Procedure_%28computer_science%29";
M.PROCEDURES_DEFNORETURN_TITLE = "to";
M.PROCEDURES_DEFNORETURN_PROCEDURE = "do something";
M.PROCEDURES_BEFORE_PARAMS = "with:";
M.PROCEDURES_CALL_BEFORE_PARAMS = "with:";
M.PROCEDURES_DEFNORETURN_DO = "";
M.PROCEDURES_DEFNORETURN_TOOLTIP = "Creates a function with no output.";
M.PROCEDURES_DEFNORETURN_COMMENT = "Describe this function...";
M.PROCEDURES_DEFRETURN_HELPURL = "https://en.wikipedia.org/wiki/Procedure_%28computer_science%29";
M.PROCEDURES_DEFRETURN_TITLE = M.PROCEDURES_DEFNORETURN_TITLE;
M.PROCEDURES_DEFRETURN_PROCEDURE = M.PROCEDURES_DEFNORETURN_PROCEDURE;
M.PROCEDURES_DEFRETURN_DO = M.PROCEDURES_DEFNORETURN_DO;
M.PROCEDURES_DEFRETURN_COMMENT = M.PROCEDURES_DEFNORETURN_COMMENT;
M.PROCEDURES_DEFRETURN_RETURN = "return";
M.PROCEDURES_DEFRETURN_TOOLTIP = "Creates a function with an output.";
M.PROCEDURES_ALLOW_STATEMENTS = "allow statements";
M.PROCEDURES_DEF_DUPLICATE_WARNING = "Warning: This function has duplicate parameters.";
M.PROCEDURES_CALLNORETURN_HELPURL = "https://en.wikipedia.org/wiki/Procedure_%28computer_science%29";
M.PROCEDURES_CALLNORETURN_TOOLTIP = 'Run the user-defined function "%1".';
M.PROCEDURES_CALLRETURN_HELPURL = "https://en.wikipedia.org/wiki/Procedure_%28computer_science%29";
M.PROCEDURES_CALLRETURN_TOOLTIP = 'Run the user-defined function "%1" and use its output.';
M.PROCEDURES_MUTATORCONTAINER_TITLE = "inputs";
M.PROCEDURES_MUTATORCONTAINER_TOOLTIP = "Add, remove, or reorder inputs to this function.";
M.PROCEDURES_MUTATORARG_TITLE = "input name:";
M.PROCEDURES_MUTATORARG_TOOLTIP = "Add an input to the function.";
M.PROCEDURES_HIGHLIGHT_DEF = "Highlight function definition";
M.PROCEDURES_CREATE_DO = 'Create "%1"';
M.PROCEDURES_IFRETURN_TOOLTIP = "If a value is true, then return a second value.";
M.PROCEDURES_IFRETURN_HELPURL = "http://c2.com/cgi/wiki?GuardClause";
M.PROCEDURES_IFRETURN_WARNING = "Warning: This block may be used only within a function definition.";
/*
Visual Blocks Editor
Copyright 2014 Google Inc.
https://developers.google.com/blockly/
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
var V = function(a, b, c) {
V.superClass_.constructor.call(this, a);
this.getMetrics = a.getMetrics || Jr;
this.setMetrics = a.setMetrics || Kr;
a = [];
a[1] = new Lq;
a[2] = new Lq;
a[3] = new Lq;
a[4] = new Lq;
this.connectionDBList = a;
b && (this.blockDragSurface = b);
c && (this.workspaceDragSurface_ = c);
this.useWorkspaceDragSurface_ = !(!this.workspaceDragSurface_ || !Ak());
b && (this.blockDragSurface = b);
c && (this.workspaceDragSurface_ = c);
this.useWorkspaceDragSurface_ = !(!this.workspaceDragSurface_ || !Ak());
this.SOUNDS_ = Object.create(null);
this.highlightedBlocks_ = [];
this.toolboxCategoryCallbacks_.VARIABLE = Dn;
this.toolboxCategoryCallbacks_.PROCEDURE = dr
};
w(V, Wh);
d = V.prototype;
d.resizeHandlerWrapper_ = null;
d.rendered = !0;
d.isFlyout = !1;
d.isMutator = !1;
d.dragMode_ = 0;
d.resizesEnabled_ = !0;
d.scrollX = 0;
d.scrollY = 0;
d.startScrollX = 0;
d.startScrollY = 0;
d.dragDeltaXY_ = new A(0, 0);
d.scale = 1;
d.trashcan = null;
d.scrollbar = null;
d.blockDragSurface = null;
d.workspaceDragSurface_ = null;
d.useWorkspaceDragSurface_ = !1;
d.isDragSurfaceActive_ = !1;
d.lastRecordedPageScroll_ = new A(0, 0);
d.flyoutButtonCallbacks_ = {};
d.toolboxCategoryCallbacks_ = {};
d.inverseScreenCTM_ = null;
var jq = function(a) {
var b = Sj(a).getScreenCTM();
b && (a.inverseScreenCTM_ = b.inverse())
},
Lr = 0;
V.prototype.createDom = function(a) {
this.svgGroup_ = O("g", {
"class": "blocklyWorkspace"
}, null);
if (a) {
var b = {
height: "84px",
width: "100%",
rx: "42px",
"class": a
},
c = O("clipPath", {
id: "svgclip_" + Lr++
}, this.svgGroup_);
O("rect", b, c);
this.svgGroup_.setAttribute("clip-path", "url(#" + c.id + ")");
this.svgGroup_.setAttribute("filter", "url(#" + this.options.insetShadowFilterId + ")");
this.svgBackground_ = O("rect", b, this.svgGroup_);
"blocklyMainBackground" == a && (this.svgBackground_.style.fill = I.workspace)
}
this.svgBlockCanvas_ = O("g", {
"class": "blocklyBlockCanvas"
}, this.svgGroup_);
this.svgBubbleCanvas_ = O("g", {
"class": "blocklyBubbleCanvas"
}, this.svgGroup_);
a = Fi;
this.options.hasTrashcan && (a = Mr(this, a));
this.options.zoomOptions && this.options.zoomOptions.controls && (a = Nr(this, a));
if (!this.isFlyout) {
N(this.svgGroup_, "mousedown", this, this.onMouseDown_);
var e = this;
T(this.svgGroup_, "touchstart", null, function(a) {
Lh(a, e)
});
this.options.zoomOptions && this.options.zoomOptions.wheel && N(this.svgGroup_, "wheel", this, this.onMouseWheel_)
}
this.options.hasCategories &&
(this.toolbox_ = new ur(this));
Or(this);
Pr(this);
kq(this);
return this.svgGroup_
};
V.prototype.dispose = function() {
this.rendered = !1;
V.superClass_.dispose.call(this);
this.svgGroup_ && (C(this.svgGroup_), this.svgGroup_ = null);
this.svgBubbleCanvas_ = this.svgBlockCanvas_ = null;
this.toolbox_ && (this.toolbox_.dispose(), this.toolbox_ = null);
this.flyout_ && (this.flyout_.dispose(), this.flyout_ = null);
this.trashcan && (this.trashcan.dispose(), this.trashcan = null);
this.scrollbar && (this.scrollbar.dispose(), this.scrollbar = null);
this.zoomControls_ && (this.zoomControls_.dispose(), this.zoomControls_ = null);
this.toolboxCategoryCallbacks_ &&
(this.toolboxCategoryCallbacks_ = null);
this.flyoutButtonCallbacks_ && (this.flyoutButtonCallbacks_ = null);
this.options.parentWorkspace || C(Sj(this).parentNode);
this.resizeHandlerWrapper_ && (Oh(this.resizeHandlerWrapper_), this.resizeHandlerWrapper_ = null)
};
V.prototype.newBlock = function(a, b) {
return new X(this, a, b)
};
var Mr = function(a, b) {
a.trashcan = new Ar(a);
var c = a.trashcan.createDom();
a.svgGroup_.insertBefore(c, a.svgBlockCanvas_);
return a.trashcan.init(b)
},
Nr = function(a, b) {
a.zoomControls_ = new Gr(a);
var c = a.zoomControls_.createDom();
a.svgGroup_.appendChild(c);
return a.zoomControls_.init(b)
},
Qr = function(a) {
var b = {
disabledPatternId: a.options.disabledPatternId,
parentWorkspace: a,
RTL: a.RTL,
oneBasedIndex: a.options.oneBasedIndex,
horizontalLayout: a.horizontalLayout,
toolboxPosition: a.options.toolboxPosition
};
a.horizontalLayout ?
a.flyout_ = new rr(b) : a.flyout_ = new sr(b);
a.flyout_.autoClose = !1;
return a.flyout_.createDom("svg")
};
V.prototype.getFlyout = function() {
return this.flyout_ ? this.flyout_ : this.toolbox_ ? this.toolbox_.flyout_ : null
};
var eq = function(a) {
a.resizesEnabled_ && a.rendered && (a.scrollbar && a.scrollbar.resize(), jq(a))
};
V.prototype.resize = function() {
this.toolbox_ && this.toolbox_.position();
this.flyout_ && this.flyout_.position();
this.trashcan && this.trashcan.position();
this.zoomControls_ && this.zoomControls_.position();
this.scrollbar && this.scrollbar.resize();
jq(this);
kq(this)
};
var Sj = function(a) {
if (a.cachedParentSvg_) return a.cachedParentSvg_;
for (var b = a.svgGroup_; b;) {
if ("svg" == b.tagName) return a.cachedParentSvg_ = b;
b = b.parentNode
}
};
V.prototype.translate = function(a, b) {
if (this.useWorkspaceDragSurface_ && this.isDragSurfaceActive_) this.workspaceDragSurface_.translateSurface(a, b);
else {
var c = "translate(" + a + "," + b + ") scale(" + this.scale + ")";
this.svgBlockCanvas_.setAttribute("transform", c);
this.svgBubbleCanvas_.setAttribute("transform", c)
}
if (this.blockDragSurface) {
c = this.blockDragSurface;
var e = this.scale;
c.Blockly_BlockDragSurfaceSvg_prototype$scale_ = e;
var f = Number(a.toFixed(0));
var g = Number(b.toFixed(0));
c.Blockly_BlockDragSurfaceSvg_prototype$dragGroup_.setAttribute("transform",
"translate(" + f + "," + g + ") scale(" + e + ")")
}
};
var Mh = function(a) {
if (a.useWorkspaceDragSurface_) {
a.isDragSurfaceActive_ = !1;
var b = a.workspaceDragSurface_.getSurfaceTranslation();
a.workspaceDragSurface_.clearAndHide(a.svgGroup_);
b = "translate(" + b.x + "," + b.y + ") scale(" + a.scale + ")";
a.svgBlockCanvas_.setAttribute("transform", b);
a.svgBubbleCanvas_.setAttribute("transform", b)
}
},
pr = function(a) {
if (a.useWorkspaceDragSurface_) {
a.isDragSurfaceActive_ = !0;
var b = a.svgBlockCanvas_.previousSibling,
c = Sj(a).getAttribute("width"),
e = Sj(a).getAttribute("height"),
f = nk(a.svgBlockCanvas_),
g = a.workspaceDragSurface_,
h = a.svgBlockCanvas_,
m = a.svgBubbleCanvas_,
n = a.scale;
g.previousSibling_ = b;
h.setAttribute("transform", "translate(0, 0) scale(" + n + ")");
m.setAttribute("transform", "translate(0, 0) scale(" + n + ")");
g.Blockly_WorkspaceDragSurfaceSvg$SVG_.setAttribute("width", c);
g.Blockly_WorkspaceDragSurfaceSvg$SVG_.setAttribute("height", e);
g.Blockly_WorkspaceDragSurfaceSvg$SVG_.appendChild(h);
g.Blockly_WorkspaceDragSurfaceSvg$SVG_.appendChild(m);
g.Blockly_WorkspaceDragSurfaceSvg$SVG_.style.display =
"block";
a.workspaceDragSurface_.translateSurface(f.x, f.y)
}
};
V.prototype.getWidth = function() {
var a = this.getMetrics();
return a ? a.viewWidth / this.scale : 0
};
V.prototype.setVisible = function(a) {
this.scrollbar && this.scrollbar.setContainerVisible(a);
this.getFlyout() && this.getFlyout().setContainerVisible(a);
Sj(this).style.display = a ? "block" : "none";
this.toolbox_ && (this.toolbox_.HtmlDiv.style.display = a ? "block" : "none");
a ? (this.render(), this.toolbox_ && this.toolbox_.position()) : (Di(!0), ei())
};
V.prototype.render = function() {
for (var a = ai(this), b = a.length - 1; 0 <= b; b--) a[b].render(!1)
};
var Rr = function(a, b) {
for (var c = 0, e; e = a.highlightedBlocks_[c]; c++) uq(e, !1);
a.highlightedBlocks_.length = 0;
e = b ? qi(a, b) : null;
null != e && (-1 == a.highlightedBlocks_.indexOf(e) && a.highlightedBlocks_.push(e), uq(e, !0))
},
qq = function(a) {
var b = nq;
if (a.rendered) {
hq();
Q++;
try {
var c = lj(b, a),
e = parseInt(b.getAttribute("x"), 10),
f = parseInt(b.getAttribute("y"), 10);
if (!isNaN(e) && !isNaN(f)) {
a.RTL && (e = -e);
do {
b = !1;
for (var g = ai(a), h = 0, m; m = g[h]; h++) {
var n = m.getRelativeToSurfaceXY();
if (1 >= Math.abs(e - n.x) && 1 >= Math.abs(f - n.y)) {
b = !0;
break
}
}
if (!b) {
var p = c.getConnections(!1);
h = 0;
for (var r; r = p[h]; h++)
if (r.closest(48, new A(e, f)).connection) {
b = !0;
break
}
}
b && (e = a.RTL ? e - 48 : e + 48, f += 96)
} while (b);
c.moveBy(e, f)
}
} finally {
Q--
}
0 == Q && !c.isShadowBlock && P(new jo(c));
Ip(c)
}
};
V.prototype.renameVariable = function(a, b) {
V.superClass_.renameVariable.call(this, a, b);
this.toolbox_ && this.toolbox_.flyout_ && !Rq && xr(this.toolbox_)
};
V.prototype.createVariable = function(a) {
V.superClass_.createVariable.call(this, a);
this.toolbox_ && this.toolbox_.flyout_ && !Rq && xr(this.toolbox_)
};
var kq = function(a) {
a.trashcan ? a.deleteAreaTrash_ = a.trashcan.getClientRect() : a.deleteAreaTrash_ = null;
a.flyout_ ? a.deleteAreaToolbox_ = a.flyout_.getClientRect() : a.toolbox_ ? a.deleteAreaToolbox_ = a.toolbox_.getClientRect() : a.deleteAreaToolbox_ = null
},
lq = function(a, b) {
var c = new A(b.clientX, b.clientY);
return a.deleteAreaTrash_ && a.deleteAreaTrash_.contains(c) ? 1 : a.deleteAreaToolbox_ && a.deleteAreaToolbox_.contains(c) ? 2 : null
};
V.prototype.onMouseDown_ = function(a) {
this.markFocused();
Bi(a) ? J = null : (hq(), Di(), Vj(), a.target && a.target.nodeName && ("svg" == a.target.nodeName.toLowerCase() || a.target == this.svgBackground_) && lo && !this.options.readOnly && Vp(lo), Ai(a) ? (Ph(a), J = null) : this.scrollbar ? (this.dragMode_ = 1, this.startDragMouseX = a.clientX, this.startDragMouseY = a.clientY, this.startDragMetrics = this.getMetrics(), this.startScrollX = this.scrollX, this.startScrollY = this.scrollY, pr(this), "mouseup" in Ih && (Hh = Hh || [], Hh = Hh.concat(N(document, "mouseup",
null, Ph))), Fh = Fh || [], Fh = Fh.concat(N(document, "mousemove", null, Rh))) : J = null, a.stopPropagation(), a.preventDefault())
};
var Ci = function(a, b, c) {
b = qk(b, Sj(a), a.inverseScreenCTM_);
b.x /= a.scale;
b.y /= a.scale;
a.dragDeltaXY_ = Ze(c, new A(b.x, b.y))
},
Ei = function(a, b) {
var c = qk(b, Sj(a), a.inverseScreenCTM_);
c.x /= a.scale;
c.y /= a.scale;
var e = a.dragDeltaXY_;
c = new A(c.x, c.y);
return new A(e.x + c.x, e.y + c.y)
},
Ji = function(a) {
return 2 == Yn || Rq && 2 == Rq.dragMode || 2 == a.dragMode_
};
V.prototype.onMouseWheel_ = function(a) {
if (a.ctrlKey) {
hq();
var b = -a.deltaY / 50,
c = qk(a, Sj(this), this.inverseScreenCTM_);
this.zoom(c.x, c.y, b)
} else L(!0), ei(), b = this.scrollX - a.deltaX, c = this.scrollY - a.deltaY, this.startDragMetrics = this.getMetrics(), Qh(this, b, c);
a.preventDefault()
};
var Sr = function(a, b, c) {
if (b.length) {
try {
var e = new window.Audio
} catch (n) {
return
}
for (var f, g = 0; g < b.length; g++) {
var h = b[g],
m = h.match(/\.(\w+)$/);
if (m && e.canPlayType("audio/" + m[1])) {
f = new window.Audio(h);
break
}
}
f && f.play && (a.SOUNDS_[c] = f)
}
},
mq = function(a, b, c) {
var e = new Oi(null, "sound", null, b);
e.workspaceId = a.id;
P(e);
(e = a.SOUNDS_[b]) ? (b = new Date, 100 > b - a.lastSound_ || (a.lastSound_ = b, a = xd && 9 === xd || pd || nd ? e : e.cloneNode(), a.volume = void 0 === c ? 1 : c, a.play())) : a.options.parentWorkspace && mq(a.options.parentWorkspace,
b, c)
},
Tr = function(a, b) {
if (b = Ep(b)) {
if (!a.options.languageTree) throw "Existing toolbox is null. Can't create new toolbox.";
if (b.getElementsByTagName("category").length) {
if (!a.toolbox_) throw "Existing toolbox has no categories. Can't change mode.";
a.options.languageTree = b;
a.toolbox_.populate(b);
a.toolbox_.position()
} else {
if (!a.flyout_) throw "Existing toolbox has categories. Can't change mode.";
a.options.languageTree = b;
a.flyout_.show(b.childNodes)
}
} else if (a.options.languageTree) throw "Can't nullify an existing toolbox.";
};
V.prototype.markFocused = function() {
this.options.parentWorkspace ? this.options.parentWorkspace.markFocused() : K = this
};
V.prototype.zoom = function(a, b, c) {
var e = this.options.zoomOptions.scaleSpeed,
f = this.getMetrics(),
g = Sj(this).createSVGPoint();
g.x = a;
g.y = b;
g = g.matrixTransform(this.svgBlockCanvas_.getCTM().inverse());
a = g.x;
b = g.y;
g = this.svgBlockCanvas_;
e = Math.pow(e, c);
c = this.scale * e;
c > this.options.zoomOptions.maxScale ? e = this.options.zoomOptions.maxScale / this.scale : c < this.options.zoomOptions.minScale && (e = this.options.zoomOptions.minScale / this.scale);
this.scale != c && (this.scrollbar && (a = g.getCTM().translate(a * (1 - e), b * (1 - e)).scale(e),
this.scrollX = a.e - f.absoluteLeft, this.scrollY = a.f - f.absoluteTop), Ir(this, c), L(!0), ei())
};
var Hr = function(a, b) {
var c = a.getMetrics();
a.zoom(c.viewWidth / 2, c.viewHeight / 2, b)
},
Ir = function(a, b) {
a.options.zoomOptions.maxScale && b > a.options.zoomOptions.maxScale ? b = a.options.zoomOptions.maxScale : a.options.zoomOptions.minScale && b < a.options.zoomOptions.minScale && (b = a.options.zoomOptions.minScale);
a.scale = b;
Pr(a);
Or(a);
L(!0);
ei();
a.scrollbar ? a.scrollbar.resize() : a.translate(a.scrollX, a.scrollY);
Di(!1);
a.flyout_ && a.flyout_.reflow()
},
Qh = function(a, b, c) {
var e = a.startDragMetrics;
b = Math.min(b, -e.contentLeft);
c = Math.min(c, -e.contentTop);
b = Math.max(b, e.viewWidth - e.contentLeft - e.contentWidth);
c = Math.max(c, e.viewHeight - e.contentTop - e.contentHeight);
L(!0);
ei();
a.scrollbar.set(-b - e.contentLeft, -c - e.contentTop)
},
Or = function(a) {
if (a.options.gridPattern) {
var b = a.options.gridOptions.spacing * a.scale || 100;
a.options.gridPattern.setAttribute("width", b);
a.options.gridPattern.setAttribute("height", b);
b = Math.floor(a.options.gridOptions.spacing / 2) + .5;
var c = b - a.options.gridOptions.length / 2,
e = b + a.options.gridOptions.length /
2,
f = a.options.gridPattern.firstChild,
g = f && f.nextSibling;
b *= a.scale;
c *= a.scale;
e *= a.scale;
f && (f.setAttribute("stroke-width", a.scale), f.setAttribute("x1", c), f.setAttribute("y1", b), f.setAttribute("x2", e), f.setAttribute("y2", b));
g && (g.setAttribute("stroke-width", a.scale), g.setAttribute("x1", b), g.setAttribute("y1", c), g.setAttribute("x2", b), g.setAttribute("y2", e))
}
},
Pr = function(a) {
a.options.stackGlowBlur && a.options.stackGlowBlur.setAttribute("stdDeviation", 1.3 / a.scale)
},
Jr = function() {
var a, b = Hq(Sj(this));
if (this.toolbox_)
if (0 == this.toolboxPosition || 1 == this.toolboxPosition) b.height -= this.toolbox_.getHeight();
else if (2 == this.toolboxPosition || 3 == this.toolboxPosition) b.width -= this.toolbox_.getWidth();
var c = Qq.prototype.CORNER_RADIUS - 1;
var e = b.width - c,
f = b.height - c;
c = $h(this, !1);
if (c.length) {
var g = gq(c[0]);
for (a = 1; a < c.length; a++) {
var h = gq(c[a]);
h.topLeft.x < g.topLeft.x && (g.topLeft.x = h.topLeft.x);
h.bottomRight.x > g.bottomRight.x && (g.bottomRight.x = h.bottomRight.x);
h.topLeft.y < g.topLeft.y && (g.topLeft.y = h.topLeft.y);
h.bottomRight.y > g.bottomRight.y && (g.bottomRight.y = h.bottomRight.y)
}
c = g.topLeft.x;
a = g.topLeft.y;
h = g.bottomRight.x - g.topLeft.x;
g = g.bottomRight.y - g.topLeft.y
} else g = h = a = c = 0;
var m = h * this.scale,
n = g * this.scale,
p = c * this.scale,
r = a * this.scale;
if (this.scrollbar) {
var t = Math.min(p - e / 2, p + m - e);
e = Math.max(p + m + e / 2, p + e);
m = Math.min(r - f / 2, r + n - f);
f = Math.max(r + n + f / 2, r + f)
} else t = c, e = t + h, m = a, f = m + g;
n = 0;
this.toolbox_ && 2 == this.toolboxPosition && (n = this.toolbox_.getWidth());
r = 0;
this.toolbox_ && 0 == this.toolboxPosition && (r = this.toolbox_.getHeight());
return {
viewHeight: b.height,
viewWidth: b.width,
contentHeight: f - m,
contentWidth: e - t,
viewTop: -this.scrollY,
viewLeft: -this.scrollX,
contentTop: m,
contentLeft: t,
absoluteTop: r,
absoluteLeft: n,
toolboxWidth: this.toolbox_ ? this.toolbox_.getWidth() : 0,
toolboxHeight: this.toolbox_ ? this.toolbox_.getHeight() : 0,
flyoutWidth: this.flyout_ ? this.flyout_.getWidth() : 0,
flyoutHeight: this.flyout_ ? this.flyout_.getHeight() : 0,
blocksTop: a * this.scale,
blocksLeft: c * this.scale,
blocksWidth: h * this.scale,
blocksHeight: g * this.scale,
toolboxPosition: this.toolboxPosition
}
},
Kr = function(a) {
if (!this.scrollbar) throw "Attempt to set top level workspace scroll without scrollbars.";
var b = this.getMetrics();
v(a.x) && (this.scrollX = -b.contentWidth * a.x - b.contentLeft);
v(a.y) && (this.scrollY = -b.contentHeight * a.y - b.contentTop);
a = this.scrollX + b.absoluteLeft;
b = this.scrollY + b.absoluteTop;
this.translate(a, b);
this.options.gridPattern && (this.options.gridPattern.setAttribute("x", a), this.options.gridPattern.setAttribute("y", b), (z || id) && Or(this))
};
V.prototype.setResizesEnabled = function(a) {
var b = !this.resizesEnabled_ && a;
this.resizesEnabled_ = a;
b && eq(this)
};
V.prototype.Blockly_Workspace_prototype$clear = function() {
this.setResizesEnabled(!1);
V.superClass_.Blockly_Workspace_prototype$clear.call(this);
this.setResizesEnabled(!0)
};
var yn = function(a, b) {
a.flyoutButtonCallbacks_.CREATE_VARIABLE = b
},
Nq = function(a, b) {
var c = a.flyoutButtonCallbacks_[b];
return c ? c : null
},
Zq = function(a, b) {
var c = a.toolboxCategoryCallbacks_[b];
return c ? c : null
};
V.prototype.setVisible = V.prototype.setVisible;
var Wr = function(a, b) {
u(a) && (a = document.getElementById(a) || document.querySelector(a));
if (!pg(document, a)) throw "Error: container is not in current document.";
var c = new Vh(b || {}),
e = B("div", "injectionDiv");
a.appendChild(e);
e.setAttribute("dir", "LTR");
bl = c.RTL;
var f = ".blocklyDraggable {}\n";
c.hasCss && (f += Dp.join("\n"), vo && (f += vp.join("\n")));
zp = c.pathToMedia.replace(/[\\\/]$/, "");
f = f.replace(/<<<PATH>>>/g, zp);
for (var g in I) I.hasOwnProperty(g) && (f = f.replace(new RegExp("\\$colour\\_" + g, "g"), I[g]));
g = document.createElement("style");
g.appendChild(document.createTextNode(f));
Bp();
yp.push(g);
Ap(g);
f = O("svg", {
xmlns: "http://www.w3.org/2000/svg",
"xmlns:html": "http://www.w3.org/1999/xhtml",
"xmlns:xlink": "http://www.w3.org/1999/xlink",
version: "1.1",
"class": "blocklySvg"
}, e);
g = O("defs", {}, f);
var h = String(Math.random()).substring(2),
m = O("filter", {
id: "blocklyStackGlowFilter",
height: "160%",
width: "180%",
y: "-30%",
x: "-40%"
}, g);
c.stackGlowBlur = O("feGaussianBlur", {
"in": "SourceGraphic",
stdDeviation: 1.3
}, m);
var n = O("feComponentTransfer", {
result: "outBlur"
},
m);
O("feFuncA", {
type: "table",
tableValues: "0" + Hb(" 1", 16)
}, n);
O("feFlood", {
"flood-color": I.stackGlow,
"flood-opacity": I.stackGlowOpacity,
result: "outColor"
}, m);
O("feComposite", {
"in": "outColor",
in2: "outBlur",
operator: "in",
result: "outGlow"
}, m);
O("feComposite", {
"in": "SourceGraphic",
in2: "outGlow",
operator: "over"
}, m);
m = O("filter", {
id: "blocklyReplacementGlowFilter",
height: "160%",
width: "180%",
y: "-30%",
x: "-40%"
}, g);
O("feGaussianBlur", {
"in": "SourceGraphic",
stdDeviation: 2
}, m);
n = O("feComponentTransfer", {
result: "outBlur"
},
m);
O("feFuncA", {
type: "table",
tableValues: "0" + Hb(" 1", 16)
}, n);
O("feFlood", {
"flood-color": I.replacementGlow,
"flood-opacity": I.replacementGlowOpacity,
result: "outColor"
}, m);
O("feComposite", {
"in": "outColor",
in2: "outBlur",
operator: "in",
result: "outGlow"
}, m);
O("feComposite", {
"in": "SourceGraphic",
in2: "outGlow",
operator: "over"
}, m);
n = O("filter", {
id: "blocklyEmbossFilter" + h
}, g);
O("feGaussianBlur", {
"in": "SourceAlpha",
stdDeviation: 1,
result: "blur"
}, n);
m = O("feSpecularLighting", {
"in": "blur",
surfaceScale: 1,
specularConstant: .5,
specularExponent: 10,
"lighting-color": "white",
result: "specOut"
}, n);
O("fePointLight", {
x: -5E3,
y: -1E4,
z: 2E4
}, m);
O("feComposite", {
"in": "specOut",
in2: "SourceAlpha",
operator: "in",
result: "specOut"
}, n);
O("feComposite", {
"in": "SourceGraphic",
in2: "specOut",
operator: "arithmetic",
k1: 0,
k2: 1,
k3: 1,
k4: 0
}, n);
c.embossFilterId = n.id;
n = O("filter", {
id: "blocklyInsetShadowFilter" + h
}, g);
O("feOffset", {
dy: 2
}, n);
O("feComposite", {
operator: "out",
"in": "SourceGraphic",
result: "inverse"
}, n);
O("feFlood", {
"flood-color": "black",
"flood-opacity": .6,
result: "color"
}, n);
O("feComposite", {
operator: "in",
"in": "color",
in2: "inverse",
result: "shadow"
}, n);
O("feComposite", {
operator: "over",
"in": "shadow",
in2: "SourceGraphic"
}, n);
c.insetShadowFilterId = n.id;
n = O("pattern", {
id: "blocklyDisabledPattern" + h,
patternUnits: "userSpaceOnUse",
width: 10,
height: 10
}, g);
O("rect", {
width: 10,
height: 10,
fill: "#aaa"
}, n);
O("path", {
d: "M 0 0 L 10 10 M 10 0 L 0 10",
stroke: "#cc0"
}, n);
c.disabledPatternId = n.id;
g = O("pattern", {
id: "blocklyGridPattern" + h,
patternUnits: "userSpaceOnUse"
}, g);
0 < c.gridOptions.length &&
0 < c.gridOptions.spacing && (O("line", {
stroke: c.gridOptions.colour
}, g), 1 < c.gridOptions.length && O("line", {
stroke: c.gridOptions.colour
}, g));
c.gridPattern = g;
g = new wo(e);
e = new Gp(e);
c = Ur(f, c, g, e);
Vr(c);
c.markFocused();
N(f, "focus", c, c.markFocused);
Iq(c);
return c
},
Ur = function(a, b, c, e) {
b.parentWorkspace = null;
var f = new V(b, c, e);
f.scale = b.zoomOptions.startScale;
a.appendChild(f.createDom("blocklyMainBackground"));
!b.hasCategories && b.languageTree && (c = Qr(f), Bk(c, a));
f.translate(0, 0);
f.markFocused();
b.readOnly ||
b.hasScrollbars || f.addChangeListener(function() {
if (0 == Yn) {
var a = f.getMetrics(),
c = a.viewLeft + a.absoluteLeft,
e = a.viewTop + a.absoluteTop;
if (a.contentTop < e || a.contentTop + a.contentHeight > a.viewHeight + e || a.contentLeft < (b.RTL ? a.viewLeft : c) || a.contentLeft + a.contentWidth > (b.RTL ? a.viewWidth : a.viewWidth + c))
for (var n = $h(f, !1), p = 0, r; r = n[p]; p++) {
var t = r.getRelativeToSurfaceXY(),
x = Mk(r),
fa = e + 25 - x.height - t.y;
0 < fa && r.moveBy(0, fa);
fa = e + a.viewHeight - 25 - t.y;
0 > fa && r.moveBy(0, fa);
fa = 25 + c - t.x - (b.RTL ? 0 : x.width);
0 < fa && r.moveBy(fa,
0);
t = c + a.viewWidth - 25 - t.x + (b.RTL ? x.width : 0);
0 > t && r.moveBy(t, 0)
}
}
});
Iq(f);
Jk || (Jk = B("DIV", "blocklyWidgetDiv"), document.body.appendChild(Jk));
Lj || (Lj = B("div", "blocklyDropDownDiv"), document.body.appendChild(Lj), Jj = B("div", "blocklyDropDownContent"), Lj.appendChild(Jj), Kj = B("div", "blocklyDropDownArrow"), Lj.appendChild(Kj), Lj.style.transition = "transform 0.25s, opacity 0.25s");
Tn || (Tn = B("DIV", "blocklyTooltipDiv"), document.body.appendChild(Tn));
return f
},
Vr = function(a) {
var b = a.options,
c = Sj(a);
N(c, "contextmenu",
null,
function(a) {
Bi(a) || a.preventDefault()
});
c = N(window, "resize", null, function() {
Di(!0);
Iq(a)
});
a.resizeHandlerWrapper_ = c;
Xr();
b.languageTree && (a.toolbox_ ? a.toolbox_.init(a) : a.flyout_ && (a.flyout_.init(a), a.flyout_.show(b.languageTree.childNodes), a.flyout_.scrollToStart(), b.horizontalLayout ? (a.scrollY = a.flyout_.height, 1 == b.toolboxPosition && (a.scrollY *= -1)) : (a.scrollX = a.flyout_.width, 3 == b.toolboxPosition && (a.scrollX *= -1)), a.translate(a.scrollX, a.scrollY)));
b.hasScrollbars && (a.scrollbar = new fr(a), a.scrollbar.resize());
b.hasSounds && Yr(b.pathToMedia, a)
},
Xr = function() {
Gh || (N(document, "keydown", null, Jq), T(document, "touchend", null, Kh), T(document, "touchcancel", null, Kh), document.addEventListener("mouseup", Ph, !1), pd && N(window, "orientationchange", document, function() {
Iq(K)
}));
Gh = !0
},
Yr = function(a, b) {
Sr(b, [a + "click.wav"], "click");
Sr(b, [a + "delete.wav"], "delete");
var c = [],
e = function() {
for (; c.length;) Oh(c.pop());
for (var a in b.SOUNDS_) {
var e = b.SOUNDS_[a];
e.volume = .01;
e.play();
e.pause();
if (pd || od) break
}
};
c.push(N(document, "mousemove",
null, e, !0));
c.push(N(document, "touchstart", null, e, !0))
};
var Zr = ['<xml>\n <block type="logo17_run_code"\n id="tutorial_start_block_id"\n deletable="false"\n movable="false"\n x="10"\n y="96">\n </block>\n </xml>', '<xml>\n <block type="logo17_run_code"\n id="tutorial_start_block_id"\n deletable="false"\n movable="false"\n x="10"\n y="96">\n </block>\n </xml>', '<xml>\n <block type="logo17_run_code"\n id="tutorial_start_block_id"\n deletable="false"\n movable="false"\n x="20"\n y="149">\n <next>\n <block type="logo17_move_forward"></block>\n </next>\n </block>\n </xml>'],
$r = '<xml id="toolbox-simple" style="display: none">\n <block type="logo17_move_forward"></block>\n </xml>;<xml id="toolbox-simple" style="display: none">\n <block type="logo17_move_forward"></block>\n <block type="logo17_turn_right"></block>\n </xml>;<xml id="toolbox-simple" style="display: none">\n <block type="logo17_for_loop">\n <value name="TIMES">\n <shadow type="math_whole_number">\n <field name="NUM">4</field>\n </shadow>\n </value>\n </block>\n <block type="logo17_move_forward"></block>\n <block type="logo17_turn_right"></block>\n </xml>;<xml id="toolbox-simple" style="display: none">\n <block type="logo17_for_loop">\n <value name="TIMES">\n <shadow type="math_whole_number">\n <field name="NUM">4</field>\n </shadow>\n </value>\n </block>\n <block type="logo17_move_forward"></block>\n <block type="logo17_turn_right"></block>\n <block type="logo17_turn_left"></block>\n </xml>;<xml id="toolbox-simple" style="display: none">\n <block type="logo17_for_loop">\n <value name="TIMES">\n <shadow type="math_whole_number">\n <field name="NUM">4</field>\n </shadow>\n </value>\n </block>\n <block type="logo17_move_forward"></block>\n <block type="logo17_turn_right"></block>\n <block type="logo17_turn_left"></block>\n </xml>;<xml id="toolbox-simple" style="display: none">\n <block type="logo17_for_loop">\n <value name="TIMES">\n <shadow type="math_whole_number">\n <field name="NUM">4</field>\n </shadow>\n </value>\n </block>\n <block type="logo17_move_forward"></block>\n <block type="logo17_turn_right"></block>\n <block type="logo17_turn_left"></block>\n </xml>'.split(";"),
as = ['<xml id="toolbox-simple" style="display: none">\n <block\n id="logo17_move_forward"\n type="logo17_move_forward"></block>\n </xml>', '<xml id="toolbox-simple" style="display: none">\n <block\n id="logo17_turn_right"\n type="logo17_turn_right"></block>\n <block\n id="logo17_move_forward"\n type="logo17_move_forward"></block>\n </xml>', '<xml id="toolbox-simple" style="display: none">\n <block\n id="logo17_for_loop"\n type="logo17_for_loop">\n <value name="TIMES">\n <shadow type="math_whole_number">\n <field name="NUM">2</field>\n </shadow>\n </value>\n </block>\n <block\n id="logo17_move_forward"\n type="logo17_move_forward"></block>\n </xml>'];
H.logo17_run_code = {
json: {
id: "logo17_run_code",
message0: "%1",
args0: [{
type: "field_image",
src: "/logos/2017/logo17/start_rabbit.svg",
width: 40,
height: 40,
flip_rtl: !0
}],
inputsInline: !0,
nextStatement: null,
category: null,
colour: I.event.primary,
colourSecondary: I.event.secondary,
enableContextMenu: !1
}
};
H.logo17_for_loop = {
json: {
id: "logo17_for_loop",
message0: "%1 %2 %3",
args0: [{
type: "input_statement",
name: "SUBSTACK"
}, {
type: "field_image",
src: "/logos/2017/logo17/control_repeat.svg",
width: 40,
height: 40,
flip_rtl: !0
}, {
type: "input_value",
name: "TIMES",
check: "Number"
}],
inputsInline: !0,
previousStatement: null,
nextStatement: null,
category: null,
colour: I.control.primary,
colourSecondary: I.control.secondary,
colourTertiary: I.control.tertiary,
enableContextMenu: !1,
tooltip: y("Loop Hover")
}
};
H.logo17_move_forward = {
json: {
id: "logo17_move_forward",
message0: "%1 %2",
args0: [{
type: "field_image",
src: "/logos/2017/logo17/move_forward.svg",
width: 40,
height: 40
}, {
type: "input_value",
name: "DURATION",
check: "Number"
}],
inputsInline: !0,
previousStatement: null,
nextStatement: null,
category: null,
colour: I.motion.primary,
colourSecondary: I.motion.secondary,
colourTertiary: I.motion.tertiary,
enableContextMenu: !1,
tooltip: y("Forward Block Hover")
}
};
H.logo17_turn_left = {
json: {
id: "logo17_turn_left",
message0: "%1 %2",
args0: [{
type: "field_image",
src: "/logos/2017/logo17/turn_left.svg",
width: 40,
height: 40
}, {
type: "input_value",
name: "DURATION",
check: "Number"
}],
inputsInline: !0,
previousStatement: null,
nextStatement: null,
category: null,
colour: I.motion.turn,
colourSecondary: I.motion.turnSecondary,
colourTertiary: I.motion.turnSecondary,
enableContextMenu: !1,
tooltip: y("Turn Left Hover")
}
};
H.logo17_turn_right = {
json: {
id: "logo17_turn_right",
message0: "%1 %2",
args0: [{
type: "field_image",
src: "/logos/2017/logo17/turn_right.svg",
width: 40,
height: 40
}, {
type: "input_value",
name: "DURATION",
check: "Number"
}],
inputsInline: !0,
previousStatement: null,
nextStatement: null,
category: null,
colour: I.motion.turn,
colourSecondary: I.motion.turnSecondary,
colourTertiary: I.motion.turnSecondary,
enableContextMenu: !1,
tooltip: y("Turn Right Hover")
}
};
var bs = document.getElementById("hpofblockly") ? Wr(document.getElementById("hpofblockly"), {
comments: !1,
disable: !1,
collapse: !1,
media: "/logos/2017/logo17/",
hasSounds: !0,
readOnly: !1,
rtl: !1,
scrollbars: !0,
toolbox: '<xml id="toolbox-simple" style="display: none">\n <block type="logo17_for_loop">\n <value name="TIMES">\n <shadow type="math_whole_number">\n <field name="NUM">4</field>\n </shadow>\n </value>\n </block>\n <block type="logo17_move_forward"></block>\n <block type="logo17_turn_right"></block>\n <block type="logo17_turn_left"></block>\n </xml>',
trashcan: !1,
horizontalLayout: !0,
toolboxPosition: "end",
sounds: !0,
grid: {
spacing: 16,
length: 1,
colour: "transparent",
snap: !1
},
colours: {
workspace: "#72d4c8",
flyout: "transparent",
scrollbar: "rgba(50, 139, 122, 0.6)",
scrollbarHover: "#0c111a",
insertionMarker: "#ffffff",
insertionMarkerOpacity: .3,
fieldShadow: "rgba(255, 255, 255, 0.3)",
dragShadowOpacity: .6
},
zoom: {
startScale: .7,
maxScale: .7,
minScale: .7
}
}) : null,
cs = function(a) {
return bb(a.getDescendants(), function(a) {
return a.isShadowBlock
})
};
var ds = function(a, b, c) {
this.id = a ? a.id : Th();
this.children = [];
this.block = a;
this.blockType = c;
this.parentNode_ = b;
this.nextNodeGenerator_ = this.getNextNodeGenerator();
this.isStarted_ = !1;
this.minExecutionTimeMs = this.module$exports$logo17$AstNode$timeElapsedMs_ = 0
};
ds.prototype.start = function() {
this.isStarted_ = !0
};
ds.prototype.update = function(a) {
this.module$exports$logo17$AstNode$timeElapsedMs_ += a
};
ds.prototype.module$exports$logo17$AstNode_prototype$isFinished = function() {
return this.module$exports$logo17$AstNode$timeElapsedMs_ >= this.minExecutionTimeMs
};
var es = function(a) {
var b = a.children.length;
a = l(a.children);
for (var c = a.next(); !c.done; c = a.next()) b += es(c.value);
return b
},
fs = function(a) {
a.nextNodeGenerator_ = a.getNextNodeGenerator();
a = l(a.children);
for (var b = a.next(); !b.done; b = a.next()) fs(b.value)
};
ds.prototype.reset = function() {
this.isStarted_ = !1;
this.module$exports$logo17$AstNode$timeElapsedMs_ = 0;
for (var a = l(this.children), b = a.next(); !b.done; b = a.next()) b.value.reset()
};
ds.prototype.toString = function(a) {
var b = void 0 === a ? 0 : a;
return $a(this.children, function(a) {
return " ".repeat(b) + a.toString(b + 1)
}).join("\n")
};
var gs = function(a) {
return 0 == a.children.length ? a.blockType : [].concat([a.blockType], qa($a(a.children, function(a) {
return gs(a)
})))
};
ds.prototype.getNextNodeGenerator = function() {
function a(a, h, p) {
for (;;) switch (b) {
case 0:
f = l(g.children), e = f.next();
case 1:
if (e.done) {
b = 3;
break
}
c = e.value;
b = 4;
return {
value: c, done: !1
};
case 4:
if (1 != a) {
b = 5;
break
}
b = -1;
throw p;
case 5:
case 2:
e = f.next();
b = 1;
break;
case 3:
b = -1;
default:
return {
value: void 0, done: !0
}
}
}
var b = 0,
c, e, f, g = this,
h = {
next: function(b) {
return a(0, b, void 0)
},
"throw": function(b) {
return a(1, void 0, b)
},
"return": function() {
throw Error("P");
}
};
oa();
h[Symbol.iterator] = function() {
return this
};
return h
};
var hs = function(a, b) {
ds.call(this, a, b, "logo17_for_loop");
this.minExecutionTimeMs = 333;
this.iterations_ = 0;
var c = cs(a);
c && (c = parseInt(ki(c, "NUM"), 10), isNaN(c) || (this.iterations_ = c))
};
k(hs, ds);
hs.prototype.toString = function(a) {
a = ds.prototype.toString.call(this, void 0 === a ? 0 : a);
return "loop " + this.iterations_ + ":\n" + a
};
hs.prototype.getNextNodeGenerator = function() {
function a(a, h, p) {
for (;;) switch (b) {
case 0:
f = 0;
case 1:
if (!(f < g.iterations_)) {
b = 3;
break
}
e = l(ds.prototype.getNextNodeGenerator.call(g));
case 4:
if ((c = e.next(h)).done) {
b = 5;
break
}
b = 6;
return {
value: c.value, done: !1
};
case 6:
if (1 != a) {
b = 7;
break
}
b = -1;
throw p;
case 7:
b = 4;
break;
case 5:
g.reset();
a = l(g.children);
for (h = a.next(); !h.done; h = a.next()) fs(h.value);
b = 8;
return {
value: g, done: !1
};
case 8:
if (1 != a) {
b = 9;
break
}
b = -1;
throw p;
case 9:
case 2:
f++;
b = 1;
break;
case 3:
b = -1;
default:
return {
value: void 0,
done: !0
}
}
}
var b = 0,
c, e, f, g = this,
h = {
next: function(b) {
return a(0, b, void 0)
},
"throw": function(b) {
return a(1, void 0, b)
},
"return": function() {
throw Error("P");
}
};
oa();
h[Symbol.iterator] = function() {
return this
};
return h
};
var js = function() {
Le.call(this, Se, is)
};
w(js, Le);
var Se = {
SOUNDS: new Xe("/logos/2017/logo17/", "sounds")
},
is = {
BLOCKS_IN: new Te(0, 540.792),
BLOCKS_OUT: new Te(1540.792, 743),
CARROT: new Te(3283.792, 542.021),
JUMP: new Te(4825.813, 502.583),
MUSIC: new Te(6328.396, 64070.771)
};
xa(js);
var ks = function() {
this.module$exports$logo17$events_EventBus$listeners_ = []
},
ls = function(a, b, c) {
c = void 0 === c ? null : c;
a = l(a.module$exports$logo17$events_EventBus$listeners_);
for (var e = a.next(); !e.done; e = a.next()) e = e.value, e(b, c)
};
ks.prototype.addListener = function(a) {
this.module$exports$logo17$events_EventBus$listeners_.push(a)
};
var ms = function(a, b, c) {
for (var e = l(a.layers), f = e.next(); !f.done; f = e.next()) {
f = f.value;
for (var g = f.y, h = 0, m = f.height; h < m; h++) {
var n = 0;
for (m = f.width; n < m; n++) {
var p = a.tileset.get(f.data[h * f.width + n]);
b(p) && c(n, g, h, p)
}
}
}
},
ns = function(a) {
switch (a) {
case "left":
return "down";
case "up":
return "left";
case "right":
return "up";
case "down":
return "right";
default:
throw Error("Q`" + a);
}
},
os = function(a) {
switch (a) {
case "left":
return "up";
case "up":
return "right";
case "right":
return "down";
case "down":
return "left";
default:
throw Error("Q`" +
a);
}
};
var ps = wh.getInstance(),
qs = yh.getInstance(),
Y = function(a, b, c, e, f) {
b = void 0 === b ? D(0, 0, 0) : b;
c = void 0 === c ? null : c;
e = void 0 === e ? null : e;
f = void 0 === f ? !1 : f;
E.call(this, b);
this.tiledSpriteSpecs = a;
this.fps = 24;
this.module$exports$logo17$Sprite$elapsedTime = this.frameIndex = 0;
this.module$exports$logo17$Sprite$loop = !0;
this.module$exports$logo17$Sprite$width_ = c || rs(this);
this.module$exports$logo17$Sprite$height_ = e || ss(this);
this.mirror_ = !!f;
this.playing = !0;
this.ended_ = !1;
this.rasterScale_ = 1;
this.onEndListener_ = null
};
k(Y, E);
Y.prototype.update = function(a) {
E.prototype.update.call(this, a);
if (this.playing) {
if (!this.ended_)
if (this.module$exports$logo17$Sprite$elapsedTime += a, this.module$exports$logo17$Sprite$loop) this.module$exports$logo17$Sprite$elapsedTime %= ts(this);
else if (this.module$exports$logo17$Sprite$elapsedTime >= ts(this) && (this.module$exports$logo17$Sprite$elapsedTime = Math.min(this.module$exports$logo17$Sprite$elapsedTime, ts(this) - 1), this.ended_ = !0, this.onEndListener_)) this.onEndListener_();
this.frameIndex = Math.floor(this.module$exports$logo17$Sprite$elapsedTime /
1E3 * this.fps) % this.tiledSpriteSpecs.length
}
};
var us = function(a, b) {
a.frameIndex = b;
a.module$exports$logo17$Sprite$elapsedTime = b / a.fps * 1E3;
a.ended_ = !1
},
ts = function(a) {
return 1E3 / a.fps * a.tiledSpriteSpecs.length
};
Y.prototype.play = function() {
this.playing = !0
};
var vs = function(a, b) {
a.onEndListener_ = b
};
Y.prototype.renderInternal = function(a) {
var b = this.tiledSpriteSpecs[this.frameIndex];
a.globalAlpha = this.renderOpacity;
var c = this.getWidth() * this.renderTransform.m00_,
e = this.getHeight() * this.renderTransform.m11_;
switch (b.type) {
case "png":
b = b.spriteSpec;
var f = Math.floor(this.renderTransform.m02_),
g = Math.floor(this.renderTransform.m12_ - e),
h = Math.min(this.getWidth() / rs(this) * this.renderTransform.m00_, this.getHeight() / ss(this) * this.renderTransform.m11_);
c = this.mirror_;
e = ps.getWidth(b);
var m = ps.getHeight(b);
h = void 0 != h ? h : 1;
a.save();
a.translate(f, g);
a.scale(c ? -h : h, h);
ps.drawImage(a, b, 0, 0, e, m, -e * (c ? 1 : 0), 0 * -m, e, m);
a.restore();
break;
case "svg":
g = b.spriteSpec;
b = Math.floor((this.mirror_ ? -1 : 1) * (this.renderTransform.m02_ + c / 2));
f = Math.floor(this.renderTransform.m12_ - e / 2);
c = Math.floor(c);
e = Math.floor(e);
m = this.mirror_;
h = this.rasterScale_;
m = void 0 === m ? !1 : m;
if (h = $g(qs, g, void 0 === h ? 1 : h)) m && a.scale(-1, 1), g = 10 * c / g[3], a.drawImage(h, b - (c + g) / 2, f - (e + g) / 2, c + g, e + g), m && a.scale(-1, 1);
break;
default:
throw Error("R`" + b.type);
}
};
Y.prototype.getCenterPosition = function() {
var a = this.getWidth();
return hh(this.position).add(this.scale * a / 4, 0, this.scale * -a / 4)
};
Y.prototype.getWidth = function() {
return this.module$exports$logo17$Sprite$width_
};
Y.prototype.getHeight = function() {
return this.module$exports$logo17$Sprite$height_
};
var rs = function(a) {
a = a.tiledSpriteSpecs[0];
switch (a.type) {
case "png":
return ps.getWidth(a.spriteSpec);
case "svg":
return qs.getWidth(a.spriteSpec)
}
throw Error("R`" + a.type);
},
ss = function(a) {
a = a.tiledSpriteSpecs[0];
switch (a.type) {
case "png":
return ps.getHeight(a.spriteSpec);
case "svg":
return qs.getHeight(a.spriteSpec)
}
throw Error("R`" + a.type);
};
var ws = function(a, b, c, e, f, g) {
g = void 0 === g ? df : g;
ah.call(this);
this.durationMs_ = a;
this.module$exports$logo17$tween_Tween$timeElapsedMs_ = 0;
this.fromFn_ = b;
this.toFn_ = c;
this.toValue_ = this.fromValue_ = null;
this.onUpdateValue_ = f;
this.interpolationFn_ = e;
this.module$exports$logo17$tween_Tween$easingFn_ = g
};
k(ws, ah);
ws.prototype.onStart = function() {
ah.prototype.onStart.call(this);
this.fromValue_ = this.fromFn_();
this.toValue_ = this.toFn_()
};
ws.prototype.onUpdate = function(a) {
this.module$exports$logo17$tween_Tween$timeElapsedMs_ += a;
this.onUpdateValue_(this.interpolationFn_(this.fromValue_, this.toValue_, this.module$exports$logo17$tween_Tween$easingFn_(Math.min(1, this.module$exports$logo17$tween_Tween$timeElapsedMs_ / this.durationMs_))))
};
ws.prototype.module$exports$logo17$action_Action_prototype$isFinished = function() {
return this.module$exports$logo17$tween_Tween$timeElapsedMs_ >= this.durationMs_
};
var xs = function(a, b, c, e, f) {
f = void 0 === f ? df : f;
ws.call(this, a, b, c, Nb, e, f)
};
k(xs, ws);
var ys = function(a, b, c, e, f) {
f = void 0 === f ? df : f;
ws.call(this, a, b, c, ph, e, f)
};
k(ys, ws);
ys.prototype.onFinish = function() {
this.fromValue_.release();
this.toValue_.release()
};
var zs = function(a) {
ws.call(this, a, function() {
return null
}, function() {
return null
}, function() {
return null
}, function() {}, df)
};
k(zs, ws);
var Cs = function(a, b, c, e) {
c = void 0 === c ? "right" : c;
e = void 0 === e ? D(0, 0, 0) : e;
E.call(this, e);
this.module$exports$logo17$Player$eventBus_ = a;
this.state_ = "idle";
this.initialOrientation_ = this.module$exports$logo17$Player$orientation_ = c;
this.module$exports$logo17$Player$puzzle_ = b;
this.forwardVector_ = D(1, 0, 0);
this.firstJump_ = !0;
this.module$exports$logo17$Player$blockTransform = new E(D(.5, 0, 1.5));
this.module$exports$logo17$Player$blockTransform.scale = .015625;
F(this, this.module$exports$logo17$Player$blockTransform);
this.spriteMap_ = new Map;
a = l(As.keys());
for (b = a.next(); !b.done; b = a.next()) b = b.value, c = new Y(As.get(b)), c.fps = 24, c.module$exports$logo17$Sprite$loop = !1, this.spriteMap_.set(b, c);
this.module$exports$logo17$Player$shadow_ = new E(D(0, 0, -32));
F(this.module$exports$logo17$Player$blockTransform, this.module$exports$logo17$Player$shadow_);
this.leftShadowSprite_ = new Y([{
spriteSpec: G.SHADOW_LEFT,
type: "svg"
}], D(2, 0, 2));
this.rightShadowSprite_ = new Y([{
spriteSpec: G.SHADOW_LEFT,
type: "svg"
}], D(2, 0, 2));
this.downShadowSprite_ =
new Y([{
spriteSpec: G.SHADOW_RIGHT,
type: "svg"
}], D(2, 0, 2));
this.upShadowSprite_ = new Y([{
spriteSpec: G.SHADOW_RIGHT,
type: "svg"
}], D(2, 0, 2));
F(this.module$exports$logo17$Player$shadow_, Bs(this));
this.sprite_ = this.spriteMap_.get(this.module$exports$logo17$Player$orientation_ + this.state_);
us(this.sprite_, this.sprite_.tiledSpriteSpecs.length - 1);
F(this.module$exports$logo17$Player$blockTransform, this.sprite_)
};
k(Cs, E);
Cs.prototype.reset = function() {
E.prototype.reset.call(this);
this.module$exports$logo17$Player$orientation_ = this.initialOrientation_;
this.state_ = "idle";
Ds(this, this.spriteMap_.get(this.module$exports$logo17$Player$orientation_ + "idle"));
us(this.sprite_, this.sprite_.tiledSpriteSpecs.length - 1);
this.module$exports$logo17$Player$shadow_.scale = 1;
this.firstJump_ = !0
};
var Bs = function(a) {
switch (a.module$exports$logo17$Player$orientation_) {
case "right":
return a.rightShadowSprite_;
case "up":
return a.upShadowSprite_;
case "down":
return a.downShadowSprite_
}
return a.leftShadowSprite_
};
Cs.prototype.disposeInternal = function() {
E.prototype.disposeInternal.call(this);
this.forwardVector_.release()
};
var Es = function(a, b) {
var c = hh(a.position),
e = .1 < oh(c, b);
return new ch([new bh(function() {
e && ls(a.module$exports$logo17$Player$eventBus_, 4, a);
a.firstJump_ && (ls(a.module$exports$logo17$Player$eventBus_, 5), a.firstJump_ = !1);
a.state_ = "jump";
Ds(a, a.spriteMap_.get(a.module$exports$logo17$Player$orientation_ + "jump"));
us(a.sprite_, 0);
is.JUMP.play(0)
}), new dh([new ch([new xs(187.5, function() {
return 1
}, function() {
return .6
}, function(b) {
a.module$exports$logo17$Player$shadow_.scale = b
}, gf), new xs(187.5, function() {
return .6
},
function() {
return 1
},
function(b) {
a.module$exports$logo17$Player$shadow_.scale = b
}, ff)]), new ch([new xs(187.5, function() {
return 0
}, function() {
return -.15
}, function(b) {
a.sprite_.position.y = b
}, gf), new xs(187.5, function() {
return -.15
}, function() {
return 0
}, function(b) {
a.sprite_.position.y = b
}, ff)]), new ys(375, function() {
return c
}, function() {
return b
}, function(b) {
a.position.x = b.x;
a.position.y = b.y;
a.position.z = b.z;
b.release()
})]), new bh(function() {
e && ls(a.module$exports$logo17$Player$eventBus_, 3, a);
ls(a.module$exports$logo17$Player$eventBus_,
5);
a.state_ = "idle";
Ds(a, a.spriteMap_.get(a.module$exports$logo17$Player$orientation_ + "idle"));
us(a.sprite_, 0)
})])
},
Fs = function(a) {
a.state_ = "turning";
fh(a.actionManager, new ch([new zs(187.5), new bh(function() {
a.module$exports$logo17$Player$orientation_ = ns(a.module$exports$logo17$Player$orientation_);
a.state_ = "idle";
Ds(a, a.spriteMap_.get(a.module$exports$logo17$Player$orientation_ + "idle"));
us(a.sprite_, 0)
})]))
},
Gs = function(a) {
a.state_ = "turning";
fh(a.actionManager, new ch([new zs(187.5), new bh(function() {
a.module$exports$logo17$Player$orientation_ =
os(a.module$exports$logo17$Player$orientation_);
a.state_ = "idle";
Ds(a, a.spriteMap_.get(a.module$exports$logo17$Player$orientation_ + "idle"));
us(a.sprite_, 0)
})]))
},
Ds = function(a, b) {
b != a.sprite_ && (a.module$exports$logo17$Player$blockTransform.removeChild(a.sprite_), F(a.module$exports$logo17$Player$blockTransform, b), a.sprite_ = b);
var c = a.module$exports$logo17$Player$shadow_;
c.children = [];
c.childrenChanged_ = !0;
F(a.module$exports$logo17$Player$shadow_, Bs(a))
};
Cs.prototype.getWidth = function() {
return 2
};
Cs.prototype.getHeight = function() {
return 2
};
Cs.prototype.getCenterPosition = function() {
return hh(this.position).add(.5, 0, .5)
};
var Hs = new Map([
["left", D(-1, 0, 0)],
["up", D(0, 0, -1)],
["down", D(0, 0, 1)],
["right", D(1, 0, 0)]
]),
As = new Map([
["downjump", [{
spriteSpec: G.BUNNY_SOUTH_1,
type: "svg"
}, {
spriteSpec: G.BUNNY_SOUTH_2,
type: "svg"
}, {
spriteSpec: G.BUNNY_SOUTH_3,
type: "svg"
}, {
spriteSpec: G.BUNNY_SOUTH_4,
type: "svg"
}, {
spriteSpec: G.BUNNY_SOUTH_5,
type: "svg"
}, {
spriteSpec: G.BUNNY_SOUTH_6,
type: "svg"
}, {
spriteSpec: G.BUNNY_SOUTH_7,
type: "svg"
}, {
spriteSpec: G.BUNNY_SOUTH_8,
type: "svg"
}, {
spriteSpec: G.BUNNY_SOUTH_9,
type: "svg"
}]],
["downidle", [{
spriteSpec: G.BUNNY_SOUTH_10,
type: "svg"
}, {
spriteSpec: G.BUNNY_SOUTH_11,
type: "svg"
}, {
spriteSpec: G.BUNNY_SOUTH_12,
type: "svg"
}, {
spriteSpec: G.BUNNY_SOUTH_13,
type: "svg"
}, {
spriteSpec: G.BUNNY_SOUTH_14,
type: "svg"
}, {
spriteSpec: G.BUNNY_SOUTH_15,
type: "svg"
}, {
spriteSpec: G.BUNNY_SOUTH_16,
type: "svg"
}, {
spriteSpec: G.BUNNY_SOUTH_17,
type: "svg"
}, {
spriteSpec: G.BUNNY_SOUTH_18,
type: "svg"
}]],
["leftjump", [{
spriteSpec: G.BUNNY_WEST_1,
type: "svg"
}, {
spriteSpec: G.BUNNY_WEST_2,
type: "svg"
}, {
spriteSpec: G.BUNNY_WEST_3,
type: "svg"
}, {
spriteSpec: G.BUNNY_WEST_4,
type: "svg"
},
{
spriteSpec: G.BUNNY_WEST_5,
type: "svg"
}, {
spriteSpec: G.BUNNY_WEST_6,
type: "svg"
}, {
spriteSpec: G.BUNNY_WEST_7,
type: "svg"
}, {
spriteSpec: G.BUNNY_WEST_8,
type: "svg"
}, {
spriteSpec: G.BUNNY_WEST_9,
type: "svg"
}
]],
["leftidle", [{
spriteSpec: G.BUNNY_WEST_10,
type: "svg"
}, {
spriteSpec: G.BUNNY_WEST_11,
type: "svg"
}, {
spriteSpec: G.BUNNY_WEST_12,
type: "svg"
}, {
spriteSpec: G.BUNNY_WEST_13,
type: "svg"
}, {
spriteSpec: G.BUNNY_WEST_14,
type: "svg"
}, {
spriteSpec: G.BUNNY_WEST_15,
type: "svg"
}, {
spriteSpec: G.BUNNY_WEST_16,
type: "svg"
}, {
spriteSpec: G.BUNNY_WEST_17,
type: "svg"
}, {
spriteSpec: G.BUNNY_WEST_18,
type: "svg"
}]],
["upjump", [{
spriteSpec: G.BUNNY_NORTH_1,
type: "svg"
}, {
spriteSpec: G.BUNNY_NORTH_2,
type: "svg"
}, {
spriteSpec: G.BUNNY_NORTH_3,
type: "svg"
}, {
spriteSpec: G.BUNNY_NORTH_4,
type: "svg"
}, {
spriteSpec: G.BUNNY_NORTH_5,
type: "svg"
}, {
spriteSpec: G.BUNNY_NORTH_6,
type: "svg"
}, {
spriteSpec: G.BUNNY_NORTH_7,
type: "svg"
}, {
spriteSpec: G.BUNNY_NORTH_8,
type: "svg"
}, {
spriteSpec: G.BUNNY_NORTH_9,
type: "svg"
}]],
["upidle", [{
spriteSpec: G.BUNNY_NORTH_10,
type: "svg"
}, {
spriteSpec: G.BUNNY_NORTH_11,
type: "svg"
}, {
spriteSpec: G.BUNNY_NORTH_12,
type: "svg"
}, {
spriteSpec: G.BUNNY_NORTH_13,
type: "svg"
}, {
spriteSpec: G.BUNNY_NORTH_14,
type: "svg"
}, {
spriteSpec: G.BUNNY_NORTH_15,
type: "svg"
}, {
spriteSpec: G.BUNNY_NORTH_16,
type: "svg"
}, {
spriteSpec: G.BUNNY_NORTH_17,
type: "svg"
}, {
spriteSpec: G.BUNNY_NORTH_18,
type: "svg"
}]],
["rightjump", [{
spriteSpec: G.BUNNY_EAST_1,
type: "svg"
}, {
spriteSpec: G.BUNNY_EAST_2,
type: "svg"
}, {
spriteSpec: G.BUNNY_EAST_3,
type: "svg"
}, {
spriteSpec: G.BUNNY_EAST_4,
type: "svg"
}, {
spriteSpec: G.BUNNY_EAST_5,
type: "svg"
},
{
spriteSpec: G.BUNNY_EAST_6,
type: "svg"
}, {
spriteSpec: G.BUNNY_EAST_7,
type: "svg"
}, {
spriteSpec: G.BUNNY_EAST_8,
type: "svg"
}, {
spriteSpec: G.BUNNY_EAST_9,
type: "svg"
}
]],
["rightidle", [{
spriteSpec: G.BUNNY_EAST_10,
type: "svg"
}, {
spriteSpec: G.BUNNY_EAST_11,
type: "svg"
}, {
spriteSpec: G.BUNNY_EAST_12,
type: "svg"
}, {
spriteSpec: G.BUNNY_EAST_13,
type: "svg"
}, {
spriteSpec: G.BUNNY_EAST_14,
type: "svg"
}, {
spriteSpec: G.BUNNY_EAST_15,
type: "svg"
}, {
spriteSpec: G.BUNNY_EAST_16,
type: "svg"
}, {
spriteSpec: G.BUNNY_EAST_17,
type: "svg"
}, {
spriteSpec: G.BUNNY_EAST_18,
type: "svg"
}]]
]);
var Is = function(a, b, c, e, f) {
ds.call(this, a, b, e);
this.minExecutionTimeMs = 333;
this.module$exports$logo17$PlayerControlNode$player_ = c;
this.onStart_ = f
};
k(Is, ds);
Is.prototype.start = function() {
ds.prototype.start.call(this);
this.onStart_()
};
Is.prototype.module$exports$logo17$AstNode_prototype$isFinished = function() {
return ds.prototype.module$exports$logo17$AstNode_prototype$isFinished.call(this) && "idle" == this.module$exports$logo17$PlayerControlNode$player_.state_
};
var Ks = function(a, b) {
E.call(this);
var c = this;
this.workspace_ = a;
this.module$exports$logo17$AbstractSyntaxTree$player_ = b;
this.rootNode_ = new ds(null, null, "logo17_root_node");
this.activeNode_ = null;
this.workspaceChangeListener_ = function() {
Js(c)
};
this.workspace_.addChangeListener(this.workspaceChangeListener_);
Js(this)
};
k(Ks, E);
Ks.prototype.disposeInternal = function() {
this.workspace_.removeChangeListener(this.workspaceChangeListener_);
E.prototype.disposeInternal.call(this)
};
Ks.prototype.update = function(a) {
for (; this.activeNode_ && this.activeNode_.module$exports$logo17$AstNode_prototype$isFinished();) this.activeNode_ = this.activeNode_.nextNodeGenerator_.next().value || this.activeNode_.parentNode_;
this.activeNode_ ? this.activeNode_.isStarted_ ? this.activeNode_.update(a) : (this.activeNode_.start(), this.activeNode_.block && Rr(this.workspace_, this.activeNode_.block.id)) : Rr(this.workspace_, null)
};
Ks.prototype.reset = function() {
this.rootNode_.reset();
fs(this.rootNode_);
this.activeNode_ = null
};
var Ls = function(a) {
a.rootNode_.reset();
fs(a.rootNode_);
a.activeNode_ = a.rootNode_
};
Ks.prototype.toString = function() {
return this.rootNode_.toString()
};
var Js = function(a) {
a.rootNode_ = new ds(null, null, "logo17_root_node");
var b = $h(a.workspace_, !1);
b = l(b);
for (var c = b.next(); !c.done; c = b.next())
if (c = c.value, "start_block_id" == c.id || "tutorial_start_block_id" == c.id) try {
Ms(a, c, a.rootNode_);
break
} catch (e) {
break
}
},
Ms = function(a, b, c) {
for (; b;) {
var e = null;
switch (b.type) {
case "logo17_run_code":
e = new ds(b, c, b.type);
break;
case "logo17_for_loop":
e = new hs(b, c);
var f = to(b, "SUBSTACK");
f && (f = f.connection && S(f.connection)) && Ms(a, f, e);
break;
case "logo17_move_forward":
e =
new Is(b, c, a.module$exports$logo17$AbstractSyntaxTree$player_, b.type, function() {
var b = a.module$exports$logo17$AbstractSyntaxTree$player_,
c = hh(Hs.get(b.module$exports$logo17$Player$orientation_)).scale(1);
a: {
var e = b.module$exports$logo17$Player$puzzle_;
var f = b.position;
var p = D(f.x + c.x, f.y + c.y, f.z + c.z),
r = e.tileGrid_.get(Ns(f.x, f.y - 1, f.z)),
t = e.tileGrid_.get(Ns(p.x, p.y, p.z)),
x = e.tileGrid_.get(Ns(p.x, p.y + 1, p.z));e = e.tileGrid_.get(Ns(p.x, p.y + 2, p.z));
if (t && "carrot" != t.type) {
if ("passable" == t.type && !r) {
--p.y;
f = p;
break a
}
} else if (x && "carrot" != x.type) {
if ("passable" == x.type) {
f = p;
break a
}
} else if (e && "carrot" != x.type && "passable" == e.type) {
p.y += 1;
f = p;
break a
}
f = hh(f)
}
c.release();
fh(b.actionManager, Es(b, f))
});
break;
case "logo17_turn_left":
e = new Is(b, c, a.module$exports$logo17$AbstractSyntaxTree$player_, b.type, function() {
return Fs(a.module$exports$logo17$AbstractSyntaxTree$player_)
});
break;
case "logo17_turn_right":
e = new Is(b, c, a.module$exports$logo17$AbstractSyntaxTree$player_, b.type, function() {
return Gs(a.module$exports$logo17$AbstractSyntaxTree$player_)
});
break;
default:
throw Error("S`" + b.type);
}
c.children.push(e);
b = Xi(b)
}
};
var Os = [],
Ps = [],
Qs = new Map([
[101, {
tiledSpriteSpecs: [{
spriteSpec: G.N037_L2_ISLAND05_STRAWBERRY,
type: "svg"
}],
type: null
}],
[103, {
tiledSpriteSpecs: [{
spriteSpec: G.N049_L3_BLOCK01_001,
type: "svg"
}, {
spriteSpec: G.N049_L3_BLOCK01_002,
type: "svg"
}, {
spriteSpec: G.N049_L3_BLOCK01_003,
type: "svg"
}, {
spriteSpec: G.N049_L3_BLOCK01_004,
type: "svg"
}, {
spriteSpec: G.N049_L3_BLOCK01_005,
type: "svg"
}, {
spriteSpec: G.N049_L3_BLOCK01_006,
type: "svg"
}, {
spriteSpec: G.N049_L3_BLOCK01_007,
type: "svg"
}, {
spriteSpec: G.N049_L3_BLOCK01_008,
type: "svg"
},
{
spriteSpec: G.N049_L3_BLOCK01_009,
type: "svg"
}, {
spriteSpec: G.N049_L3_BLOCK01_010,
type: "svg"
}, {
spriteSpec: G.N049_L3_BLOCK01_011,
type: "svg"
}, {
spriteSpec: G.N049_L3_BLOCK01_012,
type: "svg"
}, {
spriteSpec: G.N049_L3_BLOCK01_013,
type: "svg"
}, {
spriteSpec: G.N049_L3_BLOCK01_014,
type: "svg"
}, {
spriteSpec: G.N049_L3_BLOCK01_015,
type: "svg"
}, {
spriteSpec: G.N049_L3_BLOCK01_016,
type: "svg"
}, {
spriteSpec: G.N049_L3_BLOCK01_017,
type: "svg"
}
],
type: "triggerable"
}],
[104, {
tiledSpriteSpecs: [{
spriteSpec: G.N050_L3_BLOCK02_001,
type: "svg"
},
{
spriteSpec: G.N050_L3_BLOCK02_002,
type: "svg"
}, {
spriteSpec: G.N050_L3_BLOCK02_003,
type: "svg"
}, {
spriteSpec: G.N050_L3_BLOCK02_004,
type: "svg"
}, {
spriteSpec: G.N050_L3_BLOCK02_005,
type: "svg"
}, {
spriteSpec: G.N050_L3_BLOCK02_006,
type: "svg"
}, {
spriteSpec: G.N050_L3_BLOCK02_007,
type: "svg"
}, {
spriteSpec: G.N050_L3_BLOCK02_008,
type: "svg"
}, {
spriteSpec: G.N050_L3_BLOCK02_009,
type: "svg"
}, {
spriteSpec: G.N050_L3_BLOCK02_010,
type: "svg"
}, {
spriteSpec: G.N050_L3_BLOCK02_011,
type: "svg"
}, {
spriteSpec: G.N050_L3_BLOCK02_012,
type: "svg"
},
{
spriteSpec: G.N050_L3_BLOCK02_013,
type: "svg"
}, {
spriteSpec: G.N050_L3_BLOCK02_014,
type: "svg"
}, {
spriteSpec: G.N050_L3_BLOCK02_015,
type: "svg"
}, {
spriteSpec: G.N050_L3_BLOCK02_016,
type: "svg"
}, {
spriteSpec: G.N050_L3_BLOCK02_017,
type: "svg"
}, {
spriteSpec: G.N050_L3_BLOCK02_018,
type: "svg"
}
],
type: "triggerable"
}],
[105, {
tiledSpriteSpecs: [{
spriteSpec: G.N051_L3_BLOCK03_001,
type: "svg"
}, {
spriteSpec: G.N051_L3_BLOCK03_002,
type: "svg"
}, {
spriteSpec: G.N051_L3_BLOCK03_003,
type: "svg"
}, {
spriteSpec: G.N051_L3_BLOCK03_004,
type: "svg"
},
{
spriteSpec: G.N051_L3_BLOCK03_005,
type: "svg"
}, {
spriteSpec: G.N051_L3_BLOCK03_006,
type: "svg"
}, {
spriteSpec: G.N051_L3_BLOCK03_007,
type: "svg"
}, {
spriteSpec: G.N051_L3_BLOCK03_008,
type: "svg"
}, {
spriteSpec: G.N051_L3_BLOCK03_009,
type: "svg"
}, {
spriteSpec: G.N051_L3_BLOCK03_010,
type: "svg"
}, {
spriteSpec: G.N051_L3_BLOCK03_011,
type: "svg"
}, {
spriteSpec: G.N051_L3_BLOCK03_012,
type: "svg"
}
],
type: "triggerable"
}],
[108, {
tiledSpriteSpecs: [{
spriteSpec: G.N056_L3_WATERFALL_BLOCK07_001,
type: "svg"
}, {
spriteSpec: G.N056_L3_WATERFALL_BLOCK07_002,
type: "svg"
}, {
spriteSpec: G.N056_L3_WATERFALL_BLOCK07_003,
type: "svg"
}, {
spriteSpec: G.N056_L3_WATERFALL_BLOCK07_004,
type: "svg"
}, {
spriteSpec: G.N056_L3_WATERFALL_BLOCK07_005,
type: "svg"
}, {
spriteSpec: G.N056_L3_WATERFALL_BLOCK07_006,
type: "svg"
}, {
spriteSpec: G.N056_L3_WATERFALL_BLOCK07_007,
type: "svg"
}, {
spriteSpec: G.N056_L3_WATERFALL_BLOCK07_008,
type: "svg"
}, {
spriteSpec: G.N056_L3_WATERFALL_BLOCK07_009,
type: "svg"
}, {
spriteSpec: G.N056_L3_WATERFALL_BLOCK07_010,
type: "svg"
}, {
spriteSpec: G.N056_L3_WATERFALL_BLOCK07_011,
type: "svg"
}, {
spriteSpec: G.N056_L3_WATERFALL_BLOCK07_012,
type: "svg"
}, {
spriteSpec: G.N056_L3_WATERFALL_BLOCK07_013,
type: "svg"
}, {
spriteSpec: G.N056_L3_WATERFALL_BLOCK07_014,
type: "svg"
}, {
spriteSpec: G.N056_L3_WATERFALL_BLOCK07_015,
type: "svg"
}, {
spriteSpec: G.N056_L3_WATERFALL_BLOCK07_016,
type: "svg"
}, {
spriteSpec: G.N056_L3_WATERFALL_BLOCK07_017,
type: "svg"
}, {
spriteSpec: G.N056_L3_WATERFALL_BLOCK07_018,
type: "svg"
}, {
spriteSpec: G.N056_L3_WATERFALL_BLOCK07_019,
type: "svg"
}, {
spriteSpec: G.N056_L3_WATERFALL_BLOCK07_020,
type: "svg"
}, {
spriteSpec: G.N056_L3_WATERFALL_BLOCK07_021,
type: "svg"
}, {
spriteSpec: G.N056_L3_WATERFALL_BLOCK07_022,
type: "svg"
}, {
spriteSpec: G.N056_L3_WATERFALL_BLOCK07_023,
type: "svg"
}, {
spriteSpec: G.N056_L3_WATERFALL_BLOCK07_024,
type: "svg"
}, {
spriteSpec: G.N056_L3_WATERFALL_BLOCK07_025,
type: "svg"
}],
type: "triggerable"
}],
[109, {
tiledSpriteSpecs: [{
spriteSpec: G.N055_L3_WATERFALL_BLOCK06_001,
type: "svg"
}, {
spriteSpec: G.N055_L3_WATERFALL_BLOCK06_002,
type: "svg"
}, {
spriteSpec: G.N055_L3_WATERFALL_BLOCK06_003,
type: "svg"
},
{
spriteSpec: G.N055_L3_WATERFALL_BLOCK06_004,
type: "svg"
}, {
spriteSpec: G.N055_L3_WATERFALL_BLOCK06_005,
type: "svg"
}, {
spriteSpec: G.N055_L3_WATERFALL_BLOCK06_006,
type: "svg"
}, {
spriteSpec: G.N055_L3_WATERFALL_BLOCK06_007,
type: "svg"
}, {
spriteSpec: G.N055_L3_WATERFALL_BLOCK06_008,
type: "svg"
}, {
spriteSpec: G.N055_L3_WATERFALL_BLOCK06_009,
type: "svg"
}, {
spriteSpec: G.N055_L3_WATERFALL_BLOCK06_010,
type: "svg"
}, {
spriteSpec: G.N055_L3_WATERFALL_BLOCK06_011,
type: "svg"
}, {
spriteSpec: G.N055_L3_WATERFALL_BLOCK06_012,
type: "svg"
},
{
spriteSpec: G.N055_L3_WATERFALL_BLOCK06_013,
type: "svg"
}, {
spriteSpec: G.N055_L3_WATERFALL_BLOCK06_014,
type: "svg"
}, {
spriteSpec: G.N055_L3_WATERFALL_BLOCK06_015,
type: "svg"
}, {
spriteSpec: G.N055_L3_WATERFALL_BLOCK06_016,
type: "svg"
}, {
spriteSpec: G.N055_L3_WATERFALL_BLOCK06_017,
type: "svg"
}, {
spriteSpec: G.N055_L3_WATERFALL_BLOCK06_018,
type: "svg"
}, {
spriteSpec: G.N055_L3_WATERFALL_BLOCK06_019,
type: "svg"
}, {
spriteSpec: G.N055_L3_WATERFALL_BLOCK06_020,
type: "svg"
}, {
spriteSpec: G.N055_L3_WATERFALL_BLOCK06_021,
type: "svg"
}
],
type: "triggerable"
}],
[111, {
tiledSpriteSpecs: [{
spriteSpec: G.N057_L3_WATERFALL_BLOCK08_001,
type: "svg"
}, {
spriteSpec: G.N057_L3_WATERFALL_BLOCK08_002,
type: "svg"
}, {
spriteSpec: G.N057_L3_WATERFALL_BLOCK08_003,
type: "svg"
}, {
spriteSpec: G.N057_L3_WATERFALL_BLOCK08_004,
type: "svg"
}, {
spriteSpec: G.N057_L3_WATERFALL_BLOCK08_005,
type: "svg"
}, {
spriteSpec: G.N057_L3_WATERFALL_BLOCK08_006,
type: "svg"
}, {
spriteSpec: G.N057_L3_WATERFALL_BLOCK08_007,
type: "svg"
}, {
spriteSpec: G.N057_L3_WATERFALL_BLOCK08_008,
type: "svg"
}, {
spriteSpec: G.N057_L3_WATERFALL_BLOCK08_009,
type: "svg"
}, {
spriteSpec: G.N057_L3_WATERFALL_BLOCK08_010,
type: "svg"
}, {
spriteSpec: G.N057_L3_WATERFALL_BLOCK08_011,
type: "svg"
}, {
spriteSpec: G.N057_L3_WATERFALL_BLOCK08_012,
type: "svg"
}, {
spriteSpec: G.N057_L3_WATERFALL_BLOCK08_013,
type: "svg"
}, {
spriteSpec: G.N057_L3_WATERFALL_BLOCK08_014,
type: "svg"
}, {
spriteSpec: G.N057_L3_WATERFALL_BLOCK08_015,
type: "svg"
}, {
spriteSpec: G.N057_L3_WATERFALL_BLOCK08_016,
type: "svg"
}, {
spriteSpec: G.N057_L3_WATERFALL_BLOCK08_017,
type: "svg"
}, {
spriteSpec: G.N057_L3_WATERFALL_BLOCK08_018,
type: "svg"
}, {
spriteSpec: G.N057_L3_WATERFALL_BLOCK08_019,
type: "svg"
}, {
spriteSpec: G.N057_L3_WATERFALL_BLOCK08_020,
type: "svg"
}],
type: "triggerable"
}],
[112, {
tiledSpriteSpecs: [{
spriteSpec: G.N072_L3_ISLAND01,
type: "svg"
}],
type: null
}],
[114, {
tiledSpriteSpecs: [{
spriteSpec: G.N074_L3_ISLAND03,
type: "svg"
}],
type: null
}],
[115, {
tiledSpriteSpecs: [{
spriteSpec: G.N075_L3_ISLAND04,
type: "svg"
}],
type: null
}],
[116, {
tiledSpriteSpecs: [{
spriteSpec: G.N076_L3_ISLAND05,
type: "svg"
}],
type: null
}],
[117, {
tiledSpriteSpecs: [{
spriteSpec: G.N077_L3_ISLAND06,
type: "svg"
}],
type: null
}],
[118, {
tiledSpriteSpecs: [{
spriteSpec: G.N070_L3_WINDMILLBUILDING,
type: "svg"
}],
type: null
}],
[119, {
tiledSpriteSpecs: [{
spriteSpec: G.N071_L3_WINDMILL_PROPELLER_001,
type: "svg"
}, {
spriteSpec: G.N071_L3_WINDMILL_PROPELLER_002,
type: "svg"
}, {
spriteSpec: G.N071_L3_WINDMILL_PROPELLER_003,
type: "svg"
}, {
spriteSpec: G.N071_L3_WINDMILL_PROPELLER_004,
type: "svg"
}, {
spriteSpec: G.N071_L3_WINDMILL_PROPELLER_005,
type: "svg"
}, {
spriteSpec: G.N071_L3_WINDMILL_PROPELLER_006,
type: "svg"
}, {
spriteSpec: G.N071_L3_WINDMILL_PROPELLER_007,
type: "svg"
}, {
spriteSpec: G.N071_L3_WINDMILL_PROPELLER_008,
type: "svg"
}, {
spriteSpec: G.N071_L3_WINDMILL_PROPELLER_009,
type: "svg"
}, {
spriteSpec: G.N071_L3_WINDMILL_PROPELLER_010,
type: "svg"
}, {
spriteSpec: G.N071_L3_WINDMILL_PROPELLER_011,
type: "svg"
}, {
spriteSpec: G.N071_L3_WINDMILL_PROPELLER_012,
type: "svg"
}, {
spriteSpec: G.N071_L3_WINDMILL_PROPELLER_013,
type: "svg"
}, {
spriteSpec: G.N071_L3_WINDMILL_PROPELLER_014,
type: "svg"
}, {
spriteSpec: G.N071_L3_WINDMILL_PROPELLER_015,
type: "svg"
}, {
spriteSpec: G.N071_L3_WINDMILL_PROPELLER_016,
type: "svg"
}, {
spriteSpec: G.N071_L3_WINDMILL_PROPELLER_017,
type: "svg"
}, {
spriteSpec: G.N071_L3_WINDMILL_PROPELLER_018,
type: "svg"
}, {
spriteSpec: G.N071_L3_WINDMILL_PROPELLER_019,
type: "svg"
}, {
spriteSpec: G.N071_L3_WINDMILL_PROPELLER_020,
type: "svg"
}, {
spriteSpec: G.N071_L3_WINDMILL_PROPELLER_021,
type: "svg"
}, {
spriteSpec: G.N071_L3_WINDMILL_PROPELLER_022,
type: "svg"
}, {
spriteSpec: G.N071_L3_WINDMILL_PROPELLER_023,
type: "svg"
}, {
spriteSpec: G.N071_L3_WINDMILL_PROPELLER_024,
type: "svg"
}, {
spriteSpec: G.N071_L3_WINDMILL_PROPELLER_025,
type: "svg"
}, {
spriteSpec: G.N071_L3_WINDMILL_PROPELLER_026,
type: "svg"
}, {
spriteSpec: G.N071_L3_WINDMILL_PROPELLER_027,
type: "svg"
}, {
spriteSpec: G.N071_L3_WINDMILL_PROPELLER_028,
type: "svg"
}, {
spriteSpec: G.N071_L3_WINDMILL_PROPELLER_029,
type: "svg"
}, {
spriteSpec: G.N071_L3_WINDMILL_PROPELLER_030,
type: "svg"
}, {
spriteSpec: G.N071_L3_WINDMILL_PROPELLER_031,
type: "svg"
}, {
spriteSpec: G.N071_L3_WINDMILL_PROPELLER_032,
type: "svg"
}, {
spriteSpec: G.N071_L3_WINDMILL_PROPELLER_033,
type: "svg"
}, {
spriteSpec: G.N071_L3_WINDMILL_PROPELLER_034,
type: "svg"
}, {
spriteSpec: G.N071_L3_WINDMILL_PROPELLER_035,
type: "svg"
}, {
spriteSpec: G.N071_L3_WINDMILL_PROPELLER_036,
type: "svg"
}, {
spriteSpec: G.N071_L3_WINDMILL_PROPELLER_037,
type: "svg"
}, {
spriteSpec: G.N071_L3_WINDMILL_PROPELLER_038,
type: "svg"
}, {
spriteSpec: G.N071_L3_WINDMILL_PROPELLER_039,
type: "svg"
}, {
spriteSpec: G.N071_L3_WINDMILL_PROPELLER_040,
type: "svg"
}, {
spriteSpec: G.N071_L3_WINDMILL_PROPELLER_041,
type: "svg"
}, {
spriteSpec: G.N071_L3_WINDMILL_PROPELLER_042,
type: "svg"
}, {
spriteSpec: G.N071_L3_WINDMILL_PROPELLER_043,
type: "svg"
}, {
spriteSpec: G.N071_L3_WINDMILL_PROPELLER_044,
type: "svg"
}, {
spriteSpec: G.N071_L3_WINDMILL_PROPELLER_045,
type: "svg"
}, {
spriteSpec: G.N071_L3_WINDMILL_PROPELLER_046,
type: "svg"
}, {
spriteSpec: G.N071_L3_WINDMILL_PROPELLER_047,
type: "svg"
}, {
spriteSpec: G.N071_L3_WINDMILL_PROPELLER_048,
type: "svg"
}],
type: null
}],
[120, {
tiledSpriteSpecs: [{
spriteSpec: G.N052_L3_BLOCK04_001,
type: "svg"
}, {
spriteSpec: G.N052_L3_BLOCK04_002,
type: "svg"
}, {
spriteSpec: G.N052_L3_BLOCK04_003,
type: "svg"
}, {
spriteSpec: G.N052_L3_BLOCK04_004,
type: "svg"
}, {
spriteSpec: G.N052_L3_BLOCK04_005,
type: "svg"
}, {
spriteSpec: G.N052_L3_BLOCK04_006,
type: "svg"
}, {
spriteSpec: G.N052_L3_BLOCK04_007,
type: "svg"
}, {
spriteSpec: G.N052_L3_BLOCK04_008,
type: "svg"
}, {
spriteSpec: G.N052_L3_BLOCK04_009,
type: "svg"
}, {
spriteSpec: G.N052_L3_BLOCK04_010,
type: "svg"
}, {
spriteSpec: G.N052_L3_BLOCK04_011,
type: "svg"
}, {
spriteSpec: G.N052_L3_BLOCK04_012,
type: "svg"
}, {
spriteSpec: G.N052_L3_BLOCK04_013,
type: "svg"
}, {
spriteSpec: G.N052_L3_BLOCK04_014,
type: "svg"
}, {
spriteSpec: G.N052_L3_BLOCK04_015,
type: "svg"
}, {
spriteSpec: G.N052_L3_BLOCK04_016,
type: "svg"
}, {
spriteSpec: G.N052_L3_BLOCK04_017,
type: "svg"
}, {
spriteSpec: G.N052_L3_BLOCK04_018,
type: "svg"
}, {
spriteSpec: G.N052_L3_BLOCK04_019,
type: "svg"
}, {
spriteSpec: G.N052_L3_BLOCK04_020,
type: "svg"
}, {
spriteSpec: G.N052_L3_BLOCK04_021,
type: "svg"
}, {
spriteSpec: G.N052_L3_BLOCK04_022,
type: "svg"
}, {
spriteSpec: G.N052_L3_BLOCK04_023,
type: "svg"
}, {
spriteSpec: G.N052_L3_BLOCK04_024,
type: "svg"
}, {
spriteSpec: G.N052_L3_BLOCK04_025,
type: "svg"
}, {
spriteSpec: G.N052_L3_BLOCK04_026,
type: "svg"
}, {
spriteSpec: G.N052_L3_BLOCK04_027,
type: "svg"
}, {
spriteSpec: G.N052_L3_BLOCK04_028,
type: "svg"
}, {
spriteSpec: G.N052_L3_BLOCK04_029,
type: "svg"
}, {
spriteSpec: G.N052_L3_BLOCK04_030,
type: "svg"
}, {
spriteSpec: G.N052_L3_BLOCK04_031,
type: "svg"
}, {
spriteSpec: G.N052_L3_BLOCK04_032,
type: "svg"
}, {
spriteSpec: G.N052_L3_BLOCK04_033,
type: "svg"
}, {
spriteSpec: G.N052_L3_BLOCK04_034,
type: "svg"
}, {
spriteSpec: G.N052_L3_BLOCK04_035,
type: "svg"
}, {
spriteSpec: G.N052_L3_BLOCK04_036,
type: "svg"
}, {
spriteSpec: G.N052_L3_BLOCK04_037,
type: "svg"
}, {
spriteSpec: G.N052_L3_BLOCK04_038,
type: "svg"
}, {
spriteSpec: G.N052_L3_BLOCK04_039,
type: "svg"
}, {
spriteSpec: G.N052_L3_BLOCK04_040,
type: "svg"
}, {
spriteSpec: G.N052_L3_BLOCK04_041,
type: "svg"
}, {
spriteSpec: G.N052_L3_BLOCK04_042,
type: "svg"
}],
type: "triggerable"
}],
[121, {
tiledSpriteSpecs: [{
spriteSpec: G.N080_L3_BIRDLOOP_001,
type: "svg"
}, {
spriteSpec: G.N080_L3_BIRDLOOP_002,
type: "svg"
}, {
spriteSpec: G.N080_L3_BIRDLOOP_003,
type: "svg"
}, {
spriteSpec: G.N080_L3_BIRDLOOP_004,
type: "svg"
}, {
spriteSpec: G.N080_L3_BIRDLOOP_005,
type: "svg"
}, {
spriteSpec: G.N080_L3_BIRDLOOP_006,
type: "svg"
}, {
spriteSpec: G.N080_L3_BIRDLOOP_007,
type: "svg"
}, {
spriteSpec: G.N080_L3_BIRDLOOP_008,
type: "svg"
}, {
spriteSpec: G.N080_L3_BIRDLOOP_009,
type: "svg"
}, {
spriteSpec: G.N080_L3_BIRDLOOP_010,
type: "svg"
}, {
spriteSpec: G.N080_L3_BIRDLOOP_011,
type: "svg"
}, {
spriteSpec: G.N080_L3_BIRDLOOP_012,
type: "svg"
}, {
spriteSpec: G.N080_L3_BIRDLOOP_013,
type: "svg"
}, {
spriteSpec: G.N080_L3_BIRDLOOP_014,
type: "svg"
}, {
spriteSpec: G.N080_L3_BIRDLOOP_015,
type: "svg"
}, {
spriteSpec: G.N080_L3_BIRDLOOP_016,
type: "svg"
}, {
spriteSpec: G.N080_L3_BIRDLOOP_017,
type: "svg"
}, {
spriteSpec: G.N080_L3_BIRDLOOP_018,
type: "svg"
}, {
spriteSpec: G.N080_L3_BIRDLOOP_019,
type: "svg"
}, {
spriteSpec: G.N080_L3_BIRDLOOP_020,
type: "svg"
}, {
spriteSpec: G.N080_L3_BIRDLOOP_021,
type: "svg"
}, {
spriteSpec: G.N080_L3_BIRDLOOP_022,
type: "svg"
}, {
spriteSpec: G.N080_L3_BIRDLOOP_023,
type: "svg"
}, {
spriteSpec: G.N080_L3_BIRDLOOP_024,
type: "svg"
}, {
spriteSpec: G.N080_L3_BIRDLOOP_025,
type: "svg"
}, {
spriteSpec: G.N080_L3_BIRDLOOP_026,
type: "svg"
}, {
spriteSpec: G.N080_L3_BIRDLOOP_027,
type: "svg"
}, {
spriteSpec: G.N080_L3_BIRDLOOP_028,
type: "svg"
}, {
spriteSpec: G.N080_L3_BIRDLOOP_029,
type: "svg"
}, {
spriteSpec: G.N080_L3_BIRDLOOP_030,
type: "svg"
}, {
spriteSpec: G.N080_L3_BIRDLOOP_031,
type: "svg"
}, {
spriteSpec: G.N080_L3_BIRDLOOP_032,
type: "svg"
}, {
spriteSpec: G.N080_L3_BIRDLOOP_033,
type: "svg"
}, {
spriteSpec: G.N080_L3_BIRDLOOP_034,
type: "svg"
}, {
spriteSpec: G.N080_L3_BIRDLOOP_035,
type: "svg"
}, {
spriteSpec: G.N080_L3_BIRDLOOP_036,
type: "svg"
}, {
spriteSpec: G.N080_L3_BIRDLOOP_037,
type: "svg"
}, {
spriteSpec: G.N080_L3_BIRDLOOP_038,
type: "svg"
}, {
spriteSpec: G.N080_L3_BIRDLOOP_039,
type: "svg"
}, {
spriteSpec: G.N080_L3_BIRDLOOP_040,
type: "svg"
}, {
spriteSpec: G.N080_L3_BIRDLOOP_041,
type: "svg"
}, {
spriteSpec: G.N080_L3_BIRDLOOP_042,
type: "svg"
}, {
spriteSpec: G.N080_L3_BIRDLOOP_043,
type: "svg"
}, {
spriteSpec: G.N080_L3_BIRDLOOP_044,
type: "svg"
}, {
spriteSpec: G.N080_L3_BIRDLOOP_045,
type: "svg"
}, {
spriteSpec: G.N080_L3_BIRDLOOP_046,
type: "svg"
}, {
spriteSpec: G.N080_L3_BIRDLOOP_047,
type: "svg"
}, {
spriteSpec: G.N080_L3_BIRDLOOP_048,
type: "svg"
}, {
spriteSpec: G.N080_L3_BIRDLOOP_049,
type: "svg"
}, {
spriteSpec: G.N080_L3_BIRDLOOP_050,
type: "svg"
}, {
spriteSpec: G.N080_L3_BIRDLOOP_051,
type: "svg"
}, {
spriteSpec: G.N080_L3_BIRDLOOP_052,
type: "svg"
}, {
spriteSpec: G.N080_L3_BIRDLOOP_053,
type: "svg"
}, {
spriteSpec: G.N080_L3_BIRDLOOP_054,
type: "svg"
}, {
spriteSpec: G.N080_L3_BIRDLOOP_055,
type: "svg"
}, {
spriteSpec: G.N080_L3_BIRDLOOP_056,
type: "svg"
}, {
spriteSpec: G.N080_L3_BIRDLOOP_057,
type: "svg"
}, {
spriteSpec: G.N080_L3_BIRDLOOP_058,
type: "svg"
}, {
spriteSpec: G.N080_L3_BIRDLOOP_059,
type: "svg"
}, {
spriteSpec: G.N080_L3_BIRDLOOP_060,
type: "svg"
}, {
spriteSpec: G.N080_L3_BIRDLOOP_061,
type: "svg"
}, {
spriteSpec: G.N080_L3_BIRDLOOP_062,
type: "svg"
}, {
spriteSpec: G.N080_L3_BIRDLOOP_063,
type: "svg"
}, {
spriteSpec: G.N080_L3_BIRDLOOP_064,
type: "svg"
}, {
spriteSpec: G.N080_L3_BIRDLOOP_065,
type: "svg"
}],
type: "triggerable"
}],
[122, {
tiledSpriteSpecs: [{
spriteSpec: G.N078_L3_LEAVES_001,
type: "svg"
}, {
spriteSpec: G.N078_L3_LEAVES_002,
type: "svg"
}, {
spriteSpec: G.N078_L3_LEAVES_003,
type: "svg"
}, {
spriteSpec: G.N078_L3_LEAVES_004,
type: "svg"
}, {
spriteSpec: G.N078_L3_LEAVES_005,
type: "svg"
}, {
spriteSpec: G.N078_L3_LEAVES_006,
type: "svg"
}, {
spriteSpec: G.N078_L3_LEAVES_007,
type: "svg"
}, {
spriteSpec: G.N078_L3_LEAVES_008,
type: "svg"
}, {
spriteSpec: G.N078_L3_LEAVES_009,
type: "svg"
}, {
spriteSpec: G.N078_L3_LEAVES_010,
type: "svg"
}, {
spriteSpec: G.N078_L3_LEAVES_011,
type: "svg"
}, {
spriteSpec: G.N078_L3_LEAVES_012,
type: "svg"
}, {
spriteSpec: G.N078_L3_LEAVES_013,
type: "svg"
}, {
spriteSpec: G.N078_L3_LEAVES_014,
type: "svg"
}, {
spriteSpec: G.N078_L3_LEAVES_015,
type: "svg"
}, {
spriteSpec: G.N078_L3_LEAVES_016,
type: "svg"
},
{
spriteSpec: G.N078_L3_LEAVES_017,
type: "svg"
}, {
spriteSpec: G.N078_L3_LEAVES_018,
type: "svg"
}, {
spriteSpec: G.N078_L3_LEAVES_019,
type: "svg"
}, {
spriteSpec: G.N078_L3_LEAVES_020,
type: "svg"
}, {
spriteSpec: G.N078_L3_LEAVES_021,
type: "svg"
}, {
spriteSpec: G.N078_L3_LEAVES_022,
type: "svg"
}, {
spriteSpec: G.N078_L3_LEAVES_023,
type: "svg"
}
],
type: null
}],
[123, {
tiledSpriteSpecs: [{
spriteSpec: G.N066_L3_CLOUD01,
type: "svg"
}],
type: "cloud"
}],
[124, {
tiledSpriteSpecs: [{
spriteSpec: G.N067_L3_CLOUD02,
type: "svg"
}],
type: "cloud"
}],
[125, {
tiledSpriteSpecs: [{
spriteSpec: G.N068_L3_CLOUD03,
type: "svg"
}],
type: "cloud"
}],
[126, {
tiledSpriteSpecs: [{
spriteSpec: G.N069_L3_CLOUD04,
type: "svg"
}],
type: "cloud"
}],
[127, {
tiledSpriteSpecs: [{
spriteSpec: G.N063_L3_TILE06_013,
type: "svg"
}],
type: "passable"
}],
[128, {
tiledSpriteSpecs: [{
spriteSpec: G.N064_L3_TILE07_009,
type: "svg"
}],
type: "passable"
}],
[129, {
tiledSpriteSpecs: [{
spriteSpec: G.N065_L3_TILE08_010,
type: "svg"
}],
type: "passable"
}],
[130, {
tiledSpriteSpecs: [{
spriteSpec: G.N062_L3_TILE05_012,
type: "svg"
}],
type: "passable"
}],
[131, {
tiledSpriteSpecs: [{
spriteSpec: G.N054_L3_WATERFALL_BLOCK05_001,
type: "svg"
}, {
spriteSpec: G.N054_L3_WATERFALL_BLOCK05_002,
type: "svg"
}, {
spriteSpec: G.N054_L3_WATERFALL_BLOCK05_003,
type: "svg"
}, {
spriteSpec: G.N054_L3_WATERFALL_BLOCK05_004,
type: "svg"
}, {
spriteSpec: G.N054_L3_WATERFALL_BLOCK05_005,
type: "svg"
}, {
spriteSpec: G.N054_L3_WATERFALL_BLOCK05_006,
type: "svg"
}, {
spriteSpec: G.N054_L3_WATERFALL_BLOCK05_007,
type: "svg"
}, {
spriteSpec: G.N054_L3_WATERFALL_BLOCK05_008,
type: "svg"
}, {
spriteSpec: G.N054_L3_WATERFALL_BLOCK05_009,
type: "svg"
}, {
spriteSpec: G.N054_L3_WATERFALL_BLOCK05_010,
type: "svg"
}, {
spriteSpec: G.N054_L3_WATERFALL_BLOCK05_011,
type: "svg"
}, {
spriteSpec: G.N054_L3_WATERFALL_BLOCK05_012,
type: "svg"
}, {
spriteSpec: G.N054_L3_WATERFALL_BLOCK05_013,
type: "svg"
}, {
spriteSpec: G.N054_L3_WATERFALL_BLOCK05_014,
type: "svg"
}, {
spriteSpec: G.N054_L3_WATERFALL_BLOCK05_015,
type: "svg"
}, {
spriteSpec: G.N054_L3_WATERFALL_BLOCK05_016,
type: "svg"
}, {
spriteSpec: G.N054_L3_WATERFALL_BLOCK05_017,
type: "svg"
}, {
spriteSpec: G.N054_L3_WATERFALL_BLOCK05_018,
type: "svg"
}, {
spriteSpec: G.N054_L3_WATERFALL_BLOCK05_019,
type: "svg"
}, {
spriteSpec: G.N054_L3_WATERFALL_BLOCK05_020,
type: "svg"
}],
type: "triggerable"
}],
[133, {
tiledSpriteSpecs: [{
spriteSpec: G.N111_L4_TILE13_007,
type: "svg"
}],
type: "passable"
}],
[134, {
tiledSpriteSpecs: [{
spriteSpec: G.N110_L4_TILE12_012,
type: "svg"
}],
type: "passable"
}],
[135, {
tiledSpriteSpecs: [{
spriteSpec: G.N109_L4_TILE11_010,
type: "svg"
}],
type: "passable"
}],
[136, {
tiledSpriteSpecs: [{
spriteSpec: G.N107_L4_TILE09_013,
type: "svg"
}],
type: "passable"
}],
[138, {
tiledSpriteSpecs: [{
spriteSpec: G.N106_L4_TILE08_010,
type: "svg"
}],
type: "passable"
}],
[139, {
tiledSpriteSpecs: [{
spriteSpec: G.N105_L4_TILE07_009,
type: "svg"
}],
type: "passable"
}],
[143, {
tiledSpriteSpecs: [{
spriteSpec: G.N101_L4_TILE03_007,
type: "svg"
}],
type: "passable"
}],
[145, {
tiledSpriteSpecs: [{
spriteSpec: G.N099_L4_TILE01_002,
type: "svg"
}],
type: "passable"
}],
[146, {
tiledSpriteSpecs: [{
spriteSpec: G.N093_L4_CLOUD01,
type: "svg"
}],
type: "cloud"
}],
[147, {
tiledSpriteSpecs: [{
spriteSpec: G.N094_L4_CLOUD02,
type: "svg"
}],
type: "cloud"
}],
[148, {
tiledSpriteSpecs: [{
spriteSpec: G.N095_L4_CLOUD03,
type: "svg"
}],
type: "cloud"
}],
[149, {
tiledSpriteSpecs: [{
spriteSpec: G.N096_L4_OWL_TREE,
type: "svg"
}],
type: null
}],
[150, {
tiledSpriteSpecs: [{
spriteSpec: G.N097_L4_SQUIRREL_TREE,
type: "svg"
}],
type: null
}],
[152, {
tiledSpriteSpecs: [{
spriteSpec: G.N098_L4_WATER,
type: "svg"
}],
type: "unpassable"
}],
[153, {
tiledSpriteSpecs: [{
spriteSpec: G.N130_L4_OWL_HEAD_001,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_001,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_001,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_001,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_001,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_001,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_001,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_001,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_001,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_001,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_001,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_004,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_005,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_006,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_007,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_011,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_011,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_011,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_011,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_011,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_011,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_011,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_011,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_011,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_011,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_011,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_011,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_011,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_011,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_011,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_011,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_012,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_013,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_014,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_015,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_014,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_013,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_012,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_011,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_011,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_011,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_011,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_011,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_011,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_011,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_019,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_020,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_019,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_011,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_011,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_011,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_011,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_011,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_011,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_011,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_011,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_011,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_011,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_011,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_011,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_011,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_011,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_011,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_028,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_029,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_030,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_031,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_032,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_033,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_034,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_035,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_035,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_035,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_037,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_038,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_037,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_035,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_035,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_035,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_035,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_035,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_035,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_035,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_035,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_035,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_035,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_035,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_035,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_035,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_035,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_035,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_037,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_038,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_037,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_035,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_035,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_035,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_035,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_035,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_035,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_035,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_035,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_035,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_035,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_035,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_035,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_035,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_035,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_035,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_035,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_035,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_035,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_035,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_035,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_035,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_035,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_034,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_033,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_032,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_031,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_030,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_029,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_028,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_011,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_011,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_011,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_011,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_011,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_011,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_011,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_011,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_011,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_011,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_011,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_019,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_020,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_019,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_011,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_011,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_011,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_011,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_011,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_011,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_011,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_011,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_011,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_019,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_020,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_019,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_011,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_011,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_007,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_006,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_005,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_004,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_001,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_001,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_001,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_001,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_001,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_001,
type: "svg"
}, {
spriteSpec: G.N130_L4_OWL_HEAD_001,
type: "svg"
}],
type: null
}],
[154, {
tiledSpriteSpecs: [{
spriteSpec: G.N116_L4_BLOCK03_MOLE_001,
type: "svg"
}, {
spriteSpec: G.N116_L4_BLOCK03_MOLE_002,
type: "svg"
}, {
spriteSpec: G.N116_L4_BLOCK03_MOLE_003,
type: "svg"
}, {
spriteSpec: G.N116_L4_BLOCK03_MOLE_004,
type: "svg"
}, {
spriteSpec: G.N116_L4_BLOCK03_MOLE_005,
type: "svg"
}, {
spriteSpec: G.N116_L4_BLOCK03_MOLE_006,
type: "svg"
}, {
spriteSpec: G.N116_L4_BLOCK03_MOLE_007,
type: "svg"
}, {
spriteSpec: G.N116_L4_BLOCK03_MOLE_008,
type: "svg"
}, {
spriteSpec: G.N116_L4_BLOCK03_MOLE_009,
type: "svg"
}, {
spriteSpec: G.N116_L4_BLOCK03_MOLE_010,
type: "svg"
}, {
spriteSpec: G.N116_L4_BLOCK03_MOLE_011,
type: "svg"
}, {
spriteSpec: G.N116_L4_BLOCK03_MOLE_012,
type: "svg"
}, {
spriteSpec: G.N116_L4_BLOCK03_MOLE_013,
type: "svg"
}, {
spriteSpec: G.N116_L4_BLOCK03_MOLE_014,
type: "svg"
}, {
spriteSpec: G.N116_L4_BLOCK03_MOLE_015,
type: "svg"
}, {
spriteSpec: G.N116_L4_BLOCK03_MOLE_016,
type: "svg"
}, {
spriteSpec: G.N116_L4_BLOCK03_MOLE_017,
type: "svg"
}, {
spriteSpec: G.N116_L4_BLOCK03_MOLE_018,
type: "svg"
}, {
spriteSpec: G.N116_L4_BLOCK03_MOLE_019,
type: "svg"
}, {
spriteSpec: G.N116_L4_BLOCK03_MOLE_020,
type: "svg"
}, {
spriteSpec: G.N116_L4_BLOCK03_MOLE_021,
type: "svg"
}, {
spriteSpec: G.N116_L4_BLOCK03_MOLE_022,
type: "svg"
}, {
spriteSpec: G.N116_L4_BLOCK03_MOLE_023,
type: "svg"
}, {
spriteSpec: G.N116_L4_BLOCK03_MOLE_024,
type: "svg"
}, {
spriteSpec: G.N116_L4_BLOCK03_MOLE_025,
type: "svg"
}, {
spriteSpec: G.N116_L4_BLOCK03_MOLE_026,
type: "svg"
}, {
spriteSpec: G.N116_L4_BLOCK03_MOLE_027,
type: "svg"
}, {
spriteSpec: G.N116_L4_BLOCK03_MOLE_028,
type: "svg"
}, {
spriteSpec: G.N116_L4_BLOCK03_MOLE_029,
type: "svg"
}, {
spriteSpec: G.N116_L4_BLOCK03_MOLE_030,
type: "svg"
}, {
spriteSpec: G.N116_L4_BLOCK03_MOLE_031,
type: "svg"
}, {
spriteSpec: G.N116_L4_BLOCK03_MOLE_032,
type: "svg"
}, {
spriteSpec: G.N116_L4_BLOCK03_MOLE_033,
type: "svg"
}, {
spriteSpec: G.N116_L4_BLOCK03_MOLE_034,
type: "svg"
}, {
spriteSpec: G.N116_L4_BLOCK03_MOLE_035,
type: "svg"
}, {
spriteSpec: G.N116_L4_BLOCK03_MOLE_036,
type: "svg"
}, {
spriteSpec: G.N116_L4_BLOCK03_MOLE_037,
type: "svg"
}, {
spriteSpec: G.N116_L4_BLOCK03_MOLE_038,
type: "svg"
}, {
spriteSpec: G.N116_L4_BLOCK03_MOLE_039,
type: "svg"
}, {
spriteSpec: G.N116_L4_BLOCK03_MOLE_040,
type: "svg"
}, {
spriteSpec: G.N116_L4_BLOCK03_MOLE_041,
type: "svg"
}, {
spriteSpec: G.N116_L4_BLOCK03_MOLE_042,
type: "svg"
}, {
spriteSpec: G.N116_L4_BLOCK03_MOLE_043,
type: "svg"
}, {
spriteSpec: G.N116_L4_BLOCK03_MOLE_044,
type: "svg"
}, {
spriteSpec: G.N116_L4_BLOCK03_MOLE_045,
type: "svg"
}, {
spriteSpec: G.N116_L4_BLOCK03_MOLE_046,
type: "svg"
}, {
spriteSpec: G.N116_L4_BLOCK03_MOLE_047,
type: "svg"
}, {
spriteSpec: G.N116_L4_BLOCK03_MOLE_048,
type: "svg"
}, {
spriteSpec: G.N116_L4_BLOCK03_MOLE_049,
type: "svg"
}, {
spriteSpec: G.N116_L4_BLOCK03_MOLE_050,
type: "svg"
}, {
spriteSpec: G.N116_L4_BLOCK03_MOLE_051,
type: "svg"
}, {
spriteSpec: G.N116_L4_BLOCK03_MOLE_052,
type: "svg"
}, {
spriteSpec: G.N116_L4_BLOCK03_MOLE_053,
type: "svg"
}, {
spriteSpec: G.N116_L4_BLOCK03_MOLE_054,
type: "svg"
}, {
spriteSpec: G.N116_L4_BLOCK03_MOLE_055,
type: "svg"
}, {
spriteSpec: G.N116_L4_BLOCK03_MOLE_056,
type: "svg"
}, {
spriteSpec: G.N116_L4_BLOCK03_MOLE_057,
type: "svg"
}],
type: "triggerable"
}],
[155, {
tiledSpriteSpecs: [{
spriteSpec: G.N117_L4_BLOCK04_FLOWER_001,
type: "svg"
}, {
spriteSpec: G.N117_L4_BLOCK04_FLOWER_002,
type: "svg"
}, {
spriteSpec: G.N117_L4_BLOCK04_FLOWER_003,
type: "svg"
}, {
spriteSpec: G.N117_L4_BLOCK04_FLOWER_004,
type: "svg"
}, {
spriteSpec: G.N117_L4_BLOCK04_FLOWER_005,
type: "svg"
}, {
spriteSpec: G.N117_L4_BLOCK04_FLOWER_006,
type: "svg"
}, {
spriteSpec: G.N117_L4_BLOCK04_FLOWER_007,
type: "svg"
}, {
spriteSpec: G.N117_L4_BLOCK04_FLOWER_008,
type: "svg"
}, {
spriteSpec: G.N117_L4_BLOCK04_FLOWER_009,
type: "svg"
}, {
spriteSpec: G.N117_L4_BLOCK04_FLOWER_010,
type: "svg"
}, {
spriteSpec: G.N117_L4_BLOCK04_FLOWER_011,
type: "svg"
}, {
spriteSpec: G.N117_L4_BLOCK04_FLOWER_012,
type: "svg"
}, {
spriteSpec: G.N117_L4_BLOCK04_FLOWER_013,
type: "svg"
}, {
spriteSpec: G.N117_L4_BLOCK04_FLOWER_014,
type: "svg"
}, {
spriteSpec: G.N117_L4_BLOCK04_FLOWER_015,
type: "svg"
}],
type: "triggerable"
}],
[156, {
tiledSpriteSpecs: [{
spriteSpec: G.N118_L4_BLOCK05_LOGS_0,
type: "svg"
}, {
spriteSpec: G.N118_L4_BLOCK05_LOGS_1,
type: "svg"
}, {
spriteSpec: G.N118_L4_BLOCK05_LOGS_2,
type: "svg"
}, {
spriteSpec: G.N118_L4_BLOCK05_LOGS_3,
type: "svg"
}, {
spriteSpec: G.N118_L4_BLOCK05_LOGS_4,
type: "svg"
}, {
spriteSpec: G.N118_L4_BLOCK05_LOGS_5,
type: "svg"
}, {
spriteSpec: G.N118_L4_BLOCK05_LOGS_6,
type: "svg"
}, {
spriteSpec: G.N118_L4_BLOCK05_LOGS_7,
type: "svg"
}, {
spriteSpec: G.N118_L4_BLOCK05_LOGS_8,
type: "svg"
}, {
spriteSpec: G.N118_L4_BLOCK05_LOGS_9,
type: "svg"
}, {
spriteSpec: G.N118_L4_BLOCK05_LOGS_10,
type: "svg"
}, {
spriteSpec: G.N118_L4_BLOCK05_LOGS_11,
type: "svg"
}, {
spriteSpec: G.N118_L4_BLOCK05_LOGS_12,
type: "svg"
},
{
spriteSpec: G.N118_L4_BLOCK05_LOGS_13,
type: "svg"
}, {
spriteSpec: G.N118_L4_BLOCK05_LOGS_14,
type: "svg"
}, {
spriteSpec: G.N118_L4_BLOCK05_LOGS_15,
type: "svg"
}, {
spriteSpec: G.N118_L4_BLOCK05_LOGS_16,
type: "svg"
}, {
spriteSpec: G.N118_L4_BLOCK05_LOGS_17,
type: "svg"
}, {
spriteSpec: G.N118_L4_BLOCK05_LOGS_18,
type: "svg"
}, {
spriteSpec: G.N118_L4_BLOCK05_LOGS_19,
type: "svg"
}, {
spriteSpec: G.N118_L4_BLOCK05_LOGS_20,
type: "svg"
}, {
spriteSpec: G.N118_L4_BLOCK05_LOGS_21,
type: "svg"
}, {
spriteSpec: G.N118_L4_BLOCK05_LOGS_22,
type: "svg"
}, {
spriteSpec: G.N118_L4_BLOCK05_LOGS_23,
type: "svg"
}
],
type: "triggerable"
}],
[157, {
tiledSpriteSpecs: [{
spriteSpec: G.N119_L4_BLOCK06_FLOWER_001,
type: "svg"
}, {
spriteSpec: G.N119_L4_BLOCK06_FLOWER_002,
type: "svg"
}, {
spriteSpec: G.N119_L4_BLOCK06_FLOWER_003,
type: "svg"
}, {
spriteSpec: G.N119_L4_BLOCK06_FLOWER_004,
type: "svg"
}, {
spriteSpec: G.N119_L4_BLOCK06_FLOWER_005,
type: "svg"
}, {
spriteSpec: G.N119_L4_BLOCK06_FLOWER_006,
type: "svg"
}, {
spriteSpec: G.N119_L4_BLOCK06_FLOWER_007,
type: "svg"
}, {
spriteSpec: G.N119_L4_BLOCK06_FLOWER_008,
type: "svg"
}, {
spriteSpec: G.N119_L4_BLOCK06_FLOWER_009,
type: "svg"
}, {
spriteSpec: G.N119_L4_BLOCK06_FLOWER_010,
type: "svg"
}, {
spriteSpec: G.N119_L4_BLOCK06_FLOWER_011,
type: "svg"
}, {
spriteSpec: G.N119_L4_BLOCK06_FLOWER_012,
type: "svg"
}, {
spriteSpec: G.N119_L4_BLOCK06_FLOWER_013,
type: "svg"
}, {
spriteSpec: G.N119_L4_BLOCK06_FLOWER_014,
type: "svg"
}, {
spriteSpec: G.N119_L4_BLOCK06_FLOWER_015,
type: "svg"
}, {
spriteSpec: G.N119_L4_BLOCK06_FLOWER_016,
type: "svg"
}, {
spriteSpec: G.N119_L4_BLOCK06_FLOWER_017,
type: "svg"
}, {
spriteSpec: G.N119_L4_BLOCK06_FLOWER_018,
type: "svg"
}],
type: "triggerable"
}],
[158, {
tiledSpriteSpecs: [{
spriteSpec: G.N123_L4_BLOCK10_FLOWER_TREE_001,
type: "svg"
}, {
spriteSpec: G.N123_L4_BLOCK10_FLOWER_TREE_002,
type: "svg"
}, {
spriteSpec: G.N123_L4_BLOCK10_FLOWER_TREE_003,
type: "svg"
}, {
spriteSpec: G.N123_L4_BLOCK10_FLOWER_TREE_004,
type: "svg"
}, {
spriteSpec: G.N123_L4_BLOCK10_FLOWER_TREE_005,
type: "svg"
}, {
spriteSpec: G.N123_L4_BLOCK10_FLOWER_TREE_006,
type: "svg"
}, {
spriteSpec: G.N123_L4_BLOCK10_FLOWER_TREE_007,
type: "svg"
}, {
spriteSpec: G.N123_L4_BLOCK10_FLOWER_TREE_008,
type: "svg"
}, {
spriteSpec: G.N123_L4_BLOCK10_FLOWER_TREE_009,
type: "svg"
}, {
spriteSpec: G.N123_L4_BLOCK10_FLOWER_TREE_010,
type: "svg"
}, {
spriteSpec: G.N123_L4_BLOCK10_FLOWER_TREE_011,
type: "svg"
}, {
spriteSpec: G.N123_L4_BLOCK10_FLOWER_TREE_012,
type: "svg"
}, {
spriteSpec: G.N123_L4_BLOCK10_FLOWER_TREE_013,
type: "svg"
}, {
spriteSpec: G.N123_L4_BLOCK10_FLOWER_TREE_014,
type: "svg"
}, {
spriteSpec: G.N123_L4_BLOCK10_FLOWER_TREE_015,
type: "svg"
}, {
spriteSpec: G.N123_L4_BLOCK10_FLOWER_TREE_016,
type: "svg"
}, {
spriteSpec: G.N123_L4_BLOCK10_FLOWER_TREE_017,
type: "svg"
}, {
spriteSpec: G.N123_L4_BLOCK10_FLOWER_TREE_018,
type: "svg"
}, {
spriteSpec: G.N123_L4_BLOCK10_FLOWER_TREE_019,
type: "svg"
}, {
spriteSpec: G.N123_L4_BLOCK10_FLOWER_TREE_020,
type: "svg"
}],
type: "triggerable"
}],
[159, {
tiledSpriteSpecs: [{
spriteSpec: G.N125_L4_BLOCK11_POND_001,
type: "svg"
}, {
spriteSpec: G.N125_L4_BLOCK11_POND_002,
type: "svg"
}, {
spriteSpec: G.N125_L4_BLOCK11_POND_003,
type: "svg"
}, {
spriteSpec: G.N125_L4_BLOCK11_POND_004,
type: "svg"
}, {
spriteSpec: G.N125_L4_BLOCK11_POND_005,
type: "svg"
}, {
spriteSpec: G.N125_L4_BLOCK11_POND_006,
type: "svg"
}, {
spriteSpec: G.N125_L4_BLOCK11_POND_007,
type: "svg"
}, {
spriteSpec: G.N125_L4_BLOCK11_POND_008,
type: "svg"
}, {
spriteSpec: G.N125_L4_BLOCK11_POND_009,
type: "svg"
}, {
spriteSpec: G.N125_L4_BLOCK11_POND_010,
type: "svg"
}, {
spriteSpec: G.N125_L4_BLOCK11_POND_011,
type: "svg"
}, {
spriteSpec: G.N125_L4_BLOCK11_POND_012,
type: "svg"
}, {
spriteSpec: G.N125_L4_BLOCK11_POND_013,
type: "svg"
}, {
spriteSpec: G.N125_L4_BLOCK11_POND_014,
type: "svg"
}, {
spriteSpec: G.N125_L4_BLOCK11_POND_015,
type: "svg"
}, {
spriteSpec: G.N125_L4_BLOCK11_POND_016,
type: "svg"
}, {
spriteSpec: G.N125_L4_BLOCK11_POND_017,
type: "svg"
}, {
spriteSpec: G.N125_L4_BLOCK11_POND_018,
type: "svg"
}, {
spriteSpec: G.N125_L4_BLOCK11_POND_019,
type: "svg"
}, {
spriteSpec: G.N125_L4_BLOCK11_POND_020,
type: "svg"
}, {
spriteSpec: G.N125_L4_BLOCK11_POND_021,
type: "svg"
}, {
spriteSpec: G.N125_L4_BLOCK11_POND_022,
type: "svg"
}, {
spriteSpec: G.N125_L4_BLOCK11_POND_023,
type: "svg"
}, {
spriteSpec: G.N125_L4_BLOCK11_POND_024,
type: "svg"
}],
type: "triggerable"
}],
[160, {
tiledSpriteSpecs: [{
spriteSpec: G.N127_L4_BLOCK13_FLOWER001,
type: "svg"
}, {
spriteSpec: G.N127_L4_BLOCK13_FLOWER002,
type: "svg"
}, {
spriteSpec: G.N127_L4_BLOCK13_FLOWER003,
type: "svg"
}, {
spriteSpec: G.N127_L4_BLOCK13_FLOWER004,
type: "svg"
}, {
spriteSpec: G.N127_L4_BLOCK13_FLOWER005,
type: "svg"
}, {
spriteSpec: G.N127_L4_BLOCK13_FLOWER006,
type: "svg"
}, {
spriteSpec: G.N127_L4_BLOCK13_FLOWER007,
type: "svg"
}, {
spriteSpec: G.N127_L4_BLOCK13_FLOWER008,
type: "svg"
}, {
spriteSpec: G.N127_L4_BLOCK13_FLOWER009,
type: "svg"
}, {
spriteSpec: G.N127_L4_BLOCK13_FLOWER010,
type: "svg"
}],
type: "triggerable"
}],
[161, {
tiledSpriteSpecs: [{
spriteSpec: G.N128_L4_BLOCK14_FLOWER_TREE_001,
type: "svg"
}, {
spriteSpec: G.N128_L4_BLOCK14_FLOWER_TREE_002,
type: "svg"
}, {
spriteSpec: G.N128_L4_BLOCK14_FLOWER_TREE_003,
type: "svg"
}, {
spriteSpec: G.N128_L4_BLOCK14_FLOWER_TREE_004,
type: "svg"
}, {
spriteSpec: G.N128_L4_BLOCK14_FLOWER_TREE_005,
type: "svg"
}, {
spriteSpec: G.N128_L4_BLOCK14_FLOWER_TREE_006,
type: "svg"
}, {
spriteSpec: G.N128_L4_BLOCK14_FLOWER_TREE_007,
type: "svg"
}, {
spriteSpec: G.N128_L4_BLOCK14_FLOWER_TREE_008,
type: "svg"
}, {
spriteSpec: G.N128_L4_BLOCK14_FLOWER_TREE_009,
type: "svg"
}, {
spriteSpec: G.N128_L4_BLOCK14_FLOWER_TREE_010,
type: "svg"
}, {
spriteSpec: G.N128_L4_BLOCK14_FLOWER_TREE_011,
type: "svg"
}, {
spriteSpec: G.N128_L4_BLOCK14_FLOWER_TREE_012,
type: "svg"
}, {
spriteSpec: G.N128_L4_BLOCK14_FLOWER_TREE_013,
type: "svg"
}, {
spriteSpec: G.N128_L4_BLOCK14_FLOWER_TREE_014,
type: "svg"
}, {
spriteSpec: G.N128_L4_BLOCK14_FLOWER_TREE_015,
type: "svg"
}, {
spriteSpec: G.N128_L4_BLOCK14_FLOWER_TREE_016,
type: "svg"
}, {
spriteSpec: G.N128_L4_BLOCK14_FLOWER_TREE_017,
type: "svg"
}, {
spriteSpec: G.N128_L4_BLOCK14_FLOWER_TREE_018,
type: "svg"
}, {
spriteSpec: G.N128_L4_BLOCK14_FLOWER_TREE_019,
type: "svg"
}, {
spriteSpec: G.N128_L4_BLOCK14_FLOWER_TREE_020,
type: "svg"
}, {
spriteSpec: G.N128_L4_BLOCK14_FLOWER_TREE_021,
type: "svg"
}],
type: "triggerable"
}],
[162, {
tiledSpriteSpecs: [{
spriteSpec: G.N129_L4_SQUIRREL_001,
type: "svg"
}, {
spriteSpec: G.N129_L4_SQUIRREL_002,
type: "svg"
}, {
spriteSpec: G.N129_L4_SQUIRREL_003,
type: "svg"
}, {
spriteSpec: G.N129_L4_SQUIRREL_004,
type: "svg"
}, {
spriteSpec: G.N129_L4_SQUIRREL_005,
type: "svg"
}, {
spriteSpec: G.N129_L4_SQUIRREL_006,
type: "svg"
}, {
spriteSpec: G.N129_L4_SQUIRREL_007,
type: "svg"
},
{
spriteSpec: G.N129_L4_SQUIRREL_008,
type: "svg"
}, {
spriteSpec: G.N129_L4_SQUIRREL_009,
type: "svg"
}, {
spriteSpec: G.N129_L4_SQUIRREL_010,
type: "svg"
}, {
spriteSpec: G.N129_L4_SQUIRREL_011,
type: "svg"
}, {
spriteSpec: G.N129_L4_SQUIRREL_012,
type: "svg"
}, {
spriteSpec: G.N129_L4_SQUIRREL_005,
type: "svg"
}, {
spriteSpec: G.N129_L4_SQUIRREL_006,
type: "svg"
}, {
spriteSpec: G.N129_L4_SQUIRREL_007,
type: "svg"
}, {
spriteSpec: G.N129_L4_SQUIRREL_008,
type: "svg"
}, {
spriteSpec: G.N129_L4_SQUIRREL_009,
type: "svg"
}, {
spriteSpec: G.N129_L4_SQUIRREL_010,
type: "svg"
}, {
spriteSpec: G.N129_L4_SQUIRREL_011,
type: "svg"
}, {
spriteSpec: G.N129_L4_SQUIRREL_012,
type: "svg"
}, {
spriteSpec: G.N129_L4_SQUIRREL_005,
type: "svg"
}, {
spriteSpec: G.N129_L4_SQUIRREL_006,
type: "svg"
}, {
spriteSpec: G.N129_L4_SQUIRREL_007,
type: "svg"
}, {
spriteSpec: G.N129_L4_SQUIRREL_008,
type: "svg"
}, {
spriteSpec: G.N129_L4_SQUIRREL_009,
type: "svg"
}, {
spriteSpec: G.N129_L4_SQUIRREL_010,
type: "svg"
}, {
spriteSpec: G.N129_L4_SQUIRREL_011,
type: "svg"
}, {
spriteSpec: G.N129_L4_SQUIRREL_012,
type: "svg"
}, {
spriteSpec: G.N129_L4_SQUIRREL_013,
type: "svg"
}, {
spriteSpec: G.N129_L4_SQUIRREL_014,
type: "svg"
}, {
spriteSpec: G.N129_L4_SQUIRREL_015,
type: "svg"
}, {
spriteSpec: G.N129_L4_SQUIRREL_016,
type: "svg"
}, {
spriteSpec: G.N129_L4_SQUIRREL_017,
type: "svg"
}, {
spriteSpec: G.N129_L4_SQUIRREL_018,
type: "svg"
}, {
spriteSpec: G.N129_L4_SQUIRREL_018,
type: "svg"
}, {
spriteSpec: G.N129_L4_SQUIRREL_018,
type: "svg"
}, {
spriteSpec: G.N129_L4_SQUIRREL_018,
type: "svg"
}, {
spriteSpec: G.N129_L4_SQUIRREL_018,
type: "svg"
}, {
spriteSpec: G.N129_L4_SQUIRREL_018,
type: "svg"
}, {
spriteSpec: G.N129_L4_SQUIRREL_018,
type: "svg"
}, {
spriteSpec: G.N129_L4_SQUIRREL_018,
type: "svg"
}, {
spriteSpec: G.N129_L4_SQUIRREL_018,
type: "svg"
}, {
spriteSpec: G.N129_L4_SQUIRREL_018,
type: "svg"
}, {
spriteSpec: G.N129_L4_SQUIRREL_018,
type: "svg"
}, {
spriteSpec: G.N129_L4_SQUIRREL_018,
type: "svg"
}, {
spriteSpec: G.N129_L4_SQUIRREL_018,
type: "svg"
}, {
spriteSpec: G.N129_L4_SQUIRREL_018,
type: "svg"
}, {
spriteSpec: G.N129_L4_SQUIRREL_018,
type: "svg"
}, {
spriteSpec: G.N129_L4_SQUIRREL_018,
type: "svg"
}, {
spriteSpec: G.N129_L4_SQUIRREL_018,
type: "svg"
}, {
spriteSpec: G.N129_L4_SQUIRREL_018,
type: "svg"
}
],
type: null
}],
[163, {
tiledSpriteSpecs: [{
spriteSpec: G.N115_L4_BLOCK02_08_FLOWER_0,
type: "svg"
}, {
spriteSpec: G.N115_L4_BLOCK02_08_FLOWER_1,
type: "svg"
}, {
spriteSpec: G.N115_L4_BLOCK02_08_FLOWER_2,
type: "svg"
}, {
spriteSpec: G.N115_L4_BLOCK02_08_FLOWER_3,
type: "svg"
}, {
spriteSpec: G.N115_L4_BLOCK02_08_FLOWER_4,
type: "svg"
}, {
spriteSpec: G.N115_L4_BLOCK02_08_FLOWER_5,
type: "svg"
}, {
spriteSpec: G.N115_L4_BLOCK02_08_FLOWER_6,
type: "svg"
}, {
spriteSpec: G.N115_L4_BLOCK02_08_FLOWER_7,
type: "svg"
}, {
spriteSpec: G.N115_L4_BLOCK02_08_FLOWER_8,
type: "svg"
}, {
spriteSpec: G.N115_L4_BLOCK02_08_FLOWER_9,
type: "svg"
}, {
spriteSpec: G.N115_L4_BLOCK02_08_FLOWER_10,
type: "svg"
}, {
spriteSpec: G.N115_L4_BLOCK02_08_FLOWER_11,
type: "svg"
}, {
spriteSpec: G.N115_L4_BLOCK02_08_FLOWER_12,
type: "svg"
}, {
spriteSpec: G.N115_L4_BLOCK02_08_FLOWER_13,
type: "svg"
}, {
spriteSpec: G.N115_L4_BLOCK02_08_FLOWER_14,
type: "svg"
}, {
spriteSpec: G.N115_L4_BLOCK02_08_FLOWER_15,
type: "svg"
}, {
spriteSpec: G.N115_L4_BLOCK02_08_FLOWER_16,
type: "svg"
}],
type: "triggerable"
}],
[164, {
tiledSpriteSpecs: [{
spriteSpec: G.N121_L4_BLOCK09_15_MUSH01_001,
type: "svg"
}, {
spriteSpec: G.N121_L4_BLOCK09_15_MUSH01_002,
type: "svg"
}, {
spriteSpec: G.N121_L4_BLOCK09_15_MUSH01_003,
type: "svg"
}, {
spriteSpec: G.N121_L4_BLOCK09_15_MUSH01_004,
type: "svg"
}, {
spriteSpec: G.N121_L4_BLOCK09_15_MUSH01_005,
type: "svg"
}, {
spriteSpec: G.N121_L4_BLOCK09_15_MUSH01_006,
type: "svg"
}, {
spriteSpec: G.N121_L4_BLOCK09_15_MUSH01_007,
type: "svg"
}, {
spriteSpec: G.N121_L4_BLOCK09_15_MUSH01_008,
type: "svg"
}, {
spriteSpec: G.N121_L4_BLOCK09_15_MUSH01_009,
type: "svg"
}, {
spriteSpec: G.N121_L4_BLOCK09_15_MUSH01_010,
type: "svg"
}, {
spriteSpec: G.N121_L4_BLOCK09_15_MUSH01_011,
type: "svg"
}, {
spriteSpec: G.N121_L4_BLOCK09_15_MUSH01_012,
type: "svg"
}, {
spriteSpec: G.N121_L4_BLOCK09_15_MUSH01_013,
type: "svg"
}, {
spriteSpec: G.N121_L4_BLOCK09_15_MUSH01_014,
type: "svg"
}],
type: "triggerable"
}],
[165, {
tiledSpriteSpecs: [{
spriteSpec: G.N122_L4_BLOCK09_15_MUSH02_001,
type: "svg"
}, {
spriteSpec: G.N122_L4_BLOCK09_15_MUSH02_002,
type: "svg"
}, {
spriteSpec: G.N122_L4_BLOCK09_15_MUSH02_003,
type: "svg"
}, {
spriteSpec: G.N122_L4_BLOCK09_15_MUSH02_004,
type: "svg"
},
{
spriteSpec: G.N122_L4_BLOCK09_15_MUSH02_005,
type: "svg"
}, {
spriteSpec: G.N122_L4_BLOCK09_15_MUSH02_006,
type: "svg"
}, {
spriteSpec: G.N122_L4_BLOCK09_15_MUSH02_007,
type: "svg"
}, {
spriteSpec: G.N122_L4_BLOCK09_15_MUSH02_008,
type: "svg"
}, {
spriteSpec: G.N122_L4_BLOCK09_15_MUSH02_009,
type: "svg"
}, {
spriteSpec: G.N122_L4_BLOCK09_15_MUSH02_010,
type: "svg"
}, {
spriteSpec: G.N122_L4_BLOCK09_15_MUSH02_011,
type: "svg"
}, {
spriteSpec: G.N122_L4_BLOCK09_15_MUSH02_012,
type: "svg"
}, {
spriteSpec: G.N122_L4_BLOCK09_15_MUSH02_013,
type: "svg"
},
{
spriteSpec: G.N122_L4_BLOCK09_15_MUSH02_014,
type: "svg"
}
],
type: "triggerable"
}],
[166, {
tiledSpriteSpecs: [{
spriteSpec: G.N124_L4_FISH_001,
type: "svg"
}, {
spriteSpec: G.N124_L4_FISH_002,
type: "svg"
}, {
spriteSpec: G.N124_L4_FISH_003,
type: "svg"
}, {
spriteSpec: G.N124_L4_FISH_004,
type: "svg"
}, {
spriteSpec: G.N124_L4_FISH_005,
type: "svg"
}, {
spriteSpec: G.N124_L4_FISH_006,
type: "svg"
}, {
spriteSpec: G.N124_L4_FISH_007,
type: "svg"
}, {
spriteSpec: G.N124_L4_FISH_008,
type: "svg"
}, {
spriteSpec: G.N124_L4_FISH_009,
type: "svg"
}, {
spriteSpec: G.N124_L4_FISH_010,
type: "svg"
}, {
spriteSpec: G.N124_L4_FISH_011,
type: "svg"
}, {
spriteSpec: G.N124_L4_FISH_012,
type: "svg"
}, {
spriteSpec: G.N124_L4_FISH_013,
type: "svg"
}, {
spriteSpec: G.N124_L4_FISH_014,
type: "svg"
}, {
spriteSpec: G.N124_L4_FISH_015,
type: "svg"
}, {
spriteSpec: G.N124_L4_FISH_016,
type: "svg"
}, {
spriteSpec: G.N124_L4_FISH_017,
type: "svg"
}, {
spriteSpec: G.N124_L4_FISH_018,
type: "svg"
}, {
spriteSpec: G.N124_L4_FISH_019,
type: "svg"
}, {
spriteSpec: G.N124_L4_FISH_020,
type: "svg"
}, {
spriteSpec: G.N124_L4_FISH_021,
type: "svg"
}, {
spriteSpec: G.N124_L4_FISH_022,
type: "svg"
}, {
spriteSpec: G.N124_L4_FISH_023,
type: "svg"
}, {
spriteSpec: G.N124_L4_FISH_024,
type: "svg"
}, {
spriteSpec: G.N124_L4_FISH_025,
type: "svg"
}, {
spriteSpec: G.N124_L4_FISH_026,
type: "svg"
}, {
spriteSpec: G.N124_L4_FISH_027,
type: "svg"
}, {
spriteSpec: G.N124_L4_FISH_028,
type: "svg"
}, {
spriteSpec: G.N124_L4_FISH_029,
type: "svg"
}, {
spriteSpec: G.N124_L4_FISH_030,
type: "svg"
}, {
spriteSpec: G.N124_L4_FISH_031,
type: "svg"
}, {
spriteSpec: G.N124_L4_FISH_032,
type: "svg"
}, {
spriteSpec: G.N124_L4_FISH_033,
type: "svg"
}, {
spriteSpec: G.N124_L4_FISH_034,
type: "svg"
}],
type: "triggerable"
}],
[167, {
tiledSpriteSpecs: [{
spriteSpec: G.N126_L4_BLOCK11_DECO_001,
type: "svg"
}, {
spriteSpec: G.N126_L4_BLOCK11_DECO_002,
type: "svg"
}, {
spriteSpec: G.N126_L4_BLOCK11_DECO_003,
type: "svg"
}, {
spriteSpec: G.N126_L4_BLOCK11_DECO_004,
type: "svg"
}, {
spriteSpec: G.N126_L4_BLOCK11_DECO_005,
type: "svg"
}, {
spriteSpec: G.N126_L4_BLOCK11_DECO_006,
type: "svg"
}, {
spriteSpec: G.N126_L4_BLOCK11_DECO_007,
type: "svg"
}, {
spriteSpec: G.N126_L4_BLOCK11_DECO_008,
type: "svg"
}, {
spriteSpec: G.N126_L4_BLOCK11_DECO_009,
type: "svg"
}, {
spriteSpec: G.N126_L4_BLOCK11_DECO_010,
type: "svg"
}, {
spriteSpec: G.N126_L4_BLOCK11_DECO_011,
type: "svg"
}, {
spriteSpec: G.N126_L4_BLOCK11_DECO_012,
type: "svg"
}, {
spriteSpec: G.N126_L4_BLOCK11_DECO_013,
type: "svg"
}, {
spriteSpec: G.N126_L4_BLOCK11_DECO_014,
type: "svg"
}],
type: "triggerable"
}],
[168, {
tiledSpriteSpecs: [{
spriteSpec: G.N120_L4_BLOCK07_FLOWER_001,
type: "svg"
}, {
spriteSpec: G.N120_L4_BLOCK07_FLOWER_002,
type: "svg"
}, {
spriteSpec: G.N120_L4_BLOCK07_FLOWER_003,
type: "svg"
}, {
spriteSpec: G.N120_L4_BLOCK07_FLOWER_004,
type: "svg"
}, {
spriteSpec: G.N120_L4_BLOCK07_FLOWER_005,
type: "svg"
}, {
spriteSpec: G.N120_L4_BLOCK07_FLOWER_006,
type: "svg"
}, {
spriteSpec: G.N120_L4_BLOCK07_FLOWER_007,
type: "svg"
}, {
spriteSpec: G.N120_L4_BLOCK07_FLOWER_008,
type: "svg"
}, {
spriteSpec: G.N120_L4_BLOCK07_FLOWER_009,
type: "svg"
}, {
spriteSpec: G.N120_L4_BLOCK07_FLOWER_010,
type: "svg"
}, {
spriteSpec: G.N120_L4_BLOCK07_FLOWER_011,
type: "svg"
}, {
spriteSpec: G.N120_L4_BLOCK07_FLOWER_012,
type: "svg"
}, {
spriteSpec: G.N120_L4_BLOCK07_FLOWER_013,
type: "svg"
}, {
spriteSpec: G.N120_L4_BLOCK07_FLOWER_014,
type: "svg"
}, {
spriteSpec: G.N120_L4_BLOCK07_FLOWER_015,
type: "svg"
}, {
spriteSpec: G.N120_L4_BLOCK07_FLOWER_016,
type: "svg"
}, {
spriteSpec: G.N120_L4_BLOCK07_FLOWER_017,
type: "svg"
}, {
spriteSpec: G.N120_L4_BLOCK07_FLOWER_018,
type: "svg"
}, {
spriteSpec: G.N120_L4_BLOCK07_FLOWER_019,
type: "svg"
}, {
spriteSpec: G.N120_L4_BLOCK07_FLOWER_020,
type: "svg"
}, {
spriteSpec: G.N120_L4_BLOCK07_FLOWER_021,
type: "svg"
}, {
spriteSpec: G.N120_L4_BLOCK07_FLOWER_022,
type: "svg"
}, {
spriteSpec: G.N120_L4_BLOCK07_FLOWER_023,
type: "svg"
}, {
spriteSpec: G.N120_L4_BLOCK07_FLOWER_024,
type: "svg"
}, {
spriteSpec: G.N120_L4_BLOCK07_FLOWER_025,
type: "svg"
}, {
spriteSpec: G.N120_L4_BLOCK07_FLOWER_026,
type: "svg"
}, {
spriteSpec: G.N120_L4_BLOCK07_FLOWER_027,
type: "svg"
}, {
spriteSpec: G.N120_L4_BLOCK07_FLOWER_028,
type: "svg"
}, {
spriteSpec: G.N120_L4_BLOCK07_FLOWER_029,
type: "svg"
}, {
spriteSpec: G.N120_L4_BLOCK07_FLOWER_030,
type: "svg"
}, {
spriteSpec: G.N120_L4_BLOCK07_FLOWER_031,
type: "svg"
}, {
spriteSpec: G.N120_L4_BLOCK07_FLOWER_032,
type: "svg"
}, {
spriteSpec: G.N120_L4_BLOCK07_FLOWER_033,
type: "svg"
}, {
spriteSpec: G.N120_L4_BLOCK07_FLOWER_034,
type: "svg"
}, {
spriteSpec: G.N120_L4_BLOCK07_FLOWER_035,
type: "svg"
}, {
spriteSpec: G.N120_L4_BLOCK07_FLOWER_036,
type: "svg"
}, {
spriteSpec: G.N120_L4_BLOCK07_FLOWER_037,
type: "svg"
}, {
spriteSpec: G.N120_L4_BLOCK07_FLOWER_038,
type: "svg"
}, {
spriteSpec: G.N120_L4_BLOCK07_FLOWER_039,
type: "svg"
}, {
spriteSpec: G.N120_L4_BLOCK07_FLOWER_040,
type: "svg"
}, {
spriteSpec: G.N120_L4_BLOCK07_FLOWER_041,
type: "svg"
}, {
spriteSpec: G.N120_L4_BLOCK07_FLOWER_042,
type: "svg"
}, {
spriteSpec: G.N120_L4_BLOCK07_FLOWER_043,
type: "svg"
}, {
spriteSpec: G.N120_L4_BLOCK07_FLOWER_044,
type: "svg"
}, {
spriteSpec: G.N120_L4_BLOCK07_FLOWER_045,
type: "svg"
}],
type: "triggerable"
}],
[169, {
tiledSpriteSpecs: [{
spriteSpec: G.N131_L5_CLOUD01,
type: "svg"
}],
type: "cloud"
}],
[170, {
tiledSpriteSpecs: [{
spriteSpec: G.N132_L5_CLOUD02,
type: "svg"
}],
type: "cloud"
}],
[171, {
tiledSpriteSpecs: [{
spriteSpec: G.N133_L5_CLOUD03,
type: "svg"
}],
type: "cloud"
}],
[172, {
tiledSpriteSpecs: [{
spriteSpec: G.N134_L5_CLOUD04,
type: "svg"
}],
type: "cloud"
}],
[173, {
tiledSpriteSpecs: [{
spriteSpec: G.N135_L5_CLOUD05,
type: "svg"
}],
type: "cloud"
}],
[174,
{
tiledSpriteSpecs: [{
spriteSpec: G.N158_L5_BLOCK01_FLOORDECO_001,
type: "svg"
}, {
spriteSpec: G.N158_L5_BLOCK01_FLOORDECO_002,
type: "svg"
}, {
spriteSpec: G.N158_L5_BLOCK01_FLOORDECO_003,
type: "svg"
}, {
spriteSpec: G.N158_L5_BLOCK01_FLOORDECO_004,
type: "svg"
}, {
spriteSpec: G.N158_L5_BLOCK01_FLOORDECO_005,
type: "svg"
}, {
spriteSpec: G.N158_L5_BLOCK01_FLOORDECO_006,
type: "svg"
}, {
spriteSpec: G.N158_L5_BLOCK01_FLOORDECO_007,
type: "svg"
}, {
spriteSpec: G.N158_L5_BLOCK01_FLOORDECO_008,
type: "svg"
}, {
spriteSpec: G.N158_L5_BLOCK01_FLOORDECO_009,
type: "svg"
}, {
spriteSpec: G.N158_L5_BLOCK01_FLOORDECO_010,
type: "svg"
}, {
spriteSpec: G.N158_L5_BLOCK01_FLOORDECO_011,
type: "svg"
}, {
spriteSpec: G.N158_L5_BLOCK01_FLOORDECO_012,
type: "svg"
}, {
spriteSpec: G.N158_L5_BLOCK01_FLOORDECO_013,
type: "svg"
}, {
spriteSpec: G.N158_L5_BLOCK01_FLOORDECO_014,
type: "svg"
}, {
spriteSpec: G.N158_L5_BLOCK01_FLOORDECO_015,
type: "svg"
}, {
spriteSpec: G.N158_L5_BLOCK01_FLOORDECO_016,
type: "svg"
}, {
spriteSpec: G.N158_L5_BLOCK01_FLOORDECO_017,
type: "svg"
}],
type: "triggerable"
}
],
[175, {
tiledSpriteSpecs: [{
spriteSpec: G.N167_L5_BLOCK10_FLOORDECO_001,
type: "svg"
}, {
spriteSpec: G.N167_L5_BLOCK10_FLOORDECO_002,
type: "svg"
}, {
spriteSpec: G.N167_L5_BLOCK10_FLOORDECO_003,
type: "svg"
}, {
spriteSpec: G.N167_L5_BLOCK10_FLOORDECO_004,
type: "svg"
}, {
spriteSpec: G.N167_L5_BLOCK10_FLOORDECO_005,
type: "svg"
}, {
spriteSpec: G.N167_L5_BLOCK10_FLOORDECO_006,
type: "svg"
}, {
spriteSpec: G.N167_L5_BLOCK10_FLOORDECO_007,
type: "svg"
}, {
spriteSpec: G.N167_L5_BLOCK10_FLOORDECO_008,
type: "svg"
}, {
spriteSpec: G.N167_L5_BLOCK10_FLOORDECO_009,
type: "svg"
}, {
spriteSpec: G.N167_L5_BLOCK10_FLOORDECO_010,
type: "svg"
}, {
spriteSpec: G.N167_L5_BLOCK10_FLOORDECO_011,
type: "svg"
}, {
spriteSpec: G.N167_L5_BLOCK10_FLOORDECO_012,
type: "svg"
}],
type: "triggerable"
}],
[176, {
tiledSpriteSpecs: [{
spriteSpec: G.N169_L5_BLOCK12_TREE_001,
type: "svg"
}, {
spriteSpec: G.N169_L5_BLOCK12_TREE_002,
type: "svg"
}, {
spriteSpec: G.N169_L5_BLOCK12_TREE_003,
type: "svg"
}, {
spriteSpec: G.N169_L5_BLOCK12_TREE_004,
type: "svg"
}, {
spriteSpec: G.N169_L5_BLOCK12_TREE_005,
type: "svg"
}, {
spriteSpec: G.N169_L5_BLOCK12_TREE_006,
type: "svg"
}, {
spriteSpec: G.N169_L5_BLOCK12_TREE_007,
type: "svg"
}, {
spriteSpec: G.N169_L5_BLOCK12_TREE_008,
type: "svg"
}, {
spriteSpec: G.N169_L5_BLOCK12_TREE_009,
type: "svg"
}, {
spriteSpec: G.N169_L5_BLOCK12_TREE_010,
type: "svg"
}, {
spriteSpec: G.N169_L5_BLOCK12_TREE_011,
type: "svg"
}, {
spriteSpec: G.N169_L5_BLOCK12_TREE_012,
type: "svg"
}, {
spriteSpec: G.N169_L5_BLOCK12_TREE_013,
type: "svg"
}, {
spriteSpec: G.N169_L5_BLOCK12_TREE_014,
type: "svg"
}],
type: "triggerable"
}],
[177, {
tiledSpriteSpecs: [{
spriteSpec: G.N159_L5_BLOCK02_FLOWER_001,
type: "svg"
}, {
spriteSpec: G.N159_L5_BLOCK02_FLOWER_002,
type: "svg"
}, {
spriteSpec: G.N159_L5_BLOCK02_FLOWER_003,
type: "svg"
}, {
spriteSpec: G.N159_L5_BLOCK02_FLOWER_004,
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment