package

public expect interface My {
    public expect open val a: kotlin.Int
    public expect open val b: kotlin.String
    public expect open val c: kotlin.String
    public expect open val e: kotlin.Int
    public expect abstract val f: kotlin.Int
    public open expect fun bar(): kotlin.Unit
    public open expect fun bas(): kotlin.Unit
    public open expect fun bat(): kotlin.Int
    public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
    public abstract expect fun foo(): kotlin.Unit
    public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
    public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}

public final class MyImpl1 : My {
    public constructor MyImpl1()
    public expect open override /*1*/ /*fake_override*/ val a: kotlin.Int
    public expect open override /*1*/ /*fake_override*/ val b: kotlin.String
    public expect open override /*1*/ /*fake_override*/ val c: kotlin.String
    public expect open override /*1*/ /*fake_override*/ val e: kotlin.Int
    public expect abstract override /*1*/ /*fake_override*/ val f: kotlin.Int
    public open expect override /*1*/ /*fake_override*/ fun bar(): kotlin.Unit
    public open expect override /*1*/ /*fake_override*/ fun bas(): kotlin.Unit
    public open expect override /*1*/ /*fake_override*/ fun bat(): kotlin.Int
    public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
    public abstract expect override /*1*/ /*fake_override*/ fun foo(): kotlin.Unit
    public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
    public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}

public final class MyImpl2 : My {
    public constructor MyImpl2()
    public expect open override /*1*/ /*fake_override*/ val a: kotlin.Int
    public expect open override /*1*/ /*fake_override*/ val b: kotlin.String
    public expect open override /*1*/ /*fake_override*/ val c: kotlin.String
    public open override /*1*/ val e: kotlin.Int = 1
    public open override /*1*/ val f: kotlin.Int = 0
    public open expect override /*1*/ /*fake_override*/ fun bar(): kotlin.Unit
    public open expect override /*1*/ /*fake_override*/ fun bas(): kotlin.Unit
    public open expect override /*1*/ /*fake_override*/ fun bat(): kotlin.Int
    public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
    public open override /*1*/ fun foo(): kotlin.Unit
    public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
    public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}

public expect interface Outer {
    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 expect interface Inner {
        public open expect fun bar(): kotlin.Unit
        public open expect fun bas(): kotlin.Unit
        public open expect fun bat(): kotlin.Int
        public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
        public abstract expect fun foo(): kotlin.Unit
        public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
        public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
    }
}
