/* Generated by makegalias.pl */

#ifndef DISABLE_VISIBILITY

#include "glibconfig.h"

#ifdef G_HAVE_GNUC_VISIBILITY

#undef IN_FILE
#define IN_FILE defined

#undef IN_HEADER
#define IN_HEADER(x) 1

#if IN_HEADER(__G_ARRAY_H__)
#if IN_FILE(__G_ARRAY_C__)
#undef g_array_append_vals 
extern __typeof (g_array_append_vals) g_array_append_vals __attribute((alias("IA__g_array_append_vals"), visibility("default")));

#undef g_array_free 
extern __typeof (g_array_free) g_array_free __attribute((alias("IA__g_array_free"), visibility("default")));

#undef g_array_insert_vals 
extern __typeof (g_array_insert_vals) g_array_insert_vals __attribute((alias("IA__g_array_insert_vals"), visibility("default")));

#undef g_array_new 
extern __typeof (g_array_new) g_array_new __attribute((alias("IA__g_array_new"), visibility("default")));

#undef g_array_ref 
extern __typeof (g_array_ref) g_array_ref __attribute((alias("IA__g_array_ref"), visibility("default")));

#undef g_array_unref 
extern __typeof (g_array_unref) g_array_unref __attribute((alias("IA__g_array_unref"), visibility("default")));

#undef g_array_get_element_size 
extern __typeof (g_array_get_element_size) g_array_get_element_size __attribute((alias("IA__g_array_get_element_size"), visibility("default")));

#undef g_array_prepend_vals 
extern __typeof (g_array_prepend_vals) g_array_prepend_vals __attribute((alias("IA__g_array_prepend_vals"), visibility("default")));

#undef g_array_remove_index 
extern __typeof (g_array_remove_index) g_array_remove_index __attribute((alias("IA__g_array_remove_index"), visibility("default")));

#undef g_array_remove_index_fast 
extern __typeof (g_array_remove_index_fast) g_array_remove_index_fast __attribute((alias("IA__g_array_remove_index_fast"), visibility("default")));

#undef g_array_remove_range 
extern __typeof (g_array_remove_range) g_array_remove_range __attribute((alias("IA__g_array_remove_range"), visibility("default")));

#undef g_array_set_size 
extern __typeof (g_array_set_size) g_array_set_size __attribute((alias("IA__g_array_set_size"), visibility("default")));

#undef g_array_sized_new 
extern __typeof (g_array_sized_new) g_array_sized_new __attribute((alias("IA__g_array_sized_new"), visibility("default")));

#undef g_array_sort 
extern __typeof (g_array_sort) g_array_sort __attribute((alias("IA__g_array_sort"), visibility("default")));

#undef g_array_sort_with_data 
extern __typeof (g_array_sort_with_data) g_array_sort_with_data __attribute((alias("IA__g_array_sort_with_data"), visibility("default")));

#undef g_byte_array_append 
extern __typeof (g_byte_array_append) g_byte_array_append __attribute((alias("IA__g_byte_array_append"), visibility("default")));

#undef g_byte_array_free 
extern __typeof (g_byte_array_free) g_byte_array_free __attribute((alias("IA__g_byte_array_free"), visibility("default")));

#undef g_byte_array_unref 
extern __typeof (g_byte_array_unref) g_byte_array_unref __attribute((alias("IA__g_byte_array_unref"), visibility("default")));

#undef g_byte_array_ref 
extern __typeof (g_byte_array_ref) g_byte_array_ref __attribute((alias("IA__g_byte_array_ref"), visibility("default")));

#undef g_byte_array_new 
extern __typeof (g_byte_array_new) g_byte_array_new __attribute((alias("IA__g_byte_array_new"), visibility("default")));

#undef g_byte_array_prepend 
extern __typeof (g_byte_array_prepend) g_byte_array_prepend __attribute((alias("IA__g_byte_array_prepend"), visibility("default")));

#undef g_byte_array_remove_index 
extern __typeof (g_byte_array_remove_index) g_byte_array_remove_index __attribute((alias("IA__g_byte_array_remove_index"), visibility("default")));

#undef g_byte_array_remove_index_fast 
extern __typeof (g_byte_array_remove_index_fast) g_byte_array_remove_index_fast __attribute((alias("IA__g_byte_array_remove_index_fast"), visibility("default")));

#undef g_byte_array_remove_range 
extern __typeof (g_byte_array_remove_range) g_byte_array_remove_range __attribute((alias("IA__g_byte_array_remove_range"), visibility("default")));

#undef g_byte_array_set_size 
extern __typeof (g_byte_array_set_size) g_byte_array_set_size __attribute((alias("IA__g_byte_array_set_size"), visibility("default")));

#undef g_byte_array_sized_new 
extern __typeof (g_byte_array_sized_new) g_byte_array_sized_new __attribute((alias("IA__g_byte_array_sized_new"), visibility("default")));

#undef g_byte_array_sort 
extern __typeof (g_byte_array_sort) g_byte_array_sort __attribute((alias("IA__g_byte_array_sort"), visibility("default")));

#undef g_byte_array_sort_with_data 
extern __typeof (g_byte_array_sort_with_data) g_byte_array_sort_with_data __attribute((alias("IA__g_byte_array_sort_with_data"), visibility("default")));

#undef g_ptr_array_add 
extern __typeof (g_ptr_array_add) g_ptr_array_add __attribute((alias("IA__g_ptr_array_add"), visibility("default")));

#undef g_ptr_array_foreach 
extern __typeof (g_ptr_array_foreach) g_ptr_array_foreach __attribute((alias("IA__g_ptr_array_foreach"), visibility("default")));

#undef g_ptr_array_free 
extern __typeof (g_ptr_array_free) g_ptr_array_free __attribute((alias("IA__g_ptr_array_free"), visibility("default")));

#undef g_ptr_array_unref 
extern __typeof (g_ptr_array_unref) g_ptr_array_unref __attribute((alias("IA__g_ptr_array_unref"), visibility("default")));

#undef g_ptr_array_ref 
extern __typeof (g_ptr_array_ref) g_ptr_array_ref __attribute((alias("IA__g_ptr_array_ref"), visibility("default")));

#undef g_ptr_array_new 
extern __typeof (g_ptr_array_new) g_ptr_array_new __attribute((alias("IA__g_ptr_array_new"), visibility("default")));

#undef g_ptr_array_new_with_free_func 
extern __typeof (g_ptr_array_new_with_free_func) g_ptr_array_new_with_free_func __attribute((alias("IA__g_ptr_array_new_with_free_func"), visibility("default")));

#undef g_ptr_array_set_free_func 
extern __typeof (g_ptr_array_set_free_func) g_ptr_array_set_free_func __attribute((alias("IA__g_ptr_array_set_free_func"), visibility("default")));

#undef g_ptr_array_remove 
extern __typeof (g_ptr_array_remove) g_ptr_array_remove __attribute((alias("IA__g_ptr_array_remove"), visibility("default")));

#undef g_ptr_array_remove_fast 
extern __typeof (g_ptr_array_remove_fast) g_ptr_array_remove_fast __attribute((alias("IA__g_ptr_array_remove_fast"), visibility("default")));

#undef g_ptr_array_remove_index 
extern __typeof (g_ptr_array_remove_index) g_ptr_array_remove_index __attribute((alias("IA__g_ptr_array_remove_index"), visibility("default")));

#undef g_ptr_array_remove_index_fast 
extern __typeof (g_ptr_array_remove_index_fast) g_ptr_array_remove_index_fast __attribute((alias("IA__g_ptr_array_remove_index_fast"), visibility("default")));

#undef g_ptr_array_remove_range 
extern __typeof (g_ptr_array_remove_range) g_ptr_array_remove_range __attribute((alias("IA__g_ptr_array_remove_range"), visibility("default")));

#undef g_ptr_array_set_size 
extern __typeof (g_ptr_array_set_size) g_ptr_array_set_size __attribute((alias("IA__g_ptr_array_set_size"), visibility("default")));

#undef g_ptr_array_sized_new 
extern __typeof (g_ptr_array_sized_new) g_ptr_array_sized_new __attribute((alias("IA__g_ptr_array_sized_new"), visibility("default")));

#undef g_ptr_array_sort 
extern __typeof (g_ptr_array_sort) g_ptr_array_sort __attribute((alias("IA__g_ptr_array_sort"), visibility("default")));

#undef g_ptr_array_sort_with_data 
extern __typeof (g_ptr_array_sort_with_data) g_ptr_array_sort_with_data __attribute((alias("IA__g_ptr_array_sort_with_data"), visibility("default")));

#endif
#endif
#if IN_HEADER(__G_ASYNCQUEUE_H__)
#if IN_FILE(__G_ASYNCQUEUE_C__)
#undef g_async_queue_length 
extern __typeof (g_async_queue_length) g_async_queue_length __attribute((alias("IA__g_async_queue_length"), visibility("default")));

#undef g_async_queue_length_unlocked 
extern __typeof (g_async_queue_length_unlocked) g_async_queue_length_unlocked __attribute((alias("IA__g_async_queue_length_unlocked"), visibility("default")));

#undef g_async_queue_lock 
extern __typeof (g_async_queue_lock) g_async_queue_lock __attribute((alias("IA__g_async_queue_lock"), visibility("default")));

#undef g_async_queue_new 
extern __typeof (g_async_queue_new) g_async_queue_new __attribute((alias("IA__g_async_queue_new"), visibility("default")));

#undef g_async_queue_new_full 
extern __typeof (g_async_queue_new_full) g_async_queue_new_full __attribute((alias("IA__g_async_queue_new_full"), visibility("default")));

#undef g_async_queue_pop 
extern __typeof (g_async_queue_pop) g_async_queue_pop __attribute((alias("IA__g_async_queue_pop"), visibility("default")));

#undef g_async_queue_pop_unlocked 
extern __typeof (g_async_queue_pop_unlocked) g_async_queue_pop_unlocked __attribute((alias("IA__g_async_queue_pop_unlocked"), visibility("default")));

#undef g_async_queue_push 
extern __typeof (g_async_queue_push) g_async_queue_push __attribute((alias("IA__g_async_queue_push"), visibility("default")));

#undef g_async_queue_push_unlocked 
extern __typeof (g_async_queue_push_unlocked) g_async_queue_push_unlocked __attribute((alias("IA__g_async_queue_push_unlocked"), visibility("default")));

#undef g_async_queue_push_sorted 
extern __typeof (g_async_queue_push_sorted) g_async_queue_push_sorted __attribute((alias("IA__g_async_queue_push_sorted"), visibility("default")));

#undef g_async_queue_push_sorted_unlocked 
extern __typeof (g_async_queue_push_sorted_unlocked) g_async_queue_push_sorted_unlocked __attribute((alias("IA__g_async_queue_push_sorted_unlocked"), visibility("default")));

#undef g_async_queue_ref 
extern __typeof (g_async_queue_ref) g_async_queue_ref __attribute((alias("IA__g_async_queue_ref"), visibility("default")));

#undef g_async_queue_sort 
extern __typeof (g_async_queue_sort) g_async_queue_sort __attribute((alias("IA__g_async_queue_sort"), visibility("default")));

#undef g_async_queue_sort_unlocked 
extern __typeof (g_async_queue_sort_unlocked) g_async_queue_sort_unlocked __attribute((alias("IA__g_async_queue_sort_unlocked"), visibility("default")));

#undef g_async_queue_timed_pop 
extern __typeof (g_async_queue_timed_pop) g_async_queue_timed_pop __attribute((alias("IA__g_async_queue_timed_pop"), visibility("default")));

#undef g_async_queue_timed_pop_unlocked 
extern __typeof (g_async_queue_timed_pop_unlocked) g_async_queue_timed_pop_unlocked __attribute((alias("IA__g_async_queue_timed_pop_unlocked"), visibility("default")));

#undef g_async_queue_try_pop 
extern __typeof (g_async_queue_try_pop) g_async_queue_try_pop __attribute((alias("IA__g_async_queue_try_pop"), visibility("default")));

#undef g_async_queue_try_pop_unlocked 
extern __typeof (g_async_queue_try_pop_unlocked) g_async_queue_try_pop_unlocked __attribute((alias("IA__g_async_queue_try_pop_unlocked"), visibility("default")));

#undef g_async_queue_unlock 
extern __typeof (g_async_queue_unlock) g_async_queue_unlock __attribute((alias("IA__g_async_queue_unlock"), visibility("default")));

#undef g_async_queue_unref 
extern __typeof (g_async_queue_unref) g_async_queue_unref __attribute((alias("IA__g_async_queue_unref"), visibility("default")));

#ifndef G_DISABLE_DEPRECATED
#undef g_async_queue_ref_unlocked 
extern __typeof (g_async_queue_ref_unlocked) g_async_queue_ref_unlocked __attribute((alias("IA__g_async_queue_ref_unlocked"), visibility("default")));

#undef g_async_queue_unref_and_unlock 
extern __typeof (g_async_queue_unref_and_unlock) g_async_queue_unref_and_unlock __attribute((alias("IA__g_async_queue_unref_and_unlock"), visibility("default")));

#endif
#endif
#endif
#if IN_HEADER(__G_ATOMIC_H__)
#if IN_FILE(__G_ATOMIC_C__)
#undef g_atomic_int_add 
extern __typeof (g_atomic_int_add) g_atomic_int_add __attribute((alias("IA__g_atomic_int_add"), visibility("default")));

#undef g_atomic_int_compare_and_exchange 
extern __typeof (g_atomic_int_compare_and_exchange) g_atomic_int_compare_and_exchange __attribute((alias("IA__g_atomic_int_compare_and_exchange"), visibility("default")));

#undef g_atomic_int_exchange_and_add 
extern __typeof (g_atomic_int_exchange_and_add) g_atomic_int_exchange_and_add __attribute((alias("IA__g_atomic_int_exchange_and_add"), visibility("default")));

#undef g_atomic_pointer_compare_and_exchange 
extern __typeof (g_atomic_pointer_compare_and_exchange) g_atomic_pointer_compare_and_exchange __attribute((alias("IA__g_atomic_pointer_compare_and_exchange"), visibility("default")));

#endif
#endif
#if IN_HEADER(__G_BACKTRACE_H__)
#if IN_FILE(__G_BACKTRACE_C__)
#undef g_on_error_query 
extern __typeof (g_on_error_query) g_on_error_query __attribute((alias("IA__g_on_error_query"), visibility("default")));

#undef g_on_error_stack_trace 
extern __typeof (g_on_error_stack_trace) g_on_error_stack_trace __attribute((alias("IA__g_on_error_stack_trace"), visibility("default")));

#endif
#endif
#if IN_HEADER(__G_BASE64_H__)
#if IN_FILE(__G_BASE64_C__)
#undef g_base64_encode_step 
extern __typeof (g_base64_encode_step) g_base64_encode_step __attribute((alias("IA__g_base64_encode_step"), visibility("default")));

#undef g_base64_encode_close 
extern __typeof (g_base64_encode_close) g_base64_encode_close __attribute((alias("IA__g_base64_encode_close"), visibility("default")));

#undef g_base64_encode 
extern __typeof (g_base64_encode) g_base64_encode __attribute((alias("IA__g_base64_encode"), visibility("default")));

#undef g_base64_decode_step 
extern __typeof (g_base64_decode_step) g_base64_decode_step __attribute((alias("IA__g_base64_decode_step"), visibility("default")));

#undef g_base64_decode 
extern __typeof (g_base64_decode) g_base64_decode __attribute((alias("IA__g_base64_decode"), visibility("default")));

#undef g_base64_decode_inplace 
extern __typeof (g_base64_decode_inplace) g_base64_decode_inplace __attribute((alias("IA__g_base64_decode_inplace"), visibility("default")));

#endif
#endif
#if IN_HEADER(__G_BOOKMARK_FILE_H__)
#if IN_FILE(__G_BOOKMARK_FILE_C__)
#undef g_bookmark_file_error_quark 
extern __typeof (g_bookmark_file_error_quark) g_bookmark_file_error_quark __attribute((alias("IA__g_bookmark_file_error_quark"), visibility("default")));

#undef g_bookmark_file_new 
extern __typeof (g_bookmark_file_new) g_bookmark_file_new __attribute((alias("IA__g_bookmark_file_new"), visibility("default")));

#undef g_bookmark_file_free 
extern __typeof (g_bookmark_file_free) g_bookmark_file_free __attribute((alias("IA__g_bookmark_file_free"), visibility("default")));

#undef g_bookmark_file_load_from_file 
extern __typeof (g_bookmark_file_load_from_file) g_bookmark_file_load_from_file __attribute((alias("IA__g_bookmark_file_load_from_file"), visibility("default")));

#undef g_bookmark_file_load_from_data 
extern __typeof (g_bookmark_file_load_from_data) g_bookmark_file_load_from_data __attribute((alias("IA__g_bookmark_file_load_from_data"), visibility("default")));

#undef g_bookmark_file_load_from_data_dirs 
extern __typeof (g_bookmark_file_load_from_data_dirs) g_bookmark_file_load_from_data_dirs __attribute((alias("IA__g_bookmark_file_load_from_data_dirs"), visibility("default")));

#undef g_bookmark_file_to_data 
extern __typeof (g_bookmark_file_to_data) g_bookmark_file_to_data __attribute((alias("IA__g_bookmark_file_to_data"), visibility("default")));

#undef g_bookmark_file_to_file 
extern __typeof (g_bookmark_file_to_file) g_bookmark_file_to_file __attribute((alias("IA__g_bookmark_file_to_file"), visibility("default")));

#undef g_bookmark_file_set_title 
extern __typeof (g_bookmark_file_set_title) g_bookmark_file_set_title __attribute((alias("IA__g_bookmark_file_set_title"), visibility("default")));

#undef g_bookmark_file_get_title 
extern __typeof (g_bookmark_file_get_title) g_bookmark_file_get_title __attribute((alias("IA__g_bookmark_file_get_title"), visibility("default")));

#undef g_bookmark_file_set_description 
extern __typeof (g_bookmark_file_set_description) g_bookmark_file_set_description __attribute((alias("IA__g_bookmark_file_set_description"), visibility("default")));

#undef g_bookmark_file_get_description 
extern __typeof (g_bookmark_file_get_description) g_bookmark_file_get_description __attribute((alias("IA__g_bookmark_file_get_description"), visibility("default")));

#undef g_bookmark_file_set_mime_type 
extern __typeof (g_bookmark_file_set_mime_type) g_bookmark_file_set_mime_type __attribute((alias("IA__g_bookmark_file_set_mime_type"), visibility("default")));

#undef g_bookmark_file_get_mime_type 
extern __typeof (g_bookmark_file_get_mime_type) g_bookmark_file_get_mime_type __attribute((alias("IA__g_bookmark_file_get_mime_type"), visibility("default")));

#undef g_bookmark_file_set_groups 
extern __typeof (g_bookmark_file_set_groups) g_bookmark_file_set_groups __attribute((alias("IA__g_bookmark_file_set_groups"), visibility("default")));

#undef g_bookmark_file_add_group 
extern __typeof (g_bookmark_file_add_group) g_bookmark_file_add_group __attribute((alias("IA__g_bookmark_file_add_group"), visibility("default")));

#undef g_bookmark_file_has_group 
extern __typeof (g_bookmark_file_has_group) g_bookmark_file_has_group __attribute((alias("IA__g_bookmark_file_has_group"), visibility("default")));

#undef g_bookmark_file_get_groups 
extern __typeof (g_bookmark_file_get_groups) g_bookmark_file_get_groups __attribute((alias("IA__g_bookmark_file_get_groups"), visibility("default")));

#undef g_bookmark_file_add_application 
extern __typeof (g_bookmark_file_add_application) g_bookmark_file_add_application __attribute((alias("IA__g_bookmark_file_add_application"), visibility("default")));

#undef g_bookmark_file_has_application 
extern __typeof (g_bookmark_file_has_application) g_bookmark_file_has_application __attribute((alias("IA__g_bookmark_file_has_application"), visibility("default")));

#undef g_bookmark_file_get_applications 
extern __typeof (g_bookmark_file_get_applications) g_bookmark_file_get_applications __attribute((alias("IA__g_bookmark_file_get_applications"), visibility("default")));

#undef g_bookmark_file_set_app_info 
extern __typeof (g_bookmark_file_set_app_info) g_bookmark_file_set_app_info __attribute((alias("IA__g_bookmark_file_set_app_info"), visibility("default")));

#undef g_bookmark_file_get_app_info 
extern __typeof (g_bookmark_file_get_app_info) g_bookmark_file_get_app_info __attribute((alias("IA__g_bookmark_file_get_app_info"), visibility("default")));

#undef g_bookmark_file_set_is_private 
extern __typeof (g_bookmark_file_set_is_private) g_bookmark_file_set_is_private __attribute((alias("IA__g_bookmark_file_set_is_private"), visibility("default")));

#undef g_bookmark_file_get_is_private 
extern __typeof (g_bookmark_file_get_is_private) g_bookmark_file_get_is_private __attribute((alias("IA__g_bookmark_file_get_is_private"), visibility("default")));

#undef g_bookmark_file_set_icon 
extern __typeof (g_bookmark_file_set_icon) g_bookmark_file_set_icon __attribute((alias("IA__g_bookmark_file_set_icon"), visibility("default")));

#undef g_bookmark_file_get_icon 
extern __typeof (g_bookmark_file_get_icon) g_bookmark_file_get_icon __attribute((alias("IA__g_bookmark_file_get_icon"), visibility("default")));

#undef g_bookmark_file_set_added 
extern __typeof (g_bookmark_file_set_added) g_bookmark_file_set_added __attribute((alias("IA__g_bookmark_file_set_added"), visibility("default")));

#undef g_bookmark_file_get_added 
extern __typeof (g_bookmark_file_get_added) g_bookmark_file_get_added __attribute((alias("IA__g_bookmark_file_get_added"), visibility("default")));

#undef g_bookmark_file_set_modified 
extern __typeof (g_bookmark_file_set_modified) g_bookmark_file_set_modified __attribute((alias("IA__g_bookmark_file_set_modified"), visibility("default")));

#undef g_bookmark_file_get_modified 
extern __typeof (g_bookmark_file_get_modified) g_bookmark_file_get_modified __attribute((alias("IA__g_bookmark_file_get_modified"), visibility("default")));

#undef g_bookmark_file_set_visited 
extern __typeof (g_bookmark_file_set_visited) g_bookmark_file_set_visited __attribute((alias("IA__g_bookmark_file_set_visited"), visibility("default")));

#undef g_bookmark_file_get_visited 
extern __typeof (g_bookmark_file_get_visited) g_bookmark_file_get_visited __attribute((alias("IA__g_bookmark_file_get_visited"), visibility("default")));

#undef g_bookmark_file_has_item 
extern __typeof (g_bookmark_file_has_item) g_bookmark_file_has_item __attribute((alias("IA__g_bookmark_file_has_item"), visibility("default")));

#undef g_bookmark_file_get_size 
extern __typeof (g_bookmark_file_get_size) g_bookmark_file_get_size __attribute((alias("IA__g_bookmark_file_get_size"), visibility("default")));

#undef g_bookmark_file_get_uris 
extern __typeof (g_bookmark_file_get_uris) g_bookmark_file_get_uris __attribute((alias("IA__g_bookmark_file_get_uris"), visibility("default")));

#undef g_bookmark_file_remove_group 
extern __typeof (g_bookmark_file_remove_group) g_bookmark_file_remove_group __attribute((alias("IA__g_bookmark_file_remove_group"), visibility("default")));

#undef g_bookmark_file_remove_application 
extern __typeof (g_bookmark_file_remove_application) g_bookmark_file_remove_application __attribute((alias("IA__g_bookmark_file_remove_application"), visibility("default")));

#undef g_bookmark_file_remove_item 
extern __typeof (g_bookmark_file_remove_item) g_bookmark_file_remove_item __attribute((alias("IA__g_bookmark_file_remove_item"), visibility("default")));

#undef g_bookmark_file_move_item 
extern __typeof (g_bookmark_file_move_item) g_bookmark_file_move_item __attribute((alias("IA__g_bookmark_file_move_item"), visibility("default")));

#endif
#endif
#if IN_HEADER(__G_CACHE_H__)
#if IN_FILE(__G_CACHE_C__)
#undef g_cache_destroy 
extern __typeof (g_cache_destroy) g_cache_destroy __attribute((alias("IA__g_cache_destroy"), visibility("default")));

#undef g_cache_insert 
extern __typeof (g_cache_insert) g_cache_insert __attribute((alias("IA__g_cache_insert"), visibility("default")));

#undef g_cache_key_foreach 
extern __typeof (g_cache_key_foreach) g_cache_key_foreach __attribute((alias("IA__g_cache_key_foreach"), visibility("default")));

#undef g_cache_new 
extern __typeof (g_cache_new) g_cache_new __attribute((alias("IA__g_cache_new"), visibility("default")));

#undef g_cache_remove 
extern __typeof (g_cache_remove) g_cache_remove __attribute((alias("IA__g_cache_remove"), visibility("default")));

#ifndef G_DISABLE_DEPRECATED
#undef g_cache_value_foreach 
extern __typeof (g_cache_value_foreach) g_cache_value_foreach __attribute((alias("IA__g_cache_value_foreach"), visibility("default")));

#endif
#endif
#endif
#if IN_HEADER(__G_CHECKSUM_H__)
#if IN_FILE(__G_CHECKSUM_C__)
#undef g_checksum_type_get_length 
extern __typeof (g_checksum_type_get_length) g_checksum_type_get_length __attribute((alias("IA__g_checksum_type_get_length"), visibility("default")));

#undef g_checksum_new 
extern __typeof (g_checksum_new) g_checksum_new __attribute((alias("IA__g_checksum_new"), visibility("default")));

#undef g_checksum_copy 
extern __typeof (g_checksum_copy) g_checksum_copy __attribute((alias("IA__g_checksum_copy"), visibility("default")));

#undef g_checksum_free 
extern __typeof (g_checksum_free) g_checksum_free __attribute((alias("IA__g_checksum_free"), visibility("default")));

#undef g_checksum_update 
extern __typeof (g_checksum_update) g_checksum_update __attribute((alias("IA__g_checksum_update"), visibility("default")));

#undef g_checksum_reset 
extern __typeof (g_checksum_reset) g_checksum_reset __attribute((alias("IA__g_checksum_reset"), visibility("default")));

#undef g_checksum_get_string 
extern __typeof (g_checksum_get_string) g_checksum_get_string __attribute((alias("IA__g_checksum_get_string"), visibility("default")));

#undef g_checksum_get_digest 
extern __typeof (g_checksum_get_digest) g_checksum_get_digest __attribute((alias("IA__g_checksum_get_digest"), visibility("default")));

#undef g_compute_checksum_for_data 
extern __typeof (g_compute_checksum_for_data) g_compute_checksum_for_data __attribute((alias("IA__g_compute_checksum_for_data"), visibility("default")));

#undef g_compute_checksum_for_string 
extern __typeof (g_compute_checksum_for_string) g_compute_checksum_for_string __attribute((alias("IA__g_compute_checksum_for_string"), visibility("default")));

#endif
#endif
#if IN_HEADER(__G_COMPLETION_H__)
#if IN_FILE(__G_COMPLETION_C__)
#undef g_completion_add_items 
extern __typeof (g_completion_add_items) g_completion_add_items __attribute((alias("IA__g_completion_add_items"), visibility("default")));

#undef g_completion_clear_items 
extern __typeof (g_completion_clear_items) g_completion_clear_items __attribute((alias("IA__g_completion_clear_items"), visibility("default")));

#undef g_completion_complete 
extern __typeof (g_completion_complete) g_completion_complete __attribute((alias("IA__g_completion_complete"), visibility("default")));

#undef g_completion_complete_utf8 
extern __typeof (g_completion_complete_utf8) g_completion_complete_utf8 __attribute((alias("IA__g_completion_complete_utf8"), visibility("default")));

#undef g_completion_free 
extern __typeof (g_completion_free) g_completion_free __attribute((alias("IA__g_completion_free"), visibility("default")));

#undef g_completion_new 
extern __typeof (g_completion_new) g_completion_new __attribute((alias("IA__g_completion_new"), visibility("default")));

#undef g_completion_remove_items 
extern __typeof (g_completion_remove_items) g_completion_remove_items __attribute((alias("IA__g_completion_remove_items"), visibility("default")));

#undef g_completion_set_compare 
extern __typeof (g_completion_set_compare) g_completion_set_compare __attribute((alias("IA__g_completion_set_compare"), visibility("default")));

#endif
#endif
#if IN_HEADER(__G_CONVERT_H__)
#if IN_FILE(__G_CONVERT_C__)
#undef g_get_filename_charsets 
extern __typeof (g_get_filename_charsets) g_get_filename_charsets __attribute((alias("IA__g_get_filename_charsets"), visibility("default")));

#undef g_convert 
extern __typeof (g_convert) g_convert __attribute((alias("IA__g_convert"), visibility("default")));

#undef g_convert_error_quark 
extern __typeof (g_convert_error_quark) g_convert_error_quark __attribute((alias("IA__g_convert_error_quark"), visibility("default")));

#undef g_convert_with_fallback 
extern __typeof (g_convert_with_fallback) g_convert_with_fallback __attribute((alias("IA__g_convert_with_fallback"), visibility("default")));

#undef g_convert_with_iconv 
extern __typeof (g_convert_with_iconv) g_convert_with_iconv __attribute((alias("IA__g_convert_with_iconv"), visibility("default")));

#undef g_iconv 
extern __typeof (g_iconv) g_iconv __attribute((alias("IA__g_iconv"), visibility("default")));

#undef g_iconv_close 
extern __typeof (g_iconv_close) g_iconv_close __attribute((alias("IA__g_iconv_close"), visibility("default")));

#undef g_iconv_open 
extern __typeof (g_iconv_open) g_iconv_open __attribute((alias("IA__g_iconv_open"), visibility("default")));

#undef g_locale_from_utf8 
extern __typeof (g_locale_from_utf8) g_locale_from_utf8 __attribute((alias("IA__g_locale_from_utf8"), visibility("default")));

#undef g_locale_to_utf8 
extern __typeof (g_locale_to_utf8) g_locale_to_utf8 __attribute((alias("IA__g_locale_to_utf8"), visibility("default")));

#undef g_filename_display_name 
extern __typeof (g_filename_display_name) g_filename_display_name __attribute((alias("IA__g_filename_display_name"), visibility("default")));

#undef g_filename_display_basename 
extern __typeof (g_filename_display_basename) g_filename_display_basename __attribute((alias("IA__g_filename_display_basename"), visibility("default")));

#ifndef _WIN64
#undef g_filename_from_uri 
extern __typeof (g_filename_from_uri) g_filename_from_uri __attribute((alias("IA__g_filename_from_uri"), visibility("default")));

#undef g_filename_from_utf8 
extern __typeof (g_filename_from_utf8) g_filename_from_utf8 __attribute((alias("IA__g_filename_from_utf8"), visibility("default")));

#undef g_filename_to_uri 
extern __typeof (g_filename_to_uri) g_filename_to_uri __attribute((alias("IA__g_filename_to_uri"), visibility("default")));

