From 8ad7a952e7a3bea3c0106ab8157c8b86ab4f2453 Mon Sep 17 00:00:00 2001
From: jules
Date: Sat, 25 Jan 2014 23:42:48 -0500
Subject: working off shader-combo.html now
---
shader-combo.html | 145 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 145 insertions(+)
create mode 100644 shader-combo.html
(limited to 'shader-combo.html')
diff --git a/shader-combo.html b/shader-combo.html
new file mode 100644
index 0000000..3c2eac0
--- /dev/null
+++ b/shader-combo.html
@@ -0,0 +1,145 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
--
cgit v1.2.3-70-g09d2
From e7b0213ebf2621b71fcaa04e7ad80614853e9551 Mon Sep 17 00:00:00 2001
From: jules
Date: Sun, 26 Jan 2014 00:11:32 -0500
Subject: toggle gallery
---
dither-picker.html | 4 +--
js/gallery.js | 2 +-
js/render.js | 2 +-
shader-combo.html | 80 +++++++++++++++++++++++++++++++++++-------------------
shader-gif.html | 4 +--
5 files changed, 58 insertions(+), 34 deletions(-)
(limited to 'shader-combo.html')
diff --git a/dither-picker.html b/dither-picker.html
index 5e9bff9..fe210ef 100644
--- a/dither-picker.html
+++ b/dither-picker.html
@@ -16,7 +16,7 @@
-
+
@@ -123,7 +123,7 @@ ui.dither = function (frame){
return cc
}
-function status(s){ $("#status").html(s); console.log(s) }
+function status(s){ $(".status").html(s); console.log(s) }
$(ui.init)
diff --git a/js/gallery.js b/js/gallery.js
index d114ec6..a9430fc 100644
--- a/js/gallery.js
+++ b/js/gallery.js
@@ -5,7 +5,7 @@ var gallery = {}
gallery.init = function(choose){
if (choose) {
- galler.choose = choose;
+ gallery.choose = choose;
}
gallery.bind()
}
diff --git a/js/render.js b/js/render.js
index fdb0125..4a9eeef 100644
--- a/js/render.js
+++ b/js/render.js
@@ -103,4 +103,4 @@ function draw(t) {
shade(frame, t)
}
-function status(s){ $("#status").html(s); console.log(s) }
+function status(s){ $(".status").html(s); console.log(s) }
diff --git a/shader-combo.html b/shader-combo.html
index 3c2eac0..92cb6e1 100644
--- a/shader-combo.html
+++ b/shader-combo.html
@@ -7,8 +7,8 @@
#shader { width: 400px; height: 247px; font-family: fixed; }
div { float: left; padding: 10px;}
form { display: inline-block; }
-#shader-api,#gallery { clear: right; width:100%; padding: 0; font-size: 12px; }
-#shader-gallery,#gallery-images { display: block; min-height: 152px; max-height: 210px; overflow-y: auto; width: 100%; padding: 0; }
+#header { clear: right; width:100%; padding: 0; font-size: 12px; }
+#shader-gallery,#gallery-images { display: block; height: 152px; overflow-y: auto; width: 100%; padding: 0; }
#shader-gallery img,#shader-gallery canvas,#gallery-images img, #gallery-images canvas { max-width: 200px; height: 100px; margin: 5px; cursor: pointer; clear: right; }
.shader { width: 100px; }
.shader span { display: block }
@@ -22,43 +22,49 @@ a { color: #00f; }
#instructions iframe {width: 100%;height:100%;margin:0;padding:0;border:0;}
#instructions.dragging iframe { pointer-events: none; }
#instructions .close { position: absolute; top: 5px; right: 5px; color: #f00; padding: 3px; border: 0;background: white; font-size: 10px; line-height: 10px; }
-
+.hidden { display: none; }
+.form { display: none; }
+.bold { font-weight: bold; }
-
-
+
@@ -130,10 +136,28 @@ function init(){
$("#reset").click(reset)
$("#pause").click(pause)
+ $("#toggle-shaders").click(function(){
+ $("#header .form").hide()
+ $("#shader-api-form").show()
+ $(".bold").removeClass("bold")
+ $(this).addClass("bold")
+ }).trigger("click")
+ $("#toggle-images").click(function(){
+ $("#header .form").hide()
+ $("#gallery-form").show()
+ $(".bold").removeClass("bold")
+ $(this).addClass("bold")
+ })
+ $("#toggle-off").click(function(){
+ $("#header .form").hide()
+ $(".bold").removeClass("bold")
+ })
+
user.init()
help.init()
shader_gallery.init()
-
+ gallery.init(choose)
+
document.getElementById('shader').addEventListener('input', shader_build);
requestAnimationFrame(animate)
diff --git a/shader-gif.html b/shader-gif.html
index 1369225..1f944c9 100644
--- a/shader-gif.html
+++ b/shader-gif.html
@@ -67,7 +67,7 @@ div { display: inline-block; padding: 10px;}
-
+
@@ -337,7 +337,7 @@ function render (){
}
function status(s){
- $("#status").html(s)
+ $(".status").html(s)
}
var encoder = new GifEncoder()
--
cgit v1.2.3-70-g09d2
From 009007363dfca587c2cbbdbba6566179a05d8fb6 Mon Sep 17 00:00:00 2001
From: jules
Date: Sun, 26 Jan 2014 00:17:45 -0500
Subject: merge js into combo
---
js/frames.js | 6 ++++--
js/help.js | 2 ++
js/render.js | 2 --
shader-combo.html | 20 +++++++++++++++-----
4 files changed, 21 insertions(+), 9 deletions(-)
(limited to 'shader-combo.html')
diff --git a/js/frames.js b/js/frames.js
index c9c844d..2dddae2 100644
--- a/js/frames.js
+++ b/js/frames.js
@@ -29,6 +29,10 @@ frame_editor.bind = function(){
$("#render").click(render)
$("#save").click(save)
$("#upload").click(upload)
+
+ $("#background").change(function(){
+ document.body.style.backgroundColor = $("#background").string()
+ })
}
function add_frame(){
@@ -121,8 +125,6 @@ function render (){
$("#render").html("rendering")
}
-function status(s){ $(".status").html(s) }
-
var encoder = new GifEncoder()
encoder.on("quantized", function(url){
diff --git a/js/help.js b/js/help.js
index 5610794..1794f3b 100644
--- a/js/help.js
+++ b/js/help.js
@@ -17,3 +17,5 @@ help.bind = function(){
function drag_start(){ dragging = true; $(this).addClass("dragging") }
function drag_stop(){ dragging = false; $(".dragging").removeClass("dragging") }
+
+function status(s){ $(".status").html(s); console.log(s) }
diff --git a/js/render.js b/js/render.js
index 4a9eeef..a22c9fe 100644
--- a/js/render.js
+++ b/js/render.js
@@ -102,5 +102,3 @@ function draw(t) {
frame = giveFrame(t)
shade(frame, t)
}
-
-function status(s){ $(".status").html(s); console.log(s) }
diff --git a/shader-combo.html b/shader-combo.html
index 92cb6e1..aa6edd2 100644
--- a/shader-combo.html
+++ b/shader-combo.html
@@ -46,13 +46,13 @@ a { color: #00f; }
|
+
+
-
-
@@ -80,7 +80,6 @@ a { color: #00f; }
-
@@ -125,16 +124,24 @@ a { color: #00f; }
var cc = cq(0,0).appendTo("#workspace")
var w, h
+var lastGif
+var mousex, mousey
+
var firsttime = true
var shader_gallery_template = $("#shader-gallery-template").html()
-
$(init)
function init(){
$("#url").change(load)
$("#reset").click(reset)
$("#pause").click(pause)
+ $("#step-forward").click(step_forward)
+
+ $(document).on("mousemove", function(e) {
+ mousex = e.pageX
+ mousey = e.pageY
+ })
$("#toggle-shaders").click(function(){
$("#header .form").hide()
@@ -152,6 +159,10 @@ function init(){
$("#header .form").hide()
$(".bold").removeClass("bold")
})
+
+ frame_editor.init()
+ help.init()
+ load()
user.init()
help.init()
@@ -164,6 +175,5 @@ function init(){
}
-
--
cgit v1.2.3-70-g09d2
From 9f1b5a177eee98f64e7581756cd5fdc7635691ca Mon Sep 17 00:00:00 2001
From: jules
Date: Sun, 26 Jan 2014 00:58:01 -0500
Subject: css shakeup
---
js/gallery.js | 1 +
shader-api.html | 1 +
shader-combo.html | 57 ++++++++++++++++++++++++++++++++++++++++++-------------
3 files changed, 46 insertions(+), 13 deletions(-)
(limited to 'shader-combo.html')
diff --git a/js/gallery.js b/js/gallery.js
index a9430fc..b9acfc0 100644
--- a/js/gallery.js
+++ b/js/gallery.js
@@ -46,6 +46,7 @@ gallery.image = function(im){
$(thumb.canvas).show()
})
$(img).click(gallery.choose);
+ $("#persist-image").attr("checked", false)
}
try { img.src = im.url; }
catch(e){ return; }
diff --git a/shader-api.html b/shader-api.html
index b860093..dc96762 100644
--- a/shader-api.html
+++ b/shader-api.html
@@ -79,6 +79,7 @@ a { color: #00f; }
+
@@ -43,8 +65,9 @@ a { color: #00f; }
|
-
- |
+
+
+
@@ -53,16 +76,14 @@ a { color: #00f; }
-
+
-
-
@@ -79,11 +100,21 @@ a { color: #00f; }
+
+
+
+
+
+
+
+
+
+
diff --git a/shader-combo.html b/shader-combo.html
index aa6edd2..6d402da 100644
--- a/shader-combo.html
+++ b/shader-combo.html
@@ -3,28 +3,50 @@
@@ -148,14 +179,14 @@ function init(){
$("#shader-api-form").show()
$(".bold").removeClass("bold")
$(this).addClass("bold")
- }).trigger("click")
+ }) // .trigger("click")
$("#toggle-images").click(function(){
$("#header .form").hide()
$("#gallery-form").show()
$(".bold").removeClass("bold")
$(this).addClass("bold")
})
- $("#toggle-off").click(function(){
+ $(".toggle-off").click(function(){
$("#header .form").hide()
$(".bold").removeClass("bold")
})
--
cgit v1.2.3-70-g09d2
From b0b1b4cfbe3217b9f35343bdc35cdd058f4cf534 Mon Sep 17 00:00:00 2001
From: jules
Date: Sun, 26 Jan 2014 02:26:23 -0500
Subject: allow empty canvas w/ no url
---
js/api/gallery.js | 3 ++-
js/api/set.js | 2 +-
js/gallery.js | 1 -
js/image.js | 12 ++++++++++--
js/render.js | 40 ++++++++++++++++++++++++++++++++++------
js/shader.js | 6 ++++--
shader-combo.html | 11 +++++++----
7 files changed, 58 insertions(+), 17 deletions(-)
(limited to 'shader-combo.html')
diff --git a/js/api/gallery.js b/js/api/gallery.js
index c1a779d..0404009 100644
--- a/js/api/gallery.js
+++ b/js/api/gallery.js
@@ -68,7 +68,7 @@ function load_shaders(err, shaders){
var $shader = display_shader(shaders[i])
$el.append( $shader )
}
- if (firsttime) {
+ if (false && firsttime) {
firsttime = false
run_shader(shaders[0])
}
@@ -81,5 +81,6 @@ function display_shader(shader_object){
html = html.replace("{" + field + "}", shader_object[field])
}
$shader.html(html)
+ shader_object.id && $shader.data("id", shader_object.id)
return $shader;
}
diff --git a/js/api/set.js b/js/api/set.js
index 461f3e3..16e60fe 100644
--- a/js/api/set.js
+++ b/js/api/set.js
@@ -59,7 +59,7 @@ function save_thumbnail(id, thumb){
status('')
var data = JSON.parse(resp)
if (data.success) {
- $shader.find("img").attr("src", data.url)
+ $(".shader[data-id="+id+"]").find("img").attr("src", data.url)
}
});
}
diff --git a/js/gallery.js b/js/gallery.js
index b9acfc0..839316c 100644
--- a/js/gallery.js
+++ b/js/gallery.js
@@ -14,7 +14,6 @@ gallery.bind = function(){
$("#gallery-random").click(asdf.random)
$("#gallery-search").submit(dumpfm.search)
$(document).on("click", "#gallery-images canvas", gallery.click)
- status("ready")
}
gallery.load = function(ims){
diff --git a/js/image.js b/js/image.js
index 7a5240f..4de7fd9 100644
--- a/js/image.js
+++ b/js/image.js
@@ -1,15 +1,23 @@
+var gif, img
+
function loadImage(imageURL, callback) {
var imageURL = proxify( imageURL );
window.gif = window.img = null
- if (imageURL.substr(-3) === "gif") {
+ if (! imageURL) {
+ window.gif = null
+ window.img = null
+ callback()
+ }
+ else if (imageURL.substr(-3) === "gif") {
window.gif = GIF(imageURL);
// gif.on("error", tryToLoadNextImage);
// gif.on("rendered", trackLoadTime);
gif.on("rendered", callback);
return gif.render();
- } else {
+ }
+ else {
window.img = new Image();
// img.addEventListener("error", tryToLoadNextImage);
img.addEventListener("load", callback);
diff --git a/js/render.js b/js/render.js
index a22c9fe..f6684d7 100644
--- a/js/render.js
+++ b/js/render.js
@@ -9,9 +9,10 @@ function choose (){
$("#url").val(imageURL)
loadImage(imageURL, ready)
}
+
function load(){
- loading = true
var imageURL = $("#url").val()
+ loading = true
loadImage(imageURL, ready)
}
@@ -25,7 +26,7 @@ function ready(){
f.cloneData = f.ctx.getImageData(0,0,w,h)
}
}
- else {
+ else if (window.img) {
fc = cq(img.width, img.height)
fc.drawImage(img, 0, 0)
frame = img_frame = { ctx: fc.context }
@@ -33,25 +34,52 @@ function ready(){
h = cc.canvas.height = frame.ctx.canvas.height
frame.cloneData = frame.ctx.getImageData(0,0,w,h)
}
+ else {
+ cc.canvas.width = w
+ cc.canvas.height = h
+ shader_build()
+ }
+ displayWidthHeight(w, h)
}
+function displayWidthHeight(width, height){
+ $("#width").val(width)
+ $("#height").val(height)
+}
+$("#width").change(function(){
+ w = abs(parseInt(this.value,10)) || 1
+ cc.canvas.width = w
+ cc.canvas.height = h
+})
+$("#height").change(function(){
+ h = abs(parseInt(this.value,10)) || 1
+ cc.canvas.width = w
+ cc.canvas.height = h
+})
function giveFrame(t){
if (window.gif) {
if (gif.currentFrame) {
return gif.frames[gif.currentFrame(t)]
}
- else {
+ else if (gif.frames) {
return gif.frames[0]
}
}
- else if (window.img) {
+ if (window.img) {
return img_frame
}
else {
- return cq(w, h)
+ return empty_frame()
}
}
+function empty_frame(){
+ w = w || 400
+ h = h || 266
+ var cx = cq(w, h).fillStyle("rgba(255,255,255,255)").fillRect(0,0,w,h)
+ return { ctx: cx.context, cloneData: cx.getImageData(0,0,w,h) }
+}
+
function reset(){
start_t = old_t
pause_t = 0
@@ -76,7 +104,7 @@ function animate(t){
var step_t = t - old_t
old_t = t
-
+
if (paused || dragging || rendering || scrolling || deferring) {
pause_t += step_t
if (scrolling) {
diff --git a/js/shader.js b/js/shader.js
index 4a6e950..7773b89 100644
--- a/js/shader.js
+++ b/js/shader.js
@@ -1,3 +1,5 @@
+function shader (x,y,t,d) {}
+
var shader_build = function(){
var fn_str = document.getElementById('shader').value
if (!fn_str.length) fn_str = ""
@@ -46,7 +48,7 @@ var firefox_stack_regexp = /:([0-9]+)$/;
function shade_error_handling(frame, t){
if (! t || isNaN(t)) throw Error ("No time specified")
- if (! frame) throw Error ("No frame specified")
+ if (! frame || ! frame.ctx || ! frame.cloneData) throw Error ("No frame specified")
var imgData = frame.ctx.getImageData(0,0,w,h)
var data = imgData.data
@@ -77,7 +79,7 @@ function shade_error_handling(frame, t){
} else if (lines.length > 1) { // attempt chrome match
var matches = lines[1].match(chrome_stack_regexp)
- if (matches.length > 1)
+ if (matches && matches.length > 1)
error_highlight.on(parseInt(matches[1]) - 3)
}
diff --git a/shader-combo.html b/shader-combo.html
index 6d402da..e61beee 100644
--- a/shader-combo.html
+++ b/shader-combo.html
@@ -3,7 +3,8 @@
@@ -99,23 +101,20 @@ form { display: inline-block; }
-
-
+
+
+
+
+
-
-
-
-
-
-
-
-
- frames
+
+
+ frames
-
+
gif delay
background
+
+
+
+
+
--
cgit v1.2.3-70-g09d2
From c3470d02a57396e92a71d3cfb072e655ccb51780 Mon Sep 17 00:00:00 2001
From: jules
Date: Sun, 26 Jan 2014 04:25:35 -0500
Subject: examples placeholder
---
js/image.js | 3 ++-
js/render.js | 2 --
shader-combo.html | 3 +++
3 files changed, 5 insertions(+), 3 deletions(-)
(limited to 'shader-combo.html')
diff --git a/js/image.js b/js/image.js
index aabab89..1f36473 100644
--- a/js/image.js
+++ b/js/image.js
@@ -1,4 +1,5 @@
var gif, img
+var imageURL = null
function loadImage(imageURL, callback) {
var imageURL = proxify( imageURL );
@@ -37,7 +38,7 @@ function giveImage(t) {
function proxify (url) {
if (url.indexOf("http") == 0)
- return "/cgi-bin/proxy?" + url // .replace(/^https?:\/\//, "");
+ return "/cgi-bin/proxy?" + url.replace(/^https?:\/\//, "");
else
return url
}
diff --git a/js/render.js b/js/render.js
index cfc2d81..4de7329 100644
--- a/js/render.js
+++ b/js/render.js
@@ -2,10 +2,8 @@ var frame, img_frame;
var timeout, raf_id, start_t = 0, old_t = 0, pause_t = 0
var paused = false, dragging = false, rendering = false, scrolling = false, deferring = false, scrollTimeout = null
var fps = 30
-var imageURL = ""
function choose (){
- imageURL = this.src
loading = true
$("#url").val(imageURL)
loadImage(imageURL, ready)
diff --git a/shader-combo.html b/shader-combo.html
index f51037b..5b218a6 100644
--- a/shader-combo.html
+++ b/shader-combo.html
@@ -59,6 +59,9 @@ form { display: inline-block; }
@@ -231,6 +225,12 @@ function init(){
cc.canvas.width = w
cc.canvas.height = h
})
+ $("#reorder-frames").change(function(){
+ var order = $(this).val()
+ if (order) {
+
+ }
+ })
load()
help.init()
--
cgit v1.2.3-70-g09d2
From e3297c52583f38ed71f7734f1ff04a267834e40c Mon Sep 17 00:00:00 2001
From: jules
Date: Sun, 26 Jan 2014 21:45:12 -0500
Subject: fix rendering bug
---
js/api/gallery.js | 1 +
js/frames.js | 3 +--
js/render.js | 2 ++
shader-combo.html | 11 +++++------
4 files changed, 9 insertions(+), 8 deletions(-)
(limited to 'shader-combo.html')
diff --git a/js/api/gallery.js b/js/api/gallery.js
index 830ff93..e8af7f1 100644
--- a/js/api/gallery.js
+++ b/js/api/gallery.js
@@ -76,6 +76,7 @@ function load_shaders(err, shaders){
function display_shader(shader_object){
var $shader = $("").addClass("shader")
$shader.data("shader", shader_object)
+ $shader.data("id", shader_object.id)
var html = shader_gallery_template
for (var field in shader_object) {
html = html.replace("{" + field + "}", shader_object[field])
diff --git a/js/frames.js b/js/frames.js
index 887b497..571e862 100644
--- a/js/frames.js
+++ b/js/frames.js
@@ -97,12 +97,11 @@ function sort_frames(){
function render (){
if (rendering) return
- rendering = true
-
if ($("#frames canvas.fullsize").length == 0) {
add_frame()
}
+ rendering = true
encoder.reset()
var delay = $("#framedelay").float() * 1000 || 100
$("#frames canvas.fullsize").each(function(){
diff --git a/js/render.js b/js/render.js
index 205da88..bd6deb1 100644
--- a/js/render.js
+++ b/js/render.js
@@ -7,6 +7,7 @@ function choose (){
loading = true
$("#url").val(this.src)
loadImage(this.src, ready)
+ reset()
}
function load(){
@@ -84,6 +85,7 @@ function reset(){
pause(false)
$("#workspace img").remove()
$("#workspace canvas").show()
+ $("#uploaded-url").hide().val("")
remove_all_frames()
draw(0)
}
diff --git a/shader-combo.html b/shader-combo.html
index 97ffd33..65b81e9 100644
--- a/shader-combo.html
+++ b/shader-combo.html
@@ -3,6 +3,10 @@
").appendTo(f)),g.opacity&&(this.helper.css("opacity")&&(this._storedOpacity=this.helper.css("opacity")),this.helper.css("opacity",g.opacity)),g.zIndex&&(this.helper.css("zIndex")&&(this._storedZIndex=this.helper.css("zIndex")),this.helper.css("zIndex",g.zIndex)),this.scrollParent[0]!==document&&"HTML"!==this.scrollParent[0].tagName&&(this.overflowOffset=this.scrollParent.offset()),this._trigger("start",b,this._uiHash()),this._preserveHelperProportions||this._cacheHelperProportions(),!d)for(e=this.containers.length-1;e>=0;e--)this.containers[e]._trigger("activate",b,this._uiHash(this));return a.ui.ddmanager&&(a.ui.ddmanager.current=this),a.ui.ddmanager&&!g.dropBehaviour&&a.ui.ddmanager.prepareOffsets(this,b),this.dragging=!0,this.helper.addClass("ui-sortable-helper"),this._mouseDrag(b),!0},_mouseDrag:function(b){var c,d,e,f,g=this.options,h=!1;for(this.position=this._generatePosition(b),this.positionAbs=this._convertPositionTo("absolute"),this.lastPositionAbs||(this.lastPositionAbs=this.positionAbs),this.options.scroll&&(this.scrollParent[0]!==document&&"HTML"!==this.scrollParent[0].tagName?(this.overflowOffset.top+this.scrollParent[0].offsetHeight-b.pageY
=0;c--)if(d=this.items[c],e=d.item[0],f=this._intersectsWithPointer(d),f&&d.instance===this.currentContainer&&e!==this.currentItem[0]&&this.placeholder[1===f?"next":"prev"]()[0]!==e&&!a.contains(this.placeholder[0],e)&&("semi-dynamic"===this.options.type?!a.contains(this.element[0],e):!0)){if(this.direction=1===f?"down":"up","pointer"!==this.options.tolerance&&!this._intersectsWithSides(d))break;this._rearrange(b,d),this._trigger("change",b,this._uiHash());break}return this._contactContainers(b),a.ui.ddmanager&&a.ui.ddmanager.drag(this,b),this._trigger("sort",b,this._uiHash()),this.lastPositionAbs=this.positionAbs,!1},_mouseStop:function(b,c){if(b){if(a.ui.ddmanager&&!this.options.dropBehaviour&&a.ui.ddmanager.drop(this,b),this.options.revert){var d=this,e=this.placeholder.offset(),f=this.options.axis,g={};f&&"x"!==f||(g.left=e.left-this.offset.parent.left-this.margins.left+(this.offsetParent[0]===document.body?0:this.offsetParent[0].scrollLeft)),f&&"y"!==f||(g.top=e.top-this.offset.parent.top-this.margins.top+(this.offsetParent[0]===document.body?0:this.offsetParent[0].scrollTop)),this.reverting=!0,a(this.helper).animate(g,parseInt(this.options.revert,10)||500,function(){d._clear(b)})}else this._clear(b,c);return!1}},cancel:function(){if(this.dragging){this._mouseUp({target:null}),"original"===this.options.helper?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"):this.currentItem.show();for(var b=this.containers.length-1;b>=0;b--)this.containers[b]._trigger("deactivate",null,this._uiHash(this)),this.containers[b].containerCache.over&&(this.containers[b]._trigger("out",null,this._uiHash(this)),this.containers[b].containerCache.over=0)}return this.placeholder&&(this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]),"original"!==this.options.helper&&this.helper&&this.helper[0].parentNode&&this.helper.remove(),a.extend(this,{helper:null,dragging:!1,reverting:!1,_noFinalSort:null}),this.domPosition.prev?a(this.domPosition.prev).after(this.currentItem):a(this.domPosition.parent).prepend(this.currentItem)),this},serialize:function(b){var c=this._getItemsAsjQuery(b&&b.connected),d=[];return b=b||{},a(c).each(function(){var c=(a(b.item||this).attr(b.attribute||"id")||"").match(b.expression||/(.+)[\-=_](.+)/);c&&d.push((b.key||c[1]+"[]")+"="+(b.key&&b.expression?c[1]:c[2]))}),!d.length&&b.key&&d.push(b.key+"="),d.join("&")},toArray:function(b){var c=this._getItemsAsjQuery(b&&b.connected),d=[];return b=b||{},c.each(function(){d.push(a(b.item||this).attr(b.attribute||"id")||"")}),d},_intersectsWith:function(a){var b=this.positionAbs.left,c=b+this.helperProportions.width,d=this.positionAbs.top,e=d+this.helperProportions.height,f=a.left,g=f+a.width,h=a.top,i=h+a.height,j=this.offset.click.top,k=this.offset.click.left,l="x"===this.options.axis||d+j>h&&i>d+j,m="y"===this.options.axis||b+k>f&&g>b+k,n=l&&m;return"pointer"===this.options.tolerance||this.options.forcePointerForContainers||"pointer"!==this.options.tolerance&&this.helperProportions[this.floating?"width":"height"]>a[this.floating?"width":"height"]?n:b+this.helperProportions.width/2>f&&g>c-this.helperProportions.width/2&&d+this.helperProportions.height/2>h&&i>e-this.helperProportions.height/2},_intersectsWithPointer:function(a){var c="x"===this.options.axis||b(this.positionAbs.top+this.offset.click.top,a.top,a.height),d="y"===this.options.axis||b(this.positionAbs.left+this.offset.click.left,a.left,a.width),e=c&&d,f=this._getDragVerticalDirection(),g=this._getDragHorizontalDirection();return e?this.floating?g&&"right"===g||"down"===f?2:1:f&&("down"===f?2:1):!1},_intersectsWithSides:function(a){var c=b(this.positionAbs.top+this.offset.click.top,a.top+a.height/2,a.height),d=b(this.positionAbs.left+this.offset.click.left,a.left+a.width/2,a.width),e=this._getDragVerticalDirection(),f=this._getDragHorizontalDirection();return this.floating&&f?"right"===f&&d||"left"===f&&!d:e&&("down"===e&&c||"up"===e&&!c)},_getDragVerticalDirection:function(){var a=this.positionAbs.top-this.lastPositionAbs.top;return 0!==a&&(a>0?"down":"up")},_getDragHorizontalDirection:function(){var a=this.positionAbs.left-this.lastPositionAbs.left;return 0!==a&&(a>0?"right":"left")},refresh:function(a){return this._refreshItems(a),this.refreshPositions(),this},_connectWith:function(){var a=this.options;return a.connectWith.constructor===String?[a.connectWith]:a.connectWith},_getItemsAsjQuery:function(b){var c,d,e,f,g=[],h=[],i=this._connectWith();if(i&&b)for(c=i.length-1;c>=0;c--)for(e=a(i[c]),d=e.length-1;d>=0;d--)f=a.data(e[d],this.widgetFullName),f&&f!==this&&!f.options.disabled&&h.push([a.isFunction(f.options.items)?f.options.items.call(f.element):a(f.options.items,f.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),f]);for(h.push([a.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):a(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]),c=h.length-1;c>=0;c--)h[c][0].each(function(){g.push(this)});return a(g)},_removeCurrentsFromItems:function(){var b=this.currentItem.find(":data("+this.widgetName+"-item)");this.items=a.grep(this.items,function(a){for(var c=0;b.length>c;c++)if(b[c]===a.item[0])return!1;return!0})},_refreshItems:function(b){this.items=[],this.containers=[this];var c,d,e,f,g,h,i,j,k=this.items,l=[[a.isFunction(this.options.items)?this.options.items.call(this.element[0],b,{item:this.currentItem}):a(this.options.items,this.element),this]],m=this._connectWith();if(m&&this.ready)for(c=m.length-1;c>=0;c--)for(e=a(m[c]),d=e.length-1;d>=0;d--)f=a.data(e[d],this.widgetFullName),f&&f!==this&&!f.options.disabled&&(l.push([a.isFunction(f.options.items)?f.options.items.call(f.element[0],b,{item:this.currentItem}):a(f.options.items,f.element),f]),this.containers.push(f));for(c=l.length-1;c>=0;c--)for(g=l[c][1],h=l[c][0],d=0,j=h.length;j>d;d++)i=a(h[d]),i.data(this.widgetName+"-item",g),k.push({item:i,instance:g,width:0,height:0,left:0,top:0})},refreshPositions:function(b){this.offsetParent&&this.helper&&(this.offset.parent=this._getParentOffset());var c,d,e,f;for(c=this.items.length-1;c>=0;c--)d=this.items[c],d.instance!==this.currentContainer&&this.currentContainer&&d.item[0]!==this.currentItem[0]||(e=this.options.toleranceElement?a(this.options.toleranceElement,d.item):d.item,b||(d.width=e.outerWidth(),d.height=e.outerHeight()),f=e.offset(),d.left=f.left,d.top=f.top);if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(c=this.containers.length-1;c>=0;c--)f=this.containers[c].element.offset(),this.containers[c].containerCache.left=f.left,this.containers[c].containerCache.top=f.top,this.containers[c].containerCache.width=this.containers[c].element.outerWidth(),this.containers[c].containerCache.height=this.containers[c].element.outerHeight();return this},_createPlaceholder:function(b){b=b||this;var c,d=b.options;d.placeholder&&d.placeholder.constructor!==String||(c=d.placeholder,d.placeholder={element:function(){var d=b.currentItem[0].nodeName.toLowerCase(),e=a("<"+d+">",b.document[0]).addClass(c||b.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper");return"tr"===d?b.currentItem.children().each(function(){a(" | ",b.document[0]).attr("colspan",a(this).attr("colspan")||1).appendTo(e)}):"img"===d&&e.attr("src",b.currentItem.attr("src")),c||e.css("visibility","hidden"),e},update:function(a,e){(!c||d.forcePlaceholderSize)&&(e.height()||e.height(b.currentItem.innerHeight()-parseInt(b.currentItem.css("paddingTop")||0,10)-parseInt(b.currentItem.css("paddingBottom")||0,10)),e.width()||e.width(b.currentItem.innerWidth()-parseInt(b.currentItem.css("paddingLeft")||0,10)-parseInt(b.currentItem.css("paddingRight")||0,10)))}}),b.placeholder=a(d.placeholder.element.call(b.element,b.currentItem)),b.currentItem.after(b.placeholder),d.placeholder.update(b,b.placeholder)},_contactContainers:function(d){var e,f,g,h,i,j,k,l,m,n,o=null,p=null;for(e=this.containers.length-1;e>=0;e--)if(!a.contains(this.currentItem[0],this.containers[e].element[0]))if(this._intersectsWith(this.containers[e].containerCache)){if(o&&a.contains(this.containers[e].element[0],o.element[0]))continue;o=this.containers[e],p=e}else this.containers[e].containerCache.over&&(this.containers[e]._trigger("out",d,this._uiHash(this)),this.containers[e].containerCache.over=0);if(o)if(1===this.containers.length)this.containers[p].containerCache.over||(this.containers[p]._trigger("over",d,this._uiHash(this)),this.containers[p].containerCache.over=1);else{for(g=1e4,h=null,n=o.floating||c(this.currentItem),i=n?"left":"top",j=n?"width":"height",k=this.positionAbs[i]+this.offset.click[i],f=this.items.length-1;f>=0;f--)a.contains(this.containers[p].element[0],this.items[f].item[0])&&this.items[f].item[0]!==this.currentItem[0]&&(!n||b(this.positionAbs.top+this.offset.click.top,this.items[f].top,this.items[f].height))&&(l=this.items[f].item.offset()[i],m=!1,Math.abs(l-k)>Math.abs(l+this.items[f][j]-k)&&(m=!0,l+=this.items[f][j]),g>Math.abs(l-k)&&(g=Math.abs(l-k),h=this.items[f],this.direction=m?"up":"down"));if(!h&&!this.options.dropOnEmpty)return;if(this.currentContainer===this.containers[p])return;h?this._rearrange(d,h,null,!0):this._rearrange(d,null,this.containers[p].element,!0),this._trigger("change",d,this._uiHash()),this.containers[p]._trigger("change",d,this._uiHash(this)),this.currentContainer=this.containers[p],this.options.placeholder.update(this.currentContainer,this.placeholder),this.containers[p]._trigger("over",d,this._uiHash(this)),this.containers[p].containerCache.over=1}},_createHelper:function(b){var c=this.options,d=a.isFunction(c.helper)?a(c.helper.apply(this.element[0],[b,this.currentItem])):"clone"===c.helper?this.currentItem.clone():this.currentItem;return d.parents("body").length||a("parent"!==c.appendTo?c.appendTo:this.currentItem[0].parentNode)[0].appendChild(d[0]),d[0]===this.currentItem[0]&&(this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")}),(!d[0].style.width||c.forceHelperSize)&&d.width(this.currentItem.width()),(!d[0].style.height||c.forceHelperSize)&&d.height(this.currentItem.height()),d},_adjustOffsetFromHelper:function(b){"string"==typeof b&&(b=b.split(" ")),a.isArray(b)&&(b={left:+b[0],top:+b[1]||0}),"left"in b&&(this.offset.click.left=b.left+this.margins.left),"right"in b&&(this.offset.click.left=this.helperProportions.width-b.right+this.margins.left),"top"in b&&(this.offset.click.top=b.top+this.margins.top),"bottom"in b&&(this.offset.click.top=this.helperProportions.height-b.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var b=this.offsetParent.offset();return"absolute"===this.cssPosition&&this.scrollParent[0]!==document&&a.contains(this.scrollParent[0],this.offsetParent[0])&&(b.left+=this.scrollParent.scrollLeft(),b.top+=this.scrollParent.scrollTop()),(this.offsetParent[0]===document.body||this.offsetParent[0].tagName&&"html"===this.offsetParent[0].tagName.toLowerCase()&&a.ui.ie)&&(b={top:0,left:0}),{top:b.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:b.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"===this.cssPosition){var a=this.currentItem.position();return{top:a.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:a.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.currentItem.css("marginLeft"),10)||0,top:parseInt(this.currentItem.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var b,c,d,e=this.options;"parent"===e.containment&&(e.containment=this.helper[0].parentNode),("document"===e.containment||"window"===e.containment)&&(this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,a("document"===e.containment?document:window).width()-this.helperProportions.width-this.margins.left,(a("document"===e.containment?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]),/^(document|window|parent)$/.test(e.containment)||(b=a(e.containment)[0],c=a(e.containment).offset(),d="hidden"!==a(b).css("overflow"),this.containment=[c.left+(parseInt(a(b).css("borderLeftWidth"),10)||0)+(parseInt(a(b).css("paddingLeft"),10)||0)-this.margins.left,c.top+(parseInt(a(b).css("borderTopWidth"),10)||0)+(parseInt(a(b).css("paddingTop"),10)||0)-this.margins.top,c.left+(d?Math.max(b.scrollWidth,b.offsetWidth):b.offsetWidth)-(parseInt(a(b).css("borderLeftWidth"),10)||0)-(parseInt(a(b).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,c.top+(d?Math.max(b.scrollHeight,b.offsetHeight):b.offsetHeight)-(parseInt(a(b).css("borderTopWidth"),10)||0)-(parseInt(a(b).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top])},_convertPositionTo:function(b,c){c||(c=this.position);var d="absolute"===b?1:-1,e="absolute"!==this.cssPosition||this.scrollParent[0]!==document&&a.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,f=/(html|body)/i.test(e[0].tagName);return{top:c.top+this.offset.relative.top*d+this.offset.parent.top*d-("fixed"===this.cssPosition?-this.scrollParent.scrollTop():f?0:e.scrollTop())*d,left:c.left+this.offset.relative.left*d+this.offset.parent.left*d-("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():f?0:e.scrollLeft())*d}},_generatePosition:function(b){var c,d,e=this.options,f=b.pageX,g=b.pageY,h="absolute"!==this.cssPosition||this.scrollParent[0]!==document&&a.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,i=/(html|body)/i.test(h[0].tagName);return"relative"!==this.cssPosition||this.scrollParent[0]!==document&&this.scrollParent[0]!==this.offsetParent[0]||(this.offset.relative=this._getRelativeOffset()),this.originalPosition&&(this.containment&&(b.pageX-this.offset.click.leftthis.containment[2]&&(f=this.containment[2]+this.offset.click.left),b.pageY-this.offset.click.top>this.containment[3]&&(g=this.containment[3]+this.offset.click.top)),e.grid&&(c=this.originalPageY+Math.round((g-this.originalPageY)/e.grid[1])*e.grid[1],g=this.containment?c-this.offset.click.top>=this.containment[1]&&c-this.offset.click.top<=this.containment[3]?c:c-this.offset.click.top>=this.containment[1]?c-e.grid[1]:c+e.grid[1]:c,d=this.originalPageX+Math.round((f-this.originalPageX)/e.grid[0])*e.grid[0],f=this.containment?d-this.offset.click.left>=this.containment[0]&&d-this.offset.click.left<=this.containment[2]?d:d-this.offset.click.left>=this.containment[0]?d-e.grid[0]:d+e.grid[0]:d)),{top:g-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.scrollParent.scrollTop():i?0:h.scrollTop()),left:f-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():i?0:h.scrollLeft())}},_rearrange:function(a,b,c,d){c?c[0].appendChild(this.placeholder[0]):b.item[0].parentNode.insertBefore(this.placeholder[0],"down"===this.direction?b.item[0]:b.item[0].nextSibling),this.counter=this.counter?++this.counter:1;var e=this.counter;this._delay(function(){e===this.counter&&this.refreshPositions(!d)})},_clear:function(a,b){this.reverting=!1;var c,d=[];if(!this._noFinalSort&&this.currentItem.parent().length&&this.placeholder.before(this.currentItem),this._noFinalSort=null,this.helper[0]===this.currentItem[0]){for(c in this._storedCSS)("auto"===this._storedCSS[c]||"static"===this._storedCSS[c])&&(this._storedCSS[c]="");this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")}else this.currentItem.show();for(this.fromOutside&&!b&&d.push(function(a){this._trigger("receive",a,this._uiHash(this.fromOutside))}),!this.fromOutside&&this.domPosition.prev===this.currentItem.prev().not(".ui-sortable-helper")[0]&&this.domPosition.parent===this.currentItem.parent()[0]||b||d.push(function(a){this._trigger("update",a,this._uiHash())}),this!==this.currentContainer&&(b||(d.push(function(a){this._trigger("remove",a,this._uiHash())}),d.push(function(a){return function(b){a._trigger("receive",b,this._uiHash(this))}}.call(this,this.currentContainer)),d.push(function(a){return function(b){a._trigger("update",b,this._uiHash(this))}}.call(this,this.currentContainer)))),c=this.containers.length-1;c>=0;c--)b||d.push(function(a){return function(b){a._trigger("deactivate",b,this._uiHash(this))}}.call(this,this.containers[c])),this.containers[c].containerCache.over&&(d.push(function(a){return function(b){a._trigger("out",b,this._uiHash(this))}}.call(this,this.containers[c])),this.containers[c].containerCache.over=0);if(this.storedCursor&&(this.document.find("body").css("cursor",this.storedCursor),this.storedStylesheet.remove()),this._storedOpacity&&this.helper.css("opacity",this._storedOpacity),this._storedZIndex&&this.helper.css("zIndex","auto"===this._storedZIndex?"":this._storedZIndex),this.dragging=!1,this.cancelHelperRemoval){if(!b){for(this._trigger("beforeStop",a,this._uiHash()),c=0;d.length>c;c++)d[c].call(this,a);this._trigger("stop",a,this._uiHash())}return this.fromOutside=!1,!1}if(b||this._trigger("beforeStop",a,this._uiHash()),this.placeholder[0].parentNode.removeChild(this.placeholder[0]),this.helper[0]!==this.currentItem[0]&&this.helper.remove(),this.helper=null,!b){for(c=0;d.length>c;c++)d[c].call(this,a);this._trigger("stop",a,this._uiHash())}return this.fromOutside=!1,!0},_trigger:function(){a.Widget.prototype._trigger.apply(this,arguments)===!1&&this.cancel()},_uiHash:function(b){var c=b||this;return{helper:c.helper,placeholder:c.placeholder||a([]),position:c.position,originalPosition:c.originalPosition,offset:c.positionAbs,item:c.currentItem,sender:b?b.element:null}}})}(jQuery),function(a,b){var c=/Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(navigator.userAgent);a.requestAnimationFrame=function(){return a.requestAnimationFrame||a.webkitRequestAnimationFrame||a.mozRequestAnimationFrame||a.oRequestAnimationFrame||a.msRequestAnimationFrame||function(b){a.setTimeout(b,1e3/60)}}();var d=function(b){if(0===arguments.length){var c=d.createCanvas(a.innerWidth,a.innerHeight);a.addEventListener("resize",function(){})}else if("string"==typeof b)var c=document.querySelector(b);else if("number"==typeof b)var c=d.createCanvas(arguments[0],arguments[1]);else if(b instanceof Image||b instanceof HTMLImageElement)var c=d.createCanvas(b);else{if(b instanceof d.Wrapper)return b;var c=b}return new d.Wrapper(c)};d.extend=function(){for(var a=1;a2){var e=a-c,f=b-d;return Math.sqrt(e*e+f*f)}return Math.abs(a-b)},d.extend(d,{keycodes:{37:"left",38:"up",39:"right",40:"down",45:"insert",46:"delete",8:"backspace",9:"tab",13:"enter",16:"shift",17:"ctrl",18:"alt",19:"pause",20:"capslock",27:"escape",32:"space",33:"pageup",34:"pagedown",35:"end",112:"f1",113:"f2",114:"f3",115:"f4",116:"f5",117:"f6",118:"f7",119:"f8",120:"f9",121:"f10",122:"f11",123:"f12",144:"numlock",145:"scrolllock",186:"semicolon",187:"equal",188:"comma",189:"dash",190:"period",191:"slash",192:"graveaccent",219:"openbracket",220:"backslash",221:"closebraket",222:"singlequote"},cleanArray:function(a,b){for(var c=arguments[arguments.length-1],d="function"==typeof c,e=0,f=a.length;f>e;e++)(null===a[e]||b&&a[e][b])&&(d&&c(a[e]),a.splice(e--,1),f--)},specialBlendFunctions:["color","value","hue","saturation"],blendFunctions:{normal:function(a,b){return b},overlay:function(a,b){a/=255,b/=255;var c=0;return c=.5>a?2*a*b:1-2*(1-a)*(1-b),Math.min(255,Math.max(0,255*c|0))},hardLight:function(a,b){return d.blendFunctions.overlay(b,a)},softLight:function(a,b){a/=255,b/=255;var c=(1-2*b)*a*a+2*b*a;return d.limitValue(255*c,0,255)},dodge:function(a,b){return Math.min(256*a/(255-b+1),255)},burn:function(a,b){return 255-Math.min(256*(255-a)/(b+1),255)},multiply:function(a,b){return b*a/255},divide:function(a,b){return Math.min(256*a/(b+1),255)},screen:function(a,b){return 255-(255-b)*(255-a)/255},grainExtract:function(a,b){return d.limitValue(a-b+128,0,255)},grainMerge:function(a,b){return d.limitValue(a+b-128,0,255)},difference:function(a,b){return Math.abs(a-b)},addition:function(a,b){return Math.min(a+b,255)},substract:function(a,b){return Math.max(a-b,0)},darkenOnly:function(a,b){return Math.min(a,b)},lightenOnly:function(a,b){return Math.max(a,b)},color:function(a,b){var c=d.rgbToHsl(a),e=d.rgbToHsl(b);return d.hslToRgb(e[0],e[1],c[2])},hue:function(a,b){var c=d.rgbToHsv(a),e=d.rgbToHsv(b);return e[1]?d.hsvToRgb(e[0],c[1],c[2]):d.hsvToRgb(c[0],c[1],c[2])},value:function(a,b){var c=d.rgbToHsv(a),e=d.rgbToHsv(b);return d.hsvToRgb(c[0],c[1],e[2])},saturation:function(a,b){var c=d.rgbToHsv(a),e=d.rgbToHsv(b);return d.hsvToRgb(c[0],e[1],c[2])}},blend:function(a,b,c,e){"undefined"==typeof e&&(e=1);var a=d(a),b=d(b),f=a.context,g=b.context,h=f.getImageData(0,0,a.canvas.width,a.canvas.height),i=g.getImageData(0,0,b.canvas.width,b.canvas.height),j=h.data,k=i.data,l=this.createImageData(a.canvas.width,a.canvas.height),m=l.data,n=d.blendFunctions[c];if(-1!==d.specialBlendFunctions.indexOf(c))for(var o=0,p=j.length;p>o;o+=4){var q=n([j[o+0],j[o+1],j[o+2]],[k[o+0],k[o+1],k[o+2]]);m[o+0]=j[o+0]+(q[0]-j[o+0])*e,m[o+1]=j[o+1]+(q[1]-j[o+1])*e,m[o+2]=j[o+2]+(q[2]-j[o+2])*e,m[o+3]=j[o+3]}else for(var o=0,p=j.length;p>o;o+=4){var r=n(j[o+0],k[o+0]),s=n(j[o+1],k[o+1]),t=n(j[o+2],k[o+2]);m[o+0]=j[o+0]+(r-j[o+0])*e,m[o+1]=j[o+1]+(s-j[o+1])*e,m[o+2]=j[o+2]+(t-j[o+2])*e,m[o+3]=j[o+3]}return a.context.putImageData(l,0,0),a},wrapValue:function(a,b,c){var d=Math.abs(c-b);return b+(a-b)%d},limitValue:function(a,b,c){return b>a?b:a>c?c:a},mix:function(a,b,c){return a+(b-a)*c},hexToRgb:function(a){return 7===a.length?["0x"+a[1]+a[2]|0,"0x"+a[3]+a[4]|0,"0x"+a[5]+a[6]|0]:["0x"+a[1]|0,"0x"+a[2],"0x"+a[3]|0]},rgbToHex:function(a,b,c){return"#"+((1<<24)+(a<<16)+(b<<8)+c).toString(16).slice(1,7)},rgbToHsl:function(a,b,c){a instanceof Array&&(c=a[2],b=a[1],a=a[0]),a/=255,b/=255,c/=255;var d,e,f=Math.max(a,b,c),g=Math.min(a,b,c),h=(f+g)/2;if(f==g)d=e=0;else{var i=f-g;switch(e=h>.5?i/(2-f-g):i/(f+g),f){case a:d=(b-c)/i+(c>b?6:0);break;case b:d=(c-a)/i+2;break;case c:d=(a-b)/i+4}d/=6}return[d,e,h]},hslToRgb:function(a,b,c){function d(a,b,c){return 0>c&&(c+=1),c>1&&(c-=1),1/6>c?a+6*(b-a)*c:.5>c?b:2/3>c?a+(b-a)*(2/3-c)*6:a}var e,f,g;if(0==b)e=f=g=c;else{var h=.5>c?c*(1+b):c+b-c*b,i=2*c-h;e=d(i,h,a+1/3),f=d(i,h,a),g=d(i,h,a-1/3)}return[255*e|0,255*f|0,255*g|0]},rgbToHsv:function(a,b,c){a instanceof Array&&(c=a[2],b=a[1],a=a[0]),a/=255,b/=255,c/=255;var d,e,f=Math.max(a,b,c),g=Math.min(a,b,c),h=f,i=f-g;if(e=0==f?0:i/f,f==g)d=0;else{switch(f){case a:d=(b-c)/i+(c>b?6:0);break;case b:d=(c-a)/i+2;break;case c:d=(a-b)/i+4}d/=6}return[d,e,h]},hsvToRgb:function(a,b,c){var d,e,f,g=Math.floor(6*a),h=6*a-g,i=c*(1-b),j=c*(1-h*b),k=c*(1-(1-h)*b);switch(g%6){case 0:d=c,e=k,f=i;break;case 1:d=j,e=c,f=i;break;case 2:d=i,e=c,f=k;break;case 3:d=i,e=j,f=c;break;case 4:d=k,e=i,f=c;break;case 5:d=c,e=i,f=j}return[255*d|0,255*e|0,255*f|0]},color:function(){var a=new d.Color;return a.parse(arguments[0],arguments[1]),a},createCanvas:function(a,b){var c=document.createElement("canvas");if(arguments[0]instanceof Image||arguments[0]instanceof HTMLImageElement){var d=arguments[0];c.width=d.width,c.height=d.height,c.getContext("2d").drawImage(d,0,0)}else c.width=a,c.height=b;return c},createImageData:function(a,b){return document.createElement("Canvas").getContext("2d").createImageData(a,b)},mousePosition:function(a){var c=0,d=0,e=0,f=0,g=a.target||a.srcElement,h=0,i=0;do c+=g.offsetLeft,d+=g.offsetTop;while(g=g.offsetParent);return a.changedTouches&&a.changedTouches[0]!==b&&(a=a.changedTouches[0]),a.pageX||a.pageY?(h=a.pageX,i=a.pageY):(a.clientX||a.clientY)&&(h=a.clientX+document.body.scrollLeft+document.documentElement.scrollLeft,i=a.clientY+document.body.scrollTop+document.documentElement.scrollTop),e=h-c,f=i-d,{x:e,y:f}}}),d.Wrapper=function(a){this.context=a.getContext("2d"),this.canvas=a},d.Wrapper.prototype={appendTo:function(a){if("object"==typeof a)var b=a;else var b=document.querySelector(a);return b.appendChild(this.canvas),this},blendOn:function(a,b,c){return d.blend(a,this,b,c),this},blend:function(a,b,c){if("string"==typeof a){var e=a;a=d(d.createCanvas(this.canvas.width,this.canvas.height)),a.fillStyle(e).fillRect(0,0,this.canvas.width,this.canvas.height)}return d.blend(this,a,b,c),this},circle:function(a,b,c){return this.context.arc(a,b,c,0,2*Math.PI),this},crop:function(a,b,c,e){var f=d.createCanvas(c,e),g=f.getContext("2d");return g.drawImage(this.canvas,a,b,c,e,0,0,c,e),this.canvas.width=c,this.canvas.height=e,this.clear(),this.context.drawImage(f,0,0),this},set:function(a){d.extend(this.context,a)},resize:function(a,b){var c=a,e=b;1===arguments.length?(c=arguments[0]*this.canvas.width|0,e=arguments[0]*this.canvas.height|0):null===b?this.canvas.width>a?(e=this.canvas.height*(a/this.canvas.width)|0,c=a):(c=this.canvas.width,e=this.canvas.height):null===a&&(this.canvas.width>a?(c=this.canvas.width*(b/this.canvas.height)|0,e=b):(c=this.canvas.width,e=this.canvas.height));var f=d(c,e).drawImage(this.canvas,0,0,this.canvas.width,this.canvas.height,0,0,c,e);return this.canvas=f.canvas,this.context=f.context,this},trim:function(a,b){var c;a?(a=d.color(a).toArray(),c=!a[3]):c=!0;for(var e=this.context.getImageData(0,0,this.canvas.width,this.canvas.height),f=e.data,g=[this.canvas.width,this.canvas.height,0,0],h=0,i=f.length;i>h;h+=4){if(c){if(!f[h+3])continue}else if(f[h+0]===a[0]&&f[h+1]===a[1]&&f[h+2]===a[2])continue;var j=(h/4|0)%this.canvas.width|0,k=(h/4|0)/this.canvas.width|0;jg[2]&&(g[2]=j),kg[3]&&(g[3]=k)
-}return 0===g[2]||0===g[3]||(b&&(b.left=g[0],b.top=g[1],b.width=g[2]-g[0],b.height=g[3]-g[1]),this.crop(g[0],g[1],g[2]-g[0]+1,g[3]-g[1]+1)),this},resizePixel:function(a){var b=this.context.getImageData(0,0,this.canvas.width,this.canvas.height),c=b.data,e=document.createElement("canvas"),f=e.context=e.getContext("2d");e.width=this.canvas.width*a|0,e.height=this.canvas.height*a|0;for(var g=0,h=c.length;h>g;g+=4)if(c[g+3]){f.fillStyle=d.rgbToHex(c[g+0],c[g+1],c[g+2]);var i=g/4%this.canvas.width,j=g/4/this.canvas.width|0;f.fillRect(i*a,j*a,a,a)}return this.canvas.width=e.width,this.canvas.height=e.height,this.clear().drawImage(e,0,0),this;var i,j,e,f},matchPalette:function(a){for(var b=this.context.getImageData(0,0,this.canvas.width,this.canvas.height),c=[],e=0;ee;e+=4)if(c[e+3]){var g=d.rgbToHex(c[e+0],c[e+1],c[e+2]);-1===a.indexOf(g)&&a.push(g)}return a},pixelize:function(a){if(!a)return this;a=a||4;var b=this.context.mozImageSmoothingEnabled,c=this.context.webkitImageSmoothingEnabled;this.context.mozImageSmoothingEnabled=!1,this.context.webkitImageSmoothingEnabled=!1;var d=this.canvas.width/a/this.canvas.width,e=cq(this.canvas.width,this.canvas.height);return e.drawImage(this.canvas,0,0,this.canvas.width,this.canvas.height,0,0,this.canvas.width*d|0,this.canvas.height*d|0),this.clear().drawImage(e.canvas,0,0,this.canvas.width*d|0,this.canvas.height*d|0,0,0,this.canvas.width,this.canvas.height),this.context.mozImageSmoothingEnabled=b,this.context.webkitImageSmoothingEnabled=c,this},colorToMask:function(a,b){a=d.color(a).toArray();for(var c=this.context.getImageData(0,0,this.canvas.width,this.canvas.height),e=c.data,f=[],g=0,h=e.length;h>g;g+=4)f.push(e[g+0]==a[0]&&e[g+1]==a[1]&&e[g+2]==a[2]?b||!1:!b);return f},grayscaleToMask:function(){for(var a=this.context.getImageData(0,0,this.canvas.width,this.canvas.height),b=a.data,c=[],d=0,e=b.length;e>d;d+=4)c.push((b[d+0]+b[d+1]+b[d+2])/3|0);return c},grayscaleToAlpha:function(){for(var a=this.context.getImageData(0,0,this.canvas.width,this.canvas.height),b=a.data,c=0,d=b.length;d>c;c+=4)b[c+3]=(b[c+0]+b[c+1]+b[c+2])/3|0,b[c+0]=b[c+1]=b[c+2]=255;return this.context.putImageData(a,0,0),this},applyMask:function(a){for(var b=this.context.getImageData(0,0,this.canvas.width,this.canvas.height),c=b.data,d="boolean"==typeof a[0]?"bool":"byte",e=0,f=c.length;f>e;e+=4){var g=a[e/4];c[e+3]="bool"===d?255*g|0:0|g}return this.context.putImageData(b,0,0),this},fillMask:function(a){var b=this.context.getImageData(0,0,this.canvas.width,this.canvas.height),c=b.data,e="boolean"==typeof a[0]?"bool":"byte",f=2===arguments.length?"normal":"gradient",g=d.color(arguments[1]);"gradient"===f&&(colorB=d.color(arguments[2]));for(var h=0,i=c.length;i>h;h+=4){var j=a[h/4];"byte"===e&&(j/=255),"normal"===f?j&&(c[h+0]=0|g[0],c[h+1]=0|g[1],c[h+2]=0|g[2],c[h+3]=255*j|0):(c[h+0]=g[0]+(colorB[0]-g[0])*j|0,c[h+1]=g[1]+(colorB[1]-g[1])*j|0,c[h+2]=g[2]+(colorB[2]-g[2])*j|0,c[h+3]=255)}return this.context.putImageData(b,0,0),this},clear:function(a){return a?(this.context.fillStyle=a,this.context.fillRect(0,0,this.canvas.width,this.canvas.height)):this.context.clearRect(0,0,this.canvas.width,this.canvas.height),this},clone:function(){var a=d.createCanvas(this.canvas.width,this.canvas.height);return a.getContext("2d").drawImage(this.canvas,0,0),d(a)},fillStyle:function(a){return this.context.fillStyle=a,this},strokeStyle:function(a){return this.context.strokeStyle=a,this},gradientText:function(a,b,c,d,e){var f=a.split(" "),g=2*this.font().match(/\d+/g)[0],h=0,i=0;if(d)for(var j=0,k=[""],l=0;ld&&(k[++j]="",h=0),k[j]+=m,h+=n}else var k=[a];for(var l=0;lj;j+=4)h=d.rgbToHsl(g[j+0],g[j+1],g[j+2]),b=null===a[0]?h[0]:d.limitValue(a[0],0,1),c=null===a[1]?h[1]:d.limitValue(a[1],0,1),e=null===a[2]?h[2]:d.limitValue(a[2],0,1),i=d.hslToRgb(b,c,e),g[j+0]=i[0],g[j+1]=i[1],g[j+2]=i[2];return this.context.putImageData(f,0,0),this},shiftHsl:function(){if(1===arguments.length)var a=arguments[0];else var a=arguments;for(var b,c,e,f=this.context.getImageData(0,0,this.canvas.width,this.canvas.height),g=f.data,h=[],i=[],j=0,k=g.length;k>j;j+=4)h=d.rgbToHsl(g[j+0],g[j+1],g[j+2]),b=null===a[0]?h[0]:d.wrapValue(h[0]+a[0],0,1),c=null===a[1]?h[1]:d.limitValue(h[1]+a[1],0,1),e=null===a[2]?h[2]:d.limitValue(h[2]+a[2],0,1),i=d.hslToRgb(b,c,e),g[j+0]=i[0],g[j+1]=i[1],g[j+2]=i[2];return this.context.putImageData(f,0,0),this},replaceHue:function(a,b){for(var c,e=this.context.getImageData(0,0,this.canvas.width,this.canvas.height),f=e.data,g=[],h=[],i=0,j=f.length;j>i;i+=4)g=d.rgbToHsl(f[i+0],f[i+1],f[i+2]),c=Math.abs(g[0]-a)<.05?d.wrapValue(b,0,1):g[0],h=d.hslToRgb(c,g[1],g[2]),f[i+0]=h[0],f[i+1]=h[1],f[i+2]=h[2];return this.context.putImageData(e,0,0),this},invert:function(){for(var a=this.context.getImageData(0,0,this.canvas.width,this.canvas.height),b=a.data,c=0,d=b.length;d>c;c+=4)b[c+0]=255-b[c+0],b[c+1]=255-b[c+1],b[c+2]=255-b[c+2];return this.context.putImageData(a,0,0),this},roundRect:function(a,b,c,d,e){return this.beginPath(),this.moveTo(a+e,b),this.lineTo(a+c-e,b),this.quadraticCurveTo(a+c,b,a+c,b+e),this.lineTo(a+c,b+d-e),this.quadraticCurveTo(a+c,b+d,a+c-e,b+d),this.lineTo(a+e,b+d),this.quadraticCurveTo(a,b+d,a,b+d-e),this.lineTo(a,b+e),this.quadraticCurveTo(a,b,a+e,b),this.closePath(),this},wrappedText:function(a,b,c,d,e){var f=a instanceof Array?a:this.flowText(a,d),g=2*this.font().match(/\d+/g)[0],h=0,i=0;if(d)for(var j=0,f=[""],k=0;kd&&(f[++j]="",h=0),f[j]+=l,h+=m}else var f=[a];for(var k=0;kb?(f[e]=f[e].replace(/\s+$/,""),f[++e]="",d=0):f[e]+=" ";else{var j=this.context.measureText(i).width;d+=j,d>b&&f[e].length&&(f[e]=f[e].replace(/\s+$/,""),f[++e]="",d=j),f[e]+=i}else f[e]=f[e].replace(/\s+$/,""),f[++e]="",d=0}else var f=[a];return f},textBoundaries:function(a,b){for(var c=this.flowText(a,b||1/0),d=2*this.font().match(/\d+/g)[0],e=0,f=0;fo;o++)for(var p=1;k-1>p;p++){for(var q=4*(o*k+p),r=0,s=0,t=0,u=0,v=0;f>v;v++)for(var w=0;f>w;w++){var x=o+v-g,y=p+w-g;if(x>=0&&j>x&&y>=0&&i>y){var z=4*(x*i+y),A=a[v*f+w]/c;r+=h[z+0]*A,s+=h[z+1]*A,t+=h[z+2]*A,u+=h[z+3]*A}}n[q+0]=d.mix(h[q+0],r,b),n[q+1]=d.mix(h[q+1],s,b),n[q+2]=d.mix(h[q+2],t,b),n[q+3]=u}},blur:function(a){return this.convolve([1,1,1,1,1,1,1,1,1],a,9)},gaussianBlur:function(a){return this.convolve([6.7e-7,2292e-8,19117e-8,38771e-8,19117e-8,2292e-8,6.7e-7,2292e-8,78633e-8,.00655965,.01330373,.00655965,78633e-8,2292e-8,19117e-8,.00655965,.05472157,.11098164,.05472157,.00655965,19117e-8,38771e-8,.01330373,.11098164,.22508352,.11098164,.01330373,38771e-8,19117e-8,.00655965,.05472157,.11098164,.05472157,.00655965,19117e-8,2292e-8,78633e-8,.00655965,.01330373,.00655965,78633e-8,2292e-8,6.7e-7,2292e-8,19117e-8,38771e-8,19117e-8,2292e-8,6.7e-7],a,1)},sharpen:function(a){return this.convolve([0,-1,0,-1,5,-1,0,-1,0],a)},threshold:function(a){for(var b,c,d,e=this.context.getImageData(0,0,this.canvas.width,this.canvas.height),f=e.data,g=0;g=a?255:0;f[g]=f[g+1]=f[g+2]=h}return this.context.putImageData(e,0,0),this},sepia:function(){for(var a=this.context.getImageData(0,0,this.canvas.width,this.canvas.height),b=a.data,c=0;cj&&k>p&&(q=Math.abs(d)>Math.abs(e)?d>0?"left":"right":e>0?"up":"down",a.call(i,q))}var i=this.tempContext||this,j=c||35,k=e||350,l=0,m=0,n=0,o=0;return this.canvas.addEventListener("touchstart",function(a){f(a)}),this.canvas.addEventListener("touchmove",function(a){g(a)}),this.canvas.addEventListener("touchend",function(a){h(a)}),this.canvas.addEventListener("mousedown",function(a){f(a)}),this.canvas.addEventListener("mousemove",function(a){g(a)}),this.canvas.addEventListener("mouseup",function(a){h(a)}),this},onKeyDown:function(a){var b=this.tempContext||this;return document.addEventListener("keydown",function(c){if(c.which>=48&&c.which<=90)var e=String.fromCharCode(c.which).toLowerCase();else var e=d.keycodes[c.which];a.call(b,e)}),this},onKeyUp:function(a){var b=this.tempContext||this;return document.addEventListener("keyup",function(c){if(c.which>=48&&c.which<=90)var e=String.fromCharCode(c.which).toLowerCase();else var e=d.keycodes[c.which];a.call(b,e)}),this},onResize:function(b){var c=this.tempContext||this;return a.addEventListener("resize",function(){b.call(c,a.innerWidth,a.innerHeight)}),b.call(c,a.innerWidth,a.innerHeight),this},onDropImage:function(a){var b=this.tempContext||this;return document.addEventListener("drop",function(c){c.stopPropagation(),c.preventDefault();var d=c.dataTransfer.files[0];if(!/image/i.test(d.type))return!1;var e=new FileReader;e.onload=function(c){var d=new Image;d.onload=function(){a.call(b,this)},d.src=c.target.result},e.readAsDataURL(d)}),document.addEventListener("dragover",function(a){a.preventDefault()}),this}};for(var e=["arc","arcTo","beginPath","bezierCurveTo","clearRect","clip","closePath","createImageData","createLinearGradient","createRadialGradient","createPattern","drawFocusRing","drawImage","fill","fillRect","fillText","getImageData","isPointInPath","lineTo","measureText","moveTo","putImageData","quadraticCurveTo","rect","restore","rotate","save","scale","setTransform","stroke","strokeRect","strokeText","transform","translate"],f=0;f2&&d.push(a)}),0==d.length||"undefined"==d[0]?status("search query too small"):(status("searching for '"+d.join(" and ")+"'"),dumpfm.fetch({query:d.join("+"),success:gallery.load}))},dumpfm.fetch=function(a){if(!dumpfm.fetching){dumpfm.fetching=!0;var b={};$.ajax({url:"http://dump.fm/cmd/search/"+a.query,data:b,dataType:"jsonp",success:function(b){dumpfm.fetching=!1;for(var c=0,d=b.length;d>c;c++){var e=b[c].url;e=e.match(/^\/\d+\//)?"http://dump.fm/images/"+e:"http://"+e,b[c].url=e}a.success&&a.success(b)},error:a.error||function(a){console.log(a)}})}};var gif,img,imageURL=null,user=new function(){};user.init=function(){user.load(),user.bind()},user.bind=function(){$("#username").on("input",user.save)},user.load=function(){user.username=user.getCookie(),$("#username").val(user.username)},user.sanitize=function(){return $("#username").val().replace(/[^-_ a-zA-Z0-9]/g,"")},user.getCookie=function(){var a=localStorage.getItem("im.name")||"";if(document.cookie&&!a.length){var b=document.cookie.split(";");for(i in b){var c=b[i].split("=");if(-1!==c[0].indexOf("imname")&&"false"!==c[1]&&"undefined"!==c[1]&&c[1].length)return c[1]}}return a},user.save=function(){var a=user.sanitize();a!=user.username&&user.setCookie(a)},user.setCookie=function(a){console.log("setting to "+a),document.cookie="imname="+a+";path=/;domain=.asdf.us;max-age=1086400",localStorage.setItem("im.name",a)};var gallery={};gallery.init=function(a){a&&(gallery.choose=a),gallery.bind()},gallery.bind=function(){$("#gallery-random").click(asdf.random),$("#gallery-search").submit(dumpfm.search),$(document).on("click","#gallery-images canvas",gallery.click)},gallery.load=function(a){status("loading "+a.length+" images"),$("#gallery-images").empty();for(var b=0;ba||isNaN(a))&&$(this).val(a=1),$("#add-frame").html(1==a?"+add frame":"+add frames")}),$("#frames").disableSelection(),$("#remove-all-frames").click(remove_all_frames),$("#weave-frames").click(weave_frames),$("#shuffle-frames").click(shuffle_frames),$("#reverse-frames").click(reverse_frames),$("#sort-frames").click(sort_frames),$("#render").click(render),$("#save").click(save),$("#upload").click(upload),$("#background").change(function(){document.body.style.backgroundColor=$("#background").string()})};var encoder=new GifEncoder;encoder.on("quantized",function(){status("encoding"),encoder.encode()}),encoder.on("encoded-frame",function(a,b){status("encoded "+a+" / "+b)}),encoder.on("rendered",function(a){status(filesize(a.length))}),encoder.on("rendered-url",function(a){var b=new Image;lastGif=b.src=a,$("#workspace canvas").hide(),$("#workspace").append(b),$("#uploaded-url").hide().val(""),$("#uploaded-url + br").hide(),$("#save,#upload,#rendered").show(),$("#pause,#render,#add-frame,#save,#upload").enable(),$("#render").html("render gif"),rendering=!1,pause(!0)});var frame,img_frame,timeout,raf_id,start_t=0,old_t=0,pause_t=0,paused=!1,dragging=!1,rendering=!1,scrolling=!1,deferring=!1,scrollTimeout=null,fps=30,shader_build=function(){var a=document.getElementById("shader").value;a.length||(a="");try{var b=new Function("x","y","t","d",a);shader=b,shade=shade_error_handling}catch(c){try{acorn.parse(a)}catch(c){error_highlight.on(c.loc.line-1)}throw Error("Shader compilation error")}},r,g,b,a,w,h,actual_w,actual_h,chrome_stack_regexp=/:([0-9]+)/,firefox_stack_regexp=/:([0-9]+)$/;shade=shade_error_handling(function(){var a={},b={},c={},d="",e=0,f=0,g=0,h=function(){a.highlight.style.display="none"},i=function(b){c=a.textarea.getBoundingClientRect();var g=a.textarea.value,h=g.split("\n"),i=h.slice(0,b),k=h[b];a.textmeasure.innerHTML=1===i.length?i+d:i.join("
"+d),e=a.textmeasure.offsetHeight,a.textmeasure.innerHTML=k+d,f=a.textmeasure.offsetHeight,j()},j=function(){var b=c.top+c.height;a.highlight.style.width=a.textarea.scrollHeight>a.textarea.clientHeight?c.width-g+"px":c.width+"px",a.highlight.style.left=c.left+"px";var d=c.top+e-a.textarea.scrollTop;a.highlight.style.top=d+a.html.scrollTop+a.body.scrollTop+"px";var h=f;d+h>b&&(h=Math.max(0,b-d)),d"),f=b[d].username;e.val(f).html(f),c.append(e)}}),$(document).on("change","#pick-user",function(){var a=$(this).val();ShaderAPI.username(a,load_shaders)}),$(document).on("click",".shader",function(){run_shader($(this).data("shader"))})};var ShaderAPI={};ShaderAPI.limit=24,ShaderAPI.info=function(a,b){ShaderAPI.fetch({f:"info",id:a},b)},ShaderAPI.all=function(a){ShaderAPI.fetch({f:"all"},a)},ShaderAPI.range=function(a,b,c){ShaderAPI.fetch({f:"range",limit:a||ShaderAPI.limit,last:b},c)},ShaderAPI.latest=function(a,b){b||(b=a,a=ShaderAPI.limit),ShaderAPI.fetch({f:"range",limit:a||ShaderAPI.limit},b)},ShaderAPI.page=function(a,b,c){ShaderAPI.fetch({f:"range",last:(a-1)*b,limit:b||ShaderAPI.limit},c)},ShaderAPI.history=function(a,b){ShaderAPI.fetch({f:"history",id:a},b)},ShaderAPI.username=function(a,b){ShaderAPI.fetch({f:"username",username:a},b)},ShaderAPI.list_users=function(a){ShaderAPI.fetch({f:"list_users"},a)},ShaderAPI.originals=function(a){ShaderAPI.fetch({f:"originals"},a)},ShaderAPI.fetch=function(a,b){$.ajax({url:"http://asdf.us/cgi-bin/im/shader/view",data:a,dataType:"jsonp",success:function(a){a.SUCCESS?b(null,a.data):a.ERROR&&b(a.ERROR,a.data)}})};var shader_id_root=null,cc=cq(0,0).appendTo("#workspace"),w=400,h=400,lastGif,mousex,mousey,firsttime=!0,shader_gallery_template=$("#shader-gallery-template").html();$(init);
\ No newline at end of file
+function shuffle(a){var b=new Array(a.length);b[0]=a[0];for(var c=1;cb;b++){var d=new Worker(workerURL);d.onmessage=a.receiveWork,c.push(d)}};var d={};a.hire=function(a,b){d[a]=b},a.work=function(a){c[++b%c.length].postMessage(a)},a.receiveWork=function(a){a.data.task in d&&d[a.data.task](a)},a.fire=function(){for(var b in c)c[b].postMessage("close");c=[],a.init()},a.init()}function b(a){console.log("[WORKER]",a.data.message)}function c(a){console.log(Date.now()-q,"quantization done"),i=a.data.neuquant,j=a.data.colortab,f.quantized=!0,f.tube("quantized")}function d(a){var b=a.data.frame_index,c=a.data.frame_data;m[b]=c,f.tube("encoded-frame",m.length,k.length);for(var d=0;da?b:c>a?a:c}function lerp(a,b,c){return(c-b)*a+b}function mix(a,b,c){return b*(1-a)+c*a}function ceil(a){return Math.ceil(a)}function floor(a){return Math.floor(a)}function round(a){return Math.round(a)}function max(a){return Math.max(a)}function min(a){return Math.min(a)}function abs(a){return Math.abs(a)}function sign(a){return Math.abs(a)/a}function pow(a,b){return Math.pow(a,b)}function exp(a){return Math.exp(a)}function sqrt(a){return Math.sqrt(a,b)}function cos(a){return Math.cos(a)}function sin(a){return Math.sin(a)}function tan(a){return Math.tan(a)}function acos(a){return Math.cos(a)}function asin(a){return Math.sin(a)}function atan(a){return Math.atan(a)}function atan2(a){return Math.atan2(a)}function sec(a){return 1/cos(a)}function csc(a){return 1/sin(a)}function cot(a){return 1/tan(a)}function cosp(a){return(1+Math.cos(a))/2}function sinp(a){return(1+Math.sin(a))/2}function random(){return Math.random()}function rand(a){return Math.random()*a}function randint(a){return 0|rand(a)}function choice(a){return a[randint(a.length)]}function deg(a){return 180*a/PI}function rad(a){return a*PI/180}function xor(a,b){return a=!!a,b=!!b,(a||b)&&!(a&&b)}function mod(a,b){return a-b*floor(a/b)}function dist(a,b,c,d){return sqrt(pow(c-a,2)+pow(d-b,2))}function angle(a,b,c,d){return atan2(d-b,c-a)}function avg(a,b,c){return(a*(c-1)+b)/c}function pixel(a,b){return 4*(mod(b,actual_h)*actual_w+mod(a,actual_w))}function rgbpixel(c,d,e){var f=pixel(~~d,~~e);r=c[f],g=c[f+1],b=c[f+2],a=c[f+3]}function fit(a,b,c){rgbpixel(a,b*actual_w/w,c*actual_h/h)}function step(a,b){return(b>=a)+0}function julestep(a,b,c){return clamp((c-a)/(b-a),0,1)}function smoothstep(a,b,c){var d=clamp((c-a)/(b-a),0,1);return d*d*(3-2*d)}function shuffle(a){for(var b=a.length;b>0;b--){var c=randint(b),d=a[b-1];a[b-1]=a[c],a[c]=d}return a}function reverse(a){for(var b=[],c=0,d=a.length-1;d>=c;c++)b[c]=a[d-c];return b}function deinterlace(a){for(var b=[],c=[],d=0,e=a.length;e>d;d++)d%2?c.push(a[d]):b.push(a[d]);return[c,b]}function weave(a){var b=deinterlace(a),c=[];return b[0].forEach(function(a){c.push(a)}),reverse(b[1]).forEach(function(a){c.push(a)}),c}function rgb(a,c,d){r=a,g=c,b=d}function rgbref(a){r=a[0],g=a[1],b=a[2]}function black(){rgb(0,0,0)}function white(){rgb(255,255,255)}function red(){rgb(255,0,0)}function gray(a){1>a&&(a*=255),rgb(a,a,a)}function rgb2xyz(a){var b=a[0]/255,c=a[1]/255,d=a[2]/255;b>.04045?b=(b+.055)/1.055^2.4:b/=12.92,c>.04045?c=(c+.055)/1.055^2.4:c/=12.92,d>.04045?d=(d+.055)/1.055^2.4:d/=12.92,b=100*b,c=100*c,d=100*d;var e=.4124*b+.3576*c+.1805*d,f=.2126*b+.7152*c+.0722*d,g=.0193*b+.1192*c+.9505*d;return[e,f,g]}function xyz2rgb(a){var b=a[0]/100,c=a[1]/100,d=a[2]/100;var_R=3.2406*b+-1.5372*c+d*-.4986,var_G=b*-.9689+1.8758*c+.0415*d,var_B=.0557*b+c*-.204+1.057*d,var_R=var_R>.0031308?1.055*Math.pow(var_R,1/2.4)-.055:12.92*var_R,var_G=var_G>.0031308?1.055*Math.pow(var_G,1/2.4)-.055:12.92*var_G,var_B=var_B>.0031308?1.055*Math.pow(var_B,1/2.4)-.055:12.92*var_B;var e=clamp(255*var_R,0,255),f=clamp(255*var_G,0,255),g=clamp(255*var_B,0,255);return[e,f,g]}function xyz2hunterlab(a){var b=a[0],c=a[1],d=a[2],e=10*sqrt(c),f=17.5*((1.02*b-c)/sqrt(c)),g=7*((c-.847*d)/sqrt(c));return[e,f,g]}function hunterlab2xyz(a){var b=a[0],c=a[1],d=a[2];return var_Y=b/10,var_X=c/17.5*b/10,var_Z=d/7*b/10,Y=Math.pow(var_Y,2),X=(var_X+Y)/1.02,Z=-(var_Z-Y)/.847,[X,Y,Z]}function xyz2cielab(a){var b=a[0]/ref_X,c=a[1]/ref_Y,d=a[2]/ref_Z;b=b>.008856?Math.pow(b,1/3):7.787*b+16/116,c=c>.008856?Math.pow(c,1/3):7.787*c+16/116,d=d>.008856?Math.pow(d,1/3):7.787*d+16/116;var e=116*c-16,f=500*(b-c),g=200*(c-d);return[e,f,g]}function cielab2xyz(a){var b=(a[0]+16)/116,c=a[1]/500+b,d=b-a[2]/200;b=b^!0?Math.pow(b,3):(b-16/116)/7.787,c=c^!0?Math.pow(c,3):(c-16/116)/7.787,d=d^!0?Math.pow(d,3):(d-16/116)/7.787;return[x,y,z]}function rgb2hsl(a){var b,c,d=a[0],e=a[1],f=a[2],g=d/255,h=e/255,i=f/255,j=min(g,h,i),k=max(g,h,i),l=k-j,m=(k+j)/2;if(0==l)b=0,c=0;else{c=.5>m?l/(k+j):l/(2-k-j);var n=((k-g)/6+l/2)/l,o=((k-h)/6+l/2)/l,p=((k-i)/6+l/2)/l;g==k?b=p-o:h==k?b=1/3+n-p:i==k&&(b=2/3+o-n),0>b&&(b+=1),b>1&&(b-=1)}return[b,c,m]}function hsl2rgb(a,b,c){var d,e,f,g,h;return 0==b?(d=255*c,e=255*c,f=255*c):(h=.5>c?c*(1+b):c+b-b*c,g=2*c-h,d=255*hue2rgb(g,h,a+1/3),e=255*hue2rgb(g,h,a),f=255*hue2rgb(g,h,a-1/3)),[d,e,f]}function hue2rgb(a,b,c){return 0>c&&(c+=1),c>1&&(c-=1),1>6*c?a+6*(b-a)*c:1>2*c?b:2>3*c?a+(b-a)*(2/3-c)*6:a}function rgb2cmy(a,b,c){a.length&&(c=a[2],b=a[1],a=a[0]);var d=1-a/255,e=1-b/255,f=1-c/255;return[d,e,f]}function cmy2rgb(a,b,c){a.length&&(c=a[2],b=a[1],a=a[0]);var d=255*(1-a),e=255*(1-b),f=255*(1-c);return[d,e,f]}function cmy2cmyk(a,b,c){a.length&&(c=a[2],b=a[1],a=a[0]);var d=1;d>a&&(d=a),d>b&&(d=b),d>c&&(d=c),1==d?(a=0,b=0,c=0):(a=(a-d)/(1-d),b=(b-d)/(1-d),c=(c-d)/(1-d));var e=d;return[a,b,c,e]}function cmyk2cmy(a,b,c,d){a.length&&(d=a[3],c=a[2],b=a[1],a=a[0]);var a=a*(1-d)+d,b=b*(1-d)+d,c=c*(1-d)+d;return[a,b,c]}function loadImage(a,b){var a=proxify(a);return window.imageURL=a,window.gif=window.img=null,a?"gif"===a.substr(-3)?(window.gif=GIF(a),gif.on("rendered",b),gif.render()):(window.img=new Image,img.addEventListener("load",b),img.crossOrigin="anonymous",img.src=a):(window.gif=null,window.img=null,b(),void 0)}function giveImage(a){return window.gif?gif.frames[gif.currentFrame(a)]:img}function proxify(a){return 0==a.indexOf("http")?"/cgi-bin/proxy?"+a.replace(/^https/,"http"):a}function filesize(a){return 1e3>a?a+" bytes":1e6>a?decimalString(a/1e3)+" kb":1e9>a?decimalString(a/1e6)+" mb":"WAY TOO BIG DUDE"}function decimalString(a){var b=Math.floor(a);return b+"."+Math.round(10*(a-b))}function noop(){}function uploadImage(a){if(a.blob&&a.filename){a.username=a.username||"",a.success=a.success||noop,a.error=a.error||noop;var b=new FormData;b.append("username",a.username),b.append("filename",a.filename),b.append("qqfile",a.blob);var c=new XMLHttpRequest;c.open("POST","/cgi-bin/im/upload"),c.onload=function(){if(200==c.status){var b=JSON.parse(c.responseText);b.success?a.success(b):a.error(b)}else a.error({success:!1,error:c.status})},c.send(b)}}function add_frame(){var a=$("#framecount").int();2>a?add_single_frame():add_frames(a)}function add_single_frame(){var a=$("");a.html($("#frame-template").html()),a.attr("index",$("#frames div").length);var b=cc.clone().appendTo(a.find(".frame")[0]);b.canvas.className="fullsize",b.canvas.style.display="none";cc.clone().resize(frame_thumb_size,frame_thumb_size).appendTo(a.find(".frame")[0]);$("#frames").append(a)}function add_frames(a){rendering=!0;for(var b,c=old_t-start_t-pause_t,d=1e3*($("#frameinterval").float()||$("#framedelay").float()),e=0;a>e;e++)b=giveFrame(c),c+=d,shade(b,c),add_single_frame();rendering=!1}function remove_frame(){$(this).closest("div").remove()}function remove_all_frames(){$("#frames").empty()}function shuffle_frames(){var a=$("#frames div");$("#frames").empty().append(shuffle(a))}function reverse_frames(){var a=$("#frames div");$("#frames").empty().append(reverse(a))}function weave_frames(){var a=$("#frames div");$("#frames").empty().append(weave(a))}function sort_frames(){var a=$("#frames div"),b=a.map(function(a,b){return console.log(a,b),[[b.getAttribute("index"),b]]}).sort(function(a,b){return a[0]-b[0]}).map(function(a,b){return console.log(b),b[1]});$("#frames").empty().append(b)}function render(){if(!rendering){0==$("#frames canvas.fullsize").length&&add_frame(),rendering=!0,encoder.reset();var a=1e3*$("#framedelay").float()||100;$("#frames canvas.fullsize").each(function(){var b=cq(this.width,this.height).fillStyle($("#background").string()).fillRect(0,0,this.width,this.height).drawImage(this,0,0);encoder.addFrame(b.canvas,a)}),$("#pause,#render,#add-frame").disable(),$("#workspace").find("img").remove(),$("#rendered").show(),status("encoding");try{encoder.encode()}catch(b){throw $("#pause,#render,#add-frame").enable(),rendering=!1,status(b),b}$("#render").html("rendering")}}function get_filename(){var a=$("#url").val().replace(/^.*\//,"").replace(/\..*$/,"").replace(/[^-_ a-zA-Z0-9]/g,""),b=user.username,c=a+"-"+b+"-"+ +new Date+".gif";return c.replace(/ /g,"_").replace(/-+/g,"-")}function save(){if(lastGif){var a=get_filename(),b=dataUriToBlob(lastGif);saveAs(b,a)}}function saveJSON(a,b){for(var c=JSON.stringify(a),d=new ArrayBuffer(c.length),e=new Uint8Array(d),f=0;f
l;l++)for(var m=0;h>m;m++)q=4*(m*w+l),r=f[q],g=f[q+1],b=f[q+2],a=f[q+3],result=shader(l,m,d,i),f[q]=r,f[q+1]=g,f[q+2]=b,f[q+3]=a,w=j,h=k;cc.putImageData(e,0,0)}function shade_error_handling(c,d){if(!d||isNaN(d))throw Error("No time specified");if(!c||!c.ctx||!c.cloneData)throw Error("No frame specified");var e=c.ctx.getImageData(0,0,w,h),f=e.data,i=c.cloneData.data;try{for(var j=w,k=h,l=0;w>l;l++)for(var m=0;h>m;m++)q=4*(m*w+l),r=f[q],g=f[q+1],b=f[q+2],a=f[q+3],result=shader(l,m,d,i),f[q]=r,f[q+1]=g,f[q+2]=b,f[q+3]=a,w=j,h=k}catch(n){var o=(n.stack+"").split("\n");if("anonymous@"===o[0].substr(0,10)){var p=o[0].match(firefox_stack_regexp);p.length>1&&error_highlight.on(parseInt(p[1])-5)}else if(o.length>1){var p=o[1].match(chrome_stack_regexp);p&&p.length>1&&error_highlight.on(parseInt(p[1])-3)}throw Error("Shader execution error")}cc.putImageData(e,0,0),shade=shade_no_error_handling,error_highlight.off()}function drag_start(){dragging=!0,$(this).addClass("dragging")}function drag_stop(){dragging=!1,$(".dragging").removeClass("dragging")}function status(a){$(".status").html(a),console.log(a)}function quiet_status(a){$(".status").html(a)}function new_shader(){shader_id_root=null,run_shader({id:"",shader_id:"",image_url:$("#url").val(),script:"",name:""})}function run_shader(a){console.log(a),shader_id_root=a.shader_id,$("#persist-image:checked").length&&($("#url").val(a.image_url),load()),$("#shader").val(a.script),$("#shader-id").val(a.id),$("#shader-name").val(a.name||""),shader_build()}function load_shaders(a,b){var c=$("#shader-gallery").empty();for(var d in b){var e=display_shader(b[d]);c.append(e)}firsttime&&(firsttime=!1,run_shader(b[0]))}function display_shader(a){var b=$("").addClass("shader");b.data("shader",a),b.data("id",a.id);var c=shader_gallery_template;for(var d in a)c=c.replace("{"+d+"}",a[d]);return b.html(c),a.id&&b.data("id",a.id),b}function save_shader(){shader_id_root=shader_id_root||"";var a={script:$("#shader").val(),image_url:$("#url").val(),username:user.username,name:$("#shader-name").val()||"",shader_id:shader_id_root},b=make_thumbnail();status("saving.."),console.log(a),$.post("http://asdf.us/cgi-bin/im/shader/save",a,function(c){return console.log(c),data=JSON.parse(c),data.ERROR?(status("error saving shader"),alert(data.ERROR),!1):(status("uploading thumbnail"),shader_id_root||(shader_id_root=data.id),a.id=data.id,a.thumbnail_url="http://i.asdf.us/im/9a/chtiny3_1334529294_1334529329.gif",$shader=display_shader(a),$("#shader-gallery").prepend($shader),void save_thumbnail(data.id,b))})}function make_thumbnail(){return dataUriToBlob(cc.clone().resize(200,200).canvas.toDataURL("image/png"))}function save_thumbnail(a,b){if(a&&""!=a){b=b||make_thumbnail();var c=new FormData;c.append("id",a),c.append("qqfile",b),$.ajax({url:"http://asdf.us/cgi-bin/im/shader/thumbnail_upload",type:"POST",data:c,processData:!1,contentType:!1}).done(function(b){console.log(b),status("");var c=JSON.parse(b);c.success&&$(".shader[data-id="+a+"]").find("img").attr("src",c.url)})}}function init(){$("#url").change(load),$("#reset").click(reset),$("#pause").click(pause),$("#step-forward").click(step_forward),$(document).on("mousemove",function(a){mousex=a.pageX,mousey=a.pageY}),$("#toggle-shaders").click(function(){$("#header .form").hide(),$("#shader-api-form").show(),$(".bold").removeClass("bold"),$(this).addClass("bold")}).trigger("click"),$("#toggle-images").click(function(){$("#header .form").hide(),$("#gallery-form").show(),$(".bold").removeClass("bold"),$(this).addClass("bold"),asdf.fetched||$("#gallery-random").trigger("click")}),$(".toggle-off").click(function(){$("#header .form").hide(),$(".bold").removeClass("bold")}),$("#width").change(function(){w=abs(parseInt(this.value,10))||1,cc.canvas.width=w,cc.canvas.height=h}),$("#height").change(function(){h=abs(parseInt(this.value,10))||1,cc.canvas.width=w,cc.canvas.height=h}),$("#show-frame-controls").click(function(){$("#frame-controls").show(),$("#frame-hidden-controls").hide()}),$("#hide-frame-controls").click(function(){$("#frame-controls").hide(),$("#frame-hidden-controls").show()}),$("#reorder-frames").change(function(){var a=$(this).val();switch(console.log(a),a){case"weave-frames":weave_frames();break;case"shuffle-frames":shuffle_frames();break;case"reverse-frames":reverse_frames();break;case"sort-frames":sort_frames();break;default:return}render()}),load(),help.init(),user.init(),frame_editor.init(),shader_gallery.init(),gallery.init(choose),document.getElementById("shader").addEventListener("input",shader_build),requestAnimationFrame(animate)}!function(a,b){return"object"==typeof exports&&"object"==typeof module?b(exports):"function"==typeof define&&define.amd?define(["exports"],b):void b(a.acorn||(a.acorn={}))}(this,function(a){"use strict";function b(a){lb=a||{};for(var b in pb)Object.prototype.hasOwnProperty.call(lb,b)||(lb[b]=pb[b]);ob=lb.sourceFile||null}function c(a,b){var c=qb(mb,a);b+=" ("+c.line+":"+c.column+")";var d=new SyntaxError(b);throw d.pos=a,d.loc=c,d.raisedAt=rb,d}function d(a){function b(a){if(1==a.length)return c+="return str === "+JSON.stringify(a[0])+";";c+="switch(str){";for(var b=0;b
3){d.sort(function(a,b){return b.length-a.length}),c+="switch(str.length){";for(var e=0;erb&&10!==c&&13!==c&&8232!==c&&8233!==c;)++rb,c=mb.charCodeAt(rb);lb.onComment&&lb.onComment(!1,mb.slice(a+2,rb),a,rb,b,lb.locations&&new e)}function j(){for(;nb>rb;){var a=mb.charCodeAt(rb);if(32===a)++rb;else if(13===a){++rb;var b=mb.charCodeAt(rb);10===b&&++rb,lb.locations&&(++zb,Ab=rb)}else if(10===a||8232===a||8233===a)++rb,lb.locations&&(++zb,Ab=rb);else if(a>8&&14>a)++rb;else if(47===a){var b=mb.charCodeAt(rb+1);if(42===b)h();else{if(47!==b)break;i()}}else if(160===a)++rb;else{if(!(a>=5760&&Sc.test(String.fromCharCode(a))))break;++rb}}}function k(){var a=mb.charCodeAt(rb+1);return a>=48&&57>=a?y(!0):(++rb,g(uc))}function l(){var a=mb.charCodeAt(rb+1);return yb?(++rb,v()):61===a?u(yc,2):u(wc,1)}function m(){var a=mb.charCodeAt(rb+1);return 61===a?u(yc,2):u(Kc,1)}function n(a){var b=mb.charCodeAt(rb+1);return b===a?u(124===a?Bc:Cc,2):61===b?u(yc,2):u(124===a?Dc:Fc,1)}function o(){var a=mb.charCodeAt(rb+1);return 61===a?u(yc,2):u(Ec,1)}function p(a){var b=mb.charCodeAt(rb+1);return b===a?45==b&&62==mb.charCodeAt(rb+2)&&Xc.test(mb.slice(Cb,rb))?(rb+=3,i(),j(),t()):u(zc,2):61===b?u(yc,2):u(Jc,1)}function q(a){var b=mb.charCodeAt(rb+1),c=1;return b===a?(c=62===a&&62===mb.charCodeAt(rb+2)?3:2,61===mb.charCodeAt(rb+c)?u(yc,c+1):u(Ic,c)):33==b&&60==a&&45==mb.charCodeAt(rb+2)&&45==mb.charCodeAt(rb+3)?(rb+=4,i(),j(),t()):(61===b&&(c=61===mb.charCodeAt(rb+2)?3:2),u(Hc,c))}function r(a){var b=mb.charCodeAt(rb+1);return 61===b?u(Gc,61===mb.charCodeAt(rb+2)?3:2):u(61===a?xc:Ac,1)}function s(a){switch(a){case 46:return k();case 40:return++rb,g(pc);case 41:return++rb,g(qc);case 59:return++rb,g(sc);case 44:return++rb,g(rc);case 91:return++rb,g(lc);case 93:return++rb,g(mc);case 123:return++rb,g(nc);case 125:return++rb,g(oc);case 58:return++rb,g(tc);case 63:return++rb,g(vc);case 48:var b=mb.charCodeAt(rb+1);if(120===b||88===b)return x();case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return y(!1);case 34:case 39:return z(a);case 47:return l(a);case 37:case 42:return m();case 124:case 38:return n(a);case 94:return o();case 43:case 45:return p(a);case 60:case 62:return q(a);case 61:case 33:return r(a);case 126:return u(Ac,1)}return!1}function t(a){if(a?rb=sb+1:sb=rb,lb.locations&&(ub=new e),a)return v();if(rb>=nb)return g(Mb);var b=mb.charCodeAt(rb);if(Zc(b)||92===b)return C();var d=s(b);if(d===!1){var f=String.fromCharCode(b);if("\\"===f||Vc.test(f))return C();c(rb,"Unexpected character '"+f+"'")}return d}function u(a,b){var c=mb.slice(rb,rb+b);rb+=b,g(a,c)}function v(){for(var a,b,d="",e=rb;;){rb>=nb&&c(e,"Unterminated regular expression");var f=mb.charAt(rb);if(Xc.test(f)&&c(e,"Unterminated regular expression"),a)a=!1;else{if("["===f)b=!0;else if("]"===f&&b)b=!1;else if("/"===f&&!b)break;a="\\"===f}++rb}var d=mb.slice(e,rb);++rb;var h=B();h&&!/^[gmsiy]*$/.test(h)&&c(e,"Invalid regexp flag");try{var i=new RegExp(d,h)}catch(j){j instanceof SyntaxError&&c(e,j.message),c(j)}return g(Jb,i)}function w(a,b){for(var c=rb,d=0,e=0,f=null==b?1/0:b;f>e;++e){var g,h=mb.charCodeAt(rb);if(g=h>=97?h-97+10:h>=65?h-65+10:h>=48&&57>=h?h-48:1/0,g>=a)break;++rb,d=d*a+g}return rb===c||null!=b&&rb-c!==b?null:d}function x(){rb+=2;var a=w(16);return null==a&&c(sb+2,"Expected hexadecimal number"),Zc(mb.charCodeAt(rb))&&c(rb,"Identifier directly after number"),g(Ib,a)}function y(a){var b=rb,d=!1,e=48===mb.charCodeAt(rb);a||null!==w(10)||c(b,"Invalid number"),46===mb.charCodeAt(rb)&&(++rb,w(10),d=!0);var f=mb.charCodeAt(rb);(69===f||101===f)&&(f=mb.charCodeAt(++rb),(43===f||45===f)&&++rb,null===w(10)&&c(b,"Invalid number"),d=!0),Zc(mb.charCodeAt(rb))&&c(rb,"Identifier directly after number");var h,i=mb.slice(b,rb);return d?h=parseFloat(i):e&&1!==i.length?/[89]/.test(i)||Gb?c(b,"Invalid number"):h=parseInt(i,8):h=parseInt(i,10),g(Ib,h)}function z(a){rb++;for(var b="";;){rb>=nb&&c(sb,"Unterminated string constant");var d=mb.charCodeAt(rb);if(d===a)return++rb,g(Kb,b);if(92===d){d=mb.charCodeAt(++rb);var e=/^[0-7]+/.exec(mb.slice(rb,rb+3));for(e&&(e=e[0]);e&&parseInt(e,8)>255;)e=e.slice(0,-1);if("0"===e&&(e=null),++rb,e)Gb&&c(rb-2,"Octal literal in strict mode"),b+=String.fromCharCode(parseInt(e,8)),rb+=e.length-1;else switch(d){case 110:b+="\n";break;case 114:b+="\r";break;case 120:b+=String.fromCharCode(A(2));break;case 117:b+=String.fromCharCode(A(4));break;case 85:b+=String.fromCharCode(A(8));break;case 116:b+=" ";break;case 98:b+="\b";break;case 118:b+="";break;case 102:b+="\f";break;case 48:b+="\x00";break;case 13:10===mb.charCodeAt(rb)&&++rb;case 10:lb.locations&&(Ab=rb,++zb);break;default:b+=String.fromCharCode(d)}}else(13===d||10===d||8232===d||8233===d)&&c(sb,"Unterminated string constant"),b+=String.fromCharCode(d),++rb}}function A(a){var b=w(16,a);return null===b&&c(sb,"Bad character escape sequence"),b}function B(){Mc=!1;for(var a,b=!0,d=rb;;){var e=mb.charCodeAt(rb);if($c(e))Mc&&(a+=mb.charAt(rb)),++rb;else{if(92!==e)break;Mc||(a=mb.slice(d,rb)),Mc=!0,117!=mb.charCodeAt(++rb)&&c(rb,"Expecting Unicode escape sequence \\uXXXX"),++rb;var f=A(4),g=String.fromCharCode(f);g||c(rb-1,"Invalid Unicode escape"),(b?Zc(f):$c(f))||c(rb-4,"Invalid Unicode escape"),a+=g}b=!1}return Mc?a:mb.slice(d,rb)}function C(){var a=B(),b=Lb;return Mc||(Rc(a)?b=kc[a]:(lb.forbidReserved&&(3===lb.ecmaVersion?Nc:Oc)(a)||Gb&&Pc(a))&&c(sb,"The keyword '"+a+"' is reserved")),g(b,a)}function D(){Bb=sb,Cb=tb,Db=vb,t()}function E(a){if(Gb=a,rb=sb,lb.locations)for(;Ab>rb;)Ab=mb.lastIndexOf("\n",Ab-2)+1,--zb;j(),t()}function F(){this.type=null,this.start=sb,this.end=null}function G(){this.start=ub,this.end=null,null!==ob&&(this.source=ob)}function H(){var a=new F;return lb.locations&&(a.loc=new G),lb.directSourceFile&&(a.sourceFile=lb.directSourceFile),lb.ranges&&(a.range=[sb,0]),a}function I(a){var b=new F;return b.start=a.start,lb.locations&&(b.loc=new G,b.loc.start=a.loc.start),lb.ranges&&(b.range=[a.range[0],0]),b}function J(a,b){return a.type=b,a.end=Cb,lb.locations&&(a.loc.end=Db),lb.ranges&&(a.range[1]=Cb),a}function K(a){return lb.ecmaVersion>=5&&"ExpressionStatement"===a.type&&"Literal"===a.expression.type&&"use strict"===a.expression.value}function L(a){return wb===a?(D(),!0):void 0}function M(){return!lb.strictSemicolons&&(wb===Mb||wb===oc||Xc.test(mb.slice(Cb,sb)))}function N(){L(sc)||M()||P()}function O(a){wb===a?D():P()}function P(){c(sb,"Unexpected token")}function Q(a){"Identifier"!==a.type&&"MemberExpression"!==a.type&&c(a.start,"Assigning to rvalue"),Gb&&"Identifier"===a.type&&Qc(a.name)&&c(a.start,"Assigning to "+a.name+" in strict mode")}function R(a){Bb=Cb=rb,lb.locations&&(Db=new e),Eb=Gb=null,Fb=[],t();var b=a||H(),c=!0;for(a||(b.body=[]);wb!==Mb;){var d=S();b.body.push(d),c&&K(d)&&E(!0),c=!1}return J(b,"Program")}function S(){(wb===wc||wb===yc&&"/="==xb)&&t(!0);var a=wb,b=H();switch(a){case Nb:case Qb:D();var d=a===Nb;L(sc)||M()?b.label=null:wb!==Lb?P():(b.label=kb(),N());for(var e=0;eb){var e=I(a);e.left=a,e.operator=xb;var f=wb;D(),e.right=ab(bb(),d,c);var g=J(e,f===Bc||f===Cc?"LogicalExpression":"BinaryExpression");return ab(g,b,c)}return a}function bb(){if(wb.prefix){var a=H(),b=wb.isUpdate;return a.operator=xb,a.prefix=!0,yb=!0,D(),a.argument=bb(),b?Q(a.argument):Gb&&"delete"===a.operator&&"Identifier"===a.argument.type&&c(a.start,"Deleting local variable in strict mode"),J(a,b?"UpdateExpression":"UnaryExpression")}for(var d=cb();wb.postfix&&!M();){var a=I(d);a.operator=xb,a.prefix=!1,a.argument=d,Q(d),D(),d=J(a,"UpdateExpression")}return d}function cb(){return db(eb())}function db(a,b){if(L(uc)){var c=I(a);return c.object=a,c.property=kb(!0),c.computed=!1,db(J(c,"MemberExpression"),b)}if(L(lc)){var c=I(a);return c.object=a,c.property=Y(),c.computed=!0,O(mc),db(J(c,"MemberExpression"),b)}if(!b&&L(pc)){var c=I(a);return c.callee=a,c.arguments=jb(qc,!1),db(J(c,"CallExpression"),b)}return a}function eb(){switch(wb){case fc:var a=H();return D(),J(a,"ThisExpression");case Lb:return kb();case Ib:case Kb:case Jb:var a=H();return a.value=xb,a.raw=mb.slice(sb,tb),D(),J(a,"Literal");case gc:case hc:case ic:var a=H();return a.value=wb.atomValue,a.raw=wb.keyword,D(),J(a,"Literal");
+case pc:var b=ub,c=sb;D();var d=Y();return d.start=c,d.end=tb,lb.locations&&(d.loc.start=b,d.loc.end=vb),lb.ranges&&(d.range=[c,tb]),O(qc),d;case lc:var a=H();return D(),a.elements=jb(mc,!0,!0),J(a,"ArrayExpression");case nc:return gb();case Xb:var a=H();return D(),ib(a,!1);case ec:return fb();default:P()}}function fb(){var a=H();return D(),a.callee=db(eb(),!0),a.arguments=L(pc)?jb(qc,!1):Hb,J(a,"NewExpression")}function gb(){var a=H(),b=!0,d=!1;for(a.properties=[],D();!L(oc);){if(b)b=!1;else if(O(rc),lb.allowTrailingCommas&&L(oc))break;var e,f={key:hb()},g=!1;if(L(tc)?(f.value=Y(!0),e=f.kind="init"):lb.ecmaVersion>=5&&"Identifier"===f.key.type&&("get"===f.key.name||"set"===f.key.name)?(g=d=!0,e=f.kind=f.key.name,f.key=hb(),wb!==pc&&P(),f.value=ib(H(),!1)):P(),"Identifier"===f.key.type&&(Gb||d))for(var h=0;hg?a.id:a.params[g];if((Pc(h.name)||Qc(h.name))&&c(h.start,"Defining '"+h.name+"' in strict mode"),g>=0)for(var i=0;g>i;++i)h.name===a.params[i].name&&c(h.start,"Argument name clash in strict mode")}return J(a,b?"FunctionDeclaration":"FunctionExpression")}function jb(a,b,c){for(var d=[],e=!0;!L(a);){if(e)e=!1;else if(O(rc),b&&lb.allowTrailingCommas&&L(a))break;d.push(c&&wb===rc?null:Y(!0))}return d}function kb(a){var b=H();return b.name=wb===Lb?xb:a&&!lb.forbidReserved&&wb.keyword||P(),yb=!1,D(),J(b,"Identifier")}a.version="0.4.1";var lb,mb,nb,ob;a.parse=function(a,c){return mb=String(a),nb=mb.length,b(c),f(),R(lb.program)};var pb=a.defaultOptions={ecmaVersion:5,strictSemicolons:!1,allowTrailingCommas:!0,forbidReserved:!1,locations:!1,onComment:null,ranges:!1,program:null,sourceFile:null,directSourceFile:null},qb=a.getLineInfo=function(a,b){for(var c=1,d=0;;){Yc.lastIndex=d;var e=Yc.exec(a);if(!(e&&e.indexa?36===a:91>a?!0:97>a?95===a:123>a?!0:a>=170&&Vc.test(String.fromCharCode(a))},$c=a.isIdentifierChar=function(a){return 48>a?36===a:58>a?!0:65>a?!1:91>a?!0:97>a?95===a:123>a?!0:a>=170&&Wc.test(String.fromCharCode(a))},_c={kind:"loop"},ad={kind:"switch"}}),function(a,b,c,d){function e(d){if(!c[d]){if(!b[d]){if(a)return a(d);throw new Error("Cannot find module '"+d+"'")}var f=c[d]={exports:{}};b[d][0](function(a){var c=b[d][1][a];return e(c?c:a)},f,f.exports)}return c[d].exports}for(var f=0;f1){var g={};g[arguments[0]]=arguments[1]}else var g=arguments[0];for(var h in g){c=h.split(" ");var f=g[h];"function"==typeof f&&(f=[f]);for(var b=0;d=c[b];b++){if(d in e.listeners)a=e.listeners;else{if(!(d in e.globListeners))continue;a=e.globListeners}a[d]=a[d].filter(function(a){return-1===f.indexOf(a)})}}return e},i.proto.send=function(a){i.total[a]||(i.total[a]=0),i.total[a]+=1;var b,c,f,g=this.listeners,j=this.globListeners,k=d(a);if(arguments.length){var l=Array.prototype.splice.call(arguments,1);l.push(a)}else var l=[];for(var m=0;c=k[m];m++){var n={},o={};if(b=g[c])for(var p=0;f=b[p];p++)n[f.uid]=f,o[f.uid]=c;var q=c.split(":");for(var r in j){if("*"!==r){var s=h[r]||(h[r]=r.split(":"));if(!e(s,q))continue}b=j[r];for(var p=0;f=b[p];p++)n[f.uid]=f,o[f.uid]=c}var t=[];for(var f in n)t.push(n[f]);for(var f,p=0;f=t[p];p++)f.apply(f,l)}return this},b.exports=i},{"./object/setproto":7,"./string/tokenize":8,"./string/globber":9,"./uid":10,"./nexttick":11}],7:[function(a,b){var c=function(a,b){if(a.__proto__)a.__proto__=b;else for(var c in b)a[c]=b[c]};b.exports=c},{}],8:[function(a,b){var c=function(a,b){return a.trim().split(b||c.default)};c.default=/\s+/g,b.exports=c},{}],9:[function(a,b){var c=function(a,b){var d,e=a[0],f=a.slice(1),g=b.length;if("*"===e){for(var h=0;g>=h;++h)if(c(f,b.slice(h)))return!0;return!1}return d=e===b[0],d&&(!f.length&&!g||c(f,b.slice(1)))};b.exports=c},{}],10:[function(a,b){var c=function(){return c.counter++ +""};c.counter=1,b.exports=c},{}],11:[function(a,b){if(window.ActiveXObject||!window.postMessage)var c=function(a){setTimeout(a,0)};else{var d=[],e="next-tick-zero-timeout";window.addEventListener("message",function(a){a.source==window&&a.data==e&&(a.stopPropagation&&a.stopPropagation(),d.length&&d.shift()())},!0);var c=function(a){d.push(a),window.postMessage(e,"*")}}b.exports=c},{}],4:[function(a,b){var c=(a("./benchmark"),a("./object/setproto")),d=a("./object/extend"),e=a("./tube"),f=function(a,b){var d=e();return c(d,f.proto),b&&b.benchmark&&(d.benchmark=b.benchmark),d.src=a,d};f.proto={},d(f.proto,e.proto),f.proto.load=function(){var a=this,b=a.src;"string"==typeof b?a.loadFromUrl(b):b instanceof File?a.loadFromFile(b):b instanceof ArrayBuffer&&a("load",b)},f.proto.loadFromFile=function(a){var b=this,c=new FileReader;c.addEventListener("load",function(a){b.benchmark&&b.benchmark.stop("fetch-from-disk"),b("load",c.result,a)}),c.addEventListener("error",function(a){b("error",a,c)}),c.addEventListener("progress",function(a){b("progress",a)}),b.benchmark&&b.benchmark.start("fetch-from-disk"),c.readAsArrayBuffer(a)},f.proto.loadFromUrl=function(a){var b=this,c=new XMLHttpRequest;c.open("GET",a),c.responseType="arraybuffer",c.addEventListener("load",function(a){b.benchmark&&b.benchmark.stop("fetch-from-network"),b("load",c.response,a)}),c.addEventListener("error",function(a){b("error",a,c)}),c.addEventListener("progress",function(a){b("progress",a)}),b.benchmark&&b.benchmark.start("fetch-from-network"),c.send()},b.exports=f},{"./benchmark":2,"./object/setproto":7,"./object/extend":12,"./tube":3}],12:[function(a,b){b.exports=function(a,b){for(var c in b)a[c]=b[c];return a}},{}],5:[function(a,b){!function(){var c=a("./spec").blockSigs,d=a("./spec").extSigs,e=a("./palette"),f=a("./animate").makeCurrentFrame,g=a("../../binaryspec"),h=a("./spec").spec,i=g(h),j=function(a){k(a)},k=function(a,b){b=b||"header";for(var c=a.buf;"done"!==b&&"error"!==b;)if(b in l&&"function"==typeof l[b])b=l[b](a);else{var d=i.parts[b].byteSize;if(c.abuf.byteLengthe){i=!0;break}if(h=d[g],g+=1,0===h){j+=1;break}if(g+h>e){i=!0;break}b.push(g+h),g+=h,j+=h+1}return i?(console.log("out of data"),!1):(c.cursor+=j,a.benchmark&&a.benchmark.stop("read-subblocks"),{start:f,blockEnds:b})};b.exports=j}()},{"./spec":13,"./palette":14,"./animate":15,"../../binaryspec":16}],13:[function(a,b,c){var d={33:"extension",44:"imageDesc",59:"trailer"};c.blockSigs=d;var e={249:"graphicControl",254:"comment",1:"plainText",255:"applicationExtension"};c.extSigs=e;var f={header:["str[3] signature","str[3] version"],screenDesc:["u16 w","u16 h","bit paletteExists","bit[3] resolution ignore","bit sortFlag ignore","bit[3] paletteSize","u8 bgColorIndex","u8 aspectRatio ignore"],imageDesc:["u8 sig ignore","u16 x","u16 y","u16 w","u16 h","bit paletteExists","bit interlaced","bit sortFlag","bit[2] reserved ignore","bit[3] paletteSize"],applicationExtension:["u8 sig ignore","u8 extSig ignore","u8 blockSize ignore","str[8] identifier","str[3] authCode ignore"],graphicControl:["u8 sig ignore","u8 extSig ignore","u8 blockSize ignore","bit[3] reserved ignore","bit[3] disposalMethod","bit userInput ignore","bit transparentColor","u16 delay","u8 transparentIndex","u8 blockTerminator ignore"],comment:["u8 sig ignore","u8 extSig ignore"],plainText:["u8 sig ignore","u8 extSig ignore","u8 blockSize","u16 textGridLeft","u16 textGridTop","u16 textGridWidth","u16 textGridHeight","u8 charCellWidth","u8 charCellHeight","u8 fgColorIndex","u8 bgColorIndex"],imageData:["u8 lzwCodeSize"]};c.spec=f},{}],14:[function(a,b){!function(){var c=a("../../color/rgba2css"),d=(a("../../create/2d"),a("../../create/imagedata")),e={};e.binary2rgba=function(a){for(var b=new Uint8Array(a.byteLength/3*4),c=0,d=0,e=a.byteLength/3*4;e>d;d+=4)b[d]=a[c],b[d+1]=a[c+1],b[d+2]=a[c+2],b[d+3]=255,c+=3;return b},e.create=function(a){var b={0:0},e=["rgba(0,0,0,0)"],f=[[0,0,0,0]],g=function(a){for(var d=0,g=a.length;g>d;d+=4){var h=a[d+3];if(0!==h){var i=a[d],j=a[d+1],k=a[d+2],l=(i|j<<8|k<<16|h<<24).toString();if(!(l in b)){b[l]=f.length;var m=[i,j,k,h];f.push(m),e.push(c(m))}}}};"palette"in a&&g(a.palette);for(var h=0;hk;k+=4){var n=f[k/4];m[k]=n[0],m[k+1]=n[1],m[k+2]=n[2],m[k+3]=n[3]}return{rgba2Index:b,index2Rgba:f,index2Css:e,imagedata:j,length:f.length}},b.exports=e}()},{"../../color/rgba2css":17,"../../create/2d":18,"../../create/imagedata":19}],17:[function(a,b){var c=function(a){return"rgba("+a[0]+","+a[1]+","+a[2]+","+a[3]+")"};b.exports=c},{}],18:[function(a,b){var c=function(a,b){var c=document.createElement("canvas");return c.width=a||0,c.height=b||0,c.getContext("2d")};"undefined"!=typeof b&&(b.exports=c)},{}],19:[function(a,b){var c=function d(a,b){return d.ctx.createImageData(a,b)};c.ctx=document.createElement("canvas").getContext("2d"),"undefined"!=typeof b&&(b.exports=c)},{}],15:[function(a,b,c){var d=function(){var a=100;1===this.frames.length&&(this.currentFrame=function(){return 0});for(var b=0,c=[],d=0;d0?10*f.delay:a;b+=g,c.push(b)}this.currentFrame=e(c)},e=function(a){var b=a[a.length-1];return function(c){for(var d=(c||Date.now())%b,e=0;e1,m=b[j]*k;d.fields.push({name:g[1],type:j,ignore:h,bitSize:m,isArray:l}),e+=m}return d.bitSize=e,d.byteSize=e/8,d};e.proto.decodeBinaryFieldsToJSON=function(a,b,c){for(var e=this,f=e.parts[a],h={},i=f.fields.length,j=0,k=0;i>k;k++){var l=f.fields[k];if(!l.ignore){{var m=j%8,n=Math.floor((j-m)/8);n+Math.ceil(l.bitSize/8)}switch(l.type){case"u8":h[l.name]=c.u8[b+n];break;case"i8":h[l.name]=c.dv.getInt8(b+n);break;case"u16":h[l.name]=c.dv.getUint16(b+n,!0);break;case"i16":h[l.name]=c.dv.getInt16(b+n,!0);break;case"u32":h[l.name]=c.dv.getUint32(b+n,!0);break;case"i32":h[l.name]=c.dv.getInt32(b+n,!0);break;case"str":h[l.name]=g(c.abuf,b+n,l.bitSize>>3);break;case"bit":if(l.isArray){for(var o=new d(c.abuf,b+n),p=[],q=m;q>3],c=7&a;return b>>7-c&1},b.exports=c},{}],6:[function(a,b){var c=a("../../create/2d"),d=a("../../create/imagedata"),e=a("../../nexttick"),f=a("./decode-lzw"),g=function(a,b){b=b||{};var d=a.benchmark||!1,i=b.frameNum||0;if(0===i)for(var j=0;j=a.frames.length)return a.rendered=!0,void a.tube("rendered");var k=a.frames[i],l=a.buf.pixeldata;d&&d.start("decompress-lzw"),f(k.blockinfo,a.buf.u8,k.lzwCodeSize,k.w,k.h,l),d&&d.stop("decompress-lzw"),k.interlaced&&(d&&d.start("deinterlace"),l=m(l,k.w,k.h),d&&d.stop("deinterlace")),d&&d.start("pixeldata-to-canvas"),h(l,a,i),d&&d.stop("pixeldata-to-canvas");var n=g.bind(void 0,a,{frameNum:i+1});e(n)},h=function(a,b,c){var d=b.frames[c],e=d.ctx;if(0===c)return void e.putImageData(k(a,b,d),d.x,d.y,0,0,d.w,d.h);var f,g=c-1,h=b.frames[g],l=h.ctx.canvas;if((0===h.disposalMethod||1===h.disposalMethod)&&(f=i(b,c,a),e.drawImage(l,0,0),e.drawImage(f.canvas,0,0,d.w,d.h,d.x,d.y,d.w,d.h)),2===h.disposalMethod&&(0===h.x&&0===h.y&&h.w===b.w&&h.h===b.h?e.putImageData(j(b,c,a),d.x,d.y,0,0,d.w,d.h):(h.y>0&&e.drawImage(l,0,0,b.w,h.y,0,0,b.w,h.y),h.x>0&&e.drawImage(l,0,h.y,h.x,h.h,0,h.y,h.x,h.h),h.x+h.w0&&3===b.frames[g].disposalMethod;)g-=1;h=b.frames[g],3!=h.disposalMethod&&e.drawImage(h.ctx.canvas,0,0),f=i(b,c,a),e.drawImage(f.canvas,0,0,d.w,d.h,d.x,d.y,d.w,d.h)}},i=function(a,b,d){if(i.ctx&&i.ctx.canvas.width===a.w&&i.ctx.canvas.height===a.h)var e=i.ctx;else var e=i.ctx=c(a.w,a.h);var f=a.frames[b];d=d||f.pixelData;var g="palette"in f?f.palette:a.palette,h="transparentIndex"in f?f.transparentIndex:-1;h>-1&&(g[4*h+3]=0);var j=l(a,g,d,f.w,f.h,h);return e.putImageData(j,0,0,0,0,f.w,f.h),e},j=function(a,b,c){var d=a.frames[b];c=c||d.pixelData;var e="palette"in d?d.palette:a.palette,f="transparentIndex"in d?d.transparentIndex:-1;return f>-1&&(e[4*f+3]=0),l(a,e,c,d.w,d.h,f)},k=function(a,b,c){var d="palette"in c?c.palette:b.palette,e="transparentIndex"in c?c.transparentIndex:-1;return e>-1&&(d[4*e+3]=0),l(b,d,a,c.w,c.h,e)},l=function(a,b,c,e,f){if(l.imagedata&&l.imagedata.width===a.w&&l.imagedata.height===a.h)var g=l.imagedata;else var g=l.imagedata=d(a.w,a.h);for(var h=g.data,i=0,j=0;f>j;j++)for(var k=j*a.w,m=0;e>m;m++){var n=4*(m+k),o=4*c[i];h[n]=b[o],h[n+1]=b[o+1],h[n+2]=b[o+2],h[n+3]=b[o+3],i+=1}return g},m=function(a,b,c){for(var d=new Uint8Array(a.length),e=Math.ceil(c/8),f=Math.ceil(c/4),g=Math.ceil(c/2),h=0;c>h;h++){var i,j=b*h;i=h%8===0?b*(h/8):(h+4)%8===0?b*((h-4)/8+e):h%2===0?b*((h-2)/4+f):b*((h-1)/2+g);for(var k=0;b>k;k++)d[j+k]=a[i+k]}return d};b.exports=g},{"../../create/2d":18,"../../create/imagedata":19,"../../nexttick":11,"./decode-lzw":21}],21:[function(a,b){var c=function(a,b,c,d,e,f,g){var h,i,j,k=4096,l=-1,m=d*e,n=0,o=0,p=0,f=f||new Uint8Array(m),q=new Uint16Array(2*k),r=new Uint8Array(k),s=new Uint8Array(k+1),t=1<h;h++)q[h]=0,r[h]=h;for(var y=0,z=0,A=a.start,B=a.blockEnds,C=B.shift(),D=0;m>D;){if(0===o){if(w>y){z+=b[A]<>=w,y-=w,h>v&&console.log(":("),h===u){console.log("fuck");break}if(h===t){w=c+1,x=(1<t;)s[o++]=r[h],h=q[h];n=r[h],s[o++]=n,q[v]=j,r[v]=n,v++,0===(v&x)&&k>v&&(w++,x+=v),j=i}o--,f[p++]=g?g[s[o]]:s[o],D++}return f};b.exports=c},{}]},{},[1]);var nextTick=function(){if(window.ActiveXObject||!window.postMessage)var a=function(a){setTimeout(a,0)};else{var b=[],c="next-tick-zero-timeout";window.addEventListener("message",function(a){a.source==window&&a.data==c&&(a.stopPropagation&&a.stopPropagation(),b.length&&b.shift()())},!0);var a=function(a){b.push(a),window.postMessage(c,"*")}}return a}(),Uid=function(){var a=0;return function(){return a++ +""}}(),tokenize=function(){var a=function(b,c){return b.trim().split(c||a.default)};return a.default=/\s+/g,a}(),globber=function(a,b){var c,d=a[0],e=a.slice(1),f=b.length;if("*"===d){for(var g=0;f>=g;++g)if(globber(e,b.slice(g)))return!0;return!1}return c=d===b[0],c&&(!e.length&&!f||globber(e,b.slice(1)))},setproto=function(a,b){if(a.__proto__)a.__proto__=b;else for(var c in b)a[c]=b[c]},Tube=function(){var a={},b=function(a){if(a=a||{},a.queue)var c=function(){var a=arguments;return nextTick(function(){c.send.apply(c,a)}),c};else var c=function(){return c.send.apply(c,arguments),c};return setproto(c,b.proto),c.listeners={},c.globListeners={},c};return b.total={},b.proto={},b.proto.on=function(){var a=this;if("string"==typeof arguments[0]){var b={};b[arguments[0]]=arguments[1],arguments[2]||{}}else{var b=arguments[0];arguments[1]||{}}for(var c in b){var d=c.split(" "),e=b[c];Array.isArray(e)||(e=[e]);for(var f,g=0;f=e[g];g++)f.uid||(f.uid=Uid());for(var h,g=0;h=d[g];g++){var i=-1===h.indexOf("*")?a.listeners:a.globListeners;i[h]=h in i?i[h].concat(e):e.concat()}}return a},b.proto.off=function(){var a,b,c,d,e=this;if(0===arguments.length)return e.listeners={},e.globListeners={},e;if(1===arguments.length&&"string"==typeof arguments[0]){for(c=arguments[0].split(" "),b=0;d=c[b];b++)delete e.listeners[d],delete e.globListeners[d];return e}if("function"==typeof arguments[0]||Array.isArray(arguments[0])){var f="function"==typeof arguments[0]?[arguments[0]]:arguments[0];return e}if(arguments.length>1){var g={};g[arguments[0]]=arguments[1]}else var g=arguments[0];for(var h in g){c=h.split(" ");var f=g[h];"function"==typeof f&&(f=[f]);for(var b=0;d=c[b];b++){if(d in e.listeners)a=e.listeners;else{if(!(d in e.globListeners))continue;a=e.globListeners}a[d]=a[d].filter(function(a){return-1===f.indexOf(a)})}}return e},b.proto.send=function(c){b.total[c]||(b.total[c]=0),b.total[c]+=1;var d,e,f,g=this.listeners,h=this.globListeners,i=tokenize(c);if(arguments.length){var j=Array.prototype.splice.call(arguments,1);j.push(c)}else var j=[];for(var k=0;e=i[k];k++){var l={},m={};if(d=g[e])for(var n=0;f=d[n];n++)l[f.uid]=f,m[f.uid]=e;var o=e.split(":");for(var p in h){if("*"!==p){var q=a[p]||(a[p]=p.split(":"));if(!globber(q,o))continue}d=h[p];for(var n=0;f=d[n];n++)l[f.uid]=f,m[f.uid]=e}var r=[];for(var f in l)r.push(l[f]);for(var f,n=0;f=r[n];n++)f.apply(f,j)}return this},b}(),FRAMES_PER_GIF=36,FPS=12,DELAY=Math.floor(1e3/FPS),WORKERS=6,FRAMES_TO_QUANTIZE=4,DO_UPLOAD=!0,workerURL=URL.createObjectURL(new Blob(["(",function(){function a(a){var c=a.imageData,d=b(c.data),e=new NeuQuant(d,d.length,1),f=e.process();self.postMessage({task:"quantize",neuquant:e.save(),colortab:f})}function b(a){for(var b=[],c=0,d=0,e=a.length;e>c;d+=4)b[c++]=a[d],b[c++]=a[d+1],b[c++]=a[d+2];return b}function c(a){var b=a.frame_index,c=a.frame_length,d=a.height,e=a.width,f=a.imageData,g=a.delay,h=a.neuquant,i=a.colortab,j=new GIFEncoder;j.setRepeat(0),j.setQuality(1),j.setSize(e,d),j.setDelay(g),0==b?j.start():(j.cont(),j.setProperties(!0,!1)),j.setNeuquant(h,i),j.addFrame(f,!0),c==b&&j.finish(),self.postMessage({task:"encode",frame_index:b,frame_data:j.stream().getData()}),delete j,delete a}GIFEncoder=function(){function a(){this.bin=[]}for(var b=0,c={};256>b;b++)c[b]=String.fromCharCode(b);a.prototype.getData=function(){for(var a="",b=this.bin.length,d=0;b>d;d++)a+=c[this.bin[d]];return a},a.prototype.writeByte=function(a){this.bin.push(a)},a.prototype.writeUTFBytes=function(a){for(var b=a.length,c=0;b>c;c++)this.writeByte(a.charCodeAt(c))},a.prototype.writeBytes=function(a,b,c){for(var d=c||a.length,e=b||0;d>e;e++)this.writeByte(a[e])};var d,e,f,g,h,i,j,k,l,m={},n=null,o=-1,p=0,q=!1,r=new Array,s=7,t=-1,u=!1,v=!0,w=!1,x=1,y=null,z=(m.setDelay=function(a){p=Math.round(a/10)},m.setDispose=function(a){a>=0&&(t=a)},m.setRepeat=function(a){a>=0&&(o=a)},m.setTransparent=function(a){n=a},m.addFrame=function(a,b){if(null==a||!q||null==g)throw new Error("Please call start method before calling addFrame");var c=!0;try{b?h=a:(h=a.getImageData(0,0,a.canvas.width,a.canvas.height).data,w||A(a.canvas.width,a.canvas.height)),D(),B(),v&&(G(),I(),o>=0&&H()),E(),F(),v||I(),K(),v=!1}catch(d){c=!1}return c},m.finish=function(){if(!q)return!1;var a=!0;q=!1;try{g.writeByte(59)}catch(b){a=!1}return a},function(){f=0,h=null,i=null,j=null,l=null,u=!1,v=!0}),A=(m.setFrameRate=function(a){15!=a&&(p=Math.round(100/a))},m.setQuality=function(a){x=Math.max(1,a)},m.setSize=function(a,b){(!q||v)&&(d=a,e=b,1>d&&(d=320),1>e&&(e=240),w=!0)}),B=(m.setNeuquant=function(a,b){y=a,l=b},m.start=function(){z();var b=!0;u=!1,g=new a;try{g.writeUTFBytes("GIF89a")}catch(c){b=!1}return q=b},m.cont=function(){z();var b=!0;return u=!1,g=new a,q=b},function(){var a=i.length,b=a/3;j=[];var c;y&&l?(c=new NeuQuant,c.load(y)):(c=new NeuQuant(i,a,x),l=c.process());for(var d=0,e=0;b>e;e++){var g=c.map(255&i[d++],255&i[d++],255&i[d++]);r[g]=!0,j[e]=g}i=null,k=8,s=7,null!=n&&(f=C(n))}),C=function(a){if(null==l)return-1;for(var b=(16711680&a)>>16,c=(65280&a)>>8,d=255&a,e=0,f=16777216,g=l.length,h=0;g>h;){var i=b-(255&l[h++]),j=c-(255&l[h++]),k=d-(255&l[h]),m=i*i+j*j+k*k,n=h/3;r[n]&&f>m&&(f=m,e=n),h++}return e},D=function(){var a=d,b=e;i=[];for(var c=h,f=0,g=0;b>g;g++)for(var j=0;a>j;j++){var k=g*a*4+4*j;i[f++]=c[k],i[f++]=c[k+1],i[f++]=c[k+2]}},E=function(){g.writeByte(33),g.writeByte(249),g.writeByte(4);var a,b;null==n?(a=0,b=0):(a=1,b=2),t>=0&&(b=7&t),b<<=2,g.writeByte(0|b|0|a),J(p),g.writeByte(f),g.writeByte(0)},F=function(){g.writeByte(44),J(0),J(0),J(d),J(e),g.writeByte(v?0:128|s)},G=function(){J(d),J(e),g.writeByte(240|s),g.writeByte(0),g.writeByte(0)
+},H=function(){g.writeByte(33),g.writeByte(255),g.writeByte(11),g.writeUTFBytes("NETSCAPE2.0"),g.writeByte(3),g.writeByte(1),J(o),g.writeByte(0)},I=function(){g.writeBytes(l);for(var a=768-l.length,b=0;a>b;b++)g.writeByte(0)},J=function(a){g.writeByte(255&a),g.writeByte(a>>8&255)},K=function(){var a=new LZWEncoder(d,e,j,k);a.encode(g)};return m.stream=function(){return g},m.setProperties=function(a,b){q=a,v=b},m},LZWEncoder=function(){var a,b,c,d,e,f,g,h,i,j,k,l,m={},n=-1,o=12,p=5003,q=o,r=1<=254&&G(b)},D=function(a){E(u),v=j+2,w=!0,J(j,a)},E=function(a){for(var b=0;a>b;++b)s[b]=-1},F=m.compress=function(a,b){var c,d,e,f,m,o,p;for(i=a,w=!1,g=i,h=H(g),j=1<c;c*=2)++p;p=8-p,o=u,E(o),J(j,b);a:for(;(e=I())!=n;)if(c=(e<=0){m=o-d,0==d&&(m=1);do if((d-=m)<0&&(d+=o),s[d]==c){f=t[d];continue a}while(s[d]>=0)}J(f,b),f=e,r>v?(t[d]=v++,s[d]=c):D(b)}else f=t[d];J(f,b),J(k,b)},G=(m.encode=function(c){c.writeByte(d),e=a*b,f=0,F(d+1,c),c.writeByte(0)},function(a){l>0&&(a.writeByte(l),a.writeBytes(A,0,l),l=0)}),H=function(a){return(1<0?x|=a<=8;)C(255&x,b),x>>=8,y-=8;if((v>h||w)&&(w?(h=H(g=i),w=!1):(++g,h=g==q?r:H(g))),a==k){for(;y>0;)C(255&x,b),x>>=8,y-=8;G(b)}};return B.apply(this,arguments),m},NeuQuant=function(){var a,b,c,d,e,f={},g=128,h=499,i=491,j=487,k=503,l=3*k,m=g-1,n=4,o=100,p=16,q=1<>s,u=q<>3,w=6,x=1<i;i++)e[i]=new Array(4),j=e[i],j[0]=j[1]=j[2]=(i<c;c++)b[e[c][3]]=c;for(var d=0,f=0;g>f;f++){var h=b[f];a[d++]=e[h][0],a[d++]=e[h][1],a[d++]=e[h][2]}return a},M=function(){var a,b,c,d,f,h,i,j;for(i=0,j=0,a=0;g>a;a++){for(f=e[a],c=a,d=f[1],b=a+1;g>b;b++)h=e[b],h[1]>1,b=i+1;d>b;b++)G[b]=a;i=d,j=a}}for(G[i]=j+m>>1,b=i+1;256>b;b++)G[b]=m},N=function(){var e,f,g,m,p,q,r,s,t,u,v,x,A,C;for(l>c&&(d=1),a=30+(d-1)/3,x=b,A=0,C=c,v=c/(3*d),u=v/o,s=B,q=y,r=q>>w,1>=r&&(r=0),e=0;r>e;e++)J[e]=s*((r*r-e*e)*D/(r*r));for(t=l>c?3:c%h!=0?3*h:c%i!=0?3*i:c%j!=0?3*j:3*k,e=0;v>e;)if(g=(255&x[A+0])<=C&&(A-=c),e++,0==u&&(u=1),e%u==0)for(s-=s/a,q-=q/z,r=q>>w,1>=r&&(r=0),f=0;r>f;f++)J[f]=s*((r*r-f*f)*D/(r*r))},O=(f.save=function(){var a={netindex:G,netsize:g,network:e};return a},f.load=function(a){G=a.netindex,g=a.netsize,e=a.network},f.map=function(a,b,c){var d,f,h,i,j,k,l;for(j=1e3,l=-1,d=G[b],f=d-1;g>d||f>=0;)g>d&&(k=e[d],h=k[1]-b,h>=j?d=g:(d++,0>h&&(h=-h),i=k[0]-a,0>i&&(i=-i),h+=i,j>h&&(i=k[2]-c,0>i&&(i=-i),h+=i,j>h&&(j=h,l=k[3])))),f>=0&&(k=e[f],h=b-k[1],h>=j?f=-1:(f--,0>h&&(h=-h),i=k[0]-a,0>i&&(i=-i),h+=i,j>h&&(i=k[2]-c,0>i&&(i=-i),h+=i,j>h&&(j=h,l=k[3]))));return l},f.process=function(){return N(),O(),M(),L()},function(){var a;for(a=0;g>a;a++)e[a][0]>>=n,e[a][1]>>=n,e[a][2]>>=n,e[a][3]=a}),P=function(a,b,c,d,f){var h,i,j,k,l,m,n;for(j=b-a,-1>j&&(j=-1),k=b+a,k>g&&(k=g),h=b+1,i=b-1,m=1;k>h||i>j;){if(l=J[m++],k>h){n=e[h++];try{n[0]-=l*(n[0]-c)/F,n[1]-=l*(n[1]-d)/F,n[2]-=l*(n[2]-f)/F}catch(o){}}if(i>j){n=e[i--];try{n[0]-=l*(n[0]-c)/F,n[1]-=l*(n[1]-d)/F,n[2]-=l*(n[2]-f)/F}catch(o){}}}},Q=function(a,b,c,d,f){var g=e[b];g[0]-=a*(g[0]-c)/B,g[1]-=a*(g[1]-d)/B,g[2]-=a*(g[2]-f)/B},R=function(a,b,c){var d,f,h,i,j,k,l,m,o,q;for(m=~(1<<31),o=m,k=-1,l=k,d=0;g>d;d++)q=e[d],f=q[0]-a,0>f&&(f=-f),h=q[1]-b,0>h&&(h=-h),f+=h,h=q[2]-c,0>h&&(h=-h),f+=h,m>f&&(m=f,k=d),i=f-(H[d]>>p-n),o>i&&(o=i,l=d),j=I[d]>>s,I[d]-=j,H[d]+=j<0&&b-1 in a)}function d(a){var b=ob[a]={};return fb.each(a.match(hb)||[],function(a,c){b[c]=!0}),b}function e(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=fb.expando+Math.random()}function f(a,c,d){var e;if(d===b&&1===a.nodeType)if(e="data-"+c.replace(sb,"-$1").toLowerCase(),d=a.getAttribute(e),"string"==typeof d){try{d="true"===d?!0:"false"===d?!1:"null"===d?null:+d+""===d?+d:rb.test(d)?JSON.parse(d):d}catch(f){}pb.set(a,c,d)}else d=b;return d}function g(){return!0}function h(){return!1}function i(){try{return T.activeElement}catch(a){}}function j(a,b){for(;(a=a[b])&&1!==a.nodeType;);return a}function k(a,b,c){if(fb.isFunction(b))return fb.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return fb.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(Cb.test(b))return fb.filter(b,a,c);b=fb.filter(b,a)}return fb.grep(a,function(a){return bb.call(b,a)>=0!==c})}function l(a,b){return fb.nodeName(a,"table")&&fb.nodeName(1===b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function m(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function n(a){var b=Nb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function o(a,b){for(var c=a.length,d=0;c>d;d++)qb.set(a[d],"globalEval",!b||qb.get(b[d],"globalEval"))}function p(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(qb.hasData(a)&&(f=qb.access(a),g=qb.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;d>c;c++)fb.event.add(b,e,j[e][c])}pb.hasData(a)&&(h=pb.access(a),i=fb.extend({},h),pb.set(b,i))}}function q(a,c){var d=a.getElementsByTagName?a.getElementsByTagName(c||"*"):a.querySelectorAll?a.querySelectorAll(c||"*"):[];return c===b||c&&fb.nodeName(a,c)?fb.merge([a],d):d}function r(a,b){var c=b.nodeName.toLowerCase();"input"===c&&Kb.test(a.type)?b.checked=a.checked:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}function s(a,b){if(b in a)return b;for(var c=b.charAt(0).toUpperCase()+b.slice(1),d=b,e=_b.length;e--;)if(b=_b[e]+c,b in a)return b;return d}function t(a,b){return a=b||a,"none"===fb.css(a,"display")||!fb.contains(a.ownerDocument,a)}function u(b){return a.getComputedStyle(b,null)}function v(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=qb.get(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&t(d)&&(f[g]=qb.access(d,"olddisplay",z(d.nodeName)))):f[g]||(e=t(d),(c&&"none"!==c||!e)&&qb.set(d,"olddisplay",e?c:fb.css(d,"display"))));for(g=0;h>g;g++)d=a[g],d.style&&(b&&"none"!==d.style.display&&""!==d.style.display||(d.style.display=b?f[g]||"":"none"));return a}function w(a,b,c){var d=Ub.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function x(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;4>f;f+=2)"margin"===c&&(g+=fb.css(a,c+$b[f],!0,e)),d?("content"===c&&(g-=fb.css(a,"padding"+$b[f],!0,e)),"margin"!==c&&(g-=fb.css(a,"border"+$b[f]+"Width",!0,e))):(g+=fb.css(a,"padding"+$b[f],!0,e),"padding"!==c&&(g+=fb.css(a,"border"+$b[f]+"Width",!0,e)));return g}function y(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=u(a),g=fb.support.boxSizing&&"border-box"===fb.css(a,"boxSizing",!1,f);if(0>=e||null==e){if(e=Qb(a,b,f),(0>e||null==e)&&(e=a.style[b]),Vb.test(e))return e;d=g&&(fb.support.boxSizingReliable||e===a.style[b]),e=parseFloat(e)||0}return e+x(a,b,c||(g?"border":"content"),d,f)+"px"}function z(a){var b=T,c=Xb[a];return c||(c=A(a,b),"none"!==c&&c||(Rb=(Rb||fb("").css("cssText","display:block !important")).appendTo(b.documentElement),b=(Rb[0].contentWindow||Rb[0].contentDocument).document,b.write(""),b.close(),c=A(a,b),Rb.detach()),Xb[a]=c),c}function A(a,b){var c=fb(b.createElement(a)).appendTo(b.body),d=fb.css(c[0],"display");return c.remove(),d}function B(a,b,c,d){var e;if(fb.isArray(b))fb.each(b,function(b,e){c||bc.test(a)?d(a,e):B(a+"["+("object"==typeof e?b:"")+"]",e,c,d)});else if(c||"object"!==fb.type(b))d(a,b);else for(e in b)B(a+"["+e+"]",b[e],c,d)}function C(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(hb)||[];if(fb.isFunction(c))for(;d=f[e++];)"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function D(a,c,d,e){function f(i){var j;return g[i]=!0,fb.each(a[i]||[],function(a,i){var k=i(c,d,e);return"string"!=typeof k||h||g[k]?h?!(j=k):b:(c.dataTypes.unshift(k),f(k),!1)}),j}var g={},h=a===sc;return f(c.dataTypes[0])||!g["*"]&&f("*")}function E(a,c){var d,e,f=fb.ajaxSettings.flatOptions||{};for(d in c)c[d]!==b&&((f[d]?a:e||(e={}))[d]=c[d]);return e&&fb.extend(!0,a,e),a}function F(a,c,d){for(var e,f,g,h,i=a.contents,j=a.dataTypes;"*"===j[0];)j.shift(),e===b&&(e=a.mimeType||c.getResponseHeader("Content-Type"));if(e)for(f in i)if(i[f]&&i[f].test(e)){j.unshift(f);break}if(j[0]in d)g=j[0];else{for(f in d){if(!j[0]||a.converters[f+" "+j[0]]){g=f;break}h||(h=f)}g=g||h}return g?(g!==j[0]&&j.unshift(g),d[g]):b}function G(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];for(f=k.shift();f;)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}function H(){return setTimeout(function(){Bc=b}),Bc=fb.now()}function I(a,b,c){for(var d,e=(Hc[b]||[]).concat(Hc["*"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function J(a,b,c){var d,e,f=0,g=Gc.length,h=fb.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=Bc||H(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;i>g;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),1>f&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:fb.extend({},b),opts:fb.extend(!0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:Bc||H(),duration:c.duration,tweens:[],createTween:function(b,c){var d=fb.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;d>c;c++)j.tweens[c].run(1);return b?h.resolveWith(a,[j,b]):h.rejectWith(a,[j,b]),this}}),k=j.props;for(K(k,j.opts.specialEasing);g>f;f++)if(d=Gc[f].call(j,a,k,j.opts))return d;return fb.map(k,I,j),fb.isFunction(j.opts.start)&&j.opts.start.call(a,j),fb.fx.timer(fb.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}function K(a,b){var c,d,e,f,g;for(c in a)if(d=fb.camelCase(c),e=b[d],f=a[c],fb.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=fb.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function L(a,c,d){var e,f,g,h,i,j,k=this,l={},m=a.style,n=a.nodeType&&t(a),o=qb.get(a,"fxshow");d.queue||(i=fb._queueHooks(a,"fx"),null==i.unqueued&&(i.unqueued=0,j=i.empty.fire,i.empty.fire=function(){i.unqueued||j()}),i.unqueued++,k.always(function(){k.always(function(){i.unqueued--,fb.queue(a,"fx").length||i.empty.fire()})})),1===a.nodeType&&("height"in c||"width"in c)&&(d.overflow=[m.overflow,m.overflowX,m.overflowY],"inline"===fb.css(a,"display")&&"none"===fb.css(a,"float")&&(m.display="inline-block")),d.overflow&&(m.overflow="hidden",k.always(function(){m.overflow=d.overflow[0],m.overflowX=d.overflow[1],m.overflowY=d.overflow[2]}));for(e in c)if(f=c[e],Dc.exec(f)){if(delete c[e],g=g||"toggle"===f,f===(n?"hide":"show")){if("show"!==f||!o||o[e]===b)continue;n=!0}l[e]=o&&o[e]||fb.style(a,e)}if(!fb.isEmptyObject(l)){o?"hidden"in o&&(n=o.hidden):o=qb.access(a,"fxshow",{}),g&&(o.hidden=!n),n?fb(a).show():k.done(function(){fb(a).hide()}),k.done(function(){var b;qb.remove(a,"fxshow");for(b in l)fb.style(a,b,l[b])});for(e in l)h=I(n?o[e]:0,e,k),e in o||(o[e]=h.start,n&&(h.end=h.start,h.start="width"===e||"height"===e?1:0))}}function M(a,b,c,d,e){return new M.prototype.init(a,b,c,d,e)}function N(a,b){var c,d={height:a},e=0;for(b=b?1:0;4>e;e+=2-b)c=$b[e],d["margin"+c]=d["padding"+c]=a;return b&&(d.opacity=d.width=a),d}function O(a){return fb.isWindow(a)?a:9===a.nodeType&&a.defaultView}var P,Q,R=typeof b,S=a.location,T=a.document,U=T.documentElement,V=a.jQuery,W=a.$,X={},Y=[],Z="2.0.3",$=Y.concat,_=Y.push,ab=Y.slice,bb=Y.indexOf,cb=X.toString,db=X.hasOwnProperty,eb=Z.trim,fb=function(a,b){return new fb.fn.init(a,b,P)},gb=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,hb=/\S+/g,ib=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,jb=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,kb=/^-ms-/,lb=/-([\da-z])/gi,mb=function(a,b){return b.toUpperCase()},nb=function(){T.removeEventListener("DOMContentLoaded",nb,!1),a.removeEventListener("load",nb,!1),fb.ready()};fb.fn=fb.prototype={jquery:Z,constructor:fb,init:function(a,c,d){var e,f;if(!a)return this;if("string"==typeof a){if(e="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:ib.exec(a),!e||!e[1]&&c)return!c||c.jquery?(c||d).find(a):this.constructor(c).find(a);if(e[1]){if(c=c instanceof fb?c[0]:c,fb.merge(this,fb.parseHTML(e[1],c&&c.nodeType?c.ownerDocument||c:T,!0)),jb.test(e[1])&&fb.isPlainObject(c))for(e in c)fb.isFunction(this[e])?this[e](c[e]):this.attr(e,c[e]);return this}return f=T.getElementById(e[2]),f&&f.parentNode&&(this.length=1,this[0]=f),this.context=T,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):fb.isFunction(a)?d.ready(a):(a.selector!==b&&(this.selector=a.selector,this.context=a.context),fb.makeArray(a,this))},selector:"",length:0,toArray:function(){return ab.call(this)},get:function(a){return null==a?this.toArray():0>a?this[this.length+a]:this[a]},pushStack:function(a){var b=fb.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return fb.each(this,a,b)},ready:function(a){return fb.ready.promise().done(a),this},slice:function(){return this.pushStack(ab.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},map:function(a){return this.pushStack(fb.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:_,sort:[].sort,splice:[].splice},fb.fn.init.prototype=fb.fn,fb.extend=fb.fn.extend=function(){var a,c,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;for("boolean"==typeof h&&(k=h,h=arguments[1]||{},i=2),"object"==typeof h||fb.isFunction(h)||(h={}),j===i&&(h=this,--i);j>i;i++)if(null!=(a=arguments[i]))for(c in a)d=h[c],e=a[c],h!==e&&(k&&e&&(fb.isPlainObject(e)||(f=fb.isArray(e)))?(f?(f=!1,g=d&&fb.isArray(d)?d:[]):g=d&&fb.isPlainObject(d)?d:{},h[c]=fb.extend(k,g,e)):e!==b&&(h[c]=e));return h},fb.extend({expando:"jQuery"+(Z+Math.random()).replace(/\D/g,""),noConflict:function(b){return a.$===fb&&(a.$=W),b&&a.jQuery===fb&&(a.jQuery=V),fb},isReady:!1,readyWait:1,holdReady:function(a){a?fb.readyWait++:fb.ready(!0)},ready:function(a){(a===!0?--fb.readyWait:fb.isReady)||(fb.isReady=!0,a!==!0&&--fb.readyWait>0||(Q.resolveWith(T,[fb]),fb.fn.trigger&&fb(T).trigger("ready").off("ready")))},isFunction:function(a){return"function"===fb.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?X[cb.call(a)]||"object":typeof a},isPlainObject:function(a){if("object"!==fb.type(a)||a.nodeType||fb.isWindow(a))return!1;try{if(a.constructor&&!db.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(b){return!1}return!0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},error:function(a){throw Error(a)},parseHTML:function(a,b,c){if(!a||"string"!=typeof a)return null;"boolean"==typeof b&&(c=b,b=!1),b=b||T;var d=jb.exec(a),e=!c&&[];return d?[b.createElement(d[1])]:(d=fb.buildFragment([a],b,e),e&&fb(e).remove(),fb.merge([],d.childNodes))},parseJSON:JSON.parse,parseXML:function(a){var c,d;if(!a||"string"!=typeof a)return null;try{d=new DOMParser,c=d.parseFromString(a,"text/xml")}catch(e){c=b}return(!c||c.getElementsByTagName("parsererror").length)&&fb.error("Invalid XML: "+a),c},noop:function(){},globalEval:function(a){var b,c=eval;a=fb.trim(a),a&&(1===a.indexOf("use strict")?(b=T.createElement("script"),b.text=a,T.head.appendChild(b).parentNode.removeChild(b)):c(a))},camelCase:function(a){return a.replace(kb,"ms-").replace(lb,mb)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,d){var e,f=0,g=a.length,h=c(a);if(d){if(h)for(;g>f&&(e=b.apply(a[f],d),e!==!1);f++);else for(f in a)if(e=b.apply(a[f],d),e===!1)break}else if(h)for(;g>f&&(e=b.call(a[f],f,a[f]),e!==!1);f++);else for(f in a)if(e=b.call(a[f],f,a[f]),e===!1)break;return a},trim:function(a){return null==a?"":eb.call(a)},makeArray:function(a,b){var d=b||[];return null!=a&&(c(Object(a))?fb.merge(d,"string"==typeof a?[a]:a):_.call(d,a)),d},inArray:function(a,b,c){return null==b?-1:bb.call(b,a,c)},merge:function(a,c){var d=c.length,e=a.length,f=0;if("number"==typeof d)for(;d>f;f++)a[e++]=c[f];else for(;c[f]!==b;)a[e++]=c[f++];return a.length=e,a},grep:function(a,b,c){var d,e=[],f=0,g=a.length;for(c=!!c;g>f;f++)d=!!b(a[f],f),c!==d&&e.push(a[f]);return e},map:function(a,b,d){var e,f=0,g=a.length,h=c(a),i=[];if(h)for(;g>f;f++)e=b(a[f],f,d),null!=e&&(i[i.length]=e);else for(f in a)e=b(a[f],f,d),null!=e&&(i[i.length]=e);return $.apply([],i)},guid:1,proxy:function(a,c){var d,e,f;return"string"==typeof c&&(d=a[c],c=a,a=d),fb.isFunction(a)?(e=ab.call(arguments,2),f=function(){return a.apply(c||this,e.concat(ab.call(arguments)))},f.guid=a.guid=a.guid||fb.guid++,f):b},access:function(a,c,d,e,f,g,h){var i=0,j=a.length,k=null==d;if("object"===fb.type(d)){f=!0;for(i in d)fb.access(a,c,i,d[i],!0,g,h)}else if(e!==b&&(f=!0,fb.isFunction(e)||(h=!0),k&&(h?(c.call(a,e),c=null):(k=c,c=function(a,b,c){return k.call(fb(a),c)})),c))for(;j>i;i++)c(a[i],d,h?e:e.call(a[i],i,c(a[i],d)));return f?a:k?c.call(a):j?c(a[0],d):g},now:Date.now,swap:function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e}}),fb.ready.promise=function(b){return Q||(Q=fb.Deferred(),"complete"===T.readyState?setTimeout(fb.ready):(T.addEventListener("DOMContentLoaded",nb,!1),a.addEventListener("load",nb,!1))),Q.promise(b)},fb.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){X["[object "+b+"]"]=b.toLowerCase()}),P=fb(T),function(a,b){function c(a,b,c,d){var e,f,g,h,i,j,k,l,o,p;if((b?b.ownerDocument||b:O)!==G&&F(b),b=b||G,c=c||[],!a||"string"!=typeof a)return c;if(1!==(h=b.nodeType)&&9!==h)return[];if(I&&!d){if(e=tb.exec(a))if(g=e[1]){if(9===h){if(f=b.getElementById(g),!f||!f.parentNode)return c;if(f.id===g)return c.push(f),c}else if(b.ownerDocument&&(f=b.ownerDocument.getElementById(g))&&M(b,f)&&f.id===g)return c.push(f),c}else{if(e[2])return ab.apply(c,b.getElementsByTagName(a)),c;if((g=e[3])&&x.getElementsByClassName&&b.getElementsByClassName)return ab.apply(c,b.getElementsByClassName(g)),c}if(x.qsa&&(!J||!J.test(a))){if(l=k=N,o=b,p=9===h&&a,1===h&&"object"!==b.nodeName.toLowerCase()){for(j=m(a),(k=b.getAttribute("id"))?l=k.replace(wb,"\\$&"):b.setAttribute("id",l),l="[id='"+l+"'] ",i=j.length;i--;)j[i]=l+n(j[i]);o=nb.test(a)&&b.parentNode||b,p=j.join(",")}if(p)try{return ab.apply(c,o.querySelectorAll(p)),c}catch(q){}finally{k||b.removeAttribute("id")}}}return v(a.replace(kb,"$1"),b,c,d)}function d(){function a(c,d){return b.push(c+=" ")>z.cacheLength&&delete a[b.shift()],a[c]=d}var b=[];return a}function e(a){return a[N]=!0,a}function f(a){var b=G.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function g(a,b){for(var c=a.split("|"),d=a.length;d--;)z.attrHandle[c[d]]=b}function h(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||X)-(~a.sourceIndex||X);if(d)return d;if(c)for(;c=c.nextSibling;)if(c===b)return-1;return a?1:-1}function i(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function j(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function k(a){return e(function(b){return b=+b,e(function(c,d){for(var e,f=a([],c.length,b),g=f.length;g--;)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function l(){}function m(a,b){var d,e,f,g,h,i,j,k=S[a+" "];if(k)return b?0:k.slice(0);for(h=a,i=[],j=z.preFilter;h;){(!d||(e=lb.exec(h)))&&(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),d=!1,(e=mb.exec(h))&&(d=e.shift(),f.push({value:d,type:e[0].replace(kb," ")}),h=h.slice(d.length));for(g in z.filter)!(e=rb[g].exec(h))||j[g]&&!(e=j[g](e))||(d=e.shift(),f.push({value:d,type:g,matches:e}),h=h.slice(d.length));if(!d)break}return b?h.length:h?c.error(a):S(a,i).slice(0)}function n(a){for(var b=0,c=a.length,d="";c>b;b++)d+=a[b].value;return d}function o(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=Q++;return b.first?function(b,c,f){for(;b=b[d];)if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j,k=P+" "+f;if(g){for(;b=b[d];)if((1===b.nodeType||e)&&a(b,c,g))return!0}else for(;b=b[d];)if(1===b.nodeType||e)if(j=b[N]||(b[N]={}),(i=j[d])&&i[0]===k){if((h=i[1])===!0||h===y)return h===!0}else if(i=j[d]=[k],i[1]=a(b,c,g)||y,i[1]===!0)return!0}}function p(a){return a.length>1?function(b,c,d){for(var e=a.length;e--;)if(!a[e](b,c,d))return!1;return!0}:a[0]}function q(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function r(a,b,c,d,f,g){return d&&!d[N]&&(d=r(d)),f&&!f[N]&&(f=r(f,g)),e(function(e,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=e||u(b||"*",h.nodeType?[h]:h,[]),r=!a||!e&&b?p:q(p,m,a,h,i),s=c?f||(e?a:o||d)?[]:g:r;if(c&&c(r,s,h,i),d)for(j=q(s,n),d(j,[],h,i),k=j.length;k--;)(l=j[k])&&(s[n[k]]=!(r[n[k]]=l));if(e){if(f||a){if(f){for(j=[],k=s.length;k--;)(l=s[k])&&j.push(r[k]=l);f(null,s=[],j,i)}for(k=s.length;k--;)(l=s[k])&&(j=f?cb.call(e,l):m[k])>-1&&(e[j]=!(g[j]=l))}}else s=q(s===g?s.splice(o,s.length):s),f?f(null,g,s,i):ab.apply(g,s)})}function s(a){for(var b,c,d,e=a.length,f=z.relative[a[0].type],g=f||z.relative[" "],h=f?1:0,i=o(function(a){return a===b},g,!0),j=o(function(a){return cb.call(b,a)>-1},g,!0),k=[function(a,c,d){return!f&&(d||c!==D)||((b=c).nodeType?i(a,c,d):j(a,c,d))}];e>h;h++)if(c=z.relative[a[h].type])k=[o(p(k),c)];else{if(c=z.filter[a[h].type].apply(null,a[h].matches),c[N]){for(d=++h;e>d&&!z.relative[a[d].type];d++);return r(h>1&&p(k),h>1&&n(a.slice(0,h-1).concat({value:" "===a[h-2].type?"*":""})).replace(kb,"$1"),c,d>h&&s(a.slice(h,d)),e>d&&s(a=a.slice(d)),e>d&&n(a))}k.push(c)}return p(k)}function t(a,b){var d=0,f=b.length>0,g=a.length>0,h=function(e,h,i,j,k){var l,m,n,o=[],p=0,r="0",s=e&&[],t=null!=k,u=D,v=e||g&&z.find.TAG("*",k&&h.parentNode||h),w=P+=null==u?1:Math.random()||.1;for(t&&(D=h!==G&&h,y=d);null!=(l=v[r]);r++){if(g&&l){for(m=0;n=a[m++];)if(n(l,h,i)){j.push(l);break}t&&(P=w,y=++d)}f&&((l=!n&&l)&&p--,e&&s.push(l))}if(p+=r,f&&r!==p){for(m=0;n=b[m++];)n(s,o,h,i);if(e){if(p>0)for(;r--;)s[r]||o[r]||(o[r]=$.call(j));o=q(o)}ab.apply(j,o),t&&!e&&o.length>0&&p+b.length>1&&c.uniqueSort(j)}return t&&(P=w,D=u),s};return f?e(h):h}function u(a,b,d){for(var e=0,f=b.length;f>e;e++)c(a,b[e],d);return d}function v(a,b,c,d){var e,f,g,h,i,j=m(a);if(!d&&1===j.length){if(f=j[0]=j[0].slice(0),f.length>2&&"ID"===(g=f[0]).type&&x.getById&&9===b.nodeType&&I&&z.relative[f[1].type]){if(b=(z.find.ID(g.matches[0].replace(xb,yb),b)||[])[0],!b)return c;a=a.slice(f.shift().value.length)}for(e=rb.needsContext.test(a)?0:f.length;e--&&(g=f[e],!z.relative[h=g.type]);)if((i=z.find[h])&&(d=i(g.matches[0].replace(xb,yb),nb.test(f[0].type)&&b.parentNode||b))){if(f.splice(e,1),a=d.length&&n(f),!a)return ab.apply(c,d),c;break}}return C(a,j)(d,b,!I,c,nb.test(a)),c}var w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N="sizzle"+-new Date,O=a.document,P=0,Q=0,R=d(),S=d(),T=d(),U=!1,V=function(a,b){return a===b?(U=!0,0):0},W=typeof b,X=1<<31,Y={}.hasOwnProperty,Z=[],$=Z.pop,_=Z.push,ab=Z.push,bb=Z.slice,cb=Z.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},db="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",eb="[\\x20\\t\\r\\n\\f]",gb="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",hb=gb.replace("w","w#"),ib="\\["+eb+"*("+gb+")"+eb+"*(?:([*^$|!~]?=)"+eb+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+hb+")|)|)"+eb+"*\\]",jb=":("+gb+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+ib.replace(3,8)+")*)|.*)\\)|)",kb=RegExp("^"+eb+"+|((?:^|[^\\\\])(?:\\\\.)*)"+eb+"+$","g"),lb=RegExp("^"+eb+"*,"+eb+"*"),mb=RegExp("^"+eb+"*([>+~]|"+eb+")"+eb+"*"),nb=RegExp(eb+"*[+~]"),ob=RegExp("="+eb+"*([^\\]'\"]*)"+eb+"*\\]","g"),pb=RegExp(jb),qb=RegExp("^"+hb+"$"),rb={ID:RegExp("^#("+gb+")"),CLASS:RegExp("^\\.("+gb+")"),TAG:RegExp("^("+gb.replace("w","w*")+")"),ATTR:RegExp("^"+ib),PSEUDO:RegExp("^"+jb),CHILD:RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+eb+"*(even|odd|(([+-]|)(\\d*)n|)"+eb+"*(?:([+-]|)"+eb+"*(\\d+)|))"+eb+"*\\)|)","i"),bool:RegExp("^(?:"+db+")$","i"),needsContext:RegExp("^"+eb+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+eb+"*((?:-\\d)?\\d*)"+eb+"*\\)|)(?=[^-]|$)","i")},sb=/^[^{]+\{\s*\[native \w/,tb=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ub=/^(?:input|select|textarea|button)$/i,vb=/^h\d$/i,wb=/'|\\/g,xb=RegExp("\\\\([\\da-f]{1,6}"+eb+"?|("+eb+")|.)","ig"),yb=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(55296|d>>10,56320|1023&d)};try{ab.apply(Z=bb.call(O.childNodes),O.childNodes),Z[O.childNodes.length].nodeType}catch(zb){ab={apply:Z.length?function(a,b){_.apply(a,bb.call(b))}:function(a,b){for(var c=a.length,d=0;a[c++]=b[d++];);a.length=c-1}}}B=c.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},x=c.support={},F=c.setDocument=function(a){var c=a?a.ownerDocument||a:O,d=c.defaultView;return c!==G&&9===c.nodeType&&c.documentElement?(G=c,H=c.documentElement,I=!B(c),d&&d.attachEvent&&d!==d.top&&d.attachEvent("onbeforeunload",function(){F()}),x.attributes=f(function(a){return a.className="i",!a.getAttribute("className")}),x.getElementsByTagName=f(function(a){return a.appendChild(c.createComment("")),!a.getElementsByTagName("*").length}),x.getElementsByClassName=f(function(a){return a.innerHTML="",a.firstChild.className="i",2===a.getElementsByClassName("i").length}),x.getById=f(function(a){return H.appendChild(a).id=N,!c.getElementsByName||!c.getElementsByName(N).length}),x.getById?(z.find.ID=function(a,b){if(typeof b.getElementById!==W&&I){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},z.filter.ID=function(a){var b=a.replace(xb,yb);return function(a){return a.getAttribute("id")===b}}):(delete z.find.ID,z.filter.ID=function(a){var b=a.replace(xb,yb);return function(a){var c=typeof a.getAttributeNode!==W&&a.getAttributeNode("id");return c&&c.value===b}}),z.find.TAG=x.getElementsByTagName?function(a,c){return typeof c.getElementsByTagName!==W?c.getElementsByTagName(a):b}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){for(;c=f[e++];)1===c.nodeType&&d.push(c);return d}return f},z.find.CLASS=x.getElementsByClassName&&function(a,c){return typeof c.getElementsByClassName!==W&&I?c.getElementsByClassName(a):b},K=[],J=[],(x.qsa=sb.test(c.querySelectorAll))&&(f(function(a){a.innerHTML="",a.querySelectorAll("[selected]").length||J.push("\\["+eb+"*(?:value|"+db+")"),a.querySelectorAll(":checked").length||J.push(":checked")}),f(function(a){var b=c.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("t",""),a.querySelectorAll("[t^='']").length&&J.push("[*^$]="+eb+"*(?:''|\"\")"),a.querySelectorAll(":enabled").length||J.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),J.push(",.*:")})),(x.matchesSelector=sb.test(L=H.webkitMatchesSelector||H.mozMatchesSelector||H.oMatchesSelector||H.msMatchesSelector))&&f(function(a){x.disconnectedMatch=L.call(a,"div"),L.call(a,"[s!='']:x"),K.push("!=",jb)}),J=J.length&&RegExp(J.join("|")),K=K.length&&RegExp(K.join("|")),M=sb.test(H.contains)||H.compareDocumentPosition?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)for(;b=b.parentNode;)if(b===a)return!0;return!1},V=H.compareDocumentPosition?function(a,b){if(a===b)return U=!0,0;var d=b.compareDocumentPosition&&a.compareDocumentPosition&&a.compareDocumentPosition(b);return d?1&d||!x.sortDetached&&b.compareDocumentPosition(a)===d?a===c||M(O,a)?-1:b===c||M(O,b)?1:E?cb.call(E,a)-cb.call(E,b):0:4&d?-1:1:a.compareDocumentPosition?-1:1}:function(a,b){var d,e=0,f=a.parentNode,g=b.parentNode,i=[a],j=[b];if(a===b)return U=!0,0;if(!f||!g)return a===c?-1:b===c?1:f?-1:g?1:E?cb.call(E,a)-cb.call(E,b):0;if(f===g)return h(a,b);for(d=a;d=d.parentNode;)i.unshift(d);for(d=b;d=d.parentNode;)j.unshift(d);for(;i[e]===j[e];)e++;return e?h(i[e],j[e]):i[e]===O?-1:j[e]===O?1:0},c):G},c.matches=function(a,b){return c(a,null,null,b)},c.matchesSelector=function(a,b){if((a.ownerDocument||a)!==G&&F(a),b=b.replace(ob,"='$1']"),!(!x.matchesSelector||!I||K&&K.test(b)||J&&J.test(b)))try{var d=L.call(a,b);if(d||x.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return c(b,G,null,[a]).length>0},c.contains=function(a,b){return(a.ownerDocument||a)!==G&&F(a),M(a,b)},c.attr=function(a,c){(a.ownerDocument||a)!==G&&F(a);var d=z.attrHandle[c.toLowerCase()],e=d&&Y.call(z.attrHandle,c.toLowerCase())?d(a,c,!I):b;return e===b?x.attributes||!I?a.getAttribute(c):(e=a.getAttributeNode(c))&&e.specified?e.value:null:e},c.error=function(a){throw Error("Syntax error, unrecognized expression: "+a)},c.uniqueSort=function(a){var b,c=[],d=0,e=0;if(U=!x.detectDuplicates,E=!x.sortStable&&a.slice(0),a.sort(V),U){for(;b=a[e++];)b===a[e]&&(d=c.push(e));for(;d--;)a.splice(c[d],1)}return a},A=c.getText=function(a){var b,c="",d=0,e=a.nodeType;if(e){if(1===e||9===e||11===e){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=A(a)}else if(3===e||4===e)return a.nodeValue}else for(;b=a[d];d++)c+=A(b);return c},z=c.selectors={cacheLength:50,createPseudo:e,match:rb,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(xb,yb),a[3]=(a[4]||a[5]||"").replace(xb,yb),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||c.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&c.error(a[0]),a
+},PSEUDO:function(a){var c,d=!a[5]&&a[2];return rb.CHILD.test(a[0])?null:(a[3]&&a[4]!==b?a[2]=a[4]:d&&pb.test(d)&&(c=m(d,!0))&&(c=d.indexOf(")",d.length-c)-d.length)&&(a[0]=a[0].slice(0,c),a[2]=d.slice(0,c)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(xb,yb).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=R[a+" "];return b||(b=RegExp("(^|"+eb+")"+a+"("+eb+"|$)"))&&R(a,function(a){return b.test("string"==typeof a.className&&a.className||typeof a.getAttribute!==W&&a.getAttribute("class")||"")})},ATTR:function(a,b,d){return function(e){var f=c.attr(e,a);return null==f?"!="===b:b?(f+="","="===b?f===d:"!="===b?f!==d:"^="===b?d&&0===f.indexOf(d):"*="===b?d&&f.indexOf(d)>-1:"$="===b?d&&f.slice(-d.length)===d:"~="===b?(" "+f+" ").indexOf(d)>-1:"|="===b?f===d||f.slice(0,d.length+1)===d+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){for(;p;){for(l=b;l=l[p];)if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){for(k=q[N]||(q[N]={}),j=k[a]||[],n=j[0]===P&&j[1],m=j[0]===P&&j[2],l=n&&q.childNodes[n];l=++n&&l&&l[p]||(m=n=0)||o.pop();)if(1===l.nodeType&&++m&&l===b){k[a]=[P,n,m];break}}else if(s&&(j=(b[N]||(b[N]={}))[a])&&j[0]===P)m=j[1];else for(;(l=++n&&l&&l[p]||(m=n=0)||o.pop())&&((h?l.nodeName.toLowerCase()!==r:1!==l.nodeType)||!++m||(s&&((l[N]||(l[N]={}))[a]=[P,m]),l!==b)););return m-=e,m===d||0===m%d&&m/d>=0}}},PSEUDO:function(a,b){var d,f=z.pseudos[a]||z.setFilters[a.toLowerCase()]||c.error("unsupported pseudo: "+a);return f[N]?f(b):f.length>1?(d=[a,a,"",b],z.setFilters.hasOwnProperty(a.toLowerCase())?e(function(a,c){for(var d,e=f(a,b),g=e.length;g--;)d=cb.call(a,e[g]),a[d]=!(c[d]=e[g])}):function(a){return f(a,0,d)}):f}},pseudos:{not:e(function(a){var b=[],c=[],d=C(a.replace(kb,"$1"));return d[N]?e(function(a,b,c,e){for(var f,g=d(a,null,e,[]),h=a.length;h--;)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),!c.pop()}}),has:e(function(a){return function(b){return c(a,b).length>0}}),contains:e(function(a){return function(b){return(b.textContent||b.innerText||A(b)).indexOf(a)>-1}}),lang:e(function(a){return qb.test(a||"")||c.error("unsupported lang: "+a),a=a.replace(xb,yb).toLowerCase(),function(b){var c;do if(c=I?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===H},focus:function(a){return a===G.activeElement&&(!G.hasFocus||G.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeName>"@"||3===a.nodeType||4===a.nodeType)return!1;return!0},parent:function(a){return!z.pseudos.empty(a)},header:function(a){return vb.test(a.nodeName)},input:function(a){return ub.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||b.toLowerCase()===a.type)},first:k(function(){return[0]}),last:k(function(a,b){return[b-1]}),eq:k(function(a,b,c){return[0>c?c+b:c]}),even:k(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:k(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:k(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:k(function(a,b,c){for(var d=0>c?c+b:c;b>++d;)a.push(d);return a})}},z.pseudos.nth=z.pseudos.eq;for(w in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})z.pseudos[w]=i(w);for(w in{submit:!0,reset:!0})z.pseudos[w]=j(w);l.prototype=z.filters=z.pseudos,z.setFilters=new l,C=c.compile=function(a,b){var c,d=[],e=[],f=T[a+" "];if(!f){for(b||(b=m(a)),c=b.length;c--;)f=s(b[c]),f[N]?d.push(f):e.push(f);f=T(a,t(e,d))}return f},x.sortStable=N.split("").sort(V).join("")===N,x.detectDuplicates=U,F(),x.sortDetached=f(function(a){return 1&a.compareDocumentPosition(G.createElement("div"))}),f(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||g("type|href|height|width",function(a,c,d){return d?b:a.getAttribute(c,"type"===c.toLowerCase()?1:2)}),x.attributes&&f(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||g("value",function(a,c,d){return d||"input"!==a.nodeName.toLowerCase()?b:a.defaultValue}),f(function(a){return null==a.getAttribute("disabled")})||g(db,function(a,c,d){var e;return d?b:(e=a.getAttributeNode(c))&&e.specified?e.value:a[c]===!0?c.toLowerCase():null}),fb.find=c,fb.expr=c.selectors,fb.expr[":"]=fb.expr.pseudos,fb.unique=c.uniqueSort,fb.text=c.getText,fb.isXMLDoc=c.isXML,fb.contains=c.contains}(a);var ob={};fb.Callbacks=function(a){a="string"==typeof a?ob[a]||d(a):fb.extend({},a);var c,e,f,g,h,i,j=[],k=!a.once&&[],l=function(b){for(c=a.memory&&b,e=!0,i=g||0,g=0,h=j.length,f=!0;j&&h>i;i++)if(j[i].apply(b[0],b[1])===!1&&a.stopOnFalse){c=!1;break}f=!1,j&&(k?k.length&&l(k.shift()):c?j=[]:m.disable())},m={add:function(){if(j){var b=j.length;!function d(b){fb.each(b,function(b,c){var e=fb.type(c);"function"===e?a.unique&&m.has(c)||j.push(c):c&&c.length&&"string"!==e&&d(c)})}(arguments),f?h=j.length:c&&(g=b,l(c))}return this},remove:function(){return j&&fb.each(arguments,function(a,b){for(var c;(c=fb.inArray(b,j,c))>-1;)j.splice(c,1),f&&(h>=c&&h--,i>=c&&i--)}),this},has:function(a){return a?fb.inArray(a,j)>-1:!(!j||!j.length)},empty:function(){return j=[],h=0,this},disable:function(){return j=k=c=b,this},disabled:function(){return!j},lock:function(){return k=b,c||m.disable(),this},locked:function(){return!k},fireWith:function(a,b){return!j||e&&!k||(b=b||[],b=[a,b.slice?b.slice():b],f?k.push(b):l(b)),this},fire:function(){return m.fireWith(this,arguments),this},fired:function(){return!!e}};return m},fb.extend({Deferred:function(a){var b=[["resolve","done",fb.Callbacks("once memory"),"resolved"],["reject","fail",fb.Callbacks("once memory"),"rejected"],["notify","progress",fb.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return fb.Deferred(function(c){fb.each(b,function(b,f){var g=f[0],h=fb.isFunction(a[b])&&a[b];e[f[1]](function(){var a=h&&h.apply(this,arguments);a&&fb.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[g+"With"](this===d?c.promise():this,h?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?fb.extend(a,d):d}},e={};return d.pipe=d.then,fb.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b,c,d,e=0,f=ab.call(arguments),g=f.length,h=1!==g||a&&fb.isFunction(a.promise)?g:0,i=1===h?a:fb.Deferred(),j=function(a,c,d){return function(e){c[a]=this,d[a]=arguments.length>1?ab.call(arguments):e,d===b?i.notifyWith(c,d):--h||i.resolveWith(c,d)}};if(g>1)for(b=Array(g),c=Array(g),d=Array(g);g>e;e++)f[e]&&fb.isFunction(f[e].promise)?f[e].promise().done(j(e,d,f)).fail(i.reject).progress(j(e,c,b)):--h;return h||i.resolveWith(d,f),i.promise()}}),fb.support=function(b){var c=T.createElement("input"),d=T.createDocumentFragment(),e=T.createElement("div"),f=T.createElement("select"),g=f.appendChild(T.createElement("option"));return c.type?(c.type="checkbox",b.checkOn=""!==c.value,b.optSelected=g.selected,b.reliableMarginRight=!0,b.boxSizingReliable=!0,b.pixelPosition=!1,c.checked=!0,b.noCloneChecked=c.cloneNode(!0).checked,f.disabled=!0,b.optDisabled=!g.disabled,c=T.createElement("input"),c.value="t",c.type="radio",b.radioValue="t"===c.value,c.setAttribute("checked","t"),c.setAttribute("name","t"),d.appendChild(c),b.checkClone=d.cloneNode(!0).cloneNode(!0).lastChild.checked,b.focusinBubbles="onfocusin"in a,e.style.backgroundClip="content-box",e.cloneNode(!0).style.backgroundClip="",b.clearCloneStyle="content-box"===e.style.backgroundClip,fb(function(){var c,d,f="padding:0;margin:0;border:0;display:block;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box",g=T.getElementsByTagName("body")[0];g&&(c=T.createElement("div"),c.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",g.appendChild(c).appendChild(e),e.innerHTML="",e.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%",fb.swap(g,null!=g.style.zoom?{zoom:1}:{},function(){b.boxSizing=4===e.offsetWidth}),a.getComputedStyle&&(b.pixelPosition="1%"!==(a.getComputedStyle(e,null)||{}).top,b.boxSizingReliable="4px"===(a.getComputedStyle(e,null)||{width:"4px"}).width,d=e.appendChild(T.createElement("div")),d.style.cssText=e.style.cssText=f,d.style.marginRight=d.style.width="0",e.style.width="1px",b.reliableMarginRight=!parseFloat((a.getComputedStyle(d,null)||{}).marginRight)),g.removeChild(c))}),b):b}({});var pb,qb,rb=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,sb=/([A-Z])/g;e.uid=1,e.accepts=function(a){return a.nodeType?1===a.nodeType||9===a.nodeType:!0},e.prototype={key:function(a){if(!e.accepts(a))return 0;var b={},c=a[this.expando];if(!c){c=e.uid++;try{b[this.expando]={value:c},Object.defineProperties(a,b)}catch(d){b[this.expando]=c,fb.extend(a,b)}}return this.cache[c]||(this.cache[c]={}),c},set:function(a,b,c){var d,e=this.key(a),f=this.cache[e];if("string"==typeof b)f[b]=c;else if(fb.isEmptyObject(f))fb.extend(this.cache[e],b);else for(d in b)f[d]=b[d];return f},get:function(a,c){var d=this.cache[this.key(a)];return c===b?d:d[c]},access:function(a,c,d){var e;return c===b||c&&"string"==typeof c&&d===b?(e=this.get(a,c),e!==b?e:this.get(a,fb.camelCase(c))):(this.set(a,c,d),d!==b?d:c)},remove:function(a,c){var d,e,f,g=this.key(a),h=this.cache[g];if(c===b)this.cache[g]={};else{fb.isArray(c)?e=c.concat(c.map(fb.camelCase)):(f=fb.camelCase(c),c in h?e=[c,f]:(e=f,e=e in h?[e]:e.match(hb)||[])),d=e.length;for(;d--;)delete h[e[d]]}},hasData:function(a){return!fb.isEmptyObject(this.cache[a[this.expando]]||{})},discard:function(a){a[this.expando]&&delete this.cache[a[this.expando]]}},pb=new e,qb=new e,fb.extend({acceptData:e.accepts,hasData:function(a){return pb.hasData(a)||qb.hasData(a)},data:function(a,b,c){return pb.access(a,b,c)},removeData:function(a,b){pb.remove(a,b)},_data:function(a,b,c){return qb.access(a,b,c)},_removeData:function(a,b){qb.remove(a,b)}}),fb.fn.extend({data:function(a,c){var d,e,g=this[0],h=0,i=null;if(a===b){if(this.length&&(i=pb.get(g),1===g.nodeType&&!qb.get(g,"hasDataAttrs"))){for(d=g.attributes;d.length>h;h++)e=d[h].name,0===e.indexOf("data-")&&(e=fb.camelCase(e.slice(5)),f(g,e,i[e]));qb.set(g,"hasDataAttrs",!0)}return i}return"object"==typeof a?this.each(function(){pb.set(this,a)}):fb.access(this,function(c){var d,e=fb.camelCase(a);if(g&&c===b){if(d=pb.get(g,a),d!==b)return d;if(d=pb.get(g,e),d!==b)return d;if(d=f(g,e,b),d!==b)return d}else this.each(function(){var d=pb.get(this,e);pb.set(this,e,c),-1!==a.indexOf("-")&&d!==b&&pb.set(this,a,c)})},null,c,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){pb.remove(this,a)})}}),fb.extend({queue:function(a,c,d){var e;return a?(c=(c||"fx")+"queue",e=qb.get(a,c),d&&(!e||fb.isArray(d)?e=qb.access(a,c,fb.makeArray(d)):e.push(d)),e||[]):b},dequeue:function(a,b){b=b||"fx";var c=fb.queue(a,b),d=c.length,e=c.shift(),f=fb._queueHooks(a,b),g=function(){fb.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return qb.get(a,c)||qb.access(a,c,{empty:fb.Callbacks("once memory").add(function(){qb.remove(a,[b+"queue",c])})})}}),fb.fn.extend({queue:function(a,c){var d=2;return"string"!=typeof a&&(c=a,a="fx",d--),d>arguments.length?fb.queue(this[0],a):c===b?this:this.each(function(){var b=fb.queue(this,a,c);fb._queueHooks(this,a),"fx"===a&&"inprogress"!==b[0]&&fb.dequeue(this,a)})},dequeue:function(a){return this.each(function(){fb.dequeue(this,a)})},delay:function(a,b){return a=fb.fx?fb.fx.speeds[a]||a:a,b=b||"fx",this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,c){var d,e=1,f=fb.Deferred(),g=this,h=this.length,i=function(){--e||f.resolveWith(g,[g])};for("string"!=typeof a&&(c=a,a=b),a=a||"fx";h--;)d=qb.get(g[h],a+"queueHooks"),d&&d.empty&&(e++,d.empty.add(i));return i(),f.promise(c)}});var tb,ub,vb=/[\t\r\n\f]/g,wb=/\r/g,xb=/^(?:input|select|textarea|button)$/i;fb.fn.extend({attr:function(a,b){return fb.access(this,fb.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){fb.removeAttr(this,a)})},prop:function(a,b){return fb.access(this,fb.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[fb.propFix[a]||a]})},addClass:function(a){var b,c,d,e,f,g=0,h=this.length,i="string"==typeof a&&a;if(fb.isFunction(a))return this.each(function(b){fb(this).addClass(a.call(this,b,this.className))});if(i)for(b=(a||"").match(hb)||[];h>g;g++)if(c=this[g],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(vb," "):" ")){for(f=0;e=b[f++];)0>d.indexOf(" "+e+" ")&&(d+=e+" ");c.className=fb.trim(d)}return this},removeClass:function(a){var b,c,d,e,f,g=0,h=this.length,i=0===arguments.length||"string"==typeof a&&a;if(fb.isFunction(a))return this.each(function(b){fb(this).removeClass(a.call(this,b,this.className))});if(i)for(b=(a||"").match(hb)||[];h>g;g++)if(c=this[g],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(vb," "):"")){for(f=0;e=b[f++];)for(;d.indexOf(" "+e+" ")>=0;)d=d.replace(" "+e+" "," ");c.className=a?fb.trim(d):""}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):this.each(fb.isFunction(a)?function(c){fb(this).toggleClass(a.call(this,c,this.className,b),b)}:function(){if("string"===c)for(var b,d=0,e=fb(this),f=a.match(hb)||[];b=f[d++];)e.hasClass(b)?e.removeClass(b):e.addClass(b);else(c===R||"boolean"===c)&&(this.className&&qb.set(this,"__className__",this.className),this.className=this.className||a===!1?"":qb.get(this,"__className__")||"")})},hasClass:function(a){for(var b=" "+a+" ",c=0,d=this.length;d>c;c++)if(1===this[c].nodeType&&(" "+this[c].className+" ").replace(vb," ").indexOf(b)>=0)return!0;return!1},val:function(a){var c,d,e,f=this[0];return arguments.length?(e=fb.isFunction(a),this.each(function(d){var f;1===this.nodeType&&(f=e?a.call(this,d,fb(this).val()):a,null==f?f="":"number"==typeof f?f+="":fb.isArray(f)&&(f=fb.map(f,function(a){return null==a?"":a+""})),c=fb.valHooks[this.type]||fb.valHooks[this.nodeName.toLowerCase()],c&&"set"in c&&c.set(this,f,"value")!==b||(this.value=f))})):f?(c=fb.valHooks[f.type]||fb.valHooks[f.nodeName.toLowerCase()],c&&"get"in c&&(d=c.get(f,"value"))!==b?d:(d=f.value,"string"==typeof d?d.replace(wb,""):null==d?"":d)):void 0}}),fb.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type||0>e,g=f?null:[],h=f?e+1:d.length,i=0>e?h:f?e:0;h>i;i++)if(c=d[i],!(!c.selected&&i!==e||(fb.support.optDisabled?c.disabled:null!==c.getAttribute("disabled"))||c.parentNode.disabled&&fb.nodeName(c.parentNode,"optgroup"))){if(b=fb(c).val(),f)return b;g.push(b)}return g},set:function(a,b){for(var c,d,e=a.options,f=fb.makeArray(b),g=e.length;g--;)d=e[g],(d.selected=fb.inArray(fb(d).val(),f)>=0)&&(c=!0);return c||(a.selectedIndex=-1),f}}},attr:function(a,c,d){var e,f,g=a.nodeType;return a&&3!==g&&8!==g&&2!==g?typeof a.getAttribute===R?fb.prop(a,c,d):(1===g&&fb.isXMLDoc(a)||(c=c.toLowerCase(),e=fb.attrHooks[c]||(fb.expr.match.bool.test(c)?ub:tb)),d===b?e&&"get"in e&&null!==(f=e.get(a,c))?f:(f=fb.find.attr(a,c),null==f?b:f):null!==d?e&&"set"in e&&(f=e.set(a,d,c))!==b?f:(a.setAttribute(c,d+""),d):(fb.removeAttr(a,c),b)):void 0},removeAttr:function(a,b){var c,d,e=0,f=b&&b.match(hb);if(f&&1===a.nodeType)for(;c=f[e++];)d=fb.propFix[c]||c,fb.expr.match.bool.test(c)&&(a[d]=!1),a.removeAttribute(c)},attrHooks:{type:{set:function(a,b){if(!fb.support.radioValue&&"radio"===b&&fb.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}},propFix:{"for":"htmlFor","class":"className"},prop:function(a,c,d){var e,f,g,h=a.nodeType;return a&&3!==h&&8!==h&&2!==h?(g=1!==h||!fb.isXMLDoc(a),g&&(c=fb.propFix[c]||c,f=fb.propHooks[c]),d!==b?f&&"set"in f&&(e=f.set(a,d,c))!==b?e:a[c]=d:f&&"get"in f&&null!==(e=f.get(a,c))?e:a[c]):void 0},propHooks:{tabIndex:{get:function(a){return a.hasAttribute("tabindex")||xb.test(a.nodeName)||a.href?a.tabIndex:-1}}}}),ub={set:function(a,b,c){return b===!1?fb.removeAttr(a,c):a.setAttribute(c,c),c}},fb.each(fb.expr.match.bool.source.match(/\w+/g),function(a,c){var d=fb.expr.attrHandle[c]||fb.find.attr;fb.expr.attrHandle[c]=function(a,c,e){var f=fb.expr.attrHandle[c],g=e?b:(fb.expr.attrHandle[c]=b)!=d(a,c,e)?c.toLowerCase():null;return fb.expr.attrHandle[c]=f,g}}),fb.support.optSelected||(fb.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null}}),fb.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){fb.propFix[this.toLowerCase()]=this}),fb.each(["radio","checkbox"],function(){fb.valHooks[this]={set:function(a,c){return fb.isArray(c)?a.checked=fb.inArray(fb(a).val(),c)>=0:b}},fb.support.checkOn||(fb.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var yb=/^key/,zb=/^(?:mouse|contextmenu)|click/,Ab=/^(?:focusinfocus|focusoutblur)$/,Bb=/^([^.]*)(?:\.(.+)|)$/;fb.event={global:{},add:function(a,c,d,e,f){var g,h,i,j,k,l,m,n,o,p,q,r=qb.get(a);if(r){for(d.handler&&(g=d,d=g.handler,f=g.selector),d.guid||(d.guid=fb.guid++),(j=r.events)||(j=r.events={}),(h=r.handle)||(h=r.handle=function(a){return typeof fb===R||a&&fb.event.triggered===a.type?b:fb.event.dispatch.apply(h.elem,arguments)},h.elem=a),c=(c||"").match(hb)||[""],k=c.length;k--;)i=Bb.exec(c[k])||[],o=q=i[1],p=(i[2]||"").split(".").sort(),o&&(m=fb.event.special[o]||{},o=(f?m.delegateType:m.bindType)||o,m=fb.event.special[o]||{},l=fb.extend({type:o,origType:q,data:e,handler:d,guid:d.guid,selector:f,needsContext:f&&fb.expr.match.needsContext.test(f),namespace:p.join(".")},g),(n=j[o])||(n=j[o]=[],n.delegateCount=0,m.setup&&m.setup.call(a,e,p,h)!==!1||a.addEventListener&&a.addEventListener(o,h,!1)),m.add&&(m.add.call(a,l),l.handler.guid||(l.handler.guid=d.guid)),f?n.splice(n.delegateCount++,0,l):n.push(l),fb.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=qb.hasData(a)&&qb.get(a);if(q&&(i=q.events)){for(b=(b||"").match(hb)||[""],j=b.length;j--;)if(h=Bb.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n){for(l=fb.event.special[n]||{},n=(d?l.delegateType:l.bindType)||n,m=i[n]||[],h=h[2]&&RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;f--;)k=m[f],!e&&p!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,o,q.handle)!==!1||fb.removeEvent(a,n,q.handle),delete i[n])}else for(n in i)fb.event.remove(a,n+b[j],c,d,!0);fb.isEmptyObject(i)&&(delete q.handle,qb.remove(a,"events"))}},trigger:function(c,d,e,f){var g,h,i,j,k,l,m,n=[e||T],o=db.call(c,"type")?c.type:c,p=db.call(c,"namespace")?c.namespace.split("."):[];if(h=i=e=e||T,3!==e.nodeType&&8!==e.nodeType&&!Ab.test(o+fb.event.triggered)&&(o.indexOf(".")>=0&&(p=o.split("."),o=p.shift(),p.sort()),k=0>o.indexOf(":")&&"on"+o,c=c[fb.expando]?c:new fb.Event(o,"object"==typeof c&&c),c.isTrigger=f?2:3,c.namespace=p.join("."),c.namespace_re=c.namespace?RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,c.result=b,c.target||(c.target=e),d=null==d?[c]:fb.makeArray(d,[c]),m=fb.event.special[o]||{},f||!m.trigger||m.trigger.apply(e,d)!==!1)){if(!f&&!m.noBubble&&!fb.isWindow(e)){for(j=m.delegateType||o,Ab.test(j+o)||(h=h.parentNode);h;h=h.parentNode)n.push(h),i=h;i===(e.ownerDocument||T)&&n.push(i.defaultView||i.parentWindow||a)}for(g=0;(h=n[g++])&&!c.isPropagationStopped();)c.type=g>1?j:m.bindType||o,l=(qb.get(h,"events")||{})[c.type]&&qb.get(h,"handle"),l&&l.apply(h,d),l=k&&h[k],l&&fb.acceptData(h)&&l.apply&&l.apply(h,d)===!1&&c.preventDefault();return c.type=o,f||c.isDefaultPrevented()||m._default&&m._default.apply(n.pop(),d)!==!1||!fb.acceptData(e)||k&&fb.isFunction(e[o])&&!fb.isWindow(e)&&(i=e[k],i&&(e[k]=null),fb.event.triggered=o,e[o](),fb.event.triggered=b,i&&(e[k]=i)),c.result}},dispatch:function(a){a=fb.event.fix(a);var c,d,e,f,g,h=[],i=ab.call(arguments),j=(qb.get(this,"events")||{})[a.type]||[],k=fb.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){for(h=fb.event.handlers.call(this,a,j),c=0;(f=h[c++])&&!a.isPropagationStopped();)for(a.currentTarget=f.elem,d=0;(g=f.handlers[d++])&&!a.isImmediatePropagationStopped();)(!a.namespace_re||a.namespace_re.test(g.namespace))&&(a.handleObj=g,a.data=g.data,e=((fb.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),e!==b&&(a.result=e)===!1&&(a.preventDefault(),a.stopPropagation()));return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,c){var d,e,f,g,h=[],i=c.delegateCount,j=a.target;if(i&&j.nodeType&&(!a.button||"click"!==a.type))for(;j!==this;j=j.parentNode||this)if(j.disabled!==!0||"click"!==a.type){for(e=[],d=0;i>d;d++)g=c[d],f=g.selector+" ",e[f]===b&&(e[f]=g.needsContext?fb(f,this).index(j)>=0:fb.find(f,this,null,[j]).length),e[f]&&e.push(g);e.length&&h.push({elem:j,handlers:e})}return c.length>i&&h.push({elem:this,handlers:c.slice(i)}),h},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){return null==a.which&&(a.which=null!=b.charCode?b.charCode:b.keyCode),a}},mouseHooks:{props:"button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,c){var d,e,f,g=c.button;return null==a.pageX&&null!=c.clientX&&(d=a.target.ownerDocument||T,e=d.documentElement,f=d.body,a.pageX=c.clientX+(e&&e.scrollLeft||f&&f.scrollLeft||0)-(e&&e.clientLeft||f&&f.clientLeft||0),a.pageY=c.clientY+(e&&e.scrollTop||f&&f.scrollTop||0)-(e&&e.clientTop||f&&f.clientTop||0)),a.which||g===b||(a.which=1&g?1:2&g?3:4&g?2:0),a}},fix:function(a){if(a[fb.expando])return a;var b,c,d,e=a.type,f=a,g=this.fixHooks[e];for(g||(this.fixHooks[e]=g=zb.test(e)?this.mouseHooks:yb.test(e)?this.keyHooks:{}),d=g.props?this.props.concat(g.props):this.props,a=new fb.Event(f),b=d.length;b--;)c=d[b],a[c]=f[c];return a.target||(a.target=T),3===a.target.nodeType&&(a.target=a.target.parentNode),g.filter?g.filter(a,f):a},special:{load:{noBubble:!0},focus:{trigger:function(){return this!==i()&&this.focus?(this.focus(),!1):b},delegateType:"focusin"},blur:{trigger:function(){return this===i()&&this.blur?(this.blur(),!1):b},delegateType:"focusout"},click:{trigger:function(){return"checkbox"===this.type&&this.click&&fb.nodeName(this,"input")?(this.click(),!1):b},_default:function(a){return fb.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){a.result!==b&&(a.originalEvent.returnValue=a.result)}}},simulate:function(a,b,c,d){var e=fb.extend(new fb.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?fb.event.trigger(e,null,b):fb.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},fb.removeEvent=function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)},fb.Event=function(a,c){return this instanceof fb.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.getPreventDefault&&a.getPreventDefault()?g:h):this.type=a,c&&fb.extend(this,c),this.timeStamp=a&&a.timeStamp||fb.now(),this[fb.expando]=!0,b):new fb.Event(a,c)},fb.Event.prototype={isDefaultPrevented:h,isPropagationStopped:h,isImmediatePropagationStopped:h,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=g,a&&a.preventDefault&&a.preventDefault()},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=g,a&&a.stopPropagation&&a.stopPropagation()},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=g,this.stopPropagation()}},fb.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){fb.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return(!e||e!==d&&!fb.contains(d,e))&&(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),fb.support.focusinBubbles||fb.each({focus:"focusin",blur:"focusout"},function(a,b){var c=0,d=function(a){fb.event.simulate(b,a.target,fb.event.fix(a),!0)};fb.event.special[b]={setup:function(){0===c++&&T.addEventListener(a,d,!0)},teardown:function(){0===--c&&T.removeEventListener(a,d,!0)}}}),fb.fn.extend({on:function(a,c,d,e,f){var g,i;if("object"==typeof a){"string"!=typeof c&&(d=d||c,c=b);for(i in a)this.on(i,c,d,a[i],f);return this}if(null==d&&null==e?(e=c,d=c=b):null==e&&("string"==typeof c?(e=d,d=b):(e=d,d=c,c=b)),e===!1)e=h;else if(!e)return this;return 1===f&&(g=e,e=function(a){return fb().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=fb.guid++)),this.each(function(){fb.event.add(this,a,e,d,c)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,c,d){var e,f;if(a&&a.preventDefault&&a.handleObj)return e=a.handleObj,fb(a.delegateTarget).off(e.namespace?e.origType+"."+e.namespace:e.origType,e.selector,e.handler),this;if("object"==typeof a){for(f in a)this.off(f,c,a[f]);return this}return(c===!1||"function"==typeof c)&&(d=c,c=b),d===!1&&(d=h),this.each(function(){fb.event.remove(this,a,d,c)})},trigger:function(a,b){return this.each(function(){fb.event.trigger(a,b,this)})},triggerHandler:function(a,c){var d=this[0];return d?fb.event.trigger(a,c,d,!0):b}});var Cb=/^.[^:#\[\.,]*$/,Db=/^(?:parents|prev(?:Until|All))/,Eb=fb.expr.match.needsContext,Fb={children:!0,contents:!0,next:!0,prev:!0};fb.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(fb(a).filter(function(){for(b=0;e>b;b++)if(fb.contains(d[b],this))return!0}));for(b=0;e>b;b++)fb.find(a,d[b],c);return c=this.pushStack(e>1?fb.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},has:function(a){var b=fb(a,this),c=b.length;return this.filter(function(){for(var a=0;c>a;a++)if(fb.contains(this,b[a]))return!0})},not:function(a){return this.pushStack(k(this,a||[],!0))},filter:function(a){return this.pushStack(k(this,a||[],!1))},is:function(a){return!!k(this,"string"==typeof a&&Eb.test(a)?fb(a):a||[],!1).length},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=Eb.test(a)||"string"!=typeof a?fb(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(11>c.nodeType&&(g?g.index(c)>-1:1===c.nodeType&&fb.find.matchesSelector(c,a))){c=f.push(c);break}return this.pushStack(f.length>1?fb.unique(f):f)},index:function(a){return a?"string"==typeof a?bb.call(fb(a),this[0]):bb.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){var c="string"==typeof a?fb(a,b):fb.makeArray(a&&a.nodeType?[a]:a),d=fb.merge(this.get(),c);return this.pushStack(fb.unique(d))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}}),fb.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return fb.dir(a,"parentNode")},parentsUntil:function(a,b,c){return fb.dir(a,"parentNode",c)},next:function(a){return j(a,"nextSibling")},prev:function(a){return j(a,"previousSibling")},nextAll:function(a){return fb.dir(a,"nextSibling")},prevAll:function(a){return fb.dir(a,"previousSibling")},nextUntil:function(a,b,c){return fb.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return fb.dir(a,"previousSibling",c)},siblings:function(a){return fb.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return fb.sibling(a.firstChild)},contents:function(a){return a.contentDocument||fb.merge([],a.childNodes)}},function(a,b){fb.fn[a]=function(c,d){var e=fb.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=fb.filter(d,e)),this.length>1&&(Fb[a]||fb.unique(e),Db.test(a)&&e.reverse()),this.pushStack(e)}}),fb.extend({filter:function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?fb.find.matchesSelector(d,a)?[d]:[]:fb.find.matches(a,fb.grep(b,function(a){return 1===a.nodeType}))},dir:function(a,c,d){for(var e=[],f=d!==b;(a=a[c])&&9!==a.nodeType;)if(1===a.nodeType){if(f&&fb(a).is(d))break;e.push(a)}return e},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}});var Gb=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,Hb=/<([\w:]+)/,Ib=/<|?\w+;/,Jb=/<(?:script|style|link)/i,Kb=/^(?:checkbox|radio)$/i,Lb=/checked\s*(?:[^=]|=\s*.checked.)/i,Mb=/^$|\/(?:java|ecma)script/i,Nb=/^true\/(.*)/,Ob=/^\s*\s*$/g,Pb={option:[1,""],thead:[1,""],col:[2,""],tr:[2,""],td:[3,""],_default:[0,"",""]};Pb.optgroup=Pb.option,Pb.tbody=Pb.tfoot=Pb.colgroup=Pb.caption=Pb.thead,Pb.th=Pb.td,fb.fn.extend({text:function(a){return fb.access(this,function(a){return a===b?fb.text(this):this.empty().append((this[0]&&this[0].ownerDocument||T).createTextNode(a))},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=l(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=l(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?fb.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||fb.cleanData(q(c)),c.parentNode&&(b&&fb.contains(c.ownerDocument,c)&&o(q(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(fb.cleanData(q(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return fb.clone(this,a,b)})},html:function(a){return fb.access(this,function(a){var c=this[0]||{},d=0,e=this.length;if(a===b&&1===c.nodeType)return c.innerHTML;if("string"==typeof a&&!Jb.test(a)&&!Pb[(Hb.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Gb,"<$1>$2>");
+try{for(;e>d;d++)c=this[d]||{},1===c.nodeType&&(fb.cleanData(q(c,!1)),c.innerHTML=a);c=0}catch(f){}}c&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=fb.map(this,function(a){return[a.nextSibling,a.parentNode]}),b=0;return this.domManip(arguments,function(c){var d=a[b++],e=a[b++];e&&(d&&d.parentNode!==e&&(d=this.nextSibling),fb(this).remove(),e.insertBefore(c,d))},!0),b?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b,c){a=$.apply([],a);var d,e,f,g,h,i,j=0,k=this.length,l=this,o=k-1,p=a[0],r=fb.isFunction(p);if(r||!(1>=k||"string"!=typeof p||fb.support.checkClone)&&Lb.test(p))return this.each(function(d){var e=l.eq(d);r&&(a[0]=p.call(this,d,e.html())),e.domManip(a,b,c)});if(k&&(d=fb.buildFragment(a,this[0].ownerDocument,!1,!c&&this),e=d.firstChild,1===d.childNodes.length&&(d=e),e)){for(f=fb.map(q(d,"script"),m),g=f.length;k>j;j++)h=d,j!==o&&(h=fb.clone(h,!0,!0),g&&fb.merge(f,q(h,"script"))),b.call(this[j],h,j);if(g)for(i=f[f.length-1].ownerDocument,fb.map(f,n),j=0;g>j;j++)h=f[j],Mb.test(h.type||"")&&!qb.access(h,"globalEval")&&fb.contains(i,h)&&(h.src?fb._evalUrl(h.src):fb.globalEval(h.textContent.replace(Ob,"")))}return this}}),fb.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){fb.fn[a]=function(a){for(var c,d=[],e=fb(a),f=e.length-1,g=0;f>=g;g++)c=g===f?this:this.clone(!0),fb(e[g])[b](c),_.apply(d,c.get());return this.pushStack(d)}}),fb.extend({clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=fb.contains(a.ownerDocument,a);if(!(fb.support.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||fb.isXMLDoc(a)))for(g=q(h),f=q(a),d=0,e=f.length;e>d;d++)r(f[d],g[d]);if(b)if(c)for(f=f||q(a),g=g||q(h),d=0,e=f.length;e>d;d++)p(f[d],g[d]);else p(a,h);return g=q(h,"script"),g.length>0&&o(g,!i&&q(a,"script")),h},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,k=0,l=a.length,m=b.createDocumentFragment(),n=[];l>k;k++)if(e=a[k],e||0===e)if("object"===fb.type(e))fb.merge(n,e.nodeType?[e]:e);else if(Ib.test(e)){for(f=f||m.appendChild(b.createElement("div")),g=(Hb.exec(e)||["",""])[1].toLowerCase(),h=Pb[g]||Pb._default,f.innerHTML=h[1]+e.replace(Gb,"<$1>$2>")+h[2],j=h[0];j--;)f=f.lastChild;fb.merge(n,f.childNodes),f=m.firstChild,f.textContent=""}else n.push(b.createTextNode(e));for(m.textContent="",k=0;e=n[k++];)if((!d||-1===fb.inArray(e,d))&&(i=fb.contains(e.ownerDocument,e),f=q(m.appendChild(e),"script"),i&&o(f),c))for(j=0;e=f[j++];)Mb.test(e.type||"")&&c.push(e);return m},cleanData:function(a){for(var c,d,f,g,h,i,j=fb.event.special,k=0;(d=a[k])!==b;k++){if(e.accepts(d)&&(h=d[qb.expando],h&&(c=qb.cache[h]))){if(f=Object.keys(c.events||{}),f.length)for(i=0;(g=f[i])!==b;i++)j[g]?fb.event.remove(d,g):fb.removeEvent(d,g,c.handle);qb.cache[h]&&delete qb.cache[h]}delete pb.cache[d[pb.expando]]}},_evalUrl:function(a){return fb.ajax({url:a,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})}}),fb.fn.extend({wrapAll:function(a){var b;return fb.isFunction(a)?this.each(function(b){fb(this).wrapAll(a.call(this,b))}):(this[0]&&(b=fb(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){for(var a=this;a.firstElementChild;)a=a.firstElementChild;return a}).append(this)),this)},wrapInner:function(a){return this.each(fb.isFunction(a)?function(b){fb(this).wrapInner(a.call(this,b))}:function(){var b=fb(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=fb.isFunction(a);return this.each(function(c){fb(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){fb.nodeName(this,"body")||fb(this).replaceWith(this.childNodes)}).end()}});var Qb,Rb,Sb=/^(none|table(?!-c[ea]).+)/,Tb=/^margin/,Ub=RegExp("^("+gb+")(.*)$","i"),Vb=RegExp("^("+gb+")(?!px)[a-z%]+$","i"),Wb=RegExp("^([+-])=("+gb+")","i"),Xb={BODY:"block"},Yb={position:"absolute",visibility:"hidden",display:"block"},Zb={letterSpacing:0,fontWeight:400},$b=["Top","Right","Bottom","Left"],_b=["Webkit","O","Moz","ms"];fb.fn.extend({css:function(a,c){return fb.access(this,function(a,c,d){var e,f,g={},h=0;if(fb.isArray(c)){for(e=u(a),f=c.length;f>h;h++)g[c[h]]=fb.css(a,c[h],!1,e);return g}return d!==b?fb.style(a,c,d):fb.css(a,c)},a,c,arguments.length>1)},show:function(){return v(this,!0)},hide:function(){return v(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){t(this)?fb(this).show():fb(this).hide()})}}),fb.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Qb(a,"opacity");return""===c?"1":c}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":"cssFloat"},style:function(a,c,d,e){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var f,g,h,i=fb.camelCase(c),j=a.style;return c=fb.cssProps[i]||(fb.cssProps[i]=s(j,i)),h=fb.cssHooks[c]||fb.cssHooks[i],d===b?h&&"get"in h&&(f=h.get(a,!1,e))!==b?f:j[c]:(g=typeof d,"string"===g&&(f=Wb.exec(d))&&(d=(f[1]+1)*f[2]+parseFloat(fb.css(a,c)),g="number"),null==d||"number"===g&&isNaN(d)||("number"!==g||fb.cssNumber[i]||(d+="px"),fb.support.clearCloneStyle||""!==d||0!==c.indexOf("background")||(j[c]="inherit"),h&&"set"in h&&(d=h.set(a,d,e))===b||(j[c]=d)),b)}},css:function(a,c,d,e){var f,g,h,i=fb.camelCase(c);return c=fb.cssProps[i]||(fb.cssProps[i]=s(a.style,i)),h=fb.cssHooks[c]||fb.cssHooks[i],h&&"get"in h&&(f=h.get(a,!0,d)),f===b&&(f=Qb(a,c,e)),"normal"===f&&c in Zb&&(f=Zb[c]),""===d||d?(g=parseFloat(f),d===!0||fb.isNumeric(g)?g||0:f):f}}),Qb=function(a,c,d){var e,f,g,h=d||u(a),i=h?h.getPropertyValue(c)||h[c]:b,j=a.style;return h&&(""!==i||fb.contains(a.ownerDocument,a)||(i=fb.style(a,c)),Vb.test(i)&&Tb.test(c)&&(e=j.width,f=j.minWidth,g=j.maxWidth,j.minWidth=j.maxWidth=j.width=i,i=h.width,j.width=e,j.minWidth=f,j.maxWidth=g)),i},fb.each(["height","width"],function(a,c){fb.cssHooks[c]={get:function(a,d,e){return d?0===a.offsetWidth&&Sb.test(fb.css(a,"display"))?fb.swap(a,Yb,function(){return y(a,c,e)}):y(a,c,e):b},set:function(a,b,d){var e=d&&u(a);return w(a,b,d?x(a,c,d,fb.support.boxSizing&&"border-box"===fb.css(a,"boxSizing",!1,e),e):0)}}}),fb(function(){fb.support.reliableMarginRight||(fb.cssHooks.marginRight={get:function(a,c){return c?fb.swap(a,{display:"inline-block"},Qb,[a,"marginRight"]):b}}),!fb.support.pixelPosition&&fb.fn.position&&fb.each(["top","left"],function(a,c){fb.cssHooks[c]={get:function(a,d){return d?(d=Qb(a,c),Vb.test(d)?fb(a).position()[c]+"px":d):b}}})}),fb.expr&&fb.expr.filters&&(fb.expr.filters.hidden=function(a){return 0>=a.offsetWidth&&0>=a.offsetHeight},fb.expr.filters.visible=function(a){return!fb.expr.filters.hidden(a)}),fb.each({margin:"",padding:"",border:"Width"},function(a,b){fb.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];4>d;d++)e[a+$b[d]+b]=f[d]||f[d-2]||f[0];return e}},Tb.test(a)||(fb.cssHooks[a+b].set=w)});var ac=/%20/g,bc=/\[\]$/,cc=/\r?\n/g,dc=/^(?:submit|button|image|reset|file)$/i,ec=/^(?:input|select|textarea|keygen)/i;fb.fn.extend({serialize:function(){return fb.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=fb.prop(this,"elements");return a?fb.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!fb(this).is(":disabled")&&ec.test(this.nodeName)&&!dc.test(a)&&(this.checked||!Kb.test(a))}).map(function(a,b){var c=fb(this).val();return null==c?null:fb.isArray(c)?fb.map(c,function(a){return{name:b.name,value:a.replace(cc,"\r\n")}}):{name:b.name,value:c.replace(cc,"\r\n")}}).get()}}),fb.param=function(a,c){var d,e=[],f=function(a,b){b=fb.isFunction(b)?b():null==b?"":b,e[e.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(c===b&&(c=fb.ajaxSettings&&fb.ajaxSettings.traditional),fb.isArray(a)||a.jquery&&!fb.isPlainObject(a))fb.each(a,function(){f(this.name,this.value)});else for(d in a)B(d,a[d],c,f);return e.join("&").replace(ac,"+")},fb.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){fb.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),fb.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}});var fc,gc,hc=fb.now(),ic=/\?/,jc=/#.*$/,kc=/([?&])_=[^&]*/,lc=/^(.*?):[ \t]*([^\r\n]*)$/gm,mc=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,nc=/^(?:GET|HEAD)$/,oc=/^\/\//,pc=/^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,qc=fb.fn.load,rc={},sc={},tc="*/".concat("*");try{gc=S.href}catch(uc){gc=T.createElement("a"),gc.href="",gc=gc.href}fc=pc.exec(gc.toLowerCase())||[],fb.fn.load=function(a,c,d){if("string"!=typeof a&&qc)return qc.apply(this,arguments);var e,f,g,h=this,i=a.indexOf(" ");return i>=0&&(e=a.slice(i),a=a.slice(0,i)),fb.isFunction(c)?(d=c,c=b):c&&"object"==typeof c&&(f="POST"),h.length>0&&fb.ajax({url:a,type:f,dataType:"html",data:c}).done(function(a){g=arguments,h.html(e?fb("").append(fb.parseHTML(a)).find(e):a)}).complete(d&&function(a,b){h.each(d,g||[a.responseText,b,a])}),this},fb.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){fb.fn[b]=function(a){return this.on(b,a)}}),fb.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:gc,type:"GET",isLocal:mc.test(fc[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":tc,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":fb.parseJSON,"text xml":fb.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?E(E(a,fb.ajaxSettings),b):E(fb.ajaxSettings,a)},ajaxPrefilter:C(rc),ajaxTransport:C(sc),ajax:function(a,c){function d(a,c,d,h){var j,l,s,t,v,x=c;2!==u&&(u=2,i&&clearTimeout(i),e=b,g=h||"",w.readyState=a>0?4:0,j=a>=200&&300>a||304===a,d&&(t=F(m,w,d)),t=G(m,t,w,j),j?(m.ifModified&&(v=w.getResponseHeader("Last-Modified"),v&&(fb.lastModified[f]=v),v=w.getResponseHeader("etag"),v&&(fb.etag[f]=v)),204===a||"HEAD"===m.type?x="nocontent":304===a?x="notmodified":(x=t.state,l=t.data,s=t.error,j=!s)):(s=x,(a||!x)&&(x="error",0>a&&(a=0))),w.status=a,w.statusText=(c||x)+"",j?p.resolveWith(n,[l,x,w]):p.rejectWith(n,[w,x,s]),w.statusCode(r),r=b,k&&o.trigger(j?"ajaxSuccess":"ajaxError",[w,m,j?l:s]),q.fireWith(n,[w,x]),k&&(o.trigger("ajaxComplete",[w,m]),--fb.active||fb.event.trigger("ajaxStop")))}"object"==typeof a&&(c=a,a=b),c=c||{};var e,f,g,h,i,j,k,l,m=fb.ajaxSetup({},c),n=m.context||m,o=m.context&&(n.nodeType||n.jquery)?fb(n):fb.event,p=fb.Deferred(),q=fb.Callbacks("once memory"),r=m.statusCode||{},s={},t={},u=0,v="canceled",w={readyState:0,getResponseHeader:function(a){var b;if(2===u){if(!h)for(h={};b=lc.exec(g);)h[b[1].toLowerCase()]=b[2];b=h[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===u?g:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return u||(a=t[c]=t[c]||a,s[a]=b),this},overrideMimeType:function(a){return u||(m.mimeType=a),this},statusCode:function(a){var b;if(a)if(2>u)for(b in a)r[b]=[r[b],a[b]];else w.always(a[w.status]);return this},abort:function(a){var b=a||v;return e&&e.abort(b),d(0,b),this}};if(p.promise(w).complete=q.add,w.success=w.done,w.error=w.fail,m.url=((a||m.url||gc)+"").replace(jc,"").replace(oc,fc[1]+"//"),m.type=c.method||c.type||m.method||m.type,m.dataTypes=fb.trim(m.dataType||"*").toLowerCase().match(hb)||[""],null==m.crossDomain&&(j=pc.exec(m.url.toLowerCase()),m.crossDomain=!(!j||j[1]===fc[1]&&j[2]===fc[2]&&(j[3]||("http:"===j[1]?"80":"443"))===(fc[3]||("http:"===fc[1]?"80":"443")))),m.data&&m.processData&&"string"!=typeof m.data&&(m.data=fb.param(m.data,m.traditional)),D(rc,m,c,w),2===u)return w;k=m.global,k&&0===fb.active++&&fb.event.trigger("ajaxStart"),m.type=m.type.toUpperCase(),m.hasContent=!nc.test(m.type),f=m.url,m.hasContent||(m.data&&(f=m.url+=(ic.test(f)?"&":"?")+m.data,delete m.data),m.cache===!1&&(m.url=kc.test(f)?f.replace(kc,"$1_="+hc++):f+(ic.test(f)?"&":"?")+"_="+hc++)),m.ifModified&&(fb.lastModified[f]&&w.setRequestHeader("If-Modified-Since",fb.lastModified[f]),fb.etag[f]&&w.setRequestHeader("If-None-Match",fb.etag[f])),(m.data&&m.hasContent&&m.contentType!==!1||c.contentType)&&w.setRequestHeader("Content-Type",m.contentType),w.setRequestHeader("Accept",m.dataTypes[0]&&m.accepts[m.dataTypes[0]]?m.accepts[m.dataTypes[0]]+("*"!==m.dataTypes[0]?", "+tc+"; q=0.01":""):m.accepts["*"]);for(l in m.headers)w.setRequestHeader(l,m.headers[l]);if(m.beforeSend&&(m.beforeSend.call(n,w,m)===!1||2===u))return w.abort();v="abort";for(l in{success:1,error:1,complete:1})w[l](m[l]);if(e=D(sc,m,c,w)){w.readyState=1,k&&o.trigger("ajaxSend",[w,m]),m.async&&m.timeout>0&&(i=setTimeout(function(){w.abort("timeout")},m.timeout));try{u=1,e.send(s,d)}catch(x){if(!(2>u))throw x;d(-1,x)}}else d(-1,"No Transport");return w},getJSON:function(a,b,c){return fb.get(a,b,c,"json")},getScript:function(a,c){return fb.get(a,b,c,"script")}}),fb.each(["get","post"],function(a,c){fb[c]=function(a,d,e,f){return fb.isFunction(d)&&(f=f||e,e=d,d=b),fb.ajax({url:a,type:c,dataType:f,data:d,success:e})}}),fb.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(a){return fb.globalEval(a),a}}}),fb.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),fb.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(d,e){b=fb("
+
diff --git a/js/vendor/gif-encode.min.js b/js/vendor/gif-encode.min.js
index 4e195aa..be5e2cd 100644
--- a/js/vendor/gif-encode.min.js
+++ b/js/vendor/gif-encode.min.js
@@ -1,2 +1,2 @@
/* asdf.us/gif-recorder */
-function shuffle(a){var b=new Array(a.length);b[0]=a[0];for(var c=1;c
b;b++){var d=new Worker(workerURL);d.onmessage=a.receiveWork,c.push(d)}};var d={};a.hire=function(a,b){d[a]=b},a.work=function(a){c[++b%c.length].postMessage(a)},a.receiveWork=function(a){a.data.task in d&&d[a.data.task](a)},a.fire=function(){for(var b in c)c[b].postMessage("close");c=[],a.init()},a.init()}function b(a){console.log("[WORKER]",a.data.message)}function c(a){console.log(Date.now()-q,"quantization done"),i=a.data.neuquant,j=a.data.colortab,f.quantized=!0,f.tube("quantized")}function d(a){var b=a.data.frame_index,c=a.data.frame_data;m[b]=c,f.tube("encoded-frame",m.length,k.length);for(var d=0;d=g;++g)if(globber(e,b.slice(g)))return!0;return!1}return c=d===b[0],c&&(!e.length&&!f||globber(e,b.slice(1)))},setproto=function(a,b){if(a.__proto__)a.__proto__=b;else for(var c in b)a[c]=b[c]},Tube=function(){var a={},b=function(a){if(a=a||{},a.queue)var c=function(){var a=arguments;return nextTick(function(){c.send.apply(c,a)}),c};else var c=function(){return c.send.apply(c,arguments),c};return setproto(c,b.proto),c.listeners={},c.globListeners={},c};return b.total={},b.proto={},b.proto.on=function(){var a=this;if("string"==typeof arguments[0]){var b={};b[arguments[0]]=arguments[1];{arguments[2]||{}}}else{var b=arguments[0];arguments[1]||{}}for(var c in b){var d=c.split(" "),e=b[c];Array.isArray(e)||(e=[e]);for(var f,g=0;f=e[g];g++)f.uid||(f.uid=Uid());for(var h,g=0;h=d[g];g++){var i=-1===h.indexOf("*")?a.listeners:a.globListeners;i[h]=h in i?i[h].concat(e):e.concat()}}return a},b.proto.off=function(){var a,b,c,d,e=this;if(0===arguments.length)return e.listeners={},e.globListeners={},e;if(1===arguments.length&&"string"==typeof arguments[0]){for(c=arguments[0].split(" "),b=0;d=c[b];b++)delete e.listeners[d],delete e.globListeners[d];return e}if("function"==typeof arguments[0]||Array.isArray(arguments[0])){var f="function"==typeof arguments[0]?[arguments[0]]:arguments[0];return e}if(arguments.length>1){var g={};g[arguments[0]]=arguments[1]}else var g=arguments[0];for(var h in g){c=h.split(" ");var f=g[h];"function"==typeof f&&(f=[f]);for(var b=0;d=c[b];b++){if(d in e.listeners)a=e.listeners;else{if(!(d in e.globListeners))continue;a=e.globListeners}a[d]=a[d].filter(function(a){return-1===f.indexOf(a)})}}return e},b.proto.send=function(c){b.total[c]||(b.total[c]=0),b.total[c]+=1;var d,e,f,g=this.listeners,h=this.globListeners,i=tokenize(c);if(arguments.length){var j=Array.prototype.splice.call(arguments,1);j.push(c)}else var j=[];for(var k=0;e=i[k];k++){var l={},m={};if(d=g[e])for(var n=0;f=d[n];n++)l[f.uid]=f,m[f.uid]=e;var o=e.split(":");for(var p in h){if("*"!==p){var q=a[p]||(a[p]=p.split(":"));if(!globber(q,o))continue}d=h[p];for(var n=0;f=d[n];n++)l[f.uid]=f,m[f.uid]=e}var r=[];for(var f in l)r.push(l[f]);for(var f,n=0;f=r[n];n++)f.apply(f,j)}return this},b}(),FRAMES_PER_GIF=36,FPS=12,DELAY=Math.floor(1e3/FPS),WORKERS=6,FRAMES_TO_QUANTIZE=4,DO_UPLOAD=!0;
\ No newline at end of file
+function shuffle(a){var b=new Array(a.length);b[0]=a[0];for(var c=1;cb;b++){var d=new Worker(workerURL);d.onmessage=a.receiveWork,c.push(d)}};var d={};a.hire=function(a,b){d[a]=b},a.work=function(a){c[++b%c.length].postMessage(a)},a.receiveWork=function(a){a.data.task in d&&d[a.data.task](a)},a.fire=function(){for(var b in c)c[b].postMessage("close");c=[],a.init()},a.init()}function b(a){console.log("[WORKER]",a.data.message)}function c(a){console.log(Date.now()-q,"quantization done"),i=a.data.neuquant,j=a.data.colortab,f.quantized=!0,f.tube("quantized")}function d(a){var b=a.data.frame_index,c=a.data.frame_data;m[b]=c,f.tube("encoded-frame",m.length,k.length);for(var d=0;d=g;++g)if(globber(e,b.slice(g)))return!0;return!1}return c=d===b[0],c&&(!e.length&&!f||globber(e,b.slice(1)))},setproto=function(a,b){if(a.__proto__)a.__proto__=b;else for(var c in b)a[c]=b[c]},Tube=function(){var a={},b=function(a){if(a=a||{},a.queue)var c=function(){var a=arguments;return nextTick(function(){c.send.apply(c,a)}),c};else var c=function(){return c.send.apply(c,arguments),c};return setproto(c,b.proto),c.listeners={},c.globListeners={},c};return b.total={},b.proto={},b.proto.on=function(){var a=this;if("string"==typeof arguments[0]){var b={};b[arguments[0]]=arguments[1];{arguments[2]||{}}}else{var b=arguments[0];arguments[1]||{}}for(var c in b){var d=c.split(" "),e=b[c];Array.isArray(e)||(e=[e]);for(var f,g=0;f=e[g];g++)f.uid||(f.uid=Uid());for(var h,g=0;h=d[g];g++){var i=-1===h.indexOf("*")?a.listeners:a.globListeners;i[h]=h in i?i[h].concat(e):e.concat()}}return a},b.proto.off=function(){var a,b,c,d,e=this;if(0===arguments.length)return e.listeners={},e.globListeners={},e;if(1===arguments.length&&"string"==typeof arguments[0]){for(c=arguments[0].split(" "),b=0;d=c[b];b++)delete e.listeners[d],delete e.globListeners[d];return e}if("function"==typeof arguments[0]||Array.isArray(arguments[0])){var f="function"==typeof arguments[0]?[arguments[0]]:arguments[0];return e}if(arguments.length>1){var g={};g[arguments[0]]=arguments[1]}else var g=arguments[0];for(var h in g){c=h.split(" ");var f=g[h];"function"==typeof f&&(f=[f]);for(var b=0;d=c[b];b++){if(d in e.listeners)a=e.listeners;else{if(!(d in e.globListeners))continue;a=e.globListeners}a[d]=a[d].filter(function(a){return-1===f.indexOf(a)})}}return e},b.proto.send=function(c){b.total[c]||(b.total[c]=0),b.total[c]+=1;var d,e,f,g=this.listeners,h=this.globListeners,i=tokenize(c);if(arguments.length){var j=Array.prototype.splice.call(arguments,1);j.push(c)}else var j=[];for(var k=0;e=i[k];k++){var l={},m={};if(d=g[e])for(var n=0;f=d[n];n++)l[f.uid]=f,m[f.uid]=e;var o=e.split(":");for(var p in h){if("*"!==p){var q=a[p]||(a[p]=p.split(":"));if(!globber(q,o))continue}d=h[p];for(var n=0;f=d[n];n++)l[f.uid]=f,m[f.uid]=e}var r=[];for(var f in l)r.push(l[f]);for(var f,n=0;f=r[n];n++)f.apply(f,j)}return this},b}(),FRAMES_PER_GIF=36,FPS=12,DELAY=Math.floor(1e3/FPS),WORKERS=6,FRAMES_TO_QUANTIZE=4,DO_UPLOAD=!0,workerURL=URL.createObjectURL(new Blob(["(",function(){function a(a){var c=a.imageData,d=b(c.data),e=new NeuQuant(d,d.length,1),f=e.process();self.postMessage({task:"quantize",neuquant:e.save(),colortab:f})}function b(a){for(var b=[],c=0,d=0,e=a.length;e>c;d+=4)b[c++]=a[d],b[c++]=a[d+1],b[c++]=a[d+2];return b}function c(a){var b=a.frame_index,c=a.frame_length,d=a.height,e=a.width,f=a.imageData,g=a.delay,h=a.neuquant,i=a.colortab,j=new GIFEncoder;j.setRepeat(0),j.setQuality(1),j.setSize(e,d),j.setDelay(g),0==b?j.start():(j.cont(),j.setProperties(!0,!1)),j.setNeuquant(h,i),j.addFrame(f,!0),c==b&&j.finish(),self.postMessage({task:"encode",frame_index:b,frame_data:j.stream().getData()}),delete j,delete a}GIFEncoder=function(){function a(){this.bin=[]}for(var b=0,c={};256>b;b++)c[b]=String.fromCharCode(b);a.prototype.getData=function(){for(var a="",b=this.bin.length,d=0;b>d;d++)a+=c[this.bin[d]];return a},a.prototype.writeByte=function(a){this.bin.push(a)},a.prototype.writeUTFBytes=function(a){for(var b=a.length,c=0;b>c;c++)this.writeByte(a.charCodeAt(c))},a.prototype.writeBytes=function(a,b,c){for(var d=c||a.length,e=b||0;d>e;e++)this.writeByte(a[e])};var d,e,f,g,h,i,j,k,l,m={},n=null,o=-1,p=0,q=!1,r=new Array,s=7,t=-1,u=!1,v=!0,w=!1,x=1,y=null,z=(m.setDelay=function(a){p=Math.round(a/10)},m.setDispose=function(a){a>=0&&(t=a)},m.setRepeat=function(a){a>=0&&(o=a)},m.setTransparent=function(a){n=a},m.addFrame=function(a,b){if(null==a||!q||null==g)throw new Error("Please call start method before calling addFrame");var c=!0;try{b?h=a:(h=a.getImageData(0,0,a.canvas.width,a.canvas.height).data,w||A(a.canvas.width,a.canvas.height)),D(),B(),v&&(G(),I(),o>=0&&H()),E(),F(),v||I(),K(),v=!1}catch(d){c=!1}return c},m.finish=function(){if(!q)return!1;var a=!0;q=!1;try{g.writeByte(59)}catch(b){a=!1}return a},function(){f=0,h=null,i=null,j=null,l=null,u=!1,v=!0}),A=(m.setFrameRate=function(a){15!=a&&(p=Math.round(100/a))},m.setQuality=function(a){x=Math.max(1,a)},m.setSize=function(a,b){(!q||v)&&(d=a,e=b,1>d&&(d=320),1>e&&(e=240),w=!0)}),B=(m.setNeuquant=function(a,b){y=a,l=b},m.start=function(){z();var b=!0;u=!1,g=new a;try{g.writeUTFBytes("GIF89a")}catch(c){b=!1}return q=b},m.cont=function(){z();var b=!0;return u=!1,g=new a,q=b},function(){var a=i.length,b=a/3;j=[];var c;y&&l?(c=new NeuQuant,c.load(y)):(c=new NeuQuant(i,a,x),l=c.process());for(var d=0,e=0;b>e;e++){var g=c.map(255&i[d++],255&i[d++],255&i[d++]);r[g]=!0,j[e]=g}i=null,k=8,s=7,null!=n&&(f=C(n))}),C=function(a){if(null==l)return-1;for(var b=(16711680&a)>>16,c=(65280&a)>>8,d=255&a,e=0,f=16777216,g=l.length,h=0;g>h;){var i=b-(255&l[h++]),j=c-(255&l[h++]),k=d-(255&l[h]),m=i*i+j*j+k*k,n=h/3;r[n]&&f>m&&(f=m,e=n),h++}return e},D=function(){var a=d,b=e;i=[];for(var c=h,f=0,g=0;b>g;g++)for(var j=0;a>j;j++){var k=g*a*4+4*j;i[f++]=c[k],i[f++]=c[k+1],i[f++]=c[k+2]}},E=function(){g.writeByte(33),g.writeByte(249),g.writeByte(4);var a,b;null==n?(a=0,b=0):(a=1,b=2),t>=0&&(b=7&t),b<<=2,g.writeByte(0|b|0|a),J(p),g.writeByte(f),g.writeByte(0)},F=function(){g.writeByte(44),J(0),J(0),J(d),J(e),g.writeByte(v?0:128|s)},G=function(){J(d),J(e),g.writeByte(240|s),g.writeByte(0),g.writeByte(0)},H=function(){g.writeByte(33),g.writeByte(255),g.writeByte(11),g.writeUTFBytes("NETSCAPE2.0"),g.writeByte(3),g.writeByte(1),J(o),g.writeByte(0)},I=function(){g.writeBytes(l);for(var a=768-l.length,b=0;a>b;b++)g.writeByte(0)},J=function(a){g.writeByte(255&a),g.writeByte(a>>8&255)},K=function(){var a=new LZWEncoder(d,e,j,k);a.encode(g)};return m.stream=function(){return g},m.setProperties=function(a,b){q=a,v=b},m},LZWEncoder=function(){var a,b,c,d,e,f,g,h,i,j,k,l,m={},n=-1,o=12,p=5003,q=o,r=1<=254&&G(b)},D=function(a){E(u),v=j+2,w=!0,J(j,a)},E=function(a){for(var b=0;a>b;++b)s[b]=-1},F=m.compress=function(a,b){var c,d,e,f,m,o,p;for(i=a,w=!1,g=i,h=H(g),j=1<c;c*=2)++p;p=8-p,o=u,E(o),J(j,b);a:for(;(e=I())!=n;)if(c=(e<=0){m=o-d,0==d&&(m=1);do if((d-=m)<0&&(d+=o),s[d]==c){f=t[d];continue a}while(s[d]>=0)}J(f,b),f=e,r>v?(t[d]=v++,s[d]=c):D(b)}else f=t[d];J(f,b),J(k,b)},G=(m.encode=function(c){c.writeByte(d),e=a*b,f=0,F(d+1,c),c.writeByte(0)},function(a){l>0&&(a.writeByte(l),a.writeBytes(A,0,l),l=0)}),H=function(a){return(1<0?x|=a<=8;)C(255&x,b),x>>=8,y-=8;if((v>h||w)&&(w?(h=H(g=i),w=!1):(++g,h=g==q?r:H(g))),a==k){for(;y>0;)C(255&x,b),x>>=8,y-=8;G(b)}};return B.apply(this,arguments),m},NeuQuant=function(){var a,b,c,d,e,f={},g=128,h=499,i=491,j=487,k=503,l=3*k,m=g-1,n=4,o=100,p=16,q=1<>s,u=q<>3,w=6,x=1<i;i++)e[i]=new Array(4),j=e[i],j[0]=j[1]=j[2]=(i<c;c++)b[e[c][3]]=c;for(var d=0,f=0;g>f;f++){var h=b[f];a[d++]=e[h][0],a[d++]=e[h][1],a[d++]=e[h][2]}return a},M=function(){var a,b,c,d,f,h,i,j;for(i=0,j=0,a=0;g>a;a++){for(f=e[a],c=a,d=f[1],b=a+1;g>b;b++)h=e[b],h[1]>1,b=i+1;d>b;b++)G[b]=a;i=d,j=a}}for(G[i]=j+m>>1,b=i+1;256>b;b++)G[b]=m},N=function(){var e,f,g,m,p,q,r,s,t,u,v,x,A,C;for(l>c&&(d=1),a=30+(d-1)/3,x=b,A=0,C=c,v=c/(3*d),u=v/o,s=B,q=y,r=q>>w,1>=r&&(r=0),e=0;r>e;e++)J[e]=s*((r*r-e*e)*D/(r*r));for(t=l>c?3:c%h!=0?3*h:c%i!=0?3*i:c%j!=0?3*j:3*k,e=0;v>e;)if(g=(255&x[A+0])<=C&&(A-=c),e++,0==u&&(u=1),e%u==0)for(s-=s/a,q-=q/z,r=q>>w,1>=r&&(r=0),f=0;r>f;f++)J[f]=s*((r*r-f*f)*D/(r*r))},O=(f.save=function(){var a={netindex:G,netsize:g,network:e};return a},f.load=function(a){G=a.netindex,g=a.netsize,e=a.network},f.map=function(a,b,c){var d,f,h,i,j,k,l;for(j=1e3,l=-1,d=G[b],f=d-1;g>d||f>=0;)g>d&&(k=e[d],h=k[1]-b,h>=j?d=g:(d++,0>h&&(h=-h),i=k[0]-a,0>i&&(i=-i),h+=i,j>h&&(i=k[2]-c,0>i&&(i=-i),h+=i,j>h&&(j=h,l=k[3])))),f>=0&&(k=e[f],h=b-k[1],h>=j?f=-1:(f--,0>h&&(h=-h),i=k[0]-a,0>i&&(i=-i),h+=i,j>h&&(i=k[2]-c,0>i&&(i=-i),h+=i,j>h&&(j=h,l=k[3]))));return l},f.process=function(){return N(),O(),M(),L()},function(){var a;for(a=0;g>a;a++)e[a][0]>>=n,e[a][1]>>=n,e[a][2]>>=n,e[a][3]=a}),P=function(a,b,c,d,f){var h,i,j,k,l,m,n;for(j=b-a,-1>j&&(j=-1),k=b+a,k>g&&(k=g),h=b+1,i=b-1,m=1;k>h||i>j;){if(l=J[m++],k>h){n=e[h++];try{n[0]-=l*(n[0]-c)/F,n[1]-=l*(n[1]-d)/F,n[2]-=l*(n[2]-f)/F}catch(o){}}if(i>j){n=e[i--];try{n[0]-=l*(n[0]-c)/F,n[1]-=l*(n[1]-d)/F,n[2]-=l*(n[2]-f)/F}catch(o){}}}},Q=function(a,b,c,d,f){var g=e[b];g[0]-=a*(g[0]-c)/B,g[1]-=a*(g[1]-d)/B,g[2]-=a*(g[2]-f)/B},R=function(a,b,c){var d,f,h,i,j,k,l,m,o,q;for(m=~(1<<31),o=m,k=-1,l=k,d=0;g>d;d++)q=e[d],f=q[0]-a,0>f&&(f=-f),h=q[1]-b,0>h&&(h=-h),f+=h,h=q[2]-c,0>h&&(h=-h),f+=h,m>f&&(m=f,k=d),i=f-(H[d]>>p-n),o>i&&(o=i,l=d),j=I[d]>>s,I[d]-=j,H[d]+=j<
-
@@ -263,6 +262,6 @@ function init(){
requestAnimationFrame(animate)
}
-
+