/* util-app.c generated by valac 0.17.7, the Vala compiler
 * generated from util-app.vala, do not modify */

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

#include <glib.h>
#include <glib-object.h>
#include <gdk/gdk.h>
#include <clutter/clutter.h>
#include <float.h>
#include <math.h>
#include <gtk/gtk.h>
#include <stdlib.h>
#include <string.h>
#include <libcommon.h>
#include <libxml/parser.h>
#include <libxml/tree.h>
#include <libxml/xpath.h>
#include <clutter-gtk/clutter-gtk.h>
#include <gio/gio.h>
#include <osinfo/osinfo.h>
#include <gdk-pixbuf/gdk-pixbuf.h>
#include <libvirt-gobject/libvirt-gobject.h>
#include <config.h>
#include <glib/gi18n-lib.h>
#include <cairo.h>
#include <libgd/gd.h>

#define _gtk_widget_path_unref0(var) ((var == NULL) ? NULL : (var = (gtk_widget_path_unref (var), NULL)))
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
typedef struct _Block37Data Block37Data;
#define _gtk_tree_path_free0(var) ((var == NULL) ? NULL : (var = (gtk_tree_path_free (var), NULL)))
typedef struct _Block38Data Block38Data;
#define _xmlFreeParserCtxt0(var) ((var == NULL) ? NULL : (var = (xmlFreeParserCtxt (var), NULL)))
#define _g_free0(var) (var = (g_free (var), NULL))
#define _xmlXPathFreeContext0(var) ((var == NULL) ? NULL : (var = (xmlXPathFreeContext (var), NULL)))
typedef struct _Block39Data Block39Data;

#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;

#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;
typedef struct _BoxesUIPrivate BoxesUIPrivate;

#define BOXES_TYPE_UI_STATE (boxes_ui_state_get_type ())
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_SEARCHBAR (boxes_searchbar_get_type ())
#define BOXES_SEARCHBAR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_SEARCHBAR, BoxesSearchbar))
#define BOXES_SEARCHBAR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_SEARCHBAR, BoxesSearchbarClass))
#define BOXES_IS_SEARCHBAR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_SEARCHBAR))
#define BOXES_IS_SEARCHBAR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_SEARCHBAR))
#define BOXES_SEARCHBAR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_SEARCHBAR, BoxesSearchbarClass))

typedef struct _BoxesSearchbar BoxesSearchbar;
typedef struct _BoxesSearchbarClass BoxesSearchbarClass;

#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_REVEALER (boxes_revealer_get_type ())
#define BOXES_REVEALER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_REVEALER, BoxesRevealer))
#define BOXES_REVEALER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_REVEALER, BoxesRevealerClass))
#define BOXES_IS_REVEALER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_REVEALER))
#define BOXES_IS_REVEALER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_REVEALER))
#define BOXES_REVEALER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_REVEALER, BoxesRevealerClass))

typedef struct _BoxesRevealer BoxesRevealer;
typedef struct _BoxesRevealerClass BoxesRevealerClass;

#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_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;

#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 BOXES_TYPE_COLLECTION_FILTER (boxes_collection_filter_get_type ())
#define BOXES_COLLECTION_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_COLLECTION_FILTER, BoxesCollectionFilter))
#define BOXES_COLLECTION_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_COLLECTION_FILTER, BoxesCollectionFilterClass))
#define BOXES_IS_COLLECTION_FILTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_COLLECTION_FILTER))
#define BOXES_IS_COLLECTION_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_COLLECTION_FILTER))
#define BOXES_COLLECTION_FILTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_COLLECTION_FILTER, BoxesCollectionFilterClass))

typedef struct _BoxesCollectionFilter BoxesCollectionFilter;
typedef struct _BoxesCollectionFilterClass BoxesCollectionFilterClass;

#define BOXES_TYPE_COLLECTION_VIEW (boxes_collection_view_get_type ())
#define BOXES_COLLECTION_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_COLLECTION_VIEW, BoxesCollectionView))
#define BOXES_COLLECTION_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_COLLECTION_VIEW, BoxesCollectionViewClass))
#define BOXES_IS_COLLECTION_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_COLLECTION_VIEW))
#define BOXES_IS_COLLECTION_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_COLLECTION_VIEW))
#define BOXES_COLLECTION_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_COLLECTION_VIEW, BoxesCollectionViewClass))

typedef struct _BoxesCollectionView BoxesCollectionView;
typedef struct _BoxesCollectionViewClass BoxesCollectionViewClass;
#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
typedef struct _BoxesCheckSelinuxContextDefaultData BoxesCheckSelinuxContextDefaultData;
typedef struct _BoxesCheckLibvirtKvmData BoxesCheckLibvirtKvmData;
typedef struct _BoxesCheckCpuVtCapabilityData BoxesCheckCpuVtCapabilityData;
typedef struct _BoxesCheckModuleKvmLoadedData BoxesCheckModuleKvmLoadedData;
typedef struct _Block40Data Block40Data;

struct _Block37Data {
	int _ref_count_;
	GtkTreeView* tree_view;
};

struct _Block38Data {
	int _ref_count_;
	GtkIconView* icon_view;
};

struct _Block39Data {
	int _ref_count_;
	ClutterActor* actor;
};

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 _BoxesApp {
	BoxesUI parent_instance;
	BoxesAppPrivate * priv;
	GtkApplicationWindow* window;
	GtkNotebook* notebook;
	GtkClutterEmbed* embed;
	ClutterStage* stage;
	ClutterBinLayout* stage_bin;
	ClutterActor* overlay_bin_actor;
	ClutterBinLayout* overlay_bin;
	BoxesCollectionItem* current_item;
	BoxesSearchbar* searchbar;
	BoxesTopbar* topbar;
	BoxesNotificationbar* notificationbar;
	BoxesRevealer* sidebar_revealer;
	BoxesRevealer* searchbar_revealer;
	BoxesSidebar* sidebar;
	BoxesSelectionbar* selectionbar;
	guint duration;
	GSettings* settings;
	BoxesWizard* wizard;
	BoxesProperties* properties;
	BoxesDisplayPage* display_page;
	BoxesCollection* collection;
	BoxesCollectionFilter* filter;
	GSimpleAction* action_properties;
	GSimpleAction* action_fullscreen;
	GSimpleAction* action_shutdown;
	BoxesCollectionView* view;
};

struct _BoxesAppClass {
	BoxesUIClass parent_class;
};

typedef void (*BoxesActorFunc) (ClutterActor* actor, void* user_data);
struct _BoxesCheckSelinuxContextDefaultData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GSimpleAsyncResult* _async_result;
	gchar* diagnosis;
	gboolean result;
	gchar* _tmp0_;
	gchar* standard_output;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	gchar* _tmp5_;
	gchar** _tmp6_;
	gchar** argv;
	gint argv_length1;
	gint _argv_size_;
	gchar** _tmp7_;
	gint _tmp7__length1;
	gchar* _tmp8_;
	const gchar* _tmp9_;
	gint _tmp10_;
	gint _tmp11_;
	gchar** _tmp12_;
	gint _tmp12__length1;
	gchar* _tmp13_;
	gchar* _tmp14_;
	const gchar* _tmp15_;
	gchar** _tmp16_;
	gint _tmp16__length1;
	gchar* _tmp17_;
	gchar* _tmp18_;
	gchar* _tmp19_;
	GError* _error_;
	const gchar* _tmp20_;
	gchar* _tmp21_;
	GError* _vala1__error_;
	GError* _tmp22_;
	const gchar* _tmp23_;
	GError * _inner_error_;
};

struct _BoxesCheckLibvirtKvmData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GSimpleAsyncResult* _async_result;
	gboolean result;
	gchar* standard_output;
	gchar* _tmp0_;
	gchar* _tmp1_;
	gchar** _tmp2_;
	gchar** argv;
	gint argv_length1;
	gint _argv_size_;
	gchar** _tmp3_;
	gint _tmp3__length1;
	gchar* _tmp4_;
	const gchar* _tmp5_;
	gchar* _tmp6_;
	gchar* kvm;
	const gchar* _tmp7_;
	gint _tmp8_;
	gint _tmp9_;
	GError* _error_;
	GError* _vala1__error_;
	GError* _tmp10_;
	const gchar* _tmp11_;
	GError * _inner_error_;
};

struct _BoxesCheckCpuVtCapabilityData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GSimpleAsyncResult* _async_result;
	gboolean result;
	gboolean _result_;
	GFile* _tmp0_;
	GFile* file;
	GFile* _tmp1_;
	GFileInputStream* _tmp2_;
	GFileInputStream* _tmp3_;
	GFileInputStream* _tmp4_;
	GDataInputStream* _tmp5_;
	GDataInputStream* _tmp6_;
	GDataInputStream* stream;
	gchar* line;
	GDataInputStream* _tmp7_;
	gchar* _tmp8_;
	gchar* _tmp9_;
	const gchar* _tmp10_;
	const gchar* _tmp11_;
	gboolean _tmp12_;
	gboolean _tmp13_;
	GError* _error_;
	const gchar* _tmp14_;
	gboolean _tmp15_;
	gchar* _tmp16_;
	gchar* _tmp17_;
	gchar* _tmp18_;
	gchar* _tmp19_;
	GError * _inner_error_;
};

struct _BoxesCheckModuleKvmLoadedData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GSimpleAsyncResult* _async_result;
	gboolean result;
	gboolean _result_;
	GFile* _tmp0_;
	GFile* file;
	GFile* _tmp1_;
	GFileInputStream* _tmp2_;
	GFileInputStream* _tmp3_;
	GFileInputStream* _tmp4_;
	GDataInputStream* _tmp5_;
	GDataInputStream* _tmp6_;
	GDataInputStream* stream;
	gchar* line;
	GDataInputStream* _tmp7_;
	gchar* _tmp8_;
	gchar* _tmp9_;
	const gchar* _tmp10_;
	const gchar* _tmp11_;
	gboolean _tmp12_;
	gboolean _tmp13_;
	GError* _error_;
	const gchar* _tmp14_;
	gboolean _tmp15_;
	gchar* _tmp16_;
	gchar* _tmp17_;
	gchar* _tmp18_;
	gchar* _tmp19_;
	GError * _inner_error_;
};

struct _Block40Data {
	int _ref_count_;
	GtkWidget* widget;
};


extern BoxesApp* boxes_app_app;

