
/* This file was automatically generated by pclu.*/

#include "pclu_err.h"
#include "pclu_sys.h"


/**** BEGIN CLUSTER gcd_tab ****/


typedef struct {
int count;
    char *_gcd_name;
} gcd_tab_op_grind_of_t_REQS;

gcd_tab_op_grind_of_t_REQS gcd_tab_op_grind_of_t_reqs_actual = {1,
    "_gcd"};

struct REQS * gcd_tab_op_grind_of_t_reqs = (struct REQS *)&gcd_tab_op_grind_of_t_reqs_actual;

typedef struct {
    int count;
    OWNPTR type_owns;
    OWNPTR op_owns;
    struct OP_ENTRY _gcd;
} gcd_tab_op_grind_of_t_OPS;

typedef struct {
int count;
    char *_gcd_name;
} gcd_tab_op_grindc_of_t_REQS;

gcd_tab_op_grindc_of_t_REQS gcd_tab_op_grindc_of_t_reqs_actual = {1,
    "_gcd"};

struct REQS * gcd_tab_op_grindc_of_t_reqs = (struct REQS *)&gcd_tab_op_grindc_of_t_reqs_actual;

typedef struct {
    int count;
    OWNPTR type_owns;
    OWNPTR op_owns;
    struct OP_ENTRY _gcd;
} gcd_tab_op_grindc_of_t_OPS;

typedef struct {
int count;
    char *_gcd_name;
} gcd_tab_op_grindp_of_t_REQS;

gcd_tab_op_grindp_of_t_REQS gcd_tab_op_grindp_of_t_reqs_actual = {1,
    "_gcd"};

struct REQS * gcd_tab_op_grindp_of_t_reqs = (struct REQS *)&gcd_tab_op_grindp_of_t_reqs_actual;

typedef struct {
    int count;
    OWNPTR type_owns;
    OWNPTR op_owns;
    struct OP_ENTRY _gcd;
} gcd_tab_op_grindp_of_t_OPS;

typedef struct {
int count;
    char *_gcd_name;
} gcd_tab_op_pgrind_of_t_REQS;

gcd_tab_op_pgrind_of_t_REQS gcd_tab_op_pgrind_of_t_reqs_actual = {1,
    "_gcd"};

struct REQS * gcd_tab_op_pgrind_of_t_reqs = (struct REQS *)&gcd_tab_op_pgrind_of_t_reqs_actual;

typedef struct {
    int count;
    OWNPTR type_owns;
    OWNPTR op_owns;
    struct OP_ENTRY _gcd;
} gcd_tab_op_pgrind_of_t_OPS;

typedef struct {
int count;
    char *_gcd_name;
} gcd_tab_op_mgrind_of_t_REQS;

gcd_tab_op_mgrind_of_t_REQS gcd_tab_op_mgrind_of_t_reqs_actual = {1,
    "_gcd"};

struct REQS * gcd_tab_op_mgrind_of_t_reqs = (struct REQS *)&gcd_tab_op_mgrind_of_t_reqs_actual;

typedef struct {
    int count;
    OWNPTR type_owns;
    OWNPTR op_owns;
    struct OP_ENTRY _gcd;
} gcd_tab_op_mgrind_of_t_OPS;
extern errcode gcd_tab_IB_1();
extern errcode gcd_tab_IB_2();
extern errcode gcd_tab_IB_3();
extern errcode gcd_tab_IB_4();
extern errcode gcd_tab_IB_5();
extern errcode gcd_tab_IB_6();
extern errcode _chanOPopen();
extern errcode _chanOPget_name();
extern errcode _gcOPcount();
extern errcode arrayOPpredict();
extern errcode _vecOPcreate();
extern errcode _wordvecOPcreate();
extern errcode _eventOPdefer();
extern errcode gcd_tabOPmgrind();
extern errcode _wordvecOPstore();
extern errcode recordOPget_4();
extern errcode _chanOPset_access();
extern errcode _chanOPputw();
extern errcode _eventOPundefer();
extern errcode _chanOPabort();
extern errcode _chanOPclose();
extern errcode arrayOPnew();
extern errcode intOPadd();
extern errcode gcd_tabOPpgrind();
extern errcode recordOPset_4();
extern errcode _gcd();
extern errcode recordOPget_3();
extern errcode recordOPget_5();
extern errcode arrayOPfetch();
extern errcode _cvt();
extern errcode sequenceOPelements();
extern errcode sequenceOPindexes();
extern errcode sequenceOPfetch();
extern errcode _tagcellOPget();
extern errcode _advOPget_vector();
extern errcode gcd_tabOPinsert();
extern errcode intOPmul();
extern errcode _vecOPsize();
extern errcode boolOPnot();
extern errcode _objOPequal();
extern errcode gcd_storeOPinit();
extern errcode gcd_storeOPstore_id();
extern errcode intOPlt();
extern errcode gcd_storeOPstore_lit();
extern errcode gcd_storeOPstore_ref();
extern errcode arrayOPreml();
extern errcode _bytevecOPsize();
extern errcode gcd_storeOPstore_hdr();
extern errcode gcd_storeOPstore_string();
extern errcode sequenceOPsize();
extern errcode intOPfrom_to();
extern errcode gcd_storeOPstore_array_desc();
extern errcode gcd_storeOPdone();
extern errcode hash_obj();
extern errcode _vecOPfetch();
extern errcode recordOPget_1();
extern errcode recordOPget_2();
extern errcode _vecOPstore();
extern errcode arrayOPaddh();
extern errcode recordOPdebug_print();
extern OWN_req gcd_tab_ownreqs;
extern struct OPS *gcd_tab_ops;
extern struct REQS *sequence_of_t_reqs;
extern struct OPS *proctype_ops;
extern OWN_req sequence_ownreqs;
extern struct OPS *sequence_ops;
struct OPS *sequence_of_proctype_table;
struct OPS *sequence_of_proctype_ops;
struct OPS *sequence_of_proctype_ops;
OWNPTR sequence_of_proctype_owns;
extern struct OPS *null_ops;
extern struct OPS *sequence_of_proctype_ops;
extern struct OPS *_obj_ops;
struct OPS  *oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_ops;
extern struct REQS *_vec_of_t_reqs;
extern OWN_req _vec_ownreqs;
extern struct OPS *_vec_ops;
struct OPS *_vec_of__obj_table;
struct OPS *_vec_of__obj_ops;
struct OPS *_vec_of__obj_ops;
OWNPTR _vec_of__obj_owns;
extern struct REQS *array_of_t_reqs;
extern struct OPS *oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_ops;
extern OWN_req array_ownreqs;
extern struct OPS *array_ops;
struct OPS *array_of_oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_table;
struct OPS *array_of_oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_ops;
struct OPS *array_of_oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_ops;
OWNPTR array_of_oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_owns;
struct OPS *array_of__obj_table;
struct OPS *array_of__obj_ops;
struct OPS *array_of__obj_ops;
OWNPTR array_of__obj_owns;
extern struct OPS *_vec_of__obj_ops;
extern struct OPS *int_ops;
extern struct OPS *array_of_oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_ops;
extern struct OPS *array_of__obj_ops;
struct OPS  *record_bucks_cnt_iq_next_oq_ops;
extern struct REQS *gcd_tab_op_mgrind_of_t_reqs;
extern OWN_req gcd_tab_op_mgrind_ownreqs;
extern struct REQS *gcd_tab_op_pgrind_of_t_reqs;
extern OWN_req gcd_tab_op_pgrind_ownreqs;
struct OPS *sequence_of__obj_table;
struct OPS *sequence_of__obj_ops;
struct OPS *sequence_of__obj_ops;
OWNPTR sequence_of__obj_owns;
extern struct REQS *_tagcell_of_t_reqs;
extern OWN_req _tagcell_ownreqs;
extern struct OPS *_tagcell_ops;
struct OPS *_tagcell_of__obj_table;
struct OPS *_tagcell_of__obj_ops;
struct OPS *_tagcell_of__obj_ops;
OWNPTR _tagcell_of__obj_owns;
extern struct REQS *_adv_of_t_reqs;
extern OWN_req _adv_ownreqs;
extern struct OPS *_adv_ops;
struct OPS *_adv_of__obj_table;
struct OPS *_adv_of__obj_ops;
struct OPS *_adv_of__obj_ops;
OWNPTR _adv_of__obj_owns;
struct OPS  *record_addr_next_obj_ops;
CLUREF STR_write;
CLUREF STR_gcd_137tab_072_040array_040store_040not_040a_040ref;
static int gcd_tab_own_init = 0;
OWN_req gcd_tab_ownreqs = {0,0};
errcode gcd_tab_own_init_proc()
{
struct {
    errcode err;
    } locals;
    enter_own_init_proc();
        if (gcd_tab_own_init == 0) {
        add_parm_info_type(0, proctype_ops, sequence_of_t_reqs);
        find_type_instance(sequence_ops, 1, &sequence_ownreqs, &(sequence_of_proctype_ops));
        add_selector_info("a_bvec", 0, null_ops); 
        add_selector_info("b_vec", 1, proctype_ops); 
        add_selector_info("c_sel", 2, sequence_of_proctype_ops); 
        add_selector_info("d_cell", 3, sequence_of_proctype_ops); 
        add_selector_info("e_sell", 4, proctype_ops); 
        add_selector_info("f_adv", 5, _obj_ops); 
        add_selector_info("g_arp", 6, proctype_ops); 
        find_selector_ops("oneof", 7, &(oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_ops));
        add_parm_info_type(0, _obj_ops, _vec_of_t_reqs);
        find_type_instance(_vec_ops, 1, &_vec_ownreqs, &(_vec_of__obj_ops));
        add_parm_info_type(0, oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_ops, array_of_t_reqs);
        find_type_instance(array_ops, 1, &array_ownreqs, &(array_of_oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_ops));
        add_parm_info_type(0, _obj_ops, array_of_t_reqs);
        find_type_instance(array_ops, 1, &array_ownreqs, &(array_of__obj_ops));
        add_selector_info("bucks", 0, _vec_of__obj_ops); 
        add_selector_info("cnt", 1, int_ops); 
        add_selector_info("iq", 2, array_of_oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_ops); 
        add_selector_info("next", 3, int_ops); 
        add_selector_info("oq", 4, array_of__obj_ops); 
        find_selector_ops("record", 5, &(record_bucks_cnt_iq_next_oq_ops));
        add_parm_info_type(0, _obj_ops, sequence_of_t_reqs);
        find_type_instance(sequence_ops, 1, &sequence_ownreqs, &(sequence_of__obj_ops));
        add_parm_info_type(0, _obj_ops, _tagcell_of_t_reqs);
        find_type_instance(_tagcell_ops, 1, &_tagcell_ownreqs, &(_tagcell_of__obj_ops));
        add_parm_info_type(0, _obj_ops, _adv_of_t_reqs);
        find_type_instance(_adv_ops, 1, &_adv_ownreqs, &(_adv_of__obj_ops));
        add_selector_info("addr", 0, int_ops); 
        add_selector_info("next", 1, _obj_ops); 
        add_selector_info("obj", 2, _obj_ops); 
        find_selector_ops("record", 3, &(record_addr_next_obj_ops));
        stringOPcons("write", CLU_1, CLU_5, &STR_write);
        stringOPcons("gcd_tab: array store not a ref", CLU_1, CLU_30, &STR_gcd_137tab_072_040array_040store_040not_040a_040ref);
        gcd_tab_own_init = 1;
        {signal(ERR_ok);}
    ex_0: pclu_unhandled(locals.err); {signal(ERR_failure);}
        }
    }

extern struct dbg_info* dbg_info_gcd_tabOPgrind;
#undef MY_TRACE_FLAG
#define MY_TRACE_FLAG gcd_tabOPgrind_TRACE
int gcd_tabOPgrind_TRACE;
static Vlist3 owns_gcd_tab = {0, 3,{ {0, 2, "gcd_tab_init", &int_ops}
, {0, 2, "gcd_tabOPgrind_init", &int_ops}
, {0, 2, "gcd_tabOPgrind_init", &int_ops}
}
};
extern OWN_req _chan_ownreqs;
extern struct OPS *_chan_ops;
struct OPS *_vec_of__obj_table;
struct OPS *_vec_of__obj_ops;
struct OPS *_vec_of__obj_ops;
OWNPTR _vec_of__obj_owns;
struct OPS *sequence_of_proctype_table;
struct OPS *sequence_of_proctype_ops;
struct OPS *sequence_of_proctype_ops;
OWNPTR sequence_of_proctype_owns;
struct OPS  *oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_ops;
struct OPS *array_of_oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_table;
struct OPS *array_of_oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_ops;
struct OPS *array_of_oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_ops;
OWNPTR array_of_oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_owns;
struct OPS *array_of__obj_table;
struct OPS *array_of__obj_ops;
struct OPS *array_of__obj_ops;
OWNPTR array_of__obj_owns;
struct OPS  *record_bucks_cnt_iq_next_oq_ops;

typedef struct {
    int grind_own_init;
    gcd_tab_op_grind_of_t_OPS *t_ops;
    struct OPS *gcd_tab_op_mgrind_of_t_table;
    struct OPS *gcd_tab_op_mgrind_of_t_ops;
    OWNPTR gcd_tab_op_mgrind_of_t_owns;
    } gcd_tab_op_grind_OWN_DEFN;
OWN_req gcd_tab_op_grind_ownreqs = {sizeof(gcd_tab_op_grind_OWN_DEFN), 1};


/**** BEGIN PROCEDURE grind ****/

