/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1993 by Xerox Corporation.  All rights reserved. */
/* time: July 28, 1993 10:18:45 am PDT */
/* C2C version: April 20, 1993 (sun4) */
/* ref-counting: off */
/* file: ImagerFontImpl, module: ImagerFontImpl */ 
/* switches: bcfhklnouw */ 
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [4066445155,1303591985] ImagerFontImpl";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef word (*fPt)();
typedef struct {word f0, f1, f2, f3, f4, f5, f6, f7;} W8;
typedef struct {word f0, f1, f2, f3;} W4;
typedef struct {W8 f; W4 r;} W12;
typedef struct {word f0, f1;} W2;
typedef struct {word f0, f1, f2;} W3;
typedef struct {W8 f; W3 r;} W11;
typedef struct {W8 f; W2 r;} W10;
typedef W10 *W10Pt;
typedef struct {word f0, f1, f2, f3, f4;} W5;
typedef struct {W8 f; W5 r;} W13;
typedef struct {W8 f; W8 r;} W16;
typedef struct {W16 f; W16 r;} W32;
typedef struct {W32 f; W32 r;} W64;
typedef struct {W64 f; W64 r;} W128;
typedef struct {W128 f; W128 r;} W256;
typedef W256 *W256Pt;
typedef W2 *W2Pt;
typedef struct {W256 f; W256 r;} W512;
typedef W512 *W512Pt;
typedef W4 *W4Pt;
typedef struct {W8 f; word r;} W9;
typedef struct {W16 f; word r;} W17;
#define SOURCE(p, l) /* source p, l */
static float fc41 = 1.0;
static float fc42 = 22767.0;
#define MIN(cast, x, y)  ( ( cast x) < ( cast y) ? (x) : (y) )
#define BCK(idx, lim) ( ((unsigned) idx) >= ((unsigned) lim) ? (XR←RaiseBoundsFault()) : (idx) )
#define FMIN(x, y, tx, ty)  ( (tx=((float) x)) <= (ty=((float) y)) ? tx : ty )
#define FMAX(x, y, tx, ty)  ( (tx=((float) x)) >= (ty=((float) y)) ? tx : ty )
#define FABS(f, t) ( ((t=(f)) >= (float) 0.0) ? (t) : (- (t)) )
static float fc106 = 16383.0;
static float fc121 = 600.0;
static float fc168 = 0.0;
static void NoName←Q3468();
static void ImagerFontImpl←P0();
static void MapRope←P60();
static word byteAction←P2160();
static void MapText←P120();
static word Hash←P180();
static word TypefaceFromFont←P240();
static word MakeFont←P300();
static word NoName←Q3528();
static void UpdateFontList←P2364();
static void FlushFontCaches←P360();
static void TransformExtents←P540();
static word Find←P600();
static word Modify←P660();
static word Scale←P720();
static word FindScaled←P780();
static word SelectAlternateMetrics←P840();
static word Contains←P900();
static word NextChar←P960();
static void Escapement←P1020();
static word Amplified←P1080();
static word Correction←P1140();
static void BoundingBox←P1200();
static void FontBoundingBox←P1260();
static word Name←P1320();
static void Kern←P1380();
static word NextKern←P1440();
static word Ligature←P1500();
static word NextLigature←P1560();
static word RangeClip←P1620();
static word CaptureChar←P1680();
static word GeneralCaptureCharMask←P1740();
static word NoName←Q3588();
static void Operator←P2712();
static void StringEscapement←P1800();
static void charAction←P2820();
static void RopeEscapement←P1860();
static void string←P2880();
static void TextEscapement←P1920();
static void string←P2940();
static void StringBoundingBox←P1980();
static void charAction←P3000();
static void RopeBoundingBox←P2040();
static void string←P3060();
static void TextBoundingBox←P2100();
static void string←P3120();
static void NoName←Q3648();
static void NoName←Q3708();
static struct {unsigned f; char r[24];} string1 = {1310744, "\205\210\242\000\101\377\214\257\300\362\141\007\143\300\115\263\074\061\100\244\000\000\000"};
static struct {unsigned f; char r[8];} string2 = {393222, "\010\000\004B\000\001\000"};
static struct {unsigned f; char r[16];} string3 = {917520, "\216\257\300\363\223\326\161\300\017\164\046\072\104\350\000"};
static struct {unsigned f; char r[4];} string4 = {65537, "\001\000\000"};
static struct {unsigned f; char r[44];} string5 = {2752556, "\260\006\005\146\151\162\163\164\257\300\240\236\274\171\300\344\000\142\023\100\200\005\004\162\145\163\164\214\257\300\240\236\274\171\300\344\000\142\023\100\200\261\000"};
static struct {unsigned f; char r[4];} string6 = {131074, "\004\007\000"};
static struct {unsigned f; char r[4];} string7 = {131076, "\216\251\000"};
static struct {unsigned f; char r[16];} string8 = {851984, "\257\300\254\224\163\216\300\143\061\230\115\100\214\000\000"};
static struct {unsigned f; char r[24];} string9 = {1310744, "\254\205\210\241\000\100\377\257\300\301\227\276\106\300\342\254\204\020\101\270\000\000\000"};
static struct {unsigned f; char r[16];} string10 = {851984, "\257\300\046\300\267\143\300\022\215\240\122\100\244\000\000"};
static struct {unsigned f; char r[4];} string11 = {131074, "\004\003\000"};
static struct {unsigned f; char r[44];} string12 = {2752556, "\260\006\005\146\151\162\163\164\257\300\362\141\007\143\300\115\263\074\061\100\244\005\004\162\145\163\164\214\257\300\362\141\007\143\300\115\263\074\061\100\244\261\000"};
static struct {unsigned f; char r[4];} string13 = {131074, "\004\006\000"};
static struct {unsigned f; char r[16];} string14 = {851984, "\257\300\000\172\225\152\300\104\041\252\375\100\164\000\000"};
static struct {unsigned f; char r[8];} string15 = {262152, "rope\000\000\000"};
static struct {unsigned f; char r[32];} string16 = {1835040, "invalid string-body encoding\000\000\000"};
static struct {unsigned f; char r[16];} string17 = {851984, "\257\300\362\141\007\143\300\115\263\074\061\100\164\000\000"};
static struct {unsigned f; char r[12];} string18 = {655370, "\006\003\040\001\044\001\100\200\004\003\000"};
static struct {unsigned f; char r[16];} string19 = {851984, "\257\300\000\172\225\152\300\104\041\252\375\100\150\000\000"};
static struct {unsigned f; char r[12];} string20 = {1231905127, "erFontWorks"};
static struct {unsigned f; char r[16];} string21 = {851984, "\257\300\360\006\233\311\300\116\352\007\226\100\150\000\000"};
static struct {unsigned f; char r[16];} string22 = {851984, "\257\300\045\370\116\014\300\270\323\074\131\100\150\000\000"};
static struct {unsigned f; char r[16];} string23 = {851984, "\257\300\350\311\135\367\300\362\215\374\250\100\150\000\000"};
static struct {unsigned f; char r[16];} string24 = {851984, "\257\300\254\224\163\216\300\143\061\230\115\100\150\000\000"};
static struct {unsigned f; char r[16];} string25 = {851984, "\257\300\320\075\073\162\300\001\171\341\017\100\150\000\000"};
static struct {unsigned f; char r[16];} string26 = {851984, "\257\300\213\226\301\143\300\072\355\320\373\100\150\000\000"};
static struct {unsigned f; char r[16];} string27 = {851984, "\257\300\041\257\203\366\300\322\161\356\007\100\150\000\000"};
static struct {unsigned f; char r[16];} string28 = {851984, "\257\300\121\117\377\026\300\315\013\026\004\100\150\000\000"};
static struct {unsigned f; char r[12];} string29 = {1231905127, "erTypeface"};
static struct {unsigned f; char r[16];} string30 = {851984, "\257\300\301\227\276\106\300\342\254\204\020\100\150\000\000"};
static struct {unsigned f; char r[16];} string31 = {851984, "\257\300\246\205\220\035\300\344\000\142\023\100\150\000\000"};
static struct {unsigned f; char r[16];} string32 = {851984, "\257\300\363\223\326\161\300\017\164\046\072\100\150\000\000"};
static struct {unsigned f; char r[16];} string33 = {851984, "\257\300\243\162\130\311\300\344\000\142\023\100\150\000\000"};
static struct {unsigned f; char r[16];} string34 = {851984, "\257\300\247\031\224\326\300\123\162\224\023\100\150\000\000"};
static struct {unsigned f; char r[16];} string35 = {851984, "\257\300\346\312\312\137\300\332\074\046\072\100\150\000\000"};
static struct {unsigned f; char r[16];} string36 = {851984, "\257\300\046\300\267\143\300\022\215\240\122\100\150\000\000"};
static struct {unsigned f; char r[28];} string37 = {1572892, "\211\014\013\124\171\160\145\146\141\143\145\122\145\160\300\046\300\267\143\300\022\215\240\122\000\000\000"};
static struct {unsigned f; char r[16];} string38 = {851984, "\257\300\301\227\276\106\300\342\254\204\020\100\164\000\000"};
static struct {unsigned f; char r[4];} string39 = {196611, "\004@\357"};
static struct {
   word f0[34]; word f34; word f35; word f36; 
   word f37; word f38; word f39; word f40; 
   word f41; word f42; word f43; word f44; 
   word f45; word f46; word f47; word f48; 
   word f49; word f50; word f51; word f52; 
   word f53; word f54; word f55; word f56; 
   word f57; word f58; word f59; word f60; 
   word f61; word f62; word f63; word f64; 
   word f65; word f66; word f67; word f68; 
   word f69; word f70; word f71; word f72; 
   word f73; word f74; word f75; word f76; 
   word f77; word f78; word f79; word f80; 
   word f81; word f82; word f83; word f84; 
   word f85; word f86; word f87; word f88; 
   word f89; word f90; word f91; word f92; 
   word f93; word f94; word f95; word f96; 
   word f97; word f98; word f99; word f100; 
   word f101[17]; 
   } globalframe = {
   {0}, (word) TextBoundingBox←P2100, 0, (word) RopeBoundingBox←P2040, 
   0, (word) StringBoundingBox←P1980, 0, (word) TextEscapement←P1920, 
   0, (word) RopeEscapement←P1860, 0, (word) StringEscapement←P1800, 
   0, (word) GeneralCaptureCharMask←P1740, 0, (word) CaptureChar←P1680, 
   0, (word) RangeClip←P1620, 0, (word) NextLigature←P1560, 
   0, (word) Ligature←P1500, 0, (word) NextKern←P1440, 
   0, (word) Kern←P1380, 0, (word) Name←P1320, 
   0, (word) FontBoundingBox←P1260, 0, (word) BoundingBox←P1200, 
   0, (word) Correction←P1140, 0, (word) Amplified←P1080, 
   0, (word) Escapement←P1020, 0, (word) NextChar←P960, 
   0, (word) Contains←P900, 0, (word) SelectAlternateMetrics←P840, 
   0, (word) FindScaled←P780, 0, (word) Scale←P720, 
   0, (word) Modify←P660, 0, (word) Find←P600, 
   0, (word) TransformExtents←P540, 0, (word) FlushFontCaches←P360, 
   0, (word) MakeFont←P300, 0, (word) TypefaceFromFont←P240, 
   0, (word) Hash←P180, 0, (word) MapText←P120, 
   0, (word) MapRope←P60, 0, (word) ImagerFontImpl←P0, 
   {0}
   };

