/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1992 by Xerox Corporation.  All rights reserved. */
/* time: October 8, 1992 8:52:55 am PDT */
/* C2C version: October 16, 1990 (native) */
/* ref-counting: off */
/* file: XlPerDepthImpl, module: XlPerDepthImpl */ 
/* switches: bcfhklnouw */ 
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [3435264131,3468776684] XlPerDepthImpl";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef word (*fPt)();
typedef struct {word f0, f1;} W2;
#define SOURCE(p, l) /* source p, l */
#define BCK(idx, lim) ( ((unsigned) idx) >= ((unsigned) lim) ? (XR←RaiseBoundsFault()) : (idx) )
static void NoName←Q864();
static void XlPerDepthImpl←P0();
static void ConnectionDied←P60();
static word Init←P120();
static word GetData←P180();
static word InstallHandle←P240();
static struct {unsigned f; char r[4];} string1 = {65540, "\251\000\000"};
static struct {unsigned f; char r[4];} string2 = {131076, "\216\251\000"};
static struct {unsigned f; char r[4];} string3 = {65537, "\001\000\000"};
static struct {unsigned f; char r[16];} string4 = {851984, "\257\300\351\276\264\273\300\115\104\320\264\107\320\000\000"};
static struct {unsigned f; char r[4];} string5 = {131074, "\004\016\000"};
static struct {unsigned f; char r[16];} string6 = {851984, "\257\300\307\342\130\103\300\212\340\271\244\100\200\000\000"};
static struct {unsigned f; char r[4];} string7 = {131074, "\004\003\000"};
static struct {unsigned f; char r[16];} string8 = {851984, "\257\300\351\276\264\273\300\115\104\320\264\101\364\000\000"};
static struct {unsigned f; char r[4];} string9 = {131074, "\004&\000"};
static struct {unsigned f; char r[16];} string10 = {851984, "\257\300\307\342\130\103\300\212\340\271\244\100\164\000\000"};
static struct {unsigned f; char r[4];} string11 = {131074, "\004\013\000"};
static struct {unsigned f; char r[4];} string12 = {65540, "x\000\000"};
static struct {unsigned f; char r[16];} string13 = {851984, "\257\300\314\301\370\203\300\316\301\124\354\100\164\000\000"};
static struct {unsigned f; char r[12];} string14 = {720907, "\006\004 \001$\001(\001@L\001"};
static struct {unsigned f; char r[16];} string15 = {851984, "\257\300\256\042\060\232\300\060\151\325\207\100\150\000\000"};
static struct {unsigned f; char r[16];} string16 = {851984, "\257\300\351\276\264\273\300\115\104\320\264\100\164\000\000"};
static struct {unsigned f; char r[16];} string17 = {851984, "\257\300\307\342\130\103\300\212\340\271\244\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[4]; 
   } globalframe = {
   {0}, (word) InstallHandle←P240, 0, (word) GetData←P180, 
   0, (word) Init←P120, 0, (word) ConnectionDied←P60, 
   0, (word) XlPerDepthImpl←P0, {0}
   };

