/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1993 by Xerox Corporation.  All rights reserved. */
/* time: January 18, 1993 1:40:17 pm PST */
/* C2C version: October 7, 1992 (native) */
/* ref-counting: off */
/* file: InstallationScopesImpl, module: InstallationScopesImpl */ 
/* switches: bcfhklnouw */ 
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [3625656967,2349445893] InstallationScopesImpl";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef word (*fPt)();
typedef struct {word f0, f1;} W2;
typedef W2 *W2Pt;
typedef struct {word f0, f1, f2, f3, f4, f5, f6;} W7;
typedef struct {word f0, f1, f2, f3;} W4;
typedef struct {word f0, f1, f2, f3, f4, f5;} W6;
typedef struct {word f0, f1, f2;} W3;
typedef W3 *W3Pt;
typedef W4 *W4Pt;
typedef W6 *W6Pt;
#define SOURCE(p, l) /* source p, l */
#define SGNCK(i) ((int) (word) (i) < 0 ? XR←RaiseArithmeticFault(): i )
#define BCK(idx, lim) ( ((unsigned) idx) >= ((unsigned) lim) ? (XR←RaiseBoundsFault()) : (idx) )
static void NoName←Q7836();
static void InstallationScopesImpl←P0();
static void Insert←P60();
static word GlobalConfig←P120();
static word Parent←P180();
static void EnumerateChildren←P240();
static void EnumerateInterfaces←P300();
static void UnmonitoredEnumerateInterfaces←P360();
static void MaybeMonitorEnumerateInterfaces←P420();
static void EachInterface←P4944();
static void EnumerateExports←P480();
static word ObjectName←P540();
static word ProgramType←P600();
static word InterfaceName←P660();
static word InterfaceType←P720();
static void TakeInstallationLock←P780();
static word NoName←Q7896();
static void GiveInstallationLock←P840();
static void TakeInspectionLock←P900();
static word NoName←Q7956();
static void GiveInspectionLock←P960();
extern void XR←BeginInstallation();
static void CheckInstallation←P1080();
static void CheckDuplicate←P5148();
static void CheckInterface←P1140();
extern void XR←CommitInstallation();
static void MakeCommitted←P5640();
static void CommitInterface←P1260();
static void CommitItem←P1320();
extern void XR←AbortInstallation();
static void AbortInterface←P1440();
static void AbortItem←P1500();
static word NewEnvironRefTab←P1560();
static word InterfaceMatch←P1620();
static word InterfaceHash←P1680();
extern void XR←PushScope();
extern void XR←PopScope();
extern word XR←ImportInterface();
extern word XR←ExportInterface();
static word GetAnyInterface←P1980();
extern void XR←HideNames();
static word NewInterface←P2100();
static word NewAuxInterface←P2160();
extern void XR←ExportProc();
extern void XR←ImportProc();
extern void XR←ExportVar();
extern void XR←ExportType();
static word FindExporter←P2460();
static word ConcreteTypeFromAbstractType←P2520();
static void InterfaceNeedsWork←P2580();
static word GetStartTrap←P2640();
static word GetUnboundTrap←P2700();
static word AllocateTrapDescriptor←P2760();
static void Lookup←P2820();
static void EnumerateEnviron←P2880();
static void MaybeMonitorEnumerateEnviron←P2940();
static word EachPair←P6756();
static void EmptyInterfaces←P3000();
static word KeyMatch←P3060();
extern void XR←PushRename();
extern void XR←PopRename();
extern void XR←DeclareGlobalFrame();
static word ProgramFromFrame←P3300();
static void DoStartConfig←P3360();
static void DoStartProgram←P3420();
static word ListStartOrder←P3480();
static word FixStartTraps←P3540();
extern void XR←StartCedarModule();
extern void XR←Start();
extern void XR←StartModule();
static word ListStartTraps←P3780();
static void LogStartTrap←P3840();
extern void XR←StartProgram();
static void StartProgram←P3960();
extern word XR←FirstControl();
static void AddToCM←P4080();
extern void XR←AddControl();
extern void XR←RaiseUnbound();
extern word XR←IsBound();
extern void XR←Unload();
static void CedarCoreReport←P4380();
static word QualifiedName←P4440();
static word ProgramListFromName←P4500();
static void ConvertToRefTab←P4560();
static void PutCedarCoreProblems←P4620();
extern void XR←VerboseCommit();
static void RecordProblems←P7776();
static void EnableAborts←P4740();
static void NoName←Q8016();
static void NoName←Q8076();
static struct {unsigned f; char r[16];} string1 = {851984, "\257\300\352\160\224\035\300\316\067\271\315\100\214\000\000"};
static struct {unsigned f; char r[4];} string2 = {131074, "\003\002\000"};
static struct {unsigned f; char r[16];} string3 = {851984, "\257\300\352\160\224\035\300\316\067\271\315\101\224\000\000"};
static struct {unsigned f; char r[4];} string4 = {196611, "\004@]"};
static struct {unsigned f; char r[16];} string5 = {851984, "\257\300\352\160\224\035\300\316\067\271\315\101\350\000\000"};
static struct {unsigned f; char r[4];} string6 = {131074, "\0040\000"};
static struct {unsigned f; char r[48];} string7 = {2883632, "\260\006\005\146\151\162\163\164\216\257\300\352\160\224\035\300\316\067\271\315\100\214\005\004\162\145\163\164\214\216\257\300\352\160\224\035\300\316\067\271\315\100\214\261\000\000\000"};
static struct {unsigned f; char r[4];} string8 = {131074, "\004\003\000"};
static struct {unsigned f; char r[16];} string9 = {851984, "\257\300\352\160\224\035\300\316\067\271\315\101\240\000\000"};
static struct {unsigned f; char r[8];} string10 = {458759, "\007\000 \002\003\001\013"};
static struct {unsigned f; char r[44];} string11 = {2752556, "\260\006\005\146\151\162\163\164\257\300\371\361\330\220\300\372\202\000\101\100\370\005\004\162\145\163\164\214\257\300\371\361\330\220\300\372\202\000\101\100\370\261\000"};
static struct {unsigned f; char r[16];} string12 = {786444, "\006\002\000\007\000\040\002\003\001\014\010\001\000\000\000"};
static struct {unsigned f; char r[16];} string13 = {851984, "\257\300\352\160\224\035\300\316\067\271\315\100\340\000\000"};
static struct {unsigned f; char r[20];} string14 = {1114129, "\011\000\014\100\100\040\000\014\007\040\040\004\000\003\002\014\014\000\000"};
static struct {unsigned f; char r[44];} string15 = {2752556, "\260\006\005\146\151\162\163\164\257\300\352\160\224\035\300\316\067\271\315\100\354\005\004\162\145\163\164\214\257\300\352\160\224\035\300\316\067\271\315\100\354\261\000"};
static struct {unsigned f; char r[44];} string16 = {2752556, "\260\006\005\146\151\162\163\164\257\300\352\160\224\035\300\316\067\271\315\102\014\005\004\162\145\163\164\214\257\300\352\160\224\035\300\316\067\271\315\102\014\261\000"};
static struct {unsigned f; char r[4];} string17 = {131074, "\004\005\000"};
static struct {unsigned f; char r[44];} string18 = {2752556, "\260\006\005\146\151\162\163\164\257\300\352\160\224\035\300\316\067\271\315\101\004\005\004\162\145\163\164\214\257\300\352\160\224\035\300\316\067\271\315\101\004\261\000"};
static struct {unsigned f; char r[4];} string19 = {131074, "\004\030\000"};
static struct {unsigned f; char r[44];} string20 = {2752556, "\260\006\005\146\151\162\163\164\257\300\352\160\224\035\300\316\067\271\315\100\370\005\004\162\145\163\164\214\257\300\352\160\224\035\300\316\067\271\315\100\370\261\000"};
static struct {unsigned f; char r[4];} string21 = {131074, "\004\006\000"};
static struct {unsigned f; char r[44];} string22 = {2752556, "\260\006\005\146\151\162\163\164\257\300\330\033\042\207\300\214\011\263\005\100\214\005\004\162\145\163\164\214\257\300\330\033\042\207\300\214\011\263\005\100\214\261\000"};
static struct {unsigned f; char r[4];} string23 = {131074, "\004\016\000"};
static struct {unsigned f; char r[44];} string24 = {2752556, "\260\006\005\146\151\162\163\164\257\300\330\033\042\207\300\214\011\263\005\100\200\005\004\162\145\163\164\214\257\300\330\033\042\207\300\214\011\263\005\100\200\261\000"};
static struct {unsigned f; char r[16];} string25 = {851984, "\257\300\330\033\042\207\300\214\011\263\005\102\360\000\000"};
static struct {unsigned f; char r[60];} string26 = {3670076, "\260\006\005\146\151\162\163\164\216\205\210\242\000\101\120\257\300\352\160\224\035\300\316\067\271\315\102\060\005\004\162\145\163\164\214\216\205\210\242\000\101\120\257\300\352\160\224\035\300\316\067\271\315\102\060\261\000\000\000"};
static struct {unsigned f; char r[20];} string27 = {1245204, "\205\210\242\000\101\120\257\300\352\160\224\035\300\316\067\271\315\102\060"};
static struct {unsigned f; char r[48];} string28 = {2883632, "\260\006\005\146\151\162\163\164\216\257\300\352\160\224\035\300\316\067\271\315\101\350\005\004\162\145\163\164\214\216\257\300\352\160\224\035\300\316\067\271\315\101\350\261\000\000\000"};
static struct {unsigned f; char r[48];} string29 = {2883632, "\260\006\005\146\151\162\163\164\216\257\300\363\223\326\161\300\017\164\046\072\104\350\005\004\162\145\163\164\214\216\257\300\363\223\326\161\300\017\164\046\072\104\350\261\000\000\000"};
static struct {unsigned f; char r[44];} string30 = {2752556, "\260\006\005\146\151\162\163\164\257\300\371\361\330\220\300\372\202\000\101\100\230\005\004\162\145\163\164\214\257\300\371\361\330\220\300\372\202\000\101\100\230\261\000"};
static struct {unsigned f; char r[20];} string31 = {1114129, "\006\002\000\007\100\100\040\005\004\011\014\014\001\004\071\030\001\000\000"};
static struct {unsigned f; char r[16];} string32 = {851984, "\257\300\330\033\042\207\300\214\011\263\005\100\164\000\000"};
static struct {unsigned f; char r[52];} string33 = {3211313, "\006\020\054\001\100\150\001\100\154\001\100\160\001\100\164\001\100\170\001\100\174\001\100\200\001\100\204\001\100\210\001\100\214\001\100\220\001\100\224\001\100\234\001\100\244\001\100\250\001\000\000"};
static struct {unsigned f; char r[16];} string34 = {851984, "\257\300\242\221\264\046\300\105\142\142\023\100\150\000\000"};
static struct {unsigned f; char r[16];} string35 = {851984, "\257\300\036\137\320\376\300\071\321\170\251\100\150\000\000"};
static struct {unsigned f; char r[16];} string36 = {851984, "\257\300\363\223\326\161\300\017\164\046\072\100\150\000\000"};
static struct {unsigned f; char r[16];} string37 = {851984, "\257\300\275\320\070\317\300\004\110\363\366\100\150\000\000"};
static struct {unsigned f; char r[16];} string38 = {851984, "\257\300\220\270\074\115\300\121\012\115\357\100\150\000\000"};
static struct {unsigned f; char r[16];} string39 = {851984, "\257\300\371\361\330\220\300\372\202\000\101\100\150\000\000"};
static struct {unsigned f; char r[32];} string40 = {1835040, "\211\020\017\111\156\164\145\162\146\141\143\145\122\145\143\157\162\144\300\371\361\330\220\300\372\202\000\101\000\000\000"};
static struct {unsigned f; char r[24];} string41 = {1507352, "\211\013\012\120\162\157\147\162\141\155\122\145\160\300\371\361\330\220\300\372\202\000\101"};
static struct {unsigned f; char r[24];} string42 = {1441816, "\211\012\011\103\157\156\146\151\147\122\145\160\300\371\361\330\220\300\372\202\000\101\000"};
static struct {unsigned f; char r[16];} string43 = {851984, "\257\300\200\367\017\371\300\261\172\333\044\100\150\000\000"};
static struct {unsigned f; char r[16];} string44 = {851984, "\257\300\046\034\345\272\300\313\105\336\371\100\150\000\000"};
static W3 dummy54;
static struct {
   word f0[85]; word f85; word f86; word f87; 
   word f88; word f89; word f90; word f91; 
   word f92; word f93; word f94; word f95; 
   word f96; word f97; word f98; word f99; 
   word f100; word f101; word f102; word f103; 
   word f104; word f105; word f106; word f107; 
   word f108; word f109; word f110; word f111; 
   word f112; word f113; word f114; word f115; 
   word f116; word f117; word f118; word f119; 
   word f120; word f121; word f122; word f123; 
   word f124; word f125; word f126; word f127; 
   word f128; word f129; word f130; word f131; 
   word f132; word f133; word f134; word f135; 
   word f136; word f137; word f138; word f139; 
   word f140; word f141; word f142; word f143; 
   word f144; word f145; word f146; word f147; 
   word f148; word f149; word f150; word f151; 
   word f152; word f153; word f154; word f155; 
   word f156; word f157; word f158; word f159; 
   word f160; word f161; word f162; word f163; 
   word f164; word f165; word f166; word f167; 
   word f168; word f169; word f170; word f171; 
   word f172; word f173; word f174; word f175; 
   word f176; word f177; word f178; word f179; 
   word f180; word f181; word f182; word f183; 
   word f184; word f185; word f186; word f187; 
   word f188; word f189; word f190; word f191; 
   word f192; word f193; word f194; word f195; 
   word f196; word f197; word f198; word f199; 
   word f200; word f201; word f202; word f203; 
   word f204; word f205; word f206; word f207; 
   word f208; word f209; word f210; word f211; 
   word f212; word f213; word f214; word f215; 
   word f216; word f217; word f218; word f219; 
   word f220; word f221; word f222; word f223; 
   word f224; word f225; word f226; word f227; 
   word f228; word f229; word f230; word f231; 
   word f232; word f233; word f234; word f235; 
   word f236; word f237; word f238; word f239; 
   word f240; word f241; word f242; word f243; 
   word f244[7]; 
   } globalframe = {
   {0}, (word) EnableAborts←P4740, 0, (word) XR←VerboseCommit, 
   0, (word) PutCedarCoreProblems←P4620, 0, (word) ConvertToRefTab←P4560, 
   0, (word) ProgramListFromName←P4500, 0, (word) QualifiedName←P4440, 
   0, (word) CedarCoreReport←P4380, 0, (word) XR←Unload, 
   0, (word) XR←IsBound, 0, (word) XR←RaiseUnbound, 
   0, (word) XR←AddControl, 0, (word) AddToCM←P4080, 
   0, (word) XR←FirstControl, 0, (word) StartProgram←P3960, 
   0, (word) XR←StartProgram, 0, (word) LogStartTrap←P3840, 
   0, (word) ListStartTraps←P3780, 0, (word) XR←StartModule, 
   0, (word) XR←Start, 0, (word) XR←StartCedarModule, 
   0, (word) FixStartTraps←P3540, 0, (word) ListStartOrder←P3480, 
   0, (word) DoStartProgram←P3420, 0, (word) DoStartConfig←P3360, 
   0, (word) ProgramFromFrame←P3300, 0, (word) XR←DeclareGlobalFrame, 
   0, (word) XR←PopRename, 0, (word) XR←PushRename, 
   0, (word) KeyMatch←P3060, 0, (word) EmptyInterfaces←P3000, 
   0, (word) MaybeMonitorEnumerateEnviron←P2940, 0, (word) EnumerateEnviron←P2880, 
   0, (word) Lookup←P2820, 0, (word) AllocateTrapDescriptor←P2760, 
   0, (word) GetUnboundTrap←P2700, 0, (word) GetStartTrap←P2640, 
   0, (word) InterfaceNeedsWork←P2580, 0, (word) ConcreteTypeFromAbstractType←P2520, 
   0, (word) FindExporter←P2460, 0, (word) XR←ExportType, 
   0, (word) XR←ExportVar, 0, (word) XR←ImportProc, 
   0, (word) XR←ExportProc, 0, (word) NewAuxInterface←P2160, 
   0, (word) NewInterface←P2100, 0, (word) XR←HideNames, 
   0, (word) GetAnyInterface←P1980, 0, (word) XR←ExportInterface, 
   0, (word) XR←ImportInterface, 0, (word) XR←PopScope, 
   0, (word) XR←PushScope, 0, (word) InterfaceHash←P1680, 
   0, (word) InterfaceMatch←P1620, 0, (word) NewEnvironRefTab←P1560, 
   0, (word) AbortItem←P1500, 0, (word) AbortInterface←P1440, 
   0, (word) XR←AbortInstallation, 0, (word) CommitItem←P1320, 
   0, (word) CommitInterface←P1260, 0, (word) XR←CommitInstallation, 
   0, (word) CheckInterface←P1140, 0, (word) CheckInstallation←P1080, 
   0, (word) XR←BeginInstallation, 0, (word) GiveInspectionLock←P960, 
   0, (word) TakeInspectionLock←P900, 0, (word) GiveInstallationLock←P840, 
   0, (word) TakeInstallationLock←P780, 0, (word) InterfaceType←P720, 
   0, (word) InterfaceName←P660, 0, (word) ProgramType←P600, 
   0, (word) ObjectName←P540, 0, (word) EnumerateExports←P480, 
   0, (word) MaybeMonitorEnumerateInterfaces←P420, 0, (word) UnmonitoredEnumerateInterfaces←P360, 
   0, (word) EnumerateInterfaces←P300, 0, (word) EnumerateChildren←P240, 
   0, (word) Parent←P180, 0, (word) GlobalConfig←P120, 
   0, (word) Insert←P60, 0, (word) InstallationScopesImpl←P0, 
   {0}
   };

