ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", 0x20024, 0xfffe0}, {&(0x7f00000104a0)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0x4045e0}], 0x2, &(0x7f0000003580)=ANY=[], 0x1) r0 = syz_init_net_socket$llc(0x1a, 0x0, 0x0) ioctl$EXT4_IOC_CLEAR_ES_CACHE(r0, 0x6628) r1 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000280)='cgroup.controllers\x00', 0x275a, 0x0) r2 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f00000001c0)='cpuset.effective_cpus\x00', 0x275a, 0x0) write$cgroup_int(r2, &(0x7f0000000380), 0x101bf) openat$cgroup_ro(r2, &(0x7f0000000080)='blkio.bfq.io_merged_recursive\x00', 0x0, 0x0) ftruncate(r1, 0x2ff8) write$binfmt_script(0xffffffffffffffff, &(0x7f0000000140)={'#! ', './file0', [{0x20, '%:%-\xef)%.'}, {0x20, '-),-'}, {0x20, ':^-'}], 0xa, "6f52e28ecebb13435466e7980f85aa5cb15c7966bba1c29a97fdf22434ecfbc2f3e806eea8a9827632e24be2a2aef0eafd498e9be29fdcfe126fd5e03475f9d341d9972766b424e081f869c7036a1ab6290a40cda547d558175116b996f7a9"}, 0x7c) 00:06:22 executing program 2: ioctl$TIOCL_PASTESEL(0xffffffffffffffff, 0x541c, &(0x7f0000000200)) prctl$PR_SET_TAGGED_ADDR_CTRL(0x37, 0x1) mmap(&(0x7f0000000000/0xb36000)=nil, 0xb36000, 0x3, 0x10, 0xffffffffffffffff, 0x0) r0 = socket(0x11, 0x800000003, 0x0) r1 = openat$nullb(0xffffffffffffff9c, &(0x7f0000000000), 0x0, 0x0) prctl$PR_SET_TAGGED_ADDR_CTRL(0x37, 0x1) ioctl$BLKIOMIN(r1, 0x1278, &(0x7f0000000080)) bind(r0, &(0x7f0000000080)=@generic={0x11, "0000010000000000080044944eeba71a4976e252922cb18f6e2e2aba000000012e0b3836005404b0e0301a4ce875f2e3ff5f163ee340b7679500800000000000000101013c5811039e15775027ecce66fd792bbf0e5bf5ff1b0816f3f6db1c00010000000000000049740000000000000006ad8e5ecc326d3a09ffc2c654"}, 0x80) getsockname$packet(r0, &(0x7f0000000100)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @dev}, &(0x7f0000000140)=0x2e) writev(r0, &(0x7f00000001c0)=[{&(0x7f00000000c0)="c3", 0x1}, {&(0x7f0000000100)="cac706ea6aef2e96eeb61646ea44c6fc28dd3359ec6f02df9c95964e75c10dd247a7588e548a973d85c36080a36918ed18ac487b220d2a69e7b34f0b0884f18d74870501fafd3fcc7530581656d192b0b4918132f45475c36ae758b35d8c6a66d59bd59cb9ea97120f7b1069ca5470bc79f52a6d56", 0x75}, {&(0x7f0000000180)="b83ba6e36d4a1b9210dd7139d6028568643cfd050b146ebe0ccaad9ce39d1adc11c1d18af8c46b508b70207e", 0x2c}], 0x3) timer_create(0x9, &(0x7f0000000000)={0x0, 0x12}, &(0x7f0000000040)) socket$igmp6(0xa, 0x3, 0x2) ioctl$TIOCGPGRP(0xffffffffffffffff, 0x540f, &(0x7f0000000080)=0x0) pidfd_open(r2, 0x0) 00:06:22 executing program 5: r0 = socket$inet_tcp(0x2, 0x1, 0x0) bind$inet(r0, &(0x7f0000000000)={0x2, 0x4e20, @multicast2}, 0x10) setsockopt$sock_int(r0, 0x1, 0x3c, &(0x7f0000000340)=0x1, 0x4) connect$inet(r0, &(0x7f0000000200)={0x2, 0x4e20, @loopback}, 0x10) r1 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f00000001c0)='memory.current\x00', 0x275a, 0x0) write$binfmt_script(r1, &(0x7f0000000000)=ANY=[], 0x208e24b) mmap(&(0x7f0000000000/0xb36000)=nil, 0xb36000, 0x2, 0x28011, r1, 0x0) sendmmsg$inet(r0, &(0x7f00000012c0)=[{{0x0, 0x4002, &(0x7f0000000600)=[{&(0x7f00000000c0)='o', 0x1}], 0x1, 0x0, 0x0, 0xf}, 0x34}, {{0x0, 0x0, &(0x7f0000001b80)=[{&(0x7f0000000740), 0x40020000}], 0x1, 0x0, 0x0, 0x28100000}}], 0x2, 0x60c5840) [ 382.810668][T21446] loop1: detected capacity change from 0 to 264192 00:06:22 executing program 2: ioctl$TIOCL_PASTESEL(0xffffffffffffffff, 0x541c, &(0x7f0000000200)) (async) prctl$PR_SET_TAGGED_ADDR_CTRL(0x37, 0x1) mmap(&(0x7f0000000000/0xb36000)=nil, 0xb36000, 0x3, 0x10, 0xffffffffffffffff, 0x0) r0 = socket(0x11, 0x800000003, 0x0) r1 = openat$nullb(0xffffffffffffff9c, &(0x7f0000000000), 0x0, 0x0) prctl$PR_SET_TAGGED_ADDR_CTRL(0x37, 0x1) ioctl$BLKIOMIN(r1, 0x1278, &(0x7f0000000080)) (async) bind(r0, &(0x7f0000000080)=@generic={0x11, "0000010000000000080044944eeba71a4976e252922cb18f6e2e2aba000000012e0b3836005404b0e0301a4ce875f2e3ff5f163ee340b7679500800000000000000101013c5811039e15775027ecce66fd792bbf0e5bf5ff1b0816f3f6db1c00010000000000000049740000000000000006ad8e5ecc326d3a09ffc2c654"}, 0x80) (async) getsockname$packet(r0, &(0x7f0000000100)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @dev}, &(0x7f0000000140)=0x2e) (async) writev(r0, &(0x7f00000001c0)=[{&(0x7f00000000c0)="c3", 0x1}, {&(0x7f0000000100)="cac706ea6aef2e96eeb61646ea44c6fc28dd3359ec6f02df9c95964e75c10dd247a7588e548a973d85c36080a36918ed18ac487b220d2a69e7b34f0b0884f18d74870501fafd3fcc7530581656d192b0b4918132f45475c36ae758b35d8c6a66d59bd59cb9ea97120f7b1069ca5470bc79f52a6d56", 0x75}, {&(0x7f0000000180)="b83ba6e36d4a1b9210dd7139d6028568643cfd050b146ebe0ccaad9ce39d1adc11c1d18af8c46b508b70207e", 0x2c}], 0x3) timer_create(0x9, &(0x7f0000000000)={0x0, 0x12}, &(0x7f0000000040)) (async) socket$igmp6(0xa, 0x3, 0x2) (async) ioctl$TIOCGPGRP(0xffffffffffffffff, 0x540f, &(0x7f0000000080)=0x0) pidfd_open(r2, 0x0) 00:06:22 executing program 4: r0 = socket$nl_route(0x10, 0x3, 0x0) r1 = syz_open_dev$vcsn(&(0x7f00000036c0), 0x4, 0x200) sendmsg$nl_route(r1, &(0x7f00000035c0)={&(0x7f0000003700)={0x10, 0x0, 0x0, 0x1000}, 0xc, &(0x7f00000037c0)={&(0x7f0000003600)=@bridge_newvlan={0x54, 0x70, 0x200, 0x70bd2d, 0x25dfdbfd, {}, [@BRIDGE_VLANDB_ENTRY={0xc, 0x1, 0x0, 0x1, @BRIDGE_VLANDB_ENTRY_RANGE={0x6, 0x2, 0xa}}, @BRIDGE_VLANDB_ENTRY={0xc, 0x1, 0x0, 0x1, @BRIDGE_VLANDB_ENTRY_STATE={0x5, 0x3, 0x1}}, @BRIDGE_VLANDB_ENTRY={0xc, 0x1, 0x0, 0x1, @BRIDGE_VLANDB_ENTRY_INFO={0x8, 0x1, {0x3}}}, @BRIDGE_VLANDB_ENTRY={0xc, 0x1, 0x0, 0x1, @BRIDGE_VLANDB_ENTRY_STATE={0x5, 0x3, 0x3}}, @BRIDGE_VLANDB_ENTRY={0xc, 0x1, 0x0, 0x1, @BRIDGE_VLANDB_ENTRY_INFO={0x8, 0x1, {0x52, 0x3}}}]}, 0x54}}, 0xe010) r2 = socket(0x10, 0x2, 0x0) write(r2, &(0x7f0000000280)="1c0000001a009b8a140000003b9b301f00"/28, 0x32) recvmmsg(r2, &(0x7f0000002ec0), 0x400000000000ec0, 0x2, &(0x7f00000001c0)={0x77359400}) sendmsg$nl_route(0xffffffffffffffff, &(0x7f0000000300)={0x0, 0x60, &(0x7f0000000080)={&(0x7f0000000240)=@newlink={0x44, 0x10, 0x401, 0x0, 0x0, {0x0, 0x0, 0x0, 0x0, 0x132}, [@IFLA_LINKINFO={0x14, 0x12, 0x0, 0x1, @macvlan={{0xc}, {0x4}}}, @IFLA_LINK={0x8}, @IFLA_MASTER={0x8}]}, 0x44}}, 0x0) sendmsg$nl_route_sched(0xffffffffffffffff, &(0x7f0000003800)={&(0x7f0000003680)={0x10, 0x0, 0x0, 0x200000}, 0xc, &(0x7f0000003780)={&(0x7f0000003980)=ANY=[@ANYBLOB="1af097e391ff4465f37e687e957984d66185a50425bd700000dc9f2500000001", @ANYRES32=0x0, @ANYBLOB="03000d0000000f000b00f47f04000a0004000a0004000a0004000a00"], 0x34}, 0x1, 0x0, 0x0, 0x48001}, 0x8000) r3 = socket$nl_route(0x10, 0x3, 0x0) r4 = socket$packet(0x11, 0x3, 0x300) ioctl$ifreq_SIOCGIFINDEX_batadv_hard(r4, 0x8933, &(0x7f0000000000)={'batadv_slave_0\x00', 0x0}) sendmsg$nl_route(r3, &(0x7f0000000100)={0x0, 0x0, &(0x7f00000000c0)={&(0x7f0000000140)=@ipv6_newnexthop={0x34, 0x68, 0x5fb9a818fb7378e9, 0x0, 0x0, {}, [@NHA_GATEWAY={0x14, 0x6, @in6_addr=@remote}, @NHA_OIF={0x8, 0x5, r5}]}, 0x34}}, 0x0) sendmsg$nl_route(r0, &(0x7f0000000200)={0x0, 0x0, &(0x7f00000000c0)={&(0x7f0000000100)=@ipv6_newrule={0x24, 0x18, 0x409, 0x0, 0x0, {}, [@FIB_RULE_POLICY=@FRA_GOTO={0x8, 0x1e, 0x7}]}, 0x24}}, 0x0) 00:06:22 executing program 3: r0 = socket$nl_generic(0x10, 0x3, 0x10) r1 = socket(0x11, 0x800000003, 0x0) bind(r1, &(0x7f0000000080)=@ethernet={0x306, @remote}, 0x80) sendmsg$key(r1, &(0x7f0000000300)={0x0, 0x0, &(0x7f00000002c0)={&(0x7f0000000040)={0x2, 0x16, 0xff, 0x5, 0x4, 0x0, 0x70bd2a, 0x25dfdbff, [@sadb_ident={0x2, 0xb, 0x200, 0x0, 0x5}]}, 0x20}}, 0x4000000) getsockname$packet(r1, &(0x7f0000000100)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @dev}, &(0x7f0000000140)=0x2e) r2 = syz_genetlink_get_family_id$batadv(&(0x7f00000001c0), r1) ioctl$ifreq_SIOCGIFINDEX_batadv_mesh(0xffffffffffffffff, 0x8933, &(0x7f0000000380)={'batadv0\x00', 0x0}) r4 = syz_genetlink_get_family_id$l2tp(&(0x7f0000000080), r0) sendmsg$L2TP_CMD_SESSION_MODIFY(r0, &(0x7f0000000180)={&(0x7f0000000000)={0x10, 0x0, 0x0, 0x20000}, 0xc, &(0x7f0000000140)={&(0x7f00000000c0)={0x48, r4, 0x200, 0x70bd2d, 0x25dfdbfd, {}, [@L2TP_ATTR_UDP_ZERO_CSUM6_TX={0x5, 0x21, 0x1}, @L2TP_ATTR_IP6_SADDR={0x14, 0x1f, @private0}, @L2TP_ATTR_SESSION_ID={0x8, 0xb, 0x1}, @L2TP_ATTR_VLAN_ID={0x6, 0xe, 0x7}, @L2TP_ATTR_RECV_SEQ={0x5, 0x12, 0x40}]}, 0x48}, 0x1, 0x0, 0x0, 0x44880}, 0x20040804) r5 = openat$dlm_plock(0xffffffffffffff9c, &(0x7f0000000340), 0x2c801, 0x0) r6 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000480), r1) sendmsg$NL80211_CMD_CONNECT(r5, &(0x7f0000000580)={&(0x7f00000003c0)={0x10, 0x0, 0x0, 0x40000000}, 0xc, &(0x7f0000000540)={&(0x7f00000004c0)={0x5c, r6, 0x100, 0x5, 0x25dfdbfe, {{}, {@void, @val={0xc, 0x99, {0x2, 0x2}}}}, [@NL80211_ATTR_WIPHY_EDMG_CHANNELS={0x5, 0x118, 0x28}, @NL80211_ATTR_MAC={0xa}, @NL80211_ATTR_VHT_CAPABILITY={0x10, 0x9d, {0x22ddafefb7a8c9de, {0xffff, 0x20, 0x4, 0x7ff}}}, @NL80211_ATTR_PBSS={0x4}, @NL80211_ATTR_MAC={0xa, 0x6, @from_mac}, @NL80211_ATTR_PBSS={0x4}, @NL80211_ATTR_PRIVACY={0x4}]}, 0x5c}, 0x1, 0x0, 0x0, 0x80}, 0x40040) sendmsg$BATADV_CMD_SET_MESH(0xffffffffffffffff, &(0x7f0000000440)={0x0, 0x0, &(0x7f0000000400)={&(0x7f0000000200)=ANY=[@ANYBLOB="14fe0000", @ANYRES16=r2, @ANYBLOB="000000001102c0e25d8544a2e460ca0f58451851b6e117397fe1e9b1b436ac14be7ccfd133e201dedcd5976888e39b6da7ffdc957470e1c770c4c7d792000000000000009cd4c14b5a89e11a50727599e788a6f00f3bdfe20afcad77f308637f20e590f37def54d987abb16000"/122, @ANYRES32=r3, @ANYBLOB="08002b5cfd2496"], 0x2c}}, 0x2400c000) 00:06:22 executing program 1: syz_mount_image$ntfs3(&(0x7f0000000000), &(0x7f0000000100)='./file0\x00', 0x8100000, 0x15, &(0x7f0000000bc0)=[{&(0x7f0000010000)="eb52904e54465320", 0x8}, {&(0x7f00000102e0)="00000000000000000000000000000000b00000004800000001004000000003000000000000000000000000000000000040000000000000", 0x37, 0x8}, {&(0x7f000001aa40)="494e4458280009000000000000000000000000000000000028000000b8060000e80f0000000000000d00d801000000000000000000000000000000000000000004000000000004006800520000000000050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d8010010000000000000000a000000000000060000000000000008032400410074007400720044006500660000000000010008000000000008006800520000000000050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d8010000000000000000000000000000000006000000000000000803240042006100640043006c007500730000000000070006000000000006006000500000000000050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d801001000000000000040000000000000000600000000000000070324004200690074006d0061007000070000000000070060004c0000000000050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d8010020000000000000002000000000000006000000000000000503240042006f006f00740069006c000b00000000000b006000500000000000050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec40d0000ab2bd24ec4d8010000000000000000000000000000000006000010000000000703240045007800740065006e00640002000000000002006800520000000000050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d801000004000000000000000400000000000600000000000000080324004c006f006700460069006c006500000000000100000000000000010060004a0000000000050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d8010070000000000000006c0000000000000600000000000000040324004d004600540000000000000001000000000001006800520000000000050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d801001000000000000000100000000000000600000000000000080324004d00460054004d0069007200720000000200000009000000000009006000500000000000050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d801000000000000000000000000000000000600002000000000070324005300650063007500720065000a00000000000a006000500000000000050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d8010000020000000d00000002000000000006000000000000000703240055007000430061007300650003000000000003006000500000000000050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d8010000000000000000000000000000000006000000000000000703240056006f006c0075006d00650005000000000005005800440000000000050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100000000000000000000000000000000060000100000000001032e0000000000200000000000010068005400000000000500000000000500132d87d24ec4d801132d87d24ec4d801132d87d24ec4d801132d87d24ec4d80100100000000000006400000000000000200000002d0000000900660069006c0065002e0063006f006c006400000000001b0000000000010060004c0000000000050000000000050073a685d24ec4d80173a685d24ec4d80173a685d24ec4d80173a685d24ec4d80100000000000000000000000000000000200000102d0000000500660069006c0065003000000000001e0000000000010060004c0000000000050000000000050073a685d24ec4d801132d87d24ec4d801132d87d24ec4d80173a685d24ec4d80100100000000000000a0000000000000020000000590000000500660069006c006500310000000d001f0000000000010060004c00000000000500000000000500132d87d24ec4d801132d87d24ec4d801132d87d24ec4d801132d87d24ec4d80100300000000000002823000000000000200000002d0000000500660069006c0065003200000000001f0000000000010060004c00000000000500000000000500132d87d24ec4d801132d87d24ec4d801132d87d24ec4d801132d87d24ec4d80100300000000000002823000000000000200000002d0000000500660069006c00650033000000000000000000000000001000000002", 0x6cd, 0x3f}, {&(0x7f00000001c0)="813e37f8f9bc53b8d2190168e4d3d1b4f63c4b993e82f1dfe7354fcd09930a92c992e6966329bbc621822681bb9fd0f4af588ab5629a7d33e299719b300fdac1ba10427c39a282e682073ec94414870644efe15b", 0x54, 0x2000}, {&(0x7f0000010120)="46494c453000030000000000000000000100010038000100980100000004000000000000000000000400000000000000030000000000000010000000600000000000180000000000480000001800000000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80106000000000000000000000000000000000000000001000000000000000000000000000000000000300000006800000000001800000002004a00000018000100050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d8010070000000000000006c0000000000000600000000000000040324004d00460054000000000000008000000048000000010040000000010000000000000000003e00000000000000400000000000000000f003000000000000f003000000000000f0030000000000113f040000000000b0000000480000000100400000000300000000000000000000000000000000004000000000000000001000000000000020000000000000002000000000000000110102", 0x18b, 0x4000}, {&(0x7f0000000040)="00000000000000000000000000000000000000000000000000000000000003", 0x1f, 0x41e0}, {&(0x7f00000104c0)="000000000000000000000000000000000000000000000000000000000000020046494c453000030000000000000000000200010038000100580100000004000000000000000000000300000002000000020000000000000010000000600000000000180000000000480000001800000000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80106000000000000000000000000000000000000000001000000000000000000000000000000000000300000007000000000001800000002005200000018000100050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d801000004000000000000000400000000000600000000000000080324004c006f006700460069006c0065000000000000008000000048000000010040000000010000000000000000003f00000000000000400000000000000000000400000000000000040000000000000004000000000021400001", 0x16c, 0x47e0}, {&(0x7f0000010660)="000000000000000000000000000000000000000000000000000000000000020046494c453000030000000000000000000300010038000100e00100000004000000000000000000000600000003000000040000000000000010000000480000000000180000000000300000001800000000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80106000000000000000000000000000000300000006800000000001800000001005000000018000100050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d8010000000000000000000000000000000006000000000000000703240056006f006c0075006d00650050000000800000000000180000000200640000001800000001000480480000005400000000000000140000000200340002000000000014009f011200010100000000000512000000000018009f011200010200000000000520000000200200000101000000000005120000000102000000000005200000002002000000000000600000003000000000001800000004001200000018000000730079007a006b0061006c006c0065007200000000000000700000002800000000001800000005000c00000018000000000000000000000003010000000000008000000018", 0x1e5, 0x4be0}, {&(0x7f0000000240)="000000000000000000000000000000000000000000000000000000000000040046494c453000030000000000000000000400010038000100c00100000004000000000000000000000400000004000000020000000000000010000000480000000000180000000000300000001800000000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80106000000000000000000000000000000300000007000000000001800000002005200000018000100050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d8010010000000000000000a00000000000006000000000000000803240041007400740072004400650066000000000000005000000080000000000018000000030064000000180000000100048048000000540000000000000014000000020034000200000000001400890012000101000000000005120000000000180089001200010200000000000520000000200200000101000000000005120000000102000000000005200000002002000000000000800000004800000001004000000001000000000000000000000000000000000040000000000000000010000000000000000a000000000000000a000000000000110146", 0x1d3, 0x4fe0}, {&(0x7f00000005c0)="000000000000000000000000000000000000000000000000000000000000020046494c453000030000000000000000000500010038000300000200000004000000000000000000000600000005000000030000000000000010000000480000000000180000000000300000001800000000ab2bd24ec4d801132d87d24ec4d801132d87d24ec4d80100ab2bd24ec4d80126000010000000000000000000000000300000006000000000001800000001004400000018000100050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100000000000000000000000000000000060000100000000001032e00000000005000000048000000010040000000020000000000000000000100000000000000400000000000000000200000000000002c100000000000002c10000000000000110243000000000090000000580000000004180000000300380000002000000024004900330030003000000001000000001000000100000010000000280000002800000001000000000000000000000018000000030000000000000000000000a00000005000000001044000000005000000000000000000000000000000000048000000000000000010000000000000001000000000000000100000000000002400490033003000110145", 0x1eb, 0x53e0}, {&(0x7f00000007c0)="000000000000000000000000000000000000000000000000000000000000030046494c453000030000000000000000000600010038000100500100000004000000000000000000000300000006000000020000000000000010000000600000000000180000000000480000001800000000ab78326429fb9833e736afe66d2fa16d2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80106000000000000000000000000000000000000000001000000000000000000000000000000000000300000006800000000001800000002005000000018000100050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d801001000000000000040000000000000000600000000000000070324004200690074006d0061007000800000004800000100000000000000000000000000000000004000000000000000001000000000000040000000000000004000000000000000110147", 0x16b, 0x57e0}, {&(0x7f0000010640)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0x5b68}, {&(0x7f0000011040)="000000000000000000000000000000000000000000000000000000000000020046494c453000030000000000000000000800010038000100780100000004000000000000000000000400000008000000020000000000000010000000600000000000180000000000480000001800000000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80106000000000000000000000000000000000000000001000000000000000000000000000000000000300000007000000000001800000003005200000018000100050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d8010000000000000000000000000000000006000000000000000803240042006100640043006c0075007300ffff00000000800000001800000000001800000002000000000018000000800000005000000001044000000001000000000000000000fe01000000000000480000000000000000f01f000000000000f01f00000000000000000000000000240042006100640002ff01", 0x18b, 0x5fe0}, {&(0x7f0000011200)="000000000000000000000000000000000000000000000000000000000000020046494c453000030000000000000000000900010038000900000300000004000000000000000000000500000009000000030000000000000010000000600000000000180000000000480000001800000000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80106000020000000000000000000000000000000000101000000000000000000000000000000000000300000006800000000001800000001005000000018000100050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100000000000000000000000000000000060000200000000007032400530065006300750072006500800000005000000001044000000002000000000000000000400000000000000048000000000000000010040000000000700104000000000070010400000000002400530044005300114148000000000090000000e00000000004180000000300c00000002000000024005300440048000000000012000000001000000100000010000000b0000000b000000000000000180014000000000030000800000000005124b300010100005124b3000101000080000000000000007c0000004900490018001400000000003000080000000000a0ddde4202010000a0ddde42020100000001000000000000640000004900490018001400000000003000080000000300f01203f800010000f01203f80001000000000000000000007c000000490049000000000000000000100000000200000090000000c80000000004180000000400a800000020000000240053004900490000000000100000000010000001000000100000009800000098000000000000001400140000000000280004000000000000010000f01203f80001000000000000000000007c00000014001400000000002800040000000000010100005124b3000101000080000000000000007c0000001400140000000000280004000000000002010000a0ddde420201000000010000000000006400000000000000000000001000000002", 0x315, 0x63e0}, {&(0x7f0000011520)="000000000000000000000000000000000000000000000000000000000000030046494c453000030000000000000000000a0001003800010098010000000400000000000000000000040000000a000000020000000000000010000000600000000000180000000000480000001800000000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80106000000000000000000000000000000000000000001000000000000000000000000000000000000300000006800000000001800000003005000000018000100050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d801000002000000000000000200000000000600000000000000070324005500700043006100730065008000000048000000010040000000010000000000000000001f000000000000004000000000000000000002000000000000000200000000000000020000000000212089", 0x163, 0x67e0}, {&(0x7f000001b660)="f01203f80001000000000000000000007c0000000100048048000000580000000000000014000000020034000200000000001400890012000101000000000005120000000000180089001200010200000000000520000000200200000102000000000005200000002002000001020000000000052000000020020000000000005124b30001010000007c00000001000480480000005800000000000000140000000200340002000000000014009f111200010100000000000512000000000018009f01120001020080000000052000000020020000010200000000000520000000200200000102000000000005200000002002000000000000a0ddde4202010000000100000000000064000000010004803000000040000000000000001400000002001c000100000000031400ff011f00010100000000000100000000010200000000000520000000200200000102000000000005200000002002", 0x15b, 0x7fff}, {&(0x7f0000013b20)="d000000020000000000018000000030008000000180000002d0000003c000000e00000005800000000001800000004003c000000180000001400000000060400244c585549440000000000001400000000060400244c584749440000000000001400000000060400244c584d4f4400ed8100000000000000ffffffff0000e20046494c452a00030000000000000000000000000030000000380000000004", 0x9e, 0xc380}, {&(0x7f000001b200)="10", 0x1, 0x46080}, {&(0x7f0000000440)="f7ffffffffff6c85507e207950cbb02575507700fffb9a55fb8d253755da1453094bdf12f9dea56eca6103d9a0c7c7f10482f7433c1b819f5bfc850c99b3f9d627a7b397fdf4f0303f271f526a9a7890a9a155af4ff2f497feffaec1f6fc8abc8717cb83a803b225e2e5497563b268a3beb1f964000000000000002061dff0281b6dc6572ed135b36f9c052504062fc60097e40f9be0fb831dad3a996176570845730000000000000000000095fe28614719bf7f7be9f18fa6a54f848514c8763ad7e6e41e09dd208a22b79d97053f495ba598be066ec1de22141e0339ee423dbd9e79851d13117d3e8b8248ab4673f6b8f473bf4c1f5d730c7ededcd9705ef3dd745ed31edb04fc1b861c2cb57e107c2eaa0a2ccbc67ba70b9af536564c93b73ab6cfafc58d339738640af0789756372a0b0d64ba25d4d1a703738459ff5a492de9f3ddce43b4", 0x147, 0x47000}, {&(0x7f000003c0c0)="0000000000000000000000000000000000000000000000000000000000000400ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", 0x20024, 0xfffe0}, {&(0x7f00000104a0)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0x4045e0}], 0x2, &(0x7f0000003580)=ANY=[], 0x1) (async) r0 = syz_init_net_socket$llc(0x1a, 0x0, 0x0) ioctl$EXT4_IOC_CLEAR_ES_CACHE(r0, 0x6628) r1 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000280)='cgroup.controllers\x00', 0x275a, 0x0) r2 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f00000001c0)='cpuset.effective_cpus\x00', 0x275a, 0x0) write$cgroup_int(r2, &(0x7f0000000380), 0x101bf) openat$cgroup_ro(r2, &(0x7f0000000080)='blkio.bfq.io_merged_recursive\x00', 0x0, 0x0) (async) ftruncate(r1, 0x2ff8) (async) write$binfmt_script(0xffffffffffffffff, &(0x7f0000000140)={'#! ', './file0', [{0x20, '%:%-\xef)%.'}, {0x20, '-),-'}, {0x20, ':^-'}], 0xa, "6f52e28ecebb13435466e7980f85aa5cb15c7966bba1c29a97fdf22434ecfbc2f3e806eea8a9827632e24be2a2aef0eafd498e9be29fdcfe126fd5e03475f9d341d9972766b424e081f869c7036a1ab6290a40cda547d558175116b996f7a9"}, 0x7c) 00:06:22 executing program 2: ioctl$TIOCL_PASTESEL(0xffffffffffffffff, 0x541c, &(0x7f0000000200)) (async) prctl$PR_SET_TAGGED_ADDR_CTRL(0x37, 0x1) (async) mmap(&(0x7f0000000000/0xb36000)=nil, 0xb36000, 0x3, 0x10, 0xffffffffffffffff, 0x0) r0 = socket(0x11, 0x800000003, 0x0) r1 = openat$nullb(0xffffffffffffff9c, &(0x7f0000000000), 0x0, 0x0) prctl$PR_SET_TAGGED_ADDR_CTRL(0x37, 0x1) (async) ioctl$BLKIOMIN(r1, 0x1278, &(0x7f0000000080)) (async) bind(r0, &(0x7f0000000080)=@generic={0x11, "0000010000000000080044944eeba71a4976e252922cb18f6e2e2aba000000012e0b3836005404b0e0301a4ce875f2e3ff5f163ee340b7679500800000000000000101013c5811039e15775027ecce66fd792bbf0e5bf5ff1b0816f3f6db1c00010000000000000049740000000000000006ad8e5ecc326d3a09ffc2c654"}, 0x80) (async, rerun: 64) getsockname$packet(r0, &(0x7f0000000100)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @dev}, &(0x7f0000000140)=0x2e) (rerun: 64) writev(r0, &(0x7f00000001c0)=[{&(0x7f00000000c0)="c3", 0x1}, {&(0x7f0000000100)="cac706ea6aef2e96eeb61646ea44c6fc28dd3359ec6f02df9c95964e75c10dd247a7588e548a973d85c36080a36918ed18ac487b220d2a69e7b34f0b0884f18d74870501fafd3fcc7530581656d192b0b4918132f45475c36ae758b35d8c6a66d59bd59cb9ea97120f7b1069ca5470bc79f52a6d56", 0x75}, {&(0x7f0000000180)="b83ba6e36d4a1b9210dd7139d6028568643cfd050b146ebe0ccaad9ce39d1adc11c1d18af8c46b508b70207e", 0x2c}], 0x3) timer_create(0x9, &(0x7f0000000000)={0x0, 0x12}, &(0x7f0000000040)) (async, rerun: 64) socket$igmp6(0xa, 0x3, 0x2) (async, rerun: 64) ioctl$TIOCGPGRP(0xffffffffffffffff, 0x540f, &(0x7f0000000080)=0x0) pidfd_open(r2, 0x0) 00:06:22 executing program 0: r0 = socket$inet_tcp(0x2, 0x1, 0x0) bind$inet(r0, &(0x7f0000000000)={0x2, 0x4e20, @multicast2}, 0x10) setsockopt$sock_int(r0, 0x1, 0x3c, &(0x7f0000000340)=0x1, 0x4) connect$inet(r0, &(0x7f0000000200)={0x2, 0x4e20, @loopback}, 0x10) r1 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f00000001c0)='memory.current\x00', 0x275a, 0x0) write$binfmt_script(r1, &(0x7f0000000000)=ANY=[], 0x208e24b) mmap(&(0x7f0000000000/0xb36000)=nil, 0xb36000, 0x2, 0x28011, r1, 0x0) sendmmsg$inet(r0, &(0x7f00000012c0)=[{{0x0, 0x4002, &(0x7f0000000600)=[{&(0x7f00000000c0)='o', 0x1}], 0x1, 0x0, 0x0, 0xf}, 0x34}, {{0x0, 0x0, &(0x7f0000001b80)=[{&(0x7f0000000740), 0x40020000}], 0x1, 0x0, 0x0, 0xb8000000}}], 0x2, 0x60c5840) [ 382.944709][T21466] loop1: detected capacity change from 0 to 264192 00:06:22 executing program 3: r0 = socket$nl_generic(0x10, 0x3, 0x10) r1 = socket(0x11, 0x800000003, 0x0) bind(r1, &(0x7f0000000080)=@ethernet={0x306, @remote}, 0x80) sendmsg$key(r1, &(0x7f0000000300)={0x0, 0x0, &(0x7f00000002c0)={&(0x7f0000000040)={0x2, 0x16, 0xff, 0x5, 0x4, 0x0, 0x70bd2a, 0x25dfdbff, [@sadb_ident={0x2, 0xb, 0x200, 0x0, 0x5}]}, 0x20}}, 0x4000000) getsockname$packet(r1, &(0x7f0000000100)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @dev}, &(0x7f0000000140)=0x2e) r2 = syz_genetlink_get_family_id$batadv(&(0x7f00000001c0), r1) ioctl$ifreq_SIOCGIFINDEX_batadv_mesh(0xffffffffffffffff, 0x8933, &(0x7f0000000380)={'batadv0\x00', 0x0}) r4 = syz_genetlink_get_family_id$l2tp(&(0x7f0000000080), r0) sendmsg$L2TP_CMD_SESSION_MODIFY(r0, &(0x7f0000000180)={&(0x7f0000000000)={0x10, 0x0, 0x0, 0x20000}, 0xc, &(0x7f0000000140)={&(0x7f00000000c0)={0x48, r4, 0x200, 0x70bd2d, 0x25dfdbfd, {}, [@L2TP_ATTR_UDP_ZERO_CSUM6_TX={0x5, 0x21, 0x1}, @L2TP_ATTR_IP6_SADDR={0x14, 0x1f, @private0}, @L2TP_ATTR_SESSION_ID={0x8, 0xb, 0x1}, @L2TP_ATTR_VLAN_ID={0x6, 0xe, 0x7}, @L2TP_ATTR_RECV_SEQ={0x5, 0x12, 0x40}]}, 0x48}, 0x1, 0x0, 0x0, 0x44880}, 0x20040804) r5 = openat$dlm_plock(0xffffffffffffff9c, &(0x7f0000000340), 0x2c801, 0x0) r6 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000480), r1) sendmsg$NL80211_CMD_CONNECT(r5, &(0x7f0000000580)={&(0x7f00000003c0)={0x10, 0x0, 0x0, 0x40000000}, 0xc, &(0x7f0000000540)={&(0x7f00000004c0)={0x5c, r6, 0x100, 0x5, 0x25dfdbfe, {{}, {@void, @val={0xc, 0x99, {0x2, 0x2}}}}, [@NL80211_ATTR_WIPHY_EDMG_CHANNELS={0x5, 0x118, 0x28}, @NL80211_ATTR_MAC={0xa}, @NL80211_ATTR_VHT_CAPABILITY={0x10, 0x9d, {0x22ddafefb7a8c9de, {0xffff, 0x20, 0x4, 0x7ff}}}, @NL80211_ATTR_PBSS={0x4}, @NL80211_ATTR_MAC={0xa, 0x6, @from_mac}, @NL80211_ATTR_PBSS={0x4}, @NL80211_ATTR_PRIVACY={0x4}]}, 0x5c}, 0x1, 0x0, 0x0, 0x80}, 0x40040) sendmsg$BATADV_CMD_SET_MESH(0xffffffffffffffff, &(0x7f0000000440)={0x0, 0x0, &(0x7f0000000400)={&(0x7f0000000200)=ANY=[@ANYBLOB="14fe0000", @ANYRES16=r2, @ANYBLOB="000000001102c0e25d8544a2e460ca0f58451851b6e117397fe1e9b1b436ac14be7ccfd133e201dedcd5976888e39b6da7ffdc957470e1c770c4c7d792000000000000009cd4c14b5a89e11a50727599e788a6f00f3bdfe20afcad77f308637f20e590f37def54d987abb16000"/122, @ANYRES32=r3, @ANYBLOB="08002b5cfd2496"], 0x2c}}, 0x2400c000) socket$nl_generic(0x10, 0x3, 0x10) (async) socket(0x11, 0x800000003, 0x0) (async) bind(r1, &(0x7f0000000080)=@ethernet={0x306, @remote}, 0x80) (async) sendmsg$key(r1, &(0x7f0000000300)={0x0, 0x0, &(0x7f00000002c0)={&(0x7f0000000040)={0x2, 0x16, 0xff, 0x5, 0x4, 0x0, 0x70bd2a, 0x25dfdbff, [@sadb_ident={0x2, 0xb, 0x200, 0x0, 0x5}]}, 0x20}}, 0x4000000) (async) getsockname$packet(r1, &(0x7f0000000100)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @dev}, &(0x7f0000000140)=0x2e) (async) syz_genetlink_get_family_id$batadv(&(0x7f00000001c0), r1) (async) ioctl$ifreq_SIOCGIFINDEX_batadv_mesh(0xffffffffffffffff, 0x8933, &(0x7f0000000380)) (async) syz_genetlink_get_family_id$l2tp(&(0x7f0000000080), r0) (async) sendmsg$L2TP_CMD_SESSION_MODIFY(r0, &(0x7f0000000180)={&(0x7f0000000000)={0x10, 0x0, 0x0, 0x20000}, 0xc, &(0x7f0000000140)={&(0x7f00000000c0)={0x48, r4, 0x200, 0x70bd2d, 0x25dfdbfd, {}, [@L2TP_ATTR_UDP_ZERO_CSUM6_TX={0x5, 0x21, 0x1}, @L2TP_ATTR_IP6_SADDR={0x14, 0x1f, @private0}, @L2TP_ATTR_SESSION_ID={0x8, 0xb, 0x1}, @L2TP_ATTR_VLAN_ID={0x6, 0xe, 0x7}, @L2TP_ATTR_RECV_SEQ={0x5, 0x12, 0x40}]}, 0x48}, 0x1, 0x0, 0x0, 0x44880}, 0x20040804) (async) openat$dlm_plock(0xffffffffffffff9c, &(0x7f0000000340), 0x2c801, 0x0) (async) syz_genetlink_get_family_id$nl80211(&(0x7f0000000480), r1) (async) sendmsg$NL80211_CMD_CONNECT(r5, &(0x7f0000000580)={&(0x7f00000003c0)={0x10, 0x0, 0x0, 0x40000000}, 0xc, &(0x7f0000000540)={&(0x7f00000004c0)={0x5c, r6, 0x100, 0x5, 0x25dfdbfe, {{}, {@void, @val={0xc, 0x99, {0x2, 0x2}}}}, [@NL80211_ATTR_WIPHY_EDMG_CHANNELS={0x5, 0x118, 0x28}, @NL80211_ATTR_MAC={0xa}, @NL80211_ATTR_VHT_CAPABILITY={0x10, 0x9d, {0x22ddafefb7a8c9de, {0xffff, 0x20, 0x4, 0x7ff}}}, @NL80211_ATTR_PBSS={0x4}, @NL80211_ATTR_MAC={0xa, 0x6, @from_mac}, @NL80211_ATTR_PBSS={0x4}, @NL80211_ATTR_PRIVACY={0x4}]}, 0x5c}, 0x1, 0x0, 0x0, 0x80}, 0x40040) (async) sendmsg$BATADV_CMD_SET_MESH(0xffffffffffffffff, &(0x7f0000000440)={0x0, 0x0, &(0x7f0000000400)={&(0x7f0000000200)=ANY=[@ANYBLOB="14fe0000", @ANYRES16=r2, @ANYBLOB="000000001102c0e25d8544a2e460ca0f58451851b6e117397fe1e9b1b436ac14be7ccfd133e201dedcd5976888e39b6da7ffdc957470e1c770c4c7d792000000000000009cd4c14b5a89e11a50727599e788a6f00f3bdfe20afcad77f308637f20e590f37def54d987abb16000"/122, @ANYRES32=r3, @ANYBLOB="08002b5cfd2496"], 0x2c}}, 0x2400c000) (async) 00:06:22 executing program 4: r0 = socket$nl_route(0x10, 0x3, 0x0) r1 = syz_open_dev$vcsn(&(0x7f00000036c0), 0x4, 0x200) sendmsg$nl_route(r1, &(0x7f00000035c0)={&(0x7f0000003700)={0x10, 0x0, 0x0, 0x1000}, 0xc, &(0x7f00000037c0)={&(0x7f0000003600)=@bridge_newvlan={0x54, 0x70, 0x200, 0x70bd2d, 0x25dfdbfd, {}, [@BRIDGE_VLANDB_ENTRY={0xc, 0x1, 0x0, 0x1, @BRIDGE_VLANDB_ENTRY_RANGE={0x6, 0x2, 0xa}}, @BRIDGE_VLANDB_ENTRY={0xc, 0x1, 0x0, 0x1, @BRIDGE_VLANDB_ENTRY_STATE={0x5, 0x3, 0x1}}, @BRIDGE_VLANDB_ENTRY={0xc, 0x1, 0x0, 0x1, @BRIDGE_VLANDB_ENTRY_INFO={0x8, 0x1, {0x3}}}, @BRIDGE_VLANDB_ENTRY={0xc, 0x1, 0x0, 0x1, @BRIDGE_VLANDB_ENTRY_STATE={0x5, 0x3, 0x3}}, @BRIDGE_VLANDB_ENTRY={0xc, 0x1, 0x0, 0x1, @BRIDGE_VLANDB_ENTRY_INFO={0x8, 0x1, {0x52, 0x3}}}]}, 0x54}}, 0xe010) r2 = socket(0x10, 0x2, 0x0) write(r2, &(0x7f0000000280)="1c0000001a009b8a140000003b9b301f00"/28, 0x32) recvmmsg(r2, &(0x7f0000002ec0), 0x400000000000ec0, 0x2, &(0x7f00000001c0)={0x77359400}) sendmsg$nl_route(0xffffffffffffffff, &(0x7f0000000300)={0x0, 0x60, &(0x7f0000000080)={&(0x7f0000000240)=@newlink={0x44, 0x10, 0x401, 0x0, 0x0, {0x0, 0x0, 0x0, 0x0, 0x132}, [@IFLA_LINKINFO={0x14, 0x12, 0x0, 0x1, @macvlan={{0xc}, {0x4}}}, @IFLA_LINK={0x8}, @IFLA_MASTER={0x8}]}, 0x44}}, 0x0) sendmsg$nl_route_sched(0xffffffffffffffff, &(0x7f0000003800)={&(0x7f0000003680)={0x10, 0x0, 0x0, 0x200000}, 0xc, &(0x7f0000003780)={&(0x7f0000003980)=ANY=[@ANYBLOB="1af097e391ff4465f37e687e957984d66185a50425bd700000dc9f2500000001", @ANYRES32=0x0, @ANYBLOB="03000d0000000f000b00f47f04000a0004000a0004000a0004000a00"], 0x34}, 0x1, 0x0, 0x0, 0x48001}, 0x8000) socket$nl_route(0x10, 0x3, 0x0) r3 = socket$packet(0x11, 0x3, 0x300) ioctl$ifreq_SIOCGIFINDEX_batadv_hard(r3, 0x8933, &(0x7f0000000000)={'batadv_slave_0\x00'}) sendmsg$nl_route(r0, &(0x7f0000000200)={0x0, 0x0, &(0x7f00000000c0)={&(0x7f0000000100)=@ipv6_newrule={0x24, 0x18, 0x409, 0x0, 0x0, {}, [@FIB_RULE_POLICY=@FRA_GOTO={0x8, 0x1e, 0x7}]}, 0x24}}, 0x0) 00:06:22 executing program 1: syz_mount_image$ntfs3(&(0x7f0000000000), &(0x7f0000000100)='./file0\x00', 0x8100000, 0x15, &(0x7f0000000bc0)=[{&(0x7f0000010000)="eb52904e54465320", 0x8}, {&(0x7f00000102e0)="00000000000000000000000000000000b00000004800000001004000000003000000000000000000000000000000000040000000000000", 0x37, 0x8}, {&(0x7f000001aa40)="494e4458280009000000000000000000000000000000000028000000b8060000e80f0000000000000d00d801000000000000000000000000000000000000000004000000000004006800520000000000050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d8010010000000000000000a000000000000060000000000000008032400410074007400720044006500660000000000010008000000000008006800520000000000050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d8010000000000000000000000000000000006000000000000000803240042006100640043006c007500730000000000070006000000000006006000500000000000050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d801001000000000000040000000000000000600000000000000070324004200690074006d0061007000070000000000070060004c0000000000050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d8010020000000000000002000000000000006000000000000000503240042006f006f00740069006c000b00000000000b006000500000000000050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec40d0000ab2bd24ec4d8010000000000000000000000000000000006000010000000000703240045007800740065006e00640002000000000002006800520000000000050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d801000004000000000000000400000000000600000000000000080324004c006f006700460069006c006500000000000100000000000000010060004a0000000000050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d8010070000000000000006c0000000000000600000000000000040324004d004600540000000000000001000000000001006800520000000000050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d801001000000000000000100000000000000600000000000000080324004d00460054004d0069007200720000000200000009000000000009006000500000000000050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d801000000000000000000000000000000000600002000000000070324005300650063007500720065000a00000000000a006000500000000000050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d8010000020000000d00000002000000000006000000000000000703240055007000430061007300650003000000000003006000500000000000050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d8010000000000000000000000000000000006000000000000000703240056006f006c0075006d00650005000000000005005800440000000000050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100000000000000000000000000000000060000100000000001032e0000000000200000000000010068005400000000000500000000000500132d87d24ec4d801132d87d24ec4d801132d87d24ec4d801132d87d24ec4d80100100000000000006400000000000000200000002d0000000900660069006c0065002e0063006f006c006400000000001b0000000000010060004c0000000000050000000000050073a685d24ec4d80173a685d24ec4d80173a685d24ec4d80173a685d24ec4d80100000000000000000000000000000000200000102d0000000500660069006c0065003000000000001e0000000000010060004c0000000000050000000000050073a685d24ec4d801132d87d24ec4d801132d87d24ec4d80173a685d24ec4d80100100000000000000a0000000000000020000000590000000500660069006c006500310000000d001f0000000000010060004c00000000000500000000000500132d87d24ec4d801132d87d24ec4d801132d87d24ec4d801132d87d24ec4d80100300000000000002823000000000000200000002d0000000500660069006c0065003200000000001f0000000000010060004c00000000000500000000000500132d87d24ec4d801132d87d24ec4d801132d87d24ec4d801132d87d24ec4d80100300000000000002823000000000000200000002d0000000500660069006c00650033000000000000000000000000001000000002", 0x6cd, 0x3f}, {&(0x7f00000001c0)="813e37f8f9bc53b8d2190168e4d3d1b4f63c4b993e82f1dfe7354fcd09930a92c992e6966329bbc621822681bb9fd0f4af588ab5629a7d33e299719b300fdac1ba10427c39a282e682073ec94414870644efe15b", 0x54, 0x2000}, {&(0x7f0000010120)="46494c453000030000000000000000000100010038000100980100000004000000000000000000000400000000000000030000000000000010000000600000000000180000000000480000001800000000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80106000000000000000000000000000000000000000001000000000000000000000000000000000000300000006800000000001800000002004a00000018000100050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d8010070000000000000006c0000000000000600000000000000040324004d00460054000000000000008000000048000000010040000000010000000000000000003e00000000000000400000000000000000f003000000000000f003000000000000f0030000000000113f040000000000b0000000480000000100400000000300000000000000000000000000000000004000000000000000001000000000000020000000000000002000000000000000110102", 0x18b, 0x4000}, {&(0x7f0000000040)="00000000000000000000000000000000000000000000000000000000000003", 0x1f, 0x41e0}, {&(0x7f00000104c0)="000000000000000000000000000000000000000000000000000000000000020046494c453000030000000000000000000200010038000100580100000004000000000000000000000300000002000000020000000000000010000000600000000000180000000000480000001800000000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80106000000000000000000000000000000000000000001000000000000000000000000000000000000300000007000000000001800000002005200000018000100050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d801000004000000000000000400000000000600000000000000080324004c006f006700460069006c0065000000000000008000000048000000010040000000010000000000000000003f00000000000000400000000000000000000400000000000000040000000000000004000000000021400001", 0x16c, 0x47e0}, {&(0x7f0000010660)="000000000000000000000000000000000000000000000000000000000000020046494c453000030000000000000000000300010038000100e00100000004000000000000000000000600000003000000040000000000000010000000480000000000180000000000300000001800000000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80106000000000000000000000000000000300000006800000000001800000001005000000018000100050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d8010000000000000000000000000000000006000000000000000703240056006f006c0075006d00650050000000800000000000180000000200640000001800000001000480480000005400000000000000140000000200340002000000000014009f011200010100000000000512000000000018009f011200010200000000000520000000200200000101000000000005120000000102000000000005200000002002000000000000600000003000000000001800000004001200000018000000730079007a006b0061006c006c0065007200000000000000700000002800000000001800000005000c00000018000000000000000000000003010000000000008000000018", 0x1e5, 0x4be0}, {&(0x7f0000000240)="000000000000000000000000000000000000000000000000000000000000040046494c453000030000000000000000000400010038000100c00100000004000000000000000000000400000004000000020000000000000010000000480000000000180000000000300000001800000000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80106000000000000000000000000000000300000007000000000001800000002005200000018000100050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d8010010000000000000000a00000000000006000000000000000803240041007400740072004400650066000000000000005000000080000000000018000000030064000000180000000100048048000000540000000000000014000000020034000200000000001400890012000101000000000005120000000000180089001200010200000000000520000000200200000101000000000005120000000102000000000005200000002002000000000000800000004800000001004000000001000000000000000000000000000000000040000000000000000010000000000000000a000000000000000a000000000000110146", 0x1d3, 0x4fe0}, {&(0x7f00000005c0)="000000000000000000000000000000000000000000000000000000000000020046494c453000030000000000000000000500010038000300000200000004000000000000000000000600000005000000030000000000000010000000480000000000180000000000300000001800000000ab2bd24ec4d801132d87d24ec4d801132d87d24ec4d80100ab2bd24ec4d80126000010000000000000000000000000300000006000000000001800000001004400000018000100050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100000000000000000000000000000000060000100000000001032e00000000005000000048000000010040000000020000000000000000000100000000000000400000000000000000200000000000002c100000000000002c10000000000000110243000000000090000000580000000004180000000300380000002000000024004900330030003000000001000000001000000100000010000000280000002800000001000000000000000000000018000000030000000000000000000000a00000005000000001044000000005000000000000000000000000000000000048000000000000000010000000000000001000000000000000100000000000002400490033003000110145", 0x1eb, 0x53e0}, {&(0x7f00000007c0)="000000000000000000000000000000000000000000000000000000000000030046494c453000030000000000000000000600010038000100500100000004000000000000000000000300000006000000020000000000000010000000600000000000180000000000480000001800000000ab78326429fb9833e736afe66d2fa16d2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80106000000000000000000000000000000000000000001000000000000000000000000000000000000300000006800000000001800000002005000000018000100050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d801001000000000000040000000000000000600000000000000070324004200690074006d0061007000800000004800000100000000000000000000000000000000004000000000000000001000000000000040000000000000004000000000000000110147", 0x16b, 0x57e0}, {&(0x7f0000010640)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0x5b68}, {&(0x7f0000011040)="000000000000000000000000000000000000000000000000000000000000020046494c453000030000000000000000000800010038000100780100000004000000000000000000000400000008000000020000000000000010000000600000000000180000000000480000001800000000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80106000000000000000000000000000000000000000001000000000000000000000000000000000000300000007000000000001800000003005200000018000100050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d8010000000000000000000000000000000006000000000000000803240042006100640043006c0075007300ffff00000000800000001800000000001800000002000000000018000000800000005000000001044000000001000000000000000000fe01000000000000480000000000000000f01f000000000000f01f00000000000000000000000000240042006100640002ff01", 0x18b, 0x5fe0}, {&(0x7f0000011200)="000000000000000000000000000000000000000000000000000000000000020046494c453000030000000000000000000900010038000900000300000004000000000000000000000500000009000000030000000000000010000000600000000000180000000000480000001800000000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80106000020000000000000000000000000000000000101000000000000000000000000000000000000300000006800000000001800000001005000000018000100050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100000000000000000000000000000000060000200000000007032400530065006300750072006500800000005000000001044000000002000000000000000000400000000000000048000000000000000010040000000000700104000000000070010400000000002400530044005300114148000000000090000000e00000000004180000000300c00000002000000024005300440048000000000012000000001000000100000010000000b0000000b000000000000000180014000000000030000800000000005124b300010100005124b3000101000080000000000000007c0000004900490018001400000000003000080000000000a0ddde4202010000a0ddde42020100000001000000000000640000004900490018001400000000003000080000000300f01203f800010000f01203f80001000000000000000000007c000000490049000000000000000000100000000200000090000000c80000000004180000000400a800000020000000240053004900490000000000100000000010000001000000100000009800000098000000000000001400140000000000280004000000000000010000f01203f80001000000000000000000007c00000014001400000000002800040000000000010100005124b3000101000080000000000000007c0000001400140000000000280004000000000002010000a0ddde420201000000010000000000006400000000000000000000001000000002", 0x315, 0x63e0}, {&(0x7f0000011520)="000000000000000000000000000000000000000000000000000000000000030046494c453000030000000000000000000a0001003800010098010000000400000000000000000000040000000a000000020000000000000010000000600000000000180000000000480000001800000000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80106000000000000000000000000000000000000000001000000000000000000000000000000000000300000006800000000001800000003005000000018000100050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d801000002000000000000000200000000000600000000000000070324005500700043006100730065008000000048000000010040000000010000000000000000001f000000000000004000000000000000000002000000000000000200000000000000020000000000212089", 0x163, 0x67e0}, {&(0x7f000001b660)="f01203f80001000000000000000000007c0000000100048048000000580000000000000014000000020034000200000000001400890012000101000000000005120000000000180089001200010200000000000520000000200200000102000000000005200000002002000001020000000000052000000020020000000000005124b30001010000007c00000001000480480000005800000000000000140000000200340002000000000014009f111200010100000000000512000000000018009f01120001020080000000052000000020020000010200000000000520000000200200000102000000000005200000002002000000000000a0ddde4202010000000100000000000064000000010004803000000040000000000000001400000002001c000100000000031400ff011f00010100000000000100000000010200000000000520000000200200000102000000000005200000002002", 0x15b, 0x7fff}, {&(0x7f0000013b20)="d000000020000000000018000000030008000000180000002d0000003c000000e00000005800000000001800000004003c000000180000001400000000060400244c585549440000000000001400000000060400244c584749440000000000001400000000060400244c584d4f4400ed8100000000000000ffffffff0000e20046494c452a00030000000000000000000000000030000000380000000004", 0x9e, 0xc380}, {&(0x7f000001b200)="10", 0x1, 0x46080}, {&(0x7f0000000440)="f7ffffffffff6c85507e207950cbb02575507700fffb9a55fb8d253755da1453094bdf12f9dea56eca6103d9a0c7c7f10482f7433c1b819f5bfc850c99b3f9d627a7b397fdf4f0303f271f526a9a7890a9a155af4ff2f497feffaec1f6fc8abc8717cb83a803b225e2e5497563b268a3beb1f964000000000000002061dff0281b6dc6572ed135b36f9c052504062fc60097e40f9be0fb831dad3a996176570845730000000000000000000095fe28614719bf7f7be9f18fa6a54f848514c8763ad7e6e41e09dd208a22b79d97053f495ba598be066ec1de22141e0339ee423dbd9e79851d13117d3e8b8248ab4673f6b8f473bf4c1f5d730c7ededcd9705ef3dd745ed31edb04fc1b861c2cb57e107c2eaa0a2ccbc67ba70b9af536564c93b73ab6cfafc58d339738640af0789756372a0b0d64ba25d4d1a703738459ff5a492de9f3ddce43b4", 0x147, 0x47000}, {&(0x7f000003c0c0)="0000000000000000000000000000000000000000000000000000000000000400ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", 0x20024, 0xfffe0}, {&(0x7f00000104a0)="00000000000000000000000000000000000000000000000000000000000002", 0x1f, 0x4045e0}], 0x2, &(0x7f0000003580)=ANY=[], 0x1) r0 = syz_init_net_socket$llc(0x1a, 0x0, 0x0) ioctl$EXT4_IOC_CLEAR_ES_CACHE(r0, 0x6628) (async) r1 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000280)='cgroup.controllers\x00', 0x275a, 0x0) (async, rerun: 32) r2 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f00000001c0)='cpuset.effective_cpus\x00', 0x275a, 0x0) (rerun: 32) write$cgroup_int(r2, &(0x7f0000000380), 0x101bf) (async) openat$cgroup_ro(r2, &(0x7f0000000080)='blkio.bfq.io_merged_recursive\x00', 0x0, 0x0) ftruncate(r1, 0x2ff8) write$binfmt_script(0xffffffffffffffff, &(0x7f0000000140)={'#! ', './file0', [{0x20, '%:%-\xef)%.'}, {0x20, '-),-'}, {0x20, ':^-'}], 0xa, "6f52e28ecebb13435466e7980f85aa5cb15c7966bba1c29a97fdf22434ecfbc2f3e806eea8a9827632e24be2a2aef0eafd498e9be29fdcfe126fd5e03475f9d341d9972766b424e081f869c7036a1ab6290a40cda547d558175116b996f7a9"}, 0x7c) 00:06:23 executing program 5: r0 = socket$inet_tcp(0x2, 0x1, 0x0) bind$inet(r0, &(0x7f0000000000)={0x2, 0x4e20, @multicast2}, 0x10) setsockopt$sock_int(r0, 0x1, 0x3c, &(0x7f0000000340)=0x1, 0x4) connect$inet(r0, &(0x7f0000000200)={0x2, 0x4e20, @loopback}, 0x10) r1 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f00000001c0)='memory.current\x00', 0x275a, 0x0) write$binfmt_script(r1, &(0x7f0000000000)=ANY=[], 0x208e24b) mmap(&(0x7f0000000000/0xb36000)=nil, 0xb36000, 0x2, 0x28011, r1, 0x0) sendmmsg$inet(r0, &(0x7f00000012c0)=[{{0x0, 0x4002, &(0x7f0000000600)=[{&(0x7f00000000c0)='o', 0x1}], 0x1, 0x0, 0x0, 0xf}, 0x34}, {{0x0, 0x0, &(0x7f0000001b80)=[{&(0x7f0000000740), 0x40020000}], 0x1, 0x0, 0x0, 0x34000000}}], 0x2, 0x60c5840) 00:06:23 executing program 0: r0 = socket$inet_tcp(0x2, 0x1, 0x0) bind$inet(r0, &(0x7f0000000000)={0x2, 0x4e20, @multicast2}, 0x10) setsockopt$sock_int(r0, 0x1, 0x3c, &(0x7f0000000340)=0x1, 0x4) connect$inet(r0, &(0x7f0000000200)={0x2, 0x4e20, @loopback}, 0x10) r1 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f00000001c0)='memory.current\x00', 0x275a, 0x0) write$binfmt_script(r1, &(0x7f0000000000)=ANY=[], 0x208e24b) mmap(&(0x7f0000000000/0xb36000)=nil, 0xb36000, 0x2, 0x28011, r1, 0x0) sendmmsg$inet(r0, &(0x7f00000012c0)=[{{0x0, 0x4002, &(0x7f0000000600)=[{&(0x7f00000000c0)='o', 0x1}], 0x1, 0x0, 0x0, 0xf}, 0x34}, {{0x0, 0x0, &(0x7f0000001b80)=[{&(0x7f0000000740), 0x40020000}], 0x1, 0x0, 0x0, 0xe8030000}}], 0x2, 0x60c5840) 00:06:23 executing program 4: r0 = socket$nl_route(0x10, 0x3, 0x0) r1 = syz_open_dev$vcsn(&(0x7f00000036c0), 0x4, 0x200) sendmsg$nl_route(r1, &(0x7f00000035c0)={&(0x7f0000003700)={0x10, 0x0, 0x0, 0x1000}, 0xc, &(0x7f00000037c0)={&(0x7f0000003600)=@bridge_newvlan={0x54, 0x70, 0x200, 0x70bd2d, 0x25dfdbfd, {}, [@BRIDGE_VLANDB_ENTRY={0xc, 0x1, 0x0, 0x1, @BRIDGE_VLANDB_ENTRY_RANGE={0x6, 0x2, 0xa}}, @BRIDGE_VLANDB_ENTRY={0xc, 0x1, 0x0, 0x1, @BRIDGE_VLANDB_ENTRY_STATE={0x5, 0x3, 0x1}}, @BRIDGE_VLANDB_ENTRY={0xc, 0x1, 0x0, 0x1, @BRIDGE_VLANDB_ENTRY_INFO={0x8, 0x1, {0x3}}}, @BRIDGE_VLANDB_ENTRY={0xc, 0x1, 0x0, 0x1, @BRIDGE_VLANDB_ENTRY_STATE={0x5, 0x3, 0x3}}, @BRIDGE_VLANDB_ENTRY={0xc, 0x1, 0x0, 0x1, @BRIDGE_VLANDB_ENTRY_INFO={0x8, 0x1, {0x52, 0x3}}}]}, 0x54}}, 0xe010) r2 = socket(0x10, 0x2, 0x0) write(r2, &(0x7f0000000280)="1c0000001a009b8a140000003b9b301f00"/28, 0x32) recvmmsg(r2, &(0x7f0000002ec0), 0x400000000000ec0, 0x2, &(0x7f00000001c0)={0x77359400}) sendmsg$nl_route(0xffffffffffffffff, &(0x7f0000000300)={0x0, 0x60, &(0x7f0000000080)={&(0x7f0000000240)=@newlink={0x44, 0x10, 0x401, 0x0, 0x0, {0x0, 0x0, 0x0, 0x0, 0x132}, [@IFLA_LINKINFO={0x14, 0x12, 0x0, 0x1, @macvlan={{0xc}, {0x4}}}, @IFLA_LINK={0x8}, @IFLA_MASTER={0x8}]}, 0x44}}, 0x0) sendmsg$nl_route_sched(0xffffffffffffffff, &(0x7f0000003800)={&(0x7f0000003680)={0x10, 0x0, 0x0, 0x200000}, 0xc, &(0x7f0000003780)={&(0x7f0000003980)=ANY=[@ANYBLOB="1af097e391ff4465f37e687e957984d66185a50425bd700000dc9f2500000001", @ANYRES32=0x0, @ANYBLOB="03000d0000000f000b00f47f04000a0004000a0004000a0004000a00"], 0x34}, 0x1, 0x0, 0x0, 0x48001}, 0x8000) socket$nl_route(0x10, 0x3, 0x0) socket$packet(0x11, 0x3, 0x300) sendmsg$nl_route(r0, &(0x7f0000000200)={0x0, 0x0, &(0x7f00000000c0)={&(0x7f0000000100)=@ipv6_newrule={0x24, 0x18, 0x409, 0x0, 0x0, {}, [@FIB_RULE_POLICY=@FRA_GOTO={0x8, 0x1e, 0x7}]}, 0x24}}, 0x0) 00:06:23 executing program 2: mount$binderfs(0x0, &(0x7f0000000240)='./binderfs\x00', &(0x7f0000000280), 0x0, &(0x7f00000002c0)=ANY=[@ANYBLOB="736d61636b66737472616e736d7a74653d2f646576c476637323652c00"]) ioctl$NS_GET_OWNER_UID(0xffffffffffffffff, 0xb704, &(0x7f0000000140)=0x0) r1 = getuid() socket(0x10, 0x0, 0x0) setresgid(0x0, 0x0, 0x0) r2 = getegid() setresgid(0x0, r2, 0x0) r3 = socket(0x10, 0x2, 0x0) getsockopt$sock_cred(r3, 0x1, 0x11, &(0x7f0000caaffb)={0x0, 0x0}, &(0x7f0000cab000)=0xc) setresuid(0x0, r4, 0x0) r5 = socket(0x10, 0x0, 0x0) getsockopt$sock_cred(r5, 0x1, 0x11, &(0x7f0000caaffb)={0x0, 0x0, 0x0}, &(0x7f0000cab000)=0xc) setresgid(r6, r6, 0x0) r7 = getegid() setresgid(r6, r7, 0x0) getgroups(0x1, &(0x7f0000000040)=[r7]) syz_fuse_handle_req(0xffffffffffffffff, &(0x7f0000000480)="cd96d45c8bd92033616e3cd4a66c28bbdebdd7ede039ca7048bc4697c1498ae77e3d3fd35afbf6df62a586544740bb09e87883086d670a60ff9cf95d5f31714eb316ca6f1bbe9fb8542126ad9820c96e2214c9639eae4275a0ba3eb0f5c739890acc5de9e74415219ec2b992599359dd7cefb8bd08d74da15526a79581037f30689576125ba7447734bbf65caf853824b3fb050cdf9248e541c6dab4f9802b71f7f94fec0467e6b3bc7b0951d285310cc30cbd761286819a2199161eb2027df29a591b07cdd33c011aed993f9e2de784d92efb48fa900c98ed3453981c52e4fcdc4e9f689f6293d81b4256156cc1ae17b11c0c2050576d7894d39c0643f25854c3628cde1b896ee53562405943e9a8806bf57762beb57d584e501161510b10c29a948509118ea6a15af570a0883e5c6193002db3712305f918b81844cda7e132efd0e0f0ceb6c4dfd841fe73a6507de0e04899a6d63c43858381584e2c786bfdda6c2284fbe52a843b9ec046826445c669a49f1d9d3a54d400bc18010b4793358f683b91b8911bde50096ed92b477c2c720b65ccf41002e93d8f2f6f8e2be5f7f1b3802c0c77281da4b0c37360196781faac6aac2949456882638a1adf60a5661268e601ecf87ac3ddca8ba1b578dab8de920651116dda1a6cfc3805a239a75a8ac4a951a98f66b57689a33ae3c5a33e363267b6210d0f3d56a3e63db6ddf8ceaa5e911a82b6fa7eead00ed152ce8593ad4a945938b001dc8842bd0a23936b0ddae5dc65bacd7b042e841bc547a0fbad20e49ad8ab56ba56204b0263f861b2c0d847145065bc4bcb1a0e1859cf1301a40250ca2bc7136434baa3336bc2e1af4b76b4a4257ff66fa4f4bf56febb55344abab25903bec65672418136818f0d4cc403a978f918931ab77a87115f41c6507bae1370a8f8c3f21a7a4a66cd0a9d962f423c7b808a93c9570a633cc8905799080bba171fda4eedc9d8e261b83a9aa2714d579552f03e6be42b3cf6e3ad383d2155cb25eed8399ad0ea84600ca435a9434d55a561f855e40ed56259e88bda5e5a5690d189e4f174a77b513d9cba0e379b38861f6c1d08c1cbb860f4b9c3e7e9bcda68d5a3a003511b1800eec0d4d0c020edc851622c75b21cc922815b380b17453cd62ed6f6c6666938811d37172b9dd8fcc04c393b3f2fd69876606e25a67864dce46865a7d334e09eb7145b4b2768c5078e2fe6b436f89a96fbfc77556a621b40ee1763dafc4fbef50521a80acb17cede3fbb6b916467b168b121bfbfec6edfc4315dea1d1d8d326f92cbdf0723f93f4c8e033f5ebda2ca5c78bd0d1d887d7678dce351bccd194cd963b26941fc5574742d3f130405d228679828e31c80600c16ec74328c45136ca0433d022a416ecd8a915cde7ff317ebd9585e8c5421611b4fb2219972fb3e219e05d2e71371d14f0ed7bcdd010d0f19583fc49eb5228f3147a23348b66371442f427ad419684dfc24c169c19c1bc72ee6a3a2a439ae899fb2f31a63cf078f1e1802272395df65a209e528d7665c7bddf2dcbc00fdbb6ad40b64766e474a7c86797fb3164b1e7423c26efeeb1ba2511fb0ad89672ad1bb160f9ce86796b61281dc5305200ac1783d001c53d13156017e4310cb6848057937b3781866c24bbb88fc6a151a2072ac4627d981c2a669e8a84087ec9af208c8fb9017b9cb52c3f15d6e8fe47fefcdd3f42b1d0163482c720d0c2f616dbe75461026cd30fdd95b7713a99e19b8f0684464b68fe58dc6a6fc8df3b2a37fc97abc1ce1fb3955a1720e92353f256929eb51a458ca33ab2d3b524984dbcd633fad79dd0925f6972ceed6e7fcb9f7ff385794dd89ddf4248722479d802626270d578aa3c74aaf42fa36ebb2b246b047dae2f2d6f5575512b8b315648171ebb3fdf339bc32db6e0cc9db04f72e3079770f3457a35a2ad09477091635e66e3876fe35da4f8b98119fef6cbd69209f6e5d37ebf1a8df61fe15dc48d2dca35daf3e2b2106b4142ff34a9798bf3a006048e394e6de75f700b253a6f12154fe5dd93bc099d6892b8f3e2995db49876055e337c25bcecf8abffd6e024b5d87586b0739ea52e914e24280dc6098eb67132ed76b39d5442550e138c262410ce0c5cb5dd9a45f480895137903aa54d96c1fbf91aaa2c2ba09aae43a9812443d6a0af34d43f1a761c9813c1cf07946882cac36440e5f9421ed0b4939fb9cff163e80259d137f9864aac9fe0f81699a8ee8e0be2950687b24143423282f361221c50a11d305683cfe418917f0c80df6d5b4695458ff24cf434793eeb86f19d9f55d36f3cf2e999f669f458d7387f7e84d4578614351df4c31ff10f559aebab69aa40dc243a70cc08aa39bf9c4cd1d6b67ebdecb81451d91c410993c075aa71375b217bd61459effbae9d96e6efa9d23779ad3b274255935bc99f7297a59cbe7faf934e9bc0d097d71dd6c7327932514cc39db5e8c11fa628fea313614b23261172f78de962071b20df89e6848fa0d1dc9094adae57e4b51a56fe117d6206c93fc1af30b5a84b36bbe4b2164b08d5b04a2acfaef723c11c59c8de7829f651dec54955b0da40284a6a448bb3c4712561312c0dc99dd8d7cc4fc1a3aaf8bd6286528829a833df2cb2597050f6e79caa144a45705307afdf0b9e1570bbdc31e04603f598f37b798ac9ead4d6d8985e45eefc1f1162ef207862d7cf07c3ab2faa93f85ce6c9e8850a869f0f849c03854e5a6684debbe091e8afe9780fbf10b7c8133d0e95cc97e7f39574ef6eb0848d136ac0ba4e39035717af6a21514aa02e503b3585e090c29725a3485483109c969c589511a98a347f4f8fb26503f6b8904dcf8f16f978b9cb8330117a3192581ac4af29c178fc0c12b074f2705f850bbeeec2e72c8662315a61722dbd0ff20416cfbb51a5d70d7431cdf813b490b1ed3b2d8b88cfb1701285d8efad97ed0685ffffd085367c43379ddd8c9cbf429f4fea95363f3d88c397282ecc4cc922db3b2362a02d147412b2ee0b4862f42ea4a068b0fdfafaf4a52746ca45283629328ad3c658d8ceb90d345172cce8cb896a68521e3752d4116b34171a0ead846ef8cbc1b953827668c95eff1cccd7e251c72ef6e66076c735ebec3725b88402097ecb9197356e7393db5c8a34f7c9ee2e4a37862aa2c094297b2bfcf10e095e8a38731face51f9d0bf4c5e08bf8c34963e8bb88420602d5fdddc4a53b5839fc1490339a66f43e3cf3a18d1b94af711b1df217f28bfc0a4b3d5f106602ac1390174664a581163c9457ada486fdcd4bcd2fa79790d53f6ae4f462ce54d9a515fa7bc32b2f8c7a5f16759a31323c01ee50bb5e41a91611437cc465a54ea8fe5c1695d72ef0bc71d6c3eb372b7bed39234aeaa03d41eca271cc5539bafe14b73d150a69ad76290b18baa9ebd8f863140df6ae5328dcb29b922e8f935d5cabdd01647f5ddb9db35f6350adaf441be369d0513f57b63e481bdbac2eaca87ba1764d38e94953d90b30a5e71a4d9bbb32b3ddf4bdd5a0abd7ab3b07670f54d7542fcc90c6c6a88d7516b1d207089ba45fd8cd112235581da3a531f656f489d0772af857d5676df9d2b89ad191de6fbd4524c049ab25580bad9402d4099b9970a1198edfdba28f2b6d5cb6487440a628056cdd64dac774c4e0c6ac2d252a44da3a4611deedcc4e33e96a51146f28e21de48c0a19e1246368ef1b81588f3f65c4624d7c2ff3036906584fe2cc78c07865b3ab7ebb9b91860db3a39e5d262c918cfe0ae6333ceeb70cfd4e5848d9d97b88f6387bcdd6f7a4cb01a1caca3acc61a1e810bbfb0d245328ad47d21e61c7312ae9388c53f3cf3860c3e29cfc2444c762e83023032c6a8b18de65305fcee18ab3c4047a6bdd89a214c7063b9a8c418456005afa072738b976f4a079f4149b60c7a43ceb55fb2f18b6c4c7fac34d4b2fb5b30d5d2c09edf70161262baabfb5e3a69d4f0d5a2f045e445a497fd0cd7e058565d926c9c866b6ff311c0796af6615de687af7ad2a1328a9ce2df0efc3903d97361ecb679d4dd721a9f053b811fb0ac0c30d8f75b799448049fc404ee233de2d662e782eba24ceca6d2d48850a1c4b0a63e3689a220b05f502528b201b99267b11d73b95f1f0471723f047f60acab38f4a49d815ead48f8c3c58235cbb982e452e0c22e7910217313550c840647bfeadb3c66167494edd7949f0b496841705da29454f122b12bff4d29aa678234fc0a49c1b7b1da369ac77cb5031958979df9f7b012984d57b0fdb2fefb0d5765539e76a1e51986a50156c0296def98761f81ca4b5916aa3d6bccc063818a8728167131f835e8c83b01c4f2d3cd24a476831951cda87f69382dd698500209a1e5939484943cde4af69028e9a7c137ea6044d69fe350bbe63c2909dc0800007e86f448d60032fed9cf56b8ac6ebe6baacabcb81fbcb5564ed15931738e4cdd21d51e123522668134412206c6e7ff15210939cfc13e2c3343ca1266341c8aaff60c1c13be7ef4c165d76b527ddd01d7d104f94edc56c18b5d2291878f68d7c9275adb602c13826141bf46af64cc6b9577fca3060fb3ff6547aa25525b92ccd3d56fc8cc985a7f0dab3b12063a870f7dca4b4dcbebf825ea80c6a76a9b613a91b6f0502d5d7e6cef07c7a46017ceab9eba1e80721f826095eccbd88b2a3e4b530b0b89ce14521098529ec4780bea3244ced39f45f4342968af70ec8faa45d9c912bd21c05a9973655704597946fb0aabcdba2af4993334af52d58e0072f0460381a16dbe196d98b06ed7c896555cb534d431814f79acd2f29cb83f6ccb0e286a670904258d1091574693b69ed60b8b59b5022d756fc88f0207a0b0161786616a0b83661f5670b9fed47655af49132a87e9fae58f74aa356d95434986f2831883f682b1067fb44e1c05f26a9526536dc5ed653cb1c213956d038daced813854bb363cac4945453ca185f70976778345cd8d68d779ea0c14df2db0ac85463e066f297583426f88798397c8bf6a301e96054a39d4a30d1fade5ff283ab8b62352b1e57a085baf8698d52ad9a26c2b3687b3957c692c626944334a7d9d12a2b552b478cadee807ace6039f4a376944ae5e3161b0b618706c31c1bd07010c78420962112158a1957f4dba55532c4f29dfe0df79a0223709738343eddaa489f9d7e63c5deba2b348ae959b2d9e7c31409832cde0ea2256f2358ffb8f746a4eefd9142d3e4896b209aca6d9f998c99abdd9be4bca4f5a0503a62ca03bfe8031b74913a80dde42bb8fa7a80e3cecfbf5f4b0efc34eb23ad0c2340b9cee5e24de2473318f9a0b7771d32994caae269472d4814e75c46f0b6e8871797f6c985e3e9202333bdaa97c95f8decd79b699032a624715d77423c460983113d7a529504ed307e8be5f269900b68f81eea546d89e8421b9caae8881180eaeebdf7f502bfdfff70a5d225e490286e177f06e5c84d799b1321c00c595c9e12c9767ca46b5d2ca7f3f1522b1dd1496dd5c3889616818da23e1c38091947823f61439852ddf578d7533eceb036e368a1a0bd6e1b252af732c1bb410fc3197e87117440b1a2d27771962458a01aa7cef669be7ffe9eeb14af985e2e7693c30e63d5cf9af87993c8a04dc3fec380e74739b579b780395d68e6d7ee8da8f2dbc68629a45c77c58c7031d1b56cc52d7c7e1548c5130a5fdfae9afcce791c880e739632b9c6a5f3dacf935eb59f82b8f61df41704ef6c147a751bc891d35bf39f13f2d4b63bc0020f5ad7acb0b5a252a4315e74e18c90fbe76a241ccd5239cd75c144cfd857c51345ad7d8dcef065bd2c65d4b5071d789c6a38044c597c5fad7330e9ac1a4a01ae1ca169f215c91840705525aaf2f2f89b1e5f160858a4ef654eb3343c25c60c3191e3c2dd5c63e89ed43ffbccb3f13279a0b8e1428c969542fd19fce4d56547fc4f565c5e1947feee53843ce75b68f438372d6d64bc4f641191be9202858ee01f566f3535b96043f0ad2af33f7b14ddcd7c31c6be356e00f7017e7f6df45751c8c8fae74a9dbd47c42766bfdfec8e344ae995f36eafb40eea9cafd70501cc59bf4ecd4fedc0a2f287a8994e03d243534f9fb85b781b6a9523192080be1ac4d76f3fff0656596fb787bc998e83c884fb8f514a69c3d19be94f6ec7820833d77eeede3e9d4d067e09b0dab85a916abab11c309db254da15f12c95a38d6cbbc0935c759a6b4809f41428fd011dc14783ea34443122c76958056e4a037663255587fd885edd91fe5b0e8f70b7bb53268a338629e40f5f7834fbfa1fcf2ea9c4b8f3e249a0298714b27b357b5b216bebbb2d8575da797e1e15915b8c664da3540fd44164ef116eb6d75d355aff84659b1ba561ad089d517dc2898b82ec8c46d7ddf2d3464385057ce594e45fa31f2ccc0f7c8cc00bbc929b9d705142be7824209e3116b25b3c27c74fceb6b983198584f06b44c3ee559e0c3746c5861c7f0daecacce7084ff62f66eeeb7c6a42e60a759afe24c816c6e4e3f262935e32c322d0305a87ff931c1f2096c965cd8410572b4e274e9d792b5bb612f6083470eb145810be9bdbc3fc77f46cdef74a89ba925c17e51dc19162fd2b65f7b33cffe5d40d0785e98f2bede37d1bbaa9afa87857ffc6417f67ac6b9ae428188450b57783aafb9d89339761de5fedf2185ff47425c73d456e2a5dec8303745ffe6655074bb5fd694a36dfcc8f47365611a0a21140965c9ae2a07af76a03a64cabf89f3bba2ba75d47557fd5f9c556515dcb7ea930480a47a38c2796019c0238820e5c97f48203fbbbe31c59d5ea8a8bd3d57f95d39d14d678342fcff8672b5160654b95af14651fc1a409141efe5037e3f0894bea227c983928cefe2b8d67d5ecfad9a0da51d763c71faf6164a22bc689fa0e02afb1047b442df301cbc33f8156159499121384fd660bdd56fc0eb8aaaea17284bd67bb504e44374c17d2899fe827db47d5572377151cd7f7bc6cd2fda45cbb73ae68f896e733e8efbf8f665b297121a0bc2f6ea52fadf4e96218ede8f33cbb46d23e6c07de16e5fc3bf4510a87bbdd612fe65a99cb0885a5f687279d4cff84264ecfa021bd8b699735e74ca4a015171536962e5a13317e0ce5b51235bd63a3e252346f2d772b54df5e2eb140711cea287df94bfc9143b5bebab41737a3ed2fc883bfbf9971965c9a77eb7bd6083a2322f9d361663b57558e76dfc460bc6fe9b120bab9d6bcca415a91d177ebcad07cc023b8254fde8cadc47b01225c35901a067ce9de6423d2dc420cf2227d09487222334de22b3d9f5a1ad90b91f64ae92f2a1e128ec9c144617b6333457e20bb1080238834a2688e4a56a2f6ce05fa2b1dd5bd6055484f3bd3ccdbbecf764be71fee53dec380868a4008105648cc28ad8178dc0a46ad42a8c950af851ef62d6427dfaef2fcf7d3a2135de0a8c3485511766fbd37cb785b6c6b82c15c7eeaca4ce56823565599b0d9694d1441a1f644489d7f04fce79db1cfad18e11ddd968672db278d4dd1e8611e8d232f3c20d9a065910fefbb3eaa16ff3048b22f1415ae08e47b8e711909c04162dbe1be419d86ba4b73c9567e5416a64ecf922d1c70594b9ba3dcc808013c2ca03b1ff832d5a73989bd183e0fc8dbf612bf608d39a45a82280e9880e59a47403ca22c977df65288de55cf48145a5f5d6f4281f46d025b968ede3e7322406dda687069b37b396eba070ab290206dcb378c65e40accbb00d3dbf82794d42c67fead487ef775596049f9cf9f684a07ae798c0bcb5fe7aed1cd36a39c5107aca91fffc56f582fbda79fe8d5375a433b4c0aee2b307a38bb7020594bc6d0bee085335427efa44a233785b083c12bed3ccd99c928dc7aaccb6765f9499e63a2173bb6b91f21def6c0d331c9bd65f945a00f470ac9178046a8958dc6b0f64a4509b29ca526cfe9cc6115322f234b2e92c68539e8a8c32e52e1b2adcf8209e7a0819594b32484a452d9d40d2dfdd84bf58f3c80fbfe69d138a3f29161f7a6542aa11c91b4cd7387c4ed818a5aabbe581a572093daa49da86d863085abd82920be5fb1a4dbe622566519624547bf88f859ef1abf34fa51e1af3619eb8a3ac2d7effeea68fbf7770656f24b1aea58d205f907ff3430ba3a91748e91e27c2d0d818377a7089455176d46228800e744b62b1ac8f11a9b6308b4d65078c8201c6d6bfcbbc986618111fe7032d68df616bc1c28fe2c68f02fd6bf1a860a5774045284ac73b71d91d98f1536c578f8eec543d500e4b00507589440c51434fb0168a052e1294212a4fb61ead89bca1bfd83f8b1b2a0661e1f66834ec496adfa9a5289a0b8539ffe86fcea6524973a401cc47ef175625132ad9432524ad94cbf24bb3baa24569db9b42b3a8abad919839151b2e4fe31a04cda66fc879d62e675f5d91cd751eaa8937fbc62ef45f4307bf9752e9784c4f5f0747e033ec6be650de9147790f9860bbaea54e284c7567f93989268d2a0cbf50d186c74b0aab184732972d9c79030482be66d41b897d70770383b7511dbd2d5065b2659846fa1b916df15c7e87b88a3599b052673fe450a8fc2d2ac8dd9b7e345fc459beeb97106b2762dab803880ecd9a16f275c088ad00417037cac9c5afd43296d3966c41892bf9c8b164b81ba04bfca66b0c3fe7cb42dd048c2f38e3d34303dd565aa9648bc1357b454a7a247e3ca360f0acd620c2c5e7e6b7e76dd85fd6927537797308c0d2389ab282108a1190a51df6339232e1b166c9aa4815a33ada882dbab71334066e044879c07eea0de4573aa50c8e8a29505a94107bfade724813c32eac5d0f892000e035cdf292a59b924f9125618aacb82fbc1607d102616f7b954262b38c9e7e19b4ee68373bd5da9ca8be4399e3c3bef2ee7caf41ec0c422d07415bf4ec85cb358616c23618d87b0ec7d7cbe9dd1f6f0c6580e21c78647d853ecf6c5ba082084ba95aa9c8cc420df4d734bf2e1049bf10b4823948827c52d83ec00abeaaa7d4c211484f024335391a830da7f895c197a0452a6311482c49012d32b87147734e43a4db4bfaf57c395b15fd3e5dd7cc6b23a03c08da5dea0d3ea1cbe25537c539062d0f02aea94938f32a668be6cb974fbe8dd803905c8b62062e610385d58192c7f1ced95aa9c464293f4b6741cfd5c54644d495ea854cefdabf6e9255f86ad3f6822e1c0033de5ab8e26a81f6d0b38bed48cf4d2318a5d074d674b6d3f6559e04e277b84d3adefdb22e3dee104425d89335e23e4c5140a2810c70381ac74a231c84bbf2ceeb75433df33635ba38f4446287708e0f8678dfc2eefac437cf2dfd0154df907b7d341222d4671be1c29abc91713685b5881c1494bb223f6a47577b573e50fc3d4c053ab8ac5a49872e22aa577963660c2f939aeb7f1b54a214262e89fdc4b21c9c7dc5f95394719cc2ef6f7b6e6cb8e77829dbfeb4d4e9d66e42f3cdfd594091e82a852431168c6b033706a93df7d8c75e7e7bcfc7c1d3cc6ff6911770f2911e31a78809713ba1eb51185f97532007bc2eedc8428099f4cccc910b408c8e4fb968c1f04fcb6c45b217be51b9ad699cf55f0970cff05bdd89b6a2ec259fcae0d834a94aee6b0906e8b5a7bc68af2b8c5c8814672a6ce6512216b22a210cf561295a3597dc2618ffc34418a4b72dffb6d0403488076ca093444458f42598546320b5210b2e54145b4ee3885cba175bb092dcecb0a765371aa88040b3707fda6ec08a62b9bc53ffbb222d05496ad3ed92e84a8e3242f9084e350cfa57316e3c9a7fe5aba261c34a0531c183329409dfe02b80190304c8c0ef111fca3a18d61735852a861eb2327303f9202d53a85037a2c30d3b02c3e53bd43712d7fa18f28dfa1bfc9798ffdd6fba688e0697d642d304d94b7aa9b53b2aade85e9f5c03729f1bfd386848de3fbff7cc9837b4ac7d9469aca37600911baec27d7751c57ec8af18453e98fd9b367b41a92105617afea35b3c6396af794f6f8edc6a476ead3688863620ec3ea676d42720f8dcf86ef6a1dfe7754910564bb86df72d170e27e54900e9ae9aec6a71ed9663f7cf453cf4e5777bc68696e1a30ae751a3818d3f31d0a9ea70da9fdfe553485ecd58d3e852be26bf012ce4c52d8b1a836d5021ce26c6bc7e5d8ecc26792fc28629515ddea1fc4c21f8c56d905c8781d55fbf8486739a5a5d60933cd86be4a2b2abdb5cac4f5bccbda13e1bdad571de4a519c8491f94c75eec848f4af1d2ec20359bd2f747b59992aae9683181a3111ce8ebd8f949af4f0a0571174fd49acc66fd8ce1bca6f2b8794271466fdb22896650e8c05b205bd2551d6289b32a8a819c5b57efb0376a07777c4b968c55d0948b0a0b21cd16c8fc18ce3eba021b5f15ae0f4c9dfc2ce3e45b423e92fbf406aa0f3b1041c85fd455b48a86599dcc3906b85b67ed0bc91813e60f31f6addc54f774c06e4f5e506d4bdac25117402eaa9f39df960ea3c6abd2c31ffd8040bc536765e11f77ae0deb4e780f598090bdd2c4e5e9c11084ecedc96fcb2e59539c60c7307df1d76f533051d014303f3c1a5b8d6655dbc799ce2232c374a103ba20f858c22f35f4cdc87bd1c57205bfa6ed990940b509b06587f8c34bf7dfa8beeb76c64cffeb0ee9db016d87fd550f846631f63d252c15199737b1f70ba5a153cbd39bde63913e7f1e2a5b0b21b45c79871b522b693613555e9a781338dd9ec816d7ddf2b9caf96ed9070bb730e5cb845341772d7b737885fa471680c078ca0db4b62dab97f50cc5162e93b7e1c6cc76e7e3737392b66b09a1966f1ffbfa9f7b48a850ee2d67bfd986caac77df9f1bba05807f89852675ef38861102043d48bc47279855ee5670d20c5f1f44d1e3d7e7ae0ec566f3a0a657082be9b5cca06ef54c34b247b75aa39ee98cec645979f5006275c706bd725596bdaab80e487dae496cc8d0a79e7ebfcab6c8c0e9d11e9ef20f657e4597bc7489e9aae7d1d83042028faf314015c71692c1e3b0a924d4a20041d7af38e205b8f909afc37d04442e154cee5f5c291d647c534ced97f04f63381215fec69c196bf364caf6251f0361f9c0a4f00735218f32ea25e96497b81890aaf308038e8cc2311472a9a6a0a9275d37745e6009447cb23539511bf1d7b89ea8712d1b2879a1b3c7cea7e629383697a97149d45c53118b6583fb8c8285adb9f5ca34ac360d17e7339e3218c3762b719aaa1b8984a6e38ca834aeef40ce3f640b5cd597a27c42adc5f0ba517364dfdbfe580e00874578f62b5dd0644c263e2b2e52ed1dafa4567ca70d72fba65017c16559ea8764fcc0a603f9757a5f6fcdcce40c02a03dad127676898bd0e7515f5b4566db6f551f5a72653812f73b58d0ffe554951b01365c03708b538bc78e284e6109082d2ab9750c295b8fe7ad33804870ca44a527f0b732ae9600524903f994206ad82dfc80d7247f4680682adeba5f82d9e5b500e597072bbd71e1444066f407614007ee9d669d4281fa970bb02d8d8f3da1738c2e6e13f9e7306cb1a33b8472445f80bc56e8cfde22c9c99a75a1cdb30bacb30a7fa87025ed97345a1", 0x2000, &(0x7f0000002f00)={&(0x7f0000000180)={0x50, 0x0, 0x0, {0x7, 0x24, 0x80, 0x6140, 0x4, 0x84fb, 0xc0, 0x7ff}}, &(0x7f0000000080)={0x18, 0x0, 0x6, {0x8912}}, &(0x7f0000000100)={0x18, 0x0, 0xfffffffffffffff9}, &(0x7f0000000200)={0x18, 0x0, 0x4, {0x2}}, &(0x7f0000002480)={0x18, 0x0, 0x4, {0x401}}, &(0x7f00000024c0)={0x28, 0xb, 0x5, {{0x401, 0x3, 0x2}}}, &(0x7f0000002500)={0x60, 0x0, 0x9, {{0x825, 0xaa, 0x0, 0xa9, 0x9, 0x345, 0x0, 0x8502}}}, &(0x7f0000002580)={0x18, 0x0, 0x5, {0x3}}, &(0x7f00000025c0)={0x115, 0x0, 0x0, {'bind)\xa48\x1b\xee\xa2$}e\xa4\x99\a\x00\x00\x00Q|er\x00\xad\xb3Z\xf1}\x13\xd6\xab\x81\xf0s\x9d\xc9\n\x038Ur\xbey`\xa1w\xe5\xe8gl\xc6H]\xd5wAayI\xf1Ln\x91\x95\x83\xdcf \x85\xe6\xcb,6(~\xdfJ4lI\r\xbb\x97G{A\xc6\xfe\x05\a\xd2o}\x8c\xe0\x9a\xd2\xc0\xb3R\x10\xbe\xdf\x1eUHx\xed\x00\xdb:Y\x862\xcdZ\x94xm\xa3\f\xb1\xecK\xd8\xfb\x89C\x91\xaf\xb3G2\x96\xc6y\xacA\xa2\xd0U\xe1\xb5[\xa5\xc6[ty1{`\xbf\xcc\x00\x84&\xff\x98\x96\xd4\xbfn\xfc\x98\xac\xff\x01\x00\x00\x00\x00\x00\x00D\xde\x82\xcf\xa7\x0e\x10\x8e\x8d\x1f4\x05\xa4\xd9Cu\xe5\xf4BB\xa9\xf1\x8b\x97\xc6\xd8:\xec\xf8\xac6\t\xa0\a\xddk\xe1Klc\x9bys\x06\xeazV`\x95\xd5\xa9\xde\x9co\xe7J\xa9QZ:V\x18\x16\xb9n\xac\xa9~\x87\xa4\xe7\xa0p7 \x93\xadt\x0eae\xa2\x11q;:'}}, &(0x7f0000002700)={0x20, 0xffffffffffffffda, 0x7, {0x0, 0xc}}, &(0x7f0000002880)={0x78, 0x0, 0xea, {0x56d3, 0x7, 0x0, {0x4, 0x8001, 0x4, 0x36, 0x40, 0x40, 0x81, 0x8, 0x1, 0x8000, 0x7958, 0x0, 0xffffffffffffffff, 0x3, 0x1}}}, &(0x7f0000002940)={0x90, 0xffffffffffffffda, 0x5, {0x3, 0x1, 0x0, 0x8, 0x400, 0x7, {0x5, 0x7, 0x4, 0x295952bd, 0xaf5c, 0x101, 0x8000, 0x10000, 0x50b2, 0x4000, 0x401, r0, 0x0, 0x5}}}, &(0x7f0000002a00)={0xa8, 0x0, 0x89fa, [{0x1, 0x8, 0x4, 0x6, 'port'}, {0x5, 0xfffffffffffffff7, 0x8, 0x6, 'obj_role'}, {0x5, 0xe99, 0x1, 0x101, '!'}, {0x2, 0x6de26df4, 0x0, 0x3}, {0x1, 0xfffffffffffffffe, 0x6, 0xfffffff7, '\\/}-/\\'}]}, &(0x7f0000002ac0)=ANY=[@ANYBLOB="40030000daffffff01000000000000000200000000000000010000000000000010000000000000000200000000000000090000003f0000000100000000000000070a000000000000c0ffffffffffffff0000000000007000ff07000000000000000000800000000001000000ffffffff000800000010000005000000", @ANYRES32=r1, @ANYRES32=0x0, @ANYBLOB="09000000ff0300000000000005000000000000000700000000000000070000000700000066736d616769630004000000000000000100000000000000ff070000000000000900000000000000010000000400000002000000000000006c4f000000000000f7ffffffffffffff0400000000000000f8ffffffffffffffffffffffffffff7fa900000001010000008000000010000002000000", @ANYRES32=r0, @ANYRES32, @ANYBLOB="060000000001000000000000010000000000000006000000000000000b000000010000007472616e733d72646d612c0000000000060000000000000000800000000000001f00000000000000010000000100000003000000020000000500000000000000ae02000000000000ffffffffffffff7f01000000000000000100000000000000ffffffffffffff7f0400000080000000080000000040000007000000", @ANYRES32=r0, @ANYRES32=0xee01, @ANYBLOB="030000003f0000000000000006000000000000003f0e0000000000000b0000e434ab9f6127380f696e646572667300000000000005000000000000000200000000000000de0300000000000000000000010040006708000003000000d1340000000000007800000000000000467d000000ff00002489000000000007e72c7db59f5cdebebcab000300000000000000040000000000000081000000ff010000fb", @ANYRES32=r0, @ANYRES32=0xee01, @ANYBLOB="05000000018000000000000006000000000000000100000000000000070000003029000062696e64657200000300000000000000020000000000000007000000000000000900000000000000080000000300000004000000000000000300000000000000000000000000000001000000000000000900000000000000080000000000000009000000ff000000090000000000000004000000", @ANYRES32=r4, @ANYRES32=0xee00, @ANYBLOB="02000000030000000000000002000000000000000500000000000000070000000000000066736d6167696300"], &(0x7f0000002e00)={0xa0, 0x0, 0x57a35fb, {{0x1, 0x1, 0x0, 0x3, 0x0, 0xf41, {0x6, 0x8000000000000000, 0xfffffffffffffffb, 0x1000, 0x5, 0x9, 0x16, 0x2, 0x5, 0x6000, 0x9, r0, r7, 0x1, 0x40}}, {0x0, 0x2}}}, &(0x7f0000002ec0)={0x20, 0x0, 0x2, {0xbf13, 0x4, 0x5, 0x1}}}) mount$9p_rdma(&(0x7f0000000000), &(0x7f0000000040)='./file0\x00', &(0x7f00000000c0), 0x20a2044, &(0x7f0000000300)={'trans=rdma,', {'port', 0x3d, 0x4e20}, 0x2c, {[], [{@seclabel}, {@fsmagic={'fsmagic', 0x3d, 0x81}}, {@uid_lt={'uid<', r0}}]}}) socket(0x21, 0x805, 0x200) 00:06:23 executing program 1: r0 = socket$nl_route(0x10, 0x3, 0x0) r1 = syz_open_dev$vcsn(&(0x7f00000036c0), 0x4, 0x200) sendmsg$nl_route(r1, &(0x7f00000035c0)={&(0x7f0000003700)={0x10, 0x0, 0x0, 0x1000}, 0xc, &(0x7f00000037c0)={&(0x7f0000003600)=@bridge_newvlan={0x54, 0x70, 0x200, 0x70bd2d, 0x25dfdbfd, {}, [@BRIDGE_VLANDB_ENTRY={0xc, 0x1, 0x0, 0x1, @BRIDGE_VLANDB_ENTRY_RANGE={0x6, 0x2, 0xa}}, @BRIDGE_VLANDB_ENTRY={0xc, 0x1, 0x0, 0x1, @BRIDGE_VLANDB_ENTRY_STATE={0x5, 0x3, 0x1}}, @BRIDGE_VLANDB_ENTRY={0xc, 0x1, 0x0, 0x1, @BRIDGE_VLANDB_ENTRY_INFO={0x8, 0x1, {0x3}}}, @BRIDGE_VLANDB_ENTRY={0xc, 0x1, 0x0, 0x1, @BRIDGE_VLANDB_ENTRY_STATE={0x5, 0x3, 0x3}}, @BRIDGE_VLANDB_ENTRY={0xc, 0x1, 0x0, 0x1, @BRIDGE_VLANDB_ENTRY_INFO={0x8, 0x1, {0x52, 0x3}}}]}, 0x54}}, 0xe010) r2 = socket(0x10, 0x2, 0x0) write(r2, &(0x7f0000000280)="1c0000001a009b8a140000003b9b301f00"/28, 0x32) recvmmsg(r2, &(0x7f0000002ec0), 0x400000000000ec0, 0x2, &(0x7f00000001c0)={0x77359400}) sendmsg$nl_route(0xffffffffffffffff, &(0x7f0000000300)={0x0, 0x60, &(0x7f0000000080)={&(0x7f0000000240)=@newlink={0x44, 0x10, 0x401, 0x0, 0x0, {0x0, 0x0, 0x0, 0x0, 0x132}, [@IFLA_LINKINFO={0x14, 0x12, 0x0, 0x1, @macvlan={{0xc}, {0x4}}}, @IFLA_LINK={0x8}, @IFLA_MASTER={0x8}]}, 0x44}}, 0x0) sendmsg$nl_route_sched(0xffffffffffffffff, &(0x7f0000003800)={&(0x7f0000003680)={0x10, 0x0, 0x0, 0x200000}, 0xc, &(0x7f0000003780)={&(0x7f0000003980)=ANY=[@ANYBLOB="1af097e391ff4465f37e687e957984d66185a50425bd700000dc9f2500000001", @ANYRES32=0x0, @ANYBLOB="03000d0000000f000b00f47f04000a0004000a0004000a0004000a00"], 0x34}, 0x1, 0x0, 0x0, 0x48001}, 0x8000) socket$nl_route(0x10, 0x3, 0x0) r3 = socket$packet(0x11, 0x3, 0x300) ioctl$ifreq_SIOCGIFINDEX_batadv_hard(r3, 0x8933, &(0x7f0000000000)={'batadv_slave_0\x00'}) sendmsg$nl_route(r0, &(0x7f0000000200)={0x0, 0x0, &(0x7f00000000c0)={&(0x7f0000000100)=@ipv6_newrule={0x24, 0x18, 0x409, 0x0, 0x0, {}, [@FIB_RULE_POLICY=@FRA_GOTO={0x8, 0x1e, 0x7}]}, 0x24}}, 0x0) [ 383.119392][T21502] binder: Unknown parameter 'smackfstransmzte' 00:06:23 executing program 3: r0 = socket$nl_generic(0x10, 0x3, 0x10) r1 = socket(0x11, 0x800000003, 0x0) bind(r1, &(0x7f0000000080)=@ethernet={0x306, @remote}, 0x80) sendmsg$key(r1, &(0x7f0000000300)={0x0, 0x0, &(0x7f00000002c0)={&(0x7f0000000040)={0x2, 0x16, 0xff, 0x5, 0x4, 0x0, 0x70bd2a, 0x25dfdbff, [@sadb_ident={0x2, 0xb, 0x200, 0x0, 0x5}]}, 0x20}}, 0x4000000) getsockname$packet(r1, &(0x7f0000000100)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @dev}, &(0x7f0000000140)=0x2e) r2 = syz_genetlink_get_family_id$batadv(&(0x7f00000001c0), r1) ioctl$ifreq_SIOCGIFINDEX_batadv_mesh(0xffffffffffffffff, 0x8933, &(0x7f0000000380)={'batadv0\x00', 0x0}) r4 = syz_genetlink_get_family_id$l2tp(&(0x7f0000000080), r0) sendmsg$L2TP_CMD_SESSION_MODIFY(r0, &(0x7f0000000180)={&(0x7f0000000000)={0x10, 0x0, 0x0, 0x20000}, 0xc, &(0x7f0000000140)={&(0x7f00000000c0)={0x48, r4, 0x200, 0x70bd2d, 0x25dfdbfd, {}, [@L2TP_ATTR_UDP_ZERO_CSUM6_TX={0x5, 0x21, 0x1}, @L2TP_ATTR_IP6_SADDR={0x14, 0x1f, @private0}, @L2TP_ATTR_SESSION_ID={0x8, 0xb, 0x1}, @L2TP_ATTR_VLAN_ID={0x6, 0xe, 0x7}, @L2TP_ATTR_RECV_SEQ={0x5, 0x12, 0x40}]}, 0x48}, 0x1, 0x0, 0x0, 0x44880}, 0x20040804) r5 = openat$dlm_plock(0xffffffffffffff9c, &(0x7f0000000340), 0x2c801, 0x0) r6 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000480), r1) sendmsg$NL80211_CMD_CONNECT(r5, &(0x7f0000000580)={&(0x7f00000003c0)={0x10, 0x0, 0x0, 0x40000000}, 0xc, &(0x7f0000000540)={&(0x7f00000004c0)={0x5c, r6, 0x100, 0x5, 0x25dfdbfe, {{}, {@void, @val={0xc, 0x99, {0x2, 0x2}}}}, [@NL80211_ATTR_WIPHY_EDMG_CHANNELS={0x5, 0x118, 0x28}, @NL80211_ATTR_MAC={0xa}, @NL80211_ATTR_VHT_CAPABILITY={0x10, 0x9d, {0x22ddafefb7a8c9de, {0xffff, 0x20, 0x4, 0x7ff}}}, @NL80211_ATTR_PBSS={0x4}, @NL80211_ATTR_MAC={0xa, 0x6, @from_mac}, @NL80211_ATTR_PBSS={0x4}, @NL80211_ATTR_PRIVACY={0x4}]}, 0x5c}, 0x1, 0x0, 0x0, 0x80}, 0x40040) sendmsg$BATADV_CMD_SET_MESH(0xffffffffffffffff, &(0x7f0000000440)={0x0, 0x0, &(0x7f0000000400)={&(0x7f0000000200)=ANY=[@ANYBLOB="14fe0000", @ANYRES16=r2, @ANYBLOB="000000001102c0e25d8544a2e460ca0f58451851b6e117397fe1e9b1b436ac14be7ccfd133e201dedcd5976888e39b6da7ffdc957470e1c770c4c7d792000000000000009cd4c14b5a89e11a50727599e788a6f00f3bdfe20afcad77f308637f20e590f37def54d987abb16000"/122, @ANYRES32=r3, @ANYBLOB="08002b5cfd2496"], 0x2c}}, 0x2400c000) socket$nl_generic(0x10, 0x3, 0x10) (async) socket(0x11, 0x800000003, 0x0) (async) bind(r1, &(0x7f0000000080)=@ethernet={0x306, @remote}, 0x80) (async) sendmsg$key(r1, &(0x7f0000000300)={0x0, 0x0, &(0x7f00000002c0)={&(0x7f0000000040)={0x2, 0x16, 0xff, 0x5, 0x4, 0x0, 0x70bd2a, 0x25dfdbff, [@sadb_ident={0x2, 0xb, 0x200, 0x0, 0x5}]}, 0x20}}, 0x4000000) (async) getsockname$packet(r1, &(0x7f0000000100)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @dev}, &(0x7f0000000140)=0x2e) (async) syz_genetlink_get_family_id$batadv(&(0x7f00000001c0), r1) (async) ioctl$ifreq_SIOCGIFINDEX_batadv_mesh(0xffffffffffffffff, 0x8933, &(0x7f0000000380)) (async) syz_genetlink_get_family_id$l2tp(&(0x7f0000000080), r0) (async) sendmsg$L2TP_CMD_SESSION_MODIFY(r0, &(0x7f0000000180)={&(0x7f0000000000)={0x10, 0x0, 0x0, 0x20000}, 0xc, &(0x7f0000000140)={&(0x7f00000000c0)={0x48, r4, 0x200, 0x70bd2d, 0x25dfdbfd, {}, [@L2TP_ATTR_UDP_ZERO_CSUM6_TX={0x5, 0x21, 0x1}, @L2TP_ATTR_IP6_SADDR={0x14, 0x1f, @private0}, @L2TP_ATTR_SESSION_ID={0x8, 0xb, 0x1}, @L2TP_ATTR_VLAN_ID={0x6, 0xe, 0x7}, @L2TP_ATTR_RECV_SEQ={0x5, 0x12, 0x40}]}, 0x48}, 0x1, 0x0, 0x0, 0x44880}, 0x20040804) (async) openat$dlm_plock(0xffffffffffffff9c, &(0x7f0000000340), 0x2c801, 0x0) (async) syz_genetlink_get_family_id$nl80211(&(0x7f0000000480), r1) (async) sendmsg$NL80211_CMD_CONNECT(r5, &(0x7f0000000580)={&(0x7f00000003c0)={0x10, 0x0, 0x0, 0x40000000}, 0xc, &(0x7f0000000540)={&(0x7f00000004c0)={0x5c, r6, 0x100, 0x5, 0x25dfdbfe, {{}, {@void, @val={0xc, 0x99, {0x2, 0x2}}}}, [@NL80211_ATTR_WIPHY_EDMG_CHANNELS={0x5, 0x118, 0x28}, @NL80211_ATTR_MAC={0xa}, @NL80211_ATTR_VHT_CAPABILITY={0x10, 0x9d, {0x22ddafefb7a8c9de, {0xffff, 0x20, 0x4, 0x7ff}}}, @NL80211_ATTR_PBSS={0x4}, @NL80211_ATTR_MAC={0xa, 0x6, @from_mac}, @NL80211_ATTR_PBSS={0x4}, @NL80211_ATTR_PRIVACY={0x4}]}, 0x5c}, 0x1, 0x0, 0x0, 0x80}, 0x40040) (async) sendmsg$BATADV_CMD_SET_MESH(0xffffffffffffffff, &(0x7f0000000440)={0x0, 0x0, &(0x7f0000000400)={&(0x7f0000000200)=ANY=[@ANYBLOB="14fe0000", @ANYRES16=r2, @ANYBLOB="000000001102c0e25d8544a2e460ca0f58451851b6e117397fe1e9b1b436ac14be7ccfd133e201dedcd5976888e39b6da7ffdc957470e1c770c4c7d792000000000000009cd4c14b5a89e11a50727599e788a6f00f3bdfe20afcad77f308637f20e590f37def54d987abb16000"/122, @ANYRES32=r3, @ANYBLOB="08002b5cfd2496"], 0x2c}}, 0x2400c000) (async) 00:06:23 executing program 4: r0 = socket$nl_route(0x10, 0x3, 0x0) r1 = syz_open_dev$vcsn(&(0x7f00000036c0), 0x4, 0x200) sendmsg$nl_route(r1, &(0x7f00000035c0)={&(0x7f0000003700)={0x10, 0x0, 0x0, 0x1000}, 0xc, &(0x7f00000037c0)={&(0x7f0000003600)=@bridge_newvlan={0x54, 0x70, 0x200, 0x70bd2d, 0x25dfdbfd, {}, [@BRIDGE_VLANDB_ENTRY={0xc, 0x1, 0x0, 0x1, @BRIDGE_VLANDB_ENTRY_RANGE={0x6, 0x2, 0xa}}, @BRIDGE_VLANDB_ENTRY={0xc, 0x1, 0x0, 0x1, @BRIDGE_VLANDB_ENTRY_STATE={0x5, 0x3, 0x1}}, @BRIDGE_VLANDB_ENTRY={0xc, 0x1, 0x0, 0x1, @BRIDGE_VLANDB_ENTRY_INFO={0x8, 0x1, {0x3}}}, @BRIDGE_VLANDB_ENTRY={0xc, 0x1, 0x0, 0x1, @BRIDGE_VLANDB_ENTRY_STATE={0x5, 0x3, 0x3}}, @BRIDGE_VLANDB_ENTRY={0xc, 0x1, 0x0, 0x1, @BRIDGE_VLANDB_ENTRY_INFO={0x8, 0x1, {0x52, 0x3}}}]}, 0x54}}, 0xe010) r2 = socket(0x10, 0x2, 0x0) write(r2, &(0x7f0000000280)="1c0000001a009b8a140000003b9b301f00"/28, 0x32) recvmmsg(r2, &(0x7f0000002ec0), 0x400000000000ec0, 0x2, &(0x7f00000001c0)={0x77359400}) sendmsg$nl_route(0xffffffffffffffff, &(0x7f0000000300)={0x0, 0x60, &(0x7f0000000080)={&(0x7f0000000240)=@newlink={0x44, 0x10, 0x401, 0x0, 0x0, {0x0, 0x0, 0x0, 0x0, 0x132}, [@IFLA_LINKINFO={0x14, 0x12, 0x0, 0x1, @macvlan={{0xc}, {0x4}}}, @IFLA_LINK={0x8}, @IFLA_MASTER={0x8}]}, 0x44}}, 0x0) sendmsg$nl_route_sched(0xffffffffffffffff, &(0x7f0000003800)={&(0x7f0000003680)={0x10, 0x0, 0x0, 0x200000}, 0xc, &(0x7f0000003780)={&(0x7f0000003980)=ANY=[@ANYBLOB="1af097e391ff4465f37e687e957984d66185a50425bd700000dc9f2500000001", @ANYRES32=0x0, @ANYBLOB="03000d0000000f000b00f47f04000a0004000a0004000a0004000a00"], 0x34}, 0x1, 0x0, 0x0, 0x48001}, 0x8000) socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route(r0, &(0x7f0000000200)={0x0, 0x0, &(0x7f00000000c0)={&(0x7f0000000100)=@ipv6_newrule={0x24, 0x18, 0x409, 0x0, 0x0, {}, [@FIB_RULE_POLICY=@FRA_GOTO={0x8, 0x1e, 0x7}]}, 0x24}}, 0x0) 00:06:23 executing program 2: mount$binderfs(0x0, &(0x7f0000000240)='./binderfs\x00', &(0x7f0000000280), 0x0, &(0x7f00000002c0)=ANY=[@ANYBLOB="736d61636b66737472616e736d7a74653d2f646576c476637323652c00"]) ioctl$NS_GET_OWNER_UID(0xffffffffffffffff, 0xb704, &(0x7f0000000140)=0x0) (async) r1 = getuid() socket(0x10, 0x0, 0x0) (async) setresgid(0x0, 0x0, 0x0) (async, rerun: 32) r2 = getegid() (rerun: 32) setresgid(0x0, r2, 0x0) r3 = socket(0x10, 0x2, 0x0) getsockopt$sock_cred(r3, 0x1, 0x11, &(0x7f0000caaffb)={0x0, 0x0}, &(0x7f0000cab000)=0xc) setresuid(0x0, r4, 0x0) (async) r5 = socket(0x10, 0x0, 0x0) getsockopt$sock_cred(r5, 0x1, 0x11, &(0x7f0000caaffb)={0x0, 0x0, 0x0}, &(0x7f0000cab000)=0xc) setresgid(r6, r6, 0x0) (async) r7 = getegid() setresgid(r6, r7, 0x0) (async) getgroups(0x1, &(0x7f0000000040)=[r7]) (async) syz_fuse_handle_req(0xffffffffffffffff, &(0x7f0000000480)="cd96d45c8bd92033616e3cd4a66c28bbdebdd7ede039ca7048bc4697c1498ae77e3d3fd35afbf6df62a586544740bb09e87883086d670a60ff9cf95d5f31714eb316ca6f1bbe9fb8542126ad9820c96e2214c9639eae4275a0ba3eb0f5c739890acc5de9e74415219ec2b992599359dd7cefb8bd08d74da15526a79581037f30689576125ba7447734bbf65caf853824b3fb050cdf9248e541c6dab4f9802b71f7f94fec0467e6b3bc7b0951d285310cc30cbd761286819a2199161eb2027df29a591b07cdd33c011aed993f9e2de784d92efb48fa900c98ed3453981c52e4fcdc4e9f689f6293d81b4256156cc1ae17b11c0c2050576d7894d39c0643f25854c3628cde1b896ee53562405943e9a8806bf57762beb57d584e501161510b10c29a948509118ea6a15af570a0883e5c6193002db3712305f918b81844cda7e132efd0e0f0ceb6c4dfd841fe73a6507de0e04899a6d63c43858381584e2c786bfdda6c2284fbe52a843b9ec046826445c669a49f1d9d3a54d400bc18010b4793358f683b91b8911bde50096ed92b477c2c720b65ccf41002e93d8f2f6f8e2be5f7f1b3802c0c77281da4b0c37360196781faac6aac2949456882638a1adf60a5661268e601ecf87ac3ddca8ba1b578dab8de920651116dda1a6cfc3805a239a75a8ac4a951a98f66b57689a33ae3c5a33e363267b6210d0f3d56a3e63db6ddf8ceaa5e911a82b6fa7eead00ed152ce8593ad4a945938b001dc8842bd0a23936b0ddae5dc65bacd7b042e841bc547a0fbad20e49ad8ab56ba56204b0263f861b2c0d847145065bc4bcb1a0e1859cf1301a40250ca2bc7136434baa3336bc2e1af4b76b4a4257ff66fa4f4bf56febb55344abab25903bec65672418136818f0d4cc403a978f918931ab77a87115f41c6507bae1370a8f8c3f21a7a4a66cd0a9d962f423c7b808a93c9570a633cc8905799080bba171fda4eedc9d8e261b83a9aa2714d579552f03e6be42b3cf6e3ad383d2155cb25eed8399ad0ea84600ca435a9434d55a561f855e40ed56259e88bda5e5a5690d189e4f174a77b513d9cba0e379b38861f6c1d08c1cbb860f4b9c3e7e9bcda68d5a3a003511b1800eec0d4d0c020edc851622c75b21cc922815b380b17453cd62ed6f6c6666938811d37172b9dd8fcc04c393b3f2fd69876606e25a67864dce46865a7d334e09eb7145b4b2768c5078e2fe6b436f89a96fbfc77556a621b40ee1763dafc4fbef50521a80acb17cede3fbb6b916467b168b121bfbfec6edfc4315dea1d1d8d326f92cbdf0723f93f4c8e033f5ebda2ca5c78bd0d1d887d7678dce351bccd194cd963b26941fc5574742d3f130405d228679828e31c80600c16ec74328c45136ca0433d022a416ecd8a915cde7ff317ebd9585e8c5421611b4fb2219972fb3e219e05d2e71371d14f0ed7bcdd010d0f19583fc49eb5228f3147a23348b66371442f427ad419684dfc24c169c19c1bc72ee6a3a2a439ae899fb2f31a63cf078f1e1802272395df65a209e528d7665c7bddf2dcbc00fdbb6ad40b64766e474a7c86797fb3164b1e7423c26efeeb1ba2511fb0ad89672ad1bb160f9ce86796b61281dc5305200ac1783d001c53d13156017e4310cb6848057937b3781866c24bbb88fc6a151a2072ac4627d981c2a669e8a84087ec9af208c8fb9017b9cb52c3f15d6e8fe47fefcdd3f42b1d0163482c720d0c2f616dbe75461026cd30fdd95b7713a99e19b8f0684464b68fe58dc6a6fc8df3b2a37fc97abc1ce1fb3955a1720e92353f256929eb51a458ca33ab2d3b524984dbcd633fad79dd0925f6972ceed6e7fcb9f7ff385794dd89ddf4248722479d802626270d578aa3c74aaf42fa36ebb2b246b047dae2f2d6f5575512b8b315648171ebb3fdf339bc32db6e0cc9db04f72e3079770f3457a35a2ad09477091635e66e3876fe35da4f8b98119fef6cbd69209f6e5d37ebf1a8df61fe15dc48d2dca35daf3e2b2106b4142ff34a9798bf3a006048e394e6de75f700b253a6f12154fe5dd93bc099d6892b8f3e2995db49876055e337c25bcecf8abffd6e024b5d87586b0739ea52e914e24280dc6098eb67132ed76b39d5442550e138c262410ce0c5cb5dd9a45f480895137903aa54d96c1fbf91aaa2c2ba09aae43a9812443d6a0af34d43f1a761c9813c1cf07946882cac36440e5f9421ed0b4939fb9cff163e80259d137f9864aac9fe0f81699a8ee8e0be2950687b24143423282f361221c50a11d305683cfe418917f0c80df6d5b4695458ff24cf434793eeb86f19d9f55d36f3cf2e999f669f458d7387f7e84d4578614351df4c31ff10f559aebab69aa40dc243a70cc08aa39bf9c4cd1d6b67ebdecb81451d91c410993c075aa71375b217bd61459effbae9d96e6efa9d23779ad3b274255935bc99f7297a59cbe7faf934e9bc0d097d71dd6c7327932514cc39db5e8c11fa628fea313614b23261172f78de962071b20df89e6848fa0d1dc9094adae57e4b51a56fe117d6206c93fc1af30b5a84b36bbe4b2164b08d5b04a2acfaef723c11c59c8de7829f651dec54955b0da40284a6a448bb3c4712561312c0dc99dd8d7cc4fc1a3aaf8bd6286528829a833df2cb2597050f6e79caa144a45705307afdf0b9e1570bbdc31e04603f598f37b798ac9ead4d6d8985e45eefc1f1162ef207862d7cf07c3ab2faa93f85ce6c9e8850a869f0f849c03854e5a6684debbe091e8afe9780fbf10b7c8133d0e95cc97e7f39574ef6eb0848d136ac0ba4e39035717af6a21514aa02e503b3585e090c29725a3485483109c969c589511a98a347f4f8fb26503f6b8904dcf8f16f978b9cb8330117a3192581ac4af29c178fc0c12b074f2705f850bbeeec2e72c8662315a61722dbd0ff20416cfbb51a5d70d7431cdf813b490b1ed3b2d8b88cfb1701285d8efad97ed0685ffffd085367c43379ddd8c9cbf429f4fea95363f3d88c397282ecc4cc922db3b2362a02d147412b2ee0b4862f42ea4a068b0fdfafaf4a52746ca45283629328ad3c658d8ceb90d345172cce8cb896a68521e3752d4116b34171a0ead846ef8cbc1b953827668c95eff1cccd7e251c72ef6e66076c735ebec3725b88402097ecb9197356e7393db5c8a34f7c9ee2e4a37862aa2c094297b2bfcf10e095e8a38731face51f9d0bf4c5e08bf8c34963e8bb88420602d5fdddc4a53b5839fc1490339a66f43e3cf3a18d1b94af711b1df217f28bfc0a4b3d5f106602ac1390174664a581163c9457ada486fdcd4bcd2fa79790d53f6ae4f462ce54d9a515fa7bc32b2f8c7a5f16759a31323c01ee50bb5e41a91611437cc465a54ea8fe5c1695d72ef0bc71d6c3eb372b7bed39234aeaa03d41eca271cc5539bafe14b73d150a69ad76290b18baa9ebd8f863140df6ae5328dcb29b922e8f935d5cabdd01647f5ddb9db35f6350adaf441be369d0513f57b63e481bdbac2eaca87ba1764d38e94953d90b30a5e71a4d9bbb32b3ddf4bdd5a0abd7ab3b07670f54d7542fcc90c6c6a88d7516b1d207089ba45fd8cd112235581da3a531f656f489d0772af857d5676df9d2b89ad191de6fbd4524c049ab25580bad9402d4099b9970a1198edfdba28f2b6d5cb6487440a628056cdd64dac774c4e0c6ac2d252a44da3a4611deedcc4e33e96a51146f28e21de48c0a19e1246368ef1b81588f3f65c4624d7c2ff3036906584fe2cc78c07865b3ab7ebb9b91860db3a39e5d262c918cfe0ae6333ceeb70cfd4e5848d9d97b88f6387bcdd6f7a4cb01a1caca3acc61a1e810bbfb0d245328ad47d21e61c7312ae9388c53f3cf3860c3e29cfc2444c762e83023032c6a8b18de65305fcee18ab3c4047a6bdd89a214c7063b9a8c418456005afa072738b976f4a079f4149b60c7a43ceb55fb2f18b6c4c7fac34d4b2fb5b30d5d2c09edf70161262baabfb5e3a69d4f0d5a2f045e445a497fd0cd7e058565d926c9c866b6ff311c0796af6615de687af7ad2a1328a9ce2df0efc3903d97361ecb679d4dd721a9f053b811fb0ac0c30d8f75b799448049fc404ee233de2d662e782eba24ceca6d2d48850a1c4b0a63e3689a220b05f502528b201b99267b11d73b95f1f0471723f047f60acab38f4a49d815ead48f8c3c58235cbb982e452e0c22e7910217313550c840647bfeadb3c66167494edd7949f0b496841705da29454f122b12bff4d29aa678234fc0a49c1b7b1da369ac77cb5031958979df9f7b012984d57b0fdb2fefb0d5765539e76a1e51986a50156c0296def98761f81ca4b5916aa3d6bccc063818a8728167131f835e8c83b01c4f2d3cd24a476831951cda87f69382dd698500209a1e5939484943cde4af69028e9a7c137ea6044d69fe350bbe63c2909dc0800007e86f448d60032fed9cf56b8ac6ebe6baacabcb81fbcb5564ed15931738e4cdd21d51e123522668134412206c6e7ff15210939cfc13e2c3343ca1266341c8aaff60c1c13be7ef4c165d76b527ddd01d7d104f94edc56c18b5d2291878f68d7c9275adb602c13826141bf46af64cc6b9577fca3060fb3ff6547aa25525b92ccd3d56fc8cc985a7f0dab3b12063a870f7dca4b4dcbebf825ea80c6a76a9b613a91b6f0502d5d7e6cef07c7a46017ceab9eba1e80721f826095eccbd88b2a3e4b530b0b89ce14521098529ec4780bea3244ced39f45f4342968af70ec8faa45d9c912bd21c05a9973655704597946fb0aabcdba2af4993334af52d58e0072f0460381a16dbe196d98b06ed7c896555cb534d431814f79acd2f29cb83f6ccb0e286a670904258d1091574693b69ed60b8b59b5022d756fc88f0207a0b0161786616a0b83661f5670b9fed47655af49132a87e9fae58f74aa356d95434986f2831883f682b1067fb44e1c05f26a9526536dc5ed653cb1c213956d038daced813854bb363cac4945453ca185f70976778345cd8d68d779ea0c14df2db0ac85463e066f297583426f88798397c8bf6a301e96054a39d4a30d1fade5ff283ab8b62352b1e57a085baf8698d52ad9a26c2b3687b3957c692c626944334a7d9d12a2b552b478cadee807ace6039f4a376944ae5e3161b0b618706c31c1bd07010c78420962112158a1957f4dba55532c4f29dfe0df79a0223709738343eddaa489f9d7e63c5deba2b348ae959b2d9e7c31409832cde0ea2256f2358ffb8f746a4eefd9142d3e4896b209aca6d9f998c99abdd9be4bca4f5a0503a62ca03bfe8031b74913a80dde42bb8fa7a80e3cecfbf5f4b0efc34eb23ad0c2340b9cee5e24de2473318f9a0b7771d32994caae269472d4814e75c46f0b6e8871797f6c985e3e9202333bdaa97c95f8decd79b699032a624715d77423c460983113d7a529504ed307e8be5f269900b68f81eea546d89e8421b9caae8881180eaeebdf7f502bfdfff70a5d225e490286e177f06e5c84d799b1321c00c595c9e12c9767ca46b5d2ca7f3f1522b1dd1496dd5c3889616818da23e1c38091947823f61439852ddf578d7533eceb036e368a1a0bd6e1b252af732c1bb410fc3197e87117440b1a2d27771962458a01aa7cef669be7ffe9eeb14af985e2e7693c30e63d5cf9af87993c8a04dc3fec380e74739b579b780395d68e6d7ee8da8f2dbc68629a45c77c58c7031d1b56cc52d7c7e1548c5130a5fdfae9afcce791c880e739632b9c6a5f3dacf935eb59f82b8f61df41704ef6c147a751bc891d35bf39f13f2d4b63bc0020f5ad7acb0b5a252a4315e74e18c90fbe76a241ccd5239cd75c144cfd857c51345ad7d8dcef065bd2c65d4b5071d789c6a38044c597c5fad7330e9ac1a4a01ae1ca169f215c91840705525aaf2f2f89b1e5f160858a4ef654eb3343c25c60c3191e3c2dd5c63e89ed43ffbccb3f13279a0b8e1428c969542fd19fce4d56547fc4f565c5e1947feee53843ce75b68f438372d6d64bc4f641191be9202858ee01f566f3535b96043f0ad2af33f7b14ddcd7c31c6be356e00f7017e7f6df45751c8c8fae74a9dbd47c42766bfdfec8e344ae995f36eafb40eea9cafd70501cc59bf4ecd4fedc0a2f287a8994e03d243534f9fb85b781b6a9523192080be1ac4d76f3fff0656596fb787bc998e83c884fb8f514a69c3d19be94f6ec7820833d77eeede3e9d4d067e09b0dab85a916abab11c309db254da15f12c95a38d6cbbc0935c759a6b4809f41428fd011dc14783ea34443122c76958056e4a037663255587fd885edd91fe5b0e8f70b7bb53268a338629e40f5f7834fbfa1fcf2ea9c4b8f3e249a0298714b27b357b5b216bebbb2d8575da797e1e15915b8c664da3540fd44164ef116eb6d75d355aff84659b1ba561ad089d517dc2898b82ec8c46d7ddf2d3464385057ce594e45fa31f2ccc0f7c8cc00bbc929b9d705142be7824209e3116b25b3c27c74fceb6b983198584f06b44c3ee559e0c3746c5861c7f0daecacce7084ff62f66eeeb7c6a42e60a759afe24c816c6e4e3f262935e32c322d0305a87ff931c1f2096c965cd8410572b4e274e9d792b5bb612f6083470eb145810be9bdbc3fc77f46cdef74a89ba925c17e51dc19162fd2b65f7b33cffe5d40d0785e98f2bede37d1bbaa9afa87857ffc6417f67ac6b9ae428188450b57783aafb9d89339761de5fedf2185ff47425c73d456e2a5dec8303745ffe6655074bb5fd694a36dfcc8f47365611a0a21140965c9ae2a07af76a03a64cabf89f3bba2ba75d47557fd5f9c556515dcb7ea930480a47a38c2796019c0238820e5c97f48203fbbbe31c59d5ea8a8bd3d57f95d39d14d678342fcff8672b5160654b95af14651fc1a409141efe5037e3f0894bea227c983928cefe2b8d67d5ecfad9a0da51d763c71faf6164a22bc689fa0e02afb1047b442df301cbc33f8156159499121384fd660bdd56fc0eb8aaaea17284bd67bb504e44374c17d2899fe827db47d5572377151cd7f7bc6cd2fda45cbb73ae68f896e733e8efbf8f665b297121a0bc2f6ea52fadf4e96218ede8f33cbb46d23e6c07de16e5fc3bf4510a87bbdd612fe65a99cb0885a5f687279d4cff84264ecfa021bd8b699735e74ca4a015171536962e5a13317e0ce5b51235bd63a3e252346f2d772b54df5e2eb140711cea287df94bfc9143b5bebab41737a3ed2fc883bfbf9971965c9a77eb7bd6083a2322f9d361663b57558e76dfc460bc6fe9b120bab9d6bcca415a91d177ebcad07cc023b8254fde8cadc47b01225c35901a067ce9de6423d2dc420cf2227d09487222334de22b3d9f5a1ad90b91f64ae92f2a1e128ec9c144617b6333457e20bb1080238834a2688e4a56a2f6ce05fa2b1dd5bd6055484f3bd3ccdbbecf764be71fee53dec380868a4008105648cc28ad8178dc0a46ad42a8c950af851ef62d6427dfaef2fcf7d3a2135de0a8c3485511766fbd37cb785b6c6b82c15c7eeaca4ce56823565599b0d9694d1441a1f644489d7f04fce79db1cfad18e11ddd968672db278d4dd1e8611e8d232f3c20d9a065910fefbb3eaa16ff3048b22f1415ae08e47b8e711909c04162dbe1be419d86ba4b73c9567e5416a64ecf922d1c70594b9ba3dcc808013c2ca03b1ff832d5a73989bd183e0fc8dbf612bf608d39a45a82280e9880e59a47403ca22c977df65288de55cf48145a5f5d6f4281f46d025b968ede3e7322406dda687069b37b396eba070ab290206dcb378c65e40accbb00d3dbf82794d42c67fead487ef775596049f9cf9f684a07ae798c0bcb5fe7aed1cd36a39c5107aca91fffc56f582fbda79fe8d5375a433b4c0aee2b307a38bb7020594bc6d0bee085335427efa44a233785b083c12bed3ccd99c928dc7aaccb6765f9499e63a2173bb6b91f21def6c0d331c9bd65f945a00f470ac9178046a8958dc6b0f64a4509b29ca526cfe9cc6115322f234b2e92c68539e8a8c32e52e1b2adcf8209e7a0819594b32484a452d9d40d2dfdd84bf58f3c80fbfe69d138a3f29161f7a6542aa11c91b4cd7387c4ed818a5aabbe581a572093daa49da86d863085abd82920be5fb1a4dbe622566519624547bf88f859ef1abf34fa51e1af3619eb8a3ac2d7effeea68fbf7770656f24b1aea58d205f907ff3430ba3a91748e91e27c2d0d818377a7089455176d46228800e744b62b1ac8f11a9b6308b4d65078c8201c6d6bfcbbc986618111fe7032d68df616bc1c28fe2c68f02fd6bf1a860a5774045284ac73b71d91d98f1536c578f8eec543d500e4b00507589440c51434fb0168a052e1294212a4fb61ead89bca1bfd83f8b1b2a0661e1f66834ec496adfa9a5289a0b8539ffe86fcea6524973a401cc47ef175625132ad9432524ad94cbf24bb3baa24569db9b42b3a8abad919839151b2e4fe31a04cda66fc879d62e675f5d91cd751eaa8937fbc62ef45f4307bf9752e9784c4f5f0747e033ec6be650de9147790f9860bbaea54e284c7567f93989268d2a0cbf50d186c74b0aab184732972d9c79030482be66d41b897d70770383b7511dbd2d5065b2659846fa1b916df15c7e87b88a3599b052673fe450a8fc2d2ac8dd9b7e345fc459beeb97106b2762dab803880ecd9a16f275c088ad00417037cac9c5afd43296d3966c41892bf9c8b164b81ba04bfca66b0c3fe7cb42dd048c2f38e3d34303dd565aa9648bc1357b454a7a247e3ca360f0acd620c2c5e7e6b7e76dd85fd6927537797308c0d2389ab282108a1190a51df6339232e1b166c9aa4815a33ada882dbab71334066e044879c07eea0de4573aa50c8e8a29505a94107bfade724813c32eac5d0f892000e035cdf292a59b924f9125618aacb82fbc1607d102616f7b954262b38c9e7e19b4ee68373bd5da9ca8be4399e3c3bef2ee7caf41ec0c422d07415bf4ec85cb358616c23618d87b0ec7d7cbe9dd1f6f0c6580e21c78647d853ecf6c5ba082084ba95aa9c8cc420df4d734bf2e1049bf10b4823948827c52d83ec00abeaaa7d4c211484f024335391a830da7f895c197a0452a6311482c49012d32b87147734e43a4db4bfaf57c395b15fd3e5dd7cc6b23a03c08da5dea0d3ea1cbe25537c539062d0f02aea94938f32a668be6cb974fbe8dd803905c8b62062e610385d58192c7f1ced95aa9c464293f4b6741cfd5c54644d495ea854cefdabf6e9255f86ad3f6822e1c0033de5ab8e26a81f6d0b38bed48cf4d2318a5d074d674b6d3f6559e04e277b84d3adefdb22e3dee104425d89335e23e4c5140a2810c70381ac74a231c84bbf2ceeb75433df33635ba38f4446287708e0f8678dfc2eefac437cf2dfd0154df907b7d341222d4671be1c29abc91713685b5881c1494bb223f6a47577b573e50fc3d4c053ab8ac5a49872e22aa577963660c2f939aeb7f1b54a214262e89fdc4b21c9c7dc5f95394719cc2ef6f7b6e6cb8e77829dbfeb4d4e9d66e42f3cdfd594091e82a852431168c6b033706a93df7d8c75e7e7bcfc7c1d3cc6ff6911770f2911e31a78809713ba1eb51185f97532007bc2eedc8428099f4cccc910b408c8e4fb968c1f04fcb6c45b217be51b9ad699cf55f0970cff05bdd89b6a2ec259fcae0d834a94aee6b0906e8b5a7bc68af2b8c5c8814672a6ce6512216b22a210cf561295a3597dc2618ffc34418a4b72dffb6d0403488076ca093444458f42598546320b5210b2e54145b4ee3885cba175bb092dcecb0a765371aa88040b3707fda6ec08a62b9bc53ffbb222d05496ad3ed92e84a8e3242f9084e350cfa57316e3c9a7fe5aba261c34a0531c183329409dfe02b80190304c8c0ef111fca3a18d61735852a861eb2327303f9202d53a85037a2c30d3b02c3e53bd43712d7fa18f28dfa1bfc9798ffdd6fba688e0697d642d304d94b7aa9b53b2aade85e9f5c03729f1bfd386848de3fbff7cc9837b4ac7d9469aca37600911baec27d7751c57ec8af18453e98fd9b367b41a92105617afea35b3c6396af794f6f8edc6a476ead3688863620ec3ea676d42720f8dcf86ef6a1dfe7754910564bb86df72d170e27e54900e9ae9aec6a71ed9663f7cf453cf4e5777bc68696e1a30ae751a3818d3f31d0a9ea70da9fdfe553485ecd58d3e852be26bf012ce4c52d8b1a836d5021ce26c6bc7e5d8ecc26792fc28629515ddea1fc4c21f8c56d905c8781d55fbf8486739a5a5d60933cd86be4a2b2abdb5cac4f5bccbda13e1bdad571de4a519c8491f94c75eec848f4af1d2ec20359bd2f747b59992aae9683181a3111ce8ebd8f949af4f0a0571174fd49acc66fd8ce1bca6f2b8794271466fdb22896650e8c05b205bd2551d6289b32a8a819c5b57efb0376a07777c4b968c55d0948b0a0b21cd16c8fc18ce3eba021b5f15ae0f4c9dfc2ce3e45b423e92fbf406aa0f3b1041c85fd455b48a86599dcc3906b85b67ed0bc91813e60f31f6addc54f774c06e4f5e506d4bdac25117402eaa9f39df960ea3c6abd2c31ffd8040bc536765e11f77ae0deb4e780f598090bdd2c4e5e9c11084ecedc96fcb2e59539c60c7307df1d76f533051d014303f3c1a5b8d6655dbc799ce2232c374a103ba20f858c22f35f4cdc87bd1c57205bfa6ed990940b509b06587f8c34bf7dfa8beeb76c64cffeb0ee9db016d87fd550f846631f63d252c15199737b1f70ba5a153cbd39bde63913e7f1e2a5b0b21b45c79871b522b693613555e9a781338dd9ec816d7ddf2b9caf96ed9070bb730e5cb845341772d7b737885fa471680c078ca0db4b62dab97f50cc5162e93b7e1c6cc76e7e3737392b66b09a1966f1ffbfa9f7b48a850ee2d67bfd986caac77df9f1bba05807f89852675ef38861102043d48bc47279855ee5670d20c5f1f44d1e3d7e7ae0ec566f3a0a657082be9b5cca06ef54c34b247b75aa39ee98cec645979f5006275c706bd725596bdaab80e487dae496cc8d0a79e7ebfcab6c8c0e9d11e9ef20f657e4597bc7489e9aae7d1d83042028faf314015c71692c1e3b0a924d4a20041d7af38e205b8f909afc37d04442e154cee5f5c291d647c534ced97f04f63381215fec69c196bf364caf6251f0361f9c0a4f00735218f32ea25e96497b81890aaf308038e8cc2311472a9a6a0a9275d37745e6009447cb23539511bf1d7b89ea8712d1b2879a1b3c7cea7e629383697a97149d45c53118b6583fb8c8285adb9f5ca34ac360d17e7339e3218c3762b719aaa1b8984a6e38ca834aeef40ce3f640b5cd597a27c42adc5f0ba517364dfdbfe580e00874578f62b5dd0644c263e2b2e52ed1dafa4567ca70d72fba65017c16559ea8764fcc0a603f9757a5f6fcdcce40c02a03dad127676898bd0e7515f5b4566db6f551f5a72653812f73b58d0ffe554951b01365c03708b538bc78e284e6109082d2ab9750c295b8fe7ad33804870ca44a527f0b732ae9600524903f994206ad82dfc80d7247f4680682adeba5f82d9e5b500e597072bbd71e1444066f407614007ee9d669d4281fa970bb02d8d8f3da1738c2e6e13f9e7306cb1a33b8472445f80bc56e8cfde22c9c99a75a1cdb30bacb30a7fa87025ed97345a1", 0x2000, &(0x7f0000002f00)={&(0x7f0000000180)={0x50, 0x0, 0x0, {0x7, 0x24, 0x80, 0x6140, 0x4, 0x84fb, 0xc0, 0x7ff}}, &(0x7f0000000080)={0x18, 0x0, 0x6, {0x8912}}, &(0x7f0000000100)={0x18, 0x0, 0xfffffffffffffff9}, &(0x7f0000000200)={0x18, 0x0, 0x4, {0x2}}, &(0x7f0000002480)={0x18, 0x0, 0x4, {0x401}}, &(0x7f00000024c0)={0x28, 0xb, 0x5, {{0x401, 0x3, 0x2}}}, &(0x7f0000002500)={0x60, 0x0, 0x9, {{0x825, 0xaa, 0x0, 0xa9, 0x9, 0x345, 0x0, 0x8502}}}, &(0x7f0000002580)={0x18, 0x0, 0x5, {0x3}}, &(0x7f00000025c0)={0x115, 0x0, 0x0, {'bind)\xa48\x1b\xee\xa2$}e\xa4\x99\a\x00\x00\x00Q|er\x00\xad\xb3Z\xf1}\x13\xd6\xab\x81\xf0s\x9d\xc9\n\x038Ur\xbey`\xa1w\xe5\xe8gl\xc6H]\xd5wAayI\xf1Ln\x91\x95\x83\xdcf \x85\xe6\xcb,6(~\xdfJ4lI\r\xbb\x97G{A\xc6\xfe\x05\a\xd2o}\x8c\xe0\x9a\xd2\xc0\xb3R\x10\xbe\xdf\x1eUHx\xed\x00\xdb:Y\x862\xcdZ\x94xm\xa3\f\xb1\xecK\xd8\xfb\x89C\x91\xaf\xb3G2\x96\xc6y\xacA\xa2\xd0U\xe1\xb5[\xa5\xc6[ty1{`\xbf\xcc\x00\x84&\xff\x98\x96\xd4\xbfn\xfc\x98\xac\xff\x01\x00\x00\x00\x00\x00\x00D\xde\x82\xcf\xa7\x0e\x10\x8e\x8d\x1f4\x05\xa4\xd9Cu\xe5\xf4BB\xa9\xf1\x8b\x97\xc6\xd8:\xec\xf8\xac6\t\xa0\a\xddk\xe1Klc\x9bys\x06\xeazV`\x95\xd5\xa9\xde\x9co\xe7J\xa9QZ:V\x18\x16\xb9n\xac\xa9~\x87\xa4\xe7\xa0p7 \x93\xadt\x0eae\xa2\x11q;:'}}, &(0x7f0000002700)={0x20, 0xffffffffffffffda, 0x7, {0x0, 0xc}}, &(0x7f0000002880)={0x78, 0x0, 0xea, {0x56d3, 0x7, 0x0, {0x4, 0x8001, 0x4, 0x36, 0x40, 0x40, 0x81, 0x8, 0x1, 0x8000, 0x7958, 0x0, 0xffffffffffffffff, 0x3, 0x1}}}, &(0x7f0000002940)={0x90, 0xffffffffffffffda, 0x5, {0x3, 0x1, 0x0, 0x8, 0x400, 0x7, {0x5, 0x7, 0x4, 0x295952bd, 0xaf5c, 0x101, 0x8000, 0x10000, 0x50b2, 0x4000, 0x401, r0, 0x0, 0x5}}}, &(0x7f0000002a00)={0xa8, 0x0, 0x89fa, [{0x1, 0x8, 0x4, 0x6, 'port'}, {0x5, 0xfffffffffffffff7, 0x8, 0x6, 'obj_role'}, {0x5, 0xe99, 0x1, 0x101, '!'}, {0x2, 0x6de26df4, 0x0, 0x3}, {0x1, 0xfffffffffffffffe, 0x6, 0xfffffff7, '\\/}-/\\'}]}, &(0x7f0000002ac0)=ANY=[@ANYBLOB="40030000daffffff01000000000000000200000000000000010000000000000010000000000000000200000000000000090000003f0000000100000000000000070a000000000000c0ffffffffffffff0000000000007000ff07000000000000000000800000000001000000ffffffff000800000010000005000000", @ANYRES32=r1, @ANYRES32=0x0, @ANYBLOB="09000000ff0300000000000005000000000000000700000000000000070000000700000066736d616769630004000000000000000100000000000000ff070000000000000900000000000000010000000400000002000000000000006c4f000000000000f7ffffffffffffff0400000000000000f8ffffffffffffffffffffffffffff7fa900000001010000008000000010000002000000", @ANYRES32=r0, @ANYRES32, @ANYBLOB="060000000001000000000000010000000000000006000000000000000b000000010000007472616e733d72646d612c0000000000060000000000000000800000000000001f00000000000000010000000100000003000000020000000500000000000000ae02000000000000ffffffffffffff7f01000000000000000100000000000000ffffffffffffff7f0400000080000000080000000040000007000000", @ANYRES32=r0, @ANYRES32=0xee01, @ANYBLOB="030000003f0000000000000006000000000000003f0e0000000000000b0000e434ab9f6127380f696e646572667300000000000005000000000000000200000000000000de0300000000000000000000010040006708000003000000d1340000000000007800000000000000467d000000ff00002489000000000007e72c7db59f5cdebebcab000300000000000000040000000000000081000000ff010000fb", @ANYRES32=r0, @ANYRES32=0xee01, @ANYBLOB="05000000018000000000000006000000000000000100000000000000070000003029000062696e64657200000300000000000000020000000000000007000000000000000900000000000000080000000300000004000000000000000300000000000000000000000000000001000000000000000900000000000000080000000000000009000000ff000000090000000000000004000000", @ANYRES32=r4, @ANYRES32=0xee00, @ANYBLOB="02000000030000000000000002000000000000000500000000000000070000000000000066736d6167696300"], &(0x7f0000002e00)={0xa0, 0x0, 0x57a35fb, {{0x1, 0x1, 0x0, 0x3, 0x0, 0xf41, {0x6, 0x8000000000000000, 0xfffffffffffffffb, 0x1000, 0x5, 0x9, 0x16, 0x2, 0x5, 0x6000, 0x9, r0, r7, 0x1, 0x40}}, {0x0, 0x2}}}, &(0x7f0000002ec0)={0x20, 0x0, 0x2, {0xbf13, 0x4, 0x5, 0x1}}}) (async) mount$9p_rdma(&(0x7f0000000000), &(0x7f0000000040)='./file0\x00', &(0x7f00000000c0), 0x20a2044, &(0x7f0000000300)={'trans=rdma,', {'port', 0x3d, 0x4e20}, 0x2c, {[], [{@seclabel}, {@fsmagic={'fsmagic', 0x3d, 0x81}}, {@uid_lt={'uid<', r0}}]}}) (async) socket(0x21, 0x805, 0x200) [ 383.166690][T21523] binder: Unknown parameter 'smackfstransmzte' 00:06:23 executing program 5: r0 = socket$inet_tcp(0x2, 0x1, 0x0) bind$inet(r0, &(0x7f0000000000)={0x2, 0x4e20, @multicast2}, 0x10) setsockopt$sock_int(r0, 0x1, 0x3c, &(0x7f0000000340)=0x1, 0x4) connect$inet(r0, &(0x7f0000000200)={0x2, 0x4e20, @loopback}, 0x10) r1 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f00000001c0)='memory.current\x00', 0x275a, 0x0) write$binfmt_script(r1, &(0x7f0000000000)=ANY=[], 0x208e24b) mmap(&(0x7f0000000000/0xb36000)=nil, 0xb36000, 0x2, 0x28011, r1, 0x0) sendmmsg$inet(r0, &(0x7f00000012c0)=[{{0x0, 0x4002, &(0x7f0000000600)=[{&(0x7f00000000c0)='o', 0x1}], 0x1, 0x0, 0x0, 0xf}, 0x34}, {{0x0, 0x0, &(0x7f0000001b80)=[{&(0x7f0000000740), 0x40020000}], 0x1, 0x0, 0x0, 0x41000000}}], 0x2, 0x60c5840) 00:06:23 executing program 4: r0 = socket$nl_route(0x10, 0x3, 0x0) r1 = syz_open_dev$vcsn(&(0x7f00000036c0), 0x4, 0x200) sendmsg$nl_route(r1, &(0x7f00000035c0)={&(0x7f0000003700)={0x10, 0x0, 0x0, 0x1000}, 0xc, &(0x7f00000037c0)={&(0x7f0000003600)=@bridge_newvlan={0x54, 0x70, 0x200, 0x70bd2d, 0x25dfdbfd, {}, [@BRIDGE_VLANDB_ENTRY={0xc, 0x1, 0x0, 0x1, @BRIDGE_VLANDB_ENTRY_RANGE={0x6, 0x2, 0xa}}, @BRIDGE_VLANDB_ENTRY={0xc, 0x1, 0x0, 0x1, @BRIDGE_VLANDB_ENTRY_STATE={0x5, 0x3, 0x1}}, @BRIDGE_VLANDB_ENTRY={0xc, 0x1, 0x0, 0x1, @BRIDGE_VLANDB_ENTRY_INFO={0x8, 0x1, {0x3}}}, @BRIDGE_VLANDB_ENTRY={0xc, 0x1, 0x0, 0x1, @BRIDGE_VLANDB_ENTRY_STATE={0x5, 0x3, 0x3}}, @BRIDGE_VLANDB_ENTRY={0xc, 0x1, 0x0, 0x1, @BRIDGE_VLANDB_ENTRY_INFO={0x8, 0x1, {0x52, 0x3}}}]}, 0x54}}, 0xe010) r2 = socket(0x10, 0x2, 0x0) write(r2, &(0x7f0000000280)="1c0000001a009b8a140000003b9b301f00"/28, 0x32) recvmmsg(r2, &(0x7f0000002ec0), 0x400000000000ec0, 0x2, &(0x7f00000001c0)={0x77359400}) sendmsg$nl_route(0xffffffffffffffff, &(0x7f0000000300)={0x0, 0x60, &(0x7f0000000080)={&(0x7f0000000240)=@newlink={0x44, 0x10, 0x401, 0x0, 0x0, {0x0, 0x0, 0x0, 0x0, 0x132}, [@IFLA_LINKINFO={0x14, 0x12, 0x0, 0x1, @macvlan={{0xc}, {0x4}}}, @IFLA_LINK={0x8}, @IFLA_MASTER={0x8}]}, 0x44}}, 0x0) sendmsg$nl_route_sched(0xffffffffffffffff, &(0x7f0000003800)={&(0x7f0000003680)={0x10, 0x0, 0x0, 0x200000}, 0xc, &(0x7f0000003780)={&(0x7f0000003980)=ANY=[@ANYBLOB="1af097e391ff4465f37e687e957984d66185a50425bd700000dc9f2500000001", @ANYRES32=0x0, @ANYBLOB="03000d0000000f000b00f47f04000a0004000a0004000a0004000a00"], 0x34}, 0x1, 0x0, 0x0, 0x48001}, 0x8000) sendmsg$nl_route(r0, &(0x7f0000000200)={0x0, 0x0, &(0x7f00000000c0)={&(0x7f0000000100)=@ipv6_newrule={0x24, 0x18, 0x409, 0x0, 0x0, {}, [@FIB_RULE_POLICY=@FRA_GOTO={0x8, 0x1e, 0x7}]}, 0x24}}, 0x0) 00:06:23 executing program 0: r0 = socket$inet_tcp(0x2, 0x1, 0x0) bind$inet(r0, &(0x7f0000000000)={0x2, 0x4e20, @multicast2}, 0x10) setsockopt$sock_int(r0, 0x1, 0x3c, &(0x7f0000000340)=0x1, 0x4) connect$inet(r0, &(0x7f0000000200)={0x2, 0x4e20, @loopback}, 0x10) r1 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f00000001c0)='memory.current\x00', 0x275a, 0x0) write$binfmt_script(r1, &(0x7f0000000000)=ANY=[], 0x208e24b) mmap(&(0x7f0000000000/0xb36000)=nil, 0xb36000, 0x2, 0x28011, r1, 0x0) sendmmsg$inet(r0, &(0x7f00000012c0)=[{{0x0, 0x4002, &(0x7f0000000600)=[{&(0x7f00000000c0)='o', 0x1}], 0x1, 0x0, 0x0, 0xf}, 0x34}, {{0x0, 0x0, &(0x7f0000001b80)=[{&(0x7f0000000740), 0x40020000}], 0x1, 0x0, 0x0, 0xf2ffffff}}], 0x2, 0x60c5840) 00:06:23 executing program 2: mount$binderfs(0x0, &(0x7f0000000240)='./binderfs\x00', &(0x7f0000000280), 0x0, &(0x7f00000002c0)=ANY=[@ANYBLOB="736d61636b66737472616e736d7a74653d2f646576c476637323652c00"]) (async) ioctl$NS_GET_OWNER_UID(0xffffffffffffffff, 0xb704, &(0x7f0000000140)=0x0) r1 = getuid() (async) socket(0x10, 0x0, 0x0) setresgid(0x0, 0x0, 0x0) (async) r2 = getegid() setresgid(0x0, r2, 0x0) r3 = socket(0x10, 0x2, 0x0) getsockopt$sock_cred(r3, 0x1, 0x11, &(0x7f0000caaffb)={0x0, 0x0}, &(0x7f0000cab000)=0xc) setresuid(0x0, r4, 0x0) (async) r5 = socket(0x10, 0x0, 0x0) getsockopt$sock_cred(r5, 0x1, 0x11, &(0x7f0000caaffb)={0x0, 0x0, 0x0}, &(0x7f0000cab000)=0xc) setresgid(r6, r6, 0x0) (async) r7 = getegid() setresgid(r6, r7, 0x0) getgroups(0x1, &(0x7f0000000040)=[r7]) (async) syz_fuse_handle_req(0xffffffffffffffff, &(0x7f0000000480)="cd96d45c8bd92033616e3cd4a66c28bbdebdd7ede039ca7048bc4697c1498ae77e3d3fd35afbf6df62a586544740bb09e87883086d670a60ff9cf95d5f31714eb316ca6f1bbe9fb8542126ad9820c96e2214c9639eae4275a0ba3eb0f5c739890acc5de9e74415219ec2b992599359dd7cefb8bd08d74da15526a79581037f30689576125ba7447734bbf65caf853824b3fb050cdf9248e541c6dab4f9802b71f7f94fec0467e6b3bc7b0951d285310cc30cbd761286819a2199161eb2027df29a591b07cdd33c011aed993f9e2de784d92efb48fa900c98ed3453981c52e4fcdc4e9f689f6293d81b4256156cc1ae17b11c0c2050576d7894d39c0643f25854c3628cde1b896ee53562405943e9a8806bf57762beb57d584e501161510b10c29a948509118ea6a15af570a0883e5c6193002db3712305f918b81844cda7e132efd0e0f0ceb6c4dfd841fe73a6507de0e04899a6d63c43858381584e2c786bfdda6c2284fbe52a843b9ec046826445c669a49f1d9d3a54d400bc18010b4793358f683b91b8911bde50096ed92b477c2c720b65ccf41002e93d8f2f6f8e2be5f7f1b3802c0c77281da4b0c37360196781faac6aac2949456882638a1adf60a5661268e601ecf87ac3ddca8ba1b578dab8de920651116dda1a6cfc3805a239a75a8ac4a951a98f66b57689a33ae3c5a33e363267b6210d0f3d56a3e63db6ddf8ceaa5e911a82b6fa7eead00ed152ce8593ad4a945938b001dc8842bd0a23936b0ddae5dc65bacd7b042e841bc547a0fbad20e49ad8ab56ba56204b0263f861b2c0d847145065bc4bcb1a0e1859cf1301a40250ca2bc7136434baa3336bc2e1af4b76b4a4257ff66fa4f4bf56febb55344abab25903bec65672418136818f0d4cc403a978f918931ab77a87115f41c6507bae1370a8f8c3f21a7a4a66cd0a9d962f423c7b808a93c9570a633cc8905799080bba171fda4eedc9d8e261b83a9aa2714d579552f03e6be42b3cf6e3ad383d2155cb25eed8399ad0ea84600ca435a9434d55a561f855e40ed56259e88bda5e5a5690d189e4f174a77b513d9cba0e379b38861f6c1d08c1cbb860f4b9c3e7e9bcda68d5a3a003511b1800eec0d4d0c020edc851622c75b21cc922815b380b17453cd62ed6f6c6666938811d37172b9dd8fcc04c393b3f2fd69876606e25a67864dce46865a7d334e09eb7145b4b2768c5078e2fe6b436f89a96fbfc77556a621b40ee1763dafc4fbef50521a80acb17cede3fbb6b916467b168b121bfbfec6edfc4315dea1d1d8d326f92cbdf0723f93f4c8e033f5ebda2ca5c78bd0d1d887d7678dce351bccd194cd963b26941fc5574742d3f130405d228679828e31c80600c16ec74328c45136ca0433d022a416ecd8a915cde7ff317ebd9585e8c5421611b4fb2219972fb3e219e05d2e71371d14f0ed7bcdd010d0f19583fc49eb5228f3147a23348b66371442f427ad419684dfc24c169c19c1bc72ee6a3a2a439ae899fb2f31a63cf078f1e1802272395df65a209e528d7665c7bddf2dcbc00fdbb6ad40b64766e474a7c86797fb3164b1e7423c26efeeb1ba2511fb0ad89672ad1bb160f9ce86796b61281dc5305200ac1783d001c53d13156017e4310cb6848057937b3781866c24bbb88fc6a151a2072ac4627d981c2a669e8a84087ec9af208c8fb9017b9cb52c3f15d6e8fe47fefcdd3f42b1d0163482c720d0c2f616dbe75461026cd30fdd95b7713a99e19b8f0684464b68fe58dc6a6fc8df3b2a37fc97abc1ce1fb3955a1720e92353f256929eb51a458ca33ab2d3b524984dbcd633fad79dd0925f6972ceed6e7fcb9f7ff385794dd89ddf4248722479d802626270d578aa3c74aaf42fa36ebb2b246b047dae2f2d6f5575512b8b315648171ebb3fdf339bc32db6e0cc9db04f72e3079770f3457a35a2ad09477091635e66e3876fe35da4f8b98119fef6cbd69209f6e5d37ebf1a8df61fe15dc48d2dca35daf3e2b2106b4142ff34a9798bf3a006048e394e6de75f700b253a6f12154fe5dd93bc099d6892b8f3e2995db49876055e337c25bcecf8abffd6e024b5d87586b0739ea52e914e24280dc6098eb67132ed76b39d5442550e138c262410ce0c5cb5dd9a45f480895137903aa54d96c1fbf91aaa2c2ba09aae43a9812443d6a0af34d43f1a761c9813c1cf07946882cac36440e5f9421ed0b4939fb9cff163e80259d137f9864aac9fe0f81699a8ee8e0be2950687b24143423282f361221c50a11d305683cfe418917f0c80df6d5b4695458ff24cf434793eeb86f19d9f55d36f3cf2e999f669f458d7387f7e84d4578614351df4c31ff10f559aebab69aa40dc243a70cc08aa39bf9c4cd1d6b67ebdecb81451d91c410993c075aa71375b217bd61459effbae9d96e6efa9d23779ad3b274255935bc99f7297a59cbe7faf934e9bc0d097d71dd6c7327932514cc39db5e8c11fa628fea313614b23261172f78de962071b20df89e6848fa0d1dc9094adae57e4b51a56fe117d6206c93fc1af30b5a84b36bbe4b2164b08d5b04a2acfaef723c11c59c8de7829f651dec54955b0da40284a6a448bb3c4712561312c0dc99dd8d7cc4fc1a3aaf8bd6286528829a833df2cb2597050f6e79caa144a45705307afdf0b9e1570bbdc31e04603f598f37b798ac9ead4d6d8985e45eefc1f1162ef207862d7cf07c3ab2faa93f85ce6c9e8850a869f0f849c03854e5a6684debbe091e8afe9780fbf10b7c8133d0e95cc97e7f39574ef6eb0848d136ac0ba4e39035717af6a21514aa02e503b3585e090c29725a3485483109c969c589511a98a347f4f8fb26503f6b8904dcf8f16f978b9cb8330117a3192581ac4af29c178fc0c12b074f2705f850bbeeec2e72c8662315a61722dbd0ff20416cfbb51a5d70d7431cdf813b490b1ed3b2d8b88cfb1701285d8efad97ed0685ffffd085367c43379ddd8c9cbf429f4fea95363f3d88c397282ecc4cc922db3b2362a02d147412b2ee0b4862f42ea4a068b0fdfafaf4a52746ca45283629328ad3c658d8ceb90d345172cce8cb896a68521e3752d4116b34171a0ead846ef8cbc1b953827668c95eff1cccd7e251c72ef6e66076c735ebec3725b88402097ecb9197356e7393db5c8a34f7c9ee2e4a37862aa2c094297b2bfcf10e095e8a38731face51f9d0bf4c5e08bf8c34963e8bb88420602d5fdddc4a53b5839fc1490339a66f43e3cf3a18d1b94af711b1df217f28bfc0a4b3d5f106602ac1390174664a581163c9457ada486fdcd4bcd2fa79790d53f6ae4f462ce54d9a515fa7bc32b2f8c7a5f16759a31323c01ee50bb5e41a91611437cc465a54ea8fe5c1695d72ef0bc71d6c3eb372b7bed39234aeaa03d41eca271cc5539bafe14b73d150a69ad76290b18baa9ebd8f863140df6ae5328dcb29b922e8f935d5cabdd01647f5ddb9db35f6350adaf441be369d0513f57b63e481bdbac2eaca87ba1764d38e94953d90b30a5e71a4d9bbb32b3ddf4bdd5a0abd7ab3b07670f54d7542fcc90c6c6a88d7516b1d207089ba45fd8cd112235581da3a531f656f489d0772af857d5676df9d2b89ad191de6fbd4524c049ab25580bad9402d4099b9970a1198edfdba28f2b6d5cb6487440a628056cdd64dac774c4e0c6ac2d252a44da3a4611deedcc4e33e96a51146f28e21de48c0a19e1246368ef1b81588f3f65c4624d7c2ff3036906584fe2cc78c07865b3ab7ebb9b91860db3a39e5d262c918cfe0ae6333ceeb70cfd4e5848d9d97b88f6387bcdd6f7a4cb01a1caca3acc61a1e810bbfb0d245328ad47d21e61c7312ae9388c53f3cf3860c3e29cfc2444c762e83023032c6a8b18de65305fcee18ab3c4047a6bdd89a214c7063b9a8c418456005afa072738b976f4a079f4149b60c7a43ceb55fb2f18b6c4c7fac34d4b2fb5b30d5d2c09edf70161262baabfb5e3a69d4f0d5a2f045e445a497fd0cd7e058565d926c9c866b6ff311c0796af6615de687af7ad2a1328a9ce2df0efc3903d97361ecb679d4dd721a9f053b811fb0ac0c30d8f75b799448049fc404ee233de2d662e782eba24ceca6d2d48850a1c4b0a63e3689a220b05f502528b201b99267b11d73b95f1f0471723f047f60acab38f4a49d815ead48f8c3c58235cbb982e452e0c22e7910217313550c840647bfeadb3c66167494edd7949f0b496841705da29454f122b12bff4d29aa678234fc0a49c1b7b1da369ac77cb5031958979df9f7b012984d57b0fdb2fefb0d5765539e76a1e51986a50156c0296def98761f81ca4b5916aa3d6bccc063818a8728167131f835e8c83b01c4f2d3cd24a476831951cda87f69382dd698500209a1e5939484943cde4af69028e9a7c137ea6044d69fe350bbe63c2909dc0800007e86f448d60032fed9cf56b8ac6ebe6baacabcb81fbcb5564ed15931738e4cdd21d51e123522668134412206c6e7ff15210939cfc13e2c3343ca1266341c8aaff60c1c13be7ef4c165d76b527ddd01d7d104f94edc56c18b5d2291878f68d7c9275adb602c13826141bf46af64cc6b9577fca3060fb3ff6547aa25525b92ccd3d56fc8cc985a7f0dab3b12063a870f7dca4b4dcbebf825ea80c6a76a9b613a91b6f0502d5d7e6cef07c7a46017ceab9eba1e80721f826095eccbd88b2a3e4b530b0b89ce14521098529ec4780bea3244ced39f45f4342968af70ec8faa45d9c912bd21c05a9973655704597946fb0aabcdba2af4993334af52d58e0072f0460381a16dbe196d98b06ed7c896555cb534d431814f79acd2f29cb83f6ccb0e286a670904258d1091574693b69ed60b8b59b5022d756fc88f0207a0b0161786616a0b83661f5670b9fed47655af49132a87e9fae58f74aa356d95434986f2831883f682b1067fb44e1c05f26a9526536dc5ed653cb1c213956d038daced813854bb363cac4945453ca185f70976778345cd8d68d779ea0c14df2db0ac85463e066f297583426f88798397c8bf6a301e96054a39d4a30d1fade5ff283ab8b62352b1e57a085baf8698d52ad9a26c2b3687b3957c692c626944334a7d9d12a2b552b478cadee807ace6039f4a376944ae5e3161b0b618706c31c1bd07010c78420962112158a1957f4dba55532c4f29dfe0df79a0223709738343eddaa489f9d7e63c5deba2b348ae959b2d9e7c31409832cde0ea2256f2358ffb8f746a4eefd9142d3e4896b209aca6d9f998c99abdd9be4bca4f5a0503a62ca03bfe8031b74913a80dde42bb8fa7a80e3cecfbf5f4b0efc34eb23ad0c2340b9cee5e24de2473318f9a0b7771d32994caae269472d4814e75c46f0b6e8871797f6c985e3e9202333bdaa97c95f8decd79b699032a624715d77423c460983113d7a529504ed307e8be5f269900b68f81eea546d89e8421b9caae8881180eaeebdf7f502bfdfff70a5d225e490286e177f06e5c84d799b1321c00c595c9e12c9767ca46b5d2ca7f3f1522b1dd1496dd5c3889616818da23e1c38091947823f61439852ddf578d7533eceb036e368a1a0bd6e1b252af732c1bb410fc3197e87117440b1a2d27771962458a01aa7cef669be7ffe9eeb14af985e2e7693c30e63d5cf9af87993c8a04dc3fec380e74739b579b780395d68e6d7ee8da8f2dbc68629a45c77c58c7031d1b56cc52d7c7e1548c5130a5fdfae9afcce791c880e739632b9c6a5f3dacf935eb59f82b8f61df41704ef6c147a751bc891d35bf39f13f2d4b63bc0020f5ad7acb0b5a252a4315e74e18c90fbe76a241ccd5239cd75c144cfd857c51345ad7d8dcef065bd2c65d4b5071d789c6a38044c597c5fad7330e9ac1a4a01ae1ca169f215c91840705525aaf2f2f89b1e5f160858a4ef654eb3343c25c60c3191e3c2dd5c63e89ed43ffbccb3f13279a0b8e1428c969542fd19fce4d56547fc4f565c5e1947feee53843ce75b68f438372d6d64bc4f641191be9202858ee01f566f3535b96043f0ad2af33f7b14ddcd7c31c6be356e00f7017e7f6df45751c8c8fae74a9dbd47c42766bfdfec8e344ae995f36eafb40eea9cafd70501cc59bf4ecd4fedc0a2f287a8994e03d243534f9fb85b781b6a9523192080be1ac4d76f3fff0656596fb787bc998e83c884fb8f514a69c3d19be94f6ec7820833d77eeede3e9d4d067e09b0dab85a916abab11c309db254da15f12c95a38d6cbbc0935c759a6b4809f41428fd011dc14783ea34443122c76958056e4a037663255587fd885edd91fe5b0e8f70b7bb53268a338629e40f5f7834fbfa1fcf2ea9c4b8f3e249a0298714b27b357b5b216bebbb2d8575da797e1e15915b8c664da3540fd44164ef116eb6d75d355aff84659b1ba561ad089d517dc2898b82ec8c46d7ddf2d3464385057ce594e45fa31f2ccc0f7c8cc00bbc929b9d705142be7824209e3116b25b3c27c74fceb6b983198584f06b44c3ee559e0c3746c5861c7f0daecacce7084ff62f66eeeb7c6a42e60a759afe24c816c6e4e3f262935e32c322d0305a87ff931c1f2096c965cd8410572b4e274e9d792b5bb612f6083470eb145810be9bdbc3fc77f46cdef74a89ba925c17e51dc19162fd2b65f7b33cffe5d40d0785e98f2bede37d1bbaa9afa87857ffc6417f67ac6b9ae428188450b57783aafb9d89339761de5fedf2185ff47425c73d456e2a5dec8303745ffe6655074bb5fd694a36dfcc8f47365611a0a21140965c9ae2a07af76a03a64cabf89f3bba2ba75d47557fd5f9c556515dcb7ea930480a47a38c2796019c0238820e5c97f48203fbbbe31c59d5ea8a8bd3d57f95d39d14d678342fcff8672b5160654b95af14651fc1a409141efe5037e3f0894bea227c983928cefe2b8d67d5ecfad9a0da51d763c71faf6164a22bc689fa0e02afb1047b442df301cbc33f8156159499121384fd660bdd56fc0eb8aaaea17284bd67bb504e44374c17d2899fe827db47d5572377151cd7f7bc6cd2fda45cbb73ae68f896e733e8efbf8f665b297121a0bc2f6ea52fadf4e96218ede8f33cbb46d23e6c07de16e5fc3bf4510a87bbdd612fe65a99cb0885a5f687279d4cff84264ecfa021bd8b699735e74ca4a015171536962e5a13317e0ce5b51235bd63a3e252346f2d772b54df5e2eb140711cea287df94bfc9143b5bebab41737a3ed2fc883bfbf9971965c9a77eb7bd6083a2322f9d361663b57558e76dfc460bc6fe9b120bab9d6bcca415a91d177ebcad07cc023b8254fde8cadc47b01225c35901a067ce9de6423d2dc420cf2227d09487222334de22b3d9f5a1ad90b91f64ae92f2a1e128ec9c144617b6333457e20bb1080238834a2688e4a56a2f6ce05fa2b1dd5bd6055484f3bd3ccdbbecf764be71fee53dec380868a4008105648cc28ad8178dc0a46ad42a8c950af851ef62d6427dfaef2fcf7d3a2135de0a8c3485511766fbd37cb785b6c6b82c15c7eeaca4ce56823565599b0d9694d1441a1f644489d7f04fce79db1cfad18e11ddd968672db278d4dd1e8611e8d232f3c20d9a065910fefbb3eaa16ff3048b22f1415ae08e47b8e711909c04162dbe1be419d86ba4b73c9567e5416a64ecf922d1c70594b9ba3dcc808013c2ca03b1ff832d5a73989bd183e0fc8dbf612bf608d39a45a82280e9880e59a47403ca22c977df65288de55cf48145a5f5d6f4281f46d025b968ede3e7322406dda687069b37b396eba070ab290206dcb378c65e40accbb00d3dbf82794d42c67fead487ef775596049f9cf9f684a07ae798c0bcb5fe7aed1cd36a39c5107aca91fffc56f582fbda79fe8d5375a433b4c0aee2b307a38bb7020594bc6d0bee085335427efa44a233785b083c12bed3ccd99c928dc7aaccb6765f9499e63a2173bb6b91f21def6c0d331c9bd65f945a00f470ac9178046a8958dc6b0f64a4509b29ca526cfe9cc6115322f234b2e92c68539e8a8c32e52e1b2adcf8209e7a0819594b32484a452d9d40d2dfdd84bf58f3c80fbfe69d138a3f29161f7a6542aa11c91b4cd7387c4ed818a5aabbe581a572093daa49da86d863085abd82920be5fb1a4dbe622566519624547bf88f859ef1abf34fa51e1af3619eb8a3ac2d7effeea68fbf7770656f24b1aea58d205f907ff3430ba3a91748e91e27c2d0d818377a7089455176d46228800e744b62b1ac8f11a9b6308b4d65078c8201c6d6bfcbbc986618111fe7032d68df616bc1c28fe2c68f02fd6bf1a860a5774045284ac73b71d91d98f1536c578f8eec543d500e4b00507589440c51434fb0168a052e1294212a4fb61ead89bca1bfd83f8b1b2a0661e1f66834ec496adfa9a5289a0b8539ffe86fcea6524973a401cc47ef175625132ad9432524ad94cbf24bb3baa24569db9b42b3a8abad919839151b2e4fe31a04cda66fc879d62e675f5d91cd751eaa8937fbc62ef45f4307bf9752e9784c4f5f0747e033ec6be650de9147790f9860bbaea54e284c7567f93989268d2a0cbf50d186c74b0aab184732972d9c79030482be66d41b897d70770383b7511dbd2d5065b2659846fa1b916df15c7e87b88a3599b052673fe450a8fc2d2ac8dd9b7e345fc459beeb97106b2762dab803880ecd9a16f275c088ad00417037cac9c5afd43296d3966c41892bf9c8b164b81ba04bfca66b0c3fe7cb42dd048c2f38e3d34303dd565aa9648bc1357b454a7a247e3ca360f0acd620c2c5e7e6b7e76dd85fd6927537797308c0d2389ab282108a1190a51df6339232e1b166c9aa4815a33ada882dbab71334066e044879c07eea0de4573aa50c8e8a29505a94107bfade724813c32eac5d0f892000e035cdf292a59b924f9125618aacb82fbc1607d102616f7b954262b38c9e7e19b4ee68373bd5da9ca8be4399e3c3bef2ee7caf41ec0c422d07415bf4ec85cb358616c23618d87b0ec7d7cbe9dd1f6f0c6580e21c78647d853ecf6c5ba082084ba95aa9c8cc420df4d734bf2e1049bf10b4823948827c52d83ec00abeaaa7d4c211484f024335391a830da7f895c197a0452a6311482c49012d32b87147734e43a4db4bfaf57c395b15fd3e5dd7cc6b23a03c08da5dea0d3ea1cbe25537c539062d0f02aea94938f32a668be6cb974fbe8dd803905c8b62062e610385d58192c7f1ced95aa9c464293f4b6741cfd5c54644d495ea854cefdabf6e9255f86ad3f6822e1c0033de5ab8e26a81f6d0b38bed48cf4d2318a5d074d674b6d3f6559e04e277b84d3adefdb22e3dee104425d89335e23e4c5140a2810c70381ac74a231c84bbf2ceeb75433df33635ba38f4446287708e0f8678dfc2eefac437cf2dfd0154df907b7d341222d4671be1c29abc91713685b5881c1494bb223f6a47577b573e50fc3d4c053ab8ac5a49872e22aa577963660c2f939aeb7f1b54a214262e89fdc4b21c9c7dc5f95394719cc2ef6f7b6e6cb8e77829dbfeb4d4e9d66e42f3cdfd594091e82a852431168c6b033706a93df7d8c75e7e7bcfc7c1d3cc6ff6911770f2911e31a78809713ba1eb51185f97532007bc2eedc8428099f4cccc910b408c8e4fb968c1f04fcb6c45b217be51b9ad699cf55f0970cff05bdd89b6a2ec259fcae0d834a94aee6b0906e8b5a7bc68af2b8c5c8814672a6ce6512216b22a210cf561295a3597dc2618ffc34418a4b72dffb6d0403488076ca093444458f42598546320b5210b2e54145b4ee3885cba175bb092dcecb0a765371aa88040b3707fda6ec08a62b9bc53ffbb222d05496ad3ed92e84a8e3242f9084e350cfa57316e3c9a7fe5aba261c34a0531c183329409dfe02b80190304c8c0ef111fca3a18d61735852a861eb2327303f9202d53a85037a2c30d3b02c3e53bd43712d7fa18f28dfa1bfc9798ffdd6fba688e0697d642d304d94b7aa9b53b2aade85e9f5c03729f1bfd386848de3fbff7cc9837b4ac7d9469aca37600911baec27d7751c57ec8af18453e98fd9b367b41a92105617afea35b3c6396af794f6f8edc6a476ead3688863620ec3ea676d42720f8dcf86ef6a1dfe7754910564bb86df72d170e27e54900e9ae9aec6a71ed9663f7cf453cf4e5777bc68696e1a30ae751a3818d3f31d0a9ea70da9fdfe553485ecd58d3e852be26bf012ce4c52d8b1a836d5021ce26c6bc7e5d8ecc26792fc28629515ddea1fc4c21f8c56d905c8781d55fbf8486739a5a5d60933cd86be4a2b2abdb5cac4f5bccbda13e1bdad571de4a519c8491f94c75eec848f4af1d2ec20359bd2f747b59992aae9683181a3111ce8ebd8f949af4f0a0571174fd49acc66fd8ce1bca6f2b8794271466fdb22896650e8c05b205bd2551d6289b32a8a819c5b57efb0376a07777c4b968c55d0948b0a0b21cd16c8fc18ce3eba021b5f15ae0f4c9dfc2ce3e45b423e92fbf406aa0f3b1041c85fd455b48a86599dcc3906b85b67ed0bc91813e60f31f6addc54f774c06e4f5e506d4bdac25117402eaa9f39df960ea3c6abd2c31ffd8040bc536765e11f77ae0deb4e780f598090bdd2c4e5e9c11084ecedc96fcb2e59539c60c7307df1d76f533051d014303f3c1a5b8d6655dbc799ce2232c374a103ba20f858c22f35f4cdc87bd1c57205bfa6ed990940b509b06587f8c34bf7dfa8beeb76c64cffeb0ee9db016d87fd550f846631f63d252c15199737b1f70ba5a153cbd39bde63913e7f1e2a5b0b21b45c79871b522b693613555e9a781338dd9ec816d7ddf2b9caf96ed9070bb730e5cb845341772d7b737885fa471680c078ca0db4b62dab97f50cc5162e93b7e1c6cc76e7e3737392b66b09a1966f1ffbfa9f7b48a850ee2d67bfd986caac77df9f1bba05807f89852675ef38861102043d48bc47279855ee5670d20c5f1f44d1e3d7e7ae0ec566f3a0a657082be9b5cca06ef54c34b247b75aa39ee98cec645979f5006275c706bd725596bdaab80e487dae496cc8d0a79e7ebfcab6c8c0e9d11e9ef20f657e4597bc7489e9aae7d1d83042028faf314015c71692c1e3b0a924d4a20041d7af38e205b8f909afc37d04442e154cee5f5c291d647c534ced97f04f63381215fec69c196bf364caf6251f0361f9c0a4f00735218f32ea25e96497b81890aaf308038e8cc2311472a9a6a0a9275d37745e6009447cb23539511bf1d7b89ea8712d1b2879a1b3c7cea7e629383697a97149d45c53118b6583fb8c8285adb9f5ca34ac360d17e7339e3218c3762b719aaa1b8984a6e38ca834aeef40ce3f640b5cd597a27c42adc5f0ba517364dfdbfe580e00874578f62b5dd0644c263e2b2e52ed1dafa4567ca70d72fba65017c16559ea8764fcc0a603f9757a5f6fcdcce40c02a03dad127676898bd0e7515f5b4566db6f551f5a72653812f73b58d0ffe554951b01365c03708b538bc78e284e6109082d2ab9750c295b8fe7ad33804870ca44a527f0b732ae9600524903f994206ad82dfc80d7247f4680682adeba5f82d9e5b500e597072bbd71e1444066f407614007ee9d669d4281fa970bb02d8d8f3da1738c2e6e13f9e7306cb1a33b8472445f80bc56e8cfde22c9c99a75a1cdb30bacb30a7fa87025ed97345a1", 0x2000, &(0x7f0000002f00)={&(0x7f0000000180)={0x50, 0x0, 0x0, {0x7, 0x24, 0x80, 0x6140, 0x4, 0x84fb, 0xc0, 0x7ff}}, &(0x7f0000000080)={0x18, 0x0, 0x6, {0x8912}}, &(0x7f0000000100)={0x18, 0x0, 0xfffffffffffffff9}, &(0x7f0000000200)={0x18, 0x0, 0x4, {0x2}}, &(0x7f0000002480)={0x18, 0x0, 0x4, {0x401}}, &(0x7f00000024c0)={0x28, 0xb, 0x5, {{0x401, 0x3, 0x2}}}, &(0x7f0000002500)={0x60, 0x0, 0x9, {{0x825, 0xaa, 0x0, 0xa9, 0x9, 0x345, 0x0, 0x8502}}}, &(0x7f0000002580)={0x18, 0x0, 0x5, {0x3}}, &(0x7f00000025c0)={0x115, 0x0, 0x0, {'bind)\xa48\x1b\xee\xa2$}e\xa4\x99\a\x00\x00\x00Q|er\x00\xad\xb3Z\xf1}\x13\xd6\xab\x81\xf0s\x9d\xc9\n\x038Ur\xbey`\xa1w\xe5\xe8gl\xc6H]\xd5wAayI\xf1Ln\x91\x95\x83\xdcf \x85\xe6\xcb,6(~\xdfJ4lI\r\xbb\x97G{A\xc6\xfe\x05\a\xd2o}\x8c\xe0\x9a\xd2\xc0\xb3R\x10\xbe\xdf\x1eUHx\xed\x00\xdb:Y\x862\xcdZ\x94xm\xa3\f\xb1\xecK\xd8\xfb\x89C\x91\xaf\xb3G2\x96\xc6y\xacA\xa2\xd0U\xe1\xb5[\xa5\xc6[ty1{`\xbf\xcc\x00\x84&\xff\x98\x96\xd4\xbfn\xfc\x98\xac\xff\x01\x00\x00\x00\x00\x00\x00D\xde\x82\xcf\xa7\x0e\x10\x8e\x8d\x1f4\x05\xa4\xd9Cu\xe5\xf4BB\xa9\xf1\x8b\x97\xc6\xd8:\xec\xf8\xac6\t\xa0\a\xddk\xe1Klc\x9bys\x06\xeazV`\x95\xd5\xa9\xde\x9co\xe7J\xa9QZ:V\x18\x16\xb9n\xac\xa9~\x87\xa4\xe7\xa0p7 \x93\xadt\x0eae\xa2\x11q;:'}}, &(0x7f0000002700)={0x20, 0xffffffffffffffda, 0x7, {0x0, 0xc}}, &(0x7f0000002880)={0x78, 0x0, 0xea, {0x56d3, 0x7, 0x0, {0x4, 0x8001, 0x4, 0x36, 0x40, 0x40, 0x81, 0x8, 0x1, 0x8000, 0x7958, 0x0, 0xffffffffffffffff, 0x3, 0x1}}}, &(0x7f0000002940)={0x90, 0xffffffffffffffda, 0x5, {0x3, 0x1, 0x0, 0x8, 0x400, 0x7, {0x5, 0x7, 0x4, 0x295952bd, 0xaf5c, 0x101, 0x8000, 0x10000, 0x50b2, 0x4000, 0x401, r0, 0x0, 0x5}}}, &(0x7f0000002a00)={0xa8, 0x0, 0x89fa, [{0x1, 0x8, 0x4, 0x6, 'port'}, {0x5, 0xfffffffffffffff7, 0x8, 0x6, 'obj_role'}, {0x5, 0xe99, 0x1, 0x101, '!'}, {0x2, 0x6de26df4, 0x0, 0x3}, {0x1, 0xfffffffffffffffe, 0x6, 0xfffffff7, '\\/}-/\\'}]}, &(0x7f0000002ac0)=ANY=[@ANYBLOB="40030000daffffff01000000000000000200000000000000010000000000000010000000000000000200000000000000090000003f0000000100000000000000070a000000000000c0ffffffffffffff0000000000007000ff07000000000000000000800000000001000000ffffffff000800000010000005000000", @ANYRES32=r1, @ANYRES32=0x0, @ANYBLOB="09000000ff0300000000000005000000000000000700000000000000070000000700000066736d616769630004000000000000000100000000000000ff070000000000000900000000000000010000000400000002000000000000006c4f000000000000f7ffffffffffffff0400000000000000f8ffffffffffffffffffffffffffff7fa900000001010000008000000010000002000000", @ANYRES32=r0, @ANYRES32, @ANYBLOB="060000000001000000000000010000000000000006000000000000000b000000010000007472616e733d72646d612c0000000000060000000000000000800000000000001f00000000000000010000000100000003000000020000000500000000000000ae02000000000000ffffffffffffff7f01000000000000000100000000000000ffffffffffffff7f0400000080000000080000000040000007000000", @ANYRES32=r0, @ANYRES32=0xee01, @ANYBLOB="030000003f0000000000000006000000000000003f0e0000000000000b0000e434ab9f6127380f696e646572667300000000000005000000000000000200000000000000de0300000000000000000000010040006708000003000000d1340000000000007800000000000000467d000000ff00002489000000000007e72c7db59f5cdebebcab000300000000000000040000000000000081000000ff010000fb", @ANYRES32=r0, @ANYRES32=0xee01, @ANYBLOB="05000000018000000000000006000000000000000100000000000000070000003029000062696e64657200000300000000000000020000000000000007000000000000000900000000000000080000000300000004000000000000000300000000000000000000000000000001000000000000000900000000000000080000000000000009000000ff000000090000000000000004000000", @ANYRES32=r4, @ANYRES32=0xee00, @ANYBLOB="02000000030000000000000002000000000000000500000000000000070000000000000066736d6167696300"], &(0x7f0000002e00)={0xa0, 0x0, 0x57a35fb, {{0x1, 0x1, 0x0, 0x3, 0x0, 0xf41, {0x6, 0x8000000000000000, 0xfffffffffffffffb, 0x1000, 0x5, 0x9, 0x16, 0x2, 0x5, 0x6000, 0x9, r0, r7, 0x1, 0x40}}, {0x0, 0x2}}}, &(0x7f0000002ec0)={0x20, 0x0, 0x2, {0xbf13, 0x4, 0x5, 0x1}}}) mount$9p_rdma(&(0x7f0000000000), &(0x7f0000000040)='./file0\x00', &(0x7f00000000c0), 0x20a2044, &(0x7f0000000300)={'trans=rdma,', {'port', 0x3d, 0x4e20}, 0x2c, {[], [{@seclabel}, {@fsmagic={'fsmagic', 0x3d, 0x81}}, {@uid_lt={'uid<', r0}}]}}) socket(0x21, 0x805, 0x200) 00:06:23 executing program 3: r0 = shmget$private(0x0, 0x3000, 0x1000, &(0x7f0000ffb000/0x3000)=nil) shmget$private(0x0, 0x3000, 0x54000000, &(0x7f0000ffb000/0x3000)=nil) shmat(r0, &(0x7f0000000000/0x4000)=nil, 0xffffffffffff6fff) mlockall(0x5) mlockall(0x5) mlockall(0x6) [ 383.240924][T21532] binder: Unknown parameter 'smackfstransmzte' 00:06:23 executing program 1: mkdirat(0xffffffffffffff9c, &(0x7f0000000000)='./file0\x00', 0xf0) mkdirat(0xffffffffffffff9c, &(0x7f0000000040)='./file0\x00', 0x142) mount(&(0x7f0000000240)=@loop={'/dev/loop', 0x0}, &(0x7f0000000280)='./file0\x00', &(0x7f00000002c0)='qnx6\x00', 0x0, 0x0) [ 383.281885][T21542] I/O error, dev loop1, sector 16 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2 [ 383.284105][T21542] qnx6: unable to read the first superblock [ 383.285492][T21542] I/O error, dev loop1, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2 00:06:23 executing program 4: r0 = socket$nl_route(0x10, 0x3, 0x0) r1 = syz_open_dev$vcsn(&(0x7f00000036c0), 0x4, 0x200) sendmsg$nl_route(r1, &(0x7f00000035c0)={&(0x7f0000003700)={0x10, 0x0, 0x0, 0x1000}, 0xc, &(0x7f00000037c0)={&(0x7f0000003600)=@bridge_newvlan={0x54, 0x70, 0x200, 0x70bd2d, 0x25dfdbfd, {}, [@BRIDGE_VLANDB_ENTRY={0xc, 0x1, 0x0, 0x1, @BRIDGE_VLANDB_ENTRY_RANGE={0x6, 0x2, 0xa}}, @BRIDGE_VLANDB_ENTRY={0xc, 0x1, 0x0, 0x1, @BRIDGE_VLANDB_ENTRY_STATE={0x5, 0x3, 0x1}}, @BRIDGE_VLANDB_ENTRY={0xc, 0x1, 0x0, 0x1, @BRIDGE_VLANDB_ENTRY_INFO={0x8, 0x1, {0x3}}}, @BRIDGE_VLANDB_ENTRY={0xc, 0x1, 0x0, 0x1, @BRIDGE_VLANDB_ENTRY_STATE={0x5, 0x3, 0x3}}, @BRIDGE_VLANDB_ENTRY={0xc, 0x1, 0x0, 0x1, @BRIDGE_VLANDB_ENTRY_INFO={0x8, 0x1, {0x52, 0x3}}}]}, 0x54}}, 0xe010) r2 = socket(0x10, 0x2, 0x0) write(r2, &(0x7f0000000280)="1c0000001a009b8a140000003b9b301f00"/28, 0x32) recvmmsg(r2, &(0x7f0000002ec0), 0x400000000000ec0, 0x2, &(0x7f00000001c0)={0x77359400}) sendmsg$nl_route(0xffffffffffffffff, &(0x7f0000000300)={0x0, 0x60, &(0x7f0000000080)={&(0x7f0000000240)=@newlink={0x44, 0x10, 0x401, 0x0, 0x0, {0x0, 0x0, 0x0, 0x0, 0x132}, [@IFLA_LINKINFO={0x14, 0x12, 0x0, 0x1, @macvlan={{0xc}, {0x4}}}, @IFLA_LINK={0x8}, @IFLA_MASTER={0x8}]}, 0x44}}, 0x0) sendmsg$nl_route(r0, &(0x7f0000000200)={0x0, 0x0, &(0x7f00000000c0)={&(0x7f0000000100)=@ipv6_newrule={0x24, 0x18, 0x409, 0x0, 0x0, {}, [@FIB_RULE_POLICY=@FRA_GOTO={0x8, 0x1e, 0x7}]}, 0x24}}, 0x0) 00:06:23 executing program 3: r0 = shmget$private(0x0, 0x3000, 0x1000, &(0x7f0000ffb000/0x3000)=nil) shmget$private(0x0, 0x3000, 0x54000000, &(0x7f0000ffb000/0x3000)=nil) shmat(r0, &(0x7f0000000000/0x4000)=nil, 0xffffffffffff6fff) mlockall(0x5) (async) mlockall(0x5) (async) mlockall(0x6) 00:06:23 executing program 4: r0 = socket$nl_route(0x10, 0x3, 0x0) r1 = syz_open_dev$vcsn(&(0x7f00000036c0), 0x4, 0x200) sendmsg$nl_route(r1, &(0x7f00000035c0)={&(0x7f0000003700)={0x10, 0x0, 0x0, 0x1000}, 0xc, &(0x7f00000037c0)={&(0x7f0000003600)=@bridge_newvlan={0x54, 0x70, 0x200, 0x70bd2d, 0x25dfdbfd, {}, [@BRIDGE_VLANDB_ENTRY={0xc, 0x1, 0x0, 0x1, @BRIDGE_VLANDB_ENTRY_RANGE={0x6, 0x2, 0xa}}, @BRIDGE_VLANDB_ENTRY={0xc, 0x1, 0x0, 0x1, @BRIDGE_VLANDB_ENTRY_STATE={0x5, 0x3, 0x1}}, @BRIDGE_VLANDB_ENTRY={0xc, 0x1, 0x0, 0x1, @BRIDGE_VLANDB_ENTRY_INFO={0x8, 0x1, {0x3}}}, @BRIDGE_VLANDB_ENTRY={0xc, 0x1, 0x0, 0x1, @BRIDGE_VLANDB_ENTRY_STATE={0x5, 0x3, 0x3}}, @BRIDGE_VLANDB_ENTRY={0xc, 0x1, 0x0, 0x1, @BRIDGE_VLANDB_ENTRY_INFO={0x8, 0x1, {0x52, 0x3}}}]}, 0x54}}, 0xe010) r2 = socket(0x10, 0x2, 0x0) write(r2, &(0x7f0000000280)="1c0000001a009b8a140000003b9b301f00"/28, 0x32) recvmmsg(r2, &(0x7f0000002ec0), 0x400000000000ec0, 0x2, &(0x7f00000001c0)={0x77359400}) sendmsg$nl_route(r0, &(0x7f0000000200)={0x0, 0x0, &(0x7f00000000c0)={&(0x7f0000000100)=@ipv6_newrule={0x24, 0x18, 0x409, 0x0, 0x0, {}, [@FIB_RULE_POLICY=@FRA_GOTO={0x8, 0x1e, 0x7}]}, 0x24}}, 0x0) [ 383.337578][T21542] qnx6: unable to read the first superblock 00:06:23 executing program 2: r0 = socket(0x10, 0x3, 0x0) r1 = socket$nl_route(0x10, 0x3, 0x0) r2 = socket(0x10, 0x803, 0x0) sendmsg$nl_route(r2, &(0x7f0000000580)={0x0, 0x0, &(0x7f0000000540)={0x0, 0x20}}, 0x0) getsockname$packet(r2, &(0x7f0000000100)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @broadcast}, &(0x7f0000000200)=0x14) sendmsg$nl_route(r1, &(0x7f0000000000)={0x0, 0x0, &(0x7f0000000140)={&(0x7f0000000040)=ANY=[@ANYBLOB="3c0000001000010400cef7ffffffffffff000000", @ANYRES32=r3, @ANYBLOB="01000000010000001c0012000c000100627269646765"], 0x3c}}, 0x0) r4 = socket$can_j1939(0x1d, 0x2, 0x7) ioctl$ifreq_SIOCGIFINDEX_vcan(r4, 0x8933, &(0x7f0000000a00)={'vxcan1\x00', 0x0}) setsockopt$sock_int(r4, 0x1, 0x6, &(0x7f0000000000)=0x1, 0x4) bind$can_j1939(r4, &(0x7f0000000240)={0x1d, r5}, 0x18) ioctl$sock_SIOCGIFINDEX(r2, 0x8933, &(0x7f0000000400)={'tunl0\x00', 0x0}) ioctl$ifreq_SIOCGIFINDEX_team(r0, 0x8933, &(0x7f0000000440)={'team0\x00', 0x0}) r8 = socket$can_j1939(0x1d, 0x2, 0x7) ioctl$ifreq_SIOCGIFINDEX_vcan(r8, 0x8933, &(0x7f0000000a00)={'vxcan1\x00', 0x0}) setsockopt$sock_int(r8, 0x1, 0x6, &(0x7f0000000000)=0x1, 0x4) bind$can_j1939(r8, &(0x7f0000000240)={0x1d, r9}, 0x18) sendmmsg(r8, &(0x7f0000002340)=[{{0x0, 0x0, 0x0}}, {{&(0x7f0000000100)=@can, 0x80, 0x0}}], 0x2, 0x0) r10 = openat$userio(0xffffffffffffff9c, &(0x7f0000000480), 0x200080, 0x0) sendmsg$nl_route_sched(r1, &(0x7f0000000500)={&(0x7f0000000080)={0x10, 0x0, 0x0, 0x10000}, 0xc, &(0x7f00000004c0)={&(0x7f0000000800)=@newtaction={0x52f4, 0x30, 0x8, 0x70bd2a, 0x25dfdbfc, {}, [{0x808, 0x1, [@m_sample={0xb4, 0xc, 0x0, 0x0, {{0xb}, {0x2c, 0x2, 0x0, 0x1, [@TCA_SAMPLE_TRUNC_SIZE={0x8, 0x4, 0xc11}, @TCA_SAMPLE_RATE={0x8, 0x3, 0x5}, @TCA_SAMPLE_PARMS={0x18, 0x2, {0x5, 0x4, 0x0, 0x3, 0x8001}}]}, {0x60, 0x6, "3e3ab8f2f8cfc74dae0f705d01999e7ca4f2db8628f9e3a24bdf3f2819521ab496b26160a809f532f5fc99daadb34ac8be88746dc13a27b2c1239a9758d446ebfa4bdc3c803a187ed9d01b6c7b20204e47913c6de9103e00ea79d881"}, {0xc, 0x7, {0x0, 0x1}}, {0xc, 0x8, {0x1, 0x1}}}}, @m_sample={0x110, 0x15, 0x0, 0x0, {{0xb}, {0xc, 0x2, 0x0, 0x1, [@TCA_SAMPLE_RATE={0x8, 0x3, 0xd7f4}]}, {0xda, 0x6, "e1e783c53aa31ab3ff39529fb89702e95790b78b10f324f253cbf3772822e3bb0fcfebc9c04ed3f1bbf44aea8b630243e4aa1de6a9b1b1f5f7534faa89d3a0a85bd8a32de7c9840c77861708994548e56a5f97f24bc85472572c4469cbb317db74aba3415a6d625944612a4f7a6629e3a134de01dfdc4e675da01e242bf92e71028786fb8fea06688c4a7064cff468dc5c106014859b3ddc7c26d91030616d85b5adc553776e04c673b454a87c72d8762a8ab56a9d76fca52741b1f9420de60096b3373b9185df3f2b0f0541042f92b1f466289b37da"}, {0xc, 0x7, {0x1}}, {0xc, 0x8, {0x0, 0x4}}}}, @m_nat={0x120, 0x8, 0x0, 0x0, {{0x8}, {0x2c, 0x2, 0x0, 0x1, [@TCA_NAT_PARMS={0x28, 0x1, {{0x80, 0x80000000, 0x7, 0x6, 0x80000001}, @loopback, @multicast1, 0xffffffff, 0x1}}]}, {0xcd, 0x6, "2935f669a926fe0fda65afb7c69b88f90b696fca4935bc74398efa9b96bf9fad2a506c451f7ebb85e5386724620115e3a238b334af077de8b7719796184429094d2b200e817419feb8f1ff16fc8b310ceb44e62b2ef0f972cbb17b90b4002275af8dd214038b249bfd495d5ad34d8dab9846f4815cdd11248d46cb80d0ee86c6d4ad3e7e65ad2370ca20e7e6888b4f09191bef80ae6aabdce558c63fbfcd8a56461b92a08bb80e3736258f4acf13dce60098d6b70068a75ef25c2f39c891345016c2818306047059bf"}, {0xc, 0x7, {0x1}}, {0xc, 0x8, {0x0, 0x3}}}}, @m_simple={0x140, 0x13, 0x0, 0x0, {{0xb}, {0x54, 0x2, 0x0, 0x1, [@TCA_DEF_PARMS={0x18, 0x2, {0x1, 0xccf, 0x7, 0x7, 0x3}}, @TCA_DEF_DATA={0x7, 0x3, '}\x0f\x00'}, @TCA_DEF_PARMS={0x18, 0x2, {0x8, 0x6, 0xffffffffffffffff, 0xbf, 0x2}}, @TCA_DEF_DATA={0x5, 0x3, '\x00'}, @TCA_DEF_DATA={0x8, 0x3, 'red\x00'}, @TCA_DEF_DATA={0x8, 0x3, 'red\x00'}]}, {0xc1, 0x6, "e03c397ad979cc13740d5433e1e8ecfabb05592b0b2469e4e2b3bdf2c59855000a9d21c6c6a9c53b69bb76231248f3292df1a0a9b427899aadc21cc58a6b2c5780788f9ed295a50a575a4dc6bb5c745caea7dc11f088039f12829fabe3987724dc14fd90119809cc7812ddfe1c09a354dc3535d7af80e332353e01a274d6aaae359a22c2c8c4e653bcfd85702d620591807634bea305981da261b6a82281548d710d7aabaca504b279ef18ac4efe09f7dcab349fc4be772f981fce9b5a"}, {0xc}, {0xc, 0x8, {0x1, 0x1}}}}, @m_xt={0x1ac, 0x8, 0x0, 0x0, {{0x7}, {0x11c, 0x2, 0x0, 0x1, [@TCA_IPT_HOOK={0x8, 0x2, 0x1}, @TCA_IPT_TARG={0xda, 0x6, {0xff, 'filter\x00', 0x8, 0x2, "b39c45bcdc404c2dab856f364db25a0d10a313d28f123c660124d8e79009a24b0616be07a93b8db43f4d2844af6037d300d3ba4d1b951f493b7314c3b3df7a99c3bea7f79656713daca7809845615786e70f4ee8300c012fc2aa67358b854cfc6c55ec388e30bd185e71daa235265097f8e2cb85e3dd50935b9ae2fa1f4a041a1cc78df27df0c59db5488c6ea4a93f19fcbc52fa83a920242101eccdda3bbeadec31c9840881ec64290de2520b9761e2"}}, @TCA_IPT_HOOK={0x8, 0x2, 0x5}, @TCA_IPT_INDEX={0x8, 0x3, 0x401}, @TCA_IPT_TABLE={0x24, 0x1, 'filter\x00'}]}, {0x6b, 0x6, "f8790617b821944b86d2ee420e2edcc8464bd73f68c2918fb7e7c9314ac71618f4b12d66ab651099d5336d4b99bb1dff73710acb3c4aacd771fb50abc2caef2fff0d1557f08c0b98e40f3a18d73243e205d010b1d01933677359e47bd4b83a82b5bfc4f9d4065e"}, {0xc, 0x7, {0x0, 0x1}}, {0xc, 0x8, {0x51673037c0322d0b, 0x1}}}}, @m_csum={0x174, 0x8, 0x0, 0x0, {{0x9}, {0xac, 0x2, 0x0, 0x1, [@TCA_CSUM_PARMS={0x1c, 0x1, {{0x4e, 0x7fff, 0x0, 0x1, 0x8}, 0x1}}, @TCA_CSUM_PARMS={0x1c, 0x1, {{0x61d, 0xfe31, 0x20000000, 0x10001, 0xffffffff}, 0xa}}, @TCA_CSUM_PARMS={0x1c, 0x1, {{0x6, 0x7, 0x1, 0x1, 0x7131}, 0x48}}, @TCA_CSUM_PARMS={0x1c, 0x1, {{0x5c, 0x0, 0x8, 0xfff, 0xffffffff}, 0x3e}}, @TCA_CSUM_PARMS={0x1c, 0x1, {{0x81, 0x9, 0x0, 0x2, 0x7}, 0x2a}}, @TCA_CSUM_PARMS={0x1c, 0x1, {{0x3, 0x122, 0x4, 0x80000001, 0x9}, 0x72}}]}, {0x9e, 0x6, "ec5aee22648fec88b47e1c2782e233e75dcdacbf66e508eeed80491291c92b60d5479542bb6f177966c3bf1c437ba86268e7e59f4490dfc86910a9975646b549c802eafe54bc86ded9e84f90121ce5adec61826a35e7a9b6aba9bb700f197369687dfa1d77bb9539d1a393b945bc733c5b54a1ac7008578c36b790d5874c9c92318104f86acf9036191acf3e58e3b435d01b3e03f9759518d4d2"}, {0xc}, {0xc, 0x8, {0x1, 0x2}}}}, @m_xt={0xc0, 0x17, 0x0, 0x0, {{0x7}, {0x14, 0x2, 0x0, 0x1, [@TCA_IPT_HOOK={0x8, 0x2, 0x1}, @TCA_IPT_INDEX={0x8, 0x3, 0x4a2}]}, {0x88, 0x6, "42133346d08d6eb78624ea97cf4dbfe3696c0ac4710e6c62203b7b6a85c799d7de156ccd5aa687dd818e5ffabe4959722fbaa4e2ad786f8a561508fc03d73a9e9c610f700f606d74ff511c497775903576e31cbb4d63b9577e1395882e0a7d9eb4db955d08b6c64f97b427bbb43d873d8a4366a651ba58ce0f029aed80d3837797072af5"}, {0xc, 0x7, {0x0, 0x1}}, {0xc, 0x8, {0x3, 0x3}}}}]}, {0x3364, 0x1, [@m_ipt={0x10a4, 0xf, 0x0, 0x0, {{0x8}, {0x7c, 0x2, 0x0, 0x1, [@TCA_IPT_TARG={0x75, 0x6, {0x5, 'nat\x00', 0x11, 0x8f, "22f8b126e936c1a7b34876307cf93b834d04f8b01cb6250a5ae2be392b9f10c477d621c21c1e65e874e58695ea349087ca20820b5f1d71496cfd0f3c2fec9f69d3da9bc080246ad8d6f8d1"}}]}, {0x1004, 0x6, "cf427537225112739797bf8dcb4aab33af119dbde01302440bef486685024c11435bd1980ac9194b4a2aa1994d6d88538bf9dde86ddcde376bf676a0d8f9354fc8ef4c2a1a553c2068a5d7dcc06a7071a0345311213ed6feef1a3792644ca2f8dd718b4baad234aa81737d7c764abee04993a6620ac297468e5c494719e1cd0519ed87b38fb9467f8bca7fc8025c62322332da4dff254617e2b682b3c1c7b6db44867ae98639edf9e577861e04142d96c7469b9a4bda03d0564134c43098be8ae2a7ed2f2b77437e904b4c389466013ac9cb5aba1e7ff0fa920b811a826c8ee01d584c36d9643275ef27e5ee88399d9e150f2155f5b722ee78f1890de7e39909dd31730e0a276a96512e2d5bb6545e14e514d4f754073b91b95bd42146be52d2f84e6b83db831f74ac08ee4debc815805714e83f4f91ee03e31a77607db7da9318fc08494b8e1859a2f1be0f77b60fa21d2395d4089ce49c1b27ee304fef2515544eacc29b7753dffaf2f2723101aeb169ecd2f8c0a92450f4f8e90eb1ed2ddb9c96f75fba89d62ccfbc67c7e6cebd636321a34e03276d6d3a400806058c9fc9d975ec321c0f27e005638a052a58cfe0d14d75dd07b8549db745aa553483f5d9578a0bce52c9fe4f700604cfdceceaa92797e3ebefcc2925adc83a8bb51a9ed291ac9698587fb7fec1d5bd2e5ef4479760e967cb8e9a79066854e73da9e2a58e9803ebf30139d7ab91679bd52fdf95c0f314f31ac2529e9b134b6ab1a9bb4d0e309c39df5237c674bc596c99991cdf15ee17b353f7c10ab45fe09875170b4b21df748531ac4da02a33cfb9e03457529a133d67e020445fc6311d4c7c3305a9dee5925ab7251a107c33dab5ba7bfa22d427f10b8cd69ebb5fce435978747e13f20d3a85dcc2d9f56e7b9591367c3a40b9d5797f653b98c04223455c3fc11c1d8652af4cbea33f47d613121dc87176fe40fd2d860e71f30d17fb3cf6ef52cd51ac525c981fb03c62d51135c120a0f2633e6dfeed1690ea108cacba4e1eb1aaf10396ae4b72a4354cb4f02d903ce7184dc2046bfa96be9e969ab543897ef614d08c1ddad3ee057b945e7dee72ec52d6796cd4349e36cd050a2eedc52ccc6ded6a7768e0431e9105d02ee65f83fe18aaf516da8a56585f433259803e73ef0527fdfd6d3b4d8db82a36f9dc44ce21afb4aa603001ca7be9ce3b191cbddda1c4cd6130cb864b71078bdbb1f55e7802d191198ef3b98aaebf60abc9d808fcfb78cdcd1b229274e710f5126768bd9045418afe6a06f57ad56eb0ddd889f3f50eee56cd59b5ddc3cbf354f16333e254d4f6d1be3aa9e883545b88db63fd02436cb8968c528ea9f02185c5d2080aeeaf28f1007ebb99245458c8d58c56cdfa44730dcdceffd5645da79f6716e048138234ec6f0d54253afc4e9912a387f5f93496c987e12737f19e17a6e67f9bfe4049b3d7c5f5a2d992b8daa659184ca32744a66f47b0d1f7e002f100cc547a34f19508b85797910e4bcc33ebbb2b7ef621eb3919b67d86c27023aed71641f32f3d6dd2e34dbe5de7d506db2831319e4ec3827703544243641bf5cbb5c07acd80b7920c81598d5444bea10ec3a526eefc5f1022bd1ea0492a2d98dce585d5682244a1951858e2bb32d6e56ca81aaa71480033a7518cabdedf8c2726230edb10a842d42a6641f1e1961cbee40f521a2280805f88d99fafa4cd039fa86f6b040e3db2bcbe66db6bb3439a36c6bf4025a14b646623a604f28cf51e011731bd4408eb5f31c0ae4e86a37954c9993f60a93a25a553435009f5600471f9a08ee1e8b79912c2a50cc7c8de54bdff100ab3fd7bd8f42f9b80297148fe71b26916092e2a826448e499d2861dcfe4f793db11590035820f46b3aa5b2e405abe7069386f1bab865dd352677882f2bd07e24d6db1f637b8bc63e6b4d9dc37bac40b57bc8fae8cc0b0d44e7dc117770252c3d1bfee6792ac8300faebd1f63588dd331394d40d4e805e28ccb2357ad48185f71f17de56a69634a7bd155550f780639e96de1386b61721e25bfbecdcdfa90710f45e27f7cd85e398f7c771bc67e28dc66fea030f81f982301af32da35d57b25f091a34dc173aae358b34f68e45b88247bcd2a88d5edba9a7ada46ff9816ff36fc70e95cdfbe16d1f177ba73c813d20bced30c3dd1c7a7a4a140f449e4887c654286944e6badc7f7a3c9919568844de84d5ddbc0769871c219bffe40a6d53c97a3ea35ffc24c6d856b268d25b812c8b96faf2f1a214b7b6fbb5c1ff81683da958830dbf6515df1c265a348eb07391d4adc8cd09af36806c9328dc56b26ff0956b646f0933d6d0671f1cff4eb8f87af3538f2539235828b53c58917de04101bbc9ee3f13ca2e39ba78de4a39f8ebf8305c0e610b0e93136818f47b723c25fd5b8bcfc77d614a388f25379e3e50f8d475bdd16e2ca8af609165f2851bb67b09f0516c95d9006f911b404fba3c58d0f63397e4df835721b8cfc68d6eef29642b242a616643f08d9182fa3359824f85a995167ea31f3d0fcf0bd360085c3e593f212f0f0753435d7c0253e9c4b311a2e83035bf2d788299769ae655a74c5cf1bf0b9ec5fa7e076cd0abc2268e8cd9296e6afb3882ab4b5b558686a4380b4cb04bc6cbf6a42c164768fb0705ab2203f362dd373a6cc45977d78529ed2212e36d73a1df61c648e1a3661cedbc9a2555232159ab7493998b981eb501f1a31c1e9cef0dcf64e8266fa5686e69e6b4bfbd3aff7224025e5abe518b0c0cdf57cc2cb5f3da7ec9bf5743c650764fcccd58aaf7e909b2485f760922fa0ddda2f8b5b6534b97467cbfd5bf5533618b50c37b503e593d04e540a22881cdbae8f3843511d955ed53afc33529ed55608ddce2bee7a9c8c9bb0975edf908af74def6203662f98dba8a75a59aedc3f368039bd2c5c420e705901a1317d53de0ad1d461767106854473a50f4098fbc47ab261a4c3591157306c7706e87dce21577596796870d491dde320ace4fa72cc9749d024c758d89d008b3fcba814990c1b20f164a4a6a8ab9b606a07e527e35f651c2c207799b284cf876bc1dceb269c088b7eda1a492a8ed9c974fd490be5170756769c4ff9e4b288508c1568a3b265c64242be53528fae357f531c1c3709e6eb267406d0840bd8aa0a34bd36e8ec333e49f2c2380c79a8c556d2251934dda8a192addf1b0ae30479e276cb6e32ee70a6fb91dcda4bd52fa232b43f80ad0613b4598322c7d210909b1fbb4bad1c93d566d54094e1fe4e40554998386d7373297d4ab7c34712e366e4a8bf8a14e4a4d54585b89b68940ce11387126f41486665820fcd7836f37069cec2c19d34b2b488c0e399409759abd399e682eb45f156e6510abb2e9e50cb7de335cd52a0c5f76389dd5a55f8acfccaa0017bb4ffddec693159bd4c95bec53baee76331901ebf5cfdca7690f636b5b33ebbe713a243a821582ae46797ace0113e9d41afa1fec13d8f7199f7510afea11f37cacee6cd2a322636acf4de8288ad71b9161f61a3a472497a08a535075b45f69016994b512f5e020a1395178a4e9f437c901bcdd2b6c8f8c0bcdfa0f4d9d3e160310932589965574566ddc8bdebdc41f258a9eb75b5c6e4824f0ff583214e4887bba0cfd9819b4a53a2261f916ceedb89cf8fa90fa32407577a432eac479ceb5c64bce61a37daee0a91e0407c89a0b151eb2c91c9554204013810d95498cf4f09bf04ffd3881a819eb1b53f11f6286f5a7dd1bae67c5e24306cce84cde997269a9027017cf53df3b38a86b23abb6d23b1b2bd3253bbe73b05cb33bdac4419bf53e6a3da9be33a1f6f6f39fa179de62fb5b2cf917074ffa6eea45cd87c3ebdf45f4a369a14cb58876f96615029a80f2c5f0362e37fd9456327ab419b873e140debb10b375503199e65aa704ef78c2acd6251f37461ed27d970d42dee32192858b879d917a2e9ce1f6f5cfcc995a752346d7599bce4ce5fa7a9f3ca30585c214b951e74d0e56c90fd68992f83f16bcb487d34e299bc1cbfd53d15da22994a2235bdbee8b476b844c6a526855e01a0b18f6217c2ffc48aeed68fd77c2c259c2bd375817bc9a7ed199b9733fff2e9f533ef0a556c1193a8eeefd22393b38d525b61f792eb453e0fe9a8ec03a3d17824de4fe614b51ba6524ab3ac4ef31abf2bcef44610f3f5a8b93df7088e02373e1612dc70f11b568f24a42da8a00693a5eb27dca29108c0e856d5fa621d42ada3fa21f3c1b1eafc91884535e1c58f1e4cf45810a8140340dfd91a9f2064310060c2ed0b611d5129f6a200e40506a0b6f4aacae6a475f4471c934552cde87bcace4347b5aa581bd7e8e0693fb966be07c836b69a0f3c5c66d726e496449ed25cb8f5ddda61b470188557a61af60dce36ef37525b6f067033b91a1eb9f8d23d6461288daed5d97cbb7b3fb1057374c78a27e59221b06b4a2b8929e2344d5da02a17f1de2e3c1f6cf18f6ec19beaa7298314283dbb9abb2545a32ef34291f84335106c3dd531873bfae8521741132f22501915102aa492facf43813045458c9f7f946fdd10ef62b2cd4aeacd4f2f296756cffd552c8b75e0eede99b642df6def1899de5a825a744bef3d367b166720a200974b10bc83f8b357f1cf7c08c06877c9d9ba2809c3654656fcc714206a5411ed447a7230e204e7ed0d20c160434f00b844eaca70a9740764bc1c3a33f71ac0e8098c47a6ffe0f230933177c8d61ac6e7afc763159d722fdc402c8a0c31863a698add03b99b7cebd52baee61bc5764cb5c31a04b4bd528ae220d0e39f9e16b07f7d89813618aef12fa5394f1062704e5d218a29ff974a183ef9e8d18c28179df876494d733ca0f0425e205c2a250a3b2afeef70aae07d44e162530430687c2aec7f32a1fb842a3bb2a33d18bc67a87d2400da9472427792bf4a3267b02cb1b8b50bc04352a26b3c5aaa647664732f1c415bf3ec6f71f7977497cd89887673116c7ae540521535c979ff26ef571a0af22a35658af6d1390469aa3c831847c38336e598be7e2ac75aef103abe1cbe7c8b5ff36756f3220d5b7701b15e7a1059d2a6a37cb77d11a234ffbb9216ac4139c864d22b701958daed83c8e877599e553913ec07e80b2990b2ffb55abbaa707296ab2c77d874d6eca6e2872c82fb12762d41608df0b92aa19997856623b18809d18eb2c54f3b9e3486da101e79088720880693e824293bf3a0ff55de8f262b0a6446fe5413af27bcc985aa044b5237f3312a62414aefb160a0fdfb710cfd0295d09c14fce177c500e5b6e254429c313f22a51992fc54dd9c931be92c66b51ddcebd0b6e9fe7f720f5ccbb96bf0611bacb2307989bf771aa73d3aa39b101b80b9a821d8b8ca71d95130a1dc0667f2863c6b1b3f45903f99cbf857faea81c8a4e7332796c2b9ade0dd84a5d9ed79dd3615c35b5d5883e27912fc3a00b7f42dd7ff626c74fdff11e16d81723636a87dccf34a5fbfe2e7f4021c32df5344e147b2062f02de0401ab707ff7bfb6c98b260e925fdb259ea8ca79ced9a413488cc63a132e623c3b0e9a2d321655b3bf9a2adc48f1eb0b0a6c4f2c80751a1b87e74f234e0837ddf6fdc19b5bdff11befeac0bc5563ff23f21dbf2c1391e524902010c884b904346705f8323c52c1deef10ab03c3055e259622fa26c6308af03174a51c8f9c442f3392939ef5cb8cf4baa89eccbbd56219f45d3b206251baec1596256b56c7a11ffa34afe45f889f9db7cb7887ab9617647aa45eac1503d3eef4c2df9af3606be5d"}, {0xc}, {0xc, 0x8, {0x1, 0x2}}}}, @m_mirred={0x200, 0xa, 0x0, 0x0, {{0xb}, {0x104, 0x2, 0x0, 0x1, [@TCA_MIRRED_PARMS={0x20, 0x2, {{0x3f, 0x2, 0x3, 0x1, 0x8}, 0x2}}, @TCA_MIRRED_PARMS={0x20, 0x2, {{0x400, 0xfff, 0x1000000d, 0x8, 0xffffffff}, 0x2, r3}}, @TCA_MIRRED_PARMS={0x20, 0x2, {{0xfff, 0x1, 0x8, 0x4, 0x9}, 0x2}}, @TCA_MIRRED_PARMS={0x20, 0x2, {{0x80000001, 0x2, 0x2, 0x20, 0x1000}, 0x4}}, @TCA_MIRRED_PARMS={0x20, 0x2, {{0x6, 0x3, 0x0, 0x2, 0x79}, 0x1}}, @TCA_MIRRED_PARMS={0x20, 0x2, {{0x8, 0x8, 0x20000000, 0x3, 0x100}, 0x1, r5}}, @TCA_MIRRED_PARMS={0x20, 0x2, {{0x9, 0x7fffffff, 0x10000000, 0x2, 0x200}, 0x1, r6}}, @TCA_MIRRED_PARMS={0x20, 0x2, {{0x80, 0xffff, 0x20000000, 0x3, 0x7fffffff}, 0x3, r7}}]}, {0xd2, 0x6, "a0b50c42fe3ab0d73c20b6a22e3284793289b05a93c6a45ac4331da2bb5bfd62910fc9ee28992dc49a1acf1e8ce7e3bdc75d5e37134bdfb07ddd2dd0ff85aa260f0fddc51647c7d63df628bc5f3dd897e51949d9abf0230d09ccd47d9d174ba8dbd1ade0b31f3260ca30005f8d019c89da2d0356142df51022df94d191207e3a8f172c7a8a80ee36e6e063cf0ebf175298d960cbebcd6dce0798b185b677186911990156acaf13f9225daf4d2f8a74eb338ff4fc79e1e27a9183d0d5bb83e546749cae3488fb77d77bb9a522f253"}, {0xc, 0x7, {0x0, 0x1}}, {0xc, 0x8, {0x1, 0x2}}}}, @m_bpf={0x128, 0x1, 0x0, 0x0, {{0x8}, {0x1c, 0x2, 0x0, 0x1, [@TCA_ACT_BPF_FD={0x8, 0x5, r8}, @TCA_ACT_BPF_FD={0x8, 0x5, r10}, @TCA_ACT_BPF_FD={0x8, 0x5, r1}]}, {0xe6, 0x6, "cccdf4dcd4a53f198222516797dbf2c0f29fe38655a8bf9f9953aa83071b92d20eaee55f61a8b5be6305bfb1a29a34e6cc2f331b55007eb4b4a7f472ac6fea6292b10dae0075537697cba825b8b09c2c621b0606f8a730a85417d54b691012da341ea12547fcef54a2ec1475853ed31e3e4cd91f43ba3a49c402b18f98f5ad8459283f46a3626a25e7e39df84f8652db906451ad9e8b877a74bea669b92aff51ce4db14b97c5d24aa63f6ac695ae3d32cd58bcf956faf7b027d511122c2c9a2dab470ba3024e3f39e45bbffc22b4861bc06963e1e3d90f1d09a8fccda8c985cb57ce"}, {0xc}, {0xc, 0x8, {0x2, 0x2}}}}, @m_mirred={0x1070, 0x1b, 0x0, 0x0, {{0xb}, {0x44, 0x2, 0x0, 0x1, [@TCA_MIRRED_PARMS={0x20, 0x2, {{0x2, 0xffff, 0x20000000, 0x7fffffff, 0x9}, 0x4, r3}}, @TCA_MIRRED_PARMS={0x20, 0x2, {{0x7fffffff, 0x200, 0x1, 0x9, 0x3}, 0x3}}]}, {0x1004, 0x6, "a63cefefe9e97e0eba03e4e4abe729ad811ecbd24466785b9938bd13ec4887ec37db75ea77b161c0b7fcccd7355e269e6d916e9ad17221fd6192c83bf1f6b2538de926a47fb258e059520940df5f68e7aac845ee43eb461b08ac8c4c80873770db23000eae522c8db2c9f38f511d6da58140427310c341abf2050e1da8902332835121a59293ca7583f97e170865bae813edd914b78a34b7d69d0d0aaa70f327a36d363fd01bfb180851c2edda31b749a425c4d43fca78c6a829867333c2417be03abb9c8ac097f0b8bd60cabebb7114f059129ff34ea9acb2346f0de3b1a3d0cc1681228bdf3fb91d8bc4de404995572e7725fdbe3d7aef0672f67857b11eff9e280629f20855ccd796b4249024e8d777812eb0e188cd056363c2847dfe92acb59db09de1f24cd7bd42ee7b77f107388fd10f5bb6a6e57d15b77a818cdc53984bdc7bd12d8380d0fed6e63fd3bc9fd80c3e8652079ab95ed90082b195f634b451bbda1f22618d6c63049ce0ef6d9badf619f61f4dfb2c4cd06d033c5454cefc3d76edc7cd3903884f547033058c2d1c8109a3fd36f7e478130f80f88cc70b23a23eed2be2053c804f9b6f58b1e9dab9bc52ab680d29d8f56f02487214af43c976d0c0f27f86d61bc9f769bf588e813d9e95c0d65cf32378d391cc7dd467b83ebdbadfdef7c29a407495be9cb5d9de7cb70ad5829f7376589120ebecae0d15aec717d58b86e2d88f606a88a0afa7896fdc51b32eb567381bfaf468410e0363895ccbd308e70430328734477174cf55580c9ee62ebee29ec31f390d58322afe25ba55d6cc881c5316188f153e30d29843dc9203b7311c8671450ae4e8d6439c4615fb2d6f3c86a87461bee42d98bfa4b6d21c8e1f869bbd26a520188829765ad2886b046dd0aebbe3489d44389a7af23b8dac11bf3aef37641b1890612ab7e0bb06a8ae22b08ed83dca1c506057f4aeb6ebe72c30172921442ddbe8f0dfe85ab6dcbd615aba3ab68abe63919a908255c409b844d0b6c132c821d71412507bc1048ec03b53692768a77251a9d5e38e50cc2b97ce97692b7a70de81a0680ca80182eaee4aa59d9a8c7ea9530dc61e6556b9d48ceb1456ffa980b8e7ddbc62f0236aaa97ed3def4c57f1d85abf27fd801853e36e6bc75791b0e367f7412a2317a0226f8dc0710efe9cbc4ee4184ea1c7812c9ddf539409020c59880e076def4fd2376be2bcf6c087e95d07f92e750dbe1a14c843ab0ff7098b0cd72442622c2b6b5a5382ba6f11d2727a69939b8f7930afeaa398c7bb14b52cd09bc31ed115ee123d18097d3e43babf353b0157641dca90ecf98cfab5bd69ecb13e4dcee5578ba9ff71c6074f92a4958449c9bcd75e7a9550cfd3dcae55e78686f7c19fe6ee5e7e923bf780110ab949821d910b199e7d98420e32bd714b4e9f7cb7f249359ceeb2f20a18c2b19da5abca0b4eda5252e762bed4965657cf758ffc80f2c62275622fcc89957f6b9b2c1b727822a7354ae42dc1006a6d4a3113c42a82a5d8938eb5bed50ec24d6289f1d224782593f6040194582d450f5fe584562ddd3ad1c65bb6764944726bda77e1926dc311aeb61479beae891e10715df8a2e3526f3b3d79704776e09b4c9313283c13401f96b631828378f839b17952b09692b477ebcdba7756693f7a644fd767cc4460b1014fa3ae31eecf1bc1ae5ac92b043f20e92da7ba10a5e726fb363b66de4e70227b67a4fc427b1cffe58dea4fcb3ba56251e54eb84d1ebcd441ad5d10cbcf243cf93960e09a0c3f4db7ba01411e649aaef336d17e389eebbc546eff238b6a980753a12a4ba59dd93749dadabeead8a6f33eb93bac9d3f7b35f0119185004d5f128d56a4ca273885ce66352dcef53c4a8c34f7b10be8bc813bbed7719aba367c2c7bbb22de82ea6cdd5ab68e0461b0a6198ea09f05837e4677eaacfa71020080eb00ef2bb26f4bd53087c1d921624a54a1cd11a738e36945775cffbeb4e97a3d119638bd91c32ae54b62a324c40ba30b8149b9ced2a5f305b9abbf77ee6ce476ccc58d953ba4f349930e6e52e4c15453681ef19e76e59cd18c118136432633fe6e96f6ecc2ced8e99336f340c772b573b385a792105695fed76ff6605dca34cf41f2ca16fda2f0b7848f556389e16692420d0f27731eb316bc8bfa75c0765a66f2121001626b322ae57212d8ebd5c9b866ecaa2dd34b1664e187db7e704334a162cb9c34d0fd6d1358e345f9180cf70efef87bb5235d633006e070ef765012ce56a6d3754a4ef7ee3fac092511167229c66117aad4d18c032f8ef75c39ce6dff806be08702c458149dceba22896d83f3460d76525a7ff9e0549b22eef493da6dfbd618f5d5fae3d3b3c18e1283df6c2015a525ed7c67d2ed33aeec95f7e884c99e784ebb632ad23814189043ce1b4a1f479221440b85e966b46d864fe4518466021e336a5d246fbbe1fe6f7ad82678a239ac0f673439af743627491b7cdbb3d4096ab72a16884fcfaf51c1a6f6ef7facba0fac426d67e26a1bd367bc2fce42179492b1bd5961edced76be5c4a0c5b67b5020b9cb12075359261bae78b63a45ec33cd90a66f4f67164a6f712b4aace997f248195581efb94254054156c4e731340838595c4f309cb0e7c0e1b10edbebc1c18d7752aee839b443aeab2db07bae797c678c634f72abc34d0a69b6461274613e39a68d25413f8e05af5f4023d7cc96809db241799305c7468ac9f1e331de67a2f28823de917c1e928b3328cdba5c989bd0c7046f67d4af48ea3cf0f6a78e9d573f18543ee1704923c1130246cf9b352037bed4b3565b19ed7646a7b22fa5253413c66b4dc66ae618e1bc236453648a397169a02b5e1ffbd6da4c0e2620e6341ec23889cf098d087a6fc8af13db664b7148a4e8e761b0757989264b7d8422aa36853027a3f5327ae058a129ead3c42411470c7c9aebf1e68f195c75eb6baef972db60a0fd044d3f8541cfcff57e7b2a89bd5f17f772a63ed1a968ca372a7a73411760cc7a0346593be236a2286842ddd3d28ed9bde0131e26568697027a331565279460ae65d68c4a2888d9fa7bb3d72cdb6e778b935498724aa8774c1ae5ca8efc52d69edcc40ba7b7794041f6ff340d7567d272d580bcca9bb0443e3fe322fab37a9bd5fc6b043d404676bf64a70f0838c71a1897f60e18dde49c6fc9c2e14396891953ad37b0b410643b3a8d9ca0fc4c089b66309a1ea8a6f43f02d073792f5f5fe607fd4c52a9c36f43f6aaea85ad6c7d9cb3a142a2210bb397ca5efbadde938cb06dd0c765e2ffd90b9c02ea24c969f08d4c12b114784fd279506376fed020ae40b5495f280ed834d9519e40b763290576294cd3fd9047e8c6be742a363936ffcc7edadcc2123966989979420f05f3d4b92e68d11dc421a6d668dee492fe8d9da0e11039393ad5cf3dd2486767e3f6ce04b0167c21fbbc53d285e312a61f4530ef6645d5a99eb3a16c5f7e4eee02e859a2063b8cabcc8968871b2db7c0c184c715baac89c46a75c861c0edb9608a8716c90d81c0b80ea6f78d8834c5e549aec6ed5c5825fcbd771d07733b5f427ef5d703ac59757e3a7e01486c19f43f938570e72ce24f2ca9dbcec2f95f690e4af763cf4edcac953ce6b366eb854841c5c5c1bc7e24eb6664340df96665931be59d674007c9e9b5db29a78c3b42281e378fd53d53b6f8c9f5347336cdb4eeb0703ac1d99fd44536025ae65bfa38d35e799cb2d480b7544e6d58f6fca224c09c7ede1ee62d2f4f564c3884e41cbb247894361a77af60e2b275654a91aa2c03f5d90a09388bd3f7c852974abaa98041d9424397cb08fd550163cb8c4951010d9b637e5d28620d83a752067ed997daf2900562b4d3a54c95c78e022b90f05e0b8b93505e85f5cdcbb01af10dcbdbf4021f871fe8c42fe40d0be09780f1083c0bf1c0b7265180b1f0974766ef6a225906ee3fd1cb76df70641d35b4be433f6b4d01b4fa57e2bcad9e19c7591f0d02dd8263c2c59239cbb9e0e9d5825d73ca9295507a8ce0d9547532034349d17dc32847d7b26fb6bbee3e799ec54064e119d8e3256b402a3b6eedd5a070ea737507402e1d10cf21c8d6ec27eef9729ddd06e4be80cbf7386576c25a755a20efc05a9dd29f300b8e8cb7f4953256264421e607dfede184c3678a60755a0148df9bf5212bd415874abf82ebfb05a187709c59e937a40248b9c017dcfbe5484b924bbe7c3747d2634bdb023fd095e0b99f1753d9e9f783da1be23c766959e835d9936fd4f0091831f13f952f070685e92edf13435be615552398daab0609c8346906d41be32b37f1a78c96565a8e4be8d34fe8714709d69873d2b26b1c30a69d3bd971f72c0f867c10128e4672098f90bbdffabb3d0cebd88fa0bb8c71ee90cc10e5a79078deff40793c317971f07b615144b9226ac6cd8972621463bcb31cc789d1fb0d1777aadb27571ebd1a7e7b3eac6dd5714f7814739f6fa5828163d5add989634f2683458cb4b6896228bfaa681a5526eeb9b83c984b9556a0aa705cfdb27f640f25177cb7c2171e822a6b8f747fac50e3d29b0fd661ea94c722fe6088e36ad42c47b140b41d39786c2b683e3f48356f7e19b525f14a780b52951ccd659dbbd377517e2e9e52ca431f29debf33c684c072c9c91322697d128df7599dd0a4d75f551d9e29ad212c9530ad69d5547ebb07e2b747a99519099a19fdad95c9c16a29da024d6b8b6b181e4733ab33d22e2c377c82bf5fe40106e05af78dfb9c5b97d4fddac42cd39dbe85c897528510be1922b28238952592faed2111b8566acc749ebf11a997990052d37981f268da0bc93c480fcb7202bee405bdd7e1d89b4cae4a57d5123da7ad6b28856c57e63220a41bf89fa00f2565082bbc656c087be6dd7e6dc56b28f25439d4cf3e6fb1c1dfcc5748359157a6f23105f3239a5503ea86ed7e00e26a309f37d6bbb61b70fe66ea4f92ac13a8791a94fcd2e286892e00a2d3421d4ac0b47d016da085eb42118784c2b2643302f205dc2bb8792a279ecebba5eb46df515ee1eb680e9399e10e6dfdc196fa1fe7e36e38099015f6b4679f3c383e2a89abf4711c486aafde6634e0144312d28527876da88f87a11be00c659d0028869bf051239735e7607c77297b6fda2fe4f01a506b786a8bd25f87ef16933406deba2a3db2295048b05ca02abab5e5e6c8e8420a6bb2beefa92890a3b47cc16958954882154d2a77c66672937b47698764c0eacd4768f79a74fc24f718c83493d69fe1896297829cade1ce59c09f00e93393f59b55689d91835b373b92dad96ebfe06c7ffd10ee1f729fd90270bff83df715560aa045ba571f8bc94987c9397516f19f5d2fa4f625918cefa38426918cfb59e20c4ad3a11711e2e8f591eb93e8cae0eac509245f5623099fa64a1f9f778655b6b24876b38a0cf321c479412908473bd4041de6a535f95436fc9d0fba51f3507af56d7c6fde867c4403f0b38b959001247952b1c7b866604fa790260fcaf29abe5ace36252d41fd4d1b01dac5f7ce0d9d3b7d01a818f4a7b405ab1d76eb4d874f43464c424ef545256194e38fe7333473ad2289faf19addfabed0ecf94429b8794a88f6a72104c103ce2b4f44444c9093888bcc318eecfa0de2103b7bb6cc6cc4738450b89355044c9acd5e5e1193cb2cf6ed28e21e83eb354205ce22e83a31e22b6302cec6014b3a25b0bb16cd4f35bc0375c8ca27af06beeaeea3c2d815261704655b615c929908d581029457f8234c36451fa3e087"}, {0xc}, {0xc, 0x8, {0x2, 0x1}}}}, @m_pedit={0xf24, 0x3, 0x0, 0x0, {{0xa}, {0xe9c, 0x2, 0x0, 0x1, [@TCA_PEDIT_PARMS_EX={0xe98, 0x4, {{{0x2, 0x401, 0x10000000, 0x800, 0xffffffff}, 0x8, 0x2, [{0x800, 0x4, 0x0, 0x1, 0xffff, 0x6}, {0x8, 0x5, 0x1, 0xe69, 0x5, 0x2}, {0x2, 0x100, 0xaa, 0x4, 0x3, 0x6}, {0x5b5, 0xd070, 0x7, 0x40, 0x80000001, 0x8}, {0x80000000, 0x169, 0x0, 0x7, 0x1, 0x4}]}, [{0x10001, 0x0, 0x9bf0, 0x200, 0x800, 0x9e9}, {0x7, 0x100, 0x5, 0x0, 0x20, 0xfffffffe}, {0x80, 0x4, 0x2, 0x9, 0x2, 0x8}, {0x40, 0x4, 0x81, 0x0, 0x569, 0x9}, {0x2, 0x6b, 0x2, 0x8000, 0x4, 0x9}, {0x5, 0x3ff, 0x7, 0xa1fd, 0x3, 0x6}, {0x80000001, 0x4, 0x3, 0x1000, 0x0, 0x6}, {0x5, 0x7, 0x3, 0x2, 0x9, 0x100}, {0xfffff801, 0x9, 0x10000, 0x8, 0x5, 0x1f}, {0x40, 0x6, 0x1ff, 0x8, 0x3, 0xcf1}, {0x20, 0xfff, 0x6, 0x0, 0x3, 0x6}, {0x4, 0x1, 0xfff, 0x0, 0x7fff, 0x80}, {0x7, 0x7, 0x0, 0x9, 0xff, 0x7}, {0xcf22, 0x8, 0xa37, 0x40, 0x10001, 0xf46f}, {0x2, 0x6, 0x8, 0x9, 0x7, 0x8}, {0xfffffffc, 0xffff, 0x8, 0x1, 0x8, 0x100}, {0x0, 0xfe8, 0x9, 0x8, 0x6, 0x81}, {0xf2, 0x80000000, 0x10001, 0x1, 0x3, 0x6}, {0x101, 0xc2, 0x6, 0x7fff, 0x3f, 0x3ff}, {0x80, 0x2, 0x4, 0x8, 0x10000, 0x4000}, {0x4, 0xb3, 0x34a3, 0x7, 0x7, 0x7}, {0x4, 0x1, 0x1, 0x7, 0xff, 0x89}, {0x5, 0x200, 0x401, 0xfffffff7, 0x2, 0x5}, {0x0, 0x7f, 0x9, 0x0, 0x3f19, 0x5}, {0x50000, 0x100, 0x9f, 0x9, 0x80000000, 0x6}, {0x3, 0x8, 0xb5b, 0x7ff, 0xdf, 0x3}, {0x2, 0xffffffff, 0x1f, 0x6, 0x1, 0x8}, {0x8001, 0xfe, 0x4, 0x9, 0x40, 0xffff0001}, {0x40b, 0x859, 0x10000, 0x7fff, 0xb5, 0x7}, {0x9, 0x1, 0x3, 0x3ff, 0x8, 0xca01}, {0x7, 0x1, 0x800, 0xfffffff7, 0xfffffffd, 0x8}, {0x6, 0x9, 0x1f, 0x89d, 0x80, 0x4}, {0x6, 0x3, 0xffffffff, 0x0, 0x5, 0x7}, {0x2, 0x13a, 0x400, 0x0, 0xec3, 0x7fff}, {0x80000001, 0x9, 0xfffffff8, 0x8, 0x3, 0x40}, {0xffffffff, 0x80000000, 0xfd6, 0x2, 0xc69b, 0x4372}, {0x7, 0x0, 0x1c000, 0x7, 0x4}, {0x672, 0x1, 0x5, 0x1, 0xd8fb, 0x4}, {0x5, 0x8, 0x8, 0x4, 0x50960, 0x4}, {0x1000, 0x8, 0x6, 0x6, 0x101, 0x10000}, {0x5, 0xc296b1a0, 0x9, 0xa2, 0x2, 0x7}, {0x1, 0x40, 0x1, 0x9, 0xbe, 0x1f}, {0x6, 0x8, 0x7d28, 0x4, 0xe23, 0x5}, {0x40, 0x0, 0x7, 0x1, 0x0, 0x6}, {0x94, 0x6b6, 0x8001, 0x7, 0xe7, 0x8}, {0xffffffff, 0x4, 0x80000001, 0xfa, 0x5, 0xab}, {0x5, 0xffffffff, 0x0, 0x3, 0xd6, 0x10001}, {0xc2, 0xfffff8b7, 0x0, 0x8e8c, 0x5, 0x3f}, {0x8000, 0x3, 0x6b, 0x5, 0x7, 0x49}, {0x4, 0x0, 0x2, 0x3, 0x8000, 0x7ff}, {0x200, 0x1, 0xcded, 0x9, 0x20, 0x10000}, {0x1, 0x2, 0x2, 0x8, 0x3, 0x8}, {0x10001, 0x4, 0x200, 0x1, 0x3}, {0x80000000, 0x2, 0x1, 0x4, 0x0, 0xfffffffa}, {0x2, 0x5b20, 0x7fffffff, 0x1, 0xe78a187, 0x7}, {0x3, 0x100, 0xc51, 0x8, 0x6, 0x8de}, {0x8, 0x9, 0x43d9, 0x10000, 0x40}, {0x3, 0x2, 0x10000, 0x5, 0x7ff, 0x7}, {0x401, 0x7, 0xfffffffe, 0x0, 0x20, 0x84}, {0x9, 0xf2, 0x3, 0x5, 0xffffffff, 0x8}, {0x8000, 0x5, 0x8, 0x0, 0x80000000, 0x3ff}, {0x9, 0x9, 0x65c035b9, 0x1, 0x8, 0x4}, {0x900000, 0x0, 0x3, 0x0, 0xda0a, 0x8}, {0x800, 0x4, 0xa75, 0xe88f, 0xff, 0x4}, {0x1, 0x5, 0x20, 0x8d, 0x40, 0x100}, {0x8, 0x400, 0x2, 0x6, 0x7fffffff, 0x1}, {0x6, 0x9, 0x7ff, 0x7138, 0xfffeffff, 0x8}, {0x37d1, 0x0, 0x6, 0x1f, 0x6a, 0x5}, {0x7fff, 0x5, 0x6, 0x9, 0x4, 0xfffffff8}, {0x7f, 0x3, 0x1, 0x7, 0x5c, 0x9}, {0x401, 0x6, 0x1, 0x3c, 0x9, 0x40}, {0x5, 0xff, 0x8, 0x2, 0x2, 0x10000}, {0x80000001, 0x68b, 0xc316, 0x7ff, 0x1, 0xfffffff8}, {0x3e, 0x8001, 0x8, 0x9, 0xe2, 0x401}, {0x3, 0x7fffffff, 0x5, 0x6, 0x8, 0x71}, {0x9, 0x3, 0x1e2, 0xdab6, 0xfd3, 0x2}, {0x3f, 0x3, 0xaf60000, 0x6, 0x7bf, 0x407}, {0x1, 0x2, 0x7fffffff, 0x0, 0x7, 0x9}, {0x8, 0x800, 0x5, 0x1, 0x1, 0x800}, {0x10000000, 0xfffffc00, 0x4, 0x7, 0x7, 0x20}, {0xa39, 0x3, 0x7ff, 0x8, 0x100, 0x7}, {0x7, 0x784f, 0x1, 0x10001, 0x827f, 0x5}, {0x6, 0x8001, 0x5, 0x7cf6, 0x8, 0x8}, {0x2, 0x2, 0x7, 0xfffffff7, 0x8, 0xfff}, {0x7fff, 0x8a, 0xffff, 0x7, 0xffffff18}, {0x8, 0x0, 0x0, 0x5, 0x7f, 0x400}, {0x2, 0x8, 0xa61, 0x7b0, 0x8, 0x7}, {0xffffffff, 0x419, 0x800, 0x4, 0x80, 0x39}, {0x4, 0x7, 0x4, 0xff, 0x9, 0x3f}, {0x401, 0x4, 0x3f, 0x10001, 0x8, 0x1}, {0x1000, 0x17c8, 0xfff, 0x4c71206a, 0x8}, {0x30003178, 0x40, 0x6, 0x6, 0x0, 0x3a}, {0x8000, 0x7c9, 0x1ff, 0x6, 0x0, 0xffff}, {0xe5b0, 0xffffffff, 0xfffffffd, 0x1000, 0x2, 0x401}, {0x2, 0x1037, 0x3, 0x7, 0x0, 0xe0000}, {0xb0e0, 0xee, 0x1, 0x1, 0x3ff, 0x81}, {0x6, 0x8, 0x7, 0x3, 0x1, 0x1f}, {0x40, 0x1f, 0x6, 0x200, 0x1, 0x800}, {0x1, 0x81, 0x0, 0x4000000, 0x0, 0x7fff}, {0x9, 0xffff, 0x5a, 0x3, 0xf6, 0x81}, {0x5, 0x7, 0x7, 0x0, 0xffffffff, 0xec28}, {0x291, 0xfffffcc9, 0x1f, 0x9, 0xff, 0x7ff}, {0x0, 0xac5c, 0x5, 0x5, 0x1f, 0x8}, {0x5, 0x2, 0x2, 0x2, 0x5, 0x66}, {0x8, 0x62c, 0x8000, 0x6, 0x0, 0x2a}, {0x2, 0x8, 0xfcba, 0xef4a, 0x7, 0x1000}, {0x5, 0x4, 0x1, 0x1, 0xfffffffe, 0x3}, {0x8, 0x211, 0x9, 0x9, 0x410, 0x6}, {0x93, 0x9, 0x10001, 0x3, 0x7, 0x9}, {0x1000, 0x7, 0x0, 0x9, 0x2, 0x8ec6}, {0x1, 0x3, 0x1, 0x4, 0x4, 0x685}, {0x1, 0x800, 0x5, 0x7ff, 0xb133, 0x4}, {0x7, 0x400, 0x3, 0x3, 0x7f, 0x5}, {0x7, 0x1, 0x3ff, 0x40, 0x6, 0x7}, {0x7, 0x200, 0x6, 0x1ff, 0x7fff, 0x738474ce}, {0x2, 0xffffffff, 0x8, 0x8, 0x8, 0xed}, {0x401, 0x6636, 0x1000, 0x7fff, 0x127, 0x8}, {0x5bdb, 0x6, 0x2, 0x0, 0x2}, {0x8000, 0x7fffffff, 0xf70, 0x0, 0x80000001}, {0x9, 0xffff8000, 0xdd4, 0x3, 0x10000, 0x1f}, {0x6, 0x15e, 0x8, 0x3, 0x1f, 0x7}, {0x1, 0x0, 0x80000001, 0x2, 0x2, 0x5}, {0x200, 0x1, 0x9, 0x101, 0xffffffa5, 0x5}, {0x0, 0x3, 0x5, 0x1, 0x1, 0xff}, {0x40, 0xd6, 0x4, 0x5fd3746d, 0xc1c, 0x3ff}, {0x80, 0x80, 0x3, 0x401, 0xc10c}, {0x80000001, 0xa4b0, 0x8001, 0x7ff, 0x80, 0x3b33}, {0x6ec0000, 0x4, 0x0, 0x7, 0x1, 0x9}], [{0x4, 0x1}, {0x5, 0x1}, {0x1}, {0x3}, {0x5}, {0x1, 0x1}, {0xbd55a9aa63dd7bc3}, {0x0, 0x4ced3b192dc3aab7}, {0x0, 0x1}, {0x2, 0x1}, {0x5}, {0x0, 0x1}, {0x1, 0x1}, {0x3}, {0x1}, {}, {0x3}, {0x4, 0x1}, {0x1, 0x1}, {0x2}, {0x2}, {0x4}, {0x1}, {0x2, 0x1}, {0x4, 0x1}, {0x5, 0x1}, {0x2}, {0x1, 0x1}, {}, {0x0, 0x1}, {0x5, 0x87eefd521ffb330a}, {0x3, 0x1}, {}, {0x4}, {0x0, 0x1}, {0x4, 0x1}, {0x3, 0x1}, {0x3, 0x1}, {0x3, 0x1}, {0x4, 0x1}, {0x3}, {0x1, 0x1}, {0x6}, {0x5}, {0x0, 0x1}, {0x3}, {0x6, 0x1}, {0x5, 0x1}, {0x3}, {}, {0x2}, {0x2, 0x1}, {0x3, 0x1}, {0x1}, {0x5, 0x1}, {0x4}, {0x4}, {0x2}, {0x4, 0x1}, {0x2, 0x1}, {0x2}, {0x5, 0x1}, {0x2}, {0x4, 0x1}, {0x4}, {0x1}, {0x6, 0x1}, {0x1, 0x1}, {}, {0x2, 0x1}, {0x2, 0x1}, {0x2}, {0x0, 0x1}, {0x2}, {0x1}, {0x4, 0x1}, {0x1, 0x1}, {0x5, 0x1}, {0x0, 0x1}, {0x3}, {0x3}, {0x4}, {0x4}, {0x2}, {0x0, 0x1}, {0x2}, {0x1, 0x1}, {0x6dd327c3e959f49e}, {0x5}, {0x1}, {0x2, 0x1}, {}, {0x2, 0x1}, {0x0, 0x1}, {0x4}, {0x6}, {0x2, 0x1}, {0x0, 0x1}, {0x5, 0x1}, {}, {0x2}, {0x2}, {0x3}, {0x3, 0x1}, {0x3, 0x1}, {0x3}, {0x4}, {0x3, 0x1}, {0x2, 0x1}, {0x2}, {0x1}, {0x2, 0x1}, {0x4, 0x1}, {0x5, 0x1}, {0x5}, {0x2, 0x1}, {0x5}, {0x2, 0x1}, {0x2}, {0x5}, {0x2}, {0x1, 0x250d95a23826773}, {0x3, 0x1}, {0x0, 0x1}, {}, {0x2, 0x1}, {0x1, 0x1}, {0x5, 0x1}], 0x1}}]}, {0x5e, 0x6, "b774ce747f15dac9471e2dd037ef18904c20db342009fc10924427cab9cce429d4f746ac30d40e85a600a6d35890562d1d575848cf305d0d03e01b4850ca6735056ba4398ae52e9a02d3b1cefcf97c3e61037d6c66deaeaabce0"}, {0xc, 0x7, {0x1}}, {0xc, 0x8, {0x4, 0x2}}}}]}, {0x1520, 0x1, [@m_ipt={0x11f4, 0x1d, 0x0, 0x0, {{0x8}, {0x1cc, 0x2, 0x0, 0x1, [@TCA_IPT_TABLE={0x24, 0x1, 'filter\x00'}, @TCA_IPT_TABLE={0x24, 0x1, 'raw\x00'}, @TCA_IPT_INDEX={0x8, 0x3, 0x7fffffff}, @TCA_IPT_TARG={0x11d, 0x6, {0x5, 'nat\x00', 0x1, 0xe1, "4d93fd157c1bbed2edf6bc87078c3cb1e89f9bfee3626e81b60c52ab73e50080540ed0b476f2084ccd44182aafe3827334b544c6db473c6958c37d0e35b548fd9586bd9bff1f5bec38656c2000f1226fb2cde97471e0c9c00eceacb5ddbe26d21288ac497ee6ca8f3cdc9690521f8ca55d40b6fd12ade5eed0abaf55f545d504f1e8ba6838d35b0c4ef3cc90fb0cf6435b4c10f0405283defd07bc789a81fd5970b58b98d9d0f61260a66b288002aed610dd94fc1931c64e56b4f810779dd90ebc61b3c84b098e625bf36461deb6ceb0c8f41e62621529f5f00e62e6b055074d21f3939520d05e8e2e092bb6e42be25bba6deb"}}, @TCA_IPT_HOOK={0x8}, @TCA_IPT_TABLE={0x24, 0x1, 'nat\x00'}, @TCA_IPT_TABLE={0x24, 0x1, 'raw\x00'}, @TCA_IPT_HOOK={0x8, 0x2, 0x1}]}, {0x1004, 0x6, "b2f6d035891e65e643d07891d4bce615959a62e0db1305840fe0f2d26813cfb02e98be395a50d97b78a517d9ebbaabcb64d78bf46d65de83c43775862fad615867d5079a27c72f5fc17bf84e1374a39f250209ed63e4ec2248dccbacaabbb975cd2e74f126706683b91591f2b1d14e52e3f18092a583fa3bb8c61c8d1163e8bf6be917173fe8ba809ade2a66aeb82ac08f051a1bcbfc2bd7f367b21149794ceaaba1d5e08856877025f4642b82cd5689c4d128b66d4ffd8850a1cecbf66615aa83f9a9169243773cb52c46ebd41c6d2da94891af2cc9a2dc5edf2c9469519e5ff974cf7b1a6ff78f99f8770b0c192b23ee74b272caa553dabdeb9ce994434da5332d264a6200df1985ed1e022ca6111b4dac8c3e8073e6804785237ee9f66cc9fc30c0ebe92b248edd24e1b484d24d311ba6c9b37ac132e7d79c0edebf919c14de6164d93f35d91decec1a68d3c3aa77d58294da871e83b7664db7aa36b20fa18288708aa36f3698962edd4c00b98b6decbf37c1bf6b8891339c9705276615152e2b2de9ea680009706e0e1a23972084be8b440450a455da808b0099187ba19e3270cedb2a99a9e0b5b18e8424d2259669916b651d65ed17c245800a89c384549c71b6168718fe537d9676d2bddf207ee35655b56586100738c1238946202c5d6efccc70ad33851a76e0dc85051fdc3739c96ae1dcc1db1f0f9ba74e1beaad273d1f3a01c97e9e63525bc4aba6f6f716f03dbc88a5566440f83bbccecb20c5747e63d5822f8fd5cc309c8d719fdc8902eacd8f4f1af257db7309073c6ff1bd6bb92727cb790e690d2c0ecd79c52fd9fe8c21538523e79b71e44875ea11aaa95d6da5b81df8ed04c688dede8b661cc7a43ce5694c9ea9f446788801465fd06ab905aaf8911299e701364a7683c0d2327aedb91f9a4ec8ebc540e5f43dc784f0885ac6256ccb8003165679d9130ebc1bc7a03b5e32bf16bbf2bd815d383fdd48f3c4dd8292d583e9a62d543732dbd81667451c035b998253b6199a248836a59e8c67fa6e949d1f06aae66228d14270e1bc628818976dd80b788129f226ff510987d90faaf3386331001474c7291b727371f965d6a750c707ef052026ba11bca07a1099534ecc1c921a6c3e2790ea384e6fbd1013024bd16b34ab5d30f7c23e3c8377b949aabe1181f0d4eb1414569a15abdf6c9af271cce927f8c8f862bc12d50c2cb26cb6860201215f024aa19122c6f709fae43891de6d4b4bab5dc882d3e6c4d5fcd05278c338d26a593d8518ad02865fcf5d73524480be9d452835145de710db51935ecf28e5d7b25a4dc80072fbc50beea0ad8b4e3769640d2310c61d5d9e4f11c602a2f5ae51209bcd5ef2cb4a34b2fb9f42fe5e141c43c55a5e98f1ee44927306eec49a8bc42427b44720562a5d17acfebe39f3fa8736e7fc404de40f132c3164423016b9c02910ad16f924e773194474c758267bf446957e50ed9fc610e3af7b5ec04f1a85857cf3e399313a83d0654eb8d5dc24cbdb90c86db11695bc6b8980c035d0ebe21588e336169e75754ce29b256b9931918c7b3930fe03c152cb1a6e64710f303b83bc739e58b329c649e83b110ceb43f95c1bd115c25697445adf7d13c767ab9ee8d91dfca40cd6d091644cea44d09eabdc7196ac77d618bcad879ad781bc52accc6abeee65ed5b73322ed6b6466b9aca2027455e72aacf696bc30c999a8f14bf484399892d8ec29a83b85e64ab963b27da21e12c2f5d854fdfab8cb1dbe55f4b67b9481a31ca6bdbfeb20d55b6b05fcba919657ccb10df84233c19c93f3c0a500110fa0afc68abb04e8b632458ec0877428748edf34117ac519cd74a4b42cca9497dc75a2903070b2de70b15e01406331faa04298938bda27d3efaecd7dc860a2d03610ade92d2f8458320ed9940496d0b07afe28720264e85f7d5d4889c9a460553a454a27175bab8a1c2bf2b78ff355caa77855bf92d395f9d37072e9f05af3783acbb4e11c555556de1c8e5339c56fb19d0e03ae18f4d8adb0e0afcc5c07296f185ec468c82f828477a0ba36ae44a74c4cc7b003afa88269ee45db9478cf9cc6bc9d68138a1d8634ffb9d7707db606ba50b1c5d13529797540bd727e369a68117a6fada31e4e51f3d1edff55ba3fc9090ef5d7718db472d9110dd7d9c871126f7e166eec7d6ea72c4eaa41777a66e5d2420c1285a07fbc2158d051a073e29130fe53bb93e76caa7f0ded5a85f5e106ea3dc604c1847997e33d5d0af6bd82b5bd4f12580b395d54f7cfd33e0d163bcf12944aeeeeda5ff2aaac551035201727db91ea8066f933f93f9bf2efa0491e0db84a492f46882586a3400820e46fd84b14f8e10b7957cfe9eae560ce3526ae13f00f15dd2e4cd31ded52d1799d016b1dfdf4fe77eb056dc30260079a42e574dedcf2183f008df4d1297aceb1bd3a56707e863242f2900447161b0f148fc41e9149d818c2d197dfcb7e162c30522a5c43a89a2b02833e4e4fbe33f4fa7c68f451818c31ed1f2ed916db915a09b480770674f7e544bd38b0d76044857481766a8386b565311bd3041ad7e5d84342c37efb1f7ae4d4feaf48bb42079399c562e194bf43c14993e8e567634a1b9ba07abc6cab7be0d2ab8f3464c8c898c800e368244c150bc355f38b91268453c70ea2264ccec3441179a9df48b8dce1e3e0cca43f9c6a712ea1e1be4db6b430a70c7adda5ea2dece95fb74af3f7649e09614791d2eb67917497438fa3c999b2ee96a5d98e4a10acfefa5dc13b4ffc2c758e23e22b98ec1d708a4fedbd305fa89163f745ca09224c3f565c398efd556d7631a0901117e6ebe1d5d6360e2a969de914dab786cc159cf9df36ed26998aa47f6a179a1de0a69dd91b7806ebf09ee3c15683925369e040aab53ea16d9e7c5b80a80927c3433ca7e8e465cb1ab5a61019fd41133130242d88cb2959490a91cd58b108da395bc130b61a2818cdfbff8a11d05fcb030f2ef16467d24ad94951397145e043b56b914352605ff20d75d69072808205d7925273e840c49ab7dfc0d5db317597f89edae5c9c1e955f091993e8257d36dd53df02615060e8c3d4b940eb6acfd81b7e3b022be6dd95f3e21546f94b6f3fd5f220dbf9cbde4a88763acc7c004c274ec12950f9bd95a506bd7a51c61a5955bbdbd736c8479ce492d59233f58da7204fe14524182c77be2dccef57651d619fbb51a08f25549a5b010f38b64c30fb2eeb795e1e2bb36a244da897af43180c5359802df2e88de893b095c082926a6cb526f55722f5128aa1fdad85d2e08cb0e79a659858faa88f8acd135c4ca9fde0bd26d1948e6ff20aae4c75f36c21f831d4c72c376d3b3e45867c6f1f0f9f67ad4b15c8f410c009330f9167a935afdf1cce6b8ad40e6009b21375241fb4b21e8fb059c8d07938fcb44df729db80418aeb070a77373afd4691a949808352303f549681d28ff49ba0deb65ef87572fbf31595a2d33c492de3d924e17f6ca1c60882f1849642dc115804975cf1bc763d6622b1f43bf56b67935a8a30948b988fd3e49d4f8283e920e66380bffd189da4bc3b827ef2c013ba14a026fea316cfee79977fce71cab8d89a8d95989bab669fb78d94138d832e0ed1907dd94c6a5e0726562e0ce74205fa8d8cc366b68f4a99d2dec956b9191b185ad52391d2035d36fb96b2f918d35776570bef6c767c3addf7a9592ae72a642c6260dd18e51f3b63c272d3b2d29515fef2bfb446865d5c2508a0d282b3ccffbb14f34ae8782c61402f7298039e55539da66563bfd0862153862fc2c35b0aa806eb9149dea146b00c51178e9cc78b439b9fc81d8909782470363c04c773c2a63a19c48c4bf40c0d8759f751eb5ce7726f33e3fafb3ee973cace28df6aaabd81611da2af1558fe192a55bfa23be1e952078628ba94492874bd0d09c2f02e85e53a81cf2655793d040773945701baf4ebf998a9940913ea101b5db96c71ee4dc484b7e4150bd2672767ecdedc553ddd7ceba476973b539e3179617b120ae31e0a4c96711e99f9ea84d841f22eaa9bde32478f1803f0812a697a989a510399a8f8ab10b30dffa42cc96bd92695d2890556179787ae85b09563536f15cb54e0c47da2e68670490708f0c691bec7c8d9d6c21146b6f1f76e4b0deef0170cfe9bf650fc2c3032771b1c2f1e3344569358ea7a9a109adebfd20d68a93d26debad434c682e126448ca918188c1d8151ccbc8383af6e2855f3f429bbeca42862dcc06a487b2146581f1bf29b91597f81a83a23f67d156b9ad9f1d840a3155cca19731be7989830723b179c58b311a38a948023218519382e1ecbec39f81d09372a3d0322ced2bc8a1475b5b0189d4e3e02b4cb5f1d884e4007c749a58d899dd2184ba84410462ea62bc6ec2e045dfecb958ecd3ef0af17301bb2968f4113c371206aae9946e8b617a7065118e2121869c3ce51809239a54ca8aa0bcc80f86d392255b71427a81560faf00f9c8aaa9e22b296e5bf0a2faaec27d951a2c2a55b1481e2f5ee1ce76948c3fbcb820984a31125d1f36ca8081c9da9f355fa27c88c6f3dbebc16dcfbeeb3c4de0d712b1b11d8b14fe933b941956dcaea053d202df0030599bb3f98a3b811ce20566aeb5e3c2b01321407eee0850629a53c4622c11b43dcb3e32ae20f5f4a3b1fa1e492bba3f892a4b6b78760b6b97bb33c0c8eef156bfe57265e3a49a583222ad87393ef6ef59312af7255b1cdb8c9fde97f7f407db9e8c0352c7cc037649805e174fa4d2bd9b3029eafcb3801c2f0543ba93b0e20effa1a7308c0bfd66daa59b69e02d66ac52b1556a832f07cc02a91166c769c7e8a571192d537764fb11f10d172b85ed5c376ffd2a2b89e3f50b4992188fe06bda906d0a131567c4d43e6115d29e3b5d306b060143d7e35eb59c9ed64461aa3d6a6aacdc99e7d5b151b42d6bdc0d34d5d5ef84315d4ad64a97363594260e041e666b976cd8c193fb2df74d3dbcbcfdef4b9dddb5bcd854e94b0801a2e445a026a3bc7f88210331e13fc2145d45b7a6717af9bc72d7e3b7ded1e1c49884b22b8995ecdc76b3898ada5436294ccc82a0f41e12782dad5cc639f99774ce6c417bb524ab5fd5a2b949c0aecd4bc997bd8ffc125f40cb7b342e85a11557046858a5618454ccfe93748fbab3cda8caceebbdf98b56f1d3bf821f8eef5399693afbc0b0e95032f37257aee7b9136df422e0ac4db813e2270af5e86b7567969b65ffc5631ee0f1f44e2e9e6446b16a0c726e6fdd15237d30f92e16ead69f57da09f3da726f3715ff95b25344c93601a064758330d9975fc4d5cd823a8bec54da23db941867fb4af573d7cc2c4a46473f6cc0b7f6398fd9e35d8bbc32cd9b8c6759d712bf3769bd2c978b5ee9657ac4b9c37c9fe148f0cba652a1850bbbdf07740fc2306d6556d58dd0a792930b1fd29bab36634914aaeb7fa257a2e1b702d68d2edf51b13467ae3c1727885746dbacdb6d22354e7537cc905480b19a233911102bc3cf4429ed8d7369ac2a1329631f755d8402e4fabe903877198feb427f016993aded14a970c957b7641c77b1020110a269e2a01a1a7b3a28dd648a7448f1f5fc26f887ec342744fec6f96eb4f5c5bddb0ad272fe5f0adce0f1beaa935bf514a023407eccb6daadcd052b7dc57c3ac1ca376a86c5208c7072b4ba2f5772577877ce4d7bd64ab07d285d327d4c7cf97c05b9c8f04fd7e87520fdbbb12793d86fcf4d2c82869699ed08c54090713eb16f059524431a3d6b00f47ada0486045"}, {0xc, 0x7, {0x1}}, {0xc, 0x8, {0x1, 0x2}}}}, @m_csum={0x148, 0x13, 0x0, 0x0, {{0x9}, {0x58, 0x2, 0x0, 0x1, [@TCA_CSUM_PARMS={0x1c, 0x1, {{0x200, 0x6, 0x0, 0xfffffffa, 0x7}, 0x60}}, @TCA_CSUM_PARMS={0x1c, 0x1, {{0x81, 0x0, 0x2, 0x3d, 0x2}, 0x73}}, @TCA_CSUM_PARMS={0x1c, 0x1, {{0x2, 0x92, 0x1, 0x10000, 0x9}, 0x44}}]}, {0xc5, 0x6, "6c4006e1cdbc5be9a8a3fdc840ac15ed565bd8af843d6f8140ec821ac6332c5767a69241bf59fb871bb7300c8a7d4e3185f6bcb1cd7d141cc3693bf62026291a04ace2f1a41a603d7931b2fb0172fc908cb62d007938a202d00c357cfa34a87b4b58eaeae83a1abbab3231052fec314b36ebf155cf001a7eefc0a84d33c70107010c951b57e597e9f654ffd79106c656baa6a5cdbf606fc3eb4e65355764e2402420dc0fe91e9c68b029f28923dc073bb9629083f9a91036430fcf9a4862bd779b"}, {0xc, 0x7, {0x1}}, {0xc, 0x8, {0x3, 0x3}}}}, @m_connmark={0x154, 0x1b, 0x0, 0x0, {{0xd}, {0xe4, 0x2, 0x0, 0x1, [@TCA_CONNMARK_PARMS={0x1c, 0x1, {{0x7, 0xfffffffb, 0x4, 0x5, 0x8}, 0x9}}, @TCA_CONNMARK_PARMS={0x1c, 0x1, {{0x1, 0x0, 0x3, 0x9, 0xc7}, 0x3}}, @TCA_CONNMARK_PARMS={0x1c, 0x1, {{0x7f7, 0x3, 0x20000000, 0x1ff, 0xffffffff}, 0xff39}}, @TCA_CONNMARK_PARMS={0x1c, 0x1, {{0x9, 0x1000, 0x2, 0x10000, 0xff}, 0x5}}, @TCA_CONNMARK_PARMS={0x1c, 0x1, {{0x30000, 0x7, 0x1, 0x1ff, 0x10001}, 0x9}}, @TCA_CONNMARK_PARMS={0x1c, 0x1, {{0x101, 0x7fff, 0xffffffffffffffff, 0x10001, 0x7}, 0x3}}, @TCA_CONNMARK_PARMS={0x1c, 0x1, {{0x6, 0x1f, 0x20000007, 0x8, 0x5}, 0x6}}, @TCA_CONNMARK_PARMS={0x1c, 0x1, {{0x10000, 0xcbc, 0x6, 0x5, 0xfff}, 0x400}}]}, {0x42, 0x6, "8b9e7dae5cadf8c52538add3fe195feb7867c5e60059f7a4fe3d0bebe6eeeb46c83152959767ddf16e399a7c89773d69505d6747a702dd4c4d241752bb6b"}, {0xc, 0x7, {0x0, 0x1}}, {0xc, 0x8, {0x2, 0x3}}}}, @m_ife={0x8c, 0x9, 0x0, 0x0, {{0x8}, {0x28, 0x2, 0x0, 0x1, [@TCA_IFE_SMAC={0xa}, @TCA_IFE_SMAC={0xa, 0x4, @link_local={0x1, 0x80, 0xc2, 0x0, 0x0, 0x2}}, @TCA_IFE_SMAC={0xa, 0x4, @remote}]}, {0x3e, 0x6, "2633f54cbdc6e4b7ce6326a5f399df0d276ca6a165227b11034632530b1cb1b939e46e0a9752b8dbde56dc0b185871ea2220ac1e58fe35202311"}, {0xc, 0x7, {0x0, 0x1}}, {0xc, 0x8, {0x2}}}}]}, {0x254, 0x1, [@m_sample={0x140, 0x14, 0x0, 0x0, {{0xb}, {0x3c, 0x2, 0x0, 0x1, [@TCA_SAMPLE_PSAMPLE_GROUP={0x8, 0x5, 0x60}, @TCA_SAMPLE_PARMS={0x18, 0x2, {0x397, 0x8b4, 0x10000000, 0x80, 0xe}}, @TCA_SAMPLE_RATE={0x8, 0x3, 0x7}, @TCA_SAMPLE_PSAMPLE_GROUP={0x8, 0x5, 0x7ff}, @TCA_SAMPLE_TRUNC_SIZE={0x8, 0x4, 0xe267}]}, {0xda, 0x6, "f7fe704f1956d82aceea7febdbafc87fb612aa080085346bb0d2377763ac23096b31d4149033961171052c1014d0c6f300af1813ead55604b185e3adbf4a803d630b6f0384e02168944736bd897f6e319cf0f157ab4c74d6c9f0793728e57c4890a51631ef6f7c5ebec1e864e9f496792a141060b4213716dcfe66bf1742fc985743e4a84e72d42900db56d71f2ee73f2215a1d4cb6e5cf654244015399aecca18737b481a624ad069aecf135f1a809d051561d00657056d5a3e0a69f40eb19e2ebef97821328189ea44cee35b8196a0c05c4347e2f3"}, {0xc}, {0xc, 0x8, {0x2, 0x2}}}}, @m_simple={0x110, 0x1a, 0x0, 0x0, {{0xb}, {0xc, 0x2, 0x0, 0x1, [@TCA_DEF_DATA={0x8, 0x3, 'red\x00'}]}, {0xdb, 0x6, "2277fad24caa11e5f1f46e062c5baeb5cdfd8070b2d8d7f1dc80bb28c4c097fac376004b315d2f25aeec424b3e8b688c6f5d5c8ae562fb19a2ebc032550dcbc6859b11059dcab0943c229dfe0bb0417a7ee3eb32d2b02327aafa0625c8f5ce4c6d6d3a77f37b7cdf609d144c5a91dad28a659efd5e6fed5745adfb5cf627149d03e5b6a348ba946daa7b8363fac5a537b5abef104ac68664cb1b84b4d7b8666617f55ef4e22079297742288d075d63672a2ed4b0a31165ce9289690de5687f17f3283980017790aeb7d88022907e4c91dbc1c8ebc6778c"}, {0xc, 0x7, {0x1}}, {0xc, 0x8, {0x1, 0x2}}}}]}]}, 0x52f4}, 0x1, 0x0, 0x0, 0x40001}, 0x20000000) sendmsg$nl_route_sched(r0, &(0x7f00000007c0)={0x0, 0x0, &(0x7f0000000780)={&(0x7f0000000240)=@newqdisc={0x148, 0x24, 0x508, 0x0, 0x0, {0x0, 0x0, 0x0, r3, {}, {0xffff, 0xffff}}, [@qdisc_kind_options=@q_red={{0x8}, {0x11c, 0x2, [@TCA_RED_PARMS={0x14}, @TCA_RED_STAB={0x104, 0x2, "7d403c4bf8229f4db3efa53425d714ff7b07a0abc9f7f31ff7c73f7f86c7ac07442c742d329fb03c00edee086681318da1c5c346feefb2624231360c837c5fffa6e790bf0b340f7bf750b1f6819e520463521b6d660991a9fc275ae757cac75f74a875b489b6e113a1bc8658daf98919cd8aee0f3a614097638aed34f735bf498dfeade02ed6d2750c637153e30cc805073320a311650bb847ac313e61597f8153710737a20d3b7cc88ae0dfca6be45c51608e30f3fc3058ea249556c4947a1bccf5f589f7909ab4a871994fe5696dc18ac06380817e37e752dbba7fc36793787220225bf7dfbe9e86f706d44c17805b86ee411976772b47f886acd2211fd4f5"}]}}]}, 0x148}}, 0x0) [ 383.365742][T21553] netlink: 12 bytes leftover after parsing attributes in process `syz-executor.2'. [ 383.368784][T21542] qnx6: unable to read the first superblock 00:06:23 executing program 0: r0 = socket$inet_tcp(0x2, 0x1, 0x0) bind$inet(r0, &(0x7f0000000000)={0x2, 0x4e20, @multicast2}, 0x10) setsockopt$sock_int(r0, 0x1, 0x3c, &(0x7f0000000340)=0x1, 0x4) connect$inet(r0, &(0x7f0000000200)={0x2, 0x4e20, @loopback}, 0x10) r1 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f00000001c0)='memory.current\x00', 0x275a, 0x0) write$binfmt_script(r1, &(0x7f0000000000)=ANY=[], 0x208e24b) mmap(&(0x7f0000000000/0xb36000)=nil, 0xb36000, 0x2, 0x28011, r1, 0x0) sendmmsg$inet(r0, &(0x7f00000012c0)=[{{0x0, 0x4002, &(0x7f0000000600)=[{&(0x7f00000000c0)='o', 0x1}], 0x1, 0x0, 0x0, 0xf}, 0x34}, {{0x0, 0x0, &(0x7f0000001b80)=[{&(0x7f0000000740), 0x40020000}], 0x1, 0x0, 0x0, 0xf4010000}}], 0x2, 0x60c5840) 00:06:23 executing program 5: r0 = socket$inet_tcp(0x2, 0x1, 0x0) bind$inet(r0, &(0x7f0000000000)={0x2, 0x4e20, @multicast2}, 0x10) setsockopt$sock_int(r0, 0x1, 0x3c, &(0x7f0000000340)=0x1, 0x4) connect$inet(r0, &(0x7f0000000200)={0x2, 0x4e20, @loopback}, 0x10) r1 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f00000001c0)='memory.current\x00', 0x275a, 0x0) write$binfmt_script(r1, &(0x7f0000000000)=ANY=[], 0x208e24b) mmap(&(0x7f0000000000/0xb36000)=nil, 0xb36000, 0x2, 0x28011, r1, 0x0) sendmmsg$inet(r0, &(0x7f00000012c0)=[{{0x0, 0x4002, &(0x7f0000000600)=[{&(0x7f00000000c0)='o', 0x1}], 0x1, 0x0, 0x0, 0xf}, 0x34}, {{0x0, 0x0, &(0x7f0000001b80)=[{&(0x7f0000000740), 0x40020000}], 0x1, 0x0, 0x0, 0x41020000}}], 0x2, 0x60c5840) 00:06:23 executing program 3: r0 = shmget$private(0x0, 0x3000, 0x1000, &(0x7f0000ffb000/0x3000)=nil) shmget$private(0x0, 0x3000, 0x54000000, &(0x7f0000ffb000/0x3000)=nil) (async) shmat(r0, &(0x7f0000000000/0x4000)=nil, 0xffffffffffff6fff) mlockall(0x5) (async, rerun: 64) mlockall(0x5) (rerun: 64) mlockall(0x6) 00:06:23 executing program 2: r0 = socket(0x10, 0x3, 0x0) r1 = socket$nl_route(0x10, 0x3, 0x0) r2 = socket(0x10, 0x803, 0x0) sendmsg$nl_route(r2, &(0x7f0000000580)={0x0, 0x0, &(0x7f0000000540)={0x0, 0x20}}, 0x0) (async) getsockname$packet(r2, &(0x7f0000000100)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @broadcast}, &(0x7f0000000200)=0x14) sendmsg$nl_route(r1, &(0x7f0000000000)={0x0, 0x0, &(0x7f0000000140)={&(0x7f0000000040)=ANY=[@ANYBLOB="3c0000001000010400cef7ffffffffffff000000", @ANYRES32=r3, @ANYBLOB="01000000010000001c0012000c000100627269646765"], 0x3c}}, 0x0) (async) r4 = socket$can_j1939(0x1d, 0x2, 0x7) ioctl$ifreq_SIOCGIFINDEX_vcan(r4, 0x8933, &(0x7f0000000a00)={'vxcan1\x00', 0x0}) setsockopt$sock_int(r4, 0x1, 0x6, &(0x7f0000000000)=0x1, 0x4) (async) bind$can_j1939(r4, &(0x7f0000000240)={0x1d, r5}, 0x18) (async) ioctl$sock_SIOCGIFINDEX(r2, 0x8933, &(0x7f0000000400)={'tunl0\x00', 0x0}) (async) ioctl$ifreq_SIOCGIFINDEX_team(r0, 0x8933, &(0x7f0000000440)={'team0\x00', 0x0}) r8 = socket$can_j1939(0x1d, 0x2, 0x7) ioctl$ifreq_SIOCGIFINDEX_vcan(r8, 0x8933, &(0x7f0000000a00)={'vxcan1\x00', 0x0}) setsockopt$sock_int(r8, 0x1, 0x6, &(0x7f0000000000)=0x1, 0x4) (async) bind$can_j1939(r8, &(0x7f0000000240)={0x1d, r9}, 0x18) (async) sendmmsg(r8, &(0x7f0000002340)=[{{0x0, 0x0, 0x0}}, {{&(0x7f0000000100)=@can, 0x80, 0x0}}], 0x2, 0x0) (async) r10 = openat$userio(0xffffffffffffff9c, &(0x7f0000000480), 0x200080, 0x0) sendmsg$nl_route_sched(r1, &(0x7f0000000500)={&(0x7f0000000080)={0x10, 0x0, 0x0, 0x10000}, 0xc, &(0x7f00000004c0)={&(0x7f0000000800)=@newtaction={0x52f4, 0x30, 0x8, 0x70bd2a, 0x25dfdbfc, {}, [{0x808, 0x1, [@m_sample={0xb4, 0xc, 0x0, 0x0, {{0xb}, {0x2c, 0x2, 0x0, 0x1, [@TCA_SAMPLE_TRUNC_SIZE={0x8, 0x4, 0xc11}, @TCA_SAMPLE_RATE={0x8, 0x3, 0x5}, @TCA_SAMPLE_PARMS={0x18, 0x2, {0x5, 0x4, 0x0, 0x3, 0x8001}}]}, {0x60, 0x6, "3e3ab8f2f8cfc74dae0f705d01999e7ca4f2db8628f9e3a24bdf3f2819521ab496b26160a809f532f5fc99daadb34ac8be88746dc13a27b2c1239a9758d446ebfa4bdc3c803a187ed9d01b6c7b20204e47913c6de9103e00ea79d881"}, {0xc, 0x7, {0x0, 0x1}}, {0xc, 0x8, {0x1, 0x1}}}}, @m_sample={0x110, 0x15, 0x0, 0x0, {{0xb}, {0xc, 0x2, 0x0, 0x1, [@TCA_SAMPLE_RATE={0x8, 0x3, 0xd7f4}]}, {0xda, 0x6, "e1e783c53aa31ab3ff39529fb89702e95790b78b10f324f253cbf3772822e3bb0fcfebc9c04ed3f1bbf44aea8b630243e4aa1de6a9b1b1f5f7534faa89d3a0a85bd8a32de7c9840c77861708994548e56a5f97f24bc85472572c4469cbb317db74aba3415a6d625944612a4f7a6629e3a134de01dfdc4e675da01e242bf92e71028786fb8fea06688c4a7064cff468dc5c106014859b3ddc7c26d91030616d85b5adc553776e04c673b454a87c72d8762a8ab56a9d76fca52741b1f9420de60096b3373b9185df3f2b0f0541042f92b1f466289b37da"}, {0xc, 0x7, {0x1}}, {0xc, 0x8, {0x0, 0x4}}}}, @m_nat={0x120, 0x8, 0x0, 0x0, {{0x8}, {0x2c, 0x2, 0x0, 0x1, [@TCA_NAT_PARMS={0x28, 0x1, {{0x80, 0x80000000, 0x7, 0x6, 0x80000001}, @loopback, @multicast1, 0xffffffff, 0x1}}]}, {0xcd, 0x6, "2935f669a926fe0fda65afb7c69b88f90b696fca4935bc74398efa9b96bf9fad2a506c451f7ebb85e5386724620115e3a238b334af077de8b7719796184429094d2b200e817419feb8f1ff16fc8b310ceb44e62b2ef0f972cbb17b90b4002275af8dd214038b249bfd495d5ad34d8dab9846f4815cdd11248d46cb80d0ee86c6d4ad3e7e65ad2370ca20e7e6888b4f09191bef80ae6aabdce558c63fbfcd8a56461b92a08bb80e3736258f4acf13dce60098d6b70068a75ef25c2f39c891345016c2818306047059bf"}, {0xc, 0x7, {0x1}}, {0xc, 0x8, {0x0, 0x3}}}}, @m_simple={0x140, 0x13, 0x0, 0x0, {{0xb}, {0x54, 0x2, 0x0, 0x1, [@TCA_DEF_PARMS={0x18, 0x2, {0x1, 0xccf, 0x7, 0x7, 0x3}}, @TCA_DEF_DATA={0x7, 0x3, '}\x0f\x00'}, @TCA_DEF_PARMS={0x18, 0x2, {0x8, 0x6, 0xffffffffffffffff, 0xbf, 0x2}}, @TCA_DEF_DATA={0x5, 0x3, '\x00'}, @TCA_DEF_DATA={0x8, 0x3, 'red\x00'}, @TCA_DEF_DATA={0x8, 0x3, 'red\x00'}]}, {0xc1, 0x6, "e03c397ad979cc13740d5433e1e8ecfabb05592b0b2469e4e2b3bdf2c59855000a9d21c6c6a9c53b69bb76231248f3292df1a0a9b427899aadc21cc58a6b2c5780788f9ed295a50a575a4dc6bb5c745caea7dc11f088039f12829fabe3987724dc14fd90119809cc7812ddfe1c09a354dc3535d7af80e332353e01a274d6aaae359a22c2c8c4e653bcfd85702d620591807634bea305981da261b6a82281548d710d7aabaca504b279ef18ac4efe09f7dcab349fc4be772f981fce9b5a"}, {0xc}, {0xc, 0x8, {0x1, 0x1}}}}, @m_xt={0x1ac, 0x8, 0x0, 0x0, {{0x7}, {0x11c, 0x2, 0x0, 0x1, [@TCA_IPT_HOOK={0x8, 0x2, 0x1}, @TCA_IPT_TARG={0xda, 0x6, {0xff, 'filter\x00', 0x8, 0x2, "b39c45bcdc404c2dab856f364db25a0d10a313d28f123c660124d8e79009a24b0616be07a93b8db43f4d2844af6037d300d3ba4d1b951f493b7314c3b3df7a99c3bea7f79656713daca7809845615786e70f4ee8300c012fc2aa67358b854cfc6c55ec388e30bd185e71daa235265097f8e2cb85e3dd50935b9ae2fa1f4a041a1cc78df27df0c59db5488c6ea4a93f19fcbc52fa83a920242101eccdda3bbeadec31c9840881ec64290de2520b9761e2"}}, @TCA_IPT_HOOK={0x8, 0x2, 0x5}, @TCA_IPT_INDEX={0x8, 0x3, 0x401}, @TCA_IPT_TABLE={0x24, 0x1, 'filter\x00'}]}, {0x6b, 0x6, "f8790617b821944b86d2ee420e2edcc8464bd73f68c2918fb7e7c9314ac71618f4b12d66ab651099d5336d4b99bb1dff73710acb3c4aacd771fb50abc2caef2fff0d1557f08c0b98e40f3a18d73243e205d010b1d01933677359e47bd4b83a82b5bfc4f9d4065e"}, {0xc, 0x7, {0x0, 0x1}}, {0xc, 0x8, {0x51673037c0322d0b, 0x1}}}}, @m_csum={0x174, 0x8, 0x0, 0x0, {{0x9}, {0xac, 0x2, 0x0, 0x1, [@TCA_CSUM_PARMS={0x1c, 0x1, {{0x4e, 0x7fff, 0x0, 0x1, 0x8}, 0x1}}, @TCA_CSUM_PARMS={0x1c, 0x1, {{0x61d, 0xfe31, 0x20000000, 0x10001, 0xffffffff}, 0xa}}, @TCA_CSUM_PARMS={0x1c, 0x1, {{0x6, 0x7, 0x1, 0x1, 0x7131}, 0x48}}, @TCA_CSUM_PARMS={0x1c, 0x1, {{0x5c, 0x0, 0x8, 0xfff, 0xffffffff}, 0x3e}}, @TCA_CSUM_PARMS={0x1c, 0x1, {{0x81, 0x9, 0x0, 0x2, 0x7}, 0x2a}}, @TCA_CSUM_PARMS={0x1c, 0x1, {{0x3, 0x122, 0x4, 0x80000001, 0x9}, 0x72}}]}, {0x9e, 0x6, "ec5aee22648fec88b47e1c2782e233e75dcdacbf66e508eeed80491291c92b60d5479542bb6f177966c3bf1c437ba86268e7e59f4490dfc86910a9975646b549c802eafe54bc86ded9e84f90121ce5adec61826a35e7a9b6aba9bb700f197369687dfa1d77bb9539d1a393b945bc733c5b54a1ac7008578c36b790d5874c9c92318104f86acf9036191acf3e58e3b435d01b3e03f9759518d4d2"}, {0xc}, {0xc, 0x8, {0x1, 0x2}}}}, @m_xt={0xc0, 0x17, 0x0, 0x0, {{0x7}, {0x14, 0x2, 0x0, 0x1, [@TCA_IPT_HOOK={0x8, 0x2, 0x1}, @TCA_IPT_INDEX={0x8, 0x3, 0x4a2}]}, {0x88, 0x6, "42133346d08d6eb78624ea97cf4dbfe3696c0ac4710e6c62203b7b6a85c799d7de156ccd5aa687dd818e5ffabe4959722fbaa4e2ad786f8a561508fc03d73a9e9c610f700f606d74ff511c497775903576e31cbb4d63b9577e1395882e0a7d9eb4db955d08b6c64f97b427bbb43d873d8a4366a651ba58ce0f029aed80d3837797072af5"}, {0xc, 0x7, {0x0, 0x1}}, {0xc, 0x8, {0x3, 0x3}}}}]}, {0x3364, 0x1, [@m_ipt={0x10a4, 0xf, 0x0, 0x0, {{0x8}, {0x7c, 0x2, 0x0, 0x1, [@TCA_IPT_TARG={0x75, 0x6, {0x5, 'nat\x00', 0x11, 0x8f, "22f8b126e936c1a7b34876307cf93b834d04f8b01cb6250a5ae2be392b9f10c477d621c21c1e65e874e58695ea349087ca20820b5f1d71496cfd0f3c2fec9f69d3da9bc080246ad8d6f8d1"}}]}, {0x1004, 0x6, "cf427537225112739797bf8dcb4aab33af119dbde01302440bef486685024c11435bd1980ac9194b4a2aa1994d6d88538bf9dde86ddcde376bf676a0d8f9354fc8ef4c2a1a553c2068a5d7dcc06a7071a0345311213ed6feef1a3792644ca2f8dd718b4baad234aa81737d7c764abee04993a6620ac297468e5c494719e1cd0519ed87b38fb9467f8bca7fc8025c62322332da4dff254617e2b682b3c1c7b6db44867ae98639edf9e577861e04142d96c7469b9a4bda03d0564134c43098be8ae2a7ed2f2b77437e904b4c389466013ac9cb5aba1e7ff0fa920b811a826c8ee01d584c36d9643275ef27e5ee88399d9e150f2155f5b722ee78f1890de7e39909dd31730e0a276a96512e2d5bb6545e14e514d4f754073b91b95bd42146be52d2f84e6b83db831f74ac08ee4debc815805714e83f4f91ee03e31a77607db7da9318fc08494b8e1859a2f1be0f77b60fa21d2395d4089ce49c1b27ee304fef2515544eacc29b7753dffaf2f2723101aeb169ecd2f8c0a92450f4f8e90eb1ed2ddb9c96f75fba89d62ccfbc67c7e6cebd636321a34e03276d6d3a400806058c9fc9d975ec321c0f27e005638a052a58cfe0d14d75dd07b8549db745aa553483f5d9578a0bce52c9fe4f700604cfdceceaa92797e3ebefcc2925adc83a8bb51a9ed291ac9698587fb7fec1d5bd2e5ef4479760e967cb8e9a79066854e73da9e2a58e9803ebf30139d7ab91679bd52fdf95c0f314f31ac2529e9b134b6ab1a9bb4d0e309c39df5237c674bc596c99991cdf15ee17b353f7c10ab45fe09875170b4b21df748531ac4da02a33cfb9e03457529a133d67e020445fc6311d4c7c3305a9dee5925ab7251a107c33dab5ba7bfa22d427f10b8cd69ebb5fce435978747e13f20d3a85dcc2d9f56e7b9591367c3a40b9d5797f653b98c04223455c3fc11c1d8652af4cbea33f47d613121dc87176fe40fd2d860e71f30d17fb3cf6ef52cd51ac525c981fb03c62d51135c120a0f2633e6dfeed1690ea108cacba4e1eb1aaf10396ae4b72a4354cb4f02d903ce7184dc2046bfa96be9e969ab543897ef614d08c1ddad3ee057b945e7dee72ec52d6796cd4349e36cd050a2eedc52ccc6ded6a7768e0431e9105d02ee65f83fe18aaf516da8a56585f433259803e73ef0527fdfd6d3b4d8db82a36f9dc44ce21afb4aa603001ca7be9ce3b191cbddda1c4cd6130cb864b71078bdbb1f55e7802d191198ef3b98aaebf60abc9d808fcfb78cdcd1b229274e710f5126768bd9045418afe6a06f57ad56eb0ddd889f3f50eee56cd59b5ddc3cbf354f16333e254d4f6d1be3aa9e883545b88db63fd02436cb8968c528ea9f02185c5d2080aeeaf28f1007ebb99245458c8d58c56cdfa44730dcdceffd5645da79f6716e048138234ec6f0d54253afc4e9912a387f5f93496c987e12737f19e17a6e67f9bfe4049b3d7c5f5a2d992b8daa659184ca32744a66f47b0d1f7e002f100cc547a34f19508b85797910e4bcc33ebbb2b7ef621eb3919b67d86c27023aed71641f32f3d6dd2e34dbe5de7d506db2831319e4ec3827703544243641bf5cbb5c07acd80b7920c81598d5444bea10ec3a526eefc5f1022bd1ea0492a2d98dce585d5682244a1951858e2bb32d6e56ca81aaa71480033a7518cabdedf8c2726230edb10a842d42a6641f1e1961cbee40f521a2280805f88d99fafa4cd039fa86f6b040e3db2bcbe66db6bb3439a36c6bf4025a14b646623a604f28cf51e011731bd4408eb5f31c0ae4e86a37954c9993f60a93a25a553435009f5600471f9a08ee1e8b79912c2a50cc7c8de54bdff100ab3fd7bd8f42f9b80297148fe71b26916092e2a826448e499d2861dcfe4f793db11590035820f46b3aa5b2e405abe7069386f1bab865dd352677882f2bd07e24d6db1f637b8bc63e6b4d9dc37bac40b57bc8fae8cc0b0d44e7dc117770252c3d1bfee6792ac8300faebd1f63588dd331394d40d4e805e28ccb2357ad48185f71f17de56a69634a7bd155550f780639e96de1386b61721e25bfbecdcdfa90710f45e27f7cd85e398f7c771bc67e28dc66fea030f81f982301af32da35d57b25f091a34dc173aae358b34f68e45b88247bcd2a88d5edba9a7ada46ff9816ff36fc70e95cdfbe16d1f177ba73c813d20bced30c3dd1c7a7a4a140f449e4887c654286944e6badc7f7a3c9919568844de84d5ddbc0769871c219bffe40a6d53c97a3ea35ffc24c6d856b268d25b812c8b96faf2f1a214b7b6fbb5c1ff81683da958830dbf6515df1c265a348eb07391d4adc8cd09af36806c9328dc56b26ff0956b646f0933d6d0671f1cff4eb8f87af3538f2539235828b53c58917de04101bbc9ee3f13ca2e39ba78de4a39f8ebf8305c0e610b0e93136818f47b723c25fd5b8bcfc77d614a388f25379e3e50f8d475bdd16e2ca8af609165f2851bb67b09f0516c95d9006f911b404fba3c58d0f63397e4df835721b8cfc68d6eef29642b242a616643f08d9182fa3359824f85a995167ea31f3d0fcf0bd360085c3e593f212f0f0753435d7c0253e9c4b311a2e83035bf2d788299769ae655a74c5cf1bf0b9ec5fa7e076cd0abc2268e8cd9296e6afb3882ab4b5b558686a4380b4cb04bc6cbf6a42c164768fb0705ab2203f362dd373a6cc45977d78529ed2212e36d73a1df61c648e1a3661cedbc9a2555232159ab7493998b981eb501f1a31c1e9cef0dcf64e8266fa5686e69e6b4bfbd3aff7224025e5abe518b0c0cdf57cc2cb5f3da7ec9bf5743c650764fcccd58aaf7e909b2485f760922fa0ddda2f8b5b6534b97467cbfd5bf5533618b50c37b503e593d04e540a22881cdbae8f3843511d955ed53afc33529ed55608ddce2bee7a9c8c9bb0975edf908af74def6203662f98dba8a75a59aedc3f368039bd2c5c420e705901a1317d53de0ad1d461767106854473a50f4098fbc47ab261a4c3591157306c7706e87dce21577596796870d491dde320ace4fa72cc9749d024c758d89d008b3fcba814990c1b20f164a4a6a8ab9b606a07e527e35f651c2c207799b284cf876bc1dceb269c088b7eda1a492a8ed9c974fd490be5170756769c4ff9e4b288508c1568a3b265c64242be53528fae357f531c1c3709e6eb267406d0840bd8aa0a34bd36e8ec333e49f2c2380c79a8c556d2251934dda8a192addf1b0ae30479e276cb6e32ee70a6fb91dcda4bd52fa232b43f80ad0613b4598322c7d210909b1fbb4bad1c93d566d54094e1fe4e40554998386d7373297d4ab7c34712e366e4a8bf8a14e4a4d54585b89b68940ce11387126f41486665820fcd7836f37069cec2c19d34b2b488c0e399409759abd399e682eb45f156e6510abb2e9e50cb7de335cd52a0c5f76389dd5a55f8acfccaa0017bb4ffddec693159bd4c95bec53baee76331901ebf5cfdca7690f636b5b33ebbe713a243a821582ae46797ace0113e9d41afa1fec13d8f7199f7510afea11f37cacee6cd2a322636acf4de8288ad71b9161f61a3a472497a08a535075b45f69016994b512f5e020a1395178a4e9f437c901bcdd2b6c8f8c0bcdfa0f4d9d3e160310932589965574566ddc8bdebdc41f258a9eb75b5c6e4824f0ff583214e4887bba0cfd9819b4a53a2261f916ceedb89cf8fa90fa32407577a432eac479ceb5c64bce61a37daee0a91e0407c89a0b151eb2c91c9554204013810d95498cf4f09bf04ffd3881a819eb1b53f11f6286f5a7dd1bae67c5e24306cce84cde997269a9027017cf53df3b38a86b23abb6d23b1b2bd3253bbe73b05cb33bdac4419bf53e6a3da9be33a1f6f6f39fa179de62fb5b2cf917074ffa6eea45cd87c3ebdf45f4a369a14cb58876f96615029a80f2c5f0362e37fd9456327ab419b873e140debb10b375503199e65aa704ef78c2acd6251f37461ed27d970d42dee32192858b879d917a2e9ce1f6f5cfcc995a752346d7599bce4ce5fa7a9f3ca30585c214b951e74d0e56c90fd68992f83f16bcb487d34e299bc1cbfd53d15da22994a2235bdbee8b476b844c6a526855e01a0b18f6217c2ffc48aeed68fd77c2c259c2bd375817bc9a7ed199b9733fff2e9f533ef0a556c1193a8eeefd22393b38d525b61f792eb453e0fe9a8ec03a3d17824de4fe614b51ba6524ab3ac4ef31abf2bcef44610f3f5a8b93df7088e02373e1612dc70f11b568f24a42da8a00693a5eb27dca29108c0e856d5fa621d42ada3fa21f3c1b1eafc91884535e1c58f1e4cf45810a8140340dfd91a9f2064310060c2ed0b611d5129f6a200e40506a0b6f4aacae6a475f4471c934552cde87bcace4347b5aa581bd7e8e0693fb966be07c836b69a0f3c5c66d726e496449ed25cb8f5ddda61b470188557a61af60dce36ef37525b6f067033b91a1eb9f8d23d6461288daed5d97cbb7b3fb1057374c78a27e59221b06b4a2b8929e2344d5da02a17f1de2e3c1f6cf18f6ec19beaa7298314283dbb9abb2545a32ef34291f84335106c3dd531873bfae8521741132f22501915102aa492facf43813045458c9f7f946fdd10ef62b2cd4aeacd4f2f296756cffd552c8b75e0eede99b642df6def1899de5a825a744bef3d367b166720a200974b10bc83f8b357f1cf7c08c06877c9d9ba2809c3654656fcc714206a5411ed447a7230e204e7ed0d20c160434f00b844eaca70a9740764bc1c3a33f71ac0e8098c47a6ffe0f230933177c8d61ac6e7afc763159d722fdc402c8a0c31863a698add03b99b7cebd52baee61bc5764cb5c31a04b4bd528ae220d0e39f9e16b07f7d89813618aef12fa5394f1062704e5d218a29ff974a183ef9e8d18c28179df876494d733ca0f0425e205c2a250a3b2afeef70aae07d44e162530430687c2aec7f32a1fb842a3bb2a33d18bc67a87d2400da9472427792bf4a3267b02cb1b8b50bc04352a26b3c5aaa647664732f1c415bf3ec6f71f7977497cd89887673116c7ae540521535c979ff26ef571a0af22a35658af6d1390469aa3c831847c38336e598be7e2ac75aef103abe1cbe7c8b5ff36756f3220d5b7701b15e7a1059d2a6a37cb77d11a234ffbb9216ac4139c864d22b701958daed83c8e877599e553913ec07e80b2990b2ffb55abbaa707296ab2c77d874d6eca6e2872c82fb12762d41608df0b92aa19997856623b18809d18eb2c54f3b9e3486da101e79088720880693e824293bf3a0ff55de8f262b0a6446fe5413af27bcc985aa044b5237f3312a62414aefb160a0fdfb710cfd0295d09c14fce177c500e5b6e254429c313f22a51992fc54dd9c931be92c66b51ddcebd0b6e9fe7f720f5ccbb96bf0611bacb2307989bf771aa73d3aa39b101b80b9a821d8b8ca71d95130a1dc0667f2863c6b1b3f45903f99cbf857faea81c8a4e7332796c2b9ade0dd84a5d9ed79dd3615c35b5d5883e27912fc3a00b7f42dd7ff626c74fdff11e16d81723636a87dccf34a5fbfe2e7f4021c32df5344e147b2062f02de0401ab707ff7bfb6c98b260e925fdb259ea8ca79ced9a413488cc63a132e623c3b0e9a2d321655b3bf9a2adc48f1eb0b0a6c4f2c80751a1b87e74f234e0837ddf6fdc19b5bdff11befeac0bc5563ff23f21dbf2c1391e524902010c884b904346705f8323c52c1deef10ab03c3055e259622fa26c6308af03174a51c8f9c442f3392939ef5cb8cf4baa89eccbbd56219f45d3b206251baec1596256b56c7a11ffa34afe45f889f9db7cb7887ab9617647aa45eac1503d3eef4c2df9af3606be5d"}, {0xc}, {0xc, 0x8, {0x1, 0x2}}}}, @m_mirred={0x200, 0xa, 0x0, 0x0, {{0xb}, {0x104, 0x2, 0x0, 0x1, [@TCA_MIRRED_PARMS={0x20, 0x2, {{0x3f, 0x2, 0x3, 0x1, 0x8}, 0x2}}, @TCA_MIRRED_PARMS={0x20, 0x2, {{0x400, 0xfff, 0x1000000d, 0x8, 0xffffffff}, 0x2, r3}}, @TCA_MIRRED_PARMS={0x20, 0x2, {{0xfff, 0x1, 0x8, 0x4, 0x9}, 0x2}}, @TCA_MIRRED_PARMS={0x20, 0x2, {{0x80000001, 0x2, 0x2, 0x20, 0x1000}, 0x4}}, @TCA_MIRRED_PARMS={0x20, 0x2, {{0x6, 0x3, 0x0, 0x2, 0x79}, 0x1}}, @TCA_MIRRED_PARMS={0x20, 0x2, {{0x8, 0x8, 0x20000000, 0x3, 0x100}, 0x1, r5}}, @TCA_MIRRED_PARMS={0x20, 0x2, {{0x9, 0x7fffffff, 0x10000000, 0x2, 0x200}, 0x1, r6}}, @TCA_MIRRED_PARMS={0x20, 0x2, {{0x80, 0xffff, 0x20000000, 0x3, 0x7fffffff}, 0x3, r7}}]}, {0xd2, 0x6, "a0b50c42fe3ab0d73c20b6a22e3284793289b05a93c6a45ac4331da2bb5bfd62910fc9ee28992dc49a1acf1e8ce7e3bdc75d5e37134bdfb07ddd2dd0ff85aa260f0fddc51647c7d63df628bc5f3dd897e51949d9abf0230d09ccd47d9d174ba8dbd1ade0b31f3260ca30005f8d019c89da2d0356142df51022df94d191207e3a8f172c7a8a80ee36e6e063cf0ebf175298d960cbebcd6dce0798b185b677186911990156acaf13f9225daf4d2f8a74eb338ff4fc79e1e27a9183d0d5bb83e546749cae3488fb77d77bb9a522f253"}, {0xc, 0x7, {0x0, 0x1}}, {0xc, 0x8, {0x1, 0x2}}}}, @m_bpf={0x128, 0x1, 0x0, 0x0, {{0x8}, {0x1c, 0x2, 0x0, 0x1, [@TCA_ACT_BPF_FD={0x8, 0x5, r8}, @TCA_ACT_BPF_FD={0x8, 0x5, r10}, @TCA_ACT_BPF_FD={0x8, 0x5, r1}]}, {0xe6, 0x6, "cccdf4dcd4a53f198222516797dbf2c0f29fe38655a8bf9f9953aa83071b92d20eaee55f61a8b5be6305bfb1a29a34e6cc2f331b55007eb4b4a7f472ac6fea6292b10dae0075537697cba825b8b09c2c621b0606f8a730a85417d54b691012da341ea12547fcef54a2ec1475853ed31e3e4cd91f43ba3a49c402b18f98f5ad8459283f46a3626a25e7e39df84f8652db906451ad9e8b877a74bea669b92aff51ce4db14b97c5d24aa63f6ac695ae3d32cd58bcf956faf7b027d511122c2c9a2dab470ba3024e3f39e45bbffc22b4861bc06963e1e3d90f1d09a8fccda8c985cb57ce"}, {0xc}, {0xc, 0x8, {0x2, 0x2}}}}, @m_mirred={0x1070, 0x1b, 0x0, 0x0, {{0xb}, {0x44, 0x2, 0x0, 0x1, [@TCA_MIRRED_PARMS={0x20, 0x2, {{0x2, 0xffff, 0x20000000, 0x7fffffff, 0x9}, 0x4, r3}}, @TCA_MIRRED_PARMS={0x20, 0x2, {{0x7fffffff, 0x200, 0x1, 0x9, 0x3}, 0x3}}]}, {0x1004, 0x6, "a63cefefe9e97e0eba03e4e4abe729ad811ecbd24466785b9938bd13ec4887ec37db75ea77b161c0b7fcccd7355e269e6d916e9ad17221fd6192c83bf1f6b2538de926a47fb258e059520940df5f68e7aac845ee43eb461b08ac8c4c80873770db23000eae522c8db2c9f38f511d6da58140427310c341abf2050e1da8902332835121a59293ca7583f97e170865bae813edd914b78a34b7d69d0d0aaa70f327a36d363fd01bfb180851c2edda31b749a425c4d43fca78c6a829867333c2417be03abb9c8ac097f0b8bd60cabebb7114f059129ff34ea9acb2346f0de3b1a3d0cc1681228bdf3fb91d8bc4de404995572e7725fdbe3d7aef0672f67857b11eff9e280629f20855ccd796b4249024e8d777812eb0e188cd056363c2847dfe92acb59db09de1f24cd7bd42ee7b77f107388fd10f5bb6a6e57d15b77a818cdc53984bdc7bd12d8380d0fed6e63fd3bc9fd80c3e8652079ab95ed90082b195f634b451bbda1f22618d6c63049ce0ef6d9badf619f61f4dfb2c4cd06d033c5454cefc3d76edc7cd3903884f547033058c2d1c8109a3fd36f7e478130f80f88cc70b23a23eed2be2053c804f9b6f58b1e9dab9bc52ab680d29d8f56f02487214af43c976d0c0f27f86d61bc9f769bf588e813d9e95c0d65cf32378d391cc7dd467b83ebdbadfdef7c29a407495be9cb5d9de7cb70ad5829f7376589120ebecae0d15aec717d58b86e2d88f606a88a0afa7896fdc51b32eb567381bfaf468410e0363895ccbd308e70430328734477174cf55580c9ee62ebee29ec31f390d58322afe25ba55d6cc881c5316188f153e30d29843dc9203b7311c8671450ae4e8d6439c4615fb2d6f3c86a87461bee42d98bfa4b6d21c8e1f869bbd26a520188829765ad2886b046dd0aebbe3489d44389a7af23b8dac11bf3aef37641b1890612ab7e0bb06a8ae22b08ed83dca1c506057f4aeb6ebe72c30172921442ddbe8f0dfe85ab6dcbd615aba3ab68abe63919a908255c409b844d0b6c132c821d71412507bc1048ec03b53692768a77251a9d5e38e50cc2b97ce97692b7a70de81a0680ca80182eaee4aa59d9a8c7ea9530dc61e6556b9d48ceb1456ffa980b8e7ddbc62f0236aaa97ed3def4c57f1d85abf27fd801853e36e6bc75791b0e367f7412a2317a0226f8dc0710efe9cbc4ee4184ea1c7812c9ddf539409020c59880e076def4fd2376be2bcf6c087e95d07f92e750dbe1a14c843ab0ff7098b0cd72442622c2b6b5a5382ba6f11d2727a69939b8f7930afeaa398c7bb14b52cd09bc31ed115ee123d18097d3e43babf353b0157641dca90ecf98cfab5bd69ecb13e4dcee5578ba9ff71c6074f92a4958449c9bcd75e7a9550cfd3dcae55e78686f7c19fe6ee5e7e923bf780110ab949821d910b199e7d98420e32bd714b4e9f7cb7f249359ceeb2f20a18c2b19da5abca0b4eda5252e762bed4965657cf758ffc80f2c62275622fcc89957f6b9b2c1b727822a7354ae42dc1006a6d4a3113c42a82a5d8938eb5bed50ec24d6289f1d224782593f6040194582d450f5fe584562ddd3ad1c65bb6764944726bda77e1926dc311aeb61479beae891e10715df8a2e3526f3b3d79704776e09b4c9313283c13401f96b631828378f839b17952b09692b477ebcdba7756693f7a644fd767cc4460b1014fa3ae31eecf1bc1ae5ac92b043f20e92da7ba10a5e726fb363b66de4e70227b67a4fc427b1cffe58dea4fcb3ba56251e54eb84d1ebcd441ad5d10cbcf243cf93960e09a0c3f4db7ba01411e649aaef336d17e389eebbc546eff238b6a980753a12a4ba59dd93749dadabeead8a6f33eb93bac9d3f7b35f0119185004d5f128d56a4ca273885ce66352dcef53c4a8c34f7b10be8bc813bbed7719aba367c2c7bbb22de82ea6cdd5ab68e0461b0a6198ea09f05837e4677eaacfa71020080eb00ef2bb26f4bd53087c1d921624a54a1cd11a738e36945775cffbeb4e97a3d119638bd91c32ae54b62a324c40ba30b8149b9ced2a5f305b9abbf77ee6ce476ccc58d953ba4f349930e6e52e4c15453681ef19e76e59cd18c118136432633fe6e96f6ecc2ced8e99336f340c772b573b385a792105695fed76ff6605dca34cf41f2ca16fda2f0b7848f556389e16692420d0f27731eb316bc8bfa75c0765a66f2121001626b322ae57212d8ebd5c9b866ecaa2dd34b1664e187db7e704334a162cb9c34d0fd6d1358e345f9180cf70efef87bb5235d633006e070ef765012ce56a6d3754a4ef7ee3fac092511167229c66117aad4d18c032f8ef75c39ce6dff806be08702c458149dceba22896d83f3460d76525a7ff9e0549b22eef493da6dfbd618f5d5fae3d3b3c18e1283df6c2015a525ed7c67d2ed33aeec95f7e884c99e784ebb632ad23814189043ce1b4a1f479221440b85e966b46d864fe4518466021e336a5d246fbbe1fe6f7ad82678a239ac0f673439af743627491b7cdbb3d4096ab72a16884fcfaf51c1a6f6ef7facba0fac426d67e26a1bd367bc2fce42179492b1bd5961edced76be5c4a0c5b67b5020b9cb12075359261bae78b63a45ec33cd90a66f4f67164a6f712b4aace997f248195581efb94254054156c4e731340838595c4f309cb0e7c0e1b10edbebc1c18d7752aee839b443aeab2db07bae797c678c634f72abc34d0a69b6461274613e39a68d25413f8e05af5f4023d7cc96809db241799305c7468ac9f1e331de67a2f28823de917c1e928b3328cdba5c989bd0c7046f67d4af48ea3cf0f6a78e9d573f18543ee1704923c1130246cf9b352037bed4b3565b19ed7646a7b22fa5253413c66b4dc66ae618e1bc236453648a397169a02b5e1ffbd6da4c0e2620e6341ec23889cf098d087a6fc8af13db664b7148a4e8e761b0757989264b7d8422aa36853027a3f5327ae058a129ead3c42411470c7c9aebf1e68f195c75eb6baef972db60a0fd044d3f8541cfcff57e7b2a89bd5f17f772a63ed1a968ca372a7a73411760cc7a0346593be236a2286842ddd3d28ed9bde0131e26568697027a331565279460ae65d68c4a2888d9fa7bb3d72cdb6e778b935498724aa8774c1ae5ca8efc52d69edcc40ba7b7794041f6ff340d7567d272d580bcca9bb0443e3fe322fab37a9bd5fc6b043d404676bf64a70f0838c71a1897f60e18dde49c6fc9c2e14396891953ad37b0b410643b3a8d9ca0fc4c089b66309a1ea8a6f43f02d073792f5f5fe607fd4c52a9c36f43f6aaea85ad6c7d9cb3a142a2210bb397ca5efbadde938cb06dd0c765e2ffd90b9c02ea24c969f08d4c12b114784fd279506376fed020ae40b5495f280ed834d9519e40b763290576294cd3fd9047e8c6be742a363936ffcc7edadcc2123966989979420f05f3d4b92e68d11dc421a6d668dee492fe8d9da0e11039393ad5cf3dd2486767e3f6ce04b0167c21fbbc53d285e312a61f4530ef6645d5a99eb3a16c5f7e4eee02e859a2063b8cabcc8968871b2db7c0c184c715baac89c46a75c861c0edb9608a8716c90d81c0b80ea6f78d8834c5e549aec6ed5c5825fcbd771d07733b5f427ef5d703ac59757e3a7e01486c19f43f938570e72ce24f2ca9dbcec2f95f690e4af763cf4edcac953ce6b366eb854841c5c5c1bc7e24eb6664340df96665931be59d674007c9e9b5db29a78c3b42281e378fd53d53b6f8c9f5347336cdb4eeb0703ac1d99fd44536025ae65bfa38d35e799cb2d480b7544e6d58f6fca224c09c7ede1ee62d2f4f564c3884e41cbb247894361a77af60e2b275654a91aa2c03f5d90a09388bd3f7c852974abaa98041d9424397cb08fd550163cb8c4951010d9b637e5d28620d83a752067ed997daf2900562b4d3a54c95c78e022b90f05e0b8b93505e85f5cdcbb01af10dcbdbf4021f871fe8c42fe40d0be09780f1083c0bf1c0b7265180b1f0974766ef6a225906ee3fd1cb76df70641d35b4be433f6b4d01b4fa57e2bcad9e19c7591f0d02dd8263c2c59239cbb9e0e9d5825d73ca9295507a8ce0d9547532034349d17dc32847d7b26fb6bbee3e799ec54064e119d8e3256b402a3b6eedd5a070ea737507402e1d10cf21c8d6ec27eef9729ddd06e4be80cbf7386576c25a755a20efc05a9dd29f300b8e8cb7f4953256264421e607dfede184c3678a60755a0148df9bf5212bd415874abf82ebfb05a187709c59e937a40248b9c017dcfbe5484b924bbe7c3747d2634bdb023fd095e0b99f1753d9e9f783da1be23c766959e835d9936fd4f0091831f13f952f070685e92edf13435be615552398daab0609c8346906d41be32b37f1a78c96565a8e4be8d34fe8714709d69873d2b26b1c30a69d3bd971f72c0f867c10128e4672098f90bbdffabb3d0cebd88fa0bb8c71ee90cc10e5a79078deff40793c317971f07b615144b9226ac6cd8972621463bcb31cc789d1fb0d1777aadb27571ebd1a7e7b3eac6dd5714f7814739f6fa5828163d5add989634f2683458cb4b6896228bfaa681a5526eeb9b83c984b9556a0aa705cfdb27f640f25177cb7c2171e822a6b8f747fac50e3d29b0fd661ea94c722fe6088e36ad42c47b140b41d39786c2b683e3f48356f7e19b525f14a780b52951ccd659dbbd377517e2e9e52ca431f29debf33c684c072c9c91322697d128df7599dd0a4d75f551d9e29ad212c9530ad69d5547ebb07e2b747a99519099a19fdad95c9c16a29da024d6b8b6b181e4733ab33d22e2c377c82bf5fe40106e05af78dfb9c5b97d4fddac42cd39dbe85c897528510be1922b28238952592faed2111b8566acc749ebf11a997990052d37981f268da0bc93c480fcb7202bee405bdd7e1d89b4cae4a57d5123da7ad6b28856c57e63220a41bf89fa00f2565082bbc656c087be6dd7e6dc56b28f25439d4cf3e6fb1c1dfcc5748359157a6f23105f3239a5503ea86ed7e00e26a309f37d6bbb61b70fe66ea4f92ac13a8791a94fcd2e286892e00a2d3421d4ac0b47d016da085eb42118784c2b2643302f205dc2bb8792a279ecebba5eb46df515ee1eb680e9399e10e6dfdc196fa1fe7e36e38099015f6b4679f3c383e2a89abf4711c486aafde6634e0144312d28527876da88f87a11be00c659d0028869bf051239735e7607c77297b6fda2fe4f01a506b786a8bd25f87ef16933406deba2a3db2295048b05ca02abab5e5e6c8e8420a6bb2beefa92890a3b47cc16958954882154d2a77c66672937b47698764c0eacd4768f79a74fc24f718c83493d69fe1896297829cade1ce59c09f00e93393f59b55689d91835b373b92dad96ebfe06c7ffd10ee1f729fd90270bff83df715560aa045ba571f8bc94987c9397516f19f5d2fa4f625918cefa38426918cfb59e20c4ad3a11711e2e8f591eb93e8cae0eac509245f5623099fa64a1f9f778655b6b24876b38a0cf321c479412908473bd4041de6a535f95436fc9d0fba51f3507af56d7c6fde867c4403f0b38b959001247952b1c7b866604fa790260fcaf29abe5ace36252d41fd4d1b01dac5f7ce0d9d3b7d01a818f4a7b405ab1d76eb4d874f43464c424ef545256194e38fe7333473ad2289faf19addfabed0ecf94429b8794a88f6a72104c103ce2b4f44444c9093888bcc318eecfa0de2103b7bb6cc6cc4738450b89355044c9acd5e5e1193cb2cf6ed28e21e83eb354205ce22e83a31e22b6302cec6014b3a25b0bb16cd4f35bc0375c8ca27af06beeaeea3c2d815261704655b615c929908d581029457f8234c36451fa3e087"}, {0xc}, {0xc, 0x8, {0x2, 0x1}}}}, @m_pedit={0xf24, 0x3, 0x0, 0x0, {{0xa}, {0xe9c, 0x2, 0x0, 0x1, [@TCA_PEDIT_PARMS_EX={0xe98, 0x4, {{{0x2, 0x401, 0x10000000, 0x800, 0xffffffff}, 0x8, 0x2, [{0x800, 0x4, 0x0, 0x1, 0xffff, 0x6}, {0x8, 0x5, 0x1, 0xe69, 0x5, 0x2}, {0x2, 0x100, 0xaa, 0x4, 0x3, 0x6}, {0x5b5, 0xd070, 0x7, 0x40, 0x80000001, 0x8}, {0x80000000, 0x169, 0x0, 0x7, 0x1, 0x4}]}, [{0x10001, 0x0, 0x9bf0, 0x200, 0x800, 0x9e9}, {0x7, 0x100, 0x5, 0x0, 0x20, 0xfffffffe}, {0x80, 0x4, 0x2, 0x9, 0x2, 0x8}, {0x40, 0x4, 0x81, 0x0, 0x569, 0x9}, {0x2, 0x6b, 0x2, 0x8000, 0x4, 0x9}, {0x5, 0x3ff, 0x7, 0xa1fd, 0x3, 0x6}, {0x80000001, 0x4, 0x3, 0x1000, 0x0, 0x6}, {0x5, 0x7, 0x3, 0x2, 0x9, 0x100}, {0xfffff801, 0x9, 0x10000, 0x8, 0x5, 0x1f}, {0x40, 0x6, 0x1ff, 0x8, 0x3, 0xcf1}, {0x20, 0xfff, 0x6, 0x0, 0x3, 0x6}, {0x4, 0x1, 0xfff, 0x0, 0x7fff, 0x80}, {0x7, 0x7, 0x0, 0x9, 0xff, 0x7}, {0xcf22, 0x8, 0xa37, 0x40, 0x10001, 0xf46f}, {0x2, 0x6, 0x8, 0x9, 0x7, 0x8}, {0xfffffffc, 0xffff, 0x8, 0x1, 0x8, 0x100}, {0x0, 0xfe8, 0x9, 0x8, 0x6, 0x81}, {0xf2, 0x80000000, 0x10001, 0x1, 0x3, 0x6}, {0x101, 0xc2, 0x6, 0x7fff, 0x3f, 0x3ff}, {0x80, 0x2, 0x4, 0x8, 0x10000, 0x4000}, {0x4, 0xb3, 0x34a3, 0x7, 0x7, 0x7}, {0x4, 0x1, 0x1, 0x7, 0xff, 0x89}, {0x5, 0x200, 0x401, 0xfffffff7, 0x2, 0x5}, {0x0, 0x7f, 0x9, 0x0, 0x3f19, 0x5}, {0x50000, 0x100, 0x9f, 0x9, 0x80000000, 0x6}, {0x3, 0x8, 0xb5b, 0x7ff, 0xdf, 0x3}, {0x2, 0xffffffff, 0x1f, 0x6, 0x1, 0x8}, {0x8001, 0xfe, 0x4, 0x9, 0x40, 0xffff0001}, {0x40b, 0x859, 0x10000, 0x7fff, 0xb5, 0x7}, {0x9, 0x1, 0x3, 0x3ff, 0x8, 0xca01}, {0x7, 0x1, 0x800, 0xfffffff7, 0xfffffffd, 0x8}, {0x6, 0x9, 0x1f, 0x89d, 0x80, 0x4}, {0x6, 0x3, 0xffffffff, 0x0, 0x5, 0x7}, {0x2, 0x13a, 0x400, 0x0, 0xec3, 0x7fff}, {0x80000001, 0x9, 0xfffffff8, 0x8, 0x3, 0x40}, {0xffffffff, 0x80000000, 0xfd6, 0x2, 0xc69b, 0x4372}, {0x7, 0x0, 0x1c000, 0x7, 0x4}, {0x672, 0x1, 0x5, 0x1, 0xd8fb, 0x4}, {0x5, 0x8, 0x8, 0x4, 0x50960, 0x4}, {0x1000, 0x8, 0x6, 0x6, 0x101, 0x10000}, {0x5, 0xc296b1a0, 0x9, 0xa2, 0x2, 0x7}, {0x1, 0x40, 0x1, 0x9, 0xbe, 0x1f}, {0x6, 0x8, 0x7d28, 0x4, 0xe23, 0x5}, {0x40, 0x0, 0x7, 0x1, 0x0, 0x6}, {0x94, 0x6b6, 0x8001, 0x7, 0xe7, 0x8}, {0xffffffff, 0x4, 0x80000001, 0xfa, 0x5, 0xab}, {0x5, 0xffffffff, 0x0, 0x3, 0xd6, 0x10001}, {0xc2, 0xfffff8b7, 0x0, 0x8e8c, 0x5, 0x3f}, {0x8000, 0x3, 0x6b, 0x5, 0x7, 0x49}, {0x4, 0x0, 0x2, 0x3, 0x8000, 0x7ff}, {0x200, 0x1, 0xcded, 0x9, 0x20, 0x10000}, {0x1, 0x2, 0x2, 0x8, 0x3, 0x8}, {0x10001, 0x4, 0x200, 0x1, 0x3}, {0x80000000, 0x2, 0x1, 0x4, 0x0, 0xfffffffa}, {0x2, 0x5b20, 0x7fffffff, 0x1, 0xe78a187, 0x7}, {0x3, 0x100, 0xc51, 0x8, 0x6, 0x8de}, {0x8, 0x9, 0x43d9, 0x10000, 0x40}, {0x3, 0x2, 0x10000, 0x5, 0x7ff, 0x7}, {0x401, 0x7, 0xfffffffe, 0x0, 0x20, 0x84}, {0x9, 0xf2, 0x3, 0x5, 0xffffffff, 0x8}, {0x8000, 0x5, 0x8, 0x0, 0x80000000, 0x3ff}, {0x9, 0x9, 0x65c035b9, 0x1, 0x8, 0x4}, {0x900000, 0x0, 0x3, 0x0, 0xda0a, 0x8}, {0x800, 0x4, 0xa75, 0xe88f, 0xff, 0x4}, {0x1, 0x5, 0x20, 0x8d, 0x40, 0x100}, {0x8, 0x400, 0x2, 0x6, 0x7fffffff, 0x1}, {0x6, 0x9, 0x7ff, 0x7138, 0xfffeffff, 0x8}, {0x37d1, 0x0, 0x6, 0x1f, 0x6a, 0x5}, {0x7fff, 0x5, 0x6, 0x9, 0x4, 0xfffffff8}, {0x7f, 0x3, 0x1, 0x7, 0x5c, 0x9}, {0x401, 0x6, 0x1, 0x3c, 0x9, 0x40}, {0x5, 0xff, 0x8, 0x2, 0x2, 0x10000}, {0x80000001, 0x68b, 0xc316, 0x7ff, 0x1, 0xfffffff8}, {0x3e, 0x8001, 0x8, 0x9, 0xe2, 0x401}, {0x3, 0x7fffffff, 0x5, 0x6, 0x8, 0x71}, {0x9, 0x3, 0x1e2, 0xdab6, 0xfd3, 0x2}, {0x3f, 0x3, 0xaf60000, 0x6, 0x7bf, 0x407}, {0x1, 0x2, 0x7fffffff, 0x0, 0x7, 0x9}, {0x8, 0x800, 0x5, 0x1, 0x1, 0x800}, {0x10000000, 0xfffffc00, 0x4, 0x7, 0x7, 0x20}, {0xa39, 0x3, 0x7ff, 0x8, 0x100, 0x7}, {0x7, 0x784f, 0x1, 0x10001, 0x827f, 0x5}, {0x6, 0x8001, 0x5, 0x7cf6, 0x8, 0x8}, {0x2, 0x2, 0x7, 0xfffffff7, 0x8, 0xfff}, {0x7fff, 0x8a, 0xffff, 0x7, 0xffffff18}, {0x8, 0x0, 0x0, 0x5, 0x7f, 0x400}, {0x2, 0x8, 0xa61, 0x7b0, 0x8, 0x7}, {0xffffffff, 0x419, 0x800, 0x4, 0x80, 0x39}, {0x4, 0x7, 0x4, 0xff, 0x9, 0x3f}, {0x401, 0x4, 0x3f, 0x10001, 0x8, 0x1}, {0x1000, 0x17c8, 0xfff, 0x4c71206a, 0x8}, {0x30003178, 0x40, 0x6, 0x6, 0x0, 0x3a}, {0x8000, 0x7c9, 0x1ff, 0x6, 0x0, 0xffff}, {0xe5b0, 0xffffffff, 0xfffffffd, 0x1000, 0x2, 0x401}, {0x2, 0x1037, 0x3, 0x7, 0x0, 0xe0000}, {0xb0e0, 0xee, 0x1, 0x1, 0x3ff, 0x81}, {0x6, 0x8, 0x7, 0x3, 0x1, 0x1f}, {0x40, 0x1f, 0x6, 0x200, 0x1, 0x800}, {0x1, 0x81, 0x0, 0x4000000, 0x0, 0x7fff}, {0x9, 0xffff, 0x5a, 0x3, 0xf6, 0x81}, {0x5, 0x7, 0x7, 0x0, 0xffffffff, 0xec28}, {0x291, 0xfffffcc9, 0x1f, 0x9, 0xff, 0x7ff}, {0x0, 0xac5c, 0x5, 0x5, 0x1f, 0x8}, {0x5, 0x2, 0x2, 0x2, 0x5, 0x66}, {0x8, 0x62c, 0x8000, 0x6, 0x0, 0x2a}, {0x2, 0x8, 0xfcba, 0xef4a, 0x7, 0x1000}, {0x5, 0x4, 0x1, 0x1, 0xfffffffe, 0x3}, {0x8, 0x211, 0x9, 0x9, 0x410, 0x6}, {0x93, 0x9, 0x10001, 0x3, 0x7, 0x9}, {0x1000, 0x7, 0x0, 0x9, 0x2, 0x8ec6}, {0x1, 0x3, 0x1, 0x4, 0x4, 0x685}, {0x1, 0x800, 0x5, 0x7ff, 0xb133, 0x4}, {0x7, 0x400, 0x3, 0x3, 0x7f, 0x5}, {0x7, 0x1, 0x3ff, 0x40, 0x6, 0x7}, {0x7, 0x200, 0x6, 0x1ff, 0x7fff, 0x738474ce}, {0x2, 0xffffffff, 0x8, 0x8, 0x8, 0xed}, {0x401, 0x6636, 0x1000, 0x7fff, 0x127, 0x8}, {0x5bdb, 0x6, 0x2, 0x0, 0x2}, {0x8000, 0x7fffffff, 0xf70, 0x0, 0x80000001}, {0x9, 0xffff8000, 0xdd4, 0x3, 0x10000, 0x1f}, {0x6, 0x15e, 0x8, 0x3, 0x1f, 0x7}, {0x1, 0x0, 0x80000001, 0x2, 0x2, 0x5}, {0x200, 0x1, 0x9, 0x101, 0xffffffa5, 0x5}, {0x0, 0x3, 0x5, 0x1, 0x1, 0xff}, {0x40, 0xd6, 0x4, 0x5fd3746d, 0xc1c, 0x3ff}, {0x80, 0x80, 0x3, 0x401, 0xc10c}, {0x80000001, 0xa4b0, 0x8001, 0x7ff, 0x80, 0x3b33}, {0x6ec0000, 0x4, 0x0, 0x7, 0x1, 0x9}], [{0x4, 0x1}, {0x5, 0x1}, {0x1}, {0x3}, {0x5}, {0x1, 0x1}, {0xbd55a9aa63dd7bc3}, {0x0, 0x4ced3b192dc3aab7}, {0x0, 0x1}, {0x2, 0x1}, {0x5}, {0x0, 0x1}, {0x1, 0x1}, {0x3}, {0x1}, {}, {0x3}, {0x4, 0x1}, {0x1, 0x1}, {0x2}, {0x2}, {0x4}, {0x1}, {0x2, 0x1}, {0x4, 0x1}, {0x5, 0x1}, {0x2}, {0x1, 0x1}, {}, {0x0, 0x1}, {0x5, 0x87eefd521ffb330a}, {0x3, 0x1}, {}, {0x4}, {0x0, 0x1}, {0x4, 0x1}, {0x3, 0x1}, {0x3, 0x1}, {0x3, 0x1}, {0x4, 0x1}, {0x3}, {0x1, 0x1}, {0x6}, {0x5}, {0x0, 0x1}, {0x3}, {0x6, 0x1}, {0x5, 0x1}, {0x3}, {}, {0x2}, {0x2, 0x1}, {0x3, 0x1}, {0x1}, {0x5, 0x1}, {0x4}, {0x4}, {0x2}, {0x4, 0x1}, {0x2, 0x1}, {0x2}, {0x5, 0x1}, {0x2}, {0x4, 0x1}, {0x4}, {0x1}, {0x6, 0x1}, {0x1, 0x1}, {}, {0x2, 0x1}, {0x2, 0x1}, {0x2}, {0x0, 0x1}, {0x2}, {0x1}, {0x4, 0x1}, {0x1, 0x1}, {0x5, 0x1}, {0x0, 0x1}, {0x3}, {0x3}, {0x4}, {0x4}, {0x2}, {0x0, 0x1}, {0x2}, {0x1, 0x1}, {0x6dd327c3e959f49e}, {0x5}, {0x1}, {0x2, 0x1}, {}, {0x2, 0x1}, {0x0, 0x1}, {0x4}, {0x6}, {0x2, 0x1}, {0x0, 0x1}, {0x5, 0x1}, {}, {0x2}, {0x2}, {0x3}, {0x3, 0x1}, {0x3, 0x1}, {0x3}, {0x4}, {0x3, 0x1}, {0x2, 0x1}, {0x2}, {0x1}, {0x2, 0x1}, {0x4, 0x1}, {0x5, 0x1}, {0x5}, {0x2, 0x1}, {0x5}, {0x2, 0x1}, {0x2}, {0x5}, {0x2}, {0x1, 0x250d95a23826773}, {0x3, 0x1}, {0x0, 0x1}, {}, {0x2, 0x1}, {0x1, 0x1}, {0x5, 0x1}], 0x1}}]}, {0x5e, 0x6, "b774ce747f15dac9471e2dd037ef18904c20db342009fc10924427cab9cce429d4f746ac30d40e85a600a6d35890562d1d575848cf305d0d03e01b4850ca6735056ba4398ae52e9a02d3b1cefcf97c3e61037d6c66deaeaabce0"}, {0xc, 0x7, {0x1}}, {0xc, 0x8, {0x4, 0x2}}}}]}, {0x1520, 0x1, [@m_ipt={0x11f4, 0x1d, 0x0, 0x0, {{0x8}, {0x1cc, 0x2, 0x0, 0x1, [@TCA_IPT_TABLE={0x24, 0x1, 'filter\x00'}, @TCA_IPT_TABLE={0x24, 0x1, 'raw\x00'}, @TCA_IPT_INDEX={0x8, 0x3, 0x7fffffff}, @TCA_IPT_TARG={0x11d, 0x6, {0x5, 'nat\x00', 0x1, 0xe1, "4d93fd157c1bbed2edf6bc87078c3cb1e89f9bfee3626e81b60c52ab73e50080540ed0b476f2084ccd44182aafe3827334b544c6db473c6958c37d0e35b548fd9586bd9bff1f5bec38656c2000f1226fb2cde97471e0c9c00eceacb5ddbe26d21288ac497ee6ca8f3cdc9690521f8ca55d40b6fd12ade5eed0abaf55f545d504f1e8ba6838d35b0c4ef3cc90fb0cf6435b4c10f0405283defd07bc789a81fd5970b58b98d9d0f61260a66b288002aed610dd94fc1931c64e56b4f810779dd90ebc61b3c84b098e625bf36461deb6ceb0c8f41e62621529f5f00e62e6b055074d21f3939520d05e8e2e092bb6e42be25bba6deb"}}, @TCA_IPT_HOOK={0x8}, @TCA_IPT_TABLE={0x24, 0x1, 'nat\x00'}, @TCA_IPT_TABLE={0x24, 0x1, 'raw\x00'}, @TCA_IPT_HOOK={0x8, 0x2, 0x1}]}, {0x1004, 0x6, "b2f6d035891e65e643d07891d4bce615959a62e0db1305840fe0f2d26813cfb02e98be395a50d97b78a517d9ebbaabcb64d78bf46d65de83c43775862fad615867d5079a27c72f5fc17bf84e1374a39f250209ed63e4ec2248dccbacaabbb975cd2e74f126706683b91591f2b1d14e52e3f18092a583fa3bb8c61c8d1163e8bf6be917173fe8ba809ade2a66aeb82ac08f051a1bcbfc2bd7f367b21149794ceaaba1d5e08856877025f4642b82cd5689c4d128b66d4ffd8850a1cecbf66615aa83f9a9169243773cb52c46ebd41c6d2da94891af2cc9a2dc5edf2c9469519e5ff974cf7b1a6ff78f99f8770b0c192b23ee74b272caa553dabdeb9ce994434da5332d264a6200df1985ed1e022ca6111b4dac8c3e8073e6804785237ee9f66cc9fc30c0ebe92b248edd24e1b484d24d311ba6c9b37ac132e7d79c0edebf919c14de6164d93f35d91decec1a68d3c3aa77d58294da871e83b7664db7aa36b20fa18288708aa36f3698962edd4c00b98b6decbf37c1bf6b8891339c9705276615152e2b2de9ea680009706e0e1a23972084be8b440450a455da808b0099187ba19e3270cedb2a99a9e0b5b18e8424d2259669916b651d65ed17c245800a89c384549c71b6168718fe537d9676d2bddf207ee35655b56586100738c1238946202c5d6efccc70ad33851a76e0dc85051fdc3739c96ae1dcc1db1f0f9ba74e1beaad273d1f3a01c97e9e63525bc4aba6f6f716f03dbc88a5566440f83bbccecb20c5747e63d5822f8fd5cc309c8d719fdc8902eacd8f4f1af257db7309073c6ff1bd6bb92727cb790e690d2c0ecd79c52fd9fe8c21538523e79b71e44875ea11aaa95d6da5b81df8ed04c688dede8b661cc7a43ce5694c9ea9f446788801465fd06ab905aaf8911299e701364a7683c0d2327aedb91f9a4ec8ebc540e5f43dc784f0885ac6256ccb8003165679d9130ebc1bc7a03b5e32bf16bbf2bd815d383fdd48f3c4dd8292d583e9a62d543732dbd81667451c035b998253b6199a248836a59e8c67fa6e949d1f06aae66228d14270e1bc628818976dd80b788129f226ff510987d90faaf3386331001474c7291b727371f965d6a750c707ef052026ba11bca07a1099534ecc1c921a6c3e2790ea384e6fbd1013024bd16b34ab5d30f7c23e3c8377b949aabe1181f0d4eb1414569a15abdf6c9af271cce927f8c8f862bc12d50c2cb26cb6860201215f024aa19122c6f709fae43891de6d4b4bab5dc882d3e6c4d5fcd05278c338d26a593d8518ad02865fcf5d73524480be9d452835145de710db51935ecf28e5d7b25a4dc80072fbc50beea0ad8b4e3769640d2310c61d5d9e4f11c602a2f5ae51209bcd5ef2cb4a34b2fb9f42fe5e141c43c55a5e98f1ee44927306eec49a8bc42427b44720562a5d17acfebe39f3fa8736e7fc404de40f132c3164423016b9c02910ad16f924e773194474c758267bf446957e50ed9fc610e3af7b5ec04f1a85857cf3e399313a83d0654eb8d5dc24cbdb90c86db11695bc6b8980c035d0ebe21588e336169e75754ce29b256b9931918c7b3930fe03c152cb1a6e64710f303b83bc739e58b329c649e83b110ceb43f95c1bd115c25697445adf7d13c767ab9ee8d91dfca40cd6d091644cea44d09eabdc7196ac77d618bcad879ad781bc52accc6abeee65ed5b73322ed6b6466b9aca2027455e72aacf696bc30c999a8f14bf484399892d8ec29a83b85e64ab963b27da21e12c2f5d854fdfab8cb1dbe55f4b67b9481a31ca6bdbfeb20d55b6b05fcba919657ccb10df84233c19c93f3c0a500110fa0afc68abb04e8b632458ec0877428748edf34117ac519cd74a4b42cca9497dc75a2903070b2de70b15e01406331faa04298938bda27d3efaecd7dc860a2d03610ade92d2f8458320ed9940496d0b07afe28720264e85f7d5d4889c9a460553a454a27175bab8a1c2bf2b78ff355caa77855bf92d395f9d37072e9f05af3783acbb4e11c555556de1c8e5339c56fb19d0e03ae18f4d8adb0e0afcc5c07296f185ec468c82f828477a0ba36ae44a74c4cc7b003afa88269ee45db9478cf9cc6bc9d68138a1d8634ffb9d7707db606ba50b1c5d13529797540bd727e369a68117a6fada31e4e51f3d1edff55ba3fc9090ef5d7718db472d9110dd7d9c871126f7e166eec7d6ea72c4eaa41777a66e5d2420c1285a07fbc2158d051a073e29130fe53bb93e76caa7f0ded5a85f5e106ea3dc604c1847997e33d5d0af6bd82b5bd4f12580b395d54f7cfd33e0d163bcf12944aeeeeda5ff2aaac551035201727db91ea8066f933f93f9bf2efa0491e0db84a492f46882586a3400820e46fd84b14f8e10b7957cfe9eae560ce3526ae13f00f15dd2e4cd31ded52d1799d016b1dfdf4fe77eb056dc30260079a42e574dedcf2183f008df4d1297aceb1bd3a56707e863242f2900447161b0f148fc41e9149d818c2d197dfcb7e162c30522a5c43a89a2b02833e4e4fbe33f4fa7c68f451818c31ed1f2ed916db915a09b480770674f7e544bd38b0d76044857481766a8386b565311bd3041ad7e5d84342c37efb1f7ae4d4feaf48bb42079399c562e194bf43c14993e8e567634a1b9ba07abc6cab7be0d2ab8f3464c8c898c800e368244c150bc355f38b91268453c70ea2264ccec3441179a9df48b8dce1e3e0cca43f9c6a712ea1e1be4db6b430a70c7adda5ea2dece95fb74af3f7649e09614791d2eb67917497438fa3c999b2ee96a5d98e4a10acfefa5dc13b4ffc2c758e23e22b98ec1d708a4fedbd305fa89163f745ca09224c3f565c398efd556d7631a0901117e6ebe1d5d6360e2a969de914dab786cc159cf9df36ed26998aa47f6a179a1de0a69dd91b7806ebf09ee3c15683925369e040aab53ea16d9e7c5b80a80927c3433ca7e8e465cb1ab5a61019fd41133130242d88cb2959490a91cd58b108da395bc130b61a2818cdfbff8a11d05fcb030f2ef16467d24ad94951397145e043b56b914352605ff20d75d69072808205d7925273e840c49ab7dfc0d5db317597f89edae5c9c1e955f091993e8257d36dd53df02615060e8c3d4b940eb6acfd81b7e3b022be6dd95f3e21546f94b6f3fd5f220dbf9cbde4a88763acc7c004c274ec12950f9bd95a506bd7a51c61a5955bbdbd736c8479ce492d59233f58da7204fe14524182c77be2dccef57651d619fbb51a08f25549a5b010f38b64c30fb2eeb795e1e2bb36a244da897af43180c5359802df2e88de893b095c082926a6cb526f55722f5128aa1fdad85d2e08cb0e79a659858faa88f8acd135c4ca9fde0bd26d1948e6ff20aae4c75f36c21f831d4c72c376d3b3e45867c6f1f0f9f67ad4b15c8f410c009330f9167a935afdf1cce6b8ad40e6009b21375241fb4b21e8fb059c8d07938fcb44df729db80418aeb070a77373afd4691a949808352303f549681d28ff49ba0deb65ef87572fbf31595a2d33c492de3d924e17f6ca1c60882f1849642dc115804975cf1bc763d6622b1f43bf56b67935a8a30948b988fd3e49d4f8283e920e66380bffd189da4bc3b827ef2c013ba14a026fea316cfee79977fce71cab8d89a8d95989bab669fb78d94138d832e0ed1907dd94c6a5e0726562e0ce74205fa8d8cc366b68f4a99d2dec956b9191b185ad52391d2035d36fb96b2f918d35776570bef6c767c3addf7a9592ae72a642c6260dd18e51f3b63c272d3b2d29515fef2bfb446865d5c2508a0d282b3ccffbb14f34ae8782c61402f7298039e55539da66563bfd0862153862fc2c35b0aa806eb9149dea146b00c51178e9cc78b439b9fc81d8909782470363c04c773c2a63a19c48c4bf40c0d8759f751eb5ce7726f33e3fafb3ee973cace28df6aaabd81611da2af1558fe192a55bfa23be1e952078628ba94492874bd0d09c2f02e85e53a81cf2655793d040773945701baf4ebf998a9940913ea101b5db96c71ee4dc484b7e4150bd2672767ecdedc553ddd7ceba476973b539e3179617b120ae31e0a4c96711e99f9ea84d841f22eaa9bde32478f1803f0812a697a989a510399a8f8ab10b30dffa42cc96bd92695d2890556179787ae85b09563536f15cb54e0c47da2e68670490708f0c691bec7c8d9d6c21146b6f1f76e4b0deef0170cfe9bf650fc2c3032771b1c2f1e3344569358ea7a9a109adebfd20d68a93d26debad434c682e126448ca918188c1d8151ccbc8383af6e2855f3f429bbeca42862dcc06a487b2146581f1bf29b91597f81a83a23f67d156b9ad9f1d840a3155cca19731be7989830723b179c58b311a38a948023218519382e1ecbec39f81d09372a3d0322ced2bc8a1475b5b0189d4e3e02b4cb5f1d884e4007c749a58d899dd2184ba84410462ea62bc6ec2e045dfecb958ecd3ef0af17301bb2968f4113c371206aae9946e8b617a7065118e2121869c3ce51809239a54ca8aa0bcc80f86d392255b71427a81560faf00f9c8aaa9e22b296e5bf0a2faaec27d951a2c2a55b1481e2f5ee1ce76948c3fbcb820984a31125d1f36ca8081c9da9f355fa27c88c6f3dbebc16dcfbeeb3c4de0d712b1b11d8b14fe933b941956dcaea053d202df0030599bb3f98a3b811ce20566aeb5e3c2b01321407eee0850629a53c4622c11b43dcb3e32ae20f5f4a3b1fa1e492bba3f892a4b6b78760b6b97bb33c0c8eef156bfe57265e3a49a583222ad87393ef6ef59312af7255b1cdb8c9fde97f7f407db9e8c0352c7cc037649805e174fa4d2bd9b3029eafcb3801c2f0543ba93b0e20effa1a7308c0bfd66daa59b69e02d66ac52b1556a832f07cc02a91166c769c7e8a571192d537764fb11f10d172b85ed5c376ffd2a2b89e3f50b4992188fe06bda906d0a131567c4d43e6115d29e3b5d306b060143d7e35eb59c9ed64461aa3d6a6aacdc99e7d5b151b42d6bdc0d34d5d5ef84315d4ad64a97363594260e041e666b976cd8c193fb2df74d3dbcbcfdef4b9dddb5bcd854e94b0801a2e445a026a3bc7f88210331e13fc2145d45b7a6717af9bc72d7e3b7ded1e1c49884b22b8995ecdc76b3898ada5436294ccc82a0f41e12782dad5cc639f99774ce6c417bb524ab5fd5a2b949c0aecd4bc997bd8ffc125f40cb7b342e85a11557046858a5618454ccfe93748fbab3cda8caceebbdf98b56f1d3bf821f8eef5399693afbc0b0e95032f37257aee7b9136df422e0ac4db813e2270af5e86b7567969b65ffc5631ee0f1f44e2e9e6446b16a0c726e6fdd15237d30f92e16ead69f57da09f3da726f3715ff95b25344c93601a064758330d9975fc4d5cd823a8bec54da23db941867fb4af573d7cc2c4a46473f6cc0b7f6398fd9e35d8bbc32cd9b8c6759d712bf3769bd2c978b5ee9657ac4b9c37c9fe148f0cba652a1850bbbdf07740fc2306d6556d58dd0a792930b1fd29bab36634914aaeb7fa257a2e1b702d68d2edf51b13467ae3c1727885746dbacdb6d22354e7537cc905480b19a233911102bc3cf4429ed8d7369ac2a1329631f755d8402e4fabe903877198feb427f016993aded14a970c957b7641c77b1020110a269e2a01a1a7b3a28dd648a7448f1f5fc26f887ec342744fec6f96eb4f5c5bddb0ad272fe5f0adce0f1beaa935bf514a023407eccb6daadcd052b7dc57c3ac1ca376a86c5208c7072b4ba2f5772577877ce4d7bd64ab07d285d327d4c7cf97c05b9c8f04fd7e87520fdbbb12793d86fcf4d2c82869699ed08c54090713eb16f059524431a3d6b00f47ada0486045"}, {0xc, 0x7, {0x1}}, {0xc, 0x8, {0x1, 0x2}}}}, @m_csum={0x148, 0x13, 0x0, 0x0, {{0x9}, {0x58, 0x2, 0x0, 0x1, [@TCA_CSUM_PARMS={0x1c, 0x1, {{0x200, 0x6, 0x0, 0xfffffffa, 0x7}, 0x60}}, @TCA_CSUM_PARMS={0x1c, 0x1, {{0x81, 0x0, 0x2, 0x3d, 0x2}, 0x73}}, @TCA_CSUM_PARMS={0x1c, 0x1, {{0x2, 0x92, 0x1, 0x10000, 0x9}, 0x44}}]}, {0xc5, 0x6, "6c4006e1cdbc5be9a8a3fdc840ac15ed565bd8af843d6f8140ec821ac6332c5767a69241bf59fb871bb7300c8a7d4e3185f6bcb1cd7d141cc3693bf62026291a04ace2f1a41a603d7931b2fb0172fc908cb62d007938a202d00c357cfa34a87b4b58eaeae83a1abbab3231052fec314b36ebf155cf001a7eefc0a84d33c70107010c951b57e597e9f654ffd79106c656baa6a5cdbf606fc3eb4e65355764e2402420dc0fe91e9c68b029f28923dc073bb9629083f9a91036430fcf9a4862bd779b"}, {0xc, 0x7, {0x1}}, {0xc, 0x8, {0x3, 0x3}}}}, @m_connmark={0x154, 0x1b, 0x0, 0x0, {{0xd}, {0xe4, 0x2, 0x0, 0x1, [@TCA_CONNMARK_PARMS={0x1c, 0x1, {{0x7, 0xfffffffb, 0x4, 0x5, 0x8}, 0x9}}, @TCA_CONNMARK_PARMS={0x1c, 0x1, {{0x1, 0x0, 0x3, 0x9, 0xc7}, 0x3}}, @TCA_CONNMARK_PARMS={0x1c, 0x1, {{0x7f7, 0x3, 0x20000000, 0x1ff, 0xffffffff}, 0xff39}}, @TCA_CONNMARK_PARMS={0x1c, 0x1, {{0x9, 0x1000, 0x2, 0x10000, 0xff}, 0x5}}, @TCA_CONNMARK_PARMS={0x1c, 0x1, {{0x30000, 0x7, 0x1, 0x1ff, 0x10001}, 0x9}}, @TCA_CONNMARK_PARMS={0x1c, 0x1, {{0x101, 0x7fff, 0xffffffffffffffff, 0x10001, 0x7}, 0x3}}, @TCA_CONNMARK_PARMS={0x1c, 0x1, {{0x6, 0x1f, 0x20000007, 0x8, 0x5}, 0x6}}, @TCA_CONNMARK_PARMS={0x1c, 0x1, {{0x10000, 0xcbc, 0x6, 0x5, 0xfff}, 0x400}}]}, {0x42, 0x6, "8b9e7dae5cadf8c52538add3fe195feb7867c5e60059f7a4fe3d0bebe6eeeb46c83152959767ddf16e399a7c89773d69505d6747a702dd4c4d241752bb6b"}, {0xc, 0x7, {0x0, 0x1}}, {0xc, 0x8, {0x2, 0x3}}}}, @m_ife={0x8c, 0x9, 0x0, 0x0, {{0x8}, {0x28, 0x2, 0x0, 0x1, [@TCA_IFE_SMAC={0xa}, @TCA_IFE_SMAC={0xa, 0x4, @link_local={0x1, 0x80, 0xc2, 0x0, 0x0, 0x2}}, @TCA_IFE_SMAC={0xa, 0x4, @remote}]}, {0x3e, 0x6, "2633f54cbdc6e4b7ce6326a5f399df0d276ca6a165227b11034632530b1cb1b939e46e0a9752b8dbde56dc0b185871ea2220ac1e58fe35202311"}, {0xc, 0x7, {0x0, 0x1}}, {0xc, 0x8, {0x2}}}}]}, {0x254, 0x1, [@m_sample={0x140, 0x14, 0x0, 0x0, {{0xb}, {0x3c, 0x2, 0x0, 0x1, [@TCA_SAMPLE_PSAMPLE_GROUP={0x8, 0x5, 0x60}, @TCA_SAMPLE_PARMS={0x18, 0x2, {0x397, 0x8b4, 0x10000000, 0x80, 0xe}}, @TCA_SAMPLE_RATE={0x8, 0x3, 0x7}, @TCA_SAMPLE_PSAMPLE_GROUP={0x8, 0x5, 0x7ff}, @TCA_SAMPLE_TRUNC_SIZE={0x8, 0x4, 0xe267}]}, {0xda, 0x6, "f7fe704f1956d82aceea7febdbafc87fb612aa080085346bb0d2377763ac23096b31d4149033961171052c1014d0c6f300af1813ead55604b185e3adbf4a803d630b6f0384e02168944736bd897f6e319cf0f157ab4c74d6c9f0793728e57c4890a51631ef6f7c5ebec1e864e9f496792a141060b4213716dcfe66bf1742fc985743e4a84e72d42900db56d71f2ee73f2215a1d4cb6e5cf654244015399aecca18737b481a624ad069aecf135f1a809d051561d00657056d5a3e0a69f40eb19e2ebef97821328189ea44cee35b8196a0c05c4347e2f3"}, {0xc}, {0xc, 0x8, {0x2, 0x2}}}}, @m_simple={0x110, 0x1a, 0x0, 0x0, {{0xb}, {0xc, 0x2, 0x0, 0x1, [@TCA_DEF_DATA={0x8, 0x3, 'red\x00'}]}, {0xdb, 0x6, "2277fad24caa11e5f1f46e062c5baeb5cdfd8070b2d8d7f1dc80bb28c4c097fac376004b315d2f25aeec424b3e8b688c6f5d5c8ae562fb19a2ebc032550dcbc6859b11059dcab0943c229dfe0bb0417a7ee3eb32d2b02327aafa0625c8f5ce4c6d6d3a77f37b7cdf609d144c5a91dad28a659efd5e6fed5745adfb5cf627149d03e5b6a348ba946daa7b8363fac5a537b5abef104ac68664cb1b84b4d7b8666617f55ef4e22079297742288d075d63672a2ed4b0a31165ce9289690de5687f17f3283980017790aeb7d88022907e4c91dbc1c8ebc6778c"}, {0xc, 0x7, {0x1}}, {0xc, 0x8, {0x1, 0x2}}}}]}]}, 0x52f4}, 0x1, 0x0, 0x0, 0x40001}, 0x20000000) (async) sendmsg$nl_route_sched(r0, &(0x7f00000007c0)={0x0, 0x0, &(0x7f0000000780)={&(0x7f0000000240)=@newqdisc={0x148, 0x24, 0x508, 0x0, 0x0, {0x0, 0x0, 0x0, r3, {}, {0xffff, 0xffff}}, [@qdisc_kind_options=@q_red={{0x8}, {0x11c, 0x2, [@TCA_RED_PARMS={0x14}, @TCA_RED_STAB={0x104, 0x2, "7d403c4bf8229f4db3efa53425d714ff7b07a0abc9f7f31ff7c73f7f86c7ac07442c742d329fb03c00edee086681318da1c5c346feefb2624231360c837c5fffa6e790bf0b340f7bf750b1f6819e520463521b6d660991a9fc275ae757cac75f74a875b489b6e113a1bc8658daf98919cd8aee0f3a614097638aed34f735bf498dfeade02ed6d2750c637153e30cc805073320a311650bb847ac313e61597f8153710737a20d3b7cc88ae0dfca6be45c51608e30f3fc3058ea249556c4947a1bccf5f589f7909ab4a871994fe5696dc18ac06380817e37e752dbba7fc36793787220225bf7dfbe9e86f706d44c17805b86ee411976772b47f886acd2211fd4f5"}]}}]}, 0x148}}, 0x0) 00:06:23 executing program 1: mkdirat(0xffffffffffffff9c, &(0x7f0000000000)='./file0\x00', 0xf0) mkdirat(0xffffffffffffff9c, &(0x7f0000000040)='./file0\x00', 0x142) mount(&(0x7f0000000240)=@loop={'/dev/loop', 0x0}, &(0x7f0000000280)='./file0\x00', &(0x7f00000002c0)='qnx6\x00', 0x0, 0x0) mkdirat(0xffffffffffffff9c, &(0x7f0000000000)='./file0\x00', 0xf0) (async) mkdirat(0xffffffffffffff9c, &(0x7f0000000040)='./file0\x00', 0x142) (async) mount(&(0x7f0000000240)=@loop={'/dev/loop', 0x0}, &(0x7f0000000280)='./file0\x00', &(0x7f00000002c0)='qnx6\x00', 0x0, 0x0) (async) 00:06:23 executing program 4: r0 = socket$nl_route(0x10, 0x3, 0x0) r1 = syz_open_dev$vcsn(&(0x7f00000036c0), 0x4, 0x200) sendmsg$nl_route(r1, &(0x7f00000035c0)={&(0x7f0000003700)={0x10, 0x0, 0x0, 0x1000}, 0xc, &(0x7f00000037c0)={&(0x7f0000003600)=@bridge_newvlan={0x54, 0x70, 0x200, 0x70bd2d, 0x25dfdbfd, {}, [@BRIDGE_VLANDB_ENTRY={0xc, 0x1, 0x0, 0x1, @BRIDGE_VLANDB_ENTRY_RANGE={0x6, 0x2, 0xa}}, @BRIDGE_VLANDB_ENTRY={0xc, 0x1, 0x0, 0x1, @BRIDGE_VLANDB_ENTRY_STATE={0x5, 0x3, 0x1}}, @BRIDGE_VLANDB_ENTRY={0xc, 0x1, 0x0, 0x1, @BRIDGE_VLANDB_ENTRY_INFO={0x8, 0x1, {0x3}}}, @BRIDGE_VLANDB_ENTRY={0xc, 0x1, 0x0, 0x1, @BRIDGE_VLANDB_ENTRY_STATE={0x5, 0x3, 0x3}}, @BRIDGE_VLANDB_ENTRY={0xc, 0x1, 0x0, 0x1, @BRIDGE_VLANDB_ENTRY_INFO={0x8, 0x1, {0x52, 0x3}}}]}, 0x54}}, 0xe010) r2 = socket(0x10, 0x2, 0x0) write(r2, &(0x7f0000000280)="1c0000001a009b8a140000003b9b301f00"/28, 0x32) sendmsg$nl_route(r0, &(0x7f0000000200)={0x0, 0x0, &(0x7f00000000c0)={&(0x7f0000000100)=@ipv6_newrule={0x24, 0x18, 0x409, 0x0, 0x0, {}, [@FIB_RULE_POLICY=@FRA_GOTO={0x8, 0x1e, 0x7}]}, 0x24}}, 0x0) [ 383.446428][T21560] netlink: 12 bytes leftover after parsing attributes in process `syz-executor.2'. [ 383.474342][T21572] I/O error, dev loop1, sector 16 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2 [ 383.476566][T21572] qnx6: unable to read the first superblock 00:06:23 executing program 4: r0 = socket$nl_route(0x10, 0x3, 0x0) r1 = syz_open_dev$vcsn(&(0x7f00000036c0), 0x4, 0x200) sendmsg$nl_route(r1, &(0x7f00000035c0)={&(0x7f0000003700)={0x10, 0x0, 0x0, 0x1000}, 0xc, &(0x7f00000037c0)={&(0x7f0000003600)=@bridge_newvlan={0x54, 0x70, 0x200, 0x70bd2d, 0x25dfdbfd, {}, [@BRIDGE_VLANDB_ENTRY={0xc, 0x1, 0x0, 0x1, @BRIDGE_VLANDB_ENTRY_RANGE={0x6, 0x2, 0xa}}, @BRIDGE_VLANDB_ENTRY={0xc, 0x1, 0x0, 0x1, @BRIDGE_VLANDB_ENTRY_STATE={0x5, 0x3, 0x1}}, @BRIDGE_VLANDB_ENTRY={0xc, 0x1, 0x0, 0x1, @BRIDGE_VLANDB_ENTRY_INFO={0x8, 0x1, {0x3}}}, @BRIDGE_VLANDB_ENTRY={0xc, 0x1, 0x0, 0x1, @BRIDGE_VLANDB_ENTRY_STATE={0x5, 0x3, 0x3}}, @BRIDGE_VLANDB_ENTRY={0xc, 0x1, 0x0, 0x1, @BRIDGE_VLANDB_ENTRY_INFO={0x8, 0x1, {0x52, 0x3}}}]}, 0x54}}, 0xe010) socket(0x10, 0x2, 0x0) sendmsg$nl_route(r0, &(0x7f0000000200)={0x0, 0x0, &(0x7f00000000c0)={&(0x7f0000000100)=@ipv6_newrule={0x24, 0x18, 0x409, 0x0, 0x0, {}, [@FIB_RULE_POLICY=@FRA_GOTO={0x8, 0x1e, 0x7}]}, 0x24}}, 0x0) [ 383.495269][T21572] I/O error, dev loop1, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2 00:06:23 executing program 2: r0 = socket(0x10, 0x3, 0x0) r1 = socket$nl_route(0x10, 0x3, 0x0) (async) r2 = socket(0x10, 0x803, 0x0) sendmsg$nl_route(r2, &(0x7f0000000580)={0x0, 0x0, &(0x7f0000000540)={0x0, 0x20}}, 0x0) (async) getsockname$packet(r2, &(0x7f0000000100)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @broadcast}, &(0x7f0000000200)=0x14) sendmsg$nl_route(r1, &(0x7f0000000000)={0x0, 0x0, &(0x7f0000000140)={&(0x7f0000000040)=ANY=[@ANYBLOB="3c0000001000010400cef7ffffffffffff000000", @ANYRES32=r3, @ANYBLOB="01000000010000001c0012000c000100627269646765"], 0x3c}}, 0x0) r4 = socket$can_j1939(0x1d, 0x2, 0x7) ioctl$ifreq_SIOCGIFINDEX_vcan(r4, 0x8933, &(0x7f0000000a00)={'vxcan1\x00', 0x0}) setsockopt$sock_int(r4, 0x1, 0x6, &(0x7f0000000000)=0x1, 0x4) (async) bind$can_j1939(r4, &(0x7f0000000240)={0x1d, r5}, 0x18) (async) ioctl$sock_SIOCGIFINDEX(r2, 0x8933, &(0x7f0000000400)={'tunl0\x00', 0x0}) ioctl$ifreq_SIOCGIFINDEX_team(r0, 0x8933, &(0x7f0000000440)={'team0\x00', 0x0}) r8 = socket$can_j1939(0x1d, 0x2, 0x7) ioctl$ifreq_SIOCGIFINDEX_vcan(r8, 0x8933, &(0x7f0000000a00)={'vxcan1\x00', 0x0}) setsockopt$sock_int(r8, 0x1, 0x6, &(0x7f0000000000)=0x1, 0x4) (async) bind$can_j1939(r8, &(0x7f0000000240)={0x1d, r9}, 0x18) (async) sendmmsg(r8, &(0x7f0000002340)=[{{0x0, 0x0, 0x0}}, {{&(0x7f0000000100)=@can, 0x80, 0x0}}], 0x2, 0x0) (async) r10 = openat$userio(0xffffffffffffff9c, &(0x7f0000000480), 0x200080, 0x0) sendmsg$nl_route_sched(r1, &(0x7f0000000500)={&(0x7f0000000080)={0x10, 0x0, 0x0, 0x10000}, 0xc, &(0x7f00000004c0)={&(0x7f0000000800)=@newtaction={0x52f4, 0x30, 0x8, 0x70bd2a, 0x25dfdbfc, {}, [{0x808, 0x1, [@m_sample={0xb4, 0xc, 0x0, 0x0, {{0xb}, {0x2c, 0x2, 0x0, 0x1, [@TCA_SAMPLE_TRUNC_SIZE={0x8, 0x4, 0xc11}, @TCA_SAMPLE_RATE={0x8, 0x3, 0x5}, @TCA_SAMPLE_PARMS={0x18, 0x2, {0x5, 0x4, 0x0, 0x3, 0x8001}}]}, {0x60, 0x6, "3e3ab8f2f8cfc74dae0f705d01999e7ca4f2db8628f9e3a24bdf3f2819521ab496b26160a809f532f5fc99daadb34ac8be88746dc13a27b2c1239a9758d446ebfa4bdc3c803a187ed9d01b6c7b20204e47913c6de9103e00ea79d881"}, {0xc, 0x7, {0x0, 0x1}}, {0xc, 0x8, {0x1, 0x1}}}}, @m_sample={0x110, 0x15, 0x0, 0x0, {{0xb}, {0xc, 0x2, 0x0, 0x1, [@TCA_SAMPLE_RATE={0x8, 0x3, 0xd7f4}]}, {0xda, 0x6, "e1e783c53aa31ab3ff39529fb89702e95790b78b10f324f253cbf3772822e3bb0fcfebc9c04ed3f1bbf44aea8b630243e4aa1de6a9b1b1f5f7534faa89d3a0a85bd8a32de7c9840c77861708994548e56a5f97f24bc85472572c4469cbb317db74aba3415a6d625944612a4f7a6629e3a134de01dfdc4e675da01e242bf92e71028786fb8fea06688c4a7064cff468dc5c106014859b3ddc7c26d91030616d85b5adc553776e04c673b454a87c72d8762a8ab56a9d76fca52741b1f9420de60096b3373b9185df3f2b0f0541042f92b1f466289b37da"}, {0xc, 0x7, {0x1}}, {0xc, 0x8, {0x0, 0x4}}}}, @m_nat={0x120, 0x8, 0x0, 0x0, {{0x8}, {0x2c, 0x2, 0x0, 0x1, [@TCA_NAT_PARMS={0x28, 0x1, {{0x80, 0x80000000, 0x7, 0x6, 0x80000001}, @loopback, @multicast1, 0xffffffff, 0x1}}]}, {0xcd, 0x6, "2935f669a926fe0fda65afb7c69b88f90b696fca4935bc74398efa9b96bf9fad2a506c451f7ebb85e5386724620115e3a238b334af077de8b7719796184429094d2b200e817419feb8f1ff16fc8b310ceb44e62b2ef0f972cbb17b90b4002275af8dd214038b249bfd495d5ad34d8dab9846f4815cdd11248d46cb80d0ee86c6d4ad3e7e65ad2370ca20e7e6888b4f09191bef80ae6aabdce558c63fbfcd8a56461b92a08bb80e3736258f4acf13dce60098d6b70068a75ef25c2f39c891345016c2818306047059bf"}, {0xc, 0x7, {0x1}}, {0xc, 0x8, {0x0, 0x3}}}}, @m_simple={0x140, 0x13, 0x0, 0x0, {{0xb}, {0x54, 0x2, 0x0, 0x1, [@TCA_DEF_PARMS={0x18, 0x2, {0x1, 0xccf, 0x7, 0x7, 0x3}}, @TCA_DEF_DATA={0x7, 0x3, '}\x0f\x00'}, @TCA_DEF_PARMS={0x18, 0x2, {0x8, 0x6, 0xffffffffffffffff, 0xbf, 0x2}}, @TCA_DEF_DATA={0x5, 0x3, '\x00'}, @TCA_DEF_DATA={0x8, 0x3, 'red\x00'}, @TCA_DEF_DATA={0x8, 0x3, 'red\x00'}]}, {0xc1, 0x6, "e03c397ad979cc13740d5433e1e8ecfabb05592b0b2469e4e2b3bdf2c59855000a9d21c6c6a9c53b69bb76231248f3292df1a0a9b427899aadc21cc58a6b2c5780788f9ed295a50a575a4dc6bb5c745caea7dc11f088039f12829fabe3987724dc14fd90119809cc7812ddfe1c09a354dc3535d7af80e332353e01a274d6aaae359a22c2c8c4e653bcfd85702d620591807634bea305981da261b6a82281548d710d7aabaca504b279ef18ac4efe09f7dcab349fc4be772f981fce9b5a"}, {0xc}, {0xc, 0x8, {0x1, 0x1}}}}, @m_xt={0x1ac, 0x8, 0x0, 0x0, {{0x7}, {0x11c, 0x2, 0x0, 0x1, [@TCA_IPT_HOOK={0x8, 0x2, 0x1}, @TCA_IPT_TARG={0xda, 0x6, {0xff, 'filter\x00', 0x8, 0x2, "b39c45bcdc404c2dab856f364db25a0d10a313d28f123c660124d8e79009a24b0616be07a93b8db43f4d2844af6037d300d3ba4d1b951f493b7314c3b3df7a99c3bea7f79656713daca7809845615786e70f4ee8300c012fc2aa67358b854cfc6c55ec388e30bd185e71daa235265097f8e2cb85e3dd50935b9ae2fa1f4a041a1cc78df27df0c59db5488c6ea4a93f19fcbc52fa83a920242101eccdda3bbeadec31c9840881ec64290de2520b9761e2"}}, @TCA_IPT_HOOK={0x8, 0x2, 0x5}, @TCA_IPT_INDEX={0x8, 0x3, 0x401}, @TCA_IPT_TABLE={0x24, 0x1, 'filter\x00'}]}, {0x6b, 0x6, "f8790617b821944b86d2ee420e2edcc8464bd73f68c2918fb7e7c9314ac71618f4b12d66ab651099d5336d4b99bb1dff73710acb3c4aacd771fb50abc2caef2fff0d1557f08c0b98e40f3a18d73243e205d010b1d01933677359e47bd4b83a82b5bfc4f9d4065e"}, {0xc, 0x7, {0x0, 0x1}}, {0xc, 0x8, {0x51673037c0322d0b, 0x1}}}}, @m_csum={0x174, 0x8, 0x0, 0x0, {{0x9}, {0xac, 0x2, 0x0, 0x1, [@TCA_CSUM_PARMS={0x1c, 0x1, {{0x4e, 0x7fff, 0x0, 0x1, 0x8}, 0x1}}, @TCA_CSUM_PARMS={0x1c, 0x1, {{0x61d, 0xfe31, 0x20000000, 0x10001, 0xffffffff}, 0xa}}, @TCA_CSUM_PARMS={0x1c, 0x1, {{0x6, 0x7, 0x1, 0x1, 0x7131}, 0x48}}, @TCA_CSUM_PARMS={0x1c, 0x1, {{0x5c, 0x0, 0x8, 0xfff, 0xffffffff}, 0x3e}}, @TCA_CSUM_PARMS={0x1c, 0x1, {{0x81, 0x9, 0x0, 0x2, 0x7}, 0x2a}}, @TCA_CSUM_PARMS={0x1c, 0x1, {{0x3, 0x122, 0x4, 0x80000001, 0x9}, 0x72}}]}, {0x9e, 0x6, "ec5aee22648fec88b47e1c2782e233e75dcdacbf66e508eeed80491291c92b60d5479542bb6f177966c3bf1c437ba86268e7e59f4490dfc86910a9975646b549c802eafe54bc86ded9e84f90121ce5adec61826a35e7a9b6aba9bb700f197369687dfa1d77bb9539d1a393b945bc733c5b54a1ac7008578c36b790d5874c9c92318104f86acf9036191acf3e58e3b435d01b3e03f9759518d4d2"}, {0xc}, {0xc, 0x8, {0x1, 0x2}}}}, @m_xt={0xc0, 0x17, 0x0, 0x0, {{0x7}, {0x14, 0x2, 0x0, 0x1, [@TCA_IPT_HOOK={0x8, 0x2, 0x1}, @TCA_IPT_INDEX={0x8, 0x3, 0x4a2}]}, {0x88, 0x6, "42133346d08d6eb78624ea97cf4dbfe3696c0ac4710e6c62203b7b6a85c799d7de156ccd5aa687dd818e5ffabe4959722fbaa4e2ad786f8a561508fc03d73a9e9c610f700f606d74ff511c497775903576e31cbb4d63b9577e1395882e0a7d9eb4db955d08b6c64f97b427bbb43d873d8a4366a651ba58ce0f029aed80d3837797072af5"}, {0xc, 0x7, {0x0, 0x1}}, {0xc, 0x8, {0x3, 0x3}}}}]}, {0x3364, 0x1, [@m_ipt={0x10a4, 0xf, 0x0, 0x0, {{0x8}, {0x7c, 0x2, 0x0, 0x1, [@TCA_IPT_TARG={0x75, 0x6, {0x5, 'nat\x00', 0x11, 0x8f, "22f8b126e936c1a7b34876307cf93b834d04f8b01cb6250a5ae2be392b9f10c477d621c21c1e65e874e58695ea349087ca20820b5f1d71496cfd0f3c2fec9f69d3da9bc080246ad8d6f8d1"}}]}, {0x1004, 0x6, "cf427537225112739797bf8dcb4aab33af119dbde01302440bef486685024c11435bd1980ac9194b4a2aa1994d6d88538bf9dde86ddcde376bf676a0d8f9354fc8ef4c2a1a553c2068a5d7dcc06a7071a0345311213ed6feef1a3792644ca2f8dd718b4baad234aa81737d7c764abee04993a6620ac297468e5c494719e1cd0519ed87b38fb9467f8bca7fc8025c62322332da4dff254617e2b682b3c1c7b6db44867ae98639edf9e577861e04142d96c7469b9a4bda03d0564134c43098be8ae2a7ed2f2b77437e904b4c389466013ac9cb5aba1e7ff0fa920b811a826c8ee01d584c36d9643275ef27e5ee88399d9e150f2155f5b722ee78f1890de7e39909dd31730e0a276a96512e2d5bb6545e14e514d4f754073b91b95bd42146be52d2f84e6b83db831f74ac08ee4debc815805714e83f4f91ee03e31a77607db7da9318fc08494b8e1859a2f1be0f77b60fa21d2395d4089ce49c1b27ee304fef2515544eacc29b7753dffaf2f2723101aeb169ecd2f8c0a92450f4f8e90eb1ed2ddb9c96f75fba89d62ccfbc67c7e6cebd636321a34e03276d6d3a400806058c9fc9d975ec321c0f27e005638a052a58cfe0d14d75dd07b8549db745aa553483f5d9578a0bce52c9fe4f700604cfdceceaa92797e3ebefcc2925adc83a8bb51a9ed291ac9698587fb7fec1d5bd2e5ef4479760e967cb8e9a79066854e73da9e2a58e9803ebf30139d7ab91679bd52fdf95c0f314f31ac2529e9b134b6ab1a9bb4d0e309c39df5237c674bc596c99991cdf15ee17b353f7c10ab45fe09875170b4b21df748531ac4da02a33cfb9e03457529a133d67e020445fc6311d4c7c3305a9dee5925ab7251a107c33dab5ba7bfa22d427f10b8cd69ebb5fce435978747e13f20d3a85dcc2d9f56e7b9591367c3a40b9d5797f653b98c04223455c3fc11c1d8652af4cbea33f47d613121dc87176fe40fd2d860e71f30d17fb3cf6ef52cd51ac525c981fb03c62d51135c120a0f2633e6dfeed1690ea108cacba4e1eb1aaf10396ae4b72a4354cb4f02d903ce7184dc2046bfa96be9e969ab543897ef614d08c1ddad3ee057b945e7dee72ec52d6796cd4349e36cd050a2eedc52ccc6ded6a7768e0431e9105d02ee65f83fe18aaf516da8a56585f433259803e73ef0527fdfd6d3b4d8db82a36f9dc44ce21afb4aa603001ca7be9ce3b191cbddda1c4cd6130cb864b71078bdbb1f55e7802d191198ef3b98aaebf60abc9d808fcfb78cdcd1b229274e710f5126768bd9045418afe6a06f57ad56eb0ddd889f3f50eee56cd59b5ddc3cbf354f16333e254d4f6d1be3aa9e883545b88db63fd02436cb8968c528ea9f02185c5d2080aeeaf28f1007ebb99245458c8d58c56cdfa44730dcdceffd5645da79f6716e048138234ec6f0d54253afc4e9912a387f5f93496c987e12737f19e17a6e67f9bfe4049b3d7c5f5a2d992b8daa659184ca32744a66f47b0d1f7e002f100cc547a34f19508b85797910e4bcc33ebbb2b7ef621eb3919b67d86c27023aed71641f32f3d6dd2e34dbe5de7d506db2831319e4ec3827703544243641bf5cbb5c07acd80b7920c81598d5444bea10ec3a526eefc5f1022bd1ea0492a2d98dce585d5682244a1951858e2bb32d6e56ca81aaa71480033a7518cabdedf8c2726230edb10a842d42a6641f1e1961cbee40f521a2280805f88d99fafa4cd039fa86f6b040e3db2bcbe66db6bb3439a36c6bf4025a14b646623a604f28cf51e011731bd4408eb5f31c0ae4e86a37954c9993f60a93a25a553435009f5600471f9a08ee1e8b79912c2a50cc7c8de54bdff100ab3fd7bd8f42f9b80297148fe71b26916092e2a826448e499d2861dcfe4f793db11590035820f46b3aa5b2e405abe7069386f1bab865dd352677882f2bd07e24d6db1f637b8bc63e6b4d9dc37bac40b57bc8fae8cc0b0d44e7dc117770252c3d1bfee6792ac8300faebd1f63588dd331394d40d4e805e28ccb2357ad48185f71f17de56a69634a7bd155550f780639e96de1386b61721e25bfbecdcdfa90710f45e27f7cd85e398f7c771bc67e28dc66fea030f81f982301af32da35d57b25f091a34dc173aae358b34f68e45b88247bcd2a88d5edba9a7ada46ff9816ff36fc70e95cdfbe16d1f177ba73c813d20bced30c3dd1c7a7a4a140f449e4887c654286944e6badc7f7a3c9919568844de84d5ddbc0769871c219bffe40a6d53c97a3ea35ffc24c6d856b268d25b812c8b96faf2f1a214b7b6fbb5c1ff81683da958830dbf6515df1c265a348eb07391d4adc8cd09af36806c9328dc56b26ff0956b646f0933d6d0671f1cff4eb8f87af3538f2539235828b53c58917de04101bbc9ee3f13ca2e39ba78de4a39f8ebf8305c0e610b0e93136818f47b723c25fd5b8bcfc77d614a388f25379e3e50f8d475bdd16e2ca8af609165f2851bb67b09f0516c95d9006f911b404fba3c58d0f63397e4df835721b8cfc68d6eef29642b242a616643f08d9182fa3359824f85a995167ea31f3d0fcf0bd360085c3e593f212f0f0753435d7c0253e9c4b311a2e83035bf2d788299769ae655a74c5cf1bf0b9ec5fa7e076cd0abc2268e8cd9296e6afb3882ab4b5b558686a4380b4cb04bc6cbf6a42c164768fb0705ab2203f362dd373a6cc45977d78529ed2212e36d73a1df61c648e1a3661cedbc9a2555232159ab7493998b981eb501f1a31c1e9cef0dcf64e8266fa5686e69e6b4bfbd3aff7224025e5abe518b0c0cdf57cc2cb5f3da7ec9bf5743c650764fcccd58aaf7e909b2485f760922fa0ddda2f8b5b6534b97467cbfd5bf5533618b50c37b503e593d04e540a22881cdbae8f3843511d955ed53afc33529ed55608ddce2bee7a9c8c9bb0975edf908af74def6203662f98dba8a75a59aedc3f368039bd2c5c420e705901a1317d53de0ad1d461767106854473a50f4098fbc47ab261a4c3591157306c7706e87dce21577596796870d491dde320ace4fa72cc9749d024c758d89d008b3fcba814990c1b20f164a4a6a8ab9b606a07e527e35f651c2c207799b284cf876bc1dceb269c088b7eda1a492a8ed9c974fd490be5170756769c4ff9e4b288508c1568a3b265c64242be53528fae357f531c1c3709e6eb267406d0840bd8aa0a34bd36e8ec333e49f2c2380c79a8c556d2251934dda8a192addf1b0ae30479e276cb6e32ee70a6fb91dcda4bd52fa232b43f80ad0613b4598322c7d210909b1fbb4bad1c93d566d54094e1fe4e40554998386d7373297d4ab7c34712e366e4a8bf8a14e4a4d54585b89b68940ce11387126f41486665820fcd7836f37069cec2c19d34b2b488c0e399409759abd399e682eb45f156e6510abb2e9e50cb7de335cd52a0c5f76389dd5a55f8acfccaa0017bb4ffddec693159bd4c95bec53baee76331901ebf5cfdca7690f636b5b33ebbe713a243a821582ae46797ace0113e9d41afa1fec13d8f7199f7510afea11f37cacee6cd2a322636acf4de8288ad71b9161f61a3a472497a08a535075b45f69016994b512f5e020a1395178a4e9f437c901bcdd2b6c8f8c0bcdfa0f4d9d3e160310932589965574566ddc8bdebdc41f258a9eb75b5c6e4824f0ff583214e4887bba0cfd9819b4a53a2261f916ceedb89cf8fa90fa32407577a432eac479ceb5c64bce61a37daee0a91e0407c89a0b151eb2c91c9554204013810d95498cf4f09bf04ffd3881a819eb1b53f11f6286f5a7dd1bae67c5e24306cce84cde997269a9027017cf53df3b38a86b23abb6d23b1b2bd3253bbe73b05cb33bdac4419bf53e6a3da9be33a1f6f6f39fa179de62fb5b2cf917074ffa6eea45cd87c3ebdf45f4a369a14cb58876f96615029a80f2c5f0362e37fd9456327ab419b873e140debb10b375503199e65aa704ef78c2acd6251f37461ed27d970d42dee32192858b879d917a2e9ce1f6f5cfcc995a752346d7599bce4ce5fa7a9f3ca30585c214b951e74d0e56c90fd68992f83f16bcb487d34e299bc1cbfd53d15da22994a2235bdbee8b476b844c6a526855e01a0b18f6217c2ffc48aeed68fd77c2c259c2bd375817bc9a7ed199b9733fff2e9f533ef0a556c1193a8eeefd22393b38d525b61f792eb453e0fe9a8ec03a3d17824de4fe614b51ba6524ab3ac4ef31abf2bcef44610f3f5a8b93df7088e02373e1612dc70f11b568f24a42da8a00693a5eb27dca29108c0e856d5fa621d42ada3fa21f3c1b1eafc91884535e1c58f1e4cf45810a8140340dfd91a9f2064310060c2ed0b611d5129f6a200e40506a0b6f4aacae6a475f4471c934552cde87bcace4347b5aa581bd7e8e0693fb966be07c836b69a0f3c5c66d726e496449ed25cb8f5ddda61b470188557a61af60dce36ef37525b6f067033b91a1eb9f8d23d6461288daed5d97cbb7b3fb1057374c78a27e59221b06b4a2b8929e2344d5da02a17f1de2e3c1f6cf18f6ec19beaa7298314283dbb9abb2545a32ef34291f84335106c3dd531873bfae8521741132f22501915102aa492facf43813045458c9f7f946fdd10ef62b2cd4aeacd4f2f296756cffd552c8b75e0eede99b642df6def1899de5a825a744bef3d367b166720a200974b10bc83f8b357f1cf7c08c06877c9d9ba2809c3654656fcc714206a5411ed447a7230e204e7ed0d20c160434f00b844eaca70a9740764bc1c3a33f71ac0e8098c47a6ffe0f230933177c8d61ac6e7afc763159d722fdc402c8a0c31863a698add03b99b7cebd52baee61bc5764cb5c31a04b4bd528ae220d0e39f9e16b07f7d89813618aef12fa5394f1062704e5d218a29ff974a183ef9e8d18c28179df876494d733ca0f0425e205c2a250a3b2afeef70aae07d44e162530430687c2aec7f32a1fb842a3bb2a33d18bc67a87d2400da9472427792bf4a3267b02cb1b8b50bc04352a26b3c5aaa647664732f1c415bf3ec6f71f7977497cd89887673116c7ae540521535c979ff26ef571a0af22a35658af6d1390469aa3c831847c38336e598be7e2ac75aef103abe1cbe7c8b5ff36756f3220d5b7701b15e7a1059d2a6a37cb77d11a234ffbb9216ac4139c864d22b701958daed83c8e877599e553913ec07e80b2990b2ffb55abbaa707296ab2c77d874d6eca6e2872c82fb12762d41608df0b92aa19997856623b18809d18eb2c54f3b9e3486da101e79088720880693e824293bf3a0ff55de8f262b0a6446fe5413af27bcc985aa044b5237f3312a62414aefb160a0fdfb710cfd0295d09c14fce177c500e5b6e254429c313f22a51992fc54dd9c931be92c66b51ddcebd0b6e9fe7f720f5ccbb96bf0611bacb2307989bf771aa73d3aa39b101b80b9a821d8b8ca71d95130a1dc0667f2863c6b1b3f45903f99cbf857faea81c8a4e7332796c2b9ade0dd84a5d9ed79dd3615c35b5d5883e27912fc3a00b7f42dd7ff626c74fdff11e16d81723636a87dccf34a5fbfe2e7f4021c32df5344e147b2062f02de0401ab707ff7bfb6c98b260e925fdb259ea8ca79ced9a413488cc63a132e623c3b0e9a2d321655b3bf9a2adc48f1eb0b0a6c4f2c80751a1b87e74f234e0837ddf6fdc19b5bdff11befeac0bc5563ff23f21dbf2c1391e524902010c884b904346705f8323c52c1deef10ab03c3055e259622fa26c6308af03174a51c8f9c442f3392939ef5cb8cf4baa89eccbbd56219f45d3b206251baec1596256b56c7a11ffa34afe45f889f9db7cb7887ab9617647aa45eac1503d3eef4c2df9af3606be5d"}, {0xc}, {0xc, 0x8, {0x1, 0x2}}}}, @m_mirred={0x200, 0xa, 0x0, 0x0, {{0xb}, {0x104, 0x2, 0x0, 0x1, [@TCA_MIRRED_PARMS={0x20, 0x2, {{0x3f, 0x2, 0x3, 0x1, 0x8}, 0x2}}, @TCA_MIRRED_PARMS={0x20, 0x2, {{0x400, 0xfff, 0x1000000d, 0x8, 0xffffffff}, 0x2, r3}}, @TCA_MIRRED_PARMS={0x20, 0x2, {{0xfff, 0x1, 0x8, 0x4, 0x9}, 0x2}}, @TCA_MIRRED_PARMS={0x20, 0x2, {{0x80000001, 0x2, 0x2, 0x20, 0x1000}, 0x4}}, @TCA_MIRRED_PARMS={0x20, 0x2, {{0x6, 0x3, 0x0, 0x2, 0x79}, 0x1}}, @TCA_MIRRED_PARMS={0x20, 0x2, {{0x8, 0x8, 0x20000000, 0x3, 0x100}, 0x1, r5}}, @TCA_MIRRED_PARMS={0x20, 0x2, {{0x9, 0x7fffffff, 0x10000000, 0x2, 0x200}, 0x1, r6}}, @TCA_MIRRED_PARMS={0x20, 0x2, {{0x80, 0xffff, 0x20000000, 0x3, 0x7fffffff}, 0x3, r7}}]}, {0xd2, 0x6, "a0b50c42fe3ab0d73c20b6a22e3284793289b05a93c6a45ac4331da2bb5bfd62910fc9ee28992dc49a1acf1e8ce7e3bdc75d5e37134bdfb07ddd2dd0ff85aa260f0fddc51647c7d63df628bc5f3dd897e51949d9abf0230d09ccd47d9d174ba8dbd1ade0b31f3260ca30005f8d019c89da2d0356142df51022df94d191207e3a8f172c7a8a80ee36e6e063cf0ebf175298d960cbebcd6dce0798b185b677186911990156acaf13f9225daf4d2f8a74eb338ff4fc79e1e27a9183d0d5bb83e546749cae3488fb77d77bb9a522f253"}, {0xc, 0x7, {0x0, 0x1}}, {0xc, 0x8, {0x1, 0x2}}}}, @m_bpf={0x128, 0x1, 0x0, 0x0, {{0x8}, {0x1c, 0x2, 0x0, 0x1, [@TCA_ACT_BPF_FD={0x8, 0x5, r8}, @TCA_ACT_BPF_FD={0x8, 0x5, r10}, @TCA_ACT_BPF_FD={0x8, 0x5, r1}]}, {0xe6, 0x6, "cccdf4dcd4a53f198222516797dbf2c0f29fe38655a8bf9f9953aa83071b92d20eaee55f61a8b5be6305bfb1a29a34e6cc2f331b55007eb4b4a7f472ac6fea6292b10dae0075537697cba825b8b09c2c621b0606f8a730a85417d54b691012da341ea12547fcef54a2ec1475853ed31e3e4cd91f43ba3a49c402b18f98f5ad8459283f46a3626a25e7e39df84f8652db906451ad9e8b877a74bea669b92aff51ce4db14b97c5d24aa63f6ac695ae3d32cd58bcf956faf7b027d511122c2c9a2dab470ba3024e3f39e45bbffc22b4861bc06963e1e3d90f1d09a8fccda8c985cb57ce"}, {0xc}, {0xc, 0x8, {0x2, 0x2}}}}, @m_mirred={0x1070, 0x1b, 0x0, 0x0, {{0xb}, {0x44, 0x2, 0x0, 0x1, [@TCA_MIRRED_PARMS={0x20, 0x2, {{0x2, 0xffff, 0x20000000, 0x7fffffff, 0x9}, 0x4, r3}}, @TCA_MIRRED_PARMS={0x20, 0x2, {{0x7fffffff, 0x200, 0x1, 0x9, 0x3}, 0x3}}]}, {0x1004, 0x6, "a63cefefe9e97e0eba03e4e4abe729ad811ecbd24466785b9938bd13ec4887ec37db75ea77b161c0b7fcccd7355e269e6d916e9ad17221fd6192c83bf1f6b2538de926a47fb258e059520940df5f68e7aac845ee43eb461b08ac8c4c80873770db23000eae522c8db2c9f38f511d6da58140427310c341abf2050e1da8902332835121a59293ca7583f97e170865bae813edd914b78a34b7d69d0d0aaa70f327a36d363fd01bfb180851c2edda31b749a425c4d43fca78c6a829867333c2417be03abb9c8ac097f0b8bd60cabebb7114f059129ff34ea9acb2346f0de3b1a3d0cc1681228bdf3fb91d8bc4de404995572e7725fdbe3d7aef0672f67857b11eff9e280629f20855ccd796b4249024e8d777812eb0e188cd056363c2847dfe92acb59db09de1f24cd7bd42ee7b77f107388fd10f5bb6a6e57d15b77a818cdc53984bdc7bd12d8380d0fed6e63fd3bc9fd80c3e8652079ab95ed90082b195f634b451bbda1f22618d6c63049ce0ef6d9badf619f61f4dfb2c4cd06d033c5454cefc3d76edc7cd3903884f547033058c2d1c8109a3fd36f7e478130f80f88cc70b23a23eed2be2053c804f9b6f58b1e9dab9bc52ab680d29d8f56f02487214af43c976d0c0f27f86d61bc9f769bf588e813d9e95c0d65cf32378d391cc7dd467b83ebdbadfdef7c29a407495be9cb5d9de7cb70ad5829f7376589120ebecae0d15aec717d58b86e2d88f606a88a0afa7896fdc51b32eb567381bfaf468410e0363895ccbd308e70430328734477174cf55580c9ee62ebee29ec31f390d58322afe25ba55d6cc881c5316188f153e30d29843dc9203b7311c8671450ae4e8d6439c4615fb2d6f3c86a87461bee42d98bfa4b6d21c8e1f869bbd26a520188829765ad2886b046dd0aebbe3489d44389a7af23b8dac11bf3aef37641b1890612ab7e0bb06a8ae22b08ed83dca1c506057f4aeb6ebe72c30172921442ddbe8f0dfe85ab6dcbd615aba3ab68abe63919a908255c409b844d0b6c132c821d71412507bc1048ec03b53692768a77251a9d5e38e50cc2b97ce97692b7a70de81a0680ca80182eaee4aa59d9a8c7ea9530dc61e6556b9d48ceb1456ffa980b8e7ddbc62f0236aaa97ed3def4c57f1d85abf27fd801853e36e6bc75791b0e367f7412a2317a0226f8dc0710efe9cbc4ee4184ea1c7812c9ddf539409020c59880e076def4fd2376be2bcf6c087e95d07f92e750dbe1a14c843ab0ff7098b0cd72442622c2b6b5a5382ba6f11d2727a69939b8f7930afeaa398c7bb14b52cd09bc31ed115ee123d18097d3e43babf353b0157641dca90ecf98cfab5bd69ecb13e4dcee5578ba9ff71c6074f92a4958449c9bcd75e7a9550cfd3dcae55e78686f7c19fe6ee5e7e923bf780110ab949821d910b199e7d98420e32bd714b4e9f7cb7f249359ceeb2f20a18c2b19da5abca0b4eda5252e762bed4965657cf758ffc80f2c62275622fcc89957f6b9b2c1b727822a7354ae42dc1006a6d4a3113c42a82a5d8938eb5bed50ec24d6289f1d224782593f6040194582d450f5fe584562ddd3ad1c65bb6764944726bda77e1926dc311aeb61479beae891e10715df8a2e3526f3b3d79704776e09b4c9313283c13401f96b631828378f839b17952b09692b477ebcdba7756693f7a644fd767cc4460b1014fa3ae31eecf1bc1ae5ac92b043f20e92da7ba10a5e726fb363b66de4e70227b67a4fc427b1cffe58dea4fcb3ba56251e54eb84d1ebcd441ad5d10cbcf243cf93960e09a0c3f4db7ba01411e649aaef336d17e389eebbc546eff238b6a980753a12a4ba59dd93749dadabeead8a6f33eb93bac9d3f7b35f0119185004d5f128d56a4ca273885ce66352dcef53c4a8c34f7b10be8bc813bbed7719aba367c2c7bbb22de82ea6cdd5ab68e0461b0a6198ea09f05837e4677eaacfa71020080eb00ef2bb26f4bd53087c1d921624a54a1cd11a738e36945775cffbeb4e97a3d119638bd91c32ae54b62a324c40ba30b8149b9ced2a5f305b9abbf77ee6ce476ccc58d953ba4f349930e6e52e4c15453681ef19e76e59cd18c118136432633fe6e96f6ecc2ced8e99336f340c772b573b385a792105695fed76ff6605dca34cf41f2ca16fda2f0b7848f556389e16692420d0f27731eb316bc8bfa75c0765a66f2121001626b322ae57212d8ebd5c9b866ecaa2dd34b1664e187db7e704334a162cb9c34d0fd6d1358e345f9180cf70efef87bb5235d633006e070ef765012ce56a6d3754a4ef7ee3fac092511167229c66117aad4d18c032f8ef75c39ce6dff806be08702c458149dceba22896d83f3460d76525a7ff9e0549b22eef493da6dfbd618f5d5fae3d3b3c18e1283df6c2015a525ed7c67d2ed33aeec95f7e884c99e784ebb632ad23814189043ce1b4a1f479221440b85e966b46d864fe4518466021e336a5d246fbbe1fe6f7ad82678a239ac0f673439af743627491b7cdbb3d4096ab72a16884fcfaf51c1a6f6ef7facba0fac426d67e26a1bd367bc2fce42179492b1bd5961edced76be5c4a0c5b67b5020b9cb12075359261bae78b63a45ec33cd90a66f4f67164a6f712b4aace997f248195581efb94254054156c4e731340838595c4f309cb0e7c0e1b10edbebc1c18d7752aee839b443aeab2db07bae797c678c634f72abc34d0a69b6461274613e39a68d25413f8e05af5f4023d7cc96809db241799305c7468ac9f1e331de67a2f28823de917c1e928b3328cdba5c989bd0c7046f67d4af48ea3cf0f6a78e9d573f18543ee1704923c1130246cf9b352037bed4b3565b19ed7646a7b22fa5253413c66b4dc66ae618e1bc236453648a397169a02b5e1ffbd6da4c0e2620e6341ec23889cf098d087a6fc8af13db664b7148a4e8e761b0757989264b7d8422aa36853027a3f5327ae058a129ead3c42411470c7c9aebf1e68f195c75eb6baef972db60a0fd044d3f8541cfcff57e7b2a89bd5f17f772a63ed1a968ca372a7a73411760cc7a0346593be236a2286842ddd3d28ed9bde0131e26568697027a331565279460ae65d68c4a2888d9fa7bb3d72cdb6e778b935498724aa8774c1ae5ca8efc52d69edcc40ba7b7794041f6ff340d7567d272d580bcca9bb0443e3fe322fab37a9bd5fc6b043d404676bf64a70f0838c71a1897f60e18dde49c6fc9c2e14396891953ad37b0b410643b3a8d9ca0fc4c089b66309a1ea8a6f43f02d073792f5f5fe607fd4c52a9c36f43f6aaea85ad6c7d9cb3a142a2210bb397ca5efbadde938cb06dd0c765e2ffd90b9c02ea24c969f08d4c12b114784fd279506376fed020ae40b5495f280ed834d9519e40b763290576294cd3fd9047e8c6be742a363936ffcc7edadcc2123966989979420f05f3d4b92e68d11dc421a6d668dee492fe8d9da0e11039393ad5cf3dd2486767e3f6ce04b0167c21fbbc53d285e312a61f4530ef6645d5a99eb3a16c5f7e4eee02e859a2063b8cabcc8968871b2db7c0c184c715baac89c46a75c861c0edb9608a8716c90d81c0b80ea6f78d8834c5e549aec6ed5c5825fcbd771d07733b5f427ef5d703ac59757e3a7e01486c19f43f938570e72ce24f2ca9dbcec2f95f690e4af763cf4edcac953ce6b366eb854841c5c5c1bc7e24eb6664340df96665931be59d674007c9e9b5db29a78c3b42281e378fd53d53b6f8c9f5347336cdb4eeb0703ac1d99fd44536025ae65bfa38d35e799cb2d480b7544e6d58f6fca224c09c7ede1ee62d2f4f564c3884e41cbb247894361a77af60e2b275654a91aa2c03f5d90a09388bd3f7c852974abaa98041d9424397cb08fd550163cb8c4951010d9b637e5d28620d83a752067ed997daf2900562b4d3a54c95c78e022b90f05e0b8b93505e85f5cdcbb01af10dcbdbf4021f871fe8c42fe40d0be09780f1083c0bf1c0b7265180b1f0974766ef6a225906ee3fd1cb76df70641d35b4be433f6b4d01b4fa57e2bcad9e19c7591f0d02dd8263c2c59239cbb9e0e9d5825d73ca9295507a8ce0d9547532034349d17dc32847d7b26fb6bbee3e799ec54064e119d8e3256b402a3b6eedd5a070ea737507402e1d10cf21c8d6ec27eef9729ddd06e4be80cbf7386576c25a755a20efc05a9dd29f300b8e8cb7f4953256264421e607dfede184c3678a60755a0148df9bf5212bd415874abf82ebfb05a187709c59e937a40248b9c017dcfbe5484b924bbe7c3747d2634bdb023fd095e0b99f1753d9e9f783da1be23c766959e835d9936fd4f0091831f13f952f070685e92edf13435be615552398daab0609c8346906d41be32b37f1a78c96565a8e4be8d34fe8714709d69873d2b26b1c30a69d3bd971f72c0f867c10128e4672098f90bbdffabb3d0cebd88fa0bb8c71ee90cc10e5a79078deff40793c317971f07b615144b9226ac6cd8972621463bcb31cc789d1fb0d1777aadb27571ebd1a7e7b3eac6dd5714f7814739f6fa5828163d5add989634f2683458cb4b6896228bfaa681a5526eeb9b83c984b9556a0aa705cfdb27f640f25177cb7c2171e822a6b8f747fac50e3d29b0fd661ea94c722fe6088e36ad42c47b140b41d39786c2b683e3f48356f7e19b525f14a780b52951ccd659dbbd377517e2e9e52ca431f29debf33c684c072c9c91322697d128df7599dd0a4d75f551d9e29ad212c9530ad69d5547ebb07e2b747a99519099a19fdad95c9c16a29da024d6b8b6b181e4733ab33d22e2c377c82bf5fe40106e05af78dfb9c5b97d4fddac42cd39dbe85c897528510be1922b28238952592faed2111b8566acc749ebf11a997990052d37981f268da0bc93c480fcb7202bee405bdd7e1d89b4cae4a57d5123da7ad6b28856c57e63220a41bf89fa00f2565082bbc656c087be6dd7e6dc56b28f25439d4cf3e6fb1c1dfcc5748359157a6f23105f3239a5503ea86ed7e00e26a309f37d6bbb61b70fe66ea4f92ac13a8791a94fcd2e286892e00a2d3421d4ac0b47d016da085eb42118784c2b2643302f205dc2bb8792a279ecebba5eb46df515ee1eb680e9399e10e6dfdc196fa1fe7e36e38099015f6b4679f3c383e2a89abf4711c486aafde6634e0144312d28527876da88f87a11be00c659d0028869bf051239735e7607c77297b6fda2fe4f01a506b786a8bd25f87ef16933406deba2a3db2295048b05ca02abab5e5e6c8e8420a6bb2beefa92890a3b47cc16958954882154d2a77c66672937b47698764c0eacd4768f79a74fc24f718c83493d69fe1896297829cade1ce59c09f00e93393f59b55689d91835b373b92dad96ebfe06c7ffd10ee1f729fd90270bff83df715560aa045ba571f8bc94987c9397516f19f5d2fa4f625918cefa38426918cfb59e20c4ad3a11711e2e8f591eb93e8cae0eac509245f5623099fa64a1f9f778655b6b24876b38a0cf321c479412908473bd4041de6a535f95436fc9d0fba51f3507af56d7c6fde867c4403f0b38b959001247952b1c7b866604fa790260fcaf29abe5ace36252d41fd4d1b01dac5f7ce0d9d3b7d01a818f4a7b405ab1d76eb4d874f43464c424ef545256194e38fe7333473ad2289faf19addfabed0ecf94429b8794a88f6a72104c103ce2b4f44444c9093888bcc318eecfa0de2103b7bb6cc6cc4738450b89355044c9acd5e5e1193cb2cf6ed28e21e83eb354205ce22e83a31e22b6302cec6014b3a25b0bb16cd4f35bc0375c8ca27af06beeaeea3c2d815261704655b615c929908d581029457f8234c36451fa3e087"}, {0xc}, {0xc, 0x8, {0x2, 0x1}}}}, @m_pedit={0xf24, 0x3, 0x0, 0x0, {{0xa}, {0xe9c, 0x2, 0x0, 0x1, [@TCA_PEDIT_PARMS_EX={0xe98, 0x4, {{{0x2, 0x401, 0x10000000, 0x800, 0xffffffff}, 0x8, 0x2, [{0x800, 0x4, 0x0, 0x1, 0xffff, 0x6}, {0x8, 0x5, 0x1, 0xe69, 0x5, 0x2}, {0x2, 0x100, 0xaa, 0x4, 0x3, 0x6}, {0x5b5, 0xd070, 0x7, 0x40, 0x80000001, 0x8}, {0x80000000, 0x169, 0x0, 0x7, 0x1, 0x4}]}, [{0x10001, 0x0, 0x9bf0, 0x200, 0x800, 0x9e9}, {0x7, 0x100, 0x5, 0x0, 0x20, 0xfffffffe}, {0x80, 0x4, 0x2, 0x9, 0x2, 0x8}, {0x40, 0x4, 0x81, 0x0, 0x569, 0x9}, {0x2, 0x6b, 0x2, 0x8000, 0x4, 0x9}, {0x5, 0x3ff, 0x7, 0xa1fd, 0x3, 0x6}, {0x80000001, 0x4, 0x3, 0x1000, 0x0, 0x6}, {0x5, 0x7, 0x3, 0x2, 0x9, 0x100}, {0xfffff801, 0x9, 0x10000, 0x8, 0x5, 0x1f}, {0x40, 0x6, 0x1ff, 0x8, 0x3, 0xcf1}, {0x20, 0xfff, 0x6, 0x0, 0x3, 0x6}, {0x4, 0x1, 0xfff, 0x0, 0x7fff, 0x80}, {0x7, 0x7, 0x0, 0x9, 0xff, 0x7}, {0xcf22, 0x8, 0xa37, 0x40, 0x10001, 0xf46f}, {0x2, 0x6, 0x8, 0x9, 0x7, 0x8}, {0xfffffffc, 0xffff, 0x8, 0x1, 0x8, 0x100}, {0x0, 0xfe8, 0x9, 0x8, 0x6, 0x81}, {0xf2, 0x80000000, 0x10001, 0x1, 0x3, 0x6}, {0x101, 0xc2, 0x6, 0x7fff, 0x3f, 0x3ff}, {0x80, 0x2, 0x4, 0x8, 0x10000, 0x4000}, {0x4, 0xb3, 0x34a3, 0x7, 0x7, 0x7}, {0x4, 0x1, 0x1, 0x7, 0xff, 0x89}, {0x5, 0x200, 0x401, 0xfffffff7, 0x2, 0x5}, {0x0, 0x7f, 0x9, 0x0, 0x3f19, 0x5}, {0x50000, 0x100, 0x9f, 0x9, 0x80000000, 0x6}, {0x3, 0x8, 0xb5b, 0x7ff, 0xdf, 0x3}, {0x2, 0xffffffff, 0x1f, 0x6, 0x1, 0x8}, {0x8001, 0xfe, 0x4, 0x9, 0x40, 0xffff0001}, {0x40b, 0x859, 0x10000, 0x7fff, 0xb5, 0x7}, {0x9, 0x1, 0x3, 0x3ff, 0x8, 0xca01}, {0x7, 0x1, 0x800, 0xfffffff7, 0xfffffffd, 0x8}, {0x6, 0x9, 0x1f, 0x89d, 0x80, 0x4}, {0x6, 0x3, 0xffffffff, 0x0, 0x5, 0x7}, {0x2, 0x13a, 0x400, 0x0, 0xec3, 0x7fff}, {0x80000001, 0x9, 0xfffffff8, 0x8, 0x3, 0x40}, {0xffffffff, 0x80000000, 0xfd6, 0x2, 0xc69b, 0x4372}, {0x7, 0x0, 0x1c000, 0x7, 0x4}, {0x672, 0x1, 0x5, 0x1, 0xd8fb, 0x4}, {0x5, 0x8, 0x8, 0x4, 0x50960, 0x4}, {0x1000, 0x8, 0x6, 0x6, 0x101, 0x10000}, {0x5, 0xc296b1a0, 0x9, 0xa2, 0x2, 0x7}, {0x1, 0x40, 0x1, 0x9, 0xbe, 0x1f}, {0x6, 0x8, 0x7d28, 0x4, 0xe23, 0x5}, {0x40, 0x0, 0x7, 0x1, 0x0, 0x6}, {0x94, 0x6b6, 0x8001, 0x7, 0xe7, 0x8}, {0xffffffff, 0x4, 0x80000001, 0xfa, 0x5, 0xab}, {0x5, 0xffffffff, 0x0, 0x3, 0xd6, 0x10001}, {0xc2, 0xfffff8b7, 0x0, 0x8e8c, 0x5, 0x3f}, {0x8000, 0x3, 0x6b, 0x5, 0x7, 0x49}, {0x4, 0x0, 0x2, 0x3, 0x8000, 0x7ff}, {0x200, 0x1, 0xcded, 0x9, 0x20, 0x10000}, {0x1, 0x2, 0x2, 0x8, 0x3, 0x8}, {0x10001, 0x4, 0x200, 0x1, 0x3}, {0x80000000, 0x2, 0x1, 0x4, 0x0, 0xfffffffa}, {0x2, 0x5b20, 0x7fffffff, 0x1, 0xe78a187, 0x7}, {0x3, 0x100, 0xc51, 0x8, 0x6, 0x8de}, {0x8, 0x9, 0x43d9, 0x10000, 0x40}, {0x3, 0x2, 0x10000, 0x5, 0x7ff, 0x7}, {0x401, 0x7, 0xfffffffe, 0x0, 0x20, 0x84}, {0x9, 0xf2, 0x3, 0x5, 0xffffffff, 0x8}, {0x8000, 0x5, 0x8, 0x0, 0x80000000, 0x3ff}, {0x9, 0x9, 0x65c035b9, 0x1, 0x8, 0x4}, {0x900000, 0x0, 0x3, 0x0, 0xda0a, 0x8}, {0x800, 0x4, 0xa75, 0xe88f, 0xff, 0x4}, {0x1, 0x5, 0x20, 0x8d, 0x40, 0x100}, {0x8, 0x400, 0x2, 0x6, 0x7fffffff, 0x1}, {0x6, 0x9, 0x7ff, 0x7138, 0xfffeffff, 0x8}, {0x37d1, 0x0, 0x6, 0x1f, 0x6a, 0x5}, {0x7fff, 0x5, 0x6, 0x9, 0x4, 0xfffffff8}, {0x7f, 0x3, 0x1, 0x7, 0x5c, 0x9}, {0x401, 0x6, 0x1, 0x3c, 0x9, 0x40}, {0x5, 0xff, 0x8, 0x2, 0x2, 0x10000}, {0x80000001, 0x68b, 0xc316, 0x7ff, 0x1, 0xfffffff8}, {0x3e, 0x8001, 0x8, 0x9, 0xe2, 0x401}, {0x3, 0x7fffffff, 0x5, 0x6, 0x8, 0x71}, {0x9, 0x3, 0x1e2, 0xdab6, 0xfd3, 0x2}, {0x3f, 0x3, 0xaf60000, 0x6, 0x7bf, 0x407}, {0x1, 0x2, 0x7fffffff, 0x0, 0x7, 0x9}, {0x8, 0x800, 0x5, 0x1, 0x1, 0x800}, {0x10000000, 0xfffffc00, 0x4, 0x7, 0x7, 0x20}, {0xa39, 0x3, 0x7ff, 0x8, 0x100, 0x7}, {0x7, 0x784f, 0x1, 0x10001, 0x827f, 0x5}, {0x6, 0x8001, 0x5, 0x7cf6, 0x8, 0x8}, {0x2, 0x2, 0x7, 0xfffffff7, 0x8, 0xfff}, {0x7fff, 0x8a, 0xffff, 0x7, 0xffffff18}, {0x8, 0x0, 0x0, 0x5, 0x7f, 0x400}, {0x2, 0x8, 0xa61, 0x7b0, 0x8, 0x7}, {0xffffffff, 0x419, 0x800, 0x4, 0x80, 0x39}, {0x4, 0x7, 0x4, 0xff, 0x9, 0x3f}, {0x401, 0x4, 0x3f, 0x10001, 0x8, 0x1}, {0x1000, 0x17c8, 0xfff, 0x4c71206a, 0x8}, {0x30003178, 0x40, 0x6, 0x6, 0x0, 0x3a}, {0x8000, 0x7c9, 0x1ff, 0x6, 0x0, 0xffff}, {0xe5b0, 0xffffffff, 0xfffffffd, 0x1000, 0x2, 0x401}, {0x2, 0x1037, 0x3, 0x7, 0x0, 0xe0000}, {0xb0e0, 0xee, 0x1, 0x1, 0x3ff, 0x81}, {0x6, 0x8, 0x7, 0x3, 0x1, 0x1f}, {0x40, 0x1f, 0x6, 0x200, 0x1, 0x800}, {0x1, 0x81, 0x0, 0x4000000, 0x0, 0x7fff}, {0x9, 0xffff, 0x5a, 0x3, 0xf6, 0x81}, {0x5, 0x7, 0x7, 0x0, 0xffffffff, 0xec28}, {0x291, 0xfffffcc9, 0x1f, 0x9, 0xff, 0x7ff}, {0x0, 0xac5c, 0x5, 0x5, 0x1f, 0x8}, {0x5, 0x2, 0x2, 0x2, 0x5, 0x66}, {0x8, 0x62c, 0x8000, 0x6, 0x0, 0x2a}, {0x2, 0x8, 0xfcba, 0xef4a, 0x7, 0x1000}, {0x5, 0x4, 0x1, 0x1, 0xfffffffe, 0x3}, {0x8, 0x211, 0x9, 0x9, 0x410, 0x6}, {0x93, 0x9, 0x10001, 0x3, 0x7, 0x9}, {0x1000, 0x7, 0x0, 0x9, 0x2, 0x8ec6}, {0x1, 0x3, 0x1, 0x4, 0x4, 0x685}, {0x1, 0x800, 0x5, 0x7ff, 0xb133, 0x4}, {0x7, 0x400, 0x3, 0x3, 0x7f, 0x5}, {0x7, 0x1, 0x3ff, 0x40, 0x6, 0x7}, {0x7, 0x200, 0x6, 0x1ff, 0x7fff, 0x738474ce}, {0x2, 0xffffffff, 0x8, 0x8, 0x8, 0xed}, {0x401, 0x6636, 0x1000, 0x7fff, 0x127, 0x8}, {0x5bdb, 0x6, 0x2, 0x0, 0x2}, {0x8000, 0x7fffffff, 0xf70, 0x0, 0x80000001}, {0x9, 0xffff8000, 0xdd4, 0x3, 0x10000, 0x1f}, {0x6, 0x15e, 0x8, 0x3, 0x1f, 0x7}, {0x1, 0x0, 0x80000001, 0x2, 0x2, 0x5}, {0x200, 0x1, 0x9, 0x101, 0xffffffa5, 0x5}, {0x0, 0x3, 0x5, 0x1, 0x1, 0xff}, {0x40, 0xd6, 0x4, 0x5fd3746d, 0xc1c, 0x3ff}, {0x80, 0x80, 0x3, 0x401, 0xc10c}, {0x80000001, 0xa4b0, 0x8001, 0x7ff, 0x80, 0x3b33}, {0x6ec0000, 0x4, 0x0, 0x7, 0x1, 0x9}], [{0x4, 0x1}, {0x5, 0x1}, {0x1}, {0x3}, {0x5}, {0x1, 0x1}, {0xbd55a9aa63dd7bc3}, {0x0, 0x4ced3b192dc3aab7}, {0x0, 0x1}, {0x2, 0x1}, {0x5}, {0x0, 0x1}, {0x1, 0x1}, {0x3}, {0x1}, {}, {0x3}, {0x4, 0x1}, {0x1, 0x1}, {0x2}, {0x2}, {0x4}, {0x1}, {0x2, 0x1}, {0x4, 0x1}, {0x5, 0x1}, {0x2}, {0x1, 0x1}, {}, {0x0, 0x1}, {0x5, 0x87eefd521ffb330a}, {0x3, 0x1}, {}, {0x4}, {0x0, 0x1}, {0x4, 0x1}, {0x3, 0x1}, {0x3, 0x1}, {0x3, 0x1}, {0x4, 0x1}, {0x3}, {0x1, 0x1}, {0x6}, {0x5}, {0x0, 0x1}, {0x3}, {0x6, 0x1}, {0x5, 0x1}, {0x3}, {}, {0x2}, {0x2, 0x1}, {0x3, 0x1}, {0x1}, {0x5, 0x1}, {0x4}, {0x4}, {0x2}, {0x4, 0x1}, {0x2, 0x1}, {0x2}, {0x5, 0x1}, {0x2}, {0x4, 0x1}, {0x4}, {0x1}, {0x6, 0x1}, {0x1, 0x1}, {}, {0x2, 0x1}, {0x2, 0x1}, {0x2}, {0x0, 0x1}, {0x2}, {0x1}, {0x4, 0x1}, {0x1, 0x1}, {0x5, 0x1}, {0x0, 0x1}, {0x3}, {0x3}, {0x4}, {0x4}, {0x2}, {0x0, 0x1}, {0x2}, {0x1, 0x1}, {0x6dd327c3e959f49e}, {0x5}, {0x1}, {0x2, 0x1}, {}, {0x2, 0x1}, {0x0, 0x1}, {0x4}, {0x6}, {0x2, 0x1}, {0x0, 0x1}, {0x5, 0x1}, {}, {0x2}, {0x2}, {0x3}, {0x3, 0x1}, {0x3, 0x1}, {0x3}, {0x4}, {0x3, 0x1}, {0x2, 0x1}, {0x2}, {0x1}, {0x2, 0x1}, {0x4, 0x1}, {0x5, 0x1}, {0x5}, {0x2, 0x1}, {0x5}, {0x2, 0x1}, {0x2}, {0x5}, {0x2}, {0x1, 0x250d95a23826773}, {0x3, 0x1}, {0x0, 0x1}, {}, {0x2, 0x1}, {0x1, 0x1}, {0x5, 0x1}], 0x1}}]}, {0x5e, 0x6, "b774ce747f15dac9471e2dd037ef18904c20db342009fc10924427cab9cce429d4f746ac30d40e85a600a6d35890562d1d575848cf305d0d03e01b4850ca6735056ba4398ae52e9a02d3b1cefcf97c3e61037d6c66deaeaabce0"}, {0xc, 0x7, {0x1}}, {0xc, 0x8, {0x4, 0x2}}}}]}, {0x1520, 0x1, [@m_ipt={0x11f4, 0x1d, 0x0, 0x0, {{0x8}, {0x1cc, 0x2, 0x0, 0x1, [@TCA_IPT_TABLE={0x24, 0x1, 'filter\x00'}, @TCA_IPT_TABLE={0x24, 0x1, 'raw\x00'}, @TCA_IPT_INDEX={0x8, 0x3, 0x7fffffff}, @TCA_IPT_TARG={0x11d, 0x6, {0x5, 'nat\x00', 0x1, 0xe1, "4d93fd157c1bbed2edf6bc87078c3cb1e89f9bfee3626e81b60c52ab73e50080540ed0b476f2084ccd44182aafe3827334b544c6db473c6958c37d0e35b548fd9586bd9bff1f5bec38656c2000f1226fb2cde97471e0c9c00eceacb5ddbe26d21288ac497ee6ca8f3cdc9690521f8ca55d40b6fd12ade5eed0abaf55f545d504f1e8ba6838d35b0c4ef3cc90fb0cf6435b4c10f0405283defd07bc789a81fd5970b58b98d9d0f61260a66b288002aed610dd94fc1931c64e56b4f810779dd90ebc61b3c84b098e625bf36461deb6ceb0c8f41e62621529f5f00e62e6b055074d21f3939520d05e8e2e092bb6e42be25bba6deb"}}, @TCA_IPT_HOOK={0x8}, @TCA_IPT_TABLE={0x24, 0x1, 'nat\x00'}, @TCA_IPT_TABLE={0x24, 0x1, 'raw\x00'}, @TCA_IPT_HOOK={0x8, 0x2, 0x1}]}, {0x1004, 0x6, "b2f6d035891e65e643d07891d4bce615959a62e0db1305840fe0f2d26813cfb02e98be395a50d97b78a517d9ebbaabcb64d78bf46d65de83c43775862fad615867d5079a27c72f5fc17bf84e1374a39f250209ed63e4ec2248dccbacaabbb975cd2e74f126706683b91591f2b1d14e52e3f18092a583fa3bb8c61c8d1163e8bf6be917173fe8ba809ade2a66aeb82ac08f051a1bcbfc2bd7f367b21149794ceaaba1d5e08856877025f4642b82cd5689c4d128b66d4ffd8850a1cecbf66615aa83f9a9169243773cb52c46ebd41c6d2da94891af2cc9a2dc5edf2c9469519e5ff974cf7b1a6ff78f99f8770b0c192b23ee74b272caa553dabdeb9ce994434da5332d264a6200df1985ed1e022ca6111b4dac8c3e8073e6804785237ee9f66cc9fc30c0ebe92b248edd24e1b484d24d311ba6c9b37ac132e7d79c0edebf919c14de6164d93f35d91decec1a68d3c3aa77d58294da871e83b7664db7aa36b20fa18288708aa36f3698962edd4c00b98b6decbf37c1bf6b8891339c9705276615152e2b2de9ea680009706e0e1a23972084be8b440450a455da808b0099187ba19e3270cedb2a99a9e0b5b18e8424d2259669916b651d65ed17c245800a89c384549c71b6168718fe537d9676d2bddf207ee35655b56586100738c1238946202c5d6efccc70ad33851a76e0dc85051fdc3739c96ae1dcc1db1f0f9ba74e1beaad273d1f3a01c97e9e63525bc4aba6f6f716f03dbc88a5566440f83bbccecb20c5747e63d5822f8fd5cc309c8d719fdc8902eacd8f4f1af257db7309073c6ff1bd6bb92727cb790e690d2c0ecd79c52fd9fe8c21538523e79b71e44875ea11aaa95d6da5b81df8ed04c688dede8b661cc7a43ce5694c9ea9f446788801465fd06ab905aaf8911299e701364a7683c0d2327aedb91f9a4ec8ebc540e5f43dc784f0885ac6256ccb8003165679d9130ebc1bc7a03b5e32bf16bbf2bd815d383fdd48f3c4dd8292d583e9a62d543732dbd81667451c035b998253b6199a248836a59e8c67fa6e949d1f06aae66228d14270e1bc628818976dd80b788129f226ff510987d90faaf3386331001474c7291b727371f965d6a750c707ef052026ba11bca07a1099534ecc1c921a6c3e2790ea384e6fbd1013024bd16b34ab5d30f7c23e3c8377b949aabe1181f0d4eb1414569a15abdf6c9af271cce927f8c8f862bc12d50c2cb26cb6860201215f024aa19122c6f709fae43891de6d4b4bab5dc882d3e6c4d5fcd05278c338d26a593d8518ad02865fcf5d73524480be9d452835145de710db51935ecf28e5d7b25a4dc80072fbc50beea0ad8b4e3769640d2310c61d5d9e4f11c602a2f5ae51209bcd5ef2cb4a34b2fb9f42fe5e141c43c55a5e98f1ee44927306eec49a8bc42427b44720562a5d17acfebe39f3fa8736e7fc404de40f132c3164423016b9c02910ad16f924e773194474c758267bf446957e50ed9fc610e3af7b5ec04f1a85857cf3e399313a83d0654eb8d5dc24cbdb90c86db11695bc6b8980c035d0ebe21588e336169e75754ce29b256b9931918c7b3930fe03c152cb1a6e64710f303b83bc739e58b329c649e83b110ceb43f95c1bd115c25697445adf7d13c767ab9ee8d91dfca40cd6d091644cea44d09eabdc7196ac77d618bcad879ad781bc52accc6abeee65ed5b73322ed6b6466b9aca2027455e72aacf696bc30c999a8f14bf484399892d8ec29a83b85e64ab963b27da21e12c2f5d854fdfab8cb1dbe55f4b67b9481a31ca6bdbfeb20d55b6b05fcba919657ccb10df84233c19c93f3c0a500110fa0afc68abb04e8b632458ec0877428748edf34117ac519cd74a4b42cca9497dc75a2903070b2de70b15e01406331faa04298938bda27d3efaecd7dc860a2d03610ade92d2f8458320ed9940496d0b07afe28720264e85f7d5d4889c9a460553a454a27175bab8a1c2bf2b78ff355caa77855bf92d395f9d37072e9f05af3783acbb4e11c555556de1c8e5339c56fb19d0e03ae18f4d8adb0e0afcc5c07296f185ec468c82f828477a0ba36ae44a74c4cc7b003afa88269ee45db9478cf9cc6bc9d68138a1d8634ffb9d7707db606ba50b1c5d13529797540bd727e369a68117a6fada31e4e51f3d1edff55ba3fc9090ef5d7718db472d9110dd7d9c871126f7e166eec7d6ea72c4eaa41777a66e5d2420c1285a07fbc2158d051a073e29130fe53bb93e76caa7f0ded5a85f5e106ea3dc604c1847997e33d5d0af6bd82b5bd4f12580b395d54f7cfd33e0d163bcf12944aeeeeda5ff2aaac551035201727db91ea8066f933f93f9bf2efa0491e0db84a492f46882586a3400820e46fd84b14f8e10b7957cfe9eae560ce3526ae13f00f15dd2e4cd31ded52d1799d016b1dfdf4fe77eb056dc30260079a42e574dedcf2183f008df4d1297aceb1bd3a56707e863242f2900447161b0f148fc41e9149d818c2d197dfcb7e162c30522a5c43a89a2b02833e4e4fbe33f4fa7c68f451818c31ed1f2ed916db915a09b480770674f7e544bd38b0d76044857481766a8386b565311bd3041ad7e5d84342c37efb1f7ae4d4feaf48bb42079399c562e194bf43c14993e8e567634a1b9ba07abc6cab7be0d2ab8f3464c8c898c800e368244c150bc355f38b91268453c70ea2264ccec3441179a9df48b8dce1e3e0cca43f9c6a712ea1e1be4db6b430a70c7adda5ea2dece95fb74af3f7649e09614791d2eb67917497438fa3c999b2ee96a5d98e4a10acfefa5dc13b4ffc2c758e23e22b98ec1d708a4fedbd305fa89163f745ca09224c3f565c398efd556d7631a0901117e6ebe1d5d6360e2a969de914dab786cc159cf9df36ed26998aa47f6a179a1de0a69dd91b7806ebf09ee3c15683925369e040aab53ea16d9e7c5b80a80927c3433ca7e8e465cb1ab5a61019fd41133130242d88cb2959490a91cd58b108da395bc130b61a2818cdfbff8a11d05fcb030f2ef16467d24ad94951397145e043b56b914352605ff20d75d69072808205d7925273e840c49ab7dfc0d5db317597f89edae5c9c1e955f091993e8257d36dd53df02615060e8c3d4b940eb6acfd81b7e3b022be6dd95f3e21546f94b6f3fd5f220dbf9cbde4a88763acc7c004c274ec12950f9bd95a506bd7a51c61a5955bbdbd736c8479ce492d59233f58da7204fe14524182c77be2dccef57651d619fbb51a08f25549a5b010f38b64c30fb2eeb795e1e2bb36a244da897af43180c5359802df2e88de893b095c082926a6cb526f55722f5128aa1fdad85d2e08cb0e79a659858faa88f8acd135c4ca9fde0bd26d1948e6ff20aae4c75f36c21f831d4c72c376d3b3e45867c6f1f0f9f67ad4b15c8f410c009330f9167a935afdf1cce6b8ad40e6009b21375241fb4b21e8fb059c8d07938fcb44df729db80418aeb070a77373afd4691a949808352303f549681d28ff49ba0deb65ef87572fbf31595a2d33c492de3d924e17f6ca1c60882f1849642dc115804975cf1bc763d6622b1f43bf56b67935a8a30948b988fd3e49d4f8283e920e66380bffd189da4bc3b827ef2c013ba14a026fea316cfee79977fce71cab8d89a8d95989bab669fb78d94138d832e0ed1907dd94c6a5e0726562e0ce74205fa8d8cc366b68f4a99d2dec956b9191b185ad52391d2035d36fb96b2f918d35776570bef6c767c3addf7a9592ae72a642c6260dd18e51f3b63c272d3b2d29515fef2bfb446865d5c2508a0d282b3ccffbb14f34ae8782c61402f7298039e55539da66563bfd0862153862fc2c35b0aa806eb9149dea146b00c51178e9cc78b439b9fc81d8909782470363c04c773c2a63a19c48c4bf40c0d8759f751eb5ce7726f33e3fafb3ee973cace28df6aaabd81611da2af1558fe192a55bfa23be1e952078628ba94492874bd0d09c2f02e85e53a81cf2655793d040773945701baf4ebf998a9940913ea101b5db96c71ee4dc484b7e4150bd2672767ecdedc553ddd7ceba476973b539e3179617b120ae31e0a4c96711e99f9ea84d841f22eaa9bde32478f1803f0812a697a989a510399a8f8ab10b30dffa42cc96bd92695d2890556179787ae85b09563536f15cb54e0c47da2e68670490708f0c691bec7c8d9d6c21146b6f1f76e4b0deef0170cfe9bf650fc2c3032771b1c2f1e3344569358ea7a9a109adebfd20d68a93d26debad434c682e126448ca918188c1d8151ccbc8383af6e2855f3f429bbeca42862dcc06a487b2146581f1bf29b91597f81a83a23f67d156b9ad9f1d840a3155cca19731be7989830723b179c58b311a38a948023218519382e1ecbec39f81d09372a3d0322ced2bc8a1475b5b0189d4e3e02b4cb5f1d884e4007c749a58d899dd2184ba84410462ea62bc6ec2e045dfecb958ecd3ef0af17301bb2968f4113c371206aae9946e8b617a7065118e2121869c3ce51809239a54ca8aa0bcc80f86d392255b71427a81560faf00f9c8aaa9e22b296e5bf0a2faaec27d951a2c2a55b1481e2f5ee1ce76948c3fbcb820984a31125d1f36ca8081c9da9f355fa27c88c6f3dbebc16dcfbeeb3c4de0d712b1b11d8b14fe933b941956dcaea053d202df0030599bb3f98a3b811ce20566aeb5e3c2b01321407eee0850629a53c4622c11b43dcb3e32ae20f5f4a3b1fa1e492bba3f892a4b6b78760b6b97bb33c0c8eef156bfe57265e3a49a583222ad87393ef6ef59312af7255b1cdb8c9fde97f7f407db9e8c0352c7cc037649805e174fa4d2bd9b3029eafcb3801c2f0543ba93b0e20effa1a7308c0bfd66daa59b69e02d66ac52b1556a832f07cc02a91166c769c7e8a571192d537764fb11f10d172b85ed5c376ffd2a2b89e3f50b4992188fe06bda906d0a131567c4d43e6115d29e3b5d306b060143d7e35eb59c9ed64461aa3d6a6aacdc99e7d5b151b42d6bdc0d34d5d5ef84315d4ad64a97363594260e041e666b976cd8c193fb2df74d3dbcbcfdef4b9dddb5bcd854e94b0801a2e445a026a3bc7f88210331e13fc2145d45b7a6717af9bc72d7e3b7ded1e1c49884b22b8995ecdc76b3898ada5436294ccc82a0f41e12782dad5cc639f99774ce6c417bb524ab5fd5a2b949c0aecd4bc997bd8ffc125f40cb7b342e85a11557046858a5618454ccfe93748fbab3cda8caceebbdf98b56f1d3bf821f8eef5399693afbc0b0e95032f37257aee7b9136df422e0ac4db813e2270af5e86b7567969b65ffc5631ee0f1f44e2e9e6446b16a0c726e6fdd15237d30f92e16ead69f57da09f3da726f3715ff95b25344c93601a064758330d9975fc4d5cd823a8bec54da23db941867fb4af573d7cc2c4a46473f6cc0b7f6398fd9e35d8bbc32cd9b8c6759d712bf3769bd2c978b5ee9657ac4b9c37c9fe148f0cba652a1850bbbdf07740fc2306d6556d58dd0a792930b1fd29bab36634914aaeb7fa257a2e1b702d68d2edf51b13467ae3c1727885746dbacdb6d22354e7537cc905480b19a233911102bc3cf4429ed8d7369ac2a1329631f755d8402e4fabe903877198feb427f016993aded14a970c957b7641c77b1020110a269e2a01a1a7b3a28dd648a7448f1f5fc26f887ec342744fec6f96eb4f5c5bddb0ad272fe5f0adce0f1beaa935bf514a023407eccb6daadcd052b7dc57c3ac1ca376a86c5208c7072b4ba2f5772577877ce4d7bd64ab07d285d327d4c7cf97c05b9c8f04fd7e87520fdbbb12793d86fcf4d2c82869699ed08c54090713eb16f059524431a3d6b00f47ada0486045"}, {0xc, 0x7, {0x1}}, {0xc, 0x8, {0x1, 0x2}}}}, @m_csum={0x148, 0x13, 0x0, 0x0, {{0x9}, {0x58, 0x2, 0x0, 0x1, [@TCA_CSUM_PARMS={0x1c, 0x1, {{0x200, 0x6, 0x0, 0xfffffffa, 0x7}, 0x60}}, @TCA_CSUM_PARMS={0x1c, 0x1, {{0x81, 0x0, 0x2, 0x3d, 0x2}, 0x73}}, @TCA_CSUM_PARMS={0x1c, 0x1, {{0x2, 0x92, 0x1, 0x10000, 0x9}, 0x44}}]}, {0xc5, 0x6, "6c4006e1cdbc5be9a8a3fdc840ac15ed565bd8af843d6f8140ec821ac6332c5767a69241bf59fb871bb7300c8a7d4e3185f6bcb1cd7d141cc3693bf62026291a04ace2f1a41a603d7931b2fb0172fc908cb62d007938a202d00c357cfa34a87b4b58eaeae83a1abbab3231052fec314b36ebf155cf001a7eefc0a84d33c70107010c951b57e597e9f654ffd79106c656baa6a5cdbf606fc3eb4e65355764e2402420dc0fe91e9c68b029f28923dc073bb9629083f9a91036430fcf9a4862bd779b"}, {0xc, 0x7, {0x1}}, {0xc, 0x8, {0x3, 0x3}}}}, @m_connmark={0x154, 0x1b, 0x0, 0x0, {{0xd}, {0xe4, 0x2, 0x0, 0x1, [@TCA_CONNMARK_PARMS={0x1c, 0x1, {{0x7, 0xfffffffb, 0x4, 0x5, 0x8}, 0x9}}, @TCA_CONNMARK_PARMS={0x1c, 0x1, {{0x1, 0x0, 0x3, 0x9, 0xc7}, 0x3}}, @TCA_CONNMARK_PARMS={0x1c, 0x1, {{0x7f7, 0x3, 0x20000000, 0x1ff, 0xffffffff}, 0xff39}}, @TCA_CONNMARK_PARMS={0x1c, 0x1, {{0x9, 0x1000, 0x2, 0x10000, 0xff}, 0x5}}, @TCA_CONNMARK_PARMS={0x1c, 0x1, {{0x30000, 0x7, 0x1, 0x1ff, 0x10001}, 0x9}}, @TCA_CONNMARK_PARMS={0x1c, 0x1, {{0x101, 0x7fff, 0xffffffffffffffff, 0x10001, 0x7}, 0x3}}, @TCA_CONNMARK_PARMS={0x1c, 0x1, {{0x6, 0x1f, 0x20000007, 0x8, 0x5}, 0x6}}, @TCA_CONNMARK_PARMS={0x1c, 0x1, {{0x10000, 0xcbc, 0x6, 0x5, 0xfff}, 0x400}}]}, {0x42, 0x6, "8b9e7dae5cadf8c52538add3fe195feb7867c5e60059f7a4fe3d0bebe6eeeb46c83152959767ddf16e399a7c89773d69505d6747a702dd4c4d241752bb6b"}, {0xc, 0x7, {0x0, 0x1}}, {0xc, 0x8, {0x2, 0x3}}}}, @m_ife={0x8c, 0x9, 0x0, 0x0, {{0x8}, {0x28, 0x2, 0x0, 0x1, [@TCA_IFE_SMAC={0xa}, @TCA_IFE_SMAC={0xa, 0x4, @link_local={0x1, 0x80, 0xc2, 0x0, 0x0, 0x2}}, @TCA_IFE_SMAC={0xa, 0x4, @remote}]}, {0x3e, 0x6, "2633f54cbdc6e4b7ce6326a5f399df0d276ca6a165227b11034632530b1cb1b939e46e0a9752b8dbde56dc0b185871ea2220ac1e58fe35202311"}, {0xc, 0x7, {0x0, 0x1}}, {0xc, 0x8, {0x2}}}}]}, {0x254, 0x1, [@m_sample={0x140, 0x14, 0x0, 0x0, {{0xb}, {0x3c, 0x2, 0x0, 0x1, [@TCA_SAMPLE_PSAMPLE_GROUP={0x8, 0x5, 0x60}, @TCA_SAMPLE_PARMS={0x18, 0x2, {0x397, 0x8b4, 0x10000000, 0x80, 0xe}}, @TCA_SAMPLE_RATE={0x8, 0x3, 0x7}, @TCA_SAMPLE_PSAMPLE_GROUP={0x8, 0x5, 0x7ff}, @TCA_SAMPLE_TRUNC_SIZE={0x8, 0x4, 0xe267}]}, {0xda, 0x6, "f7fe704f1956d82aceea7febdbafc87fb612aa080085346bb0d2377763ac23096b31d4149033961171052c1014d0c6f300af1813ead55604b185e3adbf4a803d630b6f0384e02168944736bd897f6e319cf0f157ab4c74d6c9f0793728e57c4890a51631ef6f7c5ebec1e864e9f496792a141060b4213716dcfe66bf1742fc985743e4a84e72d42900db56d71f2ee73f2215a1d4cb6e5cf654244015399aecca18737b481a624ad069aecf135f1a809d051561d00657056d5a3e0a69f40eb19e2ebef97821328189ea44cee35b8196a0c05c4347e2f3"}, {0xc}, {0xc, 0x8, {0x2, 0x2}}}}, @m_simple={0x110, 0x1a, 0x0, 0x0, {{0xb}, {0xc, 0x2, 0x0, 0x1, [@TCA_DEF_DATA={0x8, 0x3, 'red\x00'}]}, {0xdb, 0x6, "2277fad24caa11e5f1f46e062c5baeb5cdfd8070b2d8d7f1dc80bb28c4c097fac376004b315d2f25aeec424b3e8b688c6f5d5c8ae562fb19a2ebc032550dcbc6859b11059dcab0943c229dfe0bb0417a7ee3eb32d2b02327aafa0625c8f5ce4c6d6d3a77f37b7cdf609d144c5a91dad28a659efd5e6fed5745adfb5cf627149d03e5b6a348ba946daa7b8363fac5a537b5abef104ac68664cb1b84b4d7b8666617f55ef4e22079297742288d075d63672a2ed4b0a31165ce9289690de5687f17f3283980017790aeb7d88022907e4c91dbc1c8ebc6778c"}, {0xc, 0x7, {0x1}}, {0xc, 0x8, {0x1, 0x2}}}}]}]}, 0x52f4}, 0x1, 0x0, 0x0, 0x40001}, 0x20000000) sendmsg$nl_route_sched(r0, &(0x7f00000007c0)={0x0, 0x0, &(0x7f0000000780)={&(0x7f0000000240)=@newqdisc={0x148, 0x24, 0x508, 0x0, 0x0, {0x0, 0x0, 0x0, r3, {}, {0xffff, 0xffff}}, [@qdisc_kind_options=@q_red={{0x8}, {0x11c, 0x2, [@TCA_RED_PARMS={0x14}, @TCA_RED_STAB={0x104, 0x2, "7d403c4bf8229f4db3efa53425d714ff7b07a0abc9f7f31ff7c73f7f86c7ac07442c742d329fb03c00edee086681318da1c5c346feefb2624231360c837c5fffa6e790bf0b340f7bf750b1f6819e520463521b6d660991a9fc275ae757cac75f74a875b489b6e113a1bc8658daf98919cd8aee0f3a614097638aed34f735bf498dfeade02ed6d2750c637153e30cc805073320a311650bb847ac313e61597f8153710737a20d3b7cc88ae0dfca6be45c51608e30f3fc3058ea249556c4947a1bccf5f589f7909ab4a871994fe5696dc18ac06380817e37e752dbba7fc36793787220225bf7dfbe9e86f706d44c17805b86ee411976772b47f886acd2211fd4f5"}]}}]}, 0x148}}, 0x0) 00:06:23 executing program 5: r0 = socket$inet_tcp(0x2, 0x1, 0x0) bind$inet(r0, &(0x7f0000000000)={0x2, 0x4e20, @multicast2}, 0x10) setsockopt$sock_int(r0, 0x1, 0x3c, &(0x7f0000000340)=0x1, 0x4) connect$inet(r0, &(0x7f0000000200)={0x2, 0x4e20, @loopback}, 0x10) r1 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f00000001c0)='memory.current\x00', 0x275a, 0x0) write$binfmt_script(r1, &(0x7f0000000000)=ANY=[], 0x208e24b) mmap(&(0x7f0000000000/0xb36000)=nil, 0xb36000, 0x2, 0x28011, r1, 0x0) sendmmsg$inet(r0, &(0x7f00000012c0)=[{{0x0, 0x4002, &(0x7f0000000600)=[{&(0x7f00000000c0)='o', 0x1}], 0x1, 0x0, 0x0, 0xf}, 0x34}, {{0x0, 0x0, &(0x7f0000001b80)=[{&(0x7f0000000740), 0x40020000}], 0x1, 0x0, 0x0, 0x59d8ffff}}], 0x2, 0x60c5840) [ 383.505016][T21572] qnx6: unable to read the first superblock [ 383.506232][T21572] qnx6: unable to read the first superblock [ 383.517553][T21572] I/O error, dev loop1, sector 16 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2 [ 383.526651][T21572] qnx6: unable to read the first superblock 00:06:23 executing program 4: r0 = socket$nl_route(0x10, 0x3, 0x0) r1 = syz_open_dev$vcsn(&(0x7f00000036c0), 0x4, 0x200) sendmsg$nl_route(r1, &(0x7f00000035c0)={&(0x7f0000003700)={0x10, 0x0, 0x0, 0x1000}, 0xc, &(0x7f00000037c0)={&(0x7f0000003600)=@bridge_newvlan={0x54, 0x70, 0x200, 0x70bd2d, 0x25dfdbfd, {}, [@BRIDGE_VLANDB_ENTRY={0xc, 0x1, 0x0, 0x1, @BRIDGE_VLANDB_ENTRY_RANGE={0x6, 0x2, 0xa}}, @BRIDGE_VLANDB_ENTRY={0xc, 0x1, 0x0, 0x1, @BRIDGE_VLANDB_ENTRY_STATE={0x5, 0x3, 0x1}}, @BRIDGE_VLANDB_ENTRY={0xc, 0x1, 0x0, 0x1, @BRIDGE_VLANDB_ENTRY_INFO={0x8, 0x1, {0x3}}}, @BRIDGE_VLANDB_ENTRY={0xc, 0x1, 0x0, 0x1, @BRIDGE_VLANDB_ENTRY_STATE={0x5, 0x3, 0x3}}, @BRIDGE_VLANDB_ENTRY={0xc, 0x1, 0x0, 0x1, @BRIDGE_VLANDB_ENTRY_INFO={0x8, 0x1, {0x52, 0x3}}}]}, 0x54}}, 0xe010) sendmsg$nl_route(r0, &(0x7f0000000200)={0x0, 0x0, &(0x7f00000000c0)={&(0x7f0000000100)=@ipv6_newrule={0x24, 0x18, 0x409, 0x0, 0x0, {}, [@FIB_RULE_POLICY=@FRA_GOTO={0x8, 0x1e, 0x7}]}, 0x24}}, 0x0) [ 383.544857][T21582] netlink: 12 bytes leftover after parsing attributes in process `syz-executor.2'. 00:06:23 executing program 0: r0 = socket$inet_tcp(0x2, 0x1, 0x0) bind$inet(r0, &(0x7f0000000000)={0x2, 0x4e20, @multicast2}, 0x10) setsockopt$sock_int(r0, 0x1, 0x3c, &(0x7f0000000340)=0x1, 0x4) connect$inet(r0, &(0x7f0000000200)={0x2, 0x4e20, @loopback}, 0x10) r1 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f00000001c0)='memory.current\x00', 0x275a, 0x0) write$binfmt_script(r1, &(0x7f0000000000)=ANY=[], 0x208e24b) mmap(&(0x7f0000000000/0xb36000)=nil, 0xb36000, 0x2, 0x28011, r1, 0x0) sendmmsg$inet(r0, &(0x7f00000012c0)=[{{0x0, 0x4002, &(0x7f0000000600)=[{&(0x7f00000000c0)='o', 0x1}], 0x1, 0x0, 0x0, 0xf}, 0x34}, {{0x0, 0x0, &(0x7f0000001b80)=[{&(0x7f0000000740), 0x40020000}], 0x1, 0x0, 0x0, 0xffffd995}}], 0x2, 0x60c5840) [ 383.558084][T21572] I/O error, dev loop1, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2 [ 383.559894][T21572] qnx6: unable to read the first superblock [ 383.561153][T21572] qnx6: unable to read the first superblock 00:06:23 executing program 4: r0 = socket$nl_route(0x10, 0x3, 0x0) syz_open_dev$vcsn(&(0x7f00000036c0), 0x4, 0x200) sendmsg$nl_route(r0, &(0x7f0000000200)={0x0, 0x0, &(0x7f00000000c0)={&(0x7f0000000100)=@ipv6_newrule={0x24, 0x18, 0x409, 0x0, 0x0, {}, [@FIB_RULE_POLICY=@FRA_GOTO={0x8, 0x1e, 0x7}]}, 0x24}}, 0x0) 00:06:23 executing program 2: r0 = socket$inet6_sctp(0xa, 0x1, 0x84) getsockopt$inet_sctp6_SCTP_PEER_ADDR_THLDS(r0, 0x84, 0x14, &(0x7f0000000000)={0x0, @in={{0x2, 0x0, @empty}}}, &(0x7f00000000c0)=0x4) r1 = socket$inet_sctp(0x2, 0x1, 0x84) getsockopt$inet_sctp_SCTP_MAX_BURST(r1, 0x84, 0xd, &(0x7f0000000000)=@assoc_value={0x0}, &(0x7f0000000040)=0x8) getsockopt$inet_sctp6_SCTP_DELAYED_SACK(0xffffffffffffffff, 0x84, 0x10, &(0x7f0000000100)=@assoc_value={r2}, 0x0) r3 = add_key$user(&(0x7f0000000200), &(0x7f0000000300)={'syz', 0x0}, &(0x7f00000002c0)="f5", 0x6a, 0xfffffffffffffffe) r4 = add_key$user(&(0x7f00000003c0), &(0x7f0000000440), &(0x7f00000000c0), 0xc9, 0xfffffffffffffffd) keyctl$dh_compute(0x17, &(0x7f0000000140)={r3, r4, r3}, &(0x7f00000000c0)=""/83, 0xfffffffffffffe4f, 0x0) r5 = add_key$fscrypt_v1(&(0x7f0000000240), &(0x7f0000000280)={'fscrypt:', @desc3}, &(0x7f0000000340)={0x0, "7b8e055124afa5ca36c9a7d36f358313ee9e874e1c07e64056bebc6c0b51d90a9f12606de98f06665235644f993008502452c8c9aa6d62f3cd79ae414292b3b0", 0x1b}, 0x48, 0xfffffffffffffff9) add_key(&(0x7f0000000180)='dns_resolver\x00', &(0x7f00000001c0)={'syz', 0x2}, 0x0, 0x0, r5) 00:06:23 executing program 1: mkdirat(0xffffffffffffff9c, &(0x7f0000000000)='./file0\x00', 0xf0) mkdirat(0xffffffffffffff9c, &(0x7f0000000040)='./file0\x00', 0x142) mount(&(0x7f0000000240)=@loop={'/dev/loop', 0x0}, &(0x7f0000000280)='./file0\x00', &(0x7f00000002c0)='qnx6\x00', 0x0, 0x0) [ 383.633656][T21592] sctp: [Deprecated]: syz-executor.2 (pid 21592) Use of int in max_burst socket option. [ 383.633656][T21592] Use struct sctp_assoc_value instead [ 383.662247][T21597] I/O error, dev loop1, sector 16 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2 [ 383.667785][T21597] qnx6: unable to read the first superblock [ 383.685650][T21597] I/O error, dev loop1, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2 [ 383.698217][T21597] qnx6: unable to read the first superblock [ 383.699305][T21597] qnx6: unable to read the first superblock 00:06:24 executing program 3: socket$can_j1939(0x1d, 0x2, 0x7) r0 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route(r0, &(0x7f00000000c0)={0x0, 0x0, &(0x7f0000000080)={&(0x7f0000000040)=@ipv6_newroute={0x38, 0x18, 0x1, 0x0, 0x0, {}, [@RTA_GATEWAY={0x14, 0x5, @loopback}, @RTA_OIF={0x8}]}, 0x38}}, 0x0) 00:06:24 executing program 4: r0 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route(r0, &(0x7f0000000200)={0x0, 0x0, &(0x7f00000000c0)={&(0x7f0000000100)=@ipv6_newrule={0x24, 0x18, 0x409, 0x0, 0x0, {}, [@FIB_RULE_POLICY=@FRA_GOTO={0x8, 0x1e, 0x7}]}, 0x24}}, 0x0) 00:06:24 executing program 5: r0 = socket$inet_tcp(0x2, 0x1, 0x0) bind$inet(r0, &(0x7f0000000000)={0x2, 0x4e20, @multicast2}, 0x10) setsockopt$sock_int(r0, 0x1, 0x3c, &(0x7f0000000340)=0x1, 0x4) connect$inet(r0, &(0x7f0000000200)={0x2, 0x4e20, @loopback}, 0x10) r1 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f00000001c0)='memory.current\x00', 0x275a, 0x0) write$binfmt_script(r1, &(0x7f0000000000)=ANY=[], 0x208e24b) mmap(&(0x7f0000000000/0xb36000)=nil, 0xb36000, 0x2, 0x28011, r1, 0x0) sendmmsg$inet(r0, &(0x7f00000012c0)=[{{0x0, 0x4002, &(0x7f0000000600)=[{&(0x7f00000000c0)='o', 0x1}], 0x1, 0x0, 0x0, 0xf}, 0x34}, {{0x0, 0x0, &(0x7f0000001b80)=[{&(0x7f0000000740), 0x40020000}], 0x1, 0x0, 0x0, 0x5ad8ffff}}], 0x2, 0x60c5840) 00:06:24 executing program 0: r0 = socket$inet_tcp(0x2, 0x1, 0x0) bind$inet(r0, &(0x7f0000000000)={0x2, 0x4e20, @multicast2}, 0x10) setsockopt$sock_int(r0, 0x1, 0x3c, &(0x7f0000000340)=0x1, 0x4) connect$inet(r0, &(0x7f0000000200)={0x2, 0x4e20, @loopback}, 0x10) r1 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f00000001c0)='memory.current\x00', 0x275a, 0x0) write$binfmt_script(r1, &(0x7f0000000000)=ANY=[], 0x208e24b) mmap(&(0x7f0000000000/0xb36000)=nil, 0xb36000, 0x2, 0x28011, r1, 0x0) sendmmsg$inet(r0, &(0x7f00000012c0)=[{{0x0, 0x4002, &(0x7f0000000600)=[{&(0x7f00000000c0)='o', 0x1}], 0x1, 0x0, 0x0, 0xf}, 0x34}, {{0x0, 0x0, &(0x7f0000001b80)=[{&(0x7f0000000740), 0x40020000}], 0x1, 0x0, 0x0, 0xffffd997}}], 0x2, 0x60c5840) 00:06:24 executing program 1: r0 = request_key(&(0x7f00000000c0)='rxrpc\x00', &(0x7f0000000100)={'syz', 0x0}, &(0x7f0000000140)='%&\x00', 0x0) r1 = request_key(&(0x7f0000000000)='keyring\x00', &(0x7f0000000040)={'syz', 0x0}, &(0x7f0000000080)='\x00', r0) request_key(&(0x7f0000000180)='rxrpc\x00', &(0x7f00000001c0)={'syz', 0x3}, &(0x7f0000000200)='syz', r1) add_key$user(&(0x7f0000000240), &(0x7f0000000280)={'syz', 0x3}, &(0x7f00000002c0)="48ec91088aa7987be3781266c32fcb81d430464e147c34beaa7170d16799633ed93a46771a075b1dc494b49cd72841776497e7144f115cea72d1554c7a1152c6817e5f819e2c9fb5cd2a939a5d59c1cf2e84e1420f0b3a86dbeaa44d64509faca9ebc714537c3380500bd8dd3cc87db6075958a4fd672e0d91a1d3a6a9d9f799e93dbcf56a2a17b645074933cb7f8c092c2d587254f0b5762837b679fe87d98fc05a1ce54c8d9742ac3cb15d85507f5c35b8f4163d9e4e10c09ac81568555b26a69cbe3aba2cc7c9b24171b53d73d8257a7ca4af6f3a227a1c0f25658514ad8c50a6950e5bcf3dbe80264ff1da5919544e9a44d07bf79a02", 0xf8, r1) add_key$user(&(0x7f00000003c0), &(0x7f0000000400)={'syz', 0x1}, &(0x7f0000000440)="56900cf7f7476bbb3810a4364f4582ceac199c69b060f4145bf8a75f1fbd156a8a7eca523e37b68af99b6f5ff154f37febb1ef6155af1a89f74a4acef3896101fc8ee098739cac22e35aabbd6d53d9b0d3a85d9c355ffedd808bcb6557d676fe36c9ed7904ace7b00eff8c7a95cf66bf88e637a4e862e6252f1380c01345c002c50b83c50892a59beb81ef2c649eeda04a9890e9ece2bb698a53bac83a1230eec8e6fd18ebeff75b1b6857828299706e193b1603b4c89f06a86776869a5d13f76662d7545f0c127edc181d3ac07ad92c", 0xd0, 0xfffffffffffffffc) r2 = add_key$keyring(&(0x7f0000000600), &(0x7f0000000640)={'syz', 0x3}, 0x0, 0x0, r0) r3 = add_key$user(&(0x7f0000000540), &(0x7f0000000580)={'syz', 0x2}, &(0x7f00000005c0)="ec3cba64033242b85d6f8c2f909a2825a394cd8a86eabdbbffb69dfd2794670af2519103a20c430854054d122c11ed", 0x2f, r2) r4 = add_key$user(&(0x7f0000000680), &(0x7f00000006c0)={'syz', 0x0}, &(0x7f0000000700)="822d12d50f3736ce19b65048a004f9bf7b208ff0e94724289d61bfddad220356b150a00298613b355da56ad0ebb44715ec55944bbac45f652b80b1b0d21979d40a34a9a83abfe09d102589484603949c2a84841d9bd47c10a45e8ac6fa940f25a2ab749761d03f19e46b1c69e171cb913da36e752c2b4645a38b980f35fcd8464cb7cab28a4a7d3c8ea40507306bd6feccf0bf2513f3407c45560d02bf1a83018c218807367dfd3804ac6719d512a5eb918f71a3c0fb6789133a104b0bb983ddf2318c3be8bcb6e4481bf0ebb60d71302c1036c39b1b404f35f932e0897d48919fa2c43cd45971aa6174b8c8cf27c083af", 0xf1, r1) keyctl$dh_compute(0x17, &(0x7f0000000800)={r0, r3, r4}, &(0x7f0000000840)=""/74, 0x4a, &(0x7f00000009c0)={&(0x7f00000008c0)={'sha3-384\x00'}, &(0x7f0000000900)="b31e1350fdea2d670d9850ccca105c2f40ad382501128fe86d04ea8d717ff0597e8aee3c99d24c25864028ac47a91e2708e1acfa90a9a7f196b60f063af9cae4986f30b56b25547a8679580ff1d68f3e95b373fa79f6962809c1f9a83758871b1535737ef084979a9ba8d495ed1e71269e395430d46dec3cc8c6c8264fc5a541114bcc12618b452324", 0x89}) r5 = add_key(&(0x7f0000000a00)='keyring\x00', &(0x7f0000000a40)={'syz', 0x3}, &(0x7f0000000a80)="64ec9ca49281c63a3cbe55d7f7c9fc5627a275698dc2d2604404522d0ccc3e0fa3d4ef2e574639b1938cdc28028cacde23f39e8dca1345ccb4ccba178953d3abae3f6484476e39a6e29f454b4cc74fe3df56dd60a86623da5b8905049b91346683293d8dd60390a299af4c1eadaa7b27932868a040a59c9e235d8de561cbad6c765df8a8c0766f5edde6b52b6bf325b7af8c0f026bf580c211f4fb8acef7919f205e52982d2f022f8750f408ccd1ca017125eaa16809c5a133cce8c30694ce25a59c24bd340d9de358bc506bc3ab3047104d785261fda1f6d3a8ab061fbba31922f8597956f69944d0c2c6a1d2b66c0aca91a798b27c6e", 0xf7, 0xfffffffffffffffb) r6 = request_key(&(0x7f0000000b80)='pkcs7_test\x00', &(0x7f0000000bc0)={'syz', 0x2}, &(0x7f0000000c00)='(%@\x00', r0) keyctl$KEYCTL_MOVE(0x1e, r5, r6, r1, 0x1) add_key$user(&(0x7f0000000c40), &(0x7f0000000c80)={'syz', 0x3}, &(0x7f0000000cc0)="6322d2f802ef78ea8fdc0c58f40ef0590fc912caef37fa51542ed2f282ae8badc2c7ec8c196b966da2d4d00f3953456bb5b2443873d35f6a5f4007cc", 0x3c, r1) keyctl$get_security(0x11, 0x0, &(0x7f0000000d00)=""/142, 0x8e) add_key$user(&(0x7f0000000dc0), &(0x7f0000000e00)={'syz', 0x1}, &(0x7f0000000e40)="2921efdea812043bcd39b3abfa28799054e9c8ce1d8291b5924de45fcee7a08aee1d79c6863375eca9bff08be93d1262b3b8385f27693c0094171a6855ef85df2e3503796d350e4b601f6051ca72be2be7ebfb13037efb8db3357589fe1df91299698990c4bdc02f7e5163e0d27d925052339a43b88def3fa93882269ea0b86bd8a3739c625f13fb6048b79eed7539484a69061271b5c5413d3f2de5da547e9f72376125346ea355114b6f8d22ee9d7f7bf6b6f16350dda7962e00d15141431ea129cd1a634af994bcd5b9805e8eb80c0183c663b6b91715a6c5ef224f993ad19cec4e9931cb35fcd6f7d7ed7bed80f7c8aa56345b972f6e9e9ff2a2f3232e29b9aa1dd9782831405a5de99e9b9a3c081051237b8b8736f7d95a04c7f1c7dd454b6c731ca2c931d1191694529875c940cf396a40156913cbc9096856aec4999b68b753c9938ded653d21ed1df8f789352b4ce2aef595c836b3005f05ed68961cb8cd4cc7c06ff558855bf5ebf95cfbe0c8c4d47cb67b6d4d3f80bd5960948f864cdc0192d457ad4e914165b128ce270960e170456764d139e602b0c0638fa905310d6f9be0975b6266fa733a82bdad3af0ddfa0c567c7ef0cd64ac6d2e19c1462a811571957c73d5001085f66a961106e542fb84866e148b3c548835eec340b2e25e8957d57d70ddea7cae6d11b076bebec8a8c5a55ed3bf72bbe26d03de53413a3b1d227a6892b59ada031574eb251da2a439fae6d01c4031b36db2b0668a730262a6514e7e09e583871dcbb37de049dbb80f47edb203841784cb4796d1e89c9f3a99ab47e2924a2fa92a2c40d42b16ac74f16c5800f81cf79483d7c6742bb2561b2b8bc0f9d0957067ac592e67f9eb05819b6a49522487a56abac4d39ae6e9fd418a5ab02b67160d2f0ca69672f7433e853b28fb10574265acaabaa1aeae553e635bde7a76b0315846547b3322ba90f02d20731adc240e97dc8472577ccf46a47a6ebeca17abfc4131447febc1691479c5c4ceff84bc1c0d833623962201eaa958df5ee39a6a75d3f3f375ab270c8a1ce970fb0d9bbfad1c176188c19050e9f520eddc3349b3e50ae249045ba05dce38f02d8073571028e39bab5456b809c74670be9d44e065d916ea33cb4168738bf6c9c55d0b6593b0aa72aa6c64ee4e7d362a51401322aed97cee71463517c8b147f56ef442775131e9214b1d4f6efde5c1ca4e6a948a41527ae0331f72037c3b047a96b612f6f1aaf0742f9d200bad4458799d3d337a243d9e3abd53399cdab6236881a0c4c4f631207586bb6a300d5ffa924ecfb6e876956353c9a2b22ae4d9a22112507342ac6432b84b42e4ca3e725d3df4e0e20f35a96a8dc77ece535c970b78f624393764eb7dff8aa5147a47b5f07b579926add34d5e73345ff1be2b62cb1a9d47c2b5d3507884b45704542d3d978c85519268fd25a89051e4456eca41c7ef2d4458b239814ab64f771d1de787504e62c2fde62d1139699216ea67beee0942f4440b596ba12e9e20228e811b56e980209bdb7b437e2c59dfbb1ddbac0d45deeff79ee7e121945e5b7525885903ed6418e95dd42ceb0bec36c008758ca089fac5353bb1cb7206e793e385fc777f9dabcce5341cdc74310e3fe31b015589fd67c18aef36ff3bc269815325213979f0bc13c983570e26db4aa1c68f9647bad4ecfea7cfae056d2ae62a9017dddd3bf5cdacd24944d81dcbdf117aaaddb544f3f9a73d320797da1425519b18b53c5ad996d3a750a14e711a89a621170bbd863a2ca452a97eef38f9082ed60e9f146ac626f818bd73e72c96cdffe779bee51e6ab7ff9f2eb67795012c02a96115b56ebb36adf75b04af7bb28e363a398731614c151d6147b9023b94708c2839ec526747e9a0d8df76cf3f952114cb4a9a0c38405a7c2d369a295f958ee1a04b6dc4a22e33bb234052cceb03de63b716825792f31ae48b406dfd1086b7418d78123cd21048980a16a18be25d39b3d44cf9886e496308d74bc8cc86e6dc7ba4d26a7e8bb34fa8d4ac9e107b2934b0b76beed3806f5fb15540d488f8482767f1358d7b0885225793321001804d5d059d949418e1b58c84bfc93aeec991fb7d328657220dbd9136dbb856443515d1798a37f36b60c35a37976b46d26ee7a0441052256ab81989fb5a3b2013528cc3aae000f379b68bd8766b5b6ad71ae4e20fe3b1b731425b5e98e2af6360e222c9aad1fcbdadc0e7b25ae72fc0ef2c7a3c344ab5813d22dca4ae430f1a0760aec9d07ee7654e1d82e530638db2c648c44978182077d8a3c4c5ac0f9634bfd1efe773270f16af8c915b7814d679d317a2525581d5fd0aa8e155dce1716d7f367918ce2cf536014614048da4638142b9807d5c4156684f71ef69fee3538e47f9dfc59898807e78c469a34647bb8ebfa5da85a9d640c4f1c0e588480f296dc094e57ee77067c12d05034b589245fd830767e0418b990b13b68c8171b9dba5ae20d8d1de9833dbe01f757e1b2612b892079f96249eac716c5c1cd623baef7a6daeb88967d3a699e03ea51831cb09418d3e39b754c2bddd2e6e8438abc0b03487a2f9f65cb9c167fb243c039ccbe9463e74077464c38739188657bb59ab887d320ab5205d4c557307784e80f758c2fe530168dd9fde1dfbcf15437afdedd675df5d15c330f2d70595425bc464dbc50ecac1fef291d43cc4856ac23f53d41885f585a6d88d8f08065e57bdfeb7239b74a913a706410718479e4830b5dc6c1a33c1d8db9448a6dc62a08fcc6b97357d7deddd87c166e4064520a6f825c687998879c2833d3dbf589857e4dbc913887d267e464b260c6082a3943e4d9c556e33d1e0e0411bb58e85217a5c199559bc81a82c95fc5376b003b266946f1d53c8c52234bb3b4f4e908c80f2dcbbce2c648e7772b5d5207a9d6122a26661fcac63db0ac1da9c3f54e956d6bfe3fb08f874fa9efd199e7628e211e375b8b673de55222e7c534680ff9cb6f299dbe18e53c5f15beb19abf931af71c02b21024adb3278d551dfc513be9fd197b15bedbae65857ad8fc44024a7e2a90848f1a1f4a6143e26f0ed8aa9c38e92ea856d1c1d26829408b16fc2da22431045283bfc6c42c63ea3d557dc7784296c6764202d60186a1fe17b852154ad691eb4066554797a2e6a3d4eddc4fbe876fab6d1b20270399c016c9f1c15d9be12bd6340383ab8ab85f6fc5df85f1a53019683eaa843da40b9f0768b605d9d5d0bf6d49369c61878ac4ac8a10c5a95ecf62f7c77d037b5640f5685c70e41e5268e557e40d76403dd55d24e0b5834bd90e15e8f27a6b1ba8ef2615f1229bbddcbeef46a8d4c656cc1d41aa9bfd5ea7c0f5bbef203ea37d299f00db4351bea6b1fab0d234fb6b20548423f5f09a4a212cdd84952fed0393315e47405148a9719d57c7dff063594987a978cdf5088ba9dde684aa42d84f43ebf8f5a7d9bf761ee6c4bc8aa70dc2876c8ae00c6136690202678b617bd77bbf3c504c591a43e357c55a2243c7ca89b2b4eeedffe3f90495246846fb4f76229b954403c34fe4cd056cf253a802093f155445121f6f246f4a368c7181bbbfe37f2db47fa9f0f04fea1216b4834cc1a5d20465aecb24e67f5a644396e976460d45e4ef62938a529cdc179f23b50226ff5fe3dfd98d0474a4c7ea47f26ac631ca1788c5a7c5095577e401d1385f3cd75420628c2c3413f5344706c50106fc7a6e1be28437c473ebc29602d130e258672088b9a5f134170716b38fbac2b00000a84de69d7bab214dec51db02efaecb860cce597f1ef35e0b0c9eb022c533ce3013e8c0d75358af8eeffe380f04cbf5de3f7d294e2bdd7d0e178608b223e6186516a7b3bba09ece0be60c1d09838e239bfc196263dda16716a51f41c273ad69869638284a69c6ec37fb5f035f08db7a59956cfcd92662c2188f594e5610fc0ed3db018d8d95ad366b42017e6780c4157b76a79b81aeacff7ec7b83ca8ed3ac55fa7b768a663b673770bca30f62ee74fcb9d94f8cb83378166a24b63773a80d0325e02e9a3e6a38ec5d230b9062e266e59dd44cfe8357da49f572d141b397709b104f82c019384fa29cf1a17c6325a3d88dbf596b730c1d54995115575d8f85f5be286c9af1e4db50b15691c6502a6cd7640e62343c26c50a489c56ff0ebe2292691a5bd7f850015f9c8e94daf796e088496eff60281ff560e26b0f3f3ee24faa95b591c3a296f2f2ba4c970c98468d183856b3be7b19139182d12e9919ea37b272f3d77b9a43efa0088427709927410c2c02dd191185edf77d1c94597f94ba3c99d8165e280f0224837762dfad0c7f9d16b379c6d99f6d3af6d446909c90cab812aa2f7e7dab8f0d2d68d126efcb4f55f125ca656a647af881c202287f17e6d625732e8fc8ec31c5e6c1f4db72f4c9a1f47b2480bc355c7ee1008cd2a87d9e651c90b094f82266de4797933d89e8638bf93196ddaccb87b6984335dbeafa8904adec0d4f95abb247225bca0893adb1f4ebbc656a33c12c259c2ffb10edfd8d8878dd9abcb18cbc1d8988b96985018b97d570431d9b3a9055a40cfbe5ea665d876a079743dd705eb18a4398224d6369c2b22050f0d7e406635df34843389946989c17c08b782d2df256a0815d9405a2987f588ac96ad0249f69f48653c3d60a424ab910534f9b7ddbf7609c84a53ff29e346c6cf81cffe0e49ce302851d0f92d10791ef33d0c57f2b9bb8a4dec97ec98a7aa9d06d59931dfa5f2184f861c563b9b873a97001d927faad71f7f3b536bc7f2df541c1f6f50ebabb7aa655ea33e107520c53feda8f9b109ef9e604dfead455cf9648ca7ec81a5359cb622210363e5d0670bcfc191403f7723b5398ca5ff743ddfc79c6830dc21d6bd8933eb1a0b0d7d51a57a4d46bae8949a7bf5df353e22b5cc5db1d148bd5b28f5bca6d00f59d9ce757305c55eadd2d4646895e0a8e3feb46c3730a4ffbc4f7039f9bf5b1d25927eb1fba41d5b234b7baefba996ea470aba6fe4bfcb23e38758eac9f901bb7980cb2da30831a6c2fc02efece7eeaa35f53b14a1a387244fc6046079fdb67f5e98754c5300e8f0ef29b3034f09bcbaa27cb28bb506a4ce45702fdc952bec901313b7d52246bb14834257e86911e1fa2d18fbc968dbaf6efd1a51641ca76887073565743536ad1f91991321d5a53626ad0f7bacbd32d9e48ca92e4e5898394a9a2e700ff14c6760ed547bc2af251ed608c2f83d1d52661940c84b97563d2b0b0361cb60b8c42b3b5d2a8de5fb406327b41a552fa9a13d930e98f8ad57a68db91b8febb0c59d3407a691d4a23985356648097cd7d35dd27dda175707c2174599492ecd8541308b60242e653cda72ea363c744e35189ee0301d8d1e7b5ffa796fb2de98841bbfd896f5bc1fe48162591a74e6d7df6f8cbbeaac1d3cc29e3b8e5472bc95b488df7a8d0f687a4df29ed3ed0b89ca7a4b608f39572508e797828341143c3e2e847c89879d6ada37e27e6c36c99b094071c8f3bd5e89e1a05da55f52ae51b48cce9dc5673cac906b3c670b67a0fa7c3c43b706ab1ddb57535a27763f43cd889aafea4f31d73654a89c453015d331d90d16d6e5a9308346841235316511a44a32c41d700898ebaf6b16819096c2f6312f7cc8237c1708d2385b59f39148293b2a6f875a37541888971d95952b0e7889504d6d89b5bcec3e9ac46a98a94c287078a794ef12bd413b0c315ecd350d770e8511a9715781faebee60c59cf533a9d5e3bf55d59b18b2179a712f2fb78268aae", 0x1000, r2) add_key$user(&(0x7f0000001e40), &(0x7f0000001e80)={'syz', 0x3}, &(0x7f0000001ec0)="ae524eb69bd708195588ee462433718dce52ddf26dc8f9263fd5dbc097f8a3bb62e68cba274d2d3f4912e6cda5bce9c22ee5f906d0ef655a420e439e5b784c8bc48b36fb6a95179ce883c4f9547d966562045c2153d411d0a68e2d65a001636df4d3ca7f5c4c0ee965d06d228ac06493da144a894a20712f9c478d543299b170b53c1eb68fb987bbfa6042f5e7e0d6db30e737c6d22ea5fbc128f0897cc387a666619e7b5053a2ab7ed91709090c3d5e86d396bd6d07266d12f46e03f597e888aacb4de671", 0xc5, 0xfffffffffffffff8) add_key$user(&(0x7f0000001fc0), &(0x7f0000002000)={'syz', 0x0}, &(0x7f0000002040)="b1dbe3fdaf8e891496c59c096d8d7c7493ce4ce821fe0e73ec3ed411f98d97f94ecf8e434115f7f30fee84b377e2960736a04af17d6b0eb51c0b7b9bc611b3fa8b7a2b581048853bcae182d9100bc6a1d609df35531bc7ce6e783f88dcdcf44550ea8d92f935e23ff0a8e2fa8e442b7e2b6e686292edad7068a0eaecc9f642839049e1bd3e614080a1690b241ed9def35aad2d17da79f1fa93cdfe1d3ca90823fcc660f1acdb87628e057f654ea34ddba2acc35ff7c3ef57830bf9eee32db88c4478f39e2dd38c954f556cda0329a3c50d3dab919b3559c231de6b98", 0xdc, r2) r7 = add_key$fscrypt_v1(&(0x7f0000002140), &(0x7f0000002180)={'fscrypt:', @auto=[0x63, 0x31, 0x32, 0x33, 0x30, 0x63, 0x35, 0x31, 0x34, 0x66, 0x32, 0x35, 0x66, 0x33, 0x33, 0x33]}, &(0x7f00000021c0)={0x0, "45cfcbca86d14d629e6b3c0ce66ddfd2fb19b56717555fa7a03d23ce9c2d497ca5006cc10c9b279d315949f95ce138ec82ffe31202d3273dcc7a253b17eaa3aa", 0x32}, 0x48, r2) keyctl$revoke(0x3, r7) add_key$user(&(0x7f0000002240), &(0x7f0000002280)={'syz', 0x2}, &(0x7f00000022c0)="628882d02e238ea495d147e4b9c558b7c96ee88e3f96aca731d14c1af61100b8c6d55464f6c0f80ceeafb6eeae1eec2499485baa3b4f10d232d4a97db2c45206fe9a2167723a6ff244c340e288b5cabc105948aaea70698ca7212e9080a36bdbe8f0967e6dfc917b1fad55289c67f02ea8ba18c6ccaa7570fba7b410d4a202eef6bfba2966e783ddf614ceb4997661062c5425fb65fa379858d27a839317b36768e2b61cf55414e5e7e7731be36021c35ddb1b305f93", 0xb6, r2) 00:06:24 executing program 2: r0 = socket$inet6_sctp(0xa, 0x1, 0x84) getsockopt$inet_sctp6_SCTP_PEER_ADDR_THLDS(r0, 0x84, 0x14, &(0x7f0000000000)={0x0, @in={{0x2, 0x0, @empty}}}, &(0x7f00000000c0)=0x4) r1 = socket$inet_sctp(0x2, 0x1, 0x84) getsockopt$inet_sctp_SCTP_MAX_BURST(r1, 0x84, 0xd, &(0x7f0000000000)=@assoc_value={0x0}, &(0x7f0000000040)=0x8) getsockopt$inet_sctp6_SCTP_DELAYED_SACK(0xffffffffffffffff, 0x84, 0x10, &(0x7f0000000100)=@assoc_value={r2}, 0x0) r3 = add_key$user(&(0x7f0000000200), &(0x7f0000000300)={'syz', 0x0}, &(0x7f00000002c0)="f5", 0x6a, 0xfffffffffffffffe) r4 = add_key$user(&(0x7f00000003c0), &(0x7f0000000440), &(0x7f00000000c0), 0xc9, 0xfffffffffffffffd) keyctl$dh_compute(0x17, &(0x7f0000000140)={r3, r4, r3}, &(0x7f00000000c0)=""/83, 0xfffffffffffffe4f, 0x0) r5 = add_key$fscrypt_v1(&(0x7f0000000240), &(0x7f0000000280)={'fscrypt:', @desc3}, &(0x7f0000000340)={0x0, "7b8e055124afa5ca36c9a7d36f358313ee9e874e1c07e64056bebc6c0b51d90a9f12606de98f06665235644f993008502452c8c9aa6d62f3cd79ae414292b3b0", 0x1b}, 0x48, 0xfffffffffffffff9) add_key(&(0x7f0000000180)='dns_resolver\x00', &(0x7f00000001c0)={'syz', 0x2}, 0x0, 0x0, r5) socket$inet6_sctp(0xa, 0x1, 0x84) (async) getsockopt$inet_sctp6_SCTP_PEER_ADDR_THLDS(r0, 0x84, 0x14, &(0x7f0000000000)={0x0, @in={{0x2, 0x0, @empty}}}, &(0x7f00000000c0)=0x4) (async) socket$inet_sctp(0x2, 0x1, 0x84) (async) getsockopt$inet_sctp_SCTP_MAX_BURST(r1, 0x84, 0xd, &(0x7f0000000000)=@assoc_value, &(0x7f0000000040)=0x8) (async) getsockopt$inet_sctp6_SCTP_DELAYED_SACK(0xffffffffffffffff, 0x84, 0x10, &(0x7f0000000100)=@assoc_value={r2}, 0x0) (async) add_key$user(&(0x7f0000000200), &(0x7f0000000300)={'syz', 0x0}, &(0x7f00000002c0)="f5", 0x6a, 0xfffffffffffffffe) (async) add_key$user(&(0x7f00000003c0), &(0x7f0000000440), &(0x7f00000000c0), 0xc9, 0xfffffffffffffffd) (async) keyctl$dh_compute(0x17, &(0x7f0000000140)={r3, r4, r3}, &(0x7f00000000c0)=""/83, 0xfffffffffffffe4f, 0x0) (async) add_key$fscrypt_v1(&(0x7f0000000240), &(0x7f0000000280)={'fscrypt:', @desc3}, &(0x7f0000000340)={0x0, "7b8e055124afa5ca36c9a7d36f358313ee9e874e1c07e64056bebc6c0b51d90a9f12606de98f06665235644f993008502452c8c9aa6d62f3cd79ae414292b3b0", 0x1b}, 0x48, 0xfffffffffffffff9) (async) add_key(&(0x7f0000000180)='dns_resolver\x00', &(0x7f00000001c0)={'syz', 0x2}, 0x0, 0x0, r5) (async) [ 384.121222][T21606] sctp: [Deprecated]: syz-executor.2 (pid 21606) Use of int in max_burst socket option. [ 384.121222][T21606] Use struct sctp_assoc_value instead 00:06:24 executing program 4: sendmsg$nl_route(0xffffffffffffffff, &(0x7f0000000200)={0x0, 0x0, &(0x7f00000000c0)={&(0x7f0000000100)=@ipv6_newrule={0x24, 0x18, 0x409, 0x0, 0x0, {}, [@FIB_RULE_POLICY=@FRA_GOTO={0x8, 0x1e, 0x7}]}, 0x24}}, 0x0) 00:06:24 executing program 3: socket$can_j1939(0x1d, 0x2, 0x7) r0 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route(r0, &(0x7f00000000c0)={0x0, 0x0, &(0x7f0000000080)={&(0x7f0000000040)=@ipv6_newroute={0x38, 0x18, 0x1, 0x0, 0x0, {}, [@RTA_GATEWAY={0x14, 0x5, @loopback}, @RTA_OIF={0x8}]}, 0x38}}, 0x0) socket$can_j1939(0x1d, 0x2, 0x7) (async) socket$nl_route(0x10, 0x3, 0x0) (async) sendmsg$nl_route(r0, &(0x7f00000000c0)={0x0, 0x0, &(0x7f0000000080)={&(0x7f0000000040)=@ipv6_newroute={0x38, 0x18, 0x1, 0x0, 0x0, {}, [@RTA_GATEWAY={0x14, 0x5, @loopback}, @RTA_OIF={0x8}]}, 0x38}}, 0x0) (async) 00:06:24 executing program 4: sendmsg$nl_route(0xffffffffffffffff, &(0x7f0000000200)={0x0, 0x0, &(0x7f00000000c0)={&(0x7f0000000100)=@ipv6_newrule={0x24, 0x18, 0x409, 0x0, 0x0, {}, [@FIB_RULE_POLICY=@FRA_GOTO={0x8, 0x1e, 0x7}]}, 0x24}}, 0x0) 00:06:24 executing program 1: r0 = request_key(&(0x7f00000000c0)='rxrpc\x00', &(0x7f0000000100)={'syz', 0x0}, &(0x7f0000000140)='%&\x00', 0x0) r1 = request_key(&(0x7f0000000000)='keyring\x00', &(0x7f0000000040)={'syz', 0x0}, &(0x7f0000000080)='\x00', r0) request_key(&(0x7f0000000180)='rxrpc\x00', &(0x7f00000001c0)={'syz', 0x3}, &(0x7f0000000200)='syz', r1) add_key$user(&(0x7f0000000240), &(0x7f0000000280)={'syz', 0x3}, &(0x7f00000002c0)="48ec91088aa7987be3781266c32fcb81d430464e147c34beaa7170d16799633ed93a46771a075b1dc494b49cd72841776497e7144f115cea72d1554c7a1152c6817e5f819e2c9fb5cd2a939a5d59c1cf2e84e1420f0b3a86dbeaa44d64509faca9ebc714537c3380500bd8dd3cc87db6075958a4fd672e0d91a1d3a6a9d9f799e93dbcf56a2a17b645074933cb7f8c092c2d587254f0b5762837b679fe87d98fc05a1ce54c8d9742ac3cb15d85507f5c35b8f4163d9e4e10c09ac81568555b26a69cbe3aba2cc7c9b24171b53d73d8257a7ca4af6f3a227a1c0f25658514ad8c50a6950e5bcf3dbe80264ff1da5919544e9a44d07bf79a02", 0xf8, r1) add_key$user(&(0x7f00000003c0), &(0x7f0000000400)={'syz', 0x1}, &(0x7f0000000440)="56900cf7f7476bbb3810a4364f4582ceac199c69b060f4145bf8a75f1fbd156a8a7eca523e37b68af99b6f5ff154f37febb1ef6155af1a89f74a4acef3896101fc8ee098739cac22e35aabbd6d53d9b0d3a85d9c355ffedd808bcb6557d676fe36c9ed7904ace7b00eff8c7a95cf66bf88e637a4e862e6252f1380c01345c002c50b83c50892a59beb81ef2c649eeda04a9890e9ece2bb698a53bac83a1230eec8e6fd18ebeff75b1b6857828299706e193b1603b4c89f06a86776869a5d13f76662d7545f0c127edc181d3ac07ad92c", 0xd0, 0xfffffffffffffffc) r2 = add_key$keyring(&(0x7f0000000600), &(0x7f0000000640)={'syz', 0x3}, 0x0, 0x0, r0) r3 = add_key$user(&(0x7f0000000540), &(0x7f0000000580)={'syz', 0x2}, &(0x7f00000005c0)="ec3cba64033242b85d6f8c2f909a2825a394cd8a86eabdbbffb69dfd2794670af2519103a20c430854054d122c11ed", 0x2f, r2) r4 = add_key$user(&(0x7f0000000680), &(0x7f00000006c0)={'syz', 0x0}, &(0x7f0000000700)="822d12d50f3736ce19b65048a004f9bf7b208ff0e94724289d61bfddad220356b150a00298613b355da56ad0ebb44715ec55944bbac45f652b80b1b0d21979d40a34a9a83abfe09d102589484603949c2a84841d9bd47c10a45e8ac6fa940f25a2ab749761d03f19e46b1c69e171cb913da36e752c2b4645a38b980f35fcd8464cb7cab28a4a7d3c8ea40507306bd6feccf0bf2513f3407c45560d02bf1a83018c218807367dfd3804ac6719d512a5eb918f71a3c0fb6789133a104b0bb983ddf2318c3be8bcb6e4481bf0ebb60d71302c1036c39b1b404f35f932e0897d48919fa2c43cd45971aa6174b8c8cf27c083af", 0xf1, r1) keyctl$dh_compute(0x17, &(0x7f0000000800)={r0, r3, r4}, &(0x7f0000000840)=""/74, 0x4a, &(0x7f00000009c0)={&(0x7f00000008c0)={'sha3-384\x00'}, &(0x7f0000000900)="b31e1350fdea2d670d9850ccca105c2f40ad382501128fe86d04ea8d717ff0597e8aee3c99d24c25864028ac47a91e2708e1acfa90a9a7f196b60f063af9cae4986f30b56b25547a8679580ff1d68f3e95b373fa79f6962809c1f9a83758871b1535737ef084979a9ba8d495ed1e71269e395430d46dec3cc8c6c8264fc5a541114bcc12618b452324", 0x89}) r5 = add_key(&(0x7f0000000a00)='keyring\x00', &(0x7f0000000a40)={'syz', 0x3}, &(0x7f0000000a80)="64ec9ca49281c63a3cbe55d7f7c9fc5627a275698dc2d2604404522d0ccc3e0fa3d4ef2e574639b1938cdc28028cacde23f39e8dca1345ccb4ccba178953d3abae3f6484476e39a6e29f454b4cc74fe3df56dd60a86623da5b8905049b91346683293d8dd60390a299af4c1eadaa7b27932868a040a59c9e235d8de561cbad6c765df8a8c0766f5edde6b52b6bf325b7af8c0f026bf580c211f4fb8acef7919f205e52982d2f022f8750f408ccd1ca017125eaa16809c5a133cce8c30694ce25a59c24bd340d9de358bc506bc3ab3047104d785261fda1f6d3a8ab061fbba31922f8597956f69944d0c2c6a1d2b66c0aca91a798b27c6e", 0xf7, 0xfffffffffffffffb) r6 = request_key(&(0x7f0000000b80)='pkcs7_test\x00', &(0x7f0000000bc0)={'syz', 0x2}, &(0x7f0000000c00)='(%@\x00', r0) keyctl$KEYCTL_MOVE(0x1e, r5, r6, r1, 0x1) add_key$user(&(0x7f0000000c40), &(0x7f0000000c80)={'syz', 0x3}, &(0x7f0000000cc0)="6322d2f802ef78ea8fdc0c58f40ef0590fc912caef37fa51542ed2f282ae8badc2c7ec8c196b966da2d4d00f3953456bb5b2443873d35f6a5f4007cc", 0x3c, r1) keyctl$get_security(0x11, 0x0, &(0x7f0000000d00)=""/142, 0x8e) add_key$user(&(0x7f0000000dc0), &(0x7f0000000e00)={'syz', 0x1}, &(0x7f0000000e40)="2921efdea812043bcd39b3abfa28799054e9c8ce1d8291b5924de45fcee7a08aee1d79c6863375eca9bff08be93d1262b3b8385f27693c0094171a6855ef85df2e3503796d350e4b601f6051ca72be2be7ebfb13037efb8db3357589fe1df91299698990c4bdc02f7e5163e0d27d925052339a43b88def3fa93882269ea0b86bd8a3739c625f13fb6048b79eed7539484a69061271b5c5413d3f2de5da547e9f72376125346ea355114b6f8d22ee9d7f7bf6b6f16350dda7962e00d15141431ea129cd1a634af994bcd5b9805e8eb80c0183c663b6b91715a6c5ef224f993ad19cec4e9931cb35fcd6f7d7ed7bed80f7c8aa56345b972f6e9e9ff2a2f3232e29b9aa1dd9782831405a5de99e9b9a3c081051237b8b8736f7d95a04c7f1c7dd454b6c731ca2c931d1191694529875c940cf396a40156913cbc9096856aec4999b68b753c9938ded653d21ed1df8f789352b4ce2aef595c836b3005f05ed68961cb8cd4cc7c06ff558855bf5ebf95cfbe0c8c4d47cb67b6d4d3f80bd5960948f864cdc0192d457ad4e914165b128ce270960e170456764d139e602b0c0638fa905310d6f9be0975b6266fa733a82bdad3af0ddfa0c567c7ef0cd64ac6d2e19c1462a811571957c73d5001085f66a961106e542fb84866e148b3c548835eec340b2e25e8957d57d70ddea7cae6d11b076bebec8a8c5a55ed3bf72bbe26d03de53413a3b1d227a6892b59ada031574eb251da2a439fae6d01c4031b36db2b0668a730262a6514e7e09e583871dcbb37de049dbb80f47edb203841784cb4796d1e89c9f3a99ab47e2924a2fa92a2c40d42b16ac74f16c5800f81cf79483d7c6742bb2561b2b8bc0f9d0957067ac592e67f9eb05819b6a49522487a56abac4d39ae6e9fd418a5ab02b67160d2f0ca69672f7433e853b28fb10574265acaabaa1aeae553e635bde7a76b0315846547b3322ba90f02d20731adc240e97dc8472577ccf46a47a6ebeca17abfc4131447febc1691479c5c4ceff84bc1c0d833623962201eaa958df5ee39a6a75d3f3f375ab270c8a1ce970fb0d9bbfad1c176188c19050e9f520eddc3349b3e50ae249045ba05dce38f02d8073571028e39bab5456b809c74670be9d44e065d916ea33cb4168738bf6c9c55d0b6593b0aa72aa6c64ee4e7d362a51401322aed97cee71463517c8b147f56ef442775131e9214b1d4f6efde5c1ca4e6a948a41527ae0331f72037c3b047a96b612f6f1aaf0742f9d200bad4458799d3d337a243d9e3abd53399cdab6236881a0c4c4f631207586bb6a300d5ffa924ecfb6e876956353c9a2b22ae4d9a22112507342ac6432b84b42e4ca3e725d3df4e0e20f35a96a8dc77ece535c970b78f624393764eb7dff8aa5147a47b5f07b579926add34d5e73345ff1be2b62cb1a9d47c2b5d3507884b45704542d3d978c85519268fd25a89051e4456eca41c7ef2d4458b239814ab64f771d1de787504e62c2fde62d1139699216ea67beee0942f4440b596ba12e9e20228e811b56e980209bdb7b437e2c59dfbb1ddbac0d45deeff79ee7e121945e5b7525885903ed6418e95dd42ceb0bec36c008758ca089fac5353bb1cb7206e793e385fc777f9dabcce5341cdc74310e3fe31b015589fd67c18aef36ff3bc269815325213979f0bc13c983570e26db4aa1c68f9647bad4ecfea7cfae056d2ae62a9017dddd3bf5cdacd24944d81dcbdf117aaaddb544f3f9a73d320797da1425519b18b53c5ad996d3a750a14e711a89a621170bbd863a2ca452a97eef38f9082ed60e9f146ac626f818bd73e72c96cdffe779bee51e6ab7ff9f2eb67795012c02a96115b56ebb36adf75b04af7bb28e363a398731614c151d6147b9023b94708c2839ec526747e9a0d8df76cf3f952114cb4a9a0c38405a7c2d369a295f958ee1a04b6dc4a22e33bb234052cceb03de63b716825792f31ae48b406dfd1086b7418d78123cd21048980a16a18be25d39b3d44cf9886e496308d74bc8cc86e6dc7ba4d26a7e8bb34fa8d4ac9e107b2934b0b76beed3806f5fb15540d488f8482767f1358d7b0885225793321001804d5d059d949418e1b58c84bfc93aeec991fb7d328657220dbd9136dbb856443515d1798a37f36b60c35a37976b46d26ee7a0441052256ab81989fb5a3b2013528cc3aae000f379b68bd8766b5b6ad71ae4e20fe3b1b731425b5e98e2af6360e222c9aad1fcbdadc0e7b25ae72fc0ef2c7a3c344ab5813d22dca4ae430f1a0760aec9d07ee7654e1d82e530638db2c648c44978182077d8a3c4c5ac0f9634bfd1efe773270f16af8c915b7814d679d317a2525581d5fd0aa8e155dce1716d7f367918ce2cf536014614048da4638142b9807d5c4156684f71ef69fee3538e47f9dfc59898807e78c469a34647bb8ebfa5da85a9d640c4f1c0e588480f296dc094e57ee77067c12d05034b589245fd830767e0418b990b13b68c8171b9dba5ae20d8d1de9833dbe01f757e1b2612b892079f96249eac716c5c1cd623baef7a6daeb88967d3a699e03ea51831cb09418d3e39b754c2bddd2e6e8438abc0b03487a2f9f65cb9c167fb243c039ccbe9463e74077464c38739188657bb59ab887d320ab5205d4c557307784e80f758c2fe530168dd9fde1dfbcf15437afdedd675df5d15c330f2d70595425bc464dbc50ecac1fef291d43cc4856ac23f53d41885f585a6d88d8f08065e57bdfeb7239b74a913a706410718479e4830b5dc6c1a33c1d8db9448a6dc62a08fcc6b97357d7deddd87c166e4064520a6f825c687998879c2833d3dbf589857e4dbc913887d267e464b260c6082a3943e4d9c556e33d1e0e0411bb58e85217a5c199559bc81a82c95fc5376b003b266946f1d53c8c52234bb3b4f4e908c80f2dcbbce2c648e7772b5d5207a9d6122a26661fcac63db0ac1da9c3f54e956d6bfe3fb08f874fa9efd199e7628e211e375b8b673de55222e7c534680ff9cb6f299dbe18e53c5f15beb19abf931af71c02b21024adb3278d551dfc513be9fd197b15bedbae65857ad8fc44024a7e2a90848f1a1f4a6143e26f0ed8aa9c38e92ea856d1c1d26829408b16fc2da22431045283bfc6c42c63ea3d557dc7784296c6764202d60186a1fe17b852154ad691eb4066554797a2e6a3d4eddc4fbe876fab6d1b20270399c016c9f1c15d9be12bd6340383ab8ab85f6fc5df85f1a53019683eaa843da40b9f0768b605d9d5d0bf6d49369c61878ac4ac8a10c5a95ecf62f7c77d037b5640f5685c70e41e5268e557e40d76403dd55d24e0b5834bd90e15e8f27a6b1ba8ef2615f1229bbddcbeef46a8d4c656cc1d41aa9bfd5ea7c0f5bbef203ea37d299f00db4351bea6b1fab0d234fb6b20548423f5f09a4a212cdd84952fed0393315e47405148a9719d57c7dff063594987a978cdf5088ba9dde684aa42d84f43ebf8f5a7d9bf761ee6c4bc8aa70dc2876c8ae00c6136690202678b617bd77bbf3c504c591a43e357c55a2243c7ca89b2b4eeedffe3f90495246846fb4f76229b954403c34fe4cd056cf253a802093f155445121f6f246f4a368c7181bbbfe37f2db47fa9f0f04fea1216b4834cc1a5d20465aecb24e67f5a644396e976460d45e4ef62938a529cdc179f23b50226ff5fe3dfd98d0474a4c7ea47f26ac631ca1788c5a7c5095577e401d1385f3cd75420628c2c3413f5344706c50106fc7a6e1be28437c473ebc29602d130e258672088b9a5f134170716b38fbac2b00000a84de69d7bab214dec51db02efaecb860cce597f1ef35e0b0c9eb022c533ce3013e8c0d75358af8eeffe380f04cbf5de3f7d294e2bdd7d0e178608b223e6186516a7b3bba09ece0be60c1d09838e239bfc196263dda16716a51f41c273ad69869638284a69c6ec37fb5f035f08db7a59956cfcd92662c2188f594e5610fc0ed3db018d8d95ad366b42017e6780c4157b76a79b81aeacff7ec7b83ca8ed3ac55fa7b768a663b673770bca30f62ee74fcb9d94f8cb83378166a24b63773a80d0325e02e9a3e6a38ec5d230b9062e266e59dd44cfe8357da49f572d141b397709b104f82c019384fa29cf1a17c6325a3d88dbf596b730c1d54995115575d8f85f5be286c9af1e4db50b15691c6502a6cd7640e62343c26c50a489c56ff0ebe2292691a5bd7f850015f9c8e94daf796e088496eff60281ff560e26b0f3f3ee24faa95b591c3a296f2f2ba4c970c98468d183856b3be7b19139182d12e9919ea37b272f3d77b9a43efa0088427709927410c2c02dd191185edf77d1c94597f94ba3c99d8165e280f0224837762dfad0c7f9d16b379c6d99f6d3af6d446909c90cab812aa2f7e7dab8f0d2d68d126efcb4f55f125ca656a647af881c202287f17e6d625732e8fc8ec31c5e6c1f4db72f4c9a1f47b2480bc355c7ee1008cd2a87d9e651c90b094f82266de4797933d89e8638bf93196ddaccb87b6984335dbeafa8904adec0d4f95abb247225bca0893adb1f4ebbc656a33c12c259c2ffb10edfd8d8878dd9abcb18cbc1d8988b96985018b97d570431d9b3a9055a40cfbe5ea665d876a079743dd705eb18a4398224d6369c2b22050f0d7e406635df34843389946989c17c08b782d2df256a0815d9405a2987f588ac96ad0249f69f48653c3d60a424ab910534f9b7ddbf7609c84a53ff29e346c6cf81cffe0e49ce302851d0f92d10791ef33d0c57f2b9bb8a4dec97ec98a7aa9d06d59931dfa5f2184f861c563b9b873a97001d927faad71f7f3b536bc7f2df541c1f6f50ebabb7aa655ea33e107520c53feda8f9b109ef9e604dfead455cf9648ca7ec81a5359cb622210363e5d0670bcfc191403f7723b5398ca5ff743ddfc79c6830dc21d6bd8933eb1a0b0d7d51a57a4d46bae8949a7bf5df353e22b5cc5db1d148bd5b28f5bca6d00f59d9ce757305c55eadd2d4646895e0a8e3feb46c3730a4ffbc4f7039f9bf5b1d25927eb1fba41d5b234b7baefba996ea470aba6fe4bfcb23e38758eac9f901bb7980cb2da30831a6c2fc02efece7eeaa35f53b14a1a387244fc6046079fdb67f5e98754c5300e8f0ef29b3034f09bcbaa27cb28bb506a4ce45702fdc952bec901313b7d52246bb14834257e86911e1fa2d18fbc968dbaf6efd1a51641ca76887073565743536ad1f91991321d5a53626ad0f7bacbd32d9e48ca92e4e5898394a9a2e700ff14c6760ed547bc2af251ed608c2f83d1d52661940c84b97563d2b0b0361cb60b8c42b3b5d2a8de5fb406327b41a552fa9a13d930e98f8ad57a68db91b8febb0c59d3407a691d4a23985356648097cd7d35dd27dda175707c2174599492ecd8541308b60242e653cda72ea363c744e35189ee0301d8d1e7b5ffa796fb2de98841bbfd896f5bc1fe48162591a74e6d7df6f8cbbeaac1d3cc29e3b8e5472bc95b488df7a8d0f687a4df29ed3ed0b89ca7a4b608f39572508e797828341143c3e2e847c89879d6ada37e27e6c36c99b094071c8f3bd5e89e1a05da55f52ae51b48cce9dc5673cac906b3c670b67a0fa7c3c43b706ab1ddb57535a27763f43cd889aafea4f31d73654a89c453015d331d90d16d6e5a9308346841235316511a44a32c41d700898ebaf6b16819096c2f6312f7cc8237c1708d2385b59f39148293b2a6f875a37541888971d95952b0e7889504d6d89b5bcec3e9ac46a98a94c287078a794ef12bd413b0c315ecd350d770e8511a9715781faebee60c59cf533a9d5e3bf55d59b18b2179a712f2fb78268aae", 0x1000, r2) add_key$user(&(0x7f0000001e40), &(0x7f0000001e80)={'syz', 0x3}, &(0x7f0000001ec0)="ae524eb69bd708195588ee462433718dce52ddf26dc8f9263fd5dbc097f8a3bb62e68cba274d2d3f4912e6cda5bce9c22ee5f906d0ef655a420e439e5b784c8bc48b36fb6a95179ce883c4f9547d966562045c2153d411d0a68e2d65a001636df4d3ca7f5c4c0ee965d06d228ac06493da144a894a20712f9c478d543299b170b53c1eb68fb987bbfa6042f5e7e0d6db30e737c6d22ea5fbc128f0897cc387a666619e7b5053a2ab7ed91709090c3d5e86d396bd6d07266d12f46e03f597e888aacb4de671", 0xc5, 0xfffffffffffffff8) add_key$user(&(0x7f0000001fc0), &(0x7f0000002000)={'syz', 0x0}, &(0x7f0000002040)="b1dbe3fdaf8e891496c59c096d8d7c7493ce4ce821fe0e73ec3ed411f98d97f94ecf8e434115f7f30fee84b377e2960736a04af17d6b0eb51c0b7b9bc611b3fa8b7a2b581048853bcae182d9100bc6a1d609df35531bc7ce6e783f88dcdcf44550ea8d92f935e23ff0a8e2fa8e442b7e2b6e686292edad7068a0eaecc9f642839049e1bd3e614080a1690b241ed9def35aad2d17da79f1fa93cdfe1d3ca90823fcc660f1acdb87628e057f654ea34ddba2acc35ff7c3ef57830bf9eee32db88c4478f39e2dd38c954f556cda0329a3c50d3dab919b3559c231de6b98", 0xdc, r2) r7 = add_key$fscrypt_v1(&(0x7f0000002140), &(0x7f0000002180)={'fscrypt:', @auto=[0x63, 0x31, 0x32, 0x33, 0x30, 0x63, 0x35, 0x31, 0x34, 0x66, 0x32, 0x35, 0x66, 0x33, 0x33, 0x33]}, &(0x7f00000021c0)={0x0, "45cfcbca86d14d629e6b3c0ce66ddfd2fb19b56717555fa7a03d23ce9c2d497ca5006cc10c9b279d315949f95ce138ec82ffe31202d3273dcc7a253b17eaa3aa", 0x32}, 0x48, r2) keyctl$revoke(0x3, r7) add_key$user(&(0x7f0000002240), &(0x7f0000002280)={'syz', 0x2}, &(0x7f00000022c0)="628882d02e238ea495d147e4b9c558b7c96ee88e3f96aca731d14c1af61100b8c6d55464f6c0f80ceeafb6eeae1eec2499485baa3b4f10d232d4a97db2c45206fe9a2167723a6ff244c340e288b5cabc105948aaea70698ca7212e9080a36bdbe8f0967e6dfc917b1fad55289c67f02ea8ba18c6ccaa7570fba7b410d4a202eef6bfba2966e783ddf614ceb4997661062c5425fb65fa379858d27a839317b36768e2b61cf55414e5e7e7731be36021c35ddb1b305f93", 0xb6, r2) request_key(&(0x7f00000000c0)='rxrpc\x00', &(0x7f0000000100)={'syz', 0x0}, &(0x7f0000000140)='%&\x00', 0x0) (async) request_key(&(0x7f0000000000)='keyring\x00', &(0x7f0000000040)={'syz', 0x0}, &(0x7f0000000080)='\x00', r0) (async) request_key(&(0x7f0000000180)='rxrpc\x00', &(0x7f00000001c0)={'syz', 0x3}, &(0x7f0000000200)='syz', r1) (async) add_key$user(&(0x7f0000000240), &(0x7f0000000280)={'syz', 0x3}, &(0x7f00000002c0)="48ec91088aa7987be3781266c32fcb81d430464e147c34beaa7170d16799633ed93a46771a075b1dc494b49cd72841776497e7144f115cea72d1554c7a1152c6817e5f819e2c9fb5cd2a939a5d59c1cf2e84e1420f0b3a86dbeaa44d64509faca9ebc714537c3380500bd8dd3cc87db6075958a4fd672e0d91a1d3a6a9d9f799e93dbcf56a2a17b645074933cb7f8c092c2d587254f0b5762837b679fe87d98fc05a1ce54c8d9742ac3cb15d85507f5c35b8f4163d9e4e10c09ac81568555b26a69cbe3aba2cc7c9b24171b53d73d8257a7ca4af6f3a227a1c0f25658514ad8c50a6950e5bcf3dbe80264ff1da5919544e9a44d07bf79a02", 0xf8, r1) (async) add_key$user(&(0x7f00000003c0), &(0x7f0000000400)={'syz', 0x1}, &(0x7f0000000440)="56900cf7f7476bbb3810a4364f4582ceac199c69b060f4145bf8a75f1fbd156a8a7eca523e37b68af99b6f5ff154f37febb1ef6155af1a89f74a4acef3896101fc8ee098739cac22e35aabbd6d53d9b0d3a85d9c355ffedd808bcb6557d676fe36c9ed7904ace7b00eff8c7a95cf66bf88e637a4e862e6252f1380c01345c002c50b83c50892a59beb81ef2c649eeda04a9890e9ece2bb698a53bac83a1230eec8e6fd18ebeff75b1b6857828299706e193b1603b4c89f06a86776869a5d13f76662d7545f0c127edc181d3ac07ad92c", 0xd0, 0xfffffffffffffffc) (async) add_key$keyring(&(0x7f0000000600), &(0x7f0000000640)={'syz', 0x3}, 0x0, 0x0, r0) (async) add_key$user(&(0x7f0000000540), &(0x7f0000000580)={'syz', 0x2}, &(0x7f00000005c0)="ec3cba64033242b85d6f8c2f909a2825a394cd8a86eabdbbffb69dfd2794670af2519103a20c430854054d122c11ed", 0x2f, r2) (async) add_key$user(&(0x7f0000000680), &(0x7f00000006c0)={'syz', 0x0}, &(0x7f0000000700)="822d12d50f3736ce19b65048a004f9bf7b208ff0e94724289d61bfddad220356b150a00298613b355da56ad0ebb44715ec55944bbac45f652b80b1b0d21979d40a34a9a83abfe09d102589484603949c2a84841d9bd47c10a45e8ac6fa940f25a2ab749761d03f19e46b1c69e171cb913da36e752c2b4645a38b980f35fcd8464cb7cab28a4a7d3c8ea40507306bd6feccf0bf2513f3407c45560d02bf1a83018c218807367dfd3804ac6719d512a5eb918f71a3c0fb6789133a104b0bb983ddf2318c3be8bcb6e4481bf0ebb60d71302c1036c39b1b404f35f932e0897d48919fa2c43cd45971aa6174b8c8cf27c083af", 0xf1, r1) (async) keyctl$dh_compute(0x17, &(0x7f0000000800)={r0, r3, r4}, &(0x7f0000000840)=""/74, 0x4a, &(0x7f00000009c0)={&(0x7f00000008c0)={'sha3-384\x00'}, &(0x7f0000000900)="b31e1350fdea2d670d9850ccca105c2f40ad382501128fe86d04ea8d717ff0597e8aee3c99d24c25864028ac47a91e2708e1acfa90a9a7f196b60f063af9cae4986f30b56b25547a8679580ff1d68f3e95b373fa79f6962809c1f9a83758871b1535737ef084979a9ba8d495ed1e71269e395430d46dec3cc8c6c8264fc5a541114bcc12618b452324", 0x89}) (async) add_key(&(0x7f0000000a00)='keyring\x00', &(0x7f0000000a40)={'syz', 0x3}, &(0x7f0000000a80)="64ec9ca49281c63a3cbe55d7f7c9fc5627a275698dc2d2604404522d0ccc3e0fa3d4ef2e574639b1938cdc28028cacde23f39e8dca1345ccb4ccba178953d3abae3f6484476e39a6e29f454b4cc74fe3df56dd60a86623da5b8905049b91346683293d8dd60390a299af4c1eadaa7b27932868a040a59c9e235d8de561cbad6c765df8a8c0766f5edde6b52b6bf325b7af8c0f026bf580c211f4fb8acef7919f205e52982d2f022f8750f408ccd1ca017125eaa16809c5a133cce8c30694ce25a59c24bd340d9de358bc506bc3ab3047104d785261fda1f6d3a8ab061fbba31922f8597956f69944d0c2c6a1d2b66c0aca91a798b27c6e", 0xf7, 0xfffffffffffffffb) (async) request_key(&(0x7f0000000b80)='pkcs7_test\x00', &(0x7f0000000bc0)={'syz', 0x2}, &(0x7f0000000c00)='(%@\x00', r0) (async) keyctl$KEYCTL_MOVE(0x1e, r5, r6, r1, 0x1) (async) add_key$user(&(0x7f0000000c40), &(0x7f0000000c80)={'syz', 0x3}, &(0x7f0000000cc0)="6322d2f802ef78ea8fdc0c58f40ef0590fc912caef37fa51542ed2f282ae8badc2c7ec8c196b966da2d4d00f3953456bb5b2443873d35f6a5f4007cc", 0x3c, r1) (async) keyctl$get_security(0x11, 0x0, &(0x7f0000000d00)=""/142, 0x8e) (async) add_key$user(&(0x7f0000000dc0), &(0x7f0000000e00)={'syz', 0x1}, &(0x7f0000000e40)="2921efdea812043bcd39b3abfa28799054e9c8ce1d8291b5924de45fcee7a08aee1d79c6863375eca9bff08be93d1262b3b8385f27693c0094171a6855ef85df2e3503796d350e4b601f6051ca72be2be7ebfb13037efb8db3357589fe1df91299698990c4bdc02f7e5163e0d27d925052339a43b88def3fa93882269ea0b86bd8a3739c625f13fb6048b79eed7539484a69061271b5c5413d3f2de5da547e9f72376125346ea355114b6f8d22ee9d7f7bf6b6f16350dda7962e00d15141431ea129cd1a634af994bcd5b9805e8eb80c0183c663b6b91715a6c5ef224f993ad19cec4e9931cb35fcd6f7d7ed7bed80f7c8aa56345b972f6e9e9ff2a2f3232e29b9aa1dd9782831405a5de99e9b9a3c081051237b8b8736f7d95a04c7f1c7dd454b6c731ca2c931d1191694529875c940cf396a40156913cbc9096856aec4999b68b753c9938ded653d21ed1df8f789352b4ce2aef595c836b3005f05ed68961cb8cd4cc7c06ff558855bf5ebf95cfbe0c8c4d47cb67b6d4d3f80bd5960948f864cdc0192d457ad4e914165b128ce270960e170456764d139e602b0c0638fa905310d6f9be0975b6266fa733a82bdad3af0ddfa0c567c7ef0cd64ac6d2e19c1462a811571957c73d5001085f66a961106e542fb84866e148b3c548835eec340b2e25e8957d57d70ddea7cae6d11b076bebec8a8c5a55ed3bf72bbe26d03de53413a3b1d227a6892b59ada031574eb251da2a439fae6d01c4031b36db2b0668a730262a6514e7e09e583871dcbb37de049dbb80f47edb203841784cb4796d1e89c9f3a99ab47e2924a2fa92a2c40d42b16ac74f16c5800f81cf79483d7c6742bb2561b2b8bc0f9d0957067ac592e67f9eb05819b6a49522487a56abac4d39ae6e9fd418a5ab02b67160d2f0ca69672f7433e853b28fb10574265acaabaa1aeae553e635bde7a76b0315846547b3322ba90f02d20731adc240e97dc8472577ccf46a47a6ebeca17abfc4131447febc1691479c5c4ceff84bc1c0d833623962201eaa958df5ee39a6a75d3f3f375ab270c8a1ce970fb0d9bbfad1c176188c19050e9f520eddc3349b3e50ae249045ba05dce38f02d8073571028e39bab5456b809c74670be9d44e065d916ea33cb4168738bf6c9c55d0b6593b0aa72aa6c64ee4e7d362a51401322aed97cee71463517c8b147f56ef442775131e9214b1d4f6efde5c1ca4e6a948a41527ae0331f72037c3b047a96b612f6f1aaf0742f9d200bad4458799d3d337a243d9e3abd53399cdab6236881a0c4c4f631207586bb6a300d5ffa924ecfb6e876956353c9a2b22ae4d9a22112507342ac6432b84b42e4ca3e725d3df4e0e20f35a96a8dc77ece535c970b78f624393764eb7dff8aa5147a47b5f07b579926add34d5e73345ff1be2b62cb1a9d47c2b5d3507884b45704542d3d978c85519268fd25a89051e4456eca41c7ef2d4458b239814ab64f771d1de787504e62c2fde62d1139699216ea67beee0942f4440b596ba12e9e20228e811b56e980209bdb7b437e2c59dfbb1ddbac0d45deeff79ee7e121945e5b7525885903ed6418e95dd42ceb0bec36c008758ca089fac5353bb1cb7206e793e385fc777f9dabcce5341cdc74310e3fe31b015589fd67c18aef36ff3bc269815325213979f0bc13c983570e26db4aa1c68f9647bad4ecfea7cfae056d2ae62a9017dddd3bf5cdacd24944d81dcbdf117aaaddb544f3f9a73d320797da1425519b18b53c5ad996d3a750a14e711a89a621170bbd863a2ca452a97eef38f9082ed60e9f146ac626f818bd73e72c96cdffe779bee51e6ab7ff9f2eb67795012c02a96115b56ebb36adf75b04af7bb28e363a398731614c151d6147b9023b94708c2839ec526747e9a0d8df76cf3f952114cb4a9a0c38405a7c2d369a295f958ee1a04b6dc4a22e33bb234052cceb03de63b716825792f31ae48b406dfd1086b7418d78123cd21048980a16a18be25d39b3d44cf9886e496308d74bc8cc86e6dc7ba4d26a7e8bb34fa8d4ac9e107b2934b0b76beed3806f5fb15540d488f8482767f1358d7b0885225793321001804d5d059d949418e1b58c84bfc93aeec991fb7d328657220dbd9136dbb856443515d1798a37f36b60c35a37976b46d26ee7a0441052256ab81989fb5a3b2013528cc3aae000f379b68bd8766b5b6ad71ae4e20fe3b1b731425b5e98e2af6360e222c9aad1fcbdadc0e7b25ae72fc0ef2c7a3c344ab5813d22dca4ae430f1a0760aec9d07ee7654e1d82e530638db2c648c44978182077d8a3c4c5ac0f9634bfd1efe773270f16af8c915b7814d679d317a2525581d5fd0aa8e155dce1716d7f367918ce2cf536014614048da4638142b9807d5c4156684f71ef69fee3538e47f9dfc59898807e78c469a34647bb8ebfa5da85a9d640c4f1c0e588480f296dc094e57ee77067c12d05034b589245fd830767e0418b990b13b68c8171b9dba5ae20d8d1de9833dbe01f757e1b2612b892079f96249eac716c5c1cd623baef7a6daeb88967d3a699e03ea51831cb09418d3e39b754c2bddd2e6e8438abc0b03487a2f9f65cb9c167fb243c039ccbe9463e74077464c38739188657bb59ab887d320ab5205d4c557307784e80f758c2fe530168dd9fde1dfbcf15437afdedd675df5d15c330f2d70595425bc464dbc50ecac1fef291d43cc4856ac23f53d41885f585a6d88d8f08065e57bdfeb7239b74a913a706410718479e4830b5dc6c1a33c1d8db9448a6dc62a08fcc6b97357d7deddd87c166e4064520a6f825c687998879c2833d3dbf589857e4dbc913887d267e464b260c6082a3943e4d9c556e33d1e0e0411bb58e85217a5c199559bc81a82c95fc5376b003b266946f1d53c8c52234bb3b4f4e908c80f2dcbbce2c648e7772b5d5207a9d6122a26661fcac63db0ac1da9c3f54e956d6bfe3fb08f874fa9efd199e7628e211e375b8b673de55222e7c534680ff9cb6f299dbe18e53c5f15beb19abf931af71c02b21024adb3278d551dfc513be9fd197b15bedbae65857ad8fc44024a7e2a90848f1a1f4a6143e26f0ed8aa9c38e92ea856d1c1d26829408b16fc2da22431045283bfc6c42c63ea3d557dc7784296c6764202d60186a1fe17b852154ad691eb4066554797a2e6a3d4eddc4fbe876fab6d1b20270399c016c9f1c15d9be12bd6340383ab8ab85f6fc5df85f1a53019683eaa843da40b9f0768b605d9d5d0bf6d49369c61878ac4ac8a10c5a95ecf62f7c77d037b5640f5685c70e41e5268e557e40d76403dd55d24e0b5834bd90e15e8f27a6b1ba8ef2615f1229bbddcbeef46a8d4c656cc1d41aa9bfd5ea7c0f5bbef203ea37d299f00db4351bea6b1fab0d234fb6b20548423f5f09a4a212cdd84952fed0393315e47405148a9719d57c7dff063594987a978cdf5088ba9dde684aa42d84f43ebf8f5a7d9bf761ee6c4bc8aa70dc2876c8ae00c6136690202678b617bd77bbf3c504c591a43e357c55a2243c7ca89b2b4eeedffe3f90495246846fb4f76229b954403c34fe4cd056cf253a802093f155445121f6f246f4a368c7181bbbfe37f2db47fa9f0f04fea1216b4834cc1a5d20465aecb24e67f5a644396e976460d45e4ef62938a529cdc179f23b50226ff5fe3dfd98d0474a4c7ea47f26ac631ca1788c5a7c5095577e401d1385f3cd75420628c2c3413f5344706c50106fc7a6e1be28437c473ebc29602d130e258672088b9a5f134170716b38fbac2b00000a84de69d7bab214dec51db02efaecb860cce597f1ef35e0b0c9eb022c533ce3013e8c0d75358af8eeffe380f04cbf5de3f7d294e2bdd7d0e178608b223e6186516a7b3bba09ece0be60c1d09838e239bfc196263dda16716a51f41c273ad69869638284a69c6ec37fb5f035f08db7a59956cfcd92662c2188f594e5610fc0ed3db018d8d95ad366b42017e6780c4157b76a79b81aeacff7ec7b83ca8ed3ac55fa7b768a663b673770bca30f62ee74fcb9d94f8cb83378166a24b63773a80d0325e02e9a3e6a38ec5d230b9062e266e59dd44cfe8357da49f572d141b397709b104f82c019384fa29cf1a17c6325a3d88dbf596b730c1d54995115575d8f85f5be286c9af1e4db50b15691c6502a6cd7640e62343c26c50a489c56ff0ebe2292691a5bd7f850015f9c8e94daf796e088496eff60281ff560e26b0f3f3ee24faa95b591c3a296f2f2ba4c970c98468d183856b3be7b19139182d12e9919ea37b272f3d77b9a43efa0088427709927410c2c02dd191185edf77d1c94597f94ba3c99d8165e280f0224837762dfad0c7f9d16b379c6d99f6d3af6d446909c90cab812aa2f7e7dab8f0d2d68d126efcb4f55f125ca656a647af881c202287f17e6d625732e8fc8ec31c5e6c1f4db72f4c9a1f47b2480bc355c7ee1008cd2a87d9e651c90b094f82266de4797933d89e8638bf93196ddaccb87b6984335dbeafa8904adec0d4f95abb247225bca0893adb1f4ebbc656a33c12c259c2ffb10edfd8d8878dd9abcb18cbc1d8988b96985018b97d570431d9b3a9055a40cfbe5ea665d876a079743dd705eb18a4398224d6369c2b22050f0d7e406635df34843389946989c17c08b782d2df256a0815d9405a2987f588ac96ad0249f69f48653c3d60a424ab910534f9b7ddbf7609c84a53ff29e346c6cf81cffe0e49ce302851d0f92d10791ef33d0c57f2b9bb8a4dec97ec98a7aa9d06d59931dfa5f2184f861c563b9b873a97001d927faad71f7f3b536bc7f2df541c1f6f50ebabb7aa655ea33e107520c53feda8f9b109ef9e604dfead455cf9648ca7ec81a5359cb622210363e5d0670bcfc191403f7723b5398ca5ff743ddfc79c6830dc21d6bd8933eb1a0b0d7d51a57a4d46bae8949a7bf5df353e22b5cc5db1d148bd5b28f5bca6d00f59d9ce757305c55eadd2d4646895e0a8e3feb46c3730a4ffbc4f7039f9bf5b1d25927eb1fba41d5b234b7baefba996ea470aba6fe4bfcb23e38758eac9f901bb7980cb2da30831a6c2fc02efece7eeaa35f53b14a1a387244fc6046079fdb67f5e98754c5300e8f0ef29b3034f09bcbaa27cb28bb506a4ce45702fdc952bec901313b7d52246bb14834257e86911e1fa2d18fbc968dbaf6efd1a51641ca76887073565743536ad1f91991321d5a53626ad0f7bacbd32d9e48ca92e4e5898394a9a2e700ff14c6760ed547bc2af251ed608c2f83d1d52661940c84b97563d2b0b0361cb60b8c42b3b5d2a8de5fb406327b41a552fa9a13d930e98f8ad57a68db91b8febb0c59d3407a691d4a23985356648097cd7d35dd27dda175707c2174599492ecd8541308b60242e653cda72ea363c744e35189ee0301d8d1e7b5ffa796fb2de98841bbfd896f5bc1fe48162591a74e6d7df6f8cbbeaac1d3cc29e3b8e5472bc95b488df7a8d0f687a4df29ed3ed0b89ca7a4b608f39572508e797828341143c3e2e847c89879d6ada37e27e6c36c99b094071c8f3bd5e89e1a05da55f52ae51b48cce9dc5673cac906b3c670b67a0fa7c3c43b706ab1ddb57535a27763f43cd889aafea4f31d73654a89c453015d331d90d16d6e5a9308346841235316511a44a32c41d700898ebaf6b16819096c2f6312f7cc8237c1708d2385b59f39148293b2a6f875a37541888971d95952b0e7889504d6d89b5bcec3e9ac46a98a94c287078a794ef12bd413b0c315ecd350d770e8511a9715781faebee60c59cf533a9d5e3bf55d59b18b2179a712f2fb78268aae", 0x1000, r2) (async) add_key$user(&(0x7f0000001e40), &(0x7f0000001e80)={'syz', 0x3}, &(0x7f0000001ec0)="ae524eb69bd708195588ee462433718dce52ddf26dc8f9263fd5dbc097f8a3bb62e68cba274d2d3f4912e6cda5bce9c22ee5f906d0ef655a420e439e5b784c8bc48b36fb6a95179ce883c4f9547d966562045c2153d411d0a68e2d65a001636df4d3ca7f5c4c0ee965d06d228ac06493da144a894a20712f9c478d543299b170b53c1eb68fb987bbfa6042f5e7e0d6db30e737c6d22ea5fbc128f0897cc387a666619e7b5053a2ab7ed91709090c3d5e86d396bd6d07266d12f46e03f597e888aacb4de671", 0xc5, 0xfffffffffffffff8) (async) add_key$user(&(0x7f0000001fc0), &(0x7f0000002000)={'syz', 0x0}, &(0x7f0000002040)="b1dbe3fdaf8e891496c59c096d8d7c7493ce4ce821fe0e73ec3ed411f98d97f94ecf8e434115f7f30fee84b377e2960736a04af17d6b0eb51c0b7b9bc611b3fa8b7a2b581048853bcae182d9100bc6a1d609df35531bc7ce6e783f88dcdcf44550ea8d92f935e23ff0a8e2fa8e442b7e2b6e686292edad7068a0eaecc9f642839049e1bd3e614080a1690b241ed9def35aad2d17da79f1fa93cdfe1d3ca90823fcc660f1acdb87628e057f654ea34ddba2acc35ff7c3ef57830bf9eee32db88c4478f39e2dd38c954f556cda0329a3c50d3dab919b3559c231de6b98", 0xdc, r2) (async) add_key$fscrypt_v1(&(0x7f0000002140), &(0x7f0000002180)={'fscrypt:', @auto=[0x63, 0x31, 0x32, 0x33, 0x30, 0x63, 0x35, 0x31, 0x34, 0x66, 0x32, 0x35, 0x66, 0x33, 0x33, 0x33]}, &(0x7f00000021c0)={0x0, "45cfcbca86d14d629e6b3c0ce66ddfd2fb19b56717555fa7a03d23ce9c2d497ca5006cc10c9b279d315949f95ce138ec82ffe31202d3273dcc7a253b17eaa3aa", 0x32}, 0x48, r2) (async) keyctl$revoke(0x3, r7) (async) add_key$user(&(0x7f0000002240), &(0x7f0000002280)={'syz', 0x2}, &(0x7f00000022c0)="628882d02e238ea495d147e4b9c558b7c96ee88e3f96aca731d14c1af61100b8c6d55464f6c0f80ceeafb6eeae1eec2499485baa3b4f10d232d4a97db2c45206fe9a2167723a6ff244c340e288b5cabc105948aaea70698ca7212e9080a36bdbe8f0967e6dfc917b1fad55289c67f02ea8ba18c6ccaa7570fba7b410d4a202eef6bfba2966e783ddf614ceb4997661062c5425fb65fa379858d27a839317b36768e2b61cf55414e5e7e7731be36021c35ddb1b305f93", 0xb6, r2) (async) 00:06:24 executing program 3: socket$can_j1939(0x1d, 0x2, 0x7) (async) r0 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route(r0, &(0x7f00000000c0)={0x0, 0x0, &(0x7f0000000080)={&(0x7f0000000040)=@ipv6_newroute={0x38, 0x18, 0x1, 0x0, 0x0, {}, [@RTA_GATEWAY={0x14, 0x5, @loopback}, @RTA_OIF={0x8}]}, 0x38}}, 0x0) [ 384.240637][T21632] sctp: [Deprecated]: syz-executor.2 (pid 21632) Use of int in max_burst socket option. [ 384.240637][T21632] Use struct sctp_assoc_value instead 00:06:24 executing program 0: r0 = socket$inet_tcp(0x2, 0x1, 0x0) bind$inet(r0, &(0x7f0000000000)={0x2, 0x4e20, @multicast2}, 0x10) setsockopt$sock_int(r0, 0x1, 0x3c, &(0x7f0000000340)=0x1, 0x4) connect$inet(r0, &(0x7f0000000200)={0x2, 0x4e20, @loopback}, 0x10) r1 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f00000001c0)='memory.current\x00', 0x275a, 0x0) write$binfmt_script(r1, &(0x7f0000000000)=ANY=[], 0x208e24b) mmap(&(0x7f0000000000/0xb36000)=nil, 0xb36000, 0x2, 0x28011, r1, 0x0) sendmmsg$inet(r0, &(0x7f00000012c0)=[{{0x0, 0x4002, &(0x7f0000000600)=[{&(0x7f00000000c0)='o', 0x1}], 0x1, 0x0, 0x0, 0xf}, 0x34}, {{0x0, 0x0, &(0x7f0000001b80)=[{&(0x7f0000000740), 0x40020000}], 0x1, 0x0, 0x0, 0xffffff7f}}], 0x2, 0x60c5840) 00:06:24 executing program 4: sendmsg$nl_route(0xffffffffffffffff, &(0x7f0000000200)={0x0, 0x0, &(0x7f00000000c0)={&(0x7f0000000100)=@ipv6_newrule={0x24, 0x18, 0x409, 0x0, 0x0, {}, [@FIB_RULE_POLICY=@FRA_GOTO={0x8, 0x1e, 0x7}]}, 0x24}}, 0x0) 00:06:24 executing program 3: socket$can_j1939(0x1d, 0x2, 0x7) r0 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route(r0, &(0x7f00000000c0)={0x0, 0x0, &(0x7f0000000080)={&(0x7f0000000040)=@ipv6_newroute={0x38, 0x18, 0x1, 0x0, 0x0, {}, [@RTA_GATEWAY={0x14, 0x5, @loopback}, @RTA_OIF={0x8}]}, 0x38}}, 0x0) 00:06:24 executing program 2: r0 = socket$inet6_sctp(0xa, 0x1, 0x84) getsockopt$inet_sctp6_SCTP_PEER_ADDR_THLDS(r0, 0x84, 0x14, &(0x7f0000000000)={0x0, @in={{0x2, 0x0, @empty}}}, &(0x7f00000000c0)=0x4) (async, rerun: 64) r1 = socket$inet_sctp(0x2, 0x1, 0x84) (rerun: 64) getsockopt$inet_sctp_SCTP_MAX_BURST(r1, 0x84, 0xd, &(0x7f0000000000)=@assoc_value={0x0}, &(0x7f0000000040)=0x8) getsockopt$inet_sctp6_SCTP_DELAYED_SACK(0xffffffffffffffff, 0x84, 0x10, &(0x7f0000000100)=@assoc_value={r2}, 0x0) r3 = add_key$user(&(0x7f0000000200), &(0x7f0000000300)={'syz', 0x0}, &(0x7f00000002c0)="f5", 0x6a, 0xfffffffffffffffe) (async) r4 = add_key$user(&(0x7f00000003c0), &(0x7f0000000440), &(0x7f00000000c0), 0xc9, 0xfffffffffffffffd) keyctl$dh_compute(0x17, &(0x7f0000000140)={r3, r4, r3}, &(0x7f00000000c0)=""/83, 0xfffffffffffffe4f, 0x0) r5 = add_key$fscrypt_v1(&(0x7f0000000240), &(0x7f0000000280)={'fscrypt:', @desc3}, &(0x7f0000000340)={0x0, "7b8e055124afa5ca36c9a7d36f358313ee9e874e1c07e64056bebc6c0b51d90a9f12606de98f06665235644f993008502452c8c9aa6d62f3cd79ae414292b3b0", 0x1b}, 0x48, 0xfffffffffffffff9) add_key(&(0x7f0000000180)='dns_resolver\x00', &(0x7f00000001c0)={'syz', 0x2}, 0x0, 0x0, r5) 00:06:24 executing program 4: socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route(0xffffffffffffffff, &(0x7f0000000200)={0x0, 0x0, &(0x7f00000000c0)={&(0x7f0000000100)=@ipv6_newrule={0x24, 0x18, 0x409, 0x0, 0x0, {}, [@FIB_RULE_POLICY=@FRA_GOTO={0x8, 0x1e, 0x7}]}, 0x24}}, 0x0) 00:06:24 executing program 1: r0 = request_key(&(0x7f00000000c0)='rxrpc\x00', &(0x7f0000000100)={'syz', 0x0}, &(0x7f0000000140)='%&\x00', 0x0) r1 = request_key(&(0x7f0000000000)='keyring\x00', &(0x7f0000000040)={'syz', 0x0}, &(0x7f0000000080)='\x00', r0) request_key(&(0x7f0000000180)='rxrpc\x00', &(0x7f00000001c0)={'syz', 0x3}, &(0x7f0000000200)='syz', r1) add_key$user(&(0x7f0000000240), &(0x7f0000000280)={'syz', 0x3}, &(0x7f00000002c0)="48ec91088aa7987be3781266c32fcb81d430464e147c34beaa7170d16799633ed93a46771a075b1dc494b49cd72841776497e7144f115cea72d1554c7a1152c6817e5f819e2c9fb5cd2a939a5d59c1cf2e84e1420f0b3a86dbeaa44d64509faca9ebc714537c3380500bd8dd3cc87db6075958a4fd672e0d91a1d3a6a9d9f799e93dbcf56a2a17b645074933cb7f8c092c2d587254f0b5762837b679fe87d98fc05a1ce54c8d9742ac3cb15d85507f5c35b8f4163d9e4e10c09ac81568555b26a69cbe3aba2cc7c9b24171b53d73d8257a7ca4af6f3a227a1c0f25658514ad8c50a6950e5bcf3dbe80264ff1da5919544e9a44d07bf79a02", 0xf8, r1) (async) add_key$user(&(0x7f00000003c0), &(0x7f0000000400)={'syz', 0x1}, &(0x7f0000000440)="56900cf7f7476bbb3810a4364f4582ceac199c69b060f4145bf8a75f1fbd156a8a7eca523e37b68af99b6f5ff154f37febb1ef6155af1a89f74a4acef3896101fc8ee098739cac22e35aabbd6d53d9b0d3a85d9c355ffedd808bcb6557d676fe36c9ed7904ace7b00eff8c7a95cf66bf88e637a4e862e6252f1380c01345c002c50b83c50892a59beb81ef2c649eeda04a9890e9ece2bb698a53bac83a1230eec8e6fd18ebeff75b1b6857828299706e193b1603b4c89f06a86776869a5d13f76662d7545f0c127edc181d3ac07ad92c", 0xd0, 0xfffffffffffffffc) (async) r2 = add_key$keyring(&(0x7f0000000600), &(0x7f0000000640)={'syz', 0x3}, 0x0, 0x0, r0) r3 = add_key$user(&(0x7f0000000540), &(0x7f0000000580)={'syz', 0x2}, &(0x7f00000005c0)="ec3cba64033242b85d6f8c2f909a2825a394cd8a86eabdbbffb69dfd2794670af2519103a20c430854054d122c11ed", 0x2f, r2) r4 = add_key$user(&(0x7f0000000680), &(0x7f00000006c0)={'syz', 0x0}, &(0x7f0000000700)="822d12d50f3736ce19b65048a004f9bf7b208ff0e94724289d61bfddad220356b150a00298613b355da56ad0ebb44715ec55944bbac45f652b80b1b0d21979d40a34a9a83abfe09d102589484603949c2a84841d9bd47c10a45e8ac6fa940f25a2ab749761d03f19e46b1c69e171cb913da36e752c2b4645a38b980f35fcd8464cb7cab28a4a7d3c8ea40507306bd6feccf0bf2513f3407c45560d02bf1a83018c218807367dfd3804ac6719d512a5eb918f71a3c0fb6789133a104b0bb983ddf2318c3be8bcb6e4481bf0ebb60d71302c1036c39b1b404f35f932e0897d48919fa2c43cd45971aa6174b8c8cf27c083af", 0xf1, r1) keyctl$dh_compute(0x17, &(0x7f0000000800)={r0, r3, r4}, &(0x7f0000000840)=""/74, 0x4a, &(0x7f00000009c0)={&(0x7f00000008c0)={'sha3-384\x00'}, &(0x7f0000000900)="b31e1350fdea2d670d9850ccca105c2f40ad382501128fe86d04ea8d717ff0597e8aee3c99d24c25864028ac47a91e2708e1acfa90a9a7f196b60f063af9cae4986f30b56b25547a8679580ff1d68f3e95b373fa79f6962809c1f9a83758871b1535737ef084979a9ba8d495ed1e71269e395430d46dec3cc8c6c8264fc5a541114bcc12618b452324", 0x89}) (async) r5 = add_key(&(0x7f0000000a00)='keyring\x00', &(0x7f0000000a40)={'syz', 0x3}, &(0x7f0000000a80)="64ec9ca49281c63a3cbe55d7f7c9fc5627a275698dc2d2604404522d0ccc3e0fa3d4ef2e574639b1938cdc28028cacde23f39e8dca1345ccb4ccba178953d3abae3f6484476e39a6e29f454b4cc74fe3df56dd60a86623da5b8905049b91346683293d8dd60390a299af4c1eadaa7b27932868a040a59c9e235d8de561cbad6c765df8a8c0766f5edde6b52b6bf325b7af8c0f026bf580c211f4fb8acef7919f205e52982d2f022f8750f408ccd1ca017125eaa16809c5a133cce8c30694ce25a59c24bd340d9de358bc506bc3ab3047104d785261fda1f6d3a8ab061fbba31922f8597956f69944d0c2c6a1d2b66c0aca91a798b27c6e", 0xf7, 0xfffffffffffffffb) r6 = request_key(&(0x7f0000000b80)='pkcs7_test\x00', &(0x7f0000000bc0)={'syz', 0x2}, &(0x7f0000000c00)='(%@\x00', r0) keyctl$KEYCTL_MOVE(0x1e, r5, r6, r1, 0x1) (async) add_key$user(&(0x7f0000000c40), &(0x7f0000000c80)={'syz', 0x3}, &(0x7f0000000cc0)="6322d2f802ef78ea8fdc0c58f40ef0590fc912caef37fa51542ed2f282ae8badc2c7ec8c196b966da2d4d00f3953456bb5b2443873d35f6a5f4007cc", 0x3c, r1) (async) keyctl$get_security(0x11, 0x0, &(0x7f0000000d00)=""/142, 0x8e) add_key$user(&(0x7f0000000dc0), &(0x7f0000000e00)={'syz', 0x1}, &(0x7f0000000e40)="2921efdea812043bcd39b3abfa28799054e9c8ce1d8291b5924de45fcee7a08aee1d79c6863375eca9bff08be93d1262b3b8385f27693c0094171a6855ef85df2e3503796d350e4b601f6051ca72be2be7ebfb13037efb8db3357589fe1df91299698990c4bdc02f7e5163e0d27d925052339a43b88def3fa93882269ea0b86bd8a3739c625f13fb6048b79eed7539484a69061271b5c5413d3f2de5da547e9f72376125346ea355114b6f8d22ee9d7f7bf6b6f16350dda7962e00d15141431ea129cd1a634af994bcd5b9805e8eb80c0183c663b6b91715a6c5ef224f993ad19cec4e9931cb35fcd6f7d7ed7bed80f7c8aa56345b972f6e9e9ff2a2f3232e29b9aa1dd9782831405a5de99e9b9a3c081051237b8b8736f7d95a04c7f1c7dd454b6c731ca2c931d1191694529875c940cf396a40156913cbc9096856aec4999b68b753c9938ded653d21ed1df8f789352b4ce2aef595c836b3005f05ed68961cb8cd4cc7c06ff558855bf5ebf95cfbe0c8c4d47cb67b6d4d3f80bd5960948f864cdc0192d457ad4e914165b128ce270960e170456764d139e602b0c0638fa905310d6f9be0975b6266fa733a82bdad3af0ddfa0c567c7ef0cd64ac6d2e19c1462a811571957c73d5001085f66a961106e542fb84866e148b3c548835eec340b2e25e8957d57d70ddea7cae6d11b076bebec8a8c5a55ed3bf72bbe26d03de53413a3b1d227a6892b59ada031574eb251da2a439fae6d01c4031b36db2b0668a730262a6514e7e09e583871dcbb37de049dbb80f47edb203841784cb4796d1e89c9f3a99ab47e2924a2fa92a2c40d42b16ac74f16c5800f81cf79483d7c6742bb2561b2b8bc0f9d0957067ac592e67f9eb05819b6a49522487a56abac4d39ae6e9fd418a5ab02b67160d2f0ca69672f7433e853b28fb10574265acaabaa1aeae553e635bde7a76b0315846547b3322ba90f02d20731adc240e97dc8472577ccf46a47a6ebeca17abfc4131447febc1691479c5c4ceff84bc1c0d833623962201eaa958df5ee39a6a75d3f3f375ab270c8a1ce970fb0d9bbfad1c176188c19050e9f520eddc3349b3e50ae249045ba05dce38f02d8073571028e39bab5456b809c74670be9d44e065d916ea33cb4168738bf6c9c55d0b6593b0aa72aa6c64ee4e7d362a51401322aed97cee71463517c8b147f56ef442775131e9214b1d4f6efde5c1ca4e6a948a41527ae0331f72037c3b047a96b612f6f1aaf0742f9d200bad4458799d3d337a243d9e3abd53399cdab6236881a0c4c4f631207586bb6a300d5ffa924ecfb6e876956353c9a2b22ae4d9a22112507342ac6432b84b42e4ca3e725d3df4e0e20f35a96a8dc77ece535c970b78f624393764eb7dff8aa5147a47b5f07b579926add34d5e73345ff1be2b62cb1a9d47c2b5d3507884b45704542d3d978c85519268fd25a89051e4456eca41c7ef2d4458b239814ab64f771d1de787504e62c2fde62d1139699216ea67beee0942f4440b596ba12e9e20228e811b56e980209bdb7b437e2c59dfbb1ddbac0d45deeff79ee7e121945e5b7525885903ed6418e95dd42ceb0bec36c008758ca089fac5353bb1cb7206e793e385fc777f9dabcce5341cdc74310e3fe31b015589fd67c18aef36ff3bc269815325213979f0bc13c983570e26db4aa1c68f9647bad4ecfea7cfae056d2ae62a9017dddd3bf5cdacd24944d81dcbdf117aaaddb544f3f9a73d320797da1425519b18b53c5ad996d3a750a14e711a89a621170bbd863a2ca452a97eef38f9082ed60e9f146ac626f818bd73e72c96cdffe779bee51e6ab7ff9f2eb67795012c02a96115b56ebb36adf75b04af7bb28e363a398731614c151d6147b9023b94708c2839ec526747e9a0d8df76cf3f952114cb4a9a0c38405a7c2d369a295f958ee1a04b6dc4a22e33bb234052cceb03de63b716825792f31ae48b406dfd1086b7418d78123cd21048980a16a18be25d39b3d44cf9886e496308d74bc8cc86e6dc7ba4d26a7e8bb34fa8d4ac9e107b2934b0b76beed3806f5fb15540d488f8482767f1358d7b0885225793321001804d5d059d949418e1b58c84bfc93aeec991fb7d328657220dbd9136dbb856443515d1798a37f36b60c35a37976b46d26ee7a0441052256ab81989fb5a3b2013528cc3aae000f379b68bd8766b5b6ad71ae4e20fe3b1b731425b5e98e2af6360e222c9aad1fcbdadc0e7b25ae72fc0ef2c7a3c344ab5813d22dca4ae430f1a0760aec9d07ee7654e1d82e530638db2c648c44978182077d8a3c4c5ac0f9634bfd1efe773270f16af8c915b7814d679d317a2525581d5fd0aa8e155dce1716d7f367918ce2cf536014614048da4638142b9807d5c4156684f71ef69fee3538e47f9dfc59898807e78c469a34647bb8ebfa5da85a9d640c4f1c0e588480f296dc094e57ee77067c12d05034b589245fd830767e0418b990b13b68c8171b9dba5ae20d8d1de9833dbe01f757e1b2612b892079f96249eac716c5c1cd623baef7a6daeb88967d3a699e03ea51831cb09418d3e39b754c2bddd2e6e8438abc0b03487a2f9f65cb9c167fb243c039ccbe9463e74077464c38739188657bb59ab887d320ab5205d4c557307784e80f758c2fe530168dd9fde1dfbcf15437afdedd675df5d15c330f2d70595425bc464dbc50ecac1fef291d43cc4856ac23f53d41885f585a6d88d8f08065e57bdfeb7239b74a913a706410718479e4830b5dc6c1a33c1d8db9448a6dc62a08fcc6b97357d7deddd87c166e4064520a6f825c687998879c2833d3dbf589857e4dbc913887d267e464b260c6082a3943e4d9c556e33d1e0e0411bb58e85217a5c199559bc81a82c95fc5376b003b266946f1d53c8c52234bb3b4f4e908c80f2dcbbce2c648e7772b5d5207a9d6122a26661fcac63db0ac1da9c3f54e956d6bfe3fb08f874fa9efd199e7628e211e375b8b673de55222e7c534680ff9cb6f299dbe18e53c5f15beb19abf931af71c02b21024adb3278d551dfc513be9fd197b15bedbae65857ad8fc44024a7e2a90848f1a1f4a6143e26f0ed8aa9c38e92ea856d1c1d26829408b16fc2da22431045283bfc6c42c63ea3d557dc7784296c6764202d60186a1fe17b852154ad691eb4066554797a2e6a3d4eddc4fbe876fab6d1b20270399c016c9f1c15d9be12bd6340383ab8ab85f6fc5df85f1a53019683eaa843da40b9f0768b605d9d5d0bf6d49369c61878ac4ac8a10c5a95ecf62f7c77d037b5640f5685c70e41e5268e557e40d76403dd55d24e0b5834bd90e15e8f27a6b1ba8ef2615f1229bbddcbeef46a8d4c656cc1d41aa9bfd5ea7c0f5bbef203ea37d299f00db4351bea6b1fab0d234fb6b20548423f5f09a4a212cdd84952fed0393315e47405148a9719d57c7dff063594987a978cdf5088ba9dde684aa42d84f43ebf8f5a7d9bf761ee6c4bc8aa70dc2876c8ae00c6136690202678b617bd77bbf3c504c591a43e357c55a2243c7ca89b2b4eeedffe3f90495246846fb4f76229b954403c34fe4cd056cf253a802093f155445121f6f246f4a368c7181bbbfe37f2db47fa9f0f04fea1216b4834cc1a5d20465aecb24e67f5a644396e976460d45e4ef62938a529cdc179f23b50226ff5fe3dfd98d0474a4c7ea47f26ac631ca1788c5a7c5095577e401d1385f3cd75420628c2c3413f5344706c50106fc7a6e1be28437c473ebc29602d130e258672088b9a5f134170716b38fbac2b00000a84de69d7bab214dec51db02efaecb860cce597f1ef35e0b0c9eb022c533ce3013e8c0d75358af8eeffe380f04cbf5de3f7d294e2bdd7d0e178608b223e6186516a7b3bba09ece0be60c1d09838e239bfc196263dda16716a51f41c273ad69869638284a69c6ec37fb5f035f08db7a59956cfcd92662c2188f594e5610fc0ed3db018d8d95ad366b42017e6780c4157b76a79b81aeacff7ec7b83ca8ed3ac55fa7b768a663b673770bca30f62ee74fcb9d94f8cb83378166a24b63773a80d0325e02e9a3e6a38ec5d230b9062e266e59dd44cfe8357da49f572d141b397709b104f82c019384fa29cf1a17c6325a3d88dbf596b730c1d54995115575d8f85f5be286c9af1e4db50b15691c6502a6cd7640e62343c26c50a489c56ff0ebe2292691a5bd7f850015f9c8e94daf796e088496eff60281ff560e26b0f3f3ee24faa95b591c3a296f2f2ba4c970c98468d183856b3be7b19139182d12e9919ea37b272f3d77b9a43efa0088427709927410c2c02dd191185edf77d1c94597f94ba3c99d8165e280f0224837762dfad0c7f9d16b379c6d99f6d3af6d446909c90cab812aa2f7e7dab8f0d2d68d126efcb4f55f125ca656a647af881c202287f17e6d625732e8fc8ec31c5e6c1f4db72f4c9a1f47b2480bc355c7ee1008cd2a87d9e651c90b094f82266de4797933d89e8638bf93196ddaccb87b6984335dbeafa8904adec0d4f95abb247225bca0893adb1f4ebbc656a33c12c259c2ffb10edfd8d8878dd9abcb18cbc1d8988b96985018b97d570431d9b3a9055a40cfbe5ea665d876a079743dd705eb18a4398224d6369c2b22050f0d7e406635df34843389946989c17c08b782d2df256a0815d9405a2987f588ac96ad0249f69f48653c3d60a424ab910534f9b7ddbf7609c84a53ff29e346c6cf81cffe0e49ce302851d0f92d10791ef33d0c57f2b9bb8a4dec97ec98a7aa9d06d59931dfa5f2184f861c563b9b873a97001d927faad71f7f3b536bc7f2df541c1f6f50ebabb7aa655ea33e107520c53feda8f9b109ef9e604dfead455cf9648ca7ec81a5359cb622210363e5d0670bcfc191403f7723b5398ca5ff743ddfc79c6830dc21d6bd8933eb1a0b0d7d51a57a4d46bae8949a7bf5df353e22b5cc5db1d148bd5b28f5bca6d00f59d9ce757305c55eadd2d4646895e0a8e3feb46c3730a4ffbc4f7039f9bf5b1d25927eb1fba41d5b234b7baefba996ea470aba6fe4bfcb23e38758eac9f901bb7980cb2da30831a6c2fc02efece7eeaa35f53b14a1a387244fc6046079fdb67f5e98754c5300e8f0ef29b3034f09bcbaa27cb28bb506a4ce45702fdc952bec901313b7d52246bb14834257e86911e1fa2d18fbc968dbaf6efd1a51641ca76887073565743536ad1f91991321d5a53626ad0f7bacbd32d9e48ca92e4e5898394a9a2e700ff14c6760ed547bc2af251ed608c2f83d1d52661940c84b97563d2b0b0361cb60b8c42b3b5d2a8de5fb406327b41a552fa9a13d930e98f8ad57a68db91b8febb0c59d3407a691d4a23985356648097cd7d35dd27dda175707c2174599492ecd8541308b60242e653cda72ea363c744e35189ee0301d8d1e7b5ffa796fb2de98841bbfd896f5bc1fe48162591a74e6d7df6f8cbbeaac1d3cc29e3b8e5472bc95b488df7a8d0f687a4df29ed3ed0b89ca7a4b608f39572508e797828341143c3e2e847c89879d6ada37e27e6c36c99b094071c8f3bd5e89e1a05da55f52ae51b48cce9dc5673cac906b3c670b67a0fa7c3c43b706ab1ddb57535a27763f43cd889aafea4f31d73654a89c453015d331d90d16d6e5a9308346841235316511a44a32c41d700898ebaf6b16819096c2f6312f7cc8237c1708d2385b59f39148293b2a6f875a37541888971d95952b0e7889504d6d89b5bcec3e9ac46a98a94c287078a794ef12bd413b0c315ecd350d770e8511a9715781faebee60c59cf533a9d5e3bf55d59b18b2179a712f2fb78268aae", 0x1000, r2) add_key$user(&(0x7f0000001e40), &(0x7f0000001e80)={'syz', 0x3}, &(0x7f0000001ec0)="ae524eb69bd708195588ee462433718dce52ddf26dc8f9263fd5dbc097f8a3bb62e68cba274d2d3f4912e6cda5bce9c22ee5f906d0ef655a420e439e5b784c8bc48b36fb6a95179ce883c4f9547d966562045c2153d411d0a68e2d65a001636df4d3ca7f5c4c0ee965d06d228ac06493da144a894a20712f9c478d543299b170b53c1eb68fb987bbfa6042f5e7e0d6db30e737c6d22ea5fbc128f0897cc387a666619e7b5053a2ab7ed91709090c3d5e86d396bd6d07266d12f46e03f597e888aacb4de671", 0xc5, 0xfffffffffffffff8) add_key$user(&(0x7f0000001fc0), &(0x7f0000002000)={'syz', 0x0}, &(0x7f0000002040)="b1dbe3fdaf8e891496c59c096d8d7c7493ce4ce821fe0e73ec3ed411f98d97f94ecf8e434115f7f30fee84b377e2960736a04af17d6b0eb51c0b7b9bc611b3fa8b7a2b581048853bcae182d9100bc6a1d609df35531bc7ce6e783f88dcdcf44550ea8d92f935e23ff0a8e2fa8e442b7e2b6e686292edad7068a0eaecc9f642839049e1bd3e614080a1690b241ed9def35aad2d17da79f1fa93cdfe1d3ca90823fcc660f1acdb87628e057f654ea34ddba2acc35ff7c3ef57830bf9eee32db88c4478f39e2dd38c954f556cda0329a3c50d3dab919b3559c231de6b98", 0xdc, r2) (async) r7 = add_key$fscrypt_v1(&(0x7f0000002140), &(0x7f0000002180)={'fscrypt:', @auto=[0x63, 0x31, 0x32, 0x33, 0x30, 0x63, 0x35, 0x31, 0x34, 0x66, 0x32, 0x35, 0x66, 0x33, 0x33, 0x33]}, &(0x7f00000021c0)={0x0, "45cfcbca86d14d629e6b3c0ce66ddfd2fb19b56717555fa7a03d23ce9c2d497ca5006cc10c9b279d315949f95ce138ec82ffe31202d3273dcc7a253b17eaa3aa", 0x32}, 0x48, r2) keyctl$revoke(0x3, r7) add_key$user(&(0x7f0000002240), &(0x7f0000002280)={'syz', 0x2}, &(0x7f00000022c0)="628882d02e238ea495d147e4b9c558b7c96ee88e3f96aca731d14c1af61100b8c6d55464f6c0f80ceeafb6eeae1eec2499485baa3b4f10d232d4a97db2c45206fe9a2167723a6ff244c340e288b5cabc105948aaea70698ca7212e9080a36bdbe8f0967e6dfc917b1fad55289c67f02ea8ba18c6ccaa7570fba7b410d4a202eef6bfba2966e783ddf614ceb4997661062c5425fb65fa379858d27a839317b36768e2b61cf55414e5e7e7731be36021c35ddb1b305f93", 0xb6, r2) 00:06:24 executing program 5: r0 = socket$inet_tcp(0x2, 0x1, 0x0) bind$inet(r0, &(0x7f0000000000)={0x2, 0x4e20, @multicast2}, 0x10) setsockopt$sock_int(r0, 0x1, 0x3c, &(0x7f0000000340)=0x1, 0x4) connect$inet(r0, &(0x7f0000000200)={0x2, 0x4e20, @loopback}, 0x10) r1 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f00000001c0)='memory.current\x00', 0x275a, 0x0) write$binfmt_script(r1, &(0x7f0000000000)=ANY=[], 0x208e24b) mmap(&(0x7f0000000000/0xb36000)=nil, 0xb36000, 0x2, 0x28011, r1, 0x0) sendmmsg$inet(r0, &(0x7f00000012c0)=[{{0x0, 0x4002, &(0x7f0000000600)=[{&(0x7f00000000c0)='o', 0x1}], 0x1, 0x0, 0x0, 0xf}, 0x34}, {{0x0, 0x0, &(0x7f0000001b80)=[{&(0x7f0000000740), 0x40020000}], 0x1, 0x0, 0x0, 0x9c000000}}], 0x2, 0x60c5840) [ 384.349112][T21665] sctp: [Deprecated]: syz-executor.2 (pid 21665) Use of int in max_burst socket option. [ 384.349112][T21665] Use struct sctp_assoc_value instead [ 384.351869][T21665] sctp: [Deprecated]: syz-executor.2 (pid 21665) Use of int in max_burst socket option. [ 384.351869][T21665] Use struct sctp_assoc_value instead [ 384.354816][T21665] sctp: [Deprecated]: syz-executor.2 (pid 21665) Use of int in max_burst socket option. [ 384.354816][T21665] Use struct sctp_assoc_value instead [ 384.357837][T21665] sctp: [Deprecated]: syz-executor.2 (pid 21665) Use of int in max_burst socket option. [ 384.357837][T21665] Use struct sctp_assoc_value instead 00:06:24 executing program 3: socket$can_j1939(0x1d, 0x2, 0x7) r0 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route(r0, &(0x7f00000000c0)={0x0, 0x0, &(0x7f0000000080)={&(0x7f0000000040)=@ipv6_newroute={0x38, 0x18, 0x1, 0x0, 0x0, {}, [@RTA_GATEWAY={0x14, 0x5, @loopback}, @RTA_OIF={0x8}]}, 0x38}}, 0x0) 00:06:24 executing program 4: socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route(0xffffffffffffffff, &(0x7f0000000200)={0x0, 0x0, &(0x7f00000000c0)={&(0x7f0000000100)=@ipv6_newrule={0x24, 0x18, 0x409, 0x0, 0x0, {}, [@FIB_RULE_POLICY=@FRA_GOTO={0x8, 0x1e, 0x7}]}, 0x24}}, 0x0) 00:06:24 executing program 3: socket$can_j1939(0x1d, 0x2, 0x7) r0 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route(r0, &(0x7f00000000c0)={0x0, 0x0, &(0x7f0000000080)={&(0x7f0000000040)=@ipv6_newroute={0x38, 0x18, 0x1, 0x0, 0x0, {}, [@RTA_GATEWAY={0x14, 0x5, @loopback}, @RTA_OIF={0x8}]}, 0x38}}, 0x0) 00:06:24 executing program 0: r0 = socket$inet_tcp(0x2, 0x1, 0x0) bind$inet(r0, &(0x7f0000000000)={0x2, 0x4e20, @multicast2}, 0x10) setsockopt$sock_int(r0, 0x1, 0x3c, &(0x7f0000000340)=0x1, 0x4) connect$inet(r0, &(0x7f0000000200)={0x2, 0x4e20, @loopback}, 0x10) r1 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f00000001c0)='memory.current\x00', 0x275a, 0x0) write$binfmt_script(r1, &(0x7f0000000000)=ANY=[], 0x208e24b) mmap(&(0x7f0000000000/0xb36000)=nil, 0xb36000, 0x2, 0x28011, r1, 0x0) sendmmsg$inet(r0, &(0x7f00000012c0)=[{{0x0, 0x4002, &(0x7f0000000600)=[{&(0x7f00000000c0)='o', 0x1}], 0x1, 0x0, 0x0, 0xf}, 0x34}, {{0x0, 0x0, &(0x7f0000001b80)=[{&(0x7f0000000740), 0x40020000}], 0x1, 0x0, 0x0, 0xffffffa6}}], 0x2, 0x60c5840) 00:06:24 executing program 4: socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route(0xffffffffffffffff, &(0x7f0000000200)={0x0, 0x0, &(0x7f00000000c0)={&(0x7f0000000100)=@ipv6_newrule={0x24, 0x18, 0x409, 0x0, 0x0, {}, [@FIB_RULE_POLICY=@FRA_GOTO={0x8, 0x1e, 0x7}]}, 0x24}}, 0x0) 00:06:24 executing program 3: socket$can_j1939(0x1d, 0x2, 0x7) sendmsg$nl_route(0xffffffffffffffff, &(0x7f00000000c0)={0x0, 0x0, &(0x7f0000000080)={&(0x7f0000000040)=@ipv6_newroute={0x38, 0x18, 0x1, 0x0, 0x0, {}, [@RTA_GATEWAY={0x14, 0x5, @loopback}, @RTA_OIF={0x8}]}, 0x38}}, 0x0) 00:06:24 executing program 1: r0 = syz_open_dev$midi(&(0x7f0000000000), 0xa5c, 0x0) close_range(0xffffffffffffffff, 0xffffffffffffffff, 0x2) r1 = getpid() sched_setscheduler(r1, 0x1, &(0x7f0000000240)=0x1) syz_open_procfs(r1, &(0x7f0000000100)='net/sctp\x00') ioctl$SNDRV_RAWMIDI_IOCTL_INFO(r0, 0x810c5701, 0x0) r2 = syz_open_procfs(0xffffffffffffffff, &(0x7f00000000c0)='net/ptype\x00') preadv(r2, &(0x7f0000000080)=[{&(0x7f0000000240)=""/159, 0x9f}], 0x1, 0x1a, 0x0) ioctl$SNDRV_RAWMIDI_IOCTL_STATUS32(r2, 0xc0245720, &(0x7f0000000040)={0x1}) 00:06:24 executing program 4: r0 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route(r0, 0x0, 0x0) [ 384.490243][T21665] sctp: [Deprecated]: syz-executor.2 (pid 21665) Use of int in max_burst socket option. [ 384.490243][T21665] Use struct sctp_assoc_value instead [ 384.493408][T21665] sctp: [Deprecated]: syz-executor.2 (pid 21665) Use of int in max_burst socket option. [ 384.493408][T21665] Use struct sctp_assoc_value instead [ 384.496598][T21665] sctp: [Deprecated]: syz-executor.2 (pid 21665) Use of int in max_burst socket option. [ 384.496598][T21665] Use struct sctp_assoc_value instead 00:06:24 executing program 2: r0 = syz_open_dev$tty1(0xc, 0x4, 0x1) ioctl$GIO_UNIMAP(r0, 0x4b66, &(0x7f0000000140)={0x1, &(0x7f0000000100)=[{}]}) write$binfmt_elf64(r0, &(0x7f0000000180)=ANY=[@ANYBLOB="1b5b070300d7bf000000000000000000001ef80000000000000000000000004000000000000000faffffff00000000000000000000380000000000000071457762fd901f720543d59a618e1e26f4c674a664c28617946b5fd8a3bc894563bd87adfe324a4e22d542ff0bad2c9980edd783362cf9d1c9beb3de8063af0ea273d487ae7842d9f047a15f46fc69"], 0x40) ioctl$TIOCSETD(r0, 0x5423, &(0x7f00000000c0)) r1 = syz_open_procfs(0xffffffffffffffff, &(0x7f00000000c0)='net/ptype\x00') preadv(r1, &(0x7f0000000080)=[{&(0x7f0000000240)=""/159, 0x9f}], 0x1, 0x1a, 0x0) ioctl$PIO_FONTX(r1, 0x4b6c, &(0x7f0000000000)={0x39, 0xe, &(0x7f0000000240)="3b6c464b83a879c47f17098fa95fb50c3656e3421eaf2967684918bd5024e3217f1090d5f573448545839a8a85d815d7a8e59f5ed3809f5f2634643950154696e540045b196256e2be8b33976c3df7b81de3c098682ce235e0d1d69503b9a08f46141db62b0fc450365bc3b600aa7a5727a2b68bd3b1d3437aa3273fba08befd64532bb3151632702572c7e6880701c1e01017bd9088573efcd6827ed3617bc60a718673550437a282ff40fb03f0f542c7a5f2fa197114f31693e1829126cdc1bb87207266fdb52274e2020b10621f3f15c34009205106c445777f4204d5967c9332271ca3066941e158a877017acaff25afb356be665ef263921f899af3b3ad8e1f60fa0664fd8b2e7caefb08378121bb749ac9eed3d1a7573590275141538bf79f4824a108ce3f8f2c6b24ad22c284a6e493c58cd4abe3fe827f542d2e13e567c25cfa8cd48d8abf0c847ed465e19df8ecd404b6faacf8454c2fe0eb7f8768b1b959616202e73e850b28ed60bce69609cfb74792e4bc3682a03bbe72061f2f203a175121a0bdfa27e81e6a592b9acfe10bf9032ddfd533154648cf30ca29b232f55da612f50b3917b11e4497e5fa8b7c3c673e8601d9675f4517051c07dde962f8512569b55e7090404896bcd18109969e197914eb755caec60f3d9b5ab95615278866f43b442142f2ebf77e8a7049e565866153c203ec35c4bd512115a76dfa37088469ccfa2be5e9317029884c5c16db9b1c3d9ac33f94cabc5998f62ff4530f705e5a24ef15997f2001ba3cc20e545761d2a68493385c6277c9ae806a38ffb7bc60b41ecf257090a0371eeb80be476a1f1076bd1cf27f060972e6de841d0a3f3757ad2fbe2c104fdbd940a08cbdbe94fb78108b694f879dc8781143de66a799a4acbbd76a02b91c2ac19787ddc715bf99ead2c0ffe32e8b216e80a0c1800fe567126584c294be48deb50d27834795f28ec6d3f52aeb0aee4621fe377541a09af2934e4a5110c222fc18af975e048b198324d73df9d814b880029f7bcee55dc1522f8f465c9bce76ad98459d1b9a672ce418ee4c7941f8c571bf58f9507abb6cd9dc658a6586ec76c0c04216586e13ed3121f57dc011bec66cc397f74a08e4374e0119f3bd372297d6cdbbb83645b7931890af60e8358c19c225d651b955417b7304d810c6759004d97943787f90e8b20e7bc6131132b78f193a2ad1990fdea764267574484a6f2d0112a968003f91a508262b7ed71661a1772d1a932c835c07b99c80dfcbf97cf3c2769bd4c8844b3a5e318167ba6884397058efaa6c458a72b926be604abff0b309f6d4623eba6ce3ea1d0c127c07e1ee29c93594903401ef53f0c8ba33aff732dba7dee4ce7e1057e185770b81d3b0fee16e1ecfc67e3fa26ba5c4953720c03223d92e394aaff156c47f0f657a72e11746dd636e4f4e"}) 00:06:24 executing program 3: socket$can_j1939(0x1d, 0x2, 0x7) sendmsg$nl_route(0xffffffffffffffff, &(0x7f00000000c0)={0x0, 0x0, &(0x7f0000000080)={&(0x7f0000000040)=@ipv6_newroute={0x38, 0x18, 0x1, 0x0, 0x0, {}, [@RTA_GATEWAY={0x14, 0x5, @loopback}, @RTA_OIF={0x8}]}, 0x38}}, 0x0) 00:06:24 executing program 1: r0 = syz_open_dev$midi(&(0x7f0000000000), 0xa5c, 0x0) (async) close_range(0xffffffffffffffff, 0xffffffffffffffff, 0x2) (async, rerun: 64) r1 = getpid() (rerun: 64) sched_setscheduler(r1, 0x1, &(0x7f0000000240)=0x1) (async, rerun: 32) syz_open_procfs(r1, &(0x7f0000000100)='net/sctp\x00') (rerun: 32) ioctl$SNDRV_RAWMIDI_IOCTL_INFO(r0, 0x810c5701, 0x0) (async) r2 = syz_open_procfs(0xffffffffffffffff, &(0x7f00000000c0)='net/ptype\x00') preadv(r2, &(0x7f0000000080)=[{&(0x7f0000000240)=""/159, 0x9f}], 0x1, 0x1a, 0x0) (async) ioctl$SNDRV_RAWMIDI_IOCTL_STATUS32(r2, 0xc0245720, &(0x7f0000000040)={0x1}) 00:06:24 executing program 4: r0 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route(r0, 0x0, 0x0) 00:06:24 executing program 5: r0 = socket$inet_tcp(0x2, 0x1, 0x0) bind$inet(r0, &(0x7f0000000000)={0x2, 0x4e20, @multicast2}, 0x10) setsockopt$sock_int(r0, 0x1, 0x3c, &(0x7f0000000340)=0x1, 0x4) connect$inet(r0, &(0x7f0000000200)={0x2, 0x4e20, @loopback}, 0x10) r1 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f00000001c0)='memory.current\x00', 0x275a, 0x0) write$binfmt_script(r1, &(0x7f0000000000)=ANY=[], 0x208e24b) mmap(&(0x7f0000000000/0xb36000)=nil, 0xb36000, 0x2, 0x28011, r1, 0x0) sendmmsg$inet(r0, &(0x7f00000012c0)=[{{0x0, 0x4002, &(0x7f0000000600)=[{&(0x7f00000000c0)='o', 0x1}], 0x1, 0x0, 0x0, 0xf}, 0x34}, {{0x0, 0x0, &(0x7f0000001b80)=[{&(0x7f0000000740), 0x40020000}], 0x1, 0x0, 0x0, 0xa6ffffff}}], 0x2, 0x60c5840) 00:06:24 executing program 0: r0 = socket$inet_tcp(0x2, 0x1, 0x0) bind$inet(r0, &(0x7f0000000000)={0x2, 0x4e20, @multicast2}, 0x10) setsockopt$sock_int(r0, 0x1, 0x3c, &(0x7f0000000340)=0x1, 0x4) connect$inet(r0, &(0x7f0000000200)={0x2, 0x4e20, @loopback}, 0x10) r1 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f00000001c0)='memory.current\x00', 0x275a, 0x0) write$binfmt_script(r1, &(0x7f0000000000)=ANY=[], 0x208e24b) mmap(&(0x7f0000000000/0xb36000)=nil, 0xb36000, 0x2, 0x28011, r1, 0x0) sendmmsg$inet(r0, &(0x7f00000012c0)=[{{0x0, 0x4002, &(0x7f0000000600)=[{&(0x7f00000000c0)='o', 0x1}], 0x1, 0x0, 0x0, 0xf}, 0x34}, {{0x0, 0x0, &(0x7f0000001b80)=[{&(0x7f0000000740), 0x40020000}], 0x1, 0x0, 0x0, 0xfffffff2}}], 0x2, 0x60c5840) 00:06:24 executing program 4: r0 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route(r0, 0x0, 0x0) 00:06:24 executing program 3: socket$can_j1939(0x1d, 0x2, 0x7) sendmsg$nl_route(0xffffffffffffffff, &(0x7f00000000c0)={0x0, 0x0, &(0x7f0000000080)={&(0x7f0000000040)=@ipv6_newroute={0x38, 0x18, 0x1, 0x0, 0x0, {}, [@RTA_GATEWAY={0x14, 0x5, @loopback}, @RTA_OIF={0x8}]}, 0x38}}, 0x0) 00:06:24 executing program 2: r0 = syz_open_dev$tty1(0xc, 0x4, 0x1) ioctl$GIO_UNIMAP(r0, 0x4b66, &(0x7f0000000140)={0x1, &(0x7f0000000100)=[{}]}) write$binfmt_elf64(r0, &(0x7f0000000180)=ANY=[@ANYBLOB="1b5b070300d7bf000000000000000000001ef80000000000000000000000004000000000000000faffffff00000000000000000000380000000000000071457762fd901f720543d59a618e1e26f4c674a664c28617946b5fd8a3bc894563bd87adfe324a4e22d542ff0bad2c9980edd783362cf9d1c9beb3de8063af0ea273d487ae7842d9f047a15f46fc69"], 0x40) ioctl$TIOCSETD(r0, 0x5423, &(0x7f00000000c0)) r1 = syz_open_procfs(0xffffffffffffffff, &(0x7f00000000c0)='net/ptype\x00') preadv(r1, &(0x7f0000000080)=[{&(0x7f0000000240)=""/159, 0x9f}], 0x1, 0x1a, 0x0) ioctl$PIO_FONTX(r1, 0x4b6c, &(0x7f0000000000)={0x39, 0xe, &(0x7f0000000240)="3b6c464b83a879c47f17098fa95fb50c3656e3421eaf2967684918bd5024e3217f1090d5f573448545839a8a85d815d7a8e59f5ed3809f5f2634643950154696e540045b196256e2be8b33976c3df7b81de3c098682ce235e0d1d69503b9a08f46141db62b0fc450365bc3b600aa7a5727a2b68bd3b1d3437aa3273fba08befd64532bb3151632702572c7e6880701c1e01017bd9088573efcd6827ed3617bc60a718673550437a282ff40fb03f0f542c7a5f2fa197114f31693e1829126cdc1bb87207266fdb52274e2020b10621f3f15c34009205106c445777f4204d5967c9332271ca3066941e158a877017acaff25afb356be665ef263921f899af3b3ad8e1f60fa0664fd8b2e7caefb08378121bb749ac9eed3d1a7573590275141538bf79f4824a108ce3f8f2c6b24ad22c284a6e493c58cd4abe3fe827f542d2e13e567c25cfa8cd48d8abf0c847ed465e19df8ecd404b6faacf8454c2fe0eb7f8768b1b959616202e73e850b28ed60bce69609cfb74792e4bc3682a03bbe72061f2f203a175121a0bdfa27e81e6a592b9acfe10bf9032ddfd533154648cf30ca29b232f55da612f50b3917b11e4497e5fa8b7c3c673e8601d9675f4517051c07dde962f8512569b55e7090404896bcd18109969e197914eb755caec60f3d9b5ab95615278866f43b442142f2ebf77e8a7049e565866153c203ec35c4bd512115a76dfa37088469ccfa2be5e9317029884c5c16db9b1c3d9ac33f94cabc5998f62ff4530f705e5a24ef15997f2001ba3cc20e545761d2a68493385c6277c9ae806a38ffb7bc60b41ecf257090a0371eeb80be476a1f1076bd1cf27f060972e6de841d0a3f3757ad2fbe2c104fdbd940a08cbdbe94fb78108b694f879dc8781143de66a799a4acbbd76a02b91c2ac19787ddc715bf99ead2c0ffe32e8b216e80a0c1800fe567126584c294be48deb50d27834795f28ec6d3f52aeb0aee4621fe377541a09af2934e4a5110c222fc18af975e048b198324d73df9d814b880029f7bcee55dc1522f8f465c9bce76ad98459d1b9a672ce418ee4c7941f8c571bf58f9507abb6cd9dc658a6586ec76c0c04216586e13ed3121f57dc011bec66cc397f74a08e4374e0119f3bd372297d6cdbbb83645b7931890af60e8358c19c225d651b955417b7304d810c6759004d97943787f90e8b20e7bc6131132b78f193a2ad1990fdea764267574484a6f2d0112a968003f91a508262b7ed71661a1772d1a932c835c07b99c80dfcbf97cf3c2769bd4c8844b3a5e318167ba6884397058efaa6c458a72b926be604abff0b309f6d4623eba6ce3ea1d0c127c07e1ee29c93594903401ef53f0c8ba33aff732dba7dee4ce7e1057e185770b81d3b0fee16e1ecfc67e3fa26ba5c4953720c03223d92e394aaff156c47f0f657a72e11746dd636e4f4e"}) syz_open_dev$tty1(0xc, 0x4, 0x1) (async) ioctl$GIO_UNIMAP(r0, 0x4b66, &(0x7f0000000140)={0x1, &(0x7f0000000100)=[{}]}) (async) write$binfmt_elf64(r0, &(0x7f0000000180)=ANY=[@ANYBLOB="1b5b070300d7bf000000000000000000001ef80000000000000000000000004000000000000000faffffff00000000000000000000380000000000000071457762fd901f720543d59a618e1e26f4c674a664c28617946b5fd8a3bc894563bd87adfe324a4e22d542ff0bad2c9980edd783362cf9d1c9beb3de8063af0ea273d487ae7842d9f047a15f46fc69"], 0x40) (async) ioctl$TIOCSETD(r0, 0x5423, &(0x7f00000000c0)) (async) syz_open_procfs(0xffffffffffffffff, &(0x7f00000000c0)='net/ptype\x00') (async) preadv(r1, &(0x7f0000000080)=[{&(0x7f0000000240)=""/159, 0x9f}], 0x1, 0x1a, 0x0) (async) ioctl$PIO_FONTX(r1, 0x4b6c, &(0x7f0000000000)={0x39, 0xe, &(0x7f0000000240)="3b6c464b83a879c47f17098fa95fb50c3656e3421eaf2967684918bd5024e3217f1090d5f573448545839a8a85d815d7a8e59f5ed3809f5f2634643950154696e540045b196256e2be8b33976c3df7b81de3c098682ce235e0d1d69503b9a08f46141db62b0fc450365bc3b600aa7a5727a2b68bd3b1d3437aa3273fba08befd64532bb3151632702572c7e6880701c1e01017bd9088573efcd6827ed3617bc60a718673550437a282ff40fb03f0f542c7a5f2fa197114f31693e1829126cdc1bb87207266fdb52274e2020b10621f3f15c34009205106c445777f4204d5967c9332271ca3066941e158a877017acaff25afb356be665ef263921f899af3b3ad8e1f60fa0664fd8b2e7caefb08378121bb749ac9eed3d1a7573590275141538bf79f4824a108ce3f8f2c6b24ad22c284a6e493c58cd4abe3fe827f542d2e13e567c25cfa8cd48d8abf0c847ed465e19df8ecd404b6faacf8454c2fe0eb7f8768b1b959616202e73e850b28ed60bce69609cfb74792e4bc3682a03bbe72061f2f203a175121a0bdfa27e81e6a592b9acfe10bf9032ddfd533154648cf30ca29b232f55da612f50b3917b11e4497e5fa8b7c3c673e8601d9675f4517051c07dde962f8512569b55e7090404896bcd18109969e197914eb755caec60f3d9b5ab95615278866f43b442142f2ebf77e8a7049e565866153c203ec35c4bd512115a76dfa37088469ccfa2be5e9317029884c5c16db9b1c3d9ac33f94cabc5998f62ff4530f705e5a24ef15997f2001ba3cc20e545761d2a68493385c6277c9ae806a38ffb7bc60b41ecf257090a0371eeb80be476a1f1076bd1cf27f060972e6de841d0a3f3757ad2fbe2c104fdbd940a08cbdbe94fb78108b694f879dc8781143de66a799a4acbbd76a02b91c2ac19787ddc715bf99ead2c0ffe32e8b216e80a0c1800fe567126584c294be48deb50d27834795f28ec6d3f52aeb0aee4621fe377541a09af2934e4a5110c222fc18af975e048b198324d73df9d814b880029f7bcee55dc1522f8f465c9bce76ad98459d1b9a672ce418ee4c7941f8c571bf58f9507abb6cd9dc658a6586ec76c0c04216586e13ed3121f57dc011bec66cc397f74a08e4374e0119f3bd372297d6cdbbb83645b7931890af60e8358c19c225d651b955417b7304d810c6759004d97943787f90e8b20e7bc6131132b78f193a2ad1990fdea764267574484a6f2d0112a968003f91a508262b7ed71661a1772d1a932c835c07b99c80dfcbf97cf3c2769bd4c8844b3a5e318167ba6884397058efaa6c458a72b926be604abff0b309f6d4623eba6ce3ea1d0c127c07e1ee29c93594903401ef53f0c8ba33aff732dba7dee4ce7e1057e185770b81d3b0fee16e1ecfc67e3fa26ba5c4953720c03223d92e394aaff156c47f0f657a72e11746dd636e4f4e"}) (async) 00:06:24 executing program 1: r0 = syz_open_dev$midi(&(0x7f0000000000), 0xa5c, 0x0) close_range(0xffffffffffffffff, 0xffffffffffffffff, 0x2) r1 = getpid() sched_setscheduler(r1, 0x1, &(0x7f0000000240)=0x1) syz_open_procfs(r1, &(0x7f0000000100)='net/sctp\x00') ioctl$SNDRV_RAWMIDI_IOCTL_INFO(r0, 0x810c5701, 0x0) r2 = syz_open_procfs(0xffffffffffffffff, &(0x7f00000000c0)='net/ptype\x00') preadv(r2, &(0x7f0000000080)=[{&(0x7f0000000240)=""/159, 0x9f}], 0x1, 0x1a, 0x0) ioctl$SNDRV_RAWMIDI_IOCTL_STATUS32(r2, 0xc0245720, &(0x7f0000000040)={0x1}) syz_open_dev$midi(&(0x7f0000000000), 0xa5c, 0x0) (async) close_range(0xffffffffffffffff, 0xffffffffffffffff, 0x2) (async) getpid() (async) sched_setscheduler(r1, 0x1, &(0x7f0000000240)=0x1) (async) syz_open_procfs(r1, &(0x7f0000000100)='net/sctp\x00') (async) ioctl$SNDRV_RAWMIDI_IOCTL_INFO(r0, 0x810c5701, 0x0) (async) syz_open_procfs(0xffffffffffffffff, &(0x7f00000000c0)='net/ptype\x00') (async) preadv(r2, &(0x7f0000000080)=[{&(0x7f0000000240)=""/159, 0x9f}], 0x1, 0x1a, 0x0) (async) ioctl$SNDRV_RAWMIDI_IOCTL_STATUS32(r2, 0xc0245720, &(0x7f0000000040)={0x1}) (async) 00:06:24 executing program 3: r0 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route(r0, &(0x7f00000000c0)={0x0, 0x0, &(0x7f0000000080)={&(0x7f0000000040)=@ipv6_newroute={0x38, 0x18, 0x1, 0x0, 0x0, {}, [@RTA_GATEWAY={0x14, 0x5, @loopback}, @RTA_OIF={0x8}]}, 0x38}}, 0x0) 00:06:24 executing program 4: r0 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route(r0, &(0x7f0000000200)={0x0, 0x0, 0x0}, 0x0) 00:06:24 executing program 4: r0 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route(r0, &(0x7f0000000200)={0x0, 0x0, 0x0}, 0x0) 00:06:24 executing program 5: r0 = socket$inet_tcp(0x2, 0x1, 0x0) bind$inet(r0, &(0x7f0000000000)={0x2, 0x4e20, @multicast2}, 0x10) setsockopt$sock_int(r0, 0x1, 0x3c, &(0x7f0000000340)=0x1, 0x4) connect$inet(r0, &(0x7f0000000200)={0x2, 0x4e20, @loopback}, 0x10) r1 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f00000001c0)='memory.current\x00', 0x275a, 0x0) write$binfmt_script(r1, &(0x7f0000000000)=ANY=[], 0x208e24b) mmap(&(0x7f0000000000/0xb36000)=nil, 0xb36000, 0x2, 0x28011, r1, 0x0) sendmmsg$inet(r0, &(0x7f00000012c0)=[{{0x0, 0x4002, &(0x7f0000000600)=[{&(0x7f00000000c0)='o', 0x1}], 0x1, 0x0, 0x0, 0xf}, 0x34}, {{0x0, 0x0, &(0x7f0000001b80)=[{&(0x7f0000000740), 0x40020000}], 0x1, 0x0, 0x0, 0xe8030000}}], 0x2, 0x60c5840) 00:06:24 executing program 2: r0 = syz_open_dev$tty1(0xc, 0x4, 0x1) ioctl$GIO_UNIMAP(r0, 0x4b66, &(0x7f0000000140)={0x1, &(0x7f0000000100)=[{}]}) write$binfmt_elf64(r0, &(0x7f0000000180)=ANY=[@ANYBLOB="1b5b070300d7bf000000000000000000001ef80000000000000000000000004000000000000000faffffff00000000000000000000380000000000000071457762fd901f720543d59a618e1e26f4c674a664c28617946b5fd8a3bc894563bd87adfe324a4e22d542ff0bad2c9980edd783362cf9d1c9beb3de8063af0ea273d487ae7842d9f047a15f46fc69"], 0x40) ioctl$TIOCSETD(r0, 0x5423, &(0x7f00000000c0)) (async) r1 = syz_open_procfs(0xffffffffffffffff, &(0x7f00000000c0)='net/ptype\x00') preadv(r1, &(0x7f0000000080)=[{&(0x7f0000000240)=""/159, 0x9f}], 0x1, 0x1a, 0x0) ioctl$PIO_FONTX(r1, 0x4b6c, &(0x7f0000000000)={0x39, 0xe, &(0x7f0000000240)="3b6c464b83a879c47f17098fa95fb50c3656e3421eaf2967684918bd5024e3217f1090d5f573448545839a8a85d815d7a8e59f5ed3809f5f2634643950154696e540045b196256e2be8b33976c3df7b81de3c098682ce235e0d1d69503b9a08f46141db62b0fc450365bc3b600aa7a5727a2b68bd3b1d3437aa3273fba08befd64532bb3151632702572c7e6880701c1e01017bd9088573efcd6827ed3617bc60a718673550437a282ff40fb03f0f542c7a5f2fa197114f31693e1829126cdc1bb87207266fdb52274e2020b10621f3f15c34009205106c445777f4204d5967c9332271ca3066941e158a877017acaff25afb356be665ef263921f899af3b3ad8e1f60fa0664fd8b2e7caefb08378121bb749ac9eed3d1a7573590275141538bf79f4824a108ce3f8f2c6b24ad22c284a6e493c58cd4abe3fe827f542d2e13e567c25cfa8cd48d8abf0c847ed465e19df8ecd404b6faacf8454c2fe0eb7f8768b1b959616202e73e850b28ed60bce69609cfb74792e4bc3682a03bbe72061f2f203a175121a0bdfa27e81e6a592b9acfe10bf9032ddfd533154648cf30ca29b232f55da612f50b3917b11e4497e5fa8b7c3c673e8601d9675f4517051c07dde962f8512569b55e7090404896bcd18109969e197914eb755caec60f3d9b5ab95615278866f43b442142f2ebf77e8a7049e565866153c203ec35c4bd512115a76dfa37088469ccfa2be5e9317029884c5c16db9b1c3d9ac33f94cabc5998f62ff4530f705e5a24ef15997f2001ba3cc20e545761d2a68493385c6277c9ae806a38ffb7bc60b41ecf257090a0371eeb80be476a1f1076bd1cf27f060972e6de841d0a3f3757ad2fbe2c104fdbd940a08cbdbe94fb78108b694f879dc8781143de66a799a4acbbd76a02b91c2ac19787ddc715bf99ead2c0ffe32e8b216e80a0c1800fe567126584c294be48deb50d27834795f28ec6d3f52aeb0aee4621fe377541a09af2934e4a5110c222fc18af975e048b198324d73df9d814b880029f7bcee55dc1522f8f465c9bce76ad98459d1b9a672ce418ee4c7941f8c571bf58f9507abb6cd9dc658a6586ec76c0c04216586e13ed3121f57dc011bec66cc397f74a08e4374e0119f3bd372297d6cdbbb83645b7931890af60e8358c19c225d651b955417b7304d810c6759004d97943787f90e8b20e7bc6131132b78f193a2ad1990fdea764267574484a6f2d0112a968003f91a508262b7ed71661a1772d1a932c835c07b99c80dfcbf97cf3c2769bd4c8844b3a5e318167ba6884397058efaa6c458a72b926be604abff0b309f6d4623eba6ce3ea1d0c127c07e1ee29c93594903401ef53f0c8ba33aff732dba7dee4ce7e1057e185770b81d3b0fee16e1ecfc67e3fa26ba5c4953720c03223d92e394aaff156c47f0f657a72e11746dd636e4f4e"}) 00:06:24 executing program 3: socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route(0xffffffffffffffff, &(0x7f00000000c0)={0x0, 0x0, &(0x7f0000000080)={&(0x7f0000000040)=@ipv6_newroute={0x38, 0x18, 0x1, 0x0, 0x0, {}, [@RTA_GATEWAY={0x14, 0x5, @loopback}, @RTA_OIF={0x8}]}, 0x38}}, 0x0) 00:06:24 executing program 1: r0 = syz_mount_image$hfs(&(0x7f0000000280), &(0x7f0000000440)='./bus\x00', 0x8100000, 0x0, &(0x7f0000000000), 0x4, &(0x7f00000009c0)={[], [{@smackfshat={'smackfshat', 0x3d, ',,,'}}]}, 0x1) ioctl$AUTOFS_DEV_IOCTL_EXPIRE(0xffffffffffffffff, 0xc018937c, &(0x7f0000000040)={{0x1, 0x1, 0x18, r0, {0x4}}, './bus\x00'}) semctl$IPC_RMID(0xffffffffffffffff, 0x0, 0x0) r1 = socket(0x11, 0x800000003, 0x0) bind(r1, &(0x7f0000000080)=@generic={0x11, "0000010000000000080044944eeba71a4976e252922cb18f6e2e2aba000000012e0b3836005404b0e0301a4ce875f2e3ff5f163ee340b7679500800000000000000101013c5811039e15775027ecce66fd792bbf0e5bf5ff1b0816f3f6db1c00010000000000000049740000000000000006ad8e5ecc326d3a09ffc2c654"}, 0x80) getsockname$packet(r1, &(0x7f0000000100)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @dev}, &(0x7f0000000140)=0x2e) ioctl$SIOCSIFMTU(r1, 0x8922, &(0x7f0000000000)={'virt_wifi0\x00', 0x8}) 00:06:24 executing program 0: r0 = socket$inet_tcp(0x2, 0x1, 0x0) bind$inet(r0, &(0x7f0000000000)={0x2, 0x4e20, @multicast2}, 0x10) setsockopt$sock_int(r0, 0x1, 0x3c, &(0x7f0000000340)=0x1, 0x4) connect$inet(r0, &(0x7f0000000200)={0x2, 0x4e20, @loopback}, 0x10) r1 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f00000001c0)='memory.current\x00', 0x275a, 0x0) write$binfmt_script(r1, &(0x7f0000000000)=ANY=[], 0x208e24b) mmap(&(0x7f0000000000/0xb36000)=nil, 0xb36000, 0x2, 0x28011, r1, 0x0) sendmmsg$inet(r0, &(0x7f00000012c0)=[{{0x0, 0x4002, &(0x7f0000000600)=[{&(0x7f00000000c0)='o', 0x1}], 0x1, 0x0, 0x0, 0xf}, 0x34}, {{0x0, 0x0, &(0x7f0000001b80)=[{&(0x7f0000000740), 0x40020000}], 0x1}}], 0x2, 0x60c5840) 00:06:24 executing program 4: r0 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route(r0, &(0x7f0000000200)={0x0, 0x0, 0x0}, 0x0) [ 384.786917][T21744] loop1: detected capacity change from 0 to 264192 00:06:24 executing program 3: socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route(0xffffffffffffffff, &(0x7f00000000c0)={0x0, 0x0, &(0x7f0000000080)={&(0x7f0000000040)=@ipv6_newroute={0x38, 0x18, 0x1, 0x0, 0x0, {}, [@RTA_GATEWAY={0x14, 0x5, @loopback}, @RTA_OIF={0x8}]}, 0x38}}, 0x0) [ 384.816351][T21744] hfs: can't find a HFS filesystem on dev loop1 00:06:24 executing program 2: r0 = syz_mount_image$nilfs2(&(0x7f00000000c0), &(0x7f0000000100)='./file0\x00', 0x100000, 0x39, &(0x7f0000000200)=[{&(0x7f00000106a0)="01000000000000000004000000000000781f1f6300000000781f1f630000000000000000000000000000000000000000ed4102000000000000000000000000000100"/96, 0x60, 0x6}, {&(0x7f0000000d40)="020000000000343418010000f498e16897043d98000000003f00000000000000000010000000000004000000000000001000000005000000010000000000000004000000000000000000000000000000e003000000000000781f1f6300000000781f1f6300000000781f1f63000000000100320000000100781f1f6300000000004eed0000000000000000000b00000080002000c00010005745cea941714c61b9841bd4a64c433600"/192, 0xc0, 0x400}, {&(0x7f0000010200)="0200000000000000100001022e0000000200000000000000100002022e2e00000b00000000000000e00306012e6e696c667300"/64, 0x40, 0x1400}, {&(0x7f0000010240)="f41f0000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000ff0f00"/1056, 0x420, 0x17ff}, {&(0x7f0000010660)="00000000000000000000000000000000781f1f6300000000781f1f63000000000000000000000000000000000000000000800100"/64, 0x40, 0x2080}, {&(0x7f0000010700)="00000000000000000000000000000000781f1f6300000000781f1f63000000000000000000000000000000000000000000800100"/64, 0x40, 0x2380}, {&(0x7f0000010740)="00000000000000000000000000000000781f1f6300000000781f1f63000000000000000000000000000000000000000000800100"/64, 0x40, 0x2400}, {&(0x7f0000010780)="00000000000000000000000000000000781f1f6300000000781f1f63000000000000000000000000000000000000000000800100"/64, 0x40, 0x2480}, {&(0x7f00000107c0)="00000000000000000000000000000000781f1f6300000000781f1f63000000000000000000000000000000000000000000800100"/64, 0x40, 0x2500}, {&(0x7f0000010800)="00000000000000000000000000000000781f1f6300000000781f1f630000000000000000000000000000000000000000a4810100"/64, 0x40, 0x2580}, {&(0x7f0000010840)="0100"/32, 0x20, 0x2800}, {&(0x7f0000010860)="0000000000000000000000000000000000000000000000000100000000000000781f1f63000000000c000000000000000200000000000000050000000000000004000000000000000000000000000000781f1f6300000000781f1f63000000000000000000000000000000000000000000800100000000000000000000000000020000000000000003000000000000000400000000000000050000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000200000000000000", 0xe0, 0x28c0}, {&(0x7f0000010940)="0200000000000000000000000000000000000000000000000300000000000000", 0x20, 0x2a40}, {&(0x7f0000000000)="0200000000000000000000000000000000000000000000000400000000000000", 0x20, 0x2b00}, {&(0x7f0000010980)="3d0000000000000002000000000000003e000000000000000000000000000000781f1f63000000000c0000000300000000000000000000000000000003000000", 0x40, 0x2c00}, {&(0x7f0000001400)="f81f0000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000f9ff1f000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000035e808d929438700200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000ff000000000000000000000000000000000000000000fe6a031411ee63220000", 0x427, 0x3001}, {&(0x7f0000000ac0)="05000000000000000100000000000000ffffffffffffffff000000000000000006000000000000000100000000000000fffffffffffbffff000000000000000007000000000000000100000000000000ffffffffffffffff00000000000009000000000000000000010000000000003371f225fab0620b98706919e1da00ffffffffffffffff000000000000000009000000000000000100000000000000ffffffffffffffff00000000000000000a000000000000000100000000000000ffffffffffffffff00000000000000000b000000000000000100000000000000ffffffffffffffff0000000000000000", 0xee, 0x3820}, {&(0x7f0000010ec0)="d102c1e890010000781f1f630000000003000000000000000000000000000000781f1f6300000000781f1f630000000000000000000000000000000000000000008001000000000000000000000000000c000000000000000d000000000000000e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000781f1f6300000000781f1f630000000000000000000000000000000000000000008001000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000781f1f6300000000781f1f630000000000000000000000000000000000000000008001000000000000000000000000000700"/352, 0x160, 0x3c00}, {&(0x7f0000011020)="652d8fe95cab1d6a11faaf1e400001000100000000000000781f1f630000000020000000000000001000000006000000c00100000000000002000000000000000c000000000000000200000000000000010000000100000000100000000000000000000000000000020000000000000002000000000000000100000001000000120000000000000000000000000000000d000000000000000200000000000000020000000200000000140000000000000000000000000000011400000000000001000000000000000e0000000000000002000000000000000100000001000000001800000000000000000000000000000f0000000000000002000000000000000100000001000000001c000000000000000000000000000010000000000000000200000000000000090000000900000008000000000000000000000000000000090000000000000001000000000000000a0000000000000002000000000000000b0000000000000003000000000000000c0000000000000004000000000000000d0000000000000005000000000000000e0000000000000006000000000000001000000000000000070000000000000011000000000000000800000000000000", 0x1c0, 0x4000}, {&(0x7f00000111e0)="0c00000000000000100001022e0000000200000000000000100002022e2e00000d000000000000001800050166696c6530000000000016000e00000000000000c803050766696c653100"/96, 0x60, 0x4400}, {&(0x7f0000000e40)="0200000000000000100001022e0000000200000000000000100002022e2e00000b00040000000000180006012e6e696c66730000000000000c000000000000001800050266696c6530000000000000000f000000000000001800050166696c65310000000000000010000000000000001800050166696c65320000000000000010000000000000001800050166696c65330000000000000011000000000000006803090166696c652e636f6c64000000000000000000000000000000000000005d93d9db5530385f0783baa04c1f12e30fd570c45fdcc74dd80bee7b9763226b11a6188ab159c9e4798a7e611fb624e9ba470700c4dfd63d5fe2ceff679c8ca5d83d492d7f03c4d0ce83f574f55c402cb2791e7df02ca234f511813cd8af73dae62c22997171926b8bafd7013d77c8aaaaa63fbd385bd13eea3c5558bed24494b99ed957d721d50f6212d6cb487766dded0b732accafb1f82f98b36976e717260996b286e570d4306d100b76e6b6a3517f8bb3190e879582590730adec6106968058b9e2c503d92b", 0x188, 0x4800}, {&(0x7f0000011300)='syzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkal\x00\x00\x00\x00\x00\x00', 0x420, 0x4c00}, {&(0x7f0000011720)='/tmp/syz-imagegen3787079791/file0/file0\x00'/64, 0x40, 0x5400}, {&(0x7f0000011780)="16aae7c8b63c7c0811faaf1e400000000200000000000000781f1f630000000030000000000000001000000006000000880100000000000002000000000000001000000000000000020000000000000001000000000000000f00000000000000110000000000000002000000000000000100000001000000000400000000000000000000000000000600000000000000020000000000000005000000050000001300000000000000000000000000000014000000000000000100000000000000150000000000000002000000000000001600000000000000030000000000000001180000000000000400000000000000040000000000000000000000000000000100000001000000170000000000000000000000000000000500000000000000000000000000000001000000010000001800000000000000000000000000000003000000000000000000000000000000060000000600000000000000000000000100000000000000020000000000000022000000000000008200000000000000a200"/416, 0x1a0, 0x8000}, {&(0x7f0000011980)="0000000000000000080000000000000009000000000000000a000000000000000b000000000000000c000000000000000d000000000000000e0000000000000010000000000000001100"/96, 0x60, 0x8600}, {&(0x7f00000119e0)='syzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallers\x00'/128, 0x80, 0x8800}, {&(0x7f0000011a60)="ee1f0000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000ffff0300"/1056, 0x420, 0x8c00}, {&(0x7f0000011e80)="00000000000000000000000000000000781f1f6300000000781f1f63000000000000000000000000000000000000000000800100"/64, 0x40, 0x9480}, {&(0x7f0000011ec0)="01000000000000000004000000000000781f1f6300000000781f1f630000000092ddcb2992ddcb290000000000000000ed4103000000000000000000000000001200"/96, 0x60, 0x9500}, {&(0x7f0000000880)="00000000000000000000000000000000781f1f6300000000781f1f63000000000000000000000000000000000000000000800100"/64, 0x40, 0x9780}, {&(0x7f0000001bc0)="00000000000000000000000000000000781f1f6300000000781f1f63000000000000000000000000000000000000000000800100000000000000000000000000bb755ccb35db3f23d2f959c640b3f7e4f89b3e98084087c7d84e05187ba1a4c70bd1d2fa45df73086e0bcab9b39569f71f45460370d5931d172ea6be44eb1b3c", 0x80, 0x9800}, {&(0x7f0000001000)="00000000000000000000000000000000781f1f63000000007851d90000000000008001000000000000000000000000000eb4e95c2a11348f199606f92f622ff79c77471b9eda918b4741aae7087ed6f3627f32e670fa3869a0a1c4186ca188f8b07df844e618c65793a8bf5df733ca8bd529fe78adc1f327a5b560f60838", 0x7e, 0x9882}, {&(0x7f0000000080)="00000000000000000000000000000000781f1f6300000000781f1f63000000000000000000000000000000000000000000800100"/64, 0x40, 0x9900}, {&(0x7f0000012060)="02000000000000000004000000000000781f1f6300000000781f1f630000000092ddcb2992ddcb290000000000000000ed410200000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080bd9f690000000004000000000000001a04000000000000781f1f6300000000781f1f630000000092ddcb2992ddcb290000000000000000ed810100000000000000000000000000001400000000000001140000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000081bd9f690000000002000000000000002700000000000000781f1f6300000000781f1f630000000092ddcb2992ddcb290000000000000000eda10100000000000000000000000000001800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000082bd9f690000000002000000000000000a00000000000000781f1f6300000000781f1f630000000092ddcb2992ddcb290000000000000000ed810100000000000000000000000000001c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000083bd9f690000000014000000000000002823000000000000781f1f6300000000781f1f630000000092ddcb2992ddcb290000000000000000ed810200000000000102010000000000000000000000000009000000000000000a000000000000000f000000000000000c000000000000000d00000000000000000000000000000084bd9f690000000002000000000000006400000000000000781f1f6300000000781f1f630000000092ddcb2992ddcb290000000000000000ed810100000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000085bd9f6900000000", 0x300, 0x9a00}, {&(0x7f0000012360)="0200"/32, 0x20, 0xa000}, {&(0x7f0000012380)="0000000000000000000000000000000000000000000000000100000000000000781f1f63000000000c000000000000000200000000000000050000000000000004000000000000000000000000000000781f1f6300000000781f1f63000000000000000000000000000000000000000000800100000000000000000000000000020000000000000003000000000000000400000000000000050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000781f1f630000000035000000000000000800000000000000160000000000000006000000000000000000000000000000781f1f6300000000781f1f63000000000000000000000000000000000000000000800100000000000000000000000000130000000000000014000000000000001500000000000000160000000000000001180000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000300000000000000", 0x1a0, 0xa0c0}, {&(0x7f0000012520)="0200000000000000000000000000000000000000000000000400000000000000", 0x20, 0xa300}, {&(0x7f0000012540)="3a00000000000000050000000000000004000000000000000000000000000000781f1f63000000000c00000003000000781f1f63000000001000000003000000781f1f63000000001000000002000000781f1f630000000005000000020000000000000000000000000000000200"/128, 0x80, 0xa400}, {&(0x7f00000125c0)="e01f0000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000ffffff0100"/1056, 0x420, 0xa800}, {&(0x7f0000000140)="0100"/32, 0x20, 0xac80}, {&(0x7f0000012a00)="0100"/32, 0x20, 0xae00}, {&(0x7f00000009c0)="03000000000000000000000000000000000000000000000000000000000000007aa25e07c9ff7a5118968b19a44ca8cae22d8a8ed694c8f4e5d0db3f54de47c4ef1d4d9350fd1be693e21c27aa2c716f59bcb083b965dd64e095c51f22e09efb7e922f56046098331eda3a", 0x6b, 0xae80}, {&(0x7f0000012a40)="0300"/32, 0x20, 0xaf00}, {&(0x7f0000000180)="0100"/32, 0x20, 0xaf80}, {&(0x7f0000012a80)="050000000000000001000000000000000200000000000000000000000000000006000000000000000100000000000000020000000000000000000000000000000700000000000000010000000000000002000000000000000000000000000000080000000000000001000000000000000200000000000000000000000000000009000000000000000100000000000000020000000000000000000000000000000a000000000000000100000000000000010000000000000000000000000000000b0000000000000001000000000000000100000000000000000000000000000017000000000000000200000000000000ffffffffffffffff000000000000000018000000000000000200000000000000ffffffffffffffff000000000000000019000000000000000200000000000000ffffffffffffffff00000000000000001a000000000000000200000000000000ffffffffffffffff00000000000000001b000000000000000200000000000000ffffffffffffffff00000000000000001c000000000000000200000000000000ffffffffffffffff00000000000000001d000000000000000200000000000000ffffffffffffffff000000000000000021000000000000000200000000000000ffffffffffffffff00000000000000001e000000000000000200000000000000ffffffffffffffff00000000000000001f000000000000000200000000000000ffffffffffffffff000000000000000012000000000000000200000000000000ffffffffffffffff000000000000000023000000000000000200000000000000ffffffffffffffff000000000000000024000000000000000200000000000000ffffffffffffffff000000000000000025000000000000000200000000000000ffffffffffffffff000000000000000026000000000000000200000000000000ffffffffffffffff000000000000000028000000000000000200000000000000ffffffffffffffff000000000000000029000000000000000200000000000000ffffffffffffffff0000000000000000", 0x300, 0xb020}, {&(0x7f0000001100)="22000000000000000200000000000000ffffffffffffffff0000000000000000", 0x20, 0xb400}, {&(0x7f00000008c0)="1100fbbadd20406de4fa000000004000ffffffffffffbfff0000001809000000081b73f5cc8e9450f0ddd1f236de8eb4df2e3f0dc75ce940ace21de4fba896e69afe317a0995c9c7a83a0a234fc5049ebb6c45dea2c8e6ae9a971541ef3e37ca824345d1e792fa7303113953cdc919552032064f406cc3928d6d5166d4eedaf4ea0ba003570be564bb1b19dc6eea04fbb8b6cc16f91906d6e6800b", 0x9b, 0xb800}, {&(0x7f0000012dc0)="13000000000000000200000000000000ffffffffffffffff000000000000000014000000000000000200000000000000ffffffffffffffff0000000000000000", 0x40, 0xbbfd}, {&(0x7f0000012e00)="5a83286cef02cd2211faaf1e400006000300000000000000781f1f63000000004000000000000000050000000100000078000000000000000200000000000000030000000000000000000000000000000300000002000000c200000000000000e20000000000000000000000000000000100"/128, 0x80, 0xc000}, {&(0x7f0000012e80)="15000000000000000200000000000000ffffffffffffffff000000000000000027000000000000000200000000000000ffffffffffffffff0000000000000000", 0x40, 0xc400}, {&(0x7f0000012ec0)="16000000000000000200000000000000ffffffffffffffff0000000000000000", 0x20, 0xc800}, {&(0x7f0000012ee0)="0001080000000000000000000000000000000000000000000100000000000000020000000000000022000000000000008200000000000000a200000000000000c200000000000000e200"/96, 0x60, 0xcc00}, {&(0x7f0000012f40)='\x00\x00\x00\x00\x00\x00\x00\x00*\x00\x00\x00\x00\x00\x00\x00+\x00\x00\x00\x00\x00\x00\x00,\x00\x00\x00\x00\x00\x00\x00-\x00\x00\x00\x00\x00\x00\x00.\x00\x00\x00\x00\x00\x00\x00/\x00\x00\x00\x00\x00\x00\x001\x00\x00\x00\x00\x00\x00\x002\x00'/96, 0x60, 0xce00}, {&(0x7f0000012fa0)="ed336a1f90010000781f1f63000000000f000000000000000000000000000000781f1f6300000000781f1f6300000000000000000000000000000000000000000080010000000000010201000000000000000000000000000d000000000000000e000000000000003300000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000781f1f6300000000781f1f630000000000000000000000000000000000000000008001000000000000000000000000001700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000781f1f6300000000781f1f630000000000000000000000000000000000000000008001000000000000000000000000001800"/352, 0x160, 0xd000}, {&(0x7f0000000040)='syzkallers\x00'/32, 0x20, 0xf4a0}, {&(0x7f0000011920)="000109000000000000000000000000000000000000000000010000ecffffff000200000000000000030000000000000004000000000000000500000000000000060000000000000007000000004000000800"/96, 0x60, 0x18400}, {&(0x7f00000007c0)="020000000000343418010000f498e168cdbf9e50000000003f00000000000000000010000000000004000000000000001000000005000000020000000000000030000000000000000300000000000000a003000000000000781f1f6300000000781f1f6300000000781f1f63000000000100320001000100781f1f6300000000004eed0000000000000000000b00000080002000c00010005745cea941714c61b9841bd4a64c433600"/192, 0xc0, 0xff000}], 0x0, &(0x7f0000001140)=ANY=[@ANYBLOB="001f4c0e96634721fa0641d80ae80934dd515774df6bd6e8ac83bb453caa956ceb4e72e49239bc83dd9c189e0f6332ce6042e5e5e84340678e533d81a4cb03a0ff84205a9dc6b04afdd36916c4937ffd20701a2227317c118ba2ef4acb0aaf4c2a3c9c7ad66dcc643e090000001f10b0fee5fb6016d5ad90f6a06b6df6880e34e1378a94af2a8fc7e0651a99ddb26db13fb8b8b63bf0e1ead9f07e9b56808ebf95684a2efab363308ad65e95e1fb6bd7bae280631961c3138da9b14ba50d3463a0a3c785d036363418e30b1677d20b2e73268e71ca11420e151c31f6afe2abcc4067ded509001dec1e5bf678e5e55d19495f9894e5d0d7dc592e66897ed2288f2a9e9b7b86d0e10e8a12d9d1fa9d66913f7c23541c6eef4233ccaecad125685b9b7892810d4a50ac7bd623f5c732a01f696ba259612e2d1e5e4b15c078f0604195a7ff786b9154f0a89fb66df6d73760de85cf07776a83608875e7558373d5f30000000000000058198bb377da9ec83cbc10c0c8f5da5d441a7b75171eced6eb8a3015aed8b7453c5a508f8178c340af33f4d0ff0355a15c4cd11237e272eaa73e2cdbc9a81dd23ecb2337bc5f2009f713830a39c6d1f64b7794ffb4a2edf27cb075e48317f7066e3bf6214d56dcd60c9f86133efc598f5f5b8208e8cae13bb09855f52bda911c45b5788cc006863699ad01c2513636b05d1695e5f0082b379dba535ef60dfa85861b39f8da826b40d19a24f8d000004b964046fefe094bd7867756e36349576f1d9e16ff5f867ad512cbd1de6db4000000000000bf66196922597c78baed7c9bae7bc26412bc9ee8da4c4b4f65781d0b9e8fa654e63dbdf3aed70989fc29403aca18f7ca68641a9e6f5f5f76404503ddba6a9b867fcd88ae9e995dc2d7a09a8488a8b2a6ac9e83ec3b79a94a64ff7ef0c5138eede328ca2a1b4eb81d0b285ddbcda0d917221200"/698], 0xff) truncate(&(0x7f0000000a80)='./file2\x00', 0x2) r1 = syz_open_dev$audion(&(0x7f0000000d00), 0xb90, 0x400000) recvmsg$can_j1939(r1, &(0x7f0000001980)={&(0x7f00000018c0)=@llc={0x1a, 0x0, 0x0, 0x0, 0x0, 0x0, @dev}, 0x80, &(0x7f0000001940)=[{&(0x7f0000000e00)=""/31, 0x1f}], 0x1, &(0x7f0000002c40)=""/4096, 0x1000}, 0x0) r2 = socket$can_j1939(0x1d, 0x2, 0x7) ioctl$ifreq_SIOCGIFINDEX_vcan(r2, 0x8933, &(0x7f0000000a00)={'vxcan1\x00', 0x0}) setsockopt$sock_int(r2, 0x1, 0x6, &(0x7f0000000000)=0x1, 0x4) bind$can_j1939(r2, &(0x7f0000000240)={0x1d, r3}, 0x18) sendmmsg(r2, &(0x7f0000002340)=[{{0x0, 0x0, 0x0}}, {{&(0x7f0000000100)=@can, 0x80, 0x0}}], 0x2, 0x0) r4 = accept$nfc_llcp(0xffffffffffffffff, &(0x7f0000001080), &(0x7f0000000780)=0x60) r5 = openat$cgroup_int(0xffffffffffffffff, &(0x7f0000000980)='memory.high\x00', 0x2, 0x0) clock_gettime(0x0, &(0x7f0000006c00)={0x0, 0x0}) recvmmsg(r2, &(0x7f0000006b00)=[{{&(0x7f00000019c0)=@isdn, 0x80, &(0x7f0000004c40)=[{&(0x7f0000001a40)=""/52, 0x34}, {&(0x7f0000001a80)=""/54, 0x36}, {&(0x7f0000001ac0)=""/105, 0x69}, {&(0x7f0000003c40)=""/4096, 0x1000}, {&(0x7f0000001b40)=""/76, 0x4c}], 0x5, &(0x7f0000004cc0)=""/92, 0x5c}, 0x6}, {{0x0, 0x0, &(0x7f0000005200)=[{&(0x7f0000004d40)=""/227, 0xe3}, {&(0x7f0000004e40)=""/59, 0x3b}, {&(0x7f0000004e80)=""/190, 0xbe}, {&(0x7f0000004f40)=""/127, 0x7f}, {&(0x7f0000004fc0)=""/255, 0xff}, {&(0x7f00000050c0)=""/219, 0xdb}, {&(0x7f00000051c0)=""/62, 0x3e}], 0x7}, 0x80000001}, {{&(0x7f0000005280)=@generic, 0x80, &(0x7f00000053c0)=[{&(0x7f0000005300)=""/155, 0x9b}], 0x1, &(0x7f0000005400)=""/32, 0x20}, 0x14a2}, {{&(0x7f0000005440)=@nl=@proc, 0x80, &(0x7f0000006980)=[{&(0x7f00000054c0)=""/224, 0xe0}, {&(0x7f00000055c0)=""/188, 0xbc}, {&(0x7f0000005680)=""/165, 0xa5}, {&(0x7f0000005740)=""/236, 0xec}, {&(0x7f0000005840)=""/198, 0xc6}, {&(0x7f0000005940)=""/4096, 0x1000}, {&(0x7f0000006940)=""/42, 0x2a}], 0x7, &(0x7f0000006a00)=""/243, 0xf3}, 0x4}], 0x4, 0x10000, &(0x7f0000006c40)={r6, r7+60000000}) r8 = socket(0x11, 0x800000003, 0x0) bind(r8, &(0x7f0000000080)=@generic={0x11, "0000010000000000080044944eeba71a4976e252922cb18f6e2e2aba000000012e0b3836005404b0e0301a4ce875f2e3ff5f163ee340b7679500800000000000000101013c5811039e15775027ecce66fd792bbf0e5bf5ff1b0816f3f6db1c00010000000000000049740000000000000006ad8e5ecc326d3a09ffc2c654"}, 0x80) getsockname$packet(r8, &(0x7f0000000100)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @dev}, &(0x7f0000000140)=0x2e) sendmmsg$unix(0xffffffffffffffff, &(0x7f0000000a40)=[{{&(0x7f0000000bc0)=@file={0x0, './file0\x00'}, 0x6e, &(0x7f00000001c0)=[{&(0x7f0000001c40)="6d40f90ccbf4812a28781140af479b9ebac7dcc6c6dcfcfb3a4e55fb8febe679c8f0367747c13ef61ce9ff43c3772eafea79c3a1c038b3dc142c869a08d95d534e0103624a1b93709582a2326adca181dabdd95f211417275bf3bc70f6060cc73c079a1350508d2af924708f437069b4afa98330e3da53cac5fa25f0d4587f48f9a43b974dcb3f8d57bdc7696ac1514ec8fc67647c3209ba4dc0abedeabc4a7518b4049d5ce20d3befdbbf78f5fc96dc3ed88d3e66c47966ace2a1a37aefba599558682903d1f939babfcc5305e6b6e5401e8aa6ec38e58f80393807401a942567a9b5f8aa2e50b4e7c71c2b7426248bd4ea89ead8d02c0308d20afca462fe5ea1f82d40a9492a1ee2acca190e431076785258e859453579ef99376a3a00c2560a93a442512c62e872fb0f9811e759f967f9122bf507d2fdbd89ac963a0d8012e6387bdd947d6fd673eaf942533e1e15e66791b3c33350208a58a778832331e2fc4ec2b26fe789a82b356d00e97696f5794a836026628245ba135e9b60dd7f475b14cff8a42c24c2f7c70ccf59d49810ee02cb661624e1a12eceebe2fd9744ad568199e843472b86ad0f3646c1b34196af77e68505164a91746033af236242204ef7fe4b9eb083691ab6d87505b8aa273d7f76753c80d9db27e48901e7951ab7d4940f52601fe8ddc15be017ec0e99a47c492e2d032b0100b3c9363afb3ba5632e408f4d8010f1ec362bac3836ef12f0b565783da524bc0b3529892d885e91a13b4b4966e2ded72890f9a2dcbdbfcd7979b5f3818242f02eeceed8d7b711a2c05e7a95e97fe45824051ab240af3bee2710979b686be4e96e08485c20b8628a8c55e0745da7455d79989b9857c01ec2ecaad914898e6be3c4f78130fcebcff05ee6b0c2cb2165599e2eba5622138f8d6ac01fb69030580839ef7e6215a8b728e712f1641681aa957723d00155be9f181f6a2fe1bafc5b6f87796a802d4dcd7a7d9d4a8a37d5924144b6e5f0771f8c16f1cad127e226f17b486440a7adce8501a3cc7917c3407c0d3098ef4ef3c239e4e3b43bf98b856ada359d6c48cbd43784b15980e68b0f1167f1db73412c379117e33cbc7ef511f9769dcfd7cf2628f049a7481d8f7b0e9f5d76cb017c8e133e43d2c0c5f2369fc86d5761c900e2f652e535232eae9dafd2f7d8f6081a4cfddb9d77abe7646ebaabe761f6101657a3ae99901f3ed745b29502cc1ad2616a63c9d902deaec8cda2ddbe4d12d005d2578274cd804e1c65b5f05455bf061942e345c95758f8dcb7d2f4631628da51912f93a174a33cfc4a0da02e7c23e8c1b554c7cc0f4ea4a52849d2ca1fcfcb498478f082156d2de150a286049bbce76a69a3e4c3f4c721aab19958d7fc57158050549fd3720699cacc0e4bb47210710f00826695efa597df2de8211d3bff83d14b8a07e63a654d233dd3b0f08845d3b3097e15cd33284006eba15aa2db520f22658e79b266da3b081ca695629153a84dd5ded3178627be93ccfce77a855b540364242ef51766cf18525688a52fb242e0edf190f7617e525cb2c8b1d3aba12c431587a23fccb73b35e57eab981d8ca3494d47b59e4ef5987b7d696ea137f5a300e9c9f56a144e2815abab79054f46b4acc39225fced8273d09ea8a61e414497ddd154850628d1eee25b9c2b186831da1b01cd1ebab20b3ea4682ff70e36c47f097918df5422efc3024c6da74b63ba672209a33bdc2dee82b670bc854afb1cede355389343a9a58aeccc16f2f705b6ad3793dfe2099492bc29fa241784a3f17286b8b8aa4ea8e10aae61d77d98410b01d890eaa227516a4608209942376af2c50001d7f9936b7db377db7ee39f59c1428642f1a56b7d38021d2e0e21ddc7d1fa551c5adf76e4ff3e82d44809181374a948c69e0812a953605a9dbd30be429cfb0db524754151e265dd6cc330a2af1ee3587aa79e867b88353047def54967f55cc9713d905de66c85148a1dc7e56c39723214270cc72ada405eb57319d167194797a316775a1f1c30107f70a07e144a5ee4dbadf1fdb110365c9c06838c0f784832beaf66aedaf0e38457fe31c4280926ea6d42f1e232d1b890a42a2cf45e33c03a7a8c18085d7b0ae86b6010da0902362fc79a02ea9ba28142bfc07a081fe0083f66278156acd18e07379a5294a88cb227db8084b99c4d8632f833a19d680c548651806db7957e4c97aaa69dddf4515d2ea3e59aee5a8c2864103455dff66e4193dbe1c518711602cf2b7ac394ed38e0fbd883f0cf1c7cdf6b6af66545189646f4d2cd844377f7779d2e4eadb803154f058ccaf1a96a92e9517fc7660bf4be4049e7f35a0560b69052d7dc41869c104331a844551684a500521072984d40c13cd757431d242df9f293b43d184883aafa3488330dd9d97179e2d930444b20418d736b7eecbeb4ec451bdb489ea119b2c19579744db5a4726b60eec6a068bacc0a0fb362ad06305be6643c1e307b3b12df83cc9f88068ad04ba991117f521ea1e008834da02bbc8984dcdeead9e23afafb090c85e23362eb76f7362fa8895927962c40bad4a7a95f4fd39f9f7f0558cf2f5e298c5d9aa61835bc532ff099fae135b26737284493e579f57b032b5b96a4a5d573bdea5aaa2d40fcf343fe678560be99b383d198b0262a4043e88fa751196fd6df75f5d6adbe009836708517abc91650dc865e5d271d09c5cf6266bfcc3744823a8d5ed73d63d4bf61f9ba085896665f8b87bb3916c328d49a198aabc1ea0903756055c7788e549050e5fb5ae47fb8af59fe755fbc3e4fe6a60ad3f3690499081b0a046847ea1d8df9d0910696757c33d309d134222a86f57db5ab0da22dff1e37c029d8e071ba9cd755ef979483aa839a43faa823bbe1cb19328f949c7d85bcb5754a523bf2e621e26177e95b832cbab87333bc23456fcdf567f3d1927f12036f319c077862f0f4fdcb94dd38190aa9ea4295ba15b100a01d640afa9c3110fc4c6a21c4e7142738b6f50b4b3c9ee30cfcf413972b3935789746d7a7f337879a19383d6ee636592274e486f7b3a59fc1564c2d8a55f955ab3ed44e796908f8b9367774b9ea4f811af925425c2d0eca1f6400a5d0ee3f33ff3a248da84039923ee27b57d7b5f52f93ca005ea34108dedcd1faa3cdbff02b82defe9eff703484447a4ba7dff1a58fcead0c15c8b2aa4d81fc750f651fd73df56a3b572e16d9a62478282056da237c97681503eccedf05566154e457d1d2056fd9ef9e73418eb832b6a71dd31a9d9ebbfc5e7eb0d52af1f03aa233fe3e810dc16a8103909c1d18a62e0629d82f8fa55e9395d0ae9d9c8ec5651c37cd625fc62c132d47cff0189dd64973481f8b615a92b19cb6299b7c399449ed95dd4e6bf005238fd8464537a7ef91df287582a1306ba740cf30ce8963c854eddfe6cd3509f9c2f3eadec7e204c94eb3e6d3a28ab6a9db2e6e495a9ebb60f15ebc089e6345fc1d2580d800d2e33ddd4f5a4ffe2e3c2643388b1208ffd245c1b31407fee036727b59a7b0bdb1debe51c6d1518bbf8862f364164ac8868560cad8a8cefcfb6a5f3013cbe2fff62d880e5a4c4dc9f3979eee2443afc57c3931ac3462371902f816b0f2c1c5d6d8e27ab6b61c5ce526635554d44983f3f93e11302b07d9116a8344c5cf51e7b46f320cfb3f0b7ae95c0e0792fc879a051851ebafff3a4c02b68523143fa273db9dbbc6868ff4183e1dfc9d8202c5dc539a9c371a431c6cdb6c2c74c5413153a62139ef09933fd1d0348dd3679a7934c971f26063c59b4bbaf26f25d39b1162afe18dd2f9f0f45849be2907c556d123f8d18cee0be36efc84a32bd30de6290b7a6b9a08ca1222a31cc59bfbf12970bc77e4dee032f0e6868833a6d46c1ae07f4a9099eb7dfe22fa3d5802ab5702515b565c72350a7e50274be16bc63742de7f52c040bbd83f91921e7e1563847370f9f1ca169188b32b3b8cfcf3d1c37bcd84e857bb1bad030c172c4995c3170f9603cdb5b4b3755a84db4c11a94153f3d3b9b8773eb85dd80af87ea1383051db98039201f12e820ba52a5226517843e92a9e73ab3cca14d056156f7e4ded39172b7152e0f31c1b6ae6c6eb438cd58d2176076a0bcd52de37163709792829d243f2077d971273923c927e52def5f8546a2a1552e21720668c9dcbdb605102bba44aafff3ea7f2ef31bd57b810eb3c340c26c13b95a8d5625402f95ddf36dd70c40fc488b4ffe3f560f0700f0dcabe8bc970b5f41ed470bf5a666928b99e4e143c4baf09ae58eed95ce5f0304751c59e41e1183d5a26c0e9f152f3b1018a46f5a68b391e0d21311a94472ff5637a3388054b71cbd508f4e0e3032969c923360a4f8ed584bb9c7dcfc20a0af763bb111cbebf53b4ab74057947ab0f9ad5749ca6693d9c403ed8099005a607f3e80169431dbe98fabf89ff89cf586e1deac53f9d8799ef1aaddde9ff760770176795fee0fadc0249345baad337c7cced4e99e1aad7a46901a91dfd7ee61128a18cbeeef8242ba677b0a40db39eb77bda60e688f4db042f2da3cec720a0d8a081618365425e17254cba042d82e449fc74b4ae6d3ff9e8795bd8ccc3197ec1dd668a53fb1fa218b6e5c1a408773431c0a59de0315904fe3927e67f37355ba6215c97df72ea259ffb90968152decdb52fae594e161b6f64d9eaca4932a357eed796ddd5982c1eb206a4b915ec443c3864f4915e6c5cf8c2c255aab63ae5c7698c5c109d9051eaced8661ea7197cf1bc4862fa0e12136e1915b027e17f84ca6ef6f1059bacdf84e9905d80f9b0482298c485094c86dcb416af62115112b3b50ae56b10bb88bb6b0c8147d6c88bec0b8e34b9ad2aac0d76fda9b8fde7d104571214de9690edd47e915de13f617ad689df8fcad9bc0fca9128bda868df261858c809a22bd929711f7a78db6a6ee29876b5481ecf4fbc7d6ecf690640d7209868aa354000893b8eb6005385282aabfb30b6ca578eb3253e11a9964ef735364509b3839e9b95359c8319501b3e07e5c4d2278182ad9a9a1634d59e39378970849c256d40999683224231a06e92a0ab87a6504bb6ccba455c3be33abaa49c0b4c34ad4771bf50e936ccaeb7e12a1a76954b309245fb5fb2cc9c99d787be0c807662e2ed90b4c0ad54f4865770d6e7ca70d7bd20f87b4c90536abd079d7eb1144590518e28ff3cd48c2725e1846b0531f5b7de74ae8e47c6d74941903ce353984df716869875be476bcdcab1552c036118b067ade952333656121ad19bb949f2807c90d378cc42002c8829227d326769f570c6e6f3676a77b00a0f9525b8536d599fe6cdb0b4cd2fb75970199d62eaab575f359783d9e23413332001fca226a8910c595757157dac4969b82046f205e8d5fc848de484238a11a0b346f4e90627869d72a8e30612dcf92d5a22593e650b55ce999921ee07d57d0bbc8c783a55b92a4884b6d609c8d9e775f2c9fc5ead14407ef452e452f1a9ee3406d59e60614fd13b6d8c29256d4ad86b972a6e0811eb4e2c919046dfcadc1db8cd7021b9098b215eaf54fdcd1478af057062c0b36af6517df4461f866c99cd4fea7b8b3ba6eaf85f443a844c1e98b1a622a7aee4fdd08a0a407981a687d2b684e37ad836ab872b86a759b384ff12bb3fa2775295699215184115dcc4521eb442388c34ce441b1eff5532f7aff026e2bc8c566bee434078e7d3a07adb60dba6b40329168533ef036973132e13c6b7b2a49001415e1dfc32709b23301324473e7127618826181d419d0626b8", 0x1000}, {&(0x7f0000000c40)="a98b198eb162cc9e9d3ce5917832c38f4bc9966062305efd74ff03d999ab2a968c7e5e41b5a3e551e9e013db458a2f06eb910b40c13195f21df30293ed7a888d2c07842214a5462622f9bdef39c4bf837ead0ad161f77995877399d12add63ed1e4e583c03c164903271aa6521b81371b4933f2b065dbfb62afec566066f70a2667b06cca5a6b13b3628f18a36e4feeb354a7da9", 0x94}], 0x2, &(0x7f0000001840)=ANY=[@ANYBLOB="2400000000000000010000fdd53a2100", @ANYRES32=r2, @ANYRES32=r4, @ANYRES32=r0, @ANYRES32=r5, @ANYRES32=r8, @ANYBLOB="0000000020000000000000000100000001000000", @ANYRES32=r0, @ANYRES32=r0, @ANYRES32=r0, @ANYRES32=r0], 0x48, 0x20000004}}], 0x1, 0x0) [ 384.839429][T21754] loop2: detected capacity change from 0 to 2048 [ 384.847195][ T6681] I/O error, dev loop2, sector 0 op 0x0:(READ) flags 0x80700 phys_seg 1 prio class 2 00:06:24 executing program 4: r0 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route(r0, &(0x7f0000000200)={0x0, 0x0, &(0x7f00000000c0)={0x0}}, 0x0) 00:06:24 executing program 3: socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route(0xffffffffffffffff, &(0x7f00000000c0)={0x0, 0x0, &(0x7f0000000080)={&(0x7f0000000040)=@ipv6_newroute={0x38, 0x18, 0x1, 0x0, 0x0, {}, [@RTA_GATEWAY={0x14, 0x5, @loopback}, @RTA_OIF={0x8}]}, 0x38}}, 0x0) [ 384.856319][ T6681] I/O error, dev loop2, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2 [ 384.868581][ T6681] Buffer I/O error on dev loop2, logical block 0, async page read [ 384.881020][T21744] virt_wifi0: mtu less than device minimum 00:06:24 executing program 1: r0 = syz_mount_image$hfs(&(0x7f0000000280), &(0x7f0000000440)='./bus\x00', 0x8100000, 0x0, &(0x7f0000000000), 0x4, &(0x7f00000009c0)={[], [{@smackfshat={'smackfshat', 0x3d, ',,,'}}]}, 0x1) ioctl$AUTOFS_DEV_IOCTL_EXPIRE(0xffffffffffffffff, 0xc018937c, &(0x7f0000000040)={{0x1, 0x1, 0x18, r0, {0x4}}, './bus\x00'}) (async) semctl$IPC_RMID(0xffffffffffffffff, 0x0, 0x0) r1 = socket(0x11, 0x800000003, 0x0) bind(r1, &(0x7f0000000080)=@generic={0x11, "0000010000000000080044944eeba71a4976e252922cb18f6e2e2aba000000012e0b3836005404b0e0301a4ce875f2e3ff5f163ee340b7679500800000000000000101013c5811039e15775027ecce66fd792bbf0e5bf5ff1b0816f3f6db1c00010000000000000049740000000000000006ad8e5ecc326d3a09ffc2c654"}, 0x80) (async) getsockname$packet(r1, &(0x7f0000000100)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @dev}, &(0x7f0000000140)=0x2e) ioctl$SIOCSIFMTU(r1, 0x8922, &(0x7f0000000000)={'virt_wifi0\x00', 0x8}) [ 384.904452][T21760] NILFS (loop2): segctord starting. Construction interval = 5 seconds, CP frequency < 30 seconds 00:06:24 executing program 4: r0 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route(r0, &(0x7f0000000200)={0x0, 0x0, &(0x7f00000000c0)={0x0}}, 0x0) [ 384.921508][T21754] NILFS (loop2): bad btree node (ino=16, blocknr=15): level = 0, flags = 0x0, nchildren = 0 [ 384.923778][T21754] NILFS error (device loop2): nilfs_bmap_lookup_contig: broken bmap (inode number=16) 00:06:24 executing program 5: r0 = socket$inet_tcp(0x2, 0x1, 0x0) bind$inet(r0, &(0x7f0000000000)={0x2, 0x4e20, @multicast2}, 0x10) setsockopt$sock_int(r0, 0x1, 0x3c, &(0x7f0000000340)=0x1, 0x4) connect$inet(r0, &(0x7f0000000200)={0x2, 0x4e20, @loopback}, 0x10) r1 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f00000001c0)='memory.current\x00', 0x275a, 0x0) write$binfmt_script(r1, &(0x7f0000000000)=ANY=[], 0x208e24b) mmap(&(0x7f0000000000/0xb36000)=nil, 0xb36000, 0x2, 0x28011, r1, 0x0) sendmmsg$inet(r0, &(0x7f00000012c0)=[{{0x0, 0x4002, &(0x7f0000000600)=[{&(0x7f00000000c0)='o', 0x1}], 0x1, 0x0, 0x0, 0xf}, 0x34}, {{0x0, 0x0, &(0x7f0000001b80)=[{&(0x7f0000000740), 0x40020000}], 0x1, 0x0, 0x0, 0xf2ffffff}}], 0x2, 0x60c5840) 00:06:24 executing program 3: r0 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route(r0, 0x0, 0x0) [ 384.937329][T21764] loop1: detected capacity change from 0 to 264192 [ 384.939260][T21754] [ 384.939808][T21754] ====================================================== [ 384.941346][T21754] WARNING: possible circular locking dependency detected [ 384.942832][T21754] 6.0.0-rc7-syzkaller-18095-gbbed346d5a96 #0 Not tainted [ 384.944320][T21754] ------------------------------------------------------ [ 384.945864][T21754] syz-executor.2/21754 is trying to acquire lock: 00:06:24 executing program 0: r0 = socket$inet_tcp(0x2, 0x1, 0x0) bind$inet(r0, &(0x7f0000000000)={0x2, 0x4e20, @multicast2}, 0x10) setsockopt$sock_int(r0, 0x1, 0x3c, &(0x7f0000000340)=0x1, 0x4) connect$inet(r0, &(0x7f0000000200)={0x2, 0x4e20, @loopback}, 0x10) r1 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f00000001c0)='memory.current\x00', 0x275a, 0x0) write$binfmt_script(r1, &(0x7f0000000000)=ANY=[], 0x208e24b) mmap(&(0x7f0000000000/0xb36000)=nil, 0xb36000, 0x2, 0x28011, r1, 0x0) sendmmsg$inet(r0, &(0x7f00000012c0)=[{{0x0, 0x4002, &(0x7f0000000600)=[{&(0x7f00000000c0)='o', 0x1}], 0x1, 0x0, 0x0, 0xf}, 0x34}, {{0x0, 0x0, &(0x7f0000001b80)=[{&(0x7f0000000740), 0x40020000}], 0x1}, 0x2}], 0x2, 0x60c5840) [ 384.947276][T21754] ffff000102a18090 (&nilfs->ns_sem){++++}-{3:3}, at: __nilfs_error+0xb4/0x284 [ 384.949465][T21754] [ 384.949465][T21754] but task is already holding lock: [ 384.951015][T21754] ffff0001276de870 (&dat_lock_key){.+.+}-{3:3}, at: nilfs_get_block+0x64/0x364 [ 384.953160][T21754] [ 384.953160][T21754] which lock already depends on the new lock. [ 384.953160][T21754] [ 384.955553][T21754] [ 384.955553][T21754] the existing dependency chain (in reverse order) is: [ 384.957690][T21754] [ 384.957690][T21754] -> #1 (&dat_lock_key){.+.+}-{3:3}: [ 384.959453][T21754] down_read+0x5c/0x78 [ 384.960582][T21754] nilfs_count_free_blocks+0x2c/0x6c [ 384.961855][T21754] nilfs_sync_fs+0x1a8/0x354 [ 384.963031][T21754] sync_filesystem+0x68/0x134 [ 384.964337][T21754] generic_shutdown_super+0x38/0x190 [ 384.965699][T21754] kill_block_super+0x30/0x78 [ 384.966894][T21754] deactivate_locked_super+0x70/0xe8 [ 384.968358][T21754] deactivate_super+0xd0/0xd4 [ 384.969596][T21754] cleanup_mnt+0x1f8/0x234 [ 384.970789][T21754] __cleanup_mnt+0x20/0x30 [ 384.971888][T21754] task_work_run+0xc4/0x14c [ 384.973093][T21754] do_notify_resume+0x174/0x1f0 [ 384.974329][T21754] el0_svc+0x9c/0x150 [ 384.975420][T21754] el0t_64_sync_handler+0x84/0xf0 [ 384.976756][T21754] el0t_64_sync+0x18c/0x190 [ 384.977977][T21754] [ 384.977977][T21754] -> #0 (&nilfs->ns_sem){++++}-{3:3}: [ 384.979749][T21754] __lock_acquire+0x1530/0x30a4 [ 384.981008][T21754] lock_acquire+0x100/0x1f8 [ 384.982155][T21754] down_write+0x5c/0xcc [ 384.983194][T21754] __nilfs_error+0xb4/0x284 [ 384.984297][T21754] nilfs_bmap_lookup_contig+0x98/0xc0 [ 384.985653][T21754] nilfs_get_block+0x7c/0x364 [ 384.986853][T21754] block_truncate_page+0x1b4/0xab4 [ 384.988249][T21754] nilfs_truncate+0xb8/0x178 [ 384.989529][T21754] nilfs_setattr+0xf8/0x164 [ 384.990772][T21754] notify_change+0x758/0x7f0 [ 384.991948][T21754] do_truncate+0x108/0x150 [ 384.993127][T21754] vfs_truncate+0x1dc/0x24c [ 384.994271][T21754] do_sys_truncate+0x94/0x140 [ 384.995480][T21754] __arm64_sys_truncate+0x20/0x30 [ 384.996825][T21754] el0_svc_common+0x138/0x220 [ 384.998024][T21754] do_el0_svc+0x48/0x164 [ 384.999088][T21754] el0_svc+0x58/0x150 [ 385.000168][T21754] el0t_64_sync_handler+0x84/0xf0 [ 385.001467][T21754] el0t_64_sync+0x18c/0x190 [ 385.002566][T21754] [ 385.002566][T21754] other info that might help us debug this: [ 385.002566][T21754] [ 385.004963][T21754] Possible unsafe locking scenario: [ 385.004963][T21754] [ 385.006684][T21754] CPU0 CPU1 [ 385.007956][T21754] ---- ---- [ 385.009161][T21754] lock(&dat_lock_key); [ 385.010173][T21754] lock(&nilfs->ns_sem); [ 385.011697][T21754] lock(&dat_lock_key); [ 385.013246][T21754] lock(&nilfs->ns_sem); [ 385.014241][T21754] [ 385.014241][T21754] *** DEADLOCK *** [ 385.014241][T21754] [ 385.016035][T21754] 5 locks held by syz-executor.2/21754: [ 385.017286][T21754] #0: ffff000103063460 (sb_writers#18){.+.+}-{0:0}, at: mnt_want_write+0x20/0x64 [ 385.019037][T21754] #1: ffff000113a6c9e8 (&sb->s_type->i_mutex_key#20){+.+.}-{3:3}, at: do_truncate+0xf4/0x150 [ 385.021508][T21754] #2: ffff000103063650 (sb_internal#3){.+.+}-{0:0}, at: nilfs_setattr+0x84/0x164 [ 385.023698][T21754] #3: ffff000102a182a0 (&nilfs->ns_segctor_sem){++++}-{3:3}, at: nilfs_transaction_begin+0x214/0x384 [ 385.026229][T21754] #4: ffff0001276de870 (&dat_lock_key){.+.+}-{3:3}, at: nilfs_get_block+0x64/0x364 [ 385.028404][T21754] [ 385.028404][T21754] stack backtrace: [ 385.029855][T21754] CPU: 0 PID: 21754 Comm: syz-executor.2 Not tainted 6.0.0-rc7-syzkaller-18095-gbbed346d5a96 #0 [ 385.032230][T21754] Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 09/30/2022 [ 385.034444][T21754] Call trace: [ 385.035163][T21754] dump_backtrace+0x1c4/0x1f0 [ 385.036241][T21754] show_stack+0x2c/0x54 [ 385.037149][T21754] dump_stack_lvl+0x104/0x16c [ 385.038245][T21754] dump_stack+0x1c/0x58 [ 385.039214][T21754] print_circular_bug+0x2c4/0x2c8 [ 385.040380][T21754] check_noncircular+0x14c/0x154 [ 385.041550][T21754] __lock_acquire+0x1530/0x30a4 [ 385.042666][T21754] lock_acquire+0x100/0x1f8 [ 385.043767][T21754] down_write+0x5c/0xcc [ 385.044693][T21754] __nilfs_error+0xb4/0x284 [ 385.045644][T21754] nilfs_bmap_lookup_contig+0x98/0xc0 [ 385.046874][T21754] nilfs_get_block+0x7c/0x364 [ 385.047960][T21754] block_truncate_page+0x1b4/0xab4 [ 385.049315][T21754] nilfs_truncate+0xb8/0x178 [ 385.050323][T21754] nilfs_setattr+0xf8/0x164 [ 385.051286][T21754] notify_change+0x758/0x7f0 [ 385.052351][T21754] do_truncate+0x108/0x150 [ 385.053358][T21754] vfs_truncate+0x1dc/0x24c [ 385.054404][T21754] do_sys_truncate+0x94/0x140 [ 385.055519][T21754] __arm64_sys_truncate+0x20/0x30 [ 385.056671][T21754] el0_svc_common+0x138/0x220 [ 385.057747][T21754] do_el0_svc+0x48/0x164 [ 385.058776][T21754] el0_svc+0x58/0x150 [ 385.059641][T21754] el0t_64_sync_handler+0x84/0xf0 [ 385.060803][T21754] el0t_64_sync+0x18c/0x190 00:06:24 executing program 3: r0 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route(r0, 0x0, 0x0) 00:06:24 executing program 3: r0 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route(r0, 0x0, 0x0) 00:06:25 executing program 3: r0 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route(r0, &(0x7f00000000c0)={0x0, 0x0, 0x0}, 0x0) 00:06:25 executing program 5: r0 = socket$inet_tcp(0x2, 0x1, 0x0) bind$inet(r0, &(0x7f0000000000)={0x2, 0x4e20, @multicast2}, 0x10) setsockopt$sock_int(r0, 0x1, 0x3c, &(0x7f0000000340)=0x1, 0x4) connect$inet(r0, &(0x7f0000000200)={0x2, 0x4e20, @loopback}, 0x10) r1 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f00000001c0)='memory.current\x00', 0x275a, 0x0) write$binfmt_script(r1, &(0x7f0000000000)=ANY=[], 0x208e24b) mmap(&(0x7f0000000000/0xb36000)=nil, 0xb36000, 0x2, 0x28011, r1, 0x0) sendmmsg$inet(r0, &(0x7f00000012c0)=[{{0x0, 0x4002, &(0x7f0000000600)=[{&(0x7f00000000c0)='o', 0x1}], 0x1, 0x0, 0x0, 0xf}, 0x34}, {{0x0, 0x0, &(0x7f0000001b80)=[{&(0x7f0000000740), 0x40020000}], 0x1, 0x0, 0x0, 0xf4010000}}], 0x2, 0x60c5840) [ 385.080585][T21764] hfs: can't find a HFS filesystem on dev loop1 [ 385.082566][T21764] virt_wifi0: mtu less than device minimum [ 385.138483][T21754] Remounting filesystem read-only [ 385.139813][T21754] NILFS (loop2): bad btree node (ino=16, blocknr=15): level = 0, flags = 0x0, nchildren = 0 [ 385.141985][T21754] NILFS error (device loop2): nilfs_bmap_last_key: broken bmap (inode number=16) [ 385.144037][T21754] NILFS (loop2): error -5 truncating bmap (ino=16) 00:06:25 executing program 4: r0 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route(r0, &(0x7f0000000200)={0x0, 0x0, &(0x7f00000000c0)={0x0}}, 0x0) 00:06:25 executing program 3: r0 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route(r0, &(0x7f00000000c0)={0x0, 0x0, 0x0}, 0x0) 00:06:25 executing program 1: r0 = syz_mount_image$hfs(&(0x7f0000000280), &(0x7f0000000440)='./bus\x00', 0x8100000, 0x0, &(0x7f0000000000), 0x4, &(0x7f00000009c0)={[], [{@smackfshat={'smackfshat', 0x3d, ',,,'}}]}, 0x1) ioctl$AUTOFS_DEV_IOCTL_EXPIRE(0xffffffffffffffff, 0xc018937c, &(0x7f0000000040)={{0x1, 0x1, 0x18, r0, {0x4}}, './bus\x00'}) (async, rerun: 64) semctl$IPC_RMID(0xffffffffffffffff, 0x0, 0x0) (rerun: 64) r1 = socket(0x11, 0x800000003, 0x0) bind(r1, &(0x7f0000000080)=@generic={0x11, "0000010000000000080044944eeba71a4976e252922cb18f6e2e2aba000000012e0b3836005404b0e0301a4ce875f2e3ff5f163ee340b7679500800000000000000101013c5811039e15775027ecce66fd792bbf0e5bf5ff1b0816f3f6db1c00010000000000000049740000000000000006ad8e5ecc326d3a09ffc2c654"}, 0x80) getsockname$packet(r1, &(0x7f0000000100)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @dev}, &(0x7f0000000140)=0x2e) (async) ioctl$SIOCSIFMTU(r1, 0x8922, &(0x7f0000000000)={'virt_wifi0\x00', 0x8}) 00:06:25 executing program 0: r0 = socket$inet_tcp(0x2, 0x1, 0x0) bind$inet(r0, &(0x7f0000000000)={0x2, 0x4e20, @multicast2}, 0x10) setsockopt$sock_int(r0, 0x1, 0x3c, &(0x7f0000000340)=0x1, 0x4) connect$inet(r0, &(0x7f0000000200)={0x2, 0x4e20, @loopback}, 0x10) r1 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f00000001c0)='memory.current\x00', 0x275a, 0x0) write$binfmt_script(r1, &(0x7f0000000000)=ANY=[], 0x208e24b) mmap(&(0x7f0000000000/0xb36000)=nil, 0xb36000, 0x2, 0x28011, r1, 0x0) sendmmsg$inet(r0, &(0x7f00000012c0)=[{{0x0, 0x4002, &(0x7f0000000600)=[{&(0x7f00000000c0)='o', 0x1}], 0x1, 0x0, 0x0, 0xf}, 0x34}, {{0x0, 0x0, &(0x7f0000001b80)=[{&(0x7f0000000740), 0x40020000}], 0x1}, 0x3}], 0x2, 0x60c5840) 00:06:25 executing program 2: r0 = syz_mount_image$nilfs2(&(0x7f00000000c0), &(0x7f0000000100)='./file0\x00', 0x100000, 0x39, &(0x7f0000000200)=[{&(0x7f00000106a0)="01000000000000000004000000000000781f1f6300000000781f1f630000000000000000000000000000000000000000ed4102000000000000000000000000000100"/96, 0x60, 0x6}, {&(0x7f0000000d40)="020000000000343418010000f498e16897043d98000000003f00000000000000000010000000000004000000000000001000000005000000010000000000000004000000000000000000000000000000e003000000000000781f1f6300000000781f1f6300000000781f1f63000000000100320000000100781f1f6300000000004eed0000000000000000000b00000080002000c00010005745cea941714c61b9841bd4a64c433600"/192, 0xc0, 0x400}, {&(0x7f0000010200)="0200000000000000100001022e0000000200000000000000100002022e2e00000b00000000000000e00306012e6e696c667300"/64, 0x40, 0x1400}, {&(0x7f0000010240)="f41f0000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000ff0f00"/1056, 0x420, 0x17ff}, {&(0x7f0000010660)="00000000000000000000000000000000781f1f6300000000781f1f63000000000000000000000000000000000000000000800100"/64, 0x40, 0x2080}, {&(0x7f0000010700)="00000000000000000000000000000000781f1f6300000000781f1f63000000000000000000000000000000000000000000800100"/64, 0x40, 0x2380}, {&(0x7f0000010740)="00000000000000000000000000000000781f1f6300000000781f1f63000000000000000000000000000000000000000000800100"/64, 0x40, 0x2400}, {&(0x7f0000010780)="00000000000000000000000000000000781f1f6300000000781f1f63000000000000000000000000000000000000000000800100"/64, 0x40, 0x2480}, {&(0x7f00000107c0)="00000000000000000000000000000000781f1f6300000000781f1f63000000000000000000000000000000000000000000800100"/64, 0x40, 0x2500}, {&(0x7f0000010800)="00000000000000000000000000000000781f1f6300000000781f1f630000000000000000000000000000000000000000a4810100"/64, 0x40, 0x2580}, {&(0x7f0000010840)="0100"/32, 0x20, 0x2800}, {&(0x7f0000010860)="0000000000000000000000000000000000000000000000000100000000000000781f1f63000000000c000000000000000200000000000000050000000000000004000000000000000000000000000000781f1f6300000000781f1f63000000000000000000000000000000000000000000800100000000000000000000000000020000000000000003000000000000000400000000000000050000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000200000000000000", 0xe0, 0x28c0}, {&(0x7f0000010940)="0200000000000000000000000000000000000000000000000300000000000000", 0x20, 0x2a40}, {&(0x7f0000000000)="0200000000000000000000000000000000000000000000000400000000000000", 0x20, 0x2b00}, {&(0x7f0000010980)="3d0000000000000002000000000000003e000000000000000000000000000000781f1f63000000000c0000000300000000000000000000000000000003000000", 0x40, 0x2c00}, {&(0x7f0000001400)="f81f0000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000f9ff1f000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000035e808d929438700200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000ff000000000000000000000000000000000000000000fe6a031411ee63220000", 0x427, 0x3001}, {&(0x7f0000000ac0)="05000000000000000100000000000000ffffffffffffffff000000000000000006000000000000000100000000000000fffffffffffbffff000000000000000007000000000000000100000000000000ffffffffffffffff00000000000009000000000000000000010000000000003371f225fab0620b98706919e1da00ffffffffffffffff000000000000000009000000000000000100000000000000ffffffffffffffff00000000000000000a000000000000000100000000000000ffffffffffffffff00000000000000000b000000000000000100000000000000ffffffffffffffff0000000000000000", 0xee, 0x3820}, {&(0x7f0000010ec0)="d102c1e890010000781f1f630000000003000000000000000000000000000000781f1f6300000000781f1f630000000000000000000000000000000000000000008001000000000000000000000000000c000000000000000d000000000000000e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000781f1f6300000000781f1f630000000000000000000000000000000000000000008001000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000781f1f6300000000781f1f630000000000000000000000000000000000000000008001000000000000000000000000000700"/352, 0x160, 0x3c00}, {&(0x7f0000011020)="652d8fe95cab1d6a11faaf1e400001000100000000000000781f1f630000000020000000000000001000000006000000c00100000000000002000000000000000c000000000000000200000000000000010000000100000000100000000000000000000000000000020000000000000002000000000000000100000001000000120000000000000000000000000000000d000000000000000200000000000000020000000200000000140000000000000000000000000000011400000000000001000000000000000e0000000000000002000000000000000100000001000000001800000000000000000000000000000f0000000000000002000000000000000100000001000000001c000000000000000000000000000010000000000000000200000000000000090000000900000008000000000000000000000000000000090000000000000001000000000000000a0000000000000002000000000000000b0000000000000003000000000000000c0000000000000004000000000000000d0000000000000005000000000000000e0000000000000006000000000000001000000000000000070000000000000011000000000000000800000000000000", 0x1c0, 0x4000}, {&(0x7f00000111e0)="0c00000000000000100001022e0000000200000000000000100002022e2e00000d000000000000001800050166696c6530000000000016000e00000000000000c803050766696c653100"/96, 0x60, 0x4400}, {&(0x7f0000000e40)="0200000000000000100001022e0000000200000000000000100002022e2e00000b00040000000000180006012e6e696c66730000000000000c000000000000001800050266696c6530000000000000000f000000000000001800050166696c65310000000000000010000000000000001800050166696c65320000000000000010000000000000001800050166696c65330000000000000011000000000000006803090166696c652e636f6c64000000000000000000000000000000000000005d93d9db5530385f0783baa04c1f12e30fd570c45fdcc74dd80bee7b9763226b11a6188ab159c9e4798a7e611fb624e9ba470700c4dfd63d5fe2ceff679c8ca5d83d492d7f03c4d0ce83f574f55c402cb2791e7df02ca234f511813cd8af73dae62c22997171926b8bafd7013d77c8aaaaa63fbd385bd13eea3c5558bed24494b99ed957d721d50f6212d6cb487766dded0b732accafb1f82f98b36976e717260996b286e570d4306d100b76e6b6a3517f8bb3190e879582590730adec6106968058b9e2c503d92b", 0x188, 0x4800}, {&(0x7f0000011300)='syzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkal\x00\x00\x00\x00\x00\x00', 0x420, 0x4c00}, {&(0x7f0000011720)='/tmp/syz-imagegen3787079791/file0/file0\x00'/64, 0x40, 0x5400}, {&(0x7f0000011780)="16aae7c8b63c7c0811faaf1e400000000200000000000000781f1f630000000030000000000000001000000006000000880100000000000002000000000000001000000000000000020000000000000001000000000000000f00000000000000110000000000000002000000000000000100000001000000000400000000000000000000000000000600000000000000020000000000000005000000050000001300000000000000000000000000000014000000000000000100000000000000150000000000000002000000000000001600000000000000030000000000000001180000000000000400000000000000040000000000000000000000000000000100000001000000170000000000000000000000000000000500000000000000000000000000000001000000010000001800000000000000000000000000000003000000000000000000000000000000060000000600000000000000000000000100000000000000020000000000000022000000000000008200000000000000a200"/416, 0x1a0, 0x8000}, {&(0x7f0000011980)="0000000000000000080000000000000009000000000000000a000000000000000b000000000000000c000000000000000d000000000000000e0000000000000010000000000000001100"/96, 0x60, 0x8600}, {&(0x7f00000119e0)='syzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallers\x00'/128, 0x80, 0x8800}, {&(0x7f0000011a60)="ee1f0000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000ffff0300"/1056, 0x420, 0x8c00}, {&(0x7f0000011e80)="00000000000000000000000000000000781f1f6300000000781f1f63000000000000000000000000000000000000000000800100"/64, 0x40, 0x9480}, {&(0x7f0000011ec0)="01000000000000000004000000000000781f1f6300000000781f1f630000000092ddcb2992ddcb290000000000000000ed4103000000000000000000000000001200"/96, 0x60, 0x9500}, {&(0x7f0000000880)="00000000000000000000000000000000781f1f6300000000781f1f63000000000000000000000000000000000000000000800100"/64, 0x40, 0x9780}, {&(0x7f0000001bc0)="00000000000000000000000000000000781f1f6300000000781f1f63000000000000000000000000000000000000000000800100000000000000000000000000bb755ccb35db3f23d2f959c640b3f7e4f89b3e98084087c7d84e05187ba1a4c70bd1d2fa45df73086e0bcab9b39569f71f45460370d5931d172ea6be44eb1b3c", 0x80, 0x9800}, {&(0x7f0000001000)="00000000000000000000000000000000781f1f63000000007851d90000000000008001000000000000000000000000000eb4e95c2a11348f199606f92f622ff79c77471b9eda918b4741aae7087ed6f3627f32e670fa3869a0a1c4186ca188f8b07df844e618c65793a8bf5df733ca8bd529fe78adc1f327a5b560f60838", 0x7e, 0x9882}, {&(0x7f0000000080)="00000000000000000000000000000000781f1f6300000000781f1f63000000000000000000000000000000000000000000800100"/64, 0x40, 0x9900}, {&(0x7f0000012060)="02000000000000000004000000000000781f1f6300000000781f1f630000000092ddcb2992ddcb290000000000000000ed410200000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080bd9f690000000004000000000000001a04000000000000781f1f6300000000781f1f630000000092ddcb2992ddcb290000000000000000ed810100000000000000000000000000001400000000000001140000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000081bd9f690000000002000000000000002700000000000000781f1f6300000000781f1f630000000092ddcb2992ddcb290000000000000000eda10100000000000000000000000000001800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000082bd9f690000000002000000000000000a00000000000000781f1f6300000000781f1f630000000092ddcb2992ddcb290000000000000000ed810100000000000000000000000000001c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000083bd9f690000000014000000000000002823000000000000781f1f6300000000781f1f630000000092ddcb2992ddcb290000000000000000ed810200000000000102010000000000000000000000000009000000000000000a000000000000000f000000000000000c000000000000000d00000000000000000000000000000084bd9f690000000002000000000000006400000000000000781f1f6300000000781f1f630000000092ddcb2992ddcb290000000000000000ed810100000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000085bd9f6900000000", 0x300, 0x9a00}, {&(0x7f0000012360)="0200"/32, 0x20, 0xa000}, {&(0x7f0000012380)="0000000000000000000000000000000000000000000000000100000000000000781f1f63000000000c000000000000000200000000000000050000000000000004000000000000000000000000000000781f1f6300000000781f1f63000000000000000000000000000000000000000000800100000000000000000000000000020000000000000003000000000000000400000000000000050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000781f1f630000000035000000000000000800000000000000160000000000000006000000000000000000000000000000781f1f6300000000781f1f63000000000000000000000000000000000000000000800100000000000000000000000000130000000000000014000000000000001500000000000000160000000000000001180000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000300000000000000", 0x1a0, 0xa0c0}, {&(0x7f0000012520)="0200000000000000000000000000000000000000000000000400000000000000", 0x20, 0xa300}, {&(0x7f0000012540)="3a00000000000000050000000000000004000000000000000000000000000000781f1f63000000000c00000003000000781f1f63000000001000000003000000781f1f63000000001000000002000000781f1f630000000005000000020000000000000000000000000000000200"/128, 0x80, 0xa400}, {&(0x7f00000125c0)="e01f0000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000ffffff0100"/1056, 0x420, 0xa800}, {&(0x7f0000000140)="0100"/32, 0x20, 0xac80}, {&(0x7f0000012a00)="0100"/32, 0x20, 0xae00}, {&(0x7f00000009c0)="03000000000000000000000000000000000000000000000000000000000000007aa25e07c9ff7a5118968b19a44ca8cae22d8a8ed694c8f4e5d0db3f54de47c4ef1d4d9350fd1be693e21c27aa2c716f59bcb083b965dd64e095c51f22e09efb7e922f56046098331eda3a", 0x6b, 0xae80}, {&(0x7f0000012a40)="0300"/32, 0x20, 0xaf00}, {&(0x7f0000000180)="0100"/32, 0x20, 0xaf80}, {&(0x7f0000012a80)="050000000000000001000000000000000200000000000000000000000000000006000000000000000100000000000000020000000000000000000000000000000700000000000000010000000000000002000000000000000000000000000000080000000000000001000000000000000200000000000000000000000000000009000000000000000100000000000000020000000000000000000000000000000a000000000000000100000000000000010000000000000000000000000000000b0000000000000001000000000000000100000000000000000000000000000017000000000000000200000000000000ffffffffffffffff000000000000000018000000000000000200000000000000ffffffffffffffff000000000000000019000000000000000200000000000000ffffffffffffffff00000000000000001a000000000000000200000000000000ffffffffffffffff00000000000000001b000000000000000200000000000000ffffffffffffffff00000000000000001c000000000000000200000000000000ffffffffffffffff00000000000000001d000000000000000200000000000000ffffffffffffffff000000000000000021000000000000000200000000000000ffffffffffffffff00000000000000001e000000000000000200000000000000ffffffffffffffff00000000000000001f000000000000000200000000000000ffffffffffffffff000000000000000012000000000000000200000000000000ffffffffffffffff000000000000000023000000000000000200000000000000ffffffffffffffff000000000000000024000000000000000200000000000000ffffffffffffffff000000000000000025000000000000000200000000000000ffffffffffffffff000000000000000026000000000000000200000000000000ffffffffffffffff000000000000000028000000000000000200000000000000ffffffffffffffff000000000000000029000000000000000200000000000000ffffffffffffffff0000000000000000", 0x300, 0xb020}, {&(0x7f0000001100)="22000000000000000200000000000000ffffffffffffffff0000000000000000", 0x20, 0xb400}, {&(0x7f00000008c0)="1100fbbadd20406de4fa000000004000ffffffffffffbfff0000001809000000081b73f5cc8e9450f0ddd1f236de8eb4df2e3f0dc75ce940ace21de4fba896e69afe317a0995c9c7a83a0a234fc5049ebb6c45dea2c8e6ae9a971541ef3e37ca824345d1e792fa7303113953cdc919552032064f406cc3928d6d5166d4eedaf4ea0ba003570be564bb1b19dc6eea04fbb8b6cc16f91906d6e6800b", 0x9b, 0xb800}, {&(0x7f0000012dc0)="13000000000000000200000000000000ffffffffffffffff000000000000000014000000000000000200000000000000ffffffffffffffff0000000000000000", 0x40, 0xbbfd}, {&(0x7f0000012e00)="5a83286cef02cd2211faaf1e400006000300000000000000781f1f63000000004000000000000000050000000100000078000000000000000200000000000000030000000000000000000000000000000300000002000000c200000000000000e20000000000000000000000000000000100"/128, 0x80, 0xc000}, {&(0x7f0000012e80)="15000000000000000200000000000000ffffffffffffffff000000000000000027000000000000000200000000000000ffffffffffffffff0000000000000000", 0x40, 0xc400}, {&(0x7f0000012ec0)="16000000000000000200000000000000ffffffffffffffff0000000000000000", 0x20, 0xc800}, {&(0x7f0000012ee0)="0001080000000000000000000000000000000000000000000100000000000000020000000000000022000000000000008200000000000000a200000000000000c200000000000000e200"/96, 0x60, 0xcc00}, {&(0x7f0000012f40)='\x00\x00\x00\x00\x00\x00\x00\x00*\x00\x00\x00\x00\x00\x00\x00+\x00\x00\x00\x00\x00\x00\x00,\x00\x00\x00\x00\x00\x00\x00-\x00\x00\x00\x00\x00\x00\x00.\x00\x00\x00\x00\x00\x00\x00/\x00\x00\x00\x00\x00\x00\x001\x00\x00\x00\x00\x00\x00\x002\x00'/96, 0x60, 0xce00}, {&(0x7f0000012fa0)="ed336a1f90010000781f1f63000000000f000000000000000000000000000000781f1f6300000000781f1f6300000000000000000000000000000000000000000080010000000000010201000000000000000000000000000d000000000000000e000000000000003300000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000781f1f6300000000781f1f630000000000000000000000000000000000000000008001000000000000000000000000001700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000781f1f6300000000781f1f630000000000000000000000000000000000000000008001000000000000000000000000001800"/352, 0x160, 0xd000}, {&(0x7f0000000040)='syzkallers\x00'/32, 0x20, 0xf4a0}, {&(0x7f0000011920)="000109000000000000000000000000000000000000000000010000ecffffff000200000000000000030000000000000004000000000000000500000000000000060000000000000007000000004000000800"/96, 0x60, 0x18400}, {&(0x7f00000007c0)="020000000000343418010000f498e168cdbf9e50000000003f00000000000000000010000000000004000000000000001000000005000000020000000000000030000000000000000300000000000000a003000000000000781f1f6300000000781f1f6300000000781f1f63000000000100320001000100781f1f6300000000004eed0000000000000000000b00000080002000c00010005745cea941714c61b9841bd4a64c433600"/192, 0xc0, 0xff000}], 0x0, &(0x7f0000001140)=ANY=[@ANYBLOB="001f4c0e96634721fa0641d80ae80934dd515774df6bd6e8ac83bb453caa956ceb4e72e49239bc83dd9c189e0f6332ce6042e5e5e84340678e533d81a4cb03a0ff84205a9dc6b04afdd36916c4937ffd20701a2227317c118ba2ef4acb0aaf4c2a3c9c7ad66dcc643e090000001f10b0fee5fb6016d5ad90f6a06b6df6880e34e1378a94af2a8fc7e0651a99ddb26db13fb8b8b63bf0e1ead9f07e9b56808ebf95684a2efab363308ad65e95e1fb6bd7bae280631961c3138da9b14ba50d3463a0a3c785d036363418e30b1677d20b2e73268e71ca11420e151c31f6afe2abcc4067ded509001dec1e5bf678e5e55d19495f9894e5d0d7dc592e66897ed2288f2a9e9b7b86d0e10e8a12d9d1fa9d66913f7c23541c6eef4233ccaecad125685b9b7892810d4a50ac7bd623f5c732a01f696ba259612e2d1e5e4b15c078f0604195a7ff786b9154f0a89fb66df6d73760de85cf07776a83608875e7558373d5f30000000000000058198bb377da9ec83cbc10c0c8f5da5d441a7b75171eced6eb8a3015aed8b7453c5a508f8178c340af33f4d0ff0355a15c4cd11237e272eaa73e2cdbc9a81dd23ecb2337bc5f2009f713830a39c6d1f64b7794ffb4a2edf27cb075e48317f7066e3bf6214d56dcd60c9f86133efc598f5f5b8208e8cae13bb09855f52bda911c45b5788cc006863699ad01c2513636b05d1695e5f0082b379dba535ef60dfa85861b39f8da826b40d19a24f8d000004b964046fefe094bd7867756e36349576f1d9e16ff5f867ad512cbd1de6db4000000000000bf66196922597c78baed7c9bae7bc26412bc9ee8da4c4b4f65781d0b9e8fa654e63dbdf3aed70989fc29403aca18f7ca68641a9e6f5f5f76404503ddba6a9b867fcd88ae9e995dc2d7a09a8488a8b2a6ac9e83ec3b79a94a64ff7ef0c5138eede328ca2a1b4eb81d0b285ddbcda0d917221200"/698], 0xff) (async) truncate(&(0x7f0000000a80)='./file2\x00', 0x2) (async) r1 = syz_open_dev$audion(&(0x7f0000000d00), 0xb90, 0x400000) recvmsg$can_j1939(r1, &(0x7f0000001980)={&(0x7f00000018c0)=@llc={0x1a, 0x0, 0x0, 0x0, 0x0, 0x0, @dev}, 0x80, &(0x7f0000001940)=[{&(0x7f0000000e00)=""/31, 0x1f}], 0x1, &(0x7f0000002c40)=""/4096, 0x1000}, 0x0) (async) r2 = socket$can_j1939(0x1d, 0x2, 0x7) ioctl$ifreq_SIOCGIFINDEX_vcan(r2, 0x8933, &(0x7f0000000a00)={'vxcan1\x00', 0x0}) (async) setsockopt$sock_int(r2, 0x1, 0x6, &(0x7f0000000000)=0x1, 0x4) bind$can_j1939(r2, &(0x7f0000000240)={0x1d, r3}, 0x18) (async) sendmmsg(r2, &(0x7f0000002340)=[{{0x0, 0x0, 0x0}}, {{&(0x7f0000000100)=@can, 0x80, 0x0}}], 0x2, 0x0) (async) r4 = accept$nfc_llcp(0xffffffffffffffff, &(0x7f0000001080), &(0x7f0000000780)=0x60) r5 = openat$cgroup_int(0xffffffffffffffff, &(0x7f0000000980)='memory.high\x00', 0x2, 0x0) (async) clock_gettime(0x0, &(0x7f0000006c00)={0x0, 0x0}) recvmmsg(r2, &(0x7f0000006b00)=[{{&(0x7f00000019c0)=@isdn, 0x80, &(0x7f0000004c40)=[{&(0x7f0000001a40)=""/52, 0x34}, {&(0x7f0000001a80)=""/54, 0x36}, {&(0x7f0000001ac0)=""/105, 0x69}, {&(0x7f0000003c40)=""/4096, 0x1000}, {&(0x7f0000001b40)=""/76, 0x4c}], 0x5, &(0x7f0000004cc0)=""/92, 0x5c}, 0x6}, {{0x0, 0x0, &(0x7f0000005200)=[{&(0x7f0000004d40)=""/227, 0xe3}, {&(0x7f0000004e40)=""/59, 0x3b}, {&(0x7f0000004e80)=""/190, 0xbe}, {&(0x7f0000004f40)=""/127, 0x7f}, {&(0x7f0000004fc0)=""/255, 0xff}, {&(0x7f00000050c0)=""/219, 0xdb}, {&(0x7f00000051c0)=""/62, 0x3e}], 0x7}, 0x80000001}, {{&(0x7f0000005280)=@generic, 0x80, &(0x7f00000053c0)=[{&(0x7f0000005300)=""/155, 0x9b}], 0x1, &(0x7f0000005400)=""/32, 0x20}, 0x14a2}, {{&(0x7f0000005440)=@nl=@proc, 0x80, &(0x7f0000006980)=[{&(0x7f00000054c0)=""/224, 0xe0}, {&(0x7f00000055c0)=""/188, 0xbc}, {&(0x7f0000005680)=""/165, 0xa5}, {&(0x7f0000005740)=""/236, 0xec}, {&(0x7f0000005840)=""/198, 0xc6}, {&(0x7f0000005940)=""/4096, 0x1000}, {&(0x7f0000006940)=""/42, 0x2a}], 0x7, &(0x7f0000006a00)=""/243, 0xf3}, 0x4}], 0x4, 0x10000, &(0x7f0000006c40)={r6, r7+60000000}) (async) r8 = socket(0x11, 0x800000003, 0x0) bind(r8, &(0x7f0000000080)=@generic={0x11, "0000010000000000080044944eeba71a4976e252922cb18f6e2e2aba000000012e0b3836005404b0e0301a4ce875f2e3ff5f163ee340b7679500800000000000000101013c5811039e15775027ecce66fd792bbf0e5bf5ff1b0816f3f6db1c00010000000000000049740000000000000006ad8e5ecc326d3a09ffc2c654"}, 0x80) (async) getsockname$packet(r8, &(0x7f0000000100)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @dev}, &(0x7f0000000140)=0x2e) sendmmsg$unix(0xffffffffffffffff, &(0x7f0000000a40)=[{{&(0x7f0000000bc0)=@file={0x0, './file0\x00'}, 0x6e, &(0x7f00000001c0)=[{&(0x7f0000001c40)="6d40f90ccbf4812a28781140af479b9ebac7dcc6c6dcfcfb3a4e55fb8febe679c8f0367747c13ef61ce9ff43c3772eafea79c3a1c038b3dc142c869a08d95d534e0103624a1b93709582a2326adca181dabdd95f211417275bf3bc70f6060cc73c079a1350508d2af924708f437069b4afa98330e3da53cac5fa25f0d4587f48f9a43b974dcb3f8d57bdc7696ac1514ec8fc67647c3209ba4dc0abedeabc4a7518b4049d5ce20d3befdbbf78f5fc96dc3ed88d3e66c47966ace2a1a37aefba599558682903d1f939babfcc5305e6b6e5401e8aa6ec38e58f80393807401a942567a9b5f8aa2e50b4e7c71c2b7426248bd4ea89ead8d02c0308d20afca462fe5ea1f82d40a9492a1ee2acca190e431076785258e859453579ef99376a3a00c2560a93a442512c62e872fb0f9811e759f967f9122bf507d2fdbd89ac963a0d8012e6387bdd947d6fd673eaf942533e1e15e66791b3c33350208a58a778832331e2fc4ec2b26fe789a82b356d00e97696f5794a836026628245ba135e9b60dd7f475b14cff8a42c24c2f7c70ccf59d49810ee02cb661624e1a12eceebe2fd9744ad568199e843472b86ad0f3646c1b34196af77e68505164a91746033af236242204ef7fe4b9eb083691ab6d87505b8aa273d7f76753c80d9db27e48901e7951ab7d4940f52601fe8ddc15be017ec0e99a47c492e2d032b0100b3c9363afb3ba5632e408f4d8010f1ec362bac3836ef12f0b565783da524bc0b3529892d885e91a13b4b4966e2ded72890f9a2dcbdbfcd7979b5f3818242f02eeceed8d7b711a2c05e7a95e97fe45824051ab240af3bee2710979b686be4e96e08485c20b8628a8c55e0745da7455d79989b9857c01ec2ecaad914898e6be3c4f78130fcebcff05ee6b0c2cb2165599e2eba5622138f8d6ac01fb69030580839ef7e6215a8b728e712f1641681aa957723d00155be9f181f6a2fe1bafc5b6f87796a802d4dcd7a7d9d4a8a37d5924144b6e5f0771f8c16f1cad127e226f17b486440a7adce8501a3cc7917c3407c0d3098ef4ef3c239e4e3b43bf98b856ada359d6c48cbd43784b15980e68b0f1167f1db73412c379117e33cbc7ef511f9769dcfd7cf2628f049a7481d8f7b0e9f5d76cb017c8e133e43d2c0c5f2369fc86d5761c900e2f652e535232eae9dafd2f7d8f6081a4cfddb9d77abe7646ebaabe761f6101657a3ae99901f3ed745b29502cc1ad2616a63c9d902deaec8cda2ddbe4d12d005d2578274cd804e1c65b5f05455bf061942e345c95758f8dcb7d2f4631628da51912f93a174a33cfc4a0da02e7c23e8c1b554c7cc0f4ea4a52849d2ca1fcfcb498478f082156d2de150a286049bbce76a69a3e4c3f4c721aab19958d7fc57158050549fd3720699cacc0e4bb47210710f00826695efa597df2de8211d3bff83d14b8a07e63a654d233dd3b0f08845d3b3097e15cd33284006eba15aa2db520f22658e79b266da3b081ca695629153a84dd5ded3178627be93ccfce77a855b540364242ef51766cf18525688a52fb242e0edf190f7617e525cb2c8b1d3aba12c431587a23fccb73b35e57eab981d8ca3494d47b59e4ef5987b7d696ea137f5a300e9c9f56a144e2815abab79054f46b4acc39225fced8273d09ea8a61e414497ddd154850628d1eee25b9c2b186831da1b01cd1ebab20b3ea4682ff70e36c47f097918df5422efc3024c6da74b63ba672209a33bdc2dee82b670bc854afb1cede355389343a9a58aeccc16f2f705b6ad3793dfe2099492bc29fa241784a3f17286b8b8aa4ea8e10aae61d77d98410b01d890eaa227516a4608209942376af2c50001d7f9936b7db377db7ee39f59c1428642f1a56b7d38021d2e0e21ddc7d1fa551c5adf76e4ff3e82d44809181374a948c69e0812a953605a9dbd30be429cfb0db524754151e265dd6cc330a2af1ee3587aa79e867b88353047def54967f55cc9713d905de66c85148a1dc7e56c39723214270cc72ada405eb57319d167194797a316775a1f1c30107f70a07e144a5ee4dbadf1fdb110365c9c06838c0f784832beaf66aedaf0e38457fe31c4280926ea6d42f1e232d1b890a42a2cf45e33c03a7a8c18085d7b0ae86b6010da0902362fc79a02ea9ba28142bfc07a081fe0083f66278156acd18e07379a5294a88cb227db8084b99c4d8632f833a19d680c548651806db7957e4c97aaa69dddf4515d2ea3e59aee5a8c2864103455dff66e4193dbe1c518711602cf2b7ac394ed38e0fbd883f0cf1c7cdf6b6af66545189646f4d2cd844377f7779d2e4eadb803154f058ccaf1a96a92e9517fc7660bf4be4049e7f35a0560b69052d7dc41869c104331a844551684a500521072984d40c13cd757431d242df9f293b43d184883aafa3488330dd9d97179e2d930444b20418d736b7eecbeb4ec451bdb489ea119b2c19579744db5a4726b60eec6a068bacc0a0fb362ad06305be6643c1e307b3b12df83cc9f88068ad04ba991117f521ea1e008834da02bbc8984dcdeead9e23afafb090c85e23362eb76f7362fa8895927962c40bad4a7a95f4fd39f9f7f0558cf2f5e298c5d9aa61835bc532ff099fae135b26737284493e579f57b032b5b96a4a5d573bdea5aaa2d40fcf343fe678560be99b383d198b0262a4043e88fa751196fd6df75f5d6adbe009836708517abc91650dc865e5d271d09c5cf6266bfcc3744823a8d5ed73d63d4bf61f9ba085896665f8b87bb3916c328d49a198aabc1ea0903756055c7788e549050e5fb5ae47fb8af59fe755fbc3e4fe6a60ad3f3690499081b0a046847ea1d8df9d0910696757c33d309d134222a86f57db5ab0da22dff1e37c029d8e071ba9cd755ef979483aa839a43faa823bbe1cb19328f949c7d85bcb5754a523bf2e621e26177e95b832cbab87333bc23456fcdf567f3d1927f12036f319c077862f0f4fdcb94dd38190aa9ea4295ba15b100a01d640afa9c3110fc4c6a21c4e7142738b6f50b4b3c9ee30cfcf413972b3935789746d7a7f337879a19383d6ee636592274e486f7b3a59fc1564c2d8a55f955ab3ed44e796908f8b9367774b9ea4f811af925425c2d0eca1f6400a5d0ee3f33ff3a248da84039923ee27b57d7b5f52f93ca005ea34108dedcd1faa3cdbff02b82defe9eff703484447a4ba7dff1a58fcead0c15c8b2aa4d81fc750f651fd73df56a3b572e16d9a62478282056da237c97681503eccedf05566154e457d1d2056fd9ef9e73418eb832b6a71dd31a9d9ebbfc5e7eb0d52af1f03aa233fe3e810dc16a8103909c1d18a62e0629d82f8fa55e9395d0ae9d9c8ec5651c37cd625fc62c132d47cff0189dd64973481f8b615a92b19cb6299b7c399449ed95dd4e6bf005238fd8464537a7ef91df287582a1306ba740cf30ce8963c854eddfe6cd3509f9c2f3eadec7e204c94eb3e6d3a28ab6a9db2e6e495a9ebb60f15ebc089e6345fc1d2580d800d2e33ddd4f5a4ffe2e3c2643388b1208ffd245c1b31407fee036727b59a7b0bdb1debe51c6d1518bbf8862f364164ac8868560cad8a8cefcfb6a5f3013cbe2fff62d880e5a4c4dc9f3979eee2443afc57c3931ac3462371902f816b0f2c1c5d6d8e27ab6b61c5ce526635554d44983f3f93e11302b07d9116a8344c5cf51e7b46f320cfb3f0b7ae95c0e0792fc879a051851ebafff3a4c02b68523143fa273db9dbbc6868ff4183e1dfc9d8202c5dc539a9c371a431c6cdb6c2c74c5413153a62139ef09933fd1d0348dd3679a7934c971f26063c59b4bbaf26f25d39b1162afe18dd2f9f0f45849be2907c556d123f8d18cee0be36efc84a32bd30de6290b7a6b9a08ca1222a31cc59bfbf12970bc77e4dee032f0e6868833a6d46c1ae07f4a9099eb7dfe22fa3d5802ab5702515b565c72350a7e50274be16bc63742de7f52c040bbd83f91921e7e1563847370f9f1ca169188b32b3b8cfcf3d1c37bcd84e857bb1bad030c172c4995c3170f9603cdb5b4b3755a84db4c11a94153f3d3b9b8773eb85dd80af87ea1383051db98039201f12e820ba52a5226517843e92a9e73ab3cca14d056156f7e4ded39172b7152e0f31c1b6ae6c6eb438cd58d2176076a0bcd52de37163709792829d243f2077d971273923c927e52def5f8546a2a1552e21720668c9dcbdb605102bba44aafff3ea7f2ef31bd57b810eb3c340c26c13b95a8d5625402f95ddf36dd70c40fc488b4ffe3f560f0700f0dcabe8bc970b5f41ed470bf5a666928b99e4e143c4baf09ae58eed95ce5f0304751c59e41e1183d5a26c0e9f152f3b1018a46f5a68b391e0d21311a94472ff5637a3388054b71cbd508f4e0e3032969c923360a4f8ed584bb9c7dcfc20a0af763bb111cbebf53b4ab74057947ab0f9ad5749ca6693d9c403ed8099005a607f3e80169431dbe98fabf89ff89cf586e1deac53f9d8799ef1aaddde9ff760770176795fee0fadc0249345baad337c7cced4e99e1aad7a46901a91dfd7ee61128a18cbeeef8242ba677b0a40db39eb77bda60e688f4db042f2da3cec720a0d8a081618365425e17254cba042d82e449fc74b4ae6d3ff9e8795bd8ccc3197ec1dd668a53fb1fa218b6e5c1a408773431c0a59de0315904fe3927e67f37355ba6215c97df72ea259ffb90968152decdb52fae594e161b6f64d9eaca4932a357eed796ddd5982c1eb206a4b915ec443c3864f4915e6c5cf8c2c255aab63ae5c7698c5c109d9051eaced8661ea7197cf1bc4862fa0e12136e1915b027e17f84ca6ef6f1059bacdf84e9905d80f9b0482298c485094c86dcb416af62115112b3b50ae56b10bb88bb6b0c8147d6c88bec0b8e34b9ad2aac0d76fda9b8fde7d104571214de9690edd47e915de13f617ad689df8fcad9bc0fca9128bda868df261858c809a22bd929711f7a78db6a6ee29876b5481ecf4fbc7d6ecf690640d7209868aa354000893b8eb6005385282aabfb30b6ca578eb3253e11a9964ef735364509b3839e9b95359c8319501b3e07e5c4d2278182ad9a9a1634d59e39378970849c256d40999683224231a06e92a0ab87a6504bb6ccba455c3be33abaa49c0b4c34ad4771bf50e936ccaeb7e12a1a76954b309245fb5fb2cc9c99d787be0c807662e2ed90b4c0ad54f4865770d6e7ca70d7bd20f87b4c90536abd079d7eb1144590518e28ff3cd48c2725e1846b0531f5b7de74ae8e47c6d74941903ce353984df716869875be476bcdcab1552c036118b067ade952333656121ad19bb949f2807c90d378cc42002c8829227d326769f570c6e6f3676a77b00a0f9525b8536d599fe6cdb0b4cd2fb75970199d62eaab575f359783d9e23413332001fca226a8910c595757157dac4969b82046f205e8d5fc848de484238a11a0b346f4e90627869d72a8e30612dcf92d5a22593e650b55ce999921ee07d57d0bbc8c783a55b92a4884b6d609c8d9e775f2c9fc5ead14407ef452e452f1a9ee3406d59e60614fd13b6d8c29256d4ad86b972a6e0811eb4e2c919046dfcadc1db8cd7021b9098b215eaf54fdcd1478af057062c0b36af6517df4461f866c99cd4fea7b8b3ba6eaf85f443a844c1e98b1a622a7aee4fdd08a0a407981a687d2b684e37ad836ab872b86a759b384ff12bb3fa2775295699215184115dcc4521eb442388c34ce441b1eff5532f7aff026e2bc8c566bee434078e7d3a07adb60dba6b40329168533ef036973132e13c6b7b2a49001415e1dfc32709b23301324473e7127618826181d419d0626b8", 0x1000}, {&(0x7f0000000c40)="a98b198eb162cc9e9d3ce5917832c38f4bc9966062305efd74ff03d999ab2a968c7e5e41b5a3e551e9e013db458a2f06eb910b40c13195f21df30293ed7a888d2c07842214a5462622f9bdef39c4bf837ead0ad161f77995877399d12add63ed1e4e583c03c164903271aa6521b81371b4933f2b065dbfb62afec566066f70a2667b06cca5a6b13b3628f18a36e4feeb354a7da9", 0x94}], 0x2, &(0x7f0000001840)=ANY=[@ANYBLOB="2400000000000000010000fdd53a2100", @ANYRES32=r2, @ANYRES32=r4, @ANYRES32=r0, @ANYRES32=r5, @ANYRES32=r8, @ANYBLOB="0000000020000000000000000100000001000000", @ANYRES32=r0, @ANYRES32=r0, @ANYRES32=r0, @ANYRES32=r0], 0x48, 0x20000004}}], 0x1, 0x0) [ 385.727483][T21794] loop1: detected capacity change from 0 to 264192 00:06:25 executing program 5: r0 = socket$inet_tcp(0x2, 0x1, 0x0) bind$inet(r0, &(0x7f0000000000)={0x2, 0x4e20, @multicast2}, 0x10) setsockopt$sock_int(r0, 0x1, 0x3c, &(0x7f0000000340)=0x1, 0x4) connect$inet(r0, &(0x7f0000000200)={0x2, 0x4e20, @loopback}, 0x10) r1 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f00000001c0)='memory.current\x00', 0x275a, 0x0) write$binfmt_script(r1, &(0x7f0000000000)=ANY=[], 0x208e24b) mmap(&(0x7f0000000000/0xb36000)=nil, 0xb36000, 0x2, 0x28011, r1, 0x0) sendmmsg$inet(r0, &(0x7f00000012c0)=[{{0x0, 0x4002, &(0x7f0000000600)=[{&(0x7f00000000c0)='o', 0x1}], 0x1, 0x0, 0x0, 0xf}, 0x34}, {{0x0, 0x0, &(0x7f0000001b80)=[{&(0x7f0000000740), 0x40020000}], 0x1, 0x0, 0x0, 0xf86c0100}}], 0x2, 0x60c5840) [ 385.738667][T21794] hfs: can't find a HFS filesystem on dev loop1 00:06:25 executing program 4: r0 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route(r0, &(0x7f0000000200)={0x0, 0x0, &(0x7f00000000c0)={&(0x7f0000000100)=@ipv6_newrule={0x24, 0x18, 0x0, 0x0, 0x0, {}, [@FIB_RULE_POLICY=@FRA_GOTO={0x8, 0x1e, 0x7}]}, 0x24}}, 0x0) 00:06:25 executing program 3: r0 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route(r0, &(0x7f00000000c0)={0x0, 0x0, 0x0}, 0x0) 00:06:25 executing program 4: r0 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route(r0, &(0x7f0000000200)={0x0, 0x0, &(0x7f00000000c0)={&(0x7f0000000100)=@ipv6_newrule={0x24, 0x18, 0x0, 0x0, 0x0, {}, [@FIB_RULE_POLICY=@FRA_GOTO={0x8, 0x1e, 0x7}]}, 0x24}}, 0x0) [ 385.766618][T21804] loop2: detected capacity change from 0 to 2048 [ 385.769100][T21808] virt_wifi0: mtu less than device minimum 00:06:25 executing program 3: r0 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route(r0, &(0x7f00000000c0)={0x0, 0x0, &(0x7f0000000080)={0x0}}, 0x0) 00:06:25 executing program 2: r0 = syz_mount_image$nilfs2(&(0x7f00000000c0), &(0x7f0000000100)='./file0\x00', 0x100000, 0x39, &(0x7f0000000200)=[{&(0x7f00000106a0)="01000000000000000004000000000000781f1f6300000000781f1f630000000000000000000000000000000000000000ed4102000000000000000000000000000100"/96, 0x60, 0x6}, {&(0x7f0000000d40)="020000000000343418010000f498e16897043d98000000003f00000000000000000010000000000004000000000000001000000005000000010000000000000004000000000000000000000000000000e003000000000000781f1f6300000000781f1f6300000000781f1f63000000000100320000000100781f1f6300000000004eed0000000000000000000b00000080002000c00010005745cea941714c61b9841bd4a64c433600"/192, 0xc0, 0x400}, {&(0x7f0000010200)="0200000000000000100001022e0000000200000000000000100002022e2e00000b00000000000000e00306012e6e696c667300"/64, 0x40, 0x1400}, {&(0x7f0000010240)="f41f0000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000ff0f00"/1056, 0x420, 0x17ff}, {&(0x7f0000010660)="00000000000000000000000000000000781f1f6300000000781f1f63000000000000000000000000000000000000000000800100"/64, 0x40, 0x2080}, {&(0x7f0000010700)="00000000000000000000000000000000781f1f6300000000781f1f63000000000000000000000000000000000000000000800100"/64, 0x40, 0x2380}, {&(0x7f0000010740)="00000000000000000000000000000000781f1f6300000000781f1f63000000000000000000000000000000000000000000800100"/64, 0x40, 0x2400}, {&(0x7f0000010780)="00000000000000000000000000000000781f1f6300000000781f1f63000000000000000000000000000000000000000000800100"/64, 0x40, 0x2480}, {&(0x7f00000107c0)="00000000000000000000000000000000781f1f6300000000781f1f63000000000000000000000000000000000000000000800100"/64, 0x40, 0x2500}, {&(0x7f0000010800)="00000000000000000000000000000000781f1f6300000000781f1f630000000000000000000000000000000000000000a4810100"/64, 0x40, 0x2580}, {&(0x7f0000010840)="0100"/32, 0x20, 0x2800}, {&(0x7f0000010860)="0000000000000000000000000000000000000000000000000100000000000000781f1f63000000000c000000000000000200000000000000050000000000000004000000000000000000000000000000781f1f6300000000781f1f63000000000000000000000000000000000000000000800100000000000000000000000000020000000000000003000000000000000400000000000000050000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000200000000000000", 0xe0, 0x28c0}, {&(0x7f0000010940)="0200000000000000000000000000000000000000000000000300000000000000", 0x20, 0x2a40}, {&(0x7f0000000000)="0200000000000000000000000000000000000000000000000400000000000000", 0x20, 0x2b00}, {&(0x7f0000010980)="3d0000000000000002000000000000003e000000000000000000000000000000781f1f63000000000c0000000300000000000000000000000000000003000000", 0x40, 0x2c00}, {&(0x7f0000001400)="f81f0000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000f9ff1f000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000035e808d929438700200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000ff000000000000000000000000000000000000000000fe6a031411ee63220000", 0x427, 0x3001}, {&(0x7f0000000ac0)="05000000000000000100000000000000ffffffffffffffff000000000000000006000000000000000100000000000000fffffffffffbffff000000000000000007000000000000000100000000000000ffffffffffffffff00000000000009000000000000000000010000000000003371f225fab0620b98706919e1da00ffffffffffffffff000000000000000009000000000000000100000000000000ffffffffffffffff00000000000000000a000000000000000100000000000000ffffffffffffffff00000000000000000b000000000000000100000000000000ffffffffffffffff0000000000000000", 0xee, 0x3820}, {&(0x7f0000010ec0)="d102c1e890010000781f1f630000000003000000000000000000000000000000781f1f6300000000781f1f630000000000000000000000000000000000000000008001000000000000000000000000000c000000000000000d000000000000000e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000781f1f6300000000781f1f630000000000000000000000000000000000000000008001000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000781f1f6300000000781f1f630000000000000000000000000000000000000000008001000000000000000000000000000700"/352, 0x160, 0x3c00}, {&(0x7f0000011020)="652d8fe95cab1d6a11faaf1e400001000100000000000000781f1f630000000020000000000000001000000006000000c00100000000000002000000000000000c000000000000000200000000000000010000000100000000100000000000000000000000000000020000000000000002000000000000000100000001000000120000000000000000000000000000000d000000000000000200000000000000020000000200000000140000000000000000000000000000011400000000000001000000000000000e0000000000000002000000000000000100000001000000001800000000000000000000000000000f0000000000000002000000000000000100000001000000001c000000000000000000000000000010000000000000000200000000000000090000000900000008000000000000000000000000000000090000000000000001000000000000000a0000000000000002000000000000000b0000000000000003000000000000000c0000000000000004000000000000000d0000000000000005000000000000000e0000000000000006000000000000001000000000000000070000000000000011000000000000000800000000000000", 0x1c0, 0x4000}, {&(0x7f00000111e0)="0c00000000000000100001022e0000000200000000000000100002022e2e00000d000000000000001800050166696c6530000000000016000e00000000000000c803050766696c653100"/96, 0x60, 0x4400}, {&(0x7f0000000e40)="0200000000000000100001022e0000000200000000000000100002022e2e00000b00040000000000180006012e6e696c66730000000000000c000000000000001800050266696c6530000000000000000f000000000000001800050166696c65310000000000000010000000000000001800050166696c65320000000000000010000000000000001800050166696c65330000000000000011000000000000006803090166696c652e636f6c64000000000000000000000000000000000000005d93d9db5530385f0783baa04c1f12e30fd570c45fdcc74dd80bee7b9763226b11a6188ab159c9e4798a7e611fb624e9ba470700c4dfd63d5fe2ceff679c8ca5d83d492d7f03c4d0ce83f574f55c402cb2791e7df02ca234f511813cd8af73dae62c22997171926b8bafd7013d77c8aaaaa63fbd385bd13eea3c5558bed24494b99ed957d721d50f6212d6cb487766dded0b732accafb1f82f98b36976e717260996b286e570d4306d100b76e6b6a3517f8bb3190e879582590730adec6106968058b9e2c503d92b", 0x188, 0x4800}, {&(0x7f0000011300)='syzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkal\x00\x00\x00\x00\x00\x00', 0x420, 0x4c00}, {&(0x7f0000011720)='/tmp/syz-imagegen3787079791/file0/file0\x00'/64, 0x40, 0x5400}, {&(0x7f0000011780)="16aae7c8b63c7c0811faaf1e400000000200000000000000781f1f630000000030000000000000001000000006000000880100000000000002000000000000001000000000000000020000000000000001000000000000000f00000000000000110000000000000002000000000000000100000001000000000400000000000000000000000000000600000000000000020000000000000005000000050000001300000000000000000000000000000014000000000000000100000000000000150000000000000002000000000000001600000000000000030000000000000001180000000000000400000000000000040000000000000000000000000000000100000001000000170000000000000000000000000000000500000000000000000000000000000001000000010000001800000000000000000000000000000003000000000000000000000000000000060000000600000000000000000000000100000000000000020000000000000022000000000000008200000000000000a200"/416, 0x1a0, 0x8000}, {&(0x7f0000011980)="0000000000000000080000000000000009000000000000000a000000000000000b000000000000000c000000000000000d000000000000000e0000000000000010000000000000001100"/96, 0x60, 0x8600}, {&(0x7f00000119e0)='syzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallers\x00'/128, 0x80, 0x8800}, {&(0x7f0000011a60)="ee1f0000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000ffff0300"/1056, 0x420, 0x8c00}, {&(0x7f0000011e80)="00000000000000000000000000000000781f1f6300000000781f1f63000000000000000000000000000000000000000000800100"/64, 0x40, 0x9480}, {&(0x7f0000011ec0)="01000000000000000004000000000000781f1f6300000000781f1f630000000092ddcb2992ddcb290000000000000000ed4103000000000000000000000000001200"/96, 0x60, 0x9500}, {&(0x7f0000000880)="00000000000000000000000000000000781f1f6300000000781f1f63000000000000000000000000000000000000000000800100"/64, 0x40, 0x9780}, {&(0x7f0000001bc0)="00000000000000000000000000000000781f1f6300000000781f1f63000000000000000000000000000000000000000000800100000000000000000000000000bb755ccb35db3f23d2f959c640b3f7e4f89b3e98084087c7d84e05187ba1a4c70bd1d2fa45df73086e0bcab9b39569f71f45460370d5931d172ea6be44eb1b3c", 0x80, 0x9800}, {&(0x7f0000001000)="00000000000000000000000000000000781f1f63000000007851d90000000000008001000000000000000000000000000eb4e95c2a11348f199606f92f622ff79c77471b9eda918b4741aae7087ed6f3627f32e670fa3869a0a1c4186ca188f8b07df844e618c65793a8bf5df733ca8bd529fe78adc1f327a5b560f60838", 0x7e, 0x9882}, {&(0x7f0000000080)="00000000000000000000000000000000781f1f6300000000781f1f63000000000000000000000000000000000000000000800100"/64, 0x40, 0x9900}, {&(0x7f0000012060)="02000000000000000004000000000000781f1f6300000000781f1f630000000092ddcb2992ddcb290000000000000000ed410200000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080bd9f690000000004000000000000001a04000000000000781f1f6300000000781f1f630000000092ddcb2992ddcb290000000000000000ed810100000000000000000000000000001400000000000001140000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000081bd9f690000000002000000000000002700000000000000781f1f6300000000781f1f630000000092ddcb2992ddcb290000000000000000eda10100000000000000000000000000001800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000082bd9f690000000002000000000000000a00000000000000781f1f6300000000781f1f630000000092ddcb2992ddcb290000000000000000ed810100000000000000000000000000001c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000083bd9f690000000014000000000000002823000000000000781f1f6300000000781f1f630000000092ddcb2992ddcb290000000000000000ed810200000000000102010000000000000000000000000009000000000000000a000000000000000f000000000000000c000000000000000d00000000000000000000000000000084bd9f690000000002000000000000006400000000000000781f1f6300000000781f1f630000000092ddcb2992ddcb290000000000000000ed810100000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000085bd9f6900000000", 0x300, 0x9a00}, {&(0x7f0000012360)="0200"/32, 0x20, 0xa000}, {&(0x7f0000012380)="0000000000000000000000000000000000000000000000000100000000000000781f1f63000000000c000000000000000200000000000000050000000000000004000000000000000000000000000000781f1f6300000000781f1f63000000000000000000000000000000000000000000800100000000000000000000000000020000000000000003000000000000000400000000000000050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000781f1f630000000035000000000000000800000000000000160000000000000006000000000000000000000000000000781f1f6300000000781f1f63000000000000000000000000000000000000000000800100000000000000000000000000130000000000000014000000000000001500000000000000160000000000000001180000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000300000000000000", 0x1a0, 0xa0c0}, {&(0x7f0000012520)="0200000000000000000000000000000000000000000000000400000000000000", 0x20, 0xa300}, {&(0x7f0000012540)="3a00000000000000050000000000000004000000000000000000000000000000781f1f63000000000c00000003000000781f1f63000000001000000003000000781f1f63000000001000000002000000781f1f630000000005000000020000000000000000000000000000000200"/128, 0x80, 0xa400}, {&(0x7f00000125c0)="e01f0000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000ffffff0100"/1056, 0x420, 0xa800}, {&(0x7f0000000140)="0100"/32, 0x20, 0xac80}, {&(0x7f0000012a00)="0100"/32, 0x20, 0xae00}, {&(0x7f00000009c0)="03000000000000000000000000000000000000000000000000000000000000007aa25e07c9ff7a5118968b19a44ca8cae22d8a8ed694c8f4e5d0db3f54de47c4ef1d4d9350fd1be693e21c27aa2c716f59bcb083b965dd64e095c51f22e09efb7e922f56046098331eda3a", 0x6b, 0xae80}, {&(0x7f0000012a40)="0300"/32, 0x20, 0xaf00}, {&(0x7f0000000180)="0100"/32, 0x20, 0xaf80}, {&(0x7f0000012a80)="050000000000000001000000000000000200000000000000000000000000000006000000000000000100000000000000020000000000000000000000000000000700000000000000010000000000000002000000000000000000000000000000080000000000000001000000000000000200000000000000000000000000000009000000000000000100000000000000020000000000000000000000000000000a000000000000000100000000000000010000000000000000000000000000000b0000000000000001000000000000000100000000000000000000000000000017000000000000000200000000000000ffffffffffffffff000000000000000018000000000000000200000000000000ffffffffffffffff000000000000000019000000000000000200000000000000ffffffffffffffff00000000000000001a000000000000000200000000000000ffffffffffffffff00000000000000001b000000000000000200000000000000ffffffffffffffff00000000000000001c000000000000000200000000000000ffffffffffffffff00000000000000001d000000000000000200000000000000ffffffffffffffff000000000000000021000000000000000200000000000000ffffffffffffffff00000000000000001e000000000000000200000000000000ffffffffffffffff00000000000000001f000000000000000200000000000000ffffffffffffffff000000000000000012000000000000000200000000000000ffffffffffffffff000000000000000023000000000000000200000000000000ffffffffffffffff000000000000000024000000000000000200000000000000ffffffffffffffff000000000000000025000000000000000200000000000000ffffffffffffffff000000000000000026000000000000000200000000000000ffffffffffffffff000000000000000028000000000000000200000000000000ffffffffffffffff000000000000000029000000000000000200000000000000ffffffffffffffff0000000000000000", 0x300, 0xb020}, {&(0x7f0000001100)="22000000000000000200000000000000ffffffffffffffff0000000000000000", 0x20, 0xb400}, {&(0x7f00000008c0)="1100fbbadd20406de4fa000000004000ffffffffffffbfff0000001809000000081b73f5cc8e9450f0ddd1f236de8eb4df2e3f0dc75ce940ace21de4fba896e69afe317a0995c9c7a83a0a234fc5049ebb6c45dea2c8e6ae9a971541ef3e37ca824345d1e792fa7303113953cdc919552032064f406cc3928d6d5166d4eedaf4ea0ba003570be564bb1b19dc6eea04fbb8b6cc16f91906d6e6800b", 0x9b, 0xb800}, {&(0x7f0000012dc0)="13000000000000000200000000000000ffffffffffffffff000000000000000014000000000000000200000000000000ffffffffffffffff0000000000000000", 0x40, 0xbbfd}, {&(0x7f0000012e00)="5a83286cef02cd2211faaf1e400006000300000000000000781f1f63000000004000000000000000050000000100000078000000000000000200000000000000030000000000000000000000000000000300000002000000c200000000000000e20000000000000000000000000000000100"/128, 0x80, 0xc000}, {&(0x7f0000012e80)="15000000000000000200000000000000ffffffffffffffff000000000000000027000000000000000200000000000000ffffffffffffffff0000000000000000", 0x40, 0xc400}, {&(0x7f0000012ec0)="16000000000000000200000000000000ffffffffffffffff0000000000000000", 0x20, 0xc800}, {&(0x7f0000012ee0)="0001080000000000000000000000000000000000000000000100000000000000020000000000000022000000000000008200000000000000a200000000000000c200000000000000e200"/96, 0x60, 0xcc00}, {&(0x7f0000012f40)='\x00\x00\x00\x00\x00\x00\x00\x00*\x00\x00\x00\x00\x00\x00\x00+\x00\x00\x00\x00\x00\x00\x00,\x00\x00\x00\x00\x00\x00\x00-\x00\x00\x00\x00\x00\x00\x00.\x00\x00\x00\x00\x00\x00\x00/\x00\x00\x00\x00\x00\x00\x001\x00\x00\x00\x00\x00\x00\x002\x00'/96, 0x60, 0xce00}, {&(0x7f0000012fa0)="ed336a1f90010000781f1f63000000000f000000000000000000000000000000781f1f6300000000781f1f6300000000000000000000000000000000000000000080010000000000010201000000000000000000000000000d000000000000000e000000000000003300000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000781f1f6300000000781f1f630000000000000000000000000000000000000000008001000000000000000000000000001700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000781f1f6300000000781f1f630000000000000000000000000000000000000000008001000000000000000000000000001800"/352, 0x160, 0xd000}, {&(0x7f0000000040)='syzkallers\x00'/32, 0x20, 0xf4a0}, {&(0x7f0000011920)="000109000000000000000000000000000000000000000000010000ecffffff000200000000000000030000000000000004000000000000000500000000000000060000000000000007000000004000000800"/96, 0x60, 0x18400}, {&(0x7f00000007c0)="020000000000343418010000f498e168cdbf9e50000000003f00000000000000000010000000000004000000000000001000000005000000020000000000000030000000000000000300000000000000a003000000000000781f1f6300000000781f1f6300000000781f1f63000000000100320001000100781f1f6300000000004eed0000000000000000000b00000080002000c00010005745cea941714c61b9841bd4a64c433600"/192, 0xc0, 0xff000}], 0x0, &(0x7f0000001140)=ANY=[@ANYBLOB="001f4c0e96634721fa0641d80ae80934dd515774df6bd6e8ac83bb453caa956ceb4e72e49239bc83dd9c189e0f6332ce6042e5e5e84340678e533d81a4cb03a0ff84205a9dc6b04afdd36916c4937ffd20701a2227317c118ba2ef4acb0aaf4c2a3c9c7ad66dcc643e090000001f10b0fee5fb6016d5ad90f6a06b6df6880e34e1378a94af2a8fc7e0651a99ddb26db13fb8b8b63bf0e1ead9f07e9b56808ebf95684a2efab363308ad65e95e1fb6bd7bae280631961c3138da9b14ba50d3463a0a3c785d036363418e30b1677d20b2e73268e71ca11420e151c31f6afe2abcc4067ded509001dec1e5bf678e5e55d19495f9894e5d0d7dc592e66897ed2288f2a9e9b7b86d0e10e8a12d9d1fa9d66913f7c23541c6eef4233ccaecad125685b9b7892810d4a50ac7bd623f5c732a01f696ba259612e2d1e5e4b15c078f0604195a7ff786b9154f0a89fb66df6d73760de85cf07776a83608875e7558373d5f30000000000000058198bb377da9ec83cbc10c0c8f5da5d441a7b75171eced6eb8a3015aed8b7453c5a508f8178c340af33f4d0ff0355a15c4cd11237e272eaa73e2cdbc9a81dd23ecb2337bc5f2009f713830a39c6d1f64b7794ffb4a2edf27cb075e48317f7066e3bf6214d56dcd60c9f86133efc598f5f5b8208e8cae13bb09855f52bda911c45b5788cc006863699ad01c2513636b05d1695e5f0082b379dba535ef60dfa85861b39f8da826b40d19a24f8d000004b964046fefe094bd7867756e36349576f1d9e16ff5f867ad512cbd1de6db4000000000000bf66196922597c78baed7c9bae7bc26412bc9ee8da4c4b4f65781d0b9e8fa654e63dbdf3aed70989fc29403aca18f7ca68641a9e6f5f5f76404503ddba6a9b867fcd88ae9e995dc2d7a09a8488a8b2a6ac9e83ec3b79a94a64ff7ef0c5138eede328ca2a1b4eb81d0b285ddbcda0d917221200"/698], 0xff) truncate(&(0x7f0000000a80)='./file2\x00', 0x2) r1 = syz_open_dev$audion(&(0x7f0000000d00), 0xb90, 0x400000) recvmsg$can_j1939(r1, &(0x7f0000001980)={&(0x7f00000018c0)=@llc={0x1a, 0x0, 0x0, 0x0, 0x0, 0x0, @dev}, 0x80, &(0x7f0000001940)=[{&(0x7f0000000e00)=""/31, 0x1f}], 0x1, &(0x7f0000002c40)=""/4096, 0x1000}, 0x0) r2 = socket$can_j1939(0x1d, 0x2, 0x7) ioctl$ifreq_SIOCGIFINDEX_vcan(r2, 0x8933, &(0x7f0000000a00)={'vxcan1\x00', 0x0}) setsockopt$sock_int(r2, 0x1, 0x6, &(0x7f0000000000)=0x1, 0x4) bind$can_j1939(r2, &(0x7f0000000240)={0x1d, r3}, 0x18) sendmmsg(r2, &(0x7f0000002340)=[{{0x0, 0x0, 0x0}}, {{&(0x7f0000000100)=@can, 0x80, 0x0}}], 0x2, 0x0) r4 = accept$nfc_llcp(0xffffffffffffffff, &(0x7f0000001080), &(0x7f0000000780)=0x60) r5 = openat$cgroup_int(0xffffffffffffffff, &(0x7f0000000980)='memory.high\x00', 0x2, 0x0) clock_gettime(0x0, &(0x7f0000006c00)={0x0, 0x0}) recvmmsg(r2, &(0x7f0000006b00)=[{{&(0x7f00000019c0)=@isdn, 0x80, &(0x7f0000004c40)=[{&(0x7f0000001a40)=""/52, 0x34}, {&(0x7f0000001a80)=""/54, 0x36}, {&(0x7f0000001ac0)=""/105, 0x69}, {&(0x7f0000003c40)=""/4096, 0x1000}, {&(0x7f0000001b40)=""/76, 0x4c}], 0x5, &(0x7f0000004cc0)=""/92, 0x5c}, 0x6}, {{0x0, 0x0, &(0x7f0000005200)=[{&(0x7f0000004d40)=""/227, 0xe3}, {&(0x7f0000004e40)=""/59, 0x3b}, {&(0x7f0000004e80)=""/190, 0xbe}, {&(0x7f0000004f40)=""/127, 0x7f}, {&(0x7f0000004fc0)=""/255, 0xff}, {&(0x7f00000050c0)=""/219, 0xdb}, {&(0x7f00000051c0)=""/62, 0x3e}], 0x7}, 0x80000001}, {{&(0x7f0000005280)=@generic, 0x80, &(0x7f00000053c0)=[{&(0x7f0000005300)=""/155, 0x9b}], 0x1, &(0x7f0000005400)=""/32, 0x20}, 0x14a2}, {{&(0x7f0000005440)=@nl=@proc, 0x80, &(0x7f0000006980)=[{&(0x7f00000054c0)=""/224, 0xe0}, {&(0x7f00000055c0)=""/188, 0xbc}, {&(0x7f0000005680)=""/165, 0xa5}, {&(0x7f0000005740)=""/236, 0xec}, {&(0x7f0000005840)=""/198, 0xc6}, {&(0x7f0000005940)=""/4096, 0x1000}, {&(0x7f0000006940)=""/42, 0x2a}], 0x7, &(0x7f0000006a00)=""/243, 0xf3}, 0x4}], 0x4, 0x10000, &(0x7f0000006c40)={r6, r7+60000000}) r8 = socket(0x11, 0x800000003, 0x0) bind(r8, &(0x7f0000000080)=@generic={0x11, "0000010000000000080044944eeba71a4976e252922cb18f6e2e2aba000000012e0b3836005404b0e0301a4ce875f2e3ff5f163ee340b7679500800000000000000101013c5811039e15775027ecce66fd792bbf0e5bf5ff1b0816f3f6db1c00010000000000000049740000000000000006ad8e5ecc326d3a09ffc2c654"}, 0x80) getsockname$packet(r8, &(0x7f0000000100)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @dev}, &(0x7f0000000140)=0x2e) sendmmsg$unix(0xffffffffffffffff, &(0x7f0000000a40)=[{{&(0x7f0000000bc0)=@file={0x0, './file0\x00'}, 0x6e, &(0x7f00000001c0)=[{&(0x7f0000001c40)="6d40f90ccbf4812a28781140af479b9ebac7dcc6c6dcfcfb3a4e55fb8febe679c8f0367747c13ef61ce9ff43c3772eafea79c3a1c038b3dc142c869a08d95d534e0103624a1b93709582a2326adca181dabdd95f211417275bf3bc70f6060cc73c079a1350508d2af924708f437069b4afa98330e3da53cac5fa25f0d4587f48f9a43b974dcb3f8d57bdc7696ac1514ec8fc67647c3209ba4dc0abedeabc4a7518b4049d5ce20d3befdbbf78f5fc96dc3ed88d3e66c47966ace2a1a37aefba599558682903d1f939babfcc5305e6b6e5401e8aa6ec38e58f80393807401a942567a9b5f8aa2e50b4e7c71c2b7426248bd4ea89ead8d02c0308d20afca462fe5ea1f82d40a9492a1ee2acca190e431076785258e859453579ef99376a3a00c2560a93a442512c62e872fb0f9811e759f967f9122bf507d2fdbd89ac963a0d8012e6387bdd947d6fd673eaf942533e1e15e66791b3c33350208a58a778832331e2fc4ec2b26fe789a82b356d00e97696f5794a836026628245ba135e9b60dd7f475b14cff8a42c24c2f7c70ccf59d49810ee02cb661624e1a12eceebe2fd9744ad568199e843472b86ad0f3646c1b34196af77e68505164a91746033af236242204ef7fe4b9eb083691ab6d87505b8aa273d7f76753c80d9db27e48901e7951ab7d4940f52601fe8ddc15be017ec0e99a47c492e2d032b0100b3c9363afb3ba5632e408f4d8010f1ec362bac3836ef12f0b565783da524bc0b3529892d885e91a13b4b4966e2ded72890f9a2dcbdbfcd7979b5f3818242f02eeceed8d7b711a2c05e7a95e97fe45824051ab240af3bee2710979b686be4e96e08485c20b8628a8c55e0745da7455d79989b9857c01ec2ecaad914898e6be3c4f78130fcebcff05ee6b0c2cb2165599e2eba5622138f8d6ac01fb69030580839ef7e6215a8b728e712f1641681aa957723d00155be9f181f6a2fe1bafc5b6f87796a802d4dcd7a7d9d4a8a37d5924144b6e5f0771f8c16f1cad127e226f17b486440a7adce8501a3cc7917c3407c0d3098ef4ef3c239e4e3b43bf98b856ada359d6c48cbd43784b15980e68b0f1167f1db73412c379117e33cbc7ef511f9769dcfd7cf2628f049a7481d8f7b0e9f5d76cb017c8e133e43d2c0c5f2369fc86d5761c900e2f652e535232eae9dafd2f7d8f6081a4cfddb9d77abe7646ebaabe761f6101657a3ae99901f3ed745b29502cc1ad2616a63c9d902deaec8cda2ddbe4d12d005d2578274cd804e1c65b5f05455bf061942e345c95758f8dcb7d2f4631628da51912f93a174a33cfc4a0da02e7c23e8c1b554c7cc0f4ea4a52849d2ca1fcfcb498478f082156d2de150a286049bbce76a69a3e4c3f4c721aab19958d7fc57158050549fd3720699cacc0e4bb47210710f00826695efa597df2de8211d3bff83d14b8a07e63a654d233dd3b0f08845d3b3097e15cd33284006eba15aa2db520f22658e79b266da3b081ca695629153a84dd5ded3178627be93ccfce77a855b540364242ef51766cf18525688a52fb242e0edf190f7617e525cb2c8b1d3aba12c431587a23fccb73b35e57eab981d8ca3494d47b59e4ef5987b7d696ea137f5a300e9c9f56a144e2815abab79054f46b4acc39225fced8273d09ea8a61e414497ddd154850628d1eee25b9c2b186831da1b01cd1ebab20b3ea4682ff70e36c47f097918df5422efc3024c6da74b63ba672209a33bdc2dee82b670bc854afb1cede355389343a9a58aeccc16f2f705b6ad3793dfe2099492bc29fa241784a3f17286b8b8aa4ea8e10aae61d77d98410b01d890eaa227516a4608209942376af2c50001d7f9936b7db377db7ee39f59c1428642f1a56b7d38021d2e0e21ddc7d1fa551c5adf76e4ff3e82d44809181374a948c69e0812a953605a9dbd30be429cfb0db524754151e265dd6cc330a2af1ee3587aa79e867b88353047def54967f55cc9713d905de66c85148a1dc7e56c39723214270cc72ada405eb57319d167194797a316775a1f1c30107f70a07e144a5ee4dbadf1fdb110365c9c06838c0f784832beaf66aedaf0e38457fe31c4280926ea6d42f1e232d1b890a42a2cf45e33c03a7a8c18085d7b0ae86b6010da0902362fc79a02ea9ba28142bfc07a081fe0083f66278156acd18e07379a5294a88cb227db8084b99c4d8632f833a19d680c548651806db7957e4c97aaa69dddf4515d2ea3e59aee5a8c2864103455dff66e4193dbe1c518711602cf2b7ac394ed38e0fbd883f0cf1c7cdf6b6af66545189646f4d2cd844377f7779d2e4eadb803154f058ccaf1a96a92e9517fc7660bf4be4049e7f35a0560b69052d7dc41869c104331a844551684a500521072984d40c13cd757431d242df9f293b43d184883aafa3488330dd9d97179e2d930444b20418d736b7eecbeb4ec451bdb489ea119b2c19579744db5a4726b60eec6a068bacc0a0fb362ad06305be6643c1e307b3b12df83cc9f88068ad04ba991117f521ea1e008834da02bbc8984dcdeead9e23afafb090c85e23362eb76f7362fa8895927962c40bad4a7a95f4fd39f9f7f0558cf2f5e298c5d9aa61835bc532ff099fae135b26737284493e579f57b032b5b96a4a5d573bdea5aaa2d40fcf343fe678560be99b383d198b0262a4043e88fa751196fd6df75f5d6adbe009836708517abc91650dc865e5d271d09c5cf6266bfcc3744823a8d5ed73d63d4bf61f9ba085896665f8b87bb3916c328d49a198aabc1ea0903756055c7788e549050e5fb5ae47fb8af59fe755fbc3e4fe6a60ad3f3690499081b0a046847ea1d8df9d0910696757c33d309d134222a86f57db5ab0da22dff1e37c029d8e071ba9cd755ef979483aa839a43faa823bbe1cb19328f949c7d85bcb5754a523bf2e621e26177e95b832cbab87333bc23456fcdf567f3d1927f12036f319c077862f0f4fdcb94dd38190aa9ea4295ba15b100a01d640afa9c3110fc4c6a21c4e7142738b6f50b4b3c9ee30cfcf413972b3935789746d7a7f337879a19383d6ee636592274e486f7b3a59fc1564c2d8a55f955ab3ed44e796908f8b9367774b9ea4f811af925425c2d0eca1f6400a5d0ee3f33ff3a248da84039923ee27b57d7b5f52f93ca005ea34108dedcd1faa3cdbff02b82defe9eff703484447a4ba7dff1a58fcead0c15c8b2aa4d81fc750f651fd73df56a3b572e16d9a62478282056da237c97681503eccedf05566154e457d1d2056fd9ef9e73418eb832b6a71dd31a9d9ebbfc5e7eb0d52af1f03aa233fe3e810dc16a8103909c1d18a62e0629d82f8fa55e9395d0ae9d9c8ec5651c37cd625fc62c132d47cff0189dd64973481f8b615a92b19cb6299b7c399449ed95dd4e6bf005238fd8464537a7ef91df287582a1306ba740cf30ce8963c854eddfe6cd3509f9c2f3eadec7e204c94eb3e6d3a28ab6a9db2e6e495a9ebb60f15ebc089e6345fc1d2580d800d2e33ddd4f5a4ffe2e3c2643388b1208ffd245c1b31407fee036727b59a7b0bdb1debe51c6d1518bbf8862f364164ac8868560cad8a8cefcfb6a5f3013cbe2fff62d880e5a4c4dc9f3979eee2443afc57c3931ac3462371902f816b0f2c1c5d6d8e27ab6b61c5ce526635554d44983f3f93e11302b07d9116a8344c5cf51e7b46f320cfb3f0b7ae95c0e0792fc879a051851ebafff3a4c02b68523143fa273db9dbbc6868ff4183e1dfc9d8202c5dc539a9c371a431c6cdb6c2c74c5413153a62139ef09933fd1d0348dd3679a7934c971f26063c59b4bbaf26f25d39b1162afe18dd2f9f0f45849be2907c556d123f8d18cee0be36efc84a32bd30de6290b7a6b9a08ca1222a31cc59bfbf12970bc77e4dee032f0e6868833a6d46c1ae07f4a9099eb7dfe22fa3d5802ab5702515b565c72350a7e50274be16bc63742de7f52c040bbd83f91921e7e1563847370f9f1ca169188b32b3b8cfcf3d1c37bcd84e857bb1bad030c172c4995c3170f9603cdb5b4b3755a84db4c11a94153f3d3b9b8773eb85dd80af87ea1383051db98039201f12e820ba52a5226517843e92a9e73ab3cca14d056156f7e4ded39172b7152e0f31c1b6ae6c6eb438cd58d2176076a0bcd52de37163709792829d243f2077d971273923c927e52def5f8546a2a1552e21720668c9dcbdb605102bba44aafff3ea7f2ef31bd57b810eb3c340c26c13b95a8d5625402f95ddf36dd70c40fc488b4ffe3f560f0700f0dcabe8bc970b5f41ed470bf5a666928b99e4e143c4baf09ae58eed95ce5f0304751c59e41e1183d5a26c0e9f152f3b1018a46f5a68b391e0d21311a94472ff5637a3388054b71cbd508f4e0e3032969c923360a4f8ed584bb9c7dcfc20a0af763bb111cbebf53b4ab74057947ab0f9ad5749ca6693d9c403ed8099005a607f3e80169431dbe98fabf89ff89cf586e1deac53f9d8799ef1aaddde9ff760770176795fee0fadc0249345baad337c7cced4e99e1aad7a46901a91dfd7ee61128a18cbeeef8242ba677b0a40db39eb77bda60e688f4db042f2da3cec720a0d8a081618365425e17254cba042d82e449fc74b4ae6d3ff9e8795bd8ccc3197ec1dd668a53fb1fa218b6e5c1a408773431c0a59de0315904fe3927e67f37355ba6215c97df72ea259ffb90968152decdb52fae594e161b6f64d9eaca4932a357eed796ddd5982c1eb206a4b915ec443c3864f4915e6c5cf8c2c255aab63ae5c7698c5c109d9051eaced8661ea7197cf1bc4862fa0e12136e1915b027e17f84ca6ef6f1059bacdf84e9905d80f9b0482298c485094c86dcb416af62115112b3b50ae56b10bb88bb6b0c8147d6c88bec0b8e34b9ad2aac0d76fda9b8fde7d104571214de9690edd47e915de13f617ad689df8fcad9bc0fca9128bda868df261858c809a22bd929711f7a78db6a6ee29876b5481ecf4fbc7d6ecf690640d7209868aa354000893b8eb6005385282aabfb30b6ca578eb3253e11a9964ef735364509b3839e9b95359c8319501b3e07e5c4d2278182ad9a9a1634d59e39378970849c256d40999683224231a06e92a0ab87a6504bb6ccba455c3be33abaa49c0b4c34ad4771bf50e936ccaeb7e12a1a76954b309245fb5fb2cc9c99d787be0c807662e2ed90b4c0ad54f4865770d6e7ca70d7bd20f87b4c90536abd079d7eb1144590518e28ff3cd48c2725e1846b0531f5b7de74ae8e47c6d74941903ce353984df716869875be476bcdcab1552c036118b067ade952333656121ad19bb949f2807c90d378cc42002c8829227d326769f570c6e6f3676a77b00a0f9525b8536d599fe6cdb0b4cd2fb75970199d62eaab575f359783d9e23413332001fca226a8910c595757157dac4969b82046f205e8d5fc848de484238a11a0b346f4e90627869d72a8e30612dcf92d5a22593e650b55ce999921ee07d57d0bbc8c783a55b92a4884b6d609c8d9e775f2c9fc5ead14407ef452e452f1a9ee3406d59e60614fd13b6d8c29256d4ad86b972a6e0811eb4e2c919046dfcadc1db8cd7021b9098b215eaf54fdcd1478af057062c0b36af6517df4461f866c99cd4fea7b8b3ba6eaf85f443a844c1e98b1a622a7aee4fdd08a0a407981a687d2b684e37ad836ab872b86a759b384ff12bb3fa2775295699215184115dcc4521eb442388c34ce441b1eff5532f7aff026e2bc8c566bee434078e7d3a07adb60dba6b40329168533ef036973132e13c6b7b2a49001415e1dfc32709b23301324473e7127618826181d419d0626b8", 0x1000}, {&(0x7f0000000c40)="a98b198eb162cc9e9d3ce5917832c38f4bc9966062305efd74ff03d999ab2a968c7e5e41b5a3e551e9e013db458a2f06eb910b40c13195f21df30293ed7a888d2c07842214a5462622f9bdef39c4bf837ead0ad161f77995877399d12add63ed1e4e583c03c164903271aa6521b81371b4933f2b065dbfb62afec566066f70a2667b06cca5a6b13b3628f18a36e4feeb354a7da9", 0x94}], 0x2, &(0x7f0000001840)=ANY=[@ANYBLOB="2400000000000000010000fdd53a2100", @ANYRES32=r2, @ANYRES32=r4, @ANYRES32=r0, @ANYRES32=r5, @ANYRES32=r8, @ANYBLOB="0000000020000000000000000100000001000000", @ANYRES32=r0, @ANYRES32=r0, @ANYRES32=r0, @ANYRES32=r0], 0x48, 0x20000004}}], 0x1, 0x0) syz_mount_image$nilfs2(&(0x7f00000000c0), &(0x7f0000000100)='./file0\x00', 0x100000, 0x39, &(0x7f0000000200)=[{&(0x7f00000106a0)="01000000000000000004000000000000781f1f6300000000781f1f630000000000000000000000000000000000000000ed4102000000000000000000000000000100"/96, 0x60, 0x6}, {&(0x7f0000000d40)="020000000000343418010000f498e16897043d98000000003f00000000000000000010000000000004000000000000001000000005000000010000000000000004000000000000000000000000000000e003000000000000781f1f6300000000781f1f6300000000781f1f63000000000100320000000100781f1f6300000000004eed0000000000000000000b00000080002000c00010005745cea941714c61b9841bd4a64c433600"/192, 0xc0, 0x400}, {&(0x7f0000010200)="0200000000000000100001022e0000000200000000000000100002022e2e00000b00000000000000e00306012e6e696c667300"/64, 0x40, 0x1400}, {&(0x7f0000010240)="f41f0000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000ff0f00"/1056, 0x420, 0x17ff}, {&(0x7f0000010660)="00000000000000000000000000000000781f1f6300000000781f1f63000000000000000000000000000000000000000000800100"/64, 0x40, 0x2080}, {&(0x7f0000010700)="00000000000000000000000000000000781f1f6300000000781f1f63000000000000000000000000000000000000000000800100"/64, 0x40, 0x2380}, {&(0x7f0000010740)="00000000000000000000000000000000781f1f6300000000781f1f63000000000000000000000000000000000000000000800100"/64, 0x40, 0x2400}, {&(0x7f0000010780)="00000000000000000000000000000000781f1f6300000000781f1f63000000000000000000000000000000000000000000800100"/64, 0x40, 0x2480}, {&(0x7f00000107c0)="00000000000000000000000000000000781f1f6300000000781f1f63000000000000000000000000000000000000000000800100"/64, 0x40, 0x2500}, {&(0x7f0000010800)="00000000000000000000000000000000781f1f6300000000781f1f630000000000000000000000000000000000000000a4810100"/64, 0x40, 0x2580}, {&(0x7f0000010840)="0100"/32, 0x20, 0x2800}, {&(0x7f0000010860)="0000000000000000000000000000000000000000000000000100000000000000781f1f63000000000c000000000000000200000000000000050000000000000004000000000000000000000000000000781f1f6300000000781f1f63000000000000000000000000000000000000000000800100000000000000000000000000020000000000000003000000000000000400000000000000050000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000200000000000000", 0xe0, 0x28c0}, {&(0x7f0000010940)="0200000000000000000000000000000000000000000000000300000000000000", 0x20, 0x2a40}, {&(0x7f0000000000)="0200000000000000000000000000000000000000000000000400000000000000", 0x20, 0x2b00}, {&(0x7f0000010980)="3d0000000000000002000000000000003e000000000000000000000000000000781f1f63000000000c0000000300000000000000000000000000000003000000", 0x40, 0x2c00}, {&(0x7f0000001400)="f81f0000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000f9ff1f000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000035e808d929438700200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000ff000000000000000000000000000000000000000000fe6a031411ee63220000", 0x427, 0x3001}, {&(0x7f0000000ac0)="05000000000000000100000000000000ffffffffffffffff000000000000000006000000000000000100000000000000fffffffffffbffff000000000000000007000000000000000100000000000000ffffffffffffffff00000000000009000000000000000000010000000000003371f225fab0620b98706919e1da00ffffffffffffffff000000000000000009000000000000000100000000000000ffffffffffffffff00000000000000000a000000000000000100000000000000ffffffffffffffff00000000000000000b000000000000000100000000000000ffffffffffffffff0000000000000000", 0xee, 0x3820}, {&(0x7f0000010ec0)="d102c1e890010000781f1f630000000003000000000000000000000000000000781f1f6300000000781f1f630000000000000000000000000000000000000000008001000000000000000000000000000c000000000000000d000000000000000e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000781f1f6300000000781f1f630000000000000000000000000000000000000000008001000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000781f1f6300000000781f1f630000000000000000000000000000000000000000008001000000000000000000000000000700"/352, 0x160, 0x3c00}, {&(0x7f0000011020)="652d8fe95cab1d6a11faaf1e400001000100000000000000781f1f630000000020000000000000001000000006000000c00100000000000002000000000000000c000000000000000200000000000000010000000100000000100000000000000000000000000000020000000000000002000000000000000100000001000000120000000000000000000000000000000d000000000000000200000000000000020000000200000000140000000000000000000000000000011400000000000001000000000000000e0000000000000002000000000000000100000001000000001800000000000000000000000000000f0000000000000002000000000000000100000001000000001c000000000000000000000000000010000000000000000200000000000000090000000900000008000000000000000000000000000000090000000000000001000000000000000a0000000000000002000000000000000b0000000000000003000000000000000c0000000000000004000000000000000d0000000000000005000000000000000e0000000000000006000000000000001000000000000000070000000000000011000000000000000800000000000000", 0x1c0, 0x4000}, {&(0x7f00000111e0)="0c00000000000000100001022e0000000200000000000000100002022e2e00000d000000000000001800050166696c6530000000000016000e00000000000000c803050766696c653100"/96, 0x60, 0x4400}, {&(0x7f0000000e40)="0200000000000000100001022e0000000200000000000000100002022e2e00000b00040000000000180006012e6e696c66730000000000000c000000000000001800050266696c6530000000000000000f000000000000001800050166696c65310000000000000010000000000000001800050166696c65320000000000000010000000000000001800050166696c65330000000000000011000000000000006803090166696c652e636f6c64000000000000000000000000000000000000005d93d9db5530385f0783baa04c1f12e30fd570c45fdcc74dd80bee7b9763226b11a6188ab159c9e4798a7e611fb624e9ba470700c4dfd63d5fe2ceff679c8ca5d83d492d7f03c4d0ce83f574f55c402cb2791e7df02ca234f511813cd8af73dae62c22997171926b8bafd7013d77c8aaaaa63fbd385bd13eea3c5558bed24494b99ed957d721d50f6212d6cb487766dded0b732accafb1f82f98b36976e717260996b286e570d4306d100b76e6b6a3517f8bb3190e879582590730adec6106968058b9e2c503d92b", 0x188, 0x4800}, {&(0x7f0000011300)='syzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkal\x00\x00\x00\x00\x00\x00', 0x420, 0x4c00}, {&(0x7f0000011720)='/tmp/syz-imagegen3787079791/file0/file0\x00'/64, 0x40, 0x5400}, {&(0x7f0000011780)="16aae7c8b63c7c0811faaf1e400000000200000000000000781f1f630000000030000000000000001000000006000000880100000000000002000000000000001000000000000000020000000000000001000000000000000f00000000000000110000000000000002000000000000000100000001000000000400000000000000000000000000000600000000000000020000000000000005000000050000001300000000000000000000000000000014000000000000000100000000000000150000000000000002000000000000001600000000000000030000000000000001180000000000000400000000000000040000000000000000000000000000000100000001000000170000000000000000000000000000000500000000000000000000000000000001000000010000001800000000000000000000000000000003000000000000000000000000000000060000000600000000000000000000000100000000000000020000000000000022000000000000008200000000000000a200"/416, 0x1a0, 0x8000}, {&(0x7f0000011980)="0000000000000000080000000000000009000000000000000a000000000000000b000000000000000c000000000000000d000000000000000e0000000000000010000000000000001100"/96, 0x60, 0x8600}, {&(0x7f00000119e0)='syzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallers\x00'/128, 0x80, 0x8800}, {&(0x7f0000011a60)="ee1f0000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000ffff0300"/1056, 0x420, 0x8c00}, {&(0x7f0000011e80)="00000000000000000000000000000000781f1f6300000000781f1f63000000000000000000000000000000000000000000800100"/64, 0x40, 0x9480}, {&(0x7f0000011ec0)="01000000000000000004000000000000781f1f6300000000781f1f630000000092ddcb2992ddcb290000000000000000ed4103000000000000000000000000001200"/96, 0x60, 0x9500}, {&(0x7f0000000880)="00000000000000000000000000000000781f1f6300000000781f1f63000000000000000000000000000000000000000000800100"/64, 0x40, 0x9780}, {&(0x7f0000001bc0)="00000000000000000000000000000000781f1f6300000000781f1f63000000000000000000000000000000000000000000800100000000000000000000000000bb755ccb35db3f23d2f959c640b3f7e4f89b3e98084087c7d84e05187ba1a4c70bd1d2fa45df73086e0bcab9b39569f71f45460370d5931d172ea6be44eb1b3c", 0x80, 0x9800}, {&(0x7f0000001000)="00000000000000000000000000000000781f1f63000000007851d90000000000008001000000000000000000000000000eb4e95c2a11348f199606f92f622ff79c77471b9eda918b4741aae7087ed6f3627f32e670fa3869a0a1c4186ca188f8b07df844e618c65793a8bf5df733ca8bd529fe78adc1f327a5b560f60838", 0x7e, 0x9882}, {&(0x7f0000000080)="00000000000000000000000000000000781f1f6300000000781f1f63000000000000000000000000000000000000000000800100"/64, 0x40, 0x9900}, {&(0x7f0000012060)="02000000000000000004000000000000781f1f6300000000781f1f630000000092ddcb2992ddcb290000000000000000ed410200000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080bd9f690000000004000000000000001a04000000000000781f1f6300000000781f1f630000000092ddcb2992ddcb290000000000000000ed810100000000000000000000000000001400000000000001140000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000081bd9f690000000002000000000000002700000000000000781f1f6300000000781f1f630000000092ddcb2992ddcb290000000000000000eda10100000000000000000000000000001800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000082bd9f690000000002000000000000000a00000000000000781f1f6300000000781f1f630000000092ddcb2992ddcb290000000000000000ed810100000000000000000000000000001c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000083bd9f690000000014000000000000002823000000000000781f1f6300000000781f1f630000000092ddcb2992ddcb290000000000000000ed810200000000000102010000000000000000000000000009000000000000000a000000000000000f000000000000000c000000000000000d00000000000000000000000000000084bd9f690000000002000000000000006400000000000000781f1f6300000000781f1f630000000092ddcb2992ddcb290000000000000000ed810100000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000085bd9f6900000000", 0x300, 0x9a00}, {&(0x7f0000012360)="0200"/32, 0x20, 0xa000}, {&(0x7f0000012380)="0000000000000000000000000000000000000000000000000100000000000000781f1f63000000000c000000000000000200000000000000050000000000000004000000000000000000000000000000781f1f6300000000781f1f63000000000000000000000000000000000000000000800100000000000000000000000000020000000000000003000000000000000400000000000000050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000781f1f630000000035000000000000000800000000000000160000000000000006000000000000000000000000000000781f1f6300000000781f1f63000000000000000000000000000000000000000000800100000000000000000000000000130000000000000014000000000000001500000000000000160000000000000001180000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000300000000000000", 0x1a0, 0xa0c0}, {&(0x7f0000012520)="0200000000000000000000000000000000000000000000000400000000000000", 0x20, 0xa300}, {&(0x7f0000012540)="3a00000000000000050000000000000004000000000000000000000000000000781f1f63000000000c00000003000000781f1f63000000001000000003000000781f1f63000000001000000002000000781f1f630000000005000000020000000000000000000000000000000200"/128, 0x80, 0xa400}, {&(0x7f00000125c0)="e01f0000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000002000000020000000200000ffffff0100"/1056, 0x420, 0xa800}, {&(0x7f0000000140)="0100"/32, 0x20, 0xac80}, {&(0x7f0000012a00)="0100"/32, 0x20, 0xae00}, {&(0x7f00000009c0)="03000000000000000000000000000000000000000000000000000000000000007aa25e07c9ff7a5118968b19a44ca8cae22d8a8ed694c8f4e5d0db3f54de47c4ef1d4d9350fd1be693e21c27aa2c716f59bcb083b965dd64e095c51f22e09efb7e922f56046098331eda3a", 0x6b, 0xae80}, {&(0x7f0000012a40)="0300"/32, 0x20, 0xaf00}, {&(0x7f0000000180)="0100"/32, 0x20, 0xaf80}, {&(0x7f0000012a80)="050000000000000001000000000000000200000000000000000000000000000006000000000000000100000000000000020000000000000000000000000000000700000000000000010000000000000002000000000000000000000000000000080000000000000001000000000000000200000000000000000000000000000009000000000000000100000000000000020000000000000000000000000000000a000000000000000100000000000000010000000000000000000000000000000b0000000000000001000000000000000100000000000000000000000000000017000000000000000200000000000000ffffffffffffffff000000000000000018000000000000000200000000000000ffffffffffffffff000000000000000019000000000000000200000000000000ffffffffffffffff00000000000000001a000000000000000200000000000000ffffffffffffffff00000000000000001b000000000000000200000000000000ffffffffffffffff00000000000000001c000000000000000200000000000000ffffffffffffffff00000000000000001d000000000000000200000000000000ffffffffffffffff000000000000000021000000000000000200000000000000ffffffffffffffff00000000000000001e000000000000000200000000000000ffffffffffffffff00000000000000001f000000000000000200000000000000ffffffffffffffff000000000000000012000000000000000200000000000000ffffffffffffffff000000000000000023000000000000000200000000000000ffffffffffffffff000000000000000024000000000000000200000000000000ffffffffffffffff000000000000000025000000000000000200000000000000ffffffffffffffff000000000000000026000000000000000200000000000000ffffffffffffffff000000000000000028000000000000000200000000000000ffffffffffffffff000000000000000029000000000000000200000000000000ffffffffffffffff0000000000000000", 0x300, 0xb020}, {&(0x7f0000001100)="22000000000000000200000000000000ffffffffffffffff0000000000000000", 0x20, 0xb400}, {&(0x7f00000008c0)="1100fbbadd20406de4fa000000004000ffffffffffffbfff0000001809000000081b73f5cc8e9450f0ddd1f236de8eb4df2e3f0dc75ce940ace21de4fba896e69afe317a0995c9c7a83a0a234fc5049ebb6c45dea2c8e6ae9a971541ef3e37ca824345d1e792fa7303113953cdc919552032064f406cc3928d6d5166d4eedaf4ea0ba003570be564bb1b19dc6eea04fbb8b6cc16f91906d6e6800b", 0x9b, 0xb800}, {&(0x7f0000012dc0)="13000000000000000200000000000000ffffffffffffffff000000000000000014000000000000000200000000000000ffffffffffffffff0000000000000000", 0x40, 0xbbfd}, {&(0x7f0000012e00)="5a83286cef02cd2211faaf1e400006000300000000000000781f1f63000000004000000000000000050000000100000078000000000000000200000000000000030000000000000000000000000000000300000002000000c200000000000000e20000000000000000000000000000000100"/128, 0x80, 0xc000}, {&(0x7f0000012e80)="15000000000000000200000000000000ffffffffffffffff000000000000000027000000000000000200000000000000ffffffffffffffff0000000000000000", 0x40, 0xc400}, {&(0x7f0000012ec0)="16000000000000000200000000000000ffffffffffffffff0000000000000000", 0x20, 0xc800}, {&(0x7f0000012ee0)="0001080000000000000000000000000000000000000000000100000000000000020000000000000022000000000000008200000000000000a200000000000000c200000000000000e200"/96, 0x60, 0xcc00}, {&(0x7f0000012f40)='\x00\x00\x00\x00\x00\x00\x00\x00*\x00\x00\x00\x00\x00\x00\x00+\x00\x00\x00\x00\x00\x00\x00,\x00\x00\x00\x00\x00\x00\x00-\x00\x00\x00\x00\x00\x00\x00.\x00\x00\x00\x00\x00\x00\x00/\x00\x00\x00\x00\x00\x00\x001\x00\x00\x00\x00\x00\x00\x002\x00'/96, 0x60, 0xce00}, {&(0x7f0000012fa0)="ed336a1f90010000781f1f63000000000f000000000000000000000000000000781f1f6300000000781f1f6300000000000000000000000000000000000000000080010000000000010201000000000000000000000000000d000000000000000e000000000000003300000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000781f1f6300000000781f1f630000000000000000000000000000000000000000008001000000000000000000000000001700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000781f1f6300000000781f1f630000000000000000000000000000000000000000008001000000000000000000000000001800"/352, 0x160, 0xd000}, {&(0x7f0000000040)='syzkallers\x00'/32, 0x20, 0xf4a0}, {&(0x7f0000011920)="000109000000000000000000000000000000000000000000010000ecffffff000200000000000000030000000000000004000000000000000500000000000000060000000000000007000000004000000800"/96, 0x60, 0x18400}, {&(0x7f00000007c0)="020000000000343418010000f498e168cdbf9e50000000003f00000000000000000010000000000004000000000000001000000005000000020000000000000030000000000000000300000000000000a003000000000000781f1f6300000000781f1f6300000000781f1f63000000000100320001000100781f1f6300000000004eed0000000000000000000b00000080002000c00010005745cea941714c61b9841bd4a64c433600"/192, 0xc0, 0xff000}], 0x0, &(0x7f0000001140)=ANY=[@ANYBLOB="001f4c0e96634721fa0641d80ae80934dd515774df6bd6e8ac83bb453caa956ceb4e72e49239bc83dd9c189e0f6332ce6042e5e5e84340678e533d81a4cb03a0ff84205a9dc6b04afdd36916c4937ffd20701a2227317c118ba2ef4acb0aaf4c2a3c9c7ad66dcc643e090000001f10b0fee5fb6016d5ad90f6a06b6df6880e34e1378a94af2a8fc7e0651a99ddb26db13fb8b8b63bf0e1ead9f07e9b56808ebf95684a2efab363308ad65e95e1fb6bd7bae280631961c3138da9b14ba50d3463a0a3c785d036363418e30b1677d20b2e73268e71ca11420e151c31f6afe2abcc4067ded509001dec1e5bf678e5e55d19495f9894e5d0d7dc592e66897ed2288f2a9e9b7b86d0e10e8a12d9d1fa9d66913f7c23541c6eef4233ccaecad125685b9b7892810d4a50ac7bd623f5c732a01f696ba259612e2d1e5e4b15c078f0604195a7ff786b9154f0a89fb66df6d73760de85cf07776a83608875e7558373d5f30000000000000058198bb377da9ec83cbc10c0c8f5da5d441a7b75171eced6eb8a3015aed8b7453c5a508f8178c340af33f4d0ff0355a15c4cd11237e272eaa73e2cdbc9a81dd23ecb2337bc5f2009f713830a39c6d1f64b7794ffb4a2edf27cb075e48317f7066e3bf6214d56dcd60c9f86133efc598f5f5b8208e8cae13bb09855f52bda911c45b5788cc006863699ad01c2513636b05d1695e5f0082b379dba535ef60dfa85861b39f8da826b40d19a24f8d000004b964046fefe094bd7867756e36349576f1d9e16ff5f867ad512cbd1de6db4000000000000bf66196922597c78baed7c9bae7bc26412bc9ee8da4c4b4f65781d0b9e8fa654e63dbdf3aed70989fc29403aca18f7ca68641a9e6f5f5f76404503ddba6a9b867fcd88ae9e995dc2d7a09a8488a8b2a6ac9e83ec3b79a94a64ff7ef0c5138eede328ca2a1b4eb81d0b285ddbcda0d917221200"/698], 0xff) (async) truncate(&(0x7f0000000a80)='./file2\x00', 0x2) (async) syz_open_dev$audion(&(0x7f0000000d00), 0xb90, 0x400000) (async) recvmsg$can_j1939(r1, &(0x7f0000001980)={&(0x7f00000018c0)=@llc={0x1a, 0x0, 0x0, 0x0, 0x0, 0x0, @dev}, 0x80, &(0x7f0000001940)=[{&(0x7f0000000e00)=""/31, 0x1f}], 0x1, &(0x7f0000002c40)=""/4096, 0x1000}, 0x0) (async) socket$can_j1939(0x1d, 0x2, 0x7) (async) ioctl$ifreq_SIOCGIFINDEX_vcan(r2, 0x8933, &(0x7f0000000a00)={'vxcan1\x00'}) (async) setsockopt$sock_int(r2, 0x1, 0x6, &(0x7f0000000000)=0x1, 0x4) (async) bind$can_j1939(r2, &(0x7f0000000240)={0x1d, r3}, 0x18) (async) sendmmsg(r2, &(0x7f0000002340)=[{{0x0, 0x0, 0x0}}, {{&(0x7f0000000100)=@can, 0x80, 0x0}}], 0x2, 0x0) (async) accept$nfc_llcp(0xffffffffffffffff, &(0x7f0000001080), &(0x7f0000000780)=0x60) (async) openat$cgroup_int(0xffffffffffffffff, &(0x7f0000000980)='memory.high\x00', 0x2, 0x0) (async) clock_gettime(0x0, &(0x7f0000006c00)) (async) recvmmsg(r2, &(0x7f0000006b00)=[{{&(0x7f00000019c0)=@isdn, 0x80, &(0x7f0000004c40)=[{&(0x7f0000001a40)=""/52, 0x34}, {&(0x7f0000001a80)=""/54, 0x36}, {&(0x7f0000001ac0)=""/105, 0x69}, {&(0x7f0000003c40)=""/4096, 0x1000}, {&(0x7f0000001b40)=""/76, 0x4c}], 0x5, &(0x7f0000004cc0)=""/92, 0x5c}, 0x6}, {{0x0, 0x0, &(0x7f0000005200)=[{&(0x7f0000004d40)=""/227, 0xe3}, {&(0x7f0000004e40)=""/59, 0x3b}, {&(0x7f0000004e80)=""/190, 0xbe}, {&(0x7f0000004f40)=""/127, 0x7f}, {&(0x7f0000004fc0)=""/255, 0xff}, {&(0x7f00000050c0)=""/219, 0xdb}, {&(0x7f00000051c0)=""/62, 0x3e}], 0x7}, 0x80000001}, {{&(0x7f0000005280)=@generic, 0x80, &(0x7f00000053c0)=[{&(0x7f0000005300)=""/155, 0x9b}], 0x1, &(0x7f0000005400)=""/32, 0x20}, 0x14a2}, {{&(0x7f0000005440)=@nl=@proc, 0x80, &(0x7f0000006980)=[{&(0x7f00000054c0)=""/224, 0xe0}, {&(0x7f00000055c0)=""/188, 0xbc}, {&(0x7f0000005680)=""/165, 0xa5}, {&(0x7f0000005740)=""/236, 0xec}, {&(0x7f0000005840)=""/198, 0xc6}, {&(0x7f0000005940)=""/4096, 0x1000}, {&(0x7f0000006940)=""/42, 0x2a}], 0x7, &(0x7f0000006a00)=""/243, 0xf3}, 0x4}], 0x4, 0x10000, &(0x7f0000006c40)={r6, r7+60000000}) (async) socket(0x11, 0x800000003, 0x0) (async) bind(r8, &(0x7f0000000080)=@generic={0x11, "0000010000000000080044944eeba71a4976e252922cb18f6e2e2aba000000012e0b3836005404b0e0301a4ce875f2e3ff5f163ee340b7679500800000000000000101013c5811039e15775027ecce66fd792bbf0e5bf5ff1b0816f3f6db1c00010000000000000049740000000000000006ad8e5ecc326d3a09ffc2c654"}, 0x80) (async) getsockname$packet(r8, &(0x7f0000000100)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @dev}, &(0x7f0000000140)=0x2e) (async) sendmmsg$unix(0xffffffffffffffff, &(0x7f0000000a40)=[{{&(0x7f0000000bc0)=@file={0x0, './file0\x00'}, 0x6e, &(0x7f00000001c0)=[{&(0x7f0000001c40)="6d40f90ccbf4812a28781140af479b9ebac7dcc6c6dcfcfb3a4e55fb8febe679c8f0367747c13ef61ce9ff43c3772eafea79c3a1c038b3dc142c869a08d95d534e0103624a1b93709582a2326adca181dabdd95f211417275bf3bc70f6060cc73c079a1350508d2af924708f437069b4afa98330e3da53cac5fa25f0d4587f48f9a43b974dcb3f8d57bdc7696ac1514ec8fc67647c3209ba4dc0abedeabc4a7518b4049d5ce20d3befdbbf78f5fc96dc3ed88d3e66c47966ace2a1a37aefba599558682903d1f939babfcc5305e6b6e5401e8aa6ec38e58f80393807401a942567a9b5f8aa2e50b4e7c71c2b7426248bd4ea89ead8d02c0308d20afca462fe5ea1f82d40a9492a1ee2acca190e431076785258e859453579ef99376a3a00c2560a93a442512c62e872fb0f9811e759f967f9122bf507d2fdbd89ac963a0d8012e6387bdd947d6fd673eaf942533e1e15e66791b3c33350208a58a778832331e2fc4ec2b26fe789a82b356d00e97696f5794a836026628245ba135e9b60dd7f475b14cff8a42c24c2f7c70ccf59d49810ee02cb661624e1a12eceebe2fd9744ad568199e843472b86ad0f3646c1b34196af77e68505164a91746033af236242204ef7fe4b9eb083691ab6d87505b8aa273d7f76753c80d9db27e48901e7951ab7d4940f52601fe8ddc15be017ec0e99a47c492e2d032b0100b3c9363afb3ba5632e408f4d8010f1ec362bac3836ef12f0b565783da524bc0b3529892d885e91a13b4b4966e2ded72890f9a2dcbdbfcd7979b5f3818242f02eeceed8d7b711a2c05e7a95e97fe45824051ab240af3bee2710979b686be4e96e08485c20b8628a8c55e0745da7455d79989b9857c01ec2ecaad914898e6be3c4f78130fcebcff05ee6b0c2cb2165599e2eba5622138f8d6ac01fb69030580839ef7e6215a8b728e712f1641681aa957723d00155be9f181f6a2fe1bafc5b6f87796a802d4dcd7a7d9d4a8a37d5924144b6e5f0771f8c16f1cad127e226f17b486440a7adce8501a3cc7917c3407c0d3098ef4ef3c239e4e3b43bf98b856ada359d6c48cbd43784b15980e68b0f1167f1db73412c379117e33cbc7ef511f9769dcfd7cf2628f049a7481d8f7b0e9f5d76cb017c8e133e43d2c0c5f2369fc86d5761c900e2f652e535232eae9dafd2f7d8f6081a4cfddb9d77abe7646ebaabe761f6101657a3ae99901f3ed745b29502cc1ad2616a63c9d902deaec8cda2ddbe4d12d005d2578274cd804e1c65b5f05455bf061942e345c95758f8dcb7d2f4631628da51912f93a174a33cfc4a0da02e7c23e8c1b554c7cc0f4ea4a52849d2ca1fcfcb498478f082156d2de150a286049bbce76a69a3e4c3f4c721aab19958d7fc57158050549fd3720699cacc0e4bb47210710f00826695efa597df2de8211d3bff83d14b8a07e63a654d233dd3b0f08845d3b3097e15cd33284006eba15aa2db520f22658e79b266da3b081ca695629153a84dd5ded3178627be93ccfce77a855b540364242ef51766cf18525688a52fb242e0edf190f7617e525cb2c8b1d3aba12c431587a23fccb73b35e57eab981d8ca3494d47b59e4ef5987b7d696ea137f5a300e9c9f56a144e2815abab79054f46b4acc39225fced8273d09ea8a61e414497ddd154850628d1eee25b9c2b186831da1b01cd1ebab20b3ea4682ff70e36c47f097918df5422efc3024c6da74b63ba672209a33bdc2dee82b670bc854afb1cede355389343a9a58aeccc16f2f705b6ad3793dfe2099492bc29fa241784a3f17286b8b8aa4ea8e10aae61d77d98410b01d890eaa227516a4608209942376af2c50001d7f9936b7db377db7ee39f59c1428642f1a56b7d38021d2e0e21ddc7d1fa551c5adf76e4ff3e82d44809181374a948c69e0812a953605a9dbd30be429cfb0db524754151e265dd6cc330a2af1ee3587aa79e867b88353047def54967f55cc9713d905de66c85148a1dc7e56c39723214270cc72ada405eb57319d167194797a316775a1f1c30107f70a07e144a5ee4dbadf1fdb110365c9c06838c0f784832beaf66aedaf0e38457fe31c4280926ea6d42f1e232d1b890a42a2cf45e33c03a7a8c18085d7b0ae86b6010da0902362fc79a02ea9ba28142bfc07a081fe0083f66278156acd18e07379a5294a88cb227db8084b99c4d8632f833a19d680c548651806db7957e4c97aaa69dddf4515d2ea3e59aee5a8c2864103455dff66e4193dbe1c518711602cf2b7ac394ed38e0fbd883f0cf1c7cdf6b6af66545189646f4d2cd844377f7779d2e4eadb803154f058ccaf1a96a92e9517fc7660bf4be4049e7f35a0560b69052d7dc41869c104331a844551684a500521072984d40c13cd757431d242df9f293b43d184883aafa3488330dd9d97179e2d930444b20418d736b7eecbeb4ec451bdb489ea119b2c19579744db5a4726b60eec6a068bacc0a0fb362ad06305be6643c1e307b3b12df83cc9f88068ad04ba991117f521ea1e008834da02bbc8984dcdeead9e23afafb090c85e23362eb76f7362fa8895927962c40bad4a7a95f4fd39f9f7f0558cf2f5e298c5d9aa61835bc532ff099fae135b26737284493e579f57b032b5b96a4a5d573bdea5aaa2d40fcf343fe678560be99b383d198b0262a4043e88fa751196fd6df75f5d6adbe009836708517abc91650dc865e5d271d09c5cf6266bfcc3744823a8d5ed73d63d4bf61f9ba085896665f8b87bb3916c328d49a198aabc1ea0903756055c7788e549050e5fb5ae47fb8af59fe755fbc3e4fe6a60ad3f3690499081b0a046847ea1d8df9d0910696757c33d309d134222a86f57db5ab0da22dff1e37c029d8e071ba9cd755ef979483aa839a43faa823bbe1cb19328f949c7d85bcb5754a523bf2e621e26177e95b832cbab87333bc23456fcdf567f3d1927f12036f319c077862f0f4fdcb94dd38190aa9ea4295ba15b100a01d640afa9c3110fc4c6a21c4e7142738b6f50b4b3c9ee30cfcf413972b3935789746d7a7f337879a19383d6ee636592274e486f7b3a59fc1564c2d8a55f955ab3ed44e796908f8b9367774b9ea4f811af925425c2d0eca1f6400a5d0ee3f33ff3a248da84039923ee27b57d7b5f52f93ca005ea34108dedcd1faa3cdbff02b82defe9eff703484447a4ba7dff1a58fcead0c15c8b2aa4d81fc750f651fd73df56a3b572e16d9a62478282056da237c97681503eccedf05566154e457d1d2056fd9ef9e73418eb832b6a71dd31a9d9ebbfc5e7eb0d52af1f03aa233fe3e810dc16a8103909c1d18a62e0629d82f8fa55e9395d0ae9d9c8ec5651c37cd625fc62c132d47cff0189dd64973481f8b615a92b19cb6299b7c399449ed95dd4e6bf005238fd8464537a7ef91df287582a1306ba740cf30ce8963c854eddfe6cd3509f9c2f3eadec7e204c94eb3e6d3a28ab6a9db2e6e495a9ebb60f15ebc089e6345fc1d2580d800d2e33ddd4f5a4ffe2e3c2643388b1208ffd245c1b31407fee036727b59a7b0bdb1debe51c6d1518bbf8862f364164ac8868560cad8a8cefcfb6a5f3013cbe2fff62d880e5a4c4dc9f3979eee2443afc57c3931ac3462371902f816b0f2c1c5d6d8e27ab6b61c5ce526635554d44983f3f93e11302b07d9116a8344c5cf51e7b46f320cfb3f0b7ae95c0e0792fc879a051851ebafff3a4c02b68523143fa273db9dbbc6868ff4183e1dfc9d8202c5dc539a9c371a431c6cdb6c2c74c5413153a62139ef09933fd1d0348dd3679a7934c971f26063c59b4bbaf26f25d39b1162afe18dd2f9f0f45849be2907c556d123f8d18cee0be36efc84a32bd30de6290b7a6b9a08ca1222a31cc59bfbf12970bc77e4dee032f0e6868833a6d46c1ae07f4a9099eb7dfe22fa3d5802ab5702515b565c72350a7e50274be16bc63742de7f52c040bbd83f91921e7e1563847370f9f1ca169188b32b3b8cfcf3d1c37bcd84e857bb1bad030c172c4995c3170f9603cdb5b4b3755a84db4c11a94153f3d3b9b8773eb85dd80af87ea1383051db98039201f12e820ba52a5226517843e92a9e73ab3cca14d056156f7e4ded39172b7152e0f31c1b6ae6c6eb438cd58d2176076a0bcd52de37163709792829d243f2077d971273923c927e52def5f8546a2a1552e21720668c9dcbdb605102bba44aafff3ea7f2ef31bd57b810eb3c340c26c13b95a8d5625402f95ddf36dd70c40fc488b4ffe3f560f0700f0dcabe8bc970b5f41ed470bf5a666928b99e4e143c4baf09ae58eed95ce5f0304751c59e41e1183d5a26c0e9f152f3b1018a46f5a68b391e0d21311a94472ff5637a3388054b71cbd508f4e0e3032969c923360a4f8ed584bb9c7dcfc20a0af763bb111cbebf53b4ab74057947ab0f9ad5749ca6693d9c403ed8099005a607f3e80169431dbe98fabf89ff89cf586e1deac53f9d8799ef1aaddde9ff760770176795fee0fadc0249345baad337c7cced4e99e1aad7a46901a91dfd7ee61128a18cbeeef8242ba677b0a40db39eb77bda60e688f4db042f2da3cec720a0d8a081618365425e17254cba042d82e449fc74b4ae6d3ff9e8795bd8ccc3197ec1dd668a53fb1fa218b6e5c1a408773431c0a59de0315904fe3927e67f37355ba6215c97df72ea259ffb90968152decdb52fae594e161b6f64d9eaca4932a357eed796ddd5982c1eb206a4b915ec443c3864f4915e6c5cf8c2c255aab63ae5c7698c5c109d9051eaced8661ea7197cf1bc4862fa0e12136e1915b027e17f84ca6ef6f1059bacdf84e9905d80f9b0482298c485094c86dcb416af62115112b3b50ae56b10bb88bb6b0c8147d6c88bec0b8e34b9ad2aac0d76fda9b8fde7d104571214de9690edd47e915de13f617ad689df8fcad9bc0fca9128bda868df261858c809a22bd929711f7a78db6a6ee29876b5481ecf4fbc7d6ecf690640d7209868aa354000893b8eb6005385282aabfb30b6ca578eb3253e11a9964ef735364509b3839e9b95359c8319501b3e07e5c4d2278182ad9a9a1634d59e39378970849c256d40999683224231a06e92a0ab87a6504bb6ccba455c3be33abaa49c0b4c34ad4771bf50e936ccaeb7e12a1a76954b309245fb5fb2cc9c99d787be0c807662e2ed90b4c0ad54f4865770d6e7ca70d7bd20f87b4c90536abd079d7eb1144590518e28ff3cd48c2725e1846b0531f5b7de74ae8e47c6d74941903ce353984df716869875be476bcdcab1552c036118b067ade952333656121ad19bb949f2807c90d378cc42002c8829227d326769f570c6e6f3676a77b00a0f9525b8536d599fe6cdb0b4cd2fb75970199d62eaab575f359783d9e23413332001fca226a8910c595757157dac4969b82046f205e8d5fc848de484238a11a0b346f4e90627869d72a8e30612dcf92d5a22593e650b55ce999921ee07d57d0bbc8c783a55b92a4884b6d609c8d9e775f2c9fc5ead14407ef452e452f1a9ee3406d59e60614fd13b6d8c29256d4ad86b972a6e0811eb4e2c919046dfcadc1db8cd7021b9098b215eaf54fdcd1478af057062c0b36af6517df4461f866c99cd4fea7b8b3ba6eaf85f443a844c1e98b1a622a7aee4fdd08a0a407981a687d2b684e37ad836ab872b86a759b384ff12bb3fa2775295699215184115dcc4521eb442388c34ce441b1eff5532f7aff026e2bc8c566bee434078e7d3a07adb60dba6b40329168533ef036973132e13c6b7b2a49001415e1dfc32709b23301324473e7127618826181d419d0626b8", 0x1000}, {&(0x7f0000000c40)="a98b198eb162cc9e9d3ce5917832c38f4bc9966062305efd74ff03d999ab2a968c7e5e41b5a3e551e9e013db458a2f06eb910b40c13195f21df30293ed7a888d2c07842214a5462622f9bdef39c4bf837ead0ad161f77995877399d12add63ed1e4e583c03c164903271aa6521b81371b4933f2b065dbfb62afec566066f70a2667b06cca5a6b13b3628f18a36e4feeb354a7da9", 0x94}], 0x2, &(0x7f0000001840)=ANY=[@ANYBLOB="2400000000000000010000fdd53a2100", @ANYRES32=r2, @ANYRES32=r4, @ANYRES32=r0, @ANYRES32=r5, @ANYRES32=r8, @ANYBLOB="0000000020000000000000000100000001000000", @ANYRES32=r0, @ANYRES32=r0, @ANYRES32=r0, @ANYRES32=r0], 0x48, 0x20000004}}], 0x1, 0x0) (async) 00:06:25 executing program 4: r0 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route(r0, &(0x7f0000000200)={0x0, 0x0, &(0x7f00000000c0)={&(0x7f0000000100)=@ipv6_newrule={0x24, 0x18, 0x0, 0x0, 0x0, {}, [@FIB_RULE_POLICY=@FRA_GOTO={0x8, 0x1e, 0x7}]}, 0x24}}, 0x0) 00:06:25 executing program 3: r0 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route(r0, &(0x7f00000000c0)={0x0, 0x0, &(0x7f0000000080)={0x0}}, 0x0) [ 385.806050][T21818] loop2: detected capacity change from 0 to 2048 00:06:25 executing program 1: r0 = socket$inet_tcp(0x2, 0x1, 0x0) bind$inet(r0, &(0x7f0000000000)={0x2, 0x4e20, @multicast2}, 0x10) setsockopt$sock_int(r0, 0x1, 0x3c, &(0x7f0000000340)=0x1, 0x4) connect$inet(r0, &(0x7f0000000200)={0x2, 0x4e20, @loopback}, 0x10) r1 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f00000001c0)='memory.current\x00', 0x275a, 0x0) write$binfmt_script(r1, &(0x7f0000000000)=ANY=[], 0x208e24b) mmap(&(0x7f0000000000/0xb36000)=nil, 0xb36000, 0x2, 0x28011, r1, 0x0) sendmmsg$inet(r0, &(0x7f00000012c0)=[{{0x0, 0x4002, &(0x7f0000000600)=[{&(0x7f00000000c0)='o', 0x1}], 0x1, 0x0, 0x0, 0xf}, 0x34}, {{0x0, 0x0, &(0x7f0000001b80)=[{&(0x7f0000000740), 0x40020000}], 0x1, 0x0, 0x0, 0xf4010000}}], 0x2, 0x60c5840) 00:06:25 executing program 0: r0 = socket$inet_tcp(0x2, 0x1, 0x0) bind$inet(r0, &(0x7f0000000000)={0x2, 0x4e20, @multicast2}, 0x10) setsockopt$sock_int(r0, 0x1, 0x3c, &(0x7f0000000340)=0x1, 0x4) connect$inet(r0, &(0x7f0000000200)={0x2, 0x4e20, @loopback}, 0x10) r1 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f00000001c0)='memory.current\x00', 0x275a, 0x0) write$binfmt_script(r1, &(0x7f0000000000)=ANY=[], 0x208e24b) mmap(&(0x7f0000000000/0xb36000)=nil, 0xb36000, 0x2, 0x28011, r1, 0x0) sendmmsg$inet(r0, &(0x7f00000012c0)=[{{0x0, 0x4002, &(0x7f0000000600)=[{&(0x7f00000000c0)='o', 0x1}], 0x1, 0x0, 0x0, 0xf}, 0x34}, {{0x0, 0x0, &(0x7f0000001b80)=[{&(0x7f0000000740), 0x40020000}], 0x1}, 0x4}], 0x2, 0x60c5840) 00:06:25 executing program 4: r0 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route(r0, &(0x7f0000000200)={0x0, 0x0, &(0x7f00000000c0)={&(0x7f0000000100)=@ipv6_newrule={0x1c, 0x18, 0x409}, 0x1c}}, 0x0) 00:06:25 executing program 3: r0 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route(r0, &(0x7f00000000c0)={0x0, 0x0, &(0x7f0000000080)={0x0}}, 0x0) 00:06:25 executing program 5: r0 = socket$inet_tcp(0x2, 0x1, 0x0) bind$inet(r0, &(0x7f0000000000)={0x2, 0x4e20, @multicast2}, 0x10) setsockopt$sock_int(r0, 0x1, 0x3c, &(0x7f0000000340)=0x1, 0x4) connect$inet(r0, &(0x7f0000000200)={0x2, 0x4e20, @loopback}, 0x10) r1 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f00000001c0)='memory.current\x00', 0x275a, 0x0) write$binfmt_script(r1, &(0x7f0000000000)=ANY=[], 0x208e24b) mmap(&(0x7f0000000000/0xb36000)=nil, 0xb36000, 0x2, 0x28011, r1, 0x0) sendmmsg$inet(r0, &(0x7f00000012c0)=[{{0x0, 0x4002, &(0x7f0000000600)=[{&(0x7f00000000c0)='o', 0x1}], 0x1, 0x0, 0x0, 0xf}, 0x34}, {{0x0, 0x0, &(0x7f0000001b80)=[{&(0x7f0000000740), 0x40020000}], 0x1, 0x0, 0x0, 0xffffd859}}], 0x2, 0x60c5840) 00:06:25 executing program 4: r0 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route(r0, &(0x7f0000000200)={0x0, 0x0, &(0x7f00000000c0)={&(0x7f0000000100)=@ipv6_newrule={0x1c, 0x18, 0x409}, 0x1c}}, 0x0) [ 385.838404][T21825] NILFS (loop2): segctord starting. Construction interval = 5 seconds, CP frequency < 30 seconds [ 385.841319][T21818] NILFS (loop2): bad btree node (ino=16, blocknr=15): level = 0, flags = 0x0, nchildren = 0 [ 385.843445][T21818] NILFS error (device loop2): nilfs_bmap_lookup_contig: broken bmap (inode number=16) [ 385.854036][T21818] Remounting filesystem read-only 00:06:25 executing program 4: r0 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route(r0, &(0x7f0000000200)={0x0, 0x0, &(0x7f00000000c0)={&(0x7f0000000100)=@ipv6_newrule={0x1c, 0x18, 0x409}, 0x1c}}, 0x0) [ 385.855215][T21818] NILFS (loop2): bad btree node (ino=16, blocknr=