static void NoName←Q3468()
   {
   register ptr gf←c0374 =  (ptr) &globalframe;
   word var←c36604;
   (* (( (ptr) gf←c0374)+16) ) = (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2);
   (* (( (ptr) gf←c0374)+20) ) = (word) XR←GetTypeIndex((word) &string3, 0, (word) &string4);
   (* (( (ptr) gf←c0374)+22) ) = (word) XR←GetTypeIndex((word) &string5, 0, (word) &string6);
   (* (( (ptr) gf←c0374)+23) ) = (word) XR←GetTypeIndex((word) &string7, 0, (word) &string4);
   (* (( (ptr) gf←c0374)+24) ) = (word) XR←GetTypeIndex((word) &string8, 0, (word) &string4);
   (* (( (ptr) gf←c0374)+27) ) = (word) XR←GetTypeIndexS((word) (&string9));
   (* (( (ptr) gf←c0374)+28) ) = (word) XR←GetTypeIndex((word) &string10, 0, (word) &string11);
   (* (( (ptr) gf←c0374)+29) ) = (word) XR←GetTypeIndex((word) &string12, 0, (word) &string13);
   (* (( (ptr) gf←c0374)+31) ) = (word) XR←GetTypeIndexS((word) (&string14));
   (*  (ptr) (( (bPt) gf←c0374)+128) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0374)+23) ), (word) &string15);
   (*  (ptr) (( (bPt) gf←c0374)+132) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0374)+20) ), (word) &string16);
   (void) XR←DeclareGlobalFrame((word) "ImagerFontImpl", &globalframe, (word) XR←GetTypeIndex((word) &string17, 0, (word) &string18)
      , (word) (( (bPt) gf←c0374)+400)/* var←c33212 */ );
   var←c36604 = (word) XR←ImportInterface((word) "ImagerBox", (word) XR←GetTypeIndexS((word) (&string19)), 7);
   (* (( (ptr) gf←c0374)+107)/* var←c35196 */  ) = var←c36604;
   (void) XR←ImportProcS(var←c36604, 269484545);
   var←c36604 = (word) XR←ImportInterface((word) &string20, (word) XR←GetTypeIndexS((word) (&string21)), 3);
   (* (( (ptr) gf←c0374)+115)/* var←c35868 */  ) = var←c36604;
   (void) XR←ImportProcS(var←c36604, 786435);
   var←c36604 = (word) XR←ImportInterface((word) "ImagerError", (word) XR←GetTypeIndexS((word) (&string22)), 3);
   (* (( (ptr) gf←c0374)+104)/* var←c33436 */  ) = var←c36604;
   var←c36604 = (word) XR←ImportInterface((word) "ImagerManhattan", (word) XR←GetTypeIndexS((word) (&string23)), 24);
   (* (( (ptr) gf←c0374)+111)/* var←c35708 */  ) = var←c36604;
   (void) XR←ImportProcS(var←c36604, 263425);
   (void) XR←ImportProcS(var←c36604, 268700673);
   var←c36604 = (word) XR←ImportInterface((word) "ImagerMaskCache", (word) XR←GetTypeIndexS((word) (&string24)), 21);
   (* (( (ptr) gf←c0374)+114)/* var←c35836 */  ) = var←c36604;
   (void) XR←ImportProcS(var←c36604, 68682755);
   (void) XR←ImportProcS(var←c36604, 68420354);
   (void) XR←ImportProcS(var←c36604, 67372289);
   var←c36604 = (word) XR←ImportInterface((word) "ImagerMaskCapture", (word) XR←GetTypeIndexS((word) (&string25)), 5);
   (* (( (ptr) gf←c0374)+110)/* var←c35676 */  ) = var←c36604;
   (void) XR←ImportProcS(var←c36604, 68158468);
   var←c36604 = (word) XR←ImportInterface((word) "ImagerSample", (word) XR←GetTypeIndexS((word) (&string26)), 60);
   (* (( (ptr) gf←c0374)+113)/* var←c35804 */  ) = var←c36604;
   (void) XR←ImportProcS(var←c36604, 68161027);
   var←c36604 = (word) XR←ImportInterface((word) "ImagerSys", (word) XR←GetTypeIndexS((word) (&string27)), 15);
   (* (( (ptr) gf←c0374)+105)/* var←c34012 */  ) = var←c36604;
   (void) XR←ImportProcS(var←c36604, 68158210);
   var←c36604 = (word) XR←ImportInterface((word) "ImagerTransformation", (word) XR←GetTypeIndexS((word) (&string28)), 55);
   (* (( (ptr) gf←c0374)+102)/* var←c33244 */  ) = var←c36604;
   (void) XR←ImportProcS(var←c36604, 135013378);
   (void) XR←ImportProcS(var←c36604, 67636994);
   (void) XR←ImportProcS(var←c36604, 262401);
   (void) XR←ImportProcS(var←c36604, 67635458);
   (void) XR←ImportProcS(var←c36604, 269756930);
   (void) XR←ImportProcS(var←c36604, 67371521);
   (void) XR←ImportProcS(var←c36604, 67645698);
   (void) XR←ImportProcS(var←c36604, 67371777);
   var←c36604 = (word) XR←ImportInterface((word) &string29, (word) XR←GetTypeIndexS((word) (&string30)), 12);
   (* (( (ptr) gf←c0374)+106)/* var←c34428 */  ) = var←c36604;
   (void) XR←ImportProcS(var←c36604, 67633410);
   (void) XR←ImportProcS(var←c36604, 67895299);
   var←c36604 = (word) XR←ImportInterface((word) "Real", (word) XR←GetTypeIndexS((word) (&string31)), 11);
   (* (( (ptr) gf←c0374)+108)/* var←c35356 */  ) = var←c36604;
   (void) XR←ImportProcS(var←c36604, 67371777);
   (void) XR←ImportProcS(var←c36604, 67372033);
   var←c36604 = (word) XR←ImportInterface((word) "Rope", (word) XR←GetTypeIndexS((word) (&string32)), 43);
   (* (( (ptr) gf←c0374)+103)/* var←c33340 */  ) = var←c36604;
   (void) XR←ImportProcS(var←c36604, 67903235);
   (void) XR←ImportProcS(var←c36604, 67898627);
   (void) XR←ImportProcS(var←c36604, 68163076);
   var←c36604 = (word) XR←ImportInterface((word) "SF", (word) XR←GetTypeIndexS((word) (&string33)), 19);
   (* (( (ptr) gf←c0374)+112)/* var←c35772 */  ) = var←c36604;
   (void) XR←ImportProcS(var←c36604, 135270145);
   var←c36604 = (word) XR←ImportInterface((word) "Vector2", (word) XR←GetTypeIndexS((word) (&string34)), 22);
   (* (( (ptr) gf←c0374)+116)/* var←c36028 */  ) = var←c36604;
   (void) XR←ImportProcS(var←c36604, 135266306);
   (void) XR←ImportProcS(var←c36604, 135005698);
   var←c36604 = (word) XR←ImportInterface((word) "Scaled", (word) XR←GetTypeIndexS((word) (&string35)), 19);
   (* (( (ptr) gf←c0374)+109)/* var←c35580 */  ) = var←c36604;
   (void) XR←ImportProcS(var←c36604, 67371777);
   var←c36604 = (word) XR←ExportInterface((word) "ImagerFont", (word) XR←GetTypeIndexS((word) (&string36)), 26);
   (* (( (ptr) gf←c0374)+117)/* var←c36636 */  ) = var←c36604;
   (void) XR←ExportProcS(var←c36604, (word) (( (bPt) gf←c0374)+392)/* var←c33180 */ , 1048580, (word) "MapRope");
   (void) XR←ExportProcS(var←c36604, (word) (( (bPt) gf←c0374)+384)/* var←c33148 */ , 1048836, (word) "MapText");
   (void) XR←ExportType((word) "TypefaceRep", (word) XR←GetTypeIndexS((word) (&string37)), (word) XR←GetTypeIndex((word) &string38, 0, (word) &string39)
      );
   (void) XR←ExportProcS(var←c36604, (word) (( (bPt) gf←c0374)+336)/* var←c32956 */ , 67633922, (word) "Find");
   (void) XR←ExportProcS(var←c36604, (word) (( (bPt) gf←c0374)+328)/* var←c32924 */ , 67634178, (word) "Modify");
   (void) XR←ExportProcS(var←c36604, (word) (( (bPt) gf←c0374)+320)/* var←c32892 */ , 67634434, (word) "Scale");
   (void) XR←ExportProcS(var←c36604, (word) (( (bPt) gf←c0374)+312)/* var←c32860 */ , 67634690, (word) "FindScaled");
   (void) XR←ExportProcS(var←c36604, (word) (( (bPt) gf←c0374)+304)/* var←c32828 */ , 67634946, (word) "SelectAlternateMetrics")
   ;
   (void) XR←ExportProcS(var←c36604, (word) (( (bPt) gf←c0374)+296)/* var←c32796 */ , 67635202, (word) "Contains");
   (void) XR←ExportProcS(var←c36604, (word) (( (bPt) gf←c0374)+288)/* var←c32764 */ , 67635458, (word) "NextChar");
   (void) XR←ExportProcS(var←c36604, (word) (( (bPt) gf←c0374)+280)/* var←c32732 */ , 134744578, (word) "Escapement");
   (void) XR←ExportProcS(var←c36604, (word) (( (bPt) gf←c0374)+272)/* var←c32700 */ , 67635970, (word) "Amplified");
   (void) XR←ExportProcS(var←c36604, (word) (( (bPt) gf←c0374)+264)/* var←c32668 */ , 67636226, (word) "Correction");
   (void) XR←ExportProcS(var←c36604, (word) (( (bPt) gf←c0374)+256)/* var←c32636 */ , 268963074, (word) "BoundingBox");
   (void) XR←ExportProcS(var←c36604, (word) (( (bPt) gf←c0374)+248)/* var←c32604 */ , 268701185, (word) "FontBoundingBox");
   (void) XR←ExportProcS(var←c36604, (word) (( (bPt) gf←c0374)+240)/* var←c32572 */ , 67374849, (word) "Name");
   (void) XR←ExportProcS(var←c36604, (word) (( (bPt) gf←c0374)+232)/* var←c32540 */ , 135008259, (word) "Kern");
   (void) XR←ExportProcS(var←c36604, (word) (( (bPt) gf←c0374)+224)/* var←c32508 */ , 67899651, (word) "NextKern");
   (void) XR←ExportProcS(var←c36604, (word) (( (bPt) gf←c0374)+216)/* var←c32476 */ , 67899907, (word) "Ligature");
   (void) XR←ExportProcS(var←c36604, (word) (( (bPt) gf←c0374)+208)/* var←c32444 */ , 67900163, (word) "NextLigature");
   (void) XR←ExportProcS(var←c36604, (word) (( (bPt) gf←c0374)+176)/* var←c32316 */ , 135009283, (word) "StringEscapement");
   (void) XR←ExportProcS(var←c36604, (word) (( (bPt) gf←c0374)+168)/* var←c32284 */ , 135533829, (word) "RopeEscapement");
   (void) XR←ExportProcS(var←c36604, (word) (( (bPt) gf←c0374)+160)/* var←c32252 */ , 135534085, (word) "TextEscapement");
   (void) XR←ExportProcS(var←c36604, (word) (( (bPt) gf←c0374)+152)/* var←c32220 */ , 269227779, (word) "StringBoundingBox")
   ;
   (void) XR←ExportProcS(var←c36604, (word) (( (bPt) gf←c0374)+144)/* var←c32188 */ , 269752325, (word) "RopeBoundingBox");
   (void) XR←ExportProcS(var←c36604, (word) (( (bPt) gf←c0374)+136)/* var←c32156 */ , 269752581, (word) "TextBoundingBox");
   var←c36604 = (word) XR←ExportInterface((word) &string20, (word) XR←GetTypeIndexS((word) (&string21)), 3);
   (* (( (ptr) gf←c0374)+117)/* var←c36636 */  ) = var←c36604;
   (void) XR←ExportProcS(var←c36604, (word) (( (bPt) gf←c0374)+192)/* var←c32380 */ , 68157956, (word) "CaptureChar");
   var←c36604 = (word) XR←ExportInterface((word) &string29, (word) XR←GetTypeIndexS((word) (&string30)), 12);
   (* (( (ptr) gf←c0374)+117)/* var←c36636 */  ) = var←c36604;
   (void) XR←ExportProcS(var←c36604, (word) (( (bPt) gf←c0374)+368)/* var←c33084 */ , 67371777, (word) "TypefaceFromFont");
   (void) XR←ExportProcS(var←c36604, (word) (( (bPt) gf←c0374)+360)/* var←c33052 */ , 67634178, (word) "MakeFont");
   (void) XR←ExportProcS(var←c36604, (word) (( (bPt) gf←c0374)+184)/* var←c32348 */ , 67896835, (word) "GeneralCaptureCharMask")
   ;
   (void) XR←ExportProcS(var←c36604, (word) (( (bPt) gf←c0374)+352)/* var←c33020 */ , 2560, (word) "FlushFontCaches");
   }

static void ImagerFontImpl←P0(formal←c068, formal←c067)
   word formal←c068;
   word formal←c067;
   {
   register ptr gf←c36668 =  (ptr) &globalframe;
   /* ImagerFontImpl: */ 
SOURCE(1027, 15075)
SOURCE(3642, 70)
   {
      word pd40;
      pd40 = (* (( (ptr) (* (( (ptr) gf←c36668)+102)/* var←c33244 */  ))+7) );
      (* (( (ptr) gf←c36668)+8)/* identityTransformation←v3840 */  ) = (word) ( *( (fPt) ((*  (ptr) pd40 ))))((*  (ptr) (&fc41) ), pd40)
      ;
      };
SOURCE(3947, 51)
   (* (( (ptr) gf←c36668)+9)/* hashTable←v4036 */  ) = XR←NewObject(2048, (* (( (ptr) gf←c36668)+16) ));
SOURCE(10491, 36)
   *(float*)(( (ptr) gf←c36668)+13)/* boundsMin←v4932 */  =  - (float)(unsigned)10000;
SOURCE(10529, 46)
   (* (( (ptr) gf←c36668)+14)/* boundsMax←v4960 */  ) = (*  (ptr) &fc42 );
   }

static void MapRope←P60(formal←c0430, formal←c0431, formal←c0432, formal←c0433)
   word formal←c0430;
   word formal←c0431;
   word formal←c0432;
   word formal←c0433;
   {
   W12 var←c36700;
   /* declaration of rope←v5304 skipped */ 
   /* declaration of start←v5332 skipped */ 
   /* declaration of len←v5360 skipped */ 
   /* declaration of charAction←v5388 skipped */ 
   register ptr gf←c36732 =  (ptr) &globalframe;
   /* declaration of var←c33308 skipped */ 
   /* declaration of state←v10300 skipped */ 
   /* declaration of set←v10328 skipped */ 
   (* (( (ptr) &var←c36700)+4)/* rope←v5304 */  ) = formal←c0430;
   (* (( (ptr) &var←c36700)+5)/* start←v5332 */  ) = formal←c0431;
   (* (( (ptr) &var←c36700)+6)/* len←v5360 */  ) = formal←c0432;
   (* (( (ptr) &var←c36700)+7)/* charAction←v5388 */  ) = formal←c0433;
   /* MapRope: */ 
SOURCE(1822, 10856)
   {
      word tmpAddr43;
      tmpAddr43 = (word) (( (ptr) &var←c36700)+8)/* var←c33308 */ ;
      (*  (ptr) tmpAddr43 ) = ( ((word)  (fPt) byteAction←P2160) );
      (* (( (ptr) tmpAddr43) + 1) ) = 1;
      };
SOURCE(1920, 7)
   (* (( (ptr) &var←c36700)+10)/* state←v10300 */  ) = 0;
SOURCE(1978, 21)
   (* (( (ptr) &var←c36700)+11)/* set←v10328 */  ) = 0;
SOURCE(2578, 10100)
   {
      word var←c33372;
      word pd44;
      pd44 = (* (( (ptr) (* (( (ptr) gf←c36732)+103)/* var←c33340 */  ))+26) );
      var←c33372 = (word) ( *( (fPt) ((*  (ptr) pd44 ))))((* (( (ptr) &var←c36700)+4)/* rope←v5304 */  ), (* (( (ptr) &var←c36700)+5)
         /* start←v5332 */  ), (* (( (ptr) &var←c36700)+6)/* len←v5360 */  ), (word) (( (bPt) &var←c36700)+32)/* var←c33308 */ , pd44)
      ;
      };
   }