static void NoName←Q7836()
   {
   register ptr gf←c0538 =  (ptr) &globalframe;
   word var←c40632;
   (* (( (ptr) gf←c0538)+43) ) = (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2);
   (* (( (ptr) gf←c0538)+44) ) = (word) XR←GetTypeIndex((word) &string3, 0, (word) &string4);
   (* (( (ptr) gf←c0538)+45) ) = (word) XR←GetTypeIndex((word) &string5, 0, (word) &string6);
   (* (( (ptr) gf←c0538)+48) ) = (word) XR←GetTypeIndex((word) &string7, 0, (word) &string8);
   (* (( (ptr) gf←c0538)+51) ) = (word) XR←GetTypeIndex((word) &string9, 0, (word) &string10);
   (* (( (ptr) gf←c0538)+53) ) = (word) XR←GetTypeIndex((word) &string11, 0, (word) &string12);
   (* (( (ptr) gf←c0538)+58) ) = (word) XR←GetTypeIndex((word) &string13, 0, (word) &string14);
   (* (( (ptr) gf←c0538)+60) ) = (word) XR←GetTypeIndex((word) &string15, 0, (word) &string6);
   (* (( (ptr) gf←c0538)+63) ) = (word) XR←GetTypeIndex((word) &string16, 0, (word) &string17);
   (* (( (ptr) gf←c0538)+65) ) = (word) XR←GetTypeIndex((word) &string18, 0, (word) &string19);
   (* (( (ptr) gf←c0538)+68) ) = (word) XR←GetTypeIndex((word) &string20, 0, (word) &string21);
   (* (( (ptr) gf←c0538)+71) ) = (word) XR←GetTypeIndex((word) &string22, 0, (word) &string23);
   (* (( (ptr) gf←c0538)+73) ) = (word) XR←GetTypeIndex((word) &string24, 0, (word) &string19);
   (* (( (ptr) gf←c0538)+75) ) = (word) XR←GetTypeIndex((word) &string25, 0, (word) &string2);
   (* (( (ptr) gf←c0538)+76) ) = (word) XR←GetTypeIndex((word) &string26, 0, (word) &string8);
   (* (( (ptr) gf←c0538)+77) ) = (word) XR←GetTypeIndexS((word) (&string27));
   (* (( (ptr) gf←c0538)+79) ) = (word) XR←GetTypeIndex((word) &string28, 0, (word) &string8);
   (* (( (ptr) gf←c0538)+80) ) = (word) XR←GetTypeIndex((word) &string29, 0, (word) &string8);
   (* (( (ptr) gf←c0538)+82) ) = (word) XR←GetTypeIndex((word) &string30, 0, (word) &string31);
   (void) XR←DeclareGlobalFrame((word) "InstallationScopesImpl", &globalframe, (word) XR←GetTypeIndex((word) &string32, 0, (word) &string33)
      , (word) (( (bPt) gf←c0538)+972)/* var←c35032 */ );
   var←c40632 = (word) XR←ImportInterface((word) "RefTab", (word) XR←GetTypeIndexS((word) (&string34)), 16);
   (* (( (ptr) gf←c0538)+246)/* var←c35192 */  ) = var←c40632;
   (void) XR←ImportProcS(var←c40632, 67896835);
   (void) XR←ImportProcS(var←c40632, 264193);
   (void) XR←ImportProcS(var←c40632, 67635458);
   (void) XR←ImportProcS(var←c40632, 134742786);
   (void) XR←ImportProcS(var←c40632, 67895555);
   (void) XR←ImportProcS(var←c40632, 67896579);
   var←c40632 = (word) XR←ImportInterface((word) "RefTabBackdoor", (word) XR←GetTypeIndexS((word) (&string35)), 2);
   (* (( (ptr) gf←c0538)+248)/* var←c39192 */  ) = var←c40632;
   (void) XR←ImportProcS(var←c40632, 67633410);
   var←c40632 = (word) XR←ImportInterface((word) "Rope", (word) XR←GetTypeIndexS((word) (&string36)), 43);
   (* (( (ptr) gf←c0538)+249)/* var←c40248 */  ) = var←c40632;
   (void) XR←ImportProcS(var←c40632, 67379457);
   (void) XR←ImportProcS(var←c40632, 68419845);
   (void) XR←ImportProcS(var←c40632, 67633666);
   var←c40632 = (word) XR←ImportInterface((word) "RuntimeError", (word) XR←GetTypeIndexS((word) (&string37)), 27);
   (* (( (ptr) gf←c0538)+245)/* var←c35096 */  ) = var←c40632;
   var←c40632 = (word) XR←ImportInterface((word) "UXStrings", (word) XR←GetTypeIndexS((word) (&string38)), 9);
   (* (( (ptr) gf←c0538)+247)/* var←c35416 */  ) = var←c40632;
   (void) XR←ImportProcS(var←c40632, 67371265);
   (void) XR←ImportProcS(var←c40632, 67633922);
   var←c40632 = (word) XR←ExportInterface((word) "MesaLoadState", (word) XR←GetTypeIndexS((word) (&string39)), 20);
   (* (( (ptr) gf←c0538)+250)/* var←c40664 */  ) = var←c40632;
   (void) XR←ExportProcS(var←c40632, (word) (( (bPt) gf←c0538)+836)/* var←c34488 */ , 0);
   (void) XR←ExportProcS(var←c40632, (word) (( (bPt) gf←c0538)+812)/* var←c34392 */ , 256);
   (void) XR←ExportProcS(var←c40632, (word) (( (bPt) gf←c0538)+788)/* var←c34296 */ , 512);
   (void) XR←ExportProcS(var←c40632, (word) (( (bPt) gf←c0538)+828)/* var←c34456 */ , 262913);
   (void) XR←ExportType((word) "InterfaceRecord", (word) XR←GetTypeIndexS((word) (&string40)), (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2)
      );
   (void) XR←ExportType((word) "ProgramRep", (word) XR←GetTypeIndexS((word) (&string41)), (word) XR←GetTypeIndex((word) &string5, 0, (word) &string6)
      );
   (void) XR←ExportType((word) "ConfigRep", (word) XR←GetTypeIndexS((word) (&string42)), (word) XR←GetTypeIndex((word) &string3, 0, (word) &string4)
      );
   (void) XR←ExportProcS(var←c40632, (word) (( (bPt) gf←c0538)+956)/* var←c34968 */ , 67110656);
   (void) XR←ExportProcS(var←c40632, (word) (( (bPt) gf←c0538)+948)/* var←c34936 */ , 67635201);
   (void) XR←ExportProcS(var←c40632, (word) (( (bPt) gf←c0538)+940)/* var←c34904 */ , 526594);
   (void) XR←ExportProcS(var←c40632, (word) (( (bPt) gf←c0538)+932)/* var←c34872 */ , 526850);
   (void) XR←ExportProcS(var←c40632, (word) (( (bPt) gf←c0538)+908)/* var←c34776 */ , 527106);
   (void) XR←ExportProcS(var←c40632, (word) (( (bPt) gf←c0538)+900)/* var←c34744 */ , 67636225);
   (void) XR←ExportProcS(var←c40632, (word) (( (bPt) gf←c0538)+380)/* var←c32664 */ , 67636481);
   (void) XR←ExportProcS(var←c40632, (word) (( (bPt) gf←c0538)+892)/* var←c34712 */ , 67374593);
   (void) XR←ExportProcS(var←c40632, (word) (( (bPt) gf←c0538)+884)/* var←c34680 */ , 67374849);
   (void) XR←ExportProcS(var←c40632, (word) (( (bPt) gf←c0538)+876)/* var←c34648 */ , 67375105);
   (void) XR←ExportProcS(var←c40632, (word) (( (bPt) gf←c0538)+636)/* var←c33688 */ , 67375873);
   var←c40632 = (word) XR←ExportInterface((word) "MesaLoadStateBackdoor", (word) XR←GetTypeIndexS((word) (&string43)), 3);
   (* (( (ptr) gf←c0538)+250)/* var←c40664 */  ) = var←c40632;
   (void) XR←ExportProcS(var←c40632, (word) (( (bPt) gf←c0538)+924)/* var←c34840 */ , 524290);
   var←c40632 = (word) XR←ExportInterface((word) "MesaLoadStateQuery", (word) XR←GetTypeIndexS((word) (&string44)), 1);
   (* (( (ptr) gf←c0538)+250)/* var←c40664 */  ) = var←c40632;
   (void) XR←ExportProcS(var←c40632, (word) (( (bPt) gf←c0538)+372)/* var←c32632 */ , 67633154);
   }

static void InstallationScopesImpl←P0(formal←c0118, formal←c0116)
   word formal←c0118;
   word formal←c0116;
   {
   register ptr gf←c40696 =  (ptr) &globalframe;
   /* InstallationScopesImpl: */ 
SOURCE(175, 28495)
SOURCE(1807, 54)
   {
      word var←c35064;
      var←c35064 = XR←NewObject(16, (* (( (ptr) gf←c40696)+43) ));
      (* (( (ptr) var←c35064)+3) ) = 0;
      (* (( (ptr) gf←c40696)+32)/* keyInterfaceCache←v3560 */  ) = var←c35064;
      };
SOURCE(5164, 19)
   (* (( (ptr) gf←c40696)+38)/* StartFault←v4092 */  ) = (* (( (ptr) (* (( (ptr) gf←c40696)+245)/* var←c35096 */  ))+19) );
SOURCE(28440, 34)
   (void) CheckInstallation←P1080((word) ((( (bPt) gf←c40696)+388)/* var←c32696 */ ));
SOURCE(28476, 20)
   (void) XR←CommitInstallation();
SOURCE(28498, 17)
   (void) ConvertToRefTab←P4560();
SOURCE(28525, 42)
SOURCE(28527, 40)
   (void) EnableAborts←P4740((word) ((( (bPt) gf←c40696)+52)/* installationLockReleased←v3308 */ ));
SOURCE(28578, 40)
SOURCE(28580, 38)
   (void) EnableAborts←P4740((word) ((( (bPt) gf←c40696)+80)/* inspectionLockReleased←v3364 */ ));
SOURCE(28638, 32)
   (* (( (ptr) gf←c40696)+9)/* installationScopesStarted←v3196 */  ) = 1;
   }

static void Insert←P60(i←v6880, e←v6908)
   word i←v6880;
   word e←v6908;
   {
   register ptr gf←c40728 =  (ptr) &globalframe;
   /* Insert: */ 
SOURCE(3080, 190)
SOURCE(3131, 23)
   if ((e←v6908 == 0) || (i←v6880 == 0)) {
SOURCE(3154, 5)
      (void) XR←RaiseUnnamedError();
      };
SOURCE(3161, 109)
   {
      word var←c35128;
      var←c35128 = (*  (ptr) e←v6908 );
      if ((var←c35128 == 0)) {
SOURCE(3195, 30)
         {
            word var←c35160;
            var←c35160 = XR←NewObject(8, (* (( (ptr) gf←c40728)+48) ));
            (*  (ptr) var←c35160 ) = i←v6880;
            (* (( (ptr) var←c35160)+1) ) = (* (( (ptr) e←v6908)+1) );
            (* (( (ptr) e←v6908)+1) ) = var←c35160;
            };
         }
      else {
         if ((var←c35128 == 1)) {
SOURCE(3237, 33)
            {
               word var←c35224;
               word pd45;
               pd45 = (* (( (ptr) (* (( (ptr) gf←c40728)+246)/* var←c35192 */  ))+9) );
               var←c35224 = (word) ( *( (fPt) ((*  (ptr) pd45 ))))((* (( (ptr) e←v6908)+1) ), i←v6880, i←v6880, pd45);
               };
            }
         else {
            };
         };
      };
   }

static word GlobalConfig←P120()
   {
   register ptr gf←c40760 =  (ptr) &globalframe;
   word var←c6968;
   /* GlobalConfig: */ 
SOURCE(3293, 69)
SOURCE(3342, 20)
   return((* (( (ptr) gf←c40760)+37)/* globalConfig←v3700 */  ));
   }

static word Parent←P180(object←v7028)
   W2 object←v7028;
   {
   word var←c7072;
   /* Parent: */ 
SOURCE(3368, 198)
SOURCE(3434, 132)
   {
      W2 var←c35256;
      var←c35256 = object←v7028;
      {
         word var←c35288;
         var←c35288 = var←c35256.f0;
         if ((var←c35288 == 1)) {
            {
               W2 c←v14316;
               c←v14316 = var←c35256;
SOURCE(3487, 23)
               return((*  (ptr) c←v14316.f1 ));
               };
            }
         else {
            if ((var←c35288 == 0)) {
               {
                  W2 p←v14360;
                  p←v14360 = var←c35256;
SOURCE(3542, 24)
                  return((* (( (ptr) p←v14360.f1)+4) ));
                  };
               }
            else {
SOURCE(3579, 5)
               (void) XR←RaiseUnnamedError();
               };
            };
         };
      };
   }

static void EnumerateChildren←P240(config←v7132, proc←v7160)
   word config←v7132;
   word proc←v7160;
   {
   /* EnumerateChildren: */ 
SOURCE(3590, 164)
SOURCE(3672, 82)
   {
      register word l←v14404;
      l←v14404 = (* (( (ptr) config←v7132)+4) );
      lab←L100003: ;
      if ((l←v14404 != 0)) {
         }
      else {
         goto lab←L100000;
         };
SOURCE(3741, 13)
      (void) ( *( (fPt) ((*  (ptr) proc←v7160 ))))((*  (W2Pt) (l←v14404) ), proc←v7160);
      l←v14404 = (* (( (ptr) l←v14404)+2) );
      goto lab←L100003;
      lab←L100000: ;
      };
   }

static void EnumerateInterfaces←P300(config←v7220, proc←v7248)
   word config←v7220;
   word proc←v7248;
   {
   /* EnumerateInterfaces: */ 
SOURCE(3769, 139)
SOURCE(3857, 51)
   (void) MaybeMonitorEnumerateInterfaces←P420(config←v7220, proc←v7248, 1);
   }

static void UnmonitoredEnumerateInterfaces←P360(config←v7308, proc←v7336)
   word config←v7308;
   word proc←v7336;
   {
   /* UnmonitoredEnumerateInterfaces: */ 
SOURCE(3912, 151)
SOURCE(4011, 52)
   (void) MaybeMonitorEnumerateInterfaces←P420(config←v7308, proc←v7336, 0);
   }

static void MaybeMonitorEnumerateInterfaces←P420(config←v7396, formal←c0630, monitor←v7452)
   word config←v7396;
   word formal←c0630;
   word monitor←v7452;
   {
   W7 var←c40792;
   /* declaration of proc←v7424 skipped */ 
   /* declaration of var←c35320 skipped */ 
   var←c40792.f4/* proc←v7424 */  = formal←c0630;
   /* MaybeMonitorEnumerateInterfaces: */ 
SOURCE(4067, 287)
   {
      word tmpAddr46;
      tmpAddr46 = (word) (( (ptr) &var←c40792)+5)/* var←c35320 */ ;
      (*  (ptr) tmpAddr46 ) = ( ((word)  (fPt) EachInterface←P4944) );
      (* (( (ptr) tmpAddr46) + 1) ) = 1;
      };
SOURCE(4283, 71)
   (void) MaybeMonitorEnumerateEnviron←P2940((* (( (ptr) config←v7396)+6) ), (word) (( (bPt) &var←c40792)+20)/* var←c35320 */ , monitor←v7452)
   ;
   }

static void EachInterface←P4944(interface←v14524, formal←c40824)
   word interface←v14524;
   word formal←c40824;
   {
   formal←c40824 = (formal←c40824 - 20);
   /* EachInterface: */ 
SOURCE(4175, 103)
SOURCE(4221, 57)
   {
      word pd47;
      pd47 = (* (( (ptr) formal←c40824)+4) );
      (void) ( *( (fPt) ((*  (ptr) pd47 ))))(interface←v14524, ((* (( (ptr) interface←v14524)+3) ) == 0), pd47);
      };
   }

static void EnumerateExports←P480(program←v7512, proc←v7540)
   word program←v7512;
   word proc←v7540;
   {
   /* EnumerateExports: */ 
SOURCE(4360, 194)
SOURCE(4448, 106)
   {
      register word l←v14552;
      l←v14552 = (* (( (ptr) program←v7512)+5) );
      lab←L100007: ;
      if ((l←v14552 != 0)) {
         }
      else {
         goto lab←L100004;
         };
SOURCE(4517, 37)
      (void) ( *( (fPt) ((*  (ptr) proc←v7540 ))))((*  (ptr) l←v14552 ), (* (( (ptr) l←v14552)+1) ), proc←v7540);
      l←v14552 = (* (( (ptr) l←v14552)+2) );
      goto lab←L100007;
      lab←L100004: ;
      };
   }

static word ObjectName←P540(object←v7600)
   W2 object←v7600;
   {
   register ptr gf←c40856 =  (ptr) &globalframe;
   word var←c7644;
   /* ObjectName: */ 
SOURCE(4569, 237)
SOURCE(4642, 164)
   {
      W2 var←c35352;
      var←c35352 = object←v7600;
      {
         word var←c35480;
         var←c35480 = var←c35352.f0;
         if ((var←c35480 == 1)) {
            {
               W2 c←v14680;
               c←v14680 = var←c35352;
SOURCE(4695, 39)
               {
                  word pd48;
                  pd48 = (* (( (ptr) (* (( (ptr) gf←c40856)+247)/* var←c35416 */  ))+7) );
                  return((word) ( *( (fPt) ((*  (ptr) pd48 ))))((* (( (ptr) c←v14680.f1)+1) ), 2147483647, pd48));
                  };
               };
            }
         else {
            if ((var←c35480 == 0)) {
               {
                  W2 p←v14724;
                  p←v14724 = var←c35352;
SOURCE(4766, 40)
                  {
                     word pd49;
                     pd49 = (* (( (ptr) (* (( (ptr) gf←c40856)+247)/* var←c35416 */  ))+7) );
                     return((word) ( *( (fPt) ((*  (ptr) pd49 ))))((*  (ptr) p←v14724.f1 ), 2147483647, pd49));
                     };
                  };
               }
            else {
SOURCE(4819, 5)
               (void) XR←RaiseUnnamedError();
               };
            };
         };
      };
   }

static word ProgramType←P600(program←v7704)
   word program←v7704;
   {
   word var←c7748;
   /* ProgramType: */ 
SOURCE(4830, 93)
SOURCE(4903, 20)
   return((* (( (ptr) program←v7704)+2) ));
   }

static word InterfaceName←P660(interface←v7808)
   word interface←v7808;
   {
   register ptr gf←c40888 =  (ptr) &globalframe;
   word var←c7852;
   /* InterfaceName: */ 
SOURCE(4929, 117)
SOURCE(5002, 44)
   {
      word pd50;
      pd50 = (* (( (ptr) (* (( (ptr) gf←c40888)+247)/* var←c35416 */  ))+7) );
      return((word) ( *( (fPt) ((*  (ptr) pd50 ))))((*  (ptr) interface←v7808 ), 2147483647, pd50));
      };
   }

static word InterfaceType←P720(interface←v7912)
   word interface←v7912;
   {
   word var←c7956;
   /* InterfaceType: */ 
SOURCE(5052, 106)
SOURCE(5132, 26)
   return((* (( (ptr) interface←v7912)+1) ));
   }

static void TakeInstallationLock←P780()
   {
   W4 var←c40920;
   register ptr gf←c40952 =  (ptr) &globalframe;
   /* TakeInstallationLock: */ 
SOURCE(5277, 150)
   (void) (XR←MonitorEntry((word) (( (bPt) gf←c40952)+16)/* LOCK←v2832 */ ));
SOURCE(5316, 111)
   {
      word var←c0604;
      var←c0604 = (word) &var←c40920;
       (void) (word) XR←Enable(( ((word)  (fPt) NoName←Q7896) ), ( ((word)  (fPt) NoName←Q8076) ), var←c0604);
      };
SOURCE(5277, 150)
   (void) (XR←MonitorExit((word) (( (bPt) gf←c40952)+16)/* LOCK←v2832 */ ));
   return;
   }

static word NoName←Q7896(formal←c0547)
   word formal←c0547;
   {
   register ptr gf←c0546 =  (ptr) &globalframe;
SOURCE(5339, 63)
   lab←L100012: ;
   if ((* (( (ptr) gf←c0546)+12)/* installationLock←v3280 */  )) {
      }
   else {
      goto lab←L100010;
      };
SOURCE(5365, 37)
   (void) (XR←Wait((word) (( (bPt) gf←c0546)+16)/* LOCK←v2832 */ , (word) (( (bPt) gf←c0546)+52)/* installationLockReleased←v3308 */ )
   );
   goto lab←L100012;
   lab←L100010: ;
SOURCE(5404, 23)
   (* (( (ptr) gf←c0546)+12)/* installationLock←v3280 */  ) = 1;
   return(0);
   }

static void GiveInstallationLock←P840()
   {
   register ptr gf←c40984 =  (ptr) &globalframe;
   /* GiveInstallationLock: */ 
SOURCE(5433, 99)
   (void) (XR←MonitorEntry((word) (( (bPt) gf←c40984)+16)/* LOCK←v2832 */ ));
SOURCE(5472, 24)
   (* (( (ptr) gf←c40984)+12)/* installationLock←v3280 */  ) = 0;
SOURCE(5498, 34)
   (void) (XR←Broadcast((word) (( (bPt) gf←c40984)+52)/* installationLockReleased←v3308 */ ));
SOURCE(5433, 99)
   (void) (XR←MonitorExit((word) (( (bPt) gf←c40984)+16)/* LOCK←v2832 */ ));
   return;
   }

