```\n/// @param \_preimage The sha256 preimage of the digest\nfunction provideECDSAFraudProof(\n    DepositUtils.Deposit storage \_d,\n    uint8 \_v,\n    bytes32 \_r,\n    bytes32 \_s,\n    bytes32 \_signedDigest,\n    bytes memory \_preimage\n) public {\n    require(\n        !\_d.inFunding() && !\_d.inFundingFailure(),\n        "Use provideFundingECDSAFraudProof instead"\n    );\n    require(\n        !\_d.inSignerLiquidation(),\n        "Signer liquidation already in progress"\n    );\n    require(!\_d.inEndState(), "Contract has halted");\n    require(submitSignatureFraud(\_d, \_v, \_r, \_s, \_signedDigest, \_preimage), "Signature is not fraud");\n    startSignerFraudLiquidation(\_d);\n}\n```\n