// *******************************************************************************
// *
// *   Copyright (C) 1997-2001, International Business Machines
// *   Corporation and others.  All Rights Reserved.
// *
// *******************************************************************************

he {
    Version{"1.0.1"}
    CollationElements { 
	    Version { "2.0" }
		Override { "FALSE" }
		Sequence { "[normalization on]& Z < \u05D0 < \u05D1 < \u05D2 < \u05D3 < \u05D4 < \u05D5 < "
        "\u05F0 < \u05F1 < \u05D6 < \u05D7 < \u05D8 < \u05D9 < \u05F2 < \u05DA , \u05DB "
        "< \u05DC < \u05DD , \u05DE < \u05DF , \u05E0 < \u05E1 < \u05E2 < \u05E3 , \u05E4"
        " < \u05E5 , \u05E6 < \u05E7 < \u05E8 < \u05E9 < \u05EA " }
	}
    Countries { 
        IL { "\u05D9\u05E9\u05E8\u05D0\u05DC" }
    }
    DateTimePatterns { 
            "HH:mm:ss z",
            "HH:mm:ss z",
            "HH:mm:ss",
            "HH:mm",
            "EEEE d MMMM yyyy",
            "d MMMM yyyy",
            "dd/MM/yyyy",
            "dd/MM/yy",
            "{0} {1}",
    }
    DayAbbreviations { 
            "\u05D0",
            "\u05D1",
            "\u05D2",
            "\u05D3",
            "\u05D4",
            "\u05D5",
            "\u05E9",
    }
    DayNames { 
            "\u05D9\u05D5\u05DD \u05E8\u05D0\u05E9\u05D5\u05DF",
            "\u05D9\u05D5\u05DD \u05E9\u05E0\u05D9",
            "\u05D9\u05D5\u05DD \u05E9\u05DC\u05D9\u05E9\u05D9",
            "\u05D9\u05D5\u05DD \u05E8\u05D1\u05D9\u05E2\u05D9",
            "\u05D9\u05D5\u05DD \u05D7\u05DE\u05D9\u05E9\u05D9",
            "\u05D9\u05D5\u05DD \u05E9\u05D9\u05E9\u05D9",
            "\u05E9\u05D1\u05EA",
    }
    Eras { 
            "\u05DC\u05E1\u05D4\u0022\u05E0",
            "\u05DC\u05E4\u05E1\u05D4\u0022\u05E0",
    }
    Languages { 
        he { "\u05E2\u05D1\u05E8\u05D9\u05EA" }
        iw { "\u05E2\u05D1\u05E8\u05D9\u05EA" }
    }
    LocaleID { "0d" }
    LocaleString { "he" }
    MonthAbbreviations { 
            "\u05D9\u05E0\u05D5",
            "\u05E4\u05D1\u05E8",
            "\u05DE\u05E8\u05E5",
            "\u05D0\u05E4\u05E8",
            "\u05DE\u05D0\u05D9",
            "\u05D9\u05D5\u05E0",
            "\u05D9\u05D5\u05DC",
            "\u05D0\u05D5\u05D2",
            "\u05E1\u05E4\u05D8",
            "\u05D0\u05D5\u05E7",
            "\u05E0\u05D5\u05D1",
            "\u05D3\u05E6\u05DE",
            "",
    }
    MonthNames { 
            "\u05D9\u05E0\u05D5\u05D0\u05E8",
            "\u05E4\u05D1\u05E8\u05D5\u05D0\u05E8",
            "\u05DE\u05E8\u05E5",
            "\u05D0\u05E4\u05E8\u05D9\u05DC",
            "\u05DE\u05D0\u05D9",
            "\u05D9\u05D5\u05E0\u05D9",
            "\u05D9\u05D5\u05DC\u05D9",
            "\u05D0\u05D5\u05D2\u05D5\u05E1\u05D8",
            "\u05E1\u05E4\u05D8\u05DE\u05D1\u05E8",
            "\u05D0\u05D5\u05E7\u05D8\u05D5\u05D1\u05E8",
            "\u05E0\u05D5\u05D1\u05DE\u05D1\u05E8",
            "\u05D3\u05E6\u05DE\u05D1\u05E8",
            "",
    }
    ShortLanguage { "heb" }
    localPatternChars { "GanjkHmsSEDFwWxhKzAe" }
    zoneStrings { 
        {
                "Africa/Casablanca",
                "GMT",
                "GMT",
                "GMT",
                "GMT",
        }
    }
    LocaleScript{ 
                "Hebr"    // ISO 15924 Name 
    }

    //------------------------------------------------------------
    // Rule Based Number Format Support
    //------------------------------------------------------------

//         * Spellout rules for Hebrew.  Hebrew actually has inflected forms for
//         * most of the lower-order numbers.  The masculine forms are shown
//         * here.

        // This data is woefully incomplete.  Can someone fill me in on the
        // various inflected forms of the numbers, which seem to be necessary
        // to do Hebrew correctly?  Can somone supply me with data for values
        // from 1,000,000 on up?  What about the word for zero?  What about
        // information on negatives and decimals?

    SpelloutRules {
            "zero (incomplete data); \u05d0\u05d4\u05d3; \u05e9\u05d2\u05d9\u05d9\u05dd; \u05e9\u05dc\u05d5\u05e9\u05d4;\n"
            "4: \u05d0\u05d3\u05d1\u05e6\u05d4; \u05d7\u05d2\u05d5\u05d9\u05e9\u05d4; \u05e9\u05e9\u05d4;\n"
            "7: \u05e9\u05d1\u05e6\u05d4; \u05e9\u05de\u05d5\u05d2\u05d4; \u05ea\u05e9\u05e6\u05d4;\n"
            "10: \u05e6\u05e9\u05d3\u05d4[ >>];\n"
            "20: \u05e6\u05e9\u05d3\u05d9\u05dd[ >>];\n"
            "30: \u05e9\u05dc\u05d5\u05e9\u05d9\u05dd[ >>];\n"
            "40: \u05d0\u05d3\u05d1\u05e6\u05d9\u05dd[ >>];\n"
            "50: \u05d7\u05de\u05d9\u05e9\u05d9\u05dd[ >>];\n"
            "60: \u05e9\u05e9\u05d9\u05dd[ >>];\n"
            "70: \u05e9\u05d1\u05e6\u05d9\u05dd[ >>];\n"
            "80: \u05e9\u05de\u05d5\u05d2\u05d9\u05dd[ >>];\n"
            "90: \u05ea\u05e9\u05e6\u05d9\u05dd[ >>];\n"
            "100: \u05de\u05d0\u05d4[ >>];\n"
            "200: << \u05de\u05d0\u05d4[ >>];\n"
            "1000: \u05d0\u05dc\u05e3[ >>];\n"
            "2000: << \u05d0\u05dc\u05e3[ >>];\n"
            "1,000,000: =#,##0= (incomplete data);" 
    }
}
