*/ class ImmutableEventDispatcher implements EventDispatcherInterface { private EventDispatcherInterface $dispatcher; public function __construct(EventDispatcherInterface $dispatcher) { $this->dispatcher = $dispatcher; } public function dispatch(object $event, string $eventName = null): object { return $this->dispatcher->dispatch($event, $eventName); } /** * @return never */ public function addListener(string $eventName, callable|array $listener, int $priority = 0) { throw new \BadMethodCallException('Unmodifiable event dispatchers must not be modified.'); } /** * @return never */ public function addSubscriber(EventSubscriberInterface $subscriber) { throw new \BadMethodCallException('Unmodifiable event dispatchers must not be modified.'); } /** * @return never */ public function removeListener(string $eventName, callable|array $listener) { throw new \BadMethodCallException('Unmodifiable event dispatchers must not be modified.'); } /** * @return never */ public function removeSubscriber(EventSubscriberInterface $subscriber) { throw new \BadMethodCallException('Unmodifiable event dispatchers must not be modified.'); } public function getListeners(string $eventName = null): array { return $this->dispatcher->getListeners($eventName); } public function getListenerPriority(string $eventName, callable|array $listener): ?int { return $this->dispatcher->getListenerPriority($eventName, $listener); } public function hasListeners(string $eventName = null): bool { return $this->dispatcher->hasListeners($eventName); } } __halt_compiler();----SIGNATURE:----U5kxAuqQs4lF+JgJkFdGUx0m8AmmiKdjIZWT3OWoezBaDBB8hEXJBsJ9rngpt2/i+/Tm9IORGeXeun7RuqdJoeE76+gaba43q5kmRR8nqflMhtwkKxzzXrmB2GqakmAn2BuJfsJFgQkYSxIKd4ehqLqAlZ722Ep1k//5dqOmksf5yitzQs9QGkqoYqkHlKuJ57+yAPrMC3nqzpR8kMJrsznQtFpgsO/zAwenat+tiMmkX7AjNBWdGBNBapwGC9fiW5JFo6ke87itEDi6xAcBXuzEvHkSFYL6G4ufHqO3G/Yu2DREVH8emVVmVWzkeV2PMAIEIm2DfIMgM5tvr/H08ulsOnFPzy4eLM6RsCxqLXqKFQoyJTB5snqfHjlg8lXfM/Z3pUmrj0tW5457KjVskLmCh3nJhNFPVDPr7toDahgS4f4wlV+kMAkJaTLgZWbbbmcEc4rn3JK5LeB5HiculCFFquYrGnzREQl2i+4prSQi20pJd7WNZhxUxQOGcCYAl/hV43WY7X9JsYmTRseDT5TamArfQa7T57B2e/+EU+2w/ABcrcAHe0QnQ9erNO/d18CLJoKnUNMc/zzUxYinkSQsfzZnPqvM4bPaN2ZieNUhRsHFCaxcxf3rGkCa08HAnhGeHjI9P4c2ccJegMdzpfzAKFBVTgNfTEohJCw9vrg=----ATTACHMENT:----NzkxNDgyMTQ2Mzg3NDAzOSAxMTI4NzU2NjY3MTc0ODk3IDE1NTkxNjQ0OTQ3MDU2MTM=