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

#include <adwaita.h>
#include <glib-object.h>
#include <gtk/gtk.h>
#include <glib.h>
#include <gio/gio.h>
#include <glib/gi18n-lib.h>
#include <stdlib.h>
#include <string.h>

#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 TUBA_VIEWS_ADMIN_PAGE_TYPE_BASE (tuba_views_admin_page_base_get_type ())
#define TUBA_VIEWS_ADMIN_PAGE_BASE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_VIEWS_ADMIN_PAGE_TYPE_BASE, TubaViewsAdminPageBase))
#define TUBA_VIEWS_ADMIN_PAGE_BASE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_VIEWS_ADMIN_PAGE_TYPE_BASE, TubaViewsAdminPageBaseClass))
#define TUBA_VIEWS_ADMIN_PAGE_IS_BASE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_VIEWS_ADMIN_PAGE_TYPE_BASE))
#define TUBA_VIEWS_ADMIN_PAGE_IS_BASE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_VIEWS_ADMIN_PAGE_TYPE_BASE))
#define TUBA_VIEWS_ADMIN_PAGE_BASE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_VIEWS_ADMIN_PAGE_TYPE_BASE, TubaViewsAdminPageBaseClass))

typedef struct _TubaViewsAdminPageBase TubaViewsAdminPageBase;
typedef struct _TubaViewsAdminPageBaseClass TubaViewsAdminPageBaseClass;
typedef struct _TubaViewsAdminPageBasePrivate TubaViewsAdminPageBasePrivate;

#define TUBA_VIEWS_ADMIN_PAGE_TYPE_BLOCKED_IPS (tuba_views_admin_page_blocked_ips_get_type ())
#define TUBA_VIEWS_ADMIN_PAGE_BLOCKED_IPS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_VIEWS_ADMIN_PAGE_TYPE_BLOCKED_IPS, TubaViewsAdminPageBlockedIPs))
#define TUBA_VIEWS_ADMIN_PAGE_BLOCKED_IPS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_VIEWS_ADMIN_PAGE_TYPE_BLOCKED_IPS, TubaViewsAdminPageBlockedIPsClass))
#define TUBA_VIEWS_ADMIN_PAGE_IS_BLOCKED_IPS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_VIEWS_ADMIN_PAGE_TYPE_BLOCKED_IPS))
#define TUBA_VIEWS_ADMIN_PAGE_IS_BLOCKED_IPS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_VIEWS_ADMIN_PAGE_TYPE_BLOCKED_IPS))
#define TUBA_VIEWS_ADMIN_PAGE_BLOCKED_IPS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_VIEWS_ADMIN_PAGE_TYPE_BLOCKED_IPS, TubaViewsAdminPageBlockedIPsClass))

typedef struct _TubaViewsAdminPageBlockedIPs TubaViewsAdminPageBlockedIPs;
typedef struct _TubaViewsAdminPageBlockedIPsClass TubaViewsAdminPageBlockedIPsClass;
typedef struct _TubaViewsAdminPageBlockedIPsPrivate TubaViewsAdminPageBlockedIPsPrivate;

#define TUBA_VIEWS_ADMIN_TIMELINE_TYPE_PAGINATION_TIMELINE (tuba_views_admin_timeline_pagination_timeline_get_type ())
#define TUBA_VIEWS_ADMIN_TIMELINE_PAGINATION_TIMELINE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_VIEWS_ADMIN_TIMELINE_TYPE_PAGINATION_TIMELINE, TubaViewsAdminTimelinePaginationTimeline))
#define TUBA_VIEWS_ADMIN_TIMELINE_PAGINATION_TIMELINE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_VIEWS_ADMIN_TIMELINE_TYPE_PAGINATION_TIMELINE, TubaViewsAdminTimelinePaginationTimelineClass))
#define TUBA_VIEWS_ADMIN_TIMELINE_IS_PAGINATION_TIMELINE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_VIEWS_ADMIN_TIMELINE_TYPE_PAGINATION_TIMELINE))
#define TUBA_VIEWS_ADMIN_TIMELINE_IS_PAGINATION_TIMELINE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_VIEWS_ADMIN_TIMELINE_TYPE_PAGINATION_TIMELINE))
#define TUBA_VIEWS_ADMIN_TIMELINE_PAGINATION_TIMELINE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_VIEWS_ADMIN_TIMELINE_TYPE_PAGINATION_TIMELINE, TubaViewsAdminTimelinePaginationTimelineClass))