static void TakeInspectionLock←P900()
   {
   W4 var←c41016;
   register ptr gf←c41048 =  (ptr) &globalframe;
   /* TakeInspectionLock: */ 
SOURCE(5538, 142)
   (void) (XR←MonitorEntry((word) (( (bPt) gf←c41048)+16)/* LOCK←v2832 */ ));
SOURCE(5575, 105)
   {
      word var←c0605;
      var←c0605 = (word) &var←c41016;
       (void) (word) XR←Enable(( ((word)  (fPt) NoName←Q7956) ), ( ((word)  (fPt) NoName←Q8016) ), var←c0605);
      };
SOURCE(5538, 142)
   (void) (XR←MonitorExit((word) (( (bPt) gf←c41048)+16)/* LOCK←v2832 */ ));
   return;
   }

static word NoName←Q7956(formal←c0551)
   word formal←c0551;
   {
   register ptr gf←c0550 =  (ptr) &globalframe;
SOURCE(5598, 59)
   lab←L100017: ;
   if ((* (( (ptr) gf←c0550)+19)/* inspectionLock←v3336 */  )) {
      }
   else {
      goto lab←L100015;
      };
SOURCE(5622, 35)
   (void) (XR←Wait((word) (( (bPt) gf←c0550)+16)/* LOCK←v2832 */ , (word) (( (bPt) gf←c0550)+80)/* inspectionLockReleased←v3364 */ )
   );
   goto lab←L100017;
   lab←L100015: ;
SOURCE(5659, 21)
   (* (( (ptr) gf←c0550)+19)/* inspectionLock←v3336 */  ) = 1;
   return(0);
   }

static void GiveInspectionLock←P960()
   {
   register ptr gf←c41080 =  (ptr) &globalframe;
   /* GiveInspectionLock: */ 
SOURCE(5686, 93)
   (void) (XR←MonitorEntry((word) (( (bPt) gf←c41080)+16)/* LOCK←v2832 */ ));
SOURCE(5723, 22)
   (* (( (ptr) gf←c41080)+19)/* inspectionLock←v3336 */  ) = 0;
SOURCE(5747, 32)
   (void) (XR←Broadcast((word) (( (bPt) gf←c41080)+80)/* inspectionLockReleased←v3364 */ ));
SOURCE(5686, 93)
   (void) (XR←MonitorExit((word) (( (bPt) gf←c41080)+16)/* LOCK←v2832 */ ));
   return;
   }

extern void XR←BeginInstallation()
   {
   register ptr gf←c41112 =  (ptr) &globalframe;
   word dummy←v14768 = 1;
   /* BeginInstallation: */ 
SOURCE(5785, 517)
SOURCE(5887, 22)
   (void) TakeInstallationLock←P780();
SOURCE(5911, 391)
   if ((0 == (* (( (ptr) gf←c41112)+8)/* initialized←v3168 */  ))) {
SOURCE(5938, 29)
      (* (( (ptr) gf←c41112)+37)/* globalConfig←v3700 */  ) = XR←NewObject(32, (* (( (ptr) gf←c41112)+44) ));
SOURCE(5969, 26)
      (* (( (ptr) (* (( (ptr) gf←c41112)+37)/* globalConfig←v3700 */  ))+5) ) = 1;
SOURCE(5997, 27)
      (* (( (ptr) (* (( (ptr) gf←c41112)+37)/* globalConfig←v3700 */  ))+7) ) = 1;
SOURCE(6026, 46)
      (* (( (ptr) (* (( (ptr) gf←c41112)+37)/* globalConfig←v3700 */  ))+6) ) = XR←NewObject(8, (* (( (ptr) gf←c41112)+51) ));
SOURCE(6074, 28)
      (* (( (ptr) gf←c41112)+28)/* currentConfig←v3448 */  ) = (* (( (ptr) gf←c41112)+37)/* globalConfig←v3700 */  );
SOURCE(6104, 40)
      (* (( (ptr) gf←c41112)+26)/* uncommittedGlobalConfig←v3392 */  ) = XR←NewObject(32, (* (( (ptr) gf←c41112)+44) ));
SOURCE(6146, 37)
      (* (( (ptr) (* (( (ptr) gf←c41112)+26)/* uncommittedGlobalConfig←v3392 */  ))+5) ) = 1;
SOURCE(6185, 38)
      (* (( (ptr) (* (( (ptr) gf←c41112)+26)/* uncommittedGlobalConfig←v3392 */  ))+7) ) = 1;
SOURCE(6225, 57)
      (* (( (ptr) (* (( (ptr) gf←c41112)+26)/* uncommittedGlobalConfig←v3392 */  ))+6) ) = XR←NewObject(8, (* (( (ptr) gf←c41112)+51)
          ));
SOURCE(6284, 18)
      (* (( (ptr) gf←c41112)+8)/* initialized←v3168 */  ) = 1;
      };
   }

static void CheckInstallation←P1080(formal←c0631)
   word formal←c0631;
   {
   W7 var←c41144;
   /* declaration of report←v8232 skipped */ 
   register ptr gf←c41176 =  (ptr) &globalframe;
   /* declaration of var←c35672 skipped */ 
   word dummy←v14812 = 1;
   var←c41144.f4/* report←v8232 */  = formal←c0631;
   /* CheckInstallation: */ 
SOURCE(6311, 656)
   {
      word tmpAddr51;
      tmpAddr51 = (word) (( (ptr) &var←c41144)+5)/* var←c35672 */ ;
      (*  (ptr) tmpAddr51 ) = ( ((word)  (fPt) CheckDuplicate←P5148) );
      (* (( (ptr) tmpAddr51) + 1) ) = 1;
      };
SOURCE(6625, 68)
   (void) EnumerateEnviron←P2880((* (( (ptr) (* (( (ptr) gf←c41176)+26)/* uncommittedGlobalConfig←v3392 */  ))+6) ), (word) (
         ( (bPt) &var←c41144)+20)/* var←c35672 */ );
SOURCE(6695, 103)
   {
      register word l←v14944;
      l←v14944 = (* (( (ptr) gf←c41176)+31)/* interfacesNeedingWork←v3532 */  );
      lab←L100021: ;
      if ((l←v14944 != 0)) {
         }
      else {
         goto lab←L100018;
         };
SOURCE(6767, 31)
      (void) CheckInterface←P1140((*  (ptr) l←v14944 ), var←c41144.f4/* report←v8232 */ );
      l←v14944 = (* (( (ptr) l←v14944)+1) );
      goto lab←L100021;
      lab←L100018: ;
      };
SOURCE(6809, 158)
   {
      register word l←v15072;
      l←v15072 = (* (( (ptr) gf←c41176)+30)/* typeClashes←v3504 */  );
      lab←L100025: ;
      if ((l←v15072 != 0)) {
         }
      else {
         goto lab←L100022;
         };
SOURCE(6871, 96)
      {
         word var←c35704;
         {
            word pd52;
            pd52 = (* (( (ptr) (* (( (ptr) gf←c41176)+247)/* var←c35416 */  ))+7) );
            var←c35704 = (word) ( *( (fPt) ((*  (ptr) pd52 ))))((*  (ptr) l←v15072 ), 2147483647, pd52);
            };
         {
            W6 var←c35736;
            var←c35736.f0 = 0;
            var←c35736.f1 = 0;
            var←c35736.f2 = 4;
            var←c35736.f3 = var←c35704;
            var←c35736.f4 = (* (( (ptr) l←v15072)+1) );
            var←c35736.f5 = (* (( (ptr) l←v15072)+2) );
            {
               word pd53;
               pd53 = (word) (var←c41144.f4/* report←v8232 */ );
               (void) ( *( (fPt) ((*  (ptr) pd53 ))))(var←c35736, pd53);
               };
            };
         };
      l←v15072 = (* (( (ptr) l←v15072)+3) );
      goto lab←L100025;
      lab←L100022: ;
      };
   }

static void CheckDuplicate←P5148(interface←v14916, formal←c41240)
   word interface←v14916;
   word formal←c41240;
   {
   register ptr gf←c41208 =  (ptr) &globalframe;
   W2 var←c0168;
   word var←c0606;
   formal←c41240 = (formal←c41240 - 20);
   /* CheckDuplicate: */ 
SOURCE(6432, 188)
SOURCE(6480, 140)
   {
      W2 var←c35768;
      var←c35768.f0 = (*  (ptr) interface←v14916 );
      var←c35768.f1 = 0;
      (void) Lookup←P2820((word) &var←c0168, var←c35768, (* (( (ptr) (* (( (ptr) gf←c41208)+37)/* globalConfig←v3700 */  ))+6) ))
      ;
      };
   var←c0606 = var←c0168.f0;
   if ((0 != var←c0606)) {
SOURCE(6570, 50)
      {
         W3 var←c35800;
         W6 var←c0607;
         var←c35800.f0 = interface←v14916;
         var←c35800.f1 = 0;
         var←c35800.f2 = 3;
         (*  (W3Pt) (word) &var←c0607 ) = var←c35800;
         (*  (W3Pt) (( (ptr) (word) &var←c0607) + 3) ) = (*  (W3Pt) &dummy54 );
         {
            word pd55;
            pd55 = (* (( (ptr) formal←c41240)+4) );
            (void) ( *( (fPt) ((*  (ptr) pd55 ))))(var←c0607, pd55);
            };
         };
      };
   }

static void CheckInterface←P1140(interface←v8292, report←v8320)
   word interface←v8292;
   word report←v8320;
   {
   word dummy←v15200 = 1;
   /* CheckInterface: */ 
SOURCE(6982, 999)
SOURCE(7081, 900)
   {
      register word i←v15244 = 0;
      register word noName←c35832;
      {
         word idx56;
         noName←c35832 = (
            idx56 = (* (( (ptr) interface←v8292)+3) ),
            SGNCK(idx56)
            );
         };
      if (( (int)i←v15244 >=  (int)noName←c35832)) {
         goto lab←L100026;
         };
      lab←L100029: ;
SOURCE(7120, 861)
      {
         W3 var←c35896;
         {
            word var←c35864;
            var←c35864 = (* (( (ptr) interface←v8292)+2) );
            {
               word limit57;
               var←c35896 = (* (( (W3Pt) (( (ptr) var←c35864)+3))+(
                     limit57 = (* (( (ptr) var←c35864)+2) ),
                     BCK(i←v15244, limit57)
                     )) );
               };
            };
         {
            word var←c36088;
            var←c36088 = var←c35896.f1;
            switch (var←c36088) {
               case 1: 
                  {
                     W3 peItem←v15288;
                     peItem←v15288 = var←c35896;
SOURCE(7202, 283)
                     if (((* (( (ptr) peItem←v15288.f2)+5) ) != 0) || ((peItem←v15288.f0 - 2) <= 1)) {
SOURCE(7271, 214)
                        {
                           register word l←v15332;
                           l←v15332 = peItem←v15288.f2;
                           lab←L100033: ;
                           if ((l←v15332 != 0)) {
/*1*/   }
                           else {
/*1*/   goto lab←L100030;
/*1*/   };
SOURCE(7343, 142)
                           if ((peItem←v15288.f0 == 0)) {
SOURCE(7372, 63)
/*1*/   {
/*1*/      W4 var←c35928;
/*1*/      W6 var←c0608;
/*1*/      var←c35928.f0 = interface←v8292;
/*1*/      var←c35928.f1 = i←v15244;
/*1*/      var←c35928.f2 = 1;
/*1*/      var←c35928.f3 = (* (( (ptr) l←v15332)+4) );
/*1*/      (*  (W4Pt) (word) &var←c0608 ) = (var←c35928
/*1*/      );
/*1*/      (*  (W2Pt) (( (ptr) (word) &var←c0608) + 4) ) = (*  (W2Pt) &dummy54 );
/*1*/      (void) ( *( (fPt) ((*  (ptr) report←v8320 ))))(var←c0608, report←v8320);
/*1*/      };
/*1*/   }
                           else {
SOURCE(7435, 50)
/*1*/   {
/*1*/      W4 var←c35960;
/*1*/      W6 var←c0609;
/*1*/      var←c35960.f0 = interface←v8292;
/*1*/      var←c35960.f1 = i←v15244;
/*1*/      var←c35960.f2 = 2;
/*1*/      var←c35960.f3 = (* (( (ptr) l←v15332)+4) );
/*1*/      (*  (W4Pt) (word) &var←c0609 ) = (var←c35960
/*1*/      );
/*1*/      (*  (W2Pt) (( (ptr) (word) &var←c0609) + 4) ) = (*  (W2Pt) &dummy54 );
/*1*/      (void) ( *( (fPt) ((*  (ptr) report←v8320 ))))(var←c0609, report←v8320);
/*1*/      };
/*1*/   };
                           l←v15332 = (* (( (ptr) l←v15332)+5) );
                           goto lab←L100033;
                           lab←L100030: ;
                           };
                        };
                     };
                  break;
               case 2: 
                  {
                     W3 veItem←v15460;
                     veItem←v15460 = var←c35896;
SOURCE(7539, 266)
                     if (((* (( (ptr) veItem←v15460.f2)+2) ) != 0) || (veItem←v15460.f0 != 0)) {
SOURCE(7592, 213)
                        {
                           register word l←v15504;
                           l←v15504 = veItem←v15460.f2;
                           lab←L100037: ;
                           if ((l←v15504 != 0)) {
/*1*/   }
                           else {
/*1*/   goto lab←L100034;
/*1*/   };
SOURCE(7663, 142)
                           if ((veItem←v15460.f0 == 0)) {
SOURCE(7692, 63)
/*1*/   {
/*1*/      W4 var←c35992;
/*1*/      W6 var←c0610;
/*1*/      var←c35992.f0 = interface←v8292;
/*1*/      var←c35992.f1 = i←v15244;
/*1*/      var←c35992.f2 = 1;
/*1*/      var←c35992.f3 = (* (( (ptr) l←v15504)+1) );
/*1*/      (*  (W4Pt) (word) &var←c0610 ) = (var←c35992
/*1*/      );
/*1*/      (*  (W2Pt) (( (ptr) (word) &var←c0610) + 4) ) = (*  (W2Pt) &dummy54 );
/*1*/      (void) ( *( (fPt) ((*  (ptr) report←v8320 ))))(var←c0610, report←v8320);
/*1*/      };
/*1*/   }
                           else {
SOURCE(7755, 50)
/*1*/   {
/*1*/      W4 var←c36024;
/*1*/      W6 var←c0611;
/*1*/      var←c36024.f0 = interface←v8292;
/*1*/      var←c36024.f1 = i←v15244;
/*1*/      var←c36024.f2 = 2;
/*1*/      var←c36024.f3 = (* (( (ptr) l←v15504)+1) );
/*1*/      (*  (W4Pt) (word) &var←c0611 ) = (var←c36024
/*1*/      );
/*1*/      (*  (W2Pt) (( (ptr) (word) &var←c0611) + 4) ) = (*  (W2Pt) &dummy54 );
/*1*/      (void) ( *( (fPt) ((*  (ptr) report←v8320 ))))(var←c0611, report←v8320);
/*1*/      };
/*1*/   };
                           l←v15504 = (* (( (ptr) l←v15504)+2) );
                           goto lab←L100037;
                           lab←L100034: ;
                           };
                        };
                     };
                  break;
               case 3: 
                  {
                     W3 piItem←v15632;
                     piItem←v15632 = var←c35896;
SOURCE(7854, 127)
                     {
                        register word l←v15676;
                        l←v15676 = piItem←v15632.f2;
                        lab←L100041: ;
                        if ((l←v15676 != 0)) {
                           }
                        else {
                           goto lab←L100038;
                           };
SOURCE(7918, 63)
                        {
                           W4 var←c36056;
                           W6 var←c0612;
                           var←c36056.f0 = interface←v8292;
                           var←c36056.f1 = i←v15244;
                           var←c36056.f2 = 0;
                           var←c36056.f3 = (* (( (ptr) l←v15676)+3) );
                           (*  (W4Pt) (word) &var←c0612 ) = (var←c36056
                           );
                           (*  (W2Pt) (( (ptr) (word) &var←c0612) + 4) ) = (*  (W2Pt) &dummy54 );
                           (void) ( *( (fPt) ((*  (ptr) report←v8320 ))))(var←c0612, report←v8320);
                           };
                        l←v15676 = (* (( (ptr) l←v15676)+4) );
                        goto lab←L100041;
                        lab←L100038: ;
                        };
                     };
                  break;
               default: 
                  break;
               };
            };
         };
      i←v15244 = (i←v15244 + 1);
      if (( (int)i←v15244 <  (int)noName←c35832)) {
         goto lab←L100029;
         };
      lab←L100026: ;
      };
   }

extern void XR←CommitInstallation()
   {
   W6 var←c41272;
   register ptr gf←c41304 =  (ptr) &globalframe;
   /* declaration of var←c36120 skipped */ 
   word dummy←v15804 = 1;
   /* CommitInstallation: */ 
SOURCE(8017, 972)
   {
      word tmpAddr58;
      tmpAddr58 = (word) (( (ptr) &var←c41272)+4)/* var←c36120 */ ;
      (*  (ptr) tmpAddr58 ) = ( ((word)  (fPt) MakeCommitted←P5640) );
      (* (( (ptr) tmpAddr58) + 1) ) = 1;
      };
SOURCE(8217, 20)
   (void) TakeInspectionLock←P900();
SOURCE(8239, 67)
   (void) EnumerateEnviron←P2880((* (( (ptr) (* (( (ptr) gf←c41304)+26)/* uncommittedGlobalConfig←v3392 */  ))+6) ), (word) (
         ( (bPt) &var←c41272)+16)/* var←c36120 */ );
SOURCE(8308, 40)
   (void) EmptyInterfaces←P3000((* ((( (ptr) gf←c41304)+26)/* uncommittedGlobalConfig←v3392 */ ) ));
SOURCE(8350, 146)
   {
      register word l←v15936;
      l←v15936 = (* (( (ptr) (* (( (ptr) gf←c41304)+26)/* uncommittedGlobalConfig←v3392 */  ))+4) );
      lab←L100045: ;
      if ((l←v15936 != 0)) {
         }
      else {
         goto lab←L100042;
         };
SOURCE(8436, 60)
      {
         word var←c36152;
         var←c36152 = XR←NewObject(12, (* (( (ptr) gf←c41304)+53) ));
         (*  (W2Pt) var←c36152 ) = (*  (W2Pt) l←v15936 );
         (* (( (ptr) var←c36152)+2) ) = (* (( (ptr) (* (( (ptr) gf←c41304)+37)/* globalConfig←v3700 */  ))+4) );
         (* (( (ptr) (* (( (ptr) gf←c41304)+37)/* globalConfig←v3700 */  ))+4) ) = var←c36152;
         };
      l←v15936 = (* (( (ptr) l←v15936)+2) );
      goto lab←L100045;
      lab←L100042: ;
      };
SOURCE(8507, 38)
   (* (( (ptr) (* (( (ptr) gf←c41304)+26)/* uncommittedGlobalConfig←v3392 */  ))+4) ) = 0;
SOURCE(8547, 128)
   {
      register word needsWork←v15980;
      needsWork←v15980 = (* (( (ptr) gf←c41304)+31)/* interfacesNeedingWork←v3532 */  );
      lab←L100049: ;
      if ((needsWork←v15980 != 0)) {
         }
      else {
         goto lab←L100046;
         };
SOURCE(8643, 32)
      (void) CommitInterface←P1260((*  (ptr) (needsWork←v15980) ));
      needsWork←v15980 = (* (( (ptr) needsWork←v15980)+1) );
      goto lab←L100049;
      lab←L100046: ;
      };
SOURCE(8686, 199)
   if (((* (( (ptr) gf←c41304)+35)/* lastUncommittedTypeExport←v3644 */  ) != 0)) {
SOURCE(8726, 44)
      (* (( (ptr) (* (( (ptr) gf←c41304)+35)/* lastUncommittedTypeExport←v3644 */  ))+4) ) = (* (( (ptr) gf←c41304)+33)/* typeExports←v3588 */  );
SOURCE(8772, 36)
      (* (( (ptr) gf←c41304)+33)/* typeExports←v3588 */  ) = (* (( (ptr) gf←c41304)+34)/* uncommittedTypeExports←v3616 */  );
SOURCE(8810, 56)
      (* (( (ptr) gf←c41304)+35)/* lastUncommittedTypeExport←v3644 */  ) = 0;
      (* (( (ptr) gf←c41304)+34)/* uncommittedTypeExports←v3616 */  ) = 0;
SOURCE(8868, 17)
      (* (( (ptr) gf←c41304)+30)/* typeClashes←v3504 */  ) = 0;
      };
SOURCE(8890, 27)
   (* (( (ptr) gf←c41304)+31)/* interfacesNeedingWork←v3532 */  ) = 0;
SOURCE(8919, 24)
   (* (( (ptr) gf←c41304)+27)/* newProgsAndConfigs←v3420 */  ) = 0;
SOURCE(8945, 20)
   (void) GiveInspectionLock←P960();
SOURCE(8967, 22)
   (void) GiveInstallationLock←P840();
   }