errcode gcd_tabOPgrind(x, fn, ret_1)
CLUREF x;
CLUREF fn;
CLUREF *ret_1;
    {
    struct {
        struct dbg_info *DBG_INFO;
        int DBG_LINE;
        errcode err;
        errcode ecode2;
        gcd_tab_op_grind_OWN_DEFN *op_own_ptr;
        CLUREF ch;
        CLUREF tab;
        CLUREF buf;
        CLUREF why;
        CLUREF x;
        CLUREF fn;
        } locals;
    locals.ch.num = UNINIT;
    locals.tab.num = UNINIT;
    locals.buf.num = UNINIT;
    locals.why.num = UNINIT;
    locals.x.num = UNINIT;
    locals.fn.num = UNINIT;
    locals.DBG_INFO = dbg_info_gcd_tabOPgrind;
    locals.x = x;
    locals.fn = fn;
    locals.op_own_ptr = (gcd_tab_op_grind_OWN_DEFN*) CUR_PROC_VAR.proc->op_owns;
        if (locals.op_own_ptr->grind_own_init == 0) {
        add_parm_info_type(0, _obj_ops, _vec_of_t_reqs);
        find_type_instance(_vec_ops, 1, &_vec_ownreqs, &(_vec_of__obj_ops));
        add_parm_info_type(0, proctype_ops, sequence_of_t_reqs);
        find_type_instance(sequence_ops, 1, &sequence_ownreqs, &(sequence_of_proctype_ops));
        add_selector_info("a_bvec", 0, null_ops); 
        add_selector_info("b_vec", 1, proctype_ops); 
        add_selector_info("c_sel", 2, sequence_of_proctype_ops); 
        add_selector_info("d_cell", 3, sequence_of_proctype_ops); 
        add_selector_info("e_sell", 4, proctype_ops); 
        add_selector_info("f_adv", 5, _obj_ops); 
        add_selector_info("g_arp", 6, proctype_ops); 
        find_selector_ops("oneof", 7, &(oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_ops));
        add_parm_info_type(0, oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_ops, array_of_t_reqs);
        find_type_instance(array_ops, 1, &array_ownreqs, &(array_of_oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_ops));
        add_parm_info_type(0, _obj_ops, array_of_t_reqs);
        find_type_instance(array_ops, 1, &array_ownreqs, &(array_of__obj_ops));
        add_selector_info("bucks", 0, _vec_of__obj_ops); 
        add_selector_info("cnt", 1, int_ops); 
        add_selector_info("iq", 2, array_of_oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_ops); 
        add_selector_info("next", 3, int_ops); 
        add_selector_info("oq", 4, array_of__obj_ops); 
        find_selector_ops("record", 5, &(record_bucks_cnt_iq_next_oq_ops));
        add_parm_info_type(0, locals.op_own_ptr->t_ops, gcd_tab_op_mgrind_of_t_reqs);
        find_typeop_instance(gcd_tab_ops, gcd_tabOPmgrind, 1, 0, &gcd_tab_op_mgrind_ownreqs, &gcd_tab_ownreqs, &(locals.op_own_ptr->gcd_tab_op_mgrind_of_t_ops));
        stringOPcons("write", CLU_1, CLU_5, &STR_write);
        }
        if (locals.op_own_ptr->grind_own_init == 0) {
        locals.op_own_ptr->grind_own_init = 1;
    }
    enter_proc(44);

  LINE(48);
    {
        {CLUREF T_2_1;
        locals.err = _chanOPopen(locals.fn, STR_write, CLU_0, &T_2_1);
        if (locals.err != ERR_ok) goto ex_1;
        locals.ch.num = T_2_1.num;
        }
        }
    goto end_1;
    ex_1:
        if (locals.err == ERR_not_possible) {signal(ERR_not_possible);}
        else {
            goto ex_0;}
    end_1:;

  LINE(50);
    {
    CLUREF T_1_1;
    locals.err = _chanOPget_name(locals.ch, &T_1_1);
    if (locals.err != ERR_ok) goto ex_0;
    locals.fn.num = T_1_1.num;
    }

  LINE(51);
    {
        {CLUREF T_1_1;
        CLUREF T_1_2;
        CLUREF T_1_3;
        CLUREF T_1_4;
        CLUREF T_1_5;
        CLUREF T_1_6;
        CLUREF T_1_7;
        CLUREF T_1_8;
        RecordAlloc(5, T_1_1);
        T_1_1.vec->data[3]  = 0;
        locals.err = _gcOPcount(&T_1_2);
        if (locals.err != ERR_ok) goto ex_0;
        T_1_1.vec->data[1]  = T_1_2.num;
        T_1_3.num = 300000;
        locals.err = arrayOPpredict(CLU_1, T_1_3, &T_1_4);
        if (locals.err != ERR_ok) goto ex_0;
        T_1_1.vec->data[4]  = T_1_4.num;
        T_1_5.num = 300000;
        locals.err = arrayOPpredict(CLU_1, T_1_5, &T_1_6);
        if (locals.err != ERR_ok) goto ex_0;
        T_1_1.vec->data[2]  = T_1_6.num;
        T_1_7.num = 50000;
        locals.err = _vecOPcreate(T_1_7, &T_1_8);
        if (locals.err != ERR_ok) goto ex_0;
        T_1_1.vec->data[0]  = T_1_8.num;
        locals.tab.num = T_1_1.num;
        }
        }

  LINE(56);
    {
        {CLUREF T_1_1;
        CLUREF T_1_2;
        T_1_1.num = 1024;
        locals.err = _wordvecOPcreate(T_1_1, &T_1_2);
        if (locals.err != ERR_ok) goto ex_0;
        locals.buf.num = T_1_2.num;
        }
        }

  LINE(63);
    {
    locals.err = _eventOPdefer();
    if (locals.err != ERR_ok) goto ex_0;
    }

  LINE(64);
    {

  LINE(66);
        {
        generic_CLU_proc.type_owns = 0;
        generic_CLU_proc.op_owns = locals.op_own_ptr->gcd_tab_op_mgrind_of_t_ops->op_owns;
        generic_CLU_proc.proc = gcd_tabOPmgrind;
        CUR_PROC_VAR.proc = &generic_CLU_proc;
        locals.err = gcd_tabOPmgrind(locals.tab, locals.buf, locals.ch, locals.x);
        if (locals.err != ERR_ok) goto ex_2;
        }

  LINE(67);
        {
        CLUREF T_3_1;
        T_3_1.num = locals.tab.vec->data[3];
        locals.err = _wordvecOPstore(locals.buf, CLU_1, T_3_1);
        if (locals.err != ERR_ok) goto ex_2;
        }

  LINE(68);
        {
        locals.err = _chanOPset_access(locals.ch, CLU_4);
        if (locals.err != ERR_ok) goto ex_2;
        }

  LINE(69);
        {
        locals.err = _chanOPputw(locals.ch, locals.buf, CLU_1, CLU_4, CLU_0);
        if (locals.err != ERR_ok) goto ex_2;
        }
        }
        goto end_2;
        ex_2:
            if ((locals.err == ERR_not_possible)) {
            CLUREF why;
            locals.why.num = elist[0].num;

  LINE(71);
                {
                locals.err = _eventOPundefer();
                if (locals.err != ERR_ok) goto ex_0;
                }

  LINE(72);
                {
                locals.err = _chanOPabort(locals.ch);
                if (locals.err != ERR_ok) goto ex_3;
                }
                    goto end_3;
                    ex_3:
                        if ((locals.err == ERR_not_possible)) {
                        }
                        else {
                            goto ex_0;
                        }
                    end_3:;

  LINE(74);
                {
                elist[0] = locals.why;
                {signal (ERR_not_possible);}}
            }
            else {
                goto ex_0;
            }
        end_2:;

  LINE(76);
    {
    locals.err = _eventOPundefer();
    if (locals.err != ERR_ok) goto ex_0;
    }

  LINE(78);
    {
    locals.err = _chanOPclose(locals.ch);
    if (locals.err != ERR_ok) goto ex_4;
    }
    goto end_4;
    ex_4:
        if (locals.err == ERR_not_possible) {signal(ERR_not_possible);}
        else {
            goto ex_0;}
    end_4:;

  LINE(80);
    {
    {
    ret_1->num = locals.fn.num;
    }
    {signal (ERR_ok);}}
    goto end_0;
    ex_0:
        {
            if (locals.err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(locals.err);
            {signal(ERR_failure);}
        }
    end_0: elist[0].str = no_return_values_STRING;
        {signal(ERR_failure);}
    }

/**** END PROCEDURE grind ****/

extern struct OPS *file_name_ops;
extern struct OPS *string_ops;
extern struct OPS *_wordvec_ops;
typedef struct {
    int hdr;
    int count;
    char *name;
    char *fname;
    bool is_iter;
    int is_parmd;
    int addr;
    int nargs;
    Vlist1 *vals;
    siglist1 *sigs;
    Vlist9 *locals;
    Vlist3 *owns;
    Vlist0 *ptowns;
    Vlist23 *popowns;
    Slist0 *type_formals;
    Slist1 *op_formals;
    } dbg_info_gcd_tabOPgrind_actual;
static Vlist1 vals_gcd_tabOPgrind = {0, 1, { {0, 2, "", &file_name_ops}}
};
static sig_desc1 sig_gcd_tabOPgrind_1 = {0, 4, "not_possible", {0, 1
, { {0, 2, "", &string_ops}}}};
static siglist1 sigs_gcd_tabOPgrind = {0, 1, (sig_desc*)&sig_gcd_tabOPgrind_1};
static Vlist9 locals_gcd_tabOPgrind = {0, 9,{ {0, 2, "err", &int_ops},  {0, 2, "ecode2", &int_ops},  {0, 2, "op_own_ptr", &int_ops},  {0, 2, "ch", &_chan_ops},  {0, 2, "tab", &gcd_tab_ops},  {0, 2, "buf", &_wordvec_ops},  {0, 2, "why", &string_ops},  {0, 2, "x", zero_ops, "t_ops"},  {0, 2, "fn", &file_name_ops}}
};
static Vlist23 popowns_gcd_tabOPgrind = {0, 23,{ {0, 2, "gcd_tabOPgrind_init", &int_ops}
, {0, 2, "_vec_of__obj_table", &NULL_OPS}, {0, 2, "_vec_of__obj_ops", &NULL_OPS}, {0, 2, "_vec_of__obj_ops", &NULL_OPS}, {0, 2, "_vec_of__obj_owns", &NULL_OPS}, {0, 2, "sequence_of_proctype_table", &NULL_OPS}, {0, 2, "sequence_of_proctype_ops", &NULL_OPS}, {0, 2, "sequence_of_proctype_ops", &NULL_OPS}, {0, 2, "sequence_of_proctype_owns", &NULL_OPS}, {0, 2, "oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_ops", &NULL_OPS}, {0, 2, "array_of_oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_table", &NULL_OPS}, {0, 2, "array_of_oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_ops", &NULL_OPS}, {0, 2, "array_of_oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_ops", &NULL_OPS}, {0, 2, "array_of_oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_owns", &NULL_OPS}, {0, 2, "array_of__obj_table", &NULL_OPS}, {0, 2, "array_of__obj_ops", &NULL_OPS}, {0, 2, "array_of__obj_ops", &NULL_OPS}, {0, 2, "array_of__obj_owns", &NULL_OPS}, {0, 2, "record_bucks_cnt_iq_next_oq_ops", &NULL_OPS}, {0, 2, "t_ops", &NULL_OPS}, {0, 2, "gcd_tab_op_mgrind_of_t_table", &NULL_OPS}, {0, 2, "gcd_tab_op_mgrind_of_t_ops", &NULL_OPS}, {0, 2, "gcd_tab_op_mgrind_of_t_owns", &NULL_OPS}}};
Slist0 tformals_gcd_tabOPgrind = {0, 0};
Slist1 opformals_gcd_tabOPgrind = {0, 1, "t"};
dbg_info_gcd_tabOPgrind_actual dbg_info_gcd_tabOPgrind_data = {0, 12, 
    "gcd_tabOPgrind", "/common/pub/dcurtis-temp/pclu/lib/clu/gcd_tab.clu", 0, 1, (int)gcd_tabOPgrind, 2, 
    &vals_gcd_tabOPgrind, &sigs_gcd_tabOPgrind, &locals_gcd_tabOPgrind, &owns_gcd_tab, &NO_VALS, &popowns_gcd_tabOPgrind, &NO_PARMS, &opformals_gcd_tabOPgrind};
    struct dbg_info *dbg_info_gcd_tabOPgrind = (struct dbg_info*)&dbg_info_gcd_tabOPgrind_data;
extern struct dbg_info* dbg_info_gcd_tabOPgrindc;
#undef MY_TRACE_FLAG
#define MY_TRACE_FLAG gcd_tabOPgrindc_TRACE
int gcd_tabOPgrindc_TRACE;
struct OPS *_vec_of__obj_table;
struct OPS *_vec_of__obj_ops;
struct OPS *_vec_of__obj_ops;
OWNPTR _vec_of__obj_owns;
struct OPS *sequence_of_proctype_table;
struct OPS *sequence_of_proctype_ops;
struct OPS *sequence_of_proctype_ops;
OWNPTR sequence_of_proctype_owns;
struct OPS  *oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_ops;
struct OPS *array_of_oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_table;
struct OPS *array_of_oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_ops;
struct OPS *array_of_oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_ops;
OWNPTR array_of_oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_owns;
struct OPS *array_of__obj_table;
struct OPS *array_of__obj_ops;
struct OPS *array_of__obj_ops;
OWNPTR array_of__obj_owns;
struct OPS  *record_bucks_cnt_iq_next_oq_ops;

typedef struct {
    int grindc_own_init;
    gcd_tab_op_grindc_of_t_OPS *t_ops;
    struct OPS *gcd_tab_op_mgrind_of_t_table;
    struct OPS *gcd_tab_op_mgrind_of_t_ops;
    OWNPTR gcd_tab_op_mgrind_of_t_owns;
    } gcd_tab_op_grindc_OWN_DEFN;
OWN_req gcd_tab_op_grindc_ownreqs = {sizeof(gcd_tab_op_grindc_OWN_DEFN), 1};


/**** BEGIN PROCEDURE grindc ****/

errcode gcd_tabOPgrindc(x, ch, pos)
CLUREF x;
CLUREF ch;
CLUREF pos;
    {
    struct {
        struct dbg_info *DBG_INFO;
        int DBG_LINE;
        errcode err;
        errcode ecode2;
        gcd_tab_op_grindc_OWN_DEFN *op_own_ptr;
        CLUREF tab;
        CLUREF buf;
        CLUREF why;
        CLUREF x;
        CLUREF ch;
        CLUREF pos;
        } locals;
    locals.tab.num = UNINIT;
    locals.buf.num = UNINIT;
    locals.why.num = UNINIT;
    locals.x.num = UNINIT;
    locals.ch.num = UNINIT;
    locals.pos.num = UNINIT;
    locals.DBG_INFO = dbg_info_gcd_tabOPgrindc;
    locals.x = x;
    locals.ch = ch;
    locals.pos = pos;
    locals.op_own_ptr = (gcd_tab_op_grindc_OWN_DEFN*) CUR_PROC_VAR.proc->op_owns;
        if (locals.op_own_ptr->grindc_own_init == 0) {
        add_parm_info_type(0, _obj_ops, _vec_of_t_reqs);
        find_type_instance(_vec_ops, 1, &_vec_ownreqs, &(_vec_of__obj_ops));
        add_parm_info_type(0, proctype_ops, sequence_of_t_reqs);
        find_type_instance(sequence_ops, 1, &sequence_ownreqs, &(sequence_of_proctype_ops));
        add_selector_info("a_bvec", 0, null_ops); 
        add_selector_info("b_vec", 1, proctype_ops); 
        add_selector_info("c_sel", 2, sequence_of_proctype_ops); 
        add_selector_info("d_cell", 3, sequence_of_proctype_ops); 
        add_selector_info("e_sell", 4, proctype_ops); 
        add_selector_info("f_adv", 5, _obj_ops); 
        add_selector_info("g_arp", 6, proctype_ops); 
        find_selector_ops("oneof", 7, &(oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_ops));
        add_parm_info_type(0, oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_ops, array_of_t_reqs);
        find_type_instance(array_ops, 1, &array_ownreqs, &(array_of_oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_ops));
        add_parm_info_type(0, _obj_ops, array_of_t_reqs);
        find_type_instance(array_ops, 1, &array_ownreqs, &(array_of__obj_ops));
        add_selector_info("bucks", 0, _vec_of__obj_ops); 
        add_selector_info("cnt", 1, int_ops); 
        add_selector_info("iq", 2, array_of_oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_ops); 
        add_selector_info("next", 3, int_ops); 
        add_selector_info("oq", 4, array_of__obj_ops); 
        find_selector_ops("record", 5, &(record_bucks_cnt_iq_next_oq_ops));
        add_parm_info_type(0, locals.op_own_ptr->t_ops, gcd_tab_op_mgrind_of_t_reqs);
        find_typeop_instance(gcd_tab_ops, gcd_tabOPmgrind, 1, 0, &gcd_tab_op_mgrind_ownreqs, &gcd_tab_ownreqs, &(locals.op_own_ptr->gcd_tab_op_mgrind_of_t_ops));
        }
        if (locals.op_own_ptr->grindc_own_init == 0) {
        locals.op_own_ptr->grindc_own_init = 1;
    }
    enter_proc(84);

  LINE(87);
    {
    locals.err = _chanOPset_access(locals.ch, locals.pos);
    if (locals.err != ERR_ok) goto ex_1;
    }
    goto end_1;
    ex_1:
        if (locals.err == ERR_not_possible) {signal(ERR_not_possible);}
        else {
            goto ex_0;}
    end_1:;

  LINE(89);
    {
        {CLUREF T_1_1;
        CLUREF T_1_2;
        CLUREF T_1_3;
        CLUREF T_1_4;
        CLUREF T_1_5;
        CLUREF T_1_6;
        RecordAlloc(5, T_1_1);
        T_1_1.vec->data[3]  = 0;
        locals.err = _gcOPcount(&T_1_2);
        if (locals.err != ERR_ok) goto ex_0;
        T_1_1.vec->data[1]  = T_1_2.num;
        locals.err = arrayOPnew(&T_1_3);
        if (locals.err != ERR_ok) goto ex_0;
        T_1_1.vec->data[4]  = T_1_3.num;
        locals.err = arrayOPnew(&T_1_4);
        if (locals.err != ERR_ok) goto ex_0;
        T_1_1.vec->data[2]  = T_1_4.num;
        T_1_5.num = 50000;
        locals.err = _vecOPcreate(T_1_5, &T_1_6);
        if (locals.err != ERR_ok) goto ex_0;
        T_1_1.vec->data[0]  = T_1_6.num;
        locals.tab.num = T_1_1.num;
        }
        }

  LINE(94);
    {
        {CLUREF T_1_1;
        CLUREF T_1_2;
        T_1_1.num = 1024;
        locals.err = _wordvecOPcreate(T_1_1, &T_1_2);
        if (locals.err != ERR_ok) goto ex_0;
        locals.buf.num = T_1_2.num;
        }
        }

  LINE(95);
    {
    locals.err = _eventOPdefer();
    if (locals.err != ERR_ok) goto ex_0;
    }

  LINE(96);
    {

  LINE(97);
        {
        generic_CLU_proc.type_owns = 0;
        generic_CLU_proc.op_owns = locals.op_own_ptr->gcd_tab_op_mgrind_of_t_ops->op_owns;
        generic_CLU_proc.proc = gcd_tabOPmgrind;
        CUR_PROC_VAR.proc = &generic_CLU_proc;
        locals.err = gcd_tabOPmgrind(locals.tab, locals.buf, locals.ch, locals.x);
        if (locals.err != ERR_ok) goto ex_2;
        }

  LINE(98);
        {
        CLUREF T_3_1;
        T_3_1.num = locals.tab.vec->data[3];
        locals.err = _wordvecOPstore(locals.buf, CLU_1, T_3_1);
        if (locals.err != ERR_ok) goto ex_2;
        }

  LINE(99);
        {
        CLUREF T_3_1;
        locals.err = intOPadd(locals.pos, CLU_4, &T_3_1);
        if (locals.err != ERR_ok) goto ex_2;
        locals.err = _chanOPset_access(locals.ch, T_3_1);
        if (locals.err != ERR_ok) goto ex_2;
        }

  LINE(100);
        {
        locals.err = _chanOPputw(locals.ch, locals.buf, CLU_1, CLU_4, CLU_0);
        if (locals.err != ERR_ok) goto ex_2;
        }
        }
        goto end_2;
        ex_2:
            if ((locals.err == ERR_not_possible)) {
            CLUREF why;
            locals.why.num = elist[0].num;

  LINE(102);
                {
                locals.err = _eventOPundefer();
                if (locals.err != ERR_ok) goto ex_0;
                }

  LINE(103);
                {
                elist[0] = locals.why;
                {signal (ERR_not_possible);}}
            }
            else {
                goto ex_0;
            }
        end_2:;

  LINE(105);
    {
    locals.err = _eventOPundefer();
    if (locals.err != ERR_ok) goto ex_0;
    }
    goto end_0;
    ex_0:
        {
            if (locals.err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(locals.err);
            {signal(ERR_failure);}
        }
    end_0: {signal(ERR_ok);}
    }

/**** END PROCEDURE grindc ****/

typedef struct {
    int hdr;
    int count;
    char *name;
    char *fname;
    bool is_iter;
    int is_parmd;
    int addr;
    int nargs;
    Vlist0 *vals;
    siglist1 *sigs;
    Vlist9 *locals;
    Vlist3 *owns;
    Vlist0 *ptowns;
    Vlist23 *popowns;
    Slist0 *type_formals;
    Slist1 *op_formals;
    } dbg_info_gcd_tabOPgrindc_actual;
static Vlist0 vals_gcd_tabOPgrindc = {0, 0};
static sig_desc1 sig_gcd_tabOPgrindc_1 = {0, 4, "not_possible", {0, 1
, { {0, 2, "", &string_ops}}}};
static siglist1 sigs_gcd_tabOPgrindc = {0, 1, (sig_desc*)&sig_gcd_tabOPgrindc_1};
static Vlist9 locals_gcd_tabOPgrindc = {0, 9,{ {0, 2, "err", &int_ops},  {0, 2, "ecode2", &int_ops},  {0, 2, "op_own_ptr", &int_ops},  {0, 2, "tab", &gcd_tab_ops},  {0, 2, "buf", &_wordvec_ops},  {0, 2, "why", &string_ops},  {0, 2, "x", zero_ops, "t_ops"},  {0, 2, "ch", &_chan_ops},  {0, 2, "pos", &int_ops}}
};
static Vlist23 popowns_gcd_tabOPgrindc = {0, 23,{ {0, 2, "gcd_tabOPgrindc_init", &int_ops}
, {0, 2, "_vec_of__obj_table", &NULL_OPS}, {0, 2, "_vec_of__obj_ops", &NULL_OPS}, {0, 2, "_vec_of__obj_ops", &NULL_OPS}, {0, 2, "_vec_of__obj_owns", &NULL_OPS}, {0, 2, "sequence_of_proctype_table", &NULL_OPS}, {0, 2, "sequence_of_proctype_ops", &NULL_OPS}, {0, 2, "sequence_of_proctype_ops", &NULL_OPS}, {0, 2, "sequence_of_proctype_owns", &NULL_OPS}, {0, 2, "oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_ops", &NULL_OPS}, {0, 2, "array_of_oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_table", &NULL_OPS}, {0, 2, "array_of_oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_ops", &NULL_OPS}, {0, 2, "array_of_oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_ops", &NULL_OPS}, {0, 2, "array_of_oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_owns", &NULL_OPS}, {0, 2, "array_of__obj_table", &NULL_OPS}, {0, 2, "array_of__obj_ops", &NULL_OPS}, {0, 2, "array_of__obj_ops", &NULL_OPS}, {0, 2, "array_of__obj_owns", &NULL_OPS}, {0, 2, "record_bucks_cnt_iq_next_oq_ops", &NULL_OPS}, {0, 2, "t_ops", &NULL_OPS}, {0, 2, "gcd_tab_op_mgrind_of_t_table", &NULL_OPS}, {0, 2, "gcd_tab_op_mgrind_of_t_ops", &NULL_OPS}, {0, 2, "gcd_tab_op_mgrind_of_t_owns", &NULL_OPS}}};
Slist0 tformals_gcd_tabOPgrindc = {0, 0};
Slist1 opformals_gcd_tabOPgrindc = {0, 1, "t"};
dbg_info_gcd_tabOPgrindc_actual dbg_info_gcd_tabOPgrindc_data = {0, 12, 
    "gcd_tabOPgrindc", "/common/pub/dcurtis-temp/pclu/lib/clu/gcd_tab.clu", 0, 1, (int)gcd_tabOPgrindc, 3, 
    &vals_gcd_tabOPgrindc, &sigs_gcd_tabOPgrindc, &locals_gcd_tabOPgrindc, &owns_gcd_tab, &NO_VALS, &popowns_gcd_tabOPgrindc, &NO_PARMS, &opformals_gcd_tabOPgrindc};
    struct dbg_info *dbg_info_gcd_tabOPgrindc = (struct dbg_info*)&dbg_info_gcd_tabOPgrindc_data;
extern struct dbg_info* dbg_info_gcd_tabOPgrindp;
#undef MY_TRACE_FLAG
#define MY_TRACE_FLAG gcd_tabOPgrindp_TRACE
int gcd_tabOPgrindp_TRACE;
extern OWN_req _obj_ownreqs;
struct OPS *_vec_of__obj_table;
struct OPS *_vec_of__obj_ops;
struct OPS *_vec_of__obj_ops;
OWNPTR _vec_of__obj_owns;
struct OPS *sequence_of_proctype_table;
struct OPS *sequence_of_proctype_ops;
struct OPS *sequence_of_proctype_ops;
OWNPTR sequence_of_proctype_owns;
struct OPS  *oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_ops;
struct OPS *array_of_oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_table;
struct OPS *array_of_oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_ops;
struct OPS *array_of_oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_ops;
OWNPTR array_of_oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_owns;
struct OPS *array_of__obj_table;
struct OPS *array_of__obj_ops;
struct OPS *array_of__obj_ops;
OWNPTR array_of__obj_owns;
struct OPS  *record_bucks_cnt_iq_next_oq_ops;

typedef struct {
    int grindp_own_init;
    gcd_tab_op_grindp_of_t_OPS *t_ops;
    struct OPS *gcd_tab_op_pgrind_of_t_table;
    struct OPS *gcd_tab_op_pgrind_of_t_ops;
    OWNPTR gcd_tab_op_pgrind_of_t_owns;
    struct OPS *gcd_tab_op_mgrind_of_t_table;
    struct OPS *gcd_tab_op_mgrind_of_t_ops;
    OWNPTR gcd_tab_op_mgrind_of_t_owns;
    } gcd_tab_op_grindp_OWN_DEFN;
OWN_req gcd_tab_op_grindp_ownreqs = {sizeof(gcd_tab_op_grindp_OWN_DEFN), 1};


/**** BEGIN PROCEDURE grindp ****/

errcode gcd_tabOPgrindp(x, ch)
CLUREF x;
CLUREF ch;
    {
    struct {
        struct dbg_info *DBG_INFO;
        int DBG_LINE;
        errcode err;
        errcode ecode2;
        gcd_tab_op_grindp_OWN_DEFN *op_own_ptr;
        CLUREF tab;
        CLUREF buf;
        CLUREF why;
        CLUREF x;
        CLUREF ch;
        } locals;
    locals.tab.num = UNINIT;
    locals.buf.num = UNINIT;
    locals.why.num = UNINIT;
    locals.x.num = UNINIT;
    locals.ch.num = UNINIT;
    locals.DBG_INFO = dbg_info_gcd_tabOPgrindp;
    locals.x = x;
    locals.ch = ch;
    locals.op_own_ptr = (gcd_tab_op_grindp_OWN_DEFN*) CUR_PROC_VAR.proc->op_owns;
        if (locals.op_own_ptr->grindp_own_init == 0) {
        add_parm_info_type(0, _obj_ops, _vec_of_t_reqs);
        find_type_instance(_vec_ops, 1, &_vec_ownreqs, &(_vec_of__obj_ops));
        add_parm_info_type(0, proctype_ops, sequence_of_t_reqs);
        find_type_instance(sequence_ops, 1, &sequence_ownreqs, &(sequence_of_proctype_ops));
        add_selector_info("a_bvec", 0, null_ops); 
        add_selector_info("b_vec", 1, proctype_ops); 
        add_selector_info("c_sel", 2, sequence_of_proctype_ops); 
        add_selector_info("d_cell", 3, sequence_of_proctype_ops); 
        add_selector_info("e_sell", 4, proctype_ops); 
        add_selector_info("f_adv", 5, _obj_ops); 
        add_selector_info("g_arp", 6, proctype_ops); 
        find_selector_ops("oneof", 7, &(oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_ops));
        add_parm_info_type(0, oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_ops, array_of_t_reqs);
        find_type_instance(array_ops, 1, &array_ownreqs, &(array_of_oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_ops));
        add_parm_info_type(0, _obj_ops, array_of_t_reqs);
        find_type_instance(array_ops, 1, &array_ownreqs, &(array_of__obj_ops));
        add_selector_info("bucks", 0, _vec_of__obj_ops); 
        add_selector_info("cnt", 1, int_ops); 
        add_selector_info("iq", 2, array_of_oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_ops); 
        add_selector_info("next", 3, int_ops); 
        add_selector_info("oq", 4, array_of__obj_ops); 
        find_selector_ops("record", 5, &(record_bucks_cnt_iq_next_oq_ops));
        add_parm_info_type(0, locals.op_own_ptr->t_ops, gcd_tab_op_pgrind_of_t_reqs);
        find_typeop_instance(gcd_tab_ops, gcd_tabOPpgrind, 1, 0, &gcd_tab_op_pgrind_ownreqs, &gcd_tab_ownreqs, &(locals.op_own_ptr->gcd_tab_op_pgrind_of_t_ops));
        add_parm_info_type(0, locals.op_own_ptr->t_ops, gcd_tab_op_mgrind_of_t_reqs);
        find_typeop_instance(gcd_tab_ops, gcd_tabOPmgrind, 1, 0, &gcd_tab_op_mgrind_ownreqs, &gcd_tab_ownreqs, &(locals.op_own_ptr->gcd_tab_op_mgrind_of_t_ops));
        }
        if (locals.op_own_ptr->grindp_own_init == 0) {
        locals.op_own_ptr->grindp_own_init = 1;
    }
    enter_proc(109);

  LINE(111);
    {
        {CLUREF T_1_1;
        CLUREF T_1_2;
        CLUREF T_1_3;
        CLUREF T_1_4;
        CLUREF T_1_5;
        CLUREF T_1_6;
        RecordAlloc(5, T_1_1);
        T_1_1.vec->data[3]  = 0;
        locals.err = _gcOPcount(&T_1_2);
        if (locals.err != ERR_ok) goto ex_0;
        T_1_1.vec->data[1]  = T_1_2.num;
        locals.err = arrayOPnew(&T_1_3);
        if (locals.err != ERR_ok) goto ex_0;
        T_1_1.vec->data[4]  = T_1_3.num;
        locals.err = arrayOPnew(&T_1_4);
        if (locals.err != ERR_ok) goto ex_0;
        T_1_1.vec->data[2]  = T_1_4.num;
        T_1_5.num = 50000;
        locals.err = _vecOPcreate(T_1_5, &T_1_6);
        if (locals.err != ERR_ok) goto ex_0;
        T_1_1.vec->data[0]  = T_1_6.num;
        locals.tab.num = T_1_1.num;
        }
        }

  LINE(116);
    {
        {CLUREF T_1_1;
        CLUREF T_1_2;
        T_1_1.num = 1024;
        locals.err = _wordvecOPcreate(T_1_1, &T_1_2);
        if (locals.err != ERR_ok) goto ex_0;
        locals.buf.num = T_1_2.num;
        }
        }

  LINE(117);
    {
    locals.err = _eventOPdefer();
    if (locals.err != ERR_ok) goto ex_0;
    }

  LINE(118);
    {

  LINE(119);
        {
        generic_CLU_proc.type_owns = 0;
        generic_CLU_proc.op_owns = locals.op_own_ptr->gcd_tab_op_pgrind_of_t_ops->op_owns;
        generic_CLU_proc.proc = gcd_tabOPpgrind;
        CUR_PROC_VAR.proc = &generic_CLU_proc;
        locals.err = gcd_tabOPpgrind(locals.tab, locals.x);
        if (locals.err != ERR_ok) goto ex_1;
        }

  LINE(120);
        {
        CLUREF T_3_1;
        T_3_1.num = locals.tab.vec->data[3];
        locals.err = _wordvecOPstore(locals.buf, CLU_2, T_3_1);
        if (locals.err != ERR_ok) goto ex_1;
        }

  LINE(121);
        {
        locals.tab.vec->data[3]  = 0;
        }

  LINE(122);
        {
        generic_CLU_proc.type_owns = 0;
        generic_CLU_proc.op_owns = locals.op_own_ptr->gcd_tab_op_mgrind_of_t_ops->op_owns;
        generic_CLU_proc.proc = gcd_tabOPmgrind;
        CUR_PROC_VAR.proc = &generic_CLU_proc;
        locals.err = gcd_tabOPmgrind(locals.tab, locals.buf, locals.ch, locals.x);
        if (locals.err != ERR_ok) goto ex_1;
        }
        }
        goto end_1;
        ex_1:
            if ((locals.err == ERR_not_possible)) {
            CLUREF why;
            locals.why.num = elist[0].num;

  LINE(124);
                {
                locals.err = _eventOPundefer();
                if (locals.err != ERR_ok) goto ex_0;
                }

  LINE(125);
                {
                elist[0] = locals.why;
                {signal (ERR_not_possible);}}
            }
            else {
                goto ex_0;
            }
        end_1:;

  LINE(127);
    {
    locals.err = _eventOPundefer();
    if (locals.err != ERR_ok) goto ex_0;
    }
    goto end_0;
    ex_0:
        {
            if (locals.err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(locals.err);
            {signal(ERR_failure);}
        }
    end_0: {signal(ERR_ok);}
    }

/**** END PROCEDURE grindp ****/

typedef struct {
    int hdr;
    int count;
    char *name;
    char *fname;
    bool is_iter;
    int is_parmd;
    int addr;
    int nargs;
    Vlist0 *vals;
    siglist1 *sigs;
    Vlist8 *locals;
    Vlist3 *owns;
    Vlist0 *ptowns;
    Vlist26 *popowns;
    Slist0 *type_formals;
    Slist1 *op_formals;
    } dbg_info_gcd_tabOPgrindp_actual;
static Vlist0 vals_gcd_tabOPgrindp = {0, 0};
static sig_desc1 sig_gcd_tabOPgrindp_1 = {0, 4, "not_possible", {0, 1
, { {0, 2, "", &string_ops}}}};
static siglist1 sigs_gcd_tabOPgrindp = {0, 1, (sig_desc*)&sig_gcd_tabOPgrindp_1};
static Vlist8 locals_gcd_tabOPgrindp = {0, 8,{ {0, 2, "err", &int_ops},  {0, 2, "ecode2", &int_ops},  {0, 2, "op_own_ptr", &int_ops},  {0, 2, "tab", &gcd_tab_ops},  {0, 2, "buf", &_wordvec_ops},  {0, 2, "why", &string_ops},  {0, 2, "x", zero_ops, "t_ops"},  {0, 2, "ch", &_chan_ops}}
};
static Vlist26 popowns_gcd_tabOPgrindp = {0, 26,{ {0, 2, "gcd_tabOPgrindp_init", &int_ops}
, {0, 2, "_vec_of__obj_table", &NULL_OPS}, {0, 2, "_vec_of__obj_ops", &NULL_OPS}, {0, 2, "_vec_of__obj_ops", &NULL_OPS}, {0, 2, "_vec_of__obj_owns", &NULL_OPS}, {0, 2, "sequence_of_proctype_table", &NULL_OPS}, {0, 2, "sequence_of_proctype_ops", &NULL_OPS}, {0, 2, "sequence_of_proctype_ops", &NULL_OPS}, {0, 2, "sequence_of_proctype_owns", &NULL_OPS}, {0, 2, "oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_ops", &NULL_OPS}, {0, 2, "array_of_oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_table", &NULL_OPS}, {0, 2, "array_of_oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_ops", &NULL_OPS}, {0, 2, "array_of_oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_ops", &NULL_OPS}, {0, 2, "array_of_oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_owns", &NULL_OPS}, {0, 2, "array_of__obj_table", &NULL_OPS}, {0, 2, "array_of__obj_ops", &NULL_OPS}, {0, 2, "array_of__obj_ops", &NULL_OPS}, {0, 2, "array_of__obj_owns", &NULL_OPS}, {0, 2, "record_bucks_cnt_iq_next_oq_ops", &NULL_OPS}, {0, 2, "t_ops", &NULL_OPS}, {0, 2, "gcd_tab_op_pgrind_of_t_table", &NULL_OPS}, {0, 2, "gcd_tab_op_pgrind_of_t_ops", &NULL_OPS}, {0, 2, "gcd_tab_op_pgrind_of_t_owns", &NULL_OPS}, {0, 2, "gcd_tab_op_mgrind_of_t_table", &NULL_OPS}, {0, 2, "gcd_tab_op_mgrind_of_t_ops", &NULL_OPS}, {0, 2, "gcd_tab_op_mgrind_of_t_owns", &NULL_OPS}}};
Slist0 tformals_gcd_tabOPgrindp = {0, 0};
Slist1 opformals_gcd_tabOPgrindp = {0, 1, "t"};
dbg_info_gcd_tabOPgrindp_actual dbg_info_gcd_tabOPgrindp_data = {0, 12, 
    "gcd_tabOPgrindp", "/common/pub/dcurtis-temp/pclu/lib/clu/gcd_tab.clu", 0, 1, (int)gcd_tabOPgrindp, 2, 
    &vals_gcd_tabOPgrindp, &sigs_gcd_tabOPgrindp, &locals_gcd_tabOPgrindp, &owns_gcd_tab, &NO_VALS, &popowns_gcd_tabOPgrindp, &NO_PARMS, &opformals_gcd_tabOPgrindp};
    struct dbg_info *dbg_info_gcd_tabOPgrindp = (struct dbg_info*)&dbg_info_gcd_tabOPgrindp_data;
extern struct dbg_info* dbg_info_gcd_tabOPpgrind;
#undef MY_TRACE_FLAG
#define MY_TRACE_FLAG gcd_tabOPpgrind_TRACE
int gcd_tabOPpgrind_TRACE;
extern errcode gcd_tabOPpgrind_IB_1();
extern errcode gcd_tabOPpgrind_IB_2();
extern errcode gcd_tabOPpgrind_IB_3();
struct OPS *_vec_of__obj_table;
struct OPS *_vec_of__obj_ops;
struct OPS *_vec_of__obj_ops;
OWNPTR _vec_of__obj_owns;
struct OPS *sequence_of_proctype_table;
struct OPS *sequence_of_proctype_ops;
struct OPS *sequence_of_proctype_ops;
OWNPTR sequence_of_proctype_owns;
struct OPS  *oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_ops;
struct OPS *array_of_oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_table;
struct OPS *array_of_oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_ops;
struct OPS *array_of_oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_ops;
OWNPTR array_of_oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_owns;
struct OPS *array_of__obj_table;
struct OPS *array_of__obj_ops;
struct OPS *array_of__obj_ops;
OWNPTR array_of__obj_owns;
struct OPS  *record_bucks_cnt_iq_next_oq_ops;
struct OPS *sequence_of__obj_table;
struct OPS *sequence_of__obj_ops;
struct OPS *sequence_of__obj_ops;
OWNPTR sequence_of__obj_owns;
struct OPS *_tagcell_of__obj_table;
struct OPS *_tagcell_of__obj_ops;
struct OPS *_tagcell_of__obj_ops;
OWNPTR _tagcell_of__obj_owns;
struct OPS *_adv_of__obj_table;
struct OPS *_adv_of__obj_ops;
struct OPS *_adv_of__obj_ops;
OWNPTR _adv_of__obj_owns;

typedef struct {
    int pgrind_own_init;
    gcd_tab_op_pgrind_of_t_OPS *t_ops;
    } gcd_tab_op_pgrind_OWN_DEFN;
OWN_req gcd_tab_op_pgrind_ownreqs = {sizeof(gcd_tab_op_pgrind_OWN_DEFN), 1};


/**** BEGIN PROCEDURE pgrind ****/

errcode gcd_tabOPpgrind(tab, x)
CLUREF tab;
CLUREF x;
    {
    struct {
        struct dbg_info *DBG_INFO;
        int DBG_LINE;
        errcode err;
        errcode ecode2;
        gcd_tab_op_pgrind_OWN_DEFN *op_own_ptr;
        CLUREF iq;
        CLUREF oq;
        CLUREF idx;
        CLUREF p;
        CLUREF v;
        CLUREF e;
        CLUREF l;
        CLUREF i;
        CLUREF inf;
        CLUREF a;
        CLUREF tab;
        CLUREF x;
        } locals;
    locals.iq.num = UNINIT;
    locals.oq.num = UNINIT;
    locals.idx.num = UNINIT;
    locals.p.num = UNINIT;
    locals.v.num = UNINIT;
    locals.e.num = UNINIT;
    locals.l.num = UNINIT;
    locals.i.num = UNINIT;
    locals.inf.num = UNINIT;
    locals.a.num = UNINIT;
    locals.tab.num = UNINIT;
    locals.x.num = UNINIT;
    locals.DBG_INFO = dbg_info_gcd_tabOPpgrind;
    locals.tab = tab;
    locals.x = x;
    locals.op_own_ptr = (gcd_tab_op_pgrind_OWN_DEFN*) CUR_PROC_VAR.proc->op_owns;
        if (locals.op_own_ptr->pgrind_own_init == 0) {
        add_parm_info_type(0, _obj_ops, _vec_of_t_reqs);
        find_type_instance(_vec_ops, 1, &_vec_ownreqs, &(_vec_of__obj_ops));
        add_parm_info_type(0, proctype_ops, sequence_of_t_reqs);
        find_type_instance(sequence_ops, 1, &sequence_ownreqs, &(sequence_of_proctype_ops));
        add_selector_info("a_bvec", 0, null_ops); 
        add_selector_info("b_vec", 1, proctype_ops); 
        add_selector_info("c_sel", 2, sequence_of_proctype_ops); 
        add_selector_info("d_cell", 3, sequence_of_proctype_ops); 
        add_selector_info("e_sell", 4, proctype_ops); 
        add_selector_info("f_adv", 5, _obj_ops); 
        add_selector_info("g_arp", 6, proctype_ops); 
        find_selector_ops("oneof", 7, &(oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_ops));
        add_parm_info_type(0, oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_ops, array_of_t_reqs);
        find_type_instance(array_ops, 1, &array_ownreqs, &(array_of_oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_ops));
        add_parm_info_type(0, _obj_ops, array_of_t_reqs);
        find_type_instance(array_ops, 1, &array_ownreqs, &(array_of__obj_ops));
        add_selector_info("bucks", 0, _vec_of__obj_ops); 
        add_selector_info("cnt", 1, int_ops); 
        add_selector_info("iq", 2, array_of_oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_ops); 
        add_selector_info("next", 3, int_ops); 
        add_selector_info("oq", 4, array_of__obj_ops); 
        find_selector_ops("record", 5, &(record_bucks_cnt_iq_next_oq_ops));
        add_parm_info_type(0, _obj_ops, sequence_of_t_reqs);
        find_type_instance(sequence_ops, 1, &sequence_ownreqs, &(sequence_of__obj_ops));
        add_parm_info_type(0, _obj_ops, _tagcell_of_t_reqs);
        find_type_instance(_tagcell_ops, 1, &_tagcell_ownreqs, &(_tagcell_of__obj_ops));
        add_parm_info_type(0, _obj_ops, _adv_of_t_reqs);
        find_type_instance(_adv_ops, 1, &_adv_ownreqs, &(_adv_of__obj_ops));
        }
        if (locals.op_own_ptr->pgrind_own_init == 0) {
        locals.op_own_ptr->pgrind_own_init = 1;
    }
    enter_proc(131);

  LINE(133);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_2.proc = locals.op_own_ptr->t_ops->_gcd.fcn;
    CUR_PROC_VAR = T_1_2;
    locals.err = T_1_2.proc->proc(locals.x, locals.tab, &T_1_1);
    if (locals.err != ERR_ok) goto ex_0;
    }

  LINE(134);
    {
        {CLUREF T_1_1;
        T_1_1.num = locals.tab.vec->data[2];
        locals.iq.num = T_1_1.num;
        }
        }

  LINE(135);
    {
        {CLUREF T_1_1;
        T_1_1.num = locals.tab.vec->data[4];
        locals.oq.num = T_1_1.num;
        }
        }

  LINE(136);
    {
        {locals.idx.num = 0;
        }
        }

  LINE(137);
    for (;;) {
        if (true != true) { break; }

  LINE(138);
        {
        CLUREF T_3_1;
        locals.err = intOPadd(locals.idx, CLU_1, &T_3_1);
        if (locals.err != ERR_ok) goto ex_1;
        locals.idx.num = T_3_1.num;
        }

  LINE(139);
        {
        CLUREF T_3_1;
        locals.err = arrayOPfetch(locals.iq, locals.idx, &T_3_1);
        if (locals.err != ERR_ok) goto ex_1;
        switch (T_3_1.cell->tag) {
        case 1: 
             {
                break;
                }
        case 2: 
             {CLUREF T_3_2;
            T_3_2.num = T_3_1.cell->value;
            locals.p.num = T_3_2.num;

  LINE(142);
                {
                    {CLUREF T_4_1;
                    CLUREF T_4_2;
                    locals.err = arrayOPfetch(locals.oq, locals.idx, &T_4_1);
                    if (locals.err != ERR_ok) goto ex_1;
                    T_4_2.num = T_4_1.num;
                    locals.v.num = T_4_2.num;
                    }
                    }

  LINE(143);
                {
                    locals.err = sequenceOPelements(locals.v, gcd_tabOPpgrind_IB_1, &locals, &locals.ecode2);
                    if (locals.err == ERR_iterbodyreturn) {
                    signal(ERR_ok);}
                    if (locals.err == ERR_iterbodysignal) {signal(locals.ecode2);}
                    if (locals.err == ERR_break) locals.err = ERR_ok;
                    if (locals.err == ERR_iterbodyexit) locals.err = locals.ecode2;
                    if (locals.err != ERR_ok) goto ex_1;
                    }
                break;
                }
        case 3: 
             {CLUREF T_3_3;
            T_3_3.num = T_3_1.cell->value;
            locals.l.num = T_3_3.num;

  LINE(147);
                {
                    {CLUREF T_4_1;
                    CLUREF T_4_2;
                    locals.err = arrayOPfetch(locals.oq, locals.idx, &T_4_1);
                    if (locals.err != ERR_ok) goto ex_1;
                    T_4_2.num = T_4_1.num;
                    locals.v.num = T_4_2.num;
                    }
                    }

  LINE(148);
                {
                    locals.err = sequenceOPindexes(locals.v, gcd_tabOPpgrind_IB_2, &locals, &locals.ecode2);
                    if (locals.err == ERR_iterbodyreturn) {
                    signal(ERR_ok);}
                    if (locals.err == ERR_iterbodysignal) {signal(locals.ecode2);}
                    if (locals.err == ERR_break) locals.err = ERR_ok;
                    if (locals.err == ERR_iterbodyexit) locals.err = locals.ecode2;
                    if (locals.err != ERR_ok) goto ex_1;
                    }
                break;
                }
        case 4: 
             {CLUREF T_3_4;
            T_3_4.num = T_3_1.cell->value;
            locals.l.num = T_3_4.num;

  LINE(152);
                {
                    {CLUREF T_4_1;
                    CLUREF T_4_2;
                    CLUREF T_4_3;
                    CLUREF T_4_4;
                    locals.err = arrayOPfetch(locals.oq, locals.idx, &T_4_1);
                    if (locals.err != ERR_ok) goto ex_1;
                    T_4_2.num = T_4_1.num;
                    generic_CLU_proc.type_owns = _tagcell_of__obj_ops->type_owns;
                    generic_CLU_proc.proc = _tagcellOPget;
                    CUR_PROC_VAR.proc = &generic_CLU_proc;
                    locals.err = _tagcellOPget(T_4_2, &T_4_3, &T_4_4);
                    if (locals.err != ERR_ok) goto ex_1;
                    locals.i.num = T_4_3.num;
                    locals.e.num = T_4_4.num;
                    }
                    }

  LINE(153);
                {
                CLUREF T_4_1;
                CLUREF T_4_2;
                locals.err = sequenceOPfetch(locals.l, locals.i, &T_4_2);
                if (locals.err != ERR_ok) goto ex_1;
                CUR_PROC_VAR = T_4_2;
                locals.err = T_4_2.proc->proc(locals.e, locals.tab, &T_4_1);
                if (locals.err != ERR_ok) goto ex_1;
                }
                break;
                }
        case 5: 
             {CLUREF T_3_5;
            T_3_5.num = T_3_1.cell->value;
            locals.p.num = T_3_5.num;

  LINE(155);
                {
                    {CLUREF T_4_1;
                    CLUREF T_4_2;
                    CLUREF T_4_3;
                    CLUREF T_4_4;
                    locals.err = arrayOPfetch(locals.oq, locals.idx, &T_4_1);
                    if (locals.err != ERR_ok) goto ex_1;
                    T_4_2.num = T_4_1.num;
                    generic_CLU_proc.type_owns = _tagcell_of__obj_ops->type_owns;
                    generic_CLU_proc.proc = _tagcellOPget;
                    CUR_PROC_VAR.proc = &generic_CLU_proc;
                    locals.err = _tagcellOPget(T_4_2, &T_4_3, &T_4_4);
                    if (locals.err != ERR_ok) goto ex_1;
                    locals.i.num = T_4_3.num;
                    locals.e.num = T_4_4.num;
                    }
                    }

  LINE(156);
                {
                CLUREF T_4_1;
                CUR_PROC_VAR = locals.p;
                locals.err = locals.p.proc->proc(locals.e, locals.tab, &T_4_1);
                if (locals.err != ERR_ok) goto ex_1;
                }
                break;
                }
        case 6: 
             {CLUREF T_3_6;
            T_3_6.num = T_3_1.cell->value;
            locals.inf.num = T_3_6.num;

  LINE(158);
                {
                    {CLUREF T_4_1;
                    CLUREF T_4_2;
                    locals.err = arrayOPfetch(locals.oq, locals.idx, &T_4_1);
                    if (locals.err != ERR_ok) goto ex_1;
                    T_4_2.num = T_4_1.num;
                    locals.a.num = T_4_2.num;
                    }
                    }

  LINE(159);
                {
                    {CLUREF T_4_1;
                    generic_CLU_proc.type_owns = _adv_of__obj_ops->type_owns;
                    generic_CLU_proc.proc = _advOPget_vector;
                    CUR_PROC_VAR.proc = &generic_CLU_proc;
                    locals.err = _advOPget_vector(locals.a, &T_4_1);
                    if (locals.err != ERR_ok) goto ex_1;
                    locals.v.num = T_4_1.num;
                    }
                    }

  LINE(160);
                {
                CLUREF T_4_1;
                CLUREF T_4_2;
                CLUREF T_4_3;
                CLUREF T_4_4;
                CLUREF T_4_5;
                CLUREF T_4_6;
                locals.err = _vecOPsize(locals.v, &T_4_1);
                if (locals.err != ERR_ok) goto ex_1;
                locals.err = intOPadd(T_4_1, CLU_1, &T_4_2);
                if (locals.err != ERR_ok) goto ex_1;
                locals.err = intOPmul(CLU_4, T_4_2, &T_4_3);
                if (locals.err != ERR_ok) goto ex_1;
                T_4_4.num = locals.inf.num;
                T_4_5.num = locals.v.num;
                locals.err = gcd_tabOPinsert(locals.tab, T_4_3, T_4_4, T_4_5, &T_4_6);
                if (locals.err != ERR_ok) goto ex_1;
                }
                break;
                }
        case 7: 
             {CLUREF T_3_7;
            T_3_7.num = T_3_1.cell->value;
            locals.p.num = T_3_7.num;

  LINE(163);
                {
                    {CLUREF T_4_1;
                    CLUREF T_4_2;
                    locals.err = arrayOPfetch(locals.oq, locals.idx, &T_4_1);
                    if (locals.err != ERR_ok) goto ex_1;
                    T_4_2.num = T_4_1.num;
                    locals.v.num = T_4_2.num;
                    }
                    }

  LINE(164);
                {
                    locals.err = sequenceOPelements(locals.v, gcd_tabOPpgrind_IB_3, &locals, &locals.ecode2);
                    if (locals.err == ERR_iterbodyreturn) {
                    signal(ERR_ok);}
                    if (locals.err == ERR_iterbodysignal) {signal(locals.ecode2);}
                    if (locals.err == ERR_break) locals.err = ERR_ok;
                    if (locals.err == ERR_iterbodyexit) locals.err = locals.ecode2;
                    if (locals.err != ERR_ok) goto ex_1;
                    }
                break;
                }
        }
        }
        }
        end_while_1:;
        goto end_1;
        ex_1:
            if ((locals.err == ERR_bounds)) {
            }
            else {
                goto ex_0;
            }
        end_1:;
    goto end_0;
    ex_0:
        {
            if (locals.err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(locals.err);
            {signal(ERR_failure);}
        }
    end_0: {signal(ERR_ok);}
    }

/**** END PROCEDURE pgrind ****/

extern struct OPS *sequence_of__obj_ops;
extern struct OPS *_adv_of__obj_ops;
typedef struct {
    int hdr;
    int count;
    char *name;
    char *fname;
    bool is_iter;
    int is_parmd;
    int addr;
    int nargs;
    Vlist0 *vals;
    siglist0 *sigs;
    Vlist15 *locals;
    Vlist3 *owns;
    Vlist0 *ptowns;
    Vlist32 *popowns;
    Slist0 *type_formals;
    Slist1 *op_formals;
    } dbg_info_gcd_tabOPpgrind_actual;
static Vlist0 vals_gcd_tabOPpgrind = {0, 0};
static siglist0 sigs_gcd_tabOPpgrind = {0, 0};
static Vlist15 locals_gcd_tabOPpgrind = {0, 15,{ {0, 2, "err", &int_ops},  {0, 2, "ecode2", &int_ops},  {0, 2, "op_own_ptr", &int_ops},  {0, 2, "iq", &array_of_oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_ops},  {0, 2, "oq", &array_of__obj_ops},  {0, 2, "idx", &int_ops},  {0, 2, "p", m1_ops},  {0, 2, "v", &sequence_of__obj_ops},  {0, 2, "e", &_obj_ops},  {0, 2, "l", &sequence_of_proctype_ops},  {0, 2, "i", &int_ops},  {0, 2, "inf", &_obj_ops},  {0, 2, "a", &_adv_of__obj_ops},  {0, 2, "tab", &gcd_tab_ops},  {0, 2, "x", zero_ops, "t_ops"}}
};
static Vlist32 popowns_gcd_tabOPpgrind = {0, 32,{ {0, 2, "gcd_tabOPpgrind_init", &int_ops}
, {0, 2, "_vec_of__obj_table", &NULL_OPS}, {0, 2, "_vec_of__obj_ops", &NULL_OPS}, {0, 2, "_vec_of__obj_ops", &NULL_OPS}, {0, 2, "_vec_of__obj_owns", &NULL_OPS}, {0, 2, "sequence_of_proctype_table", &NULL_OPS}, {0, 2, "sequence_of_proctype_ops", &NULL_OPS}, {0, 2, "sequence_of_proctype_ops", &NULL_OPS}, {0, 2, "sequence_of_proctype_owns", &NULL_OPS}, {0, 2, "oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_ops", &NULL_OPS}, {0, 2, "array_of_oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_table", &NULL_OPS}, {0, 2, "array_of_oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_ops", &NULL_OPS}, {0, 2, "array_of_oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_ops", &NULL_OPS}, {0, 2, "array_of_oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_owns", &NULL_OPS}, {0, 2, "array_of__obj_table", &NULL_OPS}, {0, 2, "array_of__obj_ops", &NULL_OPS}, {0, 2, "array_of__obj_ops", &NULL_OPS}, {0, 2, "array_of__obj_owns", &NULL_OPS}, {0, 2, "record_bucks_cnt_iq_next_oq_ops", &NULL_OPS}, {0, 2, "sequence_of__obj_table", &NULL_OPS}, {0, 2, "sequence_of__obj_ops", &NULL_OPS}, {0, 2, "sequence_of__obj_ops", &NULL_OPS}, {0, 2, "sequence_of__obj_owns", &NULL_OPS}, {0, 2, "_tagcell_of__obj_table", &NULL_OPS}, {0, 2, "_tagcell_of__obj_ops", &NULL_OPS}, {0, 2, "_tagcell_of__obj_ops", &NULL_OPS}, {0, 2, "_tagcell_of__obj_owns", &NULL_OPS}, {0, 2, "_adv_of__obj_table", &NULL_OPS}, {0, 2, "_adv_of__obj_ops", &NULL_OPS}, {0, 2, "_adv_of__obj_ops", &NULL_OPS}, {0, 2, "_adv_of__obj_owns", &NULL_OPS}, {0, 2, "t_ops", &NULL_OPS}}};
Slist0 tformals_gcd_tabOPpgrind = {0, 0};
Slist1 opformals_gcd_tabOPpgrind = {0, 1, "t"};
dbg_info_gcd_tabOPpgrind_actual dbg_info_gcd_tabOPpgrind_data = {0, 12, 
    "gcd_tabOPpgrind", "/common/pub/dcurtis-temp/pclu/lib/clu/gcd_tab.clu", 0, 1, (int)gcd_tabOPpgrind, 2, 
    &vals_gcd_tabOPpgrind, &sigs_gcd_tabOPpgrind, &locals_gcd_tabOPpgrind, &owns_gcd_tab, &NO_VALS, &popowns_gcd_tabOPpgrind, &NO_PARMS, &opformals_gcd_tabOPpgrind};
    struct dbg_info *dbg_info_gcd_tabOPpgrind = (struct dbg_info*)&dbg_info_gcd_tabOPpgrind_data;

/**** BEGIN ITERATOR BODIES for pgrind ****/

errcode gcd_tabOPpgrind_IB_1(iv_1, locals, iecode)
errcode *iecode;
CLUREF iv_1;
struct {
    struct dbg_info *DBG_INFO;
    int DBG_LINE;
    errcode err;
    errcode ecode2;
gcd_tab_op_pgrind_OWN_DEFN *op_own_ptr;
    CLUREF iq;
    CLUREF oq;
    CLUREF idx;
    CLUREF p;
    CLUREF v;
    CLUREF e;
    CLUREF l;
    CLUREF i;
    CLUREF inf;
    CLUREF a;
    CLUREF tab;
    CLUREF x;
    } *locals;
{
    locals->e.num = iv_1.num;
    enter_iter_body_proc(144);

  FB_LINE(144);
    {
    CLUREF T_1_1;
    CUR_PROC_VAR = locals->p;
    locals->err = locals->p.proc->proc(locals->e, locals->tab, &T_1_1);
    if (locals->err != ERR_ok) goto ex_0;
    }
    {signal(ERR_ok);}
    ex_0:
        {
            *iecode = locals->err;
            {signal(ERR_iterbodyexit);}}
    end_0: {signal(ERR_ok);}
    }/* end gcd_tabOPpgrind_IB_1 */
errcode gcd_tabOPpgrind_IB_2(iv_1, locals, iecode)
errcode *iecode;
CLUREF iv_1;
struct {
    struct dbg_info *DBG_INFO;
    int DBG_LINE;
    errcode err;
    errcode ecode2;
gcd_tab_op_pgrind_OWN_DEFN *op_own_ptr;
    CLUREF iq;
    CLUREF oq;
    CLUREF idx;
    CLUREF p;
    CLUREF v;
    CLUREF e;
    CLUREF l;
    CLUREF i;
    CLUREF inf;
    CLUREF a;
    CLUREF tab;
    CLUREF x;
    } *locals;
{
    locals->i.num = iv_1.num;
    enter_iter_body_proc(149);

  FB_LINE(149);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    locals->err = sequenceOPfetch(locals->v, locals->i, &T_1_1);
    if (locals->err != ERR_ok) goto ex_0;
    locals->err = sequenceOPfetch(locals->l, locals->i, &T_1_3);
    if (locals->err != ERR_ok) goto ex_0;
    CUR_PROC_VAR = T_1_3;
    locals->err = T_1_3.proc->proc(T_1_1, locals->tab, &T_1_2);
    if (locals->err != ERR_ok) goto ex_0;
    }
    {signal(ERR_ok);}
    ex_0:
        {
            *iecode = locals->err;
            {signal(ERR_iterbodyexit);}}
    end_0: {signal(ERR_ok);}
    }/* end gcd_tabOPpgrind_IB_2 */
errcode gcd_tabOPpgrind_IB_3(iv_1, locals, iecode)
errcode *iecode;
CLUREF iv_1;
struct {
    struct dbg_info *DBG_INFO;
    int DBG_LINE;
    errcode err;
    errcode ecode2;
gcd_tab_op_pgrind_OWN_DEFN *op_own_ptr;
    CLUREF iq;
    CLUREF oq;
    CLUREF idx;
    CLUREF p;
    CLUREF v;
    CLUREF e;
    CLUREF l;
    CLUREF i;
    CLUREF inf;
    CLUREF a;
    CLUREF tab;
    CLUREF x;
    } *locals;
{
    locals->e.num = iv_1.num;
    enter_iter_body_proc(165);

  FB_LINE(165);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    T_1_1.num = nil;
    T_1_2.num = (locals->e.num == T_1_1.num)? true : false;
    T_1_3.num = T_1_2.num ^ 1;
    if (T_1_3.num == true) {

  FB_LINE(166);
        {
        CLUREF T_2_1;
        CUR_PROC_VAR = locals->p;
        locals->err = locals->p.proc->proc(locals->e, locals->tab, &T_2_1);
        if (locals->err != ERR_ok) goto ex_0;
        }
        }
        }/* end if */
    {signal(ERR_ok);}
    ex_0:
        {
            *iecode = locals->err;
            {signal(ERR_iterbodyexit);}}
    end_0: {signal(ERR_ok);}
    }/* end gcd_tabOPpgrind_IB_3 */

/**** END ITERATOR BODIES for pgrind ****/

extern struct dbg_info* dbg_info_gcd_tabOPmgrind;
#undef MY_TRACE_FLAG
#define MY_TRACE_FLAG gcd_tabOPmgrind_TRACE
int gcd_tabOPmgrind_TRACE;
extern errcode gcd_tabOPmgrind_IB_1();
extern errcode gcd_tabOPmgrind_IB_2();
extern errcode gcd_tabOPmgrind_IB_3();
struct OPS *_vec_of__obj_table;
struct OPS *_vec_of__obj_ops;
struct OPS *_vec_of__obj_ops;
OWNPTR _vec_of__obj_owns;
struct OPS *sequence_of_proctype_table;
struct OPS *sequence_of_proctype_ops;
struct OPS *sequence_of_proctype_ops;
OWNPTR sequence_of_proctype_owns;
struct OPS  *oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_ops;
struct OPS *array_of_oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_table;
struct OPS *array_of_oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_ops;
struct OPS *array_of_oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_ops;
OWNPTR array_of_oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_owns;
struct OPS *array_of__obj_table;
struct OPS *array_of__obj_ops;
struct OPS *array_of__obj_ops;
OWNPTR array_of__obj_owns;
struct OPS  *record_bucks_cnt_iq_next_oq_ops;
struct OPS *sequence_of__obj_table;
struct OPS *sequence_of__obj_ops;
struct OPS *sequence_of__obj_ops;
OWNPTR sequence_of__obj_owns;
struct OPS *_tagcell_of__obj_table;
struct OPS *_tagcell_of__obj_ops;
struct OPS *_tagcell_of__obj_ops;
OWNPTR _tagcell_of__obj_owns;
struct OPS *_adv_of__obj_table;
struct OPS *_adv_of__obj_ops;
struct OPS *_adv_of__obj_ops;
OWNPTR _adv_of__obj_owns;

typedef struct {
    int mgrind_own_init;
    gcd_tab_op_mgrind_of_t_OPS *t_ops;
    } gcd_tab_op_mgrind_OWN_DEFN;
OWN_req gcd_tab_op_mgrind_ownreqs = {sizeof(gcd_tab_op_mgrind_OWN_DEFN), 1};


/**** BEGIN PROCEDURE mgrind ****/

errcode gcd_tabOPmgrind(tab, buf, ch, x)
CLUREF tab;
CLUREF buf;
CLUREF ch;
CLUREF x;
    {
    struct {
        struct dbg_info *DBG_INFO;
        int DBG_LINE;
        errcode err;
        errcode ecode2;
        gcd_tab_op_mgrind_OWN_DEFN *op_own_ptr;
        CLUREF val;
        CLUREF iq;
        CLUREF oq;
        CLUREF b;
        CLUREF z;
        CLUREF p;
        CLUREF v;
        CLUREF e;
        CLUREF l;
        CLUREF i;
        CLUREF inf;
        CLUREF a;
        CLUREF tab;
        CLUREF buf;
        CLUREF ch;
        CLUREF x;
        } locals;
    locals.val.num = UNINIT;
    locals.iq.num = UNINIT;
    locals.oq.num = UNINIT;
    locals.b.num = UNINIT;
    locals.z.num = UNINIT;
    locals.p.num = UNINIT;
    locals.v.num = UNINIT;
    locals.e.num = UNINIT;
    locals.l.num = UNINIT;
    locals.i.num = UNINIT;
    locals.inf.num = UNINIT;
    locals.a.num = UNINIT;
    locals.tab.num = UNINIT;
    locals.buf.num = UNINIT;
    locals.ch.num = UNINIT;
    locals.x.num = UNINIT;
    locals.DBG_INFO = dbg_info_gcd_tabOPmgrind;
    locals.tab = tab;
    locals.buf = buf;
    locals.ch = ch;
    locals.x = x;
    locals.op_own_ptr = (gcd_tab_op_mgrind_OWN_DEFN*) CUR_PROC_VAR.proc->op_owns;
        if (locals.op_own_ptr->mgrind_own_init == 0) {
        add_parm_info_type(0, _obj_ops, _vec_of_t_reqs);
        find_type_instance(_vec_ops, 1, &_vec_ownreqs, &(_vec_of__obj_ops));
        add_parm_info_type(0, proctype_ops, sequence_of_t_reqs);
        find_type_instance(sequence_ops, 1, &sequence_ownreqs, &(sequence_of_proctype_ops));
        add_selector_info("a_bvec", 0, null_ops); 
        add_selector_info("b_vec", 1, proctype_ops); 
        add_selector_info("c_sel", 2, sequence_of_proctype_ops); 
        add_selector_info("d_cell", 3, sequence_of_proctype_ops); 
        add_selector_info("e_sell", 4, proctype_ops); 
        add_selector_info("f_adv", 5, _obj_ops); 
        add_selector_info("g_arp", 6, proctype_ops); 
        find_selector_ops("oneof", 7, &(oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_ops));
        add_parm_info_type(0, oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_ops, array_of_t_reqs);
        find_type_instance(array_ops, 1, &array_ownreqs, &(array_of_oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_ops));
        add_parm_info_type(0, _obj_ops, array_of_t_reqs);
        find_type_instance(array_ops, 1, &array_ownreqs, &(array_of__obj_ops));
        add_selector_info("bucks", 0, _vec_of__obj_ops); 
        add_selector_info("cnt", 1, int_ops); 
        add_selector_info("iq", 2, array_of_oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_ops); 
        add_selector_info("next", 3, int_ops); 
        add_selector_info("oq", 4, array_of__obj_ops); 
        find_selector_ops("record", 5, &(record_bucks_cnt_iq_next_oq_ops));
        add_parm_info_type(0, _obj_ops, sequence_of_t_reqs);
        find_type_instance(sequence_ops, 1, &sequence_ownreqs, &(sequence_of__obj_ops));
        add_parm_info_type(0, _obj_ops, _tagcell_of_t_reqs);
        find_type_instance(_tagcell_ops, 1, &_tagcell_ownreqs, &(_tagcell_of__obj_ops));
        add_parm_info_type(0, _obj_ops, _adv_of_t_reqs);
        find_type_instance(_adv_ops, 1, &_adv_ownreqs, &(_adv_of__obj_ops));
        stringOPcons("gcd_tab: array store not a ref", CLU_1, CLU_30, &STR_gcd_137tab_072_040array_040store_040not_040a_040ref);
        }
        if (locals.op_own_ptr->mgrind_own_init == 0) {
        locals.op_own_ptr->mgrind_own_init = 1;
    }
    enter_proc(173);

  LINE(177);
    {
    locals.err = gcd_storeOPinit(locals.buf, locals.ch);
    if (locals.err != ERR_ok) goto ex_1;
    }
    goto end_1;
    ex_1:
        if (locals.err == ERR_not_possible) {signal(ERR_not_possible);}
        else {
            goto ex_0;}
    end_1:;

  LINE(180);
    {
    locals.err = gcd_storeOPstore_id();
    if (locals.err != ERR_ok) goto ex_2;
    }
    goto end_2;
    ex_2:
        if (locals.err == ERR_not_possible) {signal(ERR_not_possible);}
        else {
            goto ex_0;}
    end_2:;

  LINE(183);
    {
        {CLUREF T_1_1;
        CLUREF T_1_2;
        T_1_2.proc = locals.op_own_ptr->t_ops->_gcd.fcn;
        CUR_PROC_VAR = T_1_2;
        locals.err = T_1_2.proc->proc(locals.x, locals.tab, &T_1_1);
        if (locals.err != ERR_ok) goto ex_0;
        locals.val.num = T_1_1.num;
        }
        }

  LINE(185);
    {
    CLUREF T_1_1;
    T_1_1.num = (locals.val.num < 0)? true : false;
    if (T_1_1.num == true) {

  LINE(186);
        {
        CLUREF T_3_1;
        T_3_1.num = locals.x.num;
        locals.err = gcd_storeOPstore_lit(T_3_1);
        if (locals.err != ERR_ok) goto ex_3;
        }
        goto end_3;
        ex_3:
            if (locals.err == ERR_not_possible) {signal(ERR_not_possible);}
            else {
                goto ex_0;}
        end_3:;
        }
    else {

  LINE(188);
        {
        locals.err = gcd_storeOPstore_ref(locals.val);
        if (locals.err != ERR_ok) goto ex_4;
        }
        goto end_4;
        ex_4:
            if (locals.err == ERR_not_possible) {signal(ERR_not_possible);}
            else {
                goto ex_0;}
        end_4:;
        }}/* end if */

  LINE(192);
    {
        {CLUREF T_1_1;
        T_1_1.num = locals.tab.vec->data[2];
        locals.iq.num = T_1_1.num;
        }
        }

  LINE(193);
    {
        {CLUREF T_1_1;
        T_1_1.num = locals.tab.vec->data[4];
        locals.oq.num = T_1_1.num;
        }
        }

  LINE(194);
    for (;;) {
        if (true != true) { break; }

  LINE(195);
        {
        CLUREF T_4_1;
        locals.err = arrayOPreml(locals.iq, &T_4_1);
        if (locals.err != ERR_ok) goto ex_6;
        switch (T_4_1.cell->tag) {
        case 1: 
             {

  LINE(198);
                {
                    {CLUREF T_5_1;
                    CLUREF T_5_2;
                    locals.err = arrayOPreml(locals.oq, &T_5_1);
                    if (locals.err != ERR_ok) goto ex_6;
                    T_5_2.num = T_5_1.num;
                    locals.b.num = T_5_2.num;
                    }
                    }

  LINE(199);
                {
                    {CLUREF T_5_1;
                    locals.err = _bytevecOPsize(locals.b, &T_5_1);
                    if (locals.err != ERR_ok) goto ex_6;
                    locals.z.num = T_5_1.num;
                    }
                    }

  LINE(201);
                {
                CLUREF T_6_1;
                T_6_1.num = 8192;
                locals.err = gcd_storeOPstore_hdr(T_6_1, locals.z);
                if (locals.err != ERR_ok) goto ex_7;
                }
                goto end_7;
                ex_7:
                    if (locals.err == ERR_not_possible) {signal(ERR_not_possible);}
                    else {
                        goto ex_6;}
                end_7:;

  LINE(203);
                {
                locals.err = gcd_storeOPstore_string(locals.b);
                if (locals.err != ERR_ok) goto ex_8;
                }
                goto end_8;
                ex_8:
                    if (locals.err == ERR_not_possible) {signal(ERR_not_possible);}
                    else {
                        goto ex_6;}
                end_8:;
                break;
                }
        case 2: 
             {CLUREF T_4_2;
            T_4_2.num = T_4_1.cell->value;
            locals.p.num = T_4_2.num;

  LINE(207);
                {
                    {CLUREF T_5_1;
                    CLUREF T_5_2;
                    locals.err = arrayOPreml(locals.oq, &T_5_1);
                    if (locals.err != ERR_ok) goto ex_6;
                    T_5_2.num = T_5_1.num;
                    locals.v.num = T_5_2.num;
                    }
                    }

  LINE(208);
                {
                CLUREF T_6_1;
                CLUREF T_6_2;
                T_6_1.num = 4096;
                T_6_2.num = locals.v.vec->size;
                locals.err = gcd_storeOPstore_hdr(T_6_1, T_6_2);
                if (locals.err != ERR_ok) goto ex_9;
                }
                goto end_9;
                ex_9:
                    if (locals.err == ERR_not_possible) {signal(ERR_not_possible);}
                    else {
                        goto ex_6;}
                end_9:;

  LINE(210);
                {
                    locals.err = sequenceOPelements(locals.v, gcd_tabOPmgrind_IB_1, &locals, &locals.ecode2);
                    if (locals.err == ERR_iterbodyreturn) {
                    signal(ERR_ok);}
                    if (locals.err == ERR_iterbodysignal) {signal(locals.ecode2);}
                    if (locals.err == ERR_break) locals.err = ERR_ok;
                    if (locals.err == ERR_iterbodyexit) locals.err = locals.ecode2;
                    if (locals.err != ERR_ok) goto ex_6;
                    }
                break;
                }
        case 3: 
             {CLUREF T_4_3;
            T_4_3.num = T_4_1.cell->value;
            locals.l.num = T_4_3.num;

  LINE(221);
                {
                    {CLUREF T_5_1;
                    CLUREF T_5_2;
                    locals.err = arrayOPreml(locals.oq, &T_5_1);
                    if (locals.err != ERR_ok) goto ex_6;
                    T_5_2.num = T_5_1.num;
                    locals.v.num = T_5_2.num;
                    }
                    }

  LINE(222);
                {
                    {CLUREF T_5_1;
                    T_5_1.num = locals.v.vec->size;
                    locals.z.num = T_5_1.num;
                    }
                    }

  LINE(223);
                {
                CLUREF T_6_1;
                T_6_1.num = 4096;
                locals.err = gcd_storeOPstore_hdr(T_6_1, locals.z);
                if (locals.err != ERR_ok) goto ex_10;
                }
                goto end_10;
                ex_10:
                    if (locals.err == ERR_not_possible) {signal(ERR_not_possible);}
                    else {
                        goto ex_6;}
                end_10:;

  LINE(225);
                {
                    locals.err = intOPfrom_to(CLU_1, locals.z, gcd_tabOPmgrind_IB_2, &locals, &locals.ecode2);
                    if (locals.err == ERR_iterbodyreturn) {
                    signal(ERR_ok);}
                    if (locals.err == ERR_iterbodysignal) {signal(locals.ecode2);}
                    if (locals.err == ERR_break) locals.err = ERR_ok;
                    if (locals.err == ERR_iterbodyexit) locals.err = locals.ecode2;
                    if (locals.err != ERR_ok) goto ex_6;
                    }
                break;
                }
        case 4: 
             {CLUREF T_4_4;
            T_4_4.num = T_4_1.cell->value;
            locals.l.num = T_4_4.num;

  LINE(237);
                {
                    {CLUREF T_5_1;
                    CLUREF T_5_2;
                    CLUREF T_5_3;
                    CLUREF T_5_4;
                    locals.err = arrayOPreml(locals.oq, &T_5_1);
                    if (locals.err != ERR_ok) goto ex_6;
                    T_5_2.num = T_5_1.num;
                    generic_CLU_proc.type_owns = _tagcell_of__obj_ops->type_owns;
                    generic_CLU_proc.proc = _tagcellOPget;
                    CUR_PROC_VAR.proc = &generic_CLU_proc;
                    locals.err = _tagcellOPget(T_5_2, &T_5_3, &T_5_4);
                    if (locals.err != ERR_ok) goto ex_6;
                    locals.i.num = T_5_3.num;
                    locals.e.num = T_5_4.num;
                    }
                    }

  LINE(238);
                {
                CLUREF T_6_1;
                T_6_1.num = 16384;
                locals.err = gcd_storeOPstore_hdr(T_6_1, locals.i);
                if (locals.err != ERR_ok) goto ex_11;
                }
                goto end_11;
                ex_11:
                    if (locals.err == ERR_not_possible) {signal(ERR_not_possible);}
                    else {
                        goto ex_6;}
                end_11:;

  LINE(240);
                {
                CLUREF T_5_1;
                CLUREF T_5_2;
                locals.err = sequenceOPfetch(locals.l, locals.i, &T_5_2);
                if (locals.err != ERR_ok) goto ex_6;
                CUR_PROC_VAR = T_5_2;
                locals.err = T_5_2.proc->proc(locals.e, locals.tab, &T_5_1);
                if (locals.err != ERR_ok) goto ex_6;
                locals.val.num = T_5_1.num;
                }

  LINE(241);
                {
                CLUREF T_5_1;
                T_5_1.num = (locals.val.num < 0)? true : false;
                if (T_5_1.num == true) {

  LINE(242);
                    {
                    CLUREF T_7_1;
                    T_7_1.num = locals.e.num;
                    locals.err = gcd_storeOPstore_lit(T_7_1);
                    if (locals.err != ERR_ok) goto ex_12;
                    }
                    goto end_12;
                    ex_12:
                        if (locals.err == ERR_not_possible) {signal(ERR_not_possible);}
                        else {
                            goto ex_6;}
                    end_12:;
                    }
                else {

  LINE(244);
                    {
                    locals.err = gcd_storeOPstore_ref(locals.val);
                    if (locals.err != ERR_ok) goto ex_13;
                    }
                    goto end_13;
                    ex_13:
                        if (locals.err == ERR_not_possible) {signal(ERR_not_possible);}
                        else {
                            goto ex_6;}
                    end_13:;
                    }}/* end if */
                break;
                }
        case 5: 
             {CLUREF T_4_5;
            T_4_5.num = T_4_1.cell->value;
            locals.p.num = T_4_5.num;

  LINE(249);
                {
                    {CLUREF T_5_1;
                    CLUREF T_5_2;
                    CLUREF T_5_3;
                    CLUREF T_5_4;
                    locals.err = arrayOPreml(locals.oq, &T_5_1);
                    if (locals.err != ERR_ok) goto ex_6;
                    T_5_2.num = T_5_1.num;
                    generic_CLU_proc.type_owns = _tagcell_of__obj_ops->type_owns;
                    generic_CLU_proc.proc = _tagcellOPget;
                    CUR_PROC_VAR.proc = &generic_CLU_proc;
                    locals.err = _tagcellOPget(T_5_2, &T_5_3, &T_5_4);
                    if (locals.err != ERR_ok) goto ex_6;
                    locals.i.num = T_5_3.num;
                    locals.e.num = T_5_4.num;
                    }
                    }

  LINE(250);
                {
                CLUREF T_6_1;
                T_6_1.num = 16384;
                locals.err = gcd_storeOPstore_hdr(T_6_1, locals.i);
                if (locals.err != ERR_ok) goto ex_14;
                }
                goto end_14;
                ex_14:
                    if (locals.err == ERR_not_possible) {signal(ERR_not_possible);}
                    else {
                        goto ex_6;}
                end_14:;

  LINE(252);
                {
                CLUREF T_5_1;
                CUR_PROC_VAR = locals.p;
                locals.err = locals.p.proc->proc(locals.e, locals.tab, &T_5_1);
                if (locals.err != ERR_ok) goto ex_6;
                locals.val.num = T_5_1.num;
                }

  LINE(253);
                {
                CLUREF T_5_1;
                T_5_1.num = (locals.val.num < 0)? true : false;
                if (T_5_1.num == true) {

  LINE(254);
                    {
                    CLUREF T_7_1;
                    T_7_1.num = locals.e.num;
                    locals.err = gcd_storeOPstore_lit(T_7_1);
                    if (locals.err != ERR_ok) goto ex_15;
                    }
                    goto end_15;
                    ex_15:
                        if (locals.err == ERR_not_possible) {signal(ERR_not_possible);}
                        else {
                            goto ex_6;}
                    end_15:;
                    }
                else {

  LINE(256);
                    {
                    locals.err = gcd_storeOPstore_ref(locals.val);
                    if (locals.err != ERR_ok) goto ex_16;
                    }
                    goto end_16;
                    ex_16:
                        if (locals.err == ERR_not_possible) {signal(ERR_not_possible);}
                        else {
                            goto ex_6;}
                    end_16:;
                    }}/* end if */
                break;
                }
        case 6: 
             {CLUREF T_4_6;
            T_4_6.num = T_4_1.cell->value;
            locals.inf.num = T_4_6.num;

  LINE(261);
                {
                    {CLUREF T_5_1;
                    CLUREF T_5_2;
                    locals.err = arrayOPreml(locals.oq, &T_5_1);
                    if (locals.err != ERR_ok) goto ex_6;
                    T_5_2.num = T_5_1.num;
                    locals.a.num = T_5_2.num;
                    }
                    }

  LINE(262);
                {
                    {CLUREF T_5_1;
                    generic_CLU_proc.type_owns = _adv_of__obj_ops->type_owns;
                    generic_CLU_proc.proc = _advOPget_vector;
                    CUR_PROC_VAR.proc = &generic_CLU_proc;
                    locals.err = _advOPget_vector(locals.a, &T_5_1);
                    if (locals.err != ERR_ok) goto ex_6;
                    locals.v.num = T_5_1.num;
                    }
                    }

  LINE(263);
                {
                    {CLUREF T_5_1;
                    locals.err = _vecOPsize(locals.v, &T_5_1);
                    if (locals.err != ERR_ok) goto ex_6;
                    locals.z.num = T_5_1.num;
                    }
                    }

  LINE(264);
                {
                CLUREF T_5_1;
                CLUREF T_5_2;
                CLUREF T_5_3;
                CLUREF T_5_4;
                CLUREF T_5_5;
                locals.err = intOPmul(CLU_8, locals.z, &T_5_1);
                if (locals.err != ERR_ok) goto ex_6;
                locals.err = intOPadd(T_5_1, CLU_8, &T_5_2);
                if (locals.err != ERR_ok) goto ex_6;
                T_5_3.num = locals.inf.num;
                T_5_4.num = locals.v.num;
                locals.err = gcd_tabOPinsert(locals.tab, T_5_2, T_5_3, T_5_4, &T_5_5);
                if (locals.err != ERR_ok) goto ex_6;
                locals.val.num = T_5_5.num;
                }

  LINE(267);
                {
                locals.err = gcd_storeOPstore_array_desc(locals.a);
                if (locals.err != ERR_ok) goto ex_17;
                }
                goto end_17;
                ex_17:
                    if (locals.err == ERR_not_possible) {signal(ERR_not_possible);}
                    else {
                        goto ex_6;}
                end_17:;

  LINE(269);
                {
                CLUREF T_5_1;
                T_5_1.num = (locals.val.num < 0)? true : false;
                if (T_5_1.num == true) {

  LINE(271);
                    {
                    elist[0] = STR_gcd_137tab_072_040array_040store_040not_040a_040ref;
                    {signal (ERR_failure);}}
                    }
                else {

  LINE(273);
                    {
                    locals.err = gcd_storeOPstore_ref(locals.val);
                    if (locals.err != ERR_ok) goto ex_18;
                    }
                    goto end_18;
                    ex_18:
                        if (locals.err == ERR_not_possible) {signal(ERR_not_possible);}
                        else {
                            goto ex_6;}
                    end_18:;
                    }}/* end if */
                break;
                }
        case 7: 
             {CLUREF T_4_7;
            T_4_7.num = T_4_1.cell->value;
            locals.p.num = T_4_7.num;

  LINE(278);
                {
                    {CLUREF T_5_1;
                    CLUREF T_5_2;
                    locals.err = arrayOPreml(locals.oq, &T_5_1);
                    if (locals.err != ERR_ok) goto ex_6;
                    T_5_2.num = T_5_1.num;
                    locals.v.num = T_5_2.num;
                    }
                    }

  LINE(279);
                {
                CLUREF T_6_1;
                CLUREF T_6_2;
                T_6_1.num = 4096;
                T_6_2.num = locals.v.vec->size;
                locals.err = gcd_storeOPstore_hdr(T_6_1, T_6_2);
                if (locals.err != ERR_ok) goto ex_19;
                }
                goto end_19;
                ex_19:
                    if (locals.err == ERR_not_possible) {signal(ERR_not_possible);}
                    else {
                        goto ex_6;}
                end_19:;

  LINE(281);
                {
                    locals.err = sequenceOPelements(locals.v, gcd_tabOPmgrind_IB_3, &locals, &locals.ecode2);
                    if (locals.err == ERR_iterbodyreturn) {
                    signal(ERR_ok);}
                    if (locals.err == ERR_iterbodysignal) {signal(locals.ecode2);}
                    if (locals.err == ERR_break) locals.err = ERR_ok;
                    if (locals.err == ERR_iterbodyexit) locals.err = locals.ecode2;
                    if (locals.err != ERR_ok) goto ex_6;
                    }
                break;
                }
        }
        }
        }
        end_while_1:;
    goto end_6;
    ex_6:
        if (locals.err == ERR_not_possible) {signal(ERR_not_possible);}
        else {
            goto ex_5;}
    end_6:;
        goto end_5;
        ex_5:
            if ((locals.err == ERR_bounds)) {
            }
            else {
                goto ex_0;
            }
        end_5:;

  LINE(300);
    {
    locals.err = gcd_storeOPdone();
    if (locals.err != ERR_ok) goto ex_20;
    }
    goto end_20;
    ex_20:
        if (locals.err == ERR_not_possible) {signal(ERR_not_possible);}
        else {
            goto ex_0;}
    end_20:;
    goto end_0;
    ex_0:
        {
            if (locals.err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(locals.err);
            {signal(ERR_failure);}
        }
    end_0: {signal(ERR_ok);}
    }

/**** END PROCEDURE mgrind ****/

extern struct OPS *_bytevec_ops;
typedef struct {
    int hdr;
    int count;
    char *name;
    char *fname;
    bool is_iter;
    int is_parmd;
    int addr;
    int nargs;
    Vlist0 *vals;
    siglist1 *sigs;
    Vlist19 *locals;
    Vlist3 *owns;
    Vlist0 *ptowns;
    Vlist32 *popowns;
    Slist0 *type_formals;
    Slist1 *op_formals;
    } dbg_info_gcd_tabOPmgrind_actual;
static Vlist0 vals_gcd_tabOPmgrind = {0, 0};
static sig_desc1 sig_gcd_tabOPmgrind_1 = {0, 4, "not_possible", {0, 1
, { {0, 2, "", &string_ops}}}};
static siglist1 sigs_gcd_tabOPmgrind = {0, 1, (sig_desc*)&sig_gcd_tabOPmgrind_1};
static Vlist19 locals_gcd_tabOPmgrind = {0, 19,{ {0, 2, "err", &int_ops},  {0, 2, "ecode2", &int_ops},  {0, 2, "op_own_ptr", &int_ops},  {0, 2, "val", &int_ops},  {0, 2, "iq", &array_of_oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_ops},  {0, 2, "oq", &array_of__obj_ops},  {0, 2, "b", &_bytevec_ops},  {0, 2, "z", &int_ops},  {0, 2, "p", m1_ops},  {0, 2, "v", &sequence_of__obj_ops},  {0, 2, "e", &_obj_ops},  {0, 2, "l", &sequence_of_proctype_ops},  {0, 2, "i", &int_ops},  {0, 2, "inf", &_obj_ops},  {0, 2, "a", &_adv_of__obj_ops},  {0, 2, "tab", &gcd_tab_ops},  {0, 2, "buf", &_wordvec_ops},  {0, 2, "ch", &_chan_ops},  {0, 2, "x", zero_ops, "t_ops"}}
};
static Vlist32 popowns_gcd_tabOPmgrind = {0, 32,{ {0, 2, "gcd_tabOPmgrind_init", &int_ops}
, {0, 2, "_vec_of__obj_table", &NULL_OPS}, {0, 2, "_vec_of__obj_ops", &NULL_OPS}, {0, 2, "_vec_of__obj_ops", &NULL_OPS}, {0, 2, "_vec_of__obj_owns", &NULL_OPS}, {0, 2, "sequence_of_proctype_table", &NULL_OPS}, {0, 2, "sequence_of_proctype_ops", &NULL_OPS}, {0, 2, "sequence_of_proctype_ops", &NULL_OPS}, {0, 2, "sequence_of_proctype_owns", &NULL_OPS}, {0, 2, "oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_ops", &NULL_OPS}, {0, 2, "array_of_oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_table", &NULL_OPS}, {0, 2, "array_of_oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_ops", &NULL_OPS}, {0, 2, "array_of_oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_ops", &NULL_OPS}, {0, 2, "array_of_oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_owns", &NULL_OPS}, {0, 2, "array_of__obj_table", &NULL_OPS}, {0, 2, "array_of__obj_ops", &NULL_OPS}, {0, 2, "array_of__obj_ops", &NULL_OPS}, {0, 2, "array_of__obj_owns", &NULL_OPS}, {0, 2, "record_bucks_cnt_iq_next_oq_ops", &NULL_OPS}, {0, 2, "sequence_of__obj_table", &NULL_OPS}, {0, 2, "sequence_of__obj_ops", &NULL_OPS}, {0, 2, "sequence_of__obj_ops", &NULL_OPS}, {0, 2, "sequence_of__obj_owns", &NULL_OPS}, {0, 2, "_tagcell_of__obj_table", &NULL_OPS}, {0, 2, "_tagcell_of__obj_ops", &NULL_OPS}, {0, 2, "_tagcell_of__obj_ops", &NULL_OPS}, {0, 2, "_tagcell_of__obj_owns", &NULL_OPS}, {0, 2, "_adv_of__obj_table", &NULL_OPS}, {0, 2, "_adv_of__obj_ops", &NULL_OPS}, {0, 2, "_adv_of__obj_ops", &NULL_OPS}, {0, 2, "_adv_of__obj_owns", &NULL_OPS}, {0, 2, "t_ops", &NULL_OPS}}};
Slist0 tformals_gcd_tabOPmgrind = {0, 0};
Slist1 opformals_gcd_tabOPmgrind = {0, 1, "t"};
dbg_info_gcd_tabOPmgrind_actual dbg_info_gcd_tabOPmgrind_data = {0, 12, 
    "gcd_tabOPmgrind", "/common/pub/dcurtis-temp/pclu/lib/clu/gcd_tab.clu", 0, 1, (int)gcd_tabOPmgrind, 4, 
    &vals_gcd_tabOPmgrind, &sigs_gcd_tabOPmgrind, &locals_gcd_tabOPmgrind, &owns_gcd_tab, &NO_VALS, &popowns_gcd_tabOPmgrind, &NO_PARMS, &opformals_gcd_tabOPmgrind};
    struct dbg_info *dbg_info_gcd_tabOPmgrind = (struct dbg_info*)&dbg_info_gcd_tabOPmgrind_data;

/**** BEGIN ITERATOR BODIES for mgrind ****/

errcode gcd_tabOPmgrind_IB_1(iv_1, locals, iecode)
errcode *iecode;
CLUREF iv_1;
struct {
    struct dbg_info *DBG_INFO;
    int DBG_LINE;
    errcode err;
    errcode ecode2;
gcd_tab_op_mgrind_OWN_DEFN *op_own_ptr;
    CLUREF val;
    CLUREF iq;
    CLUREF oq;
    CLUREF b;
    CLUREF z;
    CLUREF p;
    CLUREF v;
    CLUREF e;
    CLUREF l;
    CLUREF i;
    CLUREF inf;
    CLUREF a;
    CLUREF tab;
    CLUREF buf;
    CLUREF ch;
    CLUREF x;
    } *locals;
{
    locals->e.num = iv_1.num;
    enter_iter_body_proc(211);

  FB_LINE(211);
    {
    CLUREF T_1_1;
    CUR_PROC_VAR = locals->p;
    locals->err = locals->p.proc->proc(locals->e, locals->tab, &T_1_1);
    if (locals->err != ERR_ok) goto ex_0;
    locals->val.num = T_1_1.num;
    }

  FB_LINE(212);
    {
    CLUREF T_1_1;
    T_1_1.num = (locals->val.num < 0)? true : false;
    if (T_1_1.num == true) {

  FB_LINE(213);
        {
        CLUREF T_3_1;
        T_3_1.num = locals->e.num;
        locals->err = gcd_storeOPstore_lit(T_3_1);
        if (locals->err != ERR_ok) goto ex_1;
        }
        goto end_1;
        ex_1:
            if (locals->err == ERR_not_possible) {*iecode = locals->err;
             {signal(ERR_iterbodysignal);}}
            else {
                goto ex_0;}
        end_1:;
        }
    else {

  FB_LINE(215);
        {
        locals->err = gcd_storeOPstore_ref(locals->val);
        if (locals->err != ERR_ok) goto ex_2;
        }
        goto end_2;
        ex_2:
            if (locals->err == ERR_not_possible) {*iecode = locals->err;
             {signal(ERR_iterbodysignal);}}
            else {
                goto ex_0;}
        end_2:;
        }}/* end if */
    {signal(ERR_ok);}
    ex_0:
        {
            *iecode = locals->err;
            {signal(ERR_iterbodyexit);}}
    end_0: {signal(ERR_ok);}
    }/* end gcd_tabOPmgrind_IB_1 */
errcode gcd_tabOPmgrind_IB_2(iv_1, locals, iecode)
errcode *iecode;
CLUREF iv_1;
struct {
    struct dbg_info *DBG_INFO;
    int DBG_LINE;
    errcode err;
    errcode ecode2;
gcd_tab_op_mgrind_OWN_DEFN *op_own_ptr;
    CLUREF val;
    CLUREF iq;
    CLUREF oq;
    CLUREF b;
    CLUREF z;
    CLUREF p;
    CLUREF v;
    CLUREF e;
    CLUREF l;
    CLUREF i;
    CLUREF inf;
    CLUREF a;
    CLUREF tab;
    CLUREF buf;
    CLUREF ch;
    CLUREF x;
    } *locals;
{
    locals->i.num = iv_1.num;
    enter_iter_body_proc(226);

  FB_LINE(226);
    {
        {CLUREF T_1_1;
        locals->err = sequenceOPfetch(locals->v, locals->i, &T_1_1);
        if (locals->err != ERR_ok) goto ex_0;
        locals->e.num = T_1_1.num;
        }
        }

  FB_LINE(227);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    locals->err = sequenceOPfetch(locals->l, locals->i, &T_1_2);
    if (locals->err != ERR_ok) goto ex_0;
    CUR_PROC_VAR = T_1_2;
    locals->err = T_1_2.proc->proc(locals->e, locals->tab, &T_1_1);
    if (locals->err != ERR_ok) goto ex_0;
    locals->val.num = T_1_1.num;
    }

  FB_LINE(228);
    {
    CLUREF T_1_1;
    T_1_1.num = (locals->val.num < 0)? true : false;
    if (T_1_1.num == true) {

  FB_LINE(229);
        {
        CLUREF T_3_1;
        T_3_1.num = locals->e.num;
        locals->err = gcd_storeOPstore_lit(T_3_1);
        if (locals->err != ERR_ok) goto ex_1;
        }
        goto end_1;
        ex_1:
            if (locals->err == ERR_not_possible) {*iecode = locals->err;
             {signal(ERR_iterbodysignal);}}
            else {
                goto ex_0;}
        end_1:;
        }
    else {

  FB_LINE(231);
        {
        locals->err = gcd_storeOPstore_ref(locals->val);
        if (locals->err != ERR_ok) goto ex_2;
        }
        goto end_2;
        ex_2:
            if (locals->err == ERR_not_possible) {*iecode = locals->err;
             {signal(ERR_iterbodysignal);}}
            else {
                goto ex_0;}
        end_2:;
        }}/* end if */
    {signal(ERR_ok);}
    ex_0:
        {
            *iecode = locals->err;
            {signal(ERR_iterbodyexit);}}
    end_0: {signal(ERR_ok);}
    }/* end gcd_tabOPmgrind_IB_2 */
errcode gcd_tabOPmgrind_IB_3(iv_1, locals, iecode)
errcode *iecode;
CLUREF iv_1;
struct {
    struct dbg_info *DBG_INFO;
    int DBG_LINE;
    errcode err;
    errcode ecode2;
gcd_tab_op_mgrind_OWN_DEFN *op_own_ptr;
    CLUREF val;
    CLUREF iq;
    CLUREF oq;
    CLUREF b;
    CLUREF z;
    CLUREF p;
    CLUREF v;
    CLUREF e;
    CLUREF l;
    CLUREF i;
    CLUREF inf;
    CLUREF a;
    CLUREF tab;
    CLUREF buf;
    CLUREF ch;
    CLUREF x;
    } *locals;
{
    locals->e.num = iv_1.num;
    enter_iter_body_proc(282);

  FB_LINE(282);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = nil;
    T_1_2.num = (locals->e.num == T_1_1.num)? true : false;
    if (T_1_2.num == true) {

  FB_LINE(284);
        {
        locals->err = gcd_storeOPstore_lit(CLU_0);
        if (locals->err != ERR_ok) goto ex_1;
        }
        goto end_1;
        ex_1:
            if (locals->err == ERR_not_possible) {*iecode = locals->err;
             {signal(ERR_iterbodysignal);}}
            else {
                goto ex_0;}
        end_1:;
        }
    else {

  FB_LINE(287);
        {
        CLUREF T_2_1;
        CUR_PROC_VAR = locals->p;
        locals->err = locals->p.proc->proc(locals->e, locals->tab, &T_2_1);
        if (locals->err != ERR_ok) goto ex_0;
        locals->val.num = T_2_1.num;
        }

  FB_LINE(288);
        {
        CLUREF T_2_1;
        T_2_1.num = (locals->val.num < 0)? true : false;
        if (T_2_1.num == true) {

  FB_LINE(289);
            {
            CLUREF T_4_1;
            T_4_1.num = locals->e.num;
            locals->err = gcd_storeOPstore_lit(T_4_1);
            if (locals->err != ERR_ok) goto ex_2;
            }
            goto end_2;
            ex_2:
                if (locals->err == ERR_not_possible) {*iecode = locals->err;
                 {signal(ERR_iterbodysignal);}}
                else {
                    goto ex_0;}
            end_2:;
            }
        else {

  FB_LINE(291);
            {
            locals->err = gcd_storeOPstore_ref(locals->val);
            if (locals->err != ERR_ok) goto ex_3;
            }
            goto end_3;
            ex_3:
                if (locals->err == ERR_not_possible) {*iecode = locals->err;
                 {signal(ERR_iterbodysignal);}}
                else {
                    goto ex_0;}
            end_3:;
            }}/* end if */
        }}/* end if */
    {signal(ERR_ok);}
    ex_0:
        {
            *iecode = locals->err;
            {signal(ERR_iterbodyexit);}}
    end_0: {signal(ERR_ok);}
    }/* end gcd_tabOPmgrind_IB_3 */

