/*===========================================================================*/
/*   (Unsafe/base64.scm)                                                     */
/*   Bigloo (4.7a)                                                           */
/*   Inria -- Sophia Antipolis (c)       Thu Feb 19 09:11:58 AM CET 2026     */
/*===========================================================================*/
/* COMPILATION: (/home/serrano/prgm/project/bigloo/4.7a/bin/bigloo -srfi bigloo-unsafe -O3 -fcfa-arithmetic -q -lib-dir /home/serrano/prgm/project/bigloo/4.7a/lib/bigloo/4.7a +rm -mklib -cc gcc -fsharing -q -no-hello -unsafe -safee -O4 -stdc -c Unsafe/base64.scm -indent -o objs/obj_u/Unsafe/base64.c) */
/* GC selection */
#define THE_GC BOEHM_GC

/* unsafe mode */
#define BIGLOO_UNSAFE 1

/* traces mode */
#define BIGLOO_TRACE 0

/* standard Bigloo include */
#include <bigloo.h>

#ifdef __cplusplus
extern "C"
{
#endif
#ifndef BGL_MODULE_TYPE_DEFINITIONS
#define BGL_MODULE_TYPE_DEFINITIONS
#ifndef BGL___BASE64_TYPE_DEFINITIONS
#define BGL___BASE64_TYPE_DEFINITIONS

/* object type definitions */
	typedef struct BgL_z62exceptionz62_bgl
	{
		header_t header;
		obj_t widening;
		obj_t BgL_fnamez00;
		obj_t BgL_locationz00;
		obj_t BgL_stackz00;
	}                      *BgL_z62exceptionz62_bglt;

	typedef struct BgL_z62errorz62_bgl
	{
		header_t header;
		obj_t widening;
		obj_t BgL_fnamez00;
		obj_t BgL_locationz00;
		obj_t BgL_stackz00;
		obj_t BgL_procz00;
		obj_t BgL_msgz00;
		obj_t BgL_objz00;
	}                  *BgL_z62errorz62_bglt;

	typedef struct BgL_z62iozd2parsezd2errorz62_bgl
	{
		header_t header;
		obj_t widening;
		obj_t BgL_fnamez00;
		obj_t BgL_locationz00;
		obj_t BgL_stackz00;
		obj_t BgL_procz00;
		obj_t BgL_msgz00;
		obj_t BgL_objz00;
	}                               *BgL_z62iozd2parsezd2errorz62_bglt;


#endif													// BGL___BASE64_TYPE_DEFINITIONS
#endif													// BGL_MODULE_TYPE_DEFINITIONS

	extern obj_t BGl_makezd2u8vectorzd2zz__srfi4z00(long, uint8_t);
	static obj_t BGl_bytezd2tablezd2zz__base64z00 = BUNSPEC;
	static obj_t BGl_z62zc3z04anonymousza31965ze32349ze5zz__base64z00(obj_t,
		obj_t);
	static obj_t BGl_requirezd2initializa7ationz75zz__base64z00 = BUNSPEC;
	extern obj_t BGl_raisez00zz__errorz00(obj_t);
	BGL_EXPORTED_DECL obj_t BGl_base64zd2encodezd2zz__base64z00(obj_t, obj_t);
	static obj_t BGl_z62zc3z04anonymousza31965ze32350ze5zz__base64z00(obj_t,
		obj_t);
	static obj_t BGl_ignoreze70ze7zz__base64z00(obj_t, obj_t);
	extern obj_t BGl_typezd2errorzd2zz__errorz00(obj_t, obj_t, obj_t, obj_t,
		obj_t);
	BGL_EXPORTED_DECL obj_t BGl_modulezd2initializa7ationz75zz__base64z00(long,
		char *);
	extern obj_t BGl_modulezd2initializa7ationz75zz__paramz00(long, char *);
	static obj_t BGl_z62pemzd2readzd2filez62zz__base64z00(obj_t, obj_t);
	BGL_EXPORTED_DECL obj_t BGl_base64zd2decodezd2portz00zz__base64z00(obj_t,
		obj_t, obj_t);
	static obj_t BGl_z62zc3z04anonymousza31550ze3ze5zz__base64z00(obj_t, obj_t,
		long);
	static obj_t BGl__base64zd2decodezd2zz__base64z00(obj_t, obj_t);
	static obj_t BGl_toplevelzd2initzd2zz__base64z00(void);
	static obj_t BGl__base64zd2encodezd2portz00zz__base64z00(obj_t, obj_t);
	extern obj_t BGl_formatz00zz__r4_output_6_10_3z00(obj_t, obj_t);
	extern obj_t BGl_readzd2linezd2zz__r4_input_6_10_2z00(obj_t);
	extern obj_t BGl_z62iozd2parsezd2errorz62zz__objectz00;
	static obj_t BGl_genericzd2initzd2zz__base64z00(void);
	static obj_t BGl_importedzd2moduleszd2initz00zz__base64z00(void);
	static obj_t BGl_gczd2rootszd2initz00zz__base64z00(void);
	static obj_t BGl_z62zc3z04anonymousza31965ze3ze5zz__base64z00(obj_t, obj_t);
	static obj_t BGl_objectzd2initzd2zz__base64z00(void);
	extern bool_t bigloo_strcmp_at(obj_t, obj_t, long);
	BGL_EXPORTED_DECL obj_t BGl_pemzd2decodezd2portz00zz__base64z00(obj_t, obj_t);
	static obj_t BGl_z62pemzd2decodezd2portz62zz__base64z00(obj_t, obj_t, obj_t);
	static long BGl_actualzd2stringzd2lengthz00zz__base64z00(obj_t);
	BGL_EXPORTED_DECL obj_t BGl_base64zd2decodezd2zz__base64z00(obj_t, obj_t);
	extern obj_t BGl_classzd2fieldzd2defaultzd2valuezd2zz__objectz00(obj_t);
	static obj_t BGl__base64zd2decodezd2portz00zz__base64z00(obj_t, obj_t);
	extern obj_t c_substring(obj_t, long, long);
	static obj_t BGl_z62zc3z04anonymousza31969ze3ze5zz__base64z00(obj_t, obj_t);
	static obj_t BGl_methodzd2initzd2zz__base64z00(void);
	extern bool_t rgc_buffer_eof2_p(obj_t, long, long);
	extern bool_t rgc_fill_buffer(obj_t);
	static obj_t BGl__base64zd2encodezd2zz__base64z00(obj_t, obj_t);
	extern obj_t make_string(long, unsigned char);
	extern obj_t BGl_withzd2inputzd2fromzd2filezd2zz__r4_ports_6_10_1z00(obj_t,
		obj_t);
	extern obj_t BGl_openzd2outputzd2stringz00zz__r4_ports_6_10_1z00(obj_t);
	extern obj_t BGl_readzd2bytezd2zz__r4_input_6_10_2z00(obj_t);
	static obj_t BGl_base64zd2decodezd2grammarz00zz__base64z00 = BUNSPEC;
	BGL_EXPORTED_DECL obj_t BGl_base64zd2encodezd2portz00zz__base64z00(obj_t,
		obj_t, obj_t);
	static obj_t BGl_pemzd2markupzd2grammarz00zz__base64z00 = BUNSPEC;
	extern obj_t rgc_buffer_substring(obj_t, long, long);
	BGL_EXPORTED_DECL obj_t BGl_pemzd2readzd2filez00zz__base64z00(obj_t);
	static obj_t BGl_z62zc3z04anonymousza32001ze3ze5zz__base64z00(obj_t);
	extern obj_t BGl_errorz00zz__errorz00(obj_t, obj_t, obj_t);
	extern obj_t bgl_close_output_port(obj_t);
	static obj_t BGl_z62zc3z04anonymousza31263ze3ze5zz__base64z00(obj_t, obj_t,
		obj_t, obj_t, long, long, obj_t, bool_t);
	static obj_t *__cnst;


	   
		 
		DEFINE_EXPORT_BGL_PROCEDURE(BGl_base64zd2encodezd2envz00zz__base64z00,
		BgL_bgl__base64za7d2encode2436za7, opt_generic_entry,
		BGl__base64zd2encodezd2zz__base64z00, BFALSE, -1);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_base64zd2decodezd2portzd2envzd2zz__base64z00,
		BgL_bgl__base64za7d2decode2437za7, opt_generic_entry,
		BGl__base64zd2decodezd2portz00zz__base64z00, BFALSE, -1);
	      BGL_DEFINE_STRING(BGl_string2409z00zz__base64z00,
		BgL_bgl_string2409za700za7za7_2438za7, "pem-decode-port", 15);
	      BGL_DEFINE_STRING(BGl_string2410z00zz__base64z00,
		BgL_bgl_string2410za700za7za7_2439za7, "Illegal character in PEM markup",
		31);
	      BGL_DEFINE_STRING(BGl_string2411z00zz__base64z00,
		BgL_bgl_string2411za700za7za7_2440za7, "{~a}~a", 6);
	      BGL_DEFINE_STRING(BGl_string2412z00zz__base64z00,
		BgL_bgl_string2412za700za7za7_2441za7, "Illegal PEM markup", 18);
	      BGL_DEFINE_STRING(BGl_string2413z00zz__base64z00,
		BgL_bgl_string2413za700za7za7_2442za7, "regular-grammar", 15);
	      BGL_DEFINE_STRING(BGl_string2414z00zz__base64z00,
		BgL_bgl_string2414za700za7za7_2443za7, "Illegal match", 13);
	      BGL_DEFINE_STRING(BGl_string2415z00zz__base64z00,
		BgL_bgl_string2415za700za7za7_2444za7,
		"/tmp/bigloo/runtime/Unsafe/base64.scm", 37);
	      BGL_DEFINE_STRING(BGl_string2416z00zz__base64z00,
		BgL_bgl_string2416za700za7za7_2445za7, "_base64-encode", 14);
	      BGL_DEFINE_STRING(BGl_string2417z00zz__base64z00,
		BgL_bgl_string2417za700za7za7_2446za7, "vector", 6);
	      BGL_DEFINE_STRING(BGl_string2418z00zz__base64z00,
		BgL_bgl_string2418za700za7za7_2447za7, "bstring", 7);
	      BGL_DEFINE_STRING(BGl_string2419z00zz__base64z00,
		BgL_bgl_string2419za700za7za7_2448za7,
		"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", 64);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_base64zd2encodezd2portzd2envzd2zz__base64z00,
		BgL_bgl__base64za7d2encode2449za7, opt_generic_entry,
		BGl__base64zd2encodezd2portz00zz__base64z00, BFALSE, -1);
	      BGL_DEFINE_STRING(BGl_string2420z00zz__base64z00,
		BgL_bgl_string2420za700za7za7_2450za7, "_base64-encode-port", 19);
	      BGL_DEFINE_STRING(BGl_string2421z00zz__base64z00,
		BgL_bgl_string2421za700za7za7_2451za7, "input-port", 10);
	      BGL_DEFINE_STRING(BGl_string2422z00zz__base64z00,
		BgL_bgl_string2422za700za7za7_2452za7, "output-port", 11);
	      BGL_DEFINE_STRING(BGl_string2423z00zz__base64z00,
		BgL_bgl_string2423za700za7za7_2453za7, "_base64-decode", 14);
	      BGL_DEFINE_STRING(BGl_string2424z00zz__base64z00,
		BgL_bgl_string2424za700za7za7_2454za7, "_base64-decode-port", 19);
	      BGL_DEFINE_STRING(BGl_string2428z00zz__base64z00,
		BgL_bgl_string2428za700za7za7_2455za7, "BEGIN ", 6);
	      BGL_DEFINE_STRING(BGl_string2429z00zz__base64z00,
		BgL_bgl_string2429za700za7za7_2456za7, "Illegal PEM begin markup", 24);
	      BGL_DEFINE_STRING(BGl_string2430z00zz__base64z00,
		BgL_bgl_string2430za700za7za7_2457za7, "&pem-decode-port", 16);
	      BGL_DEFINE_STRING(BGl_string2431z00zz__base64z00,
		BgL_bgl_string2431za700za7za7_2458za7, "END ", 4);
	      BGL_DEFINE_L_PROCEDURE(BGl_proc2425z00zz__base64z00,
		BgL_bgl_za762za7c3za704anonymo2459za7,
		BGl_z62zc3z04anonymousza31965ze32349ze5zz__base64z00);
	      BGL_DEFINE_STRING(BGl_string2432z00zz__base64z00,
		BgL_bgl_string2432za700za7za7_2460za7, "PEM begin/end markup mismatch", 29);
	      BGL_DEFINE_L_PROCEDURE(BGl_proc2426z00zz__base64z00,
		BgL_bgl_za762za7c3za704anonymo2461za7,
		BGl_z62zc3z04anonymousza31965ze3ze5zz__base64z00);
	      BGL_DEFINE_STRING(BGl_string2433z00zz__base64z00,
		BgL_bgl_string2433za700za7za7_2462za7, "Illegal character", 17);
	      BGL_DEFINE_L_PROCEDURE(BGl_proc2427z00zz__base64z00,
		BgL_bgl_za762za7c3za704anonymo2463za7,
		BGl_z62zc3z04anonymousza31965ze32350ze5zz__base64z00);
	      BGL_DEFINE_STRING(BGl_string2434z00zz__base64z00,
		BgL_bgl_string2434za700za7za7_2464za7, "&pem-read-file", 14);
	      BGL_DEFINE_STRING(BGl_string2435z00zz__base64z00,
		BgL_bgl_string2435za700za7za7_2465za7, "__base64", 8);
	     
		DEFINE_EXPORT_BGL_PROCEDURE(BGl_pemzd2decodezd2portzd2envzd2zz__base64z00,
		BgL_bgl_za762pemza7d2decodeza72466za7,
		BGl_z62pemzd2decodezd2portz62zz__base64z00, 0L, BUNSPEC, 2);
	      DEFINE_EXPORT_BGL_PROCEDURE(BGl_pemzd2readzd2filezd2envzd2zz__base64z00,
		BgL_bgl_za762pemza7d2readza7d22467za7,
		BGl_z62pemzd2readzd2filez62zz__base64z00, 0L, BUNSPEC, 1);
	      DEFINE_EXPORT_BGL_PROCEDURE(BGl_base64zd2decodezd2envz00zz__base64z00,
		BgL_bgl__base64za7d2decode2468za7, opt_generic_entry,
		BGl__base64zd2decodezd2zz__base64z00, BFALSE, -1);

/* contant bindings */
	static void bgl_constant_bindings()
	{
		BGL_BIND_PROCEDURE(BGl_base64zd2decodezd2envz00zz__base64z00,
			BgL_bgl__base64za7d2decode2468za7);
		BGL_BIND_PROCEDURE(BGl_pemzd2readzd2filezd2envzd2zz__base64z00,
			BgL_bgl_za762pemza7d2readza7d22467za7);
		BGL_BIND_PROCEDURE(BGl_pemzd2decodezd2portzd2envzd2zz__base64z00,
			BgL_bgl_za762pemza7d2decodeza72466za7);
		BGL_BIND_STRING(BGl_string2435z00zz__base64z00,
			BgL_bgl_string2435za700za7za7_2465za7);
		BGL_BIND_STRING(BGl_string2434z00zz__base64z00,
			BgL_bgl_string2434za700za7za7_2464za7);
		BGL_BIND_L_PROCEDURE(BGl_proc2427z00zz__base64z00,
			BgL_bgl_za762za7c3za704anonymo2463za7);
		BGL_BIND_STRING(BGl_string2433z00zz__base64z00,
			BgL_bgl_string2433za700za7za7_2462za7);
		BGL_BIND_L_PROCEDURE(BGl_proc2426z00zz__base64z00,
			BgL_bgl_za762za7c3za704anonymo2461za7);
		BGL_BIND_STRING(BGl_string2432z00zz__base64z00,
			BgL_bgl_string2432za700za7za7_2460za7);
		BGL_BIND_L_PROCEDURE(BGl_proc2425z00zz__base64z00,
			BgL_bgl_za762za7c3za704anonymo2459za7);
		BGL_BIND_STRING(BGl_string2431z00zz__base64z00,
			BgL_bgl_string2431za700za7za7_2458za7);
		BGL_BIND_STRING(BGl_string2430z00zz__base64z00,
			BgL_bgl_string2430za700za7za7_2457za7);
		BGL_BIND_STRING(BGl_string2429z00zz__base64z00,
			BgL_bgl_string2429za700za7za7_2456za7);
		BGL_BIND_STRING(BGl_string2428z00zz__base64z00,
			BgL_bgl_string2428za700za7za7_2455za7);
		BGL_BIND_STRING(BGl_string2424z00zz__base64z00,
			BgL_bgl_string2424za700za7za7_2454za7);
		BGL_BIND_STRING(BGl_string2423z00zz__base64z00,
			BgL_bgl_string2423za700za7za7_2453za7);
		BGL_BIND_STRING(BGl_string2422z00zz__base64z00,
			BgL_bgl_string2422za700za7za7_2452za7);
		BGL_BIND_STRING(BGl_string2421z00zz__base64z00,
			BgL_bgl_string2421za700za7za7_2451za7);
		BGL_BIND_STRING(BGl_string2420z00zz__base64z00,
			BgL_bgl_string2420za700za7za7_2450za7);
		BGL_BIND_PROCEDURE(BGl_base64zd2encodezd2portzd2envzd2zz__base64z00,
			BgL_bgl__base64za7d2encode2449za7);
		BGL_BIND_STRING(BGl_string2419z00zz__base64z00,
			BgL_bgl_string2419za700za7za7_2448za7);
		BGL_BIND_STRING(BGl_string2418z00zz__base64z00,
			BgL_bgl_string2418za700za7za7_2447za7);
		BGL_BIND_STRING(BGl_string2417z00zz__base64z00,
			BgL_bgl_string2417za700za7za7_2446za7);
		BGL_BIND_STRING(BGl_string2416z00zz__base64z00,
			BgL_bgl_string2416za700za7za7_2445za7);
		BGL_BIND_STRING(BGl_string2415z00zz__base64z00,
			BgL_bgl_string2415za700za7za7_2444za7);
		BGL_BIND_STRING(BGl_string2414z00zz__base64z00,
			BgL_bgl_string2414za700za7za7_2443za7);
		BGL_BIND_STRING(BGl_string2413z00zz__base64z00,
			BgL_bgl_string2413za700za7za7_2442za7);
		BGL_BIND_STRING(BGl_string2412z00zz__base64z00,
			BgL_bgl_string2412za700za7za7_2441za7);
		BGL_BIND_STRING(BGl_string2411z00zz__base64z00,
			BgL_bgl_string2411za700za7za7_2440za7);
		BGL_BIND_STRING(BGl_string2410z00zz__base64z00,
			BgL_bgl_string2410za700za7za7_2439za7);
		BGL_BIND_STRING(BGl_string2409z00zz__base64z00,
			BgL_bgl_string2409za700za7za7_2438za7);
		BGL_BIND_PROCEDURE(BGl_base64zd2decodezd2portzd2envzd2zz__base64z00,
			BgL_bgl__base64za7d2decode2437za7);
		BGL_BIND_PROCEDURE(BGl_base64zd2encodezd2envz00zz__base64z00,
			BgL_bgl__base64za7d2encode2436za7);
	}

/* GC roots registration */
	static obj_t bgl_gc_roots_register()
	{
#if defined( BGL_GC_ROOTS )
#define ADD_ROOT( addr ) (addr > roots_max ? roots_max = addr : (addr < roots_min ? roots_min = addr : 0))
		void *roots_min = (void *) ULONG_MAX, *roots_max = 0;

		ADD_ROOT((void *) (&BGl_bytezd2tablezd2zz__base64z00));
		ADD_ROOT((void *) (&BGl_requirezd2initializa7ationz75zz__base64z00));
		ADD_ROOT((void *) (&BGl_base64zd2decodezd2grammarz00zz__base64z00));
		ADD_ROOT((void *) (&BGl_pemzd2markupzd2grammarz00zz__base64z00));
#undef ADD_ROOT
		if (roots_max > 0)
			GC_add_roots(roots_min, ((void **) roots_max) + 1);
#endif
		return BUNSPEC;
	}



/* module-initialization */
	BGL_EXPORTED_DEF obj_t BGl_modulezd2initializa7ationz75zz__base64z00(long
		BgL_checksumz00_4600, char *BgL_fromz00_4601)
	{
		{
			if (CBOOL(BGl_requirezd2initializa7ationz75zz__base64z00))
				{
					BGl_requirezd2initializa7ationz75zz__base64z00 = BBOOL(((bool_t) 0));
					bgl_constant_bindings();
					BGl_gczd2rootszd2initz00zz__base64z00();
					BGl_importedzd2moduleszd2initz00zz__base64z00();
					return BGl_toplevelzd2initzd2zz__base64z00();
				}
			else
				{
					return BUNSPEC;
				}
		}

	}



/* gc-roots-init */
	obj_t BGl_gczd2rootszd2initz00zz__base64z00(void)
	{
		{	/* Unsafe/base64.scm 15 */
			return bgl_gc_roots_register();
		}

	}



/* toplevel-init */
	obj_t BGl_toplevelzd2initzd2zz__base64z00(void)
	{
		{	/* Unsafe/base64.scm 15 */
			{	/* Unsafe/base64.scm 173 */
				obj_t BgL_tablez00_1258;

				BgL_tablez00_1258 =
					BGl_makezd2u8vectorzd2zz__srfi4z00(128L, (uint8_t) (0L));
				{
					long BgL_iz00_1261;

					BgL_iz00_1261 = 0L;
				BgL_zc3z04anonymousza31246ze3z87_1262:
					if ((BgL_iz00_1261 < 26L))
						{	/* Unsafe/base64.scm 177 */
							{	/* Unsafe/base64.scm 178 */
								long BgL_arg1248z00_1264;

								BgL_arg1248z00_1264 = (BgL_iz00_1261 + 65L);
								{	/* Unsafe/base64.scm 175 */
									uint8_t BgL_tmpz00_4615;

									BgL_tmpz00_4615 = (uint8_t) (BgL_iz00_1261);
									BGL_U8VSET(BgL_tablez00_1258, BgL_arg1248z00_1264,
										BgL_tmpz00_4615);
								} BUNSPEC;
							}
							{	/* Unsafe/base64.scm 179 */
								long BgL_arg1249z00_1265;
								long BgL_arg1252z00_1266;

								BgL_arg1249z00_1265 = (BgL_iz00_1261 + 97L);
								BgL_arg1252z00_1266 = (BgL_iz00_1261 + 26L);
								{	/* Unsafe/base64.scm 175 */
									uint8_t BgL_tmpz00_4620;

									BgL_tmpz00_4620 = (uint8_t) (BgL_arg1252z00_1266);
									BGL_U8VSET(BgL_tablez00_1258, BgL_arg1249z00_1265,
										BgL_tmpz00_4620);
								} BUNSPEC;
							}
							{
								long BgL_iz00_4623;

								BgL_iz00_4623 = (BgL_iz00_1261 + 1L);
								BgL_iz00_1261 = BgL_iz00_4623;
								goto BgL_zc3z04anonymousza31246ze3z87_1262;
							}
						}
					else
						{	/* Unsafe/base64.scm 177 */
							((bool_t) 0);
						}
				}
				{
					long BgL_iz00_2917;

					BgL_iz00_2917 = 0L;
				BgL_loopz00_2916:
					if ((BgL_iz00_2917 < 10L))
						{	/* Unsafe/base64.scm 182 */
							{	/* Unsafe/base64.scm 183 */
								long BgL_arg1258z00_2920;
								long BgL_arg1259z00_2921;

								BgL_arg1258z00_2920 = (BgL_iz00_2917 + 48L);
								BgL_arg1259z00_2921 = (BgL_iz00_2917 + 52L);
								{	/* Unsafe/base64.scm 175 */
									uint8_t BgL_tmpz00_4629;

									BgL_tmpz00_4629 = (uint8_t) (BgL_arg1259z00_2921);
									BGL_U8VSET(BgL_tablez00_1258, BgL_arg1258z00_2920,
										BgL_tmpz00_4629);
								} BUNSPEC;
							}
							{
								long BgL_iz00_4632;

								BgL_iz00_4632 = (BgL_iz00_2917 + 1L);
								BgL_iz00_2917 = BgL_iz00_4632;
								goto BgL_loopz00_2916;
							}
						}
					else
						{	/* Unsafe/base64.scm 182 */
							((bool_t) 0);
						}
				}
				{	/* Unsafe/base64.scm 175 */
					uint8_t BgL_tmpz00_4634;

					BgL_tmpz00_4634 = (uint8_t) (62L);
					BGL_U8VSET(BgL_tablez00_1258, 43L, BgL_tmpz00_4634);
				}
				BUNSPEC;
				{	/* Unsafe/base64.scm 175 */
					uint8_t BgL_tmpz00_4637;

					BgL_tmpz00_4637 = (uint8_t) (62L);
					BGL_U8VSET(BgL_tablez00_1258, 45L, BgL_tmpz00_4637);
				}
				BUNSPEC;
				{	/* Unsafe/base64.scm 175 */
					uint8_t BgL_tmpz00_4640;

					BgL_tmpz00_4640 = (uint8_t) (63L);
					BGL_U8VSET(BgL_tablez00_1258, 47L, BgL_tmpz00_4640);
				}
				BUNSPEC;
				{	/* Unsafe/base64.scm 175 */
					uint8_t BgL_tmpz00_4643;

					BgL_tmpz00_4643 = (uint8_t) (63L);
					BGL_U8VSET(BgL_tablez00_1258, 95L, BgL_tmpz00_4643);
				}
				BUNSPEC;
				BGl_bytezd2tablezd2zz__base64z00 = BgL_tablez00_1258;
			}
			{	/* Unsafe/base64.scm 300 */
				obj_t BgL_zc3z04anonymousza31263ze3z87_4277;

				{
					int BgL_tmpz00_4646;

					BgL_tmpz00_4646 = (int) (0L);
					BgL_zc3z04anonymousza31263ze3z87_4277 =
						MAKE_EL_PROCEDURE(BgL_tmpz00_4646);
				}
				BGl_base64zd2decodezd2grammarz00zz__base64z00 =
					BgL_zc3z04anonymousza31263ze3z87_4277;
			}
			{	/* Unsafe/base64.scm 388 */
				obj_t BgL_zc3z04anonymousza31550ze3z87_4276;

				{
					int BgL_tmpz00_4649;

					BgL_tmpz00_4649 = (int) (0L);
					BgL_zc3z04anonymousza31550ze3z87_4276 =
						MAKE_EL_PROCEDURE(BgL_tmpz00_4649);
				}
				return (BGl_pemzd2markupzd2grammarz00zz__base64z00 =
					BgL_zc3z04anonymousza31550ze3z87_4276, BUNSPEC);
			}
		}

	}



/* &<@anonymous:1550> */
	obj_t BGl_z62zc3z04anonymousza31550ze3ze5zz__base64z00(obj_t BgL_envz00_4278,
		obj_t BgL_iportz00_4279, long BgL_countz00_4280)
	{
		{	/* Unsafe/base64.scm 388 */
			{	/* Unsafe/base64.scm 388 */
				obj_t BgL_countz00_4374;

				BgL_countz00_4374 = BINT(BgL_countz00_4280);
				{	/* Unsafe/base64.scm 388 */
					struct bgl_unsafe_cell BgL_box2472_4375z00;
					obj_t BgL_countz00_4375;

					BgL_countz00_4375 =
						BGL_MAKE_UNSAFE_CELL_STACK(BgL_countz00_4374, BgL_box2472_4375z00);
					return
						BGl_ignoreze70ze7zz__base64z00(BgL_countz00_4375,
						BgL_iportz00_4279);
				}
			}
		}

	}



