```\nfor (uint256 i; i < numberOfRounds; ++i) {\n            uint256 roundId = _unsafeAdd(startingRoundId, i);\n            Round storage round = rounds[roundId];\n            uint256 roundValuePerEntry = round.valuePerEntry;\n            if (roundValuePerEntry == 0) {\n                (, , roundValuePerEntry) = _writeDataToRound({roundId: roundId, roundValue: 0});\n            }\n\n            _incrementUserDepositCount(roundId, round);\n\n            // @review depositAmount can be "0"\n            uint256 depositAmount = amounts[i];\n\n            // @review 0 % ANY_NUMBER = 0\n            if (depositAmount % roundValuePerEntry != 0) {\n                revert InvalidValue();\n            }\n            uint256 entriesCount = _depositETH(round, roundId, roundValuePerEntry, depositAmount);\n            expectedValue += depositAmount;\n\n            entriesCounts[i] = entriesCount;\n        }\n\n        // @review will not fail as long as user deposits normally to 1 round\n        // then he can deposit to any round with "0" amounts\n        if (expectedValue != msg.value) {\n            revert InvalidValue();\n        }\n```\n