static word byteAction←P2160(c←v10588, formal←c36796)
   word c←v10588;
   word formal←c36796;
   {
   register ptr gf←c36764 =  (ptr) &globalframe;
   word var←c10632;
   word b←v10660;
   formal←c36796 = (formal←c36796 - 32);
   /* byteAction: */ 
SOURCE(2001, 10677)
SOURCE(2001, 10677)
   var←c10632 = 0;
SOURCE(2055, 16)
   b←v10660 = c←v10588;
SOURCE(2073, 10605)
   {
      word var←c33404;
      var←c33404 = (* (( (ptr) formal←c36796)+10) );
      switch (var←c33404) {
         case 0: 
SOURCE(2098, 10580)
            if ((b←v10660 == 255)) {
SOURCE(2112, 20)
               (* (( (ptr) formal←c36796)+10) ) = 1;
               }
            else {
SOURCE(2134, 10544)
               {
                  word pd45;
                  pd45 = (* (( (ptr) formal←c36796)+7) );
                  (void) ( *( (fPt) ((*  (ptr) pd45 ))))((((* (( (ptr) formal←c36796)+11) ) << 8) + b←v10660), pd45);
                  };
               };
            break;
         case 1: 
SOURCE(2188, 58)
            if ((b←v10660 == 255)) {
SOURCE(2202, 21)
               (* (( (ptr) formal←c36796)+10) ) = 2;
               }
            else {
SOURCE(2225, 7)
               (* (( (ptr) formal←c36796)+11) ) = b←v10660;
SOURCE(2234, 12)
               (* (( (ptr) formal←c36796)+10) ) = 0;
               };
            break;
         case 2: 
SOURCE(2260, 10418)
            if ((b←v10660 == 0)) {
SOURCE(2272, 22)
               (* (( (ptr) formal←c36796)+10) ) = 3;
               }
            else {
SOURCE(2294, 10384)
               {
                  word var←c33468;
                  {
                     word var←c33500;
                     word var←c33532;
                     var←c33500 = XR←NewObject(12, (* (( (ptr) gf←c36764)+22) ));
                     var←c33532 = var←c33500;
                     (*  (ptr) var←c33532 ) = (* (( (ptr) gf←c36764)+32) );
                     {
                        word pd46;
                        pd46 = (* (( (ptr) (* (( (ptr) gf←c36764)+103)/* var←c33340 */  ))+17) );
                        (* (( (ptr) var←c33532)+1) ) = (word) ( *( (fPt) ((*  (ptr) pd46 ))))((* (( (ptr) formal←c36796)+4) ), (* (( (ptr) formal←c36796)+5)
                            ), (* (( (ptr) formal←c36796)+6) ), pd46);
                        };
                     var←c33468 = var←c33500;
                     };
                  {
                     W3 var←c085;
                     var←c085.f0 = 44;
                     var←c085.f1 = (* (( (ptr) gf←c36764)+33) );
                     var←c085.f2 = var←c33468;
                     (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c36764)+104)/* var←c33436 */  ))+4) ), (word) &var←c085);
                     };
                  };
               };
            break;
         case 3: 
SOURCE(2423, 63)
            if ((b←v10660 == 255)) {
SOURCE(2437, 20)
               (* (( (ptr) formal←c36796)+10) ) = 1;
               }
            else {
SOURCE(2459, 7)
               (* (( (ptr) formal←c36796)+11) ) = b←v10660;
SOURCE(2468, 18)
               (* (( (ptr) formal←c36796)+10) ) = 4;
               };
            break;
         case 4: 
SOURCE(2504, 10174)
            {
               word pd47;
               pd47 = (* (( (ptr) formal←c36796)+7) );
               (void) ( *( (fPt) ((*  (ptr) pd47 ))))((((* (( (ptr) formal←c36796)+11) ) << 8) + b←v10660), pd47);
               };
SOURCE(2546, 17)
            (* (( (ptr) formal←c36796)+10) ) = 3;
            break;
         };
      };
SOURCE(2001, 10677)
   return(var←c10632);
   }

static void MapText←P120(text←v5448, start←v5476, len←v5504, charAction←v5532)
   word text←v5448;
   word start←v5476;
   word len←v5504;
   word charAction←v5532;
   {
   register ptr gf←c36828 =  (ptr) &globalframe;
   word rem←v10704;
   word state←v10732 = 0;
   word set←v10760 = 0;
   /* MapText: */ 
SOURCE(2653, 10025)
SOURCE(2765, 28)
   rem←v10704 = ( (unsigned) (*  (hPt) text←v5448 ) - start←v5476);
SOURCE(2892, 9786)
   {
      register word i←v10960 = 0;
      register word noName←c33628;
      noName←c33628 = (MIN( (unsigned) , len←v5504, rem←v10704));
      if ((i←v10960 >= noName←c33628)) {
         goto lab←L100000;
         };
      lab←L100003: ;
      {
         word b←v11004;
SOURCE(2927, 28)
         {
            word var←c33660;
            var←c33660 = (start←v5476 + i←v10960);
            {
               word limit48;
               b←v11004 =  (unsigned) (word) (* ((( (bPt) text←v5448)+4)+(
                     limit48 = (word)  (unsigned) (* (( (hPt) text←v5448)+1) ),
                     BCK(var←c33660, limit48)
                     )) );
               };
            };
SOURCE(2957, 9721)
         {
            word var←c33692;
            var←c33692 = state←v10732;
            switch (var←c33692) {
               case 0: 
SOURCE(2982, 9696)
                  if ((b←v11004 == 255)) {
SOURCE(2996, 20)
                     state←v10732 = 1;
                     }
                  else {
SOURCE(3018, 9660)
                     (void) ( *( (fPt) ((*  (ptr) charAction←v5532 ))))((((word) set←v10760 << 8) + b←v11004), charAction←v5532);
                     };
                  break;
               case 1: 
SOURCE(3072, 58)
                  if ((b←v11004 == 255)) {
SOURCE(3086, 21)
                     state←v10732 = 2;
                     }
                  else {
SOURCE(3109, 7)
                     set←v10760 = b←v11004;
SOURCE(3118, 12)
                     state←v10732 = 0;
                     };
                  break;
               case 2: 
SOURCE(3144, 9534)
                  if ((b←v11004 == 0)) {
SOURCE(3156, 22)
                     state←v10732 = 3;
                     }
                  else {
SOURCE(3178, 9500)
                     {
                        word var←c33724;
                        {
                           word var←c33756;
                           word var←c33788;
                           var←c33756 = XR←NewObject(12, (* (( (ptr) gf←c36828)+22) ));
                           var←c33788 = var←c33756;
                           (*  (ptr) var←c33788 ) = (* (( (ptr) gf←c36828)+32) );
                           {
/*1*/   word var←c33852;
/*1*/   {
/*1*/      word pd49;
/*1*/      pd49 = (* (( (ptr) (* (( (ptr) gf←c36828)+103)/* var←c33340 */  ))+35) );
/*1*/      var←c33852 = (word) ( *( (fPt) ((*  (ptr) pd49 ))))(text←v5448, 0, 32767, pd49);
/*1*/      };
/*1*/   {
/*1*/      word pd50;
/*1*/      pd50 = (* (( (ptr) (* (( (ptr) gf←c36828)+103)/* var←c33340 */  ))+17) );
/*1*/      (* (( (ptr) var←c33788)+1) ) = (word) ( *( (fPt) ((*  (ptr) pd50 ))))(var←c33852, start←v5476, len←v5504, pd50);
/*1*/      };
/*1*/   };
                           var←c33724 = var←c33756;
                           };
                        {
                           W3 var←c0103;
                           var←c0103.f0 = 44;
                           var←c0103.f1 = (* (( (ptr) gf←c36828)+33) );
                           var←c0103.f2 = var←c33724;
                           (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c36828)+104)/* var←c33436 */  ))+4) ), (word) &var←c0103);
                           };
                        };
                     };
                  break;
               case 3: 
SOURCE(3325, 63)
                  if ((b←v11004 == 255)) {
SOURCE(3339, 20)
                     state←v10732 = 1;
                     }
                  else {
SOURCE(3361, 7)
                     set←v10760 = b←v11004;
SOURCE(3370, 18)
                     state←v10732 = 4;
                     };
                  break;
               case 4: 
SOURCE(3406, 9272)
                  (void) ( *( (fPt) ((*  (ptr) charAction←v5532 ))))((((word) set←v10760 << 8) + b←v11004), charAction←v5532);
SOURCE(3448, 17)
                  state←v10732 = 3;
                  break;
               };
            };
         };
      i←v10960 = (i←v10960 + 1);
      if ((i←v10960 < noName←c33628)) {
         goto lab←L100003;
         };
      lab←L100000: ;
      };
   }

static word Hash←P180(typeface←v5808, m←v5836)
   word typeface←v5808;
   word m←v5836;
   {
   register ptr gf←c36860 =  (ptr) &globalframe;
   word var←c5880;
   W11 hashRec←v11076;
   /* Hash: */ 
SOURCE(4057, 8621)
SOURCE(4234, 33)
   (*  (ptr) &hashRec←v11076 ) = typeface←v5808;
   (*  (W10Pt) (( (ptr) &hashRec←v11076)+1) ) = (*  (W10Pt) m←v5836 );
SOURCE(4277, 8401)
SOURCE(4279, 8399)
   {
      word var←c0409;
      {
         W3 var←c33980;
         var←c33980.f0 = (word) &hashRec←v11076;
         var←c33980.f1 = 0;
         var←c33980.f2 = 44;
         {
            word pd51;
            pd51 = (* (( (ptr) (* (( (ptr) gf←c36860)+105)/* var←c34012 */  ))+7) );
            var←c0409 = (word) ( *( (fPt) ((*  (ptr) pd51 ))))(var←c33980, 0, pd51);
            };
         };
      return(var←c0409);
      };
   }

static word TypefaceFromFont←P240(font←v5940)
   word font←v5940;
   {
   word var←c5984;
   /* TypefaceFromFont: */ 
SOURCE(4393, 89)
SOURCE(4459, 23)
   return((* (( (ptr) font←v5940)+1) ));
   }

static word MakeFont←P300(formal←c0434, formal←c0435)
   word formal←c0434;
   word formal←c0435;
   {
   W13 var←c36892;
   /* declaration of typeface←v6044 skipped */ 
   /* declaration of m←v6072 skipped */ 
   /* declaration of var←c01 skipped */ 
   word var←c6116;
   /* declaration of var←c34044 skipped */ 
   (* (( (ptr) &var←c36892)+4)/* typeface←v6044 */  ) = formal←c0434;
   (* (( (ptr) &var←c36892)+5)/* m←v6072 */  ) = formal←c0435;
   /* MakeFont: */ 
SOURCE(4486, 8192)
   {
      word tmpAddr52;
      tmpAddr52 = (word) (( (ptr) &var←c36892)+7)/* var←c34044 */ ;
      (*  (ptr) tmpAddr52 ) = ( ((word)  (fPt) UpdateFontList←P2364) );
      (* (( (ptr) tmpAddr52) + 1) ) = 1;
      };
SOURCE(4567, 8111)
   {
      /* declaration of hash←v11192 skipped */ 
      /* declaration of hashIndex←v11220 skipped */ 
      /* declaration of font←v11248 skipped */ 
      /* declaration of head←v11276 skipped */ 
      word var←c02;
      {
         word var←c0410;
         var←c0410 = (word) &var←c36892;
         var←c02 = (word) XR←Enable(( ((word)  (fPt) NoName←Q3528) ), ( ((word)  (fPt) NoName←Q3708) ), var←c0410);
         };
      /* removed trivial cond node */ 
      };
   return((* (( (ptr) &var←c36892)+6)/* var←c01 */  ));
   }

static word NoName←Q3528(formal←c0382)
   word formal←c0382;
   {
   register ptr gf←c0381 =  (ptr) &globalframe;
SOURCE(4590, 34)
SOURCE(4590, 34)
   (* (( (ptr) formal←c0382)+9) ) = (word) Hash←P180((* (( (ptr) formal←c0382)+4) ), (* (( (ptr) formal←c0382)+5) ));
SOURCE(4626, 45)
   (* (( (ptr) formal←c0382)+10) ) = ((* (( (ptr) formal←c0382)+9) ) & 0777);
SOURCE(4673, 16)
   (* (( (ptr) formal←c0382)+11) ) = 0;
SOURCE(4691, 37)
   (* (( (ptr) formal←c0382)+12) ) = (* (( (ptr) (* (( (ptr) gf←c0381)+9)/* hashTable←v4036 */  ))+(* (( (ptr) formal←c0382)+10)
       )) );
SOURCE(5291, 7387)
   if (((* (( (ptr) (* (( (ptr) formal←c0382)+4) ))+5) ) == 0)) {
SOURCE(5319, 558)
      {
         word info←v11364;
SOURCE(5321, 75)
         info←v11364 = XR←NewObject(1024, (* (( (ptr) gf←c0381)+27) ));
         XR←FillWords(&(* (W256Pt) (info←v11364)), 256, 536870912);
SOURCE(5398, 7280)
         {
            register word code←v11408 = 0;
            lab←L100009: ;
            {
               word char←v11452;
               word exists←v11480;
               word amplified←v11508;
               word correction←v11536;
SOURCE(5424, 43)
               char←v11452 = code←v11408;
SOURCE(5469, 54)
               {
                  word pd53;
                  pd53 = (* (( (ptr) (*  (ptr) (* (( (ptr) formal←c0382)+4) ) ))+2) );
                  exists←v11480 = (word) ( *( (fPt) ((*  (ptr) pd53 ))))((* (( (ptr) formal←c0382)+4) ), char←v11452, pd53);
                  };
SOURCE(5525, 58)
               {
                  word pd54;
                  pd54 = (* (( (ptr) (*  (ptr) (* (( (ptr) formal←c0382)+4) ) ))+5) );
                  amplified←v11508 = (word) ( *( (fPt) ((*  (ptr) pd54 ))))((* (( (ptr) formal←c0382)+4) ), char←v11452, pd54);
                  };
SOURCE(5585, 70)
               {
                  word pd55;
                  pd55 = (* (( (ptr) (*  (ptr) (* (( (ptr) formal←c0382)+4) ) ))+6) );
                  correction←v11536 = (word) ( *( (fPt) ((*  (ptr) pd55 ))))((* (( (ptr) formal←c0382)+4) ), char←v11452, pd55);
                  };
SOURCE(5657, 7021)
               (* (( (ptr) info←v11364)+code←v11408) ) = ((word) (((word) (((word)  (unsigned) (exists←v11480 & 1) << 1) +  (unsigned) (amplified←v11508 & 1)) << 2) + 
                (unsigned) (correction←v11536 & 3)) << 28);
               };
            if ((code←v11408 >= 255)) {
               goto lab←L100006;
               };
            code←v11408 = (code←v11408 + 1);
            goto lab←L100009;
            lab←L100006: ;
            };
SOURCE(5743, 20)
         (* (( (ptr) (* (( (ptr) formal←c0382)+4) ))+5) ) = info←v11364;
         };
      };
SOURCE(5880, 16)
   (void) UpdateFontList←P2364((word) ((( (bPt) formal←c0382)+28)));
SOURCE(5898, 13)
   (* (( (ptr) formal←c0382)+6) ) = (* (( (ptr) formal←c0382)+11) );
   return(1);
   /* c2c skipped dead code */ 
   }