/* ignore~0 */
	obj_t BGl_ignoreze70ze7zz__base64z00(obj_t BgL_countz00_4312,
		obj_t BgL_iportz00_4311)
	{
		{	/* Unsafe/base64.scm 388 */
		BGl_ignoreze70ze7zz__base64z00:
			{
				obj_t BgL_iportz00_1911;
				long BgL_lastzd2matchzd2_1912;
				long BgL_forwardz00_1913;
				long BgL_bufposz00_1914;
				obj_t BgL_iportz00_1896;
				long BgL_lastzd2matchzd2_1897;
				long BgL_forwardz00_1898;
				long BgL_bufposz00_1899;
				obj_t BgL_iportz00_1873;
				long BgL_lastzd2matchzd2_1874;
				long BgL_forwardz00_1875;
				long BgL_bufposz00_1876;
				obj_t BgL_iportz00_1852;
				long BgL_lastzd2matchzd2_1853;
				long BgL_forwardz00_1854;
				long BgL_bufposz00_1855;
				obj_t BgL_iportz00_1835;
				long BgL_lastzd2matchzd2_1836;
				long BgL_forwardz00_1837;
				long BgL_bufposz00_1838;

				RGC_START_MATCH(BgL_iportz00_4311);
				{	/* Unsafe/base64.scm 388 */
					long BgL_matchz00_2047;

					{	/* Unsafe/base64.scm 388 */
						long BgL_arg1735z00_2074;
						long BgL_arg1739z00_2075;

						BgL_arg1735z00_2074 = RGC_BUFFER_FORWARD(BgL_iportz00_4311);
						BgL_arg1739z00_2075 = RGC_BUFFER_BUFPOS(BgL_iportz00_4311);
						BgL_iportz00_1911 = BgL_iportz00_4311;
						BgL_lastzd2matchzd2_1912 = 3L;
						BgL_forwardz00_1913 = BgL_arg1735z00_2074;
						BgL_bufposz00_1914 = BgL_arg1739z00_2075;
					BgL_zc3z04anonymousza31598ze3z87_1915:
						if ((BgL_forwardz00_1913 == BgL_bufposz00_1914))
							{	/* Unsafe/base64.scm 388 */
								if (rgc_fill_buffer(BgL_iportz00_1911))
									{	/* Unsafe/base64.scm 388 */
										long BgL_arg1602z00_1918;
										long BgL_arg1603z00_1919;

										BgL_arg1602z00_1918 = RGC_BUFFER_FORWARD(BgL_iportz00_1911);
										BgL_arg1603z00_1919 = RGC_BUFFER_BUFPOS(BgL_iportz00_1911);
										{
											long BgL_bufposz00_4664;
											long BgL_forwardz00_4663;

											BgL_forwardz00_4663 = BgL_arg1602z00_1918;
											BgL_bufposz00_4664 = BgL_arg1603z00_1919;
											BgL_bufposz00_1914 = BgL_bufposz00_4664;
											BgL_forwardz00_1913 = BgL_forwardz00_4663;
											goto BgL_zc3z04anonymousza31598ze3z87_1915;
										}
									}
								else
									{	/* Unsafe/base64.scm 388 */
										BgL_matchz00_2047 = BgL_lastzd2matchzd2_1912;
									}
							}
						else
							{	/* Unsafe/base64.scm 388 */
								int BgL_curz00_1920;

								BgL_curz00_1920 =
									RGC_BUFFER_GET_CHAR(BgL_iportz00_1911, BgL_forwardz00_1913);
								{	/* Unsafe/base64.scm 388 */

									if (((long) (BgL_curz00_1920) == 45L))
										{	/* Unsafe/base64.scm 388 */
											BgL_iportz00_1852 = BgL_iportz00_1911;
											BgL_lastzd2matchzd2_1853 = BgL_lastzd2matchzd2_1912;
											BgL_forwardz00_1854 = (1L + BgL_forwardz00_1913);
											BgL_bufposz00_1855 = BgL_bufposz00_1914;
										BgL_zc3z04anonymousza31560ze3z87_1856:
											{	/* Unsafe/base64.scm 388 */
												long BgL_newzd2matchzd2_1857;

												RGC_STOP_MATCH(BgL_iportz00_1852, BgL_forwardz00_1854);
												BgL_newzd2matchzd2_1857 = 0L;
												if ((BgL_forwardz00_1854 == BgL_bufposz00_1855))
													{	/* Unsafe/base64.scm 388 */
														if (rgc_fill_buffer(BgL_iportz00_1852))
															{	/* Unsafe/base64.scm 388 */
																long BgL_arg1563z00_1860;
																long BgL_arg1565z00_1861;

																BgL_arg1563z00_1860 =
																	RGC_BUFFER_FORWARD(BgL_iportz00_1852);
																BgL_arg1565z00_1861 =
																	RGC_BUFFER_BUFPOS(BgL_iportz00_1852);
																{
																	long BgL_bufposz00_4677;
																	long BgL_forwardz00_4676;

																	BgL_forwardz00_4676 = BgL_arg1563z00_1860;
																	BgL_bufposz00_4677 = BgL_arg1565z00_1861;
																	BgL_bufposz00_1855 = BgL_bufposz00_4677;
																	BgL_forwardz00_1854 = BgL_forwardz00_4676;
																	goto BgL_zc3z04anonymousza31560ze3z87_1856;
																}
															}
														else
															{	/* Unsafe/base64.scm 388 */
																BgL_matchz00_2047 = BgL_newzd2matchzd2_1857;
															}
													}
												else
													{	/* Unsafe/base64.scm 388 */
														int BgL_curz00_1862;

														BgL_curz00_1862 =
															RGC_BUFFER_GET_CHAR(BgL_iportz00_1852,
															BgL_forwardz00_1854);
														{	/* Unsafe/base64.scm 388 */

															if (((long) (BgL_curz00_1862) == 45L))
																{	/* Unsafe/base64.scm 388 */
																	BgL_iportz00_1896 = BgL_iportz00_1852;
																	BgL_lastzd2matchzd2_1897 =
																		BgL_newzd2matchzd2_1857;
																	BgL_forwardz00_1898 =
																		(1L + BgL_forwardz00_1854);
																	BgL_bufposz00_1899 = BgL_bufposz00_1855;
																BgL_zc3z04anonymousza31586ze3z87_1900:
																	{	/* Unsafe/base64.scm 388 */
																		long BgL_newzd2matchzd2_1901;

																		RGC_STOP_MATCH(BgL_iportz00_1896,
																			BgL_forwardz00_1898);
																		BgL_newzd2matchzd2_1901 = 0L;
																		if (
																			(BgL_forwardz00_1898 ==
																				BgL_bufposz00_1899))
																			{	/* Unsafe/base64.scm 388 */
																				if (rgc_fill_buffer(BgL_iportz00_1896))
																					{	/* Unsafe/base64.scm 388 */
																						long BgL_arg1592z00_1904;
																						long BgL_arg1593z00_1905;

																						BgL_arg1592z00_1904 =
																							RGC_BUFFER_FORWARD
																							(BgL_iportz00_1896);
																						BgL_arg1593z00_1905 =
																							RGC_BUFFER_BUFPOS
																							(BgL_iportz00_1896);
																						{
																							long BgL_bufposz00_4690;
																							long BgL_forwardz00_4689;

																							BgL_forwardz00_4689 =
																								BgL_arg1592z00_1904;
																							BgL_bufposz00_4690 =
																								BgL_arg1593z00_1905;
																							BgL_bufposz00_1899 =
																								BgL_bufposz00_4690;
																							BgL_forwardz00_1898 =
																								BgL_forwardz00_4689;
																							goto
																								BgL_zc3z04anonymousza31586ze3z87_1900;
																						}
																					}
																				else
																					{	/* Unsafe/base64.scm 388 */
																						BgL_matchz00_2047 =
																							BgL_newzd2matchzd2_1901;
																					}
																			}
																		else
																			{	/* Unsafe/base64.scm 388 */
																				int BgL_curz00_1906;

																				BgL_curz00_1906 =
																					RGC_BUFFER_GET_CHAR(BgL_iportz00_1896,
																					BgL_forwardz00_1898);
																				{	/* Unsafe/base64.scm 388 */

																					if (((long) (BgL_curz00_1906) == 45L))
																						{
																							long BgL_forwardz00_4696;
																							long BgL_lastzd2matchzd2_4695;

																							BgL_lastzd2matchzd2_4695 =
																								BgL_newzd2matchzd2_1901;
																							BgL_forwardz00_4696 =
																								(1L + BgL_forwardz00_1898);
																							BgL_forwardz00_1898 =
																								BgL_forwardz00_4696;
																							BgL_lastzd2matchzd2_1897 =
																								BgL_lastzd2matchzd2_4695;
																							goto
																								BgL_zc3z04anonymousza31586ze3z87_1900;
																						}
																					else
																						{	/* Unsafe/base64.scm 388 */
																							if (
																								((long) (BgL_curz00_1906) ==
																									10L))
																								{	/* Unsafe/base64.scm 388 */
																									long BgL_arg1597z00_1910;

																									BgL_arg1597z00_1910 =
																										(1L + BgL_forwardz00_1898);
																									{	/* Unsafe/base64.scm 388 */
																										long
																											BgL_newzd2matchzd2_3422;
																										RGC_STOP_MATCH
																											(BgL_iportz00_1896,
																											BgL_arg1597z00_1910);
																										BgL_newzd2matchzd2_3422 =
																											1L;
																										BgL_matchz00_2047 =
																											BgL_newzd2matchzd2_3422;
																								}}
																							else
																								{	/* Unsafe/base64.scm 388 */
																									BgL_matchz00_2047 =
																										BgL_newzd2matchzd2_1901;
																								}
																						}
																				}
																			}
																	}
																}
															else
																{	/* Unsafe/base64.scm 388 */
																	if (((long) (BgL_curz00_1862) == 10L))
																		{	/* Unsafe/base64.scm 388 */
																			long BgL_arg1573z00_1866;

																			BgL_arg1573z00_1866 =
																				(1L + BgL_forwardz00_1854);
																			{	/* Unsafe/base64.scm 388 */
																				long BgL_newzd2matchzd2_3387;

																				RGC_STOP_MATCH(BgL_iportz00_1852,
																					BgL_arg1573z00_1866);
																				BgL_newzd2matchzd2_3387 = 1L;
																				BgL_matchz00_2047 =
																					BgL_newzd2matchzd2_3387;
																		}}
																	else
																		{	/* Unsafe/base64.scm 388 */
																			BgL_matchz00_2047 =
																				BgL_newzd2matchzd2_1857;
																		}
																}
														}
													}
											}
										}
									else
										{	/* Unsafe/base64.scm 388 */
											bool_t BgL_test2484z00_4710;

											if (((long) (BgL_curz00_1920) == 10L))
												{	/* Unsafe/base64.scm 388 */
													BgL_test2484z00_4710 = ((bool_t) 1);
												}
											else
												{	/* Unsafe/base64.scm 388 */
													BgL_test2484z00_4710 =
														((long) (BgL_curz00_1920) == 13L);
												}
											if (BgL_test2484z00_4710)
												{	/* Unsafe/base64.scm 388 */
													long BgL_arg1608z00_1925;

													BgL_arg1608z00_1925 = (1L + BgL_forwardz00_1913);
													{	/* Unsafe/base64.scm 388 */
														long BgL_newzd2matchzd2_3437;

														RGC_STOP_MATCH(BgL_iportz00_1911,
															BgL_arg1608z00_1925);
														BgL_newzd2matchzd2_3437 = 3L;
														BgL_matchz00_2047 = BgL_newzd2matchzd2_3437;
												}}
											else
												{	/* Unsafe/base64.scm 388 */
													BgL_iportz00_1873 = BgL_iportz00_1911;
													BgL_lastzd2matchzd2_1874 = BgL_lastzd2matchzd2_1912;
													BgL_forwardz00_1875 = (1L + BgL_forwardz00_1913);
													BgL_bufposz00_1876 = BgL_bufposz00_1914;
												BgL_zc3z04anonymousza31575ze3z87_1877:
													{	/* Unsafe/base64.scm 388 */
														long BgL_newzd2matchzd2_1878;

														RGC_STOP_MATCH(BgL_iportz00_1873,
															BgL_forwardz00_1875);
														BgL_newzd2matchzd2_1878 = 2L;
														if ((BgL_forwardz00_1875 == BgL_bufposz00_1876))
															{	/* Unsafe/base64.scm 388 */
																if (rgc_fill_buffer(BgL_iportz00_1873))
																	{	/* Unsafe/base64.scm 388 */
																		long BgL_arg1578z00_1881;
																		long BgL_arg1579z00_1882;

																		BgL_arg1578z00_1881 =
																			RGC_BUFFER_FORWARD(BgL_iportz00_1873);
																		BgL_arg1579z00_1882 =
																			RGC_BUFFER_BUFPOS(BgL_iportz00_1873);
																		{
																			long BgL_bufposz00_4726;
																			long BgL_forwardz00_4725;

																			BgL_forwardz00_4725 = BgL_arg1578z00_1881;
																			BgL_bufposz00_4726 = BgL_arg1579z00_1882;
																			BgL_bufposz00_1876 = BgL_bufposz00_4726;
																			BgL_forwardz00_1875 = BgL_forwardz00_4725;
																			goto
																				BgL_zc3z04anonymousza31575ze3z87_1877;
																		}
																	}
																else
																	{	/* Unsafe/base64.scm 388 */
																		BgL_matchz00_2047 = BgL_newzd2matchzd2_1878;
																	}
															}
														else
															{	/* Unsafe/base64.scm 388 */
																int BgL_curz00_1883;

																BgL_curz00_1883 =
																	RGC_BUFFER_GET_CHAR(BgL_iportz00_1873,
																	BgL_forwardz00_1875);
																{	/* Unsafe/base64.scm 388 */

																	{	/* Unsafe/base64.scm 388 */
																		bool_t BgL_test2488z00_4728;

																		if (((long) (BgL_curz00_1883) == 10L))
																			{	/* Unsafe/base64.scm 388 */
																				BgL_test2488z00_4728 = ((bool_t) 1);
																			}
																		else
																			{	/* Unsafe/base64.scm 388 */
																				if (((long) (BgL_curz00_1883) == 13L))
																					{	/* Unsafe/base64.scm 388 */
																						BgL_test2488z00_4728 = ((bool_t) 1);
																					}
																				else
																					{	/* Unsafe/base64.scm 388 */
																						BgL_test2488z00_4728 =
																							((long) (BgL_curz00_1883) == 45L);
																			}}
																		if (BgL_test2488z00_4728)
																			{	/* Unsafe/base64.scm 388 */
																				BgL_matchz00_2047 =
																					BgL_newzd2matchzd2_1878;
																			}
																		else
																			{	/* Unsafe/base64.scm 388 */
																				BgL_iportz00_1835 = BgL_iportz00_1873;
																				BgL_lastzd2matchzd2_1836 =
																					BgL_newzd2matchzd2_1878;
																				BgL_forwardz00_1837 =
																					(1L + BgL_forwardz00_1875);
																				BgL_bufposz00_1838 = BgL_bufposz00_1876;
																			BgL_zc3z04anonymousza31551ze3z87_1839:
																				{	/* Unsafe/base64.scm 388 */
																					long BgL_newzd2matchzd2_1840;

																					RGC_STOP_MATCH(BgL_iportz00_1835,
																						BgL_forwardz00_1837);
																					BgL_newzd2matchzd2_1840 = 2L;
																					if (
																						(BgL_forwardz00_1837 ==
																							BgL_bufposz00_1838))
																						{	/* Unsafe/base64.scm 388 */
																							if (rgc_fill_buffer
																								(BgL_iportz00_1835))
																								{	/* Unsafe/base64.scm 388 */
																									long BgL_arg1554z00_1843;
																									long BgL_arg1555z00_1844;

																									BgL_arg1554z00_1843 =
																										RGC_BUFFER_FORWARD
																										(BgL_iportz00_1835);
																									BgL_arg1555z00_1844 =
																										RGC_BUFFER_BUFPOS
																										(BgL_iportz00_1835);
																									{
																										long BgL_bufposz00_4745;
																										long BgL_forwardz00_4744;

																										BgL_forwardz00_4744 =
																											BgL_arg1554z00_1843;
																										BgL_bufposz00_4745 =
																											BgL_arg1555z00_1844;
																										BgL_bufposz00_1838 =
																											BgL_bufposz00_4745;
																										BgL_forwardz00_1837 =
																											BgL_forwardz00_4744;
																										goto
																											BgL_zc3z04anonymousza31551ze3z87_1839;
																									}
																								}
																							else
																								{	/* Unsafe/base64.scm 388 */
																									BgL_matchz00_2047 =
																										BgL_newzd2matchzd2_1840;
																								}
																						}
																					else
																						{	/* Unsafe/base64.scm 388 */
																							int BgL_curz00_1845;

																							BgL_curz00_1845 =
																								RGC_BUFFER_GET_CHAR
																								(BgL_iportz00_1835,
																								BgL_forwardz00_1837);
																							{	/* Unsafe/base64.scm 388 */

																								{	/* Unsafe/base64.scm 388 */
																									bool_t BgL_test2493z00_4747;

																									if (
																										((long) (BgL_curz00_1845) ==
																											10L))
																										{	/* Unsafe/base64.scm 388 */
																											BgL_test2493z00_4747 =
																												((bool_t) 1);
																										}
																									else
																										{	/* Unsafe/base64.scm 388 */
																											if (
																												((long)
																													(BgL_curz00_1845) ==
																													13L))
																												{	/* Unsafe/base64.scm 388 */
																													BgL_test2493z00_4747 =
																														((bool_t) 1);
																												}
																											else
																												{	/* Unsafe/base64.scm 388 */
																													BgL_test2493z00_4747 =
																														(
																														(long)
																														(BgL_curz00_1845) ==
																														45L);
																										}}
																									if (BgL_test2493z00_4747)
																										{	/* Unsafe/base64.scm 388 */
																											BgL_matchz00_2047 =
																												BgL_newzd2matchzd2_1840;
																										}
																									else
																										{
																											long BgL_forwardz00_4757;
																											long
																												BgL_lastzd2matchzd2_4756;
																											BgL_lastzd2matchzd2_4756 =
																												BgL_newzd2matchzd2_1840;
																											BgL_forwardz00_4757 =
																												(1L +
																												BgL_forwardz00_1837);
																											BgL_forwardz00_1837 =
																												BgL_forwardz00_4757;
																											BgL_lastzd2matchzd2_1836 =
																												BgL_lastzd2matchzd2_4756;
																											goto
																												BgL_zc3z04anonymousza31551ze3z87_1839;
																										}
																								}
																							}
																						}
																				}
																			}
																	}
																}
															}
													}
												}
										}
								}
							}
					}
					RGC_SET_FILEPOS(BgL_iportz00_4311);
					switch (BgL_matchz00_2047)
						{
						case 3L:

							{	/* Unsafe/base64.scm 404 */
								obj_t BgL_cz00_2050;

								{	/* Unsafe/base64.scm 388 */
									bool_t BgL_test2496z00_4762;

									{	/* Unsafe/base64.scm 388 */
										long BgL_arg1710z00_2037;

										BgL_arg1710z00_2037 =
											RGC_BUFFER_MATCH_LENGTH(BgL_iportz00_4311);
										BgL_test2496z00_4762 = (BgL_arg1710z00_2037 == 0L);
									}
									if (BgL_test2496z00_4762)
										{	/* Unsafe/base64.scm 388 */
											BgL_cz00_2050 = BEOF;
										}
									else
										{	/* Unsafe/base64.scm 388 */
											BgL_cz00_2050 =
												BCHAR(RGC_BUFFER_CHARACTER(BgL_iportz00_4311));
										}
								}
								{	/* Unsafe/base64.scm 405 */
									BgL_z62iozd2parsezd2errorz62_bglt BgL_arg1718z00_2051;

									{	/* Unsafe/base64.scm 405 */
										BgL_z62iozd2parsezd2errorz62_bglt BgL_new1078z00_2052;

										{	/* Unsafe/base64.scm 405 */
											BgL_z62iozd2parsezd2errorz62_bglt BgL_new1077z00_2059;

											BgL_new1077z00_2059 =
												((BgL_z62iozd2parsezd2errorz62_bglt)
												BOBJECT(GC_MALLOC(sizeof(struct
															BgL_z62iozd2parsezd2errorz62_bgl))));
											{	/* Unsafe/base64.scm 405 */
												long BgL_arg1725z00_2060;

												BgL_arg1725z00_2060 =
													BGL_CLASS_NUM
													(BGl_z62iozd2parsezd2errorz62zz__objectz00);
												BGL_OBJECT_CLASS_NUM_SET(((BgL_objectz00_bglt)
														BgL_new1077z00_2059), BgL_arg1725z00_2060);
											}
											BgL_new1078z00_2052 = BgL_new1077z00_2059;
										}
										((((BgL_z62exceptionz62_bglt) COBJECT(
														((BgL_z62exceptionz62_bglt) BgL_new1078z00_2052)))->
												BgL_fnamez00) = ((obj_t) BFALSE), BUNSPEC);
										((((BgL_z62exceptionz62_bglt)
													COBJECT(((BgL_z62exceptionz62_bglt)
															BgL_new1078z00_2052)))->BgL_locationz00) =
											((obj_t) BFALSE), BUNSPEC);
										{
											obj_t BgL_auxz00_4775;

											{	/* Unsafe/base64.scm 405 */
												obj_t BgL_arg1719z00_2053;

												{	/* Unsafe/base64.scm 405 */
													obj_t BgL_arg1720z00_2054;

													{	/* Unsafe/base64.scm 405 */
														obj_t BgL_classz00_3456;

														BgL_classz00_3456 =
															BGl_z62iozd2parsezd2errorz62zz__objectz00;
														BgL_arg1720z00_2054 =
															BGL_CLASS_ALL_FIELDS(BgL_classz00_3456);
													}
													BgL_arg1719z00_2053 =
														VECTOR_REF(BgL_arg1720z00_2054, 2L);
												}
												BgL_auxz00_4775 =
													BGl_classzd2fieldzd2defaultzd2valuezd2zz__objectz00
													(BgL_arg1719z00_2053);
											}
											((((BgL_z62exceptionz62_bglt) COBJECT(
															((BgL_z62exceptionz62_bglt)
																BgL_new1078z00_2052)))->BgL_stackz00) =
												((obj_t) BgL_auxz00_4775), BUNSPEC);
										}
										((((BgL_z62errorz62_bglt) COBJECT(
														((BgL_z62errorz62_bglt) BgL_new1078z00_2052)))->
												BgL_procz00) =
											((obj_t) BGl_string2409z00zz__base64z00), BUNSPEC);
										((((BgL_z62errorz62_bglt) COBJECT(((BgL_z62errorz62_bglt)
															BgL_new1078z00_2052)))->BgL_msgz00) =
											((obj_t) BGl_string2410z00zz__base64z00), BUNSPEC);
										{
											obj_t BgL_auxz00_4785;

											{	/* Unsafe/base64.scm 408 */
												obj_t BgL_arg1721z00_2055;

												BgL_arg1721z00_2055 =
													BGl_readzd2linezd2zz__r4_input_6_10_2z00
													(BgL_iportz00_4311);
												{	/* Unsafe/base64.scm 408 */
													obj_t BgL_list1722z00_2056;

													{	/* Unsafe/base64.scm 408 */
														obj_t BgL_arg1723z00_2057;

														BgL_arg1723z00_2057 =
															MAKE_YOUNG_PAIR(BgL_arg1721z00_2055, BNIL);
														BgL_list1722z00_2056 =
															MAKE_YOUNG_PAIR(BgL_cz00_2050,
															BgL_arg1723z00_2057);
													}
													BgL_auxz00_4785 =
														BGl_formatz00zz__r4_output_6_10_3z00
														(BGl_string2411z00zz__base64z00,
														BgL_list1722z00_2056);
											}}
											((((BgL_z62errorz62_bglt) COBJECT(
															((BgL_z62errorz62_bglt) BgL_new1078z00_2052)))->
													BgL_objz00) = ((obj_t) BgL_auxz00_4785), BUNSPEC);
										}
										BgL_arg1718z00_2051 = BgL_new1078z00_2052;
									}
									return
										BGl_raisez00zz__errorz00(((obj_t) BgL_arg1718z00_2051));
								}
							}
							break;
						case 2L:

							{	/* Unsafe/base64.scm 395 */
								obj_t BgL_sz00_2061;

								{	/* Unsafe/base64.scm 388 */
									long BgL_arg1616z00_3459;

									BgL_arg1616z00_3459 =
										RGC_BUFFER_MATCH_LENGTH(BgL_iportz00_4311);
									BgL_sz00_2061 =
										rgc_buffer_substring(BgL_iportz00_4311, 0L,
										BgL_arg1616z00_3459);
								}
								{	/* Unsafe/base64.scm 395 */
									obj_t BgL_countez00_2062;

									BgL_countez00_2062 =
										BGl_ignoreze70ze7zz__base64z00(BgL_countz00_4312,
										BgL_iportz00_4311);
									{	/* Unsafe/base64.scm 396 */

										if (
											(BGL_UNSAFE_CELL_REF(BgL_countz00_4312) ==
												BgL_countez00_2062))
											{	/* Unsafe/base64.scm 397 */
												return BgL_sz00_2061;
											}
										else
											{	/* Unsafe/base64.scm 399 */
												BgL_z62iozd2parsezd2errorz62_bglt BgL_arg1726z00_2063;

												{	/* Unsafe/base64.scm 399 */
													BgL_z62iozd2parsezd2errorz62_bglt BgL_new1080z00_2064;

													{	/* Unsafe/base64.scm 399 */
														BgL_z62iozd2parsezd2errorz62_bglt
															BgL_new1079z00_2070;
														BgL_new1079z00_2070 =
															((BgL_z62iozd2parsezd2errorz62_bglt)
															BOBJECT(GC_MALLOC(sizeof(struct
																		BgL_z62iozd2parsezd2errorz62_bgl))));
														{	/* Unsafe/base64.scm 399 */
															long BgL_arg1732z00_2071;

															BgL_arg1732z00_2071 =
																BGL_CLASS_NUM
																(BGl_z62iozd2parsezd2errorz62zz__objectz00);
															BGL_OBJECT_CLASS_NUM_SET(((BgL_objectz00_bglt)
																	BgL_new1079z00_2070), BgL_arg1732z00_2071);
														}
														BgL_new1080z00_2064 = BgL_new1079z00_2070;
													}
													((((BgL_z62exceptionz62_bglt) COBJECT(
																	((BgL_z62exceptionz62_bglt)
																		BgL_new1080z00_2064)))->BgL_fnamez00) =
														((obj_t) BFALSE), BUNSPEC);
													((((BgL_z62exceptionz62_bglt)
																COBJECT(((BgL_z62exceptionz62_bglt)
																		BgL_new1080z00_2064)))->BgL_locationz00) =
														((obj_t) BFALSE), BUNSPEC);
													{
														obj_t BgL_auxz00_4807;

														{	/* Unsafe/base64.scm 399 */
															obj_t BgL_arg1727z00_2065;

															{	/* Unsafe/base64.scm 399 */
																obj_t BgL_arg1728z00_2066;

																{	/* Unsafe/base64.scm 399 */
																	obj_t BgL_classz00_3466;

																	BgL_classz00_3466 =
																		BGl_z62iozd2parsezd2errorz62zz__objectz00;
																	BgL_arg1728z00_2066 =
																		BGL_CLASS_ALL_FIELDS(BgL_classz00_3466);
																}
																BgL_arg1727z00_2065 =
																	VECTOR_REF(BgL_arg1728z00_2066, 2L);
															}
															BgL_auxz00_4807 =
																BGl_classzd2fieldzd2defaultzd2valuezd2zz__objectz00
																(BgL_arg1727z00_2065);
														}
														((((BgL_z62exceptionz62_bglt) COBJECT(
																		((BgL_z62exceptionz62_bglt)
																			BgL_new1080z00_2064)))->BgL_stackz00) =
															((obj_t) BgL_auxz00_4807), BUNSPEC);
													}
													((((BgL_z62errorz62_bglt) COBJECT(
																	((BgL_z62errorz62_bglt)
																		BgL_new1080z00_2064)))->BgL_procz00) =
														((obj_t) BGl_string2409z00zz__base64z00), BUNSPEC);
													((((BgL_z62errorz62_bglt)
																COBJECT(((BgL_z62errorz62_bglt)
																		BgL_new1080z00_2064)))->BgL_msgz00) =
														((obj_t) BGl_string2412z00zz__base64z00), BUNSPEC);
													{
														obj_t BgL_auxz00_4817;

														{	/* Unsafe/base64.scm 402 */
															obj_t BgL_list1729z00_2067;

															{	/* Unsafe/base64.scm 402 */
																obj_t BgL_arg1730z00_2068;

																{	/* Unsafe/base64.scm 402 */
																	obj_t BgL_arg1731z00_2069;

																	BgL_arg1731z00_2069 =
																		MAKE_YOUNG_PAIR(BgL_countez00_2062, BNIL);
																	BgL_arg1730z00_2068 =
																		MAKE_YOUNG_PAIR(BGL_UNSAFE_CELL_REF
																		(BgL_countz00_4312), BgL_arg1731z00_2069);
																}
																BgL_list1729z00_2067 =
																	MAKE_YOUNG_PAIR(BgL_sz00_2061,
																	BgL_arg1730z00_2068);
															}
															BgL_auxz00_4817 = BgL_list1729z00_2067;
														}
														((((BgL_z62errorz62_bglt) COBJECT(
																		((BgL_z62errorz62_bglt)
																			BgL_new1080z00_2064)))->BgL_objz00) =
															((obj_t) BgL_auxz00_4817), BUNSPEC);
													}
													BgL_arg1726z00_2063 = BgL_new1080z00_2064;
												}
												return
													BGl_raisez00zz__errorz00(
													((obj_t) BgL_arg1726z00_2063));
											}
									}
								}
							}
							break;
						case 1L:

							{	/* Unsafe/base64.scm 393 */
								long BgL_arg1733z00_2072;

								BgL_arg1733z00_2072 =
									RGC_BUFFER_MATCH_LENGTH(BgL_iportz00_4311);
								return BINT((BgL_arg1733z00_2072 - 1L));
							}
							break;
						case 0L:

							{	/* Unsafe/base64.scm 390 */
								obj_t BgL_auxz00_4313;

								{	/* Unsafe/base64.scm 390 */
									long BgL_arg1734z00_2073;

									BgL_arg1734z00_2073 =
										RGC_BUFFER_MATCH_LENGTH(BgL_iportz00_4311);
									BgL_auxz00_4313 =
										ADDFX(BINT(BgL_arg1734z00_2073),
										BGL_UNSAFE_CELL_REF(BgL_countz00_4312));
								}
								BGL_UNSAFE_CELL_SET(BgL_countz00_4312, BgL_auxz00_4313);
							}
							{

								goto BGl_ignoreze70ze7zz__base64z00;
							}
							break;
						default:
							return
								BGl_errorz00zz__errorz00(BGl_string2413z00zz__base64z00,
								BGl_string2414z00zz__base64z00, BINT(BgL_matchz00_2047));
						}
				}
			}
		}

	}