static void NoName←Q864()
   {
   register ptr gf←c055 =  (ptr) &globalframe;
   word var←c10076;
   (* (( (ptr) gf←c055)+11) ) = (word) XR←GetTypeIndexS((word) (&string1));
   (* (( (ptr) gf←c055)+12) ) = (word) XR←GetTypeIndex((word) &string2, 0, (word) &string3);
   (* (( (ptr) gf←c055)+13) ) = (word) XR←GetTypeIndex((word) &string4, 0, (word) &string5);
   (* (( (ptr) gf←c055)+14) ) = (word) XR←GetTypeIndex((word) &string6, 0, (word) &string7);
   (* (( (ptr) gf←c055)+15) ) = (word) XR←GetTypeIndex((word) &string8, 0, (word) &string9);
   (* (( (ptr) gf←c055)+18) ) = (word) XR←GetTypeIndex((word) &string10, 0, (word) &string11);
   (*  (ptr) (( (bPt) gf←c055)+76) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c055)+12) ), (word) &string12);
   (void) XR←DeclareGlobalFrame((word) "XlPerDepthImpl", &globalframe, (word) XR←GetTypeIndex((word) &string13, 0, (word) &string14)
      , (word) (( (bPt) gf←c055)+112)/* var←c9468 */ );
   var←c10076 = (word) XR←ImportInterface((word) "PropList", (word) XR←GetTypeIndexS((word) (&string15)), 13);
   (* (( (ptr) gf←c055)+31)/* var←c9788 */  ) = var←c10076;
   (void) XR←ImportProcS(var←c10076, 67109632);
   (void) XR←ImportProcS(var←c10076, 135268612);
   (void) XR←ImportProcS(var←c10076, 67371521);
   (void) XR←ImportProcS(var←c10076, 67634946);
   var←c10076 = (word) XR←ImportInterface((word) "Xl", (word) XR←GetTypeIndexS((word) (&string16)), 218);
   (* (( (ptr) gf←c055)+30)/* var←c9596 */  ) = var←c10076;
   (void) XR←ImportProcS(var←c10076, 1329157);
   (void) XR←ImportProcS(var←c10076, 67910403);
   (void) XR←ImportProcS(var←c10076, 68207876);
   var←c10076 = (word) XR←ExportInterface((word) "XlPerDepth", (word) XR←GetTypeIndexS((word) (&string17)), 3);
   (* (( (ptr) gf←c055)+32)/* var←c10108 */  ) = var←c10076;
   (void) XR←ExportProcS(var←c10076, (word) (( (bPt) gf←c055)+88)/* var←c9372 */ , 67633410);
   (void) XR←ExportProcS(var←c10076, (word) (( (bPt) gf←c055)+80)/* var←c9340 */ , 67633666);
   }

static void XlPerDepthImpl←P0(formal←c019, formal←c016)
   word formal←c019;
   word formal←c016;
   {
   register ptr gf←c10140 =  (ptr) &globalframe;
   /* XlPerDepthImpl: */ 
SOURCE(37, 1621)
SOURCE(137, 83)
   {
      word var←c9500;
      word var←c9564;
      var←c9500 = XR←NewObject(24, (* (( (ptr) gf←c10140)+15) ));
      var←c9564 = XR←NewObject(8, (* (( (ptr) gf←c10140)+14) ));
      (*  (ptr) var←c9564 ) = var←c9500;
      (* (( (ptr) gf←c10140)+8)/* dummy←v2552 */  ) = var←c9564;
      };
SOURCE(222, 62)
   {
      word pd18;
      pd18 = (* (( (ptr) (* (( (ptr) gf←c10140)+30)/* var←c9596 */  ))+201) );
      (* (( (ptr) gf←c10140)+9)/* cDiedFilter←v2580 */  ) = (word) ( *( (fPt) ((*  (ptr) pd18 ))))(36, 35, 35, 35, pd18);
      };
SOURCE(286, 31)
   {
      word pd19;
      pd19 = (* (( (ptr) (* (( (ptr) gf←c10140)+30)/* var←c9596 */  ))+63) );
      (* (( (ptr) gf←c10140)+10)/* sharedTQ←v2608 */  ) = (word) ( *( (fPt) ((*  (ptr) pd19 ))))(0, 0, 0, pd19);
      };
   }