#undef g_filename_to_utf8 
extern __typeof (g_filename_to_utf8) g_filename_to_utf8 __attribute((alias("IA__g_filename_to_utf8"), visibility("default")));

#endif
#ifdef G_OS_WIN32
#undef g_filename_from_uri_utf8 
extern __typeof (g_filename_from_uri_utf8) g_filename_from_uri_utf8 __attribute((alias("IA__g_filename_from_uri_utf8"), visibility("default")));

#undef g_filename_from_utf8_utf8 
extern __typeof (g_filename_from_utf8_utf8) g_filename_from_utf8_utf8 __attribute((alias("IA__g_filename_from_utf8_utf8"), visibility("default")));

#undef g_filename_to_uri_utf8 
extern __typeof (g_filename_to_uri_utf8) g_filename_to_uri_utf8 __attribute((alias("IA__g_filename_to_uri_utf8"), visibility("default")));

#undef g_filename_to_utf8_utf8 
extern __typeof (g_filename_to_utf8_utf8) g_filename_to_utf8_utf8 __attribute((alias("IA__g_filename_to_utf8_utf8"), visibility("default")));

#endif
#undef g_uri_list_extract_uris 
extern __typeof (g_uri_list_extract_uris) g_uri_list_extract_uris __attribute((alias("IA__g_uri_list_extract_uris"), visibility("default")));

#endif
#endif
#if IN_HEADER(__G_DATASET_H__)
#if IN_FILE(__G_DATASET_C__)
#undef g_datalist_clear 
extern __typeof (g_datalist_clear) g_datalist_clear __attribute((alias("IA__g_datalist_clear"), visibility("default")));

#undef g_datalist_foreach 
extern __typeof (g_datalist_foreach) g_datalist_foreach __attribute((alias("IA__g_datalist_foreach"), visibility("default")));

#undef g_datalist_get_flags 
extern __typeof (g_datalist_get_flags) g_datalist_get_flags __attribute((alias("IA__g_datalist_get_flags"), visibility("default")));

#undef g_datalist_id_get_data 
extern __typeof (g_datalist_id_get_data) g_datalist_id_get_data __attribute((alias("IA__g_datalist_id_get_data"), visibility("default")));

#undef g_datalist_id_remove_no_notify 
extern __typeof (g_datalist_id_remove_no_notify) g_datalist_id_remove_no_notify __attribute((alias("IA__g_datalist_id_remove_no_notify"), visibility("default")));

#undef g_datalist_id_set_data_full 
extern __typeof (g_datalist_id_set_data_full) g_datalist_id_set_data_full __attribute((alias("IA__g_datalist_id_set_data_full"), visibility("default")));

#undef g_datalist_set_flags 
extern __typeof (g_datalist_set_flags) g_datalist_set_flags __attribute((alias("IA__g_datalist_set_flags"), visibility("default")));

#undef g_datalist_unset_flags 
extern __typeof (g_datalist_unset_flags) g_datalist_unset_flags __attribute((alias("IA__g_datalist_unset_flags"), visibility("default")));

#undef g_datalist_init 
extern __typeof (g_datalist_init) g_datalist_init __attribute((alias("IA__g_datalist_init"), visibility("default")));

#undef g_dataset_destroy 
extern __typeof (g_dataset_destroy) g_dataset_destroy __attribute((alias("IA__g_dataset_destroy"), visibility("default")));

#undef g_dataset_foreach 
extern __typeof (g_dataset_foreach) g_dataset_foreach __attribute((alias("IA__g_dataset_foreach"), visibility("default")));

#undef g_dataset_id_get_data 
extern __typeof (g_dataset_id_get_data) g_dataset_id_get_data __attribute((alias("IA__g_dataset_id_get_data"), visibility("default")));

#undef g_dataset_id_remove_no_notify 
extern __typeof (g_dataset_id_remove_no_notify) g_dataset_id_remove_no_notify __attribute((alias("IA__g_dataset_id_remove_no_notify"), visibility("default")));

#undef g_dataset_id_set_data_full 
extern __typeof (g_dataset_id_set_data_full) g_dataset_id_set_data_full __attribute((alias("IA__g_dataset_id_set_data_full"), visibility("default")));

#endif
#endif
#if IN_HEADER(__G_QUARK_H__)
#if IN_FILE(__G_DATASET_C__)
#undef g_quark_from_static_string 
extern __typeof (g_quark_from_static_string) g_quark_from_static_string __attribute((alias("IA__g_quark_from_static_string"), visibility("default")));

#undef g_quark_from_string 
extern __typeof (g_quark_from_string) g_quark_from_string __attribute((alias("IA__g_quark_from_string"), visibility("default")));

#undef g_quark_to_string 
extern __typeof (g_quark_to_string) g_quark_to_string __attribute((alias("IA__g_quark_to_string"), visibility("default")));

#undef g_quark_try_string 
extern __typeof (g_quark_try_string) g_quark_try_string __attribute((alias("IA__g_quark_try_string"), visibility("default")));

#undef g_intern_string 
extern __typeof (g_intern_string) g_intern_string __attribute((alias("IA__g_intern_string"), visibility("default")));

#undef g_intern_static_string 
extern __typeof (g_intern_static_string) g_intern_static_string __attribute((alias("IA__g_intern_static_string"), visibility("default")));

#endif
#endif
#if IN_HEADER(__G_DATE_H__)
#if IN_FILE(__G_DATE_C__)
#undef g_date_add_days 
extern __typeof (g_date_add_days) g_date_add_days __attribute((alias("IA__g_date_add_days"), visibility("default")));

#undef g_date_add_months 
extern __typeof (g_date_add_months) g_date_add_months __attribute((alias("IA__g_date_add_months"), visibility("default")));

#undef g_date_add_years 
extern __typeof (g_date_add_years) g_date_add_years __attribute((alias("IA__g_date_add_years"), visibility("default")));

#undef g_date_clamp 
extern __typeof (g_date_clamp) g_date_clamp __attribute((alias("IA__g_date_clamp"), visibility("default")));

#undef g_date_clear 
extern __typeof (g_date_clear) g_date_clear __attribute((alias("IA__g_date_clear"), visibility("default")));

#undef g_date_compare 
extern __typeof (g_date_compare) g_date_compare __attribute((alias("IA__g_date_compare"), visibility("default")));

#undef g_date_days_between 
extern __typeof (g_date_days_between) g_date_days_between __attribute((alias("IA__g_date_days_between"), visibility("default")));

#undef g_date_free 
extern __typeof (g_date_free) g_date_free __attribute((alias("IA__g_date_free"), visibility("default")));

#undef g_date_get_day 
extern __typeof (g_date_get_day) g_date_get_day __attribute((alias("IA__g_date_get_day"), visibility("default")));

#undef g_date_get_day_of_year 
extern __typeof (g_date_get_day_of_year) g_date_get_day_of_year __attribute((alias("IA__g_date_get_day_of_year"), visibility("default")));

#undef g_date_get_days_in_month 
extern __typeof (g_date_get_days_in_month) g_date_get_days_in_month __attribute((alias("IA__g_date_get_days_in_month"), visibility("default")));

#undef g_date_get_iso8601_week_of_year 
extern __typeof (g_date_get_iso8601_week_of_year) g_date_get_iso8601_week_of_year __attribute((alias("IA__g_date_get_iso8601_week_of_year"), visibility("default")));

#undef g_date_get_julian 
extern __typeof (g_date_get_julian) g_date_get_julian __attribute((alias("IA__g_date_get_julian"), visibility("default")));

#undef g_date_get_monday_week_of_year 
extern __typeof (g_date_get_monday_week_of_year) g_date_get_monday_week_of_year __attribute((alias("IA__g_date_get_monday_week_of_year"), visibility("default")));

#undef g_date_get_monday_weeks_in_year 
extern __typeof (g_date_get_monday_weeks_in_year) g_date_get_monday_weeks_in_year __attribute((alias("IA__g_date_get_monday_weeks_in_year"), visibility("default")));

#undef g_date_get_month 
extern __typeof (g_date_get_month) g_date_get_month __attribute((alias("IA__g_date_get_month"), visibility("default")));

#undef g_date_get_sunday_week_of_year 
extern __typeof (g_date_get_sunday_week_of_year) g_date_get_sunday_week_of_year __attribute((alias("IA__g_date_get_sunday_week_of_year"), visibility("default")));

#undef g_date_get_sunday_weeks_in_year 
extern __typeof (g_date_get_sunday_weeks_in_year) g_date_get_sunday_weeks_in_year __attribute((alias("IA__g_date_get_sunday_weeks_in_year"), visibility("default")));

#undef g_date_get_weekday 
extern __typeof (g_date_get_weekday) g_date_get_weekday __attribute((alias("IA__g_date_get_weekday"), visibility("default")));

#undef g_date_get_year 
extern __typeof (g_date_get_year) g_date_get_year __attribute((alias("IA__g_date_get_year"), visibility("default")));

#undef g_date_is_first_of_month 
extern __typeof (g_date_is_first_of_month) g_date_is_first_of_month __attribute((alias("IA__g_date_is_first_of_month"), visibility("default")));

#undef g_date_is_last_of_month 
extern __typeof (g_date_is_last_of_month) g_date_is_last_of_month __attribute((alias("IA__g_date_is_last_of_month"), visibility("default")));

#undef g_date_is_leap_year 
extern __typeof (g_date_is_leap_year) g_date_is_leap_year __attribute((alias("IA__g_date_is_leap_year"), visibility("default")));

#undef g_date_new 
extern __typeof (g_date_new) g_date_new __attribute((alias("IA__g_date_new"), visibility("default")));

#undef g_date_new_dmy 
extern __typeof (g_date_new_dmy) g_date_new_dmy __attribute((alias("IA__g_date_new_dmy"), visibility("default")));

#undef g_date_new_julian 
extern __typeof (g_date_new_julian) g_date_new_julian __attribute((alias("IA__g_date_new_julian"), visibility("default")));

#undef g_date_order 
extern __typeof (g_date_order) g_date_order __attribute((alias("IA__g_date_order"), visibility("default")));

#undef g_date_set_day 
extern __typeof (g_date_set_day) g_date_set_day __attribute((alias("IA__g_date_set_day"), visibility("default")));

#undef g_date_set_dmy 
extern __typeof (g_date_set_dmy) g_date_set_dmy __attribute((alias("IA__g_date_set_dmy"), visibility("default")));

#undef g_date_set_julian 
extern __typeof (g_date_set_julian) g_date_set_julian __attribute((alias("IA__g_date_set_julian"), visibility("default")));

#undef g_date_set_month 
extern __typeof (g_date_set_month) g_date_set_month __attribute((alias("IA__g_date_set_month"), visibility("default")));

#undef g_date_set_parse 
extern __typeof (g_date_set_parse) g_date_set_parse __attribute((alias("IA__g_date_set_parse"), visibility("default")));

#ifndef G_DISABLE_DEPRECATED
#undef g_date_set_time 
extern __typeof (g_date_set_time) g_date_set_time __attribute((alias("IA__g_date_set_time"), visibility("default")));

#endif
#undef g_date_set_time_t 
extern __typeof (g_date_set_time_t) g_date_set_time_t __attribute((alias("IA__g_date_set_time_t"), visibility("default")));

#undef g_date_set_time_val 
extern __typeof (g_date_set_time_val) g_date_set_time_val __attribute((alias("IA__g_date_set_time_val"), visibility("default")));

#undef g_date_set_year 
extern __typeof (g_date_set_year) g_date_set_year __attribute((alias("IA__g_date_set_year"), visibility("default")));

#undef g_date_strftime 
extern __typeof (g_date_strftime) g_date_strftime __attribute((alias("IA__g_date_strftime"), visibility("default")));

#undef g_date_subtract_days 
extern __typeof (g_date_subtract_days) g_date_subtract_days __attribute((alias("IA__g_date_subtract_days"), visibility("default")));

#undef g_date_subtract_months 
extern __typeof (g_date_subtract_months) g_date_subtract_months __attribute((alias("IA__g_date_subtract_months"), visibility("default")));

#undef g_date_subtract_years 
extern __typeof (g_date_subtract_years) g_date_subtract_years __attribute((alias("IA__g_date_subtract_years"), visibility("default")));

#undef g_date_to_struct_tm 
extern __typeof (g_date_to_struct_tm) g_date_to_struct_tm __attribute((alias("IA__g_date_to_struct_tm"), visibility("default")));

#undef g_date_valid 
extern __typeof (g_date_valid) g_date_valid __attribute((alias("IA__g_date_valid"), visibility("default")));

#undef g_date_valid_day 
extern __typeof (g_date_valid_day) g_date_valid_day __attribute((alias("IA__g_date_valid_day"), visibility("default")));

#undef g_date_valid_dmy 
extern __typeof (g_date_valid_dmy) g_date_valid_dmy __attribute((alias("IA__g_date_valid_dmy"), visibility("default")));

#undef g_date_valid_julian 
extern __typeof (g_date_valid_julian) g_date_valid_julian __attribute((alias("IA__g_date_valid_julian"), visibility("default")));

#undef g_date_valid_month 
extern __typeof (g_date_valid_month) g_date_valid_month __attribute((alias("IA__g_date_valid_month"), visibility("default")));

#undef g_date_valid_weekday 
extern __typeof (g_date_valid_weekday) g_date_valid_weekday __attribute((alias("IA__g_date_valid_weekday"), visibility("default")));

#undef g_date_valid_year 
extern __typeof (g_date_valid_year) g_date_valid_year __attribute((alias("IA__g_date_valid_year"), visibility("default")));

#endif
#endif
#if IN_HEADER(__G_DIR_H__)
#if IN_FILE(__G_DIR_C__)
#undef g_dir_close 
extern __typeof (g_dir_close) g_dir_close __attribute((alias("IA__g_dir_close"), visibility("default")));

#ifndef _WIN64
#undef g_dir_open 
extern __typeof (g_dir_open) g_dir_open __attribute((alias("IA__g_dir_open"), visibility("default")));

#undef g_dir_read_name 
extern __typeof (g_dir_read_name) g_dir_read_name __attribute((alias("IA__g_dir_read_name"), visibility("default")));

#endif
#ifdef G_OS_WIN32
#undef g_dir_open_utf8 
extern __typeof (g_dir_open_utf8) g_dir_open_utf8 __attribute((alias("IA__g_dir_open_utf8"), visibility("default")));

#undef g_dir_read_name_utf8 
extern __typeof (g_dir_read_name_utf8) g_dir_read_name_utf8 __attribute((alias("IA__g_dir_read_name_utf8"), visibility("default")));

#endif
#undef g_dir_rewind 
extern __typeof (g_dir_rewind) g_dir_rewind __attribute((alias("IA__g_dir_rewind"), visibility("default")));

#endif
#endif
#if IN_HEADER(__G_ERROR_H__)
#if IN_FILE(__G_ERROR_C__)
#undef g_clear_error 
extern __typeof (g_clear_error) g_clear_error __attribute((alias("IA__g_clear_error"), visibility("default")));

#undef g_error_copy 
extern __typeof (g_error_copy) g_error_copy __attribute((alias("IA__g_error_copy"), visibility("default")));

#undef g_error_free 
extern __typeof (g_error_free) g_error_free __attribute((alias("IA__g_error_free"), visibility("default")));

#undef g_error_matches 
extern __typeof (g_error_matches) g_error_matches __attribute((alias("IA__g_error_matches"), visibility("default")));

#undef g_error_new 
extern __typeof (g_error_new) g_error_new __attribute((alias("IA__g_error_new"), visibility("default")));

#undef g_error_new_literal 
extern __typeof (g_error_new_literal) g_error_new_literal __attribute((alias("IA__g_error_new_literal"), visibility("default")));

#undef g_error_new_valist 
extern __typeof (g_error_new_valist) g_error_new_valist __attribute((alias("IA__g_error_new_valist"), visibility("default")));

#undef g_propagate_error 
extern __typeof (g_propagate_error) g_propagate_error __attribute((alias("IA__g_propagate_error"), visibility("default")));

#undef g_set_error 
extern __typeof (g_set_error) g_set_error __attribute((alias("IA__g_set_error"), visibility("default")));

#undef g_set_error_literal 
extern __typeof (g_set_error_literal) g_set_error_literal __attribute((alias("IA__g_set_error_literal"), visibility("default")));

#undef g_prefix_error 
extern __typeof (g_prefix_error) g_prefix_error __attribute((alias("IA__g_prefix_error"), visibility("default")));

#undef g_propagate_prefixed_error 
extern __typeof (g_propagate_prefixed_error) g_propagate_prefixed_error __attribute((alias("IA__g_propagate_prefixed_error"), visibility("default")));

#endif
#endif
#if IN_HEADER(__G_FILEUTILS_H__)
#if IN_FILE(__G_FILEUTILS_C__)
#undef g_build_filename 
extern __typeof (g_build_filename) g_build_filename __attribute((alias("IA__g_build_filename"), visibility("default")));

#undef g_build_filenamev 
extern __typeof (g_build_filenamev) g_build_filenamev __attribute((alias("IA__g_build_filenamev"), visibility("default")));

#undef g_build_path 
extern __typeof (g_build_path) g_build_path __attribute((alias("IA__g_build_path"), visibility("default")));

#undef g_build_pathv 
extern __typeof (g_build_pathv) g_build_pathv __attribute((alias("IA__g_build_pathv"), visibility("default")));

#undef g_file_error_from_errno 
extern __typeof (g_file_error_from_errno) g_file_error_from_errno __attribute((alias("IA__g_file_error_from_errno"), visibility("default")));

#undef g_file_error_quark 
extern __typeof (g_file_error_quark) g_file_error_quark __attribute((alias("IA__g_file_error_quark"), visibility("default")));

#ifndef _WIN64
#undef g_file_get_contents 
extern __typeof (g_file_get_contents) g_file_get_contents __attribute((alias("IA__g_file_get_contents"), visibility("default")));

#endif
#undef g_file_set_contents 
extern __typeof (g_file_set_contents) g_file_set_contents __attribute((alias("IA__g_file_set_contents"), visibility("default")));

#ifndef _WIN64
#undef g_file_open_tmp 
extern __typeof (g_file_open_tmp) g_file_open_tmp __attribute((alias("IA__g_file_open_tmp"), visibility("default")));

#undef g_file_test 
extern __typeof (g_file_test) g_file_test __attribute((alias("IA__g_file_test"), visibility("default")));

#endif
#undef g_file_read_link 
extern __typeof (g_file_read_link) g_file_read_link __attribute((alias("IA__g_file_read_link"), visibility("default")));

#undef g_format_size_for_display 
extern __typeof (g_format_size_for_display) g_format_size_for_display __attribute((alias("IA__g_format_size_for_display"), visibility("default")));

#ifndef _WIN64
#undef g_mkstemp 
extern __typeof (g_mkstemp) g_mkstemp __attribute((alias("IA__g_mkstemp"), visibility("default")));

#endif
#undef g_mkstemp_full 
extern __typeof (g_mkstemp_full) g_mkstemp_full __attribute((alias("IA__g_mkstemp_full"), visibility("default")));

#undef g_mkdir_with_parents 
extern __typeof (g_mkdir_with_parents) g_mkdir_with_parents __attribute((alias("IA__g_mkdir_with_parents"), visibility("default")));

#ifdef G_OS_WIN32
#undef g_file_get_contents_utf8 
extern __typeof (g_file_get_contents_utf8) g_file_get_contents_utf8 __attribute((alias("IA__g_file_get_contents_utf8"), visibility("default")));

#undef g_file_open_tmp_utf8 
extern __typeof (g_file_open_tmp_utf8) g_file_open_tmp_utf8 __attribute((alias("IA__g_file_open_tmp_utf8"), visibility("default")));

#undef g_file_test_utf8 
extern __typeof (g_file_test_utf8) g_file_test_utf8 __attribute((alias("IA__g_file_test_utf8"), visibility("default")));

#undef g_mkstemp_utf8 
extern __typeof (g_mkstemp_utf8) g_mkstemp_utf8 __attribute((alias("IA__g_mkstemp_utf8"), visibility("default")));

#endif
#endif
#endif
#if IN_HEADER(__G_HASH_H__)
#if IN_FILE(__G_HASH_C__)
#undef g_hash_table_destroy 
extern __typeof (g_hash_table_destroy) g_hash_table_destroy __attribute((alias("IA__g_hash_table_destroy"), visibility("default")));

#undef g_hash_table_unref 
extern __typeof (g_hash_table_unref) g_hash_table_unref __attribute((alias("IA__g_hash_table_unref"), visibility("default")));

#undef g_hash_table_ref 
extern __typeof (g_hash_table_ref) g_hash_table_ref __attribute((alias("IA__g_hash_table_ref"), visibility("default")));

#undef g_hash_table_find 
extern __typeof (g_hash_table_find) g_hash_table_find __attribute((alias("IA__g_hash_table_find"), visibility("default")));

#undef g_hash_table_foreach 
extern __typeof (g_hash_table_foreach) g_hash_table_foreach __attribute((alias("IA__g_hash_table_foreach"), visibility("default")));

#undef g_hash_table_foreach_remove 
extern __typeof (g_hash_table_foreach_remove) g_hash_table_foreach_remove __attribute((alias("IA__g_hash_table_foreach_remove"), visibility("default")));

#undef g_hash_table_foreach_steal 
extern __typeof (g_hash_table_foreach_steal) g_hash_table_foreach_steal __attribute((alias("IA__g_hash_table_foreach_steal"), visibility("default")));

#undef g_hash_table_get_keys 
extern __typeof (g_hash_table_get_keys) g_hash_table_get_keys __attribute((alias("IA__g_hash_table_get_keys"), visibility("default")));

#undef g_hash_table_get_values 
extern __typeof (g_hash_table_get_values) g_hash_table_get_values __attribute((alias("IA__g_hash_table_get_values"), visibility("default")));

#undef g_hash_table_insert 
extern __typeof (g_hash_table_insert) g_hash_table_insert __attribute((alias("IA__g_hash_table_insert"), visibility("default")));

#undef g_hash_table_lookup 
extern __typeof (g_hash_table_lookup) g_hash_table_lookup __attribute((alias("IA__g_hash_table_lookup"), visibility("default")));

#undef g_hash_table_lookup_extended 
extern __typeof (g_hash_table_lookup_extended) g_hash_table_lookup_extended __attribute((alias("IA__g_hash_table_lookup_extended"), visibility("default")));

#undef g_hash_table_new 
extern __typeof (g_hash_table_new) g_hash_table_new __attribute((alias("IA__g_hash_table_new"), visibility("default")));

#undef g_hash_table_new_full 
extern __typeof (g_hash_table_new_full) g_hash_table_new_full __attribute((alias("IA__g_hash_table_new_full"), visibility("default")));

#undef g_hash_table_remove 
extern __typeof (g_hash_table_remove) g_hash_table_remove __attribute((alias("IA__g_hash_table_remove"), visibility("default")));

#undef g_hash_table_remove_all 
extern __typeof (g_hash_table_remove_all) g_hash_table_remove_all __attribute((alias("IA__g_hash_table_remove_all"), visibility("default")));

#undef g_hash_table_replace 
extern __typeof (g_hash_table_replace) g_hash_table_replace __attribute((alias("IA__g_hash_table_replace"), visibility("default")));

#undef g_hash_table_size 
extern __typeof (g_hash_table_size) g_hash_table_size __attribute((alias("IA__g_hash_table_size"), visibility("default")));

#undef g_hash_table_steal 
extern __typeof (g_hash_table_steal) g_hash_table_steal __attribute((alias("IA__g_hash_table_steal"), visibility("default")));

#undef g_hash_table_steal_all 
extern __typeof (g_hash_table_steal_all) g_hash_table_steal_all __attribute((alias("IA__g_hash_table_steal_all"), visibility("default")));

#undef g_hash_table_iter_init 
extern __typeof (g_hash_table_iter_init) g_hash_table_iter_init __attribute((alias("IA__g_hash_table_iter_init"), visibility("default")));

#undef g_hash_table_iter_next 
extern __typeof (g_hash_table_iter_next) g_hash_table_iter_next __attribute((alias("IA__g_hash_table_iter_next"), visibility("default")));

#undef g_hash_table_iter_get_hash_table 
extern __typeof (g_hash_table_iter_get_hash_table) g_hash_table_iter_get_hash_table __attribute((alias("IA__g_hash_table_iter_get_hash_table"), visibility("default")));

#undef g_hash_table_iter_remove 
extern __typeof (g_hash_table_iter_remove) g_hash_table_iter_remove __attribute((alias("IA__g_hash_table_iter_remove"), visibility("default")));

#undef g_hash_table_iter_steal 
extern __typeof (g_hash_table_iter_steal) g_hash_table_iter_steal __attribute((alias("IA__g_hash_table_iter_steal"), visibility("default")));

#endif
#endif
#if IN_HEADER(__G_HOOK_H__)
#if IN_FILE(__G_HOOK_C__)
#undef g_hook_alloc 
extern __typeof (g_hook_alloc) g_hook_alloc __attribute((alias("IA__g_hook_alloc"), visibility("default")));

#undef g_hook_compare_ids 
extern __typeof (g_hook_compare_ids) g_hook_compare_ids __attribute((alias("IA__g_hook_compare_ids"), visibility("default")));

#undef g_hook_destroy 
extern __typeof (g_hook_destroy) g_hook_destroy __attribute((alias("IA__g_hook_destroy"), visibility("default")));

#undef g_hook_destroy_link 
extern __typeof (g_hook_destroy_link) g_hook_destroy_link __attribute((alias("IA__g_hook_destroy_link"), visibility("default")));

#undef g_hook_find 
extern __typeof (g_hook_find) g_hook_find __attribute((alias("IA__g_hook_find"), visibility("default")));

#undef g_hook_find_data 
extern __typeof (g_hook_find_data) g_hook_find_data __attribute((alias("IA__g_hook_find_data"), visibility("default")));

#undef g_hook_find_func 
extern __typeof (g_hook_find_func) g_hook_find_func __attribute((alias("IA__g_hook_find_func"), visibility("default")));

#undef g_hook_find_func_data 
extern __typeof (g_hook_find_func_data) g_hook_find_func_data __attribute((alias("IA__g_hook_find_func_data"), visibility("default")));

#undef g_hook_first_valid 
extern __typeof (g_hook_first_valid) g_hook_first_valid __attribute((alias("IA__g_hook_first_valid"), visibility("default")));

#undef g_hook_free 
extern __typeof (g_hook_free) g_hook_free __attribute((alias("IA__g_hook_free"), visibility("default")));

#undef g_hook_get 
extern __typeof (g_hook_get) g_hook_get __attribute((alias("IA__g_hook_get"), visibility("default")));

#undef g_hook_insert_before 
extern __typeof (g_hook_insert_before) g_hook_insert_before __attribute((alias("IA__g_hook_insert_before"), visibility("default")));

#undef g_hook_insert_sorted 
extern __typeof (g_hook_insert_sorted) g_hook_insert_sorted __attribute((alias("IA__g_hook_insert_sorted"), visibility("default")));

#undef g_hook_list_clear 
extern __typeof (g_hook_list_clear) g_hook_list_clear __attribute((alias("IA__g_hook_list_clear"), visibility("default")));

#undef g_hook_list_init 
extern __typeof (g_hook_list_init) g_hook_list_init __attribute((alias("IA__g_hook_list_init"), visibility("default")));

#undef g_hook_list_invoke 
extern __typeof (g_hook_list_invoke) g_hook_list_invoke __attribute((alias("IA__g_hook_list_invoke"), visibility("default")));

#undef g_hook_list_invoke_check 
extern __typeof (g_hook_list_invoke_check) g_hook_list_invoke_check __attribute((alias("IA__g_hook_list_invoke_check"), visibility("default")));

#undef g_hook_list_marshal 
extern __typeof (g_hook_list_marshal) g_hook_list_marshal __attribute((alias("IA__g_hook_list_marshal"), visibility("default")));

#undef g_hook_list_marshal_check 
extern __typeof (g_hook_list_marshal_check) g_hook_list_marshal_check __attribute((alias("IA__g_hook_list_marshal_check"), visibility("default")));

#undef g_hook_next_valid 
extern __typeof (g_hook_next_valid) g_hook_next_valid __attribute((alias("IA__g_hook_next_valid"), visibility("default")));

#undef g_hook_prepend 
extern __typeof (g_hook_prepend) g_hook_prepend __attribute((alias("IA__g_hook_prepend"), visibility("default")));

#undef g_hook_ref 
extern __typeof (g_hook_ref) g_hook_ref __attribute((alias("IA__g_hook_ref"), visibility("default")));

#undef g_hook_unref 
extern __typeof (g_hook_unref) g_hook_unref __attribute((alias("IA__g_hook_unref"), visibility("default")));

#endif
#endif
#if IN_HEADER(__G_IOCHANNEL_H__)
#if IN_FILE(__G_IOCHANNEL_C__)
#undef g_io_add_watch 
extern __typeof (g_io_add_watch) g_io_add_watch __attribute((alias("IA__g_io_add_watch"), visibility("default")));

#undef g_io_add_watch_full 
extern __typeof (g_io_add_watch_full) g_io_add_watch_full __attribute((alias("IA__g_io_add_watch_full"), visibility("default")));

#undef g_io_create_watch 
extern __typeof (g_io_create_watch) g_io_create_watch __attribute((alias("IA__g_io_create_watch"), visibility("default")));

#undef g_io_channel_error_from_errno 
extern __typeof (g_io_channel_error_from_errno) g_io_channel_error_from_errno __attribute((alias("IA__g_io_channel_error_from_errno"), visibility("default")));

#undef g_io_channel_error_quark 
extern __typeof (g_io_channel_error_quark) g_io_channel_error_quark __attribute((alias("IA__g_io_channel_error_quark"), visibility("default")));

#undef g_io_channel_flush 
extern __typeof (g_io_channel_flush) g_io_channel_flush __attribute((alias("IA__g_io_channel_flush"), visibility("default")));

#undef g_io_channel_get_buffer_condition 
extern __typeof (g_io_channel_get_buffer_condition) g_io_channel_get_buffer_condition __attribute((alias("IA__g_io_channel_get_buffer_condition"), visibility("default")));

#undef g_io_channel_get_buffered 
extern __typeof (g_io_channel_get_buffered) g_io_channel_get_buffered __attribute((alias("IA__g_io_channel_get_buffered"), visibility("default")));

#undef g_io_channel_get_buffer_size 
extern __typeof (g_io_channel_get_buffer_size) g_io_channel_get_buffer_size __attribute((alias("IA__g_io_channel_get_buffer_size"), visibility("default")));

#undef g_io_channel_get_close_on_unref 
extern __typeof (g_io_channel_get_close_on_unref) g_io_channel_get_close_on_unref __attribute((alias("IA__g_io_channel_get_close_on_unref"), visibility("default")));

#undef g_io_channel_get_encoding 
extern __typeof (g_io_channel_get_encoding) g_io_channel_get_encoding __attribute((alias("IA__g_io_channel_get_encoding"), visibility("default")));