/* &<@anonymous:1263> */
	obj_t BGl_z62zc3z04anonymousza31263ze3ze5zz__base64z00(obj_t BgL_envz00_4281,
		obj_t BgL_iportz00_4282, obj_t BgL_opz00_4283, obj_t BgL_bufz00_4284,
		long BgL_wz00_4285, long BgL_lenz00_4286, obj_t BgL_hookz00_4287,
		bool_t BgL_eofzd2nozd2paddingz00_4288)
	{
		{	/* Unsafe/base64.scm 300 */
			{	/* Unsafe/base64.scm 300 */
				long BgL_wz00_4379;

				BgL_wz00_4379 = BgL_wz00_4285;
				{
					obj_t BgL_iportz00_4560;
					long BgL_lastzd2matchzd2_4561;
					long BgL_forwardz00_4562;
					long BgL_bufposz00_4563;
					obj_t BgL_iportz00_4545;
					long BgL_lastzd2matchzd2_4546;
					long BgL_forwardz00_4547;
					long BgL_bufposz00_4548;
					obj_t BgL_iportz00_4534;
					long BgL_lastzd2matchzd2_4535;
					long BgL_forwardz00_4536;
					long BgL_bufposz00_4537;
					obj_t BgL_iportz00_4517;
					long BgL_lastzd2matchzd2_4518;
					long BgL_forwardz00_4519;
					long BgL_bufposz00_4520;
					obj_t BgL_iportz00_4506;
					long BgL_lastzd2matchzd2_4507;
					long BgL_forwardz00_4508;
					long BgL_bufposz00_4509;
					obj_t BgL_iportz00_4492;
					long BgL_lastzd2matchzd2_4493;
					long BgL_forwardz00_4494;
					long BgL_bufposz00_4495;

				BgL_ignorez00_4383:
					RGC_START_MATCH(BgL_iportz00_4282);
					{	/* Unsafe/base64.scm 300 */
						long BgL_matchz00_4395;

						{	/* Unsafe/base64.scm 300 */
							long BgL_arg1547z00_4396;
							long BgL_arg1549z00_4397;

							BgL_arg1547z00_4396 = RGC_BUFFER_FORWARD(BgL_iportz00_4282);
							BgL_arg1549z00_4397 = RGC_BUFFER_BUFPOS(BgL_iportz00_4282);
							BgL_iportz00_4534 = BgL_iportz00_4282;
							BgL_lastzd2matchzd2_4535 = 8L;
							BgL_forwardz00_4536 = BgL_arg1547z00_4396;
							BgL_bufposz00_4537 = BgL_arg1549z00_4397;
						BgL_statezd20zd21046z00_4392:
							if ((BgL_forwardz00_4536 == BgL_bufposz00_4537))
								{	/* Unsafe/base64.scm 300 */
									if (rgc_fill_buffer(BgL_iportz00_4534))
										{	/* Unsafe/base64.scm 300 */
											long BgL_arg1329z00_4538;
											long BgL_arg1330z00_4539;

											BgL_arg1329z00_4538 =
												RGC_BUFFER_FORWARD(BgL_iportz00_4534);
											BgL_arg1330z00_4539 =
												RGC_BUFFER_BUFPOS(BgL_iportz00_4534);
											{
												long BgL_bufposz00_4844;
												long BgL_forwardz00_4843;

												BgL_forwardz00_4843 = BgL_arg1329z00_4538;
												BgL_bufposz00_4844 = BgL_arg1330z00_4539;
												BgL_bufposz00_4537 = BgL_bufposz00_4844;
												BgL_forwardz00_4536 = BgL_forwardz00_4843;
												goto BgL_statezd20zd21046z00_4392;
											}
										}
									else
										{	/* Unsafe/base64.scm 300 */
											BgL_matchz00_4395 = BgL_lastzd2matchzd2_4535;
										}
								}
							else
								{	/* Unsafe/base64.scm 300 */
									int BgL_curz00_4540;

									BgL_curz00_4540 =
										RGC_BUFFER_GET_CHAR(BgL_iportz00_4534, BgL_forwardz00_4536);
									{	/* Unsafe/base64.scm 300 */

										{	/* Unsafe/base64.scm 300 */
											bool_t BgL_test2500z00_4846;

											if (((long) (BgL_curz00_4540) == 43L))
												{	/* Unsafe/base64.scm 300 */
													BgL_test2500z00_4846 = ((bool_t) 1);
												}
											else
												{	/* Unsafe/base64.scm 300 */
													if (((long) (BgL_curz00_4540) == 45L))
														{	/* Unsafe/base64.scm 300 */
															BgL_test2500z00_4846 = ((bool_t) 1);
														}
													else
														{	/* Unsafe/base64.scm 300 */
															bool_t BgL_test2503z00_4853;

															if (((long) (BgL_curz00_4540) >= 47L))
																{	/* Unsafe/base64.scm 300 */
																	BgL_test2503z00_4853 =
																		((long) (BgL_curz00_4540) < 58L);
																}
															else
																{	/* Unsafe/base64.scm 300 */
																	BgL_test2503z00_4853 = ((bool_t) 0);
																}
															if (BgL_test2503z00_4853)
																{	/* Unsafe/base64.scm 300 */
																	BgL_test2500z00_4846 = ((bool_t) 1);
																}
															else
																{	/* Unsafe/base64.scm 300 */
																	bool_t BgL_test2505z00_4859;

																	if (((long) (BgL_curz00_4540) >= 65L))
																		{	/* Unsafe/base64.scm 300 */
																			BgL_test2505z00_4859 =
																				((long) (BgL_curz00_4540) < 91L);
																		}
																	else
																		{	/* Unsafe/base64.scm 300 */
																			BgL_test2505z00_4859 = ((bool_t) 0);
																		}
																	if (BgL_test2505z00_4859)
																		{	/* Unsafe/base64.scm 300 */
																			BgL_test2500z00_4846 = ((bool_t) 1);
																		}
																	else
																		{	/* Unsafe/base64.scm 300 */
																			if (((long) (BgL_curz00_4540) == 95L))
																				{	/* Unsafe/base64.scm 300 */
																					BgL_test2500z00_4846 = ((bool_t) 1);
																				}
																			else
																				{	/* Unsafe/base64.scm 300 */
																					if (((long) (BgL_curz00_4540) >= 97L))
																						{	/* Unsafe/base64.scm 300 */
																							BgL_test2500z00_4846 =
																								(
																								(long) (BgL_curz00_4540) <
																								123L);
																						}
																					else
																						{	/* Unsafe/base64.scm 300 */
																							BgL_test2500z00_4846 =
																								((bool_t) 0);
																						}
																				}
																		}
																}
														}
												}
											if (BgL_test2500z00_4846)
												{	/* Unsafe/base64.scm 300 */
													BgL_iportz00_4517 = BgL_iportz00_4534;
													BgL_lastzd2matchzd2_4518 = BgL_lastzd2matchzd2_4535;
													BgL_forwardz00_4519 = (1L + BgL_forwardz00_4536);
													BgL_bufposz00_4520 = BgL_bufposz00_4537;
												BgL_statezd23zd21049z00_4391:
													{	/* Unsafe/base64.scm 300 */
														long BgL_newzd2matchzd2_4521;

														{	/* Unsafe/base64.scm 300 */
															bool_t BgL_test2509z00_4873;

															{	/* Unsafe/base64.scm 300 */
																bool_t BgL_rz00_4522;

																BgL_rz00_4522 =
																	rgc_buffer_eof2_p(BgL_iportz00_4517,
																	BgL_forwardz00_4519, BgL_bufposz00_4520);
																BgL_forwardz00_4519 =
																	RGC_BUFFER_FORWARD(BgL_iportz00_4517);
																BgL_bufposz00_4520 =
																	RGC_BUFFER_BUFPOS(BgL_iportz00_4517);
																BgL_test2509z00_4873 = BgL_rz00_4522;
															}
															if (BgL_test2509z00_4873)
																{	/* Unsafe/base64.scm 300 */
																	RGC_STOP_MATCH(BgL_iportz00_4517,
																		BgL_forwardz00_4519);
																	BgL_newzd2matchzd2_4521 = 6L;
																}
															else
																{	/* Unsafe/base64.scm 300 */
																	RGC_STOP_MATCH(BgL_iportz00_4517,
																		BgL_forwardz00_4519);
																	BgL_newzd2matchzd2_4521 = 8L;
																}
														}
														if ((BgL_forwardz00_4519 == BgL_bufposz00_4520))
															{	/* Unsafe/base64.scm 300 */
																if (rgc_fill_buffer(BgL_iportz00_4517))
																	{	/* Unsafe/base64.scm 300 */
																		long BgL_arg1349z00_4523;
																		long BgL_arg1351z00_4524;

																		BgL_arg1349z00_4523 =
																			RGC_BUFFER_FORWARD(BgL_iportz00_4517);
																		BgL_arg1351z00_4524 =
																			RGC_BUFFER_BUFPOS(BgL_iportz00_4517);
																		{
																			long BgL_bufposz00_4886;
																			long BgL_forwardz00_4885;

																			BgL_forwardz00_4885 = BgL_arg1349z00_4523;
																			BgL_bufposz00_4886 = BgL_arg1351z00_4524;
																			BgL_bufposz00_4520 = BgL_bufposz00_4886;
																			BgL_forwardz00_4519 = BgL_forwardz00_4885;
																			goto BgL_statezd23zd21049z00_4391;
																		}
																	}
																else
																	{	/* Unsafe/base64.scm 300 */
																		BgL_matchz00_4395 = BgL_newzd2matchzd2_4521;
																	}
															}
														else
															{	/* Unsafe/base64.scm 300 */
																int BgL_curz00_4525;

																BgL_curz00_4525 =
																	RGC_BUFFER_GET_CHAR(BgL_iportz00_4517,
																	BgL_forwardz00_4519);
																{	/* Unsafe/base64.scm 300 */

																	if (((long) (BgL_curz00_4525) == 61L))
																		{	/* Unsafe/base64.scm 300 */
																			long BgL_arg1353z00_4526;

																			BgL_arg1353z00_4526 =
																				(1L + BgL_forwardz00_4519);
																			{
																				long BgL_forwardz00_4528;
																				long BgL_bufposz00_4529;

																				BgL_forwardz00_4528 =
																					BgL_arg1353z00_4526;
																				BgL_bufposz00_4529 = BgL_bufposz00_4520;
																			BgL_statezd25zd21051z00_4527:
																				if (
																					(BgL_forwardz00_4528 ==
																						BgL_bufposz00_4529))
																					{	/* Unsafe/base64.scm 300 */
																						if (rgc_fill_buffer
																							(BgL_iportz00_4517))
																							{	/* Unsafe/base64.scm 300 */
																								long BgL_arg1278z00_4530;
																								long BgL_arg1279z00_4531;

																								BgL_arg1278z00_4530 =
																									RGC_BUFFER_FORWARD
																									(BgL_iportz00_4517);
																								BgL_arg1279z00_4531 =
																									RGC_BUFFER_BUFPOS
																									(BgL_iportz00_4517);
																								{
																									long BgL_bufposz00_4899;
																									long BgL_forwardz00_4898;

																									BgL_forwardz00_4898 =
																										BgL_arg1278z00_4530;
																									BgL_bufposz00_4899 =
																										BgL_arg1279z00_4531;
																									BgL_bufposz00_4529 =
																										BgL_bufposz00_4899;
																									BgL_forwardz00_4528 =
																										BgL_forwardz00_4898;
																									goto
																										BgL_statezd25zd21051z00_4527;
																								}
																							}
																						else
																							{	/* Unsafe/base64.scm 300 */
																								BgL_matchz00_4395 =
																									BgL_newzd2matchzd2_4521;
																							}
																					}
																				else
																					{	/* Unsafe/base64.scm 300 */
																						int BgL_curz00_4532;

																						BgL_curz00_4532 =
																							RGC_BUFFER_GET_CHAR
																							(BgL_iportz00_4517,
																							BgL_forwardz00_4528);
																						{	/* Unsafe/base64.scm 300 */

																							if (
																								((long) (BgL_curz00_4532) ==
																									61L))
																								{	/* Unsafe/base64.scm 300 */
																									BgL_iportz00_4492 =
																										BgL_iportz00_4517;
																									BgL_lastzd2matchzd2_4493 =
																										BgL_newzd2matchzd2_4521;
																									BgL_forwardz00_4494 =
																										(1L + BgL_forwardz00_4528);
																									BgL_bufposz00_4495 =
																										BgL_bufposz00_4529;
																								BgL_statezd27zd21053z00_4389:
																									if (
																										(BgL_forwardz00_4494 ==
																											BgL_bufposz00_4495))
																										{	/* Unsafe/base64.scm 300 */
																											if (rgc_fill_buffer
																												(BgL_iportz00_4492))
																												{	/* Unsafe/base64.scm 300 */
																													long
																														BgL_arg1385z00_4496;
																													long
																														BgL_arg1386z00_4497;
																													BgL_arg1385z00_4496 =
																														RGC_BUFFER_FORWARD
																														(BgL_iportz00_4492);
																													BgL_arg1386z00_4497 =
																														RGC_BUFFER_BUFPOS
																														(BgL_iportz00_4492);
																													if (
																														(BgL_arg1385z00_4496
																															==
																															BgL_arg1386z00_4497))
																														{	/* Unsafe/base64.scm 300 */
																															if (rgc_fill_buffer(BgL_iportz00_4492))
																																{	/* Unsafe/base64.scm 300 */
																																	long
																																		BgL_arg1385z00_4498;
																																	long
																																		BgL_arg1386z00_4499;
																																	BgL_arg1385z00_4498
																																		=
																																		RGC_BUFFER_FORWARD
																																		(BgL_iportz00_4492);
																																	BgL_arg1386z00_4499
																																		=
																																		RGC_BUFFER_BUFPOS
																																		(BgL_iportz00_4492);
																																	{
																																		long
																																			BgL_bufposz00_4917;
																																		long
																																			BgL_forwardz00_4916;
																																		BgL_forwardz00_4916
																																			=
																																			BgL_arg1385z00_4498;
																																		BgL_bufposz00_4917
																																			=
																																			BgL_arg1386z00_4499;
																																		BgL_bufposz00_4495
																																			=
																																			BgL_bufposz00_4917;
																																		BgL_forwardz00_4494
																																			=
																																			BgL_forwardz00_4916;
																																		goto
																																			BgL_statezd27zd21053z00_4389;
																																	}
																																}
																															else
																																{	/* Unsafe/base64.scm 300 */
																																	BgL_matchz00_4395
																																		=
																																		BgL_lastzd2matchzd2_4493;
																																}
																														}
																													else
																														{	/* Unsafe/base64.scm 300 */
																															int
																																BgL_curz00_4500;
																															BgL_curz00_4500 =
																																RGC_BUFFER_GET_CHAR
																																(BgL_iportz00_4492,
																																BgL_arg1385z00_4496);
																															{	/* Unsafe/base64.scm 300 */

																																if (
																																	((long)
																																		(BgL_curz00_4500)
																																		== 61L))
																																	{	/* Unsafe/base64.scm 300 */
																																		long
																																			BgL_arg1388z00_4501;
																																		BgL_arg1388z00_4501
																																			=
																																			(1L +
																																			BgL_arg1385z00_4496);
																																		{	/* Unsafe/base64.scm 300 */
																																			long
																																				BgL_newzd2matchzd2_4502;
																																			RGC_STOP_MATCH
																																				(BgL_iportz00_4492,
																																				BgL_arg1388z00_4501);
																																			BgL_newzd2matchzd2_4502
																																				= 5L;
																																			BgL_matchz00_4395
																																				=
																																				BgL_newzd2matchzd2_4502;
																																	}}
																																else
																																	{	/* Unsafe/base64.scm 300 */
																																		BgL_matchz00_4395
																																			=
																																			BgL_lastzd2matchzd2_4493;
																																	}
																															}
																														}
																												}
																											else
																												{	/* Unsafe/base64.scm 300 */
																													BgL_matchz00_4395 =
																														BgL_lastzd2matchzd2_4493;
																												}
																										}
																									else
																										{	/* Unsafe/base64.scm 300 */
																											int BgL_curz00_4503;

																											BgL_curz00_4503 =
																												RGC_BUFFER_GET_CHAR
																												(BgL_iportz00_4492,
																												BgL_forwardz00_4494);
																											{	/* Unsafe/base64.scm 300 */

																												if (
																													((long)
																														(BgL_curz00_4503) ==
																														61L))
																													{	/* Unsafe/base64.scm 300 */
																														long
																															BgL_arg1388z00_4504;
																														BgL_arg1388z00_4504
																															=
																															(1L +
																															BgL_forwardz00_4494);
																														{	/* Unsafe/base64.scm 300 */
																															long
																																BgL_newzd2matchzd2_4505;
																															RGC_STOP_MATCH
																																(BgL_iportz00_4492,
																																BgL_arg1388z00_4504);
																															BgL_newzd2matchzd2_4505
																																= 5L;
																															BgL_matchz00_4395
																																=
																																BgL_newzd2matchzd2_4505;
																													}}
																												else
																													{	/* Unsafe/base64.scm 300 */
																														BgL_matchz00_4395 =
																															BgL_lastzd2matchzd2_4493;
																													}
																											}
																										}
																								}
																							else
																								{	/* Unsafe/base64.scm 300 */
																									BgL_matchz00_4395 =
																										BgL_newzd2matchzd2_4521;
																								}
																						}
																					}
																			}
																		}
																	else
																		{	/* Unsafe/base64.scm 300 */
																			bool_t BgL_test2522z00_4931;

																			if (((long) (BgL_curz00_4525) == 43L))
																				{	/* Unsafe/base64.scm 300 */
																					BgL_test2522z00_4931 = ((bool_t) 1);
																				}
																			else
																				{	/* Unsafe/base64.scm 300 */
																					if (((long) (BgL_curz00_4525) == 45L))
																						{	/* Unsafe/base64.scm 300 */
																							BgL_test2522z00_4931 =
																								((bool_t) 1);
																						}
																					else
																						{	/* Unsafe/base64.scm 300 */
																							bool_t BgL_test2525z00_4938;

																							if (
																								((long) (BgL_curz00_4525) >=
																									47L))
																								{	/* Unsafe/base64.scm 300 */
																									BgL_test2525z00_4938 =
																										(
																										(long) (BgL_curz00_4525) <
																										58L);
																								}
																							else
																								{	/* Unsafe/base64.scm 300 */
																									BgL_test2525z00_4938 =
																										((bool_t) 0);
																								}
																							if (BgL_test2525z00_4938)
																								{	/* Unsafe/base64.scm 300 */
																									BgL_test2522z00_4931 =
																										((bool_t) 1);
																								}
																							else
																								{	/* Unsafe/base64.scm 300 */
																									bool_t BgL_test2527z00_4944;

																									if (
																										((long) (BgL_curz00_4525) >=
																											65L))
																										{	/* Unsafe/base64.scm 300 */
																											BgL_test2527z00_4944 =
																												(
																												(long) (BgL_curz00_4525)
																												< 91L);
																										}
																									else
																										{	/* Unsafe/base64.scm 300 */
																											BgL_test2527z00_4944 =
																												((bool_t) 0);
																										}
																									if (BgL_test2527z00_4944)
																										{	/* Unsafe/base64.scm 300 */
																											BgL_test2522z00_4931 =
																												((bool_t) 1);
																										}
																									else
																										{	/* Unsafe/base64.scm 300 */
																											if (
																												((long)
																													(BgL_curz00_4525) ==
																													95L))
																												{	/* Unsafe/base64.scm 300 */
																													BgL_test2522z00_4931 =
																														((bool_t) 1);
																												}
																											else
																												{	/* Unsafe/base64.scm 300 */
																													if (
																														((long)
																															(BgL_curz00_4525)
																															>= 97L))
																														{	/* Unsafe/base64.scm 300 */
																															BgL_test2522z00_4931
																																=
																																((long)
																																(BgL_curz00_4525)
																																< 123L);
																														}
																													else
																														{	/* Unsafe/base64.scm 300 */
																															BgL_test2522z00_4931
																																= ((bool_t) 0);
																														}
																												}
																										}
																								}
																						}
																				}
																			if (BgL_test2522z00_4931)
																				{	/* Unsafe/base64.scm 300 */
																					long BgL_arg1362z00_4533;

																					BgL_arg1362z00_4533 =
																						(1L + BgL_forwardz00_4519);
																					BgL_iportz00_4506 = BgL_iportz00_4517;
																					BgL_lastzd2matchzd2_4507 =
																						BgL_newzd2matchzd2_4521;
																					BgL_forwardz00_4508 =
																						BgL_arg1362z00_4533;
																					BgL_bufposz00_4509 =
																						BgL_bufposz00_4520;
																				BgL_statezd24zd21050z00_4390:
																					{	/* Unsafe/base64.scm 300 */
																						long BgL_newzd2matchzd2_4510;

																						{	/* Unsafe/base64.scm 300 */
																							bool_t BgL_test2531z00_4959;

																							{	/* Unsafe/base64.scm 300 */
																								bool_t BgL_rz00_4511;

																								BgL_rz00_4511 =
																									rgc_buffer_eof2_p
																									(BgL_iportz00_4506,
																									BgL_forwardz00_4508,
																									BgL_bufposz00_4509);
																								BgL_forwardz00_4508 =
																									RGC_BUFFER_FORWARD
																									(BgL_iportz00_4506);
																								BgL_bufposz00_4509 =
																									RGC_BUFFER_BUFPOS
																									(BgL_iportz00_4506);
																								BgL_test2531z00_4959 =
																									BgL_rz00_4511;
																							}
																							if (BgL_test2531z00_4959)
																								{	/* Unsafe/base64.scm 300 */
																									RGC_STOP_MATCH
																										(BgL_iportz00_4506,
																										BgL_forwardz00_4508);
																									BgL_newzd2matchzd2_4510 = 4L;
																								}
																							else
																								{	/* Unsafe/base64.scm 300 */
																									BgL_newzd2matchzd2_4510 =
																										BgL_lastzd2matchzd2_4507;
																								}
																						}
																						if (
																							(BgL_forwardz00_4508 ==
																								BgL_bufposz00_4509))
																							{	/* Unsafe/base64.scm 300 */
																								if (rgc_fill_buffer
																									(BgL_iportz00_4506))
																									{	/* Unsafe/base64.scm 300 */
																										long BgL_arg1368z00_4512;
																										long BgL_arg1369z00_4513;

																										BgL_arg1368z00_4512 =
																											RGC_BUFFER_FORWARD
																											(BgL_iportz00_4506);
																										BgL_arg1369z00_4513 =
																											RGC_BUFFER_BUFPOS
																											(BgL_iportz00_4506);
																										{
																											long BgL_bufposz00_4971;
																											long BgL_forwardz00_4970;

																											BgL_forwardz00_4970 =
																												BgL_arg1368z00_4512;
																											BgL_bufposz00_4971 =
																												BgL_arg1369z00_4513;
																											BgL_bufposz00_4509 =
																												BgL_bufposz00_4971;
																											BgL_forwardz00_4508 =
																												BgL_forwardz00_4970;
																											goto
																												BgL_statezd24zd21050z00_4390;
																										}
																									}
																								else
																									{	/* Unsafe/base64.scm 300 */
																										BgL_matchz00_4395 =
																											BgL_newzd2matchzd2_4510;
																									}
																							}
																						else
																							{	/* Unsafe/base64.scm 300 */
																								int BgL_curz00_4514;

																								BgL_curz00_4514 =
																									RGC_BUFFER_GET_CHAR
																									(BgL_iportz00_4506,
																									BgL_forwardz00_4508);
																								{	/* Unsafe/base64.scm 300 */

																									if (
																										((long) (BgL_curz00_4514) ==
																											61L))
																										{	/* Unsafe/base64.scm 300 */
																											long BgL_arg1371z00_4515;

																											BgL_arg1371z00_4515 =
																												(1L +
																												BgL_forwardz00_4508);
																											BgL_iportz00_4560 =
																												BgL_iportz00_4506;
																											BgL_lastzd2matchzd2_4561 =
																												BgL_newzd2matchzd2_4510;
																											BgL_forwardz00_4562 =
																												BgL_arg1371z00_4515;
																											BgL_bufposz00_4563 =
																												BgL_bufposz00_4509;
																										BgL_statezd210zd21056z00_4394:
																											{	/* Unsafe/base64.scm 300 */
																												long
																													BgL_newzd2matchzd2_4564;
																												{	/* Unsafe/base64.scm 300 */
																													bool_t
																														BgL_test2535z00_4977;
																													{	/* Unsafe/base64.scm 300 */
																														bool_t
																															BgL_rz00_4565;
																														BgL_rz00_4565 =
																															rgc_buffer_eof2_p
																															(BgL_iportz00_4560,
																															BgL_forwardz00_4562,
																															BgL_bufposz00_4563);
																														BgL_forwardz00_4562
																															=
																															RGC_BUFFER_FORWARD
																															(BgL_iportz00_4560);
																														BgL_bufposz00_4563 =
																															RGC_BUFFER_BUFPOS
																															(BgL_iportz00_4560);
																														BgL_test2535z00_4977
																															= BgL_rz00_4565;
																													}
																													if (BgL_test2535z00_4977)
																														{	/* Unsafe/base64.scm 300 */
																															RGC_STOP_MATCH
																																(BgL_iportz00_4560,
																																BgL_forwardz00_4562);
																															BgL_newzd2matchzd2_4564
																																= 4L;
																														}
																													else
																														{	/* Unsafe/base64.scm 300 */
																															BgL_newzd2matchzd2_4564
																																=
																																BgL_lastzd2matchzd2_4561;
																														}
																												}
																												if (
																													(BgL_forwardz00_4562
																														==
																														BgL_bufposz00_4563))
																													{	/* Unsafe/base64.scm 300 */
																														if (rgc_fill_buffer
																															(BgL_iportz00_4560))
																															{	/* Unsafe/base64.scm 300 */
																																long
																																	BgL_arg1267z00_4566;
																																long
																																	BgL_arg1269z00_4567;
																																BgL_arg1267z00_4566
																																	=
																																	RGC_BUFFER_FORWARD
																																	(BgL_iportz00_4560);
																																BgL_arg1269z00_4567
																																	=
																																	RGC_BUFFER_BUFPOS
																																	(BgL_iportz00_4560);
																																{
																																	long
																																		BgL_bufposz00_4989;
																																	long
																																		BgL_forwardz00_4988;
																																	BgL_forwardz00_4988
																																		=
																																		BgL_arg1267z00_4566;
																																	BgL_bufposz00_4989
																																		=
																																		BgL_arg1269z00_4567;
																																	BgL_bufposz00_4563
																																		=
																																		BgL_bufposz00_4989;
																																	BgL_forwardz00_4562
																																		=
																																		BgL_forwardz00_4988;
																																	goto
																																		BgL_statezd210zd21056z00_4394;
																																}
																															}
																														else
																															{	/* Unsafe/base64.scm 300 */
																																BgL_matchz00_4395
																																	=
																																	BgL_newzd2matchzd2_4564;
																															}
																													}
																												else
																													{	/* Unsafe/base64.scm 300 */
																														int BgL_curz00_4568;

																														BgL_curz00_4568 =
																															RGC_BUFFER_GET_CHAR
																															(BgL_iportz00_4560,
																															BgL_forwardz00_4562);
																														{	/* Unsafe/base64.scm 300 */

																															if (
																																((long)
																																	(BgL_curz00_4568)
																																	== 61L))
																																{	/* Unsafe/base64.scm 300 */
																																	long
																																		BgL_arg1271z00_4569;
																																	BgL_arg1271z00_4569
																																		=
																																		(1L +
																																		BgL_forwardz00_4562);
																																	{	/* Unsafe/base64.scm 300 */
																																		long
																																			BgL_bufposz00_4570;
																																		BgL_bufposz00_4570
																																			=
																																			BgL_bufposz00_4563;
																																		{	/* Unsafe/base64.scm 300 */
																																			long
																																				BgL_newzd2matchzd2_4571;
																																			RGC_STOP_MATCH
																																				(BgL_iportz00_4560,
																																				BgL_arg1271z00_4569);
																																			BgL_newzd2matchzd2_4571
																																				= 3L;
																																			BgL_matchz00_4395
																																				=
																																				BgL_newzd2matchzd2_4571;
																																}}}
																															else
																																{	/* Unsafe/base64.scm 300 */
																																	BgL_matchz00_4395
																																		=
																																		BgL_newzd2matchzd2_4564;
																																}
																														}
																													}
																											}
																										}
																									else
																										{	/* Unsafe/base64.scm 300 */
																											bool_t
																												BgL_test2539z00_4996;
																											if (((long)
																													(BgL_curz00_4514) ==
																													43L))
																												{	/* Unsafe/base64.scm 300 */
																													BgL_test2539z00_4996 =
																														((bool_t) 1);
																												}
																											else
																												{	/* Unsafe/base64.scm 300 */
																													if (
																														((long)
																															(BgL_curz00_4514)
																															== 45L))
																														{	/* Unsafe/base64.scm 300 */
																															BgL_test2539z00_4996
																																= ((bool_t) 1);
																														}
																													else
																														{	/* Unsafe/base64.scm 300 */
																															bool_t
																																BgL_test2542z00_5003;
																															if (((long)
																																	(BgL_curz00_4514)
																																	>= 47L))
																																{	/* Unsafe/base64.scm 300 */
																																	BgL_test2542z00_5003
																																		=
																																		((long)
																																		(BgL_curz00_4514)
																																		< 58L);
																																}
																															else
																																{	/* Unsafe/base64.scm 300 */
																																	BgL_test2542z00_5003
																																		=
																																		((bool_t)
																																		0);
																																}
																															if (BgL_test2542z00_5003)
																																{	/* Unsafe/base64.scm 300 */
																																	BgL_test2539z00_4996
																																		=
																																		((bool_t)
																																		1);
																																}
																															else
																																{	/* Unsafe/base64.scm 300 */
																																	bool_t
																																		BgL_test2544z00_5009;
																																	if (((long)
																																			(BgL_curz00_4514)
																																			>= 65L))
																																		{	/* Unsafe/base64.scm 300 */
																																			BgL_test2544z00_5009
																																				=
																																				((long)
																																				(BgL_curz00_4514)
																																				< 91L);
																																		}
																																	else
																																		{	/* Unsafe/base64.scm 300 */
																																			BgL_test2544z00_5009
																																				=
																																				(
																																				(bool_t)
																																				0);
																																		}
																																	if (BgL_test2544z00_5009)
																																		{	/* Unsafe/base64.scm 300 */
																																			BgL_test2539z00_4996
																																				=
																																				(
																																				(bool_t)
																																				1);
																																		}
																																	else
																																		{	/* Unsafe/base64.scm 300 */
																																			if (
																																				((long)
																																					(BgL_curz00_4514)
																																					==
																																					95L))
																																				{	/* Unsafe/base64.scm 300 */
																																					BgL_test2539z00_4996
																																						=
																																						(
																																						(bool_t)
																																						1);
																																				}
																																			else
																																				{	/* Unsafe/base64.scm 300 */
																																					if (
																																						((long) (BgL_curz00_4514) >= 97L))
																																						{	/* Unsafe/base64.scm 300 */
																																							BgL_test2539z00_4996
																																								=
																																								(
																																								(long)
																																								(BgL_curz00_4514)
																																								<
																																								123L);
																																						}
																																					else
																																						{	/* Unsafe/base64.scm 300 */
																																							BgL_test2539z00_4996
																																								=
																																								(
																																								(bool_t)
																																								0);
																																						}
																																				}
																																		}
																																}
																														}
																												}
																											if (BgL_test2539z00_4996)
																												{	/* Unsafe/base64.scm 300 */
																													long
																														BgL_arg1380z00_4516;
																													BgL_arg1380z00_4516 =
																														(1L +
																														BgL_forwardz00_4508);
																													BgL_iportz00_4545 =
																														BgL_iportz00_4506;
																													BgL_lastzd2matchzd2_4546
																														=
																														BgL_newzd2matchzd2_4510;
																													BgL_forwardz00_4547 =
																														BgL_arg1380z00_4516;
																													BgL_bufposz00_4548 =
																														BgL_bufposz00_4509;
																												BgL_statezd29zd21055z00_4393:
																													{	/* Unsafe/base64.scm 300 */
																														long
																															BgL_newzd2matchzd2_4549;
																														{	/* Unsafe/base64.scm 300 */
																															bool_t
																																BgL_test2548z00_5024;
																															{	/* Unsafe/base64.scm 300 */
																																bool_t
																																	BgL_rz00_4550;
																																BgL_rz00_4550 =
																																	rgc_buffer_eof2_p
																																	(BgL_iportz00_4545,
																																	BgL_forwardz00_4547,
																																	BgL_bufposz00_4548);
																																BgL_forwardz00_4547
																																	=
																																	RGC_BUFFER_FORWARD
																																	(BgL_iportz00_4545);
																																BgL_bufposz00_4548
																																	=
																																	RGC_BUFFER_BUFPOS
																																	(BgL_iportz00_4545);
																																BgL_test2548z00_5024
																																	=
																																	BgL_rz00_4550;
																															}
																															if (BgL_test2548z00_5024)
																																{	/* Unsafe/base64.scm 300 */
																																	RGC_STOP_MATCH
																																		(BgL_iportz00_4545,
																																		BgL_forwardz00_4547);
																																	BgL_newzd2matchzd2_4549
																																		= 2L;
																																}
																															else
																																{	/* Unsafe/base64.scm 300 */
																																	BgL_newzd2matchzd2_4549
																																		=
																																		BgL_lastzd2matchzd2_4546;
																																}
																														}
																														if (
																															(BgL_forwardz00_4547
																																==
																																BgL_bufposz00_4548))
																															{	/* Unsafe/base64.scm 300 */
																																if (rgc_fill_buffer(BgL_iportz00_4545))
																																	{	/* Unsafe/base64.scm 300 */
																																		long
																																			BgL_arg1287z00_4551;
																																		long
																																			BgL_arg1291z00_4552;
																																		BgL_arg1287z00_4551
																																			=
																																			RGC_BUFFER_FORWARD
																																			(BgL_iportz00_4545);
																																		BgL_arg1291z00_4552
																																			=
																																			RGC_BUFFER_BUFPOS
																																			(BgL_iportz00_4545);
																																		{
																																			long
																																				BgL_bufposz00_5036;
																																			long
																																				BgL_forwardz00_5035;
																																			BgL_forwardz00_5035
																																				=
																																				BgL_arg1287z00_4551;
																																			BgL_bufposz00_5036
																																				=
																																				BgL_arg1291z00_4552;
																																			BgL_bufposz00_4548
																																				=
																																				BgL_bufposz00_5036;
																																			BgL_forwardz00_4547
																																				=
																																				BgL_forwardz00_5035;
																																			goto
																																				BgL_statezd29zd21055z00_4393;
																																		}
																																	}
																																else
																																	{	/* Unsafe/base64.scm 300 */
																																		BgL_matchz00_4395
																																			=
																																			BgL_newzd2matchzd2_4549;
																																	}
																															}
																														else
																															{	/* Unsafe/base64.scm 300 */
																																int
																																	BgL_curz00_4553;
																																BgL_curz00_4553
																																	=
																																	RGC_BUFFER_GET_CHAR
																																	(BgL_iportz00_4545,
																																	BgL_forwardz00_4547);
																																{	/* Unsafe/base64.scm 300 */

																																	if (
																																		((long)
																																			(BgL_curz00_4553)
																																			== 61L))
																																		{	/* Unsafe/base64.scm 300 */
																																			long
																																				BgL_arg1293z00_4554;
																																			BgL_arg1293z00_4554
																																				=
																																				(1L +
																																				BgL_forwardz00_4547);
																																			{	/* Unsafe/base64.scm 300 */
																																				long
																																					BgL_bufposz00_4555;
																																				BgL_bufposz00_4555
																																					=
																																					BgL_bufposz00_4548;
																																				{	/* Unsafe/base64.scm 300 */
																																					long
																																						BgL_newzd2matchzd2_4556;
																																					RGC_STOP_MATCH
																																						(BgL_iportz00_4545,
																																						BgL_arg1293z00_4554);
																																					BgL_newzd2matchzd2_4556
																																						=
																																						1L;
																																					BgL_matchz00_4395
																																						=
																																						BgL_newzd2matchzd2_4556;
																																		}}}
																																	else
																																		{	/* Unsafe/base64.scm 300 */
																																			bool_t
																																				BgL_test2552z00_5043;
																																			if ((
																																					(long)
																																					(BgL_curz00_4553)
																																					==
																																					43L))
																																				{	/* Unsafe/base64.scm 300 */
																																					BgL_test2552z00_5043
																																						=
																																						(
																																						(bool_t)
																																						1);
																																				}
																																			else
																																				{	/* Unsafe/base64.scm 300 */
																																					if (
																																						((long) (BgL_curz00_4553) == 45L))
																																						{	/* Unsafe/base64.scm 300 */
																																							BgL_test2552z00_5043
																																								=
																																								(
																																								(bool_t)
																																								1);
																																						}
																																					else
																																						{	/* Unsafe/base64.scm 300 */
																																							bool_t
																																								BgL_test2555z00_5050;
																																							if (((long) (BgL_curz00_4553) >= 47L))
																																								{	/* Unsafe/base64.scm 300 */
																																									BgL_test2555z00_5050
																																										=
																																										(
																																										(long)
																																										(BgL_curz00_4553)
																																										<
																																										58L);
																																								}
																																							else
																																								{	/* Unsafe/base64.scm 300 */
																																									BgL_test2555z00_5050
																																										=
																																										(
																																										(bool_t)
																																										0);
																																								}
																																							if (BgL_test2555z00_5050)
																																								{	/* Unsafe/base64.scm 300 */
																																									BgL_test2552z00_5043
																																										=
																																										(
																																										(bool_t)
																																										1);
																																								}
																																							else
																																								{	/* Unsafe/base64.scm 300 */
																																									bool_t
																																										BgL_test2557z00_5056;
																																									if (((long) (BgL_curz00_4553) >= 65L))
																																										{	/* Unsafe/base64.scm 300 */
																																											BgL_test2557z00_5056
																																												=
																																												(
																																												(long)
																																												(BgL_curz00_4553)
																																												<
																																												91L);
																																										}
																																									else
																																										{	/* Unsafe/base64.scm 300 */
																																											BgL_test2557z00_5056
																																												=
																																												(
																																												(bool_t)
																																												0);
																																										}
																																									if (BgL_test2557z00_5056)
																																										{	/* Unsafe/base64.scm 300 */
																																											BgL_test2552z00_5043
																																												=
																																												(
																																												(bool_t)
																																												1);
																																										}
																																									else
																																										{	/* Unsafe/base64.scm 300 */
																																											if (((long) (BgL_curz00_4553) == 95L))
																																												{	/* Unsafe/base64.scm 300 */
																																													BgL_test2552z00_5043
																																														=
																																														(
																																														(bool_t)
																																														1);
																																												}
																																											else
																																												{	/* Unsafe/base64.scm 300 */
																																													if (((long) (BgL_curz00_4553) >= 97L))
																																														{	/* Unsafe/base64.scm 300 */
																																															BgL_test2552z00_5043
																																																=
																																																(
																																																(long)
																																																(BgL_curz00_4553)
																																																<
																																																123L);
																																														}
																																													else
																																														{	/* Unsafe/base64.scm 300 */
																																															BgL_test2552z00_5043
																																																=
																																																(
																																																(bool_t)
																																																0);
																																														}
																																												}
																																										}
																																								}
																																						}
																																				}
																																			if (BgL_test2552z00_5043)
																																				{	/* Unsafe/base64.scm 300 */
																																					long
																																						BgL_arg1322z00_4557;
																																					BgL_arg1322z00_4557
																																						=
																																						(1L
																																						+
																																						BgL_forwardz00_4547);
																																					{	/* Unsafe/base64.scm 300 */
																																						long
																																							BgL_bufposz00_4558;
																																						BgL_bufposz00_4558
																																							=
																																							BgL_bufposz00_4548;
																																						{	/* Unsafe/base64.scm 300 */
																																							long
																																								BgL_newzd2matchzd2_4559;
																																							RGC_STOP_MATCH
																																								(BgL_iportz00_4545,
																																								BgL_arg1322z00_4557);
																																							BgL_newzd2matchzd2_4559
																																								=
																																								0L;
																																							BgL_matchz00_4395
																																								=
																																								BgL_newzd2matchzd2_4559;
																																				}}}
																																			else
																																				{	/* Unsafe/base64.scm 300 */
																																					BgL_matchz00_4395
																																						=
																																						BgL_newzd2matchzd2_4549;
																																				}
																																		}
																																}
																															}
																													}
																												}
																											else
																												{	/* Unsafe/base64.scm 300 */
																													BgL_matchz00_4395 =
																														BgL_newzd2matchzd2_4510;
																												}
																										}
																								}
																							}
																					}
																				}
																			else
																				{	/* Unsafe/base64.scm 300 */
																					BgL_matchz00_4395 =
																						BgL_newzd2matchzd2_4521;
																				}
																		}
																}
															}
													}
												}
											else
												{	/* Unsafe/base64.scm 300 */
													bool_t BgL_test2561z00_5073;

													if (((long) (BgL_curz00_4540) == 10L))
														{	/* Unsafe/base64.scm 300 */
															BgL_test2561z00_5073 = ((bool_t) 1);
														}
													else
														{	/* Unsafe/base64.scm 300 */
															BgL_test2561z00_5073 =
																((long) (BgL_curz00_4540) == 13L);
														}
													if (BgL_test2561z00_5073)
														{	/* Unsafe/base64.scm 300 */
															long BgL_arg1342z00_4541;

															BgL_arg1342z00_4541 = (1L + BgL_forwardz00_4536);
															{	/* Unsafe/base64.scm 300 */
																long BgL_newzd2matchzd2_4542;

																RGC_STOP_MATCH(BgL_iportz00_4534,
																	BgL_arg1342z00_4541);
																BgL_newzd2matchzd2_4542 = 7L;
																BgL_matchz00_4395 = BgL_newzd2matchzd2_4542;
														}}
													else
														{	/* Unsafe/base64.scm 300 */
															long BgL_arg1343z00_4543;

															BgL_arg1343z00_4543 = (1L + BgL_forwardz00_4536);
															{	/* Unsafe/base64.scm 300 */
																long BgL_newzd2matchzd2_4544;

																RGC_STOP_MATCH(BgL_iportz00_4534,
																	BgL_arg1343z00_4543);
																BgL_newzd2matchzd2_4544 = 8L;
																BgL_matchz00_4395 = BgL_newzd2matchzd2_4544;
						}}}}}}}
						RGC_SET_FILEPOS(BgL_iportz00_4282);
						switch (BgL_matchz00_4395)
							{
							case 8L:

								{	/* Unsafe/base64.scm 369 */
									obj_t BgL_cz00_4398;

									{	/* Unsafe/base64.scm 300 */
										bool_t BgL_test2563z00_5084;

										{	/* Unsafe/base64.scm 300 */
											long BgL_arg1476z00_4491;

											BgL_arg1476z00_4491 =
												RGC_BUFFER_MATCH_LENGTH(BgL_iportz00_4282);
											BgL_test2563z00_5084 = (BgL_arg1476z00_4491 == 0L);
										}
										if (BgL_test2563z00_5084)
											{	/* Unsafe/base64.scm 300 */
												BgL_cz00_4398 = BEOF;
											}
										else
											{	/* Unsafe/base64.scm 300 */
												BgL_cz00_4398 =
													BCHAR(RGC_BUFFER_CHARACTER(BgL_iportz00_4282));
											}
									}
									{	/* Unsafe/base64.scm 370 */
										bool_t BgL_test2564z00_5089;

										if (EOF_OBJECTP(BgL_cz00_4398))
											{	/* Unsafe/base64.scm 370 */
												BgL_test2564z00_5089 = ((bool_t) 1);
											}
										else
											{	/* Unsafe/base64.scm 370 */
												BgL_test2564z00_5089 =
													CBOOL(
													((obj_t(*)(obj_t,
																obj_t))
														PROCEDURE_L_ENTRY(BgL_hookz00_4287))
													(BgL_hookz00_4287, BgL_cz00_4398));
											}
										if (BgL_test2564z00_5089)
											{	/* Unsafe/base64.scm 370 */
												if ((BgL_wz00_4379 > 0L))
													{	/* Unsafe/base64.scm 372 */
														bgl_display_substring(BgL_bufz00_4284, 0L,
															BgL_wz00_4379, BgL_opz00_4283);
													}
												else
													{	/* Unsafe/base64.scm 372 */
														BFALSE;
													}
												return BTRUE;
											}
										else
											{	/* Unsafe/base64.scm 370 */
												goto BgL_ignorez00_4383;
											}
									}
								}
								break;
							case 7L:

								goto BgL_ignorez00_4383;
								break;
							case 6L:

								if (BgL_eofzd2nozd2paddingz00_4288)
									{	/* Unsafe/base64.scm 365 */
									BgL_chunk1z00_4387:
										{	/* Unsafe/base64.scm 345 */
											int BgL_q0z00_4474;

											{	/* Unsafe/base64.scm 345 */
												int BgL_arg1487z00_4475;

												{	/* Unsafe/base64.scm 300 */
													int BgL_tmpz00_5101;

													BgL_tmpz00_5101 = (int) (0L);
													BgL_arg1487z00_4475 =
														RGC_BUFFER_BYTE_REF(BgL_iportz00_4282,
														BgL_tmpz00_5101);
												}
												{	/* Unsafe/base64.scm 345 */
													int BgL_res2327z00_4476;

													{	/* Unsafe/base64.scm 345 */
														char BgL_cz00_4477;

														BgL_cz00_4477 = (signed char) (BgL_arg1487z00_4475);
														{	/* Unsafe/base64.scm 195 */
															uint8_t BgL_arg1852z00_4478;

															{	/* Unsafe/base64.scm 195 */
																long BgL_tmpz00_5105;

																BgL_tmpz00_5105 = (long) (BgL_cz00_4477);
																BgL_arg1852z00_4478 =
																	BGL_U8VREF(BGl_bytezd2tablezd2zz__base64z00,
																	BgL_tmpz00_5105);
															}
															{	/* Unsafe/base64.scm 195 */
																int8_t BgL_xz00_4479;

																BgL_xz00_4479 = (int8_t) (BgL_arg1852z00_4478);
																{	/* Unsafe/base64.scm 195 */
																	long BgL_arg2275z00_4480;

																	BgL_arg2275z00_4480 = (long) (BgL_xz00_4479);
																	BgL_res2327z00_4476 =
																		(int) ((long) (BgL_arg2275z00_4480));
													}}}}
													BgL_q0z00_4474 = BgL_res2327z00_4476;
											}}
											{	/* Unsafe/base64.scm 345 */
												int BgL_q1z00_4481;

												{	/* Unsafe/base64.scm 346 */
													unsigned char BgL_cz00_4482;

													BgL_cz00_4482 = (char) (((unsigned char) '='));
													{	/* Unsafe/base64.scm 201 */
														long BgL_arg1853z00_4483;

														BgL_arg1853z00_4483 =
															((unsigned char) (BgL_cz00_4482));
														{	/* Unsafe/base64.scm 201 */
															int BgL_res2328z00_4484;

															{	/* Unsafe/base64.scm 201 */
																char BgL_cz00_4485;

																BgL_cz00_4485 =
																	(signed char) (BgL_arg1853z00_4483);
																{	/* Unsafe/base64.scm 195 */
																	uint8_t BgL_arg1852z00_4486;

																	{	/* Unsafe/base64.scm 195 */
																		long BgL_tmpz00_5116;

																		BgL_tmpz00_5116 = (long) (BgL_cz00_4485);
																		BgL_arg1852z00_4486 =
																			BGL_U8VREF
																			(BGl_bytezd2tablezd2zz__base64z00,
																			BgL_tmpz00_5116);
																	}
																	{	/* Unsafe/base64.scm 195 */
																		int8_t BgL_xz00_4487;

																		BgL_xz00_4487 =
																			(int8_t) (BgL_arg1852z00_4486);
																		{	/* Unsafe/base64.scm 195 */
																			long BgL_arg2275z00_4488;

																			BgL_arg2275z00_4488 =
																				(long) (BgL_xz00_4487);
																			BgL_res2328z00_4484 =
																				(int) ((long) (BgL_arg2275z00_4488));
															}}}}
															BgL_q1z00_4481 = BgL_res2328z00_4484;
												}}}
												{	/* Unsafe/base64.scm 346 */
													long BgL_v0z00_4489;

													BgL_v0z00_4489 =
														(
														((long) (BgL_q0z00_4474) <<
															(int) (2L)) |
														((long) (BgL_q1z00_4481) >> (int) (4L)));
													{	/* Unsafe/base64.scm 347 */

														{	/* Unsafe/base64.scm 348 */
															unsigned char BgL_arg1483z00_4490;

															BgL_arg1483z00_4490 = (BgL_v0z00_4489);
															STRING_SET(BgL_bufz00_4284, BgL_wz00_4379,
																BgL_arg1483z00_4490);
														}
														return
															bgl_display_substring(BgL_bufz00_4284, 0L,
															BgL_wz00_4379, BgL_opz00_4283);
													}
												}
											}
										}
									}
								else
									{	/* Unsafe/base64.scm 365 */
										return BFALSE;
									}
								break;
							case 5L:

								goto BgL_chunk1z00_4387;
								break;
							case 4L:

								if (BgL_eofzd2nozd2paddingz00_4288)
									{	/* Unsafe/base64.scm 361 */
									BgL_chunk2z00_4386:
										{	/* Unsafe/base64.scm 336 */
											int BgL_q0z00_4457;

											{	/* Unsafe/base64.scm 336 */
												int BgL_arg1499z00_4458;

												{	/* Unsafe/base64.scm 300 */
													int BgL_tmpz00_5134;

													BgL_tmpz00_5134 = (int) (0L);
													BgL_arg1499z00_4458 =
														RGC_BUFFER_BYTE_REF(BgL_iportz00_4282,
														BgL_tmpz00_5134);
												}
												{	/* Unsafe/base64.scm 336 */
													int BgL_res2329z00_4459;

													{	/* Unsafe/base64.scm 336 */
														char BgL_cz00_4460;

														BgL_cz00_4460 = (signed char) (BgL_arg1499z00_4458);
														{	/* Unsafe/base64.scm 195 */
															uint8_t BgL_arg1852z00_4461;

															{	/* Unsafe/base64.scm 195 */
																long BgL_tmpz00_5138;

																BgL_tmpz00_5138 = (long) (BgL_cz00_4460);
																BgL_arg1852z00_4461 =
																	BGL_U8VREF(BGl_bytezd2tablezd2zz__base64z00,
																	BgL_tmpz00_5138);
															}
															{	/* Unsafe/base64.scm 195 */
																int8_t BgL_xz00_4462;

																BgL_xz00_4462 = (int8_t) (BgL_arg1852z00_4461);
																{	/* Unsafe/base64.scm 195 */
																	long BgL_arg2275z00_4463;

																	BgL_arg2275z00_4463 = (long) (BgL_xz00_4462);
																	BgL_res2329z00_4459 =
																		(int) ((long) (BgL_arg2275z00_4463));
													}}}}
													BgL_q0z00_4457 = BgL_res2329z00_4459;
											}}
											{	/* Unsafe/base64.scm 336 */
												int BgL_q1z00_4464;

												{	/* Unsafe/base64.scm 337 */
													int BgL_arg1498z00_4465;

													{	/* Unsafe/base64.scm 300 */
														int BgL_tmpz00_5145;

														BgL_tmpz00_5145 = (int) (1L);
														BgL_arg1498z00_4465 =
															RGC_BUFFER_BYTE_REF(BgL_iportz00_4282,
															BgL_tmpz00_5145);
													}
													{	/* Unsafe/base64.scm 337 */
														int BgL_res2330z00_4466;

														{	/* Unsafe/base64.scm 337 */
															char BgL_cz00_4467;

															BgL_cz00_4467 =
																(signed char) (BgL_arg1498z00_4465);
															{	/* Unsafe/base64.scm 195 */
																uint8_t BgL_arg1852z00_4468;

																{	/* Unsafe/base64.scm 195 */
																	long BgL_tmpz00_5149;

																	BgL_tmpz00_5149 = (long) (BgL_cz00_4467);
																	BgL_arg1852z00_4468 =
																		BGL_U8VREF(BGl_bytezd2tablezd2zz__base64z00,
																		BgL_tmpz00_5149);
																}
																{	/* Unsafe/base64.scm 195 */
																	int8_t BgL_xz00_4469;

																	BgL_xz00_4469 =
																		(int8_t) (BgL_arg1852z00_4468);
																	{	/* Unsafe/base64.scm 195 */
																		long BgL_arg2275z00_4470;

																		BgL_arg2275z00_4470 =
																			(long) (BgL_xz00_4469);
																		BgL_res2330z00_4466 =
																			(int) ((long) (BgL_arg2275z00_4470));
														}}}}
														BgL_q1z00_4464 = BgL_res2330z00_4466;
												}}
												{	/* Unsafe/base64.scm 337 */
													long BgL_v0z00_4471;

													BgL_v0z00_4471 =
														(
														((long) (BgL_q0z00_4457) <<
															(int) (2L)) |
														((long) (BgL_q1z00_4464) >> (int) (4L)));
													{	/* Unsafe/base64.scm 338 */
														long BgL_v1z00_4472;

														BgL_v1z00_4472 =
															(((long) (BgL_q1z00_4464) << (int) (4L)) & 240L);
														{	/* Unsafe/base64.scm 339 */

															{	/* Unsafe/base64.scm 340 */
																unsigned char BgL_arg1489z00_4473;

																BgL_arg1489z00_4473 = (BgL_v0z00_4471);
																STRING_SET(BgL_bufz00_4284, BgL_wz00_4379,
																	BgL_arg1489z00_4473);
															}
															{	/* Unsafe/base64.scm 341 */
																unsigned char BgL_auxz00_5171;
																long BgL_tmpz00_5169;

																BgL_auxz00_5171 = (BgL_v1z00_4472);
																BgL_tmpz00_5169 = (BgL_wz00_4379 + 1L);
																STRING_SET(BgL_bufz00_4284, BgL_tmpz00_5169,
																	BgL_auxz00_5171);
															}
															{	/* Unsafe/base64.scm 342 */
																long BgL_tmpz00_5174;

																BgL_tmpz00_5174 = (BgL_wz00_4379 + 1L);
																return
																	bgl_display_substring(BgL_bufz00_4284, 0L,
																	BgL_tmpz00_5174, BgL_opz00_4283);
															}
														}
													}
												}
											}
										}
									}
								else
									{	/* Unsafe/base64.scm 361 */
										return BFALSE;
									}
								break;
							case 3L:

								goto BgL_chunk2z00_4386;
								break;
							case 2L:

								if (BgL_eofzd2nozd2paddingz00_4288)
									{	/* Unsafe/base64.scm 357 */
									BgL_chunk3z00_4385:
										{	/* Unsafe/base64.scm 324 */
											int BgL_q0z00_4432;

											{	/* Unsafe/base64.scm 324 */
												int BgL_arg1517z00_4433;

												{	/* Unsafe/base64.scm 300 */
													int BgL_tmpz00_5178;

													BgL_tmpz00_5178 = (int) (0L);
													BgL_arg1517z00_4433 =
														RGC_BUFFER_BYTE_REF(BgL_iportz00_4282,
														BgL_tmpz00_5178);
												}
												{	/* Unsafe/base64.scm 324 */
													int BgL_res2331z00_4434;

													{	/* Unsafe/base64.scm 324 */
														char BgL_cz00_4435;

														BgL_cz00_4435 = (signed char) (BgL_arg1517z00_4433);
														{	/* Unsafe/base64.scm 195 */
															uint8_t BgL_arg1852z00_4436;

															{	/* Unsafe/base64.scm 195 */
																long BgL_tmpz00_5182;

																BgL_tmpz00_5182 = (long) (BgL_cz00_4435);
																BgL_arg1852z00_4436 =
																	BGL_U8VREF(BGl_bytezd2tablezd2zz__base64z00,
																	BgL_tmpz00_5182);
															}
															{	/* Unsafe/base64.scm 195 */
																int8_t BgL_xz00_4437;

																BgL_xz00_4437 = (int8_t) (BgL_arg1852z00_4436);
																{	/* Unsafe/base64.scm 195 */
																	long BgL_arg2275z00_4438;

																	BgL_arg2275z00_4438 = (long) (BgL_xz00_4437);
																	BgL_res2331z00_4434 =
																		(int) ((long) (BgL_arg2275z00_4438));
													}}}}
													BgL_q0z00_4432 = BgL_res2331z00_4434;
											}}
											{	/* Unsafe/base64.scm 324 */
												int BgL_q1z00_4439;

												{	/* Unsafe/base64.scm 325 */
													int BgL_arg1516z00_4440;

													{	/* Unsafe/base64.scm 300 */
														int BgL_tmpz00_5189;

														BgL_tmpz00_5189 = (int) (1L);
														BgL_arg1516z00_4440 =
															RGC_BUFFER_BYTE_REF(BgL_iportz00_4282,
															BgL_tmpz00_5189);
													}
													{	/* Unsafe/base64.scm 325 */
														int BgL_res2332z00_4441;

														{	/* Unsafe/base64.scm 325 */
															char BgL_cz00_4442;

															BgL_cz00_4442 =
																(signed char) (BgL_arg1516z00_4440);
															{	/* Unsafe/base64.scm 195 */
																uint8_t BgL_arg1852z00_4443;

																{	/* Unsafe/base64.scm 195 */
																	long BgL_tmpz00_5193;

																	BgL_tmpz00_5193 = (long) (BgL_cz00_4442);
																	BgL_arg1852z00_4443 =
																		BGL_U8VREF(BGl_bytezd2tablezd2zz__base64z00,
																		BgL_tmpz00_5193);
																}
																{	/* Unsafe/base64.scm 195 */
																	int8_t BgL_xz00_4444;

																	BgL_xz00_4444 =
																		(int8_t) (BgL_arg1852z00_4443);
																	{	/* Unsafe/base64.scm 195 */
																		long BgL_arg2275z00_4445;

																		BgL_arg2275z00_4445 =
																			(long) (BgL_xz00_4444);
																		BgL_res2332z00_4441 =
																			(int) ((long) (BgL_arg2275z00_4445));
														}}}}
														BgL_q1z00_4439 = BgL_res2332z00_4441;
												}}
												{	/* Unsafe/base64.scm 325 */
													int BgL_q2z00_4446;

													{	/* Unsafe/base64.scm 326 */
														int BgL_arg1515z00_4447;

														{	/* Unsafe/base64.scm 300 */
															int BgL_tmpz00_5200;

															BgL_tmpz00_5200 = (int) (2L);
															BgL_arg1515z00_4447 =
																RGC_BUFFER_BYTE_REF(BgL_iportz00_4282,
																BgL_tmpz00_5200);
														}
														{	/* Unsafe/base64.scm 326 */
															int BgL_res2333z00_4448;

															{	/* Unsafe/base64.scm 326 */
																char BgL_cz00_4449;

																BgL_cz00_4449 =
																	(signed char) (BgL_arg1515z00_4447);
																{	/* Unsafe/base64.scm 195 */
																	uint8_t BgL_arg1852z00_4450;

																	{	/* Unsafe/base64.scm 195 */
																		long BgL_tmpz00_5204;

																		BgL_tmpz00_5204 = (long) (BgL_cz00_4449);
																		BgL_arg1852z00_4450 =
																			BGL_U8VREF
																			(BGl_bytezd2tablezd2zz__base64z00,
																			BgL_tmpz00_5204);
																	}
																	{	/* Unsafe/base64.scm 195 */
																		int8_t BgL_xz00_4451;

																		BgL_xz00_4451 =
																			(int8_t) (BgL_arg1852z00_4450);
																		{	/* Unsafe/base64.scm 195 */
																			long BgL_arg2275z00_4452;

																			BgL_arg2275z00_4452 =
																				(long) (BgL_xz00_4451);
																			BgL_res2333z00_4448 =
																				(int) ((long) (BgL_arg2275z00_4452));
															}}}}
															BgL_q2z00_4446 = BgL_res2333z00_4448;
													}}
													{	/* Unsafe/base64.scm 326 */
														long BgL_v0z00_4453;

														BgL_v0z00_4453 =
															(
															((long) (BgL_q0z00_4432) <<
																(int) (2L)) |
															((long) (BgL_q1z00_4439) >> (int) (4L)));
														{	/* Unsafe/base64.scm 327 */
															long BgL_v1z00_4454;

															BgL_v1z00_4454 =
																(
																(((long) (BgL_q1z00_4439) <<
																		(int) (4L)) & 240L) |
																((long) (BgL_q2z00_4446) >> (int) (2L)));
															{	/* Unsafe/base64.scm 328 */
																long BgL_v2z00_4455;

																BgL_v2z00_4455 =
																	(
																	((long) (BgL_q2z00_4446) <<
																		(int) (6L)) & 192L);
																{	/* Unsafe/base64.scm 329 */

																	{	/* Unsafe/base64.scm 330 */
																		unsigned char BgL_arg1501z00_4456;

																		BgL_arg1501z00_4456 = (BgL_v0z00_4453);
																		STRING_SET(BgL_bufz00_4284, BgL_wz00_4379,
																			BgL_arg1501z00_4456);
																	}
																	{	/* Unsafe/base64.scm 331 */
																		unsigned char BgL_auxz00_5234;
																		long BgL_tmpz00_5232;

																		BgL_auxz00_5234 = (BgL_v1z00_4454);
																		BgL_tmpz00_5232 = (BgL_wz00_4379 + 1L);
																		STRING_SET(BgL_bufz00_4284, BgL_tmpz00_5232,
																			BgL_auxz00_5234);
																	}
																	{	/* Unsafe/base64.scm 332 */
																		unsigned char BgL_auxz00_5239;
																		long BgL_tmpz00_5237;

																		BgL_auxz00_5239 = (BgL_v2z00_4455);
																		BgL_tmpz00_5237 = (BgL_wz00_4379 + 2L);
																		STRING_SET(BgL_bufz00_4284, BgL_tmpz00_5237,
																			BgL_auxz00_5239);
																	}
																	{	/* Unsafe/base64.scm 333 */
																		long BgL_tmpz00_5242;

																		BgL_tmpz00_5242 = (BgL_wz00_4379 + 2L);
																		return
																			bgl_display_substring(BgL_bufz00_4284, 0L,
																			BgL_tmpz00_5242, BgL_opz00_4283);
																	}
																}
															}
														}
													}
												}
											}
										}
									}
								else
									{	/* Unsafe/base64.scm 357 */
										return BFALSE;
									}
								break;
							case 1L:

								goto BgL_chunk3z00_4385;
								break;
							case 0L:

								{	/* Unsafe/base64.scm 306 */
									int BgL_q0z00_4399;

									{	/* Unsafe/base64.scm 306 */
										int BgL_arg1542z00_4400;

										{	/* Unsafe/base64.scm 300 */
											int BgL_tmpz00_5245;

											BgL_tmpz00_5245 = (int) (0L);
											BgL_arg1542z00_4400 =
												RGC_BUFFER_BYTE_REF(BgL_iportz00_4282, BgL_tmpz00_5245);
										}
										{	/* Unsafe/base64.scm 306 */
											int BgL_res2334z00_4401;

											{	/* Unsafe/base64.scm 306 */
												char BgL_cz00_4402;

												BgL_cz00_4402 = (signed char) (BgL_arg1542z00_4400);
												{	/* Unsafe/base64.scm 195 */
													uint8_t BgL_arg1852z00_4403;

													{	/* Unsafe/base64.scm 195 */
														long BgL_tmpz00_5249;

														BgL_tmpz00_5249 = (long) (BgL_cz00_4402);
														BgL_arg1852z00_4403 =
															BGL_U8VREF(BGl_bytezd2tablezd2zz__base64z00,
															BgL_tmpz00_5249);
													}
													{	/* Unsafe/base64.scm 195 */
														int8_t BgL_xz00_4404;

														BgL_xz00_4404 = (int8_t) (BgL_arg1852z00_4403);
														{	/* Unsafe/base64.scm 195 */
															long BgL_arg2275z00_4405;

															BgL_arg2275z00_4405 = (long) (BgL_xz00_4404);
															BgL_res2334z00_4401 =
																(int) ((long) (BgL_arg2275z00_4405));
											}}}}
											BgL_q0z00_4399 = BgL_res2334z00_4401;
									}}
									{	/* Unsafe/base64.scm 306 */
										int BgL_q1z00_4406;

										{	/* Unsafe/base64.scm 307 */
											int BgL_arg1541z00_4407;

											{	/* Unsafe/base64.scm 300 */
												int BgL_tmpz00_5256;

												BgL_tmpz00_5256 = (int) (1L);
												BgL_arg1541z00_4407 =
													RGC_BUFFER_BYTE_REF(BgL_iportz00_4282,
													BgL_tmpz00_5256);
											}
											{	/* Unsafe/base64.scm 307 */
												int BgL_res2335z00_4408;

												{	/* Unsafe/base64.scm 307 */
													char BgL_cz00_4409;

													BgL_cz00_4409 = (signed char) (BgL_arg1541z00_4407);
													{	/* Unsafe/base64.scm 195 */
														uint8_t BgL_arg1852z00_4410;

														{	/* Unsafe/base64.scm 195 */
															long BgL_tmpz00_5260;

															BgL_tmpz00_5260 = (long) (BgL_cz00_4409);
															BgL_arg1852z00_4410 =
																BGL_U8VREF(BGl_bytezd2tablezd2zz__base64z00,
																BgL_tmpz00_5260);
														}
														{	/* Unsafe/base64.scm 195 */
															int8_t BgL_xz00_4411;

															BgL_xz00_4411 = (int8_t) (BgL_arg1852z00_4410);
															{	/* Unsafe/base64.scm 195 */
																long BgL_arg2275z00_4412;

																BgL_arg2275z00_4412 = (long) (BgL_xz00_4411);
																BgL_res2335z00_4408 =
																	(int) ((long) (BgL_arg2275z00_4412));
												}}}}
												BgL_q1z00_4406 = BgL_res2335z00_4408;
										}}
										{	/* Unsafe/base64.scm 307 */
											int BgL_q2z00_4413;

											{	/* Unsafe/base64.scm 308 */
												int BgL_arg1540z00_4414;

												{	/* Unsafe/base64.scm 300 */
													int BgL_tmpz00_5267;

													BgL_tmpz00_5267 = (int) (2L);
													BgL_arg1540z00_4414 =
														RGC_BUFFER_BYTE_REF(BgL_iportz00_4282,
														BgL_tmpz00_5267);
												}
												{	/* Unsafe/base64.scm 308 */
													int BgL_res2336z00_4415;

													{	/* Unsafe/base64.scm 308 */
														char BgL_cz00_4416;

														BgL_cz00_4416 = (signed char) (BgL_arg1540z00_4414);
														{	/* Unsafe/base64.scm 195 */
															uint8_t BgL_arg1852z00_4417;

															{	/* Unsafe/base64.scm 195 */
																long BgL_tmpz00_5271;

																BgL_tmpz00_5271 = (long) (BgL_cz00_4416);
																BgL_arg1852z00_4417 =
																	BGL_U8VREF(BGl_bytezd2tablezd2zz__base64z00,
																	BgL_tmpz00_5271);
															}
															{	/* Unsafe/base64.scm 195 */
																int8_t BgL_xz00_4418;

																BgL_xz00_4418 = (int8_t) (BgL_arg1852z00_4417);
																{	/* Unsafe/base64.scm 195 */
																	long BgL_arg2275z00_4419;

																	BgL_arg2275z00_4419 = (long) (BgL_xz00_4418);
																	BgL_res2336z00_4415 =
																		(int) ((long) (BgL_arg2275z00_4419));
													}}}}
													BgL_q2z00_4413 = BgL_res2336z00_4415;
											}}
											{	/* Unsafe/base64.scm 308 */
												int BgL_q3z00_4420;

												{	/* Unsafe/base64.scm 309 */
													int BgL_arg1538z00_4421;

													{	/* Unsafe/base64.scm 300 */
														int BgL_tmpz00_5278;

														BgL_tmpz00_5278 = (int) (3L);
														BgL_arg1538z00_4421 =
															RGC_BUFFER_BYTE_REF(BgL_iportz00_4282,
															BgL_tmpz00_5278);
													}
													{	/* Unsafe/base64.scm 309 */
														int BgL_res2337z00_4422;

														{	/* Unsafe/base64.scm 309 */
															char BgL_cz00_4423;

															BgL_cz00_4423 =
																(signed char) (BgL_arg1538z00_4421);
															{	/* Unsafe/base64.scm 195 */
																uint8_t BgL_arg1852z00_4424;

																{	/* Unsafe/base64.scm 195 */
																	long BgL_tmpz00_5282;

																	BgL_tmpz00_5282 = (long) (BgL_cz00_4423);
																	BgL_arg1852z00_4424 =
																		BGL_U8VREF(BGl_bytezd2tablezd2zz__base64z00,
																		BgL_tmpz00_5282);
																}
																{	/* Unsafe/base64.scm 195 */
																	int8_t BgL_xz00_4425;

																	BgL_xz00_4425 =
																		(int8_t) (BgL_arg1852z00_4424);
																	{	/* Unsafe/base64.scm 195 */
																		long BgL_arg2275z00_4426;

																		BgL_arg2275z00_4426 =
																			(long) (BgL_xz00_4425);
																		BgL_res2337z00_4422 =
																			(int) ((long) (BgL_arg2275z00_4426));
														}}}}
														BgL_q3z00_4420 = BgL_res2337z00_4422;
												}}
												{	/* Unsafe/base64.scm 309 */
													long BgL_v0z00_4427;

													BgL_v0z00_4427 =
														(
														((long) (BgL_q0z00_4399) <<
															(int) (2L)) |
														((long) (BgL_q1z00_4406) >> (int) (4L)));
													{	/* Unsafe/base64.scm 310 */
														long BgL_v1z00_4428;

														BgL_v1z00_4428 =
															(
															(((long) (BgL_q1z00_4406) <<
																	(int) (4L)) & 240L) |
															((long) (BgL_q2z00_4413) >> (int) (2L)));
														{	/* Unsafe/base64.scm 311 */
															long BgL_v2z00_4429;

															BgL_v2z00_4429 =
																(
																(((long) (BgL_q2z00_4413) <<
																		(int) (6L)) & 192L) |
																(long) (BgL_q3z00_4420));
															{	/* Unsafe/base64.scm 312 */

																{	/* Unsafe/base64.scm 313 */
																	unsigned char BgL_arg1520z00_4430;

																	BgL_arg1520z00_4430 = (BgL_v0z00_4427);
																	STRING_SET(BgL_bufz00_4284, BgL_wz00_4379,
																		BgL_arg1520z00_4430);
																}
																{	/* Unsafe/base64.scm 314 */
																	unsigned char BgL_auxz00_5314;
																	long BgL_tmpz00_5312;

																	BgL_auxz00_5314 = (BgL_v1z00_4428);
																	BgL_tmpz00_5312 = (BgL_wz00_4379 + 1L);
																	STRING_SET(BgL_bufz00_4284, BgL_tmpz00_5312,
																		BgL_auxz00_5314);
																}
																{	/* Unsafe/base64.scm 315 */
																	unsigned char BgL_auxz00_5319;
																	long BgL_tmpz00_5317;

																	BgL_auxz00_5319 = (BgL_v2z00_4429);
																	BgL_tmpz00_5317 = (BgL_wz00_4379 + 2L);
																	STRING_SET(BgL_bufz00_4284, BgL_tmpz00_5317,
																		BgL_auxz00_5319);
																}
																{	/* Unsafe/base64.scm 316 */
																	long BgL_nwz00_4431;

																	BgL_nwz00_4431 = (BgL_wz00_4379 + 3L);
																	if ((BgL_nwz00_4431 == BgL_lenz00_4286))
																		{	/* Unsafe/base64.scm 317 */
																			bgl_display_string(BgL_bufz00_4284,
																				BgL_opz00_4283);
																			BgL_wz00_4379 = 0L;
																		}
																	else
																		{	/* Unsafe/base64.scm 317 */
																			BgL_wz00_4379 = BgL_nwz00_4431;
																		}
																}
															}
														}
													}
												}
											}
										}
									}
								}
								goto BgL_ignorez00_4383;
								break;
							default:
								return
									BGl_errorz00zz__errorz00(BGl_string2413z00zz__base64z00,
									BGl_string2414z00zz__base64z00, BINT(BgL_matchz00_4395));
							}
					}
				}
			}
		}

	}