/**** END ITERATOR BODIES for mgrind ****/

extern struct dbg_info* dbg_info_gcd_tabOPinsert;
#undef MY_TRACE_FLAG
#define MY_TRACE_FLAG gcd_tabOPinsert_TRACE
int gcd_tabOPinsert_TRACE;
extern OWN_req null_ownreqs;
struct OPS *sequence_of_proctype_table;
struct OPS *sequence_of_proctype_ops;
struct OPS *sequence_of_proctype_ops;
OWNPTR sequence_of_proctype_owns;
struct OPS  *oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_ops;
struct OPS *_vec_of__obj_table;
struct OPS *_vec_of__obj_ops;
struct OPS *_vec_of__obj_ops;
OWNPTR _vec_of__obj_owns;
struct OPS *array_of_oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_table;
struct OPS *array_of_oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_ops;
struct OPS *array_of_oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_ops;
OWNPTR array_of_oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_owns;
struct OPS *array_of__obj_table;
struct OPS *array_of__obj_ops;
struct OPS *array_of__obj_ops;
OWNPTR array_of__obj_owns;
struct OPS  *record_bucks_cnt_iq_next_oq_ops;
struct OPS  *record_addr_next_obj_ops;
static int gcd_tabOPinsert_own_init = 0;

/**** BEGIN PROCEDURE insert ****/