#undef g_io_channel_get_flags 
extern __typeof (g_io_channel_get_flags) g_io_channel_get_flags __attribute((alias("IA__g_io_channel_get_flags"), visibility("default")));

#undef g_io_channel_get_line_term 
extern __typeof (g_io_channel_get_line_term) g_io_channel_get_line_term __attribute((alias("IA__g_io_channel_get_line_term"), visibility("default")));

#undef g_io_channel_init 
extern __typeof (g_io_channel_init) g_io_channel_init __attribute((alias("IA__g_io_channel_init"), visibility("default")));

#undef g_io_channel_read_chars 
extern __typeof (g_io_channel_read_chars) g_io_channel_read_chars __attribute((alias("IA__g_io_channel_read_chars"), visibility("default")));

#undef g_io_channel_read_line 
extern __typeof (g_io_channel_read_line) g_io_channel_read_line __attribute((alias("IA__g_io_channel_read_line"), visibility("default")));

#undef g_io_channel_read_line_string 
extern __typeof (g_io_channel_read_line_string) g_io_channel_read_line_string __attribute((alias("IA__g_io_channel_read_line_string"), visibility("default")));

#undef g_io_channel_read_to_end 
extern __typeof (g_io_channel_read_to_end) g_io_channel_read_to_end __attribute((alias("IA__g_io_channel_read_to_end"), visibility("default")));

#undef g_io_channel_read_unichar 
extern __typeof (g_io_channel_read_unichar) g_io_channel_read_unichar __attribute((alias("IA__g_io_channel_read_unichar"), visibility("default")));

#undef g_io_channel_ref 
extern __typeof (g_io_channel_ref) g_io_channel_ref __attribute((alias("IA__g_io_channel_ref"), visibility("default")));

#undef g_io_channel_seek_position 
extern __typeof (g_io_channel_seek_position) g_io_channel_seek_position __attribute((alias("IA__g_io_channel_seek_position"), visibility("default")));

#undef g_io_channel_set_buffered 
extern __typeof (g_io_channel_set_buffered) g_io_channel_set_buffered __attribute((alias("IA__g_io_channel_set_buffered"), visibility("default")));

#undef g_io_channel_set_buffer_size 
extern __typeof (g_io_channel_set_buffer_size) g_io_channel_set_buffer_size __attribute((alias("IA__g_io_channel_set_buffer_size"), visibility("default")));

#undef g_io_channel_set_close_on_unref 
extern __typeof (g_io_channel_set_close_on_unref) g_io_channel_set_close_on_unref __attribute((alias("IA__g_io_channel_set_close_on_unref"), visibility("default")));

#undef g_io_channel_set_encoding 
extern __typeof (g_io_channel_set_encoding) g_io_channel_set_encoding __attribute((alias("IA__g_io_channel_set_encoding"), visibility("default")));

#undef g_io_channel_set_flags 
extern __typeof (g_io_channel_set_flags) g_io_channel_set_flags __attribute((alias("IA__g_io_channel_set_flags"), visibility("default")));

#undef g_io_channel_set_line_term 
extern __typeof (g_io_channel_set_line_term) g_io_channel_set_line_term __attribute((alias("IA__g_io_channel_set_line_term"), visibility("default")));

#undef g_io_channel_shutdown 
extern __typeof (g_io_channel_shutdown) g_io_channel_shutdown __attribute((alias("IA__g_io_channel_shutdown"), visibility("default")));

#undef g_io_channel_unref 
extern __typeof (g_io_channel_unref) g_io_channel_unref __attribute((alias("IA__g_io_channel_unref"), visibility("default")));

#ifndef G_DISABLE_DEPRECATED
#undef g_io_channel_close 
extern __typeof (g_io_channel_close) g_io_channel_close __attribute((alias("IA__g_io_channel_close"), visibility("default")));

#undef g_io_channel_read 
extern __typeof (g_io_channel_read) g_io_channel_read __attribute((alias("IA__g_io_channel_read"), visibility("default")));

#undef g_io_channel_seek 
extern __typeof (g_io_channel_seek) g_io_channel_seek __attribute((alias("IA__g_io_channel_seek"), visibility("default")));

#undef g_io_channel_write 
extern __typeof (g_io_channel_write) g_io_channel_write __attribute((alias("IA__g_io_channel_write"), visibility("default")));

#endif
#undef g_io_channel_write_chars 
extern __typeof (g_io_channel_write_chars) g_io_channel_write_chars __attribute((alias("IA__g_io_channel_write_chars"), visibility("default")));

#undef g_io_channel_write_unichar 
extern __typeof (g_io_channel_write_unichar) g_io_channel_write_unichar __attribute((alias("IA__g_io_channel_write_unichar"), visibility("default")));

#endif
#endif
#if IN_HEADER(__G_IOCHANNEL_H__)
#if IN_FILE(__G_IO_UNIX_C__)
#ifdef G_OS_UNIX
#undef g_io_channel_unix_get_fd 
extern __typeof (g_io_channel_unix_get_fd) g_io_channel_unix_get_fd __attribute((alias("IA__g_io_channel_unix_get_fd"), visibility("default")));

#undef g_io_channel_unix_new 
extern __typeof (g_io_channel_unix_new) g_io_channel_unix_new __attribute((alias("IA__g_io_channel_unix_new"), visibility("default")));

#undef g_io_channel_new_file 
extern __typeof (g_io_channel_new_file) g_io_channel_new_file __attribute((alias("IA__g_io_channel_new_file"), visibility("default")));

#endif
#endif
#endif
#if IN_HEADER(__G_IOCHANNEL_H__)
#if IN_FILE(__G_IO_WIN32_C__)
#ifdef G_OS_WIN32
#undef g_io_channel_unix_get_fd 
extern __typeof (g_io_channel_unix_get_fd) g_io_channel_unix_get_fd __attribute((alias("IA__g_io_channel_unix_get_fd"), visibility("default")));

#undef g_io_channel_unix_new 
extern __typeof (g_io_channel_unix_new) g_io_channel_unix_new __attribute((alias("IA__g_io_channel_unix_new"), visibility("default")));

#ifndef _WIN64
#undef g_io_channel_new_file 
extern __typeof (g_io_channel_new_file) g_io_channel_new_file __attribute((alias("IA__g_io_channel_new_file"), visibility("default")));

#endif
#undef g_io_channel_new_file_utf8 
extern __typeof (g_io_channel_new_file_utf8) g_io_channel_new_file_utf8 __attribute((alias("IA__g_io_channel_new_file_utf8"), visibility("default")));

#undef g_io_channel_win32_get_fd 
extern __typeof (g_io_channel_win32_get_fd) g_io_channel_win32_get_fd __attribute((alias("IA__g_io_channel_win32_get_fd"), visibility("default")));

#undef g_io_channel_win32_make_pollfd 
extern __typeof (g_io_channel_win32_make_pollfd) g_io_channel_win32_make_pollfd __attribute((alias("IA__g_io_channel_win32_make_pollfd"), visibility("default")));

#undef g_io_channel_win32_new_fd 
extern __typeof (g_io_channel_win32_new_fd) g_io_channel_win32_new_fd __attribute((alias("IA__g_io_channel_win32_new_fd"), visibility("default")));

#undef g_io_channel_win32_new_messages 
extern __typeof (g_io_channel_win32_new_messages) g_io_channel_win32_new_messages __attribute((alias("IA__g_io_channel_win32_new_messages"), visibility("default")));

#undef g_io_channel_win32_new_socket 
extern __typeof (g_io_channel_win32_new_socket) g_io_channel_win32_new_socket __attribute((alias("IA__g_io_channel_win32_new_socket"), visibility("default")));

#ifndef _WIN64
#undef g_io_channel_win32_new_stream_socket 
extern __typeof (g_io_channel_win32_new_stream_socket) g_io_channel_win32_new_stream_socket __attribute((alias("IA__g_io_channel_win32_new_stream_socket"), visibility("default")));

#endif
#undef g_io_channel_win32_poll 
extern __typeof (g_io_channel_win32_poll) g_io_channel_win32_poll __attribute((alias("IA__g_io_channel_win32_poll"), visibility("default")));

#undef g_io_channel_win32_set_debug 
extern __typeof (g_io_channel_win32_set_debug) g_io_channel_win32_set_debug __attribute((alias("IA__g_io_channel_win32_set_debug"), visibility("default")));

#endif
#endif
#endif
#if IN_HEADER(__G_KEY_FILE_H__)
#if IN_FILE(__G_KEY_FILE_C__)
#undef g_key_file_error_quark 
extern __typeof (g_key_file_error_quark) g_key_file_error_quark __attribute((alias("IA__g_key_file_error_quark"), visibility("default")));

#undef g_key_file_free 
extern __typeof (g_key_file_free) g_key_file_free __attribute((alias("IA__g_key_file_free"), visibility("default")));

#undef g_key_file_get_boolean 
extern __typeof (g_key_file_get_boolean) g_key_file_get_boolean __attribute((alias("IA__g_key_file_get_boolean"), visibility("default")));

#undef g_key_file_get_boolean_list 
extern __typeof (g_key_file_get_boolean_list) g_key_file_get_boolean_list __attribute((alias("IA__g_key_file_get_boolean_list"), visibility("default")));

#undef g_key_file_get_comment 
extern __typeof (g_key_file_get_comment) g_key_file_get_comment __attribute((alias("IA__g_key_file_get_comment"), visibility("default")));

#undef g_key_file_get_groups 
extern __typeof (g_key_file_get_groups) g_key_file_get_groups __attribute((alias("IA__g_key_file_get_groups"), visibility("default")));

#undef g_key_file_get_double 
extern __typeof (g_key_file_get_double) g_key_file_get_double __attribute((alias("IA__g_key_file_get_double"), visibility("default")));

#undef g_key_file_get_double_list 
extern __typeof (g_key_file_get_double_list) g_key_file_get_double_list __attribute((alias("IA__g_key_file_get_double_list"), visibility("default")));

#undef g_key_file_get_integer 
extern __typeof (g_key_file_get_integer) g_key_file_get_integer __attribute((alias("IA__g_key_file_get_integer"), visibility("default")));

#undef g_key_file_get_integer_list 
extern __typeof (g_key_file_get_integer_list) g_key_file_get_integer_list __attribute((alias("IA__g_key_file_get_integer_list"), visibility("default")));

#undef g_key_file_get_keys 
extern __typeof (g_key_file_get_keys) g_key_file_get_keys __attribute((alias("IA__g_key_file_get_keys"), visibility("default")));

#undef g_key_file_get_locale_string 
extern __typeof (g_key_file_get_locale_string) g_key_file_get_locale_string __attribute((alias("IA__g_key_file_get_locale_string"), visibility("default")));

#undef g_key_file_get_locale_string_list 
extern __typeof (g_key_file_get_locale_string_list) g_key_file_get_locale_string_list __attribute((alias("IA__g_key_file_get_locale_string_list"), visibility("default")));

#undef g_key_file_get_start_group 
extern __typeof (g_key_file_get_start_group) g_key_file_get_start_group __attribute((alias("IA__g_key_file_get_start_group"), visibility("default")));

#undef g_key_file_get_string 
extern __typeof (g_key_file_get_string) g_key_file_get_string __attribute((alias("IA__g_key_file_get_string"), visibility("default")));

#undef g_key_file_get_string_list 
extern __typeof (g_key_file_get_string_list) g_key_file_get_string_list __attribute((alias("IA__g_key_file_get_string_list"), visibility("default")));

#undef g_key_file_get_value 
extern __typeof (g_key_file_get_value) g_key_file_get_value __attribute((alias("IA__g_key_file_get_value"), visibility("default")));

#undef g_key_file_has_group 
extern __typeof (g_key_file_has_group) g_key_file_has_group __attribute((alias("IA__g_key_file_has_group"), visibility("default")));

#undef g_key_file_has_key 
extern __typeof (g_key_file_has_key) g_key_file_has_key __attribute((alias("IA__g_key_file_has_key"), visibility("default")));

#undef g_key_file_load_from_dirs 
extern __typeof (g_key_file_load_from_dirs) g_key_file_load_from_dirs __attribute((alias("IA__g_key_file_load_from_dirs"), visibility("default")));

#undef g_key_file_load_from_data 
extern __typeof (g_key_file_load_from_data) g_key_file_load_from_data __attribute((alias("IA__g_key_file_load_from_data"), visibility("default")));

#undef g_key_file_load_from_data_dirs 
extern __typeof (g_key_file_load_from_data_dirs) g_key_file_load_from_data_dirs __attribute((alias("IA__g_key_file_load_from_data_dirs"), visibility("default")));

#undef g_key_file_load_from_file 
extern __typeof (g_key_file_load_from_file) g_key_file_load_from_file __attribute((alias("IA__g_key_file_load_from_file"), visibility("default")));

#undef g_key_file_new 
extern __typeof (g_key_file_new) g_key_file_new __attribute((alias("IA__g_key_file_new"), visibility("default")));

#undef g_key_file_remove_comment 
extern __typeof (g_key_file_remove_comment) g_key_file_remove_comment __attribute((alias("IA__g_key_file_remove_comment"), visibility("default")));

#undef g_key_file_remove_group 
extern __typeof (g_key_file_remove_group) g_key_file_remove_group __attribute((alias("IA__g_key_file_remove_group"), visibility("default")));

#undef g_key_file_remove_key 
extern __typeof (g_key_file_remove_key) g_key_file_remove_key __attribute((alias("IA__g_key_file_remove_key"), visibility("default")));

#undef g_key_file_set_boolean 
extern __typeof (g_key_file_set_boolean) g_key_file_set_boolean __attribute((alias("IA__g_key_file_set_boolean"), visibility("default")));

#undef g_key_file_set_boolean_list 
extern __typeof (g_key_file_set_boolean_list) g_key_file_set_boolean_list __attribute((alias("IA__g_key_file_set_boolean_list"), visibility("default")));

#undef g_key_file_set_comment 
extern __typeof (g_key_file_set_comment) g_key_file_set_comment __attribute((alias("IA__g_key_file_set_comment"), visibility("default")));

#undef g_key_file_set_double 
extern __typeof (g_key_file_set_double) g_key_file_set_double __attribute((alias("IA__g_key_file_set_double"), visibility("default")));

#undef g_key_file_set_double_list 
extern __typeof (g_key_file_set_double_list) g_key_file_set_double_list __attribute((alias("IA__g_key_file_set_double_list"), visibility("default")));

#undef g_key_file_set_integer 
extern __typeof (g_key_file_set_integer) g_key_file_set_integer __attribute((alias("IA__g_key_file_set_integer"), visibility("default")));

#undef g_key_file_set_integer_list 
extern __typeof (g_key_file_set_integer_list) g_key_file_set_integer_list __attribute((alias("IA__g_key_file_set_integer_list"), visibility("default")));

#undef g_key_file_set_list_separator 
extern __typeof (g_key_file_set_list_separator) g_key_file_set_list_separator __attribute((alias("IA__g_key_file_set_list_separator"), visibility("default")));

#undef g_key_file_set_locale_string 
extern __typeof (g_key_file_set_locale_string) g_key_file_set_locale_string __attribute((alias("IA__g_key_file_set_locale_string"), visibility("default")));

#undef g_key_file_set_locale_string_list 
extern __typeof (g_key_file_set_locale_string_list) g_key_file_set_locale_string_list __attribute((alias("IA__g_key_file_set_locale_string_list"), visibility("default")));

#undef g_key_file_set_string 
extern __typeof (g_key_file_set_string) g_key_file_set_string __attribute((alias("IA__g_key_file_set_string"), visibility("default")));

#undef g_key_file_set_string_list 
extern __typeof (g_key_file_set_string_list) g_key_file_set_string_list __attribute((alias("IA__g_key_file_set_string_list"), visibility("default")));

#undef g_key_file_set_value 
extern __typeof (g_key_file_set_value) g_key_file_set_value __attribute((alias("IA__g_key_file_set_value"), visibility("default")));

#undef g_key_file_to_data 
extern __typeof (g_key_file_to_data) g_key_file_to_data __attribute((alias("IA__g_key_file_to_data"), visibility("default")));

#endif
#endif
#if IN_HEADER(__G_LIST_H__)
#if IN_FILE(__G_LIST_C__)
#undef g_list_alloc 
extern __typeof (g_list_alloc) g_list_alloc __attribute((alias("IA__g_list_alloc"), visibility("default")));

#undef g_list_append 
extern __typeof (g_list_append) g_list_append __attribute((alias("IA__g_list_append"), visibility("default")));

#undef g_list_concat 
extern __typeof (g_list_concat) g_list_concat __attribute((alias("IA__g_list_concat"), visibility("default")));

#undef g_list_copy 
extern __typeof (g_list_copy) g_list_copy __attribute((alias("IA__g_list_copy"), visibility("default")));

#undef g_list_delete_link 
extern __typeof (g_list_delete_link) g_list_delete_link __attribute((alias("IA__g_list_delete_link"), visibility("default")));

#undef g_list_find 
extern __typeof (g_list_find) g_list_find __attribute((alias("IA__g_list_find"), visibility("default")));

#undef g_list_find_custom 
extern __typeof (g_list_find_custom) g_list_find_custom __attribute((alias("IA__g_list_find_custom"), visibility("default")));

#undef g_list_first 
extern __typeof (g_list_first) g_list_first __attribute((alias("IA__g_list_first"), visibility("default")));

#undef g_list_foreach 
extern __typeof (g_list_foreach) g_list_foreach __attribute((alias("IA__g_list_foreach"), visibility("default")));

#undef g_list_free 
extern __typeof (g_list_free) g_list_free __attribute((alias("IA__g_list_free"), visibility("default")));

#undef g_list_free_1 
extern __typeof (g_list_free_1) g_list_free_1 __attribute((alias("IA__g_list_free_1"), visibility("default")));

#undef g_list_index 
extern __typeof (g_list_index) g_list_index __attribute((alias("IA__g_list_index"), visibility("default")));

#undef g_list_insert 
extern __typeof (g_list_insert) g_list_insert __attribute((alias("IA__g_list_insert"), visibility("default")));

#undef g_list_insert_before 
extern __typeof (g_list_insert_before) g_list_insert_before __attribute((alias("IA__g_list_insert_before"), visibility("default")));

#undef g_list_insert_sorted 
extern __typeof (g_list_insert_sorted) g_list_insert_sorted __attribute((alias("IA__g_list_insert_sorted"), visibility("default")));

#undef g_list_insert_sorted_with_data 
extern __typeof (g_list_insert_sorted_with_data) g_list_insert_sorted_with_data __attribute((alias("IA__g_list_insert_sorted_with_data"), visibility("default")));

#undef g_list_last 
extern __typeof (g_list_last) g_list_last __attribute((alias("IA__g_list_last"), visibility("default")));

#undef g_list_length 
extern __typeof (g_list_length) g_list_length __attribute((alias("IA__g_list_length"), visibility("default")));

#undef g_list_nth 
extern __typeof (g_list_nth) g_list_nth __attribute((alias("IA__g_list_nth"), visibility("default")));

#undef g_list_nth_data 
extern __typeof (g_list_nth_data) g_list_nth_data __attribute((alias("IA__g_list_nth_data"), visibility("default")));

#undef g_list_nth_prev 
extern __typeof (g_list_nth_prev) g_list_nth_prev __attribute((alias("IA__g_list_nth_prev"), visibility("default")));

#ifndef G_DISABLE_DEPRECATED
#undef g_list_pop_allocator 
extern __typeof (g_list_pop_allocator) g_list_pop_allocator __attribute((alias("IA__g_list_pop_allocator"), visibility("default")));

#endif
#undef g_list_position 
extern __typeof (g_list_position) g_list_position __attribute((alias("IA__g_list_position"), visibility("default")));

#undef g_list_prepend 
extern __typeof (g_list_prepend) g_list_prepend __attribute((alias("IA__g_list_prepend"), visibility("default")));

#ifndef G_DISABLE_DEPRECATED
#undef g_list_push_allocator 
extern __typeof (g_list_push_allocator) g_list_push_allocator __attribute((alias("IA__g_list_push_allocator"), visibility("default")));

#endif
#undef g_list_remove 
extern __typeof (g_list_remove) g_list_remove __attribute((alias("IA__g_list_remove"), visibility("default")));

#undef g_list_remove_all 
extern __typeof (g_list_remove_all) g_list_remove_all __attribute((alias("IA__g_list_remove_all"), visibility("default")));

#undef g_list_remove_link 
extern __typeof (g_list_remove_link) g_list_remove_link __attribute((alias("IA__g_list_remove_link"), visibility("default")));

#undef g_list_reverse 
extern __typeof (g_list_reverse) g_list_reverse __attribute((alias("IA__g_list_reverse"), visibility("default")));

#undef g_list_sort 
extern __typeof (g_list_sort) g_list_sort __attribute((alias("IA__g_list_sort"), visibility("default")));

#undef g_list_sort_with_data 
extern __typeof (g_list_sort_with_data) g_list_sort_with_data __attribute((alias("IA__g_list_sort_with_data"), visibility("default")));

#endif
#endif
#if IN_HEADER(__G_MAIN_H__)
#if IN_FILE(__G_MAIN_C__)
#undef g_child_watch_add 
extern __typeof (g_child_watch_add) g_child_watch_add __attribute((alias("IA__g_child_watch_add"), visibility("default")));

#undef g_child_watch_add_full 
extern __typeof (g_child_watch_add_full) g_child_watch_add_full __attribute((alias("IA__g_child_watch_add_full"), visibility("default")));

#undef g_child_watch_source_new 
extern __typeof (g_child_watch_source_new) g_child_watch_source_new __attribute((alias("IA__g_child_watch_source_new"), visibility("default")));

#undef g_get_current_time 
extern __typeof (g_get_current_time) g_get_current_time __attribute((alias("IA__g_get_current_time"), visibility("default")));

#undef g_main_context_acquire 
extern __typeof (g_main_context_acquire) g_main_context_acquire __attribute((alias("IA__g_main_context_acquire"), visibility("default")));

#undef g_main_context_add_poll 
extern __typeof (g_main_context_add_poll) g_main_context_add_poll __attribute((alias("IA__g_main_context_add_poll"), visibility("default")));

#undef g_main_context_check 
extern __typeof (g_main_context_check) g_main_context_check __attribute((alias("IA__g_main_context_check"), visibility("default")));

#undef g_main_context_default 
extern __typeof (g_main_context_default) g_main_context_default __attribute((alias("IA__g_main_context_default"), visibility("default")));

#undef g_main_context_dispatch 
extern __typeof (g_main_context_dispatch) g_main_context_dispatch __attribute((alias("IA__g_main_context_dispatch"), visibility("default")));

#undef g_main_context_find_source_by_funcs_user_data 
extern __typeof (g_main_context_find_source_by_funcs_user_data) g_main_context_find_source_by_funcs_user_data __attribute((alias("IA__g_main_context_find_source_by_funcs_user_data"), visibility("default")));

#undef g_main_context_find_source_by_id 
extern __typeof (g_main_context_find_source_by_id) g_main_context_find_source_by_id __attribute((alias("IA__g_main_context_find_source_by_id"), visibility("default")));

#undef g_main_context_find_source_by_user_data 
extern __typeof (g_main_context_find_source_by_user_data) g_main_context_find_source_by_user_data __attribute((alias("IA__g_main_context_find_source_by_user_data"), visibility("default")));

#undef g_main_context_get_poll_func 
extern __typeof (g_main_context_get_poll_func) g_main_context_get_poll_func __attribute((alias("IA__g_main_context_get_poll_func"), visibility("default")));

#undef g_main_context_get_thread_default 
extern __typeof (g_main_context_get_thread_default) g_main_context_get_thread_default __attribute((alias("IA__g_main_context_get_thread_default"), visibility("default")));

#undef g_main_context_is_owner 
extern __typeof (g_main_context_is_owner) g_main_context_is_owner __attribute((alias("IA__g_main_context_is_owner"), visibility("default")));

#undef g_main_context_iteration 
extern __typeof (g_main_context_iteration) g_main_context_iteration __attribute((alias("IA__g_main_context_iteration"), visibility("default")));

#undef g_main_context_new 
extern __typeof (g_main_context_new) g_main_context_new __attribute((alias("IA__g_main_context_new"), visibility("default")));

#undef g_main_context_pending 
extern __typeof (g_main_context_pending) g_main_context_pending __attribute((alias("IA__g_main_context_pending"), visibility("default")));

#undef g_main_context_pop_thread_default 
extern __typeof (g_main_context_pop_thread_default) g_main_context_pop_thread_default __attribute((alias("IA__g_main_context_pop_thread_default"), visibility("default")));

#undef g_main_context_prepare 
extern __typeof (g_main_context_prepare) g_main_context_prepare __attribute((alias("IA__g_main_context_prepare"), visibility("default")));

#undef g_main_context_push_thread_default 
extern __typeof (g_main_context_push_thread_default) g_main_context_push_thread_default __attribute((alias("IA__g_main_context_push_thread_default"), visibility("default")));

#undef g_main_context_query 
extern __typeof (g_main_context_query) g_main_context_query __attribute((alias("IA__g_main_context_query"), visibility("default")));

#undef g_main_context_ref 
extern __typeof (g_main_context_ref) g_main_context_ref __attribute((alias("IA__g_main_context_ref"), visibility("default")));

#undef g_main_context_release 
extern __typeof (g_main_context_release) g_main_context_release __attribute((alias("IA__g_main_context_release"), visibility("default")));

#undef g_main_context_remove_poll 
extern __typeof (g_main_context_remove_poll) g_main_context_remove_poll __attribute((alias("IA__g_main_context_remove_poll"), visibility("default")));

#undef g_main_context_set_poll_func 
extern __typeof (g_main_context_set_poll_func) g_main_context_set_poll_func __attribute((alias("IA__g_main_context_set_poll_func"), visibility("default")));

#undef g_main_context_unref 
extern __typeof (g_main_context_unref) g_main_context_unref __attribute((alias("IA__g_main_context_unref"), visibility("default")));

#undef g_main_context_wait 
extern __typeof (g_main_context_wait) g_main_context_wait __attribute((alias("IA__g_main_context_wait"), visibility("default")));

#undef g_main_context_wakeup 
extern __typeof (g_main_context_wakeup) g_main_context_wakeup __attribute((alias("IA__g_main_context_wakeup"), visibility("default")));

#undef g_main_depth 
extern __typeof (g_main_depth) g_main_depth __attribute((alias("IA__g_main_depth"), visibility("default")));

#undef g_main_current_source 
extern __typeof (g_main_current_source) g_main_current_source __attribute((alias("IA__g_main_current_source"), visibility("default")));

#undef g_main_loop_get_context 
extern __typeof (g_main_loop_get_context) g_main_loop_get_context __attribute((alias("IA__g_main_loop_get_context"), visibility("default")));

#undef g_main_loop_is_running 
extern __typeof (g_main_loop_is_running) g_main_loop_is_running __attribute((alias("IA__g_main_loop_is_running"), visibility("default")));

#undef g_main_loop_new 
extern __typeof (g_main_loop_new) g_main_loop_new __attribute((alias("IA__g_main_loop_new"), visibility("default")));

#undef g_main_loop_quit 
extern __typeof (g_main_loop_quit) g_main_loop_quit __attribute((alias("IA__g_main_loop_quit"), visibility("default")));

#undef g_main_loop_ref 
extern __typeof (g_main_loop_ref) g_main_loop_ref __attribute((alias("IA__g_main_loop_ref"), visibility("default")));

#undef g_main_loop_run 
extern __typeof (g_main_loop_run) g_main_loop_run __attribute((alias("IA__g_main_loop_run"), visibility("default")));

#undef g_main_loop_unref 
extern __typeof (g_main_loop_unref) g_main_loop_unref __attribute((alias("IA__g_main_loop_unref"), visibility("default")));

#undef g_source_add_poll 
extern __typeof (g_source_add_poll) g_source_add_poll __attribute((alias("IA__g_source_add_poll"), visibility("default")));

#undef g_source_attach 
extern __typeof (g_source_attach) g_source_attach __attribute((alias("IA__g_source_attach"), visibility("default")));

#undef g_source_destroy 
extern __typeof (g_source_destroy) g_source_destroy __attribute((alias("IA__g_source_destroy"), visibility("default")));

#undef g_source_get_can_recurse 
extern __typeof (g_source_get_can_recurse) g_source_get_can_recurse __attribute((alias("IA__g_source_get_can_recurse"), visibility("default")));

#undef g_source_get_context 
extern __typeof (g_source_get_context) g_source_get_context __attribute((alias("IA__g_source_get_context"), visibility("default")));

#undef g_source_get_current_time 
extern __typeof (g_source_get_current_time) g_source_get_current_time __attribute((alias("IA__g_source_get_current_time"), visibility("default")));

#undef g_source_get_id 
extern __typeof (g_source_get_id) g_source_get_id __attribute((alias("IA__g_source_get_id"), visibility("default")));

#undef g_source_get_priority 
extern __typeof (g_source_get_priority) g_source_get_priority __attribute((alias("IA__g_source_get_priority"), visibility("default")));

#undef g_source_new 
extern __typeof (g_source_new) g_source_new __attribute((alias("IA__g_source_new"), visibility("default")));

#undef g_source_ref 
extern __typeof (g_source_ref) g_source_ref __attribute((alias("IA__g_source_ref"), visibility("default")));

#undef g_source_remove 
extern __typeof (g_source_remove) g_source_remove __attribute((alias("IA__g_source_remove"), visibility("default")));

#undef g_source_remove_by_funcs_user_data 
extern __typeof (g_source_remove_by_funcs_user_data) g_source_remove_by_funcs_user_data __attribute((alias("IA__g_source_remove_by_funcs_user_data"), visibility("default")));

#undef g_source_remove_by_user_data 
extern __typeof (g_source_remove_by_user_data) g_source_remove_by_user_data __attribute((alias("IA__g_source_remove_by_user_data"), visibility("default")));

#undef g_source_remove_poll 
extern __typeof (g_source_remove_poll) g_source_remove_poll __attribute((alias("IA__g_source_remove_poll"), visibility("default")));

#undef g_source_set_callback 
extern __typeof (g_source_set_callback) g_source_set_callback __attribute((alias("IA__g_source_set_callback"), visibility("default")));

#undef g_source_set_callback_indirect 
extern __typeof (g_source_set_callback_indirect) g_source_set_callback_indirect __attribute((alias("IA__g_source_set_callback_indirect"), visibility("default")));

#undef g_source_set_can_recurse 
extern __typeof (g_source_set_can_recurse) g_source_set_can_recurse __attribute((alias("IA__g_source_set_can_recurse"), visibility("default")));

#undef g_source_set_funcs 
extern __typeof (g_source_set_funcs) g_source_set_funcs __attribute((alias("IA__g_source_set_funcs"), visibility("default")));

#undef g_source_is_destroyed 
extern __typeof (g_source_is_destroyed) g_source_is_destroyed __attribute((alias("IA__g_source_is_destroyed"), visibility("default")));

#undef g_source_set_priority 
extern __typeof (g_source_set_priority) g_source_set_priority __attribute((alias("IA__g_source_set_priority"), visibility("default")));