static void MakeCommitted←P5640(interface←v15908, formal←c41368)
   word interface←v15908;
   word formal←c41368;
   {
   register ptr gf←c41336 =  (ptr) &globalframe;
   formal←c41368 = (formal←c41368 - 16);
   /* MakeCommitted: */ 
SOURCE(8123, 89)
SOURCE(8170, 42)
   (void) Insert←P60(interface←v15908, (* (( (ptr) (* (( (ptr) gf←c41336)+37)/* globalConfig←v3700 */  ))+6) ));
   }

static void CommitInterface←P1260(interface←v8396)
   word interface←v8396;
   {
   word dummy←v16108 = 1;
   /* CommitInterface: */ 
SOURCE(8995, 141)
SOURCE(9073, 63)
   {
      register word i←v16152 = 0;
      register word noName←c36184;
      {
         word idx59;
         noName←c36184 = (
            idx59 = (* (( (ptr) interface←v8396)+3) ),
            SGNCK(idx59)
            );
         };
      if (( (int)i←v16152 >=  (int)noName←c36184)) {
         goto lab←L100050;
         };
      lab←L100053: ;
SOURCE(9112, 24)
      (void) CommitItem←P1320(interface←v8396, i←v16152);
      i←v16152 = (i←v16152 + 1);
      if (( (int)i←v16152 <  (int)noName←c36184)) {
         goto lab←L100053;
         };
      lab←L100050: ;
      };
   }

static void CommitItem←P1320(interface←v8456, i←v8484)
   word interface←v8456;
   word i←v8484;
   {
   word dummy←v16196 = 1;
   /* CommitItem: */ 
SOURCE(9151, 1225)
SOURCE(9232, 1075)
   {
      W3 var←c36248;
      {
         word var←c36216;
         var←c36216 = (* (( (ptr) interface←v8456)+2) );
         {
            word limit60;
            var←c36248 = (* (( (W3Pt) (( (ptr) var←c36216)+3))+(
                  limit60 = (* (( (ptr) var←c36216)+2) ),
                  BCK(i←v8484, limit60)
                  )) );
            };
         };
      {
         word var←c36472;
         var←c36472 = var←c36248.f1;
         switch (var←c36472) {
            case 0: 
               {
                  W2 n←v16240;
                  n←v16240 = (*  (W2Pt) &var←c36248 );
SOURCE(9291, 6)
                  return;
                  };
            case 1: 
               {
                  W3 up←v16284;
                  up←v16284 = var←c36248;
                  if ( ( (0 != (*  (ptr) (* (( (ptr) interface←v8456)+2) ) )) ? ((up←v16284.f0 - 2) <= 1) : 0 ) ) {
                     }
                  else {
SOURCE(9452, 366)
SOURCE(9452, 366)
                     {
                        word prev←v16328;
                        word var←c36280;
                        word var←c0613;
                        word var←c36344;
SOURCE(9476, 125)
                        {
                           word limit62;
                           {
/*1*/   word limit61;
/*1*/   var←c36280 = (* (( (ptr) interface←v8456)+2) );
/*1*/   var←c0613 = (* (( (W3Pt) (( (ptr) var←c36280)+3))+(
/*1*/         limit61 = (* (( (ptr) var←c36280)+2) ),
/*1*/         BCK(i←v8484, limit61)
/*1*/         )) ).f0;
/*1*/   };
                           if ((var←c0613 == 1)) {
/*1*/   prev←v16328 = (* ((( (ptr) interface←v8456)+4)+(
/*1*/         limit62 = (* (( (ptr) interface←v8456)+3) ),
/*1*/         BCK(i←v8484, limit62)
/*1*/         )) );
/*1*/   }
                           else {
/*1*/   prev←v16328 = 0;
/*1*/   };
                           };
SOURCE(9603, 91)
                        {
                           word var←c36312;
                           var←c36312 = (word) GetStartTrap←P2640((* (( (ptr) up←v16284.f2)+1) ), (* (( (ptr) up←v16284.f2)+2) ), (* (( (ptr) up←v16284.f2)+3)
/*1*/    ), (* (( (ptr) up←v16284.f2)+4) ), (*  (ptr) up←v16284.f2 ));
                           {
/*1*/   word limit63;
/*1*/   (* ((( (ptr) interface←v8456)+4)+(
/*1*/         limit63 = (* (( (ptr) interface←v8456)+3) ),
/*1*/         BCK(i←v8484, limit63)
/*1*/         )) ) = var←c36312;
/*1*/   };
                           };
SOURCE(9696, 42)
                        {
                           word limit64;
                           var←c36344 = (* (( (ptr) interface←v8456)+2) );
                           (* (( (W3Pt) (( (ptr) var←c36344)+3))+(
/*1*/      limit64 = (* (( (ptr) var←c36344)+2) ),
/*1*/      BCK(i←v8484, limit64)
/*1*/      )) ).f0 = 2;
                           };
SOURCE(9740, 75)
                        if ((prev←v16328 != 0)) {
SOURCE(9764, 51)
SOURCE(9766, 49)
                           {
/*1*/   word limit65;
/*1*/   (* (( (ptr) prev←v16328)+2) ) = (* ((( (ptr) interface←v8456)+4)+(
/*1*/         limit65 = (* (( (ptr) interface←v8456)+3) ),
/*1*/         BCK(i←v8484, limit65)
/*1*/         )) );
/*1*/   };
                           };
                        };
                     };
                  };
               break;
            case 2: 
               {
                  W3 uv←v16384;
                  uv←v16384 = var←c36248;
                  if ( ( (0 != (*  (ptr) (* (( (ptr) interface←v8456)+2) ) )) ? (uv←v16384.f0 == 3) : 0 ) ) {
                     }
                  else {
                     {
                        word var←c36376;
SOURCE(9961, 49)
                        {
                           word limit66;
                           (* ((( (ptr) interface←v8456)+4)+(
/*1*/      limit66 = (* (( (ptr) interface←v8456)+3) ),
/*1*/      BCK(i←v8484, limit66)
/*1*/      )) ) = (*  (ptr) uv←v16384.f2 );
                           };
SOURCE(10012, 38)
                        {
                           word limit67;
                           var←c36376 = (* (( (ptr) interface←v8456)+2) );
                           (* (( (W3Pt) (( (ptr) var←c36376)+3))+(
/*1*/      limit67 = (* (( (ptr) var←c36376)+2) ),
/*1*/      BCK(i←v8484, limit67)
/*1*/      )) ).f0 = 3;
                           };
                        };
                     };
                  };
               break;
            case 3: 
               {
                  W3 id←v16428;
                  id←v16428 = var←c36248;
                  if (((id←v16428.f0 - 1) <= 2)) {
                     }
                  else {
                     {
                        word var←c36440;
SOURCE(10163, 98)
                        {
                           word var←c36408;
                           var←c36408 = (word) GetUnboundTrap←P2700((*  (ptr) id←v16428.f2 ), (* (( (ptr) id←v16428.f2)+1) ), (* (( (ptr) id←v16428.f2)+2)
/*1*/    ));
                           {
/*1*/   word limit68;
/*1*/   (* ((( (ptr) interface←v8456)+4)+(
/*1*/         limit68 = (* (( (ptr) interface←v8456)+3) ),
/*1*/         BCK(i←v8484, limit68)
/*1*/         )) ) = var←c36408;
/*1*/   };
                           };
SOURCE(10263, 44)
                        {
                           word limit69;
                           var←c36440 = (* (( (ptr) interface←v8456)+2) );
                           (* (( (W3Pt) (( (ptr) var←c36440)+3))+(
/*1*/      limit69 = (* (( (ptr) var←c36440)+2) ),
/*1*/      BCK(i←v8484, limit69)
/*1*/      )) ).f0 = 1;
                           };
                        };
                     };
                  };
               break;
            default: 
               break;
            };
         };
      };
SOURCE(10332, 44)
SOURCE(10333, 43)
   {
      word var←c36536;
      word var←c36504;
      {
         word limit70;
         var←c36504 = (* (( (ptr) interface←v8456)+2) );
         var←c36536 = (word) (( (W3Pt) (( (bPt) var←c36504)+12))+(
               limit70 = (* (( (ptr) var←c36504)+2) ),
               BCK(i←v8484, limit70)
               ));
         };
      (* (( (ptr) var←c36536)+1) ) = 0;
      };
   }

extern void XR←AbortInstallation()
   {
   register ptr gf←c41400 =  (ptr) &globalframe;
   word dummy←v16472 = 1;
   /* AbortInstallation: */ 
SOURCE(10383, 478)
SOURCE(10487, 40)
   (void) EmptyInterfaces←P3000((* ((( (ptr) gf←c41400)+26)/* uncommittedGlobalConfig←v3392 */ ) ));
SOURCE(10529, 127)
   {
      register word needsWork←v16516;
      needsWork←v16516 = (* (( (ptr) gf←c41400)+31)/* interfacesNeedingWork←v3532 */  );
      lab←L100057: ;
      if ((needsWork←v16516 != 0)) {
         }
      else {
         goto lab←L100054;
         };
SOURCE(10625, 31)
      (void) AbortInterface←P1440((*  (ptr) (needsWork←v16516) ));
      needsWork←v16516 = (* (( (ptr) needsWork←v16516)+1) );
      goto lab←L100057;
      lab←L100054: ;
      };
SOURCE(10667, 27)
   (* (( (ptr) gf←c41400)+31)/* interfacesNeedingWork←v3532 */  ) = 0;
SOURCE(10696, 38)
   (* (( (ptr) (* (( (ptr) gf←c41400)+26)/* uncommittedGlobalConfig←v3392 */  ))+4) ) = 0;
SOURCE(10736, 24)
   (* (( (ptr) gf←c41400)+27)/* newProgsAndConfigs←v3420 */  ) = 0;
SOURCE(10762, 56)
   (* (( (ptr) gf←c41400)+35)/* lastUncommittedTypeExport←v3644 */  ) = 0;
   (* (( (ptr) gf←c41400)+34)/* uncommittedTypeExports←v3616 */  ) = 0;
SOURCE(10820, 17)
   (* (( (ptr) gf←c41400)+30)/* typeClashes←v3504 */  ) = 0;
SOURCE(10839, 22)
   (void) GiveInstallationLock←P840();
   }

static void AbortInterface←P1440(interface←v8560)
   word interface←v8560;
   {
   word dummy←v16644 = 1;
   /* AbortInterface: */ 
SOURCE(10867, 139)
SOURCE(10944, 62)
   {
      register word i←v16688 = 0;
      register word noName←c36568;
      {
         word idx71;
         noName←c36568 = (
            idx71 = (* (( (ptr) interface←v8560)+3) ),
            SGNCK(idx71)
            );
         };
      if (( (int)i←v16688 >=  (int)noName←c36568)) {
         goto lab←L100058;
         };
      lab←L100061: ;
SOURCE(10983, 23)
      (void) AbortItem←P1500(interface←v8560, i←v16688);
      i←v16688 = (i←v16688 + 1);
      if (( (int)i←v16688 <  (int)noName←c36568)) {
         goto lab←L100061;
         };
      lab←L100058: ;
      };
   }

static void AbortItem←P1500(interface←v8620, i←v8648)
   word interface←v8620;
   word i←v8648;
   {
   word dummy←v16732 = 1;
   /* AbortItem: */ 
SOURCE(11021, 201)
SOURCE(11101, 121)
   {
      word var←c36632;
      word var←c36600;
      {
         word limit72;
         var←c36600 = (* (( (ptr) interface←v8620)+2) );
         var←c36632 = (* (( (W3Pt) (( (ptr) var←c36600)+3))+(
               limit72 = (* (( (ptr) var←c36600)+2) ),
               BCK(i←v8648, limit72)
               )) ).f1;
         };
      if ((var←c36632 == 0)) {
SOURCE(11151, 6)
         return;
         }
      else {
SOURCE(11178, 44)
SOURCE(11179, 43)
         {
            word var←c36696;
            word var←c36664;
            {
               word limit73;
               var←c36664 = (* (( (ptr) interface←v8620)+2) );
               var←c36696 = (word) (( (W3Pt) (( (bPt) var←c36664)+12))+(
                     limit73 = (* (( (ptr) var←c36664)+2) ),
                     BCK(i←v8648, limit73)
                     ));
               };
            (* (( (ptr) var←c36696)+1) ) = 0;
            };
         };
      };
   }

static word NewEnvironRefTab←P1560()
   {
   register ptr gf←c41432 =  (ptr) &globalframe;
   word environ←v8708;
   /* NewEnvironRefTab: */ 
SOURCE(11229, 154)
SOURCE(11229, 154)
   environ←v8708 = 0;
SOURCE(11286, 97)
   {
      word var←c36760;
      word var←c36792;
      {
         word pd74;
         pd74 = (* (( (ptr) (* (( (ptr) gf←c41432)+246)/* var←c35192 */  ))+5) );
         var←c36760 = (word) ( *( (fPt) ((*  (ptr) pd74 ))))(17, (word) (( (bPt) gf←c41432)+756)/* var←c34168 */ , (word) (( (bPt) gf←c41432)+748)
            /* var←c34136 */ , pd74);
         };
      var←c36792 = XR←NewObject(8, (* (( (ptr) gf←c41432)+51) ));
      (*  (ptr) var←c36792 ) = 1;
      (* (( (ptr) var←c36792)+1) ) = var←c36760;
      return(var←c36792);
      };
   }

static word InterfaceMatch←P1620(key1←v25620, key2←v25648)
   word key1←v25620;
   word key2←v25648;
   {
   word var←c25692;
   word k1←v16776;
   word k2←v16804;
   /* InterfaceMatch: */ 
SOURCE(11389, 141)
SOURCE(11434, 30)
   k1←v16776 = key1←v25620;
SOURCE(11466, 30)
   k2←v16804 = key2←v25648;
SOURCE(11498, 32)
   return((word) KeyMatch←P3060((*  (W2Pt) k1←v16776 ), (*  (W2Pt) k2←v16804 )));
   }

static word InterfaceHash←P1680(key←v25752)
   word key←v25752;
   {
   word var←c25796;
   word k←v16848;
   word name←v16876;
   word hash←v16904 = 0;
   word i←v16932 = 0;
   /* InterfaceHash: */ 
SOURCE(11536, 215)
SOURCE(11579, 28)
   k←v16848 = key←v25752;
SOURCE(11609, 26)
   name←v16876 = (*  (ptr) k←v16848 );
SOURCE(11666, 60)
   lab←L100064: ;
   if (((word) (* (( (bPt) name←v16876)+i←v16932) ) != 0)) {
      }
   else {
      goto lab←L100062;
      };
SOURCE(11691, 26)
   hash←v16904 = (hash←v16904 + (word) (* (( (bPt) name←v16876)+i←v16932) ));
SOURCE(11719, 7)
   i←v16932 = (i←v16932 + 1);
   goto lab←L100064;
   lab←L100062: ;
SOURCE(11737, 14)
   return(hash←v16904);
   }

extern void XR←PushScope(name←v8768)
   word name←v8768;
   {
   register ptr gf←c41464 =  (ptr) &globalframe;
   word dummy←v16976 = 1;
   /* PushScope: */ 
SOURCE(11757, 766)
SOURCE(11840, 43)
   if ((0 == (* (( (ptr) gf←c41464)+8)/* initialized←v3168 */  ))) {
SOURCE(11864, 19)
      (void) XR←BeginInstallation();
      };
SOURCE(11899, 188)
   if ( ( ((* (( (ptr) gf←c41464)+28)/* currentConfig←v3448 */  ) == (* (( (ptr) gf←c41464)+37)/* globalConfig←v3700 */  )) ? ((* (
      ( (ptr) gf←c41464)+29)/* currentProgram←v3476 */  ) != 0) : 0 ) ) {
SOURCE(11959, 20)
      (void) XR←CommitInstallation();
SOURCE(12067, 20)
      (* (( (ptr) gf←c41464)+29)/* currentProgram←v3476 */  ) = 0;
      };
SOURCE(12092, 433)
   {
      word newScope←v17020;
SOURCE(12094, 168)
      {
         word var←c36856;
         word var←c36920;
         if ((0 != (* (( (ptr) gf←c41464)+9)/* installationScopesStarted←v3196 */  ))) {
            var←c36856 = (word) NewEnvironRefTab←P1560();
            }
         else {
            var←c36856 = XR←NewObject(8, (* (( (ptr) gf←c41464)+51) ));
            };
         var←c36920 = XR←NewObject(32, (* (( (ptr) gf←c41464)+44) ));
         (*  (ptr) var←c36920 ) = (* (( (ptr) gf←c41464)+28)/* currentConfig←v3448 */  );
         (* (( (ptr) var←c36920)+1) ) = name←v8768;
         (* (( (ptr) var←c36920)+6) ) = var←c36856;
         newScope←v17020 = var←c36920;
         };
SOURCE(12264, 211)
      if (((* (( (ptr) gf←c41464)+28)/* currentConfig←v3448 */  ) == (* (( (ptr) gf←c41464)+37)/* globalConfig←v3700 */  ))) {
SOURCE(12301, 94)
         {
            word var←c36952;
            var←c36952 = XR←NewObject(12, (* (( (ptr) gf←c41464)+53) ));
            (*  (ptr) var←c36952 ) = 1;
            (* (( (ptr) var←c36952)+1) ) = newScope←v17020;
            (* (( (ptr) var←c36952)+2) ) = (* (( (ptr) (* (( (ptr) gf←c41464)+26)/* uncommittedGlobalConfig←v3392 */  ))+4) );
            (* (( (ptr) (* (( (ptr) gf←c41464)+26)/* uncommittedGlobalConfig←v3392 */  ))+4) ) = var←c36952;
            };
         }
      else {
SOURCE(12402, 73)
         {
            word var←c36984;
            var←c36984 = XR←NewObject(12, (* (( (ptr) gf←c41464)+53) ));
            (*  (ptr) var←c36984 ) = 1;
            (* (( (ptr) var←c36984)+1) ) = newScope←v17020;
            (* (( (ptr) var←c36984)+2) ) = (* (( (ptr) (* (( (ptr) gf←c41464)+28)/* currentConfig←v3448 */  ))+4) );
            (* (( (ptr) (* (( (ptr) gf←c41464)+28)/* currentConfig←v3448 */  ))+4) ) = var←c36984;
            };
         };
SOURCE(12477, 24)
      (* (( (ptr) gf←c41464)+28)/* currentConfig←v3448 */  ) = newScope←v17020;
SOURCE(12503, 20)
      (* (( (ptr) gf←c41464)+29)/* currentProgram←v3476 */  ) = 0;
      };
   }

