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

/* -*- Mode: vala; indent-tabs-mode: nil; tab-width: 4 -*-*/
/*-
 * Copyright (c) 2015 Adam Bieńkowski (https://launchpad.net/switchboard-plug-parental-controls)
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Library General Public
 * License as published by the Free Software Foundation; either
 * version 3 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Library General Public License for more details.
 *
 * You should have received a copy of the GNU Library General Public
 * License along with this library; if not, write to the
 * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
 * Boston, MA 02110-1301 USA
 *
 * Authored by: Adam Bieńkowski <donadigos159@gmail.com>
 */

#include <glib-object.h>
#include <gio/gio.h>
#include <stdlib.h>
#include <string.h>
#include <glib.h>
#include <polkit/polkit.h>
#include <act/act.h>
#include <unistd.h>
#include <gobject/gvaluecollector.h>

#define PC_CONSTANTS_PARENTAL_CONTROLS_IFACE "org.pantheon.ParentalControls"
#define PC_CONSTANTS_PARENTAL_CONTROLS_OBJECT_PATH "/org/pantheon/ParentalControls"
#define PC_CONSTANTS_PARENTAL_CONTROLS_ACTION_ID "io.elementary.settings.screentime-limits.administration"
#define PC_CONSTANTS_CLIENT_PATH "/usr/lib/pantheon-parental-controls-client"
#if !defined(VALA_STRICT_C)
#if !defined(__clang__) && defined(__GNUC__) && (__GNUC__ >= 14)
#pragma GCC diagnostic warning "-Wincompatible-pointer-types"
#elif defined(__clang__) && (__clang_major__ >= 16)
#pragma clang diagnostic ignored "-Wincompatible-function-pointer-types"
#pragma clang diagnostic ignored "-Wincompatible-pointer-types"
#endif
#endif
#if !defined(VALA_EXTERN)
#if defined(_MSC_VER)
#define VALA_EXTERN __declspec(dllexport) extern
#elif __GNUC__ >= 4
#define VALA_EXTERN __attribute__((visibility("default"))) extern
#else
#define VALA_EXTERN extern
#endif
#endif

#define PC_TYPE_CUPS_PK_HELPER (pc_cups_pk_helper_get_type ())
#define PC_CUPS_PK_HELPER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PC_TYPE_CUPS_PK_HELPER, PCCupsPkHelper))
#define PC_IS_CUPS_PK_HELPER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PC_TYPE_CUPS_PK_HELPER))
#define PC_CUPS_PK_HELPER_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), PC_TYPE_CUPS_PK_HELPER, PCCupsPkHelperIface))

typedef struct _PCCupsPkHelper PCCupsPkHelper;
typedef struct _PCCupsPkHelperIface PCCupsPkHelperIface;

#define PC_TYPE_CUPS_PK_HELPER_PROXY (pc_cups_pk_helper_proxy_get_type ())
typedef GDBusProxy PCCupsPkHelperProxy;
typedef GDBusProxyClass PCCupsPkHelperProxyClass;
#define _g_free0(var) (var = (g_free (var), NULL))

#define PC_TYPE_IPARENTAL_CONTROLS (pc_iparental_controls_get_type ())
#define PC_IPARENTAL_CONTROLS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PC_TYPE_IPARENTAL_CONTROLS, PCIParentalControls))
#define PC_IS_IPARENTAL_CONTROLS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PC_TYPE_IPARENTAL_CONTROLS))
#define PC_IPARENTAL_CONTROLS_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), PC_TYPE_IPARENTAL_CONTROLS, PCIParentalControlsIface))

typedef struct _PCIParentalControls PCIParentalControls;
typedef struct _PCIParentalControlsIface PCIParentalControlsIface;

#define PC_TYPE_IPARENTAL_CONTROLS_PROXY (pc_iparental_controls_proxy_get_type ())
enum  {
	PC_IPARENTAL_CONTROLS_LAUNCH_SIGNAL,
	PC_IPARENTAL_CONTROLS_SHOW_TIMEOUT_SIGNAL,
	PC_IPARENTAL_CONTROLS_USER_CONFIG_CHANGED_SIGNAL,
	PC_IPARENTAL_CONTROLS_NUM_SIGNALS
};
static guint pc_iparental_controls_signals[PC_IPARENTAL_CONTROLS_NUM_SIGNALS] = {0};
typedef GDBusProxy PCIParentalControlsProxy;
typedef GDBusProxyClass PCIParentalControlsProxyClass;
typedef struct _PcIparentalControlsAddRestrictionForUserReadyData PcIparentalControlsAddRestrictionForUserReadyData;
typedef struct _PcIparentalControlsRemoveRestrictionForUserReadyData PcIparentalControlsRemoveRestrictionForUserReadyData;
typedef struct _PcIparentalControlsFinishAppAuthorizationReadyData PcIparentalControlsFinishAppAuthorizationReadyData;
typedef struct _PcIparentalControlsGetUserDaemonActiveReadyData PcIparentalControlsGetUserDaemonActiveReadyData;
typedef struct _PcIparentalControlsGetUserDaemonAdminReadyData PcIparentalControlsGetUserDaemonAdminReadyData;
typedef struct _PcIparentalControlsGetUserDaemonBlockUrlsReadyData PcIparentalControlsGetUserDaemonBlockUrlsReadyData;
typedef struct _PcIparentalControlsGetUserDaemonTargetsReadyData PcIparentalControlsGetUserDaemonTargetsReadyData;
typedef struct _PcIparentalControlsLockDockIconsForUserReadyData PcIparentalControlsLockDockIconsForUserReadyData;
typedef struct _PcIparentalControlsSetUserDaemonActiveReadyData PcIparentalControlsSetUserDaemonActiveReadyData;
typedef struct _PcIparentalControlsSetUserDaemonAdminReadyData PcIparentalControlsSetUserDaemonAdminReadyData;
typedef struct _PcIparentalControlsSetUserDaemonBlockUrlsReadyData PcIparentalControlsSetUserDaemonBlockUrlsReadyData;
typedef struct _PcIparentalControlsSetUserDaemonTargetsReadyData PcIparentalControlsSetUserDaemonTargetsReadyData;

#define PC_TYPE_UTILS (pc_utils_get_type ())
#define PC_UTILS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PC_TYPE_UTILS, PCUtils))
#define PC_UTILS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PC_TYPE_UTILS, PCUtilsClass))
#define PC_IS_UTILS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PC_TYPE_UTILS))
#define PC_IS_UTILS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PC_TYPE_UTILS))
#define PC_UTILS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PC_TYPE_UTILS, PCUtilsClass))

typedef struct _PCUtils PCUtils;
typedef struct _PCUtilsClass PCUtilsClass;
typedef struct _PCUtilsPrivate PCUtilsPrivate;
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))

#define PC_UTILS_TYPE_DUMMY_PARENTAL_CONTROLS (pc_utils_dummy_parental_controls_get_type ())
#define PC_UTILS_DUMMY_PARENTAL_CONTROLS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PC_UTILS_TYPE_DUMMY_PARENTAL_CONTROLS, PCUtilsDummyParentalControls))
#define PC_UTILS_DUMMY_PARENTAL_CONTROLS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PC_UTILS_TYPE_DUMMY_PARENTAL_CONTROLS, PCUtilsDummyParentalControlsClass))
#define PC_UTILS_IS_DUMMY_PARENTAL_CONTROLS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PC_UTILS_TYPE_DUMMY_PARENTAL_CONTROLS))
#define PC_UTILS_IS_DUMMY_PARENTAL_CONTROLS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PC_UTILS_TYPE_DUMMY_PARENTAL_CONTROLS))
#define PC_UTILS_DUMMY_PARENTAL_CONTROLS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PC_UTILS_TYPE_DUMMY_PARENTAL_CONTROLS, PCUtilsDummyParentalControlsClass))

typedef struct _PCUtilsDummyParentalControls PCUtilsDummyParentalControls;
typedef struct _PCUtilsDummyParentalControlsClass PCUtilsDummyParentalControlsClass;
#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
#define _g_regex_unref0(var) ((var == NULL) ? NULL : (var = (g_regex_unref (var), NULL)))
typedef struct _PCUtilsDummyParentalControlsPrivate PCUtilsDummyParentalControlsPrivate;
enum  {
	PC_UTILS_DUMMY_PARENTAL_CONTROLS_0_PROPERTY,
	PC_UTILS_DUMMY_PARENTAL_CONTROLS_NUM_PROPERTIES
};
static GParamSpec* pc_utils_dummy_parental_controls_properties[PC_UTILS_DUMMY_PARENTAL_CONTROLS_NUM_PROPERTIES];
typedef struct _PcUtilsDummyParentalControlsAddRestrictionForUserData PcUtilsDummyParentalControlsAddRestrictionForUserData;
typedef struct _PcUtilsDummyParentalControlsRemoveRestrictionForUserData PcUtilsDummyParentalControlsRemoveRestrictionForUserData;
typedef struct _PcUtilsDummyParentalControlsFinishAppAuthorizationData PcUtilsDummyParentalControlsFinishAppAuthorizationData;
typedef struct _PcUtilsDummyParentalControlsGetUserDaemonActiveData PcUtilsDummyParentalControlsGetUserDaemonActiveData;
typedef struct _PcUtilsDummyParentalControlsGetUserDaemonAdminData PcUtilsDummyParentalControlsGetUserDaemonAdminData;
typedef struct _PcUtilsDummyParentalControlsGetUserDaemonBlockUrlsData PcUtilsDummyParentalControlsGetUserDaemonBlockUrlsData;
typedef struct _PcUtilsDummyParentalControlsGetUserDaemonTargetsData PcUtilsDummyParentalControlsGetUserDaemonTargetsData;
typedef struct _PcUtilsDummyParentalControlsLockDockIconsForUserData PcUtilsDummyParentalControlsLockDockIconsForUserData;
typedef struct _PcUtilsDummyParentalControlsSetUserDaemonActiveData PcUtilsDummyParentalControlsSetUserDaemonActiveData;
typedef struct _PcUtilsDummyParentalControlsSetUserDaemonAdminData PcUtilsDummyParentalControlsSetUserDaemonAdminData;
typedef struct _PcUtilsDummyParentalControlsSetUserDaemonBlockUrlsData PcUtilsDummyParentalControlsSetUserDaemonBlockUrlsData;
typedef struct _PcUtilsDummyParentalControlsSetUserDaemonTargetsData PcUtilsDummyParentalControlsSetUserDaemonTargetsData;
typedef struct _PCParamSpecUtils PCParamSpecUtils;

struct _PCCupsPkHelperIface {
	GTypeInterface parent_iface;
	void (*printer_set_users_allowed) (PCCupsPkHelper* self, const gchar* printer, gchar** users, gint users_length1, GError** error);
	void (*printer_set_users_denied) (PCCupsPkHelper* self, const gchar* printer, gchar** users, gint users_length1, GError** error);
};

struct _PCIParentalControlsIface {
	GTypeInterface parent_iface;
	void (*add_restriction_for_user) (PCIParentalControls* self, const gchar* input, gboolean clean, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*add_restriction_for_user_finish) (PCIParentalControls* self, GAsyncResult* _res_, GError** error);
	void (*remove_restriction_for_user) (PCIParentalControls* self, const gchar* username, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*remove_restriction_for_user_finish) (PCIParentalControls* self, GAsyncResult* _res_, GError** error);
	void (*finish_app_authorization) (PCIParentalControls* self, const gchar* username, gchar** args, gint args_length1, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*finish_app_authorization_finish) (PCIParentalControls* self, GAsyncResult* _res_, GError** error);
	void (*get_user_daemon_active) (PCIParentalControls* self, const gchar* username, GAsyncReadyCallback _callback_, gpointer _user_data_);
	gboolean (*get_user_daemon_active_finish) (PCIParentalControls* self, GAsyncResult* _res_, GError** error);
	void (*get_user_daemon_admin) (PCIParentalControls* self, const gchar* username, GAsyncReadyCallback _callback_, gpointer _user_data_);
	gboolean (*get_user_daemon_admin_finish) (PCIParentalControls* self, GAsyncResult* _res_, GError** error);
	void (*get_user_daemon_block_urls) (PCIParentalControls* self, const gchar* username, GAsyncReadyCallback _callback_, gpointer _user_data_);
	gchar** (*get_user_daemon_block_urls_finish) (PCIParentalControls* self, GAsyncResult* _res_, gint* result_length1, GError** error);
	void (*get_user_daemon_targets) (PCIParentalControls* self, const gchar* username, GAsyncReadyCallback _callback_, gpointer _user_data_);
	gchar** (*get_user_daemon_targets_finish) (PCIParentalControls* self, GAsyncResult* _res_, gint* result_length1, GError** error);
	void (*lock_dock_icons_for_user) (PCIParentalControls* self, const gchar* username, gboolean lock, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*lock_dock_icons_for_user_finish) (PCIParentalControls* self, GAsyncResult* _res_, GError** error);
	void (*set_user_daemon_active) (PCIParentalControls* self, const gchar* username, gboolean active, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*set_user_daemon_active_finish) (PCIParentalControls* self, GAsyncResult* _res_, GError** error);
	void (*set_user_daemon_admin) (PCIParentalControls* self, const gchar* username, gboolean admin, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*set_user_daemon_admin_finish) (PCIParentalControls* self, GAsyncResult* _res_, GError** error);
	void (*set_user_daemon_block_urls) (PCIParentalControls* self, const gchar* username, gchar** block_urls, gint block_urls_length1, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*set_user_daemon_block_urls_finish) (PCIParentalControls* self, GAsyncResult* _res_, GError** error);
	void (*set_user_daemon_targets) (PCIParentalControls* self, const gchar* username, gchar** targets, gint targets_length1, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*set_user_daemon_targets_finish) (PCIParentalControls* self, GAsyncResult* _res_, GError** error);
};

struct _PcIparentalControlsAddRestrictionForUserReadyData {
	GDBusMethodInvocation* _invocation_;
	gchar* input;
	gboolean clean;
};

struct _PcIparentalControlsRemoveRestrictionForUserReadyData {
	GDBusMethodInvocation* _invocation_;
	gchar* username;
};

struct _PcIparentalControlsFinishAppAuthorizationReadyData {
	GDBusMethodInvocation* _invocation_;
	gchar* username;
	gchar** args;
	gint args_length1;
};

struct _PcIparentalControlsGetUserDaemonActiveReadyData {
	GDBusMethodInvocation* _invocation_;
	gchar* username;
};

struct _PcIparentalControlsGetUserDaemonAdminReadyData {
	GDBusMethodInvocation* _invocation_;
	gchar* username;
};

struct _PcIparentalControlsGetUserDaemonBlockUrlsReadyData {
	GDBusMethodInvocation* _invocation_;
	gchar* username;
};

struct _PcIparentalControlsGetUserDaemonTargetsReadyData {
	GDBusMethodInvocation* _invocation_;
	gchar* username;
};

struct _PcIparentalControlsLockDockIconsForUserReadyData {
	GDBusMethodInvocation* _invocation_;
	gchar* username;
	gboolean lock;
};

struct _PcIparentalControlsSetUserDaemonActiveReadyData {
	GDBusMethodInvocation* _invocation_;
	gchar* username;
	gboolean active;
};

struct _PcIparentalControlsSetUserDaemonAdminReadyData {
	GDBusMethodInvocation* _invocation_;
	gchar* username;
	gboolean admin;
};

struct _PcIparentalControlsSetUserDaemonBlockUrlsReadyData {
	GDBusMethodInvocation* _invocation_;
	gchar* username;
	gchar** block_urls;
	gint block_urls_length1;
};

struct _PcIparentalControlsSetUserDaemonTargetsReadyData {
	GDBusMethodInvocation* _invocation_;
	gchar* username;
	gchar** targets;
	gint targets_length1;
};

struct _PCUtils {
	GTypeInstance parent_instance;
	volatile int ref_count;
	PCUtilsPrivate * priv;
};

struct _PCUtilsClass {
	GTypeClass parent_class;
	void (*finalize) (PCUtils *self);
};

struct _PCUtilsDummyParentalControls {
	GObject parent_instance;
	PCUtilsDummyParentalControlsPrivate * priv;
};

struct _PCUtilsDummyParentalControlsClass {
	GObjectClass parent_class;
};

struct _PcUtilsDummyParentalControlsAddRestrictionForUserData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GTask* _async_result;
	PCUtilsDummyParentalControls* self;
	gchar* input;
	gboolean clean;
};

struct _PcUtilsDummyParentalControlsRemoveRestrictionForUserData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GTask* _async_result;
	PCUtilsDummyParentalControls* self;
	gchar* username;
};

struct _PcUtilsDummyParentalControlsFinishAppAuthorizationData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GTask* _async_result;
	PCUtilsDummyParentalControls* self;
	gchar* username;
	gchar** args;
	gint args_length1;
};

struct _PcUtilsDummyParentalControlsGetUserDaemonActiveData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GTask* _async_result;
	PCUtilsDummyParentalControls* self;
	gchar* username;
	gboolean result;
};

struct _PcUtilsDummyParentalControlsGetUserDaemonAdminData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GTask* _async_result;
	PCUtilsDummyParentalControls* self;
	gchar* username;
	gboolean result;
};

struct _PcUtilsDummyParentalControlsGetUserDaemonBlockUrlsData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GTask* _async_result;
	PCUtilsDummyParentalControls* self;
	gchar* username;
	gchar** result;
	gint result_length1;
	gchar** _tmp0_;
	gchar** _tmp1_;
	gint _tmp1__length1;
};

struct _PcUtilsDummyParentalControlsGetUserDaemonTargetsData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GTask* _async_result;
	PCUtilsDummyParentalControls* self;
	gchar* username;
	gchar** result;
	gint result_length1;
	gchar** _tmp0_;
	gchar** _tmp1_;
	gint _tmp1__length1;
};

struct _PcUtilsDummyParentalControlsLockDockIconsForUserData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GTask* _async_result;
	PCUtilsDummyParentalControls* self;
	gchar* username;
	gboolean lock;
};

struct _PcUtilsDummyParentalControlsSetUserDaemonActiveData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GTask* _async_result;
	PCUtilsDummyParentalControls* self;
	gchar* username;
	gboolean active;
};

struct _PcUtilsDummyParentalControlsSetUserDaemonAdminData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GTask* _async_result;
	PCUtilsDummyParentalControls* self;
	gchar* username;
	gboolean admin;
};

struct _PcUtilsDummyParentalControlsSetUserDaemonBlockUrlsData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GTask* _async_result;
	PCUtilsDummyParentalControls* self;
	gchar* username;
	gchar** block_urls;
	gint block_urls_length1;
};

struct _PcUtilsDummyParentalControlsSetUserDaemonTargetsData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GTask* _async_result;
	PCUtilsDummyParentalControls* self;
	gchar* username;
	gchar** targets;
	gint targets_length1;
};

struct _PCParamSpecUtils {
	GParamSpec parent_instance;
};

static gpointer pc_utils_parent_class = NULL;
static PolkitPermission* pc_utils_permission;
static PolkitPermission* pc_utils_permission = NULL;
static ActUserManager* pc_utils_usermanager;
static ActUserManager* pc_utils_usermanager = NULL;
static PCIParentalControls* pc_utils_api;
static PCIParentalControls* pc_utils_api = NULL;
static gpointer pc_utils_dummy_parental_controls_parent_class = NULL;
static PCIParentalControlsIface * pc_utils_dummy_parental_controls_pc_iparental_controls_parent_iface = NULL;

VALA_EXTERN GType pc_cups_pk_helper_proxy_get_type (void) G_GNUC_CONST ;
VALA_EXTERN guint pc_cups_pk_helper_register_object (void* object,
                                         GDBusConnection* connection,
                                         const gchar* path,
                                         GError** error);
VALA_EXTERN GType pc_cups_pk_helper_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (PCCupsPkHelper, g_object_unref)
VALA_EXTERN void pc_cups_pk_helper_printer_set_users_allowed (PCCupsPkHelper* self,
                                                  const gchar* printer,
                                                  gchar** users,
                                                  gint users_length1,
                                                  GError** error);
VALA_EXTERN void pc_cups_pk_helper_printer_set_users_denied (PCCupsPkHelper* self,
                                                 const gchar* printer,
                                                 gchar** users,
                                                 gint users_length1,
                                                 GError** error);
static GType pc_cups_pk_helper_get_type_once (void);
static void pc_cups_pk_helper_proxy_g_signal (GDBusProxy* proxy,
                                       const gchar* sender_name,
                                       const gchar* signal_name,
                                       GVariant* parameters);
static void pc_cups_pk_helper_proxy_printer_set_users_allowed (PCCupsPkHelper* self,
                                                        const gchar* printer,
                                                        gchar** users,
                                                        gint users_length1,
                                                        GError** error);
static void pc_cups_pk_helper_proxy_printer_set_users_denied (PCCupsPkHelper* self,
                                                       const gchar* printer,
                                                       gchar** users,
                                                       gint users_length1,
                                                       GError** error);
static void pc_cups_pk_helper_proxy_pc_cups_pk_helper_interface_init (PCCupsPkHelperIface* iface);
static void _dbus_pc_cups_pk_helper_printer_set_users_allowed (PCCupsPkHelper* self,
                                                        GVariant* _parameters_,
                                                        GDBusMethodInvocation* invocation);
static void _dbus_pc_cups_pk_helper_printer_set_users_denied (PCCupsPkHelper* self,
                                                       GVariant* _parameters_,
                                                       GDBusMethodInvocation* invocation);
static void pc_cups_pk_helper_dbus_interface_method_call (GDBusConnection* connection,
                                                   const gchar* sender,
                                                   const gchar* object_path,
                                                   const gchar* interface_name,
                                                   const gchar* method_name,
                                                   GVariant* parameters,
                                                   GDBusMethodInvocation* invocation,
                                                   gpointer user_data);
static GVariant* pc_cups_pk_helper_dbus_interface_get_property (GDBusConnection* connection,
                                                         const gchar* sender,
                                                         const gchar* object_path,
                                                         const gchar* interface_name,
                                                         const gchar* property_name,
                                                         GError** error,
                                                         gpointer user_data);
static gboolean pc_cups_pk_helper_dbus_interface_set_property (GDBusConnection* connection,
                                                        const gchar* sender,
                                                        const gchar* object_path,
                                                        const gchar* interface_name,
                                                        const gchar* property_name,
                                                        GVariant* value,
                                                        GError** error,
                                                        gpointer user_data);
static void _pc_cups_pk_helper_unregister_object (gpointer user_data);
VALA_EXTERN GType pc_iparental_controls_proxy_get_type (void) G_GNUC_CONST ;
VALA_EXTERN guint pc_iparental_controls_register_object (void* object,
                                             GDBusConnection* connection,
                                             const gchar* path,
                                             GError** error);
VALA_EXTERN GType pc_iparental_controls_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (PCIParentalControls, g_object_unref)
VALA_EXTERN void pc_iparental_controls_add_restriction_for_user (PCIParentalControls* self,
                                                     const gchar* input,
                                                     gboolean clean,
                                                     GAsyncReadyCallback _callback_,
                                                     gpointer _user_data_);
VALA_EXTERN void pc_iparental_controls_add_restriction_for_user_finish (PCIParentalControls* self,
                                                            GAsyncResult* _res_,
                                                            GError** error);
VALA_EXTERN void pc_iparental_controls_remove_restriction_for_user (PCIParentalControls* self,
                                                        const gchar* username,
                                                        GAsyncReadyCallback _callback_,
                                                        gpointer _user_data_);
VALA_EXTERN void pc_iparental_controls_remove_restriction_for_user_finish (PCIParentalControls* self,
                                                               GAsyncResult* _res_,
                                                               GError** error);
VALA_EXTERN void pc_iparental_controls_finish_app_authorization (PCIParentalControls* self,
                                                     const gchar* username,
                                                     gchar** args,
                                                     gint args_length1,
                                                     GAsyncReadyCallback _callback_,
                                                     gpointer _user_data_);
VALA_EXTERN void pc_iparental_controls_finish_app_authorization_finish (PCIParentalControls* self,
                                                            GAsyncResult* _res_,
                                                            GError** error);
VALA_EXTERN void pc_iparental_controls_get_user_daemon_active (PCIParentalControls* self,
                                                   const gchar* username,
                                                   GAsyncReadyCallback _callback_,
                                                   gpointer _user_data_);
VALA_EXTERN gboolean pc_iparental_controls_get_user_daemon_active_finish (PCIParentalControls* self,
                                                              GAsyncResult* _res_,
                                                              GError** error);
VALA_EXTERN void pc_iparental_controls_get_user_daemon_admin (PCIParentalControls* self,
                                                  const gchar* username,
                                                  GAsyncReadyCallback _callback_,
                                                  gpointer _user_data_);
VALA_EXTERN gboolean pc_iparental_controls_get_user_daemon_admin_finish (PCIParentalControls* self,
                                                             GAsyncResult* _res_,
                                                             GError** error);
VALA_EXTERN void pc_iparental_controls_get_user_daemon_block_urls (PCIParentalControls* self,
                                                       const gchar* username,
                                                       GAsyncReadyCallback _callback_,
                                                       gpointer _user_data_);
VALA_EXTERN gchar** pc_iparental_controls_get_user_daemon_block_urls_finish (PCIParentalControls* self,
                                                                 GAsyncResult* _res_,
                                                                 gint* result_length1,
                                                                 GError** error);
VALA_EXTERN void pc_iparental_controls_get_user_daemon_targets (PCIParentalControls* self,
                                                    const gchar* username,
                                                    GAsyncReadyCallback _callback_,
                                                    gpointer _user_data_);
VALA_EXTERN gchar** pc_iparental_controls_get_user_daemon_targets_finish (PCIParentalControls* self,
                                                              GAsyncResult* _res_,
                                                              gint* result_length1,
                                                              GError** error);
VALA_EXTERN void pc_iparental_controls_lock_dock_icons_for_user (PCIParentalControls* self,
                                                     const gchar* username,
                                                     gboolean lock,
                                                     GAsyncReadyCallback _callback_,
                                                     gpointer _user_data_);
VALA_EXTERN void pc_iparental_controls_lock_dock_icons_for_user_finish (PCIParentalControls* self,
                                                            GAsyncResult* _res_,
                                                            GError** error);
VALA_EXTERN void pc_iparental_controls_set_user_daemon_active (PCIParentalControls* self,
                                                   const gchar* username,
                                                   gboolean active,
                                                   GAsyncReadyCallback _callback_,
                                                   gpointer _user_data_);
VALA_EXTERN void pc_iparental_controls_set_user_daemon_active_finish (PCIParentalControls* self,
                                                          GAsyncResult* _res_,
                                                          GError** error);
VALA_EXTERN void pc_iparental_controls_set_user_daemon_admin (PCIParentalControls* self,
                                                  const gchar* username,
                                                  gboolean admin,
                                                  GAsyncReadyCallback _callback_,
                                                  gpointer _user_data_);
VALA_EXTERN void pc_iparental_controls_set_user_daemon_admin_finish (PCIParentalControls* self,
                                                         GAsyncResult* _res_,
                                                         GError** error);
VALA_EXTERN void pc_iparental_controls_set_user_daemon_block_urls (PCIParentalControls* self,
                                                       const gchar* username,
                                                       gchar** block_urls,
                                                       gint block_urls_length1,
                                                       GAsyncReadyCallback _callback_,
                                                       gpointer _user_data_);
VALA_EXTERN void pc_iparental_controls_set_user_daemon_block_urls_finish (PCIParentalControls* self,
                                                              GAsyncResult* _res_,
                                                              GError** error);
VALA_EXTERN void pc_iparental_controls_set_user_daemon_targets (PCIParentalControls* self,
                                                    const gchar* username,
                                                    gchar** targets,
                                                    gint targets_length1,
                                                    GAsyncReadyCallback _callback_,
                                                    gpointer _user_data_);
VALA_EXTERN void pc_iparental_controls_set_user_daemon_targets_finish (PCIParentalControls* self,
                                                           GAsyncResult* _res_,
                                                           GError** error);
static void g_cclosure_user_marshal_VOID__BOXED_INT_BOOLEAN (GClosure * closure,
                                                      GValue * return_value,
                                                      guint n_param_values,
                                                      const GValue * param_values,
                                                      gpointer invocation_hint,
                                                      gpointer marshal_data);
static void g_cclosure_user_marshal_VOID__INT_INT (GClosure * closure,
                                            GValue * return_value,
                                            guint n_param_values,
                                            const GValue * param_values,
                                            gpointer invocation_hint,
                                            gpointer marshal_data);
static GType pc_iparental_controls_get_type_once (void);
static void pc_iparental_controls_proxy_g_signal (GDBusProxy* proxy,
                                           const gchar* sender_name,
                                           const gchar* signal_name,
                                           GVariant* parameters);
static void _dbus_handle_pc_iparental_controls_launch (PCIParentalControls* self,
                                                GVariant* parameters);
static void _dbus_handle_pc_iparental_controls_show_timeout (PCIParentalControls* self,
                                                      GVariant* parameters);
static void _dbus_handle_pc_iparental_controls_user_config_changed (PCIParentalControls* self,
                                                             GVariant* parameters);
static void _vala_g_async_ready_callback (GObject *source_object,
                                   GAsyncResult *res,
                                   void *user_data);
static void pc_iparental_controls_proxy_add_restriction_for_user_async (PCIParentalControls* self,
                                                                 const gchar* input,
                                                                 gboolean clean,
                                                                 GAsyncReadyCallback _callback_,
                                                                 gpointer _user_data_);
static void pc_iparental_controls_proxy_add_restriction_for_user_finish (PCIParentalControls* self,
                                                                  GAsyncResult* _res_,
                                                                  GError** error);
static void pc_iparental_controls_proxy_remove_restriction_for_user_async (PCIParentalControls* self,
                                                                    const gchar* username,
                                                                    GAsyncReadyCallback _callback_,
                                                                    gpointer _user_data_);
static void pc_iparental_controls_proxy_remove_restriction_for_user_finish (PCIParentalControls* self,
                                                                     GAsyncResult* _res_,
                                                                     GError** error);
static void pc_iparental_controls_proxy_finish_app_authorization_async (PCIParentalControls* self,
                                                                 const gchar* username,
                                                                 gchar** args,
                                                                 gint args_length1,
                                                                 GAsyncReadyCallback _callback_,
                                                                 gpointer _user_data_);
static void pc_iparental_controls_proxy_finish_app_authorization_finish (PCIParentalControls* self,
                                                                  GAsyncResult* _res_,
                                                                  GError** error);
static void pc_iparental_controls_proxy_get_user_daemon_active_async (PCIParentalControls* self,
                                                               const gchar* username,
                                                               GAsyncReadyCallback _callback_,
                                                               gpointer _user_data_);
static gboolean pc_iparental_controls_proxy_get_user_daemon_active_finish (PCIParentalControls* self,
                                                                    GAsyncResult* _res_,
                                                                    GError** error);
static void pc_iparental_controls_proxy_get_user_daemon_admin_async (PCIParentalControls* self,
                                                              const gchar* username,
                                                              GAsyncReadyCallback _callback_,
                                                              gpointer _user_data_);
static gboolean pc_iparental_controls_proxy_get_user_daemon_admin_finish (PCIParentalControls* self,
                                                                   GAsyncResult* _res_,
                                                                   GError** error);
static void pc_iparental_controls_proxy_get_user_daemon_block_urls_async (PCIParentalControls* self,
                                                                   const gchar* username,
                                                                   GAsyncReadyCallback _callback_,
                                                                   gpointer _user_data_);
