/* moonshot-identity-request.c generated by valac 0.28.0, the Vala compiler
 * generated from moonshot-identity-request.vala, do not modify */

/*
 * Copyright (c) 2011-2014, JANET(UK)
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 *
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 *
 * 3. Neither the name of JANET(UK) nor the names of its contributors
 *    may be used to endorse or promote products derived from this software
 *    without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 * SUCH DAMAGE.
*/

#include <glib.h>
#include <glib-object.h>
#include <stdlib.h>
#include <string.h>
#include <gtk/gtk.h>


#define TYPE_IDENTITY_REQUEST (identity_request_get_type ())
#define IDENTITY_REQUEST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_IDENTITY_REQUEST, IdentityRequest))
#define IDENTITY_REQUEST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_IDENTITY_REQUEST, IdentityRequestClass))
#define IS_IDENTITY_REQUEST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_IDENTITY_REQUEST))
#define IS_IDENTITY_REQUEST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_IDENTITY_REQUEST))
#define IDENTITY_REQUEST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_IDENTITY_REQUEST, IdentityRequestClass))

typedef struct _IdentityRequest IdentityRequest;
typedef struct _IdentityRequestClass IdentityRequestClass;
typedef struct _IdentityRequestPrivate IdentityRequestPrivate;

#define TYPE_ID_CARD (id_card_get_type ())
#define ID_CARD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ID_CARD, IdCard))
#define ID_CARD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ID_CARD, IdCardClass))
#define IS_ID_CARD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ID_CARD))
#define IS_ID_CARD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ID_CARD))
#define ID_CARD_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ID_CARD, IdCardClass))

typedef struct _IdCard IdCard;
typedef struct _IdCardClass IdCardClass;

#define TYPE_IDENTITY_MANAGER_APP (identity_manager_app_get_type ())
#define IDENTITY_MANAGER_APP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_IDENTITY_MANAGER_APP, IdentityManagerApp))
#define IDENTITY_MANAGER_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_IDENTITY_MANAGER_APP, IdentityManagerAppClass))
#define IS_IDENTITY_MANAGER_APP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_IDENTITY_MANAGER_APP))
#define IS_IDENTITY_MANAGER_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_IDENTITY_MANAGER_APP))
#define IDENTITY_MANAGER_APP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_IDENTITY_MANAGER_APP, IdentityManagerAppClass))

typedef struct _IdentityManagerApp IdentityManagerApp;
typedef struct _IdentityManagerAppClass IdentityManagerAppClass;
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
#define _identity_manager_app_unref0(var) ((var == NULL) ? NULL : (var = (identity_manager_app_unref (var), NULL)))
#define _g_free0(var) (var = (g_free (var), NULL))
#define __g_slist_free__g_object_unref0_0(var) ((var == NULL) ? NULL : (var = (_g_slist_free__g_object_unref0_ (var), NULL)))
typedef struct _IdentityManagerAppPrivate IdentityManagerAppPrivate;

#define TYPE_IDENTITY_MANAGER_MODEL (identity_manager_model_get_type ())
#define IDENTITY_MANAGER_MODEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_IDENTITY_MANAGER_MODEL, IdentityManagerModel))
#define IDENTITY_MANAGER_MODEL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_IDENTITY_MANAGER_MODEL, IdentityManagerModelClass))
#define IS_IDENTITY_MANAGER_MODEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_IDENTITY_MANAGER_MODEL))
#define IS_IDENTITY_MANAGER_MODEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_IDENTITY_MANAGER_MODEL))
#define IDENTITY_MANAGER_MODEL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_IDENTITY_MANAGER_MODEL, IdentityManagerModelClass))

typedef struct _IdentityManagerModel IdentityManagerModel;
typedef struct _IdentityManagerModelClass IdentityManagerModelClass;

#define TYPE_IDENTITY_MANAGER_VIEW (identity_manager_view_get_type ())
#define IDENTITY_MANAGER_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_IDENTITY_MANAGER_VIEW, IdentityManagerView))
#define IDENTITY_MANAGER_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_IDENTITY_MANAGER_VIEW, IdentityManagerViewClass))
#define IS_IDENTITY_MANAGER_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_IDENTITY_MANAGER_VIEW))
#define IS_IDENTITY_MANAGER_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_IDENTITY_MANAGER_VIEW))
#define IDENTITY_MANAGER_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_IDENTITY_MANAGER_VIEW, IdentityManagerViewClass))