extern void XR←PopScope()
   {
   register ptr gf←c41496 =  (ptr) &globalframe;
   word dummy←v17064 = 1;
   /* PopScope: */ 
SOURCE(12532, 177)
SOURCE(12609, 35)
   if (((*  (ptr) (* (( (ptr) gf←c41496)+28)/* currentConfig←v3448 */  ) ) == 0)) {
SOURCE(12644, 5)
      (void) XR←RaiseUnnamedError();
      };
SOURCE(12651, 36)
   (* (( (ptr) gf←c41496)+28)/* currentConfig←v3448 */  ) = (*  (ptr) (* (( (ptr) gf←c41496)+28)/* currentConfig←v3448 */  ) );
SOURCE(12689, 20)
   (* (( (ptr) gf←c41496)+29)/* currentProgram←v3476 */  ) = 0;
   }

extern word XR←ImportInterface(name←v8844, type←v8872, size←v8900)
   word name←v8844;
   word type←v8872;
   word size←v8900;
   {
   register ptr gf←c41528 =  (ptr) &globalframe;
   word var←c8944;
   W2 key←v17108;
   /* ImportInterface: */ 
SOURCE(12716, 198)
SOURCE(12823, 23)
   key←v17108.f0 = name←v8844;
   key←v17108.f1 = type←v8872;
SOURCE(12848, 66)
   return((word) GetAnyInterface←P1980(key←v17108, size←v8900, (* (( (ptr) gf←c41528)+28)/* currentConfig←v3448 */  )));
   }

extern word XR←ExportInterface(name←v9004, type←v9032, size←v9060)
   word name←v9004;
   word type←v9032;
   word size←v9060;
   {
   register ptr gf←c41560 =  (ptr) &globalframe;
   word var←c9104;
   W2 key←v17152;
   /* ExportInterface: */ 
SOURCE(12920, 199)
SOURCE(13027, 23)
   key←v17152.f0 = name←v9004;
   key←v17152.f1 = type←v9032;
SOURCE(13052, 67)
   return((word) GetAnyInterface←P1980(key←v17152, size←v9060, (* (( (ptr) gf←c41560)+28)/* currentConfig←v3448 */  )));
   }

static word GetAnyInterface←P1980(key←v9164, size←v9192, config←v9220)
   W2 key←v9164;
   word size←v9192;
   word config←v9220;
   {
   register ptr gf←c41592 =  (ptr) &globalframe;
   word interface←v9264;
   word found←v17196 = 0;
   /* GetAnyInterface: */ 
SOURCE(13125, 895)
SOURCE(13125, 895)
   interface←v9264 = 0;
SOURCE(13241, 96)
   if ((config←v9220 == (* (( (ptr) gf←c41592)+37)/* globalConfig←v3700 */  ))) {
SOURCE(13269, 68)
      {
         W2 var←c37144;
         (void) Lookup←P2820((word) &var←c37144, key←v9164, (* (( (ptr) (* (( (ptr) gf←c41592)+26)/* uncommittedGlobalConfig←v3392 */  ))+6)
             ));
         interface←v9264 = var←c37144.f1;
         found←v17196 = var←c37144.f0;
         };
      };
SOURCE(13339, 69)
   if ((0 == found←v17196)) {
SOURCE(13357, 51)
      {
         W2 var←c37176;
         (void) Lookup←P2820((word) &var←c37176, key←v9164, (* (( (ptr) config←v9220)+6) ));
         interface←v9264 = var←c37176.f1;
         found←v17196 = var←c37176.f0;
         };
      };
   if ( ( (0 != (* (( (ptr) config←v9220)+5) )) ? (0 == found←v17196) : 0 ) ) {
SOURCE(13457, 206)
      if ((key←v9164.f1 != 0)) {
SOURCE(13499, 35)
         interface←v9264 = (word) NewInterface←P2100(size←v9192, key←v9164);
SOURCE(13536, 127)
         if ((config←v9220 == (* (( (ptr) gf←c41592)+37)/* globalConfig←v3700 */  ))) {
SOURCE(13564, 61)
            (void) Insert←P60(interface←v9264, (* (( (ptr) (* (( (ptr) gf←c41592)+26)/* uncommittedGlobalConfig←v3392 */  ))+6) ));
            }
         else {
SOURCE(13625, 38)
            (void) Insert←P60(interface←v9264, (* (( (ptr) config←v9220)+6) ));
            };
         };
      }
   else {
      if ( ( (0 != (* (( (ptr) config←v9220)+5) )) ? (0 != found←v17196) : 0 ) ) {
SOURCE(13699, 104)
         if (((* (( (ptr) interface←v9264)+3) ) == 0)) {
SOURCE(13726, 58)
            return((word) GetAnyInterface←P1980(key←v9164, size←v9192, (*  (ptr) config←v9220 )));
            }
         else {
SOURCE(13784, 19)
            return(interface←v9264);
            };
         }
      else {
         if ( ( (0 == (* (( (ptr) config←v9220)+5) )) ? (0 == found←v17196) : 0 ) ) {
SOURCE(13836, 49)
            {
               word var←c37240;
               var←c37240 = (word) NewInterface←P2100(0, key←v9164);
               (void) Insert←P60(var←c37240, (* (( (ptr) config←v9220)+6) ));
               };
SOURCE(13887, 50)
            return((word) GetAnyInterface←P1980(key←v9164, size←v9192, (*  (ptr) config←v9220 )));
            }
         else {
            if ( ( (0 == (* (( (ptr) config←v9220)+5) )) ? (0 != found←v17196) : 0 ) ) {
SOURCE(13970, 50)
               return((word) GetAnyInterface←P1980(key←v9164, size←v9192, (*  (ptr) config←v9220 )));
               };
            };
         };
      };
SOURCE(13125, 895)
   return(interface←v9264);
   }

extern void XR←HideNames()
   {
   register ptr gf←c41624 =  (ptr) &globalframe;
   word dummy←v17240 = 1;
   /* HideNames: */ 
SOURCE(14121, 106)
SOURCE(14200, 27)
   (* (( (ptr) (* (( (ptr) gf←c41624)+28)/* currentConfig←v3448 */  ))+5) ) = 1;
   }

static word NewInterface←P2100(size←v9340, key←v9368)
   word size←v9340;
   W2 key←v9368;
   {
   register ptr gf←c41656 =  (ptr) &globalframe;
   word interface←v9412;
   word dummy←v17284 = 1;
   /* NewInterface: */ 
SOURCE(14233, 302)
SOURCE(14233, 302)
   interface←v9412 = 0;
SOURCE(14338, 40)
   {
      word var←c37336;
      word var←c37368;
      word var←c37400;
      var←c37336 = SGNCK(size←v9340);
      var←c37368 = ((word) var←c37336 << 2);
      var←c37400 = XR←NewObject((16 + var←c37368), (* (( (ptr) gf←c41656)+43) ));
      (* (( (ptr) var←c37400)+3) ) = var←c37336;
      interface←v9412 = var←c37400;
      };
SOURCE(14380, 19)
   (*  (W2Pt) interface←v9412 ) = key←v9368;
SOURCE(14401, 134)
   if (( (int)size←v9340 >  (int)0)) {
SOURCE(14420, 37)
      (* (( (ptr) interface←v9412)+2) ) = (word) NewAuxInterface←P2160(size←v9340);
SOURCE(14459, 46)
      (*  (ptr) (* (( (ptr) interface←v9412)+2) ) ) = 0;
SOURCE(14507, 28)
      (* (( (ptr) (* (( (ptr) interface←v9412)+2) ))+1) ) = 0;
      };
SOURCE(14233, 302)
   return(interface←v9412);
   }

static word NewAuxInterface←P2160(size←v9472)
   word size←v9472;
   {
   register ptr gf←c41688 =  (ptr) &globalframe;
   word aux←v9516;
   word dummy←v17328 = 1;
   /* NewAuxInterface: */ 
SOURCE(14544, 199)
SOURCE(14544, 199)
   aux←v9516 = 0;
SOURCE(14647, 37)
   {
      word var←c37432;
      word var←c37464;
      word var←c37496;
      var←c37432 = SGNCK(size←v9472);
      var←c37464 = ((word) var←c37432 * 12);
      var←c37496 = XR←NewObject((12 + var←c37464), (* (( (ptr) gf←c41688)+58) ));
      (* (( (ptr) var←c37496)+2) ) = var←c37432;
      aux←v9516 = var←c37496;
      };
SOURCE(14686, 57)
   {
      register word i←v17372 = 0;
      register word noName←c37528;
      noName←c37528 = size←v9472;
      if (( (int)i←v17372 >=  (int)noName←c37528)) {
         goto lab←L100065;
         };
      lab←L100068: ;
SOURCE(14713, 30)
      {
         word var←c37560;
         {
            word limit75;
            var←c37560 = (word) (( (W3Pt) (( (bPt) aux←v9516)+12))+(
                  limit75 = (* (( (ptr) aux←v9516)+2) ),
                  BCK(i←v17372, limit75)
                  ));
            };
         (*  (ptr) var←c37560 ) = 0;
         (* (( (ptr) var←c37560)+1) ) = 0;
         };
      i←v17372 = (i←v17372 + 1);
      if (( (int)i←v17372 <  (int)noName←c37528)) {
         goto lab←L100068;
         };
      lab←L100065: ;
      };
SOURCE(14544, 199)
   return(aux←v9516);
   }

extern void XR←ExportProc(interface←v9576, item←v9604, proc←v9632, unitsOut←v9660, unitsIn←v9688, argsIn←v9716)
   word interface←v9576;
   word item←v9604;
   word proc←v9632;
   word unitsOut←v9660;
   word unitsIn←v9688;
   word argsIn←v9716;
   {
   register ptr gf←c41720 =  (ptr) &globalframe;
   word dummy←v17416 = 1;
   /* ExportProc: */ 
SOURCE(14758, 580)
SOURCE(14925, 264)
   {
      word var←c37624;
      word var←c37592;
      word var←c37880;
      word var←c37816;
      word var←c37848;
      {
         word limit76;
         var←c37592 = (* (( (ptr) interface←v9576)+2) );
         var←c37624 = (* (( (W3Pt) (( (ptr) var←c37592)+3))+(
               limit76 = (* (( (ptr) var←c37592)+2) ),
               BCK(item←v9604, limit76)
               )) ).f1;
         };
      switch (var←c37624) {
         case 0: case 3: 
SOURCE(14995, 96)
            {
               word var←c37688;
               word var←c37656;
               word var←c37720;
               {
                  word limit77;
                  var←c37656 = (* (( (ptr) interface←v9576)+2) );
                  var←c37688 = (word) (( (W3Pt) (( (bPt) var←c37656)+12))+(
                        limit77 = (* (( (ptr) var←c37656)+2) ),
                        BCK(item←v9604, limit77)
                        ));
                  };
               {
                  word var←c37752;
                  word var←c37784;
                  var←c37752 = XR←NewObject(24, (* (( (ptr) gf←c41720)+60) ));
                  var←c37784 = var←c37752;
                  (*  (ptr) var←c37784 ) = proc←v9632;
                  (* (( (ptr) var←c37784)+1) ) = unitsOut←v9660;
                  (* (( (ptr) var←c37784)+2) ) = unitsIn←v9688;
                  (* (( (ptr) var←c37784)+3) ) = argsIn←v9716;
                  (* (( (ptr) var←c37784)+4) ) = (* (( (ptr) gf←c41720)+29)/* currentProgram←v3476 */  );
                  var←c37720 = var←c37752;
                  };
               (* (( (ptr) var←c37688)+1) ) = 1;
               (* (( (ptr) var←c37688)+2) ) = var←c37720;
               };
            break;
         case 1: 
SOURCE(15119, 70)
            {
               word limit78;
               var←c37880 = (* (( (ptr) interface←v9576)+2) );
               var←c37816 = XR←NewObject(24, (* (( (ptr) gf←c41720)+60) ));
               (*  (ptr) var←c37816 ) = proc←v9632;
               (* (( (ptr) var←c37816)+1) ) = unitsOut←v9660;
               (* (( (ptr) var←c37816)+2) ) = unitsIn←v9688;
               (* (( (ptr) var←c37816)+3) ) = argsIn←v9716;
               (* (( (ptr) var←c37816)+4) ) = (* (( (ptr) gf←c41720)+29)/* currentProgram←v3476 */  );
               {
                  word limit79;
                  var←c37848 = (* (( (ptr) interface←v9576)+2) );
                  (* (( (ptr) var←c37816)+5) ) = (* (( (W3Pt) (( (ptr) var←c37848)+3))+(
                        limit79 = (* (( (ptr) var←c37848)+2) ),
                        BCK(item←v9604, limit79)
                        )) ).f2;
                  };
               (* (( (W3Pt) (( (ptr) var←c37880)+3))+(
                     limit78 = (* (( (ptr) var←c37880)+2) ),
                     BCK(item←v9604, limit78)
                     )) ).f2 = var←c37816;
               };
            break;
         case 2: 
SOURCE(15215, 5)
            (void) XR←RaiseUnnamedError();
            break;
         };
      };
SOURCE(15231, 29)
   (void) InterfaceNeedsWork←P2580(interface←v9576);
SOURCE(15262, 76)
   {
      word var←c37912;
      var←c37912 = XR←NewObject(12, (* (( (ptr) gf←c41720)+63) ));
      (*  (ptr) var←c37912 ) = interface←v9576;
      (* (( (ptr) var←c37912)+1) ) = SGNCK(item←v9604);
      (* (( (ptr) var←c37912)+2) ) = (* (( (ptr) (* (( (ptr) gf←c41720)+29)/* currentProgram←v3476 */  ))+5) );
      (* (( (ptr) (* (( (ptr) gf←c41720)+29)/* currentProgram←v3476 */  ))+5) ) = var←c37912;
      };
   }

extern void XR←ImportProc(interface←v9792, item←v9820, unitsOut←v9848, unitsIn←v9876, argsIn←v9904)
   word interface←v9792;
   word item←v9820;
   word unitsOut←v9848;
   word unitsIn←v9876;
   word argsIn←v9904;
   {
   register ptr gf←c41752 =  (ptr) &globalframe;
   word dummy←v17460 = 1;
   word var←c37944;
   word var←c0614;
   /* ImportProc: */ 
SOURCE(15344, 574)
SOURCE(15499, 70)
   {
      word limit80;
      var←c37944 = (* (( (ptr) interface←v9792)+2) );
      var←c0614 = (* (( (W3Pt) (( (ptr) var←c37944)+3))+(
            limit80 = (* (( (ptr) var←c37944)+2) ),
            BCK(item←v9820, limit80)
            )) ).f0;
      };
   if (((var←c0614 - 2) <= 1)) {
SOURCE(15563, 6)
      return;
      };
SOURCE(15571, 243)
   {
      word var←c38008;
      word var←c37976;
      word var←c38264;
      word var←c38200;
      word var←c38232;
      {
         word limit81;
         var←c37976 = (* (( (ptr) interface←v9792)+2) );
         var←c38008 = (* (( (W3Pt) (( (ptr) var←c37976)+3))+(
               limit81 = (* (( (ptr) var←c37976)+2) ),
               BCK(item←v9820, limit81)
               )) ).f1;
         };
      switch (var←c38008) {
         case 0: 
SOURCE(15626, 104)
            {
               word var←c38072;
               word var←c38040;
               word var←c38104;
               {
                  word limit82;
                  var←c38040 = (* (( (ptr) interface←v9792)+2) );
                  var←c38072 = (word) (( (W3Pt) (( (bPt) var←c38040)+12))+(
                        limit82 = (* (( (ptr) var←c38040)+2) ),
                        BCK(item←v9820, limit82)
                        ));
                  };
               {
                  word var←c38136;
                  word var←c38168;
                  var←c38136 = XR←NewObject(20, (* (( (ptr) gf←c41752)+65) ));
                  var←c38168 = var←c38136;
                  (*  (ptr) var←c38168 ) = unitsOut←v9848;
                  (* (( (ptr) var←c38168)+1) ) = unitsIn←v9876;
                  (* (( (ptr) var←c38168)+2) ) = argsIn←v9904;
                  (* (( (ptr) var←c38168)+3) ) = (* (( (ptr) gf←c41752)+29)/* currentProgram←v3476 */  );
                  var←c38104 = var←c38136;
                  };
               (* (( (ptr) var←c38072)+1) ) = 3;
               (* (( (ptr) var←c38072)+2) ) = var←c38104;
               };
            break;
         case 3: 
SOURCE(15750, 64)
            {
               word limit83;
               var←c38264 = (* (( (ptr) interface←v9792)+2) );
               var←c38200 = XR←NewObject(20, (* (( (ptr) gf←c41752)+65) ));
               (*  (ptr) var←c38200 ) = unitsOut←v9848;
               (* (( (ptr) var←c38200)+1) ) = unitsIn←v9876;
               (* (( (ptr) var←c38200)+2) ) = argsIn←v9904;
               (* (( (ptr) var←c38200)+3) ) = (* (( (ptr) gf←c41752)+29)/* currentProgram←v3476 */  );
               {
                  word limit84;
                  var←c38232 = (* (( (ptr) interface←v9792)+2) );
                  (* (( (ptr) var←c38200)+4) ) = (* (( (W3Pt) (( (ptr) var←c38232)+3))+(
                        limit84 = (* (( (ptr) var←c38232)+2) ),
                        BCK(item←v9820, limit84)
                        )) ).f2;
                  };
               (* (( (W3Pt) (( (ptr) var←c38264)+3))+(
                     limit83 = (* (( (ptr) var←c38264)+2) ),
                     BCK(item←v9820, limit83)
                     )) ).f2 = var←c38200;
               };
            break;
         case 1: 
            break;
         case 2: 
SOURCE(15873, 5)
            (void) XR←RaiseUnnamedError();
            break;
         };
      };
SOURCE(15889, 29)
   (void) InterfaceNeedsWork←P2580(interface←v9792);
   }

