/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1992 by Xerox Corporation.  All rights reserved. */
/* time: June 12, 1992 10:44:06 am PDT */
/* C2C version: October 16, 1990 (native) */
/* ref-counting: off */
/* file: XTkCollectionsImpl, module: XTkCollectionsImpl */ 
/* switches: bcfhklnouw */ 
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [4155442612,4079303707] XTkCollectionsImpl";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef struct {word f0, f1, f2, f3, f4, f5, f6, f7;} W8;
typedef struct {W8 f; W8 r;} W16;
typedef struct {W8 f; word r;} W9;
typedef struct {W16 f; W9 r;} W25;
typedef word (*fPt)();
typedef struct {word f0, f1;} W2;
typedef struct {W8 f; W2 r;} W10;
typedef struct {word f0, f1, f2, f3, f4;} W5;
typedef W5 *W5Pt;
typedef struct {word f0, f1, f2, f3, f4, f5;} W6;
typedef struct {word f0, f1, f2;} W3;
typedef W3 *W3Pt;
#define SOURCE(p, l) /* source p, l */
#define BCK(idx, lim) ( ((unsigned) idx) >= ((unsigned) lim) ? (XR←RaiseBoundsFault()) : (idx) )
#define MAX(cast, x, y)  ( ( cast x) > ( cast y) ? (x) : (y) )
#define SGNCK(i) ((int) (word) (i) < 0 ? XR←RaiseArithmeticFault(): i )
static void NoName←Q3408();
static void XTkCollectionsImpl←P0();
static word InitSuperClass←P60();
static void CollectionInitInstPart←P180();
static word Create←P240();
static void RemoveChild←P300();
static void action←P1500();
static void RemoveChildLR←P360();
static void AddChild←P420();
static void action←P1560();
static void AddChildLR←P480();
static void AddChildren←P540();
static void action←P1620();
static void AddChildrenLR←P600();
static void EnumerateChildren←P660();
static word Find←P720();
static void RemoveXWindowsLR←P780();
static word RemoveAndSquezeLR←P840();
static void AssertEmptySlotsLR←P900();
static void AssertEmptySlotsILR←P960();
static word RemoveChildInPlaceLR←P1020();
static word RemoveInPlaceLR←P2016();
static word RemoveChildAndSqueezeLR←P1080();
static word SqueezeNRemoveLR←P2076();
static void AddChildInFirstPlaceLR←P1140();
static void IncludeHardLR←P2232();
static word IncludeLR←P2292();
static void DefaultAddChildrenLR←P1200();
static word CountChildren←P1260();
static void BasicEnumerateChildren←P1320();
static word InternalEnumerateChildren←P1380();
static word NewCollectionClassPart←P1440();
static struct {unsigned f; char r[16];} string1 = {851984, "\257\300\141\025\232\152\300\166\121\005\142\101\254\000\000"};
static struct {unsigned f; char r[12];} string2 = {524296, "\011\000\004\000\040\000\004\001\000\000\000"};
static struct {unsigned f; char r[4];} string3 = {131076, "\216\251\000"};
static struct {unsigned f; char r[4];} string4 = {65537, "\001\000\000"};
static struct {unsigned f; char r[16];} string5 = {851984, "\257\300a\025\232j\300vQ\005bA|\000\000"};
static struct {unsigned f; char r[16];} string6 = {851984, "\257\300\141\025\232\152\300\166\121\005\142\101\240\000\000"};
static struct {unsigned f; char r[4];} string7 = {131074, "\0048\000"};
static struct {unsigned f; char r[12];} string8 = {655372, "Collection\000"};
static struct {unsigned f; char r[16];} string9 = {983056, "collectionSuper"};
static struct {unsigned f; char r[16];} string10 = {851984, "\257\300\367\257\005\264\300\363\045\074\033\100\164\000\000"};
static struct {unsigned f; char r[12];} string11 = {655370, "\006\003 \001$\001@H\004\003\000"};
static struct {unsigned f; char r[16];} string12 = {851984, "\257\300\351\276\264\273\300\115\104\320\264\100\164\000\000"};
static struct {unsigned f; char r[16];} string13 = {851984, "\257\300\033\115\307\000\300\214\060\055\310\100\150\000\000"};
static struct {unsigned f; char r[12];} string14 = {1481927491, "ollections"};
static struct {unsigned f; char r[16];} string15 = {851984, "\257\300\141\025\232\152\300\166\121\005\142\100\164\000\000"};
static struct {unsigned f; char r[16];} string16 = {851984, "\257\300\227\370\144\253\300\176\165\034\110\100\150\000\000"};
static struct {
   word f0[20]; word f20; 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[5]; 
   } globalframe = {
   {0}, (word) NewCollectionClassPart←P1440, 0, (word) InternalEnumerateChildren←P1380, 
   0, (word) BasicEnumerateChildren←P1320, 0, (word) CountChildren←P1260, 
   0, (word) DefaultAddChildrenLR←P1200, 0, (word) AddChildInFirstPlaceLR←P1140, 
   0, (word) RemoveChildAndSqueezeLR←P1080, 0, (word) RemoveChildInPlaceLR←P1020, 
   0, (word) AssertEmptySlotsILR←P960, 0, (word) AssertEmptySlotsLR←P900, 
   0, (word) RemoveAndSquezeLR←P840, 0, (word) RemoveXWindowsLR←P780, 
   0, (word) Find←P720, 0, (word) EnumerateChildren←P660, 
   0, (word) AddChildrenLR←P600, 0, (word) AddChildren←P540, 
   0, (word) AddChildLR←P480, 0, (word) AddChild←P420, 
   0, (word) RemoveChildLR←P360, 0, (word) RemoveChild←P300, 
   0, (word) Create←P240, 0, (word) CollectionInitInstPart←P180, 
   0, (word) InitSuperClass←P60, 0, (word) XTkCollectionsImpl←P0, 
   0, 2147483648, 2147483648, 2147483648, 
   2147483648, 2147483648, {0}
   };

static void NoName←Q3408()
   {
   register ptr gf←c0220 =  (ptr) &globalframe;
   word var←c22724;
   (* (( (ptr) gf←c0220)+10) ) = (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2);
   (* (( (ptr) gf←c0220)+12) ) = (word) XR←GetTypeIndex((word) &string3, 0, (word) &string4);
   (* (( (ptr) gf←c0220)+16) ) = (word) XR←GetTypeIndexS((word) (&string5));
   (* (( (ptr) gf←c0220)+17) ) = (word) XR←GetTypeIndex((word) &string6, 0, (word) &string7);
   (*  (ptr) (( (bPt) gf←c0220)+72) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0220)+12) ), (word) &string8);
   (*  (ptr) (( (bPt) gf←c0220)+76) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0220)+12) ), (word) &string9);
   (void) XR←DeclareGlobalFrame((word) "XTkCollectionsImpl", &globalframe, (word) XR←GetTypeIndex((word) &string10, 0, (word) &string11)
      , (word) (( (bPt) gf←c0220)+264)/* var←c20804 */ );
   var←c22724 = (word) XR←ImportInterface((word) "Xl", (word) XR←GetTypeIndexS((word) (&string12)), 218);
   (* (( (ptr) gf←c0220)+75)/* var←c21124 */  ) = var←c22724;
   (void) XR←ImportProcS(var←c22724, 539906);
   var←c22724 = (word) XR←ImportInterface((word) "XTk", (word) XR←GetTypeIndexS((word) (&string13)), 50);
   (* (( (ptr) gf←c0220)+74)/* var←c21060 */  ) = var←c22724;
   (void) XR←ImportProcS(var←c22724, 272641);
   (void) XR←ImportProcS(var←c22724, 69992451);
   var←c22724 = (word) XR←ImportInterface((word) &string14, (word) XR←GetTypeIndexS((word) (&string15)), 16);
   (* (( (ptr) gf←c0220)+76)/* var←c21636 */  ) = var←c22724;
   var←c22724 = (word) XR←ImportInterface((word) "XTkFriends", (word) XR←GetTypeIndexS((word) (&string16)), 33);
   (* (( (ptr) gf←c0220)+73)/* var←c20964 */  ) = var←c22724;
   (void) XR←ImportProcS(var←c22724, 531970);
   (void) XR←ImportProcS(var←c22724, 265217);
   (void) XR←ImportProcS(var←c22724, 531202);
   (void) XR←ImportProcS(var←c22724, 264961);
   (void) XR←ImportProcS(var←c22724, 2098180);
   (void) XR←ImportProcS(var←c22724, 67636482);
   (void) XR←ImportProcS(var←c22724, 530434);
   (void) XR←ImportProcS(var←c22724, 73666049);
   var←c22724 = (word) XR←ExportInterface((word) &string14, (word) XR←GetTypeIndexS((word) (&string15)), 16);
   (* (( (ptr) gf←c0220)+77)/* var←c22756 */  ) = var←c22724;
   (void) XR←ExportProcS(var←c22724, (word) (( (bPt) gf←c0220)+240)/* var←c20708 */ , 69992451);
   (void) XR←ExportProcS(var←c22724, (word) (( (bPt) gf←c0220)+232)/* var←c20676 */ , 1048836);
   (void) XR←ExportProcS(var←c22724, (word) (( (bPt) gf←c0220)+224)/* var←c20644 */ , 1049092);
   (void) XR←ExportProcS(var←c22724, (word) (( (bPt) gf←c0220)+216)/* var←c20612 */ , 1049348);
   (void) XR←ExportProcS(var←c22724, (word) (( (bPt) gf←c0220)+208)/* var←c20580 */ , 1049604);
   (void) XR←ExportProcS(var←c22724, (word) (( (bPt) gf←c0220)+200)/* var←c20548 */ , 787715);
   (void) XR←ExportProcS(var←c22724, (word) (( (bPt) gf←c0220)+192)/* var←c20516 */ , 787971);
   (void) XR←ExportProcS(var←c22724, (word) (( (bPt) gf←c0220)+184)/* var←c20484 */ , 788227);
   (void) XR←ExportProcS(var←c22724, (word) (( (bPt) gf←c0220)+152)/* var←c20356 */ , 526338);
   (void) XR←ExportVar(var←c22724, 10, (word) (( (bPt) gf←c0220)+32)/* collectionClass←v2664 */ );
   (void) XR←ExportProcS(var←c22724, (word) (( (bPt) gf←c0220)+80)/* var←c20068 */ , 67373825);
   (void) XR←ExportProcS(var←c22724, (word) (( (bPt) gf←c0220)+136)/* var←c20292 */ , 67636226);
   (void) XR←ExportProcS(var←c22724, (word) (( (bPt) gf←c0220)+128)/* var←c20260 */ , 67636482);
   (void) XR←ExportProcS(var←c22724, (word) (( (bPt) gf←c0220)+120)/* var←c20228 */ , 1052164);
   (void) XR←ExportProcS(var←c22724, (word) (( (bPt) gf←c0220)+96)/* var←c20132 */ , 790275);
   }

