/*
** Automatically generated from `query.m' by the
** Mercury compiler, version 0.5-beta.  Do not edit.
*/
/*
INIT mercury__query__init
ENDINIT
*/

#include "imp.h"

Define_extern_entry(mercury__benchmark_1_0);
Define_extern_entry(mercury__main_2_0);
Declare_label(mercury__main_2_0_i3);
Declare_label(mercury__main_2_0_i4);
Declare_label(mercury__main_2_0_i5);
Declare_label(mercury__main_2_0_i6);
Declare_label(mercury__main_2_0_i7);
Declare_label(mercury__main_2_0_i8);
Declare_label(mercury__main_2_0_i9);
Declare_label(mercury__main_2_0_i10);
Declare_label(mercury__main_2_0_i11);
Declare_label(mercury__main_2_0_i12);
Declare_label(mercury__main_2_0_i2);
Declare_label(mercury__main_2_0_i13);
Declare_local(mercury__query_1_0_l);
Declare_label(mercury__query_1_0_i1);
Declare_label(mercury__query_1_0_i2);
Declare_local(mercury__density_2_0_l);
Declare_label(mercury__density_2_0_i1);
Declare_label(mercury__density_2_0_i2);
Declare_local(mercury__pop_2_0_l);
Declare_label(mercury__pop_2_0_i4);
Declare_label(mercury__pop_2_0_i6);
Declare_label(mercury__pop_2_0_i9);
Declare_label(mercury__pop_2_0_i10);
Declare_label(mercury__pop_2_0_i11);
Declare_label(mercury__pop_2_0_i12);
Declare_label(mercury__pop_2_0_i13);
Declare_label(mercury__pop_2_0_i14);
Declare_label(mercury__pop_2_0_i15);
Declare_label(mercury__pop_2_0_i16);
Declare_label(mercury__pop_2_0_i17);
Declare_label(mercury__pop_2_0_i18);
Declare_label(mercury__pop_2_0_i19);
Declare_label(mercury__pop_2_0_i20);
Declare_label(mercury__pop_2_0_i21);
Declare_label(mercury__pop_2_0_i22);
Declare_label(mercury__pop_2_0_i23);
Declare_label(mercury__pop_2_0_i24);
Declare_label(mercury__pop_2_0_i25);
Declare_label(mercury__pop_2_0_i26);
Declare_label(mercury__pop_2_0_i27);
Declare_label(mercury__pop_2_0_i28);
Declare_label(mercury__pop_2_0_i29);
Declare_label(mercury__pop_2_0_i30);
Declare_label(mercury__pop_2_0_i31);
Declare_label(mercury__pop_2_0_i32);
Declare_label(mercury__pop_2_0_i33);
Declare_label(mercury__pop_2_0_i1);
Declare_local(mercury__pop_2_1_l);
Declare_label(mercury__pop_2_1_i2);
Declare_label(mercury__pop_2_1_i5);
Declare_label(mercury__pop_2_1_i7);
Declare_label(mercury__pop_2_1_i9);
Declare_label(mercury__pop_2_1_i11);
Declare_label(mercury__pop_2_1_i13);
Declare_label(mercury__pop_2_1_i15);
Declare_label(mercury__pop_2_1_i17);
Declare_label(mercury__pop_2_1_i19);
Declare_label(mercury__pop_2_1_i21);
Declare_label(mercury__pop_2_1_i23);
Declare_label(mercury__pop_2_1_i25);
Declare_label(mercury__pop_2_1_i27);
Declare_label(mercury__pop_2_1_i29);
Declare_label(mercury__pop_2_1_i31);
Declare_label(mercury__pop_2_1_i33);
Declare_label(mercury__pop_2_1_i35);
Declare_label(mercury__pop_2_1_i37);
Declare_label(mercury__pop_2_1_i39);
Declare_label(mercury__pop_2_1_i41);
Declare_label(mercury__pop_2_1_i43);
Declare_label(mercury__pop_2_1_i45);
Declare_label(mercury__pop_2_1_i47);
Declare_label(mercury__pop_2_1_i49);
Declare_local(mercury__area_2_0_l);
Declare_label(mercury__area_2_0_i4);
Declare_label(mercury__area_2_0_i6);
Declare_label(mercury__area_2_0_i9);
Declare_label(mercury__area_2_0_i10);
Declare_label(mercury__area_2_0_i11);
Declare_label(mercury__area_2_0_i12);
Declare_label(mercury__area_2_0_i13);
Declare_label(mercury__area_2_0_i14);
Declare_label(mercury__area_2_0_i15);
Declare_label(mercury__area_2_0_i16);
Declare_label(mercury__area_2_0_i17);
Declare_label(mercury__area_2_0_i18);
Declare_label(mercury__area_2_0_i19);
Declare_label(mercury__area_2_0_i20);
Declare_label(mercury__area_2_0_i21);
Declare_label(mercury__area_2_0_i22);
Declare_label(mercury__area_2_0_i23);
Declare_label(mercury__area_2_0_i24);
Declare_label(mercury__area_2_0_i25);
Declare_label(mercury__area_2_0_i26);
Declare_label(mercury__area_2_0_i27);
Declare_label(mercury__area_2_0_i28);
Declare_label(mercury__area_2_0_i29);
Declare_label(mercury__area_2_0_i30);
Declare_label(mercury__area_2_0_i31);
Declare_label(mercury__area_2_0_i32);
Declare_label(mercury__area_2_0_i33);
Declare_label(mercury__area_2_0_i1);
Declare_local(mercury__area_2_1_l);
Declare_label(mercury__area_2_1_i2);
Declare_label(mercury__area_2_1_i5);
Declare_label(mercury__area_2_1_i7);
Declare_label(mercury__area_2_1_i9);
Declare_label(mercury__area_2_1_i11);
Declare_label(mercury__area_2_1_i13);
Declare_label(mercury__area_2_1_i15);
Declare_label(mercury__area_2_1_i17);
Declare_label(mercury__area_2_1_i19);
Declare_label(mercury__area_2_1_i21);
Declare_label(mercury__area_2_1_i23);
Declare_label(mercury__area_2_1_i25);
Declare_label(mercury__area_2_1_i27);
Declare_label(mercury__area_2_1_i29);
Declare_label(mercury__area_2_1_i31);
Declare_label(mercury__area_2_1_i33);
Declare_label(mercury__area_2_1_i35);
Declare_label(mercury__area_2_1_i37);
Declare_label(mercury__area_2_1_i39);
Declare_label(mercury__area_2_1_i41);
Declare_label(mercury__area_2_1_i43);
Declare_label(mercury__area_2_1_i45);
Declare_label(mercury__area_2_1_i47);
Declare_label(mercury__area_2_1_i49);
Define_extern_entry(mercury____Unify___quad_0_0);
Declare_label(mercury____Unify___quad_0_0_i1);
Define_extern_entry(mercury____Index___quad_0_0);
Define_extern_entry(mercury____Compare___quad_0_0);
Declare_label(mercury____Compare___quad_0_0_i5);
Declare_label(mercury____Compare___quad_0_0_i9);
Declare_label(mercury____Compare___quad_0_0_i12);
Declare_label(mercury____Compare___quad_0_0_i16);
Declare_label(mercury____Compare___quad_0_0_i19);
Declare_label(mercury____Compare___quad_0_0_i23);

BEGIN_MODULE(mercury__query_module)
	init_entry(mercury__benchmark_1_0);
	init_entry(mercury__main_2_0);
	init_label(mercury__main_2_0_i3);
	init_label(mercury__main_2_0_i4);
	init_label(mercury__main_2_0_i5);
	init_label(mercury__main_2_0_i6);
	init_label(mercury__main_2_0_i7);
	init_label(mercury__main_2_0_i8);
	init_label(mercury__main_2_0_i9);
	init_label(mercury__main_2_0_i10);
	init_label(mercury__main_2_0_i11);
	init_label(mercury__main_2_0_i12);
	init_label(mercury__main_2_0_i2);
	init_label(mercury__main_2_0_i13);
	init_local(mercury__query_1_0_l);
	init_label(mercury__query_1_0_i1);
	init_label(mercury__query_1_0_i2);
	init_local(mercury__density_2_0_l);
	init_label(mercury__density_2_0_i1);
	init_label(mercury__density_2_0_i2);
	init_local(mercury__pop_2_0_l);
	init_label(mercury__pop_2_0_i4);
	init_label(mercury__pop_2_0_i6);
	init_label(mercury__pop_2_0_i9);
	init_label(mercury__pop_2_0_i10);
	init_label(mercury__pop_2_0_i11);
	init_label(mercury__pop_2_0_i12);
	init_label(mercury__pop_2_0_i13);
	init_label(mercury__pop_2_0_i14);
	init_label(mercury__pop_2_0_i15);
	init_label(mercury__pop_2_0_i16);
	init_label(mercury__pop_2_0_i17);
	init_label(mercury__pop_2_0_i18);
	init_label(mercury__pop_2_0_i19);
	init_label(mercury__pop_2_0_i20);
	init_label(mercury__pop_2_0_i21);
	init_label(mercury__pop_2_0_i22);
	init_label(mercury__pop_2_0_i23);
	init_label(mercury__pop_2_0_i24);
	init_label(mercury__pop_2_0_i25);
	init_label(mercury__pop_2_0_i26);
	init_label(mercury__pop_2_0_i27);
	init_label(mercury__pop_2_0_i28);
	init_label(mercury__pop_2_0_i29);
	init_label(mercury__pop_2_0_i30);
	init_label(mercury__pop_2_0_i31);
	init_label(mercury__pop_2_0_i32);
	init_label(mercury__pop_2_0_i33);
	init_label(mercury__pop_2_0_i1);
	init_local(mercury__pop_2_1_l);
	init_label(mercury__pop_2_1_i2);
	init_label(mercury__pop_2_1_i5);
	init_label(mercury__pop_2_1_i7);
	init_label(mercury__pop_2_1_i9);
	init_label(mercury__pop_2_1_i11);
	init_label(mercury__pop_2_1_i13);
	init_label(mercury__pop_2_1_i15);
	init_label(mercury__pop_2_1_i17);
	init_label(mercury__pop_2_1_i19);
	init_label(mercury__pop_2_1_i21);
	init_label(mercury__pop_2_1_i23);
	init_label(mercury__pop_2_1_i25);
	init_label(mercury__pop_2_1_i27);
	init_label(mercury__pop_2_1_i29);
	init_label(mercury__pop_2_1_i31);
	init_label(mercury__pop_2_1_i33);
	init_label(mercury__pop_2_1_i35);
	init_label(mercury__pop_2_1_i37);
	init_label(mercury__pop_2_1_i39);
	init_label(mercury__pop_2_1_i41);
	init_label(mercury__pop_2_1_i43);
	init_label(mercury__pop_2_1_i45);
	init_label(mercury__pop_2_1_i47);
	init_label(mercury__pop_2_1_i49);
	init_local(mercury__area_2_0_l);
	init_label(mercury__area_2_0_i4);
	init_label(mercury__area_2_0_i6);
	init_label(mercury__area_2_0_i9);
	init_label(mercury__area_2_0_i10);
	init_label(mercury__area_2_0_i11);
	init_label(mercury__area_2_0_i12);
	init_label(mercury__area_2_0_i13);
	init_label(mercury__area_2_0_i14);
	init_label(mercury__area_2_0_i15);
	init_label(mercury__area_2_0_i16);
	init_label(mercury__area_2_0_i17);
	init_label(mercury__area_2_0_i18);
	init_label(mercury__area_2_0_i19);
	init_label(mercury__area_2_0_i20);
	init_label(mercury__area_2_0_i21);
	init_label(mercury__area_2_0_i22);
	init_label(mercury__area_2_0_i23);
	init_label(mercury__area_2_0_i24);
	init_label(mercury__area_2_0_i25);
	init_label(mercury__area_2_0_i26);
	init_label(mercury__area_2_0_i27);
	init_label(mercury__area_2_0_i28);
	init_label(mercury__area_2_0_i29);
	init_label(mercury__area_2_0_i30);
	init_label(mercury__area_2_0_i31);
	init_label(mercury__area_2_0_i32);
	init_label(mercury__area_2_0_i33);
	init_label(mercury__area_2_0_i1);
	init_local(mercury__area_2_1_l);
	init_label(mercury__area_2_1_i2);
	init_label(mercury__area_2_1_i5);
	init_label(mercury__area_2_1_i7);
	init_label(mercury__area_2_1_i9);
	init_label(mercury__area_2_1_i11);
	init_label(mercury__area_2_1_i13);
	init_label(mercury__area_2_1_i15);
	init_label(mercury__area_2_1_i17);
	init_label(mercury__area_2_1_i19);
	init_label(mercury__area_2_1_i21);
	init_label(mercury__area_2_1_i23);
	init_label(mercury__area_2_1_i25);
	init_label(mercury__area_2_1_i27);
	init_label(mercury__area_2_1_i29);
	init_label(mercury__area_2_1_i31);
	init_label(mercury__area_2_1_i33);
	init_label(mercury__area_2_1_i35);
	init_label(mercury__area_2_1_i37);
	init_label(mercury__area_2_1_i39);
	init_label(mercury__area_2_1_i41);
	init_label(mercury__area_2_1_i43);
	init_label(mercury__area_2_1_i45);
	init_label(mercury__area_2_1_i47);
	init_label(mercury__area_2_1_i49);
	init_entry(mercury____Unify___quad_0_0);
	init_label(mercury____Unify___quad_0_0_i1);
	init_entry(mercury____Index___quad_0_0);
	init_entry(mercury____Compare___quad_0_0);
	init_label(mercury____Compare___quad_0_0_i5);
	init_label(mercury____Compare___quad_0_0_i9);
	init_label(mercury____Compare___quad_0_0_i12);
	init_label(mercury____Compare___quad_0_0_i16);
	init_label(mercury____Compare___quad_0_0_i19);
	init_label(mercury____Compare___quad_0_0_i23);
