/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1993 by Xerox Corporation.  All rights reserved. */
/* time: February 5, 1993 1:57:26 pm PST */
/* C2C version: October 7, 1992 (native) */
/* ref-counting: off */
/* file: GGShapesImpl, module: GGShapesImpl */ 
/* switches: bcfhklnouw */ 
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [2797950058,2565781204] GGShapesImpl";
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, f3, f4, f5;} W6;
typedef struct {word f0, f1, f2;} W3;
typedef struct {W8 f; W3 r;} W11;
typedef W2 *W2Pt;
typedef struct {W8 f; word r;} W9;
typedef struct {word f0, f1, f2, f3, f4;} W5;
typedef struct {W8 f; W5 r;} W13;
typedef struct {W8 f; W2 r;} W10;
typedef struct {W8 f; W6 r;} W14;
#define SOURCE(p, l) /* source p, l */
static float fc17 = 6.0;
static float fc19 = 10.0;
static float fc20 = 0.0;
static float fc21 = 7.0;
static float fc22 = 0.8660254;
static float fc25 = 0.5;
static float fc67 = 2.0;
static float fc93 = -5.0;
static float fc94 = 5.0;
static float fc131 = 1.0;
static float fc191 = 3.0;
static float fc214 = 8.0;
static float fc239 = 3.5;
static float fc248 = -8.5;
static float fc256 = 90.0;
#define FABS(f, t) ( ((t=(f)) >= (float) 0.0) ? (t) : (- (t)) )
static float fc261 = 0.1;
#define BCK(idx, lim) ( ((unsigned) idx) >= ((unsigned) lim) ? (XR←RaiseBoundsFault()) : (idx) )
#define SGNCK(i) ((int) (word) (i) < 0 ? XR←RaiseArithmeticFault(): i )
static void NoName←Q3084();
static void GGShapesImpl←P0();
static void DrawWhiteRectangle←P60();
static void DoDrawRect←P1680();
static void DrawRectangle←P120();
static void DoDrawRect←P1740();
static void RectanglePath←P1800();
static void DrawFilledRectangle←P180();
static void DoDrawFilledRectangle←P1860();
static void DrawSquare←P240();
static void DoDrawSquare←P1920();
static void SquarePath←P1980();
static void DrawPlus←P300();
static void DoDrawPlus←P2040();
static void Horiz←P2100();
static void Vert←P2160();
static void DrawBoundBox←P360();
static void DrawFilledSquare←P420();
static void DoDrawFilledSquare←P2220();
static void DrawEmptySquare←P480();
static void DoDrawEmptySquare←P2280();
static void DrawSpot←P540();
static void DoDrawSpot←P2340();
static void DrawLine←P600();
static void DrawLittleLine←P660();
static void DrawFilledLoLeftSquare←P720();
static void DoDrawRect←P2400();
static void DrawCircle←P780();
static void DoDrawCircle←P2460();
static void CirclePath←P2520();
static void DrawStarburst←P840();
static void DoDrawGlow←P2580();
static void DrawArrow←P900();
static void DrawArrowAux←P2640();
static void ArrowSize←P960();
static void DrawCaret←P1020();
static void DoDrawCaret←P2700();
static void CaretPath←P2760();
static void DrawAnchor←P1080();
static void DoDrawAnchor←P2820();
static void ArmPath←P2880();
static void DrawCP←P1140();
static void DrawJoint←P1200();
static void DrawSelectedJoint←P1260();
static void DrawQuickSelectedJoint←P1320();
static word AllocateRay←P1380();
static void MakeRayStorage←P1440();
static word DoAllocateRay←P1500();
static void DoFreeRay←P1560();
static void Init←P1620();
static struct {unsigned f; char r[16];} string1 = {851984, "\257\300\241\203\324\306\300\306\173\161\152\100\214\000\000"};
static struct {unsigned f; char r[16];} string2 = {851984, "\257\300\246\305\124\152\300\230\356\266\324\101\224\000\000"};
static struct {unsigned f; char r[12];} string3 = {524296, "\011\000\004\040\040\000\010\001\000\000\000"};
static struct {unsigned f; char r[4];} string4 = {131076, "\216\251\000"};
static struct {unsigned f; char r[4];} string5 = {65537, "\001\000\000"};
static struct {unsigned f; char r[8];} string6 = {458760, "RayPool"};
static struct {unsigned f; char r[16];} string7 = {851984, "\257\300\246\305\124\152\300\230\356\266\324\100\164\000\000"};
static struct {unsigned f; char r[12];} string8 = {589833, "\006\0030\0014\001@P\001\000\000"};
static struct {unsigned f; char r[16];} string9 = {851984, "\257\300\244\024\137\127\300\061\033\201\312\100\164\000\000"};
static struct {unsigned f; char r[16];} string10 = {851984, "\257\300\066\171\236\174\300\023\130\350\134\100\150\000\000"};
static struct {unsigned f; char r[16];} string11 = {851984, "\257\300\103\306\166\071\300\047\126\012\237\100\150\000\000"};
static struct {unsigned f; char r[16];} string12 = {851984, "\257\300\004\142\347\110\300\363\053\254\345\100\150\000\000"};
static struct {unsigned f; char r[16];} string13 = {851984, "\257\300\074\177\166\242\300\203\113\217\044\100\150\000\000"};
static struct {unsigned f; char r[16];} string14 = {851984, "\257\300\246\205\220\035\300\344\000\142\023\100\150\000\000"};
static struct {unsigned f; char r[16];} string15 = {851984, "\257\300\235\036\354\311\300\234\133\201\260\100\150\000\000"};
static struct {
   word f0[21]; word f21; word f22; word f23; 
   word f24; word f25; word f26; word f27; 
   word f28; word f29; word f30; word f31; 
   word f32; word f33; 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[8]; 
   } globalframe = {
   {0}, (word) Init←P1620, 0, (word) DoFreeRay←P1560, 
   0, (word) DoAllocateRay←P1500, 0, (word) MakeRayStorage←P1440, 
   0, (word) AllocateRay←P1380, 0, (word) DrawQuickSelectedJoint←P1320, 
   0, (word) DrawSelectedJoint←P1260, 0, (word) DrawJoint←P1200, 
   0, (word) DrawCP←P1140, 0, (word) DrawAnchor←P1080, 
   0, (word) DrawCaret←P1020, 0, (word) ArrowSize←P960, 
   0, (word) DrawArrow←P900, 0, (word) DrawStarburst←P840, 
   0, (word) DrawCircle←P780, 0, (word) DrawFilledLoLeftSquare←P720, 
   0, (word) DrawLittleLine←P660, 0, (word) DrawLine←P600, 
   0, (word) DrawSpot←P540, 0, (word) DrawEmptySquare←P480, 
   0, (word) DrawFilledSquare←P420, 0, (word) DrawBoundBox←P360, 
   0, (word) DrawPlus←P300, 0, (word) DrawSquare←P240, 
   0, (word) DrawFilledRectangle←P180, 0, (word) DrawRectangle←P120, 
   0, (word) DrawWhiteRectangle←P60, 0, (word) GGShapesImpl←P0, 
   {0}
   };

static void NoName←Q3084()
   {
   register ptr gf←c0345 =  (ptr) &globalframe;
   word var←c24516;
   (* (( (ptr) gf←c0345)+16) ) = (word) XR←GetTypeIndexS((word) (&string1));
   (* (( (ptr) gf←c0345)+17) ) = (word) XR←GetTypeIndex((word) &string2, 0, (word) &string3);
   (* (( (ptr) gf←c0345)+18) ) = (word) XR←GetTypeIndex((word) &string4, 0, (word) &string5);
   (*  (ptr) (( (bPt) gf←c0345)+80) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0345)+18) ), (word) &string6);
   (void) XR←DeclareGlobalFrame((word) "GGShapesImpl", &globalframe, (word) XR←GetTypeIndex((word) &string7, 0, (word) &string8)
      , (word) (( (bPt) gf←c0345)+300)/* var←c21220 */ );
   var←c24516 = (word) XR←ImportInterface((word) "Draw2d", (word) XR←GetTypeIndexS((word) (&string9)), 15);
   (* (( (ptr) gf←c0345)+80)/* var←c22628 */  ) = var←c24516;
   (void) XR←ImportProcS(var←c24516, 1837317);
   var←c24516 = (word) XR←ImportInterface((word) "GGStoragePools", (word) XR←GetTypeIndexS((word) (&string10)), 4);
   (* (( (ptr) gf←c0345)+82)/* var←c24484 */  ) = var←c24516;
   (void) XR←ImportProcS(var←c24516, 67633410);
   (void) XR←ImportProcS(var←c24516, 67895299);
   var←c24516 = (word) XR←ImportInterface((word) "Lines2d", (word) XR←GetTypeIndexS((word) (&string11)), 50);
   (* (( (ptr) gf←c0345)+79)/* var←c22564 */  ) = var←c24516;
   (void) XR←ImportProcS(var←c24516, 68164354);
   (void) XR←ImportProcS(var←c24516, 134754562);
   (void) XR←ImportProcS(var←c24516, 202649605);
   (void) XR←ImportProcS(var←c24516, 134488321);
   (void) XR←ImportProcS(var←c24516, 134489345);
   var←c24516 = (word) XR←ImportInterface((word) "Vectors2d", (word) XR←GetTypeIndexS((word) (&string12)), 21);
   (* (( (ptr) gf←c0345)+81)/* var←c23396 */  ) = var←c24516;
   (void) XR←ImportProcS(var←c24516, 67633665);
   (void) XR←ImportProcS(var←c24516, 135006210);
   (void) XR←ImportProcS(var←c24516, 135267842);
   (void) XR←ImportProcS(var←c24516, 135268098);
   (void) XR←ImportProcS(var←c24516, 134744321);
   var←c24516 = (word) XR←ImportInterface((word) "Imager", (word) XR←GetTypeIndexS((word) (&string13)), 84);
   (* (( (ptr) gf←c0345)+78)/* var←c21316 */  ) = var←c24516;
   (void) XR←ImportProcS(var←c24516, 527618);
   (void) XR←ImportProcS(var←c24516, 801283);
   (void) XR←ImportProcS(var←c24516, 1328387);
   (void) XR←ImportProcS(var←c24516, 265985);
   (void) XR←ImportProcS(var←c24516, 790786);
   (void) XR←ImportProcS(var←c24516, 803587);
   (void) XR←ImportProcS(var←c24516, 541186);
   (void) XR←ImportProcS(var←c24516, 540930);
   (void) XR←ImportProcS(var←c24516, 540674);
   (void) XR←ImportProcS(var←c24516, 1326338);
   (void) XR←ImportProcS(var←c24516, 536578);
   (void) XR←ImportProcS(var←c24516, 526338);
   var←c24516 = (word) XR←ImportInterface((word) "Real", (word) XR←GetTypeIndexS((word) (&string14)), 11);
   (* (( (ptr) gf←c0345)+77)/* var←c21252 */  ) = var←c24516;
   (void) XR←ImportProcS(var←c24516, 67371521);
   var←c24516 = (word) XR←ExportInterface((word) "GGShapes", (word) XR←GetTypeIndexS((word) (&string15)), 20);
   (* (( (ptr) gf←c0345)+83)/* var←c24548 */  ) = var←c24516;
   (void) XR←ExportProcS(var←c24516, (word) (( (bPt) gf←c0345)+284)/* var←c21156 */ , 1572870);
   (void) XR←ExportProcS(var←c24516, (word) (( (bPt) gf←c0345)+276)/* var←c21124 */ , 1310981);
   (void) XR←ExportProcS(var←c24516, (word) (( (bPt) gf←c0345)+252)/* var←c21028 */ , 786947);
   (void) XR←ExportProcS(var←c24516, (word) (( (bPt) gf←c0345)+268)/* var←c21092 */ , 1311492);
   (void) XR←ExportProcS(var←c24516, (word) (( (bPt) gf←c0345)+244)/* var←c20996 */ , 1049603);
   (void) XR←ExportProcS(var←c24516, (word) (( (bPt) gf←c0345)+204)/* var←c20836 */ , 1049859);
   (void) XR←ExportProcS(var←c24516, (word) (( (bPt) gf←c0345)+260)/* var←c21060 */ , 787970);
   (void) XR←ExportProcS(var←c24516, (word) (( (bPt) gf←c0345)+220)/* var←c20900 */ , 2098949);
   (void) XR←ExportProcS(var←c24516, (word) (( (bPt) gf←c0345)+212)/* var←c20868 */ , 1050627);
   (void) XR←ExportProcS(var←c24516, (word) (( (bPt) gf←c0345)+196)/* var←c20804 */ , 526594);
   (void) XR←ExportProcS(var←c24516, (word) (( (bPt) gf←c0345)+188)/* var←c20772 */ , 1313284);
   (void) XR←ExportProcS(var←c24516, (word) (( (bPt) gf←c0345)+164)/* var←c20676 */ , 1575684);
   (void) XR←ExportProcS(var←c24516, (word) (( (bPt) gf←c0345)+156)/* var←c20644 */ , 1575940);
   (void) XR←ExportProcS(var←c24516, (word) (( (bPt) gf←c0345)+228)/* var←c20932 */ , 789762);
   (void) XR←ExportProcS(var←c24516, (word) (( (bPt) gf←c0345)+140)/* var←c20580 */ , 1052163);
   (void) XR←ExportProcS(var←c24516, (word) (( (bPt) gf←c0345)+148)/* var←c20612 */ , 1052419);
   (void) XR←ExportProcS(var←c24516, (word) (( (bPt) gf←c0345)+132)/* var←c20548 */ , 1314820);
   (void) XR←ExportProcS(var←c24516, (word) (( (bPt) gf←c0345)+124)/* var←c20516 */ , 1315076);
   (void) XR←ExportProcS(var←c24516, (word) (( (bPt) gf←c0345)+180)/* var←c20740 */ , 1577476);
   (void) XR←ExportProcS(var←c24516, (word) (( (bPt) gf←c0345)+172)/* var←c20708 */ , 134484737);
   }

static void GGShapesImpl←P0(formal←c050, formal←c049)
   word formal←c050;
   word formal←c049;
   {
   register ptr gf←c24580 =  (ptr) &globalframe;
   /* GGShapesImpl: */ 
SOURCE(172, 13611)
SOURCE(552, 55)
   {
      word pd16;
      pd16 = (* (( (ptr) (* (( (ptr) gf←c24580)+77)/* var←c21252 */  ))+6) );
      (* (( (ptr) gf←c24580)+4)/* jointSize←v3140 */  ) = (word) ( *( (fPt) ((*  (ptr) pd16 ))))((*  (ptr) (&fc17) ), pd16);
      };
SOURCE(659, 61)
   {
      word pd18;
      pd18 = (* (( (ptr) (* (( (ptr) gf←c24580)+77)/* var←c21252 */  ))+6) );
      (* (( (ptr) gf←c24580)+5)/* hotJointSize←v3196 */  ) = (word) ( *( (fPt) ((*  (ptr) pd18 ))))((*  (ptr) (&fc19) ), pd18);
      };
SOURCE(6166, 25)
   (* (( (ptr) gf←c24580)+6)/* starBurstsOn←v3616 */  ) = 1;
SOURCE(6193, 26)
   (* (( (ptr) gf←c24580)+7)/* starBurstWidth←v3644 */  ) = (*  (ptr) &fc20 );
SOURCE(6221, 22)
   (* (( (ptr) gf←c24580)+8)/* tryDraw2d←v3672 */  ) = 1;
SOURCE(6245, 13)
   (* (( (ptr) gf←c24580)+9)/* R←v3700 */  ) = (*  (ptr) &fc21 );
SOURCE(6304, 18)
   {
      word x23;
      word x24;
      *(float*)(( (ptr) gf←c24580)+10)/* yR←v3784 */  = (
         x23 = (*  (ptr) &fc22 ),  *(float*)&x23
         ) * (
         x24 = (* (( (ptr) gf←c24580)+9)/* R←v3700 */  ),  *(float*)&x24
         );
      };
SOURCE(6324, 18)
   {
      word x26;
      word x27;
      *(float*)(( (ptr) gf←c24580)+11)/* xR←v3812 */  = (
         x26 = (*  (ptr) &fc25 ),  *(float*)&x26
         ) * (
         x27 = (* (( (ptr) gf←c24580)+9)/* R←v3700 */  ),  *(float*)&x27
         );
      };
SOURCE(13777, 6)
   (void) Init←P1620();
   }

