package

package override {

    public open class Br : override.T {
        public constructor Br(/*0*/ t: override.T)
        public abstract override /*1*/ /*fake_override*/ val v: kotlin.Int
        public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
        public abstract 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 open class Br1 : override.T {
        public constructor Br1(/*0*/ t: override.T)
        public open override /*1*/ /*delegation*/ val v: kotlin.Int
        public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
        public open override /*1*/ /*delegation*/ 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 Br2 : override.Br1 {
        public constructor Br2(/*0*/ t: override.T)
        public open override /*1*/ /*fake_override*/ val v: kotlin.Int
        public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
        public open 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 Br3 : override.Br {
        public constructor Br3(/*0*/ t: override.T)
        public abstract override /*1*/ /*fake_override*/ val v: kotlin.Int
        public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
        public abstract 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 interface G</*0*/ T> {
        public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
        public abstract fun foo(/*0*/ t: T): T
        public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
        public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
    }

    public final class GC : override.G<kotlin.Int> {
        public constructor GC()
        public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
        public abstract override /*1*/ /*fake_override*/ fun foo(/*0*/ t: kotlin.Int): kotlin.Int
        public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
        public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
    }

    public open class GC1 : override.G<kotlin.Int> {
        public constructor GC1(/*0*/ g: override.G<kotlin.Int>)
        public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
        public open override /*1*/ /*delegation*/ fun foo(/*0*/ t: kotlin.Int): kotlin.Int
        public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
        public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
    }

    public open class GC2 : override.GC1 {
        public constructor GC2(/*0*/ g: override.G<kotlin.Int>)
        public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
        public open override /*1*/ /*fake_override*/ fun foo(/*0*/ t: kotlin.Int): kotlin.Int
        public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
        public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
    }

    public interface T {
        public abstract val v: kotlin.Int
        public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
        public abstract fun foo(): kotlin.Unit
        public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
        public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
    }
}