static void XTkCollectionsImpl←P0(formal←c039, formal←c037)
   word formal←c039;
   word formal←c037;
   {
   register ptr gf←c22788 =  (ptr) &globalframe;
   /* XTkCollectionsImpl: */ 
SOURCE(58, 9815)
   /* moved to installation proc */ 
   /* moved to installation proc */ 
   /* moved to installation proc */ 
   /* moved to installation proc */ 
   /* moved to installation proc */ 
SOURCE(206, 48)
   (* (( (ptr) gf←c22788)+8)/* collectionClass←v2664 */  ) = (word) InitSuperClass←P60();
SOURCE(788, 54)
   {
      word var←c20900;
      var←c20900 = XR←NewObject(4, (* (( (ptr) gf←c22788)+10) ));
      (*  (ptr) var←c20900 ) = 0;
      (* (( (ptr) gf←c22788)+9)/* dymmyChildren←v2720 */  ) = var←c20900;
      };
   }

static word InitSuperClass←P60()
   {
   register ptr gf←c22820 =  (ptr) &globalframe;
   word csc←v3444;
   /* InitSuperClass: */ 
SOURCE(256, 526)
SOURCE(256, 526)
   csc←v3444 = 0;
SOURCE(316, 285)
   {
      W25 var←c042;
      (*  (ptr) &var←c042 ) = (* (( (ptr) gf←c22820)+19) );
      (* (( (ptr) &var←c042)+1) ) = (* (( (ptr) gf←c22820)+18) );
      (* (( (ptr) &var←c042)+2) ) = 0;
      (* (( (ptr) &var←c042)+3) ) = 1;
      (* (( (ptr) &var←c042)+4) ) = 1;
      (* (( (ptr) &var←c042)+5) ) = 0;
      (* (( (ptr) &var←c042)+6) ) = XR←CheckProc(0);
      (* (( (ptr) &var←c042)+7) ) = XR←CheckProc(0);
      (* (( (ptr) &var←c042)+8) ) = XR←CheckProc(0);
      (* (( (ptr) &var←c042)+9) ) = XR←CheckProc(0);
      (* (( (ptr) &var←c042)+10) ) = 0;
      (* (( (ptr) &var←c042)+11) ) = (* (( (ptr) (* (( (ptr) gf←c22820)+73)/* var←c20964 */  ))+28) );
      (* (( (ptr) &var←c042)+12) ) = XR←CheckProc(0);
      (* (( (ptr) &var←c042)+13) ) = XR←CheckProc(0);
      (* (( (ptr) &var←c042)+14) ) = XR←CheckProc(0);
      (* (( (ptr) &var←c042)+15) ) = XR←CheckProc(0);
      (* (( (ptr) &var←c042)+16) ) = XR←CheckProc(0);
      (* (( (ptr) &var←c042)+17) ) = (word) (( (bPt) gf←c22820)+88)/* var←c20100 */ ;
      (* (( (ptr) &var←c042)+18) ) = (word) (( (bPt) gf←c22820)+248)/* var←c20740 */ ;
      (* (( (ptr) &var←c042)+19) ) = 0;
      (* (( (ptr) &var←c042)+20) ) = 0;
      (* (( (ptr) &var←c042)+21) ) = 0;
      (* (( (ptr) &var←c042)+22) ) = 0;
      (* (( (ptr) &var←c042)+23) ) = XR←CheckProc(0);
      (* (( (ptr) &var←c042)+24) ) = XR←CheckProc(0);
      {
         word pd17;
         pd17 = (* (( (ptr) (* (( (ptr) gf←c22820)+73)/* var←c20964 */  ))+18) );
         csc←v3444 = (word) ( *( (fPt) ((*  (ptr) pd17 ))))((word) (&var←c042), pd17);
         };
      };
SOURCE(603, 179)
   {
      word var←c20996;
      var←c20996 = XR←NewObject(12, (* (( (ptr) gf←c22820)+16) ));
      (*  (ptr) var←c20996 ) = (word) (( (bPt) gf←c22820)+96)/* var←c20132 */ ;
      (* (( (ptr) var←c20996)+1) ) = (word) (( (bPt) gf←c22820)+120)/* var←c20228 */ ;
      (* (( (ptr) var←c20996)+2) ) = (word) (( (bPt) gf←c22820)+112)/* var←c20196 */ ;
      {
         word idx18;
         word limit19;
         (* ((( (ptr) csc←v3444)+30)+(
               idx18 = (* (( (ptr) csc←v3444)+27) ),
               limit19 = (* (( (ptr) csc←v3444)+29) ),
               BCK(idx18, limit19)
               )) ) = var←c20996;
         };
      };
SOURCE(256, 526)
   return(csc←v3444);
   }

static void CollectionInitInstPart←P180(widget←v10964, arguments←v10992)
   word widget←v10964;
   word arguments←v10992;
   {
   register ptr gf←c22852 =  (ptr) &globalframe;
   word ip←v6448;
   /* CollectionInitInstPart: */ 
SOURCE(1019, 263)
SOURCE(1072, 79)
   ip←v6448 = XR←NewObject(24, (* (( (ptr) gf←c22852)+17) ));
   (* (( (ptr) ip←v6448)+5) ) = (* (( (ptr) gf←c22852)+9)/* dymmyChildren←v2720 */  );
SOURCE(1153, 73)
   if (( (int)(* (( (ptr) widget←v10964)+9) ) <  (int)0)) {
SOURCE(1193, 33)
      (* (( (ptr) widget←v10964)+9) ) = 0;
      };
SOURCE(1228, 54)
   {
      word val←v20020;
      val←v20020 = ip←v6448;
      {
         word idx20;
         word limit21;
         (* ((( (ptr) widget←v10964)+49)+(
               idx20 = (* (( (ptr) (* (( (ptr) gf←c22852)+8)/* collectionClass←v2664 */  ))+4) ),
               limit21 = (* (( (ptr) widget←v10964)+48) ),
               BCK(idx20, limit21)
               )) ) = val←v20020;
         };
      };
   }

static word Create←P240(widgetSpec←v3620, children←v3648, childCount←v3676)
   W9 widgetSpec←v3620;
   word children←v3648;
   word childCount←v3676;
   {
   register ptr gf←c22884 =  (ptr) &globalframe;
   word widget←v3804;
   /* Create: */ 
SOURCE(1288, 333)
SOURCE(1288, 333)
   widget←v3804 = 0;
SOURCE(1434, 54)
   {
      word pd22;
      pd22 = (* (( (ptr) (* (( (ptr) gf←c22884)+74)/* var←c21060 */  ))+4) );
      widget←v3804 = (word) ( *( (fPt) ((*  (ptr) pd22 ))))(widgetSpec←v3620, (* (( (ptr) gf←c22884)+8)/* collectionClass←v2664 */  ), 0, pd22)
      ;
      };
SOURCE(1490, 59)
   if ((childCount←v3676 > 0)) {
SOURCE(1511, 38)
      (void) AssertEmptySlotsLR←P900(widget←v3804, childCount←v3676);
      };
SOURCE(1562, 59)
   if ((children←v3648 != 0)) {
SOURCE(1583, 38)
      (void) AddChildrenLR←P600(widget←v3804, children←v3648, 0);
      };
SOURCE(1288, 333)
   return(widget←v3804);
   }