static void DrawWhiteRectangle←P60(formal←c0446, formal←c0447, formal←c0448, formal←c0449, formal←c0450, formal←c0451)
   word formal←c0446;
   word formal←c0447;
   word formal←c0448;
   word formal←c0449;
   word formal←c0450;
   word formal←c0451;
   {
   W12 var←c24612;
   /* declaration of dc←v4424 skipped */ 
   /* declaration of loX←v4452 skipped */ 
   /* declaration of loY←v4480 skipped */ 
   /* declaration of hiX←v4508 skipped */ 
   /* declaration of hiY←v4536 skipped */ 
   /* declaration of strokeWidth←v4564 skipped */ 
   register ptr gf←c24644 =  (ptr) &globalframe;
   /* declaration of var←c21284 skipped */ 
   (* (( (ptr) &var←c24612)+4)/* dc←v4424 */  ) = formal←c0446;
   (* (( (ptr) &var←c24612)+5)/* loX←v4452 */  ) = formal←c0447;
   (* (( (ptr) &var←c24612)+6)/* loY←v4480 */  ) = formal←c0448;
   (* (( (ptr) &var←c24612)+7)/* hiX←v4508 */  ) = formal←c0449;
   (* (( (ptr) &var←c24612)+8)/* hiY←v4536 */  ) = formal←c0450;
   (* (( (ptr) &var←c24612)+9)/* strokeWidth←v4564 */  ) = formal←c0451;
   /* DrawWhiteRectangle: */ 
SOURCE(779, 480)
   {
      word tmpAddr28;
      tmpAddr28 = (word) (( (ptr) &var←c24612)+10)/* var←c21284 */ ;
      (*  (ptr) tmpAddr28 ) = ( ((word)  (fPt) DoDrawRect←P1680) );
      (* (( (ptr) tmpAddr28) + 1) ) = 1;
      };
SOURCE(1230, 29)
   {
      word pd29;
      pd29 = (* (( (ptr) (* (( (ptr) gf←c24644)+78)/* var←c21316 */  ))+12) );
      (void) ( *( (fPt) ((*  (ptr) pd29 ))))((* (( (ptr) &var←c24612)+4)/* dc←v4424 */  ), (word) (( (bPt) &var←c24612)+40)/* var←c21284 */ , pd29)
      ;
      };
   }

static void DoDrawRect←P1680(formal←c24708)
   word formal←c24708;
   {
   register ptr gf←c24676 =  (ptr) &globalframe;
   word strokeWidth2←v8000;
   word width←v8028;
   word height←v8056;
   formal←c24708 = (formal←c24708 - 40);
   /* DoDrawRect: */ 
SOURCE(887, 338)
SOURCE(908, 44)
   {
      word x30;
      word x31;
      *(float*)&strokeWidth2←v8000 = (
         x30 = (* (( (ptr) formal←c24708)+9) ),  *(float*)&x30
         ) + (
         x31 = (* (( (ptr) formal←c24708)+9) ),  *(float*)&x31
         );
      };
SOURCE(954, 21)
   {
      word x32;
      word x33;
      *(float*)&width←v8028 = (
         x32 = (* (( (ptr) formal←c24708)+7) ),  *(float*)&x32
         ) - (
         x33 = (* (( (ptr) formal←c24708)+5) ),  *(float*)&x33
         );
      };
SOURCE(977, 22)
   {
      word x34;
      word x35;
      *(float*)&height←v8056 = (
         x34 = (* (( (ptr) formal←c24708)+8) ),  *(float*)&x34
         ) - (
         x35 = (* (( (ptr) formal←c24708)+6) ),  *(float*)&x35
         );
      };
SOURCE(1001, 33)
   {
      word pd36;
      pd36 = (* (( (ptr) (* (( (ptr) gf←c24676)+78)/* var←c21316 */  ))+52) );
      (void) ( *( (fPt) ((*  (ptr) pd36 ))))((* (( (ptr) formal←c24708)+4) ), (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c24676)+78)/* var←c21316 */  ))+54)
          ) ), pd36);
      };
SOURCE(1036, 101)
   {
      W4 var←c21348;
      {
         word x37;
         word x38;
         *(float*)&var←c21348.f0 = (
            x37 = (* (( (ptr) formal←c24708)+5) ),  *(float*)&x37
            ) - (
            x38 = (* (( (ptr) formal←c24708)+9) ),  *(float*)&x38
            );
         };
      {
         word x39;
         word x40;
         *(float*)&var←c21348.f1 = (
            x39 = (* (( (ptr) formal←c24708)+6) ),  *(float*)&x39
            ) - (
            x40 = (* (( (ptr) formal←c24708)+9) ),  *(float*)&x40
            );
         };
      {
         word x41;
         word x42;
         *(float*)&var←c21348.f2 = (
            x41 = width←v8028,  *(float*)&x41
            ) + (
            x42 = strokeWidth2←v8000,  *(float*)&x42
            );
         };
      {
         word x43;
         word x44;
         *(float*)&var←c21348.f3 = (
            x43 = height←v8056,  *(float*)&x43
            ) + (
            x44 = strokeWidth2←v8000,  *(float*)&x44
            );
         };
      {
         word pd45;
         pd45 = (* (( (ptr) (* (( (ptr) gf←c24676)+78)/* var←c21316 */  ))+65) );
         (void) ( *( (fPt) ((*  (ptr) pd45 ))))((* (( (ptr) formal←c24708)+4) ), var←c21348, pd45);
         };
      };
SOURCE(1139, 33)
   {
      word pd46;
      pd46 = (* (( (ptr) (* (( (ptr) gf←c24676)+78)/* var←c21316 */  ))+52) );
      (void) ( *( (fPt) ((*  (ptr) pd46 ))))((* (( (ptr) formal←c24708)+4) ), (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c24676)+78)/* var←c21316 */  ))+55)
          ) ), pd46);
      };
SOURCE(1174, 51)
   {
      W4 var←c21380;
      var←c21380.f0 = (* (( (ptr) formal←c24708)+5) );
      var←c21380.f1 = (* (( (ptr) formal←c24708)+6) );
      var←c21380.f2 = width←v8028;
      var←c21380.f3 = height←v8056;
      {
         word pd47;
         pd47 = (* (( (ptr) (* (( (ptr) gf←c24676)+78)/* var←c21316 */  ))+65) );
         (void) ( *( (fPt) ((*  (ptr) pd47 ))))((* (( (ptr) formal←c24708)+4) ), var←c21380, pd47);
         };
      };
   }

static void DrawRectangle←P120(formal←c0452, formal←c0453, formal←c0454, formal←c0455, formal←c0456, formal←c0457)
   word formal←c0452;
   word formal←c0453;
   word formal←c0454;
   word formal←c0455;
   word formal←c0456;
   word formal←c0457;
   {
   W12 var←c24740;
   /* declaration of dc←v4624 skipped */ 
   /* declaration of loX←v4652 skipped */ 
   /* declaration of loY←v4680 skipped */ 
   /* declaration of hiX←v4708 skipped */ 
   /* declaration of hiY←v4736 skipped */ 
   /* declaration of strokeWidth←v4764 skipped */ 
   register ptr gf←c24772 =  (ptr) &globalframe;
   /* declaration of var←c21412 skipped */ 
   (* (( (ptr) &var←c24740)+4)/* dc←v4624 */  ) = formal←c0452;
   (* (( (ptr) &var←c24740)+5)/* loX←v4652 */  ) = formal←c0453;
   (* (( (ptr) &var←c24740)+6)/* loY←v4680 */  ) = formal←c0454;
   (* (( (ptr) &var←c24740)+7)/* hiX←v4708 */  ) = formal←c0455;
   (* (( (ptr) &var←c24740)+8)/* hiY←v4736 */  ) = formal←c0456;
   (* (( (ptr) &var←c24740)+9)/* strokeWidth←v4764 */  ) = formal←c0457;
   /* DrawRectangle: */ 
SOURCE(1265, 450)
   {
      word tmpAddr48;
      tmpAddr48 = (word) (( (ptr) &var←c24740)+10)/* var←c21412 */ ;
      (*  (ptr) tmpAddr48 ) = ( ((word)  (fPt) DoDrawRect←P1740) );
      (* (( (ptr) tmpAddr48) + 1) ) = 1;
      };
SOURCE(1686, 29)
   {
      word pd49;
      pd49 = (* (( (ptr) (* (( (ptr) gf←c24772)+78)/* var←c21316 */  ))+12) );
      (void) ( *( (fPt) ((*  (ptr) pd49 ))))((* (( (ptr) &var←c24740)+4)/* dc←v4624 */  ), (word) (( (bPt) &var←c24740)+40)/* var←c21412 */ , pd49)
      ;
      };
   }

static void DoDrawRect←P1740(formal←c24868)
   word formal←c24868;
   {
   W6 var←c24804;
   register ptr gf←c24836 =  (ptr) &globalframe;
   /* declaration of var←c21444 skipped */ 
   formal←c24868 = (formal←c24868 - 40);
   var←c24804.f0 = formal←c24868;
   /* DoDrawRect: */ 
SOURCE(1368, 313)
   {
      word tmpAddr50;
      tmpAddr50 = (word) (( (ptr) &var←c24804)+4)/* var←c21444 */ ;
      (*  (ptr) tmpAddr50 ) = ( ((word)  (fPt) RectanglePath←P1800) );
      (* (( (ptr) tmpAddr50) + 1) ) = 1;
      };
SOURCE(1532, 38)
   {
      word pd51;
      pd51 = (* (( (ptr) (* (( (ptr) gf←c24836)+78)/* var←c21316 */  ))+68) );
      (void) ( *( (fPt) ((*  (ptr) pd51 ))))((* (( (ptr) formal←c24868)+4) ), (* (( (ptr) formal←c24868)+9) ), pd51);
      };
SOURCE(1572, 31)
   {
      word pd52;
      pd52 = (* (( (ptr) (* (( (ptr) gf←c24836)+78)/* var←c21316 */  ))+69) );
      (void) ( *( (fPt) ((*  (ptr) pd52 ))))((* (( (ptr) formal←c24868)+4) ), 0, pd52);
      };
SOURCE(1605, 32)
   {
      word pd53;
      pd53 = (* (( (ptr) (* (( (ptr) gf←c24836)+78)/* var←c21316 */  ))+70) );
      (void) ( *( (fPt) ((*  (ptr) pd53 ))))((* (( (ptr) formal←c24868)+4) ), 2, pd53);
      };
SOURCE(1639, 42)
   {
      word pd54;
      pd54 = (* (( (ptr) (* (( (ptr) gf←c24836)+78)/* var←c21316 */  ))+71) );
      (void) ( *( (fPt) ((*  (ptr) pd54 ))))((* (( (ptr) formal←c24868)+4) ), (word) (( (bPt) &var←c24804)+16)/* var←c21444 */ , 1, pd54)
      ;
      };
   }

static void RectanglePath←P1800(moveTo←v14124, lineTo←v14152, curveTo←v14180, conicTo←v14208, arcTo←v14236, formal←c24900)
   word moveTo←v14124;
   word lineTo←v14152;
   word curveTo←v14180;
   word conicTo←v14208;
   word arcTo←v14236;
   word formal←c24900;
   {
   formal←c24900 = (formal←c24900 - 16);
   /* RectanglePath: */ 
SOURCE(1389, 138)
SOURCE(1424, 18)
   {
      W2 var←c21476;
      var←c21476.f0 = (* (( (ptr) (*  (ptr) formal←c24900 ))+5) );
      var←c21476.f1 = (* (( (ptr) (*  (ptr) formal←c24900 ))+6) );
      (void) ( *( (fPt) ((*  (ptr) moveTo←v14124 ))))(var←c21476, moveTo←v14124);
      };
SOURCE(1444, 18)
   {
      W2 var←c21508;
      var←c21508.f0 = (* (( (ptr) (*  (ptr) formal←c24900 ))+5) );
      var←c21508.f1 = (* (( (ptr) (*  (ptr) formal←c24900 ))+8) );
      (void) ( *( (fPt) ((*  (ptr) lineTo←v14152 ))))(var←c21508, lineTo←v14152);
      };
SOURCE(1464, 20)
   {
      W2 var←c21540;
      var←c21540.f0 = (* (( (ptr) (*  (ptr) formal←c24900 ))+7) );
      var←c21540.f1 = (* (( (ptr) (*  (ptr) formal←c24900 ))+8) );
      (void) ( *( (fPt) ((*  (ptr) lineTo←v14152 ))))(var←c21540, lineTo←v14152);
      };
SOURCE(1486, 20)
   {
      W2 var←c21572;
      var←c21572.f0 = (* (( (ptr) (*  (ptr) formal←c24900 ))+7) );
      var←c21572.f1 = (* (( (ptr) (*  (ptr) formal←c24900 ))+6) );
      (void) ( *( (fPt) ((*  (ptr) lineTo←v14152 ))))(var←c21572, lineTo←v14152);
      };
SOURCE(1508, 19)
   {
      W2 var←c21604;
      var←c21604.f0 = (* (( (ptr) (*  (ptr) formal←c24900 ))+5) );
      var←c21604.f1 = (* (( (ptr) (*  (ptr) formal←c24900 ))+6) );
      (void) ( *( (fPt) ((*  (ptr) lineTo←v14152 ))))(var←c21604, lineTo←v14152);
      };
   }

static void DrawFilledRectangle←P180(formal←c0458, formal←c0459, formal←c0460, formal←c0461, formal←c0462)
   word formal←c0458;
   word formal←c0459;
   word formal←c0460;
   word formal←c0461;
   word formal←c0462;
   {
   W11 var←c24932;
   /* declaration of dc←v4824 skipped */ 
   /* declaration of loX←v4852 skipped */ 
   /* declaration of loY←v4880 skipped */ 
   /* declaration of hiX←v4908 skipped */ 
   /* declaration of hiY←v4936 skipped */ 
   register ptr gf←c24964 =  (ptr) &globalframe;
   /* declaration of var←c21636 skipped */ 
   (* (( (ptr) &var←c24932)+4)/* dc←v4824 */  ) = formal←c0458;
   (* (( (ptr) &var←c24932)+5)/* loX←v4852 */  ) = formal←c0459;
   (* (( (ptr) &var←c24932)+6)/* loY←v4880 */  ) = formal←c0460;
   (* (( (ptr) &var←c24932)+7)/* hiX←v4908 */  ) = formal←c0461;
   (* (( (ptr) &var←c24932)+8)/* hiY←v4936 */  ) = formal←c0462;
   /* DrawFilledRectangle: */ 
SOURCE(1721, 368)
   {
      word tmpAddr55;
      tmpAddr55 = (word) (( (ptr) &var←c24932)+9)/* var←c21636 */ ;
      (*  (ptr) tmpAddr55 ) = ( ((word)  (fPt) DoDrawFilledRectangle←P1860) );
      (* (( (ptr) tmpAddr55) + 1) ) = 1;
      };
SOURCE(2049, 40)
   {
      word pd56;
      pd56 = (* (( (ptr) (* (( (ptr) gf←c24964)+78)/* var←c21316 */  ))+12) );
      (void) ( *( (fPt) ((*  (ptr) pd56 ))))((* (( (ptr) &var←c24932)+4)/* dc←v4824 */  ), (word) (( (bPt) &var←c24932)+36)/* var←c21636 */ , pd56)
      ;
      };
   }

static void DoDrawFilledRectangle←P1860(formal←c25028)
   word formal←c25028;
   {
   register ptr gf←c24996 =  (ptr) &globalframe;
   formal←c25028 = (formal←c25028 - 36);
   /* DoDrawFilledRectangle: */ 
SOURCE(1805, 239)
SOURCE(1837, 28)
   {
      W2 var←c21668;
      var←c21668.f0 = (* (( (ptr) formal←c25028)+5) );
      var←c21668.f1 = (* (( (ptr) formal←c25028)+6) );
      {
         word pd57;
         pd57 = (* (( (ptr) (* (( (ptr) gf←c24996)+78)/* var←c21316 */  ))+21) );
         (void) ( *( (fPt) ((*  (ptr) pd57 ))))((* (( (ptr) formal←c25028)+4) ), var←c21668, pd57);
         };
      };
SOURCE(1897, 15)
   {
      word pd58;
      pd58 = (* (( (ptr) (* (( (ptr) gf←c24996)+78)/* var←c21316 */  ))+19) );
      (void) ( *( (fPt) ((*  (ptr) pd58 ))))((* ((( (ptr) formal←c25028)+4)) ), pd58);
      };
SOURCE(1959, 33)
   {
      word pd59;
      pd59 = (* (( (ptr) (* (( (ptr) gf←c24996)+78)/* var←c21316 */  ))+52) );
      (void) ( *( (fPt) ((*  (ptr) pd59 ))))((* (( (ptr) formal←c25028)+4) ), (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c24996)+78)/* var←c21316 */  ))+54)
          ) ), pd59);
      };
SOURCE(1994, 50)
   {
      W4 var←c21700;
      var←c21700.f0 = (*  (ptr) &fc20 );
      var←c21700.f1 = (*  (ptr) &fc20 );
      {
         word x60;
         word x61;
         *(float*)&var←c21700.f2 = (
            x60 = (* (( (ptr) formal←c25028)+7) ),  *(float*)&x60
            ) - (
            x61 = (* (( (ptr) formal←c25028)+5) ),  *(float*)&x61
            );
         };
      {
         word x62;
         word x63;
         *(float*)&var←c21700.f3 = (
            x62 = (* (( (ptr) formal←c25028)+8) ),  *(float*)&x62
            ) - (
            x63 = (* (( (ptr) formal←c25028)+6) ),  *(float*)&x63
            );
         };
      {
         word pd64;
         pd64 = (* (( (ptr) (* (( (ptr) gf←c24996)+78)/* var←c21316 */  ))+65) );
         (void) ( *( (fPt) ((*  (ptr) pd64 ))))((* (( (ptr) formal←c25028)+4) ), var←c21700, pd64);
         };
      };
   }

