+
    lHàj
Ç  ã                  ó`  € R t ^ RIHt ^ RIt^ RIt^ RIt^ RIt^ RIHtH	t	H
t
Ht ^ RIHt ^ RIHtHt ^ RIHt ^ RIHtHtHtHt ^ RIHt ]P6                  ! ]4      t^tR	R
0tRt R3t!Rt"Rt# ! R R]$4      t% ! R R]4      t&]R]
]']3,          .]&3,          t(]! RR7       ! R R4      4       t)]! RR7       ! R R4      4       t*]! RR7       ! R R4      4       t+]+! RRRR7      t,R R lt-R R lt. ! R  R!4      t/R" R# lt0R$ R% lt1R& R' lt2R( R) lt3R* R+ lt4R, R- lt5R. R/ lt6R0R/R1 R2 llt7R# )4aú  Runtime adapter for gateway-owned hosted room turns.

The durable state machine lives in :mod:`gateway.hosted_room_driver`; this module owns the
process-local worker and an injected session adapter, never the gateway server or agents.
One bounded supervisor schedules independent room workers: profile turn locks serialize Bots
sharing a profile while a room waiting for approval cannot stall unrelated rooms. Member
sessions reuse ``Group: <room_id>`` so a local-to-hosted migration keeps one transcript.
)ÚannotationsN)ÚCallableÚIterableÚMappingÚSequence)Úsuppress)ÚasdictÚ	dataclass)ÚPath)ÚAnyÚContextManagerÚProtocolÚcast)Úhosted_room_driverÚ	cancelledÚinterruptedÚbot_roomzD

[Reply truncated. Ask the Bot to share the full result as a file.]z!stop retry remains pending: {exc}c                  ó   € ] tR t^$tRtRtR# )ÚAttachmentsUnsupportedErrorzHThe member's route cannot carry the turn's files; refused before submit.© N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__static_attributes__r   ó    ÚC/home/ubuntu/.hermes/hermes-agent/tui_gateway/hosted_room_driver.pyr   r   $   s   † ÝRr   r   c                  ó†   € ] tR t^(t$ RtRtR]R&   R R ltR R ltR	 R
 lt	RR/R R llt
R R ltR R ltR R ltRtR# )ÚInternalSessionRPCa:  Normalized in-process session operations required by the room driver.

``submit`` durably reports one fenced turn's terminal result via ``on_terminal``;
``interrupt`` acts only while the current turn still matches ``expected_task_id``.
Only a transport with ``accepts_attachments`` is handed a turn's bound files.
FÚboolÚaccepts_attachmentsc               ó(   € V ^8„  d   QhRRRRRRRR/# )é   ÚprofileÚstrÚtitleÚsourceÚreturnúMapping[str, Any] | Noner   )Úformats   "r   Ú__annotate__ÚInternalSessionRPC.__annotate__2   s2   € ÷ Yñ YØðYØ&)ðYØ36ðYØ;SñYr   c               	ó   € R # ©Nr   ©Úselfr$   r&   r'   s   &$$$r   Úresolve_exactÚ InternalSessionRPC.resolve_exact2   s   € ÙUXr   c               ó(   € V ^8„  d   QhRRRRRRRR/# )r#   r$   r%   r&   r'   r(   úMapping[str, Any]r   )r*   s   "r   r+   r,   4   s   € ×XÑX ÐX¨SÐX¸#ÐXÐBSÑXr   c               	ó   € R # r.   r   r/   s   &$$$r   ÚcreateÚInternalSessionRPC.create4   s   € ÑUXr   c               ó(   € V ^8„  d   QhRRRRRRRR/# ©r#   r$   r%   Ú
session_idr'   r(   r4   r   )r*   s   "r   r+   r,   5   s   € ×]Ñ] Ð]°#Ð]¸sÐ]ÐGXÑ]r   c               	ó   € R # r.   r   ©r0   r$   r:   r'   s   &$$$r   ÚresumeÚInternalSessionRPC.resume5   s   € ÑZ]r   ÚattachmentsNc               ó@   € V ^8„  d   QhRRRRRRRRRRRR	R
RRRRRRR/
# )r#   r$   r%   r:   Úpromptr'   Útaskústate.TaskIdentityÚexecution_generationÚintÚon_terminalz#Callable[[Mapping[str, Any]], None]Ú	member_idr?   z"Sequence[Mapping[str, Any]] | Noner(   r4   r   )r*   s   "r   r+   r,   6   s`   € ÷  ñ  Øð Ø+.ð Ø8;ð ØEHð ØPbð à!ð à0Sð à`cð ð 8ð ð 
ñ	 r   c       	        	ó   € R # r.   r   )
r0   r$   r:   rA   r'   rB   rD   rF   rG   r?   s
   &$$$$$$$$$r   ÚsubmitÚInternalSessionRPC.submit6   s   € ñ  r   c               ó(   € V ^8„  d   QhRRRRRRRR/# )r#   r$   r%   r:   r'   r(   úSequence[Mapping[str, Any]]r   )r*   s   "r   r+   r,   ;   s2   € ÷ añ aØðaØ+.ðaØ8;ðaØ@[ñar   c               	ó   € R # r.   r   r<   s   &$$$r   ÚhistoryÚInternalSessionRPC.history;   s   € Ù]`r   c               ó(   € V ^8„  d   QhRRRRRRRR/# r9   r   )r*   s   "r   r+   r,   =   s   € ×[Ñ[˜sÐ[°Ð[¸SÐ[ÐEVÑ[r   c               	ó   € R # r.   r   r<   s   &$$$r   ÚinfoÚInternalSessionRPC.info=   s   € ÑX[r   c          
     ó,   € V ^8„  d   QhRRRRRRRRRR/# )r#   r$   r%   r:   r'   Úexpected_task_idr(   r)   r   )r*   s   "r   r+   r,   >   s4   € ÷ 'ñ 'Øð'Ø+.ð'Ø8;ð'ØORð'à	!ñ'r   c               	ó   € R # r.   r   )r0   r$   r:   r'   rU   s   &$$$$r   Ú	interruptÚInternalSessionRPC.interrupt>   s   € á#&r   r   )r   r   r   r   r   r!   Ú__annotations__r1   r6   r=   rI   rN   rR   rW   r   r   r   r   r   r   (   sB   ‡ ñð !&Ð˜Ó%õYåXÝ]ð ð ;?÷ õ
aå[÷'ñ 'r   r   ÚHostedRoomBindingT)Úfrozenc                  ó:   € ] tR t^Ft$ RtR]R&   R]R&   R]R&   RtR# )	rZ   z?Current server-issued authority coordinate for one hosted room.r%   Úroom_idÚ
gateway_idrE   Úauthority_epochr   N)r   r   r   r   r   rY   r   r   r   r   rZ   rZ   F   s   ‡ áIàƒLØƒOØ×r   c                  ó6   € ] tR t^Ot$ R]R&   R]R&   R]R&   RtR# )	Ú_TerminalReceiptzstate.TerminalStatusÚstatusr%   Úsettlement_idúdict[str, Any]Úresultr   N©r   r   r   r   rY   r   r   r   r   ra   ra   O   s   ‡ à Ó ØÓØ×r   ra   c                  ó6   € ] tR t^Vt$ R]R&   R]R&   R]R&   RtR# )	Ú_RecoveryInspectionú_TerminalReceipt | NoneÚterminalr    Úactiveú
str | Nonerb   r   Nrf   r   r   r   rh   rh   V   s   ‡ à%Ó%ØƒLØ×r   rh   F©rj   rk   rb   c               ó$   € V ^8„  d   QhRRRRRR/# )r#   r$   r%   r:   r(   zdict[str, str]r   )r*   s   "r   r+   r+   `   s&   € ÷ Yñ Y˜ð Y¨#ð Y°.ñ Yr   c                ó   € R V RVR\         /# )r$   r:   r'   )ÚROOM_SESSION_SOURCE)r$   r:   s   &&r   Ú_session_kwrq   `   s   € Ø�w ¨j¸(ÔDWÐXÐXr   c               ó    € V ^8„  d   QhRRRR/# )r#   rB   r4   r(   zdict[str, int]r   )r*   s   "r   r+   r+   d   s   € ÷ Jñ JÐ#ð J¨ñ Jr   c                óN   € R \        V R,          4      R\        V R,          4      /# )Úexpected_execution_generationrD   Úexpected_cancel_generationÚcancel_generation)rE   )rB   s   &r   Ú_fencesrw   d   s.   € Ø+¬S°Ð6LÕ1MÓ-NØ(¬#¨dÐ3FÕ.GÓ*HðJð Jr   c                  ó  € ] tR t^itRtRRRRRRRRRRR]P
                  R	R
RRRRRRRRR^RRRR
RR/R R lltR R ltRR/R R lltR R  lt	R! R" lt
R# R$ ltR% R& ltR' R( ltR) R* ltR+R,/R- R. lltR/ R0 ltR1R/R2 R3 lltR+R,/R4 R5 lltR6 R7 ltR8 R9 ltR:R;/R< R= llt]R> R? l4       tR@ RA ltRB RC ltRD RE ltRF RG ltRH RI ltRJ RK ltRL RM ltRN RO ltRP RQ lt RR RS lt!RT RU lt"RVR;/RW RX llt#RY RZ lt$R[ R\ lt%R] R^ lt&R_ R` lt'Ra Rb lt(Rc Rd lt)Re Rf lt*Rg Rh lt+Ri Rj lt,Rk Rl lt-Rm Rn lt.Ro Rp lt/Rq Rr lt0Rs Rt lt1Ru Rv lt2Rw Rx lt3Ry Rz lt4R{R,/R| R} llt5R~ R lt6R€ R� lt7R‚ Rƒ lt8R„t9R# )…ÚHostedRoomRuntimezBRun queued hosted-room tasks independently of Desktop connections.ÚrpcNÚtransport_resolverÚprepare_roomÚpublish_terminalÚpending_actionÚclockÚlease_ttl_secondsg      >@Úpoll_interval_secondsg      @Úactive_poll_interval_secondsg      Ð?Úturn_timeout_secondsg     ˜œ@Úindeterminate_defer_secondsg      N@Úmax_concurrent_roomsÚunavailable_retry_min_secondsg      ð?Úunavailable_retry_max_secondsÚprocess_generationc          &     ód   € V ^8„  d   QhRRRRRRRRR	R
RRRRRRRRRRRRRRRRRRRRRRRRRRRR /# )!r#   Údb_pathz
Path | strÚroomszGIterable[HostedRoomBinding] | Callable[[], Iterable[HostedRoomBinding]]Ú	turn_lockz$Callable[[str], ContextManager[Any]]rz   zInternalSessionRPC | Noner{   zMemberTransportResolver | Noner|   z*Callable[[HostedRoomBinding], None] | Noner}   z=Callable[[HostedRoomBinding, Mapping[str, Any]], None] | Noner~   z;Callable[[str, str, Mapping[str, Any] | None], None] | Noner   zCallable[[], float]r€   Úfloatr�   r‚   rƒ   r„   r…   rE   r†   r‡   rˆ   rl   r(   ÚNoner   )r*   s   "r   r+   ÚHostedRoomRuntime.__annotate__l   sÒ   € ÷ 58ñ 58Ø$ð58àVð58ð 8ð58ð ?Xð58ð ;ð	58ð
 Að58ð Xð58ð Tð58ð #ð58ð !ð58ð AFð58ð ',ð58ð KPð58ð &+ð58ð JMð58ð (-ð58ð TYð58ð 'ð58ð 37ñ58r   c               	ó  € \        W«VVVR 7      pVP                  4        F  w  ppV^ 8:  g   K  \        V R24      h	  \        V\        4      '       d   \        V\
        4      '       g   V^8  d   \        R4      h^ Tu;8  d   V8:  g   M \        R4      hVf   Vf   \        R4      h\        V4      V n        WEVuV n        V n	        V n
        WguV n        V n        W‰uV n        V n        VP                  4        F  w  pp\        V V\!        V4      4       K  	  Wðn        \!        V4      \!        V4      uV n        V n        T;'       g     \(        P*                  ! 4       P,                  V n        \1        V4      '       d)   \3        \4        . \6        \8        ,          3,          V4      M\;        V4      3R lV n        \>        P@                  ! 4       \>        P@                  ! 4       uV n!        V n"        R;V n#        V n$        / V n%        \M        4       V n'        / V n(        \M        4       V n)        \M        4       V n*        / V n+        / V n,        \M        4       V n-        \>        P\                  ! 4       / uV n/        V n0        ^ ^ uV n1        V n2        R# ))r€   r�   r‚   rƒ   r„   z must be positivez/max_concurrent_rooms must be a positive integerz$unavailable retry bounds are invalidNz%rpc or transport_resolver is requiredc                ó   € V # r.   r   )Úbindingss   &r   Ú<lambda>Ú,HostedRoomRuntime.__init__.<locals>.<lambda>•   s   € ±r   )3ÚdictÚitemsÚ