extern void XR←ExportVar(interface←v9964, item←v9992, addr←v10020)
   word interface←v9964;
   word item←v9992;
   word addr←v10020;
   {
   register ptr gf←c41784 =  (ptr) &globalframe;
   word dummy←v17504 = 1;
   /* ExportVar: */ 
SOURCE(15924, 402)
SOURCE(16047, 239)
   {
      word var←c38328;
      word var←c38296;
      word var←c38584;
      word var←c38520;
      word var←c38552;
      {
         word limit85;
         var←c38296 = (* (( (ptr) interface←v9964)+2) );
         var←c38328 = (* (( (W3Pt) (( (ptr) var←c38296)+3))+(
               limit85 = (* (( (ptr) var←c38296)+2) ),
               BCK(item←v9992, limit85)
               )) ).f1;
         };
      switch (var←c38328) {
         case 0: case 3: 
SOURCE(16117, 67)
            {
               word var←c38392;
               word var←c38360;
               word var←c38424;
               {
                  word limit86;
                  var←c38360 = (* (( (ptr) interface←v9964)+2) );
                  var←c38392 = (word) (( (W3Pt) (( (bPt) var←c38360)+12))+(
                        limit86 = (* (( (ptr) var←c38360)+2) ),
                        BCK(item←v9992, limit86)
                        ));
                  };
               {
                  word var←c38456;
                  word var←c38488;
                  var←c38456 = XR←NewObject(12, (* (( (ptr) gf←c41784)+68) ));
                  var←c38488 = var←c38456;
                  (*  (ptr) var←c38488 ) = addr←v10020;
                  (* (( (ptr) var←c38488)+1) ) = (* (( (ptr) gf←c41784)+29)/* currentProgram←v3476 */  );
                  var←c38424 = var←c38456;
                  };
               (* (( (ptr) var←c38392)+1) ) = 2;
               (* (( (ptr) var←c38392)+2) ) = var←c38424;
               };
            break;
         case 1: 
SOURCE(16212, 5)
            (void) XR←RaiseUnnamedError();
            break;
         case 2: 
SOURCE(16243, 43)
            {
               word limit87;
               var←c38584 = (* (( (ptr) interface←v9964)+2) );
               var←c38520 = XR←NewObject(12, (* (( (ptr) gf←c41784)+68) ));
               (*  (ptr) var←c38520 ) = addr←v10020;
               (* (( (ptr) var←c38520)+1) ) = (* (( (ptr) gf←c41784)+29)/* currentProgram←v3476 */  );
               {
                  word limit88;
                  var←c38552 = (* (( (ptr) interface←v9964)+2) );
                  (* (( (ptr) var←c38520)+2) ) = (* (( (W3Pt) (( (ptr) var←c38552)+3))+(
                        limit88 = (* (( (ptr) var←c38552)+2) ),
                        BCK(item←v9992, limit88)
                        )) ).f2;
                  };
               (* (( (W3Pt) (( (ptr) var←c38584)+3))+(
                     limit87 = (* (( (ptr) var←c38584)+2) ),
                     BCK(item←v9992, limit87)
                     )) ).f2 = (var←c38520
               );
               };
            break;
         };
      };
SOURCE(16297, 29)
   (void) InterfaceNeedsWork←P2580(interface←v9964);
   }

extern void XR←ExportType(typeName←v10092, abstract←v10120, concrete←v10148)
   word typeName←v10092;
   word abstract←v10120;
   word concrete←v10148;
   {
   register ptr gf←c41816 =  (ptr) &globalframe;
   word export←v17548;
   word doExport←v17576 = 1;
   /* ExportType: */ 
SOURCE(16332, 755)
SOURCE(16424, 68)
   export←v17548 = (word) FindExporter←P2460(abstract←v10120, (* (( (ptr) gf←c41816)+34)/* uncommittedTypeExports←v3616 */  ))
   ;
SOURCE(16517, 63)
   if ((export←v17548 == 0)) {
SOURCE(16536, 44)
      export←v17548 = (word) FindExporter←P2460(abstract←v10120, (* (( (ptr) gf←c41816)+33)/* typeExports←v3588 */  ));
      };
   if ( ( (export←v17548 != 0) ? ((* (( (ptr) export←v17548)+2) ) != concrete←v10148) : 0 ) ) {
SOURCE(16650, 82)
      {
         word var←c38616;
         var←c38616 = XR←NewObject(16, (* (( (ptr) gf←c41816)+71) ));
         (*  (ptr) var←c38616 ) = typeName←v10092;
         (* (( (ptr) var←c38616)+1) ) = (* (( (ptr) gf←c41816)+29)/* currentProgram←v3476 */  );
         (* (( (ptr) var←c38616)+2) ) = (* (( (ptr) export←v17548)+3) );
         (* (( (ptr) var←c38616)+3) ) = (* (( (ptr) gf←c41816)+30)/* typeClashes←v3504 */  );
         (* (( (ptr) gf←c41816)+30)/* typeClashes←v3504 */  ) = var←c38616;
         };
      }
   else {
      if ( ( (export←v17548 != 0) ? ((* (( (ptr) export←v17548)+2) ) == concrete←v10148) : 0 ) ) {
SOURCE(16786, 16)
         doExport←v17576 = 0;
         };
      };
SOURCE(16821, 266)
   if ((0 != doExport←v17576)) {
SOURCE(16840, 247)
      if (((* (( (ptr) gf←c41816)+34)/* uncommittedTypeExports←v3616 */  ) == 0)) {
SOURCE(16875, 111)
         {
            word var←c38648;
            {
               word var←c38680;
               word var←c38712;
               var←c38680 = XR←NewObject(20, (* (( (ptr) gf←c41816)+73) ));
               var←c38712 = var←c38680;
               (*  (ptr) var←c38712 ) = typeName←v10092;
               (* (( (ptr) var←c38712)+1) ) = abstract←v10120;
               (* (( (ptr) var←c38712)+2) ) = concrete←v10148;
               (* (( (ptr) var←c38712)+3) ) = (* (( (ptr) gf←c41816)+29)/* currentProgram←v3476 */  );
               var←c38648 = var←c38680;
               };
            (* (( (ptr) gf←c41816)+35)/* lastUncommittedTypeExport←v3644 */  ) = var←c38648;
            (* (( (ptr) gf←c41816)+34)/* uncommittedTypeExports←v3616 */  ) = var←c38648;
            };
         }
      else {
SOURCE(16986, 101)
         {
            word var←c38744;
            var←c38744 = XR←NewObject(20, (* (( (ptr) gf←c41816)+73) ));
            (*  (ptr) var←c38744 ) = typeName←v10092;
            (* (( (ptr) var←c38744)+1) ) = abstract←v10120;
            (* (( (ptr) var←c38744)+2) ) = concrete←v10148;
            (* (( (ptr) var←c38744)+3) ) = (* (( (ptr) gf←c41816)+29)/* currentProgram←v3476 */  );
            (* (( (ptr) var←c38744)+4) ) = (* (( (ptr) gf←c41816)+34)/* uncommittedTypeExports←v3616 */  );
            (* (( (ptr) gf←c41816)+34)/* uncommittedTypeExports←v3616 */  ) = var←c38744;
            };
         };
      };
   }

static word FindExporter←P2460(abstract←v10208, list←v10236)
   word abstract←v10208;
   word list←v10236;
   {
   word var←c10280;
   /* FindExporter: */ 
SOURCE(17096, 197)
SOURCE(17177, 94)
   {
      register word l←v17620;
      l←v17620 = list←v10236;
      lab←L100072: ;
      if ((l←v17620 != 0)) {
         }
      else {
         goto lab←L100069;
         };
SOURCE(17226, 45)
      if (((* (( (ptr) l←v17620)+1) ) == abstract←v10208)) {
SOURCE(17262, 9)
         return(l←v17620);
         };
      l←v17620 = (* (( (ptr) l←v17620)+4) );
      goto lab←L100072;
      lab←L100069: ;
      };
SOURCE(17282, 11)
   return(0);
   }

static word ConcreteTypeFromAbstractType←P2520(abstract←v10340)
   word abstract←v10340;
   {
   register ptr gf←c41848 =  (ptr) &globalframe;
   word concrete←v10384;
   word export←v17664;
   /* ConcreteTypeFromAbstractType: */ 
SOURCE(17299, 252)
SOURCE(17409, 57)
   export←v17664 = (word) FindExporter←P2460(abstract←v10340, (* (( (ptr) gf←c41848)+33)/* typeExports←v3588 */  ));
SOURCE(17468, 83)
   if ((export←v17664 != 0)) {
SOURCE(17487, 35)
      return((* (( (ptr) export←v17664)+2) ));
      }
   else {
SOURCE(17522, 29)
      return(0);
      };
   }

static void InterfaceNeedsWork←P2580(interface←v10444)
   word interface←v10444;
   {
   register ptr gf←c41880 =  (ptr) &globalframe;
   word dummy←v17708 = 1;
   /* InterfaceNeedsWork: */ 
SOURCE(17557, 274)
SOURCE(17638, 120)
   {
      register word ints←v17752;
      ints←v17752 = (* (( (ptr) gf←c41880)+31)/* interfacesNeedingWork←v3532 */  );
      lab←L100076: ;
      if ((ints←v17752 != 0)) {
         }
      else {
         goto lab←L100073;
         };
SOURCE(17721, 37)
      if (((*  (ptr) ints←v17752 ) == interface←v10444)) {
SOURCE(17752, 6)
         return;
         };
      ints←v17752 = (* (( (ptr) ints←v17752)+1) );
      goto lab←L100076;
      lab←L100073: ;
      };
SOURCE(17769, 62)
   {
      word var←c38776;
      var←c38776 = XR←NewObject(8, (* (( (ptr) gf←c41880)+48) ));
      (*  (ptr) var←c38776 ) = interface←v10444;
      (* (( (ptr) var←c38776)+1) ) = (* (( (ptr) gf←c41880)+31)/* interfacesNeedingWork←v3532 */  );
      (* (( (ptr) gf←c41880)+31)/* interfacesNeedingWork←v3532 */  ) = var←c38776;
      };
   }

static word GetStartTrap←P2640(unitsOut←v10576, unitsIn←v10604, argsIn←v10632, prog←v10660, proc←v10688)
   word unitsOut←v10576;
   word unitsIn←v10604;
   word argsIn←v10632;
   word prog←v10660;
   word proc←v10688;
   {
   register ptr gf←c41912 =  (ptr) &globalframe;
   word var←c10748;
   word original←v17880;
   word trapInfo←v17936;
   /* GetStartTrap: */ 
SOURCE(17917, 498)
SOURCE(18033, 31)
   original←v17880 = proc←v10688;
SOURCE(18185, 64)
   trapInfo←v17936 = XR←NewObject(12, (* (( (ptr) gf←c41912)+75) ));
SOURCE(18251, 29)
   (*  (W2Pt) trapInfo←v17936 ) = (*  (W2Pt) original←v17880 );
SOURCE(18282, 24)
   (* (( (ptr) trapInfo←v17936)+2) ) = prog←v10660;
SOURCE(18308, 77)
   {
      word var←c38840;
      var←c38840 = (word) XR←GetStartTrap(unitsOut←v10576, unitsIn←v10604, argsIn←v10632);
      (*  (ptr) original←v17880 ) = var←c38840;
      (* (( (ptr) original←v17880)+1) ) = trapInfo←v17936;
      };
SOURCE(18387, 28)
   return(original←v17880);
   }

static word GetUnboundTrap←P2700(unitsOut←v10808, unitsIn←v10836, argsIn←v10864)
   word unitsOut←v10808;
   word unitsIn←v10836;
   word argsIn←v10864;
   {
   word var←c10908;
   word trapDesc←v18192;
   /* GetUnboundTrap: */ 
SOURCE(18422, 383)
SOURCE(18636, 62)
   trapDesc←v18192 = (word) AllocateTrapDescriptor←P2760();
SOURCE(18700, 75)
   {
      word var←c38872;
      var←c38872 = (word) XR←GetUnboundTrap(unitsOut←v10808, unitsIn←v10836, argsIn←v10864);
      (*  (ptr) trapDesc←v18192 ) = var←c38872;
      (* (( (ptr) trapDesc←v18192)+1) ) = 2;
      (* (( (ptr) trapDesc←v18192)+2) ) = 0;
      };
SOURCE(18777, 28)
   return(trapDesc←v18192);
   }

static word AllocateTrapDescriptor←P2760()
   {
   register ptr gf←c41944 =  (ptr) &globalframe;
   word d←v11100;
   /* AllocateTrapDescriptor: */ 
SOURCE(19043, 330)
SOURCE(19118, 156)
   if (((* (( (ptr) gf←c41944)+39)/* trapDescriptors←v5100 */  ) == 0) || ((* (( (ptr) gf←c41944)+40)/* nextDescriptor←v5184 */  ) == 337)) {
SOURCE(19191, 63)
      {
         word var←c38904;
         word var←c38968;
         var←c38904 = XR←NewObject(4044, (* (( (ptr) gf←c41944)+77) ));
         var←c38968 = XR←NewObject(8, (* (( (ptr) gf←c41944)+76) ));
         (*  (ptr) var←c38968 ) = var←c38904;
         (* (( (ptr) var←c38968)+1) ) = (* (( (ptr) gf←c41944)+39)/* trapDescriptors←v5100 */  );
         (* (( (ptr) gf←c41944)+39)/* trapDescriptors←v5100 */  ) = var←c38968;
         };
SOURCE(19256, 18)
      (* (( (ptr) gf←c41944)+40)/* nextDescriptor←v5184 */  ) = 0;
      };
SOURCE(19287, 47)
SOURCE(19289, 45)
   {
      word idx89;
      d←v11100 = (word) (( (W3Pt) (*  (ptr) (* (( (ptr) gf←c41944)+39)/* trapDescriptors←v5100 */  ) ))+(
            idx89 = (* (( (ptr) gf←c41944)+40)/* nextDescriptor←v5184 */  ),
            BCK(idx89, 337)
            ));
      };
SOURCE(19337, 36)
   (* (( (ptr) gf←c41944)+40)/* nextDescriptor←v5184 */  ) = ((* (( (ptr) gf←c41944)+40)/* nextDescriptor←v5184 */  ) + 1);
SOURCE(19043, 330)
   return(d←v11100);
   }

static void Lookup←P2820(formal←c0392, key←v11172, e←v11200)
   word formal←c0392;
   W2 key←v11172;
   word e←v11200;
   {
   register ptr gf←c41976 =  (ptr) &globalframe;
   word found←v11244;
   word interface←v11272;
   /* Lookup: */ 
SOURCE(19379, 519)
SOURCE(19379, 519)
   interface←v11272 = 0;
SOURCE(19465, 401)
   {
      W2 var←c39000;
      var←c39000 = (*  (W2Pt) e←v11200 );
      {
         word var←c39096;
         var←c39096 = var←c39000.f0;
         if ((var←c39096 == 0)) {
            {
               W2 listrep←v18420;
               listrep←v18420 = var←c39000;
SOURCE(19515, 119)
               {
                  register word l←v18464;
                  l←v18464 = listrep←v18420.f1;
                  lab←L100081: ;
                  if ((l←v18464 != 0)) {
                     }
                  else {
                     goto lab←L100078;
                     };
SOURCE(19578, 56)
                  if ((0 != (word) KeyMatch←P3060((*  (W2Pt) (*  (ptr) l←v18464 ) ), key←v11172))) {
SOURCE(19613, 21)
                     interface←v11272 = (*  (ptr) l←v18464 );
                     found←v11244 = 1;
                     goto lab←L100077;
                     };
                  l←v18464 = (* (( (ptr) l←v18464)+1) );
                  goto lab←L100081;
                  lab←L100078: ;
                  };
SOURCE(19646, 18)
               found←v11244 = 0;
               interface←v11272 = 0;
               goto lab←L100077;
               };
            }
         else {
            if ((var←c39096 == 1)) {
               {
                  W2 tabrep←v18592;
                  tabrep←v18592 = var←c39000;
SOURCE(19706, 162)
                  {
                     word found←v18636;
                     word interface←v18664 = 0;
SOURCE(19737, 27)
                     (*  (W2Pt) (* (( (ptr) gf←c41976)+32)/* keyInterfaceCache←v3560 */  ) ) = key←v11172;
SOURCE(19766, 64)
                     {
                        W2 var←c39064;
                        {
                           word pd90;
                           pd90 = (* (( (ptr) (* (( (ptr) gf←c41976)+246)/* var←c35192 */  ))+7) );
                           (void) ( *( (fPt) ((*  (ptr) pd90 ))))((word) &var←c39064, tabrep←v18592.f1, (* (( (ptr) gf←c41976)+32)/* keyInterfaceCache←v3560 */  ), pd90)
                           ;
                           };
                        interface←v18664 = var←c39064.f1;
                        found←v18636 = var←c39064.f0;
                        };
SOURCE(19832, 34)
                     found←v11244 = found←v18636;
                     interface←v11272 = interface←v18664;
                     goto lab←L100077;
                     };
                  };
               }
            else {
               };
            };
         };
      };
SOURCE(19880, 18)
   found←v11244 = 0;
   interface←v11272 = 0;
   /* removed tail goto */ 
   lab←L100077: ;
   (*  (ptr) formal←c0392 ) = found←v11244;
   (* (( (ptr) formal←c0392)+1) ) = interface←v11272;
   return;
   }

static void EnumerateEnviron←P2880(e←v11332, p←v11360)
   word e←v11332;
   word p←v11360;
   {
   /* EnumerateEnviron: */ 
SOURCE(19904, 111)
SOURCE(19975, 40)
   (void) MaybeMonitorEnumerateEnviron←P2940(e←v11332, p←v11360, 1);
   }

static void MaybeMonitorEnumerateEnviron←P2940(e←v11480, formal←c0632, monitor←v11536)
   word e←v11480;
   word formal←c0632;
   word monitor←v11536;
   {
   W7 var←c42008;
   /* declaration of p←v11508 skipped */ 
   register ptr gf←c42040 =  (ptr) &globalframe;
   /* declaration of var←c39128 skipped */ 
   var←c42008.f4/* p←v11508 */  = formal←c0632;
   /* MaybeMonitorEnumerateEnviron: */ 
SOURCE(20019, 426)
   {
      word tmpAddr91;
      tmpAddr91 = (word) (( (ptr) &var←c42008)+5)/* var←c39128 */ ;
      (*  (ptr) tmpAddr91 ) = ( ((word)  (fPt) EachPair←P6756) );
      (* (( (ptr) tmpAddr91) + 1) ) = 1;
      };
SOURCE(20117, 328)
   {
      W2 var←c39160;
      var←c39160 = (*  (W2Pt) e←v11480 );
      {
         word var←c39256;
         var←c39256 = var←c39160.f0;
         if ((var←c39256 == 0)) {
            {
               W2 listrep←v18720;
               listrep←v18720 = var←c39160;
SOURCE(20167, 73)
               {
                  register word l←v18764;
                  l←v18764 = listrep←v18720.f1;
                  lab←L100085: ;
                  if ((l←v18764 != 0)) {
                     }
                  else {
                     goto lab←L100082;
                     };
SOURCE(20230, 10)
                  {
                     word pd92;
                     pd92 = (word) (var←c42008.f4/* p←v11508 */ );
                     (void) ( *( (fPt) ((*  (ptr) pd92 ))))((*  (ptr) (l←v18764) ), pd92);
                     };
                  l←v18764 = (* (( (ptr) l←v18764)+1) );
                  goto lab←L100085;
                  lab←L100082: ;
                  };
               };
            }
         else {
            if ((var←c39256 == 1)) {
               {
                  W2 tabrep←v18892;
                  tabrep←v18892 = var←c39160;
SOURCE(20284, 163)
SOURCE(20351, 94)
                  {
                     word var←c39224;
                     word pd93;
                     pd93 = (word)  ( (0 != monitor←v11536) ? (* (( (ptr) (* (( (ptr) gf←c42040)+246)/* var←c35192 */  ))+13) ) : (* (( (ptr) (* (
                           ( (ptr) gf←c42040)+248)/* var←c39192 */  ))+5) ) ) ;
                     var←c39224 = (word) ( *( (fPt) ((*  (ptr) pd93 ))))(tabrep←v18892.f1, (word) (( (bPt) &var←c42008)+20)/* var←c39128 */ , pd93)
                     ;
                     };
                  };
               }
            else {
               };
            };
         };
      };
   }