static void UpdateFontList←P2364(formal←c36956)
   word formal←c36956;
   {
   register ptr gf←c36924 =  (ptr) &globalframe;
   formal←c36956 = (formal←c36956 - 28);
   /* UpdateFontList: */ 
SOURCE(4730, 29)
   (void) (XR←MonitorEntry((word) (( (bPt) gf←c36924)+16)/* LOCK←v3336 */ ));
SOURCE(4761, 7917)
   {
      register word each←v11580;
      each←v11580 = (* (( (ptr) formal←c36956)+12) );
      lab←L100013: ;
      if ((each←v11580 != 0)) {
         }
      else {
         goto lab←L100010;
         };
      {
         W2 node←v11624;
SOURCE(4816, 23)
         node←v11624 = (*  (W2Pt) each←v11580 );
SOURCE(4841, 7837)
         {
            word tc56;
            word pd57;
            if ( ( (node←v11624.f0 == (* (( (ptr) formal←c36956)+9) )) ? ((* (( (ptr) node←v11624.f1)+1) ) == (* (( (ptr) formal←c36956)+4)
             )) : 0 ) ) {
               pd57 = (* (( (ptr) (* (( (ptr) gf←c36924)+102)/* var←c33244 */  ))+53) );
               tc56 =  (word) (0 != (word) ( *( (fPt) ((*  (ptr) pd57 ))))((*  (ptr) node←v11624.f1 ), (* (( (ptr) formal←c36956)+5) ), pd57)
               );
               }
            else {
               tc56 =  (word) 0;
               };
            if (tc56) {
SOURCE(4960, 16)
               (* (( (ptr) formal←c36956)+11) ) = node←v11624.f1;
SOURCE(4978, 5)
               goto lab←L100011;
               }
            else {
SOURCE(4990, 17)
               (* (( (ptr) gf←c36924)+12)/* misses←v4120 */  ) = ((* (( (ptr) gf←c36924)+12)/* misses←v4120 */  ) + 1);
               };
            };
         };
      each←v11580 = (* (( (ptr) each←v11580)+2) );
      goto lab←L100013;
      lab←L100010: ;
      lab←L100011: ;
      };
SOURCE(5018, 7660)
   if (((* (( (ptr) formal←c36956)+11) ) == 0)) {
SOURCE(5071, 7607)
      {
         word var←c34140;
         word var←c34172;
         {
            word pd58;
            pd58 = (* (( (ptr) (* (( (ptr) gf←c36924)+102)/* var←c33244 */  ))+6) );
            var←c34140 = (word) ( *( (fPt) ((*  (ptr) pd58 ))))((* ((( (ptr) formal←c36956)+5)) ), pd58);
            };
         var←c34172 = XR←NewObject(8, (* (( (ptr) gf←c36924)+28) ));
         (*  (ptr) var←c34172 ) = var←c34140;
         (* (( (ptr) var←c34172)+1) ) = (* (( (ptr) formal←c36956)+4) );
         (* (( (ptr) formal←c36956)+11) ) = var←c34172;
         };
SOURCE(5159, 7519)
      {
         word var←c34204;
         var←c34204 = XR←NewObject(12, (* (( (ptr) gf←c36924)+29) ));
         (*  (ptr) var←c34204 ) = (* (( (ptr) formal←c36956)+9) );
         (* (( (ptr) var←c34204)+1) ) = (* (( (ptr) formal←c36956)+11) );
         (* (( (ptr) var←c34204)+2) ) = (* (( (ptr) formal←c36956)+12) );
         (* (( (ptr) (* (( (ptr) gf←c36924)+9)/* hashTable←v4036 */  ))+(* (( (ptr) formal←c36956)+10) )) ) = var←c34204;
         };
SOURCE(5220, 19)
      (* (( (ptr) gf←c36924)+10)/* entries←v4064 */  ) = ((* (( (ptr) gf←c36924)+10)/* entries←v4064 */  ) + 1);
SOURCE(5241, 42)
      if (((* (( (ptr) formal←c36956)+12) ) != 0)) {
SOURCE(5258, 25)
         (* (( (ptr) gf←c36924)+11)/* collisions←v4092 */  ) = ((* (( (ptr) gf←c36924)+11)/* collisions←v4092 */  ) + 1);
         };
      };
SOURCE(4730, 29)
   (void) (XR←MonitorExit((word) (( (bPt) gf←c36924)+16)/* LOCK←v3336 */ ));
   return;
   }

static void FlushFontCaches←P360()
   {
   register ptr gf←c36988 =  (ptr) &globalframe;
   /* FlushFontCaches: */ 
SOURCE(5917, 101)
   (void) (XR←MonitorEntry((word) (( (bPt) gf←c36988)+16)/* LOCK←v3336 */ ));
SOURCE(5956, 21)
   {
      word var←c34236;
      var←c34236 = (* (( (ptr) gf←c36988)+9)/* hashTable←v4036 */  );
      XR←FillWords(&(* (W512Pt) (var←c34236)), 512, 0);
      };
SOURCE(5979, 11)
   (* (( (ptr) gf←c36988)+10)/* entries←v4064 */  ) = 0;
SOURCE(5992, 14)
   (* (( (ptr) gf←c36988)+11)/* collisions←v4092 */  ) = 0;
SOURCE(6008, 10)
   (* (( (ptr) gf←c36988)+12)/* misses←v4120 */  ) = 0;
SOURCE(5917, 101)
   (void) (XR←MonitorExit((word) (( (bPt) gf←c36988)+16)/* LOCK←v3336 */ ));
   return;
   }

static void TransformExtents←P540(formal←c0139, m←v6400, e←v6428)
   word formal←c0139;
   word m←v6400;
   W4 e←v6428;
   {
   register ptr gf←c37020 =  (ptr) &globalframe;
   W4 var←c6472;
   /* TransformExtents: */ 
SOURCE(6353, 6325)
SOURCE(6430, 6248)
   {
      W4 var←c34396;
      {
         W4 var←c34300;
         W4 r←v32108;
         {
            W4 var←c0138;
            {
               W4 var←c34332;
               {
                  word x59;
                  *(float*)&var←c34332.f0 =  - (
                     x59 = e←v6428.f0,  *(float*)&x59
                     );
                  };
               {
                  word x60;
                  *(float*)&var←c34332.f1 =  - (
                     x60 = e←v6428.f2,  *(float*)&x60
                     );
                  };
               {
                  word x61;
                  word x62;
                  *(float*)&var←c34332.f2 = (
                     x61 = e←v6428.f0,  *(float*)&x61
                     ) + (
                     x62 = e←v6428.f1,  *(float*)&x62
                     );
                  };
               {
                  word x63;
                  word x64;
                  *(float*)&var←c34332.f3 = (
                     x63 = e←v6428.f2,  *(float*)&x63
                     ) + (
                     x64 = e←v6428.f3,  *(float*)&x64
                     );
                  };
               {
                  word pd65;
                  pd65 = (* (( (ptr) (* (( (ptr) gf←c37020)+102)/* var←c33244 */  ))+46) );
                  (void) ( *( (fPt) ((*  (ptr) pd65 ))))((word) &var←c0138, m←v6400, var←c34332, pd65);
                  };
               };
            r←v32108 = var←c0138;
            };
SOURCE(6267, 6411)
         {
            word x66;
            *(float*)&var←c34300.f0 =  - (
               x66 = r←v32108.f0,  *(float*)&x66
               );
            };
         {
            word x67;
            word x68;
            *(float*)&var←c34300.f1 = (
               x67 = r←v32108.f0,  *(float*)&x67
               ) + (
               x68 = r←v32108.f2,  *(float*)&x68
               );
            };
         {
            word x69;
            *(float*)&var←c34300.f2 =  - (
               x69 = r←v32108.f1,  *(float*)&x69
               );
            };
         {
            word x70;
            word x71;
            *(float*)&var←c34300.f3 = (
               x70 = r←v32108.f1,  *(float*)&x70
               ) + (
               x71 = r←v32108.f3,  *(float*)&x71
               );
            };
         var←c34396 = var←c34300;
         };
      var←c6472 = var←c34396;
      /* removed tail goto */ 
      };
   (*  (W4Pt) formal←c0139 ) = var←c6472;
   return;
   }

static word Find←P600(name←v6532, substitution←v6560)
   word name←v6532;
   word substitution←v6560;
   {
   register ptr gf←c37052 =  (ptr) &globalframe;
   word var←c6604;
   word typeface←v11668;
   /* Find: */ 
SOURCE(6510, 6168)
SOURCE(6599, 68)
   {
      word pd72;
      pd72 = (* (( (ptr) (* (( (ptr) gf←c37052)+106)/* var←c34428 */  ))+4) );
      typeface←v11668 = (word) ( *( (fPt) ((*  (ptr) pd72 ))))(name←v6532, substitution←v6560, 0, pd72);
      };
SOURCE(6695, 5983)
   return((word) MakeFont←P300(typeface←v11668, (* (( (ptr) gf←c37052)+8)/* identityTransformation←v3840 */  )));
   }

static word Modify←P660(font←v6664, m←v6692)
   word font←v6664;
   word m←v6692;
   {
   register ptr gf←c37084 =  (ptr) &globalframe;
   word modifiedFont←v6736;
   word modifiedTransformation←v11712;
   /* Modify: */ 
SOURCE(6751, 5927)
SOURCE(6751, 5927)
   modifiedFont←v6736 = 0;
SOURCE(6836, 90)
   {
      word pd73;
      pd73 = (* (( (ptr) (* (( (ptr) gf←c37084)+102)/* var←c33244 */  ))+13) );
      modifiedTransformation←v11712 = (word) ( *( (fPt) ((*  (ptr) pd73 ))))((*  (ptr) font←v6664 ), m←v6692, pd73);
      };
SOURCE(6928, 5750)
   modifiedFont←v6736 = (word) MakeFont←P300((* (( (ptr) font←v6664)+1) ), modifiedTransformation←v11712);
SOURCE(6992, 52)
   {
      word pd74;
      pd74 = (* (( (ptr) (* (( (ptr) gf←c37084)+102)/* var←c33244 */  ))+5) );
      (void) ( *( (fPt) ((*  (ptr) pd74 ))))(modifiedTransformation←v11712, pd74);
      };
SOURCE(6751, 5927)
   return(modifiedFont←v6736);
   }

static word Scale←P720(font←v6796, s←v6824)
   word font←v6796;
   word s←v6824;
   {
   register ptr gf←c37116 =  (ptr) &globalframe;
   word modifiedFont←v6868;
   word modifiedTransformation←v11756;
   /* Scale: */ 
SOURCE(7050, 5628)
SOURCE(7050, 5628)
   modifiedFont←v6868 = 0;
SOURCE(7124, 93)
   {
      word pd75;
      pd75 = (* (( (ptr) (* (( (ptr) gf←c37116)+102)/* var←c33244 */  ))+19) );
      modifiedTransformation←v11756 = (word) ( *( (fPt) ((*  (ptr) pd75 ))))((*  (ptr) font←v6796 ), s←v6824, pd75);
      };
SOURCE(7219, 5459)
   modifiedFont←v6868 = (word) MakeFont←P300((* (( (ptr) font←v6796)+1) ), modifiedTransformation←v11756);
SOURCE(7283, 52)
   {
      word pd76;
      pd76 = (* (( (ptr) (* (( (ptr) gf←c37116)+102)/* var←c33244 */  ))+5) );
      (void) ( *( (fPt) ((*  (ptr) pd76 ))))(modifiedTransformation←v11756, pd76);
      };
SOURCE(7050, 5628)
   return(modifiedFont←v6868);
   }

static word FindScaled←P780(name←v6928, s←v6956)
   word name←v6928;
   word s←v6956;
   {
   word var←c7000;
   /* FindScaled: */ 
SOURCE(7341, 5337)
SOURCE(7406, 5272)
   {
      word var←c34524;
      var←c34524 = (word) Find←P600(name←v6928, 1);
      return((word) Scale←P720(var←c34524, s←v6956));
      };
   }

static word SelectAlternateMetrics←P840(font←v7060, alternateMetrics←v7088)
   word font←v7060;
   word alternateMetrics←v7088;
   {
   register ptr gf←c37148 =  (ptr) &globalframe;
   word var←c7132;
   word typeface←v11800;
   word newTypeface←v11828;
   /* SelectAlternateMetrics: */ 
SOURCE(7463, 5215)
SOURCE(7555, 34)
   typeface←v11800 = (* (( (ptr) font←v7060)+1) );
SOURCE(7591, 97)
   {
      word pd77;
      pd77 = (* (( (ptr) (* (( (ptr) gf←c37148)+106)/* var←c34428 */  ))+5) );
      newTypeface←v11828 = (word) ( *( (fPt) ((*  (ptr) pd77 ))))(typeface←v11800, alternateMetrics←v7088, pd77);
      };
SOURCE(7716, 4962)
   return((word) MakeFont←P300(newTypeface←v11828, (*  (ptr) font←v7060 )));
   }