static void RemoveChild←P300(formal←c0269, formal←c0270, formal←c0271, formal←c0272)
   word formal←c0269;
   word formal←c0270;
   word formal←c0271;
   word formal←c0272;
   {
   W10 var←c22916;
   /* declaration of collection←v3864 skipped */ 
   /* declaration of child←v3892 skipped */ 
   /* declaration of reConsiderNow←v3920 skipped */ 
   /* declaration of preventDestruction←v3948 skipped */ 
   register ptr gf←c22948 =  (ptr) &globalframe;
   /* declaration of var←c21092 skipped */ 
   word rootTQ←v6492;
   (* (( (ptr) &var←c22916)+4)/* collection←v3864 */  ) = formal←c0269;
   (* (( (ptr) &var←c22916)+5)/* child←v3892 */  ) = formal←c0270;
   (* (( (ptr) &var←c22916)+6)/* reConsiderNow←v3920 */  ) = formal←c0271;
   (* (( (ptr) &var←c22916)+7)/* preventDestruction←v3948 */  ) = formal←c0272;
   /* RemoveChild: */ 
SOURCE(1638, 366)
   {
      word tmpAddr23;
      tmpAddr23 = (word) (( (ptr) &var←c22916)+8)/* var←c21092 */ ;
      (*  (ptr) tmpAddr23 ) = ( ((word)  (fPt) action←P1500) );
      (* (( (ptr) tmpAddr23) + 1) ) = 1;
      };
SOURCE(1775, 33)
   rootTQ←v6492 = (* (( (ptr) (* (( (ptr) &var←c22916)+4)/* collection←v3864 */  ))+45) );
SOURCE(1896, 108)
   if ((rootTQ←v6492 == 0)) {
SOURCE(1916, 57)
      (void) action←P1500((word) ((( (bPt) &var←c22916)+32)/* var←c21092 */ ));
      }
   else {
SOURCE(1973, 31)
      {
         word pd24;
         pd24 = (* (( (ptr) (* (( (ptr) gf←c22948)+75)/* var←c21124 */  ))+65) );
         (void) ( *( (fPt) ((*  (ptr) pd24 ))))(rootTQ←v6492, (word) (( (bPt) &var←c22916)+32)/* var←c21092 */ , pd24);
         };
      };
   }

static void action←P1500(formal←c22980)
   word formal←c22980;
   {
   formal←c22980 = (formal←c22980 - 32);
   /* action: */ 
SOURCE(1810, 83)
SOURCE(1826, 67)
   (void) RemoveChildLR←P360((* (( (ptr) formal←c22980)+4) ), (* (( (ptr) formal←c22980)+5) ), (* (( (ptr) formal←c22980)+6)
       ), (* (( (ptr) formal←c22980)+7) ));
   }

static void RemoveChildLR←P360(collection←v4008, child←v4036, reConsiderNow←v4064, preventDestruction←v4092)
   word collection←v4008;
   word child←v4036;
   word reConsiderNow←v4064;
   word preventDestruction←v4092;
   {
   register ptr gf←c23012 =  (ptr) &globalframe;
   word done←v6580;
   /* RemoveChildLR: */ 
SOURCE(2010, 570)
SOURCE(2161, 32)
   if (((* (( (ptr) child←v4036)+31) ) != collection←v4008)) {
SOURCE(2193, 5)
      (void) XR←RaiseUnnamedError();
      };
SOURCE(2200, 52)
   {
      word x25;
      (* (( (ptr) child←v4036)+10) ) = ((x25 = (* (( (ptr) child←v4036)+10) ),
         MAX( (unsigned) , 2, x25)) & 7);
      };
SOURCE(2254, 50)
   {
      word pd26;
      pd26 = (* (( (ptr) (* (( (ptr) gf←c23012)+73)/* var←c20964 */  ))+17) );
      done←v6580 = (word) ( *( (fPt) ((*  (ptr) pd26 ))))(collection←v4008, child←v4036, pd26);
      };
SOURCE(2306, 204)
   if ((0 != done←v6580)) {
SOURCE(2321, 83)
      if (((* (( (ptr) child←v4036)+38) ) < 2)) {
SOURCE(2351, 53)
         {
            word pd27;
            pd27 = (* (( (ptr) (* (( (ptr) gf←c23012)+73)/* var←c20964 */  ))+8) );
            (void) ( *( (fPt) ((*  (ptr) pd27 ))))(child←v4036, (*  (W5Pt) (( (ptr) gf←c23012)+68)/* var←c20868 */  ), 2, 1, pd27);
            };
         };
SOURCE(2406, 104)
      if ((0 != preventDestruction←v4092)) {
SOURCE(2434, 38)
         {
            word pd28;
            pd28 = (* (( (ptr) (* (( (ptr) gf←c23012)+73)/* var←c20964 */  ))+15) );
            (void) ( *( (fPt) ((*  (ptr) pd28 ))))(child←v4036, pd28);
            };
         }
      else {
SOURCE(2472, 38)
         {
            word pd29;
            pd29 = (* (( (ptr) (* (( (ptr) gf←c23012)+73)/* var←c20964 */  ))+31) );
            (void) ( *( (fPt) ((*  (ptr) pd29 ))))(child←v4036, 0, pd29);
            };
         };
      };
SOURCE(2513, 67)
   if ((0 != reConsiderNow←v4064)) {
SOURCE(2535, 45)
      {
         word pd30;
         pd30 = (* (( (ptr) (* (( (ptr) gf←c23012)+73)/* var←c20964 */  ))+16) );
         (void) ( *( (fPt) ((*  (ptr) pd30 ))))(collection←v4008, pd30);
         };
      };
   }

static void AddChild←P420(formal←c0273, formal←c0274, formal←c0275, formal←c0276)
   word formal←c0273;
   word formal←c0274;
   word formal←c0275;
   word formal←c0276;
   {
   W10 var←c23044;
   /* declaration of collection←v4152 skipped */ 
   /* declaration of newChild←v4180 skipped */ 
   /* declaration of position←v4208 skipped */ 
   /* declaration of reConsiderNow←v4236 skipped */ 
   register ptr gf←c23076 =  (ptr) &globalframe;
   /* declaration of var←c21156 skipped */ 
   word rootTQ←v6624;
   (* (( (ptr) &var←c23044)+4)/* collection←v4152 */  ) = formal←c0273;
   (* (( (ptr) &var←c23044)+5)/* newChild←v4180 */  ) = formal←c0274;
   (* (( (ptr) &var←c23044)+6)/* position←v4208 */  ) = formal←c0275;
   (* (( (ptr) &var←c23044)+7)/* reConsiderNow←v4236 */  ) = formal←c0276;
   /* AddChild: */ 
SOURCE(2584, 343)
   {
      word tmpAddr31;
      tmpAddr31 = (word) (( (ptr) &var←c23044)+8)/* var←c21156 */ ;
      (*  (ptr) tmpAddr31 ) = ( ((word)  (fPt) action←P1560) );
      (* (( (ptr) tmpAddr31) + 1) ) = 1;
      };
SOURCE(2708, 33)
   rootTQ←v6624 = (* (( (ptr) (* (( (ptr) &var←c23044)+4)/* collection←v4152 */  ))+45) );
SOURCE(2819, 108)
   if ((rootTQ←v6624 == 0)) {
SOURCE(2839, 57)
      (void) action←P1560((word) ((( (bPt) &var←c23044)+32)/* var←c21156 */ ));
      }
   else {
SOURCE(2896, 31)
      {
         word pd32;
         pd32 = (* (( (ptr) (* (( (ptr) gf←c23076)+75)/* var←c21124 */  ))+65) );
         (void) ( *( (fPt) ((*  (ptr) pd32 ))))(rootTQ←v6624, (word) (( (bPt) &var←c23044)+32)/* var←c21156 */ , pd32);
         };
      };
   }

static void action←P1560(formal←c23108)
   word formal←c23108;
   {
   formal←c23108 = (formal←c23108 - 32);
   /* action: */ 
SOURCE(2743, 73)
SOURCE(2759, 57)
   (void) AddChildLR←P480((* (( (ptr) formal←c23108)+4) ), (* (( (ptr) formal←c23108)+5) ), (* (( (ptr) formal←c23108)+6) ), (* (
         ( (ptr) formal←c23108)+7) ));
   }

