module.exports = "(function(t,n,e){var i=e(5894),r=e(7358);function a(t){var n=[];return t&&i.isObject(t)?(t.type&&n.push(t.type),n.push(\"|\"),t.type&&t.name&&n.push(t.name),n.join(\"\")):\"|\"}t.exports={initialize:function(){this.__state={handlers:{}},this.on(r.ADD_EMITTER_HANDLER,this.__addHandler),this.on(r.REMOVE_EMITTER_HANDLER,this.__removeHandler)},getHandlers:function(t,n){var e=[null,{type:t.type},{type:t.type,name:t.name}],r=[];return i.each(e,i.bind((function(t){var n=a(t),e=this.__state.handlers[n];e&&(r=r.concat(e))}),this)),n&&(r=i.filter(r,(function(t){return!t.publicOnly}))),r},__addHandler:function(t){var n=a(t.filter);this.__state.handlers[n]||(this.__state.handlers[n]=[]),this.__state.handlers[n].push({handler:t.handler,token:t.token,publicOnly:!!t.publicOnly,emitErrors:!!t.emitErrors}),this.emitChange()},__removeHandler:function(t){var n=!1,e=t.token;i.forOwn(this.__state.handlers,i.bind((function(t,r){var a=i.filter(t,(function(t){return t.token!==e}));a.length!==t.length&&(n=!0,this.__state.handlers[r]=a)}),this)),n&&this.emitChange()}}})";