diff --git a/AFDO_SUMMARY.txt b/AFDO_SUMMARY.txt
index 3416f7d..f151655 100644
--- a/AFDO_SUMMARY.txt
+++ b/AFDO_SUMMARY.txt
@@ -8,18 +8,18 @@
 <watchdog_rs::Watchdog>::watch_with_optional
 <watchdog_rs::WatchPoint as core::ops::drop::Drop>::drop
 <rusqlite::statement::Statement>::value_ref
+<i32 as binder::parcel::parcelable::Serialize>::serialize
 <rusqlite::row::Row>::get::<usize, i32>
 <rusqlite::statement::Statement>::bind_parameters::<&[&dyn rusqlite::types::to_sql::ToSql]>
 <core::hash::sip::Hasher<core::hash::sip::Sip13Rounds> as core::hash::Hasher>::write
-<i32 as binder::parcel::parcelable::Serialize>::serialize
 <rusqlite::row::Rows as fallible_streaming_iterator::FallibleStreamingIterator>::advance
 <std::sys::pal::unix::time::Timespec>::sub_timespec
 <<std::thread::Builder>::spawn_unchecked_<<watchdog_rs::Watchdog>::spawn_thread::{closure#0}, ()>::{closure#1} as core::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
 <keystore2::security_level::KeystoreSecurityLevel as android_system_keystore2::aidl::android::system::keystore2::IKeystoreSecurityLevel::IKeystoreSecurityLevel>::createOperation
 <keystore2::service::KeystoreService as android_system_keystore2::aidl::android::system::keystore2::IKeystoreService::IKeystoreService>::getKeyEntry
 <keystore2::database::KeystoreDB>::load_key_components
-<android_logger::PlatformLogWriter as core::fmt::Write>::write_str
 <keystore2::database::KeystoreDB>::load_key_parameters
+<i32 as binder::parcel::parcelable::Deserialize>::deserialize
 
 
 sampling/libart_arm64.afdo
@@ -30,36 +30,36 @@
 art::CodeInfo::CodeInfo(unsigned char const*, unsigned long*)
 void art::gc::collector::MarkCompact::CompactPage<false>(art::mirror::Object*, unsigned int, unsigned char*, unsigned char*, bool)
 unsigned long art::mirror::Object::VisitRefsForCompaction<false, false, (art::VerifyObjectFlags)0, (art::ReadBarrierOption)2, art::gc::collector::MarkCompact::RefsUpdateVisitor<false, false, false>>(art::gc::collector::MarkCompact::RefsUpdateVisitor<false, false, false> const&, art::MemberOffset, art::MemberOffset)
-void art::ArtMethod::VisitRoots<(art::ReadBarrierOption)0, true, art::gc::collector::MarkCompact::RefFieldsVisitor const>(art::gc::collector::MarkCompact::RefFieldsVisitor const&, art::PointerSize)
 void art::StackVisitor::WalkStack<(art::StackVisitor::CountTransitions)0>(bool)
-art::gc::collector::MarkCompact::VisitRoots(art::mirror::CompressedReference<art::mirror::Object>**, unsigned long, art::RootInfo const&)
+void art::ArtMethod::VisitRoots<(art::ReadBarrierOption)0, true, art::gc::collector::MarkCompact::RefFieldsVisitor const>(art::gc::collector::MarkCompact::RefFieldsVisitor const&, art::PointerSize)
 void art::gc::collector::MarkCompact::UpdateNonMovingPage<false>(art::mirror::Object*, unsigned char*, long, art::gc::accounting::SpaceBitmap<8ul>*)
-art::CodeInfo::GetStackMapForNativePcOffset(unsigned long, art::InstructionSet) const::$_0::operator()(art::StackMap const&) const (.__uniq.171155442776020490977508519835528948535)
-art::StringFactory_newStringFromUtf8Bytes(_JNIEnv*, _jclass*, _jbyteArray*, int, int) (.__uniq.69738951954755148529605360874931303746)
-art::System_arraycopy(_JNIEnv*, _jclass*, _jobject*, int, _jobject*, int, int) (.__uniq.110717464938643750821353004938495288567)
+art::gc::collector::MarkCompact::VisitRoots(art::mirror::CompressedReference<art::mirror::Object>**, unsigned long, art::RootInfo const&)
 void art::Monitor::Lock<(art::LockReason)1>(art::Thread*)
-art::gc::collector::MarkCompact::CompactionPhase()
 NterpGetMethod
+art::System_arraycopy(_JNIEnv*, _jclass*, _jobject*, int, _jobject*, int, int) (.__uniq.110717464938643750821353004938495288567)
+art::gc::collector::MarkCompact::CompactionPhase()
+art::StringFactory_newStringFromUtf8Bytes(_JNIEnv*, _jclass*, _jbyteArray*, int, int) (.__uniq.69738951954755148529605360874931303746)
+art::gc::collector::MarkCompact::MarkingPhase()
 
 
 sampling/libartbase_arm64.afdo
 ====
 OpenArchiveInternal(ZipArchive*, char const*) (.__uniq.167259607556841407834158900965132344175)
+std::__1::__murmur2_or_cityhash<unsigned long, 64ul>::operator()[abi:nn200000](void const*, unsigned long) const
 CdEntryMapZip32<ZipStringOffset20>::AddToMap(std::__1::basic_string_view<char, std::__1::char_traits<char>>, unsigned char const*)
 art::MicroTime()
-art::BitVector::Union(art::BitVector const*)
-std::__1::__murmur2_or_cityhash<unsigned long, 64ul>::__hash_len_33_to_64[abi:nn200000](char const*, unsigned long)
-std::__1::__murmur2_or_cityhash<unsigned long, 64ul>::__hash_len_0_to_16[abi:nn200000](char const*, unsigned long)
 art::BitVector::NumSetBits(unsigned int const*, unsigned int)
-std::__1::__murmur2_or_cityhash<unsigned long, 64ul>::operator()[abi:nn200000](void const*, unsigned long) const
 art::ScopedArenaAllocator::~ScopedArenaAllocator()
 art::ScopedArenaAllocator::~ScopedArenaAllocator()
-art::ArenaBitVector::ArenaBitVector(art::ScopedArenaAllocator*, unsigned int, bool, art::ArenaAllocKind)
-art::ArenaBitVector::ArenaBitVector(art::ScopedArenaAllocator*, unsigned int, bool, art::ArenaAllocKind)
-art::BitVector::BitVector(unsigned int, bool, art::Allocator*)
-art::BitVector::BitVector(unsigned int, bool, art::Allocator*)
 art::ArenaAllocator::Contains(void const*) const
 art::InitLogging(char**, void (&)(char const*))::LogdLoggerLocked::operator()(android::base::LogId, android::base::LogSeverity, char const*, char const*, unsigned int, char const*) (.__uniq.85101241731209538599761260233789784808)
+CdEntryMapZip32<ZipStringOffset32>::AddToMap(std::__1::basic_string_view<char, std::__1::char_traits<char>>, unsigned char const*)
+art::SetThreadName(long, char const*)
+art::metrics::MetricsCounter<(art::metrics::DatumId)13, unsigned long>::Add(unsigned long)
+art::metrics::MetricsDeltaCounter<(art::metrics::DatumId)31, unsigned long>::Add(unsigned long)
+art::metrics::MetricsDeltaCounter<(art::metrics::DatumId)43, unsigned long>::Add(unsigned long)
+art::metrics::MetricsCounter<(art::metrics::DatumId)2, unsigned long>::Add(unsigned long)
+art::metrics::MetricsCounter<(art::metrics::DatumId)12, unsigned long>::Add(unsigned long)
 
 
 sampling/libbinder.afdo
@@ -72,12 +72,12 @@
 android::Parcel::writeInplace(unsigned long)
 android::Parcel::writeInterfaceToken(char16_t const*, unsigned long)
 android::Parcel::readInt32() const
-android::Parcel::writeInt64(long)
+android::Parcel::flattenBinder(android::sp<android::IBinder> const&)
 android::Parcel::unflattenBinder(android::sp<android::IBinder>*) const
+android::Parcel::writeInt64(long)
 android::Parcel::freeDataNoInit()
 android::Parcel::enforceInterface(char16_t const*, unsigned long, android::IPCThreadState*) const
 android::IPCThreadState::joinThreadPool(bool)
-android::Parcel::flattenBinder(android::sp<android::IBinder> const&)
 android::IPCThreadState::self()
 android::Parcel::readString16Inplace(unsigned long*) const
 
@@ -87,19 +87,19 @@
 PruneStatusT(int)
 AIBinder_transact
 AParcel_getDataPosition
+ABBinder::onTransact(unsigned int, android::Parcel const&, android::Parcel*, unsigned int)
 AParcel_readParcelableArray
 AParcel_writeInt32
 int ReadArray<char16_t>(AParcel const*, void*, bool (*)(void*, int, char16_t**))
-ABBinder::onTransact(unsigned int, android::Parcel const&, android::Parcel*, unsigned int)
 AParcel_readInt32
 AParcel_setDataPosition
 int WriteArray<char16_t>(AParcel*, char16_t const*, int)
 AIBinder_prepareTransaction
 AParcel_writeParcelableArray
-std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>::__shrink_or_extend[abi:nn200000](unsigned long)
+int android::Parcel::readData<std::__1::optional<android::os::ParcelFileDescriptor>, true>(std::__1::optional<android::os::ParcelFileDescriptor>*) const
 AParcel_readParcelFileDescriptor
 AStatus_delete
-int ReadArray<int>(AParcel const*, void*, bool (*)(void*, int, int**))
+std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>& std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>::__assign_no_alias<true>(char const*, unsigned long)
 
 
 sampling/libcrypto.afdo
@@ -108,38 +108,38 @@
 fiat_p256_mul(unsigned long*, unsigned long const*, unsigned long const*)
 fiat_p256_square(unsigned long*, unsigned long const*)
 fiat_p256_point_double(unsigned long*, unsigned long*, unsigned long*, unsigned long const*, unsigned long const*, unsigned long const*)
+fiat_p256_point_add(unsigned long*, unsigned long*, unsigned long*, unsigned long const*, unsigned long const*, unsigned long const*, int, unsigned long const*, unsigned long const*, unsigned long const*)
 x25519_scalar_mult_generic(unsigned char*, unsigned char const*, unsigned char const*) (.__uniq.270682305193998421616811476912110908079)
 x25519_ge_scalarmult_small_precomp
-fiat_p256_point_add(unsigned long*, unsigned long*, unsigned long*, unsigned long const*, unsigned long const*, unsigned long const*, int, unsigned long const*, unsigned long const*, unsigned long const*)
-sha256_final_impl(unsigned char*, unsigned long, sha256_state_st*)
 EVP_DecodeUpdate
-BN_mod_mul_montgomery
-CRYPTO_get_thread_local
+sha256_final_impl(unsigned char*, unsigned long, sha256_state_st*)
 bn_mul_add_words
+BN_mod_mul_montgomery
 crypto_md32_update(void (*)(unsigned int*, unsigned char const*, unsigned long), unsigned int*, unsigned char*, unsigned long, unsigned int*, unsigned int*, unsigned int*, unsigned char const*, unsigned long)
+BN_div
+CRYPTO_get_thread_local
+ec_GFp_nistp256_point_mul(ec_group_st const*, EC_JACOBIAN*, EC_JACOBIAN const*, EC_SCALAR const*)
 HMAC_Init_ex
-MD5_Final
-fe_loose_invert(fe*, fe_loose const*) (.__uniq.270682305193998421616811476912110908079)
 
 
 sampling/libgui.afdo
 ====
 android::TransactionCompletedListener::onTransactionCompleted(android::ListenerStats)
-android::SurfaceComposerClient::Transaction::getLayerState(android::sp<android::SurfaceControl> const&)
 android::BLASTBufferQueue::acquireNextBufferLocked(std::__1::optional<android::SurfaceComposerClient::Transaction*>)
-android::half::ftoh(float)
-android::BLASTBufferItemConsumer::addAndGetFrameTimestamps(android::NewFrameEventsEntry const*, android::FrameEventHistoryDelta*)
+void std::__1::vector<android::gui::WindowInfo, std::__1::allocator<android::gui::WindowInfo>>::__assign_with_size[abi:nn200000]<android::gui::WindowInfo*, android::gui::WindowInfo*>(android::gui::WindowInfo*, android::gui::WindowInfo*, long)
+android::SurfaceComposerClient::Transaction::getLayerState(android::sp<android::SurfaceControl> const&)
 android::BLASTBufferQueue::makeReleaseBufferCallbackThunk()::$_0::operator()(android::ReleaseCallbackId const&, android::sp<android::Fence> const&, std::__1::optional<unsigned int>) const (.__uniq.45450631312074835429881721991590974130)
-android::BufferQueueProducer::queueBuffer(int, android::IGraphicBufferProducer::QueueBufferInput const&, android::IGraphicBufferProducer::QueueBufferOutput*)
+android::layer_state_t::read(android::Parcel const&)
+android::SurfaceComposerClient::Transaction::setBuffer(android::sp<android::SurfaceControl> const&, android::sp<android::GraphicBuffer> const&, std::__1::optional<android::sp<android::Fence>> const&, std::__1::optional<unsigned long> const&, unsigned int, std::__1::function<void (android::ReleaseCallbackId const&, android::sp<android::Fence> const&, std::__1::optional<unsigned int>)>, long)
 android::BnSurfaceComposer::onTransact(unsigned int, android::Parcel const&, android::Parcel*, unsigned int)
-std::__1::pair<std::__1::__hash_iterator<std::__1::__hash_node<std::__1::__hash_value_type<android::sp<android::IBinder>, android::sp<android::SurfaceControl>>, void*>*>, bool> std::__1::__hash_table<std::__1::__hash_value_type<android::sp<android::IBinder>, android::sp<android::SurfaceControl>>, std::__1::__unordered_map_hasher<android::sp<android::IBinder>, std::__1::__hash_value_type<android::sp<android::IBinder>, android::sp<android::SurfaceControl>>, android::SurfaceComposerClient::IBinderHash, std::__1::equal_to<android::sp<android::IBinder>>, true>, std::__1::__unordered_map_equal<android::sp<android::IBinder>, std::__1::__hash_value_type<android::sp<android::IBinder>, android::sp<android::SurfaceControl>>, std::__1::equal_to<android::sp<android::IBinder>>, android::SurfaceComposerClient::IBinderHash, true>, std::__1::allocator<std::__1::__hash_value_type<android::sp<android::IBinder>, android::sp<android::SurfaceControl>>>>::__emplace_unique_key_args<android::sp<android::IBinder>, std::__1::pair<android::sp<android::IBinder> const, android::sp<android::SurfaceControl>> const&>(android::sp<android::IBinder> const&, std::__1::pair<android::sp<android::IBinder> const, android::sp<android::SurfaceControl>> const&)
-android::sp<android::IConsumerListener>::operator=(android::sp<android::IConsumerListener> const&)
-android::sp<android::IBinder>::operator=(android::sp<android::IBinder> const&)
-android::sp<android::IGraphicBufferProducer>::operator=(android::sp<android::IGraphicBufferProducer> const&)
-android::sp<android::StreamSplitter>::operator=(android::sp<android::StreamSplitter> const&)
-android::sp<android::IProducerListener>::operator=(android::sp<android::IProducerListener> const&)
-android::sp<android::gui::IWindowInfosReportedListener>::operator=(android::sp<android::gui::IWindowInfosReportedListener> const&)
+android::BLASTBufferItemConsumer::addAndGetFrameTimestamps(android::NewFrameEventsEntry const*, android::FrameEventHistoryDelta*)
+android::BufferQueueProducer::queueBuffer(int, android::IGraphicBufferProducer::QueueBufferInput const&, android::IGraphicBufferProducer::QueueBufferOutput*)
+android::SurfaceComposerClient::Transaction::apply(bool, bool)
+android::gui::WindowInfosUpdate::readFromParcel(android::Parcel const*)
 android::Surface::queueBuffer(ANativeWindowBuffer*, int, android::SurfaceQueueBufferOutput*)
+android::BLASTBufferQueue::transactionCallback(long, android::sp<android::Fence> const&, std::__1::vector<android::SurfaceControlStats, std::__1::allocator<android::SurfaceControlStats>> const&)
+android::layer_state_t::write(android::Parcel&) const
+android::Vector<android::ComposerState>::do_splat(void*, void const*, unsigned long) const
 
 
 sampling/libharfbuzz_ng.afdo
@@ -155,9 +155,9 @@
 hb_font_t::get_glyph_h_origin_with_fallback(unsigned int, int*, int*)
 OT::Layout::GSUB_impl::Ligature<OT::Layout::SmallTypes>::apply(OT::hb_ot_apply_context_t*) const
 hb_ucd_script(hb_unicode_funcs_t*, unsigned int, void*) (.__uniq.59232151634540459760808551162038034331)
-bool OT::GSUBGPOSVersion1_2<OT::Layout::SmallTypes>::sanitize<OT::Layout::GPOS_impl::PosLookup>(hb_sanitize_context_t*) const
-bool OT::GSUBGPOSVersion1_2<OT::Layout::SmallTypes>::sanitize<OT::Layout::GSUB_impl::SubstLookup>(hb_sanitize_context_t*) const
 hb_ot_map_t::position(hb_ot_shape_plan_t const*, hb_font_t*, hb_buffer_t*) const
+bool OT::GSUBGPOSVersion1_2<OT::Layout::SmallTypes>::sanitize<OT::Layout::GSUB_impl::SubstLookup>(hb_sanitize_context_t*) const
+bool OT::GSUBGPOSVersion1_2<OT::Layout::SmallTypes>::sanitize<OT::Layout::GPOS_impl::PosLookup>(hb_sanitize_context_t*) const
 OT::Layout::GPOS_impl::ValueFormat::apply_value(OT::hb_ot_apply_context_t*, OT::Layout::GPOS_impl::ValueBase const*, OT::IntType<unsigned short, 2u> const*, hb_glyph_position_t&) const
 hb_buffer_add_utf16
 
@@ -169,37 +169,37 @@
 android::hardware::Parcel::freeDataNoInit()
 android::hardware::IPCThreadState::freeBuffer(android::hardware::Parcel*, unsigned char const*, unsigned long, unsigned long long const*, unsigned long, void*)
 android::hardware::Parcel::initState()
-android::hardware::hidl_string::hidl_string(char const*)
-android::hardware::hidl_string::hidl_string(char const*)
 android::hardware::Parcel::readNullableEmbeddedBuffer(unsigned long, unsigned long*, unsigned long, unsigned long, void const**) const
 android::hardware::IPCThreadState::executeCommand(int)
-_ZZN7android8hardware14IPCThreadState14executeCommandEiENK3$_0clINS0_6ParcelEEEDaRT_.__uniq.198295754020524905358818648755506703109
+android::hardware::hidl_string::hidl_string(char const*)
+android::hardware::hidl_string::hidl_string(char const*)
 android::hardware::IPCThreadState::waitForResponse(android::hardware::Parcel*, int*)
-android::hardware::IPCThreadState::transact(int, unsigned int, android::hardware::Parcel const&, android::hardware::Parcel*, unsigned int)
-android::hardware::Parcel::writeEmbeddedBuffer(void const*, unsigned long, unsigned long*, unsigned long, unsigned long)
-android::hardware::IPCThreadState::handlePolledCommands()
+_ZZN7android8hardware14IPCThreadState14executeCommandEiENK3$_0clINS0_6ParcelEEEDaRT_.__uniq.198295754020524905358818648755506703109
 android::hardware::BHwBinder::transact(unsigned int, android::hardware::Parcel const&, android::hardware::Parcel*, unsigned int, std::__1::function<void (android::hardware::Parcel&)>)
 android::hardware::Parcel::writeBuffer(void const*, unsigned long, unsigned long*)
+android::hardware::IPCThreadState::transact(int, unsigned int, android::hardware::Parcel const&, android::hardware::Parcel*, unsigned int)
+android::hardware::IPCThreadState::writeTransactionData(int, unsigned int, int, unsigned int, android::hardware::Parcel const&, int*)
+android::hardware::Parcel::writeEmbeddedBuffer(void const*, unsigned long, unsigned long*, unsigned long, unsigned long)
 
 
 sampling/libhwui_arm64.afdo
 ====
 android::uirenderer::RenderNode::prepareTreeImpl(android::uirenderer::TreeObserver&, android::uirenderer::TreeInfo&, bool)
+android::uirenderer::skiapipeline::RenderNodeDrawable::drawContent(SkCanvas*) const
 neon::lowp::bilerp_clamp_8888(SkRasterPipelineStage*, unsigned long, unsigned long, unsigned short vector[8], unsigned short vector[8], unsigned short vector[8], unsigned short vector[8], unsigned short vector[8], unsigned short vector[8], unsigned short vector[8], unsigned short vector[8]) (.__uniq.171973291814702829445853707239222793327)
 neon::S32_alpha_D32_filter_DX(SkBitmapProcState const&, unsigned int const*, int, unsigned int*)
-android::uirenderer::skiapipeline::RenderNodeDrawable::drawContent(SkCanvas*) const
 skgpu::ganesh::ClipStack::clipRect(SkMatrix const&, SkRect const&, GrAA, SkClipOp)
 neon::bilerp_clamp_8888(SkRasterPipelineStage*, unsigned long, unsigned long, std::byte*, float vector[4], float vector[4], float vector[4], float vector[4], float vector[4], float vector[4], float vector[4], float vector[4]) (.__uniq.171973291814702829445853707239222793327)
-sktext::gpu::TextBlobRedrawCoordinator::drawGlyphRunList(SkCanvas*, SkMatrix const&, sktext::GlyphRunList const&, SkPaint const&, SkStrikeDeviceInfo, std::__1::function<void (sktext::gpu::AtlasSubRun const*, SkPoint, SkPaint const&, sk_sp<SkRefCnt>, sktext::gpu::RendererData)> const&)
 SkMaskBlurFilter::blur(SkMask const&, SkMaskBuilder*) const
+void filter_scale<&clamp(int, int), &clamp(int, int), &extract_low_bits_clamp_clamp(int, int), true>(SkBitmapProcState const&, unsigned int*, int, int, int) (.__uniq.325964652190161525160875187559210144483)
+SkMatrixPriv::MapRect(SkM44 const&, SkRect const&)
 android::uirenderer::skiapipeline::RenderNodeDrawable::onDraw(SkCanvas*)
-GetCoeffsFast(VP8BitReader*, VP8BandProbas const* const*, int, int const*, int, short*) (.__uniq.221674093421751675605877729630738212549)
+sktext::gpu::TextBlobRedrawCoordinator::drawGlyphRunList(SkCanvas*, SkMatrix const&, sktext::GlyphRunList const&, SkPaint const&, SkStrikeDeviceInfo, std::__1::function<void (sktext::gpu::AtlasSubRun const*, SkPoint, SkPaint const&, sk_sp<SkRefCnt>, sktext::gpu::RendererData)> const&)
+SkPixmap::erase(SkRGBA4f<(SkAlphaType)3> const&, SkIRect const*) const::$_2::__invoke(void*, unsigned long, int) (.__uniq.103869986389962304611952474125010404420)
 android::uirenderer::DamageAccumulator::popTransform()
+GetCoeffsFast(VP8BitReader*, VP8BandProbas const* const*, int, int const*, int, short*) (.__uniq.221674093421751675605877729630738212549)
 aaa_walk_edges(SkAnalyticEdge*, SkAnalyticEdge*, SkPathFillType, AdditiveBlitter*, int, int, int, int, bool, bool, bool) (.__uniq.264207111679842201773772860248711733734)
-SkPixmap::erase(SkRGBA4f<(SkAlphaType)3> const&, SkIRect const*) const::$_0::__invoke(void*, unsigned long, int) (.__uniq.103869986389962304611952474125010404420)
 skgpu::KeyBuilder::addBits(unsigned int, unsigned int, std::__1::basic_string_view<char, std::__1::char_traits<char>>)
-neon::blit_row_s32a_opaque(unsigned int*, unsigned int const*, int, unsigned int)
-WebPRescalerImportRowShrink_C
 
 
 sampling/libjpeg_arm64.afdo
@@ -216,8 +216,8 @@
 jsimd_h2v2_fancy_upsample_neon
 jpeg_gen_optimal_table
 compress_output(jpeg_compress_struct*, unsigned char***) (.__uniq.145562128200378363086066792617467217886)
-decompress_onepass(jpeg_decompress_struct*, unsigned char***) (.__uniq.20833755589087077668843286864370132433)
 jsimd_h2v2_downsample_neon
+decompress_onepass(jpeg_decompress_struct*, unsigned char***) (.__uniq.20833755589087077668843286864370132433)
 encode_mcu_huff(jpeg_compress_struct*, short (**) [64]) (.__uniq.95236183733717820941897797786837410814)
 decode_mcu_AC_first(jpeg_decompress_struct*, short (**) [64]) (.__uniq.171156272838782586655302252195378734422)
 
@@ -234,17 +234,19 @@
 log_to_file_if_overridden(__android_log_message const*) (.__uniq.220335083604911598582518859745105420324)
 __android_log_print
 __android_log_write_log_message
+LogdWrite(log_id, timespec*, iovec*, unsigned long)
+android_log_write_int32
 
 
 sampling/libminikin.afdo
 ====
 minikin::FontCollection::init(std::__1::vector<std::__1::shared_ptr<minikin::FontFamily>, std::__1::allocator<std::__1::shared_ptr<minikin::FontFamily>>> const&)
 minikin::Layout::appendLayout(minikin::LayoutPiece const&, unsigned long, float)
-minikin::LayoutCacheKey::computeHash() const
 minikin::LayoutGlyph* std::__1::construct_at[abi:nn200000]<minikin::LayoutGlyph, minikin::FakedFont const&, unsigned int, unsigned long, float, float, minikin::LayoutGlyph*>(minikin::LayoutGlyph*, minikin::FakedFont const&, unsigned int&&, unsigned long&&, float&&, float&&)
+minikin::LayoutCacheKey::computeHash() const
 minikin::LayoutCacheKey::LayoutCacheKey(minikin::U16StringPiece const&, minikin::Range const&, minikin::MinikinPaint const&, bool, minikin::StartHyphenEdit, minikin::EndHyphenEdit)
-minikin::getNextWordBreakForCache(minikin::U16StringPiece const&, unsigned int) (.cfi)
 minikin::LayoutCacheKey::operator==(minikin::LayoutCacheKey const&) const
+minikin::getNextWordBreakForCache(minikin::U16StringPiece const&, unsigned int) (.cfi)
 minikin::getPrevWordBreakForCache(minikin::U16StringPiece const&, unsigned int) (.cfi)
 std::__1::__hash_iterator<std::__1::__hash_node<android::LruCache<minikin::LayoutCacheKey, minikin::LayoutSlot*>::KeyedEntry*, void*>*> std::__1::__hash_table<android::LruCache<minikin::LayoutCacheKey, minikin::LayoutSlot*>::KeyedEntry*, android::LruCache<minikin::LayoutCacheKey, minikin::LayoutSlot*>::HashForEntry, android::LruCache<minikin::LayoutCacheKey, minikin::LayoutSlot*>::EqualityForHashedEntries, std::__1::allocator<android::LruCache<minikin::LayoutCacheKey, minikin::LayoutSlot*>::KeyedEntry*>>::find<android::LruCache<minikin::LayoutCacheKey, minikin::LayoutSlot*>::KeyedEntry*>(android::LruCache<minikin::LayoutCacheKey, minikin::LayoutSlot*>::KeyedEntry* const&)
 minikin::SparseBitSet::nextSetBit(unsigned int) const
@@ -260,20 +262,20 @@
 ====
 android::SensorService::threadLoop()
 android::SensorService::SensorEventConnection::sendEvents(sensors_event_t const*, unsigned long, sensors_event_t*, android::wp<android::SensorService::SensorEventConnection const> const*)
-std::__1::vector<android::sp<android::SensorService::ProximityActiveListener>, std::__1::allocator<android::sp<android::SensorService::ProximityActiveListener>>>::__base_destruct_at_end[abi:nn200000](android::sp<android::SensorService::ProximityActiveListener>*)
 std::__1::vector<android::sp<android::SensorService::SensorEventConnection>, std::__1::allocator<android::sp<android::SensorService::SensorEventConnection>>>::__base_destruct_at_end[abi:nn200000](android::sp<android::SensorService::SensorEventConnection>*)
-std::__1::__hash_iterator<std::__1::__hash_node<int, void*>*> std::__1::__hash_table<int, std::__1::hash<int>, std::__1::equal_to<int>, std::__1::allocator<int>>::find<int>(int const&)
-std::__1::__hash_iterator<std::__1::__hash_node<std::__1::__hash_value_type<int, android::SensorService::SensorEventConnection::FlushInfo>, void*>*> std::__1::__hash_table<std::__1::__hash_value_type<int, android::SensorService::SensorEventConnection::FlushInfo>, std::__1::__unordered_map_hasher<int, std::__1::__hash_value_type<int, android::SensorService::SensorEventConnection::FlushInfo>, std::__1::hash<int>, std::__1::equal_to<int>, true>, std::__1::__unordered_map_equal<int, std::__1::__hash_value_type<int, android::SensorService::SensorEventConnection::FlushInfo>, std::__1::equal_to<int>, std::__1::hash<int>, true>, std::__1::allocator<std::__1::__hash_value_type<int, android::SensorService::SensorEventConnection::FlushInfo>>>::find<int>(int const&)
-std::__1::__hash_iterator<std::__1::__hash_node<std::__1::__hash_value_type<int, sensor_t>, void*>*> std::__1::__hash_table<std::__1::__hash_value_type<int, sensor_t>, std::__1::__unordered_map_hasher<int, std::__1::__hash_value_type<int, sensor_t>, std::__1::hash<int>, std::__1::equal_to<int>, true>, std::__1::__unordered_map_equal<int, std::__1::__hash_value_type<int, sensor_t>, std::__1::equal_to<int>, std::__1::hash<int>, true>, std::__1::allocator<std::__1::__hash_value_type<int, sensor_t>>>::find<int>(int const&)
-std::__1::__hash_const_iterator<std::__1::__hash_node<int, void*>*> std::__1::__hash_table<int, std::__1::hash<int>, std::__1::equal_to<int>, std::__1::allocator<int>>::find<int>(int const&) const
-std::__1::__hash_iterator<std::__1::__hash_node<std::__1::__hash_value_type<int, int>, void*>*> std::__1::__hash_table<std::__1::__hash_value_type<int, int>, std::__1::__unordered_map_hasher<int, std::__1::__hash_value_type<int, int>, std::__1::hash<int>, std::__1::equal_to<int>, true>, std::__1::__unordered_map_equal<int, std::__1::__hash_value_type<int, int>, std::__1::equal_to<int>, std::__1::hash<int>, true>, std::__1::allocator<std::__1::__hash_value_type<int, int>>>::find<int>(int const&)
-std::__1::__hash_iterator<std::__1::__hash_node<std::__1::__hash_value_type<int, long>, void*>*> std::__1::__hash_table<std::__1::__hash_value_type<int, long>, std::__1::__unordered_map_hasher<int, std::__1::__hash_value_type<int, long>, std::__1::hash<int>, std::__1::equal_to<int>, true>, std::__1::__unordered_map_equal<int, std::__1::__hash_value_type<int, long>, std::__1::equal_to<int>, std::__1::hash<int>, true>, std::__1::allocator<std::__1::__hash_value_type<int, long>>>::find<int>(int const&)
-std::__1::__hash_const_iterator<std::__1::__hash_node<std::__1::__hash_value_type<int, android::SensorService::SensorEventConnection::FlushInfo>, void*>*> std::__1::__hash_table<std::__1::__hash_value_type<int, android::SensorService::SensorEventConnection::FlushInfo>, std::__1::__unordered_map_hasher<int, std::__1::__hash_value_type<int, android::SensorService::SensorEventConnection::FlushInfo>, std::__1::hash<int>, std::__1::equal_to<int>, true>, std::__1::__unordered_map_equal<int, std::__1::__hash_value_type<int, android::SensorService::SensorEventConnection::FlushInfo>, std::__1::equal_to<int>, std::__1::hash<int>, true>, std::__1::allocator<std::__1::__hash_value_type<int, android::SensorService::SensorEventConnection::FlushInfo>>>::find<int>(int const&) const
-std::__1::__hash_iterator<std::__1::__hash_node<std::__1::__hash_value_type<int, android::sp<android::SensorService::RuntimeSensorCallback>>, void*>*> std::__1::__hash_table<std::__1::__hash_value_type<int, android::sp<android::SensorService::RuntimeSensorCallback>>, std::__1::__unordered_map_hasher<int, std::__1::__hash_value_type<int, android::sp<android::SensorService::RuntimeSensorCallback>>, std::__1::hash<int>, std::__1::equal_to<int>, true>, std::__1::__unordered_map_equal<int, std::__1::__hash_value_type<int, android::sp<android::SensorService::RuntimeSensorCallback>>, std::__1::equal_to<int>, std::__1::hash<int>, true>, std::__1::allocator<std::__1::__hash_value_type<int, android::sp<android::SensorService::RuntimeSensorCallback>>>>::find<int>(int const&)
-std::__1::__hash_iterator<std::__1::__hash_node<std::__1::__hash_value_type<int, android::SensorServiceUtil::RecentEventLogger*>, void*>*> std::__1::__hash_table<std::__1::__hash_value_type<int, android::SensorServiceUtil::RecentEventLogger*>, std::__1::__unordered_map_hasher<int, std::__1::__hash_value_type<int, android::SensorServiceUtil::RecentEventLogger*>, std::__1::hash<int>, std::__1::equal_to<int>, true>, std::__1::__unordered_map_equal<int, std::__1::__hash_value_type<int, android::SensorServiceUtil::RecentEventLogger*>, std::__1::equal_to<int>, std::__1::hash<int>, true>, std::__1::allocator<std::__1::__hash_value_type<int, android::SensorServiceUtil::RecentEventLogger*>>>::find<int>(int const&)
-android::sp<android::SensorService::SensorEventConnection>* std::__1::vector<android::sp<android::SensorService::SensorEventConnection>, std::__1::allocator<android::sp<android::SensorService::SensorEventConnection>>>::__push_back_slow_path<android::sp<android::SensorService::SensorEventConnection>>(android::sp<android::SensorService::SensorEventConnection>&&)
-void std::__1::__uninitialized_allocator_relocate[abi:nn200000]<std::__1::allocator<android::sp<android::SensorService::SensorEventConnection>>, android::sp<android::SensorService::SensorEventConnection>>(std::__1::allocator<android::sp<android::SensorService::SensorEventConnection>>&, android::sp<android::SensorService::SensorEventConnection>*, android::sp<android::SensorService::SensorEventConnection>*, android::sp<android::SensorService::SensorEventConnection>*)
-void std::__1::__uninitialized_allocator_relocate[abi:nn200000]<std::__1::allocator<android::sp<android::SensorService::ProximityActiveListener>>, android::sp<android::SensorService::ProximityActiveListener>>(std::__1::allocator<android::sp<android::SensorService::ProximityActiveListener>>&, android::sp<android::SensorService::ProximityActiveListener>*, android::sp<android::SensorService::ProximityActiveListener>*, android::sp<android::SensorService::ProximityActiveListener>*)
+android::AidlSensorHalWrapper::pollFmq(sensors_event_t*, unsigned long)
+android::hardware::sensors::implementation::convertToSensorEvent(aidl::android::hardware::sensors::Event const&, sensors_event_t*)
+android::MessageQueueBase<android::BackendTypesStore::AidlMQDescriptorShimType, aidl::android::hardware::sensors::Event, (android::hardware::MQFlavor)1>::availableToReadBytes() const
+android::BaseSensor::getSensor() const
+std::__1::__split_buffer<android::sp<android::SensorService::SensorEventConnection>, std::__1::allocator<android::sp<android::SensorService::SensorEventConnection>>&>::__destruct_at_end[abi:nn200000](android::sp<android::SensorService::SensorEventConnection>*)
+android::hardware::sensors::implementation::convertFromSensorEvent(sensors_event_t const&, aidl::android::hardware::sensors::Event*)
+aidl::android::hardware::sensors::Event::writeToParcel(AParcel*) const
+android::hardware::sensors::implementation::convertFromASensorEvent(ASensorEvent const&, aidl::android::hardware::sensors::Event*)
+android::LimitedAxesImuSensor::isVirtual() const
+android::hardware::sensors::V2_1::implementation::ISensorsWrapperV2_0::supportsMessageQueues() const
+android::AidlSensorHalWrapper::supportsMessageQueues()
+android::hardware::sensors::V2_1::implementation::ISensorsWrapperV2_1::supportsMessageQueues() const
+android::hardware::sensors::V2_1::implementation::ISensorsWrapperV1_0::supportsPolling() const
 
 
 sampling/libsqlite.afdo
@@ -283,77 +285,77 @@
 sqlite3RunParser(Parse*, char const*) (.__uniq.309426955368013975012700285756637552939)
 balance_nonroot(MemPage*, int, unsigned char*, int, int) (.__uniq.309426955368013975012700285756637552939)
 vdbeRecordCompareString(int, void const*, UnpackedRecord*) (.__uniq.309426955368013975012700285756637552939)
+yy_reduce(yyParser*, unsigned int, int, Token, Parse*) (.__uniq.309426955368013975012700285756637552939)
 btreeParseCellPtr(MemPage*, unsigned char*, CellInfo*) (.__uniq.309426955368013975012700285756637552939)
 getPageNormal(Pager*, unsigned int, PgHdr**, int) (.__uniq.309426955368013975012700285756637552939)
 vdbeRecordCompareInt(int, void const*, UnpackedRecord*) (.__uniq.309426955368013975012700285756637552939)
-btreeNext(BtCursor*) (.__uniq.309426955368013975012700285756637552939)
 getCellInfo(BtCursor*) (.__uniq.309426955368013975012700285756637552939)
+btreeNext(BtCursor*) (.__uniq.309426955368013975012700285756637552939)
 sqlite3VdbeMemTranslate(sqlite3_value*, unsigned char) (.__uniq.309426955368013975012700285756637552939)
-yy_reduce(yyParser*, unsigned int, int, Token, Parse*) (.__uniq.309426955368013975012700285756637552939)
 pcache1Fetch(sqlite3_pcache*, unsigned int, int) (.__uniq.309426955368013975012700285756637552939)
 dbMallocRawFinish(sqlite3*, unsigned long long) (.__uniq.309426955368013975012700285756637552939)
-pcache1Unpin(sqlite3_pcache*, sqlite3_pcache_page*, int) (.__uniq.309426955368013975012700285756637552939)
 sqlite3BtreeIndexMoveto(BtCursor*, UnpackedRecord*, int*) (.__uniq.309426955368013975012700285756637552939)
+pcache1Unpin(sqlite3_pcache*, sqlite3_pcache_page*, int) (.__uniq.309426955368013975012700285756637552939)
 
 
 sampling/libui.afdo
 ====
-std::__1::__wrap_iter<android::Rect*> std::__1::vector<android::Rect, android::InlineStdAllocator<android::Rect, 4ul>>::__insert_with_size[abi:nn200000]<std::__1::__wrap_iter<android::Rect const*>, std::__1::__wrap_iter<android::Rect const*>>(std::__1::__wrap_iter<android::Rect const*>, std::__1::__wrap_iter<android::Rect const*>, std::__1::__wrap_iter<android::Rect const*>, long)
 std::__1::vector<android::Rect, android::InlineStdAllocator<android::Rect, 4ul>>::reserve(unsigned long)
 android::Region::clear()
+std::__1::__wrap_iter<android::Rect*> std::__1::vector<android::Rect, android::InlineStdAllocator<android::Rect, 4ul>>::__insert_with_size[abi:nn200000]<std::__1::__wrap_iter<android::Rect const*>, std::__1::__wrap_iter<android::Rect const*>>(std::__1::__wrap_iter<android::Rect const*>, std::__1::__wrap_iter<android::Rect const*>, std::__1::__wrap_iter<android::Rect const*>, long)
 android::Region::~Region()
 android::Region::~Region()
 android::Region::Region()
 android::Region::Region()
 android::Region::boolean_operation(unsigned int, android::Region&, android::Region const&, android::Region const&, int, int)
-android::Region::rasterizer::~rasterizer()
-android::Region::rasterizer::~rasterizer()
+android::Region::operator=(android::Region const&)
 android::Region::Region(android::Region const&)
 android::Region::Region(android::Region const&)
+android::Region::rasterizer::~rasterizer()
+android::Region::rasterizer::~rasterizer()
 std::__1::vector<android::Rect, android::InlineStdAllocator<android::Rect, 4ul>>::__destroy_vector::operator()[abi:nn200000]()
-android::Region::rasterizer::operator()(android::Rect const&)
 android::Region::boolean_operation(unsigned int, android::Region&, android::Region const&, android::Rect const&, int, int)
-android::Region::orSelf(android::Rect const&)
+android::Region::rasterizer::operator()(android::Rect const&)
 
 
 sampling/libutils.afdo
 ====
 android::RefBase::decStrong(void const*) const
 systemTime
-android::RefBase::weakref_type::decWeak(void const*)
-android::String16::allocFromUTF8(char const*, unsigned long)
 android::Looper::pollOnce(int, int*, int*, void**)
+android::String16::allocFromUTF8(char const*, unsigned long)
 android::RefBase::incStrong(void const*) const
 utf16_to_utf8
 android::RefBase::weakref_type::attemptIncStrong(void const*)
 utf16_to_utf8_length
 utf8_to_utf16
 strzcmp16
-android::VectorImpl::clear()
 android::uptimeMillis()
+android::VectorImpl::clear()
 utf8_to_utf16_length
 android::elapsedRealtime()
 android::VectorImpl::editArrayImpl()
+android::RefBase::weakref_type::decWeak(void const*)
 
 
 sampling/libz_arm64.afdo
 ====
 longest_match(internal_state*, unsigned int) (.__uniq.846982182549687996375565254981381303)
-deflate_slow(internal_state*, int) (.__uniq.846982182549687996375565254981381303)
 inflate_fast
-build_tree(internal_state*, tree_desc_s*) (.__uniq.177060090991000879816580501745395732528)
+deflate_slow(internal_state*, int) (.__uniq.846982182549687996375565254981381303)
 compress_block(internal_state*, ct_data_s const*, ct_data_s const*) (.__uniq.177060090991000879816580501745395732528)
 inflate
+build_tree(internal_state*, tree_desc_s*) (.__uniq.177060090991000879816580501745395732528)
 inflate_table
-fill_window(internal_state*) (.__uniq.846982182549687996375565254981381303)
-deflate_fast(internal_state*, int) (.__uniq.846982182549687996375565254981381303)
 adler32_simd_
+deflate_fast(internal_state*, int) (.__uniq.846982182549687996375565254981381303)
+fill_window(internal_state*) (.__uniq.846982182549687996375565254981381303)
 _tr_flush_block
 send_tree(internal_state*, ct_data_s*, int) (.__uniq.177060090991000879816580501745395732528)
 armv8_crc32_pmull_little
-init_block(internal_state*) (.__uniq.177060090991000879816580501745395732528)
+deflate
 adler32_z
-crc32_combine
+updatewindow(z_stream_s*, unsigned char const*, unsigned int) (.__uniq.254430239329408450431167194504505577106)
 
 
 sampling/linker_arm64.afdo
@@ -366,40 +368,34 @@
 bool plain_relocate_impl<(RelocMode)1>(Relocator&, elf64_rela*, unsigned long) (.__uniq.153370809355997480299804515629147722701)
 bool plain_relocate_impl<(RelocMode)0>(Relocator&, elf64_rela*, unsigned long) (.__uniq.153370809355997480299804515629147722701)
 relocate_relr(unsigned long long const*, unsigned long long const*, unsigned long long, bool)
-CdEntryMapZip32<ZipStringOffset20>::AddToMap(std::__1::basic_string_view<char, std::__1::char_traits<char>>, unsigned char const*)
-BionicSmallObjectAllocator::alloc()
 Config::read_binary_config(char const*, char const*, bool, bool, Config const**, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>*)
-BionicAllocator::alloc_impl(unsigned long, unsigned long)
-elf64_sym const* soinfo_do_lookup_impl<true>(char const*, version_info const*, soinfo**, SymbolLookupList const&) (.__uniq.331521225453620004837736674378903349473)
-BionicSmallObjectAllocator::free(void*)
-BionicAllocator::free(void*)
+CdEntryMapZip32<ZipStringOffset20>::AddToMap(std::__1::basic_string_view<char, std::__1::char_traits<char>>, unsigned char const*)
+std::__1::__murmur2_or_cityhash<unsigned long, 64ul>::operator()[abi:nn200000](void const*, unsigned long) const
 do_dl_iterate_phdr(int (*)(dl_phdr_info*, unsigned long, void*), void*)
+BionicSmallObjectAllocator::alloc()
+elf64_sym const* soinfo_do_lookup_impl<true>(char const*, version_info const*, soinfo**, SymbolLookupList const&) (.__uniq.331521225453620004837736674378903349473)
+BionicAllocator::alloc_impl(unsigned long, unsigned long)
+BionicSmallObjectAllocator::free(void*)
 
 
 sampling/lmkd.afdo
 ====
-vmstat_parse_line(char*, vmstat*) (.__uniq.220333500789862702810363420933441579510)
-meminfo_parse_line(char*, meminfo*) (.__uniq.220333500789862702810363420933441579510)
+__mp_event_psi(event_source, psi_event_data, unsigned int, polling_params*) (.__uniq.220333500789862702810363420933441579510)
 apply_proc_prio(lmk_procprio const&, ucred*) (.__uniq.220333500789862702810363420933441579510)
-snprintf(char*, unsigned long pass_object_size1, char const*, ...) (.__uniq.196807038116046355771133154265472343614)
 snprintf(char*, unsigned long pass_object_size1, char const*, ...) (.__uniq.220333500789862702810363420933441579510)
-vmstat_parse(vmstat*) (.__uniq.220333500789862702810363420933441579510)
+snprintf(char*, unsigned long pass_object_size1, char const*, ...) (.__uniq.196807038116046355771133154265472343614)
 mainloop() (.__uniq.220333500789862702810363420933441579510)
 ctrl_data_handler(int, unsigned int, polling_params*) (.__uniq.220333500789862702810363420933441579510)
-__mp_event_psi(event_source, psi_event_data, unsigned int, polling_params*) (.__uniq.220333500789862702810363420933441579510)
-meminfo_parse(meminfo*) (.__uniq.220333500789862702810363420933441579510)
-reread_file(reread_data*) (.__uniq.220333500789862702810363420933441579510)
-find_and_kill_process(int, kill_info*, meminfo*, wakeup_info*, timespec*, psi_data*) (.__uniq.220333500789862702810363420933441579510)
 zoneinfo_parse(zoneinfo*) (.__uniq.220333500789862702810363420933441579510)
-read_gpu_total_kb() (.__uniq.220333500789862702810363420933441579510)
+reread_file(reread_data*) (.__uniq.220333500789862702810363420933441579510)
 mp_event_psi(int, unsigned int, polling_params*) (.__uniq.220333500789862702810363420933441579510)
-psi_parse(reread_data*, psi_stats*, bool) (.__uniq.220333500789862702810363420933441579510)
+killinfo_log(proc*, int, int, int, kill_info*, meminfo*, wakeup_info*, timespec*, psi_data*) (.__uniq.220333500789862702810363420933441579510)
+reaper_main(void*) (.__uniq.196807038116046355771133154265472343614)
 
 
 sampling/server_configurable_flags.afdo
 ====
 server_configurable_flags::GetServerConfigurableFlag(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&)
-std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>::append[abi:nn200000](std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&)
 
 
 sampling/surfaceflinger.afdo
@@ -407,18 +403,18 @@
 android::surfaceflinger::frontend::LayerSnapshotBuilder::updateSnapshotsInHierarchy(android::surfaceflinger::frontend::LayerSnapshotBuilder::Args const&, android::surfaceflinger::frontend::LayerHierarchy const&, android::surfaceflinger::frontend::LayerHierarchy::TraversalPath&, android::surfaceflinger::frontend::LayerSnapshot const&, int)
 android::SurfaceFlinger::commit(android::PhysicalDisplayId, android::ftl::SmallMap<android::PhysicalDisplayId, android::scheduler::FrameTarget const*, 3ul, std::__1::equal_to<android::PhysicalDisplayId>> const&)
 android::scheduler::LayerHistory::summarize(android::scheduler::RefreshRateSelector const&, long)
+android::scheduler::VSyncPredictor::nextAnticipatedVSyncTimeFrom(long, std::__1::optional<long>)
+std::__1::__hash_const_iterator<std::__1::__hash_node<std::__1::__hash_value_type<unsigned int, android::surfaceflinger::frontend::LayerLifecycleManager::References>, void*>*> std::__1::__hash_table<std::__1::__hash_value_type<unsigned int, android::surfaceflinger::frontend::LayerLifecycleManager::References>, std::__1::__unordered_map_hasher<unsigned int, std::__1::__hash_value_type<unsigned int, android::surfaceflinger::frontend::LayerLifecycleManager::References>, std::__1::hash<unsigned int>, std::__1::equal_to<unsigned int>, true>, std::__1::__unordered_map_equal<unsigned int, std::__1::__hash_value_type<unsigned int, android::surfaceflinger::frontend::LayerLifecycleManager::References>, std::__1::equal_to<unsigned int>, std::__1::hash<unsigned int>, true>, std::__1::allocator<std::__1::__hash_value_type<unsigned int, android::surfaceflinger::frontend::LayerLifecycleManager::References>>>::find<unsigned int>(unsigned int const&) const
 std::__1::__hash_iterator<std::__1::__hash_node<std::__1::__hash_value_type<unsigned int, android::sp<android::Layer>>, void*>*> std::__1::__hash_table<std::__1::__hash_value_type<unsigned int, android::sp<android::Layer>>, std::__1::__unordered_map_hasher<unsigned int, std::__1::__hash_value_type<unsigned int, android::sp<android::Layer>>, std::__1::hash<unsigned int>, std::__1::equal_to<unsigned int>, true>, std::__1::__unordered_map_equal<unsigned int, std::__1::__hash_value_type<unsigned int, android::sp<android::Layer>>, std::__1::equal_to<unsigned int>, std::__1::hash<unsigned int>, true>, std::__1::allocator<std::__1::__hash_value_type<unsigned int, android::sp<android::Layer>>>>::find<unsigned int>(unsigned int const&)
-std::__1::__hash_iterator<std::__1::__hash_node<std::__1::__hash_value_type<unsigned int, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::atomic<int>*>>, void*>*> std::__1::__hash_table<std::__1::__hash_value_type<unsigned int, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::atomic<int>*>>, std::__1::__unordered_map_hasher<unsigned int, std::__1::__hash_value_type<unsigned int, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::atomic<int>*>>, std::__1::hash<unsigned int>, std::__1::equal_to<unsigned int>, true>, std::__1::__unordered_map_equal<unsigned int, std::__1::__hash_value_type<unsigned int, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::atomic<int>*>>, std::__1::equal_to<unsigned int>, std::__1::hash<unsigned int>, true>, std::__1::allocator<std::__1::__hash_value_type<unsigned int, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::atomic<int>*>>>>::find<unsigned int>(unsigned int const&)
 android::Layer::commitTransaction()
 android::FlagManager::enable_small_area_detection() const
-void std::__1::__variant_detail::__ctor<std::__1::__variant_detail::__traits<android::ftl::StaticVector<unsigned int, 5ul>, android::ftl::SmallVector<unsigned int, 0ul>>>::__generic_construct[abi:nn200000]<std::__1::__variant_detail::__copy_constructor<std::__1::__variant_detail::__traits<android::ftl::StaticVector<unsigned int, 5ul>, android::ftl::SmallVector<unsigned int, 0ul>>, (std::__1::__variant_detail::_Trait)1> const&>(std::__1::__variant_detail::__ctor<std::__1::__variant_detail::__traits<android::ftl::StaticVector<unsigned int, 5ul>, android::ftl::SmallVector<unsigned int, 0ul>>>&, std::__1::__variant_detail::__copy_constructor<std::__1::__variant_detail::__traits<android::ftl::StaticVector<unsigned int, 5ul>, android::ftl::SmallVector<unsigned int, 0ul>>, (std::__1::__variant_detail::_Trait)1> const&)
-android::scheduler::VSyncPredictor::nextAnticipatedVSyncTimeFrom(long, std::__1::optional<long>)
-android::SurfaceFlinger::updateLayerSnapshots(android::VsyncId, long, bool, bool&)::$_1::operator()(android::surfaceflinger::frontend::LayerSnapshot const&) const (.__uniq.59679109406690186319419933358127648880)
 android::impl::EventThread::threadMain(std::__1::unique_lock<std::__1::mutex>&)
+android::SurfaceFlinger::updateLayerSnapshots(android::VsyncId, long, bool, bool&)::$_1::operator()(android::surfaceflinger::frontend::LayerSnapshot const&) const (.__uniq.59679109406690186319419933358127648880)
 android::FlagManager::getMutableInstance()
 android::FlagManager::getInstance()
-std::__1::__hash_const_iterator<std::__1::__hash_node<std::__1::__hash_value_type<android::surfaceflinger::frontend::LayerHierarchy::TraversalPath, android::surfaceflinger::frontend::LayerSnapshot*>, void*>*> std::__1::__hash_table<std::__1::__hash_value_type<android::surfaceflinger::frontend::LayerHierarchy::TraversalPath, android::surfaceflinger::frontend::LayerSnapshot*>, std::__1::__unordered_map_hasher<android::surfaceflinger::frontend::LayerHierarchy::TraversalPath, std::__1::__hash_value_type<android::surfaceflinger::frontend::LayerHierarchy::TraversalPath, android::surfaceflinger::frontend::LayerSnapshot*>, android::surfaceflinger::frontend::LayerHierarchy::TraversalPathHash, std::__1::equal_to<android::surfaceflinger::frontend::LayerHierarchy::TraversalPath>, true>, std::__1::__unordered_map_equal<android::surfaceflinger::frontend::LayerHierarchy::TraversalPath, std::__1::__hash_value_type<android::surfaceflinger::frontend::LayerHierarchy::TraversalPath, android::surfaceflinger::frontend::LayerSnapshot*>, std::__1::equal_to<android::surfaceflinger::frontend::LayerHierarchy::TraversalPath>, android::surfaceflinger::frontend::LayerHierarchy::TraversalPathHash, true>, std::__1::allocator<std::__1::__hash_value_type<android::surfaceflinger::frontend::LayerHierarchy::TraversalPath, android::surfaceflinger::frontend::LayerSnapshot*>>>::find<android::surfaceflinger::frontend::LayerHierarchy::TraversalPath>(android::surfaceflinger::frontend::LayerHierarchy::TraversalPath const&) const
-std::__1::pair<std::__1::__tree_iterator<std::__1::__value_type<long, android::frametimeline::TimelineItem>, std::__1::__tree_node<std::__1::__value_type<long, android::frametimeline::TimelineItem>, void*>*, long>, bool> std::__1::__tree<std::__1::__value_type<long, android::frametimeline::TimelineItem>, std::__1::__map_value_compare<long, std::__1::__value_type<long, android::frametimeline::TimelineItem>, std::__1::less<long>, true>, std::__1::allocator<std::__1::__value_type<long, android::frametimeline::TimelineItem>>>::__emplace_unique_key_args<long, std::__1::piecewise_construct_t const&, std::__1::tuple<long const&>, std::__1::tuple<>>(long const&, std::__1::piecewise_construct_t const&, std::__1::tuple<long const&>&&, std::__1::tuple<>&&)
-android::SurfaceFlinger::composite(android::PhysicalDisplayId, android::ftl::SmallMap<android::PhysicalDisplayId, android::scheduler::FrameTargeter*, 3ul, std::__1::equal_to<android::PhysicalDisplayId>> const&)
+android::surfaceflinger::frontend::LayerSnapshotBuilder::sortSnapshotsByZ(android::surfaceflinger::frontend::LayerSnapshotBuilder::Args const&)::$_0::operator()(android::surfaceflinger::frontend::LayerHierarchy const&, android::surfaceflinger::frontend::LayerHierarchy::TraversalPath const&) const (.__uniq.289700323341079607446100940332614619201)
+android::surfaceflinger::frontend::LayerSnapshotBuilder::updateSnapshots(android::surfaceflinger::frontend::LayerSnapshotBuilder::Args const&)
+android::surfaceflinger::frontend::LayerHierarchy::traverseInZOrder(std::__1::function<bool (android::surfaceflinger::frontend::LayerHierarchy const&, android::surfaceflinger::frontend::LayerHierarchy::TraversalPath const&)> const&, android::surfaceflinger::frontend::LayerHierarchy::TraversalPath&) const
+android::compositionengine::impl::planner::Planner::plan(android::compositionengine::Output::OutputLayersEnumerator<android::compositionengine::Output>&&)
 
 
diff --git a/sampling/keystore2.afdo b/sampling/keystore2.afdo
index 9ffb10d..4ad7792 100644
--- a/sampling/keystore2.afdo
+++ b/sampling/keystore2.afdo
Binary files differ
diff --git a/sampling/libart_arm64.afdo b/sampling/libart_arm64.afdo
index d341510..25c814b 100644
--- a/sampling/libart_arm64.afdo
+++ b/sampling/libart_arm64.afdo
Binary files differ
diff --git a/sampling/libartbase_arm64.afdo b/sampling/libartbase_arm64.afdo
index 1589d48..d84fd8d 100644
--- a/sampling/libartbase_arm64.afdo
+++ b/sampling/libartbase_arm64.afdo
Binary files differ
diff --git a/sampling/libbinder.afdo b/sampling/libbinder.afdo
index 06c5d64..7e99a5c 100644
--- a/sampling/libbinder.afdo
+++ b/sampling/libbinder.afdo
Binary files differ
diff --git a/sampling/libbinder_ndk.afdo b/sampling/libbinder_ndk.afdo
index 8bdb2cc..fc27608 100644
--- a/sampling/libbinder_ndk.afdo
+++ b/sampling/libbinder_ndk.afdo
Binary files differ
diff --git a/sampling/libcrypto.afdo b/sampling/libcrypto.afdo
index c04974c..28de6b6 100644
--- a/sampling/libcrypto.afdo
+++ b/sampling/libcrypto.afdo
Binary files differ
diff --git a/sampling/libgui.afdo b/sampling/libgui.afdo
index c8b3166..ebf0b94 100644
--- a/sampling/libgui.afdo
+++ b/sampling/libgui.afdo
Binary files differ
diff --git a/sampling/libharfbuzz_ng.afdo b/sampling/libharfbuzz_ng.afdo
index cd758aa..404e3a2 100644
--- a/sampling/libharfbuzz_ng.afdo
+++ b/sampling/libharfbuzz_ng.afdo
Binary files differ
diff --git a/sampling/libhidlbase.afdo b/sampling/libhidlbase.afdo
index 6ecea9c..2fdfd72 100644
--- a/sampling/libhidlbase.afdo
+++ b/sampling/libhidlbase.afdo
Binary files differ
diff --git a/sampling/libhwui_arm64.afdo b/sampling/libhwui_arm64.afdo
index dca1376..4de6873 100644
--- a/sampling/libhwui_arm64.afdo
+++ b/sampling/libhwui_arm64.afdo
Binary files differ
diff --git a/sampling/libjpeg_arm64.afdo b/sampling/libjpeg_arm64.afdo
index 12b4862..a4b23a6 100644
--- a/sampling/libjpeg_arm64.afdo
+++ b/sampling/libjpeg_arm64.afdo
Binary files differ
diff --git a/sampling/liblog.afdo b/sampling/liblog.afdo
index f8c6eed..23811ba 100644
--- a/sampling/liblog.afdo
+++ b/sampling/liblog.afdo
Binary files differ
diff --git a/sampling/libminikin.afdo b/sampling/libminikin.afdo
index 6705b72..5a8ab40 100644
--- a/sampling/libminikin.afdo
+++ b/sampling/libminikin.afdo
Binary files differ
diff --git a/sampling/libsensorservice.afdo b/sampling/libsensorservice.afdo
index 6f69e4d..1b4ff8d 100644
--- a/sampling/libsensorservice.afdo
+++ b/sampling/libsensorservice.afdo
Binary files differ
diff --git a/sampling/libsqlite.afdo b/sampling/libsqlite.afdo
index 8f0757a..a729bd2 100644
--- a/sampling/libsqlite.afdo
+++ b/sampling/libsqlite.afdo
Binary files differ
diff --git a/sampling/libui.afdo b/sampling/libui.afdo
index 7a05adf..26987f8 100644
--- a/sampling/libui.afdo
+++ b/sampling/libui.afdo
Binary files differ
diff --git a/sampling/libutils.afdo b/sampling/libutils.afdo
index 1f2d31a..5949385 100644
--- a/sampling/libutils.afdo
+++ b/sampling/libutils.afdo
Binary files differ
diff --git a/sampling/libz_arm64.afdo b/sampling/libz_arm64.afdo
index d1974f4..e0b6600 100644
--- a/sampling/libz_arm64.afdo
+++ b/sampling/libz_arm64.afdo
Binary files differ
diff --git a/sampling/linker_arm64.afdo b/sampling/linker_arm64.afdo
index 6e7c4c4..73f6889 100644
--- a/sampling/linker_arm64.afdo
+++ b/sampling/linker_arm64.afdo
Binary files differ
diff --git a/sampling/lmkd.afdo b/sampling/lmkd.afdo
index 93cd143..0a50f48 100644
--- a/sampling/lmkd.afdo
+++ b/sampling/lmkd.afdo
Binary files differ
diff --git a/sampling/server_configurable_flags.afdo b/sampling/server_configurable_flags.afdo
index 76888a6..f002c94 100644
--- a/sampling/server_configurable_flags.afdo
+++ b/sampling/server_configurable_flags.afdo
Binary files differ
diff --git a/sampling/surfaceflinger.afdo b/sampling/surfaceflinger.afdo
index 5f89993..d4a1b0e 100644
--- a/sampling/surfaceflinger.afdo
+++ b/sampling/surfaceflinger.afdo
Binary files differ