/* _base64-encode */
	obj_t BGl__base64zd2encodezd2zz__base64z00(obj_t BgL_env1144z00_7,
		obj_t BgL_opt1143z00_6)
	{
		{	/* Unsafe/base64.scm 71 */
			{	/* Unsafe/base64.scm 71 */
				obj_t BgL_g1145z00_2120;

				{
					obj_t BgL_auxz00_5329;

					if (VECTORP(BgL_opt1143z00_6))
						{	/* Unsafe/base64.scm 71 */
							BgL_auxz00_5329 = BgL_opt1143z00_6;
						}
					else
						{
							obj_t BgL_auxz00_5332;

							BgL_auxz00_5332 =
								BGl_typezd2errorzd2zz__errorz00(BGl_string2415z00zz__base64z00,
								BINT(2752L), BGl_string2416z00zz__base64z00,
								BGl_string2417z00zz__base64z00, BgL_opt1143z00_6);
							FAILURE(BgL_auxz00_5332, BFALSE, BFALSE);
						}
					BgL_g1145z00_2120 = VECTOR_REF(BgL_auxz00_5329, 0L);
				}
				{	/* Unsafe/base64.scm 71 */
					long BgL_aux1147z00_2122;

					{
						obj_t BgL_auxz00_5337;

						if (VECTORP(BgL_opt1143z00_6))
							{	/* Unsafe/base64.scm 71 */
								BgL_auxz00_5337 = BgL_opt1143z00_6;
							}
						else
							{
								obj_t BgL_auxz00_5340;

								BgL_auxz00_5340 =
									BGl_typezd2errorzd2zz__errorz00
									(BGl_string2415z00zz__base64z00, BINT(2752L),
									BGl_string2416z00zz__base64z00,
									BGl_string2417z00zz__base64z00, BgL_opt1143z00_6);
								FAILURE(BgL_auxz00_5340, BFALSE, BFALSE);
							}
						BgL_aux1147z00_2122 = VECTOR_LENGTH(BgL_auxz00_5337);
					}
					switch (BgL_aux1147z00_2122)
						{
						case 1L:

							{	/* Unsafe/base64.scm 71 */

								{	/* Unsafe/base64.scm 71 */
									obj_t BgL_auxz00_5345;

									if (STRINGP(BgL_g1145z00_2120))
										{	/* Unsafe/base64.scm 71 */
											BgL_auxz00_5345 = BgL_g1145z00_2120;
										}
									else
										{
											obj_t BgL_auxz00_5348;

											BgL_auxz00_5348 =
												BGl_typezd2errorzd2zz__errorz00
												(BGl_string2415z00zz__base64z00, BINT(2752L),
												BGl_string2416z00zz__base64z00,
												BGl_string2418z00zz__base64z00, BgL_g1145z00_2120);
											FAILURE(BgL_auxz00_5348, BFALSE, BFALSE);
										}
									return
										BGl_base64zd2encodezd2zz__base64z00(BgL_auxz00_5345,
										BINT(76L));
								}
							}
							break;
						case 2L:

							{	/* Unsafe/base64.scm 71 */
								obj_t BgL_paddingz00_2124;

								{
									obj_t BgL_auxz00_5354;

									if (VECTORP(BgL_opt1143z00_6))
										{	/* Unsafe/base64.scm 71 */
											BgL_auxz00_5354 = BgL_opt1143z00_6;
										}
									else
										{
											obj_t BgL_auxz00_5357;

											BgL_auxz00_5357 =
												BGl_typezd2errorzd2zz__errorz00
												(BGl_string2415z00zz__base64z00, BINT(2752L),
												BGl_string2416z00zz__base64z00,
												BGl_string2417z00zz__base64z00, BgL_opt1143z00_6);
											FAILURE(BgL_auxz00_5357, BFALSE, BFALSE);
										}
									BgL_paddingz00_2124 = VECTOR_REF(BgL_auxz00_5354, 1L);
								}
								{	/* Unsafe/base64.scm 71 */

									{	/* Unsafe/base64.scm 71 */
										obj_t BgL_auxz00_5362;

										if (STRINGP(BgL_g1145z00_2120))
											{	/* Unsafe/base64.scm 71 */
												BgL_auxz00_5362 = BgL_g1145z00_2120;
											}
										else
											{
												obj_t BgL_auxz00_5365;

												BgL_auxz00_5365 =
													BGl_typezd2errorzd2zz__errorz00
													(BGl_string2415z00zz__base64z00, BINT(2752L),
													BGl_string2416z00zz__base64z00,
													BGl_string2418z00zz__base64z00, BgL_g1145z00_2120);
												FAILURE(BgL_auxz00_5365, BFALSE, BFALSE);
											}
										return
											BGl_base64zd2encodezd2zz__base64z00(BgL_auxz00_5362,
											BgL_paddingz00_2124);
									}
								}
							}
							break;
						default:
							return BUNSPEC;
						}
				}
			}
		}

	}