typedef struct _IdentityManagerView IdentityManagerView;
typedef struct _IdentityManagerViewClass IdentityManagerViewClass;

typedef void (*ReturnIdentityCallback) (IdentityRequest* request, void* user_data);
struct _IdentityRequest {
	GObject parent_instance;
	IdentityRequestPrivate * priv;
	IdCard* id_card;
	gboolean complete;
	gboolean select_default;
	gchar* nai;
	gchar* password;
	gchar* service;
	GSList* candidates;
};

struct _IdentityRequestClass {
	GObjectClass parent_class;
};

struct _IdentityRequestPrivate {
	IdentityManagerApp* parent_app;
	ReturnIdentityCallback callback;
	gpointer callback_target;
	GDestroyNotify callback_target_destroy_notify;
};

struct _IdentityManagerApp {
	GTypeInstance parent_instance;
	volatile int ref_count;
	IdentityManagerAppPrivate * priv;
	IdentityManagerModel* model;
	IdCard* default_id_card;
	gboolean explicitly_launched;
	IdentityManagerView* view;
};

struct _IdentityManagerAppClass {
	GTypeClass parent_class;
	void (*finalize) (IdentityManagerApp *self);
};


static gpointer identity_request_parent_class = NULL;

GType identity_request_get_type (void) G_GNUC_CONST;
GType id_card_get_type (void) G_GNUC_CONST;
gpointer identity_manager_app_ref (gpointer instance);
void identity_manager_app_unref (gpointer instance);
GParamSpec* param_spec_identity_manager_app (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void value_set_identity_manager_app (GValue* value, gpointer v_object);
void value_take_identity_manager_app (GValue* value, gpointer v_object);
gpointer value_get_identity_manager_app (const GValue* value);
GType identity_manager_app_get_type (void) G_GNUC_CONST;
#define IDENTITY_REQUEST_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_IDENTITY_REQUEST, IdentityRequestPrivate))
enum  {
	IDENTITY_REQUEST_DUMMY_PROPERTY
};
static void _g_object_unref0_ (gpointer var);
static void _g_slist_free__g_object_unref0_ (GSList* self);
IdentityRequest* identity_request_new (IdentityManagerApp* app, const gchar* nai, const gchar* password, const gchar* service);
IdentityRequest* identity_request_construct (GType object_type, IdentityManagerApp* app, const gchar* nai, const gchar* password, const gchar* service);
IdentityRequest* identity_request_new_default (IdentityManagerApp* app);
IdentityRequest* identity_request_construct_default (GType object_type, IdentityManagerApp* app);
void identity_request_set_callback (IdentityRequest* self, ReturnIdentityCallback cb, void* cb_target, GDestroyNotify cb_target_destroy_notify);
gboolean identity_request_execute (IdentityRequest* self);
void identity_manager_app_select_identity (IdentityManagerApp* self, IdentityRequest* request);
void identity_request_return_identity (IdentityRequest* self, IdCard* id_card);
gchar** id_card_get_services (IdCard* self, int* result_length1);
void id_card_set_services (IdCard* self, gchar** value, int value_length1);
GType identity_manager_model_get_type (void) G_GNUC_CONST;
GType identity_manager_view_get_type (void) G_GNUC_CONST;
IdCard* identity_manager_model_update_card (IdentityManagerModel* self, IdCard* card);
static void identity_request_finalize (GObject* obj);
static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);


static void _g_object_unref0_ (gpointer var) {
#line 43 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	(var == NULL) ? NULL : (var = (g_object_unref (var), NULL));
#line 178 "moonshot-identity-request.c"
}


static void _g_slist_free__g_object_unref0_ (GSList* self) {
#line 43 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	g_slist_foreach (self, (GFunc) _g_object_unref0_, NULL);
#line 43 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	g_slist_free (self);
#line 187 "moonshot-identity-request.c"
}


static gpointer _identity_manager_app_ref0 (gpointer self) {
#line 52 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	return self ? identity_manager_app_ref (self) : NULL;
#line 194 "moonshot-identity-request.c"
}


