#
# Copyright (c) 2013-2014 Apple Inc. All rights reserved.
#
# @APPLE_APACHE_LICENSE_HEADER_START@
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# @APPLE_APACHE_LICENSE_HEADER_END@
#

__dispatch_data_destructor_vm_deallocate __dispatch_data_destructor_munmap
__dispatch_queue_attrs __dispatch_queue_attr_concurrent
__dispatch_source_type_memorypressure __dispatch_source_type_memorystatus
_dispatch_assert_queue$V2 _dispatch_assert_queue
_dispatch_assert_queue_not$V2 _dispatch_assert_queue_not
_dispatch_queue_create_with_target$V2 _dispatch_queue_create_with_target
_dispatch_source_set_timer __dispatch_source_set_runloop_timer_4CF