errcode gcd_tabOPinsert(tab, z, inf, x, ret_1)
CLUREF tab;
CLUREF z;
CLUREF inf;
CLUREF x;
CLUREF *ret_1;
    {
    struct {
        struct dbg_info *DBG_INFO;
        int DBG_LINE;
        errcode err;
        errcode ecode2;
        CLUREF i;
        CLUREF xmb;
        CLUREF mb;
        CLUREF addr;
        CLUREF tab;
        CLUREF z;
        CLUREF inf;
        CLUREF x;
        } locals;
    locals.i.num = UNINIT;
    locals.xmb.num = UNINIT;
    locals.mb.num = UNINIT;
    locals.addr.num = UNINIT;
    locals.tab.num = UNINIT;
    locals.z.num = UNINIT;
    locals.inf.num = UNINIT;
    locals.x.num = UNINIT;
    locals.DBG_INFO = dbg_info_gcd_tabOPinsert;
    locals.tab = tab;
    locals.z = z;
    locals.inf = inf;
    locals.x = x;
        if (gcd_tabOPinsert_own_init == 0) {
        if (gcd_tab_own_init == 0) {
            locals.err = gcd_tab_own_init_proc();
            if (locals.err != ERR_ok) goto ex_0;
            }
        gcd_tabOPinsert_own_init = 1;
    }
    enter_proc(304);

  LINE(311);
    {
        {CLUREF T_1_1;
        CLUREF T_1_2;
        CLUREF T_1_3;
        T_1_1.num = 50000;
        locals.err = hash_obj(locals.x, T_1_1, &T_1_2);
        if (locals.err != ERR_ok) goto ex_0;
        locals.err = intOPadd(T_1_2, CLU_1, &T_1_3);
        if (locals.err != ERR_ok) goto ex_0;
        locals.i.num = T_1_3.num;
        }
        }

  LINE(312);
    {
        {CLUREF T_1_1;
        CLUREF T_1_2;
        T_1_1.num = locals.tab.vec->data[0];
        locals.err = _vecOPfetch(T_1_1, locals.i, &T_1_2);
        if (locals.err != ERR_ok) goto ex_0;
        locals.xmb.num = T_1_2.num;
        }
        }

  LINE(313);
    {
        {locals.mb.num = locals.xmb.num;
        }
        }

  LINE(314);
    for (;;) {
        CLUREF T_1_1;
        CLUREF T_1_2;
        CLUREF T_1_3;
        T_1_1.num = nil;
        T_1_2.num = (locals.mb.num == T_1_1.num)? true : false;
        T_1_3.num = T_1_2.num ^ 1;
        if (T_1_3.num != true) { break; }

  LINE(315);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        CLUREF T_2_3;
        T_2_1.num = locals.mb.num;
        T_2_2.num = T_2_1.vec->data[2];
        T_2_3.num = (locals.x.num == T_2_2.num)? true : false;
        if (T_2_3.num == true) {

  LINE(316);
            {
            {
            CLUREF T_3_1;
            CLUREF T_3_2;
            T_3_1.num = locals.mb.num;
            T_3_2.num = T_3_1.vec->data[0];
            ret_1->num = T_3_2.num;
            }
            {signal (ERR_ok);}}
            }
            }/* end if */

  LINE(317);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        T_2_1.num = locals.mb.num;
        T_2_2.num = T_2_1.vec->data[1];
        locals.mb.num = T_2_2.num;
        }
        }
        end_while_1:;

  LINE(319);
    {
        {CLUREF T_1_1;
        T_1_1.num = locals.tab.vec->data[3];
        locals.addr.num = T_1_1.num;
        }
        }

  LINE(320);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    T_1_1.num = locals.tab.vec->data[0];
    RecordAlloc(3, T_1_2);
    T_1_2.vec->data[2]  = locals.x.num;
    T_1_2.vec->data[0]  = locals.addr.num;
    T_1_2.vec->data[1]  = locals.xmb.num;
    T_1_3.num = T_1_2.num;
    locals.err = _vecOPstore(T_1_1, locals.i, T_1_3);
    if (locals.err != ERR_ok) goto ex_0;
    }

  LINE(323);
    {
    CLUREF T_1_1;
    T_1_1.num = locals.tab.vec->data[4];
    locals.err = arrayOPaddh(T_1_1, locals.x);
    if (locals.err != ERR_ok) goto ex_0;
    }

  LINE(324);
    {
    CLUREF T_1_1;
    T_1_1.num = locals.tab.vec->data[2];
    locals.err = arrayOPaddh(T_1_1, locals.inf);
    if (locals.err != ERR_ok) goto ex_0;
    }

  LINE(325);
    {
    CLUREF T_1_1;
    locals.err = intOPadd(locals.addr, locals.z, &T_1_1);
    if (locals.err != ERR_ok) goto ex_0;
    locals.tab.vec->data[3]  = T_1_1.num;
    }

  LINE(326);
    {
    {
    ret_1->num = locals.addr.num;
    }
    {signal (ERR_ok);}}
    goto end_0;
    ex_0:
        {
            if (locals.err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(locals.err);
            {signal(ERR_failure);}
        }
    end_0: elist[0].str = no_return_values_STRING;
        {signal(ERR_failure);}
    }