BEGIN_CODE


/*-------------------------------------------------------------------------*/
/* code for predicate benchmark/1 in mode 0 */
/* Start of procedure prologue */
/* 
Stack slot assignments (if any):
 */
Define_entry(mercury__benchmark_1_0);
		/* Procedure entry point */
	{ mkframe("benchmark/1", 1, ENTRY(do_fail)); }
		/* Nondet stackframe */
/* End of procedure prologue */
	{ LVALUE_CAST(Word,maxfr) = (Integer) bt_prevfr((Integer) curfr); }
		/* discard this frame */
	{ LVALUE_CAST(Word,succip) = (Integer) bt_succip((Integer) curfr); }
		/* setup PC on return from tailcall */
	{ LVALUE_CAST(Word,curfr) = (Integer) bt_succfr((Integer) curfr); }
		/* setup curfr on return from tailcall */
/*
 * Live lvalues:
 */
	{ localtailcall(mercury__query_1_0_l,
		LABEL(mercury__benchmark_1_0)); }
		/* branch to nondet procedure (redirected return) */

/*-------------------------------------------------------------------------*/
/* code for predicate main/2 in mode 0 */
/* Start of procedure prologue */
/* 
Stack slot assignments (if any):
DCG_0	 ->	framevar(0)
C1	 ->	framevar(1)
C2	 ->	framevar(2)
D1	 ->	framevar(3)
D2	 ->	framevar(4)
 */
Define_entry(mercury__main_2_0);
		/* Procedure entry point */
	{ mkframe("main/2", 7, LABEL(mercury__main_2_0_i2)); }
		/* Nondet stackframe */
	{ framevar(5) = (Integer) maxfr; }
		/* Save maxfr */
	{ mark_hp(framevar(6)); }
		/* Save heap pointer */
	{ framevar(0) = (Integer) r1; }
		/* Assigning from DCG_0 */
/*
 * Live lvalues:
 *	framevar(0)
 *	framevar(5)
 *	framevar(6)
 */
	{ localcall(mercury__benchmark_1_0,
		LABEL(mercury__main_2_0_i3),
		LABEL(mercury__main_2_0)); }
/*
 * Garbage collection livevals info
 *	r1	num(7)
 *	framevar(6)	hp
 *	framevar(5)	maxfr
 *	framevar(0)	num(8)
 */
		/* branch to nondet procedure */
Define_label(mercury__main_2_0_i3);
	update_prof_current_proc(LABEL(mercury__main_2_0));
	{ framevar(1) = (Integer) field(mktag(0), (Integer) r1, 0); }
		/* vn flush */
	{ framevar(2) = (Integer) field(mktag(0), (Integer) r1, 2); }
		/* vn flush */
	{ framevar(3) = (Integer) field(mktag(0), (Integer) r1, 1); }
		/* vn flush */
	{ framevar(4) = (Integer) field(mktag(0), (Integer) r1, 3); }
		/* vn flush */
	{ r1 = string_const("quad(\"", 6); }
		/* vn flush */
	{ r2 = (Integer) framevar(0); }
		/* vn flush */
	{ LVALUE_CAST(Word,bt_redoip((Integer) framevar(5))) = (Integer) ENTRY(do_fail); }
		/* vn flush */
/*
 * Live lvalues:
 *	r1
 *	r2
 *	framevar(0)
 *	framevar(1)
 *	framevar(2)
 *	framevar(3)
 *	framevar(4)
 *	framevar(5)
 */
	{ Declare_entry(mercury__io__write_string_3_0);
	  call(ENTRY(mercury__io__write_string_3_0),
		LABEL(mercury__main_2_0_i4),
		LABEL(mercury__main_2_0)); }
/*
 * Garbage collection livevals info
 *	r3	num(8)
 *	framevar(5)	maxfr
 *	framevar(0)	num(8)
 *	framevar(1)	num(0)
 *	framevar(2)	num(0)
 *	framevar(3)	num(2)
 *	framevar(4)	num(2)
 */
Define_label(mercury__main_2_0_i4);
	update_prof_current_proc(LABEL(mercury__main_2_0));
		/* Continuation label */
	{ r1 = (Integer) framevar(1); }
		/* Assigning from C1 */
	{ r2 = (Integer) r3; }
		/* Assigning from DCG_1 */
/*
 * Live lvalues:
 *	r1
 *	r2
 *	framevar(0)
 *	framevar(2)
 *	framevar(3)
 *	framevar(4)
 *	framevar(5)
 */
	{ Declare_entry(mercury__io__write_string_3_0);
	  call(ENTRY(mercury__io__write_string_3_0),
		LABEL(mercury__main_2_0_i5),
		LABEL(mercury__main_2_0)); }
/*
 * Garbage collection livevals info
 *	r3	num(8)
 *	framevar(5)	maxfr
 *	framevar(0)	num(8)
 *	framevar(2)	num(0)
 *	framevar(3)	num(2)
 *	framevar(4)	num(2)
 */
		/* branch to det procedure */
Define_label(mercury__main_2_0_i5);
	update_prof_current_proc(LABEL(mercury__main_2_0));
		/* Continuation label */
	{ r1 = string_const("\", ", 3); }
		/* Assigning from variable number 22 */
	{ r2 = (Integer) r3; }
		/* Assigning from DCG_2 */
/*
 * Live lvalues:
 *	r1
 *	r2
 *	framevar(0)
 *	framevar(2)
 *	framevar(3)
 *	framevar(4)
 *	framevar(5)
 */
	{ Declare_entry(mercury__io__write_string_3_0);
	  call(ENTRY(mercury__io__write_string_3_0),
		LABEL(mercury__main_2_0_i6),
		LABEL(mercury__main_2_0)); }
/*
 * Garbage collection livevals info
 *	r3	num(8)
 *	framevar(5)	maxfr
 *	framevar(0)	num(8)
 *	framevar(2)	num(0)
 *	framevar(3)	num(2)
 *	framevar(4)	num(2)
 */
		/* branch to det procedure */
Define_label(mercury__main_2_0_i6);
	update_prof_current_proc(LABEL(mercury__main_2_0));
		/* Continuation label */
	{ r1 = (Integer) framevar(3); }
		/* Assigning from D1 */
	{ r2 = (Integer) r3; }
		/* Assigning from DCG_3 */
/*
 * Live lvalues:
 *	r1
 *	r2
 *	framevar(0)
 *	framevar(2)
 *	framevar(4)
 *	framevar(5)
 */
	{ Declare_entry(mercury__io__write_int_3_0);
	  call(ENTRY(mercury__io__write_int_3_0),
		LABEL(mercury__main_2_0_i7),
		LABEL(mercury__main_2_0)); }
/*
 * Garbage collection livevals info
 *	r3	num(8)
 *	framevar(5)	maxfr
 *	framevar(0)	num(8)
 *	framevar(2)	num(0)
 *	framevar(4)	num(2)
 */
		/* branch to det procedure */
Define_label(mercury__main_2_0_i7);
	update_prof_current_proc(LABEL(mercury__main_2_0));
		/* Continuation label */
	{ r1 = string_const(", \"", 3); }
		/* Assigning from variable number 21 */
	{ r2 = (Integer) r3; }
		/* Assigning from DCG_4 */
/*
 * Live lvalues:
 *	r1
 *	r2
 *	framevar(0)
 *	framevar(2)
 *	framevar(4)
 *	framevar(5)
 */
	{ Declare_entry(mercury__io__write_string_3_0);
	  call(ENTRY(mercury__io__write_string_3_0),
		LABEL(mercury__main_2_0_i8),
		LABEL(mercury__main_2_0)); }
/*
 * Garbage collection livevals info
 *	r3	num(8)
 *	framevar(5)	maxfr
 *	framevar(0)	num(8)
 *	framevar(2)	num(0)
 *	framevar(4)	num(2)
 */
		/* branch to det procedure */
Define_label(mercury__main_2_0_i8);
	update_prof_current_proc(LABEL(mercury__main_2_0));
		/* Continuation label */
	{ r1 = (Integer) framevar(2); }
		/* Assigning from C2 */
	{ r2 = (Integer) r3; }
		/* Assigning from DCG_5 */
/*
 * Live lvalues:
 *	r1
 *	r2
 *	framevar(0)
 *	framevar(4)
 *	framevar(5)
 */
	{ Declare_entry(mercury__io__write_string_3_0);
	  call(ENTRY(mercury__io__write_string_3_0),
		LABEL(mercury__main_2_0_i9),
		LABEL(mercury__main_2_0)); }
/*
 * Garbage collection livevals info
 *	r3	num(8)
 *	framevar(5)	maxfr
 *	framevar(0)	num(8)
 *	framevar(4)	num(2)
 */
		/* branch to det procedure */
Define_label(mercury__main_2_0_i9);
	update_prof_current_proc(LABEL(mercury__main_2_0));
		/* Continuation label */
	{ r1 = string_const("\", ", 3); }
		/* Assigning from variable number 20 */
	{ r2 = (Integer) r3; }
		/* Assigning from DCG_6 */
/*
 * Live lvalues:
 *	r1
 *	r2
 *	framevar(0)
 *	framevar(4)
 *	framevar(5)
 */
	{ Declare_entry(mercury__io__write_string_3_0);
	  call(ENTRY(mercury__io__write_string_3_0),
		LABEL(mercury__main_2_0_i10),
		LABEL(mercury__main_2_0)); }
/*
 * Garbage collection livevals info
 *	r3	num(8)
 *	framevar(5)	maxfr
 *	framevar(0)	num(8)
 *	framevar(4)	num(2)
 */
		/* branch to det procedure */
Define_label(mercury__main_2_0_i10);
	update_prof_current_proc(LABEL(mercury__main_2_0));
		/* Continuation label */
	{ r1 = (Integer) framevar(4); }
		/* Assigning from D2 */
	{ r2 = (Integer) r3; }
		/* Assigning from DCG_7 */
/*
 * Live lvalues:
 *	r1
 *	r2
 *	framevar(0)
 *	framevar(5)
 */
	{ Declare_entry(mercury__io__write_int_3_0);
	  call(ENTRY(mercury__io__write_int_3_0),
		LABEL(mercury__main_2_0_i11),
		LABEL(mercury__main_2_0)); }
/*
 * Garbage collection livevals info
 *	r3	num(8)
 *	framevar(5)	maxfr
 *	framevar(0)	num(8)
 */
		/* branch to det procedure */
Define_label(mercury__main_2_0_i11);
	update_prof_current_proc(LABEL(mercury__main_2_0));
		/* Continuation label */
	{ r1 = string_const(")\n", 2); }
		/* Assigning from variable number 19 */
	{ r2 = (Integer) r3; }
		/* Assigning from DCG_8 */
/*
 * Live lvalues:
 *	r1
 *	r2
 *	framevar(0)
 *	framevar(5)
 */
	{ Declare_entry(mercury__io__write_string_3_0);
	  call(ENTRY(mercury__io__write_string_3_0),
		LABEL(mercury__main_2_0_i12),
		LABEL(mercury__main_2_0)); }
/*
 * Garbage collection livevals info
 *	r3	num(8)
 *	framevar(5)	maxfr
 *	framevar(0)	num(8)
 */
		/* branch to det procedure */
Define_label(mercury__main_2_0_i12);
	update_prof_current_proc(LABEL(mercury__main_2_0));
	{ r2 = (Integer) r3; }
		/* vn flush */
/*
 * Live lvalues:
 *	r2
 */
	{ succeed(); }
Define_label(mercury__main_2_0_i2);
	update_prof_current_proc(LABEL(mercury__main_2_0));
	{ restore_hp((Integer) framevar(6)); }
	{ r1 = string_const("no solution\n", 12); }
		/* vn flush */
	{ r2 = (Integer) framevar(0); }
		/* vn flush */
	{ LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) ENTRY(do_fail); }
		/* vn flush */
/*
 * Live lvalues:
 *	r1
 *	r2
 *	framevar(5)
 */
	{ Declare_entry(mercury__io__write_string_3_0);
	  call(ENTRY(mercury__io__write_string_3_0),
		LABEL(mercury__main_2_0_i13),
		LABEL(mercury__main_2_0)); }
/*
 * Garbage collection livevals info
 *	r3	num(8)
 *	framevar(5)	maxfr
 */
Define_label(mercury__main_2_0_i13);
	update_prof_current_proc(LABEL(mercury__main_2_0));
		/* Continuation label */
	{ r2 = (Integer) r3; }
		/* Assigning from HeadVar__2 */
/* Start of procedure epilogue */
/*
 * Live lvalues:
 *	r2
 */
	{ succeed(); }
		/* Succeed */