#undef g_source_unref 
extern __typeof (g_source_unref) g_source_unref __attribute((alias("IA__g_source_unref"), visibility("default")));

#undef g_idle_add 
extern __typeof (g_idle_add) g_idle_add __attribute((alias("IA__g_idle_add"), visibility("default")));

#undef g_idle_add_full 
extern __typeof (g_idle_add_full) g_idle_add_full __attribute((alias("IA__g_idle_add_full"), visibility("default")));

#undef g_idle_remove_by_data 
extern __typeof (g_idle_remove_by_data) g_idle_remove_by_data __attribute((alias("IA__g_idle_remove_by_data"), visibility("default")));

#undef g_idle_source_new 
extern __typeof (g_idle_source_new) g_idle_source_new __attribute((alias("IA__g_idle_source_new"), visibility("default")));

#undef g_timeout_add 
extern __typeof (g_timeout_add) g_timeout_add __attribute((alias("IA__g_timeout_add"), visibility("default")));

#undef g_timeout_add_seconds 
extern __typeof (g_timeout_add_seconds) g_timeout_add_seconds __attribute((alias("IA__g_timeout_add_seconds"), visibility("default")));

#undef g_timeout_add_full 
extern __typeof (g_timeout_add_full) g_timeout_add_full __attribute((alias("IA__g_timeout_add_full"), visibility("default")));

#undef g_timeout_add_seconds_full 
extern __typeof (g_timeout_add_seconds_full) g_timeout_add_seconds_full __attribute((alias("IA__g_timeout_add_seconds_full"), visibility("default")));

#undef g_timeout_source_new 
extern __typeof (g_timeout_source_new) g_timeout_source_new __attribute((alias("IA__g_timeout_source_new"), visibility("default")));

#undef g_timeout_source_new_seconds 
extern __typeof (g_timeout_source_new_seconds) g_timeout_source_new_seconds __attribute((alias("IA__g_timeout_source_new_seconds"), visibility("default")));

#endif
#endif
#if IN_HEADER(__G_MAPPED_FILE_H__)
#if IN_FILE(__G_MAPPED_FILE_C__)
#undef g_mapped_file_new 
extern __typeof (g_mapped_file_new) g_mapped_file_new __attribute((alias("IA__g_mapped_file_new"), visibility("default")));

#undef g_mapped_file_get_length 
extern __typeof (g_mapped_file_get_length) g_mapped_file_get_length __attribute((alias("IA__g_mapped_file_get_length"), visibility("default")));

#undef g_mapped_file_get_contents 
extern __typeof (g_mapped_file_get_contents) g_mapped_file_get_contents __attribute((alias("IA__g_mapped_file_get_contents"), visibility("default")));

#undef g_mapped_file_ref 
extern __typeof (g_mapped_file_ref) g_mapped_file_ref __attribute((alias("IA__g_mapped_file_ref"), visibility("default")));

#undef g_mapped_file_unref 
extern __typeof (g_mapped_file_unref) g_mapped_file_unref __attribute((alias("IA__g_mapped_file_unref"), visibility("default")));

#ifndef G_DISABLE_DEPRECATED
#undef g_mapped_file_free 
extern __typeof (g_mapped_file_free) g_mapped_file_free __attribute((alias("IA__g_mapped_file_free"), visibility("default")));

#endif
#endif
#endif
#if IN_HEADER(__G_MARKUP_H__)
#if IN_FILE(__G_MARKUP_C__)
#undef g_markup_error_quark 
extern __typeof (g_markup_error_quark) g_markup_error_quark __attribute((alias("IA__g_markup_error_quark"), visibility("default")));

#undef g_markup_escape_text 
extern __typeof (g_markup_escape_text) g_markup_escape_text __attribute((alias("IA__g_markup_escape_text"), visibility("default")));

#undef g_markup_parse_context_end_parse 
extern __typeof (g_markup_parse_context_end_parse) g_markup_parse_context_end_parse __attribute((alias("IA__g_markup_parse_context_end_parse"), visibility("default")));

#undef g_markup_parse_context_free 
extern __typeof (g_markup_parse_context_free) g_markup_parse_context_free __attribute((alias("IA__g_markup_parse_context_free"), visibility("default")));

#undef g_markup_parse_context_get_element 
extern __typeof (g_markup_parse_context_get_element) g_markup_parse_context_get_element __attribute((alias("IA__g_markup_parse_context_get_element"), visibility("default")));

#undef g_markup_parse_context_get_element_stack 
extern __typeof (g_markup_parse_context_get_element_stack) g_markup_parse_context_get_element_stack __attribute((alias("IA__g_markup_parse_context_get_element_stack"), visibility("default")));

#undef g_markup_parse_context_get_position 
extern __typeof (g_markup_parse_context_get_position) g_markup_parse_context_get_position __attribute((alias("IA__g_markup_parse_context_get_position"), visibility("default")));

#undef g_markup_parse_context_get_user_data 
extern __typeof (g_markup_parse_context_get_user_data) g_markup_parse_context_get_user_data __attribute((alias("IA__g_markup_parse_context_get_user_data"), visibility("default")));

#undef g_markup_parse_context_new 
extern __typeof (g_markup_parse_context_new) g_markup_parse_context_new __attribute((alias("IA__g_markup_parse_context_new"), visibility("default")));

#undef g_markup_parse_context_parse 
extern __typeof (g_markup_parse_context_parse) g_markup_parse_context_parse __attribute((alias("IA__g_markup_parse_context_parse"), visibility("default")));

#undef g_markup_parse_context_push 
extern __typeof (g_markup_parse_context_push) g_markup_parse_context_push __attribute((alias("IA__g_markup_parse_context_push"), visibility("default")));

#undef g_markup_parse_context_pop 
extern __typeof (g_markup_parse_context_pop) g_markup_parse_context_pop __attribute((alias("IA__g_markup_parse_context_pop"), visibility("default")));

#undef g_markup_printf_escaped 
extern __typeof (g_markup_printf_escaped) g_markup_printf_escaped __attribute((alias("IA__g_markup_printf_escaped"), visibility("default")));

#undef g_markup_vprintf_escaped 
extern __typeof (g_markup_vprintf_escaped) g_markup_vprintf_escaped __attribute((alias("IA__g_markup_vprintf_escaped"), visibility("default")));

#undef g_markup_collect_attributes 
extern __typeof (g_markup_collect_attributes) g_markup_collect_attributes __attribute((alias("IA__g_markup_collect_attributes"), visibility("default")));

#endif
#endif
#if IN_HEADER(__G_MEM_H__)
#if IN_FILE(__G_MEM_C__)
#undef g_free 
extern __typeof (g_free) g_free __attribute((alias("IA__g_free"), visibility("default")));

#undef g_malloc 
extern __typeof (g_malloc) g_malloc __attribute((alias("IA__g_malloc"), visibility("default")));

#undef g_malloc0 
extern __typeof (g_malloc0) g_malloc0 __attribute((alias("IA__g_malloc0"), visibility("default")));

#undef g_malloc_n 
extern __typeof (g_malloc_n) g_malloc_n __attribute((alias("IA__g_malloc_n"), visibility("default")));

#undef g_malloc0_n 
extern __typeof (g_malloc0_n) g_malloc0_n __attribute((alias("IA__g_malloc0_n"), visibility("default")));

#undef g_mem_is_system_malloc 
extern __typeof (g_mem_is_system_malloc) g_mem_is_system_malloc __attribute((alias("IA__g_mem_is_system_malloc"), visibility("default")));

#undef g_mem_profile 
extern __typeof (g_mem_profile) g_mem_profile __attribute((alias("IA__g_mem_profile"), visibility("default")));

#undef g_mem_set_vtable 
extern __typeof (g_mem_set_vtable) g_mem_set_vtable __attribute((alias("IA__g_mem_set_vtable"), visibility("default")));

#undef g_realloc 
extern __typeof (g_realloc) g_realloc __attribute((alias("IA__g_realloc"), visibility("default")));

#undef g_realloc_n 
extern __typeof (g_realloc_n) g_realloc_n __attribute((alias("IA__g_realloc_n"), visibility("default")));

#undef g_try_malloc 
extern __typeof (g_try_malloc) g_try_malloc __attribute((alias("IA__g_try_malloc"), visibility("default")));

#undef g_try_malloc0 
extern __typeof (g_try_malloc0) g_try_malloc0 __attribute((alias("IA__g_try_malloc0"), visibility("default")));

#undef g_try_malloc_n 
extern __typeof (g_try_malloc_n) g_try_malloc_n __attribute((alias("IA__g_try_malloc_n"), visibility("default")));

#undef g_try_malloc0_n 
extern __typeof (g_try_malloc0_n) g_try_malloc0_n __attribute((alias("IA__g_try_malloc0_n"), visibility("default")));

#undef g_try_realloc 
extern __typeof (g_try_realloc) g_try_realloc __attribute((alias("IA__g_try_realloc"), visibility("default")));

#undef g_try_realloc_n 
extern __typeof (g_try_realloc_n) g_try_realloc_n __attribute((alias("IA__g_try_realloc_n"), visibility("default")));

#ifndef G_DISABLE_DEPRECATED
#undef g_allocator_free 
extern __typeof (g_allocator_free) g_allocator_free __attribute((alias("IA__g_allocator_free"), visibility("default")));

#undef g_allocator_new 
extern __typeof (g_allocator_new) g_allocator_new __attribute((alias("IA__g_allocator_new"), visibility("default")));

#undef g_mem_chunk_alloc 
extern __typeof (g_mem_chunk_alloc) g_mem_chunk_alloc __attribute((alias("IA__g_mem_chunk_alloc"), visibility("default")));

#undef g_mem_chunk_alloc0 
extern __typeof (g_mem_chunk_alloc0) g_mem_chunk_alloc0 __attribute((alias("IA__g_mem_chunk_alloc0"), visibility("default")));

#undef g_mem_chunk_clean 
extern __typeof (g_mem_chunk_clean) g_mem_chunk_clean __attribute((alias("IA__g_mem_chunk_clean"), visibility("default")));

#undef g_mem_chunk_destroy 
extern __typeof (g_mem_chunk_destroy) g_mem_chunk_destroy __attribute((alias("IA__g_mem_chunk_destroy"), visibility("default")));

#undef g_mem_chunk_free 
extern __typeof (g_mem_chunk_free) g_mem_chunk_free __attribute((alias("IA__g_mem_chunk_free"), visibility("default")));

#undef g_mem_chunk_info 
extern __typeof (g_mem_chunk_info) g_mem_chunk_info __attribute((alias("IA__g_mem_chunk_info"), visibility("default")));

#undef g_mem_chunk_new 
extern __typeof (g_mem_chunk_new) g_mem_chunk_new __attribute((alias("IA__g_mem_chunk_new"), visibility("default")));

#undef g_mem_chunk_print 
extern __typeof (g_mem_chunk_print) g_mem_chunk_print __attribute((alias("IA__g_mem_chunk_print"), visibility("default")));

#undef g_mem_chunk_reset 
extern __typeof (g_mem_chunk_reset) g_mem_chunk_reset __attribute((alias("IA__g_mem_chunk_reset"), visibility("default")));

#undef g_blow_chunks 
extern __typeof (g_blow_chunks) g_blow_chunks __attribute((alias("IA__g_blow_chunks"), visibility("default")));

#endif
#endif
#endif
#if IN_HEADER(__G_SLICE_H__)
#if IN_FILE(__G_SLICE_C__)
#undef g_slice_alloc 
extern __typeof (g_slice_alloc) g_slice_alloc __attribute((alias("IA__g_slice_alloc"), visibility("default")));

#undef g_slice_alloc0 
extern __typeof (g_slice_alloc0) g_slice_alloc0 __attribute((alias("IA__g_slice_alloc0"), visibility("default")));

#undef g_slice_copy 
extern __typeof (g_slice_copy) g_slice_copy __attribute((alias("IA__g_slice_copy"), visibility("default")));

#undef g_slice_free1 
extern __typeof (g_slice_free1) g_slice_free1 __attribute((alias("IA__g_slice_free1"), visibility("default")));

#undef g_slice_free_chain_with_offset 
extern __typeof (g_slice_free_chain_with_offset) g_slice_free_chain_with_offset __attribute((alias("IA__g_slice_free_chain_with_offset"), visibility("default")));

#undef g_slice_set_config 
extern __typeof (g_slice_set_config) g_slice_set_config __attribute((alias("IA__g_slice_set_config"), visibility("default")));

#undef g_slice_get_config 
extern __typeof (g_slice_get_config) g_slice_get_config __attribute((alias("IA__g_slice_get_config"), visibility("default")));

#undef g_slice_get_config_state 
extern __typeof (g_slice_get_config_state) g_slice_get_config_state __attribute((alias("IA__g_slice_get_config_state"), visibility("default")));

#ifdef G_ENABLE_DEBUG
#endif
#endif
#endif
#if IN_HEADER(__G_MESSAGES_H__)
#if IN_FILE(__G_MESSAGES_C__)
#undef g_printf_string_upper_bound 
extern __typeof (g_printf_string_upper_bound) g_printf_string_upper_bound __attribute((alias("IA__g_printf_string_upper_bound"), visibility("default")));

#undef g_log 
extern __typeof (g_log) g_log __attribute((alias("IA__g_log"), visibility("default")));

#undef g_log_default_handler 
extern __typeof (g_log_default_handler) g_log_default_handler __attribute((alias("IA__g_log_default_handler"), visibility("default")));

#undef g_log_remove_handler 
extern __typeof (g_log_remove_handler) g_log_remove_handler __attribute((alias("IA__g_log_remove_handler"), visibility("default")));

#undef g_log_set_always_fatal 
extern __typeof (g_log_set_always_fatal) g_log_set_always_fatal __attribute((alias("IA__g_log_set_always_fatal"), visibility("default")));

#undef g_log_set_default_handler 
extern __typeof (g_log_set_default_handler) g_log_set_default_handler __attribute((alias("IA__g_log_set_default_handler"), visibility("default")));

#undef g_log_set_fatal_mask 
extern __typeof (g_log_set_fatal_mask) g_log_set_fatal_mask __attribute((alias("IA__g_log_set_fatal_mask"), visibility("default")));

#undef g_log_set_handler 
extern __typeof (g_log_set_handler) g_log_set_handler __attribute((alias("IA__g_log_set_handler"), visibility("default")));

#undef g_logv 
extern __typeof (g_logv) g_logv __attribute((alias("IA__g_logv"), visibility("default")));

#undef g_return_if_fail_warning 
extern __typeof (g_return_if_fail_warning) g_return_if_fail_warning __attribute((alias("IA__g_return_if_fail_warning"), visibility("default")));

#undef g_warn_message 
extern __typeof (g_warn_message) g_warn_message __attribute((alias("IA__g_warn_message"), visibility("default")));

#ifndef G_DISABLE_DEPRECATED
#undef g_assert_warning 
extern __typeof (g_assert_warning) g_assert_warning __attribute((alias("IA__g_assert_warning"), visibility("default")));

#endif
#undef g_print 
extern __typeof (g_print) g_print __attribute((alias("IA__g_print"), visibility("default")));

#undef g_printerr 
extern __typeof (g_printerr) g_printerr __attribute((alias("IA__g_printerr"), visibility("default")));

#undef g_set_printerr_handler 
extern __typeof (g_set_printerr_handler) g_set_printerr_handler __attribute((alias("IA__g_set_printerr_handler"), visibility("default")));

#undef g_set_print_handler 
extern __typeof (g_set_print_handler) g_set_print_handler __attribute((alias("IA__g_set_print_handler"), visibility("default")));

#endif
#endif
#if IN_HEADER(__G_NODE_H__)
#if IN_FILE(__G_NODE_C__)
#undef g_node_child_index 
extern __typeof (g_node_child_index) g_node_child_index __attribute((alias("IA__g_node_child_index"), visibility("default")));

#undef g_node_child_position 
extern __typeof (g_node_child_position) g_node_child_position __attribute((alias("IA__g_node_child_position"), visibility("default")));

#undef g_node_children_foreach 
extern __typeof (g_node_children_foreach) g_node_children_foreach __attribute((alias("IA__g_node_children_foreach"), visibility("default")));

#undef g_node_copy 
extern __typeof (g_node_copy) g_node_copy __attribute((alias("IA__g_node_copy"), visibility("default")));

#undef g_node_copy_deep 
extern __typeof (g_node_copy_deep) g_node_copy_deep __attribute((alias("IA__g_node_copy_deep"), visibility("default")));

#undef g_node_depth 
extern __typeof (g_node_depth) g_node_depth __attribute((alias("IA__g_node_depth"), visibility("default")));

#undef g_node_destroy 
extern __typeof (g_node_destroy) g_node_destroy __attribute((alias("IA__g_node_destroy"), visibility("default")));

#undef g_node_find 
extern __typeof (g_node_find) g_node_find __attribute((alias("IA__g_node_find"), visibility("default")));

#undef g_node_find_child 
extern __typeof (g_node_find_child) g_node_find_child __attribute((alias("IA__g_node_find_child"), visibility("default")));

#undef g_node_first_sibling 
extern __typeof (g_node_first_sibling) g_node_first_sibling __attribute((alias("IA__g_node_first_sibling"), visibility("default")));

#undef g_node_get_root 
extern __typeof (g_node_get_root) g_node_get_root __attribute((alias("IA__g_node_get_root"), visibility("default")));

#undef g_node_insert 
extern __typeof (g_node_insert) g_node_insert __attribute((alias("IA__g_node_insert"), visibility("default")));

#undef g_node_insert_after 
extern __typeof (g_node_insert_after) g_node_insert_after __attribute((alias("IA__g_node_insert_after"), visibility("default")));

#undef g_node_insert_before 
extern __typeof (g_node_insert_before) g_node_insert_before __attribute((alias("IA__g_node_insert_before"), visibility("default")));

#undef g_node_is_ancestor 
extern __typeof (g_node_is_ancestor) g_node_is_ancestor __attribute((alias("IA__g_node_is_ancestor"), visibility("default")));

#undef g_node_last_child 
extern __typeof (g_node_last_child) g_node_last_child __attribute((alias("IA__g_node_last_child"), visibility("default")));

#undef g_node_last_sibling 
extern __typeof (g_node_last_sibling) g_node_last_sibling __attribute((alias("IA__g_node_last_sibling"), visibility("default")));

#undef g_node_max_height 
extern __typeof (g_node_max_height) g_node_max_height __attribute((alias("IA__g_node_max_height"), visibility("default")));

#undef g_node_n_children 
extern __typeof (g_node_n_children) g_node_n_children __attribute((alias("IA__g_node_n_children"), visibility("default")));

#undef g_node_new 
extern __typeof (g_node_new) g_node_new __attribute((alias("IA__g_node_new"), visibility("default")));

#undef g_node_n_nodes 
extern __typeof (g_node_n_nodes) g_node_n_nodes __attribute((alias("IA__g_node_n_nodes"), visibility("default")));

#undef g_node_nth_child 
extern __typeof (g_node_nth_child) g_node_nth_child __attribute((alias("IA__g_node_nth_child"), visibility("default")));

#ifndef G_DISABLE_DEPRECATED
#undef g_node_pop_allocator 
extern __typeof (g_node_pop_allocator) g_node_pop_allocator __attribute((alias("IA__g_node_pop_allocator"), visibility("default")));

#endif
#undef g_node_prepend 
extern __typeof (g_node_prepend) g_node_prepend __attribute((alias("IA__g_node_prepend"), visibility("default")));

#ifndef G_DISABLE_DEPRECATED
#undef g_node_push_allocator 
extern __typeof (g_node_push_allocator) g_node_push_allocator __attribute((alias("IA__g_node_push_allocator"), visibility("default")));

#endif
#undef g_node_reverse_children 
extern __typeof (g_node_reverse_children) g_node_reverse_children __attribute((alias("IA__g_node_reverse_children"), visibility("default")));

#undef g_node_traverse 
extern __typeof (g_node_traverse) g_node_traverse __attribute((alias("IA__g_node_traverse"), visibility("default")));

#undef g_node_unlink 
extern __typeof (g_node_unlink) g_node_unlink __attribute((alias("IA__g_node_unlink"), visibility("default")));

#endif
#endif
#if IN_HEADER(__G_OPTION_H__)
#if IN_FILE(__G_OPTION_C__)
#undef g_option_context_add_group 
extern __typeof (g_option_context_add_group) g_option_context_add_group __attribute((alias("IA__g_option_context_add_group"), visibility("default")));

#undef g_option_context_add_main_entries 
extern __typeof (g_option_context_add_main_entries) g_option_context_add_main_entries __attribute((alias("IA__g_option_context_add_main_entries"), visibility("default")));

#undef g_option_error_quark 
extern __typeof (g_option_error_quark) g_option_error_quark __attribute((alias("IA__g_option_error_quark"), visibility("default")));

#undef g_option_context_free 
extern __typeof (g_option_context_free) g_option_context_free __attribute((alias("IA__g_option_context_free"), visibility("default")));

#undef g_option_context_get_description 
extern __typeof (g_option_context_get_description) g_option_context_get_description __attribute((alias("IA__g_option_context_get_description"), visibility("default")));

#undef g_option_context_get_help_enabled 
extern __typeof (g_option_context_get_help_enabled) g_option_context_get_help_enabled __attribute((alias("IA__g_option_context_get_help_enabled"), visibility("default")));

#undef g_option_context_get_ignore_unknown_options 
extern __typeof (g_option_context_get_ignore_unknown_options) g_option_context_get_ignore_unknown_options __attribute((alias("IA__g_option_context_get_ignore_unknown_options"), visibility("default")));

#undef g_option_context_get_main_group 
extern __typeof (g_option_context_get_main_group) g_option_context_get_main_group __attribute((alias("IA__g_option_context_get_main_group"), visibility("default")));

#undef g_option_context_get_summary 
extern __typeof (g_option_context_get_summary) g_option_context_get_summary __attribute((alias("IA__g_option_context_get_summary"), visibility("default")));

#undef g_option_context_new 
extern __typeof (g_option_context_new) g_option_context_new __attribute((alias("IA__g_option_context_new"), visibility("default")));

#undef g_option_context_parse 
extern __typeof (g_option_context_parse) g_option_context_parse __attribute((alias("IA__g_option_context_parse"), visibility("default")));

#undef g_option_context_set_description 
extern __typeof (g_option_context_set_description) g_option_context_set_description __attribute((alias("IA__g_option_context_set_description"), visibility("default")));

#undef g_option_context_set_help_enabled 
extern __typeof (g_option_context_set_help_enabled) g_option_context_set_help_enabled __attribute((alias("IA__g_option_context_set_help_enabled"), visibility("default")));

#undef g_option_context_set_ignore_unknown_options 
extern __typeof (g_option_context_set_ignore_unknown_options) g_option_context_set_ignore_unknown_options __attribute((alias("IA__g_option_context_set_ignore_unknown_options"), visibility("default")));

#undef g_option_context_set_main_group 
extern __typeof (g_option_context_set_main_group) g_option_context_set_main_group __attribute((alias("IA__g_option_context_set_main_group"), visibility("default")));

#undef g_option_context_set_summary 
extern __typeof (g_option_context_set_summary) g_option_context_set_summary __attribute((alias("IA__g_option_context_set_summary"), visibility("default")));

#undef g_option_context_set_translate_func 
extern __typeof (g_option_context_set_translate_func) g_option_context_set_translate_func __attribute((alias("IA__g_option_context_set_translate_func"), visibility("default")));

#undef g_option_context_set_translation_domain 
extern __typeof (g_option_context_set_translation_domain) g_option_context_set_translation_domain __attribute((alias("IA__g_option_context_set_translation_domain"), visibility("default")));

#undef g_option_context_get_help 
extern __typeof (g_option_context_get_help) g_option_context_get_help __attribute((alias("IA__g_option_context_get_help"), visibility("default")));

#undef g_option_group_add_entries 
extern __typeof (g_option_group_add_entries) g_option_group_add_entries __attribute((alias("IA__g_option_group_add_entries"), visibility("default")));

#undef g_option_group_free 
extern __typeof (g_option_group_free) g_option_group_free __attribute((alias("IA__g_option_group_free"), visibility("default")));

#undef g_option_group_new 
extern __typeof (g_option_group_new) g_option_group_new __attribute((alias("IA__g_option_group_new"), visibility("default")));

#undef g_option_group_set_error_hook 
extern __typeof (g_option_group_set_error_hook) g_option_group_set_error_hook __attribute((alias("IA__g_option_group_set_error_hook"), visibility("default")));

#undef g_option_group_set_parse_hooks 
extern __typeof (g_option_group_set_parse_hooks) g_option_group_set_parse_hooks __attribute((alias("IA__g_option_group_set_parse_hooks"), visibility("default")));

#undef g_option_group_set_translate_func 
extern __typeof (g_option_group_set_translate_func) g_option_group_set_translate_func __attribute((alias("IA__g_option_group_set_translate_func"), visibility("default")));

#undef g_option_group_set_translation_domain 
extern __typeof (g_option_group_set_translation_domain) g_option_group_set_translation_domain __attribute((alias("IA__g_option_group_set_translation_domain"), visibility("default")));

#endif
#endif
#if IN_HEADER(__G_PATTERN_H__)
#if IN_FILE(__G_PATTERN_C__)
#undef g_pattern_match 
extern __typeof (g_pattern_match) g_pattern_match __attribute((alias("IA__g_pattern_match"), visibility("default")));

#undef g_pattern_match_simple 
extern __typeof (g_pattern_match_simple) g_pattern_match_simple __attribute((alias("IA__g_pattern_match_simple"), visibility("default")));

#undef g_pattern_match_string 
extern __typeof (g_pattern_match_string) g_pattern_match_string __attribute((alias("IA__g_pattern_match_string"), visibility("default")));

#undef g_pattern_spec_equal 
extern __typeof (g_pattern_spec_equal) g_pattern_spec_equal __attribute((alias("IA__g_pattern_spec_equal"), visibility("default")));

#undef g_pattern_spec_free 
extern __typeof (g_pattern_spec_free) g_pattern_spec_free __attribute((alias("IA__g_pattern_spec_free"), visibility("default")));

#undef g_pattern_spec_new 
extern __typeof (g_pattern_spec_new) g_pattern_spec_new __attribute((alias("IA__g_pattern_spec_new"), visibility("default")));

#endif
#endif
#if IN_HEADER(__G_POLL_H__)
#if IN_FILE(__G_POLL_C__)
#undef g_poll 
extern __typeof (g_poll) g_poll __attribute((alias("IA__g_poll"), visibility("default")));

#endif
#endif
#if IN_HEADER(__G_PRIMES_H__)
#if IN_FILE(__G_PRIMES_C__)
#undef g_spaced_primes_closest 
extern __typeof (g_spaced_primes_closest) g_spaced_primes_closest __attribute((alias("IA__g_spaced_primes_closest"), visibility("default")));

#endif
#endif
#if IN_HEADER(__G_PRINTF_H__)
#if IN_FILE(__G_PRINTF_C__)
#undef g_fprintf 
extern __typeof (g_fprintf) g_fprintf __attribute((alias("IA__g_fprintf"), visibility("default")));

#undef g_printf 
extern __typeof (g_printf) g_printf __attribute((alias("IA__g_printf"), visibility("default")));

#undef g_sprintf 
extern __typeof (g_sprintf) g_sprintf __attribute((alias("IA__g_sprintf"), visibility("default")));

#undef g_vasprintf 
extern __typeof (g_vasprintf) g_vasprintf __attribute((alias("IA__g_vasprintf"), visibility("default")));

#undef g_vfprintf 
extern __typeof (g_vfprintf) g_vfprintf __attribute((alias("IA__g_vfprintf"), visibility("default")));

#undef g_vprintf 
extern __typeof (g_vprintf) g_vprintf __attribute((alias("IA__g_vprintf"), visibility("default")));

#undef g_vsprintf 
extern __typeof (g_vsprintf) g_vsprintf __attribute((alias("IA__g_vsprintf"), visibility("default")));

#endif
#endif
#if IN_HEADER(__G_UTILS_H__)
#if IN_FILE(__G_PRINTF_C__)
#undef g_snprintf 
extern __typeof (g_snprintf) g_snprintf __attribute((alias("IA__g_snprintf"), visibility("default")));

#undef g_vsnprintf 
extern __typeof (g_vsnprintf) g_vsnprintf __attribute((alias("IA__g_vsnprintf"), visibility("default")));

#endif
#endif
#if IN_HEADER(__G_QSORT_H__)
#if IN_FILE(__G_QSORT_C__)
#undef g_qsort_with_data 
extern __typeof (g_qsort_with_data) g_qsort_with_data __attribute((alias("IA__g_qsort_with_data"), visibility("default")));

#endif
#endif
#if IN_HEADER(__G_QUEUE_H__)
#if IN_FILE(__G_QUEUE_C__)
#undef g_queue_clear 
extern __typeof (g_queue_clear) g_queue_clear __attribute((alias("IA__g_queue_clear"), visibility("default")));

#undef g_queue_copy 
extern __typeof (g_queue_copy) g_queue_copy __attribute((alias("IA__g_queue_copy"), visibility("default")));

#undef g_queue_delete_link 
extern __typeof (g_queue_delete_link) g_queue_delete_link __attribute((alias("IA__g_queue_delete_link"), visibility("default")));

#undef g_queue_find 
extern __typeof (g_queue_find) g_queue_find __attribute((alias("IA__g_queue_find"), visibility("default")));

#undef g_queue_find_custom 
extern __typeof (g_queue_find_custom) g_queue_find_custom __attribute((alias("IA__g_queue_find_custom"), visibility("default")));

#undef g_queue_foreach 
extern __typeof (g_queue_foreach) g_queue_foreach __attribute((alias("IA__g_queue_foreach"), visibility("default")));

#undef g_queue_free 
extern __typeof (g_queue_free) g_queue_free __attribute((alias("IA__g_queue_free"), visibility("default")));

#undef g_queue_get_length 
extern __typeof (g_queue_get_length) g_queue_get_length __attribute((alias("IA__g_queue_get_length"), visibility("default")));

#undef g_queue_index 
extern __typeof (g_queue_index) g_queue_index __attribute((alias("IA__g_queue_index"), visibility("default")));

#undef g_queue_init 
extern __typeof (g_queue_init) g_queue_init __attribute((alias("IA__g_queue_init"), visibility("default")));

#undef g_queue_insert_after 
extern __typeof (g_queue_insert_after) g_queue_insert_after __attribute((alias("IA__g_queue_insert_after"), visibility("default")));

#undef g_queue_insert_before 
extern __typeof (g_queue_insert_before) g_queue_insert_before __attribute((alias("IA__g_queue_insert_before"), visibility("default")));

#undef g_queue_insert_sorted 
extern __typeof (g_queue_insert_sorted) g_queue_insert_sorted __attribute((alias("IA__g_queue_insert_sorted"), visibility("default")));

#undef g_queue_is_empty 
extern __typeof (g_queue_is_empty) g_queue_is_empty __attribute((alias("IA__g_queue_is_empty"), visibility("default")));