static void DrawSquare←P240(formal←c0463, formal←c0464, side←v5052, formal←c0465)
   word formal←c0463;
   W2 formal←c0464;
   word side←v5052;
   word formal←c0465;
   {
   W11 var←c25060;
   /* declaration of dc←v4996 skipped */ 
   /* declaration of center←v5024 skipped */ 
   /* declaration of strokeWidth←v5080 skipped */ 
   register ptr gf←c25092 =  (ptr) &globalframe;
   /* declaration of var←c21732 skipped */ 
   /* declaration of halfSide←v8264 skipped */ 
   (* (( (ptr) &var←c25060)+4)/* dc←v4996 */  ) = formal←c0463;
   (*  (W2Pt) (( (ptr) &var←c25060)+5)/* center←v5024 */  ) = formal←c0464;
   (* (( (ptr) &var←c25060)+7)/* strokeWidth←v5080 */  ) = formal←c0465;
   /* DrawSquare: */ 
SOURCE(2095, 593)
   {
      word tmpAddr65;
      tmpAddr65 = (word) (( (ptr) &var←c25060)+8)/* var←c21732 */ ;
      (*  (ptr) tmpAddr65 ) = ( ((word)  (fPt) DoDrawSquare←P1920) );
      (* (( (ptr) tmpAddr65) + 1) ) = 1;
      };
SOURCE(2196, 25)
   {
      word x66;
      word x68;
      *(float*)(( (ptr) &var←c25060)+10)/* halfSide←v8264 */  = (
         x66 = side←v5052,  *(float*)&x66
         ) / (
         x68 = (*  (ptr) &fc67 ),  *(float*)&x68
         );
      };
SOURCE(2657, 31)
   {
      word pd69;
      pd69 = (* (( (ptr) (* (( (ptr) gf←c25092)+78)/* var←c21316 */  ))+12) );
      (void) ( *( (fPt) ((*  (ptr) pd69 ))))((* (( (ptr) &var←c25060)+4)/* dc←v4996 */  ), (word) (( (bPt) &var←c25060)+32)/* var←c21732 */ , pd69)
      ;
      };
   }

static void DoDrawSquare←P1920(formal←c25188)
   word formal←c25188;
   {
   W6 var←c25124;
   register ptr gf←c25156 =  (ptr) &globalframe;
   /* declaration of var←c21764 skipped */ 
   formal←c25188 = (formal←c25188 - 32);
   var←c25124.f0 = formal←c25188;
   /* DoDrawSquare: */ 
SOURCE(2223, 429)
   {
      word tmpAddr70;
      tmpAddr70 = (word) (( (ptr) &var←c25124)+4)/* var←c21764 */ ;
      (*  (ptr) tmpAddr70 ) = ( ((word)  (fPt) SquarePath←P1980) );
      (* (( (ptr) tmpAddr70) + 1) ) = 1;
      };
SOURCE(2449, 38)
   {
      W2 var←c21796;
      var←c21796.f0 = (* (( (ptr) formal←c25188)+5) );
      var←c21796.f1 = (* (( (ptr) formal←c25188)+6) );
      {
         word pd71;
         pd71 = (* (( (ptr) (* (( (ptr) gf←c25156)+78)/* var←c21316 */  ))+21) );
         (void) ( *( (fPt) ((*  (ptr) pd71 ))))((* (( (ptr) formal←c25188)+4) ), var←c21796, pd71);
         };
      };
SOURCE(2489, 15)
   {
      word pd72;
      pd72 = (* (( (ptr) (* (( (ptr) gf←c25156)+78)/* var←c21316 */  ))+19) );
      (void) ( *( (fPt) ((*  (ptr) pd72 ))))((* ((( (ptr) formal←c25188)+4)) ), pd72);
      };
SOURCE(2506, 38)
   {
      word pd73;
      pd73 = (* (( (ptr) (* (( (ptr) gf←c25156)+78)/* var←c21316 */  ))+68) );
      (void) ( *( (fPt) ((*  (ptr) pd73 ))))((* (( (ptr) formal←c25188)+4) ), (* (( (ptr) formal←c25188)+7) ), pd73);
      };
SOURCE(2546, 31)
   {
      word pd74;
      pd74 = (* (( (ptr) (* (( (ptr) gf←c25156)+78)/* var←c21316 */  ))+69) );
      (void) ( *( (fPt) ((*  (ptr) pd74 ))))((* (( (ptr) formal←c25188)+4) ), 0, pd74);
      };
SOURCE(2579, 32)
   {
      word pd75;
      pd75 = (* (( (ptr) (* (( (ptr) gf←c25156)+78)/* var←c21316 */  ))+70) );
      (void) ( *( (fPt) ((*  (ptr) pd75 ))))((* (( (ptr) formal←c25188)+4) ), 2, pd75);
      };
SOURCE(2613, 39)
   {
      word pd76;
      pd76 = (* (( (ptr) (* (( (ptr) gf←c25156)+78)/* var←c21316 */  ))+71) );
      (void) ( *( (fPt) ((*  (ptr) pd76 ))))((* (( (ptr) formal←c25188)+4) ), (word) (( (bPt) &var←c25124)+16)/* var←c21764 */ , 1, pd76)
      ;
      };
   }

static void SquarePath←P1980(moveTo←v15240, lineTo←v15268, curveTo←v15296, conicTo←v15324, arcTo←v15352, formal←c25220)
   word moveTo←v15240;
   word lineTo←v15268;
   word curveTo←v15296;
   word conicTo←v15324;
   word arcTo←v15352;
   word formal←c25220;
   {
   formal←c25220 = (formal←c25220 - 16);
   /* SquarePath: */ 
SOURCE(2246, 198)
SOURCE(2278, 32)
   {
      W2 var←c21828;
      {
         word x77;
         *(float*)&var←c21828.f0 =  - (
            x77 = (* (( (ptr) (*  (ptr) formal←c25220 ))+10) ),  *(float*)&x77
            );
         };
      {
         word x78;
         *(float*)&var←c21828.f1 =  - (
            x78 = (* (( (ptr) (*  (ptr) formal←c25220 ))+10) ),  *(float*)&x78
            );
         };
      (void) ( *( (fPt) ((*  (ptr) moveTo←v15240 ))))(var←c21828, moveTo←v15240);
      };
SOURCE(2312, 31)
   {
      W2 var←c21860;
      {
         word x79;
         *(float*)&var←c21860.f0 =  - (
            x79 = (* (( (ptr) (*  (ptr) formal←c25220 ))+10) ),  *(float*)&x79
            );
         };
      var←c21860.f1 = (* (( (ptr) (*  (ptr) formal←c25220 ))+10) );
      (void) ( *( (fPt) ((*  (ptr) lineTo←v15268 ))))(var←c21860, lineTo←v15268);
      };
SOURCE(2345, 30)
   {
      W2 var←c21892;
      var←c21892.f0 = (* (( (ptr) (*  (ptr) formal←c25220 ))+10) );
      var←c21892.f1 = (* (( (ptr) (*  (ptr) formal←c25220 ))+10) );
      (void) ( *( (fPt) ((*  (ptr) lineTo←v15268 ))))(var←c21892, lineTo←v15268);
      };
SOURCE(2377, 32)
   {
      W2 var←c21924;
      var←c21924.f0 = (* (( (ptr) (*  (ptr) formal←c25220 ))+10) );
      {
         word x80;
         *(float*)&var←c21924.f1 =  - (
            x80 = (* (( (ptr) (*  (ptr) formal←c25220 ))+10) ),  *(float*)&x80
            );
         };
      (void) ( *( (fPt) ((*  (ptr) lineTo←v15268 ))))(var←c21924, lineTo←v15268);
      };
SOURCE(2411, 33)
   {
      W2 var←c21956;
      {
         word x81;
         *(float*)&var←c21956.f0 =  - (
            x81 = (* (( (ptr) (*  (ptr) formal←c25220 ))+10) ),  *(float*)&x81
            );
         };
      {
         word x82;
         *(float*)&var←c21956.f1 =  - (
            x82 = (* (( (ptr) (*  (ptr) formal←c25220 ))+10) ),  *(float*)&x82
            );
         };
      (void) ( *( (fPt) ((*  (ptr) lineTo←v15268 ))))(var←c21956, lineTo←v15268);
      };
   }

static void DrawPlus←P300(formal←c0466, formal←c0467)
   word formal←c0466;
   W2 formal←c0467;
   {
   W9 var←c25252;
   /* declaration of dc←v5140 skipped */ 
   /* declaration of center←v5168 skipped */ 
   register ptr gf←c25284 =  (ptr) &globalframe;
   /* declaration of var←c21988 skipped */ 
   (* (( (ptr) &var←c25252)+4)/* dc←v5140 */  ) = formal←c0466;
   (*  (W2Pt) (( (ptr) &var←c25252)+5)/* center←v5168 */  ) = formal←c0467;
   /* DrawPlus: */ 
SOURCE(2694, 493)
   {
      word tmpAddr83;
      tmpAddr83 = (word) (( (ptr) &var←c25252)+7)/* var←c21988 */ ;
      (*  (ptr) tmpAddr83 ) = ( ((word)  (fPt) DoDrawPlus←P2040) );
      (* (( (ptr) tmpAddr83) + 1) ) = 1;
      };
SOURCE(3158, 29)
   {
      word pd84;
      pd84 = (* (( (ptr) (* (( (ptr) gf←c25284)+78)/* var←c21316 */  ))+12) );
      (void) ( *( (fPt) ((*  (ptr) pd84 ))))((* (( (ptr) &var←c25252)+4)/* dc←v5140 */  ), (word) (( (bPt) &var←c25252)+28)/* var←c21988 */ , pd84)
      ;
      };
   }

static void DoDrawPlus←P2040(formal←c25380)
   word formal←c25380;
   {
   W8 var←c25316;
   register ptr gf←c25348 =  (ptr) &globalframe;
   /* declaration of var←c22020 skipped */ 
   /* declaration of var←c22052 skipped */ 
   formal←c25380 = (formal←c25380 - 28);
   var←c25316.f0 = formal←c25380;
   /* DoDrawPlus: */ 
SOURCE(2778, 375)
   {
      word tmpAddr85;
      tmpAddr85 = (word) (( (ptr) &var←c25316)+4)/* var←c22020 */ ;
      (*  (ptr) tmpAddr85 ) = ( ((word)  (fPt) Vert←P2160) );
      (* (( (ptr) tmpAddr85) + 1) ) = 1;
      };
   {
      word tmpAddr86;
      tmpAddr86 = (word) (( (ptr) &var←c25316)+6)/* var←c22052 */ ;
      (*  (ptr) tmpAddr86 ) = ( ((word)  (fPt) Horiz←P2100) );
      (* (( (ptr) tmpAddr86) + 1) ) = 1;
      };
SOURCE(2960, 38)
   {
      W2 var←c22084;
      var←c22084.f0 = (* (( (ptr) formal←c25380)+5) );
      var←c22084.f1 = (* (( (ptr) formal←c25380)+6) );
      {
         word pd87;
         pd87 = (* (( (ptr) (* (( (ptr) gf←c25348)+78)/* var←c21316 */  ))+21) );
         (void) ( *( (fPt) ((*  (ptr) pd87 ))))((* (( (ptr) formal←c25380)+4) ), var←c22084, pd87);
         };
      };
SOURCE(3000, 15)
   {
      word pd88;
      pd88 = (* (( (ptr) (* (( (ptr) gf←c25348)+78)/* var←c21316 */  ))+19) );
      (void) ( *( (fPt) ((*  (ptr) pd88 ))))((* ((( (ptr) formal←c25380)+4)) ), pd88);
      };
SOURCE(3017, 30)
   {
      word pd89;
      pd89 = (* (( (ptr) (* (( (ptr) gf←c25348)+78)/* var←c21316 */  ))+68) );
      (void) ( *( (fPt) ((*  (ptr) pd89 ))))((* (( (ptr) formal←c25380)+4) ), (*  (ptr) &fc67 ), pd89);
      };
SOURCE(3049, 31)
   {
      word pd90;
      pd90 = (* (( (ptr) (* (( (ptr) gf←c25348)+78)/* var←c21316 */  ))+69) );
      (void) ( *( (fPt) ((*  (ptr) pd90 ))))((* (( (ptr) formal←c25380)+4) ), 0, pd90);
      };
SOURCE(3082, 35)
   {
      word pd91;
      pd91 = (* (( (ptr) (* (( (ptr) gf←c25348)+78)/* var←c21316 */  ))+71) );
      (void) ( *( (fPt) ((*  (ptr) pd91 ))))((* (( (ptr) formal←c25380)+4) ), (word) (( (bPt) &var←c25316)+24)/* var←c22052 */ , 0, pd91)
      ;
      };
SOURCE(3119, 34)
   {
      word pd92;
      pd92 = (* (( (ptr) (* (( (ptr) gf←c25348)+78)/* var←c21316 */  ))+71) );
      (void) ( *( (fPt) ((*  (ptr) pd92 ))))((* (( (ptr) formal←c25380)+4) ), (word) (( (bPt) &var←c25316)+16)/* var←c22020 */ , 0, pd92)
      ;
      };
   }

static void Horiz←P2100(moveTo←v15412, lineTo←v15440, curveTo←v15468, conicTo←v15496, arcTo←v15524, formal←c25412)
   word moveTo←v15412;
   word lineTo←v15440;
   word curveTo←v15468;
   word conicTo←v15496;
   word arcTo←v15524;
   word formal←c25412;
   {
   formal←c25412 = (formal←c25412 - 24);
   /* Horiz: */ 
SOURCE(2799, 76)
SOURCE(2826, 24)
   {
      W2 var←c22116;
      var←c22116.f0 = (*  (ptr) &fc93 );
      var←c22116.f1 = (*  (ptr) &fc20 );
      (void) ( *( (fPt) ((*  (ptr) moveTo←v15412 ))))(var←c22116, moveTo←v15412);
      };
SOURCE(2852, 23)
   {
      W2 var←c22148;
      var←c22148.f0 = (*  (ptr) &fc94 );
      var←c22148.f1 = (*  (ptr) &fc20 );
      (void) ( *( (fPt) ((*  (ptr) lineTo←v15440 ))))(var←c22148, lineTo←v15440);
      };
   }

static void Vert←P2160(moveTo←v15584, lineTo←v15612, curveTo←v15640, conicTo←v15668, arcTo←v15696, formal←c25444)
   word moveTo←v15584;
   word lineTo←v15612;
   word curveTo←v15640;
   word conicTo←v15668;
   word arcTo←v15696;
   word formal←c25444;
   {
   formal←c25444 = (formal←c25444 - 16);
   /* Vert: */ 
SOURCE(2880, 75)
SOURCE(2906, 24)
   {
      W2 var←c22180;
      var←c22180.f0 = (*  (ptr) &fc20 );
      var←c22180.f1 = (*  (ptr) &fc93 );
      (void) ( *( (fPt) ((*  (ptr) moveTo←v15584 ))))(var←c22180, moveTo←v15584);
      };
SOURCE(2932, 23)
   {
      W2 var←c22212;
      var←c22212.f0 = (*  (ptr) &fc20 );
      var←c22212.f1 = (*  (ptr) &fc94 );
      (void) ( *( (fPt) ((*  (ptr) lineTo←v15612 ))))(var←c22212, lineTo←v15612);
      };
   }

static void DrawBoundBox←P360(dc←v5228, bBox←v5256, strokeWidth←v5284)
   word dc←v5228;
   word bBox←v5256;
   word strokeWidth←v5284;
   {
   /* DrawBoundBox: */ 
SOURCE(3193, 162)
SOURCE(3285, 70)
   (void) DrawRectangle←P120(dc←v5228, (*  (ptr) bBox←v5256 ), (* (( (ptr) bBox←v5256)+1) ), (* (( (ptr) bBox←v5256)+2) ), (* (
         ( (ptr) bBox←v5256)+3) ), strokeWidth←v5284);
   }

static void DrawFilledSquare←P420(formal←c0468, formal←c0469, formal←c0470)
   word formal←c0468;
   W2 formal←c0469;
   word formal←c0470;
   {
   W11 var←c25476;
   /* declaration of dc←v5344 skipped */ 
   /* declaration of center←v5372 skipped */ 
   /* declaration of side←v5400 skipped */ 
   register ptr gf←c25508 =  (ptr) &globalframe;
   /* declaration of var←c22244 skipped */ 
   /* declaration of halfSide←v8556 skipped */ 
   (* (( (ptr) &var←c25476)+4)/* dc←v5344 */  ) = formal←c0468;
   (*  (W2Pt) (( (ptr) &var←c25476)+5)/* center←v5372 */  ) = formal←c0469;
   (* (( (ptr) &var←c25476)+7)/* side←v5400 */  ) = formal←c0470;
   /* DrawFilledSquare: */ 
SOURCE(3362, 409)
   {
      word tmpAddr95;
      tmpAddr95 = (word) (( (ptr) &var←c25476)+8)/* var←c22244 */ ;
      (*  (ptr) tmpAddr95 ) = ( ((word)  (fPt) DoDrawFilledSquare←P2220) );
      (* (( (ptr) tmpAddr95) + 1) ) = 1;
      };
SOURCE(3444, 25)
   {
      word x96;
      word x97;
      *(float*)(( (ptr) &var←c25476)+10)/* halfSide←v8556 */  = (
         x96 = (* (( (ptr) &var←c25476)+7)/* side←v5400 */  ),  *(float*)&x96
         ) / (
         x97 = (*  (ptr) &fc67 ),  *(float*)&x97
         );
      };
SOURCE(3734, 37)
   {
      word pd98;
      pd98 = (* (( (ptr) (* (( (ptr) gf←c25508)+78)/* var←c21316 */  ))+12) );
      (void) ( *( (fPt) ((*  (ptr) pd98 ))))((* (( (ptr) &var←c25476)+4)/* dc←v5344 */  ), (word) (( (bPt) &var←c25476)+32)/* var←c22244 */ , pd98)
      ;
      };
   }

