﻿// ***************************************************************************
// *
// * Copyright (C) 2011 International Business Machines
// * Corporation and others.  All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
// * Source File:<path>/common/collation/root.xml
// *
// ***************************************************************************
/**
 *  ICU <specials> source: <path>/xml/collation/root.xml
 */
root{
    UCARules:process(uca_rules){"../unidata/UCARules.txt"}
    Version{"2.0.51.25"}
    collations{
        default{"standard"}
        ducet{
            Sequence{
                " [normalization on ]"
                "&'\u1680'<'`'<<<｀<´=΄<˜<'^'<<<＾<¯<<<￣"
                "&﹌<˘<˙<¨<˚<˝<᾽=᾿<῾<¸<˛"
                "&‗<῀<﮲<﮳<﮴<﮵<﮶<﮷<﮸<﮹<﮺<﮻<﮼<﮽<﮾<﮿<﯀<﯁<゛<゜"
                "&᠅<༔"
                "&჻<፠"
                "&𐄁<𐄂"
                "&﴿<§<¶"
                "&⁋<©<®"
                "&／<⁄"
                "&﹠<⅋"
                "&؊<⁒"
                "&᰿<᥀"
                "&၏<႞<႟<꩷<꩸<꩹<ៗ"
                "&꠹<๏"
                "&￤<‖"
                "&❧<❨<❩<❪<❫<❬<❭<❮<❯<❰<❱<❲<❳<❴<❵"
                "&⟄<⟅<⟆"
                "&⟥<⟦<⟧<⟨<⟩<⟪<⟫"
                "&⧗<⧘<⧙<⧚<⧛"
                "&𐩾<𐩿"
                "&Ꞧ<<<₨/s"
                "&ﷶ<<<﷼/یال"
            }
            Version{"1.9.9"}
        }
        search{
            Sequence{
                " [normalization on ][suppressContractions [เ-ไ ເ-ໄ] ]"
                "&ا<<آ<<أ<<إ"
                "&و<<ؤ"
                "&ي<<ئ<<ى"
                "&ه<<ة"
                "&[last primary ignorable ]<<׳<<״<<ـ<<ٌ<<ٍ<<َ<<ُ<<ِ<<ّ<<ْ<<ฺ"
                "&ᄀ=ᆨ"
                "&ᄀᄀ=ᄁ=ᆩ"
                "&ᄀᄉ=ᆪ"
                "&ᄂ=ᆫ"
                "&ᄂᄌ=ᆬ"
                "&ᄂᄒ=ᆭ"
                "&ᄃ=ᆮ"
                "&ᄃᄃ=ᄄ"
                "&ᄅ=ᆯ"
                "&ᄅᄀ=ᆰ"
                "&ᄅᄆ=ᆱ"
                "&ᄅᄇ=ᆲ"
                "&ᄅᄉ=ᆳ"
                "&ᄅᄐ=ᆴ"
                "&ᄅᄑ=ᆵ"
                "&ᄅᄒ=ᆶ"
                "&ᄆ=ᆷ"
                "&ᄇ=ᆸ"
                "&ᄇᄇ=ᄈ"
                "&ᄇᄉ=ᆹ"
                "&ᄉ=ᆺ"
                "&ᄉᄉ=ᄊ=ᆻ"
                "&ᄋ=ᆼ"
                "&ᄌ=ᆽ"
                "&ᄌᄌ=ᄍ"
                "&ᄎ=ᆾ"
                "&ᄏ=ᆿ"
                "&ᄐ=ᇀ"
                "&ᄑ=ᇁ"
                "&ᄒ=ᇂ"
                "&ᅡᅵ=ᅢ"
                "&ᅣᅵ=ᅤ"
                "&ᅥᅵ=ᅦ"
                "&ᅧᅵ=ᅨ"
                "&ᅩᅡ=ᅪ"
                "&ᅩᅡᅵ=ᅫ"
                "&ᅩᅵ=ᅬ"
                "&ᅮᅴ=ᅯ"
                "&ᅮᅴᅵ=ᅰ"
                "&ᅮᅵ=ᅱ"
            }
            Version{"1.9.9"}
        }
        standard{
            Sequence{""}
            Version{"1.9.9"}
        }
    }
    depends:process(dependency){"ucadata.icu"}
}