void boxes_gdk_rgba_to_clutter_color (GdkRGBA* gdk_rgba, ClutterColor* result);
void boxes_get_boxes_bg_color (GdkRGBA* result);
void boxes_get_color (const gchar* desc, GdkColor* result);
void boxes_tree_view_activate_on_single_click (GtkTreeView* tree_view, gboolean should_activate);
static Block37Data* block37_data_ref (Block37Data* _data37_);
static void block37_data_unref (void * _userdata_);
static gboolean ____lambda45_ (Block37Data* _data37_, GtkWidget* w, GdkEventButton* event);
static gboolean _____lambda45__gtk_widget_button_press_event (GtkWidget* _sender, GdkEventButton* event, gpointer self);
void boxes_icon_view_activate_on_single_click (GtkIconView* icon_view, gboolean should_activate);
static Block38Data* block38_data_ref (Block38Data* _data38_);
static void block38_data_unref (void * _userdata_);
static gboolean ____lambda10_ (Block38Data* _data38_, GtkWidget* w, GdkEventButton* event);
static gboolean _____lambda10__gtk_widget_button_release_event (GtkWidget* _sender, GdkEventButton* event, gpointer self);
gchar* boxes_extract_xpath (const gchar* xmldoc, const gchar* xpath, gboolean required, GError** error);
void boxes_fade_actor (ClutterActor* actor, guint opacity);
static Block39Data* block39_data_ref (Block39Data* _data39_);
static void block39_data_unref (void * _userdata_);
GType boxes_ui_get_type (void) G_GNUC_CONST;
GType boxes_app_get_type (void) G_GNUC_CONST;
GType boxes_ui_state_get_type (void) G_GNUC_CONST;
GType boxes_collection_item_get_type (void) G_GNUC_CONST;
GType boxes_searchbar_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_revealer_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_wizard_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;
GType boxes_collection_filter_get_type (void) G_GNUC_CONST;
GType boxes_collection_view_get_type (void) G_GNUC_CONST;
static void __lambda89_ (Block39Data* _data39_);
static void ___lambda89__clutter_timeline_completed (ClutterTimeline* _sender, gpointer self);
void boxes_actor_add (ClutterActor* actor, ClutterActor* container);
void boxes_actor_remove (ClutterActor* actor);
OsinfoDevice* boxes_get_os_device_by_prop (OsinfoOs* os, const gchar* prop_name, const gchar* prop_value);
GtkImage* boxes_get_os_logo (OsinfoOs* os, gint size);
void boxes_fetch_os_logo (GtkImage* image, OsinfoOs* os, gint size);
gchar* boxes_get_logo_path (OsinfoOs* os, gchar** extensions, int extensions_length1);
GVirStoragePool* boxes_get_storage_pool (GVirConnection* connection);
GVirStorageVol* boxes_get_storage_volume (GVirConnection* connection, GVirDomain* domain);
static void boxes_check_selinux_context_default_data_free (gpointer _data);
void boxes_check_selinux_context_default (GAsyncReadyCallback _callback_, gpointer _user_data_);
gboolean boxes_check_selinux_context_default_finish (GAsyncResult* _res_, gchar** diagnosis);
static gboolean boxes_check_selinux_context_default_co (BoxesCheckSelinuxContextDefaultData* _data_);
static void boxes_check_selinux_context_default_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
static void boxes_check_libvirt_kvm_data_free (gpointer _data);
void boxes_check_libvirt_kvm (GAsyncReadyCallback _callback_, gpointer _user_data_);
gboolean boxes_check_libvirt_kvm_finish (GAsyncResult* _res_);
static gboolean boxes_check_libvirt_kvm_co (BoxesCheckLibvirtKvmData* _data_);
static void boxes_check_libvirt_kvm_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
static void boxes_check_cpu_vt_capability_data_free (gpointer _data);
void boxes_check_cpu_vt_capability (GAsyncReadyCallback _callback_, gpointer _user_data_);
gboolean boxes_check_cpu_vt_capability_finish (GAsyncResult* _res_);
static gboolean boxes_check_cpu_vt_capability_co (BoxesCheckCpuVtCapabilityData* _data_);
static void boxes_check_cpu_vt_capability_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
static void boxes_check_module_kvm_loaded_data_free (gpointer _data);
void boxes_check_module_kvm_loaded (GAsyncReadyCallback _callback_, gpointer _user_data_);
gboolean boxes_check_module_kvm_loaded_finish (GAsyncResult* _res_);
static gboolean boxes_check_module_kvm_loaded_co (BoxesCheckModuleKvmLoadedData* _data_);
static void boxes_check_module_kvm_loaded_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
GdkPixbuf* boxes_remove_alpha (GdkPixbuf* pixbuf);
static guint8* _vala_array_dup6 (guint8* self, int length);
void boxes_draw_as_css_box (GtkWidget* widget);
static Block40Data* block40_data_ref (Block40Data* _data40_);
static void block40_data_unref (void * _userdata_);
static gboolean __lambda111_ (Block40Data* _data40_, cairo_t* cr);
static gboolean ___lambda111__gtk_widget_draw (GtkWidget* _sender, cairo_t* cr, gpointer self);
void uuid_generate (guchar* uuid);
void uuid_unparse (guchar* uuid, guchar* output);
gchar* boxes_uuid_generate (void);
GIcon* boxes_create_symbolic_emblem (const gchar* name);
static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);

static GRegex* _tmp_regex_0 = NULL;
static GRegex* _tmp_regex_1 = NULL;

void boxes_gdk_rgba_to_clutter_color (GdkRGBA* gdk_rgba, ClutterColor* result) {
	GdkRGBA _tmp0_;
	gdouble _tmp1_;
	gdouble _tmp2_ = 0.0;
	GdkRGBA _tmp3_;
	gdouble _tmp4_;
	gdouble _tmp5_ = 0.0;
	GdkRGBA _tmp6_;
	gdouble _tmp7_;
	gdouble _tmp8_ = 0.0;
	GdkRGBA _tmp9_;
	gdouble _tmp10_;
	gdouble _tmp11_ = 0.0;
	ClutterColor _tmp12_ = {0};
	ClutterColor color;
	g_return_if_fail (gdk_rgba != NULL);
	_tmp0_ = *gdk_rgba;
	_tmp1_ = _tmp0_.red;
	_tmp2_ = CLAMP (_tmp1_ * 255, (gdouble) 0, (gdouble) 255);
	_tmp3_ = *gdk_rgba;
	_tmp4_ = _tmp3_.green;
	_tmp5_ = CLAMP (_tmp4_ * 255, (gdouble) 0, (gdouble) 255);
	_tmp6_ = *gdk_rgba;
	_tmp7_ = _tmp6_.blue;
	_tmp8_ = CLAMP (_tmp7_ * 255, (gdouble) 0, (gdouble) 255);
	_tmp9_ = *gdk_rgba;
	_tmp10_ = _tmp9_.alpha;
	_tmp11_ = CLAMP (_tmp10_ * 255, (gdouble) 0, (gdouble) 255);
	_tmp12_.red = (guint8) _tmp2_;
	_tmp12_.green = (guint8) _tmp5_;
	_tmp12_.blue = (guint8) _tmp8_;
	_tmp12_.alpha = (guint8) _tmp11_;
	color = _tmp12_;
	*result = color;
	return;
}


void boxes_get_boxes_bg_color (GdkRGBA* result) {
	GtkStyleContext* _tmp0_;
	GtkStyleContext* style;
	GtkWidgetPath* _tmp1_;
	GtkWidgetPath* path;
	GdkRGBA _tmp2_ = {0};
	_tmp0_ = gtk_style_context_new ();
	style = _tmp0_;
	_tmp1_ = gtk_widget_path_new ();
	path = _tmp1_;
	gtk_widget_path_append_type (path, GTK_TYPE_WINDOW);
	gtk_style_context_set_path (style, path);
	gtk_style_context_add_class (style, "boxes-bg");
	gtk_style_context_get_background_color (style, 0, &_tmp2_);
	*result = _tmp2_;
	_gtk_widget_path_unref0 (path);
	_g_object_unref0 (style);
	return;
}


void boxes_get_color (const gchar* desc, GdkColor* result) {
	GdkColor color = {0};
	const gchar* _tmp0_;
	GdkColor _tmp1_ = {0};
	g_return_if_fail (desc != NULL);
	_tmp0_ = desc;
	gdk_color_parse (_tmp0_, &_tmp1_);
	color = _tmp1_;
	*result = color;
	return;
}


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


static Block37Data* block37_data_ref (Block37Data* _data37_) {
	g_atomic_int_inc (&_data37_->_ref_count_);
	return _data37_;
}


static void block37_data_unref (void * _userdata_) {
	Block37Data* _data37_;
	_data37_ = (Block37Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data37_->_ref_count_)) {
		_g_object_unref0 (_data37_->tree_view);
		g_slice_free (Block37Data, _data37_);
	}
}


static gboolean ____lambda45_ (Block37Data* _data37_, GtkWidget* w, GdkEventButton* event) {
	gboolean result = FALSE;
	GtkTreePath* path = NULL;
	GtkTreeViewColumn* column = NULL;
	gint x = 0;
	gint y = 0;
	gboolean _tmp0_ = FALSE;
	GdkEventButton _tmp1_;
	guint _tmp2_;
	gboolean _tmp5_;
	g_return_val_if_fail (w != NULL, FALSE);
	g_return_val_if_fail (event != NULL, FALSE);
	_tmp1_ = *event;
	_tmp2_ = _tmp1_.button;
	if (_tmp2_ == ((guint) 1)) {
		GdkEventButton _tmp3_;
		GdkEventType _tmp4_;
		_tmp3_ = *event;
		_tmp4_ = _tmp3_.type;
		_tmp0_ = _tmp4_ == GDK_BUTTON_PRESS;
	} else {
		_tmp0_ = FALSE;
	}
	_tmp5_ = _tmp0_;
	if (_tmp5_) {
		GtkTreeView* _tmp6_;
		GdkEventButton _tmp7_;
		gdouble _tmp8_;
		GdkEventButton _tmp9_;
		gdouble _tmp10_;
		GtkTreePath* _tmp11_ = NULL;
		GtkTreeViewColumn* _tmp12_ = NULL;
		gint _tmp13_ = 0;
		gint _tmp14_ = 0;
		GtkTreePath* _tmp15_;
		_tmp6_ = _data37_->tree_view;
		_tmp7_ = *event;
		_tmp8_ = _tmp7_.x;
		_tmp9_ = *event;
		_tmp10_ = _tmp9_.y;
		gtk_tree_view_get_path_at_pos (_tmp6_, (gint) _tmp8_, (gint) _tmp10_, &_tmp11_, &_tmp12_, &_tmp13_, &_tmp14_);
		_gtk_tree_path_free0 (path);
		path = _tmp11_;
		column = _tmp12_;
		x = _tmp13_;
		y = _tmp14_;
		_tmp15_ = path;
		if (_tmp15_ != NULL) {
			GtkTreeView* _tmp16_;
			GtkTreePath* _tmp17_;
			GtkTreeViewColumn* _tmp18_;
			_tmp16_ = _data37_->tree_view;
			_tmp17_ = path;
			_tmp18_ = column;
			gtk_tree_view_row_activated (_tmp16_, _tmp17_, _tmp18_);
		}
	}
	result = FALSE;
	_gtk_tree_path_free0 (path);
	return result;
}


static gboolean _____lambda45__gtk_widget_button_press_event (GtkWidget* _sender, GdkEventButton* event, gpointer self) {
	gboolean result;
	result = ____lambda45_ (self, _sender, event);
	return result;
}


