]> gitweb.factorcode.org Git - factor.git/blobdiff - basis/gobject/GObject-2.0.gir
stomp.cli: simplify
[factor.git] / basis / gobject / GObject-2.0.gir
diff --git a/basis/gobject/GObject-2.0.gir b/basis/gobject/GObject-2.0.gir
deleted file mode 100644 (file)
index 8534b3a..0000000
+++ /dev/null
@@ -1,6231 +0,0 @@
-<?xml version="1.0"?>
-<!-- This file was automatically generated from C sources - DO NOT EDIT!
-To affect the contents of this file, edit the original C definitions,
-and/or use gtk-doc annotations.  -->
-<repository version="1.0"
-            xmlns="http://www.gtk.org/introspection/core/1.0"
-            xmlns:c="http://www.gtk.org/introspection/c/1.0"
-            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
-  <include name="GLib" version="2.0"/>
-  <package name="gobject-2.0"/>
-  <c:include name="glib-object.h"/>
-  <namespace name="GObject"
-             version="2.0"
-             shared-library="libgobject-2.0.so.0"
-             c:prefix="g">
-    <alias name="SignalCMarshaller"
-           target="ClosureMarshal"
-           c:type="GSignalCMarshaller"/>
-    <alias name="Strv" target="none" c:type="GStrv"/>
-    <alias name="chararray" target="none" c:type="gchararray"/>
-    <glib:boxed c:type="GArray"
-                glib:name="Array"
-                glib:type-name="GArray"
-                glib:get-type="g_array_get_type">
-    </glib:boxed>
-    <callback name="BaseFinalizeFunc"
-              c:type="GBaseFinalizeFunc"
-              doc="A callback function used by the type system to finalize those portions
-of a derived types class structure that were setup from the corresponding
-GBaseInitFunc() function. Class finalization basically works the inverse
-way in which class intialization is performed.
-See GClassInitFunc() for a discussion of the class intialization process.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="g_class" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <callback name="BaseInitFunc"
-              c:type="GBaseInitFunc"
-              doc="A callback function used by the type system to do base initialization
-of the class structures of derived types. It is called as part of the
-initialization process of all derived classes and should reallocate
-or reset all dynamic class members copied over from the parent class.
-For example, class members (such as strings) that are not sufficiently
-handled by a plain memory copy of the parent class into the derived class
-have to be altered. See GClassInitFunc() for a discussion of the class
-intialization process.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="g_class" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <callback name="BoxedCopyFunc"
-              c:type="GBoxedCopyFunc"
-              doc="This function is provided by the user and should produce a copy of the passed
-in boxed structure.">
-      <return-value transfer-ownership="none">
-        <type name="any" c:type="gpointer"/>
-      </return-value>
-      <parameters>
-        <parameter name="boxed" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <callback name="BoxedFreeFunc"
-              c:type="GBoxedFreeFunc"
-              doc="This function is provided by the user and should free the boxed
-structure passed.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="boxed" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <glib:boxed c:type="GByteArray"
-                glib:name="ByteArray"
-                glib:type-name="GByteArray"
-                glib:get-type="g_byte_array_get_type">
-    </glib:boxed>
-    <record name="CClosure"
-            c:type="GCClosure"
-            doc="A #GCClosure is a specialization of #GClosure for C function callbacks.">
-      <field name="closure" writable="1">
-        <type name="Closure" c:type="GClosure"/>
-      </field>
-      <field name="callback" writable="1">
-        <type name="any" c:type="gpointer"/>
-      </field>
-    </record>
-    <callback name="Callback"
-              c:type="GCallback"
-              doc="The type used for callback functions in structure definitions and function
-signatures. This doesn&apos;t mean that all callback functions must take no
-parameters and return void. The required signature of a callback function
-is determined by the context in which is used (e.g. the signal to which it
-is connected). Use G_CALLBACK() to cast the callback function to a #GCallback.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-    </callback>
-    <callback name="ClassFinalizeFunc"
-              c:type="GClassFinalizeFunc"
-              doc="A callback function used by the type system to finalize a class.
-This function is rarely needed, as dynamically allocated class resources
-should be handled by GBaseInitFunc() and GBaseFinalizeFunc().
-Also, specification of a GClassFinalizeFunc() in the #GTypeInfo
-structure of a static type is invalid, because classes of static types
-will never be finalized (they are artificially kept alive when their
-reference count drops to zero).">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="g_class" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-        <parameter name="class_data" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <callback name="ClassInitFunc"
-              c:type="GClassInitFunc"
-              doc="A callback function used by the type system to initialize the class
-of a specific type. This function should initialize all static class
-members.
-The initialization process of a class involves:
-&lt;itemizedlist&gt;
-&lt;listitem&gt;&lt;para&gt;
-1 - Copying common members from the parent class over to the
-derived class structure.
-&lt;/para&gt;&lt;/listitem&gt;
-&lt;listitem&gt;&lt;para&gt;
-2 -  Zero initialization of the remaining members not copied
-over from the parent class.
-&lt;/para&gt;&lt;/listitem&gt;
-&lt;listitem&gt;&lt;para&gt;
-3 - Invocation of the GBaseInitFunc() initializers of all parent
-types and the class&apos; type.
-&lt;/para&gt;&lt;/listitem&gt;
-&lt;listitem&gt;&lt;para&gt;
-4 - Invocation of the class&apos; GClassInitFunc() initializer.
-&lt;/para&gt;&lt;/listitem&gt;
-&lt;/itemizedlist&gt;
-Since derived classes are partially initialized through a memory copy
-of the parent class, the general rule is that GBaseInitFunc() and
-GBaseFinalizeFunc() should take care of necessary reinitialization
-and release of those class members that were introduced by the type
-that specified these GBaseInitFunc()/GBaseFinalizeFunc().
-GClassInitFunc() should only care about initializing static
-class members, while dynamic class members (such as allocated strings
-or reference counted resources) are better handled by a GBaseInitFunc()
-for this type, so proper initialization of the dynamic class members
-is performed for class initialization of derived types as well.
-An example may help to correspond the intend of the different class
-initializers:
-|[
-typedef struct {
-GObjectClass parent_class;
-gint         static_integer;
-gchar       *dynamic_string;
-} TypeAClass;
-static void
-type_a_base_class_init (TypeAClass *class)
-{
-class-&gt;dynamic_string = g_strdup (&quot;some string&quot;);
-}
-static void
-type_a_base_class_finalize (TypeAClass *class)
-{
-g_free (class-&gt;dynamic_string);
-}
-static void
-type_a_class_init (TypeAClass *class)
-{
-class-&gt;static_integer = 42;
-}
-typedef struct {
-TypeAClass   parent_class;
-gfloat       static_float;
-GString     *dynamic_gstring;
-} TypeBClass;
-static void
-type_b_base_class_init (TypeBClass *class)
-{
-class-&gt;dynamic_gstring = g_string_new (&quot;some other string&quot;);
-}
-static void
-type_b_base_class_finalize (TypeBClass *class)
-{
-g_string_free (class-&gt;dynamic_gstring);
-}
-static void
-type_b_class_init (TypeBClass *class)
-{
-class-&gt;static_float = 3.14159265358979323846;
-}
-]|
-Initialization of TypeBClass will first cause initialization of
-TypeAClass (derived classes reference their parent classes, see
-g_type_class_ref() on this).
-Initialization of TypeAClass roughly involves zero-initializing its fields,
-then calling its GBaseInitFunc() type_a_base_class_init() to allocate
-its dynamic members (dynamic_string), and finally calling its GClassInitFunc()
-type_a_class_init() to initialize its static members (static_integer).
-The first step in the initialization process of TypeBClass is then
-a plain memory copy of the contents of TypeAClass into TypeBClass and
-zero-initialization of the remaining fields in TypeBClass.
-The dynamic members of TypeAClass within TypeBClass now need
-reinitialization which is performed by calling type_a_base_class_init()
-with an argument of TypeBClass.
-After that, the GBaseInitFunc() of TypeBClass, type_b_base_class_init()
-is called to allocate the dynamic members of TypeBClass (dynamic_gstring),
-and finally the GClassInitFunc() of TypeBClass, type_b_class_init(),
-is called to complete the initialization process with the static members
-(static_float).
-Corresponding finalization counter parts to the GBaseInitFunc() functions
-have to be provided to release allocated resources at class finalization
-time.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="g_class" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-        <parameter name="class_data" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <record name="Closure"
-            c:type="GClosure"
-            doc="g_closure_invoke()
-g_closure_invalidate()
-A #GClosure represents a callback supplied by the programmer."
-            glib:type-name="GClosure"
-            glib:get-type="g_closure_get_type">
-      <field name="ref_count" writable="1" bits="15">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <field name="meta_marshal" writable="1" bits="1">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <field name="n_guards" writable="1" bits="1">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <field name="n_fnotifiers" writable="1" bits="2">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <field name="n_inotifiers" writable="1" bits="8">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <field name="in_inotify" writable="1" bits="1">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <field name="floating" writable="1" bits="1">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <field name="derivative_flag" writable="1" bits="1">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <field name="in_marshal" writable="1" bits="1">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <field name="is_invalid" writable="1" bits="1">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <field name="marshal">
-        <type name="any" c:type="pointer"/>
-      </field>
-      <field name="data" writable="1">
-        <type name="any" c:type="gpointer"/>
-      </field>
-      <field name="notifiers" writable="1">
-        <type name="ClosureNotifyData" c:type="GClosureNotifyData*"/>
-      </field>
-      <constructor name="new_simple" c:identifier="g_closure_new_simple">
-        <return-value transfer-ownership="full">
-          <type name="Closure" c:type="GClosure*"/>
-        </return-value>
-        <parameters>
-          <parameter name="sizeof_closure" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-          <parameter name="data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <constructor name="new_object" c:identifier="g_closure_new_object">
-        <return-value transfer-ownership="full">
-          <type name="Closure" c:type="GClosure*"/>
-        </return-value>
-        <parameters>
-          <parameter name="sizeof_closure" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-          <parameter name="object" transfer-ownership="none">
-            <type name="Object" c:type="GObject*"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <method name="ref" c:identifier="g_closure_ref">
-        <return-value transfer-ownership="full">
-          <type name="Closure" c:type="GClosure*"/>
-        </return-value>
-      </method>
-      <method name="sink" c:identifier="g_closure_sink">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="unref" c:identifier="g_closure_unref">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="add_finalize_notifier"
-              c:identifier="g_closure_add_finalize_notifier">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="notify_data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-          <parameter name="notify_func" transfer-ownership="none" scope="call">
-            <type name="ClosureNotify" c:type="GClosureNotify"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="remove_finalize_notifier"
-              c:identifier="g_closure_remove_finalize_notifier">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="notify_data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-          <parameter name="notify_func" transfer-ownership="none" scope="call">
-            <type name="ClosureNotify" c:type="GClosureNotify"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="add_invalidate_notifier"
-              c:identifier="g_closure_add_invalidate_notifier">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="notify_data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-          <parameter name="notify_func" transfer-ownership="none" scope="call">
-            <type name="ClosureNotify" c:type="GClosureNotify"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="remove_invalidate_notifier"
-              c:identifier="g_closure_remove_invalidate_notifier">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="notify_data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-          <parameter name="notify_func" transfer-ownership="none" scope="call">
-            <type name="ClosureNotify" c:type="GClosureNotify"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="add_marshal_guards"
-              c:identifier="g_closure_add_marshal_guards">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="pre_marshal_data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-          <parameter name="pre_marshal_notify"
-                     transfer-ownership="none"
-                     scope="call"
-                     closure="3">
-            <type name="ClosureNotify" c:type="GClosureNotify"/>
-          </parameter>
-          <parameter name="post_marshal_data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-          <parameter name="post_marshal_notify"
-                     transfer-ownership="none"
-                     scope="call">
-            <type name="ClosureNotify" c:type="GClosureNotify"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_marshal" c:identifier="g_closure_set_marshal">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="marshal" transfer-ownership="none" scope="call">
-            <type name="ClosureMarshal" c:type="GClosureMarshal"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_meta_marshal"
-              c:identifier="g_closure_set_meta_marshal">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="marshal_data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-          <parameter name="meta_marshal"
-                     transfer-ownership="none"
-                     scope="call">
-            <type name="ClosureMarshal" c:type="GClosureMarshal"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="invalidate" c:identifier="g_closure_invalidate">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="invoke" c:identifier="g_closure_invoke">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="return_value" transfer-ownership="none">
-            <type name="Value" c:type="GValue*"/>
-          </parameter>
-          <parameter name="n_param_values" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-          <parameter name="param_values" transfer-ownership="none">
-            <type name="Value" c:type="GValue*"/>
-          </parameter>
-          <parameter name="invocation_hint" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </method>
-    </record>
-    <callback name="ClosureMarshal"
-              c:type="GClosureMarshal"
-              doc="callback of @closure doesn&apos;t return a value.
-which to invoke the callback of @closure
-to g_closure_invoke()
-see g_closure_set_marshal() and g_closure_set_meta_marshal()
-The type used for marshaller functions.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="closure" transfer-ownership="none">
-          <type name="Closure" c:type="GClosure*"/>
-        </parameter>
-        <parameter name="return_value" transfer-ownership="none">
-          <type name="Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="n_param_values" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-        <parameter name="param_values" transfer-ownership="none">
-          <type name="Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="invocation_hint" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-        <parameter name="marshal_data" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <callback name="ClosureNotify"
-              c:type="GClosureNotify"
-              doc="The type used for the various notification callbacks which can be registered
-on closures.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="data" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-        <parameter name="closure" transfer-ownership="none">
-          <type name="Closure" c:type="GClosure*"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <record name="ClosureNotifyData" c:type="GClosureNotifyData">
-      <field name="data" writable="1">
-        <type name="any" c:type="gpointer"/>
-      </field>
-      <field name="notify" writable="1">
-        <type name="ClosureNotify" c:type="GClosureNotify"/>
-      </field>
-    </record>
-    <bitfield name="ConnectFlags"
-              doc="default handler of the signal.
-calling the handler.
-The connection flags are used to specify the behaviour of a signal&apos;s
-connection."
-              c:type="GConnectFlags">
-      <member name="after" value="1" c:identifier="G_CONNECT_AFTER"/>
-      <member name="swapped" value="2" c:identifier="G_CONNECT_SWAPPED"/>
-    </bitfield>
-    <glib:boxed c:type="GDate"
-                glib:name="Date"
-                glib:type-name="GDate"
-                glib:get-type="g_date_get_type">
-    </glib:boxed>
-    <record name="EnumClass"
-            c:type="GEnumClass"
-            doc="individual values.
-The class of an enumeration type holds information about its
-possible values.">
-      <field name="g_type_class" writable="1">
-        <type name="TypeClass" c:type="GTypeClass"/>
-      </field>
-      <field name="minimum" writable="1">
-        <type name="int" c:type="gint"/>
-      </field>
-      <field name="maximum" writable="1">
-        <type name="int" c:type="gint"/>
-      </field>
-      <field name="n_values" writable="1">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <field name="values" writable="1">
-        <type name="EnumValue" c:type="GEnumValue*"/>
-      </field>
-    </record>
-    <record name="EnumValue"
-            c:type="GEnumValue"
-            doc="A structure which contains a single enum value, its name, and its
-nickname.">
-      <field name="value" writable="1">
-        <type name="int" c:type="gint"/>
-      </field>
-      <field name="value_name" writable="1">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="value_nick" writable="1">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-    </record>
-    <record name="FlagsClass"
-            c:type="GFlagsClass"
-            doc="individual values.
-The class of a flags type holds information about its
-possible values.">
-      <field name="g_type_class" writable="1">
-        <type name="TypeClass" c:type="GTypeClass"/>
-      </field>
-      <field name="mask" writable="1">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <field name="n_values" writable="1">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <field name="values" writable="1">
-        <type name="FlagsValue" c:type="GFlagsValue*"/>
-      </field>
-    </record>
-    <record name="FlagsValue"
-            c:type="GFlagsValue"
-            doc="A structure which contains a single flags value, its name, and its
-nickname.">
-      <field name="value" writable="1">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <field name="value_name" writable="1">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="value_nick" writable="1">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-    </record>
-    <glib:boxed c:type="GHashTable"
-                glib:name="HashTable"
-                glib:type-name="GHashTable"
-                glib:get-type="g_hash_table_get_type">
-    </glib:boxed>
-    <glib:boxed c:type="GIOChannel"
-                glib:name="IOChannel"
-                glib:type-name="GIOChannel"
-                glib:get-type="g_io_channel_get_type">
-    </glib:boxed>
-    <bitfield name="IOCondition"
-              glib:type-name="GIOCondition"
-              glib:get-type="g_io_condition_get_type"
-              c:type="GIOCondition">
-      <member name="in" value="1" c:identifier="G_IO_IN" glib:nick="in"/>
-      <member name="out" value="4" c:identifier="G_IO_OUT" glib:nick="out"/>
-      <member name="pri" value="2" c:identifier="G_IO_PRI" glib:nick="pri"/>
-      <member name="err" value="8" c:identifier="G_IO_ERR" glib:nick="err"/>
-      <member name="hup" value="16" c:identifier="G_IO_HUP" glib:nick="hup"/>
-      <member name="nval"
-              value="32"
-              c:identifier="G_IO_NVAL"
-              glib:nick="nval"/>
-    </bitfield>
-    <class name="InitiallyUnowned"
-           c:type="GInitiallyUnowned"
-           doc="All the fields in the &lt;structname&gt;GInitiallyUnowned&lt;/structname&gt; structure
-are private to the #GInitiallyUnowned implementation and should never be
-accessed directly."
-           parent="Object"
-           abstract="1"
-           glib:type-name="GInitiallyUnowned"
-           glib:get-type="g_initially_unowned_get_type"
-           glib:type-struct="InitiallyUnownedClass">
-      <field name="g_type_instance" writable="1">
-        <type name="TypeInstance" c:type="GTypeInstance"/>
-      </field>
-      <field name="ref_count" writable="1">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <field name="qdata" writable="1">
-        <type name="GLib.Data" c:type="GData*"/>
-      </field>
-    </class>
-    <record name="InitiallyUnownedClass"
-            c:type="GInitiallyUnownedClass"
-            glib:is-gtype-struct-for="InitiallyUnowned"
-            doc="The class structure for the &lt;structname&gt;GInitiallyUnowned&lt;/structname&gt; type.">
-      <field name="g_type_class">
-        <type name="TypeClass" c:type="GTypeClass"/>
-      </field>
-      <field name="construct_properties">
-        <type name="GLib.SList" c:type="GSList*"/>
-      </field>
-      <field name="constructor">
-        <callback name="constructor" c:type="constructor">
-          <return-value transfer-ownership="full">
-            <type name="Object" c:type="GObject*"/>
-          </return-value>
-          <parameters>
-            <parameter name="type" transfer-ownership="none">
-              <type name="GType" c:type="GType"/>
-            </parameter>
-            <parameter name="n_construct_properties" transfer-ownership="none">
-              <type name="uint" c:type="guint"/>
-            </parameter>
-            <parameter name="construct_properties" transfer-ownership="none">
-              <type name="ObjectConstructParam"
-                    c:type="GObjectConstructParam*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="set_property">
-        <callback name="set_property" c:type="set_property">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="object" transfer-ownership="none">
-              <type name="Object" c:type="GObject*"/>
-            </parameter>
-            <parameter name="property_id" transfer-ownership="none">
-              <type name="uint" c:type="guint"/>
-            </parameter>
-            <parameter name="value" transfer-ownership="none">
-              <type name="Value" c:type="GValue*"/>
-            </parameter>
-            <parameter name="pspec" transfer-ownership="none">
-              <type name="ParamSpec" c:type="GParamSpec*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="get_property">
-        <callback name="get_property" c:type="get_property">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="object" transfer-ownership="none">
-              <type name="Object" c:type="GObject*"/>
-            </parameter>
-            <parameter name="property_id" transfer-ownership="none">
-              <type name="uint" c:type="guint"/>
-            </parameter>
-            <parameter name="value" transfer-ownership="none">
-              <type name="Value" c:type="GValue*"/>
-            </parameter>
-            <parameter name="pspec" transfer-ownership="none">
-              <type name="ParamSpec" c:type="GParamSpec*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="dispose">
-        <callback name="dispose" c:type="dispose">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="object" transfer-ownership="none">
-              <type name="Object" c:type="GObject*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="finalize">
-        <callback name="finalize" c:type="finalize">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="object" transfer-ownership="none">
-              <type name="Object" c:type="GObject*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="dispatch_properties_changed">
-        <callback name="dispatch_properties_changed"
-                  c:type="dispatch_properties_changed">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="object" transfer-ownership="none">
-              <type name="Object" c:type="GObject*"/>
-            </parameter>
-            <parameter name="n_pspecs" transfer-ownership="none">
-              <type name="uint" c:type="guint"/>
-            </parameter>
-            <parameter name="pspecs" transfer-ownership="none">
-              <type name="ParamSpec" c:type="GParamSpec**"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="notify">
-        <callback name="notify" c:type="notify">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="object" transfer-ownership="none">
-              <type name="Object" c:type="GObject*"/>
-            </parameter>
-            <parameter name="pspec" transfer-ownership="none">
-              <type name="ParamSpec" c:type="GParamSpec*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="constructed">
-        <callback name="constructed" c:type="constructed">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="object" transfer-ownership="none">
-              <type name="Object" c:type="GObject*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="flags">
-        <type name="size_t" c:type="gsize"/>
-      </field>
-      <field name="pdummy">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="6">
-          <type name="any"/>
-        </array>
-      </field>
-    </record>
-    <callback name="InstanceInitFunc"
-              c:type="GInstanceInitFunc"
-              doc="A callback function used by the type system to initialize a new
-instance of a type. This function initializes all instance members and
-allocates any resources required by it.
-Initialization of a derived instance involves calling all its parent
-types instance initializers, so the class member of the instance
-is altered during its initialization to always point to the class that
-belongs to the type the current initializer was introduced for.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="instance" transfer-ownership="none">
-          <type name="TypeInstance" c:type="GTypeInstance*"/>
-        </parameter>
-        <parameter name="g_class" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <callback name="InterfaceFinalizeFunc"
-              c:type="GInterfaceFinalizeFunc"
-              doc="A callback function used by the type system to finalize an interface.
-This function should destroy any internal data and release any resources
-allocated by the corresponding GInterfaceInitFunc() function.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="g_iface" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-        <parameter name="iface_data" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <record name="InterfaceInfo"
-            c:type="GInterfaceInfo"
-            doc="A structure that provides information to the type system which is
-used specifically for managing interface types.">
-      <field name="interface_init" writable="1">
-        <type name="InterfaceInitFunc" c:type="GInterfaceInitFunc"/>
-      </field>
-      <field name="interface_finalize" writable="1">
-        <type name="InterfaceFinalizeFunc" c:type="GInterfaceFinalizeFunc"/>
-      </field>
-      <field name="interface_data" writable="1">
-        <type name="any" c:type="gpointer"/>
-      </field>
-    </record>
-    <callback name="InterfaceInitFunc"
-              c:type="GInterfaceInitFunc"
-              doc="A callback function used by the type system to initialize a new
-interface.  This function should initialize all internal data and
-allocate any resources required by the interface.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="g_iface" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-        <parameter name="iface_data" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <class name="Object"
-           c:type="GObject"
-           doc="All the fields in the &lt;structname&gt;GObject&lt;/structname&gt; structure are private
-to the #GObject implementation and should never be accessed directly."
-           abstract="1"
-           glib:type-name="GObject"
-           glib:get-type="intern"
-           glib:type-struct="ObjectClass">
-      <virtual-method name="set_property">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="property_id" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <type name="Value" c:type="GValue*"/>
-          </parameter>
-          <parameter name="pspec" transfer-ownership="none">
-            <type name="ParamSpec" c:type="GParamSpec*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="get_property">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="property_id" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <type name="Value" c:type="GValue*"/>
-          </parameter>
-          <parameter name="pspec" transfer-ownership="none">
-            <type name="ParamSpec" c:type="GParamSpec*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="dispose">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="finalize">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="dispatch_properties_changed">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="n_pspecs" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-          <parameter name="pspecs" transfer-ownership="none">
-            <type name="ParamSpec" c:type="GParamSpec**"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="notify">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="pspec" transfer-ownership="none">
-            <type name="ParamSpec" c:type="GParamSpec*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="constructed">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </virtual-method>
-      <method name="set_property" c:identifier="g_object_set_property">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="property_name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <type name="Value" c:type="GValue*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_property" c:identifier="g_object_get_property">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="property_name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <type name="Value" c:type="GValue*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="freeze_notify" c:identifier="g_object_freeze_notify">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="notify" c:identifier="g_object_notify">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="property_name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="thaw_notify" c:identifier="g_object_thaw_notify">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="weak_ref" c:identifier="g_object_weak_ref">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="notify"
-                     transfer-ownership="none"
-                     scope="call"
-                     closure="2">
-            <type name="WeakNotify" c:type="GWeakNotify"/>
-          </parameter>
-          <parameter name="data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="weak_unref" c:identifier="g_object_weak_unref">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="notify"
-                     transfer-ownership="none"
-                     scope="call"
-                     closure="2">
-            <type name="WeakNotify" c:type="GWeakNotify"/>
-          </parameter>
-          <parameter name="data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="add_weak_pointer" c:identifier="g_object_add_weak_pointer">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="weak_pointer_location"
-                     direction="inout"
-                     transfer-ownership="none">
-            <type name="any" c:type="gpointer*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="remove_weak_pointer"
-              c:identifier="g_object_remove_weak_pointer">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="weak_pointer_location"
-                     direction="inout"
-                     transfer-ownership="none">
-            <type name="any" c:type="gpointer*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="add_toggle_ref" c:identifier="g_object_add_toggle_ref">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="notify"
-                     transfer-ownership="none"
-                     scope="call"
-                     closure="2">
-            <type name="ToggleNotify" c:type="GToggleNotify"/>
-          </parameter>
-          <parameter name="data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="remove_toggle_ref"
-              c:identifier="g_object_remove_toggle_ref">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="notify"
-                     transfer-ownership="none"
-                     scope="call"
-                     closure="2">
-            <type name="ToggleNotify" c:type="GToggleNotify"/>
-          </parameter>
-          <parameter name="data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_qdata" c:identifier="g_object_get_qdata">
-        <return-value transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </return-value>
-        <parameters>
-          <parameter name="quark" transfer-ownership="none">
-            <type name="GLib.Quark" c:type="GQuark"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_qdata" c:identifier="g_object_set_qdata">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="quark" transfer-ownership="none">
-            <type name="GLib.Quark" c:type="GQuark"/>
-          </parameter>
-          <parameter name="data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_qdata_full" c:identifier="g_object_set_qdata_full">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="quark" transfer-ownership="none">
-            <type name="GLib.Quark" c:type="GQuark"/>
-          </parameter>
-          <parameter name="data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-          <parameter name="destroy" transfer-ownership="none" scope="call">
-            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="steal_qdata" c:identifier="g_object_steal_qdata">
-        <return-value transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </return-value>
-        <parameters>
-          <parameter name="quark" transfer-ownership="none">
-            <type name="GLib.Quark" c:type="GQuark"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_data" c:identifier="g_object_get_data">
-        <return-value transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </return-value>
-        <parameters>
-          <parameter name="key" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_data" c:identifier="g_object_set_data">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="key" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_data_full" c:identifier="g_object_set_data_full">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="key" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-          <parameter name="destroy" transfer-ownership="none" scope="call">
-            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="steal_data" c:identifier="g_object_steal_data">
-        <return-value transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </return-value>
-        <parameters>
-          <parameter name="key" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="watch_closure" c:identifier="g_object_watch_closure">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="closure" transfer-ownership="none">
-            <type name="Closure" c:type="GClosure*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="force_floating" c:identifier="g_object_force_floating">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="run_dispose" c:identifier="g_object_run_dispose">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <field name="g_type_instance" writable="1">
-        <type name="TypeInstance" c:type="GTypeInstance"/>
-      </field>
-      <field name="ref_count" writable="1">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <field name="qdata" writable="1">
-        <type name="GLib.Data" c:type="GData*"/>
-      </field>
-    </class>
-    <record name="ObjectClass"
-            c:type="GObjectClass"
-            glib:is-gtype-struct-for="Object"
-            doc="complete the object initialization after all the construction properties are
-set. The first thing a @constructor implementation must do is chain up to the
-needed, e.g. to handle construct properties, or to implement singletons.
-overridden for every type with properties. Implementations of @set_property
-don&apos;t need to emit property change notification explicitly, this is handled
-by the type system.
-overridden for every type with properties.
-objects, but keep the instance otherwise intact, so that client method
-invocations still work. It may be run multiple times (due to reference
-loops). Before returning, @dispose should chain up to the @dispose method
-of the parent class.
-the instance begun in @dispose and chain up to the @finalize method of the
-parent class.
-of properties. Overriding @dispatch_properties_changed should be rarely
-needed.
-final step of the object creation process.  At the point of the call, all
-construction properties have been set on the object.  The purpose of this
-call is to allow for object initialisation steps that can only be performed
-after construction properties have been set.  @constructed implementors
-should chain up to the @constructed call of their parent class to allow it
-to complete its initialisation.
-The class structure for the &lt;structname&gt;GObject&lt;/structname&gt; type.
-&lt;example&gt;
-&lt;title&gt;Implementing singletons using a constructor&lt;/title&gt;
-&lt;programlisting&gt;
-static MySingleton *the_singleton = NULL;
-static GObject*
-my_singleton_constructor (GType                  type,
-guint                  n_construct_params,
-GObjectConstructParam *construct_params)
-{
-GObject *object;
-if (!the_singleton)
-{
-object = G_OBJECT_CLASS (parent_class)-&gt;constructor (type,
-n_construct_params,
-construct_params);
-the_singleton = MY_SINGLETON (object);
-}
-else
-object = g_object_ref (G_OBJECT (the_singleton));
-return object;
-}
-&lt;/programlisting&gt;&lt;/example&gt;">
-      <field name="g_type_class">
-        <type name="TypeClass" c:type="GTypeClass"/>
-      </field>
-      <field name="construct_properties">
-        <type name="GLib.SList" c:type="GSList*"/>
-      </field>
-      <field name="constructor">
-        <callback name="constructor" c:type="constructor">
-          <return-value transfer-ownership="full">
-            <type name="Object" c:type="GObject*"/>
-          </return-value>
-          <parameters>
-            <parameter name="type" transfer-ownership="none">
-              <type name="GType" c:type="GType"/>
-            </parameter>
-            <parameter name="n_construct_properties" transfer-ownership="none">
-              <type name="uint" c:type="guint"/>
-            </parameter>
-            <parameter name="construct_properties" transfer-ownership="none">
-              <type name="ObjectConstructParam"
-                    c:type="GObjectConstructParam*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="set_property">
-        <callback name="set_property" c:type="set_property">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="object" transfer-ownership="none">
-              <type name="Object" c:type="GObject*"/>
-            </parameter>
-            <parameter name="property_id" transfer-ownership="none">
-              <type name="uint" c:type="guint"/>
-            </parameter>
-            <parameter name="value" transfer-ownership="none">
-              <type name="Value" c:type="GValue*"/>
-            </parameter>
-            <parameter name="pspec" transfer-ownership="none">
-              <type name="ParamSpec" c:type="GParamSpec*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="get_property">
-        <callback name="get_property" c:type="get_property">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="object" transfer-ownership="none">
-              <type name="Object" c:type="GObject*"/>
-            </parameter>
-            <parameter name="property_id" transfer-ownership="none">
-              <type name="uint" c:type="guint"/>
-            </parameter>
-            <parameter name="value" transfer-ownership="none">
-              <type name="Value" c:type="GValue*"/>
-            </parameter>
-            <parameter name="pspec" transfer-ownership="none">
-              <type name="ParamSpec" c:type="GParamSpec*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="dispose">
-        <callback name="dispose" c:type="dispose">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="object" transfer-ownership="none">
-              <type name="Object" c:type="GObject*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="finalize">
-        <callback name="finalize" c:type="finalize">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="object" transfer-ownership="none">
-              <type name="Object" c:type="GObject*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="dispatch_properties_changed">
-        <callback name="dispatch_properties_changed"
-                  c:type="dispatch_properties_changed">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="object" transfer-ownership="none">
-              <type name="Object" c:type="GObject*"/>
-            </parameter>
-            <parameter name="n_pspecs" transfer-ownership="none">
-              <type name="uint" c:type="guint"/>
-            </parameter>
-            <parameter name="pspecs" transfer-ownership="none">
-              <type name="ParamSpec" c:type="GParamSpec**"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="notify">
-        <callback name="notify" c:type="notify">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="object" transfer-ownership="none">
-              <type name="Object" c:type="GObject*"/>
-            </parameter>
-            <parameter name="pspec" transfer-ownership="none">
-              <type name="ParamSpec" c:type="GParamSpec*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="constructed">
-        <callback name="constructed" c:type="constructed">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="object" transfer-ownership="none">
-              <type name="Object" c:type="GObject*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="flags">
-        <type name="size_t" c:type="gsize"/>
-      </field>
-      <field name="pdummy">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="6">
-          <type name="any"/>
-        </array>
-      </field>
-      <method name="install_property"
-              c:identifier="g_object_class_install_property">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="property_id" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-          <parameter name="pspec" transfer-ownership="none">
-            <type name="ParamSpec" c:type="GParamSpec*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="find_property" c:identifier="g_object_class_find_property">
-        <return-value transfer-ownership="full">
-          <type name="ParamSpec" c:type="GParamSpec*"/>
-        </return-value>
-        <parameters>
-          <parameter name="property_name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="list_properties"
-              c:identifier="g_object_class_list_properties">
-        <return-value transfer-ownership="full">
-          <array length="1" c:type="GParamSpec**">
-            <type name="ParamSpec"/>
-          </array>
-        </return-value>
-        <parameters>
-          <parameter name="n_properties"
-                     direction="out"
-                     transfer-ownership="full">
-            <type name="uint" c:type="guint*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="override_property"
-              c:identifier="g_object_class_override_property">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="property_id" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-          <parameter name="name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-    </record>
-    <record name="ObjectConstructParam"
-            c:type="GObjectConstructParam"
-            doc="The &lt;structname&gt;GObjectConstructParam&lt;/structname&gt; struct is an auxiliary
-structure used to hand #GParamSpec/#GValue pairs to the @constructor of
-a #GObjectClass.">
-      <field name="pspec" writable="1">
-        <type name="ParamSpec" c:type="GParamSpec*"/>
-      </field>
-      <field name="value" writable="1">
-        <type name="Value" c:type="GValue*"/>
-      </field>
-    </record>
-    <callback name="ObjectFinalizeFunc"
-              c:type="GObjectFinalizeFunc"
-              doc="The type of the @finalize function of #GObjectClass.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="object" transfer-ownership="none">
-          <type name="Object" c:type="GObject*"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <callback name="ObjectGetPropertyFunc"
-              c:type="GObjectGetPropertyFunc"
-              doc="g_object_class_install_property().
-The type of the @get_property function of #GObjectClass.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="object" transfer-ownership="none">
-          <type name="Object" c:type="GObject*"/>
-        </parameter>
-        <parameter name="property_id" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-        <parameter name="value" transfer-ownership="none">
-          <type name="Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="pspec" transfer-ownership="none">
-          <type name="ParamSpec" c:type="GParamSpec*"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <callback name="ObjectSetPropertyFunc"
-              c:type="GObjectSetPropertyFunc"
-              doc="g_object_class_install_property().
-The type of the @set_property function of #GObjectClass.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="object" transfer-ownership="none">
-          <type name="Object" c:type="GObject*"/>
-        </parameter>
-        <parameter name="property_id" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-        <parameter name="value" transfer-ownership="none">
-          <type name="Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="pspec" transfer-ownership="none">
-          <type name="ParamSpec" c:type="GParamSpec*"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <constant name="PARAM_MASK" value="255">
-      <type name="int"/>
-    </constant>
-    <constant name="PARAM_READWRITE" value="0">
-      <type name="int"/>
-    </constant>
-    <constant name="PARAM_STATIC_STRINGS" value="0">
-      <type name="int"/>
-    </constant>
-    <constant name="PARAM_USER_SHIFT" value="8">
-      <type name="int"/>
-    </constant>
-    <bitfield name="ParamFlags"
-              doc="strict validation is not required
-parameter is guaranteed to remain valid and
-unmodified for the lifetime of the parameter.
-Since 2.8
-parameter is guaranteed to remain valid and
-unmmodified for the lifetime of the parameter.
-Since 2.8
-parameter is guaranteed to remain valid and
-unmodified for the lifetime of the parameter.
-Since 2.8
-Through the #GParamFlags flag values, certain aspects of parameters
-can be configured."
-              c:type="GParamFlags">
-      <member name="readable" value="1" c:identifier="G_PARAM_READABLE"/>
-      <member name="writable" value="2" c:identifier="G_PARAM_WRITABLE"/>
-      <member name="construct" value="4" c:identifier="G_PARAM_CONSTRUCT"/>
-      <member name="construct_only"
-              value="8"
-              c:identifier="G_PARAM_CONSTRUCT_ONLY"/>
-      <member name="lax_validation"
-              value="16"
-              c:identifier="G_PARAM_LAX_VALIDATION"/>
-      <member name="static_name"
-              value="32"
-              c:identifier="G_PARAM_STATIC_NAME"/>
-      <member name="private" value="32" c:identifier="G_PARAM_PRIVATE"/>
-      <member name="static_nick"
-              value="64"
-              c:identifier="G_PARAM_STATIC_NICK"/>
-      <member name="static_blurb"
-              value="128"
-              c:identifier="G_PARAM_STATIC_BLURB"/>
-    </bitfield>
-    <record name="ParamSpec"
-            c:type="GParamSpec"
-            doc="All other fields of the &lt;structname&gt;GParamSpec&lt;/structname&gt; struct are private and
-should not be used directly.">
-      <field name="g_type_instance" writable="1">
-        <type name="TypeInstance" c:type="GTypeInstance"/>
-      </field>
-      <field name="name" writable="1">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="flags" writable="1">
-        <type name="ParamFlags" c:type="GParamFlags"/>
-      </field>
-      <field name="value_type" writable="1">
-        <type name="GType" c:type="GType"/>
-      </field>
-      <field name="owner_type" writable="1">
-        <type name="GType" c:type="GType"/>
-      </field>
-      <field name="_nick" writable="1">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="_blurb" writable="1">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="qdata" writable="1">
-        <type name="GLib.Data" c:type="GData*"/>
-      </field>
-      <field name="ref_count" writable="1">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <field name="param_id" writable="1">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <method name="ref" c:identifier="g_param_spec_ref">
-        <return-value transfer-ownership="full">
-          <type name="ParamSpec" c:type="GParamSpec*"/>
-        </return-value>
-      </method>
-      <method name="unref" c:identifier="g_param_spec_unref">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="sink" c:identifier="g_param_spec_sink">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="ref_sink" c:identifier="g_param_spec_ref_sink">
-        <return-value transfer-ownership="full">
-          <type name="ParamSpec" c:type="GParamSpec*"/>
-        </return-value>
-      </method>
-      <method name="get_qdata" c:identifier="g_param_spec_get_qdata">
-        <return-value transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </return-value>
-        <parameters>
-          <parameter name="quark" transfer-ownership="none">
-            <type name="GLib.Quark" c:type="GQuark"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_qdata" c:identifier="g_param_spec_set_qdata">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="quark" transfer-ownership="none">
-            <type name="GLib.Quark" c:type="GQuark"/>
-          </parameter>
-          <parameter name="data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_qdata_full" c:identifier="g_param_spec_set_qdata_full">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="quark" transfer-ownership="none">
-            <type name="GLib.Quark" c:type="GQuark"/>
-          </parameter>
-          <parameter name="data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-          <parameter name="destroy" transfer-ownership="none" scope="call">
-            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="steal_qdata" c:identifier="g_param_spec_steal_qdata">
-        <return-value transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </return-value>
-        <parameters>
-          <parameter name="quark" transfer-ownership="none">
-            <type name="GLib.Quark" c:type="GQuark"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_redirect_target"
-              c:identifier="g_param_spec_get_redirect_target">
-        <return-value transfer-ownership="full">
-          <type name="ParamSpec" c:type="GParamSpec*"/>
-        </return-value>
-      </method>
-      <method name="get_name" c:identifier="g_param_spec_get_name">
-        <return-value transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-      </method>
-      <method name="get_nick" c:identifier="g_param_spec_get_nick">
-        <return-value transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-      </method>
-      <method name="get_blurb" c:identifier="g_param_spec_get_blurb">
-        <return-value transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-      </method>
-    </record>
-    <record name="ParamSpecBoolean"
-            c:type="GParamSpecBoolean"
-            doc="A #GParamSpec derived structure that contains the meta data for boolean properties.">
-      <field name="parent_instance" writable="1">
-        <type name="ParamSpec" c:type="GParamSpec"/>
-      </field>
-      <field name="default_value" writable="1">
-        <type name="boolean" c:type="gboolean"/>
-      </field>
-    </record>
-    <record name="ParamSpecBoxed"
-            c:type="GParamSpecBoxed"
-            doc="A #GParamSpec derived structure that contains the meta data for boxed properties.">
-      <field name="parent_instance" writable="1">
-        <type name="ParamSpec" c:type="GParamSpec"/>
-      </field>
-    </record>
-    <record name="ParamSpecChar"
-            c:type="GParamSpecChar"
-            doc="A #GParamSpec derived structure that contains the meta data for character properties.">
-      <field name="parent_instance" writable="1">
-        <type name="ParamSpec" c:type="GParamSpec"/>
-      </field>
-      <field name="minimum" writable="1">
-        <type name="int8" c:type="gint8"/>
-      </field>
-      <field name="maximum" writable="1">
-        <type name="int8" c:type="gint8"/>
-      </field>
-      <field name="default_value" writable="1">
-        <type name="int8" c:type="gint8"/>
-      </field>
-      <method name="" c:identifier="g_param_spec_char">
-        <return-value transfer-ownership="full">
-          <type name="ParamSpec" c:type="GParamSpec*"/>
-        </return-value>
-        <parameters>
-          <parameter name="nick" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="blurb" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="minimum" transfer-ownership="none">
-            <type name="int8" c:type="gint8"/>
-          </parameter>
-          <parameter name="maximum" transfer-ownership="none">
-            <type name="int8" c:type="gint8"/>
-          </parameter>
-          <parameter name="default_value" transfer-ownership="none">
-            <type name="int8" c:type="gint8"/>
-          </parameter>
-          <parameter name="flags" transfer-ownership="none">
-            <type name="ParamFlags" c:type="GParamFlags"/>
-          </parameter>
-        </parameters>
-      </method>
-    </record>
-    <record name="ParamSpecClass"
-            c:type="GParamSpecClass"
-            doc="up to the finalize method of the parent class.
-(recommended, the default is g_value_reset()), see
-g_param_value_set_default().
-specifications set out by this type (optional), see
-g_param_value_set_validate().
-(recommended, the default is memcmp()), see g_param_values_cmp().
-The class structure for the &lt;structname&gt;GParamSpec&lt;/structname&gt; type.
-Normally, &lt;structname&gt;GParamSpec&lt;/structname&gt; classes are filled by
-g_param_type_register_static().">
-      <field name="g_type_class" writable="1">
-        <type name="TypeClass" c:type="GTypeClass"/>
-      </field>
-      <field name="value_type" writable="1">
-        <type name="GType" c:type="GType"/>
-      </field>
-      <field name="finalize">
-        <type name="any" c:type="pointer"/>
-      </field>
-      <field name="value_set_default">
-        <type name="any" c:type="pointer"/>
-      </field>
-      <field name="value_validate">
-        <type name="any" c:type="pointer"/>
-      </field>
-      <field name="values_cmp">
-        <type name="any" c:type="pointer"/>
-      </field>
-      <field name="dummy" writable="1">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-    </record>
-    <record name="ParamSpecDouble"
-            c:type="GParamSpecDouble"
-            doc="by g_param_values_cmp(); the default value is 1e-90.
-A #GParamSpec derived structure that contains the meta data for double properties.">
-      <field name="parent_instance" writable="1">
-        <type name="ParamSpec" c:type="GParamSpec"/>
-      </field>
-      <field name="minimum" writable="1">
-        <type name="double" c:type="gdouble"/>
-      </field>
-      <field name="maximum" writable="1">
-        <type name="double" c:type="gdouble"/>
-      </field>
-      <field name="default_value" writable="1">
-        <type name="double" c:type="gdouble"/>
-      </field>
-      <field name="epsilon" writable="1">
-        <type name="double" c:type="gdouble"/>
-      </field>
-    </record>
-    <record name="ParamSpecEnum"
-            c:type="GParamSpecEnum"
-            doc="A #GParamSpec derived structure that contains the meta data for enum
-properties.">
-      <field name="parent_instance" writable="1">
-        <type name="ParamSpec" c:type="GParamSpec"/>
-      </field>
-      <field name="enum_class" writable="1">
-        <type name="EnumClass" c:type="GEnumClass*"/>
-      </field>
-      <field name="default_value" writable="1">
-        <type name="int" c:type="gint"/>
-      </field>
-    </record>
-    <record name="ParamSpecFlags"
-            c:type="GParamSpecFlags"
-            doc="A #GParamSpec derived structure that contains the meta data for flags
-properties.">
-      <field name="parent_instance" writable="1">
-        <type name="ParamSpec" c:type="GParamSpec"/>
-      </field>
-      <field name="flags_class" writable="1">
-        <type name="FlagsClass" c:type="GFlagsClass*"/>
-      </field>
-      <field name="default_value" writable="1">
-        <type name="uint" c:type="guint"/>
-      </field>
-    </record>
-    <record name="ParamSpecFloat"
-            c:type="GParamSpecFloat"
-            doc="by g_param_values_cmp(); the default value is 1e-30.
-A #GParamSpec derived structure that contains the meta data for float properties.">
-      <field name="parent_instance" writable="1">
-        <type name="ParamSpec" c:type="GParamSpec"/>
-      </field>
-      <field name="minimum" writable="1">
-        <type name="float" c:type="gfloat"/>
-      </field>
-      <field name="maximum" writable="1">
-        <type name="float" c:type="gfloat"/>
-      </field>
-      <field name="default_value" writable="1">
-        <type name="float" c:type="gfloat"/>
-      </field>
-      <field name="epsilon" writable="1">
-        <type name="float" c:type="gfloat"/>
-      </field>
-    </record>
-    <record name="ParamSpecGType"
-            c:type="GParamSpecGType"
-            doc="A #GParamSpec derived structure that contains the meta data for #GType properties."
-            version="2.10">
-      <field name="parent_instance" writable="1">
-        <type name="ParamSpec" c:type="GParamSpec"/>
-      </field>
-      <field name="is_a_type" writable="1">
-        <type name="GType" c:type="GType"/>
-      </field>
-    </record>
-    <record name="ParamSpecInt"
-            c:type="GParamSpecInt"
-            doc="A #GParamSpec derived structure that contains the meta data for integer properties.">
-      <field name="parent_instance" writable="1">
-        <type name="ParamSpec" c:type="GParamSpec"/>
-      </field>
-      <field name="minimum" writable="1">
-        <type name="int" c:type="gint"/>
-      </field>
-      <field name="maximum" writable="1">
-        <type name="int" c:type="gint"/>
-      </field>
-      <field name="default_value" writable="1">
-        <type name="int" c:type="gint"/>
-      </field>
-    </record>
-    <record name="ParamSpecInt64"
-            c:type="GParamSpecInt64"
-            doc="A #GParamSpec derived structure that contains the meta data for 64bit integer properties.">
-      <field name="parent_instance" writable="1">
-        <type name="ParamSpec" c:type="GParamSpec"/>
-      </field>
-      <field name="minimum" writable="1">
-        <type name="int64" c:type="gint64"/>
-      </field>
-      <field name="maximum" writable="1">
-        <type name="int64" c:type="gint64"/>
-      </field>
-      <field name="default_value" writable="1">
-        <type name="int64" c:type="gint64"/>
-      </field>
-    </record>
-    <record name="ParamSpecLong"
-            c:type="GParamSpecLong"
-            doc="A #GParamSpec derived structure that contains the meta data for long integer properties.">
-      <field name="parent_instance" writable="1">
-        <type name="ParamSpec" c:type="GParamSpec"/>
-      </field>
-      <field name="minimum" writable="1">
-        <type name="long" c:type="glong"/>
-      </field>
-      <field name="maximum" writable="1">
-        <type name="long" c:type="glong"/>
-      </field>
-      <field name="default_value" writable="1">
-        <type name="long" c:type="glong"/>
-      </field>
-    </record>
-    <record name="ParamSpecObject"
-            c:type="GParamSpecObject"
-            doc="A #GParamSpec derived structure that contains the meta data for object properties.">
-      <field name="parent_instance" writable="1">
-        <type name="ParamSpec" c:type="GParamSpec"/>
-      </field>
-    </record>
-    <record name="ParamSpecOverride"
-            c:type="GParamSpecOverride"
-            doc="This is a type of #GParamSpec type that simply redirects operations to
-another paramspec.  All operations other than getting or
-setting the value are redirected, including accessing the nick and
-blurb, validating a value, and so forth. See
-g_param_spec_get_redirect_target() for retrieving the overidden
-property. #GParamSpecOverride is used in implementing
-g_object_class_override_property(), and will not be directly useful
-unless you are implementing a new base type similar to GObject."
-            version="2.4">
-      <field name="parent_instance" writable="1">
-        <type name="ParamSpec" c:type="GParamSpec"/>
-      </field>
-      <field name="overridden" writable="1">
-        <type name="ParamSpec" c:type="GParamSpec*"/>
-      </field>
-    </record>
-    <record name="ParamSpecParam"
-            c:type="GParamSpecParam"
-            doc="A #GParamSpec derived structure that contains the meta data for %G_TYPE_PARAM
-properties.">
-      <field name="parent_instance" writable="1">
-        <type name="ParamSpec" c:type="GParamSpec"/>
-      </field>
-    </record>
-    <record name="ParamSpecPointer"
-            c:type="GParamSpecPointer"
-            doc="A #GParamSpec derived structure that contains the meta data for pointer properties.">
-      <field name="parent_instance" writable="1">
-        <type name="ParamSpec" c:type="GParamSpec"/>
-      </field>
-    </record>
-    <record name="ParamSpecPool" c:type="GParamSpecPool">
-      <constructor name="new" c:identifier="g_param_spec_pool_new">
-        <return-value transfer-ownership="full">
-          <type name="ParamSpecPool" c:type="GParamSpecPool*"/>
-        </return-value>
-        <parameters>
-          <parameter name="type_prefixing" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <method name="insert" c:identifier="g_param_spec_pool_insert">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="pspec" transfer-ownership="none">
-            <type name="ParamSpec" c:type="GParamSpec*"/>
-          </parameter>
-          <parameter name="owner_type" transfer-ownership="none">
-            <type name="GType" c:type="GType"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="remove" c:identifier="g_param_spec_pool_remove">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="pspec" transfer-ownership="none">
-            <type name="ParamSpec" c:type="GParamSpec*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="lookup" c:identifier="g_param_spec_pool_lookup">
-        <return-value transfer-ownership="full">
-          <type name="ParamSpec" c:type="GParamSpec*"/>
-        </return-value>
-        <parameters>
-          <parameter name="param_name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="owner_type" transfer-ownership="none">
-            <type name="GType" c:type="GType"/>
-          </parameter>
-          <parameter name="walk_ancestors" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="list_owned" c:identifier="g_param_spec_pool_list_owned">
-        <return-value transfer-ownership="full">
-          <type name="GLib.List" c:type="GList*"/>
-        </return-value>
-        <parameters>
-          <parameter name="owner_type" transfer-ownership="none">
-            <type name="GType" c:type="GType"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="list" c:identifier="g_param_spec_pool_list">
-        <return-value transfer-ownership="full">
-          <type name="ParamSpec" c:type="GParamSpec**"/>
-        </return-value>
-        <parameters>
-          <parameter name="owner_type" transfer-ownership="none">
-            <type name="GType" c:type="GType"/>
-          </parameter>
-          <parameter name="n_pspecs_p"
-                     direction="out"
-                     transfer-ownership="full">
-            <type name="uint" c:type="guint*"/>
-          </parameter>
-        </parameters>
-      </method>
-    </record>
-    <record name="ParamSpecString"
-            c:type="GParamSpecString"
-            doc="A #GParamSpec derived structure that contains the meta data for string
-properties.">
-      <field name="parent_instance" writable="1">
-        <type name="ParamSpec" c:type="GParamSpec"/>
-      </field>
-      <field name="default_value" writable="1">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="cset_first" writable="1">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="cset_nth" writable="1">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="substitutor" writable="1">
-        <type name="int8" c:type="gchar"/>
-      </field>
-      <field name="null_fold_if_empty" writable="1" bits="1">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <field name="ensure_non_null" writable="1" bits="1">
-        <type name="uint" c:type="guint"/>
-      </field>
-    </record>
-    <record name="ParamSpecTypeInfo"
-            c:type="GParamSpecTypeInfo"
-            doc="(recommended, the default is g_value_reset()), see
-g_param_value_set_default().
-specifications set out by @pspec (optional), see
-g_param_value_set_validate().
-(recommended, the default is memcmp()), see g_param_values_cmp().
-This structure is used to provide the type system with the information
-required to initialize and destruct (finalize) a parameter&apos;s class and
-instances thereof.
-The initialized structure is passed to the g_param_type_register_static()
-The type system will perform a deep copy of this structure, so its memory
-does not need to be persistent across invocation of
-g_param_type_register_static().">
-      <field name="instance_size" writable="1">
-        <type name="uint16" c:type="guint16"/>
-      </field>
-      <field name="n_preallocs" writable="1">
-        <type name="uint16" c:type="guint16"/>
-      </field>
-      <field name="instance_init">
-        <type name="any" c:type="pointer"/>
-      </field>
-      <field name="value_type" writable="1">
-        <type name="GType" c:type="GType"/>
-      </field>
-      <field name="finalize">
-        <type name="any" c:type="pointer"/>
-      </field>
-      <field name="value_set_default">
-        <type name="any" c:type="pointer"/>
-      </field>
-      <field name="value_validate">
-        <type name="any" c:type="pointer"/>
-      </field>
-      <field name="values_cmp">
-        <type name="any" c:type="pointer"/>
-      </field>
-    </record>
-    <record name="ParamSpecUChar"
-            c:type="GParamSpecUChar"
-            doc="A #GParamSpec derived structure that contains the meta data for unsigned character properties.">
-      <field name="parent_instance" writable="1">
-        <type name="ParamSpec" c:type="GParamSpec"/>
-      </field>
-      <field name="minimum" writable="1">
-        <type name="uint8" c:type="guint8"/>
-      </field>
-      <field name="maximum" writable="1">
-        <type name="uint8" c:type="guint8"/>
-      </field>
-      <field name="default_value" writable="1">
-        <type name="uint8" c:type="guint8"/>
-      </field>
-      <method name="" c:identifier="g_param_spec_uchar">
-        <return-value transfer-ownership="full">
-          <type name="ParamSpec" c:type="GParamSpec*"/>
-        </return-value>
-        <parameters>
-          <parameter name="nick" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="blurb" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="minimum" transfer-ownership="none">
-            <type name="uint8" c:type="guint8"/>
-          </parameter>
-          <parameter name="maximum" transfer-ownership="none">
-            <type name="uint8" c:type="guint8"/>
-          </parameter>
-          <parameter name="default_value" transfer-ownership="none">
-            <type name="uint8" c:type="guint8"/>
-          </parameter>
-          <parameter name="flags" transfer-ownership="none">
-            <type name="ParamFlags" c:type="GParamFlags"/>
-          </parameter>
-        </parameters>
-      </method>
-    </record>
-    <record name="ParamSpecUInt"
-            c:type="GParamSpecUInt"
-            doc="A #GParamSpec derived structure that contains the meta data for unsigned integer properties.">
-      <field name="parent_instance" writable="1">
-        <type name="ParamSpec" c:type="GParamSpec"/>
-      </field>
-      <field name="minimum" writable="1">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <field name="maximum" writable="1">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <field name="default_value" writable="1">
-        <type name="uint" c:type="guint"/>
-      </field>
-    </record>
-    <record name="ParamSpecUInt64"
-            c:type="GParamSpecUInt64"
-            doc="A #GParamSpec derived structure that contains the meta data for unsigned 64bit integer properties.">
-      <field name="parent_instance" writable="1">
-        <type name="ParamSpec" c:type="GParamSpec"/>
-      </field>
-      <field name="minimum" writable="1">
-        <type name="uint64" c:type="guint64"/>
-      </field>
-      <field name="maximum" writable="1">
-        <type name="uint64" c:type="guint64"/>
-      </field>
-      <field name="default_value" writable="1">
-        <type name="uint64" c:type="guint64"/>
-      </field>
-    </record>
-    <record name="ParamSpecULong"
-            c:type="GParamSpecULong"
-            doc="A #GParamSpec derived structure that contains the meta data for unsigned long integer properties.">
-      <field name="parent_instance" writable="1">
-        <type name="ParamSpec" c:type="GParamSpec"/>
-      </field>
-      <field name="minimum" writable="1">
-        <type name="ulong" c:type="gulong"/>
-      </field>
-      <field name="maximum" writable="1">
-        <type name="ulong" c:type="gulong"/>
-      </field>
-      <field name="default_value" writable="1">
-        <type name="ulong" c:type="gulong"/>
-      </field>
-    </record>
-    <record name="ParamSpecUnichar"
-            c:type="GParamSpecUnichar"
-            doc="A #GParamSpec derived structure that contains the meta data for unichar (unsigned integer) properties.">
-      <field name="parent_instance" writable="1">
-        <type name="ParamSpec" c:type="GParamSpec"/>
-      </field>
-      <field name="default_value" writable="1">
-        <type name="GLib.unichar" c:type="gunichar"/>
-      </field>
-      <method name="" c:identifier="g_param_spec_unichar">
-        <return-value transfer-ownership="full">
-          <type name="ParamSpec" c:type="GParamSpec*"/>
-        </return-value>
-        <parameters>
-          <parameter name="nick" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="blurb" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="default_value" transfer-ownership="none">
-            <type name="GLib.unichar" c:type="gunichar"/>
-          </parameter>
-          <parameter name="flags" transfer-ownership="none">
-            <type name="ParamFlags" c:type="GParamFlags"/>
-          </parameter>
-        </parameters>
-      </method>
-    </record>
-    <record name="ParamSpecValueArray"
-            c:type="GParamSpecValueArray"
-            doc="A #GParamSpec derived structure that contains the meta data for #GValueArray properties.">
-      <field name="parent_instance" writable="1">
-        <type name="ParamSpec" c:type="GParamSpec"/>
-      </field>
-      <field name="element_spec" writable="1">
-        <type name="ParamSpec" c:type="GParamSpec*"/>
-      </field>
-      <field name="fixed_n_elements" writable="1">
-        <type name="uint" c:type="guint"/>
-      </field>
-    </record>
-    <record name="Parameter"
-            c:type="GParameter"
-            doc="The &lt;structname&gt;GParameter&lt;/structname&gt; struct is an auxiliary structure used
-to hand parameter name/value pairs to g_object_newv().">
-      <field name="name" writable="1">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="value" writable="1">
-        <type name="Value" c:type="GValue"/>
-      </field>
-    </record>
-    <glib:boxed c:type="GPtrArray"
-                glib:name="PtrArray"
-                glib:type-name="GPtrArray"
-                glib:get-type="g_ptr_array_get_type">
-    </glib:boxed>
-    <glib:boxed c:type="GRegex"
-                glib:name="Regex"
-                glib:type-name="GRegex"
-                glib:get-type="g_regex_get_type">
-    </glib:boxed>
-    <constant name="SIGNAL_FLAGS_MASK" value="127">
-      <type name="int"/>
-    </constant>
-    <constant name="SIGNAL_MATCH_MASK" value="63">
-      <type name="int"/>
-    </constant>
-    <callback name="SignalAccumulator"
-              c:type="GSignalAccumulator"
-              doc="is the return value of the current signal emission.
-The signal accumulator is a special callback function that can be used
-to collect return values of the various callbacks that are called
-during a signal emission. The signal accumulator is specified at signal
-creation time, if it is left %NULL, no accumulation of callback return
-values is performed. The return value of signal emissions is then the
-value returned by the last callback.
-should be aborted. Returning %FALSE means to abort the
-current emission and %TRUE is returned for continuation.">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="ihint" transfer-ownership="none">
-          <type name="SignalInvocationHint" c:type="GSignalInvocationHint*"/>
-        </parameter>
-        <parameter name="return_accu" transfer-ownership="none">
-          <type name="Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="handler_return" transfer-ownership="none">
-          <type name="Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="data" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <callback name="SignalEmissionHook"
-              c:type="GSignalEmissionHook"
-              doc="the instance on which the signal was emitted.
-parameters of the emission.
-A simple function pointer to get invoked when the signal is emitted. This
-allows you to tie a hook to the signal type, so that it will trap all
-emissions of that signal, from any object.
-You may not attach these to signals created with the #G_SIGNAL_NO_HOOKS flag.
-hook is disconnected (and destroyed).">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="ihint" transfer-ownership="none">
-          <type name="SignalInvocationHint" c:type="GSignalInvocationHint*"/>
-        </parameter>
-        <parameter name="n_param_values" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-        <parameter name="param_values" transfer-ownership="none">
-          <type name="Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="data" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <bitfield name="SignalFlags"
-              doc="emission for this very object will not be emitted recursively,
-but instead cause the first emission to be restarted.
-upon handler connections and emissions.
-objects from user code via g_signal_emit() and friends, without
-the need of being embedded into extra code that performs pre or
-post emission adjustments on the object. They can also be thought
-of as object methods which can be called generically by
-third-party code.
-The signal flags are used to specify a signal&apos;s behaviour, the overall
-signal description outlines how especially the RUN flags control the
-stages of a signal emission."
-              c:type="GSignalFlags">
-      <member name="run_first" value="1" c:identifier="G_SIGNAL_RUN_FIRST"/>
-      <member name="run_last" value="2" c:identifier="G_SIGNAL_RUN_LAST"/>
-      <member name="run_cleanup"
-              value="4"
-              c:identifier="G_SIGNAL_RUN_CLEANUP"/>
-      <member name="no_recurse" value="8" c:identifier="G_SIGNAL_NO_RECURSE"/>
-      <member name="detailed" value="16" c:identifier="G_SIGNAL_DETAILED"/>
-      <member name="action" value="32" c:identifier="G_SIGNAL_ACTION"/>
-      <member name="no_hooks" value="64" c:identifier="G_SIGNAL_NO_HOOKS"/>
-    </bitfield>
-    <record name="SignalInvocationHint"
-            c:type="GSignalInvocationHint"
-            doc="field will contain one of %G_SIGNAL_RUN_FIRST,
-%G_SIGNAL_RUN_LAST or %G_SIGNAL_RUN_CLEANUP.
-The #GSignalInvocationHint structure is used to pass on additional information
-to callbacks during a signal emission.">
-      <field name="signal_id" writable="1">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <field name="detail" writable="1">
-        <type name="GLib.Quark" c:type="GQuark"/>
-      </field>
-      <field name="run_type" writable="1">
-        <type name="SignalFlags" c:type="GSignalFlags"/>
-      </field>
-    </record>
-    <bitfield name="SignalMatchType"
-              doc="The match types specify what g_signal_handlers_block_matched(),
-g_signal_handlers_unblock_matched() and g_signal_handlers_disconnect_matched()
-match signals by."
-              c:type="GSignalMatchType">
-      <member name="id" value="1" c:identifier="G_SIGNAL_MATCH_ID"/>
-      <member name="detail" value="2" c:identifier="G_SIGNAL_MATCH_DETAIL"/>
-      <member name="closure" value="4" c:identifier="G_SIGNAL_MATCH_CLOSURE"/>
-      <member name="func" value="8" c:identifier="G_SIGNAL_MATCH_FUNC"/>
-      <member name="data" value="16" c:identifier="G_SIGNAL_MATCH_DATA"/>
-      <member name="unblocked"
-              value="32"
-              c:identifier="G_SIGNAL_MATCH_UNBLOCKED"/>
-    </bitfield>
-    <record name="SignalQuery"
-            c:type="GSignalQuery"
-            doc="signal to be queried was unknown.
-effective callback signature is:
-&lt;programlisting&gt;
-[#param_types param_names,]
-#gpointer     data2);
-&lt;/programlisting&gt;
-A structure holding in-depth information for a specific signal. It is
-filled in by the g_signal_query() function.">
-      <field name="signal_id" writable="1">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <field name="signal_name" writable="1">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="itype" writable="1">
-        <type name="GType" c:type="GType"/>
-      </field>
-      <field name="signal_flags" writable="1">
-        <type name="SignalFlags" c:type="GSignalFlags"/>
-      </field>
-      <field name="return_type" writable="1">
-        <type name="GType" c:type="GType"/>
-      </field>
-      <field name="n_params" writable="1">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <field name="param_types" writable="1">
-        <type name="any" c:type="GType*"/>
-      </field>
-    </record>
-    <glib:boxed c:type="GString"
-                glib:name="String"
-                glib:type-name="GString"
-                glib:get-type="g_gstring_get_type">
-    </glib:boxed>
-    <glib:boxed c:type="GStrv"
-                glib:name="Strv"
-                glib:type-name="GStrv"
-                glib:get-type="g_strv_get_type">
-    </glib:boxed>
-    <constant name="TYPE_FUNDAMENTAL_MAX" value="255">
-      <type name="int"/>
-    </constant>
-    <constant name="TYPE_FUNDAMENTAL_SHIFT" value="2">
-      <type name="int"/>
-    </constant>
-    <constant name="TYPE_RESERVED_BSE_FIRST" value="32">
-      <type name="int"/>
-    </constant>
-    <constant name="TYPE_RESERVED_BSE_LAST" value="48">
-      <type name="int"/>
-    </constant>
-    <constant name="TYPE_RESERVED_GLIB_FIRST" value="21">
-      <type name="int"/>
-    </constant>
-    <constant name="TYPE_RESERVED_GLIB_LAST" value="31">
-      <type name="int"/>
-    </constant>
-    <constant name="TYPE_RESERVED_USER_FIRST" value="49">
-      <type name="int"/>
-    </constant>
-    <callback name="ToggleNotify"
-              c:type="GToggleNotify"
-              doc="last reference to the object. %FALSE if the toggle
-reference was the last reference and there are now other
-references.
-A callback function used for notification when the state
-of a toggle reference changes. See g_object_add_toggle_ref().">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="data" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-        <parameter name="object" transfer-ownership="none" doc="was called.">
-          <type name="Object" c:type="GObject*"/>
-        </parameter>
-        <parameter name="is_last_ref" transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <union name="TypeCValue" c:type="GTypeCValue">
-      <field name="v_int" writable="1">
-        <type name="int" c:type="gint"/>
-      </field>
-      <field name="v_long" writable="1">
-        <type name="long" c:type="glong"/>
-      </field>
-      <field name="v_int64" writable="1">
-        <type name="int64" c:type="gint64"/>
-      </field>
-      <field name="v_double" writable="1">
-        <type name="double" c:type="gdouble"/>
-      </field>
-      <field name="v_pointer" writable="1">
-        <type name="any" c:type="gpointer"/>
-      </field>
-    </union>
-    <record name="TypeClass"
-            c:type="GTypeClass"
-            doc="An opaque structure used as the base of all classes.">
-      <field name="g_type" writable="1">
-        <type name="GType" c:type="GType"/>
-      </field>
-      <method name="get_private" c:identifier="g_type_class_get_private">
-        <return-value transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </return-value>
-        <parameters>
-          <parameter name="private_type" transfer-ownership="none">
-            <type name="GType" c:type="GType"/>
-          </parameter>
-        </parameters>
-      </method>
-    </record>
-    <callback name="TypeClassCacheFunc"
-              c:type="GTypeClassCacheFunc"
-              doc="A callback function which is called when the reference count of a class
-drops to zero. It may use g_type_class_ref() to prevent the class from
-being freed. You should not call g_type_class_unref() from a
-#GTypeClassCacheFunc function to prevent infinite recursion, use
-g_type_class_unref_uncached() instead.
-The functions have to check the class id passed in to figure
-whether they actually want to cache the class of this type, since all
-classes are routed through the same #GTypeClassCacheFunc chain.
-called, %FALSE to continue.">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="cache_data" transfer-ownership="none" doc="call">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-        <parameter name="g_class" transfer-ownership="none">
-          <type name="TypeClass" c:type="GTypeClass*"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <bitfield name="TypeDebugFlags"
-              doc="The &lt;type&gt;GTypeDebugFlags&lt;/type&gt; enumeration values can be passed to
-g_type_init_with_debug_flags() to trigger debugging messages during runtime.
-Note that the messages can also be triggered by setting the
-&lt;envar&gt;GOBJECT_DEBUG&lt;/envar&gt; environment variable to a &apos;:&apos;-separated list of
-&quot;objects&quot; and &quot;signals&quot;."
-              c:type="GTypeDebugFlags">
-      <member name="none" value="0" c:identifier="G_TYPE_DEBUG_NONE"/>
-      <member name="objects" value="1" c:identifier="G_TYPE_DEBUG_OBJECTS"/>
-      <member name="signals" value="2" c:identifier="G_TYPE_DEBUG_SIGNALS"/>
-      <member name="mask" value="3" c:identifier="G_TYPE_DEBUG_MASK"/>
-    </bitfield>
-    <bitfield name="TypeFlags"
-              doc="created for an abstract type.
-that introduces a value table, but can&apos;t be used for
-g_value_init().
-Bit masks used to check or determine characteristics of a type."
-              c:type="GTypeFlags">
-      <member name="abstract" value="16" c:identifier="G_TYPE_FLAG_ABSTRACT"/>
-      <member name="value_abstract"
-              value="32"
-              c:identifier="G_TYPE_FLAG_VALUE_ABSTRACT"/>
-    </bitfield>
-    <bitfield name="TypeFundamentalFlags"
-              doc="Bit masks used to check or determine specific characteristics of a
-fundamental type."
-              c:type="GTypeFundamentalFlags">
-      <member name="classed" value="1" c:identifier="G_TYPE_FLAG_CLASSED"/>
-      <member name="instantiatable"
-              value="2"
-              c:identifier="G_TYPE_FLAG_INSTANTIATABLE"/>
-      <member name="derivable" value="4" c:identifier="G_TYPE_FLAG_DERIVABLE"/>
-      <member name="deep_derivable"
-              value="8"
-              c:identifier="G_TYPE_FLAG_DEEP_DERIVABLE"/>
-    </bitfield>
-    <record name="TypeFundamentalInfo"
-            c:type="GTypeFundamentalInfo"
-            doc="A structure that provides information to the type system which is
-used specifically for managing fundamental types.">
-      <field name="type_flags" writable="1">
-        <type name="TypeFundamentalFlags" c:type="GTypeFundamentalFlags"/>
-      </field>
-    </record>
-    <record name="TypeInfo"
-            c:type="GTypeInfo"
-            doc="classed and instantiatable types. Location of the default vtable
-inititalization function for interface types. (optional) This function
-is used both to fill in virtual functions in the class or default vtable,
-and to do type-specific setup such as registering signals and object
-properties.
-classed and instantiatable types. Location fo the default vtable
-finalization function for interface types. (optional)
-useful for fundamental types).
-This structure is used to provide the type system with the information
-required to initialize and destruct (finalize) a type&apos;s class and
-its instances.
-The initialized structure is passed to the g_type_register_static() function
-(or is copied into the provided #GTypeInfo structure in the
-g_type_plugin_complete_type_info()). The type system will perform a deep
-copy of this structure, so its memory does not need to be persistent
-across invocation of g_type_register_static().">
-      <field name="class_size" writable="1">
-        <type name="uint16" c:type="guint16"/>
-      </field>
-      <field name="base_init" writable="1">
-        <type name="BaseInitFunc" c:type="GBaseInitFunc"/>
-      </field>
-      <field name="base_finalize" writable="1">
-        <type name="BaseFinalizeFunc" c:type="GBaseFinalizeFunc"/>
-      </field>
-      <field name="class_init" writable="1">
-        <type name="ClassInitFunc" c:type="GClassInitFunc"/>
-      </field>
-      <field name="class_finalize" writable="1">
-        <type name="ClassFinalizeFunc" c:type="GClassFinalizeFunc"/>
-      </field>
-      <field name="class_data" writable="1">
-        <type name="any" c:type="gconstpointer"/>
-      </field>
-      <field name="instance_size" writable="1">
-        <type name="uint16" c:type="guint16"/>
-      </field>
-      <field name="n_preallocs" writable="1">
-        <type name="uint16" c:type="guint16"/>
-      </field>
-      <field name="instance_init" writable="1">
-        <type name="InstanceInitFunc" c:type="GInstanceInitFunc"/>
-      </field>
-      <field name="value_table" writable="1">
-        <type name="TypeValueTable" c:type="GTypeValueTable*"/>
-      </field>
-    </record>
-    <record name="TypeInstance"
-            c:type="GTypeInstance"
-            doc="An opaque structure used as the base of all type instances.">
-      <field name="g_class" writable="1">
-        <type name="TypeClass" c:type="GTypeClass*"/>
-      </field>
-      <method name="get_private" c:identifier="g_type_instance_get_private">
-        <return-value transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </return-value>
-        <parameters>
-          <parameter name="private_type" transfer-ownership="none">
-            <type name="GType" c:type="GType"/>
-          </parameter>
-        </parameters>
-      </method>
-    </record>
-    <record name="TypeInterface"
-            c:type="GTypeInterface"
-            doc="An opaque structure used as the base of all interface types.">
-      <field name="g_type" writable="1">
-        <type name="GType" c:type="GType"/>
-      </field>
-      <field name="g_instance_type" writable="1">
-        <type name="GType" c:type="GType"/>
-      </field>
-    </record>
-    <callback name="TypeInterfaceCheckFunc"
-              c:type="GTypeInterfaceCheckFunc"
-              doc="A callback called after an interface vtable is initialized.
-See g_type_add_interface_check()."
-              version="2.4">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="check_data" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-        <parameter name="g_iface" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <class name="TypeModule"
-           c:type="GTypeModule"
-           doc="The members of the &lt;structname&gt;GTypeModule&lt;/structname&gt; structure should not
-be accessed directly, except for the @name field."
-           parent="Object"
-           abstract="1"
-           glib:type-name="GTypeModule"
-           glib:get-type="g_type_module_get_type"
-           glib:type-struct="TypeModuleClass">
-      <implements name="TypePlugin"/>
-      <virtual-method name="load">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="unload">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </virtual-method>
-      <method name="use" c:identifier="g_type_module_use">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="unuse" c:identifier="g_type_module_unuse">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="set_name" c:identifier="g_type_module_set_name">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="register_type" c:identifier="g_type_module_register_type">
-        <return-value transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </return-value>
-        <parameters>
-          <parameter name="parent_type" transfer-ownership="none">
-            <type name="GType" c:type="GType"/>
-          </parameter>
-          <parameter name="type_name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="type_info" transfer-ownership="none">
-            <type name="TypeInfo" c:type="GTypeInfo*"/>
-          </parameter>
-          <parameter name="flags" transfer-ownership="none">
-            <type name="TypeFlags" c:type="GTypeFlags"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="add_interface" c:identifier="g_type_module_add_interface">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="instance_type" transfer-ownership="none">
-            <type name="GType" c:type="GType"/>
-          </parameter>
-          <parameter name="interface_type" transfer-ownership="none">
-            <type name="GType" c:type="GType"/>
-          </parameter>
-          <parameter name="interface_info" transfer-ownership="none">
-            <type name="InterfaceInfo" c:type="GInterfaceInfo*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="register_enum" c:identifier="g_type_module_register_enum">
-        <return-value transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </return-value>
-        <parameters>
-          <parameter name="name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="const_static_values" transfer-ownership="none">
-            <type name="EnumValue" c:type="GEnumValue*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="register_flags"
-              c:identifier="g_type_module_register_flags">
-        <return-value transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </return-value>
-        <parameters>
-          <parameter name="name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="const_static_values" transfer-ownership="none">
-            <type name="FlagsValue" c:type="GFlagsValue*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <field name="parent_instance">
-        <type name="Object" c:type="GObject"/>
-      </field>
-      <field name="use_count">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <field name="type_infos">
-        <type name="GLib.SList" c:type="GSList*"/>
-      </field>
-      <field name="interface_infos">
-        <type name="GLib.SList" c:type="GSList*"/>
-      </field>
-      <field name="name">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-    </class>
-    <record name="TypeModuleClass"
-            c:type="GTypeModuleClass"
-            glib:is-gtype-struct-for="TypeModule"
-            doc="g_type_module_register_type().
-In order to implement dynamic loading of types based on #GTypeModule,
-the @load and @unload functions in #GTypeModuleClass must be implemented.">
-      <field name="parent_class">
-        <type name="ObjectClass" c:type="GObjectClass"/>
-      </field>
-      <field name="load">
-        <callback name="load" c:type="load">
-          <return-value transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="module" transfer-ownership="none">
-              <type name="TypeModule" c:type="GTypeModule*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="unload">
-        <callback name="unload" c:type="unload">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="module" transfer-ownership="none">
-              <type name="TypeModule" c:type="GTypeModule*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="reserved1">
-        <callback name="reserved1" c:type="reserved1">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="reserved2">
-        <callback name="reserved2" c:type="reserved2">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="reserved3">
-        <callback name="reserved3" c:type="reserved3">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="reserved4">
-        <callback name="reserved4" c:type="reserved4">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-    </record>
-    <interface name="TypePlugin"
-               c:type="GTypePlugin"
-               doc="The &lt;structname&gt;GTypePlugin&lt;/structname&gt; typedef is used as a placeholder
-for objects that implement the &lt;structname&gt;GTypePlugin&lt;/structname&gt;
-interface."
-               glib:type-name="GTypePlugin"
-               glib:get-type="g_type_plugin_get_type"
-               glib:type-struct="TypePluginClass">
-      <method name="use" c:identifier="g_type_plugin_use">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="unuse" c:identifier="g_type_plugin_unuse">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="complete_type_info"
-              c:identifier="g_type_plugin_complete_type_info">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="g_type" transfer-ownership="none">
-            <type name="GType" c:type="GType"/>
-          </parameter>
-          <parameter name="info" transfer-ownership="none">
-            <type name="TypeInfo" c:type="GTypeInfo*"/>
-          </parameter>
-          <parameter name="value_table" transfer-ownership="none">
-            <type name="TypeValueTable" c:type="GTypeValueTable*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="complete_interface_info"
-              c:identifier="g_type_plugin_complete_interface_info">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="instance_type" transfer-ownership="none">
-            <type name="GType" c:type="GType"/>
-          </parameter>
-          <parameter name="interface_type" transfer-ownership="none">
-            <type name="GType" c:type="GType"/>
-          </parameter>
-          <parameter name="info" transfer-ownership="none">
-            <type name="InterfaceInfo" c:type="GInterfaceInfo*"/>
-          </parameter>
-        </parameters>
-      </method>
-    </interface>
-    <record name="TypePluginClass"
-            c:type="GTypePluginClass"
-            glib:is-gtype-struct-for="TypePlugin"
-            doc="#GTypeValueTable structs for the type. The structs are initialized
-with &lt;literal&gt;memset(s, 0, sizeof (s))&lt;/literal&gt; before calling
-this function.
-for the interface. The structs is initialized with
-&lt;literal&gt;memset(s, 0, sizeof (s))&lt;/literal&gt; before calling
-this function.
-The #GTypePlugin interface is used by the type system in order to handle
-the lifecycle of dynamically loaded types.">
-      <field name="base_iface">
-        <type name="TypeInterface" c:type="GTypeInterface"/>
-      </field>
-      <field name="use_plugin">
-        <type name="TypePluginUse" c:type="GTypePluginUse"/>
-      </field>
-      <field name="unuse_plugin">
-        <type name="TypePluginUnuse" c:type="GTypePluginUnuse"/>
-      </field>
-      <field name="complete_type_info">
-        <type name="TypePluginCompleteTypeInfo"
-              c:type="GTypePluginCompleteTypeInfo"/>
-      </field>
-      <field name="complete_interface_info">
-        <type name="TypePluginCompleteInterfaceInfo"
-              c:type="GTypePluginCompleteInterfaceInfo"/>
-      </field>
-    </record>
-    <callback name="TypePluginCompleteInterfaceInfo"
-              c:type="GTypePluginCompleteInterfaceInfo"
-              doc="is added
-The type of the @complete_interface_info function of #GTypePluginClass.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="plugin" transfer-ownership="none">
-          <type name="TypePlugin" c:type="GTypePlugin*"/>
-        </parameter>
-        <parameter name="instance_type" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-        <parameter name="interface_type" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-        <parameter name="info" transfer-ownership="none">
-          <type name="InterfaceInfo" c:type="GInterfaceInfo*"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <callback name="TypePluginCompleteTypeInfo"
-              c:type="GTypePluginCompleteTypeInfo"
-              doc="The type of the @complete_type_info function of #GTypePluginClass.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="plugin" transfer-ownership="none">
-          <type name="TypePlugin" c:type="GTypePlugin*"/>
-        </parameter>
-        <parameter name="g_type" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-        <parameter name="info" transfer-ownership="none">
-          <type name="TypeInfo" c:type="GTypeInfo*"/>
-        </parameter>
-        <parameter name="value_table" transfer-ownership="none">
-          <type name="TypeValueTable" c:type="GTypeValueTable*"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <callback name="TypePluginUnuse"
-              c:type="GTypePluginUnuse"
-              doc="The type of the @unuse_plugin function of #GTypePluginClass.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="plugin" transfer-ownership="none">
-          <type name="TypePlugin" c:type="GTypePlugin*"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <callback name="TypePluginUse"
-              c:type="GTypePluginUse"
-              doc="The type of the @use_plugin function of #GTypePluginClass, which gets called
-to increase the use count of @plugin.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="plugin" transfer-ownership="none">
-          <type name="TypePlugin" c:type="GTypePlugin*"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <record name="TypeQuery"
-            c:type="GTypeQuery"
-            doc="A structure holding information for a specific type. It is
-filled in by the g_type_query() function.">
-      <field name="type" writable="1">
-        <type name="GType" c:type="GType"/>
-      </field>
-      <field name="type_name" writable="1">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="class_size" writable="1">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <field name="instance_size" writable="1">
-        <type name="uint" c:type="guint"/>
-      </field>
-    </record>
-    <record name="TypeValueTable"
-            c:type="GTypeValueTable"
-            doc="directly into the value-&gt;data array. The data array of
-the #GValue passed into this function was zero-filled
-with &lt;function&gt;memset()&lt;/function&gt;, so no care has to
-be taken to free any
-old contents. E.g. for the implementation of a string
-value that may never be %NULL, the implementation might
-look like:
-|[
-value-&gt;data[0].v_pointer = g_strdup (&quot;&quot;);
-]|
-data array of the passed in @value. No resources may
-remain allocated through the #GValue contents after
-this function returns. E.g. for our above string type:
-|[
-// only free strings without a specific flag for static storage
-if (!(value-&gt;data[1].v_uint &amp; G_VALUE_NOCOPY_CONTENTS))
-g_free (value-&gt;data[0].v_pointer);
-]|
-and @src_value is a properly setup #GValue of same or
-derived type.
-The purpose of this function is to copy the contents of
-remain valid. String type example:
-|[
-dest_value-&gt;data[0].v_pointer = g_strdup (src_value-&gt;data[0].v_pointer);
-]|
-or strings, return this pointer, so the caller can peek at
-the current contents. To extend on our above string example:
-|[
-return value-&gt;data[0].v_pointer;
-]|
-this value bit-by-bit. Each character in the format represents
-an argument to be collected, and the characters themselves indicate
-the type of the argument. Currently supported arguments are:
-&lt;variablelist&gt;
-&lt;varlistentry&gt;&lt;term /&gt;&lt;listitem&gt;&lt;para&gt;
-&apos;i&apos; - Integers. passed as collect_values[].v_int.
-&lt;/para&gt;&lt;/listitem&gt;&lt;/varlistentry&gt;
-&lt;varlistentry&gt;&lt;term /&gt;&lt;listitem&gt;&lt;para&gt;
-&apos;l&apos; - Longs. passed as collect_values[].v_long.
-&lt;/para&gt;&lt;/listitem&gt;&lt;/varlistentry&gt;
-&lt;varlistentry&gt;&lt;term /&gt;&lt;listitem&gt;&lt;para&gt;
-&apos;d&apos; - Doubles. passed as collect_values[].v_double.
-&lt;/para&gt;&lt;/listitem&gt;&lt;/varlistentry&gt;
-&lt;varlistentry&gt;&lt;term /&gt;&lt;listitem&gt;&lt;para&gt;
-&apos;p&apos; - Pointers. passed as collect_values[].v_pointer.
-&lt;/para&gt;&lt;/listitem&gt;&lt;/varlistentry&gt;
-&lt;/variablelist&gt;
-It should be noted that for variable argument list construction,
-ANSI C promotes every type smaller than an integer to an int, and
-floats to doubles. So for collection of short int or char, &apos;i&apos;
-needs to be used, and for collection of floats &apos;d&apos;.
-values collected from a variable argument list into contents
-suitable for storage in a GValue. This function should setup
-does not allow %NULL pointers, it needs to either spew an error,
-or do an implicit conversion by storing an empty string.
-The @value passed in to this function has a zero-filled data
-array, so just like for value_init() it is guaranteed to not
-contain any old contents that might need freeing.
-and @collect_values is an array of unions #GTypeCValue with
-length @n_collect_values, containing the collected values
-according to @collect_format.
-It may contain the flag %G_VALUE_NOCOPY_CONTENTS indicating,
-that the collected value contents may be considered &quot;static&quot;
-for the duration of the @value lifetime.
-Thus an extra copy of the contents stored in @collect_values is
-not required for assignment to @value.
-For our above string example, we continue with:
-|[
-if (!collect_values[0].v_pointer)
-value-&gt;data[0].v_pointer = g_strdup (&quot;&quot;);
-else if (collect_flags &amp; G_VALUE_NOCOPY_CONTENTS)
-{
-value-&gt;data[0].v_pointer = collect_values[0].v_pointer;
-// keep a flag for the value_free() implementation to not free this string
-value-&gt;data[1].v_uint = G_VALUE_NOCOPY_CONTENTS;
-}
-else
-value-&gt;data[0].v_pointer = g_strdup (collect_values[0].v_pointer);
-return NULL;
-]|
-It should be noted, that it is generally a bad idea to follow the
-#G_VALUE_NOCOPY_CONTENTS hint for reference counted types. Due to
-reentrancy requirements and reference count assertions performed
-by the #GSignal code, reference counts should always be incremented
-for reference counted contents stored in the value-&gt;data array.
-To deviate from our string example for a moment, and taking a look
-at an exemplary implementation for collect_value() of #GObject:
-|[
-if (collect_values[0].v_pointer)
-{
-GObject *object = G_OBJECT (collect_values[0].v_pointer);
-// never honour G_VALUE_NOCOPY_CONTENTS for ref-counted types
-value-&gt;data[0].v_pointer = g_object_ref (object);
-return NULL;
-}
-else
-return g_strdup_printf (&quot;Object passed as invalid NULL pointer&quot;);
-}
-]|
-The reference count for valid objects is always incremented,
-regardless of @collect_flags. For invalid objects, the example
-returns a newly allocated string without altering @value.
-Upon success, collect_value() needs to return %NULL. If, however,
-an error condition occurred, collect_value() may spew an
-error by returning a newly allocated non-%NULL string, giving
-a suitable description of the error condition.
-The calling code makes no assumptions about the @value
-contents being valid upon error returns, @value
-is simply thrown away without further freeing. As such, it is
-a good idea to not allocate #GValue contents, prior to returning
-an error, however, collect_values() is not obliged to return
-a correctly setup @value for error returns, simply because
-any non-%NULL return is considered a fatal condition so further
-program behaviour is undefined.
-analogous to @collect_format. Usually, @lcopy_format string consists
-only of &apos;p&apos;s to provide lcopy_value() with pointers to storage locations.
-arguments passed through a variable argument list which got
-collected into @collect_values according to @lcopy_format.
-and @collect_flags may contain %G_VALUE_NOCOPY_CONTENTS.
-In contrast to collect_value(), lcopy_value() is obliged to
-always properly support %G_VALUE_NOCOPY_CONTENTS.
-Similar to collect_value() the function may prematurely abort
-by returning a newly allocated string describing an error condition.
-To complete the string example:
-|[
-gchar **string_p = collect_values[0].v_pointer;
-if (!string_p)
-return g_strdup_printf (&quot;string location passed as NULL&quot;);
-if (collect_flags &amp; G_VALUE_NOCOPY_CONTENTS)
-*string_p = value-&gt;data[0].v_pointer;
-else
-*string_p = g_strdup (value-&gt;data[0].v_pointer);
-]|
-And an illustrative version of lcopy_value() for
-reference-counted types:
-|[
-GObject **object_p = collect_values[0].v_pointer;
-if (!object_p)
-return g_strdup_printf (&quot;object location passed as NULL&quot;);
-if (!value-&gt;data[0].v_pointer)
-*object_p = NULL;
-else if (collect_flags &amp; G_VALUE_NOCOPY_CONTENTS) // always honour
-*object_p = value-&gt;data[0].v_pointer;
-else
-*object_p = g_object_ref (value-&gt;data[0].v_pointer);
-return NULL;
-]|
-The #GTypeValueTable provides the functions required by the #GValue implementation,
-to serve as a container for values of a type.">
-      <field name="value_init">
-        <type name="any" c:type="pointer"/>
-      </field>
-      <field name="value_free">
-        <type name="any" c:type="pointer"/>
-      </field>
-      <field name="value_copy">
-        <type name="any" c:type="pointer"/>
-      </field>
-      <field name="value_peek_pointer">
-        <type name="any" c:type="pointer"/>
-      </field>
-      <field name="collect_format" writable="1">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="collect_value">
-        <type name="any" c:type="pointer"/>
-      </field>
-      <field name="lcopy_format" writable="1">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="lcopy_value">
-        <type name="any" c:type="pointer"/>
-      </field>
-    </record>
-    <constant name="VALUE_COLLECT_FORMAT_MAX_LENGTH" value="8">
-      <type name="int"/>
-    </constant>
-    <constant name="VALUE_NOCOPY_CONTENTS" value="134217728">
-      <type name="int"/>
-    </constant>
-    <record name="Value"
-            c:type="GValue"
-            doc="An opaque structure used to hold different types of values.
-to functions within a #GTypeValueTable structure, or implementations of
-the g_value_*() API. That is, code portions which implement new fundamental
-types.
-#GValue users can not make any assumptions about how data is stored
-within the 2 element @data union, and the @g_type member should
-only be accessed through the G_VALUE_TYPE() macro."
-            glib:type-name="GValue"
-            glib:get-type="g_value_get_type">
-      <field name="g_type" writable="1">
-        <type name="GType" c:type="GType"/>
-      </field>
-      <field name="data" writable="1">
-        <array zero-terminated="0" c:type="any" fixed-size="2">
-          <type name="any"/>
-        </array>
-      </field>
-      <method name="set_boxed" c:identifier="g_value_set_boxed">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="v_boxed" transfer-ownership="none">
-            <type name="any" c:type="gconstpointer"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_static_boxed" c:identifier="g_value_set_static_boxed">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="v_boxed" transfer-ownership="none">
-            <type name="any" c:type="gconstpointer"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_boxed" c:identifier="g_value_get_boxed">
-        <return-value transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </return-value>
-      </method>
-      <method name="dup_boxed" c:identifier="g_value_dup_boxed">
-        <return-value transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </return-value>
-      </method>
-      <method name="take_boxed" c:identifier="g_value_take_boxed">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="v_boxed" transfer-ownership="none">
-            <type name="any" c:type="gconstpointer"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_boxed_take_ownership"
-              c:identifier="g_value_set_boxed_take_ownership">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="v_boxed" transfer-ownership="none">
-            <type name="any" c:type="gconstpointer"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_enum" c:identifier="g_value_set_enum">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="v_enum" transfer-ownership="none">
-            <type name="int" c:type="gint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_enum" c:identifier="g_value_get_enum">
-        <return-value transfer-ownership="none">
-          <type name="int" c:type="gint"/>
-        </return-value>
-      </method>
-      <method name="set_flags" c:identifier="g_value_set_flags">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="v_flags" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_flags" c:identifier="g_value_get_flags">
-        <return-value transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </return-value>
-      </method>
-      <method name="init" c:identifier="g_value_init">
-        <return-value transfer-ownership="full">
-          <type name="Value" c:type="GValue*"/>
-        </return-value>
-        <parameters>
-          <parameter name="g_type" transfer-ownership="none">
-            <type name="GType" c:type="GType"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="copy" c:identifier="g_value_copy">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="dest_value" transfer-ownership="none">
-            <type name="Value" c:type="GValue*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="reset" c:identifier="g_value_reset">
-        <return-value transfer-ownership="full">
-          <type name="Value" c:type="GValue*"/>
-        </return-value>
-      </method>
-      <method name="unset" c:identifier="g_value_unset">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="set_instance" c:identifier="g_value_set_instance">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="instance" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="fits_pointer" c:identifier="g_value_fits_pointer">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="peek_pointer" c:identifier="g_value_peek_pointer">
-        <return-value transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </return-value>
-      </method>
-      <method name="transform" c:identifier="g_value_transform">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="dest_value" transfer-ownership="none">
-            <type name="Value" c:type="GValue*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_param" c:identifier="g_value_set_param">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="param" transfer-ownership="none">
-            <type name="ParamSpec" c:type="GParamSpec*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_param" c:identifier="g_value_get_param">
-        <return-value transfer-ownership="full">
-          <type name="ParamSpec" c:type="GParamSpec*"/>
-        </return-value>
-      </method>
-      <method name="dup_param" c:identifier="g_value_dup_param">
-        <return-value transfer-ownership="full">
-          <type name="ParamSpec" c:type="GParamSpec*"/>
-        </return-value>
-      </method>
-      <method name="take_param" c:identifier="g_value_take_param">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="param" transfer-ownership="none">
-            <type name="ParamSpec" c:type="GParamSpec*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_param_take_ownership"
-              c:identifier="g_value_set_param_take_ownership">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="param" transfer-ownership="none">
-            <type name="ParamSpec" c:type="GParamSpec*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_object" c:identifier="g_value_set_object">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="v_object" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_object" c:identifier="g_value_get_object">
-        <return-value transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </return-value>
-      </method>
-      <method name="dup_object" c:identifier="g_value_dup_object">
-        <return-value transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </return-value>
-      </method>
-      <method name="take_object" c:identifier="g_value_take_object">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="v_object" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_object_take_ownership"
-              c:identifier="g_value_set_object_take_ownership">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="v_object" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_char" c:identifier="g_value_set_char">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="v_char" transfer-ownership="none">
-            <type name="int8" c:type="gchar"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_char" c:identifier="g_value_get_char">
-        <return-value transfer-ownership="none">
-          <type name="int8" c:type="gchar"/>
-        </return-value>
-      </method>
-      <method name="set_uchar" c:identifier="g_value_set_uchar">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="v_uchar" transfer-ownership="none">
-            <type name="uint8" c:type="guchar"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_uchar" c:identifier="g_value_get_uchar">
-        <return-value transfer-ownership="none">
-          <type name="uint8" c:type="guchar"/>
-        </return-value>
-      </method>
-      <method name="set_boolean" c:identifier="g_value_set_boolean">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="v_boolean" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_boolean" c:identifier="g_value_get_boolean">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="set_int" c:identifier="g_value_set_int">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="v_int" transfer-ownership="none">
-            <type name="int" c:type="gint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_int" c:identifier="g_value_get_int">
-        <return-value transfer-ownership="none">
-          <type name="int" c:type="gint"/>
-        </return-value>
-      </method>
-      <method name="set_uint" c:identifier="g_value_set_uint">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="v_uint" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_uint" c:identifier="g_value_get_uint">
-        <return-value transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </return-value>
-      </method>
-      <method name="set_long" c:identifier="g_value_set_long">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="v_long" transfer-ownership="none">
-            <type name="long" c:type="glong"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_long" c:identifier="g_value_get_long">
-        <return-value transfer-ownership="none">
-          <type name="long" c:type="glong"/>
-        </return-value>
-      </method>
-      <method name="set_ulong" c:identifier="g_value_set_ulong">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="v_ulong" transfer-ownership="none">
-            <type name="ulong" c:type="gulong"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_ulong" c:identifier="g_value_get_ulong">
-        <return-value transfer-ownership="none">
-          <type name="ulong" c:type="gulong"/>
-        </return-value>
-      </method>
-      <method name="set_int64" c:identifier="g_value_set_int64">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="v_int64" transfer-ownership="none">
-            <type name="int64" c:type="gint64"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_int64" c:identifier="g_value_get_int64">
-        <return-value transfer-ownership="none">
-          <type name="int64" c:type="gint64"/>
-        </return-value>
-      </method>
-      <method name="set_uint64" c:identifier="g_value_set_uint64">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="v_uint64" transfer-ownership="none">
-            <type name="uint64" c:type="guint64"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_uint64" c:identifier="g_value_get_uint64">
-        <return-value transfer-ownership="none">
-          <type name="uint64" c:type="guint64"/>
-        </return-value>
-      </method>
-      <method name="set_float" c:identifier="g_value_set_float">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="v_float" transfer-ownership="none">
-            <type name="float" c:type="gfloat"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_float" c:identifier="g_value_get_float">
-        <return-value transfer-ownership="none">
-          <type name="float" c:type="gfloat"/>
-        </return-value>
-      </method>
-      <method name="set_double" c:identifier="g_value_set_double">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="v_double" transfer-ownership="none">
-            <type name="double" c:type="gdouble"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_double" c:identifier="g_value_get_double">
-        <return-value transfer-ownership="none">
-          <type name="double" c:type="gdouble"/>
-        </return-value>
-      </method>
-      <method name="set_string" c:identifier="g_value_set_string">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="v_string" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_static_string"
-              c:identifier="g_value_set_static_string">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="v_string" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_string" c:identifier="g_value_get_string">
-        <return-value transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-      </method>
-      <method name="dup_string" c:identifier="g_value_dup_string">
-        <return-value transfer-ownership="full">
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-      </method>
-      <method name="set_pointer" c:identifier="g_value_set_pointer">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="v_pointer" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_pointer" c:identifier="g_value_get_pointer">
-        <return-value transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </return-value>
-      </method>
-      <method name="set_gtype" c:identifier="g_value_set_gtype">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="v_gtype" transfer-ownership="none">
-            <type name="GType" c:type="GType"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_gtype" c:identifier="g_value_get_gtype">
-        <return-value transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </return-value>
-      </method>
-      <method name="take_string" c:identifier="g_value_take_string">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="v_string" transfer-ownership="full">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_string_take_ownership"
-              c:identifier="g_value_set_string_take_ownership">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="v_string" transfer-ownership="full">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-    </record>
-    <record name="ValueArray"
-            c:type="GValueArray"
-            doc="A #GValueArray contains an array of #GValue elements."
-            glib:type-name="GValueArray"
-            glib:get-type="g_value_array_get_type">
-      <field name="n_values" writable="1">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <field name="values" writable="1">
-        <type name="Value" c:type="GValue*"/>
-      </field>
-      <field name="n_prealloced" writable="1">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <constructor name="new" c:identifier="g_value_array_new">
-        <return-value transfer-ownership="full">
-          <type name="ValueArray" c:type="GValueArray*"/>
-        </return-value>
-        <parameters>
-          <parameter name="n_prealloced" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <method name="get_nth" c:identifier="g_value_array_get_nth">
-        <return-value transfer-ownership="full">
-          <type name="Value" c:type="GValue*"/>
-        </return-value>
-        <parameters>
-          <parameter name="index_" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="free" c:identifier="g_value_array_free">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="copy" c:identifier="g_value_array_copy">
-        <return-value transfer-ownership="full">
-          <type name="ValueArray" c:type="GValueArray*"/>
-        </return-value>
-      </method>
-      <method name="prepend" c:identifier="g_value_array_prepend">
-        <return-value transfer-ownership="full">
-          <type name="ValueArray" c:type="GValueArray*"/>
-        </return-value>
-        <parameters>
-          <parameter name="value" transfer-ownership="none">
-            <type name="Value" c:type="GValue*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="append" c:identifier="g_value_array_append">
-        <return-value transfer-ownership="full">
-          <type name="ValueArray" c:type="GValueArray*"/>
-        </return-value>
-        <parameters>
-          <parameter name="value" transfer-ownership="none">
-            <type name="Value" c:type="GValue*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="insert" c:identifier="g_value_array_insert">
-        <return-value transfer-ownership="full">
-          <type name="ValueArray" c:type="GValueArray*"/>
-        </return-value>
-        <parameters>
-          <parameter name="index_" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <type name="Value" c:type="GValue*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="remove" c:identifier="g_value_array_remove">
-        <return-value transfer-ownership="full">
-          <type name="ValueArray" c:type="GValueArray*"/>
-        </return-value>
-        <parameters>
-          <parameter name="index_" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="sort" c:identifier="g_value_array_sort">
-        <return-value transfer-ownership="full">
-          <type name="ValueArray" c:type="GValueArray*"/>
-        </return-value>
-        <parameters>
-          <parameter name="compare_func"
-                     transfer-ownership="none"
-                     scope="call">
-            <type name="GLib.CompareFunc" c:type="GCompareFunc"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="sort_with_data"
-              c:identifier="g_value_array_sort_with_data">
-        <return-value transfer-ownership="full">
-          <type name="ValueArray" c:type="GValueArray*"/>
-        </return-value>
-        <parameters>
-          <parameter name="compare_func"
-                     transfer-ownership="none"
-                     scope="call"
-                     closure="2">
-            <type name="GLib.CompareDataFunc" c:type="GCompareDataFunc"/>
-          </parameter>
-          <parameter name="user_data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </method>
-    </record>
-    <callback name="ValueTransform"
-              c:type="GValueTransform"
-              doc="The type of value transformation functions which can be registered with
-g_value_register_transform_func().">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="src_value" transfer-ownership="none">
-          <type name="Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="dest_value" transfer-ownership="none">
-          <type name="Value" c:type="GValue*"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <callback name="WeakNotify"
-              c:type="GWeakNotify"
-              doc="A #GWeakNotify function can be added to an object as a callback that gets
-triggered when the object is finalized. Since the object is already being
-finalized when the #GWeakNotify is called, there&apos;s not much you could do
-with the object, apart from e.g. using its adress as hash-index or the like.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="data" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-        <parameter name="where_the_object_was" transfer-ownership="none">
-          <type name="Object" c:type="GObject*"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <function name="boxed_copy" c:identifier="g_boxed_copy">
-      <return-value transfer-ownership="none">
-        <type name="any" c:type="gpointer"/>
-      </return-value>
-      <parameters>
-        <parameter name="boxed_type" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-        <parameter name="src_boxed" transfer-ownership="none">
-          <type name="any" c:type="gconstpointer"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="boxed_free" c:identifier="g_boxed_free">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="boxed_type" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-        <parameter name="boxed" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="boxed_type_init" c:identifier="g_boxed_type_init">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-    </function>
-    <function name="boxed_type_register_static"
-              c:identifier="g_boxed_type_register_static">
-      <return-value transfer-ownership="none">
-        <type name="GType" c:type="GType"/>
-      </return-value>
-      <parameters>
-        <parameter name="name" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="boxed_copy" transfer-ownership="none" scope="call">
-          <type name="BoxedCopyFunc" c:type="GBoxedCopyFunc"/>
-        </parameter>
-        <parameter name="boxed_free" transfer-ownership="none" scope="call">
-          <type name="BoxedFreeFunc" c:type="GBoxedFreeFunc"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="cclosure_new" c:identifier="g_cclosure_new">
-      <return-value transfer-ownership="full">
-        <type name="Closure" c:type="GClosure*"/>
-      </return-value>
-      <parameters>
-        <parameter name="callback_func"
-                   transfer-ownership="none"
-                   scope="call"
-                   closure="1">
-          <type name="Callback" c:type="GCallback"/>
-        </parameter>
-        <parameter name="user_data" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-        <parameter name="destroy_data" transfer-ownership="none" scope="call">
-          <type name="ClosureNotify" c:type="GClosureNotify"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="cclosure_new_object" c:identifier="g_cclosure_new_object">
-      <return-value transfer-ownership="full">
-        <type name="Closure" c:type="GClosure*"/>
-      </return-value>
-      <parameters>
-        <parameter name="callback_func" transfer-ownership="none" scope="call">
-          <type name="Callback" c:type="GCallback"/>
-        </parameter>
-        <parameter name="object" transfer-ownership="none">
-          <type name="Object" c:type="GObject*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="cclosure_new_object_swap"
-              c:identifier="g_cclosure_new_object_swap">
-      <return-value transfer-ownership="full">
-        <type name="Closure" c:type="GClosure*"/>
-      </return-value>
-      <parameters>
-        <parameter name="callback_func" transfer-ownership="none" scope="call">
-          <type name="Callback" c:type="GCallback"/>
-        </parameter>
-        <parameter name="object" transfer-ownership="none">
-          <type name="Object" c:type="GObject*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="cclosure_new_swap" c:identifier="g_cclosure_new_swap">
-      <return-value transfer-ownership="full">
-        <type name="Closure" c:type="GClosure*"/>
-      </return-value>
-      <parameters>
-        <parameter name="callback_func"
-                   transfer-ownership="none"
-                   scope="call"
-                   closure="1">
-          <type name="Callback" c:type="GCallback"/>
-        </parameter>
-        <parameter name="user_data" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-        <parameter name="destroy_data" transfer-ownership="none" scope="call">
-          <type name="ClosureNotify" c:type="GClosureNotify"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="enum_complete_type_info"
-              c:identifier="g_enum_complete_type_info">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="g_enum_type" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-        <parameter name="info" transfer-ownership="none">
-          <type name="TypeInfo" c:type="GTypeInfo*"/>
-        </parameter>
-        <parameter name="const_values" transfer-ownership="none">
-          <type name="EnumValue" c:type="GEnumValue*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="enum_get_value" c:identifier="g_enum_get_value">
-      <return-value transfer-ownership="full">
-        <type name="EnumValue" c:type="GEnumValue*"/>
-      </return-value>
-      <parameters>
-        <parameter name="enum_class" transfer-ownership="none">
-          <type name="EnumClass" c:type="GEnumClass*"/>
-        </parameter>
-        <parameter name="value" transfer-ownership="none">
-          <type name="int" c:type="gint"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="enum_get_value_by_name"
-              c:identifier="g_enum_get_value_by_name">
-      <return-value transfer-ownership="full">
-        <type name="EnumValue" c:type="GEnumValue*"/>
-      </return-value>
-      <parameters>
-        <parameter name="enum_class" transfer-ownership="none">
-          <type name="EnumClass" c:type="GEnumClass*"/>
-        </parameter>
-        <parameter name="name" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="enum_get_value_by_nick"
-              c:identifier="g_enum_get_value_by_nick">
-      <return-value transfer-ownership="full">
-        <type name="EnumValue" c:type="GEnumValue*"/>
-      </return-value>
-      <parameters>
-        <parameter name="enum_class" transfer-ownership="none">
-          <type name="EnumClass" c:type="GEnumClass*"/>
-        </parameter>
-        <parameter name="nick" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="enum_register_static"
-              c:identifier="g_enum_register_static">
-      <return-value transfer-ownership="none">
-        <type name="GType" c:type="GType"/>
-      </return-value>
-      <parameters>
-        <parameter name="name" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="const_static_values" transfer-ownership="none">
-          <type name="EnumValue" c:type="GEnumValue*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="enum_types_init" c:identifier="g_enum_types_init">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-    </function>
-    <function name="flags_complete_type_info"
-              c:identifier="g_flags_complete_type_info">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="g_flags_type" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-        <parameter name="info" transfer-ownership="none">
-          <type name="TypeInfo" c:type="GTypeInfo*"/>
-        </parameter>
-        <parameter name="const_values" transfer-ownership="none">
-          <type name="FlagsValue" c:type="GFlagsValue*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="flags_get_first_value"
-              c:identifier="g_flags_get_first_value">
-      <return-value transfer-ownership="full">
-        <type name="FlagsValue" c:type="GFlagsValue*"/>
-      </return-value>
-      <parameters>
-        <parameter name="flags_class" transfer-ownership="none">
-          <type name="FlagsClass" c:type="GFlagsClass*"/>
-        </parameter>
-        <parameter name="value" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="flags_get_value_by_name"
-              c:identifier="g_flags_get_value_by_name">
-      <return-value transfer-ownership="full">
-        <type name="FlagsValue" c:type="GFlagsValue*"/>
-      </return-value>
-      <parameters>
-        <parameter name="flags_class" transfer-ownership="none">
-          <type name="FlagsClass" c:type="GFlagsClass*"/>
-        </parameter>
-        <parameter name="name" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="flags_get_value_by_nick"
-              c:identifier="g_flags_get_value_by_nick">
-      <return-value transfer-ownership="full">
-        <type name="FlagsValue" c:type="GFlagsValue*"/>
-      </return-value>
-      <parameters>
-        <parameter name="flags_class" transfer-ownership="none">
-          <type name="FlagsClass" c:type="GFlagsClass*"/>
-        </parameter>
-        <parameter name="nick" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="flags_register_static"
-              c:identifier="g_flags_register_static">
-      <return-value transfer-ownership="none">
-        <type name="GType" c:type="GType"/>
-      </return-value>
-      <parameters>
-        <parameter name="name" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="const_static_values" transfer-ownership="none">
-          <type name="FlagsValue" c:type="GFlagsValue*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="param_spec_boolean" c:identifier="g_param_spec_boolean">
-      <return-value transfer-ownership="full">
-        <type name="ParamSpec" c:type="GParamSpec*"/>
-      </return-value>
-      <parameters>
-        <parameter name="name" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="nick" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="blurb" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="default_value" transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </parameter>
-        <parameter name="flags" transfer-ownership="none">
-          <type name="ParamFlags" c:type="GParamFlags"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="param_spec_boxed" c:identifier="g_param_spec_boxed">
-      <return-value transfer-ownership="full">
-        <type name="ParamSpec" c:type="GParamSpec*"/>
-      </return-value>
-      <parameters>
-        <parameter name="name" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="nick" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="blurb" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="boxed_type" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-        <parameter name="flags" transfer-ownership="none">
-          <type name="ParamFlags" c:type="GParamFlags"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="param_spec_double" c:identifier="g_param_spec_double">
-      <return-value transfer-ownership="full">
-        <type name="ParamSpec" c:type="GParamSpec*"/>
-      </return-value>
-      <parameters>
-        <parameter name="name" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="nick" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="blurb" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="minimum" transfer-ownership="none">
-          <type name="double" c:type="gdouble"/>
-        </parameter>
-        <parameter name="maximum" transfer-ownership="none">
-          <type name="double" c:type="gdouble"/>
-        </parameter>
-        <parameter name="default_value" transfer-ownership="none">
-          <type name="double" c:type="gdouble"/>
-        </parameter>
-        <parameter name="flags" transfer-ownership="none">
-          <type name="ParamFlags" c:type="GParamFlags"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="param_spec_enum" c:identifier="g_param_spec_enum">
-      <return-value transfer-ownership="full">
-        <type name="ParamSpec" c:type="GParamSpec*"/>
-      </return-value>
-      <parameters>
-        <parameter name="name" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="nick" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="blurb" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="enum_type" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-        <parameter name="default_value" transfer-ownership="none">
-          <type name="int" c:type="gint"/>
-        </parameter>
-        <parameter name="flags" transfer-ownership="none">
-          <type name="ParamFlags" c:type="GParamFlags"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="param_spec_flags" c:identifier="g_param_spec_flags">
-      <return-value transfer-ownership="full">
-        <type name="ParamSpec" c:type="GParamSpec*"/>
-      </return-value>
-      <parameters>
-        <parameter name="name" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="nick" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="blurb" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="flags_type" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-        <parameter name="default_value" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-        <parameter name="flags" transfer-ownership="none">
-          <type name="ParamFlags" c:type="GParamFlags"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="param_spec_float" c:identifier="g_param_spec_float">
-      <return-value transfer-ownership="full">
-        <type name="ParamSpec" c:type="GParamSpec*"/>
-      </return-value>
-      <parameters>
-        <parameter name="name" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="nick" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="blurb" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="minimum" transfer-ownership="none">
-          <type name="float" c:type="gfloat"/>
-        </parameter>
-        <parameter name="maximum" transfer-ownership="none">
-          <type name="float" c:type="gfloat"/>
-        </parameter>
-        <parameter name="default_value" transfer-ownership="none">
-          <type name="float" c:type="gfloat"/>
-        </parameter>
-        <parameter name="flags" transfer-ownership="none">
-          <type name="ParamFlags" c:type="GParamFlags"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="param_spec_gtype" c:identifier="g_param_spec_gtype">
-      <return-value transfer-ownership="full">
-        <type name="ParamSpec" c:type="GParamSpec*"/>
-      </return-value>
-      <parameters>
-        <parameter name="name" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="nick" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="blurb" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="is_a_type" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-        <parameter name="flags" transfer-ownership="none">
-          <type name="ParamFlags" c:type="GParamFlags"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="param_spec_int" c:identifier="g_param_spec_int">
-      <return-value transfer-ownership="full">
-        <type name="ParamSpec" c:type="GParamSpec*"/>
-      </return-value>
-      <parameters>
-        <parameter name="name" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="nick" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="blurb" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="minimum" transfer-ownership="none">
-          <type name="int" c:type="gint"/>
-        </parameter>
-        <parameter name="maximum" transfer-ownership="none">
-          <type name="int" c:type="gint"/>
-        </parameter>
-        <parameter name="default_value" transfer-ownership="none">
-          <type name="int" c:type="gint"/>
-        </parameter>
-        <parameter name="flags" transfer-ownership="none">
-          <type name="ParamFlags" c:type="GParamFlags"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="param_spec_int64" c:identifier="g_param_spec_int64">
-      <return-value transfer-ownership="full">
-        <type name="ParamSpec" c:type="GParamSpec*"/>
-      </return-value>
-      <parameters>
-        <parameter name="name" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="nick" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="blurb" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="minimum" transfer-ownership="none">
-          <type name="int64" c:type="gint64"/>
-        </parameter>
-        <parameter name="maximum" transfer-ownership="none">
-          <type name="int64" c:type="gint64"/>
-        </parameter>
-        <parameter name="default_value" transfer-ownership="none">
-          <type name="int64" c:type="gint64"/>
-        </parameter>
-        <parameter name="flags" transfer-ownership="none">
-          <type name="ParamFlags" c:type="GParamFlags"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="param_spec_internal" c:identifier="g_param_spec_internal">
-      <return-value transfer-ownership="none">
-        <type name="any" c:type="gpointer"/>
-      </return-value>
-      <parameters>
-        <parameter name="param_type" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-        <parameter name="name" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="nick" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="blurb" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="flags" transfer-ownership="none">
-          <type name="ParamFlags" c:type="GParamFlags"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="param_spec_long" c:identifier="g_param_spec_long">
-      <return-value transfer-ownership="full">
-        <type name="ParamSpec" c:type="GParamSpec*"/>
-      </return-value>
-      <parameters>
-        <parameter name="name" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="nick" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="blurb" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="minimum" transfer-ownership="none">
-          <type name="long" c:type="glong"/>
-        </parameter>
-        <parameter name="maximum" transfer-ownership="none">
-          <type name="long" c:type="glong"/>
-        </parameter>
-        <parameter name="default_value" transfer-ownership="none">
-          <type name="long" c:type="glong"/>
-        </parameter>
-        <parameter name="flags" transfer-ownership="none">
-          <type name="ParamFlags" c:type="GParamFlags"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="param_spec_object" c:identifier="g_param_spec_object">
-      <return-value transfer-ownership="full">
-        <type name="ParamSpec" c:type="GParamSpec*"/>
-      </return-value>
-      <parameters>
-        <parameter name="name" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="nick" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="blurb" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="object_type" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-        <parameter name="flags" transfer-ownership="none">
-          <type name="ParamFlags" c:type="GParamFlags"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="param_spec_override" c:identifier="g_param_spec_override">
-      <return-value transfer-ownership="full">
-        <type name="ParamSpec" c:type="GParamSpec*"/>
-      </return-value>
-      <parameters>
-        <parameter name="name" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="overridden" transfer-ownership="none">
-          <type name="ParamSpec" c:type="GParamSpec*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="param_spec_param" c:identifier="g_param_spec_param">
-      <return-value transfer-ownership="full">
-        <type name="ParamSpec" c:type="GParamSpec*"/>
-      </return-value>
-      <parameters>
-        <parameter name="name" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="nick" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="blurb" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="param_type" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-        <parameter name="flags" transfer-ownership="none">
-          <type name="ParamFlags" c:type="GParamFlags"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="param_spec_pointer" c:identifier="g_param_spec_pointer">
-      <return-value transfer-ownership="full">
-        <type name="ParamSpec" c:type="GParamSpec*"/>
-      </return-value>
-      <parameters>
-        <parameter name="name" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="nick" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="blurb" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="flags" transfer-ownership="none">
-          <type name="ParamFlags" c:type="GParamFlags"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="param_spec_string" c:identifier="g_param_spec_string">
-      <return-value transfer-ownership="full">
-        <type name="ParamSpec" c:type="GParamSpec*"/>
-      </return-value>
-      <parameters>
-        <parameter name="name" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="nick" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="blurb" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="default_value" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="flags" transfer-ownership="none">
-          <type name="ParamFlags" c:type="GParamFlags"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="param_spec_types_init"
-              c:identifier="g_param_spec_types_init">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-    </function>
-    <function name="param_spec_uint" c:identifier="g_param_spec_uint">
-      <return-value transfer-ownership="full">
-        <type name="ParamSpec" c:type="GParamSpec*"/>
-      </return-value>
-      <parameters>
-        <parameter name="name" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="nick" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="blurb" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="minimum" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-        <parameter name="maximum" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-        <parameter name="default_value" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-        <parameter name="flags" transfer-ownership="none">
-          <type name="ParamFlags" c:type="GParamFlags"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="param_spec_uint64" c:identifier="g_param_spec_uint64">
-      <return-value transfer-ownership="full">
-        <type name="ParamSpec" c:type="GParamSpec*"/>
-      </return-value>
-      <parameters>
-        <parameter name="name" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="nick" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="blurb" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="minimum" transfer-ownership="none">
-          <type name="uint64" c:type="guint64"/>
-        </parameter>
-        <parameter name="maximum" transfer-ownership="none">
-          <type name="uint64" c:type="guint64"/>
-        </parameter>
-        <parameter name="default_value" transfer-ownership="none">
-          <type name="uint64" c:type="guint64"/>
-        </parameter>
-        <parameter name="flags" transfer-ownership="none">
-          <type name="ParamFlags" c:type="GParamFlags"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="param_spec_ulong" c:identifier="g_param_spec_ulong">
-      <return-value transfer-ownership="full">
-        <type name="ParamSpec" c:type="GParamSpec*"/>
-      </return-value>
-      <parameters>
-        <parameter name="name" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="nick" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="blurb" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="minimum" transfer-ownership="none">
-          <type name="ulong" c:type="gulong"/>
-        </parameter>
-        <parameter name="maximum" transfer-ownership="none">
-          <type name="ulong" c:type="gulong"/>
-        </parameter>
-        <parameter name="default_value" transfer-ownership="none">
-          <type name="ulong" c:type="gulong"/>
-        </parameter>
-        <parameter name="flags" transfer-ownership="none">
-          <type name="ParamFlags" c:type="GParamFlags"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="param_spec_value_array"
-              c:identifier="g_param_spec_value_array">
-      <return-value transfer-ownership="full">
-        <type name="ParamSpec" c:type="GParamSpec*"/>
-      </return-value>
-      <parameters>
-        <parameter name="name" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="nick" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="blurb" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="element_spec" transfer-ownership="none">
-          <type name="ParamSpec" c:type="GParamSpec*"/>
-        </parameter>
-        <parameter name="flags" transfer-ownership="none">
-          <type name="ParamFlags" c:type="GParamFlags"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="param_type_init" c:identifier="g_param_type_init">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-    </function>
-    <function name="param_type_register_static"
-              c:identifier="g_param_type_register_static">
-      <return-value transfer-ownership="none">
-        <type name="GType" c:type="GType"/>
-      </return-value>
-      <parameters>
-        <parameter name="name" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="pspec_info" transfer-ownership="none">
-          <type name="ParamSpecTypeInfo" c:type="GParamSpecTypeInfo*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="param_value_convert" c:identifier="g_param_value_convert">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="pspec" transfer-ownership="none">
-          <type name="ParamSpec" c:type="GParamSpec*"/>
-        </parameter>
-        <parameter name="src_value" transfer-ownership="none">
-          <type name="Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="dest_value" transfer-ownership="none">
-          <type name="Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="strict_validation" transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="param_value_defaults"
-              c:identifier="g_param_value_defaults">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="pspec" transfer-ownership="none">
-          <type name="ParamSpec" c:type="GParamSpec*"/>
-        </parameter>
-        <parameter name="value" transfer-ownership="none">
-          <type name="Value" c:type="GValue*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="param_value_set_default"
-              c:identifier="g_param_value_set_default">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="pspec" transfer-ownership="none">
-          <type name="ParamSpec" c:type="GParamSpec*"/>
-        </parameter>
-        <parameter name="value" transfer-ownership="none">
-          <type name="Value" c:type="GValue*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="param_value_validate"
-              c:identifier="g_param_value_validate">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="pspec" transfer-ownership="none">
-          <type name="ParamSpec" c:type="GParamSpec*"/>
-        </parameter>
-        <parameter name="value" transfer-ownership="none">
-          <type name="Value" c:type="GValue*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="param_values_cmp" c:identifier="g_param_values_cmp">
-      <return-value transfer-ownership="none">
-        <type name="int" c:type="gint"/>
-      </return-value>
-      <parameters>
-        <parameter name="pspec" transfer-ownership="none">
-          <type name="ParamSpec" c:type="GParamSpec*"/>
-        </parameter>
-        <parameter name="value1" transfer-ownership="none">
-          <type name="Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="value2" transfer-ownership="none">
-          <type name="Value" c:type="GValue*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="pointer_type_register_static"
-              c:identifier="g_pointer_type_register_static">
-      <return-value transfer-ownership="none">
-        <type name="GType" c:type="GType"/>
-      </return-value>
-      <parameters>
-        <parameter name="name" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="signal_accumulator_true_handled"
-              c:identifier="g_signal_accumulator_true_handled">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="ihint" transfer-ownership="none">
-          <type name="SignalInvocationHint" c:type="GSignalInvocationHint*"/>
-        </parameter>
-        <parameter name="return_accu" transfer-ownership="none">
-          <type name="Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="handler_return" transfer-ownership="none">
-          <type name="Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="dummy" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="signal_add_emission_hook"
-              c:identifier="g_signal_add_emission_hook">
-      <return-value transfer-ownership="none">
-        <type name="ulong" c:type="gulong"/>
-      </return-value>
-      <parameters>
-        <parameter name="signal_id" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-        <parameter name="detail" transfer-ownership="none">
-          <type name="GLib.Quark" c:type="GQuark"/>
-        </parameter>
-        <parameter name="hook_func"
-                   transfer-ownership="none"
-                   scope="notified"
-                   closure="3"
-                   destroy="4">
-          <type name="SignalEmissionHook" c:type="GSignalEmissionHook"/>
-        </parameter>
-        <parameter name="hook_data" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-        <parameter name="data_destroy" transfer-ownership="none" scope="call">
-          <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="signal_chain_from_overridden"
-              c:identifier="g_signal_chain_from_overridden">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="instance_and_params" transfer-ownership="none">
-          <type name="Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="return_value" transfer-ownership="none">
-          <type name="Value" c:type="GValue*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="signal_chain_from_overridden_handler"
-              c:identifier="g_signal_chain_from_overridden_handler">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="instance" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-        <parameter transfer-ownership="none">
-          <varargs>
-          </varargs>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="signal_connect_closure"
-              c:identifier="g_signal_connect_closure">
-      <return-value transfer-ownership="none">
-        <type name="ulong" c:type="gulong"/>
-      </return-value>
-      <parameters>
-        <parameter name="instance" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-        <parameter name="detailed_signal" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="closure" transfer-ownership="none">
-          <type name="Closure" c:type="GClosure*"/>
-        </parameter>
-        <parameter name="after" transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="signal_connect_closure_by_id"
-              c:identifier="g_signal_connect_closure_by_id">
-      <return-value transfer-ownership="none">
-        <type name="ulong" c:type="gulong"/>
-      </return-value>
-      <parameters>
-        <parameter name="instance" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-        <parameter name="signal_id" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-        <parameter name="detail" transfer-ownership="none">
-          <type name="GLib.Quark" c:type="GQuark"/>
-        </parameter>
-        <parameter name="closure" transfer-ownership="none">
-          <type name="Closure" c:type="GClosure*"/>
-        </parameter>
-        <parameter name="after" transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="signal_connect_data" c:identifier="g_signal_connect_data">
-      <return-value transfer-ownership="none">
-        <type name="ulong" c:type="gulong"/>
-      </return-value>
-      <parameters>
-        <parameter name="instance" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-        <parameter name="detailed_signal" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="c_handler"
-                   transfer-ownership="none"
-                   scope="call"
-                   closure="3">
-          <type name="Callback" c:type="GCallback"/>
-        </parameter>
-        <parameter name="data" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-        <parameter name="destroy_data" transfer-ownership="none" scope="call">
-          <type name="ClosureNotify" c:type="GClosureNotify"/>
-        </parameter>
-        <parameter name="connect_flags" transfer-ownership="none">
-          <type name="ConnectFlags" c:type="GConnectFlags"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="signal_connect_object"
-              c:identifier="g_signal_connect_object">
-      <return-value transfer-ownership="none">
-        <type name="ulong" c:type="gulong"/>
-      </return-value>
-      <parameters>
-        <parameter name="instance" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-        <parameter name="detailed_signal" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="c_handler" transfer-ownership="none" scope="call">
-          <type name="Callback" c:type="GCallback"/>
-        </parameter>
-        <parameter name="gobject" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-        <parameter name="connect_flags" transfer-ownership="none">
-          <type name="ConnectFlags" c:type="GConnectFlags"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="signal_emit" c:identifier="g_signal_emit">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="instance" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-        <parameter name="signal_id" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-        <parameter name="detail" transfer-ownership="none">
-          <type name="GLib.Quark" c:type="GQuark"/>
-        </parameter>
-        <parameter transfer-ownership="none">
-          <varargs>
-          </varargs>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="signal_emit_by_name" c:identifier="g_signal_emit_by_name">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="instance" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-        <parameter name="detailed_signal" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter transfer-ownership="none">
-          <varargs>
-          </varargs>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="signal_emitv" c:identifier="g_signal_emitv">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="instance_and_params" transfer-ownership="none">
-          <type name="Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="signal_id" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-        <parameter name="detail" transfer-ownership="none">
-          <type name="GLib.Quark" c:type="GQuark"/>
-        </parameter>
-        <parameter name="return_value" transfer-ownership="none">
-          <type name="Value" c:type="GValue*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="signal_get_invocation_hint"
-              c:identifier="g_signal_get_invocation_hint">
-      <return-value transfer-ownership="full">
-        <type name="SignalInvocationHint" c:type="GSignalInvocationHint*"/>
-      </return-value>
-      <parameters>
-        <parameter name="instance" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="signal_handler_block"
-              c:identifier="g_signal_handler_block">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="instance" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-        <parameter name="handler_id" transfer-ownership="none">
-          <type name="ulong" c:type="gulong"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="signal_handler_disconnect"
-              c:identifier="g_signal_handler_disconnect">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="instance" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-        <parameter name="handler_id" transfer-ownership="none">
-          <type name="ulong" c:type="gulong"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="signal_handler_find" c:identifier="g_signal_handler_find">
-      <return-value transfer-ownership="none">
-        <type name="ulong" c:type="gulong"/>
-      </return-value>
-      <parameters>
-        <parameter name="instance" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-        <parameter name="mask" transfer-ownership="none">
-          <type name="SignalMatchType" c:type="GSignalMatchType"/>
-        </parameter>
-        <parameter name="signal_id" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-        <parameter name="detail" transfer-ownership="none">
-          <type name="GLib.Quark" c:type="GQuark"/>
-        </parameter>
-        <parameter name="closure" transfer-ownership="none">
-          <type name="Closure" c:type="GClosure*"/>
-        </parameter>
-        <parameter name="func" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-        <parameter name="data" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="signal_handler_is_connected"
-              c:identifier="g_signal_handler_is_connected">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="instance" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-        <parameter name="handler_id" transfer-ownership="none">
-          <type name="ulong" c:type="gulong"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="signal_handler_unblock"
-              c:identifier="g_signal_handler_unblock">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="instance" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-        <parameter name="handler_id" transfer-ownership="none">
-          <type name="ulong" c:type="gulong"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="signal_handlers_block_matched"
-              c:identifier="g_signal_handlers_block_matched">
-      <return-value transfer-ownership="none">
-        <type name="uint" c:type="guint"/>
-      </return-value>
-      <parameters>
-        <parameter name="instance" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-        <parameter name="mask" transfer-ownership="none">
-          <type name="SignalMatchType" c:type="GSignalMatchType"/>
-        </parameter>
-        <parameter name="signal_id" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-        <parameter name="detail" transfer-ownership="none">
-          <type name="GLib.Quark" c:type="GQuark"/>
-        </parameter>
-        <parameter name="closure" transfer-ownership="none">
-          <type name="Closure" c:type="GClosure*"/>
-        </parameter>
-        <parameter name="func" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-        <parameter name="data" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="signal_handlers_destroy"
-              c:identifier="g_signal_handlers_destroy">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="instance" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="signal_handlers_disconnect_matched"
-              c:identifier="g_signal_handlers_disconnect_matched">
-      <return-value transfer-ownership="none">
-        <type name="uint" c:type="guint"/>
-      </return-value>
-      <parameters>
-        <parameter name="instance" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-        <parameter name="mask" transfer-ownership="none">
-          <type name="SignalMatchType" c:type="GSignalMatchType"/>
-        </parameter>
-        <parameter name="signal_id" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-        <parameter name="detail" transfer-ownership="none">
-          <type name="GLib.Quark" c:type="GQuark"/>
-        </parameter>
-        <parameter name="closure" transfer-ownership="none">
-          <type name="Closure" c:type="GClosure*"/>
-        </parameter>
-        <parameter name="func" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-        <parameter name="data" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="signal_handlers_unblock_matched"
-              c:identifier="g_signal_handlers_unblock_matched">
-      <return-value transfer-ownership="none">
-        <type name="uint" c:type="guint"/>
-      </return-value>
-      <parameters>
-        <parameter name="instance" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-        <parameter name="mask" transfer-ownership="none">
-          <type name="SignalMatchType" c:type="GSignalMatchType"/>
-        </parameter>
-        <parameter name="signal_id" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-        <parameter name="detail" transfer-ownership="none">
-          <type name="GLib.Quark" c:type="GQuark"/>
-        </parameter>
-        <parameter name="closure" transfer-ownership="none">
-          <type name="Closure" c:type="GClosure*"/>
-        </parameter>
-        <parameter name="func" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-        <parameter name="data" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="signal_has_handler_pending"
-              c:identifier="g_signal_has_handler_pending">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="instance" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-        <parameter name="signal_id" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-        <parameter name="detail" transfer-ownership="none">
-          <type name="GLib.Quark" c:type="GQuark"/>
-        </parameter>
-        <parameter name="may_be_blocked" transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="signal_init" c:identifier="g_signal_init">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-    </function>
-    <function name="signal_list_ids" c:identifier="g_signal_list_ids">
-      <return-value transfer-ownership="full">
-        <type name="uint" c:type="guint*"/>
-      </return-value>
-      <parameters>
-        <parameter name="itype" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-        <parameter name="n_ids" direction="out" transfer-ownership="full">
-          <type name="uint" c:type="guint*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="signal_lookup" c:identifier="g_signal_lookup">
-      <return-value transfer-ownership="none">
-        <type name="uint" c:type="guint"/>
-      </return-value>
-      <parameters>
-        <parameter name="name" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="itype" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="signal_name" c:identifier="g_signal_name">
-      <return-value transfer-ownership="none">
-        <type name="utf8" c:type="gchar*"/>
-      </return-value>
-      <parameters>
-        <parameter name="signal_id" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="signal_new" c:identifier="g_signal_new">
-      <return-value transfer-ownership="none">
-        <type name="uint" c:type="guint"/>
-      </return-value>
-      <parameters>
-        <parameter name="signal_name" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="itype" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-        <parameter name="signal_flags" transfer-ownership="none">
-          <type name="SignalFlags" c:type="GSignalFlags"/>
-        </parameter>
-        <parameter name="class_offset" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-        <parameter name="accumulator"
-                   transfer-ownership="none"
-                   scope="call"
-                   closure="5">
-          <type name="SignalAccumulator" c:type="GSignalAccumulator"/>
-        </parameter>
-        <parameter name="accu_data" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-        <parameter name="c_marshaller" transfer-ownership="none">
-          <type name="SignalCMarshaller" c:type="GSignalCMarshaller"/>
-        </parameter>
-        <parameter name="return_type" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-        <parameter name="n_params" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-        <parameter transfer-ownership="none">
-          <varargs>
-          </varargs>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="signal_new_class_handler"
-              c:identifier="g_signal_new_class_handler">
-      <return-value transfer-ownership="none">
-        <type name="uint" c:type="guint"/>
-      </return-value>
-      <parameters>
-        <parameter name="signal_name" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="itype" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-        <parameter name="signal_flags" transfer-ownership="none">
-          <type name="SignalFlags" c:type="GSignalFlags"/>
-        </parameter>
-        <parameter name="class_handler" transfer-ownership="none" scope="call">
-          <type name="Callback" c:type="GCallback"/>
-        </parameter>
-        <parameter name="accumulator"
-                   transfer-ownership="none"
-                   scope="call"
-                   closure="5">
-          <type name="SignalAccumulator" c:type="GSignalAccumulator"/>
-        </parameter>
-        <parameter name="accu_data" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-        <parameter name="c_marshaller" transfer-ownership="none">
-          <type name="SignalCMarshaller" c:type="GSignalCMarshaller"/>
-        </parameter>
-        <parameter name="return_type" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-        <parameter name="n_params" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-        <parameter transfer-ownership="none">
-          <varargs>
-          </varargs>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="signal_newv" c:identifier="g_signal_newv">
-      <return-value transfer-ownership="none">
-        <type name="uint" c:type="guint"/>
-      </return-value>
-      <parameters>
-        <parameter name="signal_name" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="itype" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-        <parameter name="signal_flags" transfer-ownership="none">
-          <type name="SignalFlags" c:type="GSignalFlags"/>
-        </parameter>
-        <parameter name="class_closure" transfer-ownership="none">
-          <type name="Closure" c:type="GClosure*"/>
-        </parameter>
-        <parameter name="accumulator"
-                   transfer-ownership="none"
-                   scope="call"
-                   closure="5">
-          <type name="SignalAccumulator" c:type="GSignalAccumulator"/>
-        </parameter>
-        <parameter name="accu_data" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-        <parameter name="c_marshaller" transfer-ownership="none">
-          <type name="SignalCMarshaller" c:type="GSignalCMarshaller"/>
-        </parameter>
-        <parameter name="return_type" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-        <parameter name="n_params" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-        <parameter name="param_types"
-                   direction="out"
-                   transfer-ownership="full">
-          <type name="GType" c:type="GType*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="signal_override_class_closure"
-              c:identifier="g_signal_override_class_closure">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="signal_id" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-        <parameter name="instance_type" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-        <parameter name="class_closure" transfer-ownership="none">
-          <type name="Closure" c:type="GClosure*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="signal_override_class_handler"
-              c:identifier="g_signal_override_class_handler">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="signal_name" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="instance_type" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-        <parameter name="class_handler" transfer-ownership="none" scope="call">
-          <type name="Callback" c:type="GCallback"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="signal_parse_name" c:identifier="g_signal_parse_name">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="detailed_signal" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="itype" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-        <parameter name="signal_id_p"
-                   direction="out"
-                   transfer-ownership="full">
-          <type name="uint" c:type="guint*"/>
-        </parameter>
-        <parameter name="detail_p" transfer-ownership="none">
-          <type name="GLib.Quark" c:type="GQuark*"/>
-        </parameter>
-        <parameter name="force_detail_quark" transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="signal_query" c:identifier="g_signal_query">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="signal_id" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-        <parameter name="query" transfer-ownership="none">
-          <type name="SignalQuery" c:type="GSignalQuery*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="signal_remove_emission_hook"
-              c:identifier="g_signal_remove_emission_hook">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="signal_id" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-        <parameter name="hook_id" transfer-ownership="none">
-          <type name="ulong" c:type="gulong"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="signal_stop_emission"
-              c:identifier="g_signal_stop_emission">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="instance" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-        <parameter name="signal_id" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-        <parameter name="detail" transfer-ownership="none">
-          <type name="GLib.Quark" c:type="GQuark"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="signal_stop_emission_by_name"
-              c:identifier="g_signal_stop_emission_by_name">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="instance" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-        <parameter name="detailed_signal" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="signal_type_cclosure_new"
-              c:identifier="g_signal_type_cclosure_new">
-      <return-value transfer-ownership="full">
-        <type name="Closure" c:type="GClosure*"/>
-      </return-value>
-      <parameters>
-        <parameter name="itype" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-        <parameter name="struct_offset" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="source_set_closure" c:identifier="g_source_set_closure">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="source" transfer-ownership="none">
-          <type name="GLib.Source" c:type="GSource*"/>
-        </parameter>
-        <parameter name="closure" transfer-ownership="none">
-          <type name="Closure" c:type="GClosure*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="strdup_value_contents"
-              c:identifier="g_strdup_value_contents">
-      <return-value transfer-ownership="full">
-        <type name="utf8" c:type="gchar*"/>
-      </return-value>
-      <parameters>
-        <parameter name="value" transfer-ownership="none">
-          <type name="Value" c:type="GValue*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="type_add_class_cache_func"
-              c:identifier="g_type_add_class_cache_func">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="cache_data" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-        <parameter name="cache_func" transfer-ownership="none" scope="call">
-          <type name="TypeClassCacheFunc" c:type="GTypeClassCacheFunc"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="type_add_class_private"
-              c:identifier="g_type_add_class_private">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="class_type" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-        <parameter name="private_size" transfer-ownership="none">
-          <type name="size_t" c:type="gsize"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="type_add_interface_check"
-              c:identifier="g_type_add_interface_check">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="check_data" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-        <parameter name="check_func" transfer-ownership="none" scope="call">
-          <type name="TypeInterfaceCheckFunc"
-                c:type="GTypeInterfaceCheckFunc"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="type_add_interface_dynamic"
-              c:identifier="g_type_add_interface_dynamic">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="instance_type" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-        <parameter name="interface_type" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-        <parameter name="plugin" transfer-ownership="none">
-          <type name="TypePlugin" c:type="GTypePlugin*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="type_add_interface_static"
-              c:identifier="g_type_add_interface_static">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="instance_type" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-        <parameter name="interface_type" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-        <parameter name="info" transfer-ownership="none">
-          <type name="InterfaceInfo" c:type="GInterfaceInfo*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="type_check_class_cast"
-              c:identifier="g_type_check_class_cast">
-      <return-value transfer-ownership="full">
-        <type name="TypeClass" c:type="GTypeClass*"/>
-      </return-value>
-      <parameters>
-        <parameter name="g_class" transfer-ownership="none">
-          <type name="TypeClass" c:type="GTypeClass*"/>
-        </parameter>
-        <parameter name="is_a_type" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="type_check_class_is_a"
-              c:identifier="g_type_check_class_is_a">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="g_class" transfer-ownership="none">
-          <type name="TypeClass" c:type="GTypeClass*"/>
-        </parameter>
-        <parameter name="is_a_type" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="type_check_instance" c:identifier="g_type_check_instance">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="instance" transfer-ownership="none">
-          <type name="TypeInstance" c:type="GTypeInstance*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="type_check_instance_cast"
-              c:identifier="g_type_check_instance_cast">
-      <return-value transfer-ownership="full">
-        <type name="TypeInstance" c:type="GTypeInstance*"/>
-      </return-value>
-      <parameters>
-        <parameter name="instance" transfer-ownership="none">
-          <type name="TypeInstance" c:type="GTypeInstance*"/>
-        </parameter>
-        <parameter name="iface_type" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="type_check_instance_is_a"
-              c:identifier="g_type_check_instance_is_a">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="instance" transfer-ownership="none">
-          <type name="TypeInstance" c:type="GTypeInstance*"/>
-        </parameter>
-        <parameter name="iface_type" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="type_check_is_value_type"
-              c:identifier="g_type_check_is_value_type">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="type" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="type_check_value" c:identifier="g_type_check_value">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="value" transfer-ownership="none">
-          <type name="Value" c:type="GValue*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="type_check_value_holds"
-              c:identifier="g_type_check_value_holds">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="value" transfer-ownership="none">
-          <type name="Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="type" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="type_children" c:identifier="g_type_children">
-      <return-value transfer-ownership="full">
-        <type name="GType" c:type="GType*"/>
-      </return-value>
-      <parameters>
-        <parameter name="type" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-        <parameter name="n_children" direction="out" transfer-ownership="full">
-          <type name="uint" c:type="guint*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="type_class_add_private"
-              c:identifier="g_type_class_add_private">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="g_class" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-        <parameter name="private_size" transfer-ownership="none">
-          <type name="size_t" c:type="gsize"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="type_class_peek" c:identifier="g_type_class_peek">
-      <return-value transfer-ownership="none">
-        <type name="any" c:type="gpointer"/>
-      </return-value>
-      <parameters>
-        <parameter name="type" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="type_class_peek_parent"
-              c:identifier="g_type_class_peek_parent">
-      <return-value transfer-ownership="none">
-        <type name="any" c:type="gpointer"/>
-      </return-value>
-      <parameters>
-        <parameter name="g_class" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="type_class_peek_static"
-              c:identifier="g_type_class_peek_static">
-      <return-value transfer-ownership="none">
-        <type name="any" c:type="gpointer"/>
-      </return-value>
-      <parameters>
-        <parameter name="type" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="type_class_ref" c:identifier="g_type_class_ref">
-      <return-value transfer-ownership="none">
-        <type name="any" c:type="gpointer"/>
-      </return-value>
-      <parameters>
-        <parameter name="type" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="type_class_unref" c:identifier="g_type_class_unref">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="g_class" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="type_class_unref_uncached"
-              c:identifier="g_type_class_unref_uncached">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="g_class" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="type_create_instance"
-              c:identifier="g_type_create_instance">
-      <return-value transfer-ownership="full">
-        <type name="TypeInstance" c:type="GTypeInstance*"/>
-      </return-value>
-      <parameters>
-        <parameter name="type" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="type_default_interface_peek"
-              c:identifier="g_type_default_interface_peek">
-      <return-value transfer-ownership="none">
-        <type name="any" c:type="gpointer"/>
-      </return-value>
-      <parameters>
-        <parameter name="g_type" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="type_default_interface_ref"
-              c:identifier="g_type_default_interface_ref">
-      <return-value transfer-ownership="none">
-        <type name="any" c:type="gpointer"/>
-      </return-value>
-      <parameters>
-        <parameter name="g_type" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="type_default_interface_unref"
-              c:identifier="g_type_default_interface_unref">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="g_iface" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="type_depth" c:identifier="g_type_depth">
-      <return-value transfer-ownership="none">
-        <type name="uint" c:type="guint"/>
-      </return-value>
-      <parameters>
-        <parameter name="type" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="type_free_instance" c:identifier="g_type_free_instance">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="instance" transfer-ownership="none">
-          <type name="TypeInstance" c:type="GTypeInstance*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="type_from_name" c:identifier="g_type_from_name">
-      <return-value transfer-ownership="none">
-        <type name="GType" c:type="GType"/>
-      </return-value>
-      <parameters>
-        <parameter name="name" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="type_fundamental" c:identifier="g_type_fundamental">
-      <return-value transfer-ownership="none">
-        <type name="GType" c:type="GType"/>
-      </return-value>
-      <parameters>
-        <parameter name="type_id" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="type_fundamental_next"
-              c:identifier="g_type_fundamental_next">
-      <return-value transfer-ownership="none">
-        <type name="GType" c:type="GType"/>
-      </return-value>
-    </function>
-    <function name="type_get_plugin" c:identifier="g_type_get_plugin">
-      <return-value transfer-ownership="full">
-        <type name="TypePlugin" c:type="GTypePlugin*"/>
-      </return-value>
-      <parameters>
-        <parameter name="type" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="type_get_qdata" c:identifier="g_type_get_qdata">
-      <return-value transfer-ownership="none">
-        <type name="any" c:type="gpointer"/>
-      </return-value>
-      <parameters>
-        <parameter name="type" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-        <parameter name="quark" transfer-ownership="none">
-          <type name="GLib.Quark" c:type="GQuark"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="type_init" c:identifier="g_type_init">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-    </function>
-    <function name="type_init_with_debug_flags"
-              c:identifier="g_type_init_with_debug_flags">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="debug_flags" transfer-ownership="none">
-          <type name="TypeDebugFlags" c:type="GTypeDebugFlags"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="type_interface_add_prerequisite"
-              c:identifier="g_type_interface_add_prerequisite">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="interface_type" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-        <parameter name="prerequisite_type" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="type_interface_get_plugin"
-              c:identifier="g_type_interface_get_plugin">
-      <return-value transfer-ownership="full">
-        <type name="TypePlugin" c:type="GTypePlugin*"/>
-      </return-value>
-      <parameters>
-        <parameter name="instance_type" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-        <parameter name="interface_type" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="type_interface_peek" c:identifier="g_type_interface_peek">
-      <return-value transfer-ownership="none">
-        <type name="any" c:type="gpointer"/>
-      </return-value>
-      <parameters>
-        <parameter name="instance_class" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-        <parameter name="iface_type" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="type_interface_peek_parent"
-              c:identifier="g_type_interface_peek_parent">
-      <return-value transfer-ownership="none">
-        <type name="any" c:type="gpointer"/>
-      </return-value>
-      <parameters>
-        <parameter name="g_iface" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="type_interface_prerequisites"
-              c:identifier="g_type_interface_prerequisites">
-      <return-value transfer-ownership="full">
-        <type name="GType" c:type="GType*"/>
-      </return-value>
-      <parameters>
-        <parameter name="interface_type" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-        <parameter name="n_prerequisites"
-                   direction="out"
-                   transfer-ownership="full">
-          <type name="uint" c:type="guint*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="type_interfaces" c:identifier="g_type_interfaces">
-      <return-value transfer-ownership="full">
-        <type name="GType" c:type="GType*"/>
-      </return-value>
-      <parameters>
-        <parameter name="type" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-        <parameter name="n_interfaces"
-                   direction="out"
-                   transfer-ownership="full">
-          <type name="uint" c:type="guint*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="type_is_a" c:identifier="g_type_is_a">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="type" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-        <parameter name="is_a_type" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="type_name" c:identifier="g_type_name">
-      <return-value transfer-ownership="none">
-        <type name="utf8" c:type="gchar*"/>
-      </return-value>
-      <parameters>
-        <parameter name="type" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="type_name_from_class"
-              c:identifier="g_type_name_from_class">
-      <return-value transfer-ownership="none">
-        <type name="utf8" c:type="gchar*"/>
-      </return-value>
-      <parameters>
-        <parameter name="g_class" transfer-ownership="none">
-          <type name="TypeClass" c:type="GTypeClass*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="type_name_from_instance"
-              c:identifier="g_type_name_from_instance">
-      <return-value transfer-ownership="none">
-        <type name="utf8" c:type="gchar*"/>
-      </return-value>
-      <parameters>
-        <parameter name="instance" transfer-ownership="none">
-          <type name="TypeInstance" c:type="GTypeInstance*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="type_next_base" c:identifier="g_type_next_base">
-      <return-value transfer-ownership="none">
-        <type name="GType" c:type="GType"/>
-      </return-value>
-      <parameters>
-        <parameter name="leaf_type" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-        <parameter name="root_type" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="type_parent" c:identifier="g_type_parent">
-      <return-value transfer-ownership="none">
-        <type name="GType" c:type="GType"/>
-      </return-value>
-      <parameters>
-        <parameter name="type" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="type_qname" c:identifier="g_type_qname">
-      <return-value transfer-ownership="full">
-        <type name="GLib.Quark" c:type="GQuark"/>
-      </return-value>
-      <parameters>
-        <parameter name="type" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="type_query" c:identifier="g_type_query">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="type" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-        <parameter name="query" transfer-ownership="none">
-          <type name="TypeQuery" c:type="GTypeQuery*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="type_register_dynamic"
-              c:identifier="g_type_register_dynamic">
-      <return-value transfer-ownership="none">
-        <type name="GType" c:type="GType"/>
-      </return-value>
-      <parameters>
-        <parameter name="parent_type" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-        <parameter name="type_name" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="plugin" transfer-ownership="none">
-          <type name="TypePlugin" c:type="GTypePlugin*"/>
-        </parameter>
-        <parameter name="flags" transfer-ownership="none">
-          <type name="TypeFlags" c:type="GTypeFlags"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="type_register_fundamental"
-              c:identifier="g_type_register_fundamental">
-      <return-value transfer-ownership="none">
-        <type name="GType" c:type="GType"/>
-      </return-value>
-      <parameters>
-        <parameter name="type_id" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-        <parameter name="type_name" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="info" transfer-ownership="none">
-          <type name="TypeInfo" c:type="GTypeInfo*"/>
-        </parameter>
-        <parameter name="finfo" transfer-ownership="none">
-          <type name="TypeFundamentalInfo" c:type="GTypeFundamentalInfo*"/>
-        </parameter>
-        <parameter name="flags" transfer-ownership="none">
-          <type name="TypeFlags" c:type="GTypeFlags"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="type_register_static"
-              c:identifier="g_type_register_static">
-      <return-value transfer-ownership="none">
-        <type name="GType" c:type="GType"/>
-      </return-value>
-      <parameters>
-        <parameter name="parent_type" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-        <parameter name="type_name" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="info" transfer-ownership="none">
-          <type name="TypeInfo" c:type="GTypeInfo*"/>
-        </parameter>
-        <parameter name="flags" transfer-ownership="none">
-          <type name="TypeFlags" c:type="GTypeFlags"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="type_register_static_simple"
-              c:identifier="g_type_register_static_simple">
-      <return-value transfer-ownership="none">
-        <type name="GType" c:type="GType"/>
-      </return-value>
-      <parameters>
-        <parameter name="parent_type" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-        <parameter name="type_name" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="class_size" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-        <parameter name="class_init" transfer-ownership="none" scope="call">
-          <type name="ClassInitFunc" c:type="GClassInitFunc"/>
-        </parameter>
-        <parameter name="instance_size" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-        <parameter name="instance_init" transfer-ownership="none" scope="call">
-          <type name="InstanceInitFunc" c:type="GInstanceInitFunc"/>
-        </parameter>
-        <parameter name="flags" transfer-ownership="none">
-          <type name="TypeFlags" c:type="GTypeFlags"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="type_remove_class_cache_func"
-              c:identifier="g_type_remove_class_cache_func">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="cache_data" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-        <parameter name="cache_func" transfer-ownership="none" scope="call">
-          <type name="TypeClassCacheFunc" c:type="GTypeClassCacheFunc"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="type_remove_interface_check"
-              c:identifier="g_type_remove_interface_check">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="check_data" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-        <parameter name="check_func" transfer-ownership="none" scope="call">
-          <type name="TypeInterfaceCheckFunc"
-                c:type="GTypeInterfaceCheckFunc"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="type_set_qdata" c:identifier="g_type_set_qdata">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="type" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-        <parameter name="quark" transfer-ownership="none">
-          <type name="GLib.Quark" c:type="GQuark"/>
-        </parameter>
-        <parameter name="data" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="type_test_flags" c:identifier="g_type_test_flags">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="type" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-        <parameter name="flags" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="type_value_table_peek"
-              c:identifier="g_type_value_table_peek">
-      <return-value transfer-ownership="full">
-        <type name="TypeValueTable" c:type="GTypeValueTable*"/>
-      </return-value>
-      <parameters>
-        <parameter name="type" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="value_c_init" c:identifier="g_value_c_init">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-    </function>
-    <function name="value_register_transform_func"
-              c:identifier="g_value_register_transform_func">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="src_type" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-        <parameter name="dest_type" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-        <parameter name="transform_func"
-                   transfer-ownership="none"
-                   scope="call">
-          <type name="ValueTransform" c:type="GValueTransform"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="value_transforms_init"
-              c:identifier="g_value_transforms_init">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-    </function>
-    <function name="value_type_compatible"
-              c:identifier="g_value_type_compatible">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="src_type" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-        <parameter name="dest_type" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="value_type_transformable"
-              c:identifier="g_value_type_transformable">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="src_type" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-        <parameter name="dest_type" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="value_types_init" c:identifier="g_value_types_init">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-    </function>
-    <function name="variant_get_gtype" c:identifier="g_variant_get_gtype">
-      <return-value transfer-ownership="none">
-        <type name="GType" c:type="GType"/>
-      </return-value>
-    </function>
-    <function name="variant_type_get_gtype"
-              c:identifier="g_variant_type_get_gtype">
-      <return-value transfer-ownership="none">
-        <type name="GType" c:type="GType"/>
-      </return-value>
-    </function>
-  </namespace>
-</repository>