```\nFile: ProportionalRebalancingStrategy.sol\n        for (uint256 i; i < holdings.length;) {\n            address holding = holdings[i];\n            uint256 targetAmount = totalValue * rebalancingTargets[i] / uint256(Constants.PERCENTAGE_DECIMALS);\n            uint256 currentAmount = values[i];\n\n            redeemHoldings[i] = holding;\n            depositHoldings[i] = holding;\n\n            if (targetAmount < currentAmount) {\n                unchecked {\n                    redeemAmounts[i] = currentAmount - targetAmount;\n                }\n            } else if (currentAmount < targetAmount) {\n                unchecked {\n                    depositAmounts[i] = targetAmount - currentAmount;\n                }\n            }\n\n            unchecked {\n                ++i;\n            }\n        }\n```\n