void boxes_tree_view_activate_on_single_click (GtkTreeView* tree_view, gboolean should_activate) {
	Block37Data* _data37_;
	GtkTreeView* _tmp0_;
	GtkTreeView* _tmp1_;
	GtkTreeView* _tmp2_;
	gconstpointer _tmp3_ = NULL;
	gulong id;
	gboolean _tmp4_ = FALSE;
	gulong _tmp5_;
	gboolean _tmp7_;
	g_return_if_fail (tree_view != NULL);
	_data37_ = g_slice_new0 (Block37Data);
	_data37_->_ref_count_ = 1;
	_tmp0_ = tree_view;
	_tmp1_ = _g_object_ref0 (_tmp0_);
	_g_object_unref0 (_data37_->tree_view);
	_data37_->tree_view = _tmp1_;
	_tmp2_ = _data37_->tree_view;
	_tmp3_ = g_object_get_data ((GObject*) _tmp2_, "boxes-tree-view-activate");
	id = (gulong) ((guintptr) _tmp3_);
	_tmp5_ = id;
	if (_tmp5_ != ((gulong) 0)) {
		gboolean _tmp6_;
		_tmp6_ = should_activate;
		_tmp4_ = _tmp6_ == FALSE;
	} else {
		_tmp4_ = FALSE;
	}
	_tmp7_ = _tmp4_;
	if (_tmp7_) {
		GtkTreeView* _tmp8_;
		gulong _tmp9_;
		GtkTreeView* _tmp10_;
		_tmp8_ = _data37_->tree_view;
		_tmp9_ = id;
		g_signal_handler_disconnect ((GObject*) _tmp8_, _tmp9_);
		_tmp10_ = _data37_->tree_view;
		g_object_set_data_full ((GObject*) _tmp10_, "boxes-tree-view-activate", (gpointer) ((guintptr) ((gulong) 0)), NULL);
	} else {
		gboolean _tmp11_ = FALSE;
		gulong _tmp12_;
		gboolean _tmp14_;
		_tmp12_ = id;
		if (_tmp12_ == ((gulong) 0)) {
			gboolean _tmp13_;
			_tmp13_ = should_activate;
			_tmp11_ = _tmp13_;
		} else {
			_tmp11_ = FALSE;
		}
		_tmp14_ = _tmp11_;
		if (_tmp14_) {
			GtkTreeView* _tmp15_;
			gulong _tmp16_ = 0UL;
			GtkTreeView* _tmp17_;
			gulong _tmp18_;
			_tmp15_ = _data37_->tree_view;
			_tmp16_ = g_signal_connect_data ((GtkWidget*) _tmp15_, "button-press-event", (GCallback) _____lambda45__gtk_widget_button_press_event, block37_data_ref (_data37_), (GClosureNotify) block37_data_unref, 0);
			id = _tmp16_;
			_tmp17_ = _data37_->tree_view;
			_tmp18_ = id;
			g_object_set_data_full ((GObject*) _tmp17_, "boxes-tree-view-activate", (gpointer) ((guintptr) _tmp18_), NULL);
		}
	}
	block37_data_unref (_data37_);
	_data37_ = NULL;
}


static Block38Data* block38_data_ref (Block38Data* _data38_) {
	g_atomic_int_inc (&_data38_->_ref_count_);
	return _data38_;
}


static void block38_data_unref (void * _userdata_) {
	Block38Data* _data38_;
	_data38_ = (Block38Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data38_->_ref_count_)) {
		_g_object_unref0 (_data38_->icon_view);
		g_slice_free (Block38Data, _data38_);
	}
}


static gpointer _gtk_tree_path_copy0 (gpointer self) {
	return self ? gtk_tree_path_copy (self) : NULL;
}


static gboolean ____lambda10_ (Block38Data* _data38_, GtkWidget* w, GdkEventButton* event) {
	gboolean result = FALSE;
	GtkTreePath* path = NULL;
	GdkEventButton _tmp0_;
	guint _tmp1_;
	g_return_val_if_fail (w != NULL, FALSE);
	g_return_val_if_fail (event != NULL, FALSE);
	_tmp0_ = *event;
	_tmp1_ = _tmp0_.button;
	if (_tmp1_ == ((guint) 1)) {
		GtkIconView* _tmp2_;
		GdkEventButton _tmp3_;
		gdouble _tmp4_;
		GdkEventButton _tmp5_;
		gdouble _tmp6_;
		GtkTreePath* _tmp7_ = NULL;
		GtkTreePath* _tmp8_;
		GtkTreePath* _tmp9_;
		_tmp2_ = _data38_->icon_view;
		_tmp3_ = *event;
		_tmp4_ = _tmp3_.x;
		_tmp5_ = *event;
		_tmp6_ = _tmp5_.y;
		_tmp7_ = gtk_icon_view_get_path_at_pos (_tmp2_, (gint) _tmp4_, (gint) _tmp6_);
		_tmp8_ = _gtk_tree_path_copy0 (_tmp7_);
		_gtk_tree_path_free0 (path);
		path = _tmp8_;
		_tmp9_ = path;
		if (_tmp9_ != NULL) {
			GtkIconView* _tmp10_;
			GtkTreePath* _tmp11_;
			_tmp10_ = _data38_->icon_view;
			_tmp11_ = path;
			gtk_icon_view_item_activated (_tmp10_, _tmp11_);
		}
	}
	result = FALSE;
	_gtk_tree_path_free0 (path);
	return result;
}


static gboolean _____lambda10__gtk_widget_button_release_event (GtkWidget* _sender, GdkEventButton* event, gpointer self) {
	gboolean result;
	result = ____lambda10_ (self, _sender, event);
	return result;
}


void boxes_icon_view_activate_on_single_click (GtkIconView* icon_view, gboolean should_activate) {
	Block38Data* _data38_;
	GtkIconView* _tmp0_;
	GtkIconView* _tmp1_;
	GtkIconView* _tmp2_;
	gconstpointer _tmp3_ = NULL;
	gulong id;
	gboolean _tmp4_ = FALSE;
	gulong _tmp5_;
	gboolean _tmp7_;
	g_return_if_fail (icon_view != NULL);
	_data38_ = g_slice_new0 (Block38Data);
	_data38_->_ref_count_ = 1;
	_tmp0_ = icon_view;
	_tmp1_ = _g_object_ref0 (_tmp0_);
	_g_object_unref0 (_data38_->icon_view);
	_data38_->icon_view = _tmp1_;
	_tmp2_ = _data38_->icon_view;
	_tmp3_ = g_object_get_data ((GObject*) _tmp2_, "boxes-icon-view-activate");
	id = (gulong) ((guintptr) _tmp3_);
	_tmp5_ = id;
	if (_tmp5_ != ((gulong) 0)) {
		gboolean _tmp6_;
		_tmp6_ = should_activate;
		_tmp4_ = _tmp6_ == FALSE;
	} else {
		_tmp4_ = FALSE;
	}
	_tmp7_ = _tmp4_;
	if (_tmp7_) {
		GtkIconView* _tmp8_;
		gulong _tmp9_;
		GtkIconView* _tmp10_;
		_tmp8_ = _data38_->icon_view;
		_tmp9_ = id;
		g_signal_handler_disconnect ((GObject*) _tmp8_, _tmp9_);
		_tmp10_ = _data38_->icon_view;
		g_object_set_data_full ((GObject*) _tmp10_, "boxes-icon-view-activate", (gpointer) ((guintptr) ((gulong) 0)), NULL);
	} else {
		gboolean _tmp11_ = FALSE;
		gulong _tmp12_;
		gboolean _tmp14_;
		_tmp12_ = id;
		if (_tmp12_ == ((gulong) 0)) {
			gboolean _tmp13_;
			_tmp13_ = should_activate;
			_tmp11_ = _tmp13_;
		} else {
			_tmp11_ = FALSE;
		}
		_tmp14_ = _tmp11_;
		if (_tmp14_) {
			GtkIconView* _tmp15_;
			gulong _tmp16_ = 0UL;
			GtkIconView* _tmp17_;
			gulong _tmp18_;
			_tmp15_ = _data38_->icon_view;
			_tmp16_ = g_signal_connect_data ((GtkWidget*) _tmp15_, "button-release-event", (GCallback) _____lambda10__gtk_widget_button_release_event, block38_data_ref (_data38_), (GClosureNotify) block38_data_unref, 0);
			id = _tmp16_;
			_tmp17_ = _data38_->icon_view;
			_tmp18_ = id;
			g_object_set_data_full ((GObject*) _tmp17_, "boxes-icon-view-activate", (gpointer) ((guintptr) _tmp18_), NULL);
		}
	}
	block38_data_unref (_data38_);
	_data38_ = NULL;
}


gchar* boxes_extract_xpath (const gchar* xmldoc, const gchar* xpath, gboolean required, GError** error) {
	gchar* result = NULL;
	xmlParserCtxt* _tmp0_;
	xmlParserCtxt* parser;
	xmlParserCtxt* _tmp1_;
	const gchar* _tmp2_;
	xmlDoc* _tmp3_ = NULL;
	xmlDoc* doc;
	xmlDoc* _tmp4_;
	xmlDoc* _tmp6_;
	xmlXPathContext* _tmp7_;
	xmlXPathContext* ctxt;
	xmlXPathContext* _tmp8_;
	const gchar* _tmp9_;
	xmlXPathObject* _tmp10_ = NULL;
	xmlXPathObject* obj;
	gboolean _tmp11_ = FALSE;
	xmlXPathObject* _tmp12_;
	gboolean _tmp15_;
	xmlXPathObject* _tmp22_;
	xmlXPathObjectType _tmp23_;
	xmlXPathObject* _tmp29_;
	const gchar* _tmp30_;
	gchar* _tmp31_;
	GError * _inner_error_ = NULL;
	g_return_val_if_fail (xmldoc != NULL, NULL);
	g_return_val_if_fail (xpath != NULL, NULL);
	_tmp0_ = xmlNewParserCtxt ();
	parser = _tmp0_;
	_tmp1_ = parser;
	_tmp2_ = xmldoc;
	_tmp3_ = xmlCtxtReadDoc (_tmp1_, _tmp2_, "doc.xml", NULL, 0);
	doc = _tmp3_;
	_tmp4_ = doc;
	if (_tmp4_ == NULL) {
		GError* _tmp5_;
		_tmp5_ = g_error_new_literal (BOXES_ERROR, BOXES_ERROR_INVALID, "Can't parse XML doc");
		_inner_error_ = _tmp5_;
		if (_inner_error_->domain == BOXES_ERROR) {
			g_propagate_error (error, _inner_error_);
			_xmlFreeParserCtxt0 (parser);
			return NULL;
		} else {
			_xmlFreeParserCtxt0 (parser);
			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 NULL;
		}
	}
	_tmp6_ = doc;
	_tmp7_ = xmlXPathNewContext (_tmp6_);
	ctxt = _tmp7_;
	_tmp8_ = ctxt;
	_tmp9_ = xpath;
	_tmp10_ = xmlXPathEval (_tmp9_, _tmp8_);
	obj = _tmp10_;
	_tmp12_ = obj;
	if (_tmp12_ == NULL) {
		_tmp11_ = TRUE;
	} else {
		xmlXPathObject* _tmp13_;
		const gchar* _tmp14_;
		_tmp13_ = obj;
		_tmp14_ = _tmp13_->stringval;
		_tmp11_ = _tmp14_ == NULL;
	}
	_tmp15_ = _tmp11_;
	if (_tmp15_) {
		gboolean _tmp16_;
		_tmp16_ = required;
		if (_tmp16_) {
			const gchar* _tmp17_;
			gchar* _tmp18_;
			gchar* _tmp19_;
			GError* _tmp20_;
			GError* _tmp21_;
			_tmp17_ = xpath;
			_tmp18_ = g_strconcat ("Failed to extract xpath ", _tmp17_, NULL);
			_tmp19_ = _tmp18_;
			_tmp20_ = g_error_new_literal (BOXES_ERROR, BOXES_ERROR_INVALID, _tmp19_);
			_tmp21_ = _tmp20_;
			_g_free0 (_tmp19_);
			_inner_error_ = _tmp21_;
			if (_inner_error_->domain == BOXES_ERROR) {
				g_propagate_error (error, _inner_error_);
				_xmlXPathFreeContext0 (ctxt);
				_xmlFreeParserCtxt0 (parser);
				return NULL;
			} else {
				_xmlXPathFreeContext0 (ctxt);
				_xmlFreeParserCtxt0 (parser);
				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 NULL;
			}
		} else {
			result = NULL;
			_xmlXPathFreeContext0 (ctxt);
			_xmlFreeParserCtxt0 (parser);
			return result;
		}
	}
	_tmp22_ = obj;
	_tmp23_ = _tmp22_->type;
	if (_tmp23_ != XPATH_STRING) {
		const gchar* _tmp24_;
		gchar* _tmp25_;
		gchar* _tmp26_;
		GError* _tmp27_;
		GError* _tmp28_;
		_tmp24_ = xpath;
		_tmp25_ = g_strconcat ("Failed to extract xpath ", _tmp24_, NULL);
		_tmp26_ = _tmp25_;
		_tmp27_ = g_error_new_literal (BOXES_ERROR, BOXES_ERROR_INVALID, _tmp26_);
		_tmp28_ = _tmp27_;
		_g_free0 (_tmp26_);
		_inner_error_ = _tmp28_;
		if (_inner_error_->domain == BOXES_ERROR) {
			g_propagate_error (error, _inner_error_);
			_xmlXPathFreeContext0 (ctxt);
			_xmlFreeParserCtxt0 (parser);
			return NULL;
		} else {
			_xmlXPathFreeContext0 (ctxt);
			_xmlFreeParserCtxt0 (parser);
			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 NULL;
		}
	}
	_tmp29_ = obj;
	_tmp30_ = _tmp29_->stringval;
	_tmp31_ = g_strdup (_tmp30_);
	result = _tmp31_;
	_xmlXPathFreeContext0 (ctxt);
	_xmlFreeParserCtxt0 (parser);
	return result;
}