#undef g_queue_link_index 
extern __typeof (g_queue_link_index) g_queue_link_index __attribute((alias("IA__g_queue_link_index"), visibility("default")));

#undef g_queue_new 
extern __typeof (g_queue_new) g_queue_new __attribute((alias("IA__g_queue_new"), visibility("default")));

#undef g_queue_peek_head 
extern __typeof (g_queue_peek_head) g_queue_peek_head __attribute((alias("IA__g_queue_peek_head"), visibility("default")));

#undef g_queue_peek_head_link 
extern __typeof (g_queue_peek_head_link) g_queue_peek_head_link __attribute((alias("IA__g_queue_peek_head_link"), visibility("default")));

#undef g_queue_peek_nth 
extern __typeof (g_queue_peek_nth) g_queue_peek_nth __attribute((alias("IA__g_queue_peek_nth"), visibility("default")));

#undef g_queue_peek_nth_link 
extern __typeof (g_queue_peek_nth_link) g_queue_peek_nth_link __attribute((alias("IA__g_queue_peek_nth_link"), visibility("default")));

#undef g_queue_peek_tail 
extern __typeof (g_queue_peek_tail) g_queue_peek_tail __attribute((alias("IA__g_queue_peek_tail"), visibility("default")));

#undef g_queue_peek_tail_link 
extern __typeof (g_queue_peek_tail_link) g_queue_peek_tail_link __attribute((alias("IA__g_queue_peek_tail_link"), visibility("default")));

#undef g_queue_pop_head 
extern __typeof (g_queue_pop_head) g_queue_pop_head __attribute((alias("IA__g_queue_pop_head"), visibility("default")));

#undef g_queue_pop_head_link 
extern __typeof (g_queue_pop_head_link) g_queue_pop_head_link __attribute((alias("IA__g_queue_pop_head_link"), visibility("default")));

#undef g_queue_pop_nth 
extern __typeof (g_queue_pop_nth) g_queue_pop_nth __attribute((alias("IA__g_queue_pop_nth"), visibility("default")));

#undef g_queue_pop_nth_link 
extern __typeof (g_queue_pop_nth_link) g_queue_pop_nth_link __attribute((alias("IA__g_queue_pop_nth_link"), visibility("default")));

#undef g_queue_pop_tail 
extern __typeof (g_queue_pop_tail) g_queue_pop_tail __attribute((alias("IA__g_queue_pop_tail"), visibility("default")));

#undef g_queue_pop_tail_link 
extern __typeof (g_queue_pop_tail_link) g_queue_pop_tail_link __attribute((alias("IA__g_queue_pop_tail_link"), visibility("default")));

#undef g_queue_push_head 
extern __typeof (g_queue_push_head) g_queue_push_head __attribute((alias("IA__g_queue_push_head"), visibility("default")));

#undef g_queue_push_head_link 
extern __typeof (g_queue_push_head_link) g_queue_push_head_link __attribute((alias("IA__g_queue_push_head_link"), visibility("default")));

#undef g_queue_push_nth 
extern __typeof (g_queue_push_nth) g_queue_push_nth __attribute((alias("IA__g_queue_push_nth"), visibility("default")));

#undef g_queue_push_nth_link 
extern __typeof (g_queue_push_nth_link) g_queue_push_nth_link __attribute((alias("IA__g_queue_push_nth_link"), visibility("default")));

#undef g_queue_push_tail 
extern __typeof (g_queue_push_tail) g_queue_push_tail __attribute((alias("IA__g_queue_push_tail"), visibility("default")));

#undef g_queue_push_tail_link 
extern __typeof (g_queue_push_tail_link) g_queue_push_tail_link __attribute((alias("IA__g_queue_push_tail_link"), visibility("default")));

#undef g_queue_remove 
extern __typeof (g_queue_remove) g_queue_remove __attribute((alias("IA__g_queue_remove"), visibility("default")));

#undef g_queue_remove_all 
extern __typeof (g_queue_remove_all) g_queue_remove_all __attribute((alias("IA__g_queue_remove_all"), visibility("default")));

#undef g_queue_reverse 
extern __typeof (g_queue_reverse) g_queue_reverse __attribute((alias("IA__g_queue_reverse"), visibility("default")));

#undef g_queue_sort 
extern __typeof (g_queue_sort) g_queue_sort __attribute((alias("IA__g_queue_sort"), visibility("default")));

#undef g_queue_unlink 
extern __typeof (g_queue_unlink) g_queue_unlink __attribute((alias("IA__g_queue_unlink"), visibility("default")));

#endif
#endif
#if IN_HEADER(__G_RAND_H__)
#if IN_FILE(__G_RAND_C__)
#undef g_rand_copy 
extern __typeof (g_rand_copy) g_rand_copy __attribute((alias("IA__g_rand_copy"), visibility("default")));

#undef g_rand_double 
extern __typeof (g_rand_double) g_rand_double __attribute((alias("IA__g_rand_double"), visibility("default")));

#undef g_rand_double_range 
extern __typeof (g_rand_double_range) g_rand_double_range __attribute((alias("IA__g_rand_double_range"), visibility("default")));

#undef g_rand_free 
extern __typeof (g_rand_free) g_rand_free __attribute((alias("IA__g_rand_free"), visibility("default")));

#undef g_rand_int 
extern __typeof (g_rand_int) g_rand_int __attribute((alias("IA__g_rand_int"), visibility("default")));

#undef g_rand_int_range 
extern __typeof (g_rand_int_range) g_rand_int_range __attribute((alias("IA__g_rand_int_range"), visibility("default")));

#undef g_rand_new 
extern __typeof (g_rand_new) g_rand_new __attribute((alias("IA__g_rand_new"), visibility("default")));

#undef g_rand_new_with_seed 
extern __typeof (g_rand_new_with_seed) g_rand_new_with_seed __attribute((alias("IA__g_rand_new_with_seed"), visibility("default")));

#undef g_rand_new_with_seed_array 
extern __typeof (g_rand_new_with_seed_array) g_rand_new_with_seed_array __attribute((alias("IA__g_rand_new_with_seed_array"), visibility("default")));

#undef g_random_double 
extern __typeof (g_random_double) g_random_double __attribute((alias("IA__g_random_double"), visibility("default")));

#undef g_random_double_range 
extern __typeof (g_random_double_range) g_random_double_range __attribute((alias("IA__g_random_double_range"), visibility("default")));

#undef g_random_int 
extern __typeof (g_random_int) g_random_int __attribute((alias("IA__g_random_int"), visibility("default")));

#undef g_random_int_range 
extern __typeof (g_random_int_range) g_random_int_range __attribute((alias("IA__g_random_int_range"), visibility("default")));

#undef g_random_set_seed 
extern __typeof (g_random_set_seed) g_random_set_seed __attribute((alias("IA__g_random_set_seed"), visibility("default")));

#undef g_rand_set_seed 
extern __typeof (g_rand_set_seed) g_rand_set_seed __attribute((alias("IA__g_rand_set_seed"), visibility("default")));

#undef g_rand_set_seed_array 
extern __typeof (g_rand_set_seed_array) g_rand_set_seed_array __attribute((alias("IA__g_rand_set_seed_array"), visibility("default")));

#endif
#endif
#if IN_HEADER(__G_REL_H__)
#if IN_FILE(__G_REL_C__)
#undef g_relation_count 
extern __typeof (g_relation_count) g_relation_count __attribute((alias("IA__g_relation_count"), visibility("default")));

#undef g_relation_delete 
extern __typeof (g_relation_delete) g_relation_delete __attribute((alias("IA__g_relation_delete"), visibility("default")));

#undef g_relation_destroy 
extern __typeof (g_relation_destroy) g_relation_destroy __attribute((alias("IA__g_relation_destroy"), visibility("default")));

#undef g_relation_exists 
extern __typeof (g_relation_exists) g_relation_exists __attribute((alias("IA__g_relation_exists"), visibility("default")));

#undef g_relation_index 
extern __typeof (g_relation_index) g_relation_index __attribute((alias("IA__g_relation_index"), visibility("default")));

#undef g_relation_insert 
extern __typeof (g_relation_insert) g_relation_insert __attribute((alias("IA__g_relation_insert"), visibility("default")));

#undef g_relation_new 
extern __typeof (g_relation_new) g_relation_new __attribute((alias("IA__g_relation_new"), visibility("default")));

#undef g_relation_print 
extern __typeof (g_relation_print) g_relation_print __attribute((alias("IA__g_relation_print"), visibility("default")));

#undef g_relation_select 
extern __typeof (g_relation_select) g_relation_select __attribute((alias("IA__g_relation_select"), visibility("default")));

#undef g_tuples_destroy 
extern __typeof (g_tuples_destroy) g_tuples_destroy __attribute((alias("IA__g_tuples_destroy"), visibility("default")));

#undef g_tuples_index 
extern __typeof (g_tuples_index) g_tuples_index __attribute((alias("IA__g_tuples_index"), visibility("default")));

#endif
#endif
#if IN_HEADER(__G_SCANNER_H__)
#if IN_FILE(__G_SCANNER_C__)
#undef g_scanner_cur_line 
extern __typeof (g_scanner_cur_line) g_scanner_cur_line __attribute((alias("IA__g_scanner_cur_line"), visibility("default")));

#undef g_scanner_cur_position 
extern __typeof (g_scanner_cur_position) g_scanner_cur_position __attribute((alias("IA__g_scanner_cur_position"), visibility("default")));

#undef g_scanner_cur_token 
extern __typeof (g_scanner_cur_token) g_scanner_cur_token __attribute((alias("IA__g_scanner_cur_token"), visibility("default")));

#undef g_scanner_cur_value 
extern __typeof (g_scanner_cur_value) g_scanner_cur_value __attribute((alias("IA__g_scanner_cur_value"), visibility("default")));

#undef g_scanner_destroy 
extern __typeof (g_scanner_destroy) g_scanner_destroy __attribute((alias("IA__g_scanner_destroy"), visibility("default")));

#undef g_scanner_eof 
extern __typeof (g_scanner_eof) g_scanner_eof __attribute((alias("IA__g_scanner_eof"), visibility("default")));

#undef g_scanner_error 
extern __typeof (g_scanner_error) g_scanner_error __attribute((alias("IA__g_scanner_error"), visibility("default")));

#undef g_scanner_get_next_token 
extern __typeof (g_scanner_get_next_token) g_scanner_get_next_token __attribute((alias("IA__g_scanner_get_next_token"), visibility("default")));

#undef g_scanner_input_file 
extern __typeof (g_scanner_input_file) g_scanner_input_file __attribute((alias("IA__g_scanner_input_file"), visibility("default")));

#undef g_scanner_input_text 
extern __typeof (g_scanner_input_text) g_scanner_input_text __attribute((alias("IA__g_scanner_input_text"), visibility("default")));

#undef g_scanner_lookup_symbol 
extern __typeof (g_scanner_lookup_symbol) g_scanner_lookup_symbol __attribute((alias("IA__g_scanner_lookup_symbol"), visibility("default")));

#undef g_scanner_new 
extern __typeof (g_scanner_new) g_scanner_new __attribute((alias("IA__g_scanner_new"), visibility("default")));

#undef g_scanner_peek_next_token 
extern __typeof (g_scanner_peek_next_token) g_scanner_peek_next_token __attribute((alias("IA__g_scanner_peek_next_token"), visibility("default")));

#undef g_scanner_scope_add_symbol 
extern __typeof (g_scanner_scope_add_symbol) g_scanner_scope_add_symbol __attribute((alias("IA__g_scanner_scope_add_symbol"), visibility("default")));

#undef g_scanner_scope_foreach_symbol 
extern __typeof (g_scanner_scope_foreach_symbol) g_scanner_scope_foreach_symbol __attribute((alias("IA__g_scanner_scope_foreach_symbol"), visibility("default")));

#undef g_scanner_scope_lookup_symbol 
extern __typeof (g_scanner_scope_lookup_symbol) g_scanner_scope_lookup_symbol __attribute((alias("IA__g_scanner_scope_lookup_symbol"), visibility("default")));

#undef g_scanner_scope_remove_symbol 
extern __typeof (g_scanner_scope_remove_symbol) g_scanner_scope_remove_symbol __attribute((alias("IA__g_scanner_scope_remove_symbol"), visibility("default")));

#undef g_scanner_set_scope 
extern __typeof (g_scanner_set_scope) g_scanner_set_scope __attribute((alias("IA__g_scanner_set_scope"), visibility("default")));

#undef g_scanner_sync_file_offset 
extern __typeof (g_scanner_sync_file_offset) g_scanner_sync_file_offset __attribute((alias("IA__g_scanner_sync_file_offset"), visibility("default")));

#undef g_scanner_unexp_token 
extern __typeof (g_scanner_unexp_token) g_scanner_unexp_token __attribute((alias("IA__g_scanner_unexp_token"), visibility("default")));

#undef g_scanner_warn 
extern __typeof (g_scanner_warn) g_scanner_warn __attribute((alias("IA__g_scanner_warn"), visibility("default")));

#endif
#endif
#if IN_HEADER(__G_SEQUENCE_H__)
#if IN_FILE(__G_SEQUENCE_C__)
#undef g_sequence_new 
extern __typeof (g_sequence_new) g_sequence_new __attribute((alias("IA__g_sequence_new"), visibility("default")));

#undef g_sequence_free 
extern __typeof (g_sequence_free) g_sequence_free __attribute((alias("IA__g_sequence_free"), visibility("default")));

#undef g_sequence_get_length 
extern __typeof (g_sequence_get_length) g_sequence_get_length __attribute((alias("IA__g_sequence_get_length"), visibility("default")));

#undef g_sequence_foreach 
extern __typeof (g_sequence_foreach) g_sequence_foreach __attribute((alias("IA__g_sequence_foreach"), visibility("default")));

#undef g_sequence_foreach_range 
extern __typeof (g_sequence_foreach_range) g_sequence_foreach_range __attribute((alias("IA__g_sequence_foreach_range"), visibility("default")));

#undef g_sequence_sort 
extern __typeof (g_sequence_sort) g_sequence_sort __attribute((alias("IA__g_sequence_sort"), visibility("default")));

#undef g_sequence_sort_iter 
extern __typeof (g_sequence_sort_iter) g_sequence_sort_iter __attribute((alias("IA__g_sequence_sort_iter"), visibility("default")));

#undef g_sequence_get_begin_iter 
extern __typeof (g_sequence_get_begin_iter) g_sequence_get_begin_iter __attribute((alias("IA__g_sequence_get_begin_iter"), visibility("default")));

#undef g_sequence_get_end_iter 
extern __typeof (g_sequence_get_end_iter) g_sequence_get_end_iter __attribute((alias("IA__g_sequence_get_end_iter"), visibility("default")));

#undef g_sequence_get_iter_at_pos 
extern __typeof (g_sequence_get_iter_at_pos) g_sequence_get_iter_at_pos __attribute((alias("IA__g_sequence_get_iter_at_pos"), visibility("default")));

#undef g_sequence_append 
extern __typeof (g_sequence_append) g_sequence_append __attribute((alias("IA__g_sequence_append"), visibility("default")));

#undef g_sequence_prepend 
extern __typeof (g_sequence_prepend) g_sequence_prepend __attribute((alias("IA__g_sequence_prepend"), visibility("default")));

#undef g_sequence_insert_before 
extern __typeof (g_sequence_insert_before) g_sequence_insert_before __attribute((alias("IA__g_sequence_insert_before"), visibility("default")));

#undef g_sequence_move 
extern __typeof (g_sequence_move) g_sequence_move __attribute((alias("IA__g_sequence_move"), visibility("default")));

#undef g_sequence_swap 
extern __typeof (g_sequence_swap) g_sequence_swap __attribute((alias("IA__g_sequence_swap"), visibility("default")));

#undef g_sequence_insert_sorted 
extern __typeof (g_sequence_insert_sorted) g_sequence_insert_sorted __attribute((alias("IA__g_sequence_insert_sorted"), visibility("default")));

#undef g_sequence_insert_sorted_iter 
extern __typeof (g_sequence_insert_sorted_iter) g_sequence_insert_sorted_iter __attribute((alias("IA__g_sequence_insert_sorted_iter"), visibility("default")));

#undef g_sequence_sort_changed 
extern __typeof (g_sequence_sort_changed) g_sequence_sort_changed __attribute((alias("IA__g_sequence_sort_changed"), visibility("default")));

#undef g_sequence_sort_changed_iter 
extern __typeof (g_sequence_sort_changed_iter) g_sequence_sort_changed_iter __attribute((alias("IA__g_sequence_sort_changed_iter"), visibility("default")));

#undef g_sequence_remove 
extern __typeof (g_sequence_remove) g_sequence_remove __attribute((alias("IA__g_sequence_remove"), visibility("default")));

#undef g_sequence_remove_range 
extern __typeof (g_sequence_remove_range) g_sequence_remove_range __attribute((alias("IA__g_sequence_remove_range"), visibility("default")));

#undef g_sequence_move_range 
extern __typeof (g_sequence_move_range) g_sequence_move_range __attribute((alias("IA__g_sequence_move_range"), visibility("default")));

#undef g_sequence_search 
extern __typeof (g_sequence_search) g_sequence_search __attribute((alias("IA__g_sequence_search"), visibility("default")));

#undef g_sequence_search_iter 
extern __typeof (g_sequence_search_iter) g_sequence_search_iter __attribute((alias("IA__g_sequence_search_iter"), visibility("default")));

#undef g_sequence_get 
extern __typeof (g_sequence_get) g_sequence_get __attribute((alias("IA__g_sequence_get"), visibility("default")));

#undef g_sequence_set 
extern __typeof (g_sequence_set) g_sequence_set __attribute((alias("IA__g_sequence_set"), visibility("default")));

#undef g_sequence_iter_is_begin 
extern __typeof (g_sequence_iter_is_begin) g_sequence_iter_is_begin __attribute((alias("IA__g_sequence_iter_is_begin"), visibility("default")));

#undef g_sequence_iter_is_end 
extern __typeof (g_sequence_iter_is_end) g_sequence_iter_is_end __attribute((alias("IA__g_sequence_iter_is_end"), visibility("default")));

#undef g_sequence_iter_next 
extern __typeof (g_sequence_iter_next) g_sequence_iter_next __attribute((alias("IA__g_sequence_iter_next"), visibility("default")));

#undef g_sequence_iter_prev 
extern __typeof (g_sequence_iter_prev) g_sequence_iter_prev __attribute((alias("IA__g_sequence_iter_prev"), visibility("default")));

#undef g_sequence_iter_get_position 
extern __typeof (g_sequence_iter_get_position) g_sequence_iter_get_position __attribute((alias("IA__g_sequence_iter_get_position"), visibility("default")));

#undef g_sequence_iter_move 
extern __typeof (g_sequence_iter_move) g_sequence_iter_move __attribute((alias("IA__g_sequence_iter_move"), visibility("default")));

#undef g_sequence_iter_get_sequence 
extern __typeof (g_sequence_iter_get_sequence) g_sequence_iter_get_sequence __attribute((alias("IA__g_sequence_iter_get_sequence"), visibility("default")));

#undef g_sequence_iter_compare 
extern __typeof (g_sequence_iter_compare) g_sequence_iter_compare __attribute((alias("IA__g_sequence_iter_compare"), visibility("default")));

#undef g_sequence_range_get_midpoint 
extern __typeof (g_sequence_range_get_midpoint) g_sequence_range_get_midpoint __attribute((alias("IA__g_sequence_range_get_midpoint"), visibility("default")));

#endif
#endif
#if IN_HEADER(__G_SHELL_H__)
#if IN_FILE(__G_SHELL_C__)
#undef g_shell_error_quark 
extern __typeof (g_shell_error_quark) g_shell_error_quark __attribute((alias("IA__g_shell_error_quark"), visibility("default")));

#undef g_shell_parse_argv 
extern __typeof (g_shell_parse_argv) g_shell_parse_argv __attribute((alias("IA__g_shell_parse_argv"), visibility("default")));

#undef g_shell_quote 
extern __typeof (g_shell_quote) g_shell_quote __attribute((alias("IA__g_shell_quote"), visibility("default")));

#undef g_shell_unquote 
extern __typeof (g_shell_unquote) g_shell_unquote __attribute((alias("IA__g_shell_unquote"), visibility("default")));

#endif
#endif
#if IN_HEADER(__G_SLIST_H__)
#if IN_FILE(__G_SLIST_C__)
#undef g_slist_alloc 
extern __typeof (g_slist_alloc) g_slist_alloc __attribute((alias("IA__g_slist_alloc"), visibility("default")));

#undef g_slist_append 
extern __typeof (g_slist_append) g_slist_append __attribute((alias("IA__g_slist_append"), visibility("default")));

#undef g_slist_concat 
extern __typeof (g_slist_concat) g_slist_concat __attribute((alias("IA__g_slist_concat"), visibility("default")));

#undef g_slist_copy 
extern __typeof (g_slist_copy) g_slist_copy __attribute((alias("IA__g_slist_copy"), visibility("default")));

#undef g_slist_delete_link 
extern __typeof (g_slist_delete_link) g_slist_delete_link __attribute((alias("IA__g_slist_delete_link"), visibility("default")));

#undef g_slist_find 
extern __typeof (g_slist_find) g_slist_find __attribute((alias("IA__g_slist_find"), visibility("default")));

#undef g_slist_find_custom 
extern __typeof (g_slist_find_custom) g_slist_find_custom __attribute((alias("IA__g_slist_find_custom"), visibility("default")));

#undef g_slist_foreach 
extern __typeof (g_slist_foreach) g_slist_foreach __attribute((alias("IA__g_slist_foreach"), visibility("default")));

#undef g_slist_free 
extern __typeof (g_slist_free) g_slist_free __attribute((alias("IA__g_slist_free"), visibility("default")));

#undef g_slist_free_1 
extern __typeof (g_slist_free_1) g_slist_free_1 __attribute((alias("IA__g_slist_free_1"), visibility("default")));

#undef g_slist_index 
extern __typeof (g_slist_index) g_slist_index __attribute((alias("IA__g_slist_index"), visibility("default")));

#undef g_slist_insert 
extern __typeof (g_slist_insert) g_slist_insert __attribute((alias("IA__g_slist_insert"), visibility("default")));

#undef g_slist_insert_before 
extern __typeof (g_slist_insert_before) g_slist_insert_before __attribute((alias("IA__g_slist_insert_before"), visibility("default")));

#undef g_slist_insert_sorted 
extern __typeof (g_slist_insert_sorted) g_slist_insert_sorted __attribute((alias("IA__g_slist_insert_sorted"), visibility("default")));

#undef g_slist_insert_sorted_with_data 
extern __typeof (g_slist_insert_sorted_with_data) g_slist_insert_sorted_with_data __attribute((alias("IA__g_slist_insert_sorted_with_data"), visibility("default")));

#undef g_slist_last 
extern __typeof (g_slist_last) g_slist_last __attribute((alias("IA__g_slist_last"), visibility("default")));

#undef g_slist_length 
extern __typeof (g_slist_length) g_slist_length __attribute((alias("IA__g_slist_length"), visibility("default")));

#undef g_slist_nth 
extern __typeof (g_slist_nth) g_slist_nth __attribute((alias("IA__g_slist_nth"), visibility("default")));

#undef g_slist_nth_data 
extern __typeof (g_slist_nth_data) g_slist_nth_data __attribute((alias("IA__g_slist_nth_data"), visibility("default")));

#ifndef G_DISABLE_DEPRECATED
#undef g_slist_pop_allocator 
extern __typeof (g_slist_pop_allocator) g_slist_pop_allocator __attribute((alias("IA__g_slist_pop_allocator"), visibility("default")));

#endif
#undef g_slist_position 
extern __typeof (g_slist_position) g_slist_position __attribute((alias("IA__g_slist_position"), visibility("default")));

#undef g_slist_prepend 
extern __typeof (g_slist_prepend) g_slist_prepend __attribute((alias("IA__g_slist_prepend"), visibility("default")));

#ifndef G_DISABLE_DEPRECATED
#undef g_slist_push_allocator 
extern __typeof (g_slist_push_allocator) g_slist_push_allocator __attribute((alias("IA__g_slist_push_allocator"), visibility("default")));

#endif
#undef g_slist_remove 
extern __typeof (g_slist_remove) g_slist_remove __attribute((alias("IA__g_slist_remove"), visibility("default")));

#undef g_slist_remove_all 
extern __typeof (g_slist_remove_all) g_slist_remove_all __attribute((alias("IA__g_slist_remove_all"), visibility("default")));

#undef g_slist_remove_link 
extern __typeof (g_slist_remove_link) g_slist_remove_link __attribute((alias("IA__g_slist_remove_link"), visibility("default")));

#undef g_slist_reverse 
extern __typeof (g_slist_reverse) g_slist_reverse __attribute((alias("IA__g_slist_reverse"), visibility("default")));

#undef g_slist_sort 
extern __typeof (g_slist_sort) g_slist_sort __attribute((alias("IA__g_slist_sort"), visibility("default")));

#undef g_slist_sort_with_data 
extern __typeof (g_slist_sort_with_data) g_slist_sort_with_data __attribute((alias("IA__g_slist_sort_with_data"), visibility("default")));

#endif
#endif
#if IN_HEADER(__G_SPAWN_H__)
#if IN_FILE(__G_SPAWN_C__)
#ifndef _WIN64
#undef g_spawn_async 
extern __typeof (g_spawn_async) g_spawn_async __attribute((alias("IA__g_spawn_async"), visibility("default")));

#undef g_spawn_async_with_pipes 
extern __typeof (g_spawn_async_with_pipes) g_spawn_async_with_pipes __attribute((alias("IA__g_spawn_async_with_pipes"), visibility("default")));

#endif
#undef g_spawn_close_pid 
extern __typeof (g_spawn_close_pid) g_spawn_close_pid __attribute((alias("IA__g_spawn_close_pid"), visibility("default")));

#ifndef _WIN64
#undef g_spawn_command_line_async 
extern __typeof (g_spawn_command_line_async) g_spawn_command_line_async __attribute((alias("IA__g_spawn_command_line_async"), visibility("default")));

#undef g_spawn_command_line_sync 
extern __typeof (g_spawn_command_line_sync) g_spawn_command_line_sync __attribute((alias("IA__g_spawn_command_line_sync"), visibility("default")));

#endif
#undef g_spawn_error_quark 
extern __typeof (g_spawn_error_quark) g_spawn_error_quark __attribute((alias("IA__g_spawn_error_quark"), visibility("default")));

#ifndef _WIN64
#undef g_spawn_sync 
extern __typeof (g_spawn_sync) g_spawn_sync __attribute((alias("IA__g_spawn_sync"), visibility("default")));

#endif
#ifdef G_OS_WIN32
#undef g_spawn_async_utf8 
extern __typeof (g_spawn_async_utf8) g_spawn_async_utf8 __attribute((alias("IA__g_spawn_async_utf8"), visibility("default")));

#undef g_spawn_async_with_pipes_utf8 
extern __typeof (g_spawn_async_with_pipes_utf8) g_spawn_async_with_pipes_utf8 __attribute((alias("IA__g_spawn_async_with_pipes_utf8"), visibility("default")));

#undef g_spawn_command_line_async_utf8 
extern __typeof (g_spawn_command_line_async_utf8) g_spawn_command_line_async_utf8 __attribute((alias("IA__g_spawn_command_line_async_utf8"), visibility("default")));

#undef g_spawn_command_line_sync_utf8 
extern __typeof (g_spawn_command_line_sync_utf8) g_spawn_command_line_sync_utf8 __attribute((alias("IA__g_spawn_command_line_sync_utf8"), visibility("default")));

#undef g_spawn_sync_utf8 
extern __typeof (g_spawn_sync_utf8) g_spawn_sync_utf8 __attribute((alias("IA__g_spawn_sync_utf8"), visibility("default")));

#endif
#endif
#endif
#if IN_HEADER(__G_STDIO_H__)
#if IN_FILE(__G_STDIO_C__)
#if !defined(G_OS_UNIX) || defined(G_STDIO_NO_WRAP_ON_UNIX)
#undef g_chmod 
extern __typeof (g_chmod) g_chmod __attribute((alias("IA__g_chmod"), visibility("default")));

#undef g_open 
extern __typeof (g_open) g_open __attribute((alias("IA__g_open"), visibility("default")));

#undef g_creat 
extern __typeof (g_creat) g_creat __attribute((alias("IA__g_creat"), visibility("default")));

#undef g_rename 
extern __typeof (g_rename) g_rename __attribute((alias("IA__g_rename"), visibility("default")));

#undef g_mkdir 
extern __typeof (g_mkdir) g_mkdir __attribute((alias("IA__g_mkdir"), visibility("default")));

#undef g_stat 
extern __typeof (g_stat) g_stat __attribute((alias("IA__g_stat"), visibility("default")));

#undef g_lstat 
extern __typeof (g_lstat) g_lstat __attribute((alias("IA__g_lstat"), visibility("default")));

#undef g_remove 
extern __typeof (g_remove) g_remove __attribute((alias("IA__g_remove"), visibility("default")));

#undef g_fopen 
extern __typeof (g_fopen) g_fopen __attribute((alias("IA__g_fopen"), visibility("default")));

#undef g_freopen 
extern __typeof (g_freopen) g_freopen __attribute((alias("IA__g_freopen"), visibility("default")));

#undef g_utime 
extern __typeof (g_utime) g_utime __attribute((alias("IA__g_utime"), visibility("default")));

#endif
#undef g_access 
extern __typeof (g_access) g_access __attribute((alias("IA__g_access"), visibility("default")));

#undef g_chdir 
extern __typeof (g_chdir) g_chdir __attribute((alias("IA__g_chdir"), visibility("default")));

#undef g_unlink 
extern __typeof (g_unlink) g_unlink __attribute((alias("IA__g_unlink"), visibility("default")));

#undef g_rmdir 
extern __typeof (g_rmdir) g_rmdir __attribute((alias("IA__g_rmdir"), visibility("default")));

#endif
#endif
#if IN_HEADER(__G_STRFUNCS_H__)
#if IN_FILE(__G_STRFUNCS_C__)
#undef g_ascii_digit_value 
extern __typeof (g_ascii_digit_value) g_ascii_digit_value __attribute((alias("IA__g_ascii_digit_value"), visibility("default")));

#undef g_ascii_dtostr 
extern __typeof (g_ascii_dtostr) g_ascii_dtostr __attribute((alias("IA__g_ascii_dtostr"), visibility("default")));

#undef g_ascii_formatd 
extern __typeof (g_ascii_formatd) g_ascii_formatd __attribute((alias("IA__g_ascii_formatd"), visibility("default")));

#undef g_ascii_strdown 
extern __typeof (g_ascii_strdown) g_ascii_strdown __attribute((alias("IA__g_ascii_strdown"), visibility("default")));

#undef g_ascii_strtod 
extern __typeof (g_ascii_strtod) g_ascii_strtod __attribute((alias("IA__g_ascii_strtod"), visibility("default")));

#undef g_ascii_strtoull 
extern __typeof (g_ascii_strtoull) g_ascii_strtoull __attribute((alias("IA__g_ascii_strtoull"), visibility("default")));