static void DoDrawFilledSquare←P2220(formal←c25572)
   word formal←c25572;
   {
   register ptr gf←c25540 =  (ptr) &globalframe;
   formal←c25572 = (formal←c25572 - 32);
   /* DoDrawFilledSquare: */ 
SOURCE(3471, 258)
SOURCE(3500, 38)
   {
      W2 var←c22276;
      var←c22276.f0 = (* (( (ptr) formal←c25572)+5) );
      var←c22276.f1 = (* (( (ptr) formal←c25572)+6) );
      {
         word pd99;
         pd99 = (* (( (ptr) (* (( (ptr) gf←c25540)+78)/* var←c21316 */  ))+21) );
         (void) ( *( (fPt) ((*  (ptr) pd99 ))))((* (( (ptr) formal←c25572)+4) ), var←c22276, pd99);
         };
      };
SOURCE(3570, 15)
   {
      word pd100;
      pd100 = (* (( (ptr) (* (( (ptr) gf←c25540)+78)/* var←c21316 */  ))+19) );
      (void) ( *( (fPt) ((*  (ptr) pd100 ))))((* ((( (ptr) formal←c25572)+4)) ), pd100);
      };
SOURCE(3632, 33)
   {
      word pd101;
      pd101 = (* (( (ptr) (* (( (ptr) gf←c25540)+78)/* var←c21316 */  ))+52) );
      (void) ( *( (fPt) ((*  (ptr) pd101 ))))((* (( (ptr) formal←c25572)+4) ), (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c25540)+78)
            /* var←c21316 */  ))+54) ) ), pd101);
      };
SOURCE(3667, 62)
   {
      W4 var←c22308;
      {
         word x102;
         *(float*)&var←c22308.f0 =  - (
            x102 = (* (( (ptr) formal←c25572)+10) ),  *(float*)&x102
            );
         };
      {
         word x103;
         *(float*)&var←c22308.f1 =  - (
            x103 = (* (( (ptr) formal←c25572)+10) ),  *(float*)&x103
            );
         };
      var←c22308.f2 = (* (( (ptr) formal←c25572)+7) );
      var←c22308.f3 = (* (( (ptr) formal←c25572)+7) );
      {
         word pd104;
         pd104 = (* (( (ptr) (* (( (ptr) gf←c25540)+78)/* var←c21316 */  ))+65) );
         (void) ( *( (fPt) ((*  (ptr) pd104 ))))((* (( (ptr) formal←c25572)+4) ), var←c22308, pd104);
         };
      };
   }

static void DrawEmptySquare←P480(formal←c0471, formal←c0472, formal←c0473, formal←c0474)
   word formal←c0471;
   W2 formal←c0472;
   word formal←c0473;
   word formal←c0474;
   {
   W13 var←c25604;
   /* declaration of dc←v5460 skipped */ 
   /* declaration of center←v5488 skipped */ 
   /* declaration of side←v5516 skipped */ 
   /* declaration of strokeWidth←v5544 skipped */ 
   register ptr gf←c25636 =  (ptr) &globalframe;
   /* declaration of var←c22340 skipped */ 
   /* declaration of halfSide←v8672 skipped */ 
   /* declaration of width2←v8700 skipped */ 
   (* (( (ptr) &var←c25604)+4)/* dc←v5460 */  ) = formal←c0471;
   (*  (W2Pt) (( (ptr) &var←c25604)+5)/* center←v5488 */  ) = formal←c0472;
   (* (( (ptr) &var←c25604)+7)/* side←v5516 */  ) = formal←c0473;
   (* (( (ptr) &var←c25604)+8)/* strokeWidth←v5544 */  ) = formal←c0474;
   /* DrawEmptySquare: */ 
SOURCE(3777, 578)
   {
      word tmpAddr105;
      tmpAddr105 = (word) (( (ptr) &var←c25604)+9)/* var←c22340 */ ;
      (*  (ptr) tmpAddr105 ) = ( ((word)  (fPt) DoDrawEmptySquare←P2280) );
      (* (( (ptr) tmpAddr105) + 1) ) = 1;
      };
SOURCE(4259, 11)
   (* (( (ptr) &var←c25604)+7)/* side←v5516 */  ) = (* (( (ptr) &var←c25604)+7)/* side←v5516 */  );
SOURCE(4272, 19)
   {
      word x106;
      word x107;
      *(float*)(( (ptr) &var←c25604)+11)/* halfSide←v8672 */  = (
         x106 = (* (( (ptr) &var←c25604)+7)/* side←v5516 */  ),  *(float*)&x106
         ) / (
         x107 = (*  (ptr) &fc67 ),  *(float*)&x107
         );
      };
SOURCE(4293, 24)
   {
      word x108;
      word x109;
      *(float*)(( (ptr) &var←c25604)+12)/* width2←v8700 */  = (
         x108 = (*  (ptr) &fc67 ),  *(float*)&x108
         ) * (
         x109 = (* (( (ptr) &var←c25604)+8)/* strokeWidth←v5544 */  ),  *(float*)&x109
         );
      };
SOURCE(4319, 36)
   {
      word pd110;
      pd110 = (* (( (ptr) (* (( (ptr) gf←c25636)+78)/* var←c21316 */  ))+12) );
      (void) ( *( (fPt) ((*  (ptr) pd110 ))))((* (( (ptr) &var←c25604)+4)/* dc←v5460 */  ), (word) (( (bPt) &var←c25604)+36)/* var←c22340 */ , pd110)
      ;
      };
   }

static void DoDrawEmptySquare←P2280(formal←c25700)
   word formal←c25700;
   {
   register ptr gf←c25668 =  (ptr) &globalframe;
   formal←c25700 = (formal←c25700 - 36);
   /* DoDrawEmptySquare: */ 
SOURCE(3870, 360)
SOURCE(3898, 38)
   {
      W2 var←c22372;
      var←c22372.f0 = (* (( (ptr) formal←c25700)+5) );
      var←c22372.f1 = (* (( (ptr) formal←c25700)+6) );
      {
         word pd111;
         pd111 = (* (( (ptr) (* (( (ptr) gf←c25668)+78)/* var←c21316 */  ))+21) );
         (void) ( *( (fPt) ((*  (ptr) pd111 ))))((* (( (ptr) formal←c25700)+4) ), var←c22372, pd111);
         };
      };
SOURCE(3938, 15)
   {
      word pd112;
      pd112 = (* (( (ptr) (* (( (ptr) gf←c25668)+78)/* var←c21316 */  ))+19) );
      (void) ( *( (fPt) ((*  (ptr) pd112 ))))((* ((( (ptr) formal←c25700)+4)) ), pd112);
      };
SOURCE(4000, 33)
   {
      word pd113;
      pd113 = (* (( (ptr) (* (( (ptr) gf←c25668)+78)/* var←c21316 */  ))+52) );
      (void) ( *( (fPt) ((*  (ptr) pd113 ))))((* (( (ptr) formal←c25700)+4) ), (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c25668)+78)
            /* var←c21316 */  ))+54) ) ), pd113);
      };
SOURCE(4035, 60)
   {
      W4 var←c22404;
      {
         word x114;
         *(float*)&var←c22404.f0 =  - (
            x114 = (* (( (ptr) formal←c25700)+11) ),  *(float*)&x114
            );
         };
      {
         word x115;
         *(float*)&var←c22404.f1 =  - (
            x115 = (* (( (ptr) formal←c25700)+11) ),  *(float*)&x115
            );
         };
      var←c22404.f2 = (* (( (ptr) formal←c25700)+7) );
      var←c22404.f3 = (* (( (ptr) formal←c25700)+7) );
      {
         word pd116;
         pd116 = (* (( (ptr) (* (( (ptr) gf←c25668)+78)/* var←c21316 */  ))+65) );
         (void) ( *( (fPt) ((*  (ptr) pd116 ))))((* (( (ptr) formal←c25700)+4) ), var←c22404, pd116);
         };
      };
SOURCE(4097, 33)
   {
      word pd117;
      pd117 = (* (( (ptr) (* (( (ptr) gf←c25668)+78)/* var←c21316 */  ))+52) );
      (void) ( *( (fPt) ((*  (ptr) pd117 ))))((* (( (ptr) formal←c25700)+4) ), (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c25668)+78)
            /* var←c21316 */  ))+55) ) ), pd117);
      };
SOURCE(4132, 98)
   {
      W4 var←c22436;
      {
         word x118;
         word x119;
         *(float*)&var←c22436.f0 = ( - (
            x118 = (* (( (ptr) formal←c25700)+11) ),  *(float*)&x118
            )) + (
            x119 = (* (( (ptr) formal←c25700)+8) ),  *(float*)&x119
            );
         };
      {
         word x120;
         word x121;
         *(float*)&var←c22436.f1 = ( - (
            x120 = (* (( (ptr) formal←c25700)+11) ),  *(float*)&x120
            )) + (
            x121 = (* (( (ptr) formal←c25700)+8) ),  *(float*)&x121
            );
         };
      {
         word x122;
         word x123;
         *(float*)&var←c22436.f2 = (
            x122 = (* (( (ptr) formal←c25700)+7) ),  *(float*)&x122
            ) - (
            x123 = (* (( (ptr) formal←c25700)+12) ),  *(float*)&x123
            );
         };
      {
         word x124;
         word x125;
         *(float*)&var←c22436.f3 = (
            x124 = (* (( (ptr) formal←c25700)+7) ),  *(float*)&x124
            ) - (
            x125 = (* (( (ptr) formal←c25700)+12) ),  *(float*)&x125
            );
         };
      {
         word pd126;
         pd126 = (* (( (ptr) (* (( (ptr) gf←c25668)+78)/* var←c21316 */  ))+65) );
         (void) ( *( (fPt) ((*  (ptr) pd126 ))))((* (( (ptr) formal←c25700)+4) ), var←c22436, pd126);
         };
      };
   }

static void DrawSpot←P540(formal←c0475, formal←c0476)
   word formal←c0475;
   W2 formal←c0476;
   {
   W9 var←c25732;
   /* declaration of dc←v5604 skipped */ 
   /* declaration of point←v5632 skipped */ 
   register ptr gf←c25764 =  (ptr) &globalframe;
   /* declaration of var←c22468 skipped */ 
   (* (( (ptr) &var←c25732)+4)/* dc←v5604 */  ) = formal←c0475;
   (*  (W2Pt) (( (ptr) &var←c25732)+5)/* point←v5632 */  ) = formal←c0476;
   /* DrawSpot: */ 
SOURCE(4361, 217)
   {
      word tmpAddr127;
      tmpAddr127 = (word) (( (ptr) &var←c25732)+7)/* var←c22468 */ ;
      (*  (ptr) tmpAddr127 ) = ( ((word)  (fPt) DoDrawSpot←P2340) );
      (* (( (ptr) tmpAddr127) + 1) ) = 1;
      };
SOURCE(4549, 29)
   {
      word pd128;
      pd128 = (* (( (ptr) (* (( (ptr) gf←c25764)+78)/* var←c21316 */  ))+12) );
      (void) ( *( (fPt) ((*  (ptr) pd128 ))))((* (( (ptr) &var←c25732)+4)/* dc←v5604 */  ), (word) (( (bPt) &var←c25732)+28)/* var←c22468 */ , pd128)
      ;
      };
   }

static void DoDrawSpot←P2340(formal←c25828)
   word formal←c25828;
   {
   register ptr gf←c25796 =  (ptr) &globalframe;
   formal←c25828 = (formal←c25828 - 28);
   /* DoDrawSpot: */ 
SOURCE(4422, 122)
SOURCE(4443, 36)
   {
      W2 var←c22500;
      var←c22500.f0 = (* (( (ptr) formal←c25828)+5) );
      var←c22500.f1 = (* (( (ptr) formal←c25828)+6) );
      {
         word pd129;
         pd129 = (* (( (ptr) (* (( (ptr) gf←c25796)+78)/* var←c21316 */  ))+21) );
         (void) ( *( (fPt) ((*  (ptr) pd129 ))))((* (( (ptr) formal←c25828)+4) ), var←c22500, pd129);
         };
      };
SOURCE(4481, 15)
   {
      word pd130;
      pd130 = (* (( (ptr) (* (( (ptr) gf←c25796)+78)/* var←c21316 */  ))+19) );
      (void) ( *( (fPt) ((*  (ptr) pd130 ))))((* ((( (ptr) formal←c25828)+4)) ), pd130);
      };
SOURCE(4498, 46)
   {
      W4 var←c22532;
      var←c22532.f0 = (*  (ptr) &fc20 );
      var←c22532.f1 = (*  (ptr) &fc20 );
      var←c22532.f2 = (*  (ptr) &fc131 );
      var←c22532.f3 = (*  (ptr) &fc131 );
      {
         word pd132;
         pd132 = (* (( (ptr) (* (( (ptr) gf←c25796)+78)/* var←c21316 */  ))+65) );
         (void) ( *( (fPt) ((*  (ptr) pd132 ))))((* (( (ptr) formal←c25828)+4) ), var←c22532, pd132);
         };
      };
   }

static void DrawLine←P600(dc←v5692, line←v5720, clippedBy←v5748, strokeWidth←v5776, zip←v5804)
   word dc←v5692;
   word line←v5720;
   W4 clippedBy←v5748;
   word strokeWidth←v5776;
   word zip←v5804;
   {
   register ptr gf←c25860 =  (ptr) &globalframe;
   word count←v8820;
   word ray←v8848 = 0;
   W2 params←v8876;
   W2 p1←v8904;
   W2 p2←v8932;
   W2 basePoint←v8960;
   W2 direction←v8988;
   /* DrawLine: */ 
SOURCE(4584, 720)
SOURCE(4816, 31)
   p1←v8904.f0 = clippedBy←v5748.f0;
   p1←v8904.f1 = clippedBy←v5748.f1;
SOURCE(4849, 59)
   {
      word x133;
      word x134;
      *(float*)&p2←v8932.f0 = (
         x133 = clippedBy←v5748.f0,  *(float*)&x133
         ) + (
         x134 = clippedBy←v5748.f2,  *(float*)&x134
         );
      };
   {
      word x135;
      word x136;
      *(float*)&p2←v8932.f1 = (
         x135 = clippedBy←v5748.f1,  *(float*)&x135
         ) + (
         x136 = clippedBy←v5748.f3,  *(float*)&x136
         );
      };
SOURCE(4910, 37)
   {
      word pd137;
      pd137 = (* (( (ptr) (* (( (ptr) gf←c25860)+79)/* var←c22564 */  ))+41) );
      (void) ( *( (fPt) ((*  (ptr) pd137 ))))((word) &basePoint←v8960, line←v5720, pd137);
      };
SOURCE(4949, 41)
   {
      word pd138;
      pd138 = (* (( (ptr) (* (( (ptr) gf←c25860)+79)/* var←c22564 */  ))+37) );
      (void) ( *( (fPt) ((*  (ptr) pd138 ))))((word) &direction←v8988, line←v5720, pd138);
      };
SOURCE(4992, 39)
   ray←v8848 = (word) AllocateRay←P1380(basePoint←v8960, direction←v8988);
SOURCE(5033, 70)
   {
      W3 var←c22596;
      {
         word pd139;
         pd139 = (* (( (ptr) (* (( (ptr) gf←c25860)+79)/* var←c22564 */  ))+52) );
         (void) ( *( (fPt) ((*  (ptr) pd139 ))))((word) &var←c22596, ray←v8848, p1←v8904.f0, p1←v8904.f1, p2←v8932.f0, p2←v8932.f1, pd139)
         ;
         };
      params←v8876 = (*  (W2Pt) (( (ptr) &var←c22596)+1) );
      count←v8820 = var←c22596.f0;
      };
SOURCE(5105, 171)
   if ((count←v8820 == 2)) {
SOURCE(5125, 36)
      {
         word pd140;
         pd140 = (* (( (ptr) (* (( (ptr) gf←c25860)+79)/* var←c22564 */  ))+53) );
         (void) ( *( (fPt) ((*  (ptr) pd140 ))))((word) &p1←v8904, ray←v8848, params←v8876.f0, pd140);
         };
SOURCE(5163, 36)
      {
         word pd141;
         pd141 = (* (( (ptr) (* (( (ptr) gf←c25860)+79)/* var←c22564 */  ))+53) );
         (void) ( *( (fPt) ((*  (ptr) pd141 ))))((word) &p2←v8932, ray←v8848, params←v8876.f1, pd141);
         };
SOURCE(5201, 38)
      {
         word pd142;
         pd142 = (* (( (ptr) (* (( (ptr) gf←c25860)+78)/* var←c21316 */  ))+68) );
         (void) ( *( (fPt) ((*  (ptr) pd142 ))))(dc←v5692, strokeWidth←v5776, pd142);
         };
SOURCE(5241, 35)
      {
         word pd143;
         pd143 = (* (( (ptr) (* (( (ptr) gf←c25860)+80)/* var←c22628 */  ))+13) );
         (void) ( *( (fPt) ((*  (ptr) pd143 ))))(dc←v5692, p1←v8904, p2←v8932, 0, zip←v5804, pd143);
         };
      };
SOURCE(5281, 23)
   (void) DoFreeRay←P1560((* (( (ptr) gf←c25860)+12)/* rayPool←v4092 */  ), ray←v8848);
   }