ValueErrorÚ
isinstancerE   r    r
   rŠ   rz   r{   rŒ   r|   r}   r~   r   Úsetattrr�   r…   r†   r‡   ÚuuidÚuuid4Úhexrˆ   Úcallabler   r   r   rZ   ÚtupleÚ_rooms_providerÚ	threadingÚEventÚ_stopÚ_wakeÚ_threadÚ_last_errorÚ_room_threadsÚsetÚ_rooms_needing_rescheduleÚ_leasesÚ_recovered_leasesÚ!_inspected_indeterminate_attemptsÚ_ambiguous_roomsÚ_unavailable_route_retriesÚ_blocked_roomsÚLockÚ_status_lockÚ_current_tasksÚ_room_schedule_cursorÚ_cycles)r0   rŠ   r‹   rŒ   rz   r{   r|   r}   r~   r   r€   r�   r‚   rƒ   r„   r…   r†   r‡   rˆ   ÚpositiveÚnameÚvalues   &$$$$$$$$$$$$$$$$$$   r   Ú__init__ÚHostedRoomRuntime.__init__l   s,  € ô Ø/Ø)EØ!5Ø(Cô	Eˆð
 $Ÿ>™>Ö+‰KˆD�%Ø˜ŽzÜ  D 6Ð):Ð!;Ó<Ð<ñ ,ô Ð/´×5Ò5¼ÐDXÔZ^×9_Ò9_Ø'¨!Ô+ÜÐNÓOÐOØÐ0ÖQÐ4QÖQÜÐCÓDÐDØŠ;Ð-Ò5ÜÐDÓEÐEÜ˜G“}ˆŒØ<?ÐU^Ð9ˆŒ�$Ô)¨4¬>Ø3?Ð0ˆÔ˜4Ô0Ø*8Ð'ˆÔ˜TœZØ#Ÿ>™>Ö+‰KˆD�%Ü�D˜$¤ e£Ö-ñ ,à$8Ô!äÐ/Ó0´%Ð8UÓ2Vð 	OˆÔ*¨DÔ,Nà"4×"HÐ"H¼¿
º
»×8HÑ8HˆÔäFNÈuÇoÂoŒD”˜"œhÔ'8Õ9Ð9Õ:¸EÔBÜ"'¨£,Ó8ð 	Ôô "+§¢Ó!2´I·O²OÓ4EÐˆŒ
�D”JØ*.Ð.ˆŒ�tÔ'Ø:<ˆÔÜ36³5ˆÔ&Ø57ˆŒÜ7:³uˆÔÜLOËEˆÔ.Ø24ˆÔØSUˆÔ'Ü(+«ˆÔÜ1:·²Ó1AÀ2Ð.ˆÔ˜4Ô.Ø34°aÐ0ˆÔ" D¦Lr   c               ó   € V ^8„  d   QhRR/# ©r#   r(   rŽ   r   )r*   s   "r   r+   r�   ¤   s   € ÷ 	!ñ 	!�tñ 	!r   c                óÆ  € V P                   ;_uu_ 4        V P                  e,   V P                  P                  4       '       d    RRR4       R# V P                  P	                  4        V P
                  P                  4        \        P                  ! V P                  RRR7      V n        V P                  P                  4        RRR4       R#   + '       g   i     R# ; i)z6Start the bounded room-worker supervisor idempotently.Nzhosted-room-driver-supervisorT)Útargetrµ   Údaemon)r°   r¤   Úis_aliver¢   Úclearr£   r§   r    ÚThreadÚ_worker_loopÚstart©r0   s   &r   rÂ   ÚHostedRoomRuntime.start¤   s–   € à××ÓØ�|‰|Ò'¨D¯L©L×,AÑ,A×,CÒ,CØ÷ Ñð �J‰J×ÑÔØ�J‰J�N‰NÔÜ$×+Ò+Ø×(Ñ(Ð/NÐW[ô]ˆDŒLà�L‰L×ÑÔ ÷ ××Òús   •.CÁCÁA6CÃC 	Útimeoutc               ó    € V ^8„  d   QhRRRR/# )r#   rÅ   r�   r(   r    r   )r*   s   "r   r+   r�   ¯   s   € ÷ Fñ F˜uð F¨tñ Fr   c          	     óZ  € V P                   P                  4        V P                  P                  4        V P                  ;_uu_ 4        V P                  pRRR4       Xf   R# \
        P                  ! 4       \        RV4      ,           pVP                  \        RV\
        P                  ! 4       ,
          4      4       V P                  ;_uu_ 4        \        V P                  P                  4       4      pRRR4       X F8  pVP                  \        RV\
        P                  ! 4       ,
          4      4       K:  	  \        ;QJ d)    R V.VO 4       F  '       g   K   R'       * # 	  R'       * # ! R V.VO 4       4      '       * #   + '       g   i     EL9; i  + '       g   i     L«; i)zARequest a bounded clean stop without interrupting accepted turns.NTç        c              3  ó@   "  € T F  qP                  4       x € K  	  R # 5ir.   ©r¾   ©Ú.0Úts   & r   Ú	<genexpr>Ú)HostedRoomRuntime.stop.<locals>.<genexpr>½   s   é € ÐEÑ-D¨—z‘z—|�|Ó-Dùs   ‚F)r¢   r§   r£   r°   r¤   ÚtimeÚ	monotonicÚmaxÚjoinrž   r¦   ÚvaluesÚany)r0   rÅ   ÚthreadÚdeadlineÚroom_threadsÚroom_threads   &$    r   ÚstopÚHostedRoomRuntime.stop¯   s#  € à�
‰
�‰ÔØ�
‰
�‰ÔØ××ÓØ—\‘\ˆF÷ àŠ>ÙÜ—>’>Ó#¤c¨#¨wÓ&7Õ7ˆØ�‰”C˜˜X¬¯ªÓ(8Õ8Ó9Ô:Ø××ÓÜ  ×!3Ñ!3×!:Ñ!:Ó!<Ó=ˆL÷ ã'ˆKØ×ÑœS  h´·²Ó1AÕ&AÓBÖCñ (ç“3ÑE¨fÐ-D°|Ñ-DÓE—3”3ÔEÐE’3ÔEÐE�3ÑE¨fÐ-D°|Ñ-DÓEÓEÔEÐE÷ ×Ðú÷ ×ús   Á	FÃ$FÆF	ÆF*	c               ó   € V ^8„  d   QhRR/# rº   r   )r*   s   "r   r+   r�   ¿   s   € ÷ ñ ˜ñ r   c                óä   € V P                   ;_uu_ 4        V P                  P                  V P                  4       RRR4       V P                  P                  4        R#   + '       g   i     L,; i)z<Wake the worker after task admission or a room-state change.N)r°   r¨   Úupdater¦   r£   r§   rÃ   s   &r   ÚwakeupÚHostedRoomRuntime.wakeup¿   sH   € à××Óð ×*Ñ*×1Ñ1°$×2DÑ2DÔE÷ ð 	�
‰
�‰Ö÷	 ×ús   •&AÁA/	c               ó   € V ^8„  d   QhRR/# )r#   r(   rd   r   )r*   s   "r   r+   r�   Ç   s   € ÷ Hñ H˜ñ Hr   c                ó.  € V P                   ;_uu_ 4        V P                  p\        V P                  P	                  4       4      pR\        T;'       d    VP                  4       4      RV P                  P                  4       RV P                  RV'       d
   V^ ,          MRRVR\        \        V P                  4      4      R\        \        V P                  4      4      R	V P                  R
V P                  /	uuRRR4       #   + '       g   i     R# ; i)z6Return a transport-neutral snapshot of runtime health.ÚrunningÚstoppingrˆ   Úcurrent_taskNÚcurrent_tasksÚleased_roomsÚblocked_roomsÚ
last_errorÚcycles)r°   r¤   rž   r±   rÔ   r    r¾   r¢   Úis_setrˆ   Úsortedr©   r®   r¥   r³   )r0   rÖ   ræ   s   &  r   rb   ÚHostedRoomRuntime.statusÇ   sÇ   € à××ÓØ—\‘\ˆFÜ! $×"5Ñ"5×"<Ñ"<Ó">Ó?ˆMàœ4 × <Ð <¨6¯?©?Ó+<Ó=¸zÈ4Ï:É:×K\ÑK\ÓK^Ø$ d×&=Ñ&=Ø·M ¨aÖ 0ÀtØ °ÄÄfÈTÏ\É\ÓFZÓ@[Ø¤¤v¨d×.AÑ.AÓ'BÓ!CØ˜d×.Ñ.°¸$¿,¹,ðH÷ ××Óús   •BDÂA!DÄD	c               ó$   € V ^8„  d   QhRRRRRR/# )r#   ÚidentityrC   Ú	cancel_idr%   r(   rd   r   )r*   s   "r   r+   r�   Õ   s"   € ÷ ':ñ ':Ð1ð ':Àð ':Èñ ':r   c          	     ó¶  € \        \        4       EF›  p\        P                  ! V P                  V4      pVR,          R8X  d   Vu # VR,          \        P
                  9   d"   \        P                  ! RVR,           R24      hVR,          R9   p V'       d   \        P                  M\        P                  ! V P                  WVR,          V P                  R7      pT'       gŠ   T P                  TP                  4      p Tej   T P                  T4      pT P                  Yv4      '       g0   T P                  YvT4      '       g*   T P!                  Yv4      '       d   T P#                  YbR7       T P)                  4        T'       d   Tu # \        P                  ! T P                  T4      u # 	  \        P                  ! V P                  V4      p
V
R,          R8X  d   V
# \        P                  ! R
V
R,           R24      h  \        P                  \        P                  3 d     EK  i ; i  \$         d   p	T P'                  R	T	 24        Rp	?	LäRp	?	ii ; i)zèPersist a stop intent, then commit cancellation after acknowledgement.

The worker transitions tasks concurrently, so the status read is only a routing
hint: a fast-path fence failure re-reads and re-routes instead of surfacing it.
rb   r   zcannot cancel task in state 'Ú'rv   )rð   ru   r   N©rð   zstop remains pending: zEcancel kept losing races with task transitions (last observed state 'z')>   ÚqueuedÚdeferred)ÚrangeÚ_CANCEL_ROUTE_RETRIESÚstateÚget_taskrŠ   ÚTERMINAL_STATUSESÚInvalidTaskTransitionErrorÚcancel_taskÚbegin_task_cancelr   ÚStaleTaskErrorÚ_binding_for_roomr]   Ú_ensure_leaseÚ_peer_stop_acknowledgedÚ_settle_stopping_completionÚ_interrupt_stopping_taskÚ_complete_cancelÚ	ExceptionÚ_record_errorrß   )r0   rï   rð   Ú_ÚbeforeÚdirectre   ÚbindingÚleaseÚexcÚfinals   &&$        r   ÚcancelÚHostedRoomRuntime.cancelÕ   s  € ô Ô,×-ˆAÜ—^’^ D§L¡L°(Ó;ˆFØ�hÕ ;Ô.Ø’Ø�hÕ¤5×#:Ñ#:Ô:Ü×6Ò6Ø3°F¸8Õ4DÐ3EÀQÐGóIð Ià˜HÕ%Ð)?Ñ?ˆFðß/5œ%×+Ò+¼5×;RÑ;RÐRØ—L‘L (Ø/5Ð6IÕ/JÐRV×R\ÑR\ô^�÷
 Ø×0Ñ0°×1AÑ1AÓB�ðGØÒ*Ø $× 2Ñ 2°7Ó ;˜Ø×7Ñ7¸×HÒHØ $× @Ñ @ÀÐRW× XÒ XØ $× =Ñ =¸g× NÒ NØ ×1Ñ1°&Ð1ÔNð �K‰KŒMß#�6ÒO¬¯ª¸¿¹ÀhÓ)OÒOñ5 .ô8 —’˜tŸ|™|¨XÓ6ˆØ��?˜kÔ)ØˆLÜ×.Ò.ð%Ø%*¨8¥_Ð$5°Rð9ó:ð 	:øô' ×4Ñ4´e×6JÑ6JÐKô Ûðûô !ô GØ×&Ñ&Ð)?À¸uÐ'E×FÑFûðGús,   ÂAHÄA-H/È%H,È+H,È/IÈ:IÉIc               ó    € V ^8„  d   QhRRRR/# )r#   rï   rC   r(   rd   r   )r*   s   "r   r+   r�   þ   s   € ÷ ^ñ ^Ð,>ð ^À>ñ ^r   c           	     óp  € \         P                  ! V P                  V4      pVR,          R9  d"   \         P                  ! RVR,           R24      hV P	                  VP
                  4      pVf   \         P                  ! R4      hV P                  V4      pVR,          R8X  d,   V P                  \         P                  W$VP
                  4      # V P                  W24      pVP                  e   V P                  W2WEP                  4      # VP                  R8X  d.   V P                  \         P                  W2VRVR,           2R	7      # VP                   '       d3   V P#                  VP
                  R
4       \         P                  ! R4      hV P                  \         P$                  W$VP
                  4      # )zDExplicitly retry one uncertain attempt under the current room lease.rb   rõ   zcannot retry task in state 'rò   zhosted room is unavailabler   úremote-cancel:rD   ró   Tz<cannot retry while the original task attempt is still active>   rõ   Úindeterminate)rø   rù   rŠ   rû   rÿ   r]   ÚRoomUnavailableErrorr   Ú_requeueÚrequeue_deferred_taskÚ_inspect_recovery_sessionrj   Ú_resolve_indeterminaterb   Ú_fencedÚ"resolve_indeterminate_cancellationrk   Ú_set_blockedÚrequeue_indeterminate_task)r0   rï   rB   r
  r  Ú
inspections   &&    r   Úretry_indeterminateÚ%HostedRoomRuntime.retry_indeterminateþ   s…  € ä�~Š~˜dŸl™l¨HÓ5ˆØ��>Ð!>Ô>Ü×2Ò2Ð5QÐRVÐW_ÕR`ÐQaÐabÐ3cÓdÐdØ×(Ñ(¨×)9Ñ)9Ó:ˆØŠ?Ü×,Ò,Ð-IÓJÐJØ×"Ñ" 7Ó+ˆØ��>˜ZÔ'Ø—=‘=¤×!<Ñ!<¸dÈ8×K[ÑK[Ó\Ð\ð ×3Ñ3°GÓBˆ
Ø×ÑÒ*Ø×.Ñ.¨w¸e×EXÑEXÓYÐYØ×Ñ Ô+Ø—<‘<Ü×8Ñ8¸'ÈØ*¨4Ð0FÕ+GÐ*HÐIð  ó Kð Kð ××ÐØ×Ñ˜h×.Ñ.°Ô5Ü×2Ò2ØNóPð Pà�}‰}œU×=Ñ=¸tÈH×L\ÑL\Ó]Ð]r   c               ó$   € V ^8„  d   QhRRRRRR/# )r#   r
  rZ   rB   rd   r(   r   )r*   s   "r   r+   r�     s"   € ÷ ñ Ð 1ð ¸ð ÈNñ r   c                	óD   € V P                   e   V P                  W4       V# r.   )r}   ©r0   r
  rB   s   &&&r   Ú_publishÚHostedRoomRuntime._publish  s!   € Ø× Ñ Ò,Ø×!Ñ! 'Ô0Øˆr   c               ó$   € V ^8„  d   QhRRRRRR/# )r#   r]   r%   Úblockedr    r(   rŽ   r   )r*   s   "r   r+   r�     s&   € ÷ [ñ [ Cð [°$ð [¸4ñ [r   c                	óÜ   € V P                   ;_uu_ 4        V'       d   V P                  P                  MV P                  P                  ! V4       R R R 4       R #   + '       g   i     R # ; ir.   )r°   r®   ÚaddÚdiscard)r0   r]   r&  s   &&&r   r  ÚHostedRoomRuntime._set_blocked  sE   € Ø××Óß(/ˆT× Ñ ×$Ò$°T×5HÑ5H×5PÑ5PÐPÐRYÔZ÷ ××Òús   •;AÁA+	ÚpublishTc               ó4   € V ^8„  d   QhRRRRRRRRR	R
RRRR/# )r#   ÚopúCallable[..., dict[str, Any]]r
  úHostedRoomBinding | NonerB   r4   r  ústate.DriverLeaser+  r    Úextrar   r(   rd   r   )r*   s   "r   r+   r�   !  sO   € ÷ ]ñ ]Ø/ð]Ø:Rð]àð]à(9ð]àGKð]à]`ð]ð 