static void AddChildLR←P480(collection←v4312, newChild←v4340, position←v4368, reConsiderNow←v4396)
   word collection←v4312;
   word newChild←v4340;
   word position←v4368;
   word reConsiderNow←v4396;
   {
   register ptr gf←c23140 =  (ptr) &globalframe;
   word classPart←v6712;
   /* AddChildLR: */ 
SOURCE(2933, 454)
SOURCE(3059, 67)
   {
      word var←c21188;
      word var←c0250;
      var←c21188 = (* (( (ptr) collection←v4312)+4) );
      {
         word idx33;
         word limit34;
         var←c0250 = (* ((( (ptr) var←c21188)+30)+(
               idx33 = (* (( (ptr) (* (( (ptr) gf←c23140)+8)/* collectionClass←v2664 */  ))+27) ),
               limit34 = (* (( (ptr) var←c21188)+29) ),
               BCK(idx33, limit34)
               )) );
         };
      classPart←v6712 = XR←Narrow(var←c0250, (* (( (ptr) gf←c23140)+16) ));
      };
SOURCE(3128, 108)
   {
      word var←c21220;
      var←c21220 = (* (( (ptr) newChild←v4340)+31) );
      if ((var←c21220 == 0) || (var←c21220 == collection←v4312)) {
SOURCE(3175, 61)
         {
            word pd35;
            pd35 = (* (( (ptr) (* (( (ptr) gf←c23140)+73)/* var←c20964 */  ))+34) );
            (void) ( *( (fPt) ((*  (ptr) pd35 ))))(newChild←v4340, collection←v4312, pd35);
            };
         }
      else {
SOURCE(3249, 5)
         (void) XR←RaiseUnnamedError();
         };
      };
SOURCE(3256, 62)
   if (((* (( (ptr) newChild←v4340)+10) ) == 3)) {
SOURCE(3291, 27)
      (* (( (ptr) newChild←v4340)+10) ) = 0;
      };
SOURCE(3320, 67)
   {
      word pd36;
      pd36 = (* (( (ptr) classPart←v6712)+1) );
      (void) ( *( (fPt) ((*  (ptr) pd36 ))))(collection←v4312, newChild←v4340, position←v4368, reConsiderNow←v4396, pd36);
      };
   }

static void AddChildren←P540(formal←c0277, formal←c0278, formal←c0279)
   word formal←c0277;
   word formal←c0278;
   word formal←c0279;
   {
   W9 var←c23172;
   /* declaration of collection←v4468 skipped */ 
   /* declaration of children←v4496 skipped */ 
   /* declaration of reConsiderNow←v4524 skipped */ 
   register ptr gf←c23204 =  (ptr) &globalframe;
   /* declaration of var←c21252 skipped */ 
   word rootTQ←v6756;
   (* (( (ptr) &var←c23172)+4)/* collection←v4468 */  ) = formal←c0277;
   (* (( (ptr) &var←c23172)+5)/* children←v4496 */  ) = formal←c0278;
   (* (( (ptr) &var←c23172)+6)/* reConsiderNow←v4524 */  ) = formal←c0279;
   /* AddChildren: */ 
SOURCE(3393, 326)
   {
      word tmpAddr37;
      tmpAddr37 = (word) (( (ptr) &var←c23172)+7)/* var←c21252 */ ;
      (*  (ptr) tmpAddr37 ) = ( ((word)  (fPt) action←P1620) );
      (* (( (ptr) tmpAddr37) + 1) ) = 1;
      };
SOURCE(3507, 33)
   rootTQ←v6756 = (* (( (ptr) (* (( (ptr) &var←c23172)+4)/* collection←v4468 */  ))+45) );
SOURCE(3611, 108)
   if ((rootTQ←v6756 == 0)) {
SOURCE(3631, 57)
      (void) action←P1620((word) ((( (bPt) &var←c23172)+28)/* var←c21252 */ ));
      }
   else {
SOURCE(3688, 31)
      {
         word pd38;
         pd38 = (* (( (ptr) (* (( (ptr) gf←c23204)+75)/* var←c21124 */  ))+65) );
         (void) ( *( (fPt) ((*  (ptr) pd38 ))))(rootTQ←v6756, (word) (( (bPt) &var←c23172)+28)/* var←c21252 */ , pd38);
         };
      };
   }

static void action←P1620(formal←c23236)
   word formal←c23236;
   {
   formal←c23236 = (formal←c23236 - 28);
   /* action: */ 
SOURCE(3542, 66)
SOURCE(3558, 50)
   (void) AddChildrenLR←P600((* (( (ptr) formal←c23236)+4) ), (* (( (ptr) formal←c23236)+5) ), (* (( (ptr) formal←c23236)+6)
       ));
   }

static void AddChildrenLR←P600(collection←v4668, children←v4696, reConsiderNow←v4724)
   word collection←v4668;
   word children←v4696;
   word reConsiderNow←v4724;
   {
   register ptr gf←c23268 =  (ptr) &globalframe;
   word classPart←v6844;
   /* AddChildrenLR: */ 
SOURCE(3725, 498)
SOURCE(3841, 67)
   {
      word var←c21284;
      word var←c0251;
      var←c21284 = (* (( (ptr) collection←v4668)+4) );
      {
         word idx39;
         word limit40;
         var←c0251 = (* ((( (ptr) var←c21284)+30)+(
               idx39 = (* (( (ptr) (* (( (ptr) gf←c23268)+8)/* collectionClass←v2664 */  ))+27) ),
               limit40 = (* (( (ptr) var←c21284)+29) ),
               BCK(idx39, limit40)
               )) );
         };
      classPart←v6844 = XR←Narrow(var←c0251, (* (( (ptr) gf←c23268)+16) ));
      };
SOURCE(3910, 242)
   {
      register word l←v6888;
      l←v6888 = children←v4696;
      lab←L100003: ;
      if ((l←v6888 != 0)) {
         }
      else {
         goto lab←L100000;
         };
SOURCE(3966, 106)
      {
         word var←c21316;
         var←c21316 = (* (( (ptr) (*  (ptr) l←v6888 ))+31) );
         if ((var←c21316 == 0) || (var←c21316 == collection←v4668)) {
SOURCE(4012, 60)
            {
               word pd41;
               pd41 = (* (( (ptr) (* (( (ptr) gf←c23268)+73)/* var←c20964 */  ))+34) );
               (void) ( *( (fPt) ((*  (ptr) pd41 ))))((*  (ptr) l←v6888 ), collection←v4668, pd41);
               };
            }
         else {
SOURCE(4085, 5)
            (void) XR←RaiseUnnamedError();
            };
         };
SOURCE(4092, 60)
      if (((* (( (ptr) (*  (ptr) l←v6888 ))+10) ) == 3)) {
SOURCE(4126, 26)
         (* (( (ptr) (*  (ptr) l←v6888 ))+10) ) = 0;
         };
      l←v6888 = (* (( (ptr) l←v6888)+1) );
      goto lab←L100003;
      lab←L100000: ;
      };
SOURCE(4163, 60)
   {
      word pd42;
      pd42 = (* (( (ptr) classPart←v6844)+2) );
      (void) ( *( (fPt) ((*  (ptr) pd42 ))))(collection←v4668, children←v4696, reConsiderNow←v4724, pd42);
      };
   }

static void EnumerateChildren←P660(collection←v4868, eachChild←v4896, data←v4924)
   word collection←v4868;
   word eachChild←v4896;
   word data←v4924;
   {
   register ptr gf←c23300 =  (ptr) &globalframe;
   word classPart←v7016;
   /* EnumerateChildren: */ 
SOURCE(4229, 234)
SOURCE(4338, 67)
   {
      word var←c21348;
      word var←c0252;
      var←c21348 = (* (( (ptr) collection←v4868)+4) );
      {
         word idx43;
         word limit44;
         var←c0252 = (* ((( (ptr) var←c21348)+30)+(
               idx43 = (* (( (ptr) (* (( (ptr) gf←c23300)+8)/* collectionClass←v2664 */  ))+27) ),
               limit44 = (* (( (ptr) var←c21348)+29) ),
               BCK(idx43, limit44)
               )) );
         };
      classPart←v7016 = XR←Narrow(var←c0252, (* (( (ptr) gf←c23300)+16) ));
      };
SOURCE(4407, 56)
   {
      word pd45;
      pd45 = (*  (ptr) classPart←v7016 );
      (void) ( *( (fPt) ((*  (ptr) pd45 ))))(collection←v4868, eachChild←v4896, data←v4924, pd45);
      };
   }

static word Find←P720(ip←v4996, child←v5024, start←v5052)
   word ip←v4996;
   word child←v5024;
   word start←v5052;
   {
   word var←c5096;
   /* Find: */ 
SOURCE(4469, 172)
SOURCE(4469, 172)
   var←c5096 =  (word) -1;
SOURCE(4563, 78)
   {
      register word i←v7060;
      register word noName←c21380;
      word var←c21412;
      word var←c0253;
      i←v7060 = start←v5052;
      noName←c21380 = (*  (ptr) ip←v4996 );
      if ((i←v7060 >= noName←c21380)) {
         goto lab←L100004;
         };
      lab←L100007: ;
SOURCE(4602, 39)
      var←c21412 = (* (( (ptr) ip←v4996)+5) );
      {
         word limit46;
         var←c0253 = (* ((( (ptr) var←c21412)+1)+(
               limit46 = (*  (ptr) var←c21412 ),
               BCK(i←v7060, limit46)
               )) );
         };
      if ((var←c0253 == child←v5024)) {
SOURCE(4631, 10)
         return(i←v7060);
         };
      i←v7060 = (i←v7060 + 1);
      if ((i←v7060 < noName←c21380)) {
         goto lab←L100007;
         };
      lab←L100004: ;
      };
SOURCE(4469, 172)
   return(var←c5096);
   }