/*-------------------------------------------------------------------------*/
/* code for predicate query/1 in mode 0 */
/* Start of procedure prologue */
/* 
Stack slot assignments (if any):
C1	 ->	framevar(0)
D1	 ->	framevar(1)
 */
Define_local(mercury__query_1_0_l);
		/* Procedure entry point */
	{ mkframe("query/1", 2, ENTRY(do_fail)); }
		/* Nondet stackframe */
/* End of procedure prologue */
/*
 * Live lvalues:
 */
	{ localcall(mercury__density_2_0_l,
		LABEL(mercury__query_1_0_i1),
		LABEL(mercury__query_1_0_l)); }
/*
 * Garbage collection livevals info
 *	r2	num(2)
 *	r1	num(0)
 */
		/* branch to nondet procedure */
Define_label(mercury__query_1_0_i1);
	update_prof_current_proc(LABEL(mercury__query_1_0_l));
		/* Continuation label */
	{ framevar(0) = (Integer) r1; }
		/* Assigning from C1 */
	{ framevar(1) = (Integer) r2; }
		/* Assigning from D1 */
/*
 * Live lvalues:
 *	framevar(0)
 *	framevar(1)
 */
	{ localcall(mercury__density_2_0_l,
		LABEL(mercury__query_1_0_i2),
		LABEL(mercury__query_1_0_l)); }
/*
 * Garbage collection livevals info
 *	r2	num(2)
 *	r1	num(0)
 *	framevar(0)	num(0)
 *	framevar(1)	num(2)
 */
		/* branch to nondet procedure */
Define_label(mercury__query_1_0_i2);
	update_prof_current_proc(LABEL(mercury__query_1_0_l));
		/* Continuation label */
	{ if (((Integer) framevar(1) <= (Integer) r2))
		redo(); }
		/* Test for failure */
	{ r3 = (20 * (Integer) framevar(1)); }
		/* Assigning from T1 */
	{ r4 = (21 * (Integer) r2); }
		/* Assigning from T2 */
	{ if (((Integer) r3 >= (Integer) r4))
		redo(); }
		/* Test for failure */
/* Start of procedure epilogue */
	{ r3 = (Integer) r1; }
		/* shuffle lval */
	{ tag_incr_hp(r1, mktag(0), 4); }
		/* Allocating heap for HeadVar__1 */
	{ field(mktag(0), (Integer) r1, 0) = (Integer) framevar(0); }
		/* Assigning from  */
	{ field(mktag(0), (Integer) r1, 1) = (Integer) framevar(1); }
		/* Assigning from  */
	{ field(mktag(0), (Integer) r1, 2) = (Integer) r3; }
		/* Assigning from  */
	{ field(mktag(0), (Integer) r1, 3) = (Integer) r2; }
		/* Assigning from  */
/*
 * Live lvalues:
 *	r1
 */
	{ succeed(); }
		/* Succeed */

/*-------------------------------------------------------------------------*/
/* code for predicate density/2 in mode 0 */
/* Start of procedure prologue */
/* 
Stack slot assignments (if any):
HeadVar__1	 ->	framevar(0)
P	 ->	framevar(1)
 */
Define_local(mercury__density_2_0_l);
		/* Procedure entry point */
	{ mkframe("density/2", 2, ENTRY(do_fail)); }
		/* Nondet stackframe */
/* End of procedure prologue */
/*
 * Live lvalues:
 */
	{ localcall(mercury__pop_2_1_l,
		LABEL(mercury__density_2_0_i1),
		LABEL(mercury__density_2_0_l)); }
/*
 * Garbage collection livevals info
 *	r2	num(2)
 *	r1	num(0)
 */
		/* branch to nondet procedure */
Define_label(mercury__density_2_0_i1);
	update_prof_current_proc(LABEL(mercury__density_2_0_l));
	{ framevar(1) = (Integer) r2; }
		/* vn flush */
	{ r2 = (Integer) r1; }
		/* vn flush */
	{ framevar(0) = (Integer) r1; }
		/* vn flush */
/*
 * Live lvalues:
 *	r2
 *	framevar(0)
 *	framevar(1)
 */
	{ localcall(mercury__area_2_0_l,
		LABEL(mercury__density_2_0_i2),
		LABEL(mercury__density_2_0_l)); }
/*
 * Garbage collection livevals info
 *	r3	num(2)
 *	framevar(0)	num(0)
 *	framevar(1)	num(2)
 */
Define_label(mercury__density_2_0_i2);
	update_prof_current_proc(LABEL(mercury__density_2_0_l));
		/* Continuation label */
	{ if (!((Integer) r1))
		redo(); }
		/* fail */
/* Start of procedure epilogue */
	{ r1 = (Integer) framevar(0); }
		/* Assigning from HeadVar__1 */
	{ r2 = (((Integer) framevar(1) * 100) / (Integer) r3); }
		/* Assigning from HeadVar__2 */
/*
 * Live lvalues:
 *	r1
 *	r2
 */
	{ succeed(); }
		/* Succeed */

/*-------------------------------------------------------------------------*/
/* code for predicate pop/2 in mode 0 */
/* Start of procedure prologue */
/* 
Stack slot assignments (if any):
 */
Define_local(mercury__pop_2_0_l);
		/* Procedure entry point */
/* End of procedure prologue */
/* hashed string switch */
	{ r1 = (hash_string((Integer) r2) & 63); }
		/* compute the hash value of the input string */
Define_label(mercury__pop_2_0_i4);
		/* begin hash chain loop */
	while (1) {
	{ static const Word mercury_const_8[] = {
		string_const("spain", 5),
		string_const("argentina", 9),
		0,
		string_const("ussr", 4),
		string_const("usa", 3),
		0,
		0,
		0,
		string_const("brazil", 6),
		0,
		0,
		0,
		0,
		0,
		string_const("india", 5),
		0,
		string_const("iran", 4),
		0,
		0,
		string_const("mexico", 6),
		0,
		string_const("indonesia", 9),
		0,
		0,
		string_const("nigeria", 7),
		0,
		string_const("egypt", 5),
		string_const("france", 6),
		0,
		0,
		string_const("poland", 6),
		0,
		0,
		0,
		string_const("turkey", 6),
		0,
		0,
		0,
		0,
		0,
		string_const("china", 5),
		0,
		string_const("w_germany", 9),
		0,
		string_const("italy", 5),
		0,
		string_const("philippines", 11),
		string_const("ethiopia", 8),
		0,
		string_const("japan", 5),
		0,
		string_const("pakistan", 8),
		0,
		0,
		0,
		string_const("bangladesh", 10),
		0,
		string_const("s_korea", 7),
		0,
		string_const("thailand", 8),
		string_const("uk", 2),
		0,
		0,
		0
	  };
	  r3 = ((Word *)mkword(mktag(0), mercury_const_8))[(Integer) r1]; }
		/* lookup the string for this hash slot */
	{ if (((Integer) r3 && (strcmp((char *)(Integer) r3, (char *)(Integer) r2) ==0)))
		GOTO_LABEL(mercury__pop_2_0_i6); }
		/* did we find a match? */
	{ static const Word mercury_const_7[] = {
		-1,
		-1,
		-2,
		-1,
		1,
		-2,
		-2,
		-2,
		-1,
		-2,
		-2,
		-2,
		-2,
		-2,
		-1,
		-2,
		-1,
		-2,
		-2,
		-1,
		-2,
		-1,
		-2,
		-2,
		-1,
		-2,
		-1,
		-1,
		-2,
		-2,
		-1,
		-2,
		-2,
		-2,
		-1,
		-2,
		-2,
		-2,
		-2,
		-2,
		-1,
		-2,
		-1,
		-2,
		-1,
		-2,
		-1,
		-1,
		-2,
		-1,
		-2,
		-1,
		-2,
		-2,
		-2,
		-1,
		-2,
		-1,
		-2,
		-1,
		-1,
		-2,
		-2,
		-2
	  };
	  r1 = ((Word *)mkword(mktag(0), mercury_const_7))[(Integer) r1]; }
		/* not yet, so get next slot in hash chain */
	{ if (((Integer) r1 >= 0))
		continue; }
		/* keep searching until we reach the end of the chain */
/* no succip restoration */
/* no sp restoration */
	{ r1 = FALSE; }
		/* Fail */
/*
 * Live lvalues:
 *	r1
 */
	{ proceed(); }
		/* shortcircuit */
	break; } /* end while */
Define_label(mercury__pop_2_0_i6);
		/* we found a match */
	{ COMPUTED_GOTO((Integer) r1,
		LABEL(mercury__pop_2_0_i9) AND
		LABEL(mercury__pop_2_0_i10) AND
		LABEL(mercury__pop_2_0_i1) AND
		LABEL(mercury__pop_2_0_i11) AND
		LABEL(mercury__pop_2_0_i12) AND
		LABEL(mercury__pop_2_0_i1) AND
		LABEL(mercury__pop_2_0_i1) AND
		LABEL(mercury__pop_2_0_i1) AND
		LABEL(mercury__pop_2_0_i13) AND
		LABEL(mercury__pop_2_0_i1) AND
		LABEL(mercury__pop_2_0_i1) AND
		LABEL(mercury__pop_2_0_i1) AND
		LABEL(mercury__pop_2_0_i1) AND
		LABEL(mercury__pop_2_0_i1) AND
		LABEL(mercury__pop_2_0_i14) AND
		LABEL(mercury__pop_2_0_i1) AND
		LABEL(mercury__pop_2_0_i15) AND
		LABEL(mercury__pop_2_0_i1) AND
		LABEL(mercury__pop_2_0_i1) AND
		LABEL(mercury__pop_2_0_i16) AND
		LABEL(mercury__pop_2_0_i1) AND
		LABEL(mercury__pop_2_0_i17) AND
		LABEL(mercury__pop_2_0_i1) AND
		LABEL(mercury__pop_2_0_i1) AND
		LABEL(mercury__pop_2_0_i18) AND
		LABEL(mercury__pop_2_0_i1) AND
		LABEL(mercury__pop_2_0_i19) AND
		LABEL(mercury__pop_2_0_i20) AND
		LABEL(mercury__pop_2_0_i1) AND
		LABEL(mercury__pop_2_0_i1) AND
		LABEL(mercury__pop_2_0_i21) AND
		LABEL(mercury__pop_2_0_i1) AND
		LABEL(mercury__pop_2_0_i1) AND
		LABEL(mercury__pop_2_0_i1) AND
		LABEL(mercury__pop_2_0_i22) AND
		LABEL(mercury__pop_2_0_i1) AND
		LABEL(mercury__pop_2_0_i1) AND
		LABEL(mercury__pop_2_0_i1) AND
		LABEL(mercury__pop_2_0_i1) AND
		LABEL(mercury__pop_2_0_i1) AND
		LABEL(mercury__pop_2_0_i23) AND
		LABEL(mercury__pop_2_0_i1) AND
		LABEL(mercury__pop_2_0_i24) AND
		LABEL(mercury__pop_2_0_i1) AND
		LABEL(mercury__pop_2_0_i25) AND
		LABEL(mercury__pop_2_0_i1) AND
		LABEL(mercury__pop_2_0_i26) AND
		LABEL(mercury__pop_2_0_i27) AND
		LABEL(mercury__pop_2_0_i1) AND
		LABEL(mercury__pop_2_0_i28) AND
		LABEL(mercury__pop_2_0_i1) AND
		LABEL(mercury__pop_2_0_i29) AND
		LABEL(mercury__pop_2_0_i1) AND
		LABEL(mercury__pop_2_0_i1) AND
		LABEL(mercury__pop_2_0_i1) AND
		LABEL(mercury__pop_2_0_i30) AND
		LABEL(mercury__pop_2_0_i1) AND
		LABEL(mercury__pop_2_0_i31) AND
		LABEL(mercury__pop_2_0_i1) AND
		LABEL(mercury__pop_2_0_i32) AND
		LABEL(mercury__pop_2_0_i33) AND
		LABEL(mercury__pop_2_0_i1) AND
		LABEL(mercury__pop_2_0_i1) AND
		LABEL(mercury__pop_2_0_i1)); }
		/* jump to the corresponding code (some shortcircuits) */
Define_label(mercury__pop_2_0_i9);
		/* case "spain" */
	{ r3 = 352; }
		/* Assigning from HeadVar__2 */
/* no succip restoration */
/* no sp restoration */
	{ r1 = TRUE; }
		/* Succeed */
/*
 * Live lvalues:
 *	r1
 *	r3
 */
	{ proceed(); }
		/* shortcircuit */
Define_label(mercury__pop_2_0_i10);
		/* case "argentina" */
	{ r3 = 251; }
		/* Assigning from HeadVar__2 */
/* no succip restoration */
/* no sp restoration */
	{ r1 = TRUE; }
		/* Succeed */
/*
 * Live lvalues:
 *	r1
 *	r3
 */
	{ proceed(); }
		/* shortcircuit */
Define_label(mercury__pop_2_0_i11);
		/* case "ussr" */
	{ r3 = 2521; }
		/* Assigning from HeadVar__2 */
/* no succip restoration */
/* no sp restoration */
	{ r1 = TRUE; }
		/* Succeed */
/*
 * Live lvalues:
 *	r1
 *	r3
 */
	{ proceed(); }
		/* shortcircuit */
