> 2013/10/28 00:00:54.219635 length=189 from=0 to=188 POST / HTTP/1.1\r Accept-Encoding: identity\r Content-Length: 8558\r Host: localhost:1111\r Content-Type: application/x-www-form-urlencoded\r Connection: close\r User-Agent: Python-urllib/2.6\r \r > 2013/10/28 00:00:54.219894 length=8192 from=189 to=8380 {"files": [{"text": "// emile.js (c) 2009 Thomas Fuchs\\n// Licensed under the terms of the MIT license.\\n\\n(function (animate, container) {\\n var parse = function (value) {\\n value = value.toString();\\n\\n var v = parseFloat(value),\\n isVBad = isNaN(v),\\n u = value.replace(/^[-\\\\d\\\\.]+/, '');\\n\\n return { value: (isVBad) ? u : v, unit: (isVBad) ? 'color' : u };\\n },\\n normalize = function (style) {\\n var css,\\n rules = {},\\n props = [\\n 'backgroundColor',\\n 'borderBottomColor',\\n 'borderBottomWidth',\\n 'borderLeftColor',\\n 'borderLeftWidth',\\n 'borderRightColor',\\n 'borderRightWidth',\\n 'borderSpacing',\\n 'borderTopColor',\\n 'borderTopWidth',\\n 'bottom',\\n 'color',\\n 'filter',\\n 'fontSize',\\n 'fontWeight',\\n 'height',\\n 'left',\\n 'letterSpacing',\\n 'lineHeight',\\n 'marginBottom',\\n 'marginLeft',\\n 'marginRight',\\n 'marginTop',\\n 'maxHeight',\\n 'maxWidth',\\n 'minHeight',\\n 'minWidth',\\n 'opacity',\\n 'outlineColor',\\n 'outlineOffset',\\n 'outlineWidth',\\n 'paddingBottom',\\n 'paddingLeft',\\n 'paddingRight',\\n 'paddingTop',\\n 'right',\\n 'textIndent',\\n 'top',\\n 'width',\\n 'wordSpacing',\\n 'zIndex'\\n ],\\n i = props.length,\\n v,\\n parseEl = document.createElement('div');\\n\\n parseEl.innerHTML = '
';\\n css = parseEl.childNodes[0].style;\\n while (i--) {\\n (v = css[props[i]]) && (rules[props[i]] = parse(v));\\n }\\n\\n return rules;\\n },\\n color = function (source, target, pos) {\\n var c,\\n j,\\n tmp,\\n i = 2,\\n v = [],\\n r = [],\\n s = function (s, p, c) { return s.substr(p, c || 1); };\\n\\n while (j = 3, c = arguments[i - 1], i--) {\\n if (s(c, 0) === 'r') {\\n c = c.match(/\\\\d+/g);\\n while (j--) {\\n v.push(~ ~c[j]);\\n }\\n } else {\\n (c.length === 4) && (c = '#' + s(c, 1) + s(c, 1) + s(c, 2) + s(c, 2) + s(c, 3) + s(c, 3));\\n while (j--) {\\n v.push(parseInt(s(c, 1 + (j * 2), 2), 16));\\n }\\n }\\n }\\n while (j--) {\\n tmp = ~ ~(v[j + 3] + (v[j] - v[j + 3]) * pos);\\n r.push(tmp < 0 ? 0 : tmp > 255 ? 255 : tmp);\\n }\\n\\n return 'rgb(' + r.join(',') + ')';\\n },\\n filter = function (source, target, pos) {\\n var strip = function (v) {\\n return parseInt(v.replace('alpha(opacity=', ''), 10);\\n },\\n t = strip(target),\\n s = strip(source),\\n n = parseInt((t > s) ? (s + (pos * 100)) : (s - (pos * 100)), 10);\\n\\n return 'alpha(opacity=' + n + ');';\\n };\\n\\n container[animate] = function (el, style, opts) {\\n el = (typeof el == 'string') ? document.getElementById(el) : el;\\n opts = opts || {};\\n\\n var target = normalize(style),\\n comp = el.currentStyle || getComputedStyle(el, null),\\n prop,\\n current = {},\\n start = (+new Date),\\n dur = opts.duration || 200,\\n finish = start + dur,\\n interval,\\n easings = {\\n bounce: function (pos) {\\n if (pos < (1 / 2.75)) {\\n return (7.5625 * pos * pos);\\n } else if (pos < (1.5 / 2.75)) {\\n return (7.5625 * (pos -= (1.5 / 2.75)) * pos + 0.75);\\n } else if (pos < (2 / 2.75)) {\\n return (7.5625 * (pos -= (1.5 / 2.75)) * pos + 0.75);\\n } else if (pos < (2.5 / 2.75)) {\\n return (7.5625 * (pos -= (2.25 / 2.75)) * pos + 0.9375);\\n } else {\\n return (7.5625 * (pos -= (2.625 / 2.75)) * pos + 0.984375);\\n }\\n },\\n linear: function (pos) {\\n return pos;\\n },\\n powIn: function (pos) {\\n return Math.pow(pos, 6);\\n },\\n powOut: function (pos) {\\n return 1 - easings.powIn(1 - pos);\\n },\\n expoIn: function (pos) {\\n return Math.pow(2, 8 * (pos - 1));\\n },\\n expoOut: function (pos) {\\n return 1 - easings.expoIn(1 - pos);\\n },\\n circIn: function (pos) {\\n return 1 - Math.sin(Math.acos(pos));\\n },\\n circOut: function (pos) {\\n return 1 - easings.circIn(1 - pos);\\n },\\n sineIn: function (pos) {\\n return 1 - Math.sin((1 - pos) * Math.PI / 2);\\n },\\n sineOut: function (pos) {\\n return 1 - easings.sineIn(1 - pos);\\n },\\n backIn: function (pos) {\\n return Math.pow(pos, 2) * (2.618 * pos - 1.618);\\n },\\n backOut: function (pos) {\\n return 1 - easings.backIn(1 - pos);\\n },\\n elasticIn: function (pos) {\\n return Math.pow(2, 10 * --pos) * Math.cos(20 * pos * Math.PI * 1 / 3);\\n },\\n elasticOut: function (pos) {\\n return 1 - easings.elasticIn(1 - pos);\\n },\\n quadIn: function (pos) { return Math.pow(pos, [0 + 2]); },\\n quadOut: function (pos) { return 1 - easings.quadIn(1 - pos); },\\n cubicIn: function (pos) { return Math.pow(pos, [1 + 2]); },\\n cubicOut: function (pos) { return 1 - easings.cubicIn(1 - pos); },\\n quartIn: function (pos) { return Math.pow(pos, [2 + 2]); },\\n quartOut: function (pos) { return 1 - easings.quartIn(1 - pos); },\\n quintIn: function (pos) { return Math.pow(pos, [3 + 2]); },\\n quintOut: function (pos) { return 1 - easings.quintIn(1 - pos); }\\n },\\n easing = easings[opts.easing] || function (pos) { return (-Math.cos(pos * Math.PI) / 2) + 0.5; };\\n\\n for (prop in target) {\\n current[prop] = (prop === 'filter') ? { value: comp[prop], unit: prop} : parse(comp[prop]);\\n }\\n interval = setInterval(function () {\\n var time = (+new Date),\\n pos = (time > finish) ? 1 : (time - start) / dur,\\n prop;\\n\\n for (prop in target) {\\n var s = (current[prop].value === 'auto') ? el.offsetWidth : current[prop].value,\\n t = target[prop].value,\\n u = target[prop].unit,\\n p = easing(pos);\\n\\n el.style[prop] = (prop === 'filter') ?\\n filter(s, t, p) :\\n (u === 'color') ?\\n color(s, t, p) :\\n (s + (t - s) * p).toFixed(3) + u> 2013/10/28 00:00:54.225767 length=366 from=8381 to=8746 ;\\n }\\n if (time > finish) {\\n clearInterval(interval);\\n (opts.after) && (opts.after());\\n }\\n }, 10);\\n };\\n})('emile', this);\\n", "type": "full", "name": "emile.js"}], "query": {"preferFunction": true, "end": {"line": 66, "ch": 39}, "lineCharPositions": true, "type": "type", "file": "#0"}}< 2013/10/28 00:00:54.235106 length=185 from=0 to=184 HTTP/1.1 400 Bad Request\r content-type: text/plain\r Date: Mon, 28 Oct 2013 00:00:54 GMT\r Connection: close\r Transfer-Encoding: chunked\r \r 24\r JSON parse error: Unexpected token &\r 0\r \r