package

public fun main(): kotlin.Unit

public open class A : AImpl, kotlin.collections.MutableList<kotlin.String!> {
    public constructor A()
    public open override /*2*/ /*fake_override*/ val size: kotlin.Int
    public open override /*2*/ /*fake_override*/ fun add(/*0*/ index: kotlin.Int, /*1*/ element: kotlin.String!): kotlin.Unit
    public open override /*2*/ /*fake_override*/ fun add(/*0*/ s: kotlin.String!): kotlin.Boolean
    public open override /*2*/ /*fake_override*/ fun addAll(/*0*/ index: kotlin.Int, /*1*/ c: kotlin.collections.Collection<kotlin.String!>): kotlin.Boolean
    public open override /*2*/ /*fake_override*/ fun addAll(/*0*/ c: kotlin.collections.Collection<kotlin.String!>): kotlin.Boolean
    public open override /*2*/ /*fake_override*/ fun clear(): kotlin.Unit
    public open override /*2*/ /*fake_override*/ fun contains(/*0*/ element: kotlin.String!): kotlin.Boolean
    public open override /*2*/ /*fake_override*/ fun containsAll(/*0*/ elements: kotlin.collections.Collection<kotlin.String!>): kotlin.Boolean
    public open override /*2*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
    public open override /*2*/ /*fake_override*/ fun get(/*0*/ index: kotlin.Int): kotlin.String!
    public open override /*2*/ /*fake_override*/ fun hashCode(): kotlin.Int
    public open override /*2*/ /*fake_override*/ fun indexOf(/*0*/ element: kotlin.String!): kotlin.Int
    public open override /*2*/ /*fake_override*/ fun isEmpty(): kotlin.Boolean
    public open override /*2*/ /*fake_override*/ fun iterator(): kotlin.collections.MutableIterator<kotlin.String!>
    public open override /*2*/ /*fake_override*/ fun lastIndexOf(/*0*/ element: kotlin.String!): kotlin.Int
    public open override /*2*/ /*fake_override*/ fun listIterator(): kotlin.collections.MutableListIterator<kotlin.String!>
    public open override /*2*/ /*fake_override*/ fun listIterator(/*0*/ index: kotlin.Int): kotlin.collections.MutableListIterator<kotlin.String!>
    public open override /*2*/ /*fake_override*/ fun remove(/*0*/ element: kotlin.String!): kotlin.Boolean
    public open override /*2*/ /*fake_override*/ fun removeAll(/*0*/ elements: kotlin.collections.Collection<kotlin.String!>): kotlin.Boolean
    public open override /*2*/ /*fake_override*/ fun removeAt(/*0*/ index: kotlin.Int): kotlin.String!
    public open override /*2*/ /*fake_override*/ fun retainAll(/*0*/ elements: kotlin.collections.Collection<kotlin.String!>): kotlin.Boolean
    public open override /*2*/ /*fake_override*/ fun set(/*0*/ index: kotlin.Int, /*1*/ element: kotlin.String!): kotlin.String!
    public open override /*2*/ /*fake_override*/ fun subList(/*0*/ fromIndex: kotlin.Int, /*1*/ toIndex: kotlin.Int): kotlin.collections.MutableList<kotlin.String!>
    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*/ a: kotlin.Array<(out) T!>!): kotlin.Array<(out) T!>!
    public open override /*2*/ /*fake_override*/ fun toString(): kotlin.String
}