typedef struct _TubaViewsAdminTimelinePaginationTimeline TubaViewsAdminTimelinePaginationTimeline;
typedef struct _TubaViewsAdminTimelinePaginationTimelineClass TubaViewsAdminTimelinePaginationTimelineClass;

#define TUBA_VIEWS_ADMIN_TIMELINE_TYPE_BLOCKED_IPS (tuba_views_admin_timeline_blocked_ips_get_type ())
#define TUBA_VIEWS_ADMIN_TIMELINE_BLOCKED_IPS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_VIEWS_ADMIN_TIMELINE_TYPE_BLOCKED_IPS, TubaViewsAdminTimelineBlockedIPs))
#define TUBA_VIEWS_ADMIN_TIMELINE_BLOCKED_IPS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_VIEWS_ADMIN_TIMELINE_TYPE_BLOCKED_IPS, TubaViewsAdminTimelineBlockedIPsClass))
#define TUBA_VIEWS_ADMIN_TIMELINE_IS_BLOCKED_IPS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_VIEWS_ADMIN_TIMELINE_TYPE_BLOCKED_IPS))
#define TUBA_VIEWS_ADMIN_TIMELINE_IS_BLOCKED_IPS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_VIEWS_ADMIN_TIMELINE_TYPE_BLOCKED_IPS))
#define TUBA_VIEWS_ADMIN_TIMELINE_BLOCKED_IPS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_VIEWS_ADMIN_TIMELINE_TYPE_BLOCKED_IPS, TubaViewsAdminTimelineBlockedIPsClass))

typedef struct _TubaViewsAdminTimelineBlockedIPs TubaViewsAdminTimelineBlockedIPs;
typedef struct _TubaViewsAdminTimelineBlockedIPsClass TubaViewsAdminTimelineBlockedIPsClass;
enum  {
	TUBA_VIEWS_ADMIN_PAGE_BLOCKED_IPS_0_PROPERTY,
	TUBA_VIEWS_ADMIN_PAGE_BLOCKED_IPS_NUM_PROPERTIES
};
static GParamSpec* tuba_views_admin_page_blocked_ips_properties[TUBA_VIEWS_ADMIN_PAGE_BLOCKED_IPS_NUM_PROPERTIES];
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))

#define TUBA_DIALOGS_ADMIN_TYPE_WINDOW (tuba_dialogs_admin_window_get_type ())
#define TUBA_DIALOGS_ADMIN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_DIALOGS_ADMIN_TYPE_WINDOW, TubaDialogsAdminWindow))
#define TUBA_DIALOGS_ADMIN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_DIALOGS_ADMIN_TYPE_WINDOW, TubaDialogsAdminWindowClass))
#define TUBA_DIALOGS_ADMIN_IS_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_DIALOGS_ADMIN_TYPE_WINDOW))
#define TUBA_DIALOGS_ADMIN_IS_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_DIALOGS_ADMIN_TYPE_WINDOW))
#define TUBA_DIALOGS_ADMIN_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_DIALOGS_ADMIN_TYPE_WINDOW, TubaDialogsAdminWindowClass))

typedef struct _TubaDialogsAdminWindow TubaDialogsAdminWindow;
typedef struct _TubaDialogsAdminWindowClass TubaDialogsAdminWindowClass;

#define TUBA_DIALOGS_ADMIN_TYPE_BASE (tuba_dialogs_admin_base_get_type ())
#define TUBA_DIALOGS_ADMIN_BASE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_DIALOGS_ADMIN_TYPE_BASE, TubaDialogsAdminBase))
#define TUBA_DIALOGS_ADMIN_BASE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_DIALOGS_ADMIN_TYPE_BASE, TubaDialogsAdminBaseClass))
#define TUBA_DIALOGS_ADMIN_IS_BASE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_DIALOGS_ADMIN_TYPE_BASE))
#define TUBA_DIALOGS_ADMIN_IS_BASE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_DIALOGS_ADMIN_TYPE_BASE))
#define TUBA_DIALOGS_ADMIN_BASE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_DIALOGS_ADMIN_TYPE_BASE, TubaDialogsAdminBaseClass))

typedef struct _TubaDialogsAdminBase TubaDialogsAdminBase;
typedef struct _TubaDialogsAdminBaseClass TubaDialogsAdminBaseClass;

