% IMPE range key and profile policy.
% This internal strategy file only groups character ranges.
% Family declarations decide route, language, layout, and special behavior.

% Broad main-script keys. Latin/Greek/Cyrillic are available for
% explicit specialist families; ordinary Latin families should normally
% use full-main/global font routes instead of range routing.
\DeclareRangeKey{latin}{BasicLatin,Latin1Supplement,LatinExtendedA,LatinExtendedB,LatinExtendedAdditional}
\DeclareRangeKey{greek}{GreekAndCoptic,GreekExtended,AncientGreekNumbers}
\DeclareRangeKey{cyrillic}{Cyrillic,CyrillicExtendedA,CyrillicExtendedB,CyrillicExtendedC,CyrillicExtendedD}

\DeclareRangeKey{armenian}{Armenian}
\DeclareRangeKey{hebrew}{Hebrew}
\DeclareRangeKey{arabic}{Arabic,ArabicSupplement,ArabicExtendedA,ArabicExtendedB,ArabicPresentationFormsA,ArabicPresentationFormsB}
\DeclareRangeKey{syriac}{Syriac,SyriacSupplement}
\DeclareRangeKey{samaritan}{Samaritan}
\DeclareRangeKey{imperial-aramaic}{ImperialAramaic}
\DeclareRangeKey{nabataean}{Nabataean}
\DeclareRangeKey{phoenician}{Phoenician}
\DeclareRangeKey{avestan}{Avestan}
\DeclareRangeKey{inscriptional-parthian}{InscriptionalParthian}
\DeclareRangeKey{inscriptional-pahlavi}{InscriptionalPahlavi}
\DeclareRangeKey{psalter-pahlavi}{PsalterPahlavi}
\DeclareRangeKey{manichaean}{Manichaean}
\DeclareRangeKey{sogdian}{Sogdian}
\DeclareRangeKey{old-sogdian}{OldSogdian}
\DeclareRangeKey{old-uyghur}{OldUyghur}

\DeclareRangeKey{devanagari}{DevanagariPreMarks,DevanagariMarks,DevanagariPostMarks,DevanagariDanDa,DevanagariPostDanDa,DevanagariExtended,DevanagariExtendedA,VedicExtensions}
\DeclareRangeKey{tamil}{Tamil,TamilSupplement}
\DeclareRangeKey{thai}{Thai}
\DeclareRangeKey{brahmi}{Brahmi}
\DeclareRangeKey{kharoshthi}{Kharoshthi}

\DeclareRangeKey{georgian}{Georgian,GeorgianExtended,GeorgianSupplement}
\DeclareRangeKey{coptic-main}{Coptic}
\DeclareRangeCodepointKey{coptic-legacy}{"03E2}{"03EF}
\DeclareRangeKey{glagolitic}{Glagolitic,GlagoliticSupplement}
\DeclareRangeKey{old-italic}{OldItalic}
\DeclareRangeKey{old-hungarian}{OldHungarian}
\DeclareRangeKey{runic}{Runic}
\DeclareRangeKey{old-turkic}{OldTurkic}
\DeclareRangeKey{carian}{Carian}
\DeclareRangeKey{cuneiform}{Cuneiform,CuneiformNumbersAndPunctuation,EarlyDynasticCuneiform}

\DeclareRangeKey{han}{CJKUnifiedIdeographs,CJKUnifiedIdeographsExtensionA,CJKUnifiedIdeographsExtensionB,CJKUnifiedIdeographsExtensionC,CJKUnifiedIdeographsExtensionD,CJKUnifiedIdeographsExtensionE,CJKUnifiedIdeographsExtensionF,CJKUnifiedIdeographsExtensionG,CJKUnifiedIdeographsExtensionH,CJKUnifiedIdeographsExtensionI,CJKUnifiedIdeographsExtensionJ,CJKCompatibilityIdeographs,CJKCompatibilityIdeographsSupplement}
\DeclareRangeKey{kana}{Hiragana,Katakana,KatakanaPhoneticExtensions,KanaSupplement,KanaExtendedA,KanaExtendedB,SmallKanaExtension}
\DeclareRangeKey{bopomofo}{Bopomofo,BopomofoExtended}
\DeclareRangeKey{hangul}{HangulJamo,HangulCompatibilityJamo,HangulJamoExtendedA,HangulSyllables,HangulJamoExtendedB}
\DeclareRangeKey{cjk-punctuation}{CJKSymbolsAndPunctuation,CJKCompatibilityForms,VerticalForms,HalfwidthAndFullwidthForms}
\DeclareRangeKey{tangut}{Tangut,TangutComponents,TangutSupplement}
\DeclareRangeKey{khitan-small}{KhitanSmallScript}

