/* wizard.c generated by valac 0.16.0.2-f2187, the Vala compiler
 * generated from wizard.vala, do not modify */

/* This file is part of GNOME Boxes. License: LGPLv2+*/

#include <glib.h>
#include <glib-object.h>
#include <clutter/clutter.h>
#include <clutter-gtk/clutter-gtk.h>
#include <gtk/gtk.h>
#include <stdlib.h>
#include <string.h>
#include <glib/gi18n-lib.h>
#include <gio/gio.h>
#include <libxml/uri.h>
#include <osinfo/osinfo.h>
#include <gdk/gdk.h>


#define BOXES_TYPE_WIZARD_PAGE (boxes_wizard_page_get_type ())

#define BOXES_TYPE_UI (boxes_ui_get_type ())
#define BOXES_UI(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_UI, BoxesUI))
#define BOXES_UI_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_UI, BoxesUIClass))
#define BOXES_IS_UI(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_UI))
#define BOXES_IS_UI_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_UI))
#define BOXES_UI_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_UI, BoxesUIClass))

typedef struct _BoxesUI BoxesUI;
typedef struct _BoxesUIClass BoxesUIClass;
typedef struct _BoxesUIPrivate BoxesUIPrivate;

#define BOXES_TYPE_UI_STATE (boxes_ui_state_get_type ())

#define BOXES_TYPE_WIZARD (boxes_wizard_get_type ())
#define BOXES_WIZARD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_WIZARD, BoxesWizard))
#define BOXES_WIZARD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_WIZARD, BoxesWizardClass))
#define BOXES_IS_WIZARD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_WIZARD))
#define BOXES_IS_WIZARD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_WIZARD))
#define BOXES_WIZARD_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_WIZARD, BoxesWizardClass))

typedef struct _BoxesWizard BoxesWizard;
typedef struct _BoxesWizardClass BoxesWizardClass;
typedef struct _BoxesWizardPrivate BoxesWizardPrivate;

#define BOXES_TYPE_APP (boxes_app_get_type ())
#define BOXES_APP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_APP, BoxesApp))
#define BOXES_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_APP, BoxesAppClass))
#define BOXES_IS_APP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_APP))
#define BOXES_IS_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_APP))
#define BOXES_APP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_APP, BoxesAppClass))

typedef struct _BoxesApp BoxesApp;
typedef struct _BoxesAppClass BoxesAppClass;

#define BOXES_TYPE_WIZARD_SOURCE (boxes_wizard_source_get_type ())
#define BOXES_WIZARD_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_WIZARD_SOURCE, BoxesWizardSource))
#define BOXES_WIZARD_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_WIZARD_SOURCE, BoxesWizardSourceClass))
#define BOXES_IS_WIZARD_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_WIZARD_SOURCE))
#define BOXES_IS_WIZARD_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_WIZARD_SOURCE))
#define BOXES_WIZARD_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_WIZARD_SOURCE, BoxesWizardSourceClass))

typedef struct _BoxesWizardSource BoxesWizardSource;
typedef struct _BoxesWizardSourceClass BoxesWizardSourceClass;

#define BOXES_WIZARD_TYPE_WIZARD_SUMMARY (boxes_wizard_wizard_summary_get_type ())
#define BOXES_WIZARD_WIZARD_SUMMARY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_WIZARD_TYPE_WIZARD_SUMMARY, BoxesWizardWizardSummary))
#define BOXES_WIZARD_WIZARD_SUMMARY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_WIZARD_TYPE_WIZARD_SUMMARY, BoxesWizardWizardSummaryClass))
#define BOXES_WIZARD_IS_WIZARD_SUMMARY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_WIZARD_TYPE_WIZARD_SUMMARY))
#define BOXES_WIZARD_IS_WIZARD_SUMMARY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_WIZARD_TYPE_WIZARD_SUMMARY))
#define BOXES_WIZARD_WIZARD_SUMMARY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_WIZARD_TYPE_WIZARD_SUMMARY, BoxesWizardWizardSummaryClass))

typedef struct _BoxesWizardWizardSummary BoxesWizardWizardSummary;
typedef struct _BoxesWizardWizardSummaryClass BoxesWizardWizardSummaryClass;

#define BOXES_TYPE_COLLECTION_SOURCE (boxes_collection_source_get_type ())
#define BOXES_COLLECTION_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_COLLECTION_SOURCE, BoxesCollectionSource))
#define BOXES_COLLECTION_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_COLLECTION_SOURCE, BoxesCollectionSourceClass))
#define BOXES_IS_COLLECTION_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_COLLECTION_SOURCE))
#define BOXES_IS_COLLECTION_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_COLLECTION_SOURCE))
#define BOXES_COLLECTION_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_COLLECTION_SOURCE, BoxesCollectionSourceClass))

typedef struct _BoxesCollectionSource BoxesCollectionSource;
typedef struct _BoxesCollectionSourceClass BoxesCollectionSourceClass;

#define BOXES_TYPE_MEDIA_MANAGER (boxes_media_manager_get_type ())
#define BOXES_MEDIA_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_MEDIA_MANAGER, BoxesMediaManager))
#define BOXES_MEDIA_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_MEDIA_MANAGER, BoxesMediaManagerClass))
#define BOXES_IS_MEDIA_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_MEDIA_MANAGER))
#define BOXES_IS_MEDIA_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_MEDIA_MANAGER))
#define BOXES_MEDIA_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_MEDIA_MANAGER, BoxesMediaManagerClass))

typedef struct _BoxesMediaManager BoxesMediaManager;
typedef struct _BoxesMediaManagerClass BoxesMediaManagerClass;

#define BOXES_TYPE_VM_CREATOR (boxes_vm_creator_get_type ())
#define BOXES_VM_CREATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_VM_CREATOR, BoxesVMCreator))
#define BOXES_VM_CREATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_VM_CREATOR, BoxesVMCreatorClass))
#define BOXES_IS_VM_CREATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_VM_CREATOR))
#define BOXES_IS_VM_CREATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_VM_CREATOR))
#define BOXES_VM_CREATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_VM_CREATOR, BoxesVMCreatorClass))

typedef struct _BoxesVMCreator BoxesVMCreator;
typedef struct _BoxesVMCreatorClass BoxesVMCreatorClass;

#define BOXES_TYPE_INSTALLER_MEDIA (boxes_installer_media_get_type ())
#define BOXES_INSTALLER_MEDIA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_INSTALLER_MEDIA, BoxesInstallerMedia))
#define BOXES_INSTALLER_MEDIA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_INSTALLER_MEDIA, BoxesInstallerMediaClass))
#define BOXES_IS_INSTALLER_MEDIA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_INSTALLER_MEDIA))
#define BOXES_IS_INSTALLER_MEDIA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_INSTALLER_MEDIA))
#define BOXES_INSTALLER_MEDIA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_INSTALLER_MEDIA, BoxesInstallerMediaClass))

typedef struct _BoxesInstallerMedia BoxesInstallerMedia;
typedef struct _BoxesInstallerMediaClass BoxesInstallerMediaClass;
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
#define _g_ptr_array_unref0(var) ((var == NULL) ? NULL : (var = (g_ptr_array_unref (var), NULL)))
#define _boxes_vm_creator_unref0(var) ((var == NULL) ? NULL : (var = (boxes_vm_creator_unref (var), NULL)))

#define BOXES_TYPE_SOURCE_PAGE (boxes_source_page_get_type ())
typedef struct _BoxesWizardSourcePrivate BoxesWizardSourcePrivate;
#define _g_free0(var) (var = (g_free (var), NULL))
#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))

#define BOXES_TYPE_ICONFIG (boxes_iconfig_get_type ())
#define BOXES_ICONFIG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_ICONFIG, BoxesIConfig))
#define BOXES_IS_ICONFIG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_ICONFIG))
#define BOXES_ICONFIG_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), BOXES_TYPE_ICONFIG, BoxesIConfigIface))

typedef struct _BoxesIConfig BoxesIConfig;
typedef struct _BoxesIConfigIface BoxesIConfigIface;
typedef struct _BoxesWizardCreateData BoxesWizardCreateData;
#define _xmlFreeURI0(var) ((var == NULL) ? NULL : (var = (xmlFreeURI (var), NULL)))
typedef struct _BoxesInstallerMediaPrivate BoxesInstallerMediaPrivate;
typedef struct _BoxesAppPrivate BoxesAppPrivate;

#define BOXES_TYPE_COLLECTION_ITEM (boxes_collection_item_get_type ())
#define BOXES_COLLECTION_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_COLLECTION_ITEM, BoxesCollectionItem))
#define BOXES_COLLECTION_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_COLLECTION_ITEM, BoxesCollectionItemClass))
#define BOXES_IS_COLLECTION_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_COLLECTION_ITEM))
#define BOXES_IS_COLLECTION_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_COLLECTION_ITEM))
#define BOXES_COLLECTION_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_COLLECTION_ITEM, BoxesCollectionItemClass))

typedef struct _BoxesCollectionItem BoxesCollectionItem;
typedef struct _BoxesCollectionItemClass BoxesCollectionItemClass;

#define BOXES_TYPE_TOPBAR (boxes_topbar_get_type ())
#define BOXES_TOPBAR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_TOPBAR, BoxesTopbar))
#define BOXES_TOPBAR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_TOPBAR, BoxesTopbarClass))
#define BOXES_IS_TOPBAR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_TOPBAR))
#define BOXES_IS_TOPBAR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_TOPBAR))
#define BOXES_TOPBAR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_TOPBAR, BoxesTopbarClass))

typedef struct _BoxesTopbar BoxesTopbar;
typedef struct _BoxesTopbarClass BoxesTopbarClass;

#define BOXES_TYPE_NOTIFICATIONBAR (boxes_notificationbar_get_type ())
#define BOXES_NOTIFICATIONBAR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_NOTIFICATIONBAR, BoxesNotificationbar))
#define BOXES_NOTIFICATIONBAR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_NOTIFICATIONBAR, BoxesNotificationbarClass))
#define BOXES_IS_NOTIFICATIONBAR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_NOTIFICATIONBAR))
#define BOXES_IS_NOTIFICATIONBAR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_NOTIFICATIONBAR))
#define BOXES_NOTIFICATIONBAR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_NOTIFICATIONBAR, BoxesNotificationbarClass))

typedef struct _BoxesNotificationbar BoxesNotificationbar;
typedef struct _BoxesNotificationbarClass BoxesNotificationbarClass;

#define BOXES_TYPE_SIDEBAR (boxes_sidebar_get_type ())
#define BOXES_SIDEBAR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_SIDEBAR, BoxesSidebar))
#define BOXES_SIDEBAR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_SIDEBAR, BoxesSidebarClass))
#define BOXES_IS_SIDEBAR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_SIDEBAR))
#define BOXES_IS_SIDEBAR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_SIDEBAR))
#define BOXES_SIDEBAR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_SIDEBAR, BoxesSidebarClass))

typedef struct _BoxesSidebar BoxesSidebar;
typedef struct _BoxesSidebarClass BoxesSidebarClass;

#define BOXES_TYPE_SELECTIONBAR (boxes_selectionbar_get_type ())
#define BOXES_SELECTIONBAR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_SELECTIONBAR, BoxesSelectionbar))
#define BOXES_SELECTIONBAR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_SELECTIONBAR, BoxesSelectionbarClass))
#define BOXES_IS_SELECTIONBAR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_SELECTIONBAR))
#define BOXES_IS_SELECTIONBAR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_SELECTIONBAR))
#define BOXES_SELECTIONBAR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_SELECTIONBAR, BoxesSelectionbarClass))

typedef struct _BoxesSelectionbar BoxesSelectionbar;
typedef struct _BoxesSelectionbarClass BoxesSelectionbarClass;

#define BOXES_TYPE_PROPERTIES (boxes_properties_get_type ())
#define BOXES_PROPERTIES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_PROPERTIES, BoxesProperties))
#define BOXES_PROPERTIES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_PROPERTIES, BoxesPropertiesClass))
#define BOXES_IS_PROPERTIES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_PROPERTIES))
#define BOXES_IS_PROPERTIES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_PROPERTIES))
#define BOXES_PROPERTIES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_PROPERTIES, BoxesPropertiesClass))

typedef struct _BoxesProperties BoxesProperties;
typedef struct _BoxesPropertiesClass BoxesPropertiesClass;

#define BOXES_TYPE_DISPLAY_PAGE (boxes_display_page_get_type ())
#define BOXES_DISPLAY_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_DISPLAY_PAGE, BoxesDisplayPage))
#define BOXES_DISPLAY_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_DISPLAY_PAGE, BoxesDisplayPageClass))
#define BOXES_IS_DISPLAY_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_DISPLAY_PAGE))
#define BOXES_IS_DISPLAY_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_DISPLAY_PAGE))
#define BOXES_DISPLAY_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_DISPLAY_PAGE, BoxesDisplayPageClass))

typedef struct _BoxesDisplayPage BoxesDisplayPage;
typedef struct _BoxesDisplayPageClass BoxesDisplayPageClass;

#define BOXES_TYPE_COLLECTION (boxes_collection_get_type ())
#define BOXES_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_COLLECTION, BoxesCollection))
#define BOXES_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_COLLECTION, BoxesCollectionClass))
#define BOXES_IS_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_COLLECTION))
#define BOXES_IS_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_COLLECTION))
#define BOXES_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_COLLECTION, BoxesCollectionClass))

typedef struct _BoxesCollection BoxesCollection;
typedef struct _BoxesCollectionClass BoxesCollectionClass;
#define _g_list_free0(var) ((var == NULL) ? NULL : (var = (g_list_free (var), NULL)))

#define BOXES_TYPE_UNATTENDED_INSTALLER (boxes_unattended_installer_get_type ())
#define BOXES_UNATTENDED_INSTALLER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_UNATTENDED_INSTALLER, BoxesUnattendedInstaller))
#define BOXES_UNATTENDED_INSTALLER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_UNATTENDED_INSTALLER, BoxesUnattendedInstallerClass))
#define BOXES_IS_UNATTENDED_INSTALLER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_UNATTENDED_INSTALLER))
#define BOXES_IS_UNATTENDED_INSTALLER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_UNATTENDED_INSTALLER))
#define BOXES_UNATTENDED_INSTALLER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_UNATTENDED_INSTALLER, BoxesUnattendedInstallerClass))

typedef struct _BoxesUnattendedInstaller BoxesUnattendedInstaller;
typedef struct _BoxesUnattendedInstallerClass BoxesUnattendedInstallerClass;

#define BOXES_TYPE_QUERY (boxes_query_get_type ())
#define BOXES_QUERY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_QUERY, BoxesQuery))
#define BOXES_QUERY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_QUERY, BoxesQueryClass))
#define BOXES_IS_QUERY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_QUERY))
#define BOXES_IS_QUERY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_QUERY))
#define BOXES_QUERY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_QUERY, BoxesQueryClass))

typedef struct _BoxesQuery BoxesQuery;
typedef struct _BoxesQueryClass BoxesQueryClass;
typedef struct _BoxesSidebarPrivate BoxesSidebarPrivate;

#define BOXES_TYPE_CATEGORY (boxes_category_get_type ())
#define BOXES_CATEGORY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_CATEGORY, BoxesCategory))
#define BOXES_CATEGORY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_CATEGORY, BoxesCategoryClass))
#define BOXES_IS_CATEGORY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_CATEGORY))
#define BOXES_IS_CATEGORY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_CATEGORY))
#define BOXES_CATEGORY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_CATEGORY, BoxesCategoryClass))

typedef struct _BoxesCategory BoxesCategory;
typedef struct _BoxesCategoryClass BoxesCategoryClass;

#define BOXES_TYPE_SIDEBAR_PAGE (boxes_sidebar_page_get_type ())
typedef struct _BoxesTopbarPrivate BoxesTopbarPrivate;

#define BOXES_TYPE_TOPBAR_PAGE (boxes_topbar_page_get_type ())
typedef struct _BoxesWizardWizardSummaryPrivate BoxesWizardWizardSummaryPrivate;

typedef enum  {
	BOXES_WIZARD_PAGE_INTRODUCTION,
	BOXES_WIZARD_PAGE_SOURCE,
	BOXES_WIZARD_PAGE_PREPARATION,
	BOXES_WIZARD_PAGE_SETUP,
	BOXES_WIZARD_PAGE_REVIEW,
	BOXES_WIZARD_PAGE_LAST
} BoxesWizardPage;

typedef enum  {
	BOXES_UI_STATE_NONE,
	BOXES_UI_STATE_COLLECTION,
	BOXES_UI_STATE_CREDS,
	BOXES_UI_STATE_DISPLAY,
	BOXES_UI_STATE_SETTINGS,
	BOXES_UI_STATE_WIZARD,
	BOXES_UI_STATE_PROPERTIES
} BoxesUIState;

struct _BoxesUI {
	GObject parent_instance;
	BoxesUIPrivate * priv;
	BoxesUIState previous_ui_state;
};

struct _BoxesUIClass {
	GObjectClass parent_class;
	void (*ui_state_changed) (BoxesUI* self);
	ClutterActor* (*get_actor) (BoxesUI* self);
};

struct _BoxesWizard {
	BoxesUI parent_instance;
	BoxesWizardPrivate * priv;
};

struct _BoxesWizardClass {
	BoxesUIClass parent_class;
};

struct _BoxesWizardPrivate {
	GtkClutterActor* gtk_actor;
	BoxesApp* app;
	GPtrArray* steps;
	GtkNotebook* notebook;
	GtkButton* back_button;
	GtkButton* next_button;
	BoxesWizardSource* wizard_source;
	BoxesWizardWizardSummary* summary;
	BoxesCollectionSource* source;
	GtkProgressBar* prep_progress;
	GtkVBox* setup_vbox;
	GtkLabel* review_label;
	GtkImage* installer_image;
	BoxesMediaManager* media_manager;
	BoxesVMCreator* vm_creator;
	BoxesInstallerMedia* install_media;
	BoxesWizardPage _page;
	gboolean skip_review_for_live;
};