static void DrawLittleLine←P660(dc←v5864, line←v5892, point←v5920)
   word dc←v5864;
   word line←v5892;
   W2 point←v5920;
   {
   /* DrawLittleLine: */ 
   }

static void DrawFilledLoLeftSquare←P720(formal←c0477, formal←c0478, formal←c0479)
   word formal←c0477;
   W2 formal←c0478;
   word formal←c0479;
   {
   W10 var←c25892;
   /* declaration of dc←v5980 skipped */ 
   /* declaration of loLeft←v6008 skipped */ 
   /* declaration of side←v6036 skipped */ 
   register ptr gf←c25924 =  (ptr) &globalframe;
   /* declaration of var←c22660 skipped */ 
   (* (( (ptr) &var←c25892)+4)/* dc←v5980 */  ) = formal←c0477;
   (*  (W2Pt) (( (ptr) &var←c25892)+5)/* loLeft←v6008 */  ) = formal←c0478;
   (* (( (ptr) &var←c25892)+7)/* side←v6036 */  ) = formal←c0479;
   /* DrawFilledLoLeftSquare: */ 
SOURCE(5392, 248)
   {
      word tmpAddr144;
      tmpAddr144 = (word) (( (ptr) &var←c25892)+8)/* var←c22660 */ ;
      (*  (ptr) tmpAddr144 ) = ( ((word)  (fPt) DoDrawRect←P2400) );
      (* (( (ptr) tmpAddr144) + 1) ) = 1;
      };
SOURCE(5611, 29)
   {
      word pd145;
      pd145 = (* (( (ptr) (* (( (ptr) gf←c25924)+78)/* var←c21316 */  ))+12) );
      (void) ( *( (fPt) ((*  (ptr) pd145 ))))((* (( (ptr) &var←c25892)+4)/* dc←v5980 */  ), (word) (( (bPt) &var←c25892)+32)/* var←c22660 */ , pd145)
      ;
      };
   }

static void DoDrawRect←P2400(formal←c25988)
   word formal←c25988;
   {
   register ptr gf←c25956 =  (ptr) &globalframe;
   formal←c25988 = (formal←c25988 - 32);
   /* DoDrawRect: */ 
SOURCE(5480, 126)
SOURCE(5501, 38)
   {
      W2 var←c22692;
      var←c22692.f0 = (* (( (ptr) formal←c25988)+5) );
      var←c22692.f1 = (* (( (ptr) formal←c25988)+6) );
      {
         word pd146;
         pd146 = (* (( (ptr) (* (( (ptr) gf←c25956)+78)/* var←c21316 */  ))+21) );
         (void) ( *( (fPt) ((*  (ptr) pd146 ))))((* (( (ptr) formal←c25988)+4) ), var←c22692, pd146);
         };
      };
SOURCE(5541, 15)
   {
      word pd147;
      pd147 = (* (( (ptr) (* (( (ptr) gf←c25956)+78)/* var←c21316 */  ))+19) );
      (void) ( *( (fPt) ((*  (ptr) pd147 ))))((* ((( (ptr) formal←c25988)+4)) ), pd147);
      };
SOURCE(5558, 48)
   {
      W4 var←c22724;
      var←c22724.f0 = (*  (ptr) &fc20 );
      var←c22724.f1 = (*  (ptr) &fc20 );
      var←c22724.f2 = (* (( (ptr) formal←c25988)+7) );
      var←c22724.f3 = (* (( (ptr) formal←c25988)+7) );
      {
         word pd148;
         pd148 = (* (( (ptr) (* (( (ptr) gf←c25956)+78)/* var←c21316 */  ))+65) );
         (void) ( *( (fPt) ((*  (ptr) pd148 ))))((* (( (ptr) formal←c25988)+4) ), var←c22724, pd148);
         };
      };
   }

static void DrawCircle←P780(formal←c0480, circle←v6124)
   word formal←c0480;
   word circle←v6124;
   {
   W11 var←c26020;
   /* declaration of dc←v6096 skipped */ 
   register ptr gf←c26052 =  (ptr) &globalframe;
   /* declaration of var←c22756 skipped */ 
   /* declaration of leftSide←v9128 skipped */ 
   /* declaration of rightSide←v9156 skipped */ 
   (* (( (ptr) &var←c26020)+4)/* dc←v6096 */  ) = formal←c0480;
   /* DrawCircle: */ 
SOURCE(5646, 514)
   {
      word tmpAddr149;
      tmpAddr149 = (word) (( (ptr) &var←c26020)+5)/* var←c22756 */ ;
      (*  (ptr) tmpAddr149 ) = ( ((word)  (fPt) DoDrawCircle←P2460) );
      (* (( (ptr) tmpAddr149) + 1) ) = 1;
      };
SOURCE(6002, 61)
   {
      word x150;
      word x151;
      *(float*)(( (ptr) &var←c26020)+7) = (
         x150 = (*  (ptr) circle←v6124 ),  *(float*)&x150
         ) - (
         x151 = (* (( (ptr) circle←v6124)+2) ),  *(float*)&x151
         );
      };
   (* (( (ptr) &var←c26020)+8) ) = (* (( (ptr) circle←v6124)+1) );
SOURCE(6065, 62)
   {
      word x152;
      word x153;
      *(float*)(( (ptr) &var←c26020)+9) = (
         x152 = (*  (ptr) circle←v6124 ),  *(float*)&x152
         ) + (
         x153 = (* (( (ptr) circle←v6124)+2) ),  *(float*)&x153
         );
      };
   (* (( (ptr) &var←c26020)+10) ) = (* (( (ptr) circle←v6124)+1) );
SOURCE(6129, 31)
   {
      word pd154;
      pd154 = (* (( (ptr) (* (( (ptr) gf←c26052)+78)/* var←c21316 */  ))+12) );
      (void) ( *( (fPt) ((*  (ptr) pd154 ))))((* (( (ptr) &var←c26020)+4)/* dc←v6096 */  ), (word) (( (bPt) &var←c26020)+20)/* var←c22756 */ , pd154)
      ;
      };
   }

static void DoDrawCircle←P2460(formal←c26148)
   word formal←c26148;
   {
   W6 var←c26084;
   register ptr gf←c26116 =  (ptr) &globalframe;
   /* declaration of var←c22788 skipped */ 
   formal←c26148 = (formal←c26148 - 20);
   var←c26084.f0 = formal←c26148;
   /* DoDrawCircle: */ 
SOURCE(5739, 258)
   {
      word tmpAddr155;
      tmpAddr155 = (word) (( (ptr) &var←c26084)+4)/* var←c22788 */ ;
      (*  (ptr) tmpAddr155 ) = ( ((word)  (fPt) CirclePath←P2520) );
      (* (( (ptr) tmpAddr155) + 1) ) = 1;
      };
SOURCE(5894, 30)
   {
      word pd156;
      pd156 = (* (( (ptr) (* (( (ptr) gf←c26116)+78)/* var←c21316 */  ))+68) );
      (void) ( *( (fPt) ((*  (ptr) pd156 ))))((* (( (ptr) formal←c26148)+4) ), (*  (ptr) &fc131 ), pd156);
      };
SOURCE(5926, 30)
   {
      word pd157;
      pd157 = (* (( (ptr) (* (( (ptr) gf←c26116)+78)/* var←c21316 */  ))+69) );
      (void) ( *( (fPt) ((*  (ptr) pd157 ))))((* (( (ptr) formal←c26148)+4) ), 2, pd157);
      };
SOURCE(5958, 39)
   {
      word pd158;
      pd158 = (* (( (ptr) (* (( (ptr) gf←c26116)+78)/* var←c21316 */  ))+71) );
      (void) ( *( (fPt) ((*  (ptr) pd158 ))))((* (( (ptr) formal←c26148)+4) ), (word) (( (bPt) &var←c26084)+16)/* var←c22788 */ , 1, pd158)
      ;
      };
   }

static void CirclePath←P2520(moveTo←v17172, lineTo←v17200, curveTo←v17228, conicTo←v17256, arcTo←v17284, formal←c26180)
   word moveTo←v17172;
   word lineTo←v17200;
   word curveTo←v17228;
   word conicTo←v17256;
   word arcTo←v17284;
   word formal←c26180;
   {
   formal←c26180 = (formal←c26180 - 16);
   /* CirclePath: */ 
SOURCE(5762, 127)
SOURCE(5794, 32)
   {
      W2 var←c22820;
      var←c22820.f0 = (* (( (ptr) (*  (ptr) formal←c26180 ))+7) );
      var←c22820.f1 = (* (( (ptr) (*  (ptr) formal←c26180 ))+8) );
      (void) ( *( (fPt) ((*  (ptr) moveTo←v17172 ))))(var←c22820, moveTo←v17172);
      };
SOURCE(5828, 61)
   {
      W2 var←c22852;
      W2 var←c22884;
      var←c22852.f0 = (* (( (ptr) (*  (ptr) formal←c26180 ))+9) );
      var←c22852.f1 = (* (( (ptr) (*  (ptr) formal←c26180 ))+10) );
      var←c22884.f0 = (* (( (ptr) (*  (ptr) formal←c26180 ))+7) );
      var←c22884.f1 = (* (( (ptr) (*  (ptr) formal←c26180 ))+8) );
      (void) ( *( (fPt) ((*  (ptr) arcTo←v17284 ))))(var←c22852, var←c22884, arcTo←v17284);
      };
   }

static void DrawStarburst←P840(formal←c0481, formal←c0482, formal←c0483, formal←c0484)
   word formal←c0481;
   W2 formal←c0482;
   word formal←c0483;
   word formal←c0484;
   {
   W11 var←c26212;
   /* declaration of dc←v6184 skipped */ 
   /* declaration of point←v6212 skipped */ 
   /* declaration of scale←v6240 skipped */ 
   /* declaration of zip←v6268 skipped */ 
   register ptr gf←c26244 =  (ptr) &globalframe;
   /* declaration of var←c22916 skipped */ 
   (* (( (ptr) &var←c26212)+4)/* dc←v6184 */  ) = formal←c0481;
   (*  (W2Pt) (( (ptr) &var←c26212)+5)/* point←v6212 */  ) = formal←c0482;
   (* (( (ptr) &var←c26212)+7)/* scale←v6240 */  ) = formal←c0483;
   (* (( (ptr) &var←c26212)+8)/* zip←v6268 */  ) = formal←c0484;
   /* DrawStarburst: */ 
SOURCE(6346, 902)
   {
      word tmpAddr159;
      tmpAddr159 = (word) (( (ptr) &var←c26212)+9)/* var←c22916 */ ;
      (*  (ptr) tmpAddr159 ) = ( ((word)  (fPt) DoDrawGlow←P2580) );
      (* (( (ptr) tmpAddr159) + 1) ) = 1;
      };
SOURCE(7198, 50)
   if ((0 != (* (( (ptr) gf←c26244)+6)/* starBurstsOn←v3616 */  ))) {
SOURCE(7219, 29)
      {
         word pd160;
         pd160 = (* (( (ptr) (* (( (ptr) gf←c26244)+78)/* var←c21316 */  ))+12) );
         (void) ( *( (fPt) ((*  (ptr) pd160 ))))((* (( (ptr) &var←c26212)+4)/* dc←v6184 */  ), (word) (( (bPt) &var←c26212)+36)/* var←c22916 */ , pd160)
         ;
         };
      };
   }

static void DoDrawGlow←P2580(formal←c26308)
   word formal←c26308;
   {
   register ptr gf←c26276 =  (ptr) &globalframe;
   word leftX←v9348;
   word loX←v9376;
   word hiX←v9404;
   word rightX←v9432;
   word loY←v9460;
   word hiY←v9488;
   word scaledR←v9516;
   word scaledXR←v9544;
   word scaledYR←v9572;
   formal←c26308 = (formal←c26308 - 36);
   /* DoDrawGlow: */ 
SOURCE(6454, 736)
SOURCE(6551, 33)
   {
      word pd161;
      pd161 = (* (( (ptr) (* (( (ptr) gf←c26276)+78)/* var←c21316 */  ))+52) );
      (void) ( *( (fPt) ((*  (ptr) pd161 ))))((* (( (ptr) formal←c26308)+4) ), (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c26276)+78)
            /* var←c21316 */  ))+54) ) ), pd161);
      };
SOURCE(6586, 41)
   {
      word pd162;
      pd162 = (* (( (ptr) (* (( (ptr) gf←c26276)+78)/* var←c21316 */  ))+68) );
      (void) ( *( (fPt) ((*  (ptr) pd162 ))))((* (( (ptr) formal←c26308)+4) ), (* (( (ptr) gf←c26276)+7)/* starBurstWidth←v3644 */  ), pd162)
      ;
      };
SOURCE(6629, 17)
   {
      word x163;
      word x164;
      *(float*)&scaledR←v9516 = (
         x163 = (* (( (ptr) gf←c26276)+9)/* R←v3700 */  ),  *(float*)&x163
         ) * (
         x164 = (* (( (ptr) formal←c26308)+7) ),  *(float*)&x164
         );
      };
SOURCE(6648, 19)
   {
      word x165;
      word x166;
      *(float*)&scaledXR←v9544 = (
         x165 = (* (( (ptr) gf←c26276)+11)/* xR←v3812 */  ),  *(float*)&x165
         ) * (
         x166 = (* (( (ptr) formal←c26308)+7) ),  *(float*)&x166
         );
      };
SOURCE(6669, 19)
   {
      word x167;
      word x168;
      *(float*)&scaledYR←v9572 = (
         x167 = (* (( (ptr) gf←c26276)+10)/* yR←v3784 */  ),  *(float*)&x167
         ) * (
         x168 = (* (( (ptr) formal←c26308)+7) ),  *(float*)&x168
         );
      };
SOURCE(6690, 23)
   {
      word x169;
      word x170;
      *(float*)&leftX←v9348 = (
         x169 = (* (( (ptr) formal←c26308)+5) ),  *(float*)&x169
         ) - (
         x170 = scaledR←v9516,  *(float*)&x170
         );
      };
SOURCE(6715, 22)
   {
      word x171;
      word x172;
      *(float*)&loX←v9376 = (
         x171 = (* (( (ptr) formal←c26308)+5) ),  *(float*)&x171
         ) - (
         x172 = scaledXR←v9544,  *(float*)&x172
         );
      };
SOURCE(6739, 22)
   {
      word x173;
      word x174;
      *(float*)&hiX←v9404 = (
         x173 = (* (( (ptr) formal←c26308)+5) ),  *(float*)&x173
         ) + (
         x174 = scaledXR←v9544,  *(float*)&x174
         );
      };
SOURCE(6763, 24)
   {
      word x175;
      word x176;
      *(float*)&rightX←v9432 = (
         x175 = (* (( (ptr) formal←c26308)+5) ),  *(float*)&x175
         ) + (
         x176 = scaledR←v9516,  *(float*)&x176
         );
      };
SOURCE(6789, 22)
   {
      word x177;
      word x178;
      *(float*)&loY←v9460 = (
         x177 = (* (( (ptr) formal←c26308)+6) ),  *(float*)&x177
         ) - (
         x178 = scaledYR←v9572,  *(float*)&x178
         );
      };
SOURCE(6813, 22)
   {
      word x179;
      word x180;
      *(float*)&hiY←v9488 = (
         x179 = (* (( (ptr) formal←c26308)+6) ),  *(float*)&x179
         ) + (
         x180 = scaledYR←v9572,  *(float*)&x180
         );
      };