Define_label(mercury__pop_2_0_i12);
		/* case "usa" */
	{ r3 = 2119; }
		/* Assigning from HeadVar__2 */
/* no succip restoration */
/* no sp restoration */
	{ r1 = TRUE; }
		/* Succeed */
/*
 * Live lvalues:
 *	r1
 *	r3
 */
	{ proceed(); }
		/* shortcircuit */
Define_label(mercury__pop_2_0_i13);
		/* case "brazil" */
	{ r3 = 1042; }
		/* Assigning from HeadVar__2 */
/* no succip restoration */
/* no sp restoration */
	{ r1 = TRUE; }
		/* Succeed */
/*
 * Live lvalues:
 *	r1
 *	r3
 */
	{ proceed(); }
		/* shortcircuit */
Define_label(mercury__pop_2_0_i14);
		/* case "india" */
	{ r3 = 5863; }
		/* Assigning from HeadVar__2 */
/* no succip restoration */
/* no sp restoration */
	{ r1 = TRUE; }
		/* Succeed */
/*
 * Live lvalues:
 *	r1
 *	r3
 */
	{ proceed(); }
		/* shortcircuit */
Define_label(mercury__pop_2_0_i15);
		/* case "iran" */
	{ r3 = 320; }
		/* Assigning from HeadVar__2 */
/* no succip restoration */
/* no sp restoration */
	{ r1 = TRUE; }
		/* Succeed */
/*
 * Live lvalues:
 *	r1
 *	r3
 */
	{ proceed(); }
		/* shortcircuit */
Define_label(mercury__pop_2_0_i16);
		/* case "mexico" */
	{ r3 = 581; }
		/* Assigning from HeadVar__2 */
/* no succip restoration */
/* no sp restoration */
	{ r1 = TRUE; }
		/* Succeed */
/*
 * Live lvalues:
 *	r1
 *	r3
 */
	{ proceed(); }
		/* shortcircuit */
Define_label(mercury__pop_2_0_i17);
		/* case "indonesia" */
	{ r3 = 1276; }
		/* Assigning from HeadVar__2 */
/* no succip restoration */
/* no sp restoration */
	{ r1 = TRUE; }
		/* Succeed */
/*
 * Live lvalues:
 *	r1
 *	r3
 */
	{ proceed(); }
		/* shortcircuit */
Define_label(mercury__pop_2_0_i18);
		/* case "nigeria" */
	{ r3 = 613; }
		/* Assigning from HeadVar__2 */
/* no succip restoration */
/* no sp restoration */
	{ r1 = TRUE; }
		/* Succeed */
/*
 * Live lvalues:
 *	r1
 *	r3
 */
	{ proceed(); }
		/* shortcircuit */
Define_label(mercury__pop_2_0_i19);
		/* case "egypt" */
	{ r3 = 364; }
		/* Assigning from HeadVar__2 */
/* no succip restoration */
/* no sp restoration */
	{ r1 = TRUE; }
		/* Succeed */
/*
 * Live lvalues:
 *	r1
 *	r3
 */
	{ proceed(); }
		/* shortcircuit */
Define_label(mercury__pop_2_0_i20);
		/* case "france" */
	{ r3 = 525; }
		/* Assigning from HeadVar__2 */
/* no succip restoration */
/* no sp restoration */
	{ r1 = TRUE; }
		/* Succeed */
/*
 * Live lvalues:
 *	r1
 *	r3
 */
	{ proceed(); }
		/* shortcircuit */
Define_label(mercury__pop_2_0_i21);
		/* case "poland" */
	{ r3 = 337; }
		/* Assigning from HeadVar__2 */
/* no succip restoration */
/* no sp restoration */
	{ r1 = TRUE; }
		/* Succeed */
/*
 * Live lvalues:
 *	r1
 *	r3
 */
	{ proceed(); }
		/* shortcircuit */
Define_label(mercury__pop_2_0_i22);
		/* case "turkey" */
	{ r3 = 383; }
		/* Assigning from HeadVar__2 */
/* no succip restoration */
/* no sp restoration */
	{ r1 = TRUE; }
		/* Succeed */
/*
 * Live lvalues:
 *	r1
 *	r3
 */
	{ proceed(); }
		/* shortcircuit */
Define_label(mercury__pop_2_0_i23);
		/* case "china" */
	{ r3 = 8250; }
		/* Assigning from HeadVar__2 */
/* no succip restoration */
/* no sp restoration */
	{ r1 = TRUE; }
		/* Succeed */
/*
 * Live lvalues:
 *	r1
 *	r3
 */
	{ proceed(); }
		/* shortcircuit */
Define_label(mercury__pop_2_0_i24);
		/* case "w_germany" */
	{ r3 = 620; }
		/* Assigning from HeadVar__2 */
/* no succip restoration */
/* no sp restoration */
	{ r1 = TRUE; }
		/* Succeed */
/*
 * Live lvalues:
 *	r1
 *	r3
 */
	{ proceed(); }
		/* shortcircuit */
Define_label(mercury__pop_2_0_i25);
		/* case "italy" */
	{ r3 = 554; }
		/* Assigning from HeadVar__2 */
/* no succip restoration */
/* no sp restoration */
	{ r1 = TRUE; }
		/* Succeed */
/*
 * Live lvalues:
 *	r1
 *	r3
 */
	{ proceed(); }
		/* shortcircuit */
Define_label(mercury__pop_2_0_i26);
		/* case "philippines" */
	{ r3 = 415; }
		/* Assigning from HeadVar__2 */
/* no succip restoration */
/* no sp restoration */
	{ r1 = TRUE; }
		/* Succeed */
/*
 * Live lvalues:
 *	r1
 *	r3
 */
	{ proceed(); }
		/* shortcircuit */
Define_label(mercury__pop_2_0_i27);
		/* case "ethiopia" */
	{ r3 = 272; }
		/* Assigning from HeadVar__2 */
/* no succip restoration */
/* no sp restoration */
	{ r1 = TRUE; }
		/* Succeed */
/*
 * Live lvalues:
 *	r1
 *	r3
 */
	{ proceed(); }
		/* shortcircuit */
Define_label(mercury__pop_2_0_i28);
		/* case "japan" */
	{ r3 = 1097; }
		/* Assigning from HeadVar__2 */
/* no succip restoration */
/* no sp restoration */
	{ r1 = TRUE; }
		/* Succeed */
/*
 * Live lvalues:
 *	r1
 *	r3
 */
	{ proceed(); }
		/* shortcircuit */
Define_label(mercury__pop_2_0_i29);
		/* case "pakistan" */
	{ r3 = 682; }
		/* Assigning from HeadVar__2 */
/* no succip restoration */
/* no sp restoration */
	{ r1 = TRUE; }
		/* Succeed */
/*
 * Live lvalues:
 *	r1
 *	r3
 */
	{ proceed(); }
		/* shortcircuit */
Define_label(mercury__pop_2_0_i30);
		/* case "bangladesh" */
	{ r3 = 750; }
		/* Assigning from HeadVar__2 */
/* no succip restoration */
/* no sp restoration */
	{ r1 = TRUE; }
		/* Succeed */
/*
 * Live lvalues:
 *	r1
 *	r3
 */
	{ proceed(); }
		/* shortcircuit */
Define_label(mercury__pop_2_0_i31);
		/* case "s_korea" */
	{ r3 = 335; }
		/* Assigning from HeadVar__2 */
/* no succip restoration */
/* no sp restoration */
	{ r1 = TRUE; }
		/* Succeed */
/*
 * Live lvalues:
 *	r1
 *	r3
 */
	{ proceed(); }
		/* shortcircuit */
Define_label(mercury__pop_2_0_i32);
		/* case "thailand" */
	{ r3 = 410; }
		/* Assigning from HeadVar__2 */
/* no succip restoration */
/* no sp restoration */
	{ r1 = TRUE; }
		/* Succeed */
/*
 * Live lvalues:
 *	r1
 *	r3
 */
	{ proceed(); }
		/* shortcircuit */
Define_label(mercury__pop_2_0_i33);
		/* case "uk" */
	{ r3 = 559; }
		/* Assigning from HeadVar__2 */
/* Start of procedure epilogue */
	{ r1 = TRUE; }
		/* Succeed */
/*
 * Live lvalues:
 *	r1
 *	r3
 */
	{ proceed(); }
		/* Return from procedure call */
Define_label(mercury__pop_2_0_i1);
		/* End of failure continuation */
	{ r1 = FALSE; }
		/* Fail */
/*
 * Live lvalues:
 *	r1
 */
	{ proceed(); }
		/* Return from procedure call */

/*-------------------------------------------------------------------------*/
/* code for predicate pop/2 in mode 1 */
/* Start of procedure prologue */
/* 
Stack slot assignments (if any):
 */
Define_local(mercury__pop_2_1_l);
		/* Procedure entry point */
	{ mkframe("pop/2", 2, LABEL(mercury__pop_2_1_i2)); }
		/* Nondet stackframe */
	{ mark_hp(framevar(1)); }
		/* Save heap pointer */
	{ r2 = 8250; }
		/* Assigning from HeadVar__2 */
	{ r1 = string_const("china", 5); }
		/* Assigning from HeadVar__1 */
/*
 * Live lvalues:
 *	r1
 *	r2
 */
	{ succeed(); }
		/* Succeed */
Define_label(mercury__pop_2_1_i2);
	update_prof_current_proc(LABEL(mercury__pop_2_1_l));
		/* Part of the failure continuation */
	{ LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__pop_2_1_i5); }
		/* modify failure cont */
	{ restore_hp((Integer) framevar(1)); }
		/* Reset heap pointer */
	{ r2 = 5863; }
		/* Assigning from HeadVar__2 */
	{ r1 = string_const("india", 5); }
		/* Assigning from HeadVar__1 */
/*
 * Live lvalues:
 *	r1
 *	r2
 */
	{ succeed(); }
		/* Succeed */
Define_label(mercury__pop_2_1_i5);
	update_prof_current_proc(LABEL(mercury__pop_2_1_l));
		/* Part of the failure continuation */
	{ LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__pop_2_1_i7); }
		/* modify failure cont */
	{ restore_hp((Integer) framevar(1)); }
		/* Reset heap pointer */
	{ r2 = 2521; }
		/* Assigning from HeadVar__2 */
	{ r1 = string_const("ussr", 4); }
		/* Assigning from HeadVar__1 */
/*
 * Live lvalues:
 *	r1
 *	r2
 */
	{ succeed(); }
		/* Succeed */
Define_label(mercury__pop_2_1_i7);
	update_prof_current_proc(LABEL(mercury__pop_2_1_l));
		/* Part of the failure continuation */
	{ LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__pop_2_1_i9); }
		/* modify failure cont */
	{ restore_hp((Integer) framevar(1)); }
		/* Reset heap pointer */
	{ r2 = 2119; }
		/* Assigning from HeadVar__2 */
	{ r1 = string_const("usa", 3); }
		/* Assigning from HeadVar__1 */
/*
 * Live lvalues:
 *	r1
 *	r2
 */
	{ succeed(); }
		/* Succeed */
Define_label(mercury__pop_2_1_i9);
	update_prof_current_proc(LABEL(mercury__pop_2_1_l));
		/* Part of the failure continuation */
	{ LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__pop_2_1_i11); }
		/* modify failure cont */
	{ restore_hp((Integer) framevar(1)); }
		/* Reset heap pointer */
	{ r2 = 1276; }
		/* Assigning from HeadVar__2 */
	{ r1 = string_const("indonesia", 9); }
		/* Assigning from HeadVar__1 */
/*
 * Live lvalues:
 *	r1
 *	r2
 */
	{ succeed(); }
		/* Succeed */
Define_label(mercury__pop_2_1_i11);
	update_prof_current_proc(LABEL(mercury__pop_2_1_l));
		/* Part of the failure continuation */
	{ LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__pop_2_1_i13); }
		/* modify failure cont */
	{ restore_hp((Integer) framevar(1)); }
		/* Reset heap pointer */
	{ r2 = 1097; }
		/* Assigning from HeadVar__2 */
	{ r1 = string_const("japan", 5); }
		/* Assigning from HeadVar__1 */
/*
 * Live lvalues:
 *	r1
 *	r2
 */
	{ succeed(); }
		/* Succeed */
Define_label(mercury__pop_2_1_i13);
	update_prof_current_proc(LABEL(mercury__pop_2_1_l));
		/* Part of the failure continuation */
	{ LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__pop_2_1_i15); }
		/* modify failure cont */
	{ restore_hp((Integer) framevar(1)); }
		/* Reset heap pointer */
	{ r2 = 1042; }
		/* Assigning from HeadVar__2 */
	{ r1 = string_const("brazil", 6); }
		/* Assigning from HeadVar__1 */
/*
 * Live lvalues:
 *	r1
 *	r2
 */
	{ succeed(); }
		/* Succeed */
Define_label(mercury__pop_2_1_i15);
	update_prof_current_proc(LABEL(mercury__pop_2_1_l));
		/* Part of the failure continuation */
	{ LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__pop_2_1_i17); }
		/* modify failure cont */
	{ restore_hp((Integer) framevar(1)); }
		/* Reset heap pointer */
	{ r2 = 750; }
		/* Assigning from HeadVar__2 */
	{ r1 = string_const("bangladesh", 10); }
		/* Assigning from HeadVar__1 */