#define TUBA_DIALOGS_ADMIN_TYPE_ADD_IP_BLOCK (tuba_dialogs_admin_add_ip_block_get_type ())
#define TUBA_DIALOGS_ADMIN_ADD_IP_BLOCK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_DIALOGS_ADMIN_TYPE_ADD_IP_BLOCK, TubaDialogsAdminAddIPBlock))
#define TUBA_DIALOGS_ADMIN_ADD_IP_BLOCK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_DIALOGS_ADMIN_TYPE_ADD_IP_BLOCK, TubaDialogsAdminAddIPBlockClass))
#define TUBA_DIALOGS_ADMIN_IS_ADD_IP_BLOCK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_DIALOGS_ADMIN_TYPE_ADD_IP_BLOCK))
#define TUBA_DIALOGS_ADMIN_IS_ADD_IP_BLOCK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_DIALOGS_ADMIN_TYPE_ADD_IP_BLOCK))
#define TUBA_DIALOGS_ADMIN_ADD_IP_BLOCK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_DIALOGS_ADMIN_TYPE_ADD_IP_BLOCK, TubaDialogsAdminAddIPBlockClass))

typedef struct _TubaDialogsAdminAddIPBlock TubaDialogsAdminAddIPBlock;
typedef struct _TubaDialogsAdminAddIPBlockClass TubaDialogsAdminAddIPBlockClass;
#define _g_free0(var) (var = (g_free (var), NULL))

struct _TubaViewsAdminPageBase {
	AdwNavigationPage parent_instance;
	TubaViewsAdminPageBasePrivate * priv;
	AdwHeaderBar* headerbar;
	AdwToolbarView* toolbar_view;
};

struct _TubaViewsAdminPageBaseClass {
	AdwNavigationPageClass parent_class;
	void (*add_to_page) (TubaViewsAdminPageBase* self, AdwPreferencesGroup* group);
};

struct _TubaViewsAdminPageBlockedIPs {
	TubaViewsAdminPageBase parent_instance;
	TubaViewsAdminPageBlockedIPsPrivate * priv;
};

struct _TubaViewsAdminPageBlockedIPsClass {
	TubaViewsAdminPageBaseClass parent_class;
};

struct _TubaViewsAdminPageBlockedIPsPrivate {
	TubaViewsAdminTimelineBlockedIPs* pagination_timeline;
};

static gint TubaViewsAdminPageBlockedIPs_private_offset;
static gpointer tuba_views_admin_page_blocked_ips_parent_class = NULL;

VALA_EXTERN GType tuba_views_admin_page_base_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaViewsAdminPageBase, g_object_unref)
VALA_EXTERN GType tuba_views_admin_page_blocked_ips_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaViewsAdminPageBlockedIPs, g_object_unref)
VALA_EXTERN GType tuba_views_admin_timeline_pagination_timeline_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaViewsAdminTimelinePaginationTimeline, g_object_unref)
VALA_EXTERN GType tuba_views_admin_timeline_blocked_ips_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaViewsAdminTimelineBlockedIPs, g_object_unref)
static void tuba_views_admin_page_blocked_ips_open_add_ip_block_dialog (TubaViewsAdminPageBlockedIPs* self);
VALA_EXTERN GType tuba_dialogs_admin_window_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaDialogsAdminWindow, g_object_unref)
VALA_EXTERN TubaDialogsAdminWindow* tuba_views_admin_page_base_get_admin_window (TubaViewsAdminPageBase* self);
VALA_EXTERN GType tuba_dialogs_admin_base_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaDialogsAdminBase, g_object_unref)
VALA_EXTERN GType tuba_dialogs_admin_add_ip_block_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaDialogsAdminAddIPBlock, g_object_unref)
VALA_EXTERN TubaDialogsAdminAddIPBlock* tuba_dialogs_admin_add_ip_block_new (void);
VALA_EXTERN TubaDialogsAdminAddIPBlock* tuba_dialogs_admin_add_ip_block_construct (GType object_type);
static void tuba_views_admin_page_blocked_ips_refresh (TubaViewsAdminPageBlockedIPs* self);
static void _tuba_views_admin_page_blocked_ips_refresh_tuba_dialogs_admin_add_ip_block_added (TubaDialogsAdminAddIPBlock* _sender,
                                                                                       gpointer self);
VALA_EXTERN void tuba_views_admin_timeline_pagination_timeline_request (TubaViewsAdminTimelinePaginationTimeline* self,
                                                            GAsyncReadyCallback _callback_,
                                                            gpointer _user_data_);
