define(function(){function d(){this._events=this._events||{};this._maxListeners=this._maxListeners||undefined; }d.EventEmitter=d;d.prototype._events=undefined;d.prototype._maxListeners=undefined; d.defaultMaxListeners=10;d.prototype.setMaxListeners=function(f){if(!c(f)||f<0||isNaN(f)){throw TypeError("n must be a positive number"); }this._maxListeners=f;return this;};d.prototype.emit=function(l){var m,k,f,g,h,j; if(!this._events){this._events={};}if(l==="error"){if(!this._events.error||(a(this._events.error)&&!this._events.error.length)){m=arguments[1]; if(m instanceof Error){throw m;}else{throw TypeError('Uncaught, unspecified "error" event.'); }return false;}}k=this._events[l];if(b(k)){return false;}if(e(k)){switch(arguments.length){case 1:k.call(this); break;case 2:k.call(this,arguments[1]);break;case 3:k.call(this,arguments[1],arguments[2]); break;default:f=arguments.length;g=new Array(f-1);for(h=1;h0&&this._events[g].length>f){this._events[g].warned=true; console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[g].length); if(typeof console.trace==="function"){console.trace();}}}return this;};d.prototype.on=d.prototype.addListener; d.prototype.once=function(f,i){if(!e(i)){throw TypeError("listener must be a function"); }var j=false;function h(){this.removeListener(f,h);if(!j){j=true;i.apply(this,arguments); }}h.listener=i;this.on(f,h);return this;};d.prototype.removeListener=function(h,l){var k,f,j,g; if(!e(l)){throw TypeError("listener must be a function");}if(!this._events||!this._events[h]){return this; }k=this._events[h];j=k.length;f=-1;if(k===l||(e(k.listener)&&k.listener===l)){delete this._events[h]; if(this._events.removeListener){this.emit("removeListener",h,l);}}else{if(a(k)){for(g=j; g-->0;){if(k[g]===l||(k[g].listener&&k[g].listener===l)){f=g;break;}}if(f<0){return this; }if(k.length===1){k.length=0;delete this._events[h];}else{k.splice(f,1);}if(this._events.removeListener){this.emit("removeListener",h,l); }}}return this;};d.prototype.removeAllListeners=function(h){var f,g;if(!this._events){return this; }if(!this._events.removeListener){if(arguments.length===0){this._events={};}else{if(this._events[h]){delete this._events[h]; }}return this;}if(arguments.length===0){for(f in this._events){if(f==="removeListener"){continue; }this.removeAllListeners(f);}this.removeAllListeners("removeListener");this._events={}; return this;}g=this._events[h];if(e(g)){this.removeListener(h,g);}else{while(g.length){this.removeListener(h,g[g.length-1]); }}delete this._events[h];return this;};d.prototype.listeners=function(g){var f;if(!this._events||!this._events[g]){f=[]; }else{if(e(this._events[g])){f=[this._events[g]];}else{f=this._events[g].slice(); }}return f;};d.listenerCount=function(h,g){var f;if(!h._events||!h._events[g]){f=0; }else{if(e(h._events[g])){f=1;}else{f=h._events[g].length;}}return f;};function e(f){return typeof f==="function"; }function c(f){return typeof f==="number";}function a(f){return typeof f==="object"&&f!==null; }function b(f){return f===void 0;}return new d();});