/*
 * Live lvalues:
 *	r1
 *	r2
 */
	{ succeed(); }
		/* Succeed */
Define_label(mercury__pop_2_1_i17);
	update_prof_current_proc(LABEL(mercury__pop_2_1_l));
		/* Part of the failure continuation */
	{ LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__pop_2_1_i19); }
		/* modify failure cont */
	{ restore_hp((Integer) framevar(1)); }
		/* Reset heap pointer */
	{ r2 = 682; }
		/* Assigning from HeadVar__2 */
	{ r1 = string_const("pakistan", 8); }
		/* Assigning from HeadVar__1 */
/*
 * Live lvalues:
 *	r1
 *	r2
 */
	{ succeed(); }
		/* Succeed */
Define_label(mercury__pop_2_1_i19);
	update_prof_current_proc(LABEL(mercury__pop_2_1_l));
		/* Part of the failure continuation */
	{ LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__pop_2_1_i21); }
		/* modify failure cont */
	{ restore_hp((Integer) framevar(1)); }
		/* Reset heap pointer */
	{ r2 = 620; }
		/* Assigning from HeadVar__2 */
	{ r1 = string_const("w_germany", 9); }
		/* Assigning from HeadVar__1 */
/*
 * Live lvalues:
 *	r1
 *	r2
 */
	{ succeed(); }
		/* Succeed */
Define_label(mercury__pop_2_1_i21);
	update_prof_current_proc(LABEL(mercury__pop_2_1_l));
		/* Part of the failure continuation */
	{ LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__pop_2_1_i23); }
		/* modify failure cont */
	{ restore_hp((Integer) framevar(1)); }
		/* Reset heap pointer */
	{ r2 = 613; }
		/* Assigning from HeadVar__2 */
	{ r1 = string_const("nigeria", 7); }
		/* Assigning from HeadVar__1 */
/*
 * Live lvalues:
 *	r1
 *	r2
 */
	{ succeed(); }
		/* Succeed */
Define_label(mercury__pop_2_1_i23);
	update_prof_current_proc(LABEL(mercury__pop_2_1_l));
		/* Part of the failure continuation */
	{ LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__pop_2_1_i25); }
		/* modify failure cont */
	{ restore_hp((Integer) framevar(1)); }
		/* Reset heap pointer */
	{ r2 = 581; }
		/* Assigning from HeadVar__2 */
	{ r1 = string_const("mexico", 6); }
		/* Assigning from HeadVar__1 */
/*
 * Live lvalues:
 *	r1
 *	r2
 */
	{ succeed(); }
		/* Succeed */
Define_label(mercury__pop_2_1_i25);
	update_prof_current_proc(LABEL(mercury__pop_2_1_l));
		/* Part of the failure continuation */
	{ LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__pop_2_1_i27); }
		/* modify failure cont */
	{ restore_hp((Integer) framevar(1)); }
		/* Reset heap pointer */
	{ r2 = 559; }
		/* Assigning from HeadVar__2 */
	{ r1 = string_const("uk", 2); }
		/* Assigning from HeadVar__1 */
/*
 * Live lvalues:
 *	r1
 *	r2
 */
	{ succeed(); }
		/* Succeed */
Define_label(mercury__pop_2_1_i27);
	update_prof_current_proc(LABEL(mercury__pop_2_1_l));
		/* Part of the failure continuation */
	{ LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__pop_2_1_i29); }
		/* modify failure cont */
	{ restore_hp((Integer) framevar(1)); }
		/* Reset heap pointer */
	{ r2 = 554; }
		/* Assigning from HeadVar__2 */
	{ r1 = string_const("italy", 5); }
		/* Assigning from HeadVar__1 */
/*
 * Live lvalues:
 *	r1
 *	r2
 */
	{ succeed(); }
		/* Succeed */
Define_label(mercury__pop_2_1_i29);
	update_prof_current_proc(LABEL(mercury__pop_2_1_l));
		/* Part of the failure continuation */
	{ LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__pop_2_1_i31); }
		/* modify failure cont */
	{ restore_hp((Integer) framevar(1)); }
		/* Reset heap pointer */
	{ r2 = 525; }
		/* Assigning from HeadVar__2 */
	{ r1 = string_const("france", 6); }
		/* Assigning from HeadVar__1 */
/*
 * Live lvalues:
 *	r1
 *	r2
 */
	{ succeed(); }
		/* Succeed */
Define_label(mercury__pop_2_1_i31);
	update_prof_current_proc(LABEL(mercury__pop_2_1_l));
		/* Part of the failure continuation */
	{ LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__pop_2_1_i33); }
		/* modify failure cont */
	{ restore_hp((Integer) framevar(1)); }
		/* Reset heap pointer */
	{ r2 = 415; }
		/* Assigning from HeadVar__2 */
	{ r1 = string_const("philippines", 11); }
		/* Assigning from HeadVar__1 */
/*
 * Live lvalues:
 *	r1
 *	r2
 */
	{ succeed(); }
		/* Succeed */
Define_label(mercury__pop_2_1_i33);
	update_prof_current_proc(LABEL(mercury__pop_2_1_l));
		/* Part of the failure continuation */
	{ LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__pop_2_1_i35); }
		/* modify failure cont */
	{ restore_hp((Integer) framevar(1)); }
		/* Reset heap pointer */
	{ r2 = 410; }
		/* Assigning from HeadVar__2 */
	{ r1 = string_const("thailand", 8); }
		/* Assigning from HeadVar__1 */
/*
 * Live lvalues:
 *	r1
 *	r2
 */
	{ succeed(); }
		/* Succeed */
Define_label(mercury__pop_2_1_i35);
	update_prof_current_proc(LABEL(mercury__pop_2_1_l));
		/* Part of the failure continuation */
	{ LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__pop_2_1_i37); }
		/* modify failure cont */
	{ restore_hp((Integer) framevar(1)); }
		/* Reset heap pointer */
	{ r2 = 383; }
		/* Assigning from HeadVar__2 */
	{ r1 = string_const("turkey", 6); }
		/* Assigning from HeadVar__1 */
/*
 * Live lvalues:
 *	r1
 *	r2
 */
	{ succeed(); }
		/* Succeed */
Define_label(mercury__pop_2_1_i37);
	update_prof_current_proc(LABEL(mercury__pop_2_1_l));
		/* Part of the failure continuation */
	{ LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__pop_2_1_i39); }
		/* modify failure cont */
	{ restore_hp((Integer) framevar(1)); }
		/* Reset heap pointer */
	{ r2 = 364; }
		/* Assigning from HeadVar__2 */
	{ r1 = string_const("egypt", 5); }
		/* Assigning from HeadVar__1 */
/*
 * Live lvalues:
 *	r1
 *	r2
 */
	{ succeed(); }
		/* Succeed */
Define_label(mercury__pop_2_1_i39);
	update_prof_current_proc(LABEL(mercury__pop_2_1_l));
		/* Part of the failure continuation */
	{ LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__pop_2_1_i41); }
		/* modify failure cont */
	{ restore_hp((Integer) framevar(1)); }
		/* Reset heap pointer */
	{ r2 = 352; }
		/* Assigning from HeadVar__2 */
	{ r1 = string_const("spain", 5); }
		/* Assigning from HeadVar__1 */
/*
 * Live lvalues:
 *	r1
 *	r2
 */
	{ succeed(); }
		/* Succeed */
Define_label(mercury__pop_2_1_i41);
	update_prof_current_proc(LABEL(mercury__pop_2_1_l));
		/* Part of the failure continuation */
	{ LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__pop_2_1_i43); }
		/* modify failure cont */
	{ restore_hp((Integer) framevar(1)); }
		/* Reset heap pointer */
	{ r2 = 337; }
		/* Assigning from HeadVar__2 */
	{ r1 = string_const("poland", 6); }
		/* Assigning from HeadVar__1 */
/*
 * Live lvalues:
 *	r1
 *	r2
 */
	{ succeed(); }
		/* Succeed */
Define_label(mercury__pop_2_1_i43);
	update_prof_current_proc(LABEL(mercury__pop_2_1_l));
		/* Part of the failure continuation */
	{ LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__pop_2_1_i45); }
		/* modify failure cont */
	{ restore_hp((Integer) framevar(1)); }
		/* Reset heap pointer */
	{ r2 = 335; }
		/* Assigning from HeadVar__2 */
	{ r1 = string_const("s_korea", 7); }
		/* Assigning from HeadVar__1 */
/*
 * Live lvalues:
 *	r1
 *	r2
 */
	{ succeed(); }
		/* Succeed */
Define_label(mercury__pop_2_1_i45);
	update_prof_current_proc(LABEL(mercury__pop_2_1_l));
		/* Part of the failure continuation */
	{ LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__pop_2_1_i47); }
		/* modify failure cont */
	{ restore_hp((Integer) framevar(1)); }
		/* Reset heap pointer */
	{ r2 = 320; }
		/* Assigning from HeadVar__2 */
	{ r1 = string_const("iran", 4); }
		/* Assigning from HeadVar__1 */
/*
 * Live lvalues:
 *	r1
 *	r2
 */
	{ succeed(); }
		/* Succeed */
Define_label(mercury__pop_2_1_i47);
	update_prof_current_proc(LABEL(mercury__pop_2_1_l));
		/* Part of the failure continuation */
	{ LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__pop_2_1_i49); }
		/* modify failure cont */
	{ restore_hp((Integer) framevar(1)); }
		/* Reset heap pointer */
	{ r2 = 272; }
		/* Assigning from HeadVar__2 */
	{ r1 = string_const("ethiopia", 8); }
		/* Assigning from HeadVar__1 */
/*
 * Live lvalues:
 *	r1
 *	r2
 */
	{ succeed(); }
		/* Succeed */
Define_label(mercury__pop_2_1_i49);
	update_prof_current_proc(LABEL(mercury__pop_2_1_l));
		/* Part of the failure continuation */
	{ LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) ENTRY(do_fail); }
		/* restore failure cont */
	{ restore_hp((Integer) framevar(1)); }
		/* Reset heap pointer */
	{ r2 = 251; }
		/* Assigning from HeadVar__2 */
	{ r1 = string_const("argentina", 9); }
		/* Assigning from HeadVar__1 */
/* Start of procedure epilogue */
/*
 * Live lvalues:
 *	r1
 *	r2
 */
	{ succeed(); }
		/* Succeed */

/*-------------------------------------------------------------------------*/
/* code for predicate area/2 in mode 0 */
/* Start of procedure prologue */
/* 
Stack slot assignments (if any):
 */
Define_local(mercury__area_2_0_l);
		/* Procedure entry point */
/* End of procedure prologue */
/* hashed string switch */
	{ r1 = (hash_string((Integer) r2) & 63); }
		/* compute the hash value of the input string */
Define_label(mercury__area_2_0_i4);
		/* begin hash chain loop */
	while (1) {
	{ static const Word mercury_const_8[] = {
		string_const("spain", 5),
		string_const("argentina", 9),
		0,
		string_const("ussr", 4),
		string_const("usa", 3),
		0,
		0,
		0,
		string_const("brazil", 6),
		0,
		0,
		0,
		0,
		0,
		string_const("india", 5),
		0,
		string_const("iran", 4),
		0,
		0,
		string_const("mexico", 6),
		0,
		string_const("indonesia", 9),
		0,
		0,
		string_const("nigeria", 7),
		0,
		string_const("egypt", 5),
		string_const("france", 6),
		0,
		0,
		string_const("poland", 6),
		0,
		0,
		0,
		string_const("turkey", 6),
		0,
		0,
		0,
		0,
		0,
		string_const("china", 5),
		0,
		string_const("w_germany", 9),
		0,
		string_const("italy", 5),
		0,
		string_const("philippines", 11),
		string_const("ethiopia", 8),
		0,
		string_const("japan", 5),
		0,
		string_const("pakistan", 8),
		0,
		0,
		0,
		string_const("bangladesh", 10),
		0,
		string_const("s_korea", 7),
		0,
		string_const("thailand", 8),
		string_const("uk", 2),
		0,
		0,
		0
	  };
	  r3 = ((Word *)mkword(mktag(0), mercury_const_8))[(Integer) r1]; }
		/* lookup the string for this hash slot */
	{ if (((Integer) r3 && (strcmp((char *)(Integer) r3, (char *)(Integer) r2) ==0)))
		GOTO_LABEL(mercury__area_2_0_i6); }
		/* did we find a match? */
	{ static const Word mercury_const_7[] = {
		-1,
		-1,
		-2,
		-1,
		1,
		-2,
		-2,
		-2,
		-1,
		-2,
		-2,
		-2,
		-2,
		-2,
		-1,
		-2,
		-1,
		-2,
		-2,
		-1,
		-2,
		-1,
		-2,
		-2,
		-1,
		-2,
		-1,
		-1,
		-2,
		-2,
		-1,
		-2,
		-2,
		-2,
		-1,
		-2,
		-2,
		-2,
		-2,
		-2,
		-1,
		-2,
		-1,
		-2,
		-1,
		-2,
		-1,
		-1,
		-2,
		-1,
		-2,
		-1,
		-2,
		-2,
		-2,
		-1,
		-2,
		-1,
		-2,
		-1,
		-1,
		-2,
		-2,
		-2
	  };
	  r1 = ((Word *)mkword(mktag(0), mercury_const_7))[(Integer) r1]; }
		/* not yet, so get next slot in hash chain */
	{ if (((Integer) r1 >= 0))
		continue; }
		/* keep searching until we reach the end of the chain */
/* no succip restoration */
/* no sp restoration */
	{ r1 = FALSE; }
		/* Fail */
/*
 * Live lvalues:
 *	r1
 */
	{ proceed(); }
		/* shortcircuit */
	break; } /* end while */