static word Contains←P900(font←v7192, char←v7220)
   word font←v7192;
   word char←v7220;
   {
   word var←c7264;
   word typeface←v11872;
   /* Contains: */ 
SOURCE(7770, 4908)
SOURCE(7837, 34)
   typeface←v11872 = (* (( (ptr) font←v7192)+1) );
SOURCE(7873, 4805)
   if ( ( (((word) char←v7220 >> 8) == 0) ? ((* (( (ptr) typeface←v11872)+5) ) != 0) : 0 ) ) {
SOURCE(7920, 4758)
      return( (unsigned) ((int)(* (( (ptr) (* (( (ptr) typeface←v11872)+5) ))+(char←v7220 & 0377)) )<0));
      }
   else {
SOURCE(7971, 4707)
      {
         word pd78;
         pd78 = (* (( (ptr) (*  (ptr) typeface←v11872 ))+2) );
         return((word) ( *( (fPt) ((*  (ptr) pd78 ))))(typeface←v11872, char←v7220, pd78));
         };
      };
   }

static word NextChar←P960(font←v7324, char←v7352)
   word font←v7324;
   word char←v7352;
   {
   word next←v7396;
   word typeface←v11916;
   /* NextChar: */ 
SOURCE(8024, 4654)
SOURCE(8098, 34)
   typeface←v11916 = (* (( (ptr) font←v7324)+1) );
SOURCE(8134, 4544)
   {
      word pd79;
      pd79 = (* (( (ptr) (*  (ptr) typeface←v11916 ))+3) );
      return((word) ( *( (fPt) ((*  (ptr) pd79 ))))(typeface←v11916, char←v7352, pd79));
      };
   }

static void Escapement←P1020(formal←c0177, font←v7456, char←v7484)
   word formal←c0177;
   word font←v7456;
   word char←v7484;
   {
   register ptr gf←c37180 =  (ptr) &globalframe;
   W2 var←c7528;
   word typeface←v11960;
   W2 escapement←v11988;
   /* Escapement: */ 
SOURCE(8187, 4491)
SOURCE(8255, 34)
   typeface←v11960 = (* (( (ptr) font←v7456)+1) );
SOURCE(8291, 59)
   {
      word pd80;
      pd80 = (* (( (ptr) (*  (ptr) typeface←v11960 ))+4) );
      (void) ( *( (fPt) ((*  (ptr) pd80 ))))((word) &escapement←v11988, typeface←v11960, char←v7484, pd80);
      };
SOURCE(8352, 4326)
   {
      W2 var←c34684;
      {
         word pd81;
         pd81 = (* (( (ptr) (* (( (ptr) gf←c37180)+102)/* var←c33244 */  ))+40) );
         (void) ( *( (fPt) ((*  (ptr) pd81 ))))((word) &var←c34684, (*  (ptr) font←v7456 ), escapement←v11988, pd81);
         };
      var←c7528 = var←c34684;
      /* removed tail goto */ 
      };
   (*  (W2Pt) formal←c0177 ) = var←c7528;
   return;
   }

static word Amplified←P1080(font←v7588, char←v7616)
   word font←v7588;
   word char←v7616;
   {
   word var←c7660;
   word typeface←v12032;
   /* Amplified: */ 
SOURCE(8408, 4270)
SOURCE(8476, 34)
   typeface←v12032 = (* (( (ptr) font←v7588)+1) );
SOURCE(8512, 4166)
   if ( ( (((word) char←v7616 >> 8) == 0) ? ((* (( (ptr) typeface←v12032)+5) ) != 0) : 0 ) ) {
SOURCE(8559, 4119)
      return( (unsigned) (((unsigned)(* (( (ptr) (* (( (ptr) typeface←v12032)+5) ))+(char←v7616 & 0377)) ) << 1) >> 31));
      }
   else {
SOURCE(8613, 4065)
      {
         word pd82;
         pd82 = (* (( (ptr) (*  (ptr) typeface←v12032 ))+5) );
         return((word) ( *( (fPt) ((*  (ptr) pd82 ))))(typeface←v12032, char←v7616, pd82));
         };
      };
   }

static word Correction←P1140(font←v7720, char←v7748)
   word font←v7720;
   word char←v7748;
   {
   word var←c7792;
   word typeface←v12076;
   /* Correction: */ 
SOURCE(8667, 4011)
SOURCE(8746, 34)
   typeface←v12076 = (* (( (ptr) font←v7720)+1) );
SOURCE(8782, 3896)
   if ( ( (((word) char←v7748 >> 8) == 0) ? ((* (( (ptr) typeface←v12076)+5) ) != 0) : 0 ) ) {
SOURCE(8829, 3849)
      return( (unsigned) (((unsigned)(* (( (ptr) (* (( (ptr) typeface←v12076)+5) ))+(char←v7748 & 0377)) ) << 2) >> 30));
      }
   else {
SOURCE(8884, 3794)
      {
         word pd83;
         pd83 = (* (( (ptr) (*  (ptr) typeface←v12076 ))+6) );
         return((word) ( *( (fPt) ((*  (ptr) pd83 ))))(typeface←v12076, char←v7748, pd83));
         };
      };
   }

static void BoundingBox←P1200(formal←c0194, font←v7852, char←v7880)
   word formal←c0194;
   word font←v7852;
   word char←v7880;
   {
   W4 var←c7924;
   word typeface←v12120;
   W4 charExtents←v12148;
   /* BoundingBox: */ 
SOURCE(8939, 3739)
SOURCE(9012, 34)
   typeface←v12120 = (* (( (ptr) font←v7852)+1) );
SOURCE(9048, 65)
   {
      word pd84;
      pd84 = (* (( (ptr) (*  (ptr) typeface←v12120 ))+7) );
      (void) ( *( (fPt) ((*  (ptr) pd84 ))))((word) &charExtents←v12148, typeface←v12120, char←v7880, pd84);
      };
SOURCE(9115, 3563)
   {
      W4 var←c34812;
      (void) TransformExtents←P540((word) &var←c34812, (*  (ptr) font←v7852 ), charExtents←v12148);
      var←c7924 = var←c34812;
      /* removed tail goto */ 
      };
   (*  (W4Pt) formal←c0194 ) = var←c7924;
   return;
   }

static void FontBoundingBox←P1260(formal←c0204, font←v7984)
   word formal←c0204;
   word font←v7984;
   {
   register ptr gf←c37212 =  (ptr) &globalframe;
   W4 var←c8028;
   word typeface←v12192;
   /* FontBoundingBox: */ 
SOURCE(9177, 3501)
SOURCE(9241, 34)
   typeface←v12192 = (* (( (ptr) font←v7984)+1) );
SOURCE(9277, 3401)
   if (((* (( (ptr) typeface←v12192)+6) ) == 0)) {
SOURCE(9314, 3364)
      {
         word var←c34844;
         {
            W4 var←c34876;
            word var←c34908;
            {
               word pd85;
               pd85 = (* (( (ptr) (*  (ptr) typeface←v12192 ))+8) );
               (void) ( *( (fPt) ((*  (ptr) pd85 ))))((word) &var←c34876, typeface←v12192, pd85);
               };
            var←c34908 = XR←NewObject(16, (* (( (ptr) gf←c37212)+31) ));
            (*  (W4Pt) var←c34908 ) = var←c34876;
            var←c34844 = var←c34908;
            };
         (* (( (ptr) typeface←v12192)+6) ) = var←c34844;
         };
      };
SOURCE(9397, 3281)
   {
      W4 var←c34972;
      (void) TransformExtents←P540((word) &var←c34972, (*  (ptr) font←v7984 ), (*  (W4Pt) (* (( (ptr) typeface←v12192)+6) ) ));
      var←c8028 = var←c34972;
      /* removed tail goto */ 
      };
   (*  (W4Pt) formal←c0204 ) = var←c8028;
   return;
   }

static word Name←P1320(font←v8088)
   word font←v8088;
   {
   word var←c8132;
   word typeface←v12236;
   /* Name: */ 
SOURCE(9469, 108)
SOURCE(9519, 34)
   typeface←v12236 = (* (( (ptr) font←v8088)+1) );
SOURCE(9555, 22)
   return((* (( (ptr) typeface←v12236)+2) ));
   }

static void Kern←P1380(formal←c0215, font←v8192, char←v8220, successor←v8248)
   word formal←c0215;
   word font←v8192;
   word char←v8220;
   word successor←v8248;
   {
   W2 var←c8292;
   word typeface←v12280;
   /* Kern: */ 
SOURCE(9583, 3095)
SOURCE(9656, 34)
   typeface←v12280 = (* (( (ptr) font←v8192)+1) );
SOURCE(9692, 2986)
   {
      W2 var←c35036;
      {
         word pd86;
         pd86 = (* (( (ptr) (*  (ptr) typeface←v12280 ))+11) );
         (void) ( *( (fPt) ((*  (ptr) pd86 ))))((word) &var←c35036, typeface←v12280, char←v8220, successor←v8248, pd86);
         };
      var←c8292 = var←c35036;
      /* removed tail goto */ 
      };
   (*  (W2Pt) formal←c0215 ) = var←c8292;
   return;
   }

static word NextKern←P1440(font←v8352, char←v8380, successor←v8408)
   word font←v8352;
   word char←v8380;
   word successor←v8408;
   {
   word var←c8452;
   word typeface←v12324;
   /* NextKern: */ 
SOURCE(9752, 2926)
SOURCE(9831, 34)
   typeface←v12324 = (* (( (ptr) font←v8352)+1) );
SOURCE(9867, 2811)
   {
      word pd87;
      pd87 = (* (( (ptr) (*  (ptr) typeface←v12324 ))+12) );
      return((word) ( *( (fPt) ((*  (ptr) pd87 ))))(typeface←v12324, char←v8380, successor←v8408, pd87));
      };
   }

static word Ligature←P1500(font←v8512, char←v8540, successor←v8568)
   word font←v8512;
   word char←v8540;
   word successor←v8568;
   {
   word var←c8612;
   word typeface←v12368;
   /* Ligature: */ 
SOURCE(9931, 2747)
SOURCE(10010, 34)
   typeface←v12368 = (* (( (ptr) font←v8512)+1) );
SOURCE(10046, 2632)
   {
      word pd88;
      pd88 = (* (( (ptr) (*  (ptr) typeface←v12368 ))+9) );
      return((word) ( *( (fPt) ((*  (ptr) pd88 ))))(typeface←v12368, char←v8540, successor←v8568, pd88));
      };
   }

static word NextLigature←P1560(font←v8672, char←v8700, successor←v8728)
   word font←v8672;
   word char←v8700;
   word successor←v8728;
   {
   word var←c8772;
   word typeface←v12412;
   /* NextLigature: */ 
SOURCE(10110, 2568)
SOURCE(10193, 34)
   typeface←v12412 = (* (( (ptr) font←v8672)+1) );
SOURCE(10229, 2449)
   {
      word pd89;
      pd89 = (* (( (ptr) (*  (ptr) typeface←v12412 ))+10) );
      return((word) ( *( (fPt) ((*  (ptr) pd89 ))))(typeface←v12412, char←v8700, successor←v8728, pd89));
      };
   }

static word RangeClip←P1620(real←v8832)
   word real←v8832;
   {
   register ptr gf←c37244 =  (ptr) &globalframe;
   word var←c8876;
   /* RangeClip: */ 
SOURCE(10577, 93)
SOURCE(10625, 45)
   {
      word x90;
      float tf91;
      float tf92;
      word x93;
      float tf94;
      float tf95;
      word x96;
      float tf97;
      return((
         tf97 = FMIN(FMAX((
                  x90 = real←v8832,  *(float*)&x90
                  ), (
                  x93 = (* (( (ptr) gf←c37244)+13)/* boundsMin←v4932 */  ),  *(float*)&x93
                  ), tf91, tf92), (
               x96 = (* (( (ptr) gf←c37244)+14)/* boundsMax←v4960 */  ),  *(float*)&x96
               ), tf94, tf95),  *(word*)&tf97
         ));
      };
   }

