rust1#rustc 1.72.0 (5680fa18f 2023-08-23) }ޱL{ :-8f88c761e33f2651ՆQ4-46a989d0e2cef827e$ɛDp>-b114db70ea0690b1rustc_std_workspace_core ūu sR-13da980d6c74fec5YnFmZܝ--649be05783c8912epWĪ9/-f002c8f83a289c4b &c~~*ĽVa-682387162b570769cfg_ifz$kdgK!--05a2cedbb78c1d4f miniz_oxidePnzn )m-9c3df673b2797081adlerA%lon  2-c6afbee8d1102512 hashbrown8*^| -356231f77d1e268arustc_std_workspace_allocL%gqG-80ed5799bf463787 std_detecta^Ʒc -1bccb7a942e1b311rustc_demanglekŗ,N/ST%L)-bc6864da821ce9a2 addr2line2Ȃ']51:.-4930b3dc482158f7gimli~2)F25˼-65bea4bb6af40828object^]UVW-919f89587cbed68dmemchrk/YO+-c6624cb4360306cdBhnge],Q-f9018f9cee1cc5ff Backtrace2   backtrace  BacktraceStatus=    RRVVZZ^ ^ ^ Zjjt jV*P2RRVVZZ^ ^ ^ Zjjt jV*P2impl_backtrace        *2     %-backtrace_if_absent         ;Ccapture              * 2 Chain  Demand   Provider          object_mut   anyhow_no_ptr_addr_of+3object_downcast_mut no_backtrace     *2context_downcast_mut  +3context_chain_downcast_mutcontext_backtrace    *2tests  ensure ]??C C C =p=<<<<==  ==<<StdError>======  ==== _assert_send_sync_assert chain     'a "Item size_hint  next_back  <  ext** , ext_context-d*/E/#1d*3#4d66$69d6 with_context;d;F>>@d>$BdB$EdE$EIdI$IMdM$MsourceQdQ%QuotedT TdT XdX[ private]]Sealed]``$]ceeeeeeeeee e BothDebugp__dispatch_ensureerArBr'e NotBothDebugv'ex'x'x'eBuf|bytes} |writtene e  erendere__parse_ensuree__fancy_ensuree__fallback_ensureerror     $msgMfrom_std$ from_adhoc* from_display* from_contextd$ from_boxed construct$d" root_causeis$downcast$ downcast_ref$ downcast_mut$$ ErrorVTable object_drop object_ref object_boxedobject_downcastobject_drop_rest.$object_drop_front$.$.$.$context_downcastd$context_drop_restd$context_chain_downcastdcontext_chain_drop_restd ErrorImpl$vtable_object0 ContextErrord$)$erase) error_mut" $% $ $  displayIndented"Dinnernumberstarted Adhoc  AdhocKind anyhow_kind*Trait  TraitKind5$$Boxed  BoxedKind5macrosbailanyhow__anyhowOwncastUboxedby_refby_mutRef""""from_raw888Mut"" " "888extend'b "readCastTo wrapper MessageError * *** DisplayError * *** BoxedError  %4$k$d$d$ __private    format_err  ChainState"LinkedBufferedrest "" "7777777H7H7H7L7L7L7P7S7Z7Z7Z7[7[7\7\7x7777777777777777777777777777777777777777777777777777777777777777777777777777777p,v_@@@넇`&"9 5yts"9 5yts79 5yts7 5yts7,$,4gQ_   'w$JK {-PJJ,kG1){ b$0dKGKK1){ b$0LJGTTU&W  ZG\aLGTTU&W  ZG\a 7GGGEGEGEG EGEGbufEQ ! >S7_J_Kp''v 7''G||(}(e(eߏ0.JJJJGJGJJ00182LvJGOGOBox  l*666Global 7C\ wJO  l*PJO  l*PJJPJRG3444&m7 7SJP7{<NJSSS8>hR_c2"S8>hR_c2"S9O|A\"S9O|A\"SJG< 꽅*GVVG< 7Ǘ+6'VGVVG= @aɭGWW 5yts"r 3/ x 6>c`EXTQM|[TIp,v_G9.9(#GG)9d ddd 1@11IntoIter1M01phantom01cap0101010+qg A P11 \1*@ {-P]** ^*  @@@넇`& ` ^*^* \1\1__self_0*`1- dJ {-PLm2)*-1pJJb b L4JJL        K      -Kd   J  JJ   JJ    9  -    'wJJJf` J K J f  ok )               K            $\ \    J  JJ      f      ! JJ           ;   / h J l ` J K J K f l     i )    * bb*J JJ/ JJ@hKb`JJ*bi     $\\ J JJ,rb,1 JJB hKv`JJ,b vi Error   H M   contextz L T L    GM E  (wsourcez K {w| EH   'w\ z*  K GGGEGEGEG EGEGMEQ ! >S EE DebugStructEEE EE has_fieldsED˄wwMMzz { TTU&W  ZG\a{܁{ z{  K  L  GLLc~ { c K ] ]PW^!]  WJ7{<N00182Lv\ 2 222]C ]S=^! L]2 2ۈ28>hR_c2   G "(( ~(( (  T =  ZL z    z L   GL (()  ~   'wK~(  GvalueG formatterG1 2 7e      Ѝ   G    =  GTTU&W  ZG\a  %* >* >ˊ * >* > * >    "  * >+ ׌* >, , ˊ , ,  , ! \~\!,  - ׌, !Z ) ) + +  > >- -    ~  L l c uty\(~`) * >~ =  = IpiecesEEE4&w\NF    Ѝ  Ѝ { `+ , ~ `- ̋   )  \ +  >\ -    \  z z  Z̋ ΋  N{N{ dudJNz{ N{ N*d  z{VJ Nz*V(~40(40               \   b  ! Jb!]JJ) b( Vb(JVJ -.....t=* Jb*5JJb ) b0J J \ J 78>hR_c278>hR_c27݈ J O  l*݈P J 78>hR_c27TypeIdte< jY {-P8>hR_c27\ J \ ʦب VV#*# Vb#*$#5JVb V b)0V V Vʦ V   Vب!! V ʦب !& V&&V,*, Vb,*,$%&,5J%V$b$ V%&$$ b)%0&&V$&& V'' Vʦ(( V))ب**& &&%&&&ʦ'(ب)*&/ LK//LK5*5 Kb5*5-./55J.L-K-b- K./-)-- b).0//LK-/!/! K0 0  Kʦ1"1" K22 LK 78>hR_c27 {-P8>hR_c27\33 LK/ //.///!ʦ0 1"ۻ23/B\ JbBfB OBfGGG OGG#G OGG G  G@BGN JAJAAbA O  l*OPBOB\G7{<NOGGG)A0AA b4B4G@WF LJWWL^*^ Lb^*_U VW]^5JVJVLVLVWVV)V0WWL] bU X%X% LX$X$ LʦZ&Z& LZZ L 78>hR_c27 {-P8>hR_c27\[[ LW WWVWWX%ʦX$Z&Z[Wyy  Jyy"y"y > Jy yxx Jx  {-Py"yxx{!{{!{{{ J{{{{ {}  NonNull#CC8f}}  }}# 78>hR_c27 {-P8>hR_c27\} }}  }} };  };}; }A ~!~~~  JJ};}8>hR_c2\~ ~ \ ~~~ \ ~!  J ڂڂ߂ \J ߂ ڂ J ŃŃ Ń   ManuallyDrop קJŃ Ń*    ??   JJ z !z { {{}}$΂"   'wJJzJz{9O|A\{ {9O|A\\} {-P};}#}} }}}`} }~ J~JJ҂9O|A\Jڂڂ\?*ŃŃ  Ń  Jz {4{addr}}outer)҂z  ȍȍȍ(  ŏ E E2F2F 2F2F 2F F l \J   2F2F3̏  {-PK 2F J  ۏ   Ì3̏3̏FF ڌl c uty2FE(ɉŏ`3̏F8>hR_c2Jڌ   3̏ F Ì ՑՑՑܓՓՓՓԓ(   ԓE  ԓE4ԓF4ԓF4ԓF4ԓF 4ԓF ԓF lԓO  4ԓF4ԓF5  {-P J 4ԓFŕŕʕ ʕ ŕ֕  J ֕ ŕ"  Ȑȑ55ԓFԓF Jߐ ̑4ԓFԓEԓ(Փܓɉ`5ԓFŕŕŕŕߐ  ̑ 5 ԓF Ȑ!b!ś]JJ)ɛ b O  O  ʪF\\unerasedʪ& 00182Lv קJ$.ί ίۯۯ  O  l*PۯhT\7{<N&\ۯ  O  O J5 J5 ݈\ ݈\\ٲkٲ  ݈ٲk 8>hR_c2݈԰)8>hR_c2O#CC8f݈\\55 J Oعڹڹع ع )ع ع  6 ˼ͼͼ   J5  l J l{  J { J\    ׿  Ѻ6 {#CC8fJl5Ѻ  L7) 00182LvK'1  KL# L #0 L\  6   K     8  )܌ '1Ѝ KK! K!. K\ 4  7 8>hR_c2)08>hR_c2L#{8).8>hR_c2K!  ̋9D 00182Lv1){ b$0 קLK5Y Θ   O  l*ΘP  D 00182Lv1){ b$0L קK 5Y ͛    O  l*͛P  \9ܚ7{<NΘD\ܚ۝7{<N͛D\۝   - 00182LvL+5 ̋: LL# #0Ў  6    LJ  *   I  I} 8>hR_c2-:0є#{*ɉ % ;;̋;H 00182Lv1){ b$0J9]    O  l*P  H 00182Lv1){ b$0L 9]]]   Unique_markerEO+7#CC8f  \       O  l*P    (  (   \;7{<NH\ٳ7{<NH\ٳ \(ʱ߱  4 0 O" O O  Jށށށށ'ށ' ݈xՁ2^!ۈށ'ۈށ x ) )܄ۃ4~    ۃ 7  G݈7B~΅  ۈۈ  *  ^    9Split X %[|r RR 8 Enumerate))məA3RRQRRR 9RR R  z z     T   R \~\)   {-P 8 S$ z  GS8$#.Y9 7 S z 7 G Y ЍYYY Y Y YYY GYY Y YY  Placeholder ,~oYY  YY G YYY GGGG_privateGKv_'Y.Y Y GS9)YU'U'ˊU'U'! U'!%U'V׌)U'WWˊ#"WW% "W%%W X׌)W& Y&%:  GS: (ZZˊ('ZZ) 'Z)+ >+* Z[׌)Z\*!; .  z ;.-] ] ˊ-,] ] / ,] /% ] ^׌)] <2 z <21"__ˊ10#__3 0_3%$_`׌)_= = 5&aaˊ54'aa6 4a6(ab׌)aQ7YVV''XX  [[ ^^  ``bb>~  3444&mS zR R {-PR R`QzT  ` U'~.YY YYYЍ Y YYYh٬!$_Y  mGqYYY`VW~z`XYZ~`[\ ] ~z `^_~z``a~`b         R  4 V '\ X   \ [  \ ^  \ ` \ b \  z z : z  7    4 4 C"K   4 (  b(   J  V     4 5 H8U3   4    JJ  i J  J  ) i  4 6 gs" u   4   - S S  -    JP *   J* W J  5 S O  l*JP #CC8fJ5  J       J8 1  p 7{<N S #CC8f   p     J    J  T  S    T  M J PhantomData<ɏ J | 8>hR_c2J    |  M J<ɏ J  9O|A\J S        - 8>hR_c2S       -     #CC8fS S   W S<ɏ              C S  |        |     S8  T <ɏ    8>hR_c2    #CC8f       M S<ɏ  9O|A\S         S   S M    S   M       F   υ   F   - ȃ ȃ  -     T <ɏ   9O|A\ ȃ      M S   ȃ     M S  ȃ ȃ          R  ȃ υ   R        S  F S ȃ υ   F V  GV[~  V V[V  GV]~ ͑]V ]~  V͑]V ]~ ͑]"]#`"]#"]# `"]#"] "]"] 5yts"] ԗ"]`"]#`"]#"]"]Ε  JJݕ5h J5   G   z   %  888 *&j5d9e՛kJ {-Pzٛ  ` zΛfmt_arguments_as_strٛ<JJ)< TLULL TLULL{ V{{V{V{{{ V{{V{V{{ VVV VVV W W e ;())6 6&6,0< 7<x<G =@?  [![github]](https://github.com/dtolnay/anyhow) [![crates-io]](https://crates.io/crates/anyhow) [![docs-rs]](https://docs.rs/anyhow)g [github]: https://img.shields.io/badge/github-8da0cb?style=for-the-badge&labelColor=555555&logo=githubjk [crates-io]: https://img.shields.io/badge/crates.io-fc8d62?style=for-the-badge&labelColor=555555&logo=rustnj [docs-rs]: https://img.shields.io/badge/docs.rs-66c2a5?style=for-the-badge&labelColor=555555&logo=docs.rsm
K This library provides [`anyhow::Error`][Error], a trait object based errorN= type for easy idiomatic error handling in Rust applications.@ # Details J - Use `Result`, or equivalently `anyhow::Result`, asM, the return type of any fallible function./M Within the function, use `?` to easily propagate any error that implementsP! the `std::error::Error` trait.$ ```  # pub trait Deserialize {}  # # mod serde_json { # use super::Deserialize;# # use std::io;ЯG # pub fn from_str(json: &str) -> io::Result {J # unimplemented!()  # }  # } Я  # struct ClusterMap; Я ' # impl Deserialize for ClusterMap {} *Я  use anyhow::Result;  0 fn get_cluster_info() -> Result { 3= let config = std::fs::read_to_string("cluster.json")?; @< let map: ClusterMap = serde_json::from_str(&config)?; ? Ok(map)  } Я  # fn main() {}   I - Attach context to help the person troubleshooting the error understand LC where things went wrong. A low-level error like "No such file or FM directory" can be annoying to debug without more context about what higher P3 level step the application was in the middle of.6  # struct It;Я # impl It {) # fn detach(&self) -> Result<()> {, ױ  Я! use anyhow::{Context, Result};$ fn main() -> Result<()> { # return Ok(()); # % # const _: &str = stringify! {( ...  # };  # let it = It;, # let path = "./path/to/instrs.json";/ D it.detach().context("Failed to detach the important thing")?;G( let content = std::fs::read(path)+M .with_context(|| format!("Failed to read instrs from {}", path))?;P (   # Ok(())  ```console: Error: Failed to read instrs from ./path/to/instrs.json= Caused by:- No such file or directory (os error 2)0 K - Downcasting is supported and can be by value, by shared reference, or byN mutable reference as needed."  # use anyhow::anyhow;# # use std::fmt::{self, Display};& # use std::task::Poll;Я # #[derive(Debug)] # enum DataStoreError { # Censored(()), Я& # impl Display for DataStoreError {)G # fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {J ױ  Я1 # impl std::error::Error for DataStoreError {}4Я% # const REDACTED_CONTENT: () = ();(Я # let error = anyhow!("...");# # let root_cause = &error; Я # let ret =9 // If the error was caused by redaction, then return a<' // tombstone instead of the content.*6 match root_cause.downcast_ref::() {9N Some(DataStoreError::Censored(_)) => Ok(Poll::Ready(REDACTED_CONTENT)),Q None => Err(error), # ;  M - If using the nightly channel, or stable with `features = ["backtrace"]`, aPK backtrace is captured and printed with the error if the underlying errorNJ type does not already provide its own. In order to see backtraces, theyMA must be enabled through the environment variables described inD [`std::backtrace`]:  ? - If you want panics and errors to both have backtraces, set B `RUST_BACKTRACE=1`;!L - If you want only errors to have backtraces, set `RUST_LIB_BACKTRACE=1`;!OK - If you want only panics to have backtraces, set `RUST_BACKTRACE=1` and!N `RUST_LIB_BACKTRACE=0`.""A The tracking issue for this feature is [rust-lang/rust#53487]."D#_ [`std::backtrace`]: https://doc.rust-lang.org/std/backtrace/index.html#environment-variables#bI [rust-lang/rust#53487]: https://github.com/rust-lang/rust/issues/53487$L$L - Anyhow works with any error type that has an impl of `std::error::Error`,$OK including ones defined in your crate. We do not bundle a `derive(Error)`%NL macro but you can write the impls yourself or use a standalone macro like&O [thiserror].&&4 [thiserror]: https://github.com/dtolnay/thiserror&7''  use thiserror::Error;'' #[derive(Error, Debug)]' pub enum FormatError {'H #[error("Invalid header (expected {expected:?}, got {found:?})")](K InvalidHeader {( expected: String,( found: String,) },) ) #[error("Missing attribute: {0}")]), MissingAttribute(String),)#** *M - One-off error messages can be constructed using the `anyhow!` macro, which*PA supports string interpolation and produces an `anyhow::Error`.*D++ " # use anyhow::{anyhow, Result};+%Я+ # fn demo() -> Result<()> {+! # let missing = "...";, 9 return Err(anyhow!("Missing attribute: {}", missing));,< # Ok(()),- - -H A `bail!` macro is provided as a shorthand for the same early return.-K--  # use anyhow::{bail, Result};-#Я..!. + bail!("Missing attribute: {}", missing);..// / /// # No-std support//M In no_std mode, the same API is almost all available and works the same way./PF To depend on Anyhow in no_std mode, disable our default enabled "std"0I7 feature in Cargo.toml. A global allocator is required.1:1 ```toml1  [dependencies]17 anyhow = { version = "1.0", default-features = false }1: ```22A Since the `?`-based error conversions would normally rely on the2DK `std::error::Error` trait which is only available through std, no_std mode2ND will require an explicit `.map_err(Error::msg)` when working with a3GJ non-Anyhow error type inside a function that returns Anyhow's error type.4M4445 4 4https://docs.rs/anyhow/1.0.72448 e ;())6 6&6,0< 7<x<G =@? ;;; ; ;  ; ;       2 bLm2)*      2                              H       err          cc\ dd\  JdJdJd Jdd; ; $   P0  P @  @  $KP} " 5yts"6 "R "head"H  "R(7 7H {-PH9 "- 7 7H " &         7H - 7 7H {-PH9  7 $7I7 7I 7  7II 7; ;*TU]1 k,!5" <# InfallibleZ $vE&p|G'p|G'xG(WriteG) $!,,55<<KZ j(vp||,1 *+k,*+!5*+"Z *+$vE*+&p|G*+'p|G*+'xG*+(G*+)#**+&T*+&U*+&"]*+,,,--j bJ,d..,bGbbbb -b  $00JJJJJJ1j JbJ/d22/Ƃ؂ 1JbJ4j JLJ3d553LGLLLL 4L)7$887K,K KKKJ9;iJfh6d::6fGfff f  9JKf  Jlh6d<$=<=6 l     l\ l\f  ;JKfl      ,  # type T = ();  #  use anyhow::{Context, Result}; "  fn maybe_get() -> Option { !( # const IGNORE: &str = stringify! {+ ...  # };  # unimplemented!() } fn demo() -> Result<()> {3 let t = maybe_get().context("there is no T")?;6+Ӎ  ??K@BiKbh>dAA>Ƃ؂ @Jb Kvh>dC$DDC>vƂ؂v\ v\b BJbv'dF$GFGGKKH4777 7K 7GGGEGEGEG EGEGMEQ ! >S7~EE HLK)dJ$KJKKL4777 7K 7GGGEGEGEG EGEGMEQ ! >S7~II LLK*dN$ONOKKP57 7K {-P 7RMM PLK+dRRLS57 7L {-P 7RQQ SLdVVLZG\aUWLLLLTT ULTTLdYYLZ<777 7L 7GGGEGEGEG EGEGMEQ ! >S7~XX ZL !.77M\!/! 77 7M 7~[![ \77! !""_1 ]^k,]^!5]^"Z ]^$vE]^&p|G]^'p|G]^'xG]^(G]^)#*]^&T]^&U]^&"]]^ <]^#"""___""a$bab"## J""###dd#K##; ;pv| ef%8eg=EeipCGejpCGejJGek MaybeUninita elx em Jen Xeo  %1=7CCJJVa r x    pppqq7 Jpp q*'s'ttsNNGNGNNu6NJrr uNN*   vvvww7Jvv w*#7'y'zyzNNN{6NJxx {7NN* eNߏ0.}e||uninit  ?+˼<(e||NeN e7 7N 7 N/ 77 7N 7~    G e77 7G7 7G7J *         atom 6   fuel            op   dup    )     ֺ     stack   6    ݸ   parse       @     )  6      6    ݸ          @     )  6      6    ݸ          @     )  6      6    ݸ         2 @     )  6      6    ݸ          @     )  6      6    ݸ    M                @     (     6 ݸ  M     @  @      6    ݸ    M                @     (     6 ݸ  M     @  @      6    ݸ    M                @      (           6        ݸ            M                     @        @     !         6    !! !!!!! ݸ!!  ! !!!!!!!!! M!!  ! !!!!! !!  ! !!!! !!  !!!!! !!  ! ! !!!!! @!!  ! !!!"! !! (! !!" !" "" 6""""""" ݸ" """"""""" M" "" """"" " """"""" @" """"" @" """# "" ""  "" 6""  """ """"" ݸ""  " ""####### M##  # ##### ##  # ### # life##  ## colon##  ##### ##  # ## ## ###### @##  # ###$# ## (# $$$  $$ $$ 6$$$$$$$ ݸ$ $$$$$$$$$ M$ $$ $$ $$$$$ $ $$$$$$$ @$ $$$$$ @$ $$$% $$ $$  $$ 6$$  $$% $$$%% ݸ%%  % %%%%%%%%% M%%  % %%%%% %%  % %%% % %%  %% %%  %%%%% %%  % % % %%%%% @%%  % %%%&% %% (% %%&  && && 6&&&&&&& ݸ& &&&&&&&&& M& && && &&&&& & &&&&&&& @& &&&&& @& &&&' && &&  && 6&&  &&' &&&'& ݸ&&  ' ''''''''' M''  ' ''''' ''  ' '''' ''  ''''' ''  ' ' ''''' @''  ' '''(' '' (' ''(  '' '' 6''('((( ݸ( ((((((((( M( (( ((((( ( ((((((( @( ((((( @( ((() (( ((  (( 6((  ((( ((((( ݸ((  ( (()(((((( M((  ( (())) ))  ) ))) ) andand))  )) ))  ))))) ))  ) )) ))))) @))  ) )))*) )) () ))*  )) )) 6))*)))) ݸ) ********* M* ** ** ***** * ******* @* ***** @* ***+ ** **  ** 6**  *** ***** ݸ**  * **+****** M**  * *++++ ++  + ++++ ++  +++++ ++  + ++++++ @++  + +++,+ ++ (+ ++,  ++ ++ 6+++++++ ݸ+ ++,+,++,+ M+ ,, ,,,,, , ,,,,,,, @, ,,,,, @, ,,,- ,, ,,  ,, 6,,  ,,- ,,,,, ݸ,,  , ,-------- M--  - ----- --  - ---- --  ----- --  - - ----- @--  - ---.- -- (- --.  --- cond-- -- 6-...... ݸ. ......... M. .. ..... . ....... @. ..... @. .../ .. ..  .. 6..  ... ..... ݸ..  . ../...... M..  . .//// //  / //// //  ///// //  / / ///// @//  / ///0/ // (/ //0  /// ¬// // 6//0//// ݸ/ 000000000 M0 00 00000 0 0000000 @0 00000 @0 0001 00 00  00 600  000 00000 ݸ00  0 001000000 M00  0 00010 01  1 1111 &11  11111 11  1 1 &11111 @11  1 11121 11 (1 112  111 ¬11 11 61111111 ݸ1 112121122 M2 22 &22222 2 2222222 @2 22222 @2 2223 22 22  22 622  222 22222 ݸ22  2 223222222 M22  2 22222 22  2 2333 33  33333 33  3 3 33333 @33  3 33343 33 (3 334 333 ¬33 33 63333333 ݸ3 334343333 M3 33 34444 4 4444444 @4 44444 @4 4445 444 ¬44 44  44 644  444 44444 ݸ44  4 444444444 M44  4 44444 44  4 4555 brace55  55555 55  5 5555555 55  5 55555 @55  5 55565 55 (5 556 ¬55 55 65555555 ݸ5 556565565 M5 66 66666 6 6666666 @6 66666 @6 6667 ¬66 66  66 666  666 66666 ݸ66  6 667666666 M66  6 66666 66  6 777 7  77  77 77  77777 77  7 7  7 77777 @77  7 77787 77 (7 778  777 ¬77 77 67777777 ݸ7 778788888 M8 88  88 88888 8 8888888 @8 88888 @8 8889 ¬88 88  88 688  888 88888 ݸ88  8 889888888 M88  8 88898 89  9 999 9  99  99 99  99999 99  9 9  9999999 99  9 99999 @99  9 999:9 99 (9 99: 99 99 6::::::: ݸ: ::::::::: M: ::  :: ::::: : ::::::: @: ::::: @: :::; ¬:: ::  :: 6::  ::; ::::: ݸ::  : :; ;;  ;; ;;  ;;;;; @;;  ; ;;;<; ;; (; ;;; ;; ;; 6;;;;;;; ݸ; ;; ;; ;;;;; @; ;<<= << <<  << 6<<  <<< <<<<< ݸ<<  < <<<<<<<<< M<<  < <<<<< <<  < <<<< paren<<  <<<<< <<  < <<===== content==  = ===== @==  = ===>= == (= ==> == == 6======= ݸ= ========= M= == ===== = =>>>>>> @> >>>>> @> >>>? >> >>  >> 6>>  >>> >>>>> ݸ>>  > >>>>>>>>> M>>  > >>>>> >>  > >>?> bracket>>  >>>>> >>  > >?????? ??  ? ????? @??  ? ???@? ?? (? ??@ ?? ?? 6??????? ݸ? ??@?????? M? ?? ???@? ? @@@@@@@ @@ @@@@@ @@ @@@A @@ @@  @@ 6@@  @@@ @@@@@ ݸ@@  @ @@@@@@@@@ M@@  @ @@@@@ @@  @ @@A@ @@  @@@@@ @@  @ AAAAAAA AA  A AAAAA @AA  A AAABA AA (A AAB AA AA 6AAAAAAA ݸA AABAAAAAA MA AA AAAAA A BBBBBBB @B BBBBB @B BBBC BB BB  BB 6BB  BBB BBBBB ݸBB  B BBBBBBBBB MBB  B BBBBB BB  B BBC B BB  BB BB  BBBCC CC  C C CCCCCCC bodyCC  C CCCCC @CC  C CCCDC CC (C CCD CC CC 6CCCCCCC ݸC CCDCDCCCC MC CC CD DDDDD D DDDDDDD @D DDDDD @D DDDE DD DD  DD 6DD  DDD DDDDD ݸDD  D DDDDDDDDD MDD  D DDDDD DD  D DDE D 3DE  EE EE  EEEEE EE  E E 3EEEEEEE EE  E EEEEE @EE  E EEEFE EE (E EEF EE EE 6EEFEEFE ݸE FFFFFFFFF MF FF 3FF FFFFF F FFFFFFF @F FFFFF @F FFFG FF FF  FF 6FF  FFF FFFFF ݸFF  F FFGFGFFFF MFF  F FGGGG GG  G GGGG 3GG  GG GG  GG GG  GGGGG GG  G G 3G GGGGGGG GG  G GGGGG @GG  G GGGHG GG (G HHH HH HH 6HHHHHHH ݸH HHHHH HHHH MH HH 3HH HH HHHHH H HHHHHHH @H HHHHH @H HHHI HH HH  II 6II  III IIIII ݸII  I IIIIIIIII MII  I IIIII II  I III I #II  II II  IIIII II  I I #IIIIIII II  I IIIII @II  I IJJKJ JJ (J JJK JJ JJ 6JJJJJJJ ݸJ JJJJJJJJJ MJ JJ #JJ JJJJJ J JJJJJJJ @J JJJJJ @J JKKL KK KK  KK 6KK  KKK KKKKK ݸKK  K KKKKKKKKK MKK  K KKKKK KK  K KKK K KK  KK KK  KKKKK KK  K K KKLKKLK KL  L LLLLL @LL  L LLLMM MM (M MMM MM MM 6MMMMMMM ݸM MMMMMMMMM MM MM MM MMMMM M MMMMMMM @M MMMMM @M MMNN NN NN  NN 6NN  NNN NNNNN ݸNN  N NNNNNNNNN MNN  N NNNNN NN  N NN NN  NN litNN NNNNN @NN  N NNNON NN (N OOO OO OO 6OOOOOOO ݸO OOOOOOOOO MO OO OOOOO O OOOOOOO @O OOOOO @O OOPP PP PP  PP 6PP  PPP PPPPP ݸPP  P PPPPPPPPP MPP  P PPPPP PP  P PPPP colonsPP  PPPPP PP  P PPP PP PPPPP @PP  P PPQRQ QQ (Q QQR epathQQQ QQ QQ 6QQQQQQQ ݸQ QQQQQQQQQ MQ QQ QQ QQQQQ Q QQQQQQQ @Q QQQRQ @R RRRR RR RR  RR 6RR  RRR RRRRR ݸRR  R RRRRRRRRR MRR  R RRRRR RR  R RR RR  RR RR RRRRR @RR  R RRRTS SS (S SSS SSS SS SS 6SSSSSSS ݸS SSSSSSSSS MS SS SSSSS S SSSSSSS @S SSSSS @S STTT TT TT  TT 6TT  TTT TTTTT ݸTT  T TTTTTTTTT MTT  T TTTTT TT  T TTTT langleTT  TTTTT TT  T TTTTTT @TT  T TTTVU UU (U UUV "UUU qpathUUU UUU UU UU 6UUUUUUU ݸU UUUUUUUUU MU UU UUUUU U UUUUUUU @U UUUVU @U VVVW VV VV  VV 6VV  VVV VVVVV ݸVV  V VVVVVVVVV MVV  V VVVVV VV  V VVV V VV  VV VV  VVVVV VV  V VVWWWWW @WW  W WWWXW WW (W WWX genericWWW WW WW 6WWWWWWW ݸW WWXWWWWWW MW WW WW WWWXW W XXXXXXX @X XXXXX @X XXXY XX XX  XX 6XX  XXX XXXXX ݸXX  X XXXXXXXXX MXX  X XXXXX XX  X XXYX XX  XXXYY YY  Y YY YYYYY @YY  Y YYYZY YY (Y YYZ YYY YY YY 6YYYYYYY ݸY YYZYZYYYY MY YY YZZZZZ Z ZZZZZZZZ @Z ZZZZZZ @Z ZZZ[ ZZ ZZ  ZZ 6ZZ  ZZZ ZZZZZ ݸZZ  Z ZZZZZZZZZ MZZ  Z ZZZZZ ZZ  Z ZZ[Z [[  [[[[[ [[  [ [[[[[[[ @[[  [ [[[\[ [[ ([ [[\ [[[ [[ [[ 6[[[[[[[ ݸ[ [[\[\[[\[ M[ \\ \\\\\\ \ \\\ \\\\\ @\ \ \\\\\ @\ \\\] \\ \\  \\ 6\\  \\\ \\\\\ ݸ\\  \ \\]\\\\\\ M\\  \ \\\]\ \]  ] ]]]] ]]  ]]]]] ]]  ] ]]] ]] ]]]]] @]]  ] ]]]^] ]] (] ]]^ ]] ]] 6]]^]]^] ݸ] ^^^^^^^^^ M^ ^^ ^^ ^^^^^ ^ ^^^^^^^ @^ ^^^^^ @^ ^^^_ ^^^^ pop^^ ^^ ^^  ^^ 6^^  ^^_ ^^^_^ ݸ^^  _ _________ M__  _ _____ __  _ ___ _ __  __ __  _____ __  _ _ _______ mac__  _ _____ @__  _ ___`_ __ (_ ``` ` `` `` 6``````` ݸ` ````````` M` `` `` ````` ` ``````` @` ````` @` ```a ``a` `` `` aa  aa 6aa  aaa aaaaa ݸaa  a aaaaaaaaa Maa  a aaaaa aa  a aaa a aa  aa aa  aaaaa aa  a a aaaaaaa aa  a aaaaa @aa  a aabcb bb (b bbb b bb bb 6bbbbbbb ݸb bbbbbbbbb Mb bb bb bbbbb b bbbbbbb @b bbbbb @b bccd cccc cc cc cc  cc 6cc  ccc ccccc ݸcc  c ccccccccc Mcc  c ccccc cc  c ccc c cc  cc cc  ccccc cc  c c cdddddd dd  d ddddd @dd  d ddded dd (d dde d dd dd 6ddddddd ݸd ddedddddd Md dd dd ddddd d eeeeeee @e eeeee @e eeee eeee ee ee ee  ee 6ee  eee eeeee ݸee  e ee ee  ee ee  eeeee @ee  e eefff ff (f ffff ff ff 6fffffff ݸf ff ff fffff @f fffg gg gg  gg 6gg  ggg ggggg ݸgg  g ggggggggg Mgg  g ggggg gg  g gggg gg  ggggg gg  g ggggggg gg  g ggggg @gg  g ggghh hh (h hhh hh hh 6hhhhhhh ݸh hhhhhhhhh Mh hh hhhhh h hhhhhhh @h hhhhh @h hhii ii ii  ii 6ii  iii iiiii ݸii  i iiiiiiiii Mii  i iiiii ii  i iiii ii  iiiii ii  i iiiiiii ii  i iiiii @ii  i iijjj jj (j jjj jj jj 6jjjjjjj ݸj jjjjjjjjj Mj jj jjjjj j jjjjjjj @j jjjjj @j jjkl kk kk  kk 6kk  kkk kkkkk ݸkk  k kkkkkkkkk Mkk  k kkkkk kk  k kkkk kk  kkkkk kk  k kkkkkkk initkk  k kkkkk @kk  k kllll ll (l lll ll ll 6lllllll ݸl lllllllll Ml ll lllll l lllllll @l lllll @l lmmm mm mm  mm 6mm  mmm mmmmm ݸmm  m mmmmmmmmm Mmm  m mmmmm mm  m mmmm questionmm  mmmmm mm  m mmmmmm @mm  m mmmnn nn (n nnn nn nn 6nnnnnnn ݸn nnnnnnnnn Mn nn nnnnn n nnnnnnn @n nnnnn @n nnop oo oo  oo 6oo  ooo ooooo ݸoo  o ooooooooo Moo  o ooooo oo  o oooo dotoo  oo oo  oo oo  oo oo  ooooo oo  o oop pp ppppppp @pp  p pppqp pp (p ppq ppp pp pp 6ppppppp ݸp ppqpq pppp Mp pp pp pq qq qqqqq q qqqqqqq @q qqqqq @q qqqr qq qq  qq 6qq  qqq qqqqq ݸqq  q qqrqqqqqq Mqq  q qqqrq qr  r rrrr rr  rr rr  rr rr  rrrrr rr  r rrr rr rr rrrrr @rr  r rrrsr rr (r rrs rrs rs ss 6sssssss ݸs sssss ssss Ms ss ss ss ssssss s ssssssss @s ssssss @s sssu ss ss  tt 6tt  ttt ttttt ݸtt  t ttttttttt Mtt  t ttttt tt  t tttt tt  tt tt  tt tt  ttttt tt  t ttt tt tttttut @tt  t uuuvu uu (u uuv uuu uu uu 6uuuuuuu ݸu uuuuu uuuu Mu uu uu uu uuuuuu u uuv vvvvv @v v vvvvv @v vvvw vv vv  vv 6vv  vvv vvvvv ݸvv  v vvvvvvvvv Mvv  v vvvvv vv  v vvwv vv  vvvvv vv  v www ww wwwww @ww  w wwwxw ww (w wwx ww ww 6wwwwwww ݸw wwxwwwwww Mw ww ww wwwxw w xxxxxxx @x xxxxx @x xxxy xx xx  xx 6xx  xxx xxxxx ݸxx  x xxxxxxxxx Mxx  x xxxxx xx  x xxy x xx  xx xy  yyyyy yy  y yyy yy yyyyy @yy  y yyyzy yy (y yyz yy yy 6yyyyyyy ݸy yyzyzyyyy My yy yz zzzzz z zzzzzzz @z zzzzz @z zzz{ zz zz  zz 6zz  zzz zzzzz ݸzz  z zzzzzzzzz Mzz  z zzzzz zz  z zz{{ {{  {{{{{ {{  { { {{{{{ @{{  { {{{|{ {{ ({ {{| "{{{ {{ {{ 6{{{{{{{ ݸ{ {{|{{{{{{ M{ {{ {{||| | ||||||| @| ||||| @| |||} "|||| || || ||  || 6||  ||| ||||| ݸ||  | ||}|||||| M||  | |}}}} }}  } }}}} }}  }}}}} }}  } }}}}}}} }}  } }}}}} @}}  } }}}~} }} (} }}~ } }} }} 6}~~~~~~ ݸ~ ~~~~~~~~~ M~ ~~ ~~~~~ ~ ~~~~~~~ @~ ~~~~~ @~ ~~~ "~~~~ ~~ ~~ ~~  ~~ 6~~  ~~ ~~~~ ݸ~    M                   @   ڀ  ( Ԁ    6 ݸ  M    ɀǀ€ @À Ȁˀ̀Ҁ̀ @΀ Ӏۀ݁ "    6    ݸ    M       ȁ  star     Ɓ Á  ā ǁ ʁ ˁсҁہӁ @ԁ؁  ف ܁߁  ( ܂ "  6 ݸ ł M     ĂǂтȂɂςʂ @˂ ЂӂԂڂՂ @ւ ۂ "    6    ݸ    M       ΃       ÃẵŃ ƃɃ  ʃ ̓ Ѓ уՃփ߃׃ @؃܃  ݃   ( ބ "  6 ݸ DŽ M   ń  ƄɄӄʄ˄ф̄ @̈́ ҄Մք܄ׄ @؄ ݄ "    6    ݸ    M       ޅ     …˅ ̅υ  ЅӅԅ܅Յ օم  څ ݅  l   @     (  "  6 ݸ ÆĆ݆ ņƆˆdž MȆ ̆Ά φӆ Ԇن چ߆   @  @  "    6    ݸ   Ӈ㇠M   ÇƇLJчȇ ɇ·  χ ҇Շ և ׇڇ  ۇއ ߇         @     (  "  6Ȉƈ ݸˆ Ljʈˈވ͈̈҈Έ Mψ ӈՈ ֈڈ ۈ   @  @  "    6    ݸ   ԉʼnÉ M   ĉljȉ҉ɉ ʉω  Љ Ӊ։ ׉ ؉ۉ  ܉߉          @     (  " ŠȊ 6ɊΊ؊ϊЊ֊ъ ݸҊ ׊ڊۊ܊݊ފ Mߊ      @  @  "    6  Nj ŋ ݸ‹  Ë Ƌɋʋ֋ˋ̋ԋ͋ M΋ы  ҋ Ջ؋ًڋ ۋ            @     (  "  6ČΌŌƌ̌nj ݸȌ ͌ЌьߌҌӌ،Ԍ MՌ ٌی ܌   @  @  "    6    ݸ   Սƍč M   ōȍɍӍʍ ˍЍ  э ԍ׍؍ ٍ܍  ݍ             @     ( ȎɎ "ʎώ Ў֎ 6׎܎ݎގߎ ݸ   M       @  @  "   Ï 6ďȏ  ɏ̏ڏ ͏ΏϏ؏Џ ݸяՏ  ֏ ُ܏ݏޏߏ M                    @     ( Аѐ "Ґא ؐސ 6ߐ ݸ  M      @  @  "   ‘ő 6Ƒʑ  ˑΑܑ ϑБёڑґ ݸӑב  ؑ ۑޑߑ M                    @   ˒ ̒ђ (Ӓ  "  6 ݸ  M      @  @ Ǔ "ȓ͓ Γӓ  ԓד 6ؓܓ  ݓ  ݸ    M               @   ” ÔȔ (ʔ ؔٔ "ڔߔ  6 ݸ  M     @  @ ʖ " ĕ  ŕȕ 6ɕ͕  Εѕߕ ҕӕԕݕՕ ݸ֕ڕ  ە ޕ M         #             #Ȗ @Ŗ  Ɩ ɖ̖ϖʗٖ ږߖ ( ė "  6 ݸ  M  #   @ — @ ×˗җ "ӗؗ ٗޗ  ߗ 6    ݸ    M                      ˜ɘ ʘ͘ Θ֘טؘ @٘ݘ  ޘ   (  "  6 ݸ ʙ M    ș™ Ù ə̙͙֙Ιԙϙ @Й ՙؙٙߙڙ @ۙ  "    6    ݸ    M       К      šŚƚΚǚ Ț˚  ̚ Ϛ  Қٚښۚ @ܚ     ( ߛ "  6 ݸ ț M   ƛ  Ǜʛԛ˛̛қ͛ @Λ ӛ֛כݛ؛ @ٛ ޛ "    6    ݸ    M       ۜ     œ  ÜƜ arrowǜ̜  ͜МќٜҜ Ӝ֜  ל ڜ  ݜ     @     (  "  6 ݸ Ýĝߝ ŝƝ˝ǝ Mȝ ̝Ν  ϝҝ ӝٝ  ڝ   @  @  "      6  Ğ ž ݸ   ÞƞǞӞȞɞўʞ M˞Ξ  Ϟ Ҟ՞֞מ ؞ݞ  ޞ                    @     ( Ɵǟ ȟ ɟ͟ Οԟ 6՟ڟ۟ܟݟ ݸޟ  M       @  @  "    6   ŠӠ ƠǠȠѠɠ ݸʠΠ  Ϡ Ҡՠ֠נؠ٠ Mڠݠ  ޠ              @     (  "¡ǡ ȡΡ 6ϡԡޡա֡ܡס ݸء ݡ M     @  @  "    6  Ȣ Ƣ ݸâ  Ģ Ǣʢˢע̢͢բ΢ MϢҢ  Ӣ ֢٢ڢۢ ܢ    5       5 @     (  "  6£ǣѣȣɣϣʣ ݸˣ Уӣԣգ֣ۣף Mأ ܣޣ 5ߣ   @  @  "      6  Ǥ Ť ݸ¤  ä Ƥɤʤ֤ˤ̤Ԥͤ MΤѤ  Ҥ դؤ٤ڤ ۤ    wild        @     (     6ťϥƥǥͥȥ ݸɥ Υѥҥӥԥ٥ե M֥ ڥܥ  ݥ   @  @  "      6  Ʀ Ħ ݸ  ¦ ŦȦɦզʦ˦Ӧ̦ MͦЦ  Ѧ Ԧצئ٦ ڦߦ            @     (     6ŧϧƧǧͧȧ ݸɧ Χѧҧӧԧ٧է M֧ ڧܧ ݧ   @  @  "    6    ݸ   بɨǨ MĨ  Ũ Ȩ˨̨֨ͨ ΨӨ  Ԩ רڨ ۨ ܨߨ           @     (  ȩ "© éʩ 6˩Щکѩҩةө ݸԩ ٩ܩݩީߩ M      @  @  " ê  ĪǪ 6Ȫ̪  ͪЪު ѪҪӪܪԪ ݸժ٪  ڪ ݪ M                 @   « ëȫ (ʫ ث٫ tpathګ  6 ݸ  M      @  @ ì "Ĭɬ ʬϬ  ЬӬ 6Ԭج  ٬ܬ ݬެ߬ ݸ    M             @     (­ Эѭ  ҭح ٭߭ 6 ݸ  M     @  @  "   î 6ĮȮ  ɮ̮ڮ ͮήϮخЮ ݸѮծ  ֮ ٮܮݮޮ߮ M               @     ( Ưǯ "ȯͯ ίԯ  կۯ ܯ 6 ݸ  M     @  @    ư  ǰʰ 6˰ϰ  аӰ ԰հְ߰װ ݸذܰ  ݰ  M               @     ( ͱα ϱױ  رޱ ߱ 6 ݸ  M     @  @   ² òȲ  ɲ̲ 6ͲѲ  Ҳղ ֲײزٲ ݸڲ޲  ߲  M            @     (  ɳֳ  ʳг ѳس 6ٳ޳߳ ݸ  M    @  @       6  ´ŴӴ ƴǴȴѴɴ ݸʴδ  ϴ Ҵմִ״شٴ Mڴݴ  ޴         @     (  Ƶ   ȵ 6ɵεصϵеֵѵ ݸҵ ׵ڵ۵ܵݵ޵ Mߵ     @   @       6  ö  ݸ   ¶ŶƶҶǶȶжɶ MʶͶ  ζ ѶԶն߶ֶ ׶ܶ  ݶ             @     (  ǷԷ  ȷη Ϸַ 6׷ܷݷ޷߷ ݸ  M      @  @      ĸ 6Ÿɸ  ʸ͸۸ θϸиٸѸ ݸҸָ  ׸ ڸݸ޸߸ M                @     ( ˹̹ ͹չ  ֹܹ ݹ 6 ݸ  M     @  @   ƺ Ǻ̺  ͺк 6Ѻպ  ֺٺ ںۺܺݺ ݸ޺    M               @   ü »ǻ (ɻ ׻ػ ٻ    6 ݸ  M      @   @ ļ˼Ƚ  ̼Ҽ Ӽؼ  ټܼ 6ݼ    ݸ    M                ƽ @ý  Ľ ǽʽͽо׽ ؽݽ (߽ ʾ    6 ݸ  M      @ ¾Ⱦþ @ľ ɾѾؾ  پ߾    6    ݸ    M                   ¿ϿÿĿͿſ ƿʿ  ˿ οѿԿտ޿ֿ @׿ۿ  ܿ ߿  (  "  6 ݸ  M       @  @       6    ݸ    M                   @     (    6 ݸ  M     @  @       6    ݸ    M                          @     (  "  6 ݸ   M        @  @       6    ݸ    M                       @     (    6 ݸ  M      @  @         6    ݸ    M                        @     (     6 ݸ  M      @  @         6    ݸ    M                        @     (     6 ݸ  M      @  @         6    ݸ    M                        @     (     6 ݸ  M      @  @       6    ݸ          @     (    6 ݸ    @        6    ݸ    M         rangle            @     (     6 ݸ   M        @  @      6    ݸ    M                @     (  "   6 ݸ  M     @  @   arglist    6    ݸ    M         plus             @     (       6 ݸ   M        @  @        6    ݸ    M                   @     (       6 ݸ  M       @  @        6    ݸ          @     (    6 ݸ    @        6    ݸ    M                @     (     6 ݸ  M      @  @        6    ݸ    M            @     (     6 ݸ  M    @  @      6    ݸ    M             @     (     6 ݸ  M     @  @      6    ݸ    M                   @     (     6 ݸ  M     @  @      6    ݸ    M             @     (     6 ݸ  M     @  @      6    ݸ    M         assoc           @     (  "    6 ݸ  M       @  @      6    ݸ          @     (  "    6 ݸ    @       6    ݸ    M        comma       @     (    6 ݸ  M  ͼ    @  @         6    ݸ    M                @     (     6 ݸ  M      @  @         6    ݸ    M            @     (     6 ݸ  M    @  @      6    ݸ    M        pipe        @     (    6 ݸ  M      @  @      6    ݸ    M               @     (     6 ݸ  M     @  @      6    ݸ    M                @     (     6 ݸ  M     @  @      6    ݸ    M                @     (    6 ݸ  M     @  @      6    ݸ    M                @     (    6 ݸ  M     @  @      6    ݸ    M        at        @     (    6 ݸ  M      @  @      6    ݸ    M             @     (    6 ݸ  M     @  @      6    ݸ    M        range       @     (    6 ݸ  M      @  @      6    ݸ    M                @     (    6 ݸ  M      @  @      6    ݸ    M                @   ހ  ( ؀   6 ݸ  M    À̀Āŀˀƀ @ǀ ̀πЀրр @Ҁ ׀߀ԁ     6    ݸ    M       Á       ŁȁɁҁʁ @ˁρ  Ё Ӂցفӂ  ( ͂   6 ݸ  M    ‚ @ Ăł˂Ƃ @ǂ ̂Ԃۂ׃ ܂    6    ݸ    M              Ƀǃ ă  Ń ȃ˃̃Ճ̓ @΃҃  Ӄ փك܃Մ  ( τ   6 ݸ  M    Ą„ @ ÄƄDŽ̈́Ȅ @Ʉ ΄ք݄ۅ ބ    6    ݸ    M              ͅ˅ ȅ  Ʌ ̅υЅمх @҅օ  ׅ څ݅ۆ  ( Ն   6 ݸ  M    ʆ†ȆÆ @Ć Ɇ̆͆ӆΆ @φ Ԇ܆߇     6    ݸ    M              ч‡Çχć Ň̇  ͇ ЇӇԇ݇Շ @ևڇ  ۇ އ݈  ( ׈   6 ݸ  M    ˆ̈ÈĈʈň @ƈ ˈΈψՈЈ @ш ֈވЉ     6    ݸ    M                ‰ĉʼnΉƉ @ljˉ  ̉ ω҉Չ͊߉  ( NJ   6 ݸ  M      @ Ŋ @ ƊΊՊЋ ֊ڊ ۊ   6    ݸ    M                ċŋ΋Ƌ @Njˋ  ̋ ϋҋՋތߋ  ( ،    6 ݸ  M     Ì͌ČŌˌƌ @nj ̌όЌ֌ь @Ҍ ׌ߌ͍     6    ݸ    M            ˍÍ @čȍ  ɍ ̍ύҍӎ܍ ݍ ( ͎    6 ݸ  M    Ž @ ĎŎˎƎ @ǎ ̎Ԏێȏ ܎    6    ݸ    M              Ə @Ï  ď Ǐʏ͏ސ׏ ؏ݏ (ߏ ؐ "     6 ݸ  M    Ð͐ĐŐːƐ @ǐ ̐ϐА֐ѐ @Ґ אߐ     6    ݸ   ԑőÑ M   đǑȑґɑ ʑϑ  Б ӑ֑ב ؑۑ  ܑߑ      @     (     6 ݸ ג˒Ē M Œǒ Ȓ͒ΒՒϒ В ْ֒ڒےܒ @ݒ  @      6    ݸ    M       Óדē  œȓ  ɓ͓̓ՓΓ ϓғ  ӓ ֓ ٓۓܓݓ @ޓ     ( ۔    6 ݸ Ĕ M   ”  ÔƔДǔȔΔɔ @ʔ ϔҔӔٔԔ @Ք ڔԕ     6    ݸ    M       ĕ   •    Õ ƕȕɕҕʕ @˕ϕ  Е ӕٕ֕Ζ  ( Ȗ    6 ݸ  M     @ Ɩ @– ǖϖ֖ זܖ ݖ   6    ݸ    M                @   ×ƗЗ ї֗ (ؗ     6 ݸ  M     @  @ Ø Ęɘ ʘϘ  ИӘ 6Ԙؘ  ٘ܘ ݘޘߘ ݸ    M                @    Ù (ř әԙ  ՙי ؙޙ 6ߙ ݸ  M     @  @      6Ś  ƚɚך ʚ˚̚՚͚ ݸΚҚ  Ӛ ֚ٚښۚܚݚ Mޚ                @     ( Ûě  śǛ țΛ 6ϛԛޛ՛֛ܛכ ݸ؛ ݛ M     @  @      6  ʜ Ȝ ݸŜ  Ɯ ɜ̜ٜ͜ΜϜלМ MќԜ  ՜ ؜ۜܜݜ ޜ            @     (     6ǝѝȝɝϝʝ ݸ˝ Нӝԝ՝֝۝ם M؝ ܝޝ ߝ   @  @      6    ݸ   ۞̞žʞÞ MĞǞ  Ȟ ˞ΞϞٞО ў֞  מ ڞݞޞ ߞ        @     (     6ß ݸ ŸşƟ֟ǟȟ͟ɟ Mʟ ΟП џ؟ٟڟ ۟  @  @      6    ݸ   ̠ M   ʠ  Ǡ  Ƞ ˠΠϠ  РӠ  Ԡנؠ٠ ڠݠ  ޠ   @     (     6 ݸ Сġ M   ơǡΡȡ ɡ ϡҡܡӡԡڡա @֡ ۡޡߡ @      6    ݸ    M       Т    ¢ŢƢ΢Ǣ Ȣˢ  ̢ Ϣ Ңբ֢ߢע @آܢ  ݢ ۣ  ( գ    6 ݸ  M     ʣ£ȣã @ģ ɣ̣ͣӣΣ @ϣ ԣܣ  6    ݸ   Ť M   ä    ĤǤڤȤ ɤˤ  ̤ϤФؤѤ Ҥդ  ֤ ٤ܤߤ @     ( ݥ   6 ݸ ƥ   M å ĥȥҥɥʥХ˥ @̥ ѥԥեۥ֥ @ץ ܥ֦     6    ݸ    M       Ŧ   æ    ĦǦʦ˦Ԧ̦ @ͦѦ  Ҧ զئۦϧ  ( ɧ    6 ݸ  M     @ ǧ§ @ç ȧЧק اݧާ 6    ݸ    M               @   ʨ ˨Ш (Ҩ    6 ݸ    M   @  @   ©ǩ  ȩ˩ 6̩Щ  ѩԩ թ֩שة ݸ٩ݩ  ީ  M               @     ( ˪̪  ͪϪ Ъ֪ 6תܪݪުߪ ݸ  M     @  @   6  ǫ ū ݸ«  ë ƫɫʫ֫˫̫ԫͫ MΫѫ  ҫ իث٫ګ ۫           @     (    6ƬĬ ݸ ŬȬɬʬ̬ͬԬά Ϭ լ׬ج٬ެڬ M۬ ߬  @  @      6    ݸ   ϭ M   ­íͭĭ ŭʭ  ˭ έѭҭ ӭխ  ֭٭ڭۭ ܭ߭    @     (     6 ݸ ЮĮ M  ®ƮǮήȮ ɮ ϮҮܮӮԮڮծ @֮ ۮޮ߮ @ ٯ  6    ݸ    M       ȯ   Ư ï  į ǯʯͯίׯϯ @Яԯ  կ دۯޯѰ  ( ˰   6 ݸ    M   @ °ðɰİ @Ű ʰҰٰı ڰ߰    6    ݸ    M              ± @   ñƱɱӱ Աٱ (۱     6 ݸ  M     @  @ Ų Ʋ˲̲β 6ϲӲ  Բײ زٲڲ۲ ݸܲ    M               @     ( γϳ  гҳӳճ 6ֳ۳ܳݳ޳ ݸ߳    M   @  @      6  ´д ôĴŴδƴ ݸǴ˴  ̴ ϴҴӴߴԴմݴִ M״ڴ  ۴ ޴            @     (    ĵ 6ŵʵԵ˵̵ҵ͵ ݸε ӵֵ׵صٵ޵ڵ M۵ ߵ    @  @   6    ݸ   ӶͶ M   öƶǶѶȶ ɶζ  ϶ Ҷնֶ ׶ٶ  ڶݶ޶߶     @     (    6 ݸ ӷ·  ÷ŷηƷǷ̷ȷ Mɷ ͷз ѷշ߷ַ׷ݷط @ٷ ޷ @      6    ݸ    M       Ҹ ø  ĸǸȸиɸ ʸ͸  θ ѸԸָ׸ظ @ٸݸ  ޸ ۹  ( չ    6 ݸ  M    ʹ¹ȹù @Ĺ ɹ̹͹ӹι @Ϲ Թܹ      6    ݸ   ֺǺź Mº  ú ƺɺʺԺ˺ ̺Ѻ  Һ պغٺ ںݺ  ޺     @     (      6û ݸ »ŻƻԻǻȻͻɻ Mʻ λл ѻֻ׻޻ػ ٻ ߻ @  @       6    ݸ   м M   üļμż Ƽ˼  ̼ ϼҼӼ Լּ  ׼ڼۼܼ ݼ    @     (      6 ݸ ؽ̽ƽ½ Mý ǽɽ ʽνϽֽн ѽ ׽ڽ۽ܽݽ @޽  @       6    ݸ   Ⱦ M   ƾ þ  ľ Ǿʾ˾ assign̾Ҿ  Ӿ־׾߾ؾ پܾ  ݾ  @     (      6 ݸ ׿˿ M ¿Ŀ ſͿοտϿ п ֿٿڿۿܿ @ݿ  @       6    ݸ    M        addeq        @     (      6 ݸ  M     @  @       6    ݸ    M        subeq        @     (      6 ݸ  M     @  @       6    ݸ    M        muleq        @     (      6 ݸ  M     @  @       6    ݸ    M        diveq        @     (      6 ݸ  M     @  @       6    ݸ    M        remeq        @     (      6 ݸ  M  ׸   @  @       6    ݸ    M        bitxoreq        @     (      6 ݸ  M     @  @       6    ݸ    M        bitandeq        @     (      6 ݸ  M     @  @       6    ݸ    M        bitoreq        @     (      6 ݸ  M     @  @       6    ݸ    M        shleq        @     (      6 ݸ  M     @  @       6    ݸ    M        shreq        @     (      6 ݸ  M     @  @          6    @     )  6         ֺ                  ֺ      $  ?  '  '       '   ?   #Condition failed: `  ?         ?      ֺу  ?       `      ¬    ¬   ?     *  ?      ?      ¬  ¬  *    ¬   ?    6  *  ¬      ¬   ?    6    ¬    arg      ¬   ?    6    ; ; 39~78 OEpGpGxG  uDerefMut %3r~!   JV/ Create a new error object from any error type.2E The error type must be threadsafe and `'static`, so that the `Error`H will be as well.D If the error type does not provide a backtrace, a backtrace will beG0 created here to ensure that a backtrace exists.3     JJ$τ J)_: Create a new error object from a printable error message.= B If the argument implements std::error::Error, prefer `Error::new` E? instead which preserves the underlying error's cause chain and BF backtrace. If the argument may or may not implement std::error::Error IB now or in the future, use `anyhow!(err)` which handles either way E correctly.  G `Error::msg("...")` is equivalent to `anyhow!("...")` but occasionally JG convenient in places where a function is preferable over a macro, such J# as iterator or stream combinators: &   # mod ffi {  # pub struct Input;  # pub struct Output; L # pub async fn do_some_work(_: Input) -> Result {O # unimplemented!() # }  # } # use ffi::{Input, Output}; use anyhow::{Error, Result}; 8 use futures::stream::{Stream, StreamExt, TryStreamExt};;3 async fn demo(stream: S) -> Result>6 where  S: Stream,  { streamA .then(ffi::do_some_work) // returns ResultD .map_err(Error::msg)  .try_collect() .await  VJ*VGVGVVVV V   JbJ$τ)  VbJ*DZٱ  $$ VbJ*$%%DZ%ٱ% V$$ $$%% ----- -- --- LKbJd$ --.....ʈ.܈.. LK-)-- ----5}5555 55 556 PbJ )66 77 @@ J bJ$@BBBτB)A0AA @@Ua. Wrap the error value with additional context.G1H= For attaching context to a `Result` as it is propagated, theH@H [`Context`][crate::Context] extension trait may be more convenient thanHK this function.II: The primary reason to use `error.context(...)` instead ofI=F `result.context(...)` via the `Context` trait would be if the contextJI; needs to depend on some data held by the underlying error:J>KK( # use std::fmt::{self, Debug, Display};K+KKL+ # impl std::error::Error for ParseError {}L. # impl Debug for ParseError {L!E # fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {LHMڪM M # impl Display for ParseError {M#NHNڪO OO use anyhow::Result;O use std::fs::File;O use std::path::Path;OP struct ParseError {P line: usize,P column: usize,PPP5 fn parse_impl(file: File) -> Result {P8Q+ӍQ Q RRR4 pub fn parse(path: impl AsRef) -> Result {R7# let file = File::open(&path)?;R&' parse_impl(file).map_err(|error| {S* let context = format!(S"7 "only the first {} lines of {} are valid",S:1 error.line, path.as_ref().display(),T4 );T3 anyhow::Error::new(error).context(context)T6 })U UUUUU VJLJdVVVVVdVVVVqC An iterator of the chain of source errors contained by this Error.kFkF This iterator will visit every error in the cause chain of this errorkID object, beginning with the error that this error object was createdlG from.m m # Examplem mm use anyhow::Error;m use std::io;mmJ pub fn underlying_io_error_kind(error: &Error) -> Option {nM! for cause in error.chain() {n$D if let Some(io_error) = cause.downcast_ref::() {nG* return Some(io_error.kind());o- }o  }p  Nonep pppppp pp ppq7 7J 5yts7q qt5B The lowest level cause of this error — this error's cause'srE cause's cause etc.rr= The root cause is the last error in the iterator produced byr@ [`chain()`][Error::chain].sssss ss sst 7 7J 7Rt txY; Returns true if `E` is the type held by this error object.u>uE For errors with context, this method returns true if `E` matches theuHB type of the context `C` **or** the type of the error on which thevEE context has been attached. For details about the interaction betweenvH% context and downcasting, [see here].w(w5 [see here]: trait.Context.html#effect-on-downcastingw8x7 7J$xxGJxGJxxxτy Jxxxzm9 Attempt to downcast the error object to a concrete type.y<zJ$zzzzzτz JzzzÌi) Downcast this error object by reference.,ۄ  # use anyhow::anyhow;! # use std::fmt::{self, Display};$ # use std::task::Poll;Ѕ # #[derive(Debug)] # enum DataStoreError { # Censored(()),І܆$ # impl Display for DataStoreError {'H߇ڪ / # impl std::error::Error for DataStoreError {}2߈# # const REDACTED_CONTENT: () = ();& # let error = anyhow!("...");! # let root_cause = &error;ĉ # let ret =I // If the error was caused by redaction, then return a tombstone insteadL // of the content.֊4 match root_cause.downcast_ref::() {7L Some(DataStoreError::Censored(_)) => Ok(Poll::Ready(REDACTED_CONTENT)),O None => Err(error), # ;ʌ 7 7J {-P 7J$ڌ׌τی׌׌Ȑq1 Downcast this error object by mutable reference.4ϐ 7 7J {-P 7J$ߐܐτ Jܐܐƚ  $˚τJ˚˚JJ J)  J P ŝ7 7J 7J˝ ̝  J, 7 7J 7 J<777 7J 7GGGEGEGEG EGEGMEQ ! >S7~  Jȡ<ˡ777 7J 7GGGEGEGEG EGEGMEQ ! >S7~ϡ С֡ ԢJ7 7J\  t=& ܤRܤ  78>hR_c278>hR_c27PƦTƦ  PEܨ3ܨʪ+Ԫ \$A\$  7Ԧ8>hR_c27P$İτ¦ P$߸τh7ө$׺κτШѺ κκ|  7d$л j  \d$ o7d ]\d # $O82Lv\ b J?p$ d$K{ b$0L K$O!7 7O8>hR_c27V78>hR_c27 7Pthis^   79O|A\7 7P 478>hR_c27 5yts7 ր!$ۀOۀۀ57 7O {-P 7R J$΃Oۃ<ރ777 7O 7GGGEGEGEG EGEGMEQ ! >S7~ J  $O<777 7O 7GGGEGEGEG EGEGMEQ ! >S7~ J >PJP )7QJQ )Ɋ0QJQ )0  J;7 7J 7P "  JǍ-ʍ7 7J 7Rэ ҍ;;0+ 8F[EpaGpaGhG+ :FO[UaahhqT7778>hR_c27 7GGGEGEGEG EGEGMEQ ! >S7~ R7778>hR_c27 7GGGEGEGEG EGEGMEQ ! >S7~"33"3444&m"&m " !7SGSR/ 77 7R 7~ 7S ;<  p  Gp  Gx  G              C"K       ީ    7 7    7GS GS S S S S   f  VJ*    DZ ٱ V      H8U3    ީ ީ   7 7    $ JJ J   H  JJ$  J )      #         gs" u     #         ީ ީ   7 7   2   #        P   $        A  PJ  ) < <  Return early with an error. L This macro is equivalent to `return Err(`[`anyhow!($args...)`][anyhow!]`)`.$OtG The surrounding function's or closure's return value is required to bexJ/ `Result<_,`[`anyhow::Error`][crate::Error]`>`.2 [anyhow!]: crate::anyhow  # use anyhow::{bail, Result};!< # fn has_permission(user: usize, resource: usize) -> bool {? # true # fn main() -> Result<()> { # let user = 0; # let resource = 0;% if !has_permission(user, resource) {(; bail!("permission denied for accessing {}", resource);> # Ok(())! # use thiserror::Error; # const MAX_DEPTH: usize = 1;! #[derive(Error, Debug)] enum ScienceError {) #[error("recursion limit exceeded")], RecursionLimitExceeded, # #[error("...")] # More = (stringify! {Ӎ  # }, 1).1, # let depth = 0; if depth > MAX_DEPTH {1 bail!(ScienceError::RecursionLimitExceeded);4      $         *                   ?           6      *                         ?           6                                      ?           6                 $    $       (      x                                                                                                                              &G Construct an ad-hoc error from a string or existing non-`anyhow` errorJ value.  H This evaluates to an [`Error`][crate::Error]. It can take either just a KL string, or a format string with arguments. It also can take any custom type O( which implements `Debug` and `Display`.!+!K If called with a single argument whose type implements `std::error::Error`!NM (in addition to `Debug` and `Display`, which are always required), then that"PD Error impl's `source` is preserved as the `source` of the resulting#G `anyhow::Error`.### ## # type V = ();#$ use anyhow::{anyhow, Result};$!$$ fn lookup(key: &str) -> Result {$' if key.len() != 16 {$P return Err(anyhow!("key length must be 16 characters, got {:?}", key));$S% % // ...% # Ok(())%&&& & $&&&* &&& *&& &&&&&&&&'& && ?& & &&'&' ' )''' '' ?' ' @' ''' '' ?' ' '  '''' *'' )'''(( (( (((((((()( (( ?( ( (()() $(( (( ?( ( (( (( ( )(( )) ))) ))))) ) ))) 5) ))) ))) )))) )))*** ** ****** **  * ***** ** ** ***** ** ?* * * **** ****** * **,,,$,, ,,, , $,,,0 ,,, *,, ,,,,,,,,-,- , ),-- -- ?- - @- --- -- ?- - -  ---- *-- )----- -- --------/-/ $.. .. ?. . .. .. . ).. .. ../ ).... . ).. 5. ... ... )../ )///// // ////// //  / ///0/ // // *//0/ // ?/ / / //0/ ////0/ / 00<<O ) ) E    ) : E d o S{<Ns s    S   S   S   S    7 7SS  J  S    S J .  S8  J   #  S J   7 7S8>hR_c27J  J "  7 7S9O|A\7J  J   "S"  8>hR_c2"S>hR_c2         <ɏ "S  "T     "T       7 7TT   "S   "8>hR_c2"S        "S "S  (    &            "   "S  2  8>hR_c2"8    "S    !   '        "  9O|A\"S "S    '        "   "S "  ň "S   "S" 9O|A\"SO|A\        <ɏ "S "U     "U      7 7UU  "S  "9O|A\"S    2  9O|A\"8  "S   !   (        "  8>hR_c2"S "S %  9O|A\;S; "S;   *   "S "S  "̥ 9O|A\"S      S "S        J    J< < %Ep+Gp+Gx2G !%++22{ *V꽅VV{ VV VV!*V4777 7V 7GGGEGEGEG EGEGMEQ ! >S7~ V#*V4777 7V 7GGGEGEGEG EGEGMEQ ! >S7~ V$*ٱV *V7Ǘ+6'VV VV VV!*V4777 7V 7GGGEGEGEG EGEGMEQ ! >S7~ V#*V4777 7V 7GGGEGEGEG EGEGMEQ ! >S7~ V$*ٱV*   W@aɭPW PW ##P*  W 4 777 7W 7GGGEGEGEG EGEGMEQ ! >S7~       +       W 4 777 7W 7GGGEGEGEG EGEGMEQ ! >S7~       +       W 5 7 7W {-P 7R   << <<<<==?? X9 The `Error` type, a wrapper around a dynamic error type.?<?F `Error` works a lot like `Box`, but with these?I differences:@@D - `Error` requires that the error is `Send`, `Sync`, and `'static`.@GK - `Error` guarantees that a backtrace is available, even if the underlyingAN# error type does not provide one.A&I - `Error` is represented as a narrow pointer — exactly one word inBL size instead of two.BBBB # Display representationsBCM When you print an error object using "{}" or to_string(), only the outermostCPK underlying error or context is printed, not any of the lower level causes.CNH This is exactly as if you had called the Display impl of the error fromDK* which you constructed your anyhow::Error.E-E ```consoleE1 Failed to read instrs from ./path/to/instrs.jsonE4FFM To print causes as well using anyhow's default formatting of causes, use theFP alternate selector "{:#}".FFٽGY Failed to read instrs from ./path/to/instrs.json: No such file or directory (os error 2)G\GGJ The Debug format "{:?}" includes your backtrace if one was captured. NoteGMJ that this is the representation you get by default if you return an errorHM; from `fn main` instead of printing it explicitly yourself.I>IٽI8 Error: Failed to read instrs from ./path/to/instrs.jsonI;J Caused by:J+ No such file or directory (os error 2)J.JJ' and if there is a backtrace available:J*KٽKK;KKL.L Stack backtrace:L9 0: ::ext_contextL<0 at /git/anyhow/src/backtrace.rs:26M3) 1: core::result::Result::map_errM,5 at /git/rustc/src/libcore/result.rs:596M8_ 2: anyhow::context:: for core::result::Result>::with_contextNb. at /git/anyhow/src/context.rs:58O1 3: testing::mainO at src/main.rs:5O! 4: std::rt::lang_startO/ at /git/rustc/src/libstd/rt.rs:61P2 5: mainP 6: __libc_start_mainP 7: _startPPQF To see a conventional struct-style Debug representation, use "{:#?}".QIQٽQ Error {Q A context: "Failed to read instrs from ./path/to/instrs.json",QD source: Os {R code: 2,R kind: NotFound,R. message: "No such file or directory",R1 },S SSSM If none of the built-in representations are appropriate and you would preferSPK to render the error and its cause chain yourself, it can be done somethingTN like this:TTTU"U fn main() {U# if let Err(err) = try_main() {U&% eprintln!("ERROR: {}", err);U(O err.chain().skip(1).for_each(|cause| eprintln!("because: {}", cause));VR std::process::exit(1);V"W WW fn try_main() -> Result<()> {W!W+ӍW W WXXXJgQ_XXg `Result`]]M This is a reasonable return type to use throughout your application but also]PB for `fn main`; if you do, failures will be printed along with any^E8 [context][Context] and a backtrace if one was captured._;_@ `anyhow::Result` may be used with one *or* two type parameters._C` ```rust` ``$ # const IGNORE: &str = stringify! {`' fn demo1() -> Result {...}`!D // ^ equivalent to std::result::ResultaGa* fn demo2() -> Result {...}a-A // ^ equivalent to std::result::ResultbD # };bbbb bb # pub trait Deserialize {}bc # mod serde_json {c # use super::Deserialize;c! # use std::io;ccE # pub fn from_str(json: &str) -> io::Result {cHdڪd ddd # struct ClusterMap;ee% # impl Deserialize for ClusterMap {}e(eee fn main() -> Result<()> {e # return Ok(());f; let config = std::fs::read_to_string("cluster.json")?;f>: let map: ClusterMap = serde_json::from_str(&config)?;f=* println!("cluster info: {:#?}", map);g- Ok(())gggh$hh Jhhh hJ1, Provides the `context` method for `Result`.h/hD This trait is sealed and cannot be implemented for types outside ofhG `anyhow`.i iiii iii" use std::fs;j use std::path::PathBuf;jj pub struct ImportantThing {j path: PathBuf,jjj impl ImportantThing {k0 # const IGNORE: &'static str = stringify! {k31 pub fn detach(&mut self) -> Result<()> {...}k4l + # fn detach(&mut self) -> Result<()> {l. # unimplemented!()l # }l ll: pub fn do_it(mut it: ImportantThing) -> Result> {l=B it.detach().context("Failed to detach the important thing")?;mEm let path = &it.path;m! let content = fs::read(path)n$U .with_context(|| format!("Failed to read instrs from {}", path.display()))?;nXo Ok(content)ooooI When printed, the outermost context would be printed first and the loweroL3 level underlying causes would be enumerated below.p6pٽpp;qqq.qqH Refer to the [Display representations] documentation for other forms inqK* which this context chain can be rendered.r-r9 [Display representations]: Error#display-representationsr<sss # Effect on downcastingssM After attaching context of type `C` onto an error of type `E`, the resultingsP6 `anyhow::Error` may be downcast to `C` **or** to `E`.t9tJ That is, in codebases that rely on downcasting, Anyhow's context supportstM! both of the following use cases:u$uK - **Attaching context whose type is insignificant onto errors whose typeuN is used in downcasts.**vvL In other error libraries whose context is not designed this way, it canvOM be risky to introduce context to existing code because new context mightwPJ break existing working downcasts. In Anyhow, any downcast that workedwML before adding context will continue to work after you add a context, soxOM you should freely add human-readable context to errors wherever it wouldyP be helpful.yy ```y  # use anyhow::bail;y # use thiserror::Error;z #z  # #[derive(Error, Debug)]z! # #[error("???")]z # struct SuspiciousError;z!{ " # fn helper() -> Result<()> {{%" # bail!(SuspiciousError);{%{ | # use anyhow::{Context, Result};|&| fn do_it() -> Result<()> {|": helper().context("Failed to complete the work")?;|=, # const IGNORE: &str = stringify! {}/ ...} # };} # unreachable!()}~ ~ fn main() {~( let err = do_it().unwrap_err();~+A if let Some(e) = err.downcast_ref::() {~DH // If helper() returned SuspiciousError, this downcast willKC // correctly succeed even with the context in between.F # return;ŀ 2 # panic!("expected downcast to succeed");Ӏ5  J - **Attaching context whose type is used in downcasts onto errors whoseM type is insignificant.** H Some codebases prefer to use machine-readable context to categorizeKL lower level errors in a way that will be actionable to higher levels ofO the application.˃σ ۃ !Ä # struct HelperFailed;݄ %. # bail!("no such file or directory");1ޅ  &") helper().context(HelperFailed)?;†,/݇ +> if let Some(e) = err.downcast_ref::() {AD // If helper failed, this downcast will succeed becauseGE // HelperFailed is the context that has been attached toH // that error. Ŋ5  $_̥$iɋ1d   'wSJdȊGȊȌȊҌȊٌȊ SȊF Wrap the error value with additional context that is evaluated lazilyI only once an error does occur." $̊d$͋Ǝ\ڎ \Ȋ SȊ- Equivalent to Ok::<_, anyhow::Error>(value).0M This simplifies creation of an anyhow::Result in places where type inferencePJ cannot deduce the `E` type of the result — without needing to writeM! `Ok::<_, anyhow::Error>(value)`.$J One might think that `anyhow::Result::Ok(value)` would work in such casesM but it does not.̑ٽБH error[E0282]: type annotations needed for `std::result::Result`ߑK --> src/main.rs:11:13 |ǒ( 11 | let _ = anyhow::Result::Ok(1);В+k | - ^^^^^^^^^^^^^^^^^^ cannot infer type for type parameter `E` declared on the enum `Result`n | | | consider giving this pattern the explicit type `std::result::Result`, where the type parameter `E` is specifiedJh J,  Ȗޖ%I ' p' v˗     Ȗז ޖ (    ė ˗ߗ&    Ƙ , Θ4 5 6ș #    ș +, ޙ 7IEEE4&w\NF7J  &- ٞٞ-מ JJ ) "@@@넇`&"넇`&* {-P "R-  111[1M01\01\0101010+qg AP-"G7 7GG "]& Iterator of a chain of source errors.X)Y8 This type is the iterator returned by [`Error::chain`].Y;YY YYYZZZMZ$[G[-\ \ \ \\\\.\\ \\ \\]" 5yts"5yts]]]#]@@@넇`&""]"]"]."]!"W]]"]"]7 7WW"] "]     !!!!  qtxڌߐ˝  ϡ İ׺  э                        "]2https://doc.rust-lang.org/std/backtrace/index.html Error::chainhttps://docs.rs/anyhow$https://github.com/dtolnay/thiserror.https://github.com/rust-lang/rust/issues/53487k!https://github.com/dtolnay/anyhowkhttps://crates.io/crates/anyhowk  crate::anyhow crate::Errorŵŵtrait.Context.htmlcrate::ContextG99889,99889,GG99889,vi(=L Rdjvi(=mvi(=4գ)vi(=:Y0^vi(=<< vi(=,qy vi(=Cyk>vi(=іѣuvi(=*!=mjvi(=˿m\fvi(=]' Wvi(= pdvi(=Y&{@vi(=vi(={k$ɫvi(=m63;vi(=~lE^vi(=y.vi(=t!U wvi(=E*"vsvi(=mvi(=u^8vi(=G#* Dvi(=|!zǎ"vi(=}Qvi(=Cv_vi(=̤}vi(=)9vi(=%Wvi(=!ןTvi(=|vi(=@ӾƤsvi(=N؞Nvi(=Y wvi(=Wʻvi(=^Y?Jjrvi(=k_2\=vi(=i 7k2~vi(=ߌRvi(= F.Avi(=C䋚R?vi(=)8cmڥ:vi(=vi(=i/J~=vi(=ĆM vi(=Bvi(=~.C!bvi(=mL[vi(=E-Uvi(=K1D$vi(=XP.^fvi(=n@Kļvi(=I*=vi(=#Dvi(=ߙ*_78vi(=;7Hvi(=-H-+ovi(= `t?vi(=C2èvi(=c11]vi(=v۹vi(=.>vi(=H/Rvi(=P`cvi(=b#@]vi(=F/vi(=`}vi(=k+؍vi(=q7vi(=AgeMvi(=ꑹڑvi(=;a 0vi(=79& vi(= %4ݽvi(=uUA:vi(=+Pbyvi(=yrH4vi(=vi(=33ܘ)svi(=nomluvi(=e )vi(=:Gvi(=vi(=jvi(=$/~vi(=:wvi(=x79vi(= wMvi(=&; (vi(=Tȧ'z{ vi(=vdpvi(=eQ42vi(=e%Gvi(=Qvi(=0!vi(=>aqvi(=') vi(=etC>dlvi(=luv vi(=h"y0.iQvi(=K{Uvi(=QMvi(=Zvi(=.GIvi(=9[Pcvi(=iM#vi(= G1vi(=&TZvi(=(?$K6vi(=(S-vi(=pmvi(=$K*Nvi(= ķQvvi(=l(AdMvi(=8¼&Ovi(=vZLvi(=_Pvi(=lC8vi(="8fPvi(=Ձ\Tvi(=jO>vi(=!]+vi(=rWٸvi(=`Tvi(=rvi(=J=[vi(=ig)vi(=={vi(=T<Uvi(=[])i2vi(=f?@vi(=5 `Lvi(=րovi(=XpLKvi(=Yvi(=jvi(=]|<Lsvi(=tvi(=)uvi(=)%Ƿvi(= h4.vi(=/;2yvi(=*vi(=ߺ) G|vi(=9`LNvi(=(kvi(= \DuTvi(=Q]"vi(=YK %vi(=@?P6vi(=W/J9Kvi(==Evi(=3֫Qvi(=R\3vi(=-=ݾvi(=#p&vi(=:I7kvi(=W+cvi(=@}âTvi(=UY+vi(=%~`?vi(=]zf8vi(=[E,!vi(=dqGvi(=%Tv@vi(=2Pǂvi(=F.vi(==6Pvi(=PU^vi(=iVevi(=vi(=@/Svi(=~vi(=i$1ӫKvi(=g;rvi(=yG_fvi(=8o<H3vi(=;@1vi(=EjRPtvi(= i;vi(=._vi(=U Rvi(=%ڄyvi(=᲎Fvi(=$阤> Vvi(= i vi(=Scʨadvi(=a#vi(=Bkvi(=QHdvi(=RyY-kvi(=9Whn "Yvi(=T@6vi(=@HFJvi(=,ѽ褧9vi(=)|vi(=V\$+vi(=$lavi(='vi(=J8vi(=07vi(=`z!vi(=S,GwOvi(=^Ejo{vi(=Z;׶Ksvi(= Z 0Szvi(=Pvi(=-)3Yvi(=D=7jvi(=s"]vi(=Gwvi(=׽1vi(=OAvi(=-.Yvi(=]ew ɿvi(= YOjqvi(=Hw<:ývi(=xOғRvi(=}2' vi(=nUvi(=t L+$vi(=A`Ȅ@vi(=4ݑvi(=+%cvi(=grԿvi(=56lޤvi(=)9vi(=@٪{ vi(=Mק8vi(=+EDvi(= jq*vi(=5rvi(=~[xvi(=~޳rvi(=塥W1vi(=$!vi(=|vi(=/\~" xvi(=gQvi(=(/ ׶2Dvi(=:cevi(=d מRvi(=zIFvi(=89$Evi(=@PgGyvi(=Svi(=І vi(=TkFsovi(=5+>vi(=5^>Dvi(=WŐVvi(=]ivi(=,W) vi(=HP,ڠQtvi(=yP3Yvi(=s@5vi(=(Z'vi(=8"k\Jxvi(=d?2vi(=hہ,vi(=sH/vi(=5Rvi(=$M.֦vi(= ;wvi(=˴]dnvi(=چY{vi(=rLIvi(=t>?llvi(=[B (vi(=lMEX+vi(=(Ivi(=`Wvi(=:Kvi(=W ]vi(=#U;vi(=ӀIvi(=a] C[vi(=j6vi(=Q@vi(=LB$vi(=W%9vi(=+P_V]vi(=v6gvi(=lm͖ wvi(=}3Fvi(=sU^vi(=F (vi(=cPz`gvi(=Rgj:{vi(=UHJ(.vO,vi(=eSvi(=eG+5kvi(=e"bvi(=\䂈 vi(='vi(=?Mz0-vi(=4&vvi(=:oО7vi(=R4n |[pvi(=Q/'vi(={M%4vi(=.s^c!vi(=B£Yvi(=Ux$9I#vi(=_(\vi(=7avi(=ռas`vi(=;"0vi(='+f8)vi(=8EQvi(=89vi(=SAvi(=""C?vi(=$vi(=Yc3@vi(=hvi(=3^vi(=&[ɬxvi(=ӡvi(=сydvi(=Zn9vi(=W "#vi(=\۔,ivi(=G;vi(=ABCvi(=sSXF vi(= Rývi(=5vYnY vi(=/ vi(=ڧ(ڀ:vi(=UupZ,vi(=w_`vi(=I {vi(=nj>]vi(=g^vi(=b4kpvi(=>vi(=ϧ%vi(=6pٶvi(=<^vi(=$EcQ0vi(=vi(=9}dvi(=~8Qvi(= zvi(=Ya\vi(=Gvu vi(=`)#vi(=%fV\vi(=Qt d =vi(=ںFCFvi(=K!7{zvi(=@Iyvi(= QQn[vi(=GMG1 =vi(=?vi(=iSvi(=۲&^vi(=7Wߤvi(=jqevvi(=?Evi(=V2u)vi(=kQ[:vi(=,-Dvi(=evi(=M˫vi(=(ՠvi(=r3vi(=@Ġgavi(=aOdvi(=}n ovi(=}wdvi(=@/yZvi(=(n(KRvi(=eϖvi(=2xZvi(= (vi(=x(zvi(=!yuvi(=9]Jvi(=ǥB$?vi(=zB^vi(=LnfUKyiL  *\  N}tEL1   ?j21cO{uLvMwwxyWzj<ՉJ[3q pȗ՘e̚żX̽dk0xGWN3VB`W^*R%%                !       %%%                        "  "  "%%%%                    !    !    !     :?M`'g C@x  N B8zwEy8a O@=CLVQWXYUZ[[\]dh\j~lmrsu^vvkwwxy5zozz:{e{{{+||}1~#R.݂ Bڃr(͇͈  hċyQԏِ $E]a(;GyUp d!@E@^{UXK<^q\   zVvRDzPJNR^ULbx $/~3;SuFq{MYo)&   2 H ^ B       4  (Xni?Ukk3I_mS5lq<BCLhNrN|NNNNNNNNNNNNN OO"O.O6OBONOOQQuXXjYYZ.Z:ZZZZ"\8\N\\\]]0eFe ijm0mnn\ststt}uuuPvpvvOwwwxxyy%zazz,{W{z{{{|v||^}v}}~~~̀}pς2̃ >V \\׉؊4L]Č5KU_ipzːݑs ͓ٓ 7p9OYʗ=S՘eΚ*j<kuǼۼ4Xnν@nʾI_;o{0<R k`V4 +&myIUk )Yo#*4>H PfI>z1Vl0ND #Rhd|Yq     & / = K Y g p ~   *3AO]3`lj,8T` "*2:BJRZbjrz &/8AJS\enw (08@HPX`hpxLPX49h)79[{,Lv!Sn_w/,   8 N d J      $ :  .$^tqE[s?q9Oe$u[$;9=CLmNwNNNNNNNNNNNNNOOO(O4O\\\\]d6ehHjjl m{m nlrcsst(uuu?vWvwv@wVwwwxxyy.zhzz3{^{{{{|}||e}~}~~~=Ԁ 'wւ;ӃE]eeމ=SNd&<PZdnuӐ%yǓӓ?v?WaЗCۘ[XԚ"5Apz̼$<^vԽHtоOeAu6BZ\q ^:1 ,JsO[q1_u(/9COVlQD!7\65JXnk\`xG      - 6 D R ` n w    1:HVftPp2>>8Zf (08@HPX`hpx $-6?HQZclu~&.6>FNV^fnv~C#uK$#;pAr;0l&g@#c    E [ # l      1   %Mk@RhYF\ P,j-b|V`_OzQQWXY}YY+Z|ZZ[5\K\\A]]dCehjl-mmn sqsVtt@uuuHvivvIwwwxxyyz?z|zzG{r{{{ |R||}s}}~g~~hNׁGȂ"jɃ-SބG}F}y F|؋W/ˑI/[֔ߕLeіCy× Pwaǚؼ1TkȽ+` \&,O:#~B8,M(s#Fh$Ilm,c+ihm.4i&Gz>:e{ y3n}  "b&ZN<n9,].i(v pey RN   > T  L   q   *   Dd|1KauF?UGw#c &XrFSXOaQQWXYvYY$ZcZZl[.\D\\(]]ddxڽJzU H\~ w8.g "C!c/a3e|W\SXc'b=j7^trgg  |XxoF:Ig}OE[M('?rCvfA  / '     QD=0T0l/g[baOQdXUYZZ[\x]ehj mmPstyuuJvnvvKwwwxxyyzAzzzL{w{{{_|Q}}~fT͂$ :LK~Ӊ%H݋Y1,Бo4۔n gHŗ$cɚVʽ0b5+.<NG=1RxK Uy L0mrT+L@P}. $g(\P<NahDAy  O C:z9cQWQWXYWZ][\]dh]jlmrsuvlwwxy8z{.||}4~&U0Du*·Έ  iŋzRÎ֏ܐ%^zVq!eFA_VYL_r] |XSE{ObjGC{  Q D;|:QXQWXYXZ_[\]dh]jlmrsuvlwwxy{/||}5~(Wv*χψ  iŋzRÎ֏{Ws#HDa5ZM_w^ T|?RY52j  @ 4*wk*A wHQWXYGZM[\]dhNjplmsrsu~v]wwxy{||}#~D dZkCƏ֗ښ־kGb72PwrJ = PcN Dl##$I$~$$$%p%%%%% &&&&&&$'.'5'<'C'J'Q''''%(w((((()8)?)F)t){)))) *L****** +++F+M+`#T+wn(%  G ]    3 'mTjH^QXY-ZZ7\M\]Ee/mnsstu||u}~~˃UNRڼ3m^Q*%jne0kg{p u-01N24/8D:<AAwB7xDLkMNOPQUXK[ _maeDfVpuy^z{~ŀ5"Xڔl-ٶSH),)ǽھZG%RgN-NtNM-1L24-8B:<AAuBvDKiMNO~PQ}RWY\kabBfTpuy\z{~À3 Vؔj+׶QF'*'ŽؾXE#LPL50-1M24.8C:<AAvBwDKjMNsNNOPQ~RWY\labCfUpuy]z{~Ā4!Wٔk,ضRG(+(ƽپYF$Qf"M60jNNoNNb3KpH 1   X\Bl`eQlXXYZZ\\{]eijmmSstuvwxyz{b|T}}~i'QSĊ*(Q, 8A3cXNe8uF )=[pݖB --##+ + ##qw# R S _ ##j + ##     #######+ 2~5Y*lu H   oq=sY"LTO&u=v>wwxy,z%9ccߊ;L$ѐ#ߓ=U_YV :tFX\/MO3  rN<6S zPzbv˘c(KGnDzVvjW{? !-159=AJQU\gn~  $+15<CJPciqu|  $+/6DHUY`gkry} !-1?CKPX\div #(-2:BMVfn *4<LThp"6Memu 3:Y`qy&.3;CHPX]ejrw */7?FKPUZ_lq'/49ANZbp$2@KS[ckpx "*27?GOT\dlt| #(08=EMRZbgo !%)08?GOU]emt|   - 5 C K [ g k s { !! !!!!$!*!0!7!>!E!L!S!Z!a!h!o!v!}!!!!!!!!!!!!!!!!!!!" """"%","3":"A"H"O"V"]"d"k"r"y""""""""""""""""""""# ###!#(#/#6#=#D#K# |Rzex͘f+RYAA=C<H"z\1ԗ2]P2]P(NNIterNMNMNMjg(+\: \l c uty\\\\MMM)ԗ)2]P4PD\~~2]P{݈]Λz GNG3444&mGGN O  l*00182Lv קΛP O  l*00182Lv< 꽅ΛP O  l*00182Lv< 꽅zP O  l*00182Lv קzP O  l*00182LvWP O  l*00182Lv קP222 DropGuard2 1 ]bF]>]>B\~B bb߇grE3 LayoutError ډRS9}888CapacityOverflow8 AllocError8layout8c%/SP \B\88TryReserveError8~E`Z \B#CC8f  _/GTP  AGNGGNGGNG?4]5P5P5]P4P2]PPPPQPSP\TPZ\7P<]P<PLPL]PK]PKPBPB]P?P888݈P݈P݈\Λ\z\݈݈݈zΛWWWzΛΛzWzΛΛzW6]P6PWPPP݈PPPPWWLzΛ@]X]PXPzΛD\~Y@]2]P5]P\\\\\\852)&` ZWT] !""9630*'^[XURO741+(_YVSP \ vi(=113\\vi(=g]̏  vi(=SL\~   vi(=L >  vi(=c9­  vi(=Y%*Z  vi(=VQ'(S4  vi(=헥[  vi(=!θ{'  vi(=eBMf2vi(=(cCc ptr::addr_of+ vi(=¶B"=}$vi(='R$kvi(=~7kivi(=܋4期+ԓF  vi(=1%   vi(==t  vi(=/} 7y;  vi(= %9$crate::format_argsYY fmt_internalsvi(=>ACCvi(=5̘|q]Y)vi(=v =ǵvi(=v  vi(='mj  vi(=$[@write&Yvi(=TiY)vi(=\ʠvi(=d' vi(=N$A&^  vi(= ߈z^F  vi(=q^D   vi(=,\r   vi(=[J=i]%dcore_intrinsicsderive_clone_copyvi(=2f l  vi(=)|-m    vi(=l͖ai%dvi(=5Hp  vi(=k"!b  vi(=[_ vi(=)mGvi(=hǁsg + vi(=  p Yvi(= 2dωmHθ׸qiaY}Qu@80( ƸyĹhR2? f;[/_ :]ܽy2cܺչxBXiSٿѼVv+K{OӾ*xM̽"w/"̺ODHT Uvi(=(ՠvi(=8o<H3vi(=Gvu vi(=ׇjH8vi(=)9\vi(=6 ]3$vi(=Qt d =vi(=l<Dvi(= Lvi(= Z 0Sz<vi(=;8 =4vi(== sQvi(=ƹRRDvi(=~vi(=PU^vi(=#J vi(=F (꩘vi(= h4.vi(=eQ42vi(=V0w>vi(=ռas`vi(=LB$vi(={M%4vi(=.(&؂Ƽvi(=;*P Bvi(=Gvi(= `t?svi(=t>?llvi(=$,>r3vi(=lO,vi(=6nP٩vi(=+T" vi(=@f˖VPvi(=K)VU%5vi(=&[ɬxvi(=zB^vi(=`}|vi(=%~`?vi(=oZ+`3xGvi(=:cejvi(=QHd,vi(=$EcQ0vi(=jqevvi(=ig)vi(=@Ġgavi(=iSvi(=Rgj:{vi(=ihq+vi(=~lE^Jvi(=9Whn "Y.vi(=}n ovi(=Yp9vi(=,qy vi(=rvi(=dqGvi(= jq*`vi(=!yuvi(=Cv_Svi(=Tȧ'z{ vi(=|fvi(=ѺM;vi(=%ڄy!vi(=}QRvi(=J6m[D"vi(=`T}vi(=k쐱vi(=*vi(=ӯA듭s;vi(=ˑvi(=(S-vi(=W ]vi(=~YrǓ,vi(= evi(=.%@vi(=q7~vi(=jvi(=#U;vi(=<< vi(=89vi(=kvi(=@?P6vi(=J=[vi(= vi(=(vi(=y&)]VIvi(= ķQvvi(= (vi(=I*=nvi(=e%Gɛvi(=evi(=׽1Bvi(=s@5yvi(=+ocn$vi(=E;JaLLvi(=jX1vi(=Jr5"?vi(=mvi(=b#@]zvi(=pS̽\vi(=Yq`-vi(=iVevi(=2E ՙmIvi(=SAvi(=hہ,}vi(=4ݑXvi(=Z}9vi(=Qߜvi(=Q]"vi(=j6vi(=>aqvi(= }-Vvi(=6pٶvi(=,W) vvi(=={vi(=R\3vi(=-)3Y>vi(=uJK]B>vi(=yP3Yxvi(=9}dvi(=~8Qvi(=@Iyvi(=ϧ%vi(=RyY-k-vi(=;7Hqvi(=ŅiHJvi(=?Evi(=,-Dvi(=g;rvi(=IuNH vi(=+0:Cvi(=dvi(=[vi(=xOғRQvi(=m63;Ivi(=C䋚R?bvi(=K6n(Kvi(=A`rvi(= Rývi(=e"bvi(=_;XBvi(=.GIަvi(= byvi(=T<"l@vi(=6%^Evi(=\& vi(=UHJ(.v<vi(=G#* DPvi(=.>wvi(=!o]/>vi(=:Y0^vi(=h"y0.iQvi(=j.JN_vi(=aZ6:7vi(=7avi(=!9eu1vi(=kg>\fvi(=^Y?Jjr]vi(=OAC8vi(=y:E,'Avi(=@PgGynvi(=&QGFQ!vi(=uKn vi(=$K*Nvi(=5 `Lvi(=]|<Lsvi(=9`LNvi(=2Pǂvi(=$M.֦vi(=ߌR`vi(=Nvi(=ꔁVVB:'vi(=Xz[Pvi(=5vYnY vi(=mL[ivi(=k_2\=^vi(=kQ[:vi(=J^R4vi(=<^vi(=bM[]3vi(=[]UNvi(=}wdvi(=/wg\:vi(=Ph~zvi(=]vi(=X hpJvi(=luv vi(=)uvi(=S,GwO9vi(=˼x1%vi(=x%Kvi(=`z!8vi(=:Gvi(=a#*vi(=@HFJ0vi(=F>Ȅ@Wvi(='+f8)vi(=EjRPtvi(=@u>ad)vi(=TkFsoqvi(=:KԊvi(="6TzLvi(=%-N_:vi(=᲎F"vi(=G;vi(=]zf8vi(=:w̔vi(=VRcے8vi(=#;'6&.vi(=MA巖L"vi(=FqMvi(=etC>dlvi(=ȅ 0vi(=XP.^flvi(=HP,ڠQtwvi(=Y&{@vi(=B£Yvi(=$阤> V#vi(=`)#vi(=߼K vi(=v۹vvi(=Yvi(=,6BDvi(=Mק8^vi(= QQn[vi(=hvi(=GtmC7vi(=cX28vi(=J)vi(=WHvi(=+227vi(="­f=vi(=&TZvi(=e )vi(=$!evi(==<vi(=)%Ƿvi(=ꑹڑvi(=P=vi(=HOhvi(=0!vi(=5Ŧ3 vi(=. 6ovi(=mNvi(=lm͖ wvi(=UupZ,vi(= rvi(="M"U$vi(=,~q/vi(=AFՒ"vi(=+P_V]vi(=(/ ׶2Divi(=?vi(=.s^c!vi(=۲&^vi(=9]Jvi(=ݍު?vi(=?Mz0-vi(=4,>Lvi(=nUSvi(=ax|ovi(=') vi(=Wʻ\vi(=ӡvi(=ںFCFvi(=oBn#vi(=Q@vi(=79& vi(=)8cmڥ:cvi(=._vi(="8fPvi(=[])i2vi(=5Rvi(=E-Ujvi(= zvi(=g^vi(=C2ètvi(=8¼&Ovi(=Wvi(=Cyk>vi(=AgeMvi(='vi(=>vi(=k+؍}vi(=K!7{zvi(=Q7/+'vi(=1U!V!Ovi(=jO>vi(= ;wvi(=U R vi(=?Y vi(= wMvi(=ߣ. rvi(=d מRkvi(= S 7vi(=vi(=@/Svi(=sK*vi(=چY{vi(=@}âTvi(=]' Wvi(=j!/vvi(=/\~" xgvi(=a] C[vi(=K1D$kvi(=%WVvi(=&; (vi(=(?$K6ݫvi(=o<~&vi(=N$)/(XAvi(=W "#vi(=-H-+orvi(=I {vi(=jG)˔G vi(=(n(KRvi(=Q/'vi(=+Hvi(=c11]uvi(=i 7k2~_vi(=9#/WTvi(=:I7kvi(=Zn9vi(=Hw<:ýPvi(= i;vi(=T<Uvi(=LnDsvi(=;ȼBvi(=~.C!bhvi(=""C?vi(=+ED_vi(=C/ZD2>vi(=9Gnvi(=H/Rxvi(=yrH4vi(=P[H&vi(=zIFlvi(=eG+5kvi(=Kvi(=!4USgD'1vi(=eSvi(=Ŭ@W{p9vi(=;X#vi(=7Wߤvi(=Zvi(=:[fvi(=!]+vi(=GpU^Bvi(=cPz`gvi(=(xcM=vi(=˴]dn߂vi(=1e*3vi(=f?@vi(=i 1'vi(=jvi(=pjvi(=^Ejo{:vi(=2t_\vi(=GwAvi(=wW vi(=> |[pvi(=8EQvi(=^W2vi(=ĆM fvi(=yG_fvi(=(Z'zvi(=}V*WJvi(=aOdvi(=](vi(=grԿZvi(=ZO'vi(=|Db vi(=Sovi(=Gs vi(=m"S3s7T)vi(=v6gvi(=iM#ըvi(=$vi(=@٪{ ]vi(=vi(=Z;׶Ks;vi(=eϖvi(=߻k@!vi(=u^8Ovi(=x79vi(=!ןTWvi(=v&M#&vi(=#Dovi(=ӀIvi(=7- fvi(=&M!Fvi(=K7{2#vi(==LJ vi(=Bk+vi(=]ɗDݬvi(=M˫vi(= w)vi(={k$ɫHvi(=4գ)vi(=3^vi(=~޳rcvi(=I7<ӏ'vi(=W+cvi(=$/~vi(= V?%vi(=077vi(=d[&Evi(=І pvi(= pdvi(=Y w[vi(=ߙ*_78pvi(=BT vi(=~VFo%vi(=`Tvi(=+ uvi(=z0<vi(=_(\vi(=|!zǎ"Qvi(=%fV\PeFR=9 ?/qT0Ksc WiV&^N^` CY55\&z@D8}];WAK[}<|%vL;qON4(2{1gdZlVacFgg *(ftCS|:KGi@WfJ/#!btD>-3/Je@6H4* v%~w_lqI<^ R)#D M/&?-$ O,))'-*)U;QND/#E=% 9D>A !A.UO1(,6KIQM)*\EH"'.F91.NGVT +* #&!+$#3 &%KKP,?N , MNF 9"22*;3LJ][1/ 3"!+12E1T/8G!M @%@9N +$6䵴 /C!@{]/home/steffen/.cargo/registry/src/index.crates.io-6f17d22bba15001f/anyhow-1.0.72/src/chain.rs :Cf! 4; =< "./ !&($. 4)4 %+/+&1-03 '%!/+$- *. ہw]h0Sf_/home/steffen/.cargo/registry/src/index.crates.io-6f17d22bba15001f/anyhow-1.0.72/src/context.rs K:p(<ݺ '." 50 650 9: 50 " *.8 ,Q; @ ,= #", 7, /8 ,J E @ , G (; 6**;'+<80, R 4*<$97@7;3*;6?, K=> T ,*<$97@7;3*;6?, K=> a ,-I$<:*:>7*?9?, C> 0&('$42*26Q*YT?, P@>MEP && -< POPQN<96EPBNC 0  3&M# (M#  =0 <+/'?9; 0 ,; $@>@>B:*B*POJI8E:"Q"O:LN1? C2H4=KNL R)L2 4 #9JE#4<%CMJM-= 4+A4 4()P4/[6**V-*PJ161=M 1 )   ,M# 7 + &# Q ,X8ZZK"O97G8.L.58DPI-C8X)I-'1?"0R4Z)I68Z)Q%8S%L#1+2G &G 8W%L#=; 3; IW%J?,J= I4[%NC,NA IEN2%C CMZJ%? H.RM^N%C H2VMHN>%GP G82(I2M3$HJQP": &""OM+BN1CJ '(OP+]I4eI+<&42DQG"E'B0J;+ + ;&"<;8<C=!CKA $.N*@ :$73$73B%47$ w"lf(p[/home/steffen/.cargo/registry/src/index.crates.io-6f17d22bba15001f/anyhow-1.0.72/src/fmt.rs E}tj%[-5+ Y') !.*5>.C$0 6 33D;$?88@J6@- "65%$M;.+63)   $5(  & $5(  & $/(  &%u6f"^/home/steffen/.cargo/registry/src/index.crates.io-6f17d22bba15001f/anyhow-1.0.72/src/macros.rs m *D 'D .N !!  K LP,OQH"(T &^ &,%< "GKOZ(!8 "Gy[tHSxj3_/home/steffen/.cargo/registry/src/index.crates.io-6f17d22bba15001f/anyhow-1.0.72/src/wrapper.rs ݎ`O9?ѭQѭ'#";$;!K#";!$;!C<;;!<8 o1XS v[/home/steffen/.cargo/registry/src/index.crates.io-6f17d22bba15001f/anyhow-1.0.72/src/lib.rs [zWa$&+kon OA N0Q% !$K! +4A@ MGQ7 -! %  ) 0 H,Q )  >1 O# ' *K! 5)$!=+:R QONECPO EcMPOP8 L  -$ QE &"!= L $"!/  QJ; ;EOHN9K(+0 !*$ % #&%"  #"< =JHO'M QOL.5Q]NN?</+</=4-9c2"3J E2 QO#')S# ", )*<N%H. 0)QF<D ("H.E "I )?>.<0H # 45 / >F%YM7</L.= Q:N%O PQNPQ  "" && '#>0 ,ELG6 N!LP  " &2 '#-0 ,BHI6 468 ,N': ,1QN%NL ,o"76'45 ( 2/1426@ D*  -[ |z%U͘|o^/home/steffen/.cargo/registry/src/index.crates.io-6f17d22bba15001f/anyhow-1.0.72/src/ensure.rs :FV}c*ڑ3޺М޺%< =&<&= " 0 <2 68$ 9!$ &H !J"E&I,,(M9"#&%&' X9.U.T.W.T.S.uqsosouqw~tsowwrsuyxyxuxt{zRUtvtz{|^{prp|v~~}yyy`Utvt{wyyvx vtzx}wxvr}wxwruzuxzsxrst}suyzj~j~~~}{v~yyySWwyaU)uysvuwxvU_{wuysvrtnunwqwqtprqxsysuqytsusvrr{x(vovovovovoyryrxqwowo#omvnomvnnmunomvnomvnnmun'}u|txwwwwwzzyww;.($-F=43A!@!A! !>m *D 'D .N  77HF2ȹg#\/home/steffen/.cargo/registry/src/index.crates.io-6f17d22bba15001f/anyhow-1.0.72/src/kind.rs ,a³Hy@ tMONQ A"  7 +'  9 #> OLPLQL8 6)!%V - 41%0 + %6 H7,X9I#Ai[/home/steffen/.cargo/registry/src/index.crates.io-6f17d22bba15001f/anyhow-1.0.72/src/ptr.rs sEխ rЭ22+&H 5" *)%# )# "3!%%# '/# 9"# '(# '&&)&3!")%# 9"# '(# ,# 1 $!3y$T'Ot#$9&-'t*^.r/x86_64-unknown-linux-gnuBĽn1V6-14f79b60f7b7584fvi(= ?JJ     B,