Define_label(mercury__area_2_0_i6);
		/* we found a match */
	{ COMPUTED_GOTO((Integer) r1,
		LABEL(mercury__area_2_0_i9) AND
		LABEL(mercury__area_2_0_i10) AND
		LABEL(mercury__area_2_0_i1) AND
		LABEL(mercury__area_2_0_i11) AND
		LABEL(mercury__area_2_0_i12) AND
		LABEL(mercury__area_2_0_i1) AND
		LABEL(mercury__area_2_0_i1) AND
		LABEL(mercury__area_2_0_i1) AND
		LABEL(mercury__area_2_0_i13) AND
		LABEL(mercury__area_2_0_i1) AND
		LABEL(mercury__area_2_0_i1) AND
		LABEL(mercury__area_2_0_i1) AND
		LABEL(mercury__area_2_0_i1) AND
		LABEL(mercury__area_2_0_i1) AND
		LABEL(mercury__area_2_0_i14) AND
		LABEL(mercury__area_2_0_i1) AND
		LABEL(mercury__area_2_0_i15) AND
		LABEL(mercury__area_2_0_i1) AND
		LABEL(mercury__area_2_0_i1) AND
		LABEL(mercury__area_2_0_i16) AND
		LABEL(mercury__area_2_0_i1) AND
		LABEL(mercury__area_2_0_i17) AND
		LABEL(mercury__area_2_0_i1) AND
		LABEL(mercury__area_2_0_i1) AND
		LABEL(mercury__area_2_0_i18) AND
		LABEL(mercury__area_2_0_i1) AND
		LABEL(mercury__area_2_0_i19) AND
		LABEL(mercury__area_2_0_i20) AND
		LABEL(mercury__area_2_0_i1) AND
		LABEL(mercury__area_2_0_i1) AND
		LABEL(mercury__area_2_0_i21) AND
		LABEL(mercury__area_2_0_i1) AND
		LABEL(mercury__area_2_0_i1) AND
		LABEL(mercury__area_2_0_i1) AND
		LABEL(mercury__area_2_0_i22) AND
		LABEL(mercury__area_2_0_i1) AND
		LABEL(mercury__area_2_0_i1) AND
		LABEL(mercury__area_2_0_i1) AND
		LABEL(mercury__area_2_0_i1) AND
		LABEL(mercury__area_2_0_i1) AND
		LABEL(mercury__area_2_0_i23) AND
		LABEL(mercury__area_2_0_i1) AND
		LABEL(mercury__area_2_0_i24) AND
		LABEL(mercury__area_2_0_i1) AND
		LABEL(mercury__area_2_0_i25) AND
		LABEL(mercury__area_2_0_i1) AND
		LABEL(mercury__area_2_0_i26) AND
		LABEL(mercury__area_2_0_i27) AND
		LABEL(mercury__area_2_0_i1) AND
		LABEL(mercury__area_2_0_i28) AND
		LABEL(mercury__area_2_0_i1) AND
		LABEL(mercury__area_2_0_i29) AND
		LABEL(mercury__area_2_0_i1) AND
		LABEL(mercury__area_2_0_i1) AND
		LABEL(mercury__area_2_0_i1) AND
		LABEL(mercury__area_2_0_i30) AND
		LABEL(mercury__area_2_0_i1) AND
		LABEL(mercury__area_2_0_i31) AND
		LABEL(mercury__area_2_0_i1) AND
		LABEL(mercury__area_2_0_i32) AND
		LABEL(mercury__area_2_0_i33) AND
		LABEL(mercury__area_2_0_i1) AND
		LABEL(mercury__area_2_0_i1) AND
		LABEL(mercury__area_2_0_i1)); }
		/* jump to the corresponding code (some shortcircuits) */
Define_label(mercury__area_2_0_i9);
		/* case "spain" */
	{ r3 = 190; }
		/* Assigning from HeadVar__2 */
/* no succip restoration */
/* no sp restoration */
	{ r1 = TRUE; }
		/* Succeed */
/*
 * Live lvalues:
 *	r1
 *	r3
 */
	{ proceed(); }
		/* shortcircuit */
Define_label(mercury__area_2_0_i10);
		/* case "argentina" */
	{ r3 = 1080; }
		/* Assigning from HeadVar__2 */
/* no succip restoration */
/* no sp restoration */
	{ r1 = TRUE; }
		/* Succeed */
/*
 * Live lvalues:
 *	r1
 *	r3
 */
	{ proceed(); }
		/* shortcircuit */
Define_label(mercury__area_2_0_i11);
		/* case "ussr" */
	{ r3 = 8708; }
		/* Assigning from HeadVar__2 */
/* no succip restoration */
/* no sp restoration */
	{ r1 = TRUE; }
		/* Succeed */
/*
 * Live lvalues:
 *	r1
 *	r3
 */
	{ proceed(); }
		/* shortcircuit */
Define_label(mercury__area_2_0_i12);
		/* case "usa" */
	{ r3 = 3609; }
		/* Assigning from HeadVar__2 */
/* no succip restoration */
/* no sp restoration */
	{ r1 = TRUE; }
		/* Succeed */
/*
 * Live lvalues:
 *	r1
 *	r3
 */
	{ proceed(); }
		/* shortcircuit */
Define_label(mercury__area_2_0_i13);
		/* case "brazil" */
	{ r3 = 3288; }
		/* Assigning from HeadVar__2 */
/* no succip restoration */
/* no sp restoration */
	{ r1 = TRUE; }
		/* Succeed */
/*
 * Live lvalues:
 *	r1
 *	r3
 */
	{ proceed(); }
		/* shortcircuit */
Define_label(mercury__area_2_0_i14);
		/* case "india" */
	{ r3 = 1139; }
		/* Assigning from HeadVar__2 */
/* no succip restoration */
/* no sp restoration */
	{ r1 = TRUE; }
		/* Succeed */
/*
 * Live lvalues:
 *	r1
 *	r3
 */
	{ proceed(); }
		/* shortcircuit */
Define_label(mercury__area_2_0_i15);
		/* case "iran" */
	{ r3 = 628; }
		/* Assigning from HeadVar__2 */
/* no succip restoration */
/* no sp restoration */
	{ r1 = TRUE; }
		/* Succeed */
/*
 * Live lvalues:
 *	r1
 *	r3
 */
	{ proceed(); }
		/* shortcircuit */
Define_label(mercury__area_2_0_i16);
		/* case "mexico" */
	{ r3 = 764; }
		/* Assigning from HeadVar__2 */
/* no succip restoration */
/* no sp restoration */
	{ r1 = TRUE; }
		/* Succeed */
/*
 * Live lvalues:
 *	r1
 *	r3
 */
	{ proceed(); }
		/* shortcircuit */
Define_label(mercury__area_2_0_i17);
		/* case "indonesia" */
	{ r3 = 570; }
		/* Assigning from HeadVar__2 */
/* no succip restoration */
/* no sp restoration */
	{ r1 = TRUE; }
		/* Succeed */
/*
 * Live lvalues:
 *	r1
 *	r3
 */
	{ proceed(); }
		/* shortcircuit */
Define_label(mercury__area_2_0_i18);
		/* case "nigeria" */
	{ r3 = 373; }
		/* Assigning from HeadVar__2 */
/* no succip restoration */
/* no sp restoration */
	{ r1 = TRUE; }
		/* Succeed */
/*
 * Live lvalues:
 *	r1
 *	r3
 */
	{ proceed(); }
		/* shortcircuit */
Define_label(mercury__area_2_0_i19);
		/* case "egypt" */
	{ r3 = 386; }
		/* Assigning from HeadVar__2 */
/* no succip restoration */
/* no sp restoration */
	{ r1 = TRUE; }
		/* Succeed */
/*
 * Live lvalues:
 *	r1
 *	r3
 */
	{ proceed(); }
		/* shortcircuit */
Define_label(mercury__area_2_0_i20);
		/* case "france" */
	{ r3 = 213; }
		/* Assigning from HeadVar__2 */
/* no succip restoration */
/* no sp restoration */
	{ r1 = TRUE; }
		/* Succeed */
/*
 * Live lvalues:
 *	r1
 *	r3
 */
	{ proceed(); }
		/* shortcircuit */
Define_label(mercury__area_2_0_i21);
		/* case "poland" */
	{ r3 = 121; }
		/* Assigning from HeadVar__2 */
/* no succip restoration */
/* no sp restoration */
	{ r1 = TRUE; }
		/* Succeed */
/*
 * Live lvalues:
 *	r1
 *	r3
 */
	{ proceed(); }
		/* shortcircuit */
Define_label(mercury__area_2_0_i22);
		/* case "turkey" */
	{ r3 = 296; }
		/* Assigning from HeadVar__2 */
/* no succip restoration */
/* no sp restoration */
	{ r1 = TRUE; }
		/* Succeed */
/*
 * Live lvalues:
 *	r1
 *	r3
 */
	{ proceed(); }
		/* shortcircuit */
Define_label(mercury__area_2_0_i23);
		/* case "china" */
	{ r3 = 3380; }
		/* Assigning from HeadVar__2 */
/* no succip restoration */
/* no sp restoration */
	{ r1 = TRUE; }
		/* Succeed */
/*
 * Live lvalues:
 *	r1
 *	r3
 */
	{ proceed(); }
		/* shortcircuit */
Define_label(mercury__area_2_0_i24);
		/* case "w_germany" */
	{ r3 = 96; }
		/* Assigning from HeadVar__2 */
/* no succip restoration */
/* no sp restoration */
	{ r1 = TRUE; }
		/* Succeed */
/*
 * Live lvalues:
 *	r1
 *	r3
 */
	{ proceed(); }
		/* shortcircuit */
Define_label(mercury__area_2_0_i25);
		/* case "italy" */
	{ r3 = 116; }
		/* Assigning from HeadVar__2 */
/* no succip restoration */
/* no sp restoration */
	{ r1 = TRUE; }
		/* Succeed */
/*
 * Live lvalues:
 *	r1
 *	r3
 */
	{ proceed(); }
		/* shortcircuit */
Define_label(mercury__area_2_0_i26);
		/* case "philippines" */
	{ r3 = 90; }
		/* Assigning from HeadVar__2 */
/* no succip restoration */
/* no sp restoration */
	{ r1 = TRUE; }
		/* Succeed */
/*
 * Live lvalues:
 *	r1
 *	r3
 */
	{ proceed(); }
		/* shortcircuit */
Define_label(mercury__area_2_0_i27);
		/* case "ethiopia" */
	{ r3 = 350; }
		/* Assigning from HeadVar__2 */
/* no succip restoration */
/* no sp restoration */
	{ r1 = TRUE; }
		/* Succeed */
/*
 * Live lvalues:
 *	r1
 *	r3
 */
	{ proceed(); }
		/* shortcircuit */
Define_label(mercury__area_2_0_i28);
		/* case "japan" */
	{ r3 = 148; }
		/* Assigning from HeadVar__2 */
/* no succip restoration */
/* no sp restoration */
	{ r1 = TRUE; }
		/* Succeed */
/*
 * Live lvalues:
 *	r1
 *	r3
 */
	{ proceed(); }
		/* shortcircuit */
Define_label(mercury__area_2_0_i29);
		/* case "pakistan" */
	{ r3 = 311; }
		/* Assigning from HeadVar__2 */
/* no succip restoration */
/* no sp restoration */
	{ r1 = TRUE; }
		/* Succeed */
/*
 * Live lvalues:
 *	r1
 *	r3
 */
	{ proceed(); }
		/* shortcircuit */
Define_label(mercury__area_2_0_i30);
		/* case "bangladesh" */
	{ r3 = 55; }
		/* Assigning from HeadVar__2 */
/* no succip restoration */
/* no sp restoration */
	{ r1 = TRUE; }
		/* Succeed */
/*
 * Live lvalues:
 *	r1
 *	r3
 */
	{ proceed(); }
		/* shortcircuit */
Define_label(mercury__area_2_0_i31);
		/* case "s_korea" */
	{ r3 = 37; }
		/* Assigning from HeadVar__2 */
/* no succip restoration */
/* no sp restoration */
	{ r1 = TRUE; }
		/* Succeed */
/*
 * Live lvalues:
 *	r1
 *	r3
 */
	{ proceed(); }
		/* shortcircuit */
Define_label(mercury__area_2_0_i32);
		/* case "thailand" */
	{ r3 = 200; }
		/* Assigning from HeadVar__2 */
/* no succip restoration */
/* no sp restoration */
	{ r1 = TRUE; }
		/* Succeed */
/*
 * Live lvalues:
 *	r1
 *	r3
 */
	{ proceed(); }
		/* shortcircuit */
Define_label(mercury__area_2_0_i33);
		/* case "uk" */
	{ r3 = 86; }
		/* Assigning from HeadVar__2 */
/* Start of procedure epilogue */
	{ r1 = TRUE; }
		/* Succeed */