IdentityRequest* identity_request_construct (GType object_type, IdentityManagerApp* app, const gchar* nai, const gchar* password, const gchar* service) {
	IdentityRequest * self = NULL;
	IdentityManagerApp* _tmp0_ = NULL;
	IdentityManagerApp* _tmp1_ = NULL;
	const gchar* _tmp2_ = NULL;
	gchar* _tmp3_ = NULL;
	const gchar* _tmp4_ = NULL;
	gchar* _tmp5_ = NULL;
	const gchar* _tmp6_ = NULL;
	gchar* _tmp7_ = NULL;
#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	g_return_val_if_fail (app != NULL, NULL);
#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	g_return_val_if_fail (nai != NULL, NULL);
#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	g_return_val_if_fail (password != NULL, NULL);
#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	g_return_val_if_fail (service != NULL, NULL);
#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	self = (IdentityRequest*) g_object_new (object_type, NULL);
#line 52 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	_tmp0_ = app;
#line 52 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	_tmp1_ = _identity_manager_app_ref0 (_tmp0_);
#line 52 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	_identity_manager_app_unref0 (self->priv->parent_app);
#line 52 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	self->priv->parent_app = _tmp1_;
#line 53 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	_tmp2_ = nai;
#line 53 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	_tmp3_ = g_strdup (_tmp2_);
#line 53 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	_g_free0 (self->nai);
#line 53 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	self->nai = _tmp3_;
#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	_tmp4_ = password;
#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	_tmp5_ = g_strdup (_tmp4_);
#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	_g_free0 (self->password);
#line 54 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	self->password = _tmp5_;
#line 55 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	_tmp6_ = service;
#line 55 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	_tmp7_ = g_strdup (_tmp6_);
#line 55 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	_g_free0 (self->service);
#line 55 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	self->service = _tmp7_;
#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	return self;
#line 252 "moonshot-identity-request.c"
}


IdentityRequest* identity_request_new (IdentityManagerApp* app, const gchar* nai, const gchar* password, const gchar* service) {
#line 47 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	return identity_request_construct (TYPE_IDENTITY_REQUEST, app, nai, password, service);
#line 259 "moonshot-identity-request.c"
}


IdentityRequest* identity_request_construct_default (GType object_type, IdentityManagerApp* app) {
	IdentityRequest * self = NULL;
	IdentityManagerApp* _tmp0_ = NULL;
	IdentityManagerApp* _tmp1_ = NULL;
#line 58 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	g_return_val_if_fail (app != NULL, NULL);
#line 58 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	self = (IdentityRequest*) g_object_new (object_type, NULL);
#line 60 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	_tmp0_ = app;
#line 60 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	_tmp1_ = _identity_manager_app_ref0 (_tmp0_);
#line 60 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	_identity_manager_app_unref0 (self->priv->parent_app);
#line 60 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	self->priv->parent_app = _tmp1_;
#line 61 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	self->select_default = TRUE;
#line 58 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	return self;
#line 283 "moonshot-identity-request.c"
}


IdentityRequest* identity_request_new_default (IdentityManagerApp* app) {
#line 58 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	return identity_request_construct_default (TYPE_IDENTITY_REQUEST, app);
#line 290 "moonshot-identity-request.c"
}


void identity_request_set_callback (IdentityRequest* self, ReturnIdentityCallback cb, void* cb_target, GDestroyNotify cb_target_destroy_notify) {
	ReturnIdentityCallback _tmp0_ = NULL;
	void* _tmp0__target = NULL;
	GDestroyNotify _tmp0__target_destroy_notify = NULL;
#line 64 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	g_return_if_fail (self != NULL);
#line 67 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	_tmp0_ = cb;
#line 67 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	_tmp0__target = cb_target;
#line 67 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	_tmp0__target_destroy_notify = cb_target_destroy_notify;
#line 67 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	cb_target_destroy_notify = NULL;
#line 67 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	(self->priv->callback_target_destroy_notify == NULL) ? NULL : (self->priv->callback_target_destroy_notify (self->priv->callback_target), NULL);
#line 67 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	self->priv->callback = NULL;
#line 67 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	self->priv->callback_target = NULL;
#line 67 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	self->priv->callback_target_destroy_notify = NULL;
#line 67 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	self->priv->callback = _tmp0_;
#line 67 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	self->priv->callback_target = _tmp0__target;
#line 67 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	self->priv->callback_target_destroy_notify = _tmp0__target_destroy_notify;
#line 64 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	(cb_target_destroy_notify == NULL) ? NULL : (cb_target_destroy_notify (cb_target), NULL);
#line 64 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	cb = NULL;
#line 64 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	cb_target = NULL;
#line 64 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	cb_target_destroy_notify = NULL;
#line 330 "moonshot-identity-request.c"
}


