| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153 | // Generated by CoffeeScript 1.12.7(function() {  var array_intersection, crypto, escapable, lookup, unroll_lookup;  crypto = require('crypto');  exports.array_intersection = array_intersection = function(arr_a, arr_b) {    var a, j, len, r;    r = [];    for (j = 0, len = arr_a.length; j < len; j++) {      a = arr_a[j];      if (arr_b.indexOf(a) !== -1) {        r.push(a);      }    }    return r;  };  exports.escape_selected = function(str, chars) {    var c, i, j, l, len, map, parts, r, ref, v;    map = {};    chars = '%' + chars;    for (j = 0, len = chars.length; j < len; j++) {      c = chars[j];      map[c] = escape(c);    }    r = new RegExp('([' + chars + '])');    parts = str.split(r);    for (i = l = 0, ref = parts.length; 0 <= ref ? l < ref : l > ref; i = 0 <= ref ? ++l : --l) {      v = parts[i];      if (v.length === 1 && v in map) {        parts[i] = map[v];      }    }    return parts.join('');  };  exports.buffer_concat = function(buf_a, buf_b) {    var dst;    dst = new Buffer(buf_a.length + buf_b.length);    buf_a.copy(dst);    buf_b.copy(dst, buf_a.length);    return dst;  };  exports.md5_hex = function(data) {    return crypto.createHash('md5').update(data).digest('hex');  };  exports.sha1_base64 = function(data) {    return crypto.createHash('sha1').update(data).digest('base64');  };  exports.timeout_chain = function(arr) {    var fun, ref, timeout, user_fun;    arr = arr.slice(0);    if (!arr.length) {      return;    }    ref = arr.shift(), timeout = ref[0], user_fun = ref[1];    fun = (function(_this) {      return function() {        user_fun();        return exports.timeout_chain(arr);      };    })(this);    return setTimeout(fun, timeout);  };  exports.objectExtend = function(dst, src) {    var k;    for (k in src) {      if (src.hasOwnProperty(k)) {        dst[k] = src[k];      }    }    return dst;  };  exports.overshadowListeners = function(ee, event, handler) {    var new_handler, old_listeners;    old_listeners = ee.listeners(event).slice(0);    ee.removeAllListeners(event);    new_handler = function() {      var j, len, listener;      if (handler.apply(this, arguments) !== true) {        for (j = 0, len = old_listeners.length; j < len; j++) {          listener = old_listeners[j];          listener.apply(this, arguments);        }        return false;      }      return true;    };    return ee.addListener(event, new_handler);  };  escapable = /[\x00-\x1f\ud800-\udfff\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufff0-\uffff]/g;  unroll_lookup = function(escapable) {    var c, i, unrolled;    unrolled = {};    c = (function() {      var j, results;      results = [];      for (i = j = 0; j < 65536; i = ++j) {        results.push(String.fromCharCode(i));      }      return results;    })();    escapable.lastIndex = 0;    c.join('').replace(escapable, function(a) {      return unrolled[a] = '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4);    });    return unrolled;  };  lookup = unroll_lookup(escapable);  exports.quote = function(string) {    var quoted;    quoted = JSON.stringify(string);    escapable.lastIndex = 0;    if (!escapable.test(quoted)) {      return quoted;    }    return quoted.replace(escapable, function(a) {      return lookup[a];    });  };  exports.parseCookie = function(cookie_header) {    var cookie, cookies, j, len, parts, ref;    cookies = {};    if (cookie_header) {      ref = cookie_header.split(';');      for (j = 0, len = ref.length; j < len; j++) {        cookie = ref[j];        parts = cookie.split('=');        cookies[parts[0].trim()] = (parts[1] || '').trim();      }    }    return cookies;  };  exports.random32 = function() {    var foo, v;    foo = crypto.randomBytes(4);    v = [foo[0], foo[1], foo[2], foo[3]];    return v[0] + (v[1] * 256) + (v[2] * 256 * 256) + (v[3] * 256 * 256 * 256);  };}).call(this);
 |