static void RemoveXWindowsLR←P780(child←v5156)
   word child←v5156;
   {
   register ptr gf←c23332 =  (ptr) &globalframe;
   /* RemoveXWindowsLR: */ 
SOURCE(4656, 135)
SOURCE(4699, 92)
   if ((child←v5156 != 0)) {
SOURCE(4717, 76)
      {
         word p←v7104;
SOURCE(4719, 24)
         p←v7104 = (* (( (ptr) child←v5156)+31) );
SOURCE(4745, 46)
         if ((p←v7104 != 0)) {
SOURCE(4759, 32)
            {
               word pd47;
               pd47 = (* (( (ptr) (* (( (ptr) gf←c23332)+73)/* var←c20964 */  ))+15) );
               (void) ( *( (fPt) ((*  (ptr) pd47 ))))(child←v5156, pd47);
               };
            };
         };
      };
   }

static word RemoveAndSquezeLR←P840(ip←v5216, child←v5244)
   word ip←v5216;
   word child←v5244;
   {
   word idx←v5288;
   /* RemoveAndSquezeLR: */ 
SOURCE(4800, 290)
SOURCE(4887, 21)
   idx←v5288 = (word) Find←P720(ip←v5216, child←v5244, 0);
SOURCE(4910, 180)
   if (( (int)idx←v5288 >=  (int)0)) {
SOURCE(4927, 15)
      (* (( (ptr) ip←v5216)+4) ) = 0;
SOURCE(4945, 70)
      {
         register word i←v7148;
         register word noName←c21444;
         i←v7148 = idx←v5288;
         noName←c21444 = (*  (ptr) ip←v5216 );
         if (( (int)i←v7148 >=  (int)noName←c21444)) {
            goto lab←L100008;
            };
         i←v7148 = (i←v7148 + 1);
         if (( (int)i←v7148 ==  (int)noName←c21444)) {
            goto lab←L100008;
            };
         lab←L100011: ;
SOURCE(4982, 33)
         {
            word var←c21508;
            word var←c21540;
            var←c21508 = (i←v7148 - 1);
            var←c21540 = (* (( (ptr) ip←v5216)+5) );
            {
               word var←c21476;
               var←c21476 = (* (( (ptr) ip←v5216)+5) );
               {
                  word limit48;
                  word limit49;
                  (* ((( (ptr) var←c21540)+1)+(
                        limit48 = (*  (ptr) var←c21540 ),
                        BCK(var←c21508, limit48)
                        )) ) = (* ((( (ptr) var←c21476)+1)+(
                        limit49 = (*  (ptr) var←c21476 ),
                        BCK(i←v7148, limit49)
                        )) );
                  };
               };
            };
         i←v7148 = (i←v7148 + 1);
         if (( (int)i←v7148 <  (int)noName←c21444)) {
            goto lab←L100011;
            };
         lab←L100008: ;
         };
SOURCE(5026, 29)
      {
         word idx50;
         (*  (ptr) ip←v5216 ) = (
            idx50 = (word) ((*  (ptr) ip←v5216 ) - 1),
            SGNCK(idx50)
            );
         };
SOURCE(5057, 33)
      {
         word var←c21572;
         var←c21572 = (* (( (ptr) ip←v5216)+5) );
         {
            word idx51;
            word limit52;
            (* ((( (ptr) var←c21572)+1)+(
                  idx51 = (*  (ptr) ip←v5216 ),
                  limit52 = (*  (ptr) var←c21572 ),
                  BCK(idx51, limit52)
                  )) ) = 0;
            };
         };
      };
SOURCE(4800, 290)
   return(idx←v5288);
   }

static void AssertEmptySlotsLR←P900(collection←v5348, num←v5376)
   word collection←v5348;
   word num←v5376;
   {
   register ptr gf←c23364 =  (ptr) &globalframe;
   word ip←v7192;
   /* AssertEmptySlotsLR: */ 
SOURCE(5099, 165)
SOURCE(5176, 58)
   {
      word var←c21604;
      word superClass←v19388;
      superClass←v19388 = (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c23364)+76)/* var←c21636 */  ))+14) ) );
      {
         word idx53;
         word limit54;
         var←c21604 = (* ((( (ptr) collection←v5348)+49)+(
               idx53 = (* (( (ptr) superClass←v19388)+4) ),
               limit54 = (* (( (ptr) collection←v5348)+48) ),
               BCK(idx53, limit54)
               )) );
         };
      ip←v7192 = XR←Narrow(var←c21604, (* (( (ptr) gf←c23364)+17) ));
      };
SOURCE(5236, 28)
   (void) AssertEmptySlotsILR←P960(ip←v7192, num←v5376);
   }

static void AssertEmptySlotsILR←P960(ip←v5436, num←v5464)
   word ip←v5436;
   word num←v5464;
   {
   register ptr gf←c23396 =  (ptr) &globalframe;
   word oldCount←v7236;
   /* AssertEmptySlotsILR: */ 
SOURCE(5270, 613)
SOURCE(5335, 33)
   oldCount←v7236 = (*  (ptr) (* (( (ptr) ip←v5436)+5) ) );
SOURCE(5370, 21)
   if ((num←v5464 < 1)) {
SOURCE(5384, 7)
      num←v5464 = 7;
      };
SOURCE(5393, 41)
   if ((((*  (ptr) ip←v5436 ) + num←v5464) <= oldCount←v7236)) {
SOURCE(5428, 6)
      return;
      };
SOURCE(5436, 131)
   if ((0 != (* (( (ptr) ip←v5436)+1) ))) {
SOURCE(5463, 104)
      {
         register word i←v7280 = 0;
         register word noName←c21668;
         word var←c21700;
         noName←c21668 = (*  (ptr) ip←v5436 );
         if (( (int)i←v7280 >=  (int)noName←c21668)) {
            goto lab←L100013;
            };
         lab←L100016: ;
SOURCE(5498, 69)
         {
            word limit55;
            var←c21700 = (* (( (ptr) ip←v5436)+5) );
            if (((* ((( (ptr) var←c21700)+1)+(
                  limit55 = (*  (ptr) var←c21700 ),
                  BCK(i←v7280, limit55)
                  )) ) == 0)) {
SOURCE(5532, 11)
               num←v5464 = SGNCK((num←v5464 - 1));
SOURCE(5545, 22)
               if ((num←v5464 == 0)) {
SOURCE(5561, 6)
                  return;
                  };
               };
            };
         i←v7280 = (i←v7280 + 1);
         if (( (int)i←v7280 <  (int)noName←c21668)) {
            goto lab←L100016;
            };
         lab←L100013: ;
         };
      };
SOURCE(5582, 41)
   if ((((*  (ptr) ip←v5436 ) + num←v5464) <= oldCount←v7236)) {
SOURCE(5617, 6)
      return;
      };
SOURCE(5625, 260)
   {
      word newCount←v7324;
      word newCd←v7352;
SOURCE(5631, 70)
      {
         word x56;
         word x57;
         word x58;
         newCount←v7324 = (x56 = ((oldCount←v7236 + oldCount←v7236) + 1),
            x57 = MAX( (unsigned) , (oldCount←v7236 + 5), x56),
            x58 = ((*  (ptr) ip←v5436 ) + num←v5464),
            MAX( (unsigned) , x57, x58));
         };
SOURCE(5703, 53)
      {
         word var←c21732;
         word var←c21764;
         word var←c21796;
         var←c21732 = BCK(newCount←v7324, 67108863);
         var←c21764 = (var←c21732 << 2);
         var←c21796 = XR←NewObject((4 + var←c21764), (* (( (ptr) gf←c23396)+10) ));
         (*  (ptr) var←c21796 ) = var←c21732;
         newCd←v7352 = var←c21796;
         };
SOURCE(5758, 15)
      (* (( (ptr) ip←v5436)+4) ) = 0;
SOURCE(5775, 78)
      {
         register word i←v7408 = 0;
         register word noName←c21828;
         noName←c21828 = (*  (ptr) ip←v5436 );
         if (( (int)i←v7408 >=  (int)noName←c21828)) {
            goto lab←L100017;
            };
         lab←L100020: ;
SOURCE(5810, 43)
         {
            word var←c21860;
            var←c21860 = (* (( (ptr) ip←v5436)+5) );
            {
               word limit59;
               word limit60;
               (* ((( (ptr) newCd←v7352)+1)+(
                     limit59 = (*  (ptr) newCd←v7352 ),
                     BCK(i←v7408, limit59)
                     )) ) = (* ((( (ptr) var←c21860)+1)+(
                     limit60 = (*  (ptr) var←c21860 ),
                     BCK(i←v7408, limit60)
                     )) );
               };
            };
         i←v7408 = (i←v7408 + 1);
         if (( (int)i←v7408 <  (int)noName←c21828)) {
            goto lab←L100020;
            };
         lab←L100017: ;
         };
SOURCE(5864, 19)
      (* (( (ptr) ip←v5436)+5) ) = newCd←v7352;
      };
   }