/**** END PROCEDURE insert ****/

extern struct OPS *record_bucks_cnt_iq_next_oq_ops;
typedef struct {
    int hdr;
    int count;
    char *name;
    char *fname;
    bool is_iter;
    int is_parmd;
    int addr;
    int nargs;
    Vlist1 *vals;
    siglist0 *sigs;
    Vlist10 *locals;
    Vlist3 *owns;
    Vlist0 *ptowns;
    Vlist0 *popowns;
    Slist0 *type_formals;
    Slist0 *op_formals;
    } dbg_info_gcd_tabOPinsert_actual;
static Vlist1 vals_gcd_tabOPinsert = {0, 1, { {0, 2, "", &int_ops}}
};
static siglist0 sigs_gcd_tabOPinsert = {0, 0};
static Vlist10 locals_gcd_tabOPinsert = {0, 10,{ {0, 2, "err", &int_ops},  {0, 2, "ecode2", &int_ops},  {0, 2, "i", &int_ops},  {0, 2, "xmb", &_obj_ops},  {0, 2, "mb", &_obj_ops},  {0, 2, "addr", &int_ops},  {0, 2, "tab", &record_bucks_cnt_iq_next_oq_ops},  {0, 2, "z", &int_ops},  {0, 2, "inf", &oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_ops},  {0, 2, "x", &_obj_ops}}
};
static Vlist0 popowns_gcd_tabOPinsert = {0, 0};
Slist0 tformals_gcd_tabOPinsert = {0, 0};
Slist0 opformals_gcd_tabOPinsert = {0, 0};
dbg_info_gcd_tabOPinsert_actual dbg_info_gcd_tabOPinsert_data = {0, 12, 
    "gcd_tabOPinsert", "/common/pub/dcurtis-temp/pclu/lib/clu/gcd_tab.clu", 0, 0, (int)gcd_tabOPinsert, 4, 
    &vals_gcd_tabOPinsert, &sigs_gcd_tabOPinsert, &locals_gcd_tabOPinsert, &owns_gcd_tab, &NO_VALS, &NO_VALS, &NO_PARMS, &NO_PARMS};
    struct dbg_info *dbg_info_gcd_tabOPinsert = (struct dbg_info*)&dbg_info_gcd_tabOPinsert_data;