VALA_EXTERN void tuba_views_admin_timeline_pagination_timeline_request_finish (TubaViewsAdminTimelinePaginationTimeline* self,
                                                                   GAsyncResult* _res_);
VALA_EXTERN TubaViewsAdminPageBlockedIPs* tuba_views_admin_page_blocked_ips_new (void);
VALA_EXTERN TubaViewsAdminPageBlockedIPs* tuba_views_admin_page_blocked_ips_construct (GType object_type);
VALA_EXTERN TubaViewsAdminPageBase* tuba_views_admin_page_base_new (void);
VALA_EXTERN TubaViewsAdminPageBase* tuba_views_admin_page_base_construct (GType object_type);
static GObject * tuba_views_admin_page_blocked_ips_constructor (GType type,
                                                         guint n_construct_properties,
                                                         GObjectConstructParam * construct_properties);
static void _tuba_views_admin_page_blocked_ips_open_add_ip_block_dialog_gtk_button_clicked (GtkButton* _sender,
                                                                                     gpointer self);
VALA_EXTERN TubaViewsAdminTimelineBlockedIPs* tuba_views_admin_timeline_blocked_ips_new (void);
VALA_EXTERN TubaViewsAdminTimelineBlockedIPs* tuba_views_admin_timeline_blocked_ips_construct (GType object_type);
VALA_EXTERN void tuba_views_admin_page_base_on_error (TubaViewsAdminPageBase* self,
                                          gint code,
                                          const gchar* message);
static void _tuba_views_admin_page_base_on_error_tuba_views_admin_timeline_pagination_timeline_on_error (TubaViewsAdminTimelinePaginationTimeline* _sender,
                                                                                                  gint code,
                                                                                                  const gchar* message,
                                                                                                  gpointer self);
VALA_EXTERN void tuba_views_admin_page_base_set_page (TubaViewsAdminPageBase* self,
                                          GtkWidget* value);
static void tuba_views_admin_page_blocked_ips_finalize (GObject * obj);
static GType tuba_views_admin_page_blocked_ips_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 inline gpointer
tuba_views_admin_page_blocked_ips_get_instance_private (TubaViewsAdminPageBlockedIPs* self)
{
	return G_STRUCT_MEMBER_P (self, TubaViewsAdminPageBlockedIPs_private_offset);
}

static void
_tuba_views_admin_page_blocked_ips_refresh_tuba_dialogs_admin_add_ip_block_added (TubaDialogsAdminAddIPBlock* _sender,
                                                                                  gpointer self)
{
	tuba_views_admin_page_blocked_ips_refresh ((TubaViewsAdminPageBlockedIPs*) self);
}

static void
tuba_views_admin_page_blocked_ips_open_add_ip_block_dialog (TubaViewsAdminPageBlockedIPs* self)
{
	TubaDialogsAdminWindow* _tmp0_;
	TubaDialogsAdminWindow* _tmp1_;
	TubaDialogsAdminAddIPBlock* add_ip_block_dialog = NULL;
	TubaDialogsAdminAddIPBlock* _tmp2_;
	TubaDialogsAdminAddIPBlock* _tmp3_;
	TubaDialogsAdminAddIPBlock* _tmp4_;
	TubaDialogsAdminWindow* _tmp5_;
	TubaDialogsAdminWindow* _tmp6_;
	g_return_if_fail (self != NULL);
	_tmp0_ = tuba_views_admin_page_base_get_admin_window ((TubaViewsAdminPageBase*) self);
	_tmp1_ = _tmp0_;
	if (_tmp1_ == NULL) {
		return;
	}
	_tmp2_ = tuba_dialogs_admin_add_ip_block_new ();
	g_object_ref_sink (_tmp2_);
	add_ip_block_dialog = _tmp2_;
	_tmp3_ = add_ip_block_dialog;
	g_signal_connect_object (_tmp3_, "added", (GCallback) _tuba_views_admin_page_blocked_ips_refresh_tuba_dialogs_admin_add_ip_block_added, self, 0);
	_tmp4_ = add_ip_block_dialog;
	_tmp5_ = tuba_views_admin_page_base_get_admin_window ((TubaViewsAdminPageBase*) self);
	_tmp6_ = _tmp5_;
	adw_dialog_present ((AdwDialog*) _tmp4_, (GtkWidget*) _tmp6_);
	_g_object_unref0 (add_ip_block_dialog);
}