static word RemoveChildInPlaceLR←P1020(widget←v5524, child←v5552)
   word widget←v5524;
   word child←v5552;
   {
   W6 var←c23428;
   register ptr gf←c23460 =  (ptr) &globalframe;
   word done←v5596;
   /* declaration of var←c21892 skipped */ 
   word ip←v7480;
   /* RemoveChildInPlaceLR: */ 
SOURCE(5894, 541)
   {
      word tmpAddr61;
      tmpAddr61 = (word) (( (ptr) &var←c23428)+4)/* var←c21892 */ ;
      (*  (ptr) tmpAddr61 ) = ( ((word)  (fPt) RemoveInPlaceLR←P2016) );
      (* (( (ptr) tmpAddr61) + 1) ) = 1;
      };
SOURCE(5894, 541)
   done←v5596 = 0;
SOURCE(6249, 54)
   {
      word var←c21924;
      word superClass←v19960;
      superClass←v19960 = (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c23460)+76)/* var←c21636 */  ))+14) ) );
      {
         word idx62;
         word limit63;
         var←c21924 = (* ((( (ptr) widget←v5524)+49)+(
               idx62 = (* (( (ptr) superClass←v19960)+4) ),
               limit63 = (* (( (ptr) widget←v5524)+48) ),
               BCK(idx62, limit63)
               )) );
         };
      ip←v7480 = XR←Narrow(var←c21924, (* (( (ptr) gf←c23460)+17) ));
      };
SOURCE(6305, 18)
   if ((child←v5552 == 0)) {
SOURCE(6323, 5)
      (void) XR←RaiseUnnamedError();
      };
SOURCE(6330, 105)
   if (( (int)(word) RemoveInPlaceLR←P2016(ip←v7480, child←v5552, (word) (( (bPt) &var←c23428)+16)/* var←c21892 */ ) >=  (int)0)) {
SOURCE(6370, 11)
      done←v5596 = 1;
SOURCE(6383, 23)
      (void) RemoveXWindowsLR←P780(child←v5552);
SOURCE(6408, 27)
      {
         word pd64;
         pd64 = (* (( (ptr) (* (( (ptr) gf←c23460)+74)/* var←c21060 */  ))+45) );
         (void) ( *( (fPt) ((*  (ptr) pd64 ))))(widget←v5524, pd64);
         };
      };
SOURCE(5894, 541)
   return(done←v5596);
   }

static word RemoveInPlaceLR←P2016(ip←v7556, child←v7584, formal←c23492)
   word ip←v7556;
   word child←v7584;
   word formal←c23492;
   {
   word idx←v7628;
   formal←c23492 = (formal←c23492 - 16);
   /* RemoveInPlaceLR: */ 
SOURCE(5985, 256)
SOURCE(6070, 21)
   idx←v7628 = (word) Find←P720(ip←v7556, child←v7584, 0);
SOURCE(6093, 148)
   if (( (int)idx←v7628 >=  (int)0)) {
SOURCE(6110, 15)
      (* (( (ptr) ip←v7556)+4) ) = 0;
SOURCE(6128, 24)
      {
         word var←c21956;
         var←c21956 = (* (( (ptr) ip←v7556)+5) );
         {
            word limit65;
            (* ((( (ptr) var←c21956)+1)+(
                  limit65 = (*  (ptr) var←c21956 ),
                  BCK(idx←v7628, limit65)
                  )) ) = 0;
            };
         };
SOURCE(6154, 87)
      if (( (int)(idx←v7628 + 1) ==  (int)(*  (ptr) ip←v7556 ))) {
SOURCE(6182, 36)
         {
            word idx66;
            (*  (ptr) ip←v7556 ) = (
               idx66 = (word) ((*  (ptr) ip←v7556 ) - 1),
               SGNCK(idx66)
               );
            };
         }
      else {
SOURCE(6218, 23)
         (* (( (ptr) ip←v7556)+1) ) = 1;
         };
      };
SOURCE(5985, 256)
   return(idx←v7628);
   }

static word RemoveChildAndSqueezeLR←P1080(widget←v5656, child←v5684)
   word widget←v5656;
   word child←v5684;
   {
   W6 var←c23524;
   register ptr gf←c23556 =  (ptr) &globalframe;
   word done←v5728;
   /* declaration of var←c21988 skipped */ 
   word ip←v7684;
   /* RemoveChildAndSqueezeLR: */ 
SOURCE(6444, 862)
   {
      word tmpAddr67;
      tmpAddr67 = (word) (( (ptr) &var←c23524)+4)/* var←c21988 */ ;
      (*  (ptr) tmpAddr67 ) = ( ((word)  (fPt) SqueezeNRemoveLR←P2076) );
      (* (( (ptr) tmpAddr67) + 1) ) = 1;
      };
SOURCE(6444, 862)
   done←v5728 = 0;
SOURCE(7116, 54)
   {
      word var←c22020;
      word superClass←v19916;
      superClass←v19916 = (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c23556)+76)/* var←c21636 */  ))+14) ) );
      {
         word idx68;
         word limit69;
         var←c22020 = (* ((( (ptr) widget←v5656)+49)+(
               idx68 = (* (( (ptr) superClass←v19916)+4) ),
               limit69 = (* (( (ptr) widget←v5656)+48) ),
               BCK(idx68, limit69)
               )) );
         };
      ip←v7684 = XR←Narrow(var←c22020, (* (( (ptr) gf←c23556)+17) ));
      };
SOURCE(7172, 18)
   if ((child←v5684 == 0)) {
SOURCE(7190, 5)
      (void) XR←RaiseUnnamedError();
      };
SOURCE(7197, 109)
   if ((0 != (word) SqueezeNRemoveLR←P2076(ip←v7684, child←v5684, (word) (( (bPt) &var←c23524)+16)/* var←c21988 */ ))) {
SOURCE(7241, 11)
      done←v5728 = 1;
SOURCE(7254, 23)
      (void) RemoveXWindowsLR←P780(child←v5684);
SOURCE(7279, 27)
      {
         word pd70;
         pd70 = (* (( (ptr) (* (( (ptr) gf←c23556)+74)/* var←c21060 */  ))+45) );
         (void) ( *( (fPt) ((*  (ptr) pd70 ))))(widget←v5656, pd70);
         };
      };
SOURCE(6444, 862)
   return(done←v5728);
   }

static word SqueezeNRemoveLR←P2076(ip←v7760, child←v7788, formal←c23588)
   word ip←v7760;
   word child←v7788;
   word formal←c23588;
   {
   word found←v7832;
   word nextToUse←v7860 = 0;
   word nextToWatch←v7888 = 0;
   formal←c23588 = (formal←c23588 - 16);
   /* SqueezeNRemoveLR: */ 
SOURCE(6538, 573)
SOURCE(6538, 573)
   found←v7832 = 0;
SOURCE(6666, 298)
   lab←L100025: ;
   if ((nextToWatch←v7888 < (*  (ptr) ip←v7760 ))) {
      }
   else {
      goto lab←L100023;
      };
   {
      word c←v7932;
SOURCE(6700, 46)
      {
         word var←c22052;
         var←c22052 = (* (( (ptr) ip←v7760)+5) );
         {
            word limit71;
            c←v7932 = (* ((( (ptr) var←c22052)+1)+(
                  limit71 = (*  (ptr) var←c22052 ),
                  BCK(nextToWatch←v7888, limit71)
                  )) );
            };
         };
SOURCE(6748, 27)
      nextToWatch←v7888 = (nextToWatch←v7888 + 1);
      if ((c←v7932 == 0) || ((* (( (ptr) c←v7932)+38) ) == 4)) {
SOURCE(6820, 15)
         (* (( (ptr) ip←v7760)+4) ) = 0;
SOURCE(6837, 4)
         goto lab←L100025;
         }
      else {
         if ((c←v7932 == child←v7788)) {
SOURCE(6856, 12)
            found←v7832 = 1;
SOURCE(6870, 15)
            (* (( (ptr) ip←v7760)+4) ) = 0;
SOURCE(6887, 4)
            goto lab←L100025;
            }
         else {
SOURCE(6907, 32)
            {
               word var←c22084;
               var←c22084 = (* (( (ptr) ip←v7760)+5) );
               {
                  word limit72;
                  (* ((( (ptr) var←c22084)+1)+(
                        limit72 = (*  (ptr) var←c22084 ),
                        BCK(nextToUse←v7860, limit72)
                        )) ) = c←v7932;
                  };
               };
SOURCE(6941, 23)
            nextToUse←v7860 = (nextToUse←v7860 + 1);
            };
         };
      };
   goto lab←L100025;
   lab←L100023: ;
SOURCE(6978, 81)
   {
      register word empty←v7976;
      register word noName←c22116;
      empty←v7976 = nextToUse←v7860;
      noName←c22116 = (*  (ptr) ip←v7760 );
      if ((empty←v7976 >= noName←c22116)) {
         goto lab←L100026;
         };
      lab←L100029: ;
SOURCE(7025, 34)
      {
         word var←c22148;
         var←c22148 = (* (( (ptr) ip←v7760)+5) );
         {
            word limit73;
            (* ((( (ptr) var←c22148)+1)+(
                  limit73 = (*  (ptr) var←c22148 ),
                  BCK(empty←v7976, limit73)
                  )) ) = 0;
            };
         };
      empty←v7976 = (empty←v7976 + 1);
      if ((empty←v7976 < noName←c22116)) {
         goto lab←L100029;
         };
      lab←L100026: ;
      };
SOURCE(7061, 24)
   (*  (ptr) ip←v7760 ) = nextToUse←v7860;
SOURCE(7087, 24)
   (* (( (ptr) ip←v7760)+1) ) = 0;
SOURCE(6538, 573)
   return(found←v7832);
   }

