diff --git a/Mac/Build/PythonCorePPC.prj b/Mac/Build/PythonCorePPC.prj
index 990dc8c..1358d0c 100644
--- a/Mac/Build/PythonCorePPC.prj
+++ b/Mac/Build/PythonCorePPC.prj
Binary files differ
diff --git a/Mac/Build/PythonCorePPC.prj.exp b/Mac/Build/PythonCorePPC.prj.exp
index c3471cf..57c8b1f 100644
--- a/Mac/Build/PythonCorePPC.prj.exp
+++ b/Mac/Build/PythonCorePPC.prj.exp
@@ -1,3 +1,7 @@
+sSuffices
+GUSISetupConfig
+GUSISetupDevices
+GUSISetupFactories
 PyExc_Exception
 PyExc_StandardError
 PyExc_ArithmeticError
@@ -44,6 +48,11 @@
 Py_AddPendingCall
 PyEval_RestoreThread
 PyEval_SaveThread
+PyEval_ReleaseThread
+PyEval_AcquireThread
+PyEval_ReleaseLock
+PyEval_AcquireLock
+PyEval_InitThreads
 PyArg_GetFloatArray
 PyArg_GetDoubleArray
 PyArg_GetShortArray
@@ -128,6 +137,7 @@
 Py_InteractiveFlag
 Py_NoSiteFlag
 Py_FrozenFlag
+_PyThread_Started
 Py_FdIsInteractive
 Py_Exit
 Py_AtExit
@@ -314,6 +324,7 @@
 _Py_TrueStruct
 PyInt_Type
 PyInt_Fini
+PyInt_FromUnicode
 PyInt_FromString
 PyInt_AsLong
 PyInt_FromLong
@@ -331,6 +342,7 @@
 PyList_Size
 PyList_New
 PyLong_Type
+PyLong_FromUnicode
 PyLong_FromString
 PyLong_AsVoidPtr
 PyLong_FromVoidPtr
@@ -358,8 +370,10 @@
 _Py_NoneStruct
 _Py_cobject_hack
 _Py_abstract_hack
+_PyCompareState_Key
 _PyTrash_delete_later
 _PyTrash_delete_nesting
+_PyCompareState_nesting
 _PyTrash_destroy_list
 _PyTrash_deposit_object
 Py_ReprLeave
@@ -469,6 +483,7 @@
 initrgbimg
 initrotor
 initselect
+gethostbyname_lock
 initsocket
 initsoundex
 initstrop
@@ -488,6 +503,7 @@
 PyMac_PreferenceOptions
 PyMac_GetPythonPath
 PyMac_GetPythonDir
+PyMac_OpenPrefFile
 Py_GetPath
 Py_GetPlatform
 PyMac_ConsoleIsDead
@@ -643,10 +659,1030 @@
 PyBuffer_FromObject
 _PyImport_DynLoadFiletab
 _PyImport_GetDynLoadFunc
