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

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


/**** BEGIN CLUSTER _resolve ****/

extern errcode _resolveOPinit();
extern errcode sequenceOPelements();
extern errcode _chanOPopen();
extern errcode file_nameOPparse();
extern errcode intOPlt();
extern errcode _wordvecOPcreate();
extern errcode _wordvecOPwstore();
extern errcode _wordvecOPlstore();
extern errcode _chanOPgetw();
extern errcode _chanOPclose();
extern errcode _bytevecOPindexc();
extern errcode _cvt();
extern errcode intOPgt();
extern errcode stringOPsubstr();
extern errcode intOPsub();
extern errcode charOPequal();
extern errcode stringOPfetch();
extern errcode intOPadd();
extern errcode boolOPnot();
extern errcode intOPequal();
extern errcode stringOPindexs();
extern errcode string_lindexs();
extern errcode stringOPsize();
extern errcode stringOPconcat();
extern errcode _bytevecOPfetch();
extern errcode inet_address();
extern errcode _resolveOPqry();
extern errcode stringOPindexc();
extern errcode stringOPequal();
extern errcode _wordvecOPbstore();
extern errcode intOPdiv();
extern errcode stringOPempty();
extern errcode _resolveOPnstore();
extern errcode _resolveOPsend();
extern errcode _wordvecOPwfetch();
extern errcode _resolveOPnskip();
extern errcode intOPfrom_to_by();
extern errcode intOPmul();
extern errcode _wordvecOPbfetch();
extern errcode intOPle();
extern errcode intOPge();
extern errcode charOPc2i();
extern errcode _chanOPsocket();
extern errcode _chanOPsendto();
extern errcode _chanOPread_wait();
extern errcode _chanOPrecvfrom();
extern errcode intOPmod();
CLUREF STR__057usr_057local_057lib_057resolv_056conf;
CLUREF STR__057etc_057nameserver_057resolv_056conf;
CLUREF STR__057usr_057lib_057resolv_056conf;
CLUREF STR__057usr_057local_057ns_057resolv_056conf;
CLUREF STR__057etc_057resolv_056conf;
CLUREF STR__057etc_057athena_057nameserver_057resolv_056conf;
CLUREF STR_read;
CLUREF STR_;
CLUREF STR_domain;
CLUREF STR__040;
CLUREF STR__011;
CLUREF STR__056;
CLUREF STR_nameserver;
CLUREF STR__056ARPA;
static int _resolve_own_init = 0;
OWN_req _resolve_ownreqs = {0,0};
CLUREF _resolveOPpkid;
CLUREF _resolveOPbuf;
CLUREF _resolveOPans;
CLUREF _resolveOPnsaddr;
CLUREF _resolveOPfromaddr;
CLUREF _resolveOPretries;
CLUREF _resolveOPtimeout;
CLUREF _resolveOPdefaultdomain;
errcode _resolve_own_init_proc()
{
    errcode err;
    enter_own_init_proc();
        if (_resolve_own_init == 0) {
        stringOPcons("/usr/local/lib/resolv.conf", CLU_1, CLU_26, &STR__057usr_057local_057lib_057resolv_056conf);
        stringOPcons("/etc/nameserver/resolv.conf", CLU_1, CLU_27, &STR__057etc_057nameserver_057resolv_056conf);
        stringOPcons("/usr/lib/resolv.conf", CLU_1, CLU_20, &STR__057usr_057lib_057resolv_056conf);
        stringOPcons("/usr/local/ns/resolv.conf", CLU_1, CLU_25, &STR__057usr_057local_057ns_057resolv_056conf);
        stringOPcons("/etc/resolv.conf", CLU_1, CLU_16, &STR__057etc_057resolv_056conf);
        stringOPcons("/etc/athena/nameserver/resolv.conf", CLU_1, CLU_34, &STR__057etc_057athena_057nameserver_057resolv_056conf);
        stringOPcons("read", CLU_1, CLU_4, &STR_read);
        stringOPcons("", CLU_1, CLU_0, &STR_);
        stringOPcons("domain", CLU_1, CLU_6, &STR_domain);
        stringOPcons(" ", CLU_1, CLU_1, &STR__040);
        stringOPcons("\t", CLU_1, CLU_1, &STR__011);
        stringOPcons(".", CLU_1, CLU_1, &STR__056);
        stringOPcons("nameserver", CLU_1, CLU_10, &STR_nameserver);
        stringOPcons(".ARPA", CLU_1, CLU_5, &STR__056ARPA);
        _resolve_own_init = 1;
        {
            {CLUREF T_0_1;
            err = _resolveOPinit(&T_0_1);
            if (err != ERR_ok) goto ex_0;
            _resolveOPdefaultdomain.num = T_0_1.num;
            }
            }
        {signal(ERR_ok);}
    ex_0: pclu_unhandled(err); {signal(ERR_failure);}
        }
    }

static int _resolveOPinit_own_init = 0;

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