static word CaptureChar←P1680(font←v8936, char←v8964, parameters←v8992, metricsOnly←v9020)
   word font←v8936;
   word char←v8964;
   word parameters←v8992;
   word metricsOnly←v9020;
   {
   register ptr gf←c37276 =  (ptr) &globalframe;
   word charMask←v9064;
   W2 escapement←v12456;
   W4 bounds←v12484;
   /* CaptureChar: */ 
SOURCE(10673, 2005)
SOURCE(10673, 2005)
   charMask←v9064 = 0;
SOURCE(10830, 40)
   (void) Escapement←P1020((word) &escapement←v12456, font←v8936, char←v8964);
SOURCE(10872, 73)
   {
      W4 var←c35164;
      (void) BoundingBox←P1200((word) &var←c35164, font←v8936, char←v8964);
      {
         W4 var←c0243;
         {
            word pd98;
            pd98 = (* (( (ptr) (* (( (ptr) gf←c37276)+107)/* var←c35196 */  ))+6) );
            (void) ( *( (fPt) ((*  (ptr) pd98 ))))((word) &var←c0243, var←c35164, pd98);
            };
         bounds←v12484 = var←c0243;
         };
      };
SOURCE(10947, 1731)
   {
      word tc99;
      word tc100;
      word tc101;
      word tc102;
      word tc103;
      float tf104;
      word x105;
      word x107;
      float tf108;
      word x109;
      word x110;
      word x111;
      word x112;
      word x113;
      word x114;
      word x115;
      word x116;
      word x117;
      word x118;
      if ((FABS((
            x105 = escapement←v12456.f0,  *(float*)&x105
            ), tf104) <= (
         x107 = (*  (ptr) &fc106 ),  *(float*)&x107
         ))) {
         tc103 =  (word) (FABS((
               x109 = escapement←v12456.f1,  *(float*)&x109
               ), tf108) <= (
            x110 = (*  (ptr) &fc106 ),  *(float*)&x110
            ));
         }
      else {
         tc103 =  (word) 0;
         };
      if (tc103) {
         tc102 =  (word) ((
            x111 = bounds←v12484.f0,  *(float*)&x111
            ) >= (
            x112 = (* (( (ptr) gf←c37276)+13)/* boundsMin←v4932 */  ),  *(float*)&x112
            ));
         }
      else {
         tc102 =  (word) 0;
         };
      if (tc102) {
         tc101 =  (word) ((
            x113 = bounds←v12484.f1,  *(float*)&x113
            ) >= (
            x114 = (* (( (ptr) gf←c37276)+13)/* boundsMin←v4932 */  ),  *(float*)&x114
            ));
         }
      else {
         tc101 =  (word) 0;
         };
      if (tc101) {
         tc100 =  (word) ((
            x115 = bounds←v12484.f2,  *(float*)&x115
            ) <= (
            x116 = (* (( (ptr) gf←c37276)+14)/* boundsMax←v4960 */  ),  *(float*)&x116
            ));
         }
      else {
         tc100 =  (word) 0;
         };
      if (tc100) {
         tc99 =  (word) ((
            x117 = bounds←v12484.f3,  *(float*)&x117
            ) <= (
            x118 = (* (( (ptr) gf←c37276)+14)/* boundsMax←v4960 */  ),  *(float*)&x118
            ));
         }
      else {
         tc99 =  (word) 0;
         };
      if (tc99) {
         if ((0 != metricsOnly←v9020)) {
            }
         else {
            {
               word x119;
               word x120;
               word x122;
               word x123;
               word x124;
               word x125;
               if ( ( ((
                  x119 = bounds←v12484.f2,  *(float*)&x119
                  ) - (
                  x120 = bounds←v12484.f0,  *(float*)&x120
                  ) <= (
                  x122 = (*  (ptr) &fc121 ),  *(float*)&x122
                  )) ? ((
                  x123 = bounds←v12484.f3,  *(float*)&x123
                  ) - (
                  x124 = bounds←v12484.f1,  *(float*)&x124
                  ) <= (
                  x125 = (*  (ptr) &fc121 ),  *(float*)&x125
                  )) : 0 ) ) {
SOURCE(11256, 358)
                  {
                     word typeface←v12528;
SOURCE(11258, 34)
                     typeface←v12528 = (* (( (ptr) font←v8936)+1) );
SOURCE(11294, 1384)
                     if (((* (( (ptr) (*  (ptr) typeface←v12528 ))+14) ) != 0)) {
SOURCE(11338, 1340)
                        {
                           word pd126;
                           pd126 = (* (( (ptr) (*  (ptr) typeface←v12528 ))+14) );
                           charMask←v9064 = (word) ( *( (fPt) ((*  (ptr) pd126 ))))(parameters←v8992, font←v8936, char←v8964, pd126);
                           };
                        };
SOURCE(11405, 1273)
                     if ( ( (charMask←v9064 == 0) ? ((* (( (ptr) parameters←v8992)+1) ) != 0) : 0 ) ) {
SOURCE(11464, 1214)
                        {
                           word pd127;
                           pd127 = (* (( (ptr) parameters←v8992)+1) );
                           charMask←v9064 = (word) ( *( (fPt) ((*  (ptr) pd127 ))))(parameters←v8992, font←v8936, char←v8964, pd127);
                           };
                        };
SOURCE(11527, 1151)
                     if ((charMask←v9064 == 0)) {
SOURCE(11552, 1126)
                        charMask←v9064 = (word) GeneralCaptureCharMask←P1740(parameters←v8992, font←v8936, char←v8964);
                        };
                     };
                  };
               };
            };
         };
      };
SOURCE(11637, 1041)
   if ((charMask←v9064 == 0)) {
SOURCE(11662, 104)
      if ((0 != metricsOnly←v9020)) {
SOURCE(11682, 40)
         {
            word var←c35228;
            var←c35228 = XR←NewObject(40, (* (( (ptr) gf←c37276)+24) ));
            (* (( (ptr) var←c35228)+9) ) = 2;
            charMask←v9064 = var←c35228;
            };
         }
      else {
SOURCE(11722, 44)
         {
            word var←c35260;
            var←c35260 = XR←NewObject(40, (* (( (ptr) gf←c37276)+24) ));
            (* (( (ptr) var←c35260)+9) ) = 3;
            charMask←v9064 = var←c35260;
            };
         };
SOURCE(11768, 910)
      {
         word var←c35292;
         word var←c35388;
         word var←c35452;
         word var←c35516;
         {
            word var←c35324;
            var←c35324 = (word) RangeClip←P1620(bounds←v12484.f0);
            {
               word pd128;
               pd128 = (* (( (ptr) (* (( (ptr) gf←c37276)+108)/* var←c35356 */  ))+8) );
               var←c35292 = (word) ( *( (fPt) ((*  (ptr) pd128 ))))(var←c35324, pd128);
               };
            };
         {
            word var←c35420;
            var←c35420 = (word) RangeClip←P1620(bounds←v12484.f1);
            {
               word pd129;
               pd129 = (* (( (ptr) (* (( (ptr) gf←c37276)+108)/* var←c35356 */  ))+8) );
               var←c35388 = (word) ( *( (fPt) ((*  (ptr) pd129 ))))(var←c35420, pd129);
               };
            };
         {
            word var←c35484;
            var←c35484 = (word) RangeClip←P1620(bounds←v12484.f2);
            {
               word pd130;
               pd130 = (* (( (ptr) (* (( (ptr) gf←c37276)+108)/* var←c35356 */  ))+7) );
               var←c35452 = (word) ( *( (fPt) ((*  (ptr) pd130 ))))(var←c35484, pd130);
               };
            };
         {
            word var←c35548;
            var←c35548 = (word) RangeClip←P1620(bounds←v12484.f3);
            {
               word pd131;
               pd131 = (* (( (ptr) (* (( (ptr) gf←c37276)+108)/* var←c35356 */  ))+7) );
               var←c35516 = (word) ( *( (fPt) ((*  (ptr) pd131 ))))(var←c35548, pd131);
               };
            };
         (* (( (ptr) charMask←v9064)+4) ) = var←c35292;
         (* (( (ptr) charMask←v9064)+5) ) = var←c35388;
         (* (( (ptr) charMask←v9064)+6) ) = var←c35452;
         (* (( (ptr) charMask←v9064)+7) ) = var←c35516;
         };
      };
SOURCE(11951, 20)
   (*  (ptr) charMask←v9064 ) = font←v8936;
SOURCE(11973, 20)
   (* (( (ptr) charMask←v9064)+1) ) = char←v8964;
SOURCE(11995, 683)
   {
      word pd132;
      pd132 = (* (( (ptr) (* (( (ptr) gf←c37276)+109)/* var←c35580 */  ))+7) );
      (* (( (ptr) charMask←v9064)+2) ) = (word) ( *( (fPt) ((*  (ptr) pd132 ))))(escapement←v12456.f0, pd132);
      };
SOURCE(12056, 622)
   {
      word pd133;
      pd133 = (* (( (ptr) (* (( (ptr) gf←c37276)+109)/* var←c35580 */  ))+7) );
      (* (( (ptr) charMask←v9064)+3) ) = (word) ( *( (fPt) ((*  (ptr) pd133 ))))(escapement←v12456.f1, pd133);
      };
SOURCE(12117, 561)
   {
      word tadr134;
      tadr134 = (word) (( (ptr) charMask←v9064) + 8);
      (*  (ptr) tadr134 ) = ((*  (ptr) tadr134 ) & 4294967287) | (((word) ((word) Amplified←P1080(font←v8936, char←v8964) & 1))
          << 3);
      };
SOURCE(12167, 511)
   {
      word tadr135;
      tadr135 = (word) (( (ptr) charMask←v9064) + 8);
      (*  (ptr) tadr135 ) = ((*  (ptr) tadr135 ) & 4294967289) | (((word) ((word) Correction←P1140(font←v8936, char←v8964) & 3))
          << 1);
      };
SOURCE(12219, 459)
   {
      word var←c35612;
      var←c35612 =  (unsigned) (0 == (word) Contains←P900(font←v8936, char←v8964));
      {
         word tadr136;
         tadr136 = (word) (( (ptr) charMask←v9064) + 8);
         (*  (ptr) tadr136 ) = ((*  (ptr) tadr136 ) & 4294967294) | ((word) (var←c35612 & 1));
         };
      };
SOURCE(10673, 2005)
   return(charMask←v9064);
   }

static word GeneralCaptureCharMask←P1740(formal←c0436, formal←c0437, formal←c0438)
   word formal←c0436;
   word formal←c0437;
   word formal←c0438;
   {
   W12 var←c37308;
   /* declaration of parameters←v23008 skipped */ 
   /* declaration of font←v23036 skipped */ 
   /* declaration of char←v23064 skipped */ 
   register ptr gf←c37340 =  (ptr) &globalframe;
   word var←c23108;
   /* declaration of var←c35644 skipped */ 
   /* declaration of ok←v12600 skipped */ 
   word p←v12628 = 0;
   word charMask←v12656 = 0;
   (* (( (ptr) &var←c37308)+4)/* parameters←v23008 */  ) = formal←c0436;
   (* (( (ptr) &var←c37308)+5)/* font←v23036 */  ) = formal←c0437;
   (* (( (ptr) &var←c37308)+6)/* char←v23064 */  ) = formal←c0438;
   /* GeneralCaptureCharMask: */ 
SOURCE(12274, 1167)
   {
      word tmpAddr137;
      tmpAddr137 = (word) (( (ptr) &var←c37308)+7)/* var←c35644 */ ;
      (*  (ptr) tmpAddr137 ) = ( ((word)  (fPt) Operator←P2712) );
      (* (( (ptr) tmpAddr137) + 1) ) = 1;
      };
SOURCE(12437, 15)
   (* (( (ptr) &var←c37308)+9)/* ok←v12600 */  ) = 1;
SOURCE(12530, 148)
SOURCE(12530, 148)
   {
      /* declaration of var←c03 skipped */ 
      (* (( (ptr) &var←c37308)+10)/* var←c03 */  ) = (* (( (ptr) (* (( (ptr) gf←c37340)+110)/* var←c35676 */  ))+8) );
      {
         /* declaration of var←c04 skipped */ 
         {
            word var←c05;
            {
               word var←c0411;
               var←c0411 = (word) &var←c37308;
               var←c05 = (word) XR←Enable(( ((word)  (fPt) NoName←Q3588) ), ( ((word)  (fPt) NoName←Q3648) ), var←c0411);
               };
            if ((var←c05 == 2)) {
               goto lab←L100021;
               };
            };
         p←v12628 = (* (( (ptr) &var←c37308)+11)/* var←c04 */  );
         };
      };
   lab←L100021: ;
SOURCE(12692, 681)
   if ((0 != (* (( (ptr) &var←c37308)+9)/* ok←v12600 */  ))) {
SOURCE(12703, 689)
      {
         W4 bb←v12760;
         word bitmapWords←v12788;
         word nRuns←v12816;
         word rasterCost←v12844;
         word runsCost←v12872;
         word uncacheableCost←v12900;
         word min←v12928;
SOURCE(12705, 43)
         {
            word pd138;
            pd138 = (* (( (ptr) (* (( (ptr) gf←c37340)+111)/* var←c35708 */  ))+16) );
            (void) ( *( (fPt) ((*  (ptr) pd138 ))))((word) &bb←v12760, p←v12628, pd138);
            };
SOURCE(12750, 82)
         {
            W2 var←c0268;
            W2 var←c35740;
            {
               word pd139;
               pd139 = (* (( (ptr) (* (( (ptr) gf←c37340)+112)/* var←c35772 */  ))+19) );
               (void) ( *( (fPt) ((*  (ptr) pd139 ))))((word) &var←c0268, bb←v12760, pd139);
               };
            var←c35740 = var←c0268;
            {
               word pd140;
               float tf141;
               pd140 = (* (( (ptr) (* (( (ptr) gf←c37340)+113)/* var←c35804 */  ))+18) );
               bitmapWords←v12788 = (
                  tf141 = (float)(int)(word) ( *( (fPt) ((*  (ptr) pd140 ))))(var←c35740, 1, 0, pd140),  *(word*)&tf141
                  );
               };
            };
SOURCE(12834, 41)
         {
            word pd142;
            pd142 = (* (( (ptr) (* (( (ptr) gf←c37340)+114)/* var←c35836 */  ))+9) );
            nRuns←v12816 = (word) ( *( (fPt) ((*  (ptr) pd142 ))))(p←v12628, pd142);
            };
SOURCE(12877, 89)
         {
            word x143;
            word x144;
            word x145;
            *(float*)&rasterCost←v12844 = ((
               x143 = (* (( (ptr) (* (( (ptr) &var←c37308)+4)/* parameters←v23008 */  ))+2) ),  *(float*)&x143
               ) * (
               x144 = bitmapWords←v12788,  *(float*)&x144
               )) + (
               x145 = (* (( (ptr) (* (( (ptr) &var←c37308)+4)/* parameters←v23008 */  ))+3) ),  *(float*)&x145
               );
            };
SOURCE(12968, 104)
         {
            word x146;
            word x147;
            word x148;
            *(float*)&runsCost←v12872 = (((
               x146 = (* (( (ptr) (* (( (ptr) &var←c37308)+4)/* parameters←v23008 */  ))+4) ),  *(float*)&x146
               ) * (float)(int)nRuns←v12816) * (
               x147 = (*  (ptr) &fc41 ),  *(float*)&x147
               )) + (
               x148 = (* (( (ptr) (* (( (ptr) &var←c37308)+4)/* parameters←v23008 */  ))+5) ),  *(float*)&x148
               );
            };
SOURCE(13074, 57)
         uncacheableCost←v12900 = (* (( (ptr) (* (( (ptr) &var←c37308)+4)/* parameters←v23008 */  ))+7) );
SOURCE(13133, 54)
         {
            word x149;
            float tf150;
            float tf151;
            word x152;
            float tf153;
            float tf154;
            float tf155;
            word x156;
            float tf157;
            tf153 = FMIN((
                  x149 = rasterCost←v12844,  *(float*)&x149
                  ), (
                  x152 = runsCost←v12872,  *(float*)&x152
                  ), tf150, tf151);
            min←v12928 = (
               tf157 = FMIN(tf153, (
                     x156 = uncacheableCost←v12900,  *(float*)&x156
                     ), tf154, tf155),  *(word*)&tf157
               );
            };
         {
            word x158;
            word x159;
            if (((
               x158 = rasterCost←v12844,  *(float*)&x158
               ) == (
               x159 = min←v12928,  *(float*)&x159
               ))) {
SOURCE(13226, 61)
               {
                  word pd160;
                  pd160 = (* (( (ptr) (* (( (ptr) gf←c37340)+114)/* var←c35836 */  ))+7) );
                  charMask←v12656 = (word) ( *( (fPt) ((*  (ptr) pd160 ))))(p←v12628, bb←v12760, pd160);
                  };
               }
            else {
               {
                  word x161;
                  word x162;
                  if (((
                     x161 = runsCost←v12872,  *(float*)&x161
                     ) == (
                     x162 = min←v12928,  *(float*)&x162
                     ))) {
SOURCE(13307, 66)
                     {
                        word pd163;
                        pd163 = (* (( (ptr) (* (( (ptr) gf←c37340)+114)/* var←c35836 */  ))+8) );
                        charMask←v12656 = (word) ( *( (fPt) ((*  (ptr) pd163 ))))(p←v12628, bb←v12760, nRuns←v12816, pd163);
                        };
                     };
                  };
               };
            };
         };
      };
SOURCE(13395, 26)
   {
      word pd164;
      pd164 = (* (( (ptr) (* (( (ptr) gf←c37340)+111)/* var←c35708 */  ))+9) );
      (void) ( *( (fPt) ((*  (ptr) pd164 ))))(p←v12628, pd164);
      };
SOURCE(13423, 18)
   return(charMask←v12656);
   }