-sSuffices
-GUSISetupConfig
-GUSISetupDevices
-GUSISetupFactories
+init_codecs
+initunicodedata
+_PyUnicode_CategoryNames
+_PyUnicode_BidirectionalNames
+_PyUnicode_Database_0
+_PyUnicode_Database_1
+_PyUnicode_Database_2
+_PyUnicode_Database_3
+_PyUnicode_Database_4
+_PyUnicode_Database_5
+_PyUnicode_Database_6
+_PyUnicode_Database_7
+_PyUnicode_Database_8
+_PyUnicode_Database_9
+_PyUnicode_Database_10
+_PyUnicode_Database_11
+_PyUnicode_Database_12
+_PyUnicode_Database_13
+_PyUnicode_Database_14
+_PyUnicode_Database_15
+_PyUnicode_Database
+_PyCodecRegistry_Fini
+_PyCodecRegistry_Init
+PyCodec_Decode
+PyCodec_Encode
+PyCodec_StreamWriter
+PyCodec_StreamReader
+PyCodec_Decoder
+PyCodec_Encoder
+_PyCodec_Lookup
+PyCodec_Register
+_PyUnicode_ToLowercase
+_PyUnicode_ToUppercase
+_PyUnicode_IsUppercase
+_PyUnicode_IsLowercase
+_PyUnicode_IsWhitespace
+_PyUnicode_IsNumeric
+_PyUnicode_ToNumeric
+_PyUnicode_IsDigit
+_PyUnicode_ToDigit
+_PyUnicode_IsDecimalDigit
+_PyUnicode_ToDecimalDigit
+_PyUnicode_IsTitlecase
+_PyUnicode_ToTitlecase
+_PyUnicode_IsLinebreak
+PyUnicode_Type
+_PyUnicode_Fini
+_PyUnicode_Init
+PyUnicode_Format
+PyUnicode_Split
+PyUnicode_Replace
+PyUnicode_Concat
+PyUnicode_Contains
+PyUnicode_Compare
+PyUnicode_Splitlines
+PyUnicode_Join
+PyUnicode_Tailmatch
+PyUnicode_Find
+PyUnicode_Count
+PyUnicode_EncodeDecimal
+PyUnicode_Translate
+PyUnicode_TranslateCharmap
+PyUnicode_AsCharmapString
+PyUnicode_EncodeCharmap
+PyUnicode_DecodeCharmap
+PyUnicode_AsASCIIString
+PyUnicode_EncodeASCII
+PyUnicode_DecodeASCII
+PyUnicode_AsLatin1String
+PyUnicode_EncodeLatin1
+PyUnicode_DecodeLatin1
+PyUnicode_AsRawUnicodeEscapeString
+PyUnicode_EncodeRawUnicodeEscape
+PyUnicode_DecodeRawUnicodeEscape
+PyUnicode_AsUnicodeEscapeString
+PyUnicode_EncodeUnicodeEscape
+PyUnicode_DecodeUnicodeEscape
+PyUnicode_AsUTF16String
+PyUnicode_EncodeUTF16
+PyUnicode_DecodeUTF16
+PyUnicode_AsUTF8String
+PyUnicode_EncodeUTF8
+PyUnicode_DecodeUTF8
+PyUnicode_GetSize
+PyUnicode_AsUnicode
+PyUnicode_AsEncodedString
+PyUnicode_Encode
+PyUnicode_Decode
+PyUnicode_FromObject
+PyUnicode_FromUnicode
+PyUnicode_Resize
+initthread
+PyThread_up_sema
+PyThread_down_sema
+PyThread_free_sema
+PyThread_allocate_sema
+PyThread_release_lock
+PyThread_acquire_lock
+PyThread_free_lock
+PyThread_allocate_lock
+PyThread__exit_thread
+PyThread_exit_thread
+PyThread_get_thread_ident
+PyThread_start_new_thread
+PyThread_init_thread
+__vt__15GUSISIOUXDevice		# GUSISIOUXDevice::__vt
+__vt__15GUSISIOUXSocket		# GUSISIOUXSocket::__vt
+sInstance__15GUSISIOUXDevice		# GUSISIOUXDevice::sInstance
+sInstance__15GUSISIOUXSocket		# GUSISIOUXSocket::sInstance
+__dt__15GUSISIOUXDeviceFv		# GUSISIOUXDevice::~GUSISIOUXDevice()
+GUSISetupConsoleDescriptors
+open__15GUSISIOUXDeviceFR13GUSIFileTokeni		# GUSISIOUXDevice::open(GUSIFileToken&,int)
+Want__15GUSISIOUXDeviceFR13GUSIFileToken		# GUSISIOUXDevice::Want(GUSIFileToken&)
+__dt__10GUSIDeviceFv		# GUSIDevice::~GUSIDevice()
+Instance__15GUSISIOUXDeviceFv		# GUSISIOUXDevice::Instance()
+select__15GUSISIOUXSocketFPbPbPb		# GUSISIOUXSocket::select(bool*,bool*,bool*)
+isatty__15GUSISIOUXSocketFv		# GUSISIOUXSocket::isatty()
+fstat__15GUSISIOUXSocketFP4stat		# GUSISIOUXSocket::fstat(stat*)
+ioctl__15GUSISIOUXSocketFUiPc		# GUSISIOUXSocket::ioctl(unsigned int,char*)
+write__15GUSISIOUXSocketFRC12GUSIGatherer		# GUSISIOUXSocket::write(const GUSIGatherer&)
+read__15GUSISIOUXSocketFRC13GUSIScatterer		# GUSISIOUXSocket::read(const GUSIScatterer&)
+__dt__15GUSISIOUXSocketFv		# GUSISIOUXSocket::~GUSISIOUXSocket()
+Initialize__15GUSISIOUXSocketFv		# GUSISIOUXSocket::Initialize()
+__ct__15GUSISIOUXSocketFv		# GUSISIOUXSocket::GUSISIOUXSocket()
+Instance__15GUSISIOUXSocketFv		# GUSISIOUXSocket::Instance()
+GUSISetupConsoleStdio
+GUSIStdioFlush
+GUSIStdioClose
+fdopen
+__close_console
+__close_file
+__position_file
+__write_console
+__write_file
+__read_console
+__read_file
+__open_temp_file
+__open_file
+gGUSIEventMask
+h_errno
+gGUSIEventHook
+gGUSIExecHook
+gGUSISpinHook
+GUSIHandleNextEvent__Fl		# GUSIHandleNextEvent(long)
+GUSISetMacHostError__Fs		# GUSISetMacHostError(short)
+GUSISetHostError__Fi		# GUSISetHostError(int)
+GUSISetMacError__Fs		# GUSISetMacError(short)
+GUSIMapMacError__Fs		# GUSIMapMacError(short)
+GUSISetPosixError__Fi		# GUSISetPosixError(int)
+GUSIGetHook__FUl		# GUSIGetHook(unsigned long)
+GUSISetHook__FUlPFv_v		# GUSISetHook(unsigned long,void (*)(void))
+__vt__13GUSIScattGath		# GUSIScattGath::__vt
+Peek__Q214GUSIRingBuffer6PeekerFRC13GUSIScattererRUl		# GUSIRingBuffer::Peeker::Peek(const GUSIScatterer&,unsigned long&)
+Peek__Q214GUSIRingBuffer6PeekerFPvRUl		# GUSIRingBuffer::Peeker::Peek(void*,unsigned long&)
+PeekBuffer__Q214GUSIRingBuffer6PeekerFRUl		# GUSIRingBuffer::Peeker::PeekBuffer(unsigned long&)
+__dt__Q214GUSIRingBuffer6PeekerFv		# GUSIRingBuffer::Peeker::~Peeker()
+__ct__Q214GUSIRingBuffer6PeekerFR14GUSIRingBuffer		# GUSIRingBuffer::Peeker::Peeker(GUSIRingBuffer&)
+Valid__14GUSIRingBufferFv		# GUSIRingBuffer::Valid()
+Free__14GUSIRingBufferFv		# GUSIRingBuffer::Free()
+IterateIOVec__14GUSIRingBufferFRC13GUSIScattGathRUlRUlb		# GUSIRingBuffer::IterateIOVec(const GUSIScattGath&,unsigned long&,unsigned long&,bool)
+Consume__14GUSIRingBufferFPvRUl		# GUSIRingBuffer::Consume(void*,unsigned long&)
+Produce__14GUSIRingBufferFPvRUl		# GUSIRingBuffer::Produce(void*,unsigned long&)
+FreeBuffer__14GUSIRingBufferFPvUl		# GUSIRingBuffer::FreeBuffer(void*,unsigned long)
+ValidBuffer__14GUSIRingBufferFPvUl		# GUSIRingBuffer::ValidBuffer(void*,unsigned long)
+ConsumeBuffer__14GUSIRingBufferFRUl		# GUSIRingBuffer::ConsumeBuffer(unsigned long&)
+ProduceBuffer__14GUSIRingBufferFRUl		# GUSIRingBuffer::ProduceBuffer(unsigned long&)
+__dt__14GUSIRingBufferFv		# GUSIRingBuffer::~GUSIRingBuffer()
+ObsoleteBuffer__14GUSIRingBufferFv		# GUSIRingBuffer::ObsoleteBuffer()
+PurgeBuffers__14GUSIRingBufferFv		# GUSIRingBuffer::PurgeBuffers()
+SwitchBuffer__14GUSIRingBufferFUl		# GUSIRingBuffer::SwitchBuffer(unsigned long)
+__ct__14GUSIRingBufferFUl		# GUSIRingBuffer::GUSIRingBuffer(unsigned long)
+Invariant__14GUSIRingBufferFv		# GUSIRingBuffer::Invariant()
+Distance__14GUSIRingBufferFPcPc		# GUSIRingBuffer::Distance(char*,char*)
+__ct__13GUSIScattGathFRC13GUSIScattGath		# GUSIScattGath::GUSIScattGath(const GUSIScattGath&)
+__as__13GUSIScattGathFRC13GUSIScattGath		# GUSIScattGath::operator =(const GUSIScattGath&)
+__dt__13GUSIScattGathFv		# GUSIScattGath::~GUSIScattGath()
+Buffer__13GUSIScattGathCFv		# GUSIScattGath::Buffer() const
+__ct__13GUSIScattGathFPvUlb		# GUSIScattGath::GUSIScattGath(void*,unsigned long,bool)
+__ct__13GUSIScattGathFPC5iovecib		# GUSIScattGath::GUSIScattGath(const iovec*,int,bool)
+sInstance__17GUSIConfiguration		# GUSIConfiguration::sInstance
+ConfigureHandleAppleEvents__17GUSIConfigurationFb		# GUSIConfiguration::ConfigureHandleAppleEvents(bool)
+CmdPeriod__17GUSIConfigurationFPC11EventRecord		# GUSIConfiguration::CmdPeriod(const EventRecord*)
+CheckInterrupt__17GUSIConfigurationFv		# GUSIConfiguration::CheckInterrupt()
+BrokenPipe__17GUSIConfigurationFv		# GUSIConfiguration::BrokenPipe()
+DoAutoInitGraf__17GUSIConfigurationFv		# GUSIConfiguration::DoAutoInitGraf()
+DoAutoSpin__17GUSIConfigurationCFv		# GUSIConfiguration::DoAutoSpin() const
+SetDefaultFType__17GUSIConfigurationCFRC12GUSIFileSpec		# GUSIConfiguration::SetDefaultFType(const GUSIFileSpec&) const
+ConfigureSuffices__17GUSIConfigurationFsPQ217GUSIConfiguration10FileSuffix		# GUSIConfiguration::ConfigureSuffices(short,GUSIConfiguration::FileSuffix*)
+__ct__17GUSIConfigurationFs		# GUSIConfiguration::GUSIConfiguration(short)
+__vt__22GUSIThreadManagerProxy		# GUSIThreadManagerProxy::__vt
+__vt__18GUSIContextFactory		# GUSIContextFactory::__vt
+__vt__11GUSIContext		# GUSIContext::__vt
+sError__11GUSIContext		# GUSIContext::sError
+sHasThreading__11GUSIContext		# GUSIContext::sHasThreading
+sCurrentContext__11GUSIContext		# GUSIContext::sCurrentContext
+sContexts__11GUSIContext		# GUSIContext::sContexts
+sInstance__11GUSIProcess		# GUSIProcess::sInstance
+__dt__Q211GUSIContext5QueueFv		# GUSIContext::Queue::~Queue()
+MakeInstance__22GUSIThreadManagerProxyFv		# GUSIThreadManagerProxy::MakeInstance()
+__dt__22GUSIThreadManagerProxyFv		# GUSIThreadManagerProxy::~GUSIThreadManagerProxy()
+__dt__Q23std76auto_ptr<22GUSIThreadManagerProxy,Q23std33_Single<22GUSIThreadManagerProxy>>Fv		# std::auto_ptr<GUSIThreadManagerProxy, std::_Single<GUSIThreadManagerProxy>>::~auto_ptr()
+Instance__22GUSIThreadManagerProxyFv		# GUSIThreadManagerProxy::Instance()
+SetThreadTerminator__22GUSIThreadManagerProxyFUlPFUlPv_vPv		# GUSIThreadManagerProxy::SetThreadTerminator(unsigned long,void (*)(unsigned long, void*),void*)
+SetThreadSwitcher__22GUSIThreadManagerProxyFUlPFUlPv_vPvUc		# GUSIThreadManagerProxy::SetThreadSwitcher(unsigned long,void (*)(unsigned long, void*),void*,unsigned char)
+NewThread__22GUSIThreadManagerProxyFUlPFPv_PvPvlUlPPvPUl		# GUSIThreadManagerProxy::NewThread(unsigned long,void* (*)(void*),void*,long,unsigned long,void**,unsigned long*)
+GUSIControl__FP7IOParam		# GUSIControl(IOParam*)
+GUSIFinishIO__FP7IOParam		# GUSIFinishIO(IOParam*)
+GUSIStartIO__FP7IOParam		# GUSIStartIO(IOParam*)
+Blocked__11GUSIContextFv		# GUSIContext::Blocked()
+Pending__11GUSIContextFv		# GUSIContext::Pending()
+Raise__11GUSIContextFb		# GUSIContext::Raise(bool)
+Yield__11GUSIProcessF13GUSIYieldMode		# GUSIProcess::Yield(GUSIYieldMode)
+SigSuspend__11GUSIContextFv		# GUSIContext::SigSuspend()
+SigWait__11GUSIContextFUi		# GUSIContext::SigWait(unsigned int)
+Yield__11GUSIContextF13GUSIYieldMode		# GUSIContext::Yield(GUSIYieldMode)
+Done__11GUSIContextFb		# GUSIContext::Done(bool)
+Terminate__11GUSIContextFv		# GUSIContext::Terminate()
+SwitchOut__11GUSIContextFv		# GUSIContext::SwitchOut()
+SwitchIn__11GUSIContextFv		# GUSIContext::SwitchIn()
+SetTerminator__11GUSIContextFPFUlPv_vPv		# GUSIContext::SetTerminator(void (*)(unsigned long, void*),void*)
+GUSISetThreadTerminator
+SetSwitchOut__11GUSIContextFPFUlPv_vPv		# GUSIContext::SetSwitchOut(void (*)(unsigned long, void*),void*)
+SetSwitchIn__11GUSIContextFPFUlPv_vPv		# GUSIContext::SetSwitchIn(void (*)(unsigned long, void*),void*)
+GUSISetThreadSwitcher
+CreateContext__18GUSIContextFactoryFUl		# GUSIContextFactory::CreateContext(unsigned long)
+CreateContext__18GUSIContextFactoryFPFPv_PvPvlUlPPvPUl		# GUSIContextFactory::CreateContext(void* (*)(void*),void*,long,unsigned long,void**,unsigned long*)
+__dt__18GUSIContextFactoryFv		# GUSIContextFactory::~GUSIContextFactory()
+__ct__18GUSIContextFactoryFv		# GUSIContextFactory::GUSIContextFactory()
+__dt__Q23std68auto_ptr<18GUSIContextFactory,Q23std29_Single<18GUSIContextFactory>>Fv		# std::auto_ptr<GUSIContextFactory, std::_Single<GUSIContextFactory>>::~auto_ptr()
+SetInstance__18GUSIContextFactoryFP18GUSIContextFactory		# GUSIContextFactory::SetInstance(GUSIContextFactory*)
+Instance__18GUSIContextFactoryFv		# GUSIContextFactory::Instance()
+GUSINewThread
+Wakeup__11GUSIProcessFv		# GUSIProcess::Wakeup()
+Wakeup__11GUSIContextFv		# GUSIContext::Wakeup()
+Liquidate__11GUSIContextFv		# GUSIContext::Liquidate()
+LiquidateAll__Q211GUSIContext5QueueFv		# GUSIContext::Queue::LiquidateAll()
+__dt__11GUSIContextFv		# GUSIContext::~GUSIContext()
+Lookup__11GUSIContextFUl		# GUSIContext::Lookup(unsigned long)
+__ct__11GUSIContextFPFPv_PvPvlUlPPvPUl		# GUSIContext::GUSIContext(void* (*)(void*),void*,long,unsigned long,void**,unsigned long*)
+__ct__11GUSIContextFUl		# GUSIContext::GUSIContext(unsigned long)
+FinishSetup__11GUSIContextFv		# GUSIContext::FinishSetup()
+GUSIThreadTerminator
+StartSetup__11GUSIContextFv		# GUSIContext::StartSetup()
+Setup__11GUSIContextFb		# GUSIContext::Setup(bool)
+GUSIThreadSwitchOut
+GUSIThreadSwitchIn
+__ct__11GUSIProcessFb		# GUSIProcess::GUSIProcess(bool)
+sBlocks__Q216GUSIContextQueue7element		# GUSIContextQueue::element::sBlocks
+Wakeup__16GUSIContextQueueFv		# GUSIContextQueue::Wakeup()
+push_back__16GUSIContextQueueFP11GUSIContext		# GUSIContextQueue::push_back(GUSIContext*)
+remove__16GUSIContextQueueFP11GUSIContext		# GUSIContextQueue::remove(GUSIContext*)
+__dt__16GUSIContextQueueFv		# GUSIContextQueue::~GUSIContextQueue()
+__dl__Q216GUSIContextQueue7elementFPvUl		# GUSIContextQueue::element::operator delete(void*,unsigned long)
+__nw__Q216GUSIContextQueue7elementFUl		# GUSIContextQueue::element::operator new(unsigned long)
+__vt__14GUSIDConSocket		# GUSIDConSocket::__vt
+__vt__14GUSIDConDevice		# GUSIDConDevice::__vt
+sInstance__14GUSIDConDevice		# GUSIDConDevice::sInstance
+__dt__14GUSIDConDeviceFv		# GUSIDConDevice::~GUSIDConDevice()
+isatty__14GUSIDConSocketFv		# GUSIDConSocket::isatty()
+Supports__14GUSIDConSocketFQ210GUSISocket12ConfigOption		# GUSIDConSocket::Supports(GUSISocket::ConfigOption)
+write__14GUSIDConSocketFRC12GUSIGatherer		# GUSIDConSocket::write(const GUSIGatherer&)
+read__14GUSIDConSocketFRC13GUSIScatterer		# GUSIDConSocket::read(const GUSIScatterer&)
+__dt__14GUSIDConSocketFv		# GUSIDConSocket::~GUSIDConSocket()
+__ct__14GUSIDConSocketFPCc		# GUSIDConSocket::GUSIDConSocket(const char*)
+open__14GUSIDConDeviceFR13GUSIFileTokeni		# GUSIDConDevice::open(GUSIFileToken&,int)
+Want__14GUSIDConDeviceFR13GUSIFileToken		# GUSIDConDevice::Want(GUSIFileToken&)
+GUSIwithDConSockets
+LookupSocket__19GUSIDescriptorTableFi		# GUSIDescriptorTable::LookupSocket(int)
+__vc__19GUSIDescriptorTableFi		# GUSIDescriptorTable::operator [](int)
+RemoveSocket__19GUSIDescriptorTableFi		# GUSIDescriptorTable::RemoveSocket(int)
+InstallSocket__19GUSIDescriptorTableFP10GUSISocketi		# GUSIDescriptorTable::InstallSocket(GUSISocket*,int)
+__dt__19GUSIDescriptorTableFv		# GUSIDescriptorTable::~GUSIDescriptorTable()
+CloseAllDescriptors__19GUSIDescriptorTableFv		# GUSIDescriptorTable::CloseAllDescriptors()
+__dt__Q23std70auto_ptr<19GUSIDescriptorTable,Q23std30_Single<19GUSIDescriptorTable>>Fv		# std::auto_ptr<GUSIDescriptorTable, std::_Single<GUSIDescriptorTable>>::~auto_ptr()
+Instance__19GUSIDescriptorTableFv		# GUSIDescriptorTable::Instance()
+GUSIDefaultSetupConsole
+GUSISetupConsole
+__ct__19GUSIDescriptorTableFv		# GUSIDescriptorTable::GUSIDescriptorTable()
+__vt__10GUSIDevice		# GUSIDevice::__vt
+sInstance__18GUSIDeviceRegistry		# GUSIDeviceRegistry::sInstance
+faccess__18GUSIDeviceRegistryFPCcPUiPv		# GUSIDeviceRegistry::faccess(const char*,unsigned int*,void*)
+fsetfileinfo__18GUSIDeviceRegistryFPCcUlUl		# GUSIDeviceRegistry::fsetfileinfo(const char*,unsigned long,unsigned long)
+fgetfileinfo__18GUSIDeviceRegistryFPCcPUlPUl		# GUSIDeviceRegistry::fgetfileinfo(const char*,unsigned long*,unsigned long*)
+readlink__18GUSIDeviceRegistryFPCcPci		# GUSIDeviceRegistry::readlink(const char*,char*,int)
+symlink__18GUSIDeviceRegistryFPCcPCc		# GUSIDeviceRegistry::symlink(const char*,const char*)
+opendir__18GUSIDeviceRegistryFPCc		# GUSIDeviceRegistry::opendir(const char*)
+rmdir__18GUSIDeviceRegistryFPCc		# GUSIDeviceRegistry::rmdir(const char*)
+mkdir__18GUSIDeviceRegistryFPCc		# GUSIDeviceRegistry::mkdir(const char*)
+access__18GUSIDeviceRegistryFPCci		# GUSIDeviceRegistry::access(const char*,int)
+utime__18GUSIDeviceRegistryFPCcPC7utimbuf		# GUSIDeviceRegistry::utime(const char*,const utimbuf*)
+chmod__18GUSIDeviceRegistryFPCcUs		# GUSIDeviceRegistry::chmod(const char*,unsigned short)
+stat__18GUSIDeviceRegistryFPCcP4statb		# GUSIDeviceRegistry::stat(const char*,stat*,bool)
+rename__18GUSIDeviceRegistryFPCcPCc		# GUSIDeviceRegistry::rename(const char*,const char*)
+remove__18GUSIDeviceRegistryFPCc		# GUSIDeviceRegistry::remove(const char*)
+open__18GUSIDeviceRegistryFPCci		# GUSIDeviceRegistry::open(const char*,int)
+Lookup__18GUSIDeviceRegistryFR13GUSIFileToken		# GUSIDeviceRegistry::Lookup(GUSIFileToken&)
+RemoveDevice__18GUSIDeviceRegistryFP10GUSIDevice		# GUSIDeviceRegistry::RemoveDevice(GUSIDevice*)
+AddDevice__18GUSIDeviceRegistryFP10GUSIDevice		# GUSIDeviceRegistry::AddDevice(GUSIDevice*)
+__ct__18GUSIDeviceRegistryFv		# GUSIDeviceRegistry::GUSIDeviceRegistry()
+faccess__10GUSIDeviceFR13GUSIFileTokenPUiPv		# GUSIDevice::faccess(GUSIFileToken&,unsigned int*,void*)
+fsetfileinfo__10GUSIDeviceFR13GUSIFileTokenUlUl		# GUSIDevice::fsetfileinfo(GUSIFileToken&,unsigned long,unsigned long)
+fgetfileinfo__10GUSIDeviceFR13GUSIFileTokenPUlPUl		# GUSIDevice::fgetfileinfo(GUSIFileToken&,unsigned long*,unsigned long*)
+readlink__10GUSIDeviceFR13GUSIFileTokenPci		# GUSIDevice::readlink(GUSIFileToken&,char*,int)
+symlink__10GUSIDeviceFR13GUSIFileTokenPCc		# GUSIDevice::symlink(GUSIFileToken&,const char*)
+opendir__10GUSIDeviceFR13GUSIFileToken		# GUSIDevice::opendir(GUSIFileToken&)
+rmdir__10GUSIDeviceFR13GUSIFileToken		# GUSIDevice::rmdir(GUSIFileToken&)
+mkdir__10GUSIDeviceFR13GUSIFileToken		# GUSIDevice::mkdir(GUSIFileToken&)
+access__10GUSIDeviceFR13GUSIFileTokeni		# GUSIDevice::access(GUSIFileToken&,int)
+utime__10GUSIDeviceFR13GUSIFileTokenPC7utimbuf		# GUSIDevice::utime(GUSIFileToken&,const utimbuf*)
+chmod__10GUSIDeviceFR13GUSIFileTokenUs		# GUSIDevice::chmod(GUSIFileToken&,unsigned short)
+stat__10GUSIDeviceFR13GUSIFileTokenP4stat		# GUSIDevice::stat(GUSIFileToken&,stat*)
+rename__10GUSIDeviceFR13GUSIFileTokenPCc		# GUSIDevice::rename(GUSIFileToken&,const char*)
+remove__10GUSIDeviceFR13GUSIFileToken		# GUSIDevice::remove(GUSIFileToken&)
+open__10GUSIDeviceFR13GUSIFileTokeni		# GUSIDevice::open(GUSIFileToken&,int)
+Want__10GUSIDeviceFR13GUSIFileToken		# GUSIDevice::Want(GUSIFileToken&)
+__ct__13GUSIFileTokenFsQ213GUSIFileToken7Request		# GUSIFileToken::GUSIFileToken(short,GUSIFileToken::Request)
+__ct__13GUSIFileTokenFRC12GUSIFileSpecQ213GUSIFileToken7Request		# GUSIFileToken::GUSIFileToken(const GUSIFileSpec&,GUSIFileToken::Request)
+StrStdStream__13GUSIFileTokenFPCc		# GUSIFileToken::StrStdStream(const char*)
+__ct__13GUSIFileTokenFPCcQ213GUSIFileToken7Requestb		# GUSIFileToken::GUSIFileToken(const char*,GUSIFileToken::Request,bool)
+StrFragEqual__13GUSIFileTokenFPCcPCc		# GUSIFileToken::StrFragEqual(const char*,const char*)
+GUSI_diag_log
+vdfprintf
+dfprintf
+GUSI_break
+GUSI_log
+GUSI_pos
+__vt__22GUSISocketTypeRegistry		# GUSISocketTypeRegistry::__vt
+__vt__24GUSISocketDomainRegistry		# GUSISocketDomainRegistry::__vt
+__vt__17GUSISocketFactory		# GUSISocketFactory::__vt
+sInstance__24GUSISocketDomainRegistry		# GUSISocketDomainRegistry::sInstance
+__dt__24GUSISocketDomainRegistryFv		# GUSISocketDomainRegistry::~GUSISocketDomainRegistry()
+__dt__22GUSISocketTypeRegistryFv		# GUSISocketTypeRegistry::~GUSISocketTypeRegistry()
+RemoveFactory__22GUSISocketTypeRegistryFii		# GUSISocketTypeRegistry::RemoveFactory(int,int)
+AddFactory__22GUSISocketTypeRegistryFiiP17GUSISocketFactory		# GUSISocketTypeRegistry::AddFactory(int,int,GUSISocketFactory*)
+socketpair__22GUSISocketTypeRegistryFiiiPP10GUSISocket		# GUSISocketTypeRegistry::socketpair(int,int,int,GUSISocket**)
+socket__22GUSISocketTypeRegistryFiii		# GUSISocketTypeRegistry::socket(int,int,int)
+Find__22GUSISocketTypeRegistryFiibRPQ222GUSISocketTypeRegistry5Entry		# GUSISocketTypeRegistry::Find(int,int,bool,GUSISocketTypeRegistry::Entry*&)
+Initialize__22GUSISocketTypeRegistryFv		# GUSISocketTypeRegistry::Initialize()
+__ct__Q222GUSISocketTypeRegistry5EntryFv		# GUSISocketTypeRegistry::Entry::Entry()
+AddFactory__24GUSISocketDomainRegistryFiP17GUSISocketFactory		# GUSISocketDomainRegistry::AddFactory(int,GUSISocketFactory*)
+socketpair__24GUSISocketDomainRegistryFiiiPP10GUSISocket		# GUSISocketDomainRegistry::socketpair(int,int,int,GUSISocket**)
+socket__24GUSISocketDomainRegistryFiii		# GUSISocketDomainRegistry::socket(int,int,int)
+__dt__17GUSISocketFactoryFv		# GUSISocketFactory::~GUSISocketFactory()
+__ct__24GUSISocketDomainRegistryFv		# GUSISocketDomainRegistry::GUSISocketDomainRegistry()
+socketpair__17GUSISocketFactoryFiiiPP10GUSISocket		# GUSISocketFactory::socketpair(int,int,int,GUSISocket**)
+sID__16GUSITempFileSpec		# GUSITempFileSpec::sID
+sScratchSize__12GUSIFileSpec		# GUSIFileSpec::sScratchSize
+sScratch__12GUSIFileSpec		# GUSIFileSpec::sScratch
+GUSIFSp2Encoding
+GUSIFSp2DirRelPath
+GUSIFSp2RelPath
+GUSIFSp2FullPath
+GUSIFSpResolve
+GUSIFSpIndex
+GUSIFSpDown
+GUSIFSpUp
+GUSISpecial2FSp
+GUSIPath2FSp
+GUSIWD2FSp
+GUSIFRefNum2FSp
+TempName__16GUSITempFileSpecFPCUc		# GUSITempFileSpec::TempName(const unsigned char*)
+TempName__16GUSITempFileSpecFv		# GUSITempFileSpec::TempName()
+__ct__16GUSITempFileSpecFslPCUc		# GUSITempFileSpec::GUSITempFileSpec(short,long,const unsigned char*)
+__ct__16GUSITempFileSpecFsPCUc		# GUSITempFileSpec::GUSITempFileSpec(short,const unsigned char*)
+__ct__16GUSITempFileSpecFPCUc		# GUSITempFileSpec::GUSITempFileSpec(const unsigned char*)
+__ct__16GUSITempFileSpecFsl		# GUSITempFileSpec::GUSITempFileSpec(short,long)
+__ct__16GUSITempFileSpecFs		# GUSITempFileSpec::GUSITempFileSpec(short)
+IsParentOf__12GUSIFileSpecCFRC12GUSIFileSpec		# GUSIFileSpec::IsParentOf(const GUSIFileSpec&) const
+__eq__FRC12GUSIFileSpecRC12GUSIFileSpec		# operator ==(const GUSIFileSpec&,const GUSIFileSpec&)
+AliasPath__12GUSIFileSpecCFv		# GUSIFileSpec::AliasPath() const
+Resolve__12GUSIFileSpecFb		# GUSIFileSpec::Resolve(bool)
+EncodedPath__12GUSIFileSpecCFv		# GUSIFileSpec::EncodedPath() const
+RelativePath__12GUSIFileSpecCFv		# GUSIFileSpec::RelativePath() const
+RelativePath__12GUSIFileSpecCFRC6FSSpec		# GUSIFileSpec::RelativePath(const FSSpec&) const
+PrependPathComponent__12GUSIFileSpecCFRPcPCUcb		# GUSIFileSpec::PrependPathComponent(char*&,const unsigned char*,bool) const
+FullPath__12GUSIFileSpecCFv		# GUSIFileSpec::FullPath() const
+CatInfo__12GUSIFileSpecFs		# GUSIFileSpec::CatInfo(short)
+TouchFolder__12GUSIFileSpecFv		# GUSIFileSpec::TouchFolder()
+SetName__12GUSIFileSpecFPCc		# GUSIFileSpec::SetName(const char*)
+SetName__12GUSIFileSpecFPCUc		# GUSIFileSpec::SetName(const unsigned char*)
+SetParID__12GUSIFileSpecFl		# GUSIFileSpec::SetParID(long)
+SetVRef__12GUSIFileSpecFs		# GUSIFileSpec::SetVRef(short)
+__vc__12GUSIFileSpecFs		# GUSIFileSpec::operator [](short)
+__pl__FRC6FSSpecPCc		# operator +(const FSSpec&,const char*)
+__pl__FRC6FSSpecPCUc		# operator +(const FSSpec&,const unsigned char*)
+AddPathComponent__12GUSIFileSpecFPCcib		# GUSIFileSpec::AddPathComponent(const char*,int,bool)
+__pp__12GUSIFileSpecFv		# GUSIFileSpec::operator ++()
+__mm__12GUSIFileSpecFv		# GUSIFileSpec::operator --()
+GetVolume__12GUSIFileSpecFs		# GUSIFileSpec::GetVolume(short)
+__ct__12GUSIFileSpecFPCcb		# GUSIFileSpec::GUSIFileSpec(const char*,bool)
+__ct__12GUSIFileSpecFs		# GUSIFileSpec::GUSIFileSpec(short)
+__ct__12GUSIFileSpecFUls		# GUSIFileSpec::GUSIFileSpec(unsigned long,short)
+__ct__12GUSIFileSpecFsPCUcb		# GUSIFileSpec::GUSIFileSpec(short,const unsigned char*,bool)
+__ct__12GUSIFileSpecFslPCUcb		# GUSIFileSpec::GUSIFileSpec(short,long,const unsigned char*,bool)
+__ct__12GUSIFileSpecFRC6FSSpecb		# GUSIFileSpec::GUSIFileSpec(const FSSpec&,bool)
+__ct__12GUSIFileSpecFRC12GUSIFileSpec		# GUSIFileSpec::GUSIFileSpec(const GUSIFileSpec&)
+CScratch__12GUSIFileSpecFb		# GUSIFileSpec::CScratch(bool)
+ReadHex__FPCciPc		# ReadHex(const char*,int,char*)
+GUSIFSMoveRename
+GUSIFSCatMove
+GUSIFSCatMove__FPC6FSSpecl		# GUSIFSCatMove(const FSSpec*,long)
+GUSIFSRename
+GUSIFSRstFLock
+GUSIFSSetFLock
+GUSIFSDirCreate
+GUSIFSDelete
+GUSIFSCreate
+GUSIFSCreate__FPC6FSSpec		# GUSIFSCreate(const FSSpec*)
+GUSIFSGetVolParms
+GUSIFSHGetVolParms__FP33GUSIIOPBWrapper<14HParamBlockRec>		# GUSIFSHGetVolParms(GUSIIOPBWrapper<HParamBlockRec>*)
+GUSIFSOpenRF
+GUSIFSOpenDF
+GUSIFSSetFInfo
+GUSIFSGetFInfo
+GUSIFSHSetFInfo__FP33GUSIIOPBWrapper<14HParamBlockRec>		# GUSIFSHSetFInfo(GUSIIOPBWrapper<HParamBlockRec>*)
+GUSIFSHGetFInfo__FP33GUSIIOPBWrapper<14HParamBlockRec>		# GUSIFSHGetFInfo(GUSIIOPBWrapper<HParamBlockRec>*)
+GUSIFSOpenDriver
+GUSIFSOpen__FP32GUSIIOPBWrapper<13ParamBlockRec>		# GUSIFSOpen(GUSIIOPBWrapper<ParamBlockRec>*)
+GUSIFSHGetVInfo__FP33GUSIIOPBWrapper<14HParamBlockRec>		# GUSIFSHGetVInfo(GUSIIOPBWrapper<HParamBlockRec>*)
+GUSIFSGetVInfo__FP32GUSIIOPBWrapper<13ParamBlockRec>		# GUSIFSGetVInfo(GUSIIOPBWrapper<ParamBlockRec>*)
+GUSIFSGetFCBInfo__FP26GUSIIOPBWrapper<8FCBPBRec>		# GUSIFSGetFCBInfo(GUSIIOPBWrapper<FCBPBRec>*)
+GUSIFSSetCatInfo__FP30GUSIIOPBWrapper<11GUSICatInfo>		# GUSIFSSetCatInfo(GUSIIOPBWrapper<GUSICatInfo>*)
+GUSIFSGetCatInfo__FP30GUSIIOPBWrapper<11GUSICatInfo>		# GUSIFSGetCatInfo(GUSIIOPBWrapper<GUSICatInfo>*)
+gGUSIInetFactories
+GUSIwithInetSockets
+__vt__16GUSIMacDirectory		# GUSIMacDirectory::__vt
+__vt__13GUSIDirectory		# GUSIDirectory::__vt
+__vt__17GUSIMacFileSocket		# GUSIMacFileSocket::__vt
+__vt__17GUSIMacFileDevice		# GUSIMacFileDevice::__vt
+sWakeupProc__17GUSIMacFileSocket		# GUSIMacFileSocket::sWakeupProc
+sWriteProc__17GUSIMacFileSocket		# GUSIMacFileSocket::sWriteProc
+sReadProc__17GUSIMacFileSocket		# GUSIMacFileSocket::sReadProc
+__dt__16GUSIMacDirectoryFv		# GUSIMacDirectory::~GUSIMacDirectory()
+rewinddir__16GUSIMacDirectoryFv		# GUSIMacDirectory::rewinddir()
+seekdir__16GUSIMacDirectoryFl		# GUSIMacDirectory::seekdir(long)
+telldir__16GUSIMacDirectoryFv		# GUSIMacDirectory::telldir()
+readdir__16GUSIMacDirectoryFv		# GUSIMacDirectory::readdir()
+__dt__13GUSIDirectoryFv		# GUSIDirectory::~GUSIDirectory()
+__ct__16GUSIMacDirectoryFRC6FSSpec		# GUSIMacDirectory::GUSIMacDirectory(const FSSpec&)
+Supports__17GUSIMacFileSocketFQ210GUSISocket12ConfigOption		# GUSIMacFileSocket::Supports(GUSISocket::ConfigOption)
+fstat__17GUSIMacFileSocketFP4stat		# GUSIMacFileSocket::fstat(stat*)
+ftruncate__17GUSIMacFileSocketFl		# GUSIMacFileSocket::ftruncate(long)
+lseek__17GUSIMacFileSocketFli		# GUSIMacFileSocket::lseek(long,int)
+setsockopt__17GUSIMacFileSocketFiiPvUi		# GUSIMacFileSocket::setsockopt(int,int,void*,unsigned int)
+getsockopt__17GUSIMacFileSocketFiiPvPUi		# GUSIMacFileSocket::getsockopt(int,int,void*,unsigned int*)
+ioctl__17GUSIMacFileSocketFUiPc		# GUSIMacFileSocket::ioctl(unsigned int,char*)
+fcntl__17GUSIMacFileSocketFiPc		# GUSIMacFileSocket::fcntl(int,char*)
+fsync__17GUSIMacFileSocketFv		# GUSIMacFileSocket::fsync()
+select__17GUSIMacFileSocketFPbPbPb		# GUSIMacFileSocket::select(bool*,bool*,bool*)
+write__17GUSIMacFileSocketFRC12GUSIGatherer		# GUSIMacFileSocket::write(const GUSIGatherer&)
+read__17GUSIMacFileSocketFRC13GUSIScatterer		# GUSIMacFileSocket::read(const GUSIScatterer&)
+SyncWrite__17GUSIMacFileSocketFv		# GUSIMacFileSocket::SyncWrite()
+SyncRead__17GUSIMacFileSocketFv		# GUSIMacFileSocket::SyncRead()
+__dt__17GUSIMacFileSocketFv		# GUSIMacFileSocket::~GUSIMacFileSocket()
+__dt__17GUSISMInputBufferFv		# GUSISMInputBuffer::~GUSISMInputBuffer()
+__dt__18GUSISMOutputBufferFv		# GUSISMOutputBuffer::~GUSISMOutputBuffer()
+__ct__17GUSIMacFileSocketFsbi		# GUSIMacFileSocket::GUSIMacFileSocket(short,bool,int)
+faccess__17GUSIMacFileDeviceFR13GUSIFileTokenPUiPv		# GUSIMacFileDevice::faccess(GUSIFileToken&,unsigned int*,void*)
+fsetfileinfo__17GUSIMacFileDeviceFR13GUSIFileTokenUlUl		# GUSIMacFileDevice::fsetfileinfo(GUSIFileToken&,unsigned long,unsigned long)
+fgetfileinfo__17GUSIMacFileDeviceFR13GUSIFileTokenPUlPUl		# GUSIMacFileDevice::fgetfileinfo(GUSIFileToken&,unsigned long*,unsigned long*)
+readlink__17GUSIMacFileDeviceFR13GUSIFileTokenPci		# GUSIMacFileDevice::readlink(GUSIFileToken&,char*,int)
+symlink__17GUSIMacFileDeviceFR13GUSIFileTokenPCc		# GUSIMacFileDevice::symlink(GUSIFileToken&,const char*)
+opendir__17GUSIMacFileDeviceFR13GUSIFileToken		# GUSIMacFileDevice::opendir(GUSIFileToken&)
+rmdir__17GUSIMacFileDeviceFR13GUSIFileToken		# GUSIMacFileDevice::rmdir(GUSIFileToken&)
+mkdir__17GUSIMacFileDeviceFR13GUSIFileToken		# GUSIMacFileDevice::mkdir(GUSIFileToken&)
+access__17GUSIMacFileDeviceFR13GUSIFileTokeni		# GUSIMacFileDevice::access(GUSIFileToken&,int)
+utime__17GUSIMacFileDeviceFR13GUSIFileTokenPC7utimbuf		# GUSIMacFileDevice::utime(GUSIFileToken&,const utimbuf*)
+chmod__17GUSIMacFileDeviceFR13GUSIFileTokenUs		# GUSIMacFileDevice::chmod(GUSIFileToken&,unsigned short)
+stat__17GUSIMacFileDeviceFR13GUSIFileTokenP4stat		# GUSIMacFileDevice::stat(GUSIFileToken&,stat*)
+rename__17GUSIMacFileDeviceFR13GUSIFileTokenPCc		# GUSIMacFileDevice::rename(GUSIFileToken&,const char*)
+CleanupTemporaries__17GUSIMacFileDeviceFb		# GUSIMacFileDevice::CleanupTemporaries(bool)
+MarkTemporary__17GUSIMacFileDeviceFRC6FSSpec		# GUSIMacFileDevice::MarkTemporary(const FSSpec&)
+remove__17GUSIMacFileDeviceFR13GUSIFileToken		# GUSIMacFileDevice::remove(GUSIFileToken&)
+open__17GUSIMacFileDeviceFsi		# GUSIMacFileDevice::open(short,int)
+open__17GUSIMacFileDeviceFR13GUSIFileTokeni		# GUSIMacFileDevice::open(GUSIFileToken&,int)
+Want__17GUSIMacFileDeviceFR13GUSIFileToken		# GUSIMacFileDevice::Want(GUSIFileToken&)
+__dt__17GUSIMacFileDeviceFv		# GUSIMacFileDevice::~GUSIMacFileDevice()
+__dt__Q23std66auto_ptr<17GUSIMacFileDevice,Q23std28_Single<17GUSIMacFileDevice>>Fv		# std::auto_ptr<GUSIMacFileDevice, std::_Single<GUSIMacFileDevice>>::~auto_ptr()
+Instance__17GUSIMacFileDeviceFv		# GUSIMacFileDevice::Instance()
+sDrvrState__16GUSIMTInetSocket		# GUSIMTInetSocket::sDrvrState
+__vt__16GUSIMTInetSocket		# GUSIMTInetSocket::__vt
+sHostAddress__16GUSIMTInetSocket		# GUSIMTInetSocket::sHostAddress
+sDrvrRefNum__16GUSIMTInetSocket		# GUSIMTInetSocket::sDrvrRefNum
+__dt__16GUSIMTInetSocketFv		# GUSIMTInetSocket::~GUSIMTInetSocket()
+GUSIwithMTInetSockets
+Supports__16GUSIMTInetSocketFQ210GUSISocket12ConfigOption		# GUSIMTInetSocket::Supports(GUSISocket::ConfigOption)
+setsockopt__16GUSIMTInetSocketFiiPvUi		# GUSIMTInetSocket::setsockopt(int,int,void*,unsigned int)
+getsockopt__16GUSIMTInetSocketFiiPvPUi		# GUSIMTInetSocket::getsockopt(int,int,void*,unsigned int*)
+ioctl__16GUSIMTInetSocketFUiPc		# GUSIMTInetSocket::ioctl(unsigned int,char*)
+fcntl__16GUSIMTInetSocketFiPc		# GUSIMTInetSocket::fcntl(int,char*)
+shutdown__16GUSIMTInetSocketFi		# GUSIMTInetSocket::shutdown(int)
+getpeername__16GUSIMTInetSocketFPvPUi		# GUSIMTInetSocket::getpeername(void*,unsigned int*)
+getsockname__16GUSIMTInetSocketFPvPUi		# GUSIMTInetSocket::getsockname(void*,unsigned int*)
+bind__16GUSIMTInetSocketFPvUi		# GUSIMTInetSocket::bind(void*,unsigned int)
+__ct__16GUSIMTInetSocketFv		# GUSIMTInetSocket::GUSIMTInetSocket()
+HostAddr__16GUSIMTInetSocketFv		# GUSIMTInetSocket::HostAddr()
+Driver__16GUSIMTInetSocketFv		# GUSIMTInetSocket::Driver()
+uDNRDone
+sResolverState__11GUSIMTNetDB		# GUSIMTNetDB::sResolverState
+__vt__11GUSIMTNetDB		# GUSIMTNetDB::__vt
+get__49GUSISpecificData<11GUSIhostent,&.GUSIKillHostEnt>FP17GUSISpecificTable		# GUSISpecificData<GUSIhostent, &.GUSIKillHostEnt>::get(GUSISpecificTable*)
+__dt__11GUSIMTNetDBFv		# GUSIMTNetDB::~GUSIMTNetDB()
+gethostid__11GUSIMTNetDBFv		# GUSIMTNetDB::gethostid()
+inet_ntoa__11GUSIMTNetDBF7in_addr		# GUSIMTNetDB::inet_ntoa(in_addr)
+gethostbyaddr__11GUSIMTNetDBFPCvUli		# GUSIMTNetDB::gethostbyaddr(const void*,unsigned long,int)
+gethostbyname__11GUSIMTNetDBFPCc		# GUSIMTNetDB::gethostbyname(const char*)
+Resolver__11GUSIMTNetDBFv		# GUSIMTNetDB::Resolver()
+__dt__12GUSISpecificFv		# GUSISpecific::~GUSISpecific()
+__dt__49GUSISpecificData<11GUSIhostent,&.GUSIKillHostEnt>Fv		# GUSISpecificData<GUSIhostent, &.GUSIKillHostEnt>::~GUSISpecificData()
+__dt__9GUSINetDBFv		# GUSINetDB::~GUSINetDB()
+Instantiate__11GUSIMTNetDBFv		# GUSIMTNetDB::Instantiate()
+__vt__16GUSIMTTcpFactory		# GUSIMTTcpFactory::__vt
+__vt__15GUSIMTTcpSocket		# GUSIMTTcpSocket::__vt
+instance__16GUSIMTTcpFactory		# GUSIMTTcpFactory::instance
+sListenProc__15GUSIMTTcpSocket		# GUSIMTTcpSocket::sListenProc
+sConnectProc__15GUSIMTTcpSocket		# GUSIMTTcpSocket::sConnectProc
+sNotifyProc__15GUSIMTTcpSocket		# GUSIMTTcpSocket::sNotifyProc
+sRecvProc__15GUSIMTTcpSocket		# GUSIMTTcpSocket::sRecvProc
+sSendProc__15GUSIMTTcpSocket		# GUSIMTTcpSocket::sSendProc
+__dt__16GUSIMTTcpFactoryFv		# GUSIMTTcpFactory::~GUSIMTTcpFactory()
+GUSIwithMTTcpSockets
+socket__16GUSIMTTcpFactoryFiii		# GUSIMTTcpFactory::socket(int,int,int)
+__dt__15GUSIMTTcpSocketFv		# GUSIMTTcpSocket::~GUSIMTTcpSocket()
+shutdown__15GUSIMTTcpSocketFi		# GUSIMTTcpSocket::shutdown(int)
+select__15GUSIMTTcpSocketFPbPbPb		# GUSIMTTcpSocket::select(bool*,bool*,bool*)
+sendto__15GUSIMTTcpSocketFRC12GUSIGathereriPCvUi		# GUSIMTTcpSocket::sendto(const GUSIGatherer&,int,const void*,unsigned int)
+recvfrom__15GUSIMTTcpSocketFRC13GUSIScattereriPvPUi		# GUSIMTTcpSocket::recvfrom(const GUSIScatterer&,int,void*,unsigned int*)
+__ct__15GUSIMTTcpSocketFRQ215GUSIMTTcpSocket8Listener		# GUSIMTTcpSocket::GUSIMTTcpSocket(GUSIMTTcpSocket::Listener&)
+accept__15GUSIMTTcpSocketFPvPUi		# GUSIMTTcpSocket::accept(void*,unsigned int*)
+listen__15GUSIMTTcpSocketFi		# GUSIMTTcpSocket::listen(int)
+connect__15GUSIMTTcpSocketFPvUi		# GUSIMTTcpSocket::connect(void*,unsigned int)
+__ct__15GUSIMTTcpSocketFv		# GUSIMTTcpSocket::GUSIMTTcpSocket()
+SetupListener__15GUSIMTTcpSocketFRQ215GUSIMTTcpSocket8Listener		# GUSIMTTcpSocket::SetupListener(GUSIMTTcpSocket::Listener&)
+CreateStream__15GUSIMTTcpSocketFPP15GUSIMTTcpSocket		# GUSIMTTcpSocket::CreateStream(GUSIMTTcpSocket**)
+GUSIMTTListen__FP15GUSIMTTcpSocket		# GUSIMTTListen(GUSIMTTcpSocket*)
+GUSIMTTListenDone__FP7TCPiopb		# GUSIMTTListenDone(TCPiopb*)
+GUSIMTTConnectDone__FP7TCPiopb		# GUSIMTTConnectDone(TCPiopb*)
+GUSIMTTNotify
+GUSIMTTRecv__FP15GUSIMTTcpSocket		# GUSIMTTRecv(GUSIMTTcpSocket*)
+GUSIMTTRecvDone__FP7TCPiopb		# GUSIMTTRecvDone(TCPiopb*)
+GUSIMTTSend__FP15GUSIMTTcpSocket		# GUSIMTTSend(GUSIMTTcpSocket*)
+GUSIMTTSendDone__FP7TCPiopb		# GUSIMTTSendDone(TCPiopb*)
+__vt__16GUSIMTUdpFactory		# GUSIMTUdpFactory::__vt
+__vt__15GUSIMTUdpSocket		# GUSIMTUdpSocket::__vt
+instance__16GUSIMTUdpFactory		# GUSIMTUdpFactory::instance
+sRecvProc__15GUSIMTUdpSocket		# GUSIMTUdpSocket::sRecvProc
+sSendProc__15GUSIMTUdpSocket		# GUSIMTUdpSocket::sSendProc
+__dt__16GUSIMTUdpFactoryFv		# GUSIMTUdpFactory::~GUSIMTUdpFactory()
+GUSIwithMTUdpSockets
+socket__16GUSIMTUdpFactoryFiii		# GUSIMTUdpFactory::socket(int,int,int)
+__dt__15GUSIMTUdpSocketFv		# GUSIMTUdpSocket::~GUSIMTUdpSocket()
+shutdown__15GUSIMTUdpSocketFi		# GUSIMTUdpSocket::shutdown(int)
+select__15GUSIMTUdpSocketFPbPbPb		# GUSIMTUdpSocket::select(bool*,bool*,bool*)
+sendto__15GUSIMTUdpSocketFRC12GUSIGathereriPCvUi		# GUSIMTUdpSocket::sendto(const GUSIGatherer&,int,const void*,unsigned int)
+recvfrom__15GUSIMTUdpSocketFRC13GUSIScattereriPvPUi		# GUSIMTUdpSocket::recvfrom(const GUSIScatterer&,int,void*,unsigned int*)
+connect__15GUSIMTUdpSocketFPvUi		# GUSIMTUdpSocket::connect(void*,unsigned int)
+__ct__15GUSIMTUdpSocketFv		# GUSIMTUdpSocket::GUSIMTUdpSocket()
+CreateStream__15GUSIMTUdpSocketFv		# GUSIMTUdpSocket::CreateStream()
+GUSIMTURecv__FP15GUSIMTUdpSocket		# GUSIMTURecv(GUSIMTUdpSocket*)
+GUSIMTURecvDone__FP7UDPiopb		# GUSIMTURecvDone(UDPiopb*)
+GUSIMTUSend__FP15GUSIMTUdpSocket		# GUSIMTUSend(GUSIMTUdpSocket*)
+GUSIMTUSendDone__FP7UDPiopb		# GUSIMTUSendDone(UDPiopb*)
+sProtocols__9GUSINetDB		# GUSINetDB::sProtocols
+sServices__20GUSIBuiltinServiceDB		# GUSIBuiltinServiceDB::sServices
+__vt__20GUSIBuiltinServiceDB		# GUSIBuiltinServiceDB::__vt
+__vt__17GUSIFileServiceDB		# GUSIFileServiceDB::__vt
+__vt__13GUSIServiceDB		# GUSIServiceDB::__vt
+__vt__9GUSINetDB		# GUSINetDB::__vt
+sInstance__13GUSIServiceDB		# GUSIServiceDB::sInstance
+sData__13GUSIServiceDB		# GUSIServiceDB::sData
+sEntry__20GUSIBuiltinServiceDB		# GUSIBuiltinServiceDB::sEntry
+sInstance__9GUSINetDB		# GUSINetDB::sInstance
+__dt__64GUSISpecificData<Q213GUSIServiceDB4Data,&.GUSIKillServiceDBData>Fv		# GUSISpecificData<GUSIServiceDB::Data, &.GUSIKillServiceDBData>::~GUSISpecificData()
+__dt__80GUSISpecificData<Q220GUSIBuiltinServiceDB5Entry,&.GUSIKillBuiltinServiceDBEntry>Fv		# GUSISpecificData<GUSIBuiltinServiceDB::Entry, &.GUSIKillBuiltinServiceDBEntry>::~GUSISpecificData()
+get__64GUSISpecificData<Q213GUSIServiceDB4Data,&.GUSIKillServiceDBData>FP17GUSISpecificTable		# GUSISpecificData<GUSIServiceDB::Data, &.GUSIKillServiceDBData>::get(GUSISpecificTable*)
+get__80GUSISpecificData<Q220GUSIBuiltinServiceDB5Entry,&.GUSIKillBuiltinServiceDBEntry>FP17GUSISpecificTable		# GUSISpecificData<GUSIBuiltinServiceDB::Entry, &.GUSIKillBuiltinServiceDBEntry>::get(GUSISpecificTable*)
+__dt__17GUSIFileServiceDBFv		# GUSIFileServiceDB::~GUSIFileServiceDB()
+__dt__20GUSIBuiltinServiceDBFv		# GUSIBuiltinServiceDB::~GUSIBuiltinServiceDB()
+__ct__11GUSIserventFv		# GUSIservent::GUSIservent()
+GUSIKillHostEnt
+Alloc__11GUSIhostentFUl		# GUSIhostent::Alloc(unsigned long)
+__ct__11GUSIhostentFv		# GUSIhostent::GUSIhostent()
+Instance__13GUSIServiceDBFv		# GUSIServiceDB::Instance()
+GUSIKillServiceDBData
+Next__20GUSIBuiltinServiceDBFv		# GUSIBuiltinServiceDB::Next()
+Reset__20GUSIBuiltinServiceDBFv		# GUSIBuiltinServiceDB::Reset()
+GUSIKillBuiltinServiceDBEntry
+Next__17GUSIFileServiceDBFv		# GUSIFileServiceDB::Next()
+Reset__17GUSIFileServiceDBFv		# GUSIFileServiceDB::Reset()
+__dt__13GUSIServiceDBFv		# GUSIServiceDB::~GUSIServiceDB()
+__ct__17GUSIFileServiceDBFPQ23std5_FILE		# GUSIFileServiceDB::GUSIFileServiceDB(std::_FILE*)
+Instance__17GUSIFileServiceDBFv		# GUSIFileServiceDB::Instance()
+getprotobynumber__9GUSINetDBFi		# GUSINetDB::getprotobynumber(int)
+getprotobyname__9GUSINetDBFPCc		# GUSINetDB::getprotobyname(const char*)
+endprotoent__9GUSINetDBFv		# GUSINetDB::endprotoent()
+setprotoent__9GUSINetDBFi		# GUSINetDB::setprotoent(int)
+getprotoent__9GUSINetDBFv		# GUSINetDB::getprotoent()
+getservbyport__9GUSINetDBFiPCc		# GUSINetDB::getservbyport(int,const char*)
+getservbyname__9GUSINetDBFPCcPCc		# GUSINetDB::getservbyname(const char*,const char*)
+endservent__9GUSINetDBFv		# GUSINetDB::endservent()
+setservent__9GUSINetDBFi		# GUSINetDB::setservent(int)
+getservent__9GUSINetDBFv		# GUSINetDB::getservent()
+gethostname__9GUSINetDBFPci		# GUSINetDB::gethostname(char*,int)
+gethostid__9GUSINetDBFv		# GUSINetDB::gethostid()
+inet_addr__9GUSINetDBFPCc		# GUSINetDB::inet_addr(const char*)
+inet_ntoa__9GUSINetDBF7in_addr		# GUSINetDB::inet_ntoa(in_addr)
+gethostbyaddr__9GUSINetDBFPCvUli		# GUSINetDB::gethostbyaddr(const void*,unsigned long,int)
+gethostbyname__9GUSINetDBFPCc		# GUSINetDB::gethostbyname(const char*)
+__ct__9GUSINetDBFv		# GUSINetDB::GUSINetDB()
+Instance__9GUSINetDBFv		# GUSINetDB::Instance()
+__vt__14GUSINullSocket		# GUSINullSocket::__vt
+__vt__14GUSINullDevice		# GUSINullDevice::__vt
+sInstance__14GUSINullDevice		# GUSINullDevice::sInstance
+__dt__14GUSINullDeviceFv		# GUSINullDevice::~GUSINullDevice()
+__dt__14GUSINullSocketFv		# GUSINullSocket::~GUSINullSocket()
+Supports__14GUSINullSocketFQ210GUSISocket12ConfigOption		# GUSINullSocket::Supports(GUSISocket::ConfigOption)
+fstat__14GUSINullSocketFP4stat		# GUSINullSocket::fstat(stat*)
+write__14GUSINullSocketFRC12GUSIGatherer		# GUSINullSocket::write(const GUSIGatherer&)
+read__14GUSINullSocketFRC13GUSIScatterer		# GUSINullSocket::read(const GUSIScatterer&)
+__ct__14GUSINullSocketFv		# GUSINullSocket::GUSINullSocket()
+stat__14GUSINullDeviceFR13GUSIFileTokenP4stat		# GUSINullDevice::stat(GUSIFileToken&,stat*)
+open__14GUSINullDeviceFv		# GUSINullDevice::open()
+open__14GUSINullDeviceFR13GUSIFileTokeni		# GUSINullDevice::open(GUSIFileToken&,int)
+Want__14GUSINullDeviceFR13GUSIFileToken		# GUSINullDevice::Want(GUSIFileToken&)
+GUSIwithNullSockets
+__vt__13GUSIScatterer		# GUSIScatterer::__vt
+__vt__20GUSIOTDatagramSocket		# GUSIOTDatagramSocket::__vt
+__vt__18GUSIOTStreamSocket		# GUSIOTStreamSocket::__vt
+__vt__12GUSIOTSocket		# GUSIOTSocket::__vt
+__vt__14GUSIOTStrategy		# GUSIOTStrategy::__vt
+__vt__21GUSIOTDatagramFactory		# GUSIOTDatagramFactory::__vt
+__vt__13GUSIOTFactory		# GUSIOTFactory::__vt
+__vt__19GUSIOTStreamFactory		# GUSIOTStreamFactory::__vt
+sOK__13GUSIOTFactory		# GUSIOTFactory::sOK
+__dt__19GUSIOTStreamFactoryFv		# GUSIOTStreamFactory::~GUSIOTStreamFactory()
+__dt__13GUSIOTFactoryFv		# GUSIOTFactory::~GUSIOTFactory()
+__dt__21GUSIOTDatagramFactoryFv		# GUSIOTDatagramFactory::~GUSIOTDatagramFactory()
+select__20GUSIOTDatagramSocketFPbPbPb		# GUSIOTDatagramSocket::select(bool*,bool*,bool*)
+sendto__20GUSIOTDatagramSocketFRC12GUSIGathereriPCvUi		# GUSIOTDatagramSocket::sendto(const GUSIGatherer&,int,const void*,unsigned int)
+__dt__13GUSIScattererFv		# GUSIScatterer::~GUSIScatterer()
+recvfrom__20GUSIOTDatagramSocketFRC13GUSIScattereriPvPUi		# GUSIOTDatagramSocket::recvfrom(const GUSIScatterer&,int,void*,unsigned int*)
+connect__20GUSIOTDatagramSocketFPvUi		# GUSIOTDatagramSocket::connect(void*,unsigned int)
+getpeername__20GUSIOTDatagramSocketFPvPUi		# GUSIOTDatagramSocket::getpeername(void*,unsigned int*)
+BindIfUnbound__20GUSIOTDatagramSocketFv		# GUSIOTDatagramSocket::BindIfUnbound()
+__dt__20GUSIOTDatagramSocketFv		# GUSIOTDatagramSocket::~GUSIOTDatagramSocket()
+Clone__20GUSIOTDatagramSocketFv		# GUSIOTDatagramSocket::Clone()
+__ct__20GUSIOTDatagramSocketFP14GUSIOTStrategy		# GUSIOTDatagramSocket::GUSIOTDatagramSocket(GUSIOTStrategy*)
+shutdown__18GUSIOTStreamSocketFi		# GUSIOTStreamSocket::shutdown(int)
+select__18GUSIOTStreamSocketFPbPbPb		# GUSIOTStreamSocket::select(bool*,bool*,bool*)
+sendto__18GUSIOTStreamSocketFRC12GUSIGathereriPCvUi		# GUSIOTStreamSocket::sendto(const GUSIGatherer&,int,const void*,unsigned int)
+__dt__Q210GUSISocket17AddContextInScopeFv		# GUSISocket::AddContextInScope::~AddContextInScope()
+recvfrom__18GUSIOTStreamSocketFRC13GUSIScattereriPvPUi		# GUSIOTStreamSocket::recvfrom(const GUSIScatterer&,int,void*,unsigned int*)
+connect__18GUSIOTStreamSocketFPvUi		# GUSIOTStreamSocket::connect(void*,unsigned int)
+accept__18GUSIOTStreamSocketFPvPUi		# GUSIOTStreamSocket::accept(void*,unsigned int*)
+getpeername__18GUSIOTStreamSocketFPvPUi		# GUSIOTStreamSocket::getpeername(void*,unsigned int*)
+listen__18GUSIOTStreamSocketFi		# GUSIOTStreamSocket::listen(int)
+MopupEvents__18GUSIOTStreamSocketFv		# GUSIOTStreamSocket::MopupEvents()
+__dt__18GUSIOTStreamSocketFv		# GUSIOTStreamSocket::~GUSIOTStreamSocket()
+close__18GUSIOTStreamSocketFv		# GUSIOTStreamSocket::close()
+Clone__18GUSIOTStreamSocketFv		# GUSIOTStreamSocket::Clone()
+__ct__18GUSIOTStreamSocketFP14GUSIOTStrategy		# GUSIOTStreamSocket::GUSIOTStreamSocket(GUSIOTStrategy*)
+Supports__12GUSIOTSocketFQ210GUSISocket12ConfigOption		# GUSIOTSocket::Supports(GUSISocket::ConfigOption)
+setsockopt__12GUSIOTSocketFiiPvUi		# GUSIOTSocket::setsockopt(int,int,void*,unsigned int)
+getsockopt__12GUSIOTSocketFiiPvPUi		# GUSIOTSocket::getsockopt(int,int,void*,unsigned int*)
+ioctl__12GUSIOTSocketFUiPc		# GUSIOTSocket::ioctl(unsigned int,char*)
+fcntl__12GUSIOTSocketFiPc		# GUSIOTSocket::fcntl(int,char*)
+shutdown__12GUSIOTSocketFi		# GUSIOTSocket::shutdown(int)
+getsockname__12GUSIOTSocketFPvPUi		# GUSIOTSocket::getsockname(void*,unsigned int*)
+Unbind__12GUSIOTSocketFv		# GUSIOTSocket::Unbind()
+BindToAddress__12GUSIOTSocketFP20GUSIOTAddr<5TBind,1>		# GUSIOTSocket::BindToAddress(GUSIOTAddr<TBind, 1>*)
+bind__12GUSIOTSocketFPvUi		# GUSIOTSocket::bind(void*,unsigned int)
+__dt__12GUSIOTSocketFv		# GUSIOTSocket::~GUSIOTSocket()
+close__12GUSIOTSocketFv		# GUSIOTSocket::close()
+__ct__12GUSIOTSocketFP14GUSIOTStrategy		# GUSIOTSocket::GUSIOTSocket(GUSIOTStrategy*)
+__dt__Q212GUSIOTSocket4LockFv		# GUSIOTSocket::Lock::~Lock()
+MopupEvents__12GUSIOTSocketFv		# GUSIOTSocket::MopupEvents()
+CopyAddress__14GUSIOTStrategyFRC7TNetbufR7TNetbuf		# GUSIOTStrategy::CopyAddress(const TNetbuf&,TNetbuf&)
+__dt__14GUSIOTStrategyFv		# GUSIOTStrategy::~GUSIOTStrategy()
+CreateConfiguration__14GUSIOTStrategyFv		# GUSIOTStrategy::CreateConfiguration()
+socket__21GUSIOTDatagramFactoryFiii		# GUSIOTDatagramFactory::socket(int,int,int)
+socket__19GUSIOTStreamFactoryFiii		# GUSIOTStreamFactory::socket(int,int,int)
+Initialize__13GUSIOTFactoryFv		# GUSIOTFactory::Initialize()
+GUSIOTNotify
+__vt__15GUSIOTUdpSocket		# GUSIOTUdpSocket::__vt
+__vt__17GUSIOTUdpStrategy		# GUSIOTUdpStrategy::__vt
+__vt__15GUSIOTTcpSocket		# GUSIOTTcpSocket::__vt
+__vt__17GUSIOTTcpStrategy		# GUSIOTTcpStrategy::__vt
+__vt__18GUSIOTInetStrategy		# GUSIOTInetStrategy::__vt
+__vt__16GUSIOTUdpFactory		# GUSIOTUdpFactory::__vt
+__vt__16GUSIOTTcpFactory		# GUSIOTTcpFactory::__vt
+sInstance__16GUSIOTUdpFactory		# GUSIOTUdpFactory::sInstance
+sInstance__16GUSIOTTcpFactory		# GUSIOTTcpFactory::sInstance
+__dt__16GUSIOTTcpFactoryFv		# GUSIOTTcpFactory::~GUSIOTTcpFactory()
+__dt__16GUSIOTUdpFactoryFv		# GUSIOTUdpFactory::~GUSIOTUdpFactory()
+__dt__17GUSIOTTcpStrategyFv		# GUSIOTTcpStrategy::~GUSIOTTcpStrategy()
+__dt__15GUSIOTTcpSocketFv		# GUSIOTTcpSocket::~GUSIOTTcpSocket()
+__dt__17GUSIOTUdpStrategyFv		# GUSIOTUdpStrategy::~GUSIOTUdpStrategy()
+__dt__15GUSIOTUdpSocketFv		# GUSIOTUdpSocket::~GUSIOTUdpSocket()
+GUSIwithOTInetSockets
+GUSIwithOTUdpSockets
+GUSIwithOTTcpSockets
+ioctl__15GUSIOTUdpSocketFUiPc		# GUSIOTUdpSocket::ioctl(unsigned int,char*)
+setsockopt__15GUSIOTUdpSocketFiiPvUi		# GUSIOTUdpSocket::setsockopt(int,int,void*,unsigned int)
+getsockopt__15GUSIOTUdpSocketFiiPvPUi		# GUSIOTUdpSocket::getsockopt(int,int,void*,unsigned int*)
+ConfigPath__17GUSIOTUdpStrategyFv		# GUSIOTUdpStrategy::ConfigPath()
+ioctl__15GUSIOTTcpSocketFUiPc		# GUSIOTTcpSocket::ioctl(unsigned int,char*)
+setsockopt__15GUSIOTTcpSocketFiiPvUi		# GUSIOTTcpSocket::setsockopt(int,int,void*,unsigned int)
+getsockopt__15GUSIOTTcpSocketFiiPvPUi		# GUSIOTTcpSocket::getsockopt(int,int,void*,unsigned int*)
+ConfigPath__17GUSIOTTcpStrategyFv		# GUSIOTTcpStrategy::ConfigPath()
+DoIoctl__18GUSIOTMInetOptionsFPiUiPc		# GUSIOTMInetOptions::DoIoctl(int*,unsigned int,char*)
+DoSetSockOpt__18GUSIOTMInetOptionsFPiP9TEndpointiiPvUi		# GUSIOTMInetOptions::DoSetSockOpt(int*,TEndpoint*,int,int,void*,unsigned int)
+DoGetSockOpt__18GUSIOTMInetOptionsFPiP9TEndpointiiPvPUi		# GUSIOTMInetOptions::DoGetSockOpt(int*,TEndpoint*,int,int,void*,unsigned int*)
+UnpackAddress__18GUSIOTInetStrategyFRC7TNetbufPvPUi		# GUSIOTInetStrategy::UnpackAddress(const TNetbuf&,void*,unsigned int*)
+PackAddress__18GUSIOTInetStrategyFPCvUiR7TNetbufb		# GUSIOTInetStrategy::PackAddress(const void*,unsigned int,TNetbuf&,bool)
+socket__16GUSIOTUdpFactoryFiii		# GUSIOTUdpFactory::socket(int,int,int)
+Strategy__16GUSIOTUdpFactoryFiii		# GUSIOTUdpFactory::Strategy(int,int,int)
+Instance__16GUSIOTUdpFactoryFv		# GUSIOTUdpFactory::Instance()
+socket__16GUSIOTTcpFactoryFiii		# GUSIOTTcpFactory::socket(int,int,int)
+__dt__18GUSIOTInetStrategyFv		# GUSIOTInetStrategy::~GUSIOTInetStrategy()
+Strategy__16GUSIOTTcpFactoryFiii		# GUSIOTTcpFactory::Strategy(int,int,int)
+Instance__16GUSIOTTcpFactoryFv		# GUSIOTTcpFactory::Instance()
+__vt__11GUSIOTNetDB		# GUSIOTNetDB::__vt
+__dt__11GUSIOTNetDBFv		# GUSIOTNetDB::~GUSIOTNetDB()
+gethostid__11GUSIOTNetDBFv		# GUSIOTNetDB::gethostid()
+inet_ntoa__11GUSIOTNetDBF7in_addr		# GUSIOTNetDB::inet_ntoa(in_addr)
+gethostbyaddr__11GUSIOTNetDBFPCvUli		# GUSIOTNetDB::gethostbyaddr(const void*,unsigned long,int)
+gethostbyname__11GUSIOTNetDBFPCc		# GUSIOTNetDB::gethostbyname(const char*)
+Resolver__11GUSIOTNetDBFv		# GUSIOTNetDB::Resolver()
+Instantiate__11GUSIOTNetDBFv		# GUSIOTNetDB::Instantiate()
+__ct__11GUSIOTNetDBFv		# GUSIOTNetDB::GUSIOTNetDB()
+GUSIOTNetDBNotify
+__vt__14GUSIPipeSocket		# GUSIPipeSocket::__vt
+__vt__15GUSIPipeFactory		# GUSIPipeFactory::__vt
+sInstance__15GUSIPipeFactory		# GUSIPipeFactory::sInstance
+__dt__15GUSIPipeFactoryFv		# GUSIPipeFactory::~GUSIPipeFactory()
+shutdown__14GUSIPipeSocketFi		# GUSIPipeSocket::shutdown(int)
+__dt__14GUSIPipeSocketFv		# GUSIPipeSocket::~GUSIPipeSocket()
+select__14GUSIPipeSocketFPbPbPb		# GUSIPipeSocket::select(bool*,bool*,bool*)
+write__14GUSIPipeSocketFRC12GUSIGatherer		# GUSIPipeSocket::write(const GUSIGatherer&)
+read__14GUSIPipeSocketFRC13GUSIScatterer		# GUSIPipeSocket::read(const GUSIScatterer&)
+Supports__14GUSIPipeSocketFQ210GUSISocket12ConfigOption		# GUSIPipeSocket::Supports(GUSISocket::ConfigOption)
+WakeupPeer__14GUSIPipeSocketFv		# GUSIPipeSocket::WakeupPeer()
+__ct__14GUSIPipeSocketFv		# GUSIPipeSocket::GUSIPipeSocket()
+__dt__14GUSIErrorSaverFv		# GUSIErrorSaver::~GUSIErrorSaver()
+socketpair__15GUSIPipeFactoryFiiiPP10GUSISocket		# GUSIPipeFactory::socketpair(int,int,int,GUSISocket**)
+socket__15GUSIPipeFactoryFiii		# GUSIPipeFactory::socket(int,int,int)
+GUSIwithLocalSockets
+__vt__12GUSIGatherer		# GUSIGatherer::__vt
+get__40GUSISpecificData<Q23std2tm,&.GUSIKillTM>FP17GUSISpecificTable		# GUSISpecificData<std::tm, &.GUSIKillTM>::get(GUSISpecificTable*)
+faccess__FPCcPUiPv		# faccess(const char*,unsigned int*,void*)
+fsetfileinfo
+fgetfileinfo
+getservent
+getservbyport
+getservbyname
+getprotoent
+getprotobynumber
+getprotobyname
+gethostbyname
+gethostbyaddr
+endservent
+endprotoent
+setservent
+setprotoent
+gethostname
+gethostid
+inet_ntoa
+inet_addr
+inet_aton
+readlink
+symlink
+usleep
+truncate
+ftruncate
+setsockopt
+getsockopt
+ioctl
+shutdown
+getpeername
+getsockname
+select
+sendmsg
+sendto
+send
+writev
+recvmsg
+recvfrom
+recv
+readv
+accept
+listen
+connect
+bind
+socketpair
+socket
+getdtablesize
+mktime__FPQ23std2tm		# mktime(std::tm*)
+gmtime__FPCUl		# gmtime(const unsigned long*)
+localtime__FPCUl		# localtime(const unsigned long*)
+__dt__40GUSISpecificData<Q23std2tm,&.GUSIKillTM>Fv		# GUSISpecificData<std::tm, &.GUSIKillTM>::~GUSISpecificData()
+GUSIKillTM
+gettimeofday
+time__FPUl		# time(unsigned long*)
+getcwd
+chdir
+closedir
+rewinddir
+seekdir
+telldir
+readdir
+opendir
+rmdir
+mkdir
+access
+utime
+chmod
+lstat
+stat
+rename
+unlink
+remove
+creat
+open
+sleep
+isatty
+lseek
+fstat
+dup2
+dup
+fcntl
+__dt__12GUSIGathererFv		# GUSIGatherer::~GUSIGatherer()
+write
+read
+close
+fsync
+pipe
+__vt__13GUSIPPCSocket		# GUSIPPCSocket::__vt
+__vt__14GUSIPPCFactory		# GUSIPPCFactory::__vt
+sDoneProc__13GUSIPPCSocket		# GUSIPPCSocket::sDoneProc
+sListenProc__13GUSIPPCSocket		# GUSIPPCSocket::sListenProc
+sRecvProc__13GUSIPPCSocket		# GUSIPPCSocket::sRecvProc
+sSendProc__13GUSIPPCSocket		# GUSIPPCSocket::sSendProc
+sInstance__14GUSIPPCFactory		# GUSIPPCFactory::sInstance
+__dt__14GUSIPPCFactoryFv		# GUSIPPCFactory::~GUSIPPCFactory()
+GUSIPPCListen__FP13GUSIPPCSocket		# GUSIPPCListen(GUSIPPCSocket*)
+GUSIPPCRecv__FP13GUSIPPCSocket		# GUSIPPCRecv(GUSIPPCSocket*)
+GUSIPPCSend__FP13GUSIPPCSocket		# GUSIPPCSend(GUSIPPCSocket*)
+__dt__13GUSIPPCSocketFv		# GUSIPPCSocket::~GUSIPPCSocket()
+shutdown__13GUSIPPCSocketFi		# GUSIPPCSocket::shutdown(int)
+select__13GUSIPPCSocketFPbPbPb		# GUSIPPCSocket::select(bool*,bool*,bool*)
+sendto__13GUSIPPCSocketFRC12GUSIGathereriPCvUi		# GUSIPPCSocket::sendto(const GUSIGatherer&,int,const void*,unsigned int)
+recvfrom__13GUSIPPCSocketFRC13GUSIScattereriPvPUi		# GUSIPPCSocket::recvfrom(const GUSIScatterer&,int,void*,unsigned int*)
+__ct__13GUSIPPCSocketFP13GUSIPPCSocketRQ213GUSIPPCSocket8Listener		# GUSIPPCSocket::GUSIPPCSocket(GUSIPPCSocket*,GUSIPPCSocket::Listener&)
+accept__13GUSIPPCSocketFPvPUi		# GUSIPPCSocket::accept(void*,unsigned int*)
+listen__13GUSIPPCSocketFi		# GUSIPPCSocket::listen(int)
+connect__13GUSIPPCSocketFPvUi		# GUSIPPCSocket::connect(void*,unsigned int)
+bind__13GUSIPPCSocketFPvUi		# GUSIPPCSocket::bind(void*,unsigned int)
+__ct__13GUSIPPCSocketFv		# GUSIPPCSocket::GUSIPPCSocket()
+GUSIPPCDone__FP16PPCParamBlockRec		# GUSIPPCDone(PPCParamBlockRec*)
+GUSIPPCListenDone__FP16PPCParamBlockRec		# GUSIPPCListenDone(PPCParamBlockRec*)
+GUSIPPCRecvDone__FP16PPCParamBlockRec		# GUSIPPCRecvDone(PPCParamBlockRec*)
+GUSIPPCSendDone__FP16PPCParamBlockRec		# GUSIPPCSendDone(PPCParamBlockRec*)
+SetupListener__13GUSIPPCSocketFRQ213GUSIPPCSocket8Listener		# GUSIPPCSocket::SetupListener(GUSIPPCSocket::Listener&)
+socket__14GUSIPPCFactoryFiii		# GUSIPPCFactory::socket(int,int,int)
+GUSIwithPPCSockets
+sDefault__15GUSIPThreadAttr		# GUSIPThreadAttr::sDefault
+sDefaultAttr__15GUSIPThreadAttr		# GUSIPThreadAttr::sDefaultAttr
+sched_yield
+pthread_once
+pthread_equal
+pthread_self
+pthread_cond_broadcast
+pthread_cond_signal
+pthread_cond_timedwait
+pthread_cond_wait
+pthread_cond_destroy
+pthread_cond_init
+pthread_condattr_destroy
+pthread_condattr_init
+pthread_mutex_unlock
+pthread_mutex_trylock
+pthread_mutex_lock
+pthread_mutex_destroy
+pthread_mutex_init
+pthread_mutexattr_destroy
+pthread_mutexattr_init
+pthread_setspecific
+pthread_getspecific
+pthread_key_delete
+pthread_key_create
+pthread_exit
+pthread_join
+pthread_detach
+pthread_create
+pthread_attr_setstacksize
+pthread_attr_getstacksize
+pthread_attr_setdetachstate
+pthread_attr_getdetachstate
+pthread_attr_destroy
+pthread_attr_init
+__vt__10GUSISocket		# GUSISocket::__vt
+fstat__10GUSISocketFP4stat		# GUSISocket::fstat(stat*)
+sendmsg__10GUSISocketFPC6msghdri		# GUSISocket::sendmsg(const msghdr*,int)
+sendto__10GUSISocketFRC12GUSIGathereriPCvUi		# GUSISocket::sendto(const GUSIGatherer&,int,const void*,unsigned int)
+write__10GUSISocketFRC12GUSIGatherer		# GUSISocket::write(const GUSIGatherer&)
+recvmsg__10GUSISocketFP6msghdri		# GUSISocket::recvmsg(msghdr*,int)
+recvfrom__10GUSISocketFRC13GUSIScattereriPvPUi		# GUSISocket::recvfrom(const GUSIScatterer&,int,void*,unsigned int*)
+read__10GUSISocketFRC13GUSIScatterer		# GUSISocket::read(const GUSIScatterer&)
+select__10GUSISocketFPbPbPb		# GUSISocket::select(bool*,bool*,bool*)
+post_select__10GUSISocketFbbb		# GUSISocket::post_select(bool,bool,bool)
+pre_select__10GUSISocketFbbb		# GUSISocket::pre_select(bool,bool,bool)
+isatty__10GUSISocketFv		# GUSISocket::isatty()
+fsync__10GUSISocketFv		# GUSISocket::fsync()
+lseek__10GUSISocketFli		# GUSISocket::lseek(long,int)
+accept__10GUSISocketFPvPUi		# GUSISocket::accept(void*,unsigned int*)
+shutdown__10GUSISocketFi		# GUSISocket::shutdown(int)
+ftruncate__10GUSISocketFl		# GUSISocket::ftruncate(long)
+ioctl__10GUSISocketFUiPc		# GUSISocket::ioctl(unsigned int,char*)
+fcntl__10GUSISocketFiPc		# GUSISocket::fcntl(int,char*)
+setsockopt__10GUSISocketFiiPvUi		# GUSISocket::setsockopt(int,int,void*,unsigned int)
+getsockopt__10GUSISocketFiiPvPUi		# GUSISocket::getsockopt(int,int,void*,unsigned int*)
+connect__10GUSISocketFPvUi		# GUSISocket::connect(void*,unsigned int)
+listen__10GUSISocketFi		# GUSISocket::listen(int)
+getpeername__10GUSISocketFPvPUi		# GUSISocket::getpeername(void*,unsigned int*)
+getsockname__10GUSISocketFPvPUi		# GUSISocket::getsockname(void*,unsigned int*)
+bind__10GUSISocketFPvUi		# GUSISocket::bind(void*,unsigned int)
+RemoveContext__10GUSISocketFP11GUSIContext		# GUSISocket::RemoveContext(GUSIContext*)
+AddContext__10GUSISocketFP11GUSIContext		# GUSISocket::AddContext(GUSIContext*)
+Supports__10GUSISocketFQ210GUSISocket12ConfigOption		# GUSISocket::Supports(GUSISocket::ConfigOption)
+__dt__10GUSISocketFv		# GUSISocket::~GUSISocket()
+close__10GUSISocketFv		# GUSISocket::close()
+__ct__10GUSISocketFv		# GUSISocket::GUSISocket()
+__ct__10GUSImsghdrFRC13GUSIScattGathPCvUi		# GUSImsghdr::GUSImsghdr(const GUSIScattGath&,const void*,unsigned int)
+sKeyAlloc__17GUSISpecificTable		# GUSISpecificTable::sKeyAlloc
+sKeys__17GUSISpecificTable		# GUSISpecificTable::sKeys
+sNextID__12GUSISpecific		# GUSISpecific::sNextID
+Destruct__17GUSISpecificTableFP12GUSISpecific		# GUSISpecificTable::Destruct(GUSISpecific*)
+Register__17GUSISpecificTableFP12GUSISpecific		# GUSISpecificTable::Register(GUSISpecific*)
+DeleteSpecific__17GUSISpecificTableFPC12GUSISpecific		# GUSISpecificTable::DeleteSpecific(const GUSISpecific*)
+SetSpecific__17GUSISpecificTableFPC12GUSISpecificPv		# GUSISpecificTable::SetSpecific(const GUSISpecific*,void*)
+__dt__17GUSISpecificTableFv		# GUSISpecificTable::~GUSISpecificTable()
+__vt__9GUSITimer		# GUSITimer::__vt
+sTimerQueue__9GUSITimer		# GUSITimer::sTimerQueue
+sTimerProc__9GUSITimer		# GUSITimer::sTimerProc
+sTimeZone__8GUSITime		# GUSITime::sTimeZone
+sTimeOffset__8GUSITime		# GUSITime::sTimeOffset
+__dt__53GUSISpecificData<Q29GUSITimer5Queue,&.GUSIKillTimers>Fv		# GUSISpecificData<GUSITimer::Queue, &.GUSIKillTimers>::~GUSISpecificData()
+get__53GUSISpecificData<Q29GUSITimer5Queue,&.GUSIKillTimers>FP17GUSISpecificTable		# GUSISpecificData<GUSITimer::Queue, &.GUSIKillTimers>::get(GUSISpecificTable*)
+__dt__9GUSITimerFv		# GUSITimer::~GUSITimer()
+Kill__9GUSITimerFv		# GUSITimer::Kill()
+Sleep__9GUSITimerFlb		# GUSITimer::Sleep(long,bool)
+__ct__9GUSITimerFbP11GUSIContext		# GUSITimer::GUSITimer(bool,GUSIContext*)
+GUSIKillTimers
+__dt__Q29GUSITimer10TimerQueueFv		# GUSITimer::TimerQueue::~TimerQueue()
+Wakeup__9GUSITimerFv		# GUSITimer::Wakeup()
+__dt__Q211GUSIProcess7A5SaverFv		# GUSIProcess::A5Saver::~A5Saver()
+LocalTime__8GUSITimeFv		# GUSITime::LocalTime()
+GMTime__8GUSITimeFv		# GUSITime::GMTime()
+Zone__8GUSITimeFv		# GUSITime::Zone()
+Now__8GUSITimeFv		# GUSITime::Now()
+__ct__8GUSITimeFRCQ23std2tm		# GUSITime::GUSITime(const std::tm&)
+__opQ23std2tm__8GUSITimeFv		# GUSITime::operator std::tm()
+__op8timespec__8GUSITimeFv		# GUSITime::operator timespec()
+__op7timeval__8GUSITimeFv		# GUSITime::operator timeval()
+Deconstruct__8GUSITimeFRx		# GUSITime::Deconstruct(long long&)
+Get64__8GUSITimeFQ28GUSITime6Format		# GUSITime::Get64(GUSITime::Format)
+__ct__8GUSITimeFRC8timespec		# GUSITime::GUSITime(const timespec&)
+__ct__8GUSITimeFRC7timeval		# GUSITime::GUSITime(const timeval&)
+Construct__8GUSITimeFxQ28GUSITime6Format		# GUSITime::Construct(long long,GUSITime::Format)
+__vt__9GUSIAlarm		# GUSIAlarm::__vt
+__vt__14GUSISigFactory		# GUSISigFactory::__vt
+__vt__14GUSISigProcess		# GUSISigProcess::__vt
+__vt__14GUSISigContext		# GUSISigContext::__vt
+ualarm
+__dt__9GUSIAlarmFv		# GUSIAlarm::~GUSIAlarm()
+__dt__Q23std48auto_ptr<9GUSIAlarm,Q23std19_Single<9GUSIAlarm>>Fv		# std::auto_ptr<GUSIAlarm, std::_Single<GUSIAlarm>>::~auto_ptr()
+alarm
+Restart__9GUSIAlarmFl		# GUSIAlarm::Restart(long)
+Wakeup__9GUSIAlarmFv		# GUSIAlarm::Wakeup()
+_exit
+abort__Fv		# abort()
+sigwait
+pause
+sigsuspend
+sigprocmask
+pthread_sigmask
+sigpending
+signal
+sigaction
+pthread_kill
+raise
+sigismember
+sigfillset
+sigemptyset
+sigdelset
+sigaddset
+CreateSigContext__14GUSISigFactoryFPC14GUSISigContext		# GUSISigFactory::CreateSigContext(const GUSISigContext*)
+CreateSigProcess__14GUSISigFactoryFv		# GUSISigFactory::CreateSigProcess()
+__dt__14GUSISigFactoryFv		# GUSISigFactory::~GUSISigFactory()
+__dt__Q23std60auto_ptr<14GUSISigFactory,Q23std25_Single<14GUSISigFactory>>Fv		# std::auto_ptr<GUSISigFactory, std::_Single<GUSISigFactory>>::~auto_ptr()
+SetInstance__14GUSISigFactoryFP14GUSISigFactory		# GUSISigFactory::SetInstance(GUSISigFactory*)
+Instance__14GUSISigFactoryFv		# GUSISigFactory::Instance()
+DefaultAction__14GUSISigProcessFiRC9sigaction		# GUSISigProcess::DefaultAction(int,const sigaction&)
+Raise__14GUSISigProcessFiP14GUSISigContext		# GUSISigProcess::Raise(int,GUSISigContext*)
+Post__14GUSISigProcessFi		# GUSISigProcess::Post(int)
+ClearPending__14GUSISigProcessFUi		# GUSISigProcess::ClearPending(unsigned int)
+Pending__14GUSISigProcessCFv		# GUSISigProcess::Pending() const
+SetAction__14GUSISigProcessFiRC9sigaction		# GUSISigProcess::SetAction(int,const sigaction&)
+CantIgnore__14GUSISigProcessFi		# GUSISigProcess::CantIgnore(int)
+CantCatch__14GUSISigProcessFi		# GUSISigProcess::CantCatch(int)
+GetAction__14GUSISigProcessFi		# GUSISigProcess::GetAction(int)
+__dt__14GUSISigProcessFv		# GUSISigProcess::~GUSISigProcess()
+__ct__14GUSISigProcessFv		# GUSISigProcess::GUSISigProcess()
+Raise__14GUSISigContextFP14GUSISigProcessb		# GUSISigContext::Raise(GUSISigProcess*,bool)
+Ready__14GUSISigContextFP14GUSISigProcess		# GUSISigContext::Ready(GUSISigProcess*)
+Pending__14GUSISigContextCFP14GUSISigProcess		# GUSISigContext::Pending(GUSISigProcess*) const
+Post__14GUSISigContextFi		# GUSISigContext::Post(int)
+ClearPending__14GUSISigContextFUi		# GUSISigContext::ClearPending(unsigned int)
+Pending__14GUSISigContextCFv		# GUSISigContext::Pending() const
+SetBlocked__14GUSISigContextFUi		# GUSISigContext::SetBlocked(unsigned int)
+GetBlocked__14GUSISigContextCFv		# GUSISigContext::GetBlocked() const
+CantBlock__14GUSISigContextFv		# GUSISigContext::CantBlock()
+__dt__14GUSISigContextFv		# GUSISigContext::~GUSISigContext()
+__ct__14GUSISigContextFPC14GUSISigContext		# GUSISigContext::GUSISigContext(const GUSISigContext*)
 atan
 atan2
 memmove