static void
tuba_views_admin_page_blocked_ips_refresh (TubaViewsAdminPageBlockedIPs* self)
{
	TubaViewsAdminTimelineBlockedIPs* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->pagination_timeline;
	tuba_views_admin_timeline_pagination_timeline_request ((TubaViewsAdminTimelinePaginationTimeline*) _tmp0_, NULL, NULL);
}

TubaViewsAdminPageBlockedIPs*
tuba_views_admin_page_blocked_ips_construct (GType object_type)
{
	TubaViewsAdminPageBlockedIPs * self = NULL;
	self = (TubaViewsAdminPageBlockedIPs*) tuba_views_admin_page_base_construct (object_type);
	return self;
}

TubaViewsAdminPageBlockedIPs*
tuba_views_admin_page_blocked_ips_new (void)
{
	return tuba_views_admin_page_blocked_ips_construct (TUBA_VIEWS_ADMIN_PAGE_TYPE_BLOCKED_IPS);
}

static void
_tuba_views_admin_page_blocked_ips_open_add_ip_block_dialog_gtk_button_clicked (GtkButton* _sender,
                                                                                gpointer self)
{
	tuba_views_admin_page_blocked_ips_open_add_ip_block_dialog ((TubaViewsAdminPageBlockedIPs*) self);
}

static void
_tuba_views_admin_page_base_on_error_tuba_views_admin_timeline_pagination_timeline_on_error (TubaViewsAdminTimelinePaginationTimeline* _sender,
                                                                                             gint code,
                                                                                             const gchar* message,
                                                                                             gpointer self)
{
	tuba_views_admin_page_base_on_error ((TubaViewsAdminPageBase*) self, code, message);
}

static GObject *
tuba_views_admin_page_blocked_ips_constructor (GType type,
                                               guint n_construct_properties,
                                               GObjectConstructParam * construct_properties)
{
	GObject * obj;
	GObjectClass * parent_class;
	TubaViewsAdminPageBlockedIPs * self;
	GtkButton* add_ip_block_button = NULL;
	gchar* _tmp0_;
	gchar* _tmp1_;
	gchar** _tmp2_;
	GtkButton* _tmp3_ = NULL;
	GtkButton* _tmp4_;
	AdwHeaderBar* _tmp5_;
	GtkButton* _tmp6_;
	TubaViewsAdminTimelineBlockedIPs* _tmp7_;
	TubaViewsAdminTimelineBlockedIPs* _tmp8_;
	TubaViewsAdminTimelineBlockedIPs* _tmp9_;
	TubaViewsAdminTimelineBlockedIPs* _tmp10_;
	parent_class = G_OBJECT_CLASS (tuba_views_admin_page_blocked_ips_parent_class);
	obj = parent_class->constructor (type, n_construct_properties, construct_properties);
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, TUBA_VIEWS_ADMIN_PAGE_TYPE_BLOCKED_IPS, TubaViewsAdminPageBlockedIPs);
	adw_navigation_page_set_title ((AdwNavigationPage*) self, _ ("IP Rules"));
	_tmp0_ = g_strdup (_ ("Add IP Block"));
	_tmp1_ = g_strdup ("flat");
	_tmp2_ = g_new0 (gchar*, 1 + 1);
	_tmp2_[0] = _tmp1_;
	_tmp3_ = (GtkButton*) gtk_button_new_from_icon_name ("tuba-plus-large-symbolic");
	gtk_widget_set_tooltip_text ((GtkWidget*) _tmp3_, _tmp0_);
	_g_free0 (_tmp0_);
	gtk_widget_set_css_classes ((GtkWidget*) _tmp3_, _tmp2_);
	_tmp2_ = (_vala_array_free (_tmp2_, 1, (GDestroyNotify) g_free), NULL);
	g_object_ref_sink (_tmp3_);
	add_ip_block_button = _tmp3_;
	_tmp4_ = add_ip_block_button;
	g_signal_connect_object (_tmp4_, "clicked", (GCallback) _tuba_views_admin_page_blocked_ips_open_add_ip_block_dialog_gtk_button_clicked, self, 0);
	_tmp5_ = ((TubaViewsAdminPageBase*) self)->headerbar;
	_tmp6_ = add_ip_block_button;
	adw_header_bar_pack_end (_tmp5_, (GtkWidget*) _tmp6_);
	_tmp7_ = tuba_views_admin_timeline_blocked_ips_new ();
	g_object_ref_sink (_tmp7_);
	_g_object_unref0 (self->priv->pagination_timeline);
	self->priv->pagination_timeline = _tmp7_;
	_tmp8_ = self->priv->pagination_timeline;
	g_signal_connect_object ((TubaViewsAdminTimelinePaginationTimeline*) _tmp8_, "on-error", (GCallback) _tuba_views_admin_page_base_on_error_tuba_views_admin_timeline_pagination_timeline_on_error, (TubaViewsAdminPageBase*) self, 0);
	_tmp9_ = self->priv->pagination_timeline;
	g_object_bind_property_with_closures ((GObject*) _tmp9_, "working", (GObject*) self, "spinning", G_BINDING_SYNC_CREATE, (GClosure*) ((NULL == NULL) ? NULL : g_cclosure_new ((GCallback) NULL, NULL, (GClosureNotify) NULL)), (GClosure*) ((NULL == NULL) ? NULL : g_cclosure_new ((GCallback) NULL, NULL, (GClosureNotify) NULL)));
	_tmp10_ = self->priv->pagination_timeline;
	tuba_views_admin_page_base_set_page ((TubaViewsAdminPageBase*) self, (GtkWidget*) _tmp10_);
	tuba_views_admin_page_blocked_ips_refresh (self);
	_g_object_unref0 (add_ip_block_button);
	return obj;
}