static Block39Data* block39_data_ref (Block39Data* _data39_) {
	g_atomic_int_inc (&_data39_->_ref_count_);
	return _data39_;
}


static void block39_data_unref (void * _userdata_) {
	Block39Data* _data39_;
	_data39_ = (Block39Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data39_->_ref_count_)) {
		_g_object_unref0 (_data39_->actor);
		g_slice_free (Block39Data, _data39_);
	}
}


static void __lambda89_ (Block39Data* _data39_) {
	ClutterActor* _tmp0_;
	ClutterActor* _tmp1_;
	guint _tmp2_;
	guint _tmp3_;
	_tmp0_ = _data39_->actor;
	_tmp1_ = _data39_->actor;
	_tmp2_ = clutter_actor_get_opacity (_tmp1_);
	_tmp3_ = _tmp2_;
	g_object_set (_tmp0_, "visible", _tmp3_ != ((guint) 0), NULL);
}


static void ___lambda89__clutter_timeline_completed (ClutterTimeline* _sender, gpointer self) {
	__lambda89_ (self);
}


void boxes_fade_actor (ClutterActor* actor, guint opacity) {
	Block39Data* _data39_;
	ClutterActor* _tmp0_;
	ClutterActor* _tmp1_;
	guint _tmp2_;
	ClutterActor* _tmp4_;
	guint _tmp5_;
	ClutterActor* _tmp6_;
	ClutterActor* _tmp7_;
	ClutterActor* _tmp8_;
	BoxesApp* _tmp9_;
	guint _tmp10_;
	ClutterActor* _tmp11_;
	guint _tmp12_;
	ClutterActor* _tmp13_;
	ClutterTransition* _tmp14_ = NULL;
	ClutterTransition* _tmp15_;
	ClutterTransition* t;
	ClutterActor* _tmp16_;
	g_return_if_fail (actor != NULL);
	_data39_ = g_slice_new0 (Block39Data);
	_data39_->_ref_count_ = 1;
	_tmp0_ = actor;
	_tmp1_ = _g_object_ref0 (_tmp0_);
	_g_object_unref0 (_data39_->actor);
	_data39_->actor = _tmp1_;
	_tmp2_ = opacity;
	if (_tmp2_ != ((guint) 0)) {
		ClutterActor* _tmp3_;
		_tmp3_ = _data39_->actor;
		clutter_actor_show (_tmp3_);
	}
	_tmp4_ = _data39_->actor;
	_tmp5_ = opacity;
	clutter_actor_set_reactive (_tmp4_, _tmp5_ == ((guint) 255));
	_tmp6_ = _data39_->actor;
	clutter_actor_save_easing_state (_tmp6_);
	_tmp7_ = _data39_->actor;
	clutter_actor_set_easing_mode (_tmp7_, CLUTTER_EASE_OUT_QUAD);
	_tmp8_ = _data39_->actor;
	_tmp9_ = boxes_app_app;
	_tmp10_ = _tmp9_->duration;
	clutter_actor_set_easing_duration (_tmp8_, _tmp10_);
	_tmp11_ = _data39_->actor;
	_tmp12_ = opacity;
	clutter_actor_set_opacity (_tmp11_, _tmp12_);
	_tmp13_ = _data39_->actor;
	_tmp14_ = clutter_actor_get_transition (_tmp13_, "opacity");
	_tmp15_ = _g_object_ref0 (_tmp14_);
	t = _tmp15_;
	g_signal_connect_data ((ClutterTimeline*) t, "completed", (GCallback) ___lambda89__clutter_timeline_completed, block39_data_ref (_data39_), (GClosureNotify) block39_data_unref, 0);
	_tmp16_ = _data39_->actor;
	clutter_actor_restore_easing_state (_tmp16_);
	_g_object_unref0 (t);
	block39_data_unref (_data39_);
	_data39_ = NULL;
}


void boxes_actor_add (ClutterActor* actor, ClutterActor* container) {
	ClutterActor* _tmp0_;
	ClutterActor* _tmp1_ = NULL;
	ClutterActor* _tmp2_;
	ClutterActor* _tmp3_;
	ClutterActor* _tmp4_;
	ClutterActor* _tmp5_;
	g_return_if_fail (actor != NULL);
	g_return_if_fail (container != NULL);
	_tmp0_ = actor;
	_tmp1_ = clutter_actor_get_parent (_tmp0_);
	_tmp2_ = container;
	if (_tmp1_ == _tmp2_) {
		return;
	}
	_tmp3_ = actor;
	boxes_actor_remove (_tmp3_);
	_tmp4_ = container;
	_tmp5_ = actor;
	clutter_actor_add_child (_tmp4_, _tmp5_);
}


void boxes_actor_remove (ClutterActor* actor) {
	ClutterActor* _tmp0_;
	ClutterActor* _tmp1_ = NULL;
	ClutterActor* _tmp2_;
	ClutterActor* container;
	ClutterActor* _tmp3_;
	ClutterActor* _tmp4_;
	ClutterActor* _tmp5_;
	g_return_if_fail (actor != NULL);
	_tmp0_ = actor;
	_tmp1_ = clutter_actor_get_parent (_tmp0_);
	_tmp2_ = _g_object_ref0 (_tmp1_);
	container = _tmp2_;
	_tmp3_ = container;
	if (_tmp3_ == NULL) {
		_g_object_unref0 (container);
		return;
	}
	_tmp4_ = container;
	_tmp5_ = actor;
	clutter_actor_remove_child (_tmp4_, _tmp5_);
	_g_object_unref0 (container);
}


OsinfoDevice* boxes_get_os_device_by_prop (OsinfoOs* os, const gchar* prop_name, const gchar* prop_value) {
	OsinfoDevice* result = NULL;
	OsinfoOs* _tmp0_;
	OsinfoOs* _tmp1_;
	const gchar* _tmp2_;
	const gchar* _tmp3_;
	OsinfoDeviceList* _tmp4_ = NULL;
	OsinfoDeviceList* devices;
	OsinfoDevice* _tmp5_ = NULL;
	OsinfoDeviceList* _tmp6_;
	gint _tmp7_ = 0;
	OsinfoDevice* _tmp10_;
	OsinfoDevice* _tmp11_;
	g_return_val_if_fail (prop_name != NULL, NULL);
	g_return_val_if_fail (prop_value != NULL, NULL);
	_tmp0_ = os;
	if (_tmp0_ == NULL) {
		result = NULL;
		return result;
	}
	_tmp1_ = os;
	_tmp2_ = prop_name;
	_tmp3_ = prop_value;
	_tmp4_ = osinfo_os_get_devices_by_property (_tmp1_, _tmp2_, _tmp3_, TRUE);
	devices = _tmp4_;
	_tmp6_ = devices;
	_tmp7_ = osinfo_list_get_length ((OsinfoList*) _tmp6_);
	if (_tmp7_ > 0) {
		OsinfoDeviceList* _tmp8_;
		OsinfoEntity* _tmp9_ = NULL;
		_tmp8_ = devices;
		_tmp9_ = osinfo_list_get_nth ((OsinfoList*) _tmp8_, 0);
		_tmp5_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp9_, osinfo_device_get_type ()) ? ((OsinfoDevice*) _tmp9_) : NULL;
	} else {
		_tmp5_ = NULL;
	}
	_tmp10_ = _tmp5_;
	_tmp11_ = _g_object_ref0 (_tmp10_);
	result = _tmp11_;
	_g_object_unref0 (devices);
	return result;
}


GtkImage* boxes_get_os_logo (OsinfoOs* os, gint size) {
	GtkImage* result = NULL;
	GtkImage* _tmp0_;
	GtkImage* image;
	GtkImage* _tmp1_;
	gint _tmp2_;
	OsinfoOs* _tmp3_;
	_tmp0_ = (GtkImage*) gtk_image_new_from_icon_name ("media-optical", 0);
	g_object_ref_sink (_tmp0_);
	image = _tmp0_;
	_tmp1_ = image;
	_tmp2_ = size;
	gtk_image_set_pixel_size (_tmp1_, _tmp2_);
	_tmp3_ = os;
	if (_tmp3_ != NULL) {
		GtkImage* _tmp4_;
		OsinfoOs* _tmp5_;
		gint _tmp6_;
		_tmp4_ = image;
		_tmp5_ = os;
		_tmp6_ = size;
		boxes_fetch_os_logo (_tmp4_, _tmp5_, _tmp6_);
	}
	result = image;
	return result;
}