static word NoName←Q3588(formal←c0396)
   word formal←c0396;
   {
SOURCE(12530, 148)
   {
      word pd165;
      pd165 = (* (( (ptr) formal←c0396)+10) );
      (* (( (ptr) formal←c0396)+11) ) = (word) ( *( (fPt) ((*  (ptr) pd165 ))))((word) (( (bPt) formal←c0396)+28), 0, 1, (* (( (ptr) formal←c0396)+4)
          ), pd165);
      };
   return(0);
   }

static void Operator←P2712(context←v12732, formal←c37404)
   word context←v12732;
   word formal←c37404;
   {
   register ptr gf←c37372 =  (ptr) &globalframe;
   formal←c37404 = (formal←c37404 - 28);
   /* Operator: */ 
SOURCE(12342, 90)
SOURCE(12387, 45)
   {
      word pd166;
      pd166 = (* (( (ptr) (* (( (ptr) gf←c37372)+115)/* var←c35868 */  ))+4) );
      (void) ( *( (fPt) ((*  (ptr) pd166 ))))((* (( (ptr) formal←c37404)+5) ), (* (( (ptr) formal←c37404)+6) ), context←v12732, pd166)
      ;
      };
   }

static void StringEscapement←P1800(formal←c0285, formal←c0439, string←v9152, formal←c0440)
   word formal←c0285;
   word formal←c0439;
   word string←v9152;
   word formal←c0440;
   {
   W12 var←c37436;
   /* declaration of font←v9124 skipped */ 
   /* declaration of amplifySpace←v9180 skipped */ 
   register ptr gf←c37468 =  (ptr) &globalframe;
   W2 var←c9224;
   /* declaration of var←c35900 skipped */ 
   /* declaration of sum←v12972 skipped */ 
   /* declaration of typeface←v13000 skipped */ 
   /* declaration of amp←v13028 skipped */ 
   (* (( (ptr) &var←c37436)+4)/* font←v9124 */  ) = formal←c0439;
   (* (( (ptr) &var←c37436)+5)/* amplifySpace←v9180 */  ) = formal←c0440;
   /* StringEscapement: */ 
SOURCE(13445, 517)
   {
      word tmpAddr167;
      tmpAddr167 = (word) (( (ptr) &var←c37436)+6)/* var←c35900 */ ;
      (*  (ptr) tmpAddr167 ) = ( ((word)  (fPt) charAction←P2820) );
      (* (( (ptr) tmpAddr167) + 1) ) = 1;
      };
SOURCE(13547, 17)
   (* (( (ptr) &var←c37436)+8) ) = (*  (ptr) &fc168 );
   (* (( (ptr) &var←c37436)+9) ) = (*  (ptr) &fc168 );
SOURCE(13606, 34)
   (* (( (ptr) &var←c37436)+10)/* typeface←v13000 */  ) = (* (( (ptr) (* (( (ptr) &var←c37436)+4)/* font←v9124 */  ))+1) );
SOURCE(13642, 30)
   {
      word x169;
      word x170;
      (* (( (ptr) &var←c37436)+11)/* amp←v13028 */  ) =  (unsigned) ((
         x169 = (* (( (ptr) &var←c37436)+5)/* amplifySpace←v9180 */  ),  *(float*)&x169
         ) != (
         x170 = (*  (ptr) &fc41 ),  *(float*)&x170
         ));
      };
SOURCE(13899, 18)
   (void) ( *( (fPt) ((*  (ptr) string←v9152 ))))((word) ((( (bPt) &var←c37436)+24)/* var←c35900 */ ), string←v9152);
SOURCE(13919, 43)
   {
      W2 var←c35996;
      {
         word pd171;
         pd171 = (* (( (ptr) (* (( (ptr) gf←c37468)+102)/* var←c33244 */  ))+40) );
         (void) ( *( (fPt) ((*  (ptr) pd171 ))))((word) &var←c35996, (*  (ptr) (* (( (ptr) &var←c37436)+4)/* font←v9124 */  ) ), (*  (W2Pt) (
               ( (ptr) &var←c37436)+8)/* sum←v12972 */  ), pd171);
         };
      var←c9224 = var←c35996;
      /* removed tail goto */ 
      };
   (*  (W2Pt) formal←c0285 ) = var←c9224;
   return;
   }

static void charAction←P2820(char←v31596, formal←c37532)
   word char←v31596;
   word formal←c37532;
   {
   register ptr gf←c37500 =  (ptr) &globalframe;
   W2 escapement←v13100;
   formal←c37532 = (formal←c37532 - 24);
   /* charAction: */ 
SOURCE(13674, 220)
SOURCE(13700, 59)
   {
      word pd172;
      pd172 = (* (( (ptr) (*  (ptr) (* (( (ptr) formal←c37532)+10) ) ))+4) );
      (void) ( *( (fPt) ((*  (ptr) pd172 ))))((word) &escapement←v13100, (* (( (ptr) formal←c37532)+10) ), char←v31596, pd172);
      };
SOURCE(13761, 97)
   if ( ( (0 != (* (( (ptr) formal←c37532)+11) )) ? ((word) Correction←P1140((* (( (ptr) formal←c37532)+4) ), char←v31596) == 1) : 0 ) ) {
SOURCE(13808, 50)
      {
         word pd173;
         pd173 = (* (( (ptr) (* (( (ptr) gf←c37500)+116)/* var←c36028 */  ))+10) );
         (void) ( *( (fPt) ((*  (ptr) pd173 ))))((word) &escapement←v13100, escapement←v13100, (* (( (ptr) formal←c37532)+5) ), pd173)
         ;
         };
      };
SOURCE(13860, 34)
   {
      word pd174;
      pd174 = (* (( (ptr) (* (( (ptr) gf←c37500)+116)/* var←c36028 */  ))+4) );
      (void) ( *( (fPt) ((*  (ptr) pd174 ))))((word) (( (bPt) formal←c37532)+32), (*  (W2Pt) (( (ptr) formal←c37532)+8) ), escapement←v13100, pd174)
      ;
      };
   }

static void RopeEscapement←P1860(formal←c0300, font←v9284, formal←c0441, formal←c0442, formal←c0443, amplifySpace←v9396)
   word formal←c0300;
   word font←v9284;
   word formal←c0441;
   word formal←c0442;
   word formal←c0443;
   word amplifySpace←v9396;
   {
   W9 var←c37564;
   /* declaration of rope←v9312 skipped */ 
   /* declaration of start←v9340 skipped */ 
   /* declaration of len←v9368 skipped */ 
   W2 var←c9440;
   /* declaration of var←c36060 skipped */ 
   (* (( (ptr) &var←c37564)+4)/* rope←v9312 */  ) = formal←c0441;
   (* (( (ptr) &var←c37564)+5)/* start←v9340 */  ) = formal←c0442;
   (* (( (ptr) &var←c37564)+6)/* len←v9368 */  ) = formal←c0443;
   /* RopeEscapement: */ 
SOURCE(13967, 230)
   {
      word tmpAddr175;
      tmpAddr175 = (word) (( (ptr) &var←c37564)+7)/* var←c36060 */ ;
      (*  (ptr) tmpAddr175 ) = ( ((word)  (fPt) string←P2880) );
      (* (( (ptr) tmpAddr175) + 1) ) = 1;
      };
SOURCE(14145, 52)
   {
      W2 var←c36124;
      (void) StringEscapement←P1800((word) &var←c36124, font←v9284, (word) (( (bPt) &var←c37564)+28)/* var←c36060 */ , amplifySpace←v9396)
      ;
      var←c9440 = var←c36124;
      /* removed tail goto */ 
      };
   (*  (W2Pt) formal←c0300 ) = var←c9440;
   return;
   }

static void string←P2880(charAction←v31688, formal←c37596)
   word charAction←v31688;
   word formal←c37596;
   {
   formal←c37596 = (formal←c37596 - 28);
   /* string: */ 
SOURCE(14080, 62)
SOURCE(14104, 38)
   (void) MapRope←P60((* (( (ptr) formal←c37596)+4) ), (* (( (ptr) formal←c37596)+5) ), (* (( (ptr) formal←c37596)+6) ), charAction←v31688)
   ;
   }

static void TextEscapement←P1920(formal←c0311, font←v9500, formal←c0444, formal←c0445, formal←c0446, amplifySpace←v9612)
   word formal←c0311;
   word font←v9500;
   word formal←c0444;
   word formal←c0445;
   word formal←c0446;
   word amplifySpace←v9612;
   {
   W9 var←c37628;
   /* declaration of text←v9528 skipped */ 
   /* declaration of start←v9556 skipped */ 
   /* declaration of len←v9584 skipped */ 
   W2 var←c9668;
   /* declaration of var←c36156 skipped */ 
   (* (( (ptr) &var←c37628)+4)/* text←v9528 */  ) = formal←c0444;
   (* (( (ptr) &var←c37628)+5)/* start←v9556 */  ) = formal←c0445;
   (* (( (ptr) &var←c37628)+6)/* len←v9584 */  ) = formal←c0446;
   /* TextEscapement: */ 
SOURCE(14203, 243)
   {
      word tmpAddr176;
      tmpAddr176 = (word) (( (ptr) &var←c37628)+7)/* var←c36156 */ ;
      (*  (ptr) tmpAddr176 ) = ( ((word)  (fPt) string←P2940) );
      (* (( (ptr) tmpAddr176) + 1) ) = 1;
      };
SOURCE(14394, 52)
   {
      W2 var←c36220;
      (void) StringEscapement←P1800((word) &var←c36220, font←v9500, (word) (( (bPt) &var←c37628)+28)/* var←c36156 */ , amplifySpace←v9612)
      ;
      var←c9668 = var←c36220;
      /* removed tail goto */ 
      };
   (*  (W2Pt) formal←c0311 ) = var←c9668;
   return;
   }

static void string←P2940(charAction←v31748, formal←c37660)
   word charAction←v31748;
   word formal←c37660;
   {
   formal←c37660 = (formal←c37660 - 28);
   /* string: */ 
SOURCE(14329, 62)
SOURCE(14353, 38)
   (void) MapText←P120((* (( (ptr) formal←c37660)+4) ), (* (( (ptr) formal←c37660)+5) ), (* (( (ptr) formal←c37660)+6) ), charAction←v31748)
   ;
   }