/* base64-encode */
	BGL_EXPORTED_DEF obj_t BGl_base64zd2encodezd2zz__base64z00(obj_t BgL_sz00_4,
		obj_t BgL_paddingz00_5)
	{
		{	/* Unsafe/base64.scm 71 */
			{	/* Unsafe/base64.scm 74 */
				long BgL_lenz00_2128;

				BgL_lenz00_2128 = STRING_LENGTH(BgL_sz00_4);
				{	/* Unsafe/base64.scm 75 */
					long BgL_lenzd23zd2_2129;

					BgL_lenzd23zd2_2129 = (BgL_lenz00_2128 - 3L);
					{	/* Unsafe/base64.scm 76 */
						long BgL_rlenz00_2130;

						BgL_rlenz00_2130 = (4L * ((2L + BgL_lenz00_2128) / 3L));
						{	/* Unsafe/base64.scm 77 */
							long BgL_padz00_2131;

							{	/* Unsafe/base64.scm 78 */
								bool_t BgL_test2576z00_5376;

								if (INTEGERP(BgL_paddingz00_5))
									{	/* Unsafe/base64.scm 78 */
										BgL_test2576z00_5376 = ((long) CINT(BgL_paddingz00_5) > 0L);
									}
								else
									{	/* Unsafe/base64.scm 78 */
										BgL_test2576z00_5376 = ((bool_t) 0);
									}
								if (BgL_test2576z00_5376)
									{	/* Unsafe/base64.scm 78 */
										BgL_padz00_2131 =
											((3L * (long) CINT(BgL_paddingz00_5)) / 4L);
									}
								else
									{	/* Unsafe/base64.scm 78 */
										BgL_padz00_2131 = (-1L);
									}
							}
							{	/* Unsafe/base64.scm 78 */
								long BgL_flenz00_2132;

								if ((BgL_padz00_2131 > 0L))
									{	/* Unsafe/base64.scm 81 */
										BgL_flenz00_2132 =
											(BgL_rlenz00_2130 +
											(BgL_rlenz00_2130 / (long) CINT(BgL_paddingz00_5)));
									}
								else
									{	/* Unsafe/base64.scm 81 */
										BgL_flenz00_2132 = BgL_rlenz00_2130;
									}
								{	/* Unsafe/base64.scm 81 */
									obj_t BgL_resz00_2133;

									BgL_resz00_2133 =
										make_string(BgL_flenz00_2132, ((unsigned char) 10));
									{	/* Unsafe/base64.scm 84 */

										{
											long BgL_xz00_2135;
											long BgL_yz00_2136;

											BgL_xz00_2135 = 0L;
											BgL_yz00_2136 = 0L;
										BgL_zc3z04anonymousza31745ze3z87_2137:
											if ((BgL_xz00_2135 <= BgL_lenzd23zd2_2129))
												{	/* Unsafe/base64.scm 88 */
													long BgL_i0z00_2139;

													BgL_i0z00_2139 =
														(STRING_REF(BgL_sz00_4, BgL_xz00_2135));
													{	/* Unsafe/base64.scm 88 */
														long BgL_i1z00_2140;

														BgL_i1z00_2140 =
															(STRING_REF(BgL_sz00_4, (1L + BgL_xz00_2135)));
														{	/* Unsafe/base64.scm 89 */
															long BgL_i2z00_2141;

															BgL_i2z00_2141 =
																(STRING_REF(BgL_sz00_4, (2L + BgL_xz00_2135)));
															{	/* Unsafe/base64.scm 90 */
																long BgL_o0z00_2142;

																BgL_o0z00_2142 =
																	((BgL_i0z00_2139 & 252L) >> (int) (2L));
																{	/* Unsafe/base64.scm 91 */
																	long BgL_o1z00_2143;

																	BgL_o1z00_2143 =
																		(
																		((BgL_i0z00_2139 & 3L) <<
																			(int) (4L)) |
																		((BgL_i1z00_2140 & 240L) >> (int) (4L)));
																	{	/* Unsafe/base64.scm 92 */
																		long BgL_o2z00_2144;

																		BgL_o2z00_2144 =
																			(
																			((BgL_i1z00_2140 & 15L) <<
																				(int) (2L)) |
																			((BgL_i2z00_2141 & 192L) >> (int) (6L)));
																		{	/* Unsafe/base64.scm 94 */
																			long BgL_o3z00_2145;

																			BgL_o3z00_2145 = (BgL_i2z00_2141 & 63L);
																			{	/* Unsafe/base64.scm 96 */

																				{	/* Unsafe/base64.scm 97 */
																					unsigned char BgL_tmpz00_5418;

																					BgL_tmpz00_5418 =
																						STRING_REF
																						(BGl_string2419z00zz__base64z00,
																						BgL_o0z00_2142);
																					STRING_SET(BgL_resz00_2133,
																						BgL_yz00_2136, BgL_tmpz00_5418);
																				}
																				{	/* Unsafe/base64.scm 98 */
																					unsigned char BgL_auxz00_5423;
																					long BgL_tmpz00_5421;

																					BgL_auxz00_5423 =
																						STRING_REF
																						(BGl_string2419z00zz__base64z00,
																						BgL_o1z00_2143);
																					BgL_tmpz00_5421 =
																						(BgL_yz00_2136 + 1L);
																					STRING_SET(BgL_resz00_2133,
																						BgL_tmpz00_5421, BgL_auxz00_5423);
																				}
																				{	/* Unsafe/base64.scm 99 */
																					unsigned char BgL_auxz00_5428;
																					long BgL_tmpz00_5426;

																					BgL_auxz00_5428 =
																						STRING_REF
																						(BGl_string2419z00zz__base64z00,
																						BgL_o2z00_2144);
																					BgL_tmpz00_5426 =
																						(BgL_yz00_2136 + 2L);
																					STRING_SET(BgL_resz00_2133,
																						BgL_tmpz00_5426, BgL_auxz00_5428);
																				}
																				{	/* Unsafe/base64.scm 100 */
																					unsigned char BgL_auxz00_5433;
																					long BgL_tmpz00_5431;

																					BgL_auxz00_5433 =
																						STRING_REF
																						(BGl_string2419z00zz__base64z00,
																						BgL_o3z00_2145);
																					BgL_tmpz00_5431 =
																						(BgL_yz00_2136 + 3L);
																					STRING_SET(BgL_resz00_2133,
																						BgL_tmpz00_5431, BgL_auxz00_5433);
																				}
																				{	/* Unsafe/base64.scm 101 */
																					long BgL_nxz00_2153;

																					BgL_nxz00_2153 = (BgL_xz00_2135 + 3L);
																					{	/* Unsafe/base64.scm 102 */
																						bool_t BgL_test2580z00_5437;

																						if ((BgL_padz00_2131 > 0L))
																							{	/* Unsafe/base64.scm 102 */
																								long BgL_arg1762z00_2160;

																								{	/* Unsafe/base64.scm 102 */
																									long BgL_n1z00_3548;
																									long BgL_n2z00_3549;

																									BgL_n1z00_3548 =
																										BgL_nxz00_2153;
																									BgL_n2z00_3549 =
																										BgL_padz00_2131;
																									{	/* Unsafe/base64.scm 102 */
																										bool_t BgL_test2582z00_5440;

																										{	/* Unsafe/base64.scm 102 */
																											long BgL_arg2170z00_3551;

																											BgL_arg2170z00_3551 =
																												(((BgL_n1z00_3548) |
																													(BgL_n2z00_3549)) &
																												-2147483648);
																											BgL_test2582z00_5440 =
																												(BgL_arg2170z00_3551 ==
																												0L);
																										}
																										if (BgL_test2582z00_5440)
																											{	/* Unsafe/base64.scm 102 */
																												int32_t
																													BgL_arg2167z00_3552;
																												{	/* Unsafe/base64.scm 102 */
																													int32_t
																														BgL_arg2168z00_3553;
																													int32_t
																														BgL_arg2169z00_3554;
																													BgL_arg2168z00_3553 =
																														(int32_t)
																														(BgL_n1z00_3548);
																													BgL_arg2169z00_3554 =
																														(int32_t)
																														(BgL_n2z00_3549);
																													BgL_arg2167z00_3552 =
																														(BgL_arg2168z00_3553
																														%
																														BgL_arg2169z00_3554);
																												}
																												{	/* Unsafe/base64.scm 102 */
																													long
																														BgL_arg2271z00_3559;
																													BgL_arg2271z00_3559 =
																														(long)
																														(BgL_arg2167z00_3552);
																													BgL_arg1762z00_2160 =
																														(long)
																														(BgL_arg2271z00_3559);
																											}}
																										else
																											{	/* Unsafe/base64.scm 102 */
																												BgL_arg1762z00_2160 =
																													(BgL_n1z00_3548 %
																													BgL_n2z00_3549);
																											}
																									}
																								}
																								BgL_test2580z00_5437 =
																									(BgL_arg1762z00_2160 == 0L);
																							}
																						else
																							{	/* Unsafe/base64.scm 102 */
																								BgL_test2580z00_5437 =
																									((bool_t) 0);
																							}
																						if (BgL_test2580z00_5437)
																							{
																								long BgL_yz00_5451;
																								long BgL_xz00_5450;

																								BgL_xz00_5450 = BgL_nxz00_2153;
																								BgL_yz00_5451 =
																									(BgL_yz00_2136 + 5L);
																								BgL_yz00_2136 = BgL_yz00_5451;
																								BgL_xz00_2135 = BgL_xz00_5450;
																								goto
																									BgL_zc3z04anonymousza31745ze3z87_2137;
																							}
																						else
																							{
																								long BgL_yz00_5454;
																								long BgL_xz00_5453;

																								BgL_xz00_5453 = BgL_nxz00_2153;
																								BgL_yz00_5454 =
																									(BgL_yz00_2136 + 4L);
																								BgL_yz00_2136 = BgL_yz00_5454;
																								BgL_xz00_2135 = BgL_xz00_5453;
																								goto
																									BgL_zc3z04anonymousza31745ze3z87_2137;
																							}
																					}
																				}
																			}
																		}
																	}
																}
															}
														}
													}
												}
											else
												{	/* Unsafe/base64.scm 105 */
													long BgL_aux1041z00_2176;

													BgL_aux1041z00_2176 =
														(BgL_lenz00_2128 - BgL_xz00_2135);
													switch (BgL_aux1041z00_2176)
														{
														case 2L:

															{	/* Unsafe/base64.scm 107 */
																long BgL_i0z00_2177;

																BgL_i0z00_2177 =
																	(STRING_REF(BgL_sz00_4, BgL_xz00_2135));
																{	/* Unsafe/base64.scm 107 */
																	long BgL_i1z00_2178;

																	BgL_i1z00_2178 =
																		(STRING_REF(BgL_sz00_4,
																			(BgL_xz00_2135 + 1L)));
																	{	/* Unsafe/base64.scm 108 */
																		long BgL_o0z00_2179;

																		BgL_o0z00_2179 =
																			((BgL_i0z00_2177 & 252L) >> (int) (2L));
																		{	/* Unsafe/base64.scm 109 */
																			long BgL_o1z00_2180;

																			BgL_o1z00_2180 =
																				(
																				((BgL_i0z00_2177 & 3L) <<
																					(int) (4L)) |
																				((BgL_i1z00_2178 & 240L) >>
																					(int) (4L)));
																			{	/* Unsafe/base64.scm 110 */
																				long BgL_o2z00_2181;

																				BgL_o2z00_2181 =
																					(
																					(BgL_i1z00_2178 & 15L) << (int) (2L));
																				{	/* Unsafe/base64.scm 112 */

																					{	/* Unsafe/base64.scm 113 */
																						unsigned char BgL_tmpz00_5475;

																						BgL_tmpz00_5475 =
																							STRING_REF
																							(BGl_string2419z00zz__base64z00,
																							BgL_o0z00_2179);
																						STRING_SET(BgL_resz00_2133,
																							BgL_yz00_2136, BgL_tmpz00_5475);
																					}
																					{	/* Unsafe/base64.scm 114 */
																						unsigned char BgL_auxz00_5480;
																						long BgL_tmpz00_5478;

																						BgL_auxz00_5480 =
																							STRING_REF
																							(BGl_string2419z00zz__base64z00,
																							BgL_o1z00_2180);
																						BgL_tmpz00_5478 =
																							(BgL_yz00_2136 + 1L);
																						STRING_SET(BgL_resz00_2133,
																							BgL_tmpz00_5478, BgL_auxz00_5480);
																					}
																					{	/* Unsafe/base64.scm 115 */
																						unsigned char BgL_auxz00_5485;
																						long BgL_tmpz00_5483;

																						BgL_auxz00_5485 =
																							STRING_REF
																							(BGl_string2419z00zz__base64z00,
																							BgL_o2z00_2181);
																						BgL_tmpz00_5483 =
																							(BgL_yz00_2136 + 2L);
																						STRING_SET(BgL_resz00_2133,
																							BgL_tmpz00_5483, BgL_auxz00_5485);
																					}
																					{	/* Unsafe/base64.scm 116 */
																						long BgL_tmpz00_5488;

																						BgL_tmpz00_5488 =
																							(BgL_yz00_2136 + 3L);
																						STRING_SET(BgL_resz00_2133,
																							BgL_tmpz00_5488,
																							((unsigned char) '='));
															}}}}}}} break;
														case 1L:

															{	/* Unsafe/base64.scm 118 */
																long BgL_iz00_2197;

																BgL_iz00_2197 =
																	(STRING_REF(BgL_sz00_4, BgL_xz00_2135));
																{	/* Unsafe/base64.scm 118 */
																	long BgL_o0z00_2198;

																	BgL_o0z00_2198 =
																		((BgL_iz00_2197 & 252L) >> (int) (2L));
																	{	/* Unsafe/base64.scm 119 */
																		long BgL_o1z00_2199;

																		BgL_o1z00_2199 =
																			((BgL_iz00_2197 & 3L) << (int) (4L));
																		{	/* Unsafe/base64.scm 120 */

																			{	/* Unsafe/base64.scm 121 */
																				unsigned char BgL_tmpz00_5499;

																				BgL_tmpz00_5499 =
																					STRING_REF
																					(BGl_string2419z00zz__base64z00,
																					BgL_o0z00_2198);
																				STRING_SET(BgL_resz00_2133,
																					BgL_yz00_2136, BgL_tmpz00_5499);
																			}
																			{	/* Unsafe/base64.scm 122 */
																				unsigned char BgL_auxz00_5504;
																				long BgL_tmpz00_5502;

																				BgL_auxz00_5504 =
																					STRING_REF
																					(BGl_string2419z00zz__base64z00,
																					BgL_o1z00_2199);
																				BgL_tmpz00_5502 = (BgL_yz00_2136 + 1L);
																				STRING_SET(BgL_resz00_2133,
																					BgL_tmpz00_5502, BgL_auxz00_5504);
																			}
																			{	/* Unsafe/base64.scm 123 */
																				long BgL_tmpz00_5507;

																				BgL_tmpz00_5507 = (BgL_yz00_2136 + 2L);
																				STRING_SET(BgL_resz00_2133,
																					BgL_tmpz00_5507,
																					((unsigned char) '='));
																			}
																			{	/* Unsafe/base64.scm 124 */
																				long BgL_tmpz00_5510;

																				BgL_tmpz00_5510 = (BgL_yz00_2136 + 3L);
																				STRING_SET(BgL_resz00_2133,
																					BgL_tmpz00_5510,
																					((unsigned char) '='));
															}}}}} break;
														default:
															BUNSPEC;
														}
												}
										}
										return BgL_resz00_2133;
									}
								}
							}
						}
					}
				}
			}
		}

	}