static gchar** pc_iparental_controls_proxy_get_user_daemon_block_urls_finish (PCIParentalControls* self,
                                                                       GAsyncResult* _res_,
                                                                       gint* result_length1,
                                                                       GError** error);
static void pc_iparental_controls_proxy_get_user_daemon_targets_async (PCIParentalControls* self,
                                                                const gchar* username,
                                                                GAsyncReadyCallback _callback_,
                                                                gpointer _user_data_);
static gchar** pc_iparental_controls_proxy_get_user_daemon_targets_finish (PCIParentalControls* self,
                                                                    GAsyncResult* _res_,
                                                                    gint* result_length1,
                                                                    GError** error);
static void pc_iparental_controls_proxy_lock_dock_icons_for_user_async (PCIParentalControls* self,
                                                                 const gchar* username,
                                                                 gboolean lock,
                                                                 GAsyncReadyCallback _callback_,
                                                                 gpointer _user_data_);
static void pc_iparental_controls_proxy_lock_dock_icons_for_user_finish (PCIParentalControls* self,
                                                                  GAsyncResult* _res_,
                                                                  GError** error);
static void pc_iparental_controls_proxy_set_user_daemon_active_async (PCIParentalControls* self,
                                                               const gchar* username,
                                                               gboolean active,
                                                               GAsyncReadyCallback _callback_,
                                                               gpointer _user_data_);
static void pc_iparental_controls_proxy_set_user_daemon_active_finish (PCIParentalControls* self,
                                                                GAsyncResult* _res_,
                                                                GError** error);
static void pc_iparental_controls_proxy_set_user_daemon_admin_async (PCIParentalControls* self,
                                                              const gchar* username,
                                                              gboolean admin,
                                                              GAsyncReadyCallback _callback_,
                                                              gpointer _user_data_);
static void pc_iparental_controls_proxy_set_user_daemon_admin_finish (PCIParentalControls* self,
                                                               GAsyncResult* _res_,
                                                               GError** error);
static void pc_iparental_controls_proxy_set_user_daemon_block_urls_async (PCIParentalControls* self,
                                                                   const gchar* username,
                                                                   gchar** block_urls,
                                                                   gint block_urls_length1,
                                                                   GAsyncReadyCallback _callback_,
                                                                   gpointer _user_data_);
static void pc_iparental_controls_proxy_set_user_daemon_block_urls_finish (PCIParentalControls* self,
                                                                    GAsyncResult* _res_,
                                                                    GError** error);
static void pc_iparental_controls_proxy_set_user_daemon_targets_async (PCIParentalControls* self,
                                                                const gchar* username,
                                                                gchar** targets,
                                                                gint targets_length1,
                                                                GAsyncReadyCallback _callback_,
                                                                gpointer _user_data_);
static void pc_iparental_controls_proxy_set_user_daemon_targets_finish (PCIParentalControls* self,
                                                                 GAsyncResult* _res_,
                                                                 GError** error);
static void pc_iparental_controls_proxy_pc_iparental_controls_interface_init (PCIParentalControlsIface* iface);
static void _dbus_pc_iparental_controls_add_restriction_for_user (PCIParentalControls* self,
                                                           GVariant* _parameters_,
                                                           GDBusMethodInvocation* invocation);
static void _dbus_pc_iparental_controls_add_restriction_for_user_ready (GObject * source_object,
                                                                 GAsyncResult * _res_,
                                                                 gpointer _user_data_);
static void _dbus_pc_iparental_controls_remove_restriction_for_user (PCIParentalControls* self,
                                                              GVariant* _parameters_,
                                                              GDBusMethodInvocation* invocation);
static void _dbus_pc_iparental_controls_remove_restriction_for_user_ready (GObject * source_object,
                                                                    GAsyncResult * _res_,
                                                                    gpointer _user_data_);
static void _dbus_pc_iparental_controls_finish_app_authorization (PCIParentalControls* self,
                                                           GVariant* _parameters_,
                                                           GDBusMethodInvocation* invocation);
static void _dbus_pc_iparental_controls_finish_app_authorization_ready (GObject * source_object,
                                                                 GAsyncResult * _res_,
                                                                 gpointer _user_data_);
static void _dbus_pc_iparental_controls_get_user_daemon_active (PCIParentalControls* self,
                                                         GVariant* _parameters_,
                                                         GDBusMethodInvocation* invocation);
static void _dbus_pc_iparental_controls_get_user_daemon_active_ready (GObject * source_object,
                                                               GAsyncResult * _res_,
                                                               gpointer _user_data_);
static void _dbus_pc_iparental_controls_get_user_daemon_admin (PCIParentalControls* self,
                                                        GVariant* _parameters_,
                                                        GDBusMethodInvocation* invocation);
static void _dbus_pc_iparental_controls_get_user_daemon_admin_ready (GObject * source_object,
                                                              GAsyncResult * _res_,
                                                              gpointer _user_data_);
static void _dbus_pc_iparental_controls_get_user_daemon_block_urls (PCIParentalControls* self,
                                                             GVariant* _parameters_,
                                                             GDBusMethodInvocation* invocation);
static void _dbus_pc_iparental_controls_get_user_daemon_block_urls_ready (GObject * source_object,
                                                                   GAsyncResult * _res_,
                                                                   gpointer _user_data_);
static void _dbus_pc_iparental_controls_get_user_daemon_targets (PCIParentalControls* self,
                                                          GVariant* _parameters_,
                                                          GDBusMethodInvocation* invocation);
static void _dbus_pc_iparental_controls_get_user_daemon_targets_ready (GObject * source_object,
                                                                GAsyncResult * _res_,
                                                                gpointer _user_data_);
static void _dbus_pc_iparental_controls_lock_dock_icons_for_user (PCIParentalControls* self,
                                                           GVariant* _parameters_,
                                                           GDBusMethodInvocation* invocation);
static void _dbus_pc_iparental_controls_lock_dock_icons_for_user_ready (GObject * source_object,
                                                                 GAsyncResult * _res_,
                                                                 gpointer _user_data_);
static void _dbus_pc_iparental_controls_set_user_daemon_active (PCIParentalControls* self,
                                                         GVariant* _parameters_,
                                                         GDBusMethodInvocation* invocation);
static void _dbus_pc_iparental_controls_set_user_daemon_active_ready (GObject * source_object,
                                                               GAsyncResult * _res_,
                                                               gpointer _user_data_);
static void _dbus_pc_iparental_controls_set_user_daemon_admin (PCIParentalControls* self,
                                                        GVariant* _parameters_,
                                                        GDBusMethodInvocation* invocation);
static void _dbus_pc_iparental_controls_set_user_daemon_admin_ready (GObject * source_object,
                                                              GAsyncResult * _res_,
                                                              gpointer _user_data_);
static void _dbus_pc_iparental_controls_set_user_daemon_block_urls (PCIParentalControls* self,
                                                             GVariant* _parameters_,
                                                             GDBusMethodInvocation* invocation);
static void _dbus_pc_iparental_controls_set_user_daemon_block_urls_ready (GObject * source_object,
                                                                   GAsyncResult * _res_,
                                                                   gpointer _user_data_);
static void _dbus_pc_iparental_controls_set_user_daemon_targets (PCIParentalControls* self,
                                                          GVariant* _parameters_,
                                                          GDBusMethodInvocation* invocation);
static void _dbus_pc_iparental_controls_set_user_daemon_targets_ready (GObject * source_object,
                                                                GAsyncResult * _res_,
                                                                gpointer _user_data_);
static void pc_iparental_controls_dbus_interface_method_call (GDBusConnection* connection,
                                                       const gchar* sender,
                                                       const gchar* object_path,
                                                       const gchar* interface_name,
                                                       const gchar* method_name,
                                                       GVariant* parameters,
                                                       GDBusMethodInvocation* invocation,
                                                       gpointer user_data);
static GVariant* pc_iparental_controls_dbus_interface_get_property (GDBusConnection* connection,
                                                             const gchar* sender,
                                                             const gchar* object_path,
                                                             const gchar* interface_name,
                                                             const gchar* property_name,
                                                             GError** error,
                                                             gpointer user_data);
static gboolean pc_iparental_controls_dbus_interface_set_property (GDBusConnection* connection,
                                                            const gchar* sender,
                                                            const gchar* object_path,
                                                            const gchar* interface_name,
                                                            const gchar* property_name,
                                                            GVariant* value,
                                                            GError** error,
                                                            gpointer user_data);
static void _dbus_pc_iparental_controls_launch (GObject* _sender,
                                         gchar** args,
                                         gint args_length1,
                                         gboolean incoming,
                                         gpointer* _data);
static void _dbus_pc_iparental_controls_show_timeout (GObject* _sender,
                                               gint hours,
                                               gint minutes,
                                               gpointer* _data);
static void _dbus_pc_iparental_controls_user_config_changed (GObject* _sender,
                                                      const gchar* username,
                                                      gpointer* _data);
static void _pc_iparental_controls_unregister_object (gpointer user_data);
VALA_EXTERN gpointer pc_utils_ref (gpointer instance);
VALA_EXTERN void pc_utils_unref (gpointer instance);
VALA_EXTERN GParamSpec* pc_param_spec_utils (const gchar* name,
                                 const gchar* nick,
                                 const gchar* blurb,
                                 GType object_type,
                                 GParamFlags flags);
VALA_EXTERN void pc_value_set_utils (GValue* value,
                         gpointer v_object);
VALA_EXTERN void pc_value_take_utils (GValue* value,
                          gpointer v_object);
VALA_EXTERN gpointer pc_value_get_utils (const GValue* value);
VALA_EXTERN GType pc_utils_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (PCUtils, pc_utils_unref)
VALA_EXTERN PCIParentalControls* pc_utils_get_api (void);
VALA_EXTERN PCUtilsDummyParentalControls* pc_utils_dummy_parental_controls_new (void);
VALA_EXTERN PCUtilsDummyParentalControls* pc_utils_dummy_parental_controls_construct (GType object_type);
VALA_EXTERN GType pc_utils_dummy_parental_controls_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (PCUtilsDummyParentalControls, g_object_unref)
VALA_EXTERN PolkitPermission* pc_utils_get_permission (void);
VALA_EXTERN gchar* pc_utils_create_markup (const gchar* name,
                               const gchar* comment);
VALA_EXTERN ActUserManager* pc_utils_get_usermanager (void);
VALA_EXTERN ActUser* pc_utils_get_current_user (void);
VALA_EXTERN gchar* pc_utils_info_to_exec_path (GAppInfo* info,
                                   gchar*** args,
                                   gint* args_length1);
static gchar* pc_utils_exec_to_path (const gchar* exec);
VALA_EXTERN gchar* pc_utils_remove_comments (const gchar* str);
VALA_EXTERN PCUtils* pc_utils_new (void);
VALA_EXTERN PCUtils* pc_utils_construct (GType object_type);
static void pc_utils_dummy_parental_controls_real_add_restriction_for_user_data_free (gpointer _data);
static void pc_utils_dummy_parental_controls_real_add_restriction_for_user (PCIParentalControls* base,
                                                                     const gchar* input,
                                                                     gboolean clean,
                                                                     GAsyncReadyCallback _callback_,
                                                                     gpointer _user_data_);
static gboolean pc_utils_dummy_parental_controls_real_add_restriction_for_user_co (PcUtilsDummyParentalControlsAddRestrictionForUserData* _data_);
static void pc_utils_dummy_parental_controls_real_remove_restriction_for_user_data_free (gpointer _data);
static void pc_utils_dummy_parental_controls_real_remove_restriction_for_user (PCIParentalControls* base,
                                                                        const gchar* username,
                                                                        GAsyncReadyCallback _callback_,
                                                                        gpointer _user_data_);
static gboolean pc_utils_dummy_parental_controls_real_remove_restriction_for_user_co (PcUtilsDummyParentalControlsRemoveRestrictionForUserData* _data_);
static void pc_utils_dummy_parental_controls_real_finish_app_authorization_data_free (gpointer _data);
static void pc_utils_dummy_parental_controls_real_finish_app_authorization (PCIParentalControls* base,
                                                                     const gchar* username,
                                                                     gchar** args,
                                                                     gint args_length1,
                                                                     GAsyncReadyCallback _callback_,
                                                                     gpointer _user_data_);
static gboolean pc_utils_dummy_parental_controls_real_finish_app_authorization_co (PcUtilsDummyParentalControlsFinishAppAuthorizationData* _data_);
static void pc_utils_dummy_parental_controls_real_get_user_daemon_active_data_free (gpointer _data);
static void pc_utils_dummy_parental_controls_real_get_user_daemon_active (PCIParentalControls* base,
                                                                   const gchar* username,
                                                                   GAsyncReadyCallback _callback_,
                                                                   gpointer _user_data_);
static gboolean pc_utils_dummy_parental_controls_real_get_user_daemon_active_co (PcUtilsDummyParentalControlsGetUserDaemonActiveData* _data_);
static void pc_utils_dummy_parental_controls_real_get_user_daemon_admin_data_free (gpointer _data);
static void pc_utils_dummy_parental_controls_real_get_user_daemon_admin (PCIParentalControls* base,
                                                                  const gchar* username,
                                                                  GAsyncReadyCallback _callback_,
                                                                  gpointer _user_data_);
static gboolean pc_utils_dummy_parental_controls_real_get_user_daemon_admin_co (PcUtilsDummyParentalControlsGetUserDaemonAdminData* _data_);
static void pc_utils_dummy_parental_controls_real_get_user_daemon_block_urls_data_free (gpointer _data);
static void pc_utils_dummy_parental_controls_real_get_user_daemon_block_urls (PCIParentalControls* base,
                                                                       const gchar* username,
                                                                       GAsyncReadyCallback _callback_,
                                                                       gpointer _user_data_);
static gboolean pc_utils_dummy_parental_controls_real_get_user_daemon_block_urls_co (PcUtilsDummyParentalControlsGetUserDaemonBlockUrlsData* _data_);
static void pc_utils_dummy_parental_controls_real_get_user_daemon_targets_data_free (gpointer _data);
static void pc_utils_dummy_parental_controls_real_get_user_daemon_targets (PCIParentalControls* base,
                                                                    const gchar* username,
                                                                    GAsyncReadyCallback _callback_,
                                                                    gpointer _user_data_);
static gboolean pc_utils_dummy_parental_controls_real_get_user_daemon_targets_co (PcUtilsDummyParentalControlsGetUserDaemonTargetsData* _data_);
static void pc_utils_dummy_parental_controls_real_lock_dock_icons_for_user_data_free (gpointer _data);
static void pc_utils_dummy_parental_controls_real_lock_dock_icons_for_user (PCIParentalControls* base,
                                                                     const gchar* username,
                                                                     gboolean lock,
                                                                     GAsyncReadyCallback _callback_,
                                                                     gpointer _user_data_);
static gboolean pc_utils_dummy_parental_controls_real_lock_dock_icons_for_user_co (PcUtilsDummyParentalControlsLockDockIconsForUserData* _data_);
static void pc_utils_dummy_parental_controls_real_set_user_daemon_active_data_free (gpointer _data);
static void pc_utils_dummy_parental_controls_real_set_user_daemon_active (PCIParentalControls* base,
                                                                   const gchar* username,
                                                                   gboolean active,
                                                                   GAsyncReadyCallback _callback_,
                                                                   gpointer _user_data_);
static gboolean pc_utils_dummy_parental_controls_real_set_user_daemon_active_co (PcUtilsDummyParentalControlsSetUserDaemonActiveData* _data_);
static void pc_utils_dummy_parental_controls_real_set_user_daemon_admin_data_free (gpointer _data);
static void pc_utils_dummy_parental_controls_real_set_user_daemon_admin (PCIParentalControls* base,
                                                                  const gchar* username,
                                                                  gboolean admin,
                                                                  GAsyncReadyCallback _callback_,
                                                                  gpointer _user_data_);
static gboolean pc_utils_dummy_parental_controls_real_set_user_daemon_admin_co (PcUtilsDummyParentalControlsSetUserDaemonAdminData* _data_);
static void pc_utils_dummy_parental_controls_real_set_user_daemon_block_urls_data_free (gpointer _data);
static void pc_utils_dummy_parental_controls_real_set_user_daemon_block_urls (PCIParentalControls* base,
                                                                       const gchar* username,
                                                                       gchar** block_urls,
                                                                       gint block_urls_length1,
                                                                       GAsyncReadyCallback _callback_,
                                                                       gpointer _user_data_);
static gboolean pc_utils_dummy_parental_controls_real_set_user_daemon_block_urls_co (PcUtilsDummyParentalControlsSetUserDaemonBlockUrlsData* _data_);
static void pc_utils_dummy_parental_controls_real_set_user_daemon_targets_data_free (gpointer _data);
static void pc_utils_dummy_parental_controls_real_set_user_daemon_targets (PCIParentalControls* base,
                                                                    const gchar* username,
                                                                    gchar** targets,
                                                                    gint targets_length1,
                                                                    GAsyncReadyCallback _callback_,
                                                                    gpointer _user_data_);
static gboolean pc_utils_dummy_parental_controls_real_set_user_daemon_targets_co (PcUtilsDummyParentalControlsSetUserDaemonTargetsData* _data_);
static GType pc_utils_dummy_parental_controls_get_type_once (void);
static void pc_utils_finalize (PCUtils * obj);
static GType pc_utils_get_type_once (void);
static void _vala_array_destroy (gpointer array,
                          gssize array_length,
                          GDestroyNotify destroy_func);
static void _vala_array_free (gpointer array,
                       gssize array_length,
                       GDestroyNotify destroy_func);
static gssize _vala_array_length (gpointer array);

static const GDBusArgInfo _pc_cups_pk_helper_dbus_arg_info_printer_set_users_allowed_printer = {-1, "printer", "s", NULL};
static const GDBusArgInfo _pc_cups_pk_helper_dbus_arg_info_printer_set_users_allowed_users = {-1, "users", "as", NULL};
static const GDBusArgInfo * const _pc_cups_pk_helper_dbus_arg_info_printer_set_users_allowed_in[] = {&_pc_cups_pk_helper_dbus_arg_info_printer_set_users_allowed_printer, &_pc_cups_pk_helper_dbus_arg_info_printer_set_users_allowed_users, NULL};
static const GDBusArgInfo * const _pc_cups_pk_helper_dbus_arg_info_printer_set_users_allowed_out[] = {NULL};
static const GDBusMethodInfo _pc_cups_pk_helper_dbus_method_info_printer_set_users_allowed = {-1, "PrinterSetUsersAllowed", (GDBusArgInfo **) (&_pc_cups_pk_helper_dbus_arg_info_printer_set_users_allowed_in), (GDBusArgInfo **) (&_pc_cups_pk_helper_dbus_arg_info_printer_set_users_allowed_out), NULL};
static const GDBusArgInfo _pc_cups_pk_helper_dbus_arg_info_printer_set_users_denied_printer = {-1, "printer", "s", NULL};
static const GDBusArgInfo _pc_cups_pk_helper_dbus_arg_info_printer_set_users_denied_users = {-1, "users", "as", NULL};
static const GDBusArgInfo * const _pc_cups_pk_helper_dbus_arg_info_printer_set_users_denied_in[] = {&_pc_cups_pk_helper_dbus_arg_info_printer_set_users_denied_printer, &_pc_cups_pk_helper_dbus_arg_info_printer_set_users_denied_users, NULL};
static const GDBusArgInfo * const _pc_cups_pk_helper_dbus_arg_info_printer_set_users_denied_out[] = {NULL};
static const GDBusMethodInfo _pc_cups_pk_helper_dbus_method_info_printer_set_users_denied = {-1, "PrinterSetUsersDenied", (GDBusArgInfo **) (&_pc_cups_pk_helper_dbus_arg_info_printer_set_users_denied_in), (GDBusArgInfo **) (&_pc_cups_pk_helper_dbus_arg_info_printer_set_users_denied_out), NULL};
static const GDBusMethodInfo * const _pc_cups_pk_helper_dbus_method_info[] = {&_pc_cups_pk_helper_dbus_method_info_printer_set_users_allowed, &_pc_cups_pk_helper_dbus_method_info_printer_set_users_denied, NULL};
static const GDBusSignalInfo * const _pc_cups_pk_helper_dbus_signal_info[] = {NULL};
static const GDBusPropertyInfo * const _pc_cups_pk_helper_dbus_property_info[] = {NULL};
static const GDBusInterfaceInfo _pc_cups_pk_helper_dbus_interface_info = {-1, "org.opensuse.CupsPkHelper.Mechanism", (GDBusMethodInfo **) (&_pc_cups_pk_helper_dbus_method_info), (GDBusSignalInfo **) (&_pc_cups_pk_helper_dbus_signal_info), (GDBusPropertyInfo **) (&_pc_cups_pk_helper_dbus_property_info), NULL};
static const GDBusInterfaceVTable _pc_cups_pk_helper_dbus_interface_vtable = {pc_cups_pk_helper_dbus_interface_method_call, pc_cups_pk_helper_dbus_interface_get_property, pc_cups_pk_helper_dbus_interface_set_property};
static const GDBusArgInfo _pc_iparental_controls_dbus_arg_info_add_restriction_for_user_input = {-1, "input", "s", NULL};
static const GDBusArgInfo _pc_iparental_controls_dbus_arg_info_add_restriction_for_user_clean = {-1, "clean", "b", NULL};
static const GDBusArgInfo * const _pc_iparental_controls_dbus_arg_info_add_restriction_for_user_in[] = {&_pc_iparental_controls_dbus_arg_info_add_restriction_for_user_input, &_pc_iparental_controls_dbus_arg_info_add_restriction_for_user_clean, NULL};
static const GDBusArgInfo * const _pc_iparental_controls_dbus_arg_info_add_restriction_for_user_out[] = {NULL};
static const GDBusMethodInfo _pc_iparental_controls_dbus_method_info_add_restriction_for_user = {-1, "AddRestrictionForUser", (GDBusArgInfo **) (&_pc_iparental_controls_dbus_arg_info_add_restriction_for_user_in), (GDBusArgInfo **) (&_pc_iparental_controls_dbus_arg_info_add_restriction_for_user_out), NULL};
static const GDBusArgInfo _pc_iparental_controls_dbus_arg_info_remove_restriction_for_user_username = {-1, "username", "s", NULL};
static const GDBusArgInfo * const _pc_iparental_controls_dbus_arg_info_remove_restriction_for_user_in[] = {&_pc_iparental_controls_dbus_arg_info_remove_restriction_for_user_username, NULL};
static const GDBusArgInfo * const _pc_iparental_controls_dbus_arg_info_remove_restriction_for_user_out[] = {NULL};
static const GDBusMethodInfo _pc_iparental_controls_dbus_method_info_remove_restriction_for_user = {-1, "RemoveRestrictionForUser", (GDBusArgInfo **) (&_pc_iparental_controls_dbus_arg_info_remove_restriction_for_user_in), (GDBusArgInfo **) (&_pc_iparental_controls_dbus_arg_info_remove_restriction_for_user_out), NULL};
static const GDBusArgInfo _pc_iparental_controls_dbus_arg_info_finish_app_authorization_username = {-1, "username", "s", NULL};
static const GDBusArgInfo _pc_iparental_controls_dbus_arg_info_finish_app_authorization_args = {-1, "args", "as", NULL};
static const GDBusArgInfo * const _pc_iparental_controls_dbus_arg_info_finish_app_authorization_in[] = {&_pc_iparental_controls_dbus_arg_info_finish_app_authorization_username, &_pc_iparental_controls_dbus_arg_info_finish_app_authorization_args, NULL};
static const GDBusArgInfo * const _pc_iparental_controls_dbus_arg_info_finish_app_authorization_out[] = {NULL};
static const GDBusMethodInfo _pc_iparental_controls_dbus_method_info_finish_app_authorization = {-1, "FinishAppAuthorization", (GDBusArgInfo **) (&_pc_iparental_controls_dbus_arg_info_finish_app_authorization_in), (GDBusArgInfo **) (&_pc_iparental_controls_dbus_arg_info_finish_app_authorization_out), NULL};
static const GDBusArgInfo _pc_iparental_controls_dbus_arg_info_get_user_daemon_active_username = {-1, "username", "s", NULL};
static const GDBusArgInfo _pc_iparental_controls_dbus_arg_info_get_user_daemon_active_result = {-1, "result", "b", NULL};
static const GDBusArgInfo * const _pc_iparental_controls_dbus_arg_info_get_user_daemon_active_in[] = {&_pc_iparental_controls_dbus_arg_info_get_user_daemon_active_username, NULL};
static const GDBusArgInfo * const _pc_iparental_controls_dbus_arg_info_get_user_daemon_active_out[] = {&_pc_iparental_controls_dbus_arg_info_get_user_daemon_active_result, NULL};
static const GDBusMethodInfo _pc_iparental_controls_dbus_method_info_get_user_daemon_active = {-1, "GetUserDaemonActive", (GDBusArgInfo **) (&_pc_iparental_controls_dbus_arg_info_get_user_daemon_active_in), (GDBusArgInfo **) (&_pc_iparental_controls_dbus_arg_info_get_user_daemon_active_out), NULL};
static const GDBusArgInfo _pc_iparental_controls_dbus_arg_info_get_user_daemon_admin_username = {-1, "username", "s", NULL};
static const GDBusArgInfo _pc_iparental_controls_dbus_arg_info_get_user_daemon_admin_result = {-1, "result", "b", NULL};
static const GDBusArgInfo * const _pc_iparental_controls_dbus_arg_info_get_user_daemon_admin_in[] = {&_pc_iparental_controls_dbus_arg_info_get_user_daemon_admin_username, NULL};
static const GDBusArgInfo * const _pc_iparental_controls_dbus_arg_info_get_user_daemon_admin_out[] = {&_pc_iparental_controls_dbus_arg_info_get_user_daemon_admin_result, NULL};
static const GDBusMethodInfo _pc_iparental_controls_dbus_method_info_get_user_daemon_admin = {-1, "GetUserDaemonAdmin", (GDBusArgInfo **) (&_pc_iparental_controls_dbus_arg_info_get_user_daemon_admin_in), (GDBusArgInfo **) (&_pc_iparental_controls_dbus_arg_info_get_user_daemon_admin_out), NULL};
static const GDBusArgInfo _pc_iparental_controls_dbus_arg_info_get_user_daemon_block_urls_username = {-1, "username", "s", NULL};
static const GDBusArgInfo _pc_iparental_controls_dbus_arg_info_get_user_daemon_block_urls_result = {-1, "result", "as", NULL};
static const GDBusArgInfo * const _pc_iparental_controls_dbus_arg_info_get_user_daemon_block_urls_in[] = {&_pc_iparental_controls_dbus_arg_info_get_user_daemon_block_urls_username, NULL};
static const GDBusArgInfo * const _pc_iparental_controls_dbus_arg_info_get_user_daemon_block_urls_out[] = {&_pc_iparental_controls_dbus_arg_info_get_user_daemon_block_urls_result, NULL};
static const GDBusMethodInfo _pc_iparental_controls_dbus_method_info_get_user_daemon_block_urls = {-1, "GetUserDaemonBlockUrls", (GDBusArgInfo **) (&_pc_iparental_controls_dbus_arg_info_get_user_daemon_block_urls_in), (GDBusArgInfo **) (&_pc_iparental_controls_dbus_arg_info_get_user_daemon_block_urls_out), NULL};
static const GDBusArgInfo _pc_iparental_controls_dbus_arg_info_get_user_daemon_targets_username = {-1, "username", "s", NULL};
static const GDBusArgInfo _pc_iparental_controls_dbus_arg_info_get_user_daemon_targets_result = {-1, "result", "as", NULL};
static const GDBusArgInfo * const _pc_iparental_controls_dbus_arg_info_get_user_daemon_targets_in[] = {&_pc_iparental_controls_dbus_arg_info_get_user_daemon_targets_username, NULL};
static const GDBusArgInfo * const _pc_iparental_controls_dbus_arg_info_get_user_daemon_targets_out[] = {&_pc_iparental_controls_dbus_arg_info_get_user_daemon_targets_result, NULL};
static const GDBusMethodInfo _pc_iparental_controls_dbus_method_info_get_user_daemon_targets = {-1, "GetUserDaemonTargets", (GDBusArgInfo **) (&_pc_iparental_controls_dbus_arg_info_get_user_daemon_targets_in), (GDBusArgInfo **) (&_pc_iparental_controls_dbus_arg_info_get_user_daemon_targets_out), NULL};
static const GDBusArgInfo _pc_iparental_controls_dbus_arg_info_lock_dock_icons_for_user_username = {-1, "username", "s", NULL};
static const GDBusArgInfo _pc_iparental_controls_dbus_arg_info_lock_dock_icons_for_user_lock = {-1, "lock", "b", NULL};
static const GDBusArgInfo * const _pc_iparental_controls_dbus_arg_info_lock_dock_icons_for_user_in[] = {&_pc_iparental_controls_dbus_arg_info_lock_dock_icons_for_user_username, &_pc_iparental_controls_dbus_arg_info_lock_dock_icons_for_user_lock, NULL};
static const GDBusArgInfo * const _pc_iparental_controls_dbus_arg_info_lock_dock_icons_for_user_out[] = {NULL};
static const GDBusMethodInfo _pc_iparental_controls_dbus_method_info_lock_dock_icons_for_user = {-1, "LockDockIconsForUser", (GDBusArgInfo **) (&_pc_iparental_controls_dbus_arg_info_lock_dock_icons_for_user_in), (GDBusArgInfo **) (&_pc_iparental_controls_dbus_arg_info_lock_dock_icons_for_user_out), NULL};
static const GDBusArgInfo _pc_iparental_controls_dbus_arg_info_set_user_daemon_active_username = {-1, "username", "s", NULL};
static const GDBusArgInfo _pc_iparental_controls_dbus_arg_info_set_user_daemon_active_active = {-1, "active", "b", NULL};
static const GDBusArgInfo * const _pc_iparental_controls_dbus_arg_info_set_user_daemon_active_in[] = {&_pc_iparental_controls_dbus_arg_info_set_user_daemon_active_username, &_pc_iparental_controls_dbus_arg_info_set_user_daemon_active_active, NULL};
static const GDBusArgInfo * const _pc_iparental_controls_dbus_arg_info_set_user_daemon_active_out[] = {NULL};
static const GDBusMethodInfo _pc_iparental_controls_dbus_method_info_set_user_daemon_active = {-1, "SetUserDaemonActive", (GDBusArgInfo **) (&_pc_iparental_controls_dbus_arg_info_set_user_daemon_active_in), (GDBusArgInfo **) (&_pc_iparental_controls_dbus_arg_info_set_user_daemon_active_out), NULL};
static const GDBusArgInfo _pc_iparental_controls_dbus_arg_info_set_user_daemon_admin_username = {-1, "username", "s", NULL};
static const GDBusArgInfo _pc_iparental_controls_dbus_arg_info_set_user_daemon_admin_admin = {-1, "admin", "b", NULL};
static const GDBusArgInfo * const _pc_iparental_controls_dbus_arg_info_set_user_daemon_admin_in[] = {&_pc_iparental_controls_dbus_arg_info_set_user_daemon_admin_username, &_pc_iparental_controls_dbus_arg_info_set_user_daemon_admin_admin, NULL};
static const GDBusArgInfo * const _pc_iparental_controls_dbus_arg_info_set_user_daemon_admin_out[] = {NULL};
static const GDBusMethodInfo _pc_iparental_controls_dbus_method_info_set_user_daemon_admin = {-1, "SetUserDaemonAdmin", (GDBusArgInfo **) (&_pc_iparental_controls_dbus_arg_info_set_user_daemon_admin_in), (GDBusArgInfo **) (&_pc_iparental_controls_dbus_arg_info_set_user_daemon_admin_out), NULL};
static const GDBusArgInfo _pc_iparental_controls_dbus_arg_info_set_user_daemon_block_urls_username = {-1, "username", "s", NULL};
static const GDBusArgInfo _pc_iparental_controls_dbus_arg_info_set_user_daemon_block_urls_block_urls = {-1, "block_urls", "as", NULL};
static const GDBusArgInfo * const _pc_iparental_controls_dbus_arg_info_set_user_daemon_block_urls_in[] = {&_pc_iparental_controls_dbus_arg_info_set_user_daemon_block_urls_username, &_pc_iparental_controls_dbus_arg_info_set_user_daemon_block_urls_block_urls, NULL};
static const GDBusArgInfo * const _pc_iparental_controls_dbus_arg_info_set_user_daemon_block_urls_out[] = {NULL};
static const GDBusMethodInfo _pc_iparental_controls_dbus_method_info_set_user_daemon_block_urls = {-1, "SetUserDaemonBlockUrls", (GDBusArgInfo **) (&_pc_iparental_controls_dbus_arg_info_set_user_daemon_block_urls_in), (GDBusArgInfo **) (&_pc_iparental_controls_dbus_arg_info_set_user_daemon_block_urls_out), NULL};
static const GDBusArgInfo _pc_iparental_controls_dbus_arg_info_set_user_daemon_targets_username = {-1, "username", "s", NULL};
static const GDBusArgInfo _pc_iparental_controls_dbus_arg_info_set_user_daemon_targets_targets = {-1, "targets", "as", NULL};
static const GDBusArgInfo * const _pc_iparental_controls_dbus_arg_info_set_user_daemon_targets_in[] = {&_pc_iparental_controls_dbus_arg_info_set_user_daemon_targets_username, &_pc_iparental_controls_dbus_arg_info_set_user_daemon_targets_targets, NULL};
static const GDBusArgInfo * const _pc_iparental_controls_dbus_arg_info_set_user_daemon_targets_out[] = {NULL};
static const GDBusMethodInfo _pc_iparental_controls_dbus_method_info_set_user_daemon_targets = {-1, "SetUserDaemonTargets", (GDBusArgInfo **) (&_pc_iparental_controls_dbus_arg_info_set_user_daemon_targets_in), (GDBusArgInfo **) (&_pc_iparental_controls_dbus_arg_info_set_user_daemon_targets_out), NULL};
static const GDBusMethodInfo * const _pc_iparental_controls_dbus_method_info[] = {&_pc_iparental_controls_dbus_method_info_add_restriction_for_user, &_pc_iparental_controls_dbus_method_info_remove_restriction_for_user, &_pc_iparental_controls_dbus_method_info_finish_app_authorization, &_pc_iparental_controls_dbus_method_info_get_user_daemon_active, &_pc_iparental_controls_dbus_method_info_get_user_daemon_admin, &_pc_iparental_controls_dbus_method_info_get_user_daemon_block_urls, &_pc_iparental_controls_dbus_method_info_get_user_daemon_targets, &_pc_iparental_controls_dbus_method_info_lock_dock_icons_for_user, &_pc_iparental_controls_dbus_method_info_set_user_daemon_active, &_pc_iparental_controls_dbus_method_info_set_user_daemon_admin, &_pc_iparental_controls_dbus_method_info_set_user_daemon_block_urls, &_pc_iparental_controls_dbus_method_info_set_user_daemon_targets, NULL};
static const GDBusArgInfo _pc_iparental_controls_dbus_arg_info_launch_args = {-1, "args", "as", NULL};
static const GDBusArgInfo _pc_iparental_controls_dbus_arg_info_launch_incoming = {-1, "incoming", "b", NULL};
static const GDBusArgInfo * const _pc_iparental_controls_dbus_arg_info_launch[] = {&_pc_iparental_controls_dbus_arg_info_launch_args, &_pc_iparental_controls_dbus_arg_info_launch_incoming, NULL};
static const GDBusSignalInfo _pc_iparental_controls_dbus_signal_info_launch = {-1, "Launch", (GDBusArgInfo **) (&_pc_iparental_controls_dbus_arg_info_launch), NULL};
static const GDBusArgInfo _pc_iparental_controls_dbus_arg_info_show_timeout_hours = {-1, "hours", "i", NULL};
static const GDBusArgInfo _pc_iparental_controls_dbus_arg_info_show_timeout_minutes = {-1, "minutes", "i", NULL};
static const GDBusArgInfo * const _pc_iparental_controls_dbus_arg_info_show_timeout[] = {&_pc_iparental_controls_dbus_arg_info_show_timeout_hours, &_pc_iparental_controls_dbus_arg_info_show_timeout_minutes, NULL};
static const GDBusSignalInfo _pc_iparental_controls_dbus_signal_info_show_timeout = {-1, "ShowTimeout", (GDBusArgInfo **) (&_pc_iparental_controls_dbus_arg_info_show_timeout), NULL};
static const GDBusArgInfo _pc_iparental_controls_dbus_arg_info_user_config_changed_username = {-1, "username", "s", NULL};
static const GDBusArgInfo * const _pc_iparental_controls_dbus_arg_info_user_config_changed[] = {&_pc_iparental_controls_dbus_arg_info_user_config_changed_username, NULL};
static const GDBusSignalInfo _pc_iparental_controls_dbus_signal_info_user_config_changed = {-1, "UserConfigChanged", (GDBusArgInfo **) (&_pc_iparental_controls_dbus_arg_info_user_config_changed), NULL};
static const GDBusSignalInfo * const _pc_iparental_controls_dbus_signal_info[] = {&_pc_iparental_controls_dbus_signal_info_launch, &_pc_iparental_controls_dbus_signal_info_show_timeout, &_pc_iparental_controls_dbus_signal_info_user_config_changed, NULL};
static const GDBusPropertyInfo * const _pc_iparental_controls_dbus_property_info[] = {NULL};
static const GDBusInterfaceInfo _pc_iparental_controls_dbus_interface_info = {-1, "org.pantheon.ParentalControls", (GDBusMethodInfo **) (&_pc_iparental_controls_dbus_method_info), (GDBusSignalInfo **) (&_pc_iparental_controls_dbus_signal_info), (GDBusPropertyInfo **) (&_pc_iparental_controls_dbus_property_info), NULL};
static const GDBusInterfaceVTable _pc_iparental_controls_dbus_interface_vtable = {pc_iparental_controls_dbus_interface_method_call, pc_iparental_controls_dbus_interface_get_property, pc_iparental_controls_dbus_interface_set_property};