ñ]r   c               ó²   € / \        V4      CRV P                  /CVCpV! V P                  VR,          V3/ VB pV'       d   Ve   V P                  W(4      # T# )zQRun one lease-fenced state transition on ``task``; ``extra`` may override fences.r   rï   )rw   r   rŠ   r#  )	r0   r-  r
  rB   r  r+  r1  Úkwargsre   s	   &&&&&$,  r   r  ÚHostedRoomRuntime._fenced!  s[   € ð
 A”G˜D“MÐ@ 7¨D¯J©JÑ@¸%Ð@ˆÙ�D—L‘L $ zÕ"2°EÑD¸VÑDˆß18¸WÒ=Pˆt�}‰}˜WÓ-Ð\ÐV\Ð\r   c          
     ó,   € V ^8„  d   QhRRRRRRRRR	R
/# )r#   Úrequeuer.  rB   r4   r  r0  r]   r%   r(   rd   r   )r*   s   "r   r+   r�   *  s4   € ÷ ñ Ø4ðØ<Mðà ðà+.ðà3Añr   c                	óp   € V P                  VR W#4      pV P                  VR4       V P                  4        V# )NF)r  r  rß   )r0   r6  rB   r  r]   Úretrieds   &&&&& r   r  ÚHostedRoomRuntime._requeue*  s4   € ð —,‘,˜w¨¨dÓ:ˆØ×Ñ˜' 5Ô)Ø�‰ŒØˆr   rð   c               ó$   € V ^8„  d   QhRRRRRR/# )r#   rB   r4   rð   rl   r(   rd   r   )r*   s   "r   r+   r�   2  s)   € ÷ Bñ BØ%ðBØ5?ðBØKYñBr   c               	ó–   € \         P                  ! V P                  VR ,          V P                  Vf
   VR,          MTVR,          R7      # )rï   rð   rv   ©r   rð   ru   )rø   Úcomplete_task_cancelrŠ   r   )r0   rB   rð   s   &&$r   r  Ú"HostedRoomRuntime._complete_cancel2  sC   € ä×)Ò)Ø�L‰L˜$˜zÕ*°$·*±*Ø+4Ò+<�d˜;Ö'À)Ø'+Ð,?Õ'@ôBð 	Br   c               ó0   € V ^8„  d   QhRRRRRRRRR	R
RR/# )r#   r
  rZ   rB   r4   r  r0  rj   ra   r+  r    r(   rd   r   )r*   s   "r   r+   r�   9  s<   € ÷  ñ  Ø(ð Ø0Að ØJ[ð à"ð à04ð à@Nñ r   c               	ó^   € V P                   ! \        P                  WV3R V/\        V4      B # ©r+  )r  rø   Úresolve_indeterminate_taskr   )r0   r
  rB   r  rj   r+  s   &&&&&$r   r  Ú(HostedRoomRuntime._resolve_indeterminate9  s7   € ð �|Š|Ü×,Ñ,¨g¸Uñ ØLSð ä�XÓñ ð 	 r   c               ó(   € V ^8„  d   QhRRRRRRRR/# ©	r#   r
  rZ   rB   r4   r  r0  r(   r    r   )r*   s   "r   r+   r�   @  s,   € ÷ 	ñ 	Ø(ð	Ø0Að	ØJ[ð	à	ñ	r   c                ó�   € V P                  WV4      '       d   R# V P                  W4      '       d   V P                  WV4       R# R# )zJTerminalize a stopping task from its receipt or an acknowledged interrupt.TF)r  r  Ú_complete_acknowledged_stop©r0   r
  rB   r  s   &&&&r   Ú_finish_stopÚHostedRoomRuntime._finish_stop@  sA   € ð ×+Ñ+¨G¸5×AÒAÙØ×(Ñ(¨×7Ò7Ø×,Ñ,¨W¸EÔBÙÙr   c               ó(   € V ^8„  d   QhRRRRRRRR/# )r#   Ú	transportr   r]   r%   r$   r(   rl   r   )r*   s   "r   r+   r�   K  s2   € ÷ Añ AØ+ðAØ69ðAØDGðAØLVñAr   c                óL   € V P                  WVRR7      pVf   R# \        V4      # )z¤Resume the canonical room session and return its runtime id (None when absent).

Probes must use the returned id, not the stored one: resume may hand back another.
F)r6   N)Ú_resolve_or_createÚ_session_id)r0   rL  r]   r$   Úsessions   &&&& r   Ú_resume_exactÚHostedRoomRuntime._resume_exactK  s/   € ð ×)Ñ)¨)¸gÈeÐ)ÓTˆØ’ˆtÐ@¬K¸Ó,@Ð@r   Ú	peer_onlyFc               ó(   € V ^8„  d   QhRRRRRRRR/# )	r#   r
  rZ   rB   r4   rS  r    r(   z8tuple[InternalSessionRPC | None, str | None, str | None]r   )r*   s   "r   r+   r�   T  s2   € ÷ 	[ñ 	[Ø(ð	[Ø0Að	[ØQUð	[à	Añ	[r   c               óÀ   € V P                  W4      pVe   V'       d   W@P                  J d   VRR3# VR,          R,          pWEV P                  WAP                  V4      3# )z‘Return ``(transport, profile, resumed session id)``; no id when the transport is
missing (or local under ``peer_only``) or the session is absent.NÚpayloadÚtarget_profile)Ú_transport_forrz   rQ  r]   )r0   r
  rB   rS  rL  r$   s   &&&$  r   Ú_open_sessionÚHostedRoomRuntime._open_sessionT  s^   € ð
 ×'Ñ'¨Ó6ˆ	ØÒ§¨y¿H¹HÓ/DØ˜d DÐ(Ð(Ø�y•/Ð"2Õ3ˆØ 4×#5Ñ#5°iÇÁÐRYÓ#ZÐZÐZr   c          
     ó,   € V ^8„  d   QhRRRRRRRRRR	/# )
r#   rL  r   r$   r%   r:   rB   r4   r(   ri   r   )r*   s   "r   r+   r�   `  s;   € ÷ Añ AØ%ðAØ03ðAØADðAØL]ðAà	 ñAr   c           
     	ó|   € \        V P                  ! R/ \        W4      B VR ,          \        VR,          4      4      # )rï   rD   r   )Ú_find_terminal_receiptrN   rq   rE   )rL  r$   r:   rB   s   &&&&r   Ú_terminal_from_historyÚ(HostedRoomRuntime._terminal_from_history_  s>   € ô &Ø×ÒÑA¤¨GÓ @ÑAØ�Õœc $Ð'=Õ">Ó?óAð 	Ar   c               ó$   € V ^8„  d   QhRRRRRR/# ©r#   r
  rZ   rB   r4   r(   r    r   )r*   s   "r   r+   r�   g  s)   € ÷ 
añ 
aÐ/@ð 
aÐHYð 
aÐ^bñ 
ar   c                óô  € V P                  WRR7      w  r4pVf   R# VP                  ! R	/ \        WE4      B p\        V4      '       * ;'       d«    \	        VP                  R4      ;'       g    R4      \        9   ;'       dx    \	        VP                  R4      ;'       g    R4      VR,          P                  8H  ;'       d8    \        VP                  R4      ;'       g    ^ 4      \        VR,          4      8H  # )
zJProbe a peer's exact durable terminal Stop receipt before reading history.T)rS  Frb   Ú Útask_idrï   rD   r   )	rY  rR   rq   Ú_info_activer%   ÚgetÚ_STOP_ACK_STATUSESrd  rE   )r0   r
  rB   rL  r$   r:   rR   s   &&&    r   r  Ú)HostedRoomRuntime._peer_stop_acknowledgedg  så   € à)-×);Ñ);¸GÐUYÐ);Ó)ZÑ&ˆ	˜JØÒÙØ�~Š~ÑA¤¨GÓ @ÑAˆä˜TÓ"Ô"÷ `ð `Ü�D—H‘H˜XÓ&×,Ð,¨"Ó-Ô1CÑC÷`ð `ä�D—H‘H˜YÓ'×-Ð-¨2Ó.°$°zÕ2B×2JÑ2JÑJ÷`ð `ô �D—H‘HÐ3Ó4×9Ð9¸Ó:¼cÀ$ÐG]ÕB^Ó>_Ñ_ð		ar   c               ó$   € V ^8„  d   QhRRRRRR/# ra  r   )r*   s   "r   r+   r�   s  s)   € ÷ Fñ FÐ0Að FÐIZð FÐ_cñ Fr   c                	óü  € V P                  W4      w  r4pVf   VR J;'       d    W0P                  J # VP                  ! R	/ \        WE4      B p\	        V4      '       g   R# \        WbR,          RR7      '       g   R# VP                  ! R	/ \        WE4      BRVR,          P                  /B pVR J;'       dG    VP                  R4      RJ ;'       g,    \        VP                  R4      ;'       g    R4      \        9   # )