typedef enum  {
	BOXES_SOURCE_PAGE_MAIN,
	BOXES_SOURCE_PAGE_URL,
	BOXES_SOURCE_PAGE_LAST
} BoxesSourcePage;

struct _BoxesWizardSource {
	GObject parent_instance;
	BoxesWizardSourcePrivate * priv;
	GtkEntry* url_entry;
};

struct _BoxesWizardSourceClass {
	GObjectClass parent_class;
};

struct _BoxesIConfigIface {
	GTypeInterface parent_iface;
	GKeyFile* (*get_keyfile) (BoxesIConfig* self);
	const gchar* (*get_filename) (BoxesIConfig* self);
	void (*set_filename) (BoxesIConfig* self, const gchar* value);
	gboolean (*get_has_file) (BoxesIConfig* self);
	void (*set_has_file) (BoxesIConfig* self, gboolean value);
};

struct _BoxesWizardCreateData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GSimpleAsyncResult* _async_result;
	BoxesWizard* self;
	gboolean result;
	BoxesCollectionSource* _tmp0_;
	BoxesInstallerMedia* _tmp1_;
	GtkButton* _tmp2_;
	BoxesVMCreator* _tmp3_;
	BoxesInstallerMedia* _tmp4_;
	GError* cancel_error;
	GError* _error_;
	GError* _tmp5_;
	const gchar* _tmp6_;
	BoxesWizardSource* _tmp7_;
	BoxesCollectionSource* _tmp8_;
	BoxesApp* _tmp9_;
	BoxesCollectionSource* _tmp10_;
	GError * _inner_error_;
};

typedef enum  {
	BOXES_ERROR_INVALID,
	BOXES_ERROR_COMMAND_FAILED
} BoxesError;
#define BOXES_ERROR boxes_error_quark ()
struct _BoxesInstallerMedia {
	GObject parent_instance;
	BoxesInstallerMediaPrivate * priv;
	OsinfoOs* os;
	OsinfoResources* resources;
	OsinfoMedia* os_media;
	gchar* label;
	gchar* device_file;
	gchar* mount_point;
	gboolean from_image;
};

struct _BoxesInstallerMediaClass {
	GObjectClass parent_class;
};

struct _BoxesApp {
	BoxesUI parent_instance;
	BoxesAppPrivate * priv;
	GtkApplicationWindow* window;
	GtkNotebook* notebook;
	GtkClutterEmbed* embed;
	ClutterStage* stage;
	ClutterState* state;
	ClutterBox* box;
	BoxesCollectionItem* current_item;
	BoxesTopbar* topbar;
	BoxesNotificationbar* notificationbar;
	BoxesSidebar* sidebar;
	BoxesSelectionbar* selectionbar;
	guint duration;
	GSettings* settings;
	BoxesWizard* wizard;
	BoxesProperties* properties;
	BoxesDisplayPage* display_page;
	BoxesCollection* collection;
	GSimpleAction* action_properties;
	GSimpleAction* action_fullscreen;
};

struct _BoxesAppClass {
	BoxesUIClass parent_class;
};

typedef enum  {
	UNATTENDED_INSTALLER_ERROR_SETUP_INCOMPLETE
} UnattendedInstallerError;
#define UNATTENDED_INSTALLER_ERROR unattended_installer_error_quark ()
struct _BoxesSidebar {
	BoxesUI parent_instance;
	BoxesSidebarPrivate * priv;
	GtkNotebook* notebook;
	GtkTreeView* default_tree_view;
	GtkTreeView* user_tree_view;
	BoxesCategory* category;
};

struct _BoxesSidebarClass {
	BoxesUIClass parent_class;
};

typedef enum  {
	BOXES_SIDEBAR_PAGE_COLLECTION,
	BOXES_SIDEBAR_PAGE_WIZARD,
	BOXES_SIDEBAR_PAGE_PROPERTIES
} BoxesSidebarPage;

struct _BoxesTopbar {
	BoxesUI parent_instance;
	BoxesTopbarPrivate * priv;
	GtkLabel* label;
	GtkNotebook* notebook;
};

struct _BoxesTopbarClass {
	BoxesUIClass parent_class;
};

typedef enum  {
	BOXES_TOPBAR_PAGE_COLLECTION,
	BOXES_TOPBAR_PAGE_SELECTION,
	BOXES_TOPBAR_PAGE_WIZARD,
	BOXES_TOPBAR_PAGE_PROPERTIES
} BoxesTopbarPage;

struct _BoxesWizardWizardSummary {
	GObject parent_instance;
	BoxesWizardWizardSummaryPrivate * priv;
};

struct _BoxesWizardWizardSummaryClass {
	GObjectClass parent_class;
};

struct _BoxesWizardWizardSummaryPrivate {
	GtkTable* table;
	guint current_row;
};


static gpointer boxes_wizard_parent_class = NULL;
static gpointer boxes_wizard_wizard_summary_parent_class = NULL;

GType boxes_wizard_page_get_type (void) G_GNUC_CONST;
GType boxes_ui_get_type (void) G_GNUC_CONST;
GType boxes_ui_state_get_type (void) G_GNUC_CONST;
GType boxes_wizard_get_type (void) G_GNUC_CONST;
GType boxes_app_get_type (void) G_GNUC_CONST;
GType boxes_wizard_source_get_type (void) G_GNUC_CONST;
static GType boxes_wizard_wizard_summary_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
GType boxes_collection_source_get_type (void) G_GNUC_CONST;
GType boxes_media_manager_get_type (void) G_GNUC_CONST;
gpointer boxes_vm_creator_ref (gpointer instance);
void boxes_vm_creator_unref (gpointer instance);
GParamSpec* boxes_param_spec_vm_creator (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void boxes_value_set_vm_creator (GValue* value, gpointer v_object);
void boxes_value_take_vm_creator (GValue* value, gpointer v_object);
gpointer boxes_value_get_vm_creator (const GValue* value);
GType boxes_vm_creator_get_type (void) G_GNUC_CONST;
GType boxes_installer_media_get_type (void) G_GNUC_CONST;
#define BOXES_WIZARD_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), BOXES_TYPE_WIZARD, BoxesWizardPrivate))
enum  {
	BOXES_WIZARD_DUMMY_PROPERTY,
	BOXES_WIZARD_ACTOR
};
BoxesWizard* boxes_wizard_new (BoxesApp* app);
BoxesWizard* boxes_wizard_construct (GType object_type, BoxesApp* app);
BoxesUI* boxes_ui_construct (GType object_type);
BoxesVMCreator* boxes_vm_creator_new (BoxesApp* app);
BoxesVMCreator* boxes_vm_creator_construct (GType object_type, BoxesApp* app);
BoxesWizardSource* boxes_wizard_source_new (BoxesApp* app, BoxesMediaManager* media_manager);
BoxesWizardSource* boxes_wizard_source_construct (GType object_type, BoxesApp* app, BoxesMediaManager* media_manager);
static void __lambda86_ (BoxesWizard* self);
GType boxes_source_page_get_type (void) G_GNUC_CONST;
BoxesSourcePage boxes_wizard_source_get_page (BoxesWizardSource* self);
static void ___lambda86__g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self);
static void __lambda87_ (BoxesWizard* self);
const gchar* boxes_wizard_source_get_uri (BoxesWizardSource* self);
static void boxes_wizard_prepare_for_location (BoxesWizard* self, const gchar* location, gboolean probing, GError** error);
gchar* boxes_collection_source_get_source_type (BoxesCollectionSource* self);
void boxes_wizard_source_update_url_page (BoxesWizardSource* self, const gchar* title, const gchar* text, const gchar* icon_name);
static void ___lambda87__gtk_editable_changed (GtkEditable* _sender, gpointer self);
static void __lambda92_ (BoxesWizard* self);
static void boxes_wizard_set_page (BoxesWizard* self, BoxesWizardPage value);
static void ___lambda92__gtk_entry_activate (GtkEntry* _sender, gpointer self);
static void boxes_wizard_setup_ui (BoxesWizard* self);
static void boxes_wizard_create_data_free (gpointer _data);
static void boxes_wizard_create (BoxesWizard* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
static gboolean boxes_wizard_create_finish (BoxesWizard* self, GAsyncResult* _res_);
static gboolean boxes_wizard_create_co (BoxesWizardCreateData* _data_);
void boxes_vm_creator_create_and_launch_vm (BoxesVMCreator* self, BoxesInstallerMedia* install_media, GCancellable* cancellable, GAsyncReadyCallback _callback_, gpointer _user_data_);
void boxes_vm_creator_create_and_launch_vm_finish (BoxesVMCreator* self, GAsyncResult* _res_, GError** error);
static void boxes_wizard_create_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
void boxes_wizard_source_set_uri (BoxesWizardSource* self, const gchar* value);
GType boxes_iconfig_get_type (void) G_GNUC_CONST;
void boxes_iconfig_save (BoxesIConfig* self);
void boxes_app_add_collection_source (BoxesApp* self, BoxesCollectionSource* source, GAsyncReadyCallback _callback_, gpointer _user_data_);
void boxes_app_add_collection_source_finish (BoxesApp* self, GAsyncResult* _res_);
GQuark boxes_error_quark (void);
static void boxes_wizard_prepare_for_installer (BoxesWizard* self, const gchar* path, GError** error);
static void boxes_wizard_prepare_for_uri (BoxesWizard* self, const gchar* uri_as_text, GError** error);
BoxesCollectionSource* boxes_collection_source_new (const gchar* name, const gchar* source_type, const gchar* uri);
BoxesCollectionSource* boxes_collection_source_construct (GType object_type, const gchar* name, const gchar* source_type, const gchar* uri);
void boxes_collection_source_set_source_type (BoxesCollectionSource* self, const gchar* value);
void boxes_media_manager_create_installer_media_for_path (BoxesMediaManager* self, const gchar* path, GCancellable* cancellable, GAsyncReadyCallback _callback_, gpointer _user_data_);
BoxesInstallerMedia* boxes_media_manager_create_installer_media_for_path_finish (BoxesMediaManager* self, GAsyncResult* _res_, GError** error);
static void boxes_wizard_on_installer_media_instantiated (BoxesWizard* self, GObject* source_object, GAsyncResult* _result_);
static void _boxes_wizard_on_installer_media_instantiated_gasync_ready_callback (GObject* source_object, GAsyncResult* res, gpointer self);
void boxes_fetch_os_logo (GtkImage* image, OsinfoOs* os, gint size);
GType boxes_collection_item_get_type (void) G_GNUC_CONST;
GType boxes_topbar_get_type (void) G_GNUC_CONST;
GType boxes_notificationbar_get_type (void) G_GNUC_CONST;
GType boxes_sidebar_get_type (void) G_GNUC_CONST;
GType boxes_selectionbar_get_type (void) G_GNUC_CONST;
GType boxes_properties_get_type (void) G_GNUC_CONST;
GType boxes_display_page_get_type (void) G_GNUC_CONST;
GType boxes_collection_get_type (void) G_GNUC_CONST;
void boxes_notificationbar_display_error (BoxesNotificationbar* self, const gchar* message);
static gboolean boxes_wizard_prepare (BoxesWizard* self);
BoxesInstallerMedia* boxes_wizard_source_get_install_media (BoxesWizardSource* self);
static gboolean boxes_wizard_setup (BoxesWizard* self);
GType boxes_unattended_installer_get_type (void) G_GNUC_CONST;
void boxes_unattended_installer_populate_setup_vbox (BoxesUnattendedInstaller* self, GtkVBox* setup_vbox);
static gboolean boxes_wizard_review (BoxesWizard* self);
GQuark unattended_installer_error_quark (void);
void boxes_unattended_installer_check_needed_info (BoxesUnattendedInstaller* self, GError** error);
static void boxes_wizard_wizard_summary_clear (BoxesWizardWizardSummary* self);
gchar* boxes_collection_source_get_uri (BoxesCollectionSource* self);
static void boxes_wizard_wizard_summary_add_property (BoxesWizardWizardSummary* self, const gchar* name, const gchar* value);
BoxesQuery* boxes_query_new (const gchar* query);
BoxesQuery* boxes_query_construct (GType object_type, const gchar* query);
GType boxes_query_get_type (void) G_GNUC_CONST;
gchar* boxes_query_get (BoxesQuery* self, const gchar* key);
gboolean boxes_unattended_installer_get_express_install (BoxesUnattendedInstaller* self);
const gchar* boxes_unattended_installer_get_username (BoxesUnattendedInstaller* self);
gchar* boxes_unattended_installer_get_hidden_password (BoxesUnattendedInstaller* self);
static void boxes_wizard_add_step (BoxesWizard* self, GtkWidget* widget, const gchar* title, BoxesWizardPage page);
GType boxes_category_get_type (void) G_GNUC_CONST;
GType boxes_sidebar_page_get_type (void) G_GNUC_CONST;
static gboolean boxes_wizard_skip_page (BoxesWizard* self, BoxesWizardPage page);
static BoxesWizardPage boxes_wizard_get_page (BoxesWizard* self);
gboolean boxes_installer_media_get_live (BoxesInstallerMedia* self);
gchar* boxes_get_pixmap (const gchar* file_name);
GtkWidget* boxes_wizard_source_get_widget (BoxesWizardSource* self);
static BoxesWizardWizardSummary* boxes_wizard_wizard_summary_new (void);
static BoxesWizardWizardSummary* boxes_wizard_wizard_summary_construct (GType object_type);
static GtkWidget* boxes_wizard_wizard_summary_get_widget (BoxesWizardWizardSummary* self);
GType boxes_topbar_page_get_type (void) G_GNUC_CONST;
static void __lambda96_ (BoxesWizard* self);
void boxes_wizard_source_set_page (BoxesWizardSource* self, BoxesSourcePage value);
void boxes_ui_set_ui_state (BoxesUI* self, BoxesUIState value);
static void ___lambda96__gtk_button_clicked (GtkButton* _sender, gpointer self);
static void __lambda97_ (BoxesWizard* self);
static void ___lambda97__gtk_button_clicked (GtkButton* _sender, gpointer self);
static void __lambda98_ (BoxesWizard* self);
static void ___lambda98__gtk_button_clicked (GtkButton* _sender, gpointer self);
void boxes_wizard_open_with_uri (BoxesWizard* self, const gchar* uri, gboolean skip_review_for_live);
static void boxes_wizard_real_ui_state_changed (BoxesUI* base);
BoxesUIState boxes_ui_get_ui_state (BoxesUI* self);
static void _boxes_wizard_page_____lambda91_ (BoxesWizard* self, GObject* source, GAsyncResult* _result_);
static void __boxes_wizard_page_____lambda91__gasync_ready_callback (GObject* source_object, GAsyncResult* res, gpointer self);
void boxes_get_color (const gchar* desc, GdkColor* result);
static GObject * boxes_wizard_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties);
static void _g_object_unref0_ (gpointer var);
BoxesMediaManager* boxes_media_manager_new (void);
BoxesMediaManager* boxes_media_manager_construct (GType object_type);
#define BOXES_WIZARD_WIZARD_SUMMARY_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), BOXES_WIZARD_TYPE_WIZARD_SUMMARY, BoxesWizardWizardSummaryPrivate))
enum  {
	BOXES_WIZARD_WIZARD_SUMMARY_DUMMY_PROPERTY,
	BOXES_WIZARD_WIZARD_SUMMARY_WIDGET
};
static void boxes_wizard_wizard_summary_finalize (GObject* obj);
static void _vala_boxes_wizard_wizard_summary_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
static void boxes_wizard_finalize (GObject* obj);
ClutterActor* boxes_ui_get_actor (BoxesUI* self);
static void _vala_boxes_wizard_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
static void _vala_boxes_wizard_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);


GType boxes_wizard_page_get_type (void) {
	static volatile gsize boxes_wizard_page_type_id__volatile = 0;
	if (g_once_init_enter (&boxes_wizard_page_type_id__volatile)) {
		static const GEnumValue values[] = {{BOXES_WIZARD_PAGE_INTRODUCTION, "BOXES_WIZARD_PAGE_INTRODUCTION", "introduction"}, {BOXES_WIZARD_PAGE_SOURCE, "BOXES_WIZARD_PAGE_SOURCE", "source"}, {BOXES_WIZARD_PAGE_PREPARATION, "BOXES_WIZARD_PAGE_PREPARATION", "preparation"}, {BOXES_WIZARD_PAGE_SETUP, "BOXES_WIZARD_PAGE_SETUP", "setup"}, {BOXES_WIZARD_PAGE_REVIEW, "BOXES_WIZARD_PAGE_REVIEW", "review"}, {BOXES_WIZARD_PAGE_LAST, "BOXES_WIZARD_PAGE_LAST", "last"}, {0, NULL, NULL}};
		GType boxes_wizard_page_type_id;
		boxes_wizard_page_type_id = g_enum_register_static ("BoxesWizardPage", values);
		g_once_init_leave (&boxes_wizard_page_type_id__volatile, boxes_wizard_page_type_id);
	}
	return boxes_wizard_page_type_id__volatile;
}


static gpointer _g_object_ref0 (gpointer self) {
	return self ? g_object_ref (self) : NULL;
}


static void __lambda86_ (BoxesWizard* self) {
	BoxesWizardSource* _tmp0_;
	BoxesSourcePage _tmp1_;
	BoxesSourcePage _tmp2_;
	_tmp0_ = self->priv->wizard_source;
	_tmp1_ = boxes_wizard_source_get_page (_tmp0_);
	_tmp2_ = _tmp1_;
	if (_tmp2_ == BOXES_SOURCE_PAGE_MAIN) {
		GtkButton* _tmp3_;
		_tmp3_ = self->priv->next_button;
		gtk_widget_set_sensitive ((GtkWidget*) _tmp3_, FALSE);
	}
}


