```\nfunction withdraw(\n  address account,\n  uint256 withdrawETH,\n  ERC20[] calldata tokens\n) external override {\n  uint256[] memory tokenAmounts = new uint256[](tokens.length);\n  uint256 ethAmount;\n  if (withdrawETH != 0) {\n    ethAmount = _withdraw(account);\n  }\n  unchecked {\n    // overflow should be impossible in for-loop index\n    for (uint256 i = 0; i < tokens.length; ++i) {\n      // overflow should be impossible in array length math\n      tokenAmounts[i] = _withdrawERC20(account, tokens[i]);\n    }\n    emit Withdrawal(account, ethAmount, tokens, tokenAmounts);\n  }\n}\n```\n