//--------------------------------------------------------------------
// Copyright (c) 1999-2001, International Business Machines
// Corporation and others.  All Rights Reserved.
//--------------------------------------------------------------------
// THIS IS A MACHINE-GENERATED FILE
// Tool: dumpICUrules.bat
// Source: \u005cicu4j\u005csrc\u005ccom\u005cibm\u005ctext\u005cresources/Transliterator_InterIndic_Devanagari.utf8.txt
// Date: Thu Mar  1 20:03:55 2001
//--------------------------------------------------------------------

// InterIndic_Devanagari

InterIndic_Devanagari {
  Rule {
//--------------------------------------------------------------------
// Copyright (c) 1999-2001, International Business Machines
// Corporation and others.  All Rights Reserved.
//--------------------------------------------------------------------
// Date: Tue Jan 23 12:41:59 2001
//--------------------------------------------------------------------

// InterIndic-Devanagari

//":: NFD (NFC) ;" 
//Rules for Decomposed characters
 "\ue028\ue03c > \u0929;"  //\ue029
 "\ue030\ue03c > \u0931;"  //\ue031
 "\ue033\ue03c > \u0934;"  //\ue034
 "\ue015\ue03c > \u0958;"  //\ue058 LETTER QA   (For Urdu)
 "\ue016\ue03c > \u0959;"  //\ue059 LETTER KHHA (For Urdu)
 "\ue017\ue03c > \u095a;"  //\ue05a LETTER GHHA (For Urdu)
 "\ue01c\ue03c > \u095b;"  //\ue05b LETTER ZA   (For Urdu)
 "\ue021\ue03c > \u095c;"  //\ue05c LETTER DDDHA (pronounced RRA)
 "\ue022\ue03c > \u095d;"  //\ue05d LETTER RHA   (pronounced RRHA)
 "\ue02b\ue03c > \u095e;"  //\ue05e LETTER FA
 "\ue02f\ue03c > \u095f;"  //\ue05f LETTER YYA

 "\ue001 >  \u0901;"  // SIGN CANDRABINDU
 "\ue002 >  \u0902;"  // SIGN ANUSVARA
 "\ue003 >  \u0903;"  // SIGN VISARGA
 "\ue005 >  \u0905;"  // LETTER A
 "\ue006 >  \u0906;"  // LETTER AA
 "\ue007 >  \u0907;"  // LETTER I
 "\ue008 >  \u0908;"  // LETTER II
 "\ue009 >  \u0909;"  // LETTER U
 "\ue00a >  \u090a;"  // LETTER UU
 "\ue00b >  \u090b;"  // LETTER VOCALIC R
 "\ue00c >  \u090c;"  // LETTER VOCALIC L
 "\ue00d >  \u090d;"  // LETTER CANDRA E (For representing English sounds)
//"\ue00e >  \u090e;" // UNMAPPED LETTER SHORT E(For Southern Scripts)
 "\ue00e >  \u090f;"
 "\ue00f >  \u090f;"  // LETTER E
 "\ue010 >  \u0910;"  // LETTER AI
 "\ue011 >  \u0911;"  // LETTER CANDRA O (For representing English sounds)
//"\ue012 >  \u0912;" // UNMAPPED LETTER SHORT O (For Southern Scripts)
 "\ue012 >  \u0913;" 
 "\ue013 >  \u0913;"  // LETTER O
 "\ue014 >  \u0914;"  // LETTER AU
 "\ue015 >  \u0915;"  // LETTER KA
 "\ue016 >  \u0916;"  // LETTER KHA
 "\ue017 >  \u0917;"  // LETTER GA
 "\ue018 >  \u0918;"  // LETTER GHA
 "\ue019 >  \u0919;"  // LETTER NGA
 "\ue01a >  \u091a;"  // LETTER CA
 "\ue01b >  \u091b;"  // LETTER CHA
 "\ue01c >  \u091c;"  // LETTER JA
 "\ue01d >  \u091d;"  // LETTER JHA
 "\ue01e >  \u091e;"  // LETTER NYA
 "\ue01f >  \u091f;"  // LETTER TTA
 "\ue020 >  \u0920;"  // LETTER TTHA
 "\ue021 >  \u0921;"  // LETTER DDA
 "\ue022 >  \u0922;"  // LETTER DDHA
 "\ue023 >  \u0923;"  // LETTER NNA
 "\ue024 >  \u0924;"  // LETTER TA
 "\ue025 >  \u0925;"  // LETTER THA
 "\ue026 >  \u0926;"  // LETTER DA
 "\ue027 >  \u0927;"  // LETTER DHA
 "\ue028 >  \u0928;"  // LETTER NA
 "\ue029 >  \u0929;"  // LETTER NNNA
 "\ue02a >  \u092a;"  // LETTER PA
 "\ue02b >  \u092b;"  // LETTER PHA
 "\ue02c >  \u092c;"  // LETTER BA
 "\ue02d >  \u092d;"  // LETTER BHA
 "\ue02e >  \u092e;"  // LETTER MA
 "\ue02f >  \u092f;"  // LETTER YA
 "\ue030 >  \u0930;"  // LETTER RA
 //"\ue031 >  \u0931;"  // LETTER RRA (Eyelash RA for Southern scripts)
 "\ue031 >  \u0930;"  
 "\ue032 >  \u0932;"  // LETTER LA
 "\ue033 >  \u0933;"  // LETTER LLA
 //"\ue034 >  \u0934;"  // LETTER LLLA (LLLA for Southern scripts)
 "\ue034 >  \u0933;"  
 "\ue035 >  \u0935;"  // LETTER VA
 "\ue036 >  \u0936;"  // LETTER SHA
 "\ue037 >  \u0937;"  // LETTER SSA
 "\ue038 >  \u0938;"  // LETTER SA
 "\ue039 >  \u0939;"  // LETTER HA
 "\ue03c >  \u093c;"  // SIGN NUKTA
 "\ue03d >  \u093d;"  // SIGN AVAGRAHA
 "\ue03e >  \u093e;"  // VOWEL SIGN AA
 "\ue03f >  \u093f;"  // VOWEL SIGN I
 "\ue040 >  \u0940;"  // VOWEL SIGN II
 "\ue041 >  \u0941;"  // VOWEL SIGN U
 "\ue042 >  \u0942;"  // VOWEL SIGN UU
 "\ue043 >  \u0943;"  // VOWEL SIGN VOCALIC R
 "\ue044 >  \u0944;"  // VOWEL SIGN VOCALIC RR
 "\ue045 >  \u0945;"  // VOWEL SIGN CANDRA E
//"\ue046 >  \u0946;" // UNMAPPED VOWEL SIGN SHORT E
 "\ue046 >  \u0947;" 
 "\ue047 >  \u0947;"  // VOWEL SIGN E
 "\ue048 >  \u0948;"  // VOWEL SIGN AI
 "\ue049 >  \u0949;"  // VOWEL SIGN CANDRA O
//"\ue04a >  \u094a;" // UNMAPPED VOWEL SIGN SHORT O
 "\ue04a >  \u094b;" 
 "\ue04b >  \u094b;"  // VOWEL SIGN O
 "\ue04c >  \u094c;"  // VOWEL SIGN AU
 "\ue04d >  \u094d;"  // SIGN VIRAMA
 "\ue050 >  \u0950;"  // OM
//         \u0951  // UNMAPPED STRESS SIGN UDATTA
//         \u0952  // UNMAPPED STRESS SIGN ANUDATTA
//         \u0953  // UNMAPPED GRAVE ACCENT
//         \u0954  // UNMAPPED ACUTE ACCENT
 "\ue058 >  \u0958;"  // LETTER QA   (For Urdu)
 "\ue059 >  \u0959;"  // LETTER KHHA (For Urdu)
 "\ue05a >  \u095a;"  // LETTER GHHA (For Urdu)
 "\ue05b >  \u095b;"  // LETTER ZA   (For Urdu)
 "\ue05c >  \u095c;"  // LETTER DDDHA (pronounced RRA)
 "\ue05d >  \u095d;"  // LETTER RHA   (pronounced RRHA)
 "\ue05e >  \u095e;"  // LETTER FA
 "\ue05f >  \u095f;"  // LETTER YYA
 "\ue060 >  \u0960;"  // LETTER VOCALIC RR
 "\ue061 >  \u0961;"  // LETTER VOCALIC LL
 "\ue062 >  \u0962;"  // VOWEL SIGN VOCALIC L
 "\ue063 >  \u0963;"  // VOWEL SIGN VOCALIC LL
// >  ;"     \u0964  // UNMAPPED Devanagari-InterIndic: DANDA
// >  ;"     \u0965  // UNMAPPED Devanagari-InterIndic: DOUBLE DANDA
 "\ue066 >  \u0966;"  // DIGIT ZERO
 "\ue067 >  \u0967;"  // DIGIT ONE
 "\ue068 >  \u0968;"  // DIGIT TWO
 "\ue069 >  \u0969;"  // DIGIT THREE
 "\ue06a >  \u096a;"  // DIGIT FOUR
 "\ue06b >  \u096b;"  // DIGIT FIVE
 "\ue06c >  \u096c;"  // DIGIT SIX
 "\ue06d >  \u096d;"  // DIGIT SEVEN
 "\ue06e >  \u096e;"  // DIGIT EIGHT
 "\ue06f >  \u096f;"  // DIGIT NINE
//         \u0970  // UNMAPPED Devanagari-InterIndic: ABBREVIATION SIGN
//    ":: NFC;"
// eof
  }
}