/*
 * Live lvalues:
 *	r1
 *	r3
 */
	{ proceed(); }
		/* Return from procedure call */
Define_label(mercury__area_2_0_i1);
		/* End of failure continuation */
	{ r1 = FALSE; }
		/* Fail */
/*
 * Live lvalues:
 *	r1
 */
	{ proceed(); }
		/* Return from procedure call */

/*-------------------------------------------------------------------------*/
/* code for predicate area/2 in mode 1 */
/* Start of procedure prologue */
/* 
Stack slot assignments (if any):
 */
Define_local(mercury__area_2_1_l);
		/* Procedure entry point */
	{ mkframe("area/2", 2, LABEL(mercury__area_2_1_i2)); }
		/* Nondet stackframe */
	{ mark_hp(framevar(1)); }
		/* Save heap pointer */
	{ r2 = 3380; }
		/* Assigning from HeadVar__2 */
	{ r1 = string_const("china", 5); }
		/* Assigning from HeadVar__1 */
/*
 * Live lvalues:
 *	r1
 *	r2
 */
	{ succeed(); }
		/* Succeed */
Define_label(mercury__area_2_1_i2);
	update_prof_current_proc(LABEL(mercury__area_2_1_l));
		/* Part of the failure continuation */
	{ LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__area_2_1_i5); }
		/* modify failure cont */
	{ restore_hp((Integer) framevar(1)); }
		/* Reset heap pointer */
	{ r2 = 1139; }
		/* Assigning from HeadVar__2 */
	{ r1 = string_const("india", 5); }
		/* Assigning from HeadVar__1 */
/*
 * Live lvalues:
 *	r1
 *	r2
 */
	{ succeed(); }
		/* Succeed */
Define_label(mercury__area_2_1_i5);
	update_prof_current_proc(LABEL(mercury__area_2_1_l));
		/* Part of the failure continuation */
	{ LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__area_2_1_i7); }
		/* modify failure cont */
	{ restore_hp((Integer) framevar(1)); }
		/* Reset heap pointer */
	{ r2 = 8708; }
		/* Assigning from HeadVar__2 */
	{ r1 = string_const("ussr", 4); }
		/* Assigning from HeadVar__1 */
/*
 * Live lvalues:
 *	r1
 *	r2
 */
	{ succeed(); }
		/* Succeed */
Define_label(mercury__area_2_1_i7);
	update_prof_current_proc(LABEL(mercury__area_2_1_l));
		/* Part of the failure continuation */
	{ LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__area_2_1_i9); }
		/* modify failure cont */
	{ restore_hp((Integer) framevar(1)); }
		/* Reset heap pointer */
	{ r2 = 3609; }
		/* Assigning from HeadVar__2 */
	{ r1 = string_const("usa", 3); }
		/* Assigning from HeadVar__1 */
/*
 * Live lvalues:
 *	r1
 *	r2
 */
	{ succeed(); }
		/* Succeed */
Define_label(mercury__area_2_1_i9);
	update_prof_current_proc(LABEL(mercury__area_2_1_l));
		/* Part of the failure continuation */
	{ LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__area_2_1_i11); }
		/* modify failure cont */
	{ restore_hp((Integer) framevar(1)); }
		/* Reset heap pointer */
	{ r2 = 570; }
		/* Assigning from HeadVar__2 */
	{ r1 = string_const("indonesia", 9); }
		/* Assigning from HeadVar__1 */
/*
 * Live lvalues:
 *	r1
 *	r2
 */
	{ succeed(); }
		/* Succeed */
Define_label(mercury__area_2_1_i11);
	update_prof_current_proc(LABEL(mercury__area_2_1_l));
		/* Part of the failure continuation */
	{ LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__area_2_1_i13); }
		/* modify failure cont */
	{ restore_hp((Integer) framevar(1)); }
		/* Reset heap pointer */
	{ r2 = 148; }
		/* Assigning from HeadVar__2 */
	{ r1 = string_const("japan", 5); }
		/* Assigning from HeadVar__1 */
/*
 * Live lvalues:
 *	r1
 *	r2
 */
	{ succeed(); }
		/* Succeed */
Define_label(mercury__area_2_1_i13);
	update_prof_current_proc(LABEL(mercury__area_2_1_l));
		/* Part of the failure continuation */
	{ LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__area_2_1_i15); }
		/* modify failure cont */
	{ restore_hp((Integer) framevar(1)); }
		/* Reset heap pointer */
	{ r2 = 3288; }
		/* Assigning from HeadVar__2 */
	{ r1 = string_const("brazil", 6); }
		/* Assigning from HeadVar__1 */
/*
 * Live lvalues:
 *	r1
 *	r2
 */
	{ succeed(); }
		/* Succeed */
Define_label(mercury__area_2_1_i15);
	update_prof_current_proc(LABEL(mercury__area_2_1_l));
		/* Part of the failure continuation */
	{ LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__area_2_1_i17); }
		/* modify failure cont */
	{ restore_hp((Integer) framevar(1)); }
		/* Reset heap pointer */
	{ r2 = 55; }
		/* Assigning from HeadVar__2 */
	{ r1 = string_const("bangladesh", 10); }
		/* Assigning from HeadVar__1 */
/*
 * Live lvalues:
 *	r1
 *	r2
 */
	{ succeed(); }
		/* Succeed */
Define_label(mercury__area_2_1_i17);
	update_prof_current_proc(LABEL(mercury__area_2_1_l));
		/* Part of the failure continuation */
	{ LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__area_2_1_i19); }
		/* modify failure cont */
	{ restore_hp((Integer) framevar(1)); }
		/* Reset heap pointer */
	{ r2 = 311; }
		/* Assigning from HeadVar__2 */
	{ r1 = string_const("pakistan", 8); }
		/* Assigning from HeadVar__1 */
/*
 * Live lvalues:
 *	r1
 *	r2
 */
	{ succeed(); }
		/* Succeed */
Define_label(mercury__area_2_1_i19);
	update_prof_current_proc(LABEL(mercury__area_2_1_l));
		/* Part of the failure continuation */
	{ LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__area_2_1_i21); }
		/* modify failure cont */
	{ restore_hp((Integer) framevar(1)); }
		/* Reset heap pointer */
	{ r2 = 96; }
		/* Assigning from HeadVar__2 */
	{ r1 = string_const("w_germany", 9); }
		/* Assigning from HeadVar__1 */
/*
 * Live lvalues:
 *	r1
 *	r2
 */
	{ succeed(); }
		/* Succeed */
Define_label(mercury__area_2_1_i21);
	update_prof_current_proc(LABEL(mercury__area_2_1_l));
		/* Part of the failure continuation */
	{ LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__area_2_1_i23); }
		/* modify failure cont */
	{ restore_hp((Integer) framevar(1)); }
		/* Reset heap pointer */
	{ r2 = 373; }
		/* Assigning from HeadVar__2 */
	{ r1 = string_const("nigeria", 7); }
		/* Assigning from HeadVar__1 */
/*
 * Live lvalues:
 *	r1
 *	r2
 */
	{ succeed(); }
		/* Succeed */
Define_label(mercury__area_2_1_i23);
	update_prof_current_proc(LABEL(mercury__area_2_1_l));
		/* Part of the failure continuation */
	{ LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__area_2_1_i25); }
		/* modify failure cont */
	{ restore_hp((Integer) framevar(1)); }
		/* Reset heap pointer */
	{ r2 = 764; }
		/* Assigning from HeadVar__2 */
	{ r1 = string_const("mexico", 6); }
		/* Assigning from HeadVar__1 */
/*
 * Live lvalues:
 *	r1
 *	r2
 */
	{ succeed(); }
		/* Succeed */
Define_label(mercury__area_2_1_i25);
	update_prof_current_proc(LABEL(mercury__area_2_1_l));
		/* Part of the failure continuation */
	{ LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__area_2_1_i27); }
		/* modify failure cont */
	{ restore_hp((Integer) framevar(1)); }
		/* Reset heap pointer */
	{ r2 = 86; }
		/* Assigning from HeadVar__2 */
	{ r1 = string_const("uk", 2); }
		/* Assigning from HeadVar__1 */
/*
 * Live lvalues:
 *	r1
 *	r2
 */
	{ succeed(); }
		/* Succeed */
Define_label(mercury__area_2_1_i27);
	update_prof_current_proc(LABEL(mercury__area_2_1_l));
		/* Part of the failure continuation */
	{ LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__area_2_1_i29); }
		/* modify failure cont */
	{ restore_hp((Integer) framevar(1)); }
		/* Reset heap pointer */
	{ r2 = 116; }
		/* Assigning from HeadVar__2 */
	{ r1 = string_const("italy", 5); }
		/* Assigning from HeadVar__1 */
/*
 * Live lvalues:
 *	r1
 *	r2
 */
	{ succeed(); }
		/* Succeed */
Define_label(mercury__area_2_1_i29);
	update_prof_current_proc(LABEL(mercury__area_2_1_l));
		/* Part of the failure continuation */
	{ LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__area_2_1_i31); }
		/* modify failure cont */
	{ restore_hp((Integer) framevar(1)); }
		/* Reset heap pointer */
	{ r2 = 213; }
		/* Assigning from HeadVar__2 */
	{ r1 = string_const("france", 6); }
		/* Assigning from HeadVar__1 */
/*
 * Live lvalues:
 *	r1
 *	r2
 */
	{ succeed(); }
		/* Succeed */
Define_label(mercury__area_2_1_i31);
	update_prof_current_proc(LABEL(mercury__area_2_1_l));
		/* Part of the failure continuation */
	{ LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__area_2_1_i33); }
		/* modify failure cont */
	{ restore_hp((Integer) framevar(1)); }
		/* Reset heap pointer */
	{ r2 = 90; }
		/* Assigning from HeadVar__2 */
	{ r1 = string_const("philippines", 11); }
		/* Assigning from HeadVar__1 */
/*
 * Live lvalues:
 *	r1
 *	r2
 */
	{ succeed(); }
		/* Succeed */
Define_label(mercury__area_2_1_i33);
	update_prof_current_proc(LABEL(mercury__area_2_1_l));
		/* Part of the failure continuation */
	{ LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__area_2_1_i35); }
		/* modify failure cont */
	{ restore_hp((Integer) framevar(1)); }
		/* Reset heap pointer */
	{ r2 = 200; }
		/* Assigning from HeadVar__2 */
	{ r1 = string_const("thailand", 8); }
		/* Assigning from HeadVar__1 */
/*
 * Live lvalues:
 *	r1
 *	r2
 */
	{ succeed(); }
		/* Succeed */
Define_label(mercury__area_2_1_i35);
	update_prof_current_proc(LABEL(mercury__area_2_1_l));
		/* Part of the failure continuation */
	{ LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__area_2_1_i37); }
		/* modify failure cont */
	{ restore_hp((Integer) framevar(1)); }
		/* Reset heap pointer */
	{ r2 = 296; }
		/* Assigning from HeadVar__2 */
	{ r1 = string_const("turkey", 6); }
		/* Assigning from HeadVar__1 */
/*
 * Live lvalues:
 *	r1
 *	r2
 */
	{ succeed(); }
		/* Succeed */
Define_label(mercury__area_2_1_i37);
	update_prof_current_proc(LABEL(mercury__area_2_1_l));
		/* Part of the failure continuation */
	{ LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__area_2_1_i39); }
		/* modify failure cont */
	{ restore_hp((Integer) framevar(1)); }
		/* Reset heap pointer */
	{ r2 = 386; }
		/* Assigning from HeadVar__2 */
	{ r1 = string_const("egypt", 5); }
		/* Assigning from HeadVar__1 */
/*
 * Live lvalues:
 *	r1
 *	r2
 */
	{ succeed(); }
		/* Succeed */
Define_label(mercury__area_2_1_i39);
	update_prof_current_proc(LABEL(mercury__area_2_1_l));
		/* Part of the failure continuation */
	{ LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__area_2_1_i41); }
		/* modify failure cont */
	{ restore_hp((Integer) framevar(1)); }
		/* Reset heap pointer */
	{ r2 = 190; }
		/* Assigning from HeadVar__2 */
	{ r1 = string_const("spain", 5); }
		/* Assigning from HeadVar__1 */
/*
 * Live lvalues:
 *	r1
 *	r2
 */
	{ succeed(); }
		/* Succeed */
Define_label(mercury__area_2_1_i41);
	update_prof_current_proc(LABEL(mercury__area_2_1_l));
		/* Part of the failure continuation */
	{ LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__area_2_1_i43); }
		/* modify failure cont */
	{ restore_hp((Integer) framevar(1)); }
		/* Reset heap pointer */
	{ r2 = 121; }
		/* Assigning from HeadVar__2 */
	{ r1 = string_const("poland", 6); }
		/* Assigning from HeadVar__1 */
/*
 * Live lvalues:
 *	r1
 *	r2
 */
	{ succeed(); }
		/* Succeed */
Define_label(mercury__area_2_1_i43);
	update_prof_current_proc(LABEL(mercury__area_2_1_l));
		/* Part of the failure continuation */
	{ LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__area_2_1_i45); }
		/* modify failure cont */
	{ restore_hp((Integer) framevar(1)); }
		/* Reset heap pointer */
	{ r2 = 37; }
		/* Assigning from HeadVar__2 */
	{ r1 = string_const("s_korea", 7); }
		/* Assigning from HeadVar__1 */