SOURCE(6837, 353)
   if ((0 != (* (( (ptr) gf←c26276)+8)/* tryDraw2d←v3672 */  ))) {
SOURCE(6857, 64)
      {
         W2 var←c22948;
         W2 var←c22980;
         var←c22948.f0 = leftX←v9348;
         var←c22948.f1 = (* (( (ptr) formal←c26308)+6) );
         var←c22980.f0 = rightX←v9432;
         var←c22980.f1 = (* (( (ptr) formal←c26308)+6) );
         {
            word pd181;
            pd181 = (* (( (ptr) (* (( (ptr) gf←c26276)+80)/* var←c22628 */  ))+13) );
            (void) ( *( (fPt) ((*  (ptr) pd181 ))))((* (( (ptr) formal←c26308)+4) ), var←c22948, var←c22980, 0, (* (( (ptr) formal←c26308)+8)
                ), pd181);
            };
         };
SOURCE(6923, 51)
      {
         W2 var←c23012;
         W2 var←c23044;
         var←c23012.f0 = loX←v9376;
         var←c23012.f1 = loY←v9460;
         var←c23044.f0 = hiX←v9404;
         var←c23044.f1 = hiY←v9488;
         {
            word pd182;
            pd182 = (* (( (ptr) (* (( (ptr) gf←c26276)+80)/* var←c22628 */  ))+13) );
            (void) ( *( (fPt) ((*  (ptr) pd182 ))))((* (( (ptr) formal←c26308)+4) ), var←c23012, var←c23044, 0, (* (( (ptr) formal←c26308)+8)
                ), pd182);
            };
         };
SOURCE(6976, 51)
      {
         W2 var←c23076;
         W2 var←c23108;
         var←c23076.f0 = hiX←v9404;
         var←c23076.f1 = loY←v9460;
         var←c23108.f0 = loX←v9376;
         var←c23108.f1 = hiY←v9488;
         {
            word pd183;
            pd183 = (* (( (ptr) (* (( (ptr) gf←c26276)+80)/* var←c22628 */  ))+13) );
            (void) ( *( (fPt) ((*  (ptr) pd183 ))))((* (( (ptr) formal←c26308)+4) ), var←c23076, var←c23108, 0, (* (( (ptr) formal←c26308)+8)
                ), pd183);
            };
         };
      }
   else {
SOURCE(7038, 58)
      {
         W2 var←c23140;
         W2 var←c23172;
         var←c23140.f0 = leftX←v9348;
         var←c23140.f1 = (* (( (ptr) formal←c26308)+6) );
         var←c23172.f0 = rightX←v9432;
         var←c23172.f1 = (* (( (ptr) formal←c26308)+6) );
         {
            word pd184;
            pd184 = (* (( (ptr) (* (( (ptr) gf←c26276)+78)/* var←c21316 */  ))+73) );
            (void) ( *( (fPt) ((*  (ptr) pd184 ))))((* (( (ptr) formal←c26308)+4) ), var←c23140, var←c23172, pd184);
            };
         };
SOURCE(7098, 45)
      {
         W2 var←c23204;
         W2 var←c23236;
         var←c23204.f0 = loX←v9376;
         var←c23204.f1 = loY←v9460;
         var←c23236.f0 = hiX←v9404;
         var←c23236.f1 = hiY←v9488;
         {
            word pd185;
            pd185 = (* (( (ptr) (* (( (ptr) gf←c26276)+78)/* var←c21316 */  ))+73) );
            (void) ( *( (fPt) ((*  (ptr) pd185 ))))((* (( (ptr) formal←c26308)+4) ), var←c23204, var←c23236, pd185);
            };
         };
SOURCE(7145, 45)
      {
         W2 var←c23268;
         W2 var←c23300;
         var←c23268.f0 = hiX←v9404;
         var←c23268.f1 = loY←v9460;
         var←c23300.f0 = loX←v9376;
         var←c23300.f1 = hiY←v9488;
         {
            word pd186;
            pd186 = (* (( (ptr) (* (( (ptr) gf←c26276)+78)/* var←c21316 */  ))+73) );
            (void) ( *( (fPt) ((*  (ptr) pd186 ))))((* (( (ptr) formal←c26308)+4) ), var←c23268, var←c23300, pd186);
            };
         };
      };
   }

static void DrawArrow←P900(dc←v6328, formal←c0485, base←v6384, strokeWidth←v6412)
   word dc←v6328;
   W2 formal←c0485;
   W2 base←v6384;
   word strokeWidth←v6412;
   {
   W14 var←c26340;
   /* declaration of tip←v6356 skipped */ 
   register ptr gf←c26372 =  (ptr) &globalframe;
   /* declaration of var←c23332 skipped */ 
   /* declaration of axis←v9644 skipped */ 
   /* declaration of perp←v9672 skipped */ 
   /* declaration of height←v9700 skipped */ 
   /* declaration of halfWidth←v9728 skipped */ 
   (*  (W2Pt) (( (ptr) &var←c26340)+4)/* tip←v6356 */  ) = formal←c0485;
   /* DrawArrow: */ 
SOURCE(7254, 565)
   {
      word tmpAddr187;
      tmpAddr187 = (word) (( (ptr) &var←c26340)+6)/* var←c23332 */ ;
      (*  (ptr) tmpAddr187 ) = ( ((word)  (fPt) DrawArrowAux←P2640) );
      (* (( (ptr) tmpAddr187) + 1) ) = 1;
      };
SOURCE(7590, 30)
   {
      word x188;
      word x189;
      *(float*)(( (ptr) &var←c26340)+12)/* height←v9700 */  = (
         x188 = strokeWidth←v6412,  *(float*)&x188
         ) + (
         x189 = (*  (ptr) &fc94 ),  *(float*)&x189
         );
      };
SOURCE(7622, 33)
   {
      word x190;
      word x192;
      *(float*)(( (ptr) &var←c26340)+13)/* halfWidth←v9728 */  = (
         x190 = strokeWidth←v6412,  *(float*)&x190
         ) + (
         x192 = (*  (ptr) &fc191 ),  *(float*)&x192
         );
      };
SOURCE(7657, 25)
   if (XR←EqualWords((( (ptr) &var←c26340)+4)/* tip←v6356 */ , &base←v6384, 2)) {
SOURCE(7676, 6)
      return;
      };
SOURCE(7684, 42)
   {
      W2 var←c23364;
      {
         word pd193;
         pd193 = (* (( (ptr) (* (( (ptr) gf←c26372)+81)/* var←c23396 */  ))+11) );
         (void) ( *( (fPt) ((*  (ptr) pd193 ))))((word) &var←c23364, (*  (W2Pt) (( (ptr) &var←c26340)+4)/* tip←v6356 */  ), base←v6384, pd193)
         ;
         };
      {
         W2 var←c0230;
         {
            word pd194;
            pd194 = (* (( (ptr) (* (( (ptr) gf←c26372)+81)/* var←c23396 */  ))+13) );
            (void) ( *( (fPt) ((*  (ptr) pd194 ))))((word) &var←c0230, var←c23364, pd194);
            };
         (*  (W2Pt) (( (ptr) &var←c26340)+8)/* axis←v9644 */  ) = var←c0230;
         };
      };
SOURCE(7728, 24)
   (* (( (ptr) &var←c26340)+10) ) = (* (( (ptr) &var←c26340)+9) );
   {
      word x195;
      *(float*)(( (ptr) &var←c26340)+11) =  - (
         x195 = (* (( (ptr) &var←c26340)+8) ),  *(float*)&x195
         );
      };
SOURCE(7754, 65)
   {
      word pd196;
      pd196 = (* (( (ptr) (* (( (ptr) gf←c26372)+78)/* var←c21316 */  ))+62) );
      (void) ( *( (fPt) ((*  (ptr) pd196 ))))(dc←v6328, (word) (( (bPt) &var←c26340)+24)/* var←c23332 */ , 0, pd196);
      };
   }

static void DrawArrowAux←P2640(moveTo←v17556, lineTo←v17584, curveTo←v17612, conicTo←v17640, arcTo←v17668, formal←c26436)
   word moveTo←v17556;
   word lineTo←v17584;
   word curveTo←v17612;
   word conicTo←v17640;
   word arcTo←v17668;
   word formal←c26436;
   {
   register ptr gf←c26404 =  (ptr) &globalframe;
   formal←c26436 = (formal←c26436 - 24);
   /* DrawArrowAux: */ 
SOURCE(7362, 195)
SOURCE(7396, 11)
   (void) ( *( (fPt) ((*  (ptr) moveTo←v17556 ))))((*  (W2Pt) ((( (ptr) formal←c26436)+4)) ), moveTo←v17556);
SOURCE(7409, 66)
   {
      W2 var←c23428;
      {
         W2 var←c23460;
         {
            W2 var←c23492;
            W2 var←c23524;
            {
               word pd197;
               pd197 = (* (( (ptr) (* (( (ptr) gf←c26404)+81)/* var←c23396 */  ))+12) );
               (void) ( *( (fPt) ((*  (ptr) pd197 ))))((word) &var←c23492, (*  (W2Pt) (( (ptr) formal←c26436)+8) ), (* (( (ptr) formal←c26436)+12)
                   ), pd197);
               };
            {
               word pd198;
               pd198 = (* (( (ptr) (* (( (ptr) gf←c26404)+81)/* var←c23396 */  ))+12) );
               (void) ( *( (fPt) ((*  (ptr) pd198 ))))((word) &var←c23524, (*  (W2Pt) (( (ptr) formal←c26436)+10) ), (* (( (ptr) formal←c26436)+13)
                   ), pd198);
               };
            {
               W2 var←c0242;
               {
                  word pd199;
                  pd199 = (* (( (ptr) (* (( (ptr) gf←c26404)+81)/* var←c23396 */  ))+10) );
                  (void) ( *( (fPt) ((*  (ptr) pd199 ))))((word) &var←c0242, var←c23492, var←c23524, pd199);
                  };
               var←c23460 = var←c0242;
               };
            };
         {
            W2 var←c0243;
            {
               word pd200;
               pd200 = (* (( (ptr) (* (( (ptr) gf←c26404)+81)/* var←c23396 */  ))+11) );
               (void) ( *( (fPt) ((*  (ptr) pd200 ))))((word) &var←c0243, (*  (W2Pt) (( (ptr) formal←c26436)+4) ), var←c23460, pd200);
               };
            var←c23428 = var←c0243;
            };
         };
      (void) ( *( (fPt) ((*  (ptr) lineTo←v17584 ))))(var←c23428, lineTo←v17584);
      };
SOURCE(7477, 67)
   {
      W2 var←c23556;
      {
         W2 var←c23588;
         {
            W2 var←c23620;
            W2 var←c23652;
            {
               word pd201;
               pd201 = (* (( (ptr) (* (( (ptr) gf←c26404)+81)/* var←c23396 */  ))+12) );
               (void) ( *( (fPt) ((*  (ptr) pd201 ))))((word) &var←c23620, (*  (W2Pt) (( (ptr) formal←c26436)+8) ), (* (( (ptr) formal←c26436)+12)
                   ), pd201);
               };
            {
               word pd202;
               word x203;
               float tf204;
               pd202 = (* (( (ptr) (* (( (ptr) gf←c26404)+81)/* var←c23396 */  ))+12) );
               (void) ( *( (fPt) ((*  (ptr) pd202 ))))((word) &var←c23652, (*  (W2Pt) (( (ptr) formal←c26436)+10) ), (
                     tf204 =  - (
                        x203 = (* (( (ptr) formal←c26436)+13) ),  *(float*)&x203
                        ),  *(word*)&tf204
                     ), pd202);
               };
            {
               W2 var←c0250;
               {
                  word pd205;
                  pd205 = (* (( (ptr) (* (( (ptr) gf←c26404)+81)/* var←c23396 */  ))+10) );
                  (void) ( *( (fPt) ((*  (ptr) pd205 ))))((word) &var←c0250, var←c23620, var←c23652, pd205);
                  };
               var←c23588 = var←c0250;
               };
            };
         {
            W2 var←c0251;
            {
               word pd206;
               pd206 = (* (( (ptr) (* (( (ptr) gf←c26404)+81)/* var←c23396 */  ))+11) );
               (void) ( *( (fPt) ((*  (ptr) pd206 ))))((word) &var←c0251, (*  (W2Pt) (( (ptr) formal←c26436)+4) ), var←c23588, pd206);
               };
            var←c23556 = var←c0251;
            };
         };
      (void) ( *( (fPt) ((*  (ptr) lineTo←v17584 ))))(var←c23556, lineTo←v17584);
      };
SOURCE(7546, 11)
   (void) ( *( (fPt) ((*  (ptr) lineTo←v17584 ))))((*  (W2Pt) ((( (ptr) formal←c26436)+4)) ), lineTo←v17584);
   }

static void ArrowSize←P960(formal←c0255, strokeWidth←v6472)
   word formal←c0255;
   word strokeWidth←v6472;
   {
   word height←v6516;
   word halfWidth←v6544;
   /* ArrowSize: */ 
SOURCE(7823, 134)
SOURCE(7904, 24)
   {
      word x207;
      word x208;
      *(float*)&height←v6516 = (
         x207 = strokeWidth←v6472,  *(float*)&x207
         ) + (
         x208 = (*  (ptr) &fc94 ),  *(float*)&x208
         );
      };
SOURCE(7930, 27)
   {
      word x209;
      word x210;
      *(float*)&halfWidth←v6544 = (
         x209 = strokeWidth←v6472,  *(float*)&x209
         ) + (
         x210 = (*  (ptr) &fc191 ),  *(float*)&x210
         );
      };
   /* removed tail goto */ 
   (*  (ptr) formal←c0255 ) = height←v6516;
   (* (( (ptr) formal←c0255)+1) ) = halfWidth←v6544;
   return;
   }

static void DrawCaret←P1020(formal←c0486, formal←c0487, normal←v6660, scale←v6688)
   word formal←c0486;
   W2 formal←c0487;
   W2 normal←v6660;
   word scale←v6688;
   {
   W13 var←c26468;
   /* declaration of dc←v6604 skipped */ 
   /* declaration of point←v6632 skipped */ 
   register ptr gf←c26500 =  (ptr) &globalframe;
   /* declaration of var←c23684 skipped */ 
   W2 caretDirection←v9828;
   /* declaration of point1←v9856 skipped */ 
   /* declaration of point2←v9884 skipped */ 
   W2 midPoint←v9912;
   (* (( (ptr) &var←c26468)+4)/* dc←v6604 */  ) = formal←c0486;
   (*  (W2Pt) (( (ptr) &var←c26468)+5)/* point←v6632 */  ) = formal←c0487;
   /* DrawCaret: */ 
SOURCE(7962, 811)
   {
      word tmpAddr211;
      tmpAddr211 = (word) (( (ptr) &var←c26468)+7)/* var←c23684 */ ;
      (*  (ptr) tmpAddr211 ) = ( ((word)  (fPt) DoDrawCaret←P2700) );
      (* (( (ptr) tmpAddr211) + 1) ) = 1;
      };
SOURCE(8378, 44)
   {
      word pd212;
      pd212 = (* (( (ptr) (* (( (ptr) gf←c26500)+81)/* var←c23396 */  ))+13) );
      (void) ( *( (fPt) ((*  (ptr) pd212 ))))((word) &caretDirection←v9828, normal←v6660, pd212);
      };
SOURCE(8424, 82)
   {
      W2 var←c23716;
      {
         word pd213;
         word x215;
         word x216;
         float tf217;
         pd213 = (* (( (ptr) (* (( (ptr) gf←c26500)+81)/* var←c23396 */  ))+12) );
         (void) ( *( (fPt) ((*  (ptr) pd213 ))))((word) &var←c23716, caretDirection←v9828, (
               tf217 = (
                  x215 = (*  (ptr) &fc214 ),  *(float*)&x215
                  ) * (
                  x216 = scale←v6688,  *(float*)&x216
                  ),  *(word*)&tf217
               ), pd213);
         };
      {
         W2 var←c0268;
         {
            word pd218;
            pd218 = (* (( (ptr) (* (( (ptr) gf←c26500)+81)/* var←c23396 */  ))+10) );
            (void) ( *( (fPt) ((*  (ptr) pd218 ))))((word) &var←c0268, (*  (W2Pt) (( (ptr) &var←c26468)+5)/* point←v6632 */  ), var←c23716, pd218)
            ;
            };
         midPoint←v9912 = var←c0268;
         };
      };
SOURCE(8508, 65)
   {
      word pd219;
      word x220;
      word x221;
      word x222;
      float tf223;
      pd219 = (* (( (ptr) (* (( (ptr) gf←c26500)+81)/* var←c23396 */  ))+12) );
      (void) ( *( (fPt) ((*  (ptr) pd219 ))))((word) &caretDirection←v9828, caretDirection←v9828, (
            tf223 = ((
               x220 = (*  (ptr) &fc17 ),  *(float*)&x220
               ) / (
               x221 = (*  (ptr) &fc67 ),  *(float*)&x221
               )) * (
               x222 = scale←v6688,  *(float*)&x222
               ),  *(word*)&tf223
            ), pd219);
      };
SOURCE(8575, 40)
   {
      word x224;
      word x225;
      *(float*)(( (ptr) &var←c26468)+9) = (
         x224 = midPoint←v9912.f0,  *(float*)&x224
         ) + (
         x225 = caretDirection←v9828.f1,  *(float*)&x225
         );
      };
SOURCE(8617, 40)
   {
      word x226;
      word x227;
      *(float*)(( (ptr) &var←c26468)+10) = (
         x226 = midPoint←v9912.f1,  *(float*)&x226
         ) - (
         x227 = caretDirection←v9828.f0,  *(float*)&x227
         );
      };
SOURCE(8659, 40)
   {
      word x228;
      word x229;
      *(float*)(( (ptr) &var←c26468)+11) = (
         x228 = midPoint←v9912.f0,  *(float*)&x228
         ) - (
         x229 = caretDirection←v9828.f1,  *(float*)&x229
         );
      };
SOURCE(8701, 40)
   {
      word x230;
      word x231;
      *(float*)(( (ptr) &var←c26468)+12) = (
         x230 = midPoint←v9912.f1,  *(float*)&x230
         ) + (
         x231 = caretDirection←v9828.f0,  *(float*)&x231
         );
      };
SOURCE(8743, 30)
   {
      word pd232;
      pd232 = (* (( (ptr) (* (( (ptr) gf←c26500)+78)/* var←c21316 */  ))+12) );
      (void) ( *( (fPt) ((*  (ptr) pd232 ))))((* (( (ptr) &var←c26468)+4)/* dc←v6604 */  ), (word) (( (bPt) &var←c26468)+28)/* var←c23684 */ , pd232)
      ;
      };
   }

