1-dontnote
2-microedition
3-mergeinterfacesaggressively
4-overloadaggressively
5-repackageclasses ''
6-allowaccessmodification
7
8# Keep all extensions of javax.microedition.midlet.MIDlet.
9-keep public class * extends javax.microedition.midlet.MIDlet
10
11# Keep all native class/method names.
12-keepclasseswithmembernames class * {
13    native <methods>;
14}
15
16# Remove all invocations of System methods without side effects
17# whose return values are not used.
18-assumenosideeffects public class java.lang.System {
19    public static native long currentTimeMillis();
20    static java.lang.Class getCallerClass();
21    public static native int identityHashCode(java.lang.Object);
22    public static java.lang.SecurityManager getSecurityManager();
23    public static java.util.Properties getProperties();
24    public static java.lang.String getProperty(java.lang.String);
25    public static java.lang.String getenv(java.lang.String);
26    public static native java.lang.String mapLibraryName(java.lang.String);
27    public static java.lang.String getProperty(java.lang.String,java.lang.String);
28}
29
30# Remove all invocations of String methods without side effects
31# whose return values are not used.
32-assumenosideeffects public class java.lang.String {
33    public java.lang.String();
34    public java.lang.String(byte[]);
35    public java.lang.String(byte[],int);
36    public java.lang.String(byte[],int,int);
37    public java.lang.String(byte[],int,int,int);
38    public java.lang.String(byte[],int,int,java.lang.String);
39    public java.lang.String(byte[],java.lang.String);
40    public java.lang.String(char[]);
41    public java.lang.String(char[],int,int);
42    public java.lang.String(java.lang.String);
43    public java.lang.String(java.lang.StringBuffer);
44    public static java.lang.String copyValueOf(char[]);
45    public static java.lang.String copyValueOf(char[],int,int);
46    public static java.lang.String valueOf(boolean);
47    public static java.lang.String valueOf(char);
48    public static java.lang.String valueOf(char[]);
49    public static java.lang.String valueOf(char[],int,int);
50    public static java.lang.String valueOf(double);
51    public static java.lang.String valueOf(float);
52    public static java.lang.String valueOf(int);
53    public static java.lang.String valueOf(java.lang.Object);
54    public static java.lang.String valueOf(long);
55    public boolean contentEquals(java.lang.StringBuffer);
56    public boolean endsWith(java.lang.String);
57    public boolean equalsIgnoreCase(java.lang.String);
58    public boolean equals(java.lang.Object);
59    public boolean matches(java.lang.String);
60    public boolean regionMatches(boolean,int,java.lang.String,int,int);
61    public boolean regionMatches(int,java.lang.String,int,int);
62    public boolean startsWith(java.lang.String);
63    public boolean startsWith(java.lang.String,int);
64    public byte[] getBytes();
65    public byte[] getBytes(java.lang.String);
66    public char charAt(int);
67    public char[] toCharArray();
68    public int compareToIgnoreCase(java.lang.String);
69    public int compareTo(java.lang.Object);
70    public int compareTo(java.lang.String);
71    public int hashCode();
72    public int indexOf(int);
73    public int indexOf(int,int);
74    public int indexOf(java.lang.String);
75    public int indexOf(java.lang.String,int);
76    public int lastIndexOf(int);
77    public int lastIndexOf(int,int);
78    public int lastIndexOf(java.lang.String);
79    public int lastIndexOf(java.lang.String,int);
80    public int length();
81    public java.lang.CharSequence subSequence(int,int);
82    public java.lang.String concat(java.lang.String);
83    public java.lang.String replaceAll(java.lang.String,java.lang.String);
84    public java.lang.String replace(char,char);
85    public java.lang.String replaceFirst(java.lang.String,java.lang.String);
86    public java.lang.String[] split(java.lang.String);
87    public java.lang.String[] split(java.lang.String,int);
88    public java.lang.String substring(int);
89    public java.lang.String substring(int,int);
90    public java.lang.String toLowerCase();
91    public java.lang.String toLowerCase(java.util.Locale);
92    public java.lang.String toString();
93    public java.lang.String toUpperCase();
94    public java.lang.String toUpperCase(java.util.Locale);
95    public java.lang.String trim();
96}
97
98
99# Remove all invocations of StringBuffer methods without side effects
100# whose return values are not used.
101-assumenosideeffects public class java.lang.StringBuffer {
102    public java.lang.StringBuffer();
103    public java.lang.StringBuffer(int);
104    public java.lang.StringBuffer(java.lang.String);
105    public java.lang.String toString();
106    public char charAt(int);
107    public int capacity();
108    public int indexOf(java.lang.String,int);
109    public int lastIndexOf(java.lang.String);
110    public int lastIndexOf(java.lang.String,int);
111    public int length();
112    public java.lang.String substring(int);
113    public java.lang.String substring(int,int);
114}
115