! / 0 0 0 0 8 ` // 74 ` sync_wrapper-8e7fddd95dd6d0b0.sync_wrapper.31470df8f1529e50-cgu.0.rcgu.o/ lib.rmeta/ 0 0 0 644 24672 ` ELF>à^@@GNUÀrust ‹\#rustc 1.98.1 (48a229cea 2026-09-01)ÁûÊÆÍRLñ.åSÛAúwjL-df1bddb45adbe94bÁ futures_coreÁì–´C-ÞU,qÑ}ýèÒ-a08f9eceddc04eb7Á«ª1Úë• ¢›ºXÝÓrŽ*-1ad4f876c768bda9Á±ò‰<å%Z‰>¸64‡ËV`-2d2ab9fb0fe1def5Á‰m6GÞ­n6ÇèÆ2-64f5f36fb0927694Á»ÄóG Øg{ë(3íi«F×-06449a08aaab5e30Árustc_std_workspace_coreÁ€û{ù`ä"Ei¥€ÞÏ%G-cb0d4d77988d81b5Áó"Æ)ΉÉðÛÕpEÍ—E-3ec41d3a5a80a4a4Á miniz_oxideÁÐ8°ø‚ðbž Lƨ°J-e44eaef1807e5fc0Áadler2Á9lí©yA6P/D$UBŸ-dca52f01a59c33e7Á hashbrownÁ™¸ÈXó®÷ …ùý{e-143c77bb957d9940Árustc_std_workspace_allocÁð…¨À �¶÷Üúò·_z%í-145a318e0772276cÁ std_detectÁK(ƒ0ì*ãÛ8²D?-f99feda5ce9e492aÁrustc_demangleÁµ%jŽeårVŠÕÓ•-cfd0ab54bb33760eÁcfg_ifÁÍ}λ—©ŒÕž§C•×o-360da4ba13154744Á addr2lineÁ‹c²ŽúY\ÈGÞö÷ö--09755979c57b7e64ÁgimliÁ¢±QÄÍ`ª§DÞåù¬y-9a1fede77fbbf2f0ÁobjectÁö‚F λâËvú.zËí-7ff85ea729a864ffÁmemchrÁž˜]²1<õ¶=U�ý�Où-0e3477fb2664a277Á  ÿŽ—jl‹®¾To–K™G-549498e8b2e4d924Áû   SyncWrapperÁ  � ó�˜ get_mutÁ get_pin_mutÁ  into_innerÁ��ñ�> � ” SyncFutureÁ#‚#innerÁ&‚&˜ &Œ *‚*´*À - /�/ñ SyncStreamÁ2�2õ 5�5˜ 5Œ  9�9Ÿ9 poll_nextÁ<  >�>ñ88888-8-8-8181818<8<8<8@8@8@8ÿ   ²ó _w°± ]ì9�Ÿg  ö  ¬  Í ¿´##Ý %õ þ¸á I’¦‚Ÿg##Ý %õ þ¸á I’¦Í E22É 4õ À25«¨Å�Ÿg22É 4õ À25«¨ÅÍ   /#>2  *#92ÿ (Ÿgö¬¿´E\Á  Í Òü”>  $²Í ,¥� -,Æz  Í  Ë€~  {Í yÍ \�Š«\ÇÍ Øü™? Í 4¶   L¨ 2$ê&´]ê�¼\÷&Í }¥ž¼  ü ‚'‹'üˆ&ƒý¨ÿœ¼å\  Í Í     Í UÿüÓ&0ý§��¼ýæ�Þ¼ýÁ÷U¼ä\  å¾�¼ýß�[¼Î\¨ý�ƒ¼”ð&Í ‚…¡mø�¼îšîšPinÁðš¿ ð[$²òVá=µ•4¨\´&îšîš¯ðš¿ ð[$²òVá=µ•4´$›&¨§´Çbú‘ÎÍ ‚'ô¨ö&ú´$ñ&thisÁ*4Ê-Í Ö-ü£-3Í ¾-  $µ- ,¤à/ Ãg à/ læ/”â/ú/ü¢/XÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw¡ĤĤŤErrorÁ Ñâó:½ÖàM\Ê/   ,©/ €g€gŠ‚gê ûcƒgbufÁûcØ«q¢1È¡ °/Sœ¦TdÙ0 h ÷Í $�  Í  å0ì0ü°0<ŸÍ ¼Ï0  $À0Í „0�”  Í Ó1"ü™1: Í „½1  $®1Í ,¡1� ?¼¡4†  ¦ü“4' #¦ ¹4À4(üì3T¯¦iü $„4¦,÷3  ²ó _w°± ]ì9¦±õ @qTì4“¦‰5)üÅ4D¸¦d÷4¦ à4ü $×4 >,±6$Â6 ü ˆ“¦‡ îš ¦† î6tû6. Á´¦,û6†7D�7 Ž7�7- üÙ5¶ü­6bÇå\ü ¦.¦‚ ü  ¦Uÿ¡üÇ6(Á»µä\ü °¬Î\¬ §¬Ù6.¦‚Æ!¡¢!¦Lå6Ù´Û´Ü´ËÝ´óÞ´ß´¸±Ýæó}rÑ÷À´¦”�6îšîš¯ðš¿ ð[$²òVá=µ•4÷$á5 �…�…lŸ…wakerÁ‰… … local_wakerÁ‰…¡…extÁ‰…¢…_markerÁ‰…£…_marker2Á‰…8íœ}©÷5îšîš¯ðš¿ ð[$²òVá=µ•4¬ Ô¬ ö÷ÜêcxÁcõ  YÖ ¯»!2 w“¦î6.�¦û¬ Ü6»!7÷ Ú6® Uœö7n¦ ö7 ½dü7Œø7�81ü¸7Wï\à7 ³,¿7� Æ7œE¦“¼´;”  �ü¦;' 2� Ì;Ó;7üÿ:T¿�iæ$—;�,Š;  ²ó _w°± ]ì9�±õ @qTÿ;¨)�œ<8üØ;DM �dŠ<� ó;æ$ê; >,ƒ>$”> æöw¨)�  îš �2  À>œÍ>à  G�,Í>Ý>lÓ> å>æ>< ü =Æüÿ=g` å\æ�=�‚ æ �Uÿ¡ü™>(© · Å ä\æÚ ã Î\Á+ö ¬«>=�‚Ù,¡ ��L·>Ù´Û´Ü´ËÝ´óÞ´ß´¸±Ýæó}rÑ÷řǙș­É™Ê™àË™óG*¤�R{9 F�ÄÜ=îšîš¯ðš¿ ð[$²òVá=µ•4Œ+$­=å#Ã=îšîš¯ðš¿ ð[$²òVá=µ•4Á+ˆÁ+öŒ+�]Ô$aõ ¼ ë+aÎ,2 w¨)�À>=Å��¯Á+®>Î,ëŒ+ ¬>®  œé?¢ ¦ é?¢  ½dï?Œë?‚@@ü«?Wï\Ó? �,²?� ¹?œE¦“Ì…  Í (  3Í :A   #2ûñ$Ôûcq,ÚŸgq¢gŠLá€g¯öîšFutureÁ4‡¿´ l<š�… »$£Ù´ üд;üÐLI A mutual exclusion primitive that relies on static type information onlyÁ��ü¡‚ This library is inspired by [this discussion](https://internals.rust-lang.org/t/what-shall-sync-mean-across-an-await/12020/2).Áü¤C+https://developer.actyx.com/img/favicon.icoÁ„ï(https://developer.actyx.com/img/logo.svgÁl« #2û'ñ(ûcq'Ÿgq8¢gŠ'€g¯&îšÈ3¿´ l�… »Ù´ ÇÊÍ$Â|ÂÈνÀŸ¢Dñ–tÿƒüÂUx{jmyü®L™4û�üÿa^ In some cases synchronization can be proven statically: whenever you hold an exclusive `&mut`Áüá ^[ reference, the Rust type system ensures that no other part of the program can hold anotherÁüÀ `] reference to the data. Therefore it is safe to access it even if the current thread obtainedÁü¡ c` this reference via a channel. Whenever this is the case, the overhead of allocating and lockingÁü… <9 a [`Mutex`] can be avoided by using this static version.Á �üÆ c` One example where this is often applicable is [`Future`], which requires an exclusive referenceÁüª _\ for its [`poll`] method: While a given `Future` implementation may not be safe to access byÁüŠ^[ multiple threads concurrently, the executor can only run the `Future` on one thread at anyÁüé_\ given time, making it [`Sync`] in practice as long as the implementation is `Send`. You canÁüÉ]Z therefore use the static mutex to prove that your data structure is `Sync` even though itÁì§ contains such a `Future`.ÁÅ�lÉ # ExampleÁ×�<Û ```Áüã" use sync_wrapper::SyncWrapper;Áä† use std::future::Future;Á£�¤§ struct MyThing {Áü¼EB future: SyncWrapper + Send>>,Á,‚ }Áˆ�”Œ impl MyThing {ÁüŸXU // all accesses to `self.future` now require an exclusive reference or ownershipÁ,øÄCþ�ü‚  fn assert_sync() {}Á£�ì§ assert_sync::();Á<ÅëAÍ�üÑC@ [`Mutex`]: https://doc.rust-lang.org/std/sync/struct.Mutex.htmlÁü•FC [`Future`]: https://doc.rust-lang.org/std/future/trait.Future.htmlÁüÜPM [`poll`]: https://doc.rust-lang.org/std/future/trait.Future.html#method.pollÁü­B? [`Sync`]: https://doc.rust-lang.org/std/marker/trait.Sync.htmlÁ\��þÆÍ œ  _w°± ]ì9Í   Bÿ� PÍ   Bÿ  Í _a Ÿ  Í ´¤�¾I ©  ü”"üÁ:7 Creates a new static mutex containing the given value.Á€�tˆ # ExamplesÁ›�<£ëAü¯"üAÖ�üÞ%" let mutex = SyncWrapper::new(42);Á<ˆëA¡Í   Bÿ Í �Öü™#üØ0- Acquires a reference to the protected value.Á��ü•_\ This is safe because it requires an exclusive reference to the mutex. Therefore this methodÁüù_\ neither panics nor does it return an error. This is in contrast to [`Mutex::get_mut`] whichÁüÝ]Z returns an error if another thread panicked while holding the lock. It is not recommendedÁü¿_\ to send an exclusive reference to a potentially damaged value to another thread for furtherÁ|£ processing.Á·�ü¿[X [`Mutex::get_mut`]: https://doc.rust-lang.org/std/sync/struct.Mutex.html#method.get_mutÁŸ�t§äJº�<ÂëAüÎ"üAõ�üý)& let mut mutex = SyncWrapper::new(42);Áü«  let value = mutex.get_mut();Á|Ð *value = 0;Áüä$! assert_eq!(*mutex.get_mut(), 0);Á<�ëA< A A   AÍ Bÿ ¨ Í $­üˆ&7üÞ74 Acquires a pinned reference to the protected value.Áš �ü¢ 63 See [`Self::get_mut`] for why this method is safe.ÁÝ �tå äJø �<€!ëAäŒ!§B´­! use std::pin::Pin;ÁüÈ!# use std::task::{Context, Poll};Áð!�üø!&# use pin_project_lite::pin_project;Áü£""üAÊ"�”Ò" pin_project! {Áüé"! struct FutureWrapper {Á”�# #[pin]Áü¦#" inner: SyncWrapper,ÁLÍ# }Á,Û#ÄCå#�üí#1. impl Future for FutureWrapper {Áü£$  type Output = F::Output;ÁÈ$�üÐ$SP fn poll(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll {Áü¨%74 self.project().inner.get_pin_mut().poll(cx)ÁLä%åW,ò%ÄC<ü%ëA\�&Bîšîš¯ðš¿ ð[$²òVá=µ•4 B  îšîš¯ðš¿ ð[$²òVá=µ•4 BÍ Bÿ ¥& Í ” 4ð&���úä£-ü‘'74 Consumes this mutex, returning the underlying data.ÁÍ'�üÕ'_\ This is safe because it requires ownership of the mutex, therefore this method will neitherÁü¹(YV panic nor does it return an error. This is in contrast to [`Mutex::into_inner`] whichÁü—)]ÃNüù)_ªO|Ý*’Pñ*�üù*a^ [`Mutex::into_inner`]: https://doc.rust-lang.org/std/sync/struct.Mutex.html#method.into_innerÁß+�tç+äJú+�<‚,ëAüŽ,"üAµ,�ü½,)åQüë,'$ assert_eq!(mutex.into_inner(), 42);Á<—-ëATª-  Í Bÿ Í u üÐ.&�¾I Ü.   üû. �¾I €/   gü¢/3¥/CDE C  D€g€gŠ‚gê ûcƒg¢ûcØ«q¢1È¡EïBÿ ©/ Í $ª/œà üþ/+�¾I ƒ0öÍ <†0  ÷!¤°0<³0  Bÿ Í üð0"�!!¾I õ0  "®"Ì™1$œ1Í   Bÿ  "Í �í Ä�3ì×1 `Future` which is `Sync`.Áõ1�tù1äJˆ2�<Œ2ëAü”20- use sync_wrapper::{SyncWrapper, SyncFuture};ÁÅ2�ÔÉ2 let fut = async { 1 };Áüä2# let fut = SyncFuture::new(fut);Á<ˆ3ëAT›3‚$$þƦ ¦3ü þ¸á I’¦%¬¯3,¯3##“ôÇ3‚''ðh Í3¿´¦4Ð3ü ()äì3ó3¦ü Bÿ&& (¦õ �äÅ4TÌ4ü ¦Bÿ&& )¦7üŒ5)‚++ðh ’5ßi4•5ü ,-À´Á´-!\¼54Á5**™#üÙ5I$Ü5FGHîšîš¯ðš¿ ð[$²òVá=µ•4 Fü  G�…�…lŸ…ü"‰… …�#‰…¡…¨#‰…¢…¹#‰…£…Î#‰…8íœ}©HÙ´Û´Ü´ËÝ´óÞ´ß´¸±Ýæó}rÑ÷À´ü Bÿ* ë5* -¦_Ô$õÙ6-�.�.�..-»!ü’7�00¾I —7³1 g1ü¸73»7IJK I³ J€g€gŠ‚gê ûcƒg¢ûcØ«q¢1È¡KïBÿ/ ¿7/ 1Í $À7œqÄù9ì“8 `Stream` which is `Sync`.Á±8�tµ8äJÄ8�<È8ëAüÐ8! use sync_wrapper::SyncStream;ÁÄò8 use futures::stream;Á‹9�ü�9# let st = stream::iter(vec![1]);Áü³9! let st = SyncStream::new(st);Á<Õ9ëAÓfuturesÁœã9ÜÝ9T„:�33þÆ� �:æÀ25«¨Å4¬˜:,˜:22¨)üÌ:,Óˆrœ¶:ܰ:�66·s Ò:E�¤Õ:æ78äÿ:†;�æBÿ55 7�õ "äØ;Tß;æ�Bÿ55 8�Ìü»«><�=�=�==<Î,ü…?Óˆrœï>Üé>�??¾I Š?�@ g@ü«?3®?OPQ O� P€g€gŠ‚gê ûcƒg¢ûcØ«q¢1È¡QïBÿ> ²?> @Í $³?œ¸Þ¢ Ó¢ ø ¢ ³/¢ Â/¢ (¢ û5¢ ˆ6¢ ¢ É7¢ Ø7¢ ¥¢ Ç=¢ Ô=¢ y¢ ¼?¢ Ë?¢ &5'4https://doc.rust-lang.org/std/sync/struct.Mutex.htmlÁMutex::into_innerÁ¨6https://doc.rust-lang.org/std/future/trait.Future.htmlÁ4https://doc.rust-lang.org/std/marker/trait.Sync.htmlÁéMutex::get_mutÁÈ3this discussionÁÀ Self::get_mutÁNhttps://internals.rust-lang.org/t/what-shall-sync-mean-across-an-await/12020/2Á›|¨Ô|ï|ª}è}éÈ3¿´„~À ¯~›|�~Ô|¨ï|éÿ ª}è}È3„~¯~À �~Ÿg¿´ŠP³¯ù ÿ …Ìí¦£¬©ö€#…#ˆ#‹#Î!Ñ!Ö!ÔPŽQ—PŽPÄQýÆþÆÈÇ÷±¯² SyncWrapper SyncFuture SyncStream ò€„�•�PžRñø G1g–4"CÝjB/Zö¯9Ž!àŠ¦®^·È=?­¿Ò=UkHЙ²iþuÖ Ÿf-˜Á.¤•äÂ9N8‡¶w-{ôŒËüˆH¤õÐäxðÅ{öÁ Û›à2On‡oœ¸Ý"3¦÷’P�2û¹L ¿Íç¤C'=iM ÇoÂå‚:Ý„¶Kx% ]Áù†%DB5] ˜© +tP.JØž&²ÔÄ Ä`©bÌpÑÊà�W4æÛd² Ùp0BœìÉͧ!&¬@)3¶±jÄ÷Ï%1³¼Üœ¶À bñÃA¯1C$#÷�»•~Y)X'ƒè{þÂá&»èök°â—y5ŸŠ`s„ (é}>�ô?Þ' ½$ã@Çì0÷§(¯ØÖ«*F¶Jæ"ÍÍöp`>o{d’nüQ3áÑ�–A_Œt&ã±?ŠÅ[jáFm[¡œTb!"P€åfã#3à� ý¨{ð8 !�¬1K^¥h$ñ„sÞaÄÑ‹®SÂ×Ýfº«[ÐW!1J�Ó1T\û_�J„-±ôÿµ×Î}п&ÔÚ}É"D¯;Ù%“ô0É;{[ô{›nåÒÙòÀw»µ<;ð¦§U¦ÊN\8›7µLGs!‘šŽôi³®û %á‘ì)Ü0¥žmÿ‹+ã&#¾Í2™µ1M±ÍöX… ˜‰ŽÏMÖrG¹.• [xr­•°0¯Ø³ë�’�Ü ½§NЮ5 rl-|ó—ä­v85ç•Ù Bu? µ­Fë‰ðx²vÒ˜/óK±d�•‡€ŠôÖØ¹óá49øûK:ñ‰ãμ^6E+)<ÄÑS¥ý02 Z [ˆë¾î/;ƒü•‚Úî˜>>>� -158?ELS[^dj&¹$Ï$ % &ä)ó-:.Ã0ö021Ý1'2_2š2Ú 2(4@4†4Æ45P5h5¿67C7í 7o9ˆ9ß9:_:¸:Ð:j<²<=}f$ï$ã01 224p4-5'7]9É9™:å<'              |&$ˆ$»$õ%¡)P-›0J1?2²2Ø3,4ž4Þ4T5€5[79s9÷97:¼:è:=$*-15<BHOV[ago$¨$µ$Ë$ø$%&ß)ï-6.¾0ä0ñ0 1-1Ø12#2Z2‰2–2Ö24$4<4u4‚4Â45?5L5c5»6717>7é7^9k9ƒ9Î9Û9:Z:§:´:Ë:f<­<ï<ü<§=­=³=¹=À=Ç=Í=Ô=Û=á=è=ï=õ=ü=>>>'8?ELS^d"$r$ª$¹$ú$Ý%‰)8-ƒ0æ0"1212'2‹2š2Ô34(4w4†4Æ4A5P5h537C79`9o9Ð9ß9:©:¸:Ð:ñ<=ª=°=¶=½=Ä=Ê=Ñ=Ø=Þ=å=ì=ò=ù=>> >>;$›$²$Å$ä$%&Í)Þ-0.­0Ø0î0 1*1¿1ò1 2O2t2“2Ä2í3!464U44°4ð45I5]5£6ü67;7Ð749h9}9°9Ø9 :I:‡:±:Å:N<§<Ú<ù<Ž=($“$¬$½$Ñ$ü$ÿ%Á)Ò-.¥0Å0è0ø0$1³1ß12G2a2�2¼2Ú34.4B4y4¨4è45C5U5—6Ó6 757Ä7!9b9u9�9Ò9:A:t:«:½:B<~<Ç<ó<‚=M$¡$É$í$ &Ñ)â-4.±0á01Ã1 2S2}2È2ÿ3:4n4´4ô4+5a5§67%7Ô7F9�9Ç9 :M:—:É:R<«<ã<’='$Š$ö%¢)Q-œ0K1@2³2Ù3Ÿ4ß4�5\7 9ø98:é:=g$‹$÷%£)R-�0L1A2´2 4à4‚5]7ù99:ê:=t$á%�)<-ó-‡061+2ž2Š4Ê4l5¿6G7ã9#:Ô:j<=U_iv®â´$%ð0,1"2•2#4�4K5=7j9Ú9³:û<’uÜÍ 8 — ù ˜ äYˆ¥yîÏLìø÷ÚË 6 • ÷ – âW†£wìÍJê:tÛÌ 7 – ø — ãX‡¤xíÎKëŸ$ &&Ø)é-¸0Ê1Z2Ï2»4û4®6Û7:T:Y<™=z $Ï$Ã0ö0Ý1_2Ò3@4579›9r:Å<\$4U9O$4H9øû "&*.@DKRV]dr„ˆ™�¤¨¯¶ºÁÇËÒÙêñý!(/37>EV]dhov}�ˆ�Ÿ£§®µ»ÁÇÍÓÙßåëñ÷ý _$4X9ó$ô$õ$ö$1 2€2r4s4/555(7Ë9Ì9›:Ÿ:æ<;==?ACDFHJLNPRT> @÷$ã012…2t4;5-7Í9£:ë<¢ ¢ ¢ ¢ Ü PžRñø G1«XÁò™W¢„}S.S2SVSFSmS° ODHT R€·Þ +tP.Jg–4"CP€åfã#3,¯Ø³ë�’�Då‚:Ý„¶KxŠ`s„ !;ƒü•‚Úî˜Q… ˜‰ŽÏAûK:ñ‰ãμM�•‡€ŠôÖKÞaÄÑ‹®SÂ0C$#÷�»•~Ä`©bÌpÑð8 !�¬1.0É;{[7MÖrG¹.•BÜ0¥žmÿ‹>DB5] ˜©ìÉͧ!&¬@oœ¸Ý"3¦ Þ' ½#K^¥h$ñ„s/A_Œt&ã±?)Y)X'ƒè{¦§U¦ÊN\:^6E+)<ÄÑN [xr­•°0Cf-˜Á.¤•äÝjB/Zö¯² Ùp0Bœ÷§(¯ØÖ«%›à2On‡ ÷’P�2û¹LØž&²ÔÄ -±ôÿµ×Î}4Êà�W4æÛdÀw»µ<;ð9Â9N8‡¶w8›7µLGs;×Ýfº«[1þÂá&»èökÏ%1³¼Üœ¶Bu? µ­FH(é}>�ô?"^·È=?­$ã@Çì0$Å{öÁ Û +ã&#¾Í2™?À bñÃA¯1ë‰ðx²vÒIعóá49øLS¥ý02 O=iM ÇoÂÐW!1J�Ó12µ1M±ÍöX@Ü ½§NЮ5EˆH¤õÐäxð [¡œTb!"+"D¯;Ù%“ô6T\û_�J„39Ž!àŠ¦®nüQ3áÑ�–(ŠÅ[jáFm*®û %á‘ì)=ô{›nåÒÙò8*F¶Jæ"ÍÍ& ¿Íç¤C'­v85ç•Ù G)3¶±jÄ÷¿Ò=UkHÐZ [ˆë¾î/Pöp`>o{d’'˜/óK±dJ-{ôŒËü ™²iþuÖ Ÿ!‘šŽôi³<PžRñø G1% ]Áù†%°â—y5Ÿ rl-|ó—äFà� ý¨{-п&ÔÚ}É5%!N<Lÿg^kaÿ?ÿhÿÿÿÿ-ÿJÿÿÿÿÿÿEÿT S 9ÿ=.hÿÿÿrWNUC&>2x;9-5[ L|ÿÿÿÿÿxÿÿÿÿÿÿÿzÿÿÿÿÿBWK6ÿyfÿ{ ÿÿIÿÿÿ2~O ÿ Oÿr=ÿd%!N<Lÿg^kaÿ?ÿhX/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sync_wrapper-1.0.2/src/lib.rsÁM/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sync_wrapper-1.0.2ÁX/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sync_wrapper-1.0.2/src/lib.rsÁ öô-³Ìbö†<ïf[–jÑ…@…@‚CD+2GELG"MƒDJ  #Mb_ad=d`_`^#FY!DGQC? '* )5ddbd` '.%) *<; !(+'&' 6%X< >D<d^bdf '., #_*#:. % 1$!#0# ,PN":"$"/#0# H[N":r>7ÞCF-u…·:'„Ä?Zx86_64-unknown-linux-gnuÁüÇ1 ’Ñ’¢$þôc½M  sync_wrapperÁ-8e7fddd95dd6d0b0ÁPžRñø G1Ö¸¿²r R�3™>>A5A5AÃ?R½ARR‚R¤¤AA‚A‚A‚AÃA‚?‚~@A€‚(A‚A‚(AÃ?~33fRf¤3Af‚AÃ?Ñörust-end-file.note.gnu.property.shstrtab.strtab.symtab.rmeta@ .€`.^&�^¨^©^5lib.rmeta-link/ 0 0 0 644 656 ` ELF>@@GNUÀHsync_wrapper-8e7fddd95dd6d0b0.sync_wrapper.31470df8f1529e50-cgu.0.rcgu.oÁrust-end-file.note.gnu.property.rmeta-link.shstrtab.strtab.symtab@ €`X2¸*Ð Ñ:/0 0 0 0 644 632 ` ELF>ø@@rustc version 1.98.1 (48a229cea 2026-09-01)0ñÿ.text.comment.note.GNU-stack.strtab.symtabsync_wrapper.31470df8f1529e50-cgu.0  T@0@-m(p0