public abstract class AImpl {
    public constructor AImpl()
    public open fun add(/*0*/ index: kotlin.Int, /*1*/ element: kotlin.String!): kotlin.Unit
    public open fun add(/*0*/ s: kotlin.String!): kotlin.Boolean
    public open fun addAll(/*0*/ c: (kotlin.collections.MutableCollection<out kotlin.String!>..kotlin.collections.Collection<kotlin.String!>?)): kotlin.Boolean
    public open fun addAll(/*0*/ index: kotlin.Int, /*1*/ c: (kotlin.collections.MutableCollection<out kotlin.String!>..kotlin.collections.Collection<kotlin.String!>?)): kotlin.Boolean
    public open fun clear(): kotlin.Unit
    public open operator fun contains(/*0*/ o: kotlin.Any!): kotlin.Boolean
    public open fun containsAll(/*0*/ c: kotlin.collections.(Mutable)Collection<*>!): kotlin.Boolean
    public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
    public open operator fun get(/*0*/ index: kotlin.Int): kotlin.String!
    public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
    public open fun indexOf(/*0*/ o: kotlin.Any!): kotlin.Int
    public open fun isEmpty(): kotlin.Boolean
    public open operator fun iterator(): kotlin.collections.(Mutable)Iterator<kotlin.String!>!
    public open fun lastIndexOf(/*0*/ o: kotlin.Any!): kotlin.Int
    public open fun listIterator(): kotlin.collections.(Mutable)ListIterator<kotlin.String!>!
    public open fun listIterator(/*0*/ index: kotlin.Int): kotlin.collections.(Mutable)ListIterator<kotlin.String!>!
    public open fun remove(/*0*/ o: kotlin.Any!): kotlin.Boolean
    public open fun remove(/*0*/ index: kotlin.Int): kotlin.String!
    public open fun removeAll(/*0*/ c: kotlin.collections.(Mutable)Collection<*>!): kotlin.Boolean
    public open fun retainAll(/*0*/ c: kotlin.collections.(Mutable)Collection<*>!): kotlin.Boolean
    public open operator fun set(/*0*/ index: kotlin.Int, /*1*/ element: kotlin.String!): kotlin.String!
    public open fun size(): kotlin.Int
    public open fun subList(/*0*/ fromIndex: kotlin.Int, /*1*/ toIndex: kotlin.Int): kotlin.collections.(Mutable)List<kotlin.String!>!
    public open fun toArray(): kotlin.Array<(out) kotlin.Any!>!
    public open fun </*0*/ T : kotlin.Any!> toArray(/*0*/ a: kotlin.Array<(out) T!>!): kotlin.Array<(out) T!>!
    public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}

public final class X : A {
    public constructor X()
    public open override /*1*/ /*fake_override*/ val size: kotlin.Int
    public open override /*1*/ /*fake_override*/ fun add(/*0*/ index: kotlin.Int, /*1*/ element: kotlin.String!): kotlin.Unit
    public open override /*1*/ /*fake_override*/ fun add(/*0*/ s: kotlin.String!): kotlin.Boolean
    public open override /*1*/ /*fake_override*/ fun addAll(/*0*/ index: kotlin.Int, /*1*/ c: kotlin.collections.Collection<kotlin.String!>): kotlin.Boolean
    public open override /*1*/ /*fake_override*/ fun addAll(/*0*/ c: kotlin.collections.Collection<kotlin.String!>): kotlin.Boolean
    public open override /*1*/ /*fake_override*/ fun clear(): kotlin.Unit
    public open override /*1*/ /*fake_override*/ fun contains(/*0*/ element: kotlin.String!): kotlin.Boolean
    public open override /*1*/ /*fake_override*/ fun containsAll(/*0*/ elements: kotlin.collections.Collection<kotlin.String!>): kotlin.Boolean
    public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
    public open override /*1*/ /*fake_override*/ fun get(/*0*/ index: kotlin.Int): kotlin.String!
    public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
    public open override /*1*/ /*fake_override*/ fun indexOf(/*0*/ element: kotlin.String!): kotlin.Int
    public open override /*1*/ /*fake_override*/ fun isEmpty(): kotlin.Boolean
    public open override /*1*/ /*fake_override*/ fun iterator(): kotlin.collections.MutableIterator<kotlin.String!>
    public open override /*1*/ /*fake_override*/ fun lastIndexOf(/*0*/ element: kotlin.String!): kotlin.Int
    public open override /*1*/ /*fake_override*/ fun listIterator(): kotlin.collections.MutableListIterator<kotlin.String!>
    public open override /*1*/ /*fake_override*/ fun listIterator(/*0*/ index: kotlin.Int): kotlin.collections.MutableListIterator<kotlin.String!>
    public open override /*1*/ /*fake_override*/ fun remove(/*0*/ element: kotlin.String!): kotlin.Boolean
    public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ elements: kotlin.collections.Collection<kotlin.String!>): kotlin.Boolean
    public open override /*1*/ /*fake_override*/ fun removeAt(/*0*/ index: kotlin.Int): kotlin.String!
    public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ elements: kotlin.collections.Collection<kotlin.String!>): kotlin.Boolean
    public open override /*1*/ /*fake_override*/ fun set(/*0*/ index: kotlin.Int, /*1*/ element: kotlin.String!): kotlin.String!
    public open override /*1*/ /*fake_override*/ fun subList(/*0*/ fromIndex: kotlin.Int, /*1*/ toIndex: kotlin.Int): kotlin.collections.MutableList<kotlin.String!>
    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*/ a: kotlin.Array<(out) T!>!): kotlin.Array<(out) T!>!
    public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