static void AddChildInFirstPlaceLR←P1140(collection←v5788, newChild←v5816, position←v5844, reConsiderNow←v5872)
   word collection←v5788;
   word newChild←v5816;
   word position←v5844;
   word reConsiderNow←v5872;
   {
   W6 var←c23620;
   register ptr gf←c23652 =  (ptr) &globalframe;
   /* declaration of var←c22180 skipped */ 
   word ip←v8048;
   /* AddChildInFirstPlaceLR: */ 
SOURCE(7315, 1027)
   {
      word tmpAddr74;
      tmpAddr74 = (word) (( (ptr) &var←c23620)+4)/* var←c22180 */ ;
      (*  (ptr) tmpAddr74 ) = ( ((word)  (fPt) IncludeHardLR←P2232) );
      (* (( (ptr) tmpAddr74) + 1) ) = 1;
      };
SOURCE(8025, 58)
   {
      word var←c22212;
      word superClass←v19872;
      superClass←v19872 = (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c23652)+76)/* var←c21636 */  ))+14) ) );
      {
         word idx75;
         word limit76;
         var←c22212 = (* ((( (ptr) collection←v5788)+49)+(
               idx75 = (* (( (ptr) superClass←v19872)+4) ),
               limit76 = (* (( (ptr) collection←v5788)+48) ),
               BCK(idx75, limit76)
               )) );
         };
      ip←v8048 = XR←Narrow(var←c22212, (* (( (ptr) gf←c23652)+17) ));
      };
SOURCE(8085, 51)
   if ((newChild←v5816 == 0) || ((* (( (ptr) newChild←v5816)+31) ) != collection←v5788)) {
SOURCE(8136, 5)
      (void) XR←RaiseUnnamedError();
      };
SOURCE(8143, 30)
   if (( (int)(word) Find←P720(ip←v8048, newChild←v5816, 0) >=  (int)0)) {
SOURCE(8173, 5)
      (void) XR←RaiseUnnamedError();
      };
SOURCE(8214, 27)
   (void) IncludeHardLR←P2232(ip←v8048, newChild←v5816, (word) (( (bPt) &var←c23620)+16)/* var←c22180 */ );
SOURCE(8243, 31)
   {
      word pd77;
      pd77 = (* (( (ptr) (* (( (ptr) gf←c23652)+74)/* var←c21060 */  ))+45) );
      (void) ( *( (fPt) ((*  (ptr) pd77 ))))(collection←v5788, pd77);
      };
SOURCE(8276, 66)
   if ((0 != reConsiderNow←v5872)) {
SOURCE(8298, 44)
      {
         word pd78;
         pd78 = (* (( (ptr) (* (( (ptr) gf←c23652)+73)/* var←c20964 */  ))+16) );
         (void) ( *( (fPt) ((*  (ptr) pd78 ))))(collection←v5788, pd78);
         };
      };
   }

static void IncludeHardLR←P2232(ip←v8124, newChild←v8152, formal←c23716)
   word ip←v8124;
   word newChild←v8152;
   word formal←c23716;
   {
   W6 var←c23684;
   /* declaration of var←c22244 skipped */ 
   word idx←v8208;
   formal←c23716 = (formal←c23716 - 16);
   var←c23684.f0 = formal←c23716;
   /* IncludeHardLR: */ 
SOURCE(7440, 577)
   {
      word tmpAddr79;
      tmpAddr79 = (word) (( (ptr) &var←c23684)+4)/* var←c22244 */ ;
      (*  (ptr) tmpAddr79 ) = ( ((word)  (fPt) IncludeLR←P2292) );
      (* (( (ptr) tmpAddr79) + 1) ) = 1;
      };
SOURCE(7909, 34)
   idx←v8208 = (word) IncludeLR←P2292(ip←v8124, newChild←v8152, (word) (( (bPt) &var←c23684)+16)/* var←c22244 */ );
SOURCE(7945, 72)
   if (( (int)idx←v8208 <  (int)0)) {
SOURCE(7961, 26)
      (void) AssertEmptySlotsILR←P960(ip←v8124, 1);
SOURCE(7989, 28)
      {
         word var←c22276;
         var←c22276 = (word) IncludeLR←P2292(ip←v8124, newChild←v8152, (word) (( (bPt) &var←c23684)+16)/* var←c22244 */ );
         };
      };
   }

static word IncludeLR←P2292(ip←v8284, w←v8312, formal←c23748)
   word ip←v8284;
   word w←v8312;
   word formal←c23748;
   {
   word var←c8356;
   formal←c23748 = (formal←c23748 - 16);
   /* IncludeLR: */ 
SOURCE(7507, 394)
SOURCE(7507, 394)
   var←c8356 =  (word) -1;
SOURCE(7580, 194)
   if ((0 != (* (( (ptr) ip←v8284)+1) ))) {
SOURCE(7605, 169)
      {
         word idx←v8384;
SOURCE(7607, 24)
         idx←v8384 = (word) Find←P720(ip←v8284, 0, 0);
SOURCE(7633, 14)
         if (( (int)idx←v8384 <  (int)0)) {
SOURCE(7647, 5)
            (void) XR←RaiseUnnamedError();
            };
SOURCE(7680, 22)
         {
            word var←c22308;
            var←c22308 = (* (( (ptr) ip←v8284)+5) );
            {
               word limit80;
               (* ((( (ptr) var←c22308)+1)+(
                     limit80 = (*  (ptr) var←c22308 ),
                     BCK(idx←v8384, limit80)
                     )) ) = w←v8312;
               };
            };
SOURCE(7704, 55)
         if (( (int)(word) Find←P720(ip←v8284, 0, SGNCK((idx←v8384 + 1))) <  (int)0)) {
SOURCE(7735, 24)
            (* (( (ptr) ip←v8284)+1) ) = 0;
            };
SOURCE(7761, 13)
         return(idx←v8384);
         };
      };
SOURCE(7777, 124)
   if (((*  (ptr) ip←v8284 ) < (*  (ptr) (* (( (ptr) ip←v8284)+5) ) ))) {
SOURCE(7816, 87)
      {
         word idx←v8428;
SOURCE(7818, 23)
         idx←v8428 = (*  (ptr) ip←v8284 );
SOURCE(7843, 22)
         {
            word var←c22340;
            var←c22340 = (* (( (ptr) ip←v8284)+5) );
            {
               word limit81;
               (* ((( (ptr) var←c22340)+1)+(
                     limit81 = (*  (ptr) var←c22340 ),
                     BCK(idx←v8428, limit81)
                     )) ) = w←v8312;
               };
            };
SOURCE(7867, 20)
         (*  (ptr) ip←v8284 ) = (idx←v8428 + 1);
SOURCE(7889, 12)
         return(idx←v8428);
         };
      };
SOURCE(7507, 394)
   return(var←c8356);
   }

static void DefaultAddChildrenLR←P1200(collection←v5944, children←v5972, reConsiderNow←v6000)
   word collection←v5944;
   word children←v5972;
   word reConsiderNow←v6000;
   {
   register ptr gf←c23780 =  (ptr) &globalframe;
   word classPart←v8472;
   /* DefaultAddChildrenLR: */ 
SOURCE(8348, 312)
SOURCE(8457, 67)
   {
      word var←c22372;
      word var←c0254;
      var←c22372 = (* (( (ptr) collection←v5944)+4) );
      {
         word idx82;
         word limit83;
         var←c0254 = (* ((( (ptr) var←c22372)+30)+(
               idx82 = (* (( (ptr) (* (( (ptr) gf←c23780)+8)/* collectionClass←v2664 */  ))+27) ),
               limit83 = (* (( (ptr) var←c22372)+29) ),
               BCK(idx82, limit83)
               )) );
         };
      classPart←v8472 = XR←Narrow(var←c0254, (* (( (ptr) gf←c23780)+16) ));
      };
SOURCE(8526, 134)
   {
      register word l←v8516;
      l←v8516 = children←v5972;
      lab←L100034: ;
      if ((l←v8516 != 0)) {
         }
      else {
         goto lab←L100031;
         };
SOURCE(8582, 78)
      {
         word pd84;
         pd84 = (* (( (ptr) classPart←v8472)+1) );
         (void) ( *( (fPt) ((*  (ptr) pd84 ))))(collection←v5944, (*  (ptr) l←v8516 ), 0,  ( ((* (( (ptr) l←v8516)+1) ) != 0) ? (0 != reConsiderNow←v6000) : 0 ) , pd84)
         ;
         };
      l←v8516 = (* (( (ptr) l←v8516)+1) );
      goto lab←L100034;
      lab←L100031: ;
      };
   }

