package

package a {
    private fun foo(): kotlin.Unit
    public fun makeA(): a.A

    private open class A {
        public constructor A()
        public final fun bar(): kotlin.Unit
        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
    }

    private object PO {
        private constructor PO()
        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
    }
}

package b {
    public fun test(): kotlin.Unit

    public final class B : a.A {
        public constructor B()
        invisible_fake final override /*1*/ /*fake_override*/ fun bar(): kotlin.Unit
        invisible_fake open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
        invisible_fake open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
        invisible_fake open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
    }

    public final class NewClass : java.util.ArrayList<java.lang.Integer> {
        public constructor NewClass()
        invisible_fake final override /*1*/ /*fake_override*/ var elementData: kotlin.Array<(out) kotlin.Any!>!
        protected/*protected and package*/ final override /*1*/ /*fake_override*/ var modCount: kotlin.Int
        invisible_fake final override /*1*/ /*fake_override*/ var size: kotlin.Int
        public open override /*1*/ /*fake_override*/ val size: kotlin.Int
        public open override /*1*/ /*fake_override*/ fun add(/*0*/ element: java.lang.Integer): kotlin.Boolean
        public open override /*1*/ /*fake_override*/ fun add(/*0*/ index: kotlin.Int, /*1*/ element: java.lang.Integer): kotlin.Unit
        public open override /*1*/ /*fake_override*/ fun addAll(/*0*/ index: kotlin.Int, /*1*/ elements: kotlin.collections.Collection<java.lang.Integer>): kotlin.Boolean
        public open override /*1*/ /*fake_override*/ fun addAll(/*0*/ elements: kotlin.collections.Collection<java.lang.Integer>): kotlin.Boolean
        invisible_fake open override /*1*/ /*fake_override*/ fun batchRemove(/*0*/ p0: kotlin.collections.(Mutable)Collection<*>!, /*1*/ p1: kotlin.Boolean): kotlin.Boolean
        public open override /*1*/ /*fake_override*/ fun clear(): kotlin.Unit
        public open override /*1*/ /*fake_override*/ fun clone(): kotlin.Any
        public open override /*1*/ /*fake_override*/ fun contains(/*0*/ element: java.lang.Integer): kotlin.Boolean
        public open override /*1*/ /*fake_override*/ fun containsAll(/*0*/ elements: kotlin.collections.Collection<java.lang.Integer>): kotlin.Boolean
        invisible_fake open override /*1*/ /*fake_override*/ fun elementData(/*0*/ p0: kotlin.Int): java.lang.Integer!
        public open override /*1*/ /*fake_override*/ fun ensureCapacity(/*0*/ p0: kotlin.Int): kotlin.Unit
        invisible_fake open override /*1*/ /*fake_override*/ fun ensureCapacityInternal(/*0*/ p0: kotlin.Int): kotlin.Unit
        invisible_fake open override /*1*/ /*fake_override*/ fun ensureExplicitCapacity(/*0*/ p0: kotlin.Int): kotlin.Unit
        public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
        invisible_fake open override /*1*/ /*fake_override*/ fun fastRemove(/*0*/ p0: kotlin.Int): kotlin.Unit
        public open override /*1*/ /*fake_override*/ fun get(/*0*/ index: kotlin.Int): java.lang.Integer
        invisible_fake open override /*1*/ /*fake_override*/ fun grow(/*0*/ p0: kotlin.Int): kotlin.Unit
        public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
        public open override /*1*/ /*fake_override*/ fun indexOf(/*0*/ element: java.lang.Integer): kotlin.Int
        public open override /*1*/ /*fake_override*/ fun isEmpty(): kotlin.Boolean
        public open override /*1*/ /*fake_override*/ fun iterator(): kotlin.collections.MutableIterator<java.lang.Integer>
        public open override /*1*/ /*fake_override*/ fun lastIndexOf(/*0*/ element: java.lang.Integer): kotlin.Int
        public open override /*1*/ /*fake_override*/ fun listIterator(): kotlin.collections.MutableListIterator<java.lang.Integer>
        public open override /*1*/ /*fake_override*/ fun listIterator(/*0*/ index: kotlin.Int): kotlin.collections.MutableListIterator<java.lang.Integer>
        invisible_fake open override /*1*/ /*fake_override*/ fun outOfBoundsMsg(/*0*/ p0: kotlin.Int): kotlin.String!
        invisible_fake open override /*1*/ /*fake_override*/ fun rangeCheck(/*0*/ p0: kotlin.Int): kotlin.Unit
        invisible_fake open override /*1*/ /*fake_override*/ fun rangeCheckForAdd(/*0*/ p0: kotlin.Int): kotlin.Unit
        invisible_fake open override /*1*/ /*fake_override*/ fun readObject(/*0*/ p0: java.io.ObjectInputStream!): kotlin.Unit
        public open override /*1*/ /*fake_override*/ fun remove(/*0*/ element: java.lang.Integer): kotlin.Boolean
        public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ elements: kotlin.collections.Collection<java.lang.Integer>): kotlin.Boolean
        public open override /*1*/ /*fake_override*/ fun removeAt(/*0*/ p0: kotlin.Int): java.lang.Integer
        protected/*protected and package*/ open override /*1*/ /*fake_override*/ fun removeRange(/*0*/ p0: kotlin.Int, /*1*/ p1: kotlin.Int): kotlin.Unit
        public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ elements: kotlin.collections.Collection<java.lang.Integer>): kotlin.Boolean
        public open override /*1*/ /*fake_override*/ fun set(/*0*/ index: kotlin.Int, /*1*/ element: java.lang.Integer): java.lang.Integer
        public open override /*1*/ /*fake_override*/ fun subList(/*0*/ fromIndex: kotlin.Int, /*1*/ toIndex: kotlin.Int): kotlin.collections.MutableList<java.lang.Integer>
        public open override /*1*/ /*fake_override*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>!
        public open override /*1*/ /*fake_override*/ fun </*0*/ T : kotlin.Any!> toArray(/*0*/ p0: kotlin.Array<(out) T!>!): kotlin.Array<(out) T!>!
        public open override /*1*/ fun toString(): kotlin.String
        public open override /*1*/ /*fake_override*/ fun trimToSize(): kotlin.Unit
        invisible_fake open override /*1*/ /*fake_override*/ fun writeObject(/*0*/ p0: java.io.ObjectOutputStream!): kotlin.Unit
    }

    public final class Q {
        public constructor Q()
        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 class W {
            public constructor W()
            public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
            public final fun foo(): kotlin.Unit
            public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
            public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
        }
    }
}