static word EachPair←P6756(key←v30604, val←v30632, formal←c42072)
   word key←v30604;
   word val←v30632;
   word formal←c42072;
   {
   word quit←v30676;
   formal←c42072 = (formal←c42072 - 20);
   /* EachPair: */ 
SOURCE(20286, 42)
SOURCE(20286, 42)
   quit←v30676 = 0;
SOURCE(20330, 16)
   {
      word pd94;
      pd94 = (* (( (ptr) formal←c42072)+4) );
      (void) ( *( (fPt) ((*  (ptr) pd94 ))))(val←v30632, pd94);
      };
SOURCE(20286, 42)
   return(quit←v30676);
   }

static void EmptyInterfaces←P3000(config←v11656)
   word config←v11656;
   {
   register ptr gf←c42104 =  (ptr) &globalframe;
   /* EmptyInterfaces: */ 
SOURCE(20470, 151)
SOURCE(20522, 99)
   {
      word var←c39288;
      var←c39288 = (*  (ptr) (* (( (ptr) config←v11656)+6) ) );
      if ((var←c39288 == 0)) {
SOURCE(20572, 15)
         (* (( (ptr) (* (( (ptr) config←v11656)+6) ))+1) ) = 0;
         }
      else {
         if ((var←c39288 == 1)) {
SOURCE(20599, 22)
            {
               word pd95;
               pd95 = (* (( (ptr) (* (( (ptr) gf←c42104)+246)/* var←c35192 */  ))+12) );
               (void) ( *( (fPt) ((*  (ptr) pd95 ))))((* ((( (ptr) (* (( (ptr) config←v11656)+6) ))+1)) ), pd95);
               };
            }
         else {
            };
         };
      };
   }

static word KeyMatch←P3060(k1←v11716, k2←v11744)
   W2 k1←v11716;
   W2 k2←v11744;
   {
   word var←c11788;
   word dummy←v18980 = 1;
   /* KeyMatch: */ 
SOURCE(20644, 234)
SOURCE(20722, 48)
   if (( (int)(word) strcmp(k1←v11716.f0, k2←v11744.f0) !=  (int)0)) {
SOURCE(20757, 13)
      return(0);
      };
SOURCE(20772, 81)
   if ((k1←v11716.f1 == 0) || (k2←v11744.f1 == 0)) {
SOURCE(20841, 12)
      return(1);
      };
SOURCE(20855, 23)
   return((k1←v11716.f1 == k2←v11744.f1));
   }

extern void XR←PushRename()
   {
   /* PushRename: */ 
   }

extern void XR←PopRename()
   {
   /* PopRename: */ 
   }

extern void XR←DeclareGlobalFrame(name←v12012, frame←v12040, type←v12068, main←v12096)
   word name←v12012;
   word frame←v12040;
   word type←v12068;
   word main←v12096;
   {
   register ptr gf←c42136 =  (ptr) &globalframe;
   /* DeclareGlobalFrame: */ 
SOURCE(21090, 605)
SOURCE(21206, 78)
   if ( ( ((* (( (ptr) gf←c42136)+28)/* currentConfig←v3448 */  ) == (* (( (ptr) gf←c42136)+37)/* globalConfig←v3700 */  )) ? ((* (
      ( (ptr) gf←c42136)+29)/* currentProgram←v3476 */  ) != 0) : 0 ) ) {
SOURCE(21264, 20)
      (void) XR←CommitInstallation();
      };
SOURCE(21333, 364)
   {
      word program←v19024;
SOURCE(21335, 89)
      program←v19024 = XR←NewObject(28, (* (( (ptr) gf←c42136)+45) ));
      (*  (ptr) program←v19024 ) = name←v12012;
      (* (( (ptr) program←v19024)+1) ) = frame←v12040;
      (* (( (ptr) program←v19024)+2) ) = type←v12068;
      (* (( (ptr) program←v19024)+3) ) = XR←CheckProc(main←v12096);
      (* (( (ptr) program←v19024)+4) ) = (* (( (ptr) gf←c42136)+28)/* currentConfig←v3448 */  );
SOURCE(21426, 207)
      if (((* (( (ptr) gf←c42136)+28)/* currentConfig←v3448 */  ) == (* (( (ptr) gf←c42136)+37)/* globalConfig←v3700 */  ))) {
SOURCE(21461, 99)
         {
            word var←c39352;
            var←c39352 = XR←NewObject(12, (* (( (ptr) gf←c42136)+53) ));
            (* (( (ptr) var←c39352)+1) ) = program←v19024;
            (* (( (ptr) var←c39352)+2) ) = (* (( (ptr) (* (( (ptr) gf←c42136)+26)/* uncommittedGlobalConfig←v3392 */  ))+4) );
            (* (( (ptr) (* (( (ptr) gf←c42136)+26)/* uncommittedGlobalConfig←v3392 */  ))+4) ) = var←c39352;
            };
         }
      else {
SOURCE(21560, 73)
         {
            word var←c39384;
            var←c39384 = XR←NewObject(12, (* (( (ptr) gf←c42136)+53) ));
            (* (( (ptr) var←c39384)+1) ) = program←v19024;
            (* (( (ptr) var←c39384)+2) ) = (* (( (ptr) (* (( (ptr) gf←c42136)+28)/* currentConfig←v3448 */  ))+4) );
            (* (( (ptr) (* (( (ptr) gf←c42136)+28)/* currentConfig←v3448 */  ))+4) ) = var←c39384;
            };
         };
SOURCE(21635, 34)
      {
         word var←c39416;
         var←c39416 = XR←NewObject(8, (* (( (ptr) gf←c42136)+79) ));
         (*  (ptr) var←c39416 ) = program←v19024;
         (* (( (ptr) var←c39416)+1) ) = (* (( (ptr) gf←c42136)+36)/* programs←v3672 */  );
         (* (( (ptr) gf←c42136)+36)/* programs←v3672 */  ) = var←c39416;
         };
SOURCE(21671, 24)
      (* (( (ptr) gf←c42136)+29)/* currentProgram←v3476 */  ) = program←v19024;
      };
   }

static word ProgramFromFrame←P3300(frame←v12172)
   word frame←v12172;
   {
   register ptr gf←c42168 =  (ptr) &globalframe;
   word var←c12216;
   word dummy←v19068 = 1;
   /* ProgramFromFrame: */ 
SOURCE(21704, 219)
SOURCE(21799, 102)
   {
      register word l←v19112;
      l←v19112 = (* (( (ptr) gf←c42168)+36)/* programs←v3672 */  );
      lab←L100089: ;
      if ((l←v19112 != 0)) {
         }
      else {
         goto lab←L100086;
         };
SOURCE(21856, 45)
      if (((* (( (ptr) (*  (ptr) l←v19112 ))+1) ) == frame←v12172)) {
SOURCE(21886, 15)
         return((*  (ptr) l←v19112 ));
         };
      l←v19112 = (* (( (ptr) l←v19112)+1) );
      goto lab←L100089;
      lab←L100086: ;
      };
SOURCE(21912, 11)
   return(0);
   }

static void DoStartConfig←P3360(config←v12276)
   word config←v12276;
   {
   word dummy←v19240 = 1;
   /* DoStartConfig: */ 
SOURCE(21929, 317)
SOURCE(21987, 21)
   (* (( (ptr) config←v12276)+7) ) = 1;
SOURCE(22010, 236)
   {
      register word l←v19284;
      l←v19284 = (* (( (ptr) config←v12276)+2) );
      lab←L100093: ;
      if ((l←v19284 != 0)) {
         }
      else {
         goto lab←L100090;
         };
SOURCE(22090, 156)
      {
         W2 var←c39448;
         var←c39448 = (*  (W2Pt) l←v19284 );
         {
            word var←c39480;
            var←c39480 = var←c39448.f0;
            if ((var←c39480 == 1)) {
               {
                  W2 config←v19328;
                  config←v19328 = var←c39448;
SOURCE(22149, 28)
                  (void) DoStartConfig←P3360(config←v19328.f1);
                  };
               }
            else {
               if ((var←c39480 == 0)) {
                  {
                     W2 program←v19372;
                     program←v19372 = var←c39448;
SOURCE(22215, 31)
                     (void) DoStartProgram←P3420(program←v19372.f1);
                     };
                  }
               else {
SOURCE(22259, 5)
                  (void) XR←RaiseUnnamedError();
                  };
               };
            };
         };
      l←v19284 = (* (( (ptr) l←v19284)+2) );
      goto lab←L100093;
      lab←L100090: ;
      };
   }

static void DoStartProgram←P3420(program←v12336)
   word program←v12336;
   {
   register ptr gf←c42200 =  (ptr) &globalframe;
   word startedInstallationScopes←v19416;
   /* DoStartProgram: */ 
SOURCE(22279, 330)
SOURCE(22323, 59)
   startedInstallationScopes←v19416 = (* (( (ptr) gf←c42200)+9)/* installationScopesStarted←v3196 */  );
SOURCE(22384, 30)
   if ((0 != (* (( (ptr) program←v12336)+6) ))) {
SOURCE(22408, 6)
      return;
      };
SOURCE(22416, 193)
   if ((0 != (word) FixStartTraps←P3540(program←v12336))) {
SOURCE(22449, 14)
      {
         word pd96;
         pd96 = (* (( (ptr) program←v12336)+3) );
         (void) ( *( (fPt) ((*  (ptr) pd96 ))))(pd96);
         };
SOURCE(22465, 81)
      startedInstallationScopes←v19416 = (startedInstallationScopes←v19416 != (* (( (ptr) gf←c42200)+9)/* installationScopesStarted←v3196 */  ));
SOURCE(22548, 61)
      if ((0 != startedInstallationScopes←v19416)) {
SOURCE(22582, 27)
         {
            word var←c39512;
            var←c39512 = (word) FixStartTraps←P3540(program←v12336);
            };
         };
      };
   }

static word ListStartOrder←P3480()
   {
   register ptr gf←c42232 =  (ptr) &globalframe;
   word list←v12480;
   /* ListStartOrder: */ 
SOURCE(22653, 203)
SOURCE(22653, 203)
   list←v12480 = 0;
SOURCE(22731, 125)
   {
      register word tail←v19460;
      tail←v19460 = (* (( (ptr) gf←c42232)+41)/* startOrder←v5576 */  );
      lab←L100097: ;
      if ((tail←v19460 != 0)) {
         }
      else {
         goto lab←L100094;
         };
SOURCE(22801, 55)
      {
         word var←c39544;
         word var←c39608;
         {
            W2 var←c39576;
            var←c39576.f0 = 0;
            var←c39576.f1 = (*  (ptr) tail←v19460 );
            var←c39544 = (word) QualifiedName←P4440(var←c39576);
            };
         var←c39608 = XR←NewObject(8, (* (( (ptr) gf←c42232)+80) ));
         (*  (ptr) var←c39608 ) = var←c39544;
         (* (( (ptr) var←c39608)+1) ) = list←v12480;
         list←v12480 = var←c39608;
         };
      tail←v19460 = (* (( (ptr) tail←v19460)+1) );
      goto lab←L100097;
      lab←L100094: ;
      };
SOURCE(22653, 203)
   return(list←v12480);
   }

static word FixStartTraps←P3540(program←v12624)
   word program←v12624;
   {
   register ptr gf←c42264 =  (ptr) &globalframe;
   word doStart←v12668;
   /* FixStartTraps: */ 
SOURCE(22871, 619)
   (void) (XR←MonitorEntry((word) (( (bPt) gf←c42264)+16)/* LOCK←v2832 */ ));
SOURCE(22944, 29)
   doStart←v12668 = (0 == (* (( (ptr) program←v12624)+6) ));
SOURCE(22975, 22)
   (* (( (ptr) program←v12624)+6) ) = 1;
SOURCE(23000, 415)
   {
      register word l←v19588;
      l←v19588 = (* (( (ptr) program←v12624)+5) );
      lab←L100101: ;
      if ((l←v19588 != 0)) {
         }
      else {
         goto lab←L100098;
         };
      {
         word int←v19716;
         word item←v19744;
         word var←c39640;
         word var←c0615;
SOURCE(23069, 34)
         int←v19716 = (*  (ptr) l←v19588 );
SOURCE(23105, 25)
         item←v19744 = (* (( (ptr) l←v19588)+1) );
SOURCE(23134, 281)
         {
            word limit97;
            var←c39640 = (* (( (ptr) int←v19716)+2) );
            var←c0615 = (* (( (W3Pt) (( (ptr) var←c39640)+3))+(
                  limit97 = (* (( (ptr) var←c39640)+2) ),
                  BCK(item←v19744, limit97)
                  )) ).f0;
            };
         if ((var←c0615 == 2)) {
SOURCE(23190, 230)
            {
               word t←v19788;
               word trapInfo←v19816;
SOURCE(23192, 56)
               {
                  word limit98;
                  t←v19788 = (* ((( (ptr) int←v19716)+4)+(
                        limit98 = (* (( (ptr) int←v19716)+3) ),
                        BCK(item←v19744, limit98)
                        )) );
                  };
SOURCE(23250, 66)
               trapInfo←v19816 = XR←Narrow((* (( (ptr) t←v19788)+1) ), (* (( (ptr) gf←c42264)+75) ));
SOURCE(23318, 97)
               if (((* (( (ptr) trapInfo←v19816)+2) ) == program←v12624)) {
                  {
                     word var←c39672;
SOURCE(23356, 22)
                     (*  (W2Pt) t←v19788 ) = (*  (W2Pt) trapInfo←v19816 );
SOURCE(23380, 35)
                     {
                        word limit99;
                        var←c39672 = (* (( (ptr) int←v19716)+2) );
                        (* (( (W3Pt) (( (ptr) var←c39672)+3))+(
/*1*/   limit99 = (* (( (ptr) var←c39672)+2) ),
/*1*/   BCK(item←v19744, limit99)
/*1*/   )) ).f0 = 3;
                        };
                     };
                  };
               };
            };
         };
      l←v19588 = (* (( (ptr) l←v19588)+2) );
      goto lab←L100101;
      lab←L100098: ;
      };
SOURCE(23436, 54)
   if ((0 != doStart←v12668)) {
SOURCE(23452, 38)
      {
         word var←c39704;
         var←c39704 = XR←NewObject(8, (* (( (ptr) gf←c42264)+79) ));
         (*  (ptr) var←c39704 ) = program←v12624;
         (* (( (ptr) var←c39704)+1) ) = (* (( (ptr) gf←c42264)+41)/* startOrder←v5576 */  );
         (* (( (ptr) gf←c42264)+41)/* startOrder←v5576 */  ) = var←c39704;
         };
      };
SOURCE(22871, 619)
   (void) (XR←MonitorExit((word) (( (bPt) gf←c42264)+16)/* LOCK←v2832 */ ));
   return(doStart←v12668);
   }

extern void XR←StartCedarModule(config←v12728)
   word config←v12728;
   {
   register ptr gf←c42296 =  (ptr) &globalframe;
   /* EnsureConfigStarted: */ 
SOURCE(23497, 275)
SOURCE(23567, 25)
   if ((config←v12728 == 0)) {
SOURCE(23586, 6)
      return;
      };
SOURCE(23594, 29)
   if ((0 != (* (( (ptr) config←v12728)+7) ))) {
SOURCE(23617, 6)
      return;
      };
SOURCE(23625, 124)
   if ((0 != (* (( (ptr) gf←c42296)+10)/* cedarCoreStarted←v3224 */  ))) {
SOURCE(23652, 34)
      (void) XR←StartCedarModule((*  (ptr) (config←v12728) ));
SOURCE(23688, 29)
      if ((0 != (* (( (ptr) config←v12728)+7) ))) {
SOURCE(23711, 6)
         return;
         };
      }
   else {
SOURCE(23726, 23)
      (* (( (ptr) gf←c42296)+10)/* cedarCoreStarted←v3224 */  ) = 1;
      };
SOURCE(23751, 21)
   (void) DoStartConfig←P3360(config←v12728);
   }

extern void XR←Start(frame←v12788)
   word frame←v12788;
   {
   register ptr gf←c42328 =  (ptr) &globalframe;
   /* StartFrame: */ 
SOURCE(23778, 260)
SOURCE(23834, 24)
   if ((frame←v12788 == 0)) {
SOURCE(23852, 6)
      return;
      };
SOURCE(23860, 180)
   {
      word program←v19896;
SOURCE(23862, 42)
      program←v19896 = (word) ProgramFromFrame←P3300(frame←v12788);
SOURCE(23906, 48)
      if ((program←v19896 == 0)) {
SOURCE(23926, 28)
         {
            word var←c0454;
            var←c0454 = frame←v12788;
            (void) XR←RaiseError((word) (( (bPt) gf←c42328)+336)/* var←c32472 */ , (word) &var←c0454);
            };
         };
SOURCE(23956, 59)
      if ((0 != (* (( (ptr) program←v19896)+6) ))) {
SOURCE(23980, 35)
         {
            word var←c0455;
            var←c0455 = program←v19896;
            (void) XR←RaiseError((* (( (ptr) gf←c42328)+38)/* StartFault←v4092 */  ), (word) &var←c0455);
            };
         };
SOURCE(24017, 21)
      (void) StartProgram←P3960(program←v19896);
      };
   }

extern void XR←StartModule(args←v12848, frame←v12876, rets←v12904)
   word args←v12848;
   word frame←v12876;
   word rets←v12904;
   {
   /* StartModule: */ 
SOURCE(24047, 110)
SOURCE(24140, 17)
   (void) XR←Start(frame←v12876);
   }

static word ListStartTraps←P3780()
   {
   register ptr gf←c42360 =  (ptr) &globalframe;
   word list←v13072;
   /* ListStartTraps: */ 
SOURCE(24200, 205)
SOURCE(24200, 205)
   list←v13072 = 0;
SOURCE(24278, 127)
   {
      register word tail←v19940;
      tail←v19940 = (* (( (ptr) gf←c42360)+42)/* startTrapped←v5744 */  );
      lab←L100105: ;
      if ((tail←v19940 != 0)) {
         }
      else {
         goto lab←L100102;
         };
SOURCE(24350, 55)
      {
         word var←c39736;
         word var←c39800;
         {
            W2 var←c39768;
            var←c39768.f0 = 0;
            var←c39768.f1 = (*  (ptr) tail←v19940 );
            var←c39736 = (word) QualifiedName←P4440(var←c39768);
            };
         var←c39800 = XR←NewObject(8, (* (( (ptr) gf←c42360)+80) ));
         (*  (ptr) var←c39800 ) = var←c39736;
         (* (( (ptr) var←c39800)+1) ) = list←v13072;
         list←v13072 = var←c39800;
         };
      tail←v19940 = (* (( (ptr) tail←v19940)+1) );
      goto lab←L100105;
      lab←L100102: ;
      };
SOURCE(24200, 205)
   return(list←v13072);
   }

static void LogStartTrap←P3840(program←v13216)
   word program←v13216;
   {
   register ptr gf←c42392 =  (ptr) &globalframe;
   /* LogStartTrap: */ 
SOURCE(24420, 90)
   (void) (XR←MonitorEntry((word) (( (bPt) gf←c42392)+16)/* LOCK←v2832 */ ));
SOURCE(24468, 42)
   {
      word var←c39832;
      var←c39832 = XR←NewObject(8, (* (( (ptr) gf←c42392)+79) ));
      (*  (ptr) var←c39832 ) = program←v13216;
      (* (( (ptr) var←c39832)+1) ) = (* (( (ptr) gf←c42392)+42)/* startTrapped←v5744 */  );
      (* (( (ptr) gf←c42392)+42)/* startTrapped←v5744 */  ) = var←c39832;
      };
SOURCE(24420, 90)
   (void) (XR←MonitorExit((word) (( (bPt) gf←c42392)+16)/* LOCK←v2832 */ ));
   return;
   }

extern void XR←StartProgram(program←v13276)
   word program←v13276;
   {
   /* XRStartProgram: */ 
SOURCE(24516, 107)
SOURCE(24579, 21)
   (void) LogStartTrap←P3840(program←v13276);
SOURCE(24602, 21)
   (void) StartProgram←P3960(program←v13276);
   }