static void ConnectionDied←P60(event←v5836, clientData←v5864, tq←v5892)
   word event←v5836;
   word clientData←v5864;
   word tq←v5892;
   {
   register ptr gf←c10172 =  (ptr) &globalframe;
   /* ConnectionDied: */ 
SOURCE(320, 343)
SOURCE(357, 306)
   {
      word var←c9628;
      var←c9628 = event←v5836;
      if ((var←c9628 == 0)) {
         goto lab←L100000;
         };
      if (((* (( (ptr) var←c9628)+4) ) == 36)) {
         {
            word fe←v3072;
            fe←v3072 = var←c9628;
SOURCE(401, 262)
            if ((0 == (* (( (ptr) fe←v3072)+5) ))) {
SOURCE(432, 241)
               {
                  word h←v3116;
SOURCE(434, 30)
                  h←v3116 = XR←Narrow(clientData←v5864, (* (( (ptr) gf←c10172)+18) ));
SOURCE(466, 197)
                  {
                     register word i←v3160 = 0;
                     register word noName←c9692;
                     {
                        word c←v9292;
                        c←v9292 = (* (( (ptr) event←v5836)+2) );
                        noName←c9692 = (*  (ptr) (* (( (ptr) c←v9292)+17) ) );
                        };
                     if ((i←v3160 >= noName←c9692)) {
                        goto lab←L100001;
                        };
                     lab←L100004: ;
                     {
                        word sd←v3204;
SOURCE(526, 59)
                        {
                           word c←v9244;
                           c←v9244 = (* (( (ptr) event←v5836)+2) );
                           {
/*1*/   word var←c9756;
/*1*/   var←c9756 = (* (( (ptr) c←v9244)+17) );
/*1*/   {
/*1*/      word limit20;
/*1*/      sd←v3204 = (* ((( (ptr) var←c9756)+1)+(
/*1*/            limit20 = (*  (ptr) var←c9756 ),
/*1*/            BCK(i←v3160, limit20)
/*1*/            )) );
/*1*/      };
/*1*/   };
                           };
SOURCE(587, 39)
                        {
                           word var←c9820;
                           word pd21;
                           pd21 = (* (( (ptr) (* (( (ptr) gf←c10172)+31)/* var←c9788 */  ))+11) );
                           var←c9820 = (word) ( *( (fPt) ((*  (ptr) pd21 ))))((* (( (ptr) sd←v3204)+2) ), h←v3116, pd21);
                           };
SOURCE(628, 35)
                        if (((*  (ptr) (*  (ptr) h←v3116 ) ) == sd←v3204)) {
SOURCE(649, 14)
                           (*  (ptr) h←v3116 ) = (* (( (ptr) gf←c10172)+8)/* dummy←v2552 */  );
                           };
                        };
                     i←v3160 = (i←v3160 + 1);
                     if ((i←v3160 < noName←c9692)) {
                        goto lab←L100004;
                        };
                     lab←L100001: ;
                     };
                  };
               };
            };
         }
      else {
         lab←L100000: ;
         };
      };
   }

static word Init←P120(data←v5952, key←v5980)
   word data←v5952;
   word key←v5980;
   {
   register ptr gf←c10204 =  (ptr) &globalframe;
   word val←v6024;
   word h←v3248;
   word sd←v3276;
   word sdData←v3304;
   word pr←v3332;
   /* Init: */ 
SOURCE(695, 354)
SOURCE(695, 354)
   val←v6024 = (* (( (ptr) gf←c10204)+19) );
SOURCE(733, 23)
   h←v3248 = XR←Narrow(key←v5980, (* (( (ptr) gf←c10204)+18) ));
SOURCE(758, 33)
   sd←v3276 = XR←Narrow(data←v5952, (* (( (ptr) gf←c10204)+15) ));
SOURCE(793, 36)
   {
      word pd22;
      pd22 = (* (( (ptr) h←v3248)+2) );
      sdData←v3304 = (word) ( *( (fPt) ((*  (ptr) pd22 ))))(sd←v3276, (* (( (ptr) h←v3248)+1) ), pd22);
      };
SOURCE(831, 63)
   pr←v3332 = XR←NewObject(8, (* (( (ptr) gf←c10204)+14) ));
   (*  (ptr) pr←v3332 ) = sd←v3276;
   (* (( (ptr) pr←v3332)+1) ) = sdData←v3304;
SOURCE(896, 139)
   {
      word var←c9884;
      {
         word var←c9916;
         var←c9916 = XR←NewObject(16, (* (( (ptr) gf←c10204)+13) ));
         (*  (ptr) var←c9916 ) = (word) (( (bPt) gf←c10204)+104)/* var←c9436 */ ;
         (* (( (ptr) var←c9916)+1) ) = (* (( (ptr) gf←c10204)+9)/* cDiedFilter←v2580 */  );
         (* (( (ptr) var←c9916)+2) ) = (* (( (ptr) gf←c10204)+10)/* sharedTQ←v2608 */  );
         (* (( (ptr) var←c9916)+3) ) = h←v3248;
         var←c9884 = var←c9916;
         };
      {
         word pd23;
         pd23 = (* (( (ptr) (* (( (ptr) gf←c10204)+30)/* var←c9596 */  ))+76) );
         (void) ( *( (fPt) ((*  (ptr) pd23 ))))((* (( (ptr) (* (( (ptr) sd←v3276)+1) ))+16) ), 0, var←c9884, 0, 0, pd23);
         };
      };
SOURCE(1037, 12)
   return(pr←v3332);
   }