#undef g_ascii_strtoll 
extern __typeof (g_ascii_strtoll) g_ascii_strtoll __attribute((alias("IA__g_ascii_strtoll"), visibility("default")));

#undef g_ascii_strup 
extern __typeof (g_ascii_strup) g_ascii_strup __attribute((alias("IA__g_ascii_strup"), visibility("default")));

#undef g_ascii_tolower 
extern __typeof (g_ascii_tolower) g_ascii_tolower __attribute((alias("IA__g_ascii_tolower"), visibility("default")));

#undef g_ascii_toupper 
extern __typeof (g_ascii_toupper) g_ascii_toupper __attribute((alias("IA__g_ascii_toupper"), visibility("default")));

#undef g_ascii_xdigit_value 
extern __typeof (g_ascii_xdigit_value) g_ascii_xdigit_value __attribute((alias("IA__g_ascii_xdigit_value"), visibility("default")));

#undef g_ascii_strcasecmp 
extern __typeof (g_ascii_strcasecmp) g_ascii_strcasecmp __attribute((alias("IA__g_ascii_strcasecmp"), visibility("default")));

#undef g_ascii_strncasecmp 
extern __typeof (g_ascii_strncasecmp) g_ascii_strncasecmp __attribute((alias("IA__g_ascii_strncasecmp"), visibility("default")));

#undef g_memdup 
extern __typeof (g_memdup) g_memdup __attribute((alias("IA__g_memdup"), visibility("default")));

#undef g_stpcpy 
extern __typeof (g_stpcpy) g_stpcpy __attribute((alias("IA__g_stpcpy"), visibility("default")));

#undef g_strcanon 
extern __typeof (g_strcanon) g_strcanon __attribute((alias("IA__g_strcanon"), visibility("default")));

#undef g_strchomp 
extern __typeof (g_strchomp) g_strchomp __attribute((alias("IA__g_strchomp"), visibility("default")));

#undef g_strchug 
extern __typeof (g_strchug) g_strchug __attribute((alias("IA__g_strchug"), visibility("default")));

#undef g_strcompress 
extern __typeof (g_strcompress) g_strcompress __attribute((alias("IA__g_strcompress"), visibility("default")));

#undef g_strconcat 
extern __typeof (g_strconcat) g_strconcat __attribute((alias("IA__g_strconcat"), visibility("default")));

#undef g_strdelimit 
extern __typeof (g_strdelimit) g_strdelimit __attribute((alias("IA__g_strdelimit"), visibility("default")));

#undef g_strdup 
extern __typeof (g_strdup) g_strdup __attribute((alias("IA__g_strdup"), visibility("default")));

#undef g_strdup_printf 
extern __typeof (g_strdup_printf) g_strdup_printf __attribute((alias("IA__g_strdup_printf"), visibility("default")));

#undef g_strdupv 
extern __typeof (g_strdupv) g_strdupv __attribute((alias("IA__g_strdupv"), visibility("default")));

#undef g_strdup_vprintf 
extern __typeof (g_strdup_vprintf) g_strdup_vprintf __attribute((alias("IA__g_strdup_vprintf"), visibility("default")));

#undef g_strerror 
extern __typeof (g_strerror) g_strerror __attribute((alias("IA__g_strerror"), visibility("default")));

#undef g_strescape 
extern __typeof (g_strescape) g_strescape __attribute((alias("IA__g_strescape"), visibility("default")));

#undef g_strfreev 
extern __typeof (g_strfreev) g_strfreev __attribute((alias("IA__g_strfreev"), visibility("default")));

#undef g_str_has_prefix 
extern __typeof (g_str_has_prefix) g_str_has_prefix __attribute((alias("IA__g_str_has_prefix"), visibility("default")));

#undef g_str_has_suffix 
extern __typeof (g_str_has_suffix) g_str_has_suffix __attribute((alias("IA__g_str_has_suffix"), visibility("default")));

#undef g_strjoin 
extern __typeof (g_strjoin) g_strjoin __attribute((alias("IA__g_strjoin"), visibility("default")));

#undef g_strjoinv 
extern __typeof (g_strjoinv) g_strjoinv __attribute((alias("IA__g_strjoinv"), visibility("default")));

#undef g_strlcat 
extern __typeof (g_strlcat) g_strlcat __attribute((alias("IA__g_strlcat"), visibility("default")));

#undef g_strlcpy 
extern __typeof (g_strlcpy) g_strlcpy __attribute((alias("IA__g_strlcpy"), visibility("default")));

#undef g_strndup 
extern __typeof (g_strndup) g_strndup __attribute((alias("IA__g_strndup"), visibility("default")));

#undef g_strnfill 
extern __typeof (g_strnfill) g_strnfill __attribute((alias("IA__g_strnfill"), visibility("default")));

#undef g_strreverse 
extern __typeof (g_strreverse) g_strreverse __attribute((alias("IA__g_strreverse"), visibility("default")));

#undef g_strrstr 
extern __typeof (g_strrstr) g_strrstr __attribute((alias("IA__g_strrstr"), visibility("default")));

#undef g_strrstr_len 
extern __typeof (g_strrstr_len) g_strrstr_len __attribute((alias("IA__g_strrstr_len"), visibility("default")));

#undef g_strsignal 
extern __typeof (g_strsignal) g_strsignal __attribute((alias("IA__g_strsignal"), visibility("default")));

#undef g_strsplit 
extern __typeof (g_strsplit) g_strsplit __attribute((alias("IA__g_strsplit"), visibility("default")));

#undef g_strsplit_set 
extern __typeof (g_strsplit_set) g_strsplit_set __attribute((alias("IA__g_strsplit_set"), visibility("default")));

#undef g_strstr_len 
extern __typeof (g_strstr_len) g_strstr_len __attribute((alias("IA__g_strstr_len"), visibility("default")));

#undef g_strtod 
extern __typeof (g_strtod) g_strtod __attribute((alias("IA__g_strtod"), visibility("default")));

#ifndef G_DISABLE_DEPRECATED
#undef g_strcasecmp 
extern __typeof (g_strcasecmp) g_strcasecmp __attribute((alias("IA__g_strcasecmp"), visibility("default")));

#undef g_strncasecmp 
extern __typeof (g_strncasecmp) g_strncasecmp __attribute((alias("IA__g_strncasecmp"), visibility("default")));

#undef g_strup 
extern __typeof (g_strup) g_strup __attribute((alias("IA__g_strup"), visibility("default")));

#undef g_strdown 
extern __typeof (g_strdown) g_strdown __attribute((alias("IA__g_strdown"), visibility("default")));

#endif
#undef g_strv_length 
extern __typeof (g_strv_length) g_strv_length __attribute((alias("IA__g_strv_length"), visibility("default")));

#undef g_strip_context 
extern __typeof (g_strip_context) g_strip_context __attribute((alias("IA__g_strip_context"), visibility("default")));

#undef g_dgettext 
extern __typeof (g_dgettext) g_dgettext __attribute((alias("IA__g_dgettext"), visibility("default")));

#undef g_dngettext 
extern __typeof (g_dngettext) g_dngettext __attribute((alias("IA__g_dngettext"), visibility("default")));

#undef g_dpgettext 
extern __typeof (g_dpgettext) g_dpgettext __attribute((alias("IA__g_dpgettext"), visibility("default")));

#undef g_dpgettext2 
extern __typeof (g_dpgettext2) g_dpgettext2 __attribute((alias("IA__g_dpgettext2"), visibility("default")));

#endif
#endif
#if IN_HEADER(__G_URI_FUNCS_H__)
#if IN_FILE(__G_URI_FUNCS_C__)
#undef g_uri_unescape_string 
extern __typeof (g_uri_unescape_string) g_uri_unescape_string __attribute((alias("IA__g_uri_unescape_string"), visibility("default")));

#undef g_uri_unescape_segment 
extern __typeof (g_uri_unescape_segment) g_uri_unescape_segment __attribute((alias("IA__g_uri_unescape_segment"), visibility("default")));

#undef g_uri_parse_scheme 
extern __typeof (g_uri_parse_scheme) g_uri_parse_scheme __attribute((alias("IA__g_uri_parse_scheme"), visibility("default")));

#undef g_uri_escape_string 
extern __typeof (g_uri_escape_string) g_uri_escape_string __attribute((alias("IA__g_uri_escape_string"), visibility("default")));

#endif
#endif
#if IN_HEADER(__G_STRING_H__)
#if IN_FILE(__G_STRING_C__)
#undef g_string_append 
extern __typeof (g_string_append) g_string_append __attribute((alias("IA__g_string_append"), visibility("default")));

#undef g_string_append_len 
extern __typeof (g_string_append_len) g_string_append_len __attribute((alias("IA__g_string_append_len"), visibility("default")));

#undef g_string_append_printf 
extern __typeof (g_string_append_printf) g_string_append_printf __attribute((alias("IA__g_string_append_printf"), visibility("default")));

#undef g_string_append_unichar 
extern __typeof (g_string_append_unichar) g_string_append_unichar __attribute((alias("IA__g_string_append_unichar"), visibility("default")));

#undef g_string_append_vprintf 
extern __typeof (g_string_append_vprintf) g_string_append_vprintf __attribute((alias("IA__g_string_append_vprintf"), visibility("default")));

#undef g_string_ascii_down 
extern __typeof (g_string_ascii_down) g_string_ascii_down __attribute((alias("IA__g_string_ascii_down"), visibility("default")));

#undef g_string_ascii_up 
extern __typeof (g_string_ascii_up) g_string_ascii_up __attribute((alias("IA__g_string_ascii_up"), visibility("default")));

#undef g_string_assign 
extern __typeof (g_string_assign) g_string_assign __attribute((alias("IA__g_string_assign"), visibility("default")));

#undef g_string_chunk_free 
extern __typeof (g_string_chunk_free) g_string_chunk_free __attribute((alias("IA__g_string_chunk_free"), visibility("default")));

#undef g_string_chunk_clear 
extern __typeof (g_string_chunk_clear) g_string_chunk_clear __attribute((alias("IA__g_string_chunk_clear"), visibility("default")));

#undef g_string_chunk_insert 
extern __typeof (g_string_chunk_insert) g_string_chunk_insert __attribute((alias("IA__g_string_chunk_insert"), visibility("default")));

#undef g_string_chunk_insert_const 
extern __typeof (g_string_chunk_insert_const) g_string_chunk_insert_const __attribute((alias("IA__g_string_chunk_insert_const"), visibility("default")));

#undef g_string_chunk_insert_len 
extern __typeof (g_string_chunk_insert_len) g_string_chunk_insert_len __attribute((alias("IA__g_string_chunk_insert_len"), visibility("default")));

#undef g_string_chunk_new 
extern __typeof (g_string_chunk_new) g_string_chunk_new __attribute((alias("IA__g_string_chunk_new"), visibility("default")));

#undef g_string_equal 
extern __typeof (g_string_equal) g_string_equal __attribute((alias("IA__g_string_equal"), visibility("default")));

#undef g_string_erase 
extern __typeof (g_string_erase) g_string_erase __attribute((alias("IA__g_string_erase"), visibility("default")));

#undef g_string_free 
extern __typeof (g_string_free) g_string_free __attribute((alias("IA__g_string_free"), visibility("default")));

#undef g_string_hash 
extern __typeof (g_string_hash) g_string_hash __attribute((alias("IA__g_string_hash"), visibility("default")));

#undef g_string_insert 
extern __typeof (g_string_insert) g_string_insert __attribute((alias("IA__g_string_insert"), visibility("default")));

#undef g_string_insert_c 
extern __typeof (g_string_insert_c) g_string_insert_c __attribute((alias("IA__g_string_insert_c"), visibility("default")));

#undef g_string_insert_len 
extern __typeof (g_string_insert_len) g_string_insert_len __attribute((alias("IA__g_string_insert_len"), visibility("default")));

#undef g_string_insert_unichar 
extern __typeof (g_string_insert_unichar) g_string_insert_unichar __attribute((alias("IA__g_string_insert_unichar"), visibility("default")));

#undef g_string_new 
extern __typeof (g_string_new) g_string_new __attribute((alias("IA__g_string_new"), visibility("default")));

#undef g_string_new_len 
extern __typeof (g_string_new_len) g_string_new_len __attribute((alias("IA__g_string_new_len"), visibility("default")));

#undef g_string_overwrite 
extern __typeof (g_string_overwrite) g_string_overwrite __attribute((alias("IA__g_string_overwrite"), visibility("default")));

#undef g_string_overwrite_len 
extern __typeof (g_string_overwrite_len) g_string_overwrite_len __attribute((alias("IA__g_string_overwrite_len"), visibility("default")));

#undef g_string_prepend 
extern __typeof (g_string_prepend) g_string_prepend __attribute((alias("IA__g_string_prepend"), visibility("default")));

#undef g_string_prepend_c 
extern __typeof (g_string_prepend_c) g_string_prepend_c __attribute((alias("IA__g_string_prepend_c"), visibility("default")));

#undef g_string_prepend_len 
extern __typeof (g_string_prepend_len) g_string_prepend_len __attribute((alias("IA__g_string_prepend_len"), visibility("default")));

#undef g_string_prepend_unichar 
extern __typeof (g_string_prepend_unichar) g_string_prepend_unichar __attribute((alias("IA__g_string_prepend_unichar"), visibility("default")));

#undef g_string_printf 
extern __typeof (g_string_printf) g_string_printf __attribute((alias("IA__g_string_printf"), visibility("default")));

#undef g_string_set_size 
extern __typeof (g_string_set_size) g_string_set_size __attribute((alias("IA__g_string_set_size"), visibility("default")));

#undef g_string_sized_new 
extern __typeof (g_string_sized_new) g_string_sized_new __attribute((alias("IA__g_string_sized_new"), visibility("default")));

#undef g_string_truncate 
extern __typeof (g_string_truncate) g_string_truncate __attribute((alias("IA__g_string_truncate"), visibility("default")));

#undef g_string_append_uri_escaped 
extern __typeof (g_string_append_uri_escaped) g_string_append_uri_escaped __attribute((alias("IA__g_string_append_uri_escaped"), visibility("default")));

#ifndef G_DISABLE_DEPRECATED
#undef g_string_down 
extern __typeof (g_string_down) g_string_down __attribute((alias("IA__g_string_down"), visibility("default")));

#undef g_string_up 
extern __typeof (g_string_up) g_string_up __attribute((alias("IA__g_string_up"), visibility("default")));

#endif
#undef g_string_vprintf 
extern __typeof (g_string_vprintf) g_string_vprintf __attribute((alias("IA__g_string_vprintf"), visibility("default")));

#endif
#endif
#if IN_HEADER(__G_BITLOCK_H__)
#if IN_FILE(__G_BITLOCK_C__)
#undef g_bit_lock 
extern __typeof (g_bit_lock) g_bit_lock __attribute((alias("IA__g_bit_lock"), visibility("default")));

#undef g_bit_trylock 
extern __typeof (g_bit_trylock) g_bit_trylock __attribute((alias("IA__g_bit_trylock"), visibility("default")));

#undef g_bit_unlock 
extern __typeof (g_bit_unlock) g_bit_unlock __attribute((alias("IA__g_bit_unlock"), visibility("default")));

#endif
#endif
#if IN_HEADER(__G_THREAD_H__)
#if IN_FILE(__G_THREAD_C__)
#undef g_once_impl 
extern __typeof (g_once_impl) g_once_impl __attribute((alias("IA__g_once_impl"), visibility("default")));

#undef g_once_init_enter_impl 
extern __typeof (g_once_init_enter_impl) g_once_init_enter_impl __attribute((alias("IA__g_once_init_enter_impl"), visibility("default")));

#undef g_once_init_leave 
extern __typeof (g_once_init_leave) g_once_init_leave __attribute((alias("IA__g_once_init_leave"), visibility("default")));

#undef g_thread_create_full 
extern __typeof (g_thread_create_full) g_thread_create_full __attribute((alias("IA__g_thread_create_full"), visibility("default")));

#undef g_thread_error_quark 
extern __typeof (g_thread_error_quark) g_thread_error_quark __attribute((alias("IA__g_thread_error_quark"), visibility("default")));

#undef g_thread_exit 
extern __typeof (g_thread_exit) g_thread_exit __attribute((alias("IA__g_thread_exit"), visibility("default")));

#undef g_thread_join 
extern __typeof (g_thread_join) g_thread_join __attribute((alias("IA__g_thread_join"), visibility("default")));

#undef g_thread_self 
extern __typeof (g_thread_self) g_thread_self __attribute((alias("IA__g_thread_self"), visibility("default")));

#undef g_thread_set_priority 
extern __typeof (g_thread_set_priority) g_thread_set_priority __attribute((alias("IA__g_thread_set_priority"), visibility("default")));

#undef g_static_mutex_free 
extern __typeof (g_static_mutex_free) g_static_mutex_free __attribute((alias("IA__g_static_mutex_free"), visibility("default")));

#undef g_static_mutex_get_mutex_impl 
extern __typeof (g_static_mutex_get_mutex_impl) g_static_mutex_get_mutex_impl __attribute((alias("IA__g_static_mutex_get_mutex_impl"), visibility("default")));

#undef g_static_mutex_init 
extern __typeof (g_static_mutex_init) g_static_mutex_init __attribute((alias("IA__g_static_mutex_init"), visibility("default")));

#undef g_static_private_free 
extern __typeof (g_static_private_free) g_static_private_free __attribute((alias("IA__g_static_private_free"), visibility("default")));

#undef g_static_private_get 
extern __typeof (g_static_private_get) g_static_private_get __attribute((alias("IA__g_static_private_get"), visibility("default")));

#undef g_static_private_init 
extern __typeof (g_static_private_init) g_static_private_init __attribute((alias("IA__g_static_private_init"), visibility("default")));

#undef g_static_private_set 
extern __typeof (g_static_private_set) g_static_private_set __attribute((alias("IA__g_static_private_set"), visibility("default")));

#undef g_static_rec_mutex_free 
extern __typeof (g_static_rec_mutex_free) g_static_rec_mutex_free __attribute((alias("IA__g_static_rec_mutex_free"), visibility("default")));

#undef g_static_rec_mutex_init 
extern __typeof (g_static_rec_mutex_init) g_static_rec_mutex_init __attribute((alias("IA__g_static_rec_mutex_init"), visibility("default")));

#undef g_static_rec_mutex_lock 
extern __typeof (g_static_rec_mutex_lock) g_static_rec_mutex_lock __attribute((alias("IA__g_static_rec_mutex_lock"), visibility("default")));

#undef g_static_rec_mutex_lock_full 
extern __typeof (g_static_rec_mutex_lock_full) g_static_rec_mutex_lock_full __attribute((alias("IA__g_static_rec_mutex_lock_full"), visibility("default")));

#undef g_static_rec_mutex_trylock 
extern __typeof (g_static_rec_mutex_trylock) g_static_rec_mutex_trylock __attribute((alias("IA__g_static_rec_mutex_trylock"), visibility("default")));

#undef g_static_rec_mutex_unlock 
extern __typeof (g_static_rec_mutex_unlock) g_static_rec_mutex_unlock __attribute((alias("IA__g_static_rec_mutex_unlock"), visibility("default")));

#undef g_static_rec_mutex_unlock_full 
extern __typeof (g_static_rec_mutex_unlock_full) g_static_rec_mutex_unlock_full __attribute((alias("IA__g_static_rec_mutex_unlock_full"), visibility("default")));

#undef g_static_rw_lock_free 
extern __typeof (g_static_rw_lock_free) g_static_rw_lock_free __attribute((alias("IA__g_static_rw_lock_free"), visibility("default")));

#undef g_static_rw_lock_init 
extern __typeof (g_static_rw_lock_init) g_static_rw_lock_init __attribute((alias("IA__g_static_rw_lock_init"), visibility("default")));

#undef g_static_rw_lock_reader_lock 
extern __typeof (g_static_rw_lock_reader_lock) g_static_rw_lock_reader_lock __attribute((alias("IA__g_static_rw_lock_reader_lock"), visibility("default")));

#undef g_static_rw_lock_reader_trylock 
extern __typeof (g_static_rw_lock_reader_trylock) g_static_rw_lock_reader_trylock __attribute((alias("IA__g_static_rw_lock_reader_trylock"), visibility("default")));

#undef g_static_rw_lock_reader_unlock 
extern __typeof (g_static_rw_lock_reader_unlock) g_static_rw_lock_reader_unlock __attribute((alias("IA__g_static_rw_lock_reader_unlock"), visibility("default")));

#undef g_static_rw_lock_writer_lock 
extern __typeof (g_static_rw_lock_writer_lock) g_static_rw_lock_writer_lock __attribute((alias("IA__g_static_rw_lock_writer_lock"), visibility("default")));

#undef g_static_rw_lock_writer_trylock 
extern __typeof (g_static_rw_lock_writer_trylock) g_static_rw_lock_writer_trylock __attribute((alias("IA__g_static_rw_lock_writer_trylock"), visibility("default")));

#undef g_static_rw_lock_writer_unlock 
extern __typeof (g_static_rw_lock_writer_unlock) g_static_rw_lock_writer_unlock __attribute((alias("IA__g_static_rw_lock_writer_unlock"), visibility("default")));

#undef g_thread_foreach 
extern __typeof (g_thread_foreach) g_thread_foreach __attribute((alias("IA__g_thread_foreach"), visibility("default")));

#undef g_thread_get_initialized 
extern __typeof (g_thread_get_initialized) g_thread_get_initialized __attribute((alias("IA__g_thread_get_initialized"), visibility("default")));

#endif
#endif
#if IN_HEADER(__G_THREADPOOL_H__)
#if IN_FILE(__G_THREADPOOL_C__)
#undef g_thread_pool_free 
extern __typeof (g_thread_pool_free) g_thread_pool_free __attribute((alias("IA__g_thread_pool_free"), visibility("default")));

#undef g_thread_pool_get_max_threads 
extern __typeof (g_thread_pool_get_max_threads) g_thread_pool_get_max_threads __attribute((alias("IA__g_thread_pool_get_max_threads"), visibility("default")));

#undef g_thread_pool_get_max_unused_threads 
extern __typeof (g_thread_pool_get_max_unused_threads) g_thread_pool_get_max_unused_threads __attribute((alias("IA__g_thread_pool_get_max_unused_threads"), visibility("default")));

#undef g_thread_pool_get_max_idle_time 
extern __typeof (g_thread_pool_get_max_idle_time) g_thread_pool_get_max_idle_time __attribute((alias("IA__g_thread_pool_get_max_idle_time"), visibility("default")));

#undef g_thread_pool_get_num_threads 
extern __typeof (g_thread_pool_get_num_threads) g_thread_pool_get_num_threads __attribute((alias("IA__g_thread_pool_get_num_threads"), visibility("default")));

#undef g_thread_pool_get_num_unused_threads 
extern __typeof (g_thread_pool_get_num_unused_threads) g_thread_pool_get_num_unused_threads __attribute((alias("IA__g_thread_pool_get_num_unused_threads"), visibility("default")));

#undef g_thread_pool_new 
extern __typeof (g_thread_pool_new) g_thread_pool_new __attribute((alias("IA__g_thread_pool_new"), visibility("default")));

#undef g_thread_pool_push 
extern __typeof (g_thread_pool_push) g_thread_pool_push __attribute((alias("IA__g_thread_pool_push"), visibility("default")));

#undef g_thread_pool_set_max_threads 
extern __typeof (g_thread_pool_set_max_threads) g_thread_pool_set_max_threads __attribute((alias("IA__g_thread_pool_set_max_threads"), visibility("default")));

#undef g_thread_pool_set_max_unused_threads 
extern __typeof (g_thread_pool_set_max_unused_threads) g_thread_pool_set_max_unused_threads __attribute((alias("IA__g_thread_pool_set_max_unused_threads"), visibility("default")));

#undef g_thread_pool_set_max_idle_time 
extern __typeof (g_thread_pool_set_max_idle_time) g_thread_pool_set_max_idle_time __attribute((alias("IA__g_thread_pool_set_max_idle_time"), visibility("default")));

#undef g_thread_pool_stop_unused_threads 
extern __typeof (g_thread_pool_stop_unused_threads) g_thread_pool_stop_unused_threads __attribute((alias("IA__g_thread_pool_stop_unused_threads"), visibility("default")));

#undef g_thread_pool_unprocessed 
extern __typeof (g_thread_pool_unprocessed) g_thread_pool_unprocessed __attribute((alias("IA__g_thread_pool_unprocessed"), visibility("default")));

#undef g_thread_pool_set_sort_function 
extern __typeof (g_thread_pool_set_sort_function) g_thread_pool_set_sort_function __attribute((alias("IA__g_thread_pool_set_sort_function"), visibility("default")));

#endif
#endif
#if IN_HEADER(__G_TEST_UTILS_H__)
#if IN_FILE(__G_MESSAGES_C__)
#undef g_test_log_set_fatal_handler 
extern __typeof (g_test_log_set_fatal_handler) g_test_log_set_fatal_handler __attribute((alias("IA__g_test_log_set_fatal_handler"), visibility("default")));

#endif
#if IN_FILE(__G_TEST_UTILS_C__)
#undef g_assertion_message 
extern __typeof (g_assertion_message) g_assertion_message __attribute((alias("IA__g_assertion_message"), visibility("default")));

#undef g_assertion_message_cmpnum 
extern __typeof (g_assertion_message_cmpnum) g_assertion_message_cmpnum __attribute((alias("IA__g_assertion_message_cmpnum"), visibility("default")));

#undef g_assertion_message_cmpstr 
extern __typeof (g_assertion_message_cmpstr) g_assertion_message_cmpstr __attribute((alias("IA__g_assertion_message_cmpstr"), visibility("default")));

#undef g_assertion_message_expr 
extern __typeof (g_assertion_message_expr) g_assertion_message_expr __attribute((alias("IA__g_assertion_message_expr"), visibility("default")));

#undef g_assertion_message_error 
extern __typeof (g_assertion_message_error) g_assertion_message_error __attribute((alias("IA__g_assertion_message_error"), visibility("default")));

#undef g_strcmp0 
extern __typeof (g_strcmp0) g_strcmp0 __attribute((alias("IA__g_strcmp0"), visibility("default")));

#undef g_test_add_data_func 
extern __typeof (g_test_add_data_func) g_test_add_data_func __attribute((alias("IA__g_test_add_data_func"), visibility("default")));

#undef g_test_add_func 
extern __typeof (g_test_add_func) g_test_add_func __attribute((alias("IA__g_test_add_func"), visibility("default")));

#undef g_test_add_vtable 
extern __typeof (g_test_add_vtable) g_test_add_vtable __attribute((alias("IA__g_test_add_vtable"), visibility("default")));

#undef g_test_bug 
extern __typeof (g_test_bug) g_test_bug __attribute((alias("IA__g_test_bug"), visibility("default")));

#undef g_test_bug_base 
extern __typeof (g_test_bug_base) g_test_bug_base __attribute((alias("IA__g_test_bug_base"), visibility("default")));

#undef g_test_create_case 
extern __typeof (g_test_create_case) g_test_create_case __attribute((alias("IA__g_test_create_case"), visibility("default")));

#undef g_test_create_suite 
extern __typeof (g_test_create_suite) g_test_create_suite __attribute((alias("IA__g_test_create_suite"), visibility("default")));

#undef g_test_get_root 
extern __typeof (g_test_get_root) g_test_get_root __attribute((alias("IA__g_test_get_root"), visibility("default")));

#undef g_test_init 
extern __typeof (g_test_init) g_test_init __attribute((alias("IA__g_test_init"), visibility("default")));

#undef g_test_log_buffer_free 
extern __typeof (g_test_log_buffer_free) g_test_log_buffer_free __attribute((alias("IA__g_test_log_buffer_free"), visibility("default")));

#undef g_test_log_buffer_new 
extern __typeof (g_test_log_buffer_new) g_test_log_buffer_new __attribute((alias("IA__g_test_log_buffer_new"), visibility("default")));

#undef g_test_log_buffer_pop 
extern __typeof (g_test_log_buffer_pop) g_test_log_buffer_pop __attribute((alias("IA__g_test_log_buffer_pop"), visibility("default")));

#undef g_test_log_buffer_push 
extern __typeof (g_test_log_buffer_push) g_test_log_buffer_push __attribute((alias("IA__g_test_log_buffer_push"), visibility("default")));

#undef g_test_log_msg_free 
extern __typeof (g_test_log_msg_free) g_test_log_msg_free __attribute((alias("IA__g_test_log_msg_free"), visibility("default")));

#undef g_test_log_type_name 
extern __typeof (g_test_log_type_name) g_test_log_type_name __attribute((alias("IA__g_test_log_type_name"), visibility("default")));

#undef g_test_maximized_result 
extern __typeof (g_test_maximized_result) g_test_maximized_result __attribute((alias("IA__g_test_maximized_result"), visibility("default")));

#undef g_test_message 
extern __typeof (g_test_message) g_test_message __attribute((alias("IA__g_test_message"), visibility("default")));

#undef g_test_minimized_result 
extern __typeof (g_test_minimized_result) g_test_minimized_result __attribute((alias("IA__g_test_minimized_result"), visibility("default")));

#undef g_test_queue_destroy 
extern __typeof (g_test_queue_destroy) g_test_queue_destroy __attribute((alias("IA__g_test_queue_destroy"), visibility("default")));

#undef g_test_queue_free 
extern __typeof (g_test_queue_free) g_test_queue_free __attribute((alias("IA__g_test_queue_free"), visibility("default")));

#undef g_test_rand_double 
extern __typeof (g_test_rand_double) g_test_rand_double __attribute((alias("IA__g_test_rand_double"), visibility("default")));

#undef g_test_rand_double_range 
extern __typeof (g_test_rand_double_range) g_test_rand_double_range __attribute((alias("IA__g_test_rand_double_range"), visibility("default")));

#undef g_test_rand_int 
extern __typeof (g_test_rand_int) g_test_rand_int __attribute((alias("IA__g_test_rand_int"), visibility("default")));

#undef g_test_rand_int_range 
extern __typeof (g_test_rand_int_range) g_test_rand_int_range __attribute((alias("IA__g_test_rand_int_range"), visibility("default")));

#undef g_test_run 
extern __typeof (g_test_run) g_test_run __attribute((alias("IA__g_test_run"), visibility("default")));

#undef g_test_run_suite 
extern __typeof (g_test_run_suite) g_test_run_suite __attribute((alias("IA__g_test_run_suite"), visibility("default")));

#undef g_test_suite_add 
extern __typeof (g_test_suite_add) g_test_suite_add __attribute((alias("IA__g_test_suite_add"), visibility("default")));

#undef g_test_suite_add_suite 
extern __typeof (g_test_suite_add_suite) g_test_suite_add_suite __attribute((alias("IA__g_test_suite_add_suite"), visibility("default")));

#undef g_test_timer_elapsed 
extern __typeof (g_test_timer_elapsed) g_test_timer_elapsed __attribute((alias("IA__g_test_timer_elapsed"), visibility("default")));