errcode _resolveOPinit(ret_1)
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
    CLUREF c;
    CLUREF cf;
    CLUREF len;
    CLUREF line;
    CLUREF beg;
    CLUREF i;
    CLUREF k;
    CLUREF j;
    CLUREF l;
    CLUREF r;
        if (_resolveOPinit_own_init == 0) {
        if (_resolve_own_init == 0) {
            err = _resolve_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
        _resolveOPinit_own_init = 1;
    }
    enter_proc(56);

  LINE(60);
    {
    _resolveOPpkid.num = -1;
    }

  LINE(61);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    CLUREF T_1_4;
        sequenceOPnew2(CLU_6, &T_1_1);
        T_1_1.vec->data[0] = STR__057usr_057local_057lib_057resolv_056conf.num;
        T_1_1.vec->data[1] = STR__057etc_057nameserver_057resolv_056conf.num;
        T_1_1.vec->data[2] = STR__057usr_057lib_057resolv_056conf.num;
        T_1_1.vec->data[3] = STR__057usr_057local_057ns_057resolv_056conf.num;
        T_1_1.vec->data[4] = STR__057etc_057resolv_056conf.num;
        T_1_1.vec->data[5] = STR__057etc_057athena_057nameserver_057resolv_056conf.num;
        T_1_3.num = T_1_1.vec->size; 
        T_1_4 = T_1_1;
        for (T_1_2.num = 1; T_1_2.num <= T_1_3.num; T_1_2.num++) {
            cf.num = T_1_4.vec->data[T_1_2.num - 1];

  LINE(62);
            {
            CLUREF T_3_1;
            CLUREF T_3_2;
            err = file_nameOPparse(cf, &T_3_1);
            if (err != ERR_ok) goto ex_1;
            err = _chanOPopen(T_3_1, STR_read, CLU_0, &T_3_2);
            if (err != ERR_ok) goto ex_1;
            c.num = T_3_2.num;
            }
                goto end_1;
                ex_1:
                    if ((err == ERR_not_possible)) {

  LINE(63);
                        continue;
                    }
                    else {
                        goto ex_0;
                    }
                end_1:;

  LINE(64);
            {
            _resolveOPpkid.num = 0;
            }

  LINE(65);
            goto end_inline_for_1;
        }
    }
    end_inline_for_1:;

  LINE(67);
    {
    CLUREF T_1_1;
    T_1_1.num = (_resolveOPpkid.num < 0)? true : false;
    if (T_1_1.num == true) {

  LINE(68);
        {
        {
        ret_1->str = STR_.str;
        }
        {signal (ERR_ok);}}
        }
        }/* end if */

  LINE(69);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = 256;
    err = _wordvecOPcreate(T_1_1, &T_1_2);
    if (err != ERR_ok) goto ex_0;
    _resolveOPbuf.num = T_1_2.num;
    }

  LINE(70);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = 128;
    err = _wordvecOPcreate(T_1_1, &T_1_2);
    if (err != ERR_ok) goto ex_0;
    _resolveOPans.num = T_1_2.num;
    }

  LINE(71);
    {
    CLUREF T_1_1;
    err = _wordvecOPcreate(CLU_4, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    _resolveOPnsaddr.num = T_1_1.num;
    }

  LINE(72);
    {
    CLUREF T_1_1;
    err = _wordvecOPcreate(CLU_4, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    _resolveOPfromaddr.num = T_1_1.num;
    }

  LINE(73);
    {
    _resolveOPretries.num = 2;
    }

  LINE(74);
    {
    _resolveOPtimeout.num = 15000;
    }

  LINE(75);
    {
    err = _wordvecOPwstore(_resolveOPnsaddr, CLU_1, CLU_2);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(76);
    {
    CLUREF T_1_1;
    T_1_1.num = 13568;
    err = _wordvecOPwstore(_resolveOPnsaddr, CLU_3, T_1_1);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(77);
    {
    CLUREF T_1_1;
    T_1_1.num = 16777343;
    err = _wordvecOPlstore(_resolveOPnsaddr, CLU_5, T_1_1);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(78);
    {
        {CLUREF T_1_1;
        err = _chanOPgetw(c, _resolveOPbuf, &T_1_1);
        if (err != ERR_ok) goto ex_0;
        len.num = T_1_1.num;
        }
        }

  LINE(79);
    {
    err = _chanOPclose(c);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(81);
    {
        {beg.num = 1;
        }
        }

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

  LINE(84);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        CLUREF T_2_3;
        T_2_1.ch = '\n';
        T_2_2.num = _resolveOPbuf.num;
        err = _bytevecOPindexc(T_2_1, T_2_2, beg, &T_2_3);
        if (err != ERR_ok) goto ex_0;
        i.num = T_2_3.num;
        }

  LINE(85);
        {
        CLUREF T_2_1;
        T_2_1.num = (i.num > len.num)? true : false;
        if (T_2_1.num == true) {

  LINE(86);
            {
            {
            ret_1->str = STR_.str;
            }
            {signal (ERR_ok);}}
            }
            }/* end if */

  LINE(87);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        CLUREF T_2_3;
        T_2_1.num = _resolveOPbuf.num;
        T_2_2.num = i.num - beg.num;
         if ((T_2_2.num >= 0 && i.num < 0 && (-beg.num) < 0) || 
             (T_2_2.num <= 0 && i.num > 0 && (-beg.num) > 0)) {
            err = ERR_overflow;
            goto ex_0;}
        err = stringOPsubstr(T_2_1, beg, T_2_2, &T_2_3);
        if (err != ERR_ok) goto ex_0;
        line.num = T_2_3.num;
        }

  LINE(89);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        CLUREF T_2_3;
        err = stringOPfetch(line, CLU_1, &T_2_1);
        if (err != ERR_ok) goto ex_0;
        T_2_2.ch = ';';
        T_2_3.num = (T_2_1.ch == T_2_2.ch)? true : false;
        if (T_2_3.num == true) {

  LINE(91);
            {
            CLUREF T_3_1;
            T_3_1.num = i.num + 1;
             if ((T_3_1.num > 0 && i.num < 0 && 1 < 0) || 
                 (T_3_1.num < 0 && i.num > 0 && 1 > 0)) {
                err = ERR_overflow;
                goto ex_0;}
            beg.num = T_3_1.num;
            }

  LINE(92);
            continue;
            }
        else {

  LINE(94);
            goto end_while_1;
            }}/* end if */
        }
        end_while_1:;

  LINE(100);
    {
        {k.num = 1;
        }
        }

  LINE(101);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    err = stringOPindexs(STR_domain, line, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    T_1_2.num = (T_1_1.num == 0)? true : false;
    T_1_3.num = T_1_2.num ^ 1;
    if (T_1_3.num == true) {

  LINE(103);
        {
        CLUREF T_2_1;
        err = string_lindexs(STR__040, line, &T_2_1);
        if (err != ERR_ok) goto ex_0;
        k.num = T_2_1.num;
        }

  LINE(104);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        err = stringOPsize(line, &T_2_1);
        if (err != ERR_ok) goto ex_0;
        T_2_2.num = (k.num > T_2_1.num)? true : false;
        if (T_2_2.num == true) {

  LINE(105);
            {
            CLUREF T_3_1;
            err = string_lindexs(STR__011, line, &T_3_1);
            if (err != ERR_ok) goto ex_0;
            k.num = T_3_1.num;
            }
            }
            }/* end if */

  LINE(106);
        {
        CLUREF T_2_1;
        T_2_1.num = k.num + 1;
         if ((T_2_1.num > 0 && k.num < 0 && 1 < 0) || 
             (T_2_1.num < 0 && k.num > 0 && 1 > 0)) {
            err = ERR_overflow;
            goto ex_0;}
        k.num = T_2_1.num;
        }
        }
        }/* end if */

  LINE(108);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    CLUREF T_1_4;
    CLUREF T_1_5;
    err = stringOPsize(line, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    T_1_2.num = T_1_1.num - k.num;
     if ((T_1_2.num >= 0 && T_1_1.num < 0 && (-k.num) < 0) || 
         (T_1_2.num <= 0 && T_1_1.num > 0 && (-k.num) > 0)) {
        err = ERR_overflow;
        goto ex_0;}
    T_1_3.num = T_1_2.num + 1;
     if ((T_1_3.num > 0 && T_1_2.num < 0 && 1 < 0) || 
         (T_1_3.num < 0 && T_1_2.num > 0 && 1 > 0)) {
        err = ERR_overflow;
        goto ex_0;}
    err = stringOPsubstr(line, k, T_1_3, &T_1_4);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(STR__056, T_1_4, &T_1_5);
    if (err != ERR_ok) goto ex_0;
    _resolveOPdefaultdomain.num = T_1_5.num;
    }

  LINE(109);
    {
    CLUREF T_1_1;
    T_1_1.num = i.num + 1;
     if ((T_1_1.num > 0 && i.num < 0 && 1 < 0) || 
         (T_1_1.num < 0 && i.num > 0 && 1 > 0)) {
        err = ERR_overflow;
        goto ex_0;}
    i.num = T_1_1.num;
    }

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

  LINE(112);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        CLUREF T_2_3;
        T_2_1.ch = '\n';
        T_2_2.num = _resolveOPbuf.num;
        err = _bytevecOPindexc(T_2_1, T_2_2, i, &T_2_3);
        if (err != ERR_ok) goto ex_0;
        j.num = T_2_3.num;
        }

  LINE(113);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        CLUREF T_2_3;
        CLUREF T_2_4;
        T_2_1.num = _resolveOPbuf.num;
        if (i.num < 1 || i.num > T_2_1.str->size ) {
            err = ERR_bounds;
            goto ex_0;}
        T_2_2.ch = T_2_1.str->data[i.num - 1];
        T_2_3.ch = ';';
        T_2_4.num = (T_2_2.ch == T_2_3.ch)? true : false;
        if (T_2_4.num == true) {
            {
            CLUREF T_3_1;
            T_3_1.num = j.num + 1;
             if ((T_3_1.num > 0 && j.num < 0 && 1 < 0) || 
                 (T_3_1.num < 0 && j.num > 0 && 1 > 0)) {
                err = ERR_overflow;
                goto ex_0;}
            i.num = T_3_1.num;
            }
            continue;
            }
        else {

  LINE(114);
            goto end_while_2;
            }}/* end if */
        }
        end_while_2:;

  LINE(116);
    {
    CLUREF T_2_1;
    T_2_1.num = (j.num > 0)? true : false;
    if (T_2_1.num == true) {

  LINE(118);
        {
        CLUREF T_3_1;
        CLUREF T_3_2;
        CLUREF T_3_3;
        T_3_1.num = _resolveOPbuf.num;
        T_3_2.num = j.num - i.num;
         if ((T_3_2.num >= 0 && j.num < 0 && (-i.num) < 0) || 
             (T_3_2.num <= 0 && j.num > 0 && (-i.num) > 0)) {
            err = ERR_overflow;
            goto ex_2;}
        err = stringOPsubstr(T_3_1, i, T_3_2, &T_3_3);
        if (err != ERR_ok) goto ex_2;
        line.num = T_3_3.num;
        }

  LINE(119);
        {
        k.num = 1;
        }

  LINE(120);
        {
        CLUREF T_3_1;
        CLUREF T_3_2;
        err = stringOPindexs(STR_nameserver, line, &T_3_1);
        if (err != ERR_ok) goto ex_2;
        T_3_2.num = (T_3_1.num > 0)? true : false;
        if (T_3_2.num == true) {

  LINE(121);
            {
            CLUREF T_4_1;
            err = string_lindexs(STR__040, line, &T_4_1);
            if (err != ERR_ok) goto ex_2;
            k.num = T_4_1.num;
            }

  LINE(122);
            {
            CLUREF T_4_1;
            CLUREF T_4_2;
            err = stringOPsize(line, &T_4_1);
            if (err != ERR_ok) goto ex_2;
            T_4_2.num = (k.num > T_4_1.num)? true : false;
            if (T_4_2.num == true) {

  LINE(123);
                {
                CLUREF T_5_1;
                err = string_lindexs(STR__011, line, &T_5_1);
                if (err != ERR_ok) goto ex_2;
                k.num = T_5_1.num;
                }
                }
                }/* end if */

  LINE(124);
            {
            CLUREF T_4_1;
            T_4_1.num = k.num + 1;
             if ((T_4_1.num > 0 && k.num < 0 && 1 < 0) || 
                 (T_4_1.num < 0 && k.num > 0 && 1 > 0)) {
                err = ERR_overflow;
                goto ex_2;}
            k.num = T_4_1.num;
            }
            }
            }/* end if */

  LINE(126);
        {
            {CLUREF T_3_1;
            CLUREF T_3_2;
            CLUREF T_3_3;
            CLUREF T_3_4;
            CLUREF T_3_5;
            CLUREF T_3_6;
            err = stringOPsize(line, &T_3_1);
            if (err != ERR_ok) goto ex_2;
            T_3_2.num = T_3_1.num - k.num;
             if ((T_3_2.num >= 0 && T_3_1.num < 0 && (-k.num) < 0) || 
                 (T_3_2.num <= 0 && T_3_1.num > 0 && (-k.num) > 0)) {
                err = ERR_overflow;
                goto ex_2;}
            T_3_3.num = T_3_2.num + 1;
             if ((T_3_3.num > 0 && T_3_2.num < 0 && 1 < 0) || 
                 (T_3_3.num < 0 && T_3_2.num > 0 && 1 > 0)) {
                err = ERR_overflow;
                goto ex_2;}
            err = stringOPsubstr(line, k, T_3_3, &T_3_4);
            if (err != ERR_ok) goto ex_2;
            err = inet_address(T_3_4, &T_3_5, &T_3_6);
            if (err != ERR_ok) goto ex_2;
            l.num = T_3_5.num;
            r.num = T_3_6.num;
            }
            }

  LINE(128);
        {
        err = _wordvecOPwstore(_resolveOPbuf, CLU_5, r);
        if (err != ERR_ok) goto ex_2;
        }

  LINE(129);
        {
        err = _wordvecOPwstore(_resolveOPbuf, CLU_7, l);
        if (err != ERR_ok) goto ex_2;
        }
        }
        }/* end if */
        goto end_2;
        ex_2:
            {
            }
        end_2:;

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

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

