#--------------------------------------------------------------------
# Copyright (c) 1999-2005, International Business Machines
# Corporation and others. All Rights Reserved.
#--------------------------------------------------------------------

# InterIndic-Tamil
#:: NFD (NFC) ;
\ue001>\u0b82; # FALLBACK SIGN CANDRABINDU
\ue002>\u0b82; # SIGN ANUSVARA
\ue003>\u0b83; # SIGN VISARGA
\uE004>\u0b85; # FALLBACK TO LETTER A
\ue005>\u0b85; # LETTER A
\ue006>\u0b86; # LETTER AA
\ue007>\u0b87; # LETTER I
\ue008>\u0b88; # LETTER II
\ue009>\u0b89; # LETTER U
\ue00a>\u0b8a; # LETTER UU
\ue00b>\u0bb0\u0bbf; # REMAP (indicExceptions.txt): \u0b8b>\u0bb0\u0bbf = LETTER VOCALIC R>LETTER RA.VOWEL SIGN I
\ue00c>\u0bb2; # FALLBACK LETTER LA
\ue00d>\u0b8f; # FALLBACK
\ue00e>\u0b8e; # LETTER E
\ue00f>\u0b8f; # LETTER EE
\ue010>\u0b90; # LETTER AI
\ue011>\u0b92; # FALLBACK
\ue012>\u0b92; # LETTER O
\ue013>\u0b93; # LETTER OO
\ue014>\u0b94; # LETTER AU
\ue015>\u0b95; # LETTER KA
\ue016>\u0b95; # REMAP (indicExceptions.txt): \u0b96>\u0b95 = LETTER KHA>LETTER KA
\ue017>\u0b95; # REMAP (indicExceptions.txt): \u0b97>\u0b95 = LETTER GA>LETTER KA
\ue018>\u0b95; # REMAP (indicExceptions.txt): \u0b98>\u0b95 = LETTER GHA>LETTER KA
\ue019>\u0b99; # LETTER NGA
\ue01a>\u0b9a; # LETTER CA
\ue01b>\u0b9a; # REMAP (indicExceptions.txt): \u0b9b>\u0b9a = LETTER CHA>LETTER CA
\ue01c>\u0b9c; # LETTER JA
\ue01d>\u0b9a; # REMAP (indicExceptions.txt): \u0b9d>\u0b9a = LETTER JHA>LETTER CA
\ue01e>\u0b9e; # LETTER NYA
\ue01f>\u0b9f; # LETTER TTA
\ue020>\u0b9f; # REMAP (indicExceptions.txt): \u0ba0>\u0b9f = LETTER TTHA>LETTER TTA
\ue021>\u0b9f; # REMAP (indicExceptions.txt): \u0ba1>\u0b9f = LETTER DDA>LETTER TTA
\ue022>\u0b9f; # REMAP (indicExceptions.txt): \u0ba2>\u0b9f = LETTER DDHA>LETTER TTA
\ue023>\u0ba3; # LETTER NNA
\ue024>\u0ba4; # LETTER TA
\ue025>\u0ba4; # REMAP (indicExceptions.txt): \u0ba5>\u0ba4 = LETTER THA>LETTER TA
\ue026>\u0ba4; # REMAP (indicExceptions.txt): \u0ba6>\u0ba4 = LETTER DA>LETTER TA
\ue027>\u0ba4; # REMAP (indicExceptions.txt): \u0ba7>\u0ba4 = LETTER DHA>LETTER TA
\ue028\ue03c>\u0ba9;
\ue028>\u0ba8; # LETTER NA
\ue029>\u0ba9; # LETTER NNNA
\ue02a>\u0baa; # LETTER PA
\ue02b>\u0baa; # REMAP (indicExceptions.txt): \u0bab>\u0baa = LETTER PHA>LETTER PA
\ue02c>\u0baa; # REMAP (indicExceptions.txt): \u0bac>\u0baa = LETTER BA>LETTER PA
\ue02d>\u0baa; # REMAP (indicExceptions.txt): \u0bad>\u0baa = LETTER BHA>LETTER PA
\ue02e>\u0bae; # LETTER MA
\ue02f>\u0baf; # LETTER YA
\ue030\ue03c>\u0bb1;
\ue030>\u0bb0; # LETTER RA
\ue031>\u0bb1; # LETTER RRA
\ue032>\u0bb2; # LETTER LA
\ue033\ue03c>\u0bb4;
\ue033>\u0bb3; # LETTER LLA
\ue034>\u0bb4; # LETTER LLLA
\ue035>\u0bb5; # LETTER VA
\ue036>\u0bb6; # REMAP (indicExceptions.txt): \u0bb6>\u0bb7 = LETTER SHA>LETTER SSA
\ue037>\u0bb7; # LETTER SSA
\ue038>\u0bb8; # LETTER SA
\ue039>\u0bb9; # LETTER HA

\ue03c>; # FALLBACK BLOW AWAY NUKTA
\ue03d>; # FALLBACK BLOW AWAY AVAGRAHA