/* _base64-encode-port */
	obj_t BGl__base64zd2encodezd2portz00zz__base64z00(obj_t BgL_env1149z00_12,
		obj_t BgL_opt1148z00_11)
	{
		{	/* Unsafe/base64.scm 130 */
			{	/* Unsafe/base64.scm 130 */
				obj_t BgL_g1150z00_2217;
				obj_t BgL_g1151z00_2218;

				{
					obj_t BgL_auxz00_5514;

					if (VECTORP(BgL_opt1148z00_11))
						{	/* Unsafe/base64.scm 130 */
							BgL_auxz00_5514 = BgL_opt1148z00_11;
						}
					else
						{
							obj_t BgL_auxz00_5517;

							BgL_auxz00_5517 =
								BGl_typezd2errorzd2zz__errorz00(BGl_string2415z00zz__base64z00,
								BINT(4911L), BGl_string2420z00zz__base64z00,
								BGl_string2417z00zz__base64z00, BgL_opt1148z00_11);
							FAILURE(BgL_auxz00_5517, BFALSE, BFALSE);
						}
					BgL_g1150z00_2217 = VECTOR_REF(BgL_auxz00_5514, 0L);
				}
				{
					obj_t BgL_auxz00_5522;

					if (VECTORP(BgL_opt1148z00_11))
						{	/* Unsafe/base64.scm 130 */
							BgL_auxz00_5522 = BgL_opt1148z00_11;
						}
					else
						{
							obj_t BgL_auxz00_5525;

							BgL_auxz00_5525 =
								BGl_typezd2errorzd2zz__errorz00(BGl_string2415z00zz__base64z00,
								BINT(4911L), BGl_string2420z00zz__base64z00,
								BGl_string2417z00zz__base64z00, BgL_opt1148z00_11);
							FAILURE(BgL_auxz00_5525, BFALSE, BFALSE);
						}
					BgL_g1151z00_2218 = VECTOR_REF(BgL_auxz00_5522, 1L);
				}
				{	/* Unsafe/base64.scm 130 */
					long BgL_aux1153z00_2220;

					{
						obj_t BgL_auxz00_5530;

						if (VECTORP(BgL_opt1148z00_11))
							{	/* Unsafe/base64.scm 130 */
								BgL_auxz00_5530 = BgL_opt1148z00_11;
							}
						else
							{
								obj_t BgL_auxz00_5533;

								BgL_auxz00_5533 =
									BGl_typezd2errorzd2zz__errorz00
									(BGl_string2415z00zz__base64z00, BINT(4911L),
									BGl_string2420z00zz__base64z00,
									BGl_string2417z00zz__base64z00, BgL_opt1148z00_11);
								FAILURE(BgL_auxz00_5533, BFALSE, BFALSE);
							}
						BgL_aux1153z00_2220 = VECTOR_LENGTH(BgL_auxz00_5530);
					}
					switch (BgL_aux1153z00_2220)
						{
						case 2L:

							{	/* Unsafe/base64.scm 130 */

								{	/* Unsafe/base64.scm 130 */
									obj_t BgL_auxz00_5545;
									obj_t BgL_auxz00_5538;

									if (OUTPUT_PORTP(BgL_g1151z00_2218))
										{	/* Unsafe/base64.scm 130 */
											BgL_auxz00_5545 = BgL_g1151z00_2218;
										}
									else
										{
											obj_t BgL_auxz00_5548;

											BgL_auxz00_5548 =
												BGl_typezd2errorzd2zz__errorz00
												(BGl_string2415z00zz__base64z00, BINT(4911L),
												BGl_string2420z00zz__base64z00,
												BGl_string2422z00zz__base64z00, BgL_g1151z00_2218);
											FAILURE(BgL_auxz00_5548, BFALSE, BFALSE);
										}
									if (INPUT_PORTP(BgL_g1150z00_2217))
										{	/* Unsafe/base64.scm 130 */
											BgL_auxz00_5538 = BgL_g1150z00_2217;
										}
									else
										{
											obj_t BgL_auxz00_5541;

											BgL_auxz00_5541 =
												BGl_typezd2errorzd2zz__errorz00
												(BGl_string2415z00zz__base64z00, BINT(4911L),
												BGl_string2420z00zz__base64z00,
												BGl_string2421z00zz__base64z00, BgL_g1150z00_2217);
											FAILURE(BgL_auxz00_5541, BFALSE, BFALSE);
										}
									return
										BGl_base64zd2encodezd2portz00zz__base64z00(BgL_auxz00_5538,
										BgL_auxz00_5545, BINT(76L));
								}
							}
							break;
						case 3L:

							{	/* Unsafe/base64.scm 130 */
								obj_t BgL_paddingz00_2222;

								{
									obj_t BgL_auxz00_5554;

									if (VECTORP(BgL_opt1148z00_11))
										{	/* Unsafe/base64.scm 130 */
											BgL_auxz00_5554 = BgL_opt1148z00_11;
										}
									else
										{
											obj_t BgL_auxz00_5557;

											BgL_auxz00_5557 =
												BGl_typezd2errorzd2zz__errorz00
												(BGl_string2415z00zz__base64z00, BINT(4911L),
												BGl_string2420z00zz__base64z00,
												BGl_string2417z00zz__base64z00, BgL_opt1148z00_11);
											FAILURE(BgL_auxz00_5557, BFALSE, BFALSE);
										}
									BgL_paddingz00_2222 = VECTOR_REF(BgL_auxz00_5554, 2L);
								}
								{	/* Unsafe/base64.scm 130 */

									{	/* Unsafe/base64.scm 130 */
										obj_t BgL_auxz00_5569;
										obj_t BgL_auxz00_5562;

										if (OUTPUT_PORTP(BgL_g1151z00_2218))
											{	/* Unsafe/base64.scm 130 */
												BgL_auxz00_5569 = BgL_g1151z00_2218;
											}
										else
											{
												obj_t BgL_auxz00_5572;

												BgL_auxz00_5572 =
													BGl_typezd2errorzd2zz__errorz00
													(BGl_string2415z00zz__base64z00, BINT(4911L),
													BGl_string2420z00zz__base64z00,
													BGl_string2422z00zz__base64z00, BgL_g1151z00_2218);
												FAILURE(BgL_auxz00_5572, BFALSE, BFALSE);
											}
										if (INPUT_PORTP(BgL_g1150z00_2217))
											{	/* Unsafe/base64.scm 130 */
												BgL_auxz00_5562 = BgL_g1150z00_2217;
											}
										else
											{
												obj_t BgL_auxz00_5565;

												BgL_auxz00_5565 =
													BGl_typezd2errorzd2zz__errorz00
													(BGl_string2415z00zz__base64z00, BINT(4911L),
													BGl_string2420z00zz__base64z00,
													BGl_string2421z00zz__base64z00, BgL_g1150z00_2217);
												FAILURE(BgL_auxz00_5565, BFALSE, BFALSE);
											}
										return
											BGl_base64zd2encodezd2portz00zz__base64z00
											(BgL_auxz00_5562, BgL_auxz00_5569, BgL_paddingz00_2222);
									}
								}
							}
							break;
						default:
							return BUNSPEC;
						}
				}
			}
		}

	}



/* base64-encode-port */
	BGL_EXPORTED_DEF obj_t BGl_base64zd2encodezd2portz00zz__base64z00(obj_t
		BgL_ipz00_8, obj_t BgL_opz00_9, obj_t BgL_paddingz00_10)
	{
		{	/* Unsafe/base64.scm 130 */
			{	/* Unsafe/base64.scm 131 */
				long BgL_padz00_2223;

				BgL_padz00_2223 = ((long) CINT(BgL_paddingz00_10) - 4L);
				{
					long BgL_iz00_2225;

					BgL_iz00_2225 = 0L;
				BgL_zc3z04anonymousza31812ze3z87_2226:
					{	/* Unsafe/base64.scm 133 */
						obj_t BgL_i0z00_2227;

						BgL_i0z00_2227 =
							BGl_readzd2bytezd2zz__r4_input_6_10_2z00(BgL_ipz00_8);
						if (EOF_OBJECTP(BgL_i0z00_2227))
							{	/* Unsafe/base64.scm 134 */
								return BFALSE;
							}
						else
							{	/* Unsafe/base64.scm 135 */
								obj_t BgL_i1z00_2229;

								BgL_i1z00_2229 =
									BGl_readzd2bytezd2zz__r4_input_6_10_2z00(BgL_ipz00_8);
								if (EOF_OBJECTP(BgL_i1z00_2229))
									{	/* Unsafe/base64.scm 137 */
										long BgL_o0z00_2231;

										BgL_o0z00_2231 =
											(((long) CINT(BgL_i0z00_2227) & 252L) >> (int) (2L));
										{	/* Unsafe/base64.scm 137 */
											long BgL_o1z00_2232;

											BgL_o1z00_2232 =
												(((long) CINT(BgL_i0z00_2227) & 3L) << (int) (4L));
											{	/* Unsafe/base64.scm 138 */

												{	/* Unsafe/base64.scm 139 */
													unsigned char BgL_tmpz00_5594;

													BgL_tmpz00_5594 =
														STRING_REF(BGl_string2419z00zz__base64z00,
														BgL_o0z00_2231);
													bgl_display_char(BgL_tmpz00_5594, BgL_opz00_9);
												}
												{	/* Unsafe/base64.scm 140 */
													unsigned char BgL_tmpz00_5597;

													BgL_tmpz00_5597 =
														STRING_REF(BGl_string2419z00zz__base64z00,
														BgL_o1z00_2232);
													bgl_display_char(BgL_tmpz00_5597, BgL_opz00_9);
												}
												bgl_display_char(((unsigned char) '='), BgL_opz00_9);
												return
													bgl_display_char(((unsigned char) '='), BgL_opz00_9);
									}}}
								else
									{	/* Unsafe/base64.scm 143 */
										obj_t BgL_i2z00_2237;

										BgL_i2z00_2237 =
											BGl_readzd2bytezd2zz__r4_input_6_10_2z00(BgL_ipz00_8);
										if (EOF_OBJECTP(BgL_i2z00_2237))
											{	/* Unsafe/base64.scm 145 */
												long BgL_o0z00_2239;

												BgL_o0z00_2239 =
													(((long) CINT(BgL_i0z00_2227) & 252L) >> (int) (2L));
												{	/* Unsafe/base64.scm 145 */
													long BgL_o1z00_2240;

													BgL_o1z00_2240 =
														(
														(((long) CINT(BgL_i0z00_2227) & 3L) <<
															(int) (4L)) |
														(((long) CINT(BgL_i1z00_2229) & 240L) >>
															(int) (4L)));
													{	/* Unsafe/base64.scm 146 */
														long BgL_o2z00_2241;

														BgL_o2z00_2241 =
															(
															((long) CINT(BgL_i1z00_2229) & 15L) <<
															(int) (2L));
														{	/* Unsafe/base64.scm 148 */

															{	/* Unsafe/base64.scm 149 */
																unsigned char BgL_tmpz00_5622;

																BgL_tmpz00_5622 =
																	STRING_REF(BGl_string2419z00zz__base64z00,
																	BgL_o0z00_2239);
																bgl_display_char(BgL_tmpz00_5622, BgL_opz00_9);
															}
															{	/* Unsafe/base64.scm 150 */
																unsigned char BgL_tmpz00_5625;

																BgL_tmpz00_5625 =
																	STRING_REF(BGl_string2419z00zz__base64z00,
																	BgL_o1z00_2240);
																bgl_display_char(BgL_tmpz00_5625, BgL_opz00_9);
															}
															{	/* Unsafe/base64.scm 151 */
																unsigned char BgL_tmpz00_5628;

																BgL_tmpz00_5628 =
																	STRING_REF(BGl_string2419z00zz__base64z00,
																	BgL_o2z00_2241);
																bgl_display_char(BgL_tmpz00_5628, BgL_opz00_9);
															}
															return
																bgl_display_char(((unsigned char) '='),
																BgL_opz00_9);
											}}}}
										else
											{	/* Unsafe/base64.scm 153 */
												long BgL_o0z00_2251;

												BgL_o0z00_2251 =
													(((long) CINT(BgL_i0z00_2227) & 252L) >> (int) (2L));
												{	/* Unsafe/base64.scm 153 */
													long BgL_o1z00_2252;

													BgL_o1z00_2252 =
														(
														(((long) CINT(BgL_i0z00_2227) & 3L) <<
															(int) (4L)) |
														(((long) CINT(BgL_i1z00_2229) & 240L) >>
															(int) (4L)));
													{	/* Unsafe/base64.scm 154 */
														long BgL_o2z00_2253;

														BgL_o2z00_2253 =
															(
															(((long) CINT(BgL_i1z00_2229) & 15L) <<
																(int) (2L)) |
															(((long) CINT(BgL_i2z00_2237) & 192L) >>
																(int) (6L)));
														{	/* Unsafe/base64.scm 156 */
															long BgL_o3z00_2254;

															BgL_o3z00_2254 =
																((long) CINT(BgL_i2z00_2237) & 63L);
															{	/* Unsafe/base64.scm 158 */

																{	/* Unsafe/base64.scm 159 */
																	unsigned char BgL_tmpz00_5656;

																	BgL_tmpz00_5656 =
																		STRING_REF(BGl_string2419z00zz__base64z00,
																		BgL_o0z00_2251);
																	bgl_display_char(BgL_tmpz00_5656,
																		BgL_opz00_9);
																}
																{	/* Unsafe/base64.scm 160 */
																	unsigned char BgL_tmpz00_5659;

																	BgL_tmpz00_5659 =
																		STRING_REF(BGl_string2419z00zz__base64z00,
																		BgL_o1z00_2252);
																	bgl_display_char(BgL_tmpz00_5659,
																		BgL_opz00_9);
																}
																{	/* Unsafe/base64.scm 161 */
																	unsigned char BgL_tmpz00_5662;

																	BgL_tmpz00_5662 =
																		STRING_REF(BGl_string2419z00zz__base64z00,
																		BgL_o2z00_2253);
																	bgl_display_char(BgL_tmpz00_5662,
																		BgL_opz00_9);
																}
																{	/* Unsafe/base64.scm 162 */
																	unsigned char BgL_tmpz00_5665;

																	BgL_tmpz00_5665 =
																		STRING_REF(BGl_string2419z00zz__base64z00,
																		BgL_o3z00_2254);
																	bgl_display_char(BgL_tmpz00_5665,
																		BgL_opz00_9);
																}
																{	/* Unsafe/base64.scm 163 */
																	bool_t BgL_test2594z00_5668;

																	if ((BgL_iz00_2225 >= BgL_padz00_2223))
																		{	/* Unsafe/base64.scm 163 */
																			BgL_test2594z00_5668 =
																				(BgL_padz00_2223 > 0L);
																		}
																	else
																		{	/* Unsafe/base64.scm 163 */
																			BgL_test2594z00_5668 = ((bool_t) 0);
																		}
																	if (BgL_test2594z00_5668)
																		{	/* Unsafe/base64.scm 163 */
																			bgl_display_char(((unsigned char) 10),
																				BgL_opz00_9);
																			{
																				long BgL_iz00_5673;

																				BgL_iz00_5673 = 0L;
																				BgL_iz00_2225 = BgL_iz00_5673;
																				goto
																					BgL_zc3z04anonymousza31812ze3z87_2226;
																			}
																		}
																	else
																		{
																			long BgL_iz00_5674;

																			BgL_iz00_5674 = (BgL_iz00_2225 + 4L);
																			BgL_iz00_2225 = BgL_iz00_5674;
																			goto
																				BgL_zc3z04anonymousza31812ze3z87_2226;
																		}
																}
															}
														}
													}
												}
											}
									}
							}
					}
				}
			}
		}

	}



/* actual-string-length */
	long BGl_actualzd2stringzd2lengthz00zz__base64z00(obj_t BgL_sz00_15)
	{
		{	/* Unsafe/base64.scm 206 */
			{
				long BgL_iz00_2277;

				BgL_iz00_2277 = (STRING_LENGTH(BgL_sz00_15) - 1L);
			BgL_zc3z04anonymousza31854ze3z87_2278:
				if ((BgL_iz00_2277 == 0L))
					{	/* Unsafe/base64.scm 208 */
						return BgL_iz00_2277;
					}
				else
					{	/* Unsafe/base64.scm 210 */
						unsigned char BgL_cz00_2280;

						BgL_cz00_2280 = STRING_REF(BgL_sz00_15, BgL_iz00_2277);
						{	/* Unsafe/base64.scm 211 */
							bool_t BgL_test2597z00_5679;

							if ((BgL_cz00_2280 == ((unsigned char) 10)))
								{	/* Unsafe/base64.scm 211 */
									BgL_test2597z00_5679 = ((bool_t) 1);
								}
							else
								{	/* Unsafe/base64.scm 211 */
									BgL_test2597z00_5679 =
										(BgL_cz00_2280 == ((unsigned char) 13));
								}
							if (BgL_test2597z00_5679)
								{
									long BgL_iz00_5683;

									BgL_iz00_5683 = (BgL_iz00_2277 - 1L);
									BgL_iz00_2277 = BgL_iz00_5683;
									goto BgL_zc3z04anonymousza31854ze3z87_2278;
								}
							else
								{	/* Unsafe/base64.scm 211 */
									return (BgL_iz00_2277 + 1L);
								}
						}
					}
			}
		}

	}



/* _base64-decode */
	obj_t BGl__base64zd2decodezd2zz__base64z00(obj_t BgL_env1155z00_19,
		obj_t BgL_opt1154z00_18)
	{
		{	/* Unsafe/base64.scm 218 */
			{	/* Unsafe/base64.scm 218 */
				obj_t BgL_g1156z00_2287;

				{
					obj_t BgL_auxz00_5688;

					if (VECTORP(BgL_opt1154z00_18))
						{	/* Unsafe/base64.scm 218 */
							BgL_auxz00_5688 = BgL_opt1154z00_18;
						}
					else
						{
							obj_t BgL_auxz00_5691;

							BgL_auxz00_5691 =
								BGl_typezd2errorzd2zz__errorz00(BGl_string2415z00zz__base64z00,
								BINT(8420L), BGl_string2423z00zz__base64z00,
								BGl_string2417z00zz__base64z00, BgL_opt1154z00_18);
							FAILURE(BgL_auxz00_5691, BFALSE, BFALSE);
						}
					BgL_g1156z00_2287 = VECTOR_REF(BgL_auxz00_5688, 0L);
				}
				{	/* Unsafe/base64.scm 218 */
					long BgL_aux1158z00_2289;

					{
						obj_t BgL_auxz00_5696;

						if (VECTORP(BgL_opt1154z00_18))
							{	/* Unsafe/base64.scm 218 */
								BgL_auxz00_5696 = BgL_opt1154z00_18;
							}
						else
							{
								obj_t BgL_auxz00_5699;

								BgL_auxz00_5699 =
									BGl_typezd2errorzd2zz__errorz00
									(BGl_string2415z00zz__base64z00, BINT(8420L),
									BGl_string2423z00zz__base64z00,
									BGl_string2417z00zz__base64z00, BgL_opt1154z00_18);
								FAILURE(BgL_auxz00_5699, BFALSE, BFALSE);
							}
						BgL_aux1158z00_2289 = VECTOR_LENGTH(BgL_auxz00_5696);
					}
					switch (BgL_aux1158z00_2289)
						{
						case 1L:

							{	/* Unsafe/base64.scm 218 */

								{	/* Unsafe/base64.scm 218 */
									obj_t BgL_auxz00_5704;

									if (STRINGP(BgL_g1156z00_2287))
										{	/* Unsafe/base64.scm 218 */
											BgL_auxz00_5704 = BgL_g1156z00_2287;
										}
									else
										{
											obj_t BgL_auxz00_5707;

											BgL_auxz00_5707 =
												BGl_typezd2errorzd2zz__errorz00
												(BGl_string2415z00zz__base64z00, BINT(8420L),
												BGl_string2423z00zz__base64z00,
												BGl_string2418z00zz__base64z00, BgL_g1156z00_2287);
											FAILURE(BgL_auxz00_5707, BFALSE, BFALSE);
										}
									return
										BGl_base64zd2decodezd2zz__base64z00(BgL_auxz00_5704,
										BFALSE);
								}
							}
							break;
						case 2L:

							{	/* Unsafe/base64.scm 218 */
								obj_t BgL_eofzd2nozd2paddingz00_2291;

								{
									obj_t BgL_auxz00_5712;

									if (VECTORP(BgL_opt1154z00_18))
										{	/* Unsafe/base64.scm 218 */
											BgL_auxz00_5712 = BgL_opt1154z00_18;
										}
									else
										{
											obj_t BgL_auxz00_5715;

											BgL_auxz00_5715 =
												BGl_typezd2errorzd2zz__errorz00
												(BGl_string2415z00zz__base64z00, BINT(8420L),
												BGl_string2423z00zz__base64z00,
												BGl_string2417z00zz__base64z00, BgL_opt1154z00_18);
											FAILURE(BgL_auxz00_5715, BFALSE, BFALSE);
										}
									BgL_eofzd2nozd2paddingz00_2291 =
										VECTOR_REF(BgL_auxz00_5712, 1L);
								}
								{	/* Unsafe/base64.scm 218 */

									{	/* Unsafe/base64.scm 218 */
										obj_t BgL_auxz00_5720;

										if (STRINGP(BgL_g1156z00_2287))
											{	/* Unsafe/base64.scm 218 */
												BgL_auxz00_5720 = BgL_g1156z00_2287;
											}
										else
											{
												obj_t BgL_auxz00_5723;

												BgL_auxz00_5723 =
													BGl_typezd2errorzd2zz__errorz00
													(BGl_string2415z00zz__base64z00, BINT(8420L),
													BGl_string2423z00zz__base64z00,
													BGl_string2418z00zz__base64z00, BgL_g1156z00_2287);
												FAILURE(BgL_auxz00_5723, BFALSE, BFALSE);
											}
										return
											BGl_base64zd2decodezd2zz__base64z00(BgL_auxz00_5720,
											BgL_eofzd2nozd2paddingz00_2291);
									}
								}
							}
							break;
						default:
							return BUNSPEC;
						}
				}
			}
		}

	}