void boxes_fetch_os_logo (GtkImage* image, OsinfoOs* os, gint size) {
	OsinfoOs* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gchar** _tmp4_ = NULL;
	gchar** _tmp5_;
	gint _tmp5__length1;
	gchar* _tmp6_ = NULL;
	gchar* _tmp7_;
	gchar* path;
	const gchar* _tmp8_;
	GError * _inner_error_ = NULL;
	g_return_if_fail (image != NULL);
	g_return_if_fail (os != NULL);
	_tmp0_ = os;
	_tmp1_ = g_strdup (".svg");
	_tmp2_ = g_strdup (".png");
	_tmp3_ = g_strdup (".jpg");
	_tmp4_ = g_new0 (gchar*, 3 + 1);
	_tmp4_[0] = _tmp1_;
	_tmp4_[1] = _tmp2_;
	_tmp4_[2] = _tmp3_;
	_tmp5_ = _tmp4_;
	_tmp5__length1 = 3;
	_tmp6_ = boxes_get_logo_path (_tmp0_, _tmp5_, 3);
	_tmp7_ = _tmp6_;
	_tmp5_ = (_vala_array_free (_tmp5_, _tmp5__length1, (GDestroyNotify) g_free), NULL);
	path = _tmp7_;
	_tmp8_ = path;
	if (_tmp8_ == NULL) {
		_g_free0 (path);
		return;
	}
	{
		const gchar* _tmp9_;
		gint _tmp10_;
		GdkPixbuf* _tmp11_;
		GdkPixbuf* pixbuf;
		GtkImage* _tmp12_;
		GdkPixbuf* _tmp13_;
		_tmp9_ = path;
		_tmp10_ = size;
		_tmp11_ = gdk_pixbuf_new_from_file_at_size (_tmp9_, _tmp10_, -1, &_inner_error_);
		pixbuf = _tmp11_;
		if (_inner_error_ != NULL) {
			goto __catch58_g_error;
		}
		_tmp12_ = image;
		_tmp13_ = pixbuf;
		gtk_image_set_from_pixbuf (_tmp12_, _tmp13_);
		_g_object_unref0 (pixbuf);
	}
	goto __finally58;
	__catch58_g_error:
	{
		GError* _error_ = NULL;
		const gchar* _tmp14_;
		GError* _tmp15_;
		const gchar* _tmp16_;
		_error_ = _inner_error_;
		_inner_error_ = NULL;
		_tmp14_ = path;
		_tmp15_ = _error_;
		_tmp16_ = _tmp15_->message;
		g_warning ("util-app.vala:165: Error loading logo file '%s': %s", _tmp14_, _tmp16_);
		_g_error_free0 (_error_);
	}
	__finally58:
	if (_inner_error_ != NULL) {
		_g_free0 (path);
		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 (path);
}


GVirStoragePool* boxes_get_storage_pool (GVirConnection* connection) {
	GVirStoragePool* result = NULL;
	GVirConnection* _tmp0_;
	GVirStoragePool* _tmp1_ = NULL;
	g_return_val_if_fail (connection != NULL, NULL);
	_tmp0_ = connection;
	_tmp1_ = gvir_connection_find_storage_pool_by_name (_tmp0_, PACKAGE_TARNAME);
	result = _tmp1_;
	return result;
}


GVirStorageVol* boxes_get_storage_volume (GVirConnection* connection, GVirDomain* domain) {
	GVirStorageVol* result = NULL;
	GVirConnection* _tmp0_;
	GVirStoragePool* _tmp1_ = NULL;
	GVirStoragePool* pool;
	GVirStoragePool* _tmp2_;
	GVirStoragePool* _tmp3_;
	GVirDomain* _tmp4_;
	const gchar* _tmp5_ = NULL;
	GVirStorageVol* _tmp6_ = NULL;
	g_return_val_if_fail (connection != NULL, NULL);
	g_return_val_if_fail (domain != NULL, NULL);
	_tmp0_ = connection;
	_tmp1_ = boxes_get_storage_pool (_tmp0_);
	pool = _tmp1_;
	_tmp2_ = pool;
	if (_tmp2_ == NULL) {
		result = NULL;
		_g_object_unref0 (pool);
		return result;
	}
	_tmp3_ = pool;
	_tmp4_ = domain;
	_tmp5_ = gvir_domain_get_name (_tmp4_);
	_tmp6_ = gvir_storage_pool_get_volume (_tmp3_, _tmp5_);
	result = _tmp6_;
	_g_object_unref0 (pool);
	return result;
}


gchar* boxes_get_logo_path (OsinfoOs* os, gchar** extensions, int extensions_length1) {
	gchar* result = NULL;
	gchar** _tmp0_;
	gint _tmp0__length1;
	OsinfoOs* _tmp1_;
	const gchar* _tmp2_;
	const gchar* _tmp3_;
	gchar** _tmp4_;
	gint _tmp4__length1;
	const gchar* _tmp5_;
	gchar* _tmp6_;
	gchar* _tmp7_;
	gchar* _tmp8_ = NULL;
	gchar* _tmp9_;
	gchar* path;
	const gchar* _tmp10_;
	GFile* _tmp11_ = NULL;
	GFile* file;
	GFile* _tmp12_;
	gboolean _tmp13_ = FALSE;
	GFile* _tmp24_;
	gboolean _tmp25_ = FALSE;
	g_return_val_if_fail (os != NULL, NULL);
	_tmp0_ = extensions;
	_tmp0__length1 = extensions_length1;
	if (_tmp0__length1 == 0) {
		result = NULL;
		return result;
	}
	_tmp1_ = os;
	_tmp2_ = osinfo_product_get_short_id ((OsinfoProduct*) _tmp1_);
	_tmp3_ = _tmp2_;
	_tmp4_ = extensions;
	_tmp4__length1 = extensions_length1;
	_tmp5_ = _tmp4_[0];
	_tmp6_ = g_strconcat (_tmp3_, _tmp5_, NULL);
	_tmp7_ = _tmp6_;
	_tmp8_ = boxes_get_pixmap (_tmp7_);
	_tmp9_ = _tmp8_;
	_g_free0 (_tmp7_);
	path = _tmp9_;
	_tmp10_ = path;
	_tmp11_ = g_file_new_for_path (_tmp10_);
	file = _tmp11_;
	_tmp12_ = file;
	_tmp13_ = g_file_query_exists (_tmp12_, NULL);
	if (!_tmp13_) {
		OsinfoOs* _tmp14_;
		const gchar* _tmp15_;
		const gchar* _tmp16_;
		gchar** _tmp17_;
		gint _tmp17__length1;
		const gchar* _tmp18_;
		gchar* _tmp19_;
		gchar* _tmp20_;
		gchar* _tmp21_ = NULL;
		const gchar* _tmp22_;
		GFile* _tmp23_ = NULL;
		_tmp14_ = os;
		_tmp15_ = osinfo_os_get_distro (_tmp14_);
		_tmp16_ = _tmp15_;
		_tmp17_ = extensions;
		_tmp17__length1 = extensions_length1;
		_tmp18_ = _tmp17_[0];
		_tmp19_ = g_strconcat (_tmp16_, _tmp18_, NULL);
		_tmp20_ = _tmp19_;
		_tmp21_ = boxes_get_pixmap (_tmp20_);
		_g_free0 (path);
		path = _tmp21_;
		_g_free0 (_tmp20_);
		_tmp22_ = path;
		_tmp23_ = g_file_new_for_path (_tmp22_);
		_g_object_unref0 (file);
		file = _tmp23_;
	}
	_tmp24_ = file;
	_tmp25_ = g_file_query_exists (_tmp24_, NULL);
	if (_tmp25_) {
		result = path;
		_g_object_unref0 (file);
		return result;
	} else {
		OsinfoOs* _tmp26_;
		gchar** _tmp27_;
		gint _tmp27__length1;
		gchar** _tmp28_;
		gint _tmp28__length1;
		gchar* _tmp29_ = NULL;
		_tmp26_ = os;
		_tmp27_ = extensions;
		_tmp27__length1 = extensions_length1;
		_tmp28_ = extensions;
		_tmp28__length1 = extensions_length1;
		_tmp29_ = boxes_get_logo_path (_tmp26_, _tmp27_ + 1, _tmp28__length1 - 1);
		result = _tmp29_;
		_g_object_unref0 (file);
		_g_free0 (path);
		return result;
	}
	_g_object_unref0 (file);
	_g_free0 (path);
}


static void boxes_check_selinux_context_default_data_free (gpointer _data) {
	BoxesCheckSelinuxContextDefaultData* _data_;
	_data_ = _data;
	g_slice_free (BoxesCheckSelinuxContextDefaultData, _data_);
}


void boxes_check_selinux_context_default (GAsyncReadyCallback _callback_, gpointer _user_data_) {
	BoxesCheckSelinuxContextDefaultData* _data_;
	_data_ = g_slice_new0 (BoxesCheckSelinuxContextDefaultData);
	_data_->_async_result = g_simple_async_result_new (g_object_newv (G_TYPE_OBJECT, 0, NULL), _callback_, _user_data_, boxes_check_selinux_context_default);
	g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, boxes_check_selinux_context_default_data_free);
	boxes_check_selinux_context_default_co (_data_);
}


gboolean boxes_check_selinux_context_default_finish (GAsyncResult* _res_, gchar** diagnosis) {
	gboolean result;
	BoxesCheckSelinuxContextDefaultData* _data_;
	_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
	if (diagnosis) {
		*diagnosis = _data_->diagnosis;
	} else {
		_g_free0 (_data_->diagnosis);
	}
	_data_->diagnosis = NULL;
	result = _data_->result;
	return result;
}


static void boxes_check_selinux_context_default_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	BoxesCheckSelinuxContextDefaultData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	boxes_check_selinux_context_default_co (_data_);
}