\ue03e>\u0bbe; # VOWEL SIGN AA
\ue03f>\u0bbf; # VOWEL SIGN I
\ue040>\u0bc0; # VOWEL SIGN II
\ue041>\u0bc1; # VOWEL SIGN U
\ue042>\u0bc2; # VOWEL SIGN UU
\ue043>\u0bcd\u0bb0\u0bbf; # REMAP (indicExceptions.txt): \u0bc3>\u0bcd\u0bb0\u0bbf = VOWEL SIGN VOCALIC R>SIGN VIRAMA.LETTER RA.VOWEL SIGN I
\ue044>\u0bcd\u0bb0\u0bbf; # REMAP (indicExceptions.txt): \u0bc4>\u0bcd\u0bb0\u0bbf = VOWEL SIGN VOCALIC RR>SIGN VIRAMA.LETTER RA.VOWEL SIGN I
\ue045>\u0bbe; # REMAP (indicExceptions.txt): \u0bc5>\u0bbe = VOWEL SIGN CANDRA E>VOWEL SIGN AA
\ue046>\u0bc6; # VOWEL SIGN E
\ue047>\u0bc7; # VOWEL SIGN EE
\ue048>\u0bc8; # VOWEL SIGN AI
\ue049>\u0bbe; # REMAP (indicExceptions.txt): \u0bc9>\u0bbe = VOWEL SIGN CANDRA O>VOWEL SIGN AA
\ue04a>\u0bca; # VOWEL SIGN O
\ue04b>\u0bcb; # VOWEL SIGN OO
\ue04c>\u0bcc; # VOWEL SIGN AU
\ue04d>\u0bcd; # SIGN VIRAMA
\ue050>\u0b93\u0bae\u0bcd; # REMAP (indicExceptions.txt): \u0bd0>\u0b93\u0bae\u0bcd = OM>LETTER OO.LETTER MA.SIGN VIRAMA
\ue051>;
\ue052>;
\ue053>;
\ue054>;
\ue055>; # UNMAPPED InterIndic-Tamil: LENGTH MARK
\ue056>\u0bc8; # REMAP (indicExceptions.txt): \u0bd6>\u0bc8 = AI LENGTH MARK>VOWEL SIGN AI
\ue057>\u0bd7; # AU LENGTH MARK
\ue058>\u0b95; # FALLBACK
\ue059>\u0b95; # REMAP (indicExceptions.txt): \u0bd9>\u0b95 = LETTER KHHA>LETTER KA
\ue05a>\u0b95; # REMAP (indicExceptions.txt): \u0bda>\u0b95 = LETTER GHHA>LETTER KA
\ue05b>\u0b9c; # REMAP (indicExceptions.txt): \u0bdb>\u0b9c = LETTER ZA>LETTER JA
\ue05c>\u0ba4; # FALLBACK
\ue05d>\u0b9f; # REMAP (indicExceptions.txt): \u0bdd>\u0b9f = LETTER RHA>LETTER TTA
\ue05e>\u0baa; # REMAP (indicExceptions.txt): \u0bde>\u0baa = LETTER FA>LETTER PA
\ue05f>\u0baf; # REMAP (indicExceptions.txt): \u0bdf>\u0baf = LETTER YYA>LETTER YA
\ue060>\u0bb0\u0bbf; # REMAP (indicExceptions.txt): \u0be0>\u0bb0\u0bbf = LETTER VOCALIC RR>LETTER RA.VOWEL SIGN I
\ue061>\u0bb3; # FALLBACK LETTER LLA
\ue062>\u0bbf; # FALLBACK VOWEL SIGN VOCALIC L
\ue063>\u0bc0; # FALLBACK VOWEL SIGN VOCALIC LL
\ue064>'.'   ; # FALLBACK FOR DANDA
\ue065>'.'   ; # FALLBACK FOR DOUBLE DANDA      

\ue066>\u0030; # FALLBACK DIGIT ZERO

\ue067\ue066\ue066\ue066>\u0bF2;
\ue067\ue066\ue066>\u0bf1;
\ue067\ue066>\u0bF0;

\ue067>\u0be7; # DIGIT ONE
\ue068>\u0be8; # DIGIT TWO
\ue069>\u0be9; # DIGIT THREE
\ue06a>\u0bea; # DIGIT FOUR
\ue06b>\u0beb; # DIGIT FIVE
\ue06c>\u0bec; # DIGIT SIX
\ue06d>\u0bed; # DIGIT SEVEN
\ue06e>\u0bee; # DIGIT EIGHT
\ue06f>\u0bef; # DIGIT NINE

\ue070>;       # ABBREVIATION SIGN
\ue071>\u0bc0; # LETTER RA WITH MIDDLE DIAGONAL
\ue072>\u0bc0; # LETTER RA WITH LOWER DIAGONAL
\ue073>;       # RUPEE MARK
\ue074>;       # RUPEE SIGN
\ue075>;       # CURRENCY NUMERATOR ONE
\ue076>;       # CURRENCY NUMERATOR TWO
\ue077>;       # CURRENCY NUMERATOR THREE
\ue078>;       # CURRENCY NUMERATOR FOUR
\ue079>;       # CURRENCY NUMERATOR ONE LESS THAN THE DENOMINATOR
\ue07A>;       # CURRENCY DENOMINATOR SIXTEEN
\ue07B>;       # ISSHAR
\uE07C>;       # TIPPI
\uE07D>;       # ADDAK
\uE07E>;       # IRI
\uE07F>;       # URA
\uE080>;       # EK ONKAR
\uE081>\u0bb5; # FALLBACK FOR ORIYA LETTER WA 
\uE082>;       # Devanagari Glottal Stop
\uE083>\u0ba4\u0bcd;  # Bengali Khanda-ta

1000  >\u0BF2; # NUMBER ONE THOUSAND
100   >\u0BF1; # NUMBER ONE HUNDRED
10    >\u0BF0; # NUMBER TEN

#    :: NFC (NFD) ;
# eof