#undef g_test_timer_last 
extern __typeof (g_test_timer_last) g_test_timer_last __attribute((alias("IA__g_test_timer_last"), visibility("default")));

#undef g_test_timer_start 
extern __typeof (g_test_timer_start) g_test_timer_start __attribute((alias("IA__g_test_timer_start"), visibility("default")));

#undef g_test_trap_assertions 
extern __typeof (g_test_trap_assertions) g_test_trap_assertions __attribute((alias("IA__g_test_trap_assertions"), visibility("default")));

#undef g_test_trap_fork 
extern __typeof (g_test_trap_fork) g_test_trap_fork __attribute((alias("IA__g_test_trap_fork"), visibility("default")));

#undef g_test_trap_has_passed 
extern __typeof (g_test_trap_has_passed) g_test_trap_has_passed __attribute((alias("IA__g_test_trap_has_passed"), visibility("default")));

#undef g_test_trap_reached_timeout 
extern __typeof (g_test_trap_reached_timeout) g_test_trap_reached_timeout __attribute((alias("IA__g_test_trap_reached_timeout"), visibility("default")));

#endif
#endif
#if IN_HEADER(__G_TIMER_H__)
#if IN_FILE(__G_TIMER_C__)
#undef g_timer_continue 
extern __typeof (g_timer_continue) g_timer_continue __attribute((alias("IA__g_timer_continue"), visibility("default")));

#undef g_timer_destroy 
extern __typeof (g_timer_destroy) g_timer_destroy __attribute((alias("IA__g_timer_destroy"), visibility("default")));

#undef g_timer_elapsed 
extern __typeof (g_timer_elapsed) g_timer_elapsed __attribute((alias("IA__g_timer_elapsed"), visibility("default")));

#undef g_timer_new 
extern __typeof (g_timer_new) g_timer_new __attribute((alias("IA__g_timer_new"), visibility("default")));

#undef g_timer_reset 
extern __typeof (g_timer_reset) g_timer_reset __attribute((alias("IA__g_timer_reset"), visibility("default")));

#undef g_timer_start 
extern __typeof (g_timer_start) g_timer_start __attribute((alias("IA__g_timer_start"), visibility("default")));

#undef g_timer_stop 
extern __typeof (g_timer_stop) g_timer_stop __attribute((alias("IA__g_timer_stop"), visibility("default")));

#undef g_time_val_add 
extern __typeof (g_time_val_add) g_time_val_add __attribute((alias("IA__g_time_val_add"), visibility("default")));

#undef g_time_val_from_iso8601 
extern __typeof (g_time_val_from_iso8601) g_time_val_from_iso8601 __attribute((alias("IA__g_time_val_from_iso8601"), visibility("default")));

#undef g_time_val_to_iso8601 
extern __typeof (g_time_val_to_iso8601) g_time_val_to_iso8601 __attribute((alias("IA__g_time_val_to_iso8601"), visibility("default")));

#undef g_usleep 
extern __typeof (g_usleep) g_usleep __attribute((alias("IA__g_usleep"), visibility("default")));

#endif
#endif
#if IN_HEADER(__G_TREE_H__)
#if IN_FILE(__G_TREE_C__)
#undef g_tree_destroy 
extern __typeof (g_tree_destroy) g_tree_destroy __attribute((alias("IA__g_tree_destroy"), visibility("default")));

#undef g_tree_foreach 
extern __typeof (g_tree_foreach) g_tree_foreach __attribute((alias("IA__g_tree_foreach"), visibility("default")));

#undef g_tree_height 
extern __typeof (g_tree_height) g_tree_height __attribute((alias("IA__g_tree_height"), visibility("default")));

#undef g_tree_insert 
extern __typeof (g_tree_insert) g_tree_insert __attribute((alias("IA__g_tree_insert"), visibility("default")));

#undef g_tree_lookup 
extern __typeof (g_tree_lookup) g_tree_lookup __attribute((alias("IA__g_tree_lookup"), visibility("default")));

#undef g_tree_lookup_extended 
extern __typeof (g_tree_lookup_extended) g_tree_lookup_extended __attribute((alias("IA__g_tree_lookup_extended"), visibility("default")));

#undef g_tree_new 
extern __typeof (g_tree_new) g_tree_new __attribute((alias("IA__g_tree_new"), visibility("default")));

#undef g_tree_ref 
extern __typeof (g_tree_ref) g_tree_ref __attribute((alias("IA__g_tree_ref"), visibility("default")));

#undef g_tree_unref 
extern __typeof (g_tree_unref) g_tree_unref __attribute((alias("IA__g_tree_unref"), visibility("default")));

#undef g_tree_new_full 
extern __typeof (g_tree_new_full) g_tree_new_full __attribute((alias("IA__g_tree_new_full"), visibility("default")));

#undef g_tree_new_with_data 
extern __typeof (g_tree_new_with_data) g_tree_new_with_data __attribute((alias("IA__g_tree_new_with_data"), visibility("default")));

#undef g_tree_nnodes 
extern __typeof (g_tree_nnodes) g_tree_nnodes __attribute((alias("IA__g_tree_nnodes"), visibility("default")));

#undef g_tree_remove 
extern __typeof (g_tree_remove) g_tree_remove __attribute((alias("IA__g_tree_remove"), visibility("default")));

#undef g_tree_replace 
extern __typeof (g_tree_replace) g_tree_replace __attribute((alias("IA__g_tree_replace"), visibility("default")));

#undef g_tree_search 
extern __typeof (g_tree_search) g_tree_search __attribute((alias("IA__g_tree_search"), visibility("default")));

#undef g_tree_steal 
extern __typeof (g_tree_steal) g_tree_steal __attribute((alias("IA__g_tree_steal"), visibility("default")));

#ifndef G_DISABLE_DEPRECATED
#undef g_tree_traverse 
extern __typeof (g_tree_traverse) g_tree_traverse __attribute((alias("IA__g_tree_traverse"), visibility("default")));

#endif
#endif
#endif
#if IN_HEADER(__G_UNICODE_H__)
#if IN_FILE(__G_UNIBREAK_C__)
#undef g_unichar_break_type 
extern __typeof (g_unichar_break_type) g_unichar_break_type __attribute((alias("IA__g_unichar_break_type"), visibility("default")));

#endif
#endif
#if IN_HEADER(__G_UNICODE_H__)
#if IN_FILE(__G_UNICOLLATE_C__)
#undef g_utf8_collate 
extern __typeof (g_utf8_collate) g_utf8_collate __attribute((alias("IA__g_utf8_collate"), visibility("default")));

#undef g_utf8_collate_key 
extern __typeof (g_utf8_collate_key) g_utf8_collate_key __attribute((alias("IA__g_utf8_collate_key"), visibility("default")));

#undef g_utf8_collate_key_for_filename 
extern __typeof (g_utf8_collate_key_for_filename) g_utf8_collate_key_for_filename __attribute((alias("IA__g_utf8_collate_key_for_filename"), visibility("default")));

#endif
#endif
#if IN_HEADER(__G_UNICODE_H__)
#if IN_FILE(__G_UNIDECOMP_C__)
#undef g_unicode_canonical_decomposition 
extern __typeof (g_unicode_canonical_decomposition) g_unicode_canonical_decomposition __attribute((alias("IA__g_unicode_canonical_decomposition"), visibility("default")));

#undef g_unicode_canonical_ordering 
extern __typeof (g_unicode_canonical_ordering) g_unicode_canonical_ordering __attribute((alias("IA__g_unicode_canonical_ordering"), visibility("default")));

#undef g_unichar_combining_class 
extern __typeof (g_unichar_combining_class) g_unichar_combining_class __attribute((alias("IA__g_unichar_combining_class"), visibility("default")));

#undef g_utf8_normalize 
extern __typeof (g_utf8_normalize) g_utf8_normalize __attribute((alias("IA__g_utf8_normalize"), visibility("default")));

#endif
#endif
#if IN_HEADER(__G_UNICODE_H__)
#if IN_FILE(__G_UNIPROP_C__)
#undef g_unichar_isalnum 
extern __typeof (g_unichar_isalnum) g_unichar_isalnum __attribute((alias("IA__g_unichar_isalnum"), visibility("default")));

#undef g_unichar_isalpha 
extern __typeof (g_unichar_isalpha) g_unichar_isalpha __attribute((alias("IA__g_unichar_isalpha"), visibility("default")));

#undef g_unichar_iscntrl 
extern __typeof (g_unichar_iscntrl) g_unichar_iscntrl __attribute((alias("IA__g_unichar_iscntrl"), visibility("default")));

#undef g_unichar_isdefined 
extern __typeof (g_unichar_isdefined) g_unichar_isdefined __attribute((alias("IA__g_unichar_isdefined"), visibility("default")));

#undef g_unichar_isdigit 
extern __typeof (g_unichar_isdigit) g_unichar_isdigit __attribute((alias("IA__g_unichar_isdigit"), visibility("default")));

#undef g_unichar_isgraph 
extern __typeof (g_unichar_isgraph) g_unichar_isgraph __attribute((alias("IA__g_unichar_isgraph"), visibility("default")));

#undef g_unichar_islower 
extern __typeof (g_unichar_islower) g_unichar_islower __attribute((alias("IA__g_unichar_islower"), visibility("default")));

#undef g_unichar_isprint 
extern __typeof (g_unichar_isprint) g_unichar_isprint __attribute((alias("IA__g_unichar_isprint"), visibility("default")));

#undef g_unichar_ispunct 
extern __typeof (g_unichar_ispunct) g_unichar_ispunct __attribute((alias("IA__g_unichar_ispunct"), visibility("default")));

#undef g_unichar_isspace 
extern __typeof (g_unichar_isspace) g_unichar_isspace __attribute((alias("IA__g_unichar_isspace"), visibility("default")));

#undef g_unichar_istitle 
extern __typeof (g_unichar_istitle) g_unichar_istitle __attribute((alias("IA__g_unichar_istitle"), visibility("default")));

#undef g_unichar_isupper 
extern __typeof (g_unichar_isupper) g_unichar_isupper __attribute((alias("IA__g_unichar_isupper"), visibility("default")));

#undef g_unichar_iswide 
extern __typeof (g_unichar_iswide) g_unichar_iswide __attribute((alias("IA__g_unichar_iswide"), visibility("default")));

#undef g_unichar_iswide_cjk 
extern __typeof (g_unichar_iswide_cjk) g_unichar_iswide_cjk __attribute((alias("IA__g_unichar_iswide_cjk"), visibility("default")));

#undef g_unichar_isxdigit 
extern __typeof (g_unichar_isxdigit) g_unichar_isxdigit __attribute((alias("IA__g_unichar_isxdigit"), visibility("default")));

#undef g_unichar_iszerowidth 
extern __typeof (g_unichar_iszerowidth) g_unichar_iszerowidth __attribute((alias("IA__g_unichar_iszerowidth"), visibility("default")));

#undef g_unichar_tolower 
extern __typeof (g_unichar_tolower) g_unichar_tolower __attribute((alias("IA__g_unichar_tolower"), visibility("default")));

#undef g_unichar_totitle 
extern __typeof (g_unichar_totitle) g_unichar_totitle __attribute((alias("IA__g_unichar_totitle"), visibility("default")));

#undef g_unichar_toupper 
extern __typeof (g_unichar_toupper) g_unichar_toupper __attribute((alias("IA__g_unichar_toupper"), visibility("default")));

#undef g_unichar_ismark 
extern __typeof (g_unichar_ismark) g_unichar_ismark __attribute((alias("IA__g_unichar_ismark"), visibility("default")));

#undef g_unichar_get_mirror_char 
extern __typeof (g_unichar_get_mirror_char) g_unichar_get_mirror_char __attribute((alias("IA__g_unichar_get_mirror_char"), visibility("default")));

#undef g_unichar_get_script 
extern __typeof (g_unichar_get_script) g_unichar_get_script __attribute((alias("IA__g_unichar_get_script"), visibility("default")));

#undef g_unichar_digit_value 
extern __typeof (g_unichar_digit_value) g_unichar_digit_value __attribute((alias("IA__g_unichar_digit_value"), visibility("default")));

#undef g_unichar_xdigit_value 
extern __typeof (g_unichar_xdigit_value) g_unichar_xdigit_value __attribute((alias("IA__g_unichar_xdigit_value"), visibility("default")));

#undef g_unichar_type 
extern __typeof (g_unichar_type) g_unichar_type __attribute((alias("IA__g_unichar_type"), visibility("default")));

#undef g_utf8_casefold 
extern __typeof (g_utf8_casefold) g_utf8_casefold __attribute((alias("IA__g_utf8_casefold"), visibility("default")));

#undef g_utf8_strup 
extern __typeof (g_utf8_strup) g_utf8_strup __attribute((alias("IA__g_utf8_strup"), visibility("default")));

#undef g_utf8_strdown 
extern __typeof (g_utf8_strdown) g_utf8_strdown __attribute((alias("IA__g_utf8_strdown"), visibility("default")));

#endif
#endif
#if IN_HEADER(__G_UNICODE_H__)
#if IN_FILE(__G_UTF8_C__)
#undef g_get_charset 
extern __typeof (g_get_charset) g_get_charset __attribute((alias("IA__g_get_charset"), visibility("default")));

#undef g_ucs4_to_utf16 
extern __typeof (g_ucs4_to_utf16) g_ucs4_to_utf16 __attribute((alias("IA__g_ucs4_to_utf16"), visibility("default")));

#undef g_ucs4_to_utf8 
extern __typeof (g_ucs4_to_utf8) g_ucs4_to_utf8 __attribute((alias("IA__g_ucs4_to_utf8"), visibility("default")));

#undef g_utf16_to_ucs4 
extern __typeof (g_utf16_to_ucs4) g_utf16_to_ucs4 __attribute((alias("IA__g_utf16_to_ucs4"), visibility("default")));

#undef g_utf16_to_utf8 
extern __typeof (g_utf16_to_utf8) g_utf16_to_utf8 __attribute((alias("IA__g_utf16_to_utf8"), visibility("default")));

#undef g_utf8_find_next_char 
extern __typeof (g_utf8_find_next_char) g_utf8_find_next_char __attribute((alias("IA__g_utf8_find_next_char"), visibility("default")));

#undef g_utf8_find_prev_char 
extern __typeof (g_utf8_find_prev_char) g_utf8_find_prev_char __attribute((alias("IA__g_utf8_find_prev_char"), visibility("default")));

#undef g_utf8_get_char 
extern __typeof (g_utf8_get_char) g_utf8_get_char __attribute((alias("IA__g_utf8_get_char"), visibility("default")));

#undef g_utf8_get_char_validated 
extern __typeof (g_utf8_get_char_validated) g_utf8_get_char_validated __attribute((alias("IA__g_utf8_get_char_validated"), visibility("default")));

#undef g_utf8_offset_to_pointer 
extern __typeof (g_utf8_offset_to_pointer) g_utf8_offset_to_pointer __attribute((alias("IA__g_utf8_offset_to_pointer"), visibility("default")));

#undef g_utf8_pointer_to_offset 
extern __typeof (g_utf8_pointer_to_offset) g_utf8_pointer_to_offset __attribute((alias("IA__g_utf8_pointer_to_offset"), visibility("default")));

#undef g_utf8_prev_char 
extern __typeof (g_utf8_prev_char) g_utf8_prev_char __attribute((alias("IA__g_utf8_prev_char"), visibility("default")));

#undef g_utf8_strchr 
extern __typeof (g_utf8_strchr) g_utf8_strchr __attribute((alias("IA__g_utf8_strchr"), visibility("default")));

#undef g_utf8_strlen 
extern __typeof (g_utf8_strlen) g_utf8_strlen __attribute((alias("IA__g_utf8_strlen"), visibility("default")));

#undef g_utf8_strncpy 
extern __typeof (g_utf8_strncpy) g_utf8_strncpy __attribute((alias("IA__g_utf8_strncpy"), visibility("default")));

#undef g_utf8_strrchr 
extern __typeof (g_utf8_strrchr) g_utf8_strrchr __attribute((alias("IA__g_utf8_strrchr"), visibility("default")));

#undef g_utf8_strreverse 
extern __typeof (g_utf8_strreverse) g_utf8_strreverse __attribute((alias("IA__g_utf8_strreverse"), visibility("default")));

#undef g_utf8_to_ucs4 
extern __typeof (g_utf8_to_ucs4) g_utf8_to_ucs4 __attribute((alias("IA__g_utf8_to_ucs4"), visibility("default")));

#undef g_utf8_to_ucs4_fast 
extern __typeof (g_utf8_to_ucs4_fast) g_utf8_to_ucs4_fast __attribute((alias("IA__g_utf8_to_ucs4_fast"), visibility("default")));

#undef g_utf8_to_utf16 
extern __typeof (g_utf8_to_utf16) g_utf8_to_utf16 __attribute((alias("IA__g_utf8_to_utf16"), visibility("default")));

#undef g_utf8_validate 
extern __typeof (g_utf8_validate) g_utf8_validate __attribute((alias("IA__g_utf8_validate"), visibility("default")));

#undef g_unichar_to_utf8 
extern __typeof (g_unichar_to_utf8) g_unichar_to_utf8 __attribute((alias("IA__g_unichar_to_utf8"), visibility("default")));

#undef g_unichar_validate 
extern __typeof (g_unichar_validate) g_unichar_validate __attribute((alias("IA__g_unichar_validate"), visibility("default")));

#endif
#endif
#if IN_HEADER(__GLIBINTL_H__)
#if IN_FILE(__G_UTILS_C__)
#undef glib_gettext 
extern __typeof (glib_gettext) glib_gettext __attribute((alias("IA__glib_gettext"), visibility("default")));

#endif
#endif
#if IN_HEADER(__G_HASH_H__)
#if IN_FILE(__G_UTILS_C__)
#undef g_int_equal 
extern __typeof (g_int_equal) g_int_equal __attribute((alias("IA__g_int_equal"), visibility("default")));

#undef g_int_hash 
extern __typeof (g_int_hash) g_int_hash __attribute((alias("IA__g_int_hash"), visibility("default")));

#undef g_int64_equal 
extern __typeof (g_int64_equal) g_int64_equal __attribute((alias("IA__g_int64_equal"), visibility("default")));

#undef g_int64_hash 
extern __typeof (g_int64_hash) g_int64_hash __attribute((alias("IA__g_int64_hash"), visibility("default")));

#undef g_double_equal 
extern __typeof (g_double_equal) g_double_equal __attribute((alias("IA__g_double_equal"), visibility("default")));

#undef g_double_hash 
extern __typeof (g_double_hash) g_double_hash __attribute((alias("IA__g_double_hash"), visibility("default")));

#undef g_direct_equal 
extern __typeof (g_direct_equal) g_direct_equal __attribute((alias("IA__g_direct_equal"), visibility("default")));

#undef g_direct_hash 
extern __typeof (g_direct_hash) g_direct_hash __attribute((alias("IA__g_direct_hash"), visibility("default")));

#endif
#if IN_FILE(__G_STRING_C__)
#undef g_str_equal 
extern __typeof (g_str_equal) g_str_equal __attribute((alias("IA__g_str_equal"), visibility("default")));

#undef g_str_hash 
extern __typeof (g_str_hash) g_str_hash __attribute((alias("IA__g_str_hash"), visibility("default")));

#endif
#endif
#if IN_HEADER(__G_UTILS_H__)
#if IN_FILE(__G_UTILS_C__)
#undef g_atexit 
extern __typeof (g_atexit) g_atexit __attribute((alias("IA__g_atexit"), visibility("default")));

#ifndef G_DISABLE_DEPRECATED
#undef g_basename 
extern __typeof (g_basename) g_basename __attribute((alias("IA__g_basename"), visibility("default")));

#endif
#undef g_get_application_name 
extern __typeof (g_get_application_name) g_get_application_name __attribute((alias("IA__g_get_application_name"), visibility("default")));

#ifndef _WIN64
#undef g_find_program_in_path 
extern __typeof (g_find_program_in_path) g_find_program_in_path __attribute((alias("IA__g_find_program_in_path"), visibility("default")));

#undef g_get_current_dir 
extern __typeof (g_get_current_dir) g_get_current_dir __attribute((alias("IA__g_get_current_dir"), visibility("default")));

#undef g_getenv 
extern __typeof (g_getenv) g_getenv __attribute((alias("IA__g_getenv"), visibility("default")));

#undef g_unsetenv 
extern __typeof (g_unsetenv) g_unsetenv __attribute((alias("IA__g_unsetenv"), visibility("default")));

#undef g_get_home_dir 
extern __typeof (g_get_home_dir) g_get_home_dir __attribute((alias("IA__g_get_home_dir"), visibility("default")));

#endif
#undef g_get_host_name 
extern __typeof (g_get_host_name) g_get_host_name __attribute((alias("IA__g_get_host_name"), visibility("default")));

#ifndef _WIN64
#undef g_setenv 
extern __typeof (g_setenv) g_setenv __attribute((alias("IA__g_setenv"), visibility("default")));

#endif
#undef g_listenv 
extern __typeof (g_listenv) g_listenv __attribute((alias("IA__g_listenv"), visibility("default")));

#ifdef G_OS_WIN32
#undef g_find_program_in_path_utf8 
extern __typeof (g_find_program_in_path_utf8) g_find_program_in_path_utf8 __attribute((alias("IA__g_find_program_in_path_utf8"), visibility("default")));

#undef g_get_current_dir_utf8 
extern __typeof (g_get_current_dir_utf8) g_get_current_dir_utf8 __attribute((alias("IA__g_get_current_dir_utf8"), visibility("default")));

#undef g_getenv_utf8 
extern __typeof (g_getenv_utf8) g_getenv_utf8 __attribute((alias("IA__g_getenv_utf8"), visibility("default")));

#undef g_unsetenv_utf8 
extern __typeof (g_unsetenv_utf8) g_unsetenv_utf8 __attribute((alias("IA__g_unsetenv_utf8"), visibility("default")));

#undef g_setenv_utf8 
extern __typeof (g_setenv_utf8) g_setenv_utf8 __attribute((alias("IA__g_setenv_utf8"), visibility("default")));

#undef g_get_home_dir_utf8 
extern __typeof (g_get_home_dir_utf8) g_get_home_dir_utf8 __attribute((alias("IA__g_get_home_dir_utf8"), visibility("default")));

#endif
#undef g_get_language_names 
extern __typeof (g_get_language_names) g_get_language_names __attribute((alias("IA__g_get_language_names"), visibility("default")));

#undef g_get_prgname 
extern __typeof (g_get_prgname) g_get_prgname __attribute((alias("IA__g_get_prgname"), visibility("default")));

#ifndef _WIN64
#undef g_get_real_name 
extern __typeof (g_get_real_name) g_get_real_name __attribute((alias("IA__g_get_real_name"), visibility("default")));

#endif
#ifdef G_OS_WIN32
#undef g_get_real_name_utf8 
extern __typeof (g_get_real_name_utf8) g_get_real_name_utf8 __attribute((alias("IA__g_get_real_name_utf8"), visibility("default")));

#endif
#undef g_get_system_config_dirs 
extern __typeof (g_get_system_config_dirs) g_get_system_config_dirs __attribute((alias("IA__g_get_system_config_dirs"), visibility("default")));

#undef g_get_system_data_dirs 
extern __typeof (g_get_system_data_dirs) g_get_system_data_dirs __attribute((alias("IA__g_get_system_data_dirs"), visibility("default")));

#ifdef G_OS_WIN32
#undef g_win32_get_system_data_dirs_for_module 
extern __typeof (g_win32_get_system_data_dirs_for_module) g_win32_get_system_data_dirs_for_module __attribute((alias("IA__g_win32_get_system_data_dirs_for_module"), visibility("default")));

#endif
#ifndef _WIN64
#undef g_get_tmp_dir 
extern __typeof (g_get_tmp_dir) g_get_tmp_dir __attribute((alias("IA__g_get_tmp_dir"), visibility("default")));

#endif
#ifdef G_OS_WIN32
#undef g_get_tmp_dir_utf8 
extern __typeof (g_get_tmp_dir_utf8) g_get_tmp_dir_utf8 __attribute((alias("IA__g_get_tmp_dir_utf8"), visibility("default")));

#endif
#undef g_get_user_cache_dir 
extern __typeof (g_get_user_cache_dir) g_get_user_cache_dir __attribute((alias("IA__g_get_user_cache_dir"), visibility("default")));

#undef g_get_user_config_dir 
extern __typeof (g_get_user_config_dir) g_get_user_config_dir __attribute((alias("IA__g_get_user_config_dir"), visibility("default")));

#undef g_get_user_data_dir 
extern __typeof (g_get_user_data_dir) g_get_user_data_dir __attribute((alias("IA__g_get_user_data_dir"), visibility("default")));

#undef g_reload_user_special_dirs_cache 
extern __typeof (g_reload_user_special_dirs_cache) g_reload_user_special_dirs_cache __attribute((alias("IA__g_reload_user_special_dirs_cache"), visibility("default")));

#undef g_get_user_special_dir 
extern __typeof (g_get_user_special_dir) g_get_user_special_dir __attribute((alias("IA__g_get_user_special_dir"), visibility("default")));

#ifndef _WIN64
#undef g_get_user_name 
extern __typeof (g_get_user_name) g_get_user_name __attribute((alias("IA__g_get_user_name"), visibility("default")));

#endif
#ifdef G_OS_WIN32
#undef g_get_user_name_utf8 
extern __typeof (g_get_user_name_utf8) g_get_user_name_utf8 __attribute((alias("IA__g_get_user_name_utf8"), visibility("default")));

#endif
#undef glib_check_version 
extern __typeof (glib_check_version) glib_check_version __attribute((alias("IA__glib_check_version"), visibility("default")));

#undef g_nullify_pointer 
extern __typeof (g_nullify_pointer) g_nullify_pointer __attribute((alias("IA__g_nullify_pointer"), visibility("default")));

#undef g_parse_debug_string 
extern __typeof (g_parse_debug_string) g_parse_debug_string __attribute((alias("IA__g_parse_debug_string"), visibility("default")));

#undef g_path_get_basename 
extern __typeof (g_path_get_basename) g_path_get_basename __attribute((alias("IA__g_path_get_basename"), visibility("default")));

#undef g_path_get_dirname 
extern __typeof (g_path_get_dirname) g_path_get_dirname __attribute((alias("IA__g_path_get_dirname"), visibility("default")));

#undef g_path_is_absolute 
extern __typeof (g_path_is_absolute) g_path_is_absolute __attribute((alias("IA__g_path_is_absolute"), visibility("default")));

#undef g_path_skip_root 
extern __typeof (g_path_skip_root) g_path_skip_root __attribute((alias("IA__g_path_skip_root"), visibility("default")));

#undef g_set_application_name 
extern __typeof (g_set_application_name) g_set_application_name __attribute((alias("IA__g_set_application_name"), visibility("default")));

#undef g_set_prgname 
extern __typeof (g_set_prgname) g_set_prgname __attribute((alias("IA__g_set_prgname"), visibility("default")));

#endif
#endif
#if IN_HEADER(__G_REGEX_H__)
#if IN_FILE(__G_REGEX_C__)
#undef g_regex_error_quark 
extern __typeof (g_regex_error_quark) g_regex_error_quark __attribute((alias("IA__g_regex_error_quark"), visibility("default")));

#undef g_regex_new 
extern __typeof (g_regex_new) g_regex_new __attribute((alias("IA__g_regex_new"), visibility("default")));

#undef g_regex_ref 
extern __typeof (g_regex_ref) g_regex_ref __attribute((alias("IA__g_regex_ref"), visibility("default")));

#undef g_regex_unref 
extern __typeof (g_regex_unref) g_regex_unref __attribute((alias("IA__g_regex_unref"), visibility("default")));

#undef g_regex_get_pattern 
extern __typeof (g_regex_get_pattern) g_regex_get_pattern __attribute((alias("IA__g_regex_get_pattern"), visibility("default")));

#undef g_regex_get_max_backref 
extern __typeof (g_regex_get_max_backref) g_regex_get_max_backref __attribute((alias("IA__g_regex_get_max_backref"), visibility("default")));

#undef g_regex_get_capture_count 
extern __typeof (g_regex_get_capture_count) g_regex_get_capture_count __attribute((alias("IA__g_regex_get_capture_count"), visibility("default")));

#undef g_regex_get_string_number 
extern __typeof (g_regex_get_string_number) g_regex_get_string_number __attribute((alias("IA__g_regex_get_string_number"), visibility("default")));

#undef g_regex_escape_string 
extern __typeof (g_regex_escape_string) g_regex_escape_string __attribute((alias("IA__g_regex_escape_string"), visibility("default")));

#undef g_regex_match_simple 
extern __typeof (g_regex_match_simple) g_regex_match_simple __attribute((alias("IA__g_regex_match_simple"), visibility("default")));

#undef g_regex_match 
extern __typeof (g_regex_match) g_regex_match __attribute((alias("IA__g_regex_match"), visibility("default")));

#undef g_regex_match_full 
extern __typeof (g_regex_match_full) g_regex_match_full __attribute((alias("IA__g_regex_match_full"), visibility("default")));

#undef g_regex_match_all 
extern __typeof (g_regex_match_all) g_regex_match_all __attribute((alias("IA__g_regex_match_all"), visibility("default")));

#undef g_regex_match_all_full 
extern __typeof (g_regex_match_all_full) g_regex_match_all_full __attribute((alias("IA__g_regex_match_all_full"), visibility("default")));

#undef g_regex_split_simple 
extern __typeof (g_regex_split_simple) g_regex_split_simple __attribute((alias("IA__g_regex_split_simple"), visibility("default")));

#undef g_regex_split 
extern __typeof (g_regex_split) g_regex_split __attribute((alias("IA__g_regex_split"), visibility("default")));

#undef g_regex_split_full 
extern __typeof (g_regex_split_full) g_regex_split_full __attribute((alias("IA__g_regex_split_full"), visibility("default")));

#undef g_regex_replace 
extern __typeof (g_regex_replace) g_regex_replace __attribute((alias("IA__g_regex_replace"), visibility("default")));

#undef g_regex_replace_literal 
extern __typeof (g_regex_replace_literal) g_regex_replace_literal __attribute((alias("IA__g_regex_replace_literal"), visibility("default")));

#undef g_regex_replace_eval 
extern __typeof (g_regex_replace_eval) g_regex_replace_eval __attribute((alias("IA__g_regex_replace_eval"), visibility("default")));

#undef g_regex_check_replacement 
extern __typeof (g_regex_check_replacement) g_regex_check_replacement __attribute((alias("IA__g_regex_check_replacement"), visibility("default")));

#undef g_match_info_get_regex 
extern __typeof (g_match_info_get_regex) g_match_info_get_regex __attribute((alias("IA__g_match_info_get_regex"), visibility("default")));

#undef g_match_info_get_string 
extern __typeof (g_match_info_get_string) g_match_info_get_string __attribute((alias("IA__g_match_info_get_string"), visibility("default")));

#undef g_match_info_free 
extern __typeof (g_match_info_free) g_match_info_free __attribute((alias("IA__g_match_info_free"), visibility("default")));

