# /*
#  * Copyright (C) 2016 The Android Open Source Project
#  *
#  * Licensed under the Apache License, Version 2.0 (the "License");
#  * you may not use this file except in compliance with the License.
#  * You may obtain a copy of the License at
#  *
#  *      http://www.apache.org/licenses/LICENSE-2.0
#  *
#  * Unless required by applicable law or agreed to in writing, software
#  * distributed under the License is distributed on an "AS IS" BASIS,
#  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#  * See the License for the specific language governing permissions and
#  * limitations under the License.
#  */
#
# public interface Iface2 {
#    public void notImplementedMethod0();
#    public void notImplementedMethod1();
#    public void notImplementedMethod2();
#    public void notImplementedMethod3();
#    public void notImplementedMethod4();
#    public void notImplementedMethod5();
#    public void notImplementedMethod6();
#    public void notImplementedMethod7();
#    public void notImplementedMethod8();
#    public void notImplementedMethod9();
#    public void notImplementedMethod10();
#    public void notImplementedMethod11();
#    public void notImplementedMethod12();
#    public void notImplementedMethod13();
#    public void notImplementedMethod14();
#    public void notImplementedMethod15();
#    public void notImplementedMethod16();
#    public void notImplementedMethod17();
#    public void notImplementedMethod18();
#    public void notImplementedMethod19();
#    public void notImplementedMethod20();
#    public void notImplementedMethod21();
#    public void notImplementedMethod22();
#    public void notImplementedMethod23();
#    public void notImplementedMethod24();
#    public void notImplementedMethod25();
#    public void notImplementedMethod26();
#    public void notImplementedMethod27();
#    public void notImplementedMethod28();
#    public void notImplementedMethod29();
#    public void notImplementedMethod30();
#    public void notImplementedMethod31();
#    public void notImplementedMethod32();
#    public void notImplementedMethod33();
#    public void notImplementedMethod34();
#    public void notImplementedMethod35();
#    public void notImplementedMethod36();
#    public void notImplementedMethod37();
#    public void notImplementedMethod38();
#    public void notImplementedMethod39();
#    public void notImplementedMethod40();
#    public void notImplementedMethod41();
#    public void notImplementedMethod42();
#    public void notImplementedMethod43();
#    public void notImplementedMethod44();
#    public void notImplementedMethod45();
#    public void notImplementedMethod46();
#    public void notImplementedMethod47();
#    public void notImplementedMethod48();
#    public void notImplementedMethod49();
#    public void notImplementedMethod50();
#    public void notImplementedMethod51();
#    public void notImplementedMethod52();
#    public void notImplementedMethod53();
#    public void notImplementedMethod54();
#    public void notImplementedMethod55();
#    public void notImplementedMethod56();
#    public void notImplementedMethod57();
#    public void notImplementedMethod58();
#    public void notImplementedMethod59();
#    public void notImplementedMethod60();
#    public void notImplementedMethod61();
#    public void notImplementedMethod62();
#    public void notImplementedMethod63();
# }

.class public abstract interface LIface2;
.super Ljava/lang/Object;

.method public abstract notImplementedMethod0()V
.end method

.method public abstract notImplementedMethod1()V
.end method

.method public abstract notImplementedMethod2()V
.end method

.method public abstract notImplementedMethod3()V
.end method

.method public abstract notImplementedMethod4()V
.end method

.method public abstract notImplementedMethod5()V
.end method

.method public abstract notImplementedMethod6()V
.end method

.method public abstract notImplementedMethod7()V
.end method

.method public abstract notImplementedMethod8()V
.end method

.method public abstract notImplementedMethod9()V
.end method

.method public abstract notImplementedMethod10()V
.end method

.method public abstract notImplementedMethod11()V
.end method

.method public abstract notImplementedMethod12()V
.end method

.method public abstract notImplementedMethod13()V
.end method

.method public abstract notImplementedMethod14()V
.end method

.method public abstract notImplementedMethod15()V
.end method

.method public abstract notImplementedMethod16()V
.end method

.method public abstract notImplementedMethod17()V
.end method

.method public abstract notImplementedMethod18()V
.end method

.method public abstract notImplementedMethod19()V
.end method

.method public abstract notImplementedMethod20()V
.end method

.method public abstract notImplementedMethod21()V
.end method

.method public abstract notImplementedMethod22()V
.end method

.method public abstract notImplementedMethod23()V
.end method

.method public abstract notImplementedMethod24()V
.end method

.method public abstract notImplementedMethod25()V
.end method

.method public abstract notImplementedMethod26()V
.end method

.method public abstract notImplementedMethod27()V
.end method

.method public abstract notImplementedMethod28()V
.end method

.method public abstract notImplementedMethod29()V
.end method

.method public abstract notImplementedMethod30()V
.end method

.method public abstract notImplementedMethod31()V
.end method

.method public abstract notImplementedMethod32()V
.end method

.method public abstract notImplementedMethod33()V
.end method

.method public abstract notImplementedMethod34()V
.end method

.method public abstract notImplementedMethod35()V
.end method

.method public abstract notImplementedMethod36()V
.end method

.method public abstract notImplementedMethod37()V
.end method

.method public abstract notImplementedMethod38()V
.end method

.method public abstract notImplementedMethod39()V
.end method

.method public abstract notImplementedMethod40()V
.end method

.method public abstract notImplementedMethod41()V
.end method

.method public abstract notImplementedMethod42()V
.end method

.method public abstract notImplementedMethod43()V
.end method

.method public abstract notImplementedMethod44()V
.end method

.method public abstract notImplementedMethod45()V
.end method

.method public abstract notImplementedMethod46()V
.end method

.method public abstract notImplementedMethod47()V
.end method

.method public abstract notImplementedMethod48()V
.end method

.method public abstract notImplementedMethod49()V
.end method

.method public abstract notImplementedMethod50()V
.end method

.method public abstract notImplementedMethod51()V
.end method

.method public abstract notImplementedMethod52()V
.end method

.method public abstract notImplementedMethod53()V
.end method

.method public abstract notImplementedMethod54()V
.end method

.method public abstract notImplementedMethod55()V
.end method

.method public abstract notImplementedMethod56()V
.end method

.method public abstract notImplementedMethod57()V
.end method

.method public abstract notImplementedMethod58()V
.end method

.method public abstract notImplementedMethod59()V
.end method

.method public abstract notImplementedMethod60()V
.end method

.method public abstract notImplementedMethod61()V
.end method

.method public abstract notImplementedMethod62()V
.end method

.method public abstract notImplementedMethod63()V
.end method