@@ -845,8 +1881,6 @@
 fclose
 tmpfile
 tmpnam
-rename
-remove
 rewind
 fsetpos
 fseek
@@ -911,8 +1945,6 @@
 fscanf
 __StringRead
 __FileRead
-raise
-signal
 __strerror
 strerror
 strstr
@@ -959,52 +1991,25 @@
 clock
 __leap_year
 ccommand
-__close_console
-__write_console
-__read_console
 __kill_critical_regions
 __init_critical_regions
-fcntl
-chmod
 umask
-creat
-open
 __rename_file
 __delete_file
 __temp_file_name
-__close_file
-__position_file
-__write_file
-__read_file
-__open_temp_file
-__open_file
 __path2fss
 __sys_free
 __sys_alloc
-mkdir
-fstat
-stat
 __to_gm_time
 __get_time
 __get_clock
-write
-unlink
 ttyname
-sleep
-rmdir
-read
-lseek
-isatty
 getlogin
-getcwd
 exec
 cuserid
-close
-chdir
 _ftype
 _fcreator
 tell
-fdopen
 fileno
 __gettype
 __getcreator
@@ -1012,7 +2017,6 @@
 __system7present
 __myraise
 utimes
-utime
 uname
 fwide
 fgetws
@@ -1253,889 +2257,38 @@
 SIOUXDrawGrowBox
 AdjustText
 SIOUXIsAppWindow
