/* Compiler: ECL 26.3.27                                                      */
/* Source: /build/ecl/src/ecl-26.3.27/src/cmp/cmpopt-sequence.lsp             */
#include <ecl/ecl-cmp.h>
#include "cmp/cmpopt-sequence.eclh"
/* function definition for CONSTANT-FUNCTION-EXPRESSION                       */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object L4062constant_function_expression(cl_object v1form)
{
 cl_object env0 = ECL_NIL;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object value0;
 ecl_cs_check(cl_env_copy,value0);
L1:;
 if (!(ECL_CONSP(v1form))){
  goto L3;
 }
 {
  cl_object v2;
  v2 = ecl_car(v1form);
  if (!((v2)==(ECL_SYM("QUOTE",682)))){
   goto L10;
  }
  value0 = VV[1];
  goto L8;
L10:;
  value0 = ECL_NIL;
  goto L8;
L8:;
  if (value0!=ECL_NIL) {
   goto L7;
  }
  if (!((v2)==(ECL_SYM("FUNCTION",398)))){
   goto L14;
  }
  value0 = VV[2];
  goto L12;
L14:;
  value0 = ECL_NIL;
  goto L12;
L12:;
  if (value0!=ECL_NIL) {
   goto L7;
  }
  if (!((v2)==(ECL_SYM("LAMBDA",454)))){
   goto L17;
  }
  value0 = VV[3];
  cl_env_copy->nvalues = 1;
  return value0;
L17:;
  value0 = ECL_NIL;
  cl_env_copy->nvalues = 1;
  return value0;
L7:;
  cl_env_copy->nvalues = 1;
  return value0;
 }
L3:;
 value0 = ECL_NIL;
 cl_env_copy->nvalues = 1;
 return value0;
}
static cl_object L4062constant_function_expression_va(cl_narg narg, cl_object v3form, ...)
{
 if (ecl_unlikely(narg!=1)) FEwrong_num_arguments(VV[0]);
 {
  return L4062constant_function_expression(v3form);
 }
}
/* function definition for SEQ-OPT-TEST-FUNCTION                              */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object L4068seq_opt_test_function(cl_object v1test_flag, cl_object v2test, cl_object v3_test)
{
 cl_object env0 = ECL_NIL;
 cl_object CLV0, CLV1;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object value0;
 ecl_cs_check(cl_env_copy,value0);
 env0 = ECL_NIL;
 CLV0 = env0 = CONS(v2test,env0);                 /*  TEST                    */
 CLV1 = env0 = CONS(v3_test,env0);                /*  %TEST                   */
 if (!(v1test_flag==ECL_NIL)){
  goto L1;
 }
 {
  cl_object v4;
  v4 = ecl_make_cfun_va((cl_objectfn)LC4063__lambda12_va,ECL_NIL,Cblock,2);
  value0 = v4;
  cl_env_copy->nvalues = 1;
  return value0;
 }
L1:;
 if (!((v1test_flag)==(ECL_SYM("TEST-NOT",1354)))){
  goto L3;
 }
 if (Null(L4062constant_function_expression(ECL_CONS_CAR(CLV0)))){
  goto L5;
 }
 {
  cl_object v5;
  v5 = ecl_make_cclosure_va((cl_objectfn)LC4064__lambda14,env0,Cblock,2);
  value0 = v5;
  cl_env_copy->nvalues = 1;
  return value0;
 }
L5:;
 {
  cl_object v6;
  v6 = ecl_make_cclosure_va((cl_objectfn)LC4065__lambda16,env0,Cblock,2);
  value0 = v6;
  cl_env_copy->nvalues = 1;
  return value0;
 }
L3:;
 if (Null(L4062constant_function_expression(ECL_CONS_CAR(CLV0)))){
  goto L7;
 }
 {
  cl_object v7;
  v7 = ecl_make_cclosure_va((cl_objectfn)LC4066__lambda18,env0,Cblock,2);
  value0 = v7;
  cl_env_copy->nvalues = 1;
  return value0;
 }
L7:;
 {
  cl_object v8;
  v8 = ecl_make_cclosure_va((cl_objectfn)LC4067__lambda20,env0,Cblock,2);
  value0 = v8;
  cl_env_copy->nvalues = 1;
  return value0;
 }
}
static cl_object L4068seq_opt_test_function_va(cl_narg narg, cl_object v9test_flag, cl_object v10test, cl_object v11_test, ...)
{
 if (ecl_unlikely(narg!=3)) FEwrong_num_arguments(VV[5]);
 {
  return L4068seq_opt_test_function(v9test_flag, v10test, v11_test);
 }
}
/* function definition for SEQ-OPT-KEY-FUNCTION                               */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object L4071seq_opt_key_function(cl_object v1key, cl_object v2_key)
{
 cl_object env0 = ECL_NIL;
 cl_object CLV0, CLV1;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object value0;
 ecl_cs_check(cl_env_copy,value0);
 env0 = ECL_NIL;
 CLV0 = env0 = CONS(v1key,env0);                  /*  KEY                     */
 CLV1 = env0 = CONS(v2_key,env0);                 /*  %KEY                    */
 if (!(ECL_CONS_CAR(CLV0)==ECL_NIL)){
  goto L1;
 }
 value0 = (ECL_SYM("IDENTITY",428)->symbol.gfdef);
 cl_env_copy->nvalues = 1;
 return value0;
L1:;
 if (Null(L4062constant_function_expression(ECL_CONS_CAR(CLV0)))){
  goto L3;
 }
 {
  cl_object v3;
  v3 = ecl_make_cclosure_va((cl_objectfn)LC4069__lambda23,env0,Cblock,1);
  value0 = v3;
  cl_env_copy->nvalues = 1;
  return value0;
 }
L3:;
 {
  cl_object v4;
  v4 = ecl_make_cclosure_va((cl_objectfn)LC4070__lambda25,env0,Cblock,1);
  value0 = v4;
  cl_env_copy->nvalues = 1;
  return value0;
 }
}
static cl_object L4071seq_opt_key_function_va(cl_narg narg, cl_object v5key, cl_object v6_key, ...)
{
 if (ecl_unlikely(narg!=2)) FEwrong_num_arguments(VV[12]);
 {
  return L4071seq_opt_key_function(v5key, v6_key);
 }
}
/* local function DO-IN-SEQ                                                   */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object LC4072do_in_seq(cl_object v1, cl_object v2)
{
 cl_object T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17;
 cl_object env0 = ECL_NIL;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object value0;
 ecl_cs_check(cl_env_copy,value0);
L1:;
 {
  cl_object v3;
  cl_object v4;
  cl_object v5;
  cl_object v6_elt;
  cl_object v7_sequence;
  cl_object v8;
  cl_object v9_start;
  cl_object v10;
  cl_object v11_end;
  cl_object v12;
  cl_object v13end;
  cl_object v14;
  cl_object v15output;
  v3 = ecl_cdr(v1);
  if (!(v3==ECL_NIL)){
   goto L4;
  }
  si_dm_too_few_arguments(v1);
L4:;
  {
   cl_object v16;
   v16 = ecl_car(v3);
   v3 = ecl_cdr(v3);
   v4 = v16;
  }
  v5 = v4;
  if (!(v5==ECL_NIL)){
   goto L11;
  }
  si_dm_too_few_arguments(v1);
L11:;
  {
   cl_object v16;
   v16 = ecl_car(v5);
   v5 = ecl_cdr(v5);
   v6_elt = v16;
  }
  if (!(v5==ECL_NIL)){
   goto L17;
  }
  si_dm_too_few_arguments(v1);
L17:;
  {
   cl_object v16;
   v16 = ecl_car(v5);
   v5 = ecl_cdr(v5);
   v7_sequence = v16;
  }
  v8 = si_search_keyword(v5, VV[19]);
  if (!((v8)==(ECL_SYM("MISSING-KEYWORD",2044)))){
   goto L24;
  }
  v9_start = ECL_NIL;
  goto L23;
L24:;
  v9_start = v8;
L23:;
  v10 = si_search_keyword(v5, VV[20]);
  if (!((v10)==(ECL_SYM("MISSING-KEYWORD",2044)))){
   goto L28;
  }
  v11_end = ECL_NIL;
  goto L27;
L28:;
  v11_end = v10;
L27:;
  v12 = si_search_keyword(v5, ECL_SYM("END",1256));
  if (!((v12)==(ECL_SYM("MISSING-KEYWORD",2044)))){
   goto L32;
  }
  v13end = ECL_NIL;
  goto L31;
L32:;
  v13end = v12;
L31:;
  v14 = si_search_keyword(v5, ECL_SYM("OUTPUT",1319));
  if (!((v14)==(ECL_SYM("MISSING-KEYWORD",2044)))){
   goto L36;
  }
  v15output = ECL_NIL;
  goto L35;
L36:;
  v15output = v14;
L35:;
  si_check_keyword(2, v5, VV[23]);
  {
   cl_object v16_iterator;
   cl_object v17_counter;
   v16_iterator = cl_gensym(1, _ecl_static_0);
   v17_counter = cl_gensym(1, _ecl_static_1);
   {
    cl_object v18counter;
    cl_object v19test;
    if (Null(v13end)){
     goto L42;
    }
    T0 = cl_list(3, ECL_SYM("OR",616), v11_end, ECL_SYM("MOST-POSITIVE-FIXNUM",569));
    v18counter = cl_list(3, ECL_SYM("-",19), T0, v9_start);
    goto L41;
L42:;
    v18counter = ecl_make_int8_t(0);
L41:;
    if (Null(v13end)){
     goto L45;
    }
    T0 = cl_list(2, ECL_SYM("PLUSP",645), v17_counter);
    v19test = cl_list(3, ECL_SYM("AND",89), v16_iterator, T0);
    goto L44;
L45:;
    v19test = v16_iterator;
L44:;
    T0 = cl_list(3, VV[24], v7_sequence, v9_start);
    T1 = cl_list(2, v16_iterator, T0);
    T2 = cl_list(2, v17_counter, v18counter);
    T3 = cl_list(2, T1, T2);
    T4 = cl_list(4, VV[25], v7_sequence, v9_start, v17_counter);
    T5 = cl_list(2, ECL_SYM("IGNORABLE",429), v17_counter);
    T6 = cl_list(2, ECL_SYM("FIXNUM",374), v17_counter);
    T7 = cl_list(4, ECL_SYM("DECLARE",276), T4, T5, T6);
    T8 = cl_list(2, ECL_SYM("RETURN",727), v15output);
    T9 = cl_list(3, ECL_SYM("UNLESS",886), v19test, T8);
    T10 = cl_list(3, VV[26], v7_sequence, v16_iterator);
    T11 = cl_list(2, v6_elt, T10);
    T12 = ecl_list1(T11);
    T13 = cl_listX(3, ECL_SYM("LET",479), T12, v3);
    T14 = cl_list(3, VV[27], v7_sequence, v16_iterator);
    T15 = cl_list(3, ECL_SYM("SETF",753), v16_iterator, T14);
    if (Null(v13end)){
     goto L48;
    }
    T17 = cl_list(2, ECL_SYM("DECF",273), v17_counter);
    T16 = ecl_list1(T17);
    goto L47;
L48:;
    T16 = ECL_NIL;
L47:;
    T17 = cl_listX(5, ECL_SYM("LOOP",514), T9, T13, T15, T16);
    value0 = cl_list(4, ECL_SYM("LET*",480), T3, T7, T17);
    return value0;
   }
  }
 }
}
static cl_object LC4072do_in_seq_va(cl_narg narg, cl_object v20, cl_object v21, ...)
{
 if (ecl_unlikely(narg!=2)) FEwrong_num_arguments(VV[21]);
 {
  return LC4072do_in_seq(v20, v21);
 }
}
/* local function DO-IN-LIST                                                  */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object LC4073do_in_list(cl_object v1, cl_object v2)
{
 cl_object T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10;
 cl_object env0 = ECL_NIL;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object value0;
 ecl_cs_check(cl_env_copy,value0);
L1:;
 {
  cl_object v3;
  cl_object v4;
  cl_object v5;
  cl_object v6_elt;
  cl_object v7_sublist;
  cl_object v8_list;
  v3 = ecl_cdr(v1);
  if (!(v3==ECL_NIL)){
   goto L4;
  }
  si_dm_too_few_arguments(v1);
L4:;
  {
   cl_object v9;
   v9 = ecl_car(v3);
   v3 = ecl_cdr(v3);
   v4 = v9;
  }
  v5 = v4;
  if (!(v5==ECL_NIL)){
   goto L11;
  }
  si_dm_too_few_arguments(v1);
L11:;
  {
   cl_object v9;
   v9 = ecl_car(v5);
   v5 = ecl_cdr(v5);
   v6_elt = v9;
  }
  if (!(v5==ECL_NIL)){
   goto L17;
  }
  si_dm_too_few_arguments(v1);
L17:;
  {
   cl_object v9;
   v9 = ecl_car(v5);
   v5 = ecl_cdr(v5);
   v7_sublist = v9;
  }
  if (!(v5==ECL_NIL)){
   goto L23;
  }
  si_dm_too_few_arguments(v1);
L23:;
  {
   cl_object v9;
   v9 = ecl_car(v5);
   v5 = ecl_cdr(v5);
   v8_list = v9;
  }
  T0 = cl_list(2, ECL_SYM("CONS-CDR",1886), v7_sublist);
  T1 = cl_list(3, v7_sublist, v8_list, T0);
  T2 = ecl_list1(T1);
  T3 = cl_list(2, ECL_SYM("NULL",607), v7_sublist);
  T4 = CONS(T3,v5);
  T5 = cl_list(3, VV[30], v7_sublist, ECL_SYM("CONS",253));
  T6 = cl_list(2, v7_sublist, T5);
  T7 = cl_list(2, ECL_SYM("CONS-CAR",1885), v7_sublist);
  T8 = cl_list(2, v6_elt, T7);
  T9 = cl_list(2, T6, T8);
  T10 = cl_listX(3, ECL_SYM("LET*",480), T9, v3);
  value0 = cl_list(4, ECL_SYM("DO*",310), T2, T4, T10);
  return value0;
 }
}
static cl_object LC4073do_in_list_va(cl_narg narg, cl_object v9, cl_object v10, ...)
{
 if (ecl_unlikely(narg!=2)) FEwrong_num_arguments(VV[29]);
 {
  return LC4073do_in_list(v9, v10);
 }
}
/* local function DEFINE-SEQ-COMPILER-MACRO                                   */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object LC4074define_seq_compiler_macro(cl_object v1, cl_object v2)
{
 cl_object T0, T1, T2, T3, T4, T5, T6;
 cl_object env0 = ECL_NIL;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object value0;
 ecl_cs_check(cl_env_copy,value0);
L1:;
 {
  cl_object v3;
  cl_object v4name;
  cl_object v5lambda_list;
  v3 = ecl_cdr(v1);
  if (!(v3==ECL_NIL)){
   goto L4;
  }
  si_dm_too_few_arguments(v1);
L4:;
  {
   cl_object v6;
   v6 = ecl_car(v3);
   v3 = ecl_cdr(v3);
   v4name = v6;
  }
  if (!(v3==ECL_NIL)){
   goto L10;
  }
  si_dm_too_few_arguments(v1);
L10:;
  {
   cl_object v6;
   v6 = ecl_car(v3);
   v3 = ecl_cdr(v3);
   v5lambda_list = v6;
  }
  {
   cl_object v6whole;
   v6whole = ecl_cadr(v5lambda_list);
   T0 = cl_list(3, ECL_SYM("RETURN-FROM",728), v4name, v6whole);
   T1 = cl_list(3, ECL_SYM("UNLESS",886), VV[34], T0);
   T2 = cl_list(2, ECL_SYM("QUOTE",682), v4name);
   T3 = cl_list(3, VV[36], VV[37], T2);
   T4 = cl_list(3, ECL_SYM("RETURN-FROM",728), v4name, v6whole);
   T5 = cl_list(4, ECL_SYM("WHEN",909), VV[35], T3, T4);
   T6 = cl_listX(4, ECL_SYM("LET*",480), VV[38], VV[39], v3);
   value0 = cl_list(6, VV[33], v4name, v5lambda_list, T1, T5, T6);
   return value0;
  }
 }
}
static cl_object LC4074define_seq_compiler_macro_va(cl_narg narg, cl_object v7, cl_object v8, ...)
{
 if (ecl_unlikely(narg!=2)) FEwrong_num_arguments(VV[32]);
 {
  return LC4074define_seq_compiler_macro(v7, v8);
 }
}
/* local function LAMBDA130                                                   */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object LC4075__lambda130(cl_object v1, cl_object v2)
{
 cl_object T0, T1, T2, T3, T4;
 cl_object env0 = ECL_NIL;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object value0;
 ecl_cs_check(cl_env_copy,value0);
L1:;
 {
  cl_object v3;
  cl_object v4value;
  cl_object v5list;
  T0 = ecl_car(v1);
  if (!((T0)==(ECL_SYM("FUNCALL",396)))){
   goto L3;
  }
  T0 = ecl_caadr(v1);
  if (!((T0)==(ECL_SYM("FUNCTION",398)))){
   goto L3;
  }
  v3 = ecl_cddr(v1);
  goto L2;
L3:;
  v3 = ecl_cdr(v1);
L2:;
  if (!(v3==ECL_NIL)){
   goto L7;
  }
  si_dm_too_few_arguments(v1);
L7:;
  {
   cl_object v6;
   v6 = ecl_car(v3);
   v3 = ecl_cdr(v3);
   v4value = v6;
  }
  if (!(v3==ECL_NIL)){
   goto L13;
  }
  si_dm_too_few_arguments(v1);
L13:;
  {
   cl_object v6;
   v6 = ecl_car(v3);
   v3 = ecl_cdr(v3);
   v5list = v6;
  }
  {
   cl_object v6;
   cl_object v7;
   cl_object v8_value;
   cl_object v9_list;
   cl_object v10_key;
   cl_object v11key;
   cl_object v12;
   cl_object v13_test;
   cl_object v14test;
   cl_object v15;
   cl_object v16_test_not;
   cl_object v17test_not;
   cl_object v18;
   v6 = ECL_NIL;
   v7 = ECL_NIL;
   v8_value = cl_gensym(0);
   v9_list = cl_gensym(0);
   v10_key = cl_gensym(0);
   v11key = ECL_NIL;
   v12 = ECL_NIL;
   v13_test = cl_gensym(0);
   v14test = ECL_NIL;
   v15 = ECL_NIL;
   v16_test_not = cl_gensym(0);
   v17test_not = ECL_NIL;
   v18 = ECL_NIL;
   {
    cl_fixnum v19;
    v19 = ecl_length(v3);
    {
     cl_fixnum v20;
     v20 = (v19>=0&&(cl_fixnum)(2)>0?(v19)%((cl_fixnum)(2)):ecl_imod(v19,(cl_fixnum)(2)));
     if ((v20)==0) {
      goto L32;
     }
    }
   }
   value0 = v1;
   cl_env_copy->nvalues = 1;
   return value0;
L32:;
   {
    cl_object v19;
    cl_object v20;
    cl_object v21;
    {
     cl_object v22;
     v22 = v3;
     if (ecl_unlikely(!ECL_LISTP(v22))) FEtype_error_list(v22);
     value0 = ECL_NIL;
     cl_env_copy->nvalues = 0;
     v19 = v22;
    }
    v20 = ECL_NIL;
    v21 = v19;
    {
     cl_object v22;
     cl_object v23;
     cl_object v24;
     {
      cl_object v25;
      v25 = ecl_cdr(v3);
      if (ecl_unlikely(!ECL_LISTP(v25))) FEtype_error_list(v25);
      value0 = ECL_NIL;
      cl_env_copy->nvalues = 0;
      v22 = v25;
     }
     v23 = ECL_NIL;
     v24 = v22;
     {
      cl_object v25;
      v25 = ECL_NIL;
L45:;
      if (!(ecl_endp(v21))){
       goto L47;
      }
      goto L46;
L47:;
      v20 = ECL_CONS_CAR(v21);
      {
       cl_object v26;
       v26 = ecl_cddr(v21);
       if (ecl_unlikely(!ECL_LISTP(v26))) FEtype_error_list(v26);
       value0 = ECL_NIL;
       cl_env_copy->nvalues = 0;
       v21 = v26;
      }
      if (!(ecl_endp(v24))){
       goto L55;
      }
      goto L46;
L55:;
      v23 = ECL_CONS_CAR(v24);
      {
       cl_object v26;
       v26 = ecl_cddr(v24);
       if (ecl_unlikely(!ECL_LISTP(v26))) FEtype_error_list(v26);
       value0 = ECL_NIL;
       cl_env_copy->nvalues = 0;
       v24 = v26;
      }
      v25 = ECL_NIL;
      if (Null(cl_keywordp(v20))){
       goto L68;
      }
      if (!((v20)==(ECL_SYM("ALLOW-OTHER-KEYS",1227)))){
       goto L66;
      }
      goto L67;
L68:;
L67:;
      value0 = v1;
      cl_env_copy->nvalues = 1;
      return value0;
L66:;
      if (!((v20)==(ECL_SYM("TEST-NOT",1354)))){
       goto L70;
      }
      if (v18!=ECL_NIL) {
       goto L70;
      }
      v25 = ECL_T;
      v17test_not = v23;
      v18 = ECL_T;
      v7 = CONS(ECL_SYM("TEST-NOT",1354),v7);
L70:;
      if (!((v20)==(ECL_SYM("TEST",1353)))){
       goto L80;
      }
      if (v15!=ECL_NIL) {
       goto L80;
      }
      v25 = ECL_T;
      v14test = v23;
      v15 = ECL_T;
      v7 = CONS(ECL_SYM("TEST",1353),v7);
L80:;
      if (!((v20)==(ECL_SYM("KEY",1297)))){
       goto L90;
      }
      if (v12!=ECL_NIL) {
       goto L90;
      }
      v25 = ECL_T;
      v11key = v23;
      v12 = ECL_T;
      v7 = CONS(ECL_SYM("KEY",1297),v7);
L90:;
      if (v25!=ECL_NIL) {
       goto L65;
      }
      value0 = v1;
      cl_env_copy->nvalues = 1;
      return value0;
L65:;
      goto L45;
L46:;
     }
    }
   }
   {
    cl_object v19;
    if ((cl_env_copy->function=ecl_fdefinition(VV[44]))->cfun.entry(0) /*  POLICY-INLINE-SEQUENCE-FUNCTIONS */!=ECL_NIL) {
     goto L103;
    }
    v19 = v1;
    goto L102;
L103:;
    if (Null(v14test)){
     goto L105;
    }
    if (Null(v17test_not)){
     goto L105;
    }
    (cl_env_copy->function=ecl_fdefinition(VV[36]))->cfun.entry(2, VV[37], ECL_SYM("MEMBER",554)) /*  CMPWARN */;
    v19 = v1;
    goto L102;
L105:;
    {
     cl_object v20test_flag;
     cl_object v21key_function;
     cl_object v22test_function;
     if (Null(v14test)){
      goto L110;
     }
     v20test_flag = ECL_SYM("TEST",1353);
     goto L109;
L110:;
     if (Null(v17test_not)){
      goto L112;
     }
     v20test_flag = ECL_SYM("TEST-NOT",1354);
     goto L109;
L112:;
     v20test_flag = ECL_NIL;
L109:;
     v21key_function = L4071seq_opt_key_function(v11key, v10_key);
     if (Null(v14test)){
      goto L117;
     }
     T0 = v14test;
     goto L116;
L117:;
     T0 = v17test_not;
L116:;
     if (Null(v14test)){
      goto L120;
     }
     T1 = v13_test;
     goto L119;
L120:;
     T1 = v16_test_not;
L119:;
     v22test_function = L4068seq_opt_test_function(v20test_flag, T0, T1);
     if (v11key!=ECL_NIL) {
      goto L122;
     }
     if (v14test==ECL_NIL) {
      goto L127;
     }
     if (Null(L4062constant_function_expression(v14test))){
      goto L124;
     }
     goto L126;
L127:;
L126:;
     if (Null((cl_env_copy->function=ecl_fdefinition(VV[45]))->cfun.entry(1, v5list) /*  CONSTANT-EXPRESSION-P */)){
      goto L124;
     }
     {
      cl_object v23evaluated_list;
      v23evaluated_list = (cl_env_copy->function=ecl_fdefinition(VV[46]))->cfun.entry(1, v5list) /*  CMP-EVAL */;
      if (Null(si_proper_list_p(v23evaluated_list))){
       goto L130;
      }
      {
       cl_fixnum v24;
       v24 = ecl_length(v23evaluated_list);
       if (!((v24)<=((cl_fixnum)(4)))){
        goto L130;
       }
      }
      {
       cl_object v24l;
       v24l = v23evaluated_list;
       {
        cl_object v25elt;
        v25elt = ECL_NIL;
        {
         cl_object v26;
         cl_object v27;
         v26 = ecl_list1(ECL_NIL);
         v27 = v26;
L138:;
         if (!(ECL_ATOM(v24l))){
          goto L140;
         }
         goto L139;
L140:;
         v25elt = ecl_car(v24l);
         {
          cl_object v28;
          v28 = v27;
          if (ecl_unlikely(ECL_ATOM(v28))) FEtype_error_cons(v28);
          value0 = ECL_NIL;
          cl_env_copy->nvalues = 0;
          T1 = v28;
         }
         T3 = cl_list(2, ECL_SYM("QUOTE",682), v25elt);
         T2 = ecl_function_dispatch(cl_env_copy,v22test_function)(2, v8_value, T3);
         T3 = cl_list(2, ECL_SYM("QUOTE",682), v24l);
         T4 = cl_list(3, ECL_SYM("AND",89), T2, T3);
         v27 = ecl_list1(T4);
         (ECL_CONS_CDR(T1)=v27,T1);
         v24l = ECL_CONS_CDR(v24l);
         goto L138;
L139:;
         T0 = ecl_cdr(v26);
         goto L133;
        }
       }
      }
L133:;
      v19 = CONS(ECL_SYM("OR",616),T0);
      goto L102;
L130:;
      if (ECL_CONSP(v23evaluated_list)) {
       goto L155;
      }
      if (!(ECL_SYMBOLP(v23evaluated_list))){
       goto L124;
      }
      goto L154;
L155:;
L154:;
      v5list = cl_list(2, ECL_SYM("QUOTE",682), v23evaluated_list);
     }
L124:;
     if (v20test_flag==ECL_NIL) {
      goto L159;
     }
     if (!((v20test_flag)==(ECL_SYM("TEST",1353)))){
      goto L122;
     }
     goto L158;
L159:;
L158:;
     {
      cl_object v23;
      v23 = (ECL_SYM("EQUAL",337)->symbol.gfdef);
      if (!(ecl_equal(v14test,VV[51]))){
       goto L167;
      }
      goto L164;
L167:;
      goto L165;
L165:;
      if (!(ecl_equal(v14test,VV[52]))){
       goto L161;
      }
      goto L162;
L164:;
     }
L162:;
     T0 = cl_list(2, v8_value, v9_list);
     v19 = cl_listX(3, ECL_SYM("C-INLINE",2106), T0, VV[54]);
     goto L102;
L161:;
     {
      cl_object v23;
      v23 = (ECL_SYM("EQUAL",337)->symbol.gfdef);
      if (!(ecl_equal(v14test,VV[56]))){
       goto L177;
      }
      goto L172;
L177:;
      goto L175;
L175:;
      if (!(ecl_equal(v14test,VV[57]))){
       goto L180;
      }
      goto L172;
L180:;
      goto L173;
     }
L173:;
     if (!(v14test==ECL_NIL)){
      goto L170;
     }
     goto L171;
L172:;
L171:;
     T0 = cl_list(2, v8_value, v9_list);
     v19 = cl_listX(3, ECL_SYM("C-INLINE",2106), T0, VV[59]);
     goto L102;
L170:;
     {
      cl_object v23;
      v23 = (ECL_SYM("EQUAL",337)->symbol.gfdef);
      if (!(ecl_equal(v14test,VV[61]))){
       goto L187;
      }
      goto L184;
L187:;
      goto L185;
L185:;
      if (!(ecl_equal(v14test,VV[62]))){
       goto L122;
      }
      goto L182;
L184:;
     }
L182:;
     T0 = cl_list(2, v8_value, v9_list);
     v19 = cl_listX(3, ECL_SYM("C-INLINE",2106), T0, VV[64]);
     goto L102;
L122:;
     {
      cl_object v23_sublist;
      cl_object v24_elt;
      v23_sublist = cl_gensym(1, _ecl_static_2);
      v24_elt = cl_gensym(1, _ecl_static_3);
      T0 = cl_list(3, v24_elt, v23_sublist, v9_list);
      T2 = ecl_function_dispatch(cl_env_copy,v21key_function)(1, v24_elt);
      T1 = ecl_function_dispatch(cl_env_copy,v22test_function)(2, v8_value, T2);
      T2 = cl_list(2, ECL_SYM("RETURN",727), v23_sublist);
      T3 = cl_list(3, ECL_SYM("WHEN",909), T1, T2);
      v19 = cl_list(3, VV[29], T0, T3);
     }
    }
L102:;
    if (!((v19)==(v1))){
     goto L194;
    }
    value0 = v1;
    cl_env_copy->nvalues = 1;
    return value0;
L194:;
    T0 = cl_list(2, v8_value, v4value);
    v6 = CONS(T0,v6);
    T0 = cl_list(2, v9_list, v5list);
    v6 = CONS(T0,v6);
    {
     cl_object v20;
     cl_object v21;
     cl_object v22;
     {
      cl_object v23;
      v23 = cl_nreverse(v7);
      if (ecl_unlikely(!ECL_LISTP(v23))) FEtype_error_list(v23);
      value0 = ECL_NIL;
      cl_env_copy->nvalues = 0;
      v20 = v23;
     }
     v21 = ECL_NIL;
     v22 = v20;
L206:;
     if (!(ecl_endp(v22))){
      goto L208;
     }
     goto L207;
L208:;
     v21 = ECL_CONS_CAR(v22);
     {
      cl_object v23;
      v23 = ECL_CONS_CDR(v22);
      if (ecl_unlikely(!ECL_LISTP(v23))) FEtype_error_list(v23);
      value0 = ECL_NIL;
      cl_env_copy->nvalues = 0;
      v22 = v23;
     }
     if (!((v21)==(ECL_SYM("TEST-NOT",1354)))){
      goto L217;
     }
     T0 = cl_list(2, v16_test_not, v17test_not);
     v6 = CONS(T0,v6);
L217:;
     if (!((v21)==(ECL_SYM("TEST",1353)))){
      goto L220;
     }
     T0 = cl_list(2, v13_test, v14test);
     v6 = CONS(T0,v6);
L220:;
     if (!((v21)==(ECL_SYM("KEY",1297)))){
      goto L216;
     }
     T0 = cl_list(2, v10_key, v11key);
     v6 = CONS(T0,v6);
L216:;
     goto L206;
L207:;
    }
    if (v12!=ECL_NIL) {
     goto L226;
    }
    T0 = cl_list(2, v10_key, v11key);
    v6 = CONS(T0,v6);
L226:;
    if (v15!=ECL_NIL) {
     goto L229;
    }
    T0 = cl_list(2, v13_test, v14test);
    v6 = CONS(T0,v6);
L229:;
    if (v18!=ECL_NIL) {
     goto L232;
    }
    T0 = cl_list(2, v16_test_not, v17test_not);
    v6 = CONS(T0,v6);
L232:;
    T0 = cl_nreverse(v6);
    value0 = cl_list(3, ECL_SYM("LET",479), T0, v19);
    return value0;
   }
  }
 }
}
static cl_object LC4075__lambda130_va(cl_narg narg, cl_object v20, cl_object v21, ...)
{
 if (ecl_unlikely(narg!=2)) FEwrong_num_arguments(VV[41]);
 {
  return LC4075__lambda130(v20, v21);
 }
}
/* local function LAMBDA250                                                   */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object LC4076__lambda250(cl_object v1, cl_object v2)
{
 cl_object T0, T1, T2, T3, T4, T5, T6, T7, T8, T9;
 cl_object env0 = ECL_NIL;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object value0;
 ecl_cs_check(cl_env_copy,value0);
L1:;
 {
  cl_object v3;
  cl_object v4value;
  cl_object v5list;
  T0 = ecl_car(v1);
  if (!((T0)==(ECL_SYM("FUNCALL",396)))){
   goto L3;
  }
  T0 = ecl_caadr(v1);
  if (!((T0)==(ECL_SYM("FUNCTION",398)))){
   goto L3;
  }
  v3 = ecl_cddr(v1);
  goto L2;
L3:;
  v3 = ecl_cdr(v1);
L2:;
  if (!(v3==ECL_NIL)){
   goto L7;
  }
  si_dm_too_few_arguments(v1);
L7:;
  {
   cl_object v6;
   v6 = ecl_car(v3);
   v3 = ecl_cdr(v3);
   v4value = v6;
  }
  if (!(v3==ECL_NIL)){
   goto L13;
  }
  si_dm_too_few_arguments(v1);
L13:;
  {
   cl_object v6;
   v6 = ecl_car(v3);
   v3 = ecl_cdr(v3);
   v5list = v6;
  }
  {
   cl_object v6;
   cl_object v7;
   cl_object v8_value;
   cl_object v9_list;
   cl_object v10_key;
   cl_object v11key;
   cl_object v12;
   cl_object v13_test;
   cl_object v14test;
   cl_object v15;
   cl_object v16_test_not;
   cl_object v17test_not;
   cl_object v18;
   v6 = ECL_NIL;
   v7 = ECL_NIL;
   v8_value = cl_gensym(0);
   v9_list = cl_gensym(0);
   v10_key = cl_gensym(0);
   v11key = ECL_NIL;
   v12 = ECL_NIL;
   v13_test = cl_gensym(0);
   v14test = ECL_NIL;
   v15 = ECL_NIL;
   v16_test_not = cl_gensym(0);
   v17test_not = ECL_NIL;
   v18 = ECL_NIL;
   {
    cl_fixnum v19;
    v19 = ecl_length(v3);
    {
     cl_fixnum v20;
     v20 = (v19>=0&&(cl_fixnum)(2)>0?(v19)%((cl_fixnum)(2)):ecl_imod(v19,(cl_fixnum)(2)));
     if ((v20)==0) {
      goto L32;
     }
    }
   }
   value0 = v1;
   cl_env_copy->nvalues = 1;
   return value0;
L32:;
   {
    cl_object v19;
    cl_object v20;
    cl_object v21;
    {
     cl_object v22;
     v22 = v3;
     if (ecl_unlikely(!ECL_LISTP(v22))) FEtype_error_list(v22);
     value0 = ECL_NIL;
     cl_env_copy->nvalues = 0;
     v19 = v22;
    }
    v20 = ECL_NIL;
    v21 = v19;
    {
     cl_object v22;
     cl_object v23;
     cl_object v24;
     {
      cl_object v25;
      v25 = ecl_cdr(v3);
      if (ecl_unlikely(!ECL_LISTP(v25))) FEtype_error_list(v25);
      value0 = ECL_NIL;
      cl_env_copy->nvalues = 0;
      v22 = v25;
     }
     v23 = ECL_NIL;
     v24 = v22;
     {
      cl_object v25;
      v25 = ECL_NIL;
L45:;
      if (!(ecl_endp(v21))){
       goto L47;
      }
      goto L46;
L47:;
      v20 = ECL_CONS_CAR(v21);
      {
       cl_object v26;
       v26 = ecl_cddr(v21);
       if (ecl_unlikely(!ECL_LISTP(v26))) FEtype_error_list(v26);
       value0 = ECL_NIL;
       cl_env_copy->nvalues = 0;
       v21 = v26;
      }
      if (!(ecl_endp(v24))){
       goto L55;
      }
      goto L46;
L55:;
      v23 = ECL_CONS_CAR(v24);
      {
       cl_object v26;
       v26 = ecl_cddr(v24);
       if (ecl_unlikely(!ECL_LISTP(v26))) FEtype_error_list(v26);
       value0 = ECL_NIL;
       cl_env_copy->nvalues = 0;
       v24 = v26;
      }
      v25 = ECL_NIL;
      if (Null(cl_keywordp(v20))){
       goto L68;
      }
      if (!((v20)==(ECL_SYM("ALLOW-OTHER-KEYS",1227)))){
       goto L66;
      }
      goto L67;
L68:;
L67:;
      value0 = v1;
      cl_env_copy->nvalues = 1;
      return value0;
L66:;
      if (!((v20)==(ECL_SYM("TEST-NOT",1354)))){
       goto L70;
      }
      if (v18!=ECL_NIL) {
       goto L70;
      }
      v25 = ECL_T;
      v17test_not = v23;
      v18 = ECL_T;
      v7 = CONS(ECL_SYM("TEST-NOT",1354),v7);
L70:;
      if (!((v20)==(ECL_SYM("TEST",1353)))){
       goto L80;
      }
      if (v15!=ECL_NIL) {
       goto L80;
      }
      v25 = ECL_T;
      v14test = v23;
      v15 = ECL_T;
      v7 = CONS(ECL_SYM("TEST",1353),v7);
L80:;
      if (!((v20)==(ECL_SYM("KEY",1297)))){
       goto L90;
      }
      if (v12!=ECL_NIL) {
       goto L90;
      }
      v25 = ECL_T;
      v11key = v23;
      v12 = ECL_T;
      v7 = CONS(ECL_SYM("KEY",1297),v7);
L90:;
      if (v25!=ECL_NIL) {
       goto L65;
      }
      value0 = v1;
      cl_env_copy->nvalues = 1;
      return value0;
L65:;
      goto L45;
L46:;
     }
    }
   }
   {
    cl_object v19;
    if ((cl_env_copy->function=ecl_fdefinition(VV[44]))->cfun.entry(0) /*  POLICY-INLINE-SEQUENCE-FUNCTIONS */!=ECL_NIL) {
     goto L103;
    }
    v19 = v1;
    goto L102;
L103:;
    if (Null(v14test)){
     goto L105;
    }
    if (Null(v17test_not)){
     goto L105;
    }
    (cl_env_copy->function=ecl_fdefinition(VV[36]))->cfun.entry(2, VV[37], ECL_SYM("ASSOC",116)) /*  CMPWARN */;
    v19 = v1;
    goto L102;
L105:;
    {
     cl_object v20test_flag;
     cl_object v21key_function;
     cl_object v22test_function;
     if (Null(v14test)){
      goto L110;
     }
     v20test_flag = ECL_SYM("TEST",1353);
     goto L109;
L110:;
     if (Null(v17test_not)){
      goto L112;
     }
     v20test_flag = ECL_SYM("TEST-NOT",1354);
     goto L109;
L112:;
     v20test_flag = ECL_NIL;
L109:;
     v21key_function = L4071seq_opt_key_function(v11key, v10_key);
     if (Null(v14test)){
      goto L117;
     }
     T0 = v14test;
     goto L116;
L117:;
     T0 = v17test_not;
L116:;
     if (Null(v14test)){
      goto L120;
     }
     T1 = v13_test;
     goto L119;
L120:;
     T1 = v16_test_not;
L119:;
     v22test_function = L4068seq_opt_test_function(v20test_flag, T0, T1);
     if (v11key!=ECL_NIL) {
      goto L122;
     }
     if (v20test_flag==ECL_NIL) {
      goto L125;
     }
     if (!((v20test_flag)==(ECL_SYM("TEST",1353)))){
      goto L122;
     }
     goto L124;
L125:;
L124:;
     {
      cl_object v23;
      v23 = (ECL_SYM("EQUAL",337)->symbol.gfdef);
      if (!(ecl_equal(v14test,VV[51]))){
       goto L133;
      }
      goto L130;
L133:;
      goto L131;
L131:;
      if (!(ecl_equal(v14test,VV[52]))){
       goto L127;
      }
      goto L128;
L130:;
     }
L128:;
     T0 = cl_list(2, v8_value, v9_list);
     v19 = cl_listX(3, ECL_SYM("C-INLINE",2106), T0, VV[66]);
     goto L102;
L127:;
     {
      cl_object v23;
      v23 = (ECL_SYM("EQUAL",337)->symbol.gfdef);
      if (!(ecl_equal(v14test,VV[56]))){
       goto L143;
      }
      goto L138;
L143:;
      goto L141;
L141:;
      if (!(ecl_equal(v14test,VV[57]))){
       goto L146;
      }
      goto L138;
L146:;
      goto L139;
     }
L139:;
     if (!(v14test==ECL_NIL)){
      goto L136;
     }
     goto L137;
L138:;
L137:;
     T0 = cl_list(2, v8_value, v9_list);
     v19 = cl_listX(3, ECL_SYM("C-INLINE",2106), T0, VV[67]);
     goto L102;
L136:;
     {
      cl_object v23;
      v23 = (ECL_SYM("EQUAL",337)->symbol.gfdef);
      if (!(ecl_equal(v14test,VV[61]))){
       goto L154;
      }
      goto L151;
L154:;
      goto L152;
L152:;
      if (!(ecl_equal(v14test,VV[62]))){
       goto L148;
      }
      goto L149;
L151:;
     }
L149:;
     T0 = cl_list(2, v8_value, v9_list);
     v19 = cl_listX(3, ECL_SYM("C-INLINE",2106), T0, VV[68]);
     goto L102;
L148:;
     {
      cl_object v23;
      v23 = (ECL_SYM("EQUAL",337)->symbol.gfdef);
      if (!(ecl_equal(v14test,VV[70]))){
       goto L162;
      }
      goto L159;
L162:;
      goto L160;
L160:;
      if (!(ecl_equal(v14test,VV[71]))){
       goto L122;
      }
      goto L157;
L159:;
     }
L157:;
     T0 = cl_list(2, v8_value, v9_list);
     v19 = cl_listX(3, ECL_SYM("C-INLINE",2106), T0, VV[73]);
     goto L102;
L122:;
     {
      cl_object v23_sublist;
      cl_object v24_elt;
      cl_object v25_car;
      v23_sublist = cl_gensym(1, _ecl_static_2);
      v24_elt = cl_gensym(1, _ecl_static_3);
      v25_car = cl_gensym(1, _ecl_static_4);
      T0 = cl_list(3, v24_elt, v23_sublist, v9_list);
      T1 = cl_list(3, VV[30], v24_elt, ECL_SYM("CONS",253));
      T2 = cl_list(2, ECL_SYM("CONS-CAR",1885), T1);
      T3 = cl_list(2, v25_car, T2);
      T4 = ecl_list1(T3);
      T6 = ecl_function_dispatch(cl_env_copy,v21key_function)(1, v25_car);
      T5 = ecl_function_dispatch(cl_env_copy,v22test_function)(2, v8_value, T6);
      T6 = cl_list(2, ECL_SYM("RETURN",727), v24_elt);
      T7 = cl_list(3, ECL_SYM("WHEN",909), T5, T6);
      T8 = cl_list(3, ECL_SYM("LET",479), T4, T7);
      T9 = cl_list(3, ECL_SYM("WHEN",909), v24_elt, T8);
      v19 = cl_list(3, VV[29], T0, T9);
     }
    }
L102:;
    if (!((v19)==(v1))){
     goto L170;
    }
    value0 = v1;
    cl_env_copy->nvalues = 1;
    return value0;
L170:;
    T0 = cl_list(2, v8_value, v4value);
    v6 = CONS(T0,v6);
    T0 = cl_list(2, v9_list, v5list);
    v6 = CONS(T0,v6);
    {
     cl_object v20;
     cl_object v21;
     cl_object v22;
     {
      cl_object v23;
      v23 = cl_nreverse(v7);
      if (ecl_unlikely(!ECL_LISTP(v23))) FEtype_error_list(v23);
      value0 = ECL_NIL;
      cl_env_copy->nvalues = 0;
      v20 = v23;
     }
     v21 = ECL_NIL;
     v22 = v20;
L182:;
     if (!(ecl_endp(v22))){
      goto L184;
     }
     goto L183;
L184:;
     v21 = ECL_CONS_CAR(v22);
     {
      cl_object v23;
      v23 = ECL_CONS_CDR(v22);
      if (ecl_unlikely(!ECL_LISTP(v23))) FEtype_error_list(v23);
      value0 = ECL_NIL;
      cl_env_copy->nvalues = 0;
      v22 = v23;
     }
     if (!((v21)==(ECL_SYM("TEST-NOT",1354)))){
      goto L193;
     }
     T0 = cl_list(2, v16_test_not, v17test_not);
     v6 = CONS(T0,v6);
L193:;
     if (!((v21)==(ECL_SYM("TEST",1353)))){
      goto L196;
     }
     T0 = cl_list(2, v13_test, v14test);
     v6 = CONS(T0,v6);
L196:;
     if (!((v21)==(ECL_SYM("KEY",1297)))){
      goto L192;
     }
     T0 = cl_list(2, v10_key, v11key);
     v6 = CONS(T0,v6);
L192:;
     goto L182;
L183:;
    }
    if (v12!=ECL_NIL) {
     goto L202;
    }
    T0 = cl_list(2, v10_key, v11key);
    v6 = CONS(T0,v6);
L202:;
    if (v15!=ECL_NIL) {
     goto L205;
    }
    T0 = cl_list(2, v13_test, v14test);
    v6 = CONS(T0,v6);
L205:;
    if (v18!=ECL_NIL) {
     goto L208;
    }
    T0 = cl_list(2, v16_test_not, v17test_not);
    v6 = CONS(T0,v6);
L208:;
    T0 = cl_nreverse(v6);
    value0 = cl_list(3, ECL_SYM("LET",479), T0, v19);
    return value0;
   }
  }
 }
}
static cl_object LC4076__lambda250_va(cl_narg narg, cl_object v20, cl_object v21, ...)
{
 if (ecl_unlikely(narg!=2)) FEwrong_num_arguments(VV[65]);
 {
  return LC4076__lambda250(v20, v21);
 }
}
/* local function LAMBDA413                                                   */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object LC4077__lambda413(cl_object v1, cl_object v2)
{
 cl_object T0, T1, T2, T3;
 cl_object env0 = ECL_NIL;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object value0;
 ecl_cs_check(cl_env_copy,value0);
L1:;
 {
  cl_object v3;
  cl_object v4value;
  cl_object v5sequence;
  T0 = ecl_car(v1);
  if (!((T0)==(ECL_SYM("FUNCALL",396)))){
   goto L3;
  }
  T0 = ecl_caadr(v1);
  if (!((T0)==(ECL_SYM("FUNCTION",398)))){
   goto L3;
  }
  v3 = ecl_cddr(v1);
  goto L2;
L3:;
  v3 = ecl_cdr(v1);
L2:;
  if (!(v3==ECL_NIL)){
   goto L7;
  }
  si_dm_too_few_arguments(v1);
L7:;
  {
   cl_object v6;
   v6 = ecl_car(v3);
   v3 = ecl_cdr(v3);
   v4value = v6;
  }
  if (!(v3==ECL_NIL)){
   goto L13;
  }
  si_dm_too_few_arguments(v1);
L13:;
  {
   cl_object v6;
   v6 = ecl_car(v3);
   v3 = ecl_cdr(v3);
   v5sequence = v6;
  }
  {
   cl_object v6;
   cl_object v7;
   cl_object v8_value;
   cl_object v9_sequence;
   cl_object v10_key;
   cl_object v11key;
   cl_object v12;
   cl_object v13_test;
   cl_object v14test;
   cl_object v15;
   cl_object v16_test_not;
   cl_object v17test_not;
   cl_object v18;
   cl_object v19_start;
   cl_object v20start;
   cl_object v21;
   cl_object v22_end;
   cl_object v23end;
   cl_object v24;
   cl_object v25_from_end;
   cl_object v26from_end;
   cl_object v27;
   v6 = ECL_NIL;
   v7 = ECL_NIL;
   v8_value = cl_gensym(0);
   v9_sequence = cl_gensym(0);
   v10_key = cl_gensym(0);
   v11key = ECL_NIL;
   v12 = ECL_NIL;
   v13_test = cl_gensym(0);
   v14test = ECL_NIL;
   v15 = ECL_NIL;
   v16_test_not = cl_gensym(0);
   v17test_not = ECL_NIL;
   v18 = ECL_NIL;
   v19_start = cl_gensym(0);
   v20start = ecl_make_int8_t(0);
   v21 = ECL_NIL;
   v22_end = cl_gensym(0);
   v23end = ECL_NIL;
   v24 = ECL_NIL;
   v25_from_end = cl_gensym(0);
   v26from_end = ECL_NIL;
   v27 = ECL_NIL;
   {
    cl_fixnum v28;
    v28 = ecl_length(v3);
    {
     cl_fixnum v29;
     v29 = (v28>=0&&(cl_fixnum)(2)>0?(v28)%((cl_fixnum)(2)):ecl_imod(v28,(cl_fixnum)(2)));
     if ((v29)==0) {
      goto L41;
     }
    }
   }
   value0 = v1;
   cl_env_copy->nvalues = 1;
   return value0;
L41:;
   {
    cl_object v28;
    cl_object v29;
    cl_object v30;
    {
     cl_object v31;
     v31 = v3;
     if (ecl_unlikely(!ECL_LISTP(v31))) FEtype_error_list(v31);
     value0 = ECL_NIL;
     cl_env_copy->nvalues = 0;
     v28 = v31;
    }
    v29 = ECL_NIL;
    v30 = v28;
    {
     cl_object v31;
     cl_object v32;
     cl_object v33;
     {
      cl_object v34;
      v34 = ecl_cdr(v3);
      if (ecl_unlikely(!ECL_LISTP(v34))) FEtype_error_list(v34);
      value0 = ECL_NIL;
      cl_env_copy->nvalues = 0;
      v31 = v34;
     }
     v32 = ECL_NIL;
     v33 = v31;
     {
      cl_object v34;
      v34 = ECL_NIL;
L54:;
      if (!(ecl_endp(v30))){
       goto L56;
      }
      goto L55;
L56:;
      v29 = ECL_CONS_CAR(v30);
      {
       cl_object v35;
       v35 = ecl_cddr(v30);
       if (ecl_unlikely(!ECL_LISTP(v35))) FEtype_error_list(v35);
       value0 = ECL_NIL;
       cl_env_copy->nvalues = 0;
       v30 = v35;
      }
      if (!(ecl_endp(v33))){
       goto L64;
      }
      goto L55;
L64:;
      v32 = ECL_CONS_CAR(v33);
      {
       cl_object v35;
       v35 = ecl_cddr(v33);
       if (ecl_unlikely(!ECL_LISTP(v35))) FEtype_error_list(v35);
       value0 = ECL_NIL;
       cl_env_copy->nvalues = 0;
       v33 = v35;
      }
      v34 = ECL_NIL;
      if (Null(cl_keywordp(v29))){
       goto L77;
      }
      if (!((v29)==(ECL_SYM("ALLOW-OTHER-KEYS",1227)))){
       goto L75;
      }
      goto L76;
L77:;
L76:;
      value0 = v1;
      cl_env_copy->nvalues = 1;
      return value0;
L75:;
      if (!((v29)==(VV[75]))){
       goto L79;
      }
      if (v27!=ECL_NIL) {
       goto L79;
      }
      v34 = ECL_T;
      v26from_end = v32;
      v27 = ECL_T;
      v7 = CONS(VV[75],v7);
L79:;
      if (!((v29)==(ECL_SYM("END",1256)))){
       goto L89;
      }
      if (v24!=ECL_NIL) {
       goto L89;
      }
      v34 = ECL_T;
      v23end = v32;
      v24 = ECL_T;
      v7 = CONS(ECL_SYM("END",1256),v7);
L89:;
      if (!((v29)==(ECL_SYM("START",1347)))){
       goto L99;
      }
      if (v21!=ECL_NIL) {
       goto L99;
      }
      v34 = ECL_T;
      v20start = v32;
      v21 = ECL_T;
      v7 = CONS(ECL_SYM("START",1347),v7);
L99:;
      if (!((v29)==(ECL_SYM("TEST-NOT",1354)))){
       goto L109;
      }
      if (v18!=ECL_NIL) {
       goto L109;
      }
      v34 = ECL_T;
      v17test_not = v32;
      v18 = ECL_T;
      v7 = CONS(ECL_SYM("TEST-NOT",1354),v7);
L109:;
      if (!((v29)==(ECL_SYM("TEST",1353)))){
       goto L119;
      }
      if (v15!=ECL_NIL) {
       goto L119;
      }
      v34 = ECL_T;
      v14test = v32;
      v15 = ECL_T;
      v7 = CONS(ECL_SYM("TEST",1353),v7);
L119:;
      if (!((v29)==(ECL_SYM("KEY",1297)))){
       goto L129;
      }
      if (v12!=ECL_NIL) {
       goto L129;
      }
      v34 = ECL_T;
      v11key = v32;
      v12 = ECL_T;
      v7 = CONS(ECL_SYM("KEY",1297),v7);
L129:;
      if (v34!=ECL_NIL) {
       goto L74;
      }
      value0 = v1;
      cl_env_copy->nvalues = 1;
      return value0;
L74:;
      goto L54;
L55:;
     }
    }
   }
   {
    cl_object v28;
    if ((cl_env_copy->function=ecl_fdefinition(VV[44]))->cfun.entry(0) /*  POLICY-INLINE-SEQUENCE-FUNCTIONS */!=ECL_NIL) {
     goto L142;
    }
    v28 = v1;
    goto L141;
L142:;
    if (Null(v14test)){
     goto L144;
    }
    if (Null(v17test_not)){
     goto L144;
    }
    (cl_env_copy->function=ecl_fdefinition(VV[36]))->cfun.entry(2, VV[37], ECL_SYM("FIND",365)) /*  CMPWARN */;
    v28 = v1;
    goto L141;
L144:;
    {
     cl_object v29test_flag;
     cl_object v30key_function;
     cl_object v31test_function;
     if (Null(v14test)){
      goto L149;
     }
     v29test_flag = ECL_SYM("TEST",1353);
     goto L148;
L149:;
     if (Null(v17test_not)){
      goto L151;
     }
     v29test_flag = ECL_SYM("TEST-NOT",1354);
     goto L148;
L151:;
     v29test_flag = ECL_NIL;
L148:;
     v30key_function = L4071seq_opt_key_function(v11key, v10_key);
     if (Null(v14test)){
      goto L156;
     }
     T0 = v14test;
     goto L155;
L156:;
     T0 = v17test_not;
L155:;
     if (Null(v14test)){
      goto L159;
     }
     T1 = v13_test;
     goto L158;
L159:;
     T1 = v16_test_not;
L158:;
     v31test_function = L4068seq_opt_test_function(v29test_flag, T0, T1);
     if (Null(v26from_end)){
      goto L161;
     }
     v28 = v1;
     goto L141;
L161:;
     {
      cl_object v32_elt;
      v32_elt = cl_gensym(1, _ecl_static_3);
      T0 = cl_list(8, v32_elt, v9_sequence, VV[19], v19_start, VV[20], v22_end, ECL_SYM("END",1256), v23end);
      T2 = ecl_function_dispatch(cl_env_copy,v30key_function)(1, v32_elt);
      T1 = ecl_function_dispatch(cl_env_copy,v31test_function)(2, v8_value, T2);
      T2 = cl_list(2, ECL_SYM("RETURN",727), v32_elt);
      T3 = cl_list(3, ECL_SYM("WHEN",909), T1, T2);
      v28 = cl_list(3, VV[21], T0, T3);
     }
    }
L141:;
    if (!((v28)==(v1))){
     goto L166;
    }
    value0 = v1;
    cl_env_copy->nvalues = 1;
    return value0;
L166:;
    T0 = cl_list(2, v8_value, v4value);
    v6 = CONS(T0,v6);
    T0 = cl_list(2, v9_sequence, v5sequence);
    v6 = CONS(T0,v6);
    {
     cl_object v29;
     cl_object v30;
     cl_object v31;
     {
      cl_object v32;
      v32 = cl_nreverse(v7);
      if (ecl_unlikely(!ECL_LISTP(v32))) FEtype_error_list(v32);
      value0 = ECL_NIL;
      cl_env_copy->nvalues = 0;
      v29 = v32;
     }
     v30 = ECL_NIL;
     v31 = v29;
L178:;
     if (!(ecl_endp(v31))){
      goto L180;
     }
     goto L179;
L180:;
     v30 = ECL_CONS_CAR(v31);
     {
      cl_object v32;
      v32 = ECL_CONS_CDR(v31);
      if (ecl_unlikely(!ECL_LISTP(v32))) FEtype_error_list(v32);
      value0 = ECL_NIL;
      cl_env_copy->nvalues = 0;
      v31 = v32;
     }
     if (!((v30)==(VV[75]))){
      goto L189;
     }
     T0 = cl_list(2, v25_from_end, v26from_end);
     v6 = CONS(T0,v6);
L189:;
     if (!((v30)==(ECL_SYM("END",1256)))){
      goto L192;
     }
     T0 = cl_list(2, v22_end, v23end);
     v6 = CONS(T0,v6);
L192:;
     if (!((v30)==(ECL_SYM("START",1347)))){
      goto L195;
     }
     T0 = cl_list(2, v19_start, v20start);
     v6 = CONS(T0,v6);
L195:;
     if (!((v30)==(ECL_SYM("TEST-NOT",1354)))){
      goto L198;
     }
     T0 = cl_list(2, v16_test_not, v17test_not);
     v6 = CONS(T0,v6);
L198:;
     if (!((v30)==(ECL_SYM("TEST",1353)))){
      goto L201;
     }
     T0 = cl_list(2, v13_test, v14test);
     v6 = CONS(T0,v6);
L201:;
     if (!((v30)==(ECL_SYM("KEY",1297)))){
      goto L188;
     }
     T0 = cl_list(2, v10_key, v11key);
     v6 = CONS(T0,v6);
L188:;
     goto L178;
L179:;
    }
    if (v12!=ECL_NIL) {
     goto L207;
    }
    T0 = cl_list(2, v10_key, v11key);
    v6 = CONS(T0,v6);
L207:;
    if (v15!=ECL_NIL) {
     goto L210;
    }
    T0 = cl_list(2, v13_test, v14test);
    v6 = CONS(T0,v6);
L210:;
    if (v18!=ECL_NIL) {
     goto L213;
    }
    T0 = cl_list(2, v16_test_not, v17test_not);
    v6 = CONS(T0,v6);
L213:;
    if (v21!=ECL_NIL) {
     goto L216;
    }
    T0 = cl_list(2, v19_start, v20start);
    v6 = CONS(T0,v6);
L216:;
    if (v24!=ECL_NIL) {
     goto L219;
    }
    T0 = cl_list(2, v22_end, v23end);
    v6 = CONS(T0,v6);
L219:;
    if (v27!=ECL_NIL) {
     goto L222;
    }
    T0 = cl_list(2, v25_from_end, v26from_end);
    v6 = CONS(T0,v6);
L222:;
    T0 = cl_nreverse(v6);
    value0 = cl_list(3, ECL_SYM("LET",479), T0, v28);
    return value0;
   }
  }
 }
}
static cl_object LC4077__lambda413_va(cl_narg narg, cl_object v29, cl_object v30, ...)
{
 if (ecl_unlikely(narg!=2)) FEwrong_num_arguments(VV[74]);
 {
  return LC4077__lambda413(v29, v30);
 }
}
/* local function LAMBDA12                                                    */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object LC4063__lambda12(cl_object v1v1, cl_object v2v2)
{
 cl_object env0 = ECL_NIL;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object value0;
 ecl_cs_check(cl_env_copy,value0);
L1:;
 value0 = cl_list(3, ECL_SYM("EQL",336), v1v1, v2v2);
 return value0;
}
static cl_object LC4063__lambda12_va(cl_narg narg, cl_object v3v1, cl_object v4v2, ...)
{
 if (ecl_unlikely(narg!=2)) FEwrong_num_arguments(VV[6]);
 {
  return LC4063__lambda12(v3v1, v4v2);
 }
}
/* closure LAMBDA14                                                           */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object LC4064__lambda14(cl_narg narg, cl_object v1v1, cl_object v2v2, ...)
{
 cl_object T0;
 cl_object CLV0, CLV1;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object env0 = cl_env_copy->function->cclosure.env;
 cl_object value0;
 ecl_cs_check(cl_env_copy,value0);
 /* Scanning closure data ... */
 CLV1 = env0;
 CLV0 = _ecl_cdr(CLV1);                           /*  TEST                    */
 { /* ... closure scanning finished */
 if (ecl_unlikely(narg!=2)) FEwrong_num_arguments(VV[7]);
 {
L1:;
  T0 = cl_list(4, ECL_SYM("FUNCALL",396), ECL_CONS_CAR(CLV0), v1v1, v2v2);
  value0 = cl_list(2, ECL_SYM("NOT",586), T0);
  return value0;
 }
 }
}
/* closure LAMBDA16                                                           */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object LC4065__lambda16(cl_narg narg, cl_object v1v1, cl_object v2v2, ...)
{
 cl_object T0;
 cl_object CLV0, CLV1;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object env0 = cl_env_copy->function->cclosure.env;
 cl_object value0;
 ecl_cs_check(cl_env_copy,value0);
 /* Scanning closure data ... */
 CLV1 = env0;                                     /*  %TEST                   */
 CLV0 = _ecl_cdr(CLV1);
 { /* ... closure scanning finished */
 if (ecl_unlikely(narg!=2)) FEwrong_num_arguments(VV[8]);
 {
L1:;
  T0 = cl_list(4, ECL_SYM("FUNCALL",396), ECL_CONS_CAR(CLV1), v1v1, v2v2);
  value0 = cl_list(2, ECL_SYM("NOT",586), T0);
  return value0;
 }
 }
}
/* closure LAMBDA18                                                           */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object LC4066__lambda18(cl_narg narg, cl_object v1v1, cl_object v2v2, ...)
{
 cl_object CLV0, CLV1;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object env0 = cl_env_copy->function->cclosure.env;
 cl_object value0;
 ecl_cs_check(cl_env_copy,value0);
 /* Scanning closure data ... */
 CLV1 = env0;
 CLV0 = _ecl_cdr(CLV1);                           /*  TEST                    */
 { /* ... closure scanning finished */
 if (ecl_unlikely(narg!=2)) FEwrong_num_arguments(VV[9]);
 {
L1:;
  value0 = cl_list(4, ECL_SYM("FUNCALL",396), ECL_CONS_CAR(CLV0), v1v1, v2v2);
  return value0;
 }
 }
}
/* closure LAMBDA20                                                           */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object LC4067__lambda20(cl_narg narg, cl_object v1v1, cl_object v2v2, ...)
{
 cl_object CLV0, CLV1;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object env0 = cl_env_copy->function->cclosure.env;
 cl_object value0;
 ecl_cs_check(cl_env_copy,value0);
 /* Scanning closure data ... */
 CLV1 = env0;                                     /*  %TEST                   */
 CLV0 = _ecl_cdr(CLV1);
 { /* ... closure scanning finished */
 if (ecl_unlikely(narg!=2)) FEwrong_num_arguments(VV[10]);
 {
L1:;
  value0 = cl_list(4, ECL_SYM("FUNCALL",396), ECL_CONS_CAR(CLV1), v1v1, v2v2);
  return value0;
 }
 }
}
/* closure LAMBDA23                                                           */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object LC4069__lambda23(cl_narg narg, cl_object v1elt, ...)
{
 cl_object CLV0, CLV1;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object env0 = cl_env_copy->function->cclosure.env;
 cl_object value0;
 ecl_cs_check(cl_env_copy,value0);
 /* Scanning closure data ... */
 CLV1 = env0;
 CLV0 = _ecl_cdr(CLV1);                           /*  KEY                     */
 { /* ... closure scanning finished */
 if (ecl_unlikely(narg!=1)) FEwrong_num_arguments(VV[13]);
 {
L1:;
  value0 = cl_list(3, ECL_SYM("FUNCALL",396), ECL_CONS_CAR(CLV0), v1elt);
  return value0;
 }
 }
}
/* closure LAMBDA25                                                           */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object LC4070__lambda25(cl_narg narg, cl_object v1elt, ...)
{
 cl_object T0;
 cl_object CLV0, CLV1;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object env0 = cl_env_copy->function->cclosure.env;
 cl_object value0;
 ecl_cs_check(cl_env_copy,value0);
 /* Scanning closure data ... */
 CLV1 = env0;                                     /*  %KEY                    */
 CLV0 = _ecl_cdr(CLV1);
 { /* ... closure scanning finished */
 if (ecl_unlikely(narg!=1)) FEwrong_num_arguments(VV[14]);
 {
L1:;
  T0 = cl_list(3, ECL_SYM("OR",616), ECL_CONS_CAR(CLV1), VV[15]);
  value0 = cl_list(3, ECL_SYM("FUNCALL",396), T0, v1elt);
  return value0;
 }
 }
}
#include "cmp/cmpopt-sequence.data"
#ifdef __cplusplus
extern "C"
#endif

