```\n  function redeemYield(uint256 amount) external {\n    if(amount == 0) revert InvalidRedemption();\n    if(block.timestamp < concludeTime + delay || !concluded) revert NotConcluded();\n    uint256 yieldShare = FixedPointMathLib.divWad(amount, ERC20(yt).totalSupply());\n    YieldToken(yt).burnYT(msg.sender, amount);\n    uint256 yieldTokensLength = yieldTokens.length;\n    for(uint8 i; i < yieldTokensLength; ++i) {\n      uint256 finalYield;\n      if(yieldTokens[i] == depositToken) {\n        finalYield = ERC20(yieldTokens[i]).balanceOf(address(this)) - depositTokenAmount;\n      }\n      else {\n        finalYield = ERC20(yieldTokens[i]).balanceOf(address(this));\n      }\n      uint256 claimable = FixedPointMathLib.mulWad(finalYield, yieldShare);\n      SafeTransferLib.safeTransfer(yieldTokens[i], msg.sender, claimable);\n    }\n    emit YieldTokenRedemption(msg.sender, amount);\n  }\n```\n