static word GetData←P180(h←v2812, sd←v2840)
   word h←v2812;
   word sd←v2840;
   {
   register ptr gf←c10236 =  (ptr) &globalframe;
   word var←c2884;
   word pr←v3400;
   /* GetData: */ 
SOURCE(1053, 406)
SOURCE(1124, 36)
   pr←v3400 = (*  (ptr) h←v2812 );
SOURCE(1162, 297)
   if (((*  (ptr) pr←v3400 ) == sd←v2840)) {
SOURCE(1180, 24)
      return((* (( (ptr) pr←v3400)+1) ));
      }
   else {
SOURCE(1204, 255)
      {
         word propList←v3456;
         word var←c9948;
         word c←v9196;
SOURCE(1206, 132)
         {
            word pd25;
            if ((sd←v2840 == 0)) { goto then024;};
            c←v9196 = (* (( (ptr) (* (( (ptr) sd←v2840)+1) ))+16) );
            if ((c←v9196 != 0)) {
               var←c9948 = (0 != (* (( (ptr) c←v9196)+15) ));
               }
            else {
               var←c9948 = 0;
               };
            if ((0 == var←c9948)) {
               then024: ;
               pd25 = (* (( (ptr) (* (( (ptr) gf←c10236)+31)/* var←c9788 */  ))+6) );
               propList←v3456 = (word) ( *( (fPt) ((*  (ptr) pd25 ))))((* ((( (ptr) h←v2812)+3)) ), pd25);
               }
            else {
               propList←v3456 = (* (( (ptr) sd←v2840)+2) );
               };
            };
SOURCE(1348, 76)
SOURCE(1350, 72)
         {
            W2 var←c049;
            word var←c061;
            {
               word pd26;
               pd26 = (* (( (ptr) (* (( (ptr) gf←c10236)+31)/* var←c9788 */  ))+13) );
               (void) ( *( (fPt) ((*  (ptr) pd26 ))))((word) &var←c049, propList←v3456, h←v2812, (word) (( (bPt) gf←c10236)+96)/* var←c9404 */ , sd←v2840, pd26)
               ;
               };
            var←c061 = var←c049.f0;
            pr←v3400 = XR←Narrow(var←c061, (* (( (ptr) gf←c10236)+14) ));
            };
SOURCE(1427, 11)
         (*  (ptr) h←v2812 ) = pr←v3400;
SOURCE(1440, 19)
         return((* (( (ptr) pr←v3400)+1) ));
         };
      };
   }

static word InstallHandle←P240(init←v2960, initData←v2988)
   word init←v2960;
   word initData←v2988;
   {
   register ptr gf←c10268 =  (ptr) &globalframe;
   word var←c3044;
   /* InstallHandle: */ 
SOURCE(1466, 192)
SOURCE(1552, 106)
   {
      word var←c10012;
      word var←c10044;
      {
         word pd27;
         pd27 = (* (( (ptr) (* (( (ptr) gf←c10268)+31)/* var←c9788 */  ))+7) );
         var←c10012 = (word) ( *( (fPt) ((*  (ptr) pd27 ))))(pd27);
         };
      var←c10044 = XR←NewObject(16, (* (( (ptr) gf←c10268)+18) ));
      (*  (ptr) var←c10044 ) = (* (( (ptr) gf←c10268)+8)/* dummy←v2552 */  );
      (* (( (ptr) var←c10044)+1) ) = initData←v2988;
      (* (( (ptr) var←c10044)+2) ) = XR←CheckProc(init←v2960);
      (* (( (ptr) var←c10044)+3) ) = var←c10012;
      return(var←c10044);
      };
   }

/* file: XlPerDepthImpl, module: XlPerDepthImpl, compiled at: October 8, 1992 8:52:54 am PDT */ 
extern void XR←install←XlPerDepthImpl() {
   NoName←Q864();
   }
extern void XR←run←XlPerDepthImpl() { XR←Start(&globalframe); }