static gboolean boxes_check_selinux_context_default_co (BoxesCheckSelinuxContextDefaultData* _data_) {
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		case 1:
		goto _state_1;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	_data_->_tmp0_ = g_strdup ("");
	_g_free0 (_data_->diagnosis);
	_data_->diagnosis = _data_->_tmp0_;
	{
		_data_->_tmp1_ = g_strdup ("restorecon");
		_data_->_tmp2_ = g_strdup ("-nrv");
		_data_->_tmp3_ = NULL;
		_data_->_tmp3_ = boxes_get_user_pkgconfig (NULL);
		_data_->_tmp4_ = NULL;
		_data_->_tmp4_ = boxes_get_user_pkgdata (NULL);
		_data_->_tmp5_ = NULL;
		_data_->_tmp5_ = boxes_get_user_pkgcache (NULL);
		_data_->_tmp6_ = NULL;
		_data_->_tmp6_ = g_new0 (gchar*, 5 + 1);
		_data_->_tmp6_[0] = _data_->_tmp1_;
		_data_->_tmp6_[1] = _data_->_tmp2_;
		_data_->_tmp6_[2] = _data_->_tmp3_;
		_data_->_tmp6_[3] = _data_->_tmp4_;
		_data_->_tmp6_[4] = _data_->_tmp5_;
		_data_->argv = _data_->_tmp6_;
		_data_->argv_length1 = 5;
		_data_->_argv_size_ = _data_->argv_length1;
		_data_->_tmp7_ = _data_->argv;
		_data_->_tmp7__length1 = _data_->argv_length1;
		_data_->_tmp8_ = NULL;
		_data_->_state_ = 1;
		boxes_exec (_data_->_tmp7_, _data_->_tmp7__length1, NULL, boxes_check_selinux_context_default_ready, _data_);
		return FALSE;
		_state_1:
		boxes_exec_finish (_data_->_res_, &_data_->_tmp8_, NULL, &_data_->_inner_error_);
		_g_free0 (_data_->standard_output);
		_data_->standard_output = _data_->_tmp8_;
		if (_data_->_inner_error_ != NULL) {
			_data_->argv = (_vala_array_free (_data_->argv, _data_->argv_length1, (GDestroyNotify) g_free), NULL);
			_g_free0 (_data_->standard_output);
			if (g_error_matches (_data_->_inner_error_, G_SPAWN_ERROR, G_SPAWN_ERROR_NOEXEC)) {
				goto __catch59_g_spawn_error_noexec;
			}
			goto __catch59_g_error;
		}
		_data_->_tmp9_ = _data_->standard_output;
		_data_->_tmp10_ = strlen (_data_->_tmp9_);
		_data_->_tmp11_ = _data_->_tmp10_;
		if (_data_->_tmp11_ == 0) {
			_data_->result = TRUE;
			_data_->argv = (_vala_array_free (_data_->argv, _data_->argv_length1, (GDestroyNotify) g_free), NULL);
			_g_free0 (_data_->standard_output);
			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_->_tmp12_ = _data_->argv;
		_data_->_tmp12__length1 = _data_->argv_length1;
		_data_->_tmp13_ = g_strdup ("-r");
		_g_free0 (_data_->_tmp12_[1]);
		_data_->_tmp12_[1] = _data_->_tmp13_;
		_data_->_tmp14_ = _data_->_tmp12_[1];
		_data_->_tmp15_ = NULL;
		_data_->_tmp15_ = _ ("Your SELinux context looks incorrect, you can try to fix it by running" \
":\n" \
"%s");
		_data_->_tmp16_ = _data_->argv;
		_data_->_tmp16__length1 = _data_->argv_length1;
		_data_->_tmp17_ = NULL;
		_data_->_tmp17_ = g_strjoinv (" ", _data_->_tmp16_);
		_data_->_tmp18_ = _data_->_tmp17_;
		_data_->_tmp19_ = NULL;
		_data_->_tmp19_ = g_strdup_printf (_data_->_tmp15_, _data_->_tmp18_);
		_g_free0 (_data_->diagnosis);
		_data_->diagnosis = _data_->_tmp19_;
		_g_free0 (_data_->_tmp18_);
		_data_->result = FALSE;
		_data_->argv = (_vala_array_free (_data_->argv, _data_->argv_length1, (GDestroyNotify) g_free), NULL);
		_g_free0 (_data_->standard_output);
		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;
	}
	goto __finally59;
	__catch59_g_spawn_error_noexec:
	{
		_data_->_error_ = _data_->_inner_error_;
		_data_->_inner_error_ = NULL;
		_data_->_tmp20_ = NULL;
		_data_->_tmp20_ = _ ("SELinux not installed?");
		_data_->_tmp21_ = g_strdup (_data_->_tmp20_);
		_g_free0 (_data_->diagnosis);
		_data_->diagnosis = _data_->_tmp21_;
		_data_->result = TRUE;
		_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;
	}
	goto __finally59;
	__catch59_g_error:
	{
		_data_->_vala1__error_ = _data_->_inner_error_;
		_data_->_inner_error_ = NULL;
		_data_->_tmp22_ = _data_->_vala1__error_;
		_data_->_tmp23_ = _data_->_tmp22_->message;
		g_warning ("util-app.vala:226: %s", _data_->_tmp23_);
		_g_error_free0 (_data_->_vala1__error_);
	}
	__finally59:
	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;
	}
	_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;
	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_check_libvirt_kvm_data_free (gpointer _data) {
	BoxesCheckLibvirtKvmData* _data_;
	_data_ = _data;
	g_slice_free (BoxesCheckLibvirtKvmData, _data_);
}


void boxes_check_libvirt_kvm (GAsyncReadyCallback _callback_, gpointer _user_data_) {
	BoxesCheckLibvirtKvmData* _data_;
	_data_ = g_slice_new0 (BoxesCheckLibvirtKvmData);
	_data_->_async_result = g_simple_async_result_new (g_object_newv (G_TYPE_OBJECT, 0, NULL), _callback_, _user_data_, boxes_check_libvirt_kvm);
	g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, boxes_check_libvirt_kvm_data_free);
	boxes_check_libvirt_kvm_co (_data_);
}


gboolean boxes_check_libvirt_kvm_finish (GAsyncResult* _res_) {
	gboolean result;
	BoxesCheckLibvirtKvmData* _data_;
	_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
	result = _data_->result;
	return result;
}


static void boxes_check_libvirt_kvm_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	BoxesCheckLibvirtKvmData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	boxes_check_libvirt_kvm_co (_data_);
}


static gboolean boxes_check_libvirt_kvm_co (BoxesCheckLibvirtKvmData* _data_) {
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		case 1:
		goto _state_1;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	{
		_data_->_tmp0_ = g_strdup ("virsh");
		_data_->_tmp1_ = g_strdup ("capabilities");
		_data_->_tmp2_ = NULL;
		_data_->_tmp2_ = g_new0 (gchar*, 2 + 1);
		_data_->_tmp2_[0] = _data_->_tmp0_;
		_data_->_tmp2_[1] = _data_->_tmp1_;
		_data_->argv = _data_->_tmp2_;
		_data_->argv_length1 = 2;
		_data_->_argv_size_ = _data_->argv_length1;
		_data_->_tmp3_ = _data_->argv;
		_data_->_tmp3__length1 = _data_->argv_length1;
		_data_->_tmp4_ = NULL;
		_data_->_state_ = 1;
		boxes_exec (_data_->_tmp3_, _data_->_tmp3__length1, NULL, boxes_check_libvirt_kvm_ready, _data_);
		return FALSE;
		_state_1:
		boxes_exec_finish (_data_->_res_, &_data_->_tmp4_, NULL, &_data_->_inner_error_);
		_g_free0 (_data_->standard_output);
		_data_->standard_output = _data_->_tmp4_;
		if (_data_->_inner_error_ != NULL) {
			_data_->argv = (_vala_array_free (_data_->argv, _data_->argv_length1, (GDestroyNotify) g_free), NULL);
			_g_free0 (_data_->standard_output);
			if (g_error_matches (_data_->_inner_error_, G_SPAWN_ERROR, G_SPAWN_ERROR_NOEXEC)) {
				goto __catch60_g_spawn_error_noexec;
			}
			goto __catch60_g_error;
		}
		_data_->_tmp5_ = _data_->standard_output;
		_data_->_tmp6_ = NULL;
		_data_->_tmp6_ = boxes_extract_xpath (_data_->_tmp5_, "string(/capabilities/guest[os_type='hvm']/arch/domain[@type='kvm']/emu" \
"lator)", FALSE, &_data_->_inner_error_);
		_data_->kvm = _data_->_tmp6_;
		if (_data_->_inner_error_ != NULL) {
			_data_->argv = (_vala_array_free (_data_->argv, _data_->argv_length1, (GDestroyNotify) g_free), NULL);
			_g_free0 (_data_->standard_output);
			if (g_error_matches (_data_->_inner_error_, G_SPAWN_ERROR, G_SPAWN_ERROR_NOEXEC)) {
				goto __catch60_g_spawn_error_noexec;
			}
			goto __catch60_g_error;
		}
		_data_->_tmp7_ = _data_->kvm;
		_data_->_tmp8_ = strlen (_data_->_tmp7_);
		_data_->_tmp9_ = _data_->_tmp8_;
		_data_->result = _data_->_tmp9_ != 0;
		_g_free0 (_data_->kvm);
		_data_->argv = (_vala_array_free (_data_->argv, _data_->argv_length1, (GDestroyNotify) g_free), NULL);
		_g_free0 (_data_->standard_output);
		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;
	}
	goto __finally60;
	__catch60_g_spawn_error_noexec:
	{
		_data_->_error_ = _data_->_inner_error_;
		_data_->_inner_error_ = NULL;
		g_critical ("util-app.vala:243: libvirt is not installed correctly");
		_g_error_free0 (_data_->_error_);
	}
	goto __finally60;
	__catch60_g_error:
	{
		_data_->_vala1__error_ = _data_->_inner_error_;
		_data_->_inner_error_ = NULL;
		_data_->_tmp10_ = _data_->_vala1__error_;
		_data_->_tmp11_ = _data_->_tmp10_->message;
		g_warning ("util-app.vala:245: %s", _data_->_tmp11_);
		_g_error_free0 (_data_->_vala1__error_);
	}
	__finally60:
	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;
	}
	_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;
	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_check_cpu_vt_capability_data_free (gpointer _data) {
	BoxesCheckCpuVtCapabilityData* _data_;
	_data_ = _data;
	g_slice_free (BoxesCheckCpuVtCapabilityData, _data_);
}


void boxes_check_cpu_vt_capability (GAsyncReadyCallback _callback_, gpointer _user_data_) {
	BoxesCheckCpuVtCapabilityData* _data_;
	_data_ = g_slice_new0 (BoxesCheckCpuVtCapabilityData);
	_data_->_async_result = g_simple_async_result_new (g_object_newv (G_TYPE_OBJECT, 0, NULL), _callback_, _user_data_, boxes_check_cpu_vt_capability);
	g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, boxes_check_cpu_vt_capability_data_free);
	boxes_check_cpu_vt_capability_co (_data_);
}


gboolean boxes_check_cpu_vt_capability_finish (GAsyncResult* _res_) {
	gboolean result;
	BoxesCheckCpuVtCapabilityData* _data_;
	_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
	result = _data_->result;
	return result;
}


static void boxes_check_cpu_vt_capability_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	BoxesCheckCpuVtCapabilityData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	boxes_check_cpu_vt_capability_co (_data_);
}


static inline GRegex* _thread_safe_regex_init (GRegex** re, const gchar * pattern, GRegexMatchFlags match_options) {
	if (g_once_init_enter ((volatile gsize*) re)) {
		GRegex* val = g_regex_new (pattern, match_options, 0, NULL);
		g_once_init_leave ((volatile gsize*) re, (gsize) val);
	}
	return *re;
}