void
pc_cups_pk_helper_printer_set_users_allowed (PCCupsPkHelper* self,
                                             const gchar* printer,
                                             gchar** users,
                                             gint users_length1,
                                             GError** error)
{
	PCCupsPkHelperIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = PC_CUPS_PK_HELPER_GET_INTERFACE (self);
	if (_iface_->printer_set_users_allowed) {
		_iface_->printer_set_users_allowed (self, printer, users, users_length1, error);
	}
}

void
pc_cups_pk_helper_printer_set_users_denied (PCCupsPkHelper* self,
                                            const gchar* printer,
                                            gchar** users,
                                            gint users_length1,
                                            GError** error)
{
	PCCupsPkHelperIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = PC_CUPS_PK_HELPER_GET_INTERFACE (self);
	if (_iface_->printer_set_users_denied) {
		_iface_->printer_set_users_denied (self, printer, users, users_length1, error);
	}
}

static void
pc_cups_pk_helper_default_init (PCCupsPkHelperIface * iface,
                                gpointer iface_data)
{
}

static GType
pc_cups_pk_helper_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (PCCupsPkHelperIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) pc_cups_pk_helper_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType pc_cups_pk_helper_type_id;
	pc_cups_pk_helper_type_id = g_type_register_static (G_TYPE_INTERFACE, "PCCupsPkHelper", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (pc_cups_pk_helper_type_id, G_TYPE_OBJECT);
	g_type_set_qdata (pc_cups_pk_helper_type_id, g_quark_from_static_string ("vala-dbus-proxy-type"), (void*) pc_cups_pk_helper_proxy_get_type);
	g_type_set_qdata (pc_cups_pk_helper_type_id, g_quark_from_static_string ("vala-dbus-interface-name"), "org.opensuse.CupsPkHelper.Mechanism");
	g_type_set_qdata (pc_cups_pk_helper_type_id, g_quark_from_static_string ("vala-dbus-interface-info"), (void*) (&_pc_cups_pk_helper_dbus_interface_info));
	g_type_set_qdata (pc_cups_pk_helper_type_id, g_quark_from_static_string ("vala-dbus-register-object"), (void*) pc_cups_pk_helper_register_object);
	return pc_cups_pk_helper_type_id;
}

GType
pc_cups_pk_helper_get_type (void)
{
	static volatile gsize pc_cups_pk_helper_type_id__once = 0;
	if (g_once_init_enter (&pc_cups_pk_helper_type_id__once)) {
		GType pc_cups_pk_helper_type_id;
		pc_cups_pk_helper_type_id = pc_cups_pk_helper_get_type_once ();
		g_once_init_leave (&pc_cups_pk_helper_type_id__once, pc_cups_pk_helper_type_id);
	}
	return pc_cups_pk_helper_type_id__once;
}

G_DEFINE_TYPE_EXTENDED (PCCupsPkHelperProxy, pc_cups_pk_helper_proxy, G_TYPE_DBUS_PROXY, 0, G_IMPLEMENT_INTERFACE (PC_TYPE_CUPS_PK_HELPER, pc_cups_pk_helper_proxy_pc_cups_pk_helper_interface_init) )
static void
pc_cups_pk_helper_proxy_class_init (PCCupsPkHelperProxyClass* klass)
{
	G_DBUS_PROXY_CLASS (klass)->g_signal = pc_cups_pk_helper_proxy_g_signal;
}

static void
pc_cups_pk_helper_proxy_g_signal (GDBusProxy* proxy,
                                  const gchar* sender_name,
                                  const gchar* signal_name,
                                  GVariant* parameters)
{
}

static void
pc_cups_pk_helper_proxy_init (PCCupsPkHelperProxy* self)
{
	g_dbus_proxy_set_interface_info (G_DBUS_PROXY (self), (GDBusInterfaceInfo *) (&_pc_cups_pk_helper_dbus_interface_info));
}

static void
pc_cups_pk_helper_proxy_printer_set_users_allowed (PCCupsPkHelper* self,
                                                   const gchar* printer,
                                                   gchar** users,
                                                   gint users_length1,
                                                   GError** error)
{
	GDBusMessage *_message;
	GVariant *_arguments;
	GVariantBuilder _arguments_builder;
	gchar** _tmp0_;
	GVariantBuilder _tmp1_;
	gint _tmp2_;
	GDBusMessage *_reply_message;
	_message = g_dbus_message_new_method_call (g_dbus_proxy_get_name ((GDBusProxy *) self), g_dbus_proxy_get_object_path ((GDBusProxy *) self), "org.opensuse.CupsPkHelper.Mechanism", "PrinterSetUsersAllowed");
	g_variant_builder_init (&_arguments_builder, G_VARIANT_TYPE_TUPLE);
	g_variant_builder_add_value (&_arguments_builder, g_variant_new_string (printer));
	_tmp0_ = users;
	g_variant_builder_init (&_tmp1_, G_VARIANT_TYPE ("as"));
	for (_tmp2_ = 0; _tmp2_ < users_length1; _tmp2_++) {
		g_variant_builder_add_value (&_tmp1_, g_variant_new_string (*_tmp0_));
		_tmp0_++;
	}
	g_variant_builder_add_value (&_arguments_builder, g_variant_builder_end (&_tmp1_));
	_arguments = g_variant_builder_end (&_arguments_builder);
	g_dbus_message_set_body (_message, _arguments);
	_reply_message = g_dbus_connection_send_message_with_reply_sync (g_dbus_proxy_get_connection ((GDBusProxy *) self), _message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, g_dbus_proxy_get_default_timeout ((GDBusProxy *) self), NULL, NULL, error);
	g_object_unref (_message);
	if (!_reply_message) {
		return;
	}
	if (g_dbus_message_to_gerror (_reply_message, error)) {
		g_object_unref (_reply_message);
		return;
	}
	g_object_unref (_reply_message);
}

static void
pc_cups_pk_helper_proxy_printer_set_users_denied (PCCupsPkHelper* self,
                                                  const gchar* printer,
                                                  gchar** users,
                                                  gint users_length1,
                                                  GError** error)
{
	GDBusMessage *_message;
	GVariant *_arguments;
	GVariantBuilder _arguments_builder;
	gchar** _tmp3_;
	GVariantBuilder _tmp4_;
	gint _tmp5_;
	GDBusMessage *_reply_message;
	_message = g_dbus_message_new_method_call (g_dbus_proxy_get_name ((GDBusProxy *) self), g_dbus_proxy_get_object_path ((GDBusProxy *) self), "org.opensuse.CupsPkHelper.Mechanism", "PrinterSetUsersDenied");
	g_variant_builder_init (&_arguments_builder, G_VARIANT_TYPE_TUPLE);
	g_variant_builder_add_value (&_arguments_builder, g_variant_new_string (printer));
	_tmp3_ = users;
	g_variant_builder_init (&_tmp4_, G_VARIANT_TYPE ("as"));
	for (_tmp5_ = 0; _tmp5_ < users_length1; _tmp5_++) {
		g_variant_builder_add_value (&_tmp4_, g_variant_new_string (*_tmp3_));
		_tmp3_++;
	}
	g_variant_builder_add_value (&_arguments_builder, g_variant_builder_end (&_tmp4_));
	_arguments = g_variant_builder_end (&_arguments_builder);
	g_dbus_message_set_body (_message, _arguments);
	_reply_message = g_dbus_connection_send_message_with_reply_sync (g_dbus_proxy_get_connection ((GDBusProxy *) self), _message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, g_dbus_proxy_get_default_timeout ((GDBusProxy *) self), NULL, NULL, error);
	g_object_unref (_message);
	if (!_reply_message) {
		return;
	}
	if (g_dbus_message_to_gerror (_reply_message, error)) {
		g_object_unref (_reply_message);
		return;
	}
	g_object_unref (_reply_message);
}

static void
pc_cups_pk_helper_proxy_pc_cups_pk_helper_interface_init (PCCupsPkHelperIface* iface)
{
	iface->printer_set_users_allowed = pc_cups_pk_helper_proxy_printer_set_users_allowed;
	iface->printer_set_users_denied = pc_cups_pk_helper_proxy_printer_set_users_denied;
}

