# fontconfig/fc-lang/sat.orth
#
# Copyright © 2012 Parag Nemade
#
# Permission to use, copy, modify, distribute, and sell this software and its
# documentation for any purpose is hereby granted without fee, provided that
# the above copyright notice appear in all copies and that both that
# copyright notice and this permission notice appear in supporting
# documentation, and that the name of Keith Packard not be used in
# advertising or publicity pertaining to distribution of the software without
# specific, written prior permission.  Keith Packard makes no
# representations about the suitability of this software for any purpose.  It
# is provided "as is" without express or implied warranty.
#
# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
# PERFORMANCE OF THIS SOFTWARE.
#
# Santali (Devanagari script) (sat)
#
# Source: Enhanced inscript: http://pune.cdac.in/html/gist/down/inscript_d.asp
# Or
# Source: http://malayalam.kerala.gov.in/images/8/80/Qwerty_enhancedinscriptkeyboardlayout.pdf Page No. 86
#
0901-0903       # Various Signs 
0905-090a	# Independent vowels
090f-0910       # Independent vowels
0913-0914       # Independent vowels
0915-0928       # Consonants
092a-0930       # Consonants
0932-0932      # Consonants
0935            # Consonants
0938-0939       # Consonants
093c-0942       # Various and Dependent vowel signs
0947-0948       # Dependent vowel signs
094b-094d       # Dependent vowel signs and virama
0950            # Sign
0964-0965       # Punctuations
0966-096F       # Digits
0970            # Abbrevation sign