/* base64-decode */
	BGL_EXPORTED_DEF obj_t BGl_base64zd2decodezd2zz__base64z00(obj_t BgL_sz00_16,
		obj_t BgL_eofzd2nozd2paddingz00_17)
	{
		{	/* Unsafe/base64.scm 218 */
			{	/* Unsafe/base64.scm 219 */
				long BgL_lenz00_2292;

				BgL_lenz00_2292 =
					BGl_actualzd2stringzd2lengthz00zz__base64z00(BgL_sz00_16);
				{	/* Unsafe/base64.scm 219 */
					long BgL_nlenz00_2293;

					if (CBOOL(BgL_eofzd2nozd2paddingz00_17))
						{	/* Unsafe/base64.scm 220 */
							BgL_nlenz00_2293 = ((1L + (BgL_lenz00_2292 / 4L)) * 3L);
						}
					else
						{	/* Unsafe/base64.scm 220 */
							BgL_nlenz00_2293 = ((BgL_lenz00_2292 / 4L) * 3L);
						}
					{	/* Unsafe/base64.scm 220 */
						obj_t BgL_resz00_2294;

						{	/* Ieee/string.scm 172 */

							BgL_resz00_2294 =
								make_string(BgL_nlenz00_2293, ((unsigned char) ' '));
						}
						{	/* Unsafe/base64.scm 223 */

							{
								long BgL_xz00_2296;
								long BgL_yz00_2297;

								BgL_xz00_2296 = 0L;
								BgL_yz00_2297 = 0L;
							BgL_zc3z04anonymousza31860ze3z87_2298:
								if ((BgL_xz00_2296 < BgL_lenz00_2292))
									{	/* Unsafe/base64.scm 227 */
										unsigned char BgL_cz00_2300;

										BgL_cz00_2300 =
											STRING_REF(BgL_sz00_16, (BgL_xz00_2296 + 0L));
										{	/* Unsafe/base64.scm 227 */
											int BgL_q0z00_2301;

											{	/* Unsafe/base64.scm 228 */
												unsigned char BgL_cz00_3755;

												BgL_cz00_3755 = (char) (BgL_cz00_2300);
												{	/* Unsafe/base64.scm 201 */
													long BgL_arg1853z00_3756;

													BgL_arg1853z00_3756 =
														((unsigned char) (BgL_cz00_3755));
													{	/* Unsafe/base64.scm 201 */
														int BgL_res2341z00_3763;

														{	/* Unsafe/base64.scm 201 */
															char BgL_cz00_3758;

															BgL_cz00_3758 =
																(signed char) (BgL_arg1853z00_3756);
															{	/* Unsafe/base64.scm 195 */
																uint8_t BgL_arg1852z00_3759;

																{	/* Unsafe/base64.scm 195 */
																	long BgL_tmpz00_5746;

																	BgL_tmpz00_5746 = (long) (BgL_cz00_3758);
																	BgL_arg1852z00_3759 =
																		BGL_U8VREF(BGl_bytezd2tablezd2zz__base64z00,
																		BgL_tmpz00_5746);
																}
																{	/* Unsafe/base64.scm 195 */
																	int8_t BgL_xz00_3760;

																	BgL_xz00_3760 =
																		(int8_t) (BgL_arg1852z00_3759);
																	{	/* Unsafe/base64.scm 195 */
																		long BgL_arg2275z00_3761;

																		BgL_arg2275z00_3761 =
																			(long) (BgL_xz00_3760);
																		BgL_res2341z00_3763 =
																			(int) ((long) (BgL_arg2275z00_3761));
														}}}}
														BgL_q0z00_2301 = BgL_res2341z00_3763;
											}}}
											{	/* Unsafe/base64.scm 228 */

												{	/* Unsafe/base64.scm 229 */
													bool_t BgL_test2606z00_5753;

													if (((long) (BgL_q0z00_2301) == 0L))
														{	/* Unsafe/base64.scm 230 */
															bool_t BgL__ortest_1045z00_2389;

															BgL__ortest_1045z00_2389 =
																(BgL_cz00_2300 == ((unsigned char) 10));
															if (BgL__ortest_1045z00_2389)
																{	/* Unsafe/base64.scm 230 */
																	BgL_test2606z00_5753 =
																		BgL__ortest_1045z00_2389;
																}
															else
																{	/* Unsafe/base64.scm 230 */
																	BgL_test2606z00_5753 =
																		(BgL_cz00_2300 == ((unsigned char) 13));
														}}
													else
														{	/* Unsafe/base64.scm 229 */
															BgL_test2606z00_5753 = ((bool_t) 0);
														}
													if (BgL_test2606z00_5753)
														{
															long BgL_xz00_5760;

															BgL_xz00_5760 = (BgL_xz00_2296 + 1L);
															BgL_xz00_2296 = BgL_xz00_5760;
															goto BgL_zc3z04anonymousza31860ze3z87_2298;
														}
													else
														{	/* Unsafe/base64.scm 229 */
															if ((BgL_xz00_2296 <= (BgL_lenz00_2292 - 4L)))
																{	/* Unsafe/base64.scm 234 */
																	int BgL_q1z00_2308;

																	{	/* Unsafe/base64.scm 234 */
																		unsigned char BgL_arg1891z00_2332;

																		BgL_arg1891z00_2332 =
																			STRING_REF(BgL_sz00_16,
																			(BgL_xz00_2296 + 1L));
																		{	/* Unsafe/base64.scm 234 */
																			unsigned char BgL_cz00_3776;

																			BgL_cz00_3776 =
																				(char) (BgL_arg1891z00_2332);
																			{	/* Unsafe/base64.scm 201 */
																				long BgL_arg1853z00_3777;

																				BgL_arg1853z00_3777 =
																					((unsigned char) (BgL_cz00_3776));
																				{	/* Unsafe/base64.scm 201 */
																					int BgL_res2342z00_3784;

																					{	/* Unsafe/base64.scm 201 */
																						char BgL_cz00_3779;

																						BgL_cz00_3779 =
																							(signed
																							char) (BgL_arg1853z00_3777);
																						{	/* Unsafe/base64.scm 195 */
																							uint8_t BgL_arg1852z00_3780;

																							{	/* Unsafe/base64.scm 195 */
																								long BgL_tmpz00_5771;

																								BgL_tmpz00_5771 =
																									(long) (BgL_cz00_3779);
																								BgL_arg1852z00_3780 =
																									BGL_U8VREF
																									(BGl_bytezd2tablezd2zz__base64z00,
																									BgL_tmpz00_5771);
																							}
																							{	/* Unsafe/base64.scm 195 */
																								int8_t BgL_xz00_3781;

																								BgL_xz00_3781 =
																									(int8_t)
																									(BgL_arg1852z00_3780);
																								{	/* Unsafe/base64.scm 195 */
																									long BgL_arg2275z00_3782;

																									BgL_arg2275z00_3782 =
																										(long) (BgL_xz00_3781);
																									BgL_res2342z00_3784 =
																										(int) (
																										(long)
																										(BgL_arg2275z00_3782));
																					}}}}
																					BgL_q1z00_2308 = BgL_res2342z00_3784;
																	}}}}
																	{	/* Unsafe/base64.scm 234 */
																		int BgL_q2z00_2309;

																		{	/* Unsafe/base64.scm 235 */
																			unsigned char BgL_arg1889z00_2330;

																			BgL_arg1889z00_2330 =
																				STRING_REF(BgL_sz00_16,
																				(BgL_xz00_2296 + 2L));
																			{	/* Unsafe/base64.scm 235 */
																				unsigned char BgL_cz00_3788;

																				BgL_cz00_3788 =
																					(char) (BgL_arg1889z00_2330);
																				{	/* Unsafe/base64.scm 201 */
																					long BgL_arg1853z00_3789;

																					BgL_arg1853z00_3789 =
																						((unsigned char) (BgL_cz00_3788));
																					{	/* Unsafe/base64.scm 201 */
																						int BgL_res2343z00_3796;

																						{	/* Unsafe/base64.scm 201 */
																							char BgL_cz00_3791;

																							BgL_cz00_3791 =
																								(signed
																								char) (BgL_arg1853z00_3789);
																							{	/* Unsafe/base64.scm 195 */
																								uint8_t BgL_arg1852z00_3792;

																								{	/* Unsafe/base64.scm 195 */
																									long BgL_tmpz00_5784;

																									BgL_tmpz00_5784 =
																										(long) (BgL_cz00_3791);
																									BgL_arg1852z00_3792 =
																										BGL_U8VREF
																										(BGl_bytezd2tablezd2zz__base64z00,
																										BgL_tmpz00_5784);
																								}
																								{	/* Unsafe/base64.scm 195 */
																									int8_t BgL_xz00_3793;

																									BgL_xz00_3793 =
																										(int8_t)
																										(BgL_arg1852z00_3792);
																									{	/* Unsafe/base64.scm 195 */
																										long BgL_arg2275z00_3794;

																										BgL_arg2275z00_3794 =
																											(long) (BgL_xz00_3793);
																										BgL_res2343z00_3796 =
																											(int) (
																											(long)
																											(BgL_arg2275z00_3794));
																						}}}}
																						BgL_q2z00_2309 =
																							BgL_res2343z00_3796;
																		}}}}
																		{	/* Unsafe/base64.scm 235 */
																			int BgL_q3z00_2310;

																			{	/* Unsafe/base64.scm 236 */
																				unsigned char BgL_arg1887z00_2328;

																				BgL_arg1887z00_2328 =
																					STRING_REF(BgL_sz00_16,
																					(BgL_xz00_2296 + 3L));
																				{	/* Unsafe/base64.scm 236 */
																					unsigned char BgL_cz00_3800;

																					BgL_cz00_3800 =
																						(char) (BgL_arg1887z00_2328);
																					{	/* Unsafe/base64.scm 201 */
																						long BgL_arg1853z00_3801;

																						BgL_arg1853z00_3801 =
																							((unsigned char) (BgL_cz00_3800));
																						{	/* Unsafe/base64.scm 201 */
																							int BgL_res2344z00_3808;

																							{	/* Unsafe/base64.scm 201 */
																								char BgL_cz00_3803;

																								BgL_cz00_3803 =
																									(signed
																									char) (BgL_arg1853z00_3801);
																								{	/* Unsafe/base64.scm 195 */
																									uint8_t BgL_arg1852z00_3804;

																									{	/* Unsafe/base64.scm 195 */
																										long BgL_tmpz00_5797;

																										BgL_tmpz00_5797 =
																											(long) (BgL_cz00_3803);
																										BgL_arg1852z00_3804 =
																											BGL_U8VREF
																											(BGl_bytezd2tablezd2zz__base64z00,
																											BgL_tmpz00_5797);
																									}
																									{	/* Unsafe/base64.scm 195 */
																										int8_t BgL_xz00_3805;

																										BgL_xz00_3805 =
																											(int8_t)
																											(BgL_arg1852z00_3804);
																										{	/* Unsafe/base64.scm 195 */
																											long BgL_arg2275z00_3806;

																											BgL_arg2275z00_3806 =
																												(long) (BgL_xz00_3805);
																											BgL_res2344z00_3808 =
																												(int) (
																												(long)
																												(BgL_arg2275z00_3806));
																							}}}}
																							BgL_q3z00_2310 =
																								BgL_res2344z00_3808;
																			}}}}
																			{	/* Unsafe/base64.scm 236 */
																				long BgL_v0z00_2311;

																				BgL_v0z00_2311 =
																					(
																					((long) (BgL_q0z00_2301) <<
																						(int) (2L)) |
																					((long) (BgL_q1z00_2308) >>
																						(int) (4L)));
																				{	/* Unsafe/base64.scm 237 */
																					long BgL_v1z00_2312;

																					BgL_v1z00_2312 =
																						(
																						(((long) (BgL_q1z00_2308) <<
																								(int) (4L)) & 240L) |
																						((long) (BgL_q2z00_2309) >>
																							(int) (2L)));
																					{	/* Unsafe/base64.scm 239 */
																						long BgL_v2z00_2313;

																						BgL_v2z00_2313 =
																							(
																							(((long) (BgL_q2z00_2309) <<
																									(int) (6L)) & 192L) |
																							(long) (BgL_q3z00_2310));
																						{	/* Unsafe/base64.scm 241 */

																							{	/* Unsafe/base64.scm 243 */
																								unsigned char BgL_tmpz00_5825;

																								BgL_tmpz00_5825 =
																									(BgL_v0z00_2311);
																								STRING_SET(BgL_resz00_2294,
																									BgL_yz00_2297,
																									BgL_tmpz00_5825);
																							}
																							{	/* Unsafe/base64.scm 244 */
																								unsigned char BgL_auxz00_5830;
																								long BgL_tmpz00_5828;

																								BgL_auxz00_5830 =
																									(BgL_v1z00_2312);
																								BgL_tmpz00_5828 =
																									(BgL_yz00_2297 + 1L);
																								STRING_SET(BgL_resz00_2294,
																									BgL_tmpz00_5828,
																									BgL_auxz00_5830);
																							}
																							{	/* Unsafe/base64.scm 245 */
																								unsigned char BgL_auxz00_5835;
																								long BgL_tmpz00_5833;

																								BgL_auxz00_5835 =
																									(BgL_v2z00_2313);
																								BgL_tmpz00_5833 =
																									(BgL_yz00_2297 + 2L);
																								STRING_SET(BgL_resz00_2294,
																									BgL_tmpz00_5833,
																									BgL_auxz00_5835);
																							}
																							{
																								long BgL_yz00_5840;
																								long BgL_xz00_5838;

																								BgL_xz00_5838 =
																									(BgL_xz00_2296 + 4L);
																								BgL_yz00_5840 =
																									(BgL_yz00_2297 + 3L);
																								BgL_yz00_2297 = BgL_yz00_5840;
																								BgL_xz00_2296 = BgL_xz00_5838;
																								goto
																									BgL_zc3z04anonymousza31860ze3z87_2298;
																							}
																						}
																					}
																				}
																			}
																		}
																	}
																}
															else
																{	/* Unsafe/base64.scm 247 */
																	bool_t BgL_test2610z00_5842;

																	if ((BgL_xz00_2296 <= (BgL_lenz00_2292 - 3L)))
																		{	/* Unsafe/base64.scm 247 */
																			BgL_test2610z00_5842 =
																				CBOOL(BgL_eofzd2nozd2paddingz00_17);
																		}
																	else
																		{	/* Unsafe/base64.scm 247 */
																			BgL_test2610z00_5842 = ((bool_t) 0);
																		}
																	if (BgL_test2610z00_5842)
																		{	/* Unsafe/base64.scm 248 */
																			unsigned char BgL_c1z00_2338;

																			BgL_c1z00_2338 =
																				STRING_REF(BgL_sz00_16,
																				(BgL_xz00_2296 + 1L));
																			{	/* Unsafe/base64.scm 248 */
																				unsigned char BgL_c2z00_2339;

																				BgL_c2z00_2339 =
																					STRING_REF(BgL_sz00_16,
																					(BgL_xz00_2296 + 2L));
																				{	/* Unsafe/base64.scm 249 */
																					int BgL_q1z00_2340;

																					{	/* Unsafe/base64.scm 250 */
																						unsigned char BgL_cz00_3847;

																						BgL_cz00_3847 =
																							(char) (BgL_c1z00_2338);
																						{	/* Unsafe/base64.scm 201 */
																							long BgL_arg1853z00_3848;

																							BgL_arg1853z00_3848 =
																								(
																								(unsigned
																									char) (BgL_cz00_3847));
																							{	/* Unsafe/base64.scm 201 */
																								int BgL_res2345z00_3855;

																								{	/* Unsafe/base64.scm 201 */
																									char BgL_cz00_3850;

																									BgL_cz00_3850 =
																										(signed
																										char) (BgL_arg1853z00_3848);
																									{	/* Unsafe/base64.scm 195 */
																										uint8_t BgL_arg1852z00_3851;

																										{	/* Unsafe/base64.scm 195 */
																											long BgL_tmpz00_5855;

																											BgL_tmpz00_5855 =
																												(long) (BgL_cz00_3850);
																											BgL_arg1852z00_3851 =
																												BGL_U8VREF
																												(BGl_bytezd2tablezd2zz__base64z00,
																												BgL_tmpz00_5855);
																										}
																										{	/* Unsafe/base64.scm 195 */
																											int8_t BgL_xz00_3852;

																											BgL_xz00_3852 =
																												(int8_t)
																												(BgL_arg1852z00_3851);
																											{	/* Unsafe/base64.scm 195 */
																												long
																													BgL_arg2275z00_3853;
																												BgL_arg2275z00_3853 =
																													(long)
																													(BgL_xz00_3852);
																												BgL_res2345z00_3855 =
																													(int) ((long)
																													(BgL_arg2275z00_3853));
																								}}}}
																								BgL_q1z00_2340 =
																									BgL_res2345z00_3855;
																					}}}
																					{	/* Unsafe/base64.scm 250 */
																						int BgL_q2z00_2341;

																						{	/* Unsafe/base64.scm 251 */
																							unsigned char BgL_cz00_3856;

																							BgL_cz00_3856 =
																								(char) (BgL_c2z00_2339);
																							{	/* Unsafe/base64.scm 201 */
																								long BgL_arg1853z00_3857;

																								BgL_arg1853z00_3857 =
																									(
																									(unsigned
																										char) (BgL_cz00_3856));
																								{	/* Unsafe/base64.scm 201 */
																									int BgL_res2346z00_3864;

																									{	/* Unsafe/base64.scm 201 */
																										char BgL_cz00_3859;

																										BgL_cz00_3859 =
																											(signed
																											char)
																											(BgL_arg1853z00_3857);
																										{	/* Unsafe/base64.scm 195 */
																											uint8_t
																												BgL_arg1852z00_3860;
																											{	/* Unsafe/base64.scm 195 */
																												long BgL_tmpz00_5866;

																												BgL_tmpz00_5866 =
																													(long)
																													(BgL_cz00_3859);
																												BgL_arg1852z00_3860 =
																													BGL_U8VREF
																													(BGl_bytezd2tablezd2zz__base64z00,
																													BgL_tmpz00_5866);
																											}
																											{	/* Unsafe/base64.scm 195 */
																												int8_t BgL_xz00_3861;

																												BgL_xz00_3861 =
																													(int8_t)
																													(BgL_arg1852z00_3860);
																												{	/* Unsafe/base64.scm 195 */
																													long
																														BgL_arg2275z00_3862;
																													BgL_arg2275z00_3862 =
																														(long)
																														(BgL_xz00_3861);
																													BgL_res2346z00_3864 =
																														(int) ((long)
																														(BgL_arg2275z00_3862));
																									}}}}
																									BgL_q2z00_2341 =
																										BgL_res2346z00_3864;
																						}}}
																						{	/* Unsafe/base64.scm 251 */
																							long BgL_v0z00_2342;

																							BgL_v0z00_2342 =
																								(
																								((long) (BgL_q0z00_2301) <<
																									(int) (2L)) |
																								((long) (BgL_q1z00_2340) >>
																									(int) (4L)));
																							{	/* Unsafe/base64.scm 252 */
																								long BgL_v1z00_2343;

																								BgL_v1z00_2343 =
																									(
																									(((long) (BgL_q1z00_2340) <<
																											(int) (4L)) & 240L) |
																									((long) (BgL_q2z00_2341) >>
																										(int) (2L)));
																								{	/* Unsafe/base64.scm 254 */

																									{	/* Unsafe/base64.scm 256 */
																										unsigned char
																											BgL_tmpz00_5888;
																										BgL_tmpz00_5888 =
																											(BgL_v0z00_2342);
																										STRING_SET(BgL_resz00_2294,
																											BgL_yz00_2297,
																											BgL_tmpz00_5888);
																									}
																									{	/* Unsafe/base64.scm 257 */
																										unsigned char
																											BgL_auxz00_5893;
																										long BgL_tmpz00_5891;

																										BgL_auxz00_5893 =
																											(BgL_v1z00_2343);
																										BgL_tmpz00_5891 =
																											(BgL_yz00_2297 + 1L);
																										STRING_SET(BgL_resz00_2294,
																											BgL_tmpz00_5891,
																											BgL_auxz00_5893);
																									}
																									if (
																										(BgL_c1z00_2338 ==
																											((unsigned char) '=')))
																										{	/* Unsafe/base64.scm 259 */
																											return
																												bgl_string_shrink
																												(BgL_resz00_2294,
																												BgL_yz00_2297);
																										}
																									else
																										{	/* Unsafe/base64.scm 259 */
																											if (
																												(BgL_c2z00_2339 ==
																													((unsigned char)
																														'=')))
																												{	/* Unsafe/base64.scm 262 */
																													long BgL_tmpz00_5901;

																													BgL_tmpz00_5901 =
																														(BgL_yz00_2297 +
																														1L);
																													return
																														bgl_string_shrink
																														(BgL_resz00_2294,
																														BgL_tmpz00_5901);
																												}
																											else
																												{	/* Unsafe/base64.scm 264 */
																													long BgL_tmpz00_5904;

																													BgL_tmpz00_5904 =
																														(BgL_yz00_2297 +
																														2L);
																													return
																														bgl_string_shrink
																														(BgL_resz00_2294,
																														BgL_tmpz00_5904);
																												}
																										}
																								}
																							}
																						}
																					}
																				}
																			}
																		}
																	else
																		{	/* Unsafe/base64.scm 265 */
																			bool_t BgL_test2614z00_5907;

																			if (
																				(BgL_xz00_2296 <=
																					(BgL_lenz00_2292 - 2L)))
																				{	/* Unsafe/base64.scm 265 */
																					BgL_test2614z00_5907 =
																						CBOOL(BgL_eofzd2nozd2paddingz00_17);
																				}
																			else
																				{	/* Unsafe/base64.scm 265 */
																					BgL_test2614z00_5907 = ((bool_t) 0);
																				}
																			if (BgL_test2614z00_5907)
																				{	/* Unsafe/base64.scm 266 */
																					unsigned char BgL_c1z00_2362;

																					BgL_c1z00_2362 =
																						STRING_REF(BgL_sz00_16,
																						(BgL_xz00_2296 + 1L));
																					{	/* Unsafe/base64.scm 266 */
																						int BgL_q1z00_2363;

																						{	/* Unsafe/base64.scm 267 */
																							unsigned char BgL_cz00_3901;

																							BgL_cz00_3901 =
																								(char) (BgL_c1z00_2362);
																							{	/* Unsafe/base64.scm 201 */
																								long BgL_arg1853z00_3902;

																								BgL_arg1853z00_3902 =
																									(
																									(unsigned
																										char) (BgL_cz00_3901));
																								{	/* Unsafe/base64.scm 201 */
																									int BgL_res2347z00_3909;

																									{	/* Unsafe/base64.scm 201 */
																										char BgL_cz00_3904;

																										BgL_cz00_3904 =
																											(signed
																											char)
																											(BgL_arg1853z00_3902);
																										{	/* Unsafe/base64.scm 195 */
																											uint8_t
																												BgL_arg1852z00_3905;
																											{	/* Unsafe/base64.scm 195 */
																												long BgL_tmpz00_5918;

																												BgL_tmpz00_5918 =
																													(long)
																													(BgL_cz00_3904);
																												BgL_arg1852z00_3905 =
																													BGL_U8VREF
																													(BGl_bytezd2tablezd2zz__base64z00,
																													BgL_tmpz00_5918);
																											}
																											{	/* Unsafe/base64.scm 195 */
																												int8_t BgL_xz00_3906;

																												BgL_xz00_3906 =
																													(int8_t)
																													(BgL_arg1852z00_3905);
																												{	/* Unsafe/base64.scm 195 */
																													long
																														BgL_arg2275z00_3907;
																													BgL_arg2275z00_3907 =
																														(long)
																														(BgL_xz00_3906);
																													BgL_res2347z00_3909 =
																														(int) ((long)
																														(BgL_arg2275z00_3907));
																									}}}}
																									BgL_q1z00_2363 =
																										BgL_res2347z00_3909;
																						}}}
																						{	/* Unsafe/base64.scm 267 */
																							long BgL_v0z00_2364;

																							BgL_v0z00_2364 =
																								(
																								((long) (BgL_q0z00_2301) <<
																									(int) (2L)) |
																								((long) (BgL_q1z00_2363) >>
																									(int) (4L)));
																							{	/* Unsafe/base64.scm 268 */

																								{	/* Unsafe/base64.scm 270 */
																									unsigned char BgL_tmpz00_5932;

																									BgL_tmpz00_5932 =
																										(BgL_v0z00_2364);
																									STRING_SET(BgL_resz00_2294,
																										BgL_yz00_2297,
																										BgL_tmpz00_5932);
																								}
																								if (
																									(BgL_c1z00_2362 ==
																										((unsigned char) '=')))
																									{	/* Unsafe/base64.scm 271 */
																										return
																											bgl_string_shrink
																											(BgL_resz00_2294,
																											BgL_yz00_2297);
																									}
																								else
																									{	/* Unsafe/base64.scm 273 */
																										long BgL_tmpz00_5938;

																										BgL_tmpz00_5938 =
																											(BgL_yz00_2297 + 1L);
																										return
																											bgl_string_shrink
																											(BgL_resz00_2294,
																											BgL_tmpz00_5938);
																									}
																							}
																						}
																					}
																				}
																			else
																				{	/* Unsafe/base64.scm 274 */
																					bool_t BgL_test2617z00_5941;

																					if (
																						(BgL_xz00_2296 <=
																							(BgL_lenz00_2292 - 1L)))
																						{	/* Unsafe/base64.scm 274 */
																							BgL_test2617z00_5941 =
																								CBOOL
																								(BgL_eofzd2nozd2paddingz00_17);
																						}
																					else
																						{	/* Unsafe/base64.scm 274 */
																							BgL_test2617z00_5941 =
																								((bool_t) 0);
																						}
																					if (BgL_test2617z00_5941)
																						{	/* Unsafe/base64.scm 275 */
																							int BgL_q1z00_2375;

																							{	/* Unsafe/base64.scm 275 */
																								unsigned char BgL_cz00_3928;

																								BgL_cz00_3928 =
																									(char) (((unsigned char)
																										'='));
																								{	/* Unsafe/base64.scm 201 */
																									long BgL_arg1853z00_3929;

																									BgL_arg1853z00_3929 =
																										(
																										(unsigned
																											char) (BgL_cz00_3928));
																									{	/* Unsafe/base64.scm 201 */
																										int BgL_res2348z00_3936;

																										{	/* Unsafe/base64.scm 201 */
																											char BgL_cz00_3931;

																											BgL_cz00_3931 =
																												(signed
																												char)
																												(BgL_arg1853z00_3929);
																											{	/* Unsafe/base64.scm 195 */
																												uint8_t
																													BgL_arg1852z00_3932;
																												{	/* Unsafe/base64.scm 195 */
																													long BgL_tmpz00_5950;

																													BgL_tmpz00_5950 =
																														(long)
																														(BgL_cz00_3931);
																													BgL_arg1852z00_3932 =
																														BGL_U8VREF
																														(BGl_bytezd2tablezd2zz__base64z00,
																														BgL_tmpz00_5950);
																												}
																												{	/* Unsafe/base64.scm 195 */
																													int8_t BgL_xz00_3933;

																													BgL_xz00_3933 =
																														(int8_t)
																														(BgL_arg1852z00_3932);
																													{	/* Unsafe/base64.scm 195 */
																														long
																															BgL_arg2275z00_3934;
																														BgL_arg2275z00_3934
																															=
																															(long)
																															(BgL_xz00_3933);
																														BgL_res2348z00_3936
																															=
																															(int) ((long)
																															(BgL_arg2275z00_3934));
																										}}}}
																										BgL_q1z00_2375 =
																											BgL_res2348z00_3936;
																							}}}
																							{	/* Unsafe/base64.scm 275 */
																								long BgL_v0z00_2376;

																								BgL_v0z00_2376 =
																									(
																									((long) (BgL_q0z00_2301) <<
																										(int) (2L)) |
																									((long) (BgL_q1z00_2375) >>
																										(int) (4L)));
																								{	/* Unsafe/base64.scm 276 */

																									{	/* Unsafe/base64.scm 277 */
																										unsigned char
																											BgL_tmpz00_5964;
																										BgL_tmpz00_5964 =
																											(BgL_v0z00_2376);
																										STRING_SET(BgL_resz00_2294,
																											BgL_yz00_2297,
																											BgL_tmpz00_5964);
																									}
																									return
																										bgl_string_shrink
																										(BgL_resz00_2294,
																										BgL_yz00_2297);
																								}
																							}
																						}
																					else
																						{	/* Unsafe/base64.scm 280 */
																							long BgL_tmpz00_5968;

																							BgL_tmpz00_5968 =
																								(BgL_yz00_2297 + 1L);
																							return
																								bgl_string_shrink
																								(BgL_resz00_2294,
																								BgL_tmpz00_5968);
																						}
																				}
																		}
																}
														}
												}
											}
										}
									}
								else
									{	/* Unsafe/base64.scm 282 */
										bool_t BgL_test2619z00_5971;

										if ((BgL_lenz00_2292 > 2L))
											{	/* Unsafe/base64.scm 282 */
												BgL_test2619z00_5971 =
													(STRING_REF(BgL_sz00_16,
														(BgL_lenz00_2292 - 2L)) == ((unsigned char) '='));
											}
										else
											{	/* Unsafe/base64.scm 282 */
												BgL_test2619z00_5971 = ((bool_t) 0);
											}
										if (BgL_test2619z00_5971)
											{	/* Unsafe/base64.scm 283 */
												long BgL_tmpz00_5977;

												BgL_tmpz00_5977 = (BgL_yz00_2297 - 2L);
												return
													bgl_string_shrink(BgL_resz00_2294, BgL_tmpz00_5977);
											}
										else
											{	/* Unsafe/base64.scm 284 */
												bool_t BgL_test2621z00_5980;

												if ((BgL_lenz00_2292 > 1L))
													{	/* Unsafe/base64.scm 284 */
														BgL_test2621z00_5980 =
															(STRING_REF(BgL_sz00_16,
																(BgL_lenz00_2292 - 1L)) ==
															((unsigned char) '='));
													}
												else
													{	/* Unsafe/base64.scm 284 */
														BgL_test2621z00_5980 = ((bool_t) 0);
													}
												if (BgL_test2621z00_5980)
													{	/* Unsafe/base64.scm 285 */
														long BgL_tmpz00_5986;

														BgL_tmpz00_5986 = (BgL_yz00_2297 - 1L);
														return
															bgl_string_shrink(BgL_resz00_2294,
															BgL_tmpz00_5986);
													}
												else
													{	/* Unsafe/base64.scm 284 */
														if ((BgL_yz00_2297 < BgL_nlenz00_2293))
															{	/* Unsafe/base64.scm 287 */
																return
																	bgl_string_shrink(BgL_resz00_2294,
																	BgL_yz00_2297);
															}
														else
															{	/* Unsafe/base64.scm 287 */
																return BgL_resz00_2294;
															}
													}
											}
									}
							}
						}
					}
				}
			}
		}

	}



/* _base64-decode-port */
	obj_t BGl__base64zd2decodezd2portz00zz__base64z00(obj_t BgL_env1160z00_24,
		obj_t BgL_opt1159z00_23)
	{
		{	/* Unsafe/base64.scm 380 */
			{	/* Unsafe/base64.scm 380 */
				obj_t BgL_g1161z00_2414;
				obj_t BgL_g1162z00_2415;

				{
					obj_t BgL_auxz00_5992;

					if (VECTORP(BgL_opt1159z00_23))
						{	/* Unsafe/base64.scm 380 */
							BgL_auxz00_5992 = BgL_opt1159z00_23;
						}
					else
						{
							obj_t BgL_auxz00_5995;

							BgL_auxz00_5995 =
								BGl_typezd2errorzd2zz__errorz00(BGl_string2415z00zz__base64z00,
								BINT(14330L), BGl_string2424z00zz__base64z00,
								BGl_string2417z00zz__base64z00, BgL_opt1159z00_23);
							FAILURE(BgL_auxz00_5995, BFALSE, BFALSE);
						}
					BgL_g1161z00_2414 = VECTOR_REF(BgL_auxz00_5992, 0L);
				}
				{
					obj_t BgL_auxz00_6000;

					if (VECTORP(BgL_opt1159z00_23))
						{	/* Unsafe/base64.scm 380 */
							BgL_auxz00_6000 = BgL_opt1159z00_23;
						}
					else
						{
							obj_t BgL_auxz00_6003;

							BgL_auxz00_6003 =
								BGl_typezd2errorzd2zz__errorz00(BGl_string2415z00zz__base64z00,
								BINT(14330L), BGl_string2424z00zz__base64z00,
								BGl_string2417z00zz__base64z00, BgL_opt1159z00_23);
							FAILURE(BgL_auxz00_6003, BFALSE, BFALSE);
						}
					BgL_g1162z00_2415 = VECTOR_REF(BgL_auxz00_6000, 1L);
				}
				{	/* Unsafe/base64.scm 380 */
					long BgL_aux1164z00_2417;

					{
						obj_t BgL_auxz00_6008;

						if (VECTORP(BgL_opt1159z00_23))
							{	/* Unsafe/base64.scm 380 */
								BgL_auxz00_6008 = BgL_opt1159z00_23;
							}
						else
							{
								obj_t BgL_auxz00_6011;

								BgL_auxz00_6011 =
									BGl_typezd2errorzd2zz__errorz00
									(BGl_string2415z00zz__base64z00, BINT(14330L),
									BGl_string2424z00zz__base64z00,
									BGl_string2417z00zz__base64z00, BgL_opt1159z00_23);
								FAILURE(BgL_auxz00_6011, BFALSE, BFALSE);
							}
						BgL_aux1164z00_2417 = VECTOR_LENGTH(BgL_auxz00_6008);
					}
					switch (BgL_aux1164z00_2417)
						{
						case 2L:

							{	/* Unsafe/base64.scm 380 */

								{	/* Unsafe/base64.scm 380 */
									obj_t BgL_ipz00_3972;
									obj_t BgL_opz00_3973;

									if (INPUT_PORTP(BgL_g1161z00_2414))
										{	/* Unsafe/base64.scm 380 */
											BgL_ipz00_3972 = BgL_g1161z00_2414;
										}
									else
										{
											obj_t BgL_auxz00_6018;

											BgL_auxz00_6018 =
												BGl_typezd2errorzd2zz__errorz00
												(BGl_string2415z00zz__base64z00, BINT(14330L),
												BGl_string2424z00zz__base64z00,
												BGl_string2421z00zz__base64z00, BgL_g1161z00_2414);
											FAILURE(BgL_auxz00_6018, BFALSE, BFALSE);
										}
									if (OUTPUT_PORTP(BgL_g1162z00_2415))
										{	/* Unsafe/base64.scm 380 */
											BgL_opz00_3973 = BgL_g1162z00_2415;
										}
									else
										{
											obj_t BgL_auxz00_6024;

											BgL_auxz00_6024 =
												BGl_typezd2errorzd2zz__errorz00
												(BGl_string2415z00zz__base64z00, BINT(14330L),
												BGl_string2424z00zz__base64z00,
												BGl_string2422z00zz__base64z00, BgL_g1162z00_2415);
											FAILURE(BgL_auxz00_6024, BFALSE, BFALSE);
										}
									{	/* Unsafe/base64.scm 381 */
										obj_t BgL_arg1963z00_3974;

										{	/* Unsafe/base64.scm 381 */

											BgL_arg1963z00_3974 =
												make_string(84L, ((unsigned char) ' '));
										}
										{	/* Unsafe/base64.scm 382 */
											obj_t BgL_zc3z04anonymousza31965ze3z87_4290;

											BgL_zc3z04anonymousza31965ze3z87_4290 =
												BGl_proc2425z00zz__base64z00;
											return
												BGl_z62zc3z04anonymousza31263ze3ze5zz__base64z00
												(BGl_base64zd2decodezd2grammarz00zz__base64z00,
												BgL_ipz00_3972, BgL_opz00_3973, BgL_arg1963z00_3974, 0L,
												84L, BgL_zc3z04anonymousza31965ze3z87_4290,
												((bool_t) 1));
										}
									}
								}
							}
							break;
						case 3L:

							{	/* Unsafe/base64.scm 380 */
								obj_t BgL_eofzd2nozd2paddingz00_2419;

								{
									obj_t BgL_auxz00_6039;

									if (VECTORP(BgL_opt1159z00_23))
										{	/* Unsafe/base64.scm 380 */
											BgL_auxz00_6039 = BgL_opt1159z00_23;
										}
									else
										{
											obj_t BgL_auxz00_6042;

											BgL_auxz00_6042 =
												BGl_typezd2errorzd2zz__errorz00
												(BGl_string2415z00zz__base64z00, BINT(14330L),
												BGl_string2424z00zz__base64z00,
												BGl_string2417z00zz__base64z00, BgL_opt1159z00_23);
											FAILURE(BgL_auxz00_6042, BFALSE, BFALSE);
										}
									BgL_eofzd2nozd2paddingz00_2419 =
										VECTOR_REF(BgL_auxz00_6039, 2L);
								}
								{	/* Unsafe/base64.scm 380 */

									{	/* Unsafe/base64.scm 380 */
										obj_t BgL_ipz00_3980;
										obj_t BgL_opz00_3981;

										if (INPUT_PORTP(BgL_g1161z00_2414))
											{	/* Unsafe/base64.scm 380 */
												BgL_ipz00_3980 = BgL_g1161z00_2414;
											}
										else
											{
												obj_t BgL_auxz00_6049;

												BgL_auxz00_6049 =
													BGl_typezd2errorzd2zz__errorz00
													(BGl_string2415z00zz__base64z00, BINT(14330L),
													BGl_string2424z00zz__base64z00,
													BGl_string2421z00zz__base64z00, BgL_g1161z00_2414);
												FAILURE(BgL_auxz00_6049, BFALSE, BFALSE);
											}
										if (OUTPUT_PORTP(BgL_g1162z00_2415))
											{	/* Unsafe/base64.scm 380 */
												BgL_opz00_3981 = BgL_g1162z00_2415;
											}
										else
											{
												obj_t BgL_auxz00_6055;

												BgL_auxz00_6055 =
													BGl_typezd2errorzd2zz__errorz00
													(BGl_string2415z00zz__base64z00, BINT(14330L),
													BGl_string2424z00zz__base64z00,
													BGl_string2422z00zz__base64z00, BgL_g1162z00_2415);
												FAILURE(BgL_auxz00_6055, BFALSE, BFALSE);
											}
										{	/* Unsafe/base64.scm 381 */
											obj_t BgL_arg1963z00_3982;

											{	/* Unsafe/base64.scm 381 */

												BgL_arg1963z00_3982 =
													make_string(84L, ((unsigned char) ' '));
											}
											{	/* Unsafe/base64.scm 382 */
												obj_t BgL_zc3z04anonymousza31965ze3z87_4289;

												BgL_zc3z04anonymousza31965ze3z87_4289 =
													BGl_proc2426z00zz__base64z00;
												return
													BGl_z62zc3z04anonymousza31263ze3ze5zz__base64z00
													(BGl_base64zd2decodezd2grammarz00zz__base64z00,
													BgL_ipz00_3980, BgL_opz00_3981, BgL_arg1963z00_3982,
													0L, 84L, BgL_zc3z04anonymousza31965ze3z87_4289,
													((bool_t) 1));
											}
										}
									}
								}
							}
							break;
						default:
							return BUNSPEC;
						}
				}
			}
		}

	}