static void DoDrawCaret←P2700(formal←c26596)
   word formal←c26596;
   {
   W6 var←c26532;
   register ptr gf←c26564 =  (ptr) &globalframe;
   /* declaration of var←c23748 skipped */ 
   formal←c26596 = (formal←c26596 - 28);
   var←c26532.f0 = formal←c26596;
   /* DoDrawCaret: */ 
SOURCE(8198, 174)
   {
      word tmpAddr233;
      tmpAddr233 = (word) (( (ptr) &var←c26532)+4)/* var←c23748 */ ;
      (*  (ptr) tmpAddr233 ) = ( ((word)  (fPt) CaretPath←P2760) );
      (* (( (ptr) tmpAddr233) + 1) ) = 1;
      };
SOURCE(8301, 30)
   {
      word pd234;
      pd234 = (* (( (ptr) (* (( (ptr) gf←c26564)+78)/* var←c21316 */  ))+68) );
      (void) ( *( (fPt) ((*  (ptr) pd234 ))))((* (( (ptr) formal←c26596)+4) ), (*  (ptr) &fc20 ), pd234);
      };
SOURCE(8333, 39)
   {
      word pd235;
      pd235 = (* (( (ptr) (* (( (ptr) gf←c26564)+78)/* var←c21316 */  ))+71) );
      (void) ( *( (fPt) ((*  (ptr) pd235 ))))((* (( (ptr) formal←c26596)+4) ), (word) (( (bPt) &var←c26532)+16)/* var←c23748 */ , 0, pd235)
      ;
      };
   }

static void CaretPath←P2760(moveTo←v18568, lineTo←v18596, curveTo←v18624, conicTo←v18652, arcTo←v18680, formal←c26628)
   word moveTo←v18568;
   word lineTo←v18596;
   word curveTo←v18624;
   word conicTo←v18652;
   word arcTo←v18680;
   word formal←c26628;
   {
   formal←c26628 = (formal←c26628 - 16);
   /* CaretPath: */ 
SOURCE(8220, 76)
SOURCE(8251, 14)
   (void) ( *( (fPt) ((*  (ptr) moveTo←v18568 ))))((*  (W2Pt) ((( (ptr) (*  (ptr) formal←c26628 ))+9)) ), moveTo←v18568);
SOURCE(8267, 13)
   (void) ( *( (fPt) ((*  (ptr) lineTo←v18596 ))))((*  (W2Pt) ((( (ptr) (*  (ptr) formal←c26628 ))+5)) ), lineTo←v18596);
SOURCE(8282, 14)
   (void) ( *( (fPt) ((*  (ptr) lineTo←v18596 ))))((*  (W2Pt) ((( (ptr) (*  (ptr) formal←c26628 ))+11)) ), lineTo←v18596);
   }

static void DrawAnchor←P1080(formal←c0488, formal←c0489, formal←c0490, formal←c0491)
   word formal←c0488;
   W2 formal←c0489;
   W2 formal←c0490;
   word formal←c0491;
   {
   W12 var←c26660;
   /* declaration of dc←v6748 skipped */ 
   /* declaration of point←v6776 skipped */ 
   /* declaration of normal←v6804 skipped */ 
   /* declaration of scale←v6832 skipped */ 
   register ptr gf←c26692 =  (ptr) &globalframe;
   /* declaration of var←c23780 skipped */ 
   (* (( (ptr) &var←c26660)+4)/* dc←v6748 */  ) = formal←c0488;
   (*  (W2Pt) (( (ptr) &var←c26660)+5)/* point←v6776 */  ) = formal←c0489;
   (*  (W2Pt) (( (ptr) &var←c26660)+7)/* normal←v6804 */  ) = formal←c0490;
   (* (( (ptr) &var←c26660)+9)/* scale←v6832 */  ) = formal←c0491;
   /* DrawAnchor: */ 
SOURCE(8779, 1220)
   {
      word tmpAddr236;
      tmpAddr236 = (word) (( (ptr) &var←c26660)+10)/* var←c23780 */ ;
      (*  (ptr) tmpAddr236 ) = ( ((word)  (fPt) DoDrawAnchor←P2820) );
      (* (( (ptr) tmpAddr236) + 1) ) = 1;
      };
SOURCE(9968, 31)
   {
      word pd237;
      pd237 = (* (( (ptr) (* (( (ptr) gf←c26692)+78)/* var←c21316 */  ))+12) );
      (void) ( *( (fPt) ((*  (ptr) pd237 ))))((* (( (ptr) &var←c26660)+4)/* dc←v6748 */  ), (word) (( (bPt) &var←c26660)+40)/* var←c23780 */ , pd237)
      ;
      };
   }

static void DoDrawAnchor←P2820(formal←c26788)
   word formal←c26788;
   {
   W11 var←c26724;
   register ptr gf←c26756 =  (ptr) &globalframe;
   /* declaration of var←c23812 skipped */ 
   word side←v10132;
   word insideWing←v10160;
   word width←v10188;
   word height←v10216;
   /* declaration of bottom←v10244 skipped */ 
   /* declaration of stroke←v10272 skipped */ 
   /* declaration of nearX←v10300 skipped */ 
   /* declaration of midX←v10328 skipped */ 
   /* declaration of farX←v10356 skipped */ 
   word degrees←v10384;
   formal←c26788 = (formal←c26788 - 40);
   (*  (ptr) &var←c26724 ) = formal←c26788;
   /* DoDrawAnchor: */ 
SOURCE(8877, 1086)
   {
      word tmpAddr238;
      tmpAddr238 = (word) (( (ptr) &var←c26724)+4)/* var←c23812 */ ;
      (*  (ptr) tmpAddr238 ) = ( ((word)  (fPt) ArmPath←P2880) );
      (* (( (ptr) tmpAddr238) + 1) ) = 1;
      };
SOURCE(9056, 22)
   {
      word x240;
      word x241;
      *(float*)&side←v10132 = (
         x240 = (*  (ptr) &fc239 ),  *(float*)&x240
         ) * (
         x241 = (* (( (ptr) formal←c26788)+9) ),  *(float*)&x241
         );
      };
SOURCE(9080, 28)
   {
      word x242;
      word x243;
      *(float*)&insideWing←v10160 = (
         x242 = (*  (ptr) &fc21 ),  *(float*)&x242
         ) * (
         x243 = (* (( (ptr) formal←c26788)+9) ),  *(float*)&x243
         );
      };
SOURCE(9110, 23)
   {
      word x244;
      word x245;
      *(float*)&width←v10188 = (
         x244 = (*  (ptr) &fc17 ),  *(float*)&x244
         ) * (
         x245 = (* (( (ptr) formal←c26788)+9) ),  *(float*)&x245
         );
      };
SOURCE(9135, 24)
   {
      word x246;
      word x247;
      *(float*)&height←v10216 = (
         x246 = (*  (ptr) &fc214 ),  *(float*)&x246
         ) * (
         x247 = (* (( (ptr) formal←c26788)+9) ),  *(float*)&x247
         );
      };
SOURCE(9161, 25)
   {
      word x249;
      word x250;
      *(float*)(( (ptr) &var←c26724)+6)/* bottom←v10244 */  = (
         x249 = (*  (ptr) &fc248 ),  *(float*)&x249
         ) * (
         x250 = (* (( (ptr) formal←c26788)+9) ),  *(float*)&x250
         );
      };
SOURCE(9188, 24)
   {
      word x251;
      word x252;
      *(float*)(( (ptr) &var←c26724)+7)/* stroke←v10272 */  = (
         x251 = (*  (ptr) &fc25 ),  *(float*)&x251
         ) * (
         x252 = (* (( (ptr) formal←c26788)+9) ),  *(float*)&x252
         );
      };
SOURCE(9275, 36)
   {
      W2 var←c23844;
      var←c23844.f0 = (* (( (ptr) formal←c26788)+5) );
      var←c23844.f1 = (* (( (ptr) formal←c26788)+6) );
      {
         word pd253;
         pd253 = (* (( (ptr) (* (( (ptr) gf←c26756)+78)/* var←c21316 */  ))+21) );
         (void) ( *( (fPt) ((*  (ptr) pd253 ))))((* (( (ptr) formal←c26788)+4) ), var←c23844, pd253);
         };
      };
SOURCE(9343, 50)
   {
      word pd254;
      word x255;
      word x257;
      pd254 = (* (( (ptr) (* (( (ptr) gf←c26756)+81)/* var←c23396 */  ))+6) );
      *(float*)&degrees←v10384 = (
         x255 = (word) ( *( (fPt) ((*  (ptr) pd254 ))))((*  (W2Pt) ((( (ptr) formal←c26788)+7)) ), pd254),  *(float*)&x255
         ) + (
         x257 = (*  (ptr) &fc256 ),  *(float*)&x257
         );
      };
SOURCE(9395, 15)
   {
      word pd258;
      pd258 = (* (( (ptr) (* (( (ptr) gf←c26756)+78)/* var←c21316 */  ))+19) );
      (void) ( *( (fPt) ((*  (ptr) pd258 ))))((* ((( (ptr) formal←c26788)+4)) ), pd258);
      };
SOURCE(9412, 58)
   {
      float tf259;
      word x260;
      word x262;
      if ((FABS((
            x260 = degrees←v10384,  *(float*)&x260
            ), tf259) > (
         x262 = (*  (ptr) &fc261 ),  *(float*)&x262
         ))) {
SOURCE(9443, 27)
         {
            word pd263;
            pd263 = (* (( (ptr) (* (( (ptr) gf←c26756)+78)/* var←c21316 */  ))+17) );
            (void) ( *( (fPt) ((*  (ptr) pd263 ))))((* (( (ptr) formal←c26788)+4) ), degrees←v10384, pd263);
            };
         };
      };
SOURCE(9472, 33)
   {
      word pd264;
      pd264 = (* (( (ptr) (* (( (ptr) gf←c26756)+78)/* var←c21316 */  ))+52) );
      (void) ( *( (fPt) ((*  (ptr) pd264 ))))((* (( (ptr) formal←c26788)+4) ), (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c26756)+78)
            /* var←c21316 */  ))+54) ) ), pd264);
      };
SOURCE(9507, 31)
   {
      word pd265;
      pd265 = (* (( (ptr) (* (( (ptr) gf←c26756)+78)/* var←c21316 */  ))+69) );
      (void) ( *( (fPt) ((*  (ptr) pd265 ))))((* (( (ptr) formal←c26788)+4) ), 0, pd265);
      };
SOURCE(9540, 32)
   {
      word pd266;
      pd266 = (* (( (ptr) (* (( (ptr) gf←c26756)+78)/* var←c21316 */  ))+68) );
      (void) ( *( (fPt) ((*  (ptr) pd266 ))))((* (( (ptr) formal←c26788)+4) ), (* (( (ptr) formal←c26788)+9) ), pd266);
      };
SOURCE(9574, 52)
   {
      W2 var←c23876;
      W2 var←c23908;
      {
         word x267;
         *(float*)&var←c23876.f0 =  - (
            x267 = side←v10132,  *(float*)&x267
            );
         };
      {
         word x268;
         *(float*)&var←c23876.f1 =  - (
            x268 = side←v10132,  *(float*)&x268
            );
         };
      {
         word x269;
         *(float*)&var←c23908.f0 =  - (
            x269 = side←v10132,  *(float*)&x269
            );
         };
      var←c23908.f1 = side←v10132;
      {
         word pd270;
         pd270 = (* (( (ptr) (* (( (ptr) gf←c26756)+78)/* var←c21316 */  ))+73) );
         (void) ( *( (fPt) ((*  (ptr) pd270 ))))((* (( (ptr) formal←c26788)+4) ), var←c23876, var←c23908, pd270);
         };
      };
SOURCE(9628, 50)
   {
      W2 var←c23940;
      W2 var←c23972;
      {
         word x271;
         *(float*)&var←c23940.f0 =  - (
            x271 = side←v10132,  *(float*)&x271
            );
         };
      var←c23940.f1 = side←v10132;
      var←c23972.f0 = side←v10132;
      var←c23972.f1 = side←v10132;
      {
         word pd272;
         pd272 = (* (( (ptr) (* (( (ptr) gf←c26756)+78)/* var←c21316 */  ))+73) );
         (void) ( *( (fPt) ((*  (ptr) pd272 ))))((* (( (ptr) formal←c26788)+4) ), var←c23940, var←c23972, pd272);
         };
      };
SOURCE(9680, 50)
   {
      W2 var←c24004;
      W2 var←c24036;
      var←c24004.f0 = side←v10132;
      var←c24004.f1 = side←v10132;
      var←c24036.f0 = side←v10132;
      {
         word x273;
         *(float*)&var←c24036.f1 =  - (
            x273 = side←v10132,  *(float*)&x273
            );
         };
      {
         word pd274;
         pd274 = (* (( (ptr) (* (( (ptr) gf←c26756)+78)/* var←c21316 */  ))+73) );
         (void) ( *( (fPt) ((*  (ptr) pd274 ))))((* (( (ptr) formal←c26788)+4) ), var←c24004, var←c24036, pd274);
         };
      };
SOURCE(9732, 52)
   {
      W2 var←c24068;
      W2 var←c24100;
      var←c24068.f0 = side←v10132;
      {
         word x275;
         *(float*)&var←c24068.f1 =  - (
            x275 = side←v10132,  *(float*)&x275
            );
         };
      {
         word x276;
         *(float*)&var←c24100.f0 =  - (
            x276 = side←v10132,  *(float*)&x276
            );
         };
      {
         word x277;
         *(float*)&var←c24100.f1 =  - (
            x277 = side←v10132,  *(float*)&x277
            );
         };
      {
         word pd278;
         pd278 = (* (( (ptr) (* (( (ptr) gf←c26756)+78)/* var←c21316 */  ))+73) );
         (void) ( *( (fPt) ((*  (ptr) pd278 ))))((* (( (ptr) formal←c26788)+4) ), var←c24068, var←c24100, pd278);
         };
      };
SOURCE(9786, 12)
   (* (( (ptr) &var←c26724)+8)/* nearX←v10300 */  ) = side←v10132;
SOURCE(9800, 17)
   (* (( (ptr) &var←c26724)+9)/* midX←v10328 */  ) = insideWing←v10160;
SOURCE(9819, 23)
   {
      word x279;
      word x280;
      *(float*)(( (ptr) &var←c26724)+10)/* farX←v10356 */  = (
         x279 = insideWing←v10160,  *(float*)&x279
         ) + (
         x280 = width←v10188,  *(float*)&x280
         );
      };
SOURCE(9844, 28)
   {
      word pd281;
      pd281 = (* (( (ptr) (* (( (ptr) gf←c26756)+78)/* var←c21316 */  ))+62) );
      (void) ( *( (fPt) ((*  (ptr) pd281 ))))((* (( (ptr) formal←c26788)+4) ), (word) (( (bPt) &var←c26724)+16)/* var←c23812 */ , 0, pd281)
      ;
      };
SOURCE(9874, 13)
   {
      word x282;
      *(float*)(( (ptr) &var←c26724)+8)/* nearX←v10300 */  =  - (
         x282 = side←v10132,  *(float*)&x282
         );
      };
SOURCE(9889, 18)
   {
      word x283;
      *(float*)(( (ptr) &var←c26724)+9)/* midX←v10328 */  =  - (
         x283 = insideWing←v10160,  *(float*)&x283
         );
      };
SOURCE(9909, 24)
   {
      word x284;
      word x285;
      *(float*)(( (ptr) &var←c26724)+10)/* farX←v10356 */  = ( - (
         x284 = insideWing←v10160,  *(float*)&x284
         )) - (
         x285 = width←v10188,  *(float*)&x285
         );
      };
SOURCE(9935, 28)
   {
      word pd286;
      pd286 = (* (( (ptr) (* (( (ptr) gf←c26756)+78)/* var←c21316 */  ))+62) );
      (void) ( *( (fPt) ((*  (ptr) pd286 ))))((* (( (ptr) formal←c26788)+4) ), (word) (( (bPt) &var←c26724)+16)/* var←c23812 */ , 0, pd286)
      ;
      };
   }

