Merge "Add ICU4J APIs for Android"
diff --git a/api/current.txt b/api/current.txt
index c45cc3d..f74de7e 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -14129,6 +14129,4147 @@
 
 }
 
+package android.icu.lang {
+
+  public final class UCharacter implements android.icu.lang.UCharacterEnums.ECharacterCategory android.icu.lang.UCharacterEnums.ECharacterDirection {
+    method public static int charCount(int);
+    method public static final int codePointAt(java.lang.CharSequence, int);
+    method public static final int codePointAt(char[], int);
+    method public static final int codePointAt(char[], int, int);
+    method public static final int codePointBefore(java.lang.CharSequence, int);
+    method public static final int codePointBefore(char[], int);
+    method public static final int codePointBefore(char[], int, int);
+    method public static int codePointCount(java.lang.CharSequence, int, int);
+    method public static int codePointCount(char[], int, int);
+    method public static int digit(int, int);
+    method public static int digit(int);
+    method public static int foldCase(int, boolean);
+    method public static java.lang.String foldCase(java.lang.String, boolean);
+    method public static int foldCase(int, int);
+    method public static final java.lang.String foldCase(java.lang.String, int);
+    method public static char forDigit(int, int);
+    method public static android.icu.util.VersionInfo getAge(int);
+    method public static int getBidiPairedBracket(int);
+    method public static int getCharFromExtendedName(java.lang.String);
+    method public static int getCharFromName(java.lang.String);
+    method public static int getCharFromNameAlias(java.lang.String);
+    method public static int getCodePoint(char, char);
+    method public static int getCodePoint(char);
+    method public static int getCombiningClass(int);
+    method public static int getDirection(int);
+    method public static byte getDirectionality(int);
+    method public static java.lang.String getExtendedName(int);
+    method public static android.icu.util.ValueIterator getExtendedNameIterator();
+    method public static int getHanNumericValue(int);
+    method public static int getIntPropertyMaxValue(int);
+    method public static int getIntPropertyMinValue(int);
+    method public static int getIntPropertyValue(int, int);
+    method public static int getMirror(int);
+    method public static java.lang.String getName(int);
+    method public static java.lang.String getName(java.lang.String, java.lang.String);
+    method public static java.lang.String getNameAlias(int);
+    method public static android.icu.util.ValueIterator getNameIterator();
+    method public static int getNumericValue(int);
+    method public static int getPropertyEnum(java.lang.CharSequence);
+    method public static java.lang.String getPropertyName(int, int);
+    method public static int getPropertyValueEnum(int, java.lang.CharSequence);
+    method public static java.lang.String getPropertyValueName(int, int, int);
+    method public static int getType(int);
+    method public static android.icu.util.RangeValueIterator getTypeIterator();
+    method public static double getUnicodeNumericValue(int);
+    method public static android.icu.util.VersionInfo getUnicodeVersion();
+    method public static boolean hasBinaryProperty(int, int);
+    method public static boolean isBMP(int);
+    method public static boolean isBaseForm(int);
+    method public static boolean isDefined(int);
+    method public static boolean isDigit(int);
+    method public static boolean isHighSurrogate(char);
+    method public static boolean isISOControl(int);
+    method public static boolean isIdentifierIgnorable(int);
+    method public static boolean isJavaIdentifierPart(int);
+    method public static boolean isJavaIdentifierStart(int);
+    method public static boolean isLegal(int);
+    method public static boolean isLegal(java.lang.String);
+    method public static boolean isLetter(int);
+    method public static boolean isLetterOrDigit(int);
+    method public static boolean isLowSurrogate(char);
+    method public static boolean isLowerCase(int);
+    method public static boolean isMirrored(int);
+    method public static boolean isPrintable(int);
+    method public static boolean isSpaceChar(int);
+    method public static boolean isSupplementary(int);
+    method public static final boolean isSupplementaryCodePoint(int);
+    method public static final boolean isSurrogatePair(char, char);
+    method public static boolean isTitleCase(int);
+    method public static boolean isUAlphabetic(int);
+    method public static boolean isULowercase(int);
+    method public static boolean isUUppercase(int);
+    method public static boolean isUWhiteSpace(int);
+    method public static boolean isUnicodeIdentifierPart(int);
+    method public static boolean isUnicodeIdentifierStart(int);
+    method public static boolean isUpperCase(int);
+    method public static final boolean isValidCodePoint(int);
+    method public static boolean isWhitespace(int);
+    method public static int offsetByCodePoints(java.lang.CharSequence, int, int);
+    method public static int offsetByCodePoints(char[], int, int, int, int);
+    method public static final int toChars(int, char[], int);
+    method public static final char[] toChars(int);
+    method public static final int toCodePoint(char, char);
+    method public static int toLowerCase(int);
+    method public static java.lang.String toLowerCase(java.lang.String);
+    method public static java.lang.String toLowerCase(java.util.Locale, java.lang.String);
+    method public static java.lang.String toLowerCase(android.icu.util.ULocale, java.lang.String);
+    method public static java.lang.String toString(int);
+    method public static int toTitleCase(int);
+    method public static java.lang.String toTitleCase(java.lang.String, android.icu.text.BreakIterator);
+    method public static java.lang.String toTitleCase(java.util.Locale, java.lang.String, android.icu.text.BreakIterator);
+    method public static java.lang.String toTitleCase(android.icu.util.ULocale, java.lang.String, android.icu.text.BreakIterator);
+    method public static java.lang.String toTitleCase(android.icu.util.ULocale, java.lang.String, android.icu.text.BreakIterator, int);
+    method public static java.lang.String toTitleCase(java.util.Locale, java.lang.String, android.icu.text.BreakIterator, int);
+    method public static int toUpperCase(int);
+    method public static java.lang.String toUpperCase(java.lang.String);
+    method public static java.lang.String toUpperCase(java.util.Locale, java.lang.String);
+    method public static java.lang.String toUpperCase(android.icu.util.ULocale, java.lang.String);
+    field public static final int FOLD_CASE_DEFAULT = 0; // 0x0
+    field public static final int FOLD_CASE_EXCLUDE_SPECIAL_I = 1; // 0x1
+    field public static final int MAX_CODE_POINT = 1114111; // 0x10ffff
+    field public static final char MAX_HIGH_SURROGATE = 56319; // 0xdbff '\udbff'
+    field public static final char MAX_LOW_SURROGATE = 57343; // 0xdfff '\udfff'
+    field public static final int MAX_RADIX = 36; // 0x24
+    field public static final char MAX_SURROGATE = 57343; // 0xdfff '\udfff'
+    field public static final int MAX_VALUE = 1114111; // 0x10ffff
+    field public static final int MIN_CODE_POINT = 0; // 0x0
+    field public static final char MIN_HIGH_SURROGATE = 55296; // 0xd800 '\ud800'
+    field public static final char MIN_LOW_SURROGATE = 56320; // 0xdc00 '\udc00'
+    field public static final int MIN_RADIX = 2; // 0x2
+    field public static final int MIN_SUPPLEMENTARY_CODE_POINT = 65536; // 0x10000
+    field public static final char MIN_SURROGATE = 55296; // 0xd800 '\ud800'
+    field public static final int MIN_VALUE = 0; // 0x0
+    field public static final double NO_NUMERIC_VALUE = -1.23456789E8;
+    field public static final int REPLACEMENT_CHAR = 65533; // 0xfffd
+    field public static final int SUPPLEMENTARY_MIN_VALUE = 65536; // 0x10000
+    field public static final int TITLECASE_NO_BREAK_ADJUSTMENT = 512; // 0x200
+    field public static final int TITLECASE_NO_LOWERCASE = 256; // 0x100
+  }
+
+  public static abstract interface UCharacter.BidiPairedBracketType {
+    field public static final int CLOSE = 2; // 0x2
+    field public static final int COUNT = 3; // 0x3
+    field public static final int NONE = 0; // 0x0
+    field public static final int OPEN = 1; // 0x1
+  }
+
+  public static abstract interface UCharacter.DecompositionType {
+    field public static final int CANONICAL = 1; // 0x1
+    field public static final int CIRCLE = 3; // 0x3
+    field public static final int COMPAT = 2; // 0x2
+    field public static final int COUNT = 18; // 0x12
+    field public static final int FINAL = 4; // 0x4
+    field public static final int FONT = 5; // 0x5
+    field public static final int FRACTION = 6; // 0x6
+    field public static final int INITIAL = 7; // 0x7
+    field public static final int ISOLATED = 8; // 0x8
+    field public static final int MEDIAL = 9; // 0x9
+    field public static final int NARROW = 10; // 0xa
+    field public static final int NOBREAK = 11; // 0xb
+    field public static final int NONE = 0; // 0x0
+    field public static final int SMALL = 12; // 0xc
+    field public static final int SQUARE = 13; // 0xd
+    field public static final int SUB = 14; // 0xe
+    field public static final int SUPER = 15; // 0xf
+    field public static final int VERTICAL = 16; // 0x10
+    field public static final int WIDE = 17; // 0x11
+  }
+
+  public static abstract interface UCharacter.EastAsianWidth {
+    field public static final int AMBIGUOUS = 1; // 0x1
+    field public static final int COUNT = 6; // 0x6
+    field public static final int FULLWIDTH = 3; // 0x3
+    field public static final int HALFWIDTH = 2; // 0x2
+    field public static final int NARROW = 4; // 0x4
+    field public static final int NEUTRAL = 0; // 0x0
+    field public static final int WIDE = 5; // 0x5
+  }
+
+  public static abstract interface UCharacter.GraphemeClusterBreak {
+    field public static final int CONTROL = 1; // 0x1
+    field public static final int COUNT = 13; // 0xd
+    field public static final int CR = 2; // 0x2
+    field public static final int EXTEND = 3; // 0x3
+    field public static final int L = 4; // 0x4
+    field public static final int LF = 5; // 0x5
+    field public static final int LV = 6; // 0x6
+    field public static final int LVT = 7; // 0x7
+    field public static final int OTHER = 0; // 0x0
+    field public static final int PREPEND = 11; // 0xb
+    field public static final int REGIONAL_INDICATOR = 12; // 0xc
+    field public static final int SPACING_MARK = 10; // 0xa
+    field public static final int T = 8; // 0x8
+    field public static final int V = 9; // 0x9
+  }
+
+  public static abstract interface UCharacter.HangulSyllableType {
+    field public static final int COUNT = 6; // 0x6
+    field public static final int LEADING_JAMO = 1; // 0x1
+    field public static final int LVT_SYLLABLE = 5; // 0x5
+    field public static final int LV_SYLLABLE = 4; // 0x4
+    field public static final int NOT_APPLICABLE = 0; // 0x0
+    field public static final int TRAILING_JAMO = 3; // 0x3
+    field public static final int VOWEL_JAMO = 2; // 0x2
+  }
+
+  public static abstract interface UCharacter.JoiningGroup {
+    field public static final int AIN = 1; // 0x1
+    field public static final int ALAPH = 2; // 0x2
+    field public static final int ALEF = 3; // 0x3
+    field public static final int BEH = 4; // 0x4
+    field public static final int BETH = 5; // 0x5
+    field public static final int BURUSHASKI_YEH_BARREE = 54; // 0x36
+    field public static final int COUNT = 86; // 0x56
+    field public static final int DAL = 6; // 0x6
+    field public static final int DALATH_RISH = 7; // 0x7
+    field public static final int E = 8; // 0x8
+    field public static final int FARSI_YEH = 55; // 0x37
+    field public static final int FE = 51; // 0x33
+    field public static final int FEH = 9; // 0x9
+    field public static final int FINAL_SEMKATH = 10; // 0xa
+    field public static final int GAF = 11; // 0xb
+    field public static final int GAMAL = 12; // 0xc
+    field public static final int HAH = 13; // 0xd
+    field public static final int HAMZA_ON_HEH_GOAL = 14; // 0xe
+    field public static final int HE = 15; // 0xf
+    field public static final int HEH = 16; // 0x10
+    field public static final int HEH_GOAL = 17; // 0x11
+    field public static final int HETH = 18; // 0x12
+    field public static final int KAF = 19; // 0x13
+    field public static final int KAPH = 20; // 0x14
+    field public static final int KHAPH = 52; // 0x34
+    field public static final int KNOTTED_HEH = 21; // 0x15
+    field public static final int LAM = 22; // 0x16
+    field public static final int LAMADH = 23; // 0x17
+    field public static final int MANICHAEAN_ALEPH = 58; // 0x3a
+    field public static final int MANICHAEAN_AYIN = 59; // 0x3b
+    field public static final int MANICHAEAN_BETH = 60; // 0x3c
+    field public static final int MANICHAEAN_DALETH = 61; // 0x3d
+    field public static final int MANICHAEAN_DHAMEDH = 62; // 0x3e
+    field public static final int MANICHAEAN_FIVE = 63; // 0x3f
+    field public static final int MANICHAEAN_GIMEL = 64; // 0x40
+    field public static final int MANICHAEAN_HETH = 65; // 0x41
+    field public static final int MANICHAEAN_HUNDRED = 66; // 0x42
+    field public static final int MANICHAEAN_KAPH = 67; // 0x43
+    field public static final int MANICHAEAN_LAMEDH = 68; // 0x44
+    field public static final int MANICHAEAN_MEM = 69; // 0x45
+    field public static final int MANICHAEAN_NUN = 70; // 0x46
+    field public static final int MANICHAEAN_ONE = 71; // 0x47
+    field public static final int MANICHAEAN_PE = 72; // 0x48
+    field public static final int MANICHAEAN_QOPH = 73; // 0x49
+    field public static final int MANICHAEAN_RESH = 74; // 0x4a
+    field public static final int MANICHAEAN_SADHE = 75; // 0x4b
+    field public static final int MANICHAEAN_SAMEKH = 76; // 0x4c
+    field public static final int MANICHAEAN_TAW = 77; // 0x4d
+    field public static final int MANICHAEAN_TEN = 78; // 0x4e
+    field public static final int MANICHAEAN_TETH = 79; // 0x4f
+    field public static final int MANICHAEAN_THAMEDH = 80; // 0x50
+    field public static final int MANICHAEAN_TWENTY = 81; // 0x51
+    field public static final int MANICHAEAN_WAW = 82; // 0x52
+    field public static final int MANICHAEAN_YODH = 83; // 0x53
+    field public static final int MANICHAEAN_ZAYIN = 84; // 0x54
+    field public static final int MEEM = 24; // 0x18
+    field public static final int MIM = 25; // 0x19
+    field public static final int NOON = 26; // 0x1a
+    field public static final int NO_JOINING_GROUP = 0; // 0x0
+    field public static final int NUN = 27; // 0x1b
+    field public static final int NYA = 56; // 0x38
+    field public static final int PE = 28; // 0x1c
+    field public static final int QAF = 29; // 0x1d
+    field public static final int QAPH = 30; // 0x1e
+    field public static final int REH = 31; // 0x1f
+    field public static final int REVERSED_PE = 32; // 0x20
+    field public static final int ROHINGYA_YEH = 57; // 0x39
+    field public static final int SAD = 33; // 0x21
+    field public static final int SADHE = 34; // 0x22
+    field public static final int SEEN = 35; // 0x23
+    field public static final int SEMKATH = 36; // 0x24
+    field public static final int SHIN = 37; // 0x25
+    field public static final int STRAIGHT_WAW = 85; // 0x55
+    field public static final int SWASH_KAF = 38; // 0x26
+    field public static final int SYRIAC_WAW = 39; // 0x27
+    field public static final int TAH = 40; // 0x28
+    field public static final int TAW = 41; // 0x29
+    field public static final int TEH_MARBUTA = 42; // 0x2a
+    field public static final int TEH_MARBUTA_GOAL = 14; // 0xe
+    field public static final int TETH = 43; // 0x2b
+    field public static final int WAW = 44; // 0x2c
+    field public static final int YEH = 45; // 0x2d
+    field public static final int YEH_BARREE = 46; // 0x2e
+    field public static final int YEH_WITH_TAIL = 47; // 0x2f
+    field public static final int YUDH = 48; // 0x30
+    field public static final int YUDH_HE = 49; // 0x31
+    field public static final int ZAIN = 50; // 0x32
+    field public static final int ZHAIN = 53; // 0x35
+  }
+
+  public static abstract interface UCharacter.JoiningType {
+    field public static final int COUNT = 6; // 0x6
+    field public static final int DUAL_JOINING = 2; // 0x2
+    field public static final int JOIN_CAUSING = 1; // 0x1
+    field public static final int LEFT_JOINING = 3; // 0x3
+    field public static final int NON_JOINING = 0; // 0x0
+    field public static final int RIGHT_JOINING = 4; // 0x4
+    field public static final int TRANSPARENT = 5; // 0x5
+  }
+
+  public static abstract interface UCharacter.LineBreak {
+    field public static final int ALPHABETIC = 2; // 0x2
+    field public static final int AMBIGUOUS = 1; // 0x1
+    field public static final int BREAK_AFTER = 4; // 0x4
+    field public static final int BREAK_BEFORE = 5; // 0x5
+    field public static final int BREAK_BOTH = 3; // 0x3
+    field public static final int BREAK_SYMBOLS = 27; // 0x1b
+    field public static final int CARRIAGE_RETURN = 10; // 0xa
+    field public static final int CLOSE_PARENTHESIS = 36; // 0x24
+    field public static final int CLOSE_PUNCTUATION = 8; // 0x8
+    field public static final int COMBINING_MARK = 9; // 0x9
+    field public static final int COMPLEX_CONTEXT = 24; // 0x18
+    field public static final int CONDITIONAL_JAPANESE_STARTER = 37; // 0x25
+    field public static final int CONTINGENT_BREAK = 7; // 0x7
+    field public static final int COUNT = 40; // 0x28
+    field public static final int EXCLAMATION = 11; // 0xb
+    field public static final int GLUE = 12; // 0xc
+    field public static final int H2 = 31; // 0x1f
+    field public static final int H3 = 32; // 0x20
+    field public static final int HEBREW_LETTER = 38; // 0x26
+    field public static final int HYPHEN = 13; // 0xd
+    field public static final int IDEOGRAPHIC = 14; // 0xe
+    field public static final int INFIX_NUMERIC = 16; // 0x10
+    field public static final int INSEPARABLE = 15; // 0xf
+    field public static final int INSEPERABLE = 15; // 0xf
+    field public static final int JL = 33; // 0x21
+    field public static final int JT = 34; // 0x22
+    field public static final int JV = 35; // 0x23
+    field public static final int LINE_FEED = 17; // 0x11
+    field public static final int MANDATORY_BREAK = 6; // 0x6
+    field public static final int NEXT_LINE = 29; // 0x1d
+    field public static final int NONSTARTER = 18; // 0x12
+    field public static final int NUMERIC = 19; // 0x13
+    field public static final int OPEN_PUNCTUATION = 20; // 0x14
+    field public static final int POSTFIX_NUMERIC = 21; // 0x15
+    field public static final int PREFIX_NUMERIC = 22; // 0x16
+    field public static final int QUOTATION = 23; // 0x17
+    field public static final int REGIONAL_INDICATOR = 39; // 0x27
+    field public static final int SPACE = 26; // 0x1a
+    field public static final int SURROGATE = 25; // 0x19
+    field public static final int UNKNOWN = 0; // 0x0
+    field public static final int WORD_JOINER = 30; // 0x1e
+    field public static final int ZWSPACE = 28; // 0x1c
+  }
+
+  public static abstract interface UCharacter.NumericType {
+    field public static final int COUNT = 4; // 0x4
+    field public static final int DECIMAL = 1; // 0x1
+    field public static final int DIGIT = 2; // 0x2
+    field public static final int NONE = 0; // 0x0
+    field public static final int NUMERIC = 3; // 0x3
+  }
+
+  public static abstract interface UCharacter.SentenceBreak {
+    field public static final int ATERM = 1; // 0x1
+    field public static final int CLOSE = 2; // 0x2
+    field public static final int COUNT = 15; // 0xf
+    field public static final int CR = 11; // 0xb
+    field public static final int EXTEND = 12; // 0xc
+    field public static final int FORMAT = 3; // 0x3
+    field public static final int LF = 13; // 0xd
+    field public static final int LOWER = 4; // 0x4
+    field public static final int NUMERIC = 5; // 0x5
+    field public static final int OLETTER = 6; // 0x6
+    field public static final int OTHER = 0; // 0x0
+    field public static final int SCONTINUE = 14; // 0xe
+    field public static final int SEP = 7; // 0x7
+    field public static final int SP = 8; // 0x8
+    field public static final int STERM = 9; // 0x9
+    field public static final int UPPER = 10; // 0xa
+  }
+
+  public static final class UCharacter.UnicodeBlock extends java.lang.Character.Subset {
+    method public static final android.icu.lang.UCharacter.UnicodeBlock forName(java.lang.String);
+    method public int getID();
+    method public static android.icu.lang.UCharacter.UnicodeBlock getInstance(int);
+    method public static android.icu.lang.UCharacter.UnicodeBlock of(int);
+    field public static final android.icu.lang.UCharacter.UnicodeBlock AEGEAN_NUMBERS;
+    field public static final int AEGEAN_NUMBERS_ID = 119; // 0x77
+    field public static final android.icu.lang.UCharacter.UnicodeBlock AHOM;
+    field public static final int AHOM_ID = 253; // 0xfd
+    field public static final android.icu.lang.UCharacter.UnicodeBlock ALCHEMICAL_SYMBOLS;
+    field public static final int ALCHEMICAL_SYMBOLS_ID = 208; // 0xd0
+    field public static final android.icu.lang.UCharacter.UnicodeBlock ALPHABETIC_PRESENTATION_FORMS;
+    field public static final int ALPHABETIC_PRESENTATION_FORMS_ID = 80; // 0x50
+    field public static final android.icu.lang.UCharacter.UnicodeBlock ANATOLIAN_HIEROGLYPHS;
+    field public static final int ANATOLIAN_HIEROGLYPHS_ID = 254; // 0xfe
+    field public static final android.icu.lang.UCharacter.UnicodeBlock ANCIENT_GREEK_MUSICAL_NOTATION;
+    field public static final int ANCIENT_GREEK_MUSICAL_NOTATION_ID = 126; // 0x7e
+    field public static final android.icu.lang.UCharacter.UnicodeBlock ANCIENT_GREEK_NUMBERS;
+    field public static final int ANCIENT_GREEK_NUMBERS_ID = 127; // 0x7f
+    field public static final android.icu.lang.UCharacter.UnicodeBlock ANCIENT_SYMBOLS;
+    field public static final int ANCIENT_SYMBOLS_ID = 165; // 0xa5
+    field public static final android.icu.lang.UCharacter.UnicodeBlock ARABIC;
+    field public static final android.icu.lang.UCharacter.UnicodeBlock ARABIC_EXTENDED_A;
+    field public static final int ARABIC_EXTENDED_A_ID = 210; // 0xd2
+    field public static final int ARABIC_ID = 12; // 0xc
+    field public static final android.icu.lang.UCharacter.UnicodeBlock ARABIC_MATHEMATICAL_ALPHABETIC_SYMBOLS;
+    field public static final int ARABIC_MATHEMATICAL_ALPHABETIC_SYMBOLS_ID = 211; // 0xd3
+    field public static final android.icu.lang.UCharacter.UnicodeBlock ARABIC_PRESENTATION_FORMS_A;
+    field public static final int ARABIC_PRESENTATION_FORMS_A_ID = 81; // 0x51
+    field public static final android.icu.lang.UCharacter.UnicodeBlock ARABIC_PRESENTATION_FORMS_B;
+    field public static final int ARABIC_PRESENTATION_FORMS_B_ID = 85; // 0x55
+    field public static final android.icu.lang.UCharacter.UnicodeBlock ARABIC_SUPPLEMENT;
+    field public static final int ARABIC_SUPPLEMENT_ID = 128; // 0x80
+    field public static final android.icu.lang.UCharacter.UnicodeBlock ARMENIAN;
+    field public static final int ARMENIAN_ID = 10; // 0xa
+    field public static final android.icu.lang.UCharacter.UnicodeBlock ARROWS;
+    field public static final int ARROWS_ID = 46; // 0x2e
+    field public static final android.icu.lang.UCharacter.UnicodeBlock AVESTAN;
+    field public static final int AVESTAN_ID = 188; // 0xbc
+    field public static final android.icu.lang.UCharacter.UnicodeBlock BALINESE;
+    field public static final int BALINESE_ID = 147; // 0x93
+    field public static final android.icu.lang.UCharacter.UnicodeBlock BAMUM;
+    field public static final int BAMUM_ID = 177; // 0xb1
+    field public static final android.icu.lang.UCharacter.UnicodeBlock BAMUM_SUPPLEMENT;
+    field public static final int BAMUM_SUPPLEMENT_ID = 202; // 0xca
+    field public static final android.icu.lang.UCharacter.UnicodeBlock BASIC_LATIN;
+    field public static final int BASIC_LATIN_ID = 1; // 0x1
+    field public static final android.icu.lang.UCharacter.UnicodeBlock BASSA_VAH;
+    field public static final int BASSA_VAH_ID = 221; // 0xdd
+    field public static final android.icu.lang.UCharacter.UnicodeBlock BATAK;
+    field public static final int BATAK_ID = 199; // 0xc7
+    field public static final android.icu.lang.UCharacter.UnicodeBlock BENGALI;
+    field public static final int BENGALI_ID = 16; // 0x10
+    field public static final android.icu.lang.UCharacter.UnicodeBlock BLOCK_ELEMENTS;
+    field public static final int BLOCK_ELEMENTS_ID = 53; // 0x35
+    field public static final android.icu.lang.UCharacter.UnicodeBlock BOPOMOFO;
+    field public static final android.icu.lang.UCharacter.UnicodeBlock BOPOMOFO_EXTENDED;
+    field public static final int BOPOMOFO_EXTENDED_ID = 67; // 0x43
+    field public static final int BOPOMOFO_ID = 64; // 0x40
+    field public static final android.icu.lang.UCharacter.UnicodeBlock BOX_DRAWING;
+    field public static final int BOX_DRAWING_ID = 52; // 0x34
+    field public static final android.icu.lang.UCharacter.UnicodeBlock BRAHMI;
+    field public static final int BRAHMI_ID = 201; // 0xc9
+    field public static final android.icu.lang.UCharacter.UnicodeBlock BRAILLE_PATTERNS;
+    field public static final int BRAILLE_PATTERNS_ID = 57; // 0x39
+    field public static final android.icu.lang.UCharacter.UnicodeBlock BUGINESE;
+    field public static final int BUGINESE_ID = 129; // 0x81
+    field public static final android.icu.lang.UCharacter.UnicodeBlock BUHID;
+    field public static final int BUHID_ID = 100; // 0x64
+    field public static final android.icu.lang.UCharacter.UnicodeBlock BYZANTINE_MUSICAL_SYMBOLS;
+    field public static final int BYZANTINE_MUSICAL_SYMBOLS_ID = 91; // 0x5b
+    field public static final android.icu.lang.UCharacter.UnicodeBlock CARIAN;
+    field public static final int CARIAN_ID = 168; // 0xa8
+    field public static final android.icu.lang.UCharacter.UnicodeBlock CAUCASIAN_ALBANIAN;
+    field public static final int CAUCASIAN_ALBANIAN_ID = 222; // 0xde
+    field public static final android.icu.lang.UCharacter.UnicodeBlock CHAKMA;
+    field public static final int CHAKMA_ID = 212; // 0xd4
+    field public static final android.icu.lang.UCharacter.UnicodeBlock CHAM;
+    field public static final int CHAM_ID = 164; // 0xa4
+    field public static final android.icu.lang.UCharacter.UnicodeBlock CHEROKEE;
+    field public static final int CHEROKEE_ID = 32; // 0x20
+    field public static final android.icu.lang.UCharacter.UnicodeBlock CHEROKEE_SUPPLEMENT;
+    field public static final int CHEROKEE_SUPPLEMENT_ID = 255; // 0xff
+    field public static final android.icu.lang.UCharacter.UnicodeBlock CJK_COMPATIBILITY;
+    field public static final android.icu.lang.UCharacter.UnicodeBlock CJK_COMPATIBILITY_FORMS;
+    field public static final int CJK_COMPATIBILITY_FORMS_ID = 83; // 0x53
+    field public static final int CJK_COMPATIBILITY_ID = 69; // 0x45
+    field public static final android.icu.lang.UCharacter.UnicodeBlock CJK_COMPATIBILITY_IDEOGRAPHS;
+    field public static final int CJK_COMPATIBILITY_IDEOGRAPHS_ID = 79; // 0x4f
+    field public static final android.icu.lang.UCharacter.UnicodeBlock CJK_COMPATIBILITY_IDEOGRAPHS_SUPPLEMENT;
+    field public static final int CJK_COMPATIBILITY_IDEOGRAPHS_SUPPLEMENT_ID = 95; // 0x5f
+    field public static final android.icu.lang.UCharacter.UnicodeBlock CJK_RADICALS_SUPPLEMENT;
+    field public static final int CJK_RADICALS_SUPPLEMENT_ID = 58; // 0x3a
+    field public static final android.icu.lang.UCharacter.UnicodeBlock CJK_STROKES;
+    field public static final int CJK_STROKES_ID = 130; // 0x82
+    field public static final android.icu.lang.UCharacter.UnicodeBlock CJK_SYMBOLS_AND_PUNCTUATION;
+    field public static final int CJK_SYMBOLS_AND_PUNCTUATION_ID = 61; // 0x3d
+    field public static final android.icu.lang.UCharacter.UnicodeBlock CJK_UNIFIED_IDEOGRAPHS;
+    field public static final android.icu.lang.UCharacter.UnicodeBlock CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A;
+    field public static final int CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A_ID = 70; // 0x46
+    field public static final android.icu.lang.UCharacter.UnicodeBlock CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B;
+    field public static final int CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B_ID = 94; // 0x5e
+    field public static final android.icu.lang.UCharacter.UnicodeBlock CJK_UNIFIED_IDEOGRAPHS_EXTENSION_C;
+    field public static final int CJK_UNIFIED_IDEOGRAPHS_EXTENSION_C_ID = 197; // 0xc5
+    field public static final android.icu.lang.UCharacter.UnicodeBlock CJK_UNIFIED_IDEOGRAPHS_EXTENSION_D;
+    field public static final int CJK_UNIFIED_IDEOGRAPHS_EXTENSION_D_ID = 209; // 0xd1
+    field public static final android.icu.lang.UCharacter.UnicodeBlock CJK_UNIFIED_IDEOGRAPHS_EXTENSION_E;
+    field public static final int CJK_UNIFIED_IDEOGRAPHS_EXTENSION_E_ID = 256; // 0x100
+    field public static final int CJK_UNIFIED_IDEOGRAPHS_ID = 71; // 0x47
+    field public static final android.icu.lang.UCharacter.UnicodeBlock COMBINING_DIACRITICAL_MARKS;
+    field public static final android.icu.lang.UCharacter.UnicodeBlock COMBINING_DIACRITICAL_MARKS_EXTENDED;
+    field public static final int COMBINING_DIACRITICAL_MARKS_EXTENDED_ID = 224; // 0xe0
+    field public static final int COMBINING_DIACRITICAL_MARKS_ID = 7; // 0x7
+    field public static final android.icu.lang.UCharacter.UnicodeBlock COMBINING_DIACRITICAL_MARKS_SUPPLEMENT;
+    field public static final int COMBINING_DIACRITICAL_MARKS_SUPPLEMENT_ID = 131; // 0x83
+    field public static final android.icu.lang.UCharacter.UnicodeBlock COMBINING_HALF_MARKS;
+    field public static final int COMBINING_HALF_MARKS_ID = 82; // 0x52
+    field public static final android.icu.lang.UCharacter.UnicodeBlock COMBINING_MARKS_FOR_SYMBOLS;
+    field public static final int COMBINING_MARKS_FOR_SYMBOLS_ID = 43; // 0x2b
+    field public static final android.icu.lang.UCharacter.UnicodeBlock COMMON_INDIC_NUMBER_FORMS;
+    field public static final int COMMON_INDIC_NUMBER_FORMS_ID = 178; // 0xb2
+    field public static final android.icu.lang.UCharacter.UnicodeBlock CONTROL_PICTURES;
+    field public static final int CONTROL_PICTURES_ID = 49; // 0x31
+    field public static final android.icu.lang.UCharacter.UnicodeBlock COPTIC;
+    field public static final android.icu.lang.UCharacter.UnicodeBlock COPTIC_EPACT_NUMBERS;
+    field public static final int COPTIC_EPACT_NUMBERS_ID = 223; // 0xdf
+    field public static final int COPTIC_ID = 132; // 0x84
+    field public static final int COUNT = 263; // 0x107
+    field public static final android.icu.lang.UCharacter.UnicodeBlock COUNTING_ROD_NUMERALS;
+    field public static final int COUNTING_ROD_NUMERALS_ID = 154; // 0x9a
+    field public static final android.icu.lang.UCharacter.UnicodeBlock CUNEIFORM;
+    field public static final int CUNEIFORM_ID = 152; // 0x98
+    field public static final android.icu.lang.UCharacter.UnicodeBlock CUNEIFORM_NUMBERS_AND_PUNCTUATION;
+    field public static final int CUNEIFORM_NUMBERS_AND_PUNCTUATION_ID = 153; // 0x99
+    field public static final android.icu.lang.UCharacter.UnicodeBlock CURRENCY_SYMBOLS;
+    field public static final int CURRENCY_SYMBOLS_ID = 42; // 0x2a
+    field public static final android.icu.lang.UCharacter.UnicodeBlock CYPRIOT_SYLLABARY;
+    field public static final int CYPRIOT_SYLLABARY_ID = 123; // 0x7b
+    field public static final android.icu.lang.UCharacter.UnicodeBlock CYRILLIC;
+    field public static final android.icu.lang.UCharacter.UnicodeBlock CYRILLIC_EXTENDED_A;
+    field public static final int CYRILLIC_EXTENDED_A_ID = 158; // 0x9e
+    field public static final android.icu.lang.UCharacter.UnicodeBlock CYRILLIC_EXTENDED_B;
+    field public static final int CYRILLIC_EXTENDED_B_ID = 160; // 0xa0
+    field public static final int CYRILLIC_ID = 9; // 0x9
+    field public static final android.icu.lang.UCharacter.UnicodeBlock CYRILLIC_SUPPLEMENT;
+    field public static final android.icu.lang.UCharacter.UnicodeBlock CYRILLIC_SUPPLEMENTARY;
+    field public static final int CYRILLIC_SUPPLEMENTARY_ID = 97; // 0x61
+    field public static final int CYRILLIC_SUPPLEMENT_ID = 97; // 0x61
+    field public static final android.icu.lang.UCharacter.UnicodeBlock DESERET;
+    field public static final int DESERET_ID = 90; // 0x5a
+    field public static final android.icu.lang.UCharacter.UnicodeBlock DEVANAGARI;
+    field public static final android.icu.lang.UCharacter.UnicodeBlock DEVANAGARI_EXTENDED;
+    field public static final int DEVANAGARI_EXTENDED_ID = 179; // 0xb3
+    field public static final int DEVANAGARI_ID = 15; // 0xf
+    field public static final android.icu.lang.UCharacter.UnicodeBlock DINGBATS;
+    field public static final int DINGBATS_ID = 56; // 0x38
+    field public static final android.icu.lang.UCharacter.UnicodeBlock DOMINO_TILES;
+    field public static final int DOMINO_TILES_ID = 171; // 0xab
+    field public static final android.icu.lang.UCharacter.UnicodeBlock DUPLOYAN;
+    field public static final int DUPLOYAN_ID = 225; // 0xe1
+    field public static final android.icu.lang.UCharacter.UnicodeBlock EARLY_DYNASTIC_CUNEIFORM;
+    field public static final int EARLY_DYNASTIC_CUNEIFORM_ID = 257; // 0x101
+    field public static final android.icu.lang.UCharacter.UnicodeBlock EGYPTIAN_HIEROGLYPHS;
+    field public static final int EGYPTIAN_HIEROGLYPHS_ID = 194; // 0xc2
+    field public static final android.icu.lang.UCharacter.UnicodeBlock ELBASAN;
+    field public static final int ELBASAN_ID = 226; // 0xe2
+    field public static final android.icu.lang.UCharacter.UnicodeBlock EMOTICONS;
+    field public static final int EMOTICONS_ID = 206; // 0xce
+    field public static final android.icu.lang.UCharacter.UnicodeBlock ENCLOSED_ALPHANUMERICS;
+    field public static final int ENCLOSED_ALPHANUMERICS_ID = 51; // 0x33
+    field public static final android.icu.lang.UCharacter.UnicodeBlock ENCLOSED_ALPHANUMERIC_SUPPLEMENT;
+    field public static final int ENCLOSED_ALPHANUMERIC_SUPPLEMENT_ID = 195; // 0xc3
+    field public static final android.icu.lang.UCharacter.UnicodeBlock ENCLOSED_CJK_LETTERS_AND_MONTHS;
+    field public static final int ENCLOSED_CJK_LETTERS_AND_MONTHS_ID = 68; // 0x44
+    field public static final android.icu.lang.UCharacter.UnicodeBlock ENCLOSED_IDEOGRAPHIC_SUPPLEMENT;
+    field public static final int ENCLOSED_IDEOGRAPHIC_SUPPLEMENT_ID = 196; // 0xc4
+    field public static final android.icu.lang.UCharacter.UnicodeBlock ETHIOPIC;
+    field public static final android.icu.lang.UCharacter.UnicodeBlock ETHIOPIC_EXTENDED;
+    field public static final android.icu.lang.UCharacter.UnicodeBlock ETHIOPIC_EXTENDED_A;
+    field public static final int ETHIOPIC_EXTENDED_A_ID = 200; // 0xc8
+    field public static final int ETHIOPIC_EXTENDED_ID = 133; // 0x85
+    field public static final int ETHIOPIC_ID = 31; // 0x1f
+    field public static final android.icu.lang.UCharacter.UnicodeBlock ETHIOPIC_SUPPLEMENT;
+    field public static final int ETHIOPIC_SUPPLEMENT_ID = 134; // 0x86
+    field public static final android.icu.lang.UCharacter.UnicodeBlock GENERAL_PUNCTUATION;
+    field public static final int GENERAL_PUNCTUATION_ID = 40; // 0x28
+    field public static final android.icu.lang.UCharacter.UnicodeBlock GEOMETRIC_SHAPES;
+    field public static final android.icu.lang.UCharacter.UnicodeBlock GEOMETRIC_SHAPES_EXTENDED;
+    field public static final int GEOMETRIC_SHAPES_EXTENDED_ID = 227; // 0xe3
+    field public static final int GEOMETRIC_SHAPES_ID = 54; // 0x36
+    field public static final android.icu.lang.UCharacter.UnicodeBlock GEORGIAN;
+    field public static final int GEORGIAN_ID = 29; // 0x1d
+    field public static final android.icu.lang.UCharacter.UnicodeBlock GEORGIAN_SUPPLEMENT;
+    field public static final int GEORGIAN_SUPPLEMENT_ID = 135; // 0x87
+    field public static final android.icu.lang.UCharacter.UnicodeBlock GLAGOLITIC;
+    field public static final int GLAGOLITIC_ID = 136; // 0x88
+    field public static final android.icu.lang.UCharacter.UnicodeBlock GOTHIC;
+    field public static final int GOTHIC_ID = 89; // 0x59
+    field public static final android.icu.lang.UCharacter.UnicodeBlock GRANTHA;
+    field public static final int GRANTHA_ID = 228; // 0xe4
+    field public static final android.icu.lang.UCharacter.UnicodeBlock GREEK;
+    field public static final android.icu.lang.UCharacter.UnicodeBlock GREEK_EXTENDED;
+    field public static final int GREEK_EXTENDED_ID = 39; // 0x27
+    field public static final int GREEK_ID = 8; // 0x8
+    field public static final android.icu.lang.UCharacter.UnicodeBlock GUJARATI;
+    field public static final int GUJARATI_ID = 18; // 0x12
+    field public static final android.icu.lang.UCharacter.UnicodeBlock GURMUKHI;
+    field public static final int GURMUKHI_ID = 17; // 0x11
+    field public static final android.icu.lang.UCharacter.UnicodeBlock HALFWIDTH_AND_FULLWIDTH_FORMS;
+    field public static final int HALFWIDTH_AND_FULLWIDTH_FORMS_ID = 87; // 0x57
+    field public static final android.icu.lang.UCharacter.UnicodeBlock HANGUL_COMPATIBILITY_JAMO;
+    field public static final int HANGUL_COMPATIBILITY_JAMO_ID = 65; // 0x41
+    field public static final android.icu.lang.UCharacter.UnicodeBlock HANGUL_JAMO;
+    field public static final android.icu.lang.UCharacter.UnicodeBlock HANGUL_JAMO_EXTENDED_A;
+    field public static final int HANGUL_JAMO_EXTENDED_A_ID = 180; // 0xb4
+    field public static final android.icu.lang.UCharacter.UnicodeBlock HANGUL_JAMO_EXTENDED_B;
+    field public static final int HANGUL_JAMO_EXTENDED_B_ID = 185; // 0xb9
+    field public static final int HANGUL_JAMO_ID = 30; // 0x1e
+    field public static final android.icu.lang.UCharacter.UnicodeBlock HANGUL_SYLLABLES;
+    field public static final int HANGUL_SYLLABLES_ID = 74; // 0x4a
+    field public static final android.icu.lang.UCharacter.UnicodeBlock HANUNOO;
+    field public static final int HANUNOO_ID = 99; // 0x63
+    field public static final android.icu.lang.UCharacter.UnicodeBlock HATRAN;
+    field public static final int HATRAN_ID = 258; // 0x102
+    field public static final android.icu.lang.UCharacter.UnicodeBlock HEBREW;
+    field public static final int HEBREW_ID = 11; // 0xb
+    field public static final android.icu.lang.UCharacter.UnicodeBlock HIGH_PRIVATE_USE_SURROGATES;
+    field public static final int HIGH_PRIVATE_USE_SURROGATES_ID = 76; // 0x4c
+    field public static final android.icu.lang.UCharacter.UnicodeBlock HIGH_SURROGATES;
+    field public static final int HIGH_SURROGATES_ID = 75; // 0x4b
+    field public static final android.icu.lang.UCharacter.UnicodeBlock HIRAGANA;
+    field public static final int HIRAGANA_ID = 62; // 0x3e
+    field public static final android.icu.lang.UCharacter.UnicodeBlock IDEOGRAPHIC_DESCRIPTION_CHARACTERS;
+    field public static final int IDEOGRAPHIC_DESCRIPTION_CHARACTERS_ID = 60; // 0x3c
+    field public static final android.icu.lang.UCharacter.UnicodeBlock IMPERIAL_ARAMAIC;
+    field public static final int IMPERIAL_ARAMAIC_ID = 186; // 0xba
+    field public static final android.icu.lang.UCharacter.UnicodeBlock INSCRIPTIONAL_PAHLAVI;
+    field public static final int INSCRIPTIONAL_PAHLAVI_ID = 190; // 0xbe
+    field public static final android.icu.lang.UCharacter.UnicodeBlock INSCRIPTIONAL_PARTHIAN;
+    field public static final int INSCRIPTIONAL_PARTHIAN_ID = 189; // 0xbd
+    field public static final android.icu.lang.UCharacter.UnicodeBlock INVALID_CODE;
+    field public static final int INVALID_CODE_ID = -1; // 0xffffffff
+    field public static final android.icu.lang.UCharacter.UnicodeBlock IPA_EXTENSIONS;
+    field public static final int IPA_EXTENSIONS_ID = 5; // 0x5
+    field public static final android.icu.lang.UCharacter.UnicodeBlock JAVANESE;
+    field public static final int JAVANESE_ID = 181; // 0xb5
+    field public static final android.icu.lang.UCharacter.UnicodeBlock KAITHI;
+    field public static final int KAITHI_ID = 193; // 0xc1
+    field public static final android.icu.lang.UCharacter.UnicodeBlock KANA_SUPPLEMENT;
+    field public static final int KANA_SUPPLEMENT_ID = 203; // 0xcb
+    field public static final android.icu.lang.UCharacter.UnicodeBlock KANBUN;
+    field public static final int KANBUN_ID = 66; // 0x42
+    field public static final android.icu.lang.UCharacter.UnicodeBlock KANGXI_RADICALS;
+    field public static final int KANGXI_RADICALS_ID = 59; // 0x3b
+    field public static final android.icu.lang.UCharacter.UnicodeBlock KANNADA;
+    field public static final int KANNADA_ID = 22; // 0x16
+    field public static final android.icu.lang.UCharacter.UnicodeBlock KATAKANA;
+    field public static final int KATAKANA_ID = 63; // 0x3f
+    field public static final android.icu.lang.UCharacter.UnicodeBlock KATAKANA_PHONETIC_EXTENSIONS;
+    field public static final int KATAKANA_PHONETIC_EXTENSIONS_ID = 107; // 0x6b
+    field public static final android.icu.lang.UCharacter.UnicodeBlock KAYAH_LI;
+    field public static final int KAYAH_LI_ID = 162; // 0xa2
+    field public static final android.icu.lang.UCharacter.UnicodeBlock KHAROSHTHI;
+    field public static final int KHAROSHTHI_ID = 137; // 0x89
+    field public static final android.icu.lang.UCharacter.UnicodeBlock KHMER;
+    field public static final int KHMER_ID = 36; // 0x24
+    field public static final android.icu.lang.UCharacter.UnicodeBlock KHMER_SYMBOLS;
+    field public static final int KHMER_SYMBOLS_ID = 113; // 0x71
+    field public static final android.icu.lang.UCharacter.UnicodeBlock KHOJKI;
+    field public static final int KHOJKI_ID = 229; // 0xe5
+    field public static final android.icu.lang.UCharacter.UnicodeBlock KHUDAWADI;
+    field public static final int KHUDAWADI_ID = 230; // 0xe6
+    field public static final android.icu.lang.UCharacter.UnicodeBlock LAO;
+    field public static final int LAO_ID = 26; // 0x1a
+    field public static final android.icu.lang.UCharacter.UnicodeBlock LATIN_1_SUPPLEMENT;
+    field public static final int LATIN_1_SUPPLEMENT_ID = 2; // 0x2
+    field public static final android.icu.lang.UCharacter.UnicodeBlock LATIN_EXTENDED_A;
+    field public static final android.icu.lang.UCharacter.UnicodeBlock LATIN_EXTENDED_ADDITIONAL;
+    field public static final int LATIN_EXTENDED_ADDITIONAL_ID = 38; // 0x26
+    field public static final int LATIN_EXTENDED_A_ID = 3; // 0x3
+    field public static final android.icu.lang.UCharacter.UnicodeBlock LATIN_EXTENDED_B;
+    field public static final int LATIN_EXTENDED_B_ID = 4; // 0x4
+    field public static final android.icu.lang.UCharacter.UnicodeBlock LATIN_EXTENDED_C;
+    field public static final int LATIN_EXTENDED_C_ID = 148; // 0x94
+    field public static final android.icu.lang.UCharacter.UnicodeBlock LATIN_EXTENDED_D;
+    field public static final int LATIN_EXTENDED_D_ID = 149; // 0x95
+    field public static final android.icu.lang.UCharacter.UnicodeBlock LATIN_EXTENDED_E;
+    field public static final int LATIN_EXTENDED_E_ID = 231; // 0xe7
+    field public static final android.icu.lang.UCharacter.UnicodeBlock LEPCHA;
+    field public static final int LEPCHA_ID = 156; // 0x9c
+    field public static final android.icu.lang.UCharacter.UnicodeBlock LETTERLIKE_SYMBOLS;
+    field public static final int LETTERLIKE_SYMBOLS_ID = 44; // 0x2c
+    field public static final android.icu.lang.UCharacter.UnicodeBlock LIMBU;
+    field public static final int LIMBU_ID = 111; // 0x6f
+    field public static final android.icu.lang.UCharacter.UnicodeBlock LINEAR_A;
+    field public static final int LINEAR_A_ID = 232; // 0xe8
+    field public static final android.icu.lang.UCharacter.UnicodeBlock LINEAR_B_IDEOGRAMS;
+    field public static final int LINEAR_B_IDEOGRAMS_ID = 118; // 0x76
+    field public static final android.icu.lang.UCharacter.UnicodeBlock LINEAR_B_SYLLABARY;
+    field public static final int LINEAR_B_SYLLABARY_ID = 117; // 0x75
+    field public static final android.icu.lang.UCharacter.UnicodeBlock LISU;
+    field public static final int LISU_ID = 176; // 0xb0
+    field public static final android.icu.lang.UCharacter.UnicodeBlock LOW_SURROGATES;
+    field public static final int LOW_SURROGATES_ID = 77; // 0x4d
+    field public static final android.icu.lang.UCharacter.UnicodeBlock LYCIAN;
+    field public static final int LYCIAN_ID = 167; // 0xa7
+    field public static final android.icu.lang.UCharacter.UnicodeBlock LYDIAN;
+    field public static final int LYDIAN_ID = 169; // 0xa9
+    field public static final android.icu.lang.UCharacter.UnicodeBlock MAHAJANI;
+    field public static final int MAHAJANI_ID = 233; // 0xe9
+    field public static final android.icu.lang.UCharacter.UnicodeBlock MAHJONG_TILES;
+    field public static final int MAHJONG_TILES_ID = 170; // 0xaa
+    field public static final android.icu.lang.UCharacter.UnicodeBlock MALAYALAM;
+    field public static final int MALAYALAM_ID = 23; // 0x17
+    field public static final android.icu.lang.UCharacter.UnicodeBlock MANDAIC;
+    field public static final int MANDAIC_ID = 198; // 0xc6
+    field public static final android.icu.lang.UCharacter.UnicodeBlock MANICHAEAN;
+    field public static final int MANICHAEAN_ID = 234; // 0xea
+    field public static final android.icu.lang.UCharacter.UnicodeBlock MATHEMATICAL_ALPHANUMERIC_SYMBOLS;
+    field public static final int MATHEMATICAL_ALPHANUMERIC_SYMBOLS_ID = 93; // 0x5d
+    field public static final android.icu.lang.UCharacter.UnicodeBlock MATHEMATICAL_OPERATORS;
+    field public static final int MATHEMATICAL_OPERATORS_ID = 47; // 0x2f
+    field public static final android.icu.lang.UCharacter.UnicodeBlock MEETEI_MAYEK;
+    field public static final android.icu.lang.UCharacter.UnicodeBlock MEETEI_MAYEK_EXTENSIONS;
+    field public static final int MEETEI_MAYEK_EXTENSIONS_ID = 213; // 0xd5
+    field public static final int MEETEI_MAYEK_ID = 184; // 0xb8
+    field public static final android.icu.lang.UCharacter.UnicodeBlock MENDE_KIKAKUI;
+    field public static final int MENDE_KIKAKUI_ID = 235; // 0xeb
+    field public static final android.icu.lang.UCharacter.UnicodeBlock MEROITIC_CURSIVE;
+    field public static final int MEROITIC_CURSIVE_ID = 214; // 0xd6
+    field public static final android.icu.lang.UCharacter.UnicodeBlock MEROITIC_HIEROGLYPHS;
+    field public static final int MEROITIC_HIEROGLYPHS_ID = 215; // 0xd7
+    field public static final android.icu.lang.UCharacter.UnicodeBlock MIAO;
+    field public static final int MIAO_ID = 216; // 0xd8
+    field public static final android.icu.lang.UCharacter.UnicodeBlock MISCELLANEOUS_MATHEMATICAL_SYMBOLS_A;
+    field public static final int MISCELLANEOUS_MATHEMATICAL_SYMBOLS_A_ID = 102; // 0x66
+    field public static final android.icu.lang.UCharacter.UnicodeBlock MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B;
+    field public static final int MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B_ID = 105; // 0x69
+    field public static final android.icu.lang.UCharacter.UnicodeBlock MISCELLANEOUS_SYMBOLS;
+    field public static final android.icu.lang.UCharacter.UnicodeBlock MISCELLANEOUS_SYMBOLS_AND_ARROWS;
+    field public static final int MISCELLANEOUS_SYMBOLS_AND_ARROWS_ID = 115; // 0x73
+    field public static final android.icu.lang.UCharacter.UnicodeBlock MISCELLANEOUS_SYMBOLS_AND_PICTOGRAPHS;
+    field public static final int MISCELLANEOUS_SYMBOLS_AND_PICTOGRAPHS_ID = 205; // 0xcd
+    field public static final int MISCELLANEOUS_SYMBOLS_ID = 55; // 0x37
+    field public static final android.icu.lang.UCharacter.UnicodeBlock MISCELLANEOUS_TECHNICAL;
+    field public static final int MISCELLANEOUS_TECHNICAL_ID = 48; // 0x30
+    field public static final android.icu.lang.UCharacter.UnicodeBlock MODI;
+    field public static final android.icu.lang.UCharacter.UnicodeBlock MODIFIER_TONE_LETTERS;
+    field public static final int MODIFIER_TONE_LETTERS_ID = 138; // 0x8a
+    field public static final int MODI_ID = 236; // 0xec
+    field public static final android.icu.lang.UCharacter.UnicodeBlock MONGOLIAN;
+    field public static final int MONGOLIAN_ID = 37; // 0x25
+    field public static final android.icu.lang.UCharacter.UnicodeBlock MRO;
+    field public static final int MRO_ID = 237; // 0xed
+    field public static final android.icu.lang.UCharacter.UnicodeBlock MULTANI;
+    field public static final int MULTANI_ID = 259; // 0x103
+    field public static final android.icu.lang.UCharacter.UnicodeBlock MUSICAL_SYMBOLS;
+    field public static final int MUSICAL_SYMBOLS_ID = 92; // 0x5c
+    field public static final android.icu.lang.UCharacter.UnicodeBlock MYANMAR;
+    field public static final android.icu.lang.UCharacter.UnicodeBlock MYANMAR_EXTENDED_A;
+    field public static final int MYANMAR_EXTENDED_A_ID = 182; // 0xb6
+    field public static final android.icu.lang.UCharacter.UnicodeBlock MYANMAR_EXTENDED_B;
+    field public static final int MYANMAR_EXTENDED_B_ID = 238; // 0xee
+    field public static final int MYANMAR_ID = 28; // 0x1c
+    field public static final android.icu.lang.UCharacter.UnicodeBlock NABATAEAN;
+    field public static final int NABATAEAN_ID = 239; // 0xef
+    field public static final android.icu.lang.UCharacter.UnicodeBlock NEW_TAI_LUE;
+    field public static final int NEW_TAI_LUE_ID = 139; // 0x8b
+    field public static final android.icu.lang.UCharacter.UnicodeBlock NKO;
+    field public static final int NKO_ID = 146; // 0x92
+    field public static final android.icu.lang.UCharacter.UnicodeBlock NO_BLOCK;
+    field public static final android.icu.lang.UCharacter.UnicodeBlock NUMBER_FORMS;
+    field public static final int NUMBER_FORMS_ID = 45; // 0x2d
+    field public static final android.icu.lang.UCharacter.UnicodeBlock OGHAM;
+    field public static final int OGHAM_ID = 34; // 0x22
+    field public static final android.icu.lang.UCharacter.UnicodeBlock OLD_HUNGARIAN;
+    field public static final int OLD_HUNGARIAN_ID = 260; // 0x104
+    field public static final android.icu.lang.UCharacter.UnicodeBlock OLD_ITALIC;
+    field public static final int OLD_ITALIC_ID = 88; // 0x58
+    field public static final android.icu.lang.UCharacter.UnicodeBlock OLD_NORTH_ARABIAN;
+    field public static final int OLD_NORTH_ARABIAN_ID = 240; // 0xf0
+    field public static final android.icu.lang.UCharacter.UnicodeBlock OLD_PERMIC;
+    field public static final int OLD_PERMIC_ID = 241; // 0xf1
+    field public static final android.icu.lang.UCharacter.UnicodeBlock OLD_PERSIAN;
+    field public static final int OLD_PERSIAN_ID = 140; // 0x8c
+    field public static final android.icu.lang.UCharacter.UnicodeBlock OLD_SOUTH_ARABIAN;
+    field public static final int OLD_SOUTH_ARABIAN_ID = 187; // 0xbb
+    field public static final android.icu.lang.UCharacter.UnicodeBlock OLD_TURKIC;
+    field public static final int OLD_TURKIC_ID = 191; // 0xbf
+    field public static final android.icu.lang.UCharacter.UnicodeBlock OL_CHIKI;
+    field public static final int OL_CHIKI_ID = 157; // 0x9d
+    field public static final android.icu.lang.UCharacter.UnicodeBlock OPTICAL_CHARACTER_RECOGNITION;
+    field public static final int OPTICAL_CHARACTER_RECOGNITION_ID = 50; // 0x32
+    field public static final android.icu.lang.UCharacter.UnicodeBlock ORIYA;
+    field public static final int ORIYA_ID = 19; // 0x13
+    field public static final android.icu.lang.UCharacter.UnicodeBlock ORNAMENTAL_DINGBATS;
+    field public static final int ORNAMENTAL_DINGBATS_ID = 242; // 0xf2
+    field public static final android.icu.lang.UCharacter.UnicodeBlock OSMANYA;
+    field public static final int OSMANYA_ID = 122; // 0x7a
+    field public static final android.icu.lang.UCharacter.UnicodeBlock PAHAWH_HMONG;
+    field public static final int PAHAWH_HMONG_ID = 243; // 0xf3
+    field public static final android.icu.lang.UCharacter.UnicodeBlock PALMYRENE;
+    field public static final int PALMYRENE_ID = 244; // 0xf4
+    field public static final android.icu.lang.UCharacter.UnicodeBlock PAU_CIN_HAU;
+    field public static final int PAU_CIN_HAU_ID = 245; // 0xf5
+    field public static final android.icu.lang.UCharacter.UnicodeBlock PHAGS_PA;
+    field public static final int PHAGS_PA_ID = 150; // 0x96
+    field public static final android.icu.lang.UCharacter.UnicodeBlock PHAISTOS_DISC;
+    field public static final int PHAISTOS_DISC_ID = 166; // 0xa6
+    field public static final android.icu.lang.UCharacter.UnicodeBlock PHOENICIAN;
+    field public static final int PHOENICIAN_ID = 151; // 0x97
+    field public static final android.icu.lang.UCharacter.UnicodeBlock PHONETIC_EXTENSIONS;
+    field public static final int PHONETIC_EXTENSIONS_ID = 114; // 0x72
+    field public static final android.icu.lang.UCharacter.UnicodeBlock PHONETIC_EXTENSIONS_SUPPLEMENT;
+    field public static final int PHONETIC_EXTENSIONS_SUPPLEMENT_ID = 141; // 0x8d
+    field public static final android.icu.lang.UCharacter.UnicodeBlock PLAYING_CARDS;
+    field public static final int PLAYING_CARDS_ID = 204; // 0xcc
+    field public static final android.icu.lang.UCharacter.UnicodeBlock PRIVATE_USE;
+    field public static final android.icu.lang.UCharacter.UnicodeBlock PRIVATE_USE_AREA;
+    field public static final int PRIVATE_USE_AREA_ID = 78; // 0x4e
+    field public static final int PRIVATE_USE_ID = 78; // 0x4e
+    field public static final android.icu.lang.UCharacter.UnicodeBlock PSALTER_PAHLAVI;
+    field public static final int PSALTER_PAHLAVI_ID = 246; // 0xf6
+    field public static final android.icu.lang.UCharacter.UnicodeBlock REJANG;
+    field public static final int REJANG_ID = 163; // 0xa3
+    field public static final android.icu.lang.UCharacter.UnicodeBlock RUMI_NUMERAL_SYMBOLS;
+    field public static final int RUMI_NUMERAL_SYMBOLS_ID = 192; // 0xc0
+    field public static final android.icu.lang.UCharacter.UnicodeBlock RUNIC;
+    field public static final int RUNIC_ID = 35; // 0x23
+    field public static final android.icu.lang.UCharacter.UnicodeBlock SAMARITAN;
+    field public static final int SAMARITAN_ID = 172; // 0xac
+    field public static final android.icu.lang.UCharacter.UnicodeBlock SAURASHTRA;
+    field public static final int SAURASHTRA_ID = 161; // 0xa1
+    field public static final android.icu.lang.UCharacter.UnicodeBlock SHARADA;
+    field public static final int SHARADA_ID = 217; // 0xd9
+    field public static final android.icu.lang.UCharacter.UnicodeBlock SHAVIAN;
+    field public static final int SHAVIAN_ID = 121; // 0x79
+    field public static final android.icu.lang.UCharacter.UnicodeBlock SHORTHAND_FORMAT_CONTROLS;
+    field public static final int SHORTHAND_FORMAT_CONTROLS_ID = 247; // 0xf7
+    field public static final android.icu.lang.UCharacter.UnicodeBlock SIDDHAM;
+    field public static final int SIDDHAM_ID = 248; // 0xf8
+    field public static final android.icu.lang.UCharacter.UnicodeBlock SINHALA;
+    field public static final android.icu.lang.UCharacter.UnicodeBlock SINHALA_ARCHAIC_NUMBERS;
+    field public static final int SINHALA_ARCHAIC_NUMBERS_ID = 249; // 0xf9
+    field public static final int SINHALA_ID = 24; // 0x18
+    field public static final android.icu.lang.UCharacter.UnicodeBlock SMALL_FORM_VARIANTS;
+    field public static final int SMALL_FORM_VARIANTS_ID = 84; // 0x54
+    field public static final android.icu.lang.UCharacter.UnicodeBlock SORA_SOMPENG;
+    field public static final int SORA_SOMPENG_ID = 218; // 0xda
+    field public static final android.icu.lang.UCharacter.UnicodeBlock SPACING_MODIFIER_LETTERS;
+    field public static final int SPACING_MODIFIER_LETTERS_ID = 6; // 0x6
+    field public static final android.icu.lang.UCharacter.UnicodeBlock SPECIALS;
+    field public static final int SPECIALS_ID = 86; // 0x56
+    field public static final android.icu.lang.UCharacter.UnicodeBlock SUNDANESE;
+    field public static final int SUNDANESE_ID = 155; // 0x9b
+    field public static final android.icu.lang.UCharacter.UnicodeBlock SUNDANESE_SUPPLEMENT;
+    field public static final int SUNDANESE_SUPPLEMENT_ID = 219; // 0xdb
+    field public static final android.icu.lang.UCharacter.UnicodeBlock SUPERSCRIPTS_AND_SUBSCRIPTS;
+    field public static final int SUPERSCRIPTS_AND_SUBSCRIPTS_ID = 41; // 0x29
+    field public static final android.icu.lang.UCharacter.UnicodeBlock SUPPLEMENTAL_ARROWS_A;
+    field public static final int SUPPLEMENTAL_ARROWS_A_ID = 103; // 0x67
+    field public static final android.icu.lang.UCharacter.UnicodeBlock SUPPLEMENTAL_ARROWS_B;
+    field public static final int SUPPLEMENTAL_ARROWS_B_ID = 104; // 0x68
+    field public static final android.icu.lang.UCharacter.UnicodeBlock SUPPLEMENTAL_ARROWS_C;
+    field public static final int SUPPLEMENTAL_ARROWS_C_ID = 250; // 0xfa
+    field public static final android.icu.lang.UCharacter.UnicodeBlock SUPPLEMENTAL_MATHEMATICAL_OPERATORS;
+    field public static final int SUPPLEMENTAL_MATHEMATICAL_OPERATORS_ID = 106; // 0x6a
+    field public static final android.icu.lang.UCharacter.UnicodeBlock SUPPLEMENTAL_PUNCTUATION;
+    field public static final int SUPPLEMENTAL_PUNCTUATION_ID = 142; // 0x8e
+    field public static final android.icu.lang.UCharacter.UnicodeBlock SUPPLEMENTAL_SYMBOLS_AND_PICTOGRAPHS;
+    field public static final int SUPPLEMENTAL_SYMBOLS_AND_PICTOGRAPHS_ID = 261; // 0x105
+    field public static final android.icu.lang.UCharacter.UnicodeBlock SUPPLEMENTARY_PRIVATE_USE_AREA_A;
+    field public static final int SUPPLEMENTARY_PRIVATE_USE_AREA_A_ID = 109; // 0x6d
+    field public static final android.icu.lang.UCharacter.UnicodeBlock SUPPLEMENTARY_PRIVATE_USE_AREA_B;
+    field public static final int SUPPLEMENTARY_PRIVATE_USE_AREA_B_ID = 110; // 0x6e
+    field public static final android.icu.lang.UCharacter.UnicodeBlock SUTTON_SIGNWRITING;
+    field public static final int SUTTON_SIGNWRITING_ID = 262; // 0x106
+    field public static final android.icu.lang.UCharacter.UnicodeBlock SYLOTI_NAGRI;
+    field public static final int SYLOTI_NAGRI_ID = 143; // 0x8f
+    field public static final android.icu.lang.UCharacter.UnicodeBlock SYRIAC;
+    field public static final int SYRIAC_ID = 13; // 0xd
+    field public static final android.icu.lang.UCharacter.UnicodeBlock TAGALOG;
+    field public static final int TAGALOG_ID = 98; // 0x62
+    field public static final android.icu.lang.UCharacter.UnicodeBlock TAGBANWA;
+    field public static final int TAGBANWA_ID = 101; // 0x65
+    field public static final android.icu.lang.UCharacter.UnicodeBlock TAGS;
+    field public static final int TAGS_ID = 96; // 0x60
+    field public static final android.icu.lang.UCharacter.UnicodeBlock TAI_LE;
+    field public static final int TAI_LE_ID = 112; // 0x70
+    field public static final android.icu.lang.UCharacter.UnicodeBlock TAI_THAM;
+    field public static final int TAI_THAM_ID = 174; // 0xae
+    field public static final android.icu.lang.UCharacter.UnicodeBlock TAI_VIET;
+    field public static final int TAI_VIET_ID = 183; // 0xb7
+    field public static final android.icu.lang.UCharacter.UnicodeBlock TAI_XUAN_JING_SYMBOLS;
+    field public static final int TAI_XUAN_JING_SYMBOLS_ID = 124; // 0x7c
+    field public static final android.icu.lang.UCharacter.UnicodeBlock TAKRI;
+    field public static final int TAKRI_ID = 220; // 0xdc
+    field public static final android.icu.lang.UCharacter.UnicodeBlock TAMIL;
+    field public static final int TAMIL_ID = 20; // 0x14
+    field public static final android.icu.lang.UCharacter.UnicodeBlock TELUGU;
+    field public static final int TELUGU_ID = 21; // 0x15
+    field public static final android.icu.lang.UCharacter.UnicodeBlock THAANA;
+    field public static final int THAANA_ID = 14; // 0xe
+    field public static final android.icu.lang.UCharacter.UnicodeBlock THAI;
+    field public static final int THAI_ID = 25; // 0x19
+    field public static final android.icu.lang.UCharacter.UnicodeBlock TIBETAN;
+    field public static final int TIBETAN_ID = 27; // 0x1b
+    field public static final android.icu.lang.UCharacter.UnicodeBlock TIFINAGH;
+    field public static final int TIFINAGH_ID = 144; // 0x90
+    field public static final android.icu.lang.UCharacter.UnicodeBlock TIRHUTA;
+    field public static final int TIRHUTA_ID = 251; // 0xfb
+    field public static final android.icu.lang.UCharacter.UnicodeBlock TRANSPORT_AND_MAP_SYMBOLS;
+    field public static final int TRANSPORT_AND_MAP_SYMBOLS_ID = 207; // 0xcf
+    field public static final android.icu.lang.UCharacter.UnicodeBlock UGARITIC;
+    field public static final int UGARITIC_ID = 120; // 0x78
+    field public static final android.icu.lang.UCharacter.UnicodeBlock UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS;
+    field public static final android.icu.lang.UCharacter.UnicodeBlock UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS_EXTENDED;
+    field public static final int UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS_EXTENDED_ID = 173; // 0xad
+    field public static final int UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS_ID = 33; // 0x21
+    field public static final android.icu.lang.UCharacter.UnicodeBlock VAI;
+    field public static final int VAI_ID = 159; // 0x9f
+    field public static final android.icu.lang.UCharacter.UnicodeBlock VARIATION_SELECTORS;
+    field public static final int VARIATION_SELECTORS_ID = 108; // 0x6c
+    field public static final android.icu.lang.UCharacter.UnicodeBlock VARIATION_SELECTORS_SUPPLEMENT;
+    field public static final int VARIATION_SELECTORS_SUPPLEMENT_ID = 125; // 0x7d
+    field public static final android.icu.lang.UCharacter.UnicodeBlock VEDIC_EXTENSIONS;
+    field public static final int VEDIC_EXTENSIONS_ID = 175; // 0xaf
+    field public static final android.icu.lang.UCharacter.UnicodeBlock VERTICAL_FORMS;
+    field public static final int VERTICAL_FORMS_ID = 145; // 0x91
+    field public static final android.icu.lang.UCharacter.UnicodeBlock WARANG_CITI;
+    field public static final int WARANG_CITI_ID = 252; // 0xfc
+    field public static final android.icu.lang.UCharacter.UnicodeBlock YIJING_HEXAGRAM_SYMBOLS;
+    field public static final int YIJING_HEXAGRAM_SYMBOLS_ID = 116; // 0x74
+    field public static final android.icu.lang.UCharacter.UnicodeBlock YI_RADICALS;
+    field public static final int YI_RADICALS_ID = 73; // 0x49
+    field public static final android.icu.lang.UCharacter.UnicodeBlock YI_SYLLABLES;
+    field public static final int YI_SYLLABLES_ID = 72; // 0x48
+  }
+
+  public static abstract interface UCharacter.WordBreak {
+    field public static final int ALETTER = 1; // 0x1
+    field public static final int COUNT = 17; // 0x11
+    field public static final int CR = 8; // 0x8
+    field public static final int DOUBLE_QUOTE = 16; // 0x10
+    field public static final int EXTEND = 9; // 0x9
+    field public static final int EXTENDNUMLET = 7; // 0x7
+    field public static final int FORMAT = 2; // 0x2
+    field public static final int HEBREW_LETTER = 14; // 0xe
+    field public static final int KATAKANA = 3; // 0x3
+    field public static final int LF = 10; // 0xa
+    field public static final int MIDLETTER = 4; // 0x4
+    field public static final int MIDNUM = 5; // 0x5
+    field public static final int MIDNUMLET = 11; // 0xb
+    field public static final int NEWLINE = 12; // 0xc
+    field public static final int NUMERIC = 6; // 0x6
+    field public static final int OTHER = 0; // 0x0
+    field public static final int REGIONAL_INDICATOR = 13; // 0xd
+    field public static final int SINGLE_QUOTE = 15; // 0xf
+  }
+
+  public final class UCharacterCategory implements android.icu.lang.UCharacterEnums.ECharacterCategory {
+    method public static java.lang.String toString(int);
+  }
+
+  public final class UCharacterDirection implements android.icu.lang.UCharacterEnums.ECharacterDirection {
+    method public static java.lang.String toString(int);
+  }
+
+  public class UCharacterEnums {
+  }
+
+  public static abstract interface UCharacterEnums.ECharacterCategory {
+    field public static final byte CHAR_CATEGORY_COUNT = 30; // 0x1e
+    field public static final byte COMBINING_SPACING_MARK = 8; // 0x8
+    field public static final byte CONNECTOR_PUNCTUATION = 22; // 0x16
+    field public static final byte CONTROL = 15; // 0xf
+    field public static final byte CURRENCY_SYMBOL = 25; // 0x19
+    field public static final byte DASH_PUNCTUATION = 19; // 0x13
+    field public static final byte DECIMAL_DIGIT_NUMBER = 9; // 0x9
+    field public static final byte ENCLOSING_MARK = 7; // 0x7
+    field public static final byte END_PUNCTUATION = 21; // 0x15
+    field public static final byte FINAL_PUNCTUATION = 29; // 0x1d
+    field public static final byte FINAL_QUOTE_PUNCTUATION = 29; // 0x1d
+    field public static final byte FORMAT = 16; // 0x10
+    field public static final byte GENERAL_OTHER_TYPES = 0; // 0x0
+    field public static final byte INITIAL_PUNCTUATION = 28; // 0x1c
+    field public static final byte INITIAL_QUOTE_PUNCTUATION = 28; // 0x1c
+    field public static final byte LETTER_NUMBER = 10; // 0xa
+    field public static final byte LINE_SEPARATOR = 13; // 0xd
+    field public static final byte LOWERCASE_LETTER = 2; // 0x2
+    field public static final byte MATH_SYMBOL = 24; // 0x18
+    field public static final byte MODIFIER_LETTER = 4; // 0x4
+    field public static final byte MODIFIER_SYMBOL = 26; // 0x1a
+    field public static final byte NON_SPACING_MARK = 6; // 0x6
+    field public static final byte OTHER_LETTER = 5; // 0x5
+    field public static final byte OTHER_NUMBER = 11; // 0xb
+    field public static final byte OTHER_PUNCTUATION = 23; // 0x17
+    field public static final byte OTHER_SYMBOL = 27; // 0x1b
+    field public static final byte PARAGRAPH_SEPARATOR = 14; // 0xe
+    field public static final byte PRIVATE_USE = 17; // 0x11
+    field public static final byte SPACE_SEPARATOR = 12; // 0xc
+    field public static final byte START_PUNCTUATION = 20; // 0x14
+    field public static final byte SURROGATE = 18; // 0x12
+    field public static final byte TITLECASE_LETTER = 3; // 0x3
+    field public static final byte UNASSIGNED = 0; // 0x0
+    field public static final byte UPPERCASE_LETTER = 1; // 0x1
+  }
+
+  public static abstract interface UCharacterEnums.ECharacterDirection {
+    field public static final int ARABIC_NUMBER = 5; // 0x5
+    field public static final int BLOCK_SEPARATOR = 7; // 0x7
+    field public static final int BOUNDARY_NEUTRAL = 18; // 0x12
+    field public static final int CHAR_DIRECTION_COUNT = 23; // 0x17
+    field public static final int COMMON_NUMBER_SEPARATOR = 6; // 0x6
+    field public static final byte DIRECTIONALITY_ARABIC_NUMBER = 5; // 0x5
+    field public static final byte DIRECTIONALITY_BOUNDARY_NEUTRAL = 18; // 0x12
+    field public static final byte DIRECTIONALITY_COMMON_NUMBER_SEPARATOR = 6; // 0x6
+    field public static final byte DIRECTIONALITY_EUROPEAN_NUMBER = 2; // 0x2
+    field public static final byte DIRECTIONALITY_EUROPEAN_NUMBER_SEPARATOR = 3; // 0x3
+    field public static final byte DIRECTIONALITY_EUROPEAN_NUMBER_TERMINATOR = 4; // 0x4
+    field public static final byte DIRECTIONALITY_LEFT_TO_RIGHT = 0; // 0x0
+    field public static final byte DIRECTIONALITY_LEFT_TO_RIGHT_EMBEDDING = 11; // 0xb
+    field public static final byte DIRECTIONALITY_LEFT_TO_RIGHT_OVERRIDE = 12; // 0xc
+    field public static final byte DIRECTIONALITY_NONSPACING_MARK = 17; // 0x11
+    field public static final byte DIRECTIONALITY_OTHER_NEUTRALS = 10; // 0xa
+    field public static final byte DIRECTIONALITY_PARAGRAPH_SEPARATOR = 7; // 0x7
+    field public static final byte DIRECTIONALITY_POP_DIRECTIONAL_FORMAT = 16; // 0x10
+    field public static final byte DIRECTIONALITY_RIGHT_TO_LEFT = 1; // 0x1
+    field public static final byte DIRECTIONALITY_RIGHT_TO_LEFT_ARABIC = 13; // 0xd
+    field public static final byte DIRECTIONALITY_RIGHT_TO_LEFT_EMBEDDING = 14; // 0xe
+    field public static final byte DIRECTIONALITY_RIGHT_TO_LEFT_OVERRIDE = 15; // 0xf
+    field public static final byte DIRECTIONALITY_SEGMENT_SEPARATOR = 8; // 0x8
+    field public static final byte DIRECTIONALITY_UNDEFINED = -1; // 0xffffffff
+    field public static final byte DIRECTIONALITY_WHITESPACE = 9; // 0x9
+    field public static final int DIR_NON_SPACING_MARK = 17; // 0x11
+    field public static final int EUROPEAN_NUMBER = 2; // 0x2
+    field public static final int EUROPEAN_NUMBER_SEPARATOR = 3; // 0x3
+    field public static final int EUROPEAN_NUMBER_TERMINATOR = 4; // 0x4
+    field public static final byte FIRST_STRONG_ISOLATE = 19; // 0x13
+    field public static final int LEFT_TO_RIGHT = 0; // 0x0
+    field public static final int LEFT_TO_RIGHT_EMBEDDING = 11; // 0xb
+    field public static final byte LEFT_TO_RIGHT_ISOLATE = 20; // 0x14
+    field public static final int LEFT_TO_RIGHT_OVERRIDE = 12; // 0xc
+    field public static final int OTHER_NEUTRAL = 10; // 0xa
+    field public static final int POP_DIRECTIONAL_FORMAT = 16; // 0x10
+    field public static final byte POP_DIRECTIONAL_ISOLATE = 22; // 0x16
+    field public static final int RIGHT_TO_LEFT = 1; // 0x1
+    field public static final int RIGHT_TO_LEFT_ARABIC = 13; // 0xd
+    field public static final int RIGHT_TO_LEFT_EMBEDDING = 14; // 0xe
+    field public static final byte RIGHT_TO_LEFT_ISOLATE = 21; // 0x15
+    field public static final int RIGHT_TO_LEFT_OVERRIDE = 15; // 0xf
+    field public static final int SEGMENT_SEPARATOR = 8; // 0x8
+    field public static final int WHITE_SPACE_NEUTRAL = 9; // 0x9
+  }
+
+  public abstract interface UProperty {
+    field public static final int AGE = 16384; // 0x4000
+    field public static final int ALPHABETIC = 0; // 0x0
+    field public static final int ASCII_HEX_DIGIT = 1; // 0x1
+    field public static final int BIDI_CLASS = 4096; // 0x1000
+    field public static final int BIDI_CONTROL = 2; // 0x2
+    field public static final int BIDI_MIRRORED = 3; // 0x3
+    field public static final int BIDI_MIRRORING_GLYPH = 16385; // 0x4001
+    field public static final int BIDI_PAIRED_BRACKET = 16397; // 0x400d
+    field public static final int BIDI_PAIRED_BRACKET_TYPE = 4117; // 0x1015
+    field public static final int BINARY_LIMIT = 57; // 0x39
+    field public static final int BINARY_START = 0; // 0x0
+    field public static final int BLOCK = 4097; // 0x1001
+    field public static final int CANONICAL_COMBINING_CLASS = 4098; // 0x1002
+    field public static final int CASED = 49; // 0x31
+    field public static final int CASE_FOLDING = 16386; // 0x4002
+    field public static final int CASE_IGNORABLE = 50; // 0x32
+    field public static final int CASE_SENSITIVE = 34; // 0x22
+    field public static final int CHANGES_WHEN_CASEFOLDED = 54; // 0x36
+    field public static final int CHANGES_WHEN_CASEMAPPED = 55; // 0x37
+    field public static final int CHANGES_WHEN_LOWERCASED = 51; // 0x33
+    field public static final int CHANGES_WHEN_NFKC_CASEFOLDED = 56; // 0x38
+    field public static final int CHANGES_WHEN_TITLECASED = 53; // 0x35
+    field public static final int CHANGES_WHEN_UPPERCASED = 52; // 0x34
+    field public static final int DASH = 4; // 0x4
+    field public static final int DECOMPOSITION_TYPE = 4099; // 0x1003
+    field public static final int DEFAULT_IGNORABLE_CODE_POINT = 5; // 0x5
+    field public static final int DEPRECATED = 6; // 0x6
+    field public static final int DIACRITIC = 7; // 0x7
+    field public static final int DOUBLE_LIMIT = 12289; // 0x3001
+    field public static final int DOUBLE_START = 12288; // 0x3000
+    field public static final int EAST_ASIAN_WIDTH = 4100; // 0x1004
+    field public static final int EXTENDER = 8; // 0x8
+    field public static final int FULL_COMPOSITION_EXCLUSION = 9; // 0x9
+    field public static final int GENERAL_CATEGORY = 4101; // 0x1005
+    field public static final int GENERAL_CATEGORY_MASK = 8192; // 0x2000
+    field public static final int GRAPHEME_BASE = 10; // 0xa
+    field public static final int GRAPHEME_CLUSTER_BREAK = 4114; // 0x1012
+    field public static final int GRAPHEME_EXTEND = 11; // 0xb
+    field public static final int GRAPHEME_LINK = 12; // 0xc
+    field public static final int HANGUL_SYLLABLE_TYPE = 4107; // 0x100b
+    field public static final int HEX_DIGIT = 13; // 0xd
+    field public static final int HYPHEN = 14; // 0xe
+    field public static final int IDEOGRAPHIC = 17; // 0x11
+    field public static final int IDS_BINARY_OPERATOR = 18; // 0x12
+    field public static final int IDS_TRINARY_OPERATOR = 19; // 0x13
+    field public static final int ID_CONTINUE = 15; // 0xf
+    field public static final int ID_START = 16; // 0x10
+    field public static final int INT_LIMIT = 4118; // 0x1016
+    field public static final int INT_START = 4096; // 0x1000
+    field public static final int JOINING_GROUP = 4102; // 0x1006
+    field public static final int JOINING_TYPE = 4103; // 0x1007
+    field public static final int JOIN_CONTROL = 20; // 0x14
+    field public static final int LEAD_CANONICAL_COMBINING_CLASS = 4112; // 0x1010
+    field public static final int LINE_BREAK = 4104; // 0x1008
+    field public static final int LOGICAL_ORDER_EXCEPTION = 21; // 0x15
+    field public static final int LOWERCASE = 22; // 0x16
+    field public static final int LOWERCASE_MAPPING = 16388; // 0x4004
+    field public static final int MASK_LIMIT = 8193; // 0x2001
+    field public static final int MASK_START = 8192; // 0x2000
+    field public static final int MATH = 23; // 0x17
+    field public static final int NAME = 16389; // 0x4005
+    field public static final int NFC_INERT = 39; // 0x27
+    field public static final int NFC_QUICK_CHECK = 4110; // 0x100e
+    field public static final int NFD_INERT = 37; // 0x25
+    field public static final int NFD_QUICK_CHECK = 4108; // 0x100c
+    field public static final int NFKC_INERT = 40; // 0x28
+    field public static final int NFKC_QUICK_CHECK = 4111; // 0x100f
+    field public static final int NFKD_INERT = 38; // 0x26
+    field public static final int NFKD_QUICK_CHECK = 4109; // 0x100d
+    field public static final int NONCHARACTER_CODE_POINT = 24; // 0x18
+    field public static final int NUMERIC_TYPE = 4105; // 0x1009
+    field public static final int NUMERIC_VALUE = 12288; // 0x3000
+    field public static final int OTHER_PROPERTY_LIMIT = 28673; // 0x7001
+    field public static final int OTHER_PROPERTY_START = 28672; // 0x7000
+    field public static final int PATTERN_SYNTAX = 42; // 0x2a
+    field public static final int PATTERN_WHITE_SPACE = 43; // 0x2b
+    field public static final int POSIX_ALNUM = 44; // 0x2c
+    field public static final int POSIX_BLANK = 45; // 0x2d
+    field public static final int POSIX_GRAPH = 46; // 0x2e
+    field public static final int POSIX_PRINT = 47; // 0x2f
+    field public static final int POSIX_XDIGIT = 48; // 0x30
+    field public static final int QUOTATION_MARK = 25; // 0x19
+    field public static final int RADICAL = 26; // 0x1a
+    field public static final int SCRIPT = 4106; // 0x100a
+    field public static final int SCRIPT_EXTENSIONS = 28672; // 0x7000
+    field public static final int SEGMENT_STARTER = 41; // 0x29
+    field public static final int SENTENCE_BREAK = 4115; // 0x1013
+    field public static final int SIMPLE_CASE_FOLDING = 16390; // 0x4006
+    field public static final int SIMPLE_LOWERCASE_MAPPING = 16391; // 0x4007
+    field public static final int SIMPLE_TITLECASE_MAPPING = 16392; // 0x4008
+    field public static final int SIMPLE_UPPERCASE_MAPPING = 16393; // 0x4009
+    field public static final int SOFT_DOTTED = 27; // 0x1b
+    field public static final int STRING_LIMIT = 16398; // 0x400e
+    field public static final int STRING_START = 16384; // 0x4000
+    field public static final int S_TERM = 35; // 0x23
+    field public static final int TERMINAL_PUNCTUATION = 28; // 0x1c
+    field public static final int TITLECASE_MAPPING = 16394; // 0x400a
+    field public static final int TRAIL_CANONICAL_COMBINING_CLASS = 4113; // 0x1011
+    field public static final int UNIFIED_IDEOGRAPH = 29; // 0x1d
+    field public static final int UPPERCASE = 30; // 0x1e
+    field public static final int UPPERCASE_MAPPING = 16396; // 0x400c
+    field public static final int VARIATION_SELECTOR = 36; // 0x24
+    field public static final int WHITE_SPACE = 31; // 0x1f
+    field public static final int WORD_BREAK = 4116; // 0x1014
+    field public static final int XID_CONTINUE = 32; // 0x20
+    field public static final int XID_START = 33; // 0x21
+  }
+
+  public static abstract interface UProperty.NameChoice {
+    field public static final int COUNT = 2; // 0x2
+    field public static final int LONG = 1; // 0x1
+    field public static final int SHORT = 0; // 0x0
+  }
+
+  public final class UScript {
+    method public static final boolean breaksBetweenLetters(int);
+    method public static final int[] getCode(java.util.Locale);
+    method public static final int[] getCode(android.icu.util.ULocale);
+    method public static final int[] getCode(java.lang.String);
+    method public static final int getCodeFromName(java.lang.String);
+    method public static final java.lang.String getName(int);
+    method public static final java.lang.String getSampleString(int);
+    method public static final int getScript(int);
+    method public static final int getScriptExtensions(int, java.util.BitSet);
+    method public static final java.lang.String getShortName(int);
+    method public static final android.icu.lang.UScript.ScriptUsage getUsage(int);
+    method public static final boolean hasScript(int, int);
+    method public static final boolean isCased(int);
+    method public static final boolean isRightToLeft(int);
+    field public static final int AFAKA = 147; // 0x93
+    field public static final int AHOM = 161; // 0xa1
+    field public static final int ANATOLIAN_HIEROGLYPHS = 156; // 0x9c
+    field public static final int ARABIC = 2; // 0x2
+    field public static final int ARMENIAN = 3; // 0x3
+    field public static final int AVESTAN = 117; // 0x75
+    field public static final int BALINESE = 62; // 0x3e
+    field public static final int BAMUM = 130; // 0x82
+    field public static final int BASSA_VAH = 134; // 0x86
+    field public static final int BATAK = 63; // 0x3f
+    field public static final int BENGALI = 4; // 0x4
+    field public static final int BLISSYMBOLS = 64; // 0x40
+    field public static final int BOOK_PAHLAVI = 124; // 0x7c
+    field public static final int BOPOMOFO = 5; // 0x5
+    field public static final int BRAHMI = 65; // 0x41
+    field public static final int BRAILLE = 46; // 0x2e
+    field public static final int BUGINESE = 55; // 0x37
+    field public static final int BUHID = 44; // 0x2c
+    field public static final int CANADIAN_ABORIGINAL = 40; // 0x28
+    field public static final int CARIAN = 104; // 0x68
+    field public static final int CAUCASIAN_ALBANIAN = 159; // 0x9f
+    field public static final int CHAKMA = 118; // 0x76
+    field public static final int CHAM = 66; // 0x42
+    field public static final int CHEROKEE = 6; // 0x6
+    field public static final int CIRTH = 67; // 0x43
+    field public static final int CODE_LIMIT = 167; // 0xa7
+    field public static final int COMMON = 0; // 0x0
+    field public static final int COPTIC = 7; // 0x7
+    field public static final int CUNEIFORM = 101; // 0x65
+    field public static final int CYPRIOT = 47; // 0x2f
+    field public static final int CYRILLIC = 8; // 0x8
+    field public static final int DEMOTIC_EGYPTIAN = 69; // 0x45
+    field public static final int DESERET = 9; // 0x9
+    field public static final int DEVANAGARI = 10; // 0xa
+    field public static final int DUPLOYAN = 135; // 0x87
+    field public static final int EASTERN_SYRIAC = 97; // 0x61
+    field public static final int EGYPTIAN_HIEROGLYPHS = 71; // 0x47
+    field public static final int ELBASAN = 136; // 0x88
+    field public static final int ESTRANGELO_SYRIAC = 95; // 0x5f
+    field public static final int ETHIOPIC = 11; // 0xb
+    field public static final int GEORGIAN = 12; // 0xc
+    field public static final int GLAGOLITIC = 56; // 0x38
+    field public static final int GOTHIC = 13; // 0xd
+    field public static final int GRANTHA = 137; // 0x89
+    field public static final int GREEK = 14; // 0xe
+    field public static final int GUJARATI = 15; // 0xf
+    field public static final int GURMUKHI = 16; // 0x10
+    field public static final int HAN = 17; // 0x11
+    field public static final int HANGUL = 18; // 0x12
+    field public static final int HANUNOO = 43; // 0x2b
+    field public static final int HARAPPAN_INDUS = 77; // 0x4d
+    field public static final int HATRAN = 162; // 0xa2
+    field public static final int HEBREW = 19; // 0x13
+    field public static final int HIERATIC_EGYPTIAN = 70; // 0x46
+    field public static final int HIRAGANA = 20; // 0x14
+    field public static final int IMPERIAL_ARAMAIC = 116; // 0x74
+    field public static final int INHERITED = 1; // 0x1
+    field public static final int INSCRIPTIONAL_PAHLAVI = 122; // 0x7a
+    field public static final int INSCRIPTIONAL_PARTHIAN = 125; // 0x7d
+    field public static final int INVALID_CODE = -1; // 0xffffffff
+    field public static final int JAPANESE = 105; // 0x69
+    field public static final int JAVANESE = 78; // 0x4e
+    field public static final int JURCHEN = 148; // 0x94
+    field public static final int KAITHI = 120; // 0x78
+    field public static final int KANNADA = 21; // 0x15
+    field public static final int KATAKANA = 22; // 0x16
+    field public static final int KATAKANA_OR_HIRAGANA = 54; // 0x36
+    field public static final int KAYAH_LI = 79; // 0x4f
+    field public static final int KHAROSHTHI = 57; // 0x39
+    field public static final int KHMER = 23; // 0x17
+    field public static final int KHOJKI = 157; // 0x9d
+    field public static final int KHUDAWADI = 145; // 0x91
+    field public static final int KHUTSURI = 72; // 0x48
+    field public static final int KOREAN = 119; // 0x77
+    field public static final int KPELLE = 138; // 0x8a
+    field public static final int LANNA = 106; // 0x6a
+    field public static final int LAO = 24; // 0x18
+    field public static final int LATIN = 25; // 0x19
+    field public static final int LATIN_FRAKTUR = 80; // 0x50
+    field public static final int LATIN_GAELIC = 81; // 0x51
+    field public static final int LEPCHA = 82; // 0x52
+    field public static final int LIMBU = 48; // 0x30
+    field public static final int LINEAR_A = 83; // 0x53
+    field public static final int LINEAR_B = 49; // 0x31
+    field public static final int LISU = 131; // 0x83
+    field public static final int LOMA = 139; // 0x8b
+    field public static final int LYCIAN = 107; // 0x6b
+    field public static final int LYDIAN = 108; // 0x6c
+    field public static final int MAHAJANI = 160; // 0xa0
+    field public static final int MALAYALAM = 26; // 0x1a
+    field public static final int MANDAEAN = 84; // 0x54
+    field public static final int MANDAIC = 84; // 0x54
+    field public static final int MANICHAEAN = 121; // 0x79
+    field public static final int MATHEMATICAL_NOTATION = 128; // 0x80
+    field public static final int MAYAN_HIEROGLYPHS = 85; // 0x55
+    field public static final int MEITEI_MAYEK = 115; // 0x73
+    field public static final int MENDE = 140; // 0x8c
+    field public static final int MEROITIC = 86; // 0x56
+    field public static final int MEROITIC_CURSIVE = 141; // 0x8d
+    field public static final int MEROITIC_HIEROGLYPHS = 86; // 0x56
+    field public static final int MIAO = 92; // 0x5c
+    field public static final int MODI = 163; // 0xa3
+    field public static final int MONGOLIAN = 27; // 0x1b
+    field public static final int MOON = 114; // 0x72
+    field public static final int MRO = 149; // 0x95
+    field public static final int MULTANI = 164; // 0xa4
+    field public static final int MYANMAR = 28; // 0x1c
+    field public static final int NABATAEAN = 143; // 0x8f
+    field public static final int NAKHI_GEBA = 132; // 0x84
+    field public static final int NEW_TAI_LUE = 59; // 0x3b
+    field public static final int NKO = 87; // 0x57
+    field public static final int NUSHU = 150; // 0x96
+    field public static final int OGHAM = 29; // 0x1d
+    field public static final int OLD_CHURCH_SLAVONIC_CYRILLIC = 68; // 0x44
+    field public static final int OLD_HUNGARIAN = 76; // 0x4c
+    field public static final int OLD_ITALIC = 30; // 0x1e
+    field public static final int OLD_NORTH_ARABIAN = 142; // 0x8e
+    field public static final int OLD_PERMIC = 89; // 0x59
+    field public static final int OLD_PERSIAN = 61; // 0x3d
+    field public static final int OLD_SOUTH_ARABIAN = 133; // 0x85
+    field public static final int OL_CHIKI = 109; // 0x6d
+    field public static final int ORIYA = 31; // 0x1f
+    field public static final int ORKHON = 88; // 0x58
+    field public static final int OSMANYA = 50; // 0x32
+    field public static final int PAHAWH_HMONG = 75; // 0x4b
+    field public static final int PALMYRENE = 144; // 0x90
+    field public static final int PAU_CIN_HAU = 165; // 0xa5
+    field public static final int PHAGS_PA = 90; // 0x5a
+    field public static final int PHOENICIAN = 91; // 0x5b
+    field public static final int PHONETIC_POLLARD = 92; // 0x5c
+    field public static final int PSALTER_PAHLAVI = 123; // 0x7b
+    field public static final int REJANG = 110; // 0x6e
+    field public static final int RONGORONGO = 93; // 0x5d
+    field public static final int RUNIC = 32; // 0x20
+    field public static final int SAMARITAN = 126; // 0x7e
+    field public static final int SARATI = 94; // 0x5e
+    field public static final int SAURASHTRA = 111; // 0x6f
+    field public static final int SHARADA = 151; // 0x97
+    field public static final int SHAVIAN = 51; // 0x33
+    field public static final int SIDDHAM = 166; // 0xa6
+    field public static final int SIGN_WRITING = 112; // 0x70
+    field public static final int SIMPLIFIED_HAN = 73; // 0x49
+    field public static final int SINDHI = 145; // 0x91
+    field public static final int SINHALA = 33; // 0x21
+    field public static final int SORA_SOMPENG = 152; // 0x98
+    field public static final int SUNDANESE = 113; // 0x71
+    field public static final int SYLOTI_NAGRI = 58; // 0x3a
+    field public static final int SYMBOLS = 129; // 0x81
+    field public static final int SYRIAC = 34; // 0x22
+    field public static final int TAGALOG = 42; // 0x2a
+    field public static final int TAGBANWA = 45; // 0x2d
+    field public static final int TAI_LE = 52; // 0x34
+    field public static final int TAI_VIET = 127; // 0x7f
+    field public static final int TAKRI = 153; // 0x99
+    field public static final int TAMIL = 35; // 0x23
+    field public static final int TANGUT = 154; // 0x9a
+    field public static final int TELUGU = 36; // 0x24
+    field public static final int TENGWAR = 98; // 0x62
+    field public static final int THAANA = 37; // 0x25
+    field public static final int THAI = 38; // 0x26
+    field public static final int TIBETAN = 39; // 0x27
+    field public static final int TIFINAGH = 60; // 0x3c
+    field public static final int TIRHUTA = 158; // 0x9e
+    field public static final int TRADITIONAL_HAN = 74; // 0x4a
+    field public static final int UCAS = 40; // 0x28
+    field public static final int UGARITIC = 53; // 0x35
+    field public static final int UNKNOWN = 103; // 0x67
+    field public static final int UNWRITTEN_LANGUAGES = 102; // 0x66
+    field public static final int VAI = 99; // 0x63
+    field public static final int VISIBLE_SPEECH = 100; // 0x64
+    field public static final int WARANG_CITI = 146; // 0x92
+    field public static final int WESTERN_SYRIAC = 96; // 0x60
+    field public static final int WOLEAI = 155; // 0x9b
+    field public static final int YI = 41; // 0x29
+  }
+
+  public static final class UScript.ScriptUsage extends java.lang.Enum {
+    method public static android.icu.lang.UScript.ScriptUsage valueOf(java.lang.String);
+    method public static final android.icu.lang.UScript.ScriptUsage[] values();
+    enum_constant public static final android.icu.lang.UScript.ScriptUsage ASPIRATIONAL;
+    enum_constant public static final android.icu.lang.UScript.ScriptUsage EXCLUDED;
+    enum_constant public static final android.icu.lang.UScript.ScriptUsage LIMITED_USE;
+    enum_constant public static final android.icu.lang.UScript.ScriptUsage NOT_ENCODED;
+    enum_constant public static final android.icu.lang.UScript.ScriptUsage RECOMMENDED;
+    enum_constant public static final android.icu.lang.UScript.ScriptUsage UNKNOWN;
+  }
+
+}
+
+package android.icu.math {
+
+  public class BigDecimal extends java.lang.Number implements java.lang.Comparable java.io.Serializable {
+    ctor public BigDecimal(java.math.BigDecimal);
+    ctor public BigDecimal(java.math.BigInteger);
+    ctor public BigDecimal(java.math.BigInteger, int);
+    ctor public BigDecimal(char[]);
+    ctor public BigDecimal(char[], int, int);
+    ctor public BigDecimal(double);
+    ctor public BigDecimal(int);
+    ctor public BigDecimal(long);
+    ctor public BigDecimal(java.lang.String);
+    method public android.icu.math.BigDecimal abs();
+    method public android.icu.math.BigDecimal abs(android.icu.math.MathContext);
+    method public android.icu.math.BigDecimal add(android.icu.math.BigDecimal);
+    method public android.icu.math.BigDecimal add(android.icu.math.BigDecimal, android.icu.math.MathContext);
+    method public byte byteValueExact();
+    method public int compareTo(android.icu.math.BigDecimal);
+    method public int compareTo(android.icu.math.BigDecimal, android.icu.math.MathContext);
+    method public android.icu.math.BigDecimal divide(android.icu.math.BigDecimal);
+    method public android.icu.math.BigDecimal divide(android.icu.math.BigDecimal, int);
+    method public android.icu.math.BigDecimal divide(android.icu.math.BigDecimal, int, int);
+    method public android.icu.math.BigDecimal divide(android.icu.math.BigDecimal, android.icu.math.MathContext);
+    method public android.icu.math.BigDecimal divideInteger(android.icu.math.BigDecimal);
+    method public android.icu.math.BigDecimal divideInteger(android.icu.math.BigDecimal, android.icu.math.MathContext);
+    method public double doubleValue();
+    method public float floatValue();
+    method public java.lang.String format(int, int);
+    method public java.lang.String format(int, int, int, int, int, int);
+    method public int intValue();
+    method public int intValueExact();
+    method public long longValue();
+    method public long longValueExact();
+    method public android.icu.math.BigDecimal max(android.icu.math.BigDecimal);
+    method public android.icu.math.BigDecimal max(android.icu.math.BigDecimal, android.icu.math.MathContext);
+    method public android.icu.math.BigDecimal min(android.icu.math.BigDecimal);
+    method public android.icu.math.BigDecimal min(android.icu.math.BigDecimal, android.icu.math.MathContext);
+    method public android.icu.math.BigDecimal movePointLeft(int);
+    method public android.icu.math.BigDecimal movePointRight(int);
+    method public android.icu.math.BigDecimal multiply(android.icu.math.BigDecimal);
+    method public android.icu.math.BigDecimal multiply(android.icu.math.BigDecimal, android.icu.math.MathContext);
+    method public android.icu.math.BigDecimal negate();
+    method public android.icu.math.BigDecimal negate(android.icu.math.MathContext);
+    method public android.icu.math.BigDecimal plus();
+    method public android.icu.math.BigDecimal plus(android.icu.math.MathContext);
+    method public android.icu.math.BigDecimal pow(android.icu.math.BigDecimal);
+    method public android.icu.math.BigDecimal pow(android.icu.math.BigDecimal, android.icu.math.MathContext);
+    method public android.icu.math.BigDecimal remainder(android.icu.math.BigDecimal);
+    method public android.icu.math.BigDecimal remainder(android.icu.math.BigDecimal, android.icu.math.MathContext);
+    method public int scale();
+    method public android.icu.math.BigDecimal setScale(int);
+    method public android.icu.math.BigDecimal setScale(int, int);
+    method public short shortValueExact();
+    method public int signum();
+    method public android.icu.math.BigDecimal subtract(android.icu.math.BigDecimal);
+    method public android.icu.math.BigDecimal subtract(android.icu.math.BigDecimal, android.icu.math.MathContext);
+    method public java.math.BigDecimal toBigDecimal();
+    method public java.math.BigInteger toBigInteger();
+    method public java.math.BigInteger toBigIntegerExact();
+    method public char[] toCharArray();
+    method public java.math.BigInteger unscaledValue();
+    method public static android.icu.math.BigDecimal valueOf(double);
+    method public static android.icu.math.BigDecimal valueOf(long);
+    method public static android.icu.math.BigDecimal valueOf(long, int);
+    field public static final android.icu.math.BigDecimal ONE;
+    field public static final int ROUND_CEILING = 2; // 0x2
+    field public static final int ROUND_DOWN = 1; // 0x1
+    field public static final int ROUND_FLOOR = 3; // 0x3
+    field public static final int ROUND_HALF_DOWN = 5; // 0x5
+    field public static final int ROUND_HALF_EVEN = 6; // 0x6
+    field public static final int ROUND_HALF_UP = 4; // 0x4
+    field public static final int ROUND_UNNECESSARY = 7; // 0x7
+    field public static final int ROUND_UP = 0; // 0x0
+    field public static final android.icu.math.BigDecimal TEN;
+    field public static final android.icu.math.BigDecimal ZERO;
+  }
+
+  public final class MathContext implements java.io.Serializable {
+    ctor public MathContext(int);
+    ctor public MathContext(int, int);
+    ctor public MathContext(int, int, boolean);
+    ctor public MathContext(int, int, boolean, int);
+    method public int getDigits();
+    method public int getForm();
+    method public boolean getLostDigits();
+    method public int getRoundingMode();
+    field public static final android.icu.math.MathContext DEFAULT;
+    field public static final int ENGINEERING = 2; // 0x2
+    field public static final int PLAIN = 0; // 0x0
+    field public static final int ROUND_CEILING = 2; // 0x2
+    field public static final int ROUND_DOWN = 1; // 0x1
+    field public static final int ROUND_FLOOR = 3; // 0x3
+    field public static final int ROUND_HALF_DOWN = 5; // 0x5
+    field public static final int ROUND_HALF_EVEN = 6; // 0x6
+    field public static final int ROUND_HALF_UP = 4; // 0x4
+    field public static final int ROUND_UNNECESSARY = 7; // 0x7
+    field public static final int ROUND_UP = 0; // 0x0
+    field public static final int SCIENTIFIC = 1; // 0x1
+  }
+
+}
+
+package android.icu.text {
+
+  public final class AlphabeticIndex implements java.lang.Iterable {
+    ctor public AlphabeticIndex(android.icu.util.ULocale);
+    ctor public AlphabeticIndex(java.util.Locale);
+    ctor public AlphabeticIndex(android.icu.text.RuleBasedCollator);
+    method public android.icu.text.AlphabeticIndex<V> addLabels(android.icu.text.UnicodeSet);
+    method public android.icu.text.AlphabeticIndex<V> addLabels(android.icu.util.ULocale...);
+    method public android.icu.text.AlphabeticIndex<V> addLabels(java.util.Locale...);
+    method public android.icu.text.AlphabeticIndex<V> addRecord(java.lang.CharSequence, V);
+    method public android.icu.text.AlphabeticIndex.ImmutableIndex<V> buildImmutableIndex();
+    method public android.icu.text.AlphabeticIndex<V> clearRecords();
+    method public int getBucketCount();
+    method public int getBucketIndex(java.lang.CharSequence);
+    method public java.util.List<java.lang.String> getBucketLabels();
+    method public android.icu.text.RuleBasedCollator getCollator();
+    method public java.lang.String getInflowLabel();
+    method public int getMaxLabelCount();
+    method public java.lang.String getOverflowLabel();
+    method public int getRecordCount();
+    method public java.lang.String getUnderflowLabel();
+    method public java.util.Iterator<android.icu.text.AlphabeticIndex.Bucket<V>> iterator();
+    method public android.icu.text.AlphabeticIndex<V> setInflowLabel(java.lang.String);
+    method public android.icu.text.AlphabeticIndex<V> setMaxLabelCount(int);
+    method public android.icu.text.AlphabeticIndex<V> setOverflowLabel(java.lang.String);
+    method public android.icu.text.AlphabeticIndex<V> setUnderflowLabel(java.lang.String);
+  }
+
+  public static class AlphabeticIndex.Bucket implements java.lang.Iterable {
+    method public java.lang.String getLabel();
+    method public android.icu.text.AlphabeticIndex.Bucket.LabelType getLabelType();
+    method public java.util.Iterator<android.icu.text.AlphabeticIndex.Record<V>> iterator();
+    method public int size();
+  }
+
+  public static final class AlphabeticIndex.Bucket.LabelType extends java.lang.Enum {
+    method public static android.icu.text.AlphabeticIndex.Bucket.LabelType valueOf(java.lang.String);
+    method public static final android.icu.text.AlphabeticIndex.Bucket.LabelType[] values();
+    enum_constant public static final android.icu.text.AlphabeticIndex.Bucket.LabelType INFLOW;
+    enum_constant public static final android.icu.text.AlphabeticIndex.Bucket.LabelType NORMAL;
+    enum_constant public static final android.icu.text.AlphabeticIndex.Bucket.LabelType OVERFLOW;
+    enum_constant public static final android.icu.text.AlphabeticIndex.Bucket.LabelType UNDERFLOW;
+  }
+
+  public static final class AlphabeticIndex.ImmutableIndex implements java.lang.Iterable {
+    method public android.icu.text.AlphabeticIndex.Bucket<V> getBucket(int);
+    method public int getBucketCount();
+    method public int getBucketIndex(java.lang.CharSequence);
+    method public java.util.Iterator<android.icu.text.AlphabeticIndex.Bucket<V>> iterator();
+  }
+
+  public static class AlphabeticIndex.Record {
+    method public V getData();
+    method public java.lang.CharSequence getName();
+  }
+
+  public abstract class BreakIterator implements java.lang.Cloneable {
+    ctor protected BreakIterator();
+    method public java.lang.Object clone();
+    method public abstract int current();
+    method public abstract int first();
+    method public abstract int following(int);
+    method public static synchronized java.util.Locale[] getAvailableLocales();
+    method public static android.icu.text.BreakIterator getCharacterInstance();
+    method public static android.icu.text.BreakIterator getCharacterInstance(java.util.Locale);
+    method public static android.icu.text.BreakIterator getCharacterInstance(android.icu.util.ULocale);
+    method public static android.icu.text.BreakIterator getLineInstance();
+    method public static android.icu.text.BreakIterator getLineInstance(java.util.Locale);
+    method public static android.icu.text.BreakIterator getLineInstance(android.icu.util.ULocale);
+    method public int getRuleStatus();
+    method public int getRuleStatusVec(int[]);
+    method public static android.icu.text.BreakIterator getSentenceInstance();
+    method public static android.icu.text.BreakIterator getSentenceInstance(java.util.Locale);
+    method public static android.icu.text.BreakIterator getSentenceInstance(android.icu.util.ULocale);
+    method public abstract java.text.CharacterIterator getText();
+    method public static android.icu.text.BreakIterator getTitleInstance();
+    method public static android.icu.text.BreakIterator getTitleInstance(java.util.Locale);
+    method public static android.icu.text.BreakIterator getTitleInstance(android.icu.util.ULocale);
+    method public static android.icu.text.BreakIterator getWordInstance();
+    method public static android.icu.text.BreakIterator getWordInstance(java.util.Locale);
+    method public static android.icu.text.BreakIterator getWordInstance(android.icu.util.ULocale);
+    method public boolean isBoundary(int);
+    method public abstract int last();
+    method public abstract int next(int);
+    method public abstract int next();
+    method public int preceding(int);
+    method public abstract int previous();
+    method public static java.lang.Object registerInstance(android.icu.text.BreakIterator, java.util.Locale, int);
+    method public static java.lang.Object registerInstance(android.icu.text.BreakIterator, android.icu.util.ULocale, int);
+    method public void setText(java.lang.String);
+    method public abstract void setText(java.text.CharacterIterator);
+    method public static boolean unregister(java.lang.Object);
+    field public static final int DONE = -1; // 0xffffffff
+    field public static final int KIND_CHARACTER = 0; // 0x0
+    field public static final int KIND_LINE = 2; // 0x2
+    field public static final int KIND_SENTENCE = 3; // 0x3
+    field public static final int KIND_TITLE = 4; // 0x4
+    field public static final int KIND_WORD = 1; // 0x1
+    field public static final int WORD_IDEO = 400; // 0x190
+    field public static final int WORD_IDEO_LIMIT = 500; // 0x1f4
+    field public static final int WORD_KANA = 300; // 0x12c
+    field public static final int WORD_KANA_LIMIT = 400; // 0x190
+    field public static final int WORD_LETTER = 200; // 0xc8
+    field public static final int WORD_LETTER_LIMIT = 300; // 0x12c
+    field public static final int WORD_NONE = 0; // 0x0
+    field public static final int WORD_NONE_LIMIT = 100; // 0x64
+    field public static final int WORD_NUMBER = 100; // 0x64
+    field public static final int WORD_NUMBER_LIMIT = 200; // 0xc8
+  }
+
+  public final class CollationElementIterator {
+    method public int getMaxExpansion(int);
+    method public int getOffset();
+    method public int next();
+    method public int previous();
+    method public static final int primaryOrder(int);
+    method public void reset();
+    method public static final int secondaryOrder(int);
+    method public void setOffset(int);
+    method public void setText(java.lang.String);
+    method public void setText(android.icu.text.UCharacterIterator);
+    method public void setText(java.text.CharacterIterator);
+    method public static final int tertiaryOrder(int);
+    field public static final int IGNORABLE = 0; // 0x0
+    field public static final int NULLORDER = -1; // 0xffffffff
+  }
+
+  public final class CollationKey implements java.lang.Comparable {
+    ctor public CollationKey(java.lang.String, byte[]);
+    ctor public CollationKey(java.lang.String, android.icu.text.RawCollationKey);
+    method public int compareTo(android.icu.text.CollationKey);
+    method public boolean equals(android.icu.text.CollationKey);
+    method public android.icu.text.CollationKey getBound(int, int);
+    method public java.lang.String getSourceString();
+    method public android.icu.text.CollationKey merge(android.icu.text.CollationKey);
+    method public byte[] toByteArray();
+  }
+
+  public static final class CollationKey.BoundMode {
+    field public static final int COUNT = 3; // 0x3
+    field public static final int LOWER = 0; // 0x0
+    field public static final int UPPER = 1; // 0x1
+    field public static final int UPPER_LONG = 2; // 0x2
+  }
+
+  public abstract class Collator implements java.lang.Cloneable java.util.Comparator android.icu.util.Freezable {
+    ctor protected Collator();
+    method public java.lang.Object clone() throws java.lang.CloneNotSupportedException;
+    method public android.icu.text.Collator cloneAsThawed();
+    method public abstract int compare(java.lang.String, java.lang.String);
+    method public int compare(java.lang.Object, java.lang.Object);
+    method public boolean equals(java.lang.String, java.lang.String);
+    method public android.icu.text.Collator freeze();
+    method public static java.util.Locale[] getAvailableLocales();
+    method public static final android.icu.util.ULocale[] getAvailableULocales();
+    method public abstract android.icu.text.CollationKey getCollationKey(java.lang.String);
+    method public int getDecomposition();
+    method public static java.lang.String getDisplayName(java.util.Locale, java.util.Locale);
+    method public static java.lang.String getDisplayName(android.icu.util.ULocale, android.icu.util.ULocale);
+    method public static java.lang.String getDisplayName(java.util.Locale);
+    method public static java.lang.String getDisplayName(android.icu.util.ULocale);
+    method public static int[] getEquivalentReorderCodes(int);
+    method public static final android.icu.util.ULocale getFunctionalEquivalent(java.lang.String, android.icu.util.ULocale, boolean[]);
+    method public static final android.icu.util.ULocale getFunctionalEquivalent(java.lang.String, android.icu.util.ULocale);
+    method public static final android.icu.text.Collator getInstance();
+    method public static final android.icu.text.Collator getInstance(android.icu.util.ULocale);
+    method public static final android.icu.text.Collator getInstance(java.util.Locale);
+    method public static final java.lang.String[] getKeywordValues(java.lang.String);
+    method public static final java.lang.String[] getKeywordValuesForLocale(java.lang.String, android.icu.util.ULocale, boolean);
+    method public static final java.lang.String[] getKeywords();
+    method public int getMaxVariable();
+    method public abstract android.icu.text.RawCollationKey getRawCollationKey(java.lang.String, android.icu.text.RawCollationKey);
+    method public int[] getReorderCodes();
+    method public int getStrength();
+    method public android.icu.text.UnicodeSet getTailoredSet();
+    method public abstract android.icu.util.VersionInfo getUCAVersion();
+    method public abstract int getVariableTop();
+    method public abstract android.icu.util.VersionInfo getVersion();
+    method public boolean isFrozen();
+    method public static final java.lang.Object registerFactory(android.icu.text.Collator.CollatorFactory);
+    method public static final java.lang.Object registerInstance(android.icu.text.Collator, android.icu.util.ULocale);
+    method public void setDecomposition(int);
+    method public android.icu.text.Collator setMaxVariable(int);
+    method public void setReorderCodes(int...);
+    method public void setStrength(int);
+    method public static final boolean unregister(java.lang.Object);
+    field public static final int CANONICAL_DECOMPOSITION = 17; // 0x11
+    field public static final int FULL_DECOMPOSITION = 15; // 0xf
+    field public static final int IDENTICAL = 15; // 0xf
+    field public static final int NO_DECOMPOSITION = 16; // 0x10
+    field public static final int PRIMARY = 0; // 0x0
+    field public static final int QUATERNARY = 3; // 0x3
+    field public static final int SECONDARY = 1; // 0x1
+    field public static final int TERTIARY = 2; // 0x2
+  }
+
+  public static abstract class Collator.CollatorFactory {
+    ctor protected Collator.CollatorFactory();
+    method public android.icu.text.Collator createCollator(android.icu.util.ULocale);
+    method public android.icu.text.Collator createCollator(java.util.Locale);
+    method public java.lang.String getDisplayName(java.util.Locale, java.util.Locale);
+    method public java.lang.String getDisplayName(android.icu.util.ULocale, android.icu.util.ULocale);
+    method public abstract java.util.Set<java.lang.String> getSupportedLocaleIDs();
+    method public boolean visible();
+  }
+
+  public static abstract interface Collator.ReorderCodes {
+    field public static final int CURRENCY = 4099; // 0x1003
+    field public static final int DEFAULT = -1; // 0xffffffff
+    field public static final int DIGIT = 4100; // 0x1004
+    field public static final int FIRST = 4096; // 0x1000
+    field public static final int LIMIT = 4101; // 0x1005
+    field public static final int NONE = 103; // 0x67
+    field public static final int OTHERS = 103; // 0x67
+    field public static final int PUNCTUATION = 4097; // 0x1001
+    field public static final int SPACE = 4096; // 0x1000
+    field public static final int SYMBOL = 4098; // 0x1002
+  }
+
+  public class CompactDecimalFormat extends android.icu.text.DecimalFormat {
+    method public static android.icu.text.CompactDecimalFormat getInstance(android.icu.util.ULocale, android.icu.text.CompactDecimalFormat.CompactStyle);
+    method public static android.icu.text.CompactDecimalFormat getInstance(java.util.Locale, android.icu.text.CompactDecimalFormat.CompactStyle);
+  }
+
+  public static final class CompactDecimalFormat.CompactStyle extends java.lang.Enum {
+    method public static android.icu.text.CompactDecimalFormat.CompactStyle valueOf(java.lang.String);
+    method public static final android.icu.text.CompactDecimalFormat.CompactStyle[] values();
+    enum_constant public static final android.icu.text.CompactDecimalFormat.CompactStyle LONG;
+    enum_constant public static final android.icu.text.CompactDecimalFormat.CompactStyle SHORT;
+  }
+
+  public class CurrencyPluralInfo implements java.lang.Cloneable java.io.Serializable {
+    ctor public CurrencyPluralInfo();
+    ctor public CurrencyPluralInfo(java.util.Locale);
+    ctor public CurrencyPluralInfo(android.icu.util.ULocale);
+    method public java.lang.Object clone();
+    method public java.lang.String getCurrencyPluralPattern(java.lang.String);
+    method public static android.icu.text.CurrencyPluralInfo getInstance();
+    method public static android.icu.text.CurrencyPluralInfo getInstance(java.util.Locale);
+    method public static android.icu.text.CurrencyPluralInfo getInstance(android.icu.util.ULocale);
+    method public android.icu.util.ULocale getLocale();
+    method public android.icu.text.PluralRules getPluralRules();
+    method public void setCurrencyPluralPattern(java.lang.String, java.lang.String);
+    method public void setLocale(android.icu.util.ULocale);
+    method public void setPluralRules(java.lang.String);
+  }
+
+  public abstract class DateFormat extends android.icu.text.UFormat {
+    ctor protected DateFormat();
+    method public final java.lang.StringBuffer format(java.lang.Object, java.lang.StringBuffer, java.text.FieldPosition);
+    method public abstract java.lang.StringBuffer format(android.icu.util.Calendar, java.lang.StringBuffer, java.text.FieldPosition);
+    method public java.lang.StringBuffer format(java.util.Date, java.lang.StringBuffer, java.text.FieldPosition);
+    method public final java.lang.String format(java.util.Date);
+    method public static java.util.Locale[] getAvailableLocales();
+    method public boolean getBooleanAttribute(android.icu.text.DateFormat.BooleanAttribute);
+    method public android.icu.util.Calendar getCalendar();
+    method public android.icu.text.DisplayContext getContext(android.icu.text.DisplayContext.Type);
+    method public static final android.icu.text.DateFormat getDateInstance();
+    method public static final android.icu.text.DateFormat getDateInstance(int);
+    method public static final android.icu.text.DateFormat getDateInstance(int, java.util.Locale);
+    method public static final android.icu.text.DateFormat getDateInstance(int, android.icu.util.ULocale);
+    method public static final android.icu.text.DateFormat getDateInstance(android.icu.util.Calendar, int, java.util.Locale);
+    method public static final android.icu.text.DateFormat getDateInstance(android.icu.util.Calendar, int, android.icu.util.ULocale);
+    method public static final android.icu.text.DateFormat getDateInstance(android.icu.util.Calendar, int);
+    method public static final android.icu.text.DateFormat getDateTimeInstance();
+    method public static final android.icu.text.DateFormat getDateTimeInstance(int, int);
+    method public static final android.icu.text.DateFormat getDateTimeInstance(int, int, java.util.Locale);
+    method public static final android.icu.text.DateFormat getDateTimeInstance(int, int, android.icu.util.ULocale);
+    method public static final android.icu.text.DateFormat getDateTimeInstance(android.icu.util.Calendar, int, int, java.util.Locale);
+    method public static final android.icu.text.DateFormat getDateTimeInstance(android.icu.util.Calendar, int, int, android.icu.util.ULocale);
+    method public static final android.icu.text.DateFormat getDateTimeInstance(android.icu.util.Calendar, int, int);
+    method public static final android.icu.text.DateFormat getInstance();
+    method public static final android.icu.text.DateFormat getInstance(android.icu.util.Calendar, java.util.Locale);
+    method public static final android.icu.text.DateFormat getInstance(android.icu.util.Calendar);
+    method public static final android.icu.text.DateFormat getInstanceForSkeleton(java.lang.String);
+    method public static final android.icu.text.DateFormat getInstanceForSkeleton(java.lang.String, java.util.Locale);
+    method public static final android.icu.text.DateFormat getInstanceForSkeleton(java.lang.String, android.icu.util.ULocale);
+    method public static final android.icu.text.DateFormat getInstanceForSkeleton(android.icu.util.Calendar, java.lang.String, java.util.Locale);
+    method public static final android.icu.text.DateFormat getInstanceForSkeleton(android.icu.util.Calendar, java.lang.String, android.icu.util.ULocale);
+    method public android.icu.text.NumberFormat getNumberFormat();
+    method public static final android.icu.text.DateFormat getPatternInstance(java.lang.String);
+    method public static final android.icu.text.DateFormat getPatternInstance(java.lang.String, java.util.Locale);
+    method public static final android.icu.text.DateFormat getPatternInstance(java.lang.String, android.icu.util.ULocale);
+    method public static final android.icu.text.DateFormat getPatternInstance(android.icu.util.Calendar, java.lang.String, java.util.Locale);
+    method public static final android.icu.text.DateFormat getPatternInstance(android.icu.util.Calendar, java.lang.String, android.icu.util.ULocale);
+    method public static final android.icu.text.DateFormat getTimeInstance();
+    method public static final android.icu.text.DateFormat getTimeInstance(int);
+    method public static final android.icu.text.DateFormat getTimeInstance(int, java.util.Locale);
+    method public static final android.icu.text.DateFormat getTimeInstance(int, android.icu.util.ULocale);
+    method public static final android.icu.text.DateFormat getTimeInstance(android.icu.util.Calendar, int, java.util.Locale);
+    method public static final android.icu.text.DateFormat getTimeInstance(android.icu.util.Calendar, int, android.icu.util.ULocale);
+    method public static final android.icu.text.DateFormat getTimeInstance(android.icu.util.Calendar, int);
+    method public android.icu.util.TimeZone getTimeZone();
+    method public boolean isCalendarLenient();
+    method public boolean isLenient();
+    method public java.util.Date parse(java.lang.String) throws java.text.ParseException;
+    method public abstract void parse(java.lang.String, android.icu.util.Calendar, java.text.ParsePosition);
+    method public java.util.Date parse(java.lang.String, java.text.ParsePosition);
+    method public java.lang.Object parseObject(java.lang.String, java.text.ParsePosition);
+    method public android.icu.text.DateFormat setBooleanAttribute(android.icu.text.DateFormat.BooleanAttribute, boolean);
+    method public void setCalendar(android.icu.util.Calendar);
+    method public void setCalendarLenient(boolean);
+    method public void setContext(android.icu.text.DisplayContext);
+    method public void setLenient(boolean);
+    method public void setNumberFormat(android.icu.text.NumberFormat);
+    method public void setTimeZone(android.icu.util.TimeZone);
+    field public static final java.lang.String ABBR_GENERIC_TZ = "v";
+    field public static final java.lang.String ABBR_MONTH = "MMM";
+    field public static final java.lang.String ABBR_MONTH_DAY = "MMMd";
+    field public static final java.lang.String ABBR_MONTH_WEEKDAY_DAY = "MMMEd";
+    field public static final java.lang.String ABBR_QUARTER = "QQQ";
+    field public static final java.lang.String ABBR_SPECIFIC_TZ = "z";
+    field public static final java.lang.String ABBR_UTC_TZ = "ZZZZ";
+    field public static final java.lang.String ABBR_WEEKDAY = "E";
+    field public static final int AM_PM_FIELD = 14; // 0xe
+    field public static final int DATE_FIELD = 3; // 0x3
+    field public static final java.lang.String DAY = "d";
+    field public static final int DAY_OF_WEEK_FIELD = 9; // 0x9
+    field public static final int DAY_OF_WEEK_IN_MONTH_FIELD = 11; // 0xb
+    field public static final int DAY_OF_YEAR_FIELD = 10; // 0xa
+    field public static final int DEFAULT = 2; // 0x2
+    field public static final int DOW_LOCAL_FIELD = 19; // 0x13
+    field public static final int ERA_FIELD = 0; // 0x0
+    field public static final int EXTENDED_YEAR_FIELD = 20; // 0x14
+    field public static final int FIELD_COUNT = 36; // 0x24
+    field public static final int FRACTIONAL_SECOND_FIELD = 8; // 0x8
+    field public static final int FULL = 0; // 0x0
+    field public static final java.lang.String GENERIC_TZ = "vvvv";
+    field public static final java.lang.String HOUR = "j";
+    field public static final int HOUR0_FIELD = 16; // 0x10
+    field public static final int HOUR1_FIELD = 15; // 0xf
+    field public static final java.lang.String HOUR24 = "H";
+    field public static final java.lang.String HOUR24_MINUTE = "Hm";
+    field public static final java.lang.String HOUR24_MINUTE_SECOND = "Hms";
+    field public static final java.lang.String HOUR_MINUTE = "jm";
+    field public static final java.lang.String HOUR_MINUTE_SECOND = "jms";
+    field public static final int HOUR_OF_DAY0_FIELD = 5; // 0x5
+    field public static final int HOUR_OF_DAY1_FIELD = 4; // 0x4
+    field public static final int JULIAN_DAY_FIELD = 21; // 0x15
+    field public static final java.lang.String LOCATION_TZ = "VVVV";
+    field public static final int LONG = 1; // 0x1
+    field public static final int MEDIUM = 2; // 0x2
+    field public static final int MILLISECONDS_IN_DAY_FIELD = 22; // 0x16
+    field public static final int MILLISECOND_FIELD = 8; // 0x8
+    field public static final java.lang.String MINUTE = "m";
+    field public static final int MINUTE_FIELD = 6; // 0x6
+    field public static final java.lang.String MINUTE_SECOND = "ms";
+    field public static final java.lang.String MONTH = "MMMM";
+    field public static final java.lang.String MONTH_DAY = "MMMMd";
+    field public static final int MONTH_FIELD = 2; // 0x2
+    field public static final java.lang.String MONTH_WEEKDAY_DAY = "MMMMEEEEd";
+    field public static final int NONE = -1; // 0xffffffff
+    field public static final java.lang.String NUM_MONTH = "M";
+    field public static final java.lang.String NUM_MONTH_DAY = "Md";
+    field public static final java.lang.String NUM_MONTH_WEEKDAY_DAY = "MEd";
+    field public static final java.lang.String QUARTER = "QQQQ";
+    field public static final int QUARTER_FIELD = 27; // 0x1b
+    field public static final int RELATIVE = 128; // 0x80
+    field public static final int RELATIVE_DEFAULT = 130; // 0x82
+    field public static final int RELATIVE_FULL = 128; // 0x80
+    field public static final int RELATIVE_LONG = 129; // 0x81
+    field public static final int RELATIVE_MEDIUM = 130; // 0x82
+    field public static final int RELATIVE_SHORT = 131; // 0x83
+    field public static final java.lang.String SECOND = "s";
+    field public static final int SECOND_FIELD = 7; // 0x7
+    field public static final int SHORT = 3; // 0x3
+    field public static final java.lang.String SPECIFIC_TZ = "zzzz";
+    field public static final int STANDALONE_DAY_FIELD = 25; // 0x19
+    field public static final int STANDALONE_MONTH_FIELD = 26; // 0x1a
+    field public static final int STANDALONE_QUARTER_FIELD = 28; // 0x1c
+    field public static final int TIMEZONE_FIELD = 17; // 0x11
+    field public static final int TIMEZONE_GENERIC_FIELD = 24; // 0x18
+    field public static final int TIMEZONE_ISO_FIELD = 32; // 0x20
+    field public static final int TIMEZONE_ISO_LOCAL_FIELD = 33; // 0x21
+    field public static final int TIMEZONE_LOCALIZED_GMT_OFFSET_FIELD = 31; // 0x1f
+    field public static final int TIMEZONE_RFC_FIELD = 23; // 0x17
+    field public static final int TIMEZONE_SPECIAL_FIELD = 29; // 0x1d
+    field public static final java.lang.String WEEKDAY = "EEEE";
+    field public static final int WEEK_OF_MONTH_FIELD = 13; // 0xd
+    field public static final int WEEK_OF_YEAR_FIELD = 12; // 0xc
+    field public static final java.lang.String YEAR = "y";
+    field public static final java.lang.String YEAR_ABBR_MONTH = "yMMM";
+    field public static final java.lang.String YEAR_ABBR_MONTH_DAY = "yMMMd";
+    field public static final java.lang.String YEAR_ABBR_MONTH_WEEKDAY_DAY = "yMMMEd";
+    field public static final java.lang.String YEAR_ABBR_QUARTER = "yQQQ";
+    field public static final int YEAR_FIELD = 1; // 0x1
+    field public static final java.lang.String YEAR_MONTH = "yMMMM";
+    field public static final java.lang.String YEAR_MONTH_DAY = "yMMMMd";
+    field public static final java.lang.String YEAR_MONTH_WEEKDAY_DAY = "yMMMMEEEEd";
+    field public static final int YEAR_NAME_FIELD = 30; // 0x1e
+    field public static final java.lang.String YEAR_NUM_MONTH = "yM";
+    field public static final java.lang.String YEAR_NUM_MONTH_DAY = "yMd";
+    field public static final java.lang.String YEAR_NUM_MONTH_WEEKDAY_DAY = "yMEd";
+    field public static final java.lang.String YEAR_QUARTER = "yQQQQ";
+    field public static final int YEAR_WOY_FIELD = 18; // 0x12
+    field protected android.icu.util.Calendar calendar;
+    field protected android.icu.text.NumberFormat numberFormat;
+  }
+
+  public static final class DateFormat.BooleanAttribute extends java.lang.Enum {
+    method public static android.icu.text.DateFormat.BooleanAttribute valueOf(java.lang.String);
+    method public static final android.icu.text.DateFormat.BooleanAttribute[] values();
+    enum_constant public static final android.icu.text.DateFormat.BooleanAttribute PARSE_ALLOW_NUMERIC;
+    enum_constant public static final android.icu.text.DateFormat.BooleanAttribute PARSE_ALLOW_WHITESPACE;
+  }
+
+  public static class DateFormat.Field extends java.text.Format.Field {
+    ctor protected DateFormat.Field(java.lang.String, int);
+    method public int getCalendarField();
+    method public static android.icu.text.DateFormat.Field ofCalendarField(int);
+    field public static final android.icu.text.DateFormat.Field AM_PM;
+    field public static final android.icu.text.DateFormat.Field DAY_OF_MONTH;
+    field public static final android.icu.text.DateFormat.Field DAY_OF_WEEK;
+    field public static final android.icu.text.DateFormat.Field DAY_OF_WEEK_IN_MONTH;
+    field public static final android.icu.text.DateFormat.Field DAY_OF_YEAR;
+    field public static final android.icu.text.DateFormat.Field DOW_LOCAL;
+    field public static final android.icu.text.DateFormat.Field ERA;
+    field public static final android.icu.text.DateFormat.Field EXTENDED_YEAR;
+    field public static final android.icu.text.DateFormat.Field HOUR0;
+    field public static final android.icu.text.DateFormat.Field HOUR1;
+    field public static final android.icu.text.DateFormat.Field HOUR_OF_DAY0;
+    field public static final android.icu.text.DateFormat.Field HOUR_OF_DAY1;
+    field public static final android.icu.text.DateFormat.Field JULIAN_DAY;
+    field public static final android.icu.text.DateFormat.Field MILLISECOND;
+    field public static final android.icu.text.DateFormat.Field MILLISECONDS_IN_DAY;
+    field public static final android.icu.text.DateFormat.Field MINUTE;
+    field public static final android.icu.text.DateFormat.Field MONTH;
+    field public static final android.icu.text.DateFormat.Field QUARTER;
+    field public static final android.icu.text.DateFormat.Field SECOND;
+    field public static final android.icu.text.DateFormat.Field TIME_ZONE;
+    field public static final android.icu.text.DateFormat.Field WEEK_OF_MONTH;
+    field public static final android.icu.text.DateFormat.Field WEEK_OF_YEAR;
+    field public static final android.icu.text.DateFormat.Field YEAR;
+    field public static final android.icu.text.DateFormat.Field YEAR_WOY;
+  }
+
+  public class DateFormatSymbols implements java.lang.Cloneable java.io.Serializable {
+    ctor public DateFormatSymbols();
+    ctor public DateFormatSymbols(java.util.Locale);
+    ctor public DateFormatSymbols(android.icu.util.ULocale);
+    ctor public DateFormatSymbols(android.icu.util.Calendar, java.util.Locale);
+    ctor public DateFormatSymbols(android.icu.util.Calendar, android.icu.util.ULocale);
+    ctor public DateFormatSymbols(java.lang.Class<? extends android.icu.util.Calendar>, java.util.Locale);
+    ctor public DateFormatSymbols(java.lang.Class<? extends android.icu.util.Calendar>, android.icu.util.ULocale);
+    ctor public DateFormatSymbols(java.util.ResourceBundle, java.util.Locale);
+    ctor public DateFormatSymbols(java.util.ResourceBundle, android.icu.util.ULocale);
+    method public java.lang.Object clone();
+    method public java.lang.String[] getAmPmStrings();
+    method public static java.util.Locale[] getAvailableLocales();
+    method public java.lang.String[] getEraNames();
+    method public java.lang.String[] getEras();
+    method public static android.icu.text.DateFormatSymbols getInstance();
+    method public static android.icu.text.DateFormatSymbols getInstance(java.util.Locale);
+    method public static android.icu.text.DateFormatSymbols getInstance(android.icu.util.ULocale);
+    method public java.lang.String getLocalPatternChars();
+    method public java.lang.String[] getMonths();
+    method public java.lang.String[] getMonths(int, int);
+    method public java.lang.String[] getQuarters(int, int);
+    method public java.lang.String[] getShortMonths();
+    method public java.lang.String[] getShortWeekdays();
+    method public java.lang.String[] getWeekdays();
+    method public java.lang.String[] getWeekdays(int, int);
+    method public java.lang.String[] getYearNames(int, int);
+    method public java.lang.String[] getZodiacNames(int, int);
+    method public java.lang.String[][] getZoneStrings();
+    method protected void initializeData(android.icu.util.ULocale, java.lang.String);
+    method public void setAmPmStrings(java.lang.String[]);
+    method public void setEraNames(java.lang.String[]);
+    method public void setEras(java.lang.String[]);
+    method public void setLocalPatternChars(java.lang.String);
+    method public void setMonths(java.lang.String[]);
+    method public void setMonths(java.lang.String[], int, int);
+    method public void setQuarters(java.lang.String[], int, int);
+    method public void setShortMonths(java.lang.String[]);
+    method public void setShortWeekdays(java.lang.String[]);
+    method public void setWeekdays(java.lang.String[], int, int);
+    method public void setWeekdays(java.lang.String[]);
+    method public void setYearNames(java.lang.String[], int, int);
+    method public void setZodiacNames(java.lang.String[], int, int);
+    method public void setZoneStrings(java.lang.String[][]);
+    field public static final int ABBREVIATED = 0; // 0x0
+    field public static final int FORMAT = 0; // 0x0
+    field public static final int NARROW = 2; // 0x2
+    field public static final int SHORT = 3; // 0x3
+    field public static final int STANDALONE = 1; // 0x1
+    field public static final int WIDE = 1; // 0x1
+  }
+
+  public class DateIntervalFormat extends android.icu.text.UFormat {
+    method public final java.lang.StringBuffer format(java.lang.Object, java.lang.StringBuffer, java.text.FieldPosition);
+    method public final java.lang.StringBuffer format(android.icu.util.DateInterval, java.lang.StringBuffer, java.text.FieldPosition);
+    method public final java.lang.StringBuffer format(android.icu.util.Calendar, android.icu.util.Calendar, java.lang.StringBuffer, java.text.FieldPosition);
+    method public android.icu.text.DateFormat getDateFormat();
+    method public android.icu.text.DateIntervalInfo getDateIntervalInfo();
+    method public static final android.icu.text.DateIntervalFormat getInstance(java.lang.String);
+    method public static final android.icu.text.DateIntervalFormat getInstance(java.lang.String, java.util.Locale);
+    method public static final android.icu.text.DateIntervalFormat getInstance(java.lang.String, android.icu.util.ULocale);
+    method public static final android.icu.text.DateIntervalFormat getInstance(java.lang.String, android.icu.text.DateIntervalInfo);
+    method public static final android.icu.text.DateIntervalFormat getInstance(java.lang.String, java.util.Locale, android.icu.text.DateIntervalInfo);
+    method public static final android.icu.text.DateIntervalFormat getInstance(java.lang.String, android.icu.util.ULocale, android.icu.text.DateIntervalInfo);
+    method public android.icu.util.TimeZone getTimeZone();
+    method public deprecated java.lang.Object parseObject(java.lang.String, java.text.ParsePosition);
+    method public void setDateIntervalInfo(android.icu.text.DateIntervalInfo);
+    method public void setTimeZone(android.icu.util.TimeZone);
+  }
+
+  public class DateIntervalInfo implements java.lang.Cloneable android.icu.util.Freezable java.io.Serializable {
+    ctor public DateIntervalInfo(android.icu.util.ULocale);
+    ctor public DateIntervalInfo(java.util.Locale);
+    method public java.lang.Object clone();
+    method public android.icu.text.DateIntervalInfo cloneAsThawed();
+    method public android.icu.text.DateIntervalInfo freeze();
+    method public boolean getDefaultOrder();
+    method public java.lang.String getFallbackIntervalPattern();
+    method public android.icu.text.DateIntervalInfo.PatternInfo getIntervalPattern(java.lang.String, int);
+    method public boolean isFrozen();
+    method public void setFallbackIntervalPattern(java.lang.String);
+    method public void setIntervalPattern(java.lang.String, int, java.lang.String);
+  }
+
+  public static final class DateIntervalInfo.PatternInfo implements java.lang.Cloneable java.io.Serializable {
+    ctor public DateIntervalInfo.PatternInfo(java.lang.String, java.lang.String, boolean);
+    method public boolean firstDateInPtnIsLaterDate();
+    method public java.lang.String getFirstPart();
+    method public java.lang.String getSecondPart();
+  }
+
+  public class DateTimePatternGenerator implements java.lang.Cloneable android.icu.util.Freezable {
+    ctor protected DateTimePatternGenerator();
+    method public android.icu.text.DateTimePatternGenerator addPattern(java.lang.String, boolean, android.icu.text.DateTimePatternGenerator.PatternInfo);
+    method public java.lang.Object clone();
+    method public android.icu.text.DateTimePatternGenerator cloneAsThawed();
+    method public android.icu.text.DateTimePatternGenerator freeze();
+    method public java.lang.String getAppendItemFormat(int);
+    method public java.lang.String getAppendItemName(int);
+    method public java.lang.String getBaseSkeleton(java.lang.String);
+    method public java.util.Set<java.lang.String> getBaseSkeletons(java.util.Set<java.lang.String>);
+    method public java.lang.String getBestPattern(java.lang.String);
+    method public java.lang.String getBestPattern(java.lang.String, int);
+    method public java.lang.String getDateTimeFormat();
+    method public java.lang.String getDecimal();
+    method public static android.icu.text.DateTimePatternGenerator getEmptyInstance();
+    method public static android.icu.text.DateTimePatternGenerator getInstance();
+    method public static android.icu.text.DateTimePatternGenerator getInstance(android.icu.util.ULocale);
+    method public static android.icu.text.DateTimePatternGenerator getInstance(java.util.Locale);
+    method public java.lang.String getSkeleton(java.lang.String);
+    method public java.util.Map<java.lang.String, java.lang.String> getSkeletons(java.util.Map<java.lang.String, java.lang.String>);
+    method public boolean isFrozen();
+    method public java.lang.String replaceFieldTypes(java.lang.String, java.lang.String);
+    method public java.lang.String replaceFieldTypes(java.lang.String, java.lang.String, int);
+    method public void setAppendItemFormat(int, java.lang.String);
+    method public void setAppendItemName(int, java.lang.String);
+    method public void setDateTimeFormat(java.lang.String);
+    method public void setDecimal(java.lang.String);
+    field public static final int DAY = 7; // 0x7
+    field public static final int DAYPERIOD = 10; // 0xa
+    field public static final int DAY_OF_WEEK_IN_MONTH = 9; // 0x9
+    field public static final int DAY_OF_YEAR = 8; // 0x8
+    field public static final int ERA = 0; // 0x0
+    field public static final int FRACTIONAL_SECOND = 14; // 0xe
+    field public static final int HOUR = 11; // 0xb
+    field public static final int MATCH_ALL_FIELDS_LENGTH = 65535; // 0xffff
+    field public static final int MATCH_HOUR_FIELD_LENGTH = 2048; // 0x800
+    field public static final int MATCH_NO_OPTIONS = 0; // 0x0
+    field public static final int MINUTE = 12; // 0xc
+    field public static final int MONTH = 3; // 0x3
+    field public static final int QUARTER = 2; // 0x2
+    field public static final int SECOND = 13; // 0xd
+    field public static final int TYPE_LIMIT = 16; // 0x10
+    field public static final int WEEKDAY = 6; // 0x6
+    field public static final int WEEK_OF_MONTH = 5; // 0x5
+    field public static final int WEEK_OF_YEAR = 4; // 0x4
+    field public static final int YEAR = 1; // 0x1
+    field public static final int ZONE = 15; // 0xf
+  }
+
+  public static final class DateTimePatternGenerator.PatternInfo {
+    ctor public DateTimePatternGenerator.PatternInfo();
+    field public static final int BASE_CONFLICT = 1; // 0x1
+    field public static final int CONFLICT = 2; // 0x2
+    field public static final int OK = 0; // 0x0
+    field public java.lang.String conflictingPattern;
+    field public int status;
+  }
+
+  public class DecimalFormat extends android.icu.text.NumberFormat {
+    ctor public DecimalFormat();
+    ctor public DecimalFormat(java.lang.String);
+    ctor public DecimalFormat(java.lang.String, android.icu.text.DecimalFormatSymbols);
+    ctor public DecimalFormat(java.lang.String, android.icu.text.DecimalFormatSymbols, android.icu.text.CurrencyPluralInfo, int);
+    method public void applyLocalizedPattern(java.lang.String);
+    method public void applyPattern(java.lang.String);
+    method public boolean areSignificantDigitsUsed();
+    method public java.lang.StringBuffer format(double, java.lang.StringBuffer, java.text.FieldPosition);
+    method public java.lang.StringBuffer format(long, java.lang.StringBuffer, java.text.FieldPosition);
+    method public java.lang.StringBuffer format(java.math.BigInteger, java.lang.StringBuffer, java.text.FieldPosition);
+    method public java.lang.StringBuffer format(java.math.BigDecimal, java.lang.StringBuffer, java.text.FieldPosition);
+    method public java.lang.StringBuffer format(android.icu.math.BigDecimal, java.lang.StringBuffer, java.text.FieldPosition);
+    method public android.icu.text.CurrencyPluralInfo getCurrencyPluralInfo();
+    method public android.icu.util.Currency.CurrencyUsage getCurrencyUsage();
+    method public android.icu.text.DecimalFormatSymbols getDecimalFormatSymbols();
+    method public int getFormatWidth();
+    method public int getGroupingSize();
+    method public java.math.MathContext getMathContext();
+    method public android.icu.math.MathContext getMathContextICU();
+    method public int getMaximumSignificantDigits();
+    method public byte getMinimumExponentDigits();
+    method public int getMinimumSignificantDigits();
+    method public int getMultiplier();
+    method public java.lang.String getNegativePrefix();
+    method public java.lang.String getNegativeSuffix();
+    method public char getPadCharacter();
+    method public int getPadPosition();
+    method public int getParseMaxDigits();
+    method public java.lang.String getPositivePrefix();
+    method public java.lang.String getPositiveSuffix();
+    method public java.math.BigDecimal getRoundingIncrement();
+    method public int getSecondaryGroupingSize();
+    method public boolean isDecimalPatternMatchRequired();
+    method public boolean isDecimalSeparatorAlwaysShown();
+    method public boolean isExponentSignAlwaysShown();
+    method public boolean isParseBigDecimal();
+    method public boolean isScientificNotation();
+    method public java.lang.Number parse(java.lang.String, java.text.ParsePosition);
+    method public void setCurrencyPluralInfo(android.icu.text.CurrencyPluralInfo);
+    method public void setCurrencyUsage(android.icu.util.Currency.CurrencyUsage);
+    method public void setDecimalFormatSymbols(android.icu.text.DecimalFormatSymbols);
+    method public void setDecimalPatternMatchRequired(boolean);
+    method public void setDecimalSeparatorAlwaysShown(boolean);
+    method public void setExponentSignAlwaysShown(boolean);
+    method public void setFormatWidth(int);
+    method public void setGroupingSize(int);
+    method public void setMathContext(java.math.MathContext);
+    method public void setMathContextICU(android.icu.math.MathContext);
+    method public void setMaximumSignificantDigits(int);
+    method public void setMinimumExponentDigits(byte);
+    method public void setMinimumSignificantDigits(int);
+    method public void setMultiplier(int);
+    method public void setNegativePrefix(java.lang.String);
+    method public void setNegativeSuffix(java.lang.String);
+    method public void setPadCharacter(char);
+    method public void setPadPosition(int);
+    method public void setParseBigDecimal(boolean);
+    method public void setParseMaxDigits(int);
+    method public void setPositivePrefix(java.lang.String);
+    method public void setPositiveSuffix(java.lang.String);
+    method public void setRoundingIncrement(java.math.BigDecimal);
+    method public void setRoundingIncrement(android.icu.math.BigDecimal);
+    method public void setRoundingIncrement(double);
+    method public void setScientificNotation(boolean);
+    method public void setSecondaryGroupingSize(int);
+    method public void setSignificantDigitsUsed(boolean);
+    method public java.lang.String toLocalizedPattern();
+    method public java.lang.String toPattern();
+    field public static final int PAD_AFTER_PREFIX = 1; // 0x1
+    field public static final int PAD_AFTER_SUFFIX = 3; // 0x3
+    field public static final int PAD_BEFORE_PREFIX = 0; // 0x0
+    field public static final int PAD_BEFORE_SUFFIX = 2; // 0x2
+  }
+
+  public class DecimalFormatSymbols implements java.lang.Cloneable java.io.Serializable {
+    ctor public DecimalFormatSymbols();
+    ctor public DecimalFormatSymbols(java.util.Locale);
+    ctor public DecimalFormatSymbols(android.icu.util.ULocale);
+    method public java.lang.Object clone();
+    method public static java.util.Locale[] getAvailableLocales();
+    method public android.icu.util.Currency getCurrency();
+    method public java.lang.String getCurrencySymbol();
+    method public char getDecimalSeparator();
+    method public char getDigit();
+    method public char[] getDigits();
+    method public java.lang.String getExponentMultiplicationSign();
+    method public java.lang.String getExponentSeparator();
+    method public char getGroupingSeparator();
+    method public java.lang.String getInfinity();
+    method public static android.icu.text.DecimalFormatSymbols getInstance();
+    method public static android.icu.text.DecimalFormatSymbols getInstance(java.util.Locale);
+    method public static android.icu.text.DecimalFormatSymbols getInstance(android.icu.util.ULocale);
+    method public java.lang.String getInternationalCurrencySymbol();
+    method public java.util.Locale getLocale();
+    method public char getMinusSign();
+    method public char getMonetaryDecimalSeparator();
+    method public char getMonetaryGroupingSeparator();
+    method public java.lang.String getNaN();
+    method public char getPadEscape();
+    method public java.lang.String getPatternForCurrencySpacing(int, boolean);
+    method public char getPatternSeparator();
+    method public char getPerMill();
+    method public char getPercent();
+    method public char getPlusSign();
+    method public char getSignificantDigit();
+    method public android.icu.util.ULocale getULocale();
+    method public char getZeroDigit();
+    method public void setCurrency(android.icu.util.Currency);
+    method public void setCurrencySymbol(java.lang.String);
+    method public void setDecimalSeparator(char);
+    method public void setDigit(char);
+    method public void setExponentMultiplicationSign(java.lang.String);
+    method public void setExponentSeparator(java.lang.String);
+    method public void setGroupingSeparator(char);
+    method public void setInfinity(java.lang.String);
+    method public void setInternationalCurrencySymbol(java.lang.String);
+    method public void setMinusSign(char);
+    method public void setMonetaryDecimalSeparator(char);
+    method public void setMonetaryGroupingSeparator(char);
+    method public void setNaN(java.lang.String);
+    method public void setPadEscape(char);
+    method public void setPatternForCurrencySpacing(int, boolean, java.lang.String);
+    method public void setPatternSeparator(char);
+    method public void setPerMill(char);
+    method public void setPercent(char);
+    method public void setPlusSign(char);
+    method public void setSignificantDigit(char);
+    method public void setZeroDigit(char);
+    field public static final int CURRENCY_SPC_CURRENCY_MATCH = 0; // 0x0
+    field public static final int CURRENCY_SPC_INSERT = 2; // 0x2
+    field public static final int CURRENCY_SPC_SURROUNDING_MATCH = 1; // 0x1
+  }
+
+  public final class DisplayContext extends java.lang.Enum {
+    method public android.icu.text.DisplayContext.Type type();
+    method public int value();
+    method public static android.icu.text.DisplayContext valueOf(java.lang.String);
+    method public static final android.icu.text.DisplayContext[] values();
+    enum_constant public static final android.icu.text.DisplayContext CAPITALIZATION_FOR_BEGINNING_OF_SENTENCE;
+    enum_constant public static final android.icu.text.DisplayContext CAPITALIZATION_FOR_MIDDLE_OF_SENTENCE;
+    enum_constant public static final android.icu.text.DisplayContext CAPITALIZATION_FOR_STANDALONE;
+    enum_constant public static final android.icu.text.DisplayContext CAPITALIZATION_FOR_UI_LIST_OR_MENU;
+    enum_constant public static final android.icu.text.DisplayContext CAPITALIZATION_NONE;
+    enum_constant public static final android.icu.text.DisplayContext DIALECT_NAMES;
+    enum_constant public static final android.icu.text.DisplayContext LENGTH_FULL;
+    enum_constant public static final android.icu.text.DisplayContext LENGTH_SHORT;
+    enum_constant public static final android.icu.text.DisplayContext STANDARD_NAMES;
+  }
+
+  public static final class DisplayContext.Type extends java.lang.Enum {
+    method public static android.icu.text.DisplayContext.Type valueOf(java.lang.String);
+    method public static final android.icu.text.DisplayContext.Type[] values();
+    enum_constant public static final android.icu.text.DisplayContext.Type CAPITALIZATION;
+    enum_constant public static final android.icu.text.DisplayContext.Type DIALECT_HANDLING;
+    enum_constant public static final android.icu.text.DisplayContext.Type DISPLAY_LENGTH;
+  }
+
+  public abstract class IDNA {
+    method public static android.icu.text.IDNA getUTS46Instance(int);
+    method public abstract java.lang.StringBuilder labelToASCII(java.lang.CharSequence, java.lang.StringBuilder, android.icu.text.IDNA.Info);
+    method public abstract java.lang.StringBuilder labelToUnicode(java.lang.CharSequence, java.lang.StringBuilder, android.icu.text.IDNA.Info);
+    method public abstract java.lang.StringBuilder nameToASCII(java.lang.CharSequence, java.lang.StringBuilder, android.icu.text.IDNA.Info);
+    method public abstract java.lang.StringBuilder nameToUnicode(java.lang.CharSequence, java.lang.StringBuilder, android.icu.text.IDNA.Info);
+    field public static final int CHECK_BIDI = 4; // 0x4
+    field public static final int CHECK_CONTEXTJ = 8; // 0x8
+    field public static final int CHECK_CONTEXTO = 64; // 0x40
+    field public static final int DEFAULT = 0; // 0x0
+    field public static final int NONTRANSITIONAL_TO_ASCII = 16; // 0x10
+    field public static final int NONTRANSITIONAL_TO_UNICODE = 32; // 0x20
+    field public static final int USE_STD3_RULES = 2; // 0x2
+  }
+
+  public static final class IDNA.Error extends java.lang.Enum {
+    method public static android.icu.text.IDNA.Error valueOf(java.lang.String);
+    method public static final android.icu.text.IDNA.Error[] values();
+    enum_constant public static final android.icu.text.IDNA.Error BIDI;
+    enum_constant public static final android.icu.text.IDNA.Error CONTEXTJ;
+    enum_constant public static final android.icu.text.IDNA.Error CONTEXTO_DIGITS;
+    enum_constant public static final android.icu.text.IDNA.Error CONTEXTO_PUNCTUATION;
+    enum_constant public static final android.icu.text.IDNA.Error DISALLOWED;
+    enum_constant public static final android.icu.text.IDNA.Error DOMAIN_NAME_TOO_LONG;
+    enum_constant public static final android.icu.text.IDNA.Error EMPTY_LABEL;
+    enum_constant public static final android.icu.text.IDNA.Error HYPHEN_3_4;
+    enum_constant public static final android.icu.text.IDNA.Error INVALID_ACE_LABEL;
+    enum_constant public static final android.icu.text.IDNA.Error LABEL_HAS_DOT;
+    enum_constant public static final android.icu.text.IDNA.Error LABEL_TOO_LONG;
+    enum_constant public static final android.icu.text.IDNA.Error LEADING_COMBINING_MARK;
+    enum_constant public static final android.icu.text.IDNA.Error LEADING_HYPHEN;
+    enum_constant public static final android.icu.text.IDNA.Error PUNYCODE;
+    enum_constant public static final android.icu.text.IDNA.Error TRAILING_HYPHEN;
+  }
+
+  public static final class IDNA.Info {
+    ctor public IDNA.Info();
+    method public java.util.Set<android.icu.text.IDNA.Error> getErrors();
+    method public boolean hasErrors();
+    method public boolean isTransitionalDifferent();
+  }
+
+  public abstract class LocaleDisplayNames {
+    method public abstract android.icu.text.DisplayContext getContext(android.icu.text.DisplayContext.Type);
+    method public abstract android.icu.text.LocaleDisplayNames.DialectHandling getDialectHandling();
+    method public static android.icu.text.LocaleDisplayNames getInstance(android.icu.util.ULocale);
+    method public static android.icu.text.LocaleDisplayNames getInstance(java.util.Locale);
+    method public static android.icu.text.LocaleDisplayNames getInstance(android.icu.util.ULocale, android.icu.text.LocaleDisplayNames.DialectHandling);
+    method public static android.icu.text.LocaleDisplayNames getInstance(android.icu.util.ULocale, android.icu.text.DisplayContext...);
+    method public static android.icu.text.LocaleDisplayNames getInstance(java.util.Locale, android.icu.text.DisplayContext...);
+    method public abstract android.icu.util.ULocale getLocale();
+    method public abstract java.lang.String keyDisplayName(java.lang.String);
+    method public abstract java.lang.String keyValueDisplayName(java.lang.String, java.lang.String);
+    method public abstract java.lang.String languageDisplayName(java.lang.String);
+    method public abstract java.lang.String localeDisplayName(android.icu.util.ULocale);
+    method public abstract java.lang.String localeDisplayName(java.util.Locale);
+    method public abstract java.lang.String localeDisplayName(java.lang.String);
+    method public abstract java.lang.String regionDisplayName(java.lang.String);
+    method public abstract java.lang.String scriptDisplayName(java.lang.String);
+    method public abstract java.lang.String scriptDisplayName(int);
+    method public abstract java.lang.String variantDisplayName(java.lang.String);
+  }
+
+  public static final class LocaleDisplayNames.DialectHandling extends java.lang.Enum {
+    method public static android.icu.text.LocaleDisplayNames.DialectHandling valueOf(java.lang.String);
+    method public static final android.icu.text.LocaleDisplayNames.DialectHandling[] values();
+    enum_constant public static final android.icu.text.LocaleDisplayNames.DialectHandling DIALECT_NAMES;
+    enum_constant public static final android.icu.text.LocaleDisplayNames.DialectHandling STANDARD_NAMES;
+  }
+
+  public class MeasureFormat extends android.icu.text.UFormat {
+    method public final boolean equals(java.lang.Object);
+    method public java.lang.StringBuffer format(java.lang.Object, java.lang.StringBuffer, java.text.FieldPosition);
+    method public final java.lang.String formatMeasures(android.icu.util.Measure...);
+    method public java.lang.StringBuilder formatMeasures(java.lang.StringBuilder, java.text.FieldPosition, android.icu.util.Measure...);
+    method public static android.icu.text.MeasureFormat getCurrencyFormat(android.icu.util.ULocale);
+    method public static android.icu.text.MeasureFormat getCurrencyFormat(java.util.Locale);
+    method public static android.icu.text.MeasureFormat getCurrencyFormat();
+    method public static android.icu.text.MeasureFormat getInstance(android.icu.util.ULocale, android.icu.text.MeasureFormat.FormatWidth);
+    method public static android.icu.text.MeasureFormat getInstance(java.util.Locale, android.icu.text.MeasureFormat.FormatWidth);
+    method public static android.icu.text.MeasureFormat getInstance(android.icu.util.ULocale, android.icu.text.MeasureFormat.FormatWidth, android.icu.text.NumberFormat);
+    method public static android.icu.text.MeasureFormat getInstance(java.util.Locale, android.icu.text.MeasureFormat.FormatWidth, android.icu.text.NumberFormat);
+    method public final android.icu.util.ULocale getLocale();
+    method public android.icu.text.NumberFormat getNumberFormat();
+    method public android.icu.text.MeasureFormat.FormatWidth getWidth();
+    method public final int hashCode();
+    method public android.icu.util.Measure parseObject(java.lang.String, java.text.ParsePosition);
+  }
+
+  public static final class MeasureFormat.FormatWidth extends java.lang.Enum {
+    method public static android.icu.text.MeasureFormat.FormatWidth valueOf(java.lang.String);
+    method public static final android.icu.text.MeasureFormat.FormatWidth[] values();
+    enum_constant public static final android.icu.text.MeasureFormat.FormatWidth NARROW;
+    enum_constant public static final android.icu.text.MeasureFormat.FormatWidth NUMERIC;
+    enum_constant public static final android.icu.text.MeasureFormat.FormatWidth SHORT;
+    enum_constant public static final android.icu.text.MeasureFormat.FormatWidth WIDE;
+  }
+
+  public class MessageFormat extends android.icu.text.UFormat {
+    ctor public MessageFormat(java.lang.String);
+    ctor public MessageFormat(java.lang.String, java.util.Locale);
+    ctor public MessageFormat(java.lang.String, android.icu.util.ULocale);
+    method public void applyPattern(java.lang.String);
+    method public void applyPattern(java.lang.String, android.icu.text.MessagePattern.ApostropheMode);
+    method public static java.lang.String autoQuoteApostrophe(java.lang.String);
+    method public final java.lang.StringBuffer format(java.lang.Object[], java.lang.StringBuffer, java.text.FieldPosition);
+    method public final java.lang.StringBuffer format(java.util.Map<java.lang.String, java.lang.Object>, java.lang.StringBuffer, java.text.FieldPosition);
+    method public static java.lang.String format(java.lang.String, java.lang.Object...);
+    method public static java.lang.String format(java.lang.String, java.util.Map<java.lang.String, java.lang.Object>);
+    method public final java.lang.StringBuffer format(java.lang.Object, java.lang.StringBuffer, java.text.FieldPosition);
+    method public android.icu.text.MessagePattern.ApostropheMode getApostropheMode();
+    method public java.util.Set<java.lang.String> getArgumentNames();
+    method public java.text.Format getFormatByArgumentName(java.lang.String);
+    method public java.text.Format[] getFormats();
+    method public java.text.Format[] getFormatsByArgumentIndex();
+    method public java.util.Locale getLocale();
+    method public android.icu.util.ULocale getULocale();
+    method public java.lang.Object[] parse(java.lang.String, java.text.ParsePosition);
+    method public java.lang.Object[] parse(java.lang.String) throws java.text.ParseException;
+    method public java.lang.Object parseObject(java.lang.String, java.text.ParsePosition);
+    method public java.util.Map<java.lang.String, java.lang.Object> parseToMap(java.lang.String, java.text.ParsePosition);
+    method public java.util.Map<java.lang.String, java.lang.Object> parseToMap(java.lang.String) throws java.text.ParseException;
+    method public void setFormat(int, java.text.Format);
+    method public void setFormatByArgumentIndex(int, java.text.Format);
+    method public void setFormatByArgumentName(java.lang.String, java.text.Format);
+    method public void setFormats(java.text.Format[]);
+    method public void setFormatsByArgumentIndex(java.text.Format[]);
+    method public void setFormatsByArgumentName(java.util.Map<java.lang.String, java.text.Format>);
+    method public void setLocale(java.util.Locale);
+    method public void setLocale(android.icu.util.ULocale);
+    method public java.lang.String toPattern();
+    method public boolean usesNamedArguments();
+  }
+
+  public static class MessageFormat.Field extends java.text.Format.Field {
+    ctor protected MessageFormat.Field(java.lang.String);
+    field public static final android.icu.text.MessageFormat.Field ARGUMENT;
+  }
+
+  public final class MessagePattern implements java.lang.Cloneable android.icu.util.Freezable {
+    ctor public MessagePattern();
+    ctor public MessagePattern(android.icu.text.MessagePattern.ApostropheMode);
+    ctor public MessagePattern(java.lang.String);
+    method public java.lang.String autoQuoteApostropheDeep();
+    method public void clear();
+    method public void clearPatternAndSetApostropheMode(android.icu.text.MessagePattern.ApostropheMode);
+    method public java.lang.Object clone();
+    method public android.icu.text.MessagePattern cloneAsThawed();
+    method public int countParts();
+    method public android.icu.text.MessagePattern freeze();
+    method public android.icu.text.MessagePattern.ApostropheMode getApostropheMode();
+    method public int getLimitPartIndex(int);
+    method public double getNumericValue(android.icu.text.MessagePattern.Part);
+    method public android.icu.text.MessagePattern.Part getPart(int);
+    method public android.icu.text.MessagePattern.Part.Type getPartType(int);
+    method public int getPatternIndex(int);
+    method public java.lang.String getPatternString();
+    method public double getPluralOffset(int);
+    method public java.lang.String getSubstring(android.icu.text.MessagePattern.Part);
+    method public boolean hasNamedArguments();
+    method public boolean hasNumberedArguments();
+    method public boolean isFrozen();
+    method public android.icu.text.MessagePattern parse(java.lang.String);
+    method public android.icu.text.MessagePattern parseChoiceStyle(java.lang.String);
+    method public android.icu.text.MessagePattern parsePluralStyle(java.lang.String);
+    method public android.icu.text.MessagePattern parseSelectStyle(java.lang.String);
+    method public boolean partSubstringMatches(android.icu.text.MessagePattern.Part, java.lang.String);
+    method public static int validateArgumentName(java.lang.String);
+    field public static final int ARG_NAME_NOT_NUMBER = -1; // 0xffffffff
+    field public static final int ARG_NAME_NOT_VALID = -2; // 0xfffffffe
+    field public static final double NO_NUMERIC_VALUE = -1.23456789E8;
+  }
+
+  public static final class MessagePattern.ApostropheMode extends java.lang.Enum {
+    method public static android.icu.text.MessagePattern.ApostropheMode valueOf(java.lang.String);
+    method public static final android.icu.text.MessagePattern.ApostropheMode[] values();
+    enum_constant public static final android.icu.text.MessagePattern.ApostropheMode DOUBLE_OPTIONAL;
+    enum_constant public static final android.icu.text.MessagePattern.ApostropheMode DOUBLE_REQUIRED;
+  }
+
+  public static final class MessagePattern.ArgType extends java.lang.Enum {
+    method public boolean hasPluralStyle();
+    method public static android.icu.text.MessagePattern.ArgType valueOf(java.lang.String);
+    method public static final android.icu.text.MessagePattern.ArgType[] values();
+    enum_constant public static final android.icu.text.MessagePattern.ArgType CHOICE;
+    enum_constant public static final android.icu.text.MessagePattern.ArgType NONE;
+    enum_constant public static final android.icu.text.MessagePattern.ArgType PLURAL;
+    enum_constant public static final android.icu.text.MessagePattern.ArgType SELECT;
+    enum_constant public static final android.icu.text.MessagePattern.ArgType SELECTORDINAL;
+    enum_constant public static final android.icu.text.MessagePattern.ArgType SIMPLE;
+  }
+
+  public static final class MessagePattern.Part {
+    method public android.icu.text.MessagePattern.ArgType getArgType();
+    method public int getIndex();
+    method public int getLength();
+    method public int getLimit();
+    method public android.icu.text.MessagePattern.Part.Type getType();
+    method public int getValue();
+  }
+
+  public static final class MessagePattern.Part.Type extends java.lang.Enum {
+    method public boolean hasNumericValue();
+    method public static android.icu.text.MessagePattern.Part.Type valueOf(java.lang.String);
+    method public static final android.icu.text.MessagePattern.Part.Type[] values();
+    enum_constant public static final android.icu.text.MessagePattern.Part.Type ARG_DOUBLE;
+    enum_constant public static final android.icu.text.MessagePattern.Part.Type ARG_INT;
+    enum_constant public static final android.icu.text.MessagePattern.Part.Type ARG_LIMIT;
+    enum_constant public static final android.icu.text.MessagePattern.Part.Type ARG_NAME;
+    enum_constant public static final android.icu.text.MessagePattern.Part.Type ARG_NUMBER;
+    enum_constant public static final android.icu.text.MessagePattern.Part.Type ARG_SELECTOR;
+    enum_constant public static final android.icu.text.MessagePattern.Part.Type ARG_START;
+    enum_constant public static final android.icu.text.MessagePattern.Part.Type ARG_STYLE;
+    enum_constant public static final android.icu.text.MessagePattern.Part.Type ARG_TYPE;
+    enum_constant public static final android.icu.text.MessagePattern.Part.Type INSERT_CHAR;
+    enum_constant public static final android.icu.text.MessagePattern.Part.Type MSG_LIMIT;
+    enum_constant public static final android.icu.text.MessagePattern.Part.Type MSG_START;
+    enum_constant public static final android.icu.text.MessagePattern.Part.Type REPLACE_NUMBER;
+    enum_constant public static final android.icu.text.MessagePattern.Part.Type SKIP_SYNTAX;
+  }
+
+  public final class Normalizer implements java.lang.Cloneable {
+    method public static int compare(char[], int, int, char[], int, int, int);
+    method public static int compare(java.lang.String, java.lang.String, int);
+    method public static int compare(char[], char[], int);
+    method public static int compare(int, int, int);
+    method public static int compare(int, java.lang.String, int);
+    field public static final int COMPARE_CODE_POINT_ORDER = 32768; // 0x8000
+    field public static final int COMPARE_IGNORE_CASE = 65536; // 0x10000
+    field public static final int FOLD_CASE_DEFAULT = 0; // 0x0
+    field public static final int FOLD_CASE_EXCLUDE_SPECIAL_I = 1; // 0x1
+    field public static final int INPUT_IS_FCD = 131072; // 0x20000
+    field public static final android.icu.text.Normalizer.QuickCheckResult MAYBE;
+    field public static final android.icu.text.Normalizer.QuickCheckResult NO;
+    field public static final android.icu.text.Normalizer.QuickCheckResult YES;
+  }
+
+  public static final class Normalizer.QuickCheckResult {
+  }
+
+  public abstract class Normalizer2 {
+    method public abstract java.lang.StringBuilder append(java.lang.StringBuilder, java.lang.CharSequence);
+    method public int composePair(int, int);
+    method public int getCombiningClass(int);
+    method public abstract java.lang.String getDecomposition(int);
+    method public static android.icu.text.Normalizer2 getInstance(java.io.InputStream, java.lang.String, android.icu.text.Normalizer2.Mode);
+    method public static android.icu.text.Normalizer2 getNFCInstance();
+    method public static android.icu.text.Normalizer2 getNFDInstance();
+    method public static android.icu.text.Normalizer2 getNFKCCasefoldInstance();
+    method public static android.icu.text.Normalizer2 getNFKCInstance();
+    method public static android.icu.text.Normalizer2 getNFKDInstance();
+    method public java.lang.String getRawDecomposition(int);
+    method public abstract boolean hasBoundaryAfter(int);
+    method public abstract boolean hasBoundaryBefore(int);
+    method public abstract boolean isInert(int);
+    method public abstract boolean isNormalized(java.lang.CharSequence);
+    method public java.lang.String normalize(java.lang.CharSequence);
+    method public abstract java.lang.StringBuilder normalize(java.lang.CharSequence, java.lang.StringBuilder);
+    method public abstract java.lang.Appendable normalize(java.lang.CharSequence, java.lang.Appendable);
+    method public abstract java.lang.StringBuilder normalizeSecondAndAppend(java.lang.StringBuilder, java.lang.CharSequence);
+    method public abstract android.icu.text.Normalizer.QuickCheckResult quickCheck(java.lang.CharSequence);
+    method public abstract int spanQuickCheckYes(java.lang.CharSequence);
+  }
+
+  public static final class Normalizer2.Mode extends java.lang.Enum {
+    method public static android.icu.text.Normalizer2.Mode valueOf(java.lang.String);
+    method public static final android.icu.text.Normalizer2.Mode[] values();
+    enum_constant public static final android.icu.text.Normalizer2.Mode COMPOSE;
+    enum_constant public static final android.icu.text.Normalizer2.Mode COMPOSE_CONTIGUOUS;
+    enum_constant public static final android.icu.text.Normalizer2.Mode DECOMPOSE;
+    enum_constant public static final android.icu.text.Normalizer2.Mode FCD;
+  }
+
+  public abstract class NumberFormat extends android.icu.text.UFormat {
+    ctor public NumberFormat();
+    method public java.lang.StringBuffer format(java.lang.Object, java.lang.StringBuffer, java.text.FieldPosition);
+    method public final java.lang.String format(double);
+    method public final java.lang.String format(long);
+    method public final java.lang.String format(java.math.BigInteger);
+    method public final java.lang.String format(java.math.BigDecimal);
+    method public final java.lang.String format(android.icu.math.BigDecimal);
+    method public final java.lang.String format(android.icu.util.CurrencyAmount);
+    method public abstract java.lang.StringBuffer format(double, java.lang.StringBuffer, java.text.FieldPosition);
+    method public abstract java.lang.StringBuffer format(long, java.lang.StringBuffer, java.text.FieldPosition);
+    method public abstract java.lang.StringBuffer format(java.math.BigInteger, java.lang.StringBuffer, java.text.FieldPosition);
+    method public abstract java.lang.StringBuffer format(java.math.BigDecimal, java.lang.StringBuffer, java.text.FieldPosition);
+    method public abstract java.lang.StringBuffer format(android.icu.math.BigDecimal, java.lang.StringBuffer, java.text.FieldPosition);
+    method public java.lang.StringBuffer format(android.icu.util.CurrencyAmount, java.lang.StringBuffer, java.text.FieldPosition);
+    method public static java.util.Locale[] getAvailableLocales();
+    method public android.icu.text.DisplayContext getContext(android.icu.text.DisplayContext.Type);
+    method public android.icu.util.Currency getCurrency();
+    method public static final android.icu.text.NumberFormat getCurrencyInstance();
+    method public static android.icu.text.NumberFormat getCurrencyInstance(java.util.Locale);
+    method public static android.icu.text.NumberFormat getCurrencyInstance(android.icu.util.ULocale);
+    method public static final android.icu.text.NumberFormat getInstance();
+    method public static android.icu.text.NumberFormat getInstance(java.util.Locale);
+    method public static android.icu.text.NumberFormat getInstance(android.icu.util.ULocale);
+    method public static final android.icu.text.NumberFormat getInstance(int);
+    method public static android.icu.text.NumberFormat getInstance(java.util.Locale, int);
+    method public static android.icu.text.NumberFormat getInstance(android.icu.util.ULocale, int);
+    method public static final android.icu.text.NumberFormat getIntegerInstance();
+    method public static android.icu.text.NumberFormat getIntegerInstance(java.util.Locale);
+    method public static android.icu.text.NumberFormat getIntegerInstance(android.icu.util.ULocale);
+    method public int getMaximumFractionDigits();
+    method public int getMaximumIntegerDigits();
+    method public int getMinimumFractionDigits();
+    method public int getMinimumIntegerDigits();
+    method public static final android.icu.text.NumberFormat getNumberInstance();
+    method public static android.icu.text.NumberFormat getNumberInstance(java.util.Locale);
+    method public static android.icu.text.NumberFormat getNumberInstance(android.icu.util.ULocale);
+    method protected static java.lang.String getPattern(android.icu.util.ULocale, int);
+    method public static final android.icu.text.NumberFormat getPercentInstance();
+    method public static android.icu.text.NumberFormat getPercentInstance(java.util.Locale);
+    method public static android.icu.text.NumberFormat getPercentInstance(android.icu.util.ULocale);
+    method public int getRoundingMode();
+    method public static final android.icu.text.NumberFormat getScientificInstance();
+    method public static android.icu.text.NumberFormat getScientificInstance(java.util.Locale);
+    method public static android.icu.text.NumberFormat getScientificInstance(android.icu.util.ULocale);
+    method public boolean isGroupingUsed();
+    method public boolean isParseIntegerOnly();
+    method public boolean isParseStrict();
+    method public abstract java.lang.Number parse(java.lang.String, java.text.ParsePosition);
+    method public java.lang.Number parse(java.lang.String) throws java.text.ParseException;
+    method public android.icu.util.CurrencyAmount parseCurrency(java.lang.CharSequence, java.text.ParsePosition);
+    method public final java.lang.Object parseObject(java.lang.String, java.text.ParsePosition);
+    method public static java.lang.Object registerFactory(android.icu.text.NumberFormat.NumberFormatFactory);
+    method public void setContext(android.icu.text.DisplayContext);
+    method public void setCurrency(android.icu.util.Currency);
+    method public void setGroupingUsed(boolean);
+    method public void setMaximumFractionDigits(int);
+    method public void setMaximumIntegerDigits(int);
+    method public void setMinimumFractionDigits(int);
+    method public void setMinimumIntegerDigits(int);
+    method public void setParseIntegerOnly(boolean);
+    method public void setParseStrict(boolean);
+    method public void setRoundingMode(int);
+    method public static boolean unregister(java.lang.Object);
+    field public static final int ACCOUNTINGCURRENCYSTYLE = 7; // 0x7
+    field public static final int CASHCURRENCYSTYLE = 8; // 0x8
+    field public static final int CURRENCYSTYLE = 1; // 0x1
+    field public static final int FRACTION_FIELD = 1; // 0x1
+    field public static final int INTEGERSTYLE = 4; // 0x4
+    field public static final int INTEGER_FIELD = 0; // 0x0
+    field public static final int ISOCURRENCYSTYLE = 5; // 0x5
+    field public static final int NUMBERSTYLE = 0; // 0x0
+    field public static final int PERCENTSTYLE = 2; // 0x2
+    field public static final int PLURALCURRENCYSTYLE = 6; // 0x6
+    field public static final int SCIENTIFICSTYLE = 3; // 0x3
+  }
+
+  public static class NumberFormat.Field extends java.text.Format.Field {
+    ctor protected NumberFormat.Field(java.lang.String);
+    field public static final android.icu.text.NumberFormat.Field CURRENCY;
+    field public static final android.icu.text.NumberFormat.Field DECIMAL_SEPARATOR;
+    field public static final android.icu.text.NumberFormat.Field EXPONENT;
+    field public static final android.icu.text.NumberFormat.Field EXPONENT_SIGN;
+    field public static final android.icu.text.NumberFormat.Field EXPONENT_SYMBOL;
+    field public static final android.icu.text.NumberFormat.Field FRACTION;
+    field public static final android.icu.text.NumberFormat.Field GROUPING_SEPARATOR;
+    field public static final android.icu.text.NumberFormat.Field INTEGER;
+    field public static final android.icu.text.NumberFormat.Field PERCENT;
+    field public static final android.icu.text.NumberFormat.Field PERMILLE;
+    field public static final android.icu.text.NumberFormat.Field SIGN;
+  }
+
+  public static abstract class NumberFormat.NumberFormatFactory {
+    ctor protected NumberFormat.NumberFormatFactory();
+    method public android.icu.text.NumberFormat createFormat(android.icu.util.ULocale, int);
+    method public android.icu.text.NumberFormat createFormat(java.util.Locale, int);
+    method public abstract java.util.Set<java.lang.String> getSupportedLocaleNames();
+    method public boolean visible();
+    field public static final int FORMAT_CURRENCY = 1; // 0x1
+    field public static final int FORMAT_INTEGER = 4; // 0x4
+    field public static final int FORMAT_NUMBER = 0; // 0x0
+    field public static final int FORMAT_PERCENT = 2; // 0x2
+    field public static final int FORMAT_SCIENTIFIC = 3; // 0x3
+  }
+
+  public static abstract class NumberFormat.SimpleNumberFormatFactory extends android.icu.text.NumberFormat.NumberFormatFactory {
+    ctor public NumberFormat.SimpleNumberFormatFactory(java.util.Locale);
+    ctor public NumberFormat.SimpleNumberFormatFactory(java.util.Locale, boolean);
+    ctor public NumberFormat.SimpleNumberFormatFactory(android.icu.util.ULocale);
+    ctor public NumberFormat.SimpleNumberFormatFactory(android.icu.util.ULocale, boolean);
+    method public final java.util.Set<java.lang.String> getSupportedLocaleNames();
+    method public final boolean visible();
+  }
+
+  public class NumberingSystem {
+    ctor public NumberingSystem();
+    method public static java.lang.String[] getAvailableNames();
+    method public java.lang.String getDescription();
+    method public static android.icu.text.NumberingSystem getInstance(int, boolean, java.lang.String);
+    method public static android.icu.text.NumberingSystem getInstance(java.util.Locale);
+    method public static android.icu.text.NumberingSystem getInstance(android.icu.util.ULocale);
+    method public static android.icu.text.NumberingSystem getInstance();
+    method public static android.icu.text.NumberingSystem getInstanceByName(java.lang.String);
+    method public java.lang.String getName();
+    method public int getRadix();
+    method public boolean isAlgorithmic();
+    method public static boolean isValidDigitString(java.lang.String);
+  }
+
+  public class PluralFormat extends android.icu.text.UFormat {
+    ctor public PluralFormat();
+    ctor public PluralFormat(android.icu.util.ULocale);
+    ctor public PluralFormat(java.util.Locale);
+    ctor public PluralFormat(android.icu.text.PluralRules);
+    ctor public PluralFormat(android.icu.util.ULocale, android.icu.text.PluralRules);
+    ctor public PluralFormat(java.util.Locale, android.icu.text.PluralRules);
+    ctor public PluralFormat(android.icu.util.ULocale, android.icu.text.PluralRules.PluralType);
+    ctor public PluralFormat(java.util.Locale, android.icu.text.PluralRules.PluralType);
+    ctor public PluralFormat(java.lang.String);
+    ctor public PluralFormat(android.icu.util.ULocale, java.lang.String);
+    ctor public PluralFormat(android.icu.text.PluralRules, java.lang.String);
+    ctor public PluralFormat(android.icu.util.ULocale, android.icu.text.PluralRules, java.lang.String);
+    ctor public PluralFormat(android.icu.util.ULocale, android.icu.text.PluralRules.PluralType, java.lang.String);
+    method public void applyPattern(java.lang.String);
+    method public boolean equals(android.icu.text.PluralFormat);
+    method public final java.lang.String format(double);
+    method public java.lang.StringBuffer format(java.lang.Object, java.lang.StringBuffer, java.text.FieldPosition);
+    method public java.lang.Number parse(java.lang.String, java.text.ParsePosition);
+    method public java.lang.Object parseObject(java.lang.String, java.text.ParsePosition);
+    method public void setNumberFormat(android.icu.text.NumberFormat);
+    method public java.lang.String toPattern();
+  }
+
+  public class PluralRules implements java.io.Serializable {
+    method public static android.icu.text.PluralRules createRules(java.lang.String);
+    method public boolean equals(android.icu.text.PluralRules);
+    method public static android.icu.text.PluralRules forLocale(android.icu.util.ULocale);
+    method public static android.icu.text.PluralRules forLocale(java.util.Locale);
+    method public static android.icu.text.PluralRules forLocale(android.icu.util.ULocale, android.icu.text.PluralRules.PluralType);
+    method public static android.icu.text.PluralRules forLocale(java.util.Locale, android.icu.text.PluralRules.PluralType);
+    method public java.util.Collection<java.lang.Double> getAllKeywordValues(java.lang.String);
+    method public java.util.Set<java.lang.String> getKeywords();
+    method public java.util.Collection<java.lang.Double> getSamples(java.lang.String);
+    method public double getUniqueKeywordValue(java.lang.String);
+    method public static android.icu.text.PluralRules parseDescription(java.lang.String) throws java.text.ParseException;
+    method public java.lang.String select(double);
+    field public static final android.icu.text.PluralRules DEFAULT;
+    field public static final java.lang.String KEYWORD_FEW = "few";
+    field public static final java.lang.String KEYWORD_MANY = "many";
+    field public static final java.lang.String KEYWORD_ONE = "one";
+    field public static final java.lang.String KEYWORD_OTHER = "other";
+    field public static final java.lang.String KEYWORD_TWO = "two";
+    field public static final java.lang.String KEYWORD_ZERO = "zero";
+    field public static final double NO_UNIQUE_VALUE = -0.00123456777;
+  }
+
+  public static final class PluralRules.PluralType extends java.lang.Enum {
+    method public static android.icu.text.PluralRules.PluralType valueOf(java.lang.String);
+    method public static final android.icu.text.PluralRules.PluralType[] values();
+    enum_constant public static final android.icu.text.PluralRules.PluralType CARDINAL;
+    enum_constant public static final android.icu.text.PluralRules.PluralType ORDINAL;
+  }
+
+  public final class RawCollationKey extends android.icu.util.ByteArrayWrapper {
+    ctor public RawCollationKey();
+    ctor public RawCollationKey(int);
+    ctor public RawCollationKey(byte[]);
+    ctor public RawCollationKey(byte[], int);
+    method public int compareTo(android.icu.text.RawCollationKey);
+  }
+
+  public final class RelativeDateTimeFormatter {
+    method public java.lang.String combineDateAndTime(java.lang.String, java.lang.String);
+    method public java.lang.String format(double, android.icu.text.RelativeDateTimeFormatter.Direction, android.icu.text.RelativeDateTimeFormatter.RelativeUnit);
+    method public java.lang.String format(android.icu.text.RelativeDateTimeFormatter.Direction, android.icu.text.RelativeDateTimeFormatter.AbsoluteUnit);
+    method public android.icu.text.DisplayContext getCapitalizationContext();
+    method public android.icu.text.RelativeDateTimeFormatter.Style getFormatStyle();
+    method public static android.icu.text.RelativeDateTimeFormatter getInstance();
+    method public static android.icu.text.RelativeDateTimeFormatter getInstance(android.icu.util.ULocale);
+    method public static android.icu.text.RelativeDateTimeFormatter getInstance(java.util.Locale);
+    method public static android.icu.text.RelativeDateTimeFormatter getInstance(android.icu.util.ULocale, android.icu.text.NumberFormat);
+    method public static android.icu.text.RelativeDateTimeFormatter getInstance(android.icu.util.ULocale, android.icu.text.NumberFormat, android.icu.text.RelativeDateTimeFormatter.Style, android.icu.text.DisplayContext);
+    method public static android.icu.text.RelativeDateTimeFormatter getInstance(java.util.Locale, android.icu.text.NumberFormat);
+    method public android.icu.text.NumberFormat getNumberFormat();
+  }
+
+  public static final class RelativeDateTimeFormatter.AbsoluteUnit extends java.lang.Enum {
+    method public static android.icu.text.RelativeDateTimeFormatter.AbsoluteUnit valueOf(java.lang.String);
+    method public static final android.icu.text.RelativeDateTimeFormatter.AbsoluteUnit[] values();
+    enum_constant public static final android.icu.text.RelativeDateTimeFormatter.AbsoluteUnit DAY;
+    enum_constant public static final android.icu.text.RelativeDateTimeFormatter.AbsoluteUnit FRIDAY;
+    enum_constant public static final android.icu.text.RelativeDateTimeFormatter.AbsoluteUnit MONDAY;
+    enum_constant public static final android.icu.text.RelativeDateTimeFormatter.AbsoluteUnit MONTH;
+    enum_constant public static final android.icu.text.RelativeDateTimeFormatter.AbsoluteUnit NOW;
+    enum_constant public static final android.icu.text.RelativeDateTimeFormatter.AbsoluteUnit SATURDAY;
+    enum_constant public static final android.icu.text.RelativeDateTimeFormatter.AbsoluteUnit SUNDAY;
+    enum_constant public static final android.icu.text.RelativeDateTimeFormatter.AbsoluteUnit THURSDAY;
+    enum_constant public static final android.icu.text.RelativeDateTimeFormatter.AbsoluteUnit TUESDAY;
+    enum_constant public static final android.icu.text.RelativeDateTimeFormatter.AbsoluteUnit WEDNESDAY;
+    enum_constant public static final android.icu.text.RelativeDateTimeFormatter.AbsoluteUnit WEEK;
+    enum_constant public static final android.icu.text.RelativeDateTimeFormatter.AbsoluteUnit YEAR;
+  }
+
+  public static final class RelativeDateTimeFormatter.Direction extends java.lang.Enum {
+    method public static android.icu.text.RelativeDateTimeFormatter.Direction valueOf(java.lang.String);
+    method public static final android.icu.text.RelativeDateTimeFormatter.Direction[] values();
+    enum_constant public static final android.icu.text.RelativeDateTimeFormatter.Direction LAST;
+    enum_constant public static final android.icu.text.RelativeDateTimeFormatter.Direction LAST_2;
+    enum_constant public static final android.icu.text.RelativeDateTimeFormatter.Direction NEXT;
+    enum_constant public static final android.icu.text.RelativeDateTimeFormatter.Direction NEXT_2;
+    enum_constant public static final android.icu.text.RelativeDateTimeFormatter.Direction PLAIN;
+    enum_constant public static final android.icu.text.RelativeDateTimeFormatter.Direction THIS;
+  }
+
+  public static final class RelativeDateTimeFormatter.RelativeUnit extends java.lang.Enum {
+    method public static android.icu.text.RelativeDateTimeFormatter.RelativeUnit valueOf(java.lang.String);
+    method public static final android.icu.text.RelativeDateTimeFormatter.RelativeUnit[] values();
+    enum_constant public static final android.icu.text.RelativeDateTimeFormatter.RelativeUnit DAYS;
+    enum_constant public static final android.icu.text.RelativeDateTimeFormatter.RelativeUnit HOURS;
+    enum_constant public static final android.icu.text.RelativeDateTimeFormatter.RelativeUnit MINUTES;
+    enum_constant public static final android.icu.text.RelativeDateTimeFormatter.RelativeUnit MONTHS;
+    enum_constant public static final android.icu.text.RelativeDateTimeFormatter.RelativeUnit SECONDS;
+    enum_constant public static final android.icu.text.RelativeDateTimeFormatter.RelativeUnit WEEKS;
+    enum_constant public static final android.icu.text.RelativeDateTimeFormatter.RelativeUnit YEARS;
+  }
+
+  public static final class RelativeDateTimeFormatter.Style extends java.lang.Enum {
+    method public static android.icu.text.RelativeDateTimeFormatter.Style valueOf(java.lang.String);
+    method public static final android.icu.text.RelativeDateTimeFormatter.Style[] values();
+    enum_constant public static final android.icu.text.RelativeDateTimeFormatter.Style LONG;
+    enum_constant public static final android.icu.text.RelativeDateTimeFormatter.Style NARROW;
+    enum_constant public static final android.icu.text.RelativeDateTimeFormatter.Style SHORT;
+  }
+
+  public abstract interface Replaceable {
+    method public abstract int char32At(int);
+    method public abstract char charAt(int);
+    method public abstract void copy(int, int, int);
+    method public abstract void getChars(int, int, char[], int);
+    method public abstract boolean hasMetaData();
+    method public abstract int length();
+    method public abstract void replace(int, int, java.lang.String);
+    method public abstract void replace(int, int, char[], int, int);
+  }
+
+  public final class RuleBasedCollator extends android.icu.text.Collator {
+    ctor public RuleBasedCollator(java.lang.String) throws java.lang.Exception;
+    method public int compare(java.lang.String, java.lang.String);
+    method public android.icu.text.CollationElementIterator getCollationElementIterator(java.lang.String);
+    method public android.icu.text.CollationElementIterator getCollationElementIterator(java.text.CharacterIterator);
+    method public android.icu.text.CollationElementIterator getCollationElementIterator(android.icu.text.UCharacterIterator);
+    method public android.icu.text.CollationKey getCollationKey(java.lang.String);
+    method public void getContractionsAndExpansions(android.icu.text.UnicodeSet, android.icu.text.UnicodeSet, boolean) throws java.lang.Exception;
+    method public boolean getNumericCollation();
+    method public android.icu.text.RawCollationKey getRawCollationKey(java.lang.String, android.icu.text.RawCollationKey);
+    method public java.lang.String getRules();
+    method public java.lang.String getRules(boolean);
+    method public android.icu.util.VersionInfo getUCAVersion();
+    method public int getVariableTop();
+    method public android.icu.util.VersionInfo getVersion();
+    method public boolean isAlternateHandlingShifted();
+    method public boolean isCaseLevel();
+    method public boolean isFrenchCollation();
+    method public boolean isLowerCaseFirst();
+    method public boolean isUpperCaseFirst();
+    method public void setAlternateHandlingDefault();
+    method public void setAlternateHandlingShifted(boolean);
+    method public final void setCaseFirstDefault();
+    method public void setCaseLevel(boolean);
+    method public void setCaseLevelDefault();
+    method public void setDecompositionDefault();
+    method public void setFrenchCollation(boolean);
+    method public void setFrenchCollationDefault();
+    method public void setLowerCaseFirst(boolean);
+    method public void setNumericCollation(boolean);
+    method public void setNumericCollationDefault();
+    method public void setStrengthDefault();
+    method public void setUpperCaseFirst(boolean);
+  }
+
+  public abstract class SearchIterator {
+    ctor protected SearchIterator(java.text.CharacterIterator, android.icu.text.BreakIterator);
+    method public final int first();
+    method public final int following(int);
+    method public android.icu.text.BreakIterator getBreakIterator();
+    method public android.icu.text.SearchIterator.ElementComparisonType getElementComparisonType();
+    method public abstract int getIndex();
+    method public int getMatchLength();
+    method public int getMatchStart();
+    method public java.lang.String getMatchedText();
+    method public java.text.CharacterIterator getTarget();
+    method protected abstract int handleNext(int);
+    method protected abstract int handlePrevious(int);
+    method public boolean isOverlapping();
+    method public final int last();
+    method public int next();
+    method public final int preceding(int);
+    method public int previous();
+    method public void reset();
+    method public void setBreakIterator(android.icu.text.BreakIterator);
+    method public void setElementComparisonType(android.icu.text.SearchIterator.ElementComparisonType);
+    method public void setIndex(int);
+    method protected void setMatchLength(int);
+    method public void setOverlapping(boolean);
+    method public void setTarget(java.text.CharacterIterator);
+    field public static final int DONE = -1; // 0xffffffff
+    field protected android.icu.text.BreakIterator breakIterator;
+    field protected int matchLength;
+    field protected java.text.CharacterIterator targetText;
+  }
+
+  public static final class SearchIterator.ElementComparisonType extends java.lang.Enum {
+    method public static android.icu.text.SearchIterator.ElementComparisonType valueOf(java.lang.String);
+    method public static final android.icu.text.SearchIterator.ElementComparisonType[] values();
+    enum_constant public static final android.icu.text.SearchIterator.ElementComparisonType ANY_BASE_WEIGHT_IS_WILDCARD;
+    enum_constant public static final android.icu.text.SearchIterator.ElementComparisonType PATTERN_BASE_WEIGHT_IS_WILDCARD;
+    enum_constant public static final android.icu.text.SearchIterator.ElementComparisonType STANDARD_ELEMENT_COMPARISON;
+  }
+
+  public class SelectFormat extends java.text.Format {
+    ctor public SelectFormat(java.lang.String);
+    method public void applyPattern(java.lang.String);
+    method public final java.lang.String format(java.lang.String);
+    method public java.lang.StringBuffer format(java.lang.Object, java.lang.StringBuffer, java.text.FieldPosition);
+    method public java.lang.Object parseObject(java.lang.String, java.text.ParsePosition);
+    method public java.lang.String toPattern();
+  }
+
+  public class SimpleDateFormat extends android.icu.text.DateFormat {
+    ctor public SimpleDateFormat();
+    ctor public SimpleDateFormat(java.lang.String);
+    ctor public SimpleDateFormat(java.lang.String, java.util.Locale);
+    ctor public SimpleDateFormat(java.lang.String, android.icu.util.ULocale);
+    ctor public SimpleDateFormat(java.lang.String, java.lang.String, android.icu.util.ULocale);
+    ctor public SimpleDateFormat(java.lang.String, android.icu.text.DateFormatSymbols);
+    method public void applyLocalizedPattern(java.lang.String);
+    method public void applyPattern(java.lang.String);
+    method public java.lang.StringBuffer format(android.icu.util.Calendar, java.lang.StringBuffer, java.text.FieldPosition);
+    method public java.util.Date get2DigitYearStart();
+    method public android.icu.text.DateFormatSymbols getDateFormatSymbols();
+    method public android.icu.text.NumberFormat getNumberFormat(char);
+    method protected android.icu.text.DateFormatSymbols getSymbols();
+    method public android.icu.text.TimeZoneFormat getTimeZoneFormat();
+    method protected int matchQuarterString(java.lang.String, int, int, java.lang.String[], android.icu.util.Calendar);
+    method protected int matchString(java.lang.String, int, int, java.lang.String[], android.icu.util.Calendar);
+    method public void parse(java.lang.String, android.icu.util.Calendar, java.text.ParsePosition);
+    method protected android.icu.text.DateFormat.Field patternCharToDateFormatField(char);
+    method public void set2DigitYearStart(java.util.Date);
+    method public void setDateFormatSymbols(android.icu.text.DateFormatSymbols);
+    method public void setNumberFormat(java.lang.String, android.icu.text.NumberFormat);
+    method public void setTimeZoneFormat(android.icu.text.TimeZoneFormat);
+    method protected java.lang.String subFormat(char, int, int, java.text.FieldPosition, android.icu.text.DateFormatSymbols, android.icu.util.Calendar) throws java.lang.IllegalArgumentException;
+    method protected int subParse(java.lang.String, int, char, int, boolean, boolean, boolean[], android.icu.util.Calendar);
+    method public java.lang.String toLocalizedPattern();
+    method public java.lang.String toPattern();
+    method protected java.lang.String zeroPaddingNumber(long, int, int);
+  }
+
+  public class StringPrepParseException extends java.text.ParseException {
+    ctor public StringPrepParseException(java.lang.String, int);
+    ctor public StringPrepParseException(java.lang.String, int, java.lang.String, int);
+    ctor public StringPrepParseException(java.lang.String, int, java.lang.String, int, int);
+    method public int getError();
+    field public static final int ACE_PREFIX_ERROR = 6; // 0x6
+    field public static final int BUFFER_OVERFLOW_ERROR = 9; // 0x9
+    field public static final int CHECK_BIDI_ERROR = 4; // 0x4
+    field public static final int DOMAIN_NAME_TOO_LONG_ERROR = 11; // 0xb
+    field public static final int ILLEGAL_CHAR_FOUND = 1; // 0x1
+    field public static final int INVALID_CHAR_FOUND = 0; // 0x0
+    field public static final int LABEL_TOO_LONG_ERROR = 8; // 0x8
+    field public static final int PROHIBITED_ERROR = 2; // 0x2
+    field public static final int STD3_ASCII_RULES_ERROR = 5; // 0x5
+    field public static final int UNASSIGNED_ERROR = 3; // 0x3
+    field public static final int VERIFICATION_ERROR = 7; // 0x7
+    field public static final int ZERO_LENGTH_LABEL = 10; // 0xa
+  }
+
+  public final class StringSearch extends android.icu.text.SearchIterator {
+    ctor public StringSearch(java.lang.String, java.text.CharacterIterator, android.icu.text.RuleBasedCollator, android.icu.text.BreakIterator);
+    ctor public StringSearch(java.lang.String, java.text.CharacterIterator, android.icu.text.RuleBasedCollator);
+    ctor public StringSearch(java.lang.String, java.text.CharacterIterator, java.util.Locale);
+    ctor public StringSearch(java.lang.String, java.text.CharacterIterator, android.icu.util.ULocale);
+    ctor public StringSearch(java.lang.String, java.lang.String);
+    method public android.icu.text.RuleBasedCollator getCollator();
+    method public int getIndex();
+    method public java.lang.String getPattern();
+    method protected int handleNext(int);
+    method protected int handlePrevious(int);
+    method public boolean isCanonical();
+    method public void setCanonical(boolean);
+    method public void setCollator(android.icu.text.RuleBasedCollator);
+    method public void setPattern(java.lang.String);
+  }
+
+  public abstract interface SymbolTable {
+    method public abstract char[] lookup(java.lang.String);
+    method public abstract android.icu.text.UnicodeMatcher lookupMatcher(int);
+    method public abstract java.lang.String parseReference(java.lang.String, java.text.ParsePosition, int);
+    field public static final char SYMBOL_REF = 36; // 0x0024 '$'
+  }
+
+  public class TimeZoneFormat extends android.icu.text.UFormat implements android.icu.util.Freezable java.io.Serializable {
+    ctor protected TimeZoneFormat(android.icu.util.ULocale);
+    method public android.icu.text.TimeZoneFormat cloneAsThawed();
+    method public final java.lang.String format(android.icu.text.TimeZoneFormat.Style, android.icu.util.TimeZone, long);
+    method public java.lang.String format(android.icu.text.TimeZoneFormat.Style, android.icu.util.TimeZone, long, android.icu.util.Output<android.icu.text.TimeZoneFormat.TimeType>);
+    method public java.lang.StringBuffer format(java.lang.Object, java.lang.StringBuffer, java.text.FieldPosition);
+    method public final java.lang.String formatOffsetISO8601Basic(int, boolean, boolean, boolean);
+    method public final java.lang.String formatOffsetISO8601Extended(int, boolean, boolean, boolean);
+    method public java.lang.String formatOffsetLocalizedGMT(int);
+    method public java.lang.String formatOffsetShortLocalizedGMT(int);
+    method public android.icu.text.TimeZoneFormat freeze();
+    method public java.util.EnumSet<android.icu.text.TimeZoneFormat.ParseOption> getDefaultParseOptions();
+    method public java.lang.String getGMTOffsetDigits();
+    method public java.lang.String getGMTOffsetPattern(android.icu.text.TimeZoneFormat.GMTOffsetPatternType);
+    method public java.lang.String getGMTPattern();
+    method public java.lang.String getGMTZeroFormat();
+    method public static android.icu.text.TimeZoneFormat getInstance(android.icu.util.ULocale);
+    method public static android.icu.text.TimeZoneFormat getInstance(java.util.Locale);
+    method public android.icu.text.TimeZoneNames getTimeZoneNames();
+    method public boolean isFrozen();
+    method public android.icu.util.TimeZone parse(android.icu.text.TimeZoneFormat.Style, java.lang.String, java.text.ParsePosition, java.util.EnumSet<android.icu.text.TimeZoneFormat.ParseOption>, android.icu.util.Output<android.icu.text.TimeZoneFormat.TimeType>);
+    method public android.icu.util.TimeZone parse(android.icu.text.TimeZoneFormat.Style, java.lang.String, java.text.ParsePosition, android.icu.util.Output<android.icu.text.TimeZoneFormat.TimeType>);
+    method public final android.icu.util.TimeZone parse(java.lang.String, java.text.ParsePosition);
+    method public final android.icu.util.TimeZone parse(java.lang.String) throws java.text.ParseException;
+    method public java.lang.Object parseObject(java.lang.String, java.text.ParsePosition);
+    method public final int parseOffsetISO8601(java.lang.String, java.text.ParsePosition);
+    method public int parseOffsetLocalizedGMT(java.lang.String, java.text.ParsePosition);
+    method public int parseOffsetShortLocalizedGMT(java.lang.String, java.text.ParsePosition);
+    method public android.icu.text.TimeZoneFormat setDefaultParseOptions(java.util.EnumSet<android.icu.text.TimeZoneFormat.ParseOption>);
+    method public android.icu.text.TimeZoneFormat setGMTOffsetDigits(java.lang.String);
+    method public android.icu.text.TimeZoneFormat setGMTOffsetPattern(android.icu.text.TimeZoneFormat.GMTOffsetPatternType, java.lang.String);
+    method public android.icu.text.TimeZoneFormat setGMTPattern(java.lang.String);
+    method public android.icu.text.TimeZoneFormat setGMTZeroFormat(java.lang.String);
+    method public android.icu.text.TimeZoneFormat setTimeZoneNames(android.icu.text.TimeZoneNames);
+  }
+
+  public static final class TimeZoneFormat.GMTOffsetPatternType extends java.lang.Enum {
+    method public static android.icu.text.TimeZoneFormat.GMTOffsetPatternType valueOf(java.lang.String);
+    method public static final android.icu.text.TimeZoneFormat.GMTOffsetPatternType[] values();
+    enum_constant public static final android.icu.text.TimeZoneFormat.GMTOffsetPatternType NEGATIVE_H;
+    enum_constant public static final android.icu.text.TimeZoneFormat.GMTOffsetPatternType NEGATIVE_HM;
+    enum_constant public static final android.icu.text.TimeZoneFormat.GMTOffsetPatternType NEGATIVE_HMS;
+    enum_constant public static final android.icu.text.TimeZoneFormat.GMTOffsetPatternType POSITIVE_H;
+    enum_constant public static final android.icu.text.TimeZoneFormat.GMTOffsetPatternType POSITIVE_HM;
+    enum_constant public static final android.icu.text.TimeZoneFormat.GMTOffsetPatternType POSITIVE_HMS;
+  }
+
+  public static final class TimeZoneFormat.ParseOption extends java.lang.Enum {
+    method public static android.icu.text.TimeZoneFormat.ParseOption valueOf(java.lang.String);
+    method public static final android.icu.text.TimeZoneFormat.ParseOption[] values();
+    enum_constant public static final android.icu.text.TimeZoneFormat.ParseOption ALL_STYLES;
+    enum_constant public static final android.icu.text.TimeZoneFormat.ParseOption TZ_DATABASE_ABBREVIATIONS;
+  }
+
+  public static final class TimeZoneFormat.Style extends java.lang.Enum {
+    method public static android.icu.text.TimeZoneFormat.Style valueOf(java.lang.String);
+    method public static final android.icu.text.TimeZoneFormat.Style[] values();
+    enum_constant public static final android.icu.text.TimeZoneFormat.Style EXEMPLAR_LOCATION;
+    enum_constant public static final android.icu.text.TimeZoneFormat.Style GENERIC_LOCATION;
+    enum_constant public static final android.icu.text.TimeZoneFormat.Style GENERIC_LONG;
+    enum_constant public static final android.icu.text.TimeZoneFormat.Style GENERIC_SHORT;
+    enum_constant public static final android.icu.text.TimeZoneFormat.Style ISO_BASIC_FIXED;
+    enum_constant public static final android.icu.text.TimeZoneFormat.Style ISO_BASIC_FULL;
+    enum_constant public static final android.icu.text.TimeZoneFormat.Style ISO_BASIC_LOCAL_FIXED;
+    enum_constant public static final android.icu.text.TimeZoneFormat.Style ISO_BASIC_LOCAL_FULL;
+    enum_constant public static final android.icu.text.TimeZoneFormat.Style ISO_BASIC_LOCAL_SHORT;
+    enum_constant public static final android.icu.text.TimeZoneFormat.Style ISO_BASIC_SHORT;
+    enum_constant public static final android.icu.text.TimeZoneFormat.Style ISO_EXTENDED_FIXED;
+    enum_constant public static final android.icu.text.TimeZoneFormat.Style ISO_EXTENDED_FULL;
+    enum_constant public static final android.icu.text.TimeZoneFormat.Style ISO_EXTENDED_LOCAL_FIXED;
+    enum_constant public static final android.icu.text.TimeZoneFormat.Style ISO_EXTENDED_LOCAL_FULL;
+    enum_constant public static final android.icu.text.TimeZoneFormat.Style LOCALIZED_GMT;
+    enum_constant public static final android.icu.text.TimeZoneFormat.Style LOCALIZED_GMT_SHORT;
+    enum_constant public static final android.icu.text.TimeZoneFormat.Style SPECIFIC_LONG;
+    enum_constant public static final android.icu.text.TimeZoneFormat.Style SPECIFIC_SHORT;
+    enum_constant public static final android.icu.text.TimeZoneFormat.Style ZONE_ID;
+    enum_constant public static final android.icu.text.TimeZoneFormat.Style ZONE_ID_SHORT;
+  }
+
+  public static final class TimeZoneFormat.TimeType extends java.lang.Enum {
+    method public static android.icu.text.TimeZoneFormat.TimeType valueOf(java.lang.String);
+    method public static final android.icu.text.TimeZoneFormat.TimeType[] values();
+    enum_constant public static final android.icu.text.TimeZoneFormat.TimeType DAYLIGHT;
+    enum_constant public static final android.icu.text.TimeZoneFormat.TimeType STANDARD;
+    enum_constant public static final android.icu.text.TimeZoneFormat.TimeType UNKNOWN;
+  }
+
+  public abstract class TimeZoneNames implements java.io.Serializable {
+    method public abstract java.util.Set<java.lang.String> getAvailableMetaZoneIDs();
+    method public abstract java.util.Set<java.lang.String> getAvailableMetaZoneIDs(java.lang.String);
+    method public final java.lang.String getDisplayName(java.lang.String, android.icu.text.TimeZoneNames.NameType, long);
+    method public java.lang.String getExemplarLocationName(java.lang.String);
+    method public static android.icu.text.TimeZoneNames getInstance(android.icu.util.ULocale);
+    method public static android.icu.text.TimeZoneNames getInstance(java.util.Locale);
+    method public abstract java.lang.String getMetaZoneDisplayName(java.lang.String, android.icu.text.TimeZoneNames.NameType);
+    method public abstract java.lang.String getMetaZoneID(java.lang.String, long);
+    method public abstract java.lang.String getReferenceZoneID(java.lang.String, java.lang.String);
+    method public static android.icu.text.TimeZoneNames getTZDBInstance(android.icu.util.ULocale);
+    method public abstract java.lang.String getTimeZoneDisplayName(java.lang.String, android.icu.text.TimeZoneNames.NameType);
+  }
+
+  public static final class TimeZoneNames.NameType extends java.lang.Enum {
+    method public static android.icu.text.TimeZoneNames.NameType valueOf(java.lang.String);
+    method public static final android.icu.text.TimeZoneNames.NameType[] values();
+    enum_constant public static final android.icu.text.TimeZoneNames.NameType EXEMPLAR_LOCATION;
+    enum_constant public static final android.icu.text.TimeZoneNames.NameType LONG_DAYLIGHT;
+    enum_constant public static final android.icu.text.TimeZoneNames.NameType LONG_GENERIC;
+    enum_constant public static final android.icu.text.TimeZoneNames.NameType LONG_STANDARD;
+    enum_constant public static final android.icu.text.TimeZoneNames.NameType SHORT_DAYLIGHT;
+    enum_constant public static final android.icu.text.TimeZoneNames.NameType SHORT_GENERIC;
+    enum_constant public static final android.icu.text.TimeZoneNames.NameType SHORT_STANDARD;
+  }
+
+  public abstract class UCharacterIterator implements java.lang.Cloneable {
+    ctor protected UCharacterIterator();
+    method public java.lang.Object clone() throws java.lang.CloneNotSupportedException;
+    method public abstract int current();
+    method public int currentCodePoint();
+    method public java.text.CharacterIterator getCharacterIterator();
+    method public abstract int getIndex();
+    method public static final android.icu.text.UCharacterIterator getInstance(android.icu.text.Replaceable);
+    method public static final android.icu.text.UCharacterIterator getInstance(java.lang.String);
+    method public static final android.icu.text.UCharacterIterator getInstance(char[]);
+    method public static final android.icu.text.UCharacterIterator getInstance(char[], int, int);
+    method public static final android.icu.text.UCharacterIterator getInstance(java.lang.StringBuffer);
+    method public static final android.icu.text.UCharacterIterator getInstance(java.text.CharacterIterator);
+    method public abstract int getLength();
+    method public abstract int getText(char[], int);
+    method public final int getText(char[]);
+    method public java.lang.String getText();
+    method public int moveCodePointIndex(int);
+    method public int moveIndex(int);
+    method public abstract int next();
+    method public int nextCodePoint();
+    method public abstract int previous();
+    method public int previousCodePoint();
+    method public abstract void setIndex(int);
+    method public void setToLimit();
+    method public void setToStart();
+    field public static final int DONE = -1; // 0xffffffff
+  }
+
+  public abstract class UFormat extends java.text.Format {
+    ctor public UFormat();
+  }
+
+  public abstract class UnicodeFilter implements android.icu.text.UnicodeMatcher {
+    method public abstract boolean contains(int);
+    method public int matches(android.icu.text.Replaceable, int[], int, boolean);
+  }
+
+  public abstract interface UnicodeMatcher {
+    method public abstract void addMatchSetTo(android.icu.text.UnicodeSet);
+    method public abstract int matches(android.icu.text.Replaceable, int[], int, boolean);
+    method public abstract boolean matchesIndexValue(int);
+    method public abstract java.lang.String toPattern(boolean);
+    field public static final char ETHER = 65535; // 0xffff '\uffff'
+    field public static final int U_MATCH = 2; // 0x2
+    field public static final int U_MISMATCH = 0; // 0x0
+    field public static final int U_PARTIAL_MATCH = 1; // 0x1
+  }
+
+  public class UnicodeSet extends android.icu.text.UnicodeFilter implements java.lang.Comparable android.icu.util.Freezable java.lang.Iterable {
+    ctor public UnicodeSet();
+    ctor public UnicodeSet(android.icu.text.UnicodeSet);
+    ctor public UnicodeSet(int, int);
+    ctor public UnicodeSet(int...);
+    ctor public UnicodeSet(java.lang.String);
+    ctor public UnicodeSet(java.lang.String, boolean);
+    ctor public UnicodeSet(java.lang.String, int);
+    ctor public UnicodeSet(java.lang.String, java.text.ParsePosition, android.icu.text.SymbolTable);
+    ctor public UnicodeSet(java.lang.String, java.text.ParsePosition, android.icu.text.SymbolTable, int);
+    method public java.lang.StringBuffer _generatePattern(java.lang.StringBuffer, boolean);
+    method public java.lang.StringBuffer _generatePattern(java.lang.StringBuffer, boolean, boolean);
+    method public android.icu.text.UnicodeSet add(int, int);
+    method public final android.icu.text.UnicodeSet add(int);
+    method public final android.icu.text.UnicodeSet add(java.lang.CharSequence);
+    method public android.icu.text.UnicodeSet add(java.lang.Iterable<?>);
+    method public android.icu.text.UnicodeSet addAll(int, int);
+    method public final android.icu.text.UnicodeSet addAll(java.lang.CharSequence);
+    method public android.icu.text.UnicodeSet addAll(android.icu.text.UnicodeSet);
+    method public android.icu.text.UnicodeSet addAll(java.lang.Iterable<?>);
+    method public android.icu.text.UnicodeSet addAll(T...);
+    method public T addAllTo(T);
+    method public java.lang.String[] addAllTo(java.lang.String[]);
+    method public static U addAllTo(java.lang.Iterable<T>, U);
+    method public static T[] addAllTo(java.lang.Iterable<T>, T[]);
+    method public void addMatchSetTo(android.icu.text.UnicodeSet);
+    method public android.icu.text.UnicodeSet applyIntPropertyValue(int, int);
+    method public final android.icu.text.UnicodeSet applyPattern(java.lang.String);
+    method public android.icu.text.UnicodeSet applyPattern(java.lang.String, boolean);
+    method public android.icu.text.UnicodeSet applyPattern(java.lang.String, int);
+    method public android.icu.text.UnicodeSet applyPropertyAlias(java.lang.String, java.lang.String);
+    method public android.icu.text.UnicodeSet applyPropertyAlias(java.lang.String, java.lang.String, android.icu.text.SymbolTable);
+    method public int charAt(int);
+    method public android.icu.text.UnicodeSet clear();
+    method public java.lang.Object clone();
+    method public android.icu.text.UnicodeSet cloneAsThawed();
+    method public android.icu.text.UnicodeSet closeOver(int);
+    method public android.icu.text.UnicodeSet compact();
+    method public static int compare(java.lang.CharSequence, int);
+    method public static int compare(int, java.lang.CharSequence);
+    method public static int compare(java.lang.Iterable<T>, java.lang.Iterable<T>);
+    method public static int compare(java.util.Collection<T>, java.util.Collection<T>, android.icu.text.UnicodeSet.ComparisonStyle);
+    method public int compareTo(android.icu.text.UnicodeSet);
+    method public int compareTo(android.icu.text.UnicodeSet, android.icu.text.UnicodeSet.ComparisonStyle);
+    method public int compareTo(java.lang.Iterable<java.lang.String>);
+    method public android.icu.text.UnicodeSet complement(int, int);
+    method public final android.icu.text.UnicodeSet complement(int);
+    method public android.icu.text.UnicodeSet complement();
+    method public final android.icu.text.UnicodeSet complement(java.lang.CharSequence);
+    method public final android.icu.text.UnicodeSet complementAll(java.lang.CharSequence);
+    method public android.icu.text.UnicodeSet complementAll(android.icu.text.UnicodeSet);
+    method public boolean contains(int);
+    method public boolean contains(int, int);
+    method public final boolean contains(java.lang.CharSequence);
+    method public boolean containsAll(android.icu.text.UnicodeSet);
+    method public boolean containsAll(java.lang.String);
+    method public boolean containsAll(java.lang.Iterable<T>);
+    method public boolean containsNone(int, int);
+    method public boolean containsNone(android.icu.text.UnicodeSet);
+    method public boolean containsNone(java.lang.CharSequence);
+    method public boolean containsNone(java.lang.Iterable<T>);
+    method public final boolean containsSome(int, int);
+    method public final boolean containsSome(android.icu.text.UnicodeSet);
+    method public final boolean containsSome(java.lang.CharSequence);
+    method public final boolean containsSome(java.lang.Iterable<T>);
+    method public android.icu.text.UnicodeSet freeze();
+    method public static android.icu.text.UnicodeSet from(java.lang.CharSequence);
+    method public static android.icu.text.UnicodeSet fromAll(java.lang.CharSequence);
+    method public int getRangeCount();
+    method public int getRangeEnd(int);
+    method public int getRangeStart(int);
+    method public int indexOf(int);
+    method public boolean isEmpty();
+    method public boolean isFrozen();
+    method public java.util.Iterator<java.lang.String> iterator();
+    method public boolean matchesIndexValue(int);
+    method public java.lang.Iterable<android.icu.text.UnicodeSet.EntryRange> ranges();
+    method public android.icu.text.UnicodeSet remove(int, int);
+    method public final android.icu.text.UnicodeSet remove(int);
+    method public final android.icu.text.UnicodeSet remove(java.lang.CharSequence);
+    method public final android.icu.text.UnicodeSet removeAll(java.lang.CharSequence);
+    method public android.icu.text.UnicodeSet removeAll(android.icu.text.UnicodeSet);
+    method public android.icu.text.UnicodeSet removeAll(java.lang.Iterable<T>);
+    method public final android.icu.text.UnicodeSet removeAllStrings();
+    method public static boolean resemblesPattern(java.lang.String, int);
+    method public android.icu.text.UnicodeSet retain(int, int);
+    method public final android.icu.text.UnicodeSet retain(int);
+    method public final android.icu.text.UnicodeSet retain(java.lang.CharSequence);
+    method public final android.icu.text.UnicodeSet retainAll(java.lang.CharSequence);
+    method public android.icu.text.UnicodeSet retainAll(android.icu.text.UnicodeSet);
+    method public android.icu.text.UnicodeSet retainAll(java.lang.Iterable<T>);
+    method public android.icu.text.UnicodeSet set(int, int);
+    method public android.icu.text.UnicodeSet set(android.icu.text.UnicodeSet);
+    method public int size();
+    method public int span(java.lang.CharSequence, android.icu.text.UnicodeSet.SpanCondition);
+    method public int span(java.lang.CharSequence, int, android.icu.text.UnicodeSet.SpanCondition);
+    method public int spanBack(java.lang.CharSequence, android.icu.text.UnicodeSet.SpanCondition);
+    method public int spanBack(java.lang.CharSequence, int, android.icu.text.UnicodeSet.SpanCondition);
+    method public java.util.Collection<java.lang.String> strings();
+    method public static java.lang.String[] toArray(android.icu.text.UnicodeSet);
+    method public java.lang.String toPattern(boolean);
+    field public static final int ADD_CASE_MAPPINGS = 4; // 0x4
+    field public static final android.icu.text.UnicodeSet ALL_CODE_POINTS;
+    field public static final int CASE = 2; // 0x2
+    field public static final int CASE_INSENSITIVE = 2; // 0x2
+    field public static final android.icu.text.UnicodeSet EMPTY;
+    field public static final int IGNORE_SPACE = 1; // 0x1
+    field public static final int MAX_VALUE = 1114111; // 0x10ffff
+    field public static final int MIN_VALUE = 0; // 0x0
+  }
+
+  public static final class UnicodeSet.ComparisonStyle extends java.lang.Enum {
+    method public static android.icu.text.UnicodeSet.ComparisonStyle valueOf(java.lang.String);
+    method public static final android.icu.text.UnicodeSet.ComparisonStyle[] values();
+    enum_constant public static final android.icu.text.UnicodeSet.ComparisonStyle LEXICOGRAPHIC;
+    enum_constant public static final android.icu.text.UnicodeSet.ComparisonStyle LONGER_FIRST;
+    enum_constant public static final android.icu.text.UnicodeSet.ComparisonStyle SHORTER_FIRST;
+  }
+
+  public static class UnicodeSet.EntryRange {
+    field public int codepoint;
+    field public int codepointEnd;
+  }
+
+  public static final class UnicodeSet.SpanCondition extends java.lang.Enum {
+    method public static android.icu.text.UnicodeSet.SpanCondition valueOf(java.lang.String);
+    method public static final android.icu.text.UnicodeSet.SpanCondition[] values();
+    enum_constant public static final android.icu.text.UnicodeSet.SpanCondition CONDITION_COUNT;
+    enum_constant public static final android.icu.text.UnicodeSet.SpanCondition CONTAINED;
+    enum_constant public static final android.icu.text.UnicodeSet.SpanCondition NOT_CONTAINED;
+    enum_constant public static final android.icu.text.UnicodeSet.SpanCondition SIMPLE;
+  }
+
+  public class UnicodeSetIterator {
+    ctor public UnicodeSetIterator(android.icu.text.UnicodeSet);
+    ctor public UnicodeSetIterator();
+    method public java.lang.String getString();
+    method public boolean next();
+    method public boolean nextRange();
+    method public void reset(android.icu.text.UnicodeSet);
+    method public void reset();
+    field public static int IS_STRING;
+    field public int codepoint;
+    field public int codepointEnd;
+    field public java.lang.String string;
+  }
+
+  public class UnicodeSetSpanner {
+    ctor public UnicodeSetSpanner(android.icu.text.UnicodeSet);
+    method public int countIn(java.lang.CharSequence);
+    method public int countIn(java.lang.CharSequence, android.icu.text.UnicodeSetSpanner.CountMethod);
+    method public int countIn(java.lang.CharSequence, android.icu.text.UnicodeSetSpanner.CountMethod, android.icu.text.UnicodeSet.SpanCondition);
+    method public java.lang.String deleteFrom(java.lang.CharSequence);
+    method public java.lang.String deleteFrom(java.lang.CharSequence, android.icu.text.UnicodeSet.SpanCondition);
+    method public android.icu.text.UnicodeSet getUnicodeSet();
+    method public java.lang.String replaceFrom(java.lang.CharSequence, java.lang.CharSequence);
+    method public java.lang.String replaceFrom(java.lang.CharSequence, java.lang.CharSequence, android.icu.text.UnicodeSetSpanner.CountMethod);
+    method public java.lang.String replaceFrom(java.lang.CharSequence, java.lang.CharSequence, android.icu.text.UnicodeSetSpanner.CountMethod, android.icu.text.UnicodeSet.SpanCondition);
+    method public java.lang.CharSequence trim(java.lang.CharSequence);
+    method public java.lang.CharSequence trim(java.lang.CharSequence, android.icu.text.UnicodeSetSpanner.TrimOption);
+    method public java.lang.CharSequence trim(java.lang.CharSequence, android.icu.text.UnicodeSetSpanner.TrimOption, android.icu.text.UnicodeSet.SpanCondition);
+  }
+
+  public static final class UnicodeSetSpanner.CountMethod extends java.lang.Enum {
+    method public static android.icu.text.UnicodeSetSpanner.CountMethod valueOf(java.lang.String);
+    method public static final android.icu.text.UnicodeSetSpanner.CountMethod[] values();
+    enum_constant public static final android.icu.text.UnicodeSetSpanner.CountMethod MIN_ELEMENTS;
+    enum_constant public static final android.icu.text.UnicodeSetSpanner.CountMethod WHOLE_SPAN;
+  }
+
+  public static final class UnicodeSetSpanner.TrimOption extends java.lang.Enum {
+    method public static android.icu.text.UnicodeSetSpanner.TrimOption valueOf(java.lang.String);
+    method public static final android.icu.text.UnicodeSetSpanner.TrimOption[] values();
+    enum_constant public static final android.icu.text.UnicodeSetSpanner.TrimOption BOTH;
+    enum_constant public static final android.icu.text.UnicodeSetSpanner.TrimOption LEADING;
+    enum_constant public static final android.icu.text.UnicodeSetSpanner.TrimOption TRAILING;
+  }
+
+}
+
+package android.icu.util {
+
+  public class BuddhistCalendar extends android.icu.util.GregorianCalendar {
+    ctor public BuddhistCalendar();
+    ctor public BuddhistCalendar(android.icu.util.TimeZone);
+    ctor public BuddhistCalendar(java.util.Locale);
+    ctor public BuddhistCalendar(android.icu.util.ULocale);
+    ctor public BuddhistCalendar(android.icu.util.TimeZone, java.util.Locale);
+    ctor public BuddhistCalendar(android.icu.util.TimeZone, android.icu.util.ULocale);
+    ctor public BuddhistCalendar(java.util.Date);
+    ctor public BuddhistCalendar(int, int, int);
+    ctor public BuddhistCalendar(int, int, int, int, int, int);
+    field public static final int BE = 0; // 0x0
+  }
+
+  public class ByteArrayWrapper implements java.lang.Comparable {
+    ctor public ByteArrayWrapper();
+    ctor public ByteArrayWrapper(byte[], int);
+    ctor public ByteArrayWrapper(java.nio.ByteBuffer);
+    method public final android.icu.util.ByteArrayWrapper append(byte[], int, int);
+    method public int compareTo(android.icu.util.ByteArrayWrapper);
+    method public android.icu.util.ByteArrayWrapper ensureCapacity(int);
+    method public final byte[] releaseBytes();
+    method public final android.icu.util.ByteArrayWrapper set(byte[], int, int);
+    field public byte[] bytes;
+    field public int size;
+  }
+
+   abstract class CECalendar extends android.icu.util.Calendar {
+    ctor protected CECalendar();
+    ctor protected CECalendar(android.icu.util.TimeZone);
+    ctor protected CECalendar(java.util.Locale);
+    ctor protected CECalendar(android.icu.util.ULocale);
+    ctor protected CECalendar(android.icu.util.TimeZone, java.util.Locale);
+    ctor protected CECalendar(android.icu.util.TimeZone, android.icu.util.ULocale);
+    ctor protected CECalendar(int, int, int);
+    ctor protected CECalendar(java.util.Date);
+    ctor protected CECalendar(int, int, int, int, int, int);
+    method public static int ceToJD(long, int, int, int);
+    method protected abstract int getJDEpochOffset();
+    method protected int handleComputeMonthStart(int, int, boolean);
+    method protected int handleGetLimit(int, int);
+    method public static void jdToCE(int, int, int[]);
+  }
+
+  public abstract class Calendar implements java.lang.Cloneable java.lang.Comparable java.io.Serializable {
+    ctor protected Calendar();
+    ctor protected Calendar(android.icu.util.TimeZone, java.util.Locale);
+    ctor protected Calendar(android.icu.util.TimeZone, android.icu.util.ULocale);
+    method public void add(int, int);
+    method public boolean after(java.lang.Object);
+    method public boolean before(java.lang.Object);
+    method public final void clear();
+    method public final void clear(int);
+    method public java.lang.Object clone();
+    method public int compareTo(android.icu.util.Calendar);
+    method protected void complete();
+    method protected void computeFields();
+    method protected final void computeGregorianFields(int);
+    method protected int computeGregorianMonthStart(int, int);
+    method protected int computeJulianDay();
+    method protected int computeMillisInDay();
+    method protected void computeTime();
+    method protected int computeZoneOffset(long, int);
+    method public int fieldDifference(java.util.Date, int);
+    method protected java.lang.String fieldName(int);
+    method protected static final long floorDivide(long, long);
+    method protected static final int floorDivide(int, int);
+    method protected static final int floorDivide(int, int, int[]);
+    method protected static final int floorDivide(long, int, int[]);
+    method public final int get(int);
+    method public int getActualMaximum(int);
+    method public int getActualMinimum(int);
+    method public static java.util.Locale[] getAvailableLocales();
+    method public android.icu.text.DateFormat getDateTimeFormat(int, int, java.util.Locale);
+    method public android.icu.text.DateFormat getDateTimeFormat(int, int, android.icu.util.ULocale);
+    method public java.lang.String getDisplayName(java.util.Locale);
+    method public java.lang.String getDisplayName(android.icu.util.ULocale);
+    method public final int getFieldCount();
+    method protected int[][][] getFieldResolutionTable();
+    method public int getFirstDayOfWeek();
+    method public final int getGreatestMinimum(int);
+    method protected final int getGregorianDayOfMonth();
+    method protected final int getGregorianDayOfYear();
+    method protected final int getGregorianMonth();
+    method protected final int getGregorianYear();
+    method public static android.icu.util.Calendar getInstance();
+    method public static android.icu.util.Calendar getInstance(android.icu.util.TimeZone);
+    method public static android.icu.util.Calendar getInstance(java.util.Locale);
+    method public static android.icu.util.Calendar getInstance(android.icu.util.ULocale);
+    method public static android.icu.util.Calendar getInstance(android.icu.util.TimeZone, java.util.Locale);
+    method public static android.icu.util.Calendar getInstance(android.icu.util.TimeZone, android.icu.util.ULocale);
+    method public static final java.lang.String[] getKeywordValuesForLocale(java.lang.String, android.icu.util.ULocale, boolean);
+    method public final int getLeastMaximum(int);
+    method protected int getLimit(int, int);
+    method public final int getMaximum(int);
+    method public int getMinimalDaysInFirstWeek();
+    method public final int getMinimum(int);
+    method public int getRepeatedWallTimeOption();
+    method public int getSkippedWallTimeOption();
+    method protected final int getStamp(int);
+    method public final java.util.Date getTime();
+    method public long getTimeInMillis();
+    method public android.icu.util.TimeZone getTimeZone();
+    method public java.lang.String getType();
+    method public android.icu.util.Calendar.WeekData getWeekData();
+    method public static android.icu.util.Calendar.WeekData getWeekDataForRegion(java.lang.String);
+    method protected static final int gregorianMonthLength(int, int);
+    method protected static final int gregorianPreviousMonthLength(int, int);
+    method protected void handleComputeFields(int);
+    method protected int handleComputeJulianDay(int);
+    method protected abstract int handleComputeMonthStart(int, int, boolean);
+    method protected int[] handleCreateFields();
+    method protected android.icu.text.DateFormat handleGetDateFormat(java.lang.String, java.util.Locale);
+    method protected android.icu.text.DateFormat handleGetDateFormat(java.lang.String, java.lang.String, java.util.Locale);
+    method protected android.icu.text.DateFormat handleGetDateFormat(java.lang.String, android.icu.util.ULocale);
+    method protected abstract int handleGetExtendedYear();
+    method protected abstract int handleGetLimit(int, int);
+    method protected int handleGetMonthLength(int, int);
+    method protected int handleGetYearLength(int);
+    method protected final int internalGet(int);
+    method protected final int internalGet(int, int);
+    method protected final long internalGetTimeInMillis();
+    method protected final void internalSet(int, int);
+    method public boolean isEquivalentTo(android.icu.util.Calendar);
+    method protected static final boolean isGregorianLeapYear(int);
+    method public boolean isLenient();
+    method public final boolean isSet(int);
+    method public boolean isWeekend(java.util.Date);
+    method public boolean isWeekend();
+    method protected static final int julianDayToDayOfWeek(int);
+    method protected static final long julianDayToMillis(int);
+    method protected static final int millisToJulianDay(long);
+    method protected int newerField(int, int);
+    method protected int newestStamp(int, int, int);
+    method protected void pinField(int);
+    method protected void prepareGetActual(int, boolean);
+    method protected int resolveFields(int[][][]);
+    method public final void roll(int, boolean);
+    method public void roll(int, int);
+    method public final void set(int, int);
+    method public final void set(int, int, int);
+    method public final void set(int, int, int, int, int);
+    method public final void set(int, int, int, int, int, int);
+    method public void setFirstDayOfWeek(int);
+    method public void setLenient(boolean);
+    method public void setMinimalDaysInFirstWeek(int);
+    method public void setRepeatedWallTimeOption(int);
+    method public void setSkippedWallTimeOption(int);
+    method public final void setTime(java.util.Date);
+    method public void setTimeInMillis(long);
+    method public void setTimeZone(android.icu.util.TimeZone);
+    method public android.icu.util.Calendar setWeekData(android.icu.util.Calendar.WeekData);
+    method protected void validateField(int);
+    method protected final void validateField(int, int, int);
+    method protected void validateFields();
+    method protected int weekNumber(int, int, int);
+    method protected final int weekNumber(int, int);
+    field public static final int AM = 0; // 0x0
+    field public static final int AM_PM = 9; // 0x9
+    field public static final int APRIL = 3; // 0x3
+    field public static final int AUGUST = 7; // 0x7
+    field protected static final int BASE_FIELD_COUNT = 23; // 0x17
+    field public static final int DATE = 5; // 0x5
+    field public static final int DAY_OF_MONTH = 5; // 0x5
+    field public static final int DAY_OF_WEEK = 7; // 0x7
+    field public static final int DAY_OF_WEEK_IN_MONTH = 8; // 0x8
+    field public static final int DAY_OF_YEAR = 6; // 0x6
+    field public static final int DECEMBER = 11; // 0xb
+    field public static final int DOW_LOCAL = 18; // 0x12
+    field public static final int DST_OFFSET = 16; // 0x10
+    field protected static final int EPOCH_JULIAN_DAY = 2440588; // 0x253d8c
+    field public static final int ERA = 0; // 0x0
+    field public static final int EXTENDED_YEAR = 19; // 0x13
+    field public static final int FEBRUARY = 1; // 0x1
+    field public static final int FRIDAY = 6; // 0x6
+    field protected static final int GREATEST_MINIMUM = 1; // 0x1
+    field public static final int HOUR = 10; // 0xa
+    field public static final int HOUR_OF_DAY = 11; // 0xb
+    field protected static final int INTERNALLY_SET = 1; // 0x1
+    field public static final int IS_LEAP_MONTH = 22; // 0x16
+    field public static final int JANUARY = 0; // 0x0
+    field protected static final int JAN_1_1_JULIAN_DAY = 1721426; // 0x1a4452
+    field public static final int JULIAN_DAY = 20; // 0x14
+    field public static final int JULY = 6; // 0x6
+    field public static final int JUNE = 5; // 0x5
+    field protected static final int LEAST_MAXIMUM = 2; // 0x2
+    field public static final int MARCH = 2; // 0x2
+    field protected static final int MAXIMUM = 3; // 0x3
+    field protected static final java.util.Date MAX_DATE;
+    field protected static final int MAX_FIELD_COUNT = 32; // 0x20
+    field protected static final int MAX_JULIAN = 2130706432; // 0x7f000000
+    field protected static final long MAX_MILLIS = 183882168921600000L; // 0x28d47dbbf19b000L
+    field public static final int MAY = 4; // 0x4
+    field public static final int MILLISECOND = 14; // 0xe
+    field public static final int MILLISECONDS_IN_DAY = 21; // 0x15
+    field protected static final int MINIMUM = 0; // 0x0
+    field protected static final int MINIMUM_USER_STAMP = 2; // 0x2
+    field public static final int MINUTE = 12; // 0xc
+    field protected static final java.util.Date MIN_DATE;
+    field protected static final int MIN_JULIAN = -2130706432; // 0x81000000
+    field protected static final long MIN_MILLIS = -184303902528000000L; // 0xfd713893bf19b000L
+    field public static final int MONDAY = 2; // 0x2
+    field public static final int MONTH = 2; // 0x2
+    field public static final int NOVEMBER = 10; // 0xa
+    field public static final int OCTOBER = 9; // 0x9
+    field protected static final long ONE_DAY = 86400000L; // 0x5265c00L
+    field protected static final int ONE_HOUR = 3600000; // 0x36ee80
+    field protected static final int ONE_MINUTE = 60000; // 0xea60
+    field protected static final int ONE_SECOND = 1000; // 0x3e8
+    field protected static final long ONE_WEEK = 604800000L; // 0x240c8400L
+    field public static final int PM = 1; // 0x1
+    field protected static final int RESOLVE_REMAP = 32; // 0x20
+    field public static final int SATURDAY = 7; // 0x7
+    field public static final int SECOND = 13; // 0xd
+    field public static final int SEPTEMBER = 8; // 0x8
+    field public static final int SUNDAY = 1; // 0x1
+    field public static final int THURSDAY = 5; // 0x5
+    field public static final int TUESDAY = 3; // 0x3
+    field public static final int UNDECIMBER = 12; // 0xc
+    field protected static final int UNSET = 0; // 0x0
+    field public static final int WALLTIME_FIRST = 1; // 0x1
+    field public static final int WALLTIME_LAST = 0; // 0x0
+    field public static final int WALLTIME_NEXT_VALID = 2; // 0x2
+    field public static final int WEDNESDAY = 4; // 0x4
+    field public static final int WEEK_OF_MONTH = 4; // 0x4
+    field public static final int WEEK_OF_YEAR = 3; // 0x3
+    field public static final int YEAR = 1; // 0x1
+    field public static final int YEAR_WOY = 17; // 0x11
+    field public static final int ZONE_OFFSET = 15; // 0xf
+  }
+
+  public static final class Calendar.WeekData {
+    ctor public Calendar.WeekData(int, int, int, int, int, int);
+    field public final int firstDayOfWeek;
+    field public final int minimalDaysInFirstWeek;
+    field public final int weekendCease;
+    field public final int weekendCeaseMillis;
+    field public final int weekendOnset;
+    field public final int weekendOnsetMillis;
+  }
+
+  public class ChineseCalendar extends android.icu.util.Calendar {
+    ctor public ChineseCalendar();
+    ctor public ChineseCalendar(java.util.Date);
+    ctor public ChineseCalendar(int, int, int, int);
+    ctor public ChineseCalendar(int, int, int, int, int, int, int);
+    ctor public ChineseCalendar(int, int, int, int, int);
+    ctor public ChineseCalendar(int, int, int, int, int, int, int, int);
+    ctor public ChineseCalendar(java.util.Locale);
+    ctor public ChineseCalendar(android.icu.util.TimeZone);
+    ctor public ChineseCalendar(android.icu.util.TimeZone, java.util.Locale);
+    ctor public ChineseCalendar(android.icu.util.ULocale);
+    ctor public ChineseCalendar(android.icu.util.TimeZone, android.icu.util.ULocale);
+    method protected int handleComputeMonthStart(int, int, boolean);
+    method protected android.icu.text.DateFormat handleGetDateFormat(java.lang.String, java.lang.String, android.icu.util.ULocale);
+    method protected int handleGetExtendedYear();
+    method protected int handleGetLimit(int, int);
+  }
+
+  public final class CopticCalendar extends android.icu.util.CECalendar {
+    ctor public CopticCalendar();
+    ctor public CopticCalendar(android.icu.util.TimeZone);
+    ctor public CopticCalendar(java.util.Locale);
+    ctor public CopticCalendar(android.icu.util.ULocale);
+    ctor public CopticCalendar(android.icu.util.TimeZone, java.util.Locale);
+    ctor public CopticCalendar(android.icu.util.TimeZone, android.icu.util.ULocale);
+    ctor public CopticCalendar(int, int, int);
+    ctor public CopticCalendar(java.util.Date);
+    ctor public CopticCalendar(int, int, int, int, int, int);
+    method protected deprecated int getJDEpochOffset();
+    method protected deprecated int handleGetExtendedYear();
+    field public static final int AMSHIR = 5; // 0x5
+    field public static final int BABA = 1; // 0x1
+    field public static final int BARAMHAT = 6; // 0x6
+    field public static final int BARAMOUDA = 7; // 0x7
+    field public static final int BASHANS = 8; // 0x8
+    field public static final int EPEP = 10; // 0xa
+    field public static final int HATOR = 2; // 0x2
+    field public static final int KIAHK = 3; // 0x3
+    field public static final int MESRA = 11; // 0xb
+    field public static final int NASIE = 12; // 0xc
+    field public static final int PAONA = 9; // 0x9
+    field public static final int TOBA = 4; // 0x4
+    field public static final int TOUT = 0; // 0x0
+  }
+
+  public class Currency extends android.icu.util.MeasureUnit {
+    ctor protected Currency(java.lang.String);
+    method public static java.util.Set<android.icu.util.Currency> getAvailableCurrencies();
+    method public static java.lang.String[] getAvailableCurrencyCodes(android.icu.util.ULocale, java.util.Date);
+    method public static java.lang.String[] getAvailableCurrencyCodes(java.util.Locale, java.util.Date);
+    method public static java.util.Locale[] getAvailableLocales();
+    method public static android.icu.util.ULocale[] getAvailableULocales();
+    method public java.lang.String getCurrencyCode();
+    method public int getDefaultFractionDigits();
+    method public int getDefaultFractionDigits(android.icu.util.Currency.CurrencyUsage);
+    method public java.lang.String getDisplayName();
+    method public java.lang.String getDisplayName(java.util.Locale);
+    method public static android.icu.util.Currency getInstance(java.util.Locale);
+    method public static android.icu.util.Currency getInstance(android.icu.util.ULocale);
+    method public static android.icu.util.Currency getInstance(java.lang.String);
+    method public static final java.lang.String[] getKeywordValuesForLocale(java.lang.String, android.icu.util.ULocale, boolean);
+    method public java.lang.String getName(java.util.Locale, int, boolean[]);
+    method public java.lang.String getName(android.icu.util.ULocale, int, boolean[]);
+    method public java.lang.String getName(java.util.Locale, int, java.lang.String, boolean[]);
+    method public java.lang.String getName(android.icu.util.ULocale, int, java.lang.String, boolean[]);
+    method public int getNumericCode();
+    method public double getRoundingIncrement();
+    method public double getRoundingIncrement(android.icu.util.Currency.CurrencyUsage);
+    method public java.lang.String getSymbol();
+    method public java.lang.String getSymbol(java.util.Locale);
+    method public java.lang.String getSymbol(android.icu.util.ULocale);
+    method public static boolean isAvailable(java.lang.String, java.util.Date, java.util.Date);
+    method public static java.lang.Object registerInstance(android.icu.util.Currency, android.icu.util.ULocale);
+    method public static boolean unregister(java.lang.Object);
+    field public static final int LONG_NAME = 1; // 0x1
+    field public static final int PLURAL_LONG_NAME = 2; // 0x2
+    field public static final int SYMBOL_NAME = 0; // 0x0
+  }
+
+  public static final class Currency.CurrencyUsage extends java.lang.Enum {
+    method public static android.icu.util.Currency.CurrencyUsage valueOf(java.lang.String);
+    method public static final android.icu.util.Currency.CurrencyUsage[] values();
+    enum_constant public static final android.icu.util.Currency.CurrencyUsage CASH;
+    enum_constant public static final android.icu.util.Currency.CurrencyUsage STANDARD;
+  }
+
+  public class CurrencyAmount extends android.icu.util.Measure {
+    ctor public CurrencyAmount(java.lang.Number, android.icu.util.Currency);
+    ctor public CurrencyAmount(double, android.icu.util.Currency);
+    method public android.icu.util.Currency getCurrency();
+  }
+
+  public final class DateInterval implements java.io.Serializable {
+    ctor public DateInterval(long, long);
+    method public long getFromDate();
+    method public long getToDate();
+  }
+
+  public abstract interface Freezable implements java.lang.Cloneable {
+    method public abstract T cloneAsThawed();
+    method public abstract T freeze();
+    method public abstract boolean isFrozen();
+  }
+
+  public class GregorianCalendar extends android.icu.util.Calendar {
+    ctor public GregorianCalendar();
+    ctor public GregorianCalendar(android.icu.util.TimeZone);
+    ctor public GregorianCalendar(java.util.Locale);
+    ctor public GregorianCalendar(android.icu.util.ULocale);
+    ctor public GregorianCalendar(android.icu.util.TimeZone, java.util.Locale);
+    ctor public GregorianCalendar(android.icu.util.TimeZone, android.icu.util.ULocale);
+    ctor public GregorianCalendar(int, int, int);
+    ctor public GregorianCalendar(int, int, int, int, int);
+    ctor public GregorianCalendar(int, int, int, int, int, int);
+    method public final java.util.Date getGregorianChange();
+    method protected int handleComputeMonthStart(int, int, boolean);
+    method protected int handleGetExtendedYear();
+    method protected int handleGetLimit(int, int);
+    method public boolean isLeapYear(int);
+    method public void setGregorianChange(java.util.Date);
+    field public static final int AD = 1; // 0x1
+    field public static final int BC = 0; // 0x0
+    field protected transient boolean invertGregorian;
+    field protected transient boolean isGregorian;
+  }
+
+  public class HebrewCalendar extends android.icu.util.Calendar {
+    ctor public HebrewCalendar();
+    ctor public HebrewCalendar(android.icu.util.TimeZone);
+    ctor public HebrewCalendar(java.util.Locale);
+    ctor public HebrewCalendar(android.icu.util.ULocale);
+    ctor public HebrewCalendar(android.icu.util.TimeZone, java.util.Locale);
+    ctor public HebrewCalendar(android.icu.util.TimeZone, android.icu.util.ULocale);
+    ctor public HebrewCalendar(int, int, int);
+    ctor public HebrewCalendar(java.util.Date);
+    ctor public HebrewCalendar(int, int, int, int, int, int);
+    method protected int handleComputeMonthStart(int, int, boolean);
+    method protected int handleGetExtendedYear();
+    method protected int handleGetLimit(int, int);
+    field public static final int ADAR = 6; // 0x6
+    field public static final int ADAR_1 = 5; // 0x5
+    field public static final int AV = 11; // 0xb
+    field public static final int ELUL = 12; // 0xc
+    field public static final int HESHVAN = 1; // 0x1
+    field public static final int IYAR = 8; // 0x8
+    field public static final int KISLEV = 2; // 0x2
+    field public static final int NISAN = 7; // 0x7
+    field public static final int SHEVAT = 4; // 0x4
+    field public static final int SIVAN = 9; // 0x9
+    field public static final int TAMUZ = 10; // 0xa
+    field public static final int TEVET = 3; // 0x3
+    field public static final int TISHRI = 0; // 0x0
+  }
+
+  public class ICUUncheckedIOException extends java.lang.RuntimeException {
+    ctor public ICUUncheckedIOException();
+    ctor public ICUUncheckedIOException(java.lang.String);
+    ctor public ICUUncheckedIOException(java.lang.Throwable);
+    ctor public ICUUncheckedIOException(java.lang.String, java.lang.Throwable);
+  }
+
+  public class IndianCalendar extends android.icu.util.Calendar {
+    ctor public IndianCalendar();
+    ctor public IndianCalendar(android.icu.util.TimeZone);
+    ctor public IndianCalendar(java.util.Locale);
+    ctor public IndianCalendar(android.icu.util.ULocale);
+    ctor public IndianCalendar(android.icu.util.TimeZone, java.util.Locale);
+    ctor public IndianCalendar(android.icu.util.TimeZone, android.icu.util.ULocale);
+    ctor public IndianCalendar(java.util.Date);
+    ctor public IndianCalendar(int, int, int);
+    ctor public IndianCalendar(int, int, int, int, int, int);
+    method protected int handleComputeMonthStart(int, int, boolean);
+    method protected int handleGetExtendedYear();
+    method protected int handleGetLimit(int, int);
+    field public static final int AGRAHAYANA = 8; // 0x8
+    field public static final int ASADHA = 3; // 0x3
+    field public static final int ASVINA = 6; // 0x6
+    field public static final int BHADRA = 5; // 0x5
+    field public static final int CHAITRA = 0; // 0x0
+    field public static final int IE = 0; // 0x0
+    field public static final int JYAISTHA = 2; // 0x2
+    field public static final int KARTIKA = 7; // 0x7
+    field public static final int MAGHA = 10; // 0xa
+    field public static final int PAUSA = 9; // 0x9
+    field public static final int PHALGUNA = 11; // 0xb
+    field public static final int SRAVANA = 4; // 0x4
+    field public static final int VAISAKHA = 1; // 0x1
+  }
+
+  public class IslamicCalendar extends android.icu.util.Calendar {
+    ctor public IslamicCalendar();
+    ctor public IslamicCalendar(android.icu.util.TimeZone);
+    ctor public IslamicCalendar(java.util.Locale);
+    ctor public IslamicCalendar(android.icu.util.ULocale);
+    ctor public IslamicCalendar(android.icu.util.TimeZone, java.util.Locale);
+    ctor public IslamicCalendar(android.icu.util.TimeZone, android.icu.util.ULocale);
+    ctor public IslamicCalendar(java.util.Date);
+    ctor public IslamicCalendar(int, int, int);
+    ctor public IslamicCalendar(int, int, int, int, int, int);
+    method protected int handleComputeMonthStart(int, int, boolean);
+    method protected int handleGetExtendedYear();
+    method protected int handleGetLimit(int, int);
+    method public boolean isCivil();
+    method public void setCivil(boolean);
+    field public static final int DHU_AL_HIJJAH = 11; // 0xb
+    field public static final int DHU_AL_QIDAH = 10; // 0xa
+    field public static final int JUMADA_1 = 4; // 0x4
+    field public static final int JUMADA_2 = 5; // 0x5
+    field public static final int MUHARRAM = 0; // 0x0
+    field public static final int RABI_1 = 2; // 0x2
+    field public static final int RABI_2 = 3; // 0x3
+    field public static final int RAJAB = 6; // 0x6
+    field public static final int RAMADAN = 8; // 0x8
+    field public static final int SAFAR = 1; // 0x1
+    field public static final int SHABAN = 7; // 0x7
+    field public static final int SHAWWAL = 9; // 0x9
+  }
+
+  public static final class IslamicCalendar.CalculationType extends java.lang.Enum {
+    method public static android.icu.util.IslamicCalendar.CalculationType valueOf(java.lang.String);
+    method public static final android.icu.util.IslamicCalendar.CalculationType[] values();
+    enum_constant public static final android.icu.util.IslamicCalendar.CalculationType ISLAMIC;
+    enum_constant public static final android.icu.util.IslamicCalendar.CalculationType ISLAMIC_CIVIL;
+    enum_constant public static final android.icu.util.IslamicCalendar.CalculationType ISLAMIC_TBLA;
+    enum_constant public static final android.icu.util.IslamicCalendar.CalculationType ISLAMIC_UMALQURA;
+  }
+
+  public class JapaneseCalendar extends android.icu.util.GregorianCalendar {
+    ctor public JapaneseCalendar();
+    ctor public JapaneseCalendar(android.icu.util.TimeZone);
+    ctor public JapaneseCalendar(java.util.Locale);
+    ctor public JapaneseCalendar(android.icu.util.ULocale);
+    ctor public JapaneseCalendar(android.icu.util.TimeZone, java.util.Locale);
+    ctor public JapaneseCalendar(android.icu.util.TimeZone, android.icu.util.ULocale);
+    ctor public JapaneseCalendar(java.util.Date);
+    ctor public JapaneseCalendar(int, int, int, int);
+    ctor public JapaneseCalendar(int, int, int);
+    ctor public JapaneseCalendar(int, int, int, int, int, int);
+    field public static final int CURRENT_ERA;
+    field public static final int HEISEI;
+    field public static final int MEIJI;
+    field public static final int SHOWA;
+    field public static final int TAISHO;
+  }
+
+  public class Measure {
+    ctor public Measure(java.lang.Number, android.icu.util.MeasureUnit);
+    method public java.lang.Number getNumber();
+    method public android.icu.util.MeasureUnit getUnit();
+  }
+
+  public class MeasureUnit implements java.io.Serializable {
+    method public static synchronized java.util.Set<android.icu.util.MeasureUnit> getAvailable(java.lang.String);
+    method public static synchronized java.util.Set<android.icu.util.MeasureUnit> getAvailable();
+    method public static synchronized java.util.Set<java.lang.String> getAvailableTypes();
+    method public java.lang.String getSubtype();
+    method public java.lang.String getType();
+    field public static final android.icu.util.MeasureUnit ACRE;
+    field public static final android.icu.util.MeasureUnit ACRE_FOOT;
+    field public static final android.icu.util.MeasureUnit AMPERE;
+    field public static final android.icu.util.MeasureUnit ARC_MINUTE;
+    field public static final android.icu.util.MeasureUnit ARC_SECOND;
+    field public static final android.icu.util.MeasureUnit ASTRONOMICAL_UNIT;
+    field public static final android.icu.util.MeasureUnit BIT;
+    field public static final android.icu.util.MeasureUnit BUSHEL;
+    field public static final android.icu.util.MeasureUnit BYTE;
+    field public static final android.icu.util.MeasureUnit CALORIE;
+    field public static final android.icu.util.MeasureUnit CARAT;
+    field public static final android.icu.util.MeasureUnit CELSIUS;
+    field public static final android.icu.util.MeasureUnit CENTILITER;
+    field public static final android.icu.util.MeasureUnit CENTIMETER;
+    field public static final android.icu.util.MeasureUnit CUBIC_CENTIMETER;
+    field public static final android.icu.util.MeasureUnit CUBIC_FOOT;
+    field public static final android.icu.util.MeasureUnit CUBIC_INCH;
+    field public static final android.icu.util.MeasureUnit CUBIC_KILOMETER;
+    field public static final android.icu.util.MeasureUnit CUBIC_METER;
+    field public static final android.icu.util.MeasureUnit CUBIC_MILE;
+    field public static final android.icu.util.MeasureUnit CUBIC_YARD;
+    field public static final android.icu.util.MeasureUnit CUP;
+    field public static final android.icu.util.TimeUnit DAY;
+    field public static final android.icu.util.MeasureUnit DECILITER;
+    field public static final android.icu.util.MeasureUnit DECIMETER;
+    field public static final android.icu.util.MeasureUnit DEGREE;
+    field public static final android.icu.util.MeasureUnit FAHRENHEIT;
+    field public static final android.icu.util.MeasureUnit FATHOM;
+    field public static final android.icu.util.MeasureUnit FLUID_OUNCE;
+    field public static final android.icu.util.MeasureUnit FOODCALORIE;
+    field public static final android.icu.util.MeasureUnit FOOT;
+    field public static final android.icu.util.MeasureUnit FURLONG;
+    field public static final android.icu.util.MeasureUnit GALLON;
+    field public static final android.icu.util.MeasureUnit GIGABIT;
+    field public static final android.icu.util.MeasureUnit GIGABYTE;
+    field public static final android.icu.util.MeasureUnit GIGAHERTZ;
+    field public static final android.icu.util.MeasureUnit GIGAWATT;
+    field public static final android.icu.util.MeasureUnit GRAM;
+    field public static final android.icu.util.MeasureUnit G_FORCE;
+    field public static final android.icu.util.MeasureUnit HECTARE;
+    field public static final android.icu.util.MeasureUnit HECTOLITER;
+    field public static final android.icu.util.MeasureUnit HECTOPASCAL;
+    field public static final android.icu.util.MeasureUnit HERTZ;
+    field public static final android.icu.util.MeasureUnit HORSEPOWER;
+    field public static final android.icu.util.TimeUnit HOUR;
+    field public static final android.icu.util.MeasureUnit INCH;
+    field public static final android.icu.util.MeasureUnit INCH_HG;
+    field public static final android.icu.util.MeasureUnit JOULE;
+    field public static final android.icu.util.MeasureUnit KARAT;
+    field public static final android.icu.util.MeasureUnit KELVIN;
+    field public static final android.icu.util.MeasureUnit KILOBIT;
+    field public static final android.icu.util.MeasureUnit KILOBYTE;
+    field public static final android.icu.util.MeasureUnit KILOCALORIE;
+    field public static final android.icu.util.MeasureUnit KILOGRAM;
+    field public static final android.icu.util.MeasureUnit KILOHERTZ;
+    field public static final android.icu.util.MeasureUnit KILOJOULE;
+    field public static final android.icu.util.MeasureUnit KILOMETER;
+    field public static final android.icu.util.MeasureUnit KILOMETER_PER_HOUR;
+    field public static final android.icu.util.MeasureUnit KILOWATT;
+    field public static final android.icu.util.MeasureUnit KILOWATT_HOUR;
+    field public static final android.icu.util.MeasureUnit LIGHT_YEAR;
+    field public static final android.icu.util.MeasureUnit LITER;
+    field public static final android.icu.util.MeasureUnit LITER_PER_KILOMETER;
+    field public static final android.icu.util.MeasureUnit LUX;
+    field public static final android.icu.util.MeasureUnit MEGABIT;
+    field public static final android.icu.util.MeasureUnit MEGABYTE;
+    field public static final android.icu.util.MeasureUnit MEGAHERTZ;
+    field public static final android.icu.util.MeasureUnit MEGALITER;
+    field public static final android.icu.util.MeasureUnit MEGAWATT;
+    field public static final android.icu.util.MeasureUnit METER;
+    field public static final android.icu.util.MeasureUnit METER_PER_SECOND;
+    field public static final android.icu.util.MeasureUnit METER_PER_SECOND_SQUARED;
+    field public static final android.icu.util.MeasureUnit METRIC_TON;
+    field public static final android.icu.util.MeasureUnit MICROGRAM;
+    field public static final android.icu.util.MeasureUnit MICROMETER;
+    field public static final android.icu.util.MeasureUnit MICROSECOND;
+    field public static final android.icu.util.MeasureUnit MILE;
+    field public static final android.icu.util.MeasureUnit MILE_PER_GALLON;
+    field public static final android.icu.util.MeasureUnit MILE_PER_HOUR;
+    field public static final android.icu.util.MeasureUnit MILLIAMPERE;
+    field public static final android.icu.util.MeasureUnit MILLIBAR;
+    field public static final android.icu.util.MeasureUnit MILLIGRAM;
+    field public static final android.icu.util.MeasureUnit MILLILITER;
+    field public static final android.icu.util.MeasureUnit MILLIMETER;
+    field public static final android.icu.util.MeasureUnit MILLIMETER_OF_MERCURY;
+    field public static final android.icu.util.MeasureUnit MILLISECOND;
+    field public static final android.icu.util.MeasureUnit MILLIWATT;
+    field public static final android.icu.util.TimeUnit MINUTE;
+    field public static final android.icu.util.TimeUnit MONTH;
+    field public static final android.icu.util.MeasureUnit NANOMETER;
+    field public static final android.icu.util.MeasureUnit NANOSECOND;
+    field public static final android.icu.util.MeasureUnit NAUTICAL_MILE;
+    field public static final android.icu.util.MeasureUnit OHM;
+    field public static final android.icu.util.MeasureUnit OUNCE;
+    field public static final android.icu.util.MeasureUnit OUNCE_TROY;
+    field public static final android.icu.util.MeasureUnit PARSEC;
+    field public static final android.icu.util.MeasureUnit PICOMETER;
+    field public static final android.icu.util.MeasureUnit PINT;
+    field public static final android.icu.util.MeasureUnit POUND;
+    field public static final android.icu.util.MeasureUnit POUND_PER_SQUARE_INCH;
+    field public static final android.icu.util.MeasureUnit QUART;
+    field public static final android.icu.util.MeasureUnit RADIAN;
+    field public static final android.icu.util.TimeUnit SECOND;
+    field public static final android.icu.util.MeasureUnit SQUARE_CENTIMETER;
+    field public static final android.icu.util.MeasureUnit SQUARE_FOOT;
+    field public static final android.icu.util.MeasureUnit SQUARE_INCH;
+    field public static final android.icu.util.MeasureUnit SQUARE_KILOMETER;
+    field public static final android.icu.util.MeasureUnit SQUARE_METER;
+    field public static final android.icu.util.MeasureUnit SQUARE_MILE;
+    field public static final android.icu.util.MeasureUnit SQUARE_YARD;
+    field public static final android.icu.util.MeasureUnit STONE;
+    field public static final android.icu.util.MeasureUnit TABLESPOON;
+    field public static final android.icu.util.MeasureUnit TEASPOON;
+    field public static final android.icu.util.MeasureUnit TERABIT;
+    field public static final android.icu.util.MeasureUnit TERABYTE;
+    field public static final android.icu.util.MeasureUnit TON;
+    field public static final android.icu.util.MeasureUnit VOLT;
+    field public static final android.icu.util.MeasureUnit WATT;
+    field public static final android.icu.util.TimeUnit WEEK;
+    field public static final android.icu.util.MeasureUnit YARD;
+    field public static final android.icu.util.TimeUnit YEAR;
+  }
+
+  public class Output {
+    ctor public Output();
+    ctor public Output(T);
+    field public T value;
+  }
+
+  public abstract interface RangeValueIterator {
+    method public abstract boolean next(android.icu.util.RangeValueIterator.Element);
+    method public abstract void reset();
+  }
+
+  public static class RangeValueIterator.Element {
+    ctor public RangeValueIterator.Element();
+    field public int limit;
+    field public int start;
+    field public int value;
+  }
+
+  public class TaiwanCalendar extends android.icu.util.GregorianCalendar {
+    ctor public TaiwanCalendar();
+    ctor public TaiwanCalendar(android.icu.util.TimeZone);
+    ctor public TaiwanCalendar(java.util.Locale);
+    ctor public TaiwanCalendar(android.icu.util.ULocale);
+    ctor public TaiwanCalendar(android.icu.util.TimeZone, java.util.Locale);
+    ctor public TaiwanCalendar(android.icu.util.TimeZone, android.icu.util.ULocale);
+    ctor public TaiwanCalendar(java.util.Date);
+    ctor public TaiwanCalendar(int, int, int);
+    ctor public TaiwanCalendar(int, int, int, int, int, int);
+    field public static final int BEFORE_MINGUO = 0; // 0x0
+    field public static final int MINGUO = 1; // 0x1
+  }
+
+  public class TimeUnit extends android.icu.util.MeasureUnit {
+    method public static android.icu.util.TimeUnit[] values();
+  }
+
+  public abstract class TimeZone implements java.lang.Cloneable android.icu.util.Freezable java.io.Serializable {
+    ctor public TimeZone();
+    method public java.lang.Object clone();
+    method public android.icu.util.TimeZone cloneAsThawed();
+    method public static int countEquivalentIDs(java.lang.String);
+    method public android.icu.util.TimeZone freeze();
+    method public static java.util.Set<java.lang.String> getAvailableIDs(android.icu.util.TimeZone.SystemTimeZoneType, java.lang.String, java.lang.Integer);
+    method public static java.lang.String[] getAvailableIDs(int);
+    method public static java.lang.String[] getAvailableIDs(java.lang.String);
+    method public static java.lang.String[] getAvailableIDs();
+    method public static java.lang.String getCanonicalID(java.lang.String);
+    method public static java.lang.String getCanonicalID(java.lang.String, boolean[]);
+    method public int getDSTSavings();
+    method public static android.icu.util.TimeZone getDefault();
+    method public static int getDefaultTimeZoneType();
+    method public final java.lang.String getDisplayName();
+    method public final java.lang.String getDisplayName(java.util.Locale);
+    method public final java.lang.String getDisplayName(android.icu.util.ULocale);
+    method public final java.lang.String getDisplayName(boolean, int);
+    method public java.lang.String getDisplayName(boolean, int, java.util.Locale);
+    method public java.lang.String getDisplayName(boolean, int, android.icu.util.ULocale);
+    method public static java.lang.String getEquivalentID(java.lang.String, int);
+    method public static android.icu.util.TimeZone getFrozenTimeZone(java.lang.String);
+    method public java.lang.String getID();
+    method public static java.lang.String getIDForWindowsID(java.lang.String, java.lang.String);
+    method public abstract int getOffset(int, int, int, int, int, int);
+    method public int getOffset(long);
+    method public void getOffset(long, boolean, int[]);
+    method public abstract int getRawOffset();
+    method public static java.lang.String getRegion(java.lang.String);
+    method public static java.lang.String getTZDataVersion();
+    method public static android.icu.util.TimeZone getTimeZone(java.lang.String);
+    method public static android.icu.util.TimeZone getTimeZone(java.lang.String, int);
+    method public static java.lang.String getWindowsID(java.lang.String);
+    method public boolean hasSameRules(android.icu.util.TimeZone);
+    method public abstract boolean inDaylightTime(java.util.Date);
+    method public boolean isFrozen();
+    method public boolean observesDaylightTime();
+    method public static synchronized void setDefault(android.icu.util.TimeZone);
+    method public static synchronized void setDefaultTimeZoneType(int);
+    method public void setID(java.lang.String);
+    method public abstract void setRawOffset(int);
+    method public abstract boolean useDaylightTime();
+    field public static final int GENERIC_LOCATION = 7; // 0x7
+    field public static final android.icu.util.TimeZone GMT_ZONE;
+    field public static final int LONG = 1; // 0x1
+    field public static final int LONG_GENERIC = 3; // 0x3
+    field public static final int LONG_GMT = 5; // 0x5
+    field public static final int SHORT = 0; // 0x0
+    field public static final int SHORT_COMMONLY_USED = 6; // 0x6
+    field public static final int SHORT_GENERIC = 2; // 0x2
+    field public static final int SHORT_GMT = 4; // 0x4
+    field public static final int TIMEZONE_ICU = 0; // 0x0
+    field public static final int TIMEZONE_JDK = 1; // 0x1
+    field public static final android.icu.util.TimeZone UNKNOWN_ZONE;
+    field public static final java.lang.String UNKNOWN_ZONE_ID = "Etc/Unknown";
+  }
+
+  public static final class TimeZone.SystemTimeZoneType extends java.lang.Enum {
+    method public static android.icu.util.TimeZone.SystemTimeZoneType valueOf(java.lang.String);
+    method public static final android.icu.util.TimeZone.SystemTimeZoneType[] values();
+  }
+
+  public final class ULocale implements java.lang.Comparable java.io.Serializable {
+    ctor public ULocale(java.lang.String);
+    ctor public ULocale(java.lang.String, java.lang.String);
+    ctor public ULocale(java.lang.String, java.lang.String, java.lang.String);
+    method public static android.icu.util.ULocale acceptLanguage(java.lang.String, android.icu.util.ULocale[], boolean[]);
+    method public static android.icu.util.ULocale acceptLanguage(android.icu.util.ULocale[], android.icu.util.ULocale[], boolean[]);
+    method public static android.icu.util.ULocale acceptLanguage(java.lang.String, boolean[]);
+    method public static android.icu.util.ULocale acceptLanguage(android.icu.util.ULocale[], boolean[]);
+    method public static android.icu.util.ULocale addLikelySubtags(android.icu.util.ULocale);
+    method public static java.lang.String canonicalize(java.lang.String);
+    method public java.lang.Object clone();
+    method public int compareTo(android.icu.util.ULocale);
+    method public static android.icu.util.ULocale createCanonical(java.lang.String);
+    method public static android.icu.util.ULocale forLanguageTag(java.lang.String);
+    method public static android.icu.util.ULocale forLocale(java.util.Locale);
+    method public static android.icu.util.ULocale[] getAvailableLocales();
+    method public java.lang.String getBaseName();
+    method public static java.lang.String getBaseName(java.lang.String);
+    method public java.lang.String getCharacterOrientation();
+    method public java.lang.String getCountry();
+    method public static java.lang.String getCountry(java.lang.String);
+    method public static android.icu.util.ULocale getDefault();
+    method public static android.icu.util.ULocale getDefault(android.icu.util.ULocale.Category);
+    method public java.lang.String getDisplayCountry();
+    method public java.lang.String getDisplayCountry(android.icu.util.ULocale);
+    method public static java.lang.String getDisplayCountry(java.lang.String, java.lang.String);
+    method public static java.lang.String getDisplayCountry(java.lang.String, android.icu.util.ULocale);
+    method public static java.lang.String getDisplayKeyword(java.lang.String);
+    method public static java.lang.String getDisplayKeyword(java.lang.String, java.lang.String);
+    method public static java.lang.String getDisplayKeyword(java.lang.String, android.icu.util.ULocale);
+    method public java.lang.String getDisplayKeywordValue(java.lang.String);
+    method public java.lang.String getDisplayKeywordValue(java.lang.String, android.icu.util.ULocale);
+    method public static java.lang.String getDisplayKeywordValue(java.lang.String, java.lang.String, java.lang.String);
+    method public static java.lang.String getDisplayKeywordValue(java.lang.String, java.lang.String, android.icu.util.ULocale);
+    method public java.lang.String getDisplayLanguage();
+    method public java.lang.String getDisplayLanguage(android.icu.util.ULocale);
+    method public static java.lang.String getDisplayLanguage(java.lang.String, java.lang.String);
+    method public static java.lang.String getDisplayLanguage(java.lang.String, android.icu.util.ULocale);
+    method public java.lang.String getDisplayLanguageWithDialect();
+    method public java.lang.String getDisplayLanguageWithDialect(android.icu.util.ULocale);
+    method public static java.lang.String getDisplayLanguageWithDialect(java.lang.String, java.lang.String);
+    method public static java.lang.String getDisplayLanguageWithDialect(java.lang.String, android.icu.util.ULocale);
+    method public java.lang.String getDisplayName();
+    method public java.lang.String getDisplayName(android.icu.util.ULocale);
+    method public static java.lang.String getDisplayName(java.lang.String, java.lang.String);
+    method public static java.lang.String getDisplayName(java.lang.String, android.icu.util.ULocale);
+    method public java.lang.String getDisplayNameWithDialect();
+    method public java.lang.String getDisplayNameWithDialect(android.icu.util.ULocale);
+    method public static java.lang.String getDisplayNameWithDialect(java.lang.String, java.lang.String);
+    method public static java.lang.String getDisplayNameWithDialect(java.lang.String, android.icu.util.ULocale);
+    method public java.lang.String getDisplayScript();
+    method public java.lang.String getDisplayScript(android.icu.util.ULocale);
+    method public static java.lang.String getDisplayScript(java.lang.String, java.lang.String);
+    method public static java.lang.String getDisplayScript(java.lang.String, android.icu.util.ULocale);
+    method public java.lang.String getDisplayVariant();
+    method public java.lang.String getDisplayVariant(android.icu.util.ULocale);
+    method public static java.lang.String getDisplayVariant(java.lang.String, java.lang.String);
+    method public static java.lang.String getDisplayVariant(java.lang.String, android.icu.util.ULocale);
+    method public java.lang.String getExtension(char);
+    method public java.util.Set<java.lang.Character> getExtensionKeys();
+    method public static java.lang.String getFallback(java.lang.String);
+    method public android.icu.util.ULocale getFallback();
+    method public java.lang.String getISO3Country();
+    method public static java.lang.String getISO3Country(java.lang.String);
+    method public java.lang.String getISO3Language();
+    method public static java.lang.String getISO3Language(java.lang.String);
+    method public static java.lang.String[] getISOCountries();
+    method public static java.lang.String[] getISOLanguages();
+    method public java.lang.String getKeywordValue(java.lang.String);
+    method public static java.lang.String getKeywordValue(java.lang.String, java.lang.String);
+    method public java.util.Iterator<java.lang.String> getKeywords();
+    method public static java.util.Iterator<java.lang.String> getKeywords(java.lang.String);
+    method public java.lang.String getLanguage();
+    method public static java.lang.String getLanguage(java.lang.String);
+    method public java.lang.String getLineOrientation();
+    method public java.lang.String getName();
+    method public static java.lang.String getName(java.lang.String);
+    method public java.lang.String getScript();
+    method public static java.lang.String getScript(java.lang.String);
+    method public java.util.Set<java.lang.String> getUnicodeLocaleAttributes();
+    method public java.util.Set<java.lang.String> getUnicodeLocaleKeys();
+    method public java.lang.String getUnicodeLocaleType(java.lang.String);
+    method public java.lang.String getVariant();
+    method public static java.lang.String getVariant(java.lang.String);
+    method public boolean isRightToLeft();
+    method public static android.icu.util.ULocale minimizeSubtags(android.icu.util.ULocale);
+    method public static synchronized void setDefault(android.icu.util.ULocale);
+    method public static synchronized void setDefault(android.icu.util.ULocale.Category, android.icu.util.ULocale);
+    method public android.icu.util.ULocale setKeywordValue(java.lang.String, java.lang.String);
+    method public static java.lang.String setKeywordValue(java.lang.String, java.lang.String, java.lang.String);
+    method public java.lang.String toLanguageTag();
+    method public static java.lang.String toLegacyKey(java.lang.String);
+    method public static java.lang.String toLegacyType(java.lang.String, java.lang.String);
+    method public java.util.Locale toLocale();
+    method public static java.lang.String toUnicodeLocaleKey(java.lang.String);
+    method public static java.lang.String toUnicodeLocaleType(java.lang.String, java.lang.String);
+    field public static final android.icu.util.ULocale CANADA;
+    field public static final android.icu.util.ULocale CANADA_FRENCH;
+    field public static final android.icu.util.ULocale CHINA;
+    field public static final android.icu.util.ULocale CHINESE;
+    field public static final android.icu.util.ULocale ENGLISH;
+    field public static final android.icu.util.ULocale FRANCE;
+    field public static final android.icu.util.ULocale FRENCH;
+    field public static final android.icu.util.ULocale GERMAN;
+    field public static final android.icu.util.ULocale GERMANY;
+    field public static final android.icu.util.ULocale ITALIAN;
+    field public static final android.icu.util.ULocale ITALY;
+    field public static final android.icu.util.ULocale JAPAN;
+    field public static final android.icu.util.ULocale JAPANESE;
+    field public static final android.icu.util.ULocale KOREA;
+    field public static final android.icu.util.ULocale KOREAN;
+    field public static final android.icu.util.ULocale PRC;
+    field public static final char PRIVATE_USE_EXTENSION = 120; // 0x0078 'x'
+    field public static final android.icu.util.ULocale ROOT;
+    field public static final android.icu.util.ULocale SIMPLIFIED_CHINESE;
+    field public static final android.icu.util.ULocale TAIWAN;
+    field public static final android.icu.util.ULocale TRADITIONAL_CHINESE;
+    field public static final android.icu.util.ULocale UK;
+    field public static final char UNICODE_LOCALE_EXTENSION = 117; // 0x0075 'u'
+    field public static final android.icu.util.ULocale US;
+  }
+
+  public static final class ULocale.Builder {
+    ctor public ULocale.Builder();
+    method public android.icu.util.ULocale.Builder addUnicodeLocaleAttribute(java.lang.String);
+    method public android.icu.util.ULocale build();
+    method public android.icu.util.ULocale.Builder clear();
+    method public android.icu.util.ULocale.Builder clearExtensions();
+    method public android.icu.util.ULocale.Builder removeUnicodeLocaleAttribute(java.lang.String);
+    method public android.icu.util.ULocale.Builder setExtension(char, java.lang.String);
+    method public android.icu.util.ULocale.Builder setLanguage(java.lang.String);
+    method public android.icu.util.ULocale.Builder setLanguageTag(java.lang.String);
+    method public android.icu.util.ULocale.Builder setLocale(android.icu.util.ULocale);
+    method public android.icu.util.ULocale.Builder setRegion(java.lang.String);
+    method public android.icu.util.ULocale.Builder setScript(java.lang.String);
+    method public android.icu.util.ULocale.Builder setUnicodeLocaleKeyword(java.lang.String, java.lang.String);
+    method public android.icu.util.ULocale.Builder setVariant(java.lang.String);
+  }
+
+  public static final class ULocale.Category extends java.lang.Enum {
+    method public static android.icu.util.ULocale.Category valueOf(java.lang.String);
+    method public static final android.icu.util.ULocale.Category[] values();
+    enum_constant public static final android.icu.util.ULocale.Category DISPLAY;
+    enum_constant public static final android.icu.util.ULocale.Category FORMAT;
+  }
+
+  public abstract interface ValueIterator {
+    method public abstract boolean next(android.icu.util.ValueIterator.Element);
+    method public abstract void reset();
+    method public abstract void setRange(int, int);
+  }
+
+  public static final class ValueIterator.Element {
+    ctor public ValueIterator.Element();
+    field public int integer;
+    field public java.lang.Object value;
+  }
+
+  public final class VersionInfo implements java.lang.Comparable {
+    method public int compareTo(android.icu.util.VersionInfo);
+    method public static android.icu.util.VersionInfo getInstance(java.lang.String);
+    method public static android.icu.util.VersionInfo getInstance(int, int, int, int);
+    method public static android.icu.util.VersionInfo getInstance(int, int, int);
+    method public static android.icu.util.VersionInfo getInstance(int, int);
+    method public static android.icu.util.VersionInfo getInstance(int);
+    method public int getMajor();
+    method public int getMicro();
+    method public int getMilli();
+    method public int getMinor();
+    method public static void main(java.lang.String[]);
+    field public static final android.icu.util.VersionInfo ICU_VERSION;
+    field public static final android.icu.util.VersionInfo UCOL_BUILDER_VERSION;
+    field public static final android.icu.util.VersionInfo UCOL_RUNTIME_VERSION;
+    field public static final android.icu.util.VersionInfo UNICODE_1_0;
+    field public static final android.icu.util.VersionInfo UNICODE_1_0_1;
+    field public static final android.icu.util.VersionInfo UNICODE_1_1_0;
+    field public static final android.icu.util.VersionInfo UNICODE_1_1_5;
+    field public static final android.icu.util.VersionInfo UNICODE_2_0;
+    field public static final android.icu.util.VersionInfo UNICODE_2_1_2;
+    field public static final android.icu.util.VersionInfo UNICODE_2_1_5;
+    field public static final android.icu.util.VersionInfo UNICODE_2_1_8;
+    field public static final android.icu.util.VersionInfo UNICODE_2_1_9;
+    field public static final android.icu.util.VersionInfo UNICODE_3_0;
+    field public static final android.icu.util.VersionInfo UNICODE_3_0_1;
+    field public static final android.icu.util.VersionInfo UNICODE_3_1_0;
+    field public static final android.icu.util.VersionInfo UNICODE_3_1_1;
+    field public static final android.icu.util.VersionInfo UNICODE_3_2;
+    field public static final android.icu.util.VersionInfo UNICODE_4_0;
+    field public static final android.icu.util.VersionInfo UNICODE_4_0_1;
+    field public static final android.icu.util.VersionInfo UNICODE_4_1;
+    field public static final android.icu.util.VersionInfo UNICODE_5_0;
+    field public static final android.icu.util.VersionInfo UNICODE_5_1;
+    field public static final android.icu.util.VersionInfo UNICODE_5_2;
+    field public static final android.icu.util.VersionInfo UNICODE_6_0;
+    field public static final android.icu.util.VersionInfo UNICODE_6_1;
+    field public static final android.icu.util.VersionInfo UNICODE_6_2;
+    field public static final android.icu.util.VersionInfo UNICODE_6_3;
+    field public static final android.icu.util.VersionInfo UNICODE_7_0;
+    field public static final android.icu.util.VersionInfo UNICODE_8_0;
+  }
+
+}
+
 package android.inputmethodservice {
 
   public abstract class AbstractInputMethodService extends android.app.Service implements android.view.KeyEvent.Callback {
diff --git a/api/system-current.txt b/api/system-current.txt
index 1e7b94e..36d0755 100644
--- a/api/system-current.txt
+++ b/api/system-current.txt
@@ -15078,6 +15078,4147 @@
 
 }
 
+package android.icu.lang {
+
+  public final class UCharacter implements android.icu.lang.UCharacterEnums.ECharacterCategory android.icu.lang.UCharacterEnums.ECharacterDirection {
+    method public static int charCount(int);
+    method public static final int codePointAt(java.lang.CharSequence, int);
+    method public static final int codePointAt(char[], int);
+    method public static final int codePointAt(char[], int, int);
+    method public static final int codePointBefore(java.lang.CharSequence, int);
+    method public static final int codePointBefore(char[], int);
+    method public static final int codePointBefore(char[], int, int);
+    method public static int codePointCount(java.lang.CharSequence, int, int);
+    method public static int codePointCount(char[], int, int);
+    method public static int digit(int, int);
+    method public static int digit(int);
+    method public static int foldCase(int, boolean);
+    method public static java.lang.String foldCase(java.lang.String, boolean);
+    method public static int foldCase(int, int);
+    method public static final java.lang.String foldCase(java.lang.String, int);
+    method public static char forDigit(int, int);
+    method public static android.icu.util.VersionInfo getAge(int);
+    method public static int getBidiPairedBracket(int);
+    method public static int getCharFromExtendedName(java.lang.String);
+    method public static int getCharFromName(java.lang.String);
+    method public static int getCharFromNameAlias(java.lang.String);
+    method public static int getCodePoint(char, char);
+    method public static int getCodePoint(char);
+    method public static int getCombiningClass(int);
+    method public static int getDirection(int);
+    method public static byte getDirectionality(int);
+    method public static java.lang.String getExtendedName(int);
+    method public static android.icu.util.ValueIterator getExtendedNameIterator();
+    method public static int getHanNumericValue(int);
+    method public static int getIntPropertyMaxValue(int);
+    method public static int getIntPropertyMinValue(int);
+    method public static int getIntPropertyValue(int, int);
+    method public static int getMirror(int);
+    method public static java.lang.String getName(int);
+    method public static java.lang.String getName(java.lang.String, java.lang.String);
+    method public static java.lang.String getNameAlias(int);
+    method public static android.icu.util.ValueIterator getNameIterator();
+    method public static int getNumericValue(int);
+    method public static int getPropertyEnum(java.lang.CharSequence);
+    method public static java.lang.String getPropertyName(int, int);
+    method public static int getPropertyValueEnum(int, java.lang.CharSequence);
+    method public static java.lang.String getPropertyValueName(int, int, int);
+    method public static int getType(int);
+    method public static android.icu.util.RangeValueIterator getTypeIterator();
+    method public static double getUnicodeNumericValue(int);
+    method public static android.icu.util.VersionInfo getUnicodeVersion();
+    method public static boolean hasBinaryProperty(int, int);
+    method public static boolean isBMP(int);
+    method public static boolean isBaseForm(int);
+    method public static boolean isDefined(int);
+    method public static boolean isDigit(int);
+    method public static boolean isHighSurrogate(char);
+    method public static boolean isISOControl(int);
+    method public static boolean isIdentifierIgnorable(int);
+    method public static boolean isJavaIdentifierPart(int);
+    method public static boolean isJavaIdentifierStart(int);
+    method public static boolean isLegal(int);
+    method public static boolean isLegal(java.lang.String);
+    method public static boolean isLetter(int);
+    method public static boolean isLetterOrDigit(int);
+    method public static boolean isLowSurrogate(char);
+    method public static boolean isLowerCase(int);
+    method public static boolean isMirrored(int);
+    method public static boolean isPrintable(int);
+    method public static boolean isSpaceChar(int);
+    method public static boolean isSupplementary(int);
+    method public static final boolean isSupplementaryCodePoint(int);
+    method public static final boolean isSurrogatePair(char, char);
+    method public static boolean isTitleCase(int);
+    method public static boolean isUAlphabetic(int);
+    method public static boolean isULowercase(int);
+    method public static boolean isUUppercase(int);
+    method public static boolean isUWhiteSpace(int);
+    method public static boolean isUnicodeIdentifierPart(int);
+    method public static boolean isUnicodeIdentifierStart(int);
+    method public static boolean isUpperCase(int);
+    method public static final boolean isValidCodePoint(int);
+    method public static boolean isWhitespace(int);
+    method public static int offsetByCodePoints(java.lang.CharSequence, int, int);
+    method public static int offsetByCodePoints(char[], int, int, int, int);
+    method public static final int toChars(int, char[], int);
+    method public static final char[] toChars(int);
+    method public static final int toCodePoint(char, char);
+    method public static int toLowerCase(int);
+    method public static java.lang.String toLowerCase(java.lang.String);
+    method public static java.lang.String toLowerCase(java.util.Locale, java.lang.String);
+    method public static java.lang.String toLowerCase(android.icu.util.ULocale, java.lang.String);
+    method public static java.lang.String toString(int);
+    method public static int toTitleCase(int);
+    method public static java.lang.String toTitleCase(java.lang.String, android.icu.text.BreakIterator);
+    method public static java.lang.String toTitleCase(java.util.Locale, java.lang.String, android.icu.text.BreakIterator);
+    method public static java.lang.String toTitleCase(android.icu.util.ULocale, java.lang.String, android.icu.text.BreakIterator);
+    method public static java.lang.String toTitleCase(android.icu.util.ULocale, java.lang.String, android.icu.text.BreakIterator, int);
+    method public static java.lang.String toTitleCase(java.util.Locale, java.lang.String, android.icu.text.BreakIterator, int);
+    method public static int toUpperCase(int);
+    method public static java.lang.String toUpperCase(java.lang.String);
+    method public static java.lang.String toUpperCase(java.util.Locale, java.lang.String);
+    method public static java.lang.String toUpperCase(android.icu.util.ULocale, java.lang.String);
+    field public static final int FOLD_CASE_DEFAULT = 0; // 0x0
+    field public static final int FOLD_CASE_EXCLUDE_SPECIAL_I = 1; // 0x1
+    field public static final int MAX_CODE_POINT = 1114111; // 0x10ffff
+    field public static final char MAX_HIGH_SURROGATE = 56319; // 0xdbff '\udbff'
+    field public static final char MAX_LOW_SURROGATE = 57343; // 0xdfff '\udfff'
+    field public static final int MAX_RADIX = 36; // 0x24
+    field public static final char MAX_SURROGATE = 57343; // 0xdfff '\udfff'
+    field public static final int MAX_VALUE = 1114111; // 0x10ffff
+    field public static final int MIN_CODE_POINT = 0; // 0x0
+    field public static final char MIN_HIGH_SURROGATE = 55296; // 0xd800 '\ud800'
+    field public static final char MIN_LOW_SURROGATE = 56320; // 0xdc00 '\udc00'
+    field public static final int MIN_RADIX = 2; // 0x2
+    field public static final int MIN_SUPPLEMENTARY_CODE_POINT = 65536; // 0x10000
+    field public static final char MIN_SURROGATE = 55296; // 0xd800 '\ud800'
+    field public static final int MIN_VALUE = 0; // 0x0
+    field public static final double NO_NUMERIC_VALUE = -1.23456789E8;
+    field public static final int REPLACEMENT_CHAR = 65533; // 0xfffd
+    field public static final int SUPPLEMENTARY_MIN_VALUE = 65536; // 0x10000
+    field public static final int TITLECASE_NO_BREAK_ADJUSTMENT = 512; // 0x200
+    field public static final int TITLECASE_NO_LOWERCASE = 256; // 0x100
+  }
+
+  public static abstract interface UCharacter.BidiPairedBracketType {
+    field public static final int CLOSE = 2; // 0x2
+    field public static final int COUNT = 3; // 0x3
+    field public static final int NONE = 0; // 0x0
+    field public static final int OPEN = 1; // 0x1
+  }
+
+  public static abstract interface UCharacter.DecompositionType {
+    field public static final int CANONICAL = 1; // 0x1
+    field public static final int CIRCLE = 3; // 0x3
+    field public static final int COMPAT = 2; // 0x2
+    field public static final int COUNT = 18; // 0x12
+    field public static final int FINAL = 4; // 0x4
+    field public static final int FONT = 5; // 0x5
+    field public static final int FRACTION = 6; // 0x6
+    field public static final int INITIAL = 7; // 0x7
+    field public static final int ISOLATED = 8; // 0x8
+    field public static final int MEDIAL = 9; // 0x9
+    field public static final int NARROW = 10; // 0xa
+    field public static final int NOBREAK = 11; // 0xb
+    field public static final int NONE = 0; // 0x0
+    field public static final int SMALL = 12; // 0xc
+    field public static final int SQUARE = 13; // 0xd
+    field public static final int SUB = 14; // 0xe
+    field public static final int SUPER = 15; // 0xf
+    field public static final int VERTICAL = 16; // 0x10
+    field public static final int WIDE = 17; // 0x11
+  }
+
+  public static abstract interface UCharacter.EastAsianWidth {
+    field public static final int AMBIGUOUS = 1; // 0x1
+    field public static final int COUNT = 6; // 0x6
+    field public static final int FULLWIDTH = 3; // 0x3
+    field public static final int HALFWIDTH = 2; // 0x2
+    field public static final int NARROW = 4; // 0x4
+    field public static final int NEUTRAL = 0; // 0x0
+    field public static final int WIDE = 5; // 0x5
+  }
+
+  public static abstract interface UCharacter.GraphemeClusterBreak {
+    field public static final int CONTROL = 1; // 0x1
+    field public static final int COUNT = 13; // 0xd
+    field public static final int CR = 2; // 0x2
+    field public static final int EXTEND = 3; // 0x3
+    field public static final int L = 4; // 0x4
+    field public static final int LF = 5; // 0x5
+    field public static final int LV = 6; // 0x6
+    field public static final int LVT = 7; // 0x7
+    field public static final int OTHER = 0; // 0x0
+    field public static final int PREPEND = 11; // 0xb
+    field public static final int REGIONAL_INDICATOR = 12; // 0xc
+    field public static final int SPACING_MARK = 10; // 0xa
+    field public static final int T = 8; // 0x8
+    field public static final int V = 9; // 0x9
+  }
+
+  public static abstract interface UCharacter.HangulSyllableType {
+    field public static final int COUNT = 6; // 0x6
+    field public static final int LEADING_JAMO = 1; // 0x1
+    field public static final int LVT_SYLLABLE = 5; // 0x5
+    field public static final int LV_SYLLABLE = 4; // 0x4
+    field public static final int NOT_APPLICABLE = 0; // 0x0
+    field public static final int TRAILING_JAMO = 3; // 0x3
+    field public static final int VOWEL_JAMO = 2; // 0x2
+  }
+
+  public static abstract interface UCharacter.JoiningGroup {
+    field public static final int AIN = 1; // 0x1
+    field public static final int ALAPH = 2; // 0x2
+    field public static final int ALEF = 3; // 0x3
+    field public static final int BEH = 4; // 0x4
+    field public static final int BETH = 5; // 0x5
+    field public static final int BURUSHASKI_YEH_BARREE = 54; // 0x36
+    field public static final int COUNT = 86; // 0x56
+    field public static final int DAL = 6; // 0x6
+    field public static final int DALATH_RISH = 7; // 0x7
+    field public static final int E = 8; // 0x8
+    field public static final int FARSI_YEH = 55; // 0x37
+    field public static final int FE = 51; // 0x33
+    field public static final int FEH = 9; // 0x9
+    field public static final int FINAL_SEMKATH = 10; // 0xa
+    field public static final int GAF = 11; // 0xb
+    field public static final int GAMAL = 12; // 0xc
+    field public static final int HAH = 13; // 0xd
+    field public static final int HAMZA_ON_HEH_GOAL = 14; // 0xe
+    field public static final int HE = 15; // 0xf
+    field public static final int HEH = 16; // 0x10
+    field public static final int HEH_GOAL = 17; // 0x11
+    field public static final int HETH = 18; // 0x12
+    field public static final int KAF = 19; // 0x13
+    field public static final int KAPH = 20; // 0x14
+    field public static final int KHAPH = 52; // 0x34
+    field public static final int KNOTTED_HEH = 21; // 0x15
+    field public static final int LAM = 22; // 0x16
+    field public static final int LAMADH = 23; // 0x17
+    field public static final int MANICHAEAN_ALEPH = 58; // 0x3a
+    field public static final int MANICHAEAN_AYIN = 59; // 0x3b
+    field public static final int MANICHAEAN_BETH = 60; // 0x3c
+    field public static final int MANICHAEAN_DALETH = 61; // 0x3d
+    field public static final int MANICHAEAN_DHAMEDH = 62; // 0x3e
+    field public static final int MANICHAEAN_FIVE = 63; // 0x3f
+    field public static final int MANICHAEAN_GIMEL = 64; // 0x40
+    field public static final int MANICHAEAN_HETH = 65; // 0x41
+    field public static final int MANICHAEAN_HUNDRED = 66; // 0x42
+    field public static final int MANICHAEAN_KAPH = 67; // 0x43
+    field public static final int MANICHAEAN_LAMEDH = 68; // 0x44
+    field public static final int MANICHAEAN_MEM = 69; // 0x45
+    field public static final int MANICHAEAN_NUN = 70; // 0x46
+    field public static final int MANICHAEAN_ONE = 71; // 0x47
+    field public static final int MANICHAEAN_PE = 72; // 0x48
+    field public static final int MANICHAEAN_QOPH = 73; // 0x49
+    field public static final int MANICHAEAN_RESH = 74; // 0x4a
+    field public static final int MANICHAEAN_SADHE = 75; // 0x4b
+    field public static final int MANICHAEAN_SAMEKH = 76; // 0x4c
+    field public static final int MANICHAEAN_TAW = 77; // 0x4d
+    field public static final int MANICHAEAN_TEN = 78; // 0x4e
+    field public static final int MANICHAEAN_TETH = 79; // 0x4f
+    field public static final int MANICHAEAN_THAMEDH = 80; // 0x50
+    field public static final int MANICHAEAN_TWENTY = 81; // 0x51
+    field public static final int MANICHAEAN_WAW = 82; // 0x52
+    field public static final int MANICHAEAN_YODH = 83; // 0x53
+    field public static final int MANICHAEAN_ZAYIN = 84; // 0x54
+    field public static final int MEEM = 24; // 0x18
+    field public static final int MIM = 25; // 0x19
+    field public static final int NOON = 26; // 0x1a
+    field public static final int NO_JOINING_GROUP = 0; // 0x0
+    field public static final int NUN = 27; // 0x1b
+    field public static final int NYA = 56; // 0x38
+    field public static final int PE = 28; // 0x1c
+    field public static final int QAF = 29; // 0x1d
+    field public static final int QAPH = 30; // 0x1e
+    field public static final int REH = 31; // 0x1f
+    field public static final int REVERSED_PE = 32; // 0x20
+    field public static final int ROHINGYA_YEH = 57; // 0x39
+    field public static final int SAD = 33; // 0x21
+    field public static final int SADHE = 34; // 0x22
+    field public static final int SEEN = 35; // 0x23
+    field public static final int SEMKATH = 36; // 0x24
+    field public static final int SHIN = 37; // 0x25
+    field public static final int STRAIGHT_WAW = 85; // 0x55
+    field public static final int SWASH_KAF = 38; // 0x26
+    field public static final int SYRIAC_WAW = 39; // 0x27
+    field public static final int TAH = 40; // 0x28
+    field public static final int TAW = 41; // 0x29
+    field public static final int TEH_MARBUTA = 42; // 0x2a
+    field public static final int TEH_MARBUTA_GOAL = 14; // 0xe
+    field public static final int TETH = 43; // 0x2b
+    field public static final int WAW = 44; // 0x2c
+    field public static final int YEH = 45; // 0x2d
+    field public static final int YEH_BARREE = 46; // 0x2e
+    field public static final int YEH_WITH_TAIL = 47; // 0x2f
+    field public static final int YUDH = 48; // 0x30
+    field public static final int YUDH_HE = 49; // 0x31
+    field public static final int ZAIN = 50; // 0x32
+    field public static final int ZHAIN = 53; // 0x35
+  }
+
+  public static abstract interface UCharacter.JoiningType {
+    field public static final int COUNT = 6; // 0x6
+    field public static final int DUAL_JOINING = 2; // 0x2
+    field public static final int JOIN_CAUSING = 1; // 0x1
+    field public static final int LEFT_JOINING = 3; // 0x3
+    field public static final int NON_JOINING = 0; // 0x0
+    field public static final int RIGHT_JOINING = 4; // 0x4
+    field public static final int TRANSPARENT = 5; // 0x5
+  }
+
+  public static abstract interface UCharacter.LineBreak {
+    field public static final int ALPHABETIC = 2; // 0x2
+    field public static final int AMBIGUOUS = 1; // 0x1
+    field public static final int BREAK_AFTER = 4; // 0x4
+    field public static final int BREAK_BEFORE = 5; // 0x5
+    field public static final int BREAK_BOTH = 3; // 0x3
+    field public static final int BREAK_SYMBOLS = 27; // 0x1b
+    field public static final int CARRIAGE_RETURN = 10; // 0xa
+    field public static final int CLOSE_PARENTHESIS = 36; // 0x24
+    field public static final int CLOSE_PUNCTUATION = 8; // 0x8
+    field public static final int COMBINING_MARK = 9; // 0x9
+    field public static final int COMPLEX_CONTEXT = 24; // 0x18
+    field public static final int CONDITIONAL_JAPANESE_STARTER = 37; // 0x25
+    field public static final int CONTINGENT_BREAK = 7; // 0x7
+    field public static final int COUNT = 40; // 0x28
+    field public static final int EXCLAMATION = 11; // 0xb
+    field public static final int GLUE = 12; // 0xc
+    field public static final int H2 = 31; // 0x1f
+    field public static final int H3 = 32; // 0x20
+    field public static final int HEBREW_LETTER = 38; // 0x26
+    field public static final int HYPHEN = 13; // 0xd
+    field public static final int IDEOGRAPHIC = 14; // 0xe
+    field public static final int INFIX_NUMERIC = 16; // 0x10
+    field public static final int INSEPARABLE = 15; // 0xf
+    field public static final int INSEPERABLE = 15; // 0xf
+    field public static final int JL = 33; // 0x21
+    field public static final int JT = 34; // 0x22
+    field public static final int JV = 35; // 0x23
+    field public static final int LINE_FEED = 17; // 0x11
+    field public static final int MANDATORY_BREAK = 6; // 0x6
+    field public static final int NEXT_LINE = 29; // 0x1d
+    field public static final int NONSTARTER = 18; // 0x12
+    field public static final int NUMERIC = 19; // 0x13
+    field public static final int OPEN_PUNCTUATION = 20; // 0x14
+    field public static final int POSTFIX_NUMERIC = 21; // 0x15
+    field public static final int PREFIX_NUMERIC = 22; // 0x16
+    field public static final int QUOTATION = 23; // 0x17
+    field public static final int REGIONAL_INDICATOR = 39; // 0x27
+    field public static final int SPACE = 26; // 0x1a
+    field public static final int SURROGATE = 25; // 0x19
+    field public static final int UNKNOWN = 0; // 0x0
+    field public static final int WORD_JOINER = 30; // 0x1e
+    field public static final int ZWSPACE = 28; // 0x1c
+  }
+
+  public static abstract interface UCharacter.NumericType {
+    field public static final int COUNT = 4; // 0x4
+    field public static final int DECIMAL = 1; // 0x1
+    field public static final int DIGIT = 2; // 0x2
+    field public static final int NONE = 0; // 0x0
+    field public static final int NUMERIC = 3; // 0x3
+  }
+
+  public static abstract interface UCharacter.SentenceBreak {
+    field public static final int ATERM = 1; // 0x1
+    field public static final int CLOSE = 2; // 0x2
+    field public static final int COUNT = 15; // 0xf
+    field public static final int CR = 11; // 0xb
+    field public static final int EXTEND = 12; // 0xc
+    field public static final int FORMAT = 3; // 0x3
+    field public static final int LF = 13; // 0xd
+    field public static final int LOWER = 4; // 0x4
+    field public static final int NUMERIC = 5; // 0x5
+    field public static final int OLETTER = 6; // 0x6
+    field public static final int OTHER = 0; // 0x0
+    field public static final int SCONTINUE = 14; // 0xe
+    field public static final int SEP = 7; // 0x7
+    field public static final int SP = 8; // 0x8
+    field public static final int STERM = 9; // 0x9
+    field public static final int UPPER = 10; // 0xa
+  }
+
+  public static final class UCharacter.UnicodeBlock extends java.lang.Character.Subset {
+    method public static final android.icu.lang.UCharacter.UnicodeBlock forName(java.lang.String);
+    method public int getID();
+    method public static android.icu.lang.UCharacter.UnicodeBlock getInstance(int);
+    method public static android.icu.lang.UCharacter.UnicodeBlock of(int);
+    field public static final android.icu.lang.UCharacter.UnicodeBlock AEGEAN_NUMBERS;
+    field public static final int AEGEAN_NUMBERS_ID = 119; // 0x77
+    field public static final android.icu.lang.UCharacter.UnicodeBlock AHOM;
+    field public static final int AHOM_ID = 253; // 0xfd
+    field public static final android.icu.lang.UCharacter.UnicodeBlock ALCHEMICAL_SYMBOLS;
+    field public static final int ALCHEMICAL_SYMBOLS_ID = 208; // 0xd0
+    field public static final android.icu.lang.UCharacter.UnicodeBlock ALPHABETIC_PRESENTATION_FORMS;
+    field public static final int ALPHABETIC_PRESENTATION_FORMS_ID = 80; // 0x50
+    field public static final android.icu.lang.UCharacter.UnicodeBlock ANATOLIAN_HIEROGLYPHS;
+    field public static final int ANATOLIAN_HIEROGLYPHS_ID = 254; // 0xfe
+    field public static final android.icu.lang.UCharacter.UnicodeBlock ANCIENT_GREEK_MUSICAL_NOTATION;
+    field public static final int ANCIENT_GREEK_MUSICAL_NOTATION_ID = 126; // 0x7e
+    field public static final android.icu.lang.UCharacter.UnicodeBlock ANCIENT_GREEK_NUMBERS;
+    field public static final int ANCIENT_GREEK_NUMBERS_ID = 127; // 0x7f
+    field public static final android.icu.lang.UCharacter.UnicodeBlock ANCIENT_SYMBOLS;
+    field public static final int ANCIENT_SYMBOLS_ID = 165; // 0xa5
+    field public static final android.icu.lang.UCharacter.UnicodeBlock ARABIC;
+    field public static final android.icu.lang.UCharacter.UnicodeBlock ARABIC_EXTENDED_A;
+    field public static final int ARABIC_EXTENDED_A_ID = 210; // 0xd2
+    field public static final int ARABIC_ID = 12; // 0xc
+    field public static final android.icu.lang.UCharacter.UnicodeBlock ARABIC_MATHEMATICAL_ALPHABETIC_SYMBOLS;
+    field public static final int ARABIC_MATHEMATICAL_ALPHABETIC_SYMBOLS_ID = 211; // 0xd3
+    field public static final android.icu.lang.UCharacter.UnicodeBlock ARABIC_PRESENTATION_FORMS_A;
+    field public static final int ARABIC_PRESENTATION_FORMS_A_ID = 81; // 0x51
+    field public static final android.icu.lang.UCharacter.UnicodeBlock ARABIC_PRESENTATION_FORMS_B;
+    field public static final int ARABIC_PRESENTATION_FORMS_B_ID = 85; // 0x55
+    field public static final android.icu.lang.UCharacter.UnicodeBlock ARABIC_SUPPLEMENT;
+    field public static final int ARABIC_SUPPLEMENT_ID = 128; // 0x80
+    field public static final android.icu.lang.UCharacter.UnicodeBlock ARMENIAN;
+    field public static final int ARMENIAN_ID = 10; // 0xa
+    field public static final android.icu.lang.UCharacter.UnicodeBlock ARROWS;
+    field public static final int ARROWS_ID = 46; // 0x2e
+    field public static final android.icu.lang.UCharacter.UnicodeBlock AVESTAN;
+    field public static final int AVESTAN_ID = 188; // 0xbc
+    field public static final android.icu.lang.UCharacter.UnicodeBlock BALINESE;
+    field public static final int BALINESE_ID = 147; // 0x93
+    field public static final android.icu.lang.UCharacter.UnicodeBlock BAMUM;
+    field public static final int BAMUM_ID = 177; // 0xb1
+    field public static final android.icu.lang.UCharacter.UnicodeBlock BAMUM_SUPPLEMENT;
+    field public static final int BAMUM_SUPPLEMENT_ID = 202; // 0xca
+    field public static final android.icu.lang.UCharacter.UnicodeBlock BASIC_LATIN;
+    field public static final int BASIC_LATIN_ID = 1; // 0x1
+    field public static final android.icu.lang.UCharacter.UnicodeBlock BASSA_VAH;
+    field public static final int BASSA_VAH_ID = 221; // 0xdd
+    field public static final android.icu.lang.UCharacter.UnicodeBlock BATAK;
+    field public static final int BATAK_ID = 199; // 0xc7
+    field public static final android.icu.lang.UCharacter.UnicodeBlock BENGALI;
+    field public static final int BENGALI_ID = 16; // 0x10
+    field public static final android.icu.lang.UCharacter.UnicodeBlock BLOCK_ELEMENTS;
+    field public static final int BLOCK_ELEMENTS_ID = 53; // 0x35
+    field public static final android.icu.lang.UCharacter.UnicodeBlock BOPOMOFO;
+    field public static final android.icu.lang.UCharacter.UnicodeBlock BOPOMOFO_EXTENDED;
+    field public static final int BOPOMOFO_EXTENDED_ID = 67; // 0x43
+    field public static final int BOPOMOFO_ID = 64; // 0x40
+    field public static final android.icu.lang.UCharacter.UnicodeBlock BOX_DRAWING;
+    field public static final int BOX_DRAWING_ID = 52; // 0x34
+    field public static final android.icu.lang.UCharacter.UnicodeBlock BRAHMI;
+    field public static final int BRAHMI_ID = 201; // 0xc9
+    field public static final android.icu.lang.UCharacter.UnicodeBlock BRAILLE_PATTERNS;
+    field public static final int BRAILLE_PATTERNS_ID = 57; // 0x39
+    field public static final android.icu.lang.UCharacter.UnicodeBlock BUGINESE;
+    field public static final int BUGINESE_ID = 129; // 0x81
+    field public static final android.icu.lang.UCharacter.UnicodeBlock BUHID;
+    field public static final int BUHID_ID = 100; // 0x64
+    field public static final android.icu.lang.UCharacter.UnicodeBlock BYZANTINE_MUSICAL_SYMBOLS;
+    field public static final int BYZANTINE_MUSICAL_SYMBOLS_ID = 91; // 0x5b
+    field public static final android.icu.lang.UCharacter.UnicodeBlock CARIAN;
+    field public static final int CARIAN_ID = 168; // 0xa8
+    field public static final android.icu.lang.UCharacter.UnicodeBlock CAUCASIAN_ALBANIAN;
+    field public static final int CAUCASIAN_ALBANIAN_ID = 222; // 0xde
+    field public static final android.icu.lang.UCharacter.UnicodeBlock CHAKMA;
+    field public static final int CHAKMA_ID = 212; // 0xd4
+    field public static final android.icu.lang.UCharacter.UnicodeBlock CHAM;
+    field public static final int CHAM_ID = 164; // 0xa4
+    field public static final android.icu.lang.UCharacter.UnicodeBlock CHEROKEE;
+    field public static final int CHEROKEE_ID = 32; // 0x20
+    field public static final android.icu.lang.UCharacter.UnicodeBlock CHEROKEE_SUPPLEMENT;
+    field public static final int CHEROKEE_SUPPLEMENT_ID = 255; // 0xff
+    field public static final android.icu.lang.UCharacter.UnicodeBlock CJK_COMPATIBILITY;
+    field public static final android.icu.lang.UCharacter.UnicodeBlock CJK_COMPATIBILITY_FORMS;
+    field public static final int CJK_COMPATIBILITY_FORMS_ID = 83; // 0x53
+    field public static final int CJK_COMPATIBILITY_ID = 69; // 0x45
+    field public static final android.icu.lang.UCharacter.UnicodeBlock CJK_COMPATIBILITY_IDEOGRAPHS;
+    field public static final int CJK_COMPATIBILITY_IDEOGRAPHS_ID = 79; // 0x4f
+    field public static final android.icu.lang.UCharacter.UnicodeBlock CJK_COMPATIBILITY_IDEOGRAPHS_SUPPLEMENT;
+    field public static final int CJK_COMPATIBILITY_IDEOGRAPHS_SUPPLEMENT_ID = 95; // 0x5f
+    field public static final android.icu.lang.UCharacter.UnicodeBlock CJK_RADICALS_SUPPLEMENT;
+    field public static final int CJK_RADICALS_SUPPLEMENT_ID = 58; // 0x3a
+    field public static final android.icu.lang.UCharacter.UnicodeBlock CJK_STROKES;
+    field public static final int CJK_STROKES_ID = 130; // 0x82
+    field public static final android.icu.lang.UCharacter.UnicodeBlock CJK_SYMBOLS_AND_PUNCTUATION;
+    field public static final int CJK_SYMBOLS_AND_PUNCTUATION_ID = 61; // 0x3d
+    field public static final android.icu.lang.UCharacter.UnicodeBlock CJK_UNIFIED_IDEOGRAPHS;
+    field public static final android.icu.lang.UCharacter.UnicodeBlock CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A;
+    field public static final int CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A_ID = 70; // 0x46
+    field public static final android.icu.lang.UCharacter.UnicodeBlock CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B;
+    field public static final int CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B_ID = 94; // 0x5e
+    field public static final android.icu.lang.UCharacter.UnicodeBlock CJK_UNIFIED_IDEOGRAPHS_EXTENSION_C;
+    field public static final int CJK_UNIFIED_IDEOGRAPHS_EXTENSION_C_ID = 197; // 0xc5
+    field public static final android.icu.lang.UCharacter.UnicodeBlock CJK_UNIFIED_IDEOGRAPHS_EXTENSION_D;
+    field public static final int CJK_UNIFIED_IDEOGRAPHS_EXTENSION_D_ID = 209; // 0xd1
+    field public static final android.icu.lang.UCharacter.UnicodeBlock CJK_UNIFIED_IDEOGRAPHS_EXTENSION_E;
+    field public static final int CJK_UNIFIED_IDEOGRAPHS_EXTENSION_E_ID = 256; // 0x100
+    field public static final int CJK_UNIFIED_IDEOGRAPHS_ID = 71; // 0x47
+    field public static final android.icu.lang.UCharacter.UnicodeBlock COMBINING_DIACRITICAL_MARKS;
+    field public static final android.icu.lang.UCharacter.UnicodeBlock COMBINING_DIACRITICAL_MARKS_EXTENDED;
+    field public static final int COMBINING_DIACRITICAL_MARKS_EXTENDED_ID = 224; // 0xe0
+    field public static final int COMBINING_DIACRITICAL_MARKS_ID = 7; // 0x7
+    field public static final android.icu.lang.UCharacter.UnicodeBlock COMBINING_DIACRITICAL_MARKS_SUPPLEMENT;
+    field public static final int COMBINING_DIACRITICAL_MARKS_SUPPLEMENT_ID = 131; // 0x83
+    field public static final android.icu.lang.UCharacter.UnicodeBlock COMBINING_HALF_MARKS;
+    field public static final int COMBINING_HALF_MARKS_ID = 82; // 0x52
+    field public static final android.icu.lang.UCharacter.UnicodeBlock COMBINING_MARKS_FOR_SYMBOLS;
+    field public static final int COMBINING_MARKS_FOR_SYMBOLS_ID = 43; // 0x2b
+    field public static final android.icu.lang.UCharacter.UnicodeBlock COMMON_INDIC_NUMBER_FORMS;
+    field public static final int COMMON_INDIC_NUMBER_FORMS_ID = 178; // 0xb2
+    field public static final android.icu.lang.UCharacter.UnicodeBlock CONTROL_PICTURES;
+    field public static final int CONTROL_PICTURES_ID = 49; // 0x31
+    field public static final android.icu.lang.UCharacter.UnicodeBlock COPTIC;
+    field public static final android.icu.lang.UCharacter.UnicodeBlock COPTIC_EPACT_NUMBERS;
+    field public static final int COPTIC_EPACT_NUMBERS_ID = 223; // 0xdf
+    field public static final int COPTIC_ID = 132; // 0x84
+    field public static final int COUNT = 263; // 0x107
+    field public static final android.icu.lang.UCharacter.UnicodeBlock COUNTING_ROD_NUMERALS;
+    field public static final int COUNTING_ROD_NUMERALS_ID = 154; // 0x9a
+    field public static final android.icu.lang.UCharacter.UnicodeBlock CUNEIFORM;
+    field public static final int CUNEIFORM_ID = 152; // 0x98
+    field public static final android.icu.lang.UCharacter.UnicodeBlock CUNEIFORM_NUMBERS_AND_PUNCTUATION;
+    field public static final int CUNEIFORM_NUMBERS_AND_PUNCTUATION_ID = 153; // 0x99
+    field public static final android.icu.lang.UCharacter.UnicodeBlock CURRENCY_SYMBOLS;
+    field public static final int CURRENCY_SYMBOLS_ID = 42; // 0x2a
+    field public static final android.icu.lang.UCharacter.UnicodeBlock CYPRIOT_SYLLABARY;
+    field public static final int CYPRIOT_SYLLABARY_ID = 123; // 0x7b
+    field public static final android.icu.lang.UCharacter.UnicodeBlock CYRILLIC;
+    field public static final android.icu.lang.UCharacter.UnicodeBlock CYRILLIC_EXTENDED_A;
+    field public static final int CYRILLIC_EXTENDED_A_ID = 158; // 0x9e
+    field public static final android.icu.lang.UCharacter.UnicodeBlock CYRILLIC_EXTENDED_B;
+    field public static final int CYRILLIC_EXTENDED_B_ID = 160; // 0xa0
+    field public static final int CYRILLIC_ID = 9; // 0x9
+    field public static final android.icu.lang.UCharacter.UnicodeBlock CYRILLIC_SUPPLEMENT;
+    field public static final android.icu.lang.UCharacter.UnicodeBlock CYRILLIC_SUPPLEMENTARY;
+    field public static final int CYRILLIC_SUPPLEMENTARY_ID = 97; // 0x61
+    field public static final int CYRILLIC_SUPPLEMENT_ID = 97; // 0x61
+    field public static final android.icu.lang.UCharacter.UnicodeBlock DESERET;
+    field public static final int DESERET_ID = 90; // 0x5a
+    field public static final android.icu.lang.UCharacter.UnicodeBlock DEVANAGARI;
+    field public static final android.icu.lang.UCharacter.UnicodeBlock DEVANAGARI_EXTENDED;
+    field public static final int DEVANAGARI_EXTENDED_ID = 179; // 0xb3
+    field public static final int DEVANAGARI_ID = 15; // 0xf
+    field public static final android.icu.lang.UCharacter.UnicodeBlock DINGBATS;
+    field public static final int DINGBATS_ID = 56; // 0x38
+    field public static final android.icu.lang.UCharacter.UnicodeBlock DOMINO_TILES;
+    field public static final int DOMINO_TILES_ID = 171; // 0xab
+    field public static final android.icu.lang.UCharacter.UnicodeBlock DUPLOYAN;
+    field public static final int DUPLOYAN_ID = 225; // 0xe1
+    field public static final android.icu.lang.UCharacter.UnicodeBlock EARLY_DYNASTIC_CUNEIFORM;
+    field public static final int EARLY_DYNASTIC_CUNEIFORM_ID = 257; // 0x101
+    field public static final android.icu.lang.UCharacter.UnicodeBlock EGYPTIAN_HIEROGLYPHS;
+    field public static final int EGYPTIAN_HIEROGLYPHS_ID = 194; // 0xc2
+    field public static final android.icu.lang.UCharacter.UnicodeBlock ELBASAN;
+    field public static final int ELBASAN_ID = 226; // 0xe2
+    field public static final android.icu.lang.UCharacter.UnicodeBlock EMOTICONS;
+    field public static final int EMOTICONS_ID = 206; // 0xce
+    field public static final android.icu.lang.UCharacter.UnicodeBlock ENCLOSED_ALPHANUMERICS;
+    field public static final int ENCLOSED_ALPHANUMERICS_ID = 51; // 0x33
+    field public static final android.icu.lang.UCharacter.UnicodeBlock ENCLOSED_ALPHANUMERIC_SUPPLEMENT;
+    field public static final int ENCLOSED_ALPHANUMERIC_SUPPLEMENT_ID = 195; // 0xc3
+    field public static final android.icu.lang.UCharacter.UnicodeBlock ENCLOSED_CJK_LETTERS_AND_MONTHS;
+    field public static final int ENCLOSED_CJK_LETTERS_AND_MONTHS_ID = 68; // 0x44
+    field public static final android.icu.lang.UCharacter.UnicodeBlock ENCLOSED_IDEOGRAPHIC_SUPPLEMENT;
+    field public static final int ENCLOSED_IDEOGRAPHIC_SUPPLEMENT_ID = 196; // 0xc4
+    field public static final android.icu.lang.UCharacter.UnicodeBlock ETHIOPIC;
+    field public static final android.icu.lang.UCharacter.UnicodeBlock ETHIOPIC_EXTENDED;
+    field public static final android.icu.lang.UCharacter.UnicodeBlock ETHIOPIC_EXTENDED_A;
+    field public static final int ETHIOPIC_EXTENDED_A_ID = 200; // 0xc8
+    field public static final int ETHIOPIC_EXTENDED_ID = 133; // 0x85
+    field public static final int ETHIOPIC_ID = 31; // 0x1f
+    field public static final android.icu.lang.UCharacter.UnicodeBlock ETHIOPIC_SUPPLEMENT;
+    field public static final int ETHIOPIC_SUPPLEMENT_ID = 134; // 0x86
+    field public static final android.icu.lang.UCharacter.UnicodeBlock GENERAL_PUNCTUATION;
+    field public static final int GENERAL_PUNCTUATION_ID = 40; // 0x28
+    field public static final android.icu.lang.UCharacter.UnicodeBlock GEOMETRIC_SHAPES;
+    field public static final android.icu.lang.UCharacter.UnicodeBlock GEOMETRIC_SHAPES_EXTENDED;
+    field public static final int GEOMETRIC_SHAPES_EXTENDED_ID = 227; // 0xe3
+    field public static final int GEOMETRIC_SHAPES_ID = 54; // 0x36
+    field public static final android.icu.lang.UCharacter.UnicodeBlock GEORGIAN;
+    field public static final int GEORGIAN_ID = 29; // 0x1d
+    field public static final android.icu.lang.UCharacter.UnicodeBlock GEORGIAN_SUPPLEMENT;
+    field public static final int GEORGIAN_SUPPLEMENT_ID = 135; // 0x87
+    field public static final android.icu.lang.UCharacter.UnicodeBlock GLAGOLITIC;
+    field public static final int GLAGOLITIC_ID = 136; // 0x88
+    field public static final android.icu.lang.UCharacter.UnicodeBlock GOTHIC;
+    field public static final int GOTHIC_ID = 89; // 0x59
+    field public static final android.icu.lang.UCharacter.UnicodeBlock GRANTHA;
+    field public static final int GRANTHA_ID = 228; // 0xe4
+    field public static final android.icu.lang.UCharacter.UnicodeBlock GREEK;
+    field public static final android.icu.lang.UCharacter.UnicodeBlock GREEK_EXTENDED;
+    field public static final int GREEK_EXTENDED_ID = 39; // 0x27
+    field public static final int GREEK_ID = 8; // 0x8
+    field public static final android.icu.lang.UCharacter.UnicodeBlock GUJARATI;
+    field public static final int GUJARATI_ID = 18; // 0x12
+    field public static final android.icu.lang.UCharacter.UnicodeBlock GURMUKHI;
+    field public static final int GURMUKHI_ID = 17; // 0x11
+    field public static final android.icu.lang.UCharacter.UnicodeBlock HALFWIDTH_AND_FULLWIDTH_FORMS;
+    field public static final int HALFWIDTH_AND_FULLWIDTH_FORMS_ID = 87; // 0x57
+    field public static final android.icu.lang.UCharacter.UnicodeBlock HANGUL_COMPATIBILITY_JAMO;
+    field public static final int HANGUL_COMPATIBILITY_JAMO_ID = 65; // 0x41
+    field public static final android.icu.lang.UCharacter.UnicodeBlock HANGUL_JAMO;
+    field public static final android.icu.lang.UCharacter.UnicodeBlock HANGUL_JAMO_EXTENDED_A;
+    field public static final int HANGUL_JAMO_EXTENDED_A_ID = 180; // 0xb4
+    field public static final android.icu.lang.UCharacter.UnicodeBlock HANGUL_JAMO_EXTENDED_B;
+    field public static final int HANGUL_JAMO_EXTENDED_B_ID = 185; // 0xb9
+    field public static final int HANGUL_JAMO_ID = 30; // 0x1e
+    field public static final android.icu.lang.UCharacter.UnicodeBlock HANGUL_SYLLABLES;
+    field public static final int HANGUL_SYLLABLES_ID = 74; // 0x4a
+    field public static final android.icu.lang.UCharacter.UnicodeBlock HANUNOO;
+    field public static final int HANUNOO_ID = 99; // 0x63
+    field public static final android.icu.lang.UCharacter.UnicodeBlock HATRAN;
+    field public static final int HATRAN_ID = 258; // 0x102
+    field public static final android.icu.lang.UCharacter.UnicodeBlock HEBREW;
+    field public static final int HEBREW_ID = 11; // 0xb
+    field public static final android.icu.lang.UCharacter.UnicodeBlock HIGH_PRIVATE_USE_SURROGATES;
+    field public static final int HIGH_PRIVATE_USE_SURROGATES_ID = 76; // 0x4c
+    field public static final android.icu.lang.UCharacter.UnicodeBlock HIGH_SURROGATES;
+    field public static final int HIGH_SURROGATES_ID = 75; // 0x4b
+    field public static final android.icu.lang.UCharacter.UnicodeBlock HIRAGANA;
+    field public static final int HIRAGANA_ID = 62; // 0x3e
+    field public static final android.icu.lang.UCharacter.UnicodeBlock IDEOGRAPHIC_DESCRIPTION_CHARACTERS;
+    field public static final int IDEOGRAPHIC_DESCRIPTION_CHARACTERS_ID = 60; // 0x3c
+    field public static final android.icu.lang.UCharacter.UnicodeBlock IMPERIAL_ARAMAIC;
+    field public static final int IMPERIAL_ARAMAIC_ID = 186; // 0xba
+    field public static final android.icu.lang.UCharacter.UnicodeBlock INSCRIPTIONAL_PAHLAVI;
+    field public static final int INSCRIPTIONAL_PAHLAVI_ID = 190; // 0xbe
+    field public static final android.icu.lang.UCharacter.UnicodeBlock INSCRIPTIONAL_PARTHIAN;
+    field public static final int INSCRIPTIONAL_PARTHIAN_ID = 189; // 0xbd
+    field public static final android.icu.lang.UCharacter.UnicodeBlock INVALID_CODE;
+    field public static final int INVALID_CODE_ID = -1; // 0xffffffff
+    field public static final android.icu.lang.UCharacter.UnicodeBlock IPA_EXTENSIONS;
+    field public static final int IPA_EXTENSIONS_ID = 5; // 0x5
+    field public static final android.icu.lang.UCharacter.UnicodeBlock JAVANESE;
+    field public static final int JAVANESE_ID = 181; // 0xb5
+    field public static final android.icu.lang.UCharacter.UnicodeBlock KAITHI;
+    field public static final int KAITHI_ID = 193; // 0xc1
+    field public static final android.icu.lang.UCharacter.UnicodeBlock KANA_SUPPLEMENT;
+    field public static final int KANA_SUPPLEMENT_ID = 203; // 0xcb
+    field public static final android.icu.lang.UCharacter.UnicodeBlock KANBUN;
+    field public static final int KANBUN_ID = 66; // 0x42
+    field public static final android.icu.lang.UCharacter.UnicodeBlock KANGXI_RADICALS;
+    field public static final int KANGXI_RADICALS_ID = 59; // 0x3b
+    field public static final android.icu.lang.UCharacter.UnicodeBlock KANNADA;
+    field public static final int KANNADA_ID = 22; // 0x16
+    field public static final android.icu.lang.UCharacter.UnicodeBlock KATAKANA;
+    field public static final int KATAKANA_ID = 63; // 0x3f
+    field public static final android.icu.lang.UCharacter.UnicodeBlock KATAKANA_PHONETIC_EXTENSIONS;
+    field public static final int KATAKANA_PHONETIC_EXTENSIONS_ID = 107; // 0x6b
+    field public static final android.icu.lang.UCharacter.UnicodeBlock KAYAH_LI;
+    field public static final int KAYAH_LI_ID = 162; // 0xa2
+    field public static final android.icu.lang.UCharacter.UnicodeBlock KHAROSHTHI;
+    field public static final int KHAROSHTHI_ID = 137; // 0x89
+    field public static final android.icu.lang.UCharacter.UnicodeBlock KHMER;
+    field public static final int KHMER_ID = 36; // 0x24
+    field public static final android.icu.lang.UCharacter.UnicodeBlock KHMER_SYMBOLS;
+    field public static final int KHMER_SYMBOLS_ID = 113; // 0x71
+    field public static final android.icu.lang.UCharacter.UnicodeBlock KHOJKI;
+    field public static final int KHOJKI_ID = 229; // 0xe5
+    field public static final android.icu.lang.UCharacter.UnicodeBlock KHUDAWADI;
+    field public static final int KHUDAWADI_ID = 230; // 0xe6
+    field public static final android.icu.lang.UCharacter.UnicodeBlock LAO;
+    field public static final int LAO_ID = 26; // 0x1a
+    field public static final android.icu.lang.UCharacter.UnicodeBlock LATIN_1_SUPPLEMENT;
+    field public static final int LATIN_1_SUPPLEMENT_ID = 2; // 0x2
+    field public static final android.icu.lang.UCharacter.UnicodeBlock LATIN_EXTENDED_A;
+    field public static final android.icu.lang.UCharacter.UnicodeBlock LATIN_EXTENDED_ADDITIONAL;
+    field public static final int LATIN_EXTENDED_ADDITIONAL_ID = 38; // 0x26
+    field public static final int LATIN_EXTENDED_A_ID = 3; // 0x3
+    field public static final android.icu.lang.UCharacter.UnicodeBlock LATIN_EXTENDED_B;
+    field public static final int LATIN_EXTENDED_B_ID = 4; // 0x4
+    field public static final android.icu.lang.UCharacter.UnicodeBlock LATIN_EXTENDED_C;
+    field public static final int LATIN_EXTENDED_C_ID = 148; // 0x94
+    field public static final android.icu.lang.UCharacter.UnicodeBlock LATIN_EXTENDED_D;
+    field public static final int LATIN_EXTENDED_D_ID = 149; // 0x95
+    field public static final android.icu.lang.UCharacter.UnicodeBlock LATIN_EXTENDED_E;
+    field public static final int LATIN_EXTENDED_E_ID = 231; // 0xe7
+    field public static final android.icu.lang.UCharacter.UnicodeBlock LEPCHA;
+    field public static final int LEPCHA_ID = 156; // 0x9c
+    field public static final android.icu.lang.UCharacter.UnicodeBlock LETTERLIKE_SYMBOLS;
+    field public static final int LETTERLIKE_SYMBOLS_ID = 44; // 0x2c
+    field public static final android.icu.lang.UCharacter.UnicodeBlock LIMBU;
+    field public static final int LIMBU_ID = 111; // 0x6f
+    field public static final android.icu.lang.UCharacter.UnicodeBlock LINEAR_A;
+    field public static final int LINEAR_A_ID = 232; // 0xe8
+    field public static final android.icu.lang.UCharacter.UnicodeBlock LINEAR_B_IDEOGRAMS;
+    field public static final int LINEAR_B_IDEOGRAMS_ID = 118; // 0x76
+    field public static final android.icu.lang.UCharacter.UnicodeBlock LINEAR_B_SYLLABARY;
+    field public static final int LINEAR_B_SYLLABARY_ID = 117; // 0x75
+    field public static final android.icu.lang.UCharacter.UnicodeBlock LISU;
+    field public static final int LISU_ID = 176; // 0xb0
+    field public static final android.icu.lang.UCharacter.UnicodeBlock LOW_SURROGATES;
+    field public static final int LOW_SURROGATES_ID = 77; // 0x4d
+    field public static final android.icu.lang.UCharacter.UnicodeBlock LYCIAN;
+    field public static final int LYCIAN_ID = 167; // 0xa7
+    field public static final android.icu.lang.UCharacter.UnicodeBlock LYDIAN;
+    field public static final int LYDIAN_ID = 169; // 0xa9
+    field public static final android.icu.lang.UCharacter.UnicodeBlock MAHAJANI;
+    field public static final int MAHAJANI_ID = 233; // 0xe9
+    field public static final android.icu.lang.UCharacter.UnicodeBlock MAHJONG_TILES;
+    field public static final int MAHJONG_TILES_ID = 170; // 0xaa
+    field public static final android.icu.lang.UCharacter.UnicodeBlock MALAYALAM;
+    field public static final int MALAYALAM_ID = 23; // 0x17
+    field public static final android.icu.lang.UCharacter.UnicodeBlock MANDAIC;
+    field public static final int MANDAIC_ID = 198; // 0xc6
+    field public static final android.icu.lang.UCharacter.UnicodeBlock MANICHAEAN;
+    field public static final int MANICHAEAN_ID = 234; // 0xea
+    field public static final android.icu.lang.UCharacter.UnicodeBlock MATHEMATICAL_ALPHANUMERIC_SYMBOLS;
+    field public static final int MATHEMATICAL_ALPHANUMERIC_SYMBOLS_ID = 93; // 0x5d
+    field public static final android.icu.lang.UCharacter.UnicodeBlock MATHEMATICAL_OPERATORS;
+    field public static final int MATHEMATICAL_OPERATORS_ID = 47; // 0x2f
+    field public static final android.icu.lang.UCharacter.UnicodeBlock MEETEI_MAYEK;
+    field public static final android.icu.lang.UCharacter.UnicodeBlock MEETEI_MAYEK_EXTENSIONS;
+    field public static final int MEETEI_MAYEK_EXTENSIONS_ID = 213; // 0xd5
+    field public static final int MEETEI_MAYEK_ID = 184; // 0xb8
+    field public static final android.icu.lang.UCharacter.UnicodeBlock MENDE_KIKAKUI;
+    field public static final int MENDE_KIKAKUI_ID = 235; // 0xeb
+    field public static final android.icu.lang.UCharacter.UnicodeBlock MEROITIC_CURSIVE;
+    field public static final int MEROITIC_CURSIVE_ID = 214; // 0xd6
+    field public static final android.icu.lang.UCharacter.UnicodeBlock MEROITIC_HIEROGLYPHS;
+    field public static final int MEROITIC_HIEROGLYPHS_ID = 215; // 0xd7
+    field public static final android.icu.lang.UCharacter.UnicodeBlock MIAO;
+    field public static final int MIAO_ID = 216; // 0xd8
+    field public static final android.icu.lang.UCharacter.UnicodeBlock MISCELLANEOUS_MATHEMATICAL_SYMBOLS_A;
+    field public static final int MISCELLANEOUS_MATHEMATICAL_SYMBOLS_A_ID = 102; // 0x66
+    field public static final android.icu.lang.UCharacter.UnicodeBlock MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B;
+    field public static final int MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B_ID = 105; // 0x69
+    field public static final android.icu.lang.UCharacter.UnicodeBlock MISCELLANEOUS_SYMBOLS;
+    field public static final android.icu.lang.UCharacter.UnicodeBlock MISCELLANEOUS_SYMBOLS_AND_ARROWS;
+    field public static final int MISCELLANEOUS_SYMBOLS_AND_ARROWS_ID = 115; // 0x73
+    field public static final android.icu.lang.UCharacter.UnicodeBlock MISCELLANEOUS_SYMBOLS_AND_PICTOGRAPHS;
+    field public static final int MISCELLANEOUS_SYMBOLS_AND_PICTOGRAPHS_ID = 205; // 0xcd
+    field public static final int MISCELLANEOUS_SYMBOLS_ID = 55; // 0x37
+    field public static final android.icu.lang.UCharacter.UnicodeBlock MISCELLANEOUS_TECHNICAL;
+    field public static final int MISCELLANEOUS_TECHNICAL_ID = 48; // 0x30
+    field public static final android.icu.lang.UCharacter.UnicodeBlock MODI;
+    field public static final android.icu.lang.UCharacter.UnicodeBlock MODIFIER_TONE_LETTERS;
+    field public static final int MODIFIER_TONE_LETTERS_ID = 138; // 0x8a
+    field public static final int MODI_ID = 236; // 0xec
+    field public static final android.icu.lang.UCharacter.UnicodeBlock MONGOLIAN;
+    field public static final int MONGOLIAN_ID = 37; // 0x25
+    field public static final android.icu.lang.UCharacter.UnicodeBlock MRO;
+    field public static final int MRO_ID = 237; // 0xed
+    field public static final android.icu.lang.UCharacter.UnicodeBlock MULTANI;
+    field public static final int MULTANI_ID = 259; // 0x103
+    field public static final android.icu.lang.UCharacter.UnicodeBlock MUSICAL_SYMBOLS;
+    field public static final int MUSICAL_SYMBOLS_ID = 92; // 0x5c
+    field public static final android.icu.lang.UCharacter.UnicodeBlock MYANMAR;
+    field public static final android.icu.lang.UCharacter.UnicodeBlock MYANMAR_EXTENDED_A;
+    field public static final int MYANMAR_EXTENDED_A_ID = 182; // 0xb6
+    field public static final android.icu.lang.UCharacter.UnicodeBlock MYANMAR_EXTENDED_B;
+    field public static final int MYANMAR_EXTENDED_B_ID = 238; // 0xee
+    field public static final int MYANMAR_ID = 28; // 0x1c
+    field public static final android.icu.lang.UCharacter.UnicodeBlock NABATAEAN;
+    field public static final int NABATAEAN_ID = 239; // 0xef
+    field public static final android.icu.lang.UCharacter.UnicodeBlock NEW_TAI_LUE;
+    field public static final int NEW_TAI_LUE_ID = 139; // 0x8b
+    field public static final android.icu.lang.UCharacter.UnicodeBlock NKO;
+    field public static final int NKO_ID = 146; // 0x92
+    field public static final android.icu.lang.UCharacter.UnicodeBlock NO_BLOCK;
+    field public static final android.icu.lang.UCharacter.UnicodeBlock NUMBER_FORMS;
+    field public static final int NUMBER_FORMS_ID = 45; // 0x2d
+    field public static final android.icu.lang.UCharacter.UnicodeBlock OGHAM;
+    field public static final int OGHAM_ID = 34; // 0x22
+    field public static final android.icu.lang.UCharacter.UnicodeBlock OLD_HUNGARIAN;
+    field public static final int OLD_HUNGARIAN_ID = 260; // 0x104
+    field public static final android.icu.lang.UCharacter.UnicodeBlock OLD_ITALIC;
+    field public static final int OLD_ITALIC_ID = 88; // 0x58
+    field public static final android.icu.lang.UCharacter.UnicodeBlock OLD_NORTH_ARABIAN;
+    field public static final int OLD_NORTH_ARABIAN_ID = 240; // 0xf0
+    field public static final android.icu.lang.UCharacter.UnicodeBlock OLD_PERMIC;
+    field public static final int OLD_PERMIC_ID = 241; // 0xf1
+    field public static final android.icu.lang.UCharacter.UnicodeBlock OLD_PERSIAN;
+    field public static final int OLD_PERSIAN_ID = 140; // 0x8c
+    field public static final android.icu.lang.UCharacter.UnicodeBlock OLD_SOUTH_ARABIAN;
+    field public static final int OLD_SOUTH_ARABIAN_ID = 187; // 0xbb
+    field public static final android.icu.lang.UCharacter.UnicodeBlock OLD_TURKIC;
+    field public static final int OLD_TURKIC_ID = 191; // 0xbf
+    field public static final android.icu.lang.UCharacter.UnicodeBlock OL_CHIKI;
+    field public static final int OL_CHIKI_ID = 157; // 0x9d
+    field public static final android.icu.lang.UCharacter.UnicodeBlock OPTICAL_CHARACTER_RECOGNITION;
+    field public static final int OPTICAL_CHARACTER_RECOGNITION_ID = 50; // 0x32
+    field public static final android.icu.lang.UCharacter.UnicodeBlock ORIYA;
+    field public static final int ORIYA_ID = 19; // 0x13
+    field public static final android.icu.lang.UCharacter.UnicodeBlock ORNAMENTAL_DINGBATS;
+    field public static final int ORNAMENTAL_DINGBATS_ID = 242; // 0xf2
+    field public static final android.icu.lang.UCharacter.UnicodeBlock OSMANYA;
+    field public static final int OSMANYA_ID = 122; // 0x7a
+    field public static final android.icu.lang.UCharacter.UnicodeBlock PAHAWH_HMONG;
+    field public static final int PAHAWH_HMONG_ID = 243; // 0xf3
+    field public static final android.icu.lang.UCharacter.UnicodeBlock PALMYRENE;
+    field public static final int PALMYRENE_ID = 244; // 0xf4
+    field public static final android.icu.lang.UCharacter.UnicodeBlock PAU_CIN_HAU;
+    field public static final int PAU_CIN_HAU_ID = 245; // 0xf5
+    field public static final android.icu.lang.UCharacter.UnicodeBlock PHAGS_PA;
+    field public static final int PHAGS_PA_ID = 150; // 0x96
+    field public static final android.icu.lang.UCharacter.UnicodeBlock PHAISTOS_DISC;
+    field public static final int PHAISTOS_DISC_ID = 166; // 0xa6
+    field public static final android.icu.lang.UCharacter.UnicodeBlock PHOENICIAN;
+    field public static final int PHOENICIAN_ID = 151; // 0x97
+    field public static final android.icu.lang.UCharacter.UnicodeBlock PHONETIC_EXTENSIONS;
+    field public static final int PHONETIC_EXTENSIONS_ID = 114; // 0x72
+    field public static final android.icu.lang.UCharacter.UnicodeBlock PHONETIC_EXTENSIONS_SUPPLEMENT;
+    field public static final int PHONETIC_EXTENSIONS_SUPPLEMENT_ID = 141; // 0x8d
+    field public static final android.icu.lang.UCharacter.UnicodeBlock PLAYING_CARDS;
+    field public static final int PLAYING_CARDS_ID = 204; // 0xcc
+    field public static final android.icu.lang.UCharacter.UnicodeBlock PRIVATE_USE;
+    field public static final android.icu.lang.UCharacter.UnicodeBlock PRIVATE_USE_AREA;
+    field public static final int PRIVATE_USE_AREA_ID = 78; // 0x4e
+    field public static final int PRIVATE_USE_ID = 78; // 0x4e
+    field public static final android.icu.lang.UCharacter.UnicodeBlock PSALTER_PAHLAVI;
+    field public static final int PSALTER_PAHLAVI_ID = 246; // 0xf6
+    field public static final android.icu.lang.UCharacter.UnicodeBlock REJANG;
+    field public static final int REJANG_ID = 163; // 0xa3
+    field public static final android.icu.lang.UCharacter.UnicodeBlock RUMI_NUMERAL_SYMBOLS;
+    field public static final int RUMI_NUMERAL_SYMBOLS_ID = 192; // 0xc0
+    field public static final android.icu.lang.UCharacter.UnicodeBlock RUNIC;
+    field public static final int RUNIC_ID = 35; // 0x23
+    field public static final android.icu.lang.UCharacter.UnicodeBlock SAMARITAN;
+    field public static final int SAMARITAN_ID = 172; // 0xac
+    field public static final android.icu.lang.UCharacter.UnicodeBlock SAURASHTRA;
+    field public static final int SAURASHTRA_ID = 161; // 0xa1
+    field public static final android.icu.lang.UCharacter.UnicodeBlock SHARADA;
+    field public static final int SHARADA_ID = 217; // 0xd9
+    field public static final android.icu.lang.UCharacter.UnicodeBlock SHAVIAN;
+    field public static final int SHAVIAN_ID = 121; // 0x79
+    field public static final android.icu.lang.UCharacter.UnicodeBlock SHORTHAND_FORMAT_CONTROLS;
+    field public static final int SHORTHAND_FORMAT_CONTROLS_ID = 247; // 0xf7
+    field public static final android.icu.lang.UCharacter.UnicodeBlock SIDDHAM;
+    field public static final int SIDDHAM_ID = 248; // 0xf8
+    field public static final android.icu.lang.UCharacter.UnicodeBlock SINHALA;
+    field public static final android.icu.lang.UCharacter.UnicodeBlock SINHALA_ARCHAIC_NUMBERS;
+    field public static final int SINHALA_ARCHAIC_NUMBERS_ID = 249; // 0xf9
+    field public static final int SINHALA_ID = 24; // 0x18
+    field public static final android.icu.lang.UCharacter.UnicodeBlock SMALL_FORM_VARIANTS;
+    field public static final int SMALL_FORM_VARIANTS_ID = 84; // 0x54
+    field public static final android.icu.lang.UCharacter.UnicodeBlock SORA_SOMPENG;
+    field public static final int SORA_SOMPENG_ID = 218; // 0xda
+    field public static final android.icu.lang.UCharacter.UnicodeBlock SPACING_MODIFIER_LETTERS;
+    field public static final int SPACING_MODIFIER_LETTERS_ID = 6; // 0x6
+    field public static final android.icu.lang.UCharacter.UnicodeBlock SPECIALS;
+    field public static final int SPECIALS_ID = 86; // 0x56
+    field public static final android.icu.lang.UCharacter.UnicodeBlock SUNDANESE;
+    field public static final int SUNDANESE_ID = 155; // 0x9b
+    field public static final android.icu.lang.UCharacter.UnicodeBlock SUNDANESE_SUPPLEMENT;
+    field public static final int SUNDANESE_SUPPLEMENT_ID = 219; // 0xdb
+    field public static final android.icu.lang.UCharacter.UnicodeBlock SUPERSCRIPTS_AND_SUBSCRIPTS;
+    field public static final int SUPERSCRIPTS_AND_SUBSCRIPTS_ID = 41; // 0x29
+    field public static final android.icu.lang.UCharacter.UnicodeBlock SUPPLEMENTAL_ARROWS_A;
+    field public static final int SUPPLEMENTAL_ARROWS_A_ID = 103; // 0x67
+    field public static final android.icu.lang.UCharacter.UnicodeBlock SUPPLEMENTAL_ARROWS_B;
+    field public static final int SUPPLEMENTAL_ARROWS_B_ID = 104; // 0x68
+    field public static final android.icu.lang.UCharacter.UnicodeBlock SUPPLEMENTAL_ARROWS_C;
+    field public static final int SUPPLEMENTAL_ARROWS_C_ID = 250; // 0xfa
+    field public static final android.icu.lang.UCharacter.UnicodeBlock SUPPLEMENTAL_MATHEMATICAL_OPERATORS;
+    field public static final int SUPPLEMENTAL_MATHEMATICAL_OPERATORS_ID = 106; // 0x6a
+    field public static final android.icu.lang.UCharacter.UnicodeBlock SUPPLEMENTAL_PUNCTUATION;
+    field public static final int SUPPLEMENTAL_PUNCTUATION_ID = 142; // 0x8e
+    field public static final android.icu.lang.UCharacter.UnicodeBlock SUPPLEMENTAL_SYMBOLS_AND_PICTOGRAPHS;
+    field public static final int SUPPLEMENTAL_SYMBOLS_AND_PICTOGRAPHS_ID = 261; // 0x105
+    field public static final android.icu.lang.UCharacter.UnicodeBlock SUPPLEMENTARY_PRIVATE_USE_AREA_A;
+    field public static final int SUPPLEMENTARY_PRIVATE_USE_AREA_A_ID = 109; // 0x6d
+    field public static final android.icu.lang.UCharacter.UnicodeBlock SUPPLEMENTARY_PRIVATE_USE_AREA_B;
+    field public static final int SUPPLEMENTARY_PRIVATE_USE_AREA_B_ID = 110; // 0x6e
+    field public static final android.icu.lang.UCharacter.UnicodeBlock SUTTON_SIGNWRITING;
+    field public static final int SUTTON_SIGNWRITING_ID = 262; // 0x106
+    field public static final android.icu.lang.UCharacter.UnicodeBlock SYLOTI_NAGRI;
+    field public static final int SYLOTI_NAGRI_ID = 143; // 0x8f
+    field public static final android.icu.lang.UCharacter.UnicodeBlock SYRIAC;
+    field public static final int SYRIAC_ID = 13; // 0xd
+    field public static final android.icu.lang.UCharacter.UnicodeBlock TAGALOG;
+    field public static final int TAGALOG_ID = 98; // 0x62
+    field public static final android.icu.lang.UCharacter.UnicodeBlock TAGBANWA;
+    field public static final int TAGBANWA_ID = 101; // 0x65
+    field public static final android.icu.lang.UCharacter.UnicodeBlock TAGS;
+    field public static final int TAGS_ID = 96; // 0x60
+    field public static final android.icu.lang.UCharacter.UnicodeBlock TAI_LE;
+    field public static final int TAI_LE_ID = 112; // 0x70
+    field public static final android.icu.lang.UCharacter.UnicodeBlock TAI_THAM;
+    field public static final int TAI_THAM_ID = 174; // 0xae
+    field public static final android.icu.lang.UCharacter.UnicodeBlock TAI_VIET;
+    field public static final int TAI_VIET_ID = 183; // 0xb7
+    field public static final android.icu.lang.UCharacter.UnicodeBlock TAI_XUAN_JING_SYMBOLS;
+    field public static final int TAI_XUAN_JING_SYMBOLS_ID = 124; // 0x7c
+    field public static final android.icu.lang.UCharacter.UnicodeBlock TAKRI;
+    field public static final int TAKRI_ID = 220; // 0xdc
+    field public static final android.icu.lang.UCharacter.UnicodeBlock TAMIL;
+    field public static final int TAMIL_ID = 20; // 0x14
+    field public static final android.icu.lang.UCharacter.UnicodeBlock TELUGU;
+    field public static final int TELUGU_ID = 21; // 0x15
+    field public static final android.icu.lang.UCharacter.UnicodeBlock THAANA;
+    field public static final int THAANA_ID = 14; // 0xe
+    field public static final android.icu.lang.UCharacter.UnicodeBlock THAI;
+    field public static final int THAI_ID = 25; // 0x19
+    field public static final android.icu.lang.UCharacter.UnicodeBlock TIBETAN;
+    field public static final int TIBETAN_ID = 27; // 0x1b
+    field public static final android.icu.lang.UCharacter.UnicodeBlock TIFINAGH;
+    field public static final int TIFINAGH_ID = 144; // 0x90
+    field public static final android.icu.lang.UCharacter.UnicodeBlock TIRHUTA;
+    field public static final int TIRHUTA_ID = 251; // 0xfb
+    field public static final android.icu.lang.UCharacter.UnicodeBlock TRANSPORT_AND_MAP_SYMBOLS;
+    field public static final int TRANSPORT_AND_MAP_SYMBOLS_ID = 207; // 0xcf
+    field public static final android.icu.lang.UCharacter.UnicodeBlock UGARITIC;
+    field public static final int UGARITIC_ID = 120; // 0x78
+    field public static final android.icu.lang.UCharacter.UnicodeBlock UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS;
+    field public static final android.icu.lang.UCharacter.UnicodeBlock UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS_EXTENDED;
+    field public static final int UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS_EXTENDED_ID = 173; // 0xad
+    field public static final int UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS_ID = 33; // 0x21
+    field public static final android.icu.lang.UCharacter.UnicodeBlock VAI;
+    field public static final int VAI_ID = 159; // 0x9f
+    field public static final android.icu.lang.UCharacter.UnicodeBlock VARIATION_SELECTORS;
+    field public static final int VARIATION_SELECTORS_ID = 108; // 0x6c
+    field public static final android.icu.lang.UCharacter.UnicodeBlock VARIATION_SELECTORS_SUPPLEMENT;
+    field public static final int VARIATION_SELECTORS_SUPPLEMENT_ID = 125; // 0x7d
+    field public static final android.icu.lang.UCharacter.UnicodeBlock VEDIC_EXTENSIONS;
+    field public static final int VEDIC_EXTENSIONS_ID = 175; // 0xaf
+    field public static final android.icu.lang.UCharacter.UnicodeBlock VERTICAL_FORMS;
+    field public static final int VERTICAL_FORMS_ID = 145; // 0x91
+    field public static final android.icu.lang.UCharacter.UnicodeBlock WARANG_CITI;
+    field public static final int WARANG_CITI_ID = 252; // 0xfc
+    field public static final android.icu.lang.UCharacter.UnicodeBlock YIJING_HEXAGRAM_SYMBOLS;
+    field public static final int YIJING_HEXAGRAM_SYMBOLS_ID = 116; // 0x74
+    field public static final android.icu.lang.UCharacter.UnicodeBlock YI_RADICALS;
+    field public static final int YI_RADICALS_ID = 73; // 0x49
+    field public static final android.icu.lang.UCharacter.UnicodeBlock YI_SYLLABLES;
+    field public static final int YI_SYLLABLES_ID = 72; // 0x48
+  }
+
+  public static abstract interface UCharacter.WordBreak {
+    field public static final int ALETTER = 1; // 0x1
+    field public static final int COUNT = 17; // 0x11
+    field public static final int CR = 8; // 0x8
+    field public static final int DOUBLE_QUOTE = 16; // 0x10
+    field public static final int EXTEND = 9; // 0x9
+    field public static final int EXTENDNUMLET = 7; // 0x7
+    field public static final int FORMAT = 2; // 0x2
+    field public static final int HEBREW_LETTER = 14; // 0xe
+    field public static final int KATAKANA = 3; // 0x3
+    field public static final int LF = 10; // 0xa
+    field public static final int MIDLETTER = 4; // 0x4
+    field public static final int MIDNUM = 5; // 0x5
+    field public static final int MIDNUMLET = 11; // 0xb
+    field public static final int NEWLINE = 12; // 0xc
+    field public static final int NUMERIC = 6; // 0x6
+    field public static final int OTHER = 0; // 0x0
+    field public static final int REGIONAL_INDICATOR = 13; // 0xd
+    field public static final int SINGLE_QUOTE = 15; // 0xf
+  }
+
+  public final class UCharacterCategory implements android.icu.lang.UCharacterEnums.ECharacterCategory {
+    method public static java.lang.String toString(int);
+  }
+
+  public final class UCharacterDirection implements android.icu.lang.UCharacterEnums.ECharacterDirection {
+    method public static java.lang.String toString(int);
+  }
+
+  public class UCharacterEnums {
+  }
+
+  public static abstract interface UCharacterEnums.ECharacterCategory {
+    field public static final byte CHAR_CATEGORY_COUNT = 30; // 0x1e
+    field public static final byte COMBINING_SPACING_MARK = 8; // 0x8
+    field public static final byte CONNECTOR_PUNCTUATION = 22; // 0x16
+    field public static final byte CONTROL = 15; // 0xf
+    field public static final byte CURRENCY_SYMBOL = 25; // 0x19
+    field public static final byte DASH_PUNCTUATION = 19; // 0x13
+    field public static final byte DECIMAL_DIGIT_NUMBER = 9; // 0x9
+    field public static final byte ENCLOSING_MARK = 7; // 0x7
+    field public static final byte END_PUNCTUATION = 21; // 0x15
+    field public static final byte FINAL_PUNCTUATION = 29; // 0x1d
+    field public static final byte FINAL_QUOTE_PUNCTUATION = 29; // 0x1d
+    field public static final byte FORMAT = 16; // 0x10
+    field public static final byte GENERAL_OTHER_TYPES = 0; // 0x0
+    field public static final byte INITIAL_PUNCTUATION = 28; // 0x1c
+    field public static final byte INITIAL_QUOTE_PUNCTUATION = 28; // 0x1c
+    field public static final byte LETTER_NUMBER = 10; // 0xa
+    field public static final byte LINE_SEPARATOR = 13; // 0xd
+    field public static final byte LOWERCASE_LETTER = 2; // 0x2
+    field public static final byte MATH_SYMBOL = 24; // 0x18
+    field public static final byte MODIFIER_LETTER = 4; // 0x4
+    field public static final byte MODIFIER_SYMBOL = 26; // 0x1a
+    field public static final byte NON_SPACING_MARK = 6; // 0x6
+    field public static final byte OTHER_LETTER = 5; // 0x5
+    field public static final byte OTHER_NUMBER = 11; // 0xb
+    field public static final byte OTHER_PUNCTUATION = 23; // 0x17
+    field public static final byte OTHER_SYMBOL = 27; // 0x1b
+    field public static final byte PARAGRAPH_SEPARATOR = 14; // 0xe
+    field public static final byte PRIVATE_USE = 17; // 0x11
+    field public static final byte SPACE_SEPARATOR = 12; // 0xc
+    field public static final byte START_PUNCTUATION = 20; // 0x14
+    field public static final byte SURROGATE = 18; // 0x12
+    field public static final byte TITLECASE_LETTER = 3; // 0x3
+    field public static final byte UNASSIGNED = 0; // 0x0
+    field public static final byte UPPERCASE_LETTER = 1; // 0x1
+  }
+
+  public static abstract interface UCharacterEnums.ECharacterDirection {
+    field public static final int ARABIC_NUMBER = 5; // 0x5
+    field public static final int BLOCK_SEPARATOR = 7; // 0x7
+    field public static final int BOUNDARY_NEUTRAL = 18; // 0x12
+    field public static final int CHAR_DIRECTION_COUNT = 23; // 0x17
+    field public static final int COMMON_NUMBER_SEPARATOR = 6; // 0x6
+    field public static final byte DIRECTIONALITY_ARABIC_NUMBER = 5; // 0x5
+    field public static final byte DIRECTIONALITY_BOUNDARY_NEUTRAL = 18; // 0x12
+    field public static final byte DIRECTIONALITY_COMMON_NUMBER_SEPARATOR = 6; // 0x6
+    field public static final byte DIRECTIONALITY_EUROPEAN_NUMBER = 2; // 0x2
+    field public static final byte DIRECTIONALITY_EUROPEAN_NUMBER_SEPARATOR = 3; // 0x3
+    field public static final byte DIRECTIONALITY_EUROPEAN_NUMBER_TERMINATOR = 4; // 0x4
+    field public static final byte DIRECTIONALITY_LEFT_TO_RIGHT = 0; // 0x0
+    field public static final byte DIRECTIONALITY_LEFT_TO_RIGHT_EMBEDDING = 11; // 0xb
+    field public static final byte DIRECTIONALITY_LEFT_TO_RIGHT_OVERRIDE = 12; // 0xc
+    field public static final byte DIRECTIONALITY_NONSPACING_MARK = 17; // 0x11
+    field public static final byte DIRECTIONALITY_OTHER_NEUTRALS = 10; // 0xa
+    field public static final byte DIRECTIONALITY_PARAGRAPH_SEPARATOR = 7; // 0x7
+    field public static final byte DIRECTIONALITY_POP_DIRECTIONAL_FORMAT = 16; // 0x10
+    field public static final byte DIRECTIONALITY_RIGHT_TO_LEFT = 1; // 0x1
+    field public static final byte DIRECTIONALITY_RIGHT_TO_LEFT_ARABIC = 13; // 0xd
+    field public static final byte DIRECTIONALITY_RIGHT_TO_LEFT_EMBEDDING = 14; // 0xe
+    field public static final byte DIRECTIONALITY_RIGHT_TO_LEFT_OVERRIDE = 15; // 0xf
+    field public static final byte DIRECTIONALITY_SEGMENT_SEPARATOR = 8; // 0x8
+    field public static final byte DIRECTIONALITY_UNDEFINED = -1; // 0xffffffff
+    field public static final byte DIRECTIONALITY_WHITESPACE = 9; // 0x9
+    field public static final int DIR_NON_SPACING_MARK = 17; // 0x11
+    field public static final int EUROPEAN_NUMBER = 2; // 0x2
+    field public static final int EUROPEAN_NUMBER_SEPARATOR = 3; // 0x3
+    field public static final int EUROPEAN_NUMBER_TERMINATOR = 4; // 0x4
+    field public static final byte FIRST_STRONG_ISOLATE = 19; // 0x13
+    field public static final int LEFT_TO_RIGHT = 0; // 0x0
+    field public static final int LEFT_TO_RIGHT_EMBEDDING = 11; // 0xb
+    field public static final byte LEFT_TO_RIGHT_ISOLATE = 20; // 0x14
+    field public static final int LEFT_TO_RIGHT_OVERRIDE = 12; // 0xc
+    field public static final int OTHER_NEUTRAL = 10; // 0xa
+    field public static final int POP_DIRECTIONAL_FORMAT = 16; // 0x10
+    field public static final byte POP_DIRECTIONAL_ISOLATE = 22; // 0x16
+    field public static final int RIGHT_TO_LEFT = 1; // 0x1
+    field public static final int RIGHT_TO_LEFT_ARABIC = 13; // 0xd
+    field public static final int RIGHT_TO_LEFT_EMBEDDING = 14; // 0xe
+    field public static final byte RIGHT_TO_LEFT_ISOLATE = 21; // 0x15
+    field public static final int RIGHT_TO_LEFT_OVERRIDE = 15; // 0xf
+    field public static final int SEGMENT_SEPARATOR = 8; // 0x8
+    field public static final int WHITE_SPACE_NEUTRAL = 9; // 0x9
+  }
+
+  public abstract interface UProperty {
+    field public static final int AGE = 16384; // 0x4000
+    field public static final int ALPHABETIC = 0; // 0x0
+    field public static final int ASCII_HEX_DIGIT = 1; // 0x1
+    field public static final int BIDI_CLASS = 4096; // 0x1000
+    field public static final int BIDI_CONTROL = 2; // 0x2
+    field public static final int BIDI_MIRRORED = 3; // 0x3
+    field public static final int BIDI_MIRRORING_GLYPH = 16385; // 0x4001
+    field public static final int BIDI_PAIRED_BRACKET = 16397; // 0x400d
+    field public static final int BIDI_PAIRED_BRACKET_TYPE = 4117; // 0x1015
+    field public static final int BINARY_LIMIT = 57; // 0x39
+    field public static final int BINARY_START = 0; // 0x0
+    field public static final int BLOCK = 4097; // 0x1001
+    field public static final int CANONICAL_COMBINING_CLASS = 4098; // 0x1002
+    field public static final int CASED = 49; // 0x31
+    field public static final int CASE_FOLDING = 16386; // 0x4002
+    field public static final int CASE_IGNORABLE = 50; // 0x32
+    field public static final int CASE_SENSITIVE = 34; // 0x22
+    field public static final int CHANGES_WHEN_CASEFOLDED = 54; // 0x36
+    field public static final int CHANGES_WHEN_CASEMAPPED = 55; // 0x37
+    field public static final int CHANGES_WHEN_LOWERCASED = 51; // 0x33
+    field public static final int CHANGES_WHEN_NFKC_CASEFOLDED = 56; // 0x38
+    field public static final int CHANGES_WHEN_TITLECASED = 53; // 0x35
+    field public static final int CHANGES_WHEN_UPPERCASED = 52; // 0x34
+    field public static final int DASH = 4; // 0x4
+    field public static final int DECOMPOSITION_TYPE = 4099; // 0x1003
+    field public static final int DEFAULT_IGNORABLE_CODE_POINT = 5; // 0x5
+    field public static final int DEPRECATED = 6; // 0x6
+    field public static final int DIACRITIC = 7; // 0x7
+    field public static final int DOUBLE_LIMIT = 12289; // 0x3001
+    field public static final int DOUBLE_START = 12288; // 0x3000
+    field public static final int EAST_ASIAN_WIDTH = 4100; // 0x1004
+    field public static final int EXTENDER = 8; // 0x8
+    field public static final int FULL_COMPOSITION_EXCLUSION = 9; // 0x9
+    field public static final int GENERAL_CATEGORY = 4101; // 0x1005
+    field public static final int GENERAL_CATEGORY_MASK = 8192; // 0x2000
+    field public static final int GRAPHEME_BASE = 10; // 0xa
+    field public static final int GRAPHEME_CLUSTER_BREAK = 4114; // 0x1012
+    field public static final int GRAPHEME_EXTEND = 11; // 0xb
+    field public static final int GRAPHEME_LINK = 12; // 0xc
+    field public static final int HANGUL_SYLLABLE_TYPE = 4107; // 0x100b
+    field public static final int HEX_DIGIT = 13; // 0xd
+    field public static final int HYPHEN = 14; // 0xe
+    field public static final int IDEOGRAPHIC = 17; // 0x11
+    field public static final int IDS_BINARY_OPERATOR = 18; // 0x12
+    field public static final int IDS_TRINARY_OPERATOR = 19; // 0x13
+    field public static final int ID_CONTINUE = 15; // 0xf
+    field public static final int ID_START = 16; // 0x10
+    field public static final int INT_LIMIT = 4118; // 0x1016
+    field public static final int INT_START = 4096; // 0x1000
+    field public static final int JOINING_GROUP = 4102; // 0x1006
+    field public static final int JOINING_TYPE = 4103; // 0x1007
+    field public static final int JOIN_CONTROL = 20; // 0x14
+    field public static final int LEAD_CANONICAL_COMBINING_CLASS = 4112; // 0x1010
+    field public static final int LINE_BREAK = 4104; // 0x1008
+    field public static final int LOGICAL_ORDER_EXCEPTION = 21; // 0x15
+    field public static final int LOWERCASE = 22; // 0x16
+    field public static final int LOWERCASE_MAPPING = 16388; // 0x4004
+    field public static final int MASK_LIMIT = 8193; // 0x2001
+    field public static final int MASK_START = 8192; // 0x2000
+    field public static final int MATH = 23; // 0x17
+    field public static final int NAME = 16389; // 0x4005
+    field public static final int NFC_INERT = 39; // 0x27
+    field public static final int NFC_QUICK_CHECK = 4110; // 0x100e
+    field public static final int NFD_INERT = 37; // 0x25
+    field public static final int NFD_QUICK_CHECK = 4108; // 0x100c
+    field public static final int NFKC_INERT = 40; // 0x28
+    field public static final int NFKC_QUICK_CHECK = 4111; // 0x100f
+    field public static final int NFKD_INERT = 38; // 0x26
+    field public static final int NFKD_QUICK_CHECK = 4109; // 0x100d
+    field public static final int NONCHARACTER_CODE_POINT = 24; // 0x18
+    field public static final int NUMERIC_TYPE = 4105; // 0x1009
+    field public static final int NUMERIC_VALUE = 12288; // 0x3000
+    field public static final int OTHER_PROPERTY_LIMIT = 28673; // 0x7001
+    field public static final int OTHER_PROPERTY_START = 28672; // 0x7000
+    field public static final int PATTERN_SYNTAX = 42; // 0x2a
+    field public static final int PATTERN_WHITE_SPACE = 43; // 0x2b
+    field public static final int POSIX_ALNUM = 44; // 0x2c
+    field public static final int POSIX_BLANK = 45; // 0x2d
+    field public static final int POSIX_GRAPH = 46; // 0x2e
+    field public static final int POSIX_PRINT = 47; // 0x2f
+    field public static final int POSIX_XDIGIT = 48; // 0x30
+    field public static final int QUOTATION_MARK = 25; // 0x19
+    field public static final int RADICAL = 26; // 0x1a
+    field public static final int SCRIPT = 4106; // 0x100a
+    field public static final int SCRIPT_EXTENSIONS = 28672; // 0x7000
+    field public static final int SEGMENT_STARTER = 41; // 0x29
+    field public static final int SENTENCE_BREAK = 4115; // 0x1013
+    field public static final int SIMPLE_CASE_FOLDING = 16390; // 0x4006
+    field public static final int SIMPLE_LOWERCASE_MAPPING = 16391; // 0x4007
+    field public static final int SIMPLE_TITLECASE_MAPPING = 16392; // 0x4008
+    field public static final int SIMPLE_UPPERCASE_MAPPING = 16393; // 0x4009
+    field public static final int SOFT_DOTTED = 27; // 0x1b
+    field public static final int STRING_LIMIT = 16398; // 0x400e
+    field public static final int STRING_START = 16384; // 0x4000
+    field public static final int S_TERM = 35; // 0x23
+    field public static final int TERMINAL_PUNCTUATION = 28; // 0x1c
+    field public static final int TITLECASE_MAPPING = 16394; // 0x400a
+    field public static final int TRAIL_CANONICAL_COMBINING_CLASS = 4113; // 0x1011
+    field public static final int UNIFIED_IDEOGRAPH = 29; // 0x1d
+    field public static final int UPPERCASE = 30; // 0x1e
+    field public static final int UPPERCASE_MAPPING = 16396; // 0x400c
+    field public static final int VARIATION_SELECTOR = 36; // 0x24
+    field public static final int WHITE_SPACE = 31; // 0x1f
+    field public static final int WORD_BREAK = 4116; // 0x1014
+    field public static final int XID_CONTINUE = 32; // 0x20
+    field public static final int XID_START = 33; // 0x21
+  }
+
+  public static abstract interface UProperty.NameChoice {
+    field public static final int COUNT = 2; // 0x2
+    field public static final int LONG = 1; // 0x1
+    field public static final int SHORT = 0; // 0x0
+  }
+
+  public final class UScript {
+    method public static final boolean breaksBetweenLetters(int);
+    method public static final int[] getCode(java.util.Locale);
+    method public static final int[] getCode(android.icu.util.ULocale);
+    method public static final int[] getCode(java.lang.String);
+    method public static final int getCodeFromName(java.lang.String);
+    method public static final java.lang.String getName(int);
+    method public static final java.lang.String getSampleString(int);
+    method public static final int getScript(int);
+    method public static final int getScriptExtensions(int, java.util.BitSet);
+    method public static final java.lang.String getShortName(int);
+    method public static final android.icu.lang.UScript.ScriptUsage getUsage(int);
+    method public static final boolean hasScript(int, int);
+    method public static final boolean isCased(int);
+    method public static final boolean isRightToLeft(int);
+    field public static final int AFAKA = 147; // 0x93
+    field public static final int AHOM = 161; // 0xa1
+    field public static final int ANATOLIAN_HIEROGLYPHS = 156; // 0x9c
+    field public static final int ARABIC = 2; // 0x2
+    field public static final int ARMENIAN = 3; // 0x3
+    field public static final int AVESTAN = 117; // 0x75
+    field public static final int BALINESE = 62; // 0x3e
+    field public static final int BAMUM = 130; // 0x82
+    field public static final int BASSA_VAH = 134; // 0x86
+    field public static final int BATAK = 63; // 0x3f
+    field public static final int BENGALI = 4; // 0x4
+    field public static final int BLISSYMBOLS = 64; // 0x40
+    field public static final int BOOK_PAHLAVI = 124; // 0x7c
+    field public static final int BOPOMOFO = 5; // 0x5
+    field public static final int BRAHMI = 65; // 0x41
+    field public static final int BRAILLE = 46; // 0x2e
+    field public static final int BUGINESE = 55; // 0x37
+    field public static final int BUHID = 44; // 0x2c
+    field public static final int CANADIAN_ABORIGINAL = 40; // 0x28
+    field public static final int CARIAN = 104; // 0x68
+    field public static final int CAUCASIAN_ALBANIAN = 159; // 0x9f
+    field public static final int CHAKMA = 118; // 0x76
+    field public static final int CHAM = 66; // 0x42
+    field public static final int CHEROKEE = 6; // 0x6
+    field public static final int CIRTH = 67; // 0x43
+    field public static final int CODE_LIMIT = 167; // 0xa7
+    field public static final int COMMON = 0; // 0x0
+    field public static final int COPTIC = 7; // 0x7
+    field public static final int CUNEIFORM = 101; // 0x65
+    field public static final int CYPRIOT = 47; // 0x2f
+    field public static final int CYRILLIC = 8; // 0x8
+    field public static final int DEMOTIC_EGYPTIAN = 69; // 0x45
+    field public static final int DESERET = 9; // 0x9
+    field public static final int DEVANAGARI = 10; // 0xa
+    field public static final int DUPLOYAN = 135; // 0x87
+    field public static final int EASTERN_SYRIAC = 97; // 0x61
+    field public static final int EGYPTIAN_HIEROGLYPHS = 71; // 0x47
+    field public static final int ELBASAN = 136; // 0x88
+    field public static final int ESTRANGELO_SYRIAC = 95; // 0x5f
+    field public static final int ETHIOPIC = 11; // 0xb
+    field public static final int GEORGIAN = 12; // 0xc
+    field public static final int GLAGOLITIC = 56; // 0x38
+    field public static final int GOTHIC = 13; // 0xd
+    field public static final int GRANTHA = 137; // 0x89
+    field public static final int GREEK = 14; // 0xe
+    field public static final int GUJARATI = 15; // 0xf
+    field public static final int GURMUKHI = 16; // 0x10
+    field public static final int HAN = 17; // 0x11
+    field public static final int HANGUL = 18; // 0x12
+    field public static final int HANUNOO = 43; // 0x2b
+    field public static final int HARAPPAN_INDUS = 77; // 0x4d
+    field public static final int HATRAN = 162; // 0xa2
+    field public static final int HEBREW = 19; // 0x13
+    field public static final int HIERATIC_EGYPTIAN = 70; // 0x46
+    field public static final int HIRAGANA = 20; // 0x14
+    field public static final int IMPERIAL_ARAMAIC = 116; // 0x74
+    field public static final int INHERITED = 1; // 0x1
+    field public static final int INSCRIPTIONAL_PAHLAVI = 122; // 0x7a
+    field public static final int INSCRIPTIONAL_PARTHIAN = 125; // 0x7d
+    field public static final int INVALID_CODE = -1; // 0xffffffff
+    field public static final int JAPANESE = 105; // 0x69
+    field public static final int JAVANESE = 78; // 0x4e
+    field public static final int JURCHEN = 148; // 0x94
+    field public static final int KAITHI = 120; // 0x78
+    field public static final int KANNADA = 21; // 0x15
+    field public static final int KATAKANA = 22; // 0x16
+    field public static final int KATAKANA_OR_HIRAGANA = 54; // 0x36
+    field public static final int KAYAH_LI = 79; // 0x4f
+    field public static final int KHAROSHTHI = 57; // 0x39
+    field public static final int KHMER = 23; // 0x17
+    field public static final int KHOJKI = 157; // 0x9d
+    field public static final int KHUDAWADI = 145; // 0x91
+    field public static final int KHUTSURI = 72; // 0x48
+    field public static final int KOREAN = 119; // 0x77
+    field public static final int KPELLE = 138; // 0x8a
+    field public static final int LANNA = 106; // 0x6a
+    field public static final int LAO = 24; // 0x18
+    field public static final int LATIN = 25; // 0x19
+    field public static final int LATIN_FRAKTUR = 80; // 0x50
+    field public static final int LATIN_GAELIC = 81; // 0x51
+    field public static final int LEPCHA = 82; // 0x52
+    field public static final int LIMBU = 48; // 0x30
+    field public static final int LINEAR_A = 83; // 0x53
+    field public static final int LINEAR_B = 49; // 0x31
+    field public static final int LISU = 131; // 0x83
+    field public static final int LOMA = 139; // 0x8b
+    field public static final int LYCIAN = 107; // 0x6b
+    field public static final int LYDIAN = 108; // 0x6c
+    field public static final int MAHAJANI = 160; // 0xa0
+    field public static final int MALAYALAM = 26; // 0x1a
+    field public static final int MANDAEAN = 84; // 0x54
+    field public static final int MANDAIC = 84; // 0x54
+    field public static final int MANICHAEAN = 121; // 0x79
+    field public static final int MATHEMATICAL_NOTATION = 128; // 0x80
+    field public static final int MAYAN_HIEROGLYPHS = 85; // 0x55
+    field public static final int MEITEI_MAYEK = 115; // 0x73
+    field public static final int MENDE = 140; // 0x8c
+    field public static final int MEROITIC = 86; // 0x56
+    field public static final int MEROITIC_CURSIVE = 141; // 0x8d
+    field public static final int MEROITIC_HIEROGLYPHS = 86; // 0x56
+    field public static final int MIAO = 92; // 0x5c
+    field public static final int MODI = 163; // 0xa3
+    field public static final int MONGOLIAN = 27; // 0x1b
+    field public static final int MOON = 114; // 0x72
+    field public static final int MRO = 149; // 0x95
+    field public static final int MULTANI = 164; // 0xa4
+    field public static final int MYANMAR = 28; // 0x1c
+    field public static final int NABATAEAN = 143; // 0x8f
+    field public static final int NAKHI_GEBA = 132; // 0x84
+    field public static final int NEW_TAI_LUE = 59; // 0x3b
+    field public static final int NKO = 87; // 0x57
+    field public static final int NUSHU = 150; // 0x96
+    field public static final int OGHAM = 29; // 0x1d
+    field public static final int OLD_CHURCH_SLAVONIC_CYRILLIC = 68; // 0x44
+    field public static final int OLD_HUNGARIAN = 76; // 0x4c
+    field public static final int OLD_ITALIC = 30; // 0x1e
+    field public static final int OLD_NORTH_ARABIAN = 142; // 0x8e
+    field public static final int OLD_PERMIC = 89; // 0x59
+    field public static final int OLD_PERSIAN = 61; // 0x3d
+    field public static final int OLD_SOUTH_ARABIAN = 133; // 0x85
+    field public static final int OL_CHIKI = 109; // 0x6d
+    field public static final int ORIYA = 31; // 0x1f
+    field public static final int ORKHON = 88; // 0x58
+    field public static final int OSMANYA = 50; // 0x32
+    field public static final int PAHAWH_HMONG = 75; // 0x4b
+    field public static final int PALMYRENE = 144; // 0x90
+    field public static final int PAU_CIN_HAU = 165; // 0xa5
+    field public static final int PHAGS_PA = 90; // 0x5a
+    field public static final int PHOENICIAN = 91; // 0x5b
+    field public static final int PHONETIC_POLLARD = 92; // 0x5c
+    field public static final int PSALTER_PAHLAVI = 123; // 0x7b
+    field public static final int REJANG = 110; // 0x6e
+    field public static final int RONGORONGO = 93; // 0x5d
+    field public static final int RUNIC = 32; // 0x20
+    field public static final int SAMARITAN = 126; // 0x7e
+    field public static final int SARATI = 94; // 0x5e
+    field public static final int SAURASHTRA = 111; // 0x6f
+    field public static final int SHARADA = 151; // 0x97
+    field public static final int SHAVIAN = 51; // 0x33
+    field public static final int SIDDHAM = 166; // 0xa6
+    field public static final int SIGN_WRITING = 112; // 0x70
+    field public static final int SIMPLIFIED_HAN = 73; // 0x49
+    field public static final int SINDHI = 145; // 0x91
+    field public static final int SINHALA = 33; // 0x21
+    field public static final int SORA_SOMPENG = 152; // 0x98
+    field public static final int SUNDANESE = 113; // 0x71
+    field public static final int SYLOTI_NAGRI = 58; // 0x3a
+    field public static final int SYMBOLS = 129; // 0x81
+    field public static final int SYRIAC = 34; // 0x22
+    field public static final int TAGALOG = 42; // 0x2a
+    field public static final int TAGBANWA = 45; // 0x2d
+    field public static final int TAI_LE = 52; // 0x34
+    field public static final int TAI_VIET = 127; // 0x7f
+    field public static final int TAKRI = 153; // 0x99
+    field public static final int TAMIL = 35; // 0x23
+    field public static final int TANGUT = 154; // 0x9a
+    field public static final int TELUGU = 36; // 0x24
+    field public static final int TENGWAR = 98; // 0x62
+    field public static final int THAANA = 37; // 0x25
+    field public static final int THAI = 38; // 0x26
+    field public static final int TIBETAN = 39; // 0x27
+    field public static final int TIFINAGH = 60; // 0x3c
+    field public static final int TIRHUTA = 158; // 0x9e
+    field public static final int TRADITIONAL_HAN = 74; // 0x4a
+    field public static final int UCAS = 40; // 0x28
+    field public static final int UGARITIC = 53; // 0x35
+    field public static final int UNKNOWN = 103; // 0x67
+    field public static final int UNWRITTEN_LANGUAGES = 102; // 0x66
+    field public static final int VAI = 99; // 0x63
+    field public static final int VISIBLE_SPEECH = 100; // 0x64
+    field public static final int WARANG_CITI = 146; // 0x92
+    field public static final int WESTERN_SYRIAC = 96; // 0x60
+    field public static final int WOLEAI = 155; // 0x9b
+    field public static final int YI = 41; // 0x29
+  }
+
+  public static final class UScript.ScriptUsage extends java.lang.Enum {
+    method public static android.icu.lang.UScript.ScriptUsage valueOf(java.lang.String);
+    method public static final android.icu.lang.UScript.ScriptUsage[] values();
+    enum_constant public static final android.icu.lang.UScript.ScriptUsage ASPIRATIONAL;
+    enum_constant public static final android.icu.lang.UScript.ScriptUsage EXCLUDED;
+    enum_constant public static final android.icu.lang.UScript.ScriptUsage LIMITED_USE;
+    enum_constant public static final android.icu.lang.UScript.ScriptUsage NOT_ENCODED;
+    enum_constant public static final android.icu.lang.UScript.ScriptUsage RECOMMENDED;
+    enum_constant public static final android.icu.lang.UScript.ScriptUsage UNKNOWN;
+  }
+
+}
+
+package android.icu.math {
+
+  public class BigDecimal extends java.lang.Number implements java.lang.Comparable java.io.Serializable {
+    ctor public BigDecimal(java.math.BigDecimal);
+    ctor public BigDecimal(java.math.BigInteger);
+    ctor public BigDecimal(java.math.BigInteger, int);
+    ctor public BigDecimal(char[]);
+    ctor public BigDecimal(char[], int, int);
+    ctor public BigDecimal(double);
+    ctor public BigDecimal(int);
+    ctor public BigDecimal(long);
+    ctor public BigDecimal(java.lang.String);
+    method public android.icu.math.BigDecimal abs();
+    method public android.icu.math.BigDecimal abs(android.icu.math.MathContext);
+    method public android.icu.math.BigDecimal add(android.icu.math.BigDecimal);
+    method public android.icu.math.BigDecimal add(android.icu.math.BigDecimal, android.icu.math.MathContext);
+    method public byte byteValueExact();
+    method public int compareTo(android.icu.math.BigDecimal);
+    method public int compareTo(android.icu.math.BigDecimal, android.icu.math.MathContext);
+    method public android.icu.math.BigDecimal divide(android.icu.math.BigDecimal);
+    method public android.icu.math.BigDecimal divide(android.icu.math.BigDecimal, int);
+    method public android.icu.math.BigDecimal divide(android.icu.math.BigDecimal, int, int);
+    method public android.icu.math.BigDecimal divide(android.icu.math.BigDecimal, android.icu.math.MathContext);
+    method public android.icu.math.BigDecimal divideInteger(android.icu.math.BigDecimal);
+    method public android.icu.math.BigDecimal divideInteger(android.icu.math.BigDecimal, android.icu.math.MathContext);
+    method public double doubleValue();
+    method public float floatValue();
+    method public java.lang.String format(int, int);
+    method public java.lang.String format(int, int, int, int, int, int);
+    method public int intValue();
+    method public int intValueExact();
+    method public long longValue();
+    method public long longValueExact();
+    method public android.icu.math.BigDecimal max(android.icu.math.BigDecimal);
+    method public android.icu.math.BigDecimal max(android.icu.math.BigDecimal, android.icu.math.MathContext);
+    method public android.icu.math.BigDecimal min(android.icu.math.BigDecimal);
+    method public android.icu.math.BigDecimal min(android.icu.math.BigDecimal, android.icu.math.MathContext);
+    method public android.icu.math.BigDecimal movePointLeft(int);
+    method public android.icu.math.BigDecimal movePointRight(int);
+    method public android.icu.math.BigDecimal multiply(android.icu.math.BigDecimal);
+    method public android.icu.math.BigDecimal multiply(android.icu.math.BigDecimal, android.icu.math.MathContext);
+    method public android.icu.math.BigDecimal negate();
+    method public android.icu.math.BigDecimal negate(android.icu.math.MathContext);
+    method public android.icu.math.BigDecimal plus();
+    method public android.icu.math.BigDecimal plus(android.icu.math.MathContext);
+    method public android.icu.math.BigDecimal pow(android.icu.math.BigDecimal);
+    method public android.icu.math.BigDecimal pow(android.icu.math.BigDecimal, android.icu.math.MathContext);
+    method public android.icu.math.BigDecimal remainder(android.icu.math.BigDecimal);
+    method public android.icu.math.BigDecimal remainder(android.icu.math.BigDecimal, android.icu.math.MathContext);
+    method public int scale();
+    method public android.icu.math.BigDecimal setScale(int);
+    method public android.icu.math.BigDecimal setScale(int, int);
+    method public short shortValueExact();
+    method public int signum();
+    method public android.icu.math.BigDecimal subtract(android.icu.math.BigDecimal);
+    method public android.icu.math.BigDecimal subtract(android.icu.math.BigDecimal, android.icu.math.MathContext);
+    method public java.math.BigDecimal toBigDecimal();
+    method public java.math.BigInteger toBigInteger();
+    method public java.math.BigInteger toBigIntegerExact();
+    method public char[] toCharArray();
+    method public java.math.BigInteger unscaledValue();
+    method public static android.icu.math.BigDecimal valueOf(double);
+    method public static android.icu.math.BigDecimal valueOf(long);
+    method public static android.icu.math.BigDecimal valueOf(long, int);
+    field public static final android.icu.math.BigDecimal ONE;
+    field public static final int ROUND_CEILING = 2; // 0x2
+    field public static final int ROUND_DOWN = 1; // 0x1
+    field public static final int ROUND_FLOOR = 3; // 0x3
+    field public static final int ROUND_HALF_DOWN = 5; // 0x5
+    field public static final int ROUND_HALF_EVEN = 6; // 0x6
+    field public static final int ROUND_HALF_UP = 4; // 0x4
+    field public static final int ROUND_UNNECESSARY = 7; // 0x7
+    field public static final int ROUND_UP = 0; // 0x0
+    field public static final android.icu.math.BigDecimal TEN;
+    field public static final android.icu.math.BigDecimal ZERO;
+  }
+
+  public final class MathContext implements java.io.Serializable {
+    ctor public MathContext(int);
+    ctor public MathContext(int, int);
+    ctor public MathContext(int, int, boolean);
+    ctor public MathContext(int, int, boolean, int);
+    method public int getDigits();
+    method public int getForm();
+    method public boolean getLostDigits();
+    method public int getRoundingMode();
+    field public static final android.icu.math.MathContext DEFAULT;
+    field public static final int ENGINEERING = 2; // 0x2
+    field public static final int PLAIN = 0; // 0x0
+    field public static final int ROUND_CEILING = 2; // 0x2
+    field public static final int ROUND_DOWN = 1; // 0x1
+    field public static final int ROUND_FLOOR = 3; // 0x3
+    field public static final int ROUND_HALF_DOWN = 5; // 0x5
+    field public static final int ROUND_HALF_EVEN = 6; // 0x6
+    field public static final int ROUND_HALF_UP = 4; // 0x4
+    field public static final int ROUND_UNNECESSARY = 7; // 0x7
+    field public static final int ROUND_UP = 0; // 0x0
+    field public static final int SCIENTIFIC = 1; // 0x1
+  }
+
+}
+
+package android.icu.text {
+
+  public final class AlphabeticIndex implements java.lang.Iterable {
+    ctor public AlphabeticIndex(android.icu.util.ULocale);
+    ctor public AlphabeticIndex(java.util.Locale);
+    ctor public AlphabeticIndex(android.icu.text.RuleBasedCollator);
+    method public android.icu.text.AlphabeticIndex<V> addLabels(android.icu.text.UnicodeSet);
+    method public android.icu.text.AlphabeticIndex<V> addLabels(android.icu.util.ULocale...);
+    method public android.icu.text.AlphabeticIndex<V> addLabels(java.util.Locale...);
+    method public android.icu.text.AlphabeticIndex<V> addRecord(java.lang.CharSequence, V);
+    method public android.icu.text.AlphabeticIndex.ImmutableIndex<V> buildImmutableIndex();
+    method public android.icu.text.AlphabeticIndex<V> clearRecords();
+    method public int getBucketCount();
+    method public int getBucketIndex(java.lang.CharSequence);
+    method public java.util.List<java.lang.String> getBucketLabels();
+    method public android.icu.text.RuleBasedCollator getCollator();
+    method public java.lang.String getInflowLabel();
+    method public int getMaxLabelCount();
+    method public java.lang.String getOverflowLabel();
+    method public int getRecordCount();
+    method public java.lang.String getUnderflowLabel();
+    method public java.util.Iterator<android.icu.text.AlphabeticIndex.Bucket<V>> iterator();
+    method public android.icu.text.AlphabeticIndex<V> setInflowLabel(java.lang.String);
+    method public android.icu.text.AlphabeticIndex<V> setMaxLabelCount(int);
+    method public android.icu.text.AlphabeticIndex<V> setOverflowLabel(java.lang.String);
+    method public android.icu.text.AlphabeticIndex<V> setUnderflowLabel(java.lang.String);
+  }
+
+  public static class AlphabeticIndex.Bucket implements java.lang.Iterable {
+    method public java.lang.String getLabel();
+    method public android.icu.text.AlphabeticIndex.Bucket.LabelType getLabelType();
+    method public java.util.Iterator<android.icu.text.AlphabeticIndex.Record<V>> iterator();
+    method public int size();
+  }
+
+  public static final class AlphabeticIndex.Bucket.LabelType extends java.lang.Enum {
+    method public static android.icu.text.AlphabeticIndex.Bucket.LabelType valueOf(java.lang.String);
+    method public static final android.icu.text.AlphabeticIndex.Bucket.LabelType[] values();
+    enum_constant public static final android.icu.text.AlphabeticIndex.Bucket.LabelType INFLOW;
+    enum_constant public static final android.icu.text.AlphabeticIndex.Bucket.LabelType NORMAL;
+    enum_constant public static final android.icu.text.AlphabeticIndex.Bucket.LabelType OVERFLOW;
+    enum_constant public static final android.icu.text.AlphabeticIndex.Bucket.LabelType UNDERFLOW;
+  }
+
+  public static final class AlphabeticIndex.ImmutableIndex implements java.lang.Iterable {
+    method public android.icu.text.AlphabeticIndex.Bucket<V> getBucket(int);
+    method public int getBucketCount();
+    method public int getBucketIndex(java.lang.CharSequence);
+    method public java.util.Iterator<android.icu.text.AlphabeticIndex.Bucket<V>> iterator();
+  }
+
+  public static class AlphabeticIndex.Record {
+    method public V getData();
+    method public java.lang.CharSequence getName();
+  }
+
+  public abstract class BreakIterator implements java.lang.Cloneable {
+    ctor protected BreakIterator();
+    method public java.lang.Object clone();
+    method public abstract int current();
+    method public abstract int first();
+    method public abstract int following(int);
+    method public static synchronized java.util.Locale[] getAvailableLocales();
+    method public static android.icu.text.BreakIterator getCharacterInstance();
+    method public static android.icu.text.BreakIterator getCharacterInstance(java.util.Locale);
+    method public static android.icu.text.BreakIterator getCharacterInstance(android.icu.util.ULocale);
+    method public static android.icu.text.BreakIterator getLineInstance();
+    method public static android.icu.text.BreakIterator getLineInstance(java.util.Locale);
+    method public static android.icu.text.BreakIterator getLineInstance(android.icu.util.ULocale);
+    method public int getRuleStatus();
+    method public int getRuleStatusVec(int[]);
+    method public static android.icu.text.BreakIterator getSentenceInstance();
+    method public static android.icu.text.BreakIterator getSentenceInstance(java.util.Locale);
+    method public static android.icu.text.BreakIterator getSentenceInstance(android.icu.util.ULocale);
+    method public abstract java.text.CharacterIterator getText();
+    method public static android.icu.text.BreakIterator getTitleInstance();
+    method public static android.icu.text.BreakIterator getTitleInstance(java.util.Locale);
+    method public static android.icu.text.BreakIterator getTitleInstance(android.icu.util.ULocale);
+    method public static android.icu.text.BreakIterator getWordInstance();
+    method public static android.icu.text.BreakIterator getWordInstance(java.util.Locale);
+    method public static android.icu.text.BreakIterator getWordInstance(android.icu.util.ULocale);
+    method public boolean isBoundary(int);
+    method public abstract int last();
+    method public abstract int next(int);
+    method public abstract int next();
+    method public int preceding(int);
+    method public abstract int previous();
+    method public static java.lang.Object registerInstance(android.icu.text.BreakIterator, java.util.Locale, int);
+    method public static java.lang.Object registerInstance(android.icu.text.BreakIterator, android.icu.util.ULocale, int);
+    method public void setText(java.lang.String);
+    method public abstract void setText(java.text.CharacterIterator);
+    method public static boolean unregister(java.lang.Object);
+    field public static final int DONE = -1; // 0xffffffff
+    field public static final int KIND_CHARACTER = 0; // 0x0
+    field public static final int KIND_LINE = 2; // 0x2
+    field public static final int KIND_SENTENCE = 3; // 0x3
+    field public static final int KIND_TITLE = 4; // 0x4
+    field public static final int KIND_WORD = 1; // 0x1
+    field public static final int WORD_IDEO = 400; // 0x190
+    field public static final int WORD_IDEO_LIMIT = 500; // 0x1f4
+    field public static final int WORD_KANA = 300; // 0x12c
+    field public static final int WORD_KANA_LIMIT = 400; // 0x190
+    field public static final int WORD_LETTER = 200; // 0xc8
+    field public static final int WORD_LETTER_LIMIT = 300; // 0x12c
+    field public static final int WORD_NONE = 0; // 0x0
+    field public static final int WORD_NONE_LIMIT = 100; // 0x64
+    field public static final int WORD_NUMBER = 100; // 0x64
+    field public static final int WORD_NUMBER_LIMIT = 200; // 0xc8
+  }
+
+  public final class CollationElementIterator {
+    method public int getMaxExpansion(int);
+    method public int getOffset();
+    method public int next();
+    method public int previous();
+    method public static final int primaryOrder(int);
+    method public void reset();
+    method public static final int secondaryOrder(int);
+    method public void setOffset(int);
+    method public void setText(java.lang.String);
+    method public void setText(android.icu.text.UCharacterIterator);
+    method public void setText(java.text.CharacterIterator);
+    method public static final int tertiaryOrder(int);
+    field public static final int IGNORABLE = 0; // 0x0
+    field public static final int NULLORDER = -1; // 0xffffffff
+  }
+
+  public final class CollationKey implements java.lang.Comparable {
+    ctor public CollationKey(java.lang.String, byte[]);
+    ctor public CollationKey(java.lang.String, android.icu.text.RawCollationKey);
+    method public int compareTo(android.icu.text.CollationKey);
+    method public boolean equals(android.icu.text.CollationKey);
+    method public android.icu.text.CollationKey getBound(int, int);
+    method public java.lang.String getSourceString();
+    method public android.icu.text.CollationKey merge(android.icu.text.CollationKey);
+    method public byte[] toByteArray();
+  }
+
+  public static final class CollationKey.BoundMode {
+    field public static final int COUNT = 3; // 0x3
+    field public static final int LOWER = 0; // 0x0
+    field public static final int UPPER = 1; // 0x1
+    field public static final int UPPER_LONG = 2; // 0x2
+  }
+
+  public abstract class Collator implements java.lang.Cloneable java.util.Comparator android.icu.util.Freezable {
+    ctor protected Collator();
+    method public java.lang.Object clone() throws java.lang.CloneNotSupportedException;
+    method public android.icu.text.Collator cloneAsThawed();
+    method public abstract int compare(java.lang.String, java.lang.String);
+    method public int compare(java.lang.Object, java.lang.Object);
+    method public boolean equals(java.lang.String, java.lang.String);
+    method public android.icu.text.Collator freeze();
+    method public static java.util.Locale[] getAvailableLocales();
+    method public static final android.icu.util.ULocale[] getAvailableULocales();
+    method public abstract android.icu.text.CollationKey getCollationKey(java.lang.String);
+    method public int getDecomposition();
+    method public static java.lang.String getDisplayName(java.util.Locale, java.util.Locale);
+    method public static java.lang.String getDisplayName(android.icu.util.ULocale, android.icu.util.ULocale);
+    method public static java.lang.String getDisplayName(java.util.Locale);
+    method public static java.lang.String getDisplayName(android.icu.util.ULocale);
+    method public static int[] getEquivalentReorderCodes(int);
+    method public static final android.icu.util.ULocale getFunctionalEquivalent(java.lang.String, android.icu.util.ULocale, boolean[]);
+    method public static final android.icu.util.ULocale getFunctionalEquivalent(java.lang.String, android.icu.util.ULocale);
+    method public static final android.icu.text.Collator getInstance();
+    method public static final android.icu.text.Collator getInstance(android.icu.util.ULocale);
+    method public static final android.icu.text.Collator getInstance(java.util.Locale);
+    method public static final java.lang.String[] getKeywordValues(java.lang.String);
+    method public static final java.lang.String[] getKeywordValuesForLocale(java.lang.String, android.icu.util.ULocale, boolean);
+    method public static final java.lang.String[] getKeywords();
+    method public int getMaxVariable();
+    method public abstract android.icu.text.RawCollationKey getRawCollationKey(java.lang.String, android.icu.text.RawCollationKey);
+    method public int[] getReorderCodes();
+    method public int getStrength();
+    method public android.icu.text.UnicodeSet getTailoredSet();
+    method public abstract android.icu.util.VersionInfo getUCAVersion();
+    method public abstract int getVariableTop();
+    method public abstract android.icu.util.VersionInfo getVersion();
+    method public boolean isFrozen();
+    method public static final java.lang.Object registerFactory(android.icu.text.Collator.CollatorFactory);
+    method public static final java.lang.Object registerInstance(android.icu.text.Collator, android.icu.util.ULocale);
+    method public void setDecomposition(int);
+    method public android.icu.text.Collator setMaxVariable(int);
+    method public void setReorderCodes(int...);
+    method public void setStrength(int);
+    method public static final boolean unregister(java.lang.Object);
+    field public static final int CANONICAL_DECOMPOSITION = 17; // 0x11
+    field public static final int FULL_DECOMPOSITION = 15; // 0xf
+    field public static final int IDENTICAL = 15; // 0xf
+    field public static final int NO_DECOMPOSITION = 16; // 0x10
+    field public static final int PRIMARY = 0; // 0x0
+    field public static final int QUATERNARY = 3; // 0x3
+    field public static final int SECONDARY = 1; // 0x1
+    field public static final int TERTIARY = 2; // 0x2
+  }
+
+  public static abstract class Collator.CollatorFactory {
+    ctor protected Collator.CollatorFactory();
+    method public android.icu.text.Collator createCollator(android.icu.util.ULocale);
+    method public android.icu.text.Collator createCollator(java.util.Locale);
+    method public java.lang.String getDisplayName(java.util.Locale, java.util.Locale);
+    method public java.lang.String getDisplayName(android.icu.util.ULocale, android.icu.util.ULocale);
+    method public abstract java.util.Set<java.lang.String> getSupportedLocaleIDs();
+    method public boolean visible();
+  }
+
+  public static abstract interface Collator.ReorderCodes {
+    field public static final int CURRENCY = 4099; // 0x1003
+    field public static final int DEFAULT = -1; // 0xffffffff
+    field public static final int DIGIT = 4100; // 0x1004
+    field public static final int FIRST = 4096; // 0x1000
+    field public static final int LIMIT = 4101; // 0x1005
+    field public static final int NONE = 103; // 0x67
+    field public static final int OTHERS = 103; // 0x67
+    field public static final int PUNCTUATION = 4097; // 0x1001
+    field public static final int SPACE = 4096; // 0x1000
+    field public static final int SYMBOL = 4098; // 0x1002
+  }
+
+  public class CompactDecimalFormat extends android.icu.text.DecimalFormat {
+    method public static android.icu.text.CompactDecimalFormat getInstance(android.icu.util.ULocale, android.icu.text.CompactDecimalFormat.CompactStyle);
+    method public static android.icu.text.CompactDecimalFormat getInstance(java.util.Locale, android.icu.text.CompactDecimalFormat.CompactStyle);
+  }
+
+  public static final class CompactDecimalFormat.CompactStyle extends java.lang.Enum {
+    method public static android.icu.text.CompactDecimalFormat.CompactStyle valueOf(java.lang.String);
+    method public static final android.icu.text.CompactDecimalFormat.CompactStyle[] values();
+    enum_constant public static final android.icu.text.CompactDecimalFormat.CompactStyle LONG;
+    enum_constant public static final android.icu.text.CompactDecimalFormat.CompactStyle SHORT;
+  }
+
+  public class CurrencyPluralInfo implements java.lang.Cloneable java.io.Serializable {
+    ctor public CurrencyPluralInfo();
+    ctor public CurrencyPluralInfo(java.util.Locale);
+    ctor public CurrencyPluralInfo(android.icu.util.ULocale);
+    method public java.lang.Object clone();
+    method public java.lang.String getCurrencyPluralPattern(java.lang.String);
+    method public static android.icu.text.CurrencyPluralInfo getInstance();
+    method public static android.icu.text.CurrencyPluralInfo getInstance(java.util.Locale);
+    method public static android.icu.text.CurrencyPluralInfo getInstance(android.icu.util.ULocale);
+    method public android.icu.util.ULocale getLocale();
+    method public android.icu.text.PluralRules getPluralRules();
+    method public void setCurrencyPluralPattern(java.lang.String, java.lang.String);
+    method public void setLocale(android.icu.util.ULocale);
+    method public void setPluralRules(java.lang.String);
+  }
+
+  public abstract class DateFormat extends android.icu.text.UFormat {
+    ctor protected DateFormat();
+    method public final java.lang.StringBuffer format(java.lang.Object, java.lang.StringBuffer, java.text.FieldPosition);
+    method public abstract java.lang.StringBuffer format(android.icu.util.Calendar, java.lang.StringBuffer, java.text.FieldPosition);
+    method public java.lang.StringBuffer format(java.util.Date, java.lang.StringBuffer, java.text.FieldPosition);
+    method public final java.lang.String format(java.util.Date);
+    method public static java.util.Locale[] getAvailableLocales();
+    method public boolean getBooleanAttribute(android.icu.text.DateFormat.BooleanAttribute);
+    method public android.icu.util.Calendar getCalendar();
+    method public android.icu.text.DisplayContext getContext(android.icu.text.DisplayContext.Type);
+    method public static final android.icu.text.DateFormat getDateInstance();
+    method public static final android.icu.text.DateFormat getDateInstance(int);
+    method public static final android.icu.text.DateFormat getDateInstance(int, java.util.Locale);
+    method public static final android.icu.text.DateFormat getDateInstance(int, android.icu.util.ULocale);
+    method public static final android.icu.text.DateFormat getDateInstance(android.icu.util.Calendar, int, java.util.Locale);
+    method public static final android.icu.text.DateFormat getDateInstance(android.icu.util.Calendar, int, android.icu.util.ULocale);
+    method public static final android.icu.text.DateFormat getDateInstance(android.icu.util.Calendar, int);
+    method public static final android.icu.text.DateFormat getDateTimeInstance();
+    method public static final android.icu.text.DateFormat getDateTimeInstance(int, int);
+    method public static final android.icu.text.DateFormat getDateTimeInstance(int, int, java.util.Locale);
+    method public static final android.icu.text.DateFormat getDateTimeInstance(int, int, android.icu.util.ULocale);
+    method public static final android.icu.text.DateFormat getDateTimeInstance(android.icu.util.Calendar, int, int, java.util.Locale);
+    method public static final android.icu.text.DateFormat getDateTimeInstance(android.icu.util.Calendar, int, int, android.icu.util.ULocale);
+    method public static final android.icu.text.DateFormat getDateTimeInstance(android.icu.util.Calendar, int, int);
+    method public static final android.icu.text.DateFormat getInstance();
+    method public static final android.icu.text.DateFormat getInstance(android.icu.util.Calendar, java.util.Locale);
+    method public static final android.icu.text.DateFormat getInstance(android.icu.util.Calendar);
+    method public static final android.icu.text.DateFormat getInstanceForSkeleton(java.lang.String);
+    method public static final android.icu.text.DateFormat getInstanceForSkeleton(java.lang.String, java.util.Locale);
+    method public static final android.icu.text.DateFormat getInstanceForSkeleton(java.lang.String, android.icu.util.ULocale);
+    method public static final android.icu.text.DateFormat getInstanceForSkeleton(android.icu.util.Calendar, java.lang.String, java.util.Locale);
+    method public static final android.icu.text.DateFormat getInstanceForSkeleton(android.icu.util.Calendar, java.lang.String, android.icu.util.ULocale);
+    method public android.icu.text.NumberFormat getNumberFormat();
+    method public static final android.icu.text.DateFormat getPatternInstance(java.lang.String);
+    method public static final android.icu.text.DateFormat getPatternInstance(java.lang.String, java.util.Locale);
+    method public static final android.icu.text.DateFormat getPatternInstance(java.lang.String, android.icu.util.ULocale);
+    method public static final android.icu.text.DateFormat getPatternInstance(android.icu.util.Calendar, java.lang.String, java.util.Locale);
+    method public static final android.icu.text.DateFormat getPatternInstance(android.icu.util.Calendar, java.lang.String, android.icu.util.ULocale);
+    method public static final android.icu.text.DateFormat getTimeInstance();
+    method public static final android.icu.text.DateFormat getTimeInstance(int);
+    method public static final android.icu.text.DateFormat getTimeInstance(int, java.util.Locale);
+    method public static final android.icu.text.DateFormat getTimeInstance(int, android.icu.util.ULocale);
+    method public static final android.icu.text.DateFormat getTimeInstance(android.icu.util.Calendar, int, java.util.Locale);
+    method public static final android.icu.text.DateFormat getTimeInstance(android.icu.util.Calendar, int, android.icu.util.ULocale);
+    method public static final android.icu.text.DateFormat getTimeInstance(android.icu.util.Calendar, int);
+    method public android.icu.util.TimeZone getTimeZone();
+    method public boolean isCalendarLenient();
+    method public boolean isLenient();
+    method public java.util.Date parse(java.lang.String) throws java.text.ParseException;
+    method public abstract void parse(java.lang.String, android.icu.util.Calendar, java.text.ParsePosition);
+    method public java.util.Date parse(java.lang.String, java.text.ParsePosition);
+    method public java.lang.Object parseObject(java.lang.String, java.text.ParsePosition);
+    method public android.icu.text.DateFormat setBooleanAttribute(android.icu.text.DateFormat.BooleanAttribute, boolean);
+    method public void setCalendar(android.icu.util.Calendar);
+    method public void setCalendarLenient(boolean);
+    method public void setContext(android.icu.text.DisplayContext);
+    method public void setLenient(boolean);
+    method public void setNumberFormat(android.icu.text.NumberFormat);
+    method public void setTimeZone(android.icu.util.TimeZone);
+    field public static final java.lang.String ABBR_GENERIC_TZ = "v";
+    field public static final java.lang.String ABBR_MONTH = "MMM";
+    field public static final java.lang.String ABBR_MONTH_DAY = "MMMd";
+    field public static final java.lang.String ABBR_MONTH_WEEKDAY_DAY = "MMMEd";
+    field public static final java.lang.String ABBR_QUARTER = "QQQ";
+    field public static final java.lang.String ABBR_SPECIFIC_TZ = "z";
+    field public static final java.lang.String ABBR_UTC_TZ = "ZZZZ";
+    field public static final java.lang.String ABBR_WEEKDAY = "E";
+    field public static final int AM_PM_FIELD = 14; // 0xe
+    field public static final int DATE_FIELD = 3; // 0x3
+    field public static final java.lang.String DAY = "d";
+    field public static final int DAY_OF_WEEK_FIELD = 9; // 0x9
+    field public static final int DAY_OF_WEEK_IN_MONTH_FIELD = 11; // 0xb
+    field public static final int DAY_OF_YEAR_FIELD = 10; // 0xa
+    field public static final int DEFAULT = 2; // 0x2
+    field public static final int DOW_LOCAL_FIELD = 19; // 0x13
+    field public static final int ERA_FIELD = 0; // 0x0
+    field public static final int EXTENDED_YEAR_FIELD = 20; // 0x14
+    field public static final int FIELD_COUNT = 36; // 0x24
+    field public static final int FRACTIONAL_SECOND_FIELD = 8; // 0x8
+    field public static final int FULL = 0; // 0x0
+    field public static final java.lang.String GENERIC_TZ = "vvvv";
+    field public static final java.lang.String HOUR = "j";
+    field public static final int HOUR0_FIELD = 16; // 0x10
+    field public static final int HOUR1_FIELD = 15; // 0xf
+    field public static final java.lang.String HOUR24 = "H";
+    field public static final java.lang.String HOUR24_MINUTE = "Hm";
+    field public static final java.lang.String HOUR24_MINUTE_SECOND = "Hms";
+    field public static final java.lang.String HOUR_MINUTE = "jm";
+    field public static final java.lang.String HOUR_MINUTE_SECOND = "jms";
+    field public static final int HOUR_OF_DAY0_FIELD = 5; // 0x5
+    field public static final int HOUR_OF_DAY1_FIELD = 4; // 0x4
+    field public static final int JULIAN_DAY_FIELD = 21; // 0x15
+    field public static final java.lang.String LOCATION_TZ = "VVVV";
+    field public static final int LONG = 1; // 0x1
+    field public static final int MEDIUM = 2; // 0x2
+    field public static final int MILLISECONDS_IN_DAY_FIELD = 22; // 0x16
+    field public static final int MILLISECOND_FIELD = 8; // 0x8
+    field public static final java.lang.String MINUTE = "m";
+    field public static final int MINUTE_FIELD = 6; // 0x6
+    field public static final java.lang.String MINUTE_SECOND = "ms";
+    field public static final java.lang.String MONTH = "MMMM";
+    field public static final java.lang.String MONTH_DAY = "MMMMd";
+    field public static final int MONTH_FIELD = 2; // 0x2
+    field public static final java.lang.String MONTH_WEEKDAY_DAY = "MMMMEEEEd";
+    field public static final int NONE = -1; // 0xffffffff
+    field public static final java.lang.String NUM_MONTH = "M";
+    field public static final java.lang.String NUM_MONTH_DAY = "Md";
+    field public static final java.lang.String NUM_MONTH_WEEKDAY_DAY = "MEd";
+    field public static final java.lang.String QUARTER = "QQQQ";
+    field public static final int QUARTER_FIELD = 27; // 0x1b
+    field public static final int RELATIVE = 128; // 0x80
+    field public static final int RELATIVE_DEFAULT = 130; // 0x82
+    field public static final int RELATIVE_FULL = 128; // 0x80
+    field public static final int RELATIVE_LONG = 129; // 0x81
+    field public static final int RELATIVE_MEDIUM = 130; // 0x82
+    field public static final int RELATIVE_SHORT = 131; // 0x83
+    field public static final java.lang.String SECOND = "s";
+    field public static final int SECOND_FIELD = 7; // 0x7
+    field public static final int SHORT = 3; // 0x3
+    field public static final java.lang.String SPECIFIC_TZ = "zzzz";
+    field public static final int STANDALONE_DAY_FIELD = 25; // 0x19
+    field public static final int STANDALONE_MONTH_FIELD = 26; // 0x1a
+    field public static final int STANDALONE_QUARTER_FIELD = 28; // 0x1c
+    field public static final int TIMEZONE_FIELD = 17; // 0x11
+    field public static final int TIMEZONE_GENERIC_FIELD = 24; // 0x18
+    field public static final int TIMEZONE_ISO_FIELD = 32; // 0x20
+    field public static final int TIMEZONE_ISO_LOCAL_FIELD = 33; // 0x21
+    field public static final int TIMEZONE_LOCALIZED_GMT_OFFSET_FIELD = 31; // 0x1f
+    field public static final int TIMEZONE_RFC_FIELD = 23; // 0x17
+    field public static final int TIMEZONE_SPECIAL_FIELD = 29; // 0x1d
+    field public static final java.lang.String WEEKDAY = "EEEE";
+    field public static final int WEEK_OF_MONTH_FIELD = 13; // 0xd
+    field public static final int WEEK_OF_YEAR_FIELD = 12; // 0xc
+    field public static final java.lang.String YEAR = "y";
+    field public static final java.lang.String YEAR_ABBR_MONTH = "yMMM";
+    field public static final java.lang.String YEAR_ABBR_MONTH_DAY = "yMMMd";
+    field public static final java.lang.String YEAR_ABBR_MONTH_WEEKDAY_DAY = "yMMMEd";
+    field public static final java.lang.String YEAR_ABBR_QUARTER = "yQQQ";
+    field public static final int YEAR_FIELD = 1; // 0x1
+    field public static final java.lang.String YEAR_MONTH = "yMMMM";
+    field public static final java.lang.String YEAR_MONTH_DAY = "yMMMMd";
+    field public static final java.lang.String YEAR_MONTH_WEEKDAY_DAY = "yMMMMEEEEd";
+    field public static final int YEAR_NAME_FIELD = 30; // 0x1e
+    field public static final java.lang.String YEAR_NUM_MONTH = "yM";
+    field public static final java.lang.String YEAR_NUM_MONTH_DAY = "yMd";
+    field public static final java.lang.String YEAR_NUM_MONTH_WEEKDAY_DAY = "yMEd";
+    field public static final java.lang.String YEAR_QUARTER = "yQQQQ";
+    field public static final int YEAR_WOY_FIELD = 18; // 0x12
+    field protected android.icu.util.Calendar calendar;
+    field protected android.icu.text.NumberFormat numberFormat;
+  }
+
+  public static final class DateFormat.BooleanAttribute extends java.lang.Enum {
+    method public static android.icu.text.DateFormat.BooleanAttribute valueOf(java.lang.String);
+    method public static final android.icu.text.DateFormat.BooleanAttribute[] values();
+    enum_constant public static final android.icu.text.DateFormat.BooleanAttribute PARSE_ALLOW_NUMERIC;
+    enum_constant public static final android.icu.text.DateFormat.BooleanAttribute PARSE_ALLOW_WHITESPACE;
+  }
+
+  public static class DateFormat.Field extends java.text.Format.Field {
+    ctor protected DateFormat.Field(java.lang.String, int);
+    method public int getCalendarField();
+    method public static android.icu.text.DateFormat.Field ofCalendarField(int);
+    field public static final android.icu.text.DateFormat.Field AM_PM;
+    field public static final android.icu.text.DateFormat.Field DAY_OF_MONTH;
+    field public static final android.icu.text.DateFormat.Field DAY_OF_WEEK;
+    field public static final android.icu.text.DateFormat.Field DAY_OF_WEEK_IN_MONTH;
+    field public static final android.icu.text.DateFormat.Field DAY_OF_YEAR;
+    field public static final android.icu.text.DateFormat.Field DOW_LOCAL;
+    field public static final android.icu.text.DateFormat.Field ERA;
+    field public static final android.icu.text.DateFormat.Field EXTENDED_YEAR;
+    field public static final android.icu.text.DateFormat.Field HOUR0;
+    field public static final android.icu.text.DateFormat.Field HOUR1;
+    field public static final android.icu.text.DateFormat.Field HOUR_OF_DAY0;
+    field public static final android.icu.text.DateFormat.Field HOUR_OF_DAY1;
+    field public static final android.icu.text.DateFormat.Field JULIAN_DAY;
+    field public static final android.icu.text.DateFormat.Field MILLISECOND;
+    field public static final android.icu.text.DateFormat.Field MILLISECONDS_IN_DAY;
+    field public static final android.icu.text.DateFormat.Field MINUTE;
+    field public static final android.icu.text.DateFormat.Field MONTH;
+    field public static final android.icu.text.DateFormat.Field QUARTER;
+    field public static final android.icu.text.DateFormat.Field SECOND;
+    field public static final android.icu.text.DateFormat.Field TIME_ZONE;
+    field public static final android.icu.text.DateFormat.Field WEEK_OF_MONTH;
+    field public static final android.icu.text.DateFormat.Field WEEK_OF_YEAR;
+    field public static final android.icu.text.DateFormat.Field YEAR;
+    field public static final android.icu.text.DateFormat.Field YEAR_WOY;
+  }
+
+  public class DateFormatSymbols implements java.lang.Cloneable java.io.Serializable {
+    ctor public DateFormatSymbols();
+    ctor public DateFormatSymbols(java.util.Locale);
+    ctor public DateFormatSymbols(android.icu.util.ULocale);
+    ctor public DateFormatSymbols(android.icu.util.Calendar, java.util.Locale);
+    ctor public DateFormatSymbols(android.icu.util.Calendar, android.icu.util.ULocale);
+    ctor public DateFormatSymbols(java.lang.Class<? extends android.icu.util.Calendar>, java.util.Locale);
+    ctor public DateFormatSymbols(java.lang.Class<? extends android.icu.util.Calendar>, android.icu.util.ULocale);
+    ctor public DateFormatSymbols(java.util.ResourceBundle, java.util.Locale);
+    ctor public DateFormatSymbols(java.util.ResourceBundle, android.icu.util.ULocale);
+    method public java.lang.Object clone();
+    method public java.lang.String[] getAmPmStrings();
+    method public static java.util.Locale[] getAvailableLocales();
+    method public java.lang.String[] getEraNames();
+    method public java.lang.String[] getEras();
+    method public static android.icu.text.DateFormatSymbols getInstance();
+    method public static android.icu.text.DateFormatSymbols getInstance(java.util.Locale);
+    method public static android.icu.text.DateFormatSymbols getInstance(android.icu.util.ULocale);
+    method public java.lang.String getLocalPatternChars();
+    method public java.lang.String[] getMonths();
+    method public java.lang.String[] getMonths(int, int);
+    method public java.lang.String[] getQuarters(int, int);
+    method public java.lang.String[] getShortMonths();
+    method public java.lang.String[] getShortWeekdays();
+    method public java.lang.String[] getWeekdays();
+    method public java.lang.String[] getWeekdays(int, int);
+    method public java.lang.String[] getYearNames(int, int);
+    method public java.lang.String[] getZodiacNames(int, int);
+    method public java.lang.String[][] getZoneStrings();
+    method protected void initializeData(android.icu.util.ULocale, java.lang.String);
+    method public void setAmPmStrings(java.lang.String[]);
+    method public void setEraNames(java.lang.String[]);
+    method public void setEras(java.lang.String[]);
+    method public void setLocalPatternChars(java.lang.String);
+    method public void setMonths(java.lang.String[]);
+    method public void setMonths(java.lang.String[], int, int);
+    method public void setQuarters(java.lang.String[], int, int);
+    method public void setShortMonths(java.lang.String[]);
+    method public void setShortWeekdays(java.lang.String[]);
+    method public void setWeekdays(java.lang.String[], int, int);
+    method public void setWeekdays(java.lang.String[]);
+    method public void setYearNames(java.lang.String[], int, int);
+    method public void setZodiacNames(java.lang.String[], int, int);
+    method public void setZoneStrings(java.lang.String[][]);
+    field public static final int ABBREVIATED = 0; // 0x0
+    field public static final int FORMAT = 0; // 0x0
+    field public static final int NARROW = 2; // 0x2
+    field public static final int SHORT = 3; // 0x3
+    field public static final int STANDALONE = 1; // 0x1
+    field public static final int WIDE = 1; // 0x1
+  }
+
+  public class DateIntervalFormat extends android.icu.text.UFormat {
+    method public final java.lang.StringBuffer format(java.lang.Object, java.lang.StringBuffer, java.text.FieldPosition);
+    method public final java.lang.StringBuffer format(android.icu.util.DateInterval, java.lang.StringBuffer, java.text.FieldPosition);
+    method public final java.lang.StringBuffer format(android.icu.util.Calendar, android.icu.util.Calendar, java.lang.StringBuffer, java.text.FieldPosition);
+    method public android.icu.text.DateFormat getDateFormat();
+    method public android.icu.text.DateIntervalInfo getDateIntervalInfo();
+    method public static final android.icu.text.DateIntervalFormat getInstance(java.lang.String);
+    method public static final android.icu.text.DateIntervalFormat getInstance(java.lang.String, java.util.Locale);
+    method public static final android.icu.text.DateIntervalFormat getInstance(java.lang.String, android.icu.util.ULocale);
+    method public static final android.icu.text.DateIntervalFormat getInstance(java.lang.String, android.icu.text.DateIntervalInfo);
+    method public static final android.icu.text.DateIntervalFormat getInstance(java.lang.String, java.util.Locale, android.icu.text.DateIntervalInfo);
+    method public static final android.icu.text.DateIntervalFormat getInstance(java.lang.String, android.icu.util.ULocale, android.icu.text.DateIntervalInfo);
+    method public android.icu.util.TimeZone getTimeZone();
+    method public deprecated java.lang.Object parseObject(java.lang.String, java.text.ParsePosition);
+    method public void setDateIntervalInfo(android.icu.text.DateIntervalInfo);
+    method public void setTimeZone(android.icu.util.TimeZone);
+  }
+
+  public class DateIntervalInfo implements java.lang.Cloneable android.icu.util.Freezable java.io.Serializable {
+    ctor public DateIntervalInfo(android.icu.util.ULocale);
+    ctor public DateIntervalInfo(java.util.Locale);
+    method public java.lang.Object clone();
+    method public android.icu.text.DateIntervalInfo cloneAsThawed();
+    method public android.icu.text.DateIntervalInfo freeze();
+    method public boolean getDefaultOrder();
+    method public java.lang.String getFallbackIntervalPattern();
+    method public android.icu.text.DateIntervalInfo.PatternInfo getIntervalPattern(java.lang.String, int);
+    method public boolean isFrozen();
+    method public void setFallbackIntervalPattern(java.lang.String);
+    method public void setIntervalPattern(java.lang.String, int, java.lang.String);
+  }
+
+  public static final class DateIntervalInfo.PatternInfo implements java.lang.Cloneable java.io.Serializable {
+    ctor public DateIntervalInfo.PatternInfo(java.lang.String, java.lang.String, boolean);
+    method public boolean firstDateInPtnIsLaterDate();
+    method public java.lang.String getFirstPart();
+    method public java.lang.String getSecondPart();
+  }
+
+  public class DateTimePatternGenerator implements java.lang.Cloneable android.icu.util.Freezable {
+    ctor protected DateTimePatternGenerator();
+    method public android.icu.text.DateTimePatternGenerator addPattern(java.lang.String, boolean, android.icu.text.DateTimePatternGenerator.PatternInfo);
+    method public java.lang.Object clone();
+    method public android.icu.text.DateTimePatternGenerator cloneAsThawed();
+    method public android.icu.text.DateTimePatternGenerator freeze();
+    method public java.lang.String getAppendItemFormat(int);
+    method public java.lang.String getAppendItemName(int);
+    method public java.lang.String getBaseSkeleton(java.lang.String);
+    method public java.util.Set<java.lang.String> getBaseSkeletons(java.util.Set<java.lang.String>);
+    method public java.lang.String getBestPattern(java.lang.String);
+    method public java.lang.String getBestPattern(java.lang.String, int);
+    method public java.lang.String getDateTimeFormat();
+    method public java.lang.String getDecimal();
+    method public static android.icu.text.DateTimePatternGenerator getEmptyInstance();
+    method public static android.icu.text.DateTimePatternGenerator getInstance();
+    method public static android.icu.text.DateTimePatternGenerator getInstance(android.icu.util.ULocale);
+    method public static android.icu.text.DateTimePatternGenerator getInstance(java.util.Locale);
+    method public java.lang.String getSkeleton(java.lang.String);
+    method public java.util.Map<java.lang.String, java.lang.String> getSkeletons(java.util.Map<java.lang.String, java.lang.String>);
+    method public boolean isFrozen();
+    method public java.lang.String replaceFieldTypes(java.lang.String, java.lang.String);
+    method public java.lang.String replaceFieldTypes(java.lang.String, java.lang.String, int);
+    method public void setAppendItemFormat(int, java.lang.String);
+    method public void setAppendItemName(int, java.lang.String);
+    method public void setDateTimeFormat(java.lang.String);
+    method public void setDecimal(java.lang.String);
+    field public static final int DAY = 7; // 0x7
+    field public static final int DAYPERIOD = 10; // 0xa
+    field public static final int DAY_OF_WEEK_IN_MONTH = 9; // 0x9
+    field public static final int DAY_OF_YEAR = 8; // 0x8
+    field public static final int ERA = 0; // 0x0
+    field public static final int FRACTIONAL_SECOND = 14; // 0xe
+    field public static final int HOUR = 11; // 0xb
+    field public static final int MATCH_ALL_FIELDS_LENGTH = 65535; // 0xffff
+    field public static final int MATCH_HOUR_FIELD_LENGTH = 2048; // 0x800
+    field public static final int MATCH_NO_OPTIONS = 0; // 0x0
+    field public static final int MINUTE = 12; // 0xc
+    field public static final int MONTH = 3; // 0x3
+    field public static final int QUARTER = 2; // 0x2
+    field public static final int SECOND = 13; // 0xd
+    field public static final int TYPE_LIMIT = 16; // 0x10
+    field public static final int WEEKDAY = 6; // 0x6
+    field public static final int WEEK_OF_MONTH = 5; // 0x5
+    field public static final int WEEK_OF_YEAR = 4; // 0x4
+    field public static final int YEAR = 1; // 0x1
+    field public static final int ZONE = 15; // 0xf
+  }
+
+  public static final class DateTimePatternGenerator.PatternInfo {
+    ctor public DateTimePatternGenerator.PatternInfo();
+    field public static final int BASE_CONFLICT = 1; // 0x1
+    field public static final int CONFLICT = 2; // 0x2
+    field public static final int OK = 0; // 0x0
+    field public java.lang.String conflictingPattern;
+    field public int status;
+  }
+
+  public class DecimalFormat extends android.icu.text.NumberFormat {
+    ctor public DecimalFormat();
+    ctor public DecimalFormat(java.lang.String);
+    ctor public DecimalFormat(java.lang.String, android.icu.text.DecimalFormatSymbols);
+    ctor public DecimalFormat(java.lang.String, android.icu.text.DecimalFormatSymbols, android.icu.text.CurrencyPluralInfo, int);
+    method public void applyLocalizedPattern(java.lang.String);
+    method public void applyPattern(java.lang.String);
+    method public boolean areSignificantDigitsUsed();
+    method public java.lang.StringBuffer format(double, java.lang.StringBuffer, java.text.FieldPosition);
+    method public java.lang.StringBuffer format(long, java.lang.StringBuffer, java.text.FieldPosition);
+    method public java.lang.StringBuffer format(java.math.BigInteger, java.lang.StringBuffer, java.text.FieldPosition);
+    method public java.lang.StringBuffer format(java.math.BigDecimal, java.lang.StringBuffer, java.text.FieldPosition);
+    method public java.lang.StringBuffer format(android.icu.math.BigDecimal, java.lang.StringBuffer, java.text.FieldPosition);
+    method public android.icu.text.CurrencyPluralInfo getCurrencyPluralInfo();
+    method public android.icu.util.Currency.CurrencyUsage getCurrencyUsage();
+    method public android.icu.text.DecimalFormatSymbols getDecimalFormatSymbols();
+    method public int getFormatWidth();
+    method public int getGroupingSize();
+    method public java.math.MathContext getMathContext();
+    method public android.icu.math.MathContext getMathContextICU();
+    method public int getMaximumSignificantDigits();
+    method public byte getMinimumExponentDigits();
+    method public int getMinimumSignificantDigits();
+    method public int getMultiplier();
+    method public java.lang.String getNegativePrefix();
+    method public java.lang.String getNegativeSuffix();
+    method public char getPadCharacter();
+    method public int getPadPosition();
+    method public int getParseMaxDigits();
+    method public java.lang.String getPositivePrefix();
+    method public java.lang.String getPositiveSuffix();
+    method public java.math.BigDecimal getRoundingIncrement();
+    method public int getSecondaryGroupingSize();
+    method public boolean isDecimalPatternMatchRequired();
+    method public boolean isDecimalSeparatorAlwaysShown();
+    method public boolean isExponentSignAlwaysShown();
+    method public boolean isParseBigDecimal();
+    method public boolean isScientificNotation();
+    method public java.lang.Number parse(java.lang.String, java.text.ParsePosition);
+    method public void setCurrencyPluralInfo(android.icu.text.CurrencyPluralInfo);
+    method public void setCurrencyUsage(android.icu.util.Currency.CurrencyUsage);
+    method public void setDecimalFormatSymbols(android.icu.text.DecimalFormatSymbols);
+    method public void setDecimalPatternMatchRequired(boolean);
+    method public void setDecimalSeparatorAlwaysShown(boolean);
+    method public void setExponentSignAlwaysShown(boolean);
+    method public void setFormatWidth(int);
+    method public void setGroupingSize(int);
+    method public void setMathContext(java.math.MathContext);
+    method public void setMathContextICU(android.icu.math.MathContext);
+    method public void setMaximumSignificantDigits(int);
+    method public void setMinimumExponentDigits(byte);
+    method public void setMinimumSignificantDigits(int);
+    method public void setMultiplier(int);
+    method public void setNegativePrefix(java.lang.String);
+    method public void setNegativeSuffix(java.lang.String);
+    method public void setPadCharacter(char);
+    method public void setPadPosition(int);
+    method public void setParseBigDecimal(boolean);
+    method public void setParseMaxDigits(int);
+    method public void setPositivePrefix(java.lang.String);
+    method public void setPositiveSuffix(java.lang.String);
+    method public void setRoundingIncrement(java.math.BigDecimal);
+    method public void setRoundingIncrement(android.icu.math.BigDecimal);
+    method public void setRoundingIncrement(double);
+    method public void setScientificNotation(boolean);
+    method public void setSecondaryGroupingSize(int);
+    method public void setSignificantDigitsUsed(boolean);
+    method public java.lang.String toLocalizedPattern();
+    method public java.lang.String toPattern();
+    field public static final int PAD_AFTER_PREFIX = 1; // 0x1
+    field public static final int PAD_AFTER_SUFFIX = 3; // 0x3
+    field public static final int PAD_BEFORE_PREFIX = 0; // 0x0
+    field public static final int PAD_BEFORE_SUFFIX = 2; // 0x2
+  }
+
+  public class DecimalFormatSymbols implements java.lang.Cloneable java.io.Serializable {
+    ctor public DecimalFormatSymbols();
+    ctor public DecimalFormatSymbols(java.util.Locale);
+    ctor public DecimalFormatSymbols(android.icu.util.ULocale);
+    method public java.lang.Object clone();
+    method public static java.util.Locale[] getAvailableLocales();
+    method public android.icu.util.Currency getCurrency();
+    method public java.lang.String getCurrencySymbol();
+    method public char getDecimalSeparator();
+    method public char getDigit();
+    method public char[] getDigits();
+    method public java.lang.String getExponentMultiplicationSign();
+    method public java.lang.String getExponentSeparator();
+    method public char getGroupingSeparator();
+    method public java.lang.String getInfinity();
+    method public static android.icu.text.DecimalFormatSymbols getInstance();
+    method public static android.icu.text.DecimalFormatSymbols getInstance(java.util.Locale);
+    method public static android.icu.text.DecimalFormatSymbols getInstance(android.icu.util.ULocale);
+    method public java.lang.String getInternationalCurrencySymbol();
+    method public java.util.Locale getLocale();
+    method public char getMinusSign();
+    method public char getMonetaryDecimalSeparator();
+    method public char getMonetaryGroupingSeparator();
+    method public java.lang.String getNaN();
+    method public char getPadEscape();
+    method public java.lang.String getPatternForCurrencySpacing(int, boolean);
+    method public char getPatternSeparator();
+    method public char getPerMill();
+    method public char getPercent();
+    method public char getPlusSign();
+    method public char getSignificantDigit();
+    method public android.icu.util.ULocale getULocale();
+    method public char getZeroDigit();
+    method public void setCurrency(android.icu.util.Currency);
+    method public void setCurrencySymbol(java.lang.String);
+    method public void setDecimalSeparator(char);
+    method public void setDigit(char);
+    method public void setExponentMultiplicationSign(java.lang.String);
+    method public void setExponentSeparator(java.lang.String);
+    method public void setGroupingSeparator(char);
+    method public void setInfinity(java.lang.String);
+    method public void setInternationalCurrencySymbol(java.lang.String);
+    method public void setMinusSign(char);
+    method public void setMonetaryDecimalSeparator(char);
+    method public void setMonetaryGroupingSeparator(char);
+    method public void setNaN(java.lang.String);
+    method public void setPadEscape(char);
+    method public void setPatternForCurrencySpacing(int, boolean, java.lang.String);
+    method public void setPatternSeparator(char);
+    method public void setPerMill(char);
+    method public void setPercent(char);
+    method public void setPlusSign(char);
+    method public void setSignificantDigit(char);
+    method public void setZeroDigit(char);
+    field public static final int CURRENCY_SPC_CURRENCY_MATCH = 0; // 0x0
+    field public static final int CURRENCY_SPC_INSERT = 2; // 0x2
+    field public static final int CURRENCY_SPC_SURROUNDING_MATCH = 1; // 0x1
+  }
+
+  public final class DisplayContext extends java.lang.Enum {
+    method public android.icu.text.DisplayContext.Type type();
+    method public int value();
+    method public static android.icu.text.DisplayContext valueOf(java.lang.String);
+    method public static final android.icu.text.DisplayContext[] values();
+    enum_constant public static final android.icu.text.DisplayContext CAPITALIZATION_FOR_BEGINNING_OF_SENTENCE;
+    enum_constant public static final android.icu.text.DisplayContext CAPITALIZATION_FOR_MIDDLE_OF_SENTENCE;
+    enum_constant public static final android.icu.text.DisplayContext CAPITALIZATION_FOR_STANDALONE;
+    enum_constant public static final android.icu.text.DisplayContext CAPITALIZATION_FOR_UI_LIST_OR_MENU;
+    enum_constant public static final android.icu.text.DisplayContext CAPITALIZATION_NONE;
+    enum_constant public static final android.icu.text.DisplayContext DIALECT_NAMES;
+    enum_constant public static final android.icu.text.DisplayContext LENGTH_FULL;
+    enum_constant public static final android.icu.text.DisplayContext LENGTH_SHORT;
+    enum_constant public static final android.icu.text.DisplayContext STANDARD_NAMES;
+  }
+
+  public static final class DisplayContext.Type extends java.lang.Enum {
+    method public static android.icu.text.DisplayContext.Type valueOf(java.lang.String);
+    method public static final android.icu.text.DisplayContext.Type[] values();
+    enum_constant public static final android.icu.text.DisplayContext.Type CAPITALIZATION;
+    enum_constant public static final android.icu.text.DisplayContext.Type DIALECT_HANDLING;
+    enum_constant public static final android.icu.text.DisplayContext.Type DISPLAY_LENGTH;
+  }
+
+  public abstract class IDNA {
+    method public static android.icu.text.IDNA getUTS46Instance(int);
+    method public abstract java.lang.StringBuilder labelToASCII(java.lang.CharSequence, java.lang.StringBuilder, android.icu.text.IDNA.Info);
+    method public abstract java.lang.StringBuilder labelToUnicode(java.lang.CharSequence, java.lang.StringBuilder, android.icu.text.IDNA.Info);
+    method public abstract java.lang.StringBuilder nameToASCII(java.lang.CharSequence, java.lang.StringBuilder, android.icu.text.IDNA.Info);
+    method public abstract java.lang.StringBuilder nameToUnicode(java.lang.CharSequence, java.lang.StringBuilder, android.icu.text.IDNA.Info);
+    field public static final int CHECK_BIDI = 4; // 0x4
+    field public static final int CHECK_CONTEXTJ = 8; // 0x8
+    field public static final int CHECK_CONTEXTO = 64; // 0x40
+    field public static final int DEFAULT = 0; // 0x0
+    field public static final int NONTRANSITIONAL_TO_ASCII = 16; // 0x10
+    field public static final int NONTRANSITIONAL_TO_UNICODE = 32; // 0x20
+    field public static final int USE_STD3_RULES = 2; // 0x2
+  }
+
+  public static final class IDNA.Error extends java.lang.Enum {
+    method public static android.icu.text.IDNA.Error valueOf(java.lang.String);
+    method public static final android.icu.text.IDNA.Error[] values();
+    enum_constant public static final android.icu.text.IDNA.Error BIDI;
+    enum_constant public static final android.icu.text.IDNA.Error CONTEXTJ;
+    enum_constant public static final android.icu.text.IDNA.Error CONTEXTO_DIGITS;
+    enum_constant public static final android.icu.text.IDNA.Error CONTEXTO_PUNCTUATION;
+    enum_constant public static final android.icu.text.IDNA.Error DISALLOWED;
+    enum_constant public static final android.icu.text.IDNA.Error DOMAIN_NAME_TOO_LONG;
+    enum_constant public static final android.icu.text.IDNA.Error EMPTY_LABEL;
+    enum_constant public static final android.icu.text.IDNA.Error HYPHEN_3_4;
+    enum_constant public static final android.icu.text.IDNA.Error INVALID_ACE_LABEL;
+    enum_constant public static final android.icu.text.IDNA.Error LABEL_HAS_DOT;
+    enum_constant public static final android.icu.text.IDNA.Error LABEL_TOO_LONG;
+    enum_constant public static final android.icu.text.IDNA.Error LEADING_COMBINING_MARK;
+    enum_constant public static final android.icu.text.IDNA.Error LEADING_HYPHEN;
+    enum_constant public static final android.icu.text.IDNA.Error PUNYCODE;
+    enum_constant public static final android.icu.text.IDNA.Error TRAILING_HYPHEN;
+  }
+
+  public static final class IDNA.Info {
+    ctor public IDNA.Info();
+    method public java.util.Set<android.icu.text.IDNA.Error> getErrors();
+    method public boolean hasErrors();
+    method public boolean isTransitionalDifferent();
+  }
+
+  public abstract class LocaleDisplayNames {
+    method public abstract android.icu.text.DisplayContext getContext(android.icu.text.DisplayContext.Type);
+    method public abstract android.icu.text.LocaleDisplayNames.DialectHandling getDialectHandling();
+    method public static android.icu.text.LocaleDisplayNames getInstance(android.icu.util.ULocale);
+    method public static android.icu.text.LocaleDisplayNames getInstance(java.util.Locale);
+    method public static android.icu.text.LocaleDisplayNames getInstance(android.icu.util.ULocale, android.icu.text.LocaleDisplayNames.DialectHandling);
+    method public static android.icu.text.LocaleDisplayNames getInstance(android.icu.util.ULocale, android.icu.text.DisplayContext...);
+    method public static android.icu.text.LocaleDisplayNames getInstance(java.util.Locale, android.icu.text.DisplayContext...);
+    method public abstract android.icu.util.ULocale getLocale();
+    method public abstract java.lang.String keyDisplayName(java.lang.String);
+    method public abstract java.lang.String keyValueDisplayName(java.lang.String, java.lang.String);
+    method public abstract java.lang.String languageDisplayName(java.lang.String);
+    method public abstract java.lang.String localeDisplayName(android.icu.util.ULocale);
+    method public abstract java.lang.String localeDisplayName(java.util.Locale);
+    method public abstract java.lang.String localeDisplayName(java.lang.String);
+    method public abstract java.lang.String regionDisplayName(java.lang.String);
+    method public abstract java.lang.String scriptDisplayName(java.lang.String);
+    method public abstract java.lang.String scriptDisplayName(int);
+    method public abstract java.lang.String variantDisplayName(java.lang.String);
+  }
+
+  public static final class LocaleDisplayNames.DialectHandling extends java.lang.Enum {
+    method public static android.icu.text.LocaleDisplayNames.DialectHandling valueOf(java.lang.String);
+    method public static final android.icu.text.LocaleDisplayNames.DialectHandling[] values();
+    enum_constant public static final android.icu.text.LocaleDisplayNames.DialectHandling DIALECT_NAMES;
+    enum_constant public static final android.icu.text.LocaleDisplayNames.DialectHandling STANDARD_NAMES;
+  }
+
+  public class MeasureFormat extends android.icu.text.UFormat {
+    method public final boolean equals(java.lang.Object);
+    method public java.lang.StringBuffer format(java.lang.Object, java.lang.StringBuffer, java.text.FieldPosition);
+    method public final java.lang.String formatMeasures(android.icu.util.Measure...);
+    method public java.lang.StringBuilder formatMeasures(java.lang.StringBuilder, java.text.FieldPosition, android.icu.util.Measure...);
+    method public static android.icu.text.MeasureFormat getCurrencyFormat(android.icu.util.ULocale);
+    method public static android.icu.text.MeasureFormat getCurrencyFormat(java.util.Locale);
+    method public static android.icu.text.MeasureFormat getCurrencyFormat();
+    method public static android.icu.text.MeasureFormat getInstance(android.icu.util.ULocale, android.icu.text.MeasureFormat.FormatWidth);
+    method public static android.icu.text.MeasureFormat getInstance(java.util.Locale, android.icu.text.MeasureFormat.FormatWidth);
+    method public static android.icu.text.MeasureFormat getInstance(android.icu.util.ULocale, android.icu.text.MeasureFormat.FormatWidth, android.icu.text.NumberFormat);
+    method public static android.icu.text.MeasureFormat getInstance(java.util.Locale, android.icu.text.MeasureFormat.FormatWidth, android.icu.text.NumberFormat);
+    method public final android.icu.util.ULocale getLocale();
+    method public android.icu.text.NumberFormat getNumberFormat();
+    method public android.icu.text.MeasureFormat.FormatWidth getWidth();
+    method public final int hashCode();
+    method public android.icu.util.Measure parseObject(java.lang.String, java.text.ParsePosition);
+  }
+
+  public static final class MeasureFormat.FormatWidth extends java.lang.Enum {
+    method public static android.icu.text.MeasureFormat.FormatWidth valueOf(java.lang.String);
+    method public static final android.icu.text.MeasureFormat.FormatWidth[] values();
+    enum_constant public static final android.icu.text.MeasureFormat.FormatWidth NARROW;
+    enum_constant public static final android.icu.text.MeasureFormat.FormatWidth NUMERIC;
+    enum_constant public static final android.icu.text.MeasureFormat.FormatWidth SHORT;
+    enum_constant public static final android.icu.text.MeasureFormat.FormatWidth WIDE;
+  }
+
+  public class MessageFormat extends android.icu.text.UFormat {
+    ctor public MessageFormat(java.lang.String);
+    ctor public MessageFormat(java.lang.String, java.util.Locale);
+    ctor public MessageFormat(java.lang.String, android.icu.util.ULocale);
+    method public void applyPattern(java.lang.String);
+    method public void applyPattern(java.lang.String, android.icu.text.MessagePattern.ApostropheMode);
+    method public static java.lang.String autoQuoteApostrophe(java.lang.String);
+    method public final java.lang.StringBuffer format(java.lang.Object[], java.lang.StringBuffer, java.text.FieldPosition);
+    method public final java.lang.StringBuffer format(java.util.Map<java.lang.String, java.lang.Object>, java.lang.StringBuffer, java.text.FieldPosition);
+    method public static java.lang.String format(java.lang.String, java.lang.Object...);
+    method public static java.lang.String format(java.lang.String, java.util.Map<java.lang.String, java.lang.Object>);
+    method public final java.lang.StringBuffer format(java.lang.Object, java.lang.StringBuffer, java.text.FieldPosition);
+    method public android.icu.text.MessagePattern.ApostropheMode getApostropheMode();
+    method public java.util.Set<java.lang.String> getArgumentNames();
+    method public java.text.Format getFormatByArgumentName(java.lang.String);
+    method public java.text.Format[] getFormats();
+    method public java.text.Format[] getFormatsByArgumentIndex();
+    method public java.util.Locale getLocale();
+    method public android.icu.util.ULocale getULocale();
+    method public java.lang.Object[] parse(java.lang.String, java.text.ParsePosition);
+    method public java.lang.Object[] parse(java.lang.String) throws java.text.ParseException;
+    method public java.lang.Object parseObject(java.lang.String, java.text.ParsePosition);
+    method public java.util.Map<java.lang.String, java.lang.Object> parseToMap(java.lang.String, java.text.ParsePosition);
+    method public java.util.Map<java.lang.String, java.lang.Object> parseToMap(java.lang.String) throws java.text.ParseException;
+    method public void setFormat(int, java.text.Format);
+    method public void setFormatByArgumentIndex(int, java.text.Format);
+    method public void setFormatByArgumentName(java.lang.String, java.text.Format);
+    method public void setFormats(java.text.Format[]);
+    method public void setFormatsByArgumentIndex(java.text.Format[]);
+    method public void setFormatsByArgumentName(java.util.Map<java.lang.String, java.text.Format>);
+    method public void setLocale(java.util.Locale);
+    method public void setLocale(android.icu.util.ULocale);
+    method public java.lang.String toPattern();
+    method public boolean usesNamedArguments();
+  }
+
+  public static class MessageFormat.Field extends java.text.Format.Field {
+    ctor protected MessageFormat.Field(java.lang.String);
+    field public static final android.icu.text.MessageFormat.Field ARGUMENT;
+  }
+
+  public final class MessagePattern implements java.lang.Cloneable android.icu.util.Freezable {
+    ctor public MessagePattern();
+    ctor public MessagePattern(android.icu.text.MessagePattern.ApostropheMode);
+    ctor public MessagePattern(java.lang.String);
+    method public java.lang.String autoQuoteApostropheDeep();
+    method public void clear();
+    method public void clearPatternAndSetApostropheMode(android.icu.text.MessagePattern.ApostropheMode);
+    method public java.lang.Object clone();
+    method public android.icu.text.MessagePattern cloneAsThawed();
+    method public int countParts();
+    method public android.icu.text.MessagePattern freeze();
+    method public android.icu.text.MessagePattern.ApostropheMode getApostropheMode();
+    method public int getLimitPartIndex(int);
+    method public double getNumericValue(android.icu.text.MessagePattern.Part);
+    method public android.icu.text.MessagePattern.Part getPart(int);
+    method public android.icu.text.MessagePattern.Part.Type getPartType(int);
+    method public int getPatternIndex(int);
+    method public java.lang.String getPatternString();
+    method public double getPluralOffset(int);
+    method public java.lang.String getSubstring(android.icu.text.MessagePattern.Part);
+    method public boolean hasNamedArguments();
+    method public boolean hasNumberedArguments();
+    method public boolean isFrozen();
+    method public android.icu.text.MessagePattern parse(java.lang.String);
+    method public android.icu.text.MessagePattern parseChoiceStyle(java.lang.String);
+    method public android.icu.text.MessagePattern parsePluralStyle(java.lang.String);
+    method public android.icu.text.MessagePattern parseSelectStyle(java.lang.String);
+    method public boolean partSubstringMatches(android.icu.text.MessagePattern.Part, java.lang.String);
+    method public static int validateArgumentName(java.lang.String);
+    field public static final int ARG_NAME_NOT_NUMBER = -1; // 0xffffffff
+    field public static final int ARG_NAME_NOT_VALID = -2; // 0xfffffffe
+    field public static final double NO_NUMERIC_VALUE = -1.23456789E8;
+  }
+
+  public static final class MessagePattern.ApostropheMode extends java.lang.Enum {
+    method public static android.icu.text.MessagePattern.ApostropheMode valueOf(java.lang.String);
+    method public static final android.icu.text.MessagePattern.ApostropheMode[] values();
+    enum_constant public static final android.icu.text.MessagePattern.ApostropheMode DOUBLE_OPTIONAL;
+    enum_constant public static final android.icu.text.MessagePattern.ApostropheMode DOUBLE_REQUIRED;
+  }
+
+  public static final class MessagePattern.ArgType extends java.lang.Enum {
+    method public boolean hasPluralStyle();
+    method public static android.icu.text.MessagePattern.ArgType valueOf(java.lang.String);
+    method public static final android.icu.text.MessagePattern.ArgType[] values();
+    enum_constant public static final android.icu.text.MessagePattern.ArgType CHOICE;
+    enum_constant public static final android.icu.text.MessagePattern.ArgType NONE;
+    enum_constant public static final android.icu.text.MessagePattern.ArgType PLURAL;
+    enum_constant public static final android.icu.text.MessagePattern.ArgType SELECT;
+    enum_constant public static final android.icu.text.MessagePattern.ArgType SELECTORDINAL;
+    enum_constant public static final android.icu.text.MessagePattern.ArgType SIMPLE;
+  }
+
+  public static final class MessagePattern.Part {
+    method public android.icu.text.MessagePattern.ArgType getArgType();
+    method public int getIndex();
+    method public int getLength();
+    method public int getLimit();
+    method public android.icu.text.MessagePattern.Part.Type getType();
+    method public int getValue();
+  }
+
+  public static final class MessagePattern.Part.Type extends java.lang.Enum {
+    method public boolean hasNumericValue();
+    method public static android.icu.text.MessagePattern.Part.Type valueOf(java.lang.String);
+    method public static final android.icu.text.MessagePattern.Part.Type[] values();
+    enum_constant public static final android.icu.text.MessagePattern.Part.Type ARG_DOUBLE;
+    enum_constant public static final android.icu.text.MessagePattern.Part.Type ARG_INT;
+    enum_constant public static final android.icu.text.MessagePattern.Part.Type ARG_LIMIT;
+    enum_constant public static final android.icu.text.MessagePattern.Part.Type ARG_NAME;
+    enum_constant public static final android.icu.text.MessagePattern.Part.Type ARG_NUMBER;
+    enum_constant public static final android.icu.text.MessagePattern.Part.Type ARG_SELECTOR;
+    enum_constant public static final android.icu.text.MessagePattern.Part.Type ARG_START;
+    enum_constant public static final android.icu.text.MessagePattern.Part.Type ARG_STYLE;
+    enum_constant public static final android.icu.text.MessagePattern.Part.Type ARG_TYPE;
+    enum_constant public static final android.icu.text.MessagePattern.Part.Type INSERT_CHAR;
+    enum_constant public static final android.icu.text.MessagePattern.Part.Type MSG_LIMIT;
+    enum_constant public static final android.icu.text.MessagePattern.Part.Type MSG_START;
+    enum_constant public static final android.icu.text.MessagePattern.Part.Type REPLACE_NUMBER;
+    enum_constant public static final android.icu.text.MessagePattern.Part.Type SKIP_SYNTAX;
+  }
+
+  public final class Normalizer implements java.lang.Cloneable {
+    method public static int compare(char[], int, int, char[], int, int, int);
+    method public static int compare(java.lang.String, java.lang.String, int);
+    method public static int compare(char[], char[], int);
+    method public static int compare(int, int, int);
+    method public static int compare(int, java.lang.String, int);
+    field public static final int COMPARE_CODE_POINT_ORDER = 32768; // 0x8000
+    field public static final int COMPARE_IGNORE_CASE = 65536; // 0x10000
+    field public static final int FOLD_CASE_DEFAULT = 0; // 0x0
+    field public static final int FOLD_CASE_EXCLUDE_SPECIAL_I = 1; // 0x1
+    field public static final int INPUT_IS_FCD = 131072; // 0x20000
+    field public static final android.icu.text.Normalizer.QuickCheckResult MAYBE;
+    field public static final android.icu.text.Normalizer.QuickCheckResult NO;
+    field public static final android.icu.text.Normalizer.QuickCheckResult YES;
+  }
+
+  public static final class Normalizer.QuickCheckResult {
+  }
+
+  public abstract class Normalizer2 {
+    method public abstract java.lang.StringBuilder append(java.lang.StringBuilder, java.lang.CharSequence);
+    method public int composePair(int, int);
+    method public int getCombiningClass(int);
+    method public abstract java.lang.String getDecomposition(int);
+    method public static android.icu.text.Normalizer2 getInstance(java.io.InputStream, java.lang.String, android.icu.text.Normalizer2.Mode);
+    method public static android.icu.text.Normalizer2 getNFCInstance();
+    method public static android.icu.text.Normalizer2 getNFDInstance();
+    method public static android.icu.text.Normalizer2 getNFKCCasefoldInstance();
+    method public static android.icu.text.Normalizer2 getNFKCInstance();
+    method public static android.icu.text.Normalizer2 getNFKDInstance();
+    method public java.lang.String getRawDecomposition(int);
+    method public abstract boolean hasBoundaryAfter(int);
+    method public abstract boolean hasBoundaryBefore(int);
+    method public abstract boolean isInert(int);
+    method public abstract boolean isNormalized(java.lang.CharSequence);
+    method public java.lang.String normalize(java.lang.CharSequence);
+    method public abstract java.lang.StringBuilder normalize(java.lang.CharSequence, java.lang.StringBuilder);
+    method public abstract java.lang.Appendable normalize(java.lang.CharSequence, java.lang.Appendable);
+    method public abstract java.lang.StringBuilder normalizeSecondAndAppend(java.lang.StringBuilder, java.lang.CharSequence);
+    method public abstract android.icu.text.Normalizer.QuickCheckResult quickCheck(java.lang.CharSequence);
+    method public abstract int spanQuickCheckYes(java.lang.CharSequence);
+  }
+
+  public static final class Normalizer2.Mode extends java.lang.Enum {
+    method public static android.icu.text.Normalizer2.Mode valueOf(java.lang.String);
+    method public static final android.icu.text.Normalizer2.Mode[] values();
+    enum_constant public static final android.icu.text.Normalizer2.Mode COMPOSE;
+    enum_constant public static final android.icu.text.Normalizer2.Mode COMPOSE_CONTIGUOUS;
+    enum_constant public static final android.icu.text.Normalizer2.Mode DECOMPOSE;
+    enum_constant public static final android.icu.text.Normalizer2.Mode FCD;
+  }
+
+  public abstract class NumberFormat extends android.icu.text.UFormat {
+    ctor public NumberFormat();
+    method public java.lang.StringBuffer format(java.lang.Object, java.lang.StringBuffer, java.text.FieldPosition);
+    method public final java.lang.String format(double);
+    method public final java.lang.String format(long);
+    method public final java.lang.String format(java.math.BigInteger);
+    method public final java.lang.String format(java.math.BigDecimal);
+    method public final java.lang.String format(android.icu.math.BigDecimal);
+    method public final java.lang.String format(android.icu.util.CurrencyAmount);
+    method public abstract java.lang.StringBuffer format(double, java.lang.StringBuffer, java.text.FieldPosition);
+    method public abstract java.lang.StringBuffer format(long, java.lang.StringBuffer, java.text.FieldPosition);
+    method public abstract java.lang.StringBuffer format(java.math.BigInteger, java.lang.StringBuffer, java.text.FieldPosition);
+    method public abstract java.lang.StringBuffer format(java.math.BigDecimal, java.lang.StringBuffer, java.text.FieldPosition);
+    method public abstract java.lang.StringBuffer format(android.icu.math.BigDecimal, java.lang.StringBuffer, java.text.FieldPosition);
+    method public java.lang.StringBuffer format(android.icu.util.CurrencyAmount, java.lang.StringBuffer, java.text.FieldPosition);
+    method public static java.util.Locale[] getAvailableLocales();
+    method public android.icu.text.DisplayContext getContext(android.icu.text.DisplayContext.Type);
+    method public android.icu.util.Currency getCurrency();
+    method public static final android.icu.text.NumberFormat getCurrencyInstance();
+    method public static android.icu.text.NumberFormat getCurrencyInstance(java.util.Locale);
+    method public static android.icu.text.NumberFormat getCurrencyInstance(android.icu.util.ULocale);
+    method public static final android.icu.text.NumberFormat getInstance();
+    method public static android.icu.text.NumberFormat getInstance(java.util.Locale);
+    method public static android.icu.text.NumberFormat getInstance(android.icu.util.ULocale);
+    method public static final android.icu.text.NumberFormat getInstance(int);
+    method public static android.icu.text.NumberFormat getInstance(java.util.Locale, int);
+    method public static android.icu.text.NumberFormat getInstance(android.icu.util.ULocale, int);
+    method public static final android.icu.text.NumberFormat getIntegerInstance();
+    method public static android.icu.text.NumberFormat getIntegerInstance(java.util.Locale);
+    method public static android.icu.text.NumberFormat getIntegerInstance(android.icu.util.ULocale);
+    method public int getMaximumFractionDigits();
+    method public int getMaximumIntegerDigits();
+    method public int getMinimumFractionDigits();
+    method public int getMinimumIntegerDigits();
+    method public static final android.icu.text.NumberFormat getNumberInstance();
+    method public static android.icu.text.NumberFormat getNumberInstance(java.util.Locale);
+    method public static android.icu.text.NumberFormat getNumberInstance(android.icu.util.ULocale);
+    method protected static java.lang.String getPattern(android.icu.util.ULocale, int);
+    method public static final android.icu.text.NumberFormat getPercentInstance();
+    method public static android.icu.text.NumberFormat getPercentInstance(java.util.Locale);
+    method public static android.icu.text.NumberFormat getPercentInstance(android.icu.util.ULocale);
+    method public int getRoundingMode();
+    method public static final android.icu.text.NumberFormat getScientificInstance();
+    method public static android.icu.text.NumberFormat getScientificInstance(java.util.Locale);
+    method public static android.icu.text.NumberFormat getScientificInstance(android.icu.util.ULocale);
+    method public boolean isGroupingUsed();
+    method public boolean isParseIntegerOnly();
+    method public boolean isParseStrict();
+    method public abstract java.lang.Number parse(java.lang.String, java.text.ParsePosition);
+    method public java.lang.Number parse(java.lang.String) throws java.text.ParseException;
+    method public android.icu.util.CurrencyAmount parseCurrency(java.lang.CharSequence, java.text.ParsePosition);
+    method public final java.lang.Object parseObject(java.lang.String, java.text.ParsePosition);
+    method public static java.lang.Object registerFactory(android.icu.text.NumberFormat.NumberFormatFactory);
+    method public void setContext(android.icu.text.DisplayContext);
+    method public void setCurrency(android.icu.util.Currency);
+    method public void setGroupingUsed(boolean);
+    method public void setMaximumFractionDigits(int);
+    method public void setMaximumIntegerDigits(int);
+    method public void setMinimumFractionDigits(int);
+    method public void setMinimumIntegerDigits(int);
+    method public void setParseIntegerOnly(boolean);
+    method public void setParseStrict(boolean);
+    method public void setRoundingMode(int);
+    method public static boolean unregister(java.lang.Object);
+    field public static final int ACCOUNTINGCURRENCYSTYLE = 7; // 0x7
+    field public static final int CASHCURRENCYSTYLE = 8; // 0x8
+    field public static final int CURRENCYSTYLE = 1; // 0x1
+    field public static final int FRACTION_FIELD = 1; // 0x1
+    field public static final int INTEGERSTYLE = 4; // 0x4
+    field public static final int INTEGER_FIELD = 0; // 0x0
+    field public static final int ISOCURRENCYSTYLE = 5; // 0x5
+    field public static final int NUMBERSTYLE = 0; // 0x0
+    field public static final int PERCENTSTYLE = 2; // 0x2
+    field public static final int PLURALCURRENCYSTYLE = 6; // 0x6
+    field public static final int SCIENTIFICSTYLE = 3; // 0x3
+  }
+
+  public static class NumberFormat.Field extends java.text.Format.Field {
+    ctor protected NumberFormat.Field(java.lang.String);
+    field public static final android.icu.text.NumberFormat.Field CURRENCY;
+    field public static final android.icu.text.NumberFormat.Field DECIMAL_SEPARATOR;
+    field public static final android.icu.text.NumberFormat.Field EXPONENT;
+    field public static final android.icu.text.NumberFormat.Field EXPONENT_SIGN;
+    field public static final android.icu.text.NumberFormat.Field EXPONENT_SYMBOL;
+    field public static final android.icu.text.NumberFormat.Field FRACTION;
+    field public static final android.icu.text.NumberFormat.Field GROUPING_SEPARATOR;
+    field public static final android.icu.text.NumberFormat.Field INTEGER;
+    field public static final android.icu.text.NumberFormat.Field PERCENT;
+    field public static final android.icu.text.NumberFormat.Field PERMILLE;
+    field public static final android.icu.text.NumberFormat.Field SIGN;
+  }
+
+  public static abstract class NumberFormat.NumberFormatFactory {
+    ctor protected NumberFormat.NumberFormatFactory();
+    method public android.icu.text.NumberFormat createFormat(android.icu.util.ULocale, int);
+    method public android.icu.text.NumberFormat createFormat(java.util.Locale, int);
+    method public abstract java.util.Set<java.lang.String> getSupportedLocaleNames();
+    method public boolean visible();
+    field public static final int FORMAT_CURRENCY = 1; // 0x1
+    field public static final int FORMAT_INTEGER = 4; // 0x4
+    field public static final int FORMAT_NUMBER = 0; // 0x0
+    field public static final int FORMAT_PERCENT = 2; // 0x2
+    field public static final int FORMAT_SCIENTIFIC = 3; // 0x3
+  }
+
+  public static abstract class NumberFormat.SimpleNumberFormatFactory extends android.icu.text.NumberFormat.NumberFormatFactory {
+    ctor public NumberFormat.SimpleNumberFormatFactory(java.util.Locale);
+    ctor public NumberFormat.SimpleNumberFormatFactory(java.util.Locale, boolean);
+    ctor public NumberFormat.SimpleNumberFormatFactory(android.icu.util.ULocale);
+    ctor public NumberFormat.SimpleNumberFormatFactory(android.icu.util.ULocale, boolean);
+    method public final java.util.Set<java.lang.String> getSupportedLocaleNames();
+    method public final boolean visible();
+  }
+
+  public class NumberingSystem {
+    ctor public NumberingSystem();
+    method public static java.lang.String[] getAvailableNames();
+    method public java.lang.String getDescription();
+    method public static android.icu.text.NumberingSystem getInstance(int, boolean, java.lang.String);
+    method public static android.icu.text.NumberingSystem getInstance(java.util.Locale);
+    method public static android.icu.text.NumberingSystem getInstance(android.icu.util.ULocale);
+    method public static android.icu.text.NumberingSystem getInstance();
+    method public static android.icu.text.NumberingSystem getInstanceByName(java.lang.String);
+    method public java.lang.String getName();
+    method public int getRadix();
+    method public boolean isAlgorithmic();
+    method public static boolean isValidDigitString(java.lang.String);
+  }
+
+  public class PluralFormat extends android.icu.text.UFormat {
+    ctor public PluralFormat();
+    ctor public PluralFormat(android.icu.util.ULocale);
+    ctor public PluralFormat(java.util.Locale);
+    ctor public PluralFormat(android.icu.text.PluralRules);
+    ctor public PluralFormat(android.icu.util.ULocale, android.icu.text.PluralRules);
+    ctor public PluralFormat(java.util.Locale, android.icu.text.PluralRules);
+    ctor public PluralFormat(android.icu.util.ULocale, android.icu.text.PluralRules.PluralType);
+    ctor public PluralFormat(java.util.Locale, android.icu.text.PluralRules.PluralType);
+    ctor public PluralFormat(java.lang.String);
+    ctor public PluralFormat(android.icu.util.ULocale, java.lang.String);
+    ctor public PluralFormat(android.icu.text.PluralRules, java.lang.String);
+    ctor public PluralFormat(android.icu.util.ULocale, android.icu.text.PluralRules, java.lang.String);
+    ctor public PluralFormat(android.icu.util.ULocale, android.icu.text.PluralRules.PluralType, java.lang.String);
+    method public void applyPattern(java.lang.String);
+    method public boolean equals(android.icu.text.PluralFormat);
+    method public final java.lang.String format(double);
+    method public java.lang.StringBuffer format(java.lang.Object, java.lang.StringBuffer, java.text.FieldPosition);
+    method public java.lang.Number parse(java.lang.String, java.text.ParsePosition);
+    method public java.lang.Object parseObject(java.lang.String, java.text.ParsePosition);
+    method public void setNumberFormat(android.icu.text.NumberFormat);
+    method public java.lang.String toPattern();
+  }
+
+  public class PluralRules implements java.io.Serializable {
+    method public static android.icu.text.PluralRules createRules(java.lang.String);
+    method public boolean equals(android.icu.text.PluralRules);
+    method public static android.icu.text.PluralRules forLocale(android.icu.util.ULocale);
+    method public static android.icu.text.PluralRules forLocale(java.util.Locale);
+    method public static android.icu.text.PluralRules forLocale(android.icu.util.ULocale, android.icu.text.PluralRules.PluralType);
+    method public static android.icu.text.PluralRules forLocale(java.util.Locale, android.icu.text.PluralRules.PluralType);
+    method public java.util.Collection<java.lang.Double> getAllKeywordValues(java.lang.String);
+    method public java.util.Set<java.lang.String> getKeywords();
+    method public java.util.Collection<java.lang.Double> getSamples(java.lang.String);
+    method public double getUniqueKeywordValue(java.lang.String);
+    method public static android.icu.text.PluralRules parseDescription(java.lang.String) throws java.text.ParseException;
+    method public java.lang.String select(double);
+    field public static final android.icu.text.PluralRules DEFAULT;
+    field public static final java.lang.String KEYWORD_FEW = "few";
+    field public static final java.lang.String KEYWORD_MANY = "many";
+    field public static final java.lang.String KEYWORD_ONE = "one";
+    field public static final java.lang.String KEYWORD_OTHER = "other";
+    field public static final java.lang.String KEYWORD_TWO = "two";
+    field public static final java.lang.String KEYWORD_ZERO = "zero";
+    field public static final double NO_UNIQUE_VALUE = -0.00123456777;
+  }
+
+  public static final class PluralRules.PluralType extends java.lang.Enum {
+    method public static android.icu.text.PluralRules.PluralType valueOf(java.lang.String);
+    method public static final android.icu.text.PluralRules.PluralType[] values();
+    enum_constant public static final android.icu.text.PluralRules.PluralType CARDINAL;
+    enum_constant public static final android.icu.text.PluralRules.PluralType ORDINAL;
+  }
+
+  public final class RawCollationKey extends android.icu.util.ByteArrayWrapper {
+    ctor public RawCollationKey();
+    ctor public RawCollationKey(int);
+    ctor public RawCollationKey(byte[]);
+    ctor public RawCollationKey(byte[], int);
+    method public int compareTo(android.icu.text.RawCollationKey);
+  }
+
+  public final class RelativeDateTimeFormatter {
+    method public java.lang.String combineDateAndTime(java.lang.String, java.lang.String);
+    method public java.lang.String format(double, android.icu.text.RelativeDateTimeFormatter.Direction, android.icu.text.RelativeDateTimeFormatter.RelativeUnit);
+    method public java.lang.String format(android.icu.text.RelativeDateTimeFormatter.Direction, android.icu.text.RelativeDateTimeFormatter.AbsoluteUnit);
+    method public android.icu.text.DisplayContext getCapitalizationContext();
+    method public android.icu.text.RelativeDateTimeFormatter.Style getFormatStyle();
+    method public static android.icu.text.RelativeDateTimeFormatter getInstance();
+    method public static android.icu.text.RelativeDateTimeFormatter getInstance(android.icu.util.ULocale);
+    method public static android.icu.text.RelativeDateTimeFormatter getInstance(java.util.Locale);
+    method public static android.icu.text.RelativeDateTimeFormatter getInstance(android.icu.util.ULocale, android.icu.text.NumberFormat);
+    method public static android.icu.text.RelativeDateTimeFormatter getInstance(android.icu.util.ULocale, android.icu.text.NumberFormat, android.icu.text.RelativeDateTimeFormatter.Style, android.icu.text.DisplayContext);
+    method public static android.icu.text.RelativeDateTimeFormatter getInstance(java.util.Locale, android.icu.text.NumberFormat);
+    method public android.icu.text.NumberFormat getNumberFormat();
+  }
+
+  public static final class RelativeDateTimeFormatter.AbsoluteUnit extends java.lang.Enum {
+    method public static android.icu.text.RelativeDateTimeFormatter.AbsoluteUnit valueOf(java.lang.String);
+    method public static final android.icu.text.RelativeDateTimeFormatter.AbsoluteUnit[] values();
+    enum_constant public static final android.icu.text.RelativeDateTimeFormatter.AbsoluteUnit DAY;
+    enum_constant public static final android.icu.text.RelativeDateTimeFormatter.AbsoluteUnit FRIDAY;
+    enum_constant public static final android.icu.text.RelativeDateTimeFormatter.AbsoluteUnit MONDAY;
+    enum_constant public static final android.icu.text.RelativeDateTimeFormatter.AbsoluteUnit MONTH;
+    enum_constant public static final android.icu.text.RelativeDateTimeFormatter.AbsoluteUnit NOW;
+    enum_constant public static final android.icu.text.RelativeDateTimeFormatter.AbsoluteUnit SATURDAY;
+    enum_constant public static final android.icu.text.RelativeDateTimeFormatter.AbsoluteUnit SUNDAY;
+    enum_constant public static final android.icu.text.RelativeDateTimeFormatter.AbsoluteUnit THURSDAY;
+    enum_constant public static final android.icu.text.RelativeDateTimeFormatter.AbsoluteUnit TUESDAY;
+    enum_constant public static final android.icu.text.RelativeDateTimeFormatter.AbsoluteUnit WEDNESDAY;
+    enum_constant public static final android.icu.text.RelativeDateTimeFormatter.AbsoluteUnit WEEK;
+    enum_constant public static final android.icu.text.RelativeDateTimeFormatter.AbsoluteUnit YEAR;
+  }
+
+  public static final class RelativeDateTimeFormatter.Direction extends java.lang.Enum {
+    method public static android.icu.text.RelativeDateTimeFormatter.Direction valueOf(java.lang.String);
+    method public static final android.icu.text.RelativeDateTimeFormatter.Direction[] values();
+    enum_constant public static final android.icu.text.RelativeDateTimeFormatter.Direction LAST;
+    enum_constant public static final android.icu.text.RelativeDateTimeFormatter.Direction LAST_2;
+    enum_constant public static final android.icu.text.RelativeDateTimeFormatter.Direction NEXT;
+    enum_constant public static final android.icu.text.RelativeDateTimeFormatter.Direction NEXT_2;
+    enum_constant public static final android.icu.text.RelativeDateTimeFormatter.Direction PLAIN;
+    enum_constant public static final android.icu.text.RelativeDateTimeFormatter.Direction THIS;
+  }
+
+  public static final class RelativeDateTimeFormatter.RelativeUnit extends java.lang.Enum {
+    method public static android.icu.text.RelativeDateTimeFormatter.RelativeUnit valueOf(java.lang.String);
+    method public static final android.icu.text.RelativeDateTimeFormatter.RelativeUnit[] values();
+    enum_constant public static final android.icu.text.RelativeDateTimeFormatter.RelativeUnit DAYS;
+    enum_constant public static final android.icu.text.RelativeDateTimeFormatter.RelativeUnit HOURS;
+    enum_constant public static final android.icu.text.RelativeDateTimeFormatter.RelativeUnit MINUTES;
+    enum_constant public static final android.icu.text.RelativeDateTimeFormatter.RelativeUnit MONTHS;
+    enum_constant public static final android.icu.text.RelativeDateTimeFormatter.RelativeUnit SECONDS;
+    enum_constant public static final android.icu.text.RelativeDateTimeFormatter.RelativeUnit WEEKS;
+    enum_constant public static final android.icu.text.RelativeDateTimeFormatter.RelativeUnit YEARS;
+  }
+
+  public static final class RelativeDateTimeFormatter.Style extends java.lang.Enum {
+    method public static android.icu.text.RelativeDateTimeFormatter.Style valueOf(java.lang.String);
+    method public static final android.icu.text.RelativeDateTimeFormatter.Style[] values();
+    enum_constant public static final android.icu.text.RelativeDateTimeFormatter.Style LONG;
+    enum_constant public static final android.icu.text.RelativeDateTimeFormatter.Style NARROW;
+    enum_constant public static final android.icu.text.RelativeDateTimeFormatter.Style SHORT;
+  }
+
+  public abstract interface Replaceable {
+    method public abstract int char32At(int);
+    method public abstract char charAt(int);
+    method public abstract void copy(int, int, int);
+    method public abstract void getChars(int, int, char[], int);
+    method public abstract boolean hasMetaData();
+    method public abstract int length();
+    method public abstract void replace(int, int, java.lang.String);
+    method public abstract void replace(int, int, char[], int, int);
+  }
+
+  public final class RuleBasedCollator extends android.icu.text.Collator {
+    ctor public RuleBasedCollator(java.lang.String) throws java.lang.Exception;
+    method public int compare(java.lang.String, java.lang.String);
+    method public android.icu.text.CollationElementIterator getCollationElementIterator(java.lang.String);
+    method public android.icu.text.CollationElementIterator getCollationElementIterator(java.text.CharacterIterator);
+    method public android.icu.text.CollationElementIterator getCollationElementIterator(android.icu.text.UCharacterIterator);
+    method public android.icu.text.CollationKey getCollationKey(java.lang.String);
+    method public void getContractionsAndExpansions(android.icu.text.UnicodeSet, android.icu.text.UnicodeSet, boolean) throws java.lang.Exception;
+    method public boolean getNumericCollation();
+    method public android.icu.text.RawCollationKey getRawCollationKey(java.lang.String, android.icu.text.RawCollationKey);
+    method public java.lang.String getRules();
+    method public java.lang.String getRules(boolean);
+    method public android.icu.util.VersionInfo getUCAVersion();
+    method public int getVariableTop();
+    method public android.icu.util.VersionInfo getVersion();
+    method public boolean isAlternateHandlingShifted();
+    method public boolean isCaseLevel();
+    method public boolean isFrenchCollation();
+    method public boolean isLowerCaseFirst();
+    method public boolean isUpperCaseFirst();
+    method public void setAlternateHandlingDefault();
+    method public void setAlternateHandlingShifted(boolean);
+    method public final void setCaseFirstDefault();
+    method public void setCaseLevel(boolean);
+    method public void setCaseLevelDefault();
+    method public void setDecompositionDefault();
+    method public void setFrenchCollation(boolean);
+    method public void setFrenchCollationDefault();
+    method public void setLowerCaseFirst(boolean);
+    method public void setNumericCollation(boolean);
+    method public void setNumericCollationDefault();
+    method public void setStrengthDefault();
+    method public void setUpperCaseFirst(boolean);
+  }
+
+  public abstract class SearchIterator {
+    ctor protected SearchIterator(java.text.CharacterIterator, android.icu.text.BreakIterator);
+    method public final int first();
+    method public final int following(int);
+    method public android.icu.text.BreakIterator getBreakIterator();
+    method public android.icu.text.SearchIterator.ElementComparisonType getElementComparisonType();
+    method public abstract int getIndex();
+    method public int getMatchLength();
+    method public int getMatchStart();
+    method public java.lang.String getMatchedText();
+    method public java.text.CharacterIterator getTarget();
+    method protected abstract int handleNext(int);
+    method protected abstract int handlePrevious(int);
+    method public boolean isOverlapping();
+    method public final int last();
+    method public int next();
+    method public final int preceding(int);
+    method public int previous();
+    method public void reset();
+    method public void setBreakIterator(android.icu.text.BreakIterator);
+    method public void setElementComparisonType(android.icu.text.SearchIterator.ElementComparisonType);
+    method public void setIndex(int);
+    method protected void setMatchLength(int);
+    method public void setOverlapping(boolean);
+    method public void setTarget(java.text.CharacterIterator);
+    field public static final int DONE = -1; // 0xffffffff
+    field protected android.icu.text.BreakIterator breakIterator;
+    field protected int matchLength;
+    field protected java.text.CharacterIterator targetText;
+  }
+
+  public static final class SearchIterator.ElementComparisonType extends java.lang.Enum {
+    method public static android.icu.text.SearchIterator.ElementComparisonType valueOf(java.lang.String);
+    method public static final android.icu.text.SearchIterator.ElementComparisonType[] values();
+    enum_constant public static final android.icu.text.SearchIterator.ElementComparisonType ANY_BASE_WEIGHT_IS_WILDCARD;
+    enum_constant public static final android.icu.text.SearchIterator.ElementComparisonType PATTERN_BASE_WEIGHT_IS_WILDCARD;
+    enum_constant public static final android.icu.text.SearchIterator.ElementComparisonType STANDARD_ELEMENT_COMPARISON;
+  }
+
+  public class SelectFormat extends java.text.Format {
+    ctor public SelectFormat(java.lang.String);
+    method public void applyPattern(java.lang.String);
+    method public final java.lang.String format(java.lang.String);
+    method public java.lang.StringBuffer format(java.lang.Object, java.lang.StringBuffer, java.text.FieldPosition);
+    method public java.lang.Object parseObject(java.lang.String, java.text.ParsePosition);
+    method public java.lang.String toPattern();
+  }
+
+  public class SimpleDateFormat extends android.icu.text.DateFormat {
+    ctor public SimpleDateFormat();
+    ctor public SimpleDateFormat(java.lang.String);
+    ctor public SimpleDateFormat(java.lang.String, java.util.Locale);
+    ctor public SimpleDateFormat(java.lang.String, android.icu.util.ULocale);
+    ctor public SimpleDateFormat(java.lang.String, java.lang.String, android.icu.util.ULocale);
+    ctor public SimpleDateFormat(java.lang.String, android.icu.text.DateFormatSymbols);
+    method public void applyLocalizedPattern(java.lang.String);
+    method public void applyPattern(java.lang.String);
+    method public java.lang.StringBuffer format(android.icu.util.Calendar, java.lang.StringBuffer, java.text.FieldPosition);
+    method public java.util.Date get2DigitYearStart();
+    method public android.icu.text.DateFormatSymbols getDateFormatSymbols();
+    method public android.icu.text.NumberFormat getNumberFormat(char);
+    method protected android.icu.text.DateFormatSymbols getSymbols();
+    method public android.icu.text.TimeZoneFormat getTimeZoneFormat();
+    method protected int matchQuarterString(java.lang.String, int, int, java.lang.String[], android.icu.util.Calendar);
+    method protected int matchString(java.lang.String, int, int, java.lang.String[], android.icu.util.Calendar);
+    method public void parse(java.lang.String, android.icu.util.Calendar, java.text.ParsePosition);
+    method protected android.icu.text.DateFormat.Field patternCharToDateFormatField(char);
+    method public void set2DigitYearStart(java.util.Date);
+    method public void setDateFormatSymbols(android.icu.text.DateFormatSymbols);
+    method public void setNumberFormat(java.lang.String, android.icu.text.NumberFormat);
+    method public void setTimeZoneFormat(android.icu.text.TimeZoneFormat);
+    method protected java.lang.String subFormat(char, int, int, java.text.FieldPosition, android.icu.text.DateFormatSymbols, android.icu.util.Calendar) throws java.lang.IllegalArgumentException;
+    method protected int subParse(java.lang.String, int, char, int, boolean, boolean, boolean[], android.icu.util.Calendar);
+    method public java.lang.String toLocalizedPattern();
+    method public java.lang.String toPattern();
+    method protected java.lang.String zeroPaddingNumber(long, int, int);
+  }
+
+  public class StringPrepParseException extends java.text.ParseException {
+    ctor public StringPrepParseException(java.lang.String, int);
+    ctor public StringPrepParseException(java.lang.String, int, java.lang.String, int);
+    ctor public StringPrepParseException(java.lang.String, int, java.lang.String, int, int);
+    method public int getError();
+    field public static final int ACE_PREFIX_ERROR = 6; // 0x6
+    field public static final int BUFFER_OVERFLOW_ERROR = 9; // 0x9
+    field public static final int CHECK_BIDI_ERROR = 4; // 0x4
+    field public static final int DOMAIN_NAME_TOO_LONG_ERROR = 11; // 0xb
+    field public static final int ILLEGAL_CHAR_FOUND = 1; // 0x1
+    field public static final int INVALID_CHAR_FOUND = 0; // 0x0
+    field public static final int LABEL_TOO_LONG_ERROR = 8; // 0x8
+    field public static final int PROHIBITED_ERROR = 2; // 0x2
+    field public static final int STD3_ASCII_RULES_ERROR = 5; // 0x5
+    field public static final int UNASSIGNED_ERROR = 3; // 0x3
+    field public static final int VERIFICATION_ERROR = 7; // 0x7
+    field public static final int ZERO_LENGTH_LABEL = 10; // 0xa
+  }
+
+  public final class StringSearch extends android.icu.text.SearchIterator {
+    ctor public StringSearch(java.lang.String, java.text.CharacterIterator, android.icu.text.RuleBasedCollator, android.icu.text.BreakIterator);
+    ctor public StringSearch(java.lang.String, java.text.CharacterIterator, android.icu.text.RuleBasedCollator);
+    ctor public StringSearch(java.lang.String, java.text.CharacterIterator, java.util.Locale);
+    ctor public StringSearch(java.lang.String, java.text.CharacterIterator, android.icu.util.ULocale);
+    ctor public StringSearch(java.lang.String, java.lang.String);
+    method public android.icu.text.RuleBasedCollator getCollator();
+    method public int getIndex();
+    method public java.lang.String getPattern();
+    method protected int handleNext(int);
+    method protected int handlePrevious(int);
+    method public boolean isCanonical();
+    method public void setCanonical(boolean);
+    method public void setCollator(android.icu.text.RuleBasedCollator);
+    method public void setPattern(java.lang.String);
+  }
+
+  public abstract interface SymbolTable {
+    method public abstract char[] lookup(java.lang.String);
+    method public abstract android.icu.text.UnicodeMatcher lookupMatcher(int);
+    method public abstract java.lang.String parseReference(java.lang.String, java.text.ParsePosition, int);
+    field public static final char SYMBOL_REF = 36; // 0x0024 '$'
+  }
+
+  public class TimeZoneFormat extends android.icu.text.UFormat implements android.icu.util.Freezable java.io.Serializable {
+    ctor protected TimeZoneFormat(android.icu.util.ULocale);
+    method public android.icu.text.TimeZoneFormat cloneAsThawed();
+    method public final java.lang.String format(android.icu.text.TimeZoneFormat.Style, android.icu.util.TimeZone, long);
+    method public java.lang.String format(android.icu.text.TimeZoneFormat.Style, android.icu.util.TimeZone, long, android.icu.util.Output<android.icu.text.TimeZoneFormat.TimeType>);
+    method public java.lang.StringBuffer format(java.lang.Object, java.lang.StringBuffer, java.text.FieldPosition);
+    method public final java.lang.String formatOffsetISO8601Basic(int, boolean, boolean, boolean);
+    method public final java.lang.String formatOffsetISO8601Extended(int, boolean, boolean, boolean);
+    method public java.lang.String formatOffsetLocalizedGMT(int);
+    method public java.lang.String formatOffsetShortLocalizedGMT(int);
+    method public android.icu.text.TimeZoneFormat freeze();
+    method public java.util.EnumSet<android.icu.text.TimeZoneFormat.ParseOption> getDefaultParseOptions();
+    method public java.lang.String getGMTOffsetDigits();
+    method public java.lang.String getGMTOffsetPattern(android.icu.text.TimeZoneFormat.GMTOffsetPatternType);
+    method public java.lang.String getGMTPattern();
+    method public java.lang.String getGMTZeroFormat();
+    method public static android.icu.text.TimeZoneFormat getInstance(android.icu.util.ULocale);
+    method public static android.icu.text.TimeZoneFormat getInstance(java.util.Locale);
+    method public android.icu.text.TimeZoneNames getTimeZoneNames();
+    method public boolean isFrozen();
+    method public android.icu.util.TimeZone parse(android.icu.text.TimeZoneFormat.Style, java.lang.String, java.text.ParsePosition, java.util.EnumSet<android.icu.text.TimeZoneFormat.ParseOption>, android.icu.util.Output<android.icu.text.TimeZoneFormat.TimeType>);
+    method public android.icu.util.TimeZone parse(android.icu.text.TimeZoneFormat.Style, java.lang.String, java.text.ParsePosition, android.icu.util.Output<android.icu.text.TimeZoneFormat.TimeType>);
+    method public final android.icu.util.TimeZone parse(java.lang.String, java.text.ParsePosition);
+    method public final android.icu.util.TimeZone parse(java.lang.String) throws java.text.ParseException;
+    method public java.lang.Object parseObject(java.lang.String, java.text.ParsePosition);
+    method public final int parseOffsetISO8601(java.lang.String, java.text.ParsePosition);
+    method public int parseOffsetLocalizedGMT(java.lang.String, java.text.ParsePosition);
+    method public int parseOffsetShortLocalizedGMT(java.lang.String, java.text.ParsePosition);
+    method public android.icu.text.TimeZoneFormat setDefaultParseOptions(java.util.EnumSet<android.icu.text.TimeZoneFormat.ParseOption>);
+    method public android.icu.text.TimeZoneFormat setGMTOffsetDigits(java.lang.String);
+    method public android.icu.text.TimeZoneFormat setGMTOffsetPattern(android.icu.text.TimeZoneFormat.GMTOffsetPatternType, java.lang.String);
+    method public android.icu.text.TimeZoneFormat setGMTPattern(java.lang.String);
+    method public android.icu.text.TimeZoneFormat setGMTZeroFormat(java.lang.String);
+    method public android.icu.text.TimeZoneFormat setTimeZoneNames(android.icu.text.TimeZoneNames);
+  }
+
+  public static final class TimeZoneFormat.GMTOffsetPatternType extends java.lang.Enum {
+    method public static android.icu.text.TimeZoneFormat.GMTOffsetPatternType valueOf(java.lang.String);
+    method public static final android.icu.text.TimeZoneFormat.GMTOffsetPatternType[] values();
+    enum_constant public static final android.icu.text.TimeZoneFormat.GMTOffsetPatternType NEGATIVE_H;
+    enum_constant public static final android.icu.text.TimeZoneFormat.GMTOffsetPatternType NEGATIVE_HM;
+    enum_constant public static final android.icu.text.TimeZoneFormat.GMTOffsetPatternType NEGATIVE_HMS;
+    enum_constant public static final android.icu.text.TimeZoneFormat.GMTOffsetPatternType POSITIVE_H;
+    enum_constant public static final android.icu.text.TimeZoneFormat.GMTOffsetPatternType POSITIVE_HM;
+    enum_constant public static final android.icu.text.TimeZoneFormat.GMTOffsetPatternType POSITIVE_HMS;
+  }
+
+  public static final class TimeZoneFormat.ParseOption extends java.lang.Enum {
+    method public static android.icu.text.TimeZoneFormat.ParseOption valueOf(java.lang.String);
+    method public static final android.icu.text.TimeZoneFormat.ParseOption[] values();
+    enum_constant public static final android.icu.text.TimeZoneFormat.ParseOption ALL_STYLES;
+    enum_constant public static final android.icu.text.TimeZoneFormat.ParseOption TZ_DATABASE_ABBREVIATIONS;
+  }
+
+  public static final class TimeZoneFormat.Style extends java.lang.Enum {
+    method public static android.icu.text.TimeZoneFormat.Style valueOf(java.lang.String);
+    method public static final android.icu.text.TimeZoneFormat.Style[] values();
+    enum_constant public static final android.icu.text.TimeZoneFormat.Style EXEMPLAR_LOCATION;
+    enum_constant public static final android.icu.text.TimeZoneFormat.Style GENERIC_LOCATION;
+    enum_constant public static final android.icu.text.TimeZoneFormat.Style GENERIC_LONG;
+    enum_constant public static final android.icu.text.TimeZoneFormat.Style GENERIC_SHORT;
+    enum_constant public static final android.icu.text.TimeZoneFormat.Style ISO_BASIC_FIXED;
+    enum_constant public static final android.icu.text.TimeZoneFormat.Style ISO_BASIC_FULL;
+    enum_constant public static final android.icu.text.TimeZoneFormat.Style ISO_BASIC_LOCAL_FIXED;
+    enum_constant public static final android.icu.text.TimeZoneFormat.Style ISO_BASIC_LOCAL_FULL;
+    enum_constant public static final android.icu.text.TimeZoneFormat.Style ISO_BASIC_LOCAL_SHORT;
+    enum_constant public static final android.icu.text.TimeZoneFormat.Style ISO_BASIC_SHORT;
+    enum_constant public static final android.icu.text.TimeZoneFormat.Style ISO_EXTENDED_FIXED;
+    enum_constant public static final android.icu.text.TimeZoneFormat.Style ISO_EXTENDED_FULL;
+    enum_constant public static final android.icu.text.TimeZoneFormat.Style ISO_EXTENDED_LOCAL_FIXED;
+    enum_constant public static final android.icu.text.TimeZoneFormat.Style ISO_EXTENDED_LOCAL_FULL;
+    enum_constant public static final android.icu.text.TimeZoneFormat.Style LOCALIZED_GMT;
+    enum_constant public static final android.icu.text.TimeZoneFormat.Style LOCALIZED_GMT_SHORT;
+    enum_constant public static final android.icu.text.TimeZoneFormat.Style SPECIFIC_LONG;
+    enum_constant public static final android.icu.text.TimeZoneFormat.Style SPECIFIC_SHORT;
+    enum_constant public static final android.icu.text.TimeZoneFormat.Style ZONE_ID;
+    enum_constant public static final android.icu.text.TimeZoneFormat.Style ZONE_ID_SHORT;
+  }
+
+  public static final class TimeZoneFormat.TimeType extends java.lang.Enum {
+    method public static android.icu.text.TimeZoneFormat.TimeType valueOf(java.lang.String);
+    method public static final android.icu.text.TimeZoneFormat.TimeType[] values();
+    enum_constant public static final android.icu.text.TimeZoneFormat.TimeType DAYLIGHT;
+    enum_constant public static final android.icu.text.TimeZoneFormat.TimeType STANDARD;
+    enum_constant public static final android.icu.text.TimeZoneFormat.TimeType UNKNOWN;
+  }
+
+  public abstract class TimeZoneNames implements java.io.Serializable {
+    method public abstract java.util.Set<java.lang.String> getAvailableMetaZoneIDs();
+    method public abstract java.util.Set<java.lang.String> getAvailableMetaZoneIDs(java.lang.String);
+    method public final java.lang.String getDisplayName(java.lang.String, android.icu.text.TimeZoneNames.NameType, long);
+    method public java.lang.String getExemplarLocationName(java.lang.String);
+    method public static android.icu.text.TimeZoneNames getInstance(android.icu.util.ULocale);
+    method public static android.icu.text.TimeZoneNames getInstance(java.util.Locale);
+    method public abstract java.lang.String getMetaZoneDisplayName(java.lang.String, android.icu.text.TimeZoneNames.NameType);
+    method public abstract java.lang.String getMetaZoneID(java.lang.String, long);
+    method public abstract java.lang.String getReferenceZoneID(java.lang.String, java.lang.String);
+    method public static android.icu.text.TimeZoneNames getTZDBInstance(android.icu.util.ULocale);
+    method public abstract java.lang.String getTimeZoneDisplayName(java.lang.String, android.icu.text.TimeZoneNames.NameType);
+  }
+
+  public static final class TimeZoneNames.NameType extends java.lang.Enum {
+    method public static android.icu.text.TimeZoneNames.NameType valueOf(java.lang.String);
+    method public static final android.icu.text.TimeZoneNames.NameType[] values();
+    enum_constant public static final android.icu.text.TimeZoneNames.NameType EXEMPLAR_LOCATION;
+    enum_constant public static final android.icu.text.TimeZoneNames.NameType LONG_DAYLIGHT;
+    enum_constant public static final android.icu.text.TimeZoneNames.NameType LONG_GENERIC;
+    enum_constant public static final android.icu.text.TimeZoneNames.NameType LONG_STANDARD;
+    enum_constant public static final android.icu.text.TimeZoneNames.NameType SHORT_DAYLIGHT;
+    enum_constant public static final android.icu.text.TimeZoneNames.NameType SHORT_GENERIC;
+    enum_constant public static final android.icu.text.TimeZoneNames.NameType SHORT_STANDARD;
+  }
+
+  public abstract class UCharacterIterator implements java.lang.Cloneable {
+    ctor protected UCharacterIterator();
+    method public java.lang.Object clone() throws java.lang.CloneNotSupportedException;
+    method public abstract int current();
+    method public int currentCodePoint();
+    method public java.text.CharacterIterator getCharacterIterator();
+    method public abstract int getIndex();
+    method public static final android.icu.text.UCharacterIterator getInstance(android.icu.text.Replaceable);
+    method public static final android.icu.text.UCharacterIterator getInstance(java.lang.String);
+    method public static final android.icu.text.UCharacterIterator getInstance(char[]);
+    method public static final android.icu.text.UCharacterIterator getInstance(char[], int, int);
+    method public static final android.icu.text.UCharacterIterator getInstance(java.lang.StringBuffer);
+    method public static final android.icu.text.UCharacterIterator getInstance(java.text.CharacterIterator);
+    method public abstract int getLength();
+    method public abstract int getText(char[], int);
+    method public final int getText(char[]);
+    method public java.lang.String getText();
+    method public int moveCodePointIndex(int);
+    method public int moveIndex(int);
+    method public abstract int next();
+    method public int nextCodePoint();
+    method public abstract int previous();
+    method public int previousCodePoint();
+    method public abstract void setIndex(int);
+    method public void setToLimit();
+    method public void setToStart();
+    field public static final int DONE = -1; // 0xffffffff
+  }
+
+  public abstract class UFormat extends java.text.Format {
+    ctor public UFormat();
+  }
+
+  public abstract class UnicodeFilter implements android.icu.text.UnicodeMatcher {
+    method public abstract boolean contains(int);
+    method public int matches(android.icu.text.Replaceable, int[], int, boolean);
+  }
+
+  public abstract interface UnicodeMatcher {
+    method public abstract void addMatchSetTo(android.icu.text.UnicodeSet);
+    method public abstract int matches(android.icu.text.Replaceable, int[], int, boolean);
+    method public abstract boolean matchesIndexValue(int);
+    method public abstract java.lang.String toPattern(boolean);
+    field public static final char ETHER = 65535; // 0xffff '\uffff'
+    field public static final int U_MATCH = 2; // 0x2
+    field public static final int U_MISMATCH = 0; // 0x0
+    field public static final int U_PARTIAL_MATCH = 1; // 0x1
+  }
+
+  public class UnicodeSet extends android.icu.text.UnicodeFilter implements java.lang.Comparable android.icu.util.Freezable java.lang.Iterable {
+    ctor public UnicodeSet();
+    ctor public UnicodeSet(android.icu.text.UnicodeSet);
+    ctor public UnicodeSet(int, int);
+    ctor public UnicodeSet(int...);
+    ctor public UnicodeSet(java.lang.String);
+    ctor public UnicodeSet(java.lang.String, boolean);
+    ctor public UnicodeSet(java.lang.String, int);
+    ctor public UnicodeSet(java.lang.String, java.text.ParsePosition, android.icu.text.SymbolTable);
+    ctor public UnicodeSet(java.lang.String, java.text.ParsePosition, android.icu.text.SymbolTable, int);
+    method public java.lang.StringBuffer _generatePattern(java.lang.StringBuffer, boolean);
+    method public java.lang.StringBuffer _generatePattern(java.lang.StringBuffer, boolean, boolean);
+    method public android.icu.text.UnicodeSet add(int, int);
+    method public final android.icu.text.UnicodeSet add(int);
+    method public final android.icu.text.UnicodeSet add(java.lang.CharSequence);
+    method public android.icu.text.UnicodeSet add(java.lang.Iterable<?>);
+    method public android.icu.text.UnicodeSet addAll(int, int);
+    method public final android.icu.text.UnicodeSet addAll(java.lang.CharSequence);
+    method public android.icu.text.UnicodeSet addAll(android.icu.text.UnicodeSet);
+    method public android.icu.text.UnicodeSet addAll(java.lang.Iterable<?>);
+    method public android.icu.text.UnicodeSet addAll(T...);
+    method public T addAllTo(T);
+    method public java.lang.String[] addAllTo(java.lang.String[]);
+    method public static U addAllTo(java.lang.Iterable<T>, U);
+    method public static T[] addAllTo(java.lang.Iterable<T>, T[]);
+    method public void addMatchSetTo(android.icu.text.UnicodeSet);
+    method public android.icu.text.UnicodeSet applyIntPropertyValue(int, int);
+    method public final android.icu.text.UnicodeSet applyPattern(java.lang.String);
+    method public android.icu.text.UnicodeSet applyPattern(java.lang.String, boolean);
+    method public android.icu.text.UnicodeSet applyPattern(java.lang.String, int);
+    method public android.icu.text.UnicodeSet applyPropertyAlias(java.lang.String, java.lang.String);
+    method public android.icu.text.UnicodeSet applyPropertyAlias(java.lang.String, java.lang.String, android.icu.text.SymbolTable);
+    method public int charAt(int);
+    method public android.icu.text.UnicodeSet clear();
+    method public java.lang.Object clone();
+    method public android.icu.text.UnicodeSet cloneAsThawed();
+    method public android.icu.text.UnicodeSet closeOver(int);
+    method public android.icu.text.UnicodeSet compact();
+    method public static int compare(java.lang.CharSequence, int);
+    method public static int compare(int, java.lang.CharSequence);
+    method public static int compare(java.lang.Iterable<T>, java.lang.Iterable<T>);
+    method public static int compare(java.util.Collection<T>, java.util.Collection<T>, android.icu.text.UnicodeSet.ComparisonStyle);
+    method public int compareTo(android.icu.text.UnicodeSet);
+    method public int compareTo(android.icu.text.UnicodeSet, android.icu.text.UnicodeSet.ComparisonStyle);
+    method public int compareTo(java.lang.Iterable<java.lang.String>);
+    method public android.icu.text.UnicodeSet complement(int, int);
+    method public final android.icu.text.UnicodeSet complement(int);
+    method public android.icu.text.UnicodeSet complement();
+    method public final android.icu.text.UnicodeSet complement(java.lang.CharSequence);
+    method public final android.icu.text.UnicodeSet complementAll(java.lang.CharSequence);
+    method public android.icu.text.UnicodeSet complementAll(android.icu.text.UnicodeSet);
+    method public boolean contains(int);
+    method public boolean contains(int, int);
+    method public final boolean contains(java.lang.CharSequence);
+    method public boolean containsAll(android.icu.text.UnicodeSet);
+    method public boolean containsAll(java.lang.String);
+    method public boolean containsAll(java.lang.Iterable<T>);
+    method public boolean containsNone(int, int);
+    method public boolean containsNone(android.icu.text.UnicodeSet);
+    method public boolean containsNone(java.lang.CharSequence);
+    method public boolean containsNone(java.lang.Iterable<T>);
+    method public final boolean containsSome(int, int);
+    method public final boolean containsSome(android.icu.text.UnicodeSet);
+    method public final boolean containsSome(java.lang.CharSequence);
+    method public final boolean containsSome(java.lang.Iterable<T>);
+    method public android.icu.text.UnicodeSet freeze();
+    method public static android.icu.text.UnicodeSet from(java.lang.CharSequence);
+    method public static android.icu.text.UnicodeSet fromAll(java.lang.CharSequence);
+    method public int getRangeCount();
+    method public int getRangeEnd(int);
+    method public int getRangeStart(int);
+    method public int indexOf(int);
+    method public boolean isEmpty();
+    method public boolean isFrozen();
+    method public java.util.Iterator<java.lang.String> iterator();
+    method public boolean matchesIndexValue(int);
+    method public java.lang.Iterable<android.icu.text.UnicodeSet.EntryRange> ranges();
+    method public android.icu.text.UnicodeSet remove(int, int);
+    method public final android.icu.text.UnicodeSet remove(int);
+    method public final android.icu.text.UnicodeSet remove(java.lang.CharSequence);
+    method public final android.icu.text.UnicodeSet removeAll(java.lang.CharSequence);
+    method public android.icu.text.UnicodeSet removeAll(android.icu.text.UnicodeSet);
+    method public android.icu.text.UnicodeSet removeAll(java.lang.Iterable<T>);
+    method public final android.icu.text.UnicodeSet removeAllStrings();
+    method public static boolean resemblesPattern(java.lang.String, int);
+    method public android.icu.text.UnicodeSet retain(int, int);
+    method public final android.icu.text.UnicodeSet retain(int);
+    method public final android.icu.text.UnicodeSet retain(java.lang.CharSequence);
+    method public final android.icu.text.UnicodeSet retainAll(java.lang.CharSequence);
+    method public android.icu.text.UnicodeSet retainAll(android.icu.text.UnicodeSet);
+    method public android.icu.text.UnicodeSet retainAll(java.lang.Iterable<T>);
+    method public android.icu.text.UnicodeSet set(int, int);
+    method public android.icu.text.UnicodeSet set(android.icu.text.UnicodeSet);
+    method public int size();
+    method public int span(java.lang.CharSequence, android.icu.text.UnicodeSet.SpanCondition);
+    method public int span(java.lang.CharSequence, int, android.icu.text.UnicodeSet.SpanCondition);
+    method public int spanBack(java.lang.CharSequence, android.icu.text.UnicodeSet.SpanCondition);
+    method public int spanBack(java.lang.CharSequence, int, android.icu.text.UnicodeSet.SpanCondition);
+    method public java.util.Collection<java.lang.String> strings();
+    method public static java.lang.String[] toArray(android.icu.text.UnicodeSet);
+    method public java.lang.String toPattern(boolean);
+    field public static final int ADD_CASE_MAPPINGS = 4; // 0x4
+    field public static final android.icu.text.UnicodeSet ALL_CODE_POINTS;
+    field public static final int CASE = 2; // 0x2
+    field public static final int CASE_INSENSITIVE = 2; // 0x2
+    field public static final android.icu.text.UnicodeSet EMPTY;
+    field public static final int IGNORE_SPACE = 1; // 0x1
+    field public static final int MAX_VALUE = 1114111; // 0x10ffff
+    field public static final int MIN_VALUE = 0; // 0x0
+  }
+
+  public static final class UnicodeSet.ComparisonStyle extends java.lang.Enum {
+    method public static android.icu.text.UnicodeSet.ComparisonStyle valueOf(java.lang.String);
+    method public static final android.icu.text.UnicodeSet.ComparisonStyle[] values();
+    enum_constant public static final android.icu.text.UnicodeSet.ComparisonStyle LEXICOGRAPHIC;
+    enum_constant public static final android.icu.text.UnicodeSet.ComparisonStyle LONGER_FIRST;
+    enum_constant public static final android.icu.text.UnicodeSet.ComparisonStyle SHORTER_FIRST;
+  }
+
+  public static class UnicodeSet.EntryRange {
+    field public int codepoint;
+    field public int codepointEnd;
+  }
+
+  public static final class UnicodeSet.SpanCondition extends java.lang.Enum {
+    method public static android.icu.text.UnicodeSet.SpanCondition valueOf(java.lang.String);
+    method public static final android.icu.text.UnicodeSet.SpanCondition[] values();
+    enum_constant public static final android.icu.text.UnicodeSet.SpanCondition CONDITION_COUNT;
+    enum_constant public static final android.icu.text.UnicodeSet.SpanCondition CONTAINED;
+    enum_constant public static final android.icu.text.UnicodeSet.SpanCondition NOT_CONTAINED;
+    enum_constant public static final android.icu.text.UnicodeSet.SpanCondition SIMPLE;
+  }
+
+  public class UnicodeSetIterator {
+    ctor public UnicodeSetIterator(android.icu.text.UnicodeSet);
+    ctor public UnicodeSetIterator();
+    method public java.lang.String getString();
+    method public boolean next();
+    method public boolean nextRange();
+    method public void reset(android.icu.text.UnicodeSet);
+    method public void reset();
+    field public static int IS_STRING;
+    field public int codepoint;
+    field public int codepointEnd;
+    field public java.lang.String string;
+  }
+
+  public class UnicodeSetSpanner {
+    ctor public UnicodeSetSpanner(android.icu.text.UnicodeSet);
+    method public int countIn(java.lang.CharSequence);
+    method public int countIn(java.lang.CharSequence, android.icu.text.UnicodeSetSpanner.CountMethod);
+    method public int countIn(java.lang.CharSequence, android.icu.text.UnicodeSetSpanner.CountMethod, android.icu.text.UnicodeSet.SpanCondition);
+    method public java.lang.String deleteFrom(java.lang.CharSequence);
+    method public java.lang.String deleteFrom(java.lang.CharSequence, android.icu.text.UnicodeSet.SpanCondition);
+    method public android.icu.text.UnicodeSet getUnicodeSet();
+    method public java.lang.String replaceFrom(java.lang.CharSequence, java.lang.CharSequence);
+    method public java.lang.String replaceFrom(java.lang.CharSequence, java.lang.CharSequence, android.icu.text.UnicodeSetSpanner.CountMethod);
+    method public java.lang.String replaceFrom(java.lang.CharSequence, java.lang.CharSequence, android.icu.text.UnicodeSetSpanner.CountMethod, android.icu.text.UnicodeSet.SpanCondition);
+    method public java.lang.CharSequence trim(java.lang.CharSequence);
+    method public java.lang.CharSequence trim(java.lang.CharSequence, android.icu.text.UnicodeSetSpanner.TrimOption);
+    method public java.lang.CharSequence trim(java.lang.CharSequence, android.icu.text.UnicodeSetSpanner.TrimOption, android.icu.text.UnicodeSet.SpanCondition);
+  }
+
+  public static final class UnicodeSetSpanner.CountMethod extends java.lang.Enum {
+    method public static android.icu.text.UnicodeSetSpanner.CountMethod valueOf(java.lang.String);
+    method public static final android.icu.text.UnicodeSetSpanner.CountMethod[] values();
+    enum_constant public static final android.icu.text.UnicodeSetSpanner.CountMethod MIN_ELEMENTS;
+    enum_constant public static final android.icu.text.UnicodeSetSpanner.CountMethod WHOLE_SPAN;
+  }
+
+  public static final class UnicodeSetSpanner.TrimOption extends java.lang.Enum {
+    method public static android.icu.text.UnicodeSetSpanner.TrimOption valueOf(java.lang.String);
+    method public static final android.icu.text.UnicodeSetSpanner.TrimOption[] values();
+    enum_constant public static final android.icu.text.UnicodeSetSpanner.TrimOption BOTH;
+    enum_constant public static final android.icu.text.UnicodeSetSpanner.TrimOption LEADING;
+    enum_constant public static final android.icu.text.UnicodeSetSpanner.TrimOption TRAILING;
+  }
+
+}
+
+package android.icu.util {
+
+  public class BuddhistCalendar extends android.icu.util.GregorianCalendar {
+    ctor public BuddhistCalendar();
+    ctor public BuddhistCalendar(android.icu.util.TimeZone);
+    ctor public BuddhistCalendar(java.util.Locale);
+    ctor public BuddhistCalendar(android.icu.util.ULocale);
+    ctor public BuddhistCalendar(android.icu.util.TimeZone, java.util.Locale);
+    ctor public BuddhistCalendar(android.icu.util.TimeZone, android.icu.util.ULocale);
+    ctor public BuddhistCalendar(java.util.Date);
+    ctor public BuddhistCalendar(int, int, int);
+    ctor public BuddhistCalendar(int, int, int, int, int, int);
+    field public static final int BE = 0; // 0x0
+  }
+
+  public class ByteArrayWrapper implements java.lang.Comparable {
+    ctor public ByteArrayWrapper();
+    ctor public ByteArrayWrapper(byte[], int);
+    ctor public ByteArrayWrapper(java.nio.ByteBuffer);
+    method public final android.icu.util.ByteArrayWrapper append(byte[], int, int);
+    method public int compareTo(android.icu.util.ByteArrayWrapper);
+    method public android.icu.util.ByteArrayWrapper ensureCapacity(int);
+    method public final byte[] releaseBytes();
+    method public final android.icu.util.ByteArrayWrapper set(byte[], int, int);
+    field public byte[] bytes;
+    field public int size;
+  }
+
+   abstract class CECalendar extends android.icu.util.Calendar {
+    ctor protected CECalendar();
+    ctor protected CECalendar(android.icu.util.TimeZone);
+    ctor protected CECalendar(java.util.Locale);
+    ctor protected CECalendar(android.icu.util.ULocale);
+    ctor protected CECalendar(android.icu.util.TimeZone, java.util.Locale);
+    ctor protected CECalendar(android.icu.util.TimeZone, android.icu.util.ULocale);
+    ctor protected CECalendar(int, int, int);
+    ctor protected CECalendar(java.util.Date);
+    ctor protected CECalendar(int, int, int, int, int, int);
+    method public static int ceToJD(long, int, int, int);
+    method protected abstract int getJDEpochOffset();
+    method protected int handleComputeMonthStart(int, int, boolean);
+    method protected int handleGetLimit(int, int);
+    method public static void jdToCE(int, int, int[]);
+  }
+
+  public abstract class Calendar implements java.lang.Cloneable java.lang.Comparable java.io.Serializable {
+    ctor protected Calendar();
+    ctor protected Calendar(android.icu.util.TimeZone, java.util.Locale);
+    ctor protected Calendar(android.icu.util.TimeZone, android.icu.util.ULocale);
+    method public void add(int, int);
+    method public boolean after(java.lang.Object);
+    method public boolean before(java.lang.Object);
+    method public final void clear();
+    method public final void clear(int);
+    method public java.lang.Object clone();
+    method public int compareTo(android.icu.util.Calendar);
+    method protected void complete();
+    method protected void computeFields();
+    method protected final void computeGregorianFields(int);
+    method protected int computeGregorianMonthStart(int, int);
+    method protected int computeJulianDay();
+    method protected int computeMillisInDay();
+    method protected void computeTime();
+    method protected int computeZoneOffset(long, int);
+    method public int fieldDifference(java.util.Date, int);
+    method protected java.lang.String fieldName(int);
+    method protected static final long floorDivide(long, long);
+    method protected static final int floorDivide(int, int);
+    method protected static final int floorDivide(int, int, int[]);
+    method protected static final int floorDivide(long, int, int[]);
+    method public final int get(int);
+    method public int getActualMaximum(int);
+    method public int getActualMinimum(int);
+    method public static java.util.Locale[] getAvailableLocales();
+    method public android.icu.text.DateFormat getDateTimeFormat(int, int, java.util.Locale);
+    method public android.icu.text.DateFormat getDateTimeFormat(int, int, android.icu.util.ULocale);
+    method public java.lang.String getDisplayName(java.util.Locale);
+    method public java.lang.String getDisplayName(android.icu.util.ULocale);
+    method public final int getFieldCount();
+    method protected int[][][] getFieldResolutionTable();
+    method public int getFirstDayOfWeek();
+    method public final int getGreatestMinimum(int);
+    method protected final int getGregorianDayOfMonth();
+    method protected final int getGregorianDayOfYear();
+    method protected final int getGregorianMonth();
+    method protected final int getGregorianYear();
+    method public static android.icu.util.Calendar getInstance();
+    method public static android.icu.util.Calendar getInstance(android.icu.util.TimeZone);
+    method public static android.icu.util.Calendar getInstance(java.util.Locale);
+    method public static android.icu.util.Calendar getInstance(android.icu.util.ULocale);
+    method public static android.icu.util.Calendar getInstance(android.icu.util.TimeZone, java.util.Locale);
+    method public static android.icu.util.Calendar getInstance(android.icu.util.TimeZone, android.icu.util.ULocale);
+    method public static final java.lang.String[] getKeywordValuesForLocale(java.lang.String, android.icu.util.ULocale, boolean);
+    method public final int getLeastMaximum(int);
+    method protected int getLimit(int, int);
+    method public final int getMaximum(int);
+    method public int getMinimalDaysInFirstWeek();
+    method public final int getMinimum(int);
+    method public int getRepeatedWallTimeOption();
+    method public int getSkippedWallTimeOption();
+    method protected final int getStamp(int);
+    method public final java.util.Date getTime();
+    method public long getTimeInMillis();
+    method public android.icu.util.TimeZone getTimeZone();
+    method public java.lang.String getType();
+    method public android.icu.util.Calendar.WeekData getWeekData();
+    method public static android.icu.util.Calendar.WeekData getWeekDataForRegion(java.lang.String);
+    method protected static final int gregorianMonthLength(int, int);
+    method protected static final int gregorianPreviousMonthLength(int, int);
+    method protected void handleComputeFields(int);
+    method protected int handleComputeJulianDay(int);
+    method protected abstract int handleComputeMonthStart(int, int, boolean);
+    method protected int[] handleCreateFields();
+    method protected android.icu.text.DateFormat handleGetDateFormat(java.lang.String, java.util.Locale);
+    method protected android.icu.text.DateFormat handleGetDateFormat(java.lang.String, java.lang.String, java.util.Locale);
+    method protected android.icu.text.DateFormat handleGetDateFormat(java.lang.String, android.icu.util.ULocale);
+    method protected abstract int handleGetExtendedYear();
+    method protected abstract int handleGetLimit(int, int);
+    method protected int handleGetMonthLength(int, int);
+    method protected int handleGetYearLength(int);
+    method protected final int internalGet(int);
+    method protected final int internalGet(int, int);
+    method protected final long internalGetTimeInMillis();
+    method protected final void internalSet(int, int);
+    method public boolean isEquivalentTo(android.icu.util.Calendar);
+    method protected static final boolean isGregorianLeapYear(int);
+    method public boolean isLenient();
+    method public final boolean isSet(int);
+    method public boolean isWeekend(java.util.Date);
+    method public boolean isWeekend();
+    method protected static final int julianDayToDayOfWeek(int);
+    method protected static final long julianDayToMillis(int);
+    method protected static final int millisToJulianDay(long);
+    method protected int newerField(int, int);
+    method protected int newestStamp(int, int, int);
+    method protected void pinField(int);
+    method protected void prepareGetActual(int, boolean);
+    method protected int resolveFields(int[][][]);
+    method public final void roll(int, boolean);
+    method public void roll(int, int);
+    method public final void set(int, int);
+    method public final void set(int, int, int);
+    method public final void set(int, int, int, int, int);
+    method public final void set(int, int, int, int, int, int);
+    method public void setFirstDayOfWeek(int);
+    method public void setLenient(boolean);
+    method public void setMinimalDaysInFirstWeek(int);
+    method public void setRepeatedWallTimeOption(int);
+    method public void setSkippedWallTimeOption(int);
+    method public final void setTime(java.util.Date);
+    method public void setTimeInMillis(long);
+    method public void setTimeZone(android.icu.util.TimeZone);
+    method public android.icu.util.Calendar setWeekData(android.icu.util.Calendar.WeekData);
+    method protected void validateField(int);
+    method protected final void validateField(int, int, int);
+    method protected void validateFields();
+    method protected int weekNumber(int, int, int);
+    method protected final int weekNumber(int, int);
+    field public static final int AM = 0; // 0x0
+    field public static final int AM_PM = 9; // 0x9
+    field public static final int APRIL = 3; // 0x3
+    field public static final int AUGUST = 7; // 0x7
+    field protected static final int BASE_FIELD_COUNT = 23; // 0x17
+    field public static final int DATE = 5; // 0x5
+    field public static final int DAY_OF_MONTH = 5; // 0x5
+    field public static final int DAY_OF_WEEK = 7; // 0x7
+    field public static final int DAY_OF_WEEK_IN_MONTH = 8; // 0x8
+    field public static final int DAY_OF_YEAR = 6; // 0x6
+    field public static final int DECEMBER = 11; // 0xb
+    field public static final int DOW_LOCAL = 18; // 0x12
+    field public static final int DST_OFFSET = 16; // 0x10
+    field protected static final int EPOCH_JULIAN_DAY = 2440588; // 0x253d8c
+    field public static final int ERA = 0; // 0x0
+    field public static final int EXTENDED_YEAR = 19; // 0x13
+    field public static final int FEBRUARY = 1; // 0x1
+    field public static final int FRIDAY = 6; // 0x6
+    field protected static final int GREATEST_MINIMUM = 1; // 0x1
+    field public static final int HOUR = 10; // 0xa
+    field public static final int HOUR_OF_DAY = 11; // 0xb
+    field protected static final int INTERNALLY_SET = 1; // 0x1
+    field public static final int IS_LEAP_MONTH = 22; // 0x16
+    field public static final int JANUARY = 0; // 0x0
+    field protected static final int JAN_1_1_JULIAN_DAY = 1721426; // 0x1a4452
+    field public static final int JULIAN_DAY = 20; // 0x14
+    field public static final int JULY = 6; // 0x6
+    field public static final int JUNE = 5; // 0x5
+    field protected static final int LEAST_MAXIMUM = 2; // 0x2
+    field public static final int MARCH = 2; // 0x2
+    field protected static final int MAXIMUM = 3; // 0x3
+    field protected static final java.util.Date MAX_DATE;
+    field protected static final int MAX_FIELD_COUNT = 32; // 0x20
+    field protected static final int MAX_JULIAN = 2130706432; // 0x7f000000
+    field protected static final long MAX_MILLIS = 183882168921600000L; // 0x28d47dbbf19b000L
+    field public static final int MAY = 4; // 0x4
+    field public static final int MILLISECOND = 14; // 0xe
+    field public static final int MILLISECONDS_IN_DAY = 21; // 0x15
+    field protected static final int MINIMUM = 0; // 0x0
+    field protected static final int MINIMUM_USER_STAMP = 2; // 0x2
+    field public static final int MINUTE = 12; // 0xc
+    field protected static final java.util.Date MIN_DATE;
+    field protected static final int MIN_JULIAN = -2130706432; // 0x81000000
+    field protected static final long MIN_MILLIS = -184303902528000000L; // 0xfd713893bf19b000L
+    field public static final int MONDAY = 2; // 0x2
+    field public static final int MONTH = 2; // 0x2
+    field public static final int NOVEMBER = 10; // 0xa
+    field public static final int OCTOBER = 9; // 0x9
+    field protected static final long ONE_DAY = 86400000L; // 0x5265c00L
+    field protected static final int ONE_HOUR = 3600000; // 0x36ee80
+    field protected static final int ONE_MINUTE = 60000; // 0xea60
+    field protected static final int ONE_SECOND = 1000; // 0x3e8
+    field protected static final long ONE_WEEK = 604800000L; // 0x240c8400L
+    field public static final int PM = 1; // 0x1
+    field protected static final int RESOLVE_REMAP = 32; // 0x20
+    field public static final int SATURDAY = 7; // 0x7
+    field public static final int SECOND = 13; // 0xd
+    field public static final int SEPTEMBER = 8; // 0x8
+    field public static final int SUNDAY = 1; // 0x1
+    field public static final int THURSDAY = 5; // 0x5
+    field public static final int TUESDAY = 3; // 0x3
+    field public static final int UNDECIMBER = 12; // 0xc
+    field protected static final int UNSET = 0; // 0x0
+    field public static final int WALLTIME_FIRST = 1; // 0x1
+    field public static final int WALLTIME_LAST = 0; // 0x0
+    field public static final int WALLTIME_NEXT_VALID = 2; // 0x2
+    field public static final int WEDNESDAY = 4; // 0x4
+    field public static final int WEEK_OF_MONTH = 4; // 0x4
+    field public static final int WEEK_OF_YEAR = 3; // 0x3
+    field public static final int YEAR = 1; // 0x1
+    field public static final int YEAR_WOY = 17; // 0x11
+    field public static final int ZONE_OFFSET = 15; // 0xf
+  }
+
+  public static final class Calendar.WeekData {
+    ctor public Calendar.WeekData(int, int, int, int, int, int);
+    field public final int firstDayOfWeek;
+    field public final int minimalDaysInFirstWeek;
+    field public final int weekendCease;
+    field public final int weekendCeaseMillis;
+    field public final int weekendOnset;
+    field public final int weekendOnsetMillis;
+  }
+
+  public class ChineseCalendar extends android.icu.util.Calendar {
+    ctor public ChineseCalendar();
+    ctor public ChineseCalendar(java.util.Date);
+    ctor public ChineseCalendar(int, int, int, int);
+    ctor public ChineseCalendar(int, int, int, int, int, int, int);
+    ctor public ChineseCalendar(int, int, int, int, int);
+    ctor public ChineseCalendar(int, int, int, int, int, int, int, int);
+    ctor public ChineseCalendar(java.util.Locale);
+    ctor public ChineseCalendar(android.icu.util.TimeZone);
+    ctor public ChineseCalendar(android.icu.util.TimeZone, java.util.Locale);
+    ctor public ChineseCalendar(android.icu.util.ULocale);
+    ctor public ChineseCalendar(android.icu.util.TimeZone, android.icu.util.ULocale);
+    method protected int handleComputeMonthStart(int, int, boolean);
+    method protected android.icu.text.DateFormat handleGetDateFormat(java.lang.String, java.lang.String, android.icu.util.ULocale);
+    method protected int handleGetExtendedYear();
+    method protected int handleGetLimit(int, int);
+  }
+
+  public final class CopticCalendar extends android.icu.util.CECalendar {
+    ctor public CopticCalendar();
+    ctor public CopticCalendar(android.icu.util.TimeZone);
+    ctor public CopticCalendar(java.util.Locale);
+    ctor public CopticCalendar(android.icu.util.ULocale);
+    ctor public CopticCalendar(android.icu.util.TimeZone, java.util.Locale);
+    ctor public CopticCalendar(android.icu.util.TimeZone, android.icu.util.ULocale);
+    ctor public CopticCalendar(int, int, int);
+    ctor public CopticCalendar(java.util.Date);
+    ctor public CopticCalendar(int, int, int, int, int, int);
+    method protected deprecated int getJDEpochOffset();
+    method protected deprecated int handleGetExtendedYear();
+    field public static final int AMSHIR = 5; // 0x5
+    field public static final int BABA = 1; // 0x1
+    field public static final int BARAMHAT = 6; // 0x6
+    field public static final int BARAMOUDA = 7; // 0x7
+    field public static final int BASHANS = 8; // 0x8
+    field public static final int EPEP = 10; // 0xa
+    field public static final int HATOR = 2; // 0x2
+    field public static final int KIAHK = 3; // 0x3
+    field public static final int MESRA = 11; // 0xb
+    field public static final int NASIE = 12; // 0xc
+    field public static final int PAONA = 9; // 0x9
+    field public static final int TOBA = 4; // 0x4
+    field public static final int TOUT = 0; // 0x0
+  }
+
+  public class Currency extends android.icu.util.MeasureUnit {
+    ctor protected Currency(java.lang.String);
+    method public static java.util.Set<android.icu.util.Currency> getAvailableCurrencies();
+    method public static java.lang.String[] getAvailableCurrencyCodes(android.icu.util.ULocale, java.util.Date);
+    method public static java.lang.String[] getAvailableCurrencyCodes(java.util.Locale, java.util.Date);
+    method public static java.util.Locale[] getAvailableLocales();
+    method public static android.icu.util.ULocale[] getAvailableULocales();
+    method public java.lang.String getCurrencyCode();
+    method public int getDefaultFractionDigits();
+    method public int getDefaultFractionDigits(android.icu.util.Currency.CurrencyUsage);
+    method public java.lang.String getDisplayName();
+    method public java.lang.String getDisplayName(java.util.Locale);
+    method public static android.icu.util.Currency getInstance(java.util.Locale);
+    method public static android.icu.util.Currency getInstance(android.icu.util.ULocale);
+    method public static android.icu.util.Currency getInstance(java.lang.String);
+    method public static final java.lang.String[] getKeywordValuesForLocale(java.lang.String, android.icu.util.ULocale, boolean);
+    method public java.lang.String getName(java.util.Locale, int, boolean[]);
+    method public java.lang.String getName(android.icu.util.ULocale, int, boolean[]);
+    method public java.lang.String getName(java.util.Locale, int, java.lang.String, boolean[]);
+    method public java.lang.String getName(android.icu.util.ULocale, int, java.lang.String, boolean[]);
+    method public int getNumericCode();
+    method public double getRoundingIncrement();
+    method public double getRoundingIncrement(android.icu.util.Currency.CurrencyUsage);
+    method public java.lang.String getSymbol();
+    method public java.lang.String getSymbol(java.util.Locale);
+    method public java.lang.String getSymbol(android.icu.util.ULocale);
+    method public static boolean isAvailable(java.lang.String, java.util.Date, java.util.Date);
+    method public static java.lang.Object registerInstance(android.icu.util.Currency, android.icu.util.ULocale);
+    method public static boolean unregister(java.lang.Object);
+    field public static final int LONG_NAME = 1; // 0x1
+    field public static final int PLURAL_LONG_NAME = 2; // 0x2
+    field public static final int SYMBOL_NAME = 0; // 0x0
+  }
+
+  public static final class Currency.CurrencyUsage extends java.lang.Enum {
+    method public static android.icu.util.Currency.CurrencyUsage valueOf(java.lang.String);
+    method public static final android.icu.util.Currency.CurrencyUsage[] values();
+    enum_constant public static final android.icu.util.Currency.CurrencyUsage CASH;
+    enum_constant public static final android.icu.util.Currency.CurrencyUsage STANDARD;
+  }
+
+  public class CurrencyAmount extends android.icu.util.Measure {
+    ctor public CurrencyAmount(java.lang.Number, android.icu.util.Currency);
+    ctor public CurrencyAmount(double, android.icu.util.Currency);
+    method public android.icu.util.Currency getCurrency();
+  }
+
+  public final class DateInterval implements java.io.Serializable {
+    ctor public DateInterval(long, long);
+    method public long getFromDate();
+    method public long getToDate();
+  }
+
+  public abstract interface Freezable implements java.lang.Cloneable {
+    method public abstract T cloneAsThawed();
+    method public abstract T freeze();
+    method public abstract boolean isFrozen();
+  }
+
+  public class GregorianCalendar extends android.icu.util.Calendar {
+    ctor public GregorianCalendar();
+    ctor public GregorianCalendar(android.icu.util.TimeZone);
+    ctor public GregorianCalendar(java.util.Locale);
+    ctor public GregorianCalendar(android.icu.util.ULocale);
+    ctor public GregorianCalendar(android.icu.util.TimeZone, java.util.Locale);
+    ctor public GregorianCalendar(android.icu.util.TimeZone, android.icu.util.ULocale);
+    ctor public GregorianCalendar(int, int, int);
+    ctor public GregorianCalendar(int, int, int, int, int);
+    ctor public GregorianCalendar(int, int, int, int, int, int);
+    method public final java.util.Date getGregorianChange();
+    method protected int handleComputeMonthStart(int, int, boolean);
+    method protected int handleGetExtendedYear();
+    method protected int handleGetLimit(int, int);
+    method public boolean isLeapYear(int);
+    method public void setGregorianChange(java.util.Date);
+    field public static final int AD = 1; // 0x1
+    field public static final int BC = 0; // 0x0
+    field protected transient boolean invertGregorian;
+    field protected transient boolean isGregorian;
+  }
+
+  public class HebrewCalendar extends android.icu.util.Calendar {
+    ctor public HebrewCalendar();
+    ctor public HebrewCalendar(android.icu.util.TimeZone);
+    ctor public HebrewCalendar(java.util.Locale);
+    ctor public HebrewCalendar(android.icu.util.ULocale);
+    ctor public HebrewCalendar(android.icu.util.TimeZone, java.util.Locale);
+    ctor public HebrewCalendar(android.icu.util.TimeZone, android.icu.util.ULocale);
+    ctor public HebrewCalendar(int, int, int);
+    ctor public HebrewCalendar(java.util.Date);
+    ctor public HebrewCalendar(int, int, int, int, int, int);
+    method protected int handleComputeMonthStart(int, int, boolean);
+    method protected int handleGetExtendedYear();
+    method protected int handleGetLimit(int, int);
+    field public static final int ADAR = 6; // 0x6
+    field public static final int ADAR_1 = 5; // 0x5
+    field public static final int AV = 11; // 0xb
+    field public static final int ELUL = 12; // 0xc
+    field public static final int HESHVAN = 1; // 0x1
+    field public static final int IYAR = 8; // 0x8
+    field public static final int KISLEV = 2; // 0x2
+    field public static final int NISAN = 7; // 0x7
+    field public static final int SHEVAT = 4; // 0x4
+    field public static final int SIVAN = 9; // 0x9
+    field public static final int TAMUZ = 10; // 0xa
+    field public static final int TEVET = 3; // 0x3
+    field public static final int TISHRI = 0; // 0x0
+  }
+
+  public class ICUUncheckedIOException extends java.lang.RuntimeException {
+    ctor public ICUUncheckedIOException();
+    ctor public ICUUncheckedIOException(java.lang.String);
+    ctor public ICUUncheckedIOException(java.lang.Throwable);
+    ctor public ICUUncheckedIOException(java.lang.String, java.lang.Throwable);
+  }
+
+  public class IndianCalendar extends android.icu.util.Calendar {
+    ctor public IndianCalendar();
+    ctor public IndianCalendar(android.icu.util.TimeZone);
+    ctor public IndianCalendar(java.util.Locale);
+    ctor public IndianCalendar(android.icu.util.ULocale);
+    ctor public IndianCalendar(android.icu.util.TimeZone, java.util.Locale);
+    ctor public IndianCalendar(android.icu.util.TimeZone, android.icu.util.ULocale);
+    ctor public IndianCalendar(java.util.Date);
+    ctor public IndianCalendar(int, int, int);
+    ctor public IndianCalendar(int, int, int, int, int, int);
+    method protected int handleComputeMonthStart(int, int, boolean);
+    method protected int handleGetExtendedYear();
+    method protected int handleGetLimit(int, int);
+    field public static final int AGRAHAYANA = 8; // 0x8
+    field public static final int ASADHA = 3; // 0x3
+    field public static final int ASVINA = 6; // 0x6
+    field public static final int BHADRA = 5; // 0x5
+    field public static final int CHAITRA = 0; // 0x0
+    field public static final int IE = 0; // 0x0
+    field public static final int JYAISTHA = 2; // 0x2
+    field public static final int KARTIKA = 7; // 0x7
+    field public static final int MAGHA = 10; // 0xa
+    field public static final int PAUSA = 9; // 0x9
+    field public static final int PHALGUNA = 11; // 0xb
+    field public static final int SRAVANA = 4; // 0x4
+    field public static final int VAISAKHA = 1; // 0x1
+  }
+
+  public class IslamicCalendar extends android.icu.util.Calendar {
+    ctor public IslamicCalendar();
+    ctor public IslamicCalendar(android.icu.util.TimeZone);
+    ctor public IslamicCalendar(java.util.Locale);
+    ctor public IslamicCalendar(android.icu.util.ULocale);
+    ctor public IslamicCalendar(android.icu.util.TimeZone, java.util.Locale);
+    ctor public IslamicCalendar(android.icu.util.TimeZone, android.icu.util.ULocale);
+    ctor public IslamicCalendar(java.util.Date);
+    ctor public IslamicCalendar(int, int, int);
+    ctor public IslamicCalendar(int, int, int, int, int, int);
+    method protected int handleComputeMonthStart(int, int, boolean);
+    method protected int handleGetExtendedYear();
+    method protected int handleGetLimit(int, int);
+    method public boolean isCivil();
+    method public void setCivil(boolean);
+    field public static final int DHU_AL_HIJJAH = 11; // 0xb
+    field public static final int DHU_AL_QIDAH = 10; // 0xa
+    field public static final int JUMADA_1 = 4; // 0x4
+    field public static final int JUMADA_2 = 5; // 0x5
+    field public static final int MUHARRAM = 0; // 0x0
+    field public static final int RABI_1 = 2; // 0x2
+    field public static final int RABI_2 = 3; // 0x3
+    field public static final int RAJAB = 6; // 0x6
+    field public static final int RAMADAN = 8; // 0x8
+    field public static final int SAFAR = 1; // 0x1
+    field public static final int SHABAN = 7; // 0x7
+    field public static final int SHAWWAL = 9; // 0x9
+  }
+
+  public static final class IslamicCalendar.CalculationType extends java.lang.Enum {
+    method public static android.icu.util.IslamicCalendar.CalculationType valueOf(java.lang.String);
+    method public static final android.icu.util.IslamicCalendar.CalculationType[] values();
+    enum_constant public static final android.icu.util.IslamicCalendar.CalculationType ISLAMIC;
+    enum_constant public static final android.icu.util.IslamicCalendar.CalculationType ISLAMIC_CIVIL;
+    enum_constant public static final android.icu.util.IslamicCalendar.CalculationType ISLAMIC_TBLA;
+    enum_constant public static final android.icu.util.IslamicCalendar.CalculationType ISLAMIC_UMALQURA;
+  }
+
+  public class JapaneseCalendar extends android.icu.util.GregorianCalendar {
+    ctor public JapaneseCalendar();
+    ctor public JapaneseCalendar(android.icu.util.TimeZone);
+    ctor public JapaneseCalendar(java.util.Locale);
+    ctor public JapaneseCalendar(android.icu.util.ULocale);
+    ctor public JapaneseCalendar(android.icu.util.TimeZone, java.util.Locale);
+    ctor public JapaneseCalendar(android.icu.util.TimeZone, android.icu.util.ULocale);
+    ctor public JapaneseCalendar(java.util.Date);
+    ctor public JapaneseCalendar(int, int, int, int);
+    ctor public JapaneseCalendar(int, int, int);
+    ctor public JapaneseCalendar(int, int, int, int, int, int);
+    field public static final int CURRENT_ERA;
+    field public static final int HEISEI;
+    field public static final int MEIJI;
+    field public static final int SHOWA;
+    field public static final int TAISHO;
+  }
+
+  public class Measure {
+    ctor public Measure(java.lang.Number, android.icu.util.MeasureUnit);
+    method public java.lang.Number getNumber();
+    method public android.icu.util.MeasureUnit getUnit();
+  }
+
+  public class MeasureUnit implements java.io.Serializable {
+    method public static synchronized java.util.Set<android.icu.util.MeasureUnit> getAvailable(java.lang.String);
+    method public static synchronized java.util.Set<android.icu.util.MeasureUnit> getAvailable();
+    method public static synchronized java.util.Set<java.lang.String> getAvailableTypes();
+    method public java.lang.String getSubtype();
+    method public java.lang.String getType();
+    field public static final android.icu.util.MeasureUnit ACRE;
+    field public static final android.icu.util.MeasureUnit ACRE_FOOT;
+    field public static final android.icu.util.MeasureUnit AMPERE;
+    field public static final android.icu.util.MeasureUnit ARC_MINUTE;
+    field public static final android.icu.util.MeasureUnit ARC_SECOND;
+    field public static final android.icu.util.MeasureUnit ASTRONOMICAL_UNIT;
+    field public static final android.icu.util.MeasureUnit BIT;
+    field public static final android.icu.util.MeasureUnit BUSHEL;
+    field public static final android.icu.util.MeasureUnit BYTE;
+    field public static final android.icu.util.MeasureUnit CALORIE;
+    field public static final android.icu.util.MeasureUnit CARAT;
+    field public static final android.icu.util.MeasureUnit CELSIUS;
+    field public static final android.icu.util.MeasureUnit CENTILITER;
+    field public static final android.icu.util.MeasureUnit CENTIMETER;
+    field public static final android.icu.util.MeasureUnit CUBIC_CENTIMETER;
+    field public static final android.icu.util.MeasureUnit CUBIC_FOOT;
+    field public static final android.icu.util.MeasureUnit CUBIC_INCH;
+    field public static final android.icu.util.MeasureUnit CUBIC_KILOMETER;
+    field public static final android.icu.util.MeasureUnit CUBIC_METER;
+    field public static final android.icu.util.MeasureUnit CUBIC_MILE;
+    field public static final android.icu.util.MeasureUnit CUBIC_YARD;
+    field public static final android.icu.util.MeasureUnit CUP;
+    field public static final android.icu.util.TimeUnit DAY;
+    field public static final android.icu.util.MeasureUnit DECILITER;
+    field public static final android.icu.util.MeasureUnit DECIMETER;
+    field public static final android.icu.util.MeasureUnit DEGREE;
+    field public static final android.icu.util.MeasureUnit FAHRENHEIT;
+    field public static final android.icu.util.MeasureUnit FATHOM;
+    field public static final android.icu.util.MeasureUnit FLUID_OUNCE;
+    field public static final android.icu.util.MeasureUnit FOODCALORIE;
+    field public static final android.icu.util.MeasureUnit FOOT;
+    field public static final android.icu.util.MeasureUnit FURLONG;
+    field public static final android.icu.util.MeasureUnit GALLON;
+    field public static final android.icu.util.MeasureUnit GIGABIT;
+    field public static final android.icu.util.MeasureUnit GIGABYTE;
+    field public static final android.icu.util.MeasureUnit GIGAHERTZ;
+    field public static final android.icu.util.MeasureUnit GIGAWATT;
+    field public static final android.icu.util.MeasureUnit GRAM;
+    field public static final android.icu.util.MeasureUnit G_FORCE;
+    field public static final android.icu.util.MeasureUnit HECTARE;
+    field public static final android.icu.util.MeasureUnit HECTOLITER;
+    field public static final android.icu.util.MeasureUnit HECTOPASCAL;
+    field public static final android.icu.util.MeasureUnit HERTZ;
+    field public static final android.icu.util.MeasureUnit HORSEPOWER;
+    field public static final android.icu.util.TimeUnit HOUR;
+    field public static final android.icu.util.MeasureUnit INCH;
+    field public static final android.icu.util.MeasureUnit INCH_HG;
+    field public static final android.icu.util.MeasureUnit JOULE;
+    field public static final android.icu.util.MeasureUnit KARAT;
+    field public static final android.icu.util.MeasureUnit KELVIN;
+    field public static final android.icu.util.MeasureUnit KILOBIT;
+    field public static final android.icu.util.MeasureUnit KILOBYTE;
+    field public static final android.icu.util.MeasureUnit KILOCALORIE;
+    field public static final android.icu.util.MeasureUnit KILOGRAM;
+    field public static final android.icu.util.MeasureUnit KILOHERTZ;
+    field public static final android.icu.util.MeasureUnit KILOJOULE;
+    field public static final android.icu.util.MeasureUnit KILOMETER;
+    field public static final android.icu.util.MeasureUnit KILOMETER_PER_HOUR;
+    field public static final android.icu.util.MeasureUnit KILOWATT;
+    field public static final android.icu.util.MeasureUnit KILOWATT_HOUR;
+    field public static final android.icu.util.MeasureUnit LIGHT_YEAR;
+    field public static final android.icu.util.MeasureUnit LITER;
+    field public static final android.icu.util.MeasureUnit LITER_PER_KILOMETER;
+    field public static final android.icu.util.MeasureUnit LUX;
+    field public static final android.icu.util.MeasureUnit MEGABIT;
+    field public static final android.icu.util.MeasureUnit MEGABYTE;
+    field public static final android.icu.util.MeasureUnit MEGAHERTZ;
+    field public static final android.icu.util.MeasureUnit MEGALITER;
+    field public static final android.icu.util.MeasureUnit MEGAWATT;
+    field public static final android.icu.util.MeasureUnit METER;
+    field public static final android.icu.util.MeasureUnit METER_PER_SECOND;
+    field public static final android.icu.util.MeasureUnit METER_PER_SECOND_SQUARED;
+    field public static final android.icu.util.MeasureUnit METRIC_TON;
+    field public static final android.icu.util.MeasureUnit MICROGRAM;
+    field public static final android.icu.util.MeasureUnit MICROMETER;
+    field public static final android.icu.util.MeasureUnit MICROSECOND;
+    field public static final android.icu.util.MeasureUnit MILE;
+    field public static final android.icu.util.MeasureUnit MILE_PER_GALLON;
+    field public static final android.icu.util.MeasureUnit MILE_PER_HOUR;
+    field public static final android.icu.util.MeasureUnit MILLIAMPERE;
+    field public static final android.icu.util.MeasureUnit MILLIBAR;
+    field public static final android.icu.util.MeasureUnit MILLIGRAM;
+    field public static final android.icu.util.MeasureUnit MILLILITER;
+    field public static final android.icu.util.MeasureUnit MILLIMETER;
+    field public static final android.icu.util.MeasureUnit MILLIMETER_OF_MERCURY;
+    field public static final android.icu.util.MeasureUnit MILLISECOND;
+    field public static final android.icu.util.MeasureUnit MILLIWATT;
+    field public static final android.icu.util.TimeUnit MINUTE;
+    field public static final android.icu.util.TimeUnit MONTH;
+    field public static final android.icu.util.MeasureUnit NANOMETER;
+    field public static final android.icu.util.MeasureUnit NANOSECOND;
+    field public static final android.icu.util.MeasureUnit NAUTICAL_MILE;
+    field public static final android.icu.util.MeasureUnit OHM;
+    field public static final android.icu.util.MeasureUnit OUNCE;
+    field public static final android.icu.util.MeasureUnit OUNCE_TROY;
+    field public static final android.icu.util.MeasureUnit PARSEC;
+    field public static final android.icu.util.MeasureUnit PICOMETER;
+    field public static final android.icu.util.MeasureUnit PINT;
+    field public static final android.icu.util.MeasureUnit POUND;
+    field public static final android.icu.util.MeasureUnit POUND_PER_SQUARE_INCH;
+    field public static final android.icu.util.MeasureUnit QUART;
+    field public static final android.icu.util.MeasureUnit RADIAN;
+    field public static final android.icu.util.TimeUnit SECOND;
+    field public static final android.icu.util.MeasureUnit SQUARE_CENTIMETER;
+    field public static final android.icu.util.MeasureUnit SQUARE_FOOT;
+    field public static final android.icu.util.MeasureUnit SQUARE_INCH;
+    field public static final android.icu.util.MeasureUnit SQUARE_KILOMETER;
+    field public static final android.icu.util.MeasureUnit SQUARE_METER;
+    field public static final android.icu.util.MeasureUnit SQUARE_MILE;
+    field public static final android.icu.util.MeasureUnit SQUARE_YARD;
+    field public static final android.icu.util.MeasureUnit STONE;
+    field public static final android.icu.util.MeasureUnit TABLESPOON;
+    field public static final android.icu.util.MeasureUnit TEASPOON;
+    field public static final android.icu.util.MeasureUnit TERABIT;
+    field public static final android.icu.util.MeasureUnit TERABYTE;
+    field public static final android.icu.util.MeasureUnit TON;
+    field public static final android.icu.util.MeasureUnit VOLT;
+    field public static final android.icu.util.MeasureUnit WATT;
+    field public static final android.icu.util.TimeUnit WEEK;
+    field public static final android.icu.util.MeasureUnit YARD;
+    field public static final android.icu.util.TimeUnit YEAR;
+  }
+
+  public class Output {
+    ctor public Output();
+    ctor public Output(T);
+    field public T value;
+  }
+
+  public abstract interface RangeValueIterator {
+    method public abstract boolean next(android.icu.util.RangeValueIterator.Element);
+    method public abstract void reset();
+  }
+
+  public static class RangeValueIterator.Element {
+    ctor public RangeValueIterator.Element();
+    field public int limit;
+    field public int start;
+    field public int value;
+  }
+
+  public class TaiwanCalendar extends android.icu.util.GregorianCalendar {
+    ctor public TaiwanCalendar();
+    ctor public TaiwanCalendar(android.icu.util.TimeZone);
+    ctor public TaiwanCalendar(java.util.Locale);
+    ctor public TaiwanCalendar(android.icu.util.ULocale);
+    ctor public TaiwanCalendar(android.icu.util.TimeZone, java.util.Locale);
+    ctor public TaiwanCalendar(android.icu.util.TimeZone, android.icu.util.ULocale);
+    ctor public TaiwanCalendar(java.util.Date);
+    ctor public TaiwanCalendar(int, int, int);
+    ctor public TaiwanCalendar(int, int, int, int, int, int);
+    field public static final int BEFORE_MINGUO = 0; // 0x0
+    field public static final int MINGUO = 1; // 0x1
+  }
+
+  public class TimeUnit extends android.icu.util.MeasureUnit {
+    method public static android.icu.util.TimeUnit[] values();
+  }
+
+  public abstract class TimeZone implements java.lang.Cloneable android.icu.util.Freezable java.io.Serializable {
+    ctor public TimeZone();
+    method public java.lang.Object clone();
+    method public android.icu.util.TimeZone cloneAsThawed();
+    method public static int countEquivalentIDs(java.lang.String);
+    method public android.icu.util.TimeZone freeze();
+    method public static java.util.Set<java.lang.String> getAvailableIDs(android.icu.util.TimeZone.SystemTimeZoneType, java.lang.String, java.lang.Integer);
+    method public static java.lang.String[] getAvailableIDs(int);
+    method public static java.lang.String[] getAvailableIDs(java.lang.String);
+    method public static java.lang.String[] getAvailableIDs();
+    method public static java.lang.String getCanonicalID(java.lang.String);
+    method public static java.lang.String getCanonicalID(java.lang.String, boolean[]);
+    method public int getDSTSavings();
+    method public static android.icu.util.TimeZone getDefault();
+    method public static int getDefaultTimeZoneType();
+    method public final java.lang.String getDisplayName();
+    method public final java.lang.String getDisplayName(java.util.Locale);
+    method public final java.lang.String getDisplayName(android.icu.util.ULocale);
+    method public final java.lang.String getDisplayName(boolean, int);
+    method public java.lang.String getDisplayName(boolean, int, java.util.Locale);
+    method public java.lang.String getDisplayName(boolean, int, android.icu.util.ULocale);
+    method public static java.lang.String getEquivalentID(java.lang.String, int);
+    method public static android.icu.util.TimeZone getFrozenTimeZone(java.lang.String);
+    method public java.lang.String getID();
+    method public static java.lang.String getIDForWindowsID(java.lang.String, java.lang.String);
+    method public abstract int getOffset(int, int, int, int, int, int);
+    method public int getOffset(long);
+    method public void getOffset(long, boolean, int[]);
+    method public abstract int getRawOffset();
+    method public static java.lang.String getRegion(java.lang.String);
+    method public static java.lang.String getTZDataVersion();
+    method public static android.icu.util.TimeZone getTimeZone(java.lang.String);
+    method public static android.icu.util.TimeZone getTimeZone(java.lang.String, int);
+    method public static java.lang.String getWindowsID(java.lang.String);
+    method public boolean hasSameRules(android.icu.util.TimeZone);
+    method public abstract boolean inDaylightTime(java.util.Date);
+    method public boolean isFrozen();
+    method public boolean observesDaylightTime();
+    method public static synchronized void setDefault(android.icu.util.TimeZone);
+    method public static synchronized void setDefaultTimeZoneType(int);
+    method public void setID(java.lang.String);
+    method public abstract void setRawOffset(int);
+    method public abstract boolean useDaylightTime();
+    field public static final int GENERIC_LOCATION = 7; // 0x7
+    field public static final android.icu.util.TimeZone GMT_ZONE;
+    field public static final int LONG = 1; // 0x1
+    field public static final int LONG_GENERIC = 3; // 0x3
+    field public static final int LONG_GMT = 5; // 0x5
+    field public static final int SHORT = 0; // 0x0
+    field public static final int SHORT_COMMONLY_USED = 6; // 0x6
+    field public static final int SHORT_GENERIC = 2; // 0x2
+    field public static final int SHORT_GMT = 4; // 0x4
+    field public static final int TIMEZONE_ICU = 0; // 0x0
+    field public static final int TIMEZONE_JDK = 1; // 0x1
+    field public static final android.icu.util.TimeZone UNKNOWN_ZONE;
+    field public static final java.lang.String UNKNOWN_ZONE_ID = "Etc/Unknown";
+  }
+
+  public static final class TimeZone.SystemTimeZoneType extends java.lang.Enum {
+    method public static android.icu.util.TimeZone.SystemTimeZoneType valueOf(java.lang.String);
+    method public static final android.icu.util.TimeZone.SystemTimeZoneType[] values();
+  }
+
+  public final class ULocale implements java.lang.Comparable java.io.Serializable {
+    ctor public ULocale(java.lang.String);
+    ctor public ULocale(java.lang.String, java.lang.String);
+    ctor public ULocale(java.lang.String, java.lang.String, java.lang.String);
+    method public static android.icu.util.ULocale acceptLanguage(java.lang.String, android.icu.util.ULocale[], boolean[]);
+    method public static android.icu.util.ULocale acceptLanguage(android.icu.util.ULocale[], android.icu.util.ULocale[], boolean[]);
+    method public static android.icu.util.ULocale acceptLanguage(java.lang.String, boolean[]);
+    method public static android.icu.util.ULocale acceptLanguage(android.icu.util.ULocale[], boolean[]);
+    method public static android.icu.util.ULocale addLikelySubtags(android.icu.util.ULocale);
+    method public static java.lang.String canonicalize(java.lang.String);
+    method public java.lang.Object clone();
+    method public int compareTo(android.icu.util.ULocale);
+    method public static android.icu.util.ULocale createCanonical(java.lang.String);
+    method public static android.icu.util.ULocale forLanguageTag(java.lang.String);
+    method public static android.icu.util.ULocale forLocale(java.util.Locale);
+    method public static android.icu.util.ULocale[] getAvailableLocales();
+    method public java.lang.String getBaseName();
+    method public static java.lang.String getBaseName(java.lang.String);
+    method public java.lang.String getCharacterOrientation();
+    method public java.lang.String getCountry();
+    method public static java.lang.String getCountry(java.lang.String);
+    method public static android.icu.util.ULocale getDefault();
+    method public static android.icu.util.ULocale getDefault(android.icu.util.ULocale.Category);
+    method public java.lang.String getDisplayCountry();
+    method public java.lang.String getDisplayCountry(android.icu.util.ULocale);
+    method public static java.lang.String getDisplayCountry(java.lang.String, java.lang.String);
+    method public static java.lang.String getDisplayCountry(java.lang.String, android.icu.util.ULocale);
+    method public static java.lang.String getDisplayKeyword(java.lang.String);
+    method public static java.lang.String getDisplayKeyword(java.lang.String, java.lang.String);
+    method public static java.lang.String getDisplayKeyword(java.lang.String, android.icu.util.ULocale);
+    method public java.lang.String getDisplayKeywordValue(java.lang.String);
+    method public java.lang.String getDisplayKeywordValue(java.lang.String, android.icu.util.ULocale);
+    method public static java.lang.String getDisplayKeywordValue(java.lang.String, java.lang.String, java.lang.String);
+    method public static java.lang.String getDisplayKeywordValue(java.lang.String, java.lang.String, android.icu.util.ULocale);
+    method public java.lang.String getDisplayLanguage();
+    method public java.lang.String getDisplayLanguage(android.icu.util.ULocale);
+    method public static java.lang.String getDisplayLanguage(java.lang.String, java.lang.String);
+    method public static java.lang.String getDisplayLanguage(java.lang.String, android.icu.util.ULocale);
+    method public java.lang.String getDisplayLanguageWithDialect();
+    method public java.lang.String getDisplayLanguageWithDialect(android.icu.util.ULocale);
+    method public static java.lang.String getDisplayLanguageWithDialect(java.lang.String, java.lang.String);
+    method public static java.lang.String getDisplayLanguageWithDialect(java.lang.String, android.icu.util.ULocale);
+    method public java.lang.String getDisplayName();
+    method public java.lang.String getDisplayName(android.icu.util.ULocale);
+    method public static java.lang.String getDisplayName(java.lang.String, java.lang.String);
+    method public static java.lang.String getDisplayName(java.lang.String, android.icu.util.ULocale);
+    method public java.lang.String getDisplayNameWithDialect();
+    method public java.lang.String getDisplayNameWithDialect(android.icu.util.ULocale);
+    method public static java.lang.String getDisplayNameWithDialect(java.lang.String, java.lang.String);
+    method public static java.lang.String getDisplayNameWithDialect(java.lang.String, android.icu.util.ULocale);
+    method public java.lang.String getDisplayScript();
+    method public java.lang.String getDisplayScript(android.icu.util.ULocale);
+    method public static java.lang.String getDisplayScript(java.lang.String, java.lang.String);
+    method public static java.lang.String getDisplayScript(java.lang.String, android.icu.util.ULocale);
+    method public java.lang.String getDisplayVariant();
+    method public java.lang.String getDisplayVariant(android.icu.util.ULocale);
+    method public static java.lang.String getDisplayVariant(java.lang.String, java.lang.String);
+    method public static java.lang.String getDisplayVariant(java.lang.String, android.icu.util.ULocale);
+    method public java.lang.String getExtension(char);
+    method public java.util.Set<java.lang.Character> getExtensionKeys();
+    method public static java.lang.String getFallback(java.lang.String);
+    method public android.icu.util.ULocale getFallback();
+    method public java.lang.String getISO3Country();
+    method public static java.lang.String getISO3Country(java.lang.String);
+    method public java.lang.String getISO3Language();
+    method public static java.lang.String getISO3Language(java.lang.String);
+    method public static java.lang.String[] getISOCountries();
+    method public static java.lang.String[] getISOLanguages();
+    method public java.lang.String getKeywordValue(java.lang.String);
+    method public static java.lang.String getKeywordValue(java.lang.String, java.lang.String);
+    method public java.util.Iterator<java.lang.String> getKeywords();
+    method public static java.util.Iterator<java.lang.String> getKeywords(java.lang.String);
+    method public java.lang.String getLanguage();
+    method public static java.lang.String getLanguage(java.lang.String);
+    method public java.lang.String getLineOrientation();
+    method public java.lang.String getName();
+    method public static java.lang.String getName(java.lang.String);
+    method public java.lang.String getScript();
+    method public static java.lang.String getScript(java.lang.String);
+    method public java.util.Set<java.lang.String> getUnicodeLocaleAttributes();
+    method public java.util.Set<java.lang.String> getUnicodeLocaleKeys();
+    method public java.lang.String getUnicodeLocaleType(java.lang.String);
+    method public java.lang.String getVariant();
+    method public static java.lang.String getVariant(java.lang.String);
+    method public boolean isRightToLeft();
+    method public static android.icu.util.ULocale minimizeSubtags(android.icu.util.ULocale);
+    method public static synchronized void setDefault(android.icu.util.ULocale);
+    method public static synchronized void setDefault(android.icu.util.ULocale.Category, android.icu.util.ULocale);
+    method public android.icu.util.ULocale setKeywordValue(java.lang.String, java.lang.String);
+    method public static java.lang.String setKeywordValue(java.lang.String, java.lang.String, java.lang.String);
+    method public java.lang.String toLanguageTag();
+    method public static java.lang.String toLegacyKey(java.lang.String);
+    method public static java.lang.String toLegacyType(java.lang.String, java.lang.String);
+    method public java.util.Locale toLocale();
+    method public static java.lang.String toUnicodeLocaleKey(java.lang.String);
+    method public static java.lang.String toUnicodeLocaleType(java.lang.String, java.lang.String);
+    field public static final android.icu.util.ULocale CANADA;
+    field public static final android.icu.util.ULocale CANADA_FRENCH;
+    field public static final android.icu.util.ULocale CHINA;
+    field public static final android.icu.util.ULocale CHINESE;
+    field public static final android.icu.util.ULocale ENGLISH;
+    field public static final android.icu.util.ULocale FRANCE;
+    field public static final android.icu.util.ULocale FRENCH;
+    field public static final android.icu.util.ULocale GERMAN;
+    field public static final android.icu.util.ULocale GERMANY;
+    field public static final android.icu.util.ULocale ITALIAN;
+    field public static final android.icu.util.ULocale ITALY;
+    field public static final android.icu.util.ULocale JAPAN;
+    field public static final android.icu.util.ULocale JAPANESE;
+    field public static final android.icu.util.ULocale KOREA;
+    field public static final android.icu.util.ULocale KOREAN;
+    field public static final android.icu.util.ULocale PRC;
+    field public static final char PRIVATE_USE_EXTENSION = 120; // 0x0078 'x'
+    field public static final android.icu.util.ULocale ROOT;
+    field public static final android.icu.util.ULocale SIMPLIFIED_CHINESE;
+    field public static final android.icu.util.ULocale TAIWAN;
+    field public static final android.icu.util.ULocale TRADITIONAL_CHINESE;
+    field public static final android.icu.util.ULocale UK;
+    field public static final char UNICODE_LOCALE_EXTENSION = 117; // 0x0075 'u'
+    field public static final android.icu.util.ULocale US;
+  }
+
+  public static final class ULocale.Builder {
+    ctor public ULocale.Builder();
+    method public android.icu.util.ULocale.Builder addUnicodeLocaleAttribute(java.lang.String);
+    method public android.icu.util.ULocale build();
+    method public android.icu.util.ULocale.Builder clear();
+    method public android.icu.util.ULocale.Builder clearExtensions();
+    method public android.icu.util.ULocale.Builder removeUnicodeLocaleAttribute(java.lang.String);
+    method public android.icu.util.ULocale.Builder setExtension(char, java.lang.String);
+    method public android.icu.util.ULocale.Builder setLanguage(java.lang.String);
+    method public android.icu.util.ULocale.Builder setLanguageTag(java.lang.String);
+    method public android.icu.util.ULocale.Builder setLocale(android.icu.util.ULocale);
+    method public android.icu.util.ULocale.Builder setRegion(java.lang.String);
+    method public android.icu.util.ULocale.Builder setScript(java.lang.String);
+    method public android.icu.util.ULocale.Builder setUnicodeLocaleKeyword(java.lang.String, java.lang.String);
+    method public android.icu.util.ULocale.Builder setVariant(java.lang.String);
+  }
+
+  public static final class ULocale.Category extends java.lang.Enum {
+    method public static android.icu.util.ULocale.Category valueOf(java.lang.String);
+    method public static final android.icu.util.ULocale.Category[] values();
+    enum_constant public static final android.icu.util.ULocale.Category DISPLAY;
+    enum_constant public static final android.icu.util.ULocale.Category FORMAT;
+  }
+
+  public abstract interface ValueIterator {
+    method public abstract boolean next(android.icu.util.ValueIterator.Element);
+    method public abstract void reset();
+    method public abstract void setRange(int, int);
+  }
+
+  public static final class ValueIterator.Element {
+    ctor public ValueIterator.Element();
+    field public int integer;
+    field public java.lang.Object value;
+  }
+
+  public final class VersionInfo implements java.lang.Comparable {
+    method public int compareTo(android.icu.util.VersionInfo);
+    method public static android.icu.util.VersionInfo getInstance(java.lang.String);
+    method public static android.icu.util.VersionInfo getInstance(int, int, int, int);
+    method public static android.icu.util.VersionInfo getInstance(int, int, int);
+    method public static android.icu.util.VersionInfo getInstance(int, int);
+    method public static android.icu.util.VersionInfo getInstance(int);
+    method public int getMajor();
+    method public int getMicro();
+    method public int getMilli();
+    method public int getMinor();
+    method public static void main(java.lang.String[]);
+    field public static final android.icu.util.VersionInfo ICU_VERSION;
+    field public static final android.icu.util.VersionInfo UCOL_BUILDER_VERSION;
+    field public static final android.icu.util.VersionInfo UCOL_RUNTIME_VERSION;
+    field public static final android.icu.util.VersionInfo UNICODE_1_0;
+    field public static final android.icu.util.VersionInfo UNICODE_1_0_1;
+    field public static final android.icu.util.VersionInfo UNICODE_1_1_0;
+    field public static final android.icu.util.VersionInfo UNICODE_1_1_5;
+    field public static final android.icu.util.VersionInfo UNICODE_2_0;
+    field public static final android.icu.util.VersionInfo UNICODE_2_1_2;
+    field public static final android.icu.util.VersionInfo UNICODE_2_1_5;
+    field public static final android.icu.util.VersionInfo UNICODE_2_1_8;
+    field public static final android.icu.util.VersionInfo UNICODE_2_1_9;
+    field public static final android.icu.util.VersionInfo UNICODE_3_0;
+    field public static final android.icu.util.VersionInfo UNICODE_3_0_1;
+    field public static final android.icu.util.VersionInfo UNICODE_3_1_0;
+    field public static final android.icu.util.VersionInfo UNICODE_3_1_1;
+    field public static final android.icu.util.VersionInfo UNICODE_3_2;
+    field public static final android.icu.util.VersionInfo UNICODE_4_0;
+    field public static final android.icu.util.VersionInfo UNICODE_4_0_1;
+    field public static final android.icu.util.VersionInfo UNICODE_4_1;
+    field public static final android.icu.util.VersionInfo UNICODE_5_0;
+    field public static final android.icu.util.VersionInfo UNICODE_5_1;
+    field public static final android.icu.util.VersionInfo UNICODE_5_2;
+    field public static final android.icu.util.VersionInfo UNICODE_6_0;
+    field public static final android.icu.util.VersionInfo UNICODE_6_1;
+    field public static final android.icu.util.VersionInfo UNICODE_6_2;
+    field public static final android.icu.util.VersionInfo UNICODE_6_3;
+    field public static final android.icu.util.VersionInfo UNICODE_7_0;
+    field public static final android.icu.util.VersionInfo UNICODE_8_0;
+  }
+
+}
+
 package android.inputmethodservice {
 
   public abstract class AbstractInputMethodService extends android.app.Service implements android.view.KeyEvent.Callback {