```\\nfunction _functionCallWithValue(\\n    address target,\\n    bytes memory data,\\n    uint256 weiValue,\\n    string memory errorMessage\\n) private returns (bytes memory) {\\n    require(isContract(target), "Address: call to non-contract");\\n\\n    // solhint-disable-next-line avoid-low-level-calls\\n    (bool success, bytes memory returndata) = target.call{value: weiValue}(\\n        data\\n    );\\n    if (success) {\\n        return returndata;\\n    } else {\\n        // Look for revert reason and bubble it up if present\\n        if (returndata.length > 0) {\\n            // The easiest way to bubble the revert reason is using memory via assembly\\n\\n            // solhint-disable-next-line no-inline-assembly\\n            assembly {\\n                let returndata_size := mload(returndata)\\n                revert(add(32, returndata), returndata_size)\\n            }\\n        } else {\\n            revert(errorMessage);\\n        }\\n    }\\n}\\n```\\n