rust #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@-֊x,Rtx/q-a4949322dd83a0a2crossbeam_utils(-y m -84249e0e9ac2b2ceMM  MM ( channel      unboundedboundedafterat#tickSender&&flavor SenderFlavor))Array+ + )List. . )Zero1 1 468:<<try_send<send? < send_timeout< send_deadline<is_empty<is_full<<capacity< same_channelHHJ J J NNQQTT ReceiverFlavorWW Y Y W \ \ W _ _ WAtb b WTicke e WNeverh h k m o q sstry_recvsrecvv s recv_timeouts recv_deadlines s ss sstry_iters     'aItemIntoIterIterTryIter try_selectdeadlineregister unregisteracceptis_readywatchunwatchwriteread     withFR   reset  selected store_packet wait_packet wait_untilunpark thread_idcounterCounterdsenders receiversdestroychand ddacquirereleasedddddderr into_inner is_disconnected      is_timeout flavors     Slotstampmsg<Channelheadtailbuffercapone_lapmark_bit with_capacity sender start_send start_recv        disconnect             AtToken! delivery_timereceived new_deadline   list     WRITEREADDESTROYLAP BLOCK_CAPSHIFTMARK_BIT ! UNINIT wait_writeBlockslots   wait_next<!!!_marker"""       disconnect_sendersdisconnect_receiversdiscard_all_messages          NeverToken!+         TickToken!&duration   zero      ZeroToken  <Packeton_stackready!empty_on_stack empty_on_heapmessage_on_stack wait_readyInner!inner+"""      #        select     hookinto SelectHandle run_select   run_ready  :select_timeoutselect_deadlineSelecthandles next_index remove :== try_ready5 ready_timeoutready_deadline< SelectedOperationtoken+      select_macrocrossbeam_channel_internal:utilsshuffle  sleep_untilwaker   EntryoperpacketcxWaker selectors observersregister_with_packet    can_select  notify# SyncWaker6 D#current_thread_id  internal      k66:C CONTEXT__init__getit__KEY  SendError   ! TrySendErrorFull   Disconnected  "#$%&'SendTimeoutErrorTimeout  J  ()*+,- RecvError ./01234 TryRecvErrorEmpty J 56789:;RecvTimeoutErrorK J <=>?@ABTrySelectError CDEFGHISelectTimeoutError JK LM N OP  TryReadyError QR ST U VW ReadyTimeoutError XY Z[ \ ]^  ArrayToken slot ! Position      ListToken   Token    (    3   < Operation       Selected Waiting  Aborted  J  T       K Now          !" RNG H H H  THREAD_ID H H H >7?7A7B7C7D7E7F7G7G7J7P7S7S7S7u7v7x7y7z7{7|7}7~7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7&& ( Mn=v@v@vvvGvTTV _Q@>uvw@w@wwwGw8 TTV _Q@>u8w;bw/ 7x9bw/ 7xGbw/ 7x9[rcs 7xG[rcs 7x;--1^qDv9zGzvwGk6ѩIA?{G6:C  [4.E }QȈ%~d||2q|||H }k>`ZKv}}}}}}J J .bGv}}}}}}K J 4cuFv~~~~~~L 8%ztKGMJ:0bIGKJ(^MNGO CVGO [<G   P VG   Q ?[feGG}G}}G}G}}}}G~G~~~}GGGGGG  R R !>gnjk!!!!!!"))0v  o85 7x   M0ʿV 7x!&&z9rxG  R  FTn3uvG  S  )CSO!!!+V v  dkf  7x   Dڳ~ 7x!+p| v!&2 ;4  [g3&G  t+!oa 7x   ꨬ/ 7xG  S    (    3y'$_ԍG   T    {ӗG   T  U  J  T  yI  7x   V      (c>gGV 7=>>gGV 7=>>gGV=>>gGVG=>>gGV 7G@@+G4W 7@@+G4W 7CCCˣOmsE6 8ArH& T4&kT          qT:&              T  Q&       TH&                  TN&        6&mT ToT8&               P @[ G[.8 [ti8; G@8 #9 # v+  + }QȈ%~2q  )v 5 &v  Wv 9 Tv     O vw+v )+, - ./ 0 12 3 N+6c[!v w WYZ [ \] ^ _` a bcd efg hij ~TpAv  r   v+  !6+lOZ^#Kv+ }QȈ%~ͧ2qͧ )v= &v WvA Tv  +& v +9  ʆ 9   }QȈ%~ʆ  2qʆ )v > &v Wv B Tv _`ȣ+ͧvw9ʆ+vw !      :: v::5 Wv9W Tv:#9w9 :5:9Y Y Y Y Y Y  YZ  ZZ   ZY Y YY  YYZZZYY v  Y Z  ZZ   ZZ ZZZ ZZ v    Z ZZZZZZ v Z [X[ [ YZZ>XY/Z.Z.   'w}Y vYvY Y Y Y ʆYɹYvZ Z ZZvZ Z ͧZZvZ[Y!YYZ Z Xccccc c  ce ee ec d dd ddddd d FFFInstantF 4 a~(¶Ddd v    dd  dd  dd dddd dd v  deeeee ee v ece B~}@v ~}  efcf f dde?cc1d0d0   'w}ccvc   'w~cc cdɹdɹdvd {-Pddddvddeeeveefc!cdd ec e e  DZ Z A *Z(internal error: entered unreachable code((  DZeeJvf vf feffff f@ee5}ee~ee#ve DZffe!ee q# q#q# q#qq  4 qq#q#q  4 qq# q)r rr rr ?v  r q#rr rr r!r  Bv   rr.r B}~ ~} r  rsqss  r!r.Aqr3 qqvqzsecs_nanos_(1Aqq# q#qrrvrrvrsq!qtimeoutqrq       ƀ ππ π                  πـــހ πԀ Ԁ~  πB~;::~~v~~ ɹɹvvƀππvـހ~!~~ ƀ~        Ä ̄̄̄̄̄ф vф     v  Å v Å ޅC,++  Äɹ̄ɹ̄Ä           v Ӊ ܉܉ ܉܉ ܉ v   v  D+** ׈͈ ɹɹӉ܉܉͈Ӊ       ʎ ʎ  ʎ  ٍ       v         vʎ  ʎ ώ v ώEō'&&  ōٍɹ ɹ   ʎ ʎ ٍ  ے ے  Ւ   ے   v Ó ̓̓ ̓̓ ̓ѓ vѓ   v  F,++  {-P ے ɹɹÓ̓̓Ó      #   # # #  ĘĘ  Ϙ  Ԙ  ϘϘ   Ϙ   řř   GB@@ җ  ͙Ę ϘԘ ř a bĘ ř   Μ ל ܜ ͧMv  ͧ߃ܜ    ʆKv  ʆ ( Lv  #Jܚ=D<Қ vǚ  Μǚ Μěƛ  vƛ қKěɹc vL  v M߃      ՟ڟ ͧ ڟ   ž ʆž # )v˞   " )vŸ" )v   &v Pޝ@ڞ>> vϝŝ ՟ŝ   Sender { .. }  HS_   'w z* à GGGEGEGEG EGEGbufEQ ! >Sʠàʠ_      v     v      v       v  ճ --F---phantom-=      M     'w   'wv--F---ҙ-= ՝   Ʒ ߶ ߶M߶͸u .̲--³¶.ۜͱ wñ   ɹɹ   ճ   ՝ ͢Ʒ  ñ ճ !!         v     v       v     ™   v           'w   'wv՝      ƫ Bvwv v .--.   'wvڠ ɹɹ̫ ̫ޢ̫ʳ   !! w    ## # )  vv#  yv+ Bv x. ڠ##Ͱ                    ™     ƫ՝    ƫy 8778ڠ ɹɹ̫ʳޢ̫ʳ   !!      v             ™           ՝    z.--+-.ڠ ɹɹޢ       v             ™           ՝    {-,,*,-ڠ ɹɹޢ        v                      ™                 ՝        |)((&()ڠ ɹ ɹ       ޢ         v             ™           ՝    }.--+-. ڠ ɹɹޢ   v~͆Ibw/v ڠنن͆IΏ vS[rcsvڠS Ó   #  #  #   # ! !#  " "#  # # # $ $ %%    ”&”& ۔'۔'   (( ))   ԕ*ԕ*++  . ,,՝--՝ǖǖ  . ǖ˗><<CG.ڠڠ Ó Ɣؕ ‚”۔  ԕޢޢ  ”۔ԕ    ߘ   ʆv * vω%   ͧvڛɘ?H> w  ɘߘ ߘ  ɹə˙ v˙řəωřƙƙř          ʆ % Wv םܝ ܝ $ Wv   ͧ  $ Wv מ       Wv  ՝ Ɵ ՝  Ɵ" Wv͟5 WvΠà TvܠҜDBBĞ<@wڠ Ҝםמ ޢ՝ Π  מ  ҡҡReceiver { .. }̡ΡΡa ڠҡa  ~x֢@bw/x w֢@ vʤPzwP vx BxR {-Px     'wx  R   Iter { .. } ˭]   ] ux  BxȵVܟ޵ [rcsxе    'wxе е ȵVTryIter { .. }ζ`  פնܶնܶζ`w BvԾR {-Pv zܾ Ͱڠܾ ԾRIntoIter { .. }ӿa  zڿڿӿa                   v     M0ʿVv           v        Dڳ~v     v      ꨬ/v <;; ԍ   ɹ ɹ         @  ::                                         α     =<< {   ɹ ɹ         CC                                        α    ;::  ɹ ɹ       C                                      α   <;;  ɹ ɹ       @C                                      α    544  ɹ ɹ                                             α   :99  ɹ ɹ       CC                                        α    877  ɹ ɹ       C            v !!    o85v     v  !  !    dkf v  ™  v  !!    t+!oav   ՝  @??245ڠ  !ɹɹ ! !ޢ@                    ՝      +-. ڠ ޢ            ""      "  "   ™   ""   ՝ A@@356ڠ "ɹɹ""ޢ CC                              ™          ՝  ?>>134ڠ  ɹɹ  ޢC            !!      !  !   ™   !!   ՝ @??245ڠ !ɹɹ!!ޢ @C                        ™        ՝  988+-.ڠ ɹɹޢ                       ™      ՝ >==023ڠ ɹɹޢ CC                          ™        ՝  <;;.01ڠ ɹɹޢC               v          v     v   322   'wv v ɹɹvvv @!      v    v     v    ™   v      L9     'w   'wvL՝   L9L/../ ڠ ɹɹ ޢ@  --F---ҙ-={        {         X X   7  7{  {-P    6nZc  Cell valueL~ m {-P{                ;;; AccessError !    C &       X   'w                #p#p#p   7 {-P  7 {-P {-P "&p "&p"p "&p#p$p$p"Mp$p#p$p{ fn __init() -> Cell> { Cell::new(Some(Context::new())) } unsafe fn __getit<'_>(init: ::std::option::Option<&'_ mut ::std::option::Option>>>) -> ::std::option::Option<&'static Cell>> { static __KEY: ::std::thread::local_impl::Key>> = ::std::thread::local_impl::Key>>::new(); unsafe { __KEY.get(move || { if let ::std::option::Option::Some(init) = init { if let ::std::option::Option::Some(value) = init.take() { return value; } else if true { { ::core::panicking::panic_fmt(<#[lang = "format_arguments"]>::new_v1(&["internal error: entered unreachable code: missing default value"], &<#[lang = "format_argument"]>::none())); }; } } __init() }) } } unsafe { ::std::thread::LocalKey::new(__getit) } }   {   pp{ppp   {-P pp GĆІp"p ppp#p҆p GGKeyG6GG dtor_stateG+oppinitp p,p ,p*p G,pupup#pup "p ҆"p p҆ pp ?p#p #pp p"p  p p p.Z.Z .Z    "Z "Z G   "Z "Z  "Z   GG formatterG1 2 7e "Z "Z G    "Z@ZZ A  @Z!p "p"p  "p"p!p pppMppp"pp p#pp p@ZIpiecesEEE4&w\NF "Z.Z "Z  "Z "Z.Zp҆ppp.Z .Z?internal error: entered unreachable code: missing default value??.Z.Zp.Z.Z.Z    ?    >          X 6  X      XC   X_ref__f     !       {                                     {                       c       { {        {    cell  C res                      {      ^\vD?,    ^ 2   ;  DDVDpDd@{i    ; D   )^ ^ { BA(O ; ;  ި             B   B ֭    'w   'w   'w  ިި:  ֭   ) ) 9 9l)) ިl    2 2   2ܩ2 ިC   ) ) D ö        Backoffstep6Pܩ) ި backoffC  ) )ɴ 99 (   (  +               " "" "")" ")"ɴ "!9!!9""'"""'"""#  # ''  & '$$$ $$$$ $  $ $ % %!% %   !% $$  $&#  &"&  #"&&"$ "&($'%"'%'&  &(  !$$' ))) ި þ  þ !")")"" ި"""# $$$ $$$% %%&"&&''"sel!$now$ '% "  ""!"""  ( ((((;;Thread;6 쿫 y() ))(@((( ((( ((@* ****;;;ThreadId;  x*)H*)** ))H     D  | GX/|  666Global 7C\ w  |   |     J*||| Box  l*DDOD£DD't|||       J    |J   |  6   6            +     5 |     |    6 ި          :::::: 5 5  :          |         |   3  3 D  3      !  !    !  55ި   3 3ި! #  |::  U  U   J   |J | 8 8     7 |  | 8ި  <<<<<< 7 7 <          |          3  3  3     !!    !  77ި   33ި! #  |::  W  W"v"v"" vv""" "  }" "  v"ۇ"" " " #######$v$$ v$$ v$$}$$v$ۇ$$$ &  &  & & & & & &  &  }&  &  && &  & & & &  &  && Jv&& Jv&&  &&& Jv&&Jv&&  && & & & & & & & & & & & & & & & & & & ۇ&ۇ&ۇ&ۇ&& & & & & & & & &  __self_tag&  __arg1_tag& __self_0& __arg1_0& ّ& && '''''''( ((Jv(((((Jv(((( v(( v(((((}(((ۇ(v(ۇ(v((ّ(ّ(( *  *  * * * * * *  *  ~*  *  ** *  * * * *  *  * *  Kv* *  Kv* *   * * *  Jv* * Jv* *   * * * * * * * * * * * * * * * * * * * * ۇ* ۇ* ۇ* ۇ* * * * * * * * * * * * ّ*  *  ّ*  * * +++++++, ,, Jv, , , ,, Kv, , , , v,, v,,,,,~,,,ۇ, v, ۇ, v, ,ّ, ّ, ,. . . . .  . . . . . / / / / / / 0 0 0 0 0 0 3  3  3 33 3 3 3  3 3 3 3 3 3 3 3 3 44444455555558  8  8 88 8 8 8  8 8 8 8 8 8 8 8 8 999999:::::::= = == =  = = = = = >>>>>>??????B B B B B  B B B B B C CCCCCD DDDDDG G G G G  G óG G G G H HHóHHHI IIóIIIL L L L L  L L L L L M MMMMMN NNNNN SendError(..)  G_ _ # #!sending on a disconnected channel!! *  G  s    #  s$v$#3v$}###3% % &&Disconnected(..)&&ʸ&%% % Full(..)%%ʸ%&$$ $$%% &$$$' ' (#(#!sending on a disconnected channel!!(*(('''sending on a full channel'"''(&' &&''(#&&&*v* v*)*-})})v*)t*)- - .Jv..--Jv--.--."v-}--v-v.-£-£.-/ /0//////1 1201111033SendTimeoutError(..)33ʸ332f2 223222f4 4 5#5#!sending on a disconnected channel!!5*5544%4%#timed out waiting on send operation##4,44534 3344%5#3337v7! v7671~7}6v7676; ; <Jv<<;;Kv;;<:;!;&v;~;;v;v<;£;£<:= ==<<<=<<? ??>>>?!>>     K     p    pR- -V,V, 9capacity must be positiveV,                 9 J;((m !!k:vv  :Map/8X  l*     (  (  ( (    v  ʆ-V,    CachePadded4Vn((!"!!!!    v& " MaybeUninituninit  ?+˼<v& v "" UnsafeCell"_& v OɹO  v! I ɹ   I."" ""!"!"! "!"!" "!"ɴ"# #  #    # # #  # # $$$$+#%% %%%%%%  %% %%%% %% % X?YX?Y?Y &^&`^Unique+EO+7NonNull#CC8f &h`&i h&j &kj&&l ik&ml&&mji-Y?YY?Y+assertion failed: index < self.buffer.len()++Y?Y& _& a_& ba& c b& d & ed& & f ce& gf& & gdc,'"!'" '"'ɴ!" '($(% ( #$%( #( ) (( ) (( ()(*('(*(')+),+)),+))&,(+ -++  -&+,1,,10,,/0,2,3&-4 -5 ,, /2345.,,6 .,60:.0 :0 <0 0 <;0.7.67/8/98//98//9//+1? 1 @1 1 ?@>11B1CB11CB11AC1,=>A1,='2E 11  EED12!I2!2!IH2!2!GH2J 2!2ɴGJF 23 MF3  N3 3 MNL!33 O3' KLO3' K#"4 4+4 Q4 4QP$44! U4! 4!UT%4!4! ST5 V 4! 5ɴSVR&54( R16X66XW(66!\6!6!\[)6!6!Z[6] 6!6ɴZ]Y*66(Y16& a& &  V  &&`&& Y?Y ?Y  !!"$%&&+'(0k2n!ɹ!!!""!"! "!ި"### # $%%% %%%%%% %?Y?Y&& &Y?Y &ى& ''"ި'( ((((( ( ())+ ,,,ԇ,,,ި-ި-- .//00þ01,1 11 1111ި222!2!ԇ2!ި23'333 34þ44!4!4!ԇ4!ި56þ66!6!6!ԇ6!ި6!!!!& & & & & & &&&&&& !@!!!"$ lap%R&!' new_tail(&0 :!2 F!8F8F8F8F888  8 88888 v; 9 9"9   99$9$ 9$ 9$9$9$ 9$9$9$:::::  v  ::+:    ::6:: :6:ǥ :+;;;   ;; v; ;7; ; 9$: :: "  :797 ɹ77v788v89$9"9:+ : ::v::6:6:ި:; ;;9$9$9$9$9$9$7@7!7R97,<< <=!=!=!=!=!= =!=ɴ== >  >  >>  >>  =    >> >>>>>> > \?Y\?Y?Y?^?`^?h`?i h?j ?kj??l ik?ml??mji+]?Y]?Y+assertion failed: index < self.buffer.len()++]?Y? _? a_? ba? c b? d ? ed? ? f ce? gf? ? gdc*@"@ @"@ɴ @A!A"!AA"!A A "A#A #A A ' AA ' A A &'A(A%&(A%B)B*)BB*)BB$*AD +DD +$DE/EE/.EE-.E0E1$F2 F3 EE-0123,EE4 ,E4I9,I 9I ;I J;:JEG5G65H7H 8HH 786HH36II)J=J>J <=>J <%J@ JJ @?JK!DK!K!DCK!K!BCKE K!KɴBEAKL HAL  JL I JL G HIL KL FGKL F!M MAM  NM L MNM L N  N ON N ON NN NN  )P PO  )P QP PQP"PP! UP! P!UT#P!P! STP V P! PɴSVR$PP( RJRXRRXW&RR!\R!R!\['R!R!Z[R] R!RɴZ]Y(RR(YJR? a? ?   ??`?? ]?Y ?Y <<==>??+@A IkKn<ɹ<<<==!=!ԇ=!ި===>> >>>>>> >?Y?Y??ى?]?Y?ى? @@"ި@AAAAAAAA A ABBD EEEԇEEEިFިFFGHHH IIþIJ JJJިJKK!K!ԇK!ިKLLLLL LMMM N PþPP!P!P!ԇP!ިPRþRR!R!R!ԇR!ިR<<<<? ? ? ? ? ? ?????? <@<<!== >R?!@A$hI 9!K A<SSTT ST vW TT"UUT$T$ T$ T$T$T$ T$T$T$ UV  VU#V   v V V6 VV V6Vǥ   V+WWW  WWW vW WW ST$U UUњ USTUS ɹSSSST$T"TvUUUUV6V6VިVWWvWT$T$T$T$T$T$S@SRT!US X XX XXX ԍ XXXX  v XXY YYYY YY:Y Bv} vY  Y#Z ZZ Y v Y }XZWZZ Y:WXYE XɹXvXXԍXXYvY}YvZZX!X@XW[ [[ [[[[[\ \\ \]] ]]  ]]] ] ] ]] ]]   ]^ ^+^ Bv~ v^^'^^^ ^^ _ _ ____```  `````  ``` ``` v`# ~aaaa v  {  ɹ aa  vagZ gg \^+_aZ [ \ ]]!`![ɹZvZ[[ԍ[\]ɹ]]]ɹ]]v]^^þ^_þ__`````~`v`aaaaagZ!Z[@[\] `Z bbbb ԍbbbbbbb bcccc c c)c)c)cccc v cc) c  c)c) c)d  c d   deedd    de e   eaDZaZa*Z(internal error: entered unreachable code((aDZffffff  ff&f >CCCCVkffgabc;d aaabbbbc)cccc ddeeaDZf& {-PfffaaaɹaaɹaaɹaaaɹaCa@[Z[Cbd a _ref__token _ref__self_ref__deadlinehhhhii  viiiii i8i Bvv i'j j vijhhiCۜhɹhhԍhiijh@hhi iiiiiikkkkk ll lmmmm mmm m mm  m m  m/m Bvv  m+nnn  nn  o o ooooopp  ppppp ppp p vqqqq vqq  vqxj k l mmpkɹkkkԍklmɹmmmɹmmmnþnoþooopppppqqqqqkk@klm oj n nn"nn"nn"rrrrrr!r!r!rr!rrssss s s*s*s*ssss ss* s  s*s* s*t  s s   stttt   tu u   udDZdZd*Z(internal error: entered unreachable code((dDZvvvvvv vv(vvvxqrs;t qqqrr!r!rs*ssss tttudDZv(vvvqqqɹqqɹqqɹqqqɹqCq@kkkCrt qyz z z z z z z zɴzz  z z  z z  z z zɴ z{ { { { { { { {ɴ {|{(  {( || |||| || || |||| || } }  } }  } }} } }!}"!}"!} "}# }# }#}~&~ (~' (~% &'~)~$%)~$~~~~yzz||*yɹyzz z ԇz ިzzz z ԇz ިz{({ { { ԇ{ ި{||||| ||||| |} } } }}}}~~~~~ ~y!z!zhix|tix|y ʀM ɹM33333 ł 3 )           ƒ ڡ ƒ ܃܃ɹ33ԇ3 ިł !       ɴ 0 5…Єr ɹ0   ԇ ި Єr     †  ɴ          ɴ        ݆ɹ  ԇ ި†  ԇ ި !!       ɴÊ  Ê Ê  Ê Ê  Ҋ Ê ͊ɴ ͊ތ  ތ      ތ8 ԉɹ  ԇ ިÊ Ê ԇÊ ިҊތތ  !!ԉ'      Ď Ď            ڏ  ڏ  ڏ           bb"! " 8! # %# 9%$& $&'$Ӓ+ 'Ӓ+ 'וӒ*+ݒ,Ӓ)*,Ӓ)- '- '(-Вu/ '/ './01.01.0(1Вuf?Y 2f?Y?Y 2   5( A CA QC R Q S  TS U RT VU VSR&g?Y g?Y+assertion failed: index < self.buffer.len()++8g?Y$ B$ DB$ KD$ L K$ M $ NM$$ O LN$ PO$$ PML% >9 њ>=" E= F E G  HG I FH JI JGF$    v@? <=    v<@# $ :DД ;($  V:;9! 7C 67 456g?Y 3 4?Y 3  ؎Ēԓ _ WՍ ʆʍ    ܎   ڏ    ȒӒӒӒݒ?Y?Yىg?Y   $Д    vʍ ʍ ʍ ʍ       $ $ $ $ $ $        ʍ !!܎ #'Ȓ(R 9! < !!!!!!"))0x  xXݗ   o85xǗ@ǗX ʘ::###ƙ ƙ ֙Иܘ##ܘܘCCИ!!! ܙX!!CܙX  aĚ˚ޚĚ@˚_cxޚaǛǛΛ xΛ ƛ.ƛ.ƛ.ܛܛ xƛ ƛ.ƛ.ƛ.YƛǛܛY   Ҝ Ҝ   CCĝ ĝ ؝RCRÞÞʞ  xʞX    M0ʿVx@X ::!!!  ܟ˟!!CC˟ VנƠCƠVҡס  סaá@a x ---̢ ---XX УҢ~ۢۢۢCCҢ~ ֣PC֣Pb when  %   %  D  %            # #  # #       *    *      +   +            % %ި   #     + * *ި  % %%            * *             + +   "  "!kDZkZk*Z(internal error: entered unreachable code((#kDZ <&$̫!%%ި+**ިkDZ    ? m@m % %% #### $    $      %%ި# $ި !!! ! !!E!!!!!E""" "##"K##"K#"}"""""}$ $$#F$ $$#F%%ț% % %% %'''%%%  %&&&& &''''$%U %%%%&%%% &%@%!%$(%) (%))(%) ({)) ({)'('(%(%ި))''*** **[*****_oper***[+*)++++Ƥ +*)+, ,,+a+++++@+++a,,, , ,,;,,,,,;--- -,X-----Ƥ --,X.-&.---Ƥ --&124 32        ! !   !  LAP - 1      1      1 &       &  &  &         e v   { { ! )v  &   {XSelf{ msg: UnsafeCell::new(MaybeUninit::uninit()), state: AtomicUsize::new(0),} " "ɴ* /   *""ިþ        BLOCK_CAP  **=v D  v q v DDVDƥDd@{i    v         BLOCK_CAP !  ! D               !ި þ                    "  "ɴ ||| .  .Š #|) | 5 :||     l*       V  !   ָ    |)""ި:5..ި this  R   llPositionllindexll Gllblockl  l  l ll Hll l l llll lll l  l llll    L     q   q ((  ((( ((((('|  v'' '))  )))  )))* ))|  v )) )**  *' v  PhantomData<ɏv*' '4Vn''| ( (( ))| ) ))*'+ v++O++++O,  v,,I, ,,,IN-}--- -.  ..  ..'. .'.ɴ..   ..  ..'   . .'.ֿ   ./}//  /00 00 0 0 J0 000E0\1111@1 1 J1 11111 J1122 2 223J33  33 J33'3 3'3ɴJ33.3 " 33 "!J33' ! 3# 3'3ֿ  #J33/ 5 '55 '5J5/$5/5/6)66 > )(J6 5/$5 &'5%&5 5/%5/$(5/66 v,J666  ,+J66!*  +6 6 }6 6 *56 }6 6 *6 J8. 88 .-J8 8-2 88 1!J888 10"J88*8   0/#J8*87 8989 76$J89856 98 99/9: 9; 89 D 589:;4%J9B8348: B  32&J:82*': ? :: ?>(J::-=> :@/:A :-: D =@A<)J:;B/;  B82;E/;;  ED+J;;C  D; ,-; }; ; C< I << IH.J<; }; ; C;J<'GH<J <'<ɴGJF/J<<.F< N << NM0J<<'LM <O <'<ֿ LOK1J< X >> XW5J>>VW>Y?Z ?[ >>VYPZ[U6J>>\ U>\87 EuUE uE  y E E yxCJE@  _@@  _@9J@  ^_@ ]^@ @ ]B:A  }A A  bA A > ba;JAA" A  a`<JA"A  f A A fe=JAA4 de B  g`B h A4 A dghc>JA$B  l B B lk?JBB8 jkB  nBB @B  n BB@JB  m BBB o B8 B jmoiAJB(C2 ~ C2  ~C2   C2 C2C2  C2 C2C2 KC t C% tD D DEE' wx E z E' Eֿ wzvDJEE/ vF |F F|{LJFF}FHF}FF-FFFGF}GIC2 q  C  r`C s C2 C qrspMJC$F C2 B --../18;#=?A E----..' .  . ި. .  .' . . ި. {-P /000 1111122þ23'3' 3 3 ި3 3' 3' 3 3 ި35/55 5 6  6 6! 6 68 8 8 8 88    'w  8 8 8 89 8 9 9ި9ި9:- :- : :  :ި: ; ;# ; ;<'<' < < ި< <' <' < < ި<=== = =>> > > >ި?ި??@@ @  A   A A A4 A4 A A  B ިBB8B8 B B B B ިBC2 C2 C ިC CE E' E' E E ިEFþFFC2 C2 C2 C2 C2 C2  -@--!..  next_block/18/=P A  `E u-0111112 5 ===@ BBBHFHFHFHFHHHH HHHHH vK II#I  II I$I$ I$  I$I$I$ I$I$I$J JJњJJJJJJJJ+J JJ- J J-JŠJ J"KKK KK vK KFK K I$  I$  I$J   JFIIIG GGvGHHvH IIIָ I I$ I$J+JJJvJJ-J-ިJKKKI$I$I$I$I$I$G@G!GII RI FJALL LM  MM MM'M M'MɴMM   MM  MM'   M M'Mֿ   MNNNN@N NN NNNNNNNOO OPPP PP  PP  PP'P P'Pɴ PP.P  PP  PP' Q P'Qֿ  QP/ OQ!Q #QQ @Q # QQQ " QQQ$!"Q$!"Q $R& R% &RR%"R( RR ('RR , RR ,+RR'*+S- R'Sɴ*-)ST0T 1TT @T 1 0TT / 0TT3)T 4TT @T 4 3TT 2 3TT./2T.T6)T5 6TT5U U 7U U7VVV >WWW >X;X<XX@X< ;XX: ;XX=XXX=:X9:XX@)XAXX@XA @XX? @XXBXXXB? X>?XX.89>X.8"!Y  YXo"ZD ZZ DC#Z ZC*$[F[[FE%[[ J [[ JI&[['HI[K ['[ɴHKG'[[.G[ O [[ ON([['MN \P ['\ֿ MPL)\[/ L] T ]] TS+]]RS]U]V ]W ^X ]]RUVWXQ,]]Y Q]Y.-dwQe we  { e e {z<e_ \__ \_/_ [\_Z[_ _Z;0` ` `  ``` ```@`a ` b ``` ab` d`` @` d ``2` c ```/` `c_3`a$ ]a$  a$   a$ a$a$  a$ a$a$ ?a. a gf5a a/ e fa/ e76a _ _aa 7b  m b b ml8bb. kl b n]b o b. b knoj9bb  s b b sr:bb4 qrc  t_c u b4 cǥqtup;c$cv c%vddd>e' yz e | e' eֿ y|x=ee/ xe ~e e~}efa$ h] a i a$ aֿ hig4a`^ ``  v^]1`  LLMMNQR^_`dLLLLMM' M M ިM M  M' M M ިMNNNNNOPþPP'P' P P ިP P' P' P P ިQQ QQ Q QRRRިRRR' R R ިSTT TT T TT TTU X.XXXXXXXXXXZ Z[þ[['[' [ [ ި[ [' [' [ [ ި\]] ] ] ]]ި]ި^^__ _  _ ````` ` ` a/a. a$ a$ިab. b. b b  bިbb4b4 b b c ިc cd e' e' e e ިeeþea$ a$ a$ a$ a$ a$ `````` L@LL!MM  Nnew_headQ  !R)_]>` _d wL"NNNNNO QQQRTTTTTTXXXXXXXXXXY_ ````aTgggg gh vm hh! ii$i$ i$  i$ i$i$!  i$"!i$i$"i ii  v i jjjњjjjjj#j  j k kk k k kk k ll vlll+l l+lŠl l l5 ll: m mm mm l!l l!m m vmmm fi$  i$  i$i   ill!fhiii#g fggg hhiָ i i$ i$iָ ivjjjjkk k ll5l+l+ިll!m m vmi$i$i$i$i$i$f@ghiRi!j fk lln nnnnn B~}v } npmnnvnnnn!nm n n pDZpZp*Z(internal error: entered unreachable code((pDZnoJvo vp pnpppp pnnF}n n~nn#vopDZppn!on q qq qqq qqqr  v rqq qqqqq(assertion failed: self.start_send(token)(( qqr rr rr  rrOr r r'spss pqrn qpvpp qԍqqqqqrvrsp!p _deadlinep @qptttttt  vttttt t8u Bvv u'u u vtusttCۜsstԍtttus@tsu uuu uuuwwwww xx xxxxx  xxy y yy  y y<y Bvv  y+z zz  zz  { { zzzz{{{  {{{{{ {{| | v}}}} v }}  v }v w w x{{vvvwԍwwxxxyyyzþzzþz{{{{{{|} }} }}vv@ww{v y yy"y y"yy"}}}}}}! }!}!~}!}}~ ~~~ ~ ~*~*~*~ ~~~ v ~~* ~  ~*~* ~*         Հ π   ՀuDZuZu*Z(internal error: entered unreachable code((uDZ  (}}; } }}}}!}!~~*~~~ uDZ(}} }} }} }}} }}C}@wv vC} }(    & &ɴ     & ņ &ɴ Ç  ÇÇ ÇÇ&؇ Ç&Ӈɴ ӇÇ.  Ç.   @     ƈƈ     @       ڈ ̉ ˉ!ԉˉ@ˉ! ԉ ˉ  ԉ݉ #މ݉ #މ݉ "#ˉ "%%$%ˉ&$ˉ&' ) @ )  (  '(&$&ȉwԊ-ӊ.܊ӊ@ӊ. -܊ӊ, -܊ 0 0 /0ӊ+ ,/2212ӊ&*+1ӊ&*4 6 @ 6  5  453$3Њw9:@: 98 9;;878܌= @7 @7 ?@A@A ?> ?܌'  =><"Ռ.<C F7 F7  EFG@G E!D E'  CDB"".BH@H # I@I $ KL MKL MKL% JMO P  PO& NOQJNQJN'Qڏ ޅ  R&   ި&   ިņÇ.Ç&Ç& Ç Ç ި؇    ˉ&ˉˉ̉ˉ݉ ݉   ӊ&ӊӊԊӊ    ܌'܌  '      !!7 1ԉԉԉމމ܊܊܊Ɛ АC C   4Ē 4Š$   ڡ  ѓѓܑ 4   ިĒ!ܑ   4 4Š$ڕڕ ڕ v ווȗє 4   ިڕڕ!є8    ' 'ɴ  @                ՜  ՜՜  ՜՜' ՜'ɴ Μ.Ι' 'ɴ     '  'ֿ ! " @ " !   !$ % @ % $ # $ #' '& &))( -  -,'+, Ȣ. 'âֿ +.*â/*1 2 @ 2 1 0 14 5 @ 5 4 3 4/03/*89@9 87 8:Ȥ:767Ȥ;6 ;"ʥ$xʥ$y xʥ$z  ʥ${zʥ$ʥ$| y{ʥ$}|ʥ$ʥ$}zy7@<  @? C<¦њCB ¦rBs rt utv suwvwts6ݦ  ED'lm ln  onp moqpqnm5%f%g f%h  %ih%%j gi%kj%%khg4 M   ML%  LK& NH  Nޤ'ȩPک Rߩک @ک R کߩ(ک Q کߩȩͩ PQO)ͩ$OU UT+ S TS.,X  XW-ܪܪ WV.ܪ Y  Y ]  ]\/9[\ ɫɫ  ^0ɫګ_ 9ë [^_Z1ë) c  cb2.abde .ǥade`3%I J %ֿ IJH$G  GF# ABݦ ߦ AE!ߦ ʥ$> ʥ$=> ʥ$٥  =6<٥ ѝc~ޘט'   ިþ՜'՜' ՜ ՜ ި'   ި ՝  '   ި     þ ' '   ިȢ    ָ å ʥ$ ʥ$ָ ݦݦ    %ި   ȩȩک ک  ܪ   9 9    ɫިګ..   ި%%%%%%ʥ$ʥ$ʥ$ʥ$ʥ$ʥ$ ט!!՝ 6Rå<ƥ A H ȤȤ ߩߩߩ   & &ɴ1 ȭ6ԭۭs1&&   ިsȭ̮  ̮̮ ̮̮& ̮&ܮɴܮ     &  &ɴ    @      ȯȯ Яȯ @ȯ  Яȯ  Я ۯ_Ů̮& ̮ ̮ ި&   ި  ȯ ȯȯ !Ů!ЯЯЯʰ::"     б   бб  бб  б  ϱ     D    Ӳ ٲӲ @Ӳ  ԲٲӲ  ԲٲҲҲҲѲ ɲ   @             !Ŵ@! Ŵ   Ŵ"δ"δ# #е$H е$I Hе$J  е$KJе$е$L IKе$MLе$е$MJI!)$њ)(B(C BD EDF CEGFGDC ˶ +*˶۷< ۷= <۷>  ۷?>۷۷@ =?۷A@۷۷A>=ڷ,-1   10 0/  ,3 5 @ 5  4  342$2 8  87 6 76;   ;: :9۷.  ۷ .- '( '+ е$&  е$%& е$ߵ  %$ߵ   ŵcϷN      ıбб б б          ѲҲӲ Ӳ Ҳ   ָ ɵ е$ е$ ӷ ۷ ۷       ۷۷۷۷۷۷е$е$е$е$е$е$ !!ı  Rɵ$ƥ'ӷ, ٲٲٲŴŴŴδδ Ҽ !!!+V xҼټ  xټXü   dkf x @X : :# ##    ½ɽڽ## ½½CɽCڽ! !! ¾X о׾!! ооC׾¾X   aֿ Ŀ@Ŀa  x ...  x ...Y   Y          CC  R  CR   xX    Dڳ~x @X : :   [ Ƥ [) Ƥ )   a @a/ /  X Ƥ X& Ƥ &aa  vaۜa   v  v ]    _token ]    :    :    9    9    3    3     F    FF F :: [Ƥ [)Ƥ ) a@a00 XƤ X&Ƥ &   8 i      ++ AtomicCell-0Q & dur                 C                     i               i    G    4          B                                       'w  i  i           &                                                        |           & &   & |   G              " #  "#! "   ! "  $  $      %̫ !                         |  |  &        "         &           o      @ o            * * *  `          `      E     E       K   K  }     }    F    F                             W            @ !          U       U     [      Ƥ   [  )     Ƥ  )     a      @  a          ;          ; ! ! ! !  X ! ! ! ! ! Ƥ ! !  X " !& " ! ! ! Ƥ ! !&            v     "    v     555!J,v   """_                v          v               l*                         v      v          v      v  !       "   "   #  #             # " " ި  þ                  16ĩv  v     ͧ 111611poison11data1_Z2w-        v O    O  v I    I        1     CFFFlock1F 1 dw 22 PoisonError2guard2`)                                                                                I         'w                              @ 6  operation    B B B B    ö       v!  "  $ $  $   $ $ $  $ $ $          v !          +     +    D        v! !  ! !  $          "         v   v  "   !        v   +  + ި  ! $ $ $ $ $ $  @ ! C  ! ! !  ! "  " ! "  " "  " "   " " " # ߩ # # # "  "  " " "  #  #  # # #   # # # ګ  # #  #   $ $   $ $ $ $ #  $ $ #  $  $  $ $ $ ! $ $ $ $ $ $ $ $  $ ! ! #I ! ! !  !  ! ٰ ! "  "  "  " " " # # ر #  # $ $ $ $ ! @! 6! ۱ "  ! & & & ö& & & v- & &"  &$ &$  &$   &$ &$ &$ !  &$ "!&$ &$ ")   ) )   ) + +  v + )  v) )    ) )' )  >v ) *+ *  *+ * ޷ *  * *  *  v' ,  , ,   , ,  v, ,   , ,' ,   , , , ,   , ,/ ,   ,/ ,5 ,    ,5 - -  v' - - *  % &$ ' ' % & ) , #% % % & & & &" & ' v) )  )  ) ) *+ *+ ި* v* + v, ,  ,  , , ,5  ,/  , , v- &$ &$ &$ &$ &$ &$ % @% C& !)  !, % . . . . . . . . . . . . .  . .  . . .  . . . /  / /   / /   / / ߩ  / / / /  /   / / /  0  0 0 0 0 0 0    0 0 0 0 0 0 0 0 1  Bv 1 0$ 1  > 1 1  }1  1 1 1 ګ  1 1 1  2 2 2 1  v1$  }1 2 2 2 2  v2  }1 2 2 2  2 1  2 2  2 - 2 2 2 2 2 2 2 2 2 2 2 2 2 - . . / 0L !. - v- . ԍ.  .  . ٰ . /  /  /  / / / 0 0  0 0$  {-P0 0 v0 1 ر 1  1 }1 v2 }2 v2 2 2 2 2 2 - !- @. 6. ۱ /  - 4 "4 4 !4 4 "4 4 4 4 4 4  4 4  4 4 4  4 4 !4 5  5 5   5 5   5 5 ߩ  5 5  5   5  5 5 6 !6 6 6 6  6 6 6 6 "6 6 6 6 6 6 6   6 6$ 6   6 7  ~7 7  7 7 7 ګ  7 7 7 7 "7 7 7#  v7(  ~8 8 8  8 "8 8 !8 8  v v   8 8  v  8 B !B B B !B B B 7 3 B B !B B !B B "3 4 4 5 6L #3 3 v3 3 4 ԍ4  4  4 ٰ 4 5  5  5  5 5 5 5 6  6 6$  6 6 6 6 v6 7 ر 7  7 ~7# v7  8 8 8  8 B B 3 !3 3 @4 64 ۱ 5 3 -8 B8 8 A8 8 A8 8 B8 9 :9 ;:9 9 ;,9 9 B9 9 v9" 9  v,9" 9   9 9   '9 9x :  :  :   :(   9x :    ':H :  : :  ': : : ;  '; ; A; ;  ; ;  '; ; <; <; ; '; <  <   B 9B B  98"'B < xDZxZx*Z(internal error: entered unreachable code(('xDZ= = = >== > = =   '= = =  '= = =" ="  &=" =3 =  =3 =   &= =< = &= = &= '= $ = =  $#'= > % v= =  #%"'= =' >  "!'> > '!> & v'>#  ~&> #? ? ? @?? /@ ? ?  /.'? ? ?  .-'? ? ,-?" ?"  ,+%?" ?3 *+? 0?3 ? *0)%? ?< ? )(%? ? (%? -'@ 4 @ @  43'@ @ 5 v@ @  352 '@ @' @  21!'@ @ 71@# 6 v7@(  ~6@ #B  ~B #B $,B ? -'= 'B ,8 B A(*B  (B v)B B)+8 8 9 ; = =2 ? ?2 C8  8 8 8  9 v9 9x  9x  9  9 : :(  :   : :  :  :  : ;  ; ; ; < xDZ=< =3  =3  ="  =  =  = ٰ = = v= =  =  = > ~> v> ?< ?3  ?3  ?"  ?  ?  ? ٰ ? ? v? @  @  @ @ ~@# v@ B  B 8 8 8  8 8  8 8 B B  C8 @4 !3 v64  3 3  C8 C9 ; != !!? 18 !6C C C C C C C C D  D D  D D D  D D D E  E E   E E  E E ߩ E E E E  E   E E E  E  E  E E E E E  E F F F F8 F  Bvv F' F  F F F ګ  F F F  G  G  vF G  G  vF G G G  G F  G  G G C G G G G G G G G G G G C C D E FC ۜC C C ԍC  D  D ٰ D E  E  E  E E E E E  E F F ر F  F G G G G G G C @C 6D ۱ E  C F F F F F F F I I I I I I I  I I  I I I  I I I J  J J   J J   J J ߩ  J J  J   J  J  J K K K K K  K K K K K K K< K  Bvv K+ L  L  L L L ګ  L L L  L  L#  vM M M M M M  v   M M  vɨ٨M X X X X X X X L  H X X X X H H I J Kk H H H I ԍI  I  I ٰ I J  J  J  J J J J K  K K K K L ر L  L L M M M  M X H H @I 6I ۱ J  H K K K" K K" K K" (M 9M M 9M N 2N 32M M 3'M N N  v'N N  N N  $N N O  O  O   O(   N N    $N O  O O  $O O O P   $P P 9P P  P P  $P P 4P 4P P $P Q  Q   W ,W W  ,+$W Q {DZ{Z{*Z(internal error: entered unreachable code((${DZR* 5 R* 65R* 6 R* R   $R RL R  $R RL Ro Ro  #Ro R S R S #S R S #S S #S $S  S  v S  T* 7 T* 87T* (8 T* T  ('$T TL U  '&$U TL %&To To  %$"To T #$U )T U #)""U T U "!"U V !"V &$V * V#  v*V  X 0 X X  0/$X X 1 vX X  /1.$X X' X  .-$X X+  v-X  X !'X V &$S $X 'M X  %X 9%&M M N P X6 :M M M M  N N  N  N  N O O(  O O O  O  O  O P  P P P Q {DZR R  R  Ro  RL  RL  R* ٰ R* S S T T  T  To  TL  TL  T* ٰ T* U V W  W vX' X  X  X X M M M  M M  M M X CM @I 6I  H H  CM CN P M 6Z  Z Z  Z Z Z  Z Z Z Z ګ  Z Z Z  Z  [  [ [    [ [  [ [ [ [    [ [   [ [    [ [ [ [   [ [ [ [   [ \ \ Z  \ \ Z  \  \ \ Z Z Z Z Z  Z  Z ٰ Z Z Z ر Z  Z  [  [ [  [  [  [ [  [  [  [ Z 6Z Z ] ] ] ]3 ] ] ] ]3 ^ ^ ^ ]F ^ ^ ^ ]F _ _ _ ^: _ _ _ ^: ` ` ` _9 ` _ _ _9 b  !6+lOZ^#Kxb b  xb b aX b   t+!oaxb b b b @b aX c c b: b b b b: c c  xc c+ c  555!J,xc+ d d  d d  d d d  d d  d d   d d]   e e e   e d] d     d3 e e e  e e e e   e e e e ګ  e e3 e3 e3  e e e ګ e f e e e  e e3  e e3 e3  f f c c c d c c c c c   l*c  d  d ٰ d d]  d]  d  d e e e  e  e  e e  e ر e  e e ر e  e c c Cc Cc Cc 6d c f7 f7 f f   f f   f f f  f f f& f&   f& f7 f7 g  g g g f  f  f f f  g  g$ g   g g3 g    g3 g9 g     g9 h   h h h h  h  f h  h  h   h  h  f gy ga f f f f7  f7  f&  f  f  f ٰ f f f g9 g3 g$ g f h h f Cf ۱ f  f h h  h h i i i hw h h h h h h @h Ch hw  i i   i i  i i i  i i i i ګ  i i3 i3 i3 j  j j ګ   j j  i i i  i i3 j  i3  i3 j j  i i ik  i i i  i ٰ i i i ر i  i j ر j  j i i 6i i k k  k k  k k k  k k  k k    k k  k k   k k k k ګ   k k3 k3 k3 k k k ګ   k l  k   k k    k k3  k k3 k3 l l  j j j j j j j  j  k ٰ k k  k  k  k k k ر k  k k ر k  k j j Cj Cj 6j j l l   l l  l l l  l l  l l   l l l m  m m m m l l lZ  l l l  l  l ٰ l l  l  l  l l l Cl 6l l n n n  xn n mX m    ꨬ/xm m m m @m mX n n n: n n n n: o o o o+ o o+ o o  o p  p o p  p p  p p   p p[   p p p  p p[ p     p3 q q q  q q q q   q q q q ګ  q q5 q5 q5  q q q ګ q q q q q q q5  q q5 q5  q q n n o o o n n o o o  o  o ٰ o p[  p[  p  p p p q  q  q  q q q ر q  q q ر q  q n n Cn Co Co 6o n r5 r5 r r   r r   r r r  r r r$ r$   r$ r5 r5 r  r r r r  r  r r r  s  s$ s  s s3 s   s3 s9 s   s9 s   s s s s  s  q s  s  s   s  s  q ry ra r q q r5  r5  r$  r  r  r ٰ r r r s9 s3 s$ s q s s q Cq ۱ r  q t t t t t t t sw t s s t t s @s Ct sw  u u   u u  u u u  u u u u ګ  u u5 u5 u5 u  u u ګ   u u  u u u  u u5 u  u5  u5 u u  t t um  u t u  u ٰ u u u ر u  u u ر u  u t t 6u t v v  v v  v v v  v v  v v    v v  v w  w w w w ګ   w w5 w5 w5 w w w ګ   w w  w   w w    w w5  w w5 w5 w w  v v v v v v v  v  v ٰ v v  v  v  v w w ر w  w w ر w  w v v Cv Cv 6v v x x   x x  x x x  x x  x x   x x x x x x x x w w xX  x w w  x  x ٰ x x  x  x  x w w Cw 6x w }# }#  }# }, },  }, }) })  }) }, },  }, }) }) ƥ}) }) })  }) }  }  } ԍ} }# }, }) }, }) }) }                                                      assertion failed: val > 2         v                                                    T   T                                ّ                 $               ,      C      T              *         ! ! !  x! " !Z !  x! ! ! ! @! !Z " " "  x" " "I " " " " "I # # #  x# # "e # " " # " " C" C# "e $ $ $  x$ $ #P # # # $ # # C# #P $ $ $  x$ % $d $ $ $ $ $ $ @$ C$ $d % % %  x% % %> % % % % %> & & &  x& & %_ & % % % % % C% C% %_ & & &  x& ' &I & & & & & C& &I ' '  ' ' Ґ' Ґ' ' ' '  ' ' ' ' ' ' '  '  ' ' ' ' ' '  '  '  '  ' ' ' ' '  '  ' ( (  ( (  ( (   ( ' '  ' ' ' ' ' ' ' ' ' ' ' ' ' ' ( ( ' ' ' ' ' ' ' ' ّ(  (  ' J4   4 4 4  5 i5  i5 5   5 5  5 5) 5  C5 6 j    6 kj6 6  Vk 6 6 6  8NNIterMutNMNMN+M-bD 6 6   6 6  6 6  9 6 6  6  6 l  6 l6 m 6 m6 6 6 6  6 6 7A n7, 7$   7, 7A 7  n 7: 7A  9   8 8 8 8  8&  : : : 9 9  9 :   : 8 < <  < < < < h< Ռ< < h< < =  = g= Ռ= =   g= = '> o> " o> " @ p@ #p@ ! #@ ?  I? ! ? @ q@ rq@ &r@ @  V&%@ @ @  8NNNMNMN+Mjg(+%$@ @ '$@ @ )'@ @  9)(@ @ * (@ *! @ s( @ +sA A  +,"A B 7!B B 76&B A - ,A -#A .,A 1!A 3.A 2  3A A  ?120$A A 5.A 4 5A& A  ?04/%A A1 !/@ B 6= 'C tC utC C u:(C C ;C) C  ::;9)C C) C)  8ννTakeн2ѽn2s98*C) C) <8C +C) ><C) C)  9>=,C) C) ? =C) ?.- C v=C @vD? w@D, D$ @B/D, D C D C12H0 D? D  wBA+D8 J xJ yxJ J yV>J DZZ*Z(internal error: entered unreachable code((DDZF E F E3HF FG zG {zG I{G G IH4G G G HG5G G JGG 6G LJG G LK7G G M KG MH8 G |KG N|G }KG O}G ~KG P~G ROFG1 R9:G1 QG1 G1 ;G G G  NS<G G1 Q6=G1 QSG1 ;H T OPH  TIJ J VU?J J WUJ @J YWJ J YXAJ J Z XJ ZHB J XJ [J XJ \J XJ ]K _K, K$ [bCK, KA a  bKA `aKH KH _`^DKH KH ^@EL [M L M  cFM L c@GM e\M f]M d efM  dIN  N IN 3 3 4 4 5J 6 6 : > ? @ @  Ab  C C`  F G G J J  {-P3  3 3 3 4 4 5 5) 5 5 6 6 6  {-P6  6 6 6 6 6 7A 7, 8 8 9 9 9 9 : < < < = = > ? @ @ @  @ @  {-P@  @ @ @ A A A A& A A A A A A B B C) C) C C C) C)  C) C C D? D, E DZF F G G G G G G G G G G G1 G G H J J J J J J J J  J KH K KA KA K, L M M M = < 3 3 3 6 6 6 3 3 3 3 @ 3 3 C) C 3 3 3 3 G G G 3 J J J J 3 C3 + >* @1 3 registered_count4  index_ready4 6  handle6 6  : > !@ #@ '@ +xA .C) <C @F FG JG NG OG PJ WJ [J \J ]3  _ref__timeout _ref__handles=   = = 4 = = = <   < < 6 < < < A A A A  A A A A A A A A yA A A _ref__x9_   _ _ ` R` SR` ` S` ` ` ` ` ` `  ` `  ` `  `  ` T`  T`  ` `  ` ` `  a, a$  a, b U b  b b  U b b  c  b   b( b  b% b(  b.  c c c c  c   c b e e e e e e Qe Ռe e Qe e f f Pf Ռf f Pf f $h Vh  Vh i Wi Wi  i DZZ*Z(internal error: entered unreachable code((DZh  h i Xi YXi "Yi i "!i i i ! i i # i i %#i i %$i i & $i &i Z$i 'Zj j '(j k 3k k 32#k j ) (j ) j *(j -j /*j . /j j  ?-.,!j j 1*j 0 1j& j ,0+"j j1 +j k 2f $l [l \[l l \6%l l 7l) l 675&l l) l) 54'l) l) 84l (l) :8l) l) :9)l) l) ; 9l) ;+*l ]9l <]m< ^<m, m$ <>,m, m ? m ?.77-m< m  ^>=(m5 o _o `_o o `B/o DZZ*Z(internal error: entered unreachable code((@DZo o BA0o o CAo 1o ECo o ED2o o F Do F73o aDo Gao bDo Hbp, p$ GI4p, p Kp NIp M  Np LMp p KLJ5p p J16q OHq  Or 8r  r 8r _ _ _ ` ` ` c g i i i  jb  l m]  o o p c_  _ _ _ _ ` ` ` ` ` ` ` ` a b b b b( b c c c c e e e f f g h DZi i i i i i i i i j j j j& j j j j j j k k l) l) l l l) l) րl) l l m< m, n DZo o o o o o o o p p p p p p q f e _ _ ` ` _ _ _ _ i _ _ l) l _ _ o o C_ >T U _ _ ` `  Ca   c g i i #i 'j *l) 8l <o Co Go HCp I_ f   f f _ f f f e   e e ` e e e j j j j j j j j j j j j j j j ߎu   u! u  u! u!  u' v ԍԍv v vv   <ɏ vz  @@+G4Ww u! v v w t v     'wu- t  {-Pu! Ґu v ԍv v v vv >t @v v v t z z z  Vz z ,,z+ )no operations have been added to `Select`)),{  {# {  {# {, {  > { z ԍz z {b  | y z  y y z z ,ԍz z z {, {# Ґ{ >y @z z z y    # #   #  )     #  "   "    } 4     'w~1 ~ ~ # #     >~ ~  }    Ԃ* Ԃ Ԃ* Ԃ*  ΂0  ԍ ƃ ҃v  σz   Ȅ Ԃ*   ҄    1   Ԃ* Ґ  ԍ  ƃ ҃v >  @  ƃ    " ߦ 444040bW`(   ߦ   5          ɥ     =>>gGVإ && ( Mn=x    ߦ  ߦ    إ     ɥ ƪ  $          ҫ   ҫ      ߪ       w        ª     Ƿ ͷ  ͷ Ƿ ҷ  Ƿ Ƿ        Ƿ ͷ       _ref__index ۽ ۽ ۽ ۽ ۽ ۽ ۽ ۽ ۽ ۽  "  . ۽  ۽ ,,& $passed a sender that wasn't selected$$  ,  ԍ    '   x   '             ȿ ȿ ȿ  ȿ ̿  BxH }k>`ZKx xԿ  ̿                } 2    'w   x ۽ . "   ,   'wx  x   ȿ       !            $  0    ,,( &passed a receiver that wasn't selected&& ,  ԍ!   x  !                   Bxx               { ,     0 $   ,   'wx                           v 6nZc   L~ mWrapping O     v     v    v                 'w     £              #p#p#p 7 {-P 7 {-P {-P "&p "&p"p "&p#p$p $p"Mp$p#p$p{ fn __init() -> Cell> { Cell::new(Wrapping(1406868647)) } unsafe fn __getit<'_>(init: ::std::option::Option<&'_ mut ::std::option::Option>>>) -> ::std::option::Option<&'static Cell>> { static __KEY: ::std::thread::local_impl::Key>> = ::std::thread::local_impl::Key>>::new(); unsafe { __KEY.get(move || { if let ::std::option::Option::Some(init) = init { if let ::std::option::Option::Some(value) = init.take() { return value; } else if true { { ::core::panicking::panic_fmt(<#[lang = "format_arguments"]>::new_v1(&["internal error: entered unreachable code: missing default value"], &<#[lang = "format_argument"]>::none())); }; } } __init() }) } } unsafe { ::std::thread::LocalKey::new(__getit) } }   S"    " p p  pp p    {-P pp G p"p  ppp#pp GGƇG6GG܇G+oppp p,p ,p*p G,pup up#pup "p "pp pp ?p#p #pp p"p  p p p.Z.Z Ռ.Z "Z"ZӍ "Z"Z  "Z  "Z"Z  "Z@ZZ @Z"p"p  "p"p ppMppp"pp p#pp p@Z"Z.Z"Z"Z"Z.Zpppp.Z .Z?internal error: entered unreachable code: missing default value??.Z.Z p.Z.Z.Z & &                     !                                          Ӟ                        ! "!   !"  ) #  ) $#) @) $   )     0 9  ' ('   Vv( %       g )                  ܧ    ܧ         0 ) !   ) )      rng  £        j   _ref__len_ref__v   4    W      444040bW`(         4     /          4    C  C     h     {   S   h    5 Y            h   h  S {  C  C  C     /   /  /    /  /  /    V   H   9NNNMNMN+Mjg(+  |          |   : Enumerate))məA3ĵ &        ҵ    4             U G     {-Pҵ |   |  H  /    /  /   / ɶ         C     entry    ֵ          ɶ  ҵ ֵ   C     _ref__oper     5        &  & & ̳ & &  &         ֵ     :           ? %       ĺ     & & & ĺ&         {       ) { )          { "        .    $ $  $       B      {             ֵ  $         "   ) )     selector   _ref__thread_id     Է          pos      о            ̳       u  u      : z        ĺ      ĺ u u     {   M M M  {       ! !  ! M     Ռ( (  ( M M u   u ֵ !    (     u   u      u    y      ΰ d  y  j       y y d  {  C C  )        )    4   l    ) )      C l                   ֵ        C   ! ! !  5ײײز _@z/! ! !  800Drain1 tail_start01tail_len0101 0pe!ڒ! ! ! ! ! !  9! !  ! !  !4   {!  !   !4 !    !+ ! "  !<   !< "    " !<   "  {" "  " "  " "  "   "    ! ! ! ! ! ! ! ! !  ! ! ! !< !< !4 !4 ! ! " " ! ! !   # # # ̳# # # # # # #  8# # # #  # #  9 # #  #  #  ֵ$+  {$   $+ $  $" # ' '   ' $3  $3 $   $ $3   '  {' ' ' ' # # $ # # # # # # ĺ# #  {-Pֵ# # # ֵ# $3 $3 $+ $+ $ ' ' ' # # #  # GYGYGY( ( (  5( Y Y YY  Y Y Y  Y  Y    Y   Y  !Y  Y  ]Y Y A  ]YGYGYGY( ( ( ( Y Y YY  Y Y Y Y Y Y  Y !Y  Y  ]Y Y ]Y( '  Y Y Y Y ( ( GYYY( ĺ(  Y Y Y Y Y Y}NeMatchưb Y ]Y {-P YGYYY( ĺ(  Y Y Y Y Y Y Y ]Y Y Y Y( left_val Y right_val Y Y  Y Y Y' ( (  Y Y'  Y(  Y( (  Y Y'  Y(  Y, ,  , , ,  1, , , - , ,o - - + + , 111611 11 1_Z2w-, , , + . ك. .  1. . .  CFFF 1F 1 dw22 2Ƨ 2`). .  . .   . .  . .  . /  / / /  / /8  /8 /8 / / /  / /  / / ޷     /t / / / о / /8 / / / о / /8  /8 0  0 0 - - . . - . . .    'w.  ك. .  .  .  . / / /8 / ĺ/ /  / / ĺ/ / ȍ/ ި/ - C. C. 6. - 1 ك1 1 1 1 1 1 1  1 1 ͆ 1 1 1 1 1 2  2 2 2 2 28  28 28 2 2 2  2 3  2 2 ޷     2t 2 2 2 о  2 28  2 2 2 о 2 28  28 3 3  3 3 3 0 0 1 1 1 1 1 1 ߋ1 1 1  1  1 1 2 2 28 2 ĺ2 2 ȍ2 2 ĺ2 2 ȍ2 ި3 1 C1 61 1 0 4$ 4  4$ 4 4 4%  4% 5 ك5 5 5 5 5 5 5$  5  5$ 5   5 5%   5%  5 5 5 ͆5 5 5 5 ߩ  5 6  6 6 6 ͆ 6 6 6 6   6 6 6 6 6 6 68 68 68 7 7 7 7 7  6 6 ޷  6 6 6 6 о6 68  7 7 7 о7 68 68 7 7 7 4 6 4 5 !4 4 4% 4$ 4$ ި4 5 ߋ5 5 5% 5$ 5$ ި5 5  5  5 5 6  6  6 6 6 6 68 6 ĺ6 6 ȍ6 7 ĺ7 7 ȍ7 ި7 4 65 4 9 ك9 9 9 9 9 9 9  9 9 ͆ 9 9  9 9 9 9  9 9 9 9 98  98 98 : : :  : :  9 9 ޷     9t 9 9 : о : 98 : : : о : 98  98 :  : : 8 8 8 8 8 8 8 9 ߋ9 9 9  9  9 9 9 9 98 9 ĺ9 9 ȍ9 : ĺ: : ȍ: ި: 8 C8 C8 69 8 ; ك; ; ; ; ; ; <  < < ͆ < < < < < <  < < < < <8  <8 <8 < < <  < =  < < ޷      ك> > > > > > > > > ͆> > > > > ?  ? ? ? ? ?8  ?8 ?8 ? ? ?  ? ?  ? ? ޷     ?t ?  ? ? о  ? ?8  ? ? ? о ? ?8  ?8 @  @ @ > > > > > > ߋ> > >  >  > > ? ? ?8 ? ĺ? ? ȍ? ? ĺ? ? ȍ? ި? > 6> > ?Y?Y?Y@$ @  @$ @ @ ?Y ?Y?Y?Y6assertion failed: self.is_empty.load(Ordering::SeqCst)66?YA @W @ @ ?Y?Y@$ @$ ި@ ?Y@ @W B% B%  6nZcB% C    C BY C  C C* C A A    'wB% B% A B  B B  B% B% A B% B B% #p#p#p 7 {-P 7 {-P {-P"&p "&p"p "&p#p$p $p"Mp$p#p$p{ fn __init() -> ThreadId { thread::current().id() } unsafe fn __getit<'_>(init: ::std::option::Option<&'_ mut ::std::option::Option>) -> ::std::option::Option<&'static ThreadId> { static __KEY: ::std::thread::local_impl::Key = ::std::thread::local_impl::Key::new(); unsafe { __KEY.get(move || { if let ::std::option::Option::Some(init) = init { if let ::std::option::Option::Some(value) = init.take() { return value; } else if true { { ::core::panicking::panic_fmt(<#[lang = "format_arguments"]>::new_v1(&["internal error: entered unreachable code: missing default value"], &<#[lang = "format_argument"]>::none())); }; } } __init() }) } } unsafe { ::std::thread::LocalKey::new(__getit) } }B B  B B B B  B pppp pB B B pp p    {-P pp G p"p  ppp#pp GGƇG6GG܇G+oppp p,p ,p*p G,pup up#pup "p "pp pp ?p#p #pp p"p  p p p.Z.Z Ռ.Z "Z"ZӍ "Z"Z  "Z  "Z"Z  "Z@ZZ @Z"p"p  "p"p ppMppp"pp p#pp p@Z"Z.Z"Z"Z"Z.Zpppp.Z .Z?internal error: entered unreachable code: missing default value??.Z.Z p.Z.Z.ZC C C C C C idC C C C C C C C C C C C C C C C C C C C N )vN,NNNNN )vN,NNNNO )vO/OOOOO )vO/OOOOP )vP2PPPPP )vP2PPPP WvZ WvZ Wv] Wv]ݧ Wvݧ`ݧݧݧݧݧ Wvݧ`ݧݧݧݧ Wvc Wvc Wvf՝ Wvf՝ Wvi Wvi v}v v}v v}v v}v  v  } v    v  } v    v  ~ v    v  ~ v    v  ~ v    v  ~ v  ! x!!!!!! x!!!!!і xіііііі xііііі! x!! ! !!! x!! ! !! x   x              `! x`! `! `! `! `! `! x`! `! `! `! `! a xa a a a a a xa a a a a                                             (  (  ( Ґ( ( ( (  (  ( Ґ( ( (  MA: Q ! Q "Q # Q % R  R RRRRT S&=S@SQS QS OSOSPT  PT  OTOTLT LT NTMT HU HU KUIU U< Multi-producer multi-consumer channels for message passing.?@_ This crate is an alternative to [`std::sync::mpsc`] with more features and better performance.Db # Hello, world! ```" use crossbeam_channel::unbounded;%+ // Create a channel of unbounded capacity.. let (s, r) = unbounded();$ // Send a message into the channel.'" s.send("Hello, world!").unwrap();%) // Receive the message from the channel.,+ assert_eq!(r.recv(), Ok("Hello, world!"));. # Channel types- Channels can be created using two functions:0` * [`bounded`] creates a channel of bounded capacity, i.e. there is a limit to how many messagesc it can hold at a time.X * [`unbounded`] creates a channel of unbounded capacity, i.e. it can hold any number of[ messages at a time.^ Both functions return a [`Sender`] and a [`Receiver`], which represent the two opposite sidesa of a channel. Creating a bounded channel: use crossbeam_channel::bounded;#@ // Create a channel that can hold at most 5 messages at a time.C let (s, r) = bounded(5);. // Can send only 5 messages without blocking.1 for i in 0..5 {  s.send(i).unwrap();  }  C // Another call to `send` would block because the channel is full. F // s.send(5).unwrap();    Creating an unbounded channel: "   %  // Create an unbounded channel. #  F // Can send any number of messages into the channel without blocking. I for i in 0..1000 {     [ A special case is zero-capacity channel, which cannot hold any messages. Instead, send and ^_ receive operations must appear at the same time in order to pair up and pass the message over: b use std::thread;## // Create a zero-capacity channel.& let (s, r) = bounded(0);G // Sending blocks until a receive operation appears on the other side.J/ thread::spawn(move || s.send("Hi!").unwrap());2F // Receiving blocks until a send operation appears on the other side.I! assert_eq!(r.recv(), Ok("Hi!"));$ # Sharing channels? Senders and receivers can be cloned and sent to other threads:B# let (s1, r1) = bounded(0);) let (s2, r2) = (s1.clone(), r1.clone());,> // Spawn a thread that receives a message and then sends one.A thread::spawn(move || { r2.recv().unwrap(); s2.send(2).unwrap(); });( // Send a message and then receive one.+ s1.send(1).unwrap(); r1.recv().unwrap();_ Note that cloning only creates a new handle to the same sending or receiving side. It does notb1 create a separate stream of messages in any way:4% let (s1, r1) = unbounded();,) let (s3, r3) = (s2.clone(), r2.clone());, s1.send(10).unwrap(); s2.send(20).unwrap(); s3.send(30).unwrap(); assert_eq!(r3.recv(), Ok(10));" assert_eq!(r1.recv(), Ok(20));" assert_eq!(r2.recv(), Ok(30));"@ It's also possible to share senders and receivers by reference:C#$ use crossbeam_utils::thread::scope;' scope(|scope| {B // Spawn a thread that receives a message and then sends one.E scope.spawn(|_| { r.recv().unwrap(); s.send(2).unwrap(); }); , // Send a message and then receive one./ s.send(1).unwrap(); r.recv().unwrap(); }).unwrap(); # Disconnection] When all senders or all receivers associated with a channel get dropped, the channel becomes`^ disconnected. No more messages can be sent, but any remaining messages can still be received.aC Send and receive operations on a disconnected channel never block.F  / use crossbeam_channel::{unbounded, RecvError}; 2   s.send(1).unwrap();  s.send(2).unwrap();! s.send(3).unwrap();!!: // The only sender is dropped, disconnecting the channel.!= drop(s);" "+ // The remaining messages can be received.". assert_eq!(r.recv(), Ok(1));"  assert_eq!(r.recv(), Ok(2));"  assert_eq!(r.recv(), Ok(3));# #. // There are no more messages in the channel.#1 assert!(r.is_empty());##0 // Note that calling `r.recv()` does not block.#36 // Instead, `Err(RecvError)` is returned immediately.$9& assert_eq!(r.recv(), Err(RecvError));$)%% # Blocking operations%%3 Send and receive operations come in three flavors:%6%> * Non-blocking (returns immediately with success or failure).%AU * Blocking (waits until the operation succeeds or the channel becomes disconnected).&XH * Blocking with a timeout (blocks only for a certain duration of time).'K'V A simple example showing the difference between non-blocking and blocking operations:'Y((; use crossbeam_channel::{bounded, RecvError, TryRecvError};(>) let (s, r) = bounded(1);)))' s.send("foo").unwrap();))6 // This call would block because the channel is full.)9 // s.send("bar").unwrap();** // Receive the message.*! assert_eq!(r.recv(), Ok("foo"));*$+7 // This call would block because the channel is empty.+: // r.recv();++- // Try receiving a message without blocking.+04 assert_eq!(r.try_recv(), Err(TryRecvError::Empty));,7, // Disconnect the channel.,, ,D // This call doesn't block because the channel is now disconnected.-G-)-- # Iteration-.Z Receivers can be used as iterators. For example, method [`iter`] creates an iterator that.]\ receives messages until the channel becomes empty and disconnected. Note that iteration may._* block waiting for next message to arrive./-/000%00001 s.send(2).unwrap();1 s.send(3).unwrap();1( drop(s); // Disconnect the channel.1+22* // Collect all messages from the channel.2-G // Note that the call to `collect` blocks until the sender is dropped.2J$ let v: Vec<_> = r.iter().collect();3'3 assert_eq!(v, [1, 2, 3]);333X A non-blocking iterator can be created using [`try_iter`], which receives all available3[ messages without blocking:4444%55ø555 // No need to drop the sender.5"62 // Receive all messages currently in the channel.65( let v: Vec<_> = r.try_iter().collect();6+7777 # Selection77^ The [`select!`] macro allows you to define a set of channel operations, wait until any one of7a_ them becomes ready, and finally execute it. If multiple operations are ready at the same time,8b% a random one among them is selected.9(9` It is also possible to define a `default` case that gets executed if none of the operations are9c< ready, either right away or for a certain duration of time.:?:_ An operation is considered to be ready if it doesn't have to block. Note that it is ready even:bI when it will simply return an error because the channel is disconnected.;L<5 An example of receiving a message from two channels:<8<<< use std::time::Duration;<, use crossbeam_channel::{select, unbounded};=/== let (s2, r2) = unbounded();==- thread::spawn(move || s1.send(10).unwrap());>0- thread::spawn(move || s2.send(20).unwrap());>0>A // At most one of these two receive operations will be executed.>D select! {? 0 recv(r1) -> msg => assert_eq!(msg, Ok(10)),?30 recv(r2) -> msg => assert_eq!(msg, Ok(20)),?3> default(Duration::from_secs(1)) => println!("timed out"),@A@@@\ If you need to select over a dynamically created list of channel operations, use [`Select`]@_P instead. The [`select!`] macro is just a convenience wrapper around [`Select`].ASB # Extra channelsBB^ Three functions can create special kinds of channels, all of which return just a [`Receiver`]Ba handle:C C_ * [`after`] creates a channel that delivers a single message after a certain duration of time.CbB * [`tick`] creates a channel that delivers messages periodically.DEE * [`never`](never()) creates a channel that never delivers messages.DHE_ These channels are very efficient because messages get lazily generated on receive operations.EbFX An example that prints elapsed time every 50 milliseconds for the duration of 1 second:F[FF$ use std::time::{Duration, Instant};F'. use crossbeam_channel::{after, select, tick};G1G let start = Instant::now();G. let ticker = tick(Duration::from_millis(50));G1- let timeout = after(Duration::from_secs(1));H0H loop {H  select! {HI recv(ticker) -> _ => println!("elapsed: {:?}", start.elapsed()),IL% recv(timeout) -> _ => break,I( }I JJJ [`send`]: Sender::sendJ [`recv`]: Receiver::recvJ [`iter`]: Receiver::iterJ! [`try_iter`]: Receiver::try_iterJ$KKKL  KKL KK KKL KKK warningsKK rust_2018_idiomsKK KKL K K unused_assignmentsKL unused_variablesLK MA: Q ! Q "Q # Q % R  R RRRRT S&=S@SQS QS OSOSPT  PT  OTOTLT LT NTMT HU HU KUIU MMN N!"#%&)TW%% FusedIterator9 ;memQ  RefUnwindSafeg @ UnwindSafev @ F- z FkL L NH H KM I T  ; S  %.9 LQZ'g g v v i        /    1) Creates a channel of unbounded capacity.,S This channel has a growable buffer that can hold any number of messages at a time.V # Examples%' // Computes the n-th Fibonacci number.* fn fib(n: i32) -> i32 { if n <= 1 { n  } else { fib(n - 1) + fib(n - 2)# & // Spawn an asynchronous computation.)1 thread::spawn(move || s.send(fib(20)).unwrap());4( // Print the result of the computation.+# println!("{}", r.recv().unwrap());& ȣv v9' Creates a channel of bounded capacity. * J This channel has a buffer that can hold at most `cap` messages at a time. M  ^_ receive operations must appear at the same time in order to pair up and pass the message over. b    A channel of capacity 1:      #O // This call returns immediately because there is enough space in the channel.RøH // This call blocks the current thread because the channel is full.KM // It will be able to complete only after the first message is received.P' thread::sleep(Duration::from_secs(1));*˺   A zero-capacity channel:#M // This call blocks the current thread until a receive operation appearsP) // on the other side of the channel.,*˺ ȣ   v!$5M Creates a receiver that delivers a message after a certain duration of time.P` The channel is bounded with capacity of 1 and never gets disconnected. Exactly one message willc] be sent into the channel after `duration` elapses. The message is the instant at which it is` sent. ' Using an `after` channel for timeouts:*3 use crossbeam_channel::{after, select, unbounded};6! let (s, r) = unbounded::();$* let timeout = Duration::from_millis(100);- 6 recv(r) -> msg => println!("received {:?}", msg),98 recv(after(timeout)) -> _ => println!("timed out"),; When the message gets sent:' use crossbeam_channel::after; ! 8 // Converts a number of milliseconds into a `Duration`. ;) let ms = |ms| Duration::from_millis(ms);!,!< // Returns `true` if `a` and `b` are very close `Instant`s.!?2 let eq = |a, b| a + ms(60) > b && b + ms(60) > a;!5"" let r = after(ms(100));"" thread::sleep(ms(500));"#S // This message was sent 100 ms from the start and received 500 ms from the start.#V1 assert!(eq(r.recv().unwrap(), start + ms(100)));#4. assert!(eq(Instant::now(), start + ms(500)));$1$$TTV _Q@>u !2$1-I Creates a receiver that delivers a message at a certain instant in time.&L''c^ be sent into the channel at the moment in time `when`. The message is the instant at which it(a^ is sent, which is the same as `when`. If `when` is in the past, the message will be delivered)a instantly to the receiver.)***$ Using an `at` channel for timeouts:*'**$ use std::time::{Instant, Duration};*'0 use crossbeam_channel::{at, select, unbounded};*3+Í+$< let deadline = Instant::now() + Duration::from_millis(500);+?,, ,96 recv(at(deadline)) -> _ => println!("timed out"),,9-------' use crossbeam_channel::at;...;.,// let end = start + ms(100);// let r = at(end);/// // This message was sent 100 ms from the start/2$ assert_eq!(r.recv().unwrap(), end);0'+ assert!(Instant::now() > start + ms(100));0.01 "19 1 Creates a receiver that never delivers messages.242G The channel is bounded with capacity of 0 and never gets disconnected.2J333D Using a `never` channel to optionally add a timeout to [`select!`]:3G4 [`select!`]: crate::select!44444: use crossbeam_channel::{after, select, never, unbounded};4=5555+ thread::sleep(Duration::from_secs(1));5.6666 // Suppose this duration can be a `Some` or a `None`.691 let duration = Some(Duration::from_millis(100));647A // Create a channel that times out after the specified duration.7D let timeout = duration7 .map(|d| after(d))8 .unwrap_or(never());888 . recv(r) -> msg => assert_eq!(msg, Ok(1)),811 recv(timeout) -> _ => println!("timed out"),94999w$$9 #v99G48 Creates a receiver that delivers messages periodically.:;;X The channel is bounded with capacity of 1 and never gets disconnected. Messages will be;[] sent into the channel in intervals of `duration`. Each message is the instant at which it is;`< <<<; Using a `tick` channel to periodically print elapsed time:<>===' use crossbeam_channel::tick;= >>/ let ticker = tick(Duration::from_millis(100));>2> for _ in 0..5 {> ticker.recv().unwrap();>0 println!("elapsed: {:?}", start.elapsed());?3??? When messages get sent:???@@'@ @@;A,AA?2 let eq = |a, b| a + ms(65) > b && b + ms(65) > a;B5BB let r = tick(ms(100));BCS // This message was sent 100 ms from the start and received 100 ms from the start.CVהC4. assert!(eq(Instant::now(), start + ms(100)));D1DɓDDS // This message was sent 200 ms from the start and received 600 ms from the start.DV1 assert!(eq(r.recv().unwrap(), start + ms(200)));E4. assert!(eq(Instant::now(), start + ms(600)));E1FS // This message was sent 700 ms from the start and received 700 ms from the start.FV1 assert!(eq(r.recv().unwrap(), start + ms(700)));G4. assert!(eq(Instant::now(), start + ms(700)));G1GG %2HM The sending side of a channel.J"JJKKKK%K let (s1, r) = unbounded();K let s2 = s1.clone();KL, thread::spawn(move || s1.send(1).unwrap());L/, thread::spawn(move || s2.send(2).unwrap());L/L let msg1 = r.recv().unwrap();L! let msg2 = r.recv().unwrap();M!M assert_eq!(msg1 + msg2, 3);MMM''MvMn=(MMMM&&NN **NN+6c[!+,./12,-/023NNNN)) +vNN)) ,vO+O+))OO)) .vOO)) /vO*O*))PP)) 1vPP)) 2vP*P*))P'55QvQvQQQ'77QQvQQQ 99QvQQQ#;;QvQQR==Rv>?ABCDEFGRRX=> Attempts to send a message into the channel without blocking.RARZ This method will either send a message into the channel immediately or return an error ifR]W the channel is full or disconnected. The returned error contains the original message.SZTV If called on a zero-capacity channel, this method will send the message only if thereTYU happens to be a receive operation on the other side of the channel at the same time.UXVVVV0 use crossbeam_channel::{bounded, TrySendError};V3VVW# assert_eq!(s.try_send(1), Ok(()));W&7 assert_eq!(s.try_send(2), Err(TrySendError::Full(2)));W:X drop(r);X ? assert_eq!(s.try_send(3), Err(TrySendError::Disconnected(3)));XBXX 7  7vv<Y< >vY!Yc6R Blocks the current thread until a message is sent or the channel is disconnected.[U[[ If the channel is full and not disconnected, this call will block until the send operation[^W can proceed. If the channel becomes disconnected, this call will wake up and return an\Z9 error. The returned error contains the original message.]<]W If called on a zero-capacity channel, this method will wait for a receive operation to^Z) appear on the other side of the channel.^,______- use crossbeam_channel::{bounded, SendError};_0`` assert_eq!(s.send(1), Ok(()));`"aa! assert_eq!(r.recv(), Ok(1));a$a. drop(r);bbb assert_eq!(s.send(2), Ok(()));b"* assert_eq!(s.send(3), Err(SendError(3)));b-cc 7  7vv<c<c!ce?؋@@@@?qXN Waits for a message to be sent into the channel, but only for a limited time.fQgg^\ can proceed or the operation times out. If the channel becomes disconnected, this call willh_O wake up and return an error. The returned error contains the original message.iRiiZj,jkkkkk4 use crossbeam_channel::{bounded, SendTimeoutError};k7lllll.! assert_eq!(r.recv(), Ok(2));m$mmm assert_eq!(m3 s.send_timeout(1, Duration::from_millis(500)),n6' Err(SendTimeoutError::Timeout(1)),n* );no/ s.send_timeout(2, Duration::from_secs(1)),o2 Ok(()),ooo3 s.send_timeout(3, Duration::from_millis(500)),o6, Err(SendTimeoutError::Disconnected(3)),p/ppq  7  7vv<q< Avq!qq~YR Waits for a message to be sent into the channel, but only until a given deadline.sUtt^t_uRvvZw,wwwwwx'x7xxyyy.y$zzz let now = Instant::now();zzz: s.send_deadline(1, now + Duration::from_millis(500)),{={*{|; s.send_deadline(2, now + Duration::from_millis(1500)),|>|||; s.send_deadline(3, now + Duration::from_millis(2000)),}>}/~~~  7  7vv<~<~!~~( Returns `true` if the channel is empty.+/ Note: Zero-capacity channels are always empty.2%̂Ԃ assert!(s.is_empty()); s.send(0).unwrap(); assert!(!s.is_empty());ك 7  7v<< Cv' Returns `true` if the channel is full.*. Note: Zero-capacity channels are always full.1цن#ч assert!(!s.is_full());ه assert!(s.is_full());ň 7  7v<͈< DvΈ/ Returns the number of messages in the channel.2%ɋы assert_eq!(s.len(), 0);ø assert_eq!(s.len(), 2);ӌ 7  7v<< Ev'1 If the channel is bounded, returns its capacity.4Ǐ- use crossbeam_channel::{bounded, unbounded};ӏ0! let (s, _) = unbounded::();$ assert_eq!(s.capacity(), None);# let (s, _) = bounded::(5);## assert_eq!(s.capacity(), Some(5));& let (s, _) = bounded::(0);đ## assert_eq!(s.capacity(), Some(0));& 7  7v<< Fv56 Returns `true` if senders belong to the same channel.9 ```rust %ƕ# let (s, _) = unbounded::();Ε& let s2 = s.clone(); assert!(s.same_channel(&s2));!Ö let (s3, _) = unbounded();˖ assert!(!s.same_channel(&s3));"  7 7  7v  7v<< GvIIvJš 7  7vHǚH Jv̚J؋KKKKJJ؋LLLLJJ؋MMMMJ߃OOvP 7  7vvNŝN PvƝ RRvS8 7 7 7  7v  7GGGEGEGEG EGEGEQ ! >S 7QàQ SvĠʠ! The receiving side of a channel.$ġȡסۡ%ݢ let _ = s.send(1);. let _ = s.send(2);ǣ6 assert_eq!(r.recv(), Ok(1)); // Received immediately.99 assert_eq!(r.recv(), Ok(2)); // Received after 1 second.<UUw_Q@>uVTTåXXҥ~TpAYZ\]_`bcefhiZ[]^`acdfg՝ijҥҥWW YvWW Zv--WWWW \vWW ]v,,WWݧݧWW _vݧݧWW `v,,WWWW bvWW cvWWWW ev՝WW fvWW՝WW hvWW ivWWթ)llw)nnw"ppw֪%rr۪w۪۪ttwuvxyz{|}~1A Attempts to receive a message from the channel without blocking.DZ This method will either receive a message from the channel immediately or return an error] if the channel is empty.ͬW If called on a zero-capacity channel, this method will receive a message only if thereZR happens to be a send operation on the other side of the channel at the same time.խUʮҮ2 use crossbeam_channel::{unbounded, TryRecvError};ޮ5¯7 s.send(5).unwrap(); ! assert_eq!(r.try_recv(), Ok(5));$; assert_eq!(r.try_recv(), Err(TryRecvError::Disconnected));> 7  7wۜsñs uvı*R Blocks the current thread until a message is received or the channel is empty andӸU disconnected.ùU If the channel is empty and not disconnected, this call will block until the receive˹XX operation can proceed. If the channel is empty and becomes disconnected, this call will[ wake up and return an error. [ If called on a zero-capacity channel, this method will wait for a send operation to appear^" on the other side of the channel.%¼ʼݼ2. s.send(5).unwrap(); drop(s); assert_eq!(r.recv(), Ok(5)); տ) 7  7wͰssv؋wwwwvLR Waits for a message to be received from the channel, but only for a limited time.UXV operation can proceed or the operation times out. If the channel is empty and becomesY: disconnected, this call will wake up and return an error.=^ݖ%6 use crossbeam_channel::{unbounded, RecvTimeoutError};9.ј0 r.recv_timeout(Duration::from_millis(500)),3$ Err(RecvTimeoutError::Timeout),', r.recv_timeout(Duration::from_secs(1)),/ Ok(5),ܠ/) Err(RecvTimeoutError::Disconnected),,  7  7wss xvMW Waits for a message to be received from the channel, but only before a given deadline.ZXYʜ=^ݖ%'9.ј7 r.recv_deadline(now + Duration::from_millis(500)),:'8 r.recv_deadline(now + Duration::from_millis(1500)),;3 r.recv_deadline(now + Duration::from_secs(5)),6ס,  7  7wss+2% assert!(!r.is_empty()); 7  7wss zv*1# assert!(!r.is_full()); assert!(r.is_full()); 7  7wss {v2% assert_eq!(r.len(), 0);ø assert_eq!(r.len(), 2); 7  7wss |v'40! let (_, r) = unbounded::();$ assert_eq!(r.capacity(), None);# let (_, r) = bounded::(5);## assert_eq!(r.capacity(), Some(5));& let (_, r) = bounded::(0);## assert_eq!(r.capacity(), Some(0));& 7  7wss }v͆!2 A blocking iterator over messages in the channel.5[ Each call to [`next`] blocks waiting for the next message and then returns it. However, if^R the channel becomes empty and disconnected, it returns [`None`] without blocking.Uف [`next`]: Iterator::nextʂ%ƃ+ք-J'Ԇ 7  7wbw/ 7vsنs ~vچ(6 A non-blocking iterator over messages in the channel.9ڇ[ Each call to [`next`] returns a message if there is one ready to be received. The iterator^+ never blocks waiting for the next message.ň.ĉЉ%Í$.+ thread::sleep(Duration::from_secs(2));.ӌߌ' thread::sleep(Duration::from_secs(2));*; // Collect all messages from the channel without blocking.>O // The third message hasn't been sent yet so we'll collect only the first two.R+ assert_eq!(v, [1, 2]); 7  7w[rcs 7vss v78 Returns `true` if receivers belong to the same channel.;ϐא %# let (_, r) = unbounded::();&đ let r2 = r.clone();̑ assert!(r.same_channel(&r2));! let (_, r3) = unbounded(); assert!(!r.same_channel(&r3));"  7 7  7w  7wss vϗԗwԗԗ 7  7w v؋ř؋ω؋ޛw 7  7ww v"w8 7 7 7  7w  7GGGEGEGEG EGEGEQ ! >S 7 v,xw x bw/x֢$٢ ww8 x$wţ ʣvأ ݣz$ ww8 vϪ0 A blocking iterator over messages in a channel.Τ3_ Each call to [`next`] blocks waiting for the next message and then returns it. However, if thebN channel becomes empty and disconnected, it returns [`None`] without blocking.Qܦ%اܧ̨+-J'Ǫڪxbw/xbw/ߪߪ w%7  x 7  x۫ x( 7  7x {-Px9  7xŬ"7  ʬyʬʬ8 7 7 7  7y  7GGGEGEGEG EGEGEQ ! >S 7  7x̴4 A non-blocking iterator over messages in a channel.ϭ7^.ͯѯٯ%Í$ڰް.ű.*>R+Ĵ״x[rcsx[rcsߴߴ w#7  y xȵ(˵ 7  7y {-Py9е  7xյ%7  zζ8Ѷ 7 7 7  7z  7GGGEGEGEG EGEGEQ ! >S 7ն  7xֶܶ3b͸QĹӹ׹߹%ܺ+ܻ-J) let v: Vec<_> = r.into_iter().collect();,ý̽z--1^qD̽̽սսw%z z žvԾ(׾ 7  7z {-Pz9ܾ v"zӿ8ֿ 7 7 7  7z  7GGGEGEGEG EGEGEQ ! >S 7ڿ vۿ"v/  7 7  7v  7ԍ v@% 7  7v v9 7 7  7v  7{ vCC%  7  7v vC9 7 7 7  7v  7ԍ  7{ v@C 7  7v v6 7 7  7v  7{ vCC" 7  7v vC$w/  7 7  7w  7ԍ v@% 7  7w v9 7 7  7w  7{ vCC%  7  7w vC9 7 7 7  7w  7ԍ  7{ v@C 7  7w v6 7 7  7w  7{ vCC" 7  7w vCX 7 7  7v  7ԍv v @!Q 7 7  7w  7ԍ v@N N9 H Ve D\p }F- ;;FT .9CHQ5e e p p }}% {H 7  7{ 7΋  ؋ ؋ ؋  { 7  7{B  7  7{:؋؋֭" 7  7{+  7  7{C$  7  7{?  7  7{(( 7  7{(()#)  7  7{))N N.F>processL)Om D\y ) .9>G LY6m m y y d|GX/ |9|d |d|}QȈ%~d|  7  7|  7 )  7  7||  | I 7  7| 7  7| 7 |#  d| | 7  7|  7| |d|' 7 7  7|  7| |d|2qd|  7  7|  7+ 7  7|| |I 7  7| 7  7| 7 |# "d| | 7  7|  7| |!d|) 7 7  7|  7| |NN error %  #}8 7 7 7  7}  7GGGEGEGEG EGEGEQ ! >S 7 v%}8 7 7 7  7}  7GGGEGEGEG EGEGEQ ! >S 7  v   +  }  !!}!!# Unwraps the message.!!!!!"%""" "" if let Err(err) = s.send("foo") {"%) assert_eq!(err.into_inner(), "foo");#,### }v v#$&$}$$$8$ 7 7 7  7}  7GGGEGEGEG EGEGEQ ! >S 7$ v$$&(&}&&&8& 7 7 7  7}  7GGGEGEGEG EGEGEQ ! >S 7& v&&(.((}(().)})))-)}} v)**}**-++++++#++,& if let Err(err) = s.try_send("foo") {,)ɱ,,--- }v v-/I Returns `true` if the send operation failed because the channel is full..L/ 7  7}/ v/0%Q Returns `true` if the send operation failed because the channel is disconnected.0T0 7  7}1 v12*2~22282 7 7 7  7~  7GGGEGEGEG EGEGEQ ! >S 72 v223,3~33383 7 7 7  7~  7GGGEGEGEG EGEGEQ ! >S 73 v335256~55626~66616}~ v688~88:8888889%999B if let Err(err) = s.send_timeout("foo", Duration::from_secs(1)) {9Eɱ:,::; ~v v;< 0 Returns `true` if the send operation timed out.<3<  7  7~< v<>%=T> 7  7~> v>?@8@ 7 7 7  7  7GGGEGEGEG EGEGEQ ! >S 7@ @@AA"A8A 7 7 7  7  7GGGEGEGEG EGEGEQ ! >S 7A AAC"D%D'D DEFM Returns `true` if the receive operation failed because the channel is empty.EPF 7  7F FH%T Returns `true` if the receive operation failed because the channel is disconnected.GWH 7  7H HI&I8I 7 7 7  7  7GGGEGEGEG EGEGEQ ! >S 7I IIL&L)L+L LMN 3 Returns `true` if the receive operation timed out.N6N  7  7N NP%OWP 7  7P PQ$Q8Q 7 7 7  7  7GGGEGEGEG EGEGEQ ! >S 7R RRR$S(S8S 7 7 7  7  7GGGEGEGEG EGEGEQ ! >S 7S SST(N N  "  D\ F kNKM I T  ; T S E   0  '  L    9     k:       ʆ))0    ʆ/ ʆ!؋0 7  7ʆ  o85 7v ,  7  7ʆ   M0ʿV 7v  !/!  7 7  7ʆ  7ԍ!!@!7M7 7 7  7ʆ  7ԍv77@7!7 7  7țY 7  7̫J 7 7  7  7ԍ@% 7  7!$! 7  7!!"!" 7  7""#.$ 7  7$$$$/$  7 7  7  7ԍ% %@%'%' 7  7' '*;* 7 7  7  7{* *Ƥ ***&*  7  7+ +Ƥ ++:+ 7 7 7  7  7ԍ  7{+ +@++,, 7  7, ,,8, 7 7  7  7{- -Ƥ ---#- 7  7- -Ƥ - D " a  a |  DV D\ F kNKM I T  ; T S E 9D Ta r| ;    '  L    9               )                7  7   =       $  7  7  4       ###V ##$$ $$ %% && &&&&''Ҡ+0+ 7  7  dkf  7v++,,, 7  7   Dڳ~ 7v,,-/-  7 7  7  7ԍ- -@-FMG 7 7  7  7ԍvGG@G!GL/L  7 7  7  7ԍL L@LfDf 7 7  7  7ԍff@gmDn 7  7vnn!nn؋ pp 7  7vpp!p p s8s 7  7ۜssu؋ vSv 7  7vvvy؋ }؋ ! 7  7. 7  7ܑ/ 7  7׉є1ߔ 7  7˜ 7  7ט ؘ, 7  7 % 7  7$ 7  7ΰӰӰӰ 7  7 v!x  dkf xdkf   ! xɻԻx׻   Dڳ~xDڳ~  ɻ xллԻԻ׻׻(7  /  7 7  7  7ԍ  7x@% 7  7  7x9 7 7  7  7{½  7xýCɽCڽ¾%ž  7  7о  7xѾC׾: 7 7 7  7  7ԍ  7{  7x@Ŀ 7  7  7x6 7 7  7  7{  7xCC" 7  7  7xC&7  /  7 7  7  7ԍ  7x@% 7  7  7x; 7 7  7  7{  7xƤ &  7  7  7xƤ : 7 7 7  7  7ԍ  7{  7x@ 7  7  7x8 7 7  7  7{  7xƤ # 7  7  7xƤ  w  w FkNM T  ; S Ajw ,  /      p|  8 7  7ۜҖS 7  7E  7 7  7  7ԍ    %  7  7   $  7  7   !  7  7   .  7  7   #   0  7 7  7  7ԍ v % 7  7 v; 7 7  7  7{ vƤ &  7  7 vƤ : 7 7 7  7  7ԍ  7{ v@ 7  7 v8 7 7  7  7{ vƤ # 7  7 vƤ   z  F  +k N M T  ; S         #    ,     /            ;"      @   &   >   7  7  Y   7  7̫      J   7 7  7  7ԍ  @ %   7  7  $   7  7  !   7  7  .   7  7   /   7 7  7  7ԍ   @ %   7  7   ;   7 7  7  7{   Ƥ   &   7  7   Ƥ  :   7 7 7  7  7ԍ  7{   @     7  7     8   7 7  7  7{!  ! Ƥ ! ! !# !  7  7!  ! Ƥ ! o "    O D  1 F %   k N K M I T  ; T  S  C d o   )                  L         9             [g3&          8   7 7 7  7  7GGGEGEGEG EGEGEQ ! >S 7       J,                $   v (  v  !     7  7       ĩv         ͧlOZ^#K          ͧ    ͧ0   7  7ͧ  t+!oa 7v  ,   7  7ͧ   ꨬ/ 7v α /   7 7  7ͧ  7ԍ  v @ M   7 7  7ͧ  7ԍv  @ ! !/ !  7 7  7ͧ  7ԍ!  v! @! %D %  7 7  7ͧ  7ԍ% % @% -D -  7  7ͧv- - !- 3~ 3  7  7ͧv3 3 !3 3 8 ؋ C8 C  7  7ͧۜC C F ؋HS H  7  7ͧH H H K ؋M ؋Z' Z  7  7ͧZ Z ]! ]  7  7ͧ] ] ]. ^  7  7ͧ^ ^ ^% _  7  7ͧ_ _ _$ _  7  7ͧ_ _ `! ` ` x`   t+!oaxt+!oa ٥`! ` ٥ x` ` ` ` ` ` a a a xa    ꨬ/xꨬ/ a a  xa a a a a a a( 7  a ڌa a a/ a  7 7  7ڌ  7ԍb   7xb @b b% b  7  7ڌb   7xb c9 c  7 7  7ڌ  7{c   7xc Cc Cc f% f  7  7ڌf   7xf Cf h9 h  7 7 7  7ڌ  7ԍ  7{h   7xh @h Ch i i  7  7ڌi   7xi j6 j  7 7  7ڌ  7{j   7xj Cj Cj l" l  7  7ڌl   7xl Cl m& 7  m m m m/ m  7 7  7  7ԍm   7xm @m n% n  7  7n   7xn n9 n  7 7  7  7{n   7xn Cn Co q% q  7  7q   7xq Cq s9 s  7 7 7  7  7ԍ  7{s   7xs @s Ct t t  7  7t   7xt v6 v  7 7  7  7{v   7xv Cv Cv w" w  7  7w   7xw Cw N N 1 % G  G ]  zr | F    T  &k Q  Q  P  P  L L H H O O O O  A , 1 : G X ] f r r | |   (         .     "     0           &   7  7v    v                7 A receiver or a sender that can participate in select.:  ^ This is a handle that assists select in executing an operation, registration, deciding on thea ( appropriate deadline for blocking, etc.+  0 ? Attempts to select an operation and returns `true` on success.B   7 7  7  7ԍ   @ & 6 Returns a deadline for an operation, if there is one.9   7  7   : L Registers an operation for execution and returns `true` if it is now ready.O   7 7  7  7{   C C & ( Unregisters an operation for execution.+   7  7   C : [ Attempts to select an operation the thread got woken up for and returns `true` on success.^   7 7 7  7  7ԍ  7{   @ C  A Returns `true` if an operation can be executed without blocking.D   7  7   7 Y Registers an operation for readiness notification and returns `true` if it is now ready.\   7 7  7  7{   C C  # 5 Unregisters an operation for readiness notification. 8   7  7     C  !) 7  ! x! ! ! !/ !  7 7  7  7ԍ!   7x! @! "% "  7  7"   7x" "9 "  7 7  7  7{"   7x" C" C# #% #  7  7#   7x# C# $9 $  7 7 7  7  7ԍ  7{$   7x$ @$ C$ % %  7  7%   7x% %6 %  7 7  7  7{%   7x% C% C% &" &  7  7&   7x& C& * *  7 7  7   7 7Ґ* >* + 3 ؋A ؋Tq T  7 7  7   7 7ҐT >T U _ ؋j ؋t ; Attempts to select one of the operations without blocking.s> t  7  7     'w@@+G4Wt >t t t yk A Blocks until one of the operations becomes ready and selects it.wD y  7  7  @@+G4Wy >y y y } T Blocks for a limited time until one of the operations becomes ready and selects it.|W }  7  7     'w@@+G4W~ >~ ~ ~ ~    7  7     'w@@+G4W >    ՜ * Selects from a set of channel operations.Ԅ-  ^ `Select` allows you to define a set of channel operations, wait until any one of them becomesa _ ready, and finally execute it. If multiple operations are ready at the same time, a random oneb  among them is selected.ˆ  b ·L  a The [`select!`] macro is a convenience wrapper around `Select`. However, it cannot select over ad 0 dynamically created list of channel operations.3  ݢ ܉ X Once a list of operations has been built with `Select`, there are two different ways of[  proceeding: ̊ ] * Select an operation with [`try_select`], [`select`], or [`select_timeout`]. If successful,Њ` [ the returned selected operation has already begun and **must** be completed. If we don't^ # complete it, a panic will occur.&  ` * Wait for an operation to become ready with [`try_ready`], [`ready`], or [`ready_timeout`]. Ifc ] successful, we may attempt to execute the operation, but are not obliged to. In fact, it's` _ possible for another thread to make the operation not ready just before we try executing it,b _ so it's wise to use a retry loop. However, note that these methods might return with successb [ spuriously, so it's a good idea to always double check if the operation is really ready.Ə^    > Use [`select`] to receive a message from a list of receivers:A   6 use crossbeam_channel::{Receiver, RecvError, Select};9 đ B fn recv_multiple(rs: &[Receiver]) -> Result {ȑE # // Build a list of operations.& ! let mut sel = Select::new();$  for r in rs {ڒ  sel.recv(r);   ( // Complete the selected operation.+  let oper = sel.select();Ó  let index = oper.index();!  oper.recv(&rs[index])    = Use [`ready`] to receive a message from a list of receivers:@   9  E & $ Ӗ     loop { N // Wait until a receive operation becomes ready and try executing it.Q ! let index = sel.ready();$ ( let res = rs[index].try_recv();+ ˜ > // If the operation turns out not to be ready, retry.ƘA  if let Err(e) = res {!  if e.is_empty() {!  continue;̙  }  }   // Success! + return res.map_err(|_| RecvError);. ՚ ߚ   # [`try_select`]: Select::try_select&  [`select`]: Select::select + [`select_timeout`]: Select::select_timeout. ! [`try_ready`]: Select::try_ready$  [`ready`]: Select::ready ) [`ready_timeout`]: Select::ready_timeout,  6 =>>gGVgGV  6  444040bW`(    7  Αݞ 7   =>>gGV   ; Creates an empty list of channel operations for selection.> ޟ     use crossbeam_channel::Select;"   let mut sel = Select::new();  N // The list of operations is empty, which means no operation can be selected.Q $ assert!(sel.try_select().is_err());'    ɥ4  Adds a send operation.  * Returns the index of the added operation.- ڣ    , use crossbeam_channel::{unbounded, Select};/  ÍŤ$  ؊  let index = sel.send(&s);  Х  7  7 إ ե xݥ   ե ե 6  Adds a receive operation. ԧ ܧ-     /  Í$  ؊  let index = sel.recv(&r);ϩ    7  7 w  x    & & Removes a previously added operation.)  Y This is useful when an operation is selected because the channel got disconnected and we\ ; want to try again to select a different operation instead.> ĭ \ If new operations are added after removing some, the indices of removed operations will noṱ_  be reused. î  # Panicsˮ ܮ M An attempt to remove a non-existing or already removed operation will panic.P   ԯ ܯ /  # let (s1, r1) = unbounded::();& " let (_, r2) = unbounded::();ϰ%  ؊  let oper1 = sel.recv(&r1);  let oper2 = sel.recv(&r2);ɱ  J // Both operations are initially ready, so a random one will be executed.M  let oper = sel.select();Ʋ ! assert_eq!(oper.index(), oper2);$ " assert!(oper.recv(&r2).is_err());%  sel.remove(oper2); ճ ݳ   ! assert_eq!(oper.index(), oper1);$ $ assert_eq!(oper.recv(&r1), Ok(10));ʹ'    7  7     ؋M ɸ>  [ If an operation is ready, it is selected and returned. If multiple operations are ready at^ \ the same time, a random one among them is selected. If none of the operations are ready, an_  error is returned.ۺ  Z An operation is considered to be ready if it doesn't have to block. Note that it is ready] N even when it will simply return an error because the channel is disconnected.Q  J The selected operation must be completed with [`SelectedOperation::send`]M  or [`SelectedOperation::recv`].#   ӽ ۽ /   Ǿ     ؊ řܿ   M  let oper = sel.try_select();  match oper { 9 Err(_) => panic!("both operations should be ready"),< % Ok(oper) => match oper.index() {( ? i if i == oper1 => assert_eq!(oper.recv(&r1), Ok(10)),B ? i if i == oper2 => assert_eq!(oper.recv(&r2), Ok(20)),B  _ => unreachable!(),      7  7   'w@@+G4W   1 D  Y Once an operation becomes ready, it is selected and returned. If multiple operations are\ = ready at the same time, a random one among them is selected.@  ] Q  M #    5 Panics if no operations have been added to `Select`.8       /      .  s1.send(10).unwrap();  0  ؊ ř   I // The second operation will be selected because it becomes ready first.L   match oper.index() { ; i if i == oper1 => assert_eq!(oper.recv(&r1), Ok(10)),> ; i if i == oper2 => assert_eq!(oper.recv(&r2), Ok(20)),>  _ => unreachable!(),     7  7    W  W If an operation becomes ready, it is selected and returned. If multiple operations areZ W ready at the same time, a random one among them is selected. If none of the operationsZ ? become ready for the specified duration, an error is returned.B  ] Q  M #       /      .   0  ؊ ř   L ; let oper = sel.select_timeout(Duration::from_millis(500));>  3 Err(_) => panic!("should not have timed out"),6 Ӧ( B ѧB       7  7   'w     \ Blocks until a given deadline, or until one of the operations becomes ready and selects it._  Z Z > become ready before the given deadline, an error is returned.A  ] Q  M #      ' /      .   0  ؊ ř   ?  L * let oper = sel.select_deadline(deadline);-  6 Ӧ( B ѧB       7  7    ; 5 Attempts to find a ready operation without blocking.8  Y If an operation is ready, its index is returned. If multiple operations are ready at the\ \ same time, a random one among them is chosen. If none of the operations are ready, an error_  is returned.  ] Q  Z Note that this method might return with success spuriously, so it's a good idea to always] / double check if the operation is really ready.2     /        ؊ ř   H // Both operations are initially ready, so a random one will be chosen.K  match sel.try_ready() { < > Ok(i) if i == oper1 => assert_eq!(r1.try_recv(), Ok(10)),A > Ok(i) if i == oper2 => assert_eq!(r2.try_recv(), Ok(20)),A  Ok(_) => unreachable!(),     7  7   'w   ۈ 2 Blocks until one of the operations becomes ready.5  \ Once an operation becomes ready, its index is returned. If multiple operations are ready at_ 2 the same time, a random one among them is chosen.5  ] Q  ] 2   ȁ Ё8      Ղ /   փ   . Մ  0  ؊ ř   L  match sel.ready() { : i if i == oper1 => assert_eq!(r1.try_recv(), Ok(10)),= : i if i == oper2 => assert_eq!(r2.try_recv(), Ok(20)),=  ň ψ   7  7   V E Blocks for a limited time until one of the operations becomes ready.H  Z If an operation becomes ready, its index is returned. If multiple operations are ready at] Y the same time, a random one among them is chosen. If none of the operations become ready\ 2 for the specified duration, an error is returned.Ќ5  ] Q ʎ Z Note that this method might return with success spuriously, so it's a good idea to doubleҎ] ( check if the operation is really ready.+       ͐/    ё ّ .  Β ڒ0  ؊ ř ߓ  L 6 match sel.ready_timeout(Duration::from_millis(500)) {۔9 6 ԕA A      7  7   'w    ʦW M Blocks until a given deadline, or until one of the operations becomes ready.P  ] ߚ\ + before the deadline, an error is returned..  ] ݜQ  ] + ͞ ՞    ' /  ?  ɠ    .   0 Ϣ ؊ע ř  £ ʣL % match sel.ready_deadline(deadline) {( Ȥ6 A ɥA    Ѧ  7  7    ͨ ΒҨ Ҩ    7  7ΒΒ          7  Г8   7 7 7  7Г  7GGGEGEGEG EGEGEQ ! >S 7   7   1 A selected operation that needs to be completed.4  6 To complete the operation, call [`send`] or [`recv`].9    S Forgetting to complete the operation is an error and might lead to deadlocks. If aV C `SelectedOperation` is dropped without completion, a panic occurs.ҭF  " [`send`]: SelectedOperation::send% " [`recv`]: SelectedOperation::recvî%   Í  @@+G4WG4W  ̯ ̯ ԍ  ۰ ۰    <ɏ б 7  @@+G4W 7 - Returns the index of the selected operation.0    ɲ * use crossbeam_channel::{bounded, Select};ղ-  ! let (s1, r1) = bounded::<()>(0);$ ! let (s2, r2) = bounded::<()>(0);$ ! let (s3, r3) = bounded::<()>(1);$  ؊  let oper1 = sel.send(&s1); ڴ  let oper3 = sel.send(&s3);  % // Only the last operation is ready.( յ  assert_eq!(oper.index(), 2); ! assert_eq!(oper.index(), oper3);$ Ķ  // Complete the operation.̶  oper.send(&s3, ()).unwrap();    7  7   7 K  Completes the send operation.ݷ!  W The passed [`Sender`] reference must be the same one that was used in [`Select::send`]Z  when the operation was added.!    7 Panics if an incorrect [`Sender`] reference is passed.:     5 use crossbeam_channel::{bounded, Select, SendError};8 ܺ  let (s, r) = bounded::(0);#   ؊  let oper1 = sel.send(&s);ʻ   Ϝ$ 3 assert_eq!(oper.send(&s, 10), Err(SendError(10)));6    7  7x   7x   !   A ! Completes the receive operation.$  Y The passed [`Receiver`] reference must be the same one that was used in [`Select::recv`]\ !    9 Panics if an incorrect [`Receiver`] reference is passed.<     5 use crossbeam_channel::{bounded, Select, RecvError};8  #   ؊  let oper1 = sel.recv(&r);   Ϝ$ + assert_eq!(oper.recv(&r), Err(RecvError));.    7  7w   7x     ؋) 7  8   7 7 7  7  7GGGEGEGEG EGEGEQ ! >S 7   7  # 7     7  7   7 OO '] A helper macro for `select!` to hide the long list of macro patterns from the documentation.`{" The macro consists of two stages:% 1. Parsing 2. Code generation. The parsing stage consists of these subparts:19 1. `@list`: Turns a list of tokens into a list of cases.</ 2. `@list_errorN`: Diagnoses the syntax error.2A 3. `@case`: Parses a single case and verifies its argument list.D. The codegen stage consists of these subparts:1U 1. `@init`: Attempts to optimize `select!` away and initializes the list of handles.X& 1. `@count`: Counts the listed cases.)U 3. `@add`: Adds send/receive operations to the list of handles and starts selection.X? 4. `@complete`: Completes the selected send/receive operation.BZ If the parsing stage encounters a syntax error or the codegen stage ends up with too many]= cases to process, the macro fails with a compile-time error.@     ( !         A      case        !            (    <       !             !              A      (    <         !          !        (    <       !             !            .expected `=>` after `default` case, found `->` 0  ( <    !    !      0  (      !    !      +expected `->` after `recv` case, found `=>`-  (       !    !      0expected `->` after `send` operation, found `=>`2  (         !    !      expected `=>`, found `->`  (         body  !    !      ?did you mean to put a comma instead of the semicolon after `}`?A  (          ǫ  !    !     A   ( !   !       ǫ  (          ǫ  !    !     A   ( !   !       ǫ  (          ǫ  !      A    (   !                          ǫ    !  (        !      !!!!!! !!!  ! !!!!! !! A! !!! ! list_error1! !!!! !! !!"" " "  """"" !""  " """#" "" A" ""# " list_error2"  """"" !" #### # #   ##### !##  # ###$# ## A# ### # #   ##### !# #$$$ $ $  <$$$$$ !$$  $ $$$%$ $$ A$ $$$ $ $  <$$$$$ !$ $%%% % % % %%  %%%%% !%%  % %%%& %  %%& % %%&5expected one of `recv`, `send`, or `default`, found `%7&  &  &&&& &&`&&&&' & & '''' !''  ' ''''' '' A' ''' ' ' '''' !' '''(( ( ( ( (( ((() (  (() ( (()missing argument list after `()  )  )))) ))))))* ) ) ) )* ****** !**  * ***+ *  **+ * **+**  +  ++++ +++++++ + + ++++ !++  + +++,, ,, A, ,,, , list_error3, ,,,, !, ,,-- - - - -- ------- --  - ------ -- - ---. -  --. - --.missing `=>` after `-.  .  .... ..` case..../ . . / // /////// //  / ////// // / ////0 /  ///expected expression after `=>`/ 000 0 0 0 00 0000000 00  0 000000 00 0 000 ǫ00 000000 !00  0 0002 0  002 1 1121  1  1121 ǫ12`?22223 2 2 2 22 2222222 22  2 222222 22 2 22 2232232 22  2 33333 !33  3 3333 3  333!expected an expression after `=>`3#334 3 3 4 44 4444444 44  4 444444 44 4 44  4444444 44  4 44444 !44  4 4445 4  4454#556 5 5 5 55 5555555 55  5 555555 55 5 55 <5555555 55  5 55565 !56  6 6666 6  6666#667 6 6 6 66 6777777 77  7 777777 77 7 777 77 7777777 77  7 77777 !77  7 7779 7  779 7 779#did you mean to put a comma after `8%8  8  8888 88(88  8  8898899 9 99)`?9999: 9 9 9 99 9999999 99  9 999999 99 9 999 99 9 ::::::: ::  : ::::: !::  : :::< :  ::< : ::<:%;  ;  ;;;; ;;!(;;  ;  ;;;;;;; ; ;;;;<<< < < < << <<<<<<< <<  < <<<<<< << < <<< << < <<<<<<< <<  < <<<<< !<<  < <<<> =  ==> = ==>=%=  =  ==== ==![>>  >  >>>>>>> > >>]`?>>>>? > > ? ?? ??????? ??  ? ?????? ?? ? ??? ?? ? ??????? ??  ? ????? !??  ? ???A ?  ??A ? ??A@%@  @  @@@@ @@!{@@  @  AAAAAAA A AA}`?AAAAB A A A AA AAAAAAA AA  A AAAAAA AA A BBB ǫBB  BBBBB !BB  B BBBC B  BBC B BBCB%C  C  CCCC ǫCCCCCCD C C C CC CCDCCDC CD  D DDDDDDD !DD  D DDDD D  DDDmissing pattern after `->`DDDE D D D DD DDEDDED DE  E EE EE  EEEEEE EE E EEEEEE !EE  E EEEF E  EEF E EEFexpected `->`, found `EF  F  FFFF FFFFFFG F F F FF FFGFFGF GG  G GGG GG  GGGGG !GG  G GGGH G  GGH G GGHexpected a pattern, found `GH  H  HHHH HHHHHHI H H  HHHHHHH HH  H HH HH  HIIII !II  I IIIJ I  IIJ I IIJII  I  JJJJ JJJJJJJ J J   JJJJJJJ JJ  J JJ JJ  JJJJJ !JJ  J JJJL K  KKL K KKLKK  K  KKKK KKLLLLL L L  LL LL  LLLLL !LL  L LLLN L  LLN M MMN/expected an argument list after `recv`, found `M1M  M  MMMM MMMNNNN N N   NN NN  NNNNN !NN  N NNNP N  NNP N OOP/expected an argument list after `send`, found `O1O  O  OOOO OOOOPPP P P  <PP PP  PPPPP !PP  P PPPR P  PPR P PPR:expected an argument list or `=>` after `default`, found `Q<Q  Q  QQQQ QQRRRRR R R RRRR !RR  R RRRSR RR AR RRS R list_error4R SSSS !S SSSS S ζS SSSS !SS  S SSST S  TTTinvalid syntaxTTTU T TTTT casesTT  TT <TT  TUUVU UU AU UUU U UU UU <UVVW V VVV VVVV VV VVVVVVVV VV VVV ǫVV  VVVVVV !VV  V VWWWWWW WW  W WW <WW  WWWXW WW AW WWX W WWXWXXX !X XXX XXXX X X XXXX XXX XXX ǫXXX <XXYZ Y YYY YYYYYYY YY  Y YYY YY YYY ǫYY  YYYYYY !YY  Y YYYYYYY YY  Y YZ <ZZ  ZZZ[ Z  ZZ[ Z ZZ[invalid argument list in `recv(Z!Z  [  [[[[[[[ [ [[)`[[[\\ \ \\\ \\ \\  \\\\\ !\\  \ \\\\\\\ \\  \ \\ <\\  \\\^ \  ]]^ ] ]]^ά]1]  ]  ]]^] ^^^^^^_ ^ ^^_  ^^_ ^  ^^ ^__ m__ ________ __ ___ ǫ__  ______ !__  _ _______ __  _ __ <__  ___a_ __ A` ``a ` ``````` !` ``` ```` ` `  ````  ``` ``` ``` ǫ``a <aaab a aab  aabaaaa aa  a bbb bb bbb ǫbb  bbbbbb !bb  b bbbbbbb bb  b bb <bb  bbbd b  bbd c ccdinvalid argument list in `send(c!c  c  ccccccc c ccccdde d ddd  dd dd  ddddd !dd  d deeeeee ee  e ee <ee  eeef e  eef e eefe1f  f  ffff fffffgg g ggg <ggggg ǫgg  gggggg !gg  g gg gg  ggghhih hh Ah hhi h hhhhhhh !h hh hhi <hiiii ǫiiiij i iij <iiji ii jjjjjjjj ǫjj  jjjjjj !jj  j jj jj  jjjjjkj jj Aj jjk k kkkkkkk !k kk kkk <kkkk kkk ǫkkkll l lll <lllll !ll  l ll ll  lllllll defll  l lllm m  mmm9there can be only one `default` case in a `select!` blockm;mno n nnn <nnnnnnn nn  n nnn ǫnn  nnnnnn !nn  n nn nn  no <oo  ooop o  oop o oop"invalid argument list in `default(o$o  p  ppppppp p pppppqq q qqq <qq qq  qqqqq !qq  q qq qq  qq <qq  qqrs r  rrs r rrsr<r  s  ssss ssssstt t tttt tt ttttt !tt  t tt tt  tt <tt  tttv t  uuv u uuvu7u  u  vvvv vvvvvvw v vvw wwww ww www ww www recv_bodyw w  wwww <wwwww default_bodyw w  wwww{w{ ww ww{ x _rxxx{ x xx xx xx xx xxx xx x xx xxxx{x  xx  yy yy yyyy yy My y Myyyyy y  _reszzz{ z ߀zz ߀zz map_errzzz z z zz zz Lz z zz zz ߀z{{ { {|| | ||| |||| || ||| || ||| ǫ||  ||||||~|~ || ||~ } }}}~ } }} }} }} }} }}} }} } ߀}} }} }}}} }~ ~~ ߀~~~ ǫ~~~ ~ ~          <              € Ā̀ ̀΀Ѐ ҀԀ           ؁  Nρ Kсځ݁   ߀ т ߀Ղڂ ߀܂      L    ߀ƒ à   ǝŝ   Ý Ɲѝ <ҝٝ  ڝѩЩ0  _LEN    A      Ǟ _handle˞Ҟ Ԟ՞ ֞۞ Fݞ ;      unused_mut    _selßğ ş̟ Οϟџ  ӟ֟ ؟۟ nullݟ   A ʩ   ҚɠԠʠˠҠ̠ ͠ Ӡ <    _oper0   _oper1ɡס  ʡ _oper2ѡ   _oper3   _oper4   _oper5ɢע  ʢ _oper6Ѣ   _oper7   _oper8   _oper9ɣ٣10 ʣ _oper10ң11  _oper1112  _oper1213  _oper13Ѥ14 Ҥ _oper14ڤ15  _oper1516  _oper16ǥ17  _oper17٥18 ڥ _oper1819  _oper1920  _oper20Ϧ21  _oper21Ȧ22  _oper2223  _oper2324  _oper24ǧק25 ȧ _oper25Ч26  _oper2627  _oper2728  _oper28Ϩߨ29 Ш _oper29ب30  _oper3031  _oper31ҩ      C     ê ĪȪ˪ ǫ̪Ъ  ѪӪժ֪ת تݪ  ު     A     ګ ۫ ܫ   labels     ̯ͯ ¬ Ƥ Ƭˬͬ άӬ @լ!7  Ƥ   F :    #       Ƥ ̮ ͮҮ AԮ Ư  complete  Ƥ  ί     < ǫ  İ Ű˰  ̰װ ذݰ  ް  Ƥ       @!7  ű Ƥ ɱϱѱ ұױ Fٱ      #޲       Ƥ   Ƥ  γճг ѳֳ ǫ  Ƥ ٵ  A ˴ʹ˵    Ƥ      ¶ <öʶض˶ ̶Ӷ Զڶݶ ǫ޶        ҼѼ  Ƥ     · ÷ȷ @ʷ۷!7ܷ ޷ȹ  Ƥ   F =     #       Ƥ ɹ Թ Ƥ ڹ˼     ˺  ǫٺ  ۺ޺    Ƥ   A  ˻ ̻  Ƥ  Ӽܽ     input   <  ýĽν ϽԽ  ս޽   (too many operations in a `select!` block*ھ ۾ ܾ        ǫ   !    <  ¿Ϳο߿Ͽ пѿ  ҿտ  ֿٿ ڿ                    #        #   unbind!     !                              A     !  <           ǫ               ǫ   !    <                     _s         #         #   !     !                               A     !  <             ǫ     C          ǫ   !     C    ߀ C      ߀ ǫ    A     C !      C               ǫ   !     C    ߀ C         ߀ ǫ    A     C !      C     1internal error in crossbeam-channel: invalid case3  tokens        %internal error in crossbeam-channel: '          empty `select!` block        ǫ     A   (     ǫ       A   (  -` This macro allows you to define a set of channel operations, wait until any one of them becomescbc?bLa The `select!` macro is a convenience wrapper around [`Select`]. However, it cannot select over ad3 [`Select`]: super::Select7 Block until a send or a receive operation is selected::/M // Since both operations are initially ready, a random one will be executed.P 3 send(s2, 20) -> res => { ! assert_eq!(res, Ok(()));$' assert_eq!(r2.recv(), Ok(20));* 2 Select from a set of operations without blocking:5/./ thread::sleep(Duration::from_millis(500));2 s2.send(20).unwrap();/ // None of the operations are initially ready.2 ! recv(r1) -> msg => panic!(),$! recv(r2) -> msg => panic!(),$& default => println!("not ready"),)0 Select over a set of operations with a timeout:3/.ܩ2I // None of the two operations will become ready within 100 milliseconds.L $ѫ$B default(Duration::from_millis(100)) => println!("timed out"),EA Optionally add a receive operation to `select!` using [`never`]:D3 use crossbeam_channel::{select, never, unbounded};6.ܩ2. // This receiver can be a `Some` or a `None`.1 let r2 = Some(&r2);L $D recv(r2.unwrap_or(&never())) -> msg => assert_eq!(msg, Ok(20)),GK To optionally add a timeout to `select!`, see the [example] for [`never`].N [`never`]: super::never! [example]: super::never#examples$        A   O O-  A A  T zl v F" - 7 A O T ` l l v v %   7  7  v£    ؋ 4    O OJ  Og Ds  1   ;k T  T  E J S) g g s s          $       Vk      {  ˣOms        @   7 7  7  7{    C  C  ]   7 7  7  7{     C  C  C  E  7  7    C   ؋ɶ4   7  7 ߩ   ؋ ؋'   7  7   ؋=   7 7  7  7{  C C 1   7  7  C  ؋    7  7!  ! ## #  7  7# # ' ' (  7  7(  ( * * 8ArH* * ك+ + + + , -< -  7 7  7  7{- - C. C. 0A 0  7  71 1 C1 4 4  7  74 4 89 8  7 7  7  7{8 8 C8 C8 ;- ;  7  7; ; C; > >  7  7> ڡ> @ @ @  7  7@  @ A" A C ؋C ؋PO0O0O0- Crate internals used by the `select!` macro.O0O0PPPP POP;P :P =Q Q PP P3PPQQQ Q Q(QQQQQQQQQ$RRR R R)RRRRRRR"RRSSS*SSSSSRSSSST T TTT7T T TTT T U7U U UUU U {ѩIA?    9{   7 7 7  7{  7GGGEGEGEG EGEGEQ ! >S 7       :{   7  7{{   { [4.E     ;{   7 7 7  7{  7GGGEGEGEG EGEGEQ ! >S 7   $.pppُpp 7 {-P pp1p p  pppp؋, An error returned from the [`send`] method./OC The message could not be sent because the channel is disconnected.SF7 The error contains the message so it can be recovered.: [`send`]: super::Sender::send!  }}k>`ZKv} v} vv" " " ʛ" F}" " " ՛" Fvv" }" "  7 7  7}  7}" v " ####G}####Gv#}##### ###### 7  7}# v$$$$Hv$}$$ 7  7}}$ v%%%ќ%Iv%}0 An error returned from the [`try_send`] method.3B The error contains the message being sent so it can be recovered.E& [`try_send`]: super::Sender::try_send)  }.bGv}v}; The message could not be sent because the channel is full.>X If this is a zero-capacity channel, then the error indicates that there was no receiver[. available to receive the message at the time.1  vv} vv F   v  v}v& & & & J}& & & & J& }& &  7 7  7}  7}& v & ''''K}''''K'}''''' '''''' 7  7}' v((((L(}(( 7  7}}( v)))О)M)}4 An error returned from the [`send_timeout`] method.7E. [`send_timeout`]: super::Sender::send_timeout1 ~4cuFv~v~ W The message could not be sent because the channel is full and the operation timed out. Z  [> available to receive the message and the operation timed out. A  v  v~ v  v  F  v  v~  v* * * * N~* * * * N* ~* *  7 7  7~  7~* v * ++++O~++++O+~+++++ ++++++ 7  7~+ v,,,,P,~,, 7  7~~, v---Ϡ-Q-~ , An error returned from the [`recv`] method. / O A message could not be received because the channel is empty and disconnected. R  [`recv`]: super::Receiver::recv # 8%ztK  . . . . R. . . . R. .  7 7  7  7.   . / / / / S/ / / / S/ / / / /  / / / / / /  7  7/   0 0 0 0 T0 0  7  70   1 1 1 1 U2 2 2 2 V2 2  7 7 7  7  7GGGEGEGEG EGEGEQ ! >S 72   2 0 An error returned from the [`try_recv`] method. 3( [`try_recv`]: super::Receiver::try_recv+ :0bI> A message could not be received because the channel is empty.AV If this is a zero-capacity channel, then the error indicates that there was no senderY) available to send a message at the time., Q The message could not be received because the channel is empty and disconnected.T   3 3 3 ߡ3 W3 3 3 3 W3 3  7 7  7  73  3 4444X4444X44444 444444 7  74 5555Y55 7  75 666Ƣ6Z777΢7[77 7 7 7  7  7GGGEGEGEG EGEGEQ ! >S 77 74 An error returned from the [`recv_timeout`] method.70 [`recv_timeout`]: super::Receiver::recv_timeout3(^MNZ A message could not be received because the channel is empty and the operation timed out.]Y9 available to send a message and the operation timed out.< ʞT   8 8 8 8 \8 8 8 8 \8 8  7 7  7  78  8 9999]999£9]999ˣ99 9999̣99 7  79 :::ԣ:^:: 7  7: ;;;;_<<<<`<< 7 7 7  7  7GGGEGEGEG EGEGEQ ! >S 7< <2 An error returned from the [`try_select`] method.5: Failed because none of the channel operations were ready.=* [`try_select`]: super::Select::try_select-CV= = = = a= = = = a= =  7 7  7  7=  = >>>¤>b>>>ʤ>b>>>Ӥ>> >>>>Ԥ>> 7  7> ???ܤ?c?? 7  7? @@@@dAAAAeAA 7 7 7  7  7GGGEGEGEG EGEGEQ ! >S 7A A6 An error returned from the [`select_timeout`] method.9O Failed because none of the channel operations became ready before the timeout.R2 [`select_timeout`]: super::Select::select_timeout5[<B B B B fB B B B f B B  7 7  7  7 B  B CCCCgCCCƥCg CCCϥCC CCCCХCC 7  7 C DDDإDh DD 7  7 D EEEEiFFFFj FF 7 7 7  7  7GGGEGEGEG EGEGEQ ! >S 7 F F1 An error returned from the [`try_ready`] method.4ƴ=( [`try_ready`]: super::Select::try_ready+  V    G G G G kG G G G k G G  7 7  7  7 G  G HHHHlHHH¦Hl HHH˦HH HHHH̦HH 7  7 H IIIԦIm II 7  7 I JJJJnKKKKo KK 7 7 7  7  7GGGEGEGEG EGEGEQ ! >S 7 K K5 An error returned from the [`ready_timeout`] method.8R0 [`ready_timeout`]: super::Select::ready_timeout3 ?[fe   L L L L pL L L L p L L  7 7  7  7 L  L MMMMqMMMMq MMMǧMM MMMMȧMM 7  7 M NNNЧNr NN 7  7 N OOOOsPPPPt PP 777  7 7GGGEGEGEG EGEGEQ ! >S7 P P >gnjk       QQQQu QQ777 7 7GGGEGEGEG EGEGEQ ! >S7 Q Q  FTn3u     llll  Gvl ll777 7 7GGGEGEGEG EGEGEQ ! >S7 l vl )CSO      mmmm mm777 7 7GGGEGEGEG EGEGEQ ! >S7 m m # ԍy'$_ #    ,    )    ,    )    )    | | | | ԍ | | 777 7ԍ 7GGGEGEGEG EGEGEQ ! >S7 |   | } } } ګ} ԍ } } ԍ   $  {ӗ         ~ ~ ~ ~  ~ ~ 777 7 7GGGEGEGEG EGEGEQ ! >S7 ~   ~        7 7       ߬            77 7 7                                              7 7       & yI      &        &        &        &              ˭    777 7 7GGGEGEGEG EGEGEQ ! >S7            7 7           Ʈ    ή    77 7 7                          7 7    ' '' Ґ(c@@@AABFHIIJNPRRRSSS !!77<<SSXZhkyʍΗܘĚҚϟۢ!"$%%'**++++,---+,--GGLLfgnpsvט½޽оɿ                          ! ! !           ! ! % % - 3 C H Z ] ^ _ _ a b b b c c f h h h i j j l m m m n n o q s t t t v v w                  ! ! ! " " # # $ $ $ % % % & * + T T t y ~ Ɂ ֞  إ                                          ! # ( - . 1 4 8 8 ; > @        p""#$&&'(**+,. . / 0 2 2 2 3345777889:<<<==>?AAABBCDFFFGGHIKKKLLMNPPPQQQlllmmm| | | ~ ~ ~               ' ' ' ' pps<*=Receiver::try_iter &  # std::syncstd::sync::mpscôReceiver::iter  :=  %      ô+ :  : +  ! T  =*super::Receiver::recvsuper::Sender::try_sendsuper::Select::select_timeoutsuper::Select::ready_timeoutsuper::Sender::sendsuper::Receiver::recv_timeoutsuper::Sender::send_timeout super::Select super::Sender&super::Receiversuper::Select::try_readysuper::Receiver::try_recvsuper::Select::try_selectǷ߷θTʶʶùùǷ߷θ0=Select::select_timeout & Select::send Select::ready@SelectedOperation::send Select::recvڻSelect::ready_timeout crate::selectSelect::select=Select::try_readyԼ @Select::try_selectڻSelectedOperation::recvԼ @Tҽҽ=Iterator::next99  super::neverۿۿ #99889,99889,99889,;@@99889,99889,HY2j6Y3HY2j6ؐ'I6+HY2j6<;HY2j6gIHY2j6m HY2j6]flNHY2j6q Y>IHY2j6a n\HY2j6^Ē pHY2j6 m$.HY2j6eDddHY2j6\V'HY2j6%Iא1HY2j6dqHY2j6U>@N?HY2j6D!HY2j6y}]#HY2j6ޟ0d뜠HY2j6Ӕq05HY2j6eHY2j6g㉙n;HY2j6XqbۡHY2j6COGp^EHY2j6nHY2j6ܙHY2j6.ޗrHY2j6 wd'4HY2j6.SϔHY2j6[THY2j6%؎kyOHY2j6teٿE}HY2j6ut>7HY2j6I8RHY2j6.Z@HY2j6#藹`QHY2j6[㪥qHY2j6ӕHY2j6HY2j6u[HiQlHY2j6ӓHY2j6=D5HY2j6Pn|HY2j6KѠHY2j6ĬDHY2j6%KՉT`HY2j64bc"HY2j6vtQ;9HY2j6%'|HY2j6MiHY2j697STHY2j6fWi_fiHY2j6* `HY2j6+T^HY2j6%7lmHY2j6H(VHY2j6=!mݖHY2j65KfHY2j6L;HY2j6f_^>HY2j6d9iHY2j6] vHY2j6:Y/HY2j6b?X~sHY2j6BRYHY2j6 ɆL9HY2j6=UK*HY2j6,cHY2j6-5aU|HY2j6  HY2j6딳/ՂHY2j6gHY2j6<zUHY2j69#HY2j6v%,HY2j6 d&úHY2j6p}$HY2j6"o@HY2j6%égHY2j6$HY2j6;쵶#HY2j6T RHY2j6cM騟HY2j6ynHY2j6 $HY2j6TMHY2j6MF閭HY2j6ZjPHY2j6z*HY2j6 HY2j6 |z?sHY2j6:yŚVKHY2j6O+~ ®HY2j6̺&ٮHY2j6HY2j6 N;O)HY2j6 sHY2j64dHHY2j6=%mԊϑHY2j6HZj,HY2j6݄džHY2j6b*]HY2j6@\HY2j6~qHY2j63nI&HY2j65ˠ5HY2j6X>d~{HY2j6-h<*raNHY2j6gHY2j6`1J֠EHY2j6MvHY2j6!ׄHY2j6^߬HY2j6g"rkHY2j6u"HY2j6n/ r\HY2j69}HY2j6UbHY2j6e=y+HY2j69߭ZHY2j6*DDHY2j6O Y19HY2j6򆁹HY2j6_垈~iHY2j6^)pHY2j6|l!HY2j6% sgHY2j6IHY2j6 bHY2j6YHY2j6kYHY2j6)>]$HY2j6$HHY2j6tSHY2j6Gǝ/HY2j6Pel7'4HY2j6h6MR'HY2j6JGzHY2j6f6@D#HY2j6pyHY2j6.~tQ'HY2j6jq/HY2j63#ΣHY2j6 `ҡHY2j6c4jHY2j6xǒHY2j6*HY2j6>z{HY2j6e-\EHY2j6gs@Q0IHY2j67&Zu+FHY2j6='HY2j69QAHY2j69N+BHY2j6-+Y,]HY2j60!a-HY2j63.bHY2j6n>+HY2j6wh>y+HY2j6K)\ rHY2j6%yHY2j6E<~?4HY2j6d?HY2j6q1,HY2j6hfyîHY2j6#^nHY2j6`>gإHY2j6UOEHY2j6%oHY2j6mSUHY2j6C7nzHY2j6 ?ΛHY2j6_j޳sHY2j6_a# ^UHY2j6wݍ HY2j6ڨipPHY2j6-HY2j6v2dxHY2j65rBL*HY2j6ƶQHY2j6 HY2j6|lBU0HY2j6dL,HY2j64NHY2j6DM;:vHY2j6'hCHY2j6w8G*HY2j6iʔ4HY2j6_,{@oBHY2j6xzHY2j6t HY2j6 ekHY2j6 -aHY2j6uώ#WHY2j6)8.}HY2j6Li;HY2j6χxXHY2j6]e9 HY2j63N:THY2j6YHY2j6%oR3HY2j6i떲X~HY2j6SHY2j6P\%HY2j6szwHY2j6Mw QHY2j6O,qCHY2j6ZFWHY2j6L|d'HY2j6yZdHY2j6 HY2j6fb% HY2j6Ϗt=HY2j689GӦHY2j68#sr;HY2j6MѢ5HY2j6E$&jSHY2j6VFnrHY2j6x!cHY2j6/S@&3HY2j6={o2HY2j6 36HY2j60DP[HY2j68Q[PrHY2j6^'ZHY2j6ONӱHY2j6G HY2j6@GGhHY2j6|tjHY2j6V4 (dHY2j63>nHY2j6c.v'mHY2j6 hApHY2j6*G6yHY2j6뭑\DHY2j6?$'|HY2j6`x`^HY2j6Uv{FHY2j6ݲz'HY2j6r|r~HY2j6P!IHY2j6o 11HY2j6.Z\mHY2j6!bHY2j6AoHY2j6DW34" HY2j6-kNHY2j6l*BHY2j6&2v4HY2j6/ HY2j6@ʘ!&HY2j60ÎHY2j6e$HY2j6D& HY2j6|$PHY2j6MsZWHY2j6J\w=d HY2j6\tŗʁHY2j6wHY2j6IaUHY2j6ove<hHY2j6˪}ޜHY2j6J!c&*HY2j6XmB2NYHY2j6"r4fHY2j6]rXHY2j6J{VHY2j6_RHY2j6 HY2j6KHY2j6(_\@HY2j6DKoR~HY2j6^HY2j6TʐVHY2j6v튈HY2j6!uuHY2j6&I!'m?HY2j6&X.HY2j66jtHHY2j6ݱ`HY2j6D;يHY2j6:J?HY2j6cd8HY2j6) MHY2j6 Ʋ'҉HY2j6G*yHY2j6TEHY2j6nqdnHY2j6̇$HY2j6=IHY2j6|P\HY2j68v HY2j6",kudHY2j6MHY2j61剠HY2j68[vͻHY2j6HVZ9oHY2j6QQCHY2j6BHY2j6[ *OHY2j6[a'nHY2j6>' HY2j6WHY2j6HeHY2j6Ǡ,LHHY2j6"HY2j6LtC(HY2j6zI7>HY2j6wgOrvHY2j6 oHY2j6U(jEHY2j6fzHY2j6DuHY2j6{詸ːHY2j6J%6HY2j6 DO(>HY2j6y粆HY2j6wn&e~HY2j6?˭mHY2j6n%OPHY2j6k\sȧHY2j6|HY2j6NOV.VHY2j6!HW?HY2j68(HY2j6}5CHY2j6 M' HY2j6t~@qHY2j6$ 7U@HY2j6ffs>HY2j6VTiq9HY2j62J{8HY2j6t$me ^HY2j6h#HY2j6ҙ;/{x@HY2j67)U6ޑHY2j6PTsHY2j6!HY2j6e:5HY2j6۾ӁWHY2j6AHY2j6Kʋ@l2HY2j6br3HY2j6 HY2j6(Sc^HY2j6|fYHY2j6wHY2j6 4HY2j6S1bA HY2j6c?O'HY2j6HY2j6XHY2j6PZHY2j6NhHY2j6C;HY2j6rѳ=HY2j6= -GHY2j6{HY2j67lhKHY2j6^_(emHY2j6Wz>ZHY2j6)P_]HY2j6ᣐؾqHY2j6c|HY2j6j4 tHY2j6y!9HY2j69`:`HY2j6u;rHY2j6:nu HY2j6xwHY2j6u&߳HY2j6boˈHY2j6sHY2j6P)3?xHY2j6|qGHY2j6"30WHY2j6}HY2j6|HY2j6ZA6;RHY2j6dSHY2j6&1NHY2j6r)+_HY2j6n%AaHY2j6\#HY2j6'HY2j6GkHY2j61 6xHY2j6\.Yt#HY2j6M#?HY2j6Z- HY2j6 6c HY2j6$*HY2j6Uȴyv$`HY2j631HY2j6nT"&HY2j6e(X19HY2j62@8ϸHY2j6L HY2j6Z/HY2j6W8HY2j6cw>nHY2j6f= L=HY2j6w>)HY2j6gw>PHY2j6g lHY2j6r8HY2j6uD3MHY2j6na]HY2j6)kHY2j692L/HY2j6b)3,HY2j6A=CHY2j69 FOHY2j6PyHY2j6x°`HY2j6F9HY2j6[ϩrHY2j6c©s ZHY2j6YY1RHY2j6slD,HY2j6үF맅HY2j64O\HY2j6"|^F+?HY2j6='LHY2j6U HY2j6Jꄫo~ȡHY2j6htQ8HY2j6 BHY2j6{RHY2j6D3|*HY2j6 {]+HY2j6h{fDO²HY2j6CtbHY2j63/+HY2j6؇Z8HY2j6S/HY2j6%j""5HY2j6 >NHY2j6LГZiHY2j6ZPEHY2j6,@!HY2j65ձ\tHY2j6g{j9HY2j6h!ì3HY2j6م,8uHY2j6"0]VVHY2j6~7oxHY2j6Lְ,U]HY2j6]ŕfVHY2j6ZSqHY2j6ar HY2j6UXHY2j6R$aHY2j6vfeHY2j6N/7HY2j6]PHY2j6X'dHY2j6#rԔڝHY2j6|UHY2j6(3H)HY2j6 "\\b]HY2j6*8/HY2j6d4UZHY2j6V߆HY2j6: HY2j6A"}l~HY2j60ɟ[̰HY2j6]#FHY2j6oP_HY2j6g'vCHY2j6<{NHY2j67ٞHY2j65HY2j6%\jSHY2j6pg("HY2j6dq[؏HY2j6%HY2j6KOHY2j6q# JM/HY2j6<qHY2j6,1HY2j69VXHY2j6HY2j6@g\HY2j6` `_ gHY2j6F@HY2j6W!HY2j6D[ƊHY2j65)ࣩQHY2j6cߍHY2j6b^ftHY2j69=Q+۪HY2j6QHY2j6r)aHY2j6n[TyGHY2j6HㆾFHY2j64 CHY2j6!MF.HY2j6@OSHY2j6O#BHY2j6RUpHY2j6-?HY2j6nClHY2j6E{,ўHY2j6FQ*[9HY2j66oHY2j6fcHY2j6n6d}_,HY2j6 6ZGzHY2j6)q;HY2j6^>NuRHY2j6"+YHY2j6C~HY2j6n[2HY2j6RVdjHY2j6o ]HY2j6  HY2j6jq}v T[HY2j6e^HY2j6cO HY2j6 تHY2j6HY2j6YFzHY2j6VHY2j6+"HY2j6ѷ$рHY2j6>BZ&SBHY2j6%} HY2j6]TiXIHY2j6=egHY2j62HY2j6_[iHY2j6luHY2j6# (HY2j6yc(HY2j6~HY2j6zHY2j6HY2j6ˬ|:`HY2j6mueHY2j6hN>wpHY2j6ZZ^HY2j6zNiWɡHY2j6ʹcV,HY2j6rEO=HY2j6 W״gHY2j6qTeAv HY2j6f̓}HY2j6Ϧ[ԻuHY2j6kEyHY2j6mn޻HY2j6 =\HY2j6OrhXHY2j6V HY2j6nv˴wHY2j6+#zHY2j6B2QHY2j6V IxrHY2j68PTGJHY2j6)sfmHY2j6E= z,HY2j6q>NHY2j62 J:HY2j6̝qKqHY2j6qʹUmHY2j6t(?gHY2j6eheHY2j6$hM'HY2j6UQrW%RHY2j6Lf;!XHY2j65FHY2j6P;hHY2j6F2mawHY2j678VHY2j6$XnGHY2j6%M5UHY2j62@L|HY2j6s{GpHY2j6"^3UƱHY2j6z"RHY2j6MHY2j6ݼUU-HY2j6A} |HY2j6J*l?zHY2j6r^8L~HY2j6.wHY2j6YNRHY2j6HY2j6\a~HY2j6_^yHY2j6(~6HY2j62mMhHY2j6ɸװHY2j6aii m4HY2j6 @.HY2j6v)@HY2j6tNƊ7HY2j6i2cHY2j6-q1$@RHY2j6 z]Ƴ HY2j6$6OKHY2j64oVHY2j6ƚ2NHY2j6հrHY2j6l^%HY2j6V6IFHY2j63lHY2j6ͥxHY2j6ѡ_HY2j6|j@HY2j6j@HY2j6}QHY2j6~A!5rHY2j6,KZHY2j6Sk}HY2j6tL0mHY2j6BrpHY2j6\&&HY2j6þzHY2j682HY2j6~=;HY2j6  Z(HY2j6Ā0ۼHY2j6aLYHY2j6T>."`HY2j6Q~EHY2j6SD۝HY2j60aHY2j6FdHY2j6p۩HY2j69HY2j6o*W,rGHY2j6 |uzHY2j6*F :HY2j6w2(HY2j6q\HY2j6jU"9i&HY2j6QRcHY2j6brHY2j6X0HY2j6f 1HY2j6UdHY2j6t2ʒHY2j68@X~HY2j6dHY2j6CY; HY2j6{GUHY2j6DвHY2j6.Bc`EHY2j6ˬHY2j63+aHY2j6HY2j6,Z_gHY2j690'SHY2j6#{;HY2j6u$ B6HY2j6XYHY2j6(8RHY2j6ƫ ~HY2j6e4h(HY2j6Ȭ2LHY2j6=QHY2j6ӘtuHY2j6HY2j6KEa{HY2j6-ӻ7HY2j62ٌxHY2j6jhsHY2j6"cN8HHY2j6zq~3 HY2j6\:HY2j6KғHY2j6PmևHY2j6pPHY2j6G,HY2j6ON&HY2j6l5.8HY2j6B"؁HY2j6NJrLd^HY2j6ˏC^]HY2j66tDHY2j6<{K3HY2j6eY SHHY2j6buHY2j6SZ^+HY2j6QsF?HY2j6ɝHY2j6-UxHY2j6qX5HY2j6x+}HY2j6⻖ Ad(HY2j6;o{)HY2j6~!G*HY2j6I{š0.HY2j6z$0HY2j6OUHY2j6dڑdHY2j6*,nHY2j6=lϣ|HY2j6ǃ%I2HY2j6AElZHY2j6DHY2j6 X$2ʾPHY2j6'[D'`HY2j6\$vHY2j6( HY2j6MCHY2j6ޮZJHHY2j6MwBHY2j6FHY2j6/S(HY2j69䣴uHY2j6i&HY2j6YCCj%RHY2j64+ HY2j6j1\HY2j64DHY2j6LS-LGHY2j6x;>(HY2j6PZ!¡HY2j6J`{V9HY2j6gVvzHY2j6l<3HY2j6|q_HY2j6 |1HY2j6ԒːHY2j6ހltEaHY2j6pXa 3HY2j69 Ar7@%HY2j6?)K~HY2j6%bHY2j65uHY2j6wmEHHY2j6.HY2j6' keHY2j6n#KTHY2j6*` %&IHY2j6WXjHY2j6ivtHY2j6Ը.XHY2j6'K1HY2j6mHY2j6  HY2j6@nkDHY2j6RCOvHY2j6H\DfOcHY2j6ʛ.{CHY2j6$y OHY2j6_|:HY2j6t9+HY2j6窂-/XHY2j68 HY2j6(ޘHY2j6swdiHY2j6_0y{HY2j6#@SHY2j6`HHY2j6n:4R63OHY2j6XbHY2j6t>%nHY2j6t$B>HY2j6{6HY2j6Aׅ)mYHY2j6CCm-bHY2j6ǿ&\HY2j6+bۆ-}HY2j66`HY2j6AGfhxsHY2j66s@3HY2j6\RHY2j6y++s^HY2j6˽HY2j64VHY2j6:pHY2j63SHY2j6&jGHY2j6,"oHY2j6?TyHY2j6̏k*qyHY2j6Ј%.BHY2j6^C%ۆHY2j6bQ(@HY2j6AͩVHY2j6@HY2j6I{wHY2j64p1#HY2j6L&{yHY2j6\`ZCHY2j6r%2sHY2j6$WyHY2j6UgT7HY2j6UZgHY2j6_ZHY2j63JL+?HY2j6܈;HY2j6c@0ؗ!@HY2j6``'HY2j6lK]HY2j6$!< HY2j6a3HY2j6 ܊M4$#HY2j6˯]4\0HY2j6z0Ҽ9HY2j6}: MHY2j6j3 HY2j6q=ڮHY2j6k+`HY2j6ڄUHY2j6"HY2j6}~;HY2j6]^)HY2j6 XzHY2j6~7'PHY2j6#b!HY2j6?AHY2j6gR ahHY2j6?"i!HY2j67xЕ5HY2j62[fv&UHY2j6و(g$HY2j69BHY2j6%2`HY2j6NǰPHY2j6Xq`?HY2j6gٿ2{HY2j6fsY&oHY2j6AHY2j6nGHY2j6XHY2j6d-"!%HY2j6a.U֑HY2j6ĦAdZaHY2j6eV<בixHY2j6h*HY2j6 ضVHY2j6Pf\GHY2j6& UHY2j62 OvHY2j6_2_]HY2j6H2RYHY2j6iYr[HY2j6ۅ|HY2j6މKYHY2j67ԕeHY2j6 EHY2j6%EHY2j6oaE$HY2j6e]l>HY2j6+[cKHY2j6ZH! yHY2j6SIYكHY2j6mqHY2j6 ݡaHY2j6T5#CHY2j62+ߦHY2j6dwjI4HY2j6^ De2 HY2j6vSHY2j6+uwNHY2j6-:kHY2j6/MxtHY2j6@E+]%HY2j6^ HY2j63HY2j66lHY2j6YGϢHY2j6%eHY2j6} 3ȁzHY2j60C7wgHY2j69Yo>jHY2j6RVHY2j6\<✿HY2j6QޜHY2j6WHY2j6~HY2j6>uឝ!HY2j6BLݔ׶HY2j6aPlHY2j67!9PHY2j6bf7HY2j6[(*OHY2j6*iHY2j6| cxsHY2j6U0|n HY2j6Ȟw`!T#7HY2j66ځdHY2j6t✻HY2j6HY2j67X ΠeHY2j6#%HY2j62|`HY2j6#dVHY2j6]yFHY2j6H6К}HY2j6jyHUHY2j6aXn{HY2j6۸WZ@HY2j6疝:$*}HY2j6BBT(HY2j6gM8HY2j6(X@,HY2j6cho*#HY2j6\`>rHY2j6 )Y} HY2j6CTp)HY2j6Q3#zBHY2j6 MoHY2j6OsHY2j6;YvAHY2j6 7HHY2j6>5m6HY2j6c`kht:uHY2j6WrJlM`HY2j6(6q|HY2j6yheDcHY2j6HY2j6y ;XHY2j68 HY2j6ԃKcHY2j6,z5¦HY2j6ϟEHY2j6tNKHY2j6u HY2j6:SHY2j6T{}HY2j6ckK}HY2j6 HY2j6"HY2j6,%o=HY2j6ZhHY2j6UA HY2j6|x `HY2j6UVATHY2j6t*HY2j6?A"oHY2j6)RKHY2j6o*5}JHY2j6'HY2j6|nHY2j60 #ÃHY2j6PعrHY2j6AHY2j6lhRHY2j6$:EHY2j6SJHY2j6%K 7HY2j60AKHY2j6V ެHY2j6'b"HY2j6'njHY2j6kգ$YHY2j6Ю}!HY2j6;#HY2j6:=BHY2j6tK4q@HY2j6nqYHY2j6М2HY2j6N?"HY2j6lS~5HY2j6'9bJxHY2j6EiQd9uHY2j6foHHY2j6`HHrZHY2j6]HY2j6֭WQHY2j6U0ƟTHY2j6"묈HY2j65 HY2j6c YHHY2j6 RvkHY2j6Aա)JHY2j6j3fHY2j6TPAn5HY2j6-=ŘHY2j6'?fWHY2j6t$9HY2j6 =ze"HY2j6|`HY2j6e,Y%HY2j6-lHY2j6OڕHY2j6 K HY2j6sarHY2j6~d6߲xHY2j6;iDt>HY2j6йpHY2j6ú+v6HY2j6HY2j6sq!yHY2j6=Tǥ/HY2j6}iejHY2j6nvHY2j6ZO NHY2j6%9۹(HY2j6(КHY2j6̞30fHY2j6rsHY2j6t( HY2j6"(lWgdHY2j6ֆ;HY2j68ʱJHY2j6-fHY2j6{:aHY2j6gdHY2j6Ԧ#MHY2j6_wKHY2j6+!zj+WHY2j6D2"HY2j6g|.CeHY2j6G$HY2j6?d fO,HY2j6tHY2j6S{3HY2j6ޛ!HY2j6WHY2j6*zHY2j6I6̮?7HY2j6 ?FHY2j6ӗE*HY2j6No(HY2j6ͱëHY2j6oClҚHY2j6e 1kHY2j6-uPGrHY2j6H;L]HY2j6"_>aHY2j6ݙ HY2j6n)-HY2j6ikTAHY2j6]ŲvHY2j6qaHY2j6y̍(p HY2j6yׇ}{HY2j6Ԩ[:zHY2j6uk&nHY2j6һ1C#2HY2j62RHY2j6>l׺HY2j6sH;HY2j6h(* HY2j6gutHY2j6,QxHY2j6,)HY2j6S.M21HY2j6W3nHY2j6 0HY2j6 !狁HY2j6F݆+HY2j6$W[EHY2j6뗔>DHY2j6(_HY2j6EQ͕HY2j6uϨ VHY2j6L?`HY2j6M"86b HY2j6PCRHY2j6}?HY2j6UNzHY2j6mUrHY2j6ԮHY2j6r7uHY2j61HY2j6PpHY2j6s)HcHY2j67d)φHY2j6ucTj7 HY2j6nu)HY2j6]fHY2j6J, HY2j6F1OHY2j6AOUUHY2j6 1iZkHY2j68pHY2j6tZQgHY2j6֧C0HY2j6灵ƷH~HY2j6=HY2j6$ ^UHY2j6TM HY2j6hJUHY2j6Iu HY2j6?hIHY2j6)HY2j6 Ř HHY2j6Aд~&HY2j6G#yL,HY2j67yMDHY2j6`+%zSHY2j6rEJHY2j6031FHY2j6'^HY2j6r5HHY2j6AHHY2j6 WHY2j6`THY2j6?aҤHY2j6wnHY2j6 7ZmHY2j6=jHY2j6G\hiHY2j6uZJ1HY2j6 9R HY2j6bkpHY2j6gtHY2j6ԝHY2j6Ts?@:HY2j6uwrHY2j6?eOIHY2j6-8#6HY2j6 Djs?HY2j6#WFHY2j6K0\SR:HY2j6t;>7=HY2j66|% oHY2j6tHY2j6JHY2j6 ZDHY2j6'(CHY2j6uGxIVHY2j6=wHY2j6b~$ðHY2j6apJDHY2j6ퟠ @/HY2j6נHY2j6qTMHY2j6HY2j6HY2j6 hVHY2j6RI"B^GHY2j6kxHY2j6>E O~HY2j6 {4HY2j6gz.0HY2j6ч[HY2j6&RHY2j6F?vwHY2j6 YηHY2j6>QӽQHY2j6=HY2j6qN婃BHY2j6>m\HY2j6A+-HY2j6U-=RHY2j6BC/=RHY2j6((_}.HY2j6| HY2j6#G3HY2j6KYVCHY2j6]\+C0HY2j6Gg5GHY2j66eEzHY2j6.ꁟɮHY2j6[`KX(HY2j6HeHY2j6<}LHY2j6 1HY2j6z8< XHY2j63c-O_HY2j6y2\ HY2j60zcHY2j6߸GHY2j6P7HY2j6ZHY2j6~/HY2j6]wPHY2j6FpEHY2j6lHY2j6CZfiHY2j6 7yGHY2j6V{HHY2j6l4EAHY2j6r_bHY2j6ˌ&5lHY2j6ӫHY2j6KHY2j6] bޙHY2j6TqE̵6HY2j6ruKHY2j6WHY2j63^$$ZFHY2j6eޔEHY2j6 a9@1HY2j6GޫnHY2j6qo9HY2j6BpHY2j6zHY2j6v6qHY2j6$;HY2j6;Xc8HY2j6(jVHY2j6SX HY2j6?nHY2j6(wTHY2j66$MBHY2j6,t9HY2j6/cHY2j6gGHY2j6rHY2j6nvxuHY2j6O?_<0oHY2j6n{HY2j6d[HY2j6h̦UHY2j6HY2j6/-:HY2j6*)ufqGHY2j6;ze8HY2j6z E #HY2j6/٧aHY2j64|XaJ8HY2j6\(5HY2j6Ԃ:HY2j6B7 1UHY2j6%f>XHY2j6\ aHY2j6N9HY2j6y2z%HY2j6>; ?HY2j6p%լ`^HY2j6!tiHY2j6\|HY2j6] HY2j6Ob==HY2j6m-HY2j6EM`HY2j6ZNHY2j6 ZrhHY2j6?HY2j6׾#HY2j6JtGHY2j6.gcfHY2j6{EBPuHY2j69O HHY2j6P" HY2j6bwfgHY2j6m֠SSHY2j6LS"MzHY2j6ٲHY2j6Zh7HY2j6Ғ6HY2j6KP@HY2j6^eHY2j6xP=yHY2j6OlE*.HY2j6K1HY2j6@ԋƤHY2j6!]3HY2j6sVHY2j6TxQ7O@qHY2j6$knLfHY2j6j .&HY2j6vHHY2j6e14HY2j6珀HY2j65‘T߇5wHY2j6XUӡHY2j6eX*HY2j6D'5HY2j6Qv3CHY2j6".8HY2j6?v1 XHY2j6o7HY2j6^1gHY2j6f(HY2j6qyjHY2j6ćMg(HY2j6FHt!HY2j6V2HY2j6`Ca{_HY2j6XHY2j6಑UHY2j6ong}HY2j6QG[HY2j6WqHY2j6mz構*HY2j69elrHY2j6h/E&HY2j6"6WHY2j6d+u:HY2j6T"ОKHY2j6Tia̸HY2j6gΔHY2j6G.[uHY2j6,%4HY2j6w**>HY2j6)5ܟ'NHY2j6o HY2j6=׺HY2j6mZHY2j6IR^dHY2j6-̈́HY2j6/yHY2j69Ћ,&3HY2j6 mhHY2j6i_͑@HY2j64KHY2j65>r^,oQHY2j6C͸ڠHY2j6[y2HY2j6tXHY2j6̧(HY2j6q޲^HY2j6 .K HY2j6(XHY2j6U;_R eHY2j6&nKHY2j6j>HY2j6,^HY2j63ͶHY2j6_qvHY2j6 ˋHY2j6DϠ~HY2j6 Ω_HY2j6X1c#8HY2j6.6ƍHY2j6iu5(HY2j6m'7 HY2j6oNedaHY2j6c{I*HjHY2j6FƀHY2j6.bCIsa@@]AAAEBeBBBMCmCCCUDuDDE]EEEoI"MkM%Q'U;VWXZ] accUdddBeee6f gggh[hhhh7iPl{ll'mGmmMn@o qrkrr;sstvvv>w^wxOx9yyzpzzg{|b||Y}}/~~# y3ƄͅiEDT dL݋?/xݍ:(o92{="i3 fKvė YʚCҜ ܝDo.s $f1Smicys)Ax *Kk̲Tu}wTŷm!otк,/8%$B?)3-No3fn dM9"g .H=Cd2it'AD[q)t)Z}ji`Saq~ ovU^ moRF`L /|YS.$<sm5: +    6 m        XNP[ 2SztyL66;;  J!b!!!!>#$$%"&!''(a))W**L++^,,Q--O...x//012A4z5T;CCCCDD hFYHI$,O{O&nU+Y+C^-a#f*j(ko*rrNsssst lwwww%xx{.},"P~ ]]n^^^X`````a@aaaaaBbb4ccc)dwddeefOfffgpgggg h?hh%i}iibjjj+k\kkknnn oo"pzppppq5qlqNrjrr0sssuu vvv`wwx yeyy4{||},}}~x~~Luр?c0|P yՇCtTu9pQ G(`֐ D2’ܓF~*bP(^ Bz0h0aϠE{i1iK=s!WE}ק E'%[ ?w-e-Bc#DױQ3mͳ ,eG/Oj9t+fdʺf1nT)dVTTq$!^,fO' <@ n=, E#&]_lzyI\oI   ![! ;<1=A@@@@ AA2ADD>EEE ckef^gh!llm,nqHrpshvvw.xby} VOYIHs%l̡ v cysǰ91n#~bqSv1Q4^o    Z!!(#)"CCDtD rkssOwx`aqa gggjnoppdq$uufvDwwxyz {t}}~.W#)<xą2['B؉3h"X<*@v$ZHژX<r`(.Ǡu+a mQu=U9o]%8ͱI[]x2m_e"]O U   ###          ######                                                       ! !           ! !      !    ! !               %%    !        ##       ##      "$$$$""""  !$$$#$$#  & X zM{$0)-d1034F68:C;<f=@h@@fAAAABLBnBBBB$CTCvCCCC,D\D&IL;QTUCWX}ZG],aEc deKfgghhhhkWl.m\mbn*qqrrrs-vvEwswdxy$zz{|{|w|}}D~~/8!HڄˆYXhˉ!lT‹%SNuMQoGz)ޚWEɠB@(8%%U0QqҲhh'ϸѹ+ADdȽ:9WT0#.>;3TG#z)xaM*m %BQIjF};UYp* 2a~uhvu0ir!fLh`CmgB Pu N 3   J         bdo8["`JJOC v!!"#[$%%&'D( ))k**`++r,,e--.p013V4BBCC:FGZINTY]{a6f`jnRrrssvswwwwr{|~̃$[]]^^``````%aFaaaVbbcd0eecff+gxggghShh9iijvjj?klnno6pppppqqTrrristIuuvIxyz,|^||||}~0b \1ԍ.ُtFkoʕӗd,Қ|D H$}$Yϩ yAHiϮ)Ұݱe;sӳy5ƸlҺ Mn\ 9\)s Bl &0<DP\ht|BX4 ;{3o I _     !/!d!z!D%w))H.1p3568:;';;;<_<<<=2=J=1>B@Z@z@>AVA|AAAB>B^BBBBCFCfCCCCDNDnDDDDE>EVEEEEEhIMdMQT4VWXZ]acccNddd;emeeef/fgdgrggggThhhhh0i#l1lIltlllm m@mm.nFn9oqqq rLrdrr4srss}tjvvvvvw7wWww0xHx2yryyzizz`{{[||R}}}(~~{r,Âۂ '1;GO[gsDžc?>N^ &0:F׋9)\r׍4 "Si3 ,_uڑ7Mc-J`EupS~Ě'=̜֝>ni̡(m`z+ݩ Mgc{]smxȯԯܯ ,8@LXdp|˰#;ṟ$EeƲ8N޳owqN gimɺ%ݻ(Hݽ1~;8"->FR^jv'Hi- `h^G3KU_iu}%1=IUa{f|(1Bw7'=^,cn!;=Tj"Um"-;Svcb}AYLZjxt~SipOXgiL(4@ZF{)vSM(&2>FR^jv6mg/f|4 % s     0 g      |  RHJU ,MR^tyns0F0055   & . : F N Z f n z     .!D!\!!!!8##$~%&''([)))Q**F++X,,K--I...r//0q1}122-494e5s5&C4CCCCDDDaF:HRHII%OtOgUY;^afjdorrrGsms{ssstWwewwwwxx{~'v&P]]]]]]]]R^h^^^_____```&`2`:`F`R`````a:a[aaa,֓ݕ @x$\Jژ"X<t*b* .[ɠ?uc+cE 7mQ?wѧ?!U9q'_' <]}>ѱK-gdz&_Az)Id2m$_^ĺ3`ѻ *gM"]ONNs jW#^{G &/8AJS\enw"+4=FOXajs| '09BKT]fox&.6>FNV^fnv~&.6>FNV^fnv~&.7@IR[dmv!*3<ENW`hpx (08@HPX`hpx!*3<ENW`ir{ %-5=EMU]emu} %-5=EMU]emu} %-5=EMU]emu} %-5=EMU]emu} &/8AJS\enw "*2:BJRZbjrz #+3;CKS[cks{ #+3;CKS[cks{ #+3;DMV_hqz!+6BJVbnzHD qf9u O g     !7!j!$)-P134168m::;.;h<<< =9=Q=@I@a@@EA_AAAABEBgBBBBCMCoCCCCDUDwDDDDEEE_EEEEIL&QTU.WtXhZ2]a0ccccDeteeef6f"gkgygggh]hhhhhk*l8lPl}lllm'mGmm5nMn#qqqqrSrkrr=syss&vqvvvvv&w>w^wx7xOx;yyyyzpzzg{|b||[}}}/~~# y3ʂ",6AMUamyƄEDT f$+5@N݋?1bxݍ:*Yo#94e{= $Si3 "PfM{xƗ[ʚ-C1Ftqҡ.u,$h٧Uke{u~¯ίگ&2>FR^jvѰ+Azұ *Kk̲>Tu}wTtк,/O:%$B?)5DLXdp|-Nq3fp dM9$PZdo{ #+7CO[gl .J}=-Cd2it'AD[q+\t+4BZjiH`SaqyYovU^ moR".:FbL /|YS.  ,8DLXdp|&<uo7l: - y     6 m        NP[ 2UXdzty6L66;=   , 4 @ L T ` l t      4!L!b!!!"#G$$%&n'0((c)))W**L++^,,Q--.\0w112 334A4l5B-C;CCCC DD%FGAHEIINnT{Y]fa!fKjn=rrrrPstssssv^wlwwww'x]{g~[]]]]]]]]X^^^____` `` `,`8`@`L`Z`````a@acaaaBbbcwdeeOffggrgggg h?hh%i}iibjjj+kllm mm#m/m7mCmOm[mgmom{mmmmmmmmmmmmmnnn+n3n?nKnWn_nknwnnnn o p"p|ppppqWqlqNrjrrSst5uquuuu+vnvvwJwww3xxx yyyz{&|J||||}N}z}}}~~~~6'_u)ށM*NۃR~ʅ:+cy-Hˉv&[p΍ŏJ`.2eiĕ2h~L:P̘̚J.d՜Rh04ϠgSi_Cyg}/EɩG}+aҫOe-Bc#gױ;Q5mͳ Oej/r$_Qf̺9h׻WnzOA|V%Vy  G^,fu $-6?HQZclu~ )2;DMV_hqz %.7@IR[dmv $,4<DLT\dlt| $,4<DLT\dlt| $,5>GPYbkt} (1:CLU^fnv~&.6>FNV^fnv~ (1:CLU^gpy #+3;CKS[cks{ #+3;CKS[cks{ #+3;CKS[cks{ #+3;CKS[cks{ $-6?HQZclu~ (08@HPX`hpx !)19AIQYaiqy !)19AIQYaiqy !)19BKT]fox'Ux% +(d ) \ }     !,!M!w!(%_))".1\34s68::$;p;;<X<~<<<"=G=>@W@s@@SAqAAAA3BWByBBBB;C_CCCCDCDgDDDD E/ESEuEEEETI M]MlQT VoWXZ]accc8ddd3e\eeef,ffGgggg5huhhhhikFlcllllm9mmnCnoPqqq9rar}rsassUtEvvvvv w4wPwwxExySyyySzz@{{E||2}s}}~s~~`eۀR)؂ą [߆/6ވ>Nmϋ2uΌ!HoǍAfُ 0ѐ$Krʑ";`zӓ*:]'eRޗ>s`ɛ:lɜq)^Kvߡ%WգlԤƥզMqѨ©:^QtBnR~ް4h߱=^~߲Kֳ_^صXж5Wa\p̻%s~սҾ )^klti @azyPXyL+!w?y r!>b'k:Vw)[u]Up35CYCjYPn;0MK!V.1LO.f`5Hc>A#Uq)bq[-(r/c~L'Oy#~ L     - _  y  f  c  0@BE:)E<qS?QDC   !A!U!!!!##$V%%&'(<)))+**++),,--1...X//0a124L5BOCCCD6DNFHOHIINlOKUY^afj=orr+sfssstvwwww @P@j@@LAhAAAA*BNBpBBBB2CVCxCCCC:D^DyDDDEELEaEEEEDIL0M\QTV_WXZ]|auccc'dcddeFe{eee%ff$gggg+h_hhhhik?lYllllm/mmmxy=yyyBzz/{{4||!}]}}}b~~OTʀAā"|тۅ)wՆyuΈ.>Xŋ(`3hp,_vɏ)}6ks&YpÓ#w$VOBzȗ4]P{3bœaHz;sfءMwˣ\ĤŦCj 0WܪAm2g}Bwװ-^ر3TtղDuONȵH%ӷG{/}K_bt˽Ⱦ<Z[uv cXus6Ws i@Hr<p )rb7La3Lm"QeME`xx2H-c6 Id*<:O ;>_xP%8S.1NjR aKb (Yw<y9rn 6     & U  i  V  S   f5";_2jC/A4<  :!N!!!!"#z$F%%&'x(,)e))**++,, --$.]..K///T1}24>5BECCCC"DDFGHHIIN:O:UY^af~j,otrrsRssstvvwwww)x{~ <U^^^|^^b`````(aIaeaa bbcBccc7dddeeefffgHgzgggg'hhhWii3jjjkJkjkknnnopRpppppqYqrWrr slsstTuwuuuu-vtvv wPwwwfxxx:yyyz${-|i||||}P}}}}D~~~<)e/S1mTHЅ@ކ-i3!]͉#xM܋(] Ս/ڏL0ґdlp˕4jÖN<ΘəӚLۛ0fT IiAӢU%aE{i1Щ Iت-cQޭKll ,ip=<uճQl8t9շ&aS;mӺ!NoY |ĽQC~+_ <_GI$o'#;' -* ,h G   !Y!,%c))&.1`35w68: ;t;;<\<<</=>+@w@@uAAAA7B[B}BBBC?CcCCCC DGDkDDDmm*noqqrFrrsnsZtRvvvwUww,xy`yyXzzE{{J||7}} ~x~~ejW`4;CSԋ7ڌ&T̍$Mޏݐ)Wϑ'GؓF,qWCeߛ#qƝv.jP{ʡ\ڣq٤˥ ڦRs֨ǩ?`VvGpW 6m!Bcò۳dcݵ]ն: \fauѻ xڽ5׾.kpq  yn   Ef|"~U]{Q0&yK%w&@n,p[|`zbZu8:H^P&zs@5RP.36QT:e:MhCF(Ws.gv`2-w1hQ ,[( $ X    d  ~  k  h  5EGJYJAXDVI !W!!!!#$[%&&'(A))0**++.,,!--3...Z// 0c124N5BTCCCD8DSFHIOqOPUY^afjBorr0shssstvwwww>x{~sk@^^^k`````7aXanaabbcycc dnddezeeFfff g]ggggg6hh iliiHjjjkSkkknnoopgpppp q,qbq1r`rrsuss ucuuudvvBww{xxOyyz<|x|||}$}r}}Y~~,U!@|̓ (v]…0Y%*l։8b1f5ލ>U9'yuڕ=sؖ!WEט ޙܚU9o]%XĠ)rV(^/4jN2rħ: ٩R6lZ""Z{˯;FEij#Z+uɵ$G}N/j \Qv0]~̻'b6ڽZLAhKn]R  [x8 Y { O$1)-e1134G68:D;<g= @@hAAABpBBB&CxCCC.D'ILX\s-xxky 3lu#hb EnhCQRM    "  !   egr'cMMR w!!#]$%%&'F( ))n**c++u,,h--/q01 3X4Æ2uGԗe-}E%~ZzBЮ԰fz Ǹ*tEJ  wl?$")})-V1"34868t:5;;;<<X=ABBCCDIL"M-QTU5W{XoZ9]a7ccUddde=f hhNmTnrsewVxyzwz{n{ |i||}6~~!*:̄ͅiKJZE~@?C9lКI742 *ߧGZ{ }Zŷm!où{׺36V,+IF" 09ljS?4C8oz-GKbx{qpgZhx"|[ dsuXR5 _Y4B@< s        XTVazR<<A h!!#M$%%&t'6(()]**R++d,,W--O...x//b013H4,FGLIN,OuTY]ma(fRjnDrrssd{n~.]n^^aaHbb4ccc)d}dd"eefUffghEhh+iijhjj1k\kko(prqqrrZss;uv9xyP||~{T N!v ˏf8×Vۜn6:ՠoKثk3İWk?ݻu+e4}::::::; ;8;?;F;M;T;[;b;;;;<K<<<<<<=====AAAAAAAB BBB!B(B/B7B?BJBRBZBeBmBuB}BBB;>B>I>P>W>>>>>>> ???%?,?3?[?e?l?s?z??????????*@6@>@F@N@V@^@@@@@@@@@@@@AAA>AJARAZAbAjArAAAAAAABC)DOFFFFFFFGGGsG{GGGGGGH%H-H5H=HW^   .!y!&;<I=Y@UADEUEEEce.fghHllmEnqcrsvv6wGxy}+ڂƅq!h2 tb,_Ú<˜'M' {<+lRXh{ / +sEC!)QHI&g^uv}vYwwyy-{}}~En8\مIr<ORWTԴXL]~cpehmqCthwz@݄z`,ĸ\ܑlǚnϳ=Z I?,u!x  &+3IKPVQT`XXMYZc\_Fh}itjn>ptr`wxxQz|Ji_ɝGעl<KH4%CAp4.w+,h-./0223456Y7k8>9:<==\AHIKLMN^PQyRRSKT UZ\^aAjjmunn)Psma˿]M` a Ŀ/  q"#$%?&''c(()'*d**+,,o--q./t/200j112348>?@nAiBB4EFF7GGHOIlIۄxZŶ])ڑjŚlͳ;XG=*sv  &+2;8KPPQT^XXKYZa\_jg{irjn?@lAgBB2EEF5GGHMII:KLN&PRzRRX]cjrzÈp:') U9jT }u/ rT"Ht] Q#%)( +F-.49i9<jUVW Y~]^a f%gi(ln`oVptxǵAW3YR3B?D1IԄ{;0\đUSq\H@Қ+?jU(\0FaHuLURWXӴK]}coehmqBtgwz?܄y[_+ø[ۑkƚmγ<YH>+t w  &+2<8KPUQT_XXLYZb\_kg|isjn=psr_wxxPz|Ih^ȝF֢k;~JG3$B@o3-v+ÿ,g-./0123456X7j8=9:<==[AHIKLMN]PQxRRSJTUUUHVVWXiXXZ{\\|^^a@hjmtnn(Orl`ʿ\L_ ` k.  p"#$%>&''b(()&*c**+,,n--p./s/100i112348>?@mAhBB3EFF6GGHNII);KLN'PR{RRX]c jrzֈqJ(* :kU ~v0 sU#Ih R#%*( +G-.49j9<UVW!Y]^a f*gi-lnao[ptxh΁BX4ZS3AB@DD6IՄۻ1][őVT r]IAӚ,@juV)3]1FFbHHzLgV{U@VVWWaXXXZ\^_:>^UEVV WWfXX]Z\^d:>cB+ 13%f)-.1g3 5~68:{;<>_IMwQT+VzWXZ]acEdegKh'im&o+sjtwyy`zzM{{R||?}~~~mr_7FVύ,ґ/4_KmyΝ~6XdyХߦW#̩ۨD[L\rgf`ض=_ dxԻ ~%X`V5+ z/sc}e]xKaPEb`CFadh=PpKN03j!ye72 |mV+g    n  k  8MhTfY(-$$!!!#$d% &''(J)@**,++>,,1--6._/h124Q5aF'HIO^UY'^afjPor>sst{~x H^^a"bbccd}eeffbg9hhioiiKjjkVkolp6rrsvxWya~ÀeLJ=g:~œݖ ".[4 7ɧ0SV;߽Fb#; #j #j #efgefg###789:;<=>789:;<=>R S  R S  #### ## ## # ## j 789:;<=>789:;<=>789:;<=> j 789:;<=>789:;<=>789:;<=>789:;<=> #789:;<=>789:;<=>  789:;<=> ##j j j ##        #  #  #  #  #  #  ##### #  #    $ e   5!:f< =?@]AAeBBmCCuDDE]EEcBee g[hk{llm!qr;s$vvvx9yY}dL/(2" KvėYDos fSicys)x83on"H))}~ `$sm5+   S; J!!"a)BCCDrNssv%x} ]^X``aafpggjlnn pzpUqtu)vwwxyz$||L}}~~%܁(P)ɉt$Y̍H,cg•0fJ8ʘʚH~,bPeQߤ]Awe-ǩE{)_M߬d83Lgo!\NdʺfTwL>yTT  D99@@lq`v&zZkIg CGwz`agnpuz8$1گƱTصw--@@ lqTv܌ߐnN _=v[ C;wn`agnp uz ,xߚܩ%ίH̵yk  !%)-159=AEIMQUY]aeiy  $+6:AELPW[bfmqx!%,37>ELSZov}$3>BUipw~   ' + 3 ; C K V ^ f n r z ~     # ' / 7 ? C K S W _ q    ! ) 5 = H P W \ a f k p u z    - ? M ^ l q v {    ) 8 @ E L T \ a h p x   !&.3;MRZbgow| &.@HMUZ_glqy~ $).38=BGLQV[`ejo{#+@EM[mu '/7?DLT\aiqy !&+05:?DS[p"',16;@EJOTY^chmrw| %-;MZbjw|'/7?DLTYafks{',4<DIQYaiqy /7?GLT\dlt|  %*;CK[`hpx #(-27<AFKPUZ_duz&8EMU]emz #+08@HPU]emrz#(-27<AFKPUZ_dinsx} '/7?GOW_qv{ */49AIQYaiw|   / 7 D L T \ a i q y !! !!!&!+!>!J!O!T!Y!^!c!h!m!r!w!|!!!!!!!!!!!!!""$","1"6"H"M"U"]"b"p"x"}""""""""""""""" ###"#'#,#1#6#;#?#C#G#K#O#S#W#[#_#c#g#k#o#s#w#{#########################$$ $$$$2$A$N$S$d$i$q$y$~$$$$$$$$$$$$$$$$$% %%(%-%5%:%B%G%O%W%\%d%i%q%y%~%%%%%%%%%%%%%%%%&&&& &(&0&5&=&E&J&R&c&h&m&r&z&&&&&&&&&&&&&&&&&&&'''''!'9'A'F'N'S'X']'e'j'o'w'|''''''''''''''''''((((%(*(/(7(<(D(I(N(V(k(p(u(z((((((((((((((((((()) ))&)2):)?)G)W)_)g)o)t)|))))))))))))))))****&*+*3*8*@*E*J*O*W*\*a*i*y********************++++&+++3+8+@+E+M+R+W+\+d+i+n+v+++++++++++++++++++,,,,, ,&,,,2,8,>,D,J,P,V,\,b,i,p,w,~,,,,,,,,,,,,,,,,,,,- ----&---4-;-B-I-P-W-^-e-l-s-z--------------------. ...".).0.7.>.E.L.S.Z.a.h.o.v.}.................../ ////%/,/3/:/A/H/O/V/]/d/k/r/y////////////////////0 000!0(0/060=0D0K0R0Y0`0g0n0u0|000000000000000000011111$1+12191@1G1N1U1\1c1j1q1x111111111111111111112 222 2'2.252<2C2J2Q2X2_2f2m2t2{222222222222222222233333#3*31383?3F3M3T3[3b3i3p3w3~33333333333333333334 4444&4-444;4B4I4P4W4^4e4l4s4z444444444444444444445 555"5)50575>5E5L5S5Z5a5h5o5v5}55555555555555555556 6666%6,636:6A6H6O6V6]6d6k6r6y666666666666666666667 777!7(7/767=7D7K7R7Y7`7g7n7u7|777777777777777777788888$8+82898@8G8N8U8\8c8j8q8x888888888888888888889 999 9'9.959<9C9J9Q9X9_9f9m9t9{9999999999999999999:::::#:*:1:8:?:F:M:T:[:b:i:p:w:~:::::::BUh<@@@@AA+Alqcv°)}]nLj CJw|`agnpuz{!4:&3ݯȱVڵ[GHfaZ3): l c uty/)// //AG   AG/  AG/  8= "%!#GGGGGGGGGGGGG//G//G//555555    {-P    {-P9@@@AssertUnwindSafeA R:e_0*/9@@@ɵ/A R:e_0*֮/9@@@ɵ/A R:e_0*/9/9/9/9/9/9/  """_"""_55 LazyKeyInner565$ {{--Weak--5H=2R>{--ArcInner-strong--weak-- -/ T={--/-/--/-- -/ T= !     !55:))məA3:/ݭ/::)/////9DDDDDVVVV????????>>>>>>C ɵ/C /BCB֭H(445--{-.{7/{8888 J;((m8.{5/{.{ 5??{   5E    55L[77CwV b>>u1J&&{[[ iEE||Q--}dpLL%X44k_;;G##: fBBN**|amIIU11 tPP\88RD c??K''jFF}} R..< qMMY55ll`<<H$$; gCCO++nJJV22uQQ]99pxXX8 d@@L((kGG~~ S//~ff> rNNZ66mmqa== I%%z\\ hDD{P,,oKKW33A^::0F""yWW9 eAAx M))lHHT00ee?sOO$crate::panic::panic_2021\Z ZA@HY2j6wˠӒHY2j6T@ѻmcore_intrinsicsderive_clone_copyHY2j6HY2j6]Y{diqYgeneric_assert_internals&HY2j6~LHY2j6Nn #k pHY2j6=U*p /fmt_helpers_for_deriveGGHY2j6z 69ZHY2j6-S}$  O \/ derive_eq HY2j6X66 HY2j6s |Y)HY2j6qS>HY2j6$x<~ HY2j6Fv-sFD.$crate::thread::local_impl::thread_local_inner<$Cppthread_local_internals GGHY2j6F:0+HY2j61xep//GGHY2j6مŹ HY2j6="<\, Y)HY2j6ܢR.c)HY2j6E M9}O \// HY2j6y8JtHY2j62QDAm'' //HY2j6 {,Y)HY2j6χgHY2j6+! HY2j6uw1@HY2j6V$crate::panic::unreachable_2015_eZA@HY2j6'N4  HY2j6ފJjC$crate::assert_eq5GYYHY2j6l@="r<i HY2j62hD} HY2j6v Rm//HY2j6MGBӊ&HY2j68`mII/,n ZA@HY2j6?G1 HY2j68cٺ[-Y/&HY2j6( HY2j6X R1GYHY2j6QEJ>i %d//HY2j6{k8v.5/HY2j6(36z/noZA@HY2j6[d.%6F HY2j6 ˆo HY2j6`[wHY2j6ȌSc-; =\/ HY2j6O9$crate::panic::panic_2015۽ ,libstd_sys_internals &&HY2j6O]Y)HY2j6PEAHY2j6%RB]?YHY2j69}O} O \// HY2j6x9`THY2j6ę94i$ %d//HY2j6UOd!D$crate::cfg_if+HY2j62hSHY2j6_Lv۽ HY2j6پ[^p//GGHY2j6\ <\y  #HY2j6]J3i%d//HY2j66LHY2j696g&| $crate::cfg pY$HY2j6؝4 Y)HY2j6P({R]HY2j6ka}Gm//HY2j6EدyWkHY2j6'nb& =\/ HY2j6Bs\= HY2j628j%Y)HY2j6FKC| HY2j6>U`rV HY2j6(2t%(%HY2j6SG y$crate::assertW?YY/&HY2j6A6] HY2j6}~r/4GYY$HY2j6B/6b HY2j6SN-'˲4pHY2j6Cg/: =\/ HY2j6SйJa~*HY2j6gC/)E ZA@HY2j6 &UWtG HY2j6UEnG,Y)HY2j6X[͌#HY2j6qT'# HY2j6%;m //HY2j6y|HY2j6W 6BQ/iZA@HY2j6Ry ' HY2j6rOl) HY2j6(j~b Y/&HY2j6=Sf HY2j6Su 0li%d//HY2j6E]HY2j6k>a6KH HY2j66)8HY2j6aXCV4% HY2j6{Ti %d//HY2j6qP_&HHY2j6FJ[p# //GGHY2j6bHY2j6'R$k$crate::const_format_args"ZY fmt_internalsconst_fmt_arguments_newHY2j6DT/z HY2j64/fZA@HY2j6>D(Rf?YHY2j6Id-p//GGHY2j65l:/38Sp/ GGHY2j6sdhMHY2j6"4at =\/ HY2j6ַ=o_HY2j65Ӽ$p& //GGHY2j6ѤLaz:Y)HY2j6[p+E HY2j6.A74 HY2j6cuP/> pY$HY2j6/9%HY2j6CA,m HY2j6RnծS/\Z ZA@HY2j6.CKd` HY2j68Ь~'% Y)HY2j6{`%biHY2j6mOEvi%d//HY2j6 5_xHY2j6⛕J HY2j6J~,) (HY2j6CI YHY2j6k\Jm //HY2j6AA28HY2j6C'0!/ sZA@HY2j6; L HY2j6O8$crate::panic::unreachable_2021!-pZA@HY2j6]ޛ8HY2j6.Ofp}O \// HY2j6SNmHY2j6 kbY)HY2j6C<veAHY2j6&Z pHY2j6Bydqi %d//HY2j6b3A5THY2j6y1b&3m$ //HY2j6uܿG/<HY2j6d$\HY2j6T5\-  HY2j6M1'G/ 8Sp/ GGHY2j6\/ +HY2j6 q۹m//HY2j63k   HY2j6}^mc, Y)HY2j6H!Cʐ^HY2j6Q:B>:p//GGHY2j6S1Fl:HY2j6~6z}& O \// HY2j6BD 2-@ HY2j6?Cƿb%Y)HY2j6/Z:HY2j6bȴ\ HY2j6jS/B\Z ZA@HY2j6tmz/[?YY$HY2j68]o/4GYYHY2j6:He HY2j6D~|3s*HY2j6n]}O \// HY2j6zbp+Ç.HY2j6o=y/ G HY2j6I ϊ,Y)HY2j6 kГX?YHY2j62yrD  =\/ HY2j6j^=P0HY2j6Sq` HY2j65'_mHY2j6epSKm//HY2j64Y dzHY2j6v_fZ'' =\/ HY2j6[qr:C) HY2j6eIxl,Y)HY2j6]z@3HY2j6Oއ֦!< HY2j6n´} O \// HY2j65?\SHY2j6%ރ@/e?YY$HY2j6Cj# HY2j6EfQ/6?YY/&HY2j6t$~HY2j6\O8o =\/ HY2j6օ5aڕHY2j6DػJ HY2j6Nz1,HY2j6hGYHY2j6o)$  =\/ HY2j6Bg[8HY2j61c1bϜ%HY2j6Dﱧp//GGHY2j6U|%[  HY2j6TFm0!-pZA@HY2j6Ɉ'Z Y/&HY2j69 `HY2j6ֹ;M =\/ HY2j6fG,@|qqHY2j6XҤGi'' %d//HY2j6`5d@ HY2j6J: ,Y)HY2j6:Hނ|G3HY2j6PأI!! HY2j6R.Ln$0C"ZY00HY2j6۫}ӫ/HY2j6te/[?YY/&HY2j67# HY2j6Jp/5GYY$HY2j6n6f HY2j6O˝7NnHY2j68$8p//GGHY2j6YT {HY2j6~e;|i,Y)HY2j6a?-R-HY2j6{5< J# HY2j6.6i %d//HY2j67쎿/e?YY/&HY2j6PRJ*D`& HY2j6h2W/78Sp/ GGHY2j6)}l HY2j6~9c۽ Y/&HY2j63u1 HY2j60}O \// HY2j6|ɣHY2j6|`0š3'HY2j6mlN* YHY2j6l{} O \// HY2j6KQ@HY2j6‰AL6/"yQ ZA@HY2j6 q; HY2j6Wts7 yxX ~fe@  {z\   -,WB)?6v65W43 !+e"[[$crate::unreachable!-pYHY2j6SَX60>!-pYHY2j6i0!-pYHY2j6sgPc Av 3/HY2j6.lʉdebug_assert_eq() FY HY2j6rk ^ h YHY2j6\^bXOm Q YHY2j6ƕ uYHY2j67k` debug_assert&(>YHY2j6^B[;3t0() FY HY2j6^KLњ n YHY2j6*e E YHY2j6$`! $crate::panic\ZYHY2j6;D,X1   HY2j6Kߧ YHY2j6 KCM&΀0(>YHY2j6@6t7r0?(>YHY2j6*_0A\ZYHY2j6Oi:0\ZYHY2j62Dd6l0@3 >YHY2j6(gER c 3/HY2j6Ɠ쾹z3   HY2j6@Re8%R-  HY2j6,$OF50۽   HY2j6&H6r oYHY2j68 YHY2j6Ơ eYHY2j6 w < YHY2j6!` 3/HY2j6I/#Y fYHY2j6R?g/ HY2j6%YMHY2j66~$ 1 * ) 0 ) "  b ) * * T T { 4 & k > , [ U )  c N   = u U 7  u 9* *  ] * f }) F ) t) P ) H w p L) 2 * 0 * * O  s  , x *  * A *  ) C ) C * * ( T) @) A u*  b*  L* 9 ") 2 ) a ) + k / t  G 5 d ^  6) l* ,)  l W  ) * ) ~ ^  @  ~ d <  f  o O 8 j) * `) R z  : : u i "  Y   # R 8 Q ' { ) x X  Y [ !  K K ~ r +  b 4 L Z E l L 3  ] = } > m g  ' `  F V* ) ) g A*  I # * /* * m %* ) E * o Q 1 z1 U a E1 3  1 >$    % 2  X , . 0 , U. n0 < M 90 . 0 _,   o- *, :- / D' c/ + - ./ +  a X"  D+ $ . 3  h q C&    \ V(  ! ( S  D # 1 M  P : j% w   L   ' " ! : 7 m  " > A S R / N $ n  C   }& ] 6   (  + "  %  j  # U  j     0 -   # *  -    E " , &  {+ k . u  d   o$ : D ) % c   E e  ( p  t! m ~    \# ) ,  F% S   ( z k '  l  H  "   / . Q * $ h     9    (  !  d F  # m 1  F  v % `    ' ' O! ( t  " x }  u  "% !   & B  q $ G  (    $     @  L ^   /  y  V ' f H     D  ^ M &  i  6 0(  !  - e 1 1 j1 T  51 _$  * 4  % S  y 5 , . 0 , {. 0 ] n ^0 E. 0 ,   - O, _- / r' / , *- S/ + 8  "  A k+ $ . ^    m& )    (  ! T 6 t # ] ! w 6 z f % P  x   '  N ?!  d   " h m ~ } /  %     & 2  a  7  ( A Q H" E Q    $    H 0 )0 , .   L# 4+  -     i F [ '  + /    x   $ 4 N X = & w   Y y & (  !    4 p# ! = @ * Z% g   <   '  ! ' ]  " . 1 C B e > $ |  3   M &   (   "  x Z  # E  Z   % u    ' < d! =   #    6% 5   & V  8 [  )  #  .$    "  U  ` r   C    j 4' z \ *    X # s  a 3&    L F(  !  C ODHT "HY2j6Q~EHY2j6%eHY2j6ޮZJH]HY2j6lS~5jHY2j6s\``ʦHY2j6%K 7]HY2j6 bHY2j61 6xHY2j6ӕ$HY2j6bQ(@̧HY2j6%LsHY2j6h*HY2j6U>@N?HY2j6S1HY2j6_,{@oBHY2j6 .`gHY2j6*8/PHY2j6lJа oKHY2j6H(V6HY2j6U(jEHY2j6y̍(p HY2j6,`.HY2j6^ De2 HY2j62|`&HY2j6: SHY2j69Yo>jHY2j6E<~?4HY2j6Ts?@:HY2j6slD,&HY2j6;8Gp mHY2j6NJrLd^@HY2j6WrJlM`<HY2j6ƚ2NHY2j6YNRHY2j6 XzHY2j6%f>XeHY2j6b*]dHY2j6e9 )HY2j6I{š0.OHY2j6ks1pbHY2j6/S@&3?HY2j66`HY2j6}HY2j6*@HY2j6n[TyGyHY2j6Dв!HY2j6buEHY2j6׈@tHY2j65z'HY2j631 HY2j6<;HY2j6`THY2j6&=+sHY2j6⻖ Ad(LHY2j6\ afHY2j6dq HY2j6031FHY2j6̝qKqHY2j6F9"HY2j6MQGX HY2j6١1AHY2j60zc HY2j60aHY2j6a܈ɇHY2j6 s HY2j6$"vHY2j6h#HY2j6#%%HY2j62y#o HY2j6nT"& HY2j6^'ZDHY2j6?)K~sHY2j6v%,IHY2j6(X@,0HY2j6n[2HY2j6 36AHY2j6 4јHY2j69QAHY2j69qcHY2j6$;AHY2j6x?YgHY2j6%n@!K|HY2j6D!HY2j6FDHY2j6!MF.|HY2j6l4EAHY2j6HeHY2j6Ae ahHY2j6qTeAv HY2j6*)ufqG]HY2j6VTiq9HY2j6oClҚHY2j6No(HY2j64p1#HY2j6yF7pAbHY2j6wgOrvHY2j6iYr[HY2j6j4 tHY2j6uHY2j6L6duAHY2j6_垈~iوHY2j6K݌HY2j6foHmHY2j6FF~AݠHY2j6 جHY2j6S1bA HY2j6R$aGHY2j6dSVAHY2j6FHt!HY2j6(ޘHY2j6_wKHY2j6Z0MHY2j6@OS}HY2j6=jHY2j6m-oHY2j6KEa{2HY2j6u"zHY2j6 تHY2j6HY2j6V2HY2j6'K1~HY2j6_qvHY2j6[㪥q#HY2j6/٧a`HY2j6ƶQ HY2j6 -aHY2j6Gޫn<HY2j6BNHY2j6jq/HY2j6WHY2j6 {]+1HY2j6K$9HY2j6VHY2j6X_HY2j6zHY2j6B7 1UdHY2j6gs@Q0IHY2j6nqYgHY2j6Է̈́HY2j6?"i!HY2j6X띾HY2j6ȇaWHY2j6ԒːoHY2j6YY1R%HY2j6>z{HY2j6e 1kHY2j6i_͑@HY2j6ѡ_HY2j6ONӱEHY2j6 hApLHY2j67;HY2j6>בixHY2j6r{ŐHY2j60!a-HY2j6}QpHY2j6]oHY2j6r)axHY2j6)aHY2j6QHY2j6-TqcxHY2j6 HY2j6܈;HY2j6|1弯HY2j6bkpHY2j6gOk3HY2j6|qGHY2j6c$!CnqHY2j6n%AaHY2j6}?5HY2j64bc"-HY2j6|`}HY2j6HW_HY2j6F bwEHY2j6ҾHY2j6 `ҡHY2j6 6c HY2j6̇$HY2j6S/6HY2j6| HY2j6 S " HY2j6K0\SR:HY2j6&O~7oHY2j6Ѩr8kHY2j6qo9=HY2j6|nVHY2j6[R~VHY2j6JtGHY2j682HY2j6!bWHY2j6`+%zSHY2j6 Ʋ'҉HY2j6e+B#HY2j6CCm-bϕHY2j6T>."`HY2j6gz.0HY2j6X0 HY2j6"F; 0RrXHY2j6SH:HY2j6M9t<HY2j6?A"oRHY2j6һ1C#2 HY2j6=D5(HY2j6ĬD+HY2j6HeHY2j6hRp~I=QHY2j6h6M<HY2j6ON&=HY2j6KO`HY2j6#HORviHY2j6tZQgHY2j6|lBU0 HY2j6uZJ1HY2j6 |{_miHY2j6~taSɫHY2j6Ctb3HY2j6 ekHY2j6^_(emHY2j6c4jHY2j6YCCj%RcHY2j6ʌtjHY2j6j\EmHY2j6j1oA%HY2j6߇r2HY2j6]uSHY2j6үCv]HY2j6YxsHY2j6[y2HY2j6={o2@HY2j6AYHY2j6cՅZzHY2j6.wHY2j6GkHY2j6BrpHY2j6B"؁?HY2j6)RKSHY2j63SHY2j6*z HY2j6&RHY2j6bO璘VHY2j6ivt|HY2j6)pѲHY2j6)ٛǥHY2j6#dV'HY2j6\RHY2j6:pHY2j6aB\QHY2j6wnHY2j6='HY2j6 3R2hHY2j6rѳ=HY2j6B2QHY2j62HY2j6ߘd5HY2j6sQ}˷HY2j6A=CHY2j6J%6HY2j6HY2j6gR<HY2j6 @.HY2j6+"HY2j6DW34" YHY2j6-h<*raNjHY2j6'HY2j6MѢ5;HY2j6sarHY2j6 "\\b]OHY2j6ٲHY2j6*NgڲHY2j63JL+?HY2j69elrHY2j6]aHY2j6JHY2j6UƓY"7HY2j6@PdHY2j6k+`HY2j65BwHY2j69BHY2j6%oR3,HY2j6pHY2j6^)pHY2j6t✻"HY2j6YFzHY2j6"KHY2j6&2<\HY2j6.Z\mVHY2j6gkHY2j6ˌ&5lHY2j6n?&HY2j6ong}HY2j6+T^4HY2j6HY2j6XUӡHY2j6ӓ'HY2j6T5#CHY2j6QԿHY2j60 #ÃWHY2j6"%HY2j6 d&úJHY2j6<'IHY2j6w2(HY2j6P)3?xHY2j6z*WHY2j6+#zHY2j6q1,HY2j6cho*#1HY2j6F݆+,HY2j60ÎzHY2j63HY2j6q4}HY2j6e:5HY2j6-8#6HY2j6%:تHY2j6Wz>ZHY2j6yheDc>HY2j6wmEHvHY2j6"|^F+?)HY2j6gDGoڇHY2j6s)Hc<HY2j6.bCIs<HY2j6UKc1lHY2j6PCR4HY2j6U'Q#HY2j6dSHY2j6J`{V9jHY2j6XHY2j60ɟ[̰UHY2j6c%Ɩ\ HY2j6y}]#HY2j6W`]*nHY2j6!]3HY2j6]TiXIHY2j6&jGءHY2j6媶lӤ55HY2j6'njaHY2j6 Mo6HY2j6vSHY2j6Qv3CHY2j6ɓ4yHY2j6#!SzÓhHY2j6|HY2j67HY2j6׾#ЕHY2j6- HY2j65)ࣩQkHY2j6Xx=iѧHY2j6UA NHY2j6`HHY2j6]\+C0HY2j6eY SHDHY2j6;쵶#OHY2j6^Ē pHY2j6;oG㝓HY2j6!SSHY2j6BӀ qHY2j6ԝHY2j6}: MHY2j6Pd1HY2j6a DPHY2j6 wd'4HY2j6ԃKcBHY2j6^  HY2j6_a# ^UHY2j6ldHY2j6t HY2j6 4HY2j65FHY2j6KGHY2j6$* HY2j66jtHHY2j60ԂHY2j6Ȟw`!T#7 HY2j63/+4HY2j6Ցvq,XyPHY2j69Ћ,&3HY2j6 m$. HY2j6딳/ՂEHY2j6Ј%.BHY2j6-q1$@RHY2j6S.M21(HY2j6uD3MHY2j6m6$gRHY2j6d\G6ԩ]HY2j63:,HY2j6EMwpHY2j6rEO=HY2j64KHY2j6l:irHY2j6~A!5rHY2j6%j""57HY2j6wn&e~HY2j6'UHY2j6m'7 HY2j6d+u:HY2j6Lְ,U]BHY2j6L--IuHY2j6-̈́HY2j62R!HY2j65uuHY2j6b$6hpHY2j6CY; HY2j6C7UdHY2j6XV?uHY2j6cl@:KHY2j6UVATPHY2j6DuHY2j6ZFW3HY2j6{M LHY2j6^>NuRHY2j6RUpHY2j6=UK*AHY2j60o\HY2j6MpaVHY2j6'afau"HY2j6+[cKHY2j6ffs>HY2j6FBu5yվHY2j6/ (+w0%bHY2j67yMDHY2j6y2z%hHY2j66|% oHY2j6x+}KHY2j6Ю}!cHY2j6AHY2j66eEzHY2j6ݺ]AeHY2j6%EHY2j6-5aU|CHY2j6sHY2j6ӗE*HY2j67ԕeHY2j6eޔE<HY2j6AoXHY2j6=Q/HY2j6М2hHY2j67&Zu+FHY2j6z6U!*HY2j6e14HY2j6WqHY2j6˰beHY2j6[AV HY2j63c-O_HY2j6ըkHY2j6iu5(HY2j6UOEHY2j6FpEHY2j6\嬕o6HY2j6qʹUmHY2j6; ?iHY2j6Ԯ8HY2j6o ]HY2j60Bp #HY2j6f(HY2j6HY2j6h/E&HY2j6MHY2j6ѷ$рHY2j6\$vZHY2j6*` %&IzHY2j6l|-曺HY2j6j .&HY2j6R6?HY2j6=H;V_HY2j6"_>aHY2j6 ?FHY2j6u$ B6)HY2j6FʈHY2j6MvvHY2j6MiQHY2j6n:4R63OHY2j6H2RYHY2j6s.T6HY2j6$o#BWHY2j6NXMXVHyHY2j6>BZ&SBHY2j6\`ZCHY2j6(_\@ʍHY2j6]f@HY2j6fWi_fi2HY2j6}cFHY2j6(t\f(HY2j6`>gإHY2j6!tikHY2j6(jVCHY2j6-kNZHY2j6qyjɹHY2j6m HY2j6oowHY2j6̏k*qyHY2j6 s_HY2j6Ϗt=8HY2j6PTsHY2j6QsF?GHY2j6֣suHY2j6sV硨HY2j6Uȴyv$` HY2j6xeHY2j6L|9HY2j6~ƨvHY2j6gtHY2j6qN婃BHY2j6N9gHY2j6AͩVHY2j6vCcHY2j6wݍ HY2j6pq?KHY2j6=HY2j6@\eHY2j6 ̗HY2j6|j@HY2j6=)˚HY2j64VHY2j6"HY2j6"6WHY2j6_ZIJHY2j6 z]Ƴ HY2j6TʐVHY2j6vfeHHY2j6ove<hHY2j6H5HY2j6#WFHY2j6^eHY2j6ŃqvHY2j6F>v4wHY2j62[fv&UHY2j6̞30fˏHY2j6ʹcV,HY2j64HY2j6BRY?HY2j67d)φ=HY2j6g HY2j6{fЊpHY2j6ֆ;ۓHY2j6mqHY2j6<ov HY2j6:yŚVKZHY2j6+bۆ-}HY2j6\&&HY2j6rKHY2j6V HY2j6ɝHHY2j6HㆾFzHY2j6Pmև:HY2j67)U6ޑHY2j6CF ?ҨHY2j6|a1stHY2j6-UxIHY2j6{fOHY2j62 OvHY2j6>֠EuHY2j6ZA6;RHY2j6zv3HY2j6:J?טHY2j6  HY2j6݄džcHY2j6ܙHY2j6gw>PHY2j6dڑdRHY2j6ƫ ~,HY2j6WHY2j6$9 HY2j6D& |HY2j6~!G*NHY2j6sp|7+HY2j697ST1HY2j6bf7HY2j6 7H9HY2j6&I!'m?HY2j6"'=wHY2j6UQrW%RHY2j6E\&<-`HY2j6c.v'mKHY2j6?)AcHY2j6= -GHY2j6N/7IHY2j6 {4HY2j6v6q@HY2j6w8G*HY2j6_|:HY2j6t;>7=HY2j6t(?gHY2j6ԫ@JZrHY2j6LXAGHxHY2j6'[D'`YHY2j6ؐ'I6+HY2j6q# JM/aHY2j6G#yL,HY2j60DP[BHY2j6.~tQ'HY2j6QQCHY2j6{EBPuHY2j6=Tǥ/HY2j6;5QbQWԜHY2j6FQ*[9HY2j6b^ftmHY2j6``'HY2j6L|d'4HY2j6gGJHY2j6AGfhxsHY2j6_[iHY2j6zNiWɡHY2j6ucTj7 >HY2j6k'q]HY2j6;iDt>HY2j6+uwNHY2j6 RvkuHY2j6nu)?HY2j6nvxuLHY2j6 7yGHY2j6ݲz'RHY2j6I{wHY2j6 }!4pHY2j6A"}l~THY2j6<}LHY2j61+7HY2j6=egHY2j6 EHY2j6Ԃ:cHY2j6br3HY2j6gΔHY2j6[Ncw']tHY2j6s{GpHY2j6r7u9HY2j6q@SHY2j6y粆HY2j6䑙w"RHY2j6gFHY2j6+!zj+WHY2j6,^HY2j6aGsHY2j6?aҤHY2j6uϨ V1HY2j6wmHY2j6&X.HY2j6DWHY2j6krFmHY2j6$ 7U@HY2j6j3 HY2j6 W״gHY2j6=wHY2j6"0]VV@HY2j6*iHY2j6-ӻ73HY2j6 |1nHY2j6?W(HY2j6k*HY2j6ćMg(HY2j63)W2HY2j6\V' HY2j6szw0HY2j6rgWjHY2j67HY2j690'S'HY2j6߸G HY2j6̧(HY2j6$WyHY2j6 YηHY2j6X'dKHY2j6~7'PHY2j6=fhHY2j6.9̆wHY2j6U(5[(HY2j6:nu HY2j6c@0ؗ!@HY2j6g8HY2j6۸WZ@,HY2j6ɸװHY2j65‘T߇5wHY2j6mz構*HY2j6Pel7'4HY2j6%oHY2j6,%4HY2j6үF맅'HY2j6LS"MzHY2j6.gcfHY2j6UgT7HY2j6~=;HY2j6Jm*HY2j6?$'|OHY2j6و(g$HY2j62mMhHY2j6JA]HY2j6QGئm$HY2j6⹈ (!!HY2j6[`KX(HY2j6N!=gHY2j6NOV.VHY2j6VFnr=HY2j6OUQHY2j6u+FHY2j6^_HY2j6$#!lHY2j6dq[؏^HY2j6`HHrZnHY2j6OlE*.HY2j6Y1X癶HY2j6(3H)NHY2j65[HY2j6(~6HY2j69 Ar7@%rHY2j68 HY2j6HVZ9oHY2j63336(HY2j6r5HHY2j6 a9@1;HY2j6j>HY2j68?8HY2j6WCHY2j6QG[HY2j6I8R HY2j6V IxrHY2j67Jx}NHY2j6apJDHY2j6/S(`HY2j6BBT(.HY2j6W8HY2j6֭WQpHY2j6؇Z85HY2j6] bޙHY2j6v2dxHY2j6}iejHY2j6߲d&{HY2j6"(lWgdHY2j6zGlt{HY2j6Ll8kHY2j6 mhHY2j6boHY2j6qX5JHY2j6k\sȧHY2j6!uuHY2j6vHHY2j6fzHY2j6?7{}NBHY2j66ځd!HY2j6l>:HY2j6) MHY2j6$hM'HY2j6BPaxHY2j6(8R+HY2j6ᣐؾqHY2j6ٟ #HY2j6rEJHY2j60ȮHY2j62J{8HY2j6G}kfHY2j6XbHY2j6AꞞ3nHY2j6jhs5HY2j6}~;HY2j6]Q8HY2j6 B.HY2j6hi#8HY2j6>m\HY2j6[ϩr#HY2j6p۩HY2j6} 3ȁzHY2j6˽HY2j6F+춪 HY2j6ruKHY2j6A \gnHY2j6Z/HY2j6i떲X~-HY2j6`&)(/HY2j6_X!HY2j6灵ƷH~֐HY2j68,rHY2j6Tia̸HY2j6Ը.X}HY2j6pg("]HY2j62ٌx4HY2j6YGϢ HY2j6lhRZHY2j6e(X19HY2j6# (àHY2j6(6q|=HY2j6|x?g_HY2j6=HY2j6U yqHY2j6WHY2j6,1cHY2j6GgxxmHY2j6?TyHY2j6O+~ ®[HY2j6Mw Q1HY2j64+ dHY2j6c YHtHY2j6ZO NHY2j6pyHY2j6cM騟QHY2j6e=y+HY2j6<zUGHY2j6]rXHY2j6jyHU*HY2j6:Y/=HY2j6@ʘ!&yHY2j6X1c#8HY2j6̺&ٮ\HY2j6 DO(>HY2j6G*yœHY2j6y--9>UHY2j6 .K HY2j6_0y{HY2j6Wa4 HY2j6jU"9i&HY2j6>{:aHY2j6me=9zRHY2j6(C[B #HY2j6u[HiQl&HY2j6uGxIVHY2j6 K HY2j6Ny-^HY2j6SX DHY2j6SIYكHY2j6(XHY2j6lK]ӷHY2j6` `_ ggHY2j6bd_ƤHY2j6((_}.HY2j6XqbۡHY2j6nTcvHY2j6yc(HY2j6EiQd9ulHY2j6hfyîHY2j6CZfiHY2j64|XaJ8aHY2j6 ZrhHY2j6g{j9=HY2j6%؎kyOHY2j64oVHY2j6qt9lHY2j6,t9HHY2j6[ZwvHY2j6b?X~s>HY2j6"+YHY2j6SD۝HY2j6ynRHY2j6;YvA8HY2j6HZj,bHY2j6wh>y+HY2j66tDBHY2j6MC\HY2j6fsY&oHY2j6dIUHY2j6_^yHY2j6-ڥiMHY2j6%égMHY2j6#{;(HY2j6 1iZkHY2j6>E O~HY2j6MwB^HY2j6eHY2j6n/ r\{HY2j6V6IFHY2j6zI7>HY2j6y!9HY2j6=׺HY2j6mn޻HY2j6z0Ҽ9ϼHY2j63N:T*HY2j6v)@HY2j6FQǙHY2j6UZgHY2j6Pn|)HY2j69HY2j6QRcHY2j6b^9HY2j6s)tܢHY2j6W HY2j6%9۹(܍HY2j66$ɾj0HY2j6>R'HY2j6U:\HY2j6*HY2j6\=BHY2j6{?WHY2j6Zh7HY2j6uώ#WHY2j6疝:$*}-HY2j6ǃ%I2UHY2j6E$&jS<HY2j6Q3#zB5HY2j6g$ FHY2j6Aա)JvHY2j6w**>HY2j6c{I*HjHY2j6Gǝ/αHY2j6 X$2ʾPXHY2j6D2"HY2j6{4h6zHY2j66:HY2j6 7ZmHY2j6TPAn5xHY2j64DfHY2j6JGzHY2j63nI&gHY2j6IHY2j6/ K]HY2j65rBL* HY2j6%M5UHY2j6tPJ[HY2j6mUr7HY2j6 WHY2j6Xz.DHY2j6Ԩ[:zHY2j6%\jS\HY2j6)>]$HY2j6`x`^PHY2j6 =\ŲHY2j6Ɨߗ]AZHY2j6 ݡaHY2j6'9bJxkHY2j6Mij9HY2j6l*B[HY2j6mZHY2j6a n\HY2j6oy!HY2j68#sr;:HY2j6c©s Z$HY2j6 -rFHY2j6jq}v T[HY2j6dwjI4HY2j6bv lעHY2j6yZd5HY2j6 )Y} 3HY2j6gIHY2j6S{3HY2j6d4UZQHY2j6}5CHY2j68j)ʞ['HY2j6\tŗʁHY2j6 Ř HHY2j6q=ڮHY2j68 AHY2j6ZPE:HY2j6M+|HY2j6u;rHY2j6uwrHY2j6žZz>HY2j6ͱëHY2j63^$$ZFHY2j6C͸ڠHY2j6gut%HY2j6 9R HY2j6kEyHY2j6&Z?HY2j6ZBj8HY2j6T RPHY2j6%3JJsHY2j6|x `OHY2j6L?`2HY2j6h(* $HY2j6wHY2j6D[ƊjHY2j6tNƊ7HY2j6%2`HY2j68ʱJHY2j6ZXԅd./HY2j6gHY2j6(КHY2j6t>%nHY2j6 XHY2j6=%mԊϑaHY2j6OrhXHY2j6nHY2j6-:kHY2j6AHY2j6u:HY2j62 J:HY2j6d?HY2j61JHY2j6ZZ^HY2j6HY2j6E;7HY2j6 IcyHY2j6*"M-HY2j6 N;O)^HY2j69N+BHY2j68Q[PrCHY2j6j$ R[N:hHY2j69=Q+۪nHY2j6U;_R eHY2j6R&VKQHY2j6ѾZK9iHY2j6#b!HY2j6fcHY2j6ޟ0d뜠HY2j6ĦAdZaHY2j6?hIHY2j6mmHY2j6)q;HY2j6St+ HY2j6Uv{FQHY2j6/p*vvHY2j6χxXHY2j6RCOvHY2j6 |z?sYHY2j6<{K3CHY2j6%} HY2j6Wcb{HY2j6Li;HY2j6Lf;!XHY2j6#HY2j6a;]sHY2j6gVvzkHY2j64 =HY2j6S HY2j6p  HY2j6^;V_|qHY2j6މKYHY2j63~̗rHY2j69R֗HY2j6r)+_HY2j60C7wgHY2j6vtQ;9.HY2j6ޛ<HY2j6V{HHY2j6P" HY2j6)5ܟ'NHY2j6PZ!¡iHY2j6`Ca{_HY2j6cO ےHY2j6FdHY2j6sH;#HY2j6!HY2j6d[OHY2j6۔HY2j6F' HY2j6Sk}HY2j6"묈rHY2j6$W[E-HY2j6.EHY2j6;#dHY2j6ݻ+HY2j6$y OHY2j6ZH! yHY2j6ч[HY2j6 ˋHY2j6xzHY2j6XHY2j6e)k'HY2j62+ߦHY2j6 JHY2j6PMˏ~HY2j6 M' HY2j68[vͻHY2j6,KZHY2j6^C%ۆHY2j63 HY2j6ZhMHY2j6boˈHY2j6",kudHY2j66oHY2j6$NHY2j6/HY2j6PZHY2j6UbڂHY2j6q>NHY2j6Kʋ@l2HY2j62@L|HY2j6#@SHY2j6TqE̵6HY2j6@GGhGHY2j6MH HY2j65Kf8HY2j6tL0mHY2j6P7 HY2j6]5m6:HY2j6Kғ9HY2j6Pf\GHY2j6'?fWzHY2j6-?݀HY2j6b~$ðHY2j6&` l( HY2j6L;9HY2j65>r^,oQHY2j6.ꁟɮHY2j6HY2j6 >N8HY2j6ͥxHY2j6D3|*0HY2j6ۅ|HY2j6G FHY2j6\<✿HY2j6)HY2j6#nfHY2j6O?_<0oMHY2j6x!c>HY2j66$MBGHY2j6y~<HY2j6U0|n HY2j692L/HY2j6A} |HY2j6˵1HY2j6 0*HY2j6c|HY2j6Ȭ2L.HY2j6뭑\DNHY2j6ddL^HY2j6eV<<HY2j6nClHY2j69O HHY2j6F6H: HY2j6zXE8HY2j6br HY2j6 6HY2j6- $HY2j6x-bHY2j6nGHY2j6t$me ^HY2j6-lHY2j63ͶHY2j6಑UHY2j6:=BeHY2j6aii m4HY2j6ނ"mR_HY2j6Ԧ#MHY2j6Wv'ҴHY2j6>' HY2j6A+-HY2j6?v1 XHY2j6?_2-HY2j6F2mawHY2j6gٿ2{HY2j6o*5}JTHY2j6Ң6] HY2j68(HY2j6 f< HY2j60o:?ShHY2j6;Dz4HY2j6F_HY2j6VGmrHY2j6VLHY2j6Pp;HY2j6= %Sm4HY2j6HRe]]:#tHY2j6ˏC^]AHY2j6na]HY2j6pXa 3qHY2j6M"86b 3HY2j6J\w=d HY2j6n6d}_,HY2j6'hCHY2j6ZjHY2j6 wn=F|HY2j6,%o=LHY2j6n{NHY2j69p3uݑHY2j6%yHY2j6IPy\RHY2j6珀HY2j6窂-/XHY2j6e${HY2j6-HY2j6%KՉT`,HY2j6S.HY2j6g'vCXHY2j6g̛ lHY2j6h*0JHY2j6>uឝ!HY2j6l&1 rHY2j6HY2j6;o{)MHY2j6lHY2j6yׇ}{HY2j6|<HY2j6~HY2j6)X9M]HY2j6"HY2j6޹}R8UHY2j6$6OKHY2j6Aׅ)mYHY2j6TM ɓHY2j6n)-HY2j6.6ƍHY2j6)sfmHY2j6KYVCHY2j6ݱ`HY2j6?˭mԽHY2j6 s/̪HY2j6-fHY2j6xP=yHY2j6EQ͕0HY2j6~3ӍHY2j6LS-LGgHY2j6>QӽQHY2j6D[-HY2j69߭ZHY2j67!9PHY2j6\#HY2j6@HY2j6Cn-MHY2j6ZNHY2j6OHO$E\HY2j6$!< HY2j6/yHY2j6,m=`HY2j6|fYHY2j6#G3HY2j6D;يHY2j6Ob==nHY2j6mL `HY2j6$ ^UHY2j6  HY2j67X Πe$HY2j6E= z,HY2j6P)[HY2j6]^)HY2j6'].~dHY2j6xǒHY2j6nHY2j6,)'HY2j6'^<HY2j6l^%HY2j6&nKHY2j6=5[CDHY2j6W!iHY2j6!r~HY2j6O#B~HY2j6 $SHY2j6[a'nHY2j6b|'(pHY2j6Fu+(HY2j6XmB2NYHY2j6dE2>! HY2j6\:8HY2j6;~_yXHY2j6z8< XHY2j63>nJHY2j6c?O'HY2j6F?vwHY2j6VAǵHY2j6 kAQaHY2j6RI"B^GHY2j6W~Fn(@HY2j6AHHY2j6\ uI>YHY2j6SJ\HY2j6QޜHY2j6TEHY2j6ݼUU-HY2j6 ضVHY2j6UXFHY2j6q Y>IHY2j6$XnGHY2j6SZ^+FHY2j6aXn{+HY2j6r_bHY2j6\`>r2HY2j6p%լ`^jHY2j6X>d~{iHY2j6G\hiHY2j6=!mݖ7HY2j6SoY4HY2j6Jꄫo~ȡ,HY2j6zq~3 7HY2j6|q_mHY2j68v HY2j6cw>nHY2j6,Qx&HY2j6sq!y߈HY2j6þzHY2j6J{VHY2j6r|r~SHY2j6P\%/HY2j6$:E[HY2j6V4 (dIHY2j6x.HY2j6".8HY2j6fb% 7HY2j6Z- HY2j6?c6HY2j6)8.}HY2j6%btHY2j6шYHY2j6z"RHY2j6gM8/HY2j6#^nHY2j6.HY2j69#HHY2j6BPHY2j6;^GHY2j6˪}ޜHY2j6WvHY2j6ٲ1HY2j6G.[uHY2j6Aд~&HY2j6l5.8>HY2j6>l׺"HY2j6UNz6HY2j6{L6;^jHY2j6|[iHY2j6'(CHY2j6w>)HY2j6_j޳sHY2j6?Ǿ՟HY2j6o 11UHY2j6>`HY2j6o*W,rGHY2j6&1NHY2j6ϋw>QwHY2j6>HY2j6MHY2j60AK^HY2j6g|.CeHY2j61 +N umHY2j6g㉙n;HY2j6COGp^EHY2j6T"ОKHY2j6C~HY2j6뗔>D.HY2j6FƀHY2j67ٞZHY2j6eHY2j6$#Mۮ-HY2j6x;>(hHY2j6Y۞lHY2j6q >nzHY2j6l<3lHY2j6lP.ZoHY2j6ʛ.{CHY2j6{HG$HY2j6mHY2j6F@hHY2j6QUHY2j6W3n)HY2j6  DHY2j6ӫHY2j6uNWCHY2j6$61N"HY2j6n>+HY2j6c=za dHY2j6-gHY2j68@X~HY2j6o{+HY2j6KP@HY2j6?REk_ZHY2j6]#FVHY2j6~qfHY2j6f_^>:HY2j6.wHY2j6|l!HY2j6d-"!%HY2j6n%OPھHY2j6'b"`HY2j6D'5HY2j6mib,/.HY2j6U-=RHY2j63.bHY2j6aE%/tPHY2j6i2cHY2j6h!ì3>HY2j6iʔ4HY2j6*G6yMHY2j6TxQ7O@qHY2j6O%8ofHY2j6!HW?HY2j6P??\HY2j6h{fDO²2HY2j6HEocHY2j6hJUڔHY2j6oP_WHY2j6aPlHY2j6sWU2HY2j6;7Z9HY2j6 6ZGzHY2j6,Z_g&HY2j6Xq`?HY2j6XcOsHY2j6nqdnHY2j6?eOIHY2j6H\DfOcHY2j6bwfgHY2j6ԧkh_3:HY2j6Mi0HY2j6 |(kO5HY2j6ksHY2j6O,qC2HY2j6ú+v6HY2j6Jy$HY2j6y2\ HY2j6gdHY2j6s`*HY2j6^? HY2j6Oj OoHY2j6"r4fHY2j6,phh3HY2j60d2O#HY2j6LГZi9HY2j6@PеHY2j6(_/HY2j6% sgHY2j6u&߳HY2j6tSHY2j6f 1 HY2j6QHY2j6Ғ6HY2j69 FOHY2j6_2_]HY2j6[̠IHY2j6?HY2j6J*l?zHY2j6\|lHY2j6r^8L~HY2j6Aj֤OAHY2j6N?"iHY2j6TMTHY2j6tHY2j6spܬ_JHY2j6I6̮?7 HY2j6F1OBHY2j6ϟEDHY2j6 ?ΛHY2j6ڄUHY2j6PعrXHY2j6U?HY2j6()4HY2j6g lHY2j6.oHY2j6@:Y/GЩHY2j6:SGHY2j6rsHY2j6ʰMHY2j67p2oWHY2j6U0ƟTqHY2j6dHY2j6T ~HY2j6c`?Kd$HY2j6~d6߲xHY2j6g3_Ae HY2j6urџ,HY2j6teٿE}HY2j6~/HY2j6Y3HY2j6V߆RHY2j6cߍlHY2j6cyHY2j6cd8HY2j6!H:_ʚHY2j6Py HY2j6i&bHY2j6ݙ HY2j6^E HY2j6B"n$e1< f9z!3o%+"Iv0_rP/Ku{=?.E0VQgUAR^ i`^sqgg*,R8YB>xVPMP3KU? r(oNnFj;uQ8\DZEv: }s*| D,@1ECB; oGB-?NRzGn1 ,>b^pv2nh.D@z ?qM^1qV]b~lnPVwM]L%z)^c=_duv jQ@7'EZesw$ fpNiv)MbB/F8+Ahw(hR]x@I)N&Z1u*qfirjJx<ZAH)@).a%{VR`\*,r5UE:jF-z:qgBm.0b cfUJ 0Z4x,O:|qs %o*ni cvNu[$$\{^#:PW{ qT|k\ Gl4 ?{tUK$B):4gK *ROy)SQ+Lj"d7i= pA]O27#qAI+/5[kOR|kWzwed_>QsrkHoW S2r X0;'nN.` uB@d$]QPPe;Q'fH$!eV4jR~'ddv  #SHi9z")kz~X( ?m|G*Pw@{F1Pe8QZ-$0X-p\:N: n9uPlo'5dryJ?&iKM`\.8:tC)}+pR+{Du# ;+Z uCmIiX)sv46jz+9 Az6y-LbMS7`gVr-)9n"g_(eLbs2=crh}GTp!2c_X)8 Zq17u{!q9@= %3QLk}WNtQ}a>3N<|6NrSnYn5Ck{Sl{$ZWO`^Q9f'# !++>~!#TJ5g(RJ6E` *%9a=TPb]eq!H.< C#-k2 l-$Wq"l`u^ _xOf<v)K00sS0%ZVu`H 7k %[J]?G(l Mxeo_p"M_}Dl 6\t/]1}!9U B4_P0M {I,T9A1[,.=n\8 9\q3$'/mgKmt>D"tB'mqOTZNxaXxp1T/iW*!/@iq,;=QWu4=x|u8 t|P!w#fkYgd,0e6OAEmS]%ydl !DjfBMJz#(-iu'"zUE| 0*r2-RIfpi%"U! t8a,P\<,c;c(# V,FNX^u @qrcuPKPXJZoT+}"2 U^>1qvggvcEJ;l:~Kel4!9O\v#(F&h2:?"y@fhnXT=E!bS *oa|VT?= -XuzBm )R(1zau83Q.YbmlctV=3`$1Cd!_wQj34LKSOY 'F$H=h?o&:%'"Mua67hS sU*k2<2d>jYr<etKzE"n$e1< fe/home/steffen/.cargo/registry/src/index.crates.io-6f17d22bba15001f/crossbeam-channel-0.5.8/src/lib.rs iQ:8ߔ[TU@c&/(&-/1d\b $D2G#&$J_c$'K3J%C$-B,c5& --###D$(F 0abG3> /!!!24:*7BYLZ?(:%;18 H*^`.&,.K(\&#6,bc)d@cM90 11E44B`Tb cFIc\(2 21 M) %  *? #+ !91I :6;4<dIIbJBA83%i/home/steffen/.cargo/registry/src/index.crates.io-6f17d22bba15001f/crossbeam-channel-0.5.8/src/channel.rs N=sY# -$Z5-W&+$ *5,'4>') +N_c$SLQ+!!$Q-+!<B+ -  P, . Qda +7%.:< ("<-@6 W5281%` Mdbb((4%@:: (<- 3(/0X5KH >/:5E25#G<\a ?(! 3 4(!<-@6 W52W52W5271*O #&00"" 78866++$'Fb_^] 8!+?G D=<< Zc_A_1 !5!' )3 '2 =?>> #C< VcdW_1 !<! 3) ;/ 7 ;4 _4AD ZcdW_1 ,<! 3) "B/ C C4 `IHH 07 *" %:99 /6 (! $988 7 *"  !544 9 5)((+(+ .:99 >*+&#' <.PNN !OVN *NLL #?%&/:=7:888#''--&)Ib!_Z :"<)C 8<;;*+c,+c< Z]`%c* !7" 3  %. 1<;;*++;5,++;5< Z]^Bc* !>" 3  8, 4 41 S4" 3  "?, @ ;1 TFEE*5+;5,5+;5F 07 *" %<;;9;< /6 (! $;::8:; 7 *"  !766467 9 5)((+(+ .<;;9;< :cZ! *" 0 2O," ( >c3! !*) 3 3 /CW0 /#@*+&#' >.LJJQUJ !QZP,./  *RPPJN_ %?!/!+'!+$4cR&,.K()#/"%?8_/&%//+?S,&/&(? 4cR&,.K-)#/"%?!%6JII , @KJJ ,IHH @JII !CBB =HGG )FEE '6NMM@BC ,.--9;< @ONNACD ,MLL?AB @NMM@BC !GFF9;< =LKK>@A )JII<>? '[=<<&T988&Y (Y 9 y$|i/home/steffen/.cargo/registry/src/index.crates.io-6f17d22bba15001f/crossbeam-channel-0.5.8/src/context.rs #Ї>mQu);+);'N?! "-U *' 1, &(4! $D9+3 &AE)CI*"##()Ba2@ 9+&D# =JFJ&Q*(" =Q*]**5KF5%  4$>*/Vh.-:S6-5>,-9S4-&?(?3/ *"*1 #)?9I +?JZ 214;  (!.1 #(0 Q$+ Y,3 -?&/?[^ 658?  !*"J1 #/4 8'2 Y,7 "?@#%?Kc &(.5 U%) \,0 )?ZZ *,29 ;'/ \,4 '?6(+?-etӂEHxQuo/home/steffen/.cargo/registry/src/index.crates.io-6f17d22bba15001f/crossbeam-channel-0.5.8/src/flavors/array.rs 9o.A3L0wʖʖ30G W^6-R?"%)'? 3!c_D:$!c_T:$"CP3K56776$CC8.E0A<<') 2703:6&:5+0'%42/6D<H94IDQ3(7&'PP6% "(E1>G=4" :P": +T=( CA5@%!<6&:%42/6D<R#44IDQ3(7&'OPM% "(&1>Q59358/%J& :P": *K(, C@7@#5K+$R) *#++4*,AH,&()@!F31:?>-39D@1 8?+$P% -Z+6*,;L,&();!D33:@>-39DBa%1 C(299T:66&&)< -5P>.H'') 73>0,55* aQ(/+554 aPA&))..!!4 BE0#:A02 "3 1+6!, @-,+A!7=*)()6!, @+,)A!6=()&?Xi!hNl/home/steffen/.cargo/registry/src/index.crates.io-6f17d22bba15001f/crossbeam-channel-0.5.8/src/flavors/at.rs N٪E62lKxAX/25#+@<1P8!. 8EV36- 12- ?9=#1% -`V36*3 J&,=9CN88)+ ?9\#@& *Q0,V3 O1 d-/+7( -5 6 &1!/ ,V3% B.A!?+Wgs]fszn/home/steffen/.cargo/registry/src/index.crates.io-6f17d22bba15001f/crossbeam-channel-0.5.8/src/flavors/list.rs ~Rx'L+Ě|&ư4A-R?a&AA(B>8+4"2CA% 5$8&@ @+! 3. -+&:! V;_+(7K>Nc G#"& (#  4aAd!$!$KN)".8,.8,)" 2703:6&@A#5&0A0Y%"@AdEA@a+!FXC!FDE0/9"#"T1MNRL;0!E$ +T=( ,9(957%!<6&@AA0Y%"@A4*1DQ49.58%J&WD*dB!"@A29"#"T19^M4HN;0!E$ *K(, 7(97b@%&O/ 5K7T< *$++)#9 8?+$P% -Z+6*,],&();@!33:@>-39DBa%1 C(>CC[@)--@<:<:K1@@* [1 -5 @>6I") >8I"L) J%&@0%XX$< @A],a_?B$"A a34(5E'24*FF0"64", C873?0,;;'/+334!%%a!4(5E24F90"64", "3 1+6!, @-,+A!7=*)()6!, B.A! ?+a7MٹOko/home/steffen/.cargo/registry/src/index.crates.io-6f17d22bba15001f/crossbeam-channel-0.5.8/src/flavors/never.rs U88 tǰnǰ*725&!*8"" 8?!-Z&'*L0, /+ 7( -5&7, B.A!?+)*J"JMn/home/steffen/.cargo/registry/src/index.crates.io-6f17d22bba15001f/crossbeam-channel-0.5.8/src/flavors/tick.rs rbH)e(*1X$)25#-1A(;?G; 8E&;%1F* -`;&('!0;Y)8* *Q0,3/+7( -5 6 (1#/ ,(B.A!?+nwMGLn/home/steffen/.cargo/registry/src/index.crates.io-6f17d22bba15001f/crossbeam-channel-0.5.8/src/flavors/zero.rs Wơǻ=:w>DW@/R?& ?/@?G .'+( -++( =/+- E&4 5=<8-L0"&')(" 2703:64;@-*, *T?$ ;+5+649>-*, )K?$ ;b_A?9V&!?C 5K+4;@-6*1) *#++4;@-6 #= B/A[&)/5'RR8,RR=,M) 8?+49>-P*,% -Z+49>-U #8 @/<2:$)/5' "#*#3, "#*#8,I)K P>.4$*(* C( -50, /+ "3 1+6!, @B6B <,[K @) !2<=6)<)6')6!, @B6B">,YK @) !2>=6'>)6%weGh/home/steffen/.cargo/registry/src/index.crates.io-6f17d22bba15001f/crossbeam-channel-0.5.8/src/select.rs neUxFv '$.4(6cH;)2/2//X-B]_N-(\97-( B EM &$$):  $$)8 ;b,oG5>+T?0+c?I a<=(,6#,@$,#@#!=!)8&  )[b+;).) * #0 ,ca&=.+*  !'-*(,;(7'dW,C$4.%d%.*b&D1,589K-/5NQ5'[=BS7-,4A;d=?9 0&* A2/. )!#,! ];.) * #0 , &/4'$(" )!#,! !'-*.7'Id,K=%b%.*b&D4,589K-/'NN5(-,?Q>- 0 ?o >5.%<" Eo >=L Xo >90>%` #>97)<" .bccMe4 \a_'dacc_B:F'% ,!"A:F'% R%,B""/ '/%-D<2##C '%V, !, 2 4)%" ;!6( "2 4)%" =!8( .aCdU 4+*%##R!)*!), -%- 04%CcdbVR( 4$$%##R%A-GG% T&IaEbVR(= !4$$ 3" 5%##Q!CC! 8"\__GbVR( !4$$ 3" 5%##QC;-GG% =3d__FbVR( ,4$$ 3" 5%##DQ2;-GG% =5=adbVb7 4$$%##P AFF% B;(& :d:bVb7= !4$$ 3" 5%##QBB! '%A >Mba:bVb0 !4$$ 3" 5%##Q>;FF% ]4=& Uba3bVb0 ,4D$$ 3" 5%##Q-;FF% ^D,&  $+) "!!?5: WG&& #0-<?"5 2)))%###-!%)#% #&_&? =(%"!); R<4 F)a&A =(%"!)3 H>6 @#,?*&P<<< (g/home/steffen/.cargo/registry/src/index.crates.io-6f17d22bba15001f/crossbeam-channel-0.5.8/src/utils.rs Y̾QQ : $(N!7>#>%eO K7 >*( (PBKE[_E~ dg/home/steffen/.cargo/registry/src/index.crates.io-6f17d22bba15001f/crossbeam-channel-0.5.8/src/waker.rs sJp~  @/#*A  B6a %2 "## &G>3d$ (L#4 2 W;'1'D9E L%3G32!P 7 Y.'10^ 4D$% 6835&0N# M*-E'Z`># 33>^&#"-- 8C4"F NH4,F a"387$ %N& 4@4F 644F ?&4F =* %$=4W.nbU5O.n/home/steffen/.cargo/registry/src/index.crates.io-6f17d22bba15001f/crossbeam-channel-0.5.8/src/select_macro.rs ~:lv[#HW a&2=3E2Y*YC^A*J  - D " -% > " = V + = C - : C - ? < : 4? L N / Q -D F Q -D  I -D $  D%*I*I-L+I  %E)$1# 41# %D8@(# C- \P# `0 `0 c0 d7 $ e7 $ e7 $ e7 $ Y7# E5V*  H/  >*  >*  3C# 3C# 6N# %D3%)'  - ( D -4 7 C 3' 4 " C  ( M -8 7 C 3' 4 " C  + . -" 8 A -* ,  H 7 : 6' G % N  @ # I# - 6) 3&Q&H)# ) 1 3&! 1 66 32W&H)# F<<,8$@K B778$@K G<<98$@K 0B,4C ,=4C 4=14C <  VOA- """"""""""""""""""""""  PE   5=W4 . #  ! LAW4 6 %  . LOW4 -46 #   C) >, :7_>1X5 "C & G, 85_>1V5 "G %G !'2 "P !+2 S @ <9*  0B-6 - .dcd@cMe4;0 Q4!%+ 60 /33%%*40 /3M%%FE7 /32M%HO%-  uPzN7rm/home/steffen/.cargo/registry/src/index.crates.io-6f17d22bba15001f/crossbeam-channel-0.5.8/src/flavors/mod.rs A?#Y;`,,ɖN@@7=':u&t!H: R d ƣ k  3 / ʶ y x86_64-unknown-linux-gnu]M7~43?=Ecrossbeam_channel-6c67fe97bba3c9a7HY2j66m)ܤ  5L5L<O