static void ArmPath←P2880(moveTo←v18740, lineTo←v18768, curveTo←v18796, conicTo←v18824, arcTo←v18852, formal←c26820)
   word moveTo←v18740;
   word lineTo←v18768;
   word curveTo←v18796;
   word conicTo←v18824;
   word arcTo←v18852;
   word formal←c26820;
   {
   formal←c26820 = (formal←c26820 - 16);
   /* ArmPath: */ 
SOURCE(8900, 151)
SOURCE(8929, 23)
   {
      W2 var←c24132;
      var←c24132.f0 = (* (( (ptr) formal←c26820)+8) );
      var←c24132.f1 = (* (( (ptr) formal←c26820)+7) );
      (void) ( *( (fPt) ((*  (ptr) moveTo←v18740 ))))(var←c24132, moveTo←v18740);
      };
SOURCE(8954, 22)
   {
      W2 var←c24164;
      var←c24164.f0 = (* (( (ptr) formal←c26820)+10) );
      var←c24164.f1 = (* (( (ptr) formal←c26820)+7) );
      (void) ( *( (fPt) ((*  (ptr) lineTo←v18768 ))))(var←c24164, lineTo←v18768);
      };
SOURCE(8978, 22)
   {
      W2 var←c24196;
      var←c24196.f0 = (* (( (ptr) formal←c26820)+9) );
      var←c24196.f1 = (* (( (ptr) formal←c26820)+6) );
      (void) ( *( (fPt) ((*  (ptr) lineTo←v18768 ))))(var←c24196, lineTo←v18768);
      };
SOURCE(9002, 23)
   {
      W2 var←c24228;
      var←c24228.f0 = (* (( (ptr) formal←c26820)+9) );
      {
         word x287;
         *(float*)&var←c24228.f1 =  - (
            x287 = (* (( (ptr) formal←c26820)+7) ),  *(float*)&x287
            );
         };
      (void) ( *( (fPt) ((*  (ptr) lineTo←v18768 ))))(var←c24228, lineTo←v18768);
      };
SOURCE(9027, 24)
   {
      W2 var←c24260;
      var←c24260.f0 = (* (( (ptr) formal←c26820)+8) );
      {
         word x288;
         *(float*)&var←c24260.f1 =  - (
            x288 = (* (( (ptr) formal←c26820)+7) ),  *(float*)&x288
            );
         };
      (void) ( *( (fPt) ((*  (ptr) lineTo←v18768 ))))(var←c24260, lineTo←v18768);
      };
   }

static void DrawCP←P1140(dc←v6892, point←v6920, scale←v6948)
   word dc←v6892;
   W2 point←v6920;
   word scale←v6948;
   {
   register ptr gf←c26852 =  (ptr) &globalframe;
   /* DrawCP: */ 
SOURCE(10006, 367)
SOURCE(10323, 50)
   {
      word x289;
      float tf290;
      (void) DrawEmptySquare←P480(dc←v6892, point←v6920, (
            tf290 = (float)(int)(* (( (ptr) gf←c26852)+4)/* jointSize←v3140 */  ) * (
               x289 = scale←v6948,  *(float*)&x289
               ),  *(word*)&tf290
            ), scale←v6948);
      };
   }

static void DrawJoint←P1200(dc←v7008, point←v7036, scale←v7064)
   word dc←v7008;
   W2 point←v7036;
   word scale←v7064;
   {
   register ptr gf←c26884 =  (ptr) &globalframe;
   /* DrawJoint: */ 
SOURCE(10379, 417)
SOURCE(10706, 50)
   {
      word x291;
      float tf292;
      (void) DrawEmptySquare←P480(dc←v7008, point←v7036, (
            tf292 = (float)(int)(* (( (ptr) gf←c26884)+4)/* jointSize←v3140 */  ) * (
               x291 = scale←v7064,  *(float*)&x291
               ),  *(word*)&tf292
            ), scale←v7064);
      };
SOURCE(10758, 38)
   {
      word x293;
      word x294;
      float tf295;
      (void) DrawFilledSquare←P420(dc←v7008, point←v7036, (
            tf295 = (
               x293 = (*  (ptr) &fc67 ),  *(float*)&x293
               ) * (
               x294 = scale←v7064,  *(float*)&x294
               ),  *(word*)&tf295
            ));
      };
   }

static void DrawSelectedJoint←P1260(dc←v7124, point←v7152, selectClass←v7180, scale←v7208)
   word dc←v7124;
   W2 point←v7152;
   word selectClass←v7180;
   word scale←v7208;
   {
   register ptr gf←c26916 =  (ptr) &globalframe;
   /* DrawSelectedJoint: */ 
SOURCE(10805, 1022)
SOURCE(11667, 160)
   if ((selectClass←v7180 == 1)) {
SOURCE(11691, 59)
      {
         word x296;
         float tf297;
         (void) DrawEmptySquare←P480(dc←v7124, point←v7152, (
               tf297 = (float)(int)(* (( (ptr) gf←c26916)+5)/* hotJointSize←v3196 */  ) * (
                  x296 = scale←v7208,  *(float*)&x296
                  ),  *(word*)&tf297
               ), scale←v7208);
         };
      }
   else {
SOURCE(11750, 77)
      if ((selectClass←v7180 == 0)) {
SOURCE(11777, 50)
         {
            word x298;
            float tf299;
            (void) DrawFilledSquare←P420(dc←v7124, point←v7152, (
                  tf299 = (float)(int)(* (( (ptr) gf←c26916)+4)/* jointSize←v3140 */  ) * (
                     x298 = scale←v7208,  *(float*)&x298
                     ),  *(word*)&tf299
                  ));
            };
         }
      else {
SOURCE(11827, 5)
         (void) XR←RaiseUnnamedError();
         };
      };
   }

static void DrawQuickSelectedJoint←P1320(dc←v7268, point←v7296, selectClass←v7324, scale←v7352)
   word dc←v7268;
   W2 point←v7296;
   word selectClass←v7324;
   word scale←v7352;
   {
   register ptr gf←c26948 =  (ptr) &globalframe;
   /* DrawQuickSelectedJoint: */ 
SOURCE(11838, 552)
SOURCE(11955, 435)
   if ((selectClass←v7324 == 0)) {
SOURCE(11982, 156)
      {
         word scaleJOver2←v10456;
SOURCE(11984, 39)
         {
            word x300;
            word x301;
            *(float*)&scaleJOver2←v10456 = (
               x300 = scale←v7352,  *(float*)&x300
               ) * (
               x301 = (*  (ptr) &fc191 ),  *(float*)&x301
               );
            };
SOURCE(12025, 111)
         {
            word x302;
            word x303;
            word x304;
            float tf305;
            word x306;
            word x307;
            float tf308;
            word x309;
            word x310;
            float tf311;
            word x312;
            word x313;
            float tf314;
            (void) DrawFilledRectangle←P180(dc←v7268, (
                  tf305 = (
                     x302 = point←v7296.f0,  *(float*)&x302
                     ) - ((
                     x303 = (*  (ptr) &fc191 ),  *(float*)&x303
                     ) * (
                     x304 = scaleJOver2←v10456,  *(float*)&x304
                     )),  *(word*)&tf305
                  ), (
                  tf308 = (
                     x306 = point←v7296.f1,  *(float*)&x306
                     ) - (
                     x307 = scaleJOver2←v10456,  *(float*)&x307
                     ),  *(word*)&tf308
                  ), (
                  tf311 = (
                     x309 = point←v7296.f0,  *(float*)&x309
                     ) + (
                     x310 = scaleJOver2←v10456,  *(float*)&x310
                     ),  *(word*)&tf311
                  ), (
                  tf314 = (
                     x312 = point←v7296.f1,  *(float*)&x312
                     ) + (
                     x313 = scaleJOver2←v10456,  *(float*)&x313
                     ),  *(word*)&tf314
                  ));
            };
         };
      }
   else {
SOURCE(12145, 245)
      if ((selectClass←v7324 == 1)) {
SOURCE(12169, 223)
         {
            word scaleHJOver2←v10500;
SOURCE(12171, 43)
            {
               word x315;
               word x316;
               *(float*)&scaleHJOver2←v10500 = (
                  x315 = scale←v7352,  *(float*)&x315
                  ) * (
                  x316 = (*  (ptr) &fc94 ),  *(float*)&x316
                  );
               };
SOURCE(12216, 33)
            {
               word pd317;
               pd317 = (* (( (ptr) (* (( (ptr) gf←c26948)+78)/* var←c21316 */  ))+52) );
               (void) ( *( (fPt) ((*  (ptr) pd317 ))))(dc←v7268, (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c26948)+78)/* var←c21316 */  ))+54)
                   ) ), pd317);
               };
SOURCE(12251, 139)
            {
               word x318;
               word x319;
               word x320;
               float tf321;
               word x322;
               word x323;
               float tf324;
               word x325;
               word x326;
               float tf327;
               word x328;
               word x329;
               float tf330;
               (void) DrawWhiteRectangle←P60(dc←v7268, (
                     tf321 = (
                        x318 = point←v7296.f0,  *(float*)&x318
                        ) - ((
                        x319 = scale←v7352,  *(float*)&x319
                        ) * ((
                        x320 = (*  (ptr) &fc94 ),  *(float*)&x320
                        ) + (float)(int)(* (( (ptr) gf←c26948)+4)/* jointSize←v3140 */  ))),  *(word*)&tf321
                     ), (
                     tf324 = (
                        x322 = point←v7296.f1,  *(float*)&x322
                        ) - (
                        x323 = scaleHJOver2←v10500,  *(float*)&x323
                        ),  *(word*)&tf324
                     ), (
                     tf327 = (
                        x325 = point←v7296.f0,  *(float*)&x325
                        ) + (
                        x326 = scaleHJOver2←v10500,  *(float*)&x326
                        ),  *(word*)&tf327
                     ), (
                     tf330 = (
                        x328 = point←v7296.f1,  *(float*)&x328
                        ) + (
                        x329 = scaleHJOver2←v10500,  *(float*)&x329
                        ),  *(word*)&tf330
                     ), scale←v7352);
               };
            };
         }
      else {
SOURCE(12399, 5)
         (void) XR←RaiseUnnamedError();
         };
      };
   }

static word AllocateRay←P1380(base←v7544, direction←v7572)
   W2 base←v7544;
   W2 direction←v7572;
   {
   register ptr gf←c26980 =  (ptr) &globalframe;
   word ray←v7616;
   /* AllocateRay: */ 
SOURCE(12623, 143)
SOURCE(12623, 143)
   ray←v7616 = 0;
SOURCE(12697, 36)
   ray←v7616 = XR←Narrow((word) DoAllocateRay←P1500((* ((( (ptr) gf←c26980)+12)/* rayPool←v4092 */ ) )), (* (( (ptr) gf←c26980)+16)
       ));
SOURCE(12735, 12)
   (*  (W2Pt) ray←v7616 ) = base←v7544;
SOURCE(12749, 17)
   (*  (W2Pt) (( (ptr) ray←v7616)+2) ) = direction←v7572;
SOURCE(12623, 143)
   return(ray←v7616);
   }

static void MakeRayStorage←P1440(pool←v7676)
   word pool←v7676;
   {
   register ptr gf←c27012 =  (ptr) &globalframe;
   word realPool←v10544;
   /* MakeRayStorage: */ 
SOURCE(12772, 232)
SOURCE(12832, 44)
   realPool←v10544 = XR←NewObject(32, (* (( (ptr) gf←c27012)+17) ));
   (* (( (ptr) realPool←v10544)+1) ) = 6;
SOURCE(12878, 69)
   {
      register word i←v10588 = 0;
      lab←L100004: ;
SOURCE(12902, 45)
      {
         word var←c24324;
         {
            W2 var←c24356;
            W2 var←c24388;
            var←c24356.f0 = (*  (ptr) &fc20 );
            var←c24356.f1 = (*  (ptr) &fc20 );
            var←c24388.f0 = (*  (ptr) &fc20 );
            var←c24388.f1 = (*  (ptr) &fc20 );
            {
               word pd331;
               pd331 = (* (( (ptr) (* (( (ptr) gf←c27012)+79)/* var←c22564 */  ))+31) );
               var←c24324 = (word) ( *( (fPt) ((*  (ptr) pd331 ))))(var←c24356, var←c24388, pd331);
               };
            };
         {
            word limit332;
            (* ((( (ptr) realPool←v10544)+2)+(
                  limit332 = (* (( (ptr) realPool←v10544)+1) ),
                  BCK(i←v10588, limit332)
                  )) ) = var←c24324;
            };
         };
      if ((i←v10588 >= 5)) {
         goto lab←L100001;
         };
      i←v10588 = (i←v10588 + 1);
      goto lab←L100004;
      lab←L100001: ;
      };
SOURCE(12958, 24)
   (*  (ptr) realPool←v10544 ) = 6;
SOURCE(12984, 20)
   (* (( (ptr) pool←v7676)+5) ) = realPool←v10544;
   }

static word DoAllocateRay←P1500(pool←v7736)
   word pool←v7736;
   {
   register ptr gf←c27044 =  (ptr) &globalframe;
   word item←v7780;
   word realPool←v10632;
   /* DoAllocateRay: */ 
SOURCE(13010, 294)
SOURCE(13010, 294)
   item←v7780 = 0;
SOURCE(13093, 37)
   realPool←v10632 = XR←Narrow((* (( (ptr) pool←v7736)+5) ), (* (( (ptr) gf←c27044)+17) ));
SOURCE(13132, 172)
   if (((*  (ptr) realPool←v10632 ) == 0)) {
SOURCE(13159, 75)
      {
         W2 var←c24420;
         W2 var←c24452;
         var←c24420.f0 = (*  (ptr) &fc20 );
         var←c24420.f1 = (*  (ptr) &fc20 );
         var←c24452.f0 = (*  (ptr) &fc20 );
         var←c24452.f1 = (*  (ptr) &fc20 );
         {
            word pd333;
            pd333 = (* (( (ptr) (* (( (ptr) gf←c27044)+79)/* var←c22564 */  ))+31) );
            item←v7780 = (word) ( *( (fPt) ((*  (ptr) pd333 ))))(var←c24420, var←c24452, pd333);
            };
         };
      }
   else {
SOURCE(13236, 35)
      {
         word idx334;
         (*  (ptr) realPool←v10632 ) = (
            idx334 = (word) ((*  (ptr) realPool←v10632 ) - 1),
            SGNCK(idx334)
            );
         };
SOURCE(13273, 31)
      {
         word idx335;
         word limit336;
         item←v7780 = (* ((( (ptr) realPool←v10632)+2)+(
               idx335 = (*  (ptr) realPool←v10632 ),
               limit336 = (* (( (ptr) realPool←v10632)+1) ),
               BCK(idx335, limit336)
               )) );
         };
      };
SOURCE(13010, 294)
   return(item←v7780);
   }

static void DoFreeRay←P1560(pool←v7856, item←v7884)
   word pool←v7856;
   word item←v7884;
   {
   register ptr gf←c27076 =  (ptr) &globalframe;
   word realPool←v10676;
   word realItem←v10704;
   /* DoFreeRay: */ 
SOURCE(13313, 293)
SOURCE(13383, 37)
   realPool←v10676 = XR←Narrow((* (( (ptr) pool←v7856)+5) ), (* (( (ptr) gf←c27076)+17) ));
SOURCE(13422, 28)
   realItem←v10704 = XR←Narrow(item←v7884, (* (( (ptr) gf←c27076)+16) ));
SOURCE(13452, 39)
   if (((*  (ptr) realPool←v10676 ) == 6)) {
SOURCE(13485, 6)
      return;
      };
SOURCE(13534, 35)
   {
      word idx337;
      word limit338;
      (* ((( (ptr) realPool←v10676)+2)+(
            idx337 = (*  (ptr) realPool←v10676 ),
            limit338 = (* (( (ptr) realPool←v10676)+1) ),
            BCK(idx337, limit338)
            )) ) = realItem←v10704;
      };
SOURCE(13571, 35)
   (*  (ptr) realPool←v10676 ) = ((*  (ptr) realPool←v10676 ) + 1);
   }

static void Init←P1620()
   {
   register ptr gf←c27108 =  (ptr) &globalframe;
   /* Init: */ 
SOURCE(13612, 159)
SOURCE(13627, 77)
   {
      word pd339;
      pd339 = (* (( (ptr) (* (( (ptr) gf←c27108)+82)/* var←c24484 */  ))+4) );
      (* (( (ptr) gf←c27108)+13)/* rayPoolClass←v4120 */  ) = (word) ( *( (fPt) ((*  (ptr) pd339 ))))((* (( (ptr) gf←c27108)+20)
          ), (word) (( (bPt) gf←c27108)+100)/* var←c20420 */ , (word) (( (bPt) gf←c27108)+92)/* var←c20388 */ , pd339);
      };
SOURCE(13706, 65)
   {
      word pd340;
      pd340 = (* (( (ptr) (* (( (ptr) gf←c27108)+82)/* var←c24484 */  ))+5) );
      (* (( (ptr) gf←c27108)+12)/* rayPool←v4092 */  ) = (word) ( *( (fPt) ((*  (ptr) pd340 ))))((* (( (ptr) gf←c27108)+13)/* rayPoolClass←v4120 */  ), (word) (
            ( (bPt) gf←c27108)+108)/* var←c20452 */ , pd340);
      };
   }

/* file: GGShapesImpl, module: GGShapesImpl, compiled at: February 5, 1993 1:57:24 pm PST */ 
extern void XR←install←GGShapesImpl() {
   NoName←Q3084();
   }
extern void XR←run←GGShapesImpl() { XR←Start(&globalframe); }