/*
 * Live lvalues:
 *	r1
 *	r2
 */
	{ succeed(); }
		/* Succeed */
Define_label(mercury__area_2_1_i45);
	update_prof_current_proc(LABEL(mercury__area_2_1_l));
		/* Part of the failure continuation */
	{ LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__area_2_1_i47); }
		/* modify failure cont */
	{ restore_hp((Integer) framevar(1)); }
		/* Reset heap pointer */
	{ r2 = 628; }
		/* Assigning from HeadVar__2 */
	{ r1 = string_const("iran", 4); }
		/* Assigning from HeadVar__1 */
/*
 * Live lvalues:
 *	r1
 *	r2
 */
	{ succeed(); }
		/* Succeed */
Define_label(mercury__area_2_1_i47);
	update_prof_current_proc(LABEL(mercury__area_2_1_l));
		/* Part of the failure continuation */
	{ LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) LABEL(mercury__area_2_1_i49); }
		/* modify failure cont */
	{ restore_hp((Integer) framevar(1)); }
		/* Reset heap pointer */
	{ r2 = 350; }
		/* Assigning from HeadVar__2 */
	{ r1 = string_const("ethiopia", 8); }
		/* Assigning from HeadVar__1 */
/*
 * Live lvalues:
 *	r1
 *	r2
 */
	{ succeed(); }
		/* Succeed */
Define_label(mercury__area_2_1_i49);
	update_prof_current_proc(LABEL(mercury__area_2_1_l));
		/* Part of the failure continuation */
	{ LVALUE_CAST(Word,bt_redoip((Integer) maxfr)) = (Integer) ENTRY(do_fail); }
		/* restore failure cont */
	{ restore_hp((Integer) framevar(1)); }
		/* Reset heap pointer */
	{ r2 = 1080; }
		/* Assigning from HeadVar__2 */
	{ r1 = string_const("argentina", 9); }
		/* Assigning from HeadVar__1 */
/* Start of procedure epilogue */
/*
 * Live lvalues:
 *	r1
 *	r2
 */
	{ succeed(); }
		/* Succeed */

/*-------------------------------------------------------------------------*/
/* code for predicate __Unify__/2 in mode 0 */
/* Start of procedure prologue */
/* 
Stack slot assignments (if any):
 */
Define_entry(mercury____Unify___quad_0_0);
		/* Procedure entry point */
/* End of procedure prologue */
	{ if ((strcmp((char *)(Integer) field(mktag(0), (Integer) r2, 0), (char *)(Integer) field(mktag(0), (Integer) r3, 0)) !=0))
		GOTO_LABEL(mercury____Unify___quad_0_0_i1); }
		/* Test for failure */
	{ if (((Integer) field(mktag(0), (Integer) r2, 1) != (Integer) field(mktag(0), (Integer) r3, 1)))
		GOTO_LABEL(mercury____Unify___quad_0_0_i1); }
		/* Test for failure */
	{ if ((strcmp((char *)(Integer) field(mktag(0), (Integer) r2, 2), (char *)(Integer) field(mktag(0), (Integer) r3, 2)) !=0))
		GOTO_LABEL(mercury____Unify___quad_0_0_i1); }
		/* Test for failure */
	{ if (((Integer) field(mktag(0), (Integer) r2, 3) != (Integer) field(mktag(0), (Integer) r3, 3)))
		GOTO_LABEL(mercury____Unify___quad_0_0_i1); }
		/* Test for failure */
/* Start of procedure epilogue */
	{ r1 = TRUE; }
		/* Succeed */
/*
 * Live lvalues:
 *	r1
 */
	{ proceed(); }
		/* Return from procedure call */
Define_label(mercury____Unify___quad_0_0_i1);
		/* End of failure continuation */
	{ r1 = FALSE; }
		/* Fail */
/*
 * Live lvalues:
 *	r1
 */
	{ proceed(); }
		/* Return from procedure call */

/*-------------------------------------------------------------------------*/
/* code for predicate __Index__/2 in mode 0 */
/* Start of procedure prologue */
/* 
Stack slot assignments (if any):
 */
Define_entry(mercury____Index___quad_0_0);
		/* Procedure entry point */
/* End of procedure prologue */
/* Start of procedure epilogue */
	{ r2 = 0; }
		/* Assigning from variable number 2 */
/* End of procedure epilogue */
/*
 * Live lvalues:
 *	r2
 */
	{ proceed(); }
		/* Return from procedure call */

/*-------------------------------------------------------------------------*/
/* code for predicate __Compare__/3 in mode 0 */
/* Start of procedure prologue */
/* 
Stack slot assignments (if any):
variable number 8	 ->	stackvar(1)
variable number 4	 ->	stackvar(2)
variable number 12	 ->	stackvar(1)
variable number 10	 ->	stackvar(3)
variable number 6	 ->	stackvar(4)
variable number 14	 ->	stackvar(3)
variable number 9	 ->	stackvar(5)
variable number 5	 ->	stackvar(6)
variable number 13	 ->	stackvar(5)
variable number 11	 ->	stackvar(7)
variable number 7	 ->	stackvar(8)
 */
Define_entry(mercury____Compare___quad_0_0);
	incr_sp(10);
		/* late setup */
	{ detstackvar(10) = (Integer) succip; }
		/* late save */
	{ mark_hp(detstackvar(9)); }
	{ detstackvar(3) = (Integer) field(mktag(0), (Integer) r3, 2); }
		/* vn flush */
	{ detstackvar(4) = (Integer) field(mktag(0), (Integer) r2, 2); }
		/* vn flush */
	{ detstackvar(5) = (Integer) field(mktag(0), (Integer) r3, 1); }
		/* vn flush */
	{ detstackvar(6) = (Integer) field(mktag(0), (Integer) r2, 1); }
		/* vn flush */
	{ detstackvar(7) = (Integer) field(mktag(0), (Integer) r3, 3); }
		/* vn flush */
	{ detstackvar(8) = (Integer) field(mktag(0), (Integer) r2, 3); }
		/* vn flush */
	{ r3 = (Integer) field(mktag(0), (Integer) r3, 0); }
		/* vn flush */
	{ r2 = (Integer) field(mktag(0), (Integer) r2, 0); }
		/* vn flush */
/*
 * Live lvalues:
 *	r2
 *	r3
 *	detstackvar(3)
 *	detstackvar(4)
 *	detstackvar(5)
 *	detstackvar(6)
 *	detstackvar(7)
 *	detstackvar(8)
 *	detstackvar(9)
 *	detstackvar(10)
 */
	{ Declare_entry(mercury__builtin_compare_string_3_0);
	  call(ENTRY(mercury__builtin_compare_string_3_0),
		LABEL(mercury____Compare___quad_0_0_i5),
		LABEL(mercury____Compare___quad_0_0)); }
/*
 * Garbage collection livevals info
 *	detstackvar(10)	succip
 *	r1	num(9)
 *	detstackvar(9)	hp
 *	detstackvar(3)	num(0)
 *	detstackvar(4)	num(0)
 *	detstackvar(5)	num(2)
 *	detstackvar(6)	num(2)
 *	detstackvar(7)	num(2)
 *	detstackvar(8)	num(2)
 */
Define_label(mercury____Compare___quad_0_0_i5);
	update_prof_current_proc(LABEL(mercury____Compare___quad_0_0));
	{ if (((Integer) r1 == 0))
		GOTO_LABEL(mercury____Compare___quad_0_0_i9); }
	{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(10); }
		/* vn flush */
	decr_sp(10);
/*
 * Live lvalues:
 *	r1
 */
	{ proceed(); }
Define_label(mercury____Compare___quad_0_0_i9);
	{ r8 = (Integer) detstackvar(3); }
	{ r7 = (Integer) detstackvar(4); }
	{ r6 = (Integer) detstackvar(5); }
	{ r5 = (Integer) detstackvar(6); }
	{ r4 = (Integer) detstackvar(7); }
	{ r1 = (Integer) detstackvar(8); }
	{ restore_hp((Integer) detstackvar(9)); }
		/* Restore heap pointer */
	{ mark_hp(detstackvar(9)); }
		/* Save heap pointer */
	{ detstackvar(3) = (Integer) r8; }
		/* Assigning from variable number 10 */
	{ detstackvar(4) = (Integer) r7; }
		/* Assigning from variable number 6 */
	{ detstackvar(7) = (Integer) r4; }
		/* Assigning from variable number 11 */
	{ detstackvar(8) = (Integer) r1; }
		/* Assigning from variable number 7 */
	{ r2 = (Integer) r5; }
		/* Assigning from variable number 5 */
	{ r3 = (Integer) r6; }
		/* Assigning from variable number 9 */
/*
 * Live lvalues:
 *	r2
 *	r3
 *	detstackvar(3)
 *	detstackvar(4)
 *	detstackvar(7)
 *	detstackvar(8)
 *	detstackvar(9)
 *	detstackvar(10)
 */
	{ Declare_entry(mercury__builtin_compare_int_3_0);
	  call(ENTRY(mercury__builtin_compare_int_3_0),
		LABEL(mercury____Compare___quad_0_0_i12),
		LABEL(mercury____Compare___quad_0_0)); }
/*
 * Garbage collection livevals info
 *	detstackvar(10)	succip
 *	r1	num(9)
 *	detstackvar(9)	hp
 *	detstackvar(3)	num(0)
 *	detstackvar(4)	num(0)
 *	detstackvar(7)	num(2)
 *	detstackvar(8)	num(2)
 */
		/* branch to det procedure */
Define_label(mercury____Compare___quad_0_0_i12);
	update_prof_current_proc(LABEL(mercury____Compare___quad_0_0));
	{ if (((Integer) r1 == 0))
		GOTO_LABEL(mercury____Compare___quad_0_0_i16); }
	{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(10); }
		/* vn flush */
	decr_sp(10);
/*
 * Live lvalues:
 *	r1
 */
	{ proceed(); }
Define_label(mercury____Compare___quad_0_0_i16);
	{ r8 = (Integer) detstackvar(3); }
	{ r7 = (Integer) detstackvar(4); }
	{ r4 = (Integer) detstackvar(7); }
	{ r1 = (Integer) detstackvar(8); }
	{ restore_hp((Integer) detstackvar(9)); }
		/* Restore heap pointer */
	{ mark_hp(detstackvar(9)); }
		/* Save heap pointer */
	{ detstackvar(7) = (Integer) r4; }
		/* Assigning from variable number 11 */
	{ detstackvar(8) = (Integer) r1; }
		/* Assigning from variable number 7 */
	{ r2 = (Integer) r7; }
		/* Assigning from variable number 6 */
	{ r3 = (Integer) r8; }
		/* Assigning from variable number 10 */
/*
 * Live lvalues:
 *	r2
 *	r3
 *	detstackvar(7)
 *	detstackvar(8)
 *	detstackvar(9)
 *	detstackvar(10)
 */
	{ Declare_entry(mercury__builtin_compare_string_3_0);
	  call(ENTRY(mercury__builtin_compare_string_3_0),
		LABEL(mercury____Compare___quad_0_0_i19),
		LABEL(mercury____Compare___quad_0_0)); }
/*
 * Garbage collection livevals info
 *	detstackvar(10)	succip
 *	r1	num(9)
 *	detstackvar(9)	hp
 *	detstackvar(7)	num(2)
 *	detstackvar(8)	num(2)
 */
		/* branch to det procedure */
Define_label(mercury____Compare___quad_0_0_i19);
	update_prof_current_proc(LABEL(mercury____Compare___quad_0_0));
	{ if (((Integer) r1 == 0))
		GOTO_LABEL(mercury____Compare___quad_0_0_i23); }
	{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(10); }
		/* vn flush */
	decr_sp(10);
/*
 * Live lvalues:
 *	r1
 */
	{ proceed(); }
Define_label(mercury____Compare___quad_0_0_i23);
	{ restore_hp((Integer) detstackvar(9)); }
	{ r2 = (Integer) detstackvar(8); }
		/* vn flush */
	{ r3 = (Integer) detstackvar(7); }
		/* vn flush */
	{ LVALUE_CAST(Word,succip) = (Integer) detstackvar(10); }
		/* vn flush */
	decr_sp(10);
/*
 * Live lvalues:
 *	r2
 *	r3
 *	detstackvar(10)
 */
	{ Declare_entry(mercury__builtin_compare_int_3_0);
	  tailcall(ENTRY(mercury__builtin_compare_int_3_0),
		LABEL(mercury____Compare___quad_0_0)); }
END_MODULE

#if (defined(USE_GCC_NONLOCAL_GOTOS) && !defined(USE_ASM_LABELS)) \
	|| defined(PROFILE_CALLS) || defined(DEBUG_GOTOS) \
	|| defined(DEBUG_LABELS) || !defined(SPEED)

static void mercury__query_bunch_0(void)
{
	mercury__query_module();
}

#endif

void mercury__query__init(void); /* suppress gcc warning */
void mercury__query__init(void)
{
#if (defined(USE_GCC_NONLOCAL_GOTOS) && !defined(USE_ASM_LABELS)) \
	|| defined(PROFILE_CALLS) || defined(DEBUG_GOTOS) \
	|| defined(DEBUG_LABELS) || !defined(SPEED)

	mercury__query_bunch_0();
#endif
}