\DeclareRangeKey{mongolian}{Mongolian,MongolianSupplement}
\DeclareRangeKey{tibetan}{Tibetan}

\DeclareRangeProfile{latin}{latin}
\DeclareRangeProfile{greek}{greek}
\DeclareRangeProfile{cyrillic}{cyrillic}
\DeclareRangeProfile{armenian}{armenian}
\DeclareRangeProfile{hebrew}{hebrew}
\DeclareRangeProfile{arabic}{arabic}
\DeclareRangeProfile{syriac}{syriac}
\DeclareRangeProfile{syriac-eastern}{syriac}
\DeclareRangeProfile{samaritan}{samaritan}
\DeclareRangeProfile{aramaic}{imperial-aramaic}
\DeclareRangeProfile{nabataean}{nabataean}
\DeclareRangeProfile{phoenician}{phoenician}
\DeclareRangeProfile{avestan}{avestan}
\DeclareRangeProfile{pahlavi-parthian}{inscriptional-parthian}
\DeclareRangeProfile{pahlavi-inscriptional}{inscriptional-pahlavi}
\DeclareRangeProfile{pahlavi-psalter}{psalter-pahlavi}
\DeclareRangeProfile{manichaean}{manichaean}
\DeclareRangeProfile{sogdian}{sogdian}
\DeclareRangeProfile{sogdian-old}{old-sogdian}
\DeclareRangeProfile{old-uyghur}{old-uyghur}
\DeclareRangeProfile{anatolian}{carian}
\DeclareRangeProfile{italic}{old-italic}
\DeclareRangeProfile{hungarian}{old-hungarian}
\DeclareRangeProfile{urdu}{arabic}
\DeclareRangeProfile{turkic}{old-turkic}
\DeclareRangeProfile{uyghur}{old-uyghur}

\DeclareRangeProfile{devanagari}{devanagari}
\DeclareRangeProfile{hindi}{devanagari}
\DeclareRangeProfile{sanskrit}{devanagari}
\DeclareRangeProfile{tamil}{tamil}
\DeclareRangeProfile{thai}{thai}
\DeclareRangeProfile{brahmi}{brahmi}
\DeclareRangeProfile{kharoshthi}{kharoshthi}
\DeclareRangeProfile{segoe}{brahmi}

\DeclareRangeProfile{georgian}{georgian}
\DeclareRangeProfile{coptic}{coptic-main,coptic-legacy}
\DeclareRangeProfile{glagolitic}{glagolitic}
\DeclareRangeProfile{old-italic}{old-italic}
\DeclareRangeProfile{old-hungarian}{old-hungarian}
\DeclareRangeProfile{runic}{runic}
\DeclareRangeProfile{old-turkic}{old-turkic}
\DeclareRangeProfile{carian}{carian}
\DeclareRangeProfile{cuneiform}{cuneiform}

\DeclareRangeProfile{cjk-sc}{han,cjk-punctuation}
\DeclareRangeProfile{cjk-tc}{han,bopomofo,cjk-punctuation}
% Japanese and Korean only claim their language-specific scripts automatically.
% Shared Han ideographs stay on the document CJK family (normally Chinese);
% use the local \JP / \KR commands when language-specific Han glyph forms are
% required explicitly.
\DeclareRangeProfile{cjk-jp}{kana,cjk-punctuation}
\DeclareRangeProfile{cjk-kr}{hangul,cjk-punctuation}
\DeclareRangeProfile{bopomofo}{bopomofo}
\DeclareRangeProfile{tangut}{tangut}
\DeclareRangeProfile{khitan-small}{khitan-small}

\DeclareRangeProfile{mongolian}{mongolian}
\DeclareRangeProfile{tibetan}{tibetan}
