package

public abstract data class Base {
    public constructor Base(/*0*/ x: kotlin.Int)
    public final val x: kotlin.Int
    public final operator /*synthesized*/ fun component1(): kotlin.Int
    public final /*synthesized*/ fun copy(/*0*/ x: kotlin.Int = ...): Base
    public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
    public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int
    public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String
}

public final data class Complex : SuperInterface, SuperClass {
    public constructor Complex(/*0*/ y: kotlin.Int)
    public final val y: kotlin.Int
    public final operator /*synthesized*/ fun component1(): kotlin.Int
    public final /*synthesized*/ fun copy(/*0*/ y: kotlin.Int = ...): Complex
    public open override /*2*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
    public open override /*2*/ /*synthesized*/ fun hashCode(): kotlin.Int
    public open override /*2*/ /*synthesized*/ fun toString(): kotlin.String
}

public final class Derived : Base {
    public constructor Derived()
    public final override /*1*/ /*fake_override*/ val x: kotlin.Int
    public final override /*1*/ /*fake_override*/ fun component1(): kotlin.Int
    public final override /*1*/ /*fake_override*/ fun copy(/*0*/ x: kotlin.Int = ...): Base
    public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
    public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
    public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}

public final data class Nasty : Base {
    public constructor Nasty(/*0*/ z: kotlin.Int, /*1*/ y: kotlin.Int)
    public final override /*1*/ /*fake_override*/ val x: kotlin.Int
    public final val y: kotlin.Int
    public final val z: kotlin.Int
    public final override /*1*/ /*synthesized*/ fun component1(): kotlin.Int
    public final operator /*synthesized*/ fun component2(): kotlin.Int
    public final override /*1*/ /*fake_override*/ fun copy(/*0*/ x: kotlin.Int = ...): Base
    public final /*synthesized*/ fun copy(/*0*/ z: kotlin.Int = ..., /*1*/ y: kotlin.Int = ...): Nasty
    public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
    public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int
    public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String
}

public final data class SubData : Complex {
    public constructor SubData(/*0*/ sss: kotlin.String)
    public final val sss: kotlin.String
    public final override /*1*/ /*fake_override*/ val y: kotlin.Int
    public final override /*1*/ /*synthesized*/ fun component1(): kotlin.String
    public final override /*1*/ /*fake_override*/ fun copy(/*0*/ y: kotlin.Int = ...): Complex
    public final /*synthesized*/ fun copy(/*0*/ sss: kotlin.String = ...): SubData
    public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
    public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int
    public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String
}

public open class SuperClass {
    public constructor SuperClass()
    public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
    public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
    public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}

public interface SuperInterface {
    public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
    public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
    public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