gboolean identity_request_execute (IdentityRequest* self) {
	gboolean result = FALSE;
	IdentityManagerApp* _tmp0_ = NULL;
#line 73 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 74 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	_tmp0_ = self->priv->parent_app;
#line 74 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	identity_manager_app_select_identity (_tmp0_, self);
#line 79 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	result = FALSE;
#line 79 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	return result;
#line 347 "moonshot-identity-request.c"
}


static gpointer _g_object_ref0 (gpointer self) {
#line 83 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	return self ? g_object_ref (self) : NULL;
#line 354 "moonshot-identity-request.c"
}


void identity_request_return_identity (IdentityRequest* self, IdCard* id_card) {
	IdCard* _tmp0_ = NULL;
	IdCard* _tmp1_ = NULL;
	gboolean _tmp2_ = FALSE;
	gboolean _tmp3_ = FALSE;
	IdCard* _tmp4_ = NULL;
	ReturnIdentityCallback _tmp46_ = NULL;
	void* _tmp46__target = NULL;
	ReturnIdentityCallback _tmp47_ = NULL;
	void* _tmp47__target = NULL;
#line 82 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	g_return_if_fail (self != NULL);
#line 83 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	_tmp0_ = id_card;
#line 83 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	_tmp1_ = _g_object_ref0 (_tmp0_);
#line 83 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	_g_object_unref0 (self->id_card);
#line 83 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	self->id_card = _tmp1_;
#line 84 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	self->complete = TRUE;
#line 87 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	_tmp4_ = id_card;
#line 87 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	if (_tmp4_ != NULL) {
#line 384 "moonshot-identity-request.c"
		const gchar* _tmp5_ = NULL;
#line 87 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
		_tmp5_ = self->service;
#line 87 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
		_tmp3_ = _tmp5_ != NULL;
#line 390 "moonshot-identity-request.c"
	} else {
#line 87 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
		_tmp3_ = FALSE;
#line 394 "moonshot-identity-request.c"
	}
#line 87 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	if (_tmp3_) {
#line 398 "moonshot-identity-request.c"
		const gchar* _tmp6_ = NULL;
#line 87 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
		_tmp6_ = self->service;
#line 87 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
		_tmp2_ = g_strcmp0 (_tmp6_, "") != 0;
#line 404 "moonshot-identity-request.c"
	} else {
#line 87 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
		_tmp2_ = FALSE;
#line 408 "moonshot-identity-request.c"
	}
#line 87 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	if (_tmp2_) {
#line 412 "moonshot-identity-request.c"
		gboolean duplicate_service = FALSE;
		IdCard* _tmp7_ = NULL;
		gchar** _tmp8_ = NULL;
		gint _tmp8__length1 = 0;
		gchar** _tmp9_ = NULL;
		gint _tmp9__length1 = 0;
		gboolean _tmp13_ = FALSE;
#line 89 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
		duplicate_service = FALSE;
#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
		_tmp7_ = id_card;
#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
		_tmp8_ = id_card_get_services (_tmp7_, &_tmp8__length1);
#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
		_tmp9_ = _tmp8_;
#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
		_tmp9__length1 = _tmp8__length1;
#line 430 "moonshot-identity-request.c"
		{
			gchar** service_collection = NULL;
			gint service_collection_length1 = 0;
			gint _service_collection_size_ = 0;
			gint service_it = 0;
#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
			service_collection = _tmp9_;
#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
			service_collection_length1 = _tmp9__length1;
#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
			for (service_it = 0; service_it < _tmp9__length1; service_it = service_it + 1) {
#line 442 "moonshot-identity-request.c"
				gchar* _tmp10_ = NULL;
				gchar* service = NULL;
#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
				_tmp10_ = g_strdup (service_collection[service_it]);
#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
				service = _tmp10_;
#line 449 "moonshot-identity-request.c"
				{
					const gchar* _tmp11_ = NULL;
					const gchar* _tmp12_ = NULL;
#line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
					_tmp11_ = service;
#line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
					_tmp12_ = self->service;
#line 93 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
					if (g_strcmp0 (_tmp11_, _tmp12_) == 0) {
#line 94 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
						duplicate_service = TRUE;
#line 461 "moonshot-identity-request.c"
					}
#line 91 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
					_g_free0 (service);
#line 465 "moonshot-identity-request.c"
				}
			}
		}
#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
		_tmp13_ = duplicate_service;
