```\nfunction executeRoutes(\n    uint32[] calldata routeIds,\n    bytes[] calldata dataItems,\n    bytes[] calldata eventDataItems\n) external payable {\n    uint256 routeIdslength = routeIds.length;\n    for (uint256 index = 0; index < routeIdslength; ) {\n        (bool success, bytes memory result) = addressAt(routeIds[index])\n            .delegatecall(dataItems[index]);\n\n        if (!success) {\n            assembly {\n                revert(add(result, 32), mload(result))\n            }\n        }\n\n        emit SocketRouteExecuted(routeIds[index], eventDataItems[index]);\n\n        unchecked {\n            ++index;\n        }\n    }\n}\n```\n