static void ___lambda86__g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self) {
	__lambda86_ (self);
}


static void __lambda87_ (BoxesWizard* self) {
	GtkButton* _tmp0_;
	BoxesWizardSource* _tmp1_;
	const gchar* _tmp2_;
	const gchar* _tmp3_;
	gint _tmp4_;
	gint _tmp5_;
	const gchar* _tmp6_ = NULL;
	gchar* _tmp7_;
	gchar* text;
	gchar* _tmp8_;
	gchar* icon;
	BoxesWizardSource* _tmp24_;
	const gchar* _tmp25_ = NULL;
	const gchar* _tmp26_;
	const gchar* _tmp27_;
	GError * _inner_error_ = NULL;
	_tmp0_ = self->priv->next_button;
	_tmp1_ = self->priv->wizard_source;
	_tmp2_ = boxes_wizard_source_get_uri (_tmp1_);
	_tmp3_ = _tmp2_;
	_tmp4_ = strlen (_tmp3_);
	_tmp5_ = _tmp4_;
	gtk_widget_set_sensitive ((GtkWidget*) _tmp0_, _tmp5_ != 0);
	_tmp6_ = _ ("Please enter desktop or collection URI");
	_tmp7_ = g_strdup (_tmp6_);
	text = _tmp7_;
	_tmp8_ = g_strdup ("preferences-desktop-remote-desktop");
	icon = _tmp8_;
	{
		BoxesWizardSource* _tmp9_;
		const gchar* _tmp10_;
		const gchar* _tmp11_;
		gboolean _tmp12_ = FALSE;
		BoxesCollectionSource* _tmp13_;
		gboolean _tmp18_;
		_tmp9_ = self->priv->wizard_source;
		_tmp10_ = boxes_wizard_source_get_uri (_tmp9_);
		_tmp11_ = _tmp10_;
		boxes_wizard_prepare_for_location (self, _tmp11_, TRUE, &_inner_error_);
		if (_inner_error_ != NULL) {
			goto __catch71_g_error;
		}
		_tmp13_ = self->priv->source;
		if (_tmp13_ != NULL) {
			BoxesCollectionSource* _tmp14_;
			gchar* _tmp15_;
			gchar* _tmp16_;
			gchar* _tmp17_;
			_tmp14_ = self->priv->source;
			_tmp15_ = boxes_collection_source_get_source_type (_tmp14_);
			_tmp16_ = _tmp15_;
			_tmp17_ = _tmp16_;
			_tmp12_ = g_strcmp0 (_tmp17_, "libvirt") == 0;
			_g_free0 (_tmp17_);
		} else {
			_tmp12_ = FALSE;
		}
		_tmp18_ = _tmp12_;
		if (_tmp18_) {
			const gchar* _tmp19_ = NULL;
			gchar* _tmp20_;
			gchar* _tmp21_;
			_tmp19_ = _ ("Will add boxes for all systems available from this account.");
			_tmp20_ = g_strdup (_tmp19_);
			_g_free0 (text);
			text = _tmp20_;
			_tmp21_ = g_strdup ("network-workgroup");
			_g_free0 (icon);
			icon = _tmp21_;
		} else {
			const gchar* _tmp22_ = NULL;
			gchar* _tmp23_;
			_tmp22_ = _ ("Will add a single box.");
			_tmp23_ = g_strdup (_tmp22_);
			_g_free0 (text);
			text = _tmp23_;
		}
	}
	goto __finally71;
	__catch71_g_error:
	{
		GError* _error_ = NULL;
		_error_ = _inner_error_;
		_inner_error_ = NULL;
		_g_error_free0 (_error_);
	}
	__finally71:
	if (_inner_error_ != NULL) {
		_g_free0 (icon);
		_g_free0 (text);
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
		g_clear_error (&_inner_error_);
		return;
	}
	_tmp24_ = self->priv->wizard_source;
	_tmp25_ = _ ("Desktop Access");
	_tmp26_ = text;
	_tmp27_ = icon;
	boxes_wizard_source_update_url_page (_tmp24_, _tmp25_, _tmp26_, _tmp27_);
	_g_free0 (icon);
	_g_free0 (text);
}


static void ___lambda87__gtk_editable_changed (GtkEditable* _sender, gpointer self) {
	__lambda87_ (self);
}


static void __lambda92_ (BoxesWizard* self) {
	boxes_wizard_set_page (self, BOXES_WIZARD_PAGE_PREPARATION);
}


static void ___lambda92__gtk_entry_activate (GtkEntry* _sender, gpointer self) {
	__lambda92_ (self);
}


BoxesWizard* boxes_wizard_construct (GType object_type, BoxesApp* app) {
	BoxesWizard * self = NULL;
	BoxesApp* _tmp0_;
	BoxesApp* _tmp1_;
	BoxesApp* _tmp2_;
	BoxesVMCreator* _tmp3_;
	BoxesApp* _tmp4_;
	BoxesMediaManager* _tmp5_;
	BoxesWizardSource* _tmp6_;
	BoxesWizardSource* _tmp7_;
	BoxesWizardSource* _tmp8_;
	GtkEntry* _tmp9_;
	BoxesWizardSource* _tmp10_;
	GtkEntry* _tmp11_;
	g_return_val_if_fail (app != NULL, NULL);
	self = (BoxesWizard*) boxes_ui_construct (object_type);
	_tmp0_ = app;
	_tmp1_ = _g_object_ref0 (_tmp0_);
	_g_object_unref0 (self->priv->app);
	self->priv->app = _tmp1_;
	_tmp2_ = app;
	_tmp3_ = boxes_vm_creator_new (_tmp2_);
	_boxes_vm_creator_unref0 (self->priv->vm_creator);
	self->priv->vm_creator = _tmp3_;
	_tmp4_ = app;
	_tmp5_ = self->priv->media_manager;
	_tmp6_ = boxes_wizard_source_new (_tmp4_, _tmp5_);
	_g_object_unref0 (self->priv->wizard_source);
	self->priv->wizard_source = _tmp6_;
	_tmp7_ = self->priv->wizard_source;
	g_signal_connect_object ((GObject*) _tmp7_, "notify::page", (GCallback) ___lambda86__g_object_notify, self, 0);
	_tmp8_ = self->priv->wizard_source;
	_tmp9_ = _tmp8_->url_entry;
	g_signal_connect_object ((GtkEditable*) _tmp9_, "changed", (GCallback) ___lambda87__gtk_editable_changed, self, 0);
	_tmp10_ = self->priv->wizard_source;
	_tmp11_ = _tmp10_->url_entry;
	g_signal_connect_object (_tmp11_, "activate", (GCallback) ___lambda92__gtk_entry_activate, self, 0);
	boxes_wizard_setup_ui (self);
	return self;
}


BoxesWizard* boxes_wizard_new (BoxesApp* app) {
	return boxes_wizard_construct (BOXES_TYPE_WIZARD, app);
}


static void boxes_wizard_create_data_free (gpointer _data) {
	BoxesWizardCreateData* _data_;
	_data_ = _data;
	_g_object_unref0 (_data_->self);
	g_slice_free (BoxesWizardCreateData, _data_);
}


static void boxes_wizard_create (BoxesWizard* self, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	BoxesWizardCreateData* _data_;
	BoxesWizard* _tmp0_;
	_data_ = g_slice_new0 (BoxesWizardCreateData);
	_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, boxes_wizard_create);
	g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, boxes_wizard_create_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	boxes_wizard_create_co (_data_);
}


static gboolean boxes_wizard_create_finish (BoxesWizard* self, GAsyncResult* _res_) {
	gboolean result;
	BoxesWizardCreateData* _data_;
	_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
	result = _data_->result;
	return result;
}


static void boxes_wizard_create_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	BoxesWizardCreateData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	boxes_wizard_create_co (_data_);
}