#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
		if (_tmp13_ == FALSE) {
#line 473 "moonshot-identity-request.c"
			gchar** services = NULL;
			IdCard* _tmp14_ = NULL;
			gchar** _tmp15_ = NULL;
			gint _tmp15__length1 = 0;
			gchar** _tmp16_ = NULL;
			gint _tmp16__length1 = 0;
			gchar** _tmp17_ = NULL;
			gint services_length1 = 0;
			gint _services_size_ = 0;
			gchar** _tmp33_ = NULL;
			gint _tmp33__length1 = 0;
			IdCard* _tmp34_ = NULL;
			gchar** _tmp35_ = NULL;
			gint _tmp35__length1 = 0;
			gchar** _tmp36_ = NULL;
			gint _tmp36__length1 = 0;
			const gchar* _tmp37_ = NULL;
			gchar* _tmp38_ = NULL;
			gchar* _tmp39_ = NULL;
			IdCard* _tmp40_ = NULL;
			gchar** _tmp41_ = NULL;
			gint _tmp41__length1 = 0;
			IdentityManagerApp* _tmp42_ = NULL;
			IdentityManagerModel* _tmp43_ = NULL;
			IdCard* _tmp44_ = NULL;
			IdCard* _tmp45_ = NULL;
#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
			_tmp14_ = id_card;
#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
			_tmp15_ = id_card_get_services (_tmp14_, &_tmp15__length1);
#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
			_tmp16_ = _tmp15_;
#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
			_tmp16__length1 = _tmp15__length1;
#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
			_tmp17_ = g_new0 (gchar*, (_tmp16__length1 + 1) + 1);
#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
			services = _tmp17_;
#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
			services_length1 = _tmp16__length1 + 1;
#line 98 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
			_services_size_ = services_length1;
#line 516 "moonshot-identity-request.c"
			{
				gint i = 0;
#line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
				i = 0;
#line 521 "moonshot-identity-request.c"
				{
					gboolean _tmp18_ = FALSE;
#line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
					_tmp18_ = TRUE;
#line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
					while (TRUE) {
#line 528 "moonshot-identity-request.c"
						gint _tmp20_ = 0;
						IdCard* _tmp21_ = NULL;
						gchar** _tmp22_ = NULL;
						gint _tmp22__length1 = 0;
						gchar** _tmp23_ = NULL;
						gint _tmp23__length1 = 0;
						gchar** _tmp24_ = NULL;
						gint _tmp24__length1 = 0;
						gint _tmp25_ = 0;
						IdCard* _tmp26_ = NULL;
						gchar** _tmp27_ = NULL;
						gint _tmp27__length1 = 0;
						gchar** _tmp28_ = NULL;
						gint _tmp28__length1 = 0;
						gint _tmp29_ = 0;
						const gchar* _tmp30_ = NULL;
						gchar* _tmp31_ = NULL;
						gchar* _tmp32_ = NULL;
#line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
						if (!_tmp18_) {
#line 549 "moonshot-identity-request.c"
							gint _tmp19_ = 0;
#line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
							_tmp19_ = i;
#line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
							i = _tmp19_ + 1;
#line 555 "moonshot-identity-request.c"
						}
#line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
						_tmp18_ = FALSE;
#line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
						_tmp20_ = i;
#line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
						_tmp21_ = id_card;
#line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
						_tmp22_ = id_card_get_services (_tmp21_, &_tmp22__length1);
#line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
						_tmp23_ = _tmp22_;
#line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
						_tmp23__length1 = _tmp22__length1;
#line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
						if (!(_tmp20_ < _tmp23__length1)) {
#line 100 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
							break;
#line 573 "moonshot-identity-request.c"
						}
#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
						_tmp24_ = services;
#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
						_tmp24__length1 = services_length1;
#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
						_tmp25_ = i;
#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
						_tmp26_ = id_card;
#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
						_tmp27_ = id_card_get_services (_tmp26_, &_tmp27__length1);
#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
						_tmp28_ = _tmp27_;
#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
						_tmp28__length1 = _tmp27__length1;
#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
						_tmp29_ = i;
#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
						_tmp30_ = _tmp28_[_tmp29_];
#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
						_tmp31_ = g_strdup (_tmp30_);
#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
						_g_free0 (_tmp24_[_tmp25_]);
#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
						_tmp24_[_tmp25_] = _tmp31_;
#line 101 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
						_tmp32_ = _tmp24_[_tmp25_];
#line 601 "moonshot-identity-request.c"
					}
				}
			}
#line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
			_tmp33_ = services;
#line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
			_tmp33__length1 = services_length1;
#line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
			_tmp34_ = id_card;
#line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
			_tmp35_ = id_card_get_services (_tmp34_, &_tmp35__length1);
#line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
			_tmp36_ = _tmp35_;
#line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
			_tmp36__length1 = _tmp35__length1;
#line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
			_tmp37_ = self->service;
#line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
			_tmp38_ = g_strdup (_tmp37_);
#line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
			_g_free0 (_tmp33_[_tmp36__length1]);
#line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
			_tmp33_[_tmp36__length1] = _tmp38_;
#line 103 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
			_tmp39_ = _tmp33_[_tmp36__length1];
#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
			_tmp40_ = id_card;
#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
			_tmp41_ = services;
#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
			_tmp41__length1 = services_length1;
#line 104 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
			id_card_set_services (_tmp40_, _tmp41_, _tmp41__length1);
#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
			_tmp42_ = self->priv->parent_app;
#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
			_tmp43_ = _tmp42_->model;
#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
			_tmp44_ = id_card;
#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
			_tmp45_ = identity_manager_model_update_card (_tmp43_, _tmp44_);
#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
			_g_object_unref0 (self->id_card);
#line 106 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
			self->id_card = _tmp45_;
#line 96 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
			services = (_vala_array_free (services, services_length1, (GDestroyNotify) g_free), NULL);
#line 649 "moonshot-identity-request.c"
		}
	}