extern struct dbg_info* dbg_info_gcd_tabOPdebug_print;
#undef MY_TRACE_FLAG
#define MY_TRACE_FLAG gcd_tabOPdebug_print_TRACE
int gcd_tabOPdebug_print_TRACE;
struct OPS *_vec_of__obj_table;
struct OPS *_vec_of__obj_ops;
struct OPS *_vec_of__obj_ops;
OWNPTR _vec_of__obj_owns;
struct OPS *sequence_of_proctype_table;
struct OPS *sequence_of_proctype_ops;
struct OPS *sequence_of_proctype_ops;
OWNPTR sequence_of_proctype_owns;
struct OPS  *oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_ops;
struct OPS *array_of_oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_table;
struct OPS *array_of_oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_ops;
struct OPS *array_of_oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_ops;
OWNPTR array_of_oneof_a_bvec_b_vec_c_sel_d_cell_e_sell_f_adv_g_arp_owns;
struct OPS *array_of__obj_table;
struct OPS *array_of__obj_ops;
struct OPS *array_of__obj_ops;
OWNPTR array_of__obj_owns;
struct OPS  *record_bucks_cnt_iq_next_oq_ops;
static int gcd_tabOPdebug_print_own_init = 0;

/**** BEGIN PROCEDURE debug_print ****/

errcode gcd_tabOPdebug_print(_rep, ps)
CLUREF _rep;
CLUREF ps;
    {
    struct {
        struct dbg_info *DBG_INFO;
        int DBG_LINE;
        errcode err;
        errcode ecode2;
        CLUREF _rep;
        CLUREF ps;
        } locals;
    locals._rep.num = UNINIT;
    locals.ps.num = UNINIT;
    locals.DBG_INFO = dbg_info_gcd_tabOPdebug_print;
    locals._rep = _rep;
    locals.ps = ps;
        if (gcd_tabOPdebug_print_own_init == 0) {
        if (gcd_tab_own_init == 0) {
            locals.err = gcd_tab_own_init_proc();
            if (locals.err != ERR_ok) goto ex_0;
            }
        gcd_tabOPdebug_print_own_init = 1;
    }
    enter_proc(1);

  LINE(2);
    {
    generic_CLU_proc.type_owns = 0;
    generic_CLU_proc.op_owns = record_bucks_cnt_iq_next_oq_ops->entry[7].fcn->op_owns;
    generic_CLU_proc.proc = recordOPdebug_print;
    CUR_PROC_VAR.proc = &generic_CLU_proc;
    locals.err = recordOPdebug_print(locals._rep, locals.ps);
    if (locals.err != ERR_ok) goto ex_0;
    }
    goto end_0;
    ex_0:
        {
            if (locals.err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(locals.err);
            {signal(ERR_failure);}
        }
    end_0: {signal(ERR_ok);}
    }

/**** END PROCEDURE debug_print ****/

extern struct OPS *pstream_ops;
typedef struct {
    int hdr;
    int count;
    char *name;
    char *fname;
    bool is_iter;
    int is_parmd;
    int addr;
    int nargs;
    Vlist0 *vals;
    siglist0 *sigs;
    Vlist4 *locals;
    Vlist3 *owns;
    Vlist0 *ptowns;
    Vlist0 *popowns;
    Slist0 *type_formals;
    Slist0 *op_formals;
    } dbg_info_gcd_tabOPdebug_print_actual;
static Vlist0 vals_gcd_tabOPdebug_print = {0, 0};
static siglist0 sigs_gcd_tabOPdebug_print = {0, 0};
static Vlist4 locals_gcd_tabOPdebug_print = {0, 4,{ {0, 2, "err", &int_ops},  {0, 2, "ecode2", &int_ops},  {0, 2, "_rep", &record_bucks_cnt_iq_next_oq_ops},  {0, 2, "ps", &pstream_ops}}
};
static Vlist0 popowns_gcd_tabOPdebug_print = {0, 0};
Slist0 tformals_gcd_tabOPdebug_print = {0, 0};
Slist0 opformals_gcd_tabOPdebug_print = {0, 0};
dbg_info_gcd_tabOPdebug_print_actual dbg_info_gcd_tabOPdebug_print_data = {0, 12, 
    "gcd_tabOPdebug_print", "/common/pub/dcurtis-temp/pclu/lib/clu/gcd_tab.clu", 0, 0, (int)gcd_tabOPdebug_print, 2, 
    &vals_gcd_tabOPdebug_print, &sigs_gcd_tabOPdebug_print, &locals_gcd_tabOPdebug_print, &owns_gcd_tab, &NO_VALS, &NO_VALS, &NO_PARMS, &NO_PARMS};
    struct dbg_info *dbg_info_gcd_tabOPdebug_print = (struct dbg_info*)&dbg_info_gcd_tabOPdebug_print_data;
typedef struct{
    int count;
    OWNPTR type_owns;
    OWNPTR op_owns;
    struct OP_ENTRY entry[4];
} gcd_tab_OPS;

CLU_proc gcd_tab_oe_grind = {{0,0,0,0}, gcd_tabOPgrind, 0};
CLU_proc gcd_tab_oe_grindc = {{0,0,0,0}, gcd_tabOPgrindc, 0};
CLU_proc gcd_tab_oe_grindp = {{0,0,0,0}, gcd_tabOPgrindp, 0};
CLU_proc gcd_tab_oe_debug_print = {{0,0,0,0}, gcd_tabOPdebug_print, 0};

gcd_tab_OPS gcd_tab_ops_actual = {4, (OWNPTR)&gcd_tab_own_init, (OWNPTR)&gcd_tab_own_init, {
    {&gcd_tab_oe_grind, "grind"},
    {&gcd_tab_oe_grindc, "grindc"},
    {&gcd_tab_oe_grindp, "grindp"},
    {&gcd_tab_oe_debug_print, "debug_print"}}};

struct OPS *gcd_tab_ops = (struct OPS *)&gcd_tab_ops_actual;

/**** END CLUSTER gcd_tab ****/

/**** BEGIN CLUSTER gcd_store ****/

extern errcode _bytevecOPstore();
extern errcode gcd_storeOPneed();
extern errcode _advOPget_size();
extern errcode _advOPget_low();
extern errcode _advOPget_start();
extern errcode _advOPget_predict();
extern errcode intOPdiv();
extern errcode intOPsub();
extern errcode intOPmin();
extern errcode _wordvecOPmove_b2w();
extern errcode intOPequal();
extern errcode intOPle();
extern errcode nullOPdebug_print();
struct OPS *_adv_of__obj_table;
struct OPS *_adv_of__obj_ops;
struct OPS *_adv_of__obj_ops;
OWNPTR _adv_of__obj_owns;
static int gcd_store_own_init = 0;
OWN_req gcd_store_ownreqs = {0,0};
CLUREF gcd_storeOPpos;
CLUREF gcd_storeOPbuf;
CLUREF gcd_storeOPch;
errcode gcd_store_own_init_proc()
{
struct {
    errcode err;
    } locals;
    enter_own_init_proc();
        if (gcd_store_own_init == 0) {
        add_parm_info_type(0, _obj_ops, _adv_of_t_reqs);
        find_type_instance(_adv_ops, 1, &_adv_ownreqs, &(_adv_of__obj_ops));
        gcd_store_own_init = 1;
        {
            {gcd_storeOPpos.num = 1;
            }
            }
        gcd_storeOPbuf.num = UNINIT;
        gcd_storeOPch.num = UNINIT;
        {signal(ERR_ok);}
    ex_0: pclu_unhandled(locals.err); {signal(ERR_failure);}
        }
    }

extern struct dbg_info* dbg_info_gcd_storeOPinit;
#undef MY_TRACE_FLAG
#define MY_TRACE_FLAG gcd_storeOPinit_TRACE
int gcd_storeOPinit_TRACE;
static Vlist14 owns_gcd_store = {0, 14,{ {0, 2, "gcd_store_init", &int_ops}
,  {0, 2, "pos", &int_ops},  {0, 2, "buf", &_wordvec_ops},  {0, 2, "ch", &_chan_ops}, {0, 2, "gcd_storeOPinit_init", &int_ops}
, {0, 2, "gcd_storeOPinit_init", &int_ops}
, {0, 2, "gcd_storeOPinit_init", &int_ops}
, {0, 2, "gcd_storeOPinit_init", &int_ops}
, {0, 2, "gcd_storeOPinit_init", &int_ops}
, {0, 2, "gcd_storeOPinit_init", &int_ops}
, {0, 2, "gcd_storeOPinit_init", &int_ops}
, {0, 2, "gcd_storeOPinit_init", &int_ops}
, {0, 2, "gcd_storeOPinit_init", &int_ops}
, {0, 2, "gcd_storeOPinit_init", &int_ops}
}
};

/**** BEGIN PROCEDURE init ****/

errcode gcd_storeOPinit(w, c)
CLUREF w;
CLUREF c;
    {
    struct {
        struct dbg_info *DBG_INFO;
        int DBG_LINE;
        errcode err;
        errcode ecode2;
        CLUREF w;
        CLUREF c;
        } locals;
    locals.w.num = UNINIT;
    locals.c.num = UNINIT;
    locals.DBG_INFO = dbg_info_gcd_storeOPinit;
    locals.w = w;
    locals.c = c;
        if (gcd_store_own_init == 0) {
            locals.err = gcd_store_own_init_proc();
            if (locals.err != ERR_ok) goto ex_0;
            }
    enter_proc(367);

  LINE(369);
    {
    gcd_storeOPbuf.num = locals.w.num;
    }

  LINE(370);
    {
    gcd_storeOPch.num = locals.c.num;
    }

  LINE(371);
    {
    gcd_storeOPpos.num = 1;
    }
    goto end_0;
    ex_0:
        {
            if (locals.err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(locals.err);
            {signal(ERR_failure);}
        }
    end_0: {signal(ERR_ok);}
    }

/**** END PROCEDURE init ****/

typedef struct {
    int hdr;
    int count;
    char *name;
    char *fname;
    bool is_iter;
    int is_parmd;
    int addr;
    int nargs;
    Vlist0 *vals;
    siglist0 *sigs;
    Vlist4 *locals;
    Vlist14 *owns;
    Vlist0 *ptowns;
    Vlist0 *popowns;
    Slist0 *type_formals;
    Slist0 *op_formals;
    } dbg_info_gcd_storeOPinit_actual;
static Vlist0 vals_gcd_storeOPinit = {0, 0};
static siglist0 sigs_gcd_storeOPinit = {0, 0};
static Vlist4 locals_gcd_storeOPinit = {0, 4,{ {0, 2, "err", &int_ops},  {0, 2, "ecode2", &int_ops},  {0, 2, "w", &_wordvec_ops},  {0, 2, "c", &_chan_ops}}
};
static Vlist0 popowns_gcd_storeOPinit = {0, 0};
Slist0 tformals_gcd_storeOPinit = {0, 0};
Slist0 opformals_gcd_storeOPinit = {0, 0};
dbg_info_gcd_storeOPinit_actual dbg_info_gcd_storeOPinit_data = {0, 12, 
    "gcd_storeOPinit", "/common/pub/dcurtis-temp/pclu/lib/clu/gcd_tab.clu", 0, 0, (int)gcd_storeOPinit, 2, 
    &vals_gcd_storeOPinit, &sigs_gcd_storeOPinit, &locals_gcd_storeOPinit, &owns_gcd_store, &NO_VALS, &NO_VALS, &NO_PARMS, &NO_PARMS};
    struct dbg_info *dbg_info_gcd_storeOPinit = (struct dbg_info*)&dbg_info_gcd_storeOPinit_data;
extern struct dbg_info* dbg_info_gcd_storeOPstore_id;
#undef MY_TRACE_FLAG
#define MY_TRACE_FLAG gcd_storeOPstore_id_TRACE
int gcd_storeOPstore_id_TRACE;
extern OWN_req _bytevec_ownreqs;
static int gcd_storeOPstore_id_own_init = 0;

/**** BEGIN PROCEDURE store_id ****/

errcode gcd_storeOPstore_id()
    {
    struct {
        struct dbg_info *DBG_INFO;
        int DBG_LINE;
        errcode err;
        errcode ecode2;
        } locals;
    locals.DBG_INFO = dbg_info_gcd_storeOPstore_id;
        if (gcd_storeOPstore_id_own_init == 0) {
        if (gcd_store_own_init == 0) {
            locals.err = gcd_store_own_init_proc();
            if (locals.err != ERR_ok) goto ex_0;
            }
        gcd_storeOPstore_id_own_init = 1;
    }
    enter_proc(374);

  LINE(382);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = gcd_storeOPbuf.num;
    T_1_2.ch = 'D';
    locals.err = _bytevecOPstore(T_1_1, CLU_1, T_1_2);
    if (locals.err != ERR_ok) goto ex_0;
    }

  LINE(383);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = gcd_storeOPbuf.num;
    T_1_2.ch = 'W';
    locals.err = _bytevecOPstore(T_1_1, CLU_2, T_1_2);
    if (locals.err != ERR_ok) goto ex_0;
    }

  LINE(384);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = gcd_storeOPbuf.num;
    T_1_2.ch = 'C';
    locals.err = _bytevecOPstore(T_1_1, CLU_3, T_1_2);
    if (locals.err != ERR_ok) goto ex_0;
    }

  LINE(385);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = gcd_storeOPbuf.num;
    T_1_2.ch = '1';
    locals.err = _bytevecOPstore(T_1_1, CLU_4, T_1_2);
    if (locals.err != ERR_ok) goto ex_0;
    }

  LINE(386);
    {
    gcd_storeOPpos.num = 3;
    }
    goto end_0;
    ex_0:
        {
            if (locals.err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(locals.err);
            {signal(ERR_failure);}
        }
    end_0: {signal(ERR_ok);}
    }

/**** END PROCEDURE store_id ****/

typedef struct {
    int hdr;
    int count;
    char *name;
    char *fname;
    bool is_iter;
    int is_parmd;
    int addr;
    int nargs;
    Vlist0 *vals;
    siglist0 *sigs;
    Vlist2 *locals;
    Vlist14 *owns;
    Vlist0 *ptowns;
    Vlist0 *popowns;
    Slist0 *type_formals;
    Slist0 *op_formals;
    } dbg_info_gcd_storeOPstore_id_actual;
static Vlist0 vals_gcd_storeOPstore_id = {0, 0};
static siglist0 sigs_gcd_storeOPstore_id = {0, 0};
static Vlist2 locals_gcd_storeOPstore_id = {0, 2,{ {0, 2, "err", &int_ops},  {0, 2, "ecode2", &int_ops}}
};
static Vlist0 popowns_gcd_storeOPstore_id = {0, 0};
Slist0 tformals_gcd_storeOPstore_id = {0, 0};
Slist0 opformals_gcd_storeOPstore_id = {0, 0};
dbg_info_gcd_storeOPstore_id_actual dbg_info_gcd_storeOPstore_id_data = {0, 12, 
    "gcd_storeOPstore_id", "/common/pub/dcurtis-temp/pclu/lib/clu/gcd_tab.clu", 0, 0, (int)gcd_storeOPstore_id, 0, 
    &vals_gcd_storeOPstore_id, &sigs_gcd_storeOPstore_id, &locals_gcd_storeOPstore_id, &owns_gcd_store, &NO_VALS, &NO_VALS, &NO_PARMS, &NO_PARMS};
    struct dbg_info *dbg_info_gcd_storeOPstore_id = (struct dbg_info*)&dbg_info_gcd_storeOPstore_id_data;
extern struct dbg_info* dbg_info_gcd_storeOPstore_lit;
#undef MY_TRACE_FLAG
#define MY_TRACE_FLAG gcd_storeOPstore_lit_TRACE
int gcd_storeOPstore_lit_TRACE;
extern OWN_req gcd_store_ownreqs;
extern struct OPS *gcd_store_ops;
static int gcd_storeOPstore_lit_own_init = 0;

/**** BEGIN PROCEDURE store_lit ****/