static gboolean boxes_check_cpu_vt_capability_co (BoxesCheckCpuVtCapabilityData* _data_) {
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		case 1:
		goto _state_1;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	_data_->_result_ = FALSE;
	_data_->_tmp0_ = NULL;
	_data_->_tmp0_ = g_file_new_for_path ("/proc/cpuinfo");
	_data_->file = _data_->_tmp0_;
	{
		_data_->_tmp1_ = _data_->file;
		_data_->_tmp2_ = NULL;
		_data_->_tmp2_ = g_file_read (_data_->_tmp1_, NULL, &_data_->_inner_error_);
		_data_->_tmp3_ = _data_->_tmp2_;
		if (_data_->_inner_error_ != NULL) {
			goto __catch61_g_error;
		}
		_data_->_tmp4_ = _data_->_tmp3_;
		_data_->_tmp5_ = g_data_input_stream_new ((GInputStream*) _data_->_tmp4_);
		_data_->_tmp6_ = _data_->_tmp5_;
		_g_object_unref0 (_data_->_tmp4_);
		_data_->stream = _data_->_tmp6_;
		_data_->line = NULL;
		while (TRUE) {
			_data_->_tmp7_ = _data_->stream;
			_data_->_state_ = 1;
			g_data_input_stream_read_line_async (_data_->_tmp7_, G_PRIORITY_DEFAULT, NULL, boxes_check_cpu_vt_capability_ready, _data_);
			return FALSE;
			_state_1:
			_data_->_tmp8_ = NULL;
			_data_->_tmp8_ = g_data_input_stream_read_line_finish (_data_->_tmp7_, _data_->_res_, NULL, &_data_->_inner_error_);
			_data_->_tmp9_ = _data_->_tmp8_;
			if (_data_->_inner_error_ != NULL) {
				_g_free0 (_data_->line);
				_g_object_unref0 (_data_->stream);
				goto __catch61_g_error;
			}
			_g_free0 (_data_->line);
			_data_->line = _data_->_tmp9_;
			_data_->_tmp10_ = _data_->line;
			if (!(_data_->_tmp10_ != NULL)) {
				break;
			}
			_data_->_tmp11_ = _data_->line;
			_data_->_tmp12_ = FALSE;
			_data_->_tmp12_ = g_regex_match (_thread_safe_regex_init (&_tmp_regex_0, "^flags.*(vmx|svm)", 0), _data_->_tmp11_, 0, NULL);
			_data_->_result_ = _data_->_tmp12_;
			_data_->_tmp13_ = _data_->_result_;
			if (_data_->_tmp13_) {
				break;
			}
		}
		_g_free0 (_data_->line);
		_g_object_unref0 (_data_->stream);
	}
	goto __finally61;
	__catch61_g_error:
	{
		_data_->_error_ = _data_->_inner_error_;
		_data_->_inner_error_ = NULL;
		_data_->_tmp14_ = _data_->_error_->message;
		g_error ("util-app.vala:264: %s", _data_->_tmp14_);
		_g_error_free0 (_data_->_error_);
	}
	__finally61:
	if (_data_->_inner_error_ != NULL) {
		_g_object_unref0 (_data_->file);
		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;
	}
	_data_->_tmp15_ = _data_->_result_;
	_data_->_tmp16_ = NULL;
	_data_->_tmp16_ = boxes_yes_no (_data_->_tmp15_);
	_data_->_tmp17_ = _data_->_tmp16_;
	_data_->_tmp18_ = g_strconcat ("check_cpu_vt_capability: ", _data_->_tmp17_, NULL);
	_data_->_tmp19_ = _data_->_tmp18_;
	g_debug ("util-app.vala:267: %s", _data_->_tmp19_);
	_g_free0 (_data_->_tmp19_);
	_g_free0 (_data_->_tmp17_);
	_data_->result = _data_->_result_;
	_g_object_unref0 (_data_->file);
	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;
	_g_object_unref0 (_data_->file);
	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_check_module_kvm_loaded_data_free (gpointer _data) {
	BoxesCheckModuleKvmLoadedData* _data_;
	_data_ = _data;
	g_slice_free (BoxesCheckModuleKvmLoadedData, _data_);
}


void boxes_check_module_kvm_loaded (GAsyncReadyCallback _callback_, gpointer _user_data_) {
	BoxesCheckModuleKvmLoadedData* _data_;
	_data_ = g_slice_new0 (BoxesCheckModuleKvmLoadedData);
	_data_->_async_result = g_simple_async_result_new (g_object_newv (G_TYPE_OBJECT, 0, NULL), _callback_, _user_data_, boxes_check_module_kvm_loaded);
	g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, boxes_check_module_kvm_loaded_data_free);
	boxes_check_module_kvm_loaded_co (_data_);
}


gboolean boxes_check_module_kvm_loaded_finish (GAsyncResult* _res_) {
	gboolean result;
	BoxesCheckModuleKvmLoadedData* _data_;
	_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
	result = _data_->result;
	return result;
}


static void boxes_check_module_kvm_loaded_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	BoxesCheckModuleKvmLoadedData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	boxes_check_module_kvm_loaded_co (_data_);
}


static gboolean boxes_check_module_kvm_loaded_co (BoxesCheckModuleKvmLoadedData* _data_) {
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		case 1:
		goto _state_1;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	_data_->_result_ = FALSE;
	_data_->_tmp0_ = NULL;
	_data_->_tmp0_ = g_file_new_for_path ("/proc/modules");
	_data_->file = _data_->_tmp0_;
	{
		_data_->_tmp1_ = _data_->file;
		_data_->_tmp2_ = NULL;
		_data_->_tmp2_ = g_file_read (_data_->_tmp1_, NULL, &_data_->_inner_error_);
		_data_->_tmp3_ = _data_->_tmp2_;
		if (_data_->_inner_error_ != NULL) {
			goto __catch62_g_error;
		}
		_data_->_tmp4_ = _data_->_tmp3_;
		_data_->_tmp5_ = g_data_input_stream_new ((GInputStream*) _data_->_tmp4_);
		_data_->_tmp6_ = _data_->_tmp5_;
		_g_object_unref0 (_data_->_tmp4_);
		_data_->stream = _data_->_tmp6_;
		_data_->line = NULL;
		while (TRUE) {
			_data_->_tmp7_ = _data_->stream;
			_data_->_state_ = 1;
			g_data_input_stream_read_line_async (_data_->_tmp7_, G_PRIORITY_DEFAULT, NULL, boxes_check_module_kvm_loaded_ready, _data_);
			return FALSE;
			_state_1:
			_data_->_tmp8_ = NULL;
			_data_->_tmp8_ = g_data_input_stream_read_line_finish (_data_->_tmp7_, _data_->_res_, NULL, &_data_->_inner_error_);
			_data_->_tmp9_ = _data_->_tmp8_;
			if (_data_->_inner_error_ != NULL) {
				_g_free0 (_data_->line);
				_g_object_unref0 (_data_->stream);
				goto __catch62_g_error;
			}
			_g_free0 (_data_->line);
			_data_->line = _data_->_tmp9_;
			_data_->_tmp10_ = _data_->line;
			if (!(_data_->_tmp10_ != NULL)) {
				break;
			}
			_data_->_tmp11_ = _data_->line;
			_data_->_tmp12_ = FALSE;
			_data_->_tmp12_ = g_regex_match (_thread_safe_regex_init (&_tmp_regex_1, "^(kvm_intel|kvm_amd)", 0), _data_->_tmp11_, 0, NULL);
			_data_->_result_ = _data_->_tmp12_;
			_data_->_tmp13_ = _data_->_result_;
			if (_data_->_tmp13_) {
				break;
			}
		}
		_g_free0 (_data_->line);
		_g_object_unref0 (_data_->stream);
	}
	goto __finally62;
	__catch62_g_error:
	{
		_data_->_error_ = _data_->_inner_error_;
		_data_->_inner_error_ = NULL;
		_data_->_tmp14_ = _data_->_error_->message;
		g_error ("util-app.vala:284: %s", _data_->_tmp14_);
		_g_error_free0 (_data_->_error_);
	}
	__finally62:
	if (_data_->_inner_error_ != NULL) {
		_g_object_unref0 (_data_->file);
		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;
	}
	_data_->_tmp15_ = _data_->_result_;
	_data_->_tmp16_ = NULL;
	_data_->_tmp16_ = boxes_yes_no (_data_->_tmp15_);
	_data_->_tmp17_ = _data_->_tmp16_;
	_data_->_tmp18_ = g_strconcat ("check_module_kvm_loaded: ", _data_->_tmp17_, NULL);
	_data_->_tmp19_ = _data_->_tmp18_;
	g_debug ("util-app.vala:287: %s", _data_->_tmp19_);
	_g_free0 (_data_->_tmp19_);
	_g_free0 (_data_->_tmp17_);
	_data_->result = _data_->_result_;
	_g_object_unref0 (_data_->file);
	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;
	_g_object_unref0 (_data_->file);
	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 guint8* _vala_array_dup6 (guint8* self, int length) {
	return g_memdup (self, length * sizeof (guint8));
}


GdkPixbuf* boxes_remove_alpha (GdkPixbuf* pixbuf) {
	GdkPixbuf* result = NULL;
	static const guint8 ALPHA_TRESHOLD = (guint8) 50;
	gboolean _tmp0_ = FALSE;
	GdkPixbuf* _tmp1_;
	gint _tmp2_ = 0;
	gboolean _tmp5_;
	GdkPixbuf* _tmp6_;
	GdkPixbuf* _tmp7_;
	gint _tmp8_ = 0;
	gint width;
	GdkPixbuf* _tmp9_;
	gint _tmp10_ = 0;
	gint height;
	GdkPixbuf* _tmp11_;
	gint _tmp12_ = 0;
	gint rowstride;
	GdkPixbuf* _tmp13_;
	guint8* _tmp14_ = NULL;
	guint8* orig_pixels;
	gint orig_pixels_length1;
	gint _orig_pixels_size_;
	gint _tmp15_;
	gint _tmp16_;
	guint8* _tmp17_ = NULL;
	guint8* pixels;
	gint pixels_length1;
	gint _pixels_size_;
	guint8* _tmp65_;
	gint _tmp65__length1;
	guint8* _tmp66_;
	gint _tmp66__length1;
	GdkPixbuf* _tmp67_;
	GdkColorspace _tmp68_ = 0;
	gint _tmp69_;
	gint _tmp70_;
	gint _tmp71_;
	GdkPixbuf* _tmp72_;
	g_return_val_if_fail (pixbuf != NULL, NULL);
	_tmp1_ = pixbuf;
	_tmp2_ = gdk_pixbuf_get_n_channels (_tmp1_);
	if (_tmp2_ == 4) {
		GdkPixbuf* _tmp3_;
		gint _tmp4_ = 0;
		_tmp3_ = pixbuf;
		_tmp4_ = gdk_pixbuf_get_bits_per_sample (_tmp3_);
		_tmp0_ = _tmp4_ == 8;
	} else {
		_tmp0_ = FALSE;
	}
	_tmp5_ = _tmp0_;
	_tmp6_ = pixbuf;
	g_return_val_if_fail (_tmp5_, _tmp6_);
	_tmp7_ = pixbuf;
	_tmp8_ = gdk_pixbuf_get_width (_tmp7_);
	width = _tmp8_;
	_tmp9_ = pixbuf;
	_tmp10_ = gdk_pixbuf_get_height (_tmp9_);
	height = _tmp10_;
	_tmp11_ = pixbuf;
	_tmp12_ = gdk_pixbuf_get_rowstride (_tmp11_);
	rowstride = _tmp12_;
	_tmp13_ = pixbuf;
	_tmp14_ = gdk_pixbuf_get_pixels (_tmp13_);
	orig_pixels = _tmp14_;
	orig_pixels_length1 = -1;
	_orig_pixels_size_ = orig_pixels_length1;
	_tmp15_ = rowstride;
	_tmp16_ = height;
	_tmp17_ = g_new0 (guint8, _tmp15_ * _tmp16_);
	pixels = _tmp17_;
	pixels_length1 = _tmp15_ * _tmp16_;
	_pixels_size_ = pixels_length1;
	{
		gint i;
		i = 0;
		{
			gboolean _tmp18_;
			_tmp18_ = TRUE;
			while (TRUE) {
				gboolean _tmp19_;
				gint _tmp21_;
				gint _tmp22_;
				_tmp19_ = _tmp18_;
				if (!_tmp19_) {
					gint _tmp20_;
					_tmp20_ = i;
					i = _tmp20_ + 1;
				}
				_tmp18_ = FALSE;
				_tmp21_ = i;
				_tmp22_ = height;
				if (!(_tmp21_ < _tmp22_)) {
					break;
				}
				{
					gint j;
					gint k;
					j = 0;
					k = 0;
					{
						gboolean _tmp23_;
						_tmp23_ = TRUE;
						while (TRUE) {
							gboolean _tmp24_;
							gint _tmp27_;
							gint _tmp28_;
							gint _tmp29_;
							gint _tmp30_;
							gint _tmp31_;
							gint orig_index;
							gint _tmp32_;
							gint _tmp33_;
							gint _tmp34_;
							gint index;
							guint8* _tmp35_;
							gint _tmp35__length1;
							gint _tmp36_;
							guint8 _tmp37_;
							_tmp24_ = _tmp23_;
							if (!_tmp24_) {
								gint _tmp25_;
								gint _tmp26_;
								_tmp25_ = j;
								j = _tmp25_ + 4;
								_tmp26_ = k;
								k = _tmp26_ + 3;
							}
							_tmp23_ = FALSE;
							_tmp27_ = j;
							_tmp28_ = width;
							if (!(_tmp27_ < (_tmp28_ * 4))) {
								break;
							}
							_tmp29_ = rowstride;
							_tmp30_ = i;
							_tmp31_ = j;
							orig_index = (_tmp29_ * _tmp30_) + _tmp31_;
							_tmp32_ = rowstride;
							_tmp33_ = i;
							_tmp34_ = k;
							index = (_tmp32_ * _tmp33_) + _tmp34_;
							_tmp35_ = orig_pixels;
							_tmp35__length1 = orig_pixels_length1;
							_tmp36_ = orig_index;
							_tmp37_ = _tmp35_[_tmp36_ + 3];
							if (_tmp37_ < ALPHA_TRESHOLD) {
								guint8* _tmp38_;
								gint _tmp38__length1;
								gint _tmp39_;
								guint8 _tmp40_;
								guint8* _tmp41_;
								gint _tmp41__length1;
								gint _tmp42_;
								guint8 _tmp43_;
								guint8* _tmp44_;
								gint _tmp44__length1;
								gint _tmp45_;
								guint8 _tmp46_;
								_tmp38_ = pixels;
								_tmp38__length1 = pixels_length1;
								_tmp39_ = index;
								_tmp38_[_tmp39_] = (guint8) 0xFF;
								_tmp40_ = _tmp38_[_tmp39_];
								_tmp41_ = pixels;
								_tmp41__length1 = pixels_length1;
								_tmp42_ = index;
								_tmp41_[_tmp42_ + 1] = (guint8) 0xFF;
								_tmp43_ = _tmp41_[_tmp42_ + 1];
								_tmp44_ = pixels;
								_tmp44__length1 = pixels_length1;
								_tmp45_ = index;
								_tmp44_[_tmp45_ + 2] = (guint8) 0xFF;
								_tmp46_ = _tmp44_[_tmp45_ + 2];
							} else {
								guint8* _tmp47_;
								gint _tmp47__length1;
								gint _tmp48_;
								guint8* _tmp49_;
								gint _tmp49__length1;
								gint _tmp50_;
								guint8 _tmp51_;
								guint8 _tmp52_;
								guint8* _tmp53_;
								gint _tmp53__length1;
								gint _tmp54_;
								guint8* _tmp55_;
								gint _tmp55__length1;
								gint _tmp56_;
								guint8 _tmp57_;
								guint8 _tmp58_;
								guint8* _tmp59_;
								gint _tmp59__length1;
								gint _tmp60_;
								guint8* _tmp61_;
								gint _tmp61__length1;
								gint _tmp62_;
								guint8 _tmp63_;
								guint8 _tmp64_;
								_tmp47_ = pixels;
								_tmp47__length1 = pixels_length1;
								_tmp48_ = index;
								_tmp49_ = orig_pixels;
								_tmp49__length1 = orig_pixels_length1;
								_tmp50_ = orig_index;
								_tmp51_ = _tmp49_[_tmp50_];
								_tmp47_[_tmp48_] = _tmp51_;
								_tmp52_ = _tmp47_[_tmp48_];
								_tmp53_ = pixels;
								_tmp53__length1 = pixels_length1;
								_tmp54_ = index;
								_tmp55_ = orig_pixels;
								_tmp55__length1 = orig_pixels_length1;
								_tmp56_ = orig_index;
								_tmp57_ = _tmp55_[_tmp56_ + 1];
								_tmp53_[_tmp54_ + 1] = _tmp57_;
								_tmp58_ = _tmp53_[_tmp54_ + 1];
								_tmp59_ = pixels;
								_tmp59__length1 = pixels_length1;
								_tmp60_ = index;
								_tmp61_ = orig_pixels;
								_tmp61__length1 = orig_pixels_length1;
								_tmp62_ = orig_index;
								_tmp63_ = _tmp61_[_tmp62_ + 2];
								_tmp59_[_tmp60_ + 2] = _tmp63_;
								_tmp64_ = _tmp59_[_tmp60_ + 2];
							}
						}
					}
				}
			}
		}
	}
	_tmp65_ = pixels;
	_tmp65__length1 = pixels_length1;
	_tmp66_ = (_tmp65_ != NULL) ? _vala_array_dup6 (_tmp65_, _tmp65__length1) : ((gpointer) _tmp65_);
	_tmp66__length1 = _tmp65__length1;
	_tmp67_ = pixbuf;
	_tmp68_ = gdk_pixbuf_get_colorspace (_tmp67_);
	_tmp69_ = width;
	_tmp70_ = height;
	_tmp71_ = rowstride;
	_tmp72_ = gdk_pixbuf_new_from_data (_tmp66_, _tmp68_, FALSE, 8, _tmp69_, _tmp70_, _tmp71_, (GdkPixbufDestroyNotify) NULL, NULL);
	result = _tmp72_;
	pixels = (g_free (pixels), NULL);
	return result;
}


static Block40Data* block40_data_ref (Block40Data* _data40_) {
	g_atomic_int_inc (&_data40_->_ref_count_);
	return _data40_;
}


static void block40_data_unref (void * _userdata_) {
	Block40Data* _data40_;
	_data40_ = (Block40Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data40_->_ref_count_)) {
		_g_object_unref0 (_data40_->widget);
		g_slice_free (Block40Data, _data40_);
	}
}