#line 110 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	_tmp46_ = self->priv->callback;
#line 110 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	_tmp46__target = self->priv->callback_target;
#line 110 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	g_return_if_fail (_tmp46_ != NULL);
#line 111 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	_tmp47_ = self->priv->callback;
#line 111 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	_tmp47__target = self->priv->callback_target;
#line 111 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	_tmp47_ (self, _tmp47__target);
#line 664 "moonshot-identity-request.c"
}


static void identity_request_class_init (IdentityRequestClass * klass) {
#line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	identity_request_parent_class = g_type_class_peek_parent (klass);
#line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	g_type_class_add_private (klass, sizeof (IdentityRequestPrivate));
#line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	G_OBJECT_CLASS (klass)->finalize = identity_request_finalize;
#line 675 "moonshot-identity-request.c"
}


static void identity_request_instance_init (IdentityRequest * self) {
#line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	self->priv = IDENTITY_REQUEST_GET_PRIVATE (self);
#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	self->id_card = NULL;
#line 36 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	self->complete = FALSE;
#line 37 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	self->select_default = FALSE;
#line 45 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	self->priv->callback = NULL;
#line 690 "moonshot-identity-request.c"
}


static void identity_request_finalize (GObject* obj) {
	IdentityRequest * self;
#line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_IDENTITY_REQUEST, IdentityRequest);
#line 35 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	_g_object_unref0 (self->id_card);
#line 39 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	_identity_manager_app_unref0 (self->priv->parent_app);
#line 40 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	_g_free0 (self->nai);
#line 41 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	_g_free0 (self->password);
#line 42 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	_g_free0 (self->service);
#line 43 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	__g_slist_free__g_object_unref0_0 (self->candidates);
#line 45 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	(self->priv->callback_target_destroy_notify == NULL) ? NULL : (self->priv->callback_target_destroy_notify (self->priv->callback_target), NULL);
#line 45 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	self->priv->callback = NULL;
#line 45 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	self->priv->callback_target = NULL;
#line 45 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	self->priv->callback_target_destroy_notify = NULL;
#line 34 "/home/hartmans/moonshot/moonshot/ui/src/moonshot-identity-request.vala"
	G_OBJECT_CLASS (identity_request_parent_class)->finalize (obj);
#line 720 "moonshot-identity-request.c"
}


GType identity_request_get_type (void) {
	static volatile gsize identity_request_type_id__volatile = 0;
	if (g_once_init_enter (&identity_request_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (IdentityRequestClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) identity_request_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (IdentityRequest), 0, (GInstanceInitFunc) identity_request_instance_init, NULL };
		GType identity_request_type_id;
		identity_request_type_id = g_type_register_static (G_TYPE_OBJECT, "IdentityRequest", &g_define_type_info, 0);
		g_once_init_leave (&identity_request_type_id__volatile, identity_request_type_id);
	}
	return identity_request_type_id__volatile;
}


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


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