static void
_dbus_pc_cups_pk_helper_printer_set_users_allowed (PCCupsPkHelper* self,
                                                   GVariant* _parameters_,
                                                   GDBusMethodInvocation* invocation)
{
	GError* error = NULL;
	GVariantIter _arguments_iter;
	gchar* printer = NULL;
	GVariant* _tmp6_;
	gchar** users = NULL;
	gint users_length1 = 0;
	GVariant* _tmp7_;
	gchar** _tmp8_;
	gint _tmp8__length;
	gint _tmp8__size;
	gint _tmp8__length1;
	GVariantIter _tmp9_;
	GVariant* _tmp10_;
	GDBusMessage* _reply_message = NULL;
	GVariant* _reply;
	GVariantBuilder _reply_builder;
	g_variant_iter_init (&_arguments_iter, _parameters_);
	_tmp6_ = g_variant_iter_next_value (&_arguments_iter);
	printer = g_variant_dup_string (_tmp6_, NULL);
	g_variant_unref (_tmp6_);
	_tmp7_ = g_variant_iter_next_value (&_arguments_iter);
	_tmp8_ = g_new (gchar*, 5);
	_tmp8__length = 0;
	_tmp8__size = 4;
	_tmp8__length1 = 0;
	g_variant_iter_init (&_tmp9_, _tmp7_);
	for (; (_tmp10_ = g_variant_iter_next_value (&_tmp9_)) != NULL; _tmp8__length1++) {
		if (_tmp8__size == _tmp8__length) {
			_tmp8__size = 2 * _tmp8__size;
			_tmp8_ = g_renew (gchar*, _tmp8_, _tmp8__size + 1);
		}
		_tmp8_[_tmp8__length++] = g_variant_dup_string (_tmp10_, NULL);
		g_variant_unref (_tmp10_);
	}
	users_length1 = _tmp8__length1;
	_tmp8_[_tmp8__length] = NULL;
	users = _tmp8_;
	g_variant_unref (_tmp7_);
	pc_cups_pk_helper_printer_set_users_allowed (self, printer, users, users_length1, &error);
	if (error) {
		g_dbus_method_invocation_take_error (invocation, error);
		goto _error;
	}
	_reply_message = g_dbus_message_new_method_reply (g_dbus_method_invocation_get_message (invocation));
	g_variant_builder_init (&_reply_builder, G_VARIANT_TYPE_TUPLE);
	_reply = g_variant_builder_end (&_reply_builder);
	g_dbus_message_set_body (_reply_message, _reply);
	g_dbus_connection_send_message (g_dbus_method_invocation_get_connection (invocation), _reply_message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
	g_object_unref (invocation);
	g_object_unref (_reply_message);
	_error:
	_g_free0 (printer);
	users = (_vala_array_free (users, users_length1, (GDestroyNotify) g_free), NULL);
	;
}

static void
_dbus_pc_cups_pk_helper_printer_set_users_denied (PCCupsPkHelper* self,
                                                  GVariant* _parameters_,
                                                  GDBusMethodInvocation* invocation)
{
	GError* error = NULL;
	GVariantIter _arguments_iter;
	gchar* printer = NULL;
	GVariant* _tmp11_;
	gchar** users = NULL;
	gint users_length1 = 0;
	GVariant* _tmp12_;
	gchar** _tmp13_;
	gint _tmp13__length;
	gint _tmp13__size;
	gint _tmp13__length1;
	GVariantIter _tmp14_;
	GVariant* _tmp15_;
	GDBusMessage* _reply_message = NULL;
	GVariant* _reply;
	GVariantBuilder _reply_builder;
	g_variant_iter_init (&_arguments_iter, _parameters_);
	_tmp11_ = g_variant_iter_next_value (&_arguments_iter);
	printer = g_variant_dup_string (_tmp11_, NULL);
	g_variant_unref (_tmp11_);
	_tmp12_ = g_variant_iter_next_value (&_arguments_iter);
	_tmp13_ = g_new (gchar*, 5);
	_tmp13__length = 0;
	_tmp13__size = 4;
	_tmp13__length1 = 0;
	g_variant_iter_init (&_tmp14_, _tmp12_);
	for (; (_tmp15_ = g_variant_iter_next_value (&_tmp14_)) != NULL; _tmp13__length1++) {
		if (_tmp13__size == _tmp13__length) {
			_tmp13__size = 2 * _tmp13__size;
			_tmp13_ = g_renew (gchar*, _tmp13_, _tmp13__size + 1);
		}
		_tmp13_[_tmp13__length++] = g_variant_dup_string (_tmp15_, NULL);
		g_variant_unref (_tmp15_);
	}
	users_length1 = _tmp13__length1;
	_tmp13_[_tmp13__length] = NULL;
	users = _tmp13_;
	g_variant_unref (_tmp12_);
	pc_cups_pk_helper_printer_set_users_denied (self, printer, users, users_length1, &error);
	if (error) {
		g_dbus_method_invocation_take_error (invocation, error);
		goto _error;
	}
	_reply_message = g_dbus_message_new_method_reply (g_dbus_method_invocation_get_message (invocation));
	g_variant_builder_init (&_reply_builder, G_VARIANT_TYPE_TUPLE);
	_reply = g_variant_builder_end (&_reply_builder);
	g_dbus_message_set_body (_reply_message, _reply);
	g_dbus_connection_send_message (g_dbus_method_invocation_get_connection (invocation), _reply_message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
	g_object_unref (invocation);
	g_object_unref (_reply_message);
	_error:
	_g_free0 (printer);
	users = (_vala_array_free (users, users_length1, (GDestroyNotify) g_free), NULL);
	;
}

static void
pc_cups_pk_helper_dbus_interface_method_call (GDBusConnection* connection,
                                              const gchar* sender,
                                              const gchar* object_path,
                                              const gchar* interface_name,
                                              const gchar* method_name,
                                              GVariant* parameters,
                                              GDBusMethodInvocation* invocation,
                                              gpointer user_data)
{
	gpointer* data;
	gpointer object;
	data = user_data;
	object = data[0];
	if (strcmp (method_name, "PrinterSetUsersAllowed") == 0) {
		_dbus_pc_cups_pk_helper_printer_set_users_allowed (object, parameters, invocation);
	} else if (strcmp (method_name, "PrinterSetUsersDenied") == 0) {
		_dbus_pc_cups_pk_helper_printer_set_users_denied (object, parameters, invocation);
	} else {
		g_object_unref (invocation);
	}
}

static GVariant*
pc_cups_pk_helper_dbus_interface_get_property (GDBusConnection* connection,
                                               const gchar* sender,
                                               const gchar* object_path,
                                               const gchar* interface_name,
                                               const gchar* property_name,
                                               GError** error,
                                               gpointer user_data)
{
	return NULL;
}

static gboolean
pc_cups_pk_helper_dbus_interface_set_property (GDBusConnection* connection,
                                               const gchar* sender,
                                               const gchar* object_path,
                                               const gchar* interface_name,
                                               const gchar* property_name,
                                               GVariant* value,
                                               GError** error,
                                               gpointer user_data)
{
	return FALSE;
}

guint
pc_cups_pk_helper_register_object (gpointer object,
                                   GDBusConnection* connection,
                                   const gchar* path,
                                   GError** error)
{
	guint result;
	gpointer *data;
	data = g_new (gpointer, 3);
	data[0] = g_object_ref (object);
	data[1] = g_object_ref (connection);
	data[2] = g_strdup (path);
	result = g_dbus_connection_register_object (connection, path, (GDBusInterfaceInfo *) (&_pc_cups_pk_helper_dbus_interface_info), &_pc_cups_pk_helper_dbus_interface_vtable, data, _pc_cups_pk_helper_unregister_object, error);
	if (!result) {
		return 0;
	}
	return result;
}

static void
_pc_cups_pk_helper_unregister_object (gpointer user_data)
{
	gpointer* data;
	data = user_data;
	g_object_unref (data[0]);
	g_object_unref (data[1]);
	g_free (data[2]);
	g_free (data);
}

void
pc_iparental_controls_add_restriction_for_user (PCIParentalControls* self,
                                                const gchar* input,
                                                gboolean clean,
                                                GAsyncReadyCallback _callback_,
                                                gpointer _user_data_)
{
	PCIParentalControlsIface* _iface_;
	_iface_ = PC_IPARENTAL_CONTROLS_GET_INTERFACE (self);
	if (_iface_->add_restriction_for_user) {
		_iface_->add_restriction_for_user (self, input, clean, _callback_, _user_data_);
	}
}

void
pc_iparental_controls_add_restriction_for_user_finish (PCIParentalControls* self,
                                                       GAsyncResult* _res_,
                                                       GError** error)
{
	PCIParentalControlsIface* _iface_;
	_iface_ = PC_IPARENTAL_CONTROLS_GET_INTERFACE (self);
	if (_iface_->add_restriction_for_user_finish) {
		_iface_->add_restriction_for_user_finish (self, _res_, error);
	}
}

void
pc_iparental_controls_remove_restriction_for_user (PCIParentalControls* self,
                                                   const gchar* username,
                                                   GAsyncReadyCallback _callback_,
                                                   gpointer _user_data_)
{
	PCIParentalControlsIface* _iface_;
	_iface_ = PC_IPARENTAL_CONTROLS_GET_INTERFACE (self);
	if (_iface_->remove_restriction_for_user) {
		_iface_->remove_restriction_for_user (self, username, _callback_, _user_data_);
	}
}

void
pc_iparental_controls_remove_restriction_for_user_finish (PCIParentalControls* self,
                                                          GAsyncResult* _res_,
                                                          GError** error)
{
	PCIParentalControlsIface* _iface_;
	_iface_ = PC_IPARENTAL_CONTROLS_GET_INTERFACE (self);
	if (_iface_->remove_restriction_for_user_finish) {
		_iface_->remove_restriction_for_user_finish (self, _res_, error);
	}
}

void
pc_iparental_controls_finish_app_authorization (PCIParentalControls* self,
                                                const gchar* username,
                                                gchar** args,
                                                gint args_length1,
                                                GAsyncReadyCallback _callback_,
                                                gpointer _user_data_)
{
	PCIParentalControlsIface* _iface_;
	_iface_ = PC_IPARENTAL_CONTROLS_GET_INTERFACE (self);
	if (_iface_->finish_app_authorization) {
		_iface_->finish_app_authorization (self, username, args, args_length1, _callback_, _user_data_);
	}
}

void
pc_iparental_controls_finish_app_authorization_finish (PCIParentalControls* self,
                                                       GAsyncResult* _res_,
                                                       GError** error)
{
	PCIParentalControlsIface* _iface_;
	_iface_ = PC_IPARENTAL_CONTROLS_GET_INTERFACE (self);
	if (_iface_->finish_app_authorization_finish) {
		_iface_->finish_app_authorization_finish (self, _res_, error);
	}
}

void
pc_iparental_controls_get_user_daemon_active (PCIParentalControls* self,
                                              const gchar* username,
                                              GAsyncReadyCallback _callback_,
                                              gpointer _user_data_)
{
	PCIParentalControlsIface* _iface_;
	_iface_ = PC_IPARENTAL_CONTROLS_GET_INTERFACE (self);
	if (_iface_->get_user_daemon_active) {
		_iface_->get_user_daemon_active (self, username, _callback_, _user_data_);
	}
}

gboolean
pc_iparental_controls_get_user_daemon_active_finish (PCIParentalControls* self,
                                                     GAsyncResult* _res_,
                                                     GError** error)
{
	PCIParentalControlsIface* _iface_;
	_iface_ = PC_IPARENTAL_CONTROLS_GET_INTERFACE (self);
	if (_iface_->get_user_daemon_active_finish) {
		return _iface_->get_user_daemon_active_finish (self, _res_, error);
	}
	return FALSE;
}

void
pc_iparental_controls_get_user_daemon_admin (PCIParentalControls* self,
                                             const gchar* username,
                                             GAsyncReadyCallback _callback_,
                                             gpointer _user_data_)
{
	PCIParentalControlsIface* _iface_;
	_iface_ = PC_IPARENTAL_CONTROLS_GET_INTERFACE (self);
	if (_iface_->get_user_daemon_admin) {
		_iface_->get_user_daemon_admin (self, username, _callback_, _user_data_);
	}
}

gboolean
pc_iparental_controls_get_user_daemon_admin_finish (PCIParentalControls* self,
                                                    GAsyncResult* _res_,
                                                    GError** error)
{
	PCIParentalControlsIface* _iface_;
	_iface_ = PC_IPARENTAL_CONTROLS_GET_INTERFACE (self);
	if (_iface_->get_user_daemon_admin_finish) {
		return _iface_->get_user_daemon_admin_finish (self, _res_, error);
	}
	return FALSE;
}

void
pc_iparental_controls_get_user_daemon_block_urls (PCIParentalControls* self,
                                                  const gchar* username,
                                                  GAsyncReadyCallback _callback_,
                                                  gpointer _user_data_)
{
	PCIParentalControlsIface* _iface_;
	_iface_ = PC_IPARENTAL_CONTROLS_GET_INTERFACE (self);
	if (_iface_->get_user_daemon_block_urls) {
		_iface_->get_user_daemon_block_urls (self, username, _callback_, _user_data_);
	}
}

gchar**
pc_iparental_controls_get_user_daemon_block_urls_finish (PCIParentalControls* self,
                                                         GAsyncResult* _res_,
                                                         gint* result_length1,
                                                         GError** error)
{
	PCIParentalControlsIface* _iface_;
	_iface_ = PC_IPARENTAL_CONTROLS_GET_INTERFACE (self);
	if (_iface_->get_user_daemon_block_urls_finish) {
		return _iface_->get_user_daemon_block_urls_finish (self, _res_, result_length1, error);
	}
	return NULL;
}

void
pc_iparental_controls_get_user_daemon_targets (PCIParentalControls* self,
                                               const gchar* username,
                                               GAsyncReadyCallback _callback_,
                                               gpointer _user_data_)
{
	PCIParentalControlsIface* _iface_;
	_iface_ = PC_IPARENTAL_CONTROLS_GET_INTERFACE (self);
	if (_iface_->get_user_daemon_targets) {
		_iface_->get_user_daemon_targets (self, username, _callback_, _user_data_);
	}
}

gchar**
pc_iparental_controls_get_user_daemon_targets_finish (PCIParentalControls* self,
                                                      GAsyncResult* _res_,
                                                      gint* result_length1,
                                                      GError** error)
{
	PCIParentalControlsIface* _iface_;
	_iface_ = PC_IPARENTAL_CONTROLS_GET_INTERFACE (self);
	if (_iface_->get_user_daemon_targets_finish) {
		return _iface_->get_user_daemon_targets_finish (self, _res_, result_length1, error);
	}
	return NULL;
}

void
pc_iparental_controls_lock_dock_icons_for_user (PCIParentalControls* self,
                                                const gchar* username,
                                                gboolean lock,
                                                GAsyncReadyCallback _callback_,
                                                gpointer _user_data_)
{
	PCIParentalControlsIface* _iface_;
	_iface_ = PC_IPARENTAL_CONTROLS_GET_INTERFACE (self);
	if (_iface_->lock_dock_icons_for_user) {
		_iface_->lock_dock_icons_for_user (self, username, lock, _callback_, _user_data_);
	}
}

void
pc_iparental_controls_lock_dock_icons_for_user_finish (PCIParentalControls* self,
                                                       GAsyncResult* _res_,
                                                       GError** error)
{
	PCIParentalControlsIface* _iface_;
	_iface_ = PC_IPARENTAL_CONTROLS_GET_INTERFACE (self);
	if (_iface_->lock_dock_icons_for_user_finish) {
		_iface_->lock_dock_icons_for_user_finish (self, _res_, error);
	}
}

void
pc_iparental_controls_set_user_daemon_active (PCIParentalControls* self,
                                              const gchar* username,
                                              gboolean active,
                                              GAsyncReadyCallback _callback_,
                                              gpointer _user_data_)
{
	PCIParentalControlsIface* _iface_;
	_iface_ = PC_IPARENTAL_CONTROLS_GET_INTERFACE (self);
	if (_iface_->set_user_daemon_active) {
		_iface_->set_user_daemon_active (self, username, active, _callback_, _user_data_);
	}
}

void
pc_iparental_controls_set_user_daemon_active_finish (PCIParentalControls* self,
                                                     GAsyncResult* _res_,
                                                     GError** error)
{
	PCIParentalControlsIface* _iface_;
	_iface_ = PC_IPARENTAL_CONTROLS_GET_INTERFACE (self);
	if (_iface_->set_user_daemon_active_finish) {
		_iface_->set_user_daemon_active_finish (self, _res_, error);
	}
}

void
pc_iparental_controls_set_user_daemon_admin (PCIParentalControls* self,
                                             const gchar* username,
                                             gboolean admin,
                                             GAsyncReadyCallback _callback_,
                                             gpointer _user_data_)
{
	PCIParentalControlsIface* _iface_;
	_iface_ = PC_IPARENTAL_CONTROLS_GET_INTERFACE (self);
	if (_iface_->set_user_daemon_admin) {
		_iface_->set_user_daemon_admin (self, username, admin, _callback_, _user_data_);
	}
}

void
pc_iparental_controls_set_user_daemon_admin_finish (PCIParentalControls* self,
                                                    GAsyncResult* _res_,
                                                    GError** error)
{
	PCIParentalControlsIface* _iface_;
	_iface_ = PC_IPARENTAL_CONTROLS_GET_INTERFACE (self);
	if (_iface_->set_user_daemon_admin_finish) {
		_iface_->set_user_daemon_admin_finish (self, _res_, error);
	}
}

void
pc_iparental_controls_set_user_daemon_block_urls (PCIParentalControls* self,
                                                  const gchar* username,
                                                  gchar** block_urls,
                                                  gint block_urls_length1,
                                                  GAsyncReadyCallback _callback_,
                                                  gpointer _user_data_)
{
	PCIParentalControlsIface* _iface_;
	_iface_ = PC_IPARENTAL_CONTROLS_GET_INTERFACE (self);
	if (_iface_->set_user_daemon_block_urls) {
		_iface_->set_user_daemon_block_urls (self, username, block_urls, block_urls_length1, _callback_, _user_data_);
	}
}

void
pc_iparental_controls_set_user_daemon_block_urls_finish (PCIParentalControls* self,
                                                         GAsyncResult* _res_,
                                                         GError** error)
{
	PCIParentalControlsIface* _iface_;
	_iface_ = PC_IPARENTAL_CONTROLS_GET_INTERFACE (self);
	if (_iface_->set_user_daemon_block_urls_finish) {
		_iface_->set_user_daemon_block_urls_finish (self, _res_, error);
	}
}

void
pc_iparental_controls_set_user_daemon_targets (PCIParentalControls* self,
                                               const gchar* username,
                                               gchar** targets,
                                               gint targets_length1,
                                               GAsyncReadyCallback _callback_,
                                               gpointer _user_data_)
{
	PCIParentalControlsIface* _iface_;
	_iface_ = PC_IPARENTAL_CONTROLS_GET_INTERFACE (self);
	if (_iface_->set_user_daemon_targets) {
		_iface_->set_user_daemon_targets (self, username, targets, targets_length1, _callback_, _user_data_);
	}
}

void
pc_iparental_controls_set_user_daemon_targets_finish (PCIParentalControls* self,
                                                      GAsyncResult* _res_,
                                                      GError** error)
{
	PCIParentalControlsIface* _iface_;
	_iface_ = PC_IPARENTAL_CONTROLS_GET_INTERFACE (self);
	if (_iface_->set_user_daemon_targets_finish) {
		_iface_->set_user_daemon_targets_finish (self, _res_, error);
	}
}

static void
g_cclosure_user_marshal_VOID__BOXED_INT_BOOLEAN (GClosure * closure,
                                                 GValue * return_value,
                                                 guint n_param_values,
                                                 const GValue * param_values,
                                                 gpointer invocation_hint,
                                                 gpointer marshal_data)
{
	typedef void (*GMarshalFunc_VOID__BOXED_INT_BOOLEAN) (gpointer data1, gpointer arg_1, gint arg_2, gboolean arg_3, gpointer data2);
	register GMarshalFunc_VOID__BOXED_INT_BOOLEAN callback;
	register GCClosure * cc;
	register gpointer data1;
	register gpointer data2;
	cc = (GCClosure *) closure;
	g_return_if_fail (n_param_values == 4);
	if (G_CCLOSURE_SWAP_DATA (closure)) {
		data1 = closure->data;
		data2 = param_values->data[0].v_pointer;
	} else {
		data1 = param_values->data[0].v_pointer;
		data2 = closure->data;
	}
	callback = (GMarshalFunc_VOID__BOXED_INT_BOOLEAN) (marshal_data ? marshal_data : cc->callback);
	callback (data1, g_value_get_boxed (param_values + 1), g_value_get_int (param_values + 2), g_value_get_boolean (param_values + 3), data2);
}

static void
g_cclosure_user_marshal_VOID__INT_INT (GClosure * closure,
                                       GValue * return_value,
                                       guint n_param_values,
                                       const GValue * param_values,
                                       gpointer invocation_hint,
                                       gpointer marshal_data)
{
	typedef void (*GMarshalFunc_VOID__INT_INT) (gpointer data1, gint arg_1, gint arg_2, gpointer data2);
	register GMarshalFunc_VOID__INT_INT callback;
	register GCClosure * cc;
	register gpointer data1;
	register gpointer data2;
	cc = (GCClosure *) closure;
	g_return_if_fail (n_param_values == 3);
	if (G_CCLOSURE_SWAP_DATA (closure)) {
		data1 = closure->data;
		data2 = param_values->data[0].v_pointer;
	} else {
		data1 = param_values->data[0].v_pointer;
		data2 = closure->data;
	}
	callback = (GMarshalFunc_VOID__INT_INT) (marshal_data ? marshal_data : cc->callback);
	callback (data1, g_value_get_int (param_values + 1), g_value_get_int (param_values + 2), data2);
}

static void
pc_iparental_controls_default_init (PCIParentalControlsIface * iface,
                                    gpointer iface_data)
{
	pc_iparental_controls_signals[PC_IPARENTAL_CONTROLS_LAUNCH_SIGNAL] = g_signal_new ("launch", PC_TYPE_IPARENTAL_CONTROLS, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__BOXED_INT_BOOLEAN, G_TYPE_NONE, 3, G_TYPE_STRV, G_TYPE_INT, G_TYPE_BOOLEAN);
	pc_iparental_controls_signals[PC_IPARENTAL_CONTROLS_SHOW_TIMEOUT_SIGNAL] = g_signal_new ("show-timeout", PC_TYPE_IPARENTAL_CONTROLS, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__INT_INT, G_TYPE_NONE, 2, G_TYPE_INT, G_TYPE_INT);
	pc_iparental_controls_signals[PC_IPARENTAL_CONTROLS_USER_CONFIG_CHANGED_SIGNAL] = g_signal_new ("user-config-changed", PC_TYPE_IPARENTAL_CONTROLS, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__STRING, G_TYPE_NONE, 1, G_TYPE_STRING);
}

static GType
pc_iparental_controls_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (PCIParentalControlsIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) pc_iparental_controls_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType pc_iparental_controls_type_id;
	pc_iparental_controls_type_id = g_type_register_static (G_TYPE_INTERFACE, "PCIParentalControls", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (pc_iparental_controls_type_id, G_TYPE_OBJECT);
	g_type_set_qdata (pc_iparental_controls_type_id, g_quark_from_static_string ("vala-dbus-proxy-type"), (void*) pc_iparental_controls_proxy_get_type);
	g_type_set_qdata (pc_iparental_controls_type_id, g_quark_from_static_string ("vala-dbus-interface-name"), "org.pantheon.ParentalControls");
	g_type_set_qdata (pc_iparental_controls_type_id, g_quark_from_static_string ("vala-dbus-interface-info"), (void*) (&_pc_iparental_controls_dbus_interface_info));
	g_type_set_qdata (pc_iparental_controls_type_id, g_quark_from_static_string ("vala-dbus-register-object"), (void*) pc_iparental_controls_register_object);
	return pc_iparental_controls_type_id;
}

GType
pc_iparental_controls_get_type (void)
{
	static volatile gsize pc_iparental_controls_type_id__once = 0;
	if (g_once_init_enter (&pc_iparental_controls_type_id__once)) {
		GType pc_iparental_controls_type_id;
		pc_iparental_controls_type_id = pc_iparental_controls_get_type_once ();
		g_once_init_leave (&pc_iparental_controls_type_id__once, pc_iparental_controls_type_id);
	}
	return pc_iparental_controls_type_id__once;
}

G_DEFINE_TYPE_EXTENDED (PCIParentalControlsProxy, pc_iparental_controls_proxy, G_TYPE_DBUS_PROXY, 0, G_IMPLEMENT_INTERFACE (PC_TYPE_IPARENTAL_CONTROLS, pc_iparental_controls_proxy_pc_iparental_controls_interface_init) )
static void
pc_iparental_controls_proxy_class_init (PCIParentalControlsProxyClass* klass)
{
	G_DBUS_PROXY_CLASS (klass)->g_signal = pc_iparental_controls_proxy_g_signal;
}

static void
_dbus_handle_pc_iparental_controls_launch (PCIParentalControls* self,
                                           GVariant* parameters)
{
	GVariantIter _arguments_iter;
	gchar** args = NULL;
	gint args_length1;
	GVariant* _tmp16_;
	gchar** _tmp17_;
	gint _tmp17__length;
	gint _tmp17__size;
	gint _tmp17__length1;
	GVariantIter _tmp18_;
	GVariant* _tmp19_;
	gboolean incoming = FALSE;
	GVariant* _tmp20_;
	g_variant_iter_init (&_arguments_iter, parameters);
	args_length1 = 0;
	_tmp16_ = g_variant_iter_next_value (&_arguments_iter);
	_tmp17_ = g_new (gchar*, 5);
	_tmp17__length = 0;
	_tmp17__size = 4;
	_tmp17__length1 = 0;
	g_variant_iter_init (&_tmp18_, _tmp16_);
	for (; (_tmp19_ = g_variant_iter_next_value (&_tmp18_)) != NULL; _tmp17__length1++) {
		if (_tmp17__size == _tmp17__length) {
			_tmp17__size = 2 * _tmp17__size;
			_tmp17_ = g_renew (gchar*, _tmp17_, _tmp17__size + 1);
		}
		_tmp17_[_tmp17__length++] = g_variant_dup_string (_tmp19_, NULL);
		g_variant_unref (_tmp19_);
	}
	args_length1 = _tmp17__length1;
	_tmp17_[_tmp17__length] = NULL;
	args = _tmp17_;
	g_variant_unref (_tmp16_);
	_tmp20_ = g_variant_iter_next_value (&_arguments_iter);
	incoming = g_variant_get_boolean (_tmp20_);
	g_variant_unref (_tmp20_);
	g_signal_emit_by_name (self, "launch", args, args_length1, incoming);
	args = (_vala_array_free (args, args_length1, (GDestroyNotify) g_free), NULL);
}

static void
_dbus_handle_pc_iparental_controls_show_timeout (PCIParentalControls* self,
                                                 GVariant* parameters)
{
	GVariantIter _arguments_iter;
	gint hours = 0;
	GVariant* _tmp21_;
	gint minutes = 0;
	GVariant* _tmp22_;
	g_variant_iter_init (&_arguments_iter, parameters);
	_tmp21_ = g_variant_iter_next_value (&_arguments_iter);
	hours = g_variant_get_int32 (_tmp21_);
	g_variant_unref (_tmp21_);
	_tmp22_ = g_variant_iter_next_value (&_arguments_iter);
	minutes = g_variant_get_int32 (_tmp22_);
	g_variant_unref (_tmp22_);
	g_signal_emit_by_name (self, "show-timeout", hours, minutes);
}

static void
_dbus_handle_pc_iparental_controls_user_config_changed (PCIParentalControls* self,
                                                        GVariant* parameters)
{
	GVariantIter _arguments_iter;
	gchar* username = NULL;
	GVariant* _tmp23_;
	g_variant_iter_init (&_arguments_iter, parameters);
	_tmp23_ = g_variant_iter_next_value (&_arguments_iter);
	username = g_variant_dup_string (_tmp23_, NULL);
	g_variant_unref (_tmp23_);
	g_signal_emit_by_name (self, "user-config-changed", username);
	_g_free0 (username);
}

static void
pc_iparental_controls_proxy_g_signal (GDBusProxy* proxy,
                                      const gchar* sender_name,
                                      const gchar* signal_name,
                                      GVariant* parameters)
{
	if (strcmp (signal_name, "Launch") == 0) {
		_dbus_handle_pc_iparental_controls_launch ((PCIParentalControls*) proxy, parameters);
	} else if (strcmp (signal_name, "ShowTimeout") == 0) {
		_dbus_handle_pc_iparental_controls_show_timeout ((PCIParentalControls*) proxy, parameters);
	} else if (strcmp (signal_name, "UserConfigChanged") == 0) {
		_dbus_handle_pc_iparental_controls_user_config_changed ((PCIParentalControls*) proxy, parameters);
	}
}

static void
pc_iparental_controls_proxy_init (PCIParentalControlsProxy* self)
{
	g_dbus_proxy_set_interface_info (G_DBUS_PROXY (self), (GDBusInterfaceInfo *) (&_pc_iparental_controls_dbus_interface_info));
}

static void
_vala_g_async_ready_callback (GObject *source_object,
                              GAsyncResult *res,
                              void *user_data)
{
	g_task_return_pointer (user_data, g_object_ref (res), g_object_unref);
	g_object_unref (user_data);
}

static void
pc_iparental_controls_proxy_add_restriction_for_user_async (PCIParentalControls* self,
                                                            const gchar* input,
                                                            gboolean clean,
                                                            GAsyncReadyCallback _callback_,
                                                            gpointer _user_data_)
{
	GDBusMessage *_message;
	GVariant *_arguments;
	GVariantBuilder _arguments_builder;
	_message = g_dbus_message_new_method_call (g_dbus_proxy_get_name ((GDBusProxy *) self), g_dbus_proxy_get_object_path ((GDBusProxy *) self), "org.pantheon.ParentalControls", "AddRestrictionForUser");
	g_variant_builder_init (&_arguments_builder, G_VARIANT_TYPE_TUPLE);
	g_variant_builder_add_value (&_arguments_builder, g_variant_new_string (input));
	g_variant_builder_add_value (&_arguments_builder, g_variant_new_boolean (clean));
	_arguments = g_variant_builder_end (&_arguments_builder);
	g_dbus_message_set_body (_message, _arguments);
	if (_callback_ != NULL) {
		g_dbus_connection_send_message_with_reply (g_dbus_proxy_get_connection ((GDBusProxy *) self), _message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, g_dbus_proxy_get_default_timeout ((GDBusProxy *) self), NULL, NULL, _vala_g_async_ready_callback, g_task_new ((GObject *) self, NULL, _callback_, _user_data_));
	} else {
		g_dbus_message_set_flags (_message, G_DBUS_MESSAGE_FLAGS_NO_REPLY_EXPECTED);
		g_dbus_connection_send_message (g_dbus_proxy_get_connection ((GDBusProxy *) self), _message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
	}
	g_object_unref (_message);
}

static void
pc_iparental_controls_proxy_add_restriction_for_user_finish (PCIParentalControls* self,
                                                             GAsyncResult* _res_,
                                                             GError** error)
{
	GAsyncResult *_inner_res;
	GDBusMessage *_reply_message;
	_inner_res = g_task_propagate_pointer ((GTask *) _res_, NULL);
	_reply_message = g_dbus_connection_send_message_with_reply_finish (g_dbus_proxy_get_connection ((GDBusProxy *) self), _inner_res, error);
	g_object_unref (_inner_res);
	if (!_reply_message) {
		return;
	}
	if (g_dbus_message_to_gerror (_reply_message, error)) {
		g_object_unref (_reply_message);
		return;
	}
	g_object_unref (_reply_message);
}

static void
pc_iparental_controls_proxy_remove_restriction_for_user_async (PCIParentalControls* self,
                                                               const gchar* username,
                                                               GAsyncReadyCallback _callback_,
                                                               gpointer _user_data_)
{
	GDBusMessage *_message;
	GVariant *_arguments;
	GVariantBuilder _arguments_builder;
	_message = g_dbus_message_new_method_call (g_dbus_proxy_get_name ((GDBusProxy *) self), g_dbus_proxy_get_object_path ((GDBusProxy *) self), "org.pantheon.ParentalControls", "RemoveRestrictionForUser");
	g_variant_builder_init (&_arguments_builder, G_VARIANT_TYPE_TUPLE);
	g_variant_builder_add_value (&_arguments_builder, g_variant_new_string (username));
	_arguments = g_variant_builder_end (&_arguments_builder);
	g_dbus_message_set_body (_message, _arguments);
	if (_callback_ != NULL) {
		g_dbus_connection_send_message_with_reply (g_dbus_proxy_get_connection ((GDBusProxy *) self), _message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, g_dbus_proxy_get_default_timeout ((GDBusProxy *) self), NULL, NULL, _vala_g_async_ready_callback, g_task_new ((GObject *) self, NULL, _callback_, _user_data_));
	} else {
		g_dbus_message_set_flags (_message, G_DBUS_MESSAGE_FLAGS_NO_REPLY_EXPECTED);
		g_dbus_connection_send_message (g_dbus_proxy_get_connection ((GDBusProxy *) self), _message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
	}
	g_object_unref (_message);
}

static void
pc_iparental_controls_proxy_remove_restriction_for_user_finish (PCIParentalControls* self,
                                                                GAsyncResult* _res_,
                                                                GError** error)
{
	GAsyncResult *_inner_res;
	GDBusMessage *_reply_message;
	_inner_res = g_task_propagate_pointer ((GTask *) _res_, NULL);
	_reply_message = g_dbus_connection_send_message_with_reply_finish (g_dbus_proxy_get_connection ((GDBusProxy *) self), _inner_res, error);
	g_object_unref (_inner_res);
	if (!_reply_message) {
		return;
	}
	if (g_dbus_message_to_gerror (_reply_message, error)) {
		g_object_unref (_reply_message);
		return;
	}
	g_object_unref (_reply_message);
}

static void
pc_iparental_controls_proxy_finish_app_authorization_async (PCIParentalControls* self,
                                                            const gchar* username,
                                                            gchar** args,
                                                            gint args_length1,
                                                            GAsyncReadyCallback _callback_,
                                                            gpointer _user_data_)
{
	GDBusMessage *_message;
	GVariant *_arguments;
	GVariantBuilder _arguments_builder;
	gchar** _tmp24_;
	GVariantBuilder _tmp25_;
	gint _tmp26_;
	_message = g_dbus_message_new_method_call (g_dbus_proxy_get_name ((GDBusProxy *) self), g_dbus_proxy_get_object_path ((GDBusProxy *) self), "org.pantheon.ParentalControls", "FinishAppAuthorization");
	g_variant_builder_init (&_arguments_builder, G_VARIANT_TYPE_TUPLE);
	g_variant_builder_add_value (&_arguments_builder, g_variant_new_string (username));
	_tmp24_ = args;
	g_variant_builder_init (&_tmp25_, G_VARIANT_TYPE ("as"));
	for (_tmp26_ = 0; _tmp26_ < args_length1; _tmp26_++) {
		g_variant_builder_add_value (&_tmp25_, g_variant_new_string (*_tmp24_));
		_tmp24_++;
	}
	g_variant_builder_add_value (&_arguments_builder, g_variant_builder_end (&_tmp25_));
	_arguments = g_variant_builder_end (&_arguments_builder);
	g_dbus_message_set_body (_message, _arguments);
	if (_callback_ != NULL) {
		g_dbus_connection_send_message_with_reply (g_dbus_proxy_get_connection ((GDBusProxy *) self), _message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, g_dbus_proxy_get_default_timeout ((GDBusProxy *) self), NULL, NULL, _vala_g_async_ready_callback, g_task_new ((GObject *) self, NULL, _callback_, _user_data_));
	} else {
		g_dbus_message_set_flags (_message, G_DBUS_MESSAGE_FLAGS_NO_REPLY_EXPECTED);
		g_dbus_connection_send_message (g_dbus_proxy_get_connection ((GDBusProxy *) self), _message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
	}
	g_object_unref (_message);
}

static void
pc_iparental_controls_proxy_finish_app_authorization_finish (PCIParentalControls* self,
                                                             GAsyncResult* _res_,
                                                             GError** error)
{
	GAsyncResult *_inner_res;
	GDBusMessage *_reply_message;
	_inner_res = g_task_propagate_pointer ((GTask *) _res_, NULL);
	_reply_message = g_dbus_connection_send_message_with_reply_finish (g_dbus_proxy_get_connection ((GDBusProxy *) self), _inner_res, error);
	g_object_unref (_inner_res);
	if (!_reply_message) {
		return;
	}
	if (g_dbus_message_to_gerror (_reply_message, error)) {
		g_object_unref (_reply_message);
		return;
	}
	g_object_unref (_reply_message);
}

static void
pc_iparental_controls_proxy_get_user_daemon_active_async (PCIParentalControls* self,
                                                          const gchar* username,
                                                          GAsyncReadyCallback _callback_,
                                                          gpointer _user_data_)
{
	GDBusMessage *_message;
	GVariant *_arguments;
	GVariantBuilder _arguments_builder;
	_message = g_dbus_message_new_method_call (g_dbus_proxy_get_name ((GDBusProxy *) self), g_dbus_proxy_get_object_path ((GDBusProxy *) self), "org.pantheon.ParentalControls", "GetUserDaemonActive");
	g_variant_builder_init (&_arguments_builder, G_VARIANT_TYPE_TUPLE);
	g_variant_builder_add_value (&_arguments_builder, g_variant_new_string (username));
	_arguments = g_variant_builder_end (&_arguments_builder);
	g_dbus_message_set_body (_message, _arguments);
	if (_callback_ != NULL) {
		g_dbus_connection_send_message_with_reply (g_dbus_proxy_get_connection ((GDBusProxy *) self), _message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, g_dbus_proxy_get_default_timeout ((GDBusProxy *) self), NULL, NULL, _vala_g_async_ready_callback, g_task_new ((GObject *) self, NULL, _callback_, _user_data_));
	} else {
		g_dbus_message_set_flags (_message, G_DBUS_MESSAGE_FLAGS_NO_REPLY_EXPECTED);
		g_dbus_connection_send_message (g_dbus_proxy_get_connection ((GDBusProxy *) self), _message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
	}
	g_object_unref (_message);
}

static gboolean
pc_iparental_controls_proxy_get_user_daemon_active_finish (PCIParentalControls* self,
                                                           GAsyncResult* _res_,
                                                           GError** error)
{
	GAsyncResult *_inner_res;
	GDBusMessage *_reply_message;
	GVariant *_reply;
	GVariantIter _reply_iter;
	gboolean _result = FALSE;
	GVariant* _tmp29_;
	_inner_res = g_task_propagate_pointer ((GTask *) _res_, NULL);
	_reply_message = g_dbus_connection_send_message_with_reply_finish (g_dbus_proxy_get_connection ((GDBusProxy *) self), _inner_res, error);
	g_object_unref (_inner_res);
	if (!_reply_message) {
		gboolean _tmp27_ = FALSE;
		return _tmp27_;
	}
	if (g_dbus_message_to_gerror (_reply_message, error)) {
		gboolean _tmp28_ = FALSE;
		g_object_unref (_reply_message);
		return _tmp28_;
	}
	_reply = g_dbus_message_get_body (_reply_message);
	g_variant_iter_init (&_reply_iter, _reply);
	_tmp29_ = g_variant_iter_next_value (&_reply_iter);
	_result = g_variant_get_boolean (_tmp29_);
	g_variant_unref (_tmp29_);
	g_object_unref (_reply_message);
	return _result;
}

static void
pc_iparental_controls_proxy_get_user_daemon_admin_async (PCIParentalControls* self,
                                                         const gchar* username,
                                                         GAsyncReadyCallback _callback_,
                                                         gpointer _user_data_)
{
	GDBusMessage *_message;
	GVariant *_arguments;
	GVariantBuilder _arguments_builder;
	_message = g_dbus_message_new_method_call (g_dbus_proxy_get_name ((GDBusProxy *) self), g_dbus_proxy_get_object_path ((GDBusProxy *) self), "org.pantheon.ParentalControls", "GetUserDaemonAdmin");
	g_variant_builder_init (&_arguments_builder, G_VARIANT_TYPE_TUPLE);
	g_variant_builder_add_value (&_arguments_builder, g_variant_new_string (username));
	_arguments = g_variant_builder_end (&_arguments_builder);
	g_dbus_message_set_body (_message, _arguments);
	if (_callback_ != NULL) {
		g_dbus_connection_send_message_with_reply (g_dbus_proxy_get_connection ((GDBusProxy *) self), _message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, g_dbus_proxy_get_default_timeout ((GDBusProxy *) self), NULL, NULL, _vala_g_async_ready_callback, g_task_new ((GObject *) self, NULL, _callback_, _user_data_));
	} else {
		g_dbus_message_set_flags (_message, G_DBUS_MESSAGE_FLAGS_NO_REPLY_EXPECTED);
		g_dbus_connection_send_message (g_dbus_proxy_get_connection ((GDBusProxy *) self), _message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
	}
	g_object_unref (_message);
}

static gboolean
pc_iparental_controls_proxy_get_user_daemon_admin_finish (PCIParentalControls* self,
                                                          GAsyncResult* _res_,
                                                          GError** error)
{
	GAsyncResult *_inner_res;
	GDBusMessage *_reply_message;
	GVariant *_reply;
	GVariantIter _reply_iter;
	gboolean _result = FALSE;
	GVariant* _tmp32_;
	_inner_res = g_task_propagate_pointer ((GTask *) _res_, NULL);
	_reply_message = g_dbus_connection_send_message_with_reply_finish (g_dbus_proxy_get_connection ((GDBusProxy *) self), _inner_res, error);
	g_object_unref (_inner_res);
	if (!_reply_message) {
		gboolean _tmp30_ = FALSE;
		return _tmp30_;
	}
	if (g_dbus_message_to_gerror (_reply_message, error)) {
		gboolean _tmp31_ = FALSE;
		g_object_unref (_reply_message);
		return _tmp31_;
	}
	_reply = g_dbus_message_get_body (_reply_message);
	g_variant_iter_init (&_reply_iter, _reply);
	_tmp32_ = g_variant_iter_next_value (&_reply_iter);
	_result = g_variant_get_boolean (_tmp32_);
	g_variant_unref (_tmp32_);
	g_object_unref (_reply_message);
	return _result;
}

static void
pc_iparental_controls_proxy_get_user_daemon_block_urls_async (PCIParentalControls* self,
                                                              const gchar* username,
                                                              GAsyncReadyCallback _callback_,
                                                              gpointer _user_data_)
{
	GDBusMessage *_message;
	GVariant *_arguments;
	GVariantBuilder _arguments_builder;
	_message = g_dbus_message_new_method_call (g_dbus_proxy_get_name ((GDBusProxy *) self), g_dbus_proxy_get_object_path ((GDBusProxy *) self), "org.pantheon.ParentalControls", "GetUserDaemonBlockUrls");
	g_variant_builder_init (&_arguments_builder, G_VARIANT_TYPE_TUPLE);
	g_variant_builder_add_value (&_arguments_builder, g_variant_new_string (username));
	_arguments = g_variant_builder_end (&_arguments_builder);
	g_dbus_message_set_body (_message, _arguments);
	if (_callback_ != NULL) {
		g_dbus_connection_send_message_with_reply (g_dbus_proxy_get_connection ((GDBusProxy *) self), _message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, g_dbus_proxy_get_default_timeout ((GDBusProxy *) self), NULL, NULL, _vala_g_async_ready_callback, g_task_new ((GObject *) self, NULL, _callback_, _user_data_));
	} else {
		g_dbus_message_set_flags (_message, G_DBUS_MESSAGE_FLAGS_NO_REPLY_EXPECTED);
		g_dbus_connection_send_message (g_dbus_proxy_get_connection ((GDBusProxy *) self), _message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
	}
	g_object_unref (_message);
}

static gchar**
pc_iparental_controls_proxy_get_user_daemon_block_urls_finish (PCIParentalControls* self,
                                                               GAsyncResult* _res_,
                                                               gint* result_length1,
                                                               GError** error)
{
	GAsyncResult *_inner_res;
	GDBusMessage *_reply_message;
	GVariant *_reply;
	GVariantIter _reply_iter;
	gchar** _result = NULL;
	gint _result_length1;
	GVariant* _tmp33_;
	gchar** _tmp34_;
	gint _tmp34__length;
	gint _tmp34__size;
	gint _tmp34__length1;
	GVariantIter _tmp35_;
	GVariant* _tmp36_;
	_inner_res = g_task_propagate_pointer ((GTask *) _res_, NULL);
	_reply_message = g_dbus_connection_send_message_with_reply_finish (g_dbus_proxy_get_connection ((GDBusProxy *) self), _inner_res, error);
	g_object_unref (_inner_res);
	if (!_reply_message) {
		return NULL;
	}
	if (g_dbus_message_to_gerror (_reply_message, error)) {
		g_object_unref (_reply_message);
		return NULL;
	}
	_reply = g_dbus_message_get_body (_reply_message);
	g_variant_iter_init (&_reply_iter, _reply);
	_result_length1 = 0;
	_tmp33_ = g_variant_iter_next_value (&_reply_iter);
	_tmp34_ = g_new (gchar*, 5);
	_tmp34__length = 0;
	_tmp34__size = 4;
	_tmp34__length1 = 0;
	g_variant_iter_init (&_tmp35_, _tmp33_);
	for (; (_tmp36_ = g_variant_iter_next_value (&_tmp35_)) != NULL; _tmp34__length1++) {
		if (_tmp34__size == _tmp34__length) {
			_tmp34__size = 2 * _tmp34__size;
			_tmp34_ = g_renew (gchar*, _tmp34_, _tmp34__size + 1);
		}
		_tmp34_[_tmp34__length++] = g_variant_dup_string (_tmp36_, NULL);
		g_variant_unref (_tmp36_);
	}
	_result_length1 = _tmp34__length1;
	_tmp34_[_tmp34__length] = NULL;
	_result = _tmp34_;
	g_variant_unref (_tmp33_);
	*result_length1 = _result_length1;
	g_object_unref (_reply_message);
	return _result;
}

static void
pc_iparental_controls_proxy_get_user_daemon_targets_async (PCIParentalControls* self,
                                                           const gchar* username,
                                                           GAsyncReadyCallback _callback_,
                                                           gpointer _user_data_)
{
	GDBusMessage *_message;
	GVariant *_arguments;
	GVariantBuilder _arguments_builder;
	_message = g_dbus_message_new_method_call (g_dbus_proxy_get_name ((GDBusProxy *) self), g_dbus_proxy_get_object_path ((GDBusProxy *) self), "org.pantheon.ParentalControls", "GetUserDaemonTargets");
	g_variant_builder_init (&_arguments_builder, G_VARIANT_TYPE_TUPLE);
	g_variant_builder_add_value (&_arguments_builder, g_variant_new_string (username));
	_arguments = g_variant_builder_end (&_arguments_builder);
	g_dbus_message_set_body (_message, _arguments);
	if (_callback_ != NULL) {
		g_dbus_connection_send_message_with_reply (g_dbus_proxy_get_connection ((GDBusProxy *) self), _message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, g_dbus_proxy_get_default_timeout ((GDBusProxy *) self), NULL, NULL, _vala_g_async_ready_callback, g_task_new ((GObject *) self, NULL, _callback_, _user_data_));
	} else {
		g_dbus_message_set_flags (_message, G_DBUS_MESSAGE_FLAGS_NO_REPLY_EXPECTED);
		g_dbus_connection_send_message (g_dbus_proxy_get_connection ((GDBusProxy *) self), _message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
	}
	g_object_unref (_message);
}

static gchar**
pc_iparental_controls_proxy_get_user_daemon_targets_finish (PCIParentalControls* self,
                                                            GAsyncResult* _res_,
                                                            gint* result_length1,
                                                            GError** error)
{
	GAsyncResult *_inner_res;
	GDBusMessage *_reply_message;
	GVariant *_reply;
	GVariantIter _reply_iter;
	gchar** _result = NULL;
	gint _result_length1;
	GVariant* _tmp37_;
	gchar** _tmp38_;
	gint _tmp38__length;
	gint _tmp38__size;
	gint _tmp38__length1;
	GVariantIter _tmp39_;
	GVariant* _tmp40_;
	_inner_res = g_task_propagate_pointer ((GTask *) _res_, NULL);
	_reply_message = g_dbus_connection_send_message_with_reply_finish (g_dbus_proxy_get_connection ((GDBusProxy *) self), _inner_res, error);
	g_object_unref (_inner_res);
	if (!_reply_message) {
		return NULL;
	}
	if (g_dbus_message_to_gerror (_reply_message, error)) {
		g_object_unref (_reply_message);
		return NULL;
	}
	_reply = g_dbus_message_get_body (_reply_message);
	g_variant_iter_init (&_reply_iter, _reply);
	_result_length1 = 0;
	_tmp37_ = g_variant_iter_next_value (&_reply_iter);
	_tmp38_ = g_new (gchar*, 5);
	_tmp38__length = 0;
	_tmp38__size = 4;
	_tmp38__length1 = 0;
	g_variant_iter_init (&_tmp39_, _tmp37_);
	for (; (_tmp40_ = g_variant_iter_next_value (&_tmp39_)) != NULL; _tmp38__length1++) {
		if (_tmp38__size == _tmp38__length) {
			_tmp38__size = 2 * _tmp38__size;
			_tmp38_ = g_renew (gchar*, _tmp38_, _tmp38__size + 1);
		}
		_tmp38_[_tmp38__length++] = g_variant_dup_string (_tmp40_, NULL);
		g_variant_unref (_tmp40_);
	}
	_result_length1 = _tmp38__length1;
	_tmp38_[_tmp38__length] = NULL;
	_result = _tmp38_;
	g_variant_unref (_tmp37_);
	*result_length1 = _result_length1;
	g_object_unref (_reply_message);
	return _result;
}

static void
pc_iparental_controls_proxy_lock_dock_icons_for_user_async (PCIParentalControls* self,
                                                            const gchar* username,
                                                            gboolean lock,
                                                            GAsyncReadyCallback _callback_,
                                                            gpointer _user_data_)
{
	GDBusMessage *_message;
	GVariant *_arguments;
	GVariantBuilder _arguments_builder;
	_message = g_dbus_message_new_method_call (g_dbus_proxy_get_name ((GDBusProxy *) self), g_dbus_proxy_get_object_path ((GDBusProxy *) self), "org.pantheon.ParentalControls", "LockDockIconsForUser");
	g_variant_builder_init (&_arguments_builder, G_VARIANT_TYPE_TUPLE);
	g_variant_builder_add_value (&_arguments_builder, g_variant_new_string (username));
	g_variant_builder_add_value (&_arguments_builder, g_variant_new_boolean (lock));
	_arguments = g_variant_builder_end (&_arguments_builder);
	g_dbus_message_set_body (_message, _arguments);
	if (_callback_ != NULL) {
		g_dbus_connection_send_message_with_reply (g_dbus_proxy_get_connection ((GDBusProxy *) self), _message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, g_dbus_proxy_get_default_timeout ((GDBusProxy *) self), NULL, NULL, _vala_g_async_ready_callback, g_task_new ((GObject *) self, NULL, _callback_, _user_data_));
	} else {
		g_dbus_message_set_flags (_message, G_DBUS_MESSAGE_FLAGS_NO_REPLY_EXPECTED);
		g_dbus_connection_send_message (g_dbus_proxy_get_connection ((GDBusProxy *) self), _message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
	}
	g_object_unref (_message);
}

static void
pc_iparental_controls_proxy_lock_dock_icons_for_user_finish (PCIParentalControls* self,
                                                             GAsyncResult* _res_,
                                                             GError** error)
{
	GAsyncResult *_inner_res;
	GDBusMessage *_reply_message;
	_inner_res = g_task_propagate_pointer ((GTask *) _res_, NULL);
	_reply_message = g_dbus_connection_send_message_with_reply_finish (g_dbus_proxy_get_connection ((GDBusProxy *) self), _inner_res, error);
	g_object_unref (_inner_res);
	if (!_reply_message) {
		return;
	}
	if (g_dbus_message_to_gerror (_reply_message, error)) {
		g_object_unref (_reply_message);
		return;
	}
	g_object_unref (_reply_message);
}

static void
pc_iparental_controls_proxy_set_user_daemon_active_async (PCIParentalControls* self,
                                                          const gchar* username,
                                                          gboolean active,
                                                          GAsyncReadyCallback _callback_,
                                                          gpointer _user_data_)
{
	GDBusMessage *_message;
	GVariant *_arguments;
	GVariantBuilder _arguments_builder;
	_message = g_dbus_message_new_method_call (g_dbus_proxy_get_name ((GDBusProxy *) self), g_dbus_proxy_get_object_path ((GDBusProxy *) self), "org.pantheon.ParentalControls", "SetUserDaemonActive");
	g_variant_builder_init (&_arguments_builder, G_VARIANT_TYPE_TUPLE);
	g_variant_builder_add_value (&_arguments_builder, g_variant_new_string (username));
	g_variant_builder_add_value (&_arguments_builder, g_variant_new_boolean (active));
	_arguments = g_variant_builder_end (&_arguments_builder);
	g_dbus_message_set_body (_message, _arguments);
	if (_callback_ != NULL) {
		g_dbus_connection_send_message_with_reply (g_dbus_proxy_get_connection ((GDBusProxy *) self), _message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, g_dbus_proxy_get_default_timeout ((GDBusProxy *) self), NULL, NULL, _vala_g_async_ready_callback, g_task_new ((GObject *) self, NULL, _callback_, _user_data_));
	} else {
		g_dbus_message_set_flags (_message, G_DBUS_MESSAGE_FLAGS_NO_REPLY_EXPECTED);
		g_dbus_connection_send_message (g_dbus_proxy_get_connection ((GDBusProxy *) self), _message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
	}
	g_object_unref (_message);
}

static void
pc_iparental_controls_proxy_set_user_daemon_active_finish (PCIParentalControls* self,
                                                           GAsyncResult* _res_,
                                                           GError** error)
{
	GAsyncResult *_inner_res;
	GDBusMessage *_reply_message;
	_inner_res = g_task_propagate_pointer ((GTask *) _res_, NULL);
	_reply_message = g_dbus_connection_send_message_with_reply_finish (g_dbus_proxy_get_connection ((GDBusProxy *) self), _inner_res, error);
	g_object_unref (_inner_res);
	if (!_reply_message) {
		return;
	}
	if (g_dbus_message_to_gerror (_reply_message, error)) {
		g_object_unref (_reply_message);
		return;
	}
	g_object_unref (_reply_message);
}

static void
pc_iparental_controls_proxy_set_user_daemon_admin_async (PCIParentalControls* self,
                                                         const gchar* username,
                                                         gboolean admin,
                                                         GAsyncReadyCallback _callback_,
                                                         gpointer _user_data_)
{
	GDBusMessage *_message;
	GVariant *_arguments;
	GVariantBuilder _arguments_builder;
	_message = g_dbus_message_new_method_call (g_dbus_proxy_get_name ((GDBusProxy *) self), g_dbus_proxy_get_object_path ((GDBusProxy *) self), "org.pantheon.ParentalControls", "SetUserDaemonAdmin");
	g_variant_builder_init (&_arguments_builder, G_VARIANT_TYPE_TUPLE);
	g_variant_builder_add_value (&_arguments_builder, g_variant_new_string (username));
	g_variant_builder_add_value (&_arguments_builder, g_variant_new_boolean (admin));
	_arguments = g_variant_builder_end (&_arguments_builder);
	g_dbus_message_set_body (_message, _arguments);
	if (_callback_ != NULL) {
		g_dbus_connection_send_message_with_reply (g_dbus_proxy_get_connection ((GDBusProxy *) self), _message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, g_dbus_proxy_get_default_timeout ((GDBusProxy *) self), NULL, NULL, _vala_g_async_ready_callback, g_task_new ((GObject *) self, NULL, _callback_, _user_data_));
	} else {
		g_dbus_message_set_flags (_message, G_DBUS_MESSAGE_FLAGS_NO_REPLY_EXPECTED);
		g_dbus_connection_send_message (g_dbus_proxy_get_connection ((GDBusProxy *) self), _message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
	}
	g_object_unref (_message);
}

static void
pc_iparental_controls_proxy_set_user_daemon_admin_finish (PCIParentalControls* self,
                                                          GAsyncResult* _res_,
                                                          GError** error)
{
	GAsyncResult *_inner_res;
	GDBusMessage *_reply_message;
	_inner_res = g_task_propagate_pointer ((GTask *) _res_, NULL);
	_reply_message = g_dbus_connection_send_message_with_reply_finish (g_dbus_proxy_get_connection ((GDBusProxy *) self), _inner_res, error);
	g_object_unref (_inner_res);
	if (!_reply_message) {
		return;
	}
	if (g_dbus_message_to_gerror (_reply_message, error)) {
		g_object_unref (_reply_message);
		return;
	}
	g_object_unref (_reply_message);
}

static void
pc_iparental_controls_proxy_set_user_daemon_block_urls_async (PCIParentalControls* self,
                                                              const gchar* username,
                                                              gchar** block_urls,
                                                              gint block_urls_length1,
                                                              GAsyncReadyCallback _callback_,
                                                              gpointer _user_data_)
{
	GDBusMessage *_message;
	GVariant *_arguments;
	GVariantBuilder _arguments_builder;
	gchar** _tmp41_;
	GVariantBuilder _tmp42_;
	gint _tmp43_;
	_message = g_dbus_message_new_method_call (g_dbus_proxy_get_name ((GDBusProxy *) self), g_dbus_proxy_get_object_path ((GDBusProxy *) self), "org.pantheon.ParentalControls", "SetUserDaemonBlockUrls");
	g_variant_builder_init (&_arguments_builder, G_VARIANT_TYPE_TUPLE);
	g_variant_builder_add_value (&_arguments_builder, g_variant_new_string (username));
	_tmp41_ = block_urls;
	g_variant_builder_init (&_tmp42_, G_VARIANT_TYPE ("as"));
	for (_tmp43_ = 0; _tmp43_ < block_urls_length1; _tmp43_++) {
		g_variant_builder_add_value (&_tmp42_, g_variant_new_string (*_tmp41_));
		_tmp41_++;
	}
	g_variant_builder_add_value (&_arguments_builder, g_variant_builder_end (&_tmp42_));
	_arguments = g_variant_builder_end (&_arguments_builder);
	g_dbus_message_set_body (_message, _arguments);
	if (_callback_ != NULL) {
		g_dbus_connection_send_message_with_reply (g_dbus_proxy_get_connection ((GDBusProxy *) self), _message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, g_dbus_proxy_get_default_timeout ((GDBusProxy *) self), NULL, NULL, _vala_g_async_ready_callback, g_task_new ((GObject *) self, NULL, _callback_, _user_data_));
	} else {
		g_dbus_message_set_flags (_message, G_DBUS_MESSAGE_FLAGS_NO_REPLY_EXPECTED);
		g_dbus_connection_send_message (g_dbus_proxy_get_connection ((GDBusProxy *) self), _message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
	}
	g_object_unref (_message);
}

static void
pc_iparental_controls_proxy_set_user_daemon_block_urls_finish (PCIParentalControls* self,
                                                               GAsyncResult* _res_,
                                                               GError** error)
{
	GAsyncResult *_inner_res;
	GDBusMessage *_reply_message;
	_inner_res = g_task_propagate_pointer ((GTask *) _res_, NULL);
	_reply_message = g_dbus_connection_send_message_with_reply_finish (g_dbus_proxy_get_connection ((GDBusProxy *) self), _inner_res, error);
	g_object_unref (_inner_res);
	if (!_reply_message) {
		return;
	}
	if (g_dbus_message_to_gerror (_reply_message, error)) {
		g_object_unref (_reply_message);
		return;
	}
	g_object_unref (_reply_message);
}

static void
pc_iparental_controls_proxy_set_user_daemon_targets_async (PCIParentalControls* self,
                                                           const gchar* username,
                                                           gchar** targets,
                                                           gint targets_length1,
                                                           GAsyncReadyCallback _callback_,
                                                           gpointer _user_data_)
{
	GDBusMessage *_message;
	GVariant *_arguments;
	GVariantBuilder _arguments_builder;
	gchar** _tmp44_;
	GVariantBuilder _tmp45_;
	gint _tmp46_;
	_message = g_dbus_message_new_method_call (g_dbus_proxy_get_name ((GDBusProxy *) self), g_dbus_proxy_get_object_path ((GDBusProxy *) self), "org.pantheon.ParentalControls", "SetUserDaemonTargets");
	g_variant_builder_init (&_arguments_builder, G_VARIANT_TYPE_TUPLE);
	g_variant_builder_add_value (&_arguments_builder, g_variant_new_string (username));
	_tmp44_ = targets;
	g_variant_builder_init (&_tmp45_, G_VARIANT_TYPE ("as"));
	for (_tmp46_ = 0; _tmp46_ < targets_length1; _tmp46_++) {
		g_variant_builder_add_value (&_tmp45_, g_variant_new_string (*_tmp44_));
		_tmp44_++;
	}
	g_variant_builder_add_value (&_arguments_builder, g_variant_builder_end (&_tmp45_));
	_arguments = g_variant_builder_end (&_arguments_builder);
	g_dbus_message_set_body (_message, _arguments);
	if (_callback_ != NULL) {
		g_dbus_connection_send_message_with_reply (g_dbus_proxy_get_connection ((GDBusProxy *) self), _message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, g_dbus_proxy_get_default_timeout ((GDBusProxy *) self), NULL, NULL, _vala_g_async_ready_callback, g_task_new ((GObject *) self, NULL, _callback_, _user_data_));
	} else {
		g_dbus_message_set_flags (_message, G_DBUS_MESSAGE_FLAGS_NO_REPLY_EXPECTED);
		g_dbus_connection_send_message (g_dbus_proxy_get_connection ((GDBusProxy *) self), _message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
	}
	g_object_unref (_message);
}

static void
pc_iparental_controls_proxy_set_user_daemon_targets_finish (PCIParentalControls* self,
                                                            GAsyncResult* _res_,
                                                            GError** error)
{
	GAsyncResult *_inner_res;
	GDBusMessage *_reply_message;
	_inner_res = g_task_propagate_pointer ((GTask *) _res_, NULL);
	_reply_message = g_dbus_connection_send_message_with_reply_finish (g_dbus_proxy_get_connection ((GDBusProxy *) self), _inner_res, error);
	g_object_unref (_inner_res);
	if (!_reply_message) {
		return;
	}
	if (g_dbus_message_to_gerror (_reply_message, error)) {
		g_object_unref (_reply_message);
		return;
	}
	g_object_unref (_reply_message);
}

static void
pc_iparental_controls_proxy_pc_iparental_controls_interface_init (PCIParentalControlsIface* iface)
{
	iface->add_restriction_for_user = pc_iparental_controls_proxy_add_restriction_for_user_async;
	iface->add_restriction_for_user_finish = pc_iparental_controls_proxy_add_restriction_for_user_finish;
	iface->remove_restriction_for_user = pc_iparental_controls_proxy_remove_restriction_for_user_async;
	iface->remove_restriction_for_user_finish = pc_iparental_controls_proxy_remove_restriction_for_user_finish;
	iface->finish_app_authorization = pc_iparental_controls_proxy_finish_app_authorization_async;
	iface->finish_app_authorization_finish = pc_iparental_controls_proxy_finish_app_authorization_finish;
	iface->get_user_daemon_active = pc_iparental_controls_proxy_get_user_daemon_active_async;
	iface->get_user_daemon_active_finish = pc_iparental_controls_proxy_get_user_daemon_active_finish;
	iface->get_user_daemon_admin = pc_iparental_controls_proxy_get_user_daemon_admin_async;
	iface->get_user_daemon_admin_finish = pc_iparental_controls_proxy_get_user_daemon_admin_finish;
	iface->get_user_daemon_block_urls = pc_iparental_controls_proxy_get_user_daemon_block_urls_async;
	iface->get_user_daemon_block_urls_finish = pc_iparental_controls_proxy_get_user_daemon_block_urls_finish;
	iface->get_user_daemon_targets = pc_iparental_controls_proxy_get_user_daemon_targets_async;
	iface->get_user_daemon_targets_finish = pc_iparental_controls_proxy_get_user_daemon_targets_finish;
	iface->lock_dock_icons_for_user = pc_iparental_controls_proxy_lock_dock_icons_for_user_async;
	iface->lock_dock_icons_for_user_finish = pc_iparental_controls_proxy_lock_dock_icons_for_user_finish;
	iface->set_user_daemon_active = pc_iparental_controls_proxy_set_user_daemon_active_async;
	iface->set_user_daemon_active_finish = pc_iparental_controls_proxy_set_user_daemon_active_finish;
	iface->set_user_daemon_admin = pc_iparental_controls_proxy_set_user_daemon_admin_async;
	iface->set_user_daemon_admin_finish = pc_iparental_controls_proxy_set_user_daemon_admin_finish;
	iface->set_user_daemon_block_urls = pc_iparental_controls_proxy_set_user_daemon_block_urls_async;
	iface->set_user_daemon_block_urls_finish = pc_iparental_controls_proxy_set_user_daemon_block_urls_finish;
	iface->set_user_daemon_targets = pc_iparental_controls_proxy_set_user_daemon_targets_async;
	iface->set_user_daemon_targets_finish = pc_iparental_controls_proxy_set_user_daemon_targets_finish;
}

static void
_dbus_pc_iparental_controls_add_restriction_for_user (PCIParentalControls* self,
                                                      GVariant* _parameters_,
                                                      GDBusMethodInvocation* invocation)
{
	GVariantIter _arguments_iter;
	PcIparentalControlsAddRestrictionForUserReadyData* _ready_data;
	GVariant* _tmp47_;
	GVariant* _tmp48_;
	g_variant_iter_init (&_arguments_iter, _parameters_);
	_ready_data = g_slice_new0 (PcIparentalControlsAddRestrictionForUserReadyData);
	_ready_data->_invocation_ = invocation;
	_tmp47_ = g_variant_iter_next_value (&_arguments_iter);
	_ready_data->input = g_variant_dup_string (_tmp47_, NULL);
	g_variant_unref (_tmp47_);
	_tmp48_ = g_variant_iter_next_value (&_arguments_iter);
	_ready_data->clean = g_variant_get_boolean (_tmp48_);
	g_variant_unref (_tmp48_);
	pc_iparental_controls_add_restriction_for_user (self, _ready_data->input, _ready_data->clean, (GAsyncReadyCallback) _dbus_pc_iparental_controls_add_restriction_for_user_ready, _ready_data);
	_error:
	;
}

static void
_dbus_pc_iparental_controls_add_restriction_for_user_ready (GObject * source_object,
                                                            GAsyncResult * _res_,
                                                            gpointer _user_data_)
{
	PcIparentalControlsAddRestrictionForUserReadyData* _ready_data;
	GDBusMethodInvocation* invocation;
	GError* error = NULL;
	GDBusMessage* _reply_message = NULL;
	GVariant* _reply;
	GVariantBuilder _reply_builder;
	_ready_data = _user_data_;
	invocation = _ready_data->_invocation_;
	pc_iparental_controls_add_restriction_for_user_finish ((PCIParentalControls*) source_object, _res_, &error);
	if (error) {
		g_dbus_method_invocation_take_error (invocation, error);
		goto _error;
	}
	_reply_message = g_dbus_message_new_method_reply (g_dbus_method_invocation_get_message (invocation));
	g_variant_builder_init (&_reply_builder, G_VARIANT_TYPE_TUPLE);
	_reply = g_variant_builder_end (&_reply_builder);
	g_dbus_message_set_body (_reply_message, _reply);
	g_dbus_connection_send_message (g_dbus_method_invocation_get_connection (invocation), _reply_message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
	g_object_unref (invocation);
	g_object_unref (_reply_message);
	_error:
	_g_free0 (_ready_data->input);
	g_slice_free (PcIparentalControlsAddRestrictionForUserReadyData, _ready_data);
}

static void
_dbus_pc_iparental_controls_remove_restriction_for_user (PCIParentalControls* self,
                                                         GVariant* _parameters_,
                                                         GDBusMethodInvocation* invocation)
{
	GVariantIter _arguments_iter;
	PcIparentalControlsRemoveRestrictionForUserReadyData* _ready_data;
	GVariant* _tmp49_;
	g_variant_iter_init (&_arguments_iter, _parameters_);
	_ready_data = g_slice_new0 (PcIparentalControlsRemoveRestrictionForUserReadyData);
	_ready_data->_invocation_ = invocation;
	_tmp49_ = g_variant_iter_next_value (&_arguments_iter);
	_ready_data->username = g_variant_dup_string (_tmp49_, NULL);
	g_variant_unref (_tmp49_);
	pc_iparental_controls_remove_restriction_for_user (self, _ready_data->username, (GAsyncReadyCallback) _dbus_pc_iparental_controls_remove_restriction_for_user_ready, _ready_data);
	_error:
	;
}

static void
_dbus_pc_iparental_controls_remove_restriction_for_user_ready (GObject * source_object,
                                                               GAsyncResult * _res_,
                                                               gpointer _user_data_)
{
	PcIparentalControlsRemoveRestrictionForUserReadyData* _ready_data;
	GDBusMethodInvocation* invocation;
	GError* error = NULL;
	GDBusMessage* _reply_message = NULL;
	GVariant* _reply;
	GVariantBuilder _reply_builder;
	_ready_data = _user_data_;
	invocation = _ready_data->_invocation_;
	pc_iparental_controls_remove_restriction_for_user_finish ((PCIParentalControls*) source_object, _res_, &error);
	if (error) {
		g_dbus_method_invocation_take_error (invocation, error);
		goto _error;
	}
	_reply_message = g_dbus_message_new_method_reply (g_dbus_method_invocation_get_message (invocation));
	g_variant_builder_init (&_reply_builder, G_VARIANT_TYPE_TUPLE);
	_reply = g_variant_builder_end (&_reply_builder);
	g_dbus_message_set_body (_reply_message, _reply);
	g_dbus_connection_send_message (g_dbus_method_invocation_get_connection (invocation), _reply_message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
	g_object_unref (invocation);
	g_object_unref (_reply_message);
	_error:
	_g_free0 (_ready_data->username);
	g_slice_free (PcIparentalControlsRemoveRestrictionForUserReadyData, _ready_data);
}

static void
_dbus_pc_iparental_controls_finish_app_authorization (PCIParentalControls* self,
                                                      GVariant* _parameters_,
                                                      GDBusMethodInvocation* invocation)
{
	GVariantIter _arguments_iter;
	PcIparentalControlsFinishAppAuthorizationReadyData* _ready_data;
	GVariant* _tmp50_;
	GVariant* _tmp51_;
	gchar** _tmp52_;
	gint _tmp52__length;
	gint _tmp52__size;
	gint _tmp52__length1;
	GVariantIter _tmp53_;
	GVariant* _tmp54_;
	g_variant_iter_init (&_arguments_iter, _parameters_);
	_ready_data = g_slice_new0 (PcIparentalControlsFinishAppAuthorizationReadyData);
	_ready_data->_invocation_ = invocation;
	_tmp50_ = g_variant_iter_next_value (&_arguments_iter);
	_ready_data->username = g_variant_dup_string (_tmp50_, NULL);
	g_variant_unref (_tmp50_);
	_tmp51_ = g_variant_iter_next_value (&_arguments_iter);
	_tmp52_ = g_new (gchar*, 5);
	_tmp52__length = 0;
	_tmp52__size = 4;
	_tmp52__length1 = 0;
	g_variant_iter_init (&_tmp53_, _tmp51_);
	for (; (_tmp54_ = g_variant_iter_next_value (&_tmp53_)) != NULL; _tmp52__length1++) {
		if (_tmp52__size == _tmp52__length) {
			_tmp52__size = 2 * _tmp52__size;
			_tmp52_ = g_renew (gchar*, _tmp52_, _tmp52__size + 1);
		}
		_tmp52_[_tmp52__length++] = g_variant_dup_string (_tmp54_, NULL);
		g_variant_unref (_tmp54_);
	}
	_ready_data->args_length1 = _tmp52__length1;
	_tmp52_[_tmp52__length] = NULL;
	_ready_data->args = _tmp52_;
	g_variant_unref (_tmp51_);
	pc_iparental_controls_finish_app_authorization (self, _ready_data->username, _ready_data->args, _ready_data->args_length1, (GAsyncReadyCallback) _dbus_pc_iparental_controls_finish_app_authorization_ready, _ready_data);
	_error:
	;
}

static void
_dbus_pc_iparental_controls_finish_app_authorization_ready (GObject * source_object,
                                                            GAsyncResult * _res_,
                                                            gpointer _user_data_)
{
	PcIparentalControlsFinishAppAuthorizationReadyData* _ready_data;
	GDBusMethodInvocation* invocation;
	GError* error = NULL;
	GDBusMessage* _reply_message = NULL;
	GVariant* _reply;
	GVariantBuilder _reply_builder;
	_ready_data = _user_data_;
	invocation = _ready_data->_invocation_;
	pc_iparental_controls_finish_app_authorization_finish ((PCIParentalControls*) source_object, _res_, &error);
	if (error) {
		g_dbus_method_invocation_take_error (invocation, error);
		goto _error;
	}
	_reply_message = g_dbus_message_new_method_reply (g_dbus_method_invocation_get_message (invocation));
	g_variant_builder_init (&_reply_builder, G_VARIANT_TYPE_TUPLE);
	_reply = g_variant_builder_end (&_reply_builder);
	g_dbus_message_set_body (_reply_message, _reply);
	g_dbus_connection_send_message (g_dbus_method_invocation_get_connection (invocation), _reply_message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
	g_object_unref (invocation);
	g_object_unref (_reply_message);
	_error:
	_g_free0 (_ready_data->username);
	_ready_data->args = (_vala_array_free (_ready_data->args, _ready_data->args_length1, (GDestroyNotify) g_free), NULL);
	g_slice_free (PcIparentalControlsFinishAppAuthorizationReadyData, _ready_data);
}

static void
_dbus_pc_iparental_controls_get_user_daemon_active (PCIParentalControls* self,
                                                    GVariant* _parameters_,
                                                    GDBusMethodInvocation* invocation)
{
	GVariantIter _arguments_iter;
	PcIparentalControlsGetUserDaemonActiveReadyData* _ready_data;
	GVariant* _tmp55_;
	g_variant_iter_init (&_arguments_iter, _parameters_);
	_ready_data = g_slice_new0 (PcIparentalControlsGetUserDaemonActiveReadyData);
	_ready_data->_invocation_ = invocation;
	_tmp55_ = g_variant_iter_next_value (&_arguments_iter);
	_ready_data->username = g_variant_dup_string (_tmp55_, NULL);
	g_variant_unref (_tmp55_);
	pc_iparental_controls_get_user_daemon_active (self, _ready_data->username, (GAsyncReadyCallback) _dbus_pc_iparental_controls_get_user_daemon_active_ready, _ready_data);
	_error:
	;
}

static void
_dbus_pc_iparental_controls_get_user_daemon_active_ready (GObject * source_object,
                                                          GAsyncResult * _res_,
                                                          gpointer _user_data_)
{
	PcIparentalControlsGetUserDaemonActiveReadyData* _ready_data;
	GDBusMethodInvocation* invocation;
	GError* error = NULL;
	GDBusMessage* _reply_message = NULL;
	GVariant* _reply;
	GVariantBuilder _reply_builder;
	gboolean result;
	_ready_data = _user_data_;
	invocation = _ready_data->_invocation_;
	result = pc_iparental_controls_get_user_daemon_active_finish ((PCIParentalControls*) source_object, _res_, &error);
	if (error) {
		g_dbus_method_invocation_take_error (invocation, error);
		goto _error;
	}
	_reply_message = g_dbus_message_new_method_reply (g_dbus_method_invocation_get_message (invocation));
	g_variant_builder_init (&_reply_builder, G_VARIANT_TYPE_TUPLE);
	g_variant_builder_add_value (&_reply_builder, g_variant_new_boolean (result));
	_reply = g_variant_builder_end (&_reply_builder);
	g_dbus_message_set_body (_reply_message, _reply);
	g_dbus_connection_send_message (g_dbus_method_invocation_get_connection (invocation), _reply_message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
	g_object_unref (invocation);
	g_object_unref (_reply_message);
	_error:
	_g_free0 (_ready_data->username);
	g_slice_free (PcIparentalControlsGetUserDaemonActiveReadyData, _ready_data);
}

static void
_dbus_pc_iparental_controls_get_user_daemon_admin (PCIParentalControls* self,
                                                   GVariant* _parameters_,
                                                   GDBusMethodInvocation* invocation)
{
	GVariantIter _arguments_iter;
	PcIparentalControlsGetUserDaemonAdminReadyData* _ready_data;
	GVariant* _tmp56_;
	g_variant_iter_init (&_arguments_iter, _parameters_);
	_ready_data = g_slice_new0 (PcIparentalControlsGetUserDaemonAdminReadyData);
	_ready_data->_invocation_ = invocation;
	_tmp56_ = g_variant_iter_next_value (&_arguments_iter);
	_ready_data->username = g_variant_dup_string (_tmp56_, NULL);
	g_variant_unref (_tmp56_);
	pc_iparental_controls_get_user_daemon_admin (self, _ready_data->username, (GAsyncReadyCallback) _dbus_pc_iparental_controls_get_user_daemon_admin_ready, _ready_data);
	_error:
	;
}

static void
_dbus_pc_iparental_controls_get_user_daemon_admin_ready (GObject * source_object,
                                                         GAsyncResult * _res_,
                                                         gpointer _user_data_)
{
	PcIparentalControlsGetUserDaemonAdminReadyData* _ready_data;
	GDBusMethodInvocation* invocation;
	GError* error = NULL;
	GDBusMessage* _reply_message = NULL;
	GVariant* _reply;
	GVariantBuilder _reply_builder;
	gboolean result;
	_ready_data = _user_data_;
	invocation = _ready_data->_invocation_;
	result = pc_iparental_controls_get_user_daemon_admin_finish ((PCIParentalControls*) source_object, _res_, &error);
	if (error) {
		g_dbus_method_invocation_take_error (invocation, error);
		goto _error;
	}
	_reply_message = g_dbus_message_new_method_reply (g_dbus_method_invocation_get_message (invocation));
	g_variant_builder_init (&_reply_builder, G_VARIANT_TYPE_TUPLE);
	g_variant_builder_add_value (&_reply_builder, g_variant_new_boolean (result));
	_reply = g_variant_builder_end (&_reply_builder);
	g_dbus_message_set_body (_reply_message, _reply);
	g_dbus_connection_send_message (g_dbus_method_invocation_get_connection (invocation), _reply_message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
	g_object_unref (invocation);
	g_object_unref (_reply_message);
	_error:
	_g_free0 (_ready_data->username);
	g_slice_free (PcIparentalControlsGetUserDaemonAdminReadyData, _ready_data);
}

static void
_dbus_pc_iparental_controls_get_user_daemon_block_urls (PCIParentalControls* self,
                                                        GVariant* _parameters_,
                                                        GDBusMethodInvocation* invocation)
{
	GVariantIter _arguments_iter;
	PcIparentalControlsGetUserDaemonBlockUrlsReadyData* _ready_data;
	GVariant* _tmp57_;
	g_variant_iter_init (&_arguments_iter, _parameters_);
	_ready_data = g_slice_new0 (PcIparentalControlsGetUserDaemonBlockUrlsReadyData);
	_ready_data->_invocation_ = invocation;
	_tmp57_ = g_variant_iter_next_value (&_arguments_iter);
	_ready_data->username = g_variant_dup_string (_tmp57_, NULL);
	g_variant_unref (_tmp57_);
	pc_iparental_controls_get_user_daemon_block_urls (self, _ready_data->username, (GAsyncReadyCallback) _dbus_pc_iparental_controls_get_user_daemon_block_urls_ready, _ready_data);
	_error:
	;
}

static void
_dbus_pc_iparental_controls_get_user_daemon_block_urls_ready (GObject * source_object,
                                                              GAsyncResult * _res_,
                                                              gpointer _user_data_)
{
	PcIparentalControlsGetUserDaemonBlockUrlsReadyData* _ready_data;
	GDBusMethodInvocation* invocation;
	GError* error = NULL;
	GDBusMessage* _reply_message = NULL;
	GVariant* _reply;
	GVariantBuilder _reply_builder;
	gchar** result;
	gint result_length1 = 0;
	gchar** _tmp58_;
	GVariantBuilder _tmp59_;
	gint _tmp60_;
	_ready_data = _user_data_;
	invocation = _ready_data->_invocation_;
	result = pc_iparental_controls_get_user_daemon_block_urls_finish ((PCIParentalControls*) source_object, _res_, &result_length1, &error);
	if (error) {
		g_dbus_method_invocation_take_error (invocation, error);
		goto _error;
	}
	_reply_message = g_dbus_message_new_method_reply (g_dbus_method_invocation_get_message (invocation));
	g_variant_builder_init (&_reply_builder, G_VARIANT_TYPE_TUPLE);
	_tmp58_ = result;
	g_variant_builder_init (&_tmp59_, G_VARIANT_TYPE ("as"));
	for (_tmp60_ = 0; _tmp60_ < result_length1; _tmp60_++) {
		g_variant_builder_add_value (&_tmp59_, g_variant_new_string (*_tmp58_));
		_tmp58_++;
	}
	g_variant_builder_add_value (&_reply_builder, g_variant_builder_end (&_tmp59_));
	result = (_vala_array_free (result, result_length1, (GDestroyNotify) g_free), NULL);
	_reply = g_variant_builder_end (&_reply_builder);
	g_dbus_message_set_body (_reply_message, _reply);
	g_dbus_connection_send_message (g_dbus_method_invocation_get_connection (invocation), _reply_message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
	g_object_unref (invocation);
	g_object_unref (_reply_message);
	_error:
	_g_free0 (_ready_data->username);
	g_slice_free (PcIparentalControlsGetUserDaemonBlockUrlsReadyData, _ready_data);
}

static void
_dbus_pc_iparental_controls_get_user_daemon_targets (PCIParentalControls* self,
                                                     GVariant* _parameters_,
                                                     GDBusMethodInvocation* invocation)
{
	GVariantIter _arguments_iter;
	PcIparentalControlsGetUserDaemonTargetsReadyData* _ready_data;
	GVariant* _tmp61_;
	g_variant_iter_init (&_arguments_iter, _parameters_);
	_ready_data = g_slice_new0 (PcIparentalControlsGetUserDaemonTargetsReadyData);
	_ready_data->_invocation_ = invocation;
	_tmp61_ = g_variant_iter_next_value (&_arguments_iter);
	_ready_data->username = g_variant_dup_string (_tmp61_, NULL);
	g_variant_unref (_tmp61_);
	pc_iparental_controls_get_user_daemon_targets (self, _ready_data->username, (GAsyncReadyCallback) _dbus_pc_iparental_controls_get_user_daemon_targets_ready, _ready_data);
	_error:
	;
}

static void
_dbus_pc_iparental_controls_get_user_daemon_targets_ready (GObject * source_object,
                                                           GAsyncResult * _res_,
                                                           gpointer _user_data_)
{
	PcIparentalControlsGetUserDaemonTargetsReadyData* _ready_data;
	GDBusMethodInvocation* invocation;
	GError* error = NULL;
	GDBusMessage* _reply_message = NULL;
	GVariant* _reply;
	GVariantBuilder _reply_builder;
	gchar** result;
	gint result_length1 = 0;
	gchar** _tmp62_;
	GVariantBuilder _tmp63_;
	gint _tmp64_;
	_ready_data = _user_data_;
	invocation = _ready_data->_invocation_;
	result = pc_iparental_controls_get_user_daemon_targets_finish ((PCIParentalControls*) source_object, _res_, &result_length1, &error);
	if (error) {
		g_dbus_method_invocation_take_error (invocation, error);
		goto _error;
	}
	_reply_message = g_dbus_message_new_method_reply (g_dbus_method_invocation_get_message (invocation));
	g_variant_builder_init (&_reply_builder, G_VARIANT_TYPE_TUPLE);
	_tmp62_ = result;
	g_variant_builder_init (&_tmp63_, G_VARIANT_TYPE ("as"));
	for (_tmp64_ = 0; _tmp64_ < result_length1; _tmp64_++) {
		g_variant_builder_add_value (&_tmp63_, g_variant_new_string (*_tmp62_));
		_tmp62_++;
	}
	g_variant_builder_add_value (&_reply_builder, g_variant_builder_end (&_tmp63_));
	result = (_vala_array_free (result, result_length1, (GDestroyNotify) g_free), NULL);
	_reply = g_variant_builder_end (&_reply_builder);
	g_dbus_message_set_body (_reply_message, _reply);
	g_dbus_connection_send_message (g_dbus_method_invocation_get_connection (invocation), _reply_message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
	g_object_unref (invocation);
	g_object_unref (_reply_message);
	_error:
	_g_free0 (_ready_data->username);
	g_slice_free (PcIparentalControlsGetUserDaemonTargetsReadyData, _ready_data);
}

static void
_dbus_pc_iparental_controls_lock_dock_icons_for_user (PCIParentalControls* self,
                                                      GVariant* _parameters_,
                                                      GDBusMethodInvocation* invocation)
{
	GVariantIter _arguments_iter;
	PcIparentalControlsLockDockIconsForUserReadyData* _ready_data;
	GVariant* _tmp65_;
	GVariant* _tmp66_;
	g_variant_iter_init (&_arguments_iter, _parameters_);
	_ready_data = g_slice_new0 (PcIparentalControlsLockDockIconsForUserReadyData);
	_ready_data->_invocation_ = invocation;
	_tmp65_ = g_variant_iter_next_value (&_arguments_iter);
	_ready_data->username = g_variant_dup_string (_tmp65_, NULL);
	g_variant_unref (_tmp65_);
	_tmp66_ = g_variant_iter_next_value (&_arguments_iter);
	_ready_data->lock = g_variant_get_boolean (_tmp66_);
	g_variant_unref (_tmp66_);
	pc_iparental_controls_lock_dock_icons_for_user (self, _ready_data->username, _ready_data->lock, (GAsyncReadyCallback) _dbus_pc_iparental_controls_lock_dock_icons_for_user_ready, _ready_data);
	_error:
	;
}

static void
_dbus_pc_iparental_controls_lock_dock_icons_for_user_ready (GObject * source_object,
                                                            GAsyncResult * _res_,
                                                            gpointer _user_data_)
{
	PcIparentalControlsLockDockIconsForUserReadyData* _ready_data;
	GDBusMethodInvocation* invocation;
	GError* error = NULL;
	GDBusMessage* _reply_message = NULL;
	GVariant* _reply;
	GVariantBuilder _reply_builder;
	_ready_data = _user_data_;
	invocation = _ready_data->_invocation_;
	pc_iparental_controls_lock_dock_icons_for_user_finish ((PCIParentalControls*) source_object, _res_, &error);
	if (error) {
		g_dbus_method_invocation_take_error (invocation, error);
		goto _error;
	}
	_reply_message = g_dbus_message_new_method_reply (g_dbus_method_invocation_get_message (invocation));
	g_variant_builder_init (&_reply_builder, G_VARIANT_TYPE_TUPLE);
	_reply = g_variant_builder_end (&_reply_builder);
	g_dbus_message_set_body (_reply_message, _reply);
	g_dbus_connection_send_message (g_dbus_method_invocation_get_connection (invocation), _reply_message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
	g_object_unref (invocation);
	g_object_unref (_reply_message);
	_error:
	_g_free0 (_ready_data->username);
	g_slice_free (PcIparentalControlsLockDockIconsForUserReadyData, _ready_data);
}

static void
_dbus_pc_iparental_controls_set_user_daemon_active (PCIParentalControls* self,
                                                    GVariant* _parameters_,
                                                    GDBusMethodInvocation* invocation)
{
	GVariantIter _arguments_iter;
	PcIparentalControlsSetUserDaemonActiveReadyData* _ready_data;
	GVariant* _tmp67_;
	GVariant* _tmp68_;
	g_variant_iter_init (&_arguments_iter, _parameters_);
	_ready_data = g_slice_new0 (PcIparentalControlsSetUserDaemonActiveReadyData);
	_ready_data->_invocation_ = invocation;
	_tmp67_ = g_variant_iter_next_value (&_arguments_iter);
	_ready_data->username = g_variant_dup_string (_tmp67_, NULL);
	g_variant_unref (_tmp67_);
	_tmp68_ = g_variant_iter_next_value (&_arguments_iter);
	_ready_data->active = g_variant_get_boolean (_tmp68_);
	g_variant_unref (_tmp68_);
	pc_iparental_controls_set_user_daemon_active (self, _ready_data->username, _ready_data->active, (GAsyncReadyCallback) _dbus_pc_iparental_controls_set_user_daemon_active_ready, _ready_data);
	_error:
	;
}

static void
_dbus_pc_iparental_controls_set_user_daemon_active_ready (GObject * source_object,
                                                          GAsyncResult * _res_,
                                                          gpointer _user_data_)
{
	PcIparentalControlsSetUserDaemonActiveReadyData* _ready_data;
	GDBusMethodInvocation* invocation;
	GError* error = NULL;
	GDBusMessage* _reply_message = NULL;
	GVariant* _reply;
	GVariantBuilder _reply_builder;
	_ready_data = _user_data_;
	invocation = _ready_data->_invocation_;
	pc_iparental_controls_set_user_daemon_active_finish ((PCIParentalControls*) source_object, _res_, &error);
	if (error) {
		g_dbus_method_invocation_take_error (invocation, error);
		goto _error;
	}
	_reply_message = g_dbus_message_new_method_reply (g_dbus_method_invocation_get_message (invocation));
	g_variant_builder_init (&_reply_builder, G_VARIANT_TYPE_TUPLE);
	_reply = g_variant_builder_end (&_reply_builder);
	g_dbus_message_set_body (_reply_message, _reply);
	g_dbus_connection_send_message (g_dbus_method_invocation_get_connection (invocation), _reply_message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
	g_object_unref (invocation);
	g_object_unref (_reply_message);
	_error:
	_g_free0 (_ready_data->username);
	g_slice_free (PcIparentalControlsSetUserDaemonActiveReadyData, _ready_data);
}

static void
_dbus_pc_iparental_controls_set_user_daemon_admin (PCIParentalControls* self,
                                                   GVariant* _parameters_,
                                                   GDBusMethodInvocation* invocation)
{
	GVariantIter _arguments_iter;
	PcIparentalControlsSetUserDaemonAdminReadyData* _ready_data;
	GVariant* _tmp69_;
	GVariant* _tmp70_;
	g_variant_iter_init (&_arguments_iter, _parameters_);
	_ready_data = g_slice_new0 (PcIparentalControlsSetUserDaemonAdminReadyData);
	_ready_data->_invocation_ = invocation;
	_tmp69_ = g_variant_iter_next_value (&_arguments_iter);
	_ready_data->username = g_variant_dup_string (_tmp69_, NULL);
	g_variant_unref (_tmp69_);
	_tmp70_ = g_variant_iter_next_value (&_arguments_iter);
	_ready_data->admin = g_variant_get_boolean (_tmp70_);
	g_variant_unref (_tmp70_);
	pc_iparental_controls_set_user_daemon_admin (self, _ready_data->username, _ready_data->admin, (GAsyncReadyCallback) _dbus_pc_iparental_controls_set_user_daemon_admin_ready, _ready_data);
	_error:
	;
}

static void
_dbus_pc_iparental_controls_set_user_daemon_admin_ready (GObject * source_object,
                                                         GAsyncResult * _res_,
                                                         gpointer _user_data_)
{
	PcIparentalControlsSetUserDaemonAdminReadyData* _ready_data;
	GDBusMethodInvocation* invocation;
	GError* error = NULL;
	GDBusMessage* _reply_message = NULL;
	GVariant* _reply;
	GVariantBuilder _reply_builder;
	_ready_data = _user_data_;
	invocation = _ready_data->_invocation_;
	pc_iparental_controls_set_user_daemon_admin_finish ((PCIParentalControls*) source_object, _res_, &error);
	if (error) {
		g_dbus_method_invocation_take_error (invocation, error);
		goto _error;
	}
	_reply_message = g_dbus_message_new_method_reply (g_dbus_method_invocation_get_message (invocation));
	g_variant_builder_init (&_reply_builder, G_VARIANT_TYPE_TUPLE);
	_reply = g_variant_builder_end (&_reply_builder);
	g_dbus_message_set_body (_reply_message, _reply);
	g_dbus_connection_send_message (g_dbus_method_invocation_get_connection (invocation), _reply_message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
	g_object_unref (invocation);
	g_object_unref (_reply_message);
	_error:
	_g_free0 (_ready_data->username);
	g_slice_free (PcIparentalControlsSetUserDaemonAdminReadyData, _ready_data);
}

static void
_dbus_pc_iparental_controls_set_user_daemon_block_urls (PCIParentalControls* self,
                                                        GVariant* _parameters_,
                                                        GDBusMethodInvocation* invocation)
{
	GVariantIter _arguments_iter;
	PcIparentalControlsSetUserDaemonBlockUrlsReadyData* _ready_data;
	GVariant* _tmp71_;
	GVariant* _tmp72_;
	gchar** _tmp73_;
	gint _tmp73__length;
	gint _tmp73__size;
	gint _tmp73__length1;
	GVariantIter _tmp74_;
	GVariant* _tmp75_;
	g_variant_iter_init (&_arguments_iter, _parameters_);
	_ready_data = g_slice_new0 (PcIparentalControlsSetUserDaemonBlockUrlsReadyData);
	_ready_data->_invocation_ = invocation;
	_tmp71_ = g_variant_iter_next_value (&_arguments_iter);
	_ready_data->username = g_variant_dup_string (_tmp71_, NULL);
	g_variant_unref (_tmp71_);
	_tmp72_ = g_variant_iter_next_value (&_arguments_iter);
	_tmp73_ = g_new (gchar*, 5);
	_tmp73__length = 0;
	_tmp73__size = 4;
	_tmp73__length1 = 0;
	g_variant_iter_init (&_tmp74_, _tmp72_);
	for (; (_tmp75_ = g_variant_iter_next_value (&_tmp74_)) != NULL; _tmp73__length1++) {
		if (_tmp73__size == _tmp73__length) {
			_tmp73__size = 2 * _tmp73__size;
			_tmp73_ = g_renew (gchar*, _tmp73_, _tmp73__size + 1);
		}
		_tmp73_[_tmp73__length++] = g_variant_dup_string (_tmp75_, NULL);
		g_variant_unref (_tmp75_);
	}
	_ready_data->block_urls_length1 = _tmp73__length1;
	_tmp73_[_tmp73__length] = NULL;
	_ready_data->block_urls = _tmp73_;
	g_variant_unref (_tmp72_);
	pc_iparental_controls_set_user_daemon_block_urls (self, _ready_data->username, _ready_data->block_urls, _ready_data->block_urls_length1, (GAsyncReadyCallback) _dbus_pc_iparental_controls_set_user_daemon_block_urls_ready, _ready_data);
	_error:
	;
}

static void
_dbus_pc_iparental_controls_set_user_daemon_block_urls_ready (GObject * source_object,
                                                              GAsyncResult * _res_,
                                                              gpointer _user_data_)
{
	PcIparentalControlsSetUserDaemonBlockUrlsReadyData* _ready_data;
	GDBusMethodInvocation* invocation;
	GError* error = NULL;
	GDBusMessage* _reply_message = NULL;
	GVariant* _reply;
	GVariantBuilder _reply_builder;
	_ready_data = _user_data_;
	invocation = _ready_data->_invocation_;
	pc_iparental_controls_set_user_daemon_block_urls_finish ((PCIParentalControls*) source_object, _res_, &error);
	if (error) {
		g_dbus_method_invocation_take_error (invocation, error);
		goto _error;
	}
	_reply_message = g_dbus_message_new_method_reply (g_dbus_method_invocation_get_message (invocation));
	g_variant_builder_init (&_reply_builder, G_VARIANT_TYPE_TUPLE);
	_reply = g_variant_builder_end (&_reply_builder);
	g_dbus_message_set_body (_reply_message, _reply);
	g_dbus_connection_send_message (g_dbus_method_invocation_get_connection (invocation), _reply_message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
	g_object_unref (invocation);
	g_object_unref (_reply_message);
	_error:
	_g_free0 (_ready_data->username);
	_ready_data->block_urls = (_vala_array_free (_ready_data->block_urls, _ready_data->block_urls_length1, (GDestroyNotify) g_free), NULL);
	g_slice_free (PcIparentalControlsSetUserDaemonBlockUrlsReadyData, _ready_data);
}

static void
_dbus_pc_iparental_controls_set_user_daemon_targets (PCIParentalControls* self,
                                                     GVariant* _parameters_,
                                                     GDBusMethodInvocation* invocation)
{
	GVariantIter _arguments_iter;
	PcIparentalControlsSetUserDaemonTargetsReadyData* _ready_data;
	GVariant* _tmp76_;
	GVariant* _tmp77_;
	gchar** _tmp78_;
	gint _tmp78__length;
	gint _tmp78__size;
	gint _tmp78__length1;
	GVariantIter _tmp79_;
	GVariant* _tmp80_;
	g_variant_iter_init (&_arguments_iter, _parameters_);
	_ready_data = g_slice_new0 (PcIparentalControlsSetUserDaemonTargetsReadyData);
	_ready_data->_invocation_ = invocation;
	_tmp76_ = g_variant_iter_next_value (&_arguments_iter);
	_ready_data->username = g_variant_dup_string (_tmp76_, NULL);
	g_variant_unref (_tmp76_);
	_tmp77_ = g_variant_iter_next_value (&_arguments_iter);
	_tmp78_ = g_new (gchar*, 5);
	_tmp78__length = 0;
	_tmp78__size = 4;
	_tmp78__length1 = 0;
	g_variant_iter_init (&_tmp79_, _tmp77_);
	for (; (_tmp80_ = g_variant_iter_next_value (&_tmp79_)) != NULL; _tmp78__length1++) {
		if (_tmp78__size == _tmp78__length) {
			_tmp78__size = 2 * _tmp78__size;
			_tmp78_ = g_renew (gchar*, _tmp78_, _tmp78__size + 1);
		}
		_tmp78_[_tmp78__length++] = g_variant_dup_string (_tmp80_, NULL);
		g_variant_unref (_tmp80_);
	}
	_ready_data->targets_length1 = _tmp78__length1;
	_tmp78_[_tmp78__length] = NULL;
	_ready_data->targets = _tmp78_;
	g_variant_unref (_tmp77_);
	pc_iparental_controls_set_user_daemon_targets (self, _ready_data->username, _ready_data->targets, _ready_data->targets_length1, (GAsyncReadyCallback) _dbus_pc_iparental_controls_set_user_daemon_targets_ready, _ready_data);
	_error:
	;
}

static void
_dbus_pc_iparental_controls_set_user_daemon_targets_ready (GObject * source_object,
                                                           GAsyncResult * _res_,
                                                           gpointer _user_data_)
{
	PcIparentalControlsSetUserDaemonTargetsReadyData* _ready_data;
	GDBusMethodInvocation* invocation;
	GError* error = NULL;
	GDBusMessage* _reply_message = NULL;
	GVariant* _reply;
	GVariantBuilder _reply_builder;
	_ready_data = _user_data_;
	invocation = _ready_data->_invocation_;
	pc_iparental_controls_set_user_daemon_targets_finish ((PCIParentalControls*) source_object, _res_, &error);
	if (error) {
		g_dbus_method_invocation_take_error (invocation, error);
		goto _error;
	}
	_reply_message = g_dbus_message_new_method_reply (g_dbus_method_invocation_get_message (invocation));
	g_variant_builder_init (&_reply_builder, G_VARIANT_TYPE_TUPLE);
	_reply = g_variant_builder_end (&_reply_builder);
	g_dbus_message_set_body (_reply_message, _reply);
	g_dbus_connection_send_message (g_dbus_method_invocation_get_connection (invocation), _reply_message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
	g_object_unref (invocation);
	g_object_unref (_reply_message);
	_error:
	_g_free0 (_ready_data->username);
	_ready_data->targets = (_vala_array_free (_ready_data->targets, _ready_data->targets_length1, (GDestroyNotify) g_free), NULL);
	g_slice_free (PcIparentalControlsSetUserDaemonTargetsReadyData, _ready_data);
}

static void
pc_iparental_controls_dbus_interface_method_call (GDBusConnection* connection,
                                                  const gchar* sender,
                                                  const gchar* object_path,
                                                  const gchar* interface_name,
                                                  const gchar* method_name,
                                                  GVariant* parameters,
                                                  GDBusMethodInvocation* invocation,
                                                  gpointer user_data)
{
	gpointer* data;
	gpointer object;
	data = user_data;
	object = data[0];
	if (strcmp (method_name, "AddRestrictionForUser") == 0) {
		_dbus_pc_iparental_controls_add_restriction_for_user (object, parameters, invocation);
	} else if (strcmp (method_name, "RemoveRestrictionForUser") == 0) {
		_dbus_pc_iparental_controls_remove_restriction_for_user (object, parameters, invocation);
	} else if (strcmp (method_name, "FinishAppAuthorization") == 0) {
		_dbus_pc_iparental_controls_finish_app_authorization (object, parameters, invocation);
	} else if (strcmp (method_name, "GetUserDaemonActive") == 0) {
		_dbus_pc_iparental_controls_get_user_daemon_active (object, parameters, invocation);
	} else if (strcmp (method_name, "GetUserDaemonAdmin") == 0) {
		_dbus_pc_iparental_controls_get_user_daemon_admin (object, parameters, invocation);
	} else if (strcmp (method_name, "GetUserDaemonBlockUrls") == 0) {
		_dbus_pc_iparental_controls_get_user_daemon_block_urls (object, parameters, invocation);
	} else if (strcmp (method_name, "GetUserDaemonTargets") == 0) {
		_dbus_pc_iparental_controls_get_user_daemon_targets (object, parameters, invocation);
	} else if (strcmp (method_name, "LockDockIconsForUser") == 0) {
		_dbus_pc_iparental_controls_lock_dock_icons_for_user (object, parameters, invocation);
	} else if (strcmp (method_name, "SetUserDaemonActive") == 0) {
		_dbus_pc_iparental_controls_set_user_daemon_active (object, parameters, invocation);
	} else if (strcmp (method_name, "SetUserDaemonAdmin") == 0) {
		_dbus_pc_iparental_controls_set_user_daemon_admin (object, parameters, invocation);
	} else if (strcmp (method_name, "SetUserDaemonBlockUrls") == 0) {
		_dbus_pc_iparental_controls_set_user_daemon_block_urls (object, parameters, invocation);
	} else if (strcmp (method_name, "SetUserDaemonTargets") == 0) {
		_dbus_pc_iparental_controls_set_user_daemon_targets (object, parameters, invocation);
	} else {
		g_object_unref (invocation);
	}
}

static GVariant*
pc_iparental_controls_dbus_interface_get_property (GDBusConnection* connection,
                                                   const gchar* sender,
                                                   const gchar* object_path,
                                                   const gchar* interface_name,
                                                   const gchar* property_name,
                                                   GError** error,
                                                   gpointer user_data)
{
	return NULL;
}

static gboolean
pc_iparental_controls_dbus_interface_set_property (GDBusConnection* connection,
                                                   const gchar* sender,
                                                   const gchar* object_path,
                                                   const gchar* interface_name,
                                                   const gchar* property_name,
                                                   GVariant* value,
                                                   GError** error,
                                                   gpointer user_data)
{
	return FALSE;
}

static void
_dbus_pc_iparental_controls_launch (GObject* _sender,
                                    gchar** args,
                                    gint args_length1,
                                    gboolean incoming,
                                    gpointer* _data)
{
	GDBusConnection * _connection;
	const gchar * _path;
	GVariant *_arguments;
	GVariantBuilder _arguments_builder;
	gchar** _tmp81_;
	GVariantBuilder _tmp82_;
	gint _tmp83_;
	_connection = _data[1];
	_path = _data[2];
	g_variant_builder_init (&_arguments_builder, G_VARIANT_TYPE_TUPLE);
	_tmp81_ = args;
	g_variant_builder_init (&_tmp82_, G_VARIANT_TYPE ("as"));
	for (_tmp83_ = 0; _tmp83_ < args_length1; _tmp83_++) {
		g_variant_builder_add_value (&_tmp82_, g_variant_new_string (*_tmp81_));
		_tmp81_++;
	}
	g_variant_builder_add_value (&_arguments_builder, g_variant_builder_end (&_tmp82_));
	g_variant_builder_add_value (&_arguments_builder, g_variant_new_boolean (incoming));
	_arguments = g_variant_builder_end (&_arguments_builder);
	g_dbus_connection_emit_signal (_connection, NULL, _path, "org.pantheon.ParentalControls", "Launch", _arguments, NULL);
}

static void
_dbus_pc_iparental_controls_show_timeout (GObject* _sender,
                                          gint hours,
                                          gint minutes,
                                          gpointer* _data)
{
	GDBusConnection * _connection;
	const gchar * _path;
	GVariant *_arguments;
	GVariantBuilder _arguments_builder;
	_connection = _data[1];
	_path = _data[2];
	g_variant_builder_init (&_arguments_builder, G_VARIANT_TYPE_TUPLE);
	g_variant_builder_add_value (&_arguments_builder, g_variant_new_int32 (hours));
	g_variant_builder_add_value (&_arguments_builder, g_variant_new_int32 (minutes));
	_arguments = g_variant_builder_end (&_arguments_builder);
	g_dbus_connection_emit_signal (_connection, NULL, _path, "org.pantheon.ParentalControls", "ShowTimeout", _arguments, NULL);
}

static void
_dbus_pc_iparental_controls_user_config_changed (GObject* _sender,
                                                 const gchar* username,
                                                 gpointer* _data)
{
	GDBusConnection * _connection;
	const gchar * _path;
	GVariant *_arguments;
	GVariantBuilder _arguments_builder;
	_connection = _data[1];
	_path = _data[2];
	g_variant_builder_init (&_arguments_builder, G_VARIANT_TYPE_TUPLE);
	g_variant_builder_add_value (&_arguments_builder, g_variant_new_string (username));
	_arguments = g_variant_builder_end (&_arguments_builder);
	g_dbus_connection_emit_signal (_connection, NULL, _path, "org.pantheon.ParentalControls", "UserConfigChanged", _arguments, NULL);
}

guint
pc_iparental_controls_register_object (gpointer object,
                                       GDBusConnection* connection,
                                       const gchar* path,
                                       GError** error)
{
	guint result;
	gpointer *data;
	data = g_new (gpointer, 3);
	data[0] = g_object_ref (object);
	data[1] = g_object_ref (connection);
	data[2] = g_strdup (path);
	result = g_dbus_connection_register_object (connection, path, (GDBusInterfaceInfo *) (&_pc_iparental_controls_dbus_interface_info), &_pc_iparental_controls_dbus_interface_vtable, data, _pc_iparental_controls_unregister_object, error);
	if (!result) {
		return 0;
	}
	g_signal_connect (object, "launch", (GCallback) _dbus_pc_iparental_controls_launch, data);
	g_signal_connect (object, "show-timeout", (GCallback) _dbus_pc_iparental_controls_show_timeout, data);
	g_signal_connect (object, "user-config-changed", (GCallback) _dbus_pc_iparental_controls_user_config_changed, data);
	return result;
}

static void
_pc_iparental_controls_unregister_object (gpointer user_data)
{
	gpointer* data;
	data = user_data;
	g_signal_handlers_disconnect_by_func (data[0], _dbus_pc_iparental_controls_launch, data);
	g_signal_handlers_disconnect_by_func (data[0], _dbus_pc_iparental_controls_show_timeout, data);
	g_signal_handlers_disconnect_by_func (data[0], _dbus_pc_iparental_controls_user_config_changed, data);
	g_object_unref (data[0]);
	g_object_unref (data[1]);
	g_free (data[2]);
	g_free (data);
}

PCIParentalControls*
pc_utils_get_api (void)
{
	PCIParentalControls* _tmp0_;
	PCIParentalControls* _tmp8_;
	GError* _inner_error0_ = NULL;
	PCIParentalControls* result;
	_tmp0_ = pc_utils_api;
	if (_tmp0_ != NULL) {
		PCIParentalControls* _tmp1_;
		_tmp1_ = pc_utils_api;
		result = _tmp1_;
		return result;
	}
	{
		PCIParentalControls* _tmp2_ = NULL;
		PCIParentalControls* _tmp3_;
		PCIParentalControls* _tmp4_;
		_tmp3_ = (PCIParentalControls*) g_initable_new (PC_TYPE_IPARENTAL_CONTROLS_PROXY, NULL, &_inner_error0_, "g-flags", 0, "g-name", PC_CONSTANTS_PARENTAL_CONTROLS_IFACE, "g-bus-type", G_BUS_TYPE_SYSTEM, "g-object-path", PC_CONSTANTS_PARENTAL_CONTROLS_OBJECT_PATH, "g-interface-name", "org.pantheon.ParentalControls", NULL);
		_tmp2_ = (PCIParentalControls*) _tmp3_;
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
			goto __catch0_g_error;
		}
		_tmp4_ = _tmp2_;
		_tmp2_ = NULL;
		_g_object_unref0 (pc_utils_api);
		pc_utils_api = _tmp4_;
		_g_object_unref0 (_tmp2_);
	}
	goto __finally0;
	__catch0_g_error:
	{
		GError* e = NULL;
		GError* _tmp5_;
		const gchar* _tmp6_;
		PCUtilsDummyParentalControls* _tmp7_;
		e = _inner_error0_;
		_inner_error0_ = NULL;
		_tmp5_ = e;
		_tmp6_ = _tmp5_->message;
		g_critical ("Utils.vala:82: %s, using dummy parental controls backend", _tmp6_);
		_tmp7_ = pc_utils_dummy_parental_controls_new ();
		_g_object_unref0 (pc_utils_api);
		pc_utils_api = (PCIParentalControls*) _tmp7_;
		_g_error_free0 (e);
	}
	__finally0:
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
		g_clear_error (&_inner_error0_);
		return NULL;
	}
	_tmp8_ = pc_utils_api;
	result = _tmp8_;
	return result;
}

PolkitPermission*
pc_utils_get_permission (void)
{
	PolkitPermission* _tmp0_;
	GError* _inner_error0_ = NULL;
	PolkitPermission* result;
	_tmp0_ = pc_utils_permission;
	if (_tmp0_ != NULL) {
		PolkitPermission* _tmp1_;
		_tmp1_ = pc_utils_permission;
		result = _tmp1_;
		return result;
	}
	{
		PolkitUnixUser* user = NULL;
		const gchar* _tmp2_;
		PolkitUnixUser* _tmp3_;
		PolkitUnixProcess* unixuser = NULL;
		PolkitUnixUser* _tmp4_;
		PolkitUnixProcess* _tmp5_;
		PolkitPermission* _tmp6_ = NULL;
		PolkitUnixProcess* _tmp7_;
		PolkitPermission* _tmp8_;
		PolkitPermission* _tmp9_;
		PolkitPermission* _tmp10_;
		_tmp2_ = g_get_user_name ();
		_tmp3_ = (PolkitUnixUser*) polkit_unix_user_new_for_name (_tmp2_, &_inner_error0_);
		user = _tmp3_;
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
			goto __catch0_g_error;
		}
		_tmp4_ = user;
		_tmp5_ = (PolkitUnixProcess*) polkit_unix_process_new_for_owner ((gint) getpid (), (guint64) 0, polkit_unix_user_get_uid (_tmp4_));
		unixuser = _tmp5_;
		_tmp7_ = unixuser;
		_tmp8_ = (PolkitPermission*) polkit_permission_new_sync (PC_CONSTANTS_PARENTAL_CONTROLS_ACTION_ID, (PolkitSubject*) _tmp7_, NULL, &_inner_error0_);
		_tmp6_ = _tmp8_;
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
			_g_object_unref0 (unixuser);
			_g_object_unref0 (user);
			goto __catch0_g_error;
		}
		_tmp9_ = _tmp6_;
		_tmp6_ = NULL;
		_g_object_unref0 (pc_utils_permission);
		pc_utils_permission = _tmp9_;
		_tmp10_ = pc_utils_permission;
		result = _tmp10_;
		_g_object_unref0 (_tmp6_);
		_g_object_unref0 (unixuser);
		_g_object_unref0 (user);
		return result;
	}
	goto __finally0;
	__catch0_g_error:
	{
		GError* e = NULL;
		GError* _tmp11_;
		const gchar* _tmp12_;
		e = _inner_error0_;
		_inner_error0_ = NULL;
		_tmp11_ = e;
		_tmp12_ = _tmp11_->message;
		g_critical ("Utils.vala:100: %s", _tmp12_);
		result = NULL;
		_g_error_free0 (e);
		return result;
	}
	__finally0:
	g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
	g_clear_error (&_inner_error0_);
	return NULL;
}

static const gchar*
string_to_string (const gchar* self)
{
	const gchar* result;
	g_return_val_if_fail (self != NULL, NULL);
	result = self;
	return result;
}

gchar*
pc_utils_create_markup (const gchar* name,
                        const gchar* comment)
{
	gchar* escaped_name = NULL;
	gchar* _tmp0_;
	gchar* escaped_comment = NULL;
	gchar* _tmp1_;
	const gchar* _tmp2_;
	const gchar* _tmp3_;
	gchar* _tmp4_;
	gchar* result;
	g_return_val_if_fail (name != NULL, NULL);
	g_return_val_if_fail (comment != NULL, NULL);
	_tmp0_ = g_markup_escape_text (name, (gssize) -1);
	escaped_name = _tmp0_;
	_tmp1_ = g_markup_escape_text (comment, (gssize) -1);
	escaped_comment = _tmp1_;
	_tmp2_ = string_to_string (escaped_name);
	_tmp3_ = string_to_string (escaped_comment);
	_tmp4_ = g_strconcat ("<span font_weight=\"bold\" size=\"large\">", _tmp2_, "</span>\n", _tmp3_, NULL);
	result = _tmp4_;
	_g_free0 (escaped_comment);
	_g_free0 (escaped_name);
	return result;
}

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

ActUserManager*
pc_utils_get_usermanager (void)
{
	ActUserManager* _tmp0_;
	ActUserManager* _tmp2_;
	ActUserManager* _tmp3_;
	ActUserManager* _tmp4_;
	ActUserManager* result;
	_tmp0_ = pc_utils_usermanager;
	if (_tmp0_ != NULL) {
		ActUserManager* _tmp1_;
		_tmp1_ = pc_utils_usermanager;
		result = _tmp1_;
		return result;
	}
	_tmp2_ = act_user_manager_get_default ();
	_tmp3_ = _g_object_ref0 (_tmp2_);
	_g_object_unref0 (pc_utils_usermanager);
	pc_utils_usermanager = _tmp3_;
	_tmp4_ = pc_utils_usermanager;
	result = _tmp4_;
	return result;
}

ActUser*
pc_utils_get_current_user (void)
{
	ActUserManager* _tmp0_;
	const gchar* _tmp1_;
	ActUser* _tmp2_;
	ActUser* result;
	_tmp0_ = pc_utils_get_usermanager ();
	_tmp1_ = g_get_user_name ();
	_tmp2_ = act_user_manager_get_user (_tmp0_, _tmp1_);
	result = _tmp2_;
	return result;
}

/**
         * Explicitly converts the executable in the Exec field to the absolute executable path
         * while taking into account the pantheon-parental-controls-client arguments.
         */
static gchar*
string_replace (const gchar* self,
                const gchar* old,
                const gchar* replacement)
{
	gboolean _tmp0_ = FALSE;
	gboolean _tmp1_ = FALSE;
	GError* _inner_error0_ = NULL;
	gchar* result;
	g_return_val_if_fail (self != NULL, NULL);
	g_return_val_if_fail (old != NULL, NULL);
	g_return_val_if_fail (replacement != NULL, NULL);
	if ((*((gchar*) self)) == '\0') {
		_tmp1_ = TRUE;
	} else {
		_tmp1_ = (*((gchar*) old)) == '\0';
	}
	if (_tmp1_) {
		_tmp0_ = TRUE;
	} else {
		_tmp0_ = g_strcmp0 (old, replacement) == 0;
	}
	if (_tmp0_) {
		gchar* _tmp2_;
		_tmp2_ = g_strdup (self);
		result = _tmp2_;
		return result;
	}
	{
		GRegex* regex = NULL;
		gchar* _tmp3_;
		gchar* _tmp4_;
		GRegex* _tmp5_;
		GRegex* _tmp6_;
		gchar* _tmp7_ = NULL;
		GRegex* _tmp8_;
		gchar* _tmp9_;
		gchar* _tmp10_;
		_tmp3_ = g_regex_escape_string (old, -1);
		_tmp4_ = _tmp3_;
		_tmp5_ = g_regex_new (_tmp4_, 0, 0, &_inner_error0_);
		_tmp6_ = _tmp5_;
		_g_free0 (_tmp4_);
		regex = _tmp6_;
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
			if (_inner_error0_->domain == G_REGEX_ERROR) {
				goto __catch0_g_regex_error;
			}
			g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
			g_clear_error (&_inner_error0_);
			return NULL;
		}
		_tmp8_ = regex;
		_tmp9_ = g_regex_replace_literal (_tmp8_, self, (gssize) -1, 0, replacement, 0, &_inner_error0_);
		_tmp7_ = _tmp9_;
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
			_g_regex_unref0 (regex);
			if (_inner_error0_->domain == G_REGEX_ERROR) {
				goto __catch0_g_regex_error;
			}
			g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
			g_clear_error (&_inner_error0_);
			return NULL;
		}
		_tmp10_ = _tmp7_;
		_tmp7_ = NULL;
		result = _tmp10_;
		_g_free0 (_tmp7_);
		_g_regex_unref0 (regex);
		return result;
	}
	goto __finally0;
	__catch0_g_regex_error:
	{
		g_clear_error (&_inner_error0_);
		g_assert_not_reached ();
	}
	__finally0:
	g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
	g_clear_error (&_inner_error0_);
	return NULL;
}

gchar*
pc_utils_info_to_exec_path (GAppInfo* info,
                            gchar*** args,
                            gint* args_length1)
{
	gchar** _vala_args = NULL;
	gint _vala_args_length1 = 0;
	const gchar* _tmp0_;
	gchar** _tmp1_;
	gchar** _tmp2_;
	gchar* exec = NULL;
	const gchar* _tmp3_;
	gchar* _tmp4_;
	gboolean _tmp5_ = FALSE;
	gchar** _tmp6_;
	gint _tmp6__length1;
	const gchar* _tmp36_;
	gchar* _tmp37_;
	GError* _inner_error0_ = NULL;
	gchar* result;
	g_return_val_if_fail (info != NULL, NULL);
	_tmp0_ = g_app_info_get_commandline (info);
	_tmp2_ = _tmp1_ = g_strsplit (_tmp0_, " ", 0);
	_vala_args = (_vala_array_free (_vala_args, _vala_args_length1, (GDestroyNotify) g_free), NULL);
	_vala_args = _tmp2_;
	_vala_args_length1 = _vala_array_length (_tmp1_);
	_tmp3_ = g_app_info_get_executable (info);
	_tmp4_ = g_strdup (_tmp3_);
	exec = _tmp4_;
	_tmp6_ = _vala_args;
	_tmp6__length1 = _vala_args_length1;
	if (_tmp6__length1 > 2) {
		gchar** _tmp7_;
		gint _tmp7__length1;
		const gchar* _tmp8_;
		_tmp7_ = _vala_args;
		_tmp7__length1 = _vala_args_length1;
		_tmp8_ = _tmp7_[0];
		_tmp5_ = g_strcmp0 (_tmp8_, PC_CONSTANTS_CLIENT_PATH) == 0;
	} else {
		_tmp5_ = FALSE;
	}
	if (_tmp5_) {
		gchar** _tmp9_;
		gint _tmp9__length1;
		const gchar* _tmp10_;
		_tmp9_ = _vala_args;
		_tmp9__length1 = _vala_args_length1;
		_tmp10_ = _tmp9_[1];
		if (g_strcmp0 (_tmp10_, "-d") == 0) {
			gchar** _tmp11_;
			gint _tmp11__length1;
			const gchar* _tmp12_;
			gchar* _tmp13_;
			_tmp11_ = _vala_args;
			_tmp11__length1 = _vala_args_length1;
			_tmp12_ = _tmp11_[2];
			_tmp13_ = g_strdup (_tmp12_);
			_g_free0 (exec);
			exec = _tmp13_;
		} else {
			gchar** _tmp14_;
			gint _tmp14__length1;
			const gchar* _tmp15_;
			_tmp14_ = _vala_args;
			_tmp14__length1 = _vala_args_length1;
			_tmp15_ = _tmp14_[1];
			if (g_strcmp0 (_tmp15_, "-a") == 0) {
				gchar** tokens = NULL;
				gchar** _tmp16_;
				gint _tmp16__length1;
				const gchar* _tmp17_;
				gchar* _tmp18_;
				gchar* _tmp19_;
				gchar** _tmp20_;
				gchar** _tmp21_;
				gchar** _tmp22_;
				gint _tmp22__length1;
				gint tokens_length1;
				gint _tokens_size_;
				gchar** _tmp23_;
				gint _tmp23__length1;
				gchar* target = NULL;
				gchar** _tmp24_;
				gint _tmp24__length1;
				const gchar* _tmp25_;
				gchar* _tmp26_;
				gchar** _tmp33_;
				gint _tmp33__length1;
				const gchar* _tmp34_;
				gchar* _tmp35_;
				_tmp16_ = _vala_args;
				_tmp16__length1 = _vala_args_length1;
				_tmp17_ = _tmp16_[2];
				_tmp18_ = string_replace (_tmp17_, "\"", "");
				_tmp19_ = _tmp18_;
				_tmp21_ = _tmp20_ = g_strsplit (_tmp19_, ":", 0);
				_tmp22_ = _tmp21_;
				_tmp22__length1 = _vala_array_length (_tmp20_);
				_g_free0 (_tmp19_);
				tokens = _tmp22_;
				tokens_length1 = _tmp22__length1;
				_tokens_size_ = tokens_length1;
				_tmp23_ = tokens;
				_tmp23__length1 = tokens_length1;
				if (_tmp23__length1 < 3) {
					result = exec;
					tokens = (_vala_array_free (tokens, tokens_length1, (GDestroyNotify) g_free), NULL);
					if (args) {
						*args = _vala_args;
					} else {
						_vala_args = (_vala_array_free (_vala_args, _vala_args_length1, (GDestroyNotify) g_free), NULL);
					}
					if (args_length1) {
						*args_length1 = _vala_args_length1;
					}
					return result;
				}
				_tmp24_ = tokens;
				_tmp24__length1 = tokens_length1;
				_tmp25_ = _tmp24_[2];
				_tmp26_ = g_strdup (_tmp25_);
				target = _tmp26_;
				{
					const gchar* _tmp27_;
					gchar** _tmp28_ = NULL;
					gint _tmp29_ = 0;
					_tmp27_ = target;
					g_shell_parse_argv (_tmp27_, &_tmp29_, &_tmp28_, &_inner_error0_);
					_vala_args = (_vala_array_free (_vala_args, _vala_args_length1, (GDestroyNotify) g_free), NULL);
					_vala_args = _tmp28_;
					_vala_args_length1 = _tmp29_;
					if (G_UNLIKELY (_inner_error0_ != NULL)) {
						if (_inner_error0_->domain == G_SHELL_ERROR) {
							goto __catch0_g_shell_error;
						}
						_g_free0 (target);
						tokens = (_vala_array_free (tokens, tokens_length1, (GDestroyNotify) g_free), NULL);
						_g_free0 (exec);
						_vala_args = (_vala_array_free (_vala_args, _vala_args_length1, (GDestroyNotify) g_free), NULL);
						g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
						g_clear_error (&_inner_error0_);
						return NULL;
					}
				}
				goto __finally0;
				__catch0_g_shell_error:
				{
					const gchar* _tmp30_;
					gchar** _tmp31_;
					gchar** _tmp32_;
					g_clear_error (&_inner_error0_);
					_tmp30_ = exec;
					_tmp32_ = _tmp31_ = g_strsplit (_tmp30_, " ", 0);
					_vala_args = (_vala_array_free (_vala_args, _vala_args_length1, (GDestroyNotify) g_free), NULL);
					_vala_args = _tmp32_;
					_vala_args_length1 = _vala_array_length (_tmp31_);
				}
				__finally0:
				if (G_UNLIKELY (_inner_error0_ != NULL)) {
					_g_free0 (target);
					tokens = (_vala_array_free (tokens, tokens_length1, (GDestroyNotify) g_free), NULL);
					_g_free0 (exec);
					_vala_args = (_vala_array_free (_vala_args, _vala_args_length1, (GDestroyNotify) g_free), NULL);
					g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
					g_clear_error (&_inner_error0_);
					return NULL;
				}
				_tmp33_ = _vala_args;
				_tmp33__length1 = _vala_args_length1;
				_tmp34_ = _tmp33_[0];
				_tmp35_ = g_strdup (_tmp34_);
				_g_free0 (exec);
				exec = _tmp35_;
				_g_free0 (target);
				tokens = (_vala_array_free (tokens, tokens_length1, (GDestroyNotify) g_free), NULL);
			}
		}
	}
	_tmp36_ = exec;
	_tmp37_ = pc_utils_exec_to_path (_tmp36_);
	result = _tmp37_;
	_g_free0 (exec);
	if (args) {
		*args = _vala_args;
	} else {
		_vala_args = (_vala_array_free (_vala_args, _vala_args_length1, (GDestroyNotify) g_free), NULL);
	}
	if (args_length1) {
		*args_length1 = _vala_args_length1;
	}
	return result;
}

static gchar*
pc_utils_exec_to_path (const gchar* exec)
{
	gchar* _tmp4_;
	gchar* result;
	g_return_val_if_fail (exec != NULL, NULL);
	if (!g_str_has_prefix (exec, G_DIR_SEPARATOR_S)) {
		gchar* _tmp0_ = NULL;
		gchar* _tmp1_;
		gchar* _tmp3_;
		_tmp1_ = g_find_program_in_path (exec);
		_tmp0_ = _tmp1_;
		if (_tmp0_ == NULL) {
			gchar* _tmp2_;
			_tmp2_ = g_strdup (exec);
			_g_free0 (_tmp0_);
			_tmp0_ = _tmp2_;
		}
		_tmp3_ = _tmp0_;
		_tmp0_ = NULL;
		result = _tmp3_;
		_g_free0 (_tmp0_);
		return result;
	}
	_tmp4_ = g_strdup (exec);
	result = _tmp4_;
	return result;
}

static gchar*
string_strip (const gchar* self)
{
	gchar* _result_ = NULL;
	gchar* _tmp0_;
	gchar* result;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = g_strdup (self);
	_result_ = _tmp0_;
	g_strstrip (_result_);
	result = _result_;
	return result;
}

gchar*
pc_utils_remove_comments (const gchar* str)
{
	gchar* buffer = NULL;
	gchar* _tmp0_;
	gchar** _tmp1_;
	gchar** _tmp2_;
	gchar* result;
	g_return_val_if_fail (str != NULL, NULL);
	_tmp0_ = g_strdup ("");
	buffer = _tmp0_;
	_tmp2_ = _tmp1_ = g_strsplit (str, "\n", 0);
	{
		gchar** line_collection = NULL;
		gint line_collection_length1 = 0;
		gint _line_collection_size_ = 0;
		gint line_it = 0;
		line_collection = _tmp2_;
		line_collection_length1 = _vala_array_length (_tmp1_);
		for (line_it = 0; line_it < line_collection_length1; line_it = line_it + 1) {
			gchar* _tmp3_;
			gchar* line = NULL;
			_tmp3_ = g_strdup (line_collection[line_it]);
			line = _tmp3_;
			{
				const gchar* _tmp4_;
				gchar* _tmp5_;
				gchar* _tmp6_;
				gboolean _tmp7_;
				_tmp4_ = line;
				_tmp5_ = string_strip (_tmp4_);
				_tmp6_ = _tmp5_;
				_tmp7_ = !g_str_has_prefix (_tmp6_, "#");
				_g_free0 (_tmp6_);
				if (_tmp7_) {
					const gchar* _tmp8_;
					const gchar* _tmp9_;
					gchar* _tmp10_;
					const gchar* _tmp11_;
					gchar* _tmp12_;
					_tmp8_ = buffer;
					_tmp9_ = line;
					_tmp10_ = g_strconcat (_tmp8_, _tmp9_, NULL);
					_g_free0 (buffer);
					buffer = _tmp10_;
					_tmp11_ = buffer;
					_tmp12_ = g_strconcat (_tmp11_, "\n", NULL);
					_g_free0 (buffer);
					buffer = _tmp12_;
				}
				_g_free0 (line);
			}
		}
		line_collection = (_vala_array_free (line_collection, line_collection_length1, (GDestroyNotify) g_free), NULL);
	}
	result = buffer;
	return result;
}

PCUtils*
pc_utils_construct (GType object_type)
{
	PCUtils* self = NULL;
	self = (PCUtils*) g_type_create_instance (object_type);
	return self;
}

PCUtils*
pc_utils_new (void)
{
	return pc_utils_construct (PC_TYPE_UTILS);
}

static void
pc_utils_dummy_parental_controls_real_add_restriction_for_user_data_free (gpointer _data)
{
	PcUtilsDummyParentalControlsAddRestrictionForUserData* _data_;
	_data_ = _data;
	_g_free0 (_data_->input);
	_g_object_unref0 (_data_->self);
	g_slice_free (PcUtilsDummyParentalControlsAddRestrictionForUserData, _data_);
}

static void
pc_utils_dummy_parental_controls_real_add_restriction_for_user (PCIParentalControls* base,
                                                                const gchar* input,
                                                                gboolean clean,
                                                                GAsyncReadyCallback _callback_,
                                                                gpointer _user_data_)
{
	PCUtilsDummyParentalControls * self;
	PcUtilsDummyParentalControlsAddRestrictionForUserData* _data_;
	PCUtilsDummyParentalControls* _tmp0_;
	gchar* _tmp1_;
	g_return_if_fail (input != NULL);
	self = (PCUtilsDummyParentalControls*) base;
	_data_ = g_slice_new0 (PcUtilsDummyParentalControlsAddRestrictionForUserData);
	_data_->_async_result = g_task_new (G_OBJECT (self), NULL, _callback_, _user_data_);
	g_task_set_task_data (_data_->_async_result, _data_, pc_utils_dummy_parental_controls_real_add_restriction_for_user_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	_tmp1_ = g_strdup (input);
	_g_free0 (_data_->input);
	_data_->input = _tmp1_;
	_data_->clean = clean;
	pc_utils_dummy_parental_controls_real_add_restriction_for_user_co (_data_);
}

static void
pc_utils_dummy_parental_controls_add_restriction_for_user_finish (PCIParentalControls* base,
                                                                  GAsyncResult* _res_,
                                                                  GError** error)
{
	PcUtilsDummyParentalControlsAddRestrictionForUserData* _data_;
	_data_ = g_task_propagate_pointer (G_TASK (_res_), error);
	if (NULL == _data_) {
		return;
	}
}

static gboolean
pc_utils_dummy_parental_controls_real_add_restriction_for_user_co (PcUtilsDummyParentalControlsAddRestrictionForUserData* _data_)
{
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	g_task_return_pointer (_data_->_async_result, _data_, NULL);
	if (_data_->_state_ != 0) {
		while (!g_task_get_completed (_data_->_async_result)) {
			g_main_context_iteration (g_task_get_context (_data_->_async_result), TRUE);
		}
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}

static void
pc_utils_dummy_parental_controls_real_remove_restriction_for_user_data_free (gpointer _data)
{
	PcUtilsDummyParentalControlsRemoveRestrictionForUserData* _data_;
	_data_ = _data;
	_g_free0 (_data_->username);
	_g_object_unref0 (_data_->self);
	g_slice_free (PcUtilsDummyParentalControlsRemoveRestrictionForUserData, _data_);
}

static void
pc_utils_dummy_parental_controls_real_remove_restriction_for_user (PCIParentalControls* base,
                                                                   const gchar* username,
                                                                   GAsyncReadyCallback _callback_,
                                                                   gpointer _user_data_)
{
	PCUtilsDummyParentalControls * self;
	PcUtilsDummyParentalControlsRemoveRestrictionForUserData* _data_;
	PCUtilsDummyParentalControls* _tmp0_;
	gchar* _tmp1_;
	g_return_if_fail (username != NULL);
	self = (PCUtilsDummyParentalControls*) base;
	_data_ = g_slice_new0 (PcUtilsDummyParentalControlsRemoveRestrictionForUserData);
	_data_->_async_result = g_task_new (G_OBJECT (self), NULL, _callback_, _user_data_);
	g_task_set_task_data (_data_->_async_result, _data_, pc_utils_dummy_parental_controls_real_remove_restriction_for_user_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	_tmp1_ = g_strdup (username);
	_g_free0 (_data_->username);
	_data_->username = _tmp1_;
	pc_utils_dummy_parental_controls_real_remove_restriction_for_user_co (_data_);
}

static void
pc_utils_dummy_parental_controls_remove_restriction_for_user_finish (PCIParentalControls* base,
                                                                     GAsyncResult* _res_,
                                                                     GError** error)
{
	PcUtilsDummyParentalControlsRemoveRestrictionForUserData* _data_;
	_data_ = g_task_propagate_pointer (G_TASK (_res_), error);
	if (NULL == _data_) {
		return;
	}
}

static gboolean
pc_utils_dummy_parental_controls_real_remove_restriction_for_user_co (PcUtilsDummyParentalControlsRemoveRestrictionForUserData* _data_)
{
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	g_task_return_pointer (_data_->_async_result, _data_, NULL);
	if (_data_->_state_ != 0) {
		while (!g_task_get_completed (_data_->_async_result)) {
			g_main_context_iteration (g_task_get_context (_data_->_async_result), TRUE);
		}
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}

static void
pc_utils_dummy_parental_controls_real_finish_app_authorization_data_free (gpointer _data)
{
	PcUtilsDummyParentalControlsFinishAppAuthorizationData* _data_;
	_data_ = _data;
	_g_free0 (_data_->username);
	_g_object_unref0 (_data_->self);
	g_slice_free (PcUtilsDummyParentalControlsFinishAppAuthorizationData, _data_);
}

static void
pc_utils_dummy_parental_controls_real_finish_app_authorization (PCIParentalControls* base,
                                                                const gchar* username,
                                                                gchar** args,
                                                                gint args_length1,
                                                                GAsyncReadyCallback _callback_,
                                                                gpointer _user_data_)
{
	PCUtilsDummyParentalControls * self;
	PcUtilsDummyParentalControlsFinishAppAuthorizationData* _data_;
	PCUtilsDummyParentalControls* _tmp0_;
	gchar* _tmp1_;
	g_return_if_fail (username != NULL);
	self = (PCUtilsDummyParentalControls*) base;
	_data_ = g_slice_new0 (PcUtilsDummyParentalControlsFinishAppAuthorizationData);
	_data_->_async_result = g_task_new (G_OBJECT (self), NULL, _callback_, _user_data_);
	g_task_set_task_data (_data_->_async_result, _data_, pc_utils_dummy_parental_controls_real_finish_app_authorization_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	_tmp1_ = g_strdup (username);
	_g_free0 (_data_->username);
	_data_->username = _tmp1_;
	_data_->args = args;
	_data_->args_length1 = args_length1;
	pc_utils_dummy_parental_controls_real_finish_app_authorization_co (_data_);
}

static void
pc_utils_dummy_parental_controls_finish_app_authorization_finish (PCIParentalControls* base,
                                                                  GAsyncResult* _res_,
                                                                  GError** error)
{
	PcUtilsDummyParentalControlsFinishAppAuthorizationData* _data_;
	_data_ = g_task_propagate_pointer (G_TASK (_res_), error);
	if (NULL == _data_) {
		return;
	}
}

static gboolean
pc_utils_dummy_parental_controls_real_finish_app_authorization_co (PcUtilsDummyParentalControlsFinishAppAuthorizationData* _data_)
{
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	g_task_return_pointer (_data_->_async_result, _data_, NULL);
	if (_data_->_state_ != 0) {
		while (!g_task_get_completed (_data_->_async_result)) {
			g_main_context_iteration (g_task_get_context (_data_->_async_result), TRUE);
		}
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}

static void
pc_utils_dummy_parental_controls_real_get_user_daemon_active_data_free (gpointer _data)
{
	PcUtilsDummyParentalControlsGetUserDaemonActiveData* _data_;
	_data_ = _data;
	_g_free0 (_data_->username);
	_g_object_unref0 (_data_->self);
	g_slice_free (PcUtilsDummyParentalControlsGetUserDaemonActiveData, _data_);
}

static void
pc_utils_dummy_parental_controls_real_get_user_daemon_active (PCIParentalControls* base,
                                                              const gchar* username,
                                                              GAsyncReadyCallback _callback_,
                                                              gpointer _user_data_)
{
	PCUtilsDummyParentalControls * self;
	PcUtilsDummyParentalControlsGetUserDaemonActiveData* _data_;
	PCUtilsDummyParentalControls* _tmp0_;
	gchar* _tmp1_;
	g_return_if_fail (username != NULL);
	self = (PCUtilsDummyParentalControls*) base;
	_data_ = g_slice_new0 (PcUtilsDummyParentalControlsGetUserDaemonActiveData);
	_data_->_async_result = g_task_new (G_OBJECT (self), NULL, _callback_, _user_data_);
	g_task_set_task_data (_data_->_async_result, _data_, pc_utils_dummy_parental_controls_real_get_user_daemon_active_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	_tmp1_ = g_strdup (username);
	_g_free0 (_data_->username);
	_data_->username = _tmp1_;
	pc_utils_dummy_parental_controls_real_get_user_daemon_active_co (_data_);
}

static gboolean
pc_utils_dummy_parental_controls_get_user_daemon_active_finish (PCIParentalControls* base,
                                                                GAsyncResult* _res_,
                                                                GError** error)
{
	gboolean result;
	PcUtilsDummyParentalControlsGetUserDaemonActiveData* _data_;
	_data_ = g_task_propagate_pointer (G_TASK (_res_), error);
	if (NULL == _data_) {
		gboolean _tmp0_ = FALSE;
		return _tmp0_;
	}
	result = _data_->result;
	return result;
}

static gboolean
pc_utils_dummy_parental_controls_real_get_user_daemon_active_co (PcUtilsDummyParentalControlsGetUserDaemonActiveData* _data_)
{
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	_data_->result = FALSE;
	g_task_return_pointer (_data_->_async_result, _data_, NULL);
	if (_data_->_state_ != 0) {
		while (!g_task_get_completed (_data_->_async_result)) {
			g_main_context_iteration (g_task_get_context (_data_->_async_result), TRUE);
		}
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}

static void
pc_utils_dummy_parental_controls_real_get_user_daemon_admin_data_free (gpointer _data)
{
	PcUtilsDummyParentalControlsGetUserDaemonAdminData* _data_;
	_data_ = _data;
	_g_free0 (_data_->username);
	_g_object_unref0 (_data_->self);
	g_slice_free (PcUtilsDummyParentalControlsGetUserDaemonAdminData, _data_);
}

static void
pc_utils_dummy_parental_controls_real_get_user_daemon_admin (PCIParentalControls* base,
                                                             const gchar* username,
                                                             GAsyncReadyCallback _callback_,
                                                             gpointer _user_data_)
{
	PCUtilsDummyParentalControls * self;
	PcUtilsDummyParentalControlsGetUserDaemonAdminData* _data_;
	PCUtilsDummyParentalControls* _tmp0_;
	gchar* _tmp1_;
	g_return_if_fail (username != NULL);
	self = (PCUtilsDummyParentalControls*) base;
	_data_ = g_slice_new0 (PcUtilsDummyParentalControlsGetUserDaemonAdminData);
	_data_->_async_result = g_task_new (G_OBJECT (self), NULL, _callback_, _user_data_);
	g_task_set_task_data (_data_->_async_result, _data_, pc_utils_dummy_parental_controls_real_get_user_daemon_admin_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	_tmp1_ = g_strdup (username);
	_g_free0 (_data_->username);
	_data_->username = _tmp1_;
	pc_utils_dummy_parental_controls_real_get_user_daemon_admin_co (_data_);
}

static gboolean
pc_utils_dummy_parental_controls_get_user_daemon_admin_finish (PCIParentalControls* base,
                                                               GAsyncResult* _res_,
                                                               GError** error)
{
	gboolean result;
	PcUtilsDummyParentalControlsGetUserDaemonAdminData* _data_;
	_data_ = g_task_propagate_pointer (G_TASK (_res_), error);
	if (NULL == _data_) {
		gboolean _tmp0_ = FALSE;
		return _tmp0_;
	}
	result = _data_->result;
	return result;
}

static gboolean
pc_utils_dummy_parental_controls_real_get_user_daemon_admin_co (PcUtilsDummyParentalControlsGetUserDaemonAdminData* _data_)
{
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	_data_->result = FALSE;
	g_task_return_pointer (_data_->_async_result, _data_, NULL);
	if (_data_->_state_ != 0) {
		while (!g_task_get_completed (_data_->_async_result)) {
			g_main_context_iteration (g_task_get_context (_data_->_async_result), TRUE);
		}
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}

static void
pc_utils_dummy_parental_controls_real_get_user_daemon_block_urls_data_free (gpointer _data)
{
	PcUtilsDummyParentalControlsGetUserDaemonBlockUrlsData* _data_;
	_data_ = _data;
	_g_free0 (_data_->username);
	_data_->result = (_vala_array_free (_data_->result, _data_->result_length1, (GDestroyNotify) g_free), NULL);
	_g_object_unref0 (_data_->self);
	g_slice_free (PcUtilsDummyParentalControlsGetUserDaemonBlockUrlsData, _data_);
}

static void
pc_utils_dummy_parental_controls_real_get_user_daemon_block_urls (PCIParentalControls* base,
                                                                  const gchar* username,
                                                                  GAsyncReadyCallback _callback_,
                                                                  gpointer _user_data_)
{
	PCUtilsDummyParentalControls * self;
	PcUtilsDummyParentalControlsGetUserDaemonBlockUrlsData* _data_;
	PCUtilsDummyParentalControls* _tmp0_;
	gchar* _tmp1_;
	g_return_if_fail (username != NULL);
	self = (PCUtilsDummyParentalControls*) base;
	_data_ = g_slice_new0 (PcUtilsDummyParentalControlsGetUserDaemonBlockUrlsData);
	_data_->_async_result = g_task_new (G_OBJECT (self), NULL, _callback_, _user_data_);
	g_task_set_task_data (_data_->_async_result, _data_, pc_utils_dummy_parental_controls_real_get_user_daemon_block_urls_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	_tmp1_ = g_strdup (username);
	_g_free0 (_data_->username);
	_data_->username = _tmp1_;
	pc_utils_dummy_parental_controls_real_get_user_daemon_block_urls_co (_data_);
}

static gchar**
pc_utils_dummy_parental_controls_get_user_daemon_block_urls_finish (PCIParentalControls* base,
                                                                    GAsyncResult* _res_,
                                                                    gint* result_length1,
                                                                    GError** error)
{
	gchar** result;
	PcUtilsDummyParentalControlsGetUserDaemonBlockUrlsData* _data_;
	_data_ = g_task_propagate_pointer (G_TASK (_res_), error);
	if (NULL == _data_) {
		return NULL;
	}
	result = _data_->result;
	*result_length1 = _data_->result_length1;
	_data_->result = NULL;
	return result;
}

static gboolean
pc_utils_dummy_parental_controls_real_get_user_daemon_block_urls_co (PcUtilsDummyParentalControlsGetUserDaemonBlockUrlsData* _data_)
{
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	_data_->_tmp0_ = g_new0 (gchar*, 0 + 1);
	_data_->_tmp1_ = _data_->_tmp0_;
	_data_->_tmp1__length1 = 0;
	_data_->result_length1 = _data_->_tmp1__length1;
	_data_->result = _data_->_tmp1_;
	g_task_return_pointer (_data_->_async_result, _data_, NULL);
	if (_data_->_state_ != 0) {
		while (!g_task_get_completed (_data_->_async_result)) {
			g_main_context_iteration (g_task_get_context (_data_->_async_result), TRUE);
		}
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}

static void
pc_utils_dummy_parental_controls_real_get_user_daemon_targets_data_free (gpointer _data)
{
	PcUtilsDummyParentalControlsGetUserDaemonTargetsData* _data_;
	_data_ = _data;
	_g_free0 (_data_->username);
	_data_->result = (_vala_array_free (_data_->result, _data_->result_length1, (GDestroyNotify) g_free), NULL);
	_g_object_unref0 (_data_->self);
	g_slice_free (PcUtilsDummyParentalControlsGetUserDaemonTargetsData, _data_);
}

static void
pc_utils_dummy_parental_controls_real_get_user_daemon_targets (PCIParentalControls* base,
                                                               const gchar* username,
                                                               GAsyncReadyCallback _callback_,
                                                               gpointer _user_data_)
{
	PCUtilsDummyParentalControls * self;
	PcUtilsDummyParentalControlsGetUserDaemonTargetsData* _data_;
	PCUtilsDummyParentalControls* _tmp0_;
	gchar* _tmp1_;
	g_return_if_fail (username != NULL);
	self = (PCUtilsDummyParentalControls*) base;
	_data_ = g_slice_new0 (PcUtilsDummyParentalControlsGetUserDaemonTargetsData);
	_data_->_async_result = g_task_new (G_OBJECT (self), NULL, _callback_, _user_data_);
	g_task_set_task_data (_data_->_async_result, _data_, pc_utils_dummy_parental_controls_real_get_user_daemon_targets_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	_tmp1_ = g_strdup (username);
	_g_free0 (_data_->username);
	_data_->username = _tmp1_;
	pc_utils_dummy_parental_controls_real_get_user_daemon_targets_co (_data_);
}

static gchar**
pc_utils_dummy_parental_controls_get_user_daemon_targets_finish (PCIParentalControls* base,
                                                                 GAsyncResult* _res_,
                                                                 gint* result_length1,
                                                                 GError** error)
{
	gchar** result;
	PcUtilsDummyParentalControlsGetUserDaemonTargetsData* _data_;
	_data_ = g_task_propagate_pointer (G_TASK (_res_), error);
	if (NULL == _data_) {
		return NULL;
	}
	result = _data_->result;
	*result_length1 = _data_->result_length1;
	_data_->result = NULL;
	return result;
}

static gboolean
pc_utils_dummy_parental_controls_real_get_user_daemon_targets_co (PcUtilsDummyParentalControlsGetUserDaemonTargetsData* _data_)
{
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	_data_->_tmp0_ = g_new0 (gchar*, 0 + 1);
	_data_->_tmp1_ = _data_->_tmp0_;
	_data_->_tmp1__length1 = 0;
	_data_->result_length1 = _data_->_tmp1__length1;
	_data_->result = _data_->_tmp1_;
	g_task_return_pointer (_data_->_async_result, _data_, NULL);
	if (_data_->_state_ != 0) {
		while (!g_task_get_completed (_data_->_async_result)) {
			g_main_context_iteration (g_task_get_context (_data_->_async_result), TRUE);
		}
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}

static void
pc_utils_dummy_parental_controls_real_lock_dock_icons_for_user_data_free (gpointer _data)
{
	PcUtilsDummyParentalControlsLockDockIconsForUserData* _data_;
	_data_ = _data;
	_g_free0 (_data_->username);
	_g_object_unref0 (_data_->self);
	g_slice_free (PcUtilsDummyParentalControlsLockDockIconsForUserData, _data_);
}

static void
pc_utils_dummy_parental_controls_real_lock_dock_icons_for_user (PCIParentalControls* base,
                                                                const gchar* username,
                                                                gboolean lock,
                                                                GAsyncReadyCallback _callback_,
                                                                gpointer _user_data_)
{
	PCUtilsDummyParentalControls * self;
	PcUtilsDummyParentalControlsLockDockIconsForUserData* _data_;
	PCUtilsDummyParentalControls* _tmp0_;
	gchar* _tmp1_;
	g_return_if_fail (username != NULL);
	self = (PCUtilsDummyParentalControls*) base;
	_data_ = g_slice_new0 (PcUtilsDummyParentalControlsLockDockIconsForUserData);
	_data_->_async_result = g_task_new (G_OBJECT (self), NULL, _callback_, _user_data_);
	g_task_set_task_data (_data_->_async_result, _data_, pc_utils_dummy_parental_controls_real_lock_dock_icons_for_user_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	_tmp1_ = g_strdup (username);
	_g_free0 (_data_->username);
	_data_->username = _tmp1_;
	_data_->lock = lock;
	pc_utils_dummy_parental_controls_real_lock_dock_icons_for_user_co (_data_);
}

static void
pc_utils_dummy_parental_controls_lock_dock_icons_for_user_finish (PCIParentalControls* base,
                                                                  GAsyncResult* _res_,
                                                                  GError** error)
{
	PcUtilsDummyParentalControlsLockDockIconsForUserData* _data_;
	_data_ = g_task_propagate_pointer (G_TASK (_res_), error);
	if (NULL == _data_) {
		return;
	}
}

static gboolean
pc_utils_dummy_parental_controls_real_lock_dock_icons_for_user_co (PcUtilsDummyParentalControlsLockDockIconsForUserData* _data_)
{
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	g_task_return_pointer (_data_->_async_result, _data_, NULL);
	if (_data_->_state_ != 0) {
		while (!g_task_get_completed (_data_->_async_result)) {
			g_main_context_iteration (g_task_get_context (_data_->_async_result), TRUE);
		}
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}

static void
pc_utils_dummy_parental_controls_real_set_user_daemon_active_data_free (gpointer _data)
{
	PcUtilsDummyParentalControlsSetUserDaemonActiveData* _data_;
	_data_ = _data;
	_g_free0 (_data_->username);
	_g_object_unref0 (_data_->self);
	g_slice_free (PcUtilsDummyParentalControlsSetUserDaemonActiveData, _data_);
}

static void
pc_utils_dummy_parental_controls_real_set_user_daemon_active (PCIParentalControls* base,
                                                              const gchar* username,
                                                              gboolean active,
                                                              GAsyncReadyCallback _callback_,
                                                              gpointer _user_data_)
{
	PCUtilsDummyParentalControls * self;
	PcUtilsDummyParentalControlsSetUserDaemonActiveData* _data_;
	PCUtilsDummyParentalControls* _tmp0_;
	gchar* _tmp1_;
	g_return_if_fail (username != NULL);
	self = (PCUtilsDummyParentalControls*) base;
	_data_ = g_slice_new0 (PcUtilsDummyParentalControlsSetUserDaemonActiveData);
	_data_->_async_result = g_task_new (G_OBJECT (self), NULL, _callback_, _user_data_);
	g_task_set_task_data (_data_->_async_result, _data_, pc_utils_dummy_parental_controls_real_set_user_daemon_active_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	_tmp1_ = g_strdup (username);
	_g_free0 (_data_->username);
	_data_->username = _tmp1_;
	_data_->active = active;
	pc_utils_dummy_parental_controls_real_set_user_daemon_active_co (_data_);
}

static void
pc_utils_dummy_parental_controls_set_user_daemon_active_finish (PCIParentalControls* base,
                                                                GAsyncResult* _res_,
                                                                GError** error)
{
	PcUtilsDummyParentalControlsSetUserDaemonActiveData* _data_;
	_data_ = g_task_propagate_pointer (G_TASK (_res_), error);
	if (NULL == _data_) {
		return;
	}
}

static gboolean
pc_utils_dummy_parental_controls_real_set_user_daemon_active_co (PcUtilsDummyParentalControlsSetUserDaemonActiveData* _data_)
{
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	g_task_return_pointer (_data_->_async_result, _data_, NULL);
	if (_data_->_state_ != 0) {
		while (!g_task_get_completed (_data_->_async_result)) {
			g_main_context_iteration (g_task_get_context (_data_->_async_result), TRUE);
		}
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}

static void
pc_utils_dummy_parental_controls_real_set_user_daemon_admin_data_free (gpointer _data)
{
	PcUtilsDummyParentalControlsSetUserDaemonAdminData* _data_;
	_data_ = _data;
	_g_free0 (_data_->username);
	_g_object_unref0 (_data_->self);
	g_slice_free (PcUtilsDummyParentalControlsSetUserDaemonAdminData, _data_);
}

static void
pc_utils_dummy_parental_controls_real_set_user_daemon_admin (PCIParentalControls* base,
                                                             const gchar* username,
                                                             gboolean admin,
                                                             GAsyncReadyCallback _callback_,
                                                             gpointer _user_data_)
{
	PCUtilsDummyParentalControls * self;
	PcUtilsDummyParentalControlsSetUserDaemonAdminData* _data_;
	PCUtilsDummyParentalControls* _tmp0_;
	gchar* _tmp1_;
	g_return_if_fail (username != NULL);
	self = (PCUtilsDummyParentalControls*) base;
	_data_ = g_slice_new0 (PcUtilsDummyParentalControlsSetUserDaemonAdminData);
	_data_->_async_result = g_task_new (G_OBJECT (self), NULL, _callback_, _user_data_);
	g_task_set_task_data (_data_->_async_result, _data_, pc_utils_dummy_parental_controls_real_set_user_daemon_admin_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	_tmp1_ = g_strdup (username);
	_g_free0 (_data_->username);
	_data_->username = _tmp1_;
	_data_->admin = admin;
	pc_utils_dummy_parental_controls_real_set_user_daemon_admin_co (_data_);
}

static void
pc_utils_dummy_parental_controls_set_user_daemon_admin_finish (PCIParentalControls* base,
                                                               GAsyncResult* _res_,
                                                               GError** error)
{
	PcUtilsDummyParentalControlsSetUserDaemonAdminData* _data_;
	_data_ = g_task_propagate_pointer (G_TASK (_res_), error);
	if (NULL == _data_) {
		return;
	}
}

static gboolean
pc_utils_dummy_parental_controls_real_set_user_daemon_admin_co (PcUtilsDummyParentalControlsSetUserDaemonAdminData* _data_)
{
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	g_task_return_pointer (_data_->_async_result, _data_, NULL);
	if (_data_->_state_ != 0) {
		while (!g_task_get_completed (_data_->_async_result)) {
			g_main_context_iteration (g_task_get_context (_data_->_async_result), TRUE);
		}
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}

static void
pc_utils_dummy_parental_controls_real_set_user_daemon_block_urls_data_free (gpointer _data)
{
	PcUtilsDummyParentalControlsSetUserDaemonBlockUrlsData* _data_;
	_data_ = _data;
	_g_free0 (_data_->username);
	_g_object_unref0 (_data_->self);
	g_slice_free (PcUtilsDummyParentalControlsSetUserDaemonBlockUrlsData, _data_);
}

static void
pc_utils_dummy_parental_controls_real_set_user_daemon_block_urls (PCIParentalControls* base,
                                                                  const gchar* username,
                                                                  gchar** block_urls,
                                                                  gint block_urls_length1,
                                                                  GAsyncReadyCallback _callback_,
                                                                  gpointer _user_data_)
{
	PCUtilsDummyParentalControls * self;
	PcUtilsDummyParentalControlsSetUserDaemonBlockUrlsData* _data_;
	PCUtilsDummyParentalControls* _tmp0_;
	gchar* _tmp1_;
	g_return_if_fail (username != NULL);
	self = (PCUtilsDummyParentalControls*) base;
	_data_ = g_slice_new0 (PcUtilsDummyParentalControlsSetUserDaemonBlockUrlsData);
	_data_->_async_result = g_task_new (G_OBJECT (self), NULL, _callback_, _user_data_);
	g_task_set_task_data (_data_->_async_result, _data_, pc_utils_dummy_parental_controls_real_set_user_daemon_block_urls_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	_tmp1_ = g_strdup (username);
	_g_free0 (_data_->username);
	_data_->username = _tmp1_;
	_data_->block_urls = block_urls;
	_data_->block_urls_length1 = block_urls_length1;
	pc_utils_dummy_parental_controls_real_set_user_daemon_block_urls_co (_data_);
}

static void
pc_utils_dummy_parental_controls_set_user_daemon_block_urls_finish (PCIParentalControls* base,
                                                                    GAsyncResult* _res_,
                                                                    GError** error)
{
	PcUtilsDummyParentalControlsSetUserDaemonBlockUrlsData* _data_;
	_data_ = g_task_propagate_pointer (G_TASK (_res_), error);
	if (NULL == _data_) {
		return;
	}
}

static gboolean
pc_utils_dummy_parental_controls_real_set_user_daemon_block_urls_co (PcUtilsDummyParentalControlsSetUserDaemonBlockUrlsData* _data_)
{
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	g_task_return_pointer (_data_->_async_result, _data_, NULL);
	if (_data_->_state_ != 0) {
		while (!g_task_get_completed (_data_->_async_result)) {
			g_main_context_iteration (g_task_get_context (_data_->_async_result), TRUE);
		}
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}

static void
pc_utils_dummy_parental_controls_real_set_user_daemon_targets_data_free (gpointer _data)
{
	PcUtilsDummyParentalControlsSetUserDaemonTargetsData* _data_;
	_data_ = _data;
	_g_free0 (_data_->username);
	_g_object_unref0 (_data_->self);
	g_slice_free (PcUtilsDummyParentalControlsSetUserDaemonTargetsData, _data_);
}

static void
pc_utils_dummy_parental_controls_real_set_user_daemon_targets (PCIParentalControls* base,
                                                               const gchar* username,
                                                               gchar** targets,
                                                               gint targets_length1,
                                                               GAsyncReadyCallback _callback_,
                                                               gpointer _user_data_)
{
	PCUtilsDummyParentalControls * self;
	PcUtilsDummyParentalControlsSetUserDaemonTargetsData* _data_;
	PCUtilsDummyParentalControls* _tmp0_;
	gchar* _tmp1_;
	g_return_if_fail (username != NULL);
	self = (PCUtilsDummyParentalControls*) base;
	_data_ = g_slice_new0 (PcUtilsDummyParentalControlsSetUserDaemonTargetsData);
	_data_->_async_result = g_task_new (G_OBJECT (self), NULL, _callback_, _user_data_);
	g_task_set_task_data (_data_->_async_result, _data_, pc_utils_dummy_parental_controls_real_set_user_daemon_targets_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	_tmp1_ = g_strdup (username);
	_g_free0 (_data_->username);
	_data_->username = _tmp1_;
	_data_->targets = targets;
	_data_->targets_length1 = targets_length1;
	pc_utils_dummy_parental_controls_real_set_user_daemon_targets_co (_data_);
}

static void
pc_utils_dummy_parental_controls_set_user_daemon_targets_finish (PCIParentalControls* base,
                                                                 GAsyncResult* _res_,
                                                                 GError** error)
{
	PcUtilsDummyParentalControlsSetUserDaemonTargetsData* _data_;
	_data_ = g_task_propagate_pointer (G_TASK (_res_), error);
	if (NULL == _data_) {
		return;
	}
}

static gboolean
pc_utils_dummy_parental_controls_real_set_user_daemon_targets_co (PcUtilsDummyParentalControlsSetUserDaemonTargetsData* _data_)
{
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	g_task_return_pointer (_data_->_async_result, _data_, NULL);
	if (_data_->_state_ != 0) {
		while (!g_task_get_completed (_data_->_async_result)) {
			g_main_context_iteration (g_task_get_context (_data_->_async_result), TRUE);
		}
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}

PCUtilsDummyParentalControls*
pc_utils_dummy_parental_controls_construct (GType object_type)
{
	PCUtilsDummyParentalControls * self = NULL;
	self = (PCUtilsDummyParentalControls*) g_object_new (object_type, NULL);
	return self;
}

PCUtilsDummyParentalControls*
pc_utils_dummy_parental_controls_new (void)
{
	return pc_utils_dummy_parental_controls_construct (PC_UTILS_TYPE_DUMMY_PARENTAL_CONTROLS);
}

static void
pc_utils_dummy_parental_controls_class_init (PCUtilsDummyParentalControlsClass * klass,
                                             gpointer klass_data)
{
	pc_utils_dummy_parental_controls_parent_class = g_type_class_peek_parent (klass);
}

static void
pc_utils_dummy_parental_controls_pc_iparental_controls_interface_init (PCIParentalControlsIface * iface,
                                                                       gpointer iface_data)
{
	pc_utils_dummy_parental_controls_pc_iparental_controls_parent_iface = g_type_interface_peek_parent (iface);
	iface->add_restriction_for_user = (void (*) (PCIParentalControls*, const gchar*, gboolean, GAsyncReadyCallback, gpointer)) pc_utils_dummy_parental_controls_real_add_restriction_for_user;
	iface->add_restriction_for_user_finish = (void (*) (PCIParentalControls*, GAsyncResult*, GError**)) pc_utils_dummy_parental_controls_add_restriction_for_user_finish;
	iface->remove_restriction_for_user = (void (*) (PCIParentalControls*, const gchar*, GAsyncReadyCallback, gpointer)) pc_utils_dummy_parental_controls_real_remove_restriction_for_user;
	iface->remove_restriction_for_user_finish = (void (*) (PCIParentalControls*, GAsyncResult*, GError**)) pc_utils_dummy_parental_controls_remove_restriction_for_user_finish;
	iface->finish_app_authorization = (void (*) (PCIParentalControls*, const gchar*, gchar**, gint, GAsyncReadyCallback, gpointer)) pc_utils_dummy_parental_controls_real_finish_app_authorization;
	iface->finish_app_authorization_finish = (void (*) (PCIParentalControls*, GAsyncResult*, GError**)) pc_utils_dummy_parental_controls_finish_app_authorization_finish;
	iface->get_user_daemon_active = (void (*) (PCIParentalControls*, const gchar*, GAsyncReadyCallback, gpointer)) pc_utils_dummy_parental_controls_real_get_user_daemon_active;
	iface->get_user_daemon_active_finish = (gboolean (*) (PCIParentalControls*, GAsyncResult*, GError**)) pc_utils_dummy_parental_controls_get_user_daemon_active_finish;
	iface->get_user_daemon_admin = (void (*) (PCIParentalControls*, const gchar*, GAsyncReadyCallback, gpointer)) pc_utils_dummy_parental_controls_real_get_user_daemon_admin;
	iface->get_user_daemon_admin_finish = (gboolean (*) (PCIParentalControls*, GAsyncResult*, GError**)) pc_utils_dummy_parental_controls_get_user_daemon_admin_finish;
	iface->get_user_daemon_block_urls = (void (*) (PCIParentalControls*, const gchar*, GAsyncReadyCallback, gpointer)) pc_utils_dummy_parental_controls_real_get_user_daemon_block_urls;
	iface->get_user_daemon_block_urls_finish = (gchar** (*) (PCIParentalControls*, GAsyncResult*, gint*, GError**)) pc_utils_dummy_parental_controls_get_user_daemon_block_urls_finish;
	iface->get_user_daemon_targets = (void (*) (PCIParentalControls*, const gchar*, GAsyncReadyCallback, gpointer)) pc_utils_dummy_parental_controls_real_get_user_daemon_targets;
	iface->get_user_daemon_targets_finish = (gchar** (*) (PCIParentalControls*, GAsyncResult*, gint*, GError**)) pc_utils_dummy_parental_controls_get_user_daemon_targets_finish;
	iface->lock_dock_icons_for_user = (void (*) (PCIParentalControls*, const gchar*, gboolean, GAsyncReadyCallback, gpointer)) pc_utils_dummy_parental_controls_real_lock_dock_icons_for_user;
	iface->lock_dock_icons_for_user_finish = (void (*) (PCIParentalControls*, GAsyncResult*, GError**)) pc_utils_dummy_parental_controls_lock_dock_icons_for_user_finish;
	iface->set_user_daemon_active = (void (*) (PCIParentalControls*, const gchar*, gboolean, GAsyncReadyCallback, gpointer)) pc_utils_dummy_parental_controls_real_set_user_daemon_active;
	iface->set_user_daemon_active_finish = (void (*) (PCIParentalControls*, GAsyncResult*, GError**)) pc_utils_dummy_parental_controls_set_user_daemon_active_finish;
	iface->set_user_daemon_admin = (void (*) (PCIParentalControls*, const gchar*, gboolean, GAsyncReadyCallback, gpointer)) pc_utils_dummy_parental_controls_real_set_user_daemon_admin;
	iface->set_user_daemon_admin_finish = (void (*) (PCIParentalControls*, GAsyncResult*, GError**)) pc_utils_dummy_parental_controls_set_user_daemon_admin_finish;
	iface->set_user_daemon_block_urls = (void (*) (PCIParentalControls*, const gchar*, gchar**, gint, GAsyncReadyCallback, gpointer)) pc_utils_dummy_parental_controls_real_set_user_daemon_block_urls;
	iface->set_user_daemon_block_urls_finish = (void (*) (PCIParentalControls*, GAsyncResult*, GError**)) pc_utils_dummy_parental_controls_set_user_daemon_block_urls_finish;
	iface->set_user_daemon_targets = (void (*) (PCIParentalControls*, const gchar*, gchar**, gint, GAsyncReadyCallback, gpointer)) pc_utils_dummy_parental_controls_real_set_user_daemon_targets;
	iface->set_user_daemon_targets_finish = (void (*) (PCIParentalControls*, GAsyncResult*, GError**)) pc_utils_dummy_parental_controls_set_user_daemon_targets_finish;
}

static void
pc_utils_dummy_parental_controls_instance_init (PCUtilsDummyParentalControls * self,
                                                gpointer klass)
{
}

static GType
pc_utils_dummy_parental_controls_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (PCUtilsDummyParentalControlsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) pc_utils_dummy_parental_controls_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PCUtilsDummyParentalControls), 0, (GInstanceInitFunc) pc_utils_dummy_parental_controls_instance_init, NULL };
	static const GInterfaceInfo pc_iparental_controls_info = { (GInterfaceInitFunc) pc_utils_dummy_parental_controls_pc_iparental_controls_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
	GType pc_utils_dummy_parental_controls_type_id;
	pc_utils_dummy_parental_controls_type_id = g_type_register_static (G_TYPE_OBJECT, "PCUtilsDummyParentalControls", &g_define_type_info, 0);
	g_type_add_interface_static (pc_utils_dummy_parental_controls_type_id, PC_TYPE_IPARENTAL_CONTROLS, &pc_iparental_controls_info);
	return pc_utils_dummy_parental_controls_type_id;
}

GType
pc_utils_dummy_parental_controls_get_type (void)
{
	static volatile gsize pc_utils_dummy_parental_controls_type_id__once = 0;
	if (g_once_init_enter (&pc_utils_dummy_parental_controls_type_id__once)) {
		GType pc_utils_dummy_parental_controls_type_id;
		pc_utils_dummy_parental_controls_type_id = pc_utils_dummy_parental_controls_get_type_once ();
		g_once_init_leave (&pc_utils_dummy_parental_controls_type_id__once, pc_utils_dummy_parental_controls_type_id);
	}
	return pc_utils_dummy_parental_controls_type_id__once;
}

static void
pc_value_utils_init (GValue* value)
{
	value->data[0].v_pointer = NULL;
}

static void
pc_value_utils_free_value (GValue* value)
{
	if (value->data[0].v_pointer) {
		pc_utils_unref (value->data[0].v_pointer);
	}
}

static void
pc_value_utils_copy_value (const GValue* src_value,
                           GValue* dest_value)
{
	if (src_value->data[0].v_pointer) {
		dest_value->data[0].v_pointer = pc_utils_ref (src_value->data[0].v_pointer);
	} else {
		dest_value->data[0].v_pointer = NULL;
	}
}

static gpointer
pc_value_utils_peek_pointer (const GValue* value)
{
	return value->data[0].v_pointer;
}

static gchar*
pc_value_utils_collect_value (GValue* value,
                              guint n_collect_values,
                              GTypeCValue* collect_values,
                              guint collect_flags)
{
	if (collect_values[0].v_pointer) {
		PCUtils * object;
		object = collect_values[0].v_pointer;
		if (object->parent_instance.g_class == NULL) {
			return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
		} else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
			return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
		}
		value->data[0].v_pointer = pc_utils_ref (object);
	} else {
		value->data[0].v_pointer = NULL;
	}
	return NULL;
}

static gchar*
pc_value_utils_lcopy_value (const GValue* value,
                            guint n_collect_values,
                            GTypeCValue* collect_values,
                            guint collect_flags)
{
	PCUtils ** object_p;
	object_p = collect_values[0].v_pointer;
	if (!object_p) {
		return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
	}
	if (!value->data[0].v_pointer) {
		*object_p = NULL;
	} else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
		*object_p = value->data[0].v_pointer;
	} else {
		*object_p = pc_utils_ref (value->data[0].v_pointer);
	}
	return NULL;
}

GParamSpec*
pc_param_spec_utils (const gchar* name,
                     const gchar* nick,
                     const gchar* blurb,
                     GType object_type,
                     GParamFlags flags)
{
	PCParamSpecUtils* spec;
	g_return_val_if_fail (g_type_is_a (object_type, PC_TYPE_UTILS), NULL);
	spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
	G_PARAM_SPEC (spec)->value_type = object_type;
	return G_PARAM_SPEC (spec);
}

gpointer
pc_value_get_utils (const GValue* value)
{
	g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, PC_TYPE_UTILS), NULL);
	return value->data[0].v_pointer;
}

void
pc_value_set_utils (GValue* value,
                    gpointer v_object)
{
	PCUtils * old;
	g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, PC_TYPE_UTILS));
	old = value->data[0].v_pointer;
	if (v_object) {
		g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, PC_TYPE_UTILS));
		g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
		value->data[0].v_pointer = v_object;
		pc_utils_ref (value->data[0].v_pointer);
	} else {
		value->data[0].v_pointer = NULL;
	}
	if (old) {
		pc_utils_unref (old);
	}
}

void
pc_value_take_utils (GValue* value,
                     gpointer v_object)
{
	PCUtils * old;
	g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, PC_TYPE_UTILS));
	old = value->data[0].v_pointer;
	if (v_object) {
		g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, PC_TYPE_UTILS));
		g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
		value->data[0].v_pointer = v_object;
	} else {
		value->data[0].v_pointer = NULL;
	}
	if (old) {
		pc_utils_unref (old);
	}
}

static void
pc_utils_class_init (PCUtilsClass * klass,
                     gpointer klass_data)
{
	pc_utils_parent_class = g_type_class_peek_parent (klass);
	((PCUtilsClass *) klass)->finalize = pc_utils_finalize;
}

static void
pc_utils_instance_init (PCUtils * self,
                        gpointer klass)
{
	self->ref_count = 1;
}

static void
pc_utils_finalize (PCUtils * obj)
{
	PCUtils * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, PC_TYPE_UTILS, PCUtils);
	g_signal_handlers_destroy (self);
}

static GType
pc_utils_get_type_once (void)
{
	static const GTypeValueTable g_define_type_value_table = { pc_value_utils_init, pc_value_utils_free_value, pc_value_utils_copy_value, pc_value_utils_peek_pointer, "p", pc_value_utils_collect_value, "p", pc_value_utils_lcopy_value };
	static const GTypeInfo g_define_type_info = { sizeof (PCUtilsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) pc_utils_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PCUtils), 0, (GInstanceInitFunc) pc_utils_instance_init, &g_define_type_value_table };
	static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
	GType pc_utils_type_id;
	pc_utils_type_id = g_type_register_fundamental (g_type_fundamental_next (), "PCUtils", &g_define_type_info, &g_define_type_fundamental_info, 0);
	return pc_utils_type_id;
}

GType
pc_utils_get_type (void)
{
	static volatile gsize pc_utils_type_id__once = 0;
	if (g_once_init_enter (&pc_utils_type_id__once)) {
		GType pc_utils_type_id;
		pc_utils_type_id = pc_utils_get_type_once ();
		g_once_init_leave (&pc_utils_type_id__once, pc_utils_type_id);
	}
	return pc_utils_type_id__once;
}

gpointer
pc_utils_ref (gpointer instance)
{
	PCUtils * self;
	self = instance;
	g_atomic_int_inc (&self->ref_count);
	return instance;
}

void
pc_utils_unref (gpointer instance)
{
	PCUtils * self;
	self = instance;
	if (g_atomic_int_dec_and_test (&self->ref_count)) {
		PC_UTILS_GET_CLASS (self)->finalize (self);
		g_type_free_instance ((GTypeInstance *) self);
	}
}

static void
_vala_array_destroy (gpointer array,
                     gssize array_length,
                     GDestroyNotify destroy_func)
{
	if ((array != NULL) && (destroy_func != NULL)) {
		gssize 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,
                  gssize array_length,
                  GDestroyNotify destroy_func)
{
	_vala_array_destroy (array, array_length, destroy_func);
	g_free (array);
}

static gssize
_vala_array_length (gpointer array)
{
	gssize length;
	length = 0;
	if (array) {
		while (((gpointer*) array)[length]) {
			length++;
		}
	}
	return length;
}