static void StartProgram←P3960(program←v13336)
   word program←v13336;
   {
   register ptr gf←c42424 =  (ptr) &globalframe;
   /* StartProgram: */ 
SOURCE(24629, 307)
SOURCE(24690, 148)
   if ( ( ((* (( (ptr) gf←c42424)+28)/* currentConfig←v3448 */  ) == (* (( (ptr) gf←c42424)+37)/* globalConfig←v3700 */  )) ? ((* (
      ( (ptr) gf←c42424)+29)/* currentProgram←v3476 */  ) != 0) : 0 ) ) {
SOURCE(24796, 20)
      (void) XR←CommitInstallation();
SOURCE(24818, 20)
      (* (( (ptr) gf←c42424)+29)/* currentProgram←v3476 */  ) = 0;
      };
SOURCE(24844, 35)
   (void) XR←StartCedarModule((* ((( (ptr) program←v13336)+4)) ));
SOURCE(24881, 30)
   if ((0 != (* (( (ptr) program←v13336)+6) ))) {
SOURCE(24905, 6)
      return;
      };
SOURCE(24913, 23)
   (void) DoStartProgram←P3420(program←v13336);
   }

extern word XR←FirstControl()
   {
   register ptr gf←c42456 =  (ptr) &globalframe;
   word var←c13396;
   word dummy←v20068 = 1;
   /* FirstControl: */ 
SOURCE(24942, 112)
SOURCE(25033, 21)
   return((* (( (ptr) gf←c42456)+28)/* currentConfig←v3448 */  ));
   }

static void AddToCM←P4080(item←v13456)
   W2 item←v13456;
   {
   register ptr gf←c42488 =  (ptr) &globalframe;
   word dummy←v20112 = 1;
   /* AddToCM: */ 
SOURCE(25060, 372)
SOURCE(25132, 300)
   if (((* (( (ptr) (* (( (ptr) gf←c42488)+28)/* currentConfig←v3448 */  ))+2) ) == 0)) {
SOURCE(25182, 46)
      {
         word var←c39864;
         word var←c39896;
         var←c39864 = XR←NewObject(12, (* (( (ptr) gf←c42488)+53) ));
         var←c39896 = var←c39864;
         (*  (W2Pt) var←c39896 ) = item←v13456;
         (* (( (ptr) (* (( (ptr) gf←c42488)+28)/* currentConfig←v3448 */  ))+2) ) = var←c39864;
         };
SOURCE(25230, 69)
      (* (( (ptr) (* (( (ptr) gf←c42488)+28)/* currentConfig←v3448 */  ))+3) ) = (* (( (ptr) (* (( (ptr) gf←c42488)+28)/* currentConfig←v3448 */  ))+2)
       );
      }
   else {
SOURCE(25308, 50)
      {
         word var←c39928;
         word var←c39960;
         var←c39928 = XR←NewObject(12, (* (( (ptr) gf←c42488)+53) ));
         var←c39960 = var←c39928;
         (*  (W2Pt) var←c39960 ) = item←v13456;
         (* (( (ptr) (* (( (ptr) (* (( (ptr) gf←c42488)+28)/* currentConfig←v3448 */  ))+3) ))+2) ) = var←c39928;
         };
SOURCE(25360, 72)
      (* (( (ptr) (* (( (ptr) gf←c42488)+28)/* currentConfig←v3448 */  ))+3) ) = (* (( (ptr) (* (( (ptr) (* (( (ptr) gf←c42488)+28)
            /* currentConfig←v3448 */  ))+3) ))+2) );
      };
   }

extern void XR←AddControl(name←v13516)
   word name←v13516;
   {
   register ptr gf←c42520 =  (ptr) &globalframe;
   word itemName←v20156 = 0;
   /* AddControl: */ 
SOURCE(25441, 369)
SOURCE(25515, 295)
   {
      register word l←v20200;
      l←v20200 = (* (( (ptr) (* (( (ptr) gf←c42520)+28)/* currentConfig←v3448 */  ))+4) );
      lab←L100109: ;
      if ((l←v20200 != 0)) {
         }
      else {
         goto lab←L100106;
         };
SOURCE(25591, 157)
      {
         W2 var←c39992;
         var←c39992 = (*  (W2Pt) l←v20200 );
         {
            word var←c40024;
            var←c40024 = var←c39992.f0;
            if ((var←c40024 == 0)) {
               {
                  W2 program←v20244;
                  program←v20244 = var←c39992;
SOURCE(25652, 31)
                  itemName←v20156 = (*  (ptr) program←v20244.f1 );
                  };
               }
            else {
               if ((var←c40024 == 1)) {
                  {
                     W2 config←v20288;
                     config←v20288 = var←c39992;
SOURCE(25719, 29)
                     itemName←v20156 = (* (( (ptr) config←v20288.f1)+1) );
                     };
                  }
               else {
                  };
               };
            };
         };
SOURCE(25759, 51)
      if (( (int)(word) strcmp(itemName←v20156, name←v13516) ==  (int)0)) {
SOURCE(25794, 16)
         (void) AddToCM←P4080((*  (W2Pt) (l←v20200) ));
SOURCE(25812, 5)
         goto lab←L100107;
         };
      l←v20200 = (* (( (ptr) l←v20200)+2) );
      goto lab←L100109;
      lab←L100106: ;
      lab←L100107: ;
      };
   }

extern void XR←RaiseUnbound(p←v13576)
   word p←v13576;
   {
   register ptr gf←c42552 =  (ptr) &globalframe;
   word newProc←v20332;
   word r←v20360;
   /* RaiseUnbound: */ 
SOURCE(25833, 236)
SOURCE(25909, 76)
   {
      word var←c0485;
      var←c0485 = p←v13576;
      {
         word var←c0486;
         (void) (XR←RaiseSignal((* (( (ptr) (* (( (ptr) gf←c42552)+245)/* var←c35096 */  ))+20) ), (word) &var←c0486, (word) &var←c0485)
         );
         newProc←v20332 = var←c0486;
         };
      };
SOURCE(25987, 43)
   r←v20360 = p←v13576;
SOURCE(26032, 37)
   (*  (W2Pt) r←v20360 ) = (*  (W2Pt) newProc←v20332 );
   }

extern word XR←IsBound(p←v13656)
   word p←v13656;
   {
   word var←c13716;
   word t←v20432;
   /* IsBound: */ 
SOURCE(26075, 186)
SOURCE(26155, 21)
   t←v20432 = p←v13656;
SOURCE(26178, 27)
   if ((t←v20432 == 0)) {
SOURCE(26192, 13)
      return(0);
      };
SOURCE(26207, 40)
   if (((* (( (ptr) t←v20432)+1) ) == 2)) {
SOURCE(26234, 13)
      return(0);
      };
SOURCE(26249, 12)
   return(1);
   }

extern void XR←Unload(config←v13776)
   word config←v13776;
   {
   /* Unload: */ 
SOURCE(26267, 14)
SOURCE(26325, 5)
   (void) XR←RaiseUnnamedError();
   }

static void CedarCoreReport←P4380(problem←v25856)
   W6 problem←v25856;
   {
   register ptr gf←c42584 =  (ptr) &globalframe;
   /* CedarCoreReport: */ 
SOURCE(26336, 80)
SOURCE(26368, 48)
   {
      word var←c40056;
      var←c40056 = XR←NewObject(28, (* (( (ptr) gf←c42584)+82) ));
      (*  (W6Pt) var←c40056 ) = problem←v25856;
      (* (( (ptr) var←c40056)+6) ) = (* (( (ptr) gf←c42584)+11)/* cedarCoreErrors←v3252 */  );
      (* (( (ptr) gf←c42584)+11)/* cedarCoreErrors←v3252 */  ) = var←c40056;
      };
   }

static word QualifiedName←P4440(pc←v13836)
   W2 pc←v13836;
   {
   register ptr gf←c42616 =  (ptr) &globalframe;
   word var←c13880;
   /* QualifiedName: */ 
SOURCE(26422, 485)
SOURCE(26509, 398)
   {
      W2 var←c40088;
      var←c40088 = pc←v13836;
      {
         word var←c40440;
         var←c40440 = var←c40088.f0;
         if ((var←c40440 == 0)) {
            {
               W2 p←v20476;
               p←v20476 = var←c40088;
SOURCE(26575, 96)
               {
                  W2 var←c40184;
                  word var←c40152;
                  word var←c40216;
                  var←c40184.f0 = 1;
                  var←c40184.f1 = (* (( (ptr) p←v20476.f1)+4) );
                  var←c40152 = (word) QualifiedName←P4440(var←c40184);
                  {
                     word pd100;
                     pd100 = (* (( (ptr) (* (( (ptr) gf←c42616)+247)/* var←c35416 */  ))+7) );
                     var←c40216 = (word) ( *( (fPt) ((*  (ptr) pd100 ))))((*  (ptr) p←v20476.f1 ), 2147483647, pd100);
                     };
                  {
                     word pd101;
                     pd101 = (* (( (ptr) (* (( (ptr) gf←c42616)+249)/* var←c40248 */  ))+6) );
                     return((word) ( *( (fPt) ((*  (ptr) pd101 ))))(var←c40152, var←c40216, pd101));
                     };
                  };
               };
            }
         else {
            if ((var←c40440 == 1)) {
               {
                  W2 c←v20520;
                  c←v20520 = var←c40088;
SOURCE(26721, 159)
                  if ((c←v20520.f1 == (* (( (ptr) gf←c42616)+37)/* globalConfig←v3700 */  ))) {
SOURCE(26751, 18)
                     return(0);
                     }
                  else {
SOURCE(26769, 111)
                     {
                        W2 var←c40344;
                        word var←c40312;
                        word var←c40376;
                        word var←c40408;
                        var←c40344.f0 = 1;
                        var←c40344.f1 = (*  (ptr) c←v20520.f1 );
                        var←c40312 = (word) QualifiedName←P4440(var←c40344);
                        {
                           word pd102;
                           pd102 = (* (( (ptr) (* (( (ptr) gf←c42616)+247)/* var←c35416 */  ))+7) );
                           var←c40376 = (word) ( *( (fPt) ((*  (ptr) pd102 ))))((* (( (ptr) c←v20520.f1)+1) ), 2147483647, pd102);
                           };
                        {
                           word pd103;
                           pd103 = (* (( (ptr) (* (( (ptr) gf←c42616)+249)/* var←c40248 */  ))+37) );
                           var←c40408 = (word) ( *( (fPt) ((*  (ptr) pd103 ))))(46, pd103);
                           };
                        {
                           word pd104;
                           pd104 = (* (( (ptr) (* (( (ptr) gf←c42616)+249)/* var←c40248 */  ))+5) );
                           return((word) ( *( (fPt) ((*  (ptr) pd104 ))))(var←c40312, var←c40376, var←c40408, 0, 0, pd104));
                           };
                        };
                     };
                  };
               }
            else {
SOURCE(26896, 11)
               return(0);
               };
            };
         };
      };
   }

static word ProgramListFromName←P4500(name←v13940, optionalList←v13968)
   word name←v13940;
   word optionalList←v13968;
   {
   register ptr gf←c42648 =  (ptr) &globalframe;
   word var←c14096;
   word makeCopy←v20564;
   word copy←v20592 = 0;
   word copyTail←v20620 = 0;
   word cName←v20648;
   word start←v20676;
   /* ProgramListFromName: */ 
SOURCE(26913, 574)
SOURCE(27029, 35)
   makeCopy←v20564 = (optionalList←v13968 == 0);
SOURCE(27105, 39)
   {
      word pd105;
      pd105 = (* (( (ptr) (* (( (ptr) gf←c42648)+247)/* var←c35416 */  ))+5) );
      cName←v20648 = (word) ( *( (fPt) ((*  (ptr) pd105 ))))(name←v13940, pd105);
      };
SOURCE(27146, 7)
   start←v20676 = (* (( (ptr) gf←c42648)+36)/* programs←v3672 */  );
SOURCE(27181, 174)
   if ((optionalList←v13968 != 0)) {
SOURCE(27210, 83)
      if (( (int)(word) strcmp(cName←v20648, (*  (ptr) (*  (ptr) optionalList←v13968 ) )) ==  (int)0)) {
SOURCE(27261, 32)
         optionalList←v13968 = (* (( (ptr) optionalList←v13968)+1) );
         };
SOURCE(27295, 38)
      if ((optionalList←v13968 == 0)) {
SOURCE(27322, 11)
         return(0);
         };
SOURCE(27335, 20)
      start←v20676 = optionalList←v13968;
      };
SOURCE(27360, 105)
   {
      register word p←v20888;
      p←v20888 = start←v20676;
      lab←L100113: ;
      if ((p←v20888 != 0)) {
         }
      else {
         goto lab←L100110;
         };
SOURCE(27416, 49)
      if (( (int)(word) strcmp(cName←v20648, (*  (ptr) (*  (ptr) p←v20888 ) )) ==  (int)0)) {
SOURCE(27456, 9)
         return(p←v20888);
         };
      p←v20888 = (* (( (ptr) p←v20888)+1) );
      goto lab←L100113;
      lab←L100110: ;
      };
SOURCE(27476, 11)
   return(0);
   }

static void ConvertToRefTab←P4560()
   {
   register ptr gf←c42680 =  (ptr) &globalframe;
   /* ConvertToRefTab: */ 
SOURCE(27493, 490)
SOURCE(27522, 22)
   (void) TakeInstallationLock←P780();
SOURCE(27546, 20)
   (void) TakeInspectionLock←P900();
SOURCE(27568, 349)
   {
      W2 var←c40472;
      var←c40472 = (*  (W2Pt) (* (( (ptr) (* (( (ptr) gf←c42680)+37)/* globalConfig←v3700 */  ))+6) ) );
      if ((var←c40472.f0 == 0)) {
         {
            W2 elist←v21016;
            elist←v21016 = var←c40472;
SOURCE(27636, 283)
            {
               word lsave←v21060;
               word tab←v21088;
SOURCE(27638, 7)
               lsave←v21060 = elist←v21016.f1;
SOURCE(27677, 73)
               {
                  word pd106;
                  pd106 = (* (( (ptr) (* (( (ptr) gf←c42680)+246)/* var←c35192 */  ))+5) );
                  tab←v21088 = (word) ( *( (fPt) ((*  (ptr) pd106 ))))(17, (word) (( (bPt) gf←c42680)+756)/* var←c34168 */ , (word) (( (bPt) gf←c42680)+748)
                     /* var←c34136 */ , pd106);
                  };
SOURCE(27752, 97)
               {
                  register word l←v21216;
                  l←v21216 = lsave←v21060;
                  lab←L100117: ;
                  if ((l←v21216 != 0)) {
                     }
                  else {
                     goto lab←L100114;
                     };
SOURCE(27808, 41)
                  {
                     word var←c40504;
                     word pd107;
                     pd107 = (* (( (ptr) (* (( (ptr) gf←c42680)+246)/* var←c35192 */  ))+10) );
                     var←c40504 = (word) ( *( (fPt) ((*  (ptr) pd107 ))))(tab←v21088, (*  (ptr) l←v21216 ), (*  (ptr) l←v21216 ), pd107);
                     };
                  l←v21216 = (* (( (ptr) l←v21216)+1) );
                  goto lab←L100117;
                  lab←L100114: ;
                  };
SOURCE(27860, 57)
               {
                  word var←c40536;
                  var←c40536 = XR←NewObject(8, (* (( (ptr) gf←c42680)+51) ));
                  (*  (ptr) var←c40536 ) = 1;
                  (* (( (ptr) var←c40536)+1) ) = tab←v21088;
                  (* (( (ptr) (* (( (ptr) gf←c42680)+37)/* globalConfig←v3700 */  ))+6) ) = var←c40536;
                  };
               };
            };
         }
      else {
         };
      };
SOURCE(27939, 22)
   (void) GiveInstallationLock←P840();
SOURCE(27963, 20)
   (void) GiveInspectionLock←P960();
   }

static void PutCedarCoreProblems←P4620()
   {
   /* PutCedarCoreProblems: */ 
   }

extern void XR←VerboseCommit()
   {
   W7 var←c42712;
   /* declaration of var←c40568 skipped */ 
   /* declaration of problems←v21344 skipped */ 
   /* VerboseCommit: */ 
SOURCE(28038, 215)
   {
      word tmpAddr108;
      tmpAddr108 = (word) (( (ptr) &var←c42712)+4)/* var←c40568 */ ;
      (*  (ptr) tmpAddr108 ) = ( ((word)  (fPt) RecordProblems←P7776) );
      (* (( (ptr) tmpAddr108) + 1) ) = 1;
      };
SOURCE(28096, 30)
   var←c42712.f6/* problems←v21344 */  = 0;
SOURCE(28198, 33)
   (void) CheckInstallation←P1080((word) ((( (bPt) &var←c42712)+16)/* var←c40568 */ ));
SOURCE(28233, 20)
   (void) XR←CommitInstallation();
   }

static void RecordProblems←P7776(problem←v32360, formal←c42776)
   W6 problem←v32360;
   word formal←c42776;
   {
   register ptr gf←c42744 =  (ptr) &globalframe;
   formal←c42776 = (formal←c42776 - 16);
   /* RecordProblems: */ 
SOURCE(28128, 65)
SOURCE(28159, 34)
   {
      word var←c40600;
      var←c40600 = XR←NewObject(28, (* (( (ptr) gf←c42744)+82) ));
      (*  (W6Pt) var←c40600 ) = problem←v32360;
      (* (( (ptr) var←c40600)+6) ) = (* (( (ptr) formal←c42776)+6) );
      (* (( (ptr) formal←c42776)+6) ) = var←c40600;
      };
   }

static void EnableAborts←P4740(pCondition←v14288)
   word pCondition←v14288;
   {
   /* EnableAborts: */ 
SOURCE(28259, 174)
SOURCE(28417, 16)
   (void) XR←EnableAborts(pCondition←v14288);
   }

static void NoName←Q8016(formal←c0532, formal←c200004, formal←c200005, formal←c200006, formal←c200007)
   word formal←c0532;
   word formal←c200004;
   word formal←c200005;
   word formal←c200006;
   word formal←c200007;
   {
   register ptr gf←c0602 =  (ptr) &globalframe;
   if ((formal←c200005 == XR←Unwind)) {
      (void) (XR←MonitorExit((word) (( (bPt) gf←c0602)+16)/* LOCK←v2832 */ ));
      };
   (*  (ptr) formal←c0532 ) = 0;
   (* (( (ptr) formal←c0532)+1) ) = 0;
   return;
   }

static void NoName←Q8076(formal←c0537, formal←c200000, formal←c200001, formal←c200002, formal←c200003)
   word formal←c0537;
   word formal←c200000;
   word formal←c200001;
   word formal←c200002;
   word formal←c200003;
   {
   register ptr gf←c0603 =  (ptr) &globalframe;
   if ((formal←c200001 == XR←Unwind)) {
      (void) (XR←MonitorExit((word) (( (bPt) gf←c0603)+16)/* LOCK←v2832 */ ));
      };
   (*  (ptr) formal←c0537 ) = 0;
   (* (( (ptr) formal←c0537)+1) ) = 0;
   return;
   }

/* file: InstallationScopesImpl, module: InstallationScopesImpl, compiled at: January 18, 1993 1:40:16 pm PST */ 
extern void XR←install←InstallationScopesImpl() {
   XR←FillWords(&dummy54, 3, 0);
   NoName←Q7836();
   }
extern void XR←run←InstallationScopesImpl() { XR←Start(&globalframe); }