static gboolean boxes_wizard_create_co (BoxesWizardCreateData* _data_) {
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		case 1:
		goto _state_1;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	_data_->_tmp0_ = _data_->self->priv->source;
	if (_data_->_tmp0_ == NULL) {
		_data_->_tmp1_ = _data_->self->priv->install_media;
		if (_data_->_tmp1_ == NULL) {
			_data_->result = FALSE;
			if (_data_->_state_ == 0) {
				g_simple_async_result_complete_in_idle (_data_->_async_result);
			} else {
				g_simple_async_result_complete (_data_->_async_result);
			}
			g_object_unref (_data_->_async_result);
			return FALSE;
		}
		_data_->_tmp2_ = _data_->self->priv->next_button;
		gtk_widget_set_sensitive ((GtkWidget*) _data_->_tmp2_, FALSE);
		{
			_data_->_tmp3_ = _data_->self->priv->vm_creator;
			_data_->_tmp4_ = _data_->self->priv->install_media;
			_data_->_state_ = 1;
			boxes_vm_creator_create_and_launch_vm (_data_->_tmp3_, _data_->_tmp4_, NULL, boxes_wizard_create_ready, _data_);
			return FALSE;
			_state_1:
			boxes_vm_creator_create_and_launch_vm_finish (_data_->_tmp3_, _data_->_res_, &_data_->_inner_error_);
			if (_data_->_inner_error_ != NULL) {
				if (g_error_matches (_data_->_inner_error_, G_IO_ERROR, G_IO_ERROR_CANCELLED)) {
					goto __catch72_g_io_error_cancelled;
				}
				goto __catch72_g_error;
			}
		}
		goto __finally72;
		__catch72_g_io_error_cancelled:
		{
			_data_->cancel_error = _data_->_inner_error_;
			_data_->_inner_error_ = NULL;
			_g_error_free0 (_data_->cancel_error);
		}
		goto __finally72;
		__catch72_g_error:
		{
			_data_->_error_ = _data_->_inner_error_;
			_data_->_inner_error_ = NULL;
			_data_->_tmp5_ = _data_->_error_;
			_data_->_tmp6_ = _data_->_tmp5_->message;
			g_warning ("wizard.vala:153: %s", _data_->_tmp6_);
			_data_->result = FALSE;
			_g_error_free0 (_data_->_error_);
			if (_data_->_state_ == 0) {
				g_simple_async_result_complete_in_idle (_data_->_async_result);
			} else {
				g_simple_async_result_complete (_data_->_async_result);
			}
			g_object_unref (_data_->_async_result);
			return FALSE;
		}
		__finally72:
		if (_data_->_inner_error_ != NULL) {
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
			g_clear_error (&_data_->_inner_error_);
			return FALSE;
		}
		_g_object_unref0 (_data_->self->priv->install_media);
		_data_->self->priv->install_media = NULL;
		_data_->_tmp7_ = _data_->self->priv->wizard_source;
		boxes_wizard_source_set_uri (_data_->_tmp7_, "");
		_data_->result = TRUE;
		if (_data_->_state_ == 0) {
			g_simple_async_result_complete_in_idle (_data_->_async_result);
		} else {
			g_simple_async_result_complete (_data_->_async_result);
		}
		g_object_unref (_data_->_async_result);
		return FALSE;
	}
	_data_->_tmp8_ = _data_->self->priv->source;
	boxes_iconfig_save ((BoxesIConfig*) _data_->_tmp8_);
	_data_->_tmp9_ = _data_->self->priv->app;
	_data_->_tmp10_ = _data_->self->priv->source;
	boxes_app_add_collection_source (_data_->_tmp9_, _data_->_tmp10_, NULL, NULL);
	_data_->result = TRUE;
	if (_data_->_state_ == 0) {
		g_simple_async_result_complete_in_idle (_data_->_async_result);
	} else {
		g_simple_async_result_complete (_data_->_async_result);
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
	if (_data_->_state_ == 0) {
		g_simple_async_result_complete_in_idle (_data_->_async_result);
	} else {
		g_simple_async_result_complete (_data_->_async_result);
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}


static void boxes_wizard_prepare_for_location (BoxesWizard* self, const gchar* location, gboolean probing, GError** error) {
	const gchar* _tmp0_;
	const gchar* _tmp2_;
	GFile* _tmp3_ = NULL;
	GFile* file;
	GFile* _tmp4_;
	gboolean _tmp5_ = FALSE;
	GError * _inner_error_ = NULL;
	g_return_if_fail (self != NULL);
	g_return_if_fail (location != NULL);
	_g_object_unref0 (self->priv->source);
	self->priv->source = NULL;
	_tmp0_ = location;
	if (g_strcmp0 (_tmp0_, "") == 0) {
		GError* _tmp1_;
		_tmp1_ = g_error_new_literal (BOXES_ERROR, BOXES_ERROR_INVALID, "empty location");
		_inner_error_ = _tmp1_;
		g_propagate_error (error, _inner_error_);
		return;
	}
	_tmp2_ = location;
	_tmp3_ = g_file_new_for_commandline_arg (_tmp2_);
	file = _tmp3_;
	_tmp4_ = file;
	_tmp5_ = g_file_is_native (_tmp4_);
	if (_tmp5_) {
		gboolean _tmp6_;
		_tmp6_ = probing;
		if (!_tmp6_) {
			GFile* _tmp7_;
			gchar* _tmp8_ = NULL;
			gchar* _tmp9_;
			_tmp7_ = file;
			_tmp8_ = g_file_get_path (_tmp7_);
			_tmp9_ = _tmp8_;
			boxes_wizard_prepare_for_installer (self, _tmp9_, &_inner_error_);
			_g_free0 (_tmp9_);
			if (_inner_error_ != NULL) {
				g_propagate_error (error, _inner_error_);
				_g_object_unref0 (file);
				return;
			}
		}
	} else {
		gboolean uncertain = FALSE;
		GFile* _tmp10_;
		gchar* _tmp11_ = NULL;
		gchar* uri;
		const gchar* _tmp12_;
		gboolean _tmp13_ = FALSE;
		gchar* _tmp14_ = NULL;
		gchar* mimetype;
		gboolean _tmp15_;
		_tmp10_ = file;
		_tmp11_ = g_file_get_uri (_tmp10_);
		uri = _tmp11_;
		_tmp12_ = uri;
		_tmp14_ = g_content_type_guess (_tmp12_, NULL, 0, &_tmp13_);
		uncertain = _tmp13_;
		mimetype = _tmp14_;
		_tmp15_ = uncertain;
		if (_tmp15_) {
			const gchar* _tmp16_;
			_tmp16_ = uri;
			boxes_wizard_prepare_for_uri (self, _tmp16_, &_inner_error_);
			if (_inner_error_ != NULL) {
				g_propagate_error (error, _inner_error_);
				_g_free0 (mimetype);
				_g_free0 (uri);
				_g_object_unref0 (file);
				return;
			}
		} else {
			const gchar* _tmp17_;
			gchar* _tmp18_ = NULL;
			gchar* _tmp19_;
			_tmp17_ = mimetype;
			_tmp18_ = g_strdup_printf ("FIXME: %s", _tmp17_);
			_tmp19_ = _tmp18_;
			g_debug ("wizard.vala:189: %s", _tmp19_);
			_g_free0 (_tmp19_);
		}
		_g_free0 (mimetype);
		_g_free0 (uri);
	}
	_g_object_unref0 (file);
}


static void boxes_wizard_prepare_for_uri (BoxesWizard* self, const gchar* uri_as_text, GError** error) {
	const gchar* _tmp0_;
	xmlURI* _tmp1_ = NULL;
	xmlURI* uri;
	const gchar* _tmp4_;
	gchar* _tmp5_;
	gchar* _tmp6_;
	const gchar* _tmp7_;
	const gchar* _tmp10_;
	const gchar* _tmp11_;
	const gchar* _tmp12_;
	BoxesCollectionSource* _tmp13_;
	gboolean _tmp14_ = FALSE;
	const gchar* _tmp15_;
	gboolean _tmp17_;
	GError * _inner_error_ = NULL;
	g_return_if_fail (self != NULL);
	g_return_if_fail (uri_as_text != NULL);
	_tmp0_ = uri_as_text;
	_tmp1_ = xmlParseURI (_tmp0_);
	uri = _tmp1_;
	if (uri == NULL) {
		const gchar* _tmp2_ = NULL;
		GError* _tmp3_;
		_tmp2_ = _ ("Invalid URI");
		_tmp3_ = g_error_new_literal (BOXES_ERROR, BOXES_ERROR_INVALID, _tmp2_);
		_inner_error_ = _tmp3_;
		if (_inner_error_->domain == BOXES_ERROR) {
			g_propagate_error (error, _inner_error_);
			_xmlFreeURI0 (uri);
			return;
		} else {
			_xmlFreeURI0 (uri);
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
			g_clear_error (&_inner_error_);
			return;
		}
	}
	_tmp4_ = uri->server;
	_tmp5_ = g_strdup (_tmp4_);
	_tmp6_ = _tmp5_;
	_tmp7_ = _tmp6_;
	if (_tmp7_ == NULL) {
		const gchar* _tmp8_;
		gchar* _tmp9_;
		_tmp8_ = uri_as_text;
		_tmp9_ = g_strdup (_tmp8_);
		_g_free0 (_tmp6_);
		_tmp6_ = _tmp9_;
	}
	_tmp10_ = _tmp6_;
	_tmp11_ = uri->scheme;
	_tmp12_ = uri_as_text;
	_tmp13_ = boxes_collection_source_new (_tmp10_, _tmp11_, _tmp12_);
	_g_object_unref0 (self->priv->source);
	self->priv->source = _tmp13_;
	_tmp15_ = uri->scheme;
	if (g_strcmp0 (_tmp15_, "spice") == 0) {
		_tmp14_ = TRUE;
	} else {
		const gchar* _tmp16_;
		_tmp16_ = uri->scheme;
		_tmp14_ = g_strcmp0 (_tmp16_, "vnc") == 0;
	}
	_tmp17_ = _tmp14_;
	if (_tmp17_) {
	} else {
		const gchar* _tmp18_;
		gboolean _tmp19_ = FALSE;
		_tmp18_ = uri->scheme;
		_tmp19_ = g_str_has_prefix (_tmp18_, "qemu");
		if (_tmp19_) {
			BoxesCollectionSource* _tmp20_;
			_tmp20_ = self->priv->source;
			boxes_collection_source_set_source_type (_tmp20_, "libvirt");
		} else {
			const gchar* _tmp21_ = NULL;
			const gchar* _tmp22_;
			gchar* _tmp23_ = NULL;
			gchar* _tmp24_;
			GError* _tmp25_;
			GError* _tmp26_;
			_tmp21_ = _ ("Unsupported protocol '%s'");
			_tmp22_ = uri->scheme;
			_tmp23_ = g_strdup_printf (_tmp21_, _tmp22_);
			_tmp24_ = _tmp23_;
			_tmp25_ = g_error_new_literal (BOXES_ERROR, BOXES_ERROR_INVALID, _tmp24_);
			_tmp26_ = _tmp25_;
			_g_free0 (_tmp24_);
			_inner_error_ = _tmp26_;
			if (_inner_error_->domain == BOXES_ERROR) {
				g_propagate_error (error, _inner_error_);
				_g_free0 (_tmp6_);
				_xmlFreeURI0 (uri);
				return;
			} else {
				_g_free0 (_tmp6_);
				_xmlFreeURI0 (uri);
				g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
				g_clear_error (&_inner_error_);
				return;
			}
		}
	}
	_g_free0 (_tmp6_);
	_xmlFreeURI0 (uri);
}


static void _boxes_wizard_on_installer_media_instantiated_gasync_ready_callback (GObject* source_object, GAsyncResult* res, gpointer self) {
	boxes_wizard_on_installer_media_instantiated (self, source_object, res);
	g_object_unref (self);
}


static void boxes_wizard_prepare_for_installer (BoxesWizard* self, const gchar* path, GError** error) {
	GtkButton* _tmp0_;
	BoxesMediaManager* _tmp1_;
	const gchar* _tmp2_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (path != NULL);
	_tmp0_ = self->priv->next_button;
	gtk_widget_set_sensitive ((GtkWidget*) _tmp0_, FALSE);
	_tmp1_ = self->priv->media_manager;
	_tmp2_ = path;
	boxes_media_manager_create_installer_media_for_path (_tmp1_, _tmp2_, NULL, _boxes_wizard_on_installer_media_instantiated_gasync_ready_callback, g_object_ref (self));
}


static void boxes_wizard_on_installer_media_instantiated (BoxesWizard* self, GObject* source_object, GAsyncResult* _result_) {
	GtkButton* _tmp0_;
	GError * _inner_error_ = NULL;
	g_return_if_fail (self != NULL);
	g_return_if_fail (_result_ != NULL);
	_tmp0_ = self->priv->next_button;
	gtk_widget_set_sensitive ((GtkWidget*) _tmp0_, TRUE);
	{
		BoxesMediaManager* _tmp1_;
		GAsyncResult* _tmp2_;
		BoxesInstallerMedia* _tmp3_ = NULL;
		BoxesInstallerMedia* _tmp4_;
		GtkImage* _tmp5_;
		BoxesInstallerMedia* _tmp6_;
		OsinfoOs* _tmp7_;
		GtkProgressBar* _tmp8_;
		_tmp1_ = self->priv->media_manager;
		_tmp2_ = _result_;
		_tmp3_ = boxes_media_manager_create_installer_media_for_path_finish (_tmp1_, _tmp2_, &_inner_error_);
		_tmp4_ = _tmp3_;
		if (_inner_error_ != NULL) {
			if (g_error_matches (_inner_error_, G_IO_ERROR, G_IO_ERROR_CANCELLED)) {
				goto __catch73_g_io_error_cancelled;
			}
			goto __catch73_g_error;
		}
		_g_object_unref0 (self->priv->install_media);
		self->priv->install_media = _tmp4_;
		_tmp5_ = self->priv->installer_image;
		_tmp6_ = self->priv->install_media;
		_tmp7_ = _tmp6_->os;
		boxes_fetch_os_logo (_tmp5_, _tmp7_, 128);
		_tmp8_ = self->priv->prep_progress;
		gtk_progress_bar_set_fraction (_tmp8_, 1.0);
		boxes_wizard_set_page (self, BOXES_WIZARD_PAGE_SETUP);
	}
	goto __finally73;
	__catch73_g_io_error_cancelled:
	{
		GError* cancel_error = NULL;
		cancel_error = _inner_error_;
		_inner_error_ = NULL;
		_g_error_free0 (cancel_error);
	}
	goto __finally73;
	__catch73_g_error:
	{
		GError* _error_ = NULL;
		BoxesApp* _tmp9_;
		BoxesNotificationbar* _tmp10_;
		GError* _tmp11_;
		const gchar* _tmp12_;
		_error_ = _inner_error_;
		_inner_error_ = NULL;
		_tmp9_ = self->priv->app;
		_tmp10_ = _tmp9_->notificationbar;
		_tmp11_ = _error_;
		_tmp12_ = _tmp11_->message;
		boxes_notificationbar_display_error (_tmp10_, _tmp12_);
		boxes_wizard_set_page (self, BOXES_WIZARD_PAGE_SOURCE);
		_g_error_free0 (_error_);
	}
	__finally73:
	if (_inner_error_ != NULL) {
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
		g_clear_error (&_inner_error_);
		return;
	}
}


static gboolean boxes_wizard_prepare (BoxesWizard* self) {
	gboolean result = FALSE;
	GtkImage* _tmp0_;
	BoxesWizardSource* _tmp1_;
	BoxesInstallerMedia* _tmp2_;
	BoxesInstallerMedia* _tmp3_;
	GError * _inner_error_ = NULL;
	g_return_val_if_fail (self != NULL, FALSE);
	_tmp0_ = self->priv->installer_image;
	gtk_image_set_from_icon_name (_tmp0_, "media-optical", 0);
	_tmp1_ = self->priv->wizard_source;
	_tmp2_ = boxes_wizard_source_get_install_media (_tmp1_);
	_tmp3_ = _tmp2_;
	if (_tmp3_ != NULL) {
		BoxesWizardSource* _tmp4_;
		BoxesInstallerMedia* _tmp5_;
		BoxesInstallerMedia* _tmp6_;
		BoxesInstallerMedia* _tmp7_;
		GtkProgressBar* _tmp8_;
		_tmp4_ = self->priv->wizard_source;
		_tmp5_ = boxes_wizard_source_get_install_media (_tmp4_);
		_tmp6_ = _tmp5_;
		_tmp7_ = _g_object_ref0 (_tmp6_);
		_g_object_unref0 (self->priv->install_media);
		self->priv->install_media = _tmp7_;
		_tmp8_ = self->priv->prep_progress;
		gtk_progress_bar_set_fraction (_tmp8_, 1.0);
		boxes_wizard_set_page (self, BOXES_WIZARD_PAGE_SETUP);
		result = FALSE;
		return result;
	} else {
		{
			BoxesWizardSource* _tmp9_;
			const gchar* _tmp10_;
			const gchar* _tmp11_;
			_tmp9_ = self->priv->wizard_source;
			_tmp10_ = boxes_wizard_source_get_uri (_tmp9_);
			_tmp11_ = _tmp10_;
			boxes_wizard_prepare_for_location (self, _tmp11_, FALSE, &_inner_error_);
			if (_inner_error_ != NULL) {
				goto __catch74_g_error;
			}
		}
		goto __finally74;
		__catch74_g_error:
		{
			GError* _error_ = NULL;
			BoxesApp* _tmp12_;
			BoxesNotificationbar* _tmp13_;
			GError* _tmp14_;
			const gchar* _tmp15_;
			_error_ = _inner_error_;
			_inner_error_ = NULL;
			_tmp12_ = self->priv->app;
			_tmp13_ = _tmp12_->notificationbar;
			_tmp14_ = _error_;
			_tmp15_ = _tmp14_->message;
			boxes_notificationbar_display_error (_tmp13_, _tmp15_);
			result = FALSE;
			_g_error_free0 (_error_);
			return result;
		}
		__finally74:
		if (_inner_error_ != NULL) {
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
			g_clear_error (&_inner_error_);
			return FALSE;
		}
		result = TRUE;
		return result;
	}
}


static gboolean boxes_wizard_setup (BoxesWizard* self) {
	gboolean result = FALSE;
	BoxesCollectionSource* _tmp0_;
	BoxesInstallerMedia* _tmp1_;
	GtkVBox* _tmp2_;
	GList* _tmp3_ = NULL;
	BoxesInstallerMedia* _tmp6_;
	BoxesUnattendedInstaller* _tmp7_;
	BoxesUnattendedInstaller* installer;
	BoxesUnattendedInstaller* _tmp8_;
	GtkVBox* _tmp9_;
	GtkVBox* _tmp10_;
	g_return_val_if_fail (self != NULL, FALSE);
	_tmp0_ = self->priv->source;
	if (_tmp0_ != NULL) {
		result = TRUE;
		return result;
	}
	_tmp1_ = self->priv->install_media;
	g_return_if_fail (_tmp1_ != NULL);
	_tmp2_ = self->priv->setup_vbox;
	_tmp3_ = gtk_container_get_children ((GtkContainer*) _tmp2_);
	{
		GList* child_collection = NULL;
		GList* child_it = NULL;
		child_collection = _tmp3_;
		for (child_it = child_collection; child_it != NULL; child_it = child_it->next) {
			GtkWidget* child = NULL;
			child = (GtkWidget*) child_it->data;
			{
				GtkVBox* _tmp4_;
				GtkWidget* _tmp5_;
				_tmp4_ = self->priv->setup_vbox;
				_tmp5_ = child;
				gtk_container_remove ((GtkContainer*) _tmp4_, _tmp5_);
			}
		}
		_g_list_free0 (child_collection);
	}
	_tmp6_ = self->priv->install_media;
	_tmp7_ = _g_object_ref0 (BOXES_IS_UNATTENDED_INSTALLER (_tmp6_) ? ((BoxesUnattendedInstaller*) _tmp6_) : NULL);
	installer = _tmp7_;
	_tmp8_ = installer;
	_tmp9_ = self->priv->setup_vbox;
	boxes_unattended_installer_populate_setup_vbox (_tmp8_, _tmp9_);
	_tmp10_ = self->priv->setup_vbox;
	gtk_widget_show_all ((GtkWidget*) _tmp10_);
	result = TRUE;
	_g_object_unref0 (installer);
	return result;
}


static gboolean boxes_wizard_review (BoxesWizard* self) {
	gboolean result = FALSE;
	gboolean _tmp0_ = FALSE;
	BoxesInstallerMedia* _tmp1_;
	gboolean _tmp3_;
	BoxesWizardWizardSummary* _tmp9_;
	GtkLabel* _tmp10_;
	const gchar* _tmp11_ = NULL;
	BoxesCollectionSource* _tmp12_;
	GError * _inner_error_ = NULL;
	g_return_val_if_fail (self != NULL, FALSE);
	_tmp1_ = self->priv->install_media;
	if (_tmp1_ != NULL) {
		BoxesInstallerMedia* _tmp2_;
		_tmp2_ = self->priv->install_media;
		_tmp0_ = BOXES_IS_UNATTENDED_INSTALLER (_tmp2_);
	} else {
		_tmp0_ = FALSE;
	}
	_tmp3_ = _tmp0_;
	if (_tmp3_) {
		{
			BoxesInstallerMedia* _tmp4_;
			_tmp4_ = self->priv->install_media;
			boxes_unattended_installer_check_needed_info (BOXES_IS_UNATTENDED_INSTALLER (_tmp4_) ? ((BoxesUnattendedInstaller*) _tmp4_) : NULL, &_inner_error_);
			if (_inner_error_ != NULL) {
				if (g_error_matches (_inner_error_, UNATTENDED_INSTALLER_ERROR, UNATTENDED_INSTALLER_ERROR_SETUP_INCOMPLETE)) {
					goto __catch75_unattended_installer_error_setup_incomplete;
				}
				g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
				g_clear_error (&_inner_error_);
				return FALSE;
			}
		}
		goto __finally75;
		__catch75_unattended_installer_error_setup_incomplete:
		{
			GError* _error_ = NULL;
			BoxesApp* _tmp5_;
			BoxesNotificationbar* _tmp6_;
			GError* _tmp7_;
			const gchar* _tmp8_;
			_error_ = _inner_error_;
			_inner_error_ = NULL;
			_tmp5_ = self->priv->app;
			_tmp6_ = _tmp5_->notificationbar;
			_tmp7_ = _error_;
			_tmp8_ = _tmp7_->message;
			boxes_notificationbar_display_error (_tmp6_, _tmp8_);
			result = FALSE;
			_g_error_free0 (_error_);
			return result;
		}
		__finally75:
		if (_inner_error_ != NULL) {
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
			g_clear_error (&_inner_error_);
			return FALSE;
		}
	}
	_tmp9_ = self->priv->summary;
	boxes_wizard_wizard_summary_clear (_tmp9_);
	_tmp10_ = self->priv->review_label;
	_tmp11_ = _ ("Will create a new box with the following properties:");
	gtk_label_set_text (_tmp10_, _tmp11_);
	_tmp12_ = self->priv->source;
	if (_tmp12_ != NULL) {
		BoxesCollectionSource* _tmp13_;
		gchar* _tmp14_;
		gchar* _tmp15_;
		gchar* _tmp16_;
		xmlURI* _tmp17_ = NULL;
		xmlURI* _tmp18_;
		xmlURI* uri;
		BoxesWizardWizardSummary* _tmp19_;
		const gchar* _tmp20_ = NULL;
		BoxesCollectionSource* _tmp21_;
		gchar* _tmp22_;
		gchar* _tmp23_;
		gchar* _tmp24_;
		gboolean _tmp25_ = FALSE;
		xmlURI* _tmp26_;
		gboolean _tmp29_;
		xmlURI* _tmp44_;
		const gchar* _tmp45_;
		const gchar* _tmp46_;
		GQuark _tmp48_ = 0U;
		static GQuark _tmp47_label0 = 0;
		static GQuark _tmp47_label1 = 0;
		BoxesCollectionSource* _tmp77_;
		gchar* _tmp78_;
		gchar* _tmp79_;
		gchar* _tmp80_;
		gboolean _tmp81_;
		_tmp13_ = self->priv->source;
		_tmp14_ = boxes_collection_source_get_uri (_tmp13_);
		_tmp15_ = _tmp14_;
		_tmp16_ = _tmp15_;
		_tmp17_ = xmlParseURI (_tmp16_);
		_tmp18_ = _tmp17_;
		_g_free0 (_tmp16_);
		uri = _tmp18_;
		_tmp19_ = self->priv->summary;
		_tmp20_ = _ ("Type");
		_tmp21_ = self->priv->source;
		_tmp22_ = boxes_collection_source_get_source_type (_tmp21_);
		_tmp23_ = _tmp22_;
		_tmp24_ = _tmp23_;
		boxes_wizard_wizard_summary_add_property (_tmp19_, _tmp20_, _tmp24_);
		_g_free0 (_tmp24_);
		_tmp26_ = uri;
		if (_tmp26_ != NULL) {
			xmlURI* _tmp27_;
			const gchar* _tmp28_;
			_tmp27_ = uri;
			_tmp28_ = _tmp27_->server;
			_tmp25_ = _tmp28_ != NULL;
		} else {
			_tmp25_ = FALSE;
		}
		_tmp29_ = _tmp25_;
		if (_tmp29_) {
			BoxesWizardWizardSummary* _tmp30_;
			const gchar* _tmp31_ = NULL;
			xmlURI* _tmp32_;
			const gchar* _tmp33_;
			gchar* _tmp34_ = NULL;
			gchar* _tmp35_;
			_tmp30_ = self->priv->summary;
			_tmp31_ = _ ("Host");
			_tmp32_ = uri;
			_tmp33_ = _tmp32_->server;
			_tmp34_ = g_utf8_strdown (_tmp33_, (gssize) (-1));
			_tmp35_ = _tmp34_;
			boxes_wizard_wizard_summary_add_property (_tmp30_, _tmp31_, _tmp35_);
			_g_free0 (_tmp35_);
		} else {
			BoxesWizardWizardSummary* _tmp36_;
			const gchar* _tmp37_ = NULL;
			BoxesCollectionSource* _tmp38_;
			gchar* _tmp39_;
			gchar* _tmp40_;
			gchar* _tmp41_;
			gchar* _tmp42_ = NULL;
			gchar* _tmp43_;
			_tmp36_ = self->priv->summary;
			_tmp37_ = _ ("URI");
			_tmp38_ = self->priv->source;
			_tmp39_ = boxes_collection_source_get_uri (_tmp38_);
			_tmp40_ = _tmp39_;
			_tmp41_ = _tmp40_;
			_tmp42_ = g_utf8_strdown (_tmp41_, (gssize) (-1));
			_tmp43_ = _tmp42_;
			boxes_wizard_wizard_summary_add_property (_tmp36_, _tmp37_, _tmp43_);
			_g_free0 (_tmp43_);
			_g_free0 (_tmp41_);
		}
		_tmp44_ = uri;
		_tmp45_ = _tmp44_->scheme;
		_tmp46_ = _tmp45_;
		_tmp48_ = (NULL == _tmp46_) ? 0 : g_quark_from_string (_tmp46_);
		if (_tmp48_ == ((0 != _tmp47_label0) ? _tmp47_label0 : (_tmp47_label0 = g_quark_from_static_string ("spice")))) {
			switch (0) {
				default:
				{
					xmlURI* _tmp49_;
					const gchar* _tmp50_;
					gchar* _tmp51_;
					gchar* _tmp52_;
					const gchar* _tmp53_;
					const gchar* _tmp57_;
					BoxesQuery* _tmp58_;
					BoxesQuery* query;
					BoxesWizardWizardSummary* _tmp59_;
					const gchar* _tmp60_ = NULL;
					BoxesQuery* _tmp61_;
					gchar* _tmp62_ = NULL;
					gchar* _tmp63_;
					BoxesWizardWizardSummary* _tmp64_;
					const gchar* _tmp65_ = NULL;
					BoxesQuery* _tmp66_;
					gchar* _tmp67_ = NULL;
					gchar* _tmp68_;
					_tmp49_ = uri;
					_tmp50_ = _tmp49_->query_raw;
					_tmp51_ = g_strdup (_tmp50_);
					_tmp52_ = _tmp51_;
					_tmp53_ = _tmp52_;
					if (_tmp53_ == NULL) {
						xmlURI* _tmp54_;
						const gchar* _tmp55_;
						gchar* _tmp56_;
						_tmp54_ = uri;
						_tmp55_ = _tmp54_->query;
						_tmp56_ = g_strdup (_tmp55_);
						_g_free0 (_tmp52_);
						_tmp52_ = _tmp56_;
					}
					_tmp57_ = _tmp52_;
					_tmp58_ = boxes_query_new (_tmp57_);
					query = _tmp58_;
					_tmp59_ = self->priv->summary;
					_tmp60_ = _ ("Port");
					_tmp61_ = query;
					_tmp62_ = boxes_query_get (_tmp61_, "port");
					_tmp63_ = _tmp62_;
					boxes_wizard_wizard_summary_add_property (_tmp59_, _tmp60_, _tmp63_);
					_g_free0 (_tmp63_);
					_tmp64_ = self->priv->summary;
					_tmp65_ = _ ("TLS Port");
					_tmp66_ = query;
					_tmp67_ = boxes_query_get (_tmp66_, "tls-port");
					_tmp68_ = _tmp67_;
					boxes_wizard_wizard_summary_add_property (_tmp64_, _tmp65_, _tmp68_);
					_g_free0 (_tmp68_);
					_g_object_unref0 (query);
					_g_free0 (_tmp52_);
					break;
				}
			}
		} else if (_tmp48_ == ((0 != _tmp47_label1) ? _tmp47_label1 : (_tmp47_label1 = g_quark_from_static_string ("vnc")))) {
			switch (0) {
				default:
				{
					xmlURI* _tmp69_;
					gint _tmp70_;
					_tmp69_ = uri;
					_tmp70_ = _tmp69_->port;
					if (_tmp70_ > 0) {
						BoxesWizardWizardSummary* _tmp71_;
						const gchar* _tmp72_ = NULL;
						xmlURI* _tmp73_;
						gint _tmp74_;
						gchar* _tmp75_ = NULL;
						gchar* _tmp76_;
						_tmp71_ = self->priv->summary;
						_tmp72_ = _ ("Port");
						_tmp73_ = uri;
						_tmp74_ = _tmp73_->port;
						_tmp75_ = g_strdup_printf ("%i", _tmp74_);
						_tmp76_ = _tmp75_;
						boxes_wizard_wizard_summary_add_property (_tmp71_, _tmp72_, _tmp76_);
						_g_free0 (_tmp76_);
					}
					break;
				}
			}
		}
		_tmp77_ = self->priv->source;
		_tmp78_ = boxes_collection_source_get_source_type (_tmp77_);
		_tmp79_ = _tmp78_;
		_tmp80_ = _tmp79_;
		_tmp81_ = g_strcmp0 (_tmp80_, "libvirt") == 0;
		_g_free0 (_tmp80_);
		if (_tmp81_) {
			GtkLabel* _tmp82_;
			const gchar* _tmp83_ = NULL;
			_tmp82_ = self->priv->review_label;
			_tmp83_ = _ ("Will add boxes for all systems available from this account:");
			gtk_label_set_text (_tmp82_, _tmp83_);
		}
		_xmlFreeURI0 (uri);
	} else {
		BoxesInstallerMedia* _tmp84_;
		_tmp84_ = self->priv->install_media;
		if (_tmp84_ != NULL) {
			BoxesWizardWizardSummary* _tmp85_;
			const gchar* _tmp86_ = NULL;
			BoxesInstallerMedia* _tmp87_;
			const gchar* _tmp88_;
			BoxesInstallerMedia* _tmp89_;
			BoxesInstallerMedia* _tmp106_;
			OsinfoResources* _tmp107_;
			gint64 _tmp108_;
			gint64 _tmp109_;
			gchar* _tmp110_ = NULL;
			gchar* memory;
			BoxesWizardWizardSummary* _tmp111_;
			const gchar* _tmp112_ = NULL;
			const gchar* _tmp113_;
			BoxesInstallerMedia* _tmp114_;
			OsinfoResources* _tmp115_;
			gint64 _tmp116_;
			gint64 _tmp117_;
			gchar* _tmp118_ = NULL;
			BoxesWizardWizardSummary* _tmp119_;
			const gchar* _tmp120_ = NULL;
			const gchar* _tmp121_;
			gchar* _tmp122_ = NULL;
			gchar* _tmp123_;
			const gchar* _tmp124_ = NULL;
			_tmp85_ = self->priv->summary;
			_tmp86_ = _ ("System");
			_tmp87_ = self->priv->install_media;
			_tmp88_ = _tmp87_->label;
			boxes_wizard_wizard_summary_add_property (_tmp85_, _tmp86_, _tmp88_);
			_tmp89_ = self->priv->install_media;
			if (BOXES_IS_UNATTENDED_INSTALLER (_tmp89_)) {
				BoxesInstallerMedia* _tmp90_;
				BoxesUnattendedInstaller* _tmp91_;
				BoxesUnattendedInstaller* media;
				BoxesUnattendedInstaller* _tmp92_;
				gboolean _tmp93_;
				gboolean _tmp94_;
				_tmp90_ = self->priv->install_media;
				_tmp91_ = _g_object_ref0 (BOXES_IS_UNATTENDED_INSTALLER (_tmp90_) ? ((BoxesUnattendedInstaller*) _tmp90_) : NULL);
				media = _tmp91_;
				_tmp92_ = media;
				_tmp93_ = boxes_unattended_installer_get_express_install (_tmp92_);
				_tmp94_ = _tmp93_;
				if (_tmp94_) {
					BoxesWizardWizardSummary* _tmp95_;
					const gchar* _tmp96_ = NULL;
					BoxesUnattendedInstaller* _tmp97_;
					const gchar* _tmp98_;
					const gchar* _tmp99_;
					BoxesWizardWizardSummary* _tmp100_;
					const gchar* _tmp101_ = NULL;
					BoxesUnattendedInstaller* _tmp102_;
					gchar* _tmp103_;
					gchar* _tmp104_;
					gchar* _tmp105_;
					_tmp95_ = self->priv->summary;
					_tmp96_ = _ ("Username");
					_tmp97_ = media;
					_tmp98_ = boxes_unattended_installer_get_username (_tmp97_);
					_tmp99_ = _tmp98_;
					boxes_wizard_wizard_summary_add_property (_tmp95_, _tmp96_, _tmp99_);
					_tmp100_ = self->priv->summary;
					_tmp101_ = _ ("Password");
					_tmp102_ = media;
					_tmp103_ = boxes_unattended_installer_get_hidden_password (_tmp102_);
					_tmp104_ = _tmp103_;
					_tmp105_ = _tmp104_;
					boxes_wizard_wizard_summary_add_property (_tmp100_, _tmp101_, _tmp105_);
					_g_free0 (_tmp105_);
				}
				_g_object_unref0 (media);
			}
			_tmp106_ = self->priv->install_media;
			_tmp107_ = _tmp106_->resources;
			_tmp108_ = osinfo_resources_get_ram (_tmp107_);
			_tmp109_ = _tmp108_;
			_tmp110_ = g_format_size_full ((guint64) _tmp109_, G_FORMAT_SIZE_IEC_UNITS);
			memory = _tmp110_;
			_tmp111_ = self->priv->summary;
			_tmp112_ = _ ("Memory");
			_tmp113_ = memory;
			boxes_wizard_wizard_summary_add_property (_tmp111_, _tmp112_, _tmp113_);
			_tmp114_ = self->priv->install_media;
			_tmp115_ = _tmp114_->resources;
			_tmp116_ = osinfo_resources_get_storage (_tmp115_);
			_tmp117_ = _tmp116_;
			_tmp118_ = g_format_size_full ((guint64) _tmp117_, G_FORMAT_SIZE_IEC_UNITS);
			_g_free0 (memory);
			memory = _tmp118_;
			_tmp119_ = self->priv->summary;
			_tmp120_ = _ ("Disk");
			_tmp121_ = memory;
			_tmp122_ = g_strdup_printf ("%s maximum", _tmp121_);
			_tmp123_ = _tmp122_;
			_tmp124_ = _ (_tmp123_);
			boxes_wizard_wizard_summary_add_property (_tmp119_, _tmp120_, _tmp124_);
			_g_free0 (_tmp123_);
			_g_free0 (memory);
		}
	}
	result = TRUE;
	return result;
}


static void g_ptr_array_set (GPtrArray* self, guint index, gpointer data) {
	gpointer _tmp0_;
	guint _tmp1_;
	g_return_if_fail (self != NULL);
	_tmp0_ = data;
	data = NULL;
	g_ptr_array_add (self, _tmp0_);
	_tmp1_ = index;
	g_ptr_array_remove_index_fast (self, _tmp1_);
}


static void boxes_wizard_add_step (BoxesWizard* self, GtkWidget* widget, const gchar* title, BoxesWizardPage page) {
	GtkNotebook* _tmp0_;
	GtkWidget* _tmp1_;
	BoxesApp* _tmp2_;
	BoxesSidebar* _tmp3_;
	GtkNotebook* _tmp4_;
	GtkWidget* _tmp5_ = NULL;
	GtkVBox* _tmp6_;
	GtkVBox* vbox;
	const gchar* _tmp7_;
	GtkLabel* _tmp8_;
	GtkLabel* _tmp9_;
	GtkLabel* label;
	GtkStyleContext* _tmp10_ = NULL;
	GPtrArray* _tmp11_;
	BoxesWizardPage _tmp12_;
	GtkLabel* _tmp13_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (widget != NULL);
	g_return_if_fail (title != NULL);
	_tmp0_ = self->priv->notebook;
	_tmp1_ = widget;
	gtk_notebook_append_page (_tmp0_, _tmp1_, NULL);
	_tmp2_ = self->priv->app;
	_tmp3_ = _tmp2_->sidebar;
	_tmp4_ = _tmp3_->notebook;
	_tmp5_ = gtk_notebook_get_nth_page (_tmp4_, (gint) BOXES_SIDEBAR_PAGE_WIZARD);
	_tmp6_ = _g_object_ref0 (GTK_IS_VBOX (_tmp5_) ? ((GtkVBox*) _tmp5_) : NULL);
	vbox = _tmp6_;
	_tmp7_ = title;
	_tmp8_ = (GtkLabel*) gtk_label_new (_tmp7_);
	_tmp9_ = g_object_ref_sink (_tmp8_);
	label = _tmp9_;
	gtk_widget_set_margin_left ((GtkWidget*) label, 25);
	_tmp10_ = gtk_widget_get_style_context ((GtkWidget*) label);
	gtk_style_context_add_class (_tmp10_, "boxes-step-label");
	gtk_widget_set_halign ((GtkWidget*) label, GTK_ALIGN_START);
	gtk_box_pack_start ((GtkBox*) vbox, (GtkWidget*) label, FALSE, FALSE, (guint) 10);
	gtk_widget_show_all ((GtkWidget*) vbox);
	_tmp11_ = self->priv->steps;
	_tmp12_ = page;
	_tmp13_ = _g_object_ref0 (label);
	g_ptr_array_set (_tmp11_, (guint) _tmp12_, _tmp13_);
	_g_object_unref0 (label);
	_g_object_unref0 (vbox);
}


static gboolean boxes_wizard_skip_page (BoxesWizard* self, BoxesWizardPage page) {
	gboolean result = FALSE;
	BoxesWizardPage _tmp0_;
	BoxesWizardPage _tmp1_;
	BoxesWizardPage _tmp2_;
	gboolean forwards;
	BoxesWizardPage _tmp3_;
	BoxesWizardPage skip_to;
	gboolean _tmp4_ = FALSE;
	BoxesCollectionSource* _tmp5_;
	gboolean _tmp8_;
	gboolean _tmp14_ = FALSE;
	gboolean _tmp15_;
	gboolean _tmp17_;
	BoxesInstallerMedia* _tmp19_;
	BoxesWizardPage _tmp41_;
	BoxesWizardPage _tmp42_;
	g_return_val_if_fail (self != NULL, FALSE);
	_tmp0_ = page;
	_tmp1_ = boxes_wizard_get_page (self);
	_tmp2_ = _tmp1_;
	forwards = _tmp0_ > _tmp2_;
	_tmp3_ = page;
	skip_to = _tmp3_;
	_tmp5_ = self->priv->source;
	if (_tmp5_ != NULL) {
		BoxesWizardPage _tmp6_;
		BoxesWizardPage _tmp7_;
		_tmp6_ = page;
		_tmp7_ = _tmp6_;
		_tmp4_ = (BOXES_WIZARD_PAGE_SOURCE < _tmp7_) && (_tmp7_ < BOXES_WIZARD_PAGE_REVIEW);
	} else {
		_tmp4_ = FALSE;
	}
	_tmp8_ = _tmp4_;
	if (_tmp8_) {
		BoxesWizardPage _tmp9_ = 0;
		gboolean _tmp10_;
		BoxesWizardPage _tmp13_;
		_tmp10_ = forwards;
		if (_tmp10_) {
			BoxesWizardPage _tmp11_;
			_tmp11_ = page;
			_tmp9_ = _tmp11_ + 1;
		} else {
			BoxesWizardPage _tmp12_;
			_tmp12_ = page;
			_tmp9_ = _tmp12_ - 1;
		}
		_tmp13_ = _tmp9_;
		skip_to = _tmp13_;
	}
	_tmp15_ = forwards;
	if (!_tmp15_) {
		BoxesWizardPage _tmp16_;
		_tmp16_ = page;
		_tmp14_ = _tmp16_ == BOXES_WIZARD_PAGE_PREPARATION;
	} else {
		_tmp14_ = FALSE;
	}
	_tmp17_ = _tmp14_;
	if (_tmp17_) {
		BoxesWizardPage _tmp18_;
		_tmp18_ = page;
		skip_to = _tmp18_ - 1;
	}
	_tmp19_ = self->priv->install_media;
	if (_tmp19_ != NULL) {
		gboolean _tmp20_ = FALSE;
		gboolean _tmp21_ = FALSE;
		gboolean _tmp22_ = FALSE;
		gboolean _tmp23_;
		gboolean _tmp25_;
		gboolean _tmp29_;
		gboolean _tmp31_;
		gboolean _tmp32_ = FALSE;
		BoxesWizardPage _tmp33_;
		gboolean _tmp35_;
		_tmp23_ = forwards;
		if (_tmp23_) {
			BoxesWizardPage _tmp24_;
			_tmp24_ = page;
			_tmp22_ = _tmp24_ == BOXES_WIZARD_PAGE_SETUP;
		} else {
			_tmp22_ = FALSE;
		}
		_tmp25_ = _tmp22_;
		if (_tmp25_) {
			BoxesInstallerMedia* _tmp26_;
			gboolean _tmp27_;
			gboolean _tmp28_;
			_tmp26_ = self->priv->install_media;
			_tmp27_ = boxes_installer_media_get_live (_tmp26_);
			_tmp28_ = _tmp27_;
			_tmp21_ = _tmp28_;
		} else {
			_tmp21_ = FALSE;
		}
		_tmp29_ = _tmp21_;
		if (_tmp29_) {
			gboolean _tmp30_;
			_tmp30_ = self->priv->skip_review_for_live;
			_tmp20_ = _tmp30_;
		} else {
			_tmp20_ = FALSE;
		}
		_tmp31_ = _tmp20_;
		if (_tmp31_) {
			skip_to = BOXES_WIZARD_PAGE_LAST;
		}
		_tmp33_ = page;
		if (_tmp33_ == BOXES_WIZARD_PAGE_SETUP) {
			BoxesInstallerMedia* _tmp34_;
			_tmp34_ = self->priv->install_media;
			_tmp32_ = !BOXES_IS_UNATTENDED_INSTALLER (_tmp34_);
		} else {
			_tmp32_ = FALSE;
		}
		_tmp35_ = _tmp32_;
		if (_tmp35_) {
			BoxesWizardPage _tmp36_ = 0;
			gboolean _tmp37_;
			BoxesWizardPage _tmp40_;
			_tmp37_ = forwards;
			if (_tmp37_) {
				BoxesWizardPage _tmp38_;
				_tmp38_ = page;
				_tmp36_ = _tmp38_ + 1;
			} else {
				BoxesWizardPage _tmp39_;
				_tmp39_ = page;
				_tmp36_ = _tmp39_ - 1;
			}
			_tmp40_ = _tmp36_;
			skip_to = _tmp40_;
		}
	}
	_tmp41_ = skip_to;
	_tmp42_ = page;
	if (_tmp41_ != _tmp42_) {
		BoxesWizardPage _tmp43_;
		_tmp43_ = skip_to;
		boxes_wizard_set_page (self, _tmp43_);
		result = TRUE;
		return result;
	}
	result = FALSE;
	return result;
}


static void __lambda96_ (BoxesWizard* self) {
	BoxesWizardSource* _tmp0_;
	BoxesApp* _tmp1_;
	_tmp0_ = self->priv->wizard_source;
	boxes_wizard_source_set_page (_tmp0_, BOXES_SOURCE_PAGE_MAIN);
	_tmp1_ = self->priv->app;
	boxes_ui_set_ui_state ((BoxesUI*) _tmp1_, BOXES_UI_STATE_COLLECTION);
}


static void ___lambda96__gtk_button_clicked (GtkButton* _sender, gpointer self) {
	__lambda96_ (self);
}


static void __lambda97_ (BoxesWizard* self) {
	BoxesWizardPage _tmp0_;
	BoxesWizardPage _tmp1_;
	_tmp0_ = boxes_wizard_get_page (self);
	_tmp1_ = _tmp0_;
	boxes_wizard_set_page (self, _tmp1_ - 1);
}


static void ___lambda97__gtk_button_clicked (GtkButton* _sender, gpointer self) {
	__lambda97_ (self);
}


static void __lambda98_ (BoxesWizard* self) {
	BoxesWizardPage _tmp0_;
	BoxesWizardPage _tmp1_;
	_tmp0_ = boxes_wizard_get_page (self);
	_tmp1_ = _tmp0_;
	boxes_wizard_set_page (self, _tmp1_ + 1);
}


static void ___lambda98__gtk_button_clicked (GtkButton* _sender, gpointer self) {
	__lambda98_ (self);
}


static void boxes_wizard_setup_ui (BoxesWizard* self) {
	GtkNotebook* _tmp0_;
	GtkNotebook* _tmp1_;
	GtkNotebook* _tmp2_;
	GtkNotebook* _tmp3_;
	GtkStyleContext* _tmp4_ = NULL;
	GtkNotebook* _tmp5_;
	GtkClutterActor* _tmp6_;
	GtkClutterActor* _tmp7_;
	GtkHBox* _tmp8_;
	GtkHBox* _tmp9_;
	GtkHBox* hbox;
	GtkHBox* _tmp10_;
	const gchar* _tmp11_ = NULL;
	GtkHBox* _tmp12_;
	gchar* _tmp13_ = NULL;
	gchar* _tmp14_;
	GtkImage* _tmp15_;
	GtkImage* _tmp16_;
	GtkLabel* _tmp17_;
	GtkLabel* _tmp18_;
	GtkLabel* label;
	GtkLabel* _tmp19_;
	GtkStyleContext* _tmp20_ = NULL;
	GtkLabel* _tmp21_;
	const gchar* _tmp22_ = NULL;
	GtkLabel* _tmp23_;
	GtkLabel* _tmp24_;
	GtkLabel* _tmp25_;
	GtkHBox* _tmp26_;
	GtkLabel* _tmp27_;
	GtkHBox* _tmp28_;
	GtkVBox* _tmp29_;
	GtkVBox* _tmp30_;
	GtkVBox* vbox;
	GtkVBox* _tmp31_;
	GtkVBox* _tmp32_;
	GtkVBox* _tmp33_;
	GtkVBox* _tmp34_;
	const gchar* _tmp35_ = NULL;
	const gchar* _tmp36_ = NULL;
	GtkLabel* _tmp37_;
	GtkLabel* _tmp38_;
	GtkLabel* _tmp39_;
	GtkStyleContext* _tmp40_ = NULL;
	GtkLabel* _tmp41_;
	GtkLabel* _tmp42_;
	GtkVBox* _tmp43_;
	GtkLabel* _tmp44_;
	GtkVBox* _tmp45_;
	BoxesWizardSource* _tmp46_;
	GtkWidget* _tmp47_;
	GtkWidget* _tmp48_;
	BoxesWizardSource* _tmp49_;
	GtkWidget* _tmp50_;
	GtkWidget* _tmp51_;
	BoxesWizardSource* _tmp52_;
	GtkWidget* _tmp53_;
	GtkWidget* _tmp54_;
	const gchar* _tmp55_ = NULL;
	GtkLabel* _tmp56_;
	GtkLabel* _tmp57_;
	GtkLabel* _tmp58_;
	GtkStyleContext* _tmp59_ = NULL;
	GtkLabel* _tmp60_;
	GtkLabel* _tmp61_;
	GtkVBox* _tmp62_;
	GtkLabel* _tmp63_;
	GtkVBox* _tmp64_;
	GtkVBox* _tmp65_;
	GtkVBox* _tmp66_;
	GtkVBox* _tmp67_;
	GtkVBox* _tmp68_;
	GtkVBox* _tmp69_;
	GtkVBox* _tmp70_;
	const gchar* _tmp71_ = NULL;
	const gchar* _tmp72_ = NULL;
	GtkLabel* _tmp73_;
	GtkLabel* _tmp74_;
	GtkLabel* _tmp75_;
	GtkStyleContext* _tmp76_ = NULL;
	GtkLabel* _tmp77_;
	GtkLabel* _tmp78_;
	GtkVBox* _tmp79_;
	GtkLabel* _tmp80_;
	GtkHBox* _tmp81_;
	GtkHBox* _tmp82_;
	GtkHBox* _tmp83_;
	GtkHBox* _tmp84_;
	GtkVBox* _tmp85_;
	GtkHBox* _tmp86_;
	GtkImage* _tmp87_;
	GtkImage* _tmp88_;
	GtkImage* _tmp89_;
	GtkHBox* _tmp90_;
	GtkImage* _tmp91_;
	GtkVBox* _tmp92_;
	GtkVBox* _tmp93_;
	GtkVBox* prep_vbox;
	GtkHBox* _tmp94_;
	const gchar* _tmp95_ = NULL;
	GtkLabel* _tmp96_;
	GtkLabel* _tmp97_;
	GtkLabel* _tmp98_;
	GtkStyleContext* _tmp99_ = NULL;
	GtkLabel* _tmp100_;
	GtkProgressBar* _tmp101_;
	GtkProgressBar* _tmp102_;
	GtkProgressBar* _tmp103_;
	GtkVBox* _tmp104_;
	GtkVBox* _tmp105_;
	GtkVBox* _tmp106_;
	GtkVBox* _tmp107_;
	GtkVBox* _tmp108_;
	GtkVBox* _tmp109_;
	const gchar* _tmp110_ = NULL;
	GtkVBox* _tmp111_;
	GtkVBox* _tmp112_;
	GtkVBox* _tmp113_;
	GtkVBox* _tmp114_;
	GtkVBox* _tmp115_;
	GtkVBox* _tmp116_;
	const gchar* _tmp117_ = NULL;
	GtkLabel* _tmp118_;
	GtkLabel* _tmp119_;
	GtkLabel* _tmp120_;
	GtkStyleContext* _tmp121_ = NULL;
	GtkLabel* _tmp122_;
	GtkVBox* _tmp123_;
	GtkLabel* _tmp124_;
	BoxesWizardWizardSummary* _tmp125_;
	GtkVBox* _tmp126_;
	BoxesWizardWizardSummary* _tmp127_;
	GtkWidget* _tmp128_;
	GtkWidget* _tmp129_;
	GtkVBox* _tmp130_;
	BoxesApp* _tmp131_;
	BoxesTopbar* _tmp132_;
	GtkNotebook* _tmp133_;
	GtkWidget* _tmp134_ = NULL;
	GtkHBox* _tmp135_;
	GtkToolbar* _tmp136_;
	GtkToolbar* _tmp137_;
	GtkToolbar* toolbar;
	GtkStyleContext* _tmp138_ = NULL;
	GtkHBox* _tmp139_;
	const gchar* _tmp140_ = NULL;
	GtkLabel* _tmp141_;
	GtkLabel* _tmp142_;
	GtkLabel* _tmp143_;
	GtkLabel* _tmp144_;
	GtkLabel* _tmp145_;
	GtkToolItem* _tmp146_;
	GtkToolItem* _tmp147_;
	GtkToolItem* tool_item;
	GtkToolItem* _tmp148_;
	GtkToolItem* _tmp149_;
	GtkLabel* _tmp150_;
	GtkToolItem* _tmp151_;
	GtkButton* _tmp152_;
	GtkButton* _tmp153_;
	GtkButton* cancel;
	GtkToolItem* _tmp154_;
	GtkToolItem* _tmp155_;
	GtkToolItem* _tmp156_;
	GtkToolItem* _tmp157_;
	GtkButton* _tmp158_;
	GtkButton* _tmp159_;
	GtkToolItem* _tmp160_;
	GtkToolItem* _tmp161_;
	GtkToolItem* _tmp162_;
	GtkButton* _tmp163_;
	GtkToolItem* _tmp164_;
	GtkToolItem* _tmp165_;
	GtkButton* _tmp166_;
	const gchar* _tmp167_ = NULL;
	GtkButton* _tmp168_;
	GtkButton* _tmp169_;
	GtkToolItem* _tmp170_;
	GtkToolItem* _tmp171_;
	GtkToolItem* _tmp172_;
	GtkButton* _tmp173_;
	GtkToolItem* _tmp174_;
	GtkToolItem* _tmp175_;
	GtkButton* _tmp176_;
	GtkStyleContext* _tmp177_ = NULL;
	GtkButton* _tmp178_;
	GtkHBox* _tmp179_;
	GtkNotebook* _tmp180_;
	g_return_if_fail (self != NULL);
	_tmp0_ = (GtkNotebook*) gtk_notebook_new ();
	_tmp1_ = g_object_ref_sink (_tmp0_);
	_g_object_unref0 (self->priv->notebook);
	self->priv->notebook = _tmp1_;
	_tmp2_ = self->priv->notebook;
	gtk_notebook_set_show_tabs (_tmp2_, FALSE);
	_tmp3_ = self->priv->notebook;
	_tmp4_ = gtk_widget_get_style_context ((GtkWidget*) _tmp3_);
	gtk_style_context_add_class (_tmp4_, "boxes-bg");
	_tmp5_ = self->priv->notebook;
	_tmp6_ = (GtkClutterActor*) gtk_clutter_actor_new_with_contents ((GtkWidget*) _tmp5_);
	_tmp7_ = g_object_ref_sink (_tmp6_);
	_g_object_unref0 (self->priv->gtk_actor);
	self->priv->gtk_actor = _tmp7_;
	_tmp8_ = (GtkHBox*) gtk_hbox_new (FALSE, 10);
	_tmp9_ = g_object_ref_sink (_tmp8_);
	hbox = _tmp9_;
	_tmp10_ = hbox;
	_tmp11_ = _ ("Introduction");
	boxes_wizard_add_step (self, (GtkWidget*) _tmp10_, _tmp11_, BOXES_WIZARD_PAGE_INTRODUCTION);
	_tmp12_ = hbox;
	_tmp13_ = boxes_get_pixmap ("boxes-create.png");
	_tmp14_ = _tmp13_;
	_tmp15_ = (GtkImage*) gtk_image_new_from_file (_tmp14_);
	_tmp16_ = g_object_ref_sink (_tmp15_);
	gtk_container_add ((GtkContainer*) _tmp12_, (GtkWidget*) _tmp16_);
	_g_object_unref0 (_tmp16_);
	_g_free0 (_tmp14_);
	_tmp17_ = (GtkLabel*) gtk_label_new (NULL);
	_tmp18_ = g_object_ref_sink (_tmp17_);
	label = _tmp18_;
	_tmp19_ = label;
	_tmp20_ = gtk_widget_get_style_context ((GtkWidget*) _tmp19_);
	gtk_style_context_add_class (_tmp20_, "boxes-wizard-label");
	_tmp21_ = label;
	_tmp22_ = _ ("Creating a Box will allow you to use another operating system directly" \
" from your existing login.\n" \
"\n" \
"You may connect to an existing machine <b><i>over the network</i></b> " \
"or create a <b><i>virtual machine</i></b> that runs locally on your ow" \
"n.");
	gtk_label_set_markup (_tmp21_, _tmp22_);
	_tmp23_ = label;
	gtk_label_set_use_markup (_tmp23_, TRUE);
	_tmp24_ = label;
	g_object_set (_tmp24_, "wrap", TRUE, NULL);
	_tmp25_ = label;
	gtk_widget_set_halign ((GtkWidget*) _tmp25_, GTK_ALIGN_START);
	_tmp26_ = hbox;
	_tmp27_ = label;
	gtk_container_add ((GtkContainer*) _tmp26_, (GtkWidget*) _tmp27_);
	_tmp28_ = hbox;
	gtk_widget_show_all ((GtkWidget*) _tmp28_);
	_tmp29_ = (GtkVBox*) gtk_vbox_new (FALSE, 30);
	_tmp30_ = g_object_ref_sink (_tmp29_);
	vbox = _tmp30_;
	_tmp31_ = vbox;
	gtk_widget_set_valign ((GtkWidget*) _tmp31_, GTK_ALIGN_CENTER);
	_tmp32_ = vbox;
	gtk_widget_set_halign ((GtkWidget*) _tmp32_, GTK_ALIGN_CENTER);
	_tmp33_ = vbox;
	g_object_set ((GtkWidget*) _tmp33_, "margin", 15, NULL);
	_tmp34_ = vbox;
	_tmp35_ = _ ("Source Selection");
	boxes_wizard_add_step (self, (GtkWidget*) _tmp34_, _tmp35_, BOXES_WIZARD_PAGE_SOURCE);
	_tmp36_ = _ ("Insert operating system installation media or select a source below");
	_tmp37_ = (GtkLabel*) gtk_label_new (_tmp36_);
	_tmp38_ = g_object_ref_sink (_tmp37_);
	_g_object_unref0 (label);
	label = _tmp38_;
	_tmp39_ = label;
	_tmp40_ = gtk_widget_get_style_context ((GtkWidget*) _tmp39_);
	gtk_style_context_add_class (_tmp40_, "boxes-wizard-label");
	_tmp41_ = label;
	g_object_set (_tmp41_, "wrap", TRUE, NULL);
	_tmp42_ = label;
	g_object_set ((GtkMisc*) _tmp42_, "xalign", 0.0f, NULL);
	_tmp43_ = vbox;
	_tmp44_ = label;
	gtk_box_pack_start ((GtkBox*) _tmp43_, (GtkWidget*) _tmp44_, FALSE, FALSE, (guint) 0);
	_tmp45_ = vbox;
	_tmp46_ = self->priv->wizard_source;
	_tmp47_ = boxes_wizard_source_get_widget (_tmp46_);
	_tmp48_ = _tmp47_;
	gtk_box_pack_start ((GtkBox*) _tmp45_, _tmp48_, FALSE, FALSE, (guint) 0);
	_tmp49_ = self->priv->wizard_source;
	_tmp50_ = boxes_wizard_source_get_widget (_tmp49_);
	_tmp51_ = _tmp50_;
	gtk_widget_set_hexpand (_tmp51_, TRUE);
	_tmp52_ = self->priv->wizard_source;
	_tmp53_ = boxes_wizard_source_get_widget (_tmp52_);
	_tmp54_ = _tmp53_;
	gtk_widget_set_halign (_tmp54_, GTK_ALIGN_CENTER);
	_tmp55_ = _ ("Any trademarks shown above are used merely for identification of softw" \
"are products you have already obtained and are the property of their r" \
"espective owners.");
	_tmp56_ = (GtkLabel*) gtk_label_new (_tmp55_);
	_tmp57_ = g_object_ref_sink (_tmp56_);
	_g_object_unref0 (label);
	label = _tmp57_;
	_tmp58_ = label;
	_tmp59_ = gtk_widget_get_style_context ((GtkWidget*) _tmp58_);
	gtk_style_context_add_class (_tmp59_, "boxes-logo-notice-label");
	_tmp60_ = label;
	g_object_set (_tmp60_, "wrap", TRUE, NULL);
	_tmp61_ = label;
	gtk_label_set_max_width_chars (_tmp61_, 50);
	_tmp62_ = vbox;
	_tmp63_ = label;
	gtk_box_pack_start ((GtkBox*) _tmp62_, (GtkWidget*) _tmp63_, FALSE, FALSE, (guint) 0);
	_tmp64_ = vbox;
	gtk_widget_show_all ((GtkWidget*) _tmp64_);
	_tmp65_ = (GtkVBox*) gtk_vbox_new (FALSE, 30);
	_tmp66_ = g_object_ref_sink (_tmp65_);
	_g_object_unref0 (vbox);
	vbox = _tmp66_;
	_tmp67_ = vbox;
	gtk_widget_set_valign ((GtkWidget*) _tmp67_, GTK_ALIGN_CENTER);
	_tmp68_ = vbox;
	gtk_widget_set_halign ((GtkWidget*) _tmp68_, GTK_ALIGN_CENTER);
	_tmp69_ = vbox;
	g_object_set ((GtkWidget*) _tmp69_, "margin", 15, NULL);
	_tmp70_ = vbox;
	_tmp71_ = _ ("Preparation");
	boxes_wizard_add_step (self, (GtkWidget*) _tmp70_, _tmp71_, BOXES_WIZARD_PAGE_PREPARATION);
	_tmp72_ = _ ("Preparing to create new box");
	_tmp73_ = (GtkLabel*) gtk_label_new (_tmp72_);
	_tmp74_ = g_object_ref_sink (_tmp73_);
	_g_object_unref0 (label);
	label = _tmp74_;
	_tmp75_ = label;
	_tmp76_ = gtk_widget_get_style_context ((GtkWidget*) _tmp75_);
	gtk_style_context_add_class (_tmp76_, "boxes-wizard-label");
	_tmp77_ = label;
	g_object_set (_tmp77_, "wrap", TRUE, NULL);
	_tmp78_ = label;
	g_object_set ((GtkMisc*) _tmp78_, "xalign", 0.0f, NULL);
	_tmp79_ = vbox;
	_tmp80_ = label;
	gtk_box_pack_start ((GtkBox*) _tmp79_, (GtkWidget*) _tmp80_, FALSE, FALSE, (guint) 0);
	_tmp81_ = (GtkHBox*) gtk_hbox_new (FALSE, 10);
	_tmp82_ = g_object_ref_sink (_tmp81_);
	_g_object_unref0 (hbox);
	hbox = _tmp82_;
	_tmp83_ = hbox;
	gtk_widget_set_valign ((GtkWidget*) _tmp83_, GTK_ALIGN_CENTER);
	_tmp84_ = hbox;
	gtk_widget_set_halign ((GtkWidget*) _tmp84_, GTK_ALIGN_CENTER);
	_tmp85_ = vbox;
	_tmp86_ = hbox;
	gtk_box_pack_start ((GtkBox*) _tmp85_, (GtkWidget*) _tmp86_, TRUE, TRUE, (guint) 0);
	_tmp87_ = (GtkImage*) gtk_image_new_from_icon_name ("media-optical", 0);
	_tmp88_ = g_object_ref_sink (_tmp87_);
	_g_object_unref0 (self->priv->installer_image);
	self->priv->installer_image = _tmp88_;
	_tmp89_ = self->priv->installer_image;
	gtk_image_set_pixel_size (_tmp89_, 128);
	_tmp90_ = hbox;
	_tmp91_ = self->priv->installer_image;
	gtk_box_pack_start ((GtkBox*) _tmp90_, (GtkWidget*) _tmp91_, FALSE, FALSE, (guint) 0);
	_tmp92_ = (GtkVBox*) gtk_vbox_new (TRUE, 10);
	_tmp93_ = g_object_ref_sink (_tmp92_);
	prep_vbox = _tmp93_;
	gtk_widget_set_valign ((GtkWidget*) prep_vbox, GTK_ALIGN_CENTER);
	_tmp94_ = hbox;
	gtk_box_pack_start ((GtkBox*) _tmp94_, (GtkWidget*) prep_vbox, TRUE, TRUE, (guint) 0);
	_tmp95_ = _ ("Analyzing installer media.");
	_tmp96_ = (GtkLabel*) gtk_label_new (_tmp95_);
	_tmp97_ = g_object_ref_sink (_tmp96_);
	_g_object_unref0 (label);
	label = _tmp97_;
	_tmp98_ = label;
	_tmp99_ = gtk_widget_get_style_context ((GtkWidget*) _tmp98_);
	gtk_style_context_add_class (_tmp99_, "boxes-wizard-label");
	_tmp100_ = label;
	gtk_box_pack_start ((GtkBox*) prep_vbox, (GtkWidget*) _tmp100_, FALSE, FALSE, (guint) 0);
	_tmp101_ = (GtkProgressBar*) gtk_progress_bar_new ();
	_tmp102_ = g_object_ref_sink (_tmp101_);
	_g_object_unref0 (self->priv->prep_progress);
	self->priv->prep_progress = _tmp102_;
	_tmp103_ = self->priv->prep_progress;
	gtk_box_pack_start ((GtkBox*) prep_vbox, (GtkWidget*) _tmp103_, FALSE, FALSE, (guint) 0);
	_tmp104_ = vbox;
	gtk_widget_show_all ((GtkWidget*) _tmp104_);
	_tmp105_ = (GtkVBox*) gtk_vbox_new (FALSE, 30);
	_tmp106_ = g_object_ref_sink (_tmp105_);
	_g_object_unref0 (self->priv->setup_vbox);
	self->priv->setup_vbox = _tmp106_;
	_tmp107_ = self->priv->setup_vbox;
	gtk_widget_set_valign ((GtkWidget*) _tmp107_, GTK_ALIGN_CENTER);
	_tmp108_ = self->priv->setup_vbox;
	gtk_widget_set_halign ((GtkWidget*) _tmp108_, GTK_ALIGN_CENTER);
	_tmp109_ = self->priv->setup_vbox;
	_tmp110_ = _ ("Setup");
	boxes_wizard_add_step (self, (GtkWidget*) _tmp109_, _tmp110_, BOXES_WIZARD_PAGE_SETUP);
	_tmp111_ = self->priv->setup_vbox;
	gtk_widget_show_all ((GtkWidget*) _tmp111_);
	_tmp112_ = (GtkVBox*) gtk_vbox_new (FALSE, 30);
	_tmp113_ = g_object_ref_sink (_tmp112_);
	_g_object_unref0 (vbox);
	vbox = _tmp113_;
	_tmp114_ = vbox;
	gtk_widget_set_valign ((GtkWidget*) _tmp114_, GTK_ALIGN_CENTER);
	_tmp115_ = vbox;
	gtk_widget_set_halign ((GtkWidget*) _tmp115_, GTK_ALIGN_CENTER);
	_tmp116_ = vbox;
	_tmp117_ = _ ("Review");
	boxes_wizard_add_step (self, (GtkWidget*) _tmp116_, _tmp117_, BOXES_WIZARD_PAGE_REVIEW);
	_tmp118_ = (GtkLabel*) gtk_label_new (NULL);
	_tmp119_ = g_object_ref_sink (_tmp118_);
	_g_object_unref0 (self->priv->review_label);
	self->priv->review_label = _tmp119_;
	_tmp120_ = self->priv->review_label;
	_tmp121_ = gtk_widget_get_style_context ((GtkWidget*) _tmp120_);
	gtk_style_context_add_class (_tmp121_, "boxes-wizard-label");
	_tmp122_ = self->priv->review_label;
	g_object_set ((GtkMisc*) _tmp122_, "xalign", 0.0f, NULL);
	_tmp123_ = vbox;
	_tmp124_ = self->priv->review_label;
	gtk_box_pack_start ((GtkBox*) _tmp123_, (GtkWidget*) _tmp124_, FALSE, FALSE, (guint) 0);
	_tmp125_ = boxes_wizard_wizard_summary_new ();
	_g_object_unref0 (self->priv->summary);
	self->priv->summary = _tmp125_;
	_tmp126_ = vbox;
	_tmp127_ = self->priv->summary;
	_tmp128_ = boxes_wizard_wizard_summary_get_widget (_tmp127_);
	_tmp129_ = _tmp128_;
	gtk_box_pack_start ((GtkBox*) _tmp126_, _tmp129_, TRUE, TRUE, (guint) 0);
	_tmp130_ = vbox;
	gtk_widget_show_all ((GtkWidget*) _tmp130_);
	_tmp131_ = self->priv->app;
	_tmp132_ = _tmp131_->topbar;
	_tmp133_ = _tmp132_->notebook;
	_tmp134_ = gtk_notebook_get_nth_page (_tmp133_, (gint) BOXES_TOPBAR_PAGE_WIZARD);
	_tmp135_ = _g_object_ref0 (GTK_IS_HBOX (_tmp134_) ? ((GtkHBox*) _tmp134_) : NULL);
	_g_object_unref0 (hbox);
	hbox = _tmp135_;
	_tmp136_ = (GtkToolbar*) gtk_toolbar_new ();
	_tmp137_ = g_object_ref_sink (_tmp136_);
	toolbar = _tmp137_;
	gtk_toolbar_set_icon_size (toolbar, (gint) GTK_ICON_SIZE_MENU);
	_tmp138_ = gtk_widget_get_style_context ((GtkWidget*) toolbar);
	gtk_style_context_add_class (_tmp138_, GTK_STYLE_CLASS_MENUBAR);
	gtk_toolbar_set_show_arrow (toolbar, FALSE);
	_tmp139_ = hbox;
	gtk_box_pack_start ((GtkBox*) _tmp139_, (GtkWidget*) toolbar, TRUE, TRUE, (guint) 0);
	_tmp140_ = _ ("Create a Box");
	_tmp141_ = (GtkLabel*) gtk_label_new (_tmp140_);
	_tmp142_ = g_object_ref_sink (_tmp141_);
	_g_object_unref0 (label);
	label = _tmp142_;
	_tmp143_ = label;
	gtk_widget_set_name ((GtkWidget*) _tmp143_, "TopbarLabel");
	_tmp144_ = label;
	gtk_widget_set_halign ((GtkWidget*) _tmp144_, GTK_ALIGN_START);
	_tmp145_ = label;
	gtk_widget_set_margin_left ((GtkWidget*) _tmp145_, 15);
	_tmp146_ = gtk_tool_item_new ();
	_tmp147_ = g_object_ref_sink (_tmp146_);
	tool_item = _tmp147_;
	_tmp148_ = tool_item;
	gtk_tool_item_set_expand (_tmp148_, TRUE);
	_tmp149_ = tool_item;
	_tmp150_ = label;
	g_object_set ((GtkContainer*) _tmp149_, "child", (GtkWidget*) _tmp150_, NULL);
	_tmp151_ = tool_item;
	gtk_toolbar_insert (toolbar, _tmp151_, 0);
	_tmp152_ = (GtkButton*) gtk_button_new_from_stock (GTK_STOCK_CANCEL);
	_tmp153_ = g_object_ref_sink (_tmp152_);
	cancel = _tmp153_;
	_tmp154_ = gtk_tool_item_new ();
	_tmp155_ = g_object_ref_sink (_tmp154_);
	_g_object_unref0 (tool_item);
	tool_item = _tmp155_;
	_tmp156_ = tool_item;
	g_object_set ((GtkContainer*) _tmp156_, "child", (GtkWidget*) cancel, NULL);
	_tmp157_ = tool_item;
	gtk_toolbar_insert (toolbar, _tmp157_, 1);
	g_signal_connect_object (cancel, "clicked", (GCallback) ___lambda96__gtk_button_clicked, self, 0);
	_tmp158_ = (GtkButton*) gtk_button_new_from_stock (GTK_STOCK_GO_BACK);
	_tmp159_ = g_object_ref_sink (_tmp158_);
	_g_object_unref0 (self->priv->back_button);
	self->priv->back_button = _tmp159_;
	_tmp160_ = gtk_tool_item_new ();
	_tmp161_ = g_object_ref_sink (_tmp160_);
	_g_object_unref0 (tool_item);
	tool_item = _tmp161_;
	_tmp162_ = tool_item;
	_tmp163_ = self->priv->back_button;
	g_object_set ((GtkContainer*) _tmp162_, "child", (GtkWidget*) _tmp163_, NULL);
	_tmp164_ = tool_item;
	gtk_widget_set_margin_left ((GtkWidget*) _tmp164_, 20);
	_tmp165_ = tool_item;
	gtk_toolbar_insert (toolbar, _tmp165_, 2);
	_tmp166_ = self->priv->back_button;
	g_signal_connect_object (_tmp166_, "clicked", (GCallback) ___lambda97__gtk_button_clicked, self, 0);
	_tmp167_ = _ ("C_ontinue");
	_tmp168_ = (GtkButton*) gtk_button_new_with_mnemonic (_tmp167_);
	_tmp169_ = g_object_ref_sink (_tmp168_);
	_g_object_unref0 (self->priv->next_button);
	self->priv->next_button = _tmp169_;
	_tmp170_ = gtk_tool_item_new ();
	_tmp171_ = g_object_ref_sink (_tmp170_);
	_g_object_unref0 (tool_item);
	tool_item = _tmp171_;
	_tmp172_ = tool_item;
	_tmp173_ = self->priv->next_button;
	g_object_set ((GtkContainer*) _tmp172_, "child", (GtkWidget*) _tmp173_, NULL);
	_tmp174_ = tool_item;
	gtk_widget_set_margin_left ((GtkWidget*) _tmp174_, 5);
	_tmp175_ = tool_item;
	gtk_toolbar_insert (toolbar, _tmp175_, 3);
	_tmp176_ = self->priv->next_button;
	_tmp177_ = gtk_widget_get_style_context ((GtkWidget*) _tmp176_);
	gtk_style_context_add_class (_tmp177_, "boxes-continue");
	_tmp178_ = self->priv->next_button;
	g_signal_connect_object (_tmp178_, "clicked", (GCallback) ___lambda98__gtk_button_clicked, self, 0);
	_tmp179_ = hbox;
	gtk_widget_show_all ((GtkWidget*) _tmp179_);
	_tmp180_ = self->priv->notebook;
	gtk_widget_show_all ((GtkWidget*) _tmp180_);
	_g_object_unref0 (cancel);
	_g_object_unref0 (tool_item);
	_g_object_unref0 (toolbar);
	_g_object_unref0 (prep_vbox);
	_g_object_unref0 (vbox);
	_g_object_unref0 (label);
	_g_object_unref0 (hbox);
}


void boxes_wizard_open_with_uri (BoxesWizard* self, const gchar* uri, gboolean skip_review_for_live) {
	BoxesApp* _tmp0_;
	gboolean _tmp1_;
	BoxesWizardSource* _tmp2_;
	BoxesWizardSource* _tmp3_;
	const gchar* _tmp4_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (uri != NULL);
	_tmp0_ = self->priv->app;
	boxes_ui_set_ui_state ((BoxesUI*) _tmp0_, BOXES_UI_STATE_WIZARD);
	_tmp1_ = skip_review_for_live;
	self->priv->skip_review_for_live = _tmp1_;
	boxes_wizard_set_page (self, BOXES_WIZARD_PAGE_SOURCE);
	_tmp2_ = self->priv->wizard_source;
	boxes_wizard_source_set_page (_tmp2_, BOXES_SOURCE_PAGE_URL);
	_tmp3_ = self->priv->wizard_source;
	_tmp4_ = uri;
	boxes_wizard_source_set_uri (_tmp3_, _tmp4_);
	boxes_wizard_set_page (self, BOXES_WIZARD_PAGE_PREPARATION);
}


static void boxes_wizard_real_ui_state_changed (BoxesUI* base) {
	BoxesWizard * self;
	BoxesUIState _tmp0_;
	BoxesUIState _tmp1_;
	self = (BoxesWizard*) base;
	_tmp0_ = boxes_ui_get_ui_state ((BoxesUI*) self);
	_tmp1_ = _tmp0_;
	switch (_tmp1_) {
		case BOXES_UI_STATE_WIZARD:
		{
			boxes_wizard_set_page (self, BOXES_WIZARD_PAGE_INTRODUCTION);
			break;
		}
		default:
		break;
	}
}


static ClutterActor* boxes_wizard_real_get_actor (BoxesUI* base) {
	ClutterActor* result;
	BoxesWizard* self;
	GtkClutterActor* _tmp0_;
	self = (BoxesWizard*) base;
	_tmp0_ = self->priv->gtk_actor;
	result = (ClutterActor*) _tmp0_;
	return result;
}


static BoxesWizardPage boxes_wizard_get_page (BoxesWizard* self) {
	BoxesWizardPage result;
	BoxesWizardPage _tmp0_;
	g_return_val_if_fail (self != NULL, 0);
	_tmp0_ = self->priv->_page;
	result = _tmp0_;
	return result;
}


static void _boxes_wizard_page_____lambda91_ (BoxesWizard* self, GObject* source, GAsyncResult* _result_) {
	GAsyncResult* _tmp0_;
	gboolean _tmp1_ = FALSE;
	g_return_if_fail (_result_ != NULL);
	_tmp0_ = _result_;
	_tmp1_ = boxes_wizard_create_finish (self, _tmp0_);
	if (_tmp1_) {
		BoxesApp* _tmp2_;
		_tmp2_ = self->priv->app;
		boxes_ui_set_ui_state ((BoxesUI*) _tmp2_, BOXES_UI_STATE_COLLECTION);
	} else {
		BoxesApp* _tmp3_;
		BoxesNotificationbar* _tmp4_;
		const gchar* _tmp5_ = NULL;
		_tmp3_ = self->priv->app;
		_tmp4_ = _tmp3_->notificationbar;
		_tmp5_ = _ ("Box creation failed!");
		boxes_notificationbar_display_error (_tmp4_, _tmp5_);
	}
}


static void __boxes_wizard_page_____lambda91__gasync_ready_callback (GObject* source_object, GAsyncResult* res, gpointer self) {
	_boxes_wizard_page_____lambda91_ (self, source_object, res);
	g_object_unref (self);
}


static gint g_ptr_array_get_length (GPtrArray* self) {
	gint result;
	guint _tmp0_;
	g_return_val_if_fail (self != NULL, 0);
	_tmp0_ = self->len;
	result = (gint) _tmp0_;
	return result;
}


static void g_ptr_array_set_length (GPtrArray* self, gint value) {
	gint _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	g_ptr_array_set_size (self, _tmp0_);
}


static void boxes_wizard_set_page (BoxesWizard* self, BoxesWizardPage value) {
	BoxesWizardPage _tmp0_;
	BoxesWizardPage _tmp1_;
	BoxesWizardPage _tmp2_;
	gboolean forwards;
	BoxesWizardPage _tmp3_;
	gboolean _tmp10_;
	BoxesWizardPage _tmp15_;
	gboolean _tmp16_ = FALSE;
	BoxesWizardPage _tmp17_;
	GtkNotebook* _tmp18_;
	BoxesWizardPage _tmp19_;
	GPtrArray* _tmp32_;
	BoxesWizardPage _tmp33_;
	BoxesWizardPage _tmp34_;
	gconstpointer _tmp35_ = NULL;
	GdkColor _tmp36_ = {0};
	GtkButton* _tmp37_;
	BoxesWizardPage _tmp38_;
	BoxesWizardPage _tmp39_;
	const gchar* _tmp40_ = NULL;
	BoxesWizardPage _tmp41_;
	BoxesWizardPage _tmp42_;
	GtkButton* _tmp45_;
	const gchar* _tmp46_;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = boxes_wizard_get_page (self);
	_tmp2_ = _tmp1_;
	forwards = _tmp0_ > _tmp2_;
	_tmp3_ = value;
	switch (_tmp3_) {
		case BOXES_WIZARD_PAGE_INTRODUCTION:
		{
			GtkButton* _tmp4_;
			GtkButton* _tmp5_;
			_tmp4_ = self->priv->next_button;
			gtk_widget_set_sensitive ((GtkWidget*) _tmp4_, TRUE);
			_tmp5_ = self->priv->next_button;
			gtk_widget_grab_focus ((GtkWidget*) _tmp5_);
			break;
		}
		case BOXES_WIZARD_PAGE_SOURCE:
		{
			BoxesWizardSource* _tmp6_;
			BoxesWizardSource* _tmp7_;
			BoxesSourcePage _tmp8_;
			BoxesSourcePage _tmp9_;
			_tmp6_ = self->priv->wizard_source;
			_tmp7_ = self->priv->wizard_source;
			_tmp8_ = boxes_wizard_source_get_page (_tmp7_);
			_tmp9_ = _tmp8_;
			boxes_wizard_source_set_page (_tmp6_, _tmp9_);
			break;
		}
		default:
		break;
	}
	_tmp10_ = forwards;
	if (_tmp10_) {
		BoxesWizardPage _tmp11_;
		_tmp11_ = value;
		switch (_tmp11_) {
			case BOXES_WIZARD_PAGE_PREPARATION:
			{
				gboolean _tmp12_ = FALSE;
				_tmp12_ = boxes_wizard_prepare (self);
				if (!_tmp12_) {
					return;
				}
				break;
			}
			case BOXES_WIZARD_PAGE_SETUP:
			{
				gboolean _tmp13_ = FALSE;
				_tmp13_ = boxes_wizard_setup (self);
				if (!_tmp13_) {
					return;
				}
				break;
			}
			case BOXES_WIZARD_PAGE_REVIEW:
			{
				gboolean _tmp14_ = FALSE;
				_tmp14_ = boxes_wizard_review (self);
				if (!_tmp14_) {
					return;
				}
				break;
			}
			case BOXES_WIZARD_PAGE_LAST:
			{
				self->priv->skip_review_for_live = FALSE;
				boxes_wizard_create (self, __boxes_wizard_page_____lambda91__gasync_ready_callback, g_object_ref (self));
				return;
			}
			default:
			break;
		}
	}
	_tmp15_ = value;
	_tmp16_ = boxes_wizard_skip_page (self, _tmp15_);
	if (_tmp16_) {
		return;
	}
	_tmp17_ = value;
	self->priv->_page = _tmp17_;
	_tmp18_ = self->priv->notebook;
	_tmp19_ = value;
	gtk_notebook_set_current_page (_tmp18_, (gint) _tmp19_);
	{
		gint i;
		i = 0;
		{
			gboolean _tmp20_;
			_tmp20_ = TRUE;
			while (TRUE) {
				gboolean _tmp21_;
				gint _tmp23_;
				GPtrArray* _tmp24_;
				gint _tmp25_;
				gint _tmp26_;
				GPtrArray* _tmp27_;
				gint _tmp28_;
				gconstpointer _tmp29_ = NULL;
				GtkLabel* _tmp30_;
				GtkLabel* label;
				GtkLabel* _tmp31_;
				_tmp21_ = _tmp20_;
				if (!_tmp21_) {
					gint _tmp22_;
					_tmp22_ = i;
					i = _tmp22_ + 1;
				}
				_tmp20_ = FALSE;
				_tmp23_ = i;
				_tmp24_ = self->priv->steps;
				_tmp25_ = g_ptr_array_get_length (_tmp24_);
				_tmp26_ = _tmp25_;
				if (!(_tmp23_ < _tmp26_)) {
					break;
				}
				_tmp27_ = self->priv->steps;
				_tmp28_ = i;
				_tmp29_ = g_ptr_array_index (_tmp27_, (guint) _tmp28_);
				_tmp30_ = _g_object_ref0 ((GtkLabel*) _tmp29_);
				label = _tmp30_;
				_tmp31_ = label;
				gtk_widget_modify_fg ((GtkWidget*) _tmp31_, GTK_STATE_NORMAL, NULL);
				_g_object_unref0 (label);
			}
		}
	}
	_tmp32_ = self->priv->steps;
	_tmp33_ = boxes_wizard_get_page (self);
	_tmp34_ = _tmp33_;
	_tmp35_ = g_ptr_array_index (_tmp32_, (guint) _tmp34_);
	boxes_get_color ("white", &_tmp36_);
	gtk_widget_modify_fg ((GtkWidget*) ((GtkLabel*) _tmp35_), GTK_STATE_NORMAL, &_tmp36_);
	_tmp37_ = self->priv->back_button;
	_tmp38_ = boxes_wizard_get_page (self);
	_tmp39_ = _tmp38_;
	gtk_widget_set_sensitive ((GtkWidget*) _tmp37_, _tmp39_ != BOXES_WIZARD_PAGE_INTRODUCTION);
	_tmp41_ = boxes_wizard_get_page (self);
	_tmp42_ = _tmp41_;
	if (_tmp42_ != BOXES_WIZARD_PAGE_REVIEW) {
		const gchar* _tmp43_ = NULL;
		_tmp43_ = _ ("C_ontinue");
		_tmp40_ = _tmp43_;
	} else {
		const gchar* _tmp44_ = NULL;
		_tmp44_ = _ ("C_reate");
		_tmp40_ = _tmp44_;
	}
	_tmp45_ = self->priv->next_button;
	_tmp46_ = _tmp40_;
	gtk_button_set_label (_tmp45_, _tmp46_);
}


static void _g_object_unref0_ (gpointer var) {
	(var == NULL) ? NULL : (var = (g_object_unref (var), NULL));
}


static GObject * boxes_wizard_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties) {
	GObject * obj;
	GObjectClass * parent_class;
	BoxesWizard * self;
	GPtrArray* _tmp0_;
	GPtrArray* _tmp1_;
	BoxesMediaManager* _tmp2_;
	parent_class = G_OBJECT_CLASS (boxes_wizard_parent_class);
	obj = parent_class->constructor (type, n_construct_properties, construct_properties);
	self = BOXES_WIZARD (obj);
	_tmp0_ = g_ptr_array_new_with_free_func (_g_object_unref0_);
	_g_ptr_array_unref0 (self->priv->steps);
	self->priv->steps = _tmp0_;
	_tmp1_ = self->priv->steps;
	g_ptr_array_set_length (_tmp1_, (gint) BOXES_WIZARD_PAGE_LAST);
	_tmp2_ = boxes_media_manager_new ();
	_g_object_unref0 (self->priv->media_manager);
	self->priv->media_manager = _tmp2_;
	return obj;
}


static BoxesWizardWizardSummary* boxes_wizard_wizard_summary_construct (GType object_type) {
	BoxesWizardWizardSummary * self = NULL;
	GtkTable* _tmp0_;
	GtkTable* _tmp1_;
	GtkTable* _tmp2_;
	GtkTable* _tmp3_;
	self = (BoxesWizardWizardSummary*) g_object_new (object_type, NULL);
	_tmp0_ = (GtkTable*) gtk_table_new ((guint) 1, (guint) 2, FALSE);
	_tmp1_ = g_object_ref_sink (_tmp0_);
	_g_object_unref0 (self->priv->table);
	self->priv->table = _tmp1_;
	_tmp2_ = self->priv->table;
	g_object_set (_tmp2_, "row-spacing", (guint) 10, NULL);
	_tmp3_ = self->priv->table;
	g_object_set (_tmp3_, "column-spacing", (guint) 20, NULL);
	boxes_wizard_wizard_summary_clear (self);
	return self;
}


static BoxesWizardWizardSummary* boxes_wizard_wizard_summary_new (void) {
	return boxes_wizard_wizard_summary_construct (BOXES_WIZARD_TYPE_WIZARD_SUMMARY);
}


static void boxes_wizard_wizard_summary_add_property (BoxesWizardWizardSummary* self, const gchar* name, const gchar* value) {
	const gchar* _tmp0_;
	const gchar* _tmp1_;
	GtkLabel* _tmp2_;
	GtkLabel* _tmp3_;
	GtkLabel* label_name;
	GtkLabel* _tmp4_;
	GdkColor _tmp5_ = {0};
	GtkLabel* _tmp6_;
	GtkTable* _tmp7_;
	GtkLabel* _tmp8_;
	guint _tmp9_;
	guint _tmp10_;
	const gchar* _tmp11_;
	GtkLabel* _tmp12_;
	GtkLabel* _tmp13_;
	GtkLabel* label_value;
	GtkLabel* _tmp14_;
	GdkColor _tmp15_ = {0};
	GtkLabel* _tmp16_;
	GtkTable* _tmp17_;
	GtkLabel* _tmp18_;
	guint _tmp19_;
	guint _tmp20_;
	guint _tmp21_;
	GtkTable* _tmp22_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (name != NULL);
	_tmp0_ = value;
	if (_tmp0_ == NULL) {
		return;
	}
	_tmp1_ = name;
	_tmp2_ = (GtkLabel*) gtk_label_new (_tmp1_);
	_tmp3_ = g_object_ref_sink (_tmp2_);
	label_name = _tmp3_;
	_tmp4_ = label_name;
	boxes_get_color ("grey", &_tmp5_);
	gtk_widget_modify_fg ((GtkWidget*) _tmp4_, GTK_STATE_NORMAL, &_tmp5_);
	_tmp6_ = label_name;
	g_object_set ((GtkMisc*) _tmp6_, "xalign", 1.0f, NULL);
	_tmp7_ = self->priv->table;
	_tmp8_ = label_name;
	_tmp9_ = self->priv->current_row;
	_tmp10_ = self->priv->current_row;
	gtk_table_attach_defaults (_tmp7_, (GtkWidget*) _tmp8_, (guint) 0, (guint) 1, _tmp9_, _tmp10_ + 1);
	_tmp11_ = value;
	_tmp12_ = (GtkLabel*) gtk_label_new (_tmp11_);
	_tmp13_ = g_object_ref_sink (_tmp12_);
	label_value = _tmp13_;
	_tmp14_ = label_value;
	boxes_get_color ("white", &_tmp15_);
	gtk_widget_modify_fg ((GtkWidget*) _tmp14_, GTK_STATE_NORMAL, &_tmp15_);
	_tmp16_ = label_value;
	g_object_set ((GtkMisc*) _tmp16_, "xalign", 0.0f, NULL);
	_tmp17_ = self->priv->table;
	_tmp18_ = label_value;
	_tmp19_ = self->priv->current_row;
	_tmp20_ = self->priv->current_row;
	gtk_table_attach_defaults (_tmp17_, (GtkWidget*) _tmp18_, (guint) 1, (guint) 2, _tmp19_, _tmp20_ + 1);
	_tmp21_ = self->priv->current_row;
	self->priv->current_row = _tmp21_ + 1;
	_tmp22_ = self->priv->table;
	gtk_widget_show_all ((GtkWidget*) _tmp22_);
	_g_object_unref0 (label_value);
	_g_object_unref0 (label_name);
}


static void boxes_wizard_wizard_summary_clear (BoxesWizardWizardSummary* self) {
	GtkTable* _tmp0_;
	GList* _tmp1_ = NULL;
	GtkTable* _tmp4_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->table;
	_tmp1_ = gtk_container_get_children ((GtkContainer*) _tmp0_);
	{
		GList* child_collection = NULL;
		GList* child_it = NULL;
		child_collection = _tmp1_;
		for (child_it = child_collection; child_it != NULL; child_it = child_it->next) {
			GtkWidget* child = NULL;
			child = (GtkWidget*) child_it->data;
			{
				GtkTable* _tmp2_;
				GtkWidget* _tmp3_;
				_tmp2_ = self->priv->table;
				_tmp3_ = child;
				gtk_container_remove ((GtkContainer*) _tmp2_, _tmp3_);
			}
		}
		_g_list_free0 (child_collection);
	}
	_tmp4_ = self->priv->table;
	gtk_table_resize (_tmp4_, (guint) 1, (guint) 2);
	self->priv->current_row = (guint) 0;
}


static GtkWidget* boxes_wizard_wizard_summary_get_widget (BoxesWizardWizardSummary* self) {
	GtkWidget* result;
	GtkTable* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->table;
	result = (GtkWidget*) _tmp0_;
	return result;
}


static void boxes_wizard_wizard_summary_class_init (BoxesWizardWizardSummaryClass * klass) {
	boxes_wizard_wizard_summary_parent_class = g_type_class_peek_parent (klass);
	g_type_class_add_private (klass, sizeof (BoxesWizardWizardSummaryPrivate));
	G_OBJECT_CLASS (klass)->get_property = _vala_boxes_wizard_wizard_summary_get_property;
	G_OBJECT_CLASS (klass)->finalize = boxes_wizard_wizard_summary_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), BOXES_WIZARD_WIZARD_SUMMARY_WIDGET, g_param_spec_object ("widget", "widget", "widget", GTK_TYPE_WIDGET, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
}


static void boxes_wizard_wizard_summary_instance_init (BoxesWizardWizardSummary * self) {
	self->priv = BOXES_WIZARD_WIZARD_SUMMARY_GET_PRIVATE (self);
}


static void boxes_wizard_wizard_summary_finalize (GObject* obj) {
	BoxesWizardWizardSummary * self;
	self = BOXES_WIZARD_WIZARD_SUMMARY (obj);
	_g_object_unref0 (self->priv->table);
	G_OBJECT_CLASS (boxes_wizard_wizard_summary_parent_class)->finalize (obj);
}


static GType boxes_wizard_wizard_summary_get_type (void) {
	static volatile gsize boxes_wizard_wizard_summary_type_id__volatile = 0;
	if (g_once_init_enter (&boxes_wizard_wizard_summary_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (BoxesWizardWizardSummaryClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) boxes_wizard_wizard_summary_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (BoxesWizardWizardSummary), 0, (GInstanceInitFunc) boxes_wizard_wizard_summary_instance_init, NULL };
		GType boxes_wizard_wizard_summary_type_id;
		boxes_wizard_wizard_summary_type_id = g_type_register_static (G_TYPE_OBJECT, "BoxesWizardWizardSummary", &g_define_type_info, 0);
		g_once_init_leave (&boxes_wizard_wizard_summary_type_id__volatile, boxes_wizard_wizard_summary_type_id);
	}
	return boxes_wizard_wizard_summary_type_id__volatile;
}


static void _vala_boxes_wizard_wizard_summary_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
	BoxesWizardWizardSummary * self;
	self = BOXES_WIZARD_WIZARD_SUMMARY (object);
	switch (property_id) {
		case BOXES_WIZARD_WIZARD_SUMMARY_WIDGET:
		g_value_set_object (value, boxes_wizard_wizard_summary_get_widget (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


static void boxes_wizard_class_init (BoxesWizardClass * klass) {
	boxes_wizard_parent_class = g_type_class_peek_parent (klass);
	g_type_class_add_private (klass, sizeof (BoxesWizardPrivate));
	BOXES_UI_CLASS (klass)->ui_state_changed = boxes_wizard_real_ui_state_changed;
	BOXES_UI_CLASS (klass)->get_actor = boxes_wizard_real_get_actor;
	G_OBJECT_CLASS (klass)->get_property = _vala_boxes_wizard_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_boxes_wizard_set_property;
	G_OBJECT_CLASS (klass)->constructor = boxes_wizard_constructor;
	G_OBJECT_CLASS (klass)->finalize = boxes_wizard_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), BOXES_WIZARD_ACTOR, g_param_spec_object ("actor", "actor", "actor", clutter_actor_get_type (), G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
}


static void boxes_wizard_instance_init (BoxesWizard * self) {
	self->priv = BOXES_WIZARD_GET_PRIVATE (self);
}


static void boxes_wizard_finalize (GObject* obj) {
	BoxesWizard * self;
	self = BOXES_WIZARD (obj);
	_g_object_unref0 (self->priv->gtk_actor);
	_g_object_unref0 (self->priv->app);
	_g_ptr_array_unref0 (self->priv->steps);
	_g_object_unref0 (self->priv->notebook);
	_g_object_unref0 (self->priv->back_button);
	_g_object_unref0 (self->priv->next_button);
	_g_object_unref0 (self->priv->wizard_source);
	_g_object_unref0 (self->priv->summary);
	_g_object_unref0 (self->priv->source);
	_g_object_unref0 (self->priv->prep_progress);
	_g_object_unref0 (self->priv->setup_vbox);
	_g_object_unref0 (self->priv->review_label);
	_g_object_unref0 (self->priv->installer_image);
	_g_object_unref0 (self->priv->media_manager);
	_boxes_vm_creator_unref0 (self->priv->vm_creator);
	_g_object_unref0 (self->priv->install_media);
	G_OBJECT_CLASS (boxes_wizard_parent_class)->finalize (obj);
}


GType boxes_wizard_get_type (void) {
	static volatile gsize boxes_wizard_type_id__volatile = 0;
	if (g_once_init_enter (&boxes_wizard_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (BoxesWizardClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) boxes_wizard_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (BoxesWizard), 0, (GInstanceInitFunc) boxes_wizard_instance_init, NULL };
		GType boxes_wizard_type_id;
		boxes_wizard_type_id = g_type_register_static (BOXES_TYPE_UI, "BoxesWizard", &g_define_type_info, 0);
		g_once_init_leave (&boxes_wizard_type_id__volatile, boxes_wizard_type_id);
	}
	return boxes_wizard_type_id__volatile;
}


static void _vala_boxes_wizard_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
	BoxesWizard * self;
	self = BOXES_WIZARD (object);
	switch (property_id) {
		case BOXES_WIZARD_ACTOR:
		g_value_set_object (value, boxes_ui_get_actor ((BoxesUI*) self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


static void _vala_boxes_wizard_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
	BoxesWizard * self;
	self = BOXES_WIZARD (object);
	switch (property_id) {
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}