errcode gcd_storeOPstore_lit(i1)
CLUREF i1;
    {
    struct {
        struct dbg_info *DBG_INFO;
        int DBG_LINE;
        errcode err;
        errcode ecode2;
        CLUREF i1;
        } locals;
    locals.i1.num = UNINIT;
    locals.DBG_INFO = dbg_info_gcd_storeOPstore_lit;
    locals.i1 = i1;
        if (gcd_storeOPstore_lit_own_init == 0) {
        if (gcd_store_own_init == 0) {
            locals.err = gcd_store_own_init_proc();
            if (locals.err != ERR_ok) goto ex_0;
            }
        gcd_storeOPstore_lit_own_init = 1;
    }
    enter_proc(390);

  LINE(392);
    {
    CLUREF T_2_1;
    locals.err = gcd_storeOPneed(CLU_1, &T_2_1);
    if (locals.err != ERR_ok) goto ex_1;
    }
    goto end_1;
    ex_1:
        if (locals.err == ERR_not_possible) {signal(ERR_not_possible);}
        else {
            goto ex_0;}
    end_1:;

  LINE(394);
    {
    locals.err = _wordvecOPstore(gcd_storeOPbuf, gcd_storeOPpos, CLU_32);
    if (locals.err != ERR_ok) goto ex_0;
    }

  LINE(395);
    {
    CLUREF T_1_1;
    locals.err = intOPadd(gcd_storeOPpos, CLU_1, &T_1_1);
    if (locals.err != ERR_ok) goto ex_0;
    gcd_storeOPpos.num = T_1_1.num;
    }

  LINE(396);
    {
    CLUREF T_2_1;
    locals.err = gcd_storeOPneed(CLU_1, &T_2_1);
    if (locals.err != ERR_ok) goto ex_2;
    }
    goto end_2;
    ex_2:
        if (locals.err == ERR_not_possible) {signal(ERR_not_possible);}
        else {
            goto ex_0;}
    end_2:;

  LINE(398);
    {
    locals.err = _wordvecOPstore(gcd_storeOPbuf, gcd_storeOPpos, locals.i1);
    if (locals.err != ERR_ok) goto ex_0;
    }

  LINE(399);
    {
    CLUREF T_1_1;
    locals.err = intOPadd(gcd_storeOPpos, CLU_1, &T_1_1);
    if (locals.err != ERR_ok) goto ex_0;
    gcd_storeOPpos.num = T_1_1.num;
    }
    goto end_0;
    ex_0:
        {
            if (locals.err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(locals.err);
            {signal(ERR_failure);}
        }
    end_0: {signal(ERR_ok);}
    }

/**** END PROCEDURE store_lit ****/

typedef struct {
    int hdr;
    int count;
    char *name;
    char *fname;
    bool is_iter;
    int is_parmd;
    int addr;
    int nargs;
    Vlist0 *vals;
    siglist1 *sigs;
    Vlist3 *locals;
    Vlist14 *owns;
    Vlist0 *ptowns;
    Vlist0 *popowns;
    Slist0 *type_formals;
    Slist0 *op_formals;
    } dbg_info_gcd_storeOPstore_lit_actual;
static Vlist0 vals_gcd_storeOPstore_lit = {0, 0};
static sig_desc1 sig_gcd_storeOPstore_lit_1 = {0, 4, "not_possible", {0, 1
, { {0, 2, "", &string_ops}}}};
static siglist1 sigs_gcd_storeOPstore_lit = {0, 1, (sig_desc*)&sig_gcd_storeOPstore_lit_1};
static Vlist3 locals_gcd_storeOPstore_lit = {0, 3,{ {0, 2, "err", &int_ops},  {0, 2, "ecode2", &int_ops},  {0, 2, "i1", &int_ops}}
};
static Vlist0 popowns_gcd_storeOPstore_lit = {0, 0};
Slist0 tformals_gcd_storeOPstore_lit = {0, 0};
Slist0 opformals_gcd_storeOPstore_lit = {0, 0};
dbg_info_gcd_storeOPstore_lit_actual dbg_info_gcd_storeOPstore_lit_data = {0, 12, 
    "gcd_storeOPstore_lit", "/common/pub/dcurtis-temp/pclu/lib/clu/gcd_tab.clu", 0, 0, (int)gcd_storeOPstore_lit, 1, 
    &vals_gcd_storeOPstore_lit, &sigs_gcd_storeOPstore_lit, &locals_gcd_storeOPstore_lit, &owns_gcd_store, &NO_VALS, &NO_VALS, &NO_PARMS, &NO_PARMS};
    struct dbg_info *dbg_info_gcd_storeOPstore_lit = (struct dbg_info*)&dbg_info_gcd_storeOPstore_lit_data;
extern struct dbg_info* dbg_info_gcd_storeOPstore_ref;
#undef MY_TRACE_FLAG
#define MY_TRACE_FLAG gcd_storeOPstore_ref_TRACE
int gcd_storeOPstore_ref_TRACE;
static int gcd_storeOPstore_ref_own_init = 0;

/**** BEGIN PROCEDURE store_ref ****/

errcode gcd_storeOPstore_ref(i1)
CLUREF i1;
    {
    struct {
        struct dbg_info *DBG_INFO;
        int DBG_LINE;
        errcode err;
        errcode ecode2;
        CLUREF i1;
        } locals;
    locals.i1.num = UNINIT;
    locals.DBG_INFO = dbg_info_gcd_storeOPstore_ref;
    locals.i1 = i1;
        if (gcd_storeOPstore_ref_own_init == 0) {
        if (gcd_store_own_init == 0) {
            locals.err = gcd_store_own_init_proc();
            if (locals.err != ERR_ok) goto ex_0;
            }
        gcd_storeOPstore_ref_own_init = 1;
    }
    enter_proc(402);

  LINE(404);
    {
    CLUREF T_2_1;
    locals.err = gcd_storeOPneed(CLU_1, &T_2_1);
    if (locals.err != ERR_ok) goto ex_1;
    }
    goto end_1;
    ex_1:
        if (locals.err == ERR_not_possible) {signal(ERR_not_possible);}
        else {
            goto ex_0;}
    end_1:;

  LINE(406);
    {
    locals.err = _wordvecOPstore(gcd_storeOPbuf, gcd_storeOPpos, CLU_33);
    if (locals.err != ERR_ok) goto ex_0;
    }

  LINE(407);
    {
    CLUREF T_1_1;
    locals.err = intOPadd(gcd_storeOPpos, CLU_1, &T_1_1);
    if (locals.err != ERR_ok) goto ex_0;
    gcd_storeOPpos.num = T_1_1.num;
    }

  LINE(408);
    {
    CLUREF T_2_1;
    locals.err = gcd_storeOPneed(CLU_1, &T_2_1);
    if (locals.err != ERR_ok) goto ex_2;
    }
    goto end_2;
    ex_2:
        if (locals.err == ERR_not_possible) {signal(ERR_not_possible);}
        else {
            goto ex_0;}
    end_2:;

  LINE(410);
    {
    locals.err = _wordvecOPstore(gcd_storeOPbuf, gcd_storeOPpos, locals.i1);
    if (locals.err != ERR_ok) goto ex_0;
    }

  LINE(411);
    {
    CLUREF T_1_1;
    locals.err = intOPadd(gcd_storeOPpos, CLU_1, &T_1_1);
    if (locals.err != ERR_ok) goto ex_0;
    gcd_storeOPpos.num = T_1_1.num;
    }
    goto end_0;
    ex_0:
        {
            if (locals.err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(locals.err);
            {signal(ERR_failure);}
        }
    end_0: {signal(ERR_ok);}
    }

/**** END PROCEDURE store_ref ****/

typedef struct {
    int hdr;
    int count;
    char *name;
    char *fname;
    bool is_iter;
    int is_parmd;
    int addr;
    int nargs;
    Vlist0 *vals;
    siglist1 *sigs;
    Vlist3 *locals;
    Vlist14 *owns;
    Vlist0 *ptowns;
    Vlist0 *popowns;
    Slist0 *type_formals;
    Slist0 *op_formals;
    } dbg_info_gcd_storeOPstore_ref_actual;
static Vlist0 vals_gcd_storeOPstore_ref = {0, 0};
static sig_desc1 sig_gcd_storeOPstore_ref_1 = {0, 4, "not_possible", {0, 1
, { {0, 2, "", &string_ops}}}};
static siglist1 sigs_gcd_storeOPstore_ref = {0, 1, (sig_desc*)&sig_gcd_storeOPstore_ref_1};
static Vlist3 locals_gcd_storeOPstore_ref = {0, 3,{ {0, 2, "err", &int_ops},  {0, 2, "ecode2", &int_ops},  {0, 2, "i1", &int_ops}}
};
static Vlist0 popowns_gcd_storeOPstore_ref = {0, 0};
Slist0 tformals_gcd_storeOPstore_ref = {0, 0};
Slist0 opformals_gcd_storeOPstore_ref = {0, 0};
dbg_info_gcd_storeOPstore_ref_actual dbg_info_gcd_storeOPstore_ref_data = {0, 12, 
    "gcd_storeOPstore_ref", "/common/pub/dcurtis-temp/pclu/lib/clu/gcd_tab.clu", 0, 0, (int)gcd_storeOPstore_ref, 1, 
    &vals_gcd_storeOPstore_ref, &sigs_gcd_storeOPstore_ref, &locals_gcd_storeOPstore_ref, &owns_gcd_store, &NO_VALS, &NO_VALS, &NO_PARMS, &NO_PARMS};
    struct dbg_info *dbg_info_gcd_storeOPstore_ref = (struct dbg_info*)&dbg_info_gcd_storeOPstore_ref_data;
extern struct dbg_info* dbg_info_gcd_storeOPstore_hdr;
#undef MY_TRACE_FLAG
#define MY_TRACE_FLAG gcd_storeOPstore_hdr_TRACE
int gcd_storeOPstore_hdr_TRACE;
static int gcd_storeOPstore_hdr_own_init = 0;

/**** BEGIN PROCEDURE store_hdr ****/

errcode gcd_storeOPstore_hdr(hid, size)
CLUREF hid;
CLUREF size;
    {
    struct {
        struct dbg_info *DBG_INFO;
        int DBG_LINE;
        errcode err;
        errcode ecode2;
        CLUREF hid;
        CLUREF size;
        } locals;
    locals.hid.num = UNINIT;
    locals.size.num = UNINIT;
    locals.DBG_INFO = dbg_info_gcd_storeOPstore_hdr;
    locals.hid = hid;
    locals.size = size;
        if (gcd_storeOPstore_hdr_own_init == 0) {
        if (gcd_store_own_init == 0) {
            locals.err = gcd_store_own_init_proc();
            if (locals.err != ERR_ok) goto ex_0;
            }
        gcd_storeOPstore_hdr_own_init = 1;
    }
    enter_proc(415);

  LINE(417);
    {
    CLUREF T_2_1;
    locals.err = gcd_storeOPneed(CLU_1, &T_2_1);
    if (locals.err != ERR_ok) goto ex_1;
    }
    goto end_1;
    ex_1:
        if (locals.err == ERR_not_possible) {signal(ERR_not_possible);}
        else {
            goto ex_0;}
    end_1:;

  LINE(419);
    {
    locals.err = _wordvecOPstore(gcd_storeOPbuf, gcd_storeOPpos, locals.hid);
    if (locals.err != ERR_ok) goto ex_0;
    }

  LINE(420);
    {
    CLUREF T_1_1;
    locals.err = intOPadd(gcd_storeOPpos, CLU_1, &T_1_1);
    if (locals.err != ERR_ok) goto ex_0;
    gcd_storeOPpos.num = T_1_1.num;
    }

  LINE(421);
    {
    CLUREF T_2_1;
    locals.err = gcd_storeOPneed(CLU_1, &T_2_1);
    if (locals.err != ERR_ok) goto ex_2;
    }
    goto end_2;
    ex_2:
        if (locals.err == ERR_not_possible) {signal(ERR_not_possible);}
        else {
            goto ex_0;}
    end_2:;

  LINE(423);
    {
    locals.err = _wordvecOPstore(gcd_storeOPbuf, gcd_storeOPpos, locals.size);
    if (locals.err != ERR_ok) goto ex_0;
    }

  LINE(424);
    {
    CLUREF T_1_1;
    locals.err = intOPadd(gcd_storeOPpos, CLU_1, &T_1_1);
    if (locals.err != ERR_ok) goto ex_0;
    gcd_storeOPpos.num = T_1_1.num;
    }
    goto end_0;
    ex_0:
        {
            if (locals.err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(locals.err);
            {signal(ERR_failure);}
        }
    end_0: {signal(ERR_ok);}
    }

/**** END PROCEDURE store_hdr ****/

typedef struct {
    int hdr;
    int count;
    char *name;
    char *fname;
    bool is_iter;
    int is_parmd;
    int addr;
    int nargs;
    Vlist0 *vals;
    siglist1 *sigs;
    Vlist4 *locals;
    Vlist14 *owns;
    Vlist0 *ptowns;
    Vlist0 *popowns;
    Slist0 *type_formals;
    Slist0 *op_formals;
    } dbg_info_gcd_storeOPstore_hdr_actual;
static Vlist0 vals_gcd_storeOPstore_hdr = {0, 0};
static sig_desc1 sig_gcd_storeOPstore_hdr_1 = {0, 4, "not_possible", {0, 1
, { {0, 2, "", &string_ops}}}};
static siglist1 sigs_gcd_storeOPstore_hdr = {0, 1, (sig_desc*)&sig_gcd_storeOPstore_hdr_1};
static Vlist4 locals_gcd_storeOPstore_hdr = {0, 4,{ {0, 2, "err", &int_ops},  {0, 2, "ecode2", &int_ops},  {0, 2, "hid", &int_ops},  {0, 2, "size", &int_ops}}
};
static Vlist0 popowns_gcd_storeOPstore_hdr = {0, 0};
Slist0 tformals_gcd_storeOPstore_hdr = {0, 0};
Slist0 opformals_gcd_storeOPstore_hdr = {0, 0};
dbg_info_gcd_storeOPstore_hdr_actual dbg_info_gcd_storeOPstore_hdr_data = {0, 12, 
    "gcd_storeOPstore_hdr", "/common/pub/dcurtis-temp/pclu/lib/clu/gcd_tab.clu", 0, 0, (int)gcd_storeOPstore_hdr, 2, 
    &vals_gcd_storeOPstore_hdr, &sigs_gcd_storeOPstore_hdr, &locals_gcd_storeOPstore_hdr, &owns_gcd_store, &NO_VALS, &NO_VALS, &NO_PARMS, &NO_PARMS};
    struct dbg_info *dbg_info_gcd_storeOPstore_hdr = (struct dbg_info*)&dbg_info_gcd_storeOPstore_hdr_data;
extern struct dbg_info* dbg_info_gcd_storeOPstore_array_desc;
#undef MY_TRACE_FLAG
#define MY_TRACE_FLAG gcd_storeOPstore_array_desc_TRACE
int gcd_storeOPstore_array_desc_TRACE;
struct OPS *_adv_of__obj_table;
struct OPS *_adv_of__obj_ops;
struct OPS *_adv_of__obj_ops;
OWNPTR _adv_of__obj_owns;
static int gcd_storeOPstore_array_desc_own_init = 0;

/**** BEGIN PROCEDURE store_array_desc ****/

errcode gcd_storeOPstore_array_desc(a)
CLUREF a;
    {
    struct {
        struct dbg_info *DBG_INFO;
        int DBG_LINE;
        errcode err;
        errcode ecode2;
        CLUREF a;
        } locals;
    locals.a.num = UNINIT;
    locals.DBG_INFO = dbg_info_gcd_storeOPstore_array_desc;
    locals.a = a;
        if (gcd_storeOPstore_array_desc_own_init == 0) {
        if (gcd_store_own_init == 0) {
            locals.err = gcd_store_own_init_proc();
            if (locals.err != ERR_ok) goto ex_0;
            }
        gcd_storeOPstore_array_desc_own_init = 1;
    }
    enter_proc(429);

  LINE(431);
    {
    CLUREF T_2_1;
    locals.err = gcd_storeOPneed(CLU_1, &T_2_1);
    if (locals.err != ERR_ok) goto ex_1;
    }
    goto end_1;
    ex_1:
        if (locals.err == ERR_not_possible) {signal(ERR_not_possible);}
        else {
            goto ex_0;}
    end_1:;

  LINE(433);
    {
    CLUREF T_1_1;
    T_1_1.num = 24576;
    locals.err = _wordvecOPstore(gcd_storeOPbuf, gcd_storeOPpos, T_1_1);
    if (locals.err != ERR_ok) goto ex_0;
    }

  LINE(434);
    {
    CLUREF T_1_1;
    locals.err = intOPadd(gcd_storeOPpos, CLU_1, &T_1_1);
    if (locals.err != ERR_ok) goto ex_0;
    gcd_storeOPpos.num = T_1_1.num;
    }

  LINE(436);
    {
    CLUREF T_2_1;
    locals.err = gcd_storeOPneed(CLU_1, &T_2_1);
    if (locals.err != ERR_ok) goto ex_2;
    }
    goto end_2;
    ex_2:
        if (locals.err == ERR_not_possible) {signal(ERR_not_possible);}
        else {
            goto ex_0;}
    end_2:;

  LINE(438);
    {
    locals.err = _wordvecOPstore(gcd_storeOPbuf, gcd_storeOPpos, CLU_32);
    if (locals.err != ERR_ok) goto ex_0;
    }

  LINE(439);
    {
    CLUREF T_1_1;
    locals.err = intOPadd(gcd_storeOPpos, CLU_1, &T_1_1);
    if (locals.err != ERR_ok) goto ex_0;
    gcd_storeOPpos.num = T_1_1.num;
    }

  LINE(441);
    {
    CLUREF T_2_1;
    locals.err = gcd_storeOPneed(CLU_1, &T_2_1);
    if (locals.err != ERR_ok) goto ex_3;
    }
    goto end_3;
    ex_3:
        if (locals.err == ERR_not_possible) {signal(ERR_not_possible);}
        else {
            goto ex_0;}
    end_3:;

  LINE(443);
    {
    CLUREF T_1_1;
    generic_CLU_proc.type_owns = _adv_of__obj_ops->type_owns;
    generic_CLU_proc.proc = _advOPget_size;
    CUR_PROC_VAR.proc = &generic_CLU_proc;
    locals.err = _advOPget_size(locals.a, &T_1_1);
    if (locals.err != ERR_ok) goto ex_0;
    locals.err = _wordvecOPstore(gcd_storeOPbuf, gcd_storeOPpos, T_1_1);
    if (locals.err != ERR_ok) goto ex_0;
    }

  LINE(444);
    {
    CLUREF T_1_1;
    locals.err = intOPadd(gcd_storeOPpos, CLU_1, &T_1_1);
    if (locals.err != ERR_ok) goto ex_0;
    gcd_storeOPpos.num = T_1_1.num;
    }

  LINE(446);
    {
    CLUREF T_2_1;
    locals.err = gcd_storeOPneed(CLU_1, &T_2_1);
    if (locals.err != ERR_ok) goto ex_4;
    }
    goto end_4;
    ex_4:
        if (locals.err == ERR_not_possible) {signal(ERR_not_possible);}
        else {
            goto ex_0;}
    end_4:;

  LINE(448);
    {
    CLUREF T_1_1;
    generic_CLU_proc.type_owns = _adv_of__obj_ops->type_owns;
    generic_CLU_proc.proc = _advOPget_low;
    CUR_PROC_VAR.proc = &generic_CLU_proc;
    locals.err = _advOPget_low(locals.a, &T_1_1);
    if (locals.err != ERR_ok) goto ex_0;
    locals.err = _wordvecOPstore(gcd_storeOPbuf, gcd_storeOPpos, T_1_1);
    if (locals.err != ERR_ok) goto ex_0;
    }

  LINE(449);
    {
    CLUREF T_1_1;
    locals.err = intOPadd(gcd_storeOPpos, CLU_1, &T_1_1);
    if (locals.err != ERR_ok) goto ex_0;
    gcd_storeOPpos.num = T_1_1.num;
    }

  LINE(451);
    {
    CLUREF T_2_1;
    locals.err = gcd_storeOPneed(CLU_1, &T_2_1);
    if (locals.err != ERR_ok) goto ex_5;
    }
    goto end_5;
    ex_5:
        if (locals.err == ERR_not_possible) {signal(ERR_not_possible);}
        else {
            goto ex_0;}
    end_5:;

  LINE(453);
    {
    CLUREF T_1_1;
    generic_CLU_proc.type_owns = _adv_of__obj_ops->type_owns;
    generic_CLU_proc.proc = _advOPget_start;
    CUR_PROC_VAR.proc = &generic_CLU_proc;
    locals.err = _advOPget_start(locals.a, &T_1_1);
    if (locals.err != ERR_ok) goto ex_0;
    locals.err = _wordvecOPstore(gcd_storeOPbuf, gcd_storeOPpos, T_1_1);
    if (locals.err != ERR_ok) goto ex_0;
    }

  LINE(454);
    {
    CLUREF T_1_1;
    locals.err = intOPadd(gcd_storeOPpos, CLU_1, &T_1_1);
    if (locals.err != ERR_ok) goto ex_0;
    gcd_storeOPpos.num = T_1_1.num;
    }

  LINE(456);
    {
    CLUREF T_2_1;
    locals.err = gcd_storeOPneed(CLU_1, &T_2_1);
    if (locals.err != ERR_ok) goto ex_6;
    }
    goto end_6;
    ex_6:
        if (locals.err == ERR_not_possible) {signal(ERR_not_possible);}
        else {
            goto ex_0;}
    end_6:;

  LINE(458);
    {
    CLUREF T_1_1;
    generic_CLU_proc.type_owns = _adv_of__obj_ops->type_owns;
    generic_CLU_proc.proc = _advOPget_predict;
    CUR_PROC_VAR.proc = &generic_CLU_proc;
    locals.err = _advOPget_predict(locals.a, &T_1_1);
    if (locals.err != ERR_ok) goto ex_0;
    locals.err = _wordvecOPstore(gcd_storeOPbuf, gcd_storeOPpos, T_1_1);
    if (locals.err != ERR_ok) goto ex_0;
    }

  LINE(459);
    {
    CLUREF T_1_1;
    locals.err = intOPadd(gcd_storeOPpos, CLU_1, &T_1_1);
    if (locals.err != ERR_ok) goto ex_0;
    gcd_storeOPpos.num = T_1_1.num;
    }
    goto end_0;
    ex_0:
        {
            if (locals.err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(locals.err);
            {signal(ERR_failure);}
        }
    end_0: {signal(ERR_ok);}
    }

/**** END PROCEDURE store_array_desc ****/

typedef struct {
    int hdr;
    int count;
    char *name;
    char *fname;
    bool is_iter;
    int is_parmd;
    int addr;
    int nargs;
    Vlist0 *vals;
    siglist1 *sigs;
    Vlist3 *locals;
    Vlist14 *owns;
    Vlist0 *ptowns;
    Vlist0 *popowns;
    Slist0 *type_formals;
    Slist0 *op_formals;
    } dbg_info_gcd_storeOPstore_array_desc_actual;
static Vlist0 vals_gcd_storeOPstore_array_desc = {0, 0};
static sig_desc1 sig_gcd_storeOPstore_array_desc_1 = {0, 4, "not_possible", {0, 1
, { {0, 2, "", &string_ops}}}};
static siglist1 sigs_gcd_storeOPstore_array_desc = {0, 1, (sig_desc*)&sig_gcd_storeOPstore_array_desc_1};
static Vlist3 locals_gcd_storeOPstore_array_desc = {0, 3,{ {0, 2, "err", &int_ops},  {0, 2, "ecode2", &int_ops},  {0, 2, "a", &_adv_of__obj_ops}}
};
static Vlist0 popowns_gcd_storeOPstore_array_desc = {0, 0};
Slist0 tformals_gcd_storeOPstore_array_desc = {0, 0};
Slist0 opformals_gcd_storeOPstore_array_desc = {0, 0};
dbg_info_gcd_storeOPstore_array_desc_actual dbg_info_gcd_storeOPstore_array_desc_data = {0, 12, 
    "gcd_storeOPstore_array_desc", "/common/pub/dcurtis-temp/pclu/lib/clu/gcd_tab.clu", 0, 0, (int)gcd_storeOPstore_array_desc, 1, 
    &vals_gcd_storeOPstore_array_desc, &sigs_gcd_storeOPstore_array_desc, &locals_gcd_storeOPstore_array_desc, &owns_gcd_store, &NO_VALS, &NO_VALS, &NO_PARMS, &NO_PARMS};
    struct dbg_info *dbg_info_gcd_storeOPstore_array_desc = (struct dbg_info*)&dbg_info_gcd_storeOPstore_array_desc_data;
extern struct dbg_info* dbg_info_gcd_storeOPstore_string;
#undef MY_TRACE_FLAG
#define MY_TRACE_FLAG gcd_storeOPstore_string_TRACE
int gcd_storeOPstore_string_TRACE;
static int gcd_storeOPstore_string_own_init = 0;

/**** BEGIN PROCEDURE store_string ****/

errcode gcd_storeOPstore_string(s)
CLUREF s;
    {
    struct {
        struct dbg_info *DBG_INFO;
        int DBG_LINE;
        errcode err;
        errcode ecode2;
        CLUREF bsize;
        CLUREF bytes_to_go;
        CLUREF total_bytes;
        CLUREF rounded_longs;
        CLUREF total_longs;
        CLUREF total_output;
        CLUREF i;
        CLUREF avail;
        CLUREF copy_count;
        CLUREF s;
        } locals;
    locals.bsize.num = UNINIT;
    locals.bytes_to_go.num = UNINIT;
    locals.total_bytes.num = UNINIT;
    locals.rounded_longs.num = UNINIT;
    locals.total_longs.num = UNINIT;
    locals.total_output.num = UNINIT;
    locals.i.num = UNINIT;
    locals.avail.num = UNINIT;
    locals.copy_count.num = UNINIT;
    locals.s.num = UNINIT;
    locals.DBG_INFO = dbg_info_gcd_storeOPstore_string;
    locals.s = s;
        if (gcd_storeOPstore_string_own_init == 0) {
        if (gcd_store_own_init == 0) {
            locals.err = gcd_store_own_init_proc();
            if (locals.err != ERR_ok) goto ex_0;
            }
        gcd_storeOPstore_string_own_init = 1;
    }
    enter_proc(464);

  LINE(466);
    {
        {CLUREF T_1_1;
        locals.err = _bytevecOPsize(locals.s, &T_1_1);
        if (locals.err != ERR_ok) goto ex_0;
        locals.bsize.num = T_1_1.num;
        }
        }

  LINE(467);
    {
        {locals.bytes_to_go.num = locals.bsize.num;
        }
        }

  LINE(468);
    {
        {CLUREF T_1_1;
        locals.err = intOPadd(locals.bsize, CLU_1, &T_1_1);
        if (locals.err != ERR_ok) goto ex_0;
        locals.total_bytes.num = T_1_1.num;
        }
        }

  LINE(469);
    {
        {CLUREF T_1_1;
        CLUREF T_1_2;
        CLUREF T_1_3;
        locals.err = intOPadd(locals.total_bytes, CLU_4, &T_1_1);
        if (locals.err != ERR_ok) goto ex_0;
        locals.err = intOPsub(T_1_1, CLU_1, &T_1_2);
        if (locals.err != ERR_ok) goto ex_0;
        locals.err = intOPdiv(T_1_2, CLU_4, &T_1_3);
        if (locals.err != ERR_ok) goto ex_0;
        locals.rounded_longs.num = T_1_3.num;
        }
        }

  LINE(470);
    {
        {locals.total_longs.num = locals.rounded_longs.num;
        }
        }

  LINE(471);
    {
        {locals.total_output.num = 0;
        }
        }

  LINE(472);
    {
        {locals.i.num = 1;
        }
        }

  LINE(473);
    for (;;) {
        if (true != true) { break; }

  LINE(474);
        {
            {CLUREF T_4_1;
            locals.err = gcd_storeOPneed(locals.rounded_longs, &T_4_1);
            if (locals.err != ERR_ok) goto ex_2;
            locals.avail.num = T_4_1.num;
            }
            }
        goto end_2;
        ex_2:
            if (locals.err == ERR_not_possible) {signal(ERR_not_possible);}
            else {
                goto ex_1;}
        end_2:;

  LINE(476);
        {
            {CLUREF T_3_1;
            CLUREF T_3_2;
            locals.err = intOPmul(locals.avail, CLU_4, &T_3_1);
            if (locals.err != ERR_ok) goto ex_1;
            locals.err = intOPmin(locals.bytes_to_go, T_3_1, &T_3_2);
            if (locals.err != ERR_ok) goto ex_1;
            locals.copy_count.num = T_3_2.num;
            }
            }

  LINE(477);
        {
        CLUREF T_3_1;
        CLUREF T_3_2;
        locals.err = intOPmul(gcd_storeOPpos, CLU_4, &T_3_1);
        if (locals.err != ERR_ok) goto ex_1;
        locals.err = intOPsub(T_3_1, CLU_3, &T_3_2);
        if (locals.err != ERR_ok) goto ex_1;
        locals.err = _wordvecOPmove_b2w(locals.s, locals.i, gcd_storeOPbuf, T_3_2, locals.copy_count);
        if (locals.err != ERR_ok) goto ex_1;
        }

  LINE(478);
        {
        CLUREF T_3_1;
        CLUREF T_3_2;
        locals.err = intOPmul(locals.avail, CLU_4, &T_3_1);
        if (locals.err != ERR_ok) goto ex_1;
        locals.err = intOPadd(locals.i, T_3_1, &T_3_2);
        if (locals.err != ERR_ok) goto ex_1;
        locals.i.num = T_3_2.num;
        }

  LINE(479);
        {
        CLUREF T_3_1;
        locals.err = intOPsub(locals.bytes_to_go, locals.copy_count, &T_3_1);
        if (locals.err != ERR_ok) goto ex_1;
        locals.bytes_to_go.num = T_3_1.num;
        }

  LINE(480);
        {
        CLUREF T_3_1;
        locals.err = intOPadd(gcd_storeOPpos, locals.avail, &T_3_1);
        if (locals.err != ERR_ok) goto ex_1;
        gcd_storeOPpos.num = T_3_1.num;
        }

  LINE(481);
        {
        CLUREF T_3_1;
        locals.err = intOPadd(locals.total_output, locals.avail, &T_3_1);
        if (locals.err != ERR_ok) goto ex_1;
        locals.total_output.num = T_3_1.num;
        }

  LINE(482);
        {
        CLUREF T_3_1;
        T_3_1.num = (locals.total_output.num == locals.total_longs.num)? true : false;
        if (T_3_1.num == true) {
            {
                locals.err = "ERR_done";
                goto ex_1;
                }
            }
            }/* end if */

  LINE(483);
        {
        CLUREF T_3_1;
        locals.err = intOPsub(locals.rounded_longs, locals.avail, &T_3_1);
        if (locals.err != ERR_ok) goto ex_1;
        locals.rounded_longs.num = T_3_1.num;
        }
        }
        end_while_1:;
        goto end_1;
        ex_1:
            if (errcmp(locals.err, "ERR_done")) {
            }
            else {
                goto ex_0;
            }
        end_1:;
    goto end_0;
    ex_0:
        {
            if (locals.err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(locals.err);
            {signal(ERR_failure);}
        }
    end_0: {signal(ERR_ok);}
    }

/**** END PROCEDURE store_string ****/

typedef struct {
    int hdr;
    int count;
    char *name;
    char *fname;
    bool is_iter;
    int is_parmd;
    int addr;
    int nargs;
    Vlist0 *vals;
    siglist1 *sigs;
    Vlist12 *locals;
    Vlist14 *owns;
    Vlist0 *ptowns;
    Vlist0 *popowns;
    Slist0 *type_formals;
    Slist0 *op_formals;
    } dbg_info_gcd_storeOPstore_string_actual;
static Vlist0 vals_gcd_storeOPstore_string = {0, 0};
static sig_desc1 sig_gcd_storeOPstore_string_1 = {0, 4, "not_possible", {0, 1
, { {0, 2, "", &string_ops}}}};
static siglist1 sigs_gcd_storeOPstore_string = {0, 1, (sig_desc*)&sig_gcd_storeOPstore_string_1};
static Vlist12 locals_gcd_storeOPstore_string = {0, 12,{ {0, 2, "err", &int_ops},  {0, 2, "ecode2", &int_ops},  {0, 2, "bsize", &int_ops},  {0, 2, "bytes_to_go", &int_ops},  {0, 2, "total_bytes", &int_ops},  {0, 2, "rounded_longs", &int_ops},  {0, 2, "total_longs", &int_ops},  {0, 2, "total_output", &int_ops},  {0, 2, "i", &int_ops},  {0, 2, "avail", &int_ops},  {0, 2, "copy_count", &int_ops},  {0, 2, "s", &_bytevec_ops}}
};
static Vlist0 popowns_gcd_storeOPstore_string = {0, 0};
Slist0 tformals_gcd_storeOPstore_string = {0, 0};
Slist0 opformals_gcd_storeOPstore_string = {0, 0};
dbg_info_gcd_storeOPstore_string_actual dbg_info_gcd_storeOPstore_string_data = {0, 12, 
    "gcd_storeOPstore_string", "/common/pub/dcurtis-temp/pclu/lib/clu/gcd_tab.clu", 0, 0, (int)gcd_storeOPstore_string, 1, 
    &vals_gcd_storeOPstore_string, &sigs_gcd_storeOPstore_string, &locals_gcd_storeOPstore_string, &owns_gcd_store, &NO_VALS, &NO_VALS, &NO_PARMS, &NO_PARMS};
    struct dbg_info *dbg_info_gcd_storeOPstore_string = (struct dbg_info*)&dbg_info_gcd_storeOPstore_string_data;
extern struct dbg_info* dbg_info_gcd_storeOPdone;
#undef MY_TRACE_FLAG
#define MY_TRACE_FLAG gcd_storeOPdone_TRACE
int gcd_storeOPdone_TRACE;
static int gcd_storeOPdone_own_init = 0;

/**** BEGIN PROCEDURE done ****/

errcode gcd_storeOPdone()
    {
    struct {
        struct dbg_info *DBG_INFO;
        int DBG_LINE;
        errcode err;
        errcode ecode2;
        } locals;
    locals.DBG_INFO = dbg_info_gcd_storeOPdone;
        if (gcd_storeOPdone_own_init == 0) {
        if (gcd_store_own_init == 0) {
            locals.err = gcd_store_own_init_proc();
            if (locals.err != ERR_ok) goto ex_0;
            }
        gcd_storeOPdone_own_init = 1;
    }
    enter_proc(488);

  LINE(490);
    {
    CLUREF T_2_1;
    CLUREF T_2_2;
    locals.err = intOPsub(gcd_storeOPpos, CLU_1, &T_2_1);
    if (locals.err != ERR_ok) goto ex_1;
    locals.err = intOPmul(CLU_4, T_2_1, &T_2_2);
    if (locals.err != ERR_ok) goto ex_1;
    locals.err = _chanOPputw(gcd_storeOPch, gcd_storeOPbuf, CLU_1, T_2_2, CLU_0);
    if (locals.err != ERR_ok) goto ex_1;
    }
    goto end_1;
    ex_1:
        if (locals.err == ERR_not_possible) {signal(ERR_not_possible);}
        else {
            goto ex_0;}
    end_1:;
    goto end_0;
    ex_0:
        {
            if (locals.err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(locals.err);
            {signal(ERR_failure);}
        }
    end_0: {signal(ERR_ok);}
    }

/**** END PROCEDURE done ****/

typedef struct {
    int hdr;
    int count;
    char *name;
    char *fname;
    bool is_iter;
    int is_parmd;
    int addr;
    int nargs;
    Vlist0 *vals;
    siglist1 *sigs;
    Vlist2 *locals;
    Vlist14 *owns;
    Vlist0 *ptowns;
    Vlist0 *popowns;
    Slist0 *type_formals;
    Slist0 *op_formals;
    } dbg_info_gcd_storeOPdone_actual;
static Vlist0 vals_gcd_storeOPdone = {0, 0};
static sig_desc1 sig_gcd_storeOPdone_1 = {0, 4, "not_possible", {0, 1
, { {0, 2, "", &string_ops}}}};
static siglist1 sigs_gcd_storeOPdone = {0, 1, (sig_desc*)&sig_gcd_storeOPdone_1};
static Vlist2 locals_gcd_storeOPdone = {0, 2,{ {0, 2, "err", &int_ops},  {0, 2, "ecode2", &int_ops}}
};
static Vlist0 popowns_gcd_storeOPdone = {0, 0};
Slist0 tformals_gcd_storeOPdone = {0, 0};
Slist0 opformals_gcd_storeOPdone = {0, 0};
dbg_info_gcd_storeOPdone_actual dbg_info_gcd_storeOPdone_data = {0, 12, 
    "gcd_storeOPdone", "/common/pub/dcurtis-temp/pclu/lib/clu/gcd_tab.clu", 0, 0, (int)gcd_storeOPdone, 0, 
    &vals_gcd_storeOPdone, &sigs_gcd_storeOPdone, &locals_gcd_storeOPdone, &owns_gcd_store, &NO_VALS, &NO_VALS, &NO_PARMS, &NO_PARMS};
    struct dbg_info *dbg_info_gcd_storeOPdone = (struct dbg_info*)&dbg_info_gcd_storeOPdone_data;
extern struct dbg_info* dbg_info_gcd_storeOPneed;
#undef MY_TRACE_FLAG
#define MY_TRACE_FLAG gcd_storeOPneed_TRACE
int gcd_storeOPneed_TRACE;
extern OWN_req int_ownreqs;
static int gcd_storeOPneed_own_init = 0;

/**** BEGIN PROCEDURE need ****/

errcode gcd_storeOPneed(i, ret_1)
CLUREF i;
CLUREF *ret_1;
    {
    struct {
        struct dbg_info *DBG_INFO;
        int DBG_LINE;
        errcode err;
        errcode ecode2;
        CLUREF i;
        } locals;
    locals.i.num = UNINIT;
    locals.DBG_INFO = dbg_info_gcd_storeOPneed;
    locals.i = i;
        if (gcd_storeOPneed_own_init == 0) {
        if (gcd_store_own_init == 0) {
            locals.err = gcd_store_own_init_proc();
            if (locals.err != ERR_ok) goto ex_0;
            }
        gcd_storeOPneed_own_init = 1;
    }
    enter_proc(494);

  LINE(495);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    CLUREF T_1_4;
    CLUREF T_1_5;
    locals.err = intOPadd(gcd_storeOPpos, locals.i, &T_1_1);
    if (locals.err != ERR_ok) goto ex_0;
    locals.err = intOPsub(T_1_1, CLU_1, &T_1_2);
    if (locals.err != ERR_ok) goto ex_0;
    locals.err = intOPmul(CLU_4, T_1_2, &T_1_3);
    if (locals.err != ERR_ok) goto ex_0;
    T_1_4.num = 4096;
    T_1_5.num = (T_1_3.num <= T_1_4.num)? true : false;
    if (T_1_5.num == true) {
        {
        {
        ret_1->num = locals.i.num;
        }
        {signal (ERR_ok);}}
        }
        }/* end if */

  LINE(496);
    {
    CLUREF T_1_1;
    T_1_1.num = (locals.i.num == 1)? true : false;
    if (T_1_1.num == true) {

  LINE(499);
        {
        CLUREF T_3_1;
        T_3_1.num = 4096;
        locals.err = _chanOPputw(gcd_storeOPch, gcd_storeOPbuf, CLU_1, T_3_1, CLU_0);
        if (locals.err != ERR_ok) goto ex_1;
        }
        goto end_1;
        ex_1:
            if (locals.err == ERR_not_possible) {signal(ERR_not_possible);}
            else {
                goto ex_0;}
        end_1:;

  LINE(501);
        {
        gcd_storeOPpos.num = 1;
        }

  LINE(502);
        {
        {
        ret_1->num = locals.i.num;
        }
        {signal (ERR_ok);}}
        }
    else {

  LINE(504);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        T_2_1.num = 1024;
        T_2_2.num = (gcd_storeOPpos.num <= T_2_1.num)? true : false;
        if (T_2_2.num == true) {
            {
            {
            CLUREF T_3_1;
            CLUREF T_3_2;
            CLUREF T_3_3;
            T_3_1.num = 1024;
            locals.err = intOPsub(T_3_1, gcd_storeOPpos, &T_3_2);
            if (locals.err != ERR_ok) goto ex_0;
            locals.err = intOPadd(T_3_2, CLU_1, &T_3_3);
            if (locals.err != ERR_ok) goto ex_0;
            ret_1->num = T_3_3.num;
            }
            {signal (ERR_ok);}}
            }
            }/* end if */

  LINE(505);
        {
        CLUREF T_3_1;
        T_3_1.num = 4096;
        locals.err = _chanOPputw(gcd_storeOPch, gcd_storeOPbuf, CLU_1, T_3_1, CLU_0);
        if (locals.err != ERR_ok) goto ex_2;
        }
        goto end_2;
        ex_2:
            if (locals.err == ERR_not_possible) {signal(ERR_not_possible);}
            else {
                goto ex_0;}
        end_2:;

  LINE(507);
        {
        gcd_storeOPpos.num = 1;
        }

  LINE(508);
        {
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        T_2_1.num = 1024;
        locals.err = intOPmin(locals.i, T_2_1, &T_2_2);
        if (locals.err != ERR_ok) goto ex_0;
        ret_1->num = T_2_2.num;
        }
        {signal (ERR_ok);}}
        }}/* end if */
    goto end_0;
    ex_0:
        {
            if (locals.err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(locals.err);
            {signal(ERR_failure);}
        }
    end_0: elist[0].str = no_return_values_STRING;
        {signal(ERR_failure);}
    }

/**** END PROCEDURE need ****/

typedef struct {
    int hdr;
    int count;
    char *name;
    char *fname;
    bool is_iter;
    int is_parmd;
    int addr;
    int nargs;
    Vlist1 *vals;
    siglist1 *sigs;
    Vlist3 *locals;
    Vlist14 *owns;
    Vlist0 *ptowns;
    Vlist0 *popowns;
    Slist0 *type_formals;
    Slist0 *op_formals;
    } dbg_info_gcd_storeOPneed_actual;
static Vlist1 vals_gcd_storeOPneed = {0, 1, { {0, 2, "", &int_ops}}
};
static sig_desc1 sig_gcd_storeOPneed_1 = {0, 4, "not_possible", {0, 1
, { {0, 2, "", &string_ops}}}};
static siglist1 sigs_gcd_storeOPneed = {0, 1, (sig_desc*)&sig_gcd_storeOPneed_1};
static Vlist3 locals_gcd_storeOPneed = {0, 3,{ {0, 2, "err", &int_ops},  {0, 2, "ecode2", &int_ops},  {0, 2, "i", &int_ops}}
};
static Vlist0 popowns_gcd_storeOPneed = {0, 0};
Slist0 tformals_gcd_storeOPneed = {0, 0};
Slist0 opformals_gcd_storeOPneed = {0, 0};
dbg_info_gcd_storeOPneed_actual dbg_info_gcd_storeOPneed_data = {0, 12, 
    "gcd_storeOPneed", "/common/pub/dcurtis-temp/pclu/lib/clu/gcd_tab.clu", 0, 0, (int)gcd_storeOPneed, 1, 
    &vals_gcd_storeOPneed, &sigs_gcd_storeOPneed, &locals_gcd_storeOPneed, &owns_gcd_store, &NO_VALS, &NO_VALS, &NO_PARMS, &NO_PARMS};
    struct dbg_info *dbg_info_gcd_storeOPneed = (struct dbg_info*)&dbg_info_gcd_storeOPneed_data;
extern struct dbg_info* dbg_info_gcd_storeOPdebug_print;
#undef MY_TRACE_FLAG
#define MY_TRACE_FLAG gcd_storeOPdebug_print_TRACE
int gcd_storeOPdebug_print_TRACE;
static int gcd_storeOPdebug_print_own_init = 0;

/**** BEGIN PROCEDURE debug_print ****/

errcode gcd_storeOPdebug_print(_rep, ps)
CLUREF _rep;
CLUREF ps;
    {
    struct {
        struct dbg_info *DBG_INFO;
        int DBG_LINE;
        errcode err;
        errcode ecode2;
        CLUREF _rep;
        CLUREF ps;
        } locals;
    locals._rep.num = UNINIT;
    locals.ps.num = UNINIT;
    locals.DBG_INFO = dbg_info_gcd_storeOPdebug_print;
    locals._rep = _rep;
    locals.ps = ps;
        if (gcd_storeOPdebug_print_own_init == 0) {
        if (gcd_store_own_init == 0) {
            locals.err = gcd_store_own_init_proc();
            if (locals.err != ERR_ok) goto ex_0;
            }
        gcd_storeOPdebug_print_own_init = 1;
    }
    enter_proc(1);

  LINE(2);
    {
    locals.err = nullOPdebug_print(locals._rep, locals.ps);
    if (locals.err != ERR_ok) goto ex_0;
    }
    goto end_0;
    ex_0:
        {
            if (locals.err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(locals.err);
            {signal(ERR_failure);}
        }
    end_0: {signal(ERR_ok);}
    }

/**** END PROCEDURE debug_print ****/

typedef struct {
    int hdr;
    int count;
    char *name;
    char *fname;
    bool is_iter;
    int is_parmd;
    int addr;
    int nargs;
    Vlist0 *vals;
    siglist0 *sigs;
    Vlist4 *locals;
    Vlist14 *owns;
    Vlist0 *ptowns;
    Vlist0 *popowns;
    Slist0 *type_formals;
    Slist0 *op_formals;
    } dbg_info_gcd_storeOPdebug_print_actual;
static Vlist0 vals_gcd_storeOPdebug_print = {0, 0};
static siglist0 sigs_gcd_storeOPdebug_print = {0, 0};
static Vlist4 locals_gcd_storeOPdebug_print = {0, 4,{ {0, 2, "err", &int_ops},  {0, 2, "ecode2", &int_ops},  {0, 2, "_rep", &null_ops},  {0, 2, "ps", &pstream_ops}}
};
static Vlist0 popowns_gcd_storeOPdebug_print = {0, 0};
Slist0 tformals_gcd_storeOPdebug_print = {0, 0};
Slist0 opformals_gcd_storeOPdebug_print = {0, 0};
dbg_info_gcd_storeOPdebug_print_actual dbg_info_gcd_storeOPdebug_print_data = {0, 12, 
    "gcd_storeOPdebug_print", "/common/pub/dcurtis-temp/pclu/lib/clu/gcd_tab.clu", 0, 0, (int)gcd_storeOPdebug_print, 2, 
    &vals_gcd_storeOPdebug_print, &sigs_gcd_storeOPdebug_print, &locals_gcd_storeOPdebug_print, &owns_gcd_store, &NO_VALS, &NO_VALS, &NO_PARMS, &NO_PARMS};
    struct dbg_info *dbg_info_gcd_storeOPdebug_print = (struct dbg_info*)&dbg_info_gcd_storeOPdebug_print_data;
typedef struct{
    int count;
    OWNPTR type_owns;
    OWNPTR op_owns;
    struct OP_ENTRY entry[9];
} gcd_store_OPS;

CLU_proc gcd_store_oe_done = {{0,0,0,0}, gcd_storeOPdone, 0};
CLU_proc gcd_store_oe_init = {{0,0,0,0}, gcd_storeOPinit, 0};
CLU_proc gcd_store_oe_store_array_desc = {{0,0,0,0}, gcd_storeOPstore_array_desc, 0};
CLU_proc gcd_store_oe_store_hdr = {{0,0,0,0}, gcd_storeOPstore_hdr, 0};
CLU_proc gcd_store_oe_store_id = {{0,0,0,0}, gcd_storeOPstore_id, 0};
CLU_proc gcd_store_oe_store_lit = {{0,0,0,0}, gcd_storeOPstore_lit, 0};
CLU_proc gcd_store_oe_store_ref = {{0,0,0,0}, gcd_storeOPstore_ref, 0};
CLU_proc gcd_store_oe_store_string = {{0,0,0,0}, gcd_storeOPstore_string, 0};
CLU_proc gcd_store_oe_debug_print = {{0,0,0,0}, gcd_storeOPdebug_print, 0};

gcd_store_OPS gcd_store_ops_actual = {9, (OWNPTR)&gcd_store_own_init, (OWNPTR)&gcd_store_own_init, {
    {&gcd_store_oe_done, "done"},
    {&gcd_store_oe_init, "init"},
    {&gcd_store_oe_store_array_desc, "store_array_desc"},
    {&gcd_store_oe_store_hdr, "store_hdr"},
    {&gcd_store_oe_store_id, "store_id"},
    {&gcd_store_oe_store_lit, "store_lit"},
    {&gcd_store_oe_store_ref, "store_ref"},
    {&gcd_store_oe_store_string, "store_string"},
    {&gcd_store_oe_debug_print, "debug_print"}}};

struct OPS *gcd_store_ops = (struct OPS *)&gcd_store_ops_actual;

/**** END CLUSTER gcd_store ****/