static void
tuba_views_admin_page_blocked_ips_class_init (TubaViewsAdminPageBlockedIPsClass * klass,
                                              gpointer klass_data)
{
	tuba_views_admin_page_blocked_ips_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &TubaViewsAdminPageBlockedIPs_private_offset);
	G_OBJECT_CLASS (klass)->constructor = tuba_views_admin_page_blocked_ips_constructor;
	G_OBJECT_CLASS (klass)->finalize = tuba_views_admin_page_blocked_ips_finalize;
}

static void
tuba_views_admin_page_blocked_ips_instance_init (TubaViewsAdminPageBlockedIPs * self,
                                                 gpointer klass)
{
	self->priv = tuba_views_admin_page_blocked_ips_get_instance_private (self);
}

static void
tuba_views_admin_page_blocked_ips_finalize (GObject * obj)
{
	TubaViewsAdminPageBlockedIPs * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, TUBA_VIEWS_ADMIN_PAGE_TYPE_BLOCKED_IPS, TubaViewsAdminPageBlockedIPs);
	_g_object_unref0 (self->priv->pagination_timeline);
	G_OBJECT_CLASS (tuba_views_admin_page_blocked_ips_parent_class)->finalize (obj);
}

 G_GNUC_NO_INLINE static GType
tuba_views_admin_page_blocked_ips_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (TubaViewsAdminPageBlockedIPsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) tuba_views_admin_page_blocked_ips_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (TubaViewsAdminPageBlockedIPs), 0, (GInstanceInitFunc) tuba_views_admin_page_blocked_ips_instance_init, NULL };
	GType tuba_views_admin_page_blocked_ips_type_id;
	tuba_views_admin_page_blocked_ips_type_id = g_type_register_static (TUBA_VIEWS_ADMIN_PAGE_TYPE_BASE, "TubaViewsAdminPageBlockedIPs", &g_define_type_info, G_TYPE_FLAG_NONE);
	TubaViewsAdminPageBlockedIPs_private_offset = g_type_add_instance_private (tuba_views_admin_page_blocked_ips_type_id, sizeof (TubaViewsAdminPageBlockedIPsPrivate));
	return tuba_views_admin_page_blocked_ips_type_id;
}

GType
tuba_views_admin_page_blocked_ips_get_type (void)
{
	static GType tuba_views_admin_page_blocked_ips_type_id__once = 0;
	if (g_once_init_enter_pointer (&tuba_views_admin_page_blocked_ips_type_id__once)) {
		GType tuba_views_admin_page_blocked_ips_type_id;
		tuba_views_admin_page_blocked_ips_type_id = tuba_views_admin_page_blocked_ips_get_type_once ();
		g_once_init_leave_pointer (&tuba_views_admin_page_blocked_ips_type_id__once, tuba_views_admin_page_blocked_ips_type_id);
	}
	return tuba_views_admin_page_blocked_ips_type_id__once;
}

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);
}

