% Copyright (C) 1998 --- 2002 Claudio Beccari v.2.0i (2002/07/18)
% Ligature and kerning table: italic/cursive/leipzig fonts
% (CB modified ligatures and kerns for group A"U 2000/02/13)
%
% Thanks to Andreas Schwab for spotting some bugs and suggesting
%        the corrections
% Ligatures with void char corrected 1999/04/07
% ligatures between capital and iota adscript 1999/10/25
% added ligatures for cbleipzig greek 2001/01/29
% added kernings with accented vowels 2002/02/03
% corrected ligatures with a and friends 2002/04/18
% added missing kernings between a and u with accents 2002/07/18

diaer=oct"042";                         % diaeresis (double quote key)
Idiaer=oct"333";                        % Iota with diaeresis
Udiaer=oct"337";                        % Upsilon with diaeresis
AUkern#:=2.5u#;                         % check definition in cbupper.mf
sampi=oct"33";                          % with cbleipzig some kernings are needed when
                                        % writing milesian numbers
%
ligtable "-": "-" =: oct"000";          % en-dash
ligtable oct"000": "-" =: oct"177";     % em-dash
ligtable "(":  "(" =: oct"173";         % open quotes
ligtable ")":  ")" =: oct"175";         % close quotes

ligtable "<":                                                % rough breathing
        "~" =: oct"100", "'" =: oct"126", "`" =: oct"103",
        "a" =: oct"201", "e" =: oct"341", "h" =: oct"231", "r" =: oct"373",
        "o" =: oct"345", "w" =: oct"261", "i" =: oct"311", "u" =: oct"315",
        "A" kern-3u#,  "O" kern-u#,  "W" kern-.5u#;

ligtable ">":                                               % smooth breathing
        "~" =: oct"134", "'" =: oct"136", "`" =: oct"137",
        "a" =: oct"202", "e" =: oct"342", "h" =: oct"232", "r" =: oct"374",
        "o" =: oct"346", "w" =: oct"262", "i" =: oct"312", "u" =: oct"316",
        "A" kern-2.5u#,  "O" kern-u#,  "W" kern-.5u#;

ligtable diaer:                                                    % diaeresis
        "~" =: oct"040", "'" =: oct"043", "`" =: oct"044",
        oct"375" =:| oct"035",  % diaeresis at end of word becomes apostrophe
        "i" =: oct"360", "u" =: oct"364",
        "I" =: oct"333", "U" =: oct"337";

ligtable oct"044":                                       % diaeresis and grave
        "i" =: oct"361", "u" =: oct"365";

ligtable oct"043":                                       % diaeresis and acute
        "i" =: oct"362", "u" =: oct"366";

ligtable oct"040":                                  % diaeresis and circumflex
        "i" =: oct"363", "u" =: oct"367";

ligtable "`":                                                          % grave
        diaer =: oct"044", "`" =: oct"034", "<"=: oct"103", ">"=: oct"137",
        "a" =: oct"200", "h" =: oct"230", "w" =: oct"260",
        "e" =: oct"340", "o" =: oct"344", "i" =: oct"310", "u" =: oct"314",
        "A" kern-2u#,  "O" kern-u#,  "W" kern-.5u#;

ligtable "'":                                                          % acute
        diaer =: oct"043", "'" =: oct"035",  "<"=: oct"126", ">"=: oct"136",
        "a" =: oct"210", "h" =: oct"240", "w" =: oct"270",
        "e" =: oct"350", "o" =: oct"354", "i" =: oct"320", "u" =: oct"324",
        "A" kern-2u#,  "O" kern-u#,  "W" kern-.5u#;

ligtable oct"126":                                 % rough breathing and acute
        "a" =: oct"211", "h" =: oct"241", "w" =: oct"271",
        "e" =: oct"351", "o" =: oct"355", "i" =: oct"321", "u" =: oct"325",
        "A" kern-1.5u#,  "O" kern-.5u#;

ligtable oct"136":                                % smooth breathing and acute
        "a" =: oct"212", "h" =: oct"242", "w" =: oct"272",
        "e" =: oct"352", "o" =: oct"356", "i" =: oct"322", "u" =: oct"326",
        "A" kern-1.5u#,  "O" kern-.5u#;

ligtable oct"137":                                % smooth breathing and grave
        "a" =: oct"213", "h" =: oct"253", "w" =: oct"273",
        "e" =: oct"353", "o" =: oct"357", "i" =: oct"323", "u" =: oct"327",
        "A" kern-1.5u#,  "O" kern-.5u#;

ligtable oct"103":                                 % rough breathing and grave
        "a" =: oct"203", "h" =: oct"243", "w" =: oct"263",
        "e" =: oct"343", "o" =: oct"347", "i" =: oct"313", "u" =: oct"317",
        "A" kern-1.5u#,  "O" kern-.5u#;
ligtable "~":                                                     % circumflex
        diaer =: oct"040", "<"=: oct"100", ">"=: oct"134",
        "a" =: oct"220", "h" =: oct"250", "w" =: oct"300",
        "i" =: oct"330", "u" =: oct"334","A" kern-2u#;

ligtable oct"100":                            % rough breathing and circumflex
        "a" =: oct"221", "h" =: oct"251", "w" =: oct"301",
        "i" =: oct"331", "u" =: oct"335", "A" kern-2u#;

ligtable oct"134":                           % smooth breathing and circumflex
        "a" =: oct"222", "h" =: oct"252", "w" =: oct"302",
        "i" =: oct"332", "u" =: oct"336","A" kern-2u#;
                                                        % iota subscripts
ligtable "a": "|" =: oct"370",
   oct"370": 
   if cbleipzig:
    "u"      kern-1.6u#, oct"314" kern-1.6u#, oct"324" kern-1.6u#,
    oct"334" kern-1.6u#, oct"316" kern-1.6u#, oct"325" kern-1.6u#,
    oct"326" kern-1.6u#, oct"327" kern-1.6u#, oct"317" kern-1.6u#,
    oct"334" kern-1.6u#, oct"335" kern-1.6u#, oct"336" kern-1.6u#,
    oct"365" kern-1.6u#, oct"366" kern-1.6u#, oct"367" kern-1.6u#, oct"364" kern-1.6u#, 
    "o"      kern-.5u#, oct"344" kern-.5u#, oct"354" kern-.5u#,
    sampi kern-4u#, "j" kern-1.5u#,
   else:
    "u"      kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
    oct"334" kern-.5u#,
   fi
   "n" kern if cbleipzig:-1.7else:-.8fi u#, 
   "t" kern if cbleipzig:-1.5else:-.8fi u#, 
   "p" kern -.8u#, "q" kern -1.5u#,
   "y" kern -.5u#, 
   if not cbleipzig:"m" kern -u#,fi 
   "g" kern -1.5u#;
ligtable oct"200": "|" =: oct"204",
    oct"204":
   if cbleipzig:
    "u"      kern-1.5u#, oct"314" kern-1.5u#, oct"324" kern-1.5u#,
    "o"      kern-.5u#, oct"344" kern-.5u#, oct"354" kern-.5u#, "j" kern-1.5u#,
    else:
   "u"      kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
    oct"334" kern-.5u#, 
   fi
   "n" kern if cbleipzig:-1.5else:-.8fi u#, 
   "t" kern if cbleipzig:-1.5else:-.8fi u#, 
   "p" kern -.8u#, "q" kern -1.5u#,
   "y" kern -.5u#, 
   if not cbleipzig: "m" kern -u#,fi 
   "g" kern -1.5u#;
ligtable oct"201": "|" =: oct"205",
    oct"205":
   if cbleipzig:
    "u"      kern-1.6u#, oct"314" kern-1.6u#, oct"324" kern-1.6u#,
    oct"334" kern-1.6u#, oct"316" kern-1.6u#, oct"325" kern-1.6u#,
    oct"326" kern-1.6u#, oct"327" kern-1.6u#, oct"317" kern-1.6u#,
    oct"334" kern-1.6u#, oct"335" kern-1.6u#, oct"336" kern-1.6u#,
    oct"365" kern-1.6u#, oct"366" kern-1.6u#, oct"367" kern-1.6u#, oct"364" kern-1.6u#, 
    "o"      kern-.5u#, oct"344" kern-.5u#, oct"354" kern-.5u#, "j" kern-1.5u#,
    else:
   "u"      kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
    oct"334" kern-.5u#,
   fi
   "n" kern if cbleipzig:-1.5else:-.8fi u#, "t" kern if cbleipzig:-1.5else:-.8fi u#, "p" kern -.8u#, "q" kern -1.5u#,
   "y" kern -.5u#, if not cbleipzig:"m" kern -u#,fi "g" kern -1.5u#;
ligtable oct"202": "|" =: oct"206",
    oct"206":
   if cbleipzig:
    "u"      kern-1.6u#, oct"314" kern-1.6u#, oct"324" kern-1.6u#,
    oct"334" kern-1.6u#, oct"316" kern-1.6u#, oct"325" kern-1.6u#,
    oct"326" kern-1.6u#, oct"327" kern-1.6u#, oct"317" kern-1.6u#,
    oct"334" kern-1.6u#, oct"335" kern-1.6u#, oct"336" kern-1.6u#,
    oct"365" kern-1.6u#, oct"366" kern-1.6u#, oct"367" kern-1.6u#, oct"364" kern-1.6u#, 
    "o"      kern-.5u#, oct"344" kern-.5u#, oct"354" kern-.5u#, "j" kern-1.5u#,
    else:
   "u"      kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
    oct"334" kern-.5u#,
   fi
   "n" kern if cbleipzig:-1.5else:-.8fi u#, "t" kern if cbleipzig:-1.5else:-.8fi u#, "p" kern -.8u#, "q" kern -1.5u#,
   "y" kern -.5u#, if not cbleipzig:"m" kern -u#,fi "g" kern -1.5u#;
ligtable oct"203": "|" =: oct"207",
    oct"207":
   if cbleipzig:
    "u"      kern-1.5u#, oct"314" kern-1.5u#, oct"324" kern-1.5u#,
    "o"      kern-.5u#, oct"344" kern-.5u#, oct"354" kern-.5u#, "j" kern-1.5u#,
    else:
   "u"      kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
    oct"334" kern-.5u#,
   fi
   "n" kern if cbleipzig:-1.5else:-.8fi u#, "t" kern if cbleipzig:-1.5else:-.8fi u#, "p" kern -.8u#, "q" kern -1.5u#,
   "y" kern -.5u#, if not cbleipzig:"m" kern -u#,fi "g" kern -1.5u#;
ligtable oct"210": "|" =: oct"214",
   oct"214":
   if cbleipzig:
    "u"      kern-1.5u#, oct"314" kern-1.5u#, oct"324" kern-1.5u#,
    "o"      kern-.5u#, oct"344" kern-.5u#, oct"354" kern-.5u#, "j" kern-1.5u#,
    else:
   "u"      kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
    oct"334" kern-.5u#,
   fi
   "n" kern if cbleipzig:-1.5else:-.8fi u#, "t" kern if cbleipzig:-1.5else:-.8fi u#, "p" kern -.8u#, "q" kern -1.5u#,
   "y" kern -.5u#, if not cbleipzig:"m" kern -u#,fi "g" kern -1.5u#;
ligtable oct"211": "|" =: oct"215",
   oct"215":
   if cbleipzig:
    "u"      kern-1.5u#, oct"314" kern-1.5u#, oct"324" kern-1.5u#,
    "o"      kern-.5u#, oct"344" kern-.5u#, oct"354" kern-.5u#, "j" kern-1.5u#,
    else:
   "u"      kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
    oct"334" kern-.5u#,
   fi
   "n" kern -.8u#, "t" kern if cbleipzig:-1.5else:-.8fi u#, "p" kern -.8u#, "q" kern -1.5u#,
   "y" kern -.5u#, if not cbleipzig:"m" kern -u#,fi "g" kern -1.5u#;
ligtable oct"212": "|" =: oct"216",
   oct"216":
   if cbleipzig:
    "u"      kern-1.5u#, oct"314" kern-1.5u#, oct"324" kern-1.5u#,
    "o"      kern-.5u#, oct"344" kern-.5u#, oct"354" kern-.5u#, "j" kern-1.5u#,
    else:
   "u"      kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
    oct"334" kern-.5u#,
   fi
   "n" kern if cbleipzig:-1.5else:-.8fi u#, "t" kern if cbleipzig:-1.5else:-.8fi u#, "p" kern -.8u#, "q" kern -1.5u#,
   "y" kern -.5u#, if not cbleipzig:"m" kern -u#,fi "g" kern -1.5u#;
ligtable oct"213": "|" =: oct"217",
    oct"217":
   if cbleipzig:
    "u"      kern-1.5u#, oct"314" kern-1.5u#, oct"324" kern-1.5u#,
    "o"      kern-.5u#, oct"344" kern-.5u#, oct"354" kern-.5u#, "j" kern-1.5u#,
    else:
   "u"      kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
    oct"334" kern-.5u#,
   fi
   "n" kern if cbleipzig:-1.5else:-.8fi u#, "t" kern if cbleipzig:-1.5else:-.8fi u#, "p" kern -.8u#, "q" kern -1.5u#,
   "y" kern -.5u#, if not cbleipzig:"m" kern -u#,fi "g" kern -1.5u#;
ligtable oct"220": "|" =: oct"224",
   oct"224":
   if cbleipzig:
    "u"      kern-1.5u#, oct"314" kern-1.5u#, oct"324" kern-1.5u#,
    "o"      kern-.5u#, oct"344" kern-.5u#, oct"354" kern-.5u#, "j" kern-1.5u#,
    else:
   "u"      kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
    oct"334" kern-.5u#,
   fi
   "n" kern if cbleipzig:-1.5else:-.8fi u#, "t" kern if cbleipzig:-1.5else:-.8fi u#, "p" kern -.8u#, "q" kern -1.5u#,
   "y" kern -.5u#, if not cbleipzig:"m" kern -u#,fi "g" kern -1.5u#;
ligtable oct"221": "|" =: oct"225",
   oct"225":
   if cbleipzig:
    "u"      kern-1.5u#, oct"314" kern-1.5u#, oct"324" kern-1.5u#,
    "o"      kern-.5u#, oct"344" kern-.5u#, oct"354" kern-.5u#, "j" kern-1.5u#,
    else:
   "u"      kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
    oct"334" kern-.5u#,
   fi
   "n" kern if cbleipzig:-1.5else:-.8fi u#, "t" kern if cbleipzig:-1.5else:-.8fi u#, "p" kern -.8u#, "q" kern -1.5u#,
   "y" kern -.5u#, if not cbleipzig:"m" kern -u#,fi "g" kern -1.5u#;
ligtable oct"222": "|" =: oct"226",
   oct"226":
   if cbleipzig:
    "u"      kern-1.5u#, oct"314" kern-1.5u#, oct"324" kern-1.5u#,
    "o"      kern-.5u#, oct"344" kern-.5u#, oct"354" kern-.5u#, "j" kern-1.5u#,
    else:
   "u"      kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
    oct"334" kern-.5u#,
   fi
   "n" kern if cbleipzig:-1.5else:-.8fi u#, "t" kern if cbleipzig:-1.5else:-.8fi u#, "p" kern -.8u#, "q" kern -1.5u#,
   "y" kern -.5u#, if not cbleipzig:"m" kern -u#,fi "g" kern -1.5u#;

ligtable "h": "|" =: oct"371",
              oct"371": if cbleipzig: sampi kern-3u#, fi
        if not cbleipzig:"g" kern-u#,fi "n" kern-.5u#,
             "u"      kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
             oct"334" kern-.5u#;

ligtable oct"230": "|" =: oct"234",
              oct"234":
        if not cbleipzig:"g" kern-u#,fi "n" kern-.5u#,
             "u"      kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
             oct"334" kern-.5u#;

ligtable oct"231": "|" =: oct"235",
              oct"235":
        if not cbleipzig:"g" kern-u#,fi "n" kern-.5u#,
             "u"      kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
             oct"334" kern-.5u#;

ligtable oct"232": "|" =: oct"236",
              oct"236":
        if not cbleipzig:"g" kern-u#,fi "n" kern-.5u#,
             "u"      kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
             oct"334" kern-.5u#;

ligtable oct"240": "|" =: oct"244",
              oct"244":
        if not cbleipzig:"g" kern-u#,fi "n" kern-.5u#,
             "u"      kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
             oct"334" kern-.5u#;
ligtable oct"241": "|" =: oct"245",
              oct"245":
        if not cbleipzig:"g" kern-u#,fi "n" kern-.5u#,
             "u"      kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
             oct"334" kern-.5u#;

ligtable oct"242": "|" =: oct"246",
              oct"246":
        if not cbleipzig:"g" kern-u#,fi "n" kern-.5u#,
             "u"      kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
             oct"334" kern-.5u#;

ligtable oct"243": "|" =: oct"247",
              oct"247":
        if not cbleipzig:"g" kern-u#,fi "n" kern-.5u#,
             "u"      kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
             oct"334" kern-.5u#;

ligtable oct"250": "|" =: oct"254",
              oct"254":
        if not cbleipzig:"g" kern-u#,fi "n" kern-.5u#,
             "u"      kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
             oct"334" kern-.5u#;

ligtable oct"251": "|" =: oct"255",
              oct"255":
        if not cbleipzig:"g" kern-u#,fi "n" kern-.5u#,
             "u"      kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
             oct"334" kern-.5u#;

ligtable oct"252": "|" =: oct"256",
              oct"256":
        if not cbleipzig:"g" kern-u#,fi "n" kern-.5u#,
             "u"      kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
             oct"334" kern-.5u#;

ligtable oct"253": "|" =: oct"257",
              oct"257":
        if not cbleipzig:"g" kern-u#, fi "n" kern-.5u#,
             "u"      kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
             oct"334" kern-.5u#;


ligtable "w": "|" =: oct"372",
         oct"372": "x" kern .5u#, if cbleipzig: sampi kern-3u#, fi
        "g" kern-2u#, "n" kern-.5u#, "m" kern -.5u#, "q" kern -if cbleipzig:.5else:2fi u#,
             "u"      kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
             oct"334" kern-.5u#,
             if cbleipzig: "t" kern -.85u#,fi
             "e"      kern .5u#, oct"340" kern .5u#, oct"350" kern .5u#;
ligtable oct"260": "|" =: oct"264",
         oct"264": "x" kern .5u#,
        "g" kern-2u#, "n" kern-.5u#, "m" kern -.5u#, "q" kern -if cbleipzig:.5else:2fi u#,
             "u"      kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
             oct"334" kern-.5u#,
             if cbleipzig: "t" kern -.85u#,fi
             "e"      kern .5u#, oct"340" kern .5u#, oct"350" kern .5u#;
ligtable oct"261": "|" =: oct"265",
         oct"265": "x" kern .5u#,
        "g" kern-2u#, "n" kern-.5u#, "m" kern -.5u#, "q" kern -if cbleipzig:.5else:2fi u#,
             "u"      kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
             oct"334" kern-.5u#,
             if cbleipzig: "t" kern -.85u#,fi
             "e"      kern .5u#, oct"340" kern .5u#, oct"350" kern .5u#;
ligtable oct"262": "|" =: oct"266",
         oct"266": "x" kern .5u#,
        "g" kern-2u#, "n" kern-.5u#, "m" kern -.5u#, "q" kern -if cbleipzig:.5else:2fi u#,
             "u"      kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
             oct"334" kern-.5u#,
             if cbleipzig: "t" kern -.85u#,fi
             "e"      kern .5u#, oct"340" kern .5u#, oct"350" kern .5u#;
ligtable oct"263": "|" =: oct"267",
         oct"267": "x" kern .5u#,
        "g" kern-2u#, "n" kern-.5u#, "m" kern -.5u#, "q" kern -if cbleipzig:.5else:2fi u#,
             "u"      kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
             oct"334" kern-.5u#,
             if cbleipzig: "t" kern -.85u#,fi
             "e"      kern .5u#, oct"340" kern .5u#, oct"350" kern .5u#;
ligtable oct"270": "|" =: oct"274",
         oct"274": "x" kern .5u#,
        "g" kern-2u#, "n" kern-.5u#, "m" kern -.5u#, "q" kern -if cbleipzig:.5else:2fi u#,
             "u"      kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
             oct"334" kern-.5u#,
             if cbleipzig: "t" kern -.85u#,fi
             "e"      kern .5u#, oct"340" kern .5u#, oct"350" kern .5u#;
ligtable oct"271": "|" =: oct"275",
         oct"275": "x" kern .5u#,
        "g" kern-2u#, "n" kern-.5u#, "m" kern -.5u#, "q" kern -if cbleipzig:.5else:2fi u#,
             "u"      kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
             oct"334" kern-.5u#,
             if cbleipzig: "t" kern -.85u#,fi
             "e"      kern .5u#, oct"340" kern .5u#, oct"350" kern .5u#;
ligtable oct"272": "|" =: oct"276",
         oct"276": "x" kern .5u#,
        "g" kern-2u#, "n" kern-.5u#, "m" kern -.5u#, "q" kern -if cbleipzig:.5else:2fi u#,
             "u"      kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
             oct"334" kern-.5u#,
             if cbleipzig: "t" kern -.85u#,fi
             "e"      kern .5u#, oct"340" kern .5u#, oct"350" kern .5u#;
ligtable oct"273": "|" =: oct"277",
         oct"277": "x" kern .5u#,
        "g" kern-2u#, "n" kern-.5u#, "m" kern -.5u#, "q" kern -if cbleipzig:.5else:2fi u#,
             "u"      kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
             oct"334" kern-.5u#,
             if cbleipzig: "t" kern -.85u#,fi
             "e"      kern .5u#, oct"340" kern .5u#, oct"350" kern .5u#;
ligtable oct"300": "|" =: oct"304",
         oct"304": "x" kern .5u#,
        "g" kern-2u#, "n" kern-.5u#, "m" kern -.5u#, "q" kern -if cbleipzig:.5else:2fi u#,
             "u"      kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
             oct"334" kern-.5u#,
             if cbleipzig: "t" kern -.85u#,fi
             "e"      kern .5u#, oct"340" kern .5u#, oct"350" kern .5u#;
ligtable oct"301": "|" =: oct"305",
         oct"305": "x" kern .5u#,
        "g" kern-2u#, "n" kern-.5u#, "m" kern -.5u#, "q" kern -if cbleipzig:.5else:2fi u#,
             "u"      kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
             oct"334" kern-.5u#,
             if cbleipzig: "t" kern -.85u#,fi
             "e"      kern .5u#, oct"340" kern .5u#, oct"350" kern .5u#;
ligtable oct"302": "|" =: oct"306",
         oct"306": "x" kern .5u#,
        "g" kern-2u#, "n" kern-.5u#, "m" kern -.5u#, "q" kern -if cbleipzig:.5else:2fi u#,
             "u"      kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
             oct"334" kern-.5u#,
             if cbleipzig: "t" kern -.85u#,fi
             "e"      kern .5u#, oct"340" kern .5u#, oct"350" kern .5u#;


                                                             % sigma ligatures
 % left sigma is replaced with final sigma, while right character is preserved

ligtable "s":"." =:| "c", "," =:| "c", ";" =:| "c",
             ":" =:| "c", "?" =:| "c", "!" =:| "c",
             ")" =:| "c", "/" =:| "c", "]" =:| "c",
             oct"375" =:| "c", oct"052" =:| "c", oct"035" =:| "c",
             "a"      kern-.8u#, oct"200" kern-.8u#, oct"204" kern-.8u#,
             oct"210" kern-.8u#, oct"214" kern-.8u#, oct"220" kern-.8u#,
             oct"224" kern-.8u#, oct"370" kern-.8u#,
             "w"      kern-.5u#, oct"260" kern-.5u#, oct"264" kern-.5u#,
             oct"270" kern-.5u#, oct"274" kern-.5u#, oct"300" kern-.5u#,
             oct"304" kern-.5u#, oct"372" kern-.5u#,
             "o"      kern-.5u#, oct"344" kern-.5u#, oct"354" kern-.5u#,
             if cbleipzig: sampi kern-3u#, fi
             if not cbleipzig:"e"      kern-.5u#, oct"340" kern-.5u#, oct"350" kern-.5u#,fi
             "r"      kern-.5u#, oct"373" kern-.5u#, oct"374" kern-.5u#;

ligtable "v":  "v"=: "v", "A"=: "A", "B"=: "B", "G"=: "G", "D"=: "D",
               "E"=: "E", "Z"=: "Z", "H"=: "H", "J"=: "J", "I"=: "I",
               "K"=: "K", "L"=: "L", "M"=: "M", "N"=: "N", "X"=: "X",
               "O"=: "O", "P"=: "P", "R"=: "R", "S"=: "S", "T"=: "T",
               "U"=: "U", "F"=: "F", "Q"=: "Q", "Y"=: "Y", "W"=: "W";.

                                                                    % kernings

ligtable "i": oct"310": oct"311": oct"312": oct"320": oct"321": oct"322":
    oct"330": oct"331": oct"332": oct"360": oct"361": oct"362": oct"363":
               "t" kern if cbleipzig:-1.5else:-1fi u#,   "n" kern if cbleipzig:-1else:-.3fi u#, 
               "c" kern-.5u#, "s" kern-.5u#, if cbleipzig: sampi kern-3u#, fi
               "h" kern-.3u#, "g" kern if cbleipzig: -1.25else:-2fi u# ,
               "j" if cbleipzig:kern-.6u# else:kern-.3u# fi, "q" kern-1u#, "k" kern if cbleipzig:-1else:.5fi u#,
               "o" kern-.5u#,       oct"344"  kern-.5u#, oct"345" kern-.5u#,
                oct"346" kern-.5u#, oct"354"  kern-.5u#, oct"355" kern-.5u#,
                oct"356" kern-.5u#;

ligtable "e": oct"340":  oct"341":  oct"342":  oct"343":  oct"350":
              oct"351":  oct"352":  oct"353": if cbleipzig: sampi kern-3u#, fi
             "a"      kern-.5u#, oct"200" kern-.5u#, oct"204" kern-.5u#,
             oct"210" kern-.5u#, oct"214" kern-.5u#, oct"220" kern-.5u#,
             oct"224" kern-.5u#, oct"370" kern-.5u#,
             "d" kern-.5u#, "q" kern-if cbleipzig:.15else:1fi u#, "s" kern-.5u#,
             "u"      kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
             oct"334" kern-.5u#;

ligtable "o": oct"344": oct"345": oct"346": oct"347":
              oct"354": oct"355": oct"356": oct"357": if cbleipzig: sampi kern-3u#, fi
            "l" kern-.5u#, "g" kern-.5u#, "n" kern-.7u#, "t" kern-.6u#,
            "q" kern-if cbleipzig:.5else:2fi u#, "m" kern if cbleipzig:-0.2else:-.7fi u#,
            "u"      kern-u#, oct"314" kern-u#, oct"324" kern-u#,
            oct"334" kern-u#;

ligtable "u": oct"314": oct"315": oct"316": oct"317": oct"324":
              oct"325": oct"326": oct"327": oct"334": oct"335":
              oct"336": oct"364": oct"365": oct"366": oct"367":
          if not cbleipzig:"g" kern-u#, fi 
          if cbleipzig: sampi kern-3u#, "j" kern-.5u#, fi
          if cbleipzig: "m" kern-.2u# else:"m" kern-.8u# fi,
          "n" kern-.7u#, 
          "q" kern-.5u#, 
          "y" kern .5u#;

ligtable "z":
            "g" kern-2u#, "d" kern-u#, "j" kern-u#, "m" kern-u#, "n" kern-1.6u#,
            "p" kern-1.5u#, "s" kern-1.5u#, "t" kern-1.5u#, "f" kern-1.5u#,
            "q" kern-1.5u#,"y" kern-.5u#, if cbleipzig: sampi kern-u#, fi
             "h"      kern-1.5u#, oct"371" kern-1.5u#, oct"230" kern-1.5u#,
             oct"234" kern-1.5u#, oct"240" kern-1.5u#, oct"244" kern-1.5u#,
             oct"250" kern-1.5u#, oct"254" kern-1.5u#,
             "u"      kern-1.5u#, oct"314" kern-1.5u#, oct"324" kern-1.5u#,
             oct"334" kern-1.5u#,
             "a"      kern-1.5u#, oct"200" kern-1.5u#, oct"204" kern-1.5u#,
             oct"210" kern-1.5u#, oct"214" kern-1.5u#, oct"220" kern-1.5u#,
             oct"224" kern-1.5u#, oct"370" kern-1.5u#,
             "w"      kern-1.5u#, oct"260" kern-1.5u#, oct"264" kern-1.5u#,
             oct"270" kern-1.5u#, oct"274" kern-1.5u#, oct"300" kern-1.5u#,
             oct"304" kern-1.5u#, oct"372" kern-1.5u#,
             "o"      kern-1.5u#, oct"344" kern-1.5u#, oct"354"  kern-1.5u#,
             "e"      kern-1.5u#, oct"340" kern-1.5u#, oct"350"  kern-1.5u#;

ligtable  "t": "q" kern -.5u#,  if cbleipzig: sampi kern-3u#, fi
             "a"      kern-.5u#, oct"200" kern-.5u#, oct"204" kern-.5u#,
             oct"210" kern-.5u#, oct"214" kern-.5u#, oct"220" kern-.5u#,
             oct"224" kern-.5u#, oct"370" kern-.5u#,
             "w"      kern-.5u#, oct"260" kern-.5u#, oct"264" kern-.5u#,
             oct"270" kern-.5u#, oct"274" kern-.5u#, oct"300" kern-.5u#,
             oct"304" kern-.5u#, oct"372" kern-.5u#,
             "o"      kern-.5u#, oct"344" kern-.5u#, oct"354" kern-.5u#,
             "e"      kern-.5u#, oct"340" kern-.5u#, oct"350" kern-.5u#;

ligtable "j": "y" kern .5u#, if cbleipzig: sampi kern-u#, fi
             "i"      kern .5u#, oct"310" kern .5u#, oct"320" kern .5u#,
             oct"330" kern .5u#
             if cbleipzig:, "e" kern.5u#, oct"340" kern.5u#, oct"350" kern.5u#fi;

ligtable "k": "b" kern .5u# 
            if cbleipzig:, sampi kern-3u#, "n" kern-.5u# fi;

ligtable "l": "g" kern-2.5u#, "m" kern if cbleipzig:.25else:-.5fi u#, "n" kern if cbleipzig:-1.5else:-.5fi u#, 
             "s" kern-.5u#, if cbleipzig: "j" kern-.8u#,fi
             "t" kern-.5u#,  "q" kern-u#, if cbleipzig: sampi kern-3u#, fi
             "u"      kern-u#, oct"314" kern-u#, oct"324" kern-u#,
             oct"334" kern-u#,
             if cbleipzig:
             "a"      kern-.25u#, oct"200" kern-.25u#, oct"204" kern-.25u#,
             oct"210" kern-.25u#, oct"214" kern-.25u#, oct"220" kern-.25u#,
             oct"224" kern-.25u#, oct"370" kern-.25u#,
             "h"      kern-1.5u#, oct"371" kern-1.5u#, oct"230" kern-1.5u#,
             oct"234" kern-1.5u#, oct"240" kern-1.5u#, oct"244" kern-1.5u#,
             oct"250" kern-1.5u#, oct"254" kern-1.5u#
             else:
             "a"      kern-u#, oct"200" kern-u#, oct"204" kern-u#,
             oct"210" kern-u#, oct"214" kern-u#, oct"220" kern-u#,
             oct"224" kern-u#, oct"370" kern-u#
             fi
             if cbleipzig:;else:,"e"      kern-u#, oct"340" kern-u#, oct"350" kern-u#;fi

ligtable "m":
             "g" kern-1.5u#, 
             "n" if cbleipzig: kern-1.5u# else:kern-.5u# fi, 
             "s" kern-.5u#,
             "f" kern-.5u#, 
             "q" kern-1.05u#, 
             "z" kern-.5u#, 
             "p" kern -.5u#,
             if cbleipzig: "j" kern -1.1u#, fi 
             if not cbleipzig:
             "i"      kern-.5u#, oct"310" kern-.5u#, oct"320"  kern-.5u#,
             oct"330" kern-.5u#,fi if cbleipzig: sampi kern-4u#, fi
             "u"      kern-u#, oct"314" kern-u#, oct"324" kern-u#,
             oct"334" kern-u#,
             "a"      kern-u#, oct"200" kern-u#, oct"204" kern-u#,
             oct"210" kern-u#, oct"214" kern-u#, oct"220" kern-u#,
             oct"224" kern-u#, oct"370" kern-u#,
             "w"      kern-.5u#, oct"260" kern-.5u#, oct"264" kern-.5u#,
             oct"270" kern-.5u#, oct"274" kern-.5u#, oct"300" kern-.5u#,
             oct"304" kern-.5u#, oct"372" kern-.5u#,
             "o"      kern-.5u#, oct"344" kern-.5u#, oct"354" kern-.5u#;

ligtable "b": "y" kern u#, "t" kern .5u#, "f" kern .5u#, "q" kern -.5u#,
             "i"      kern .5u#, oct"310" kern .5u#, oct"320" kern .5u#,
             oct"330" kern .5u#, if cbleipzig: sampi kern-u#,fi
             "o"      kern .5u#, oct"344" kern .5u#, oct"354" kern .5u#,
             "e"      kern .5u#, oct"340" kern .5u#, oct"350" kern .5u#;

if cbleipzig:
    ligtable "g": sampi kern-3u#, "q" kern.3u#;
else:
    ligtable "g": "m" kern-u#, "n" kern-u# ;
fi

ligtable "d": "m" kern-.8u#, "n" kern-.7u#, "g" kern-1.5u#, "p" kern-.5u#,
             "q" if cbleipzig:kern-.3u# else:kern-1.5u# fi, 
             if cbleipzig: sampi kern-3u#, fi
             "u"      kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
             oct"334" kern-.5u#,
             "a"      kern-.5u#, oct"200" kern-.5u#, oct"204" kern-.5u#,
             oct"210" kern-.5u#, oct"214" kern-.5u#, oct"220" kern-.5u#,
             oct"224" kern-.5u#, oct"370" kern-.5u#;

ligtable "n": if not cbleipzig:"m" kern-.5u#,fi 
             "n" kern-.5u#, 
             if not cbleipzig: "p" kern-.5u#, fi
             "r" if cbleipzig: kern-.1u# else: kern-.5u# fi,
             if cbleipzig: "l" kern-.8u#,fi
             if not cbleipzig: "q" kern-u#, fi
             if cbleipzig: sampi kern-3u#, fi
             "a"      kern if cbleipzig:-.4else:-.8fi u#, oct"200" kern if cbleipzig:-.4else:-.8fi u#, oct"204" kern if cbleipzig:-.4else:-.8fi u#,
             oct"210" kern if cbleipzig:-.4else:-.8fi u#, oct"214" kern if cbleipzig:-.4else:-.8fi u#, oct"220" kern if cbleipzig:-.4else:-.8fi u#,
             oct"224" kern if cbleipzig:-.4else:-.8fi u#, oct"370" kern if cbleipzig:-.4else:-.8fi u#,
             if cbleipzig:
             "w"      kern .15u#, oct"260" kern .15u#, oct"264" kern .15u#,
             oct"270" kern .15u#, oct"274" kern .15u#, oct"300" kern .15u#,
             oct"304" kern .15u#, oct"372" kern .15u#,
             else:
             "w"      kern-.5u#, oct"260" kern-.5u#, oct"264" kern-.5u#,
             oct"270" kern-.5u#, oct"274" kern-.5u#, oct"300" kern-.5u#,
             oct"304" kern-.5u#, oct"372" kern-.5u#,
             fi
             "o"      kern-.5u#, oct"344" kern-.5u#, oct"354" kern-.5u#
             if not cbleipzig:,"e"      kern-.7u#, oct"340" kern-.7u#, oct"350" kern-.7u# fi;

ligtable "x": "g" kern-.7u#,"s" kern-u#, "t" kern-.5u#, "f" kern-.7u#,
              "q" kern-.5u#, if cbleipzig: sampi kern-u#, "v" kern-.5u#,fi
             "u"      kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
             oct"334" kern-.5u#,
             "a"      kern if cbleipzig:-.5else:-1.5fi u#, oct"200" kern if cbleipzig:-.5else:-1.5fi u#, oct"204" kern if cbleipzig:-.5else:-1.5fi u#,
             oct"210" kern if cbleipzig:-.5else:-1.5fi u#, oct"214" kern if cbleipzig:-.5else:-1.5fi u#, oct"220" kern if cbleipzig:-.5else:-1.5fi u#,
             oct"224" kern if cbleipzig:-.5else:-1.5fi u#, oct"370" kern if cbleipzig:-.5else:-1.5fi u#,
             "o"      kern-u#, oct"344" kern-u#, oct"354" kern-u#,
             "e"      kern-u#, oct"340" kern-u#, oct"350" kern-u#;

ligtable "p": "k" kern .5u#, "y" kern .5u#,
             "i"      kern .5u#, oct"310" kern .5u#, oct"320" kern .5u#,
             oct"330" kern .5u#
             if cbleipzig:,"o" kern-u#, oct"344" kern-u#, oct"354" kern-u#, sampi kern-3u# 
             fi;

ligtable "r": oct"373": oct"374":
             "g" kern -u#, "z" kern .5u#, "y" kern .3u#, 
             "q" if cbleipzig:kern-.2u# else:kern-.7u# fi,
             "s" kern .5u#, if cbleipzig: sampi kern-3u#, "n" kern-.9u#, fi
             "i"      kern .5u#, oct"310" kern .5u#, oct"320" kern .5u#,
             oct"330" kern .5u#,
             "o"      kern .5u#, oct"344" kern .5u#, oct"354" kern .5u#;
             
ligtable "f": "g" kern -u#, "m" kern -.7u#, "n" kern -.7u#, "t" kern -.5u#,
              "q" if cbleipzig:kern -.2u#  else:kern -2u# fi, 
              if cbleipzig: sampi kern-3u#, fi
             "h"      kern-.5u#, oct"371" kern-.5u#, oct"230" kern-.5u#,
             oct"234" kern-.5u#, oct"240" kern-.5u#, oct"244" kern-.5u#,
             oct"250" kern-u#, oct"254" kern-u#,
             "u"      kern-u#, oct"314" kern-u#, oct"324" kern-u#,
             oct"334" kern-u#;

ligtable "q": "s" kern -.7u#, 
             if cbleipzig: 
                sampi kern-3u#, "j" kern-u#, "g" kern-.8u#, "d" kern-1.2u#, 
                "k" kern-u#, "l" kern-1.2u#, 
                "n" kern-1.5u#, "x" kern-.8u#, "p" kern-.8u#, "r" kern-.8u#,
                "t" kern-.8u#, "f" kern -1.5u#, "y" kern-.5u#,
                "a"      kern-1.2u#, oct"200" kern-1.2u#, oct"204" kern-1.2u#,
                 oct"210" kern-1.2u#, oct"214" kern-1.2u#, oct"220" kern-1.2u#,
                 oct"224" kern-1.2u#, oct"370" kern-1.2u#,
                 "i"      kern -.5u#, oct"310" kern -.5u#, oct"320" kern -.5u#,
                 oct"330" kern -.5u#, 
                "h"      kern-1.05u#, oct"371" kern-1.05u#, oct"230" kern-1.05u#,
                 oct"234" kern-1.05u#, oct"240" kern-1.05u#, oct"244" kern-1.05u#,
                 oct"250" kern-1.05u#, oct"254" kern-1.05u#,
                "u"      kern-.8u#, oct"314" kern-.8u#, oct"324" kern-.8u#,
                 oct"334" kern-.8u#,
                "w"      kern-1.2u#, oct"260" kern-1.2u#, oct"264" kern-1.2u#,
                 oct"270" kern-1.2u#, oct"274" kern-1.2u#, oct"300" kern-1.2u#,
                 oct"304" kern-1.2u#, oct"372" kern-1.2u#,
             else:
                 "f" kern -.5u#, 
                 "a"      kern-.5u#, oct"200" kern-.5u#, oct"204" kern-.5u#,
                 oct"210" kern-.5u#, oct"214" kern-.5u#, oct"220" kern-.5u#,
                 oct"224" kern-.5u#, oct"370" kern-.5u#,
                 "w"      kern-.5u#, oct"260" kern-.5u#, oct"264" kern-.5u#,
                 oct"270" kern-.5u#, oct"274" kern-.5u#, oct"300" kern-.5u#,
                 oct"304" kern-.5u#, oct"372" kern-.5u#,
             fi
             "e"      kern-.5u#, oct"340" kern-.5u#, oct"350" kern-.5u#,
             "o"      kern-1.5u#, oct"344" kern-1.5u#, oct"354" kern-1.5u#;
            

ligtable "y": "g" kern-.7u#, 
            "q" if cbleipzig:kern-.1u# else:kern-.7u# fi, 
            if cbleipzig: sampi kern-3u#, fi
             "u"      kern-u#, oct"314" kern-u#, oct"324" kern-u#,
             oct"334" kern-u#;

if cbleipzig:
ligtable oct"006": % stigma
          oct"007": % varstigma
          oct"022": % coppa
          sampi: sampi kern-3u#;
ligtable  oct"023": % varcoppa
         sampi kern-4u#;
fi

%
% oct"014"=A" is the same glyph as A, but is in a different position
% oct"015" is a version of Udiaer preshifted by the amount AUkern to the left
%
ligtable oct"014": "U" |=: oct"015",                % (A")+(U)-> (A")+(shifted Udiaer)
    "I" |=: Idiaer,                                 % (A")+(I)-> (A")+(Idiaer)
    "~" |=: oct"040",                                % (A")+(')-> (A")+("~)
    "`" |=: oct"044",                                % (A")+(')-> (A")+("`)
    "'" |=: oct"043";                                % (A")+(')-> (A")+("')
ligtable "A": "|"=: oct"011",
    diaer =: oct"014",                              % (A)+(") -> (A")
    "U" kern-2.5u#, Udiaer kern-AUkern#,
    "J" kern-1.5u#, "O" kern-1.5u#, "T" kern-1.5u#, "F" kern-1.5u#,  "Y" kern-2.2u#,
    "n" if cbleipzig: kern-1.75u# else: kern-.25u# fi;
ligtable "H": "|"=: oct"012";
ligtable "O": "A" kern-1.5u#, "S" kern-u#;
ligtable "U": Udiaer: oct"015": "A" kern-2.5u#, "D" kern-2.5u#, "L" kern-2.5u#;
ligtable "W": "|"=: oct"013";

ligtable "G": "A" kern -2.4u#, "D" kern -2u#, "L" kern -2.2u#;
ligtable "D": "U" kern-2.5u#, "O" kern-.6u#;
ligtable "J": "A" kern-1.5u#, "U" kern-1.5u#;
ligtable "K": "O" kern-1.5u#;
ligtable "L": "U" kern-1.8u#, "O" kern-.6u#;
ligtable "N": "A" kern -1.5u#;
ligtable "R": "A" kern-3u#;
ligtable "S": "A" kern-.5u#;
ligtable "T": "A" kern-1.5u#;
ligtable "F": "A" kern-1.5u#;
ligtable "Y": "A" kern-2.2u#;

endinput;