NTrï   )Úrequire_exactFrU   r   rb   rc  r   )rY  rz   rR   rq   re  Ú_info_is_active_forrW   rd  rf  r%   rg  )r0   r
  rB   rL  r$   r:   rR   re   s   &&&     r   r  Ú*HostedRoomRuntime._interrupt_stopping_tasks  sý   € Ø)-×);Ñ);¸GÓ)JÑ&ˆ	˜JØÒð  DÐ(×BÐB¨Y¿(¹(Ð-BÐBØ�~Š~ÑA¤¨GÓ @ÑAˆÜ˜D×!Ò!ñ Ü" 4¨jÕ)9È×NÓNÙØ×$Ò$ñ [Ü˜'Ó.ñ[ØAEÀjÕAQ×AYÑAYò[ˆà˜TÐ!÷ Fð FØ�J‰J�}Ó%¨Ð-÷ Eð EÜ�6—:‘:˜hÓ'×-Ð-¨2Ó.Ô2DÑDð	Fr   c               ó(   € V ^8„  d   QhRRRRRRRR/# rE  r   )r*   s   "r   r+   r�   †  s,   € ÷ ñ Ø(ðØ0AðØJ[ðà	ñr   c                óÂ   € V P                  W4      w  rEpVf   R# V P                  WEWb4      pVf   R# V P                  ! \        P                  WV3/ \        V4      B  R# )zEPublish a terminal receipt that arrived before Stop was acknowledged.FT)rY  r^  r  rø   Úsettle_stopping_taskr   )r0   r
  rB   r  rL  r$   r:   Úreceipts   &&&&    r   r  Ú-HostedRoomRuntime._settle_stopping_completion†  s_   € ð *.×);Ñ);¸GÓ)JÑ&ˆ	˜JØÒÙØ×-Ñ-¨iÀ*ÓSˆØŠ?ÙØ�Š”U×/Ñ/°ÀÑYÌÐPWËÒYÙr   c               ó(   € V ^8„  d   QhRRRRRRRR/# )r#   rB   r4   r:   r%   rR   r(   rŽ   r   )r*   s   "r   r+   r�   “  s2   € ÷ Pñ PØ%ðPØ69ðPØARðPØW[ñPr   c               	ó6  € V P                   f   R # VP                  R4      ;'       g    VP                  R4      R rT\        V\        4      '       d–   VP                  R4      ;'       g    R Uu. uF  qfR9   g   K  VNK  	  pp/ VCRT;'       g    RR./CpRRRVR,          P                  R	\        VR	,          4      R
VP                  R
4      RVRVP                  R4      RV/pV P                  VR,          P                  \        V4      V4       R # u upi )NÚpending_approvalÚapprovalÚchoicesÚonceÚdenyÚkindrd  rï   rD   Úrun_idr:   Ú
request_idr   >   ry  rx  )r~   rf  r˜   r   rd  rE   r]   Ú
_member_id)	r0   rB   r:   rR   rv  ÚactionÚcrw  Úsafe_approvals	   &&$$     r   Ú_report_pending_actionÚ(HostedRoomRuntime._report_pending_action“  s  € à×ÑÒ&ÙØŸ8™8Ð$6Ó7×OÐO¸4¿8¹8ÀJÓ;OÐQU�&Ü�h¤×(Ò(Ø"*§,¡,¨yÓ"9×"?Ð"?¸RÐ"?ÓYÑ"?˜QÐHXÑCX—q�qÑ"?ˆGÐYØP˜xÐP¨°G×4OÐ4OÀÈÐ?OÑPˆMà˜
 I¨t°JÕ/?×/GÑ/GØ&¬¨DÐ1GÕ,HÓ(IØ˜$Ÿ(™( 8Ó,¨l¸JØ˜m×/Ñ/°Ó=¸zÈ=ð	ZˆFð
 	×Ñ˜D Õ,×4Ñ4´jÀÓ6FÈÖOùò Zs   Á/DÁ<Dc               ó$   € V ^8„  d   QhRRRRRR/# ©r#   r
  rZ   r  r0  r(   r    r   )r*   s   "r   r+   r�   ¢  s$   € ÷ ñ Ð->ð ÐGXð Ð]añ r   c                	ód  € V P                  VR 4       FZ  p V P                  V4      pV P                  W4      '       d   V P                  V4       K?  V P	                  WV4      '       g    R# K\  	  R#   \
         d2   pT P                  \        P                  TR7      4        Rp? R# Rp?ii ; i)rä   T©r  NF)	Ú_tasksÚ_renew_lease_if_neededr  r  rI  r  r  Ú_STOP_PENDINGr*   )r0   r
  r  rB   r  s   &&&  r   Ú_retry_stopping_tasksÚ'HostedRoomRuntime._retry_stopping_tasks¢  sŸ   € Ø—K‘K ¨Ö4ˆDð	Ø×3Ñ3°EÓ:�Ø×/Ñ/°×>Ò>Ø×)Ñ)¨$Ô/ÙØ×(Ñ(¨¸×>Ò>Úñ ?ñ 5ñ øô ô Ø×"Ñ"¤=×#7Ñ#7¸CÐ#7Ó#@ÔAÞûðús   —9A3ÁA3Á3B/Á>%B*Â*B/c               ó   € V ^8„  d   QhRR/# rº   r   )r*   s   "r   r+   r�   ±  s   € ÷ (ñ (˜dñ (r   c           	     	ó  €  V P                   P                  4       '       g‰   V P                  P                  4         V P	                  4        V P                  ;_uu_ 4        V ;P                  ^,          un        RRR4       V P                  P                  V P                  4       K¨    V P                  ;_uu_ 4        \        ;QJ d,    . R V P                  P                  4        4       F  NK  	  5M%! R V P                  P                  4        4       4      pRRR4       X'       g   M&V F  pVP                  V P                  4       K   	  K©  V P!                  4        R#   \
         d    pT P                  R T 24        Rp?EL>Rp?ii ; i  + '       g   i     EL!; i  + '       g   i     L’; i   T P                  ;_uu_ 4        \        ;QJ d,    . R T P                  P                  4        4       F  NK  	  5M%! R T P                  P                  4        4       4      pRRR4       M  + '       g   i     M; iX'       g   M&T F  pTP                  T P                  4       K   	  K½  T P!                  4        i ; i)zworker cycle failed: Nc              3  óT   "  € T F  qP                  4       '       g   K  Vx € K   	  R # 5ir.   rÊ   rË   s   & r   rÎ   Ú1HostedRoomRuntime._worker_loop.<locals>.<genexpr>À  s   é € Ð(`Ñ4O¨q×S]ÑS]×S_¯ªÓ4Oùs   ‚(ž
()r¢   rë   r£   r¿   Ú
_run_cycler  r  r°   r³   Úwaitr�   rž   r¦   rÔ   rÓ   r‚   Ú_release_idle_leases)r0   r  rØ   rÙ   s   &   r   rÁ   ÚHostedRoomRuntime._worker_loop±  sÅ  € ð	(Ø—j‘j×'Ñ'×)Ò)à—
‘
× Ñ Ô"ðFØ—O‘OÔ%ð ×&×&Ó&Ø—L’L AÕ%•L÷ 'à—
‘
—‘ × :Ñ :Ö;ð *ð Ø×&×&Ó&ß#(¤5Ñ(`°D×4FÑ4F×4MÑ4MÔ4OÓ(`§5¡5Ñ(`°D×4FÑ4F×4MÑ4MÔ4OÓ(`Ó#`�L÷ 'ç#ØÛ#/�KØ×$Ñ$ T×%FÑ%FÖGó $0à×%Ñ%Ö'øô !ô FØ×&Ñ&Ð)>¸s¸eÐ'D×EÒEûðFúç&×&Ð&ú÷
 '×&ûð Ø×&×&Ó&ß#(¤5Ñ(`°D×4FÑ4F×4MÑ4MÔ4OÓ(`§5¡5Ñ(`°D×4FÑ4F×4MÑ4MÔ4OÓ(`Ó#`�L÷ '×&×&Ð&úç#ØÛ#/�KØ×$Ñ$ T×%FÑ%FÖGó $0à×%Ñ%Õ'ús}   ‚F: ¢F: ½E& ÁF: Á!FÁ;/F: Ã AF'Å&FÅ1FÆF: ÆFÆF: ÆF$	Æ	F: Æ'F7	Æ:J	ÇAH6	È-	J	È6IÉJ	É8J	c               ó   € V ^8„  d   QhRR/# rº   r   )r*   s   "r   r+   r�   Ç  s   € ÷ ! ñ ! ˜Dñ ! r   c                	ó²  € V P                   ;_uu_ 4        V P                  pR R R 4       \        P                  ! 4       XJdW   \	        V P                  4       4       F7  pV P                  P                  4       '       d    R # V P                  V4       K9  	  R # V P                   ;_uu_ 4        V P                  P                  4        UUu/ uF  w  r4VP                  4       '       g   K  W4bK!  	  uppV n	        V P                  \        V P                  4      ,
          p\        V P                  4      pR R R 4       X^ 8:  d   R # \	        V P                  4       4      pV'       g   R # V P                  \        V4      ,          pV^,           \        V4      ,          V n        WxR  VR V ,            Fâ  pV P                  P                  4       '       g   V^ 8:  d    R # VP                   X9   d   K@  \        P"                  ! V P                  V3RVP                   R,           2RR7      p	V P                   ;_uu_ 4        W�P                  VP                   &   R R R 4       VP%                  VP                   4       V^,          pV	P'                  4        Kä  	  R #   + '       g   i     EL; iu uppi   + '       g   i     EL‡; i  + '       g   i     Lx; i)Nzhosted-room-:Né   NT)r¼   Úargsrµ   r½   )r°   r¤   r    Úcurrent_threadrž   rŸ   r¢   rë   Ú_run_room_oncer¦   r–   r¾   r…   Úlenr§   r²   r]   rÀ   r(  rÂ   )
r0   Ú
supervisorr
  r]   rÍ   Ú	availableÚactive_roomsr’   rÂ   rÙ   s
   &         r   r�  ÚHostedRoomRuntime._run_cycleÇ  s#  € Ø××ÓØŸ™ˆJ÷ ä×#Ò#Ó%¨ZÓ7Ü  ×!5Ñ!5Ó!7Ö8�Ø—:‘:×$Ñ$×&Ò&ÚØ×#Ñ# GÖ,ñ 9ñ Ø××Óà-1×-?Ñ-?×-EÑ-EÔ-Gô"YÙ-G™z˜wÈ1Ï:É:Ï<”
�’
Ñ-Gò"YˆDÔà×1Ñ1´C¸×8JÑ8JÓ4KÕKˆIÜ˜t×1Ñ1Ó2ˆL÷	 ð
 ˜Œ>ÙÜ˜×-Ñ-Ó/Ó0ˆßÙØ×*Ñ*¬S°«]Õ:ˆØ&+¨a¥i´3°x³=Õ%@ˆÔ"Ø Ð'¨(°6°EÐ*:×:Ð:ˆGØ�z‰z× Ñ ×"Ò" i°1¤nÚØ�‰ ,Ô.ÙÜ#×*Ò*Ø×*Ñ*°'°Ø# G§O¡O°CÕ$8Ð#9Ð:À4ôIˆKð ×"×"Ó"Ø6A×"Ñ" 7§?¡?Ñ3÷ #à×Ñ˜WŸ_™_Ô-Ø˜�NˆIØ×ÑÖó ;÷) ×Ðüó"Y÷ ×Ðú÷( #×"ús<   •JÂ-J2ÃJ,
Ã*J,
Ã0AJ2È=KÊJ)	Ê,J2Ê2K	ËKc               ó    € V ^8„  d   QhRRRR/# ©r#   r
  rZ   r(   rŽ   r   )r*   s   "r   r+   r�   ê  s   € ÷ ñ Ð&7ð ¸Dñ r   c           	     	óJ  €  V P                  V4       V P                  ;_uu_ 4        V P                  P                  VP                  4      \        P                  ! 4       J d'   V P                  P!                  VP                  R4       VP                  V P"                  9   pV P"                  P%                  VP                  4       RRR4       X'       d   V P'                  4        R# R#   \        P                   d     Lð\         d”   p\	        T\        P
                  \        P                  34      '       d8   T P                  TP                  4       T P                  TP                  R 4       T P                  RTP                   RT 24        Rp?ELˆRp?ii ; i  + '       g   i     Lã; i  T P                  ;_uu_ 4        T P                  P                  TP                  4      \        P                  ! 4       J d'   T P                  P!                  TP                  R4       TP                  T P"                  9   pT P"                  P%                  TP                  4       RRR4       M  + '       g   i     M; iX'       d   T P'                  4        i i ; i)Fzroom z: N)Ú_process_roomrø   ÚLeaseHeldErrorr  r˜   r  ÚStaleLeaseErrorÚ_drop_leaser]   r  r  r°   r¦   rf  r    r˜  Úpopr¨   r)  rß   )r0   r
  r  Úshould_wakes   &&  r   r™  Ú HostedRoomRuntime._run_room_onceê  sÖ  € ð	Ø×Ñ˜wÔ'ð ×"×"Ó"Ø×%Ñ%×)Ñ)¨'¯/©/Ó:¼i×>VÒ>VÓ>XÓXØ×&Ñ&×*Ñ*¨7¯?©?¸DÔAØ%Ÿo™o°×1OÑ1OÑO�Ø×.Ñ.×6Ñ6°w·±ÔG÷	 #÷
 Ø—‘–ñ øô ×#Ñ#ô 	ÙÜô 	AÜ˜#¤× :Ñ :¼E×<QÑ<QÐR×SÒSØ× Ñ  §¡Ô1Ø×!Ñ! '§/¡/°5Ô9Ø×Ñ  w§¡Ð&7°r¸#¸Ð?×@Ò@ûð		Aú÷ #×"û�×"×"Ó"Ø×%Ñ%×)Ñ)¨'¯/©/Ó:¼i×>VÒ>VÓ>XÓXØ×&Ñ&×*Ñ*¨7¯?©?¸DÔAØ%Ÿo™o°×1OÑ1OÑO�Ø×.Ñ.×6Ñ6°w·±ÔG÷	 #×"×"Ð"ú÷
 Ø—‘•ð úsg   ‚C, §B!F#Ã,F ÄF6 ÄF ÄF ÄBFÆF6 ÆF Æ F6 Æ#F3	Æ6J"ÇB!I5	É,	J"É5JÊ J"ÊJ"c               ó    € V ^8„  d   QhRRRR/# r   r   )r*   s   "r   r+   r�   ý  s   € ÷ ñ Ð%6ð ¸4ñ r   c           	     	ó   € V P                   e   V P                  V4       V P                  V4       V P                  P                  VP                  4      pVeV   V P                  VR4      '       d   V P                  4       V8  d   R # V P                  P                  VP                  R 4       V P                  V4      pVP                  VP                  3V P                  9  d^   \        P                  ! V P                  W0P                  R7       V P                  P                  VP                  VP                  34       V P                  W4      '       d   V P!                  VP                  R4       R # V P#                  W4      '       d   R # V P                  VR4       EF%  pV P$                  P                  VR,          P                  \'        V4      34      pV P(                  P+                  4       '       g!   Ve    V P                  4       VR,          8  d    R # V P-                  V4      p\        P.                  ! V P                  VR,          VVR,          V P                  R7      pV P1                  WV4       \        P2                  ! V P                  VR,          4      pVR	,          \        P4                  9  g   EK%   R # 	  R # )