#undef g_match_info_next 
extern __typeof (g_match_info_next) g_match_info_next __attribute((alias("IA__g_match_info_next"), visibility("default")));

#undef g_match_info_matches 
extern __typeof (g_match_info_matches) g_match_info_matches __attribute((alias("IA__g_match_info_matches"), visibility("default")));

#undef g_match_info_get_match_count 
extern __typeof (g_match_info_get_match_count) g_match_info_get_match_count __attribute((alias("IA__g_match_info_get_match_count"), visibility("default")));

#undef g_match_info_is_partial_match 
extern __typeof (g_match_info_is_partial_match) g_match_info_is_partial_match __attribute((alias("IA__g_match_info_is_partial_match"), visibility("default")));

#undef g_match_info_expand_references 
extern __typeof (g_match_info_expand_references) g_match_info_expand_references __attribute((alias("IA__g_match_info_expand_references"), visibility("default")));

#undef g_match_info_fetch 
extern __typeof (g_match_info_fetch) g_match_info_fetch __attribute((alias("IA__g_match_info_fetch"), visibility("default")));

#undef g_match_info_fetch_pos 
extern __typeof (g_match_info_fetch_pos) g_match_info_fetch_pos __attribute((alias("IA__g_match_info_fetch_pos"), visibility("default")));

#undef g_match_info_fetch_named 
extern __typeof (g_match_info_fetch_named) g_match_info_fetch_named __attribute((alias("IA__g_match_info_fetch_named"), visibility("default")));

#undef g_match_info_fetch_named_pos 
extern __typeof (g_match_info_fetch_named_pos) g_match_info_fetch_named_pos __attribute((alias("IA__g_match_info_fetch_named_pos"), visibility("default")));

#undef g_match_info_fetch_all 
extern __typeof (g_match_info_fetch_all) g_match_info_fetch_all __attribute((alias("IA__g_match_info_fetch_all"), visibility("default")));

#endif
#endif
#if IN_HEADER(__G_VARIANT_TYPE_H__)
#if IN_FILE(__G_VARIANT_TYPE_C__)
#undef g_variant_type_string_is_valid 
extern __typeof (g_variant_type_string_is_valid) g_variant_type_string_is_valid __attribute((alias("IA__g_variant_type_string_is_valid"), visibility("default")));

#undef g_variant_type_string_scan 
extern __typeof (g_variant_type_string_scan) g_variant_type_string_scan __attribute((alias("IA__g_variant_type_string_scan"), visibility("default")));

#undef g_variant_type_free 
extern __typeof (g_variant_type_free) g_variant_type_free __attribute((alias("IA__g_variant_type_free"), visibility("default")));

#undef g_variant_type_copy 
extern __typeof (g_variant_type_copy) g_variant_type_copy __attribute((alias("IA__g_variant_type_copy"), visibility("default")));

#undef g_variant_type_new 
extern __typeof (g_variant_type_new) g_variant_type_new __attribute((alias("IA__g_variant_type_new"), visibility("default")));

#undef g_variant_type_get_string_length 
extern __typeof (g_variant_type_get_string_length) g_variant_type_get_string_length __attribute((alias("IA__g_variant_type_get_string_length"), visibility("default")));

#undef g_variant_type_peek_string 
extern __typeof (g_variant_type_peek_string) g_variant_type_peek_string __attribute((alias("IA__g_variant_type_peek_string"), visibility("default")));

#undef g_variant_type_dup_string 
extern __typeof (g_variant_type_dup_string) g_variant_type_dup_string __attribute((alias("IA__g_variant_type_dup_string"), visibility("default")));

#undef g_variant_type_is_definite 
extern __typeof (g_variant_type_is_definite) g_variant_type_is_definite __attribute((alias("IA__g_variant_type_is_definite"), visibility("default")));

#undef g_variant_type_is_container 
extern __typeof (g_variant_type_is_container) g_variant_type_is_container __attribute((alias("IA__g_variant_type_is_container"), visibility("default")));

#undef g_variant_type_is_basic 
extern __typeof (g_variant_type_is_basic) g_variant_type_is_basic __attribute((alias("IA__g_variant_type_is_basic"), visibility("default")));

#undef g_variant_type_is_maybe 
extern __typeof (g_variant_type_is_maybe) g_variant_type_is_maybe __attribute((alias("IA__g_variant_type_is_maybe"), visibility("default")));

#undef g_variant_type_is_array 
extern __typeof (g_variant_type_is_array) g_variant_type_is_array __attribute((alias("IA__g_variant_type_is_array"), visibility("default")));

#undef g_variant_type_is_tuple 
extern __typeof (g_variant_type_is_tuple) g_variant_type_is_tuple __attribute((alias("IA__g_variant_type_is_tuple"), visibility("default")));

#undef g_variant_type_is_dict_entry 
extern __typeof (g_variant_type_is_dict_entry) g_variant_type_is_dict_entry __attribute((alias("IA__g_variant_type_is_dict_entry"), visibility("default")));

#undef g_variant_type_is_variant 
extern __typeof (g_variant_type_is_variant) g_variant_type_is_variant __attribute((alias("IA__g_variant_type_is_variant"), visibility("default")));

#undef g_variant_type_hash 
extern __typeof (g_variant_type_hash) g_variant_type_hash __attribute((alias("IA__g_variant_type_hash"), visibility("default")));

#undef g_variant_type_equal 
extern __typeof (g_variant_type_equal) g_variant_type_equal __attribute((alias("IA__g_variant_type_equal"), visibility("default")));

#undef g_variant_type_is_subtype_of 
extern __typeof (g_variant_type_is_subtype_of) g_variant_type_is_subtype_of __attribute((alias("IA__g_variant_type_is_subtype_of"), visibility("default")));

#undef g_variant_type_element 
extern __typeof (g_variant_type_element) g_variant_type_element __attribute((alias("IA__g_variant_type_element"), visibility("default")));

#undef g_variant_type_first 
extern __typeof (g_variant_type_first) g_variant_type_first __attribute((alias("IA__g_variant_type_first"), visibility("default")));

#undef g_variant_type_next 
extern __typeof (g_variant_type_next) g_variant_type_next __attribute((alias("IA__g_variant_type_next"), visibility("default")));

#undef g_variant_type_n_items 
extern __typeof (g_variant_type_n_items) g_variant_type_n_items __attribute((alias("IA__g_variant_type_n_items"), visibility("default")));

#undef g_variant_type_key 
extern __typeof (g_variant_type_key) g_variant_type_key __attribute((alias("IA__g_variant_type_key"), visibility("default")));

#undef g_variant_type_value 
extern __typeof (g_variant_type_value) g_variant_type_value __attribute((alias("IA__g_variant_type_value"), visibility("default")));

#undef g_variant_type_new_array 
extern __typeof (g_variant_type_new_array) g_variant_type_new_array __attribute((alias("IA__g_variant_type_new_array"), visibility("default")));

#undef g_variant_type_new_maybe 
extern __typeof (g_variant_type_new_maybe) g_variant_type_new_maybe __attribute((alias("IA__g_variant_type_new_maybe"), visibility("default")));

#undef g_variant_type_new_tuple 
extern __typeof (g_variant_type_new_tuple) g_variant_type_new_tuple __attribute((alias("IA__g_variant_type_new_tuple"), visibility("default")));

#undef g_variant_type_new_dict_entry 
extern __typeof (g_variant_type_new_dict_entry) g_variant_type_new_dict_entry __attribute((alias("IA__g_variant_type_new_dict_entry"), visibility("default")));

#undef g_variant_type_checked_ 
extern __typeof (g_variant_type_checked_) g_variant_type_checked_ __attribute((alias("IA__g_variant_type_checked_"), visibility("default")));

#endif
#endif
#if IN_HEADER(__G_VARIANT_H__)
#if IN_FILE(__G_VARIANT_CORE_C__)
#undef g_variant_unref 
extern __typeof (g_variant_unref) g_variant_unref __attribute((alias("IA__g_variant_unref"), visibility("default")));

#undef g_variant_ref 
extern __typeof (g_variant_ref) g_variant_ref __attribute((alias("IA__g_variant_ref"), visibility("default")));

#undef g_variant_ref_sink 
extern __typeof (g_variant_ref_sink) g_variant_ref_sink __attribute((alias("IA__g_variant_ref_sink"), visibility("default")));

#undef g_variant_n_children 
extern __typeof (g_variant_n_children) g_variant_n_children __attribute((alias("IA__g_variant_n_children"), visibility("default")));

#undef g_variant_get_child_value 
extern __typeof (g_variant_get_child_value) g_variant_get_child_value __attribute((alias("IA__g_variant_get_child_value"), visibility("default")));

#undef g_variant_get_size 
extern __typeof (g_variant_get_size) g_variant_get_size __attribute((alias("IA__g_variant_get_size"), visibility("default")));

#undef g_variant_get_data 
extern __typeof (g_variant_get_data) g_variant_get_data __attribute((alias("IA__g_variant_get_data"), visibility("default")));

#undef g_variant_store 
extern __typeof (g_variant_store) g_variant_store __attribute((alias("IA__g_variant_store"), visibility("default")));

#undef g_variant_is_normal_form 
extern __typeof (g_variant_is_normal_form) g_variant_is_normal_form __attribute((alias("IA__g_variant_is_normal_form"), visibility("default")));

#endif
#if IN_FILE(__G_VARIANT_C__)
#undef g_variant_get_type 
extern __typeof (g_variant_get_type) g_variant_get_type __attribute((alias("IA__g_variant_get_type"), visibility("default")));

#undef g_variant_get_type_string 
extern __typeof (g_variant_get_type_string) g_variant_get_type_string __attribute((alias("IA__g_variant_get_type_string"), visibility("default")));

#undef g_variant_is_of_type 
extern __typeof (g_variant_is_of_type) g_variant_is_of_type __attribute((alias("IA__g_variant_is_of_type"), visibility("default")));

#undef g_variant_is_container 
extern __typeof (g_variant_is_container) g_variant_is_container __attribute((alias("IA__g_variant_is_container"), visibility("default")));

#undef g_variant_classify 
extern __typeof (g_variant_classify) g_variant_classify __attribute((alias("IA__g_variant_classify"), visibility("default")));

#undef g_variant_new_boolean 
extern __typeof (g_variant_new_boolean) g_variant_new_boolean __attribute((alias("IA__g_variant_new_boolean"), visibility("default")));

#undef g_variant_new_byte 
extern __typeof (g_variant_new_byte) g_variant_new_byte __attribute((alias("IA__g_variant_new_byte"), visibility("default")));

#undef g_variant_new_int16 
extern __typeof (g_variant_new_int16) g_variant_new_int16 __attribute((alias("IA__g_variant_new_int16"), visibility("default")));

#undef g_variant_new_uint16 
extern __typeof (g_variant_new_uint16) g_variant_new_uint16 __attribute((alias("IA__g_variant_new_uint16"), visibility("default")));

#undef g_variant_new_int32 
extern __typeof (g_variant_new_int32) g_variant_new_int32 __attribute((alias("IA__g_variant_new_int32"), visibility("default")));

#undef g_variant_new_uint32 
extern __typeof (g_variant_new_uint32) g_variant_new_uint32 __attribute((alias("IA__g_variant_new_uint32"), visibility("default")));

#undef g_variant_new_int64 
extern __typeof (g_variant_new_int64) g_variant_new_int64 __attribute((alias("IA__g_variant_new_int64"), visibility("default")));

#undef g_variant_new_uint64 
extern __typeof (g_variant_new_uint64) g_variant_new_uint64 __attribute((alias("IA__g_variant_new_uint64"), visibility("default")));

#undef g_variant_new_handle 
extern __typeof (g_variant_new_handle) g_variant_new_handle __attribute((alias("IA__g_variant_new_handle"), visibility("default")));

#undef g_variant_new_double 
extern __typeof (g_variant_new_double) g_variant_new_double __attribute((alias("IA__g_variant_new_double"), visibility("default")));

#undef g_variant_new_string 
extern __typeof (g_variant_new_string) g_variant_new_string __attribute((alias("IA__g_variant_new_string"), visibility("default")));

#undef g_variant_new_object_path 
extern __typeof (g_variant_new_object_path) g_variant_new_object_path __attribute((alias("IA__g_variant_new_object_path"), visibility("default")));

#undef g_variant_is_object_path 
extern __typeof (g_variant_is_object_path) g_variant_is_object_path __attribute((alias("IA__g_variant_is_object_path"), visibility("default")));

#undef g_variant_new_signature 
extern __typeof (g_variant_new_signature) g_variant_new_signature __attribute((alias("IA__g_variant_new_signature"), visibility("default")));

#undef g_variant_is_signature 
extern __typeof (g_variant_is_signature) g_variant_is_signature __attribute((alias("IA__g_variant_is_signature"), visibility("default")));

#undef g_variant_new_variant 
extern __typeof (g_variant_new_variant) g_variant_new_variant __attribute((alias("IA__g_variant_new_variant"), visibility("default")));

#undef g_variant_new_strv 
extern __typeof (g_variant_new_strv) g_variant_new_strv __attribute((alias("IA__g_variant_new_strv"), visibility("default")));

#undef g_variant_get_boolean 
extern __typeof (g_variant_get_boolean) g_variant_get_boolean __attribute((alias("IA__g_variant_get_boolean"), visibility("default")));

#undef g_variant_get_byte 
extern __typeof (g_variant_get_byte) g_variant_get_byte __attribute((alias("IA__g_variant_get_byte"), visibility("default")));

#undef g_variant_get_int16 
extern __typeof (g_variant_get_int16) g_variant_get_int16 __attribute((alias("IA__g_variant_get_int16"), visibility("default")));

#undef g_variant_get_uint16 
extern __typeof (g_variant_get_uint16) g_variant_get_uint16 __attribute((alias("IA__g_variant_get_uint16"), visibility("default")));

#undef g_variant_get_int32 
extern __typeof (g_variant_get_int32) g_variant_get_int32 __attribute((alias("IA__g_variant_get_int32"), visibility("default")));

#undef g_variant_get_uint32 
extern __typeof (g_variant_get_uint32) g_variant_get_uint32 __attribute((alias("IA__g_variant_get_uint32"), visibility("default")));

#undef g_variant_get_int64 
extern __typeof (g_variant_get_int64) g_variant_get_int64 __attribute((alias("IA__g_variant_get_int64"), visibility("default")));

#undef g_variant_get_uint64 
extern __typeof (g_variant_get_uint64) g_variant_get_uint64 __attribute((alias("IA__g_variant_get_uint64"), visibility("default")));

#undef g_variant_get_handle 
extern __typeof (g_variant_get_handle) g_variant_get_handle __attribute((alias("IA__g_variant_get_handle"), visibility("default")));

#undef g_variant_get_double 
extern __typeof (g_variant_get_double) g_variant_get_double __attribute((alias("IA__g_variant_get_double"), visibility("default")));

#undef g_variant_get_string 
extern __typeof (g_variant_get_string) g_variant_get_string __attribute((alias("IA__g_variant_get_string"), visibility("default")));

#undef g_variant_dup_string 
extern __typeof (g_variant_dup_string) g_variant_dup_string __attribute((alias("IA__g_variant_dup_string"), visibility("default")));

#undef g_variant_get_variant 
extern __typeof (g_variant_get_variant) g_variant_get_variant __attribute((alias("IA__g_variant_get_variant"), visibility("default")));

#undef g_variant_get_strv 
extern __typeof (g_variant_get_strv) g_variant_get_strv __attribute((alias("IA__g_variant_get_strv"), visibility("default")));

#undef g_variant_dup_strv 
extern __typeof (g_variant_dup_strv) g_variant_dup_strv __attribute((alias("IA__g_variant_dup_strv"), visibility("default")));

#undef g_variant_new_maybe 
extern __typeof (g_variant_new_maybe) g_variant_new_maybe __attribute((alias("IA__g_variant_new_maybe"), visibility("default")));

#undef g_variant_new_array 
extern __typeof (g_variant_new_array) g_variant_new_array __attribute((alias("IA__g_variant_new_array"), visibility("default")));

#undef g_variant_new_tuple 
extern __typeof (g_variant_new_tuple) g_variant_new_tuple __attribute((alias("IA__g_variant_new_tuple"), visibility("default")));

#undef g_variant_new_dict_entry 
extern __typeof (g_variant_new_dict_entry) g_variant_new_dict_entry __attribute((alias("IA__g_variant_new_dict_entry"), visibility("default")));

#undef g_variant_get_maybe 
extern __typeof (g_variant_get_maybe) g_variant_get_maybe __attribute((alias("IA__g_variant_get_maybe"), visibility("default")));

#undef g_variant_get_fixed_array 
extern __typeof (g_variant_get_fixed_array) g_variant_get_fixed_array __attribute((alias("IA__g_variant_get_fixed_array"), visibility("default")));

#undef g_variant_print 
extern __typeof (g_variant_print) g_variant_print __attribute((alias("IA__g_variant_print"), visibility("default")));

#undef g_variant_print_string 
extern __typeof (g_variant_print_string) g_variant_print_string __attribute((alias("IA__g_variant_print_string"), visibility("default")));

#undef g_variant_hash 
extern __typeof (g_variant_hash) g_variant_hash __attribute((alias("IA__g_variant_hash"), visibility("default")));

#undef g_variant_equal 
extern __typeof (g_variant_equal) g_variant_equal __attribute((alias("IA__g_variant_equal"), visibility("default")));

#undef g_variant_iter_copy 
extern __typeof (g_variant_iter_copy) g_variant_iter_copy __attribute((alias("IA__g_variant_iter_copy"), visibility("default")));

#undef g_variant_iter_free 
extern __typeof (g_variant_iter_free) g_variant_iter_free __attribute((alias("IA__g_variant_iter_free"), visibility("default")));

#undef g_variant_iter_init 
extern __typeof (g_variant_iter_init) g_variant_iter_init __attribute((alias("IA__g_variant_iter_init"), visibility("default")));

#undef g_variant_iter_n_children 
extern __typeof (g_variant_iter_n_children) g_variant_iter_n_children __attribute((alias("IA__g_variant_iter_n_children"), visibility("default")));

#undef g_variant_iter_new 
extern __typeof (g_variant_iter_new) g_variant_iter_new __attribute((alias("IA__g_variant_iter_new"), visibility("default")));

#undef g_variant_iter_next_value 
extern __typeof (g_variant_iter_next_value) g_variant_iter_next_value __attribute((alias("IA__g_variant_iter_next_value"), visibility("default")));

#undef g_variant_builder_add_value 
extern __typeof (g_variant_builder_add_value) g_variant_builder_add_value __attribute((alias("IA__g_variant_builder_add_value"), visibility("default")));

#undef g_variant_builder_init 
extern __typeof (g_variant_builder_init) g_variant_builder_init __attribute((alias("IA__g_variant_builder_init"), visibility("default")));

#undef g_variant_builder_clear 
extern __typeof (g_variant_builder_clear) g_variant_builder_clear __attribute((alias("IA__g_variant_builder_clear"), visibility("default")));

#undef g_variant_builder_open 
extern __typeof (g_variant_builder_open) g_variant_builder_open __attribute((alias("IA__g_variant_builder_open"), visibility("default")));

#undef g_variant_builder_close 
extern __typeof (g_variant_builder_close) g_variant_builder_close __attribute((alias("IA__g_variant_builder_close"), visibility("default")));

#undef g_variant_builder_end 
extern __typeof (g_variant_builder_end) g_variant_builder_end __attribute((alias("IA__g_variant_builder_end"), visibility("default")));

#undef g_variant_builder_new 
extern __typeof (g_variant_builder_new) g_variant_builder_new __attribute((alias("IA__g_variant_builder_new"), visibility("default")));

#undef g_variant_builder_unref 
extern __typeof (g_variant_builder_unref) g_variant_builder_unref __attribute((alias("IA__g_variant_builder_unref"), visibility("default")));

#undef g_variant_builder_ref 
extern __typeof (g_variant_builder_ref) g_variant_builder_ref __attribute((alias("IA__g_variant_builder_ref"), visibility("default")));

#undef g_variant_new_va 
extern __typeof (g_variant_new_va) g_variant_new_va __attribute((alias("IA__g_variant_new_va"), visibility("default")));

#undef g_variant_get_va 
extern __typeof (g_variant_get_va) g_variant_get_va __attribute((alias("IA__g_variant_get_va"), visibility("default")));

#undef g_variant_new 
extern __typeof (g_variant_new) g_variant_new __attribute((alias("IA__g_variant_new"), visibility("default")));

#undef g_variant_get 
extern __typeof (g_variant_get) g_variant_get __attribute((alias("IA__g_variant_get"), visibility("default")));

#undef g_variant_builder_add 
extern __typeof (g_variant_builder_add) g_variant_builder_add __attribute((alias("IA__g_variant_builder_add"), visibility("default")));

#undef g_variant_get_child 
extern __typeof (g_variant_get_child) g_variant_get_child __attribute((alias("IA__g_variant_get_child"), visibility("default")));

#undef g_variant_iter_next 
extern __typeof (g_variant_iter_next) g_variant_iter_next __attribute((alias("IA__g_variant_iter_next"), visibility("default")));

#undef g_variant_iter_loop 
extern __typeof (g_variant_iter_loop) g_variant_iter_loop __attribute((alias("IA__g_variant_iter_loop"), visibility("default")));

#undef g_variant_new_from_data 
extern __typeof (g_variant_new_from_data) g_variant_new_from_data __attribute((alias("IA__g_variant_new_from_data"), visibility("default")));

#undef g_variant_get_normal_form 
extern __typeof (g_variant_get_normal_form) g_variant_get_normal_form __attribute((alias("IA__g_variant_get_normal_form"), visibility("default")));

#undef g_variant_byteswap 
extern __typeof (g_variant_byteswap) g_variant_byteswap __attribute((alias("IA__g_variant_byteswap"), visibility("default")));

#endif
#if IN_FILE(__G_VARIANT_PARSER_C__)
#undef g_variant_new_parsed 
extern __typeof (g_variant_new_parsed) g_variant_new_parsed __attribute((alias("IA__g_variant_new_parsed"), visibility("default")));

#undef g_variant_new_parsed_va 
extern __typeof (g_variant_new_parsed_va) g_variant_new_parsed_va __attribute((alias("IA__g_variant_new_parsed_va"), visibility("default")));

#undef g_variant_parse 
extern __typeof (g_variant_parse) g_variant_parse __attribute((alias("IA__g_variant_parse"), visibility("default")));

#undef g_variant_parser_get_error_quark 
extern __typeof (g_variant_parser_get_error_quark) g_variant_parser_get_error_quark __attribute((alias("IA__g_variant_parser_get_error_quark"), visibility("default")));

#endif
#endif
#if IN_HEADER(__G_VARIANT_TYPE_INFO_H__)
#if IN_FILE(__G_VARIANT_TYPE_INFO_C__)
#undef g_variant_type_info_get_type_string 
extern __typeof (g_variant_type_info_get_type_string) g_variant_type_info_get_type_string __attribute((alias("IA__g_variant_type_info_get_type_string"), visibility("default")));

#undef g_variant_type_info_query 
extern __typeof (g_variant_type_info_query) g_variant_type_info_query __attribute((alias("IA__g_variant_type_info_query"), visibility("default")));

#undef g_variant_type_info_element 
extern __typeof (g_variant_type_info_element) g_variant_type_info_element __attribute((alias("IA__g_variant_type_info_element"), visibility("default")));

#undef g_variant_type_info_query_element 
extern __typeof (g_variant_type_info_query_element) g_variant_type_info_query_element __attribute((alias("IA__g_variant_type_info_query_element"), visibility("default")));

#undef g_variant_type_info_n_members 
extern __typeof (g_variant_type_info_n_members) g_variant_type_info_n_members __attribute((alias("IA__g_variant_type_info_n_members"), visibility("default")));

#undef g_variant_type_info_member_info 
extern __typeof (g_variant_type_info_member_info) g_variant_type_info_member_info __attribute((alias("IA__g_variant_type_info_member_info"), visibility("default")));

#undef g_variant_type_info_get 
extern __typeof (g_variant_type_info_get) g_variant_type_info_get __attribute((alias("IA__g_variant_type_info_get"), visibility("default")));

#undef g_variant_type_info_ref 
extern __typeof (g_variant_type_info_ref) g_variant_type_info_ref __attribute((alias("IA__g_variant_type_info_ref"), visibility("default")));

#undef g_variant_type_info_unref 
extern __typeof (g_variant_type_info_unref) g_variant_type_info_unref __attribute((alias("IA__g_variant_type_info_unref"), visibility("default")));

#undef g_variant_type_info_assert_no_infos 
extern __typeof (g_variant_type_info_assert_no_infos) g_variant_type_info_assert_no_infos __attribute((alias("IA__g_variant_type_info_assert_no_infos"), visibility("default")));

#endif
#endif
#if IN_HEADER(__G_VARIANT_SERIALISER_H__)
#if IN_FILE(__G_VARIANT_SERIALISER_C__)
#undef g_variant_serialised_byteswap 
extern __typeof (g_variant_serialised_byteswap) g_variant_serialised_byteswap __attribute((alias("IA__g_variant_serialised_byteswap"), visibility("default")));

#undef g_variant_serialised_get_child 
extern __typeof (g_variant_serialised_get_child) g_variant_serialised_get_child __attribute((alias("IA__g_variant_serialised_get_child"), visibility("default")));

#undef g_variant_serialised_is_normal 
extern __typeof (g_variant_serialised_is_normal) g_variant_serialised_is_normal __attribute((alias("IA__g_variant_serialised_is_normal"), visibility("default")));

#undef g_variant_serialised_n_children 
extern __typeof (g_variant_serialised_n_children) g_variant_serialised_n_children __attribute((alias("IA__g_variant_serialised_n_children"), visibility("default")));

#undef g_variant_serialiser_is_object_path 
extern __typeof (g_variant_serialiser_is_object_path) g_variant_serialiser_is_object_path __attribute((alias("IA__g_variant_serialiser_is_object_path"), visibility("default")));

#undef g_variant_serialiser_is_signature 
extern __typeof (g_variant_serialiser_is_signature) g_variant_serialiser_is_signature __attribute((alias("IA__g_variant_serialiser_is_signature"), visibility("default")));

#undef g_variant_serialiser_is_string 
extern __typeof (g_variant_serialiser_is_string) g_variant_serialiser_is_string __attribute((alias("IA__g_variant_serialiser_is_string"), visibility("default")));

#undef g_variant_serialiser_needed_size 
extern __typeof (g_variant_serialiser_needed_size) g_variant_serialiser_needed_size __attribute((alias("IA__g_variant_serialiser_needed_size"), visibility("default")));

#undef g_variant_serialiser_serialise 
extern __typeof (g_variant_serialiser_serialise) g_variant_serialiser_serialise __attribute((alias("IA__g_variant_serialiser_serialise"), visibility("default")));

#endif
#endif
#if IN_HEADER(__G_VARIANT_INTERNAL_H__)
#if IN_FILE(__G_VARIANT_C__)
#undef g_variant_format_string_scan_type 
extern __typeof (g_variant_format_string_scan_type) g_variant_format_string_scan_type __attribute((alias("IA__g_variant_format_string_scan_type"), visibility("default")));

#undef g_variant_format_string_scan 
extern __typeof (g_variant_format_string_scan) g_variant_format_string_scan __attribute((alias("IA__g_variant_format_string_scan"), visibility("default")));

#endif
#endif
#if IN_HEADER(__G_WIN32_H__)
#if IN_FILE(__G_WIN32_H__)
#ifdef G_OS_WIN32
#undef g_win32_error_message 
extern __typeof (g_win32_error_message) g_win32_error_message __attribute((alias("IA__g_win32_error_message"), visibility("default")));

#undef g_win32_ftruncate 
extern __typeof (g_win32_ftruncate) g_win32_ftruncate __attribute((alias("IA__g_win32_ftruncate"), visibility("default")));

#undef g_win32_get_package_installation_directory_of_module 
extern __typeof (g_win32_get_package_installation_directory_of_module) g_win32_get_package_installation_directory_of_module __attribute((alias("IA__g_win32_get_package_installation_directory_of_module"), visibility("default")));

#ifndef _WIN64
#undef g_win32_get_package_installation_directory 
extern __typeof (g_win32_get_package_installation_directory) g_win32_get_package_installation_directory __attribute((alias("IA__g_win32_get_package_installation_directory"), visibility("default")));

#endif
#undef g_win32_get_package_installation_directory_utf8 
extern __typeof (g_win32_get_package_installation_directory_utf8) g_win32_get_package_installation_directory_utf8 __attribute((alias("IA__g_win32_get_package_installation_directory_utf8"), visibility("default")));

#ifndef _WIN64
#undef g_win32_get_package_installation_subdirectory 
extern __typeof (g_win32_get_package_installation_subdirectory) g_win32_get_package_installation_subdirectory __attribute((alias("IA__g_win32_get_package_installation_subdirectory"), visibility("default")));

#endif
#undef g_win32_get_package_installation_subdirectory_utf8 
extern __typeof (g_win32_get_package_installation_subdirectory_utf8) g_win32_get_package_installation_subdirectory_utf8 __attribute((alias("IA__g_win32_get_package_installation_subdirectory_utf8"), visibility("default")));

#undef g_win32_get_windows_version 
extern __typeof (g_win32_get_windows_version) g_win32_get_windows_version __attribute((alias("IA__g_win32_get_windows_version"), visibility("default")));

#undef g_win32_getlocale 
extern __typeof (g_win32_getlocale) g_win32_getlocale __attribute((alias("IA__g_win32_getlocale"), visibility("default")));

#undef g_win32_locale_filename_from_utf8 
extern __typeof (g_win32_locale_filename_from_utf8) g_win32_locale_filename_from_utf8 __attribute((alias("IA__g_win32_locale_filename_from_utf8"), visibility("default")));

#endif
#endif
#endif
#if IN_HEADER(__G_HOST_UTILS_H__)
#if IN_FILE(__G_HOST_UTILS_C__)
#undef g_hostname_is_non_ascii 
extern __typeof (g_hostname_is_non_ascii) g_hostname_is_non_ascii __attribute((alias("IA__g_hostname_is_non_ascii"), visibility("default")));

#undef g_hostname_is_ascii_encoded 
extern __typeof (g_hostname_is_ascii_encoded) g_hostname_is_ascii_encoded __attribute((alias("IA__g_hostname_is_ascii_encoded"), visibility("default")));

#undef g_hostname_is_ip_address 
extern __typeof (g_hostname_is_ip_address) g_hostname_is_ip_address __attribute((alias("IA__g_hostname_is_ip_address"), visibility("default")));

#undef g_hostname_to_ascii 
extern __typeof (g_hostname_to_ascii) g_hostname_to_ascii __attribute((alias("IA__g_hostname_to_ascii"), visibility("default")));

#undef g_hostname_to_unicode 
extern __typeof (g_hostname_to_unicode) g_hostname_to_unicode __attribute((alias("IA__g_hostname_to_unicode"), visibility("default")));

#endif
#endif

#endif /* G_HAVE_GNUC_VISIBILITY */
#endif /* DISABLE_VISIBILITY */