static word CountChildren←P1260(collection←v6144)
   word collection←v6144;
   {
   register ptr gf←c23812 =  (ptr) &globalframe;
   word n←v6188;
   word ip←v8644;
   /* CountChildren: */ 
SOURCE(8675, 246)
SOURCE(8675, 246)
   n←v6188 = 0;
SOURCE(8751, 58)
   {
      word var←c22404;
      word superClass←v19828;
      superClass←v19828 = (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c23812)+76)/* var←c21636 */  ))+14) ) );
      {
         word idx85;
         word limit86;
         var←c22404 = (* ((( (ptr) collection←v6144)+49)+(
               idx85 = (* (( (ptr) superClass←v19828)+4) ),
               limit86 = (* (( (ptr) collection←v6144)+48) ),
               BCK(idx85, limit86)
               )) );
         };
      ip←v8644 = XR←Narrow(var←c22404, (* (( (ptr) gf←c23812)+17) ));
      };
SOURCE(8811, 110)
   {
      register word i←v8688 = 0;
      register word noName←c22436;
      noName←c22436 = (*  (ptr) ip←v8644 );
      if ((i←v8688 >= noName←c22436)) {
         goto lab←L100036;
         };
      lab←L100039: ;
      {
         word c←v8732;
SOURCE(8846, 26)
         {
            word var←c22468;
            var←c22468 = (* (( (ptr) ip←v8644)+5) );
            {
               word limit87;
               c←v8732 = (* ((( (ptr) var←c22468)+1)+(
                     limit87 = (*  (ptr) var←c22468 ),
                     BCK(i←v8688, limit87)
                     )) );
               };
            };
SOURCE(8874, 47)
         if ( ( (c←v8732 != 0) ? ((* (( (ptr) c←v8732)+38) ) < 4) : 0 ) ) {
SOURCE(8905, 16)
            n←v6188 = (n←v6188 + 1);
            };
         };
      i←v8688 = (i←v8688 + 1);
      if ((i←v8688 < noName←c22436)) {
         goto lab←L100039;
         };
      lab←L100036: ;
      };
SOURCE(8675, 246)
   return(n←v6188);
   }

static void BasicEnumerateChildren←P1320(collection←v6248, eachChild←v6276, data←v6304)
   word collection←v6248;
   word eachChild←v6276;
   word data←v6304;
   {
   register ptr gf←c23844 =  (ptr) &globalframe;
   word ip←v8776;
   /* BasicEnumerateChildren: */ 
SOURCE(8927, 322)
SOURCE(9041, 58)
   {
      word var←c22500;
      word superClass←v19784;
      superClass←v19784 = (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c23844)+76)/* var←c21636 */  ))+14) ) );
      {
         word idx88;
         word limit89;
         var←c22500 = (* ((( (ptr) collection←v6248)+49)+(
               idx88 = (* (( (ptr) superClass←v19784)+4) ),
               limit89 = (* (( (ptr) collection←v6248)+48) ),
               BCK(idx88, limit89)
               )) );
         };
      ip←v8776 = XR←Narrow(var←c22500, (* (( (ptr) gf←c23844)+17) ));
      };
SOURCE(9101, 148)
   {
      register word i←v8820 = 0;
      register word noName←c22532;
      noName←c22532 = (*  (ptr) ip←v8776 );
      if ((i←v8820 >= noName←c22532)) {
         goto lab←L100041;
         };
      lab←L100044: ;
      {
         word c←v8864;
SOURCE(9136, 26)
         {
            word var←c22564;
            var←c22564 = (* (( (ptr) ip←v8776)+5) );
            {
               word limit90;
               c←v8864 = (* ((( (ptr) var←c22564)+1)+(
                     limit90 = (*  (ptr) var←c22564 ),
                     BCK(i←v8820, limit90)
                     )) );
               };
            };
SOURCE(9164, 85)
         if ( ( (c←v8864 != 0) ? ((* (( (ptr) c←v8864)+38) ) < 4) : 0 ) ) {
SOURCE(9196, 53)
            if ((0 != (word) ( *( (fPt) ((*  (ptr) eachChild←v6276 ))))(collection←v6248, c←v8864, data←v6304, i←v8820, eachChild←v6276)
            )) {
SOURCE(9243, 6)
               return;
               };
            };
         };
      i←v8820 = (i←v8820 + 1);
      if ((i←v8820 < noName←c22532)) {
         goto lab←L100044;
         };
      lab←L100041: ;
      };
   }

static word InternalEnumerateChildren←P1380(self←v11736, classLevel←v11764, proc←v11792, data←v11820)
   word self←v11736;
   word classLevel←v11764;
   word proc←v11792;
   word data←v11820;
   {
   register ptr gf←c23876 =  (ptr) &globalframe;
   word stop←v11864;
   word ip←v8908;
   /* InternalEnumerateChildren: */ 
SOURCE(9264, 269)
SOURCE(9264, 269)
   stop←v11864 = 0;
SOURCE(9329, 52)
   {
      word var←c22596;
      word superClass←v19740;
      superClass←v19740 = (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c23876)+76)/* var←c21636 */  ))+14) ) );
      {
         word idx91;
         word limit92;
         var←c22596 = (* ((( (ptr) self←v11736)+49)+(
               idx91 = (* (( (ptr) superClass←v19740)+4) ),
               limit92 = (* (( (ptr) self←v11736)+48) ),
               BCK(idx91, limit92)
               )) );
         };
      ip←v8908 = XR←Narrow(var←c22596, (* (( (ptr) gf←c23876)+17) ));
      };
SOURCE(9383, 150)
   {
      register word i←v8952 = 0;
      register word noName←c22628;
      noName←c22628 = (*  (ptr) ip←v8908 );
      if ((i←v8952 >= noName←c22628)) {
         goto lab←L100046;
         };
      lab←L100049: ;
      {
         word c←v8996;
SOURCE(9418, 26)
         {
            word var←c22660;
            var←c22660 = (* (( (ptr) ip←v8908)+5) );
            {
               word limit93;
               c←v8996 = (* ((( (ptr) var←c22660)+1)+(
                     limit93 = (*  (ptr) var←c22660 ),
                     BCK(i←v8952, limit93)
                     )) );
               };
            };
SOURCE(9446, 87)
         if ( ( (c←v8996 != 0) ? ((* (( (ptr) c←v8996)+38) ) < 4) : 0 ) ) {
SOURCE(9480, 53)
            if ((0 != (word) ( *( (fPt) ((*  (ptr) proc←v11792 ))))(self←v11736, c←v8996, data←v11820, proc←v11792))) {
SOURCE(9514, 11)
               stop←v11864 = 1;
SOURCE(9527, 6)
               return(stop←v11864);
               };
            };
         };
      i←v8952 = (i←v8952 + 1);
      if ((i←v8952 < noName←c22628)) {
         goto lab←L100049;
         };
      lab←L100046: ;
      };
SOURCE(9264, 269)
   return(stop←v11864);
   }

static word NewCollectionClassPart←P1440(class←v6376)
   word class←v6376;
   {
   register ptr gf←c23908 =  (ptr) &globalframe;
   word newClassPart←v6420;
   word oldClassPart←v9040;
   /* NewCollectionClassPart: */ 
SOURCE(9552, 321)
SOURCE(9552, 321)
   newClassPart←v6420 = 0;
SOURCE(9666, 86)
   {
      word idx94;
      word limit95;
      oldClassPart←v9040 = XR←Narrow((* ((( (ptr) class←v6376)+30)+(
               idx94 = (* (( (ptr) (* (( (ptr) gf←c23908)+8)/* collectionClass←v2664 */  ))+27) ),
               limit95 = (* (( (ptr) class←v6376)+29) ),
               BCK(idx94, limit95)
               )) ), (* (( (ptr) gf←c23908)+16) ));
      };
SOURCE(9756, 58)
   {
      word var←c22692;
      var←c22692 = XR←NewObject(12, (* (( (ptr) gf←c23908)+16) ));
      (*  (W3Pt) var←c22692 ) = (*  (W3Pt) oldClassPart←v9040 );
      newClassPart←v6420 = var←c22692;
      };
SOURCE(9816, 57)
   {
      word idx96;
      word limit97;
      (* ((( (ptr) class←v6376)+30)+(
            idx96 = (* (( (ptr) (* (( (ptr) gf←c23908)+8)/* collectionClass←v2664 */  ))+27) ),
            limit97 = (* (( (ptr) class←v6376)+29) ),
            BCK(idx96, limit97)
            )) ) = newClassPart←v6420;
      };
SOURCE(9552, 321)
   return(newClassPart←v6420);
   }

/* file: XTkCollectionsImpl, module: XTkCollectionsImpl, compiled at: June 12, 1992 10:44:05 am PDT */ 
extern void XR←install←XTkCollectionsImpl() {
   NoName←Q3408();
   }
extern void XR←run←XTkCollectionsImpl() { XR←Start(&globalframe); }