contract C {
    string x;
    uint[4] y;
    event E(string indexed r, uint[4] indexed t);
    function deposit() public {
        for (uint i = 0; i < 90; i++)
            bytes(x).push(0);
        for (uint8 i = 0; i < 90; i++)
            bytes(x)[i] = bytes1(i);
        y[0] = 4;
        y[1] = 5;
        y[2] = 6;
        y[3] = 7;
        emit E(x, y);
    }
}
// ====
// compileViaYul: also
// ----
// deposit() ->
// ~ emit E(string,uint256[4]): #0xa7fb06bb999a5eb9aff9e0779953f4e1e4ce58044936c2f51c7fb879b85c08bd, #0xe755d8cc1a8cde16a2a31160dcd8017ac32d7e2f13215b29a23cdae40a78aa81
// gas irOptimized: 353515
// gas legacy: 390742
// gas legacyOptimized: 376774