static int _resolveOPn2a_own_init = 0;

/**** BEGIN PROCEDURE n2a ****/

errcode _resolveOPn2a(name, ret_1, ret_2)
CLUREF name;
CLUREF *ret_1;
CLUREF *ret_2;
    {
    errcode err;
    errcode ecode2;
    CLUREF l;
    CLUREF r;
        if (_resolveOPn2a_own_init == 0) {
        if (_resolve_own_init == 0) {
            err = _resolve_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
        _resolveOPn2a_own_init = 1;
    }
    enter_proc(134);

  LINE(136);
    {
    CLUREF T_1_1;
    T_1_1.num = (_resolveOPpkid.num < 0)? true : false;
    if (T_1_1.num == true) {

  LINE(137);
        {
        {signal (ERR_no_server);}}
        }
        }/* end if */

  LINE(138);
    {
        {CLUREF T_3_1;
        CLUREF T_3_2;
        err = _resolveOPqry(name, _resolveOPdefaultdomain, &T_3_1, &T_3_2);
        if (err != ERR_ok) goto ex_2;
        l.num = T_3_1.num;
        r.num = T_3_2.num;
        }
        }
    goto end_2;
    ex_2:
        if (err == ERR_timeout) {signal(ERR_timeout);}
        else {
            goto ex_1;}
    end_2:;
        goto end_1;
        ex_1:
            if ((err == ERR_not_found)) {

  LINE(141);
                {
                CLUREF T_2_1;
                CLUREF T_2_2;
                CLUREF T_2_3;
                CLUREF T_2_4;
                CLUREF T_2_5;
                T_2_2.ch = '.';
                err = stringOPindexc(T_2_2, name, &T_2_3);
                if (err != ERR_ok) goto ex_0;
                T_2_4.num = (T_2_3.num > 0)? true : false;
                T_2_1.num = T_2_4.num;
                if (!T_2_4.num) {
                    T_2_5.num = ((_resolveOPdefaultdomain.str->size != STR__056ARPA.str->size)? false :
                        !(bcmp(_resolveOPdefaultdomain.str->data, STR__056ARPA.str->data, _resolveOPdefaultdomain.str->size)));
                    T_2_1.num = T_2_5.num;
                }
                if (T_2_1.num == true) {

  LINE(143);
                    {
                    {signal (ERR_not_found);}}
                    }
                    }/* end if */

  LINE(144);
                {
                CLUREF T_3_1;
                CLUREF T_3_2;
                err = _resolveOPqry(name, STR__056ARPA, &T_3_1, &T_3_2);
                if (err != ERR_ok) goto ex_3;
                l.num = T_3_1.num;
                r.num = T_3_2.num;
                }
                goto end_3;
                ex_3:
                    if (err == ERR_not_found) {signal(ERR_not_found);}
                    else if (err == ERR_timeout) {signal(ERR_timeout);}
                    else {
                        goto ex_0;}
                end_3:;
            }
            else {
                goto ex_0;
            }
        end_1:;

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

/**** END PROCEDURE n2a ****/


/**** BEGIN PROCEDURE qry ****/

errcode _resolveOPqry(name, domain, ret_1, ret_2)
CLUREF name;
CLUREF domain;
CLUREF *ret_1;
CLUREF *ret_2;
    {
    errcode err;
    errcode ecode2;
    CLUREF idx;
    CLUREF ancount;
    CLUREF tp;
    CLUREF cl;
    CLUREF n;
        if (_resolve_own_init == 0) {
            err = _resolve_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(150);

  LINE(152);
    {
    CLUREF T_1_1;
    T_1_1.num = _resolveOPpkid.num + 1;
     if ((T_1_1.num > 0 && _resolveOPpkid.num < 0 && 1 < 0) || 
         (T_1_1.num < 0 && _resolveOPpkid.num > 0 && 1 > 0)) {
        err = ERR_overflow;
        goto ex_0;}
    _resolveOPpkid.num = T_1_1.num;
    }

  LINE(153);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = 256;
    err = intOPdiv(_resolveOPpkid, T_1_1, &T_1_2);
    if (err != ERR_ok) goto ex_0;
    err = _wordvecOPbstore(_resolveOPbuf, CLU_1, T_1_2);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(154);
    {
    err = _wordvecOPbstore(_resolveOPbuf, CLU_2, _resolveOPpkid);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(155);
    {
    err = _wordvecOPbstore(_resolveOPbuf, CLU_3, CLU_1);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(156);
    {
    err = _wordvecOPbstore(_resolveOPbuf, CLU_4, CLU_0);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(157);
    {
    err = _wordvecOPwstore(_resolveOPbuf, CLU_5, CLU_0);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(158);
    {
    err = _wordvecOPbstore(_resolveOPbuf, CLU_6, CLU_1);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(159);
    {
    err = _wordvecOPwstore(_resolveOPbuf, CLU_7, CLU_0);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(160);
    {
    err = _wordvecOPwstore(_resolveOPbuf, CLU_9, CLU_0);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(161);
    {
    err = _wordvecOPwstore(_resolveOPbuf, CLU_11, CLU_0);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(162);
    {
    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;
    CLUREF T_1_9;
    err = stringOPempty(name, &T_1_3);
    if (err != ERR_ok) goto ex_0;
    T_1_4.num = T_1_3.num ^ 1;
    T_1_2.num = T_1_4.num;
    if (T_1_4.num) {
        err = stringOPempty(domain, &T_1_5);
        if (err != ERR_ok) goto ex_0;
        T_1_6.num = T_1_5.num ^ 1;
        T_1_2.num = T_1_6.num;
    }
    T_1_1.num = T_1_2.num;
    if (T_1_2.num) {
        T_1_7.ch = '.';
        err = stringOPindexc(T_1_7, name, &T_1_8);
        if (err != ERR_ok) goto ex_0;
        T_1_9.num = (T_1_8.num == 0)? true : false;
        T_1_1.num = T_1_9.num;
    }
    if (T_1_1.num == true) {

  LINE(164);
        {
        CLUREF T_2_1;
        err = stringOPconcat(name, domain, &T_2_1);
        if (err != ERR_ok) goto ex_0;
        name.num = T_2_1.num;
        }
        }
        }/* end if */

  LINE(165);
    {
        {CLUREF T_2_1;
        CLUREF T_2_2;
        T_2_1.num = 1008;
        err = _resolveOPnstore(name, CLU_13, T_2_1, &T_2_2);
        if (err != ERR_ok) goto ex_1;
        idx.num = T_2_2.num;
        }
        }
        goto end_1;
        ex_1:
            if ((err == ERR_bounds)) {

  LINE(166);
                {
                {signal (ERR_not_found);}}
            }
            else {
                goto ex_0;
            }
        end_1:;

  LINE(167);
    {
    err = _wordvecOPbstore(_resolveOPbuf, idx, CLU_0);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(168);
    {
    CLUREF T_1_1;
    T_1_1.num = idx.num + 1;
     if ((T_1_1.num > 0 && idx.num < 0 && 1 < 0) || 
         (T_1_1.num < 0 && idx.num > 0 && 1 > 0)) {
        err = ERR_overflow;
        goto ex_0;}
    err = _wordvecOPbstore(_resolveOPbuf, T_1_1, CLU_1);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(169);
    {
    CLUREF T_1_1;
    T_1_1.num = idx.num + 2;
     if ((T_1_1.num > 0 && idx.num < 0 && 2 < 0) || 
         (T_1_1.num < 0 && idx.num > 0 && 2 > 0)) {
        err = ERR_overflow;
        goto ex_0;}
    err = _wordvecOPbstore(_resolveOPbuf, T_1_1, CLU_0);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(170);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = idx.num + 3;
     if ((T_1_1.num > 0 && idx.num < 0 && 3 < 0) || 
         (T_1_1.num < 0 && idx.num > 0 && 3 > 0)) {
        err = ERR_overflow;
        goto ex_0;}
    T_1_2.num = 255;
    err = _wordvecOPbstore(_resolveOPbuf, T_1_1, T_1_2);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(171);
    {
    CLUREF T_2_1;
    CLUREF T_2_2;
    T_2_1.num = idx.num + 3;
     if ((T_2_1.num > 0 && idx.num < 0 && 3 < 0) || 
         (T_2_1.num < 0 && idx.num > 0 && 3 > 0)) {
        err = ERR_overflow;
        goto ex_2;}
    err = _resolveOPsend(T_2_1, &T_2_2);
    if (err != ERR_ok) goto ex_2;
    }
    goto end_2;
    ex_2:
        if (err == ERR_timeout) {signal(ERR_timeout);}
        else {
            goto ex_0;}
    end_2:;

  LINE(176);
    {
    idx.num = 13;
    }

  LINE(177);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    err = _wordvecOPwfetch(_resolveOPans, CLU_5, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    T_1_2.num = (T_1_1.num == 0)? true : false;
    T_1_3.num = T_1_2.num ^ 1;
    if (T_1_3.num == true) {

  LINE(178);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        err = _resolveOPnskip(idx, &T_2_1);
        if (err != ERR_ok) goto ex_0;
        T_2_2.num = T_2_1.num + 4;
         if ((T_2_2.num > 0 && T_2_1.num < 0 && 4 < 0) || 
             (T_2_2.num < 0 && T_2_1.num > 0 && 4 > 0)) {
            err = ERR_overflow;
            goto ex_0;}
        idx.num = T_2_2.num;
        }
        }
        }/* end if */

  LINE(179);
    {
    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;
        err = _wordvecOPbfetch(_resolveOPans, CLU_7, &T_1_1);
        if (err != ERR_ok) goto ex_0;
        T_1_2.num = 256;
        err = intOPmul(T_1_1, T_1_2, &T_1_3);
        if (err != ERR_ok) goto ex_0;
        err = _wordvecOPbfetch(_resolveOPans, CLU_8, &T_1_4);
        if (err != ERR_ok) goto ex_0;
        T_1_5.num = T_1_3.num + T_1_4.num;
         if ((T_1_5.num > 0 && T_1_3.num < 0 && T_1_4.num < 0) || 
             (T_1_5.num < 0 && T_1_3.num > 0 && T_1_4.num > 0)) {
            err = ERR_overflow;
            goto ex_0;}
        T_1_7.num = 1;
        T_1_8.num = -1;
        for (T_1_6.num = T_1_5.num; ((T_1_8.num == 0) || ((T_1_8.num > 0)? (T_1_6.num <= T_1_7.num) : (T_1_6.num >= T_1_7.num))); T_1_6.num += T_1_8.num) {
            ancount.num = T_1_6.num;

  LINE(182);
            {
            CLUREF T_2_1;
            err = _resolveOPnskip(idx, &T_2_1);
            if (err != ERR_ok) goto ex_0;
            idx.num = T_2_1.num;
            }

  LINE(183);
            {
                {CLUREF T_2_1;
                CLUREF T_2_2;
                CLUREF T_2_3;
                CLUREF T_2_4;
                CLUREF T_2_5;
                CLUREF T_2_6;
                err = _wordvecOPbfetch(_resolveOPans, idx, &T_2_1);
                if (err != ERR_ok) goto ex_0;
                T_2_2.num = 256;
                err = intOPmul(T_2_1, T_2_2, &T_2_3);
                if (err != ERR_ok) goto ex_0;
                T_2_4.num = idx.num + 1;
                 if ((T_2_4.num > 0 && idx.num < 0 && 1 < 0) || 
                     (T_2_4.num < 0 && idx.num > 0 && 1 > 0)) {
                    err = ERR_overflow;
                    goto ex_0;}
                err = _wordvecOPbfetch(_resolveOPans, T_2_4, &T_2_5);
                if (err != ERR_ok) goto ex_0;
                T_2_6.num = T_2_3.num + T_2_5.num;
                 if ((T_2_6.num > 0 && T_2_3.num < 0 && T_2_5.num < 0) || 
                     (T_2_6.num < 0 && T_2_3.num > 0 && T_2_5.num > 0)) {
                    err = ERR_overflow;
                    goto ex_0;}
                tp.num = T_2_6.num;
                }
                }

  LINE(184);
            {
            CLUREF T_2_1;
            T_2_1.num = idx.num + 2;
             if ((T_2_1.num > 0 && idx.num < 0 && 2 < 0) || 
                 (T_2_1.num < 0 && idx.num > 0 && 2 > 0)) {
                err = ERR_overflow;
                goto ex_0;}
            idx.num = T_2_1.num;
            }

  LINE(185);
            {
                {CLUREF T_2_1;
                CLUREF T_2_2;
                CLUREF T_2_3;
                CLUREF T_2_4;
                CLUREF T_2_5;
                CLUREF T_2_6;
                err = _wordvecOPbfetch(_resolveOPans, idx, &T_2_1);
                if (err != ERR_ok) goto ex_0;
                T_2_2.num = 256;
                err = intOPmul(T_2_1, T_2_2, &T_2_3);
                if (err != ERR_ok) goto ex_0;
                T_2_4.num = idx.num + 1;
                 if ((T_2_4.num > 0 && idx.num < 0 && 1 < 0) || 
                     (T_2_4.num < 0 && idx.num > 0 && 1 > 0)) {
                    err = ERR_overflow;
                    goto ex_0;}
                err = _wordvecOPbfetch(_resolveOPans, T_2_4, &T_2_5);
                if (err != ERR_ok) goto ex_0;
                T_2_6.num = T_2_3.num + T_2_5.num;
                 if ((T_2_6.num > 0 && T_2_3.num < 0 && T_2_5.num < 0) || 
                     (T_2_6.num < 0 && T_2_3.num > 0 && T_2_5.num > 0)) {
                    err = ERR_overflow;
                    goto ex_0;}
                cl.num = T_2_6.num;
                }
                }

  LINE(186);
            {
            CLUREF T_2_1;
            T_2_1.num = idx.num + 6;
             if ((T_2_1.num > 0 && idx.num < 0 && 6 < 0) || 
                 (T_2_1.num < 0 && idx.num > 0 && 6 > 0)) {
                err = ERR_overflow;
                goto ex_0;}
            idx.num = T_2_1.num;
            }

  LINE(187);
            {
                {CLUREF T_2_1;
                CLUREF T_2_2;
                CLUREF T_2_3;
                CLUREF T_2_4;
                CLUREF T_2_5;
                CLUREF T_2_6;
                err = _wordvecOPbfetch(_resolveOPans, idx, &T_2_1);
                if (err != ERR_ok) goto ex_0;
                T_2_2.num = 256;
                err = intOPmul(T_2_1, T_2_2, &T_2_3);
                if (err != ERR_ok) goto ex_0;
                T_2_4.num = idx.num + 1;
                 if ((T_2_4.num > 0 && idx.num < 0 && 1 < 0) || 
                     (T_2_4.num < 0 && idx.num > 0 && 1 > 0)) {
                    err = ERR_overflow;
                    goto ex_0;}
                err = _wordvecOPbfetch(_resolveOPans, T_2_4, &T_2_5);
                if (err != ERR_ok) goto ex_0;
                T_2_6.num = T_2_3.num + T_2_5.num;
                 if ((T_2_6.num > 0 && T_2_3.num < 0 && T_2_5.num < 0) || 
                     (T_2_6.num < 0 && T_2_3.num > 0 && T_2_5.num > 0)) {
                    err = ERR_overflow;
                    goto ex_0;}
                n.num = T_2_6.num;
                }
                }

  LINE(188);
            {
            CLUREF T_2_1;
            T_2_1.num = idx.num + 2;
             if ((T_2_1.num > 0 && idx.num < 0 && 2 < 0) || 
                 (T_2_1.num < 0 && idx.num > 0 && 2 > 0)) {
                err = ERR_overflow;
                goto ex_0;}
            idx.num = T_2_1.num;
            }

  LINE(189);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            CLUREF T_2_3;
            CLUREF T_2_4;
            CLUREF T_2_5;
            CLUREF T_2_6;
            CLUREF T_2_7;
            CLUREF T_2_8;
            T_2_3.num = (tp.num == 1)? true : false;
            T_2_4.num = T_2_3.num ^ 1;
            T_2_2.num = T_2_4.num;
            if (!T_2_4.num) {
                T_2_5.num = (cl.num == 1)? true : false;
                T_2_6.num = T_2_5.num ^ 1;
                T_2_2.num = T_2_6.num;
            }
            T_2_1.num = T_2_2.num;
            if (!T_2_2.num) {
                T_2_7.num = (n.num == 4)? true : false;
                T_2_8.num = T_2_7.num ^ 1;
                T_2_1.num = T_2_8.num;
            }
            if (T_2_1.num == true) {

  LINE(190);
                {
                CLUREF T_3_1;
                T_3_1.num = idx.num + n.num;
                 if ((T_3_1.num > 0 && idx.num < 0 && n.num < 0) || 
                     (T_3_1.num < 0 && idx.num > 0 && n.num > 0)) {
                    err = ERR_overflow;
                    goto ex_0;}
                idx.num = T_3_1.num;
                }

  LINE(191);
                continue;
                }
                }/* end if */

  LINE(193);
            {
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            CLUREF T_2_3;
            CLUREF T_2_4;
            CLUREF T_2_5;
            CLUREF T_2_6;
            CLUREF T_2_7;
            T_2_1.num = idx.num + 3;
             if ((T_2_1.num > 0 && idx.num < 0 && 3 < 0) || 
                 (T_2_1.num < 0 && idx.num > 0 && 3 > 0)) {
                err = ERR_overflow;
                goto ex_0;}
            err = _wordvecOPbfetch(_resolveOPans, T_2_1, &T_2_2);
            if (err != ERR_ok) goto ex_0;
            T_2_3.num = 256;
            err = intOPmul(T_2_2, T_2_3, &T_2_4);
            if (err != ERR_ok) goto ex_0;
            T_2_5.num = idx.num + 2;
             if ((T_2_5.num > 0 && idx.num < 0 && 2 < 0) || 
                 (T_2_5.num < 0 && idx.num > 0 && 2 > 0)) {
                err = ERR_overflow;
                goto ex_0;}
            err = _wordvecOPbfetch(_resolveOPans, T_2_5, &T_2_6);
            if (err != ERR_ok) goto ex_0;
            T_2_7.num = T_2_4.num + T_2_6.num;
             if ((T_2_7.num > 0 && T_2_4.num < 0 && T_2_6.num < 0) || 
                 (T_2_7.num < 0 && T_2_4.num > 0 && T_2_6.num > 0)) {
                err = ERR_overflow;
                goto ex_0;}
            ret_1->num = T_2_7.num;
            }
            {
            CLUREF T_2_8;
            CLUREF T_2_9;
            CLUREF T_2_10;
            CLUREF T_2_11;
            CLUREF T_2_12;
            CLUREF T_2_13;
            T_2_8.num = idx.num + 1;
             if ((T_2_8.num > 0 && idx.num < 0 && 1 < 0) || 
                 (T_2_8.num < 0 && idx.num > 0 && 1 > 0)) {
                err = ERR_overflow;
                goto ex_0;}
            err = _wordvecOPbfetch(_resolveOPans, T_2_8, &T_2_9);
            if (err != ERR_ok) goto ex_0;
            T_2_10.num = 256;
            err = intOPmul(T_2_9, T_2_10, &T_2_11);
            if (err != ERR_ok) goto ex_0;
            err = _wordvecOPbfetch(_resolveOPans, idx, &T_2_12);
            if (err != ERR_ok) goto ex_0;
            T_2_13.num = T_2_11.num + T_2_12.num;
             if ((T_2_13.num > 0 && T_2_11.num < 0 && T_2_12.num < 0) || 
                 (T_2_13.num < 0 && T_2_11.num > 0 && T_2_12.num > 0)) {
                err = ERR_overflow;
                goto ex_0;}
            ret_2->num = T_2_13.num;
            }
            {signal (ERR_ok);}}
        }
    }
    end_inline_for_1:;

  LINE(196);
    {
    {signal (ERR_not_found);}}
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: elist[0].str = no_return_values_STRING;
        {signal(ERR_failure);}
    }

/**** END PROCEDURE qry ****/


/**** BEGIN PROCEDURE nstore ****/

errcode _resolveOPnstore(dname, idx, max, ret_1)
CLUREF dname;
CLUREF idx;
CLUREF max;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
    CLUREF z;
    CLUREF i;
    CLUREF zidx;
    CLUREF c;
    CLUREF tot;
        if (_resolve_own_init == 0) {
            err = _resolve_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(199);

  LINE(200);
    {
        {CLUREF T_1_1;
        err = stringOPsize(dname, &T_1_1);
        if (err != ERR_ok) goto ex_0;
        z.num = T_1_1.num;
        }
        }

  LINE(201);
    {
        {i.num = 1;
        }
        }

  LINE(202);
    {
    CLUREF T_1_1;
    T_1_1.num = idx.num + max.num;
     if ((T_1_1.num > 0 && idx.num < 0 && max.num < 0) || 
         (T_1_1.num < 0 && idx.num > 0 && max.num > 0)) {
        err = ERR_overflow;
        goto ex_0;}
    max.num = T_1_1.num;
    }

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

  LINE(204);
        {
            {zidx.num = idx.num;
            }
            }

  LINE(205);
        for (;;) {
            CLUREF T_2_1;
            T_2_1.num = (i.num <= z.num)? true : false;
            if (T_2_1.num != true) { break; }

  LINE(206);
            {
                {CLUREF T_3_1;
                err = stringOPfetch(dname, i, &T_3_1);
                if (err != ERR_ok) goto ex_0;
                c.num = T_3_1.num;
                }
                }

  LINE(207);
            {
            CLUREF T_3_1;
            T_3_1.num = i.num + 1;
             if ((T_3_1.num > 0 && i.num < 0 && 1 < 0) || 
                 (T_3_1.num < 0 && i.num > 0 && 1 > 0)) {
                err = ERR_overflow;
                goto ex_0;}
            i.num = T_3_1.num;
            }

  LINE(208);
            {
            CLUREF T_3_1;
            CLUREF T_3_2;
            T_3_1.ch = '.';
            T_3_2.num = (c.ch == T_3_1.ch)? true : false;
            if (T_3_2.num == true) {

  LINE(209);
                goto end_while_2;
                }
            else {
            CLUREF T_3_3;
            CLUREF T_3_4;
            T_3_3.ch = '\\';
            T_3_4.num = (c.ch == T_3_3.ch)? true : false;
            if (T_3_4.num == true) {

  LINE(211);
                {
                CLUREF T_4_1;
                T_4_1.num = i.num + 1;
                 if ((T_4_1.num > 0 && i.num < 0 && 1 < 0) || 
                     (T_4_1.num < 0 && i.num > 0 && 1 > 0)) {
                    err = ERR_overflow;
                    goto ex_0;}
                i.num = T_4_1.num;
                }

  LINE(212);
                {
                CLUREF T_4_1;
                T_4_1.num = (i.num > z.num)? true : false;
                if (T_4_1.num == true) {

  LINE(213);
                    goto end_while_2;
                    }
                    }/* end if */

  LINE(214);
                {
                CLUREF T_4_1;
                err = stringOPfetch(dname, i, &T_4_1);
                if (err != ERR_ok) goto ex_0;
                c.num = T_4_1.num;
                }
                }
                }}/* end if */

  LINE(216);
            {
            CLUREF T_3_1;
            T_3_1.num = idx.num + 1;
             if ((T_3_1.num > 0 && idx.num < 0 && 1 < 0) || 
                 (T_3_1.num < 0 && idx.num > 0 && 1 > 0)) {
                err = ERR_overflow;
                goto ex_0;}
            idx.num = T_3_1.num;
            }

  LINE(217);
            {
            CLUREF T_3_1;
            T_3_1.num = (idx.num >= max.num)? true : false;
            if (T_3_1.num == true) {

  LINE(218);
                {
                {signal (ERR_bounds);}}
                }
                }/* end if */

  LINE(219);
            {
            CLUREF T_3_1;
            T_3_1.num = (int)(c.ch & 0xff);
            err = _wordvecOPbstore(_resolveOPbuf, idx, T_3_1);
            if (err != ERR_ok) goto ex_0;
            }
            }
            end_while_2:;

  LINE(221);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        CLUREF T_2_3;
        T_2_2.num = (idx.num == zidx.num)? true : false;
        T_2_1.num = T_2_2.num;
        if (T_2_2.num) {
            T_2_3.num = (i.num > z.num)? true : false;
            T_2_1.num = T_2_3.num;
        }
        if (T_2_1.num == true) {

  LINE(222);
            goto end_while_1;
            }
            }/* end if */

  LINE(223);
        {
            {CLUREF T_2_1;
            T_2_1.num = idx.num - zidx.num;
             if ((T_2_1.num >= 0 && idx.num < 0 && (-zidx.num) < 0) || 
                 (T_2_1.num <= 0 && idx.num > 0 && (-zidx.num) > 0)) {
                err = ERR_overflow;
                goto ex_0;}
            tot.num = T_2_1.num;
            }
            }

  LINE(224);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        T_2_1.num = 63;
        T_2_2.num = (tot.num > T_2_1.num)? true : false;
        if (T_2_2.num == true) {

  LINE(225);
            {
            {signal (ERR_bounds);}}
            }
            }/* end if */

  LINE(226);
        {
        err = _wordvecOPbstore(_resolveOPbuf, zidx, tot);
        if (err != ERR_ok) goto ex_0;
        }

  LINE(227);
        {
        CLUREF T_2_1;
        T_2_1.num = idx.num + 1;
         if ((T_2_1.num > 0 && idx.num < 0 && 1 < 0) || 
             (T_2_1.num < 0 && idx.num > 0 && 1 > 0)) {
            err = ERR_overflow;
            goto ex_0;}
        idx.num = T_2_1.num;
        }
        }
        end_while_1:;

  LINE(229);
    {
    CLUREF T_1_1;
    T_1_1.num = (idx.num >= max.num)? true : false;
    if (T_1_1.num == true) {

  LINE(230);
        {
        {signal (ERR_bounds);}}
        }
        }/* end if */

  LINE(231);
    {
    err = _wordvecOPbstore(_resolveOPbuf, idx, CLU_0);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(232);
    {
    {
    CLUREF T_1_1;
    T_1_1.num = idx.num + 1;
     if ((T_1_1.num > 0 && idx.num < 0 && 1 < 0) || 
         (T_1_1.num < 0 && idx.num > 0 && 1 > 0)) {
        err = ERR_overflow;
        goto ex_0;}
    ret_1->num = T_1_1.num;
    }
    {signal (ERR_ok);}}
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: elist[0].str = no_return_values_STRING;
        {signal(ERR_failure);}
    }

/**** END PROCEDURE nstore ****/


/**** BEGIN PROCEDURE nskip ****/

errcode _resolveOPnskip(idx, ret_1)
CLUREF idx;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
    CLUREF n;
        if (_resolve_own_init == 0) {
            err = _resolve_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(235);

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

  LINE(237);
        {
            {CLUREF T_2_1;
            err = _wordvecOPbfetch(_resolveOPans, idx, &T_2_1);
            if (err != ERR_ok) goto ex_0;
            n.num = T_2_1.num;
            }
            }

  LINE(238);
        {
        CLUREF T_2_1;
        T_2_1.num = idx.num + 1;
         if ((T_2_1.num > 0 && idx.num < 0 && 1 < 0) || 
             (T_2_1.num < 0 && idx.num > 0 && 1 > 0)) {
            err = ERR_overflow;
            goto ex_0;}
        idx.num = T_2_1.num;
        }

  LINE(239);
        {
        CLUREF T_2_1;
        T_2_1.num = (n.num == 0)? true : false;
        if (T_2_1.num == true) {

  LINE(240);
            goto end_while_1;
            }
            }/* end if */

  LINE(241);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        T_2_1.num = 192;
        T_2_2.num = (n.num < T_2_1.num)? true : false;
        if (T_2_2.num == true) {

  LINE(242);
            {
            CLUREF T_3_1;
            T_3_1.num = idx.num + n.num;
             if ((T_3_1.num > 0 && idx.num < 0 && n.num < 0) || 
                 (T_3_1.num < 0 && idx.num > 0 && n.num > 0)) {
                err = ERR_overflow;
                goto ex_0;}
            idx.num = T_3_1.num;
            }

  LINE(243);
            continue;
            }
            }/* end if */

  LINE(245);
        {
        CLUREF T_2_1;
        T_2_1.num = idx.num + 1;
         if ((T_2_1.num > 0 && idx.num < 0 && 1 < 0) || 
             (T_2_1.num < 0 && idx.num > 0 && 1 > 0)) {
            err = ERR_overflow;
            goto ex_0;}
        idx.num = T_2_1.num;
        }

  LINE(246);
        goto end_while_1;
        }
        end_while_1:;

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

/**** END PROCEDURE nskip ****/


/**** BEGIN PROCEDURE send ****/

errcode _resolveOPsend(len, ret_1)
CLUREF len;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
    CLUREF c;
    CLUREF i;
    CLUREF anslen;
    CLUREF frmlen;
        if (_resolve_own_init == 0) {
            err = _resolve_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(251);

  LINE(252);
    {
        {CLUREF T_1_1;
        err = _chanOPsocket(CLU_2, CLU_2, CLU_0, &T_1_1);
        if (err != ERR_ok) goto ex_0;
        c.num = T_1_1.num;
        }
        }

  LINE(253);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
        T_1_2.num = 1;
        T_1_3.num = -1;
        for (T_1_1.num = _resolveOPretries.num; ((T_1_3.num == 0) || ((T_1_3.num > 0)? (T_1_1.num <= T_1_2.num) : (T_1_1.num >= T_1_2.num))); T_1_1.num += T_1_3.num) {
            i.num = T_1_1.num;

  LINE(254);
            {

  LINE(255);
                {
                err = _chanOPsendto(c, _resolveOPbuf, len, CLU_0, _resolveOPnsaddr, CLU_16);
                if (err != ERR_ok) goto ex_1;
                }

  LINE(256);
                {
                CLUREF T_4_1;
                CLUREF T_4_2;
                err = _chanOPread_wait(c, _resolveOPtimeout, &T_4_1);
                if (err != ERR_ok) goto ex_1;
                T_4_2.num = T_4_1.num ^ 1;
                if (T_4_2.num == true) {

  LINE(257);
                    continue;
                    }
                    }/* end if */

  LINE(258);
                {
                    {CLUREF T_4_1;
                    CLUREF T_4_2;
                    err = _chanOPrecvfrom(c, _resolveOPans, CLU_0, _resolveOPfromaddr, &T_4_1, &T_4_2);
                    if (err != ERR_ok) goto ex_1;
                    anslen.num = T_4_1.num;
                    frmlen.num = T_4_2.num;
                    }
                    }

  LINE(259);
                {
                CLUREF T_4_1;
                CLUREF T_4_2;
                CLUREF T_4_3;
                CLUREF T_4_4;
                err = _wordvecOPwfetch(_resolveOPans, CLU_1, &T_4_1);
                if (err != ERR_ok) goto ex_1;
                err = _wordvecOPwfetch(_resolveOPbuf, CLU_1, &T_4_2);
                if (err != ERR_ok) goto ex_1;
                T_4_3.num = (T_4_1.num == T_4_2.num)? true : false;
                T_4_4.num = T_4_3.num ^ 1;
                if (T_4_4.num == true) {

  LINE(260);
                    continue;
                    }
                    }/* end if */

  LINE(261);
                {
                err = _chanOPclose(c);
                if (err != ERR_ok) goto ex_1;
                }

  LINE(262);
                {
                CLUREF T_4_1;
                CLUREF T_4_2;
                CLUREF T_4_3;
                err = _wordvecOPbfetch(_resolveOPans, CLU_3, &T_4_1);
                if (err != ERR_ok) goto ex_1;
                err = intOPmod(T_4_1, CLU_4, &T_4_2);
                if (err != ERR_ok) goto ex_1;
                T_4_3.num = (T_4_2.num >= 2)? true : false;
                if (T_4_3.num == true) {

  LINE(263);
                    {
                    {signal (ERR_timeout);}}
                    }
                    }/* end if */

  LINE(264);
                {
                {
                ret_1->num = anslen.num;
                }
                {signal (ERR_ok);}}
                }
                goto end_1;
                ex_1:
                    if ((err == ERR_not_possible)) {
                    }
                    else {
                        goto ex_0;
                    }
                end_1:;
        }
    }
    end_inline_for_1:;

  LINE(267);
    {
    err = _chanOPclose(c);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(268);
    {
    {signal (ERR_timeout);}}
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: elist[0].str = no_return_values_STRING;
        {signal(ERR_failure);}
    }

/**** END PROCEDURE send ****/

typedef struct{
    int count;
    OWNPTR type_owns;
    OWNPTR op_owns;
    struct OP_ENTRY entry[1];
} _resolve_OPS;

CLU_proc _resolve_oe_n2a = {{0,0,0,0}, _resolveOPn2a, 0};

_resolve_OPS _resolve_ops_actual = {1, (OWNPTR)&_resolve_own_init, (OWNPTR)&_resolve_own_init, {
    {&_resolve_oe_n2a, "n2a"}}};

struct OPS *_resolve_ops = (struct OPS *)&_resolve_ops_actual;

/**** END CLUSTER _resolve ****/