static void StringBoundingBox←P1980(formal←c0329, formal←c0447, string←v9756, formal←c0448)
   word formal←c0329;
   word formal←c0447;
   word string←v9756;
   word formal←c0448;
   {
   W17 var←c37692;
   /* declaration of font←v9728 skipped */ 
   /* declaration of amplifySpace←v9784 skipped */ 
   W4 var←c9828;
   /* declaration of var←c36252 skipped */ 
   /* declaration of typeface←v13232 skipped */ 
   /* declaration of sxmin←v13260 skipped */ 
   /* declaration of symin←v13288 skipped */ 
   /* declaration of sxmax←v13316 skipped */ 
   /* declaration of symax←v13344 skipped */ 
   /* declaration of position←v13372 skipped */ 
   /* declaration of count←v13400 skipped */ 
   /* declaration of amp←v13428 skipped */ 
   (* (( (ptr) &var←c37692)+4)/* font←v9728 */  ) = formal←c0447;
   (* (( (ptr) &var←c37692)+5)/* amplifySpace←v9784 */  ) = formal←c0448;
   /* StringBoundingBox: */ 
SOURCE(14453, 1152)
   {
      word tmpAddr177;
      tmpAddr177 = (word) (( (ptr) &var←c37692)+6)/* var←c36252 */ ;
      (*  (ptr) tmpAddr177 ) = ( ((word)  (fPt) charAction←P3000) );
      (* (( (ptr) tmpAddr177) + 1) ) = 1;
      };
SOURCE(14560, 34)
   (* (( (ptr) &var←c37692)+8)/* typeface←v13232 */  ) = (* (( (ptr) (* (( (ptr) &var←c37692)+4)/* font←v9728 */  ))+1) );
SOURCE(14596, 36)
   (* (( (ptr) &var←c37692)+9)/* sxmin←v13260 */  ) = (*  (ptr) &fc168 );
   (* (( (ptr) &var←c37692)+10)/* symin←v13288 */  ) = (*  (ptr) &fc168 );
   (* (( (ptr) &var←c37692)+11)/* sxmax←v13316 */  ) = (*  (ptr) &fc168 );
   (* (( (ptr) &var←c37692)+12)/* symax←v13344 */  ) = (*  (ptr) &fc168 );
SOURCE(14634, 22)
   (* (( (ptr) &var←c37692)+13) ) = (*  (ptr) &fc168 );
   (* (( (ptr) &var←c37692)+14) ) = (*  (ptr) &fc168 );
SOURCE(14658, 14)
   (* (( (ptr) &var←c37692)+15)/* count←v13400 */  ) = 0;
SOURCE(14674, 30)
   {
      word x178;
      word x179;
      (* (( (ptr) &var←c37692)+16)/* amp←v13428 */  ) =  (unsigned) ((
         x178 = (* (( (ptr) &var←c37692)+5)/* amplifySpace←v9784 */  ),  *(float*)&x178
         ) != (
         x179 = (*  (ptr) &fc41 ),  *(float*)&x179
         ));
      };
SOURCE(15468, 18)
   (void) ( *( (fPt) ((*  (ptr) string←v9756 ))))((word) ((( (bPt) &var←c37692)+24)/* var←c36252 */ ), string←v9756);
SOURCE(15488, 117)
   {
      W4 var←c36380;
      {
         W4 var←c0328;
         {
            W4 var←c36348;
            {
               word x180;
               *(float*)&var←c36348.f0 =  - (
                  x180 = (* (( (ptr) &var←c37692)+9)/* sxmin←v13260 */  ),  *(float*)&x180
                  );
               };
            var←c36348.f1 = (* (( (ptr) &var←c37692)+11)/* sxmax←v13316 */  );
            {
               word x181;
               *(float*)&var←c36348.f2 =  - (
                  x181 = (* (( (ptr) &var←c37692)+10)/* symin←v13288 */  ),  *(float*)&x181
                  );
               };
            var←c36348.f3 = (* (( (ptr) &var←c37692)+12)/* symax←v13344 */  );
            (void) TransformExtents←P540((word) &var←c0328, (*  (ptr) (* (( (ptr) &var←c37692)+4)/* font←v9728 */  ) ), var←c36348);
            };
         var←c36380 = var←c0328;
         };
      var←c9828 = var←c36380;
      /* removed tail goto */ 
      };
   (*  (W4Pt) formal←c0329 ) = var←c9828;
   return;
   }

static void charAction←P3000(char←v31808, formal←c37756)
   word char←v31808;
   word formal←c37756;
   {
   register ptr gf←c37724 =  (ptr) &globalframe;
   W4 charExtents←v13500;
   W2 charEscapement←v13528;
   word cxmin←v13556;
   word cxmax←v13584;
   word cymin←v13612;
   word cymax←v13640;
   formal←c37756 = (formal←c37756 - 24);
   /* charAction: */ 
SOURCE(14706, 757)
SOURCE(14732, 65)
   {
      word pd182;
      pd182 = (* (( (ptr) (*  (ptr) (* (( (ptr) formal←c37756)+8) ) ))+7) );
      (void) ( *( (fPt) ((*  (ptr) pd182 ))))((word) &charExtents←v13500, (* (( (ptr) formal←c37756)+8) ), char←v31808, pd182);
      };
SOURCE(14799, 63)
   {
      word pd183;
      pd183 = (* (( (ptr) (*  (ptr) (* (( (ptr) formal←c37756)+8) ) ))+4) );
      (void) ( *( (fPt) ((*  (ptr) pd183 ))))((word) &charEscapement←v13528, (* (( (ptr) formal←c37756)+8) ), char←v31808, pd183)
      ;
      };
SOURCE(14864, 47)
   {
      word x184;
      word x185;
      *(float*)&cxmin←v13556 = (
         x184 = (* (( (ptr) formal←c37756)+13) ),  *(float*)&x184
         ) - (
         x185 = charExtents←v13500.f0,  *(float*)&x185
         );
      };
SOURCE(14913, 48)
   {
      word x186;
      word x187;
      *(float*)&cxmax←v13584 = (
         x186 = (* (( (ptr) formal←c37756)+13) ),  *(float*)&x186
         ) + (
         x187 = charExtents←v13500.f1,  *(float*)&x187
         );
      };
SOURCE(14963, 44)
   {
      word x188;
      word x189;
      *(float*)&cymin←v13612 = (
         x188 = (* (( (ptr) formal←c37756)+14) ),  *(float*)&x188
         ) - (
         x189 = charExtents←v13500.f2,  *(float*)&x189
         );
      };
SOURCE(15009, 43)
   {
      word x190;
      word x191;
      *(float*)&cymax←v13640 = (
         x190 = (* (( (ptr) formal←c37756)+14) ),  *(float*)&x190
         ) + (
         x191 = charExtents←v13500.f3,  *(float*)&x191
         );
      };
SOURCE(15054, 232)
   if (( (int)(* (( (ptr) formal←c37756)+15) ) ==  (int)0)) {
SOURCE(15072, 13)
      (* (( (ptr) formal←c37756)+9) ) = cxmin←v13556;
SOURCE(15087, 13)
      (* (( (ptr) formal←c37756)+11) ) = cxmax←v13584;
SOURCE(15102, 13)
      (* (( (ptr) formal←c37756)+10) ) = cymin←v13612;
SOURCE(15117, 14)
      (* (( (ptr) formal←c37756)+12) ) = cymax←v13640;
      }
   else {
SOURCE(15140, 35)
      {
         word x192;
         word x193;
         if (((
            x192 = cxmin←v13556,  *(float*)&x192
            ) < (
            x193 = (* (( (ptr) formal←c37756)+9) ),  *(float*)&x193
            ))) {
SOURCE(15162, 13)
            (* (( (ptr) formal←c37756)+9) ) = cxmin←v13556;
            };
         };
SOURCE(15177, 35)
      {
         word x194;
         word x195;
         if (((
            x194 = cxmax←v13584,  *(float*)&x194
            ) > (
            x195 = (* (( (ptr) formal←c37756)+11) ),  *(float*)&x195
            ))) {
SOURCE(15199, 13)
            (* (( (ptr) formal←c37756)+11) ) = cxmax←v13584;
            };
         };
SOURCE(15214, 35)
      {
         word x196;
         word x197;
         if (((
            x196 = cymin←v13612,  *(float*)&x196
            ) < (
            x197 = (* (( (ptr) formal←c37756)+10) ),  *(float*)&x197
            ))) {
SOURCE(15236, 13)
            (* (( (ptr) formal←c37756)+10) ) = cymin←v13612;
            };
         };
SOURCE(15251, 35)
      {
         word x198;
         word x199;
         if (((
            x198 = cymax←v13640,  *(float*)&x198
            ) > (
            x199 = (* (( (ptr) formal←c37756)+12) ),  *(float*)&x199
            ))) {
SOURCE(15273, 13)
            (* (( (ptr) formal←c37756)+12) ) = cymax←v13640;
            };
         };
      };
SOURCE(15291, 105)
   if ( ( (0 != (* (( (ptr) formal←c37756)+16) )) ? ((word) Correction←P1140((* (( (ptr) formal←c37756)+4) ), char←v31808) == 1) : 0 ) ) {
SOURCE(15338, 58)
      {
         word pd200;
         pd200 = (* (( (ptr) (* (( (ptr) gf←c37724)+116)/* var←c36028 */  ))+10) );
         (void) ( *( (fPt) ((*  (ptr) pd200 ))))((word) &charEscapement←v13528, charEscapement←v13528, (* (( (ptr) formal←c37756)+5)
             ), pd200);
         };
      };
SOURCE(15398, 48)
   {
      word pd201;
      pd201 = (* (( (ptr) (* (( (ptr) gf←c37724)+116)/* var←c36028 */  ))+4) );
      (void) ( *( (fPt) ((*  (ptr) pd201 ))))((word) (( (bPt) formal←c37756)+52), (*  (W2Pt) (( (ptr) formal←c37756)+13) ), charEscapement←v13528, pd201)
      ;
      };
SOURCE(15448, 15)
   (* (( (ptr) formal←c37756)+15) ) = ((* (( (ptr) formal←c37756)+15) ) + 1);
   }

static void RopeBoundingBox←P2040(formal←c0350, font←v9888, formal←c0449, formal←c0450, formal←c0451, amplifySpace←v10000)
   word formal←c0350;
   word font←v9888;
   word formal←c0449;
   word formal←c0450;
   word formal←c0451;
   word amplifySpace←v10000;
   {
   W9 var←c37788;
   /* declaration of rope←v9916 skipped */ 
   /* declaration of start←v9944 skipped */ 
   /* declaration of len←v9972 skipped */ 
   W4 var←c10044;
   /* declaration of var←c36412 skipped */ 
   (* (( (ptr) &var←c37788)+4)/* rope←v9916 */  ) = formal←c0449;
   (* (( (ptr) &var←c37788)+5)/* start←v9944 */  ) = formal←c0450;
   (* (( (ptr) &var←c37788)+6)/* len←v9972 */  ) = formal←c0451;
   /* RopeBoundingBox: */ 
SOURCE(15610, 237)
   {
      word tmpAddr202;
      tmpAddr202 = (word) (( (ptr) &var←c37788)+7)/* var←c36412 */ ;
      (*  (ptr) tmpAddr202 ) = ( ((word)  (fPt) string←P3060) );
      (* (( (ptr) tmpAddr202) + 1) ) = 1;
      };
SOURCE(15794, 53)
   {
      W4 var←c36476;
      (void) StringBoundingBox←P1980((word) &var←c36476, font←v9888, (word) (( (bPt) &var←c37788)+28)/* var←c36412 */ , amplifySpace←v10000)
      ;
      var←c10044 = var←c36476;
      /* removed tail goto */ 
      };
   (*  (W4Pt) formal←c0350 ) = var←c10044;
   return;
   }

static void string←P3060(charAction←v31868, formal←c37820)
   word charAction←v31868;
   word formal←c37820;
   {
   formal←c37820 = (formal←c37820 - 28);
   /* string: */ 
SOURCE(15729, 62)
SOURCE(15753, 38)
   (void) MapRope←P60((* (( (ptr) formal←c37820)+4) ), (* (( (ptr) formal←c37820)+5) ), (* (( (ptr) formal←c37820)+6) ), charAction←v31868)
   ;
   }

static void TextBoundingBox←P2100(formal←c0361, font←v10104, formal←c0452, formal←c0453, formal←c0454, amplifySpace←v10216)
   word formal←c0361;
   word font←v10104;
   word formal←c0452;
   word formal←c0453;
   word formal←c0454;
   word amplifySpace←v10216;
   {
   W9 var←c37852;
   /* declaration of text←v10132 skipped */ 
   /* declaration of start←v10160 skipped */ 
   /* declaration of len←v10188 skipped */ 
   W4 var←c10272;
   /* declaration of var←c36508 skipped */ 
   (* (( (ptr) &var←c37852)+4)/* text←v10132 */  ) = formal←c0452;
   (* (( (ptr) &var←c37852)+5)/* start←v10160 */  ) = formal←c0453;
   (* (( (ptr) &var←c37852)+6)/* len←v10188 */  ) = formal←c0454;
   /* TextBoundingBox: */ 
SOURCE(15853, 249)
   {
      word tmpAddr203;
      tmpAddr203 = (word) (( (ptr) &var←c37852)+7)/* var←c36508 */ ;
      (*  (ptr) tmpAddr203 ) = ( ((word)  (fPt) string←P3120) );
      (* (( (ptr) tmpAddr203) + 1) ) = 1;
      };
SOURCE(16049, 53)
   {
      W4 var←c36572;
      (void) StringBoundingBox←P1980((word) &var←c36572, font←v10104, (word) (( (bPt) &var←c37852)+28)/* var←c36508 */ , amplifySpace←v10216)
      ;
      var←c10272 = var←c36572;
      /* removed tail goto */ 
      };
   (*  (W4Pt) formal←c0361 ) = var←c10272;
   return;
   }

static void string←P3120(charAction←v31928, formal←c37884)
   word charAction←v31928;
   word formal←c37884;
   {
   formal←c37884 = (formal←c37884 - 28);
   /* string: */ 
SOURCE(15984, 62)
SOURCE(16008, 38)
   (void) MapText←P120((* (( (ptr) formal←c37884)+4) ), (* (( (ptr) formal←c37884)+5) ), (* (( (ptr) formal←c37884)+6) ), charAction←v31928)
   ;
   }

static void NoName←Q3648(formal←c0368, formal←c200004, formal←c200005, formal←c200006, formal←c200007)
   word formal←c0368;
   word formal←c200004;
   word formal←c200005;
   word formal←c200006;
   word formal←c200007;
   {
   register ptr gf←c0408 =  (ptr) &globalframe;
   if ((formal←c200005 == (* (( (ptr) (* (( (ptr) gf←c0408)+110)/* var←c35676 */  ))+5) ))) {
      {
         word why←v31328;
         why←v31328 = (*  (ptr) formal←c200007 );
SOURCE(12668, 10)
         (* (( (ptr) formal←c200004)+9) ) = 0;
SOURCE(12680, 8)
         (*  (ptr) formal←c0368 ) = 2;
         (* (( (ptr) formal←c0368)+1) ) = 2;
         return;
         };
      };
   (*  (ptr) formal←c0368 ) = 0;
   (* (( (ptr) formal←c0368)+1) ) = 0;
   return;
   }

static void NoName←Q3708(formal←c0373, formal←c200000, formal←c200001, formal←c200002, formal←c200003)
   word formal←c0373;
   word formal←c200000;
   word formal←c200001;
   word formal←c200002;
   word formal←c200003;
   {
   if ((formal←c200001 == XR←Unwind)) {
      };
   (*  (ptr) formal←c0373 ) = 0;
   (* (( (ptr) formal←c0373)+1) ) = 0;
   return;
   }

/* file: ImagerFontImpl, module: ImagerFontImpl, compiled at: July 28, 1993 10:18:45 am PDT */ 
extern void XR←install←ImagerFontImpl() {
   NoName←Q3468();
   }
extern void XR←run←ImagerFontImpl() { XR←Start(&globalframe); }