/* &<@anonymous:1965> */
	obj_t BGl_z62zc3z04anonymousza31965ze3ze5zz__base64z00(obj_t BgL_envz00_4291,
		obj_t BgL_cz00_4292)
	{
		{	/* Unsafe/base64.scm 382 */
			return BBOOL(((bool_t) 0));
		}

	}



/* &<@anonymous:1965>2349 */
	obj_t BGl_z62zc3z04anonymousza31965ze32349ze5zz__base64z00(obj_t
		BgL_envz00_4293, obj_t BgL_cz00_4294)
	{
		{	/* Unsafe/base64.scm 382 */
			return BBOOL(((bool_t) 0));
		}

	}



/* base64-decode-port */
	BGL_EXPORTED_DEF obj_t BGl_base64zd2decodezd2portz00zz__base64z00(obj_t
		BgL_ipz00_20, obj_t BgL_opz00_21, obj_t BgL_eofzd2nozd2paddingz00_22)
	{
		{	/* Unsafe/base64.scm 380 */
			{	/* Unsafe/base64.scm 381 */
				obj_t BgL_arg1963z00_3988;

				{	/* Unsafe/base64.scm 381 */

					BgL_arg1963z00_3988 = make_string(84L, ((unsigned char) ' '));
				}
				{	/* Unsafe/base64.scm 382 */
					obj_t BgL_zc3z04anonymousza31965ze3z87_4295;

					BgL_zc3z04anonymousza31965ze3z87_4295 = BGl_proc2427z00zz__base64z00;
					return
						BGl_z62zc3z04anonymousza31263ze3ze5zz__base64z00
						(BGl_base64zd2decodezd2grammarz00zz__base64z00, BgL_ipz00_20,
						BgL_opz00_21, BgL_arg1963z00_3988, 0L, 84L,
						BgL_zc3z04anonymousza31965ze3z87_4295, ((bool_t) 1));
				}
			}
		}

	}



/* &<@anonymous:1965>2350 */
	obj_t BGl_z62zc3z04anonymousza31965ze32350ze5zz__base64z00(obj_t
		BgL_envz00_4296, obj_t BgL_cz00_4297)
	{
		{	/* Unsafe/base64.scm 382 */
			return BBOOL(((bool_t) 0));
		}

	}



/* pem-decode-port */
	BGL_EXPORTED_DEF obj_t BGl_pemzd2decodezd2portz00zz__base64z00(obj_t
		BgL_ipz00_25, obj_t BgL_opz00_26)
	{
		{	/* Unsafe/base64.scm 413 */
			{	/* Unsafe/base64.scm 431 */
				obj_t BgL_startz00_2428;

				BgL_startz00_2428 =
					BGl_z62zc3z04anonymousza31550ze3ze5zz__base64z00
					(BGl_pemzd2markupzd2grammarz00zz__base64z00, BgL_ipz00_25, 0L);
				if (bigloo_strcmp_at(BgL_startz00_2428, BGl_string2428z00zz__base64z00,
						0L))
					{	/* Unsafe/base64.scm 433 */
						obj_t BgL_arg1967z00_2430;

						{	/* Ieee/string.scm 172 */

							BgL_arg1967z00_2430 = make_string(84L, ((unsigned char) ' '));
						}
						{	/* Unsafe/base64.scm 435 */
							obj_t BgL_zc3z04anonymousza31969ze3z87_4298;

							{
								int BgL_tmpz00_6093;

								BgL_tmpz00_6093 = (int) (2L);
								BgL_zc3z04anonymousza31969ze3z87_4298 =
									MAKE_L_PROCEDURE
									(BGl_z62zc3z04anonymousza31969ze3ze5zz__base64z00,
									BgL_tmpz00_6093);
							}
							PROCEDURE_L_SET(BgL_zc3z04anonymousza31969ze3z87_4298,
								(int) (0L), BgL_ipz00_25);
							PROCEDURE_L_SET(BgL_zc3z04anonymousza31969ze3z87_4298,
								(int) (1L), BgL_startz00_2428);
							return
								BGl_z62zc3z04anonymousza31263ze3ze5zz__base64z00
								(BGl_base64zd2decodezd2grammarz00zz__base64z00, BgL_ipz00_25,
								BgL_opz00_26, BgL_arg1967z00_2430, 0L, 84L,
								BgL_zc3z04anonymousza31969ze3z87_4298, ((bool_t) 0));
						}
					}
				else
					{	/* Unsafe/base64.scm 438 */
						BgL_z62iozd2parsezd2errorz62_bglt BgL_arg1972z00_2439;

						{	/* Unsafe/base64.scm 438 */
							BgL_z62iozd2parsezd2errorz62_bglt BgL_new1086z00_2440;

							{	/* Unsafe/base64.scm 438 */
								BgL_z62iozd2parsezd2errorz62_bglt BgL_new1085z00_2443;

								BgL_new1085z00_2443 =
									((BgL_z62iozd2parsezd2errorz62_bglt)
									BOBJECT(GC_MALLOC(sizeof(struct
												BgL_z62iozd2parsezd2errorz62_bgl))));
								{	/* Unsafe/base64.scm 438 */
									long BgL_arg1978z00_2444;

									BgL_arg1978z00_2444 =
										BGL_CLASS_NUM(BGl_z62iozd2parsezd2errorz62zz__objectz00);
									BGL_OBJECT_CLASS_NUM_SET(
										((BgL_objectz00_bglt) BgL_new1085z00_2443),
										BgL_arg1978z00_2444);
								}
								BgL_new1086z00_2440 = BgL_new1085z00_2443;
							}
							((((BgL_z62exceptionz62_bglt) COBJECT(
											((BgL_z62exceptionz62_bglt) BgL_new1086z00_2440)))->
									BgL_fnamez00) = ((obj_t) BFALSE), BUNSPEC);
							((((BgL_z62exceptionz62_bglt) COBJECT(((BgL_z62exceptionz62_bglt)
												BgL_new1086z00_2440)))->BgL_locationz00) =
								((obj_t) BFALSE), BUNSPEC);
							{
								obj_t BgL_auxz00_6118;

								{	/* Unsafe/base64.scm 438 */
									obj_t BgL_arg1975z00_2441;

									{	/* Unsafe/base64.scm 438 */
										obj_t BgL_arg1977z00_2442;

										{	/* Unsafe/base64.scm 438 */
											obj_t BgL_classz00_4029;

											BgL_classz00_4029 =
												BGl_z62iozd2parsezd2errorz62zz__objectz00;
											BgL_arg1977z00_2442 =
												BGL_CLASS_ALL_FIELDS(BgL_classz00_4029);
										}
										BgL_arg1975z00_2441 = VECTOR_REF(BgL_arg1977z00_2442, 2L);
									}
									BgL_auxz00_6118 =
										BGl_classzd2fieldzd2defaultzd2valuezd2zz__objectz00
										(BgL_arg1975z00_2441);
								}
								((((BgL_z62exceptionz62_bglt) COBJECT(
												((BgL_z62exceptionz62_bglt) BgL_new1086z00_2440)))->
										BgL_stackz00) = ((obj_t) BgL_auxz00_6118), BUNSPEC);
							}
							((((BgL_z62errorz62_bglt) COBJECT(
											((BgL_z62errorz62_bglt) BgL_new1086z00_2440)))->
									BgL_procz00) =
								((obj_t) BGl_string2409z00zz__base64z00), BUNSPEC);
							((((BgL_z62errorz62_bglt) COBJECT(((BgL_z62errorz62_bglt)
												BgL_new1086z00_2440)))->BgL_msgz00) =
								((obj_t) BGl_string2429z00zz__base64z00), BUNSPEC);
							((((BgL_z62errorz62_bglt) COBJECT(((BgL_z62errorz62_bglt)
												BgL_new1086z00_2440)))->BgL_objz00) =
								((obj_t) BgL_startz00_2428), BUNSPEC);
							BgL_arg1972z00_2439 = BgL_new1086z00_2440;
						}
						return BGl_raisez00zz__errorz00(((obj_t) BgL_arg1972z00_2439));
					}
			}
		}

	}



/* &pem-decode-port */
	obj_t BGl_z62pemzd2decodezd2portz62zz__base64z00(obj_t BgL_envz00_4299,
		obj_t BgL_ipz00_4300, obj_t BgL_opz00_4301)
	{
		{	/* Unsafe/base64.scm 413 */
			{	/* Unsafe/base64.scm 416 */
				obj_t BgL_auxz00_6139;
				obj_t BgL_auxz00_6132;

				if (OUTPUT_PORTP(BgL_opz00_4301))
					{	/* Unsafe/base64.scm 416 */
						BgL_auxz00_6139 = BgL_opz00_4301;
					}
				else
					{
						obj_t BgL_auxz00_6142;

						BgL_auxz00_6142 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2415z00zz__base64z00,
							BINT(15725L), BGl_string2430z00zz__base64z00,
							BGl_string2422z00zz__base64z00, BgL_opz00_4301);
						FAILURE(BgL_auxz00_6142, BFALSE, BFALSE);
					}
				if (INPUT_PORTP(BgL_ipz00_4300))
					{	/* Unsafe/base64.scm 416 */
						BgL_auxz00_6132 = BgL_ipz00_4300;
					}
				else
					{
						obj_t BgL_auxz00_6135;

						BgL_auxz00_6135 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2415z00zz__base64z00,
							BINT(15725L), BGl_string2430z00zz__base64z00,
							BGl_string2421z00zz__base64z00, BgL_ipz00_4300);
						FAILURE(BgL_auxz00_6135, BFALSE, BFALSE);
					}
				return
					BGl_pemzd2decodezd2portz00zz__base64z00(BgL_auxz00_6132,
					BgL_auxz00_6139);
			}
		}

	}



/* &<@anonymous:1969> */
	obj_t BGl_z62zc3z04anonymousza31969ze3ze5zz__base64z00(obj_t BgL_envz00_4302,
		obj_t BgL_cz00_4305)
	{
		{	/* Unsafe/base64.scm 434 */
			{	/* Unsafe/base64.scm 435 */
				obj_t BgL_ipz00_4303;
				obj_t BgL_startz00_4304;

				BgL_ipz00_4303 = ((obj_t) PROCEDURE_L_REF(BgL_envz00_4302, (int) (0L)));
				BgL_startz00_4304 = PROCEDURE_L_REF(BgL_envz00_4302, (int) (1L));
				{
					obj_t BgL_startz00_4573;
					obj_t BgL_cz00_4574;

					{	/* Unsafe/base64.scm 435 */
						obj_t BgL_arg1970z00_4597;

						{	/* Unsafe/base64.scm 435 */
							long BgL_arg1971z00_4598;

							BgL_arg1971z00_4598 = STRING_LENGTH(((obj_t) BgL_startz00_4304));
							BgL_arg1970z00_4597 =
								c_substring(
								((obj_t) BgL_startz00_4304), 7L, BgL_arg1971z00_4598);
						}
						BgL_startz00_4573 = BgL_arg1970z00_4597;
						BgL_cz00_4574 = BgL_cz00_4305;
						if ((CCHAR(BgL_cz00_4574) == ((unsigned char) '-')))
							{	/* Unsafe/base64.scm 421 */
								obj_t BgL_endz00_4575;

								BgL_endz00_4575 =
									BGl_z62zc3z04anonymousza31550ze3ze5zz__base64z00
									(BGl_pemzd2markupzd2grammarz00zz__base64z00, BgL_ipz00_4303,
									1L);
								if (bigloo_strcmp_at(BgL_endz00_4575,
										BGl_string2431z00zz__base64z00, 0L))
									{	/* Unsafe/base64.scm 423 */
										bool_t BgL_test2637z00_6166;

										{	/* Unsafe/base64.scm 423 */
											obj_t BgL_arg1990z00_4576;

											{	/* Unsafe/base64.scm 423 */
												long BgL_arg1991z00_4577;

												BgL_arg1991z00_4577 =
													STRING_LENGTH(((obj_t) BgL_endz00_4575));
												BgL_arg1990z00_4576 =
													c_substring(
													((obj_t) BgL_endz00_4575), 5L, BgL_arg1991z00_4577);
											}
											{	/* Unsafe/base64.scm 423 */
												long BgL_l1z00_4578;

												BgL_l1z00_4578 = STRING_LENGTH(BgL_startz00_4573);
												if (
													(BgL_l1z00_4578 ==
														STRING_LENGTH(BgL_arg1990z00_4576)))
													{	/* Unsafe/base64.scm 423 */
														int BgL_arg2065z00_4579;

														{	/* Unsafe/base64.scm 423 */
															char *BgL_auxz00_6177;
															char *BgL_tmpz00_6175;

															BgL_auxz00_6177 =
																BSTRING_TO_STRING(BgL_arg1990z00_4576);
															BgL_tmpz00_6175 =
																BSTRING_TO_STRING(BgL_startz00_4573);
															BgL_arg2065z00_4579 =
																memcmp(BgL_tmpz00_6175, BgL_auxz00_6177,
																BgL_l1z00_4578);
														}
														BgL_test2637z00_6166 =
															((long) (BgL_arg2065z00_4579) == 0L);
													}
												else
													{	/* Unsafe/base64.scm 423 */
														BgL_test2637z00_6166 = ((bool_t) 0);
													}
											}
										}
										if (BgL_test2637z00_6166)
											{	/* Unsafe/base64.scm 423 */
												return BTRUE;
											}
										else
											{	/* Unsafe/base64.scm 426 */
												BgL_z62iozd2parsezd2errorz62_bglt BgL_arg1985z00_4580;

												{	/* Unsafe/base64.scm 426 */
													BgL_z62iozd2parsezd2errorz62_bglt BgL_new1084z00_4581;

													{	/* Unsafe/base64.scm 426 */
														BgL_z62iozd2parsezd2errorz62_bglt
															BgL_new1083z00_4582;
														BgL_new1083z00_4582 =
															((BgL_z62iozd2parsezd2errorz62_bglt)
															BOBJECT(GC_MALLOC(sizeof(struct
																		BgL_z62iozd2parsezd2errorz62_bgl))));
														{	/* Unsafe/base64.scm 426 */
															long BgL_arg1989z00_4583;

															BgL_arg1989z00_4583 =
																BGL_CLASS_NUM
																(BGl_z62iozd2parsezd2errorz62zz__objectz00);
															BGL_OBJECT_CLASS_NUM_SET(((BgL_objectz00_bglt)
																	BgL_new1083z00_4582), BgL_arg1989z00_4583);
														}
														BgL_new1084z00_4581 = BgL_new1083z00_4582;
													}
													((((BgL_z62exceptionz62_bglt) COBJECT(
																	((BgL_z62exceptionz62_bglt)
																		BgL_new1084z00_4581)))->BgL_fnamez00) =
														((obj_t) BFALSE), BUNSPEC);
													((((BgL_z62exceptionz62_bglt)
																COBJECT(((BgL_z62exceptionz62_bglt)
																		BgL_new1084z00_4581)))->BgL_locationz00) =
														((obj_t) BFALSE), BUNSPEC);
													{
														obj_t BgL_auxz00_6190;

														{	/* Unsafe/base64.scm 426 */
															obj_t BgL_arg1987z00_4584;

															{	/* Unsafe/base64.scm 426 */
																obj_t BgL_arg1988z00_4585;

																{	/* Unsafe/base64.scm 426 */
																	obj_t BgL_classz00_4586;

																	BgL_classz00_4586 =
																		BGl_z62iozd2parsezd2errorz62zz__objectz00;
																	BgL_arg1988z00_4585 =
																		BGL_CLASS_ALL_FIELDS(BgL_classz00_4586);
																}
																BgL_arg1987z00_4584 =
																	VECTOR_REF(BgL_arg1988z00_4585, 2L);
															}
															BgL_auxz00_6190 =
																BGl_classzd2fieldzd2defaultzd2valuezd2zz__objectz00
																(BgL_arg1987z00_4584);
														}
														((((BgL_z62exceptionz62_bglt) COBJECT(
																		((BgL_z62exceptionz62_bglt)
																			BgL_new1084z00_4581)))->BgL_stackz00) =
															((obj_t) BgL_auxz00_6190), BUNSPEC);
													}
													((((BgL_z62errorz62_bglt) COBJECT(
																	((BgL_z62errorz62_bglt)
																		BgL_new1084z00_4581)))->BgL_procz00) =
														((obj_t) BGl_string2409z00zz__base64z00), BUNSPEC);
													((((BgL_z62errorz62_bglt)
																COBJECT(((BgL_z62errorz62_bglt)
																		BgL_new1084z00_4581)))->BgL_msgz00) =
														((obj_t) BGl_string2432z00zz__base64z00), BUNSPEC);
													((((BgL_z62errorz62_bglt)
																COBJECT(((BgL_z62errorz62_bglt)
																		BgL_new1084z00_4581)))->BgL_objz00) =
														((obj_t) BgL_endz00_4575), BUNSPEC);
													BgL_arg1985z00_4580 = BgL_new1084z00_4581;
												}
												return
													BGl_raisez00zz__errorz00(
													((obj_t) BgL_arg1985z00_4580));
											}
									}
								else
									{	/* Unsafe/base64.scm 422 */
										return BFALSE;
									}
							}
						else
							{	/* Unsafe/base64.scm 417 */
								BgL_z62iozd2parsezd2errorz62_bglt BgL_arg1992z00_4587;

								{	/* Unsafe/base64.scm 417 */
									BgL_z62iozd2parsezd2errorz62_bglt BgL_new1082z00_4588;

									{	/* Unsafe/base64.scm 417 */
										BgL_z62iozd2parsezd2errorz62_bglt BgL_new1081z00_4589;

										BgL_new1081z00_4589 =
											((BgL_z62iozd2parsezd2errorz62_bglt)
											BOBJECT(GC_MALLOC(sizeof(struct
														BgL_z62iozd2parsezd2errorz62_bgl))));
										{	/* Unsafe/base64.scm 417 */
											long BgL_arg1999z00_4590;

											BgL_arg1999z00_4590 =
												BGL_CLASS_NUM
												(BGl_z62iozd2parsezd2errorz62zz__objectz00);
											BGL_OBJECT_CLASS_NUM_SET(((BgL_objectz00_bglt)
													BgL_new1081z00_4589), BgL_arg1999z00_4590);
										}
										BgL_new1082z00_4588 = BgL_new1081z00_4589;
									}
									((((BgL_z62exceptionz62_bglt) COBJECT(
													((BgL_z62exceptionz62_bglt) BgL_new1082z00_4588)))->
											BgL_fnamez00) = ((obj_t) BFALSE), BUNSPEC);
									((((BgL_z62exceptionz62_bglt)
												COBJECT(((BgL_z62exceptionz62_bglt)
														BgL_new1082z00_4588)))->BgL_locationz00) =
										((obj_t) BFALSE), BUNSPEC);
									{
										obj_t BgL_auxz00_6212;

										{	/* Unsafe/base64.scm 417 */
											obj_t BgL_arg1993z00_4591;

											{	/* Unsafe/base64.scm 417 */
												obj_t BgL_arg1994z00_4592;

												{	/* Unsafe/base64.scm 417 */
													obj_t BgL_classz00_4593;

													BgL_classz00_4593 =
														BGl_z62iozd2parsezd2errorz62zz__objectz00;
													BgL_arg1994z00_4592 =
														BGL_CLASS_ALL_FIELDS(BgL_classz00_4593);
												}
												BgL_arg1993z00_4591 =
													VECTOR_REF(BgL_arg1994z00_4592, 2L);
											}
											BgL_auxz00_6212 =
												BGl_classzd2fieldzd2defaultzd2valuezd2zz__objectz00
												(BgL_arg1993z00_4591);
										}
										((((BgL_z62exceptionz62_bglt) COBJECT(
														((BgL_z62exceptionz62_bglt) BgL_new1082z00_4588)))->
												BgL_stackz00) = ((obj_t) BgL_auxz00_6212), BUNSPEC);
									}
									((((BgL_z62errorz62_bglt) COBJECT(
													((BgL_z62errorz62_bglt) BgL_new1082z00_4588)))->
											BgL_procz00) =
										((obj_t) BGl_string2409z00zz__base64z00), BUNSPEC);
									((((BgL_z62errorz62_bglt) COBJECT(((BgL_z62errorz62_bglt)
														BgL_new1082z00_4588)))->BgL_msgz00) =
										((obj_t) BGl_string2433z00zz__base64z00), BUNSPEC);
									{
										obj_t BgL_auxz00_6222;

										{	/* Unsafe/base64.scm 420 */
											obj_t BgL_arg1995z00_4594;

											BgL_arg1995z00_4594 =
												BGl_readzd2linezd2zz__r4_input_6_10_2z00
												(BgL_ipz00_4303);
											{	/* Unsafe/base64.scm 420 */
												obj_t BgL_list1996z00_4595;

												{	/* Unsafe/base64.scm 420 */
													obj_t BgL_arg1998z00_4596;

													BgL_arg1998z00_4596 =
														MAKE_YOUNG_PAIR(BgL_arg1995z00_4594, BNIL);
													BgL_list1996z00_4595 =
														MAKE_YOUNG_PAIR(BgL_cz00_4574, BgL_arg1998z00_4596);
												}
												BgL_auxz00_6222 =
													BGl_formatz00zz__r4_output_6_10_3z00
													(BGl_string2411z00zz__base64z00,
													BgL_list1996z00_4595);
										}}
										((((BgL_z62errorz62_bglt) COBJECT(
														((BgL_z62errorz62_bglt) BgL_new1082z00_4588)))->
												BgL_objz00) = ((obj_t) BgL_auxz00_6222), BUNSPEC);
									}
									BgL_arg1992z00_4587 = BgL_new1082z00_4588;
								}
								return BGl_raisez00zz__errorz00(((obj_t) BgL_arg1992z00_4587));
							}
					}
				}
			}
		}

	}



/* pem-read-file */
	BGL_EXPORTED_DEF obj_t BGl_pemzd2readzd2filez00zz__base64z00(obj_t
		BgL_filez00_27)
	{
		{	/* Unsafe/base64.scm 446 */
			{	/* Unsafe/base64.scm 447 */
				obj_t BgL_pz00_4031;

				{	/* Unsafe/base64.scm 447 */

					{	/* Unsafe/base64.scm 447 */

						BgL_pz00_4031 =
							BGl_openzd2outputzd2stringz00zz__r4_ports_6_10_1z00(BTRUE);
					}
				}
				{	/* Unsafe/base64.scm 450 */
					obj_t BgL_zc3z04anonymousza32001ze3z87_4306;

					BgL_zc3z04anonymousza32001ze3z87_4306 =
						MAKE_FX_PROCEDURE(BGl_z62zc3z04anonymousza32001ze3ze5zz__base64z00,
						(int) (0L), (int) (1L));
					PROCEDURE_SET(BgL_zc3z04anonymousza32001ze3z87_4306,
						(int) (0L), BgL_pz00_4031);
					BGl_withzd2inputzd2fromzd2filezd2zz__r4_ports_6_10_1z00
						(BgL_filez00_27, BgL_zc3z04anonymousza32001ze3z87_4306);
				}
				return bgl_close_output_port(BgL_pz00_4031);
			}
		}

	}



/* &pem-read-file */
	obj_t BGl_z62pemzd2readzd2filez62zz__base64z00(obj_t BgL_envz00_4307,
		obj_t BgL_filez00_4308)
	{
		{	/* Unsafe/base64.scm 446 */
			{	/* Unsafe/base64.scm 447 */
				obj_t BgL_auxz00_6239;

				if (STRINGP(BgL_filez00_4308))
					{	/* Unsafe/base64.scm 447 */
						BgL_auxz00_6239 = BgL_filez00_4308;
					}
				else
					{
						obj_t BgL_auxz00_6242;

						BgL_auxz00_6242 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2415z00zz__base64z00,
							BINT(16871L), BGl_string2434z00zz__base64z00,
							BGl_string2418z00zz__base64z00, BgL_filez00_4308);
						FAILURE(BgL_auxz00_6242, BFALSE, BFALSE);
					}
				return BGl_pemzd2readzd2filez00zz__base64z00(BgL_auxz00_6239);
			}
		}

	}



/* &<@anonymous:2001> */
	obj_t BGl_z62zc3z04anonymousza32001ze3ze5zz__base64z00(obj_t BgL_envz00_4309)
	{
		{	/* Unsafe/base64.scm 449 */
			{	/* Unsafe/base64.scm 450 */
				obj_t BgL_pz00_4310;

				BgL_pz00_4310 = ((obj_t) PROCEDURE_REF(BgL_envz00_4309, (int) (0L)));
				{	/* Unsafe/base64.scm 450 */
					obj_t BgL_arg2002z00_4599;

					{	/* Unsafe/base64.scm 450 */
						obj_t BgL_tmpz00_6250;

						BgL_tmpz00_6250 = BGL_CURRENT_DYNAMIC_ENV();
						BgL_arg2002z00_4599 = BGL_ENV_CURRENT_INPUT_PORT(BgL_tmpz00_6250);
					}
					return
						BGl_pemzd2decodezd2portz00zz__base64z00(BgL_arg2002z00_4599,
						BgL_pz00_4310);
				}
			}
		}

	}



/* object-init */
	obj_t BGl_objectzd2initzd2zz__base64z00(void)
	{
		{	/* Unsafe/base64.scm 15 */
			return BUNSPEC;
		}

	}



/* generic-init */
	obj_t BGl_genericzd2initzd2zz__base64z00(void)
	{
		{	/* Unsafe/base64.scm 15 */
			return BUNSPEC;
		}

	}



/* method-init */
	obj_t BGl_methodzd2initzd2zz__base64z00(void)
	{
		{	/* Unsafe/base64.scm 15 */
			return BUNSPEC;
		}

	}



/* imported-modules-init */
	obj_t BGl_importedzd2moduleszd2initz00zz__base64z00(void)
	{
		{	/* Unsafe/base64.scm 15 */
			return
				BGl_modulezd2initializa7ationz75zz__paramz00(453939141L,
				BSTRING_TO_STRING(BGl_string2435z00zz__base64z00));
		}

	}

#ifdef __cplusplus
}
#endif