-__vt__15GUSISIOUXDevice		# GUSISIOUXDevice::__vt
-__vt__15GUSISIOUXSocket		# GUSISIOUXSocket::__vt
-sInstance__15GUSISIOUXDevice		# GUSISIOUXDevice::sInstance
-sInstance__15GUSISIOUXSocket		# GUSISIOUXSocket::sInstance
-__dt__15GUSISIOUXDeviceFv		# GUSISIOUXDevice::~GUSISIOUXDevice()
-GUSISetupConsoleDescriptors
-open__15GUSISIOUXDeviceFR13GUSIFileTokeni		# GUSISIOUXDevice::open(GUSIFileToken&,int)
-Want__15GUSISIOUXDeviceFR13GUSIFileToken		# GUSISIOUXDevice::Want(GUSIFileToken&)
-__dt__10GUSIDeviceFv		# GUSIDevice::~GUSIDevice()
-Instance__15GUSISIOUXDeviceFv		# GUSISIOUXDevice::Instance()
-select__15GUSISIOUXSocketFPbPbPb		# GUSISIOUXSocket::select(bool*,bool*,bool*)
-isatty__15GUSISIOUXSocketFv		# GUSISIOUXSocket::isatty()
-fstat__15GUSISIOUXSocketFP4stat		# GUSISIOUXSocket::fstat(stat*)
-ioctl__15GUSISIOUXSocketFUiPc		# GUSISIOUXSocket::ioctl(unsigned int,char*)
-write__15GUSISIOUXSocketFRC12GUSIGatherer		# GUSISIOUXSocket::write(const GUSIGatherer&)
-read__15GUSISIOUXSocketFRC13GUSIScatterer		# GUSISIOUXSocket::read(const GUSIScatterer&)
-__dt__15GUSISIOUXSocketFv		# GUSISIOUXSocket::~GUSISIOUXSocket()
-__ct__15GUSISIOUXSocketFv		# GUSISIOUXSocket::GUSISIOUXSocket()
-Instance__15GUSISIOUXSocketFv		# GUSISIOUXSocket::Instance()
-GUSISetupConsoleStdio
-GUSIStdioFlush
-GUSIStdioClose
-GUSI_diag_log
-vdfprintf
-dfprintf
-GUSI_break
-GUSI_log
-GUSI_pos
-gGUSIEventMask
-h_errno
-gGUSIEventHook
-gGUSIExecHook
-gGUSISpinHook
-GUSIHandleNextEvent__Fl		# GUSIHandleNextEvent(long)
-GUSISetMacHostError__Fs		# GUSISetMacHostError(short)
-GUSISetHostError__Fi		# GUSISetHostError(int)
-GUSISetMacError__Fs		# GUSISetMacError(short)
-GUSIMapMacError__Fs		# GUSIMapMacError(short)
-GUSISetPosixError__Fi		# GUSISetPosixError(int)
-GUSIGetHook__FUl		# GUSIGetHook(unsigned long)
-GUSISetHook__FUlPFv_v		# GUSISetHook(unsigned long,void (*)(void))
-__vt__22GUSIThreadManagerProxy		# GUSIThreadManagerProxy::__vt
-__vt__18GUSIContextFactory		# GUSIContextFactory::__vt
-__vt__11GUSIContext		# GUSIContext::__vt
-sError__11GUSIContext		# GUSIContext::sError
-sHasThreading__11GUSIContext		# GUSIContext::sHasThreading
-sCurrentContext__11GUSIContext		# GUSIContext::sCurrentContext
-sContexts__11GUSIContext		# GUSIContext::sContexts
-sInstance__11GUSIProcess		# GUSIProcess::sInstance
-__dt__Q211GUSIContext5QueueFv		# GUSIContext::Queue::~Queue()
-MakeInstance__22GUSIThreadManagerProxyFv		# GUSIThreadManagerProxy::MakeInstance()
-__dt__22GUSIThreadManagerProxyFv		# GUSIThreadManagerProxy::~GUSIThreadManagerProxy()
-__dt__Q23std76auto_ptr<22GUSIThreadManagerProxy,Q23std33_Single<22GUSIThreadManagerProxy>>Fv		# std::auto_ptr<GUSIThreadManagerProxy, std::_Single<GUSIThreadManagerProxy>>::~auto_ptr()
-Instance__22GUSIThreadManagerProxyFv		# GUSIThreadManagerProxy::Instance()
-SetThreadTerminator__22GUSIThreadManagerProxyFUlPFUlPv_vPv		# GUSIThreadManagerProxy::SetThreadTerminator(unsigned long,void (*)(unsigned long, void*),void*)
-SetThreadSwitcher__22GUSIThreadManagerProxyFUlPFUlPv_vPvUc		# GUSIThreadManagerProxy::SetThreadSwitcher(unsigned long,void (*)(unsigned long, void*),void*,unsigned char)
-NewThread__22GUSIThreadManagerProxyFUlPFPv_PvPvlUlPPvPUl		# GUSIThreadManagerProxy::NewThread(unsigned long,void* (*)(void*),void*,long,unsigned long,void**,unsigned long*)
-GUSIControl__FP7IOParam		# GUSIControl(IOParam*)
-GUSIFinishIO__FP7IOParam		# GUSIFinishIO(IOParam*)
-GUSIStartIO__FP7IOParam		# GUSIStartIO(IOParam*)
-Blocked__11GUSIContextFv		# GUSIContext::Blocked()
-Pending__11GUSIContextFv		# GUSIContext::Pending()
-Raise__11GUSIContextFb		# GUSIContext::Raise(bool)
-Yield__11GUSIProcessF13GUSIYieldMode		# GUSIProcess::Yield(GUSIYieldMode)
-SigSuspend__11GUSIContextFv		# GUSIContext::SigSuspend()
-SigWait__11GUSIContextFUi		# GUSIContext::SigWait(unsigned int)
-Yield__11GUSIContextF13GUSIYieldMode		# GUSIContext::Yield(GUSIYieldMode)
-Done__11GUSIContextFb		# GUSIContext::Done(bool)
-Terminate__11GUSIContextFv		# GUSIContext::Terminate()
-SwitchOut__11GUSIContextFv		# GUSIContext::SwitchOut()
-SwitchIn__11GUSIContextFv		# GUSIContext::SwitchIn()
-SetTerminator__11GUSIContextFPFUlPv_vPv		# GUSIContext::SetTerminator(void (*)(unsigned long, void*),void*)
-GUSISetThreadTerminator
-SetSwitchOut__11GUSIContextFPFUlPv_vPv		# GUSIContext::SetSwitchOut(void (*)(unsigned long, void*),void*)
-SetSwitchIn__11GUSIContextFPFUlPv_vPv		# GUSIContext::SetSwitchIn(void (*)(unsigned long, void*),void*)
-GUSISetThreadSwitcher
-CreateContext__18GUSIContextFactoryFUl		# GUSIContextFactory::CreateContext(unsigned long)
-CreateContext__18GUSIContextFactoryFPFPv_PvPvlUlPPvPUl		# GUSIContextFactory::CreateContext(void* (*)(void*),void*,long,unsigned long,void**,unsigned long*)
-__dt__18GUSIContextFactoryFv		# GUSIContextFactory::~GUSIContextFactory()
-__ct__18GUSIContextFactoryFv		# GUSIContextFactory::GUSIContextFactory()
-__dt__Q23std68auto_ptr<18GUSIContextFactory,Q23std29_Single<18GUSIContextFactory>>Fv		# std::auto_ptr<GUSIContextFactory, std::_Single<GUSIContextFactory>>::~auto_ptr()
-SetInstance__18GUSIContextFactoryFP18GUSIContextFactory		# GUSIContextFactory::SetInstance(GUSIContextFactory*)
-Instance__18GUSIContextFactoryFv		# GUSIContextFactory::Instance()
-GUSINewThread
-Wakeup__11GUSIProcessFv		# GUSIProcess::Wakeup()
-Wakeup__11GUSIContextFv		# GUSIContext::Wakeup()
-Liquidate__11GUSIContextFv		# GUSIContext::Liquidate()
-LiquidateAll__Q211GUSIContext5QueueFv		# GUSIContext::Queue::LiquidateAll()
-__dt__11GUSIContextFv		# GUSIContext::~GUSIContext()
-Lookup__11GUSIContextFUl		# GUSIContext::Lookup(unsigned long)
-__ct__11GUSIContextFPFPv_PvPvlUlPPvPUl		# GUSIContext::GUSIContext(void* (*)(void*),void*,long,unsigned long,void**,unsigned long*)
-__ct__11GUSIContextFUl		# GUSIContext::GUSIContext(unsigned long)
-FinishSetup__11GUSIContextFv		# GUSIContext::FinishSetup()
-GUSIThreadTerminator
-StartSetup__11GUSIContextFv		# GUSIContext::StartSetup()
-Setup__11GUSIContextFb		# GUSIContext::Setup(bool)
-GUSIThreadSwitchOut
-GUSIThreadSwitchIn
-__ct__11GUSIProcessFb		# GUSIProcess::GUSIProcess(bool)
-sKeyAlloc__17GUSISpecificTable		# GUSISpecificTable::sKeyAlloc
-sKeys__17GUSISpecificTable		# GUSISpecificTable::sKeys
-sNextID__12GUSISpecific		# GUSISpecific::sNextID
-Destruct__17GUSISpecificTableFP12GUSISpecific		# GUSISpecificTable::Destruct(GUSISpecific*)
-Register__17GUSISpecificTableFP12GUSISpecific		# GUSISpecificTable::Register(GUSISpecific*)
-DeleteSpecific__17GUSISpecificTableFPC12GUSISpecific		# GUSISpecificTable::DeleteSpecific(const GUSISpecific*)
-SetSpecific__17GUSISpecificTableFPC12GUSISpecificPv		# GUSISpecificTable::SetSpecific(const GUSISpecific*,void*)
-__dt__17GUSISpecificTableFv		# GUSISpecificTable::~GUSISpecificTable()
-__vt__12GUSIGatherer		# GUSIGatherer::__vt
-__vt__13GUSIScatterer		# GUSIScatterer::__vt
-__vt__10GUSISocket		# GUSISocket::__vt
-fstat__10GUSISocketFP4stat		# GUSISocket::fstat(stat*)
-__dt__12GUSIGathererFv		# GUSIGatherer::~GUSIGatherer()
-sendmsg__10GUSISocketFPC6msghdri		# GUSISocket::sendmsg(const msghdr*,int)
-sendto__10GUSISocketFRC12GUSIGathereriPCvUi		# GUSISocket::sendto(const GUSIGatherer&,int,const void*,unsigned int)
-write__10GUSISocketFRC12GUSIGatherer		# GUSISocket::write(const GUSIGatherer&)
-__dt__13GUSIScattererFv		# GUSIScatterer::~GUSIScatterer()
-recvmsg__10GUSISocketFP6msghdri		# GUSISocket::recvmsg(msghdr*,int)
-recvfrom__10GUSISocketFRC13GUSIScattereriPvPUi		# GUSISocket::recvfrom(const GUSIScatterer&,int,void*,unsigned int*)
-read__10GUSISocketFRC13GUSIScatterer		# GUSISocket::read(const GUSIScatterer&)
-select__10GUSISocketFPbPbPb		# GUSISocket::select(bool*,bool*,bool*)
-post_select__10GUSISocketFbbb		# GUSISocket::post_select(bool,bool,bool)
-pre_select__10GUSISocketFbbb		# GUSISocket::pre_select(bool,bool,bool)
-isatty__10GUSISocketFv		# GUSISocket::isatty()
-fsync__10GUSISocketFv		# GUSISocket::fsync()
-lseek__10GUSISocketFli		# GUSISocket::lseek(long,int)
-accept__10GUSISocketFPvPUi		# GUSISocket::accept(void*,unsigned int*)
-shutdown__10GUSISocketFi		# GUSISocket::shutdown(int)
-ftruncate__10GUSISocketFl		# GUSISocket::ftruncate(long)
-ioctl__10GUSISocketFUiPc		# GUSISocket::ioctl(unsigned int,char*)
-fcntl__10GUSISocketFiPc		# GUSISocket::fcntl(int,char*)
-setsockopt__10GUSISocketFiiPvUi		# GUSISocket::setsockopt(int,int,void*,unsigned int)
-getsockopt__10GUSISocketFiiPvPUi		# GUSISocket::getsockopt(int,int,void*,unsigned int*)
-connect__10GUSISocketFPvUi		# GUSISocket::connect(void*,unsigned int)
-listen__10GUSISocketFi		# GUSISocket::listen(int)
-getpeername__10GUSISocketFPvPUi		# GUSISocket::getpeername(void*,unsigned int*)
-getsockname__10GUSISocketFPvPUi		# GUSISocket::getsockname(void*,unsigned int*)
-bind__10GUSISocketFPvUi		# GUSISocket::bind(void*,unsigned int)
-RemoveContext__10GUSISocketFP11GUSIContext		# GUSISocket::RemoveContext(GUSIContext*)
-AddContext__10GUSISocketFP11GUSIContext		# GUSISocket::AddContext(GUSIContext*)
-Supports__10GUSISocketFQ210GUSISocket12ConfigOption		# GUSISocket::Supports(GUSISocket::ConfigOption)
-__dt__10GUSISocketFv		# GUSISocket::~GUSISocket()
-close__10GUSISocketFv		# GUSISocket::close()
-__ct__10GUSISocketFv		# GUSISocket::GUSISocket()
-__ct__10GUSImsghdrFRC13GUSIScattGathPCvUi		# GUSImsghdr::GUSImsghdr(const GUSIScattGath&,const void*,unsigned int)
-__vt__13GUSIScattGath		# GUSIScattGath::__vt
-Peek__Q214GUSIRingBuffer6PeekerFRC13GUSIScattererRUl		# GUSIRingBuffer::Peeker::Peek(const GUSIScatterer&,unsigned long&)
-Peek__Q214GUSIRingBuffer6PeekerFPvRUl		# GUSIRingBuffer::Peeker::Peek(void*,unsigned long&)
-PeekBuffer__Q214GUSIRingBuffer6PeekerFRUl		# GUSIRingBuffer::Peeker::PeekBuffer(unsigned long&)
-__dt__Q214GUSIRingBuffer6PeekerFv		# GUSIRingBuffer::Peeker::~Peeker()
-__ct__Q214GUSIRingBuffer6PeekerFR14GUSIRingBuffer		# GUSIRingBuffer::Peeker::Peeker(GUSIRingBuffer&)
-Valid__14GUSIRingBufferFv		# GUSIRingBuffer::Valid()
-Free__14GUSIRingBufferFv		# GUSIRingBuffer::Free()
-IterateIOVec__14GUSIRingBufferFRC13GUSIScattGathRUlRUlb		# GUSIRingBuffer::IterateIOVec(const GUSIScattGath&,unsigned long&,unsigned long&,bool)
-Consume__14GUSIRingBufferFPvRUl		# GUSIRingBuffer::Consume(void*,unsigned long&)
-Produce__14GUSIRingBufferFPvRUl		# GUSIRingBuffer::Produce(void*,unsigned long&)
-FreeBuffer__14GUSIRingBufferFPvUl		# GUSIRingBuffer::FreeBuffer(void*,unsigned long)
-ValidBuffer__14GUSIRingBufferFPvUl		# GUSIRingBuffer::ValidBuffer(void*,unsigned long)
-ConsumeBuffer__14GUSIRingBufferFRUl		# GUSIRingBuffer::ConsumeBuffer(unsigned long&)
-ProduceBuffer__14GUSIRingBufferFRUl		# GUSIRingBuffer::ProduceBuffer(unsigned long&)
-__dt__14GUSIRingBufferFv		# GUSIRingBuffer::~GUSIRingBuffer()
-ObsoleteBuffer__14GUSIRingBufferFv		# GUSIRingBuffer::ObsoleteBuffer()
-PurgeBuffers__14GUSIRingBufferFv		# GUSIRingBuffer::PurgeBuffers()
-SwitchBuffer__14GUSIRingBufferFUl		# GUSIRingBuffer::SwitchBuffer(unsigned long)
-__ct__14GUSIRingBufferFUl		# GUSIRingBuffer::GUSIRingBuffer(unsigned long)
-Invariant__14GUSIRingBufferFv		# GUSIRingBuffer::Invariant()
-Distance__14GUSIRingBufferFPcPc		# GUSIRingBuffer::Distance(char*,char*)
-__ct__13GUSIScattGathFRC13GUSIScattGath		# GUSIScattGath::GUSIScattGath(const GUSIScattGath&)
-__as__13GUSIScattGathFRC13GUSIScattGath		# GUSIScattGath::operator =(const GUSIScattGath&)
-__dt__13GUSIScattGathFv		# GUSIScattGath::~GUSIScattGath()
-Buffer__13GUSIScattGathCFv		# GUSIScattGath::Buffer() const
-__ct__13GUSIScattGathFPvUlb		# GUSIScattGath::GUSIScattGath(void*,unsigned long,bool)
-__ct__13GUSIScattGathFPC5iovecib		# GUSIScattGath::GUSIScattGath(const iovec*,int,bool)
-__vt__14GUSIPipeSocket		# GUSIPipeSocket::__vt
-__vt__15GUSIPipeFactory		# GUSIPipeFactory::__vt
-sInstance__15GUSIPipeFactory		# GUSIPipeFactory::sInstance
-__dt__15GUSIPipeFactoryFv		# GUSIPipeFactory::~GUSIPipeFactory()
-shutdown__14GUSIPipeSocketFi		# GUSIPipeSocket::shutdown(int)
-__dt__14GUSIPipeSocketFv		# GUSIPipeSocket::~GUSIPipeSocket()
-select__14GUSIPipeSocketFPbPbPb		# GUSIPipeSocket::select(bool*,bool*,bool*)
-write__14GUSIPipeSocketFRC12GUSIGatherer		# GUSIPipeSocket::write(const GUSIGatherer&)
-read__14GUSIPipeSocketFRC13GUSIScatterer		# GUSIPipeSocket::read(const GUSIScatterer&)
-Supports__14GUSIPipeSocketFQ210GUSISocket12ConfigOption		# GUSIPipeSocket::Supports(GUSISocket::ConfigOption)
-WakeupPeer__14GUSIPipeSocketFv		# GUSIPipeSocket::WakeupPeer()
-__ct__14GUSIPipeSocketFv		# GUSIPipeSocket::GUSIPipeSocket()
-__dt__14GUSIErrorSaverFv		# GUSIErrorSaver::~GUSIErrorSaver()
-socketpair__15GUSIPipeFactoryFiiiPP10GUSISocket		# GUSIPipeFactory::socketpair(int,int,int,GUSISocket**)
-socket__15GUSIPipeFactoryFiii		# GUSIPipeFactory::socket(int,int,int)
-__dt__17GUSISocketFactoryFv		# GUSISocketFactory::~GUSISocketFactory()
-GUSIwithLocalSockets
-__vt__22GUSISocketTypeRegistry		# GUSISocketTypeRegistry::__vt
-__vt__24GUSISocketDomainRegistry		# GUSISocketDomainRegistry::__vt
-__vt__17GUSISocketFactory		# GUSISocketFactory::__vt
-sInstance__24GUSISocketDomainRegistry		# GUSISocketDomainRegistry::sInstance
-__dt__24GUSISocketDomainRegistryFv		# GUSISocketDomainRegistry::~GUSISocketDomainRegistry()
-__dt__22GUSISocketTypeRegistryFv		# GUSISocketTypeRegistry::~GUSISocketTypeRegistry()
-RemoveFactory__22GUSISocketTypeRegistryFii		# GUSISocketTypeRegistry::RemoveFactory(int,int)
-AddFactory__22GUSISocketTypeRegistryFiiP17GUSISocketFactory		# GUSISocketTypeRegistry::AddFactory(int,int,GUSISocketFactory*)
-socketpair__22GUSISocketTypeRegistryFiiiPP10GUSISocket		# GUSISocketTypeRegistry::socketpair(int,int,int,GUSISocket**)
-socket__22GUSISocketTypeRegistryFiii		# GUSISocketTypeRegistry::socket(int,int,int)
-Find__22GUSISocketTypeRegistryFiibRPQ222GUSISocketTypeRegistry5Entry		# GUSISocketTypeRegistry::Find(int,int,bool,GUSISocketTypeRegistry::Entry*&)
-Initialize__22GUSISocketTypeRegistryFv		# GUSISocketTypeRegistry::Initialize()
-__ct__Q222GUSISocketTypeRegistry5EntryFv		# GUSISocketTypeRegistry::Entry::Entry()
-AddFactory__24GUSISocketDomainRegistryFiP17GUSISocketFactory		# GUSISocketDomainRegistry::AddFactory(int,GUSISocketFactory*)
-socketpair__24GUSISocketDomainRegistryFiiiPP10GUSISocket		# GUSISocketDomainRegistry::socketpair(int,int,int,GUSISocket**)
-socket__24GUSISocketDomainRegistryFiii		# GUSISocketDomainRegistry::socket(int,int,int)
-__ct__24GUSISocketDomainRegistryFv		# GUSISocketDomainRegistry::GUSISocketDomainRegistry()
-socketpair__17GUSISocketFactoryFiiiPP10GUSISocket		# GUSISocketFactory::socketpair(int,int,int,GUSISocket**)
-sDrvrState__16GUSIMTInetSocket		# GUSIMTInetSocket::sDrvrState
-__vt__16GUSIMTInetSocket		# GUSIMTInetSocket::__vt
-sHostAddress__16GUSIMTInetSocket		# GUSIMTInetSocket::sHostAddress
-sDrvrRefNum__16GUSIMTInetSocket		# GUSIMTInetSocket::sDrvrRefNum
-__dt__16GUSIMTInetSocketFv		# GUSIMTInetSocket::~GUSIMTInetSocket()
-GUSIwithMTInetSockets
-Supports__16GUSIMTInetSocketFQ210GUSISocket12ConfigOption		# GUSIMTInetSocket::Supports(GUSISocket::ConfigOption)
-setsockopt__16GUSIMTInetSocketFiiPvUi		# GUSIMTInetSocket::setsockopt(int,int,void*,unsigned int)
-getsockopt__16GUSIMTInetSocketFiiPvPUi		# GUSIMTInetSocket::getsockopt(int,int,void*,unsigned int*)
-ioctl__16GUSIMTInetSocketFUiPc		# GUSIMTInetSocket::ioctl(unsigned int,char*)
-fcntl__16GUSIMTInetSocketFiPc		# GUSIMTInetSocket::fcntl(int,char*)
-shutdown__16GUSIMTInetSocketFi		# GUSIMTInetSocket::shutdown(int)
-getpeername__16GUSIMTInetSocketFPvPUi		# GUSIMTInetSocket::getpeername(void*,unsigned int*)
-getsockname__16GUSIMTInetSocketFPvPUi		# GUSIMTInetSocket::getsockname(void*,unsigned int*)
-bind__16GUSIMTInetSocketFPvUi		# GUSIMTInetSocket::bind(void*,unsigned int)
-__dt__17GUSISMInputBufferFv		# GUSISMInputBuffer::~GUSISMInputBuffer()
-__dt__18GUSISMOutputBufferFv		# GUSISMOutputBuffer::~GUSISMOutputBuffer()
-__ct__16GUSIMTInetSocketFv		# GUSIMTInetSocket::GUSIMTInetSocket()
-HostAddr__16GUSIMTInetSocketFv		# GUSIMTInetSocket::HostAddr()
-Driver__16GUSIMTInetSocketFv		# GUSIMTInetSocket::Driver()
-__vt__16GUSIMTTcpFactory		# GUSIMTTcpFactory::__vt
-__vt__15GUSIMTTcpSocket		# GUSIMTTcpSocket::__vt
-instance__16GUSIMTTcpFactory		# GUSIMTTcpFactory::instance
-sListenProc__15GUSIMTTcpSocket		# GUSIMTTcpSocket::sListenProc
-sConnectProc__15GUSIMTTcpSocket		# GUSIMTTcpSocket::sConnectProc
-sNotifyProc__15GUSIMTTcpSocket		# GUSIMTTcpSocket::sNotifyProc
-sRecvProc__15GUSIMTTcpSocket		# GUSIMTTcpSocket::sRecvProc
-sSendProc__15GUSIMTTcpSocket		# GUSIMTTcpSocket::sSendProc
-__dt__16GUSIMTTcpFactoryFv		# GUSIMTTcpFactory::~GUSIMTTcpFactory()
-GUSIwithMTTcpSockets
-socket__16GUSIMTTcpFactoryFiii		# GUSIMTTcpFactory::socket(int,int,int)
-__dt__15GUSIMTTcpSocketFv		# GUSIMTTcpSocket::~GUSIMTTcpSocket()
-shutdown__15GUSIMTTcpSocketFi		# GUSIMTTcpSocket::shutdown(int)
-select__15GUSIMTTcpSocketFPbPbPb		# GUSIMTTcpSocket::select(bool*,bool*,bool*)
-sendto__15GUSIMTTcpSocketFRC12GUSIGathereriPCvUi		# GUSIMTTcpSocket::sendto(const GUSIGatherer&,int,const void*,unsigned int)
-recvfrom__15GUSIMTTcpSocketFRC13GUSIScattereriPvPUi		# GUSIMTTcpSocket::recvfrom(const GUSIScatterer&,int,void*,unsigned int*)
-__ct__15GUSIMTTcpSocketFRQ215GUSIMTTcpSocket8Listener		# GUSIMTTcpSocket::GUSIMTTcpSocket(GUSIMTTcpSocket::Listener&)
-accept__15GUSIMTTcpSocketFPvPUi		# GUSIMTTcpSocket::accept(void*,unsigned int*)
-listen__15GUSIMTTcpSocketFi		# GUSIMTTcpSocket::listen(int)
-connect__15GUSIMTTcpSocketFPvUi		# GUSIMTTcpSocket::connect(void*,unsigned int)
-__ct__15GUSIMTTcpSocketFv		# GUSIMTTcpSocket::GUSIMTTcpSocket()
-SetupListener__15GUSIMTTcpSocketFRQ215GUSIMTTcpSocket8Listener		# GUSIMTTcpSocket::SetupListener(GUSIMTTcpSocket::Listener&)
-CreateStream__15GUSIMTTcpSocketFPP15GUSIMTTcpSocket		# GUSIMTTcpSocket::CreateStream(GUSIMTTcpSocket**)
-GUSIMTTListen__FP15GUSIMTTcpSocket		# GUSIMTTListen(GUSIMTTcpSocket*)
-GUSIMTTListenDone__FP7TCPiopb		# GUSIMTTListenDone(TCPiopb*)
-GUSIMTTConnectDone__FP7TCPiopb		# GUSIMTTConnectDone(TCPiopb*)
-GUSIMTTNotify
-GUSIMTTRecv__FP15GUSIMTTcpSocket		# GUSIMTTRecv(GUSIMTTcpSocket*)
-GUSIMTTRecvDone__FP7TCPiopb		# GUSIMTTRecvDone(TCPiopb*)
-GUSIMTTSend__FP15GUSIMTTcpSocket		# GUSIMTTSend(GUSIMTTcpSocket*)
-GUSIMTTSendDone__FP7TCPiopb		# GUSIMTTSendDone(TCPiopb*)
-sID__16GUSITempFileSpec		# GUSITempFileSpec::sID
-sScratchSize__12GUSIFileSpec		# GUSIFileSpec::sScratchSize
-sScratch__12GUSIFileSpec		# GUSIFileSpec::sScratch
-GUSIFSp2Encoding
-GUSIFSp2DirRelPath
-GUSIFSp2RelPath
-GUSIFSp2FullPath
-GUSIFSpResolve
-GUSIFSpIndex
-GUSIFSpDown
-GUSIFSpUp
-GUSISpecial2FSp
-GUSIPath2FSp
-GUSIWD2FSp
-GUSIFRefNum2FSp
-TempName__16GUSITempFileSpecFPCUc		# GUSITempFileSpec::TempName(const unsigned char*)
-TempName__16GUSITempFileSpecFv		# GUSITempFileSpec::TempName()
-__ct__16GUSITempFileSpecFslPCUc		# GUSITempFileSpec::GUSITempFileSpec(short,long,const unsigned char*)
-__ct__16GUSITempFileSpecFsPCUc		# GUSITempFileSpec::GUSITempFileSpec(short,const unsigned char*)
-__ct__16GUSITempFileSpecFPCUc		# GUSITempFileSpec::GUSITempFileSpec(const unsigned char*)
-__ct__16GUSITempFileSpecFsl		# GUSITempFileSpec::GUSITempFileSpec(short,long)
-__ct__16GUSITempFileSpecFs		# GUSITempFileSpec::GUSITempFileSpec(short)
-IsParentOf__12GUSIFileSpecCFRC12GUSIFileSpec		# GUSIFileSpec::IsParentOf(const GUSIFileSpec&) const
-__eq__FRC12GUSIFileSpecRC12GUSIFileSpec		# operator ==(const GUSIFileSpec&,const GUSIFileSpec&)
-AliasPath__12GUSIFileSpecCFv		# GUSIFileSpec::AliasPath() const
-Resolve__12GUSIFileSpecFb		# GUSIFileSpec::Resolve(bool)
-EncodedPath__12GUSIFileSpecCFv		# GUSIFileSpec::EncodedPath() const
-RelativePath__12GUSIFileSpecCFv		# GUSIFileSpec::RelativePath() const
-RelativePath__12GUSIFileSpecCFRC6FSSpec		# GUSIFileSpec::RelativePath(const FSSpec&) const
-PrependPathComponent__12GUSIFileSpecCFRPcPCUcb		# GUSIFileSpec::PrependPathComponent(char*&,const unsigned char*,bool) const
-FullPath__12GUSIFileSpecCFv		# GUSIFileSpec::FullPath() const
-CatInfo__12GUSIFileSpecFs		# GUSIFileSpec::CatInfo(short)
-TouchFolder__12GUSIFileSpecFv		# GUSIFileSpec::TouchFolder()
-SetName__12GUSIFileSpecFPCc		# GUSIFileSpec::SetName(const char*)
-SetName__12GUSIFileSpecFPCUc		# GUSIFileSpec::SetName(const unsigned char*)
-SetParID__12GUSIFileSpecFl		# GUSIFileSpec::SetParID(long)
-SetVRef__12GUSIFileSpecFs		# GUSIFileSpec::SetVRef(short)
-__vc__12GUSIFileSpecFs		# GUSIFileSpec::operator [](short)
-__pl__FRC6FSSpecPCc		# operator +(const FSSpec&,const char*)
-__pl__FRC6FSSpecPCUc		# operator +(const FSSpec&,const unsigned char*)
-AddPathComponent__12GUSIFileSpecFPCcib		# GUSIFileSpec::AddPathComponent(const char*,int,bool)
-__pp__12GUSIFileSpecFv		# GUSIFileSpec::operator ++()
-__mm__12GUSIFileSpecFv		# GUSIFileSpec::operator --()
-GetVolume__12GUSIFileSpecFs		# GUSIFileSpec::GetVolume(short)
-__ct__12GUSIFileSpecFPCcb		# GUSIFileSpec::GUSIFileSpec(const char*,bool)
-__ct__12GUSIFileSpecFs		# GUSIFileSpec::GUSIFileSpec(short)
-__ct__12GUSIFileSpecFUls		# GUSIFileSpec::GUSIFileSpec(unsigned long,short)
-__ct__12GUSIFileSpecFsPCUcb		# GUSIFileSpec::GUSIFileSpec(short,const unsigned char*,bool)
-__ct__12GUSIFileSpecFslPCUcb		# GUSIFileSpec::GUSIFileSpec(short,long,const unsigned char*,bool)
-__ct__12GUSIFileSpecFRC6FSSpecb		# GUSIFileSpec::GUSIFileSpec(const FSSpec&,bool)
-__ct__12GUSIFileSpecFRC12GUSIFileSpec		# GUSIFileSpec::GUSIFileSpec(const GUSIFileSpec&)
-CScratch__12GUSIFileSpecFb		# GUSIFileSpec::CScratch(bool)
-ReadHex__FPCciPc		# ReadHex(const char*,int,char*)
-__vt__10GUSIDevice		# GUSIDevice::__vt
-sInstance__18GUSIDeviceRegistry		# GUSIDeviceRegistry::sInstance
-faccess__18GUSIDeviceRegistryFPCcPUiPv		# GUSIDeviceRegistry::faccess(const char*,unsigned int*,void*)
-fsetfileinfo__18GUSIDeviceRegistryFPCcUlUl		# GUSIDeviceRegistry::fsetfileinfo(const char*,unsigned long,unsigned long)
-fgetfileinfo__18GUSIDeviceRegistryFPCcPUlPUl		# GUSIDeviceRegistry::fgetfileinfo(const char*,unsigned long*,unsigned long*)
-readlink__18GUSIDeviceRegistryFPCcPci		# GUSIDeviceRegistry::readlink(const char*,char*,int)
-symlink__18GUSIDeviceRegistryFPCcPCc		# GUSIDeviceRegistry::symlink(const char*,const char*)
-opendir__18GUSIDeviceRegistryFPCc		# GUSIDeviceRegistry::opendir(const char*)
-rmdir__18GUSIDeviceRegistryFPCc		# GUSIDeviceRegistry::rmdir(const char*)
-mkdir__18GUSIDeviceRegistryFPCc		# GUSIDeviceRegistry::mkdir(const char*)
-access__18GUSIDeviceRegistryFPCci		# GUSIDeviceRegistry::access(const char*,int)
-utime__18GUSIDeviceRegistryFPCcPC7utimbuf		# GUSIDeviceRegistry::utime(const char*,const utimbuf*)
-chmod__18GUSIDeviceRegistryFPCcUs		# GUSIDeviceRegistry::chmod(const char*,unsigned short)
-stat__18GUSIDeviceRegistryFPCcP4statb		# GUSIDeviceRegistry::stat(const char*,stat*,bool)
-rename__18GUSIDeviceRegistryFPCcPCc		# GUSIDeviceRegistry::rename(const char*,const char*)
-remove__18GUSIDeviceRegistryFPCc		# GUSIDeviceRegistry::remove(const char*)
-open__18GUSIDeviceRegistryFPCci		# GUSIDeviceRegistry::open(const char*,int)
-Lookup__18GUSIDeviceRegistryFR13GUSIFileToken		# GUSIDeviceRegistry::Lookup(GUSIFileToken&)
-RemoveDevice__18GUSIDeviceRegistryFP10GUSIDevice		# GUSIDeviceRegistry::RemoveDevice(GUSIDevice*)
-AddDevice__18GUSIDeviceRegistryFP10GUSIDevice		# GUSIDeviceRegistry::AddDevice(GUSIDevice*)
-__ct__18GUSIDeviceRegistryFv		# GUSIDeviceRegistry::GUSIDeviceRegistry()
-faccess__10GUSIDeviceFR13GUSIFileTokenPUiPv		# GUSIDevice::faccess(GUSIFileToken&,unsigned int*,void*)
-fsetfileinfo__10GUSIDeviceFR13GUSIFileTokenUlUl		# GUSIDevice::fsetfileinfo(GUSIFileToken&,unsigned long,unsigned long)
-fgetfileinfo__10GUSIDeviceFR13GUSIFileTokenPUlPUl		# GUSIDevice::fgetfileinfo(GUSIFileToken&,unsigned long*,unsigned long*)
-readlink__10GUSIDeviceFR13GUSIFileTokenPci		# GUSIDevice::readlink(GUSIFileToken&,char*,int)
-symlink__10GUSIDeviceFR13GUSIFileTokenPCc		# GUSIDevice::symlink(GUSIFileToken&,const char*)
-opendir__10GUSIDeviceFR13GUSIFileToken		# GUSIDevice::opendir(GUSIFileToken&)
-rmdir__10GUSIDeviceFR13GUSIFileToken		# GUSIDevice::rmdir(GUSIFileToken&)
-mkdir__10GUSIDeviceFR13GUSIFileToken		# GUSIDevice::mkdir(GUSIFileToken&)
-access__10GUSIDeviceFR13GUSIFileTokeni		# GUSIDevice::access(GUSIFileToken&,int)
-utime__10GUSIDeviceFR13GUSIFileTokenPC7utimbuf		# GUSIDevice::utime(GUSIFileToken&,const utimbuf*)
-chmod__10GUSIDeviceFR13GUSIFileTokenUs		# GUSIDevice::chmod(GUSIFileToken&,unsigned short)
-stat__10GUSIDeviceFR13GUSIFileTokenP4stat		# GUSIDevice::stat(GUSIFileToken&,stat*)
-rename__10GUSIDeviceFR13GUSIFileTokenPCc		# GUSIDevice::rename(GUSIFileToken&,const char*)
-remove__10GUSIDeviceFR13GUSIFileToken		# GUSIDevice::remove(GUSIFileToken&)
-open__10GUSIDeviceFR13GUSIFileTokeni		# GUSIDevice::open(GUSIFileToken&,int)
-Want__10GUSIDeviceFR13GUSIFileToken		# GUSIDevice::Want(GUSIFileToken&)
-__ct__13GUSIFileTokenFsQ213GUSIFileToken7Request		# GUSIFileToken::GUSIFileToken(short,GUSIFileToken::Request)
-__ct__13GUSIFileTokenFRC12GUSIFileSpecQ213GUSIFileToken7Request		# GUSIFileToken::GUSIFileToken(const GUSIFileSpec&,GUSIFileToken::Request)
-StrStdStream__13GUSIFileTokenFPCc		# GUSIFileToken::StrStdStream(const char*)
-__ct__13GUSIFileTokenFPCcQ213GUSIFileToken7Requestb		# GUSIFileToken::GUSIFileToken(const char*,GUSIFileToken::Request,bool)
-StrFragEqual__13GUSIFileTokenFPCcPCc		# GUSIFileToken::StrFragEqual(const char*,const char*)
-__vt__16GUSIMacDirectory		# GUSIMacDirectory::__vt
-__vt__13GUSIDirectory		# GUSIDirectory::__vt
-__vt__17GUSIMacFileSocket		# GUSIMacFileSocket::__vt
-__vt__17GUSIMacFileDevice		# GUSIMacFileDevice::__vt
-sWakeupProc__17GUSIMacFileSocket		# GUSIMacFileSocket::sWakeupProc
-sWriteProc__17GUSIMacFileSocket		# GUSIMacFileSocket::sWriteProc
-sReadProc__17GUSIMacFileSocket		# GUSIMacFileSocket::sReadProc
-__dt__16GUSIMacDirectoryFv		# GUSIMacDirectory::~GUSIMacDirectory()
-rewinddir__16GUSIMacDirectoryFv		# GUSIMacDirectory::rewinddir()
-seekdir__16GUSIMacDirectoryFl		# GUSIMacDirectory::seekdir(long)
-telldir__16GUSIMacDirectoryFv		# GUSIMacDirectory::telldir()
-readdir__16GUSIMacDirectoryFv		# GUSIMacDirectory::readdir()
-__dt__13GUSIDirectoryFv		# GUSIDirectory::~GUSIDirectory()
-__ct__16GUSIMacDirectoryFRC6FSSpec		# GUSIMacDirectory::GUSIMacDirectory(const FSSpec&)
-Supports__17GUSIMacFileSocketFQ210GUSISocket12ConfigOption		# GUSIMacFileSocket::Supports(GUSISocket::ConfigOption)
-fstat__17GUSIMacFileSocketFP4stat		# GUSIMacFileSocket::fstat(stat*)
-ftruncate__17GUSIMacFileSocketFl		# GUSIMacFileSocket::ftruncate(long)
-lseek__17GUSIMacFileSocketFli		# GUSIMacFileSocket::lseek(long,int)
-setsockopt__17GUSIMacFileSocketFiiPvUi		# GUSIMacFileSocket::setsockopt(int,int,void*,unsigned int)
-getsockopt__17GUSIMacFileSocketFiiPvPUi		# GUSIMacFileSocket::getsockopt(int,int,void*,unsigned int*)
-ioctl__17GUSIMacFileSocketFUiPc		# GUSIMacFileSocket::ioctl(unsigned int,char*)
-fcntl__17GUSIMacFileSocketFiPc		# GUSIMacFileSocket::fcntl(int,char*)
-fsync__17GUSIMacFileSocketFv		# GUSIMacFileSocket::fsync()
-select__17GUSIMacFileSocketFPbPbPb		# GUSIMacFileSocket::select(bool*,bool*,bool*)
-write__17GUSIMacFileSocketFRC12GUSIGatherer		# GUSIMacFileSocket::write(const GUSIGatherer&)
-read__17GUSIMacFileSocketFRC13GUSIScatterer		# GUSIMacFileSocket::read(const GUSIScatterer&)
-SyncWrite__17GUSIMacFileSocketFv		# GUSIMacFileSocket::SyncWrite()
-SyncRead__17GUSIMacFileSocketFv		# GUSIMacFileSocket::SyncRead()
-__dt__17GUSIMacFileSocketFv		# GUSIMacFileSocket::~GUSIMacFileSocket()
-__ct__17GUSIMacFileSocketFsbi		# GUSIMacFileSocket::GUSIMacFileSocket(short,bool,int)
-faccess__17GUSIMacFileDeviceFR13GUSIFileTokenPUiPv		# GUSIMacFileDevice::faccess(GUSIFileToken&,unsigned int*,void*)
-fsetfileinfo__17GUSIMacFileDeviceFR13GUSIFileTokenUlUl		# GUSIMacFileDevice::fsetfileinfo(GUSIFileToken&,unsigned long,unsigned long)
-fgetfileinfo__17GUSIMacFileDeviceFR13GUSIFileTokenPUlPUl		# GUSIMacFileDevice::fgetfileinfo(GUSIFileToken&,unsigned long*,unsigned long*)
-readlink__17GUSIMacFileDeviceFR13GUSIFileTokenPci		# GUSIMacFileDevice::readlink(GUSIFileToken&,char*,int)
-symlink__17GUSIMacFileDeviceFR13GUSIFileTokenPCc		# GUSIMacFileDevice::symlink(GUSIFileToken&,const char*)
-opendir__17GUSIMacFileDeviceFR13GUSIFileToken		# GUSIMacFileDevice::opendir(GUSIFileToken&)
-rmdir__17GUSIMacFileDeviceFR13GUSIFileToken		# GUSIMacFileDevice::rmdir(GUSIFileToken&)
-mkdir__17GUSIMacFileDeviceFR13GUSIFileToken		# GUSIMacFileDevice::mkdir(GUSIFileToken&)
-access__17GUSIMacFileDeviceFR13GUSIFileTokeni		# GUSIMacFileDevice::access(GUSIFileToken&,int)
-utime__17GUSIMacFileDeviceFR13GUSIFileTokenPC7utimbuf		# GUSIMacFileDevice::utime(GUSIFileToken&,const utimbuf*)
-chmod__17GUSIMacFileDeviceFR13GUSIFileTokenUs		# GUSIMacFileDevice::chmod(GUSIFileToken&,unsigned short)
-stat__17GUSIMacFileDeviceFR13GUSIFileTokenP4stat		# GUSIMacFileDevice::stat(GUSIFileToken&,stat*)
-rename__17GUSIMacFileDeviceFR13GUSIFileTokenPCc		# GUSIMacFileDevice::rename(GUSIFileToken&,const char*)
-CleanupTemporaries__17GUSIMacFileDeviceFb		# GUSIMacFileDevice::CleanupTemporaries(bool)
-MarkTemporary__17GUSIMacFileDeviceFRC6FSSpec		# GUSIMacFileDevice::MarkTemporary(const FSSpec&)
-remove__17GUSIMacFileDeviceFR13GUSIFileToken		# GUSIMacFileDevice::remove(GUSIFileToken&)
-open__17GUSIMacFileDeviceFsi		# GUSIMacFileDevice::open(short,int)
-open__17GUSIMacFileDeviceFR13GUSIFileTokeni		# GUSIMacFileDevice::open(GUSIFileToken&,int)
-Want__17GUSIMacFileDeviceFR13GUSIFileToken		# GUSIMacFileDevice::Want(GUSIFileToken&)
-__dt__17GUSIMacFileDeviceFv		# GUSIMacFileDevice::~GUSIMacFileDevice()
-__dt__Q23std66auto_ptr<17GUSIMacFileDevice,Q23std28_Single<17GUSIMacFileDevice>>Fv		# std::auto_ptr<GUSIMacFileDevice, std::_Single<GUSIMacFileDevice>>::~auto_ptr()
-Instance__17GUSIMacFileDeviceFv		# GUSIMacFileDevice::Instance()
-sInstance__17GUSIConfiguration		# GUSIConfiguration::sInstance
-ConfigureHandleAppleEvents__17GUSIConfigurationFb		# GUSIConfiguration::ConfigureHandleAppleEvents(bool)
-CmdPeriod__17GUSIConfigurationFPC11EventRecord		# GUSIConfiguration::CmdPeriod(const EventRecord*)
-CheckInterrupt__17GUSIConfigurationFv		# GUSIConfiguration::CheckInterrupt()
-BrokenPipe__17GUSIConfigurationFv		# GUSIConfiguration::BrokenPipe()
-DoAutoInitGraf__17GUSIConfigurationFv		# GUSIConfiguration::DoAutoInitGraf()
-DoAutoSpin__17GUSIConfigurationCFv		# GUSIConfiguration::DoAutoSpin() const
-SetDefaultFType__17GUSIConfigurationCFRC12GUSIFileSpec		# GUSIConfiguration::SetDefaultFType(const GUSIFileSpec&) const
-ConfigureSuffices__17GUSIConfigurationFsPQ217GUSIConfiguration10FileSuffix		# GUSIConfiguration::ConfigureSuffices(short,GUSIConfiguration::FileSuffix*)
-__ct__17GUSIConfigurationFs		# GUSIConfiguration::GUSIConfiguration(short)
-LookupSocket__19GUSIDescriptorTableFi		# GUSIDescriptorTable::LookupSocket(int)
-__vc__19GUSIDescriptorTableFi		# GUSIDescriptorTable::operator [](int)
-RemoveSocket__19GUSIDescriptorTableFi		# GUSIDescriptorTable::RemoveSocket(int)
-InstallSocket__19GUSIDescriptorTableFP10GUSISocketi		# GUSIDescriptorTable::InstallSocket(GUSISocket*,int)
-__dt__19GUSIDescriptorTableFv		# GUSIDescriptorTable::~GUSIDescriptorTable()
-CloseAllDescriptors__19GUSIDescriptorTableFv		# GUSIDescriptorTable::CloseAllDescriptors()
-__dt__Q23std70auto_ptr<19GUSIDescriptorTable,Q23std30_Single<19GUSIDescriptorTable>>Fv		# std::auto_ptr<GUSIDescriptorTable, std::_Single<GUSIDescriptorTable>>::~auto_ptr()
-Instance__19GUSIDescriptorTableFv		# GUSIDescriptorTable::Instance()
-GUSIDefaultSetupConsole
-GUSISetupConsole
-__ct__19GUSIDescriptorTableFv		# GUSIDescriptorTable::GUSIDescriptorTable()
-get__40GUSISpecificData<Q23std2tm,&.GUSIKillTM>FP17GUSISpecificTable		# GUSISpecificData<std::tm, &.GUSIKillTM>::get(GUSISpecificTable*)
-faccess__FPCcPUiPv		# faccess(const char*,unsigned int*,void*)
-fsetfileinfo
-fgetfileinfo
-getservent
-getservbyport
-getservbyname
-getprotoent
-getprotobynumber
-getprotobyname
-gethostbyname
-gethostbyaddr
-endservent
-endprotoent
-setservent
-setprotoent
-gethostname
-gethostid
-inet_ntoa
-inet_addr
-inet_aton
-readlink
-symlink
-usleep
-truncate
-ftruncate
-setsockopt
-getsockopt
-ioctl
-shutdown
-getpeername
-getsockname
-select
-sendmsg
-sendto
-send
-writev
-recvmsg
-recvfrom
-recv
-readv
-accept
-listen
-connect
-bind
-socketpair
-socket
-getdtablesize
-mktime__FPQ23std2tm		# mktime(std::tm*)
-gmtime__FPCUl		# gmtime(const unsigned long*)
-localtime__FPCUl		# localtime(const unsigned long*)
-__dt__12GUSISpecificFv		# GUSISpecific::~GUSISpecific()
-__dt__40GUSISpecificData<Q23std2tm,&.GUSIKillTM>Fv		# GUSISpecificData<std::tm, &.GUSIKillTM>::~GUSISpecificData()
-GUSIKillTM
-gettimeofday
-time__FPUl		# time(unsigned long*)
-closedir
-rewinddir
-seekdir
-telldir
-readdir
-opendir
-access
-lstat
-dup2
-dup
-fsync
-pipe
-sDefault__15GUSIPThreadAttr		# GUSIPThreadAttr::sDefault
-sDefaultAttr__15GUSIPThreadAttr		# GUSIPThreadAttr::sDefaultAttr
-sched_yield
-pthread_once
-pthread_equal
-pthread_self
-pthread_cond_broadcast
-pthread_cond_signal
-pthread_cond_timedwait
-pthread_cond_wait
-pthread_cond_destroy
-pthread_cond_init
-pthread_condattr_destroy
-pthread_condattr_init
-pthread_mutex_unlock
-pthread_mutex_trylock
-pthread_mutex_lock
-pthread_mutex_destroy
-pthread_mutex_init
-pthread_mutexattr_destroy
-pthread_mutexattr_init
-pthread_setspecific
-pthread_getspecific
-pthread_key_delete
-pthread_key_create
-pthread_exit
-pthread_join
-pthread_detach
-pthread_create
-pthread_attr_setstacksize
-pthread_attr_getstacksize
-pthread_attr_setdetachstate
-pthread_attr_getdetachstate
-pthread_attr_destroy
-pthread_attr_init
-sBlocks__Q216GUSIContextQueue7element		# GUSIContextQueue::element::sBlocks
-Wakeup__16GUSIContextQueueFv		# GUSIContextQueue::Wakeup()
-push_back__16GUSIContextQueueFP11GUSIContext		# GUSIContextQueue::push_back(GUSIContext*)
-remove__16GUSIContextQueueFP11GUSIContext		# GUSIContextQueue::remove(GUSIContext*)
-__dt__16GUSIContextQueueFv		# GUSIContextQueue::~GUSIContextQueue()
-__dl__Q216GUSIContextQueue7elementFPvUl		# GUSIContextQueue::element::operator delete(void*,unsigned long)
-__nw__Q216GUSIContextQueue7elementFUl		# GUSIContextQueue::element::operator new(unsigned long)
-__vt__14GUSINullSocket		# GUSINullSocket::__vt
-__vt__14GUSINullDevice		# GUSINullDevice::__vt
-sInstance__14GUSINullDevice		# GUSINullDevice::sInstance
-__dt__14GUSINullDeviceFv		# GUSINullDevice::~GUSINullDevice()
-__dt__14GUSINullSocketFv		# GUSINullSocket::~GUSINullSocket()
-Supports__14GUSINullSocketFQ210GUSISocket12ConfigOption		# GUSINullSocket::Supports(GUSISocket::ConfigOption)
-fstat__14GUSINullSocketFP4stat		# GUSINullSocket::fstat(stat*)
-write__14GUSINullSocketFRC12GUSIGatherer		# GUSINullSocket::write(const GUSIGatherer&)
-read__14GUSINullSocketFRC13GUSIScatterer		# GUSINullSocket::read(const GUSIScatterer&)
-__ct__14GUSINullSocketFv		# GUSINullSocket::GUSINullSocket()
-stat__14GUSINullDeviceFR13GUSIFileTokenP4stat		# GUSINullDevice::stat(GUSIFileToken&,stat*)
-open__14GUSINullDeviceFv		# GUSINullDevice::open()
-open__14GUSINullDeviceFR13GUSIFileTokeni		# GUSINullDevice::open(GUSIFileToken&,int)
-Want__14GUSINullDeviceFR13GUSIFileToken		# GUSINullDevice::Want(GUSIFileToken&)
-GUSIwithNullSockets
-gGUSIInetFactories
-GUSIwithInetSockets
-sProtocols__9GUSINetDB		# GUSINetDB::sProtocols
-sServices__20GUSIBuiltinServiceDB		# GUSIBuiltinServiceDB::sServices
-__vt__20GUSIBuiltinServiceDB		# GUSIBuiltinServiceDB::__vt
-__vt__17GUSIFileServiceDB		# GUSIFileServiceDB::__vt
-__vt__13GUSIServiceDB		# GUSIServiceDB::__vt
-__vt__9GUSINetDB		# GUSINetDB::__vt
-sInstance__13GUSIServiceDB		# GUSIServiceDB::sInstance
-sData__13GUSIServiceDB		# GUSIServiceDB::sData
-sEntry__20GUSIBuiltinServiceDB		# GUSIBuiltinServiceDB::sEntry
-sInstance__9GUSINetDB		# GUSINetDB::sInstance
-__dt__64GUSISpecificData<Q213GUSIServiceDB4Data,&.GUSIKillServiceDBData>Fv		# GUSISpecificData<GUSIServiceDB::Data, &.GUSIKillServiceDBData>::~GUSISpecificData()
-__dt__80GUSISpecificData<Q220GUSIBuiltinServiceDB5Entry,&.GUSIKillBuiltinServiceDBEntry>Fv		# GUSISpecificData<GUSIBuiltinServiceDB::Entry, &.GUSIKillBuiltinServiceDBEntry>::~GUSISpecificData()
-get__64GUSISpecificData<Q213GUSIServiceDB4Data,&.GUSIKillServiceDBData>FP17GUSISpecificTable		# GUSISpecificData<GUSIServiceDB::Data, &.GUSIKillServiceDBData>::get(GUSISpecificTable*)
-get__80GUSISpecificData<Q220GUSIBuiltinServiceDB5Entry,&.GUSIKillBuiltinServiceDBEntry>FP17GUSISpecificTable		# GUSISpecificData<GUSIBuiltinServiceDB::Entry, &.GUSIKillBuiltinServiceDBEntry>::get(GUSISpecificTable*)
-__dt__9GUSINetDBFv		# GUSINetDB::~GUSINetDB()
-__dt__17GUSIFileServiceDBFv		# GUSIFileServiceDB::~GUSIFileServiceDB()
-__dt__20GUSIBuiltinServiceDBFv		# GUSIBuiltinServiceDB::~GUSIBuiltinServiceDB()
-__ct__11GUSIserventFv		# GUSIservent::GUSIservent()
-GUSIKillHostEnt
-Alloc__11GUSIhostentFUl		# GUSIhostent::Alloc(unsigned long)
-__ct__11GUSIhostentFv		# GUSIhostent::GUSIhostent()
-Instance__13GUSIServiceDBFv		# GUSIServiceDB::Instance()
-GUSIKillServiceDBData
-Next__20GUSIBuiltinServiceDBFv		# GUSIBuiltinServiceDB::Next()
-Reset__20GUSIBuiltinServiceDBFv		# GUSIBuiltinServiceDB::Reset()
-GUSIKillBuiltinServiceDBEntry
-Next__17GUSIFileServiceDBFv		# GUSIFileServiceDB::Next()
-Reset__17GUSIFileServiceDBFv		# GUSIFileServiceDB::Reset()
-__dt__13GUSIServiceDBFv		# GUSIServiceDB::~GUSIServiceDB()
-__ct__17GUSIFileServiceDBFPQ23std5_FILE		# GUSIFileServiceDB::GUSIFileServiceDB(std::_FILE*)
-Instance__17GUSIFileServiceDBFv		# GUSIFileServiceDB::Instance()
-getprotobynumber__9GUSINetDBFi		# GUSINetDB::getprotobynumber(int)
-getprotobyname__9GUSINetDBFPCc		# GUSINetDB::getprotobyname(const char*)
-endprotoent__9GUSINetDBFv		# GUSINetDB::endprotoent()
-setprotoent__9GUSINetDBFi		# GUSINetDB::setprotoent(int)
-getprotoent__9GUSINetDBFv		# GUSINetDB::getprotoent()
-getservbyport__9GUSINetDBFiPCc		# GUSINetDB::getservbyport(int,const char*)
-getservbyname__9GUSINetDBFPCcPCc		# GUSINetDB::getservbyname(const char*,const char*)
-endservent__9GUSINetDBFv		# GUSINetDB::endservent()
-setservent__9GUSINetDBFi		# GUSINetDB::setservent(int)
-getservent__9GUSINetDBFv		# GUSINetDB::getservent()
-gethostname__9GUSINetDBFPci		# GUSINetDB::gethostname(char*,int)
-gethostid__9GUSINetDBFv		# GUSINetDB::gethostid()
-inet_addr__9GUSINetDBFPCc		# GUSINetDB::inet_addr(const char*)
-inet_ntoa__9GUSINetDBF7in_addr		# GUSINetDB::inet_ntoa(in_addr)
-gethostbyaddr__9GUSINetDBFPCvUli		# GUSINetDB::gethostbyaddr(const void*,unsigned long,int)
-gethostbyname__9GUSINetDBFPCc		# GUSINetDB::gethostbyname(const char*)
-__ct__9GUSINetDBFv		# GUSINetDB::GUSINetDB()
-Instance__9GUSINetDBFv		# GUSINetDB::Instance()
-uDNRDone
-sResolverState__11GUSIMTNetDB		# GUSIMTNetDB::sResolverState
-__vt__11GUSIMTNetDB		# GUSIMTNetDB::__vt
-get__49GUSISpecificData<11GUSIhostent,&.GUSIKillHostEnt>FP17GUSISpecificTable		# GUSISpecificData<GUSIhostent, &.GUSIKillHostEnt>::get(GUSISpecificTable*)
-__dt__11GUSIMTNetDBFv		# GUSIMTNetDB::~GUSIMTNetDB()
-gethostid__11GUSIMTNetDBFv		# GUSIMTNetDB::gethostid()
-inet_ntoa__11GUSIMTNetDBF7in_addr		# GUSIMTNetDB::inet_ntoa(in_addr)
-gethostbyaddr__11GUSIMTNetDBFPCvUli		# GUSIMTNetDB::gethostbyaddr(const void*,unsigned long,int)
-gethostbyname__11GUSIMTNetDBFPCc		# GUSIMTNetDB::gethostbyname(const char*)
-Resolver__11GUSIMTNetDBFv		# GUSIMTNetDB::Resolver()
-__dt__49GUSISpecificData<11GUSIhostent,&.GUSIKillHostEnt>Fv		# GUSISpecificData<GUSIhostent, &.GUSIKillHostEnt>::~GUSISpecificData()
-Instantiate__11GUSIMTNetDBFv		# GUSIMTNetDB::Instantiate()
-GUSIFSMoveRename
-GUSIFSCatMove
-GUSIFSCatMove__FPC6FSSpecl		# GUSIFSCatMove(const FSSpec*,long)
-GUSIFSRename
-GUSIFSRstFLock
-GUSIFSSetFLock
-GUSIFSDirCreate
-GUSIFSDelete
-GUSIFSCreate
-GUSIFSCreate__FPC6FSSpec		# GUSIFSCreate(const FSSpec*)
-GUSIFSGetVolParms
-GUSIFSHGetVolParms__FP33GUSIIOPBWrapper<14HParamBlockRec>		# GUSIFSHGetVolParms(GUSIIOPBWrapper<HParamBlockRec>*)
-GUSIFSOpenRF
-GUSIFSOpenDF
-GUSIFSSetFInfo
-GUSIFSGetFInfo
-GUSIFSHSetFInfo__FP33GUSIIOPBWrapper<14HParamBlockRec>		# GUSIFSHSetFInfo(GUSIIOPBWrapper<HParamBlockRec>*)
-GUSIFSHGetFInfo__FP33GUSIIOPBWrapper<14HParamBlockRec>		# GUSIFSHGetFInfo(GUSIIOPBWrapper<HParamBlockRec>*)
-GUSIFSOpenDriver
-GUSIFSOpen__FP32GUSIIOPBWrapper<13ParamBlockRec>		# GUSIFSOpen(GUSIIOPBWrapper<ParamBlockRec>*)
-GUSIFSHGetVInfo__FP33GUSIIOPBWrapper<14HParamBlockRec>		# GUSIFSHGetVInfo(GUSIIOPBWrapper<HParamBlockRec>*)
-GUSIFSGetVInfo__FP32GUSIIOPBWrapper<13ParamBlockRec>		# GUSIFSGetVInfo(GUSIIOPBWrapper<ParamBlockRec>*)
-GUSIFSGetFCBInfo__FP26GUSIIOPBWrapper<8FCBPBRec>		# GUSIFSGetFCBInfo(GUSIIOPBWrapper<FCBPBRec>*)
-GUSIFSSetCatInfo__FP30GUSIIOPBWrapper<11GUSICatInfo>		# GUSIFSSetCatInfo(GUSIIOPBWrapper<GUSICatInfo>*)
-GUSIFSGetCatInfo__FP30GUSIIOPBWrapper<11GUSICatInfo>		# GUSIFSGetCatInfo(GUSIIOPBWrapper<GUSICatInfo>*)
-__vt__16GUSIMTUdpFactory		# GUSIMTUdpFactory::__vt
-__vt__15GUSIMTUdpSocket		# GUSIMTUdpSocket::__vt
-instance__16GUSIMTUdpFactory		# GUSIMTUdpFactory::instance
-sRecvProc__15GUSIMTUdpSocket		# GUSIMTUdpSocket::sRecvProc
-sSendProc__15GUSIMTUdpSocket		# GUSIMTUdpSocket::sSendProc
-__dt__16GUSIMTUdpFactoryFv		# GUSIMTUdpFactory::~GUSIMTUdpFactory()
-GUSIwithMTUdpSockets
-socket__16GUSIMTUdpFactoryFiii		# GUSIMTUdpFactory::socket(int,int,int)
-__dt__15GUSIMTUdpSocketFv		# GUSIMTUdpSocket::~GUSIMTUdpSocket()
-shutdown__15GUSIMTUdpSocketFi		# GUSIMTUdpSocket::shutdown(int)
-select__15GUSIMTUdpSocketFPbPbPb		# GUSIMTUdpSocket::select(bool*,bool*,bool*)
-sendto__15GUSIMTUdpSocketFRC12GUSIGathereriPCvUi		# GUSIMTUdpSocket::sendto(const GUSIGatherer&,int,const void*,unsigned int)
-recvfrom__15GUSIMTUdpSocketFRC13GUSIScattereriPvPUi		# GUSIMTUdpSocket::recvfrom(const GUSIScatterer&,int,void*,unsigned int*)
-connect__15GUSIMTUdpSocketFPvUi		# GUSIMTUdpSocket::connect(void*,unsigned int)
-__ct__15GUSIMTUdpSocketFv		# GUSIMTUdpSocket::GUSIMTUdpSocket()
-CreateStream__15GUSIMTUdpSocketFv		# GUSIMTUdpSocket::CreateStream()
-GUSIMTURecv__FP15GUSIMTUdpSocket		# GUSIMTURecv(GUSIMTUdpSocket*)
-GUSIMTURecvDone__FP7UDPiopb		# GUSIMTURecvDone(UDPiopb*)
-GUSIMTUSend__FP15GUSIMTUdpSocket		# GUSIMTUSend(GUSIMTUdpSocket*)
-GUSIMTUSendDone__FP7UDPiopb		# GUSIMTUSendDone(UDPiopb*)
-__vt__15GUSIOTUdpSocket		# GUSIOTUdpSocket::__vt
-__vt__17GUSIOTUdpStrategy		# GUSIOTUdpStrategy::__vt
-__vt__15GUSIOTTcpSocket		# GUSIOTTcpSocket::__vt
-__vt__17GUSIOTTcpStrategy		# GUSIOTTcpStrategy::__vt
-__vt__18GUSIOTInetStrategy		# GUSIOTInetStrategy::__vt
-__vt__16GUSIOTUdpFactory		# GUSIOTUdpFactory::__vt
-__vt__16GUSIOTTcpFactory		# GUSIOTTcpFactory::__vt
-__vt__13GUSIOTFactory		# GUSIOTFactory::__vt
-sInstance__16GUSIOTUdpFactory		# GUSIOTUdpFactory::sInstance
-sInstance__16GUSIOTTcpFactory		# GUSIOTTcpFactory::sInstance
-__dt__16GUSIOTTcpFactoryFv		# GUSIOTTcpFactory::~GUSIOTTcpFactory()
-__dt__16GUSIOTUdpFactoryFv		# GUSIOTUdpFactory::~GUSIOTUdpFactory()
-__dt__17GUSIOTTcpStrategyFv		# GUSIOTTcpStrategy::~GUSIOTTcpStrategy()
-__dt__15GUSIOTTcpSocketFv		# GUSIOTTcpSocket::~GUSIOTTcpSocket()
-__dt__17GUSIOTUdpStrategyFv		# GUSIOTUdpStrategy::~GUSIOTUdpStrategy()
-__dt__15GUSIOTUdpSocketFv		# GUSIOTUdpSocket::~GUSIOTUdpSocket()
-GUSIwithOTInetSockets
-GUSIwithOTUdpSockets
-GUSIwithOTTcpSockets
-ioctl__15GUSIOTUdpSocketFUiPc		# GUSIOTUdpSocket::ioctl(unsigned int,char*)
-setsockopt__15GUSIOTUdpSocketFiiPvUi		# GUSIOTUdpSocket::setsockopt(int,int,void*,unsigned int)
-getsockopt__15GUSIOTUdpSocketFiiPvPUi		# GUSIOTUdpSocket::getsockopt(int,int,void*,unsigned int*)
-ConfigPath__17GUSIOTUdpStrategyFv		# GUSIOTUdpStrategy::ConfigPath()
-ioctl__15GUSIOTTcpSocketFUiPc		# GUSIOTTcpSocket::ioctl(unsigned int,char*)
-setsockopt__15GUSIOTTcpSocketFiiPvUi		# GUSIOTTcpSocket::setsockopt(int,int,void*,unsigned int)
-getsockopt__15GUSIOTTcpSocketFiiPvPUi		# GUSIOTTcpSocket::getsockopt(int,int,void*,unsigned int*)
-ConfigPath__17GUSIOTTcpStrategyFv		# GUSIOTTcpStrategy::ConfigPath()
-DoIoctl__18GUSIOTMInetOptionsFPiUiPc		# GUSIOTMInetOptions::DoIoctl(int*,unsigned int,char*)
-DoSetSockOpt__18GUSIOTMInetOptionsFPiP9TEndpointiiPvUi		# GUSIOTMInetOptions::DoSetSockOpt(int*,TEndpoint*,int,int,void*,unsigned int)
-DoGetSockOpt__18GUSIOTMInetOptionsFPiP9TEndpointiiPvPUi		# GUSIOTMInetOptions::DoGetSockOpt(int*,TEndpoint*,int,int,void*,unsigned int*)
-UnpackAddress__18GUSIOTInetStrategyFRC7TNetbufPvPUi		# GUSIOTInetStrategy::UnpackAddress(const TNetbuf&,void*,unsigned int*)
-PackAddress__18GUSIOTInetStrategyFPCvUiR7TNetbufb		# GUSIOTInetStrategy::PackAddress(const void*,unsigned int,TNetbuf&,bool)
-socket__16GUSIOTUdpFactoryFiii		# GUSIOTUdpFactory::socket(int,int,int)
-Strategy__16GUSIOTUdpFactoryFiii		# GUSIOTUdpFactory::Strategy(int,int,int)
-__dt__21GUSIOTDatagramFactoryFv		# GUSIOTDatagramFactory::~GUSIOTDatagramFactory()
-Instance__16GUSIOTUdpFactoryFv		# GUSIOTUdpFactory::Instance()
-socket__16GUSIOTTcpFactoryFiii		# GUSIOTTcpFactory::socket(int,int,int)
-__dt__18GUSIOTInetStrategyFv		# GUSIOTInetStrategy::~GUSIOTInetStrategy()
-Strategy__16GUSIOTTcpFactoryFiii		# GUSIOTTcpFactory::Strategy(int,int,int)
-__dt__13GUSIOTFactoryFv		# GUSIOTFactory::~GUSIOTFactory()
-__dt__19GUSIOTStreamFactoryFv		# GUSIOTStreamFactory::~GUSIOTStreamFactory()
-Instance__16GUSIOTTcpFactoryFv		# GUSIOTTcpFactory::Instance()
-__vt__11GUSIOTNetDB		# GUSIOTNetDB::__vt
-__dt__11GUSIOTNetDBFv		# GUSIOTNetDB::~GUSIOTNetDB()
-gethostid__11GUSIOTNetDBFv		# GUSIOTNetDB::gethostid()
-inet_ntoa__11GUSIOTNetDBF7in_addr		# GUSIOTNetDB::inet_ntoa(in_addr)
-gethostbyaddr__11GUSIOTNetDBFPCvUli		# GUSIOTNetDB::gethostbyaddr(const void*,unsigned long,int)
-gethostbyname__11GUSIOTNetDBFPCc		# GUSIOTNetDB::gethostbyname(const char*)
-Resolver__11GUSIOTNetDBFv		# GUSIOTNetDB::Resolver()
-Instantiate__11GUSIOTNetDBFv		# GUSIOTNetDB::Instantiate()
-__ct__11GUSIOTNetDBFv		# GUSIOTNetDB::GUSIOTNetDB()
-GUSIOTNetDBNotify
-__vt__20GUSIOTDatagramSocket		# GUSIOTDatagramSocket::__vt
-__vt__18GUSIOTStreamSocket		# GUSIOTStreamSocket::__vt
-__vt__12GUSIOTSocket		# GUSIOTSocket::__vt
-__vt__14GUSIOTStrategy		# GUSIOTStrategy::__vt
-__vt__21GUSIOTDatagramFactory		# GUSIOTDatagramFactory::__vt
-__vt__19GUSIOTStreamFactory		# GUSIOTStreamFactory::__vt
-sOK__13GUSIOTFactory		# GUSIOTFactory::sOK
-select__20GUSIOTDatagramSocketFPbPbPb		# GUSIOTDatagramSocket::select(bool*,bool*,bool*)
-sendto__20GUSIOTDatagramSocketFRC12GUSIGathereriPCvUi		# GUSIOTDatagramSocket::sendto(const GUSIGatherer&,int,const void*,unsigned int)
-recvfrom__20GUSIOTDatagramSocketFRC13GUSIScattereriPvPUi		# GUSIOTDatagramSocket::recvfrom(const GUSIScatterer&,int,void*,unsigned int*)
-connect__20GUSIOTDatagramSocketFPvUi		# GUSIOTDatagramSocket::connect(void*,unsigned int)
-getpeername__20GUSIOTDatagramSocketFPvPUi		# GUSIOTDatagramSocket::getpeername(void*,unsigned int*)
-BindIfUnbound__20GUSIOTDatagramSocketFv		# GUSIOTDatagramSocket::BindIfUnbound()
-__dt__20GUSIOTDatagramSocketFv		# GUSIOTDatagramSocket::~GUSIOTDatagramSocket()
-Clone__20GUSIOTDatagramSocketFv		# GUSIOTDatagramSocket::Clone()
-__ct__20GUSIOTDatagramSocketFP14GUSIOTStrategy		# GUSIOTDatagramSocket::GUSIOTDatagramSocket(GUSIOTStrategy*)
-shutdown__18GUSIOTStreamSocketFi		# GUSIOTStreamSocket::shutdown(int)
-select__18GUSIOTStreamSocketFPbPbPb		# GUSIOTStreamSocket::select(bool*,bool*,bool*)
-sendto__18GUSIOTStreamSocketFRC12GUSIGathereriPCvUi		# GUSIOTStreamSocket::sendto(const GUSIGatherer&,int,const void*,unsigned int)
-__dt__Q210GUSISocket17AddContextInScopeFv		# GUSISocket::AddContextInScope::~AddContextInScope()
-recvfrom__18GUSIOTStreamSocketFRC13GUSIScattereriPvPUi		# GUSIOTStreamSocket::recvfrom(const GUSIScatterer&,int,void*,unsigned int*)
-connect__18GUSIOTStreamSocketFPvUi		# GUSIOTStreamSocket::connect(void*,unsigned int)
-accept__18GUSIOTStreamSocketFPvPUi		# GUSIOTStreamSocket::accept(void*,unsigned int*)
-getpeername__18GUSIOTStreamSocketFPvPUi		# GUSIOTStreamSocket::getpeername(void*,unsigned int*)
-listen__18GUSIOTStreamSocketFi		# GUSIOTStreamSocket::listen(int)
-MopupEvents__18GUSIOTStreamSocketFv		# GUSIOTStreamSocket::MopupEvents()
-__dt__18GUSIOTStreamSocketFv		# GUSIOTStreamSocket::~GUSIOTStreamSocket()
-close__18GUSIOTStreamSocketFv		# GUSIOTStreamSocket::close()
-Clone__18GUSIOTStreamSocketFv		# GUSIOTStreamSocket::Clone()
-__ct__18GUSIOTStreamSocketFP14GUSIOTStrategy		# GUSIOTStreamSocket::GUSIOTStreamSocket(GUSIOTStrategy*)
-Supports__12GUSIOTSocketFQ210GUSISocket12ConfigOption		# GUSIOTSocket::Supports(GUSISocket::ConfigOption)
-setsockopt__12GUSIOTSocketFiiPvUi		# GUSIOTSocket::setsockopt(int,int,void*,unsigned int)
-getsockopt__12GUSIOTSocketFiiPvPUi		# GUSIOTSocket::getsockopt(int,int,void*,unsigned int*)
-ioctl__12GUSIOTSocketFUiPc		# GUSIOTSocket::ioctl(unsigned int,char*)
-fcntl__12GUSIOTSocketFiPc		# GUSIOTSocket::fcntl(int,char*)
-shutdown__12GUSIOTSocketFi		# GUSIOTSocket::shutdown(int)
-getsockname__12GUSIOTSocketFPvPUi		# GUSIOTSocket::getsockname(void*,unsigned int*)
-Unbind__12GUSIOTSocketFv		# GUSIOTSocket::Unbind()
-BindToAddress__12GUSIOTSocketFP20GUSIOTAddr<5TBind,1>		# GUSIOTSocket::BindToAddress(GUSIOTAddr<TBind, 1>*)
-bind__12GUSIOTSocketFPvUi		# GUSIOTSocket::bind(void*,unsigned int)
-__dt__12GUSIOTSocketFv		# GUSIOTSocket::~GUSIOTSocket()
-close__12GUSIOTSocketFv		# GUSIOTSocket::close()
-__ct__12GUSIOTSocketFP14GUSIOTStrategy		# GUSIOTSocket::GUSIOTSocket(GUSIOTStrategy*)
-__dt__Q212GUSIOTSocket4LockFv		# GUSIOTSocket::Lock::~Lock()
-MopupEvents__12GUSIOTSocketFv		# GUSIOTSocket::MopupEvents()
-CopyAddress__14GUSIOTStrategyFRC7TNetbufR7TNetbuf		# GUSIOTStrategy::CopyAddress(const TNetbuf&,TNetbuf&)
-__dt__14GUSIOTStrategyFv		# GUSIOTStrategy::~GUSIOTStrategy()
-CreateConfiguration__14GUSIOTStrategyFv		# GUSIOTStrategy::CreateConfiguration()
-socket__21GUSIOTDatagramFactoryFiii		# GUSIOTDatagramFactory::socket(int,int,int)
-socket__19GUSIOTStreamFactoryFiii		# GUSIOTStreamFactory::socket(int,int,int)
-Initialize__13GUSIOTFactoryFv		# GUSIOTFactory::Initialize()
-GUSIOTNotify
-__vt__14GUSIDConSocket		# GUSIDConSocket::__vt
-__vt__14GUSIDConDevice		# GUSIDConDevice::__vt
-sInstance__14GUSIDConDevice		# GUSIDConDevice::sInstance
-__dt__14GUSIDConDeviceFv		# GUSIDConDevice::~GUSIDConDevice()
-isatty__14GUSIDConSocketFv		# GUSIDConSocket::isatty()
-Supports__14GUSIDConSocketFQ210GUSISocket12ConfigOption		# GUSIDConSocket::Supports(GUSISocket::ConfigOption)
-write__14GUSIDConSocketFRC12GUSIGatherer		# GUSIDConSocket::write(const GUSIGatherer&)
-read__14GUSIDConSocketFRC13GUSIScatterer		# GUSIDConSocket::read(const GUSIScatterer&)
-__dt__14GUSIDConSocketFv		# GUSIDConSocket::~GUSIDConSocket()
-__ct__14GUSIDConSocketFPCc		# GUSIDConSocket::GUSIDConSocket(const char*)
-open__14GUSIDConDeviceFR13GUSIFileTokeni		# GUSIDConDevice::open(GUSIFileToken&,int)
-Want__14GUSIDConDeviceFR13GUSIFileToken		# GUSIDConDevice::Want(GUSIFileToken&)
-GUSIwithDConSockets
-__vt__13GUSIPPCSocket		# GUSIPPCSocket::__vt
-__vt__14GUSIPPCFactory		# GUSIPPCFactory::__vt
-sDoneProc__13GUSIPPCSocket		# GUSIPPCSocket::sDoneProc
-sListenProc__13GUSIPPCSocket		# GUSIPPCSocket::sListenProc
-sRecvProc__13GUSIPPCSocket		# GUSIPPCSocket::sRecvProc
-sSendProc__13GUSIPPCSocket		# GUSIPPCSocket::sSendProc
-sInstance__14GUSIPPCFactory		# GUSIPPCFactory::sInstance
-__dt__14GUSIPPCFactoryFv		# GUSIPPCFactory::~GUSIPPCFactory()
-GUSIPPCListen__FP13GUSIPPCSocket		# GUSIPPCListen(GUSIPPCSocket*)
-GUSIPPCRecv__FP13GUSIPPCSocket		# GUSIPPCRecv(GUSIPPCSocket*)
-GUSIPPCSend__FP13GUSIPPCSocket		# GUSIPPCSend(GUSIPPCSocket*)
-__dt__13GUSIPPCSocketFv		# GUSIPPCSocket::~GUSIPPCSocket()
-shutdown__13GUSIPPCSocketFi		# GUSIPPCSocket::shutdown(int)
-select__13GUSIPPCSocketFPbPbPb		# GUSIPPCSocket::select(bool*,bool*,bool*)
-sendto__13GUSIPPCSocketFRC12GUSIGathereriPCvUi		# GUSIPPCSocket::sendto(const GUSIGatherer&,int,const void*,unsigned int)
-recvfrom__13GUSIPPCSocketFRC13GUSIScattereriPvPUi		# GUSIPPCSocket::recvfrom(const GUSIScatterer&,int,void*,unsigned int*)
-__ct__13GUSIPPCSocketFP13GUSIPPCSocketRQ213GUSIPPCSocket8Listener		# GUSIPPCSocket::GUSIPPCSocket(GUSIPPCSocket*,GUSIPPCSocket::Listener&)
-accept__13GUSIPPCSocketFPvPUi		# GUSIPPCSocket::accept(void*,unsigned int*)
-listen__13GUSIPPCSocketFi		# GUSIPPCSocket::listen(int)
-connect__13GUSIPPCSocketFPvUi		# GUSIPPCSocket::connect(void*,unsigned int)
-bind__13GUSIPPCSocketFPvUi		# GUSIPPCSocket::bind(void*,unsigned int)
-__ct__13GUSIPPCSocketFv		# GUSIPPCSocket::GUSIPPCSocket()
-GUSIPPCDone__FP16PPCParamBlockRec		# GUSIPPCDone(PPCParamBlockRec*)
-GUSIPPCListenDone__FP16PPCParamBlockRec		# GUSIPPCListenDone(PPCParamBlockRec*)
-GUSIPPCRecvDone__FP16PPCParamBlockRec		# GUSIPPCRecvDone(PPCParamBlockRec*)
-GUSIPPCSendDone__FP16PPCParamBlockRec		# GUSIPPCSendDone(PPCParamBlockRec*)
-SetupListener__13GUSIPPCSocketFRQ213GUSIPPCSocket8Listener		# GUSIPPCSocket::SetupListener(GUSIPPCSocket::Listener&)
-socket__14GUSIPPCFactoryFiii		# GUSIPPCFactory::socket(int,int,int)
-GUSIwithPPCSockets
-__vt__9GUSITimer		# GUSITimer::__vt
-sTimerQueue__9GUSITimer		# GUSITimer::sTimerQueue
-sTimerProc__9GUSITimer		# GUSITimer::sTimerProc
-sTimeZone__8GUSITime		# GUSITime::sTimeZone
-sTimeOffset__8GUSITime		# GUSITime::sTimeOffset
-__dt__53GUSISpecificData<Q29GUSITimer5Queue,&.GUSIKillTimers>Fv		# GUSISpecificData<GUSITimer::Queue, &.GUSIKillTimers>::~GUSISpecificData()
-get__53GUSISpecificData<Q29GUSITimer5Queue,&.GUSIKillTimers>FP17GUSISpecificTable		# GUSISpecificData<GUSITimer::Queue, &.GUSIKillTimers>::get(GUSISpecificTable*)
-__dt__9GUSITimerFv		# GUSITimer::~GUSITimer()
-Kill__9GUSITimerFv		# GUSITimer::Kill()
-Sleep__9GUSITimerFlb		# GUSITimer::Sleep(long,bool)
-__ct__9GUSITimerFbP11GUSIContext		# GUSITimer::GUSITimer(bool,GUSIContext*)
-GUSIKillTimers
-__dt__Q29GUSITimer10TimerQueueFv		# GUSITimer::TimerQueue::~TimerQueue()
-Wakeup__9GUSITimerFv		# GUSITimer::Wakeup()
-__dt__Q211GUSIProcess7A5SaverFv		# GUSIProcess::A5Saver::~A5Saver()
-LocalTime__8GUSITimeFv		# GUSITime::LocalTime()
-GMTime__8GUSITimeFv		# GUSITime::GMTime()
-Zone__8GUSITimeFv		# GUSITime::Zone()
-Now__8GUSITimeFv		# GUSITime::Now()
-__ct__8GUSITimeFRCQ23std2tm		# GUSITime::GUSITime(const std::tm&)
-__opQ23std2tm__8GUSITimeFv		# GUSITime::operator std::tm()
-__op8timespec__8GUSITimeFv		# GUSITime::operator timespec()
-__op7timeval__8GUSITimeFv		# GUSITime::operator timeval()
-Deconstruct__8GUSITimeFRx		# GUSITime::Deconstruct(long long&)
-Get64__8GUSITimeFQ28GUSITime6Format		# GUSITime::Get64(GUSITime::Format)
-__ct__8GUSITimeFRC8timespec		# GUSITime::GUSITime(const timespec&)
-__ct__8GUSITimeFRC7timeval		# GUSITime::GUSITime(const timeval&)
-Construct__8GUSITimeFxQ28GUSITime6Format		# GUSITime::Construct(long long,GUSITime::Format)
-__vt__9GUSIAlarm		# GUSIAlarm::__vt
-__vt__14GUSISigFactory		# GUSISigFactory::__vt
-__vt__14GUSISigProcess		# GUSISigProcess::__vt
-__vt__14GUSISigContext		# GUSISigContext::__vt
-ualarm
-__dt__9GUSIAlarmFv		# GUSIAlarm::~GUSIAlarm()
-__dt__Q23std48auto_ptr<9GUSIAlarm,Q23std19_Single<9GUSIAlarm>>Fv		# std::auto_ptr<GUSIAlarm, std::_Single<GUSIAlarm>>::~auto_ptr()
-alarm
-Restart__9GUSIAlarmFl		# GUSIAlarm::Restart(long)
-Wakeup__9GUSIAlarmFv		# GUSIAlarm::Wakeup()
-_exit
-abort__Fv		# abort()
-sigwait
-pause
-sigsuspend
-sigprocmask
-pthread_sigmask
-sigpending
-sigaction
-pthread_kill
-sigismember
-sigfillset
-sigemptyset
-sigdelset
-sigaddset
-CreateSigContext__14GUSISigFactoryFPC14GUSISigContext		# GUSISigFactory::CreateSigContext(const GUSISigContext*)
-CreateSigProcess__14GUSISigFactoryFv		# GUSISigFactory::CreateSigProcess()
-__dt__14GUSISigFactoryFv		# GUSISigFactory::~GUSISigFactory()
-__dt__Q23std60auto_ptr<14GUSISigFactory,Q23std25_Single<14GUSISigFactory>>Fv		# std::auto_ptr<GUSISigFactory, std::_Single<GUSISigFactory>>::~auto_ptr()
-SetInstance__14GUSISigFactoryFP14GUSISigFactory		# GUSISigFactory::SetInstance(GUSISigFactory*)
-Instance__14GUSISigFactoryFv		# GUSISigFactory::Instance()
-DefaultAction__14GUSISigProcessFiRC9sigaction		# GUSISigProcess::DefaultAction(int,const sigaction&)
-Raise__14GUSISigProcessFiP14GUSISigContext		# GUSISigProcess::Raise(int,GUSISigContext*)
-Post__14GUSISigProcessFi		# GUSISigProcess::Post(int)
-ClearPending__14GUSISigProcessFUi		# GUSISigProcess::ClearPending(unsigned int)
-Pending__14GUSISigProcessCFv		# GUSISigProcess::Pending() const
-SetAction__14GUSISigProcessFiRC9sigaction		# GUSISigProcess::SetAction(int,const sigaction&)
-CantIgnore__14GUSISigProcessFi		# GUSISigProcess::CantIgnore(int)
-CantCatch__14GUSISigProcessFi		# GUSISigProcess::CantCatch(int)
-GetAction__14GUSISigProcessFi		# GUSISigProcess::GetAction(int)
-__dt__14GUSISigProcessFv		# GUSISigProcess::~GUSISigProcess()
-__ct__14GUSISigProcessFv		# GUSISigProcess::GUSISigProcess()
-Raise__14GUSISigContextFP14GUSISigProcessb		# GUSISigContext::Raise(GUSISigProcess*,bool)
-Ready__14GUSISigContextFP14GUSISigProcess		# GUSISigContext::Ready(GUSISigProcess*)
-Pending__14GUSISigContextCFP14GUSISigProcess		# GUSISigContext::Pending(GUSISigProcess*) const
-Post__14GUSISigContextFi		# GUSISigContext::Post(int)
-ClearPending__14GUSISigContextFUi		# GUSISigContext::ClearPending(unsigned int)
-Pending__14GUSISigContextCFv		# GUSISigContext::Pending() const
-SetBlocked__14GUSISigContextFUi		# GUSISigContext::SetBlocked(unsigned int)
-GetBlocked__14GUSISigContextCFv		# GUSISigContext::GetBlocked() const
-CantBlock__14GUSISigContextFv		# GUSISigContext::CantBlock()
-__dt__14GUSISigContextFv		# GUSISigContext::~GUSISigContext()
-__ct__14GUSISigContextFPC14GUSISigContext		# GUSISigContext::GUSISigContext(const GUSISigContext*)
+InitOpenTransportUtilities
+CloseOpenTransport
+OTRegisterAsClient
+OTUnregisterAsClient
+OTAllocMem
+InitOpenTransport
+OTAlloc
+OTOpenProvider
+OTOpenMapper
+OTOpenEndpoint
+OTAsyncOpenProvider
+OTAsyncOpenMapper
+OTAsyncOpenEndpoint
+OTTransferProviderOwnership
+OTWhoAmI
+OTCloseProvider
+t_alloc
+t_open
+t_close
+__OTExitPatch
+__gLibraryManager
+__gSLMGlobal
+__gOTClientRecord
+InitOpenTransportCommon
+OTCreateDeferredTask
+OTCreateSystemTask
+OTOpenProviderOnStream
+OTOpenEndpointOnStream
+OTStreamOpen
+OTAsyncStreamOpen
+stream_open
+stream_pipe
+OTStreamPipe
+OTAsyncOpenInternetServices
+OTOpenInternetServices