Nrã   ©r   Trô   rï   Únext_attempt_atrv   )ru   r   rb   )r|   Ú_inspect_abandoned_attemptsr¬   rf  r]   r‡  r   r¦  r   Úlease_generationrª   rø   Úrecover_roomrŠ   r(  rŠ  r  Ú_reconcile_indeterminater­   r}  r¢   rë   rˆ  Ú
start_taskÚ_execute_attemptrù   rú   )r0   r
  Údeferred_untilr  rB   ÚretryÚattemptÚcurrents   &&      r   r¢  ÚHostedRoomRuntime._process_roomý  s  € Ø×ÑÒ(Ø×Ñ˜gÔ&Ø×(Ñ(¨Ô1Ø×.Ñ.×2Ñ2°7·?±?ÓCˆØÒ%Ø�{‰{˜7 I×.Ò.°4·:±:³<À.Ô3PÙØ×!Ñ!×%Ñ% g§o¡o°tÔ<Ø×"Ñ" 7Ó+ˆØ�M‰M˜5×1Ñ1Ð2¸$×:PÑ:PÔPÜ×Ò˜tŸ|™|¨U¿*¹*ÕEØ×"Ñ"×&Ñ&¨¯©°u×7MÑ7MÐ'NÔOØ×%Ñ% g×5Ò5Ø×Ñ˜gŸo™o¨tÔ4ÙØ×(Ñ(¨×8Ò8ÙØ—K‘K ¨×2ˆDØ×3Ñ3×7Ñ7Ø�jÕ!×)Ñ)¬:°dÓ+;Ð<ó>ˆEà�z‰z× Ñ ×"Ò"ØÒ%¨$¯*©*«,¸Ð?PÕ9QÔ*QÚØ×/Ñ/°Ó6ˆEÜ×&Ò&Ø—‘˜d :Õ.°Ø+/Ð0CÕ+DÈDÏJÉJôXˆGð ×!Ñ! '°Ô9Ü—n’n T§\¡\°4¸
Õ3CÓDˆGØ�xÕ ¬×(?Ñ(?×?Úó 3r   c               ó    € V ^8„  d   QhRRRR/# )r#   rB   r4   r(   r�   r   )r*   s   "r   r+   r�     s   € ÷ ñ Ð->ð À5ñ r   c                	óH  € VR ,          P                   \        V4      3pV P                  P                  V4      pV P                  V P
                  rTVf   TM"\        V\        WCR,          ^,          4      4      pRVRV P                  4       V,           /V P                  V&   V# )rï   Údelayr¬  )	r]   r}  r­   rf  r†   r‡   ÚminrÒ   r   )r0   rB   ÚkeyÚpreviousÚloÚhirº  s   &&     r   Ú_defer_unavailable_routeÚ*HostedRoomRuntime._defer_unavailable_route  s•   € Ø�JÕ×'Ñ'¬°DÓ)9Ð:ˆØ×2Ñ2×6Ñ6°sÓ;ˆØ×3Ñ3°T×5WÑ5WˆBØÒ&‘¬C°´C¸ÀWÕ<MÐPQÕ<QÓ4RÓ,Sˆà�UÐ-¨t¯z©z«|¸eÕ/Cð0Eˆ×'Ñ'¨Ñ,àˆr   c               ó    € V ^8„  d   QhRRRR/# )r#   r
  rZ   r(   r0  r   )r*   s   "r   r+   r�   (  s   € ÷ ñ Ð%6ð Ð;Lñ r   c           
     	ó   € V P                   ;_uu_ 4        V P                  P                  VP                  4      pR R R 4       Xe    V P	                  V4      # \
        P                  ! V P                  VP                  VP                  VP                  V P                  V P                  V P                  R7      pV P                   ;_uu_ 4        W0P                  VP                  &   V P                   Uu0 uF  qD^ ,          VP                  8w  g   K  VkK   	  upV n        R R R 4       V#   + '       g   i     Lú; i  \
        P                   d     T P                  TP                  4        ELi ; iu upi   + '       g   i     T# ; i)N)r]   r^   r_   rˆ   Úttl_secondsr   )r°   r©   rf  r]   rˆ  rø   r¤  r¥  Úacquire_leaserŠ   r^   r_   rˆ   r€   r   rª   )r0   r
  r¶  r  Úks   &&   r   r   ÚHostedRoomRuntime._ensure_lease(  s0  € Ø××ÓØ—l‘l×&Ñ& w§¡Ó7ˆG÷ àÒð2Ø×2Ñ2°7Ó;Ð;ô ×#Ò#Ø�L‰L '§/¡/¸g×>PÑ>PØ#×3Ñ3È×H_ÑH_Ø×.Ñ.°d·j±jôBˆð ××ÓØ,1�L‰L˜Ÿ™Ñ)Ø15×1GÒ1GÓ%cÑ1G¨AÈQÍ4ÐSZ×SbÑSbÑKb§a aÑ1GÑ%cˆDÔ"÷ ð ˆ÷ ×ûô
 ×(Ñ(ô 2Ø× Ñ  §¡×1ð2üò &d÷ Öð ˆúsA   •&D-ÁE  Ã'E<Ã7E7ÄE7ÄE<Ä-D=	Å 0E4Å3E4Å7E<Å<F	Úforcec               ó$   € V ^8„  d   QhRRRRRR/# )r#   r  r0  rÈ  r    r(   r   )r*   s   "r   r+   r�   9  s$   € ÷ ñ Ø&ðØ26ðØCTñr   c               	óˆ  € V'       g:   V P                  4       VP                  V P                  ^,          ,
          8  d   V# \        P                  ! V P
                  WP                  V P                   R7      pV P                  ;_uu_ 4        W0P                  VP                  &   RRR4       V#   + '       g   i     T# ; i)r#   )rÄ  r   N)	r   Ú
expires_atr€   rø   Úrenew_leaserŠ   r°   r©   r]   )r0   r  rÈ  Úreneweds   &&$ r   rˆ  Ú(HostedRoomRuntime._renew_lease_if_needed9  sˆ   € ç˜Ÿ™›¨×(8Ñ(8¸D×<RÑ<RÐUVÕ<VÕ(WÔWØˆLÜ×#Ò#Ø�L‰L˜%×-CÑ-CÈ4Ï:É:ôWˆà××ÓØ*1�L‰L˜Ÿ™Ñ'÷ àˆ÷ Öàˆús   ÂB0Â0C	c               ó    € V ^8„  d   QhRRRR/# )r#   r]   r%   r(   rŽ   r   )r*   s   "r   r+   r�   C  s   € ÷ ,ñ , 3ð ,¨4ñ ,r   c                	ó    € V P                   ;_uu_ 4        V P                  P                  VR 4       R R R 4       R #   + '       g   i     R # ; ir.   )r°   r©   r¦  ©r0   r]   s   &&r   r¥  ÚHostedRoomRuntime._drop_leaseC  s1   € Ø××ÓØ�L‰L×Ñ˜W dÔ+÷ ××Òús	   •<¼A	c               ó   € V ^8„  d   QhRR/# rº   r   )r*   s   "r   r+   r�   G  s   € ÷ *ñ * dñ *r   c           	     	óT  € \        V P                  P                  4       4       Fl  w  r\        \        P
                  4      ;_uu_ 4        \        P                  ! V P                  W P                  R 7       V P                  V4       RRR4       Kn  	  R#   + '       g   i     Kƒ  ; i)r«  N)
rž   r©   r–   r   rø   ÚDriverStateErrorÚrelease_leaserŠ   r   r¥  )r0   r]   r  s   &  r   r’  Ú&HostedRoomRuntime._release_idle_leasesG  si   € Ü# D§L¡L×$6Ñ$6Ó$8Ö9‰NˆGÜœ%×0Ñ0×1Õ1Ü×#Ò# D§L¡L°%¿z¹zÕJØ× Ñ  Ô)÷ 2Ñ1ó :ß1×1Ð1ús   Á
>BÂB'c               ó(   € V ^8„  d   QhRRRRRRRR/# )	r#   r
  rZ   rB   r4   rµ  ústate.TaskAttemptr(   rŽ   r   )r*   s   "r   r+   r�   N  s8   € ÷ CDñ CDØ(ðCDØ0AðCDØL]ðCDà	ñCDr   c                	ó  a aa€ VR ,          R,          RrTVR ,          P                  R4      pS P                  ;_uu_ 4        SP                  S P                  SP                  &   RRR4        S P                  SV4      pV'       d   \        VRR4      '       g   \        R4      hS P                  V4      ;_uu_ 4        S P                  WtSP                  4      pR\        V4      r•\        P                  ! 4       S P                  ,           p
VP                  ! R/ \        WI4      BRVR ,          R,          R	SP                  R
SP                   RVR\#        V4      RVVV 3R l/B  S P$                  P'                  VR,          P                  \#        V4      3R4       S P)                  SWISWzR7      pVft    RRR4       S P                  ;_uu_ 4        S P                  P'                  SP                  R4       S P*                  P-                  SP                  4       RRR4       R# \.        P0                  ! S P2                  S3/ \5        V4      BRS P6                  /B  RRR4       S P                  ;_uu_ 4        S P                  P'                  SP                  R4       S P*                  P-                  SP                  4       RRR4       R#   + '       g   i     EL{; i  + '       g   i     R# ; i  + '       g   i     L¢; i  \.        P8                  \.        P:                  3 d<   pS P=                  SP                  4       S P?                  SRT 24        Rp?EL Rp?i\@         Edr   p\        TRR4      R8X  d   RMRp\B        PE                  RSP                  PF                  T4       T'       d×   \I        \        TRR4      4      '       d»    \.        PJ                  ! S P2                  SS P6                  R7       S PM                  T4      pS P?                  SRTR R24        Rp?ELÐ  \.        P8                  \.        P:                  3 d7   pS PO                  SS4       S P?                  SRT 24        Rp? Rp?EL&Rp?ii ; iT'       d.   S PO                  SS4       S P?                  SRT 24        Rp?ELcS PQ                  ST4        Rp?EL{Rp?ii ; i  + '       g   i     R# ; i  S P                  ;_uu_ 4        S P                  P'                  SP                  R4       S P*                  P-                  SP                  4       RRR4       i   + '       g   i     i ; i; i)rV  rW  Fr?   Nr!   zQattachments_unsupported_on_route: this member's route cannot carry attached filesTrA   rB   rD   rG   rF   c                ó*   <€ SP                  SSV 4      # r.   )Ú_on_terminal)rq  rµ  r
  r0   s   &€€€r   r“   Ú4HostedRoomRuntime._execute_attempt.<locals>.<lambda>j  s   ø€ °×0AÑ0AÀ'È7ÐT[Ô0\r   rï   )r$   r:   rµ  rL  Údeadline_monotonicr   zfenced: ÚreasonÚrequest_too_largeÚattempt_failedzhosted room task %s: %sÚnot_admittedr«  z&was not admitted; queued for retry in ÚgÚsz#not-admitted proof lost its fence: z!observation failed after submit: r   ))rf  r°   rï   r±   r]   rX  Úgetattrr   rŒ   rN  rO  rÐ   rÑ   rƒ   rI   rq   rD   r}  r­   r¦  Ú_wait_for_terminalr¨   r(  rø   Úsettle_taskrŠ   r   r   r¤  rþ   r¥  Ú_record_task_errorr  ÚloggerÚwarningrd  r    Úrequeue_not_admitted_taskrÀ  Ú_mark_ambiguousÚ_settle_failure_if_current)r0   r
  rB   rµ  r$   Úsubmit_attemptedr?   rL  rP  r:   rÞ  rq  r  rß  rº  Ú	fence_excs   ff&f            r   r²  Ú"HostedRoomRuntime._execute_attemptN  s›  ú€ ð %)¨¥OÐ4DÕ$EÀuÐ!Ø˜9•o×)Ñ)¨-Ó8ˆØ××ÓØ3:×3CÑ3CˆD×Ñ §¡Ñ0÷ ð<	Dð ×+Ñ+¨G°TÓ:ˆIß¤7¨9Ð6KÈU×#SÒ#Sô 2ð%ó&ð &ð —‘ ×(Õ(Ø×1Ñ1°)ÀgÇoÁoÓV�ð 04´[ÀÓ5I *Ü%)§^¢^Ó%5¸×8QÑ8QÕ%QÐ"Ø× Ò ñ ^Ü! 'Ó6ñ^Ø?CÀI½ÈxÕ?Xð^à ×)Ñ)ð^à@G×@\Ñ@\ð^ð !,ð^ô )¨Ó.ð	^ö
 !]ó^ð ×/Ñ/×3Ñ3Ø˜*Õ%×-Ñ-¬z¸$Ó/?Ð@À$ôHà×1Ñ1Ø WÈWØ'ð 2ó P�ð ’?Ø÷% )ðZ ×"×"Ó"Ø×#Ñ#×'Ñ'¨¯©¸Ô>ð ×.Ñ.×2Ñ2°7·?±?ÔC÷ #Ñ"ô5 ×!Ò! $§,¡,°Ñ]¼6À'»?Ñ]ÐRV×R\ÑR\Ó]÷' )ðZ ×"×"Ó"Ø×#Ñ#×'Ñ'¨¯©¸Ô>ð ×.Ñ.×2Ñ2°7·?±?ÔC÷ #Ñ"÷s ×Ðú÷r #×"Ð"ú÷[ )×(ûô( ×%Ñ%¤u×';Ñ';Ð<ô 	?Ø×Ñ˜WŸ_™_Ô-Ø×#Ñ# G¨x¸°uÐ-=×>Ò>ûÜõ 	>ô -4°C¸À4Ó,HÐL_Ô,_Ñ(ÐeuˆFÜ�N‰NÐ4°g×6FÑ6F×6NÑ6NÐPVÔWß¤D¬°°nÀeÓ)L×$MÒ$Mð	VÜ×3Ò3°D·L±LÀ'ÐQU×Q[ÑQ[Õ\ð !×9Ñ9¸$Ó?�EØ×+Ñ+ØÐ#IÈ%ÐPQÈÐRSÐ!T÷Vò Vøô ×-Ñ-¬u×/CÑ/CÐDô TØ×(Ñ(¨°'Ô:Ø×+Ñ+ØÐ#FÀyÀkÐ!R÷Tö TûðTú÷ "Ø×$Ñ$ W¨gÔ6Ø×'Ñ'¨Ð3TÐUXÐTYÐ1Z×[Ò[à×/Ñ/°¸×=Ò=ûð)	>ú÷, #×"Ð"û�×"×"Ó"Ø×#Ñ#×'Ñ'¨¯©¸Ô>ð ×.Ñ.×2Ñ2°7·?±?ÔC÷ #×"×"Ð"ýs  Á$KÁ.AL Â?C;K?Æ:L ÇAK+È,9K?É%L ÊAS0ËK(	Ë+K<	Ë?L	Ì
L ÌT ÌL Ì%S-Ì70M-Í'T Í-S-Í;S-Í<AS(ÏS(Ï"-P=Ð(S(Ð7T Ð=%RÑ"'RÒ	S(ÒT ÒRÒ
S(Ò#'S(Ó
T ÓS(Ó"T Ó(S-Ó-T Ó0T	ÔVÔAU.	Õ%	VÕ.U>Õ9Vc               ó$   € V ^8„  d   QhRRRRRR/# )r#   r
  rZ   rµ  rÙ  r(   rŽ   r   )r*   s   "r   r+   r�   “  s)   € ÷ Jñ JÐ'8ð JÐCTð JÐY]ñ Jr   c                	ó–   € V P                  VP                  4       VP                  P                  V P                  VP                  &   R # r.   )r¥  r]   r  rË  r¬   )r0   r
  rµ  s   &&&r   rì  Ú!HostedRoomRuntime._mark_ambiguous“  s2   € Ø×Ñ˜Ÿ™Ô)Ø18·±×1IÑ1Iˆ×Ñ˜gŸo™oÓ.r   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	r#   r
  rZ   rµ  rÙ  rq  r4   r(   rŽ   r   )r*   s   "r   r+   r�   —  s,   € ÷ !ñ !Ø(ð!Ø3Dð!ØO`ð!à	ñ!r   c           
     ó:  € VP                  R4      pVR8X  d   V P                  4        R# \        VR8X  d   RMRVP                  R4      ;'       g'    RVP                  P                   RVP
                   2\        V4      R	7      p V P                  V\        P                  ! V P                  V3/ \        V4      BR
V P                  /B 4       T P                  4        R#   \        P                   dÏ    \        \        P                  \        P                  4      ;_uu_ 4        \        P                   ! T P                  TP                  4      pTR,          R8X  dE   T P"                  ! \        P$                  YTP&                  3/ \        T4      BRTP
                  /B  RRR4        Kà    + '       g   i      Lñ; i\        P                   d     EL\        P(                   d*   pT P+                  T\-        RT 24      4        Rp?ELCRp?ii ; i)z?Durably commit one in-process terminal receipt for ``attempt``.rb   r   NÚsettledÚfailedrc   úreply:Ú:©rb   rc   re   r   rä   rt   z(terminal result could not be committed: )rf  rß   ra   rï   rd  rD   Ú_bounded_terminal_resultr#  rø   rç  rŠ   r   r   rþ   r   r¤  rù   r  rp  r  rÕ  rí  ÚRuntimeError)r0   r
  rµ  rq  rb   rj   r¶  r  s   &&&&    r   rÜ  ÚHostedRoomRuntime._on_terminal—  s¿  € ð —‘˜XÓ&ˆØ�[Ô Ø�K‰KŒMÙÜ#Ø &¨)Ô 3‘9¸Ø!Ÿ+™+ oÓ6÷ Rð RØ˜×(Ñ(×0Ñ0Ð1°°7×3OÑ3OÐ2PÐQÜ+¨GÓ4ô	6ˆð
	YØ�M‰MØÜ×!Ò! $§,¡,°Ñ^¼6À(Ó;KÑ^ÐSW×S]ÑS]Ò^ô`ð& 	�‰Žøô! ×#Ñ#ô 	TÜœ%×/Ñ/´×1EÑ1E×FÕFÜŸ.š.¨¯©°w×7GÑ7GÓH�Ø˜8Õ$¨
Ô2Ø—L’LÜ×2Ñ2°GÀgÇmÁmñTä  Ó*ñTð 7>×6RÑ6RóT÷ G×F×FÓFúô ×$Ñ$ô 	ò Ü×%Ñ%ô 	Yà×+Ñ+ØœÐ(PÐQTÐPUÐ&VÓW÷Yò Yûð	YúsK   Â	A	C$ Ã$AHÄ)A>F2Æ'HÆ2GÆ=HÇHÇHÇHÇ0HÇ1HÈHc               ó4   € V ^8„  d   QhRRRRRRRRRR	R
RRR/# )r#   r
  rZ   r$   r%   r:   rµ  rÙ  rL  r   rÞ  r�   r(   ri   r   )r*   s   "r   r+   r�   º  sF   € ÷ ñ Ø(ðØ69ðØGJðà"ðà/AðàW\ðð 
!ñr   c               	óT  € VP                   pV P                  P                  4       '       Eg½   \        P                  ! V P
                  VP                  4      pVR ,          \        P                  9   d   R# VR ,          R8X  do    V P                  V4      pV P                  WV4      '       d   R#  V P                  P                  V P                   4       V P                  P#                  4        Kæ  \$        P&                  ! 4       V8¼  d   V P)                  WV4       R# V P                  V4      pV P+                  WRW84      p
V
e   V
# VP,                  ! R/ \/        W#4      B pV P1                  WƒVR7       \3        RV\$        P&                  ! 4       ,
          4      pV P                  P                  \5        V P                   V4      4       V P                  P#                  4        EKÝ  R#   \         d1   p	T P                  \        P                  T	R7      4        Rp	?	ELpRp	?	ii ; i)rb   Nrä   r†  ©r:   rR   rÈ   r   )r  r¢   rë   rø   rù   rŠ   rï   rú   rˆ  rI  r  r  r‰  r*   r£   r‘  r‚   r¿   rÐ   rÑ   Ú_expire_attempt_deadliner^  rR   rq   r�  rÒ   r»  )r0   r
  r$   r:   rµ  rL  rÞ  r  rB   r  rq  rR   Ú	remainings   &&$$$$$      r   ræ  Ú$HostedRoomRuntime._wait_for_terminalº  s¬  € ð —‘ˆØ—*‘*×#Ñ#×%Ó%Ü—>’> $§,¡,°×0@Ñ0@ÓAˆDØ�H�~¤×!8Ñ!8Ô8ÙØ�H�~ Ô+ðFØ ×7Ñ7¸Ó>�EØ×(Ñ(¨¸×>Ò>Ù#ð ?ð —
‘
—‘ × AÑ AÔBØ—
‘
× Ñ Ô"ÙÜ�~Š~ÓÐ#5Ô5Ø×-Ñ-¨g¸UÔCÙØ×/Ñ/°Ó6ˆEØ×1Ñ1°)ÀjÓWˆGØÒ"Ø�Ø—>’>ÑE¤K°Ó$DÑEˆDØ×'Ñ'¨È$Ð'ÔOÜ˜CÐ!3´d·n²nÓ6FÕ!FÓGˆIØ�J‰J�O‰OœC × AÑ AÀ9ÓMÔNØ�J‰J×Ñ×Ùøô# !ô FØ×&Ñ&¤}×';Ñ';ÀÐ';Ó'D×EÒEûðFús   Â)G, Ç,H'Ç7%H"È"H'c               ó(   € V ^8„  d   QhRRRRRRRR/# )	r#   r
  rZ   rB   r4   r  r0  r(   rd   r   )r*   s   "r   r+   r�   Û  s,   € ÷ ?ñ ?Ø(ð?Ø0Að?ØJ[ð?à	ñ?r   c                ó&  € \        VP                  R4      ;'       g    R4      P                  R4      '       g   V P                  V4      # V P	                  \
        P                  WVR\        VR,          4       2RRRRR	R
V P                  /R7      # )zMTerminalize an acknowledged Stop: deadline stops publish an explicit failure.rð   rc  ú	deadline:rD   r÷  ÚerrorzHThis Group Chat turn exceeded its configured time limit and was stopped.Úreason_codeÚturn_deadline_exceededÚtimeout_seconds)rc   rb   re   )	r%   rf  Ú
startswithr  r  rø   rp  rE   rƒ   rH  s   &&&&r   rG  Ú-HostedRoomRuntime._complete_acknowledged_stopÛ  s”   € ô �4—8‘8˜KÓ(×.Ð.¨BÓ/×:Ñ:¸;×GÒGØ×(Ñ(¨Ó.Ð.Ø�|‰|Ü×&Ñ&¨°uØ%¤c¨$Ð/EÕ*FÓ&GÐ%HÐIÐRZàÐcØÐ7Ø! 4×#<Ñ#<ð>ð ó ?ð 	?r   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	r#   r
  rZ   rB   r4   r  r0  r(   rŽ   r   )r*   s   "r   r+   r�   é  s2   € ÷ `ñ `Ø(ð`Ø0Að`ØJ[ð`à	ñ`r   c           
     ó  € VR,          R8X  d[   \         P                  ! V P                  VR,          V P                  R\	        VR,          4       2\	        VR,          4      R7      pMVR,          R8w  d   R	# \        VP                  R
4      ;'       g    R4      P                  R4      '       g   R	# V P                  VRR7      pV P                  WV4      '       g)   V P                  RVR,          P                   R24       R	# R	# )z?Fence, stop, and terminalize one exact attempt at its deadline.rb   rã   rï   r  rD   rv   r<  rä   Nrð   rc  T)rÈ  útask z, exceeded its deadline; stop remains pending)rø   rý   rŠ   r   rE   r%   rf  r  rˆ  rI  r  rd  rH  s   &&&&r   r  Ú*HostedRoomRuntime._expire_attempt_deadlineé  sé   € ð ��>˜YÔ&Ü×*Ò*Ø—‘˜d :Õ.°d·j±jØ%¤c¨$Ð/EÕ*FÓ&GÐ%HÐIÜ+.¨tÐ4GÕ/HÓ+IôK‰Dð �(�^˜zÔ)Ùä�4—8‘8˜KÓ(×.Ð.¨BÓ/×:Ñ:¸;×GÒGÙØ×+Ñ+¨E¸Ð+Ó>ˆØ× Ñ  °×6Ò6Ø×ÑØ˜˜ZÕ(×0Ñ0Ð1Ð1]Ð^ö`ñ 7r   c               ó    € V ^8„  d   QhRRRR/# r   r   )r*   s   "r   r+   r�   ý  s   € ÷ Uñ UÐ3Dð UÈñ Ur   c                	ó–  € V P                  VR 4       F²  pVR,          V P                  8X  d   K  V P                  W4      V P                  J d   V P	                  V4      MV P                  W4      pVP                  e   V P                  WVP                  4       KŠ  VP                  '       g   Kž  \        P                  ! R4      h	  R# )rã   Úrun_process_generationNz&recovered session turn is still active)r‡  rˆ   rX  rz   Ú_inspect_local_recovery_sessionr  rj   Ú_harvest_previous_attemptrk   rø   r£  )r0   r
  rB   r  s   &&  r   r­  Ú-HostedRoomRuntime._inspect_abandoned_attemptsý  s¬   € Ø—K‘K ¨Ö3ˆDØÐ,Õ-°×1HÑ1HÔHÙð ×&Ñ& wÓ5¸¿¹ÓAð ×4Ñ4°TÔ:à×3Ñ3°GÓBð ð ×"Ñ"Ò.Ø×.Ñ.¨w¸j×>QÑ>QÖRØ×"×"Ò"ä×*Ò*Ð+SÓTÐTó 4r   c          
     ó,   € V ^8„  d   QhRRRRRRRRR	R
/# )r#   rL  r   rB   r4   r:   r%   Úread_historyr    r(   rh   r   )r*   s   "r   r+   r�     s4   € ÷ :ñ :Ø+ð:Ø3Dð:ØRUð:àð:à"5ñ:r   c          	     óJ  € VR,          R,          pV'       d   V P                  WW24      MRpVP                  ! R	/ \        WS4      B pV P                  W#VR7       \	        T\        WrR,          4      \        VP                  R4      ;'       g    R4      ;'       g    RR7      # )
zSProbe one resolved session: optional terminal receipt from history, then live info.rV  rW  Nr   rï   rb   rc  rm   r   )r^  rR   rq   r�  rh   rl  r%   rf  )r0   rL  rB   r:   r  r$   rq  rR   s   &&&&$   r   Ú_inspect_sessionÚ"HostedRoomRuntime._inspect_session  s›   € ð �y•/Ð"2Õ3ˆ÷ ð ×'Ñ'¨	¸JÔMØ!%ð 	ð �~Š~ÑA¤¨GÓ @ÑAˆØ×#Ñ# DÀdÐ#ÔKÜ"ØÔ%8¸ÀJÕ?OÓ%PÜ�t—x‘x Ó)×/Ð/¨RÓ0×8Ð8°Dô:ð 	:r   c               ó$   € V ^8„  d   QhRRRRRR/# )r#   r
  rZ   rB   r4   r(   rh   r   )r*   s   "r   r+   r�     s)   € ÷ Yñ YØ(ðYØ0AðYØFYñYr   c           	     	óH  € VR ,          R,          V P                  W4      rCV P                  V4      ;_uu_ 4        V P                  WBR,          P                  V4      pVf   \        uuRRR4       # V P                  WBVRR7      uuRRR4       #   + '       g   i     R# ; i)rV  rW  rï   NT©r  )rX  rŒ   rQ  r]   Ú_NO_INSPECTIONr  )r0   r
  rB   r$   rL  r:   s   &&&   r   r  Ú+HostedRoomRuntime._inspect_recovery_session  s„   € à! )�_Ð-=Õ>À×@SÑ@SÐT[Ó@b�Ø�^‰^˜G×$Õ$Ø×+Ñ+¨I¸JÕ7G×7OÑ7OÐQXÓYˆJØÒ!Ü%÷ %Ò$ð ×(Ñ(¨¸*ÐSWÐ(ÓX÷	 %×$×$Ó$ús   º-BÁ2BÂB!	c               ó    € V ^8„  d   QhRRRR/# )r#   rB   r4   r(   rh   r   )r*   s   "r   r+   r�   "  s    € ÷ cñ cÐ4Eð cÐJ]ñ cr   c           	     ó‚  € VR,          R,          pV P                  V4      ;_uu_ 4        V P                  P                  V\        VR,          P                  4      \
        R7      pVf   \        uuRRR4       # V P                  V P                  V\        V4      RR7      uuRRR4       #   + '       g   i     R# ; i)a6  Check only live process state (no resume, no history) before explicit local recovery.

A restart loses the in-process terminal callback identity and history cannot prove
which attempt authored a row, so an inactive abandoned attempt stays indeterminate
until the user retries it under a new fenced generation.
rV  rW  rï   )r$   r&   r'   NFr  )	rŒ   rz   r1   Úroom_session_titler]   rp   r  r  rO  )r0   rB   r$   rP  s   &&  r   r  Ú1HostedRoomRuntime._inspect_local_recovery_session"  s˜   € ð �y•/Ð"2Õ3ˆØ�^‰^˜G×$Õ$Ø—h‘h×,Ñ,ØÔ'9¸$¸zÕ:J×:RÑ:RÓ'SÜ*ð -ó ,ˆGð ŠÜ%÷ %Ò$ð ×(Ñ(¨¯©°4¼ÀWÓ9MÐ\aÐ(Ób÷ %×$×$Ó$ús   ªAB-Á;'B-Â-B>	c               ó$   € V ^8„  d   QhRRRRRR/# r„  r   )r*   s   "r   r+   r�   2  s$   € ÷ 5ñ 5Ø(ð5Ø1Bð5ØGKñ5r   c                	óü  € V P                  VR 4      pV'       g   V P                  VP                  R4       R# V P                  pV EFÓ  pVP                  VR,          P                  \        VR,          4      3pV P                  W4      V P                  J pV'       d—   Wd9  d‘   V P                  V4      pVP                  V4       VP                  e0   V P                  WW(P                  4       VP                  V4       K¾  VP                  '       d    V P                  VP                  R4        R# V P                  \        VP!                  R4      ;'       gC    VP!                  R4      ;'       g*    VP!                  R4      ;'       g    V P#                  4       4      ,           p	\$        pWd9  g   V P#                  4       V	8¼  dC    V P                  W4      V P                  Jd   V P'                  W4      pTP                  T4       VP,                  R8X  dC   V P/                  \0        P2                  WVRRVR,           2R7       VP                  V4       EK  VP                  e3   V P                  WW(P                  RR7       VP                  V4       EKZ  V P#                  4       V	8  d    V P                  VP                  R4        R# V P/                  \0        P4                  RWRRR7      pVP                  V4       V P7                  W4       EKÖ  	  V P                  VP                  R4       R#   \(         d4   p
T P+                  R	TR,          P                   R
T
 24        Rp
?
ELyRp
?
ii ; i)r  Frï   rD   NTÚindeterminate_atÚ
updated_atÚ
created_atr  z recovery probe failed: r   r  )r+  rð   rA  Úmember_unavailable)rß  )r‡  r  r]   r«   rd  rE   rX  rz   r  r(  rj   r  r)  rk   r„   r�   rf  r   r  r  r  r  rb   r  rø   r  Údefer_indeterminate_taskr#  )r0   r
  r  Ú
unresolvedÚ	inspectedrB   Úattempt_keyÚis_localr  r×   r  rõ   s   &&&         r   r°  Ú*HostedRoomRuntime._reconcile_indeterminate2  s  € à—[‘[ ¨/Ó:ˆ
ßØ×Ñ˜gŸo™o¨uÔ5ÙØ×:Ñ:ˆ	ÜˆDà—‘  jÕ!1×!9Ñ!9¼3¸tÐDZÕ?[Ó;\ð^ˆKà×*Ñ*¨7Ó9¸T¿X¹XÐEˆHß˜KÔ8Ø!×AÑAÀ$ÓG�
Ø—‘˜kÔ*Ø×&Ñ&Ò2Ø×/Ñ/°¸u×FYÑFYÔZØ×%Ñ% kÔ2ÙØ×$×$Ð$Ø×%Ñ% g§o¡o°tÔ<ÚØ×7Ñ7¼%Ø—‘Ð+Ó,÷  ð  °·±¸Ó0F÷  ð  È$Ï(É(ÐS_ÓJ`÷  ð  Ø—:‘:“<ó;!õ !ˆHô (ˆJØÔ+¨t¯z©z«|¸xÔ/GðYØ×*Ñ*¨7Ó9ÀÇÁÓIØ%)×%CÑ%CÀGÓ%R˜
ð —‘˜kÔ*Ø× Ñ  KÔ/à—‘Ü×<Ñ<¸gÈUÐ\aØ .¨tÐ4JÕ/KÐ.LÐMð ô Oð ×!Ñ! +Ô.ÚØ×"Ñ"Ò.Ø×+Ñ+Ø 5×*=Ñ*=Àuð ,ô Nà×!Ñ! +Ô.ÚØ�z‰z‹|˜hÔ&Ø×!Ñ! '§/¡/°4Ô8ÚØ—|‘|Ü×.Ñ.°°dÐJ^ð $ó `ˆHà×Ñ˜kÔ*Ø�M‰M˜'×,ñY ðZ 	×Ñ˜'Ÿ/™/¨5Ô1Ùøô1 !ô YØ×&Ñ&Ø  ZÕ 0× 8Ñ 8Ð9Ð9QÐRUÐQVÐW÷Yò YûðYús   Ç0L=Ì=M;Í(M6Í6M;c               ó(   € V ^8„  d   QhRRRRRRRR/# )	r#   r
  rZ   rB   r4   rq  ra   r(   rŽ   r   )r*   s   "r   r+   r�   i  s2   € ÷ cñ cØ(ðcØ0AðcØL\ðcà	ñcr   c                	óö  € \         P                  ! VR ,          VR,          VR,          \         P                  ! VP                  VR,          VP                  VR,          VR,          RR7      R7      p\        \         P                  \         P                  4      ;_uu_ 4        \         P                  ! V P                  V3/ \        V4      BR	V P                  /B  R
R
R
4       R
#   + '       g   i     R
# ; i)rï   rD   rv   Úrun_gateway_idr  Úrun_lease_generationrÈ   )r]   r^   r_   rˆ   r®  rË  )rï   rD   rv   r  r   N)rø   ÚTaskAttemptÚDriverLeaser]   r_   r   r¤  rþ   rç  rŠ   r   r   )r0   r
  rB   rq  Úprevious_attempts   &&&& r   r  Ú+HostedRoomRuntime._harvest_previous_attempti  s¿   € ô !×,Ò,Ø˜*Õ%¸DÐAWÕ<XØ"Ð#6Õ7Ü×#Ò#ØŸ™°DÐ9IÕ4JØ '× 7Ñ 7Ø#'Ð(@Õ#AØ!%Ð&<Õ!=È#ô	OôPÐô ”e×+Ñ+¬U×-AÑ-A×BÕBÜ×Ò˜dŸl™lÐ,<ÑbÄÀwÃÑbÐW[×WaÑWaÓb÷ C×B×BÒBús   Â#:C'Ã'C8	c               ó$   € V ^8„  d   QhRRRRRR/# )r#   r
  rZ   rb   r%   r(   zlist[dict[str, Any]]r   )r*   s   "r   r+   r�   y  s(   € ÷ Vñ VÐ/ð V¸ð VÐAUñ Vr   c                	ó\   € \         P                  ! V P                  VP                  VR 7      # ))r]   rb   )rø   Ú
list_tasksrŠ   r]   )r0   r
  rb   s   &&&r   r‡  ÚHostedRoomRuntime._tasksy  s   € Ü×Ò §¡°g·o±oÈfÔUÐUr   c               ó    € V ^8„  d   QhRRRR/# )r#   r]   r%   r(   r/  r   )r*   s   "r   r+   r�   |  s   € ÷ Wñ W¨ð WÐ1Iñ Wr   c                	óL   a€ \        V3R  lV P                  4        4       R4      # )c              3  óL   <"  € T F  qP                   S8X  g   K  Vx € K  	  R # 5ir.   ©r]   )rÌ   Úbr]   s   & €r   rÎ   Ú6HostedRoomRuntime._binding_for_room.<locals>.<genexpr>}  s   øé € ÐOÑ 6˜1¿)¹)ÀwÑ:N—Q’QÓ 6ùs   ƒ$š
$N)ÚnextrŸ   rÑ  s   &fr   rÿ   Ú#HostedRoomRuntime._binding_for_room|  s    ø€ ÜÔO × 4Ñ 4Ô 6ÓOÐQUÓVÐVr   c               ó$   € V ^8„  d   QhRRRRRR/# )r#   r
  rZ   rB   r4   r(   r   r   )r*   s   "r   r+   r�     s$   € ÷ ñ Ø(ðØ0AðØFXñr   c                	óŠ   € V P                   e   V P                  W4      # V P                  f   \        R4      hV P                  # )Nz$hosted room transport is unavailable)r{   rz   rü  r"  s   &&&r   rX  Ú HostedRoomRuntime._transport_for  s>   € à×"Ñ"Ò.Ø×*Ñ*¨7Ó9Ð9Ø�8‰8ÒÜÐEÓFÐFØ�x‰xˆr   r6   c          
     ó,   € V ^8„  d   QhRRRRRRRRRR	/# )
r#   rL  r   r$   r%   r]   r6   r    r(   r)   r   )r*   s   "r   r+   r�   ‡  s;   € ÷ 	Nñ 	NØ+ð	NØ69ð	NØDGð	NØTXð	Nà	!ñ	Nr   c          
     óÚ   € RVR\        V4      R\        /pVP                  ! R/ VB pVf   V'       d   VP                  ! R/ VB # R# VP                  ! R/ \        V\        V4      4      B # )zTResolve + resume the canonical room session; create it (or return None) when absent.r$   r&   r'   Nr   )r#  rp   r1   r6   r=   rq   rO  )r0   rL  r$   r]   r6   ÚcoordsrP  s   &&&&$  r   rN  Ú$HostedRoomRuntime._resolve_or_create‡  ss   € ð
 �w Ô);¸GÓ)DÀhÔPcðeˆà×)Ò)Ñ3¨FÑ3ˆØŠ?ß17�9×#Ò#Ñ- fÑ-ÐA¸TÐAØ×ÒÑM¤+¨g´{À7Ó7KÓ"LÑMÐMr   c               ó$   € V ^8„  d   QhRRRRRR/# )r#   rµ  rÙ  r  r  r(   rŽ   r   )r*   s   "r   r+   r�   ’  s#   € ÷ ;ñ ;Ð2Cð ;È)ð ;ÐX\ñ ;r   c                	ó†  € \        \        P                  \        P                  4      ;_uu_ 4        \        P                  ! V P
                  VR VP                  P                   RVP                   2RR\        V4      /V P                  R7       RRR4       V P                  VRV 24       R#   + '       g   i     L'; i)zfailure:rù  r÷  r  )rc   rb   re   r   Nzfailed: )r   rø   rÕ  r  rç  rŠ   rï   rd  rD   r%   r   rè  )r0   rµ  r  s   &&&r   rí  Ú,HostedRoomRuntime._settle_failure_if_current’  s”   € Ü”e×,Ñ,¬e×.HÑ.H×IÕIÜ×ÒØ—‘˜gØ (¨×)9Ñ)9×)AÑ)AÐ(BÀ!ÀG×D`ÑD`ÐCaÐbØ¨´#°c³(Ð(;À4Ç:Á:õO÷ Jð
 	×Ñ ¨8°C°5Ð)9Ö:÷ J×Iús   ±A B0Â0C 	c               ó$   € V ^8„  d   QhRRRRRR/# )r#   rµ  rÙ  Úmessager%   r(   rŽ   r   )r*   s   "r   r+   r�   š  s'   € ÷ Iñ IÐ*;ð IÀcð IÈdñ Ir   c                	ó\   € V P                  R VP                  P                   RV 24       R# )r  Ú N)r  rï   rd  )r0   rµ  rP  s   &&&r   rè  Ú$HostedRoomRuntime._record_task_errorš  s*   € Ø×Ñ˜U 7×#3Ñ#3×#;Ñ#;Ð"<¸A¸g¸YÐGÖHr   c               ó    € V ^8„  d   QhRRRR/# )r#   rP  r%   r(   rŽ   r   )r*   s   "r   r+   r�   �  s   € ÷ 'ñ ' Sð '¨Tñ 'r   c                	ót   € V P                   ;_uu_ 4        Wn        R R R 4       R #   + '       g   i     R # ; ir.   )r°   r¥   )r0   rP  s   &&r   r  ÚHostedRoomRuntime._record_error�  s#   € Ø××ÓØ&Ô÷ ××Òús   •&¦7	)r¬   r®   r±   r³   r«   r¥   r©   rª   r²   r¦   r¨   rŸ   r°   r¢   r¤   r­   r£   r   rŠ   r…   r~   r|   rˆ   r}   rz   r{   rŒ   r‡   r†   ):r   r   r   r   r   rÐ   r·   rÂ   rÚ   rß   rb   r  r  r#  r  r  r  r  r  rI  rQ  rY  Ústaticmethodr^  r  r  r  r�  rŠ  rÁ   r�  r™  r¢  rÀ  r   rˆ  r¥  r’  r²  rì  rÜ  ræ  rG  r  r­  r  r  r  r°  r  r‡  rÿ   rX  rN  rí  rè  r  r   r   r   r   ry   ry   i   s  † ÙLð58ð [_ð58ð >Bð	58ð
 DHð58ð [_ð58ð W[ð58ð &*§Y¡Yð58ð $(ð58ð ILð58ð /3ð58ð SYð58ð .2ð58ð PQð58ð 03ð58ð \`ð58ð *.÷58õp	!ðF s÷ Fõ õHõ':õR^õ4õ
[ð]àNR÷]õðBØBF÷Bð à7;÷ õ	õAð	[ØX]÷	[ð ôAó ðAõ
aõFõ&õPõõ(õ,! õFõ&õBõð"Ø9>÷õ,õ*õCDõJJõ!õFõB?õ`õ(Uõ:õYõcõ 5õncõ VõWõð	NØ[_÷	Nõ;õI÷'ñ 'r   ry   c               ó    € V ^8„  d   QhRRRR/# )r#   r]   r%   r(   r   )r*   s   "r   r+   r+   ¢  s   € ÷ ñ  ð ¨ñ r   c                ó   € RV  2# )z>Return the canonical hidden session title for one hosted room.zGroup: r   r@  s   &r   r#  r#  ¢  s   € à�W�IÐÐr   c               ó    € V ^8„  d   QhRRRR/# )r#   rB   r4   r(   r%   r   )r*   s   "r   r+   r+   §  s   € ÷ Kñ KÐ&ð K¨3ñ Kr   c                ó²   € V P                  R 4      ;'       g    / p\        VP                  R4      ;'       g    VP                  R4      ;'       g    R4      # )rV  Útarget_member_idrW  rc  )rf  r%   )rB   Úps   & r   r}  r}  §  sG   € Ø�‰�Ó×!Ð!˜r€AÜˆq�u‰uÐ'Ó(×IÐI¨A¯E©EÐ2BÓ,C×IÐIÀrÓJÐJr   c               ó    € V ^8„  d   QhRRRR/# )r#   rP  r4   r(   r%   r   )r*   s   "r   r+   r+   ¬  s   € ÷ ñ Ð*ð ¨sñ r   c                óš   € V P                  R V P                  R4      4      p\        V\        4      '       d	   V'       g   \        R4      hV# )r:   Úidz&session adapter returned no session_id)rf  r˜   r%   r—   )rP  r¶   s   & r   rO  rO  ¬  s;   € Ø�K‰K˜ g§k¡k°$Ó&7Ó8€EÜ�eœS×!Ò!¯ÜÐAÓBÐBØ€Lr   c               ó$   € V ^8„  d   QhRRRRRR/# )r#   r¶   r   Ú	max_bytesrE   r(   ztuple[str, bool]r   )r*   s   "r   r+   r+   ³  s"   € ÷ 
5ñ 
5˜#ð 
5¨Sð 
5Ð5Eñ 
5r   c               ó¦  € \        T ;'       g    R 4      \        T ;'       g    R 4      P                  R4      r2\        V4      V8:  d   VR3# VR\        ^ V\        \        P                  R4      4      ,
          4       pV'       d     VP                  R4      \        ,           R3# \        P                  4       R3#   \         d
    TRR p KP  i ; i)rc  zutf-8FNTéÿÿÿÿ)r%   Úencoderš  rÒ   Ú_TERMINAL_TRUNCATION_NOTICEÚdecodeÚUnicodeDecodeErrorÚstrip)r¶   rb  ÚtextÚencodedÚprefixs   &$   r   Ú_truncate_utf8rm  ³  s¿   € Ü˜Ÿ˜ Ó$¤c¨%¯+¨+°2Ó&6×&=Ñ&=¸gÓ&Fˆ'Ü
ˆ7ƒ|�yÔ Ø�Uˆ{ÐØÐ[”s˜1˜i¬#Ô.I×.PÑ.PÐQXÓ.YÓ*ZÕZÓ[Ð\€Fß
ð	!Ø—=‘= Ó)Ô,GÕGÈÐMÐMô '×,Ñ,Ó.°Ð4Ð4øô "ô 	!Ø˜C˜R�[‹Fð	!ús   ÂB< Â<CÃCc               ó    € V ^8„  d   QhRRRR/# )r#   rq  r4   r(   rd   r   )r*   s   "r   r+   r+   À  s   € ÷ Iñ IÐ&7ð I¸Nñ Ir   c                óú   € \        V P                  R R4      \        R7      w  r\        V P                  RR4      RR7      w  r4RV P                  R4      R V/V'       d   RV/M/ CV'       g	   V'       d   RR/C# / C# )rj  rc  )rb  r  i   Ú
message_idÚ	truncatedT)rm  rf  ÚMAX_TERMINAL_TEXT_BYTES)rq  rj  rq  r  Úerror_truncateds   &    r   rû  rû  À  sŽ   € Ü$ W§[¡[°¸Ó%<ÔH_Ô`�O€DÜ+¨G¯K©K¸ÀÓ,DÐPTÔUÑ€Eà�g—k‘k ,Ó/°¸ðIç$ˆG�UÑ¨"ðI÷ #,¯ˆK˜ÐðIð Ið EGðIð Ir   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	r#   rN   rL   rï   rC   rD   rE   r(   ri   r   )r*   s   "r   r+   r+   É  s,   € ÷ ñ Ø(ðØ4FðØ^aðàñr   c                óþ  € \        V 4       Fí  pVP                  R 4      pVP                  R4      VP                  8w  g4   VP                  R4      V8w  g   VP                  R4      R8w  g   VR9  d   Ki  VP                  R4      p\        V\        4      '       d	   V'       g   RVP                   RV 2p\        \        \        P                  V4      V\        RVRVP                  R	R
4      /4      R7      u # 	  R# )rb   rd  rD   ÚroleÚ	assistantrp  rø  rù  rj  Úcontentrc  rú  N>   r÷  rö  )
Úreversedrf  rd  r˜   r%   ra   r   rø   ÚTerminalStatusrû  )rN   rï   rD   rP  rb   Ú
receipt_ids   &&&   r   r]  r]  É  så   € ô ˜GÖ$ˆØ—‘˜XÓ&ˆà�K‰K˜	Ó" h×&6Ñ&6Ô6Ø�{‰{Ð1Ó2Ð6JÔJØ�{‰{˜6Ó" kÔ1°VÐCXÔ5XÙØ—[‘[ Ó.ˆ
Ü˜*¤c×*Ò*·*Ø! (×"2Ñ"2Ð!3°1Ð5IÐ4JÐKˆJÜÜœ×,Ñ,¨fÓ5ÀZÜ+Ø˜z¨6°7·;±;¸yÈ"Ó3MÐNóPôQò 	Qñ %ñ r   c               ó    € V ^8„  d   QhRRRR/# )r#   rR   r4   r(   r    r   )r*   s   "r   r+   r+   Ý  s   € ÷ @ñ @Ð(ð @¨Tñ @r   c           	     óX   € \        V P                  R V P                  RR4      4      4      # )rk   rã   F)r    rf  )rR   s   &r   re  re  Ý  s#   € Ü�—‘˜ 4§8¡8¨I°uÓ#=Ó>Ó?Ð?r   rk  c               ó(   € V ^8„  d   QhRRRRRRRR/# )r#   rR   r4   rï   rC   rk  r    r(   r   )r*   s   "r   r+   r+   á  s2   € ÷ Bñ BØ
ðBØ'9ðBØMQðBØ^bñBr   c               ó–   € V'       d   VP                   3MR VP                   3p\        V 4      ;'       d    V P                  R4      V9   # )Nrd  )rd  re  rf  )rR   rï   rk  Úaccepteds   &&$ r   rl  rl  á  s@   € ç&3�× Ñ Ñ"¸$À×@PÑ@PÐ9Q€HÜ˜Ó×AÐA $§(¡(¨9Ó"5¸Ñ"AÐAr   i   )8r   Ú
__future__r   Úloggingr    rÐ   rš   Úcollections.abcr   r   r   r   Ú
contextlibr   Údataclassesr   r	   Úpathlibr
   Útypingr   r   r   r   Úgatewayr   rø   Ú	getLoggerr   ré  r÷   rg  rp   rr  rf  r‰  rü  r   r   r%   ÚMemberTransportResolverrZ   ra   rh   r  rq   rw   ry   r#  r}  rO  rm  rû  r]  re  rl  r   r   r   Ú<module>r‹     sg  ðñõ #ã Û Û Û ß AÓ AÝ ß )Ý ß 6Ó 6å /à	×	Ò	˜8Ó	$€àÐ Ø! =Ð1Ð à Ð Ø#Ð àLð à3€ôS ,ô Sô'˜ô 'ð6 #Ð$7¸ÀÀcÀÕ9JÐ#KÐM_Ð#_Õ`Ð ñ �$Ô÷ð ó ðñ �$Ô÷ð ó ðñ �$Ô÷ð ó ðñ %¨d¸5ÈÔN€õYõJ÷
v'ñ v'õrõ
Kõ
õ
5õIõõ(@ðBØTY÷Bñ Br   