/* valagdbusclientmodule.c generated by valac, the Vala compiler
 * generated from valagdbusclientmodule.vala, do not modify */

/* valagdbusclientmodule.vala
 *
 * Copyright (C) 2010-2011  Jürg Billeter
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.

 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.

 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301  USA
 *
 * Author:
 * 	Jürg Billeter <j@bitron.ch>
 * 	Philip Van Hoof <pvanhoof@gnome.org>
 */

#include <glib.h>
#include <glib-object.h>
#include <vala.h>
#include <valaccode.h>
#include <valagee.h>
#include <stdlib.h>
#include <string.h>
#include <float.h>
#include <math.h>


#define VALA_TYPE_CCODE_BASE_MODULE (vala_ccode_base_module_get_type ())
#define VALA_CCODE_BASE_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_BASE_MODULE, ValaCCodeBaseModule))
#define VALA_CCODE_BASE_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_BASE_MODULE, ValaCCodeBaseModuleClass))
#define VALA_IS_CCODE_BASE_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_BASE_MODULE))
#define VALA_IS_CCODE_BASE_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_BASE_MODULE))
#define VALA_CCODE_BASE_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_BASE_MODULE, ValaCCodeBaseModuleClass))

typedef struct _ValaCCodeBaseModule ValaCCodeBaseModule;
typedef struct _ValaCCodeBaseModuleClass ValaCCodeBaseModuleClass;
typedef struct _ValaCCodeBaseModulePrivate ValaCCodeBaseModulePrivate;

#define VALA_CCODE_BASE_MODULE_TYPE_EMIT_CONTEXT (vala_ccode_base_module_emit_context_get_type ())
#define VALA_CCODE_BASE_MODULE_EMIT_CONTEXT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_CCODE_BASE_MODULE_TYPE_EMIT_CONTEXT, ValaCCodeBaseModuleEmitContext))
#define VALA_CCODE_BASE_MODULE_EMIT_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_CCODE_BASE_MODULE_TYPE_EMIT_CONTEXT, ValaCCodeBaseModuleEmitContextClass))
#define VALA_CCODE_BASE_MODULE_IS_EMIT_CONTEXT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_CCODE_BASE_MODULE_TYPE_EMIT_CONTEXT))
#define VALA_CCODE_BASE_MODULE_IS_EMIT_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_CCODE_BASE_MODULE_TYPE_EMIT_CONTEXT))
#define VALA_CCODE_BASE_MODULE_EMIT_CONTEXT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_CCODE_BASE_MODULE_TYPE_EMIT_CONTEXT, ValaCCodeBaseModuleEmitContextClass))

typedef struct _ValaCCodeBaseModuleEmitContext ValaCCodeBaseModuleEmitContext;
typedef struct _ValaCCodeBaseModuleEmitContextClass ValaCCodeBaseModuleEmitContextClass;

#define VALA_TYPE_CCODE_STRUCT_MODULE (vala_ccode_struct_module_get_type ())
#define VALA_CCODE_STRUCT_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_STRUCT_MODULE, ValaCCodeStructModule))
#define VALA_CCODE_STRUCT_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_STRUCT_MODULE, ValaCCodeStructModuleClass))
#define VALA_IS_CCODE_STRUCT_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_STRUCT_MODULE))
#define VALA_IS_CCODE_STRUCT_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_STRUCT_MODULE))
#define VALA_CCODE_STRUCT_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_STRUCT_MODULE, ValaCCodeStructModuleClass))

typedef struct _ValaCCodeStructModule ValaCCodeStructModule;
typedef struct _ValaCCodeStructModuleClass ValaCCodeStructModuleClass;
typedef struct _ValaCCodeStructModulePrivate ValaCCodeStructModulePrivate;

#define VALA_TYPE_CCODE_METHOD_MODULE (vala_ccode_method_module_get_type ())
#define VALA_CCODE_METHOD_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_METHOD_MODULE, ValaCCodeMethodModule))
#define VALA_CCODE_METHOD_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_METHOD_MODULE, ValaCCodeMethodModuleClass))
#define VALA_IS_CCODE_METHOD_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_METHOD_MODULE))
#define VALA_IS_CCODE_METHOD_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_METHOD_MODULE))
#define VALA_CCODE_METHOD_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_METHOD_MODULE, ValaCCodeMethodModuleClass))

typedef struct _ValaCCodeMethodModule ValaCCodeMethodModule;
typedef struct _ValaCCodeMethodModuleClass ValaCCodeMethodModuleClass;
typedef struct _ValaCCodeMethodModulePrivate ValaCCodeMethodModulePrivate;

#define VALA_TYPE_CCODE_CONTROL_FLOW_MODULE (vala_ccode_control_flow_module_get_type ())
#define VALA_CCODE_CONTROL_FLOW_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_CONTROL_FLOW_MODULE, ValaCCodeControlFlowModule))
#define VALA_CCODE_CONTROL_FLOW_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_CONTROL_FLOW_MODULE, ValaCCodeControlFlowModuleClass))
#define VALA_IS_CCODE_CONTROL_FLOW_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_CONTROL_FLOW_MODULE))
#define VALA_IS_CCODE_CONTROL_FLOW_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_CONTROL_FLOW_MODULE))
#define VALA_CCODE_CONTROL_FLOW_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_CONTROL_FLOW_MODULE, ValaCCodeControlFlowModuleClass))

typedef struct _ValaCCodeControlFlowModule ValaCCodeControlFlowModule;
typedef struct _ValaCCodeControlFlowModuleClass ValaCCodeControlFlowModuleClass;
typedef struct _ValaCCodeControlFlowModulePrivate ValaCCodeControlFlowModulePrivate;

#define VALA_TYPE_CCODE_MEMBER_ACCESS_MODULE (vala_ccode_member_access_module_get_type ())
#define VALA_CCODE_MEMBER_ACCESS_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_MEMBER_ACCESS_MODULE, ValaCCodeMemberAccessModule))
#define VALA_CCODE_MEMBER_ACCESS_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_MEMBER_ACCESS_MODULE, ValaCCodeMemberAccessModuleClass))
#define VALA_IS_CCODE_MEMBER_ACCESS_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_MEMBER_ACCESS_MODULE))
#define VALA_IS_CCODE_MEMBER_ACCESS_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_MEMBER_ACCESS_MODULE))
#define VALA_CCODE_MEMBER_ACCESS_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_MEMBER_ACCESS_MODULE, ValaCCodeMemberAccessModuleClass))

typedef struct _ValaCCodeMemberAccessModule ValaCCodeMemberAccessModule;
typedef struct _ValaCCodeMemberAccessModuleClass ValaCCodeMemberAccessModuleClass;
typedef struct _ValaCCodeMemberAccessModulePrivate ValaCCodeMemberAccessModulePrivate;

#define VALA_TYPE_CCODE_ASSIGNMENT_MODULE (vala_ccode_assignment_module_get_type ())
#define VALA_CCODE_ASSIGNMENT_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_ASSIGNMENT_MODULE, ValaCCodeAssignmentModule))
#define VALA_CCODE_ASSIGNMENT_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_ASSIGNMENT_MODULE, ValaCCodeAssignmentModuleClass))
#define VALA_IS_CCODE_ASSIGNMENT_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_ASSIGNMENT_MODULE))
#define VALA_IS_CCODE_ASSIGNMENT_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_ASSIGNMENT_MODULE))
#define VALA_CCODE_ASSIGNMENT_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_ASSIGNMENT_MODULE, ValaCCodeAssignmentModuleClass))

typedef struct _ValaCCodeAssignmentModule ValaCCodeAssignmentModule;
typedef struct _ValaCCodeAssignmentModuleClass ValaCCodeAssignmentModuleClass;
typedef struct _ValaCCodeAssignmentModulePrivate ValaCCodeAssignmentModulePrivate;

#define VALA_TYPE_CCODE_METHOD_CALL_MODULE (vala_ccode_method_call_module_get_type ())
#define VALA_CCODE_METHOD_CALL_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_METHOD_CALL_MODULE, ValaCCodeMethodCallModule))
#define VALA_CCODE_METHOD_CALL_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_METHOD_CALL_MODULE, ValaCCodeMethodCallModuleClass))
#define VALA_IS_CCODE_METHOD_CALL_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_METHOD_CALL_MODULE))
#define VALA_IS_CCODE_METHOD_CALL_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_METHOD_CALL_MODULE))
#define VALA_CCODE_METHOD_CALL_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_METHOD_CALL_MODULE, ValaCCodeMethodCallModuleClass))

typedef struct _ValaCCodeMethodCallModule ValaCCodeMethodCallModule;
typedef struct _ValaCCodeMethodCallModuleClass ValaCCodeMethodCallModuleClass;
typedef struct _ValaCCodeMethodCallModulePrivate ValaCCodeMethodCallModulePrivate;

#define VALA_TYPE_CCODE_ARRAY_MODULE (vala_ccode_array_module_get_type ())
#define VALA_CCODE_ARRAY_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_ARRAY_MODULE, ValaCCodeArrayModule))
#define VALA_CCODE_ARRAY_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_ARRAY_MODULE, ValaCCodeArrayModuleClass))
#define VALA_IS_CCODE_ARRAY_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_ARRAY_MODULE))
#define VALA_IS_CCODE_ARRAY_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_ARRAY_MODULE))
#define VALA_CCODE_ARRAY_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_ARRAY_MODULE, ValaCCodeArrayModuleClass))

typedef struct _ValaCCodeArrayModule ValaCCodeArrayModule;
typedef struct _ValaCCodeArrayModuleClass ValaCCodeArrayModuleClass;
typedef struct _ValaCCodeArrayModulePrivate ValaCCodeArrayModulePrivate;

#define VALA_TYPE_CCODE_DELEGATE_MODULE (vala_ccode_delegate_module_get_type ())
#define VALA_CCODE_DELEGATE_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CCODE_DELEGATE_MODULE, ValaCCodeDelegateModule))
#define VALA_CCODE_DELEGATE_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CCODE_DELEGATE_MODULE, ValaCCodeDelegateModuleClass))
#define VALA_IS_CCODE_DELEGATE_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CCODE_DELEGATE_MODULE))
#define VALA_IS_CCODE_DELEGATE_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CCODE_DELEGATE_MODULE))
#define VALA_CCODE_DELEGATE_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CCODE_DELEGATE_MODULE, ValaCCodeDelegateModuleClass))

typedef struct _ValaCCodeDelegateModule ValaCCodeDelegateModule;
typedef struct _ValaCCodeDelegateModuleClass ValaCCodeDelegateModuleClass;
typedef struct _ValaCCodeDelegateModulePrivate ValaCCodeDelegateModulePrivate;

#define VALA_TYPE_GERROR_MODULE (vala_gerror_module_get_type ())
#define VALA_GERROR_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_GERROR_MODULE, ValaGErrorModule))
#define VALA_GERROR_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_GERROR_MODULE, ValaGErrorModuleClass))
#define VALA_IS_GERROR_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_GERROR_MODULE))
#define VALA_IS_GERROR_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_GERROR_MODULE))
#define VALA_GERROR_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_GERROR_MODULE, ValaGErrorModuleClass))

typedef struct _ValaGErrorModule ValaGErrorModule;
typedef struct _ValaGErrorModuleClass ValaGErrorModuleClass;
typedef struct _ValaGErrorModulePrivate ValaGErrorModulePrivate;

#define VALA_TYPE_GTYPE_MODULE (vala_gtype_module_get_type ())
#define VALA_GTYPE_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_GTYPE_MODULE, ValaGTypeModule))
#define VALA_GTYPE_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_GTYPE_MODULE, ValaGTypeModuleClass))
#define VALA_IS_GTYPE_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_GTYPE_MODULE))
#define VALA_IS_GTYPE_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_GTYPE_MODULE))
#define VALA_GTYPE_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_GTYPE_MODULE, ValaGTypeModuleClass))

typedef struct _ValaGTypeModule ValaGTypeModule;
typedef struct _ValaGTypeModuleClass ValaGTypeModuleClass;
typedef struct _ValaGTypeModulePrivate ValaGTypeModulePrivate;

#define VALA_TYPE_GOBJECT_MODULE (vala_gobject_module_get_type ())
#define VALA_GOBJECT_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_GOBJECT_MODULE, ValaGObjectModule))
#define VALA_GOBJECT_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_GOBJECT_MODULE, ValaGObjectModuleClass))
#define VALA_IS_GOBJECT_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_GOBJECT_MODULE))
#define VALA_IS_GOBJECT_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_GOBJECT_MODULE))
#define VALA_GOBJECT_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_GOBJECT_MODULE, ValaGObjectModuleClass))

typedef struct _ValaGObjectModule ValaGObjectModule;
typedef struct _ValaGObjectModuleClass ValaGObjectModuleClass;
typedef struct _ValaGObjectModulePrivate ValaGObjectModulePrivate;

#define VALA_TYPE_GSIGNAL_MODULE (vala_gsignal_module_get_type ())
#define VALA_GSIGNAL_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_GSIGNAL_MODULE, ValaGSignalModule))
#define VALA_GSIGNAL_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_GSIGNAL_MODULE, ValaGSignalModuleClass))
#define VALA_IS_GSIGNAL_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_GSIGNAL_MODULE))
#define VALA_IS_GSIGNAL_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_GSIGNAL_MODULE))
#define VALA_GSIGNAL_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_GSIGNAL_MODULE, ValaGSignalModuleClass))

typedef struct _ValaGSignalModule ValaGSignalModule;
typedef struct _ValaGSignalModuleClass ValaGSignalModuleClass;
typedef struct _ValaGSignalModulePrivate ValaGSignalModulePrivate;

#define VALA_TYPE_GTK_MODULE (vala_gtk_module_get_type ())
#define VALA_GTK_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_GTK_MODULE, ValaGtkModule))
#define VALA_GTK_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_GTK_MODULE, ValaGtkModuleClass))
#define VALA_IS_GTK_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_GTK_MODULE))
#define VALA_IS_GTK_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_GTK_MODULE))
#define VALA_GTK_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_GTK_MODULE, ValaGtkModuleClass))

typedef struct _ValaGtkModule ValaGtkModule;
typedef struct _ValaGtkModuleClass ValaGtkModuleClass;
typedef struct _ValaGtkModulePrivate ValaGtkModulePrivate;

#define VALA_TYPE_GASYNC_MODULE (vala_gasync_module_get_type ())
#define VALA_GASYNC_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_GASYNC_MODULE, ValaGAsyncModule))
#define VALA_GASYNC_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_GASYNC_MODULE, ValaGAsyncModuleClass))
#define VALA_IS_GASYNC_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_GASYNC_MODULE))
#define VALA_IS_GASYNC_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_GASYNC_MODULE))
#define VALA_GASYNC_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_GASYNC_MODULE, ValaGAsyncModuleClass))

typedef struct _ValaGAsyncModule ValaGAsyncModule;
typedef struct _ValaGAsyncModuleClass ValaGAsyncModuleClass;
typedef struct _ValaGAsyncModulePrivate ValaGAsyncModulePrivate;

#define VALA_TYPE_GVARIANT_MODULE (vala_gvariant_module_get_type ())
#define VALA_GVARIANT_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_GVARIANT_MODULE, ValaGVariantModule))
#define VALA_GVARIANT_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_GVARIANT_MODULE, ValaGVariantModuleClass))
#define VALA_IS_GVARIANT_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_GVARIANT_MODULE))
#define VALA_IS_GVARIANT_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_GVARIANT_MODULE))
#define VALA_GVARIANT_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_GVARIANT_MODULE, ValaGVariantModuleClass))

typedef struct _ValaGVariantModule ValaGVariantModule;
typedef struct _ValaGVariantModuleClass ValaGVariantModuleClass;
typedef struct _ValaGVariantModulePrivate ValaGVariantModulePrivate;

#define VALA_TYPE_GD_BUS_MODULE (vala_gd_bus_module_get_type ())
#define VALA_GD_BUS_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_GD_BUS_MODULE, ValaGDBusModule))
#define VALA_GD_BUS_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_GD_BUS_MODULE, ValaGDBusModuleClass))
#define VALA_IS_GD_BUS_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_GD_BUS_MODULE))
#define VALA_IS_GD_BUS_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_GD_BUS_MODULE))
#define VALA_GD_BUS_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_GD_BUS_MODULE, ValaGDBusModuleClass))

typedef struct _ValaGDBusModule ValaGDBusModule;
typedef struct _ValaGDBusModuleClass ValaGDBusModuleClass;
typedef struct _ValaGDBusModulePrivate ValaGDBusModulePrivate;

#define VALA_TYPE_GD_BUS_CLIENT_MODULE (vala_gd_bus_client_module_get_type ())
#define VALA_GD_BUS_CLIENT_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_GD_BUS_CLIENT_MODULE, ValaGDBusClientModule))
#define VALA_GD_BUS_CLIENT_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_GD_BUS_CLIENT_MODULE, ValaGDBusClientModuleClass))
#define VALA_IS_GD_BUS_CLIENT_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_GD_BUS_CLIENT_MODULE))
#define VALA_IS_GD_BUS_CLIENT_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_GD_BUS_CLIENT_MODULE))
#define VALA_GD_BUS_CLIENT_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_GD_BUS_CLIENT_MODULE, ValaGDBusClientModuleClass))

typedef struct _ValaGDBusClientModule ValaGDBusClientModule;
typedef struct _ValaGDBusClientModuleClass ValaGDBusClientModuleClass;
typedef struct _ValaGDBusClientModulePrivate ValaGDBusClientModulePrivate;

#define VALA_GD_BUS_CLIENT_MODULE_TYPE_CALL_TYPE (vala_gd_bus_client_module_call_type_get_type ())
#define _vala_code_node_unref0(var) ((var == NULL) ? NULL : (var = (vala_code_node_unref (var), NULL)))
#define _g_free0(var) (var = (g_free (var), NULL))
#define _vala_map_unref0(var) ((var == NULL) ? NULL : (var = (vala_map_unref (var), NULL)))
#define _vala_ccode_node_unref0(var) ((var == NULL) ? NULL : (var = (vala_ccode_node_unref (var), NULL)))
#define _vala_iterable_unref0(var) ((var == NULL) ? NULL : (var = (vala_iterable_unref (var), NULL)))
typedef struct _ValaCCodeBaseModuleEmitContextPrivate ValaCCodeBaseModuleEmitContextPrivate;

struct _ValaCCodeBaseModule {
	ValaCodeGenerator parent_instance;
	ValaCCodeBaseModulePrivate * priv;
	ValaSymbol* root_symbol;
	ValaCCodeBaseModuleEmitContext* emit_context;
	ValaCCodeLineDirective* current_line;
	ValaCCodeFile* header_file;
	ValaCCodeFile* internal_header_file;
	ValaCCodeFile* cfile;
	ValaCCodeBaseModuleEmitContext* class_init_context;
	ValaCCodeBaseModuleEmitContext* base_init_context;
	ValaCCodeBaseModuleEmitContext* class_finalize_context;
	ValaCCodeBaseModuleEmitContext* base_finalize_context;
	ValaCCodeBaseModuleEmitContext* instance_init_context;
	ValaCCodeBaseModuleEmitContext* instance_finalize_context;
	ValaCCodeStruct* param_spec_struct;
	ValaCCodeStruct* closure_struct;
	ValaCCodeEnum* prop_enum;
	ValaCCodeEnum* signal_enum;
	ValaSet* user_marshal_set;
	ValaSet* predefined_marshal_set;
	gint next_regex_id;
	gint next_coroutine_state G_GNUC_DEPRECATED;
	ValaDataType* void_type;
	ValaDataType* bool_type;
	ValaDataType* char_type;
	ValaDataType* uchar_type;
	ValaDataType* unichar_type;
	ValaDataType* short_type;
	ValaDataType* ushort_type;
	ValaDataType* int_type;
	ValaDataType* uint_type;
	ValaDataType* long_type;
	ValaDataType* ulong_type;
	ValaDataType* int8_type;
	ValaDataType* uint8_type;
	ValaDataType* int16_type;
	ValaDataType* uint16_type;
	ValaDataType* int32_type;
	ValaDataType* uint32_type;
	ValaDataType* int64_type;
	ValaDataType* uint64_type;
	ValaDataType* string_type;
	ValaDataType* regex_type;
	ValaDataType* float_type;
	ValaDataType* double_type;
	ValaTypeSymbol* gtype_type;
	ValaTypeSymbol* gobject_type;
	ValaErrorType* gerror_type;
	ValaClass* glist_type;
	ValaClass* gslist_type;
	ValaClass* gnode_type;
	ValaClass* gqueue_type;
	ValaClass* gvaluearray_type;
	ValaTypeSymbol* gstringbuilder_type;
	ValaTypeSymbol* garray_type;
	ValaTypeSymbol* gbytearray_type;
	ValaTypeSymbol* gptrarray_type;
	ValaTypeSymbol* gthreadpool_type;
	ValaDataType* gdestroynotify_type;
	ValaDataType* gquark_type;
	ValaStruct* gvalue_type;
	ValaClass* gvariant_type;
	ValaStruct* mutex_type;
	ValaStruct* gmutex_type;
	ValaStruct* grecmutex_type;
	ValaStruct* grwlock_type;
	ValaStruct* gcond_type;
	ValaClass* gsource_type;
	ValaTypeSymbol* type_module_type;
	ValaTypeSymbol* dbus_proxy_type;
	ValaClass* gtk_widget_type;
	gboolean in_plugin;
	gchar* module_init_param_name;
	gboolean gvaluecollector_h_needed;
	gboolean requires_assert;
	gboolean requires_array_free;
	gboolean requires_array_move;
	gboolean requires_array_length;
	gboolean requires_clear_mutex;
	ValaSet* wrappers;
};

struct _ValaCCodeBaseModuleClass {
	ValaCodeGeneratorClass parent_class;
	void (*append_vala_array_free) (ValaCCodeBaseModule* self);
	void (*append_vala_array_move) (ValaCCodeBaseModule* self);
	void (*append_vala_array_length) (ValaCCodeBaseModule* self);
	gboolean (*generate_enum_declaration) (ValaCCodeBaseModule* self, ValaEnum* en, ValaCCodeFile* decl_space);
	void (*generate_class_struct_declaration) (ValaCCodeBaseModule* self, ValaClass* cl, ValaCCodeFile* decl_space);
	void (*generate_struct_declaration) (ValaCCodeBaseModule* self, ValaStruct* st, ValaCCodeFile* decl_space);
	void (*generate_delegate_declaration) (ValaCCodeBaseModule* self, ValaDelegate* d, ValaCCodeFile* decl_space);
	void (*generate_cparameters) (ValaCCodeBaseModule* self, ValaMethod* m, ValaCCodeFile* decl_space, ValaMap* cparam_map, ValaCCodeFunction* func, ValaCCodeFunctionDeclarator* vdeclarator, ValaMap* carg_map, ValaCCodeFunctionCall* vcall, gint direction);
	ValaCCodeExpression* (*get_dup_func_expression) (ValaCCodeBaseModule* self, ValaDataType* type, ValaSourceReference* source_reference, gboolean is_chainup);
	gchar* (*append_struct_array_free) (ValaCCodeBaseModule* self, ValaStruct* st);
	ValaCCodeExpression* (*destroy_value) (ValaCCodeBaseModule* self, ValaTargetValue* value, gboolean is_macro_definition);
	void (*append_scope_free) (ValaCCodeBaseModule* self, ValaSymbol* sym, ValaCodeNode* stop_at);
	ValaTargetValue* (*get_local_cvalue) (ValaCCodeBaseModule* self, ValaLocalVariable* local);
	ValaTargetValue* (*get_parameter_cvalue) (ValaCCodeBaseModule* self, ValaParameter* param);
	ValaTargetValue* (*get_field_cvalue) (ValaCCodeBaseModule* self, ValaField* field, ValaTargetValue* instance);
	ValaTargetValue* (*load_variable) (ValaCCodeBaseModule* self, ValaVariable* variable, ValaTargetValue* value);
	ValaTargetValue* (*load_this_parameter) (ValaCCodeBaseModule* self, ValaTypeSymbol* sym);
	void (*store_value) (ValaCCodeBaseModule* self, ValaTargetValue* lvalue, ValaTargetValue* value);
	gchar* (*get_delegate_target_cname) (ValaCCodeBaseModule* self, const gchar* delegate_cname);
	ValaCCodeExpression* (*get_delegate_target_cexpression) (ValaCCodeBaseModule* self, ValaExpression* delegate_expr, ValaCCodeExpression* * delegate_target_destroy_notify);
	ValaCCodeExpression* (*get_delegate_target_cvalue) (ValaCCodeBaseModule* self, ValaTargetValue* value);
	ValaCCodeExpression* (*get_delegate_target_destroy_notify_cvalue) (ValaCCodeBaseModule* self, ValaTargetValue* value);
	gchar* (*get_delegate_target_destroy_notify_cname) (ValaCCodeBaseModule* self, const gchar* delegate_cname);
	ValaTargetValue* (*copy_value) (ValaCCodeBaseModule* self, ValaTargetValue* value, ValaCodeNode* node);
	void (*generate_class_declaration) (ValaCCodeBaseModule* self, ValaClass* cl, ValaCCodeFile* decl_space);
	void (*generate_interface_declaration) (ValaCCodeBaseModule* self, ValaInterface* iface, ValaCCodeFile* decl_space);
	void (*generate_method_declaration) (ValaCCodeBaseModule* self, ValaMethod* m, ValaCCodeFile* decl_space);
	void (*generate_error_domain_declaration) (ValaCCodeBaseModule* self, ValaErrorDomain* edomain, ValaCCodeFile* decl_space);
	ValaCCodeExpression* (*deserialize_expression) (ValaCCodeBaseModule* self, ValaDataType* type, ValaCCodeExpression* variant_expr, ValaCCodeExpression* expr, ValaCCodeExpression* error_expr, gboolean* may_fail);
	ValaCCodeExpression* (*serialize_expression) (ValaCCodeBaseModule* self, ValaDataType* type, ValaCCodeExpression* expr);
	ValaCCodeExpression* (*get_implicit_cast_expression) (ValaCCodeBaseModule* self, ValaCCodeExpression* source_cexpr, ValaDataType* expression_type, ValaDataType* target_type, ValaCodeNode* node);
	void (*create_type_check_statement) (ValaCCodeBaseModule* self, ValaCodeNode* method_node, ValaDataType* ret_type, ValaTypeSymbol* t, gboolean non_null, const gchar* var_name);
	gboolean (*is_gobject_property) (ValaCCodeBaseModule* self, ValaProperty* prop);
	void (*generate_dynamic_method_wrapper) (ValaCCodeBaseModule* self, ValaDynamicMethod* method);
	gboolean (*method_has_wrapper) (ValaCCodeBaseModule* self, ValaMethod* method);
	ValaCCodeFunctionCall* (*get_param_spec) (ValaCCodeBaseModule* self, ValaProperty* prop);
	ValaCCodeExpression* (*get_signal_creation) (ValaCCodeBaseModule* self, ValaSignal* sig, ValaTypeSymbol* type);
	void (*register_dbus_info) (ValaCCodeBaseModule* self, ValaCCodeBlock* block, ValaObjectTypeSymbol* bindable);
	gchar* (*get_dynamic_property_getter_cname) (ValaCCodeBaseModule* self, ValaDynamicProperty* node);
	gchar* (*get_dynamic_property_setter_cname) (ValaCCodeBaseModule* self, ValaDynamicProperty* node);
	gchar* (*get_dynamic_signal_cname) (ValaCCodeBaseModule* self, ValaDynamicSignal* node);
	gchar* (*get_dynamic_signal_connect_wrapper_name) (ValaCCodeBaseModule* self, ValaDynamicSignal* node);
	gchar* (*get_dynamic_signal_connect_after_wrapper_name) (ValaCCodeBaseModule* self, ValaDynamicSignal* node);
	gchar* (*get_dynamic_signal_disconnect_wrapper_name) (ValaCCodeBaseModule* self, ValaDynamicSignal* node);
	gchar* (*get_array_length_cname) (ValaCCodeBaseModule* self, const gchar* array_cname, gint dim);
	gchar* (*get_parameter_array_length_cname) (ValaCCodeBaseModule* self, ValaParameter* param, gint dim);
	ValaCCodeExpression* (*get_array_length_cexpression) (ValaCCodeBaseModule* self, ValaExpression* array_expr, gint dim);
	ValaCCodeExpression* (*get_array_length_cvalue) (ValaCCodeBaseModule* self, ValaTargetValue* value, gint dim);
	gchar* (*get_array_size_cname) (ValaCCodeBaseModule* self, const gchar* array_cname);
	void (*add_simple_check) (ValaCCodeBaseModule* self, ValaCodeNode* node, gboolean always_fails);
	gchar* (*generate_ready_function) (ValaCCodeBaseModule* self, ValaMethod* m);
};

struct _ValaCCodeStructModule {
	ValaCCodeBaseModule parent_instance;
	ValaCCodeStructModulePrivate * priv;
};

struct _ValaCCodeStructModuleClass {
	ValaCCodeBaseModuleClass parent_class;
};

struct _ValaCCodeMethodModule {
	ValaCCodeStructModule parent_instance;
	ValaCCodeMethodModulePrivate * priv;
};

struct _ValaCCodeMethodModuleClass {
	ValaCCodeStructModuleClass parent_class;
	void (*generate_method_result_declaration) (ValaCCodeMethodModule* self, ValaMethod* m, ValaCCodeFile* decl_space, ValaCCodeFunction* cfunc, ValaMap* cparam_map, ValaMap* carg_map);
	ValaCCodeParameter* (*generate_parameter) (ValaCCodeMethodModule* self, ValaParameter* param, ValaCCodeFile* decl_space, ValaMap* cparam_map, ValaMap* carg_map);
};

struct _ValaCCodeControlFlowModule {
	ValaCCodeMethodModule parent_instance;
	ValaCCodeControlFlowModulePrivate * priv;
};

struct _ValaCCodeControlFlowModuleClass {
	ValaCCodeMethodModuleClass parent_class;
};

struct _ValaCCodeMemberAccessModule {
	ValaCCodeControlFlowModule parent_instance;
	ValaCCodeMemberAccessModulePrivate * priv;
};

struct _ValaCCodeMemberAccessModuleClass {
	ValaCCodeControlFlowModuleClass parent_class;
};

struct _ValaCCodeAssignmentModule {
	ValaCCodeMemberAccessModule parent_instance;
	ValaCCodeAssignmentModulePrivate * priv;
};

struct _ValaCCodeAssignmentModuleClass {
	ValaCCodeMemberAccessModuleClass parent_class;
};

struct _ValaCCodeMethodCallModule {
	ValaCCodeAssignmentModule parent_instance;
	ValaCCodeMethodCallModulePrivate * priv;
};

struct _ValaCCodeMethodCallModuleClass {
	ValaCCodeAssignmentModuleClass parent_class;
};

struct _ValaCCodeArrayModule {
	ValaCCodeMethodCallModule parent_instance;
	ValaCCodeArrayModulePrivate * priv;
};

struct _ValaCCodeArrayModuleClass {
	ValaCCodeMethodCallModuleClass parent_class;
};

struct _ValaCCodeDelegateModule {
	ValaCCodeArrayModule parent_instance;
	ValaCCodeDelegateModulePrivate * priv;
};

struct _ValaCCodeDelegateModuleClass {
	ValaCCodeArrayModuleClass parent_class;
};

struct _ValaGErrorModule {
	ValaCCodeDelegateModule parent_instance;
	ValaGErrorModulePrivate * priv;
};

struct _ValaGErrorModuleClass {
	ValaCCodeDelegateModuleClass parent_class;
	void (*return_with_exception) (ValaGErrorModule* self, ValaCCodeExpression* error_expr);
};

struct _ValaGTypeModule {
	ValaGErrorModule parent_instance;
	ValaGTypeModulePrivate * priv;
};

struct _ValaGTypeModuleClass {
	ValaGErrorModuleClass parent_class;
	void (*generate_virtual_method_declaration) (ValaGTypeModule* self, ValaMethod* m, ValaCCodeFile* decl_space, ValaCCodeStruct* type_struct);
	void (*generate_class_init) (ValaGTypeModule* self, ValaClass* cl);
	void (*end_instance_init) (ValaGTypeModule* self, ValaClass* cl);
};

struct _ValaGObjectModule {
	ValaGTypeModule parent_instance;
	ValaGObjectModulePrivate * priv;
};

struct _ValaGObjectModuleClass {
	ValaGTypeModuleClass parent_class;
};

struct _ValaGSignalModule {
	ValaGObjectModule parent_instance;
	ValaGSignalModulePrivate * priv;
};

struct _ValaGSignalModuleClass {
	ValaGObjectModuleClass parent_class;
};

struct _ValaGtkModule {
	ValaGSignalModule parent_instance;
	ValaGtkModulePrivate * priv;
};

struct _ValaGtkModuleClass {
	ValaGSignalModuleClass parent_class;
};

struct _ValaGAsyncModule {
	ValaGtkModule parent_instance;
	ValaGAsyncModulePrivate * priv;
};

struct _ValaGAsyncModuleClass {
	ValaGtkModuleClass parent_class;
};

struct _ValaGVariantModule {
	ValaGAsyncModule parent_instance;
	ValaGVariantModulePrivate * priv;
};

struct _ValaGVariantModuleClass {
	ValaGAsyncModuleClass parent_class;
};

struct _ValaGDBusModule {
	ValaGVariantModule parent_instance;
	ValaGDBusModulePrivate * priv;
};

struct _ValaGDBusModuleClass {
	ValaGVariantModuleClass parent_class;
};

struct _ValaGDBusClientModule {
	ValaGDBusModule parent_instance;
	ValaGDBusClientModulePrivate * priv;
};

struct _ValaGDBusClientModuleClass {
	ValaGDBusModuleClass parent_class;
};

typedef enum  {
	VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_SYNC,
	VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_ASYNC,
	VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_FINISH,
	VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_NO_REPLY
} ValaGDBusClientModuleCallType;

struct _ValaCCodeBaseModuleEmitContext {
	GTypeInstance parent_instance;
	volatile int ref_count;
	ValaCCodeBaseModuleEmitContextPrivate * priv;
	ValaSymbol* current_symbol;
	ValaArrayList* symbol_stack;
	ValaTryStatement* current_try;
	ValaCatchClause* current_catch;
	ValaCCodeFunction* ccode;
	ValaArrayList* ccode_stack;
	ValaArrayList* temp_ref_values;
	gint next_temp_var_id;
	gboolean current_method_inner_error;
	gboolean current_method_return;
	ValaMap* variable_name_map;
	ValaMap* closure_variable_count_map;
	ValaMap* closure_variable_clash_map;
	gint next_coroutine_state;
};

struct _ValaCCodeBaseModuleEmitContextClass {
	GTypeClass parent_class;
	void (*finalize) (ValaCCodeBaseModuleEmitContext *self);
};


static gpointer vala_gd_bus_client_module_parent_class = NULL;

GType vala_ccode_base_module_get_type (void) G_GNUC_CONST;
gpointer vala_ccode_base_module_emit_context_ref (gpointer instance);
void vala_ccode_base_module_emit_context_unref (gpointer instance);
GParamSpec* vala_ccode_base_module_param_spec_emit_context (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void vala_ccode_base_module_value_set_emit_context (GValue* value, gpointer v_object);
void vala_ccode_base_module_value_take_emit_context (GValue* value, gpointer v_object);
gpointer vala_ccode_base_module_value_get_emit_context (const GValue* value);
GType vala_ccode_base_module_emit_context_get_type (void) G_GNUC_CONST;
GType vala_ccode_struct_module_get_type (void) G_GNUC_CONST;
GType vala_ccode_method_module_get_type (void) G_GNUC_CONST;
GType vala_ccode_control_flow_module_get_type (void) G_GNUC_CONST;
GType vala_ccode_member_access_module_get_type (void) G_GNUC_CONST;
GType vala_ccode_assignment_module_get_type (void) G_GNUC_CONST;
GType vala_ccode_method_call_module_get_type (void) G_GNUC_CONST;
GType vala_ccode_array_module_get_type (void) G_GNUC_CONST;
GType vala_ccode_delegate_module_get_type (void) G_GNUC_CONST;
GType vala_gerror_module_get_type (void) G_GNUC_CONST;
GType vala_gtype_module_get_type (void) G_GNUC_CONST;
GType vala_gobject_module_get_type (void) G_GNUC_CONST;
GType vala_gsignal_module_get_type (void) G_GNUC_CONST;
GType vala_gtk_module_get_type (void) G_GNUC_CONST;
GType vala_gasync_module_get_type (void) G_GNUC_CONST;
GType vala_gvariant_module_get_type (void) G_GNUC_CONST;
GType vala_gd_bus_module_get_type (void) G_GNUC_CONST;
GType vala_gd_bus_client_module_get_type (void) G_GNUC_CONST;
enum  {
	VALA_GD_BUS_CLIENT_MODULE_DUMMY_PROPERTY
};
static GType vala_gd_bus_client_module_call_type_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
ValaCCodeConstant* vala_gd_bus_client_module_get_dbus_timeout (ValaGDBusClientModule* self, ValaSymbol* symbol);
static void vala_gd_bus_client_module_real_generate_dynamic_method_wrapper (ValaCCodeBaseModule* base, ValaDynamicMethod* method);
gchar* vala_ccode_base_module_get_ccode_name (ValaCodeNode* node);
void vala_ccode_base_module_generate_cparameters (ValaCCodeBaseModule* self, ValaMethod* m, ValaCCodeFile* decl_space, ValaMap* cparam_map, ValaCCodeFunction* func, ValaCCodeFunctionDeclarator* vdeclarator, ValaMap* carg_map, ValaCCodeFunctionCall* vcall, gint direction);
void vala_ccode_base_module_push_function (ValaCCodeBaseModule* self, ValaCCodeFunction* func);
static void vala_gd_bus_client_module_generate_marshalling (ValaGDBusClientModule* self, ValaMethod* m, ValaGDBusClientModuleCallType call_type, const gchar* iface_name, const gchar* method_name, gint method_timeout);
void vala_ccode_base_module_pop_function (ValaCCodeBaseModule* self);
static void vala_gd_bus_client_module_generate_proxy_interface_init (ValaGDBusClientModule* self, ValaInterface* main_iface, ValaInterface* iface);
gchar* vala_ccode_base_module_get_ccode_lower_case_prefix (ValaSymbol* sym);
gchar* vala_ccode_base_module_get_ccode_vfunc_name (ValaMethod* m);
ValaCCodeFunction* vala_ccode_base_module_get_ccode (ValaCCodeBaseModule* self);
static gchar* vala_gd_bus_client_module_generate_dbus_proxy_method (ValaGDBusClientModule* self, ValaInterface* main_iface, ValaInterface* iface, ValaMethod* m);
static gchar* vala_gd_bus_client_module_generate_async_dbus_proxy_method (ValaGDBusClientModule* self, ValaInterface* main_iface, ValaInterface* iface, ValaMethod* m);
gchar* vala_ccode_base_module_get_ccode_finish_vfunc_name (ValaMethod* m);
static gchar* vala_gd_bus_client_module_generate_finish_dbus_proxy_method (ValaGDBusClientModule* self, ValaInterface* main_iface, ValaInterface* iface, ValaMethod* m);
static gchar* vala_gd_bus_client_module_generate_dbus_proxy_property_get (ValaGDBusClientModule* self, ValaInterface* main_iface, ValaInterface* iface, ValaProperty* prop);
static gchar* vala_gd_bus_client_module_generate_dbus_proxy_property_set (ValaGDBusClientModule* self, ValaInterface* main_iface, ValaInterface* iface, ValaProperty* prop);
static gchar* vala_gd_bus_client_module_implement_interface (ValaGDBusClientModule* self, ValaCCodeFunctionCall* define_type, ValaInterface* main_iface, ValaInterface* iface);
gchar* vala_ccode_base_module_get_ccode_upper_case_name (ValaSymbol* sym, const gchar* infix);
static void vala_gd_bus_client_module_real_generate_interface_declaration (ValaCCodeBaseModule* base, ValaInterface* iface, ValaCCodeFile* decl_space);
void vala_ccode_base_module_generate_interface_declaration (ValaCCodeBaseModule* self, ValaInterface* iface, ValaCCodeFile* decl_space);
gchar* vala_gd_bus_module_get_dbus_name (ValaTypeSymbol* symbol);
gboolean vala_ccode_base_module_add_symbol_declaration (ValaCCodeBaseModule* self, ValaCCodeFile* decl_space, ValaSymbol* sym, const gchar* name);
gchar* vala_ccode_base_module_get_ccode_type_id (ValaCodeNode* node);
static void vala_gd_bus_client_module_real_visit_interface (ValaCodeVisitor* base, ValaInterface* iface);
static void vala_gd_bus_client_module_generate_signal_handler_function (ValaGDBusClientModule* self, ValaObjectTypeSymbol* sym);
static void vala_gd_bus_client_module_real_visit_method_call (ValaCodeVisitor* base, ValaMethodCall* expr);
ValaCCodeExpression* vala_ccode_base_module_get_type_id_expression (ValaCCodeBaseModule* self, ValaDataType* type, gboolean is_chainup);
void vala_ccode_base_module_set_current_method_inner_error (ValaCCodeBaseModule* self, gboolean value);
ValaLocalVariable* vala_ccode_base_module_get_temp_variable (ValaCCodeBaseModule* self, ValaDataType* type, gboolean value_owned, ValaCodeNode* node_reference, gboolean init);
ValaCCodeExpression* vala_ccode_base_module_get_variable_cexpression (ValaCCodeBaseModule* self, const gchar* name);
void vala_ccode_base_module_emit_temp_var (ValaCCodeBaseModule* self, ValaLocalVariable* local);
ValaCCodeExpression* vala_ccode_base_module_get_cvalue (ValaCCodeBaseModule* self, ValaExpression* expr);
void vala_ccode_base_module_set_cvalue (ValaCCodeBaseModule* self, ValaExpression* expr, ValaCCodeExpression* cvalue);
gchar* vala_ccode_base_module_generate_ready_function (ValaCCodeBaseModule* self, ValaMethod* m);
ValaMethod* vala_ccode_base_module_get_current_method (ValaCCodeBaseModule* self);
ValaCCodeExpression* vala_ccode_base_module_get_delegate_target (ValaCCodeBaseModule* self, ValaExpression* expr);
static gchar* vala_gd_bus_client_module_generate_dbus_signal_handler (ValaGDBusClientModule* self, ValaSignal* sig, ValaObjectTypeSymbol* sym);
gchar* vala_ccode_base_module_get_ccode_lower_case_name (ValaCodeNode* node, const gchar* infix);
ValaCCodeConstant* vala_ccode_base_module_get_signal_canonical_constant (ValaCCodeBaseModule* self, ValaSignal* sig, const gchar* detail);
gchar* vala_ccode_base_module_get_variable_cname (ValaCCodeBaseModule* self, const gchar* name);
ValaCCodeExpression* vala_ccode_base_module_default_value_for_type (ValaCCodeBaseModule* self, ValaDataType* type, gboolean initializer_expression);
gchar* vala_ccode_base_module_get_parameter_array_length_cname (ValaCCodeBaseModule* self, ValaParameter* param, gint dim);
void vala_gvariant_module_read_expression (ValaGVariantModule* self, ValaDataType* type, ValaCCodeExpression* iter_expr, ValaCCodeExpression* target_expr, ValaSymbol* sym, ValaCCodeExpression* error_expr, gboolean* may_fail);
gboolean vala_ccode_base_module_requires_destroy (ValaCCodeBaseModule* self, ValaDataType* type);
ValaCCodeExpression* vala_ccode_base_module_destroy_local (ValaCCodeBaseModule* self, ValaLocalVariable* local);
gchar* vala_gd_bus_module_get_dbus_name_for_member (ValaSymbol* symbol);
gboolean vala_gd_bus_module_dbus_method_uses_file_descriptor (ValaGDBusModule* self, ValaMethod* method);
void vala_gd_bus_module_send_dbus_value (ValaGDBusModule* self, ValaDataType* type, ValaCCodeExpression* builder_expr, ValaCCodeExpression* expr, ValaSymbol* sym);
ValaCodeContext* vala_ccode_base_module_get_context (ValaCCodeBaseModule* self);
gchar* vala_gasync_module_generate_async_callback_wrapper (ValaGAsyncModule* self);
void vala_ccode_base_module_return_default_value (ValaCCodeBaseModule* self, ValaDataType* return_type);
void vala_gd_bus_module_receive_dbus_value (ValaGDBusModule* self, ValaDataType* type, ValaCCodeExpression* message_expr, ValaCCodeExpression* iter_expr, ValaCCodeExpression* target_expr, ValaSymbol* sym, ValaCCodeExpression* error_expr, gboolean* may_fail);
gboolean vala_gd_bus_module_is_dbus_no_reply (ValaMethod* m);
gint vala_gd_bus_module_get_dbus_timeout_for_member (ValaSymbol* symbol);
gint vala_ccode_base_module_get_param_pos (ValaCCodeBaseModule* self, gdouble param_pos, gboolean ellipsis);
void vala_gvariant_module_write_expression (ValaGVariantModule* self, ValaDataType* type, ValaCCodeExpression* builder_expr, ValaCCodeExpression* expr, ValaSymbol* sym);
ValaCCodeExpression* vala_ccode_base_module_deserialize_expression (ValaCCodeBaseModule* self, ValaDataType* type, ValaCCodeExpression* variant_expr, ValaCCodeExpression* expr, ValaCCodeExpression* error_expr, gboolean* may_fail);
gchar* vala_gvariant_module_get_dbus_signature (ValaSymbol* symbol);
static void vala_gd_bus_client_module_real_register_dbus_info (ValaCCodeBaseModule* base, ValaCCodeBlock* block, ValaObjectTypeSymbol* sym);
ValaCCodeExpression* vala_gd_bus_module_get_interface_info (ValaGDBusModule* self, ValaObjectTypeSymbol* sym);
ValaGDBusClientModule* vala_gd_bus_client_module_new (void);
ValaGDBusClientModule* vala_gd_bus_client_module_construct (GType object_type);
ValaGDBusModule* vala_gd_bus_module_new (void);
ValaGDBusModule* vala_gd_bus_module_construct (GType object_type);


static GType vala_gd_bus_client_module_call_type_get_type (void) {
	static volatile gsize vala_gd_bus_client_module_call_type_type_id__volatile = 0;
	if (g_once_init_enter (&vala_gd_bus_client_module_call_type_type_id__volatile)) {
		static const GEnumValue values[] = {{VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_SYNC, "VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_SYNC", "sync"}, {VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_ASYNC, "VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_ASYNC", "async"}, {VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_FINISH, "VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_FINISH", "finish"}, {VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_NO_REPLY, "VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_NO_REPLY", "no-reply"}, {0, NULL, NULL}};
		GType vala_gd_bus_client_module_call_type_type_id;
		vala_gd_bus_client_module_call_type_type_id = g_enum_register_static ("ValaGDBusClientModuleCallType", values);
		g_once_init_leave (&vala_gd_bus_client_module_call_type_type_id__volatile, vala_gd_bus_client_module_call_type_type_id);
	}
	return vala_gd_bus_client_module_call_type_type_id__volatile;
}


ValaCCodeConstant* vala_gd_bus_client_module_get_dbus_timeout (ValaGDBusClientModule* self, ValaSymbol* symbol) {
	ValaCCodeConstant* result = NULL;
	gint timeout = 0;
	ValaAttribute* dbus = NULL;
	ValaSymbol* _tmp0_;
	ValaAttribute* _tmp1_;
	gboolean _tmp2_ = FALSE;
	ValaAttribute* _tmp3_;
	gint _tmp15_;
	gchar* _tmp16_;
	gchar* _tmp17_;
	ValaCCodeConstant* _tmp18_;
	ValaCCodeConstant* _tmp19_;
	g_return_val_if_fail (self != NULL, NULL);
	g_return_val_if_fail (symbol != NULL, NULL);
	timeout = -1;
	_tmp0_ = symbol;
	_tmp1_ = vala_code_node_get_attribute ((ValaCodeNode*) _tmp0_, "DBus");
	dbus = _tmp1_;
	_tmp3_ = dbus;
	if (_tmp3_ != NULL) {
		ValaAttribute* _tmp4_;
		gboolean _tmp5_;
		_tmp4_ = dbus;
		_tmp5_ = vala_attribute_has_argument (_tmp4_, "timeout");
		_tmp2_ = _tmp5_;
	} else {
		_tmp2_ = FALSE;
	}
	if (_tmp2_) {
		ValaAttribute* _tmp6_;
		gint _tmp7_;
		_tmp6_ = dbus;
		_tmp7_ = vala_attribute_get_integer (_tmp6_, "timeout", 0);
		timeout = _tmp7_;
	} else {
		ValaSymbol* _tmp8_;
		ValaSymbol* _tmp9_;
		ValaSymbol* _tmp10_;
		_tmp8_ = symbol;
		_tmp9_ = vala_symbol_get_parent_symbol (_tmp8_);
		_tmp10_ = _tmp9_;
		if (_tmp10_ != NULL) {
			ValaSymbol* _tmp11_;
			ValaSymbol* _tmp12_;
			ValaSymbol* _tmp13_;
			ValaCCodeConstant* _tmp14_;
			_tmp11_ = symbol;
			_tmp12_ = vala_symbol_get_parent_symbol (_tmp11_);
			_tmp13_ = _tmp12_;
			_tmp14_ = vala_gd_bus_client_module_get_dbus_timeout (self, _tmp13_);
			result = _tmp14_;
			_vala_code_node_unref0 (dbus);
			return result;
		}
	}
	_tmp15_ = timeout;
	_tmp16_ = g_strdup_printf ("%i", _tmp15_);
	_tmp17_ = _tmp16_;
	_tmp18_ = vala_ccode_constant_new (_tmp17_);
	_tmp19_ = _tmp18_;
	_g_free0 (_tmp17_);
	result = _tmp19_;
	_vala_code_node_unref0 (dbus);
	return result;
}


static gpointer _vala_code_node_ref0 (gpointer self) {
	return self ? vala_code_node_ref (self) : NULL;
}


static void vala_gd_bus_client_module_real_generate_dynamic_method_wrapper (ValaCCodeBaseModule* base, ValaDynamicMethod* method) {
	ValaGDBusClientModule * self;
	ValaDynamicMethod* dynamic_method = NULL;
	ValaDynamicMethod* _tmp0_;
	ValaDynamicMethod* _tmp1_;
	ValaCCodeFunction* func = NULL;
	ValaDynamicMethod* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	ValaCCodeFunction* _tmp5_;
	ValaCCodeFunction* _tmp6_;
	ValaCCodeFunction* _tmp7_;
	ValaHashMap* cparam_map = NULL;
	GHashFunc _tmp8_;
	GEqualFunc _tmp9_;
	GEqualFunc _tmp10_;
	ValaHashMap* _tmp11_;
	ValaDynamicMethod* _tmp12_;
	ValaCCodeFile* _tmp13_;
	ValaHashMap* _tmp14_;
	ValaCCodeFunction* _tmp15_;
	ValaCCodeFunction* _tmp16_;
	ValaDynamicMethod* _tmp17_;
	ValaDataType* _tmp18_;
	ValaDataType* _tmp19_;
	ValaTypeSymbol* _tmp20_;
	ValaTypeSymbol* _tmp21_;
	ValaTypeSymbol* _tmp22_;
	ValaCCodeFile* _tmp37_;
	ValaCCodeFunction* _tmp38_;
	ValaCCodeFile* _tmp39_;
	ValaCCodeFunction* _tmp40_;
	self = (ValaGDBusClientModule*) base;
	g_return_if_fail (method != NULL);
	_tmp0_ = method;
	_tmp1_ = _vala_code_node_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, VALA_TYPE_DYNAMIC_METHOD, ValaDynamicMethod));
	dynamic_method = _tmp1_;
	_tmp2_ = method;
	_tmp3_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp2_);
	_tmp4_ = _tmp3_;
	_tmp5_ = vala_ccode_function_new (_tmp4_, "void");
	_tmp6_ = _tmp5_;
	_g_free0 (_tmp4_);
	func = _tmp6_;
	_tmp7_ = func;
	vala_ccode_node_set_modifiers ((ValaCCodeNode*) _tmp7_, VALA_CCODE_MODIFIERS_STATIC);
	_tmp8_ = g_direct_hash;
	_tmp9_ = g_direct_equal;
	_tmp10_ = g_direct_equal;
	_tmp11_ = vala_hash_map_new (G_TYPE_INT, NULL, NULL, VALA_TYPE_CCODE_PARAMETER, (GBoxedCopyFunc) vala_ccode_node_ref, (GDestroyNotify) vala_ccode_node_unref, _tmp8_, _tmp9_, _tmp10_);
	cparam_map = _tmp11_;
	_tmp12_ = method;
	_tmp13_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp14_ = cparam_map;
	_tmp15_ = func;
	vala_ccode_base_module_generate_cparameters ((ValaCCodeBaseModule*) self, (ValaMethod*) _tmp12_, _tmp13_, (ValaMap*) _tmp14_, _tmp15_, NULL, NULL, NULL, 3);
	_tmp16_ = func;
	vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, _tmp16_);
	_tmp17_ = dynamic_method;
	_tmp18_ = vala_dynamic_method_get_dynamic_type (_tmp17_);
	_tmp19_ = _tmp18_;
	_tmp20_ = vala_data_type_get_data_type (_tmp19_);
	_tmp21_ = _tmp20_;
	_tmp22_ = ((ValaCCodeBaseModule*) self)->dbus_proxy_type;
	if (_tmp21_ == _tmp22_) {
		ValaDynamicMethod* _tmp23_;
		ValaDynamicMethod* _tmp24_;
		const gchar* _tmp25_;
		const gchar* _tmp26_;
		_tmp23_ = method;
		_tmp24_ = method;
		_tmp25_ = vala_symbol_get_name ((ValaSymbol*) _tmp24_);
		_tmp26_ = _tmp25_;
		vala_gd_bus_client_module_generate_marshalling (self, (ValaMethod*) _tmp23_, VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_SYNC, NULL, _tmp26_, -1);
	} else {
		ValaDynamicMethod* _tmp27_;
		ValaSourceReference* _tmp28_;
		ValaSourceReference* _tmp29_;
		ValaDynamicMethod* _tmp30_;
		ValaDataType* _tmp31_;
		ValaDataType* _tmp32_;
		gchar* _tmp33_;
		gchar* _tmp34_;
		gchar* _tmp35_;
		gchar* _tmp36_;
		_tmp27_ = method;
		_tmp28_ = vala_code_node_get_source_reference ((ValaCodeNode*) _tmp27_);
		_tmp29_ = _tmp28_;
		_tmp30_ = dynamic_method;
		_tmp31_ = vala_dynamic_method_get_dynamic_type (_tmp30_);
		_tmp32_ = _tmp31_;
		_tmp33_ = vala_code_node_to_string ((ValaCodeNode*) _tmp32_);
		_tmp34_ = _tmp33_;
		_tmp35_ = g_strdup_printf ("dynamic methods are not supported for `%s'", _tmp34_);
		_tmp36_ = _tmp35_;
		vala_report_error (_tmp29_, _tmp36_);
		_g_free0 (_tmp36_);
		_g_free0 (_tmp34_);
	}
	vala_ccode_base_module_pop_function ((ValaCCodeBaseModule*) self);
	_tmp37_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp38_ = func;
	vala_ccode_file_add_function_declaration (_tmp37_, _tmp38_);
	_tmp39_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp40_ = func;
	vala_ccode_file_add_function (_tmp39_, _tmp40_);
	_vala_map_unref0 (cparam_map);
	_vala_ccode_node_unref0 (func);
	_vala_code_node_unref0 (dynamic_method);
}


static void vala_gd_bus_client_module_generate_proxy_interface_init (ValaGDBusClientModule* self, ValaInterface* main_iface, ValaInterface* iface) {
	gchar* lower_cname = NULL;
	ValaInterface* _tmp18_;
	gchar* _tmp19_;
	gchar* _tmp20_;
	gchar* _tmp21_;
	gchar* _tmp22_;
	ValaCCodeFunction* proxy_iface_init = NULL;
	const gchar* _tmp23_;
	gchar* _tmp24_;
	gchar* _tmp25_;
	ValaInterface* _tmp26_;
	gchar* _tmp27_;
	gchar* _tmp28_;
	gchar* _tmp29_;
	gchar* _tmp30_;
	gchar* _tmp31_;
	gchar* _tmp32_;
	ValaCCodeFunction* _tmp33_;
	ValaCCodeFunction* _tmp34_;
	ValaCCodeFunction* _tmp35_;
	ValaInterface* _tmp36_;
	gchar* _tmp37_;
	gchar* _tmp38_;
	gchar* _tmp39_;
	gchar* _tmp40_;
	ValaCCodeParameter* _tmp41_;
	ValaCCodeParameter* _tmp42_;
	ValaCCodeFunction* _tmp43_;
	ValaCCodeFunction* _tmp162_;
	ValaCCodeFile* _tmp163_;
	ValaCCodeFunction* _tmp164_;
	ValaCCodeFile* _tmp165_;
	ValaCCodeFunction* _tmp166_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (main_iface != NULL);
	g_return_if_fail (iface != NULL);
	{
		ValaList* _prereq_list = NULL;
		ValaInterface* _tmp0_;
		ValaList* _tmp1_;
		gint _prereq_size = 0;
		ValaList* _tmp2_;
		gint _tmp3_;
		gint _tmp4_;
		gint _prereq_index = 0;
		_tmp0_ = iface;
		_tmp1_ = vala_interface_get_prerequisites (_tmp0_);
		_prereq_list = _tmp1_;
		_tmp2_ = _prereq_list;
		_tmp3_ = vala_collection_get_size ((ValaCollection*) _tmp2_);
		_tmp4_ = _tmp3_;
		_prereq_size = _tmp4_;
		_prereq_index = -1;
		while (TRUE) {
			gint _tmp5_;
			gint _tmp6_;
			gint _tmp7_;
			ValaDataType* prereq = NULL;
			ValaList* _tmp8_;
			gint _tmp9_;
			gpointer _tmp10_;
			ValaDataType* _tmp11_;
			ValaTypeSymbol* _tmp12_;
			ValaTypeSymbol* _tmp13_;
			_tmp5_ = _prereq_index;
			_prereq_index = _tmp5_ + 1;
			_tmp6_ = _prereq_index;
			_tmp7_ = _prereq_size;
			if (!(_tmp6_ < _tmp7_)) {
				break;
			}
			_tmp8_ = _prereq_list;
			_tmp9_ = _prereq_index;
			_tmp10_ = vala_list_get (_tmp8_, _tmp9_);
			prereq = (ValaDataType*) _tmp10_;
			_tmp11_ = prereq;
			_tmp12_ = vala_data_type_get_data_type (_tmp11_);
			_tmp13_ = _tmp12_;
			if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp13_, VALA_TYPE_INTERFACE)) {
				ValaInterface* _tmp14_;
				ValaDataType* _tmp15_;
				ValaTypeSymbol* _tmp16_;
				ValaTypeSymbol* _tmp17_;
				_tmp14_ = main_iface;
				_tmp15_ = prereq;
				_tmp16_ = vala_data_type_get_data_type (_tmp15_);
				_tmp17_ = _tmp16_;
				vala_gd_bus_client_module_generate_proxy_interface_init (self, _tmp14_, G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, VALA_TYPE_INTERFACE, ValaInterface));
			}
			_vala_code_node_unref0 (prereq);
		}
		_vala_iterable_unref0 (_prereq_list);
	}
	_tmp18_ = main_iface;
	_tmp19_ = vala_ccode_base_module_get_ccode_lower_case_prefix ((ValaSymbol*) _tmp18_);
	_tmp20_ = _tmp19_;
	_tmp21_ = g_strconcat (_tmp20_, "proxy", NULL);
	_tmp22_ = _tmp21_;
	_g_free0 (_tmp20_);
	lower_cname = _tmp22_;
	_tmp23_ = lower_cname;
	_tmp24_ = g_strconcat (_tmp23_, "_", NULL);
	_tmp25_ = _tmp24_;
	_tmp26_ = iface;
	_tmp27_ = vala_ccode_base_module_get_ccode_lower_case_prefix ((ValaSymbol*) _tmp26_);
	_tmp28_ = _tmp27_;
	_tmp29_ = g_strconcat (_tmp25_, _tmp28_, NULL);
	_tmp30_ = _tmp29_;
	_tmp31_ = g_strconcat (_tmp30_, "interface_init", NULL);
	_tmp32_ = _tmp31_;
	_tmp33_ = vala_ccode_function_new (_tmp32_, "void");
	_tmp34_ = _tmp33_;
	_g_free0 (_tmp32_);
	_g_free0 (_tmp30_);
	_g_free0 (_tmp28_);
	_g_free0 (_tmp25_);
	proxy_iface_init = _tmp34_;
	_tmp35_ = proxy_iface_init;
	_tmp36_ = iface;
	_tmp37_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp36_);
	_tmp38_ = _tmp37_;
	_tmp39_ = g_strconcat (_tmp38_, "Iface*", NULL);
	_tmp40_ = _tmp39_;
	_tmp41_ = vala_ccode_parameter_new ("iface", _tmp40_);
	_tmp42_ = _tmp41_;
	vala_ccode_function_add_parameter (_tmp35_, _tmp42_);
	_vala_ccode_node_unref0 (_tmp42_);
	_g_free0 (_tmp40_);
	_g_free0 (_tmp38_);
	_tmp43_ = proxy_iface_init;
	vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, _tmp43_);
	{
		ValaList* _m_list = NULL;
		ValaInterface* _tmp44_;
		ValaList* _tmp45_;
		gint _m_size = 0;
		ValaList* _tmp46_;
		gint _tmp47_;
		gint _tmp48_;
		gint _m_index = 0;
		_tmp44_ = iface;
		_tmp45_ = vala_object_type_symbol_get_methods ((ValaObjectTypeSymbol*) _tmp44_);
		_m_list = _tmp45_;
		_tmp46_ = _m_list;
		_tmp47_ = vala_collection_get_size ((ValaCollection*) _tmp46_);
		_tmp48_ = _tmp47_;
		_m_size = _tmp48_;
		_m_index = -1;
		while (TRUE) {
			gint _tmp49_;
			gint _tmp50_;
			gint _tmp51_;
			ValaMethod* m = NULL;
			ValaList* _tmp52_;
			gint _tmp53_;
			gpointer _tmp54_;
			ValaMethod* _tmp55_;
			gboolean _tmp56_;
			gboolean _tmp57_;
			ValaCCodeMemberAccess* vfunc_entry = NULL;
			ValaCCodeIdentifier* _tmp58_;
			ValaCCodeIdentifier* _tmp59_;
			ValaMethod* _tmp60_;
			gchar* _tmp61_;
			gchar* _tmp62_;
			ValaCCodeMemberAccess* _tmp63_;
			ValaCCodeMemberAccess* _tmp64_;
			ValaMethod* _tmp65_;
			gboolean _tmp66_;
			gboolean _tmp67_;
			_tmp49_ = _m_index;
			_m_index = _tmp49_ + 1;
			_tmp50_ = _m_index;
			_tmp51_ = _m_size;
			if (!(_tmp50_ < _tmp51_)) {
				break;
			}
			_tmp52_ = _m_list;
			_tmp53_ = _m_index;
			_tmp54_ = vala_list_get (_tmp52_, _tmp53_);
			m = (ValaMethod*) _tmp54_;
			_tmp55_ = m;
			_tmp56_ = vala_method_get_is_abstract (_tmp55_);
			_tmp57_ = _tmp56_;
			if (!_tmp57_) {
				_vala_code_node_unref0 (m);
				continue;
			}
			_tmp58_ = vala_ccode_identifier_new ("iface");
			_tmp59_ = _tmp58_;
			_tmp60_ = m;
			_tmp61_ = vala_ccode_base_module_get_ccode_vfunc_name (_tmp60_);
			_tmp62_ = _tmp61_;
			_tmp63_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp59_, _tmp62_);
			_tmp64_ = _tmp63_;
			_g_free0 (_tmp62_);
			_vala_ccode_node_unref0 (_tmp59_);
			vfunc_entry = _tmp64_;
			_tmp65_ = m;
			_tmp66_ = vala_method_get_coroutine (_tmp65_);
			_tmp67_ = _tmp66_;
			if (!_tmp67_) {
				ValaCCodeFunction* _tmp68_;
				ValaCCodeFunction* _tmp69_;
				ValaCCodeMemberAccess* _tmp70_;
				ValaInterface* _tmp71_;
				ValaInterface* _tmp72_;
				ValaMethod* _tmp73_;
				gchar* _tmp74_;
				gchar* _tmp75_;
				ValaCCodeIdentifier* _tmp76_;
				ValaCCodeIdentifier* _tmp77_;
				_tmp68_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
				_tmp69_ = _tmp68_;
				_tmp70_ = vfunc_entry;
				_tmp71_ = main_iface;
				_tmp72_ = iface;
				_tmp73_ = m;
				_tmp74_ = vala_gd_bus_client_module_generate_dbus_proxy_method (self, _tmp71_, _tmp72_, _tmp73_);
				_tmp75_ = _tmp74_;
				_tmp76_ = vala_ccode_identifier_new (_tmp75_);
				_tmp77_ = _tmp76_;
				vala_ccode_function_add_assignment (_tmp69_, (ValaCCodeExpression*) _tmp70_, (ValaCCodeExpression*) _tmp77_);
				_vala_ccode_node_unref0 (_tmp77_);
				_g_free0 (_tmp75_);
			} else {
				ValaCCodeFunction* _tmp78_;
				ValaCCodeFunction* _tmp79_;
				ValaCCodeMemberAccess* _tmp80_;
				ValaInterface* _tmp81_;
				ValaInterface* _tmp82_;
				ValaMethod* _tmp83_;
				gchar* _tmp84_;
				gchar* _tmp85_;
				ValaCCodeIdentifier* _tmp86_;
				ValaCCodeIdentifier* _tmp87_;
				ValaCCodeIdentifier* _tmp88_;
				ValaCCodeIdentifier* _tmp89_;
				ValaMethod* _tmp90_;
				gchar* _tmp91_;
				gchar* _tmp92_;
				ValaCCodeMemberAccess* _tmp93_;
				ValaCCodeFunction* _tmp94_;
				ValaCCodeFunction* _tmp95_;
				ValaCCodeMemberAccess* _tmp96_;
				ValaInterface* _tmp97_;
				ValaInterface* _tmp98_;
				ValaMethod* _tmp99_;
				gchar* _tmp100_;
				gchar* _tmp101_;
				ValaCCodeIdentifier* _tmp102_;
				ValaCCodeIdentifier* _tmp103_;
				_tmp78_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
				_tmp79_ = _tmp78_;
				_tmp80_ = vfunc_entry;
				_tmp81_ = main_iface;
				_tmp82_ = iface;
				_tmp83_ = m;
				_tmp84_ = vala_gd_bus_client_module_generate_async_dbus_proxy_method (self, _tmp81_, _tmp82_, _tmp83_);
				_tmp85_ = _tmp84_;
				_tmp86_ = vala_ccode_identifier_new (_tmp85_);
				_tmp87_ = _tmp86_;
				vala_ccode_function_add_assignment (_tmp79_, (ValaCCodeExpression*) _tmp80_, (ValaCCodeExpression*) _tmp87_);
				_vala_ccode_node_unref0 (_tmp87_);
				_g_free0 (_tmp85_);
				_tmp88_ = vala_ccode_identifier_new ("iface");
				_tmp89_ = _tmp88_;
				_tmp90_ = m;
				_tmp91_ = vala_ccode_base_module_get_ccode_finish_vfunc_name (_tmp90_);
				_tmp92_ = _tmp91_;
				_tmp93_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp89_, _tmp92_);
				_vala_ccode_node_unref0 (vfunc_entry);
				vfunc_entry = _tmp93_;
				_g_free0 (_tmp92_);
				_vala_ccode_node_unref0 (_tmp89_);
				_tmp94_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
				_tmp95_ = _tmp94_;
				_tmp96_ = vfunc_entry;
				_tmp97_ = main_iface;
				_tmp98_ = iface;
				_tmp99_ = m;
				_tmp100_ = vala_gd_bus_client_module_generate_finish_dbus_proxy_method (self, _tmp97_, _tmp98_, _tmp99_);
				_tmp101_ = _tmp100_;
				_tmp102_ = vala_ccode_identifier_new (_tmp101_);
				_tmp103_ = _tmp102_;
				vala_ccode_function_add_assignment (_tmp95_, (ValaCCodeExpression*) _tmp96_, (ValaCCodeExpression*) _tmp103_);
				_vala_ccode_node_unref0 (_tmp103_);
				_g_free0 (_tmp101_);
			}
			_vala_ccode_node_unref0 (vfunc_entry);
			_vala_code_node_unref0 (m);
		}
		_vala_iterable_unref0 (_m_list);
	}
	{
		ValaList* _prop_list = NULL;
		ValaInterface* _tmp104_;
		ValaList* _tmp105_;
		gint _prop_size = 0;
		ValaList* _tmp106_;
		gint _tmp107_;
		gint _tmp108_;
		gint _prop_index = 0;
		_tmp104_ = iface;
		_tmp105_ = vala_object_type_symbol_get_properties ((ValaObjectTypeSymbol*) _tmp104_);
		_prop_list = _tmp105_;
		_tmp106_ = _prop_list;
		_tmp107_ = vala_collection_get_size ((ValaCollection*) _tmp106_);
		_tmp108_ = _tmp107_;
		_prop_size = _tmp108_;
		_prop_index = -1;
		while (TRUE) {
			gint _tmp109_;
			gint _tmp110_;
			gint _tmp111_;
			ValaProperty* prop = NULL;
			ValaList* _tmp112_;
			gint _tmp113_;
			gpointer _tmp114_;
			ValaProperty* _tmp115_;
			gboolean _tmp116_;
			gboolean _tmp117_;
			ValaProperty* _tmp118_;
			ValaPropertyAccessor* _tmp119_;
			ValaPropertyAccessor* _tmp120_;
			ValaProperty* _tmp140_;
			ValaPropertyAccessor* _tmp141_;
			ValaPropertyAccessor* _tmp142_;
			_tmp109_ = _prop_index;
			_prop_index = _tmp109_ + 1;
			_tmp110_ = _prop_index;
			_tmp111_ = _prop_size;
			if (!(_tmp110_ < _tmp111_)) {
				break;
			}
			_tmp112_ = _prop_list;
			_tmp113_ = _prop_index;
			_tmp114_ = vala_list_get (_tmp112_, _tmp113_);
			prop = (ValaProperty*) _tmp114_;
			_tmp115_ = prop;
			_tmp116_ = vala_property_get_is_abstract (_tmp115_);
			_tmp117_ = _tmp116_;
			if (!_tmp117_) {
				_vala_code_node_unref0 (prop);
				continue;
			}
			_tmp118_ = prop;
			_tmp119_ = vala_property_get_get_accessor (_tmp118_);
			_tmp120_ = _tmp119_;
			if (_tmp120_ != NULL) {
				ValaCCodeMemberAccess* vfunc_entry = NULL;
				ValaCCodeIdentifier* _tmp121_;
				ValaCCodeIdentifier* _tmp122_;
				ValaProperty* _tmp123_;
				const gchar* _tmp124_;
				const gchar* _tmp125_;
				gchar* _tmp126_;
				gchar* _tmp127_;
				ValaCCodeMemberAccess* _tmp128_;
				ValaCCodeMemberAccess* _tmp129_;
				ValaCCodeFunction* _tmp130_;
				ValaCCodeFunction* _tmp131_;
				ValaCCodeMemberAccess* _tmp132_;
				ValaInterface* _tmp133_;
				ValaInterface* _tmp134_;
				ValaProperty* _tmp135_;
				gchar* _tmp136_;
				gchar* _tmp137_;
				ValaCCodeIdentifier* _tmp138_;
				ValaCCodeIdentifier* _tmp139_;
				_tmp121_ = vala_ccode_identifier_new ("iface");
				_tmp122_ = _tmp121_;
				_tmp123_ = prop;
				_tmp124_ = vala_symbol_get_name ((ValaSymbol*) _tmp123_);
				_tmp125_ = _tmp124_;
				_tmp126_ = g_strconcat ("get_", _tmp125_, NULL);
				_tmp127_ = _tmp126_;
				_tmp128_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp122_, _tmp127_);
				_tmp129_ = _tmp128_;
				_g_free0 (_tmp127_);
				_vala_ccode_node_unref0 (_tmp122_);
				vfunc_entry = _tmp129_;
				_tmp130_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
				_tmp131_ = _tmp130_;
				_tmp132_ = vfunc_entry;
				_tmp133_ = main_iface;
				_tmp134_ = iface;
				_tmp135_ = prop;
				_tmp136_ = vala_gd_bus_client_module_generate_dbus_proxy_property_get (self, _tmp133_, _tmp134_, _tmp135_);
				_tmp137_ = _tmp136_;
				_tmp138_ = vala_ccode_identifier_new (_tmp137_);
				_tmp139_ = _tmp138_;
				vala_ccode_function_add_assignment (_tmp131_, (ValaCCodeExpression*) _tmp132_, (ValaCCodeExpression*) _tmp139_);
				_vala_ccode_node_unref0 (_tmp139_);
				_g_free0 (_tmp137_);
				_vala_ccode_node_unref0 (vfunc_entry);
			}
			_tmp140_ = prop;
			_tmp141_ = vala_property_get_set_accessor (_tmp140_);
			_tmp142_ = _tmp141_;
			if (_tmp142_ != NULL) {
				ValaCCodeMemberAccess* vfunc_entry = NULL;
				ValaCCodeIdentifier* _tmp143_;
				ValaCCodeIdentifier* _tmp144_;
				ValaProperty* _tmp145_;
				const gchar* _tmp146_;
				const gchar* _tmp147_;
				gchar* _tmp148_;
				gchar* _tmp149_;
				ValaCCodeMemberAccess* _tmp150_;
				ValaCCodeMemberAccess* _tmp151_;
				ValaCCodeFunction* _tmp152_;
				ValaCCodeFunction* _tmp153_;
				ValaCCodeMemberAccess* _tmp154_;
				ValaInterface* _tmp155_;
				ValaInterface* _tmp156_;
				ValaProperty* _tmp157_;
				gchar* _tmp158_;
				gchar* _tmp159_;
				ValaCCodeIdentifier* _tmp160_;
				ValaCCodeIdentifier* _tmp161_;
				_tmp143_ = vala_ccode_identifier_new ("iface");
				_tmp144_ = _tmp143_;
				_tmp145_ = prop;
				_tmp146_ = vala_symbol_get_name ((ValaSymbol*) _tmp145_);
				_tmp147_ = _tmp146_;
				_tmp148_ = g_strconcat ("set_", _tmp147_, NULL);
				_tmp149_ = _tmp148_;
				_tmp150_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp144_, _tmp149_);
				_tmp151_ = _tmp150_;
				_g_free0 (_tmp149_);
				_vala_ccode_node_unref0 (_tmp144_);
				vfunc_entry = _tmp151_;
				_tmp152_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
				_tmp153_ = _tmp152_;
				_tmp154_ = vfunc_entry;
				_tmp155_ = main_iface;
				_tmp156_ = iface;
				_tmp157_ = prop;
				_tmp158_ = vala_gd_bus_client_module_generate_dbus_proxy_property_set (self, _tmp155_, _tmp156_, _tmp157_);
				_tmp159_ = _tmp158_;
				_tmp160_ = vala_ccode_identifier_new (_tmp159_);
				_tmp161_ = _tmp160_;
				vala_ccode_function_add_assignment (_tmp153_, (ValaCCodeExpression*) _tmp154_, (ValaCCodeExpression*) _tmp161_);
				_vala_ccode_node_unref0 (_tmp161_);
				_g_free0 (_tmp159_);
				_vala_ccode_node_unref0 (vfunc_entry);
			}
			_vala_code_node_unref0 (prop);
		}
		_vala_iterable_unref0 (_prop_list);
	}
	_tmp162_ = proxy_iface_init;
	vala_ccode_node_set_modifiers ((ValaCCodeNode*) _tmp162_, VALA_CCODE_MODIFIERS_STATIC);
	vala_ccode_base_module_pop_function ((ValaCCodeBaseModule*) self);
	_tmp163_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp164_ = proxy_iface_init;
	vala_ccode_file_add_function_declaration (_tmp163_, _tmp164_);
	_tmp165_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp166_ = proxy_iface_init;
	vala_ccode_file_add_function (_tmp165_, _tmp166_);
	_vala_ccode_node_unref0 (proxy_iface_init);
	_g_free0 (lower_cname);
}


static gchar* vala_gd_bus_client_module_implement_interface (ValaGDBusClientModule* self, ValaCCodeFunctionCall* define_type, ValaInterface* main_iface, ValaInterface* iface) {
	gchar* result = NULL;
	gchar* _result_ = NULL;
	gchar* _tmp0_;
	gchar* interface_macro = NULL;
	gboolean _tmp24_;
	const gchar* _tmp27_;
	const gchar* _tmp28_;
	ValaInterface* _tmp29_;
	gchar* _tmp30_;
	gchar* _tmp31_;
	ValaInterface* _tmp32_;
	gchar* _tmp33_;
	gchar* _tmp34_;
	ValaInterface* _tmp35_;
	gchar* _tmp36_;
	gchar* _tmp37_;
	gchar* _tmp38_;
	gchar* _tmp39_;
	gchar* _tmp40_;
	g_return_val_if_fail (self != NULL, NULL);
	g_return_val_if_fail (define_type != NULL, NULL);
	g_return_val_if_fail (main_iface != NULL, NULL);
	g_return_val_if_fail (iface != NULL, NULL);
	_tmp0_ = g_strdup ("");
	_result_ = _tmp0_;
	{
		ValaList* _prereq_list = NULL;
		ValaInterface* _tmp1_;
		ValaList* _tmp2_;
		gint _prereq_size = 0;
		ValaList* _tmp3_;
		gint _tmp4_;
		gint _tmp5_;
		gint _prereq_index = 0;
		_tmp1_ = iface;
		_tmp2_ = vala_interface_get_prerequisites (_tmp1_);
		_prereq_list = _tmp2_;
		_tmp3_ = _prereq_list;
		_tmp4_ = vala_collection_get_size ((ValaCollection*) _tmp3_);
		_tmp5_ = _tmp4_;
		_prereq_size = _tmp5_;
		_prereq_index = -1;
		while (TRUE) {
			gint _tmp6_;
			gint _tmp7_;
			gint _tmp8_;
			ValaDataType* prereq = NULL;
			ValaList* _tmp9_;
			gint _tmp10_;
			gpointer _tmp11_;
			ValaDataType* _tmp12_;
			ValaTypeSymbol* _tmp13_;
			ValaTypeSymbol* _tmp14_;
			_tmp6_ = _prereq_index;
			_prereq_index = _tmp6_ + 1;
			_tmp7_ = _prereq_index;
			_tmp8_ = _prereq_size;
			if (!(_tmp7_ < _tmp8_)) {
				break;
			}
			_tmp9_ = _prereq_list;
			_tmp10_ = _prereq_index;
			_tmp11_ = vala_list_get (_tmp9_, _tmp10_);
			prereq = (ValaDataType*) _tmp11_;
			_tmp12_ = prereq;
			_tmp13_ = vala_data_type_get_data_type (_tmp12_);
			_tmp14_ = _tmp13_;
			if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp14_, VALA_TYPE_INTERFACE)) {
				const gchar* _tmp15_;
				ValaCCodeFunctionCall* _tmp16_;
				ValaInterface* _tmp17_;
				ValaDataType* _tmp18_;
				ValaTypeSymbol* _tmp19_;
				ValaTypeSymbol* _tmp20_;
				gchar* _tmp21_;
				gchar* _tmp22_;
				gchar* _tmp23_;
				_tmp15_ = _result_;
				_tmp16_ = define_type;
				_tmp17_ = main_iface;
				_tmp18_ = prereq;
				_tmp19_ = vala_data_type_get_data_type (_tmp18_);
				_tmp20_ = _tmp19_;
				_tmp21_ = vala_gd_bus_client_module_implement_interface (self, _tmp16_, _tmp17_, G_TYPE_CHECK_INSTANCE_CAST (_tmp20_, VALA_TYPE_INTERFACE, ValaInterface));
				_tmp22_ = _tmp21_;
				_tmp23_ = g_strconcat (_tmp15_, _tmp22_, NULL);
				_g_free0 (_result_);
				_result_ = _tmp23_;
				_g_free0 (_tmp22_);
			}
			_vala_code_node_unref0 (prereq);
		}
		_vala_iterable_unref0 (_prereq_list);
	}
	_tmp24_ = ((ValaCCodeBaseModule*) self)->in_plugin;
	if (_tmp24_) {
		gchar* _tmp25_;
		_tmp25_ = g_strdup ("G_IMPLEMENT_INTERFACE_DYNAMIC");
		_g_free0 (interface_macro);
		interface_macro = _tmp25_;
	} else {
		gchar* _tmp26_;
		_tmp26_ = g_strdup ("G_IMPLEMENT_INTERFACE");
		_g_free0 (interface_macro);
		interface_macro = _tmp26_;
	}
	_tmp27_ = _result_;
	_tmp28_ = interface_macro;
	_tmp29_ = iface;
	_tmp30_ = vala_ccode_base_module_get_ccode_upper_case_name ((ValaSymbol*) _tmp29_, "TYPE_");
	_tmp31_ = _tmp30_;
	_tmp32_ = main_iface;
	_tmp33_ = vala_ccode_base_module_get_ccode_lower_case_prefix ((ValaSymbol*) _tmp32_);
	_tmp34_ = _tmp33_;
	_tmp35_ = iface;
	_tmp36_ = vala_ccode_base_module_get_ccode_lower_case_prefix ((ValaSymbol*) _tmp35_);
	_tmp37_ = _tmp36_;
	_tmp38_ = g_strdup_printf ("%s (%s, %sproxy_%sinterface_init) ", _tmp28_, _tmp31_, _tmp34_, _tmp37_);
	_tmp39_ = _tmp38_;
	_tmp40_ = g_strconcat (_tmp27_, _tmp39_, NULL);
	_g_free0 (_result_);
	_result_ = _tmp40_;
	_g_free0 (_tmp39_);
	_g_free0 (_tmp37_);
	_g_free0 (_tmp34_);
	_g_free0 (_tmp31_);
	result = _result_;
	_g_free0 (interface_macro);
	return result;
}


static void vala_gd_bus_client_module_real_generate_interface_declaration (ValaCCodeBaseModule* base, ValaInterface* iface, ValaCCodeFile* decl_space) {
	ValaGDBusClientModule * self;
	ValaInterface* _tmp0_;
	ValaCCodeFile* _tmp1_;
	gchar* dbus_iface_name = NULL;
	ValaInterface* _tmp2_;
	gchar* _tmp3_;
	const gchar* _tmp4_;
	gchar* get_type_name = NULL;
	ValaInterface* _tmp5_;
	gchar* _tmp6_;
	gchar* _tmp7_;
	gchar* _tmp8_;
	gchar* _tmp9_;
	ValaCCodeFile* _tmp10_;
	ValaInterface* _tmp11_;
	const gchar* _tmp12_;
	gboolean _tmp13_;
	ValaCCodeFile* _tmp14_;
	ValaCCodeNewline* _tmp15_;
	ValaCCodeNewline* _tmp16_;
	gchar* macro = NULL;
	const gchar* _tmp17_;
	gchar* _tmp18_;
	ValaCCodeFile* _tmp19_;
	ValaInterface* _tmp20_;
	gchar* _tmp21_;
	gchar* _tmp22_;
	gchar* _tmp23_;
	gchar* _tmp24_;
	const gchar* _tmp25_;
	ValaCCodeMacroReplacement* _tmp26_;
	ValaCCodeMacroReplacement* _tmp27_;
	ValaCCodeFunction* proxy_get_type = NULL;
	const gchar* _tmp28_;
	ValaCCodeFunction* _tmp29_;
	ValaCCodeFunction* _tmp30_;
	ValaCCodeFile* _tmp31_;
	ValaCCodeFunction* _tmp32_;
	gboolean _tmp33_;
	self = (ValaGDBusClientModule*) base;
	g_return_if_fail (iface != NULL);
	g_return_if_fail (decl_space != NULL);
	_tmp0_ = iface;
	_tmp1_ = decl_space;
	VALA_CCODE_BASE_MODULE_CLASS (vala_gd_bus_client_module_parent_class)->generate_interface_declaration ((ValaCCodeBaseModule*) G_TYPE_CHECK_INSTANCE_CAST (self, VALA_TYPE_GD_BUS_MODULE, ValaGDBusModule), _tmp0_, _tmp1_);
	_tmp2_ = iface;
	_tmp3_ = vala_gd_bus_module_get_dbus_name ((ValaTypeSymbol*) _tmp2_);
	dbus_iface_name = _tmp3_;
	_tmp4_ = dbus_iface_name;
	if (_tmp4_ == NULL) {
		_g_free0 (dbus_iface_name);
		return;
	}
	_tmp5_ = iface;
	_tmp6_ = vala_ccode_base_module_get_ccode_lower_case_prefix ((ValaSymbol*) _tmp5_);
	_tmp7_ = _tmp6_;
	_tmp8_ = g_strdup_printf ("%sproxy_get_type", _tmp7_);
	_tmp9_ = _tmp8_;
	_g_free0 (_tmp7_);
	get_type_name = _tmp9_;
	_tmp10_ = decl_space;
	_tmp11_ = iface;
	_tmp12_ = get_type_name;
	_tmp13_ = vala_ccode_base_module_add_symbol_declaration ((ValaCCodeBaseModule*) self, _tmp10_, (ValaSymbol*) _tmp11_, _tmp12_);
	if (_tmp13_) {
		_g_free0 (get_type_name);
		_g_free0 (dbus_iface_name);
		return;
	}
	_tmp14_ = decl_space;
	_tmp15_ = vala_ccode_newline_new ();
	_tmp16_ = _tmp15_;
	vala_ccode_file_add_type_declaration (_tmp14_, (ValaCCodeNode*) _tmp16_);
	_vala_ccode_node_unref0 (_tmp16_);
	_tmp17_ = get_type_name;
	_tmp18_ = g_strdup_printf ("(%s ())", _tmp17_);
	macro = _tmp18_;
	_tmp19_ = decl_space;
	_tmp20_ = iface;
	_tmp21_ = vala_ccode_base_module_get_ccode_type_id ((ValaCodeNode*) _tmp20_);
	_tmp22_ = _tmp21_;
	_tmp23_ = g_strdup_printf ("%s_PROXY", _tmp22_);
	_tmp24_ = _tmp23_;
	_tmp25_ = macro;
	_tmp26_ = vala_ccode_macro_replacement_new (_tmp24_, _tmp25_);
	_tmp27_ = _tmp26_;
	vala_ccode_file_add_type_declaration (_tmp19_, (ValaCCodeNode*) _tmp27_);
	_vala_ccode_node_unref0 (_tmp27_);
	_g_free0 (_tmp24_);
	_g_free0 (_tmp22_);
	_tmp28_ = get_type_name;
	_tmp29_ = vala_ccode_function_new (_tmp28_, "GType");
	proxy_get_type = _tmp29_;
	_tmp30_ = proxy_get_type;
	vala_ccode_node_set_modifiers ((ValaCCodeNode*) _tmp30_, VALA_CCODE_MODIFIERS_CONST);
	_tmp31_ = decl_space;
	_tmp32_ = proxy_get_type;
	vala_ccode_file_add_function_declaration (_tmp31_, _tmp32_);
	_tmp33_ = ((ValaCCodeBaseModule*) self)->in_plugin;
	if (_tmp33_) {
		ValaCCodeFunction* proxy_register_type = NULL;
		ValaInterface* _tmp34_;
		gchar* _tmp35_;
		gchar* _tmp36_;
		gchar* _tmp37_;
		gchar* _tmp38_;
		ValaCCodeFunction* _tmp39_;
		ValaCCodeFunction* _tmp40_;
		ValaCCodeFunction* _tmp41_;
		ValaCCodeParameter* _tmp42_;
		ValaCCodeParameter* _tmp43_;
		ValaCCodeFile* _tmp44_;
		ValaCCodeFunction* _tmp45_;
		_tmp34_ = iface;
		_tmp35_ = vala_ccode_base_module_get_ccode_lower_case_prefix ((ValaSymbol*) _tmp34_);
		_tmp36_ = _tmp35_;
		_tmp37_ = g_strdup_printf ("%sproxy_register_dynamic_type", _tmp36_);
		_tmp38_ = _tmp37_;
		_tmp39_ = vala_ccode_function_new (_tmp38_, "void");
		_tmp40_ = _tmp39_;
		_g_free0 (_tmp38_);
		_g_free0 (_tmp36_);
		proxy_register_type = _tmp40_;
		_tmp41_ = proxy_register_type;
		_tmp42_ = vala_ccode_parameter_new ("module", "GTypeModule*");
		_tmp43_ = _tmp42_;
		vala_ccode_function_add_parameter (_tmp41_, _tmp43_);
		_vala_ccode_node_unref0 (_tmp43_);
		_tmp44_ = decl_space;
		_tmp45_ = proxy_register_type;
		vala_ccode_file_add_function_declaration (_tmp44_, _tmp45_);
		_vala_ccode_node_unref0 (proxy_register_type);
	}
	_vala_ccode_node_unref0 (proxy_get_type);
	_g_free0 (macro);
	_g_free0 (get_type_name);
	_g_free0 (dbus_iface_name);
}


static void vala_gd_bus_client_module_real_visit_interface (ValaCodeVisitor* base, ValaInterface* iface) {
	ValaGDBusClientModule * self;
	ValaInterface* _tmp0_;
	gchar* dbus_iface_name = NULL;
	ValaInterface* _tmp1_;
	gchar* _tmp2_;
	const gchar* _tmp3_;
	ValaCCodeFile* _tmp4_;
	gchar* cname = NULL;
	ValaInterface* _tmp5_;
	gchar* _tmp6_;
	gchar* _tmp7_;
	gchar* _tmp8_;
	gchar* _tmp9_;
	gchar* lower_cname = NULL;
	ValaInterface* _tmp10_;
	gchar* _tmp11_;
	gchar* _tmp12_;
	gchar* _tmp13_;
	gchar* _tmp14_;
	ValaCCodeFile* _tmp15_;
	const gchar* _tmp16_;
	ValaCCodeVariableDeclarator* _tmp17_;
	ValaCCodeVariableDeclarator* _tmp18_;
	ValaCCodeTypeDefinition* _tmp19_;
	ValaCCodeTypeDefinition* _tmp20_;
	ValaCCodeFile* _tmp21_;
	const gchar* _tmp22_;
	gchar* _tmp23_;
	gchar* _tmp24_;
	ValaCCodeVariableDeclarator* _tmp25_;
	ValaCCodeVariableDeclarator* _tmp26_;
	ValaCCodeTypeDefinition* _tmp27_;
	ValaCCodeTypeDefinition* _tmp28_;
	gchar* type_macro = NULL;
	gboolean _tmp29_;
	ValaCCodeFunctionCall* define_type = NULL;
	const gchar* _tmp32_;
	ValaCCodeIdentifier* _tmp33_;
	ValaCCodeIdentifier* _tmp34_;
	ValaCCodeFunctionCall* _tmp35_;
	ValaCCodeFunctionCall* _tmp36_;
	ValaCCodeFunctionCall* _tmp37_;
	const gchar* _tmp38_;
	ValaCCodeIdentifier* _tmp39_;
	ValaCCodeIdentifier* _tmp40_;
	ValaCCodeFunctionCall* _tmp41_;
	const gchar* _tmp42_;
	ValaCCodeIdentifier* _tmp43_;
	ValaCCodeIdentifier* _tmp44_;
	ValaCCodeFunctionCall* _tmp45_;
	ValaCCodeIdentifier* _tmp46_;
	ValaCCodeIdentifier* _tmp47_;
	ValaCCodeFunctionCall* _tmp48_;
	ValaCCodeConstant* _tmp49_;
	ValaCCodeConstant* _tmp50_;
	ValaCCodeFunctionCall* _tmp51_;
	ValaCCodeFunctionCall* _tmp52_;
	ValaInterface* _tmp53_;
	ValaInterface* _tmp54_;
	gchar* _tmp55_;
	gchar* _tmp56_;
	ValaCCodeIdentifier* _tmp57_;
	ValaCCodeIdentifier* _tmp58_;
	ValaCCodeFile* _tmp59_;
	ValaCCodeFunctionCall* _tmp60_;
	ValaCCodeFunction* proxy_class_init = NULL;
	const gchar* _tmp61_;
	gchar* _tmp62_;
	gchar* _tmp63_;
	ValaCCodeFunction* _tmp64_;
	ValaCCodeFunction* _tmp65_;
	ValaCCodeFunction* _tmp66_;
	const gchar* _tmp67_;
	gchar* _tmp68_;
	gchar* _tmp69_;
	ValaCCodeParameter* _tmp70_;
	ValaCCodeParameter* _tmp71_;
	ValaCCodeFunction* _tmp72_;
	ValaCCodeFunction* _tmp73_;
	ValaCCodeFunctionCall* proxy_class = NULL;
	ValaCCodeIdentifier* _tmp74_;
	ValaCCodeIdentifier* _tmp75_;
	ValaCCodeFunctionCall* _tmp76_;
	ValaCCodeFunctionCall* _tmp77_;
	ValaCCodeFunctionCall* _tmp78_;
	ValaCCodeIdentifier* _tmp79_;
	ValaCCodeIdentifier* _tmp80_;
	ValaCCodeFunction* _tmp81_;
	ValaCCodeFunction* _tmp82_;
	ValaCCodeFunctionCall* _tmp83_;
	ValaCCodeMemberAccess* _tmp84_;
	ValaCCodeMemberAccess* _tmp85_;
	const gchar* _tmp86_;
	gchar* _tmp87_;
	gchar* _tmp88_;
	ValaCCodeIdentifier* _tmp89_;
	ValaCCodeIdentifier* _tmp90_;
	ValaCCodeFile* _tmp91_;
	ValaCCodeFunction* _tmp92_;
	ValaInterface* _tmp93_;
	gboolean _tmp94_;
	ValaCCodeFunction* proxy_instance_init = NULL;
	const gchar* _tmp133_;
	gchar* _tmp134_;
	gchar* _tmp135_;
	ValaCCodeFunction* _tmp136_;
	ValaCCodeFunction* _tmp137_;
	ValaCCodeFunction* _tmp138_;
	const gchar* _tmp139_;
	gchar* _tmp140_;
	gchar* _tmp141_;
	ValaCCodeParameter* _tmp142_;
	ValaCCodeParameter* _tmp143_;
	ValaCCodeFunction* _tmp144_;
	ValaCCodeFile* _tmp145_;
	ValaCCodeFunction* _tmp146_;
	ValaInterface* _tmp147_;
	ValaInterface* _tmp148_;
	self = (ValaGDBusClientModule*) base;
	g_return_if_fail (iface != NULL);
	_tmp0_ = iface;
	VALA_CODE_VISITOR_CLASS (vala_gd_bus_client_module_parent_class)->visit_interface ((ValaCodeVisitor*) G_TYPE_CHECK_INSTANCE_CAST (self, VALA_TYPE_GD_BUS_MODULE, ValaGDBusModule), _tmp0_);
	_tmp1_ = iface;
	_tmp2_ = vala_gd_bus_module_get_dbus_name ((ValaTypeSymbol*) _tmp1_);
	dbus_iface_name = _tmp2_;
	_tmp3_ = dbus_iface_name;
	if (_tmp3_ == NULL) {
		_g_free0 (dbus_iface_name);
		return;
	}
	_tmp4_ = ((ValaCCodeBaseModule*) self)->cfile;
	vala_ccode_file_add_include (_tmp4_, "gio/gio.h", FALSE);
	_tmp5_ = iface;
	_tmp6_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp5_);
	_tmp7_ = _tmp6_;
	_tmp8_ = g_strconcat (_tmp7_, "Proxy", NULL);
	_tmp9_ = _tmp8_;
	_g_free0 (_tmp7_);
	cname = _tmp9_;
	_tmp10_ = iface;
	_tmp11_ = vala_ccode_base_module_get_ccode_lower_case_prefix ((ValaSymbol*) _tmp10_);
	_tmp12_ = _tmp11_;
	_tmp13_ = g_strconcat (_tmp12_, "proxy", NULL);
	_tmp14_ = _tmp13_;
	_g_free0 (_tmp12_);
	lower_cname = _tmp14_;
	_tmp15_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp16_ = cname;
	_tmp17_ = vala_ccode_variable_declarator_new (_tmp16_, NULL, NULL);
	_tmp18_ = _tmp17_;
	_tmp19_ = vala_ccode_type_definition_new ("GDBusProxy", (ValaCCodeDeclarator*) _tmp18_);
	_tmp20_ = _tmp19_;
	vala_ccode_file_add_type_declaration (_tmp15_, (ValaCCodeNode*) _tmp20_);
	_vala_ccode_node_unref0 (_tmp20_);
	_vala_ccode_node_unref0 (_tmp18_);
	_tmp21_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp22_ = cname;
	_tmp23_ = g_strconcat (_tmp22_, "Class", NULL);
	_tmp24_ = _tmp23_;
	_tmp25_ = vala_ccode_variable_declarator_new (_tmp24_, NULL, NULL);
	_tmp26_ = _tmp25_;
	_tmp27_ = vala_ccode_type_definition_new ("GDBusProxyClass", (ValaCCodeDeclarator*) _tmp26_);
	_tmp28_ = _tmp27_;
	vala_ccode_file_add_type_declaration (_tmp21_, (ValaCCodeNode*) _tmp28_);
	_vala_ccode_node_unref0 (_tmp28_);
	_vala_ccode_node_unref0 (_tmp26_);
	_g_free0 (_tmp24_);
	_tmp29_ = ((ValaCCodeBaseModule*) self)->in_plugin;
	if (_tmp29_) {
		gchar* _tmp30_;
		_tmp30_ = g_strdup ("G_DEFINE_DYNAMIC_TYPE_EXTENDED");
		_g_free0 (type_macro);
		type_macro = _tmp30_;
	} else {
		gchar* _tmp31_;
		_tmp31_ = g_strdup ("G_DEFINE_TYPE_EXTENDED");
		_g_free0 (type_macro);
		type_macro = _tmp31_;
	}
	_tmp32_ = type_macro;
	_tmp33_ = vala_ccode_identifier_new (_tmp32_);
	_tmp34_ = _tmp33_;
	_tmp35_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp34_);
	_tmp36_ = _tmp35_;
	_vala_ccode_node_unref0 (_tmp34_);
	define_type = _tmp36_;
	_tmp37_ = define_type;
	_tmp38_ = cname;
	_tmp39_ = vala_ccode_identifier_new (_tmp38_);
	_tmp40_ = _tmp39_;
	vala_ccode_function_call_add_argument (_tmp37_, (ValaCCodeExpression*) _tmp40_);
	_vala_ccode_node_unref0 (_tmp40_);
	_tmp41_ = define_type;
	_tmp42_ = lower_cname;
	_tmp43_ = vala_ccode_identifier_new (_tmp42_);
	_tmp44_ = _tmp43_;
	vala_ccode_function_call_add_argument (_tmp41_, (ValaCCodeExpression*) _tmp44_);
	_vala_ccode_node_unref0 (_tmp44_);
	_tmp45_ = define_type;
	_tmp46_ = vala_ccode_identifier_new ("G_TYPE_DBUS_PROXY");
	_tmp47_ = _tmp46_;
	vala_ccode_function_call_add_argument (_tmp45_, (ValaCCodeExpression*) _tmp47_);
	_vala_ccode_node_unref0 (_tmp47_);
	_tmp48_ = define_type;
	_tmp49_ = vala_ccode_constant_new ("0");
	_tmp50_ = _tmp49_;
	vala_ccode_function_call_add_argument (_tmp48_, (ValaCCodeExpression*) _tmp50_);
	_vala_ccode_node_unref0 (_tmp50_);
	_tmp51_ = define_type;
	_tmp52_ = define_type;
	_tmp53_ = iface;
	_tmp54_ = iface;
	_tmp55_ = vala_gd_bus_client_module_implement_interface (self, _tmp52_, _tmp53_, _tmp54_);
	_tmp56_ = _tmp55_;
	_tmp57_ = vala_ccode_identifier_new (_tmp56_);
	_tmp58_ = _tmp57_;
	vala_ccode_function_call_add_argument (_tmp51_, (ValaCCodeExpression*) _tmp58_);
	_vala_ccode_node_unref0 (_tmp58_);
	_g_free0 (_tmp56_);
	_tmp59_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp60_ = define_type;
	vala_ccode_file_add_type_member_definition (_tmp59_, (ValaCCodeNode*) _tmp60_);
	_tmp61_ = lower_cname;
	_tmp62_ = g_strconcat (_tmp61_, "_class_init", NULL);
	_tmp63_ = _tmp62_;
	_tmp64_ = vala_ccode_function_new (_tmp63_, "void");
	_tmp65_ = _tmp64_;
	_g_free0 (_tmp63_);
	proxy_class_init = _tmp65_;
	_tmp66_ = proxy_class_init;
	_tmp67_ = cname;
	_tmp68_ = g_strconcat (_tmp67_, "Class*", NULL);
	_tmp69_ = _tmp68_;
	_tmp70_ = vala_ccode_parameter_new ("klass", _tmp69_);
	_tmp71_ = _tmp70_;
	vala_ccode_function_add_parameter (_tmp66_, _tmp71_);
	_vala_ccode_node_unref0 (_tmp71_);
	_g_free0 (_tmp69_);
	_tmp72_ = proxy_class_init;
	vala_ccode_node_set_modifiers ((ValaCCodeNode*) _tmp72_, VALA_CCODE_MODIFIERS_STATIC);
	_tmp73_ = proxy_class_init;
	vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, _tmp73_);
	_tmp74_ = vala_ccode_identifier_new ("G_DBUS_PROXY_CLASS");
	_tmp75_ = _tmp74_;
	_tmp76_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp75_);
	_tmp77_ = _tmp76_;
	_vala_ccode_node_unref0 (_tmp75_);
	proxy_class = _tmp77_;
	_tmp78_ = proxy_class;
	_tmp79_ = vala_ccode_identifier_new ("klass");
	_tmp80_ = _tmp79_;
	vala_ccode_function_call_add_argument (_tmp78_, (ValaCCodeExpression*) _tmp80_);
	_vala_ccode_node_unref0 (_tmp80_);
	_tmp81_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp82_ = _tmp81_;
	_tmp83_ = proxy_class;
	_tmp84_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp83_, "g_signal");
	_tmp85_ = _tmp84_;
	_tmp86_ = lower_cname;
	_tmp87_ = g_strconcat (_tmp86_, "_g_signal", NULL);
	_tmp88_ = _tmp87_;
	_tmp89_ = vala_ccode_identifier_new (_tmp88_);
	_tmp90_ = _tmp89_;
	vala_ccode_function_add_assignment (_tmp82_, (ValaCCodeExpression*) _tmp85_, (ValaCCodeExpression*) _tmp90_);
	_vala_ccode_node_unref0 (_tmp90_);
	_g_free0 (_tmp88_);
	_vala_ccode_node_unref0 (_tmp85_);
	vala_ccode_base_module_pop_function ((ValaCCodeBaseModule*) self);
	_tmp91_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp92_ = proxy_class_init;
	vala_ccode_file_add_function (_tmp91_, _tmp92_);
	_tmp93_ = iface;
	vala_gd_bus_client_module_generate_signal_handler_function (self, (ValaObjectTypeSymbol*) _tmp93_);
	_tmp94_ = ((ValaCCodeBaseModule*) self)->in_plugin;
	if (_tmp94_) {
		ValaCCodeFunction* proxy_class_finalize = NULL;
		const gchar* _tmp95_;
		gchar* _tmp96_;
		gchar* _tmp97_;
		ValaCCodeFunction* _tmp98_;
		ValaCCodeFunction* _tmp99_;
		ValaCCodeFunction* _tmp100_;
		const gchar* _tmp101_;
		gchar* _tmp102_;
		gchar* _tmp103_;
		ValaCCodeParameter* _tmp104_;
		ValaCCodeParameter* _tmp105_;
		ValaCCodeFunction* _tmp106_;
		ValaCCodeFile* _tmp107_;
		ValaCCodeFunction* _tmp108_;
		ValaCCodeFunction* proxy_type_init = NULL;
		const gchar* _tmp109_;
		gchar* _tmp110_;
		gchar* _tmp111_;
		ValaCCodeFunction* _tmp112_;
		ValaCCodeFunction* _tmp113_;
		ValaCCodeFunction* _tmp114_;
		ValaCCodeParameter* _tmp115_;
		ValaCCodeParameter* _tmp116_;
		ValaCCodeFunction* _tmp117_;
		ValaCCodeFunctionCall* call_register_type = NULL;
		const gchar* _tmp118_;
		gchar* _tmp119_;
		gchar* _tmp120_;
		ValaCCodeIdentifier* _tmp121_;
		ValaCCodeIdentifier* _tmp122_;
		ValaCCodeFunctionCall* _tmp123_;
		ValaCCodeFunctionCall* _tmp124_;
		ValaCCodeFunctionCall* _tmp125_;
		ValaCCodeIdentifier* _tmp126_;
		ValaCCodeIdentifier* _tmp127_;
		ValaCCodeFunction* _tmp128_;
		ValaCCodeFunction* _tmp129_;
		ValaCCodeFunctionCall* _tmp130_;
		ValaCCodeFile* _tmp131_;
		ValaCCodeFunction* _tmp132_;
		_tmp95_ = lower_cname;
		_tmp96_ = g_strconcat (_tmp95_, "_class_finalize", NULL);
		_tmp97_ = _tmp96_;
		_tmp98_ = vala_ccode_function_new (_tmp97_, "void");
		_tmp99_ = _tmp98_;
		_g_free0 (_tmp97_);
		proxy_class_finalize = _tmp99_;
		_tmp100_ = proxy_class_finalize;
		_tmp101_ = cname;
		_tmp102_ = g_strconcat (_tmp101_, "Class*", NULL);
		_tmp103_ = _tmp102_;
		_tmp104_ = vala_ccode_parameter_new ("klass", _tmp103_);
		_tmp105_ = _tmp104_;
		vala_ccode_function_add_parameter (_tmp100_, _tmp105_);
		_vala_ccode_node_unref0 (_tmp105_);
		_g_free0 (_tmp103_);
		_tmp106_ = proxy_class_finalize;
		vala_ccode_node_set_modifiers ((ValaCCodeNode*) _tmp106_, VALA_CCODE_MODIFIERS_STATIC);
		_tmp107_ = ((ValaCCodeBaseModule*) self)->cfile;
		_tmp108_ = proxy_class_finalize;
		vala_ccode_file_add_function (_tmp107_, _tmp108_);
		_tmp109_ = lower_cname;
		_tmp110_ = g_strconcat (_tmp109_, "_register_dynamic_type", NULL);
		_tmp111_ = _tmp110_;
		_tmp112_ = vala_ccode_function_new (_tmp111_, "void");
		_tmp113_ = _tmp112_;
		_g_free0 (_tmp111_);
		proxy_type_init = _tmp113_;
		_tmp114_ = proxy_type_init;
		_tmp115_ = vala_ccode_parameter_new ("module", "GTypeModule*");
		_tmp116_ = _tmp115_;
		vala_ccode_function_add_parameter (_tmp114_, _tmp116_);
		_vala_ccode_node_unref0 (_tmp116_);
		_tmp117_ = proxy_type_init;
		vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, _tmp117_);
		_tmp118_ = lower_cname;
		_tmp119_ = g_strconcat (_tmp118_, "_register_type", NULL);
		_tmp120_ = _tmp119_;
		_tmp121_ = vala_ccode_identifier_new (_tmp120_);
		_tmp122_ = _tmp121_;
		_tmp123_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp122_);
		_tmp124_ = _tmp123_;
		_vala_ccode_node_unref0 (_tmp122_);
		_g_free0 (_tmp120_);
		call_register_type = _tmp124_;
		_tmp125_ = call_register_type;
		_tmp126_ = vala_ccode_identifier_new ("module");
		_tmp127_ = _tmp126_;
		vala_ccode_function_call_add_argument (_tmp125_, (ValaCCodeExpression*) _tmp127_);
		_vala_ccode_node_unref0 (_tmp127_);
		_tmp128_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp129_ = _tmp128_;
		_tmp130_ = call_register_type;
		vala_ccode_function_add_expression (_tmp129_, (ValaCCodeExpression*) _tmp130_);
		vala_ccode_base_module_pop_function ((ValaCCodeBaseModule*) self);
		_tmp131_ = ((ValaCCodeBaseModule*) self)->cfile;
		_tmp132_ = proxy_type_init;
		vala_ccode_file_add_function (_tmp131_, _tmp132_);
		_vala_ccode_node_unref0 (call_register_type);
		_vala_ccode_node_unref0 (proxy_type_init);
		_vala_ccode_node_unref0 (proxy_class_finalize);
	}
	_tmp133_ = lower_cname;
	_tmp134_ = g_strconcat (_tmp133_, "_init", NULL);
	_tmp135_ = _tmp134_;
	_tmp136_ = vala_ccode_function_new (_tmp135_, "void");
	_tmp137_ = _tmp136_;
	_g_free0 (_tmp135_);
	proxy_instance_init = _tmp137_;
	_tmp138_ = proxy_instance_init;
	_tmp139_ = cname;
	_tmp140_ = g_strconcat (_tmp139_, "*", NULL);
	_tmp141_ = _tmp140_;
	_tmp142_ = vala_ccode_parameter_new ("self", _tmp141_);
	_tmp143_ = _tmp142_;
	vala_ccode_function_add_parameter (_tmp138_, _tmp143_);
	_vala_ccode_node_unref0 (_tmp143_);
	_g_free0 (_tmp141_);
	_tmp144_ = proxy_instance_init;
	vala_ccode_node_set_modifiers ((ValaCCodeNode*) _tmp144_, VALA_CCODE_MODIFIERS_STATIC);
	_tmp145_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp146_ = proxy_instance_init;
	vala_ccode_file_add_function (_tmp145_, _tmp146_);
	_tmp147_ = iface;
	_tmp148_ = iface;
	vala_gd_bus_client_module_generate_proxy_interface_init (self, _tmp147_, _tmp148_);
	_vala_ccode_node_unref0 (proxy_instance_init);
	_vala_ccode_node_unref0 (proxy_class);
	_vala_ccode_node_unref0 (proxy_class_init);
	_vala_ccode_node_unref0 (define_type);
	_g_free0 (type_macro);
	_g_free0 (lower_cname);
	_g_free0 (cname);
	_g_free0 (dbus_iface_name);
}


static gpointer _vala_ccode_node_ref0 (gpointer self) {
	return self ? vala_ccode_node_ref (self) : NULL;
}


static void vala_gd_bus_client_module_real_visit_method_call (ValaCodeVisitor* base, ValaMethodCall* expr) {
	ValaGDBusClientModule * self;
	ValaMethodType* mtype = NULL;
	ValaMethodCall* _tmp0_;
	ValaExpression* _tmp1_;
	ValaExpression* _tmp2_;
	ValaDataType* _tmp3_;
	ValaDataType* _tmp4_;
	ValaMethodType* _tmp5_;
	gboolean _tmp6_ = FALSE;
	ValaMethodType* _tmp7_;
	gboolean bus_get_proxy_async = FALSE;
	gboolean _tmp13_ = FALSE;
	ValaMethodType* _tmp14_;
	gboolean bus_get_proxy_sync = FALSE;
	gboolean _tmp20_ = FALSE;
	ValaMethodType* _tmp21_;
	gboolean conn_get_proxy_async = FALSE;
	gboolean _tmp27_ = FALSE;
	ValaMethodType* _tmp28_;
	gboolean conn_get_proxy_sync = FALSE;
	gboolean _tmp34_ = FALSE;
	gboolean _tmp35_ = FALSE;
	gboolean _tmp36_ = FALSE;
	gboolean _tmp37_;
	ValaMemberAccess* ma = NULL;
	ValaMethodCall* _tmp42_;
	ValaExpression* _tmp43_;
	ValaExpression* _tmp44_;
	ValaMemberAccess* _tmp45_;
	ValaDataType* type_arg = NULL;
	ValaMemberAccess* _tmp46_;
	ValaList* _tmp47_;
	ValaList* _tmp48_;
	gpointer _tmp49_;
	ValaDataType* _tmp50_;
	ValaCCodeExpression* proxy_type = NULL;
	ValaCCodeExpression* dbus_iface_name = NULL;
	ValaCCodeExpression* dbus_iface_info = NULL;
	ValaObjectType* object_type = NULL;
	ValaDataType* _tmp51_;
	ValaObjectType* _tmp52_;
	ValaObjectType* _tmp53_;
	ValaCCodeFunctionCall* quark = NULL;
	ValaCCodeIdentifier* _tmp120_;
	ValaCCodeIdentifier* _tmp121_;
	ValaCCodeFunctionCall* _tmp122_;
	ValaCCodeFunctionCall* _tmp123_;
	ValaCCodeFunctionCall* _tmp124_;
	ValaCCodeConstant* _tmp125_;
	ValaCCodeConstant* _tmp126_;
	ValaCCodeFunctionCall* get_qdata = NULL;
	ValaCCodeIdentifier* _tmp127_;
	ValaCCodeIdentifier* _tmp128_;
	ValaCCodeFunctionCall* _tmp129_;
	ValaCCodeFunctionCall* _tmp130_;
	ValaCCodeFunctionCall* _tmp131_;
	ValaDataType* _tmp132_;
	ValaCCodeExpression* _tmp133_;
	ValaCCodeExpression* _tmp134_;
	ValaCCodeFunctionCall* _tmp135_;
	ValaCCodeFunctionCall* _tmp136_;
	ValaCCodeFunctionCall* _tmp137_;
	ValaCCodeExpression* _tmp138_;
	gboolean _tmp139_ = FALSE;
	gboolean _tmp140_;
	gint base_arg_index = 0;
	gboolean _tmp228_ = FALSE;
	gboolean _tmp229_;
	ValaList* args = NULL;
	ValaMethodCall* _tmp231_;
	ValaList* _tmp232_;
	ValaExpression* name = NULL;
	ValaList* _tmp233_;
	gint _tmp234_;
	gpointer _tmp235_;
	ValaExpression* object_path = NULL;
	ValaList* _tmp236_;
	gint _tmp237_;
	gpointer _tmp238_;
	ValaExpression* flags = NULL;
	ValaList* _tmp239_;
	gint _tmp240_;
	gpointer _tmp241_;
	ValaExpression* cancellable = NULL;
	ValaList* _tmp242_;
	gint _tmp243_;
	gpointer _tmp244_;
	ValaCCodeFunctionCall* ccall = NULL;
	gboolean _tmp245_ = FALSE;
	gboolean _tmp246_;
	ValaCCodeFunctionCall* _tmp254_;
	ValaCCodeExpression* _tmp255_;
	gboolean _tmp256_ = FALSE;
	gboolean _tmp257_;
	ValaCCodeFunctionCall* _tmp262_;
	ValaExpression* _tmp263_;
	ValaCCodeExpression* _tmp264_;
	ValaCCodeExpression* _tmp265_;
	gboolean _tmp266_ = FALSE;
	gboolean _tmp267_;
	ValaCCodeFunctionCall* _tmp298_;
	ValaCCodeConstant* _tmp299_;
	ValaCCodeConstant* _tmp300_;
	ValaCCodeFunctionCall* _tmp301_;
	ValaExpression* _tmp302_;
	ValaCCodeExpression* _tmp303_;
	ValaCCodeExpression* _tmp304_;
	ValaCCodeFunctionCall* _tmp305_;
	ValaCCodeConstant* _tmp306_;
	ValaCCodeConstant* _tmp307_;
	ValaCCodeFunctionCall* _tmp308_;
	ValaExpression* _tmp309_;
	ValaCCodeExpression* _tmp310_;
	ValaCCodeExpression* _tmp311_;
	gboolean _tmp312_ = FALSE;
	gboolean _tmp313_;
	ValaCCodeFunctionCall* _tmp355_;
	ValaCCodeConstant* _tmp356_;
	ValaCCodeConstant* _tmp357_;
	ValaCCodeFunctionCall* _tmp358_;
	ValaExpression* _tmp359_;
	ValaCCodeExpression* _tmp360_;
	ValaCCodeExpression* _tmp361_;
	ValaCCodeFunctionCall* _tmp362_;
	ValaCCodeConstant* _tmp363_;
	ValaCCodeConstant* _tmp364_;
	ValaCCodeFunctionCall* _tmp365_;
	ValaCCodeExpression* _tmp366_;
	ValaCCodeExpression* _tmp367_;
	ValaCCodeFunctionCall* _tmp373_;
	ValaCCodeConstant* _tmp374_;
	ValaCCodeConstant* _tmp375_;
	gboolean _tmp376_ = FALSE;
	gboolean _tmp377_;
	ValaLocalVariable* temp_var = NULL;
	ValaMethodCall* _tmp428_;
	ValaDataType* _tmp429_;
	ValaDataType* _tmp430_;
	ValaMethodCall* _tmp431_;
	ValaDataType* _tmp432_;
	ValaDataType* _tmp433_;
	gboolean _tmp434_;
	gboolean _tmp435_;
	ValaLocalVariable* _tmp436_;
	ValaCCodeExpression* temp_ref = NULL;
	ValaLocalVariable* _tmp437_;
	const gchar* _tmp438_;
	const gchar* _tmp439_;
	ValaCCodeExpression* _tmp440_;
	ValaLocalVariable* _tmp441_;
	ValaCCodeFunction* _tmp442_;
	ValaCCodeFunction* _tmp443_;
	ValaCCodeExpression* _tmp444_;
	ValaCCodeFunctionCall* _tmp445_;
	ValaMethodCall* _tmp446_;
	ValaCCodeExpression* _tmp447_;
	self = (ValaGDBusClientModule*) base;
	g_return_if_fail (expr != NULL);
	_tmp0_ = expr;
	_tmp1_ = vala_method_call_get_call (_tmp0_);
	_tmp2_ = _tmp1_;
	_tmp3_ = vala_expression_get_value_type (_tmp2_);
	_tmp4_ = _tmp3_;
	_tmp5_ = _vala_code_node_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp4_, VALA_TYPE_METHOD_TYPE) ? ((ValaMethodType*) _tmp4_) : NULL);
	mtype = _tmp5_;
	_tmp7_ = mtype;
	if (_tmp7_ != NULL) {
		ValaMethodType* _tmp8_;
		ValaMethod* _tmp9_;
		ValaMethod* _tmp10_;
		gchar* _tmp11_;
		gchar* _tmp12_;
		_tmp8_ = mtype;
		_tmp9_ = vala_method_type_get_method_symbol (_tmp8_);
		_tmp10_ = _tmp9_;
		_tmp11_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp10_);
		_tmp12_ = _tmp11_;
		_tmp6_ = g_strcmp0 (_tmp12_, "g_bus_get_proxy") == 0;
		_g_free0 (_tmp12_);
	} else {
		_tmp6_ = FALSE;
	}
	bus_get_proxy_async = _tmp6_;
	_tmp14_ = mtype;
	if (_tmp14_ != NULL) {
		ValaMethodType* _tmp15_;
		ValaMethod* _tmp16_;
		ValaMethod* _tmp17_;
		gchar* _tmp18_;
		gchar* _tmp19_;
		_tmp15_ = mtype;
		_tmp16_ = vala_method_type_get_method_symbol (_tmp15_);
		_tmp17_ = _tmp16_;
		_tmp18_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp17_);
		_tmp19_ = _tmp18_;
		_tmp13_ = g_strcmp0 (_tmp19_, "g_bus_get_proxy_sync") == 0;
		_g_free0 (_tmp19_);
	} else {
		_tmp13_ = FALSE;
	}
	bus_get_proxy_sync = _tmp13_;
	_tmp21_ = mtype;
	if (_tmp21_ != NULL) {
		ValaMethodType* _tmp22_;
		ValaMethod* _tmp23_;
		ValaMethod* _tmp24_;
		gchar* _tmp25_;
		gchar* _tmp26_;
		_tmp22_ = mtype;
		_tmp23_ = vala_method_type_get_method_symbol (_tmp22_);
		_tmp24_ = _tmp23_;
		_tmp25_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp24_);
		_tmp26_ = _tmp25_;
		_tmp20_ = g_strcmp0 (_tmp26_, "g_dbus_connection_get_proxy") == 0;
		_g_free0 (_tmp26_);
	} else {
		_tmp20_ = FALSE;
	}
	conn_get_proxy_async = _tmp20_;
	_tmp28_ = mtype;
	if (_tmp28_ != NULL) {
		ValaMethodType* _tmp29_;
		ValaMethod* _tmp30_;
		ValaMethod* _tmp31_;
		gchar* _tmp32_;
		gchar* _tmp33_;
		_tmp29_ = mtype;
		_tmp30_ = vala_method_type_get_method_symbol (_tmp29_);
		_tmp31_ = _tmp30_;
		_tmp32_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp31_);
		_tmp33_ = _tmp32_;
		_tmp27_ = g_strcmp0 (_tmp33_, "g_dbus_connection_get_proxy_sync") == 0;
		_g_free0 (_tmp33_);
	} else {
		_tmp27_ = FALSE;
	}
	conn_get_proxy_sync = _tmp27_;
	_tmp37_ = bus_get_proxy_async;
	if (!_tmp37_) {
		gboolean _tmp38_;
		_tmp38_ = bus_get_proxy_sync;
		_tmp36_ = !_tmp38_;
	} else {
		_tmp36_ = FALSE;
	}
	if (_tmp36_) {
		gboolean _tmp39_;
		_tmp39_ = conn_get_proxy_async;
		_tmp35_ = !_tmp39_;
	} else {
		_tmp35_ = FALSE;
	}
	if (_tmp35_) {
		gboolean _tmp40_;
		_tmp40_ = conn_get_proxy_sync;
		_tmp34_ = !_tmp40_;
	} else {
		_tmp34_ = FALSE;
	}
	if (_tmp34_) {
		ValaMethodCall* _tmp41_;
		_tmp41_ = expr;
		VALA_CODE_VISITOR_CLASS (vala_gd_bus_client_module_parent_class)->visit_method_call ((ValaCodeVisitor*) G_TYPE_CHECK_INSTANCE_CAST (self, VALA_TYPE_GD_BUS_MODULE, ValaGDBusModule), _tmp41_);
		_vala_code_node_unref0 (mtype);
		return;
	}
	_tmp42_ = expr;
	_tmp43_ = vala_method_call_get_call (_tmp42_);
	_tmp44_ = _tmp43_;
	_tmp45_ = _vala_code_node_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp44_, VALA_TYPE_MEMBER_ACCESS, ValaMemberAccess));
	ma = _tmp45_;
	_tmp46_ = ma;
	_tmp47_ = vala_member_access_get_type_arguments (_tmp46_);
	_tmp48_ = _tmp47_;
	_tmp49_ = vala_list_get (_tmp48_, 0);
	_tmp50_ = (ValaDataType*) _tmp49_;
	_vala_iterable_unref0 (_tmp48_);
	type_arg = _tmp50_;
	_tmp51_ = type_arg;
	_tmp52_ = _vala_code_node_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp51_, VALA_TYPE_OBJECT_TYPE) ? ((ValaObjectType*) _tmp51_) : NULL);
	object_type = _tmp52_;
	_tmp53_ = object_type;
	if (_tmp53_ != NULL) {
		ValaInterface* iface = NULL;
		ValaObjectType* _tmp54_;
		ValaObjectTypeSymbol* _tmp55_;
		ValaObjectTypeSymbol* _tmp56_;
		ValaInterface* _tmp57_;
		ValaInterface* _tmp58_;
		gchar* _tmp59_;
		gchar* _tmp60_;
		gboolean _tmp61_;
		ValaInterface* _tmp70_;
		gchar* _tmp71_;
		gchar* _tmp72_;
		gchar* _tmp73_;
		gchar* _tmp74_;
		ValaCCodeIdentifier* _tmp75_;
		ValaInterface* _tmp76_;
		gchar* _tmp77_;
		gchar* _tmp78_;
		gchar* _tmp79_;
		gchar* _tmp80_;
		ValaCCodeConstant* _tmp81_;
		_tmp54_ = object_type;
		_tmp55_ = vala_object_type_get_type_symbol (_tmp54_);
		_tmp56_ = _tmp55_;
		_tmp57_ = _vala_code_node_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp56_, VALA_TYPE_INTERFACE, ValaInterface));
		iface = _tmp57_;
		_tmp58_ = iface;
		_tmp59_ = vala_gd_bus_module_get_dbus_name ((ValaTypeSymbol*) _tmp58_);
		_tmp60_ = _tmp59_;
		_tmp61_ = _tmp60_ == NULL;
		_g_free0 (_tmp60_);
		if (_tmp61_) {
			ValaMethodCall* _tmp62_;
			ValaSourceReference* _tmp63_;
			ValaSourceReference* _tmp64_;
			ValaInterface* _tmp65_;
			gchar* _tmp66_;
			gchar* _tmp67_;
			gchar* _tmp68_;
			gchar* _tmp69_;
			_tmp62_ = expr;
			_tmp63_ = vala_code_node_get_source_reference ((ValaCodeNode*) _tmp62_);
			_tmp64_ = _tmp63_;
			_tmp65_ = iface;
			_tmp66_ = vala_symbol_get_full_name ((ValaSymbol*) _tmp65_);
			_tmp67_ = _tmp66_;
			_tmp68_ = g_strdup_printf ("`%s' is not a D-Bus interface", _tmp67_);
			_tmp69_ = _tmp68_;
			vala_report_error (_tmp64_, _tmp69_);
			_g_free0 (_tmp69_);
			_g_free0 (_tmp67_);
			_vala_code_node_unref0 (iface);
			_vala_code_node_unref0 (object_type);
			_vala_ccode_node_unref0 (dbus_iface_info);
			_vala_ccode_node_unref0 (dbus_iface_name);
			_vala_ccode_node_unref0 (proxy_type);
			_vala_code_node_unref0 (type_arg);
			_vala_code_node_unref0 (ma);
			_vala_code_node_unref0 (mtype);
			return;
		}
		_tmp70_ = iface;
		_tmp71_ = vala_ccode_base_module_get_ccode_type_id ((ValaCodeNode*) _tmp70_);
		_tmp72_ = _tmp71_;
		_tmp73_ = g_strdup_printf ("%s_PROXY", _tmp72_);
		_tmp74_ = _tmp73_;
		_tmp75_ = vala_ccode_identifier_new (_tmp74_);
		_vala_ccode_node_unref0 (proxy_type);
		proxy_type = (ValaCCodeExpression*) _tmp75_;
		_g_free0 (_tmp74_);
		_g_free0 (_tmp72_);
		_tmp76_ = iface;
		_tmp77_ = vala_gd_bus_module_get_dbus_name ((ValaTypeSymbol*) _tmp76_);
		_tmp78_ = _tmp77_;
		_tmp79_ = g_strdup_printf ("\"%s\"", _tmp78_);
		_tmp80_ = _tmp79_;
		_tmp81_ = vala_ccode_constant_new (_tmp80_);
		_vala_ccode_node_unref0 (dbus_iface_name);
		dbus_iface_name = (ValaCCodeExpression*) _tmp81_;
		_g_free0 (_tmp80_);
		_g_free0 (_tmp78_);
		_vala_code_node_unref0 (iface);
	} else {
		ValaCCodeFunctionCall* quark = NULL;
		ValaCCodeIdentifier* _tmp82_;
		ValaCCodeIdentifier* _tmp83_;
		ValaCCodeFunctionCall* _tmp84_;
		ValaCCodeFunctionCall* _tmp85_;
		ValaCCodeFunctionCall* _tmp86_;
		ValaCCodeConstant* _tmp87_;
		ValaCCodeConstant* _tmp88_;
		ValaCCodeFunctionCall* get_qdata = NULL;
		ValaCCodeIdentifier* _tmp89_;
		ValaCCodeIdentifier* _tmp90_;
		ValaCCodeFunctionCall* _tmp91_;
		ValaCCodeFunctionCall* _tmp92_;
		ValaCCodeFunctionCall* _tmp93_;
		ValaDataType* _tmp94_;
		ValaCCodeExpression* _tmp95_;
		ValaCCodeExpression* _tmp96_;
		ValaCCodeFunctionCall* _tmp97_;
		ValaCCodeFunctionCall* _tmp98_;
		ValaCCodeFunctionCall* _tmp99_;
		ValaCCodeCastExpression* _tmp100_;
		ValaCCodeCastExpression* _tmp101_;
		ValaCCodeFunctionCall* _tmp102_;
		ValaCCodeIdentifier* _tmp103_;
		ValaCCodeIdentifier* _tmp104_;
		ValaCCodeFunctionCall* _tmp105_;
		ValaCCodeFunctionCall* _tmp106_;
		ValaCCodeConstant* _tmp107_;
		ValaCCodeConstant* _tmp108_;
		ValaCCodeIdentifier* _tmp109_;
		ValaCCodeIdentifier* _tmp110_;
		ValaCCodeFunctionCall* _tmp111_;
		ValaCCodeFunctionCall* _tmp112_;
		ValaDataType* _tmp113_;
		ValaCCodeExpression* _tmp114_;
		ValaCCodeExpression* _tmp115_;
		ValaCCodeFunctionCall* _tmp116_;
		ValaCCodeFunctionCall* _tmp117_;
		ValaCCodeFunctionCall* _tmp118_;
		ValaCCodeExpression* _tmp119_;
		_tmp82_ = vala_ccode_identifier_new ("g_quark_from_static_string");
		_tmp83_ = _tmp82_;
		_tmp84_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp83_);
		_tmp85_ = _tmp84_;
		_vala_ccode_node_unref0 (_tmp83_);
		quark = _tmp85_;
		_tmp86_ = quark;
		_tmp87_ = vala_ccode_constant_new ("\"vala-dbus-proxy-type\"");
		_tmp88_ = _tmp87_;
		vala_ccode_function_call_add_argument (_tmp86_, (ValaCCodeExpression*) _tmp88_);
		_vala_ccode_node_unref0 (_tmp88_);
		_tmp89_ = vala_ccode_identifier_new ("g_type_get_qdata");
		_tmp90_ = _tmp89_;
		_tmp91_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp90_);
		_tmp92_ = _tmp91_;
		_vala_ccode_node_unref0 (_tmp90_);
		get_qdata = _tmp92_;
		_tmp93_ = get_qdata;
		_tmp94_ = type_arg;
		_tmp95_ = vala_ccode_base_module_get_type_id_expression ((ValaCCodeBaseModule*) self, _tmp94_, FALSE);
		_tmp96_ = _tmp95_;
		vala_ccode_function_call_add_argument (_tmp93_, _tmp96_);
		_vala_ccode_node_unref0 (_tmp96_);
		_tmp97_ = get_qdata;
		_tmp98_ = quark;
		vala_ccode_function_call_add_argument (_tmp97_, (ValaCCodeExpression*) _tmp98_);
		_tmp99_ = get_qdata;
		_tmp100_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) _tmp99_, "GType (*) (void)");
		_tmp101_ = _tmp100_;
		_tmp102_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp101_);
		_vala_ccode_node_unref0 (proxy_type);
		proxy_type = (ValaCCodeExpression*) _tmp102_;
		_vala_ccode_node_unref0 (_tmp101_);
		_tmp103_ = vala_ccode_identifier_new ("g_quark_from_static_string");
		_tmp104_ = _tmp103_;
		_tmp105_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp104_);
		_vala_ccode_node_unref0 (quark);
		quark = _tmp105_;
		_vala_ccode_node_unref0 (_tmp104_);
		_tmp106_ = quark;
		_tmp107_ = vala_ccode_constant_new ("\"vala-dbus-interface-name\"");
		_tmp108_ = _tmp107_;
		vala_ccode_function_call_add_argument (_tmp106_, (ValaCCodeExpression*) _tmp108_);
		_vala_ccode_node_unref0 (_tmp108_);
		_tmp109_ = vala_ccode_identifier_new ("g_type_get_qdata");
		_tmp110_ = _tmp109_;
		_tmp111_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp110_);
		_vala_ccode_node_unref0 (get_qdata);
		get_qdata = _tmp111_;
		_vala_ccode_node_unref0 (_tmp110_);
		_tmp112_ = get_qdata;
		_tmp113_ = type_arg;
		_tmp114_ = vala_ccode_base_module_get_type_id_expression ((ValaCCodeBaseModule*) self, _tmp113_, FALSE);
		_tmp115_ = _tmp114_;
		vala_ccode_function_call_add_argument (_tmp112_, _tmp115_);
		_vala_ccode_node_unref0 (_tmp115_);
		_tmp116_ = get_qdata;
		_tmp117_ = quark;
		vala_ccode_function_call_add_argument (_tmp116_, (ValaCCodeExpression*) _tmp117_);
		_tmp118_ = get_qdata;
		_tmp119_ = _vala_ccode_node_ref0 ((ValaCCodeExpression*) _tmp118_);
		_vala_ccode_node_unref0 (dbus_iface_name);
		dbus_iface_name = _tmp119_;
		_vala_ccode_node_unref0 (get_qdata);
		_vala_ccode_node_unref0 (quark);
	}
	_tmp120_ = vala_ccode_identifier_new ("g_quark_from_static_string");
	_tmp121_ = _tmp120_;
	_tmp122_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp121_);
	_tmp123_ = _tmp122_;
	_vala_ccode_node_unref0 (_tmp121_);
	quark = _tmp123_;
	_tmp124_ = quark;
	_tmp125_ = vala_ccode_constant_new ("\"vala-dbus-interface-info\"");
	_tmp126_ = _tmp125_;
	vala_ccode_function_call_add_argument (_tmp124_, (ValaCCodeExpression*) _tmp126_);
	_vala_ccode_node_unref0 (_tmp126_);
	_tmp127_ = vala_ccode_identifier_new ("g_type_get_qdata");
	_tmp128_ = _tmp127_;
	_tmp129_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp128_);
	_tmp130_ = _tmp129_;
	_vala_ccode_node_unref0 (_tmp128_);
	get_qdata = _tmp130_;
	_tmp131_ = get_qdata;
	_tmp132_ = type_arg;
	_tmp133_ = vala_ccode_base_module_get_type_id_expression ((ValaCCodeBaseModule*) self, _tmp132_, FALSE);
	_tmp134_ = _tmp133_;
	vala_ccode_function_call_add_argument (_tmp131_, _tmp134_);
	_vala_ccode_node_unref0 (_tmp134_);
	_tmp135_ = get_qdata;
	_tmp136_ = quark;
	vala_ccode_function_call_add_argument (_tmp135_, (ValaCCodeExpression*) _tmp136_);
	_tmp137_ = get_qdata;
	_tmp138_ = _vala_ccode_node_ref0 ((ValaCCodeExpression*) _tmp137_);
	_vala_ccode_node_unref0 (dbus_iface_info);
	dbus_iface_info = _tmp138_;
	_tmp140_ = bus_get_proxy_async;
	if (_tmp140_) {
		_tmp139_ = TRUE;
	} else {
		gboolean _tmp141_;
		_tmp141_ = conn_get_proxy_async;
		_tmp139_ = _tmp141_;
	}
	if (_tmp139_) {
		gboolean _tmp142_ = FALSE;
		ValaMemberAccess* _tmp143_;
		const gchar* _tmp144_;
		const gchar* _tmp145_;
		_tmp143_ = ma;
		_tmp144_ = vala_member_access_get_member_name (_tmp143_);
		_tmp145_ = _tmp144_;
		if (g_strcmp0 (_tmp145_, "end") == 0) {
			ValaMemberAccess* _tmp146_;
			ValaExpression* _tmp147_;
			ValaExpression* _tmp148_;
			ValaSymbol* _tmp149_;
			ValaSymbol* _tmp150_;
			ValaMemberAccess* _tmp151_;
			ValaSymbol* _tmp152_;
			ValaSymbol* _tmp153_;
			_tmp146_ = ma;
			_tmp147_ = vala_member_access_get_inner (_tmp146_);
			_tmp148_ = _tmp147_;
			_tmp149_ = vala_expression_get_symbol_reference (_tmp148_);
			_tmp150_ = _tmp149_;
			_tmp151_ = ma;
			_tmp152_ = vala_expression_get_symbol_reference ((ValaExpression*) _tmp151_);
			_tmp153_ = _tmp152_;
			_tmp142_ = _tmp150_ == _tmp153_;
		} else {
			_tmp142_ = FALSE;
		}
		if (_tmp142_) {
			ValaList* args = NULL;
			ValaMethodCall* _tmp154_;
			ValaList* _tmp155_;
			ValaExpression* res = NULL;
			ValaList* _tmp156_;
			gpointer _tmp157_;
			ValaLocalVariable* source_var = NULL;
			ValaMethodCall* _tmp158_;
			ValaDataType* _tmp159_;
			ValaDataType* _tmp160_;
			ValaMethodCall* _tmp161_;
			ValaDataType* _tmp162_;
			ValaDataType* _tmp163_;
			gboolean _tmp164_;
			gboolean _tmp165_;
			ValaLocalVariable* _tmp166_;
			ValaCCodeExpression* source_ref = NULL;
			ValaLocalVariable* _tmp167_;
			const gchar* _tmp168_;
			const gchar* _tmp169_;
			ValaCCodeExpression* _tmp170_;
			ValaLocalVariable* _tmp171_;
			ValaCCodeFunctionCall* source = NULL;
			ValaCCodeIdentifier* _tmp172_;
			ValaCCodeIdentifier* _tmp173_;
			ValaCCodeFunctionCall* _tmp174_;
			ValaCCodeFunctionCall* _tmp175_;
			ValaCCodeFunctionCall* _tmp176_;
			ValaExpression* _tmp177_;
			ValaCCodeExpression* _tmp178_;
			ValaCCodeExpression* _tmp179_;
			ValaCCodeFunction* _tmp180_;
			ValaCCodeFunction* _tmp181_;
			ValaCCodeExpression* _tmp182_;
			ValaCCodeFunctionCall* _tmp183_;
			ValaCCodeFunctionCall* ccall = NULL;
			ValaCCodeIdentifier* _tmp184_;
			ValaCCodeIdentifier* _tmp185_;
			ValaCCodeFunctionCall* _tmp186_;
			ValaCCodeFunctionCall* _tmp187_;
			ValaCCodeFunctionCall* _tmp188_;
			ValaCCodeExpression* _tmp189_;
			ValaCCodeFunctionCall* _tmp190_;
			ValaExpression* _tmp191_;
			ValaCCodeExpression* _tmp192_;
			ValaCCodeExpression* _tmp193_;
			ValaCCodeFunctionCall* _tmp194_;
			ValaCCodeExpression* _tmp195_;
			ValaCCodeExpression* _tmp196_;
			ValaCCodeUnaryExpression* _tmp197_;
			ValaCCodeUnaryExpression* _tmp198_;
			ValaLocalVariable* temp_var = NULL;
			ValaMethodCall* _tmp199_;
			ValaDataType* _tmp200_;
			ValaDataType* _tmp201_;
			ValaMethodCall* _tmp202_;
			ValaDataType* _tmp203_;
			ValaDataType* _tmp204_;
			gboolean _tmp205_;
			gboolean _tmp206_;
			ValaLocalVariable* _tmp207_;
			ValaCCodeExpression* temp_ref = NULL;
			ValaLocalVariable* _tmp208_;
			const gchar* _tmp209_;
			const gchar* _tmp210_;
			ValaCCodeExpression* _tmp211_;
			ValaLocalVariable* _tmp212_;
			ValaCCodeFunction* _tmp213_;
			ValaCCodeFunction* _tmp214_;
			ValaCCodeExpression* _tmp215_;
			ValaCCodeFunctionCall* _tmp216_;
			ValaCCodeFunctionCall* unref_proxy = NULL;
			ValaCCodeIdentifier* _tmp217_;
			ValaCCodeIdentifier* _tmp218_;
			ValaCCodeFunctionCall* _tmp219_;
			ValaCCodeFunctionCall* _tmp220_;
			ValaCCodeFunctionCall* _tmp221_;
			ValaCCodeExpression* _tmp222_;
			ValaCCodeFunction* _tmp223_;
			ValaCCodeFunction* _tmp224_;
			ValaCCodeFunctionCall* _tmp225_;
			ValaMethodCall* _tmp226_;
			ValaCCodeExpression* _tmp227_;
			vala_ccode_base_module_set_current_method_inner_error ((ValaCCodeBaseModule*) self, TRUE);
			_tmp154_ = expr;
			_tmp155_ = vala_method_call_get_argument_list (_tmp154_);
			args = _tmp155_;
			_tmp156_ = args;
			_tmp157_ = vala_list_get (_tmp156_, 0);
			res = (ValaExpression*) _tmp157_;
			_tmp158_ = expr;
			_tmp159_ = vala_expression_get_value_type ((ValaExpression*) _tmp158_);
			_tmp160_ = _tmp159_;
			_tmp161_ = expr;
			_tmp162_ = vala_expression_get_value_type ((ValaExpression*) _tmp161_);
			_tmp163_ = _tmp162_;
			_tmp164_ = vala_data_type_get_value_owned (_tmp163_);
			_tmp165_ = _tmp164_;
			_tmp166_ = vala_ccode_base_module_get_temp_variable ((ValaCCodeBaseModule*) self, _tmp160_, _tmp165_, NULL, FALSE);
			source_var = _tmp166_;
			_tmp167_ = source_var;
			_tmp168_ = vala_symbol_get_name ((ValaSymbol*) _tmp167_);
			_tmp169_ = _tmp168_;
			_tmp170_ = vala_ccode_base_module_get_variable_cexpression ((ValaCCodeBaseModule*) self, _tmp169_);
			source_ref = _tmp170_;
			_tmp171_ = source_var;
			vala_ccode_base_module_emit_temp_var ((ValaCCodeBaseModule*) self, _tmp171_);
			_tmp172_ = vala_ccode_identifier_new ("g_async_result_get_source_object");
			_tmp173_ = _tmp172_;
			_tmp174_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp173_);
			_tmp175_ = _tmp174_;
			_vala_ccode_node_unref0 (_tmp173_);
			source = _tmp175_;
			_tmp176_ = source;
			_tmp177_ = res;
			_tmp178_ = vala_ccode_base_module_get_cvalue ((ValaCCodeBaseModule*) self, _tmp177_);
			_tmp179_ = _tmp178_;
			vala_ccode_function_call_add_argument (_tmp176_, _tmp179_);
			_vala_ccode_node_unref0 (_tmp179_);
			_tmp180_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp181_ = _tmp180_;
			_tmp182_ = source_ref;
			_tmp183_ = source;
			vala_ccode_function_add_assignment (_tmp181_, _tmp182_, (ValaCCodeExpression*) _tmp183_);
			_tmp184_ = vala_ccode_identifier_new ("g_async_initable_new_finish");
			_tmp185_ = _tmp184_;
			_tmp186_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp185_);
			_tmp187_ = _tmp186_;
			_vala_ccode_node_unref0 (_tmp185_);
			ccall = _tmp187_;
			_tmp188_ = ccall;
			_tmp189_ = source_ref;
			vala_ccode_function_call_add_argument (_tmp188_, _tmp189_);
			_tmp190_ = ccall;
			_tmp191_ = res;
			_tmp192_ = vala_ccode_base_module_get_cvalue ((ValaCCodeBaseModule*) self, _tmp191_);
			_tmp193_ = _tmp192_;
			vala_ccode_function_call_add_argument (_tmp190_, _tmp193_);
			_vala_ccode_node_unref0 (_tmp193_);
			_tmp194_ = ccall;
			_tmp195_ = vala_ccode_base_module_get_variable_cexpression ((ValaCCodeBaseModule*) self, "_inner_error_");
			_tmp196_ = _tmp195_;
			_tmp197_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, _tmp196_);
			_tmp198_ = _tmp197_;
			vala_ccode_function_call_add_argument (_tmp194_, (ValaCCodeExpression*) _tmp198_);
			_vala_ccode_node_unref0 (_tmp198_);
			_vala_ccode_node_unref0 (_tmp196_);
			_tmp199_ = expr;
			_tmp200_ = vala_expression_get_value_type ((ValaExpression*) _tmp199_);
			_tmp201_ = _tmp200_;
			_tmp202_ = expr;
			_tmp203_ = vala_expression_get_value_type ((ValaExpression*) _tmp202_);
			_tmp204_ = _tmp203_;
			_tmp205_ = vala_data_type_get_value_owned (_tmp204_);
			_tmp206_ = _tmp205_;
			_tmp207_ = vala_ccode_base_module_get_temp_variable ((ValaCCodeBaseModule*) self, _tmp201_, _tmp206_, NULL, FALSE);
			temp_var = _tmp207_;
			_tmp208_ = temp_var;
			_tmp209_ = vala_symbol_get_name ((ValaSymbol*) _tmp208_);
			_tmp210_ = _tmp209_;
			_tmp211_ = vala_ccode_base_module_get_variable_cexpression ((ValaCCodeBaseModule*) self, _tmp210_);
			temp_ref = _tmp211_;
			_tmp212_ = temp_var;
			vala_ccode_base_module_emit_temp_var ((ValaCCodeBaseModule*) self, _tmp212_);
			_tmp213_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp214_ = _tmp213_;
			_tmp215_ = temp_ref;
			_tmp216_ = ccall;
			vala_ccode_function_add_assignment (_tmp214_, _tmp215_, (ValaCCodeExpression*) _tmp216_);
			_tmp217_ = vala_ccode_identifier_new ("g_object_unref");
			_tmp218_ = _tmp217_;
			_tmp219_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp218_);
			_tmp220_ = _tmp219_;
			_vala_ccode_node_unref0 (_tmp218_);
			unref_proxy = _tmp220_;
			_tmp221_ = unref_proxy;
			_tmp222_ = source_ref;
			vala_ccode_function_call_add_argument (_tmp221_, _tmp222_);
			_tmp223_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp224_ = _tmp223_;
			_tmp225_ = unref_proxy;
			vala_ccode_function_add_expression (_tmp224_, (ValaCCodeExpression*) _tmp225_);
			_tmp226_ = expr;
			_tmp227_ = temp_ref;
			vala_ccode_base_module_set_cvalue ((ValaCCodeBaseModule*) self, (ValaExpression*) _tmp226_, _tmp227_);
			_vala_ccode_node_unref0 (unref_proxy);
			_vala_ccode_node_unref0 (temp_ref);
			_vala_code_node_unref0 (temp_var);
			_vala_ccode_node_unref0 (ccall);
			_vala_ccode_node_unref0 (source);
			_vala_ccode_node_unref0 (source_ref);
			_vala_code_node_unref0 (source_var);
			_vala_code_node_unref0 (res);
			_vala_iterable_unref0 (args);
			_vala_ccode_node_unref0 (get_qdata);
			_vala_ccode_node_unref0 (quark);
			_vala_code_node_unref0 (object_type);
			_vala_ccode_node_unref0 (dbus_iface_info);
			_vala_ccode_node_unref0 (dbus_iface_name);
			_vala_ccode_node_unref0 (proxy_type);
			_vala_code_node_unref0 (type_arg);
			_vala_code_node_unref0 (ma);
			_vala_code_node_unref0 (mtype);
			return;
		}
	}
	base_arg_index = 0;
	_tmp229_ = bus_get_proxy_async;
	if (_tmp229_) {
		_tmp228_ = TRUE;
	} else {
		gboolean _tmp230_;
		_tmp230_ = bus_get_proxy_sync;
		_tmp228_ = _tmp230_;
	}
	if (_tmp228_) {
		base_arg_index = 1;
	}
	_tmp231_ = expr;
	_tmp232_ = vala_method_call_get_argument_list (_tmp231_);
	args = _tmp232_;
	_tmp233_ = args;
	_tmp234_ = base_arg_index;
	_tmp235_ = vala_list_get (_tmp233_, _tmp234_ + 0);
	name = (ValaExpression*) _tmp235_;
	_tmp236_ = args;
	_tmp237_ = base_arg_index;
	_tmp238_ = vala_list_get (_tmp236_, _tmp237_ + 1);
	object_path = (ValaExpression*) _tmp238_;
	_tmp239_ = args;
	_tmp240_ = base_arg_index;
	_tmp241_ = vala_list_get (_tmp239_, _tmp240_ + 2);
	flags = (ValaExpression*) _tmp241_;
	_tmp242_ = args;
	_tmp243_ = base_arg_index;
	_tmp244_ = vala_list_get (_tmp242_, _tmp243_ + 3);
	cancellable = (ValaExpression*) _tmp244_;
	vala_ccode_base_module_set_current_method_inner_error ((ValaCCodeBaseModule*) self, TRUE);
	_tmp246_ = bus_get_proxy_async;
	if (_tmp246_) {
		_tmp245_ = TRUE;
	} else {
		gboolean _tmp247_;
		_tmp247_ = conn_get_proxy_async;
		_tmp245_ = _tmp247_;
	}
	if (_tmp245_) {
		ValaCCodeIdentifier* _tmp248_;
		ValaCCodeIdentifier* _tmp249_;
		ValaCCodeFunctionCall* _tmp250_;
		_tmp248_ = vala_ccode_identifier_new ("g_async_initable_new_async");
		_tmp249_ = _tmp248_;
		_tmp250_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp249_);
		_vala_ccode_node_unref0 (ccall);
		ccall = _tmp250_;
		_vala_ccode_node_unref0 (_tmp249_);
	} else {
		ValaCCodeIdentifier* _tmp251_;
		ValaCCodeIdentifier* _tmp252_;
		ValaCCodeFunctionCall* _tmp253_;
		_tmp251_ = vala_ccode_identifier_new ("g_initable_new");
		_tmp252_ = _tmp251_;
		_tmp253_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp252_);
		_vala_ccode_node_unref0 (ccall);
		ccall = _tmp253_;
		_vala_ccode_node_unref0 (_tmp252_);
	}
	_tmp254_ = ccall;
	_tmp255_ = proxy_type;
	vala_ccode_function_call_add_argument (_tmp254_, _tmp255_);
	_tmp257_ = bus_get_proxy_async;
	if (_tmp257_) {
		_tmp256_ = TRUE;
	} else {
		gboolean _tmp258_;
		_tmp258_ = conn_get_proxy_async;
		_tmp256_ = _tmp258_;
	}
	if (_tmp256_) {
		ValaCCodeFunctionCall* _tmp259_;
		ValaCCodeConstant* _tmp260_;
		ValaCCodeConstant* _tmp261_;
		_tmp259_ = ccall;
		_tmp260_ = vala_ccode_constant_new ("0");
		_tmp261_ = _tmp260_;
		vala_ccode_function_call_add_argument (_tmp259_, (ValaCCodeExpression*) _tmp261_);
		_vala_ccode_node_unref0 (_tmp261_);
	}
	_tmp262_ = ccall;
	_tmp263_ = cancellable;
	_tmp264_ = vala_ccode_base_module_get_cvalue ((ValaCCodeBaseModule*) self, _tmp263_);
	_tmp265_ = _tmp264_;
	vala_ccode_function_call_add_argument (_tmp262_, _tmp265_);
	_vala_ccode_node_unref0 (_tmp265_);
	_tmp267_ = bus_get_proxy_async;
	if (_tmp267_) {
		_tmp266_ = TRUE;
	} else {
		gboolean _tmp268_;
		_tmp268_ = conn_get_proxy_async;
		_tmp266_ = _tmp268_;
	}
	if (_tmp266_) {
		ValaMethodCall* _tmp269_;
		gboolean _tmp270_;
		gboolean _tmp271_;
		_tmp269_ = expr;
		_tmp270_ = vala_method_call_get_is_yield_expression (_tmp269_);
		_tmp271_ = _tmp270_;
		if (_tmp271_) {
			ValaCCodeFunctionCall* _tmp272_;
			ValaMethod* _tmp273_;
			ValaMethod* _tmp274_;
			gchar* _tmp275_;
			gchar* _tmp276_;
			ValaCCodeIdentifier* _tmp277_;
			ValaCCodeIdentifier* _tmp278_;
			ValaCCodeFunctionCall* _tmp279_;
			ValaCCodeIdentifier* _tmp280_;
			ValaCCodeIdentifier* _tmp281_;
			_tmp272_ = ccall;
			_tmp273_ = vala_ccode_base_module_get_current_method ((ValaCCodeBaseModule*) self);
			_tmp274_ = _tmp273_;
			_tmp275_ = vala_ccode_base_module_generate_ready_function ((ValaCCodeBaseModule*) self, _tmp274_);
			_tmp276_ = _tmp275_;
			_tmp277_ = vala_ccode_identifier_new (_tmp276_);
			_tmp278_ = _tmp277_;
			vala_ccode_function_call_add_argument (_tmp272_, (ValaCCodeExpression*) _tmp278_);
			_vala_ccode_node_unref0 (_tmp278_);
			_g_free0 (_tmp276_);
			_tmp279_ = ccall;
			_tmp280_ = vala_ccode_identifier_new ("_data_");
			_tmp281_ = _tmp280_;
			vala_ccode_function_call_add_argument (_tmp279_, (ValaCCodeExpression*) _tmp281_);
			_vala_ccode_node_unref0 (_tmp281_);
		} else {
			ValaExpression* callback = NULL;
			ValaList* _tmp282_;
			gint _tmp283_;
			gpointer _tmp284_;
			ValaCCodeFunctionCall* _tmp285_;
			ValaExpression* _tmp286_;
			ValaCCodeExpression* _tmp287_;
			ValaCCodeExpression* _tmp288_;
			ValaCCodeFunctionCall* _tmp289_;
			ValaExpression* _tmp290_;
			ValaCCodeExpression* _tmp291_;
			ValaCCodeExpression* _tmp292_;
			_tmp282_ = args;
			_tmp283_ = base_arg_index;
			_tmp284_ = vala_list_get (_tmp282_, _tmp283_ + 4);
			callback = (ValaExpression*) _tmp284_;
			_tmp285_ = ccall;
			_tmp286_ = callback;
			_tmp287_ = vala_ccode_base_module_get_cvalue ((ValaCCodeBaseModule*) self, _tmp286_);
			_tmp288_ = _tmp287_;
			vala_ccode_function_call_add_argument (_tmp285_, _tmp288_);
			_vala_ccode_node_unref0 (_tmp288_);
			_tmp289_ = ccall;
			_tmp290_ = callback;
			_tmp291_ = vala_ccode_base_module_get_delegate_target ((ValaCCodeBaseModule*) self, _tmp290_);
			_tmp292_ = _tmp291_;
			vala_ccode_function_call_add_argument (_tmp289_, _tmp292_);
			_vala_ccode_node_unref0 (_tmp292_);
			_vala_code_node_unref0 (callback);
		}
	} else {
		ValaCCodeFunctionCall* _tmp293_;
		ValaCCodeExpression* _tmp294_;
		ValaCCodeExpression* _tmp295_;
		ValaCCodeUnaryExpression* _tmp296_;
		ValaCCodeUnaryExpression* _tmp297_;
		_tmp293_ = ccall;
		_tmp294_ = vala_ccode_base_module_get_variable_cexpression ((ValaCCodeBaseModule*) self, "_inner_error_");
		_tmp295_ = _tmp294_;
		_tmp296_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, _tmp295_);
		_tmp297_ = _tmp296_;
		vala_ccode_function_call_add_argument (_tmp293_, (ValaCCodeExpression*) _tmp297_);
		_vala_ccode_node_unref0 (_tmp297_);
		_vala_ccode_node_unref0 (_tmp295_);
	}
	_tmp298_ = ccall;
	_tmp299_ = vala_ccode_constant_new ("\"g-flags\"");
	_tmp300_ = _tmp299_;
	vala_ccode_function_call_add_argument (_tmp298_, (ValaCCodeExpression*) _tmp300_);
	_vala_ccode_node_unref0 (_tmp300_);
	_tmp301_ = ccall;
	_tmp302_ = flags;
	_tmp303_ = vala_ccode_base_module_get_cvalue ((ValaCCodeBaseModule*) self, _tmp302_);
	_tmp304_ = _tmp303_;
	vala_ccode_function_call_add_argument (_tmp301_, _tmp304_);
	_vala_ccode_node_unref0 (_tmp304_);
	_tmp305_ = ccall;
	_tmp306_ = vala_ccode_constant_new ("\"g-name\"");
	_tmp307_ = _tmp306_;
	vala_ccode_function_call_add_argument (_tmp305_, (ValaCCodeExpression*) _tmp307_);
	_vala_ccode_node_unref0 (_tmp307_);
	_tmp308_ = ccall;
	_tmp309_ = name;
	_tmp310_ = vala_ccode_base_module_get_cvalue ((ValaCCodeBaseModule*) self, _tmp309_);
	_tmp311_ = _tmp310_;
	vala_ccode_function_call_add_argument (_tmp308_, _tmp311_);
	_vala_ccode_node_unref0 (_tmp311_);
	_tmp313_ = bus_get_proxy_async;
	if (_tmp313_) {
		_tmp312_ = TRUE;
	} else {
		gboolean _tmp314_;
		_tmp314_ = bus_get_proxy_sync;
		_tmp312_ = _tmp314_;
	}
	if (_tmp312_) {
		ValaExpression* bus_type = NULL;
		ValaList* _tmp315_;
		gpointer _tmp316_;
		ValaCCodeFunctionCall* _tmp317_;
		ValaCCodeConstant* _tmp318_;
		ValaCCodeConstant* _tmp319_;
		ValaCCodeFunctionCall* _tmp320_;
		ValaExpression* _tmp321_;
		ValaCCodeExpression* _tmp322_;
		ValaCCodeExpression* _tmp323_;
		_tmp315_ = args;
		_tmp316_ = vala_list_get (_tmp315_, 0);
		bus_type = (ValaExpression*) _tmp316_;
		_tmp317_ = ccall;
		_tmp318_ = vala_ccode_constant_new ("\"g-bus-type\"");
		_tmp319_ = _tmp318_;
		vala_ccode_function_call_add_argument (_tmp317_, (ValaCCodeExpression*) _tmp319_);
		_vala_ccode_node_unref0 (_tmp319_);
		_tmp320_ = ccall;
		_tmp321_ = bus_type;
		_tmp322_ = vala_ccode_base_module_get_cvalue ((ValaCCodeBaseModule*) self, _tmp321_);
		_tmp323_ = _tmp322_;
		vala_ccode_function_call_add_argument (_tmp320_, _tmp323_);
		_vala_ccode_node_unref0 (_tmp323_);
		_vala_code_node_unref0 (bus_type);
	} else {
		ValaExpression* connection = NULL;
		ValaMemberAccess* _tmp324_;
		ValaExpression* _tmp325_;
		ValaExpression* _tmp326_;
		ValaExpression* _tmp327_;
		gboolean _tmp328_ = FALSE;
		ValaMemberAccess* _tmp329_;
		const gchar* _tmp330_;
		const gchar* _tmp331_;
		ValaCCodeFunctionCall* _tmp348_;
		ValaCCodeConstant* _tmp349_;
		ValaCCodeConstant* _tmp350_;
		ValaCCodeFunctionCall* _tmp351_;
		ValaExpression* _tmp352_;
		ValaCCodeExpression* _tmp353_;
		ValaCCodeExpression* _tmp354_;
		_tmp324_ = ma;
		_tmp325_ = vala_member_access_get_inner (_tmp324_);
		_tmp326_ = _tmp325_;
		_tmp327_ = _vala_code_node_ref0 (_tmp326_);
		connection = _tmp327_;
		_tmp329_ = ma;
		_tmp330_ = vala_member_access_get_member_name (_tmp329_);
		_tmp331_ = _tmp330_;
		if (g_strcmp0 (_tmp331_, "begin") == 0) {
			ValaMemberAccess* _tmp332_;
			ValaExpression* _tmp333_;
			ValaExpression* _tmp334_;
			ValaSymbol* _tmp335_;
			ValaSymbol* _tmp336_;
			ValaMemberAccess* _tmp337_;
			ValaSymbol* _tmp338_;
			ValaSymbol* _tmp339_;
			_tmp332_ = ma;
			_tmp333_ = vala_member_access_get_inner (_tmp332_);
			_tmp334_ = _tmp333_;
			_tmp335_ = vala_expression_get_symbol_reference (_tmp334_);
			_tmp336_ = _tmp335_;
			_tmp337_ = ma;
			_tmp338_ = vala_expression_get_symbol_reference ((ValaExpression*) _tmp337_);
			_tmp339_ = _tmp338_;
			_tmp328_ = _tmp336_ == _tmp339_;
		} else {
			_tmp328_ = FALSE;
		}
		if (_tmp328_) {
			ValaMemberAccess* inner_ma = NULL;
			ValaMemberAccess* _tmp340_;
			ValaExpression* _tmp341_;
			ValaExpression* _tmp342_;
			ValaMemberAccess* _tmp343_;
			ValaMemberAccess* _tmp344_;
			ValaExpression* _tmp345_;
			ValaExpression* _tmp346_;
			ValaExpression* _tmp347_;
			_tmp340_ = ma;
			_tmp341_ = vala_member_access_get_inner (_tmp340_);
			_tmp342_ = _tmp341_;
			_tmp343_ = _vala_code_node_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp342_, VALA_TYPE_MEMBER_ACCESS, ValaMemberAccess));
			inner_ma = _tmp343_;
			_tmp344_ = inner_ma;
			_tmp345_ = vala_member_access_get_inner (_tmp344_);
			_tmp346_ = _tmp345_;
			_tmp347_ = _vala_code_node_ref0 (_tmp346_);
			_vala_code_node_unref0 (connection);
			connection = _tmp347_;
			_vala_code_node_unref0 (inner_ma);
		}
		_tmp348_ = ccall;
		_tmp349_ = vala_ccode_constant_new ("\"g-connection\"");
		_tmp350_ = _tmp349_;
		vala_ccode_function_call_add_argument (_tmp348_, (ValaCCodeExpression*) _tmp350_);
		_vala_ccode_node_unref0 (_tmp350_);
		_tmp351_ = ccall;
		_tmp352_ = connection;
		_tmp353_ = vala_ccode_base_module_get_cvalue ((ValaCCodeBaseModule*) self, _tmp352_);
		_tmp354_ = _tmp353_;
		vala_ccode_function_call_add_argument (_tmp351_, _tmp354_);
		_vala_ccode_node_unref0 (_tmp354_);
		_vala_code_node_unref0 (connection);
	}
	_tmp355_ = ccall;
	_tmp356_ = vala_ccode_constant_new ("\"g-object-path\"");
	_tmp357_ = _tmp356_;
	vala_ccode_function_call_add_argument (_tmp355_, (ValaCCodeExpression*) _tmp357_);
	_vala_ccode_node_unref0 (_tmp357_);
	_tmp358_ = ccall;
	_tmp359_ = object_path;
	_tmp360_ = vala_ccode_base_module_get_cvalue ((ValaCCodeBaseModule*) self, _tmp359_);
	_tmp361_ = _tmp360_;
	vala_ccode_function_call_add_argument (_tmp358_, _tmp361_);
	_vala_ccode_node_unref0 (_tmp361_);
	_tmp362_ = ccall;
	_tmp363_ = vala_ccode_constant_new ("\"g-interface-name\"");
	_tmp364_ = _tmp363_;
	vala_ccode_function_call_add_argument (_tmp362_, (ValaCCodeExpression*) _tmp364_);
	_vala_ccode_node_unref0 (_tmp364_);
	_tmp365_ = ccall;
	_tmp366_ = dbus_iface_name;
	vala_ccode_function_call_add_argument (_tmp365_, _tmp366_);
	_tmp367_ = dbus_iface_info;
	if (_tmp367_ != NULL) {
		ValaCCodeFunctionCall* _tmp368_;
		ValaCCodeConstant* _tmp369_;
		ValaCCodeConstant* _tmp370_;
		ValaCCodeFunctionCall* _tmp371_;
		ValaCCodeExpression* _tmp372_;
		_tmp368_ = ccall;
		_tmp369_ = vala_ccode_constant_new ("\"g-interface-info\"");
		_tmp370_ = _tmp369_;
		vala_ccode_function_call_add_argument (_tmp368_, (ValaCCodeExpression*) _tmp370_);
		_vala_ccode_node_unref0 (_tmp370_);
		_tmp371_ = ccall;
		_tmp372_ = dbus_iface_info;
		vala_ccode_function_call_add_argument (_tmp371_, _tmp372_);
	}
	_tmp373_ = ccall;
	_tmp374_ = vala_ccode_constant_new ("NULL");
	_tmp375_ = _tmp374_;
	vala_ccode_function_call_add_argument (_tmp373_, (ValaCCodeExpression*) _tmp375_);
	_vala_ccode_node_unref0 (_tmp375_);
	_tmp377_ = bus_get_proxy_async;
	if (_tmp377_) {
		_tmp376_ = TRUE;
	} else {
		gboolean _tmp378_;
		_tmp378_ = conn_get_proxy_async;
		_tmp376_ = _tmp378_;
	}
	if (_tmp376_) {
		ValaMethodCall* _tmp379_;
		gboolean _tmp380_;
		gboolean _tmp381_;
		_tmp379_ = expr;
		_tmp380_ = vala_method_call_get_is_yield_expression (_tmp379_);
		_tmp381_ = _tmp380_;
		if (_tmp381_) {
			gint state = 0;
			ValaCCodeBaseModuleEmitContext* _tmp382_;
			gint _tmp383_;
			ValaCCodeFunction* _tmp384_;
			ValaCCodeFunction* _tmp385_;
			ValaCCodeIdentifier* _tmp386_;
			ValaCCodeIdentifier* _tmp387_;
			ValaCCodeMemberAccess* _tmp388_;
			ValaCCodeMemberAccess* _tmp389_;
			gint _tmp390_;
			gchar* _tmp391_;
			gchar* _tmp392_;
			ValaCCodeConstant* _tmp393_;
			ValaCCodeConstant* _tmp394_;
			ValaCCodeFunction* _tmp395_;
			ValaCCodeFunction* _tmp396_;
			ValaCCodeFunctionCall* _tmp397_;
			ValaCCodeFunction* _tmp398_;
			ValaCCodeFunction* _tmp399_;
			ValaCCodeConstant* _tmp400_;
			ValaCCodeConstant* _tmp401_;
			ValaCCodeFunction* _tmp402_;
			ValaCCodeFunction* _tmp403_;
			gint _tmp404_;
			gchar* _tmp405_;
			gchar* _tmp406_;
			ValaCCodeIdentifier* _tmp407_;
			ValaCCodeIdentifier* _tmp408_;
			ValaCCodeFunctionCall* _tmp409_;
			ValaCCodeFunctionCall* _tmp410_;
			ValaCCodeIdentifier* _tmp411_;
			ValaCCodeIdentifier* _tmp412_;
			ValaCCodeMemberAccess* _tmp413_;
			ValaCCodeMemberAccess* _tmp414_;
			ValaCCodeFunctionCall* _tmp415_;
			ValaCCodeIdentifier* _tmp416_;
			ValaCCodeIdentifier* _tmp417_;
			ValaCCodeMemberAccess* _tmp418_;
			ValaCCodeMemberAccess* _tmp419_;
			ValaCCodeFunctionCall* _tmp420_;
			ValaCCodeExpression* _tmp421_;
			ValaCCodeExpression* _tmp422_;
			ValaCCodeUnaryExpression* _tmp423_;
			ValaCCodeUnaryExpression* _tmp424_;
			_tmp382_ = ((ValaCCodeBaseModule*) self)->emit_context;
			_tmp383_ = _tmp382_->next_coroutine_state;
			_tmp382_->next_coroutine_state = _tmp383_ + 1;
			state = _tmp383_;
			_tmp384_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp385_ = _tmp384_;
			_tmp386_ = vala_ccode_identifier_new ("_data_");
			_tmp387_ = _tmp386_;
			_tmp388_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp387_, "_state_");
			_tmp389_ = _tmp388_;
			_tmp390_ = state;
			_tmp391_ = g_strdup_printf ("%i", _tmp390_);
			_tmp392_ = _tmp391_;
			_tmp393_ = vala_ccode_constant_new (_tmp392_);
			_tmp394_ = _tmp393_;
			vala_ccode_function_add_assignment (_tmp385_, (ValaCCodeExpression*) _tmp389_, (ValaCCodeExpression*) _tmp394_);
			_vala_ccode_node_unref0 (_tmp394_);
			_g_free0 (_tmp392_);
			_vala_ccode_node_unref0 (_tmp389_);
			_vala_ccode_node_unref0 (_tmp387_);
			_tmp395_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp396_ = _tmp395_;
			_tmp397_ = ccall;
			vala_ccode_function_add_expression (_tmp396_, (ValaCCodeExpression*) _tmp397_);
			_tmp398_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp399_ = _tmp398_;
			_tmp400_ = vala_ccode_constant_new ("FALSE");
			_tmp401_ = _tmp400_;
			vala_ccode_function_add_return (_tmp399_, (ValaCCodeExpression*) _tmp401_);
			_vala_ccode_node_unref0 (_tmp401_);
			_tmp402_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp403_ = _tmp402_;
			_tmp404_ = state;
			_tmp405_ = g_strdup_printf ("_state_%d", _tmp404_);
			_tmp406_ = _tmp405_;
			vala_ccode_function_add_label (_tmp403_, _tmp406_);
			_g_free0 (_tmp406_);
			_tmp407_ = vala_ccode_identifier_new ("g_async_initable_new_finish");
			_tmp408_ = _tmp407_;
			_tmp409_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp408_);
			_vala_ccode_node_unref0 (ccall);
			ccall = _tmp409_;
			_vala_ccode_node_unref0 (_tmp408_);
			_tmp410_ = ccall;
			_tmp411_ = vala_ccode_identifier_new ("_data_");
			_tmp412_ = _tmp411_;
			_tmp413_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp412_, "_source_object_");
			_tmp414_ = _tmp413_;
			vala_ccode_function_call_add_argument (_tmp410_, (ValaCCodeExpression*) _tmp414_);
			_vala_ccode_node_unref0 (_tmp414_);
			_vala_ccode_node_unref0 (_tmp412_);
			_tmp415_ = ccall;
			_tmp416_ = vala_ccode_identifier_new ("_data_");
			_tmp417_ = _tmp416_;
			_tmp418_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp417_, "_res_");
			_tmp419_ = _tmp418_;
			vala_ccode_function_call_add_argument (_tmp415_, (ValaCCodeExpression*) _tmp419_);
			_vala_ccode_node_unref0 (_tmp419_);
			_vala_ccode_node_unref0 (_tmp417_);
			_tmp420_ = ccall;
			_tmp421_ = vala_ccode_base_module_get_variable_cexpression ((ValaCCodeBaseModule*) self, "_inner_error_");
			_tmp422_ = _tmp421_;
			_tmp423_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, _tmp422_);
			_tmp424_ = _tmp423_;
			vala_ccode_function_call_add_argument (_tmp420_, (ValaCCodeExpression*) _tmp424_);
			_vala_ccode_node_unref0 (_tmp424_);
			_vala_ccode_node_unref0 (_tmp422_);
		} else {
			ValaCCodeFunction* _tmp425_;
			ValaCCodeFunction* _tmp426_;
			ValaCCodeFunctionCall* _tmp427_;
			_tmp425_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp426_ = _tmp425_;
			_tmp427_ = ccall;
			vala_ccode_function_add_expression (_tmp426_, (ValaCCodeExpression*) _tmp427_);
			_vala_ccode_node_unref0 (ccall);
			_vala_code_node_unref0 (cancellable);
			_vala_code_node_unref0 (flags);
			_vala_code_node_unref0 (object_path);
			_vala_code_node_unref0 (name);
			_vala_iterable_unref0 (args);
			_vala_ccode_node_unref0 (get_qdata);
			_vala_ccode_node_unref0 (quark);
			_vala_code_node_unref0 (object_type);
			_vala_ccode_node_unref0 (dbus_iface_info);
			_vala_ccode_node_unref0 (dbus_iface_name);
			_vala_ccode_node_unref0 (proxy_type);
			_vala_code_node_unref0 (type_arg);
			_vala_code_node_unref0 (ma);
			_vala_code_node_unref0 (mtype);
			return;
		}
	}
	_tmp428_ = expr;
	_tmp429_ = vala_expression_get_value_type ((ValaExpression*) _tmp428_);
	_tmp430_ = _tmp429_;
	_tmp431_ = expr;
	_tmp432_ = vala_expression_get_value_type ((ValaExpression*) _tmp431_);
	_tmp433_ = _tmp432_;
	_tmp434_ = vala_data_type_get_value_owned (_tmp433_);
	_tmp435_ = _tmp434_;
	_tmp436_ = vala_ccode_base_module_get_temp_variable ((ValaCCodeBaseModule*) self, _tmp430_, _tmp435_, NULL, FALSE);
	temp_var = _tmp436_;
	_tmp437_ = temp_var;
	_tmp438_ = vala_symbol_get_name ((ValaSymbol*) _tmp437_);
	_tmp439_ = _tmp438_;
	_tmp440_ = vala_ccode_base_module_get_variable_cexpression ((ValaCCodeBaseModule*) self, _tmp439_);
	temp_ref = _tmp440_;
	_tmp441_ = temp_var;
	vala_ccode_base_module_emit_temp_var ((ValaCCodeBaseModule*) self, _tmp441_);
	_tmp442_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp443_ = _tmp442_;
	_tmp444_ = temp_ref;
	_tmp445_ = ccall;
	vala_ccode_function_add_assignment (_tmp443_, _tmp444_, (ValaCCodeExpression*) _tmp445_);
	_tmp446_ = expr;
	_tmp447_ = temp_ref;
	vala_ccode_base_module_set_cvalue ((ValaCCodeBaseModule*) self, (ValaExpression*) _tmp446_, _tmp447_);
	_vala_ccode_node_unref0 (temp_ref);
	_vala_code_node_unref0 (temp_var);
	_vala_ccode_node_unref0 (ccall);
	_vala_code_node_unref0 (cancellable);
	_vala_code_node_unref0 (flags);
	_vala_code_node_unref0 (object_path);
	_vala_code_node_unref0 (name);
	_vala_iterable_unref0 (args);
	_vala_ccode_node_unref0 (get_qdata);
	_vala_ccode_node_unref0 (quark);
	_vala_code_node_unref0 (object_type);
	_vala_ccode_node_unref0 (dbus_iface_info);
	_vala_ccode_node_unref0 (dbus_iface_name);
	_vala_ccode_node_unref0 (proxy_type);
	_vala_code_node_unref0 (type_arg);
	_vala_code_node_unref0 (ma);
	_vala_code_node_unref0 (mtype);
}


static gchar* vala_gd_bus_client_module_generate_dbus_signal_handler (ValaGDBusClientModule* self, ValaSignal* sig, ValaObjectTypeSymbol* sym) {
	gchar* result = NULL;
	gchar* wrapper_name = NULL;
	ValaObjectTypeSymbol* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	ValaSignal* _tmp3_;
	gchar* _tmp4_;
	gchar* _tmp5_;
	gchar* _tmp6_;
	gchar* _tmp7_;
	ValaCCodeFunction* function = NULL;
	const gchar* _tmp8_;
	ValaCCodeFunction* _tmp9_;
	ValaCCodeFunction* _tmp10_;
	ValaCCodeFunction* _tmp11_;
	ValaObjectTypeSymbol* _tmp12_;
	gchar* _tmp13_;
	gchar* _tmp14_;
	gchar* _tmp15_;
	gchar* _tmp16_;
	ValaCCodeParameter* _tmp17_;
	ValaCCodeParameter* _tmp18_;
	ValaCCodeFunction* _tmp19_;
	ValaCCodeParameter* _tmp20_;
	ValaCCodeParameter* _tmp21_;
	ValaCCodeFunction* _tmp22_;
	ValaCCodeFunction* _tmp23_;
	ValaCCodeFunction* _tmp24_;
	ValaCCodeVariableDeclarator* _tmp25_;
	ValaCCodeVariableDeclarator* _tmp26_;
	ValaCCodeFunctionCall* iter_init = NULL;
	ValaCCodeIdentifier* _tmp27_;
	ValaCCodeIdentifier* _tmp28_;
	ValaCCodeFunctionCall* _tmp29_;
	ValaCCodeFunctionCall* _tmp30_;
	ValaCCodeFunctionCall* _tmp31_;
	ValaCCodeIdentifier* _tmp32_;
	ValaCCodeIdentifier* _tmp33_;
	ValaCCodeUnaryExpression* _tmp34_;
	ValaCCodeUnaryExpression* _tmp35_;
	ValaCCodeFunctionCall* _tmp36_;
	ValaCCodeIdentifier* _tmp37_;
	ValaCCodeIdentifier* _tmp38_;
	ValaCCodeFunction* _tmp39_;
	ValaCCodeFunction* _tmp40_;
	ValaCCodeFunctionCall* _tmp41_;
	ValaCCodeFunctionCall* ccall = NULL;
	ValaCCodeIdentifier* _tmp42_;
	ValaCCodeIdentifier* _tmp43_;
	ValaCCodeFunctionCall* _tmp44_;
	ValaCCodeFunctionCall* _tmp45_;
	ValaCCodeFunctionCall* _tmp46_;
	ValaCCodeIdentifier* _tmp47_;
	ValaCCodeIdentifier* _tmp48_;
	ValaCCodeFunctionCall* _tmp49_;
	ValaSignal* _tmp50_;
	ValaCCodeConstant* _tmp51_;
	ValaCCodeConstant* _tmp52_;
	ValaCCodeFunction* _tmp142_;
	ValaCCodeFunction* _tmp143_;
	ValaCCodeFunctionCall* _tmp144_;
	ValaCCodeFile* _tmp173_;
	ValaCCodeFunction* _tmp174_;
	ValaCCodeFile* _tmp175_;
	ValaCCodeFunction* _tmp176_;
	g_return_val_if_fail (self != NULL, NULL);
	g_return_val_if_fail (sig != NULL, NULL);
	g_return_val_if_fail (sym != NULL, NULL);
	_tmp0_ = sym;
	_tmp1_ = vala_ccode_base_module_get_ccode_lower_case_name ((ValaCodeNode*) _tmp0_, NULL);
	_tmp2_ = _tmp1_;
	_tmp3_ = sig;
	_tmp4_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp3_);
	_tmp5_ = _tmp4_;
	_tmp6_ = g_strdup_printf ("_dbus_handle_%s_%s", _tmp2_, _tmp5_);
	_tmp7_ = _tmp6_;
	_g_free0 (_tmp5_);
	_g_free0 (_tmp2_);
	wrapper_name = _tmp7_;
	_tmp8_ = wrapper_name;
	_tmp9_ = vala_ccode_function_new (_tmp8_, "void");
	function = _tmp9_;
	_tmp10_ = function;
	vala_ccode_node_set_modifiers ((ValaCCodeNode*) _tmp10_, VALA_CCODE_MODIFIERS_STATIC);
	_tmp11_ = function;
	_tmp12_ = sym;
	_tmp13_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp12_);
	_tmp14_ = _tmp13_;
	_tmp15_ = g_strconcat (_tmp14_, "*", NULL);
	_tmp16_ = _tmp15_;
	_tmp17_ = vala_ccode_parameter_new ("self", _tmp16_);
	_tmp18_ = _tmp17_;
	vala_ccode_function_add_parameter (_tmp11_, _tmp18_);
	_vala_ccode_node_unref0 (_tmp18_);
	_g_free0 (_tmp16_);
	_g_free0 (_tmp14_);
	_tmp19_ = function;
	_tmp20_ = vala_ccode_parameter_new ("parameters", "GVariant*");
	_tmp21_ = _tmp20_;
	vala_ccode_function_add_parameter (_tmp19_, _tmp21_);
	_vala_ccode_node_unref0 (_tmp21_);
	_tmp22_ = function;
	vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, _tmp22_);
	_tmp23_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp24_ = _tmp23_;
	_tmp25_ = vala_ccode_variable_declarator_new ("_arguments_iter", NULL, NULL);
	_tmp26_ = _tmp25_;
	vala_ccode_function_add_declaration (_tmp24_, "GVariantIter", (ValaCCodeDeclarator*) _tmp26_, 0);
	_vala_ccode_node_unref0 (_tmp26_);
	_tmp27_ = vala_ccode_identifier_new ("g_variant_iter_init");
	_tmp28_ = _tmp27_;
	_tmp29_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp28_);
	_tmp30_ = _tmp29_;
	_vala_ccode_node_unref0 (_tmp28_);
	iter_init = _tmp30_;
	_tmp31_ = iter_init;
	_tmp32_ = vala_ccode_identifier_new ("_arguments_iter");
	_tmp33_ = _tmp32_;
	_tmp34_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp33_);
	_tmp35_ = _tmp34_;
	vala_ccode_function_call_add_argument (_tmp31_, (ValaCCodeExpression*) _tmp35_);
	_vala_ccode_node_unref0 (_tmp35_);
	_vala_ccode_node_unref0 (_tmp33_);
	_tmp36_ = iter_init;
	_tmp37_ = vala_ccode_identifier_new ("parameters");
	_tmp38_ = _tmp37_;
	vala_ccode_function_call_add_argument (_tmp36_, (ValaCCodeExpression*) _tmp38_);
	_vala_ccode_node_unref0 (_tmp38_);
	_tmp39_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp40_ = _tmp39_;
	_tmp41_ = iter_init;
	vala_ccode_function_add_expression (_tmp40_, (ValaCCodeExpression*) _tmp41_);
	_tmp42_ = vala_ccode_identifier_new ("g_signal_emit_by_name");
	_tmp43_ = _tmp42_;
	_tmp44_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp43_);
	_tmp45_ = _tmp44_;
	_vala_ccode_node_unref0 (_tmp43_);
	ccall = _tmp45_;
	_tmp46_ = ccall;
	_tmp47_ = vala_ccode_identifier_new ("self");
	_tmp48_ = _tmp47_;
	vala_ccode_function_call_add_argument (_tmp46_, (ValaCCodeExpression*) _tmp48_);
	_vala_ccode_node_unref0 (_tmp48_);
	_tmp49_ = ccall;
	_tmp50_ = sig;
	_tmp51_ = vala_ccode_base_module_get_signal_canonical_constant ((ValaCCodeBaseModule*) self, _tmp50_, NULL);
	_tmp52_ = _tmp51_;
	vala_ccode_function_call_add_argument (_tmp49_, (ValaCCodeExpression*) _tmp52_);
	_vala_ccode_node_unref0 (_tmp52_);
	{
		ValaList* _param_list = NULL;
		ValaSignal* _tmp53_;
		ValaList* _tmp54_;
		gint _param_size = 0;
		ValaList* _tmp55_;
		gint _tmp56_;
		gint _tmp57_;
		gint _param_index = 0;
		_tmp53_ = sig;
		_tmp54_ = vala_callable_get_parameters ((ValaCallable*) _tmp53_);
		_param_list = _tmp54_;
		_tmp55_ = _param_list;
		_tmp56_ = vala_collection_get_size ((ValaCollection*) _tmp55_);
		_tmp57_ = _tmp56_;
		_param_size = _tmp57_;
		_param_index = -1;
		while (TRUE) {
			gint _tmp58_;
			gint _tmp59_;
			gint _tmp60_;
			ValaParameter* param = NULL;
			ValaList* _tmp61_;
			gint _tmp62_;
			gpointer _tmp63_;
			gchar* param_name = NULL;
			ValaParameter* _tmp64_;
			const gchar* _tmp65_;
			const gchar* _tmp66_;
			gchar* _tmp67_;
			ValaDataType* owned_type = NULL;
			ValaParameter* _tmp68_;
			ValaDataType* _tmp69_;
			ValaDataType* _tmp70_;
			ValaDataType* _tmp71_;
			ValaDataType* _tmp72_;
			ValaCCodeFunction* _tmp73_;
			ValaCCodeFunction* _tmp74_;
			ValaDataType* _tmp75_;
			gchar* _tmp76_;
			gchar* _tmp77_;
			const gchar* _tmp78_;
			ValaParameter* _tmp79_;
			ValaDataType* _tmp80_;
			ValaDataType* _tmp81_;
			ValaCCodeExpression* _tmp82_;
			ValaCCodeExpression* _tmp83_;
			ValaCCodeVariableDeclarator* _tmp84_;
			ValaCCodeVariableDeclarator* _tmp85_;
			ValaStruct* st = NULL;
			ValaParameter* _tmp86_;
			ValaDataType* _tmp87_;
			ValaDataType* _tmp88_;
			ValaTypeSymbol* _tmp89_;
			ValaTypeSymbol* _tmp90_;
			ValaStruct* _tmp91_;
			gboolean _tmp92_ = FALSE;
			ValaStruct* _tmp93_;
			ValaParameter* _tmp106_;
			ValaDataType* _tmp107_;
			ValaDataType* _tmp108_;
			ValaParameter* _tmp133_;
			ValaDataType* _tmp134_;
			ValaDataType* _tmp135_;
			ValaCCodeIdentifier* _tmp136_;
			ValaCCodeIdentifier* _tmp137_;
			const gchar* _tmp138_;
			ValaCCodeIdentifier* _tmp139_;
			ValaCCodeIdentifier* _tmp140_;
			ValaParameter* _tmp141_;
			_tmp58_ = _param_index;
			_param_index = _tmp58_ + 1;
			_tmp59_ = _param_index;
			_tmp60_ = _param_size;
			if (!(_tmp59_ < _tmp60_)) {
				break;
			}
			_tmp61_ = _param_list;
			_tmp62_ = _param_index;
			_tmp63_ = vala_list_get (_tmp61_, _tmp62_);
			param = (ValaParameter*) _tmp63_;
			_tmp64_ = param;
			_tmp65_ = vala_symbol_get_name ((ValaSymbol*) _tmp64_);
			_tmp66_ = _tmp65_;
			_tmp67_ = vala_ccode_base_module_get_variable_cname ((ValaCCodeBaseModule*) self, _tmp66_);
			param_name = _tmp67_;
			_tmp68_ = param;
			_tmp69_ = vala_variable_get_variable_type ((ValaVariable*) _tmp68_);
			_tmp70_ = _tmp69_;
			_tmp71_ = vala_data_type_copy (_tmp70_);
			owned_type = _tmp71_;
			_tmp72_ = owned_type;
			vala_data_type_set_value_owned (_tmp72_, TRUE);
			_tmp73_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp74_ = _tmp73_;
			_tmp75_ = owned_type;
			_tmp76_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp75_);
			_tmp77_ = _tmp76_;
			_tmp78_ = param_name;
			_tmp79_ = param;
			_tmp80_ = vala_variable_get_variable_type ((ValaVariable*) _tmp79_);
			_tmp81_ = _tmp80_;
			_tmp82_ = vala_ccode_base_module_default_value_for_type ((ValaCCodeBaseModule*) self, _tmp81_, TRUE);
			_tmp83_ = _tmp82_;
			_tmp84_ = vala_ccode_variable_declarator_new_zero (_tmp78_, _tmp83_, NULL);
			_tmp85_ = _tmp84_;
			vala_ccode_function_add_declaration (_tmp74_, _tmp77_, (ValaCCodeDeclarator*) _tmp85_, 0);
			_vala_ccode_node_unref0 (_tmp85_);
			_vala_ccode_node_unref0 (_tmp83_);
			_g_free0 (_tmp77_);
			_tmp86_ = param;
			_tmp87_ = vala_variable_get_variable_type ((ValaVariable*) _tmp86_);
			_tmp88_ = _tmp87_;
			_tmp89_ = vala_data_type_get_data_type (_tmp88_);
			_tmp90_ = _tmp89_;
			_tmp91_ = _vala_code_node_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp90_, VALA_TYPE_STRUCT) ? ((ValaStruct*) _tmp90_) : NULL);
			st = _tmp91_;
			_tmp93_ = st;
			if (_tmp93_ != NULL) {
				ValaStruct* _tmp94_;
				gboolean _tmp95_;
				_tmp94_ = st;
				_tmp95_ = vala_struct_is_simple_type (_tmp94_);
				_tmp92_ = !_tmp95_;
			} else {
				_tmp92_ = FALSE;
			}
			if (_tmp92_) {
				ValaCCodeFunctionCall* _tmp96_;
				const gchar* _tmp97_;
				ValaCCodeIdentifier* _tmp98_;
				ValaCCodeIdentifier* _tmp99_;
				ValaCCodeUnaryExpression* _tmp100_;
				ValaCCodeUnaryExpression* _tmp101_;
				_tmp96_ = ccall;
				_tmp97_ = param_name;
				_tmp98_ = vala_ccode_identifier_new (_tmp97_);
				_tmp99_ = _tmp98_;
				_tmp100_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp99_);
				_tmp101_ = _tmp100_;
				vala_ccode_function_call_add_argument (_tmp96_, (ValaCCodeExpression*) _tmp101_);
				_vala_ccode_node_unref0 (_tmp101_);
				_vala_ccode_node_unref0 (_tmp99_);
			} else {
				ValaCCodeFunctionCall* _tmp102_;
				const gchar* _tmp103_;
				ValaCCodeIdentifier* _tmp104_;
				ValaCCodeIdentifier* _tmp105_;
				_tmp102_ = ccall;
				_tmp103_ = param_name;
				_tmp104_ = vala_ccode_identifier_new (_tmp103_);
				_tmp105_ = _tmp104_;
				vala_ccode_function_call_add_argument (_tmp102_, (ValaCCodeExpression*) _tmp105_);
				_vala_ccode_node_unref0 (_tmp105_);
			}
			_tmp106_ = param;
			_tmp107_ = vala_variable_get_variable_type ((ValaVariable*) _tmp106_);
			_tmp108_ = _tmp107_;
			if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp108_, VALA_TYPE_ARRAY_TYPE)) {
				ValaArrayType* array_type = NULL;
				ValaParameter* _tmp109_;
				ValaDataType* _tmp110_;
				ValaDataType* _tmp111_;
				ValaArrayType* _tmp112_;
				_tmp109_ = param;
				_tmp110_ = vala_variable_get_variable_type ((ValaVariable*) _tmp109_);
				_tmp111_ = _tmp110_;
				_tmp112_ = _vala_code_node_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp111_, VALA_TYPE_ARRAY_TYPE, ValaArrayType));
				array_type = _tmp112_;
				{
					gint dim = 0;
					dim = 1;
					{
						gboolean _tmp113_ = FALSE;
						_tmp113_ = TRUE;
						while (TRUE) {
							gint _tmp115_;
							ValaArrayType* _tmp116_;
							gint _tmp117_;
							gint _tmp118_;
							gchar* length_cname = NULL;
							ValaParameter* _tmp119_;
							gint _tmp120_;
							gchar* _tmp121_;
							ValaCCodeFunction* _tmp122_;
							ValaCCodeFunction* _tmp123_;
							const gchar* _tmp124_;
							ValaCCodeConstant* _tmp125_;
							ValaCCodeConstant* _tmp126_;
							ValaCCodeVariableDeclarator* _tmp127_;
							ValaCCodeVariableDeclarator* _tmp128_;
							ValaCCodeFunctionCall* _tmp129_;
							const gchar* _tmp130_;
							ValaCCodeIdentifier* _tmp131_;
							ValaCCodeIdentifier* _tmp132_;
							if (!_tmp113_) {
								gint _tmp114_;
								_tmp114_ = dim;
								dim = _tmp114_ + 1;
							}
							_tmp113_ = FALSE;
							_tmp115_ = dim;
							_tmp116_ = array_type;
							_tmp117_ = vala_array_type_get_rank (_tmp116_);
							_tmp118_ = _tmp117_;
							if (!(_tmp115_ <= _tmp118_)) {
								break;
							}
							_tmp119_ = param;
							_tmp120_ = dim;
							_tmp121_ = vala_ccode_base_module_get_parameter_array_length_cname ((ValaCCodeBaseModule*) self, _tmp119_, _tmp120_);
							length_cname = _tmp121_;
							_tmp122_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
							_tmp123_ = _tmp122_;
							_tmp124_ = length_cname;
							_tmp125_ = vala_ccode_constant_new ("0");
							_tmp126_ = _tmp125_;
							_tmp127_ = vala_ccode_variable_declarator_new (_tmp124_, (ValaCCodeExpression*) _tmp126_, NULL);
							_tmp128_ = _tmp127_;
							vala_ccode_function_add_declaration (_tmp123_, "int", (ValaCCodeDeclarator*) _tmp128_, 0);
							_vala_ccode_node_unref0 (_tmp128_);
							_vala_ccode_node_unref0 (_tmp126_);
							_tmp129_ = ccall;
							_tmp130_ = length_cname;
							_tmp131_ = vala_ccode_identifier_new (_tmp130_);
							_tmp132_ = _tmp131_;
							vala_ccode_function_call_add_argument (_tmp129_, (ValaCCodeExpression*) _tmp132_);
							_vala_ccode_node_unref0 (_tmp132_);
							_g_free0 (length_cname);
						}
					}
				}
				_vala_code_node_unref0 (array_type);
			}
			_tmp133_ = param;
			_tmp134_ = vala_variable_get_variable_type ((ValaVariable*) _tmp133_);
			_tmp135_ = _tmp134_;
			_tmp136_ = vala_ccode_identifier_new ("_arguments_iter");
			_tmp137_ = _tmp136_;
			_tmp138_ = param_name;
			_tmp139_ = vala_ccode_identifier_new (_tmp138_);
			_tmp140_ = _tmp139_;
			_tmp141_ = param;
			vala_gvariant_module_read_expression ((ValaGVariantModule*) self, _tmp135_, (ValaCCodeExpression*) _tmp137_, (ValaCCodeExpression*) _tmp140_, (ValaSymbol*) _tmp141_, NULL, NULL);
			_vala_ccode_node_unref0 (_tmp140_);
			_vala_ccode_node_unref0 (_tmp137_);
			_vala_code_node_unref0 (st);
			_vala_code_node_unref0 (owned_type);
			_g_free0 (param_name);
			_vala_code_node_unref0 (param);
		}
		_vala_iterable_unref0 (_param_list);
	}
	_tmp142_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp143_ = _tmp142_;
	_tmp144_ = ccall;
	vala_ccode_function_add_expression (_tmp143_, (ValaCCodeExpression*) _tmp144_);
	{
		ValaList* _param_list = NULL;
		ValaSignal* _tmp145_;
		ValaList* _tmp146_;
		gint _param_size = 0;
		ValaList* _tmp147_;
		gint _tmp148_;
		gint _tmp149_;
		gint _param_index = 0;
		_tmp145_ = sig;
		_tmp146_ = vala_callable_get_parameters ((ValaCallable*) _tmp145_);
		_param_list = _tmp146_;
		_tmp147_ = _param_list;
		_tmp148_ = vala_collection_get_size ((ValaCollection*) _tmp147_);
		_tmp149_ = _tmp148_;
		_param_size = _tmp149_;
		_param_index = -1;
		while (TRUE) {
			gint _tmp150_;
			gint _tmp151_;
			gint _tmp152_;
			ValaParameter* param = NULL;
			ValaList* _tmp153_;
			gint _tmp154_;
			gpointer _tmp155_;
			ValaDataType* owned_type = NULL;
			ValaParameter* _tmp156_;
			ValaDataType* _tmp157_;
			ValaDataType* _tmp158_;
			ValaDataType* _tmp159_;
			ValaDataType* _tmp160_;
			ValaDataType* _tmp161_;
			gboolean _tmp162_;
			_tmp150_ = _param_index;
			_param_index = _tmp150_ + 1;
			_tmp151_ = _param_index;
			_tmp152_ = _param_size;
			if (!(_tmp151_ < _tmp152_)) {
				break;
			}
			_tmp153_ = _param_list;
			_tmp154_ = _param_index;
			_tmp155_ = vala_list_get (_tmp153_, _tmp154_);
			param = (ValaParameter*) _tmp155_;
			_tmp156_ = param;
			_tmp157_ = vala_variable_get_variable_type ((ValaVariable*) _tmp156_);
			_tmp158_ = _tmp157_;
			_tmp159_ = vala_data_type_copy (_tmp158_);
			owned_type = _tmp159_;
			_tmp160_ = owned_type;
			vala_data_type_set_value_owned (_tmp160_, TRUE);
			_tmp161_ = owned_type;
			_tmp162_ = vala_ccode_base_module_requires_destroy ((ValaCCodeBaseModule*) self, _tmp161_);
			if (_tmp162_) {
				ValaLocalVariable* local = NULL;
				ValaDataType* _tmp163_;
				ValaParameter* _tmp164_;
				const gchar* _tmp165_;
				const gchar* _tmp166_;
				ValaLocalVariable* _tmp167_;
				ValaCCodeFunction* _tmp168_;
				ValaCCodeFunction* _tmp169_;
				ValaLocalVariable* _tmp170_;
				ValaCCodeExpression* _tmp171_;
				ValaCCodeExpression* _tmp172_;
				_tmp163_ = owned_type;
				_tmp164_ = param;
				_tmp165_ = vala_symbol_get_name ((ValaSymbol*) _tmp164_);
				_tmp166_ = _tmp165_;
				_tmp167_ = vala_local_variable_new (_tmp163_, _tmp166_, NULL, NULL);
				local = _tmp167_;
				_tmp168_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
				_tmp169_ = _tmp168_;
				_tmp170_ = local;
				_tmp171_ = vala_ccode_base_module_destroy_local ((ValaCCodeBaseModule*) self, _tmp170_);
				_tmp172_ = _tmp171_;
				vala_ccode_function_add_expression (_tmp169_, _tmp172_);
				_vala_ccode_node_unref0 (_tmp172_);
				_vala_code_node_unref0 (local);
			}
			_vala_code_node_unref0 (owned_type);
			_vala_code_node_unref0 (param);
		}
		_vala_iterable_unref0 (_param_list);
	}
	vala_ccode_base_module_pop_function ((ValaCCodeBaseModule*) self);
	_tmp173_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp174_ = function;
	vala_ccode_file_add_function_declaration (_tmp173_, _tmp174_);
	_tmp175_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp176_ = function;
	vala_ccode_file_add_function (_tmp175_, _tmp176_);
	result = wrapper_name;
	_vala_ccode_node_unref0 (ccall);
	_vala_ccode_node_unref0 (iter_init);
	_vala_ccode_node_unref0 (function);
	return result;
}


static void vala_gd_bus_client_module_generate_signal_handler_function (ValaGDBusClientModule* self, ValaObjectTypeSymbol* sym) {
	ValaCCodeFunction* cfunc = NULL;
	ValaObjectTypeSymbol* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	ValaCCodeFunction* _tmp5_;
	ValaCCodeFunction* _tmp6_;
	ValaCCodeFunction* _tmp7_;
	ValaCCodeParameter* _tmp8_;
	ValaCCodeParameter* _tmp9_;
	ValaCCodeFunction* _tmp10_;
	ValaCCodeParameter* _tmp11_;
	ValaCCodeParameter* _tmp12_;
	ValaCCodeFunction* _tmp13_;
	ValaCCodeParameter* _tmp14_;
	ValaCCodeParameter* _tmp15_;
	ValaCCodeFunction* _tmp16_;
	ValaCCodeParameter* _tmp17_;
	ValaCCodeParameter* _tmp18_;
	ValaCCodeFunction* _tmp19_;
	ValaCCodeFunction* _tmp20_;
	ValaCCodeModifiers _tmp21_;
	ValaCCodeModifiers _tmp22_;
	ValaCCodeFile* _tmp23_;
	ValaCCodeFunction* _tmp24_;
	ValaCCodeFunction* _tmp25_;
	gboolean firstif = FALSE;
	gboolean _tmp92_;
	ValaCCodeFile* _tmp95_;
	ValaCCodeFunction* _tmp96_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (sym != NULL);
	_tmp0_ = sym;
	_tmp1_ = vala_ccode_base_module_get_ccode_lower_case_prefix ((ValaSymbol*) _tmp0_);
	_tmp2_ = _tmp1_;
	_tmp3_ = g_strconcat (_tmp2_, "proxy_g_signal", NULL);
	_tmp4_ = _tmp3_;
	_tmp5_ = vala_ccode_function_new (_tmp4_, "void");
	_tmp6_ = _tmp5_;
	_g_free0 (_tmp4_);
	_g_free0 (_tmp2_);
	cfunc = _tmp6_;
	_tmp7_ = cfunc;
	_tmp8_ = vala_ccode_parameter_new ("proxy", "GDBusProxy*");
	_tmp9_ = _tmp8_;
	vala_ccode_function_add_parameter (_tmp7_, _tmp9_);
	_vala_ccode_node_unref0 (_tmp9_);
	_tmp10_ = cfunc;
	_tmp11_ = vala_ccode_parameter_new ("sender_name", "const gchar*");
	_tmp12_ = _tmp11_;
	vala_ccode_function_add_parameter (_tmp10_, _tmp12_);
	_vala_ccode_node_unref0 (_tmp12_);
	_tmp13_ = cfunc;
	_tmp14_ = vala_ccode_parameter_new ("signal_name", "const gchar*");
	_tmp15_ = _tmp14_;
	vala_ccode_function_add_parameter (_tmp13_, _tmp15_);
	_vala_ccode_node_unref0 (_tmp15_);
	_tmp16_ = cfunc;
	_tmp17_ = vala_ccode_parameter_new ("parameters", "GVariant*");
	_tmp18_ = _tmp17_;
	vala_ccode_function_add_parameter (_tmp16_, _tmp18_);
	_vala_ccode_node_unref0 (_tmp18_);
	_tmp19_ = cfunc;
	_tmp20_ = cfunc;
	_tmp21_ = vala_ccode_node_get_modifiers ((ValaCCodeNode*) _tmp20_);
	_tmp22_ = _tmp21_;
	vala_ccode_node_set_modifiers ((ValaCCodeNode*) _tmp20_, _tmp22_ | VALA_CCODE_MODIFIERS_STATIC);
	_tmp23_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp24_ = cfunc;
	vala_ccode_file_add_function_declaration (_tmp23_, _tmp24_);
	_tmp25_ = cfunc;
	vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, _tmp25_);
	firstif = TRUE;
	{
		ValaList* _sig_list = NULL;
		ValaObjectTypeSymbol* _tmp26_;
		ValaList* _tmp27_;
		gint _sig_size = 0;
		ValaList* _tmp28_;
		gint _tmp29_;
		gint _tmp30_;
		gint _sig_index = 0;
		_tmp26_ = sym;
		_tmp27_ = vala_object_type_symbol_get_signals (_tmp26_);
		_sig_list = _tmp27_;
		_tmp28_ = _sig_list;
		_tmp29_ = vala_collection_get_size ((ValaCollection*) _tmp28_);
		_tmp30_ = _tmp29_;
		_sig_size = _tmp30_;
		_sig_index = -1;
		while (TRUE) {
			gint _tmp31_;
			gint _tmp32_;
			gint _tmp33_;
			ValaSignal* sig = NULL;
			ValaList* _tmp34_;
			gint _tmp35_;
			gpointer _tmp36_;
			ValaSignal* _tmp37_;
			ValaSymbolAccessibility _tmp38_;
			ValaSymbolAccessibility _tmp39_;
			ValaCCodeFile* _tmp40_;
			ValaCCodeFunctionCall* ccheck = NULL;
			ValaCCodeIdentifier* _tmp41_;
			ValaCCodeIdentifier* _tmp42_;
			ValaCCodeFunctionCall* _tmp43_;
			ValaCCodeFunctionCall* _tmp44_;
			ValaCCodeFunctionCall* _tmp45_;
			ValaCCodeIdentifier* _tmp46_;
			ValaCCodeIdentifier* _tmp47_;
			ValaCCodeFunctionCall* _tmp48_;
			ValaSignal* _tmp49_;
			gchar* _tmp50_;
			gchar* _tmp51_;
			gchar* _tmp52_;
			gchar* _tmp53_;
			ValaCCodeConstant* _tmp54_;
			ValaCCodeConstant* _tmp55_;
			ValaCCodeBinaryExpression* cond = NULL;
			ValaCCodeFunctionCall* _tmp56_;
			ValaCCodeConstant* _tmp57_;
			ValaCCodeConstant* _tmp58_;
			ValaCCodeBinaryExpression* _tmp59_;
			ValaCCodeBinaryExpression* _tmp60_;
			gboolean _tmp61_;
			ValaCCodeFunctionCall* ccall = NULL;
			ValaSignal* _tmp68_;
			ValaObjectTypeSymbol* _tmp69_;
			gchar* _tmp70_;
			gchar* _tmp71_;
			ValaCCodeIdentifier* _tmp72_;
			ValaCCodeIdentifier* _tmp73_;
			ValaCCodeFunctionCall* _tmp74_;
			ValaCCodeFunctionCall* _tmp75_;
			ValaCCodeFunctionCall* _tmp76_;
			ValaCCodeIdentifier* _tmp77_;
			ValaCCodeIdentifier* _tmp78_;
			ValaObjectTypeSymbol* _tmp79_;
			gchar* _tmp80_;
			gchar* _tmp81_;
			gchar* _tmp82_;
			gchar* _tmp83_;
			ValaCCodeCastExpression* _tmp84_;
			ValaCCodeCastExpression* _tmp85_;
			ValaCCodeFunctionCall* _tmp86_;
			ValaCCodeIdentifier* _tmp87_;
			ValaCCodeIdentifier* _tmp88_;
			ValaCCodeFunction* _tmp89_;
			ValaCCodeFunction* _tmp90_;
			ValaCCodeFunctionCall* _tmp91_;
			_tmp31_ = _sig_index;
			_sig_index = _tmp31_ + 1;
			_tmp32_ = _sig_index;
			_tmp33_ = _sig_size;
			if (!(_tmp32_ < _tmp33_)) {
				break;
			}
			_tmp34_ = _sig_list;
			_tmp35_ = _sig_index;
			_tmp36_ = vala_list_get (_tmp34_, _tmp35_);
			sig = (ValaSignal*) _tmp36_;
			_tmp37_ = sig;
			_tmp38_ = vala_symbol_get_access ((ValaSymbol*) _tmp37_);
			_tmp39_ = _tmp38_;
			if (_tmp39_ != VALA_SYMBOL_ACCESSIBILITY_PUBLIC) {
				_vala_code_node_unref0 (sig);
				continue;
			}
			_tmp40_ = ((ValaCCodeBaseModule*) self)->cfile;
			vala_ccode_file_add_include (_tmp40_, "string.h", FALSE);
			_tmp41_ = vala_ccode_identifier_new ("strcmp");
			_tmp42_ = _tmp41_;
			_tmp43_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp42_);
			_tmp44_ = _tmp43_;
			_vala_ccode_node_unref0 (_tmp42_);
			ccheck = _tmp44_;
			_tmp45_ = ccheck;
			_tmp46_ = vala_ccode_identifier_new ("signal_name");
			_tmp47_ = _tmp46_;
			vala_ccode_function_call_add_argument (_tmp45_, (ValaCCodeExpression*) _tmp47_);
			_vala_ccode_node_unref0 (_tmp47_);
			_tmp48_ = ccheck;
			_tmp49_ = sig;
			_tmp50_ = vala_gd_bus_module_get_dbus_name_for_member ((ValaSymbol*) _tmp49_);
			_tmp51_ = _tmp50_;
			_tmp52_ = g_strdup_printf ("\"%s\"", _tmp51_);
			_tmp53_ = _tmp52_;
			_tmp54_ = vala_ccode_constant_new (_tmp53_);
			_tmp55_ = _tmp54_;
			vala_ccode_function_call_add_argument (_tmp48_, (ValaCCodeExpression*) _tmp55_);
			_vala_ccode_node_unref0 (_tmp55_);
			_g_free0 (_tmp53_);
			_g_free0 (_tmp51_);
			_tmp56_ = ccheck;
			_tmp57_ = vala_ccode_constant_new ("0");
			_tmp58_ = _tmp57_;
			_tmp59_ = vala_ccode_binary_expression_new (VALA_CCODE_BINARY_OPERATOR_EQUALITY, (ValaCCodeExpression*) _tmp56_, (ValaCCodeExpression*) _tmp58_);
			_tmp60_ = _tmp59_;
			_vala_ccode_node_unref0 (_tmp58_);
			cond = _tmp60_;
			_tmp61_ = firstif;
			if (_tmp61_) {
				ValaCCodeFunction* _tmp62_;
				ValaCCodeFunction* _tmp63_;
				ValaCCodeBinaryExpression* _tmp64_;
				_tmp62_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
				_tmp63_ = _tmp62_;
				_tmp64_ = cond;
				vala_ccode_function_open_if (_tmp63_, (ValaCCodeExpression*) _tmp64_);
				firstif = FALSE;
			} else {
				ValaCCodeFunction* _tmp65_;
				ValaCCodeFunction* _tmp66_;
				ValaCCodeBinaryExpression* _tmp67_;
				_tmp65_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
				_tmp66_ = _tmp65_;
				_tmp67_ = cond;
				vala_ccode_function_else_if (_tmp66_, (ValaCCodeExpression*) _tmp67_);
			}
			_tmp68_ = sig;
			_tmp69_ = sym;
			_tmp70_ = vala_gd_bus_client_module_generate_dbus_signal_handler (self, _tmp68_, _tmp69_);
			_tmp71_ = _tmp70_;
			_tmp72_ = vala_ccode_identifier_new (_tmp71_);
			_tmp73_ = _tmp72_;
			_tmp74_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp73_);
			_tmp75_ = _tmp74_;
			_vala_ccode_node_unref0 (_tmp73_);
			_g_free0 (_tmp71_);
			ccall = _tmp75_;
			_tmp76_ = ccall;
			_tmp77_ = vala_ccode_identifier_new ("proxy");
			_tmp78_ = _tmp77_;
			_tmp79_ = sym;
			_tmp80_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp79_);
			_tmp81_ = _tmp80_;
			_tmp82_ = g_strconcat (_tmp81_, "*", NULL);
			_tmp83_ = _tmp82_;
			_tmp84_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) _tmp78_, _tmp83_);
			_tmp85_ = _tmp84_;
			vala_ccode_function_call_add_argument (_tmp76_, (ValaCCodeExpression*) _tmp85_);
			_vala_ccode_node_unref0 (_tmp85_);
			_g_free0 (_tmp83_);
			_g_free0 (_tmp81_);
			_vala_ccode_node_unref0 (_tmp78_);
			_tmp86_ = ccall;
			_tmp87_ = vala_ccode_identifier_new ("parameters");
			_tmp88_ = _tmp87_;
			vala_ccode_function_call_add_argument (_tmp86_, (ValaCCodeExpression*) _tmp88_);
			_vala_ccode_node_unref0 (_tmp88_);
			_tmp89_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp90_ = _tmp89_;
			_tmp91_ = ccall;
			vala_ccode_function_add_expression (_tmp90_, (ValaCCodeExpression*) _tmp91_);
			_vala_ccode_node_unref0 (ccall);
			_vala_ccode_node_unref0 (cond);
			_vala_ccode_node_unref0 (ccheck);
			_vala_code_node_unref0 (sig);
		}
		_vala_iterable_unref0 (_sig_list);
	}
	_tmp92_ = firstif;
	if (!_tmp92_) {
		ValaCCodeFunction* _tmp93_;
		ValaCCodeFunction* _tmp94_;
		_tmp93_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp94_ = _tmp93_;
		vala_ccode_function_close (_tmp94_);
	}
	vala_ccode_base_module_pop_function ((ValaCCodeBaseModule*) self);
	_tmp95_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp96_ = cfunc;
	vala_ccode_file_add_function (_tmp95_, _tmp96_);
	_vala_ccode_node_unref0 (cfunc);
}


static void vala_gd_bus_client_module_generate_marshalling (ValaGDBusClientModule* self, ValaMethod* m, ValaGDBusClientModuleCallType call_type, const gchar* iface_name, const gchar* method_name, gint method_timeout) {
	ValaCCodeCastExpression* gdbusproxy = NULL;
	ValaCCodeIdentifier* _tmp0_;
	ValaCCodeIdentifier* _tmp1_;
	ValaCCodeCastExpression* _tmp2_;
	ValaCCodeCastExpression* _tmp3_;
	ValaCCodeFunctionCall* connection = NULL;
	ValaCCodeIdentifier* _tmp4_;
	ValaCCodeIdentifier* _tmp5_;
	ValaCCodeFunctionCall* _tmp6_;
	ValaCCodeFunctionCall* _tmp7_;
	ValaCCodeFunctionCall* _tmp8_;
	ValaCCodeCastExpression* _tmp9_;
	gboolean uses_fd = FALSE;
	ValaMethod* _tmp10_;
	gboolean _tmp11_;
	gboolean _tmp12_;
	gboolean has_error_argument = FALSE;
	ValaMethod* _tmp14_;
	ValaList* _tmp15_;
	ValaList* _tmp16_;
	gint _tmp17_;
	gint _tmp18_;
	gboolean _tmp19_;
	ValaCCodeExpression* error_argument = NULL;
	gboolean _tmp20_;
	ValaGDBusClientModuleCallType _tmp23_;
	gboolean _tmp456_ = FALSE;
	ValaGDBusClientModuleCallType _tmp457_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (m != NULL);
	_tmp0_ = vala_ccode_identifier_new ("self");
	_tmp1_ = _tmp0_;
	_tmp2_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) _tmp1_, "GDBusProxy *");
	_tmp3_ = _tmp2_;
	_vala_ccode_node_unref0 (_tmp1_);
	gdbusproxy = _tmp3_;
	_tmp4_ = vala_ccode_identifier_new ("g_dbus_proxy_get_connection");
	_tmp5_ = _tmp4_;
	_tmp6_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp5_);
	_tmp7_ = _tmp6_;
	_vala_ccode_node_unref0 (_tmp5_);
	connection = _tmp7_;
	_tmp8_ = connection;
	_tmp9_ = gdbusproxy;
	vala_ccode_function_call_add_argument (_tmp8_, (ValaCCodeExpression*) _tmp9_);
	_tmp10_ = m;
	_tmp11_ = vala_gd_bus_module_dbus_method_uses_file_descriptor ((ValaGDBusModule*) self, _tmp10_);
	uses_fd = _tmp11_;
	_tmp12_ = uses_fd;
	if (_tmp12_) {
		ValaCCodeFile* _tmp13_;
		_tmp13_ = ((ValaCCodeBaseModule*) self)->cfile;
		vala_ccode_file_add_include (_tmp13_, "gio/gunixfdlist.h", FALSE);
	}
	_tmp14_ = m;
	_tmp15_ = vala_code_node_get_error_types ((ValaCodeNode*) _tmp14_);
	_tmp16_ = _tmp15_;
	_tmp17_ = vala_collection_get_size ((ValaCollection*) _tmp16_);
	_tmp18_ = _tmp17_;
	_tmp19_ = _tmp18_ > 0;
	_vala_iterable_unref0 (_tmp16_);
	has_error_argument = _tmp19_;
	_tmp20_ = has_error_argument;
	if (_tmp20_) {
		ValaCCodeIdentifier* _tmp21_;
		_tmp21_ = vala_ccode_identifier_new ("error");
		_vala_ccode_node_unref0 (error_argument);
		error_argument = (ValaCCodeExpression*) _tmp21_;
	} else {
		ValaCCodeConstant* _tmp22_;
		_tmp22_ = vala_ccode_constant_new ("NULL");
		_vala_ccode_node_unref0 (error_argument);
		error_argument = (ValaCCodeExpression*) _tmp22_;
	}
	_tmp23_ = call_type;
	if (_tmp23_ != VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_FINISH) {
		ValaCCodeFunctionCall* destination = NULL;
		ValaCCodeIdentifier* _tmp24_;
		ValaCCodeIdentifier* _tmp25_;
		ValaCCodeFunctionCall* _tmp26_;
		ValaCCodeFunctionCall* _tmp27_;
		ValaCCodeFunctionCall* _tmp28_;
		ValaCCodeCastExpression* _tmp29_;
		ValaCCodeFunctionCall* interface_name = NULL;
		ValaCCodeIdentifier* _tmp30_;
		ValaCCodeIdentifier* _tmp31_;
		ValaCCodeFunctionCall* _tmp32_;
		ValaCCodeFunctionCall* _tmp33_;
		ValaCCodeFunctionCall* _tmp34_;
		ValaCCodeCastExpression* _tmp35_;
		ValaCCodeFunctionCall* object_path = NULL;
		ValaCCodeIdentifier* _tmp36_;
		ValaCCodeIdentifier* _tmp37_;
		ValaCCodeFunctionCall* _tmp38_;
		ValaCCodeFunctionCall* _tmp39_;
		ValaCCodeFunctionCall* _tmp40_;
		ValaCCodeCastExpression* _tmp41_;
		ValaCCodeExpression* timeout = NULL;
		gint _tmp42_;
		ValaCCodeFunction* _tmp77_;
		ValaCCodeFunction* _tmp78_;
		ValaCCodeVariableDeclarator* _tmp79_;
		ValaCCodeVariableDeclarator* _tmp80_;
		ValaCCodeFunctionCall* ccall = NULL;
		ValaCCodeIdentifier* _tmp81_;
		ValaCCodeIdentifier* _tmp82_;
		ValaCCodeFunctionCall* _tmp83_;
		ValaCCodeFunctionCall* _tmp84_;
		ValaCCodeFunctionCall* _tmp85_;
		ValaCCodeFunctionCall* _tmp86_;
		ValaCCodeFunctionCall* _tmp87_;
		ValaCCodeFunctionCall* _tmp88_;
		const gchar* _tmp89_;
		ValaCCodeFunctionCall* _tmp98_;
		const gchar* _tmp99_;
		gchar* _tmp100_;
		gchar* _tmp101_;
		ValaCCodeConstant* _tmp102_;
		ValaCCodeConstant* _tmp103_;
		ValaCCodeFunction* _tmp104_;
		ValaCCodeFunction* _tmp105_;
		ValaCCodeIdentifier* _tmp106_;
		ValaCCodeIdentifier* _tmp107_;
		ValaCCodeFunctionCall* _tmp108_;
		ValaCCodeFunction* _tmp109_;
		ValaCCodeFunction* _tmp110_;
		ValaCCodeVariableDeclarator* _tmp111_;
		ValaCCodeVariableDeclarator* _tmp112_;
		ValaCCodeFunction* _tmp113_;
		ValaCCodeFunction* _tmp114_;
		ValaCCodeVariableDeclarator* _tmp115_;
		ValaCCodeVariableDeclarator* _tmp116_;
		ValaCCodeFunctionCall* builder_init = NULL;
		ValaCCodeIdentifier* _tmp117_;
		ValaCCodeIdentifier* _tmp118_;
		ValaCCodeFunctionCall* _tmp119_;
		ValaCCodeFunctionCall* _tmp120_;
		ValaCCodeFunctionCall* _tmp121_;
		ValaCCodeIdentifier* _tmp122_;
		ValaCCodeIdentifier* _tmp123_;
		ValaCCodeUnaryExpression* _tmp124_;
		ValaCCodeUnaryExpression* _tmp125_;
		ValaCCodeFunctionCall* _tmp126_;
		ValaCCodeIdentifier* _tmp127_;
		ValaCCodeIdentifier* _tmp128_;
		ValaCCodeFunction* _tmp129_;
		ValaCCodeFunction* _tmp130_;
		ValaCCodeFunctionCall* _tmp131_;
		gboolean _tmp132_;
		ValaCCodeExpression* cancellable = NULL;
		ValaCCodeConstant* _tmp141_;
		ValaCCodeFunctionCall* builder_end = NULL;
		ValaCCodeIdentifier* _tmp200_;
		ValaCCodeIdentifier* _tmp201_;
		ValaCCodeFunctionCall* _tmp202_;
		ValaCCodeFunctionCall* _tmp203_;
		ValaCCodeFunctionCall* _tmp204_;
		ValaCCodeIdentifier* _tmp205_;
		ValaCCodeIdentifier* _tmp206_;
		ValaCCodeUnaryExpression* _tmp207_;
		ValaCCodeUnaryExpression* _tmp208_;
		ValaCCodeFunction* _tmp209_;
		ValaCCodeFunction* _tmp210_;
		ValaCCodeIdentifier* _tmp211_;
		ValaCCodeIdentifier* _tmp212_;
		ValaCCodeFunctionCall* _tmp213_;
		ValaCCodeFunctionCall* set_body = NULL;
		ValaCCodeIdentifier* _tmp214_;
		ValaCCodeIdentifier* _tmp215_;
		ValaCCodeFunctionCall* _tmp216_;
		ValaCCodeFunctionCall* _tmp217_;
		ValaCCodeFunctionCall* _tmp218_;
		ValaCCodeIdentifier* _tmp219_;
		ValaCCodeIdentifier* _tmp220_;
		ValaCCodeFunctionCall* _tmp221_;
		ValaCCodeIdentifier* _tmp222_;
		ValaCCodeIdentifier* _tmp223_;
		ValaCCodeFunction* _tmp224_;
		ValaCCodeFunction* _tmp225_;
		ValaCCodeFunctionCall* _tmp226_;
		gboolean _tmp227_;
		ValaGDBusClientModuleCallType _tmp249_;
		ValaCCodeIdentifier* _tmp379_;
		ValaCCodeIdentifier* _tmp380_;
		ValaCCodeFunctionCall* _tmp381_;
		ValaCCodeFunctionCall* _tmp382_;
		ValaCCodeIdentifier* _tmp383_;
		ValaCCodeIdentifier* _tmp384_;
		ValaCCodeFunction* _tmp385_;
		ValaCCodeFunction* _tmp386_;
		ValaCCodeFunctionCall* _tmp387_;
		_tmp24_ = vala_ccode_identifier_new ("g_dbus_proxy_get_name");
		_tmp25_ = _tmp24_;
		_tmp26_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp25_);
		_tmp27_ = _tmp26_;
		_vala_ccode_node_unref0 (_tmp25_);
		destination = _tmp27_;
		_tmp28_ = destination;
		_tmp29_ = gdbusproxy;
		vala_ccode_function_call_add_argument (_tmp28_, (ValaCCodeExpression*) _tmp29_);
		_tmp30_ = vala_ccode_identifier_new ("g_dbus_proxy_get_interface_name");
		_tmp31_ = _tmp30_;
		_tmp32_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp31_);
		_tmp33_ = _tmp32_;
		_vala_ccode_node_unref0 (_tmp31_);
		interface_name = _tmp33_;
		_tmp34_ = interface_name;
		_tmp35_ = gdbusproxy;
		vala_ccode_function_call_add_argument (_tmp34_, (ValaCCodeExpression*) _tmp35_);
		_tmp36_ = vala_ccode_identifier_new ("g_dbus_proxy_get_object_path");
		_tmp37_ = _tmp36_;
		_tmp38_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp37_);
		_tmp39_ = _tmp38_;
		_vala_ccode_node_unref0 (_tmp37_);
		object_path = _tmp39_;
		_tmp40_ = object_path;
		_tmp41_ = gdbusproxy;
		vala_ccode_function_call_add_argument (_tmp40_, (ValaCCodeExpression*) _tmp41_);
		_tmp42_ = method_timeout;
		if (_tmp42_ <= 0) {
			ValaCCodeIdentifier* _tmp43_;
			ValaCCodeIdentifier* _tmp44_;
			ValaCCodeFunctionCall* _tmp45_;
			ValaCCodeExpression* _tmp46_;
			ValaCCodeCastExpression* _tmp47_;
			_tmp43_ = vala_ccode_identifier_new ("g_dbus_proxy_get_default_timeout");
			_tmp44_ = _tmp43_;
			_tmp45_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp44_);
			_vala_ccode_node_unref0 (timeout);
			timeout = (ValaCCodeExpression*) _tmp45_;
			_vala_ccode_node_unref0 (_tmp44_);
			_tmp46_ = timeout;
			_tmp47_ = gdbusproxy;
			vala_ccode_function_call_add_argument (G_TYPE_CHECK_INSTANCE_CAST (_tmp46_, VALA_TYPE_CCODE_FUNCTION_CALL, ValaCCodeFunctionCall), (ValaCCodeExpression*) _tmp47_);
		} else {
			gint _tmp48_;
			gchar* _tmp49_;
			gchar* _tmp50_;
			ValaCCodeConstant* _tmp51_;
			_tmp48_ = method_timeout;
			_tmp49_ = g_strdup_printf ("%d", _tmp48_);
			_tmp50_ = _tmp49_;
			_tmp51_ = vala_ccode_constant_new (_tmp50_);
			_vala_ccode_node_unref0 (timeout);
			timeout = (ValaCCodeExpression*) _tmp51_;
			_g_free0 (_tmp50_);
		}
		{
			ValaList* _error_type_list = NULL;
			ValaMethod* _tmp52_;
			ValaList* _tmp53_;
			gint _error_type_size = 0;
			ValaList* _tmp54_;
			gint _tmp55_;
			gint _tmp56_;
			gint _error_type_index = 0;
			_tmp52_ = m;
			_tmp53_ = vala_code_node_get_error_types ((ValaCodeNode*) _tmp52_);
			_error_type_list = _tmp53_;
			_tmp54_ = _error_type_list;
			_tmp55_ = vala_collection_get_size ((ValaCollection*) _tmp54_);
			_tmp56_ = _tmp55_;
			_error_type_size = _tmp56_;
			_error_type_index = -1;
			while (TRUE) {
				gint _tmp57_;
				gint _tmp58_;
				gint _tmp59_;
				ValaDataType* error_type = NULL;
				ValaList* _tmp60_;
				gint _tmp61_;
				gpointer _tmp62_;
				ValaErrorType* errtype = NULL;
				ValaDataType* _tmp63_;
				ValaErrorType* _tmp64_;
				ValaErrorType* _tmp65_;
				ValaErrorDomain* _tmp66_;
				ValaErrorDomain* _tmp67_;
				_tmp57_ = _error_type_index;
				_error_type_index = _tmp57_ + 1;
				_tmp58_ = _error_type_index;
				_tmp59_ = _error_type_size;
				if (!(_tmp58_ < _tmp59_)) {
					break;
				}
				_tmp60_ = _error_type_list;
				_tmp61_ = _error_type_index;
				_tmp62_ = vala_list_get (_tmp60_, _tmp61_);
				error_type = (ValaDataType*) _tmp62_;
				_tmp63_ = error_type;
				_tmp64_ = _vala_code_node_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp63_, VALA_TYPE_ERROR_TYPE, ValaErrorType));
				errtype = _tmp64_;
				_tmp65_ = errtype;
				_tmp66_ = vala_error_type_get_error_domain (_tmp65_);
				_tmp67_ = _tmp66_;
				if (_tmp67_ != NULL) {
					ValaCCodeFunction* _tmp68_;
					ValaCCodeFunction* _tmp69_;
					ValaErrorType* _tmp70_;
					ValaErrorDomain* _tmp71_;
					ValaErrorDomain* _tmp72_;
					gchar* _tmp73_;
					gchar* _tmp74_;
					ValaCCodeIdentifier* _tmp75_;
					ValaCCodeIdentifier* _tmp76_;
					_tmp68_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
					_tmp69_ = _tmp68_;
					_tmp70_ = errtype;
					_tmp71_ = vala_error_type_get_error_domain (_tmp70_);
					_tmp72_ = _tmp71_;
					_tmp73_ = vala_ccode_base_module_get_ccode_upper_case_name ((ValaSymbol*) _tmp72_, NULL);
					_tmp74_ = _tmp73_;
					_tmp75_ = vala_ccode_identifier_new (_tmp74_);
					_tmp76_ = _tmp75_;
					vala_ccode_function_add_expression (_tmp69_, (ValaCCodeExpression*) _tmp76_);
					_vala_ccode_node_unref0 (_tmp76_);
					_g_free0 (_tmp74_);
				}
				_vala_code_node_unref0 (errtype);
				_vala_code_node_unref0 (error_type);
			}
			_vala_iterable_unref0 (_error_type_list);
		}
		_tmp77_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp78_ = _tmp77_;
		_tmp79_ = vala_ccode_variable_declarator_new ("*_message", NULL, NULL);
		_tmp80_ = _tmp79_;
		vala_ccode_function_add_declaration (_tmp78_, "GDBusMessage", (ValaCCodeDeclarator*) _tmp80_, 0);
		_vala_ccode_node_unref0 (_tmp80_);
		_tmp81_ = vala_ccode_identifier_new ("g_dbus_message_new_method_call");
		_tmp82_ = _tmp81_;
		_tmp83_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp82_);
		_tmp84_ = _tmp83_;
		_vala_ccode_node_unref0 (_tmp82_);
		ccall = _tmp84_;
		_tmp85_ = ccall;
		_tmp86_ = destination;
		vala_ccode_function_call_add_argument (_tmp85_, (ValaCCodeExpression*) _tmp86_);
		_tmp87_ = ccall;
		_tmp88_ = object_path;
		vala_ccode_function_call_add_argument (_tmp87_, (ValaCCodeExpression*) _tmp88_);
		_tmp89_ = iface_name;
		if (_tmp89_ != NULL) {
			ValaCCodeFunctionCall* _tmp90_;
			const gchar* _tmp91_;
			gchar* _tmp92_;
			gchar* _tmp93_;
			ValaCCodeConstant* _tmp94_;
			ValaCCodeConstant* _tmp95_;
			_tmp90_ = ccall;
			_tmp91_ = iface_name;
			_tmp92_ = g_strdup_printf ("\"%s\"", _tmp91_);
			_tmp93_ = _tmp92_;
			_tmp94_ = vala_ccode_constant_new (_tmp93_);
			_tmp95_ = _tmp94_;
			vala_ccode_function_call_add_argument (_tmp90_, (ValaCCodeExpression*) _tmp95_);
			_vala_ccode_node_unref0 (_tmp95_);
			_g_free0 (_tmp93_);
		} else {
			ValaCCodeFunctionCall* _tmp96_;
			ValaCCodeFunctionCall* _tmp97_;
			_tmp96_ = ccall;
			_tmp97_ = interface_name;
			vala_ccode_function_call_add_argument (_tmp96_, (ValaCCodeExpression*) _tmp97_);
		}
		_tmp98_ = ccall;
		_tmp99_ = method_name;
		_tmp100_ = g_strdup_printf ("\"%s\"", _tmp99_);
		_tmp101_ = _tmp100_;
		_tmp102_ = vala_ccode_constant_new (_tmp101_);
		_tmp103_ = _tmp102_;
		vala_ccode_function_call_add_argument (_tmp98_, (ValaCCodeExpression*) _tmp103_);
		_vala_ccode_node_unref0 (_tmp103_);
		_g_free0 (_tmp101_);
		_tmp104_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp105_ = _tmp104_;
		_tmp106_ = vala_ccode_identifier_new ("_message");
		_tmp107_ = _tmp106_;
		_tmp108_ = ccall;
		vala_ccode_function_add_assignment (_tmp105_, (ValaCCodeExpression*) _tmp107_, (ValaCCodeExpression*) _tmp108_);
		_vala_ccode_node_unref0 (_tmp107_);
		_tmp109_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp110_ = _tmp109_;
		_tmp111_ = vala_ccode_variable_declarator_new ("*_arguments", NULL, NULL);
		_tmp112_ = _tmp111_;
		vala_ccode_function_add_declaration (_tmp110_, "GVariant", (ValaCCodeDeclarator*) _tmp112_, 0);
		_vala_ccode_node_unref0 (_tmp112_);
		_tmp113_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp114_ = _tmp113_;
		_tmp115_ = vala_ccode_variable_declarator_new ("_arguments_builder", NULL, NULL);
		_tmp116_ = _tmp115_;
		vala_ccode_function_add_declaration (_tmp114_, "GVariantBuilder", (ValaCCodeDeclarator*) _tmp116_, 0);
		_vala_ccode_node_unref0 (_tmp116_);
		_tmp117_ = vala_ccode_identifier_new ("g_variant_builder_init");
		_tmp118_ = _tmp117_;
		_tmp119_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp118_);
		_tmp120_ = _tmp119_;
		_vala_ccode_node_unref0 (_tmp118_);
		builder_init = _tmp120_;
		_tmp121_ = builder_init;
		_tmp122_ = vala_ccode_identifier_new ("_arguments_builder");
		_tmp123_ = _tmp122_;
		_tmp124_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp123_);
		_tmp125_ = _tmp124_;
		vala_ccode_function_call_add_argument (_tmp121_, (ValaCCodeExpression*) _tmp125_);
		_vala_ccode_node_unref0 (_tmp125_);
		_vala_ccode_node_unref0 (_tmp123_);
		_tmp126_ = builder_init;
		_tmp127_ = vala_ccode_identifier_new ("G_VARIANT_TYPE_TUPLE");
		_tmp128_ = _tmp127_;
		vala_ccode_function_call_add_argument (_tmp126_, (ValaCCodeExpression*) _tmp128_);
		_vala_ccode_node_unref0 (_tmp128_);
		_tmp129_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp130_ = _tmp129_;
		_tmp131_ = builder_init;
		vala_ccode_function_add_expression (_tmp130_, (ValaCCodeExpression*) _tmp131_);
		_tmp132_ = uses_fd;
		if (_tmp132_) {
			ValaCCodeFunction* _tmp133_;
			ValaCCodeFunction* _tmp134_;
			ValaCCodeIdentifier* _tmp135_;
			ValaCCodeIdentifier* _tmp136_;
			ValaCCodeIdentifier* _tmp137_;
			ValaCCodeIdentifier* _tmp138_;
			ValaCCodeFunctionCall* _tmp139_;
			ValaCCodeFunctionCall* _tmp140_;
			_tmp133_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp134_ = _tmp133_;
			_tmp135_ = vala_ccode_identifier_new ("_fd_list");
			_tmp136_ = _tmp135_;
			_tmp137_ = vala_ccode_identifier_new ("g_unix_fd_list_new");
			_tmp138_ = _tmp137_;
			_tmp139_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp138_);
			_tmp140_ = _tmp139_;
			vala_ccode_function_add_assignment (_tmp134_, (ValaCCodeExpression*) _tmp136_, (ValaCCodeExpression*) _tmp140_);
			_vala_ccode_node_unref0 (_tmp140_);
			_vala_ccode_node_unref0 (_tmp138_);
			_vala_ccode_node_unref0 (_tmp136_);
		}
		_tmp141_ = vala_ccode_constant_new ("NULL");
		cancellable = (ValaCCodeExpression*) _tmp141_;
		{
			ValaList* _param_list = NULL;
			ValaMethod* _tmp142_;
			ValaList* _tmp143_;
			gint _param_size = 0;
			ValaList* _tmp144_;
			gint _tmp145_;
			gint _tmp146_;
			gint _param_index = 0;
			_tmp142_ = m;
			_tmp143_ = vala_callable_get_parameters ((ValaCallable*) _tmp142_);
			_param_list = _tmp143_;
			_tmp144_ = _param_list;
			_tmp145_ = vala_collection_get_size ((ValaCollection*) _tmp144_);
			_tmp146_ = _tmp145_;
			_param_size = _tmp146_;
			_param_index = -1;
			while (TRUE) {
				gint _tmp147_;
				gint _tmp148_;
				gint _tmp149_;
				ValaParameter* param = NULL;
				ValaList* _tmp150_;
				gint _tmp151_;
				gpointer _tmp152_;
				ValaParameter* _tmp153_;
				ValaParameterDirection _tmp154_;
				ValaParameterDirection _tmp155_;
				_tmp147_ = _param_index;
				_param_index = _tmp147_ + 1;
				_tmp148_ = _param_index;
				_tmp149_ = _param_size;
				if (!(_tmp148_ < _tmp149_)) {
					break;
				}
				_tmp150_ = _param_list;
				_tmp151_ = _param_index;
				_tmp152_ = vala_list_get (_tmp150_, _tmp151_);
				param = (ValaParameter*) _tmp152_;
				_tmp153_ = param;
				_tmp154_ = vala_parameter_get_direction (_tmp153_);
				_tmp155_ = _tmp154_;
				if (_tmp155_ == VALA_PARAMETER_DIRECTION_IN) {
					ValaCCodeExpression* expr = NULL;
					ValaParameter* _tmp156_;
					const gchar* _tmp157_;
					const gchar* _tmp158_;
					gchar* _tmp159_;
					gchar* _tmp160_;
					ValaCCodeIdentifier* _tmp161_;
					ValaCCodeExpression* _tmp162_;
					ValaParameter* _tmp163_;
					ValaDataType* _tmp164_;
					ValaDataType* _tmp165_;
					gboolean _tmp166_;
					gboolean _tmp169_ = FALSE;
					ValaParameter* _tmp170_;
					ValaDataType* _tmp171_;
					ValaDataType* _tmp172_;
					gboolean _tmp182_ = FALSE;
					ValaParameter* _tmp183_;
					ValaDataType* _tmp184_;
					ValaDataType* _tmp185_;
					ValaParameter* _tmp193_;
					ValaDataType* _tmp194_;
					ValaDataType* _tmp195_;
					ValaCCodeIdentifier* _tmp196_;
					ValaCCodeIdentifier* _tmp197_;
					ValaCCodeExpression* _tmp198_;
					ValaParameter* _tmp199_;
					_tmp156_ = param;
					_tmp157_ = vala_symbol_get_name ((ValaSymbol*) _tmp156_);
					_tmp158_ = _tmp157_;
					_tmp159_ = vala_ccode_base_module_get_variable_cname ((ValaCCodeBaseModule*) self, _tmp158_);
					_tmp160_ = _tmp159_;
					_tmp161_ = vala_ccode_identifier_new (_tmp160_);
					_tmp162_ = (ValaCCodeExpression*) _tmp161_;
					_g_free0 (_tmp160_);
					expr = _tmp162_;
					_tmp163_ = param;
					_tmp164_ = vala_variable_get_variable_type ((ValaVariable*) _tmp163_);
					_tmp165_ = _tmp164_;
					_tmp166_ = vala_data_type_is_real_struct_type (_tmp165_);
					if (_tmp166_) {
						ValaCCodeExpression* _tmp167_;
						ValaCCodeUnaryExpression* _tmp168_;
						_tmp167_ = expr;
						_tmp168_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_POINTER_INDIRECTION, _tmp167_);
						_vala_ccode_node_unref0 (expr);
						expr = (ValaCCodeExpression*) _tmp168_;
					}
					_tmp170_ = param;
					_tmp171_ = vala_variable_get_variable_type ((ValaVariable*) _tmp170_);
					_tmp172_ = _tmp171_;
					if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp172_, VALA_TYPE_OBJECT_TYPE)) {
						ValaParameter* _tmp173_;
						ValaDataType* _tmp174_;
						ValaDataType* _tmp175_;
						ValaTypeSymbol* _tmp176_;
						ValaTypeSymbol* _tmp177_;
						gchar* _tmp178_;
						gchar* _tmp179_;
						_tmp173_ = param;
						_tmp174_ = vala_variable_get_variable_type ((ValaVariable*) _tmp173_);
						_tmp175_ = _tmp174_;
						_tmp176_ = vala_data_type_get_data_type (_tmp175_);
						_tmp177_ = _tmp176_;
						_tmp178_ = vala_symbol_get_full_name ((ValaSymbol*) _tmp177_);
						_tmp179_ = _tmp178_;
						_tmp169_ = g_strcmp0 (_tmp179_, "GLib.Cancellable") == 0;
						_g_free0 (_tmp179_);
					} else {
						_tmp169_ = FALSE;
					}
					if (_tmp169_) {
						ValaCCodeExpression* _tmp180_;
						ValaCCodeExpression* _tmp181_;
						_tmp180_ = expr;
						_tmp181_ = _vala_ccode_node_ref0 (_tmp180_);
						_vala_ccode_node_unref0 (cancellable);
						cancellable = _tmp181_;
						_vala_ccode_node_unref0 (expr);
						_vala_code_node_unref0 (param);
						continue;
					}
					_tmp183_ = param;
					_tmp184_ = vala_variable_get_variable_type ((ValaVariable*) _tmp183_);
					_tmp185_ = _tmp184_;
					if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp185_, VALA_TYPE_OBJECT_TYPE)) {
						ValaParameter* _tmp186_;
						ValaDataType* _tmp187_;
						ValaDataType* _tmp188_;
						ValaTypeSymbol* _tmp189_;
						ValaTypeSymbol* _tmp190_;
						gchar* _tmp191_;
						gchar* _tmp192_;
						_tmp186_ = param;
						_tmp187_ = vala_variable_get_variable_type ((ValaVariable*) _tmp186_);
						_tmp188_ = _tmp187_;
						_tmp189_ = vala_data_type_get_data_type (_tmp188_);
						_tmp190_ = _tmp189_;
						_tmp191_ = vala_symbol_get_full_name ((ValaSymbol*) _tmp190_);
						_tmp192_ = _tmp191_;
						_tmp182_ = g_strcmp0 (_tmp192_, "GLib.BusName") == 0;
						_g_free0 (_tmp192_);
					} else {
						_tmp182_ = FALSE;
					}
					if (_tmp182_) {
						_vala_ccode_node_unref0 (expr);
						_vala_code_node_unref0 (param);
						continue;
					}
					_tmp193_ = param;
					_tmp194_ = vala_variable_get_variable_type ((ValaVariable*) _tmp193_);
					_tmp195_ = _tmp194_;
					_tmp196_ = vala_ccode_identifier_new ("_arguments_builder");
					_tmp197_ = _tmp196_;
					_tmp198_ = expr;
					_tmp199_ = param;
					vala_gd_bus_module_send_dbus_value ((ValaGDBusModule*) self, _tmp195_, (ValaCCodeExpression*) _tmp197_, _tmp198_, (ValaSymbol*) _tmp199_);
					_vala_ccode_node_unref0 (_tmp197_);
					_vala_ccode_node_unref0 (expr);
				}
				_vala_code_node_unref0 (param);
			}
			_vala_iterable_unref0 (_param_list);
		}
		_tmp200_ = vala_ccode_identifier_new ("g_variant_builder_end");
		_tmp201_ = _tmp200_;
		_tmp202_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp201_);
		_tmp203_ = _tmp202_;
		_vala_ccode_node_unref0 (_tmp201_);
		builder_end = _tmp203_;
		_tmp204_ = builder_end;
		_tmp205_ = vala_ccode_identifier_new ("_arguments_builder");
		_tmp206_ = _tmp205_;
		_tmp207_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp206_);
		_tmp208_ = _tmp207_;
		vala_ccode_function_call_add_argument (_tmp204_, (ValaCCodeExpression*) _tmp208_);
		_vala_ccode_node_unref0 (_tmp208_);
		_vala_ccode_node_unref0 (_tmp206_);
		_tmp209_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp210_ = _tmp209_;
		_tmp211_ = vala_ccode_identifier_new ("_arguments");
		_tmp212_ = _tmp211_;
		_tmp213_ = builder_end;
		vala_ccode_function_add_assignment (_tmp210_, (ValaCCodeExpression*) _tmp212_, (ValaCCodeExpression*) _tmp213_);
		_vala_ccode_node_unref0 (_tmp212_);
		_tmp214_ = vala_ccode_identifier_new ("g_dbus_message_set_body");
		_tmp215_ = _tmp214_;
		_tmp216_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp215_);
		_tmp217_ = _tmp216_;
		_vala_ccode_node_unref0 (_tmp215_);
		set_body = _tmp217_;
		_tmp218_ = set_body;
		_tmp219_ = vala_ccode_identifier_new ("_message");
		_tmp220_ = _tmp219_;
		vala_ccode_function_call_add_argument (_tmp218_, (ValaCCodeExpression*) _tmp220_);
		_vala_ccode_node_unref0 (_tmp220_);
		_tmp221_ = set_body;
		_tmp222_ = vala_ccode_identifier_new ("_arguments");
		_tmp223_ = _tmp222_;
		vala_ccode_function_call_add_argument (_tmp221_, (ValaCCodeExpression*) _tmp223_);
		_vala_ccode_node_unref0 (_tmp223_);
		_tmp224_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp225_ = _tmp224_;
		_tmp226_ = set_body;
		vala_ccode_function_add_expression (_tmp225_, (ValaCCodeExpression*) _tmp226_);
		_tmp227_ = uses_fd;
		if (_tmp227_) {
			ValaCCodeIdentifier* _tmp228_;
			ValaCCodeIdentifier* _tmp229_;
			ValaCCodeFunctionCall* _tmp230_;
			ValaCCodeFunctionCall* _tmp231_;
			ValaCCodeIdentifier* _tmp232_;
			ValaCCodeIdentifier* _tmp233_;
			ValaCCodeFunctionCall* _tmp234_;
			ValaCCodeIdentifier* _tmp235_;
			ValaCCodeIdentifier* _tmp236_;
			ValaCCodeFunction* _tmp237_;
			ValaCCodeFunction* _tmp238_;
			ValaCCodeFunctionCall* _tmp239_;
			ValaCCodeIdentifier* _tmp240_;
			ValaCCodeIdentifier* _tmp241_;
			ValaCCodeFunctionCall* _tmp242_;
			ValaCCodeFunctionCall* _tmp243_;
			ValaCCodeIdentifier* _tmp244_;
			ValaCCodeIdentifier* _tmp245_;
			ValaCCodeFunction* _tmp246_;
			ValaCCodeFunction* _tmp247_;
			ValaCCodeFunctionCall* _tmp248_;
			_tmp228_ = vala_ccode_identifier_new ("g_dbus_message_set_unix_fd_list");
			_tmp229_ = _tmp228_;
			_tmp230_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp229_);
			_vala_ccode_node_unref0 (ccall);
			ccall = _tmp230_;
			_vala_ccode_node_unref0 (_tmp229_);
			_tmp231_ = ccall;
			_tmp232_ = vala_ccode_identifier_new ("_message");
			_tmp233_ = _tmp232_;
			vala_ccode_function_call_add_argument (_tmp231_, (ValaCCodeExpression*) _tmp233_);
			_vala_ccode_node_unref0 (_tmp233_);
			_tmp234_ = ccall;
			_tmp235_ = vala_ccode_identifier_new ("_fd_list");
			_tmp236_ = _tmp235_;
			vala_ccode_function_call_add_argument (_tmp234_, (ValaCCodeExpression*) _tmp236_);
			_vala_ccode_node_unref0 (_tmp236_);
			_tmp237_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp238_ = _tmp237_;
			_tmp239_ = ccall;
			vala_ccode_function_add_expression (_tmp238_, (ValaCCodeExpression*) _tmp239_);
			_tmp240_ = vala_ccode_identifier_new ("g_object_unref");
			_tmp241_ = _tmp240_;
			_tmp242_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp241_);
			_vala_ccode_node_unref0 (ccall);
			ccall = _tmp242_;
			_vala_ccode_node_unref0 (_tmp241_);
			_tmp243_ = ccall;
			_tmp244_ = vala_ccode_identifier_new ("_fd_list");
			_tmp245_ = _tmp244_;
			vala_ccode_function_call_add_argument (_tmp243_, (ValaCCodeExpression*) _tmp245_);
			_vala_ccode_node_unref0 (_tmp245_);
			_tmp246_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp247_ = _tmp246_;
			_tmp248_ = ccall;
			vala_ccode_function_add_expression (_tmp247_, (ValaCCodeExpression*) _tmp248_);
		}
		_tmp249_ = call_type;
		if (_tmp249_ == VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_SYNC) {
			ValaCCodeIdentifier* _tmp250_;
			ValaCCodeIdentifier* _tmp251_;
			ValaCCodeFunctionCall* _tmp252_;
			ValaCCodeFunctionCall* _tmp253_;
			ValaCCodeFunctionCall* _tmp254_;
			ValaCCodeFunctionCall* _tmp255_;
			ValaCCodeIdentifier* _tmp256_;
			ValaCCodeIdentifier* _tmp257_;
			ValaCCodeFunctionCall* _tmp258_;
			ValaCCodeConstant* _tmp259_;
			ValaCCodeConstant* _tmp260_;
			ValaCCodeFunctionCall* _tmp261_;
			ValaCCodeExpression* _tmp262_;
			ValaCCodeFunctionCall* _tmp263_;
			ValaCCodeConstant* _tmp264_;
			ValaCCodeConstant* _tmp265_;
			ValaCCodeFunctionCall* _tmp266_;
			ValaCCodeExpression* _tmp267_;
			ValaCCodeFunctionCall* _tmp268_;
			ValaCCodeExpression* _tmp269_;
			ValaCCodeFunction* _tmp270_;
			ValaCCodeFunction* _tmp271_;
			ValaCCodeIdentifier* _tmp272_;
			ValaCCodeIdentifier* _tmp273_;
			ValaCCodeFunctionCall* _tmp274_;
			_tmp250_ = vala_ccode_identifier_new ("g_dbus_connection_send_message_with_reply_sync");
			_tmp251_ = _tmp250_;
			_tmp252_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp251_);
			_vala_ccode_node_unref0 (ccall);
			ccall = _tmp252_;
			_vala_ccode_node_unref0 (_tmp251_);
			_tmp253_ = ccall;
			_tmp254_ = connection;
			vala_ccode_function_call_add_argument (_tmp253_, (ValaCCodeExpression*) _tmp254_);
			_tmp255_ = ccall;
			_tmp256_ = vala_ccode_identifier_new ("_message");
			_tmp257_ = _tmp256_;
			vala_ccode_function_call_add_argument (_tmp255_, (ValaCCodeExpression*) _tmp257_);
			_vala_ccode_node_unref0 (_tmp257_);
			_tmp258_ = ccall;
			_tmp259_ = vala_ccode_constant_new ("G_DBUS_SEND_MESSAGE_FLAGS_NONE");
			_tmp260_ = _tmp259_;
			vala_ccode_function_call_add_argument (_tmp258_, (ValaCCodeExpression*) _tmp260_);
			_vala_ccode_node_unref0 (_tmp260_);
			_tmp261_ = ccall;
			_tmp262_ = timeout;
			vala_ccode_function_call_add_argument (_tmp261_, _tmp262_);
			_tmp263_ = ccall;
			_tmp264_ = vala_ccode_constant_new ("NULL");
			_tmp265_ = _tmp264_;
			vala_ccode_function_call_add_argument (_tmp263_, (ValaCCodeExpression*) _tmp265_);
			_vala_ccode_node_unref0 (_tmp265_);
			_tmp266_ = ccall;
			_tmp267_ = cancellable;
			vala_ccode_function_call_add_argument (_tmp266_, _tmp267_);
			_tmp268_ = ccall;
			_tmp269_ = error_argument;
			vala_ccode_function_call_add_argument (_tmp268_, _tmp269_);
			_tmp270_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp271_ = _tmp270_;
			_tmp272_ = vala_ccode_identifier_new ("_reply_message");
			_tmp273_ = _tmp272_;
			_tmp274_ = ccall;
			vala_ccode_function_add_assignment (_tmp271_, (ValaCCodeExpression*) _tmp273_, (ValaCCodeExpression*) _tmp274_);
			_vala_ccode_node_unref0 (_tmp273_);
		} else {
			ValaGDBusClientModuleCallType _tmp275_;
			_tmp275_ = call_type;
			if (_tmp275_ == VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_NO_REPLY) {
				ValaCCodeFunctionCall* set_flags = NULL;
				ValaCCodeIdentifier* _tmp276_;
				ValaCCodeIdentifier* _tmp277_;
				ValaCCodeFunctionCall* _tmp278_;
				ValaCCodeFunctionCall* _tmp279_;
				ValaCCodeFunctionCall* _tmp280_;
				ValaCCodeIdentifier* _tmp281_;
				ValaCCodeIdentifier* _tmp282_;
				ValaCCodeFunctionCall* _tmp283_;
				ValaCCodeConstant* _tmp284_;
				ValaCCodeConstant* _tmp285_;
				ValaCCodeFunction* _tmp286_;
				ValaCCodeFunction* _tmp287_;
				ValaCCodeFunctionCall* _tmp288_;
				ValaCCodeIdentifier* _tmp289_;
				ValaCCodeIdentifier* _tmp290_;
				ValaCCodeFunctionCall* _tmp291_;
				ValaCCodeFunctionCall* _tmp292_;
				ValaCCodeFunctionCall* _tmp293_;
				ValaCCodeFunctionCall* _tmp294_;
				ValaCCodeIdentifier* _tmp295_;
				ValaCCodeIdentifier* _tmp296_;
				ValaCCodeFunctionCall* _tmp297_;
				ValaCCodeConstant* _tmp298_;
				ValaCCodeConstant* _tmp299_;
				ValaCCodeFunctionCall* _tmp300_;
				ValaCCodeConstant* _tmp301_;
				ValaCCodeConstant* _tmp302_;
				ValaCCodeFunctionCall* _tmp303_;
				ValaCCodeExpression* _tmp304_;
				ValaCCodeFunction* _tmp305_;
				ValaCCodeFunction* _tmp306_;
				ValaCCodeFunctionCall* _tmp307_;
				_tmp276_ = vala_ccode_identifier_new ("g_dbus_message_set_flags");
				_tmp277_ = _tmp276_;
				_tmp278_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp277_);
				_tmp279_ = _tmp278_;
				_vala_ccode_node_unref0 (_tmp277_);
				set_flags = _tmp279_;
				_tmp280_ = set_flags;
				_tmp281_ = vala_ccode_identifier_new ("_message");
				_tmp282_ = _tmp281_;
				vala_ccode_function_call_add_argument (_tmp280_, (ValaCCodeExpression*) _tmp282_);
				_vala_ccode_node_unref0 (_tmp282_);
				_tmp283_ = set_flags;
				_tmp284_ = vala_ccode_constant_new ("G_DBUS_MESSAGE_FLAGS_NO_REPLY_EXPECTED");
				_tmp285_ = _tmp284_;
				vala_ccode_function_call_add_argument (_tmp283_, (ValaCCodeExpression*) _tmp285_);
				_vala_ccode_node_unref0 (_tmp285_);
				_tmp286_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
				_tmp287_ = _tmp286_;
				_tmp288_ = set_flags;
				vala_ccode_function_add_expression (_tmp287_, (ValaCCodeExpression*) _tmp288_);
				_tmp289_ = vala_ccode_identifier_new ("g_dbus_connection_send_message");
				_tmp290_ = _tmp289_;
				_tmp291_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp290_);
				_vala_ccode_node_unref0 (ccall);
				ccall = _tmp291_;
				_vala_ccode_node_unref0 (_tmp290_);
				_tmp292_ = ccall;
				_tmp293_ = connection;
				vala_ccode_function_call_add_argument (_tmp292_, (ValaCCodeExpression*) _tmp293_);
				_tmp294_ = ccall;
				_tmp295_ = vala_ccode_identifier_new ("_message");
				_tmp296_ = _tmp295_;
				vala_ccode_function_call_add_argument (_tmp294_, (ValaCCodeExpression*) _tmp296_);
				_vala_ccode_node_unref0 (_tmp296_);
				_tmp297_ = ccall;
				_tmp298_ = vala_ccode_constant_new ("G_DBUS_SEND_MESSAGE_FLAGS_NONE");
				_tmp299_ = _tmp298_;
				vala_ccode_function_call_add_argument (_tmp297_, (ValaCCodeExpression*) _tmp299_);
				_vala_ccode_node_unref0 (_tmp299_);
				_tmp300_ = ccall;
				_tmp301_ = vala_ccode_constant_new ("NULL");
				_tmp302_ = _tmp301_;
				vala_ccode_function_call_add_argument (_tmp300_, (ValaCCodeExpression*) _tmp302_);
				_vala_ccode_node_unref0 (_tmp302_);
				_tmp303_ = ccall;
				_tmp304_ = error_argument;
				vala_ccode_function_call_add_argument (_tmp303_, _tmp304_);
				_tmp305_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
				_tmp306_ = _tmp305_;
				_tmp307_ = ccall;
				vala_ccode_function_add_expression (_tmp306_, (ValaCCodeExpression*) _tmp307_);
				_vala_ccode_node_unref0 (set_flags);
			} else {
				ValaGDBusClientModuleCallType _tmp308_;
				_tmp308_ = call_type;
				if (_tmp308_ == VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_ASYNC) {
					ValaCCodeIdentifier* _tmp309_;
					ValaCCodeIdentifier* _tmp310_;
					ValaCCodeFunctionCall* _tmp311_;
					ValaCCodeFunctionCall* _tmp312_;
					ValaCCodeFunctionCall* _tmp313_;
					ValaCCodeFunctionCall* _tmp314_;
					ValaCCodeIdentifier* _tmp315_;
					ValaCCodeIdentifier* _tmp316_;
					ValaCCodeFunctionCall* _tmp317_;
					ValaCCodeConstant* _tmp318_;
					ValaCCodeConstant* _tmp319_;
					ValaCCodeFunctionCall* _tmp320_;
					ValaCCodeExpression* _tmp321_;
					ValaCCodeFunctionCall* _tmp322_;
					ValaCCodeConstant* _tmp323_;
					ValaCCodeConstant* _tmp324_;
					ValaCCodeFunctionCall* _tmp325_;
					ValaCCodeExpression* _tmp326_;
					ValaCCodeFunctionCall* res_wrapper = NULL;
					ValaCodeContext* _tmp327_;
					ValaCodeContext* _tmp328_;
					gboolean _tmp329_;
					ValaCCodeFunctionCall* _tmp374_;
					ValaCCodeFunctionCall* _tmp375_;
					ValaCCodeFunction* _tmp376_;
					ValaCCodeFunction* _tmp377_;
					ValaCCodeFunctionCall* _tmp378_;
					_tmp309_ = vala_ccode_identifier_new ("g_dbus_connection_send_message_with_reply");
					_tmp310_ = _tmp309_;
					_tmp311_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp310_);
					_vala_ccode_node_unref0 (ccall);
					ccall = _tmp311_;
					_vala_ccode_node_unref0 (_tmp310_);
					_tmp312_ = ccall;
					_tmp313_ = connection;
					vala_ccode_function_call_add_argument (_tmp312_, (ValaCCodeExpression*) _tmp313_);
					_tmp314_ = ccall;
					_tmp315_ = vala_ccode_identifier_new ("_message");
					_tmp316_ = _tmp315_;
					vala_ccode_function_call_add_argument (_tmp314_, (ValaCCodeExpression*) _tmp316_);
					_vala_ccode_node_unref0 (_tmp316_);
					_tmp317_ = ccall;
					_tmp318_ = vala_ccode_constant_new ("G_DBUS_SEND_MESSAGE_FLAGS_NONE");
					_tmp319_ = _tmp318_;
					vala_ccode_function_call_add_argument (_tmp317_, (ValaCCodeExpression*) _tmp319_);
					_vala_ccode_node_unref0 (_tmp319_);
					_tmp320_ = ccall;
					_tmp321_ = timeout;
					vala_ccode_function_call_add_argument (_tmp320_, _tmp321_);
					_tmp322_ = ccall;
					_tmp323_ = vala_ccode_constant_new ("NULL");
					_tmp324_ = _tmp323_;
					vala_ccode_function_call_add_argument (_tmp322_, (ValaCCodeExpression*) _tmp324_);
					_vala_ccode_node_unref0 (_tmp324_);
					_tmp325_ = ccall;
					_tmp326_ = cancellable;
					vala_ccode_function_call_add_argument (_tmp325_, _tmp326_);
					res_wrapper = NULL;
					_tmp327_ = vala_ccode_base_module_get_context ((ValaCCodeBaseModule*) self);
					_tmp328_ = _tmp327_;
					_tmp329_ = vala_code_context_require_glib_version (_tmp328_, 2, 36);
					if (_tmp329_) {
						ValaCCodeFunctionCall* _tmp330_;
						gchar* _tmp331_;
						gchar* _tmp332_;
						ValaCCodeIdentifier* _tmp333_;
						ValaCCodeIdentifier* _tmp334_;
						ValaCCodeIdentifier* _tmp335_;
						ValaCCodeIdentifier* _tmp336_;
						ValaCCodeFunctionCall* _tmp337_;
						ValaCCodeFunctionCall* _tmp338_;
						ValaCCodeIdentifier* _tmp339_;
						ValaCCodeIdentifier* _tmp340_;
						ValaCCodeCastExpression* _tmp341_;
						ValaCCodeCastExpression* _tmp342_;
						ValaCCodeFunctionCall* _tmp343_;
						ValaCCodeConstant* _tmp344_;
						ValaCCodeConstant* _tmp345_;
						ValaCCodeFunctionCall* _tmp346_;
						ValaCCodeIdentifier* _tmp347_;
						ValaCCodeIdentifier* _tmp348_;
						ValaCCodeFunctionCall* _tmp349_;
						ValaCCodeIdentifier* _tmp350_;
						ValaCCodeIdentifier* _tmp351_;
						_tmp330_ = ccall;
						_tmp331_ = vala_gasync_module_generate_async_callback_wrapper ((ValaGAsyncModule*) self);
						_tmp332_ = _tmp331_;
						_tmp333_ = vala_ccode_identifier_new (_tmp332_);
						_tmp334_ = _tmp333_;
						vala_ccode_function_call_add_argument (_tmp330_, (ValaCCodeExpression*) _tmp334_);
						_vala_ccode_node_unref0 (_tmp334_);
						_g_free0 (_tmp332_);
						_tmp335_ = vala_ccode_identifier_new ("g_task_new");
						_tmp336_ = _tmp335_;
						_tmp337_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp336_);
						_vala_ccode_node_unref0 (res_wrapper);
						res_wrapper = _tmp337_;
						_vala_ccode_node_unref0 (_tmp336_);
						_tmp338_ = res_wrapper;
						_tmp339_ = vala_ccode_identifier_new ("self");
						_tmp340_ = _tmp339_;
						_tmp341_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) _tmp340_, "GObject *");
						_tmp342_ = _tmp341_;
						vala_ccode_function_call_add_argument (_tmp338_, (ValaCCodeExpression*) _tmp342_);
						_vala_ccode_node_unref0 (_tmp342_);
						_vala_ccode_node_unref0 (_tmp340_);
						_tmp343_ = res_wrapper;
						_tmp344_ = vala_ccode_constant_new ("NULL");
						_tmp345_ = _tmp344_;
						vala_ccode_function_call_add_argument (_tmp343_, (ValaCCodeExpression*) _tmp345_);
						_vala_ccode_node_unref0 (_tmp345_);
						_tmp346_ = res_wrapper;
						_tmp347_ = vala_ccode_identifier_new ("_callback_");
						_tmp348_ = _tmp347_;
						vala_ccode_function_call_add_argument (_tmp346_, (ValaCCodeExpression*) _tmp348_);
						_vala_ccode_node_unref0 (_tmp348_);
						_tmp349_ = res_wrapper;
						_tmp350_ = vala_ccode_identifier_new ("_user_data_");
						_tmp351_ = _tmp350_;
						vala_ccode_function_call_add_argument (_tmp349_, (ValaCCodeExpression*) _tmp351_);
						_vala_ccode_node_unref0 (_tmp351_);
					} else {
						ValaCCodeFunctionCall* _tmp352_;
						gchar* _tmp353_;
						gchar* _tmp354_;
						ValaCCodeIdentifier* _tmp355_;
						ValaCCodeIdentifier* _tmp356_;
						ValaCCodeIdentifier* _tmp357_;
						ValaCCodeIdentifier* _tmp358_;
						ValaCCodeFunctionCall* _tmp359_;
						ValaCCodeFunctionCall* _tmp360_;
						ValaCCodeIdentifier* _tmp361_;
						ValaCCodeIdentifier* _tmp362_;
						ValaCCodeCastExpression* _tmp363_;
						ValaCCodeCastExpression* _tmp364_;
						ValaCCodeFunctionCall* _tmp365_;
						ValaCCodeIdentifier* _tmp366_;
						ValaCCodeIdentifier* _tmp367_;
						ValaCCodeFunctionCall* _tmp368_;
						ValaCCodeIdentifier* _tmp369_;
						ValaCCodeIdentifier* _tmp370_;
						ValaCCodeFunctionCall* _tmp371_;
						ValaCCodeConstant* _tmp372_;
						ValaCCodeConstant* _tmp373_;
						_tmp352_ = ccall;
						_tmp353_ = vala_gasync_module_generate_async_callback_wrapper ((ValaGAsyncModule*) self);
						_tmp354_ = _tmp353_;
						_tmp355_ = vala_ccode_identifier_new (_tmp354_);
						_tmp356_ = _tmp355_;
						vala_ccode_function_call_add_argument (_tmp352_, (ValaCCodeExpression*) _tmp356_);
						_vala_ccode_node_unref0 (_tmp356_);
						_g_free0 (_tmp354_);
						_tmp357_ = vala_ccode_identifier_new ("g_simple_async_result_new");
						_tmp358_ = _tmp357_;
						_tmp359_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp358_);
						_vala_ccode_node_unref0 (res_wrapper);
						res_wrapper = _tmp359_;
						_vala_ccode_node_unref0 (_tmp358_);
						_tmp360_ = res_wrapper;
						_tmp361_ = vala_ccode_identifier_new ("self");
						_tmp362_ = _tmp361_;
						_tmp363_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) _tmp362_, "GObject *");
						_tmp364_ = _tmp363_;
						vala_ccode_function_call_add_argument (_tmp360_, (ValaCCodeExpression*) _tmp364_);
						_vala_ccode_node_unref0 (_tmp364_);
						_vala_ccode_node_unref0 (_tmp362_);
						_tmp365_ = res_wrapper;
						_tmp366_ = vala_ccode_identifier_new ("_callback_");
						_tmp367_ = _tmp366_;
						vala_ccode_function_call_add_argument (_tmp365_, (ValaCCodeExpression*) _tmp367_);
						_vala_ccode_node_unref0 (_tmp367_);
						_tmp368_ = res_wrapper;
						_tmp369_ = vala_ccode_identifier_new ("_user_data_");
						_tmp370_ = _tmp369_;
						vala_ccode_function_call_add_argument (_tmp368_, (ValaCCodeExpression*) _tmp370_);
						_vala_ccode_node_unref0 (_tmp370_);
						_tmp371_ = res_wrapper;
						_tmp372_ = vala_ccode_constant_new ("NULL");
						_tmp373_ = _tmp372_;
						vala_ccode_function_call_add_argument (_tmp371_, (ValaCCodeExpression*) _tmp373_);
						_vala_ccode_node_unref0 (_tmp373_);
					}
					_tmp374_ = ccall;
					_tmp375_ = res_wrapper;
					vala_ccode_function_call_add_argument (_tmp374_, (ValaCCodeExpression*) _tmp375_);
					_tmp376_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
					_tmp377_ = _tmp376_;
					_tmp378_ = ccall;
					vala_ccode_function_add_expression (_tmp377_, (ValaCCodeExpression*) _tmp378_);
					_vala_ccode_node_unref0 (res_wrapper);
				}
			}
		}
		_tmp379_ = vala_ccode_identifier_new ("g_object_unref");
		_tmp380_ = _tmp379_;
		_tmp381_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp380_);
		_vala_ccode_node_unref0 (ccall);
		ccall = _tmp381_;
		_vala_ccode_node_unref0 (_tmp380_);
		_tmp382_ = ccall;
		_tmp383_ = vala_ccode_identifier_new ("_message");
		_tmp384_ = _tmp383_;
		vala_ccode_function_call_add_argument (_tmp382_, (ValaCCodeExpression*) _tmp384_);
		_vala_ccode_node_unref0 (_tmp384_);
		_tmp385_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp386_ = _tmp385_;
		_tmp387_ = ccall;
		vala_ccode_function_add_expression (_tmp386_, (ValaCCodeExpression*) _tmp387_);
		_vala_ccode_node_unref0 (set_body);
		_vala_ccode_node_unref0 (builder_end);
		_vala_ccode_node_unref0 (cancellable);
		_vala_ccode_node_unref0 (builder_init);
		_vala_ccode_node_unref0 (ccall);
		_vala_ccode_node_unref0 (timeout);
		_vala_ccode_node_unref0 (object_path);
		_vala_ccode_node_unref0 (interface_name);
		_vala_ccode_node_unref0 (destination);
	} else {
		ValaCCodeFunctionCall* ccall = NULL;
		ValaCCodeIdentifier* _tmp388_;
		ValaCCodeIdentifier* _tmp389_;
		ValaCCodeFunctionCall* _tmp390_;
		ValaCCodeFunctionCall* _tmp391_;
		ValaCCodeFunctionCall* _tmp392_;
		ValaCCodeFunctionCall* _tmp393_;
		ValaCodeContext* _tmp394_;
		ValaCodeContext* _tmp395_;
		gboolean _tmp396_;
		_tmp388_ = vala_ccode_identifier_new ("g_dbus_connection_send_message_with_reply_finish");
		_tmp389_ = _tmp388_;
		_tmp390_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp389_);
		_tmp391_ = _tmp390_;
		_vala_ccode_node_unref0 (_tmp389_);
		ccall = _tmp391_;
		_tmp392_ = ccall;
		_tmp393_ = connection;
		vala_ccode_function_call_add_argument (_tmp392_, (ValaCCodeExpression*) _tmp393_);
		_tmp394_ = vala_ccode_base_module_get_context ((ValaCCodeBaseModule*) self);
		_tmp395_ = _tmp394_;
		_tmp396_ = vala_code_context_require_glib_version (_tmp395_, 2, 36);
		if (_tmp396_) {
			ValaCCodeFunction* _tmp397_;
			ValaCCodeFunction* _tmp398_;
			ValaCCodeVariableDeclarator* _tmp399_;
			ValaCCodeVariableDeclarator* _tmp400_;
			ValaCCodeFunctionCall* inner_res = NULL;
			ValaCCodeIdentifier* _tmp401_;
			ValaCCodeIdentifier* _tmp402_;
			ValaCCodeFunctionCall* _tmp403_;
			ValaCCodeFunctionCall* _tmp404_;
			ValaCCodeFunctionCall* _tmp405_;
			ValaCCodeIdentifier* _tmp406_;
			ValaCCodeIdentifier* _tmp407_;
			ValaCCodeCastExpression* _tmp408_;
			ValaCCodeCastExpression* _tmp409_;
			ValaCCodeFunctionCall* _tmp410_;
			ValaCCodeConstant* _tmp411_;
			ValaCCodeConstant* _tmp412_;
			ValaCCodeFunction* _tmp413_;
			ValaCCodeFunction* _tmp414_;
			ValaCCodeIdentifier* _tmp415_;
			ValaCCodeIdentifier* _tmp416_;
			ValaCCodeFunctionCall* _tmp417_;
			ValaCCodeFunctionCall* _tmp418_;
			ValaCCodeIdentifier* _tmp419_;
			ValaCCodeIdentifier* _tmp420_;
			ValaCCodeFunctionCall* _tmp421_;
			ValaCCodeExpression* _tmp422_;
			ValaCCodeFunction* _tmp423_;
			ValaCCodeFunction* _tmp424_;
			ValaCCodeIdentifier* _tmp425_;
			ValaCCodeIdentifier* _tmp426_;
			ValaCCodeFunctionCall* _tmp427_;
			ValaCCodeFunctionCall* unref_inner_res = NULL;
			ValaCCodeIdentifier* _tmp428_;
			ValaCCodeIdentifier* _tmp429_;
			ValaCCodeFunctionCall* _tmp430_;
			ValaCCodeFunctionCall* _tmp431_;
			ValaCCodeFunctionCall* _tmp432_;
			ValaCCodeIdentifier* _tmp433_;
			ValaCCodeIdentifier* _tmp434_;
			ValaCCodeFunction* _tmp435_;
			ValaCCodeFunction* _tmp436_;
			ValaCCodeFunctionCall* _tmp437_;
			_tmp397_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp398_ = _tmp397_;
			_tmp399_ = vala_ccode_variable_declarator_new ("*_inner_res", NULL, NULL);
			_tmp400_ = _tmp399_;
			vala_ccode_function_add_declaration (_tmp398_, "GAsyncResult", (ValaCCodeDeclarator*) _tmp400_, 0);
			_vala_ccode_node_unref0 (_tmp400_);
			_tmp401_ = vala_ccode_identifier_new ("g_task_propagate_pointer");
			_tmp402_ = _tmp401_;
			_tmp403_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp402_);
			_tmp404_ = _tmp403_;
			_vala_ccode_node_unref0 (_tmp402_);
			inner_res = _tmp404_;
			_tmp405_ = inner_res;
			_tmp406_ = vala_ccode_identifier_new ("_res_");
			_tmp407_ = _tmp406_;
			_tmp408_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) _tmp407_, "GTask *");
			_tmp409_ = _tmp408_;
			vala_ccode_function_call_add_argument (_tmp405_, (ValaCCodeExpression*) _tmp409_);
			_vala_ccode_node_unref0 (_tmp409_);
			_vala_ccode_node_unref0 (_tmp407_);
			_tmp410_ = inner_res;
			_tmp411_ = vala_ccode_constant_new ("NULL");
			_tmp412_ = _tmp411_;
			vala_ccode_function_call_add_argument (_tmp410_, (ValaCCodeExpression*) _tmp412_);
			_vala_ccode_node_unref0 (_tmp412_);
			_tmp413_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp414_ = _tmp413_;
			_tmp415_ = vala_ccode_identifier_new ("_inner_res");
			_tmp416_ = _tmp415_;
			_tmp417_ = inner_res;
			vala_ccode_function_add_assignment (_tmp414_, (ValaCCodeExpression*) _tmp416_, (ValaCCodeExpression*) _tmp417_);
			_vala_ccode_node_unref0 (_tmp416_);
			_tmp418_ = ccall;
			_tmp419_ = vala_ccode_identifier_new ("_inner_res");
			_tmp420_ = _tmp419_;
			vala_ccode_function_call_add_argument (_tmp418_, (ValaCCodeExpression*) _tmp420_);
			_vala_ccode_node_unref0 (_tmp420_);
			_tmp421_ = ccall;
			_tmp422_ = error_argument;
			vala_ccode_function_call_add_argument (_tmp421_, _tmp422_);
			_tmp423_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp424_ = _tmp423_;
			_tmp425_ = vala_ccode_identifier_new ("_reply_message");
			_tmp426_ = _tmp425_;
			_tmp427_ = ccall;
			vala_ccode_function_add_assignment (_tmp424_, (ValaCCodeExpression*) _tmp426_, (ValaCCodeExpression*) _tmp427_);
			_vala_ccode_node_unref0 (_tmp426_);
			_tmp428_ = vala_ccode_identifier_new ("g_object_unref");
			_tmp429_ = _tmp428_;
			_tmp430_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp429_);
			_tmp431_ = _tmp430_;
			_vala_ccode_node_unref0 (_tmp429_);
			unref_inner_res = _tmp431_;
			_tmp432_ = unref_inner_res;
			_tmp433_ = vala_ccode_identifier_new ("_inner_res");
			_tmp434_ = _tmp433_;
			vala_ccode_function_call_add_argument (_tmp432_, (ValaCCodeExpression*) _tmp434_);
			_vala_ccode_node_unref0 (_tmp434_);
			_tmp435_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp436_ = _tmp435_;
			_tmp437_ = unref_inner_res;
			vala_ccode_function_add_expression (_tmp436_, (ValaCCodeExpression*) _tmp437_);
			_vala_ccode_node_unref0 (unref_inner_res);
			_vala_ccode_node_unref0 (inner_res);
		} else {
			ValaCCodeFunctionCall* inner_res = NULL;
			ValaCCodeIdentifier* _tmp438_;
			ValaCCodeIdentifier* _tmp439_;
			ValaCCodeFunctionCall* _tmp440_;
			ValaCCodeFunctionCall* _tmp441_;
			ValaCCodeFunctionCall* _tmp442_;
			ValaCCodeIdentifier* _tmp443_;
			ValaCCodeIdentifier* _tmp444_;
			ValaCCodeCastExpression* _tmp445_;
			ValaCCodeCastExpression* _tmp446_;
			ValaCCodeFunctionCall* _tmp447_;
			ValaCCodeFunctionCall* _tmp448_;
			ValaCCodeFunctionCall* _tmp449_;
			ValaCCodeExpression* _tmp450_;
			ValaCCodeFunction* _tmp451_;
			ValaCCodeFunction* _tmp452_;
			ValaCCodeIdentifier* _tmp453_;
			ValaCCodeIdentifier* _tmp454_;
			ValaCCodeFunctionCall* _tmp455_;
			_tmp438_ = vala_ccode_identifier_new ("g_simple_async_result_get_op_res_gpointer");
			_tmp439_ = _tmp438_;
			_tmp440_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp439_);
			_tmp441_ = _tmp440_;
			_vala_ccode_node_unref0 (_tmp439_);
			inner_res = _tmp441_;
			_tmp442_ = inner_res;
			_tmp443_ = vala_ccode_identifier_new ("_res_");
			_tmp444_ = _tmp443_;
			_tmp445_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) _tmp444_, "GSimpleAsyncResult *");
			_tmp446_ = _tmp445_;
			vala_ccode_function_call_add_argument (_tmp442_, (ValaCCodeExpression*) _tmp446_);
			_vala_ccode_node_unref0 (_tmp446_);
			_vala_ccode_node_unref0 (_tmp444_);
			_tmp447_ = ccall;
			_tmp448_ = inner_res;
			vala_ccode_function_call_add_argument (_tmp447_, (ValaCCodeExpression*) _tmp448_);
			_tmp449_ = ccall;
			_tmp450_ = error_argument;
			vala_ccode_function_call_add_argument (_tmp449_, _tmp450_);
			_tmp451_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp452_ = _tmp451_;
			_tmp453_ = vala_ccode_identifier_new ("_reply_message");
			_tmp454_ = _tmp453_;
			_tmp455_ = ccall;
			vala_ccode_function_add_assignment (_tmp452_, (ValaCCodeExpression*) _tmp454_, (ValaCCodeExpression*) _tmp455_);
			_vala_ccode_node_unref0 (_tmp454_);
			_vala_ccode_node_unref0 (inner_res);
		}
		_vala_ccode_node_unref0 (ccall);
	}
	_tmp457_ = call_type;
	if (_tmp457_ == VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_SYNC) {
		_tmp456_ = TRUE;
	} else {
		ValaGDBusClientModuleCallType _tmp458_;
		_tmp458_ = call_type;
		_tmp456_ = _tmp458_ == VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_FINISH;
	}
	if (_tmp456_) {
		ValaCCodeFunction* _tmp459_;
		ValaCCodeFunction* _tmp460_;
		ValaCCodeVariableDeclarator* _tmp461_;
		ValaCCodeVariableDeclarator* _tmp462_;
		ValaCCodeFunctionCall* unref_reply = NULL;
		ValaCCodeIdentifier* _tmp463_;
		ValaCCodeIdentifier* _tmp464_;
		ValaCCodeFunctionCall* _tmp465_;
		ValaCCodeFunctionCall* _tmp466_;
		ValaCCodeFunctionCall* _tmp467_;
		ValaCCodeIdentifier* _tmp468_;
		ValaCCodeIdentifier* _tmp469_;
		ValaCCodeUnaryExpression* reply_is_null = NULL;
		ValaCCodeIdentifier* _tmp470_;
		ValaCCodeIdentifier* _tmp471_;
		ValaCCodeUnaryExpression* _tmp472_;
		ValaCCodeUnaryExpression* _tmp473_;
		ValaCCodeFunction* _tmp474_;
		ValaCCodeFunction* _tmp475_;
		ValaCCodeUnaryExpression* _tmp476_;
		ValaMethod* _tmp477_;
		ValaDataType* _tmp478_;
		ValaDataType* _tmp479_;
		ValaCCodeFunction* _tmp480_;
		ValaCCodeFunction* _tmp481_;
		ValaCCodeFunctionCall* ccall = NULL;
		ValaCCodeIdentifier* _tmp482_;
		ValaCCodeIdentifier* _tmp483_;
		ValaCCodeFunctionCall* _tmp484_;
		ValaCCodeFunctionCall* _tmp485_;
		ValaCCodeFunctionCall* _tmp486_;
		ValaCCodeIdentifier* _tmp487_;
		ValaCCodeIdentifier* _tmp488_;
		ValaCCodeFunctionCall* _tmp489_;
		ValaCCodeExpression* _tmp490_;
		ValaCCodeFunction* _tmp491_;
		ValaCCodeFunction* _tmp492_;
		ValaCCodeFunctionCall* _tmp493_;
		ValaCCodeFunction* _tmp494_;
		ValaCCodeFunction* _tmp495_;
		ValaCCodeFunctionCall* _tmp496_;
		ValaMethod* _tmp497_;
		ValaDataType* _tmp498_;
		ValaDataType* _tmp499_;
		ValaCCodeFunction* _tmp500_;
		ValaCCodeFunction* _tmp501_;
		gboolean has_result = FALSE;
		ValaMethod* _tmp502_;
		ValaDataType* _tmp503_;
		ValaDataType* _tmp504_;
		gboolean _tmp505_;
		gboolean _tmp534_;
		ValaCCodeFunction* _tmp810_;
		ValaCCodeFunction* _tmp811_;
		ValaCCodeFunctionCall* _tmp812_;
		gboolean _tmp813_ = FALSE;
		ValaMethod* _tmp814_;
		ValaDataType* _tmp815_;
		ValaDataType* _tmp816_;
		_tmp459_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp460_ = _tmp459_;
		_tmp461_ = vala_ccode_variable_declarator_new ("*_reply_message", NULL, NULL);
		_tmp462_ = _tmp461_;
		vala_ccode_function_add_declaration (_tmp460_, "GDBusMessage", (ValaCCodeDeclarator*) _tmp462_, 0);
		_vala_ccode_node_unref0 (_tmp462_);
		_tmp463_ = vala_ccode_identifier_new ("g_object_unref");
		_tmp464_ = _tmp463_;
		_tmp465_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp464_);
		_tmp466_ = _tmp465_;
		_vala_ccode_node_unref0 (_tmp464_);
		unref_reply = _tmp466_;
		_tmp467_ = unref_reply;
		_tmp468_ = vala_ccode_identifier_new ("_reply_message");
		_tmp469_ = _tmp468_;
		vala_ccode_function_call_add_argument (_tmp467_, (ValaCCodeExpression*) _tmp469_);
		_vala_ccode_node_unref0 (_tmp469_);
		_tmp470_ = vala_ccode_identifier_new ("_reply_message");
		_tmp471_ = _tmp470_;
		_tmp472_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_LOGICAL_NEGATION, (ValaCCodeExpression*) _tmp471_);
		_tmp473_ = _tmp472_;
		_vala_ccode_node_unref0 (_tmp471_);
		reply_is_null = _tmp473_;
		_tmp474_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp475_ = _tmp474_;
		_tmp476_ = reply_is_null;
		vala_ccode_function_open_if (_tmp475_, (ValaCCodeExpression*) _tmp476_);
		_tmp477_ = m;
		_tmp478_ = vala_callable_get_return_type ((ValaCallable*) _tmp477_);
		_tmp479_ = _tmp478_;
		vala_ccode_base_module_return_default_value ((ValaCCodeBaseModule*) self, _tmp479_);
		_tmp480_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp481_ = _tmp480_;
		vala_ccode_function_close (_tmp481_);
		_tmp482_ = vala_ccode_identifier_new ("g_dbus_message_to_gerror");
		_tmp483_ = _tmp482_;
		_tmp484_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp483_);
		_tmp485_ = _tmp484_;
		_vala_ccode_node_unref0 (_tmp483_);
		ccall = _tmp485_;
		_tmp486_ = ccall;
		_tmp487_ = vala_ccode_identifier_new ("_reply_message");
		_tmp488_ = _tmp487_;
		vala_ccode_function_call_add_argument (_tmp486_, (ValaCCodeExpression*) _tmp488_);
		_vala_ccode_node_unref0 (_tmp488_);
		_tmp489_ = ccall;
		_tmp490_ = error_argument;
		vala_ccode_function_call_add_argument (_tmp489_, _tmp490_);
		_tmp491_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp492_ = _tmp491_;
		_tmp493_ = ccall;
		vala_ccode_function_open_if (_tmp492_, (ValaCCodeExpression*) _tmp493_);
		_tmp494_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp495_ = _tmp494_;
		_tmp496_ = unref_reply;
		vala_ccode_function_add_expression (_tmp495_, (ValaCCodeExpression*) _tmp496_);
		_tmp497_ = m;
		_tmp498_ = vala_callable_get_return_type ((ValaCallable*) _tmp497_);
		_tmp499_ = _tmp498_;
		vala_ccode_base_module_return_default_value ((ValaCCodeBaseModule*) self, _tmp499_);
		_tmp500_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp501_ = _tmp500_;
		vala_ccode_function_close (_tmp501_);
		_tmp502_ = m;
		_tmp503_ = vala_callable_get_return_type ((ValaCallable*) _tmp502_);
		_tmp504_ = _tmp503_;
		has_result = !G_TYPE_CHECK_INSTANCE_TYPE (_tmp504_, VALA_TYPE_VOID_TYPE);
		_tmp505_ = uses_fd;
		if (_tmp505_) {
			ValaCCodeFunction* _tmp506_;
			ValaCCodeFunction* _tmp507_;
			ValaCCodeConstant* _tmp508_;
			ValaCCodeConstant* _tmp509_;
			ValaCCodeVariableDeclarator* _tmp510_;
			ValaCCodeVariableDeclarator* _tmp511_;
			ValaCCodeFunction* _tmp512_;
			ValaCCodeFunction* _tmp513_;
			ValaCCodeVariableDeclarator* _tmp514_;
			ValaCCodeVariableDeclarator* _tmp515_;
			ValaCCodeFunction* _tmp516_;
			ValaCCodeFunction* _tmp517_;
			ValaCCodeVariableDeclarator* _tmp518_;
			ValaCCodeVariableDeclarator* _tmp519_;
			_tmp506_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp507_ = _tmp506_;
			_tmp508_ = vala_ccode_constant_new ("0");
			_tmp509_ = _tmp508_;
			_tmp510_ = vala_ccode_variable_declarator_new_zero ("_fd_index", (ValaCCodeExpression*) _tmp509_, NULL);
			_tmp511_ = _tmp510_;
			vala_ccode_function_add_declaration (_tmp507_, "gint", (ValaCCodeDeclarator*) _tmp511_, 0);
			_vala_ccode_node_unref0 (_tmp511_);
			_vala_ccode_node_unref0 (_tmp509_);
			_tmp512_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp513_ = _tmp512_;
			_tmp514_ = vala_ccode_variable_declarator_new ("_fd_list", NULL, NULL);
			_tmp515_ = _tmp514_;
			vala_ccode_function_add_declaration (_tmp513_, "GUnixFDList*", (ValaCCodeDeclarator*) _tmp515_, 0);
			_vala_ccode_node_unref0 (_tmp515_);
			_tmp516_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp517_ = _tmp516_;
			_tmp518_ = vala_ccode_variable_declarator_new ("_fd", NULL, NULL);
			_tmp519_ = _tmp518_;
			vala_ccode_function_add_declaration (_tmp517_, "gint", (ValaCCodeDeclarator*) _tmp519_, 0);
			_vala_ccode_node_unref0 (_tmp519_);
		}
		{
			ValaList* _param_list = NULL;
			ValaMethod* _tmp520_;
			ValaList* _tmp521_;
			gint _param_size = 0;
			ValaList* _tmp522_;
			gint _tmp523_;
			gint _tmp524_;
			gint _param_index = 0;
			_tmp520_ = m;
			_tmp521_ = vala_callable_get_parameters ((ValaCallable*) _tmp520_);
			_param_list = _tmp521_;
			_tmp522_ = _param_list;
			_tmp523_ = vala_collection_get_size ((ValaCollection*) _tmp522_);
			_tmp524_ = _tmp523_;
			_param_size = _tmp524_;
			_param_index = -1;
			while (TRUE) {
				gint _tmp525_;
				gint _tmp526_;
				gint _tmp527_;
				ValaParameter* param = NULL;
				ValaList* _tmp528_;
				gint _tmp529_;
				gpointer _tmp530_;
				ValaParameter* _tmp531_;
				ValaParameterDirection _tmp532_;
				ValaParameterDirection _tmp533_;
				_tmp525_ = _param_index;
				_param_index = _tmp525_ + 1;
				_tmp526_ = _param_index;
				_tmp527_ = _param_size;
				if (!(_tmp526_ < _tmp527_)) {
					break;
				}
				_tmp528_ = _param_list;
				_tmp529_ = _param_index;
				_tmp530_ = vala_list_get (_tmp528_, _tmp529_);
				param = (ValaParameter*) _tmp530_;
				_tmp531_ = param;
				_tmp532_ = vala_parameter_get_direction (_tmp531_);
				_tmp533_ = _tmp532_;
				if (_tmp533_ == VALA_PARAMETER_DIRECTION_OUT) {
					has_result = TRUE;
				}
				_vala_code_node_unref0 (param);
			}
			_vala_iterable_unref0 (_param_list);
		}
		_tmp534_ = has_result;
		if (_tmp534_) {
			ValaCCodeFunction* _tmp535_;
			ValaCCodeFunction* _tmp536_;
			ValaCCodeVariableDeclarator* _tmp537_;
			ValaCCodeVariableDeclarator* _tmp538_;
			ValaCCodeFunction* _tmp539_;
			ValaCCodeFunction* _tmp540_;
			ValaCCodeVariableDeclarator* _tmp541_;
			ValaCCodeVariableDeclarator* _tmp542_;
			ValaCCodeIdentifier* _tmp543_;
			ValaCCodeIdentifier* _tmp544_;
			ValaCCodeFunctionCall* _tmp545_;
			ValaCCodeFunctionCall* _tmp546_;
			ValaCCodeIdentifier* _tmp547_;
			ValaCCodeIdentifier* _tmp548_;
			ValaCCodeFunction* _tmp549_;
			ValaCCodeFunction* _tmp550_;
			ValaCCodeIdentifier* _tmp551_;
			ValaCCodeIdentifier* _tmp552_;
			ValaCCodeFunctionCall* _tmp553_;
			ValaCCodeFunctionCall* iter_init = NULL;
			ValaCCodeIdentifier* _tmp554_;
			ValaCCodeIdentifier* _tmp555_;
			ValaCCodeFunctionCall* _tmp556_;
			ValaCCodeFunctionCall* _tmp557_;
			ValaCCodeFunctionCall* _tmp558_;
			ValaCCodeIdentifier* _tmp559_;
			ValaCCodeIdentifier* _tmp560_;
			ValaCCodeUnaryExpression* _tmp561_;
			ValaCCodeUnaryExpression* _tmp562_;
			ValaCCodeFunctionCall* _tmp563_;
			ValaCCodeIdentifier* _tmp564_;
			ValaCCodeIdentifier* _tmp565_;
			ValaCCodeFunction* _tmp566_;
			ValaCCodeFunction* _tmp567_;
			ValaCCodeFunctionCall* _tmp568_;
			ValaMethod* _tmp703_;
			ValaDataType* _tmp704_;
			ValaDataType* _tmp705_;
			_tmp535_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp536_ = _tmp535_;
			_tmp537_ = vala_ccode_variable_declarator_new ("*_reply", NULL, NULL);
			_tmp538_ = _tmp537_;
			vala_ccode_function_add_declaration (_tmp536_, "GVariant", (ValaCCodeDeclarator*) _tmp538_, 0);
			_vala_ccode_node_unref0 (_tmp538_);
			_tmp539_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp540_ = _tmp539_;
			_tmp541_ = vala_ccode_variable_declarator_new ("_reply_iter", NULL, NULL);
			_tmp542_ = _tmp541_;
			vala_ccode_function_add_declaration (_tmp540_, "GVariantIter", (ValaCCodeDeclarator*) _tmp542_, 0);
			_vala_ccode_node_unref0 (_tmp542_);
			_tmp543_ = vala_ccode_identifier_new ("g_dbus_message_get_body");
			_tmp544_ = _tmp543_;
			_tmp545_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp544_);
			_vala_ccode_node_unref0 (ccall);
			ccall = _tmp545_;
			_vala_ccode_node_unref0 (_tmp544_);
			_tmp546_ = ccall;
			_tmp547_ = vala_ccode_identifier_new ("_reply_message");
			_tmp548_ = _tmp547_;
			vala_ccode_function_call_add_argument (_tmp546_, (ValaCCodeExpression*) _tmp548_);
			_vala_ccode_node_unref0 (_tmp548_);
			_tmp549_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp550_ = _tmp549_;
			_tmp551_ = vala_ccode_identifier_new ("_reply");
			_tmp552_ = _tmp551_;
			_tmp553_ = ccall;
			vala_ccode_function_add_assignment (_tmp550_, (ValaCCodeExpression*) _tmp552_, (ValaCCodeExpression*) _tmp553_);
			_vala_ccode_node_unref0 (_tmp552_);
			_tmp554_ = vala_ccode_identifier_new ("g_variant_iter_init");
			_tmp555_ = _tmp554_;
			_tmp556_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp555_);
			_tmp557_ = _tmp556_;
			_vala_ccode_node_unref0 (_tmp555_);
			iter_init = _tmp557_;
			_tmp558_ = iter_init;
			_tmp559_ = vala_ccode_identifier_new ("_reply_iter");
			_tmp560_ = _tmp559_;
			_tmp561_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp560_);
			_tmp562_ = _tmp561_;
			vala_ccode_function_call_add_argument (_tmp558_, (ValaCCodeExpression*) _tmp562_);
			_vala_ccode_node_unref0 (_tmp562_);
			_vala_ccode_node_unref0 (_tmp560_);
			_tmp563_ = iter_init;
			_tmp564_ = vala_ccode_identifier_new ("_reply");
			_tmp565_ = _tmp564_;
			vala_ccode_function_call_add_argument (_tmp563_, (ValaCCodeExpression*) _tmp565_);
			_vala_ccode_node_unref0 (_tmp565_);
			_tmp566_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp567_ = _tmp566_;
			_tmp568_ = iter_init;
			vala_ccode_function_add_expression (_tmp567_, (ValaCCodeExpression*) _tmp568_);
			{
				ValaList* _param_list = NULL;
				ValaMethod* _tmp569_;
				ValaList* _tmp570_;
				gint _param_size = 0;
				ValaList* _tmp571_;
				gint _tmp572_;
				gint _tmp573_;
				gint _param_index = 0;
				_tmp569_ = m;
				_tmp570_ = vala_callable_get_parameters ((ValaCallable*) _tmp569_);
				_param_list = _tmp570_;
				_tmp571_ = _param_list;
				_tmp572_ = vala_collection_get_size ((ValaCollection*) _tmp571_);
				_tmp573_ = _tmp572_;
				_param_size = _tmp573_;
				_param_index = -1;
				while (TRUE) {
					gint _tmp574_;
					gint _tmp575_;
					gint _tmp576_;
					ValaParameter* param = NULL;
					ValaList* _tmp577_;
					gint _tmp578_;
					gpointer _tmp579_;
					ValaParameter* _tmp580_;
					ValaParameterDirection _tmp581_;
					ValaParameterDirection _tmp582_;
					_tmp574_ = _param_index;
					_param_index = _tmp574_ + 1;
					_tmp575_ = _param_index;
					_tmp576_ = _param_size;
					if (!(_tmp575_ < _tmp576_)) {
						break;
					}
					_tmp577_ = _param_list;
					_tmp578_ = _param_index;
					_tmp579_ = vala_list_get (_tmp577_, _tmp578_);
					param = (ValaParameter*) _tmp579_;
					_tmp580_ = param;
					_tmp581_ = vala_parameter_get_direction (_tmp580_);
					_tmp582_ = _tmp581_;
					if (_tmp582_ == VALA_PARAMETER_DIRECTION_OUT) {
						ValaCCodeFunction* _tmp583_;
						ValaCCodeFunction* _tmp584_;
						ValaParameter* _tmp585_;
						ValaDataType* _tmp586_;
						ValaDataType* _tmp587_;
						gchar* _tmp588_;
						gchar* _tmp589_;
						ValaParameter* _tmp590_;
						const gchar* _tmp591_;
						const gchar* _tmp592_;
						gchar* _tmp593_;
						gchar* _tmp594_;
						ValaParameter* _tmp595_;
						ValaDataType* _tmp596_;
						ValaDataType* _tmp597_;
						ValaCCodeExpression* _tmp598_;
						ValaCCodeExpression* _tmp599_;
						ValaCCodeVariableDeclarator* _tmp600_;
						ValaCCodeVariableDeclarator* _tmp601_;
						ValaArrayType* array_type = NULL;
						ValaParameter* _tmp602_;
						ValaDataType* _tmp603_;
						ValaDataType* _tmp604_;
						ValaArrayType* _tmp605_;
						ValaArrayType* _tmp606_;
						ValaCCodeIdentifier* target = NULL;
						ValaParameter* _tmp625_;
						const gchar* _tmp626_;
						const gchar* _tmp627_;
						gchar* _tmp628_;
						gchar* _tmp629_;
						ValaCCodeIdentifier* _tmp630_;
						ValaCCodeIdentifier* _tmp631_;
						gboolean may_fail = FALSE;
						ValaParameter* _tmp632_;
						ValaDataType* _tmp633_;
						ValaDataType* _tmp634_;
						ValaCCodeIdentifier* _tmp635_;
						ValaCCodeIdentifier* _tmp636_;
						ValaCCodeIdentifier* _tmp637_;
						ValaCCodeIdentifier* _tmp638_;
						ValaCCodeIdentifier* _tmp639_;
						ValaParameter* _tmp640_;
						ValaCCodeExpression* _tmp641_;
						gboolean _tmp642_ = FALSE;
						ValaCCodeFunction* _tmp643_;
						ValaCCodeFunction* _tmp644_;
						ValaParameter* _tmp645_;
						const gchar* _tmp646_;
						const gchar* _tmp647_;
						gchar* _tmp648_;
						gchar* _tmp649_;
						ValaCCodeIdentifier* _tmp650_;
						ValaCCodeIdentifier* _tmp651_;
						ValaCCodeUnaryExpression* _tmp652_;
						ValaCCodeUnaryExpression* _tmp653_;
						ValaCCodeIdentifier* _tmp654_;
						ValaArrayType* _tmp655_;
						gboolean _tmp682_ = FALSE;
						gboolean _tmp683_;
						_tmp583_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
						_tmp584_ = _tmp583_;
						_tmp585_ = param;
						_tmp586_ = vala_variable_get_variable_type ((ValaVariable*) _tmp585_);
						_tmp587_ = _tmp586_;
						_tmp588_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp587_);
						_tmp589_ = _tmp588_;
						_tmp590_ = param;
						_tmp591_ = vala_symbol_get_name ((ValaSymbol*) _tmp590_);
						_tmp592_ = _tmp591_;
						_tmp593_ = g_strdup_printf ("_vala_%s", _tmp592_);
						_tmp594_ = _tmp593_;
						_tmp595_ = param;
						_tmp596_ = vala_variable_get_variable_type ((ValaVariable*) _tmp595_);
						_tmp597_ = _tmp596_;
						_tmp598_ = vala_ccode_base_module_default_value_for_type ((ValaCCodeBaseModule*) self, _tmp597_, TRUE);
						_tmp599_ = _tmp598_;
						_tmp600_ = vala_ccode_variable_declarator_new_zero (_tmp594_, _tmp599_, NULL);
						_tmp601_ = _tmp600_;
						vala_ccode_function_add_declaration (_tmp584_, _tmp589_, (ValaCCodeDeclarator*) _tmp601_, 0);
						_vala_ccode_node_unref0 (_tmp601_);
						_vala_ccode_node_unref0 (_tmp599_);
						_g_free0 (_tmp594_);
						_g_free0 (_tmp589_);
						_tmp602_ = param;
						_tmp603_ = vala_variable_get_variable_type ((ValaVariable*) _tmp602_);
						_tmp604_ = _tmp603_;
						_tmp605_ = _vala_code_node_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp604_, VALA_TYPE_ARRAY_TYPE) ? ((ValaArrayType*) _tmp604_) : NULL);
						array_type = _tmp605_;
						_tmp606_ = array_type;
						if (_tmp606_ != NULL) {
							{
								gint dim = 0;
								dim = 1;
								{
									gboolean _tmp607_ = FALSE;
									_tmp607_ = TRUE;
									while (TRUE) {
										gint _tmp609_;
										ValaArrayType* _tmp610_;
										gint _tmp611_;
										gint _tmp612_;
										ValaCCodeFunction* _tmp613_;
										ValaCCodeFunction* _tmp614_;
										ValaParameter* _tmp615_;
										const gchar* _tmp616_;
										const gchar* _tmp617_;
										gint _tmp618_;
										gchar* _tmp619_;
										gchar* _tmp620_;
										ValaCCodeConstant* _tmp621_;
										ValaCCodeConstant* _tmp622_;
										ValaCCodeVariableDeclarator* _tmp623_;
										ValaCCodeVariableDeclarator* _tmp624_;
										if (!_tmp607_) {
											gint _tmp608_;
											_tmp608_ = dim;
											dim = _tmp608_ + 1;
										}
										_tmp607_ = FALSE;
										_tmp609_ = dim;
										_tmp610_ = array_type;
										_tmp611_ = vala_array_type_get_rank (_tmp610_);
										_tmp612_ = _tmp611_;
										if (!(_tmp609_ <= _tmp612_)) {
											break;
										}
										_tmp613_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
										_tmp614_ = _tmp613_;
										_tmp615_ = param;
										_tmp616_ = vala_symbol_get_name ((ValaSymbol*) _tmp615_);
										_tmp617_ = _tmp616_;
										_tmp618_ = dim;
										_tmp619_ = g_strdup_printf ("_vala_%s_length%d", _tmp617_, _tmp618_);
										_tmp620_ = _tmp619_;
										_tmp621_ = vala_ccode_constant_new ("0");
										_tmp622_ = _tmp621_;
										_tmp623_ = vala_ccode_variable_declarator_new (_tmp620_, (ValaCCodeExpression*) _tmp622_, NULL);
										_tmp624_ = _tmp623_;
										vala_ccode_function_add_declaration (_tmp614_, "int", (ValaCCodeDeclarator*) _tmp624_, 0);
										_vala_ccode_node_unref0 (_tmp624_);
										_vala_ccode_node_unref0 (_tmp622_);
										_g_free0 (_tmp620_);
									}
								}
							}
						}
						_tmp625_ = param;
						_tmp626_ = vala_symbol_get_name ((ValaSymbol*) _tmp625_);
						_tmp627_ = _tmp626_;
						_tmp628_ = g_strdup_printf ("_vala_%s", _tmp627_);
						_tmp629_ = _tmp628_;
						_tmp630_ = vala_ccode_identifier_new (_tmp629_);
						_tmp631_ = _tmp630_;
						_g_free0 (_tmp629_);
						target = _tmp631_;
						_tmp632_ = param;
						_tmp633_ = vala_variable_get_variable_type ((ValaVariable*) _tmp632_);
						_tmp634_ = _tmp633_;
						_tmp635_ = vala_ccode_identifier_new ("_reply_message");
						_tmp636_ = _tmp635_;
						_tmp637_ = vala_ccode_identifier_new ("_reply_iter");
						_tmp638_ = _tmp637_;
						_tmp639_ = target;
						_tmp640_ = param;
						_tmp641_ = error_argument;
						vala_gd_bus_module_receive_dbus_value ((ValaGDBusModule*) self, _tmp634_, (ValaCCodeExpression*) _tmp636_, (ValaCCodeExpression*) _tmp638_, (ValaCCodeExpression*) _tmp639_, (ValaSymbol*) _tmp640_, _tmp641_, &_tmp642_);
						may_fail = _tmp642_;
						_vala_ccode_node_unref0 (_tmp638_);
						_vala_ccode_node_unref0 (_tmp636_);
						_tmp643_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
						_tmp644_ = _tmp643_;
						_tmp645_ = param;
						_tmp646_ = vala_symbol_get_name ((ValaSymbol*) _tmp645_);
						_tmp647_ = _tmp646_;
						_tmp648_ = vala_ccode_base_module_get_variable_cname ((ValaCCodeBaseModule*) self, _tmp647_);
						_tmp649_ = _tmp648_;
						_tmp650_ = vala_ccode_identifier_new (_tmp649_);
						_tmp651_ = _tmp650_;
						_tmp652_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_POINTER_INDIRECTION, (ValaCCodeExpression*) _tmp651_);
						_tmp653_ = _tmp652_;
						_tmp654_ = target;
						vala_ccode_function_add_assignment (_tmp644_, (ValaCCodeExpression*) _tmp653_, (ValaCCodeExpression*) _tmp654_);
						_vala_ccode_node_unref0 (_tmp653_);
						_vala_ccode_node_unref0 (_tmp651_);
						_g_free0 (_tmp649_);
						_tmp655_ = array_type;
						if (_tmp655_ != NULL) {
							{
								gint dim = 0;
								dim = 1;
								{
									gboolean _tmp656_ = FALSE;
									_tmp656_ = TRUE;
									while (TRUE) {
										gint _tmp658_;
										ValaArrayType* _tmp659_;
										gint _tmp660_;
										gint _tmp661_;
										ValaCCodeFunction* _tmp662_;
										ValaCCodeFunction* _tmp663_;
										ValaParameter* _tmp664_;
										const gchar* _tmp665_;
										const gchar* _tmp666_;
										gint _tmp667_;
										gchar* _tmp668_;
										gchar* _tmp669_;
										ValaCCodeIdentifier* _tmp670_;
										ValaCCodeIdentifier* _tmp671_;
										ValaCCodeUnaryExpression* _tmp672_;
										ValaCCodeUnaryExpression* _tmp673_;
										ValaParameter* _tmp674_;
										const gchar* _tmp675_;
										const gchar* _tmp676_;
										gint _tmp677_;
										gchar* _tmp678_;
										gchar* _tmp679_;
										ValaCCodeIdentifier* _tmp680_;
										ValaCCodeIdentifier* _tmp681_;
										if (!_tmp656_) {
											gint _tmp657_;
											_tmp657_ = dim;
											dim = _tmp657_ + 1;
										}
										_tmp656_ = FALSE;
										_tmp658_ = dim;
										_tmp659_ = array_type;
										_tmp660_ = vala_array_type_get_rank (_tmp659_);
										_tmp661_ = _tmp660_;
										if (!(_tmp658_ <= _tmp661_)) {
											break;
										}
										_tmp662_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
										_tmp663_ = _tmp662_;
										_tmp664_ = param;
										_tmp665_ = vala_symbol_get_name ((ValaSymbol*) _tmp664_);
										_tmp666_ = _tmp665_;
										_tmp667_ = dim;
										_tmp668_ = g_strdup_printf ("%s_length%d", _tmp666_, _tmp667_);
										_tmp669_ = _tmp668_;
										_tmp670_ = vala_ccode_identifier_new (_tmp669_);
										_tmp671_ = _tmp670_;
										_tmp672_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_POINTER_INDIRECTION, (ValaCCodeExpression*) _tmp671_);
										_tmp673_ = _tmp672_;
										_tmp674_ = param;
										_tmp675_ = vala_symbol_get_name ((ValaSymbol*) _tmp674_);
										_tmp676_ = _tmp675_;
										_tmp677_ = dim;
										_tmp678_ = g_strdup_printf ("_vala_%s_length%d", _tmp676_, _tmp677_);
										_tmp679_ = _tmp678_;
										_tmp680_ = vala_ccode_identifier_new (_tmp679_);
										_tmp681_ = _tmp680_;
										vala_ccode_function_add_assignment (_tmp663_, (ValaCCodeExpression*) _tmp673_, (ValaCCodeExpression*) _tmp681_);
										_vala_ccode_node_unref0 (_tmp681_);
										_g_free0 (_tmp679_);
										_vala_ccode_node_unref0 (_tmp673_);
										_vala_ccode_node_unref0 (_tmp671_);
										_g_free0 (_tmp669_);
									}
								}
							}
						}
						_tmp683_ = may_fail;
						if (_tmp683_) {
							gboolean _tmp684_;
							_tmp684_ = has_error_argument;
							_tmp682_ = _tmp684_;
						} else {
							_tmp682_ = FALSE;
						}
						if (_tmp682_) {
							ValaCCodeFunction* _tmp685_;
							ValaCCodeFunction* _tmp686_;
							ValaCCodeIdentifier* _tmp687_;
							ValaCCodeIdentifier* _tmp688_;
							ValaCCodeIdentifier* _tmp689_;
							ValaCCodeIdentifier* _tmp690_;
							ValaCCodeUnaryExpression* _tmp691_;
							ValaCCodeUnaryExpression* _tmp692_;
							ValaCCodeBinaryExpression* _tmp693_;
							ValaCCodeBinaryExpression* _tmp694_;
							ValaCCodeFunction* _tmp695_;
							ValaCCodeFunction* _tmp696_;
							ValaCCodeFunctionCall* _tmp697_;
							ValaMethod* _tmp698_;
							ValaDataType* _tmp699_;
							ValaDataType* _tmp700_;
							ValaCCodeFunction* _tmp701_;
							ValaCCodeFunction* _tmp702_;
							_tmp685_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
							_tmp686_ = _tmp685_;
							_tmp687_ = vala_ccode_identifier_new ("error");
							_tmp688_ = _tmp687_;
							_tmp689_ = vala_ccode_identifier_new ("error");
							_tmp690_ = _tmp689_;
							_tmp691_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_POINTER_INDIRECTION, (ValaCCodeExpression*) _tmp690_);
							_tmp692_ = _tmp691_;
							_tmp693_ = vala_ccode_binary_expression_new (VALA_CCODE_BINARY_OPERATOR_AND, (ValaCCodeExpression*) _tmp688_, (ValaCCodeExpression*) _tmp692_);
							_tmp694_ = _tmp693_;
							vala_ccode_function_open_if (_tmp686_, (ValaCCodeExpression*) _tmp694_);
							_vala_ccode_node_unref0 (_tmp694_);
							_vala_ccode_node_unref0 (_tmp692_);
							_vala_ccode_node_unref0 (_tmp690_);
							_vala_ccode_node_unref0 (_tmp688_);
							_tmp695_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
							_tmp696_ = _tmp695_;
							_tmp697_ = unref_reply;
							vala_ccode_function_add_expression (_tmp696_, (ValaCCodeExpression*) _tmp697_);
							_tmp698_ = m;
							_tmp699_ = vala_callable_get_return_type ((ValaCallable*) _tmp698_);
							_tmp700_ = _tmp699_;
							vala_ccode_base_module_return_default_value ((ValaCCodeBaseModule*) self, _tmp700_);
							_tmp701_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
							_tmp702_ = _tmp701_;
							vala_ccode_function_close (_tmp702_);
						}
						_vala_ccode_node_unref0 (target);
						_vala_code_node_unref0 (array_type);
					}
					_vala_code_node_unref0 (param);
				}
				_vala_iterable_unref0 (_param_list);
			}
			_tmp703_ = m;
			_tmp704_ = vala_callable_get_return_type ((ValaCallable*) _tmp703_);
			_tmp705_ = _tmp704_;
			if (!G_TYPE_CHECK_INSTANCE_TYPE (_tmp705_, VALA_TYPE_VOID_TYPE)) {
				ValaMethod* _tmp706_;
				ValaDataType* _tmp707_;
				ValaDataType* _tmp708_;
				gboolean _tmp709_;
				_tmp706_ = m;
				_tmp707_ = vala_callable_get_return_type ((ValaCallable*) _tmp706_);
				_tmp708_ = _tmp707_;
				_tmp709_ = vala_data_type_is_real_non_null_struct_type (_tmp708_);
				if (_tmp709_) {
					ValaCCodeUnaryExpression* target = NULL;
					ValaCCodeIdentifier* _tmp710_;
					ValaCCodeIdentifier* _tmp711_;
					ValaCCodeUnaryExpression* _tmp712_;
					ValaCCodeUnaryExpression* _tmp713_;
					ValaMethod* _tmp714_;
					ValaDataType* _tmp715_;
					ValaDataType* _tmp716_;
					ValaCCodeIdentifier* _tmp717_;
					ValaCCodeIdentifier* _tmp718_;
					ValaCCodeIdentifier* _tmp719_;
					ValaCCodeIdentifier* _tmp720_;
					ValaCCodeUnaryExpression* _tmp721_;
					ValaMethod* _tmp722_;
					_tmp710_ = vala_ccode_identifier_new ("result");
					_tmp711_ = _tmp710_;
					_tmp712_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_POINTER_INDIRECTION, (ValaCCodeExpression*) _tmp711_);
					_tmp713_ = _tmp712_;
					_vala_ccode_node_unref0 (_tmp711_);
					target = _tmp713_;
					_tmp714_ = m;
					_tmp715_ = vala_callable_get_return_type ((ValaCallable*) _tmp714_);
					_tmp716_ = _tmp715_;
					_tmp717_ = vala_ccode_identifier_new ("_reply_message");
					_tmp718_ = _tmp717_;
					_tmp719_ = vala_ccode_identifier_new ("_reply_iter");
					_tmp720_ = _tmp719_;
					_tmp721_ = target;
					_tmp722_ = m;
					vala_gd_bus_module_receive_dbus_value ((ValaGDBusModule*) self, _tmp716_, (ValaCCodeExpression*) _tmp718_, (ValaCCodeExpression*) _tmp720_, (ValaCCodeExpression*) _tmp721_, (ValaSymbol*) _tmp722_, NULL, NULL);
					_vala_ccode_node_unref0 (_tmp720_);
					_vala_ccode_node_unref0 (_tmp718_);
					_vala_ccode_node_unref0 (target);
				} else {
					ValaCCodeFunction* _tmp723_;
					ValaCCodeFunction* _tmp724_;
					ValaMethod* _tmp725_;
					ValaDataType* _tmp726_;
					ValaDataType* _tmp727_;
					gchar* _tmp728_;
					gchar* _tmp729_;
					ValaMethod* _tmp730_;
					ValaDataType* _tmp731_;
					ValaDataType* _tmp732_;
					ValaCCodeExpression* _tmp733_;
					ValaCCodeExpression* _tmp734_;
					ValaCCodeVariableDeclarator* _tmp735_;
					ValaCCodeVariableDeclarator* _tmp736_;
					ValaArrayType* array_type = NULL;
					ValaMethod* _tmp737_;
					ValaDataType* _tmp738_;
					ValaDataType* _tmp739_;
					ValaArrayType* _tmp740_;
					ValaArrayType* _tmp741_;
					gboolean may_fail = FALSE;
					ValaMethod* _tmp757_;
					ValaDataType* _tmp758_;
					ValaDataType* _tmp759_;
					ValaCCodeIdentifier* _tmp760_;
					ValaCCodeIdentifier* _tmp761_;
					ValaCCodeIdentifier* _tmp762_;
					ValaCCodeIdentifier* _tmp763_;
					ValaCCodeIdentifier* _tmp764_;
					ValaCCodeIdentifier* _tmp765_;
					ValaMethod* _tmp766_;
					ValaCCodeIdentifier* _tmp767_;
					ValaCCodeIdentifier* _tmp768_;
					gboolean _tmp769_ = FALSE;
					ValaArrayType* _tmp770_;
					gboolean _tmp791_;
					_tmp723_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
					_tmp724_ = _tmp723_;
					_tmp725_ = m;
					_tmp726_ = vala_callable_get_return_type ((ValaCallable*) _tmp725_);
					_tmp727_ = _tmp726_;
					_tmp728_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp727_);
					_tmp729_ = _tmp728_;
					_tmp730_ = m;
					_tmp731_ = vala_callable_get_return_type ((ValaCallable*) _tmp730_);
					_tmp732_ = _tmp731_;
					_tmp733_ = vala_ccode_base_module_default_value_for_type ((ValaCCodeBaseModule*) self, _tmp732_, TRUE);
					_tmp734_ = _tmp733_;
					_tmp735_ = vala_ccode_variable_declarator_new_zero ("_result", _tmp734_, NULL);
					_tmp736_ = _tmp735_;
					vala_ccode_function_add_declaration (_tmp724_, _tmp729_, (ValaCCodeDeclarator*) _tmp736_, 0);
					_vala_ccode_node_unref0 (_tmp736_);
					_vala_ccode_node_unref0 (_tmp734_);
					_g_free0 (_tmp729_);
					_tmp737_ = m;
					_tmp738_ = vala_callable_get_return_type ((ValaCallable*) _tmp737_);
					_tmp739_ = _tmp738_;
					_tmp740_ = _vala_code_node_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp739_, VALA_TYPE_ARRAY_TYPE) ? ((ValaArrayType*) _tmp739_) : NULL);
					array_type = _tmp740_;
					_tmp741_ = array_type;
					if (_tmp741_ != NULL) {
						{
							gint dim = 0;
							dim = 1;
							{
								gboolean _tmp742_ = FALSE;
								_tmp742_ = TRUE;
								while (TRUE) {
									gint _tmp744_;
									ValaArrayType* _tmp745_;
									gint _tmp746_;
									gint _tmp747_;
									ValaCCodeFunction* _tmp748_;
									ValaCCodeFunction* _tmp749_;
									gint _tmp750_;
									gchar* _tmp751_;
									gchar* _tmp752_;
									ValaCCodeConstant* _tmp753_;
									ValaCCodeConstant* _tmp754_;
									ValaCCodeVariableDeclarator* _tmp755_;
									ValaCCodeVariableDeclarator* _tmp756_;
									if (!_tmp742_) {
										gint _tmp743_;
										_tmp743_ = dim;
										dim = _tmp743_ + 1;
									}
									_tmp742_ = FALSE;
									_tmp744_ = dim;
									_tmp745_ = array_type;
									_tmp746_ = vala_array_type_get_rank (_tmp745_);
									_tmp747_ = _tmp746_;
									if (!(_tmp744_ <= _tmp747_)) {
										break;
									}
									_tmp748_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
									_tmp749_ = _tmp748_;
									_tmp750_ = dim;
									_tmp751_ = g_strdup_printf ("_result_length%d", _tmp750_);
									_tmp752_ = _tmp751_;
									_tmp753_ = vala_ccode_constant_new ("0");
									_tmp754_ = _tmp753_;
									_tmp755_ = vala_ccode_variable_declarator_new (_tmp752_, (ValaCCodeExpression*) _tmp754_, NULL);
									_tmp756_ = _tmp755_;
									vala_ccode_function_add_declaration (_tmp749_, "int", (ValaCCodeDeclarator*) _tmp756_, 0);
									_vala_ccode_node_unref0 (_tmp756_);
									_vala_ccode_node_unref0 (_tmp754_);
									_g_free0 (_tmp752_);
								}
							}
						}
					}
					_tmp757_ = m;
					_tmp758_ = vala_callable_get_return_type ((ValaCallable*) _tmp757_);
					_tmp759_ = _tmp758_;
					_tmp760_ = vala_ccode_identifier_new ("_reply_message");
					_tmp761_ = _tmp760_;
					_tmp762_ = vala_ccode_identifier_new ("_reply_iter");
					_tmp763_ = _tmp762_;
					_tmp764_ = vala_ccode_identifier_new ("_result");
					_tmp765_ = _tmp764_;
					_tmp766_ = m;
					_tmp767_ = vala_ccode_identifier_new ("error");
					_tmp768_ = _tmp767_;
					vala_gd_bus_module_receive_dbus_value ((ValaGDBusModule*) self, _tmp759_, (ValaCCodeExpression*) _tmp761_, (ValaCCodeExpression*) _tmp763_, (ValaCCodeExpression*) _tmp765_, (ValaSymbol*) _tmp766_, (ValaCCodeExpression*) _tmp768_, &_tmp769_);
					may_fail = _tmp769_;
					_vala_ccode_node_unref0 (_tmp768_);
					_vala_ccode_node_unref0 (_tmp765_);
					_vala_ccode_node_unref0 (_tmp763_);
					_vala_ccode_node_unref0 (_tmp761_);
					_tmp770_ = array_type;
					if (_tmp770_ != NULL) {
						{
							gint dim = 0;
							dim = 1;
							{
								gboolean _tmp771_ = FALSE;
								_tmp771_ = TRUE;
								while (TRUE) {
									gint _tmp773_;
									ValaArrayType* _tmp774_;
									gint _tmp775_;
									gint _tmp776_;
									ValaCCodeFunction* _tmp777_;
									ValaCCodeFunction* _tmp778_;
									gint _tmp779_;
									gchar* _tmp780_;
									gchar* _tmp781_;
									ValaCCodeIdentifier* _tmp782_;
									ValaCCodeIdentifier* _tmp783_;
									ValaCCodeUnaryExpression* _tmp784_;
									ValaCCodeUnaryExpression* _tmp785_;
									gint _tmp786_;
									gchar* _tmp787_;
									gchar* _tmp788_;
									ValaCCodeIdentifier* _tmp789_;
									ValaCCodeIdentifier* _tmp790_;
									if (!_tmp771_) {
										gint _tmp772_;
										_tmp772_ = dim;
										dim = _tmp772_ + 1;
									}
									_tmp771_ = FALSE;
									_tmp773_ = dim;
									_tmp774_ = array_type;
									_tmp775_ = vala_array_type_get_rank (_tmp774_);
									_tmp776_ = _tmp775_;
									if (!(_tmp773_ <= _tmp776_)) {
										break;
									}
									_tmp777_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
									_tmp778_ = _tmp777_;
									_tmp779_ = dim;
									_tmp780_ = g_strdup_printf ("result_length%d", _tmp779_);
									_tmp781_ = _tmp780_;
									_tmp782_ = vala_ccode_identifier_new (_tmp781_);
									_tmp783_ = _tmp782_;
									_tmp784_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_POINTER_INDIRECTION, (ValaCCodeExpression*) _tmp783_);
									_tmp785_ = _tmp784_;
									_tmp786_ = dim;
									_tmp787_ = g_strdup_printf ("_result_length%d", _tmp786_);
									_tmp788_ = _tmp787_;
									_tmp789_ = vala_ccode_identifier_new (_tmp788_);
									_tmp790_ = _tmp789_;
									vala_ccode_function_add_assignment (_tmp778_, (ValaCCodeExpression*) _tmp785_, (ValaCCodeExpression*) _tmp790_);
									_vala_ccode_node_unref0 (_tmp790_);
									_g_free0 (_tmp788_);
									_vala_ccode_node_unref0 (_tmp785_);
									_vala_ccode_node_unref0 (_tmp783_);
									_g_free0 (_tmp781_);
								}
							}
						}
					}
					_tmp791_ = may_fail;
					if (_tmp791_) {
						ValaCCodeFunction* _tmp792_;
						ValaCCodeFunction* _tmp793_;
						ValaCCodeIdentifier* _tmp794_;
						ValaCCodeIdentifier* _tmp795_;
						ValaCCodeIdentifier* _tmp796_;
						ValaCCodeIdentifier* _tmp797_;
						ValaCCodeUnaryExpression* _tmp798_;
						ValaCCodeUnaryExpression* _tmp799_;
						ValaCCodeBinaryExpression* _tmp800_;
						ValaCCodeBinaryExpression* _tmp801_;
						ValaCCodeFunction* _tmp802_;
						ValaCCodeFunction* _tmp803_;
						ValaCCodeFunctionCall* _tmp804_;
						ValaMethod* _tmp805_;
						ValaDataType* _tmp806_;
						ValaDataType* _tmp807_;
						ValaCCodeFunction* _tmp808_;
						ValaCCodeFunction* _tmp809_;
						_tmp792_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
						_tmp793_ = _tmp792_;
						_tmp794_ = vala_ccode_identifier_new ("error");
						_tmp795_ = _tmp794_;
						_tmp796_ = vala_ccode_identifier_new ("error");
						_tmp797_ = _tmp796_;
						_tmp798_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_POINTER_INDIRECTION, (ValaCCodeExpression*) _tmp797_);
						_tmp799_ = _tmp798_;
						_tmp800_ = vala_ccode_binary_expression_new (VALA_CCODE_BINARY_OPERATOR_AND, (ValaCCodeExpression*) _tmp795_, (ValaCCodeExpression*) _tmp799_);
						_tmp801_ = _tmp800_;
						vala_ccode_function_open_if (_tmp793_, (ValaCCodeExpression*) _tmp801_);
						_vala_ccode_node_unref0 (_tmp801_);
						_vala_ccode_node_unref0 (_tmp799_);
						_vala_ccode_node_unref0 (_tmp797_);
						_vala_ccode_node_unref0 (_tmp795_);
						_tmp802_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
						_tmp803_ = _tmp802_;
						_tmp804_ = unref_reply;
						vala_ccode_function_add_expression (_tmp803_, (ValaCCodeExpression*) _tmp804_);
						_tmp805_ = m;
						_tmp806_ = vala_callable_get_return_type ((ValaCallable*) _tmp805_);
						_tmp807_ = _tmp806_;
						vala_ccode_base_module_return_default_value ((ValaCCodeBaseModule*) self, _tmp807_);
						_tmp808_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
						_tmp809_ = _tmp808_;
						vala_ccode_function_close (_tmp809_);
					}
					_vala_code_node_unref0 (array_type);
				}
			}
			_vala_ccode_node_unref0 (iter_init);
		}
		_tmp810_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp811_ = _tmp810_;
		_tmp812_ = unref_reply;
		vala_ccode_function_add_expression (_tmp811_, (ValaCCodeExpression*) _tmp812_);
		_tmp814_ = m;
		_tmp815_ = vala_callable_get_return_type ((ValaCallable*) _tmp814_);
		_tmp816_ = _tmp815_;
		if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp816_, VALA_TYPE_VOID_TYPE)) {
			_tmp813_ = TRUE;
		} else {
			ValaMethod* _tmp817_;
			ValaDataType* _tmp818_;
			ValaDataType* _tmp819_;
			gboolean _tmp820_;
			_tmp817_ = m;
			_tmp818_ = vala_callable_get_return_type ((ValaCallable*) _tmp817_);
			_tmp819_ = _tmp818_;
			_tmp820_ = vala_data_type_is_real_non_null_struct_type (_tmp819_);
			_tmp813_ = _tmp820_;
		}
		if (!_tmp813_) {
			ValaCCodeFunction* _tmp821_;
			ValaCCodeFunction* _tmp822_;
			ValaCCodeIdentifier* _tmp823_;
			ValaCCodeIdentifier* _tmp824_;
			_tmp821_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp822_ = _tmp821_;
			_tmp823_ = vala_ccode_identifier_new ("_result");
			_tmp824_ = _tmp823_;
			vala_ccode_function_add_return (_tmp822_, (ValaCCodeExpression*) _tmp824_);
			_vala_ccode_node_unref0 (_tmp824_);
		}
		_vala_ccode_node_unref0 (ccall);
		_vala_ccode_node_unref0 (reply_is_null);
		_vala_ccode_node_unref0 (unref_reply);
	}
	_vala_ccode_node_unref0 (error_argument);
	_vala_ccode_node_unref0 (connection);
	_vala_ccode_node_unref0 (gdbusproxy);
}


static gchar* vala_gd_bus_client_module_generate_dbus_proxy_method (ValaGDBusClientModule* self, ValaInterface* main_iface, ValaInterface* iface, ValaMethod* m) {
	gchar* result = NULL;
	gchar* proxy_name = NULL;
	ValaInterface* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	ValaMethod* _tmp3_;
	const gchar* _tmp4_;
	const gchar* _tmp5_;
	gchar* _tmp6_;
	gchar* _tmp7_;
	gchar* dbus_iface_name = NULL;
	ValaInterface* _tmp8_;
	gchar* _tmp9_;
	gboolean no_reply = FALSE;
	ValaMethod* _tmp10_;
	gboolean _tmp11_;
	ValaCCodeFunction* function = NULL;
	const gchar* _tmp12_;
	ValaCCodeFunction* _tmp13_;
	ValaCCodeFunction* _tmp14_;
	ValaHashMap* cparam_map = NULL;
	GHashFunc _tmp15_;
	GEqualFunc _tmp16_;
	GEqualFunc _tmp17_;
	ValaHashMap* _tmp18_;
	ValaMethod* _tmp19_;
	ValaCCodeFile* _tmp20_;
	ValaHashMap* _tmp21_;
	ValaCCodeFunction* _tmp22_;
	ValaCCodeFunction* _tmp23_;
	ValaGDBusClientModuleCallType _tmp24_ = 0;
	gboolean _tmp25_;
	ValaMethod* _tmp26_;
	const gchar* _tmp27_;
	ValaMethod* _tmp28_;
	gchar* _tmp29_;
	gchar* _tmp30_;
	ValaMethod* _tmp31_;
	gint _tmp32_;
	ValaCCodeFile* _tmp33_;
	ValaCCodeFunction* _tmp34_;
	ValaCCodeFile* _tmp35_;
	ValaCCodeFunction* _tmp36_;
	g_return_val_if_fail (self != NULL, NULL);
	g_return_val_if_fail (main_iface != NULL, NULL);
	g_return_val_if_fail (iface != NULL, NULL);
	g_return_val_if_fail (m != NULL, NULL);
	_tmp0_ = main_iface;
	_tmp1_ = vala_ccode_base_module_get_ccode_lower_case_prefix ((ValaSymbol*) _tmp0_);
	_tmp2_ = _tmp1_;
	_tmp3_ = m;
	_tmp4_ = vala_symbol_get_name ((ValaSymbol*) _tmp3_);
	_tmp5_ = _tmp4_;
	_tmp6_ = g_strdup_printf ("%sproxy_%s", _tmp2_, _tmp5_);
	_tmp7_ = _tmp6_;
	_g_free0 (_tmp2_);
	proxy_name = _tmp7_;
	_tmp8_ = iface;
	_tmp9_ = vala_gd_bus_module_get_dbus_name ((ValaTypeSymbol*) _tmp8_);
	dbus_iface_name = _tmp9_;
	_tmp10_ = m;
	_tmp11_ = vala_gd_bus_module_is_dbus_no_reply (_tmp10_);
	no_reply = _tmp11_;
	_tmp12_ = proxy_name;
	_tmp13_ = vala_ccode_function_new (_tmp12_, "void");
	function = _tmp13_;
	_tmp14_ = function;
	vala_ccode_node_set_modifiers ((ValaCCodeNode*) _tmp14_, VALA_CCODE_MODIFIERS_STATIC);
	_tmp15_ = g_direct_hash;
	_tmp16_ = g_direct_equal;
	_tmp17_ = g_direct_equal;
	_tmp18_ = vala_hash_map_new (G_TYPE_INT, NULL, NULL, VALA_TYPE_CCODE_PARAMETER, (GBoxedCopyFunc) vala_ccode_node_ref, (GDestroyNotify) vala_ccode_node_unref, _tmp15_, _tmp16_, _tmp17_);
	cparam_map = _tmp18_;
	_tmp19_ = m;
	_tmp20_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp21_ = cparam_map;
	_tmp22_ = function;
	vala_ccode_base_module_generate_cparameters ((ValaCCodeBaseModule*) self, _tmp19_, _tmp20_, (ValaMap*) _tmp21_, _tmp22_, NULL, NULL, NULL, 3);
	_tmp23_ = function;
	vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, _tmp23_);
	_tmp25_ = no_reply;
	if (_tmp25_) {
		_tmp24_ = VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_NO_REPLY;
	} else {
		_tmp24_ = VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_SYNC;
	}
	_tmp26_ = m;
	_tmp27_ = dbus_iface_name;
	_tmp28_ = m;
	_tmp29_ = vala_gd_bus_module_get_dbus_name_for_member ((ValaSymbol*) _tmp28_);
	_tmp30_ = _tmp29_;
	_tmp31_ = m;
	_tmp32_ = vala_gd_bus_module_get_dbus_timeout_for_member ((ValaSymbol*) _tmp31_);
	vala_gd_bus_client_module_generate_marshalling (self, _tmp26_, _tmp24_, _tmp27_, _tmp30_, _tmp32_);
	_g_free0 (_tmp30_);
	vala_ccode_base_module_pop_function ((ValaCCodeBaseModule*) self);
	_tmp33_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp34_ = function;
	vala_ccode_file_add_function_declaration (_tmp33_, _tmp34_);
	_tmp35_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp36_ = function;
	vala_ccode_file_add_function (_tmp35_, _tmp36_);
	result = proxy_name;
	_vala_map_unref0 (cparam_map);
	_vala_ccode_node_unref0 (function);
	_g_free0 (dbus_iface_name);
	return result;
}


static gchar* vala_gd_bus_client_module_generate_async_dbus_proxy_method (ValaGDBusClientModule* self, ValaInterface* main_iface, ValaInterface* iface, ValaMethod* m) {
	gchar* result = NULL;
	gchar* proxy_name = NULL;
	ValaInterface* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	ValaMethod* _tmp3_;
	const gchar* _tmp4_;
	const gchar* _tmp5_;
	gchar* _tmp6_;
	gchar* _tmp7_;
	gchar* dbus_iface_name = NULL;
	ValaInterface* _tmp8_;
	gchar* _tmp9_;
	ValaCCodeFunction* function = NULL;
	ValaCCodeFunction* _tmp10_;
	ValaHashMap* cparam_map = NULL;
	GHashFunc _tmp11_;
	GEqualFunc _tmp12_;
	GEqualFunc _tmp13_;
	ValaHashMap* _tmp14_;
	gint _tmp15_;
	ValaCCodeParameter* _tmp16_;
	ValaCCodeParameter* _tmp17_;
	gint _tmp18_;
	ValaCCodeParameter* _tmp19_;
	ValaCCodeParameter* _tmp20_;
	ValaMethod* _tmp21_;
	ValaCCodeFile* _tmp22_;
	ValaMethod* _tmp23_;
	ValaMethod* _tmp24_;
	gchar* _tmp25_;
	gchar* _tmp26_;
	ValaMethod* _tmp27_;
	gint _tmp28_;
	ValaCCodeFile* _tmp29_;
	ValaCCodeFile* _tmp30_;
	g_return_val_if_fail (self != NULL, NULL);
	g_return_val_if_fail (main_iface != NULL, NULL);
	g_return_val_if_fail (iface != NULL, NULL);
	g_return_val_if_fail (m != NULL, NULL);
	_tmp0_ = main_iface;
	_tmp1_ = vala_ccode_base_module_get_ccode_lower_case_prefix ((ValaSymbol*) _tmp0_);
	_tmp2_ = _tmp1_;
	_tmp3_ = m;
	_tmp4_ = vala_symbol_get_name ((ValaSymbol*) _tmp3_);
	_tmp5_ = _tmp4_;
	_tmp6_ = g_strdup_printf ("%sproxy_%s_async", _tmp2_, _tmp5_);
	_tmp7_ = _tmp6_;
	_g_free0 (_tmp2_);
	proxy_name = _tmp7_;
	_tmp8_ = iface;
	_tmp9_ = vala_gd_bus_module_get_dbus_name ((ValaTypeSymbol*) _tmp8_);
	dbus_iface_name = _tmp9_;
	_tmp10_ = vala_ccode_function_new (proxy_name, "void");
	function = _tmp10_;
	vala_ccode_node_set_modifiers ((ValaCCodeNode*) function, VALA_CCODE_MODIFIERS_STATIC);
	_tmp11_ = g_direct_hash;
	_tmp12_ = g_direct_equal;
	_tmp13_ = g_direct_equal;
	_tmp14_ = vala_hash_map_new (G_TYPE_INT, NULL, NULL, VALA_TYPE_CCODE_PARAMETER, (GBoxedCopyFunc) vala_ccode_node_ref, (GDestroyNotify) vala_ccode_node_unref, _tmp11_, _tmp12_, _tmp13_);
	cparam_map = _tmp14_;
	_tmp15_ = vala_ccode_base_module_get_param_pos ((ValaCCodeBaseModule*) self, (gdouble) -1, FALSE);
	_tmp16_ = vala_ccode_parameter_new ("_callback_", "GAsyncReadyCallback");
	_tmp17_ = _tmp16_;
	vala_map_set ((ValaMap*) cparam_map, (gpointer) ((gintptr) _tmp15_), _tmp17_);
	_vala_ccode_node_unref0 (_tmp17_);
	_tmp18_ = vala_ccode_base_module_get_param_pos ((ValaCCodeBaseModule*) self, -0.9, FALSE);
	_tmp19_ = vala_ccode_parameter_new ("_user_data_", "gpointer");
	_tmp20_ = _tmp19_;
	vala_map_set ((ValaMap*) cparam_map, (gpointer) ((gintptr) _tmp18_), _tmp20_);
	_vala_ccode_node_unref0 (_tmp20_);
	_tmp21_ = m;
	_tmp22_ = ((ValaCCodeBaseModule*) self)->cfile;
	vala_ccode_base_module_generate_cparameters ((ValaCCodeBaseModule*) self, _tmp21_, _tmp22_, (ValaMap*) cparam_map, function, NULL, NULL, NULL, 1);
	vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, function);
	_tmp23_ = m;
	_tmp24_ = m;
	_tmp25_ = vala_gd_bus_module_get_dbus_name_for_member ((ValaSymbol*) _tmp24_);
	_tmp26_ = _tmp25_;
	_tmp27_ = m;
	_tmp28_ = vala_gd_bus_module_get_dbus_timeout_for_member ((ValaSymbol*) _tmp27_);
	vala_gd_bus_client_module_generate_marshalling (self, _tmp23_, VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_ASYNC, dbus_iface_name, _tmp26_, _tmp28_);
	_g_free0 (_tmp26_);
	vala_ccode_base_module_pop_function ((ValaCCodeBaseModule*) self);
	_tmp29_ = ((ValaCCodeBaseModule*) self)->cfile;
	vala_ccode_file_add_function_declaration (_tmp29_, function);
	_tmp30_ = ((ValaCCodeBaseModule*) self)->cfile;
	vala_ccode_file_add_function (_tmp30_, function);
	result = proxy_name;
	_vala_map_unref0 (cparam_map);
	_vala_ccode_node_unref0 (function);
	_g_free0 (dbus_iface_name);
	return result;
}


static gchar* vala_gd_bus_client_module_generate_finish_dbus_proxy_method (ValaGDBusClientModule* self, ValaInterface* main_iface, ValaInterface* iface, ValaMethod* m) {
	gchar* result = NULL;
	gchar* proxy_name = NULL;
	ValaInterface* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	ValaMethod* _tmp3_;
	const gchar* _tmp4_;
	const gchar* _tmp5_;
	gchar* _tmp6_;
	gchar* _tmp7_;
	ValaCCodeFunction* function = NULL;
	ValaCCodeFunction* _tmp8_;
	ValaHashMap* cparam_map = NULL;
	GHashFunc _tmp9_;
	GEqualFunc _tmp10_;
	GEqualFunc _tmp11_;
	ValaHashMap* _tmp12_;
	gint _tmp13_;
	ValaCCodeParameter* _tmp14_;
	ValaCCodeParameter* _tmp15_;
	ValaMethod* _tmp16_;
	ValaCCodeFile* _tmp17_;
	ValaMethod* _tmp18_;
	ValaCCodeFile* _tmp19_;
	ValaCCodeFile* _tmp20_;
	g_return_val_if_fail (self != NULL, NULL);
	g_return_val_if_fail (main_iface != NULL, NULL);
	g_return_val_if_fail (iface != NULL, NULL);
	g_return_val_if_fail (m != NULL, NULL);
	_tmp0_ = main_iface;
	_tmp1_ = vala_ccode_base_module_get_ccode_lower_case_prefix ((ValaSymbol*) _tmp0_);
	_tmp2_ = _tmp1_;
	_tmp3_ = m;
	_tmp4_ = vala_symbol_get_name ((ValaSymbol*) _tmp3_);
	_tmp5_ = _tmp4_;
	_tmp6_ = g_strdup_printf ("%sproxy_%s_finish", _tmp2_, _tmp5_);
	_tmp7_ = _tmp6_;
	_g_free0 (_tmp2_);
	proxy_name = _tmp7_;
	_tmp8_ = vala_ccode_function_new (proxy_name, "void");
	function = _tmp8_;
	vala_ccode_node_set_modifiers ((ValaCCodeNode*) function, VALA_CCODE_MODIFIERS_STATIC);
	_tmp9_ = g_direct_hash;
	_tmp10_ = g_direct_equal;
	_tmp11_ = g_direct_equal;
	_tmp12_ = vala_hash_map_new (G_TYPE_INT, NULL, NULL, VALA_TYPE_CCODE_PARAMETER, (GBoxedCopyFunc) vala_ccode_node_ref, (GDestroyNotify) vala_ccode_node_unref, _tmp9_, _tmp10_, _tmp11_);
	cparam_map = _tmp12_;
	_tmp13_ = vala_ccode_base_module_get_param_pos ((ValaCCodeBaseModule*) self, 0.1, FALSE);
	_tmp14_ = vala_ccode_parameter_new ("_res_", "GAsyncResult*");
	_tmp15_ = _tmp14_;
	vala_map_set ((ValaMap*) cparam_map, (gpointer) ((gintptr) _tmp13_), _tmp15_);
	_vala_ccode_node_unref0 (_tmp15_);
	_tmp16_ = m;
	_tmp17_ = ((ValaCCodeBaseModule*) self)->cfile;
	vala_ccode_base_module_generate_cparameters ((ValaCCodeBaseModule*) self, _tmp16_, _tmp17_, (ValaMap*) cparam_map, function, NULL, NULL, NULL, 2);
	vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, function);
	_tmp18_ = m;
	vala_gd_bus_client_module_generate_marshalling (self, _tmp18_, VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_FINISH, NULL, NULL, -1);
	vala_ccode_base_module_pop_function ((ValaCCodeBaseModule*) self);
	_tmp19_ = ((ValaCCodeBaseModule*) self)->cfile;
	vala_ccode_file_add_function_declaration (_tmp19_, function);
	_tmp20_ = ((ValaCCodeBaseModule*) self)->cfile;
	vala_ccode_file_add_function (_tmp20_, function);
	result = proxy_name;
	_vala_map_unref0 (cparam_map);
	_vala_ccode_node_unref0 (function);
	return result;
}


static gchar* vala_gd_bus_client_module_generate_dbus_proxy_property_get (ValaGDBusClientModule* self, ValaInterface* main_iface, ValaInterface* iface, ValaProperty* prop) {
	gchar* result = NULL;
	gchar* proxy_name = NULL;
	ValaInterface* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	ValaProperty* _tmp3_;
	const gchar* _tmp4_;
	const gchar* _tmp5_;
	gchar* _tmp6_;
	gchar* _tmp7_;
	gchar* dbus_iface_name = NULL;
	ValaInterface* _tmp8_;
	gchar* _tmp9_;
	ValaDataType* owned_type = NULL;
	ValaProperty* _tmp10_;
	ValaPropertyAccessor* _tmp11_;
	ValaPropertyAccessor* _tmp12_;
	ValaDataType* _tmp13_;
	ValaDataType* _tmp14_;
	ValaDataType* _tmp15_;
	ValaDataType* _tmp16_;
	gboolean _tmp17_ = FALSE;
	ValaDataType* _tmp18_;
	gboolean _tmp19_;
	ValaArrayType* array_type = NULL;
	ValaProperty* _tmp34_;
	ValaPropertyAccessor* _tmp35_;
	ValaPropertyAccessor* _tmp36_;
	ValaDataType* _tmp37_;
	ValaDataType* _tmp38_;
	ValaArrayType* _tmp39_;
	ValaCCodeFunction* function = NULL;
	const gchar* _tmp40_;
	ValaCCodeFunction* _tmp41_;
	ValaCCodeFunction* _tmp42_;
	ValaCCodeFunction* _tmp43_;
	ValaInterface* _tmp44_;
	gchar* _tmp45_;
	gchar* _tmp46_;
	gchar* _tmp47_;
	gchar* _tmp48_;
	ValaCCodeParameter* _tmp49_;
	ValaCCodeParameter* _tmp50_;
	ValaProperty* _tmp51_;
	ValaDataType* _tmp52_;
	ValaDataType* _tmp53_;
	gboolean _tmp54_;
	ValaCCodeFunction* _tmp88_;
	ValaCCodeFunction* _tmp89_;
	ValaCCodeFunction* _tmp90_;
	ValaCCodeVariableDeclarator* _tmp91_;
	ValaCCodeVariableDeclarator* _tmp92_;
	ValaCCodeFunctionCall* ccall = NULL;
	ValaCCodeIdentifier* _tmp93_;
	ValaCCodeIdentifier* _tmp94_;
	ValaCCodeFunctionCall* _tmp95_;
	ValaCCodeFunctionCall* _tmp96_;
	ValaCCodeFunctionCall* _tmp97_;
	ValaCCodeIdentifier* _tmp98_;
	ValaCCodeIdentifier* _tmp99_;
	ValaCCodeCastExpression* _tmp100_;
	ValaCCodeCastExpression* _tmp101_;
	ValaCCodeFunctionCall* _tmp102_;
	ValaProperty* _tmp103_;
	gchar* _tmp104_;
	gchar* _tmp105_;
	gchar* _tmp106_;
	gchar* _tmp107_;
	ValaCCodeConstant* _tmp108_;
	ValaCCodeConstant* _tmp109_;
	ValaCCodeFunction* _tmp110_;
	ValaCCodeFunction* _tmp111_;
	ValaCCodeIdentifier* _tmp112_;
	ValaCCodeIdentifier* _tmp113_;
	ValaCCodeFunctionCall* _tmp114_;
	ValaCCodeFunction* _tmp115_;
	ValaCCodeFunction* _tmp116_;
	ValaCCodeIdentifier* _tmp117_;
	ValaCCodeIdentifier* _tmp118_;
	ValaCCodeUnaryExpression* _tmp119_;
	ValaCCodeUnaryExpression* _tmp120_;
	ValaCCodeFunction* _tmp121_;
	ValaCCodeFunction* _tmp122_;
	ValaCCodeVariableDeclarator* _tmp123_;
	ValaCCodeVariableDeclarator* _tmp124_;
	ValaCCodeFunction* _tmp125_;
	ValaCCodeFunction* _tmp126_;
	ValaCCodeVariableDeclarator* _tmp127_;
	ValaCCodeVariableDeclarator* _tmp128_;
	ValaCCodeFunction* _tmp129_;
	ValaCCodeFunction* _tmp130_;
	ValaCCodeVariableDeclarator* _tmp131_;
	ValaCCodeVariableDeclarator* _tmp132_;
	ValaCCodeFunctionCall* builder_init = NULL;
	ValaCCodeIdentifier* _tmp133_;
	ValaCCodeIdentifier* _tmp134_;
	ValaCCodeFunctionCall* _tmp135_;
	ValaCCodeFunctionCall* _tmp136_;
	ValaCCodeFunctionCall* _tmp137_;
	ValaCCodeIdentifier* _tmp138_;
	ValaCCodeIdentifier* _tmp139_;
	ValaCCodeUnaryExpression* _tmp140_;
	ValaCCodeUnaryExpression* _tmp141_;
	ValaCCodeFunctionCall* _tmp142_;
	ValaCCodeIdentifier* _tmp143_;
	ValaCCodeIdentifier* _tmp144_;
	ValaCCodeFunction* _tmp145_;
	ValaCCodeFunction* _tmp146_;
	ValaCCodeFunctionCall* _tmp147_;
	ValaDataType* _tmp148_;
	ValaCCodeIdentifier* _tmp149_;
	ValaCCodeIdentifier* _tmp150_;
	const gchar* _tmp151_;
	gchar* _tmp152_;
	gchar* _tmp153_;
	ValaCCodeConstant* _tmp154_;
	ValaCCodeConstant* _tmp155_;
	ValaDataType* _tmp156_;
	ValaCCodeIdentifier* _tmp157_;
	ValaCCodeIdentifier* _tmp158_;
	ValaProperty* _tmp159_;
	gchar* _tmp160_;
	gchar* _tmp161_;
	gchar* _tmp162_;
	gchar* _tmp163_;
	ValaCCodeConstant* _tmp164_;
	ValaCCodeConstant* _tmp165_;
	ValaCCodeFunctionCall* builder_end = NULL;
	ValaCCodeIdentifier* _tmp166_;
	ValaCCodeIdentifier* _tmp167_;
	ValaCCodeFunctionCall* _tmp168_;
	ValaCCodeFunctionCall* _tmp169_;
	ValaCCodeFunctionCall* _tmp170_;
	ValaCCodeIdentifier* _tmp171_;
	ValaCCodeIdentifier* _tmp172_;
	ValaCCodeUnaryExpression* _tmp173_;
	ValaCCodeUnaryExpression* _tmp174_;
	ValaCCodeFunction* _tmp175_;
	ValaCCodeFunction* _tmp176_;
	ValaCCodeIdentifier* _tmp177_;
	ValaCCodeIdentifier* _tmp178_;
	ValaCCodeFunctionCall* _tmp179_;
	ValaCCodeIdentifier* _tmp180_;
	ValaCCodeIdentifier* _tmp181_;
	ValaCCodeFunctionCall* _tmp182_;
	ValaCCodeFunctionCall* _tmp183_;
	ValaCCodeIdentifier* _tmp184_;
	ValaCCodeIdentifier* _tmp185_;
	ValaCCodeCastExpression* _tmp186_;
	ValaCCodeCastExpression* _tmp187_;
	ValaCCodeFunctionCall* _tmp188_;
	ValaCCodeConstant* _tmp189_;
	ValaCCodeConstant* _tmp190_;
	ValaCCodeFunctionCall* _tmp191_;
	ValaCCodeIdentifier* _tmp192_;
	ValaCCodeIdentifier* _tmp193_;
	ValaCCodeFunctionCall* _tmp194_;
	ValaCCodeConstant* _tmp195_;
	ValaCCodeConstant* _tmp196_;
	ValaCCodeFunctionCall* _tmp197_;
	ValaProperty* _tmp198_;
	ValaCCodeConstant* _tmp199_;
	ValaCCodeConstant* _tmp200_;
	ValaCCodeFunctionCall* _tmp201_;
	ValaCCodeConstant* _tmp202_;
	ValaCCodeConstant* _tmp203_;
	ValaCCodeFunctionCall* _tmp204_;
	ValaCCodeConstant* _tmp205_;
	ValaCCodeConstant* _tmp206_;
	ValaCCodeFunction* _tmp207_;
	ValaCCodeFunction* _tmp208_;
	ValaCCodeIdentifier* _tmp209_;
	ValaCCodeIdentifier* _tmp210_;
	ValaCCodeFunctionCall* _tmp211_;
	ValaCCodeFunction* _tmp212_;
	ValaCCodeFunction* _tmp213_;
	ValaCCodeIdentifier* _tmp214_;
	ValaCCodeIdentifier* _tmp215_;
	ValaCCodeUnaryExpression* _tmp216_;
	ValaCCodeUnaryExpression* _tmp217_;
	ValaProperty* _tmp218_;
	ValaDataType* _tmp219_;
	ValaDataType* _tmp220_;
	ValaCCodeFunction* _tmp221_;
	ValaCCodeFunction* _tmp222_;
	ValaCCodeFunctionCall* get_variant = NULL;
	ValaCCodeIdentifier* _tmp223_;
	ValaCCodeIdentifier* _tmp224_;
	ValaCCodeFunctionCall* _tmp225_;
	ValaCCodeFunctionCall* _tmp226_;
	ValaCCodeFunctionCall* _tmp227_;
	ValaCCodeIdentifier* _tmp228_;
	ValaCCodeIdentifier* _tmp229_;
	ValaCCodeFunctionCall* _tmp230_;
	ValaCCodeConstant* _tmp231_;
	ValaCCodeConstant* _tmp232_;
	ValaCCodeFunctionCall* _tmp233_;
	ValaCCodeIdentifier* _tmp234_;
	ValaCCodeIdentifier* _tmp235_;
	ValaCCodeUnaryExpression* _tmp236_;
	ValaCCodeUnaryExpression* _tmp237_;
	ValaCCodeFunction* _tmp238_;
	ValaCCodeFunction* _tmp239_;
	ValaCCodeFunctionCall* _tmp240_;
	ValaCCodeFunctionCall* unref_reply = NULL;
	ValaCCodeIdentifier* _tmp241_;
	ValaCCodeIdentifier* _tmp242_;
	ValaCCodeFunctionCall* _tmp243_;
	ValaCCodeFunctionCall* _tmp244_;
	ValaCCodeFunctionCall* _tmp245_;
	ValaCCodeIdentifier* _tmp246_;
	ValaCCodeIdentifier* _tmp247_;
	ValaCCodeFunction* _tmp248_;
	ValaCCodeFunction* _tmp249_;
	ValaCCodeFunctionCall* _tmp250_;
	ValaCCodeFunction* _tmp251_;
	ValaCCodeFunction* _tmp252_;
	ValaProperty* _tmp253_;
	ValaDataType* _tmp254_;
	ValaDataType* _tmp255_;
	gboolean _tmp256_;
	gboolean _tmp349_ = FALSE;
	ValaProperty* _tmp350_;
	ValaDataType* _tmp351_;
	ValaDataType* _tmp352_;
	gboolean _tmp353_;
	ValaProperty* _tmp366_;
	ValaDataType* _tmp367_;
	ValaDataType* _tmp368_;
	gboolean _tmp369_;
	ValaCCodeFile* _tmp376_;
	ValaCCodeFunction* _tmp377_;
	ValaCCodeFile* _tmp378_;
	ValaCCodeFunction* _tmp379_;
	g_return_val_if_fail (self != NULL, NULL);
	g_return_val_if_fail (main_iface != NULL, NULL);
	g_return_val_if_fail (iface != NULL, NULL);
	g_return_val_if_fail (prop != NULL, NULL);
	_tmp0_ = main_iface;
	_tmp1_ = vala_ccode_base_module_get_ccode_lower_case_prefix ((ValaSymbol*) _tmp0_);
	_tmp2_ = _tmp1_;
	_tmp3_ = prop;
	_tmp4_ = vala_symbol_get_name ((ValaSymbol*) _tmp3_);
	_tmp5_ = _tmp4_;
	_tmp6_ = g_strdup_printf ("%sdbus_proxy_get_%s", _tmp2_, _tmp5_);
	_tmp7_ = _tmp6_;
	_g_free0 (_tmp2_);
	proxy_name = _tmp7_;
	_tmp8_ = iface;
	_tmp9_ = vala_gd_bus_module_get_dbus_name ((ValaTypeSymbol*) _tmp8_);
	dbus_iface_name = _tmp9_;
	_tmp10_ = prop;
	_tmp11_ = vala_property_get_get_accessor (_tmp10_);
	_tmp12_ = _tmp11_;
	_tmp13_ = vala_property_accessor_get_value_type (_tmp12_);
	_tmp14_ = _tmp13_;
	_tmp15_ = vala_data_type_copy (_tmp14_);
	owned_type = _tmp15_;
	_tmp16_ = owned_type;
	vala_data_type_set_value_owned (_tmp16_, TRUE);
	_tmp18_ = owned_type;
	_tmp19_ = vala_data_type_is_disposable (_tmp18_);
	if (_tmp19_) {
		ValaProperty* _tmp20_;
		ValaPropertyAccessor* _tmp21_;
		ValaPropertyAccessor* _tmp22_;
		ValaDataType* _tmp23_;
		ValaDataType* _tmp24_;
		gboolean _tmp25_;
		gboolean _tmp26_;
		_tmp20_ = prop;
		_tmp21_ = vala_property_get_get_accessor (_tmp20_);
		_tmp22_ = _tmp21_;
		_tmp23_ = vala_property_accessor_get_value_type (_tmp22_);
		_tmp24_ = _tmp23_;
		_tmp25_ = vala_data_type_get_value_owned (_tmp24_);
		_tmp26_ = _tmp25_;
		_tmp17_ = !_tmp26_;
	} else {
		_tmp17_ = FALSE;
	}
	if (_tmp17_) {
		ValaProperty* _tmp27_;
		ValaPropertyAccessor* _tmp28_;
		ValaPropertyAccessor* _tmp29_;
		ValaDataType* _tmp30_;
		ValaDataType* _tmp31_;
		ValaSourceReference* _tmp32_;
		ValaSourceReference* _tmp33_;
		_tmp27_ = prop;
		_tmp28_ = vala_property_get_get_accessor (_tmp27_);
		_tmp29_ = _tmp28_;
		_tmp30_ = vala_property_accessor_get_value_type (_tmp29_);
		_tmp31_ = _tmp30_;
		_tmp32_ = vala_code_node_get_source_reference ((ValaCodeNode*) _tmp31_);
		_tmp33_ = _tmp32_;
		vala_report_error (_tmp33_, "Properties used in D-Bus clients require owned get accessor");
	}
	_tmp34_ = prop;
	_tmp35_ = vala_property_get_get_accessor (_tmp34_);
	_tmp36_ = _tmp35_;
	_tmp37_ = vala_property_accessor_get_value_type (_tmp36_);
	_tmp38_ = _tmp37_;
	_tmp39_ = _vala_code_node_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp38_, VALA_TYPE_ARRAY_TYPE) ? ((ValaArrayType*) _tmp38_) : NULL);
	array_type = _tmp39_;
	_tmp40_ = proxy_name;
	_tmp41_ = vala_ccode_function_new (_tmp40_, "void");
	function = _tmp41_;
	_tmp42_ = function;
	vala_ccode_node_set_modifiers ((ValaCCodeNode*) _tmp42_, VALA_CCODE_MODIFIERS_STATIC);
	_tmp43_ = function;
	_tmp44_ = iface;
	_tmp45_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp44_);
	_tmp46_ = _tmp45_;
	_tmp47_ = g_strdup_printf ("%s*", _tmp46_);
	_tmp48_ = _tmp47_;
	_tmp49_ = vala_ccode_parameter_new ("self", _tmp48_);
	_tmp50_ = _tmp49_;
	vala_ccode_function_add_parameter (_tmp43_, _tmp50_);
	_vala_ccode_node_unref0 (_tmp50_);
	_g_free0 (_tmp48_);
	_g_free0 (_tmp46_);
	_tmp51_ = prop;
	_tmp52_ = vala_property_get_property_type (_tmp51_);
	_tmp53_ = _tmp52_;
	_tmp54_ = vala_data_type_is_real_non_null_struct_type (_tmp53_);
	if (_tmp54_) {
		ValaCCodeFunction* _tmp55_;
		ValaProperty* _tmp56_;
		ValaPropertyAccessor* _tmp57_;
		ValaPropertyAccessor* _tmp58_;
		ValaDataType* _tmp59_;
		ValaDataType* _tmp60_;
		gchar* _tmp61_;
		gchar* _tmp62_;
		gchar* _tmp63_;
		gchar* _tmp64_;
		ValaCCodeParameter* _tmp65_;
		ValaCCodeParameter* _tmp66_;
		_tmp55_ = function;
		_tmp56_ = prop;
		_tmp57_ = vala_property_get_get_accessor (_tmp56_);
		_tmp58_ = _tmp57_;
		_tmp59_ = vala_property_accessor_get_value_type (_tmp58_);
		_tmp60_ = _tmp59_;
		_tmp61_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp60_);
		_tmp62_ = _tmp61_;
		_tmp63_ = g_strdup_printf ("%s*", _tmp62_);
		_tmp64_ = _tmp63_;
		_tmp65_ = vala_ccode_parameter_new ("result", _tmp64_);
		_tmp66_ = _tmp65_;
		vala_ccode_function_add_parameter (_tmp55_, _tmp66_);
		_vala_ccode_node_unref0 (_tmp66_);
		_g_free0 (_tmp64_);
		_g_free0 (_tmp62_);
	} else {
		ValaArrayType* _tmp67_;
		ValaCCodeFunction* _tmp80_;
		ValaProperty* _tmp81_;
		ValaPropertyAccessor* _tmp82_;
		ValaPropertyAccessor* _tmp83_;
		ValaDataType* _tmp84_;
		ValaDataType* _tmp85_;
		gchar* _tmp86_;
		gchar* _tmp87_;
		_tmp67_ = array_type;
		if (_tmp67_ != NULL) {
			{
				gint dim = 0;
				dim = 1;
				{
					gboolean _tmp68_ = FALSE;
					_tmp68_ = TRUE;
					while (TRUE) {
						gint _tmp70_;
						ValaArrayType* _tmp71_;
						gint _tmp72_;
						gint _tmp73_;
						ValaCCodeFunction* _tmp74_;
						gint _tmp75_;
						gchar* _tmp76_;
						gchar* _tmp77_;
						ValaCCodeParameter* _tmp78_;
						ValaCCodeParameter* _tmp79_;
						if (!_tmp68_) {
							gint _tmp69_;
							_tmp69_ = dim;
							dim = _tmp69_ + 1;
						}
						_tmp68_ = FALSE;
						_tmp70_ = dim;
						_tmp71_ = array_type;
						_tmp72_ = vala_array_type_get_rank (_tmp71_);
						_tmp73_ = _tmp72_;
						if (!(_tmp70_ <= _tmp73_)) {
							break;
						}
						_tmp74_ = function;
						_tmp75_ = dim;
						_tmp76_ = g_strdup_printf ("result_length%d", _tmp75_);
						_tmp77_ = _tmp76_;
						_tmp78_ = vala_ccode_parameter_new (_tmp77_, "int*");
						_tmp79_ = _tmp78_;
						vala_ccode_function_add_parameter (_tmp74_, _tmp79_);
						_vala_ccode_node_unref0 (_tmp79_);
						_g_free0 (_tmp77_);
					}
				}
			}
		}
		_tmp80_ = function;
		_tmp81_ = prop;
		_tmp82_ = vala_property_get_get_accessor (_tmp81_);
		_tmp83_ = _tmp82_;
		_tmp84_ = vala_property_accessor_get_value_type (_tmp83_);
		_tmp85_ = _tmp84_;
		_tmp86_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp85_);
		_tmp87_ = _tmp86_;
		vala_ccode_function_set_return_type (_tmp80_, _tmp87_);
		_g_free0 (_tmp87_);
	}
	_tmp88_ = function;
	vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, _tmp88_);
	_tmp89_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp90_ = _tmp89_;
	_tmp91_ = vala_ccode_variable_declarator_new ("*_inner_reply", NULL, NULL);
	_tmp92_ = _tmp91_;
	vala_ccode_function_add_declaration (_tmp90_, "GVariant", (ValaCCodeDeclarator*) _tmp92_, 0);
	_vala_ccode_node_unref0 (_tmp92_);
	_tmp93_ = vala_ccode_identifier_new ("g_dbus_proxy_get_cached_property");
	_tmp94_ = _tmp93_;
	_tmp95_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp94_);
	_tmp96_ = _tmp95_;
	_vala_ccode_node_unref0 (_tmp94_);
	ccall = _tmp96_;
	_tmp97_ = ccall;
	_tmp98_ = vala_ccode_identifier_new ("self");
	_tmp99_ = _tmp98_;
	_tmp100_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) _tmp99_, "GDBusProxy *");
	_tmp101_ = _tmp100_;
	vala_ccode_function_call_add_argument (_tmp97_, (ValaCCodeExpression*) _tmp101_);
	_vala_ccode_node_unref0 (_tmp101_);
	_vala_ccode_node_unref0 (_tmp99_);
	_tmp102_ = ccall;
	_tmp103_ = prop;
	_tmp104_ = vala_gd_bus_module_get_dbus_name_for_member ((ValaSymbol*) _tmp103_);
	_tmp105_ = _tmp104_;
	_tmp106_ = g_strdup_printf ("\"%s\"", _tmp105_);
	_tmp107_ = _tmp106_;
	_tmp108_ = vala_ccode_constant_new (_tmp107_);
	_tmp109_ = _tmp108_;
	vala_ccode_function_call_add_argument (_tmp102_, (ValaCCodeExpression*) _tmp109_);
	_vala_ccode_node_unref0 (_tmp109_);
	_g_free0 (_tmp107_);
	_g_free0 (_tmp105_);
	_tmp110_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp111_ = _tmp110_;
	_tmp112_ = vala_ccode_identifier_new ("_inner_reply");
	_tmp113_ = _tmp112_;
	_tmp114_ = ccall;
	vala_ccode_function_add_assignment (_tmp111_, (ValaCCodeExpression*) _tmp113_, (ValaCCodeExpression*) _tmp114_);
	_vala_ccode_node_unref0 (_tmp113_);
	_tmp115_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp116_ = _tmp115_;
	_tmp117_ = vala_ccode_identifier_new ("_inner_reply");
	_tmp118_ = _tmp117_;
	_tmp119_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_LOGICAL_NEGATION, (ValaCCodeExpression*) _tmp118_);
	_tmp120_ = _tmp119_;
	vala_ccode_function_open_if (_tmp116_, (ValaCCodeExpression*) _tmp120_);
	_vala_ccode_node_unref0 (_tmp120_);
	_vala_ccode_node_unref0 (_tmp118_);
	_tmp121_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp122_ = _tmp121_;
	_tmp123_ = vala_ccode_variable_declarator_new ("*_arguments", NULL, NULL);
	_tmp124_ = _tmp123_;
	vala_ccode_function_add_declaration (_tmp122_, "GVariant", (ValaCCodeDeclarator*) _tmp124_, 0);
	_vala_ccode_node_unref0 (_tmp124_);
	_tmp125_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp126_ = _tmp125_;
	_tmp127_ = vala_ccode_variable_declarator_new ("*_reply", NULL, NULL);
	_tmp128_ = _tmp127_;
	vala_ccode_function_add_declaration (_tmp126_, "GVariant", (ValaCCodeDeclarator*) _tmp128_, 0);
	_vala_ccode_node_unref0 (_tmp128_);
	_tmp129_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp130_ = _tmp129_;
	_tmp131_ = vala_ccode_variable_declarator_new ("_arguments_builder", NULL, NULL);
	_tmp132_ = _tmp131_;
	vala_ccode_function_add_declaration (_tmp130_, "GVariantBuilder", (ValaCCodeDeclarator*) _tmp132_, 0);
	_vala_ccode_node_unref0 (_tmp132_);
	_tmp133_ = vala_ccode_identifier_new ("g_variant_builder_init");
	_tmp134_ = _tmp133_;
	_tmp135_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp134_);
	_tmp136_ = _tmp135_;
	_vala_ccode_node_unref0 (_tmp134_);
	builder_init = _tmp136_;
	_tmp137_ = builder_init;
	_tmp138_ = vala_ccode_identifier_new ("_arguments_builder");
	_tmp139_ = _tmp138_;
	_tmp140_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp139_);
	_tmp141_ = _tmp140_;
	vala_ccode_function_call_add_argument (_tmp137_, (ValaCCodeExpression*) _tmp141_);
	_vala_ccode_node_unref0 (_tmp141_);
	_vala_ccode_node_unref0 (_tmp139_);
	_tmp142_ = builder_init;
	_tmp143_ = vala_ccode_identifier_new ("G_VARIANT_TYPE_TUPLE");
	_tmp144_ = _tmp143_;
	vala_ccode_function_call_add_argument (_tmp142_, (ValaCCodeExpression*) _tmp144_);
	_vala_ccode_node_unref0 (_tmp144_);
	_tmp145_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp146_ = _tmp145_;
	_tmp147_ = builder_init;
	vala_ccode_function_add_expression (_tmp146_, (ValaCCodeExpression*) _tmp147_);
	_tmp148_ = ((ValaCCodeBaseModule*) self)->string_type;
	_tmp149_ = vala_ccode_identifier_new ("_arguments_builder");
	_tmp150_ = _tmp149_;
	_tmp151_ = dbus_iface_name;
	_tmp152_ = g_strdup_printf ("\"%s\"", _tmp151_);
	_tmp153_ = _tmp152_;
	_tmp154_ = vala_ccode_constant_new (_tmp153_);
	_tmp155_ = _tmp154_;
	vala_gvariant_module_write_expression ((ValaGVariantModule*) self, _tmp148_, (ValaCCodeExpression*) _tmp150_, (ValaCCodeExpression*) _tmp155_, NULL);
	_vala_ccode_node_unref0 (_tmp155_);
	_g_free0 (_tmp153_);
	_vala_ccode_node_unref0 (_tmp150_);
	_tmp156_ = ((ValaCCodeBaseModule*) self)->string_type;
	_tmp157_ = vala_ccode_identifier_new ("_arguments_builder");
	_tmp158_ = _tmp157_;
	_tmp159_ = prop;
	_tmp160_ = vala_gd_bus_module_get_dbus_name_for_member ((ValaSymbol*) _tmp159_);
	_tmp161_ = _tmp160_;
	_tmp162_ = g_strdup_printf ("\"%s\"", _tmp161_);
	_tmp163_ = _tmp162_;
	_tmp164_ = vala_ccode_constant_new (_tmp163_);
	_tmp165_ = _tmp164_;
	vala_gvariant_module_write_expression ((ValaGVariantModule*) self, _tmp156_, (ValaCCodeExpression*) _tmp158_, (ValaCCodeExpression*) _tmp165_, NULL);
	_vala_ccode_node_unref0 (_tmp165_);
	_g_free0 (_tmp163_);
	_g_free0 (_tmp161_);
	_vala_ccode_node_unref0 (_tmp158_);
	_tmp166_ = vala_ccode_identifier_new ("g_variant_builder_end");
	_tmp167_ = _tmp166_;
	_tmp168_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp167_);
	_tmp169_ = _tmp168_;
	_vala_ccode_node_unref0 (_tmp167_);
	builder_end = _tmp169_;
	_tmp170_ = builder_end;
	_tmp171_ = vala_ccode_identifier_new ("_arguments_builder");
	_tmp172_ = _tmp171_;
	_tmp173_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp172_);
	_tmp174_ = _tmp173_;
	vala_ccode_function_call_add_argument (_tmp170_, (ValaCCodeExpression*) _tmp174_);
	_vala_ccode_node_unref0 (_tmp174_);
	_vala_ccode_node_unref0 (_tmp172_);
	_tmp175_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp176_ = _tmp175_;
	_tmp177_ = vala_ccode_identifier_new ("_arguments");
	_tmp178_ = _tmp177_;
	_tmp179_ = builder_end;
	vala_ccode_function_add_assignment (_tmp176_, (ValaCCodeExpression*) _tmp178_, (ValaCCodeExpression*) _tmp179_);
	_vala_ccode_node_unref0 (_tmp178_);
	_tmp180_ = vala_ccode_identifier_new ("g_dbus_proxy_call_sync");
	_tmp181_ = _tmp180_;
	_tmp182_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp181_);
	_vala_ccode_node_unref0 (ccall);
	ccall = _tmp182_;
	_vala_ccode_node_unref0 (_tmp181_);
	_tmp183_ = ccall;
	_tmp184_ = vala_ccode_identifier_new ("self");
	_tmp185_ = _tmp184_;
	_tmp186_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) _tmp185_, "GDBusProxy *");
	_tmp187_ = _tmp186_;
	vala_ccode_function_call_add_argument (_tmp183_, (ValaCCodeExpression*) _tmp187_);
	_vala_ccode_node_unref0 (_tmp187_);
	_vala_ccode_node_unref0 (_tmp185_);
	_tmp188_ = ccall;
	_tmp189_ = vala_ccode_constant_new ("\"org.freedesktop.DBus.Properties.Get\"");
	_tmp190_ = _tmp189_;
	vala_ccode_function_call_add_argument (_tmp188_, (ValaCCodeExpression*) _tmp190_);
	_vala_ccode_node_unref0 (_tmp190_);
	_tmp191_ = ccall;
	_tmp192_ = vala_ccode_identifier_new ("_arguments");
	_tmp193_ = _tmp192_;
	vala_ccode_function_call_add_argument (_tmp191_, (ValaCCodeExpression*) _tmp193_);
	_vala_ccode_node_unref0 (_tmp193_);
	_tmp194_ = ccall;
	_tmp195_ = vala_ccode_constant_new ("G_DBUS_CALL_FLAGS_NONE");
	_tmp196_ = _tmp195_;
	vala_ccode_function_call_add_argument (_tmp194_, (ValaCCodeExpression*) _tmp196_);
	_vala_ccode_node_unref0 (_tmp196_);
	_tmp197_ = ccall;
	_tmp198_ = prop;
	_tmp199_ = vala_gd_bus_client_module_get_dbus_timeout (self, (ValaSymbol*) _tmp198_);
	_tmp200_ = _tmp199_;
	vala_ccode_function_call_add_argument (_tmp197_, (ValaCCodeExpression*) _tmp200_);
	_vala_ccode_node_unref0 (_tmp200_);
	_tmp201_ = ccall;
	_tmp202_ = vala_ccode_constant_new ("NULL");
	_tmp203_ = _tmp202_;
	vala_ccode_function_call_add_argument (_tmp201_, (ValaCCodeExpression*) _tmp203_);
	_vala_ccode_node_unref0 (_tmp203_);
	_tmp204_ = ccall;
	_tmp205_ = vala_ccode_constant_new ("NULL");
	_tmp206_ = _tmp205_;
	vala_ccode_function_call_add_argument (_tmp204_, (ValaCCodeExpression*) _tmp206_);
	_vala_ccode_node_unref0 (_tmp206_);
	_tmp207_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp208_ = _tmp207_;
	_tmp209_ = vala_ccode_identifier_new ("_reply");
	_tmp210_ = _tmp209_;
	_tmp211_ = ccall;
	vala_ccode_function_add_assignment (_tmp208_, (ValaCCodeExpression*) _tmp210_, (ValaCCodeExpression*) _tmp211_);
	_vala_ccode_node_unref0 (_tmp210_);
	_tmp212_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp213_ = _tmp212_;
	_tmp214_ = vala_ccode_identifier_new ("_reply");
	_tmp215_ = _tmp214_;
	_tmp216_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_LOGICAL_NEGATION, (ValaCCodeExpression*) _tmp215_);
	_tmp217_ = _tmp216_;
	vala_ccode_function_open_if (_tmp213_, (ValaCCodeExpression*) _tmp217_);
	_vala_ccode_node_unref0 (_tmp217_);
	_vala_ccode_node_unref0 (_tmp215_);
	_tmp218_ = prop;
	_tmp219_ = vala_property_get_property_type (_tmp218_);
	_tmp220_ = _tmp219_;
	vala_ccode_base_module_return_default_value ((ValaCCodeBaseModule*) self, _tmp220_);
	_tmp221_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp222_ = _tmp221_;
	vala_ccode_function_close (_tmp222_);
	_tmp223_ = vala_ccode_identifier_new ("g_variant_get");
	_tmp224_ = _tmp223_;
	_tmp225_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp224_);
	_tmp226_ = _tmp225_;
	_vala_ccode_node_unref0 (_tmp224_);
	get_variant = _tmp226_;
	_tmp227_ = get_variant;
	_tmp228_ = vala_ccode_identifier_new ("_reply");
	_tmp229_ = _tmp228_;
	vala_ccode_function_call_add_argument (_tmp227_, (ValaCCodeExpression*) _tmp229_);
	_vala_ccode_node_unref0 (_tmp229_);
	_tmp230_ = get_variant;
	_tmp231_ = vala_ccode_constant_new ("\"(v)\"");
	_tmp232_ = _tmp231_;
	vala_ccode_function_call_add_argument (_tmp230_, (ValaCCodeExpression*) _tmp232_);
	_vala_ccode_node_unref0 (_tmp232_);
	_tmp233_ = get_variant;
	_tmp234_ = vala_ccode_identifier_new ("_inner_reply");
	_tmp235_ = _tmp234_;
	_tmp236_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp235_);
	_tmp237_ = _tmp236_;
	vala_ccode_function_call_add_argument (_tmp233_, (ValaCCodeExpression*) _tmp237_);
	_vala_ccode_node_unref0 (_tmp237_);
	_vala_ccode_node_unref0 (_tmp235_);
	_tmp238_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp239_ = _tmp238_;
	_tmp240_ = get_variant;
	vala_ccode_function_add_expression (_tmp239_, (ValaCCodeExpression*) _tmp240_);
	_tmp241_ = vala_ccode_identifier_new ("g_variant_unref");
	_tmp242_ = _tmp241_;
	_tmp243_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp242_);
	_tmp244_ = _tmp243_;
	_vala_ccode_node_unref0 (_tmp242_);
	unref_reply = _tmp244_;
	_tmp245_ = unref_reply;
	_tmp246_ = vala_ccode_identifier_new ("_reply");
	_tmp247_ = _tmp246_;
	vala_ccode_function_call_add_argument (_tmp245_, (ValaCCodeExpression*) _tmp247_);
	_vala_ccode_node_unref0 (_tmp247_);
	_tmp248_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp249_ = _tmp248_;
	_tmp250_ = unref_reply;
	vala_ccode_function_add_expression (_tmp249_, (ValaCCodeExpression*) _tmp250_);
	_tmp251_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp252_ = _tmp251_;
	vala_ccode_function_close (_tmp252_);
	_tmp253_ = prop;
	_tmp254_ = vala_property_get_property_type (_tmp253_);
	_tmp255_ = _tmp254_;
	_tmp256_ = vala_data_type_is_real_non_null_struct_type (_tmp255_);
	if (_tmp256_) {
		ValaCCodeUnaryExpression* target = NULL;
		ValaCCodeIdentifier* _tmp257_;
		ValaCCodeIdentifier* _tmp258_;
		ValaCCodeUnaryExpression* _tmp259_;
		ValaCCodeUnaryExpression* _tmp260_;
		ValaCCodeExpression* _result_ = NULL;
		ValaProperty* _tmp261_;
		ValaPropertyAccessor* _tmp262_;
		ValaPropertyAccessor* _tmp263_;
		ValaDataType* _tmp264_;
		ValaDataType* _tmp265_;
		ValaCCodeIdentifier* _tmp266_;
		ValaCCodeIdentifier* _tmp267_;
		ValaCCodeUnaryExpression* _tmp268_;
		ValaCCodeExpression* _tmp269_;
		ValaCCodeExpression* _tmp270_;
		ValaCCodeFunction* _tmp271_;
		ValaCCodeFunction* _tmp272_;
		ValaCCodeUnaryExpression* _tmp273_;
		ValaCCodeExpression* _tmp274_;
		_tmp257_ = vala_ccode_identifier_new ("result");
		_tmp258_ = _tmp257_;
		_tmp259_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_POINTER_INDIRECTION, (ValaCCodeExpression*) _tmp258_);
		_tmp260_ = _tmp259_;
		_vala_ccode_node_unref0 (_tmp258_);
		target = _tmp260_;
		_tmp261_ = prop;
		_tmp262_ = vala_property_get_get_accessor (_tmp261_);
		_tmp263_ = _tmp262_;
		_tmp264_ = vala_property_accessor_get_value_type (_tmp263_);
		_tmp265_ = _tmp264_;
		_tmp266_ = vala_ccode_identifier_new ("_inner_reply");
		_tmp267_ = _tmp266_;
		_tmp268_ = target;
		_tmp269_ = vala_ccode_base_module_deserialize_expression ((ValaCCodeBaseModule*) self, _tmp265_, (ValaCCodeExpression*) _tmp267_, (ValaCCodeExpression*) _tmp268_, NULL, NULL);
		_tmp270_ = _tmp269_;
		_vala_ccode_node_unref0 (_tmp267_);
		_result_ = _tmp270_;
		_tmp271_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp272_ = _tmp271_;
		_tmp273_ = target;
		_tmp274_ = _result_;
		vala_ccode_function_add_assignment (_tmp272_, (ValaCCodeExpression*) _tmp273_, _tmp274_);
		_vala_ccode_node_unref0 (_result_);
		_vala_ccode_node_unref0 (target);
	} else {
		ValaCCodeFunction* _tmp275_;
		ValaCCodeFunction* _tmp276_;
		ValaProperty* _tmp277_;
		ValaPropertyAccessor* _tmp278_;
		ValaPropertyAccessor* _tmp279_;
		ValaDataType* _tmp280_;
		ValaDataType* _tmp281_;
		gchar* _tmp282_;
		gchar* _tmp283_;
		ValaCCodeVariableDeclarator* _tmp284_;
		ValaCCodeVariableDeclarator* _tmp285_;
		ValaProperty* _tmp286_;
		gchar* _tmp287_;
		gchar* _tmp288_;
		gboolean _tmp289_;
		_tmp275_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp276_ = _tmp275_;
		_tmp277_ = prop;
		_tmp278_ = vala_property_get_get_accessor (_tmp277_);
		_tmp279_ = _tmp278_;
		_tmp280_ = vala_property_accessor_get_value_type (_tmp279_);
		_tmp281_ = _tmp280_;
		_tmp282_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp281_);
		_tmp283_ = _tmp282_;
		_tmp284_ = vala_ccode_variable_declarator_new ("_result", NULL, NULL);
		_tmp285_ = _tmp284_;
		vala_ccode_function_add_declaration (_tmp276_, _tmp283_, (ValaCCodeDeclarator*) _tmp285_, 0);
		_vala_ccode_node_unref0 (_tmp285_);
		_g_free0 (_tmp283_);
		_tmp286_ = prop;
		_tmp287_ = vala_gvariant_module_get_dbus_signature ((ValaSymbol*) _tmp286_);
		_tmp288_ = _tmp287_;
		_tmp289_ = _tmp288_ != NULL;
		_g_free0 (_tmp288_);
		if (_tmp289_) {
			ValaCCodeFunction* _tmp290_;
			ValaCCodeFunction* _tmp291_;
			ValaCCodeIdentifier* _tmp292_;
			ValaCCodeIdentifier* _tmp293_;
			ValaCCodeIdentifier* _tmp294_;
			ValaCCodeIdentifier* _tmp295_;
			_tmp290_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp291_ = _tmp290_;
			_tmp292_ = vala_ccode_identifier_new ("_result");
			_tmp293_ = _tmp292_;
			_tmp294_ = vala_ccode_identifier_new ("_inner_reply");
			_tmp295_ = _tmp294_;
			vala_ccode_function_add_assignment (_tmp291_, (ValaCCodeExpression*) _tmp293_, (ValaCCodeExpression*) _tmp295_);
			_vala_ccode_node_unref0 (_tmp295_);
			_vala_ccode_node_unref0 (_tmp293_);
		} else {
			ValaArrayType* _tmp296_;
			ValaCCodeExpression* _result_ = NULL;
			ValaProperty* _tmp312_;
			ValaPropertyAccessor* _tmp313_;
			ValaPropertyAccessor* _tmp314_;
			ValaDataType* _tmp315_;
			ValaDataType* _tmp316_;
			ValaCCodeIdentifier* _tmp317_;
			ValaCCodeIdentifier* _tmp318_;
			ValaCCodeIdentifier* _tmp319_;
			ValaCCodeIdentifier* _tmp320_;
			ValaCCodeExpression* _tmp321_;
			ValaCCodeExpression* _tmp322_;
			ValaCCodeFunction* _tmp323_;
			ValaCCodeFunction* _tmp324_;
			ValaCCodeIdentifier* _tmp325_;
			ValaCCodeIdentifier* _tmp326_;
			ValaCCodeExpression* _tmp327_;
			ValaArrayType* _tmp328_;
			_tmp296_ = array_type;
			if (_tmp296_ != NULL) {
				{
					gint dim = 0;
					dim = 1;
					{
						gboolean _tmp297_ = FALSE;
						_tmp297_ = TRUE;
						while (TRUE) {
							gint _tmp299_;
							ValaArrayType* _tmp300_;
							gint _tmp301_;
							gint _tmp302_;
							ValaCCodeFunction* _tmp303_;
							ValaCCodeFunction* _tmp304_;
							gint _tmp305_;
							gchar* _tmp306_;
							gchar* _tmp307_;
							ValaCCodeConstant* _tmp308_;
							ValaCCodeConstant* _tmp309_;
							ValaCCodeVariableDeclarator* _tmp310_;
							ValaCCodeVariableDeclarator* _tmp311_;
							if (!_tmp297_) {
								gint _tmp298_;
								_tmp298_ = dim;
								dim = _tmp298_ + 1;
							}
							_tmp297_ = FALSE;
							_tmp299_ = dim;
							_tmp300_ = array_type;
							_tmp301_ = vala_array_type_get_rank (_tmp300_);
							_tmp302_ = _tmp301_;
							if (!(_tmp299_ <= _tmp302_)) {
								break;
							}
							_tmp303_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
							_tmp304_ = _tmp303_;
							_tmp305_ = dim;
							_tmp306_ = g_strdup_printf ("_result_length%d", _tmp305_);
							_tmp307_ = _tmp306_;
							_tmp308_ = vala_ccode_constant_new ("0");
							_tmp309_ = _tmp308_;
							_tmp310_ = vala_ccode_variable_declarator_new (_tmp307_, (ValaCCodeExpression*) _tmp309_, NULL);
							_tmp311_ = _tmp310_;
							vala_ccode_function_add_declaration (_tmp304_, "int", (ValaCCodeDeclarator*) _tmp311_, 0);
							_vala_ccode_node_unref0 (_tmp311_);
							_vala_ccode_node_unref0 (_tmp309_);
							_g_free0 (_tmp307_);
						}
					}
				}
			}
			_tmp312_ = prop;
			_tmp313_ = vala_property_get_get_accessor (_tmp312_);
			_tmp314_ = _tmp313_;
			_tmp315_ = vala_property_accessor_get_value_type (_tmp314_);
			_tmp316_ = _tmp315_;
			_tmp317_ = vala_ccode_identifier_new ("_inner_reply");
			_tmp318_ = _tmp317_;
			_tmp319_ = vala_ccode_identifier_new ("_result");
			_tmp320_ = _tmp319_;
			_tmp321_ = vala_ccode_base_module_deserialize_expression ((ValaCCodeBaseModule*) self, _tmp316_, (ValaCCodeExpression*) _tmp318_, (ValaCCodeExpression*) _tmp320_, NULL, NULL);
			_tmp322_ = _tmp321_;
			_vala_ccode_node_unref0 (_tmp320_);
			_vala_ccode_node_unref0 (_tmp318_);
			_result_ = _tmp322_;
			_tmp323_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp324_ = _tmp323_;
			_tmp325_ = vala_ccode_identifier_new ("_result");
			_tmp326_ = _tmp325_;
			_tmp327_ = _result_;
			vala_ccode_function_add_assignment (_tmp324_, (ValaCCodeExpression*) _tmp326_, _tmp327_);
			_vala_ccode_node_unref0 (_tmp326_);
			_tmp328_ = array_type;
			if (_tmp328_ != NULL) {
				{
					gint dim = 0;
					dim = 1;
					{
						gboolean _tmp329_ = FALSE;
						_tmp329_ = TRUE;
						while (TRUE) {
							gint _tmp331_;
							ValaArrayType* _tmp332_;
							gint _tmp333_;
							gint _tmp334_;
							ValaCCodeFunction* _tmp335_;
							ValaCCodeFunction* _tmp336_;
							gint _tmp337_;
							gchar* _tmp338_;
							gchar* _tmp339_;
							ValaCCodeIdentifier* _tmp340_;
							ValaCCodeIdentifier* _tmp341_;
							ValaCCodeUnaryExpression* _tmp342_;
							ValaCCodeUnaryExpression* _tmp343_;
							gint _tmp344_;
							gchar* _tmp345_;
							gchar* _tmp346_;
							ValaCCodeIdentifier* _tmp347_;
							ValaCCodeIdentifier* _tmp348_;
							if (!_tmp329_) {
								gint _tmp330_;
								_tmp330_ = dim;
								dim = _tmp330_ + 1;
							}
							_tmp329_ = FALSE;
							_tmp331_ = dim;
							_tmp332_ = array_type;
							_tmp333_ = vala_array_type_get_rank (_tmp332_);
							_tmp334_ = _tmp333_;
							if (!(_tmp331_ <= _tmp334_)) {
								break;
							}
							_tmp335_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
							_tmp336_ = _tmp335_;
							_tmp337_ = dim;
							_tmp338_ = g_strdup_printf ("result_length%d", _tmp337_);
							_tmp339_ = _tmp338_;
							_tmp340_ = vala_ccode_identifier_new (_tmp339_);
							_tmp341_ = _tmp340_;
							_tmp342_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_POINTER_INDIRECTION, (ValaCCodeExpression*) _tmp341_);
							_tmp343_ = _tmp342_;
							_tmp344_ = dim;
							_tmp345_ = g_strdup_printf ("_result_length%d", _tmp344_);
							_tmp346_ = _tmp345_;
							_tmp347_ = vala_ccode_identifier_new (_tmp346_);
							_tmp348_ = _tmp347_;
							vala_ccode_function_add_assignment (_tmp336_, (ValaCCodeExpression*) _tmp343_, (ValaCCodeExpression*) _tmp348_);
							_vala_ccode_node_unref0 (_tmp348_);
							_g_free0 (_tmp346_);
							_vala_ccode_node_unref0 (_tmp343_);
							_vala_ccode_node_unref0 (_tmp341_);
							_g_free0 (_tmp339_);
						}
					}
				}
			}
			_vala_ccode_node_unref0 (_result_);
		}
	}
	_tmp350_ = prop;
	_tmp351_ = vala_property_get_property_type (_tmp350_);
	_tmp352_ = _tmp351_;
	_tmp353_ = vala_data_type_is_real_non_null_struct_type (_tmp352_);
	if (_tmp353_) {
		_tmp349_ = TRUE;
	} else {
		ValaProperty* _tmp354_;
		gchar* _tmp355_;
		gchar* _tmp356_;
		_tmp354_ = prop;
		_tmp355_ = vala_gvariant_module_get_dbus_signature ((ValaSymbol*) _tmp354_);
		_tmp356_ = _tmp355_;
		_tmp349_ = _tmp356_ == NULL;
		_g_free0 (_tmp356_);
	}
	if (_tmp349_) {
		ValaCCodeIdentifier* _tmp357_;
		ValaCCodeIdentifier* _tmp358_;
		ValaCCodeFunctionCall* _tmp359_;
		ValaCCodeFunctionCall* _tmp360_;
		ValaCCodeIdentifier* _tmp361_;
		ValaCCodeIdentifier* _tmp362_;
		ValaCCodeFunction* _tmp363_;
		ValaCCodeFunction* _tmp364_;
		ValaCCodeFunctionCall* _tmp365_;
		_tmp357_ = vala_ccode_identifier_new ("g_variant_unref");
		_tmp358_ = _tmp357_;
		_tmp359_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp358_);
		_vala_ccode_node_unref0 (unref_reply);
		unref_reply = _tmp359_;
		_vala_ccode_node_unref0 (_tmp358_);
		_tmp360_ = unref_reply;
		_tmp361_ = vala_ccode_identifier_new ("_inner_reply");
		_tmp362_ = _tmp361_;
		vala_ccode_function_call_add_argument (_tmp360_, (ValaCCodeExpression*) _tmp362_);
		_vala_ccode_node_unref0 (_tmp362_);
		_tmp363_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp364_ = _tmp363_;
		_tmp365_ = unref_reply;
		vala_ccode_function_add_expression (_tmp364_, (ValaCCodeExpression*) _tmp365_);
	}
	_tmp366_ = prop;
	_tmp367_ = vala_property_get_property_type (_tmp366_);
	_tmp368_ = _tmp367_;
	_tmp369_ = vala_data_type_is_real_non_null_struct_type (_tmp368_);
	if (_tmp369_) {
		ValaCCodeFunction* _tmp370_;
		ValaCCodeFunction* _tmp371_;
		_tmp370_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp371_ = _tmp370_;
		vala_ccode_function_add_return (_tmp371_, NULL);
	} else {
		ValaCCodeFunction* _tmp372_;
		ValaCCodeFunction* _tmp373_;
		ValaCCodeIdentifier* _tmp374_;
		ValaCCodeIdentifier* _tmp375_;
		_tmp372_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp373_ = _tmp372_;
		_tmp374_ = vala_ccode_identifier_new ("_result");
		_tmp375_ = _tmp374_;
		vala_ccode_function_add_return (_tmp373_, (ValaCCodeExpression*) _tmp375_);
		_vala_ccode_node_unref0 (_tmp375_);
	}
	vala_ccode_base_module_pop_function ((ValaCCodeBaseModule*) self);
	_tmp376_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp377_ = function;
	vala_ccode_file_add_function_declaration (_tmp376_, _tmp377_);
	_tmp378_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp379_ = function;
	vala_ccode_file_add_function (_tmp378_, _tmp379_);
	result = proxy_name;
	_vala_ccode_node_unref0 (unref_reply);
	_vala_ccode_node_unref0 (get_variant);
	_vala_ccode_node_unref0 (builder_end);
	_vala_ccode_node_unref0 (builder_init);
	_vala_ccode_node_unref0 (ccall);
	_vala_ccode_node_unref0 (function);
	_vala_code_node_unref0 (array_type);
	_vala_code_node_unref0 (owned_type);
	_g_free0 (dbus_iface_name);
	return result;
}


static gchar* vala_gd_bus_client_module_generate_dbus_proxy_property_set (ValaGDBusClientModule* self, ValaInterface* main_iface, ValaInterface* iface, ValaProperty* prop) {
	gchar* result = NULL;
	gchar* proxy_name = NULL;
	ValaInterface* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	ValaProperty* _tmp3_;
	const gchar* _tmp4_;
	const gchar* _tmp5_;
	gchar* _tmp6_;
	gchar* _tmp7_;
	gchar* dbus_iface_name = NULL;
	ValaInterface* _tmp8_;
	gchar* _tmp9_;
	ValaArrayType* array_type = NULL;
	ValaProperty* _tmp10_;
	ValaPropertyAccessor* _tmp11_;
	ValaPropertyAccessor* _tmp12_;
	ValaDataType* _tmp13_;
	ValaDataType* _tmp14_;
	ValaArrayType* _tmp15_;
	ValaCCodeFunction* function = NULL;
	const gchar* _tmp16_;
	ValaCCodeFunction* _tmp17_;
	ValaCCodeFunction* _tmp18_;
	ValaCCodeFunction* _tmp19_;
	ValaInterface* _tmp20_;
	gchar* _tmp21_;
	gchar* _tmp22_;
	gchar* _tmp23_;
	gchar* _tmp24_;
	ValaCCodeParameter* _tmp25_;
	ValaCCodeParameter* _tmp26_;
	ValaProperty* _tmp27_;
	ValaDataType* _tmp28_;
	ValaDataType* _tmp29_;
	gboolean _tmp30_;
	ValaCCodeFunction* _tmp66_;
	ValaCCodeFunction* _tmp67_;
	ValaCCodeFunction* _tmp68_;
	ValaCCodeVariableDeclarator* _tmp69_;
	ValaCCodeVariableDeclarator* _tmp70_;
	ValaCCodeFunction* _tmp71_;
	ValaCCodeFunction* _tmp72_;
	ValaCCodeVariableDeclarator* _tmp73_;
	ValaCCodeVariableDeclarator* _tmp74_;
	ValaCCodeFunction* _tmp75_;
	ValaCCodeFunction* _tmp76_;
	ValaCCodeVariableDeclarator* _tmp77_;
	ValaCCodeVariableDeclarator* _tmp78_;
	ValaCCodeFunctionCall* builder_init = NULL;
	ValaCCodeIdentifier* _tmp79_;
	ValaCCodeIdentifier* _tmp80_;
	ValaCCodeFunctionCall* _tmp81_;
	ValaCCodeFunctionCall* _tmp82_;
	ValaCCodeFunctionCall* _tmp83_;
	ValaCCodeIdentifier* _tmp84_;
	ValaCCodeIdentifier* _tmp85_;
	ValaCCodeUnaryExpression* _tmp86_;
	ValaCCodeUnaryExpression* _tmp87_;
	ValaCCodeFunctionCall* _tmp88_;
	ValaCCodeIdentifier* _tmp89_;
	ValaCCodeIdentifier* _tmp90_;
	ValaCCodeFunction* _tmp91_;
	ValaCCodeFunction* _tmp92_;
	ValaCCodeFunctionCall* _tmp93_;
	ValaDataType* _tmp94_;
	ValaCCodeIdentifier* _tmp95_;
	ValaCCodeIdentifier* _tmp96_;
	const gchar* _tmp97_;
	gchar* _tmp98_;
	gchar* _tmp99_;
	ValaCCodeConstant* _tmp100_;
	ValaCCodeConstant* _tmp101_;
	ValaDataType* _tmp102_;
	ValaCCodeIdentifier* _tmp103_;
	ValaCCodeIdentifier* _tmp104_;
	ValaProperty* _tmp105_;
	gchar* _tmp106_;
	gchar* _tmp107_;
	gchar* _tmp108_;
	gchar* _tmp109_;
	ValaCCodeConstant* _tmp110_;
	ValaCCodeConstant* _tmp111_;
	ValaCCodeFunctionCall* builder_open = NULL;
	ValaCCodeIdentifier* _tmp112_;
	ValaCCodeIdentifier* _tmp113_;
	ValaCCodeFunctionCall* _tmp114_;
	ValaCCodeFunctionCall* _tmp115_;
	ValaCCodeFunctionCall* _tmp116_;
	ValaCCodeIdentifier* _tmp117_;
	ValaCCodeIdentifier* _tmp118_;
	ValaCCodeUnaryExpression* _tmp119_;
	ValaCCodeUnaryExpression* _tmp120_;
	ValaCCodeFunctionCall* _tmp121_;
	ValaCCodeIdentifier* _tmp122_;
	ValaCCodeIdentifier* _tmp123_;
	ValaCCodeFunction* _tmp124_;
	ValaCCodeFunction* _tmp125_;
	ValaCCodeFunctionCall* _tmp126_;
	ValaProperty* _tmp127_;
	ValaDataType* _tmp128_;
	ValaDataType* _tmp129_;
	gboolean _tmp130_;
	ValaCCodeFunctionCall* builder_close = NULL;
	ValaCCodeIdentifier* _tmp153_;
	ValaCCodeIdentifier* _tmp154_;
	ValaCCodeFunctionCall* _tmp155_;
	ValaCCodeFunctionCall* _tmp156_;
	ValaCCodeIdentifier* _tmp157_;
	ValaCCodeIdentifier* _tmp158_;
	ValaCCodeUnaryExpression* _tmp159_;
	ValaCCodeUnaryExpression* _tmp160_;
	ValaCCodeFunction* _tmp161_;
	ValaCCodeFunction* _tmp162_;
	ValaCCodeFunctionCall* builder_end = NULL;
	ValaCCodeIdentifier* _tmp163_;
	ValaCCodeIdentifier* _tmp164_;
	ValaCCodeFunctionCall* _tmp165_;
	ValaCCodeFunctionCall* _tmp166_;
	ValaCCodeIdentifier* _tmp167_;
	ValaCCodeIdentifier* _tmp168_;
	ValaCCodeUnaryExpression* _tmp169_;
	ValaCCodeUnaryExpression* _tmp170_;
	ValaCCodeFunction* _tmp171_;
	ValaCCodeFunction* _tmp172_;
	ValaCCodeIdentifier* _tmp173_;
	ValaCCodeIdentifier* _tmp174_;
	ValaCCodeFunctionCall* ccall = NULL;
	ValaCCodeIdentifier* _tmp175_;
	ValaCCodeIdentifier* _tmp176_;
	ValaCCodeFunctionCall* _tmp177_;
	ValaCCodeFunctionCall* _tmp178_;
	ValaCCodeIdentifier* _tmp179_;
	ValaCCodeIdentifier* _tmp180_;
	ValaCCodeCastExpression* _tmp181_;
	ValaCCodeCastExpression* _tmp182_;
	ValaCCodeConstant* _tmp183_;
	ValaCCodeConstant* _tmp184_;
	ValaCCodeIdentifier* _tmp185_;
	ValaCCodeIdentifier* _tmp186_;
	ValaCCodeConstant* _tmp187_;
	ValaCCodeConstant* _tmp188_;
	ValaProperty* _tmp189_;
	ValaCCodeConstant* _tmp190_;
	ValaCCodeConstant* _tmp191_;
	ValaCCodeConstant* _tmp192_;
	ValaCCodeConstant* _tmp193_;
	ValaCCodeConstant* _tmp194_;
	ValaCCodeConstant* _tmp195_;
	ValaCCodeFunction* _tmp196_;
	ValaCCodeFunction* _tmp197_;
	ValaCCodeIdentifier* _tmp198_;
	ValaCCodeIdentifier* _tmp199_;
	ValaCCodeFunction* _tmp200_;
	ValaCCodeFunction* _tmp201_;
	ValaCCodeIdentifier* _tmp202_;
	ValaCCodeIdentifier* _tmp203_;
	ValaCCodeUnaryExpression* _tmp204_;
	ValaCCodeUnaryExpression* _tmp205_;
	ValaCCodeFunction* _tmp206_;
	ValaCCodeFunction* _tmp207_;
	ValaCCodeFunction* _tmp208_;
	ValaCCodeFunction* _tmp209_;
	ValaCCodeFunctionCall* unref_reply = NULL;
	ValaCCodeIdentifier* _tmp210_;
	ValaCCodeIdentifier* _tmp211_;
	ValaCCodeFunctionCall* _tmp212_;
	ValaCCodeFunctionCall* _tmp213_;
	ValaCCodeIdentifier* _tmp214_;
	ValaCCodeIdentifier* _tmp215_;
	ValaCCodeFunction* _tmp216_;
	ValaCCodeFunction* _tmp217_;
	ValaCCodeFile* _tmp218_;
	ValaCCodeFunction* _tmp219_;
	ValaCCodeFile* _tmp220_;
	ValaCCodeFunction* _tmp221_;
	g_return_val_if_fail (self != NULL, NULL);
	g_return_val_if_fail (main_iface != NULL, NULL);
	g_return_val_if_fail (iface != NULL, NULL);
	g_return_val_if_fail (prop != NULL, NULL);
	_tmp0_ = main_iface;
	_tmp1_ = vala_ccode_base_module_get_ccode_lower_case_prefix ((ValaSymbol*) _tmp0_);
	_tmp2_ = _tmp1_;
	_tmp3_ = prop;
	_tmp4_ = vala_symbol_get_name ((ValaSymbol*) _tmp3_);
	_tmp5_ = _tmp4_;
	_tmp6_ = g_strdup_printf ("%sdbus_proxy_set_%s", _tmp2_, _tmp5_);
	_tmp7_ = _tmp6_;
	_g_free0 (_tmp2_);
	proxy_name = _tmp7_;
	_tmp8_ = iface;
	_tmp9_ = vala_gd_bus_module_get_dbus_name ((ValaTypeSymbol*) _tmp8_);
	dbus_iface_name = _tmp9_;
	_tmp10_ = prop;
	_tmp11_ = vala_property_get_set_accessor (_tmp10_);
	_tmp12_ = _tmp11_;
	_tmp13_ = vala_property_accessor_get_value_type (_tmp12_);
	_tmp14_ = _tmp13_;
	_tmp15_ = _vala_code_node_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp14_, VALA_TYPE_ARRAY_TYPE) ? ((ValaArrayType*) _tmp14_) : NULL);
	array_type = _tmp15_;
	_tmp16_ = proxy_name;
	_tmp17_ = vala_ccode_function_new (_tmp16_, "void");
	function = _tmp17_;
	_tmp18_ = function;
	vala_ccode_node_set_modifiers ((ValaCCodeNode*) _tmp18_, VALA_CCODE_MODIFIERS_STATIC);
	_tmp19_ = function;
	_tmp20_ = iface;
	_tmp21_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp20_);
	_tmp22_ = _tmp21_;
	_tmp23_ = g_strdup_printf ("%s*", _tmp22_);
	_tmp24_ = _tmp23_;
	_tmp25_ = vala_ccode_parameter_new ("self", _tmp24_);
	_tmp26_ = _tmp25_;
	vala_ccode_function_add_parameter (_tmp19_, _tmp26_);
	_vala_ccode_node_unref0 (_tmp26_);
	_g_free0 (_tmp24_);
	_g_free0 (_tmp22_);
	_tmp27_ = prop;
	_tmp28_ = vala_property_get_property_type (_tmp27_);
	_tmp29_ = _tmp28_;
	_tmp30_ = vala_data_type_is_real_non_null_struct_type (_tmp29_);
	if (_tmp30_) {
		ValaCCodeFunction* _tmp31_;
		ValaProperty* _tmp32_;
		ValaPropertyAccessor* _tmp33_;
		ValaPropertyAccessor* _tmp34_;
		ValaDataType* _tmp35_;
		ValaDataType* _tmp36_;
		gchar* _tmp37_;
		gchar* _tmp38_;
		gchar* _tmp39_;
		gchar* _tmp40_;
		ValaCCodeParameter* _tmp41_;
		ValaCCodeParameter* _tmp42_;
		_tmp31_ = function;
		_tmp32_ = prop;
		_tmp33_ = vala_property_get_set_accessor (_tmp32_);
		_tmp34_ = _tmp33_;
		_tmp35_ = vala_property_accessor_get_value_type (_tmp34_);
		_tmp36_ = _tmp35_;
		_tmp37_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp36_);
		_tmp38_ = _tmp37_;
		_tmp39_ = g_strdup_printf ("%s*", _tmp38_);
		_tmp40_ = _tmp39_;
		_tmp41_ = vala_ccode_parameter_new ("value", _tmp40_);
		_tmp42_ = _tmp41_;
		vala_ccode_function_add_parameter (_tmp31_, _tmp42_);
		_vala_ccode_node_unref0 (_tmp42_);
		_g_free0 (_tmp40_);
		_g_free0 (_tmp38_);
	} else {
		ValaCCodeFunction* _tmp43_;
		ValaProperty* _tmp44_;
		ValaPropertyAccessor* _tmp45_;
		ValaPropertyAccessor* _tmp46_;
		ValaDataType* _tmp47_;
		ValaDataType* _tmp48_;
		gchar* _tmp49_;
		gchar* _tmp50_;
		ValaCCodeParameter* _tmp51_;
		ValaCCodeParameter* _tmp52_;
		ValaArrayType* _tmp53_;
		_tmp43_ = function;
		_tmp44_ = prop;
		_tmp45_ = vala_property_get_set_accessor (_tmp44_);
		_tmp46_ = _tmp45_;
		_tmp47_ = vala_property_accessor_get_value_type (_tmp46_);
		_tmp48_ = _tmp47_;
		_tmp49_ = vala_ccode_base_module_get_ccode_name ((ValaCodeNode*) _tmp48_);
		_tmp50_ = _tmp49_;
		_tmp51_ = vala_ccode_parameter_new ("value", _tmp50_);
		_tmp52_ = _tmp51_;
		vala_ccode_function_add_parameter (_tmp43_, _tmp52_);
		_vala_ccode_node_unref0 (_tmp52_);
		_g_free0 (_tmp50_);
		_tmp53_ = array_type;
		if (_tmp53_ != NULL) {
			{
				gint dim = 0;
				dim = 1;
				{
					gboolean _tmp54_ = FALSE;
					_tmp54_ = TRUE;
					while (TRUE) {
						gint _tmp56_;
						ValaArrayType* _tmp57_;
						gint _tmp58_;
						gint _tmp59_;
						ValaCCodeFunction* _tmp60_;
						gint _tmp61_;
						gchar* _tmp62_;
						gchar* _tmp63_;
						ValaCCodeParameter* _tmp64_;
						ValaCCodeParameter* _tmp65_;
						if (!_tmp54_) {
							gint _tmp55_;
							_tmp55_ = dim;
							dim = _tmp55_ + 1;
						}
						_tmp54_ = FALSE;
						_tmp56_ = dim;
						_tmp57_ = array_type;
						_tmp58_ = vala_array_type_get_rank (_tmp57_);
						_tmp59_ = _tmp58_;
						if (!(_tmp56_ <= _tmp59_)) {
							break;
						}
						_tmp60_ = function;
						_tmp61_ = dim;
						_tmp62_ = g_strdup_printf ("value_length%d", _tmp61_);
						_tmp63_ = _tmp62_;
						_tmp64_ = vala_ccode_parameter_new (_tmp63_, "int");
						_tmp65_ = _tmp64_;
						vala_ccode_function_add_parameter (_tmp60_, _tmp65_);
						_vala_ccode_node_unref0 (_tmp65_);
						_g_free0 (_tmp63_);
					}
				}
			}
		}
	}
	_tmp66_ = function;
	vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, _tmp66_);
	_tmp67_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp68_ = _tmp67_;
	_tmp69_ = vala_ccode_variable_declarator_new ("*_arguments", NULL, NULL);
	_tmp70_ = _tmp69_;
	vala_ccode_function_add_declaration (_tmp68_, "GVariant", (ValaCCodeDeclarator*) _tmp70_, 0);
	_vala_ccode_node_unref0 (_tmp70_);
	_tmp71_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp72_ = _tmp71_;
	_tmp73_ = vala_ccode_variable_declarator_new ("*_reply", NULL, NULL);
	_tmp74_ = _tmp73_;
	vala_ccode_function_add_declaration (_tmp72_, "GVariant", (ValaCCodeDeclarator*) _tmp74_, 0);
	_vala_ccode_node_unref0 (_tmp74_);
	_tmp75_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp76_ = _tmp75_;
	_tmp77_ = vala_ccode_variable_declarator_new ("_arguments_builder", NULL, NULL);
	_tmp78_ = _tmp77_;
	vala_ccode_function_add_declaration (_tmp76_, "GVariantBuilder", (ValaCCodeDeclarator*) _tmp78_, 0);
	_vala_ccode_node_unref0 (_tmp78_);
	_tmp79_ = vala_ccode_identifier_new ("g_variant_builder_init");
	_tmp80_ = _tmp79_;
	_tmp81_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp80_);
	_tmp82_ = _tmp81_;
	_vala_ccode_node_unref0 (_tmp80_);
	builder_init = _tmp82_;
	_tmp83_ = builder_init;
	_tmp84_ = vala_ccode_identifier_new ("_arguments_builder");
	_tmp85_ = _tmp84_;
	_tmp86_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp85_);
	_tmp87_ = _tmp86_;
	vala_ccode_function_call_add_argument (_tmp83_, (ValaCCodeExpression*) _tmp87_);
	_vala_ccode_node_unref0 (_tmp87_);
	_vala_ccode_node_unref0 (_tmp85_);
	_tmp88_ = builder_init;
	_tmp89_ = vala_ccode_identifier_new ("G_VARIANT_TYPE_TUPLE");
	_tmp90_ = _tmp89_;
	vala_ccode_function_call_add_argument (_tmp88_, (ValaCCodeExpression*) _tmp90_);
	_vala_ccode_node_unref0 (_tmp90_);
	_tmp91_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp92_ = _tmp91_;
	_tmp93_ = builder_init;
	vala_ccode_function_add_expression (_tmp92_, (ValaCCodeExpression*) _tmp93_);
	_tmp94_ = ((ValaCCodeBaseModule*) self)->string_type;
	_tmp95_ = vala_ccode_identifier_new ("_arguments_builder");
	_tmp96_ = _tmp95_;
	_tmp97_ = dbus_iface_name;
	_tmp98_ = g_strdup_printf ("\"%s\"", _tmp97_);
	_tmp99_ = _tmp98_;
	_tmp100_ = vala_ccode_constant_new (_tmp99_);
	_tmp101_ = _tmp100_;
	vala_gvariant_module_write_expression ((ValaGVariantModule*) self, _tmp94_, (ValaCCodeExpression*) _tmp96_, (ValaCCodeExpression*) _tmp101_, NULL);
	_vala_ccode_node_unref0 (_tmp101_);
	_g_free0 (_tmp99_);
	_vala_ccode_node_unref0 (_tmp96_);
	_tmp102_ = ((ValaCCodeBaseModule*) self)->string_type;
	_tmp103_ = vala_ccode_identifier_new ("_arguments_builder");
	_tmp104_ = _tmp103_;
	_tmp105_ = prop;
	_tmp106_ = vala_gd_bus_module_get_dbus_name_for_member ((ValaSymbol*) _tmp105_);
	_tmp107_ = _tmp106_;
	_tmp108_ = g_strdup_printf ("\"%s\"", _tmp107_);
	_tmp109_ = _tmp108_;
	_tmp110_ = vala_ccode_constant_new (_tmp109_);
	_tmp111_ = _tmp110_;
	vala_gvariant_module_write_expression ((ValaGVariantModule*) self, _tmp102_, (ValaCCodeExpression*) _tmp104_, (ValaCCodeExpression*) _tmp111_, NULL);
	_vala_ccode_node_unref0 (_tmp111_);
	_g_free0 (_tmp109_);
	_g_free0 (_tmp107_);
	_vala_ccode_node_unref0 (_tmp104_);
	_tmp112_ = vala_ccode_identifier_new ("g_variant_builder_open");
	_tmp113_ = _tmp112_;
	_tmp114_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp113_);
	_tmp115_ = _tmp114_;
	_vala_ccode_node_unref0 (_tmp113_);
	builder_open = _tmp115_;
	_tmp116_ = builder_open;
	_tmp117_ = vala_ccode_identifier_new ("_arguments_builder");
	_tmp118_ = _tmp117_;
	_tmp119_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp118_);
	_tmp120_ = _tmp119_;
	vala_ccode_function_call_add_argument (_tmp116_, (ValaCCodeExpression*) _tmp120_);
	_vala_ccode_node_unref0 (_tmp120_);
	_vala_ccode_node_unref0 (_tmp118_);
	_tmp121_ = builder_open;
	_tmp122_ = vala_ccode_identifier_new ("G_VARIANT_TYPE_VARIANT");
	_tmp123_ = _tmp122_;
	vala_ccode_function_call_add_argument (_tmp121_, (ValaCCodeExpression*) _tmp123_);
	_vala_ccode_node_unref0 (_tmp123_);
	_tmp124_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp125_ = _tmp124_;
	_tmp126_ = builder_open;
	vala_ccode_function_add_expression (_tmp125_, (ValaCCodeExpression*) _tmp126_);
	_tmp127_ = prop;
	_tmp128_ = vala_property_get_property_type (_tmp127_);
	_tmp129_ = _tmp128_;
	_tmp130_ = vala_data_type_is_real_non_null_struct_type (_tmp129_);
	if (_tmp130_) {
		ValaProperty* _tmp131_;
		ValaPropertyAccessor* _tmp132_;
		ValaPropertyAccessor* _tmp133_;
		ValaDataType* _tmp134_;
		ValaDataType* _tmp135_;
		ValaCCodeIdentifier* _tmp136_;
		ValaCCodeIdentifier* _tmp137_;
		ValaCCodeIdentifier* _tmp138_;
		ValaCCodeIdentifier* _tmp139_;
		ValaCCodeUnaryExpression* _tmp140_;
		ValaCCodeUnaryExpression* _tmp141_;
		ValaProperty* _tmp142_;
		_tmp131_ = prop;
		_tmp132_ = vala_property_get_set_accessor (_tmp131_);
		_tmp133_ = _tmp132_;
		_tmp134_ = vala_property_accessor_get_value_type (_tmp133_);
		_tmp135_ = _tmp134_;
		_tmp136_ = vala_ccode_identifier_new ("_arguments_builder");
		_tmp137_ = _tmp136_;
		_tmp138_ = vala_ccode_identifier_new ("value");
		_tmp139_ = _tmp138_;
		_tmp140_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_POINTER_INDIRECTION, (ValaCCodeExpression*) _tmp139_);
		_tmp141_ = _tmp140_;
		_tmp142_ = prop;
		vala_gvariant_module_write_expression ((ValaGVariantModule*) self, _tmp135_, (ValaCCodeExpression*) _tmp137_, (ValaCCodeExpression*) _tmp141_, (ValaSymbol*) _tmp142_);
		_vala_ccode_node_unref0 (_tmp141_);
		_vala_ccode_node_unref0 (_tmp139_);
		_vala_ccode_node_unref0 (_tmp137_);
	} else {
		ValaProperty* _tmp143_;
		ValaPropertyAccessor* _tmp144_;
		ValaPropertyAccessor* _tmp145_;
		ValaDataType* _tmp146_;
		ValaDataType* _tmp147_;
		ValaCCodeIdentifier* _tmp148_;
		ValaCCodeIdentifier* _tmp149_;
		ValaCCodeIdentifier* _tmp150_;
		ValaCCodeIdentifier* _tmp151_;
		ValaProperty* _tmp152_;
		_tmp143_ = prop;
		_tmp144_ = vala_property_get_set_accessor (_tmp143_);
		_tmp145_ = _tmp144_;
		_tmp146_ = vala_property_accessor_get_value_type (_tmp145_);
		_tmp147_ = _tmp146_;
		_tmp148_ = vala_ccode_identifier_new ("_arguments_builder");
		_tmp149_ = _tmp148_;
		_tmp150_ = vala_ccode_identifier_new ("value");
		_tmp151_ = _tmp150_;
		_tmp152_ = prop;
		vala_gvariant_module_write_expression ((ValaGVariantModule*) self, _tmp147_, (ValaCCodeExpression*) _tmp149_, (ValaCCodeExpression*) _tmp151_, (ValaSymbol*) _tmp152_);
		_vala_ccode_node_unref0 (_tmp151_);
		_vala_ccode_node_unref0 (_tmp149_);
	}
	_tmp153_ = vala_ccode_identifier_new ("g_variant_builder_close");
	_tmp154_ = _tmp153_;
	_tmp155_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp154_);
	_tmp156_ = _tmp155_;
	_vala_ccode_node_unref0 (_tmp154_);
	builder_close = _tmp156_;
	_tmp157_ = vala_ccode_identifier_new ("_arguments_builder");
	_tmp158_ = _tmp157_;
	_tmp159_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp158_);
	_tmp160_ = _tmp159_;
	vala_ccode_function_call_add_argument (builder_close, (ValaCCodeExpression*) _tmp160_);
	_vala_ccode_node_unref0 (_tmp160_);
	_vala_ccode_node_unref0 (_tmp158_);
	_tmp161_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp162_ = _tmp161_;
	vala_ccode_function_add_expression (_tmp162_, (ValaCCodeExpression*) builder_close);
	_tmp163_ = vala_ccode_identifier_new ("g_variant_builder_end");
	_tmp164_ = _tmp163_;
	_tmp165_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp164_);
	_tmp166_ = _tmp165_;
	_vala_ccode_node_unref0 (_tmp164_);
	builder_end = _tmp166_;
	_tmp167_ = vala_ccode_identifier_new ("_arguments_builder");
	_tmp168_ = _tmp167_;
	_tmp169_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp168_);
	_tmp170_ = _tmp169_;
	vala_ccode_function_call_add_argument (builder_end, (ValaCCodeExpression*) _tmp170_);
	_vala_ccode_node_unref0 (_tmp170_);
	_vala_ccode_node_unref0 (_tmp168_);
	_tmp171_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp172_ = _tmp171_;
	_tmp173_ = vala_ccode_identifier_new ("_arguments");
	_tmp174_ = _tmp173_;
	vala_ccode_function_add_assignment (_tmp172_, (ValaCCodeExpression*) _tmp174_, (ValaCCodeExpression*) builder_end);
	_vala_ccode_node_unref0 (_tmp174_);
	_tmp175_ = vala_ccode_identifier_new ("g_dbus_proxy_call_sync");
	_tmp176_ = _tmp175_;
	_tmp177_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp176_);
	_tmp178_ = _tmp177_;
	_vala_ccode_node_unref0 (_tmp176_);
	ccall = _tmp178_;
	_tmp179_ = vala_ccode_identifier_new ("self");
	_tmp180_ = _tmp179_;
	_tmp181_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) _tmp180_, "GDBusProxy *");
	_tmp182_ = _tmp181_;
	vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp182_);
	_vala_ccode_node_unref0 (_tmp182_);
	_vala_ccode_node_unref0 (_tmp180_);
	_tmp183_ = vala_ccode_constant_new ("\"org.freedesktop.DBus.Properties.Set\"");
	_tmp184_ = _tmp183_;
	vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp184_);
	_vala_ccode_node_unref0 (_tmp184_);
	_tmp185_ = vala_ccode_identifier_new ("_arguments");
	_tmp186_ = _tmp185_;
	vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp186_);
	_vala_ccode_node_unref0 (_tmp186_);
	_tmp187_ = vala_ccode_constant_new ("G_DBUS_CALL_FLAGS_NONE");
	_tmp188_ = _tmp187_;
	vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp188_);
	_vala_ccode_node_unref0 (_tmp188_);
	_tmp189_ = prop;
	_tmp190_ = vala_gd_bus_client_module_get_dbus_timeout (self, (ValaSymbol*) _tmp189_);
	_tmp191_ = _tmp190_;
	vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp191_);
	_vala_ccode_node_unref0 (_tmp191_);
	_tmp192_ = vala_ccode_constant_new ("NULL");
	_tmp193_ = _tmp192_;
	vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp193_);
	_vala_ccode_node_unref0 (_tmp193_);
	_tmp194_ = vala_ccode_constant_new ("NULL");
	_tmp195_ = _tmp194_;
	vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp195_);
	_vala_ccode_node_unref0 (_tmp195_);
	_tmp196_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp197_ = _tmp196_;
	_tmp198_ = vala_ccode_identifier_new ("_reply");
	_tmp199_ = _tmp198_;
	vala_ccode_function_add_assignment (_tmp197_, (ValaCCodeExpression*) _tmp199_, (ValaCCodeExpression*) ccall);
	_vala_ccode_node_unref0 (_tmp199_);
	_tmp200_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp201_ = _tmp200_;
	_tmp202_ = vala_ccode_identifier_new ("_reply");
	_tmp203_ = _tmp202_;
	_tmp204_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_LOGICAL_NEGATION, (ValaCCodeExpression*) _tmp203_);
	_tmp205_ = _tmp204_;
	vala_ccode_function_open_if (_tmp201_, (ValaCCodeExpression*) _tmp205_);
	_vala_ccode_node_unref0 (_tmp205_);
	_vala_ccode_node_unref0 (_tmp203_);
	_tmp206_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp207_ = _tmp206_;
	vala_ccode_function_add_return (_tmp207_, NULL);
	_tmp208_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp209_ = _tmp208_;
	vala_ccode_function_close (_tmp209_);
	_tmp210_ = vala_ccode_identifier_new ("g_variant_unref");
	_tmp211_ = _tmp210_;
	_tmp212_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp211_);
	_tmp213_ = _tmp212_;
	_vala_ccode_node_unref0 (_tmp211_);
	unref_reply = _tmp213_;
	_tmp214_ = vala_ccode_identifier_new ("_reply");
	_tmp215_ = _tmp214_;
	vala_ccode_function_call_add_argument (unref_reply, (ValaCCodeExpression*) _tmp215_);
	_vala_ccode_node_unref0 (_tmp215_);
	_tmp216_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp217_ = _tmp216_;
	vala_ccode_function_add_expression (_tmp217_, (ValaCCodeExpression*) unref_reply);
	vala_ccode_base_module_pop_function ((ValaCCodeBaseModule*) self);
	_tmp218_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp219_ = function;
	vala_ccode_file_add_function_declaration (_tmp218_, _tmp219_);
	_tmp220_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp221_ = function;
	vala_ccode_file_add_function (_tmp220_, _tmp221_);
	result = proxy_name;
	_vala_ccode_node_unref0 (unref_reply);
	_vala_ccode_node_unref0 (ccall);
	_vala_ccode_node_unref0 (builder_end);
	_vala_ccode_node_unref0 (builder_close);
	_vala_ccode_node_unref0 (builder_open);
	_vala_ccode_node_unref0 (builder_init);
	_vala_ccode_node_unref0 (function);
	_vala_code_node_unref0 (array_type);
	_g_free0 (dbus_iface_name);
	return result;
}


static void vala_gd_bus_client_module_real_register_dbus_info (ValaCCodeBaseModule* base, ValaCCodeBlock* block, ValaObjectTypeSymbol* sym) {
	ValaGDBusClientModule * self;
	ValaObjectTypeSymbol* _tmp0_;
	gchar* dbus_iface_name = NULL;
	ValaObjectTypeSymbol* _tmp1_;
	gchar* _tmp2_;
	const gchar* _tmp3_;
	ValaCCodeFunctionCall* quark = NULL;
	ValaCCodeIdentifier* _tmp4_;
	ValaCCodeIdentifier* _tmp5_;
	ValaCCodeFunctionCall* _tmp6_;
	ValaCCodeFunctionCall* _tmp7_;
	ValaCCodeFunctionCall* _tmp8_;
	ValaCCodeConstant* _tmp9_;
	ValaCCodeConstant* _tmp10_;
	ValaCCodeIdentifier* proxy_type = NULL;
	ValaObjectTypeSymbol* _tmp11_;
	gchar* _tmp12_;
	gchar* _tmp13_;
	gchar* _tmp14_;
	gchar* _tmp15_;
	ValaCCodeIdentifier* _tmp16_;
	ValaCCodeIdentifier* _tmp17_;
	ValaCCodeFunctionCall* set_qdata = NULL;
	ValaCCodeIdentifier* _tmp18_;
	ValaCCodeIdentifier* _tmp19_;
	ValaCCodeFunctionCall* _tmp20_;
	ValaCCodeFunctionCall* _tmp21_;
	ValaCCodeFunctionCall* _tmp22_;
	ValaObjectTypeSymbol* _tmp23_;
	gchar* _tmp24_;
	gchar* _tmp25_;
	gchar* _tmp26_;
	gchar* _tmp27_;
	ValaCCodeIdentifier* _tmp28_;
	ValaCCodeIdentifier* _tmp29_;
	ValaCCodeFunctionCall* _tmp30_;
	ValaCCodeFunctionCall* _tmp31_;
	ValaCCodeFunctionCall* _tmp32_;
	ValaCCodeIdentifier* _tmp33_;
	ValaCCodeCastExpression* _tmp34_;
	ValaCCodeCastExpression* _tmp35_;
	ValaCCodeBlock* _tmp36_;
	ValaCCodeFunctionCall* _tmp37_;
	ValaCCodeExpressionStatement* _tmp38_;
	ValaCCodeExpressionStatement* _tmp39_;
	ValaCCodeIdentifier* _tmp40_;
	ValaCCodeIdentifier* _tmp41_;
	ValaCCodeFunctionCall* _tmp42_;
	ValaCCodeFunctionCall* _tmp43_;
	ValaCCodeConstant* _tmp44_;
	ValaCCodeConstant* _tmp45_;
	ValaCCodeIdentifier* _tmp46_;
	ValaCCodeIdentifier* _tmp47_;
	ValaCCodeFunctionCall* _tmp48_;
	ValaCCodeFunctionCall* _tmp49_;
	ValaObjectTypeSymbol* _tmp50_;
	gchar* _tmp51_;
	gchar* _tmp52_;
	gchar* _tmp53_;
	gchar* _tmp54_;
	ValaCCodeIdentifier* _tmp55_;
	ValaCCodeIdentifier* _tmp56_;
	ValaCCodeFunctionCall* _tmp57_;
	ValaCCodeFunctionCall* _tmp58_;
	ValaCCodeFunctionCall* _tmp59_;
	const gchar* _tmp60_;
	gchar* _tmp61_;
	gchar* _tmp62_;
	ValaCCodeConstant* _tmp63_;
	ValaCCodeConstant* _tmp64_;
	ValaCCodeBlock* _tmp65_;
	ValaCCodeFunctionCall* _tmp66_;
	ValaCCodeExpressionStatement* _tmp67_;
	ValaCCodeExpressionStatement* _tmp68_;
	ValaCCodeIdentifier* _tmp69_;
	ValaCCodeIdentifier* _tmp70_;
	ValaCCodeFunctionCall* _tmp71_;
	ValaCCodeFunctionCall* _tmp72_;
	ValaCCodeConstant* _tmp73_;
	ValaCCodeConstant* _tmp74_;
	ValaCCodeIdentifier* _tmp75_;
	ValaCCodeIdentifier* _tmp76_;
	ValaCCodeFunctionCall* _tmp77_;
	ValaCCodeFunctionCall* _tmp78_;
	ValaObjectTypeSymbol* _tmp79_;
	gchar* _tmp80_;
	gchar* _tmp81_;
	gchar* _tmp82_;
	gchar* _tmp83_;
	ValaCCodeIdentifier* _tmp84_;
	ValaCCodeIdentifier* _tmp85_;
	ValaCCodeFunctionCall* _tmp86_;
	ValaCCodeFunctionCall* _tmp87_;
	ValaCCodeFunctionCall* _tmp88_;
	ValaObjectTypeSymbol* _tmp89_;
	ValaCCodeExpression* _tmp90_;
	ValaCCodeExpression* _tmp91_;
	ValaCCodeUnaryExpression* _tmp92_;
	ValaCCodeUnaryExpression* _tmp93_;
	ValaCCodeCastExpression* _tmp94_;
	ValaCCodeCastExpression* _tmp95_;
	ValaCCodeBlock* _tmp96_;
	ValaCCodeFunctionCall* _tmp97_;
	ValaCCodeExpressionStatement* _tmp98_;
	ValaCCodeExpressionStatement* _tmp99_;
	self = (ValaGDBusClientModule*) base;
	g_return_if_fail (block != NULL);
	g_return_if_fail (sym != NULL);
	_tmp0_ = sym;
	if (!G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, VALA_TYPE_INTERFACE)) {
		return;
	}
	_tmp1_ = sym;
	_tmp2_ = vala_gd_bus_module_get_dbus_name ((ValaTypeSymbol*) _tmp1_);
	dbus_iface_name = _tmp2_;
	_tmp3_ = dbus_iface_name;
	if (_tmp3_ == NULL) {
		_g_free0 (dbus_iface_name);
		return;
	}
	_tmp4_ = vala_ccode_identifier_new ("g_quark_from_static_string");
	_tmp5_ = _tmp4_;
	_tmp6_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp5_);
	_tmp7_ = _tmp6_;
	_vala_ccode_node_unref0 (_tmp5_);
	quark = _tmp7_;
	_tmp8_ = quark;
	_tmp9_ = vala_ccode_constant_new ("\"vala-dbus-proxy-type\"");
	_tmp10_ = _tmp9_;
	vala_ccode_function_call_add_argument (_tmp8_, (ValaCCodeExpression*) _tmp10_);
	_vala_ccode_node_unref0 (_tmp10_);
	_tmp11_ = sym;
	_tmp12_ = vala_ccode_base_module_get_ccode_lower_case_prefix ((ValaSymbol*) _tmp11_);
	_tmp13_ = _tmp12_;
	_tmp14_ = g_strconcat (_tmp13_, "proxy_get_type", NULL);
	_tmp15_ = _tmp14_;
	_tmp16_ = vala_ccode_identifier_new (_tmp15_);
	_tmp17_ = _tmp16_;
	_g_free0 (_tmp15_);
	_g_free0 (_tmp13_);
	proxy_type = _tmp17_;
	_tmp18_ = vala_ccode_identifier_new ("g_type_set_qdata");
	_tmp19_ = _tmp18_;
	_tmp20_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp19_);
	_tmp21_ = _tmp20_;
	_vala_ccode_node_unref0 (_tmp19_);
	set_qdata = _tmp21_;
	_tmp22_ = set_qdata;
	_tmp23_ = sym;
	_tmp24_ = vala_ccode_base_module_get_ccode_lower_case_name ((ValaCodeNode*) _tmp23_, NULL);
	_tmp25_ = _tmp24_;
	_tmp26_ = g_strdup_printf ("%s_type_id", _tmp25_);
	_tmp27_ = _tmp26_;
	_tmp28_ = vala_ccode_identifier_new (_tmp27_);
	_tmp29_ = _tmp28_;
	vala_ccode_function_call_add_argument (_tmp22_, (ValaCCodeExpression*) _tmp29_);
	_vala_ccode_node_unref0 (_tmp29_);
	_g_free0 (_tmp27_);
	_g_free0 (_tmp25_);
	_tmp30_ = set_qdata;
	_tmp31_ = quark;
	vala_ccode_function_call_add_argument (_tmp30_, (ValaCCodeExpression*) _tmp31_);
	_tmp32_ = set_qdata;
	_tmp33_ = proxy_type;
	_tmp34_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) _tmp33_, "void*");
	_tmp35_ = _tmp34_;
	vala_ccode_function_call_add_argument (_tmp32_, (ValaCCodeExpression*) _tmp35_);
	_vala_ccode_node_unref0 (_tmp35_);
	_tmp36_ = block;
	_tmp37_ = set_qdata;
	_tmp38_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp37_);
	_tmp39_ = _tmp38_;
	vala_ccode_block_add_statement (_tmp36_, (ValaCCodeNode*) _tmp39_);
	_vala_ccode_node_unref0 (_tmp39_);
	_tmp40_ = vala_ccode_identifier_new ("g_quark_from_static_string");
	_tmp41_ = _tmp40_;
	_tmp42_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp41_);
	_vala_ccode_node_unref0 (quark);
	quark = _tmp42_;
	_vala_ccode_node_unref0 (_tmp41_);
	_tmp43_ = quark;
	_tmp44_ = vala_ccode_constant_new ("\"vala-dbus-interface-name\"");
	_tmp45_ = _tmp44_;
	vala_ccode_function_call_add_argument (_tmp43_, (ValaCCodeExpression*) _tmp45_);
	_vala_ccode_node_unref0 (_tmp45_);
	_tmp46_ = vala_ccode_identifier_new ("g_type_set_qdata");
	_tmp47_ = _tmp46_;
	_tmp48_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp47_);
	_vala_ccode_node_unref0 (set_qdata);
	set_qdata = _tmp48_;
	_vala_ccode_node_unref0 (_tmp47_);
	_tmp49_ = set_qdata;
	_tmp50_ = sym;
	_tmp51_ = vala_ccode_base_module_get_ccode_lower_case_name ((ValaCodeNode*) _tmp50_, NULL);
	_tmp52_ = _tmp51_;
	_tmp53_ = g_strdup_printf ("%s_type_id", _tmp52_);
	_tmp54_ = _tmp53_;
	_tmp55_ = vala_ccode_identifier_new (_tmp54_);
	_tmp56_ = _tmp55_;
	vala_ccode_function_call_add_argument (_tmp49_, (ValaCCodeExpression*) _tmp56_);
	_vala_ccode_node_unref0 (_tmp56_);
	_g_free0 (_tmp54_);
	_g_free0 (_tmp52_);
	_tmp57_ = set_qdata;
	_tmp58_ = quark;
	vala_ccode_function_call_add_argument (_tmp57_, (ValaCCodeExpression*) _tmp58_);
	_tmp59_ = set_qdata;
	_tmp60_ = dbus_iface_name;
	_tmp61_ = g_strdup_printf ("\"%s\"", _tmp60_);
	_tmp62_ = _tmp61_;
	_tmp63_ = vala_ccode_constant_new (_tmp62_);
	_tmp64_ = _tmp63_;
	vala_ccode_function_call_add_argument (_tmp59_, (ValaCCodeExpression*) _tmp64_);
	_vala_ccode_node_unref0 (_tmp64_);
	_g_free0 (_tmp62_);
	_tmp65_ = block;
	_tmp66_ = set_qdata;
	_tmp67_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp66_);
	_tmp68_ = _tmp67_;
	vala_ccode_block_add_statement (_tmp65_, (ValaCCodeNode*) _tmp68_);
	_vala_ccode_node_unref0 (_tmp68_);
	_tmp69_ = vala_ccode_identifier_new ("g_quark_from_static_string");
	_tmp70_ = _tmp69_;
	_tmp71_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp70_);
	_vala_ccode_node_unref0 (quark);
	quark = _tmp71_;
	_vala_ccode_node_unref0 (_tmp70_);
	_tmp72_ = quark;
	_tmp73_ = vala_ccode_constant_new ("\"vala-dbus-interface-info\"");
	_tmp74_ = _tmp73_;
	vala_ccode_function_call_add_argument (_tmp72_, (ValaCCodeExpression*) _tmp74_);
	_vala_ccode_node_unref0 (_tmp74_);
	_tmp75_ = vala_ccode_identifier_new ("g_type_set_qdata");
	_tmp76_ = _tmp75_;
	_tmp77_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp76_);
	_vala_ccode_node_unref0 (set_qdata);
	set_qdata = _tmp77_;
	_vala_ccode_node_unref0 (_tmp76_);
	_tmp78_ = set_qdata;
	_tmp79_ = sym;
	_tmp80_ = vala_ccode_base_module_get_ccode_lower_case_name ((ValaCodeNode*) _tmp79_, NULL);
	_tmp81_ = _tmp80_;
	_tmp82_ = g_strdup_printf ("%s_type_id", _tmp81_);
	_tmp83_ = _tmp82_;
	_tmp84_ = vala_ccode_identifier_new (_tmp83_);
	_tmp85_ = _tmp84_;
	vala_ccode_function_call_add_argument (_tmp78_, (ValaCCodeExpression*) _tmp85_);
	_vala_ccode_node_unref0 (_tmp85_);
	_g_free0 (_tmp83_);
	_g_free0 (_tmp81_);
	_tmp86_ = set_qdata;
	_tmp87_ = quark;
	vala_ccode_function_call_add_argument (_tmp86_, (ValaCCodeExpression*) _tmp87_);
	_tmp88_ = set_qdata;
	_tmp89_ = sym;
	_tmp90_ = vala_gd_bus_module_get_interface_info ((ValaGDBusModule*) self, _tmp89_);
	_tmp91_ = _tmp90_;
	_tmp92_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, _tmp91_);
	_tmp93_ = _tmp92_;
	_tmp94_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) _tmp93_, "void*");
	_tmp95_ = _tmp94_;
	vala_ccode_function_call_add_argument (_tmp88_, (ValaCCodeExpression*) _tmp95_);
	_vala_ccode_node_unref0 (_tmp95_);
	_vala_ccode_node_unref0 (_tmp93_);
	_vala_ccode_node_unref0 (_tmp91_);
	_tmp96_ = block;
	_tmp97_ = set_qdata;
	_tmp98_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp97_);
	_tmp99_ = _tmp98_;
	vala_ccode_block_add_statement (_tmp96_, (ValaCCodeNode*) _tmp99_);
	_vala_ccode_node_unref0 (_tmp99_);
	_vala_ccode_node_unref0 (set_qdata);
	_vala_ccode_node_unref0 (proxy_type);
	_vala_ccode_node_unref0 (quark);
	_g_free0 (dbus_iface_name);
}


ValaGDBusClientModule* vala_gd_bus_client_module_construct (GType object_type) {
	ValaGDBusClientModule* self = NULL;
	self = (ValaGDBusClientModule*) vala_gd_bus_module_construct (object_type);
	return self;
}


ValaGDBusClientModule* vala_gd_bus_client_module_new (void) {
	return vala_gd_bus_client_module_construct (VALA_TYPE_GD_BUS_CLIENT_MODULE);
}


static void vala_gd_bus_client_module_class_init (ValaGDBusClientModuleClass * klass) {
	vala_gd_bus_client_module_parent_class = g_type_class_peek_parent (klass);
	((ValaCCodeBaseModuleClass *) klass)->generate_dynamic_method_wrapper = (void (*) (ValaCCodeBaseModule *, ValaDynamicMethod*)) vala_gd_bus_client_module_real_generate_dynamic_method_wrapper;
	((ValaCCodeBaseModuleClass *) klass)->generate_interface_declaration = (void (*) (ValaCCodeBaseModule *, ValaInterface*, ValaCCodeFile*)) vala_gd_bus_client_module_real_generate_interface_declaration;
	((ValaCodeVisitorClass *) klass)->visit_interface = (void (*) (ValaCodeVisitor *, ValaInterface*)) vala_gd_bus_client_module_real_visit_interface;
	((ValaCodeVisitorClass *) klass)->visit_method_call = (void (*) (ValaCodeVisitor *, ValaMethodCall*)) vala_gd_bus_client_module_real_visit_method_call;
	((ValaCCodeBaseModuleClass *) klass)->register_dbus_info = (void (*) (ValaCCodeBaseModule *, ValaCCodeBlock*, ValaObjectTypeSymbol*)) vala_gd_bus_client_module_real_register_dbus_info;
}


static void vala_gd_bus_client_module_instance_init (ValaGDBusClientModule * self) {
}


GType vala_gd_bus_client_module_get_type (void) {
	static volatile gsize vala_gd_bus_client_module_type_id__volatile = 0;
	if (g_once_init_enter (&vala_gd_bus_client_module_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (ValaGDBusClientModuleClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) vala_gd_bus_client_module_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ValaGDBusClientModule), 0, (GInstanceInitFunc) vala_gd_bus_client_module_instance_init, NULL };
		GType vala_gd_bus_client_module_type_id;
		vala_gd_bus_client_module_type_id = g_type_register_static (VALA_TYPE_GD_BUS_MODULE, "ValaGDBusClientModule", &g_define_type_info, 0);
		g_once_init_leave (&vala_gd_bus_client_module_type_id__volatile, vala_gd_bus_client_module_type_id);
	}
	return vala_gd_bus_client_module_type_id__volatile;
}