static gboolean __lambda111_ (Block40Data* _data40_, cairo_t* cr) {
	gboolean result = FALSE;
	GtkWidget* _tmp0_;
	GtkStyleContext* _tmp1_ = NULL;
	GtkStyleContext* _tmp2_;
	GtkStyleContext* context;
	GtkAllocation allocation = {0};
	GtkWidget* _tmp3_;
	GtkAllocation _tmp4_ = {0};
	cairo_t* _tmp5_;
	GtkAllocation _tmp6_;
	gint _tmp7_;
	GtkAllocation _tmp8_;
	gint _tmp9_;
	cairo_t* _tmp10_;
	GtkAllocation _tmp11_;
	gint _tmp12_;
	GtkAllocation _tmp13_;
	gint _tmp14_;
	g_return_val_if_fail (cr != NULL, FALSE);
	_tmp0_ = _data40_->widget;
	_tmp1_ = gtk_widget_get_style_context (_tmp0_);
	_tmp2_ = _g_object_ref0 (_tmp1_);
	context = _tmp2_;
	_tmp3_ = _data40_->widget;
	gtk_widget_get_allocation (_tmp3_, &_tmp4_);
	allocation = _tmp4_;
	_tmp5_ = cr;
	_tmp6_ = allocation;
	_tmp7_ = _tmp6_.width;
	_tmp8_ = allocation;
	_tmp9_ = _tmp8_.height;
	gtk_render_background (context, _tmp5_, (gdouble) 0, (gdouble) 0, (gdouble) _tmp7_, (gdouble) _tmp9_);
	_tmp10_ = cr;
	_tmp11_ = allocation;
	_tmp12_ = _tmp11_.width;
	_tmp13_ = allocation;
	_tmp14_ = _tmp13_.height;
	gtk_render_frame (context, _tmp10_, (gdouble) 0, (gdouble) 0, (gdouble) _tmp12_, (gdouble) _tmp14_);
	result = FALSE;
	_g_object_unref0 (context);
	return result;
}


static gboolean ___lambda111__gtk_widget_draw (GtkWidget* _sender, cairo_t* cr, gpointer self) {
	gboolean result;
	result = __lambda111_ (self, cr);
	return result;
}


void boxes_draw_as_css_box (GtkWidget* widget) {
	Block40Data* _data40_;
	GtkWidget* _tmp0_;
	GtkWidget* _tmp1_;
	GtkWidget* _tmp2_;
	g_return_if_fail (widget != NULL);
	_data40_ = g_slice_new0 (Block40Data);
	_data40_->_ref_count_ = 1;
	_tmp0_ = widget;
	_tmp1_ = _g_object_ref0 (_tmp0_);
	_g_object_unref0 (_data40_->widget);
	_data40_->widget = _tmp1_;
	_tmp2_ = _data40_->widget;
	g_signal_connect_data (_tmp2_, "draw", (GCallback) ___lambda111__gtk_widget_draw, block40_data_ref (_data40_), (GClosureNotify) block40_data_unref, 0);
	block40_data_unref (_data40_);
	_data40_ = NULL;
}


gchar* boxes_uuid_generate (void) {
	gchar* result = NULL;
	guchar* _tmp0_ = NULL;
	guchar* udn;
	gint udn_length1;
	gint _udn_size_;
	guchar* _tmp1_ = NULL;
	guchar* id;
	gint id_length1;
	gint _id_size_;
	gchar* _tmp2_;
	_tmp0_ = g_new0 (guchar, 50);
	udn = _tmp0_;
	udn_length1 = 50;
	_udn_size_ = udn_length1;
	_tmp1_ = g_new0 (guchar, 16);
	id = _tmp1_;
	id_length1 = 16;
	_id_size_ = id_length1;
	uuid_generate (id);
	uuid_unparse (id, udn);
	_tmp2_ = g_strdup ((const gchar*) udn);
	result = _tmp2_;
	id = (g_free (id), NULL);
	udn = (g_free (udn), NULL);
	return result;
}


GIcon* boxes_create_symbolic_emblem (const gchar* name) {
	GIcon* result = NULL;
	const gchar* _tmp0_;
	GIcon* _tmp1_ = NULL;
	GIcon* pix;
	GIcon* _tmp2_;
	g_return_val_if_fail (name != NULL, NULL);
	_tmp0_ = name;
	_tmp1_ = gd_create_symbolic_icon (_tmp0_, 128);
	pix = _tmp1_;
	_tmp2_ = pix;
	if (_tmp2_ == NULL) {
		const gchar* _tmp3_;
		GThemedIcon* _tmp4_;
		_tmp3_ = name;
		_tmp4_ = (GThemedIcon*) g_themed_icon_new (_tmp3_);
		_g_object_unref0 (pix);
		pix = (GIcon*) _tmp4_;
	}
	result = pix;
	return result;
}


static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
	if ((array != NULL) && (destroy_func != NULL)) {
		int i;
		for (i = 0; i < array_length; i = i + 1) {
			if (((gpointer*) array)[i] != NULL) {
				destroy_func (((gpointer*) array)[i]);
			}
		}
	}
}


static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
	_vala_array_destroy (array, array_length, destroy_func);
	g_free (array);
}