ECL_DLLEXPORT void _eclKHE50dZOlSHj9_trf0M881(cl_object flag)
{
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object value0;
 cl_object *VVtemp;
 if (flag != OBJNULL){
 Cblock = flag;
 #ifndef ECL_DYNAMIC_VV
 flag->cblock.data = VV;
 #endif
 flag->cblock.data_size = VM;
 flag->cblock.temp_data_size = VMtemp;
 flag->cblock.data_text = compiler_data_text;
 flag->cblock.cfuns_size = compiler_cfuns_size;
 flag->cblock.cfuns = compiler_cfuns;
 flag->cblock.source = ecl_make_constant_base_string("SRC:CMP;CMPOPT-SEQUENCE.LSP.NEWEST",-1);
 return;}
 #ifdef ECL_DYNAMIC_VV
 VV = Cblock->cblock.data;
 #endif
 Cblock->cblock.data_text = (const cl_object *)"@EcLtAg:_eclKHE50dZOlSHj9_trf0M881@";
 VVtemp = Cblock->cblock.temp_data;
 ECL_DEFINE_SETF_FUNCTIONS
 {
  cl_object T0;
  cl_object volatile env0 = ECL_NIL;
/* MAKE-LOAD-FORMs                                                            */
/* TOP-LEVEL-FORMs                                                            */
  si_select_package(VVtemp[0]);
  ecl_cmp_defun(VV[76]);                          /*  CONSTANT-FUNCTION-EXPRESSION */
  ecl_cmp_defun(VV[77]);                          /*  SEQ-OPT-TEST-FUNCTION   */
  ecl_cmp_defun(VV[78]);                          /*  SEQ-OPT-KEY-FUNCTION    */
  ecl_cmp_defmacro(VV[79]);                       /*  DO-IN-SEQ               */
  ecl_cmp_defmacro(VV[80]);                       /*  DO-IN-LIST              */
  ecl_cmp_defmacro(VV[81]);                       /*  DEFINE-SEQ-COMPILER-MACRO */
  {
   cl_object volatile v1;
   v1 = ecl_make_cfun_va((cl_objectfn)LC4075__lambda130_va,ECL_NIL,Cblock,2);
   T0 = v1;
  }
  si_put_sysprop(ECL_SYM("MEMBER",554), ECL_SYM("COMPILER-MACRO",240), T0);
  {
   cl_object volatile v1;
   v1 = ecl_make_cfun_va((cl_objectfn)LC4076__lambda250_va,ECL_NIL,Cblock,2);
   T0 = v1;
  }
  si_put_sysprop(ECL_SYM("ASSOC",116), ECL_SYM("COMPILER-MACRO",240), T0);
  {
   cl_object volatile v1;
   v1 = ecl_make_cfun_va((cl_objectfn)LC4077__lambda413_va,ECL_NIL,Cblock,2);
   T0 = v1;
  }
  si_put_sysprop(ECL_SYM("FIND",365), ECL_SYM("COMPILER-MACRO",240), T0);
 }
}
