
    KhjY                    d   d Z ddlmZ ddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z	ddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlmZmZmZmZ ddlmZ ddlmZmZ ddlmZ  ed      Z  e!e       ejD                  d	<    ed
      Z# ed      Z$e$dz  Z%dZ&dZ'dZ(dZ)dZ*dZ+dZ,dZ-dZ.dZ/dZ0dZ1dZ2dZ3dZ4dZ5 G d de6      Z7d4dZ8d5d6d Z9d7d!Z:d8d"Z;d9d#Z<d:d$Z=d;d%Z>d<d&Z?d;d'Z@d=d(ZAd;d)ZBd>d*ZCd?d+ZDd;d,ZEd>d-ZFd@d.ZGdAd/ZHdBd0ZIdCd1ZJd:d2ZKeLd3k(  r eM eK             y)Dz@Exact sealed-candidate, one-use DualCoach v8 rehearsal launcher.    )annotationsN)UTCdatedatetimetime)Path)AnyCallable)ZoneInfoz)/home/cube/.hermes/profiles/dualcoachtestHERMES_HOMEzU/home/cube/.hermes/profiles/dualcoachtest/.strict-runtime/f32a8365-v8/venv/bin/pythonzj/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-clarification-root-final-st_01a013d9zdeployment/v8@f32a836571b403663da3510d930fd04c1a84c5514cb6345fc575f5a42b580da5@5795a78f7830760b10a4b4d909ca44b9142b92e86083d7d47e9c787f5e580d97@8c7c33d6b41d1c2b29f58aa39696df6a8ffe2794b9bc0a4ddf5b16182e1c5695@20d3221230c544eb2210c9393c58afad34876df0f80c50d74c31afac891ec75c@f93106b16643227e2ef9dec67a5bbd497e1d353e779da62287898a087071af87A3639c41eb6e76eb7d89510f117cf9ad94e72b4f1acee48645c620ea0909fec15e@c673e7b04c564e6ebbf5010e6e0ad321af3abde7565d6d3ca66d238c9248877b@aba7b92da1de6b9f9e071f8734026683c7bcdfd1abaa754ab2c8b6b4d5825fd7
8527916639
8693203710dual_coach_pilot_test_botz7hermes-gateway-dualcoachtest-strict-f32a8365-v8.servicez0dualcoach-lifecycle-observer-f32a8365-v8.servicez$hermes-gateway-dualcoachtest.service)config.yaml	auth.json.envcustomers/registry.jsongateway_state.json(data/owner-actions/draft-deliveries.jsondata/scheduled-deliveries.jsonl:data/onboarding/telegram-publication-outbox-v1/ledger.jsoni  c                      e Zd Zy)BlockedN)__name__
__module____qualname__     [.omo/evidence/task26/task26-clarification-root-final-st_01a013d9/deployment/v8/launch_v8.pyr!   r!      s    r&   r!   c                d    t        j                  | j                               j                         S N)hashlibsha256
read_bytes	hexdigest)paths    r'   shar/      s     t/@ A K K MMr&   c           	         t        j                  | ddd      }|rB|j                  r6t        d|j                   d| d|j                  j                                |S )NTF)textcapture_outputcheckzcommand failed (z): z: )
subprocessrun
returncoder!   stderrstrip)argsokrs      r'   commandr<      sX    >>$D5A1<<w)9!,,s4(RTUVU]U]UcUcUeTf'ghh	r&   c           	     `   t        j                  |t        j                  t              j                         d|ddd      dz   j                         }t        j                  | t        j                  t        j                  z  t        j                  z  t        j                  z  t        t        dd      z  d      }t        j                  |d       t        j                  ||       t        j                   |       t        j"                  |       y # t        j"                  |       w xY w)	N)eventat_utcT,:)	sort_keys
separatorsensure_ascii

O_NOFOLLOWr     )jsondumpsr   nowr   	isoformatencodeosopenO_WRONLYO_APPENDO_CREAT	O_CLOEXECgetattrfchmodwritefsyncclose)receiptr>   valuesrawfds        r'   appendr]      s    
jj%c):)D)D)FPP[_kt  CG  H  IM  M  U  U  WGGGBKK+BJJ6r||CGB|\]D^^_deii5288Bs+RXXb\
((2,"((2,s   ?AD D-c                    t        ddd| ddddddg
d      }t        d	 |j                  j                         D              S )
N/usr/bin/systemctl--usershowz-pActiveStateSubStateMainPIDFc              3  J   K   | ]  }d |v s|j                  d d        yw)=   N)split.0xs     r'   	<genexpr>zstate.<locals>.<genexpr>$   s#     G%:cQhQWWS^%:s   	##)r<   dictstdout
splitlines)unitr;   s     r'   staterq   "   sE    
 &d=jY]^ghinoGQXX%8%8%:GGGr&   c                     dd l } | j                  t        dz  j                               d   d   d   d   }dD ci c]  }|||   
 c}S c c}w )Nr   r   	platformstelegramextraadaptive_nutrition
activationdeliverydelivery_enabled)yaml	safe_loadPROFILE	read_text)r{   aks      r'   flagsr   %   sY    >>7=(3356{CJOPWXYmnEFEA1Q4EFFFs   Ac                    d} t         dz  t         dz  t         dz  fD ]}  }|j                         st        j                  |j	                               t        t              r| t              z  } Vt        t              sg| t        fddD              z  }  | S # t        j
                  $ r- | t        |j	                         j                               z  } Y w xY w)Nr   r   r   r   c              3  T   K   | ]  }t        j                  |g              ! y wr)   )lenget)rj   r   values     r'   rl   z!delivery_count.<locals>.<genexpr>0   s#     )sHr1#eii"o*>Hrs   %()
deliveriesrecordsitemsentries)r}   existsrI   loadsr~   JSONDecodeErrorr   ro   
isinstancelistrm   sum)totalr.   r   s     @r'   delivery_countr   )   s    77@j8jkr  tp  lp  qT	ZZ()udUCJ.U%uc)sHr)s&ssu q 	 
		Ruc$..*:*E*E*G&HHu(Rs   #B  =C C c            
     J   t        t              ddddk7  rt        d      t        g dd      j                  } | j                         D cg c]  }d|v sd	|v sd
|v rd|v r| }}|rt        dt        |      z         t        t              j                  d      dvs t        t              j                  d      dvrt        d      t        g dd      j                  j                         }|rt        d|z         dD cg c]  }t        |z   }}|D cg c]  }|j                         st        |        }}|rt        ddj                  |      z         t               }|ddddk7  rt        d      t!               rt        d      t        t        dz  t        dz  t        dz  fD ci c]C  }t        |      t#        t%        j&                  |j%                         j(                        d      E c}t        t                 dk7  st+        fddD              rt        d      d d l}	t/        j0                  d!      }
d"t2        t2        dd#i}|
j5                  ||	j7                  t        dz  j9                                     }|j:                  D ch c]$  }|j<                  t        |j<                        & }}t>        t2        k(  st>        |v st2        |vrt        d$      d%d&|d d d'd'|j@                  d(	S c c}w c c}w c c}w c c}w c c}w ))N0inactivedead)rd   rb   rc   z#installed service not inactive/dead)r_   r`   z
list-unitsz--allz--no-legendz--plainFzdualcoach-lifecycle-observer-z$hermes-gateway-dualcoachtest-strict-z
 inactive z failed zprevious strict unit active: rb   )Nr   failedz"v8 gateway/observer already active)z/usr/bin/pgrepz-afzBhermes-gateway-dualcoachtest-strict-|dualcoach-lifecycle-observer-z previous strict process active: )r   gateway.lockgateway.pidr   state.dbstate.db-shmstate.db-walsessionsdata/onboardingdata/owner-actionsdata/customersr   zlive authorities not empty: rA   rw   zconfig flags not falsezdeliveries not zeror   r   r   04o0700c              3  N   K   | ]  }t        t        |z           d k7    yw)0600N)strr}   )rj   rk   privates     r'   rl   zbaseline.<locals>.<genexpr>A   s&     (uRtQWQY)@&)HRts   "%)r   r   r   z$profile configuration is not privater   0gateway.platforms.telegram_staff_membership_gateowneruser_idchat_idtopic_idz&customer/staff owner separation failedzinactive/deademptyT)	serviceauthoritiesr   r   monitorsprivate_modes customer_actor_absent_from_staffowner_separatedstaff_chat_inventory_sha256)!rq   BASE_SERVICEr!   r<   rn   ro   reprUNITr   OBSERVER_UNITr8   r}   r   r   joinr   r   formatstatS_IMODEst_modeanyr{   	importlibimport_moduleOWNERbuild_staff_chat_inventoryr|   r~   chatsstaff_user_idACTORr+   )unitslineactive	processesrk   	forbiddenplivesafer{   gateskeleton	inventoryrowstaff_usersr   s                  @r'   baseliner   2   s   	,CjFSS[b  dI  \J  VJ[\abii**,  	B,$1PTX1X  ]C  GK  ]K  Vb  fj  Vj  nx  |@  n@,  	B
'9$v,FGG	$KOOM"*DDmH\H`H`anHo  xR  IR  Za  bF  ZG  TGpqvw~~  E  E  GW?	IJJ  {  |   {!GAI   {  | /y!AHHJs1vy/6sxx~EF
Fg%
HHPWXpPqJqG$9::HOPWXePefmnyfy  {B  CI  {I  HJ  
K  HJ!#a&QVVX%5%56u=
=  HJ  
KCL6!S(uRt(u%u  ~E  Fl  ~m  xmPQeesC
D**8DNNGMDYCdCdCf4gh09a3CTCTC`c###$a	5LE[(E,DGT|L}F}"ST`ary  ^b  uy  Xa  Xh  Xh  	i  i' 	B
 |/
 
K bs=   LL L%L	LL5L7AL#L 5L c           
     2   t         j                  j                  |       }t        |j	                  d            j                         }t        j                  |      5 }t        d |j                         D              }t        t        j                  t        j                  |j                  |      j!                                           }d d d        d}D ]  \  }}	}
||z  j                         }|j#                         st%        d|  d|       |
r7|j'                         j(                  t+        |
      k7  rt%        d|  d|       |	r|	j-                  dd      \  }}|d	k7  rt%        d
      t/        j0                  t3        j4                  |j7                               j9                               j;                  d      j!                         }||k7  rt%        d|  d|       |dz  } | t=        |      |t?        |      dS # 1 sw Y   BxY w)N c              3  D   K   | ]  }|j                  d       s|  yw)z.dist-info/RECORDN)endswith)rj   names     r'   rl   z!_record_parity.<locals>.<genexpr>L   s     ]$6D$--H[:\4$6s     r   zRECORD path absent: rB   zRECORD size mismatch: rf   rg   r+   znon-sha256 RECORD entry   =zRECORD hash mismatch: )distributionrecord_entriesverified_fileswheel_sha256) r   metadatar   r   locate_fileresolvezipfileZipFilenextnamelistr   csvreaderioStringIOreaddecodeis_filer!   r   st_sizeintrh   base64urlsafe_b64encoder*   r+   r,   digestrstripr   r/   )	dist_name
wheel_pathdistsitearchiverecord_namerowsverifiedrelativeencoded	size_texttarget	algorithmr   actuals                  r'   _record_parityr   I   s   %%i0tD<L<LR<P7Q7Y7Y7[$ooj!W]G$4$4$6]]+CJJr{{7<<#<#C#C#EFGH$ " #'Xgi
x-	 	 	"&		+?	{!H:)V!WW6;;=((#i.8J`aj`kklmulvHw@x:x==Q'?9U)B!CC

"
"7>>&2C2C2E#F#M#M#O
P
W
WX\
]
d
d
f6em7%;I;az#RSS
A+( $( "3t9hfijtfuvv "!s   A/HHc            	        t        t        j                        j                         t        j                         k7  s4t        j
                  t        t        j                  j                        k7  rt        d      t        j                  j                  d      rt        d      t        j                  t        dz  j                               } t        j                  t        dz  j                               }t!        t        dz        t"        k7  s2t!        t        dz        t$        k7  st!        t        dz        t&        k7  rt        d      | j                  d      d	k7  s`| j                  d
      t(        k7  sH| j                  d      t*        k7  s0|j                  d
      t(        k7  s|j                  d      t*        k7  rt        d      i }dD ]  }t-        j.                  |      j0                  }t3        |t              st        d|z         t        |      j                         }t        j                  j                  |j4                  vrt        d|z         t        |      ||<    i }g }ddt6        fddt8        ffD ]  \  }}	}
t        dz  |	z  }t!        |      |
k7  rt        d|z         t,        j:                  j=                  |      j                  d      }|t        d|z         t        j                  |      }t        |d   j?                  dd      j?                  dd            }|j                         |j                         k7  st!        |      |
k7  rt        d|z         |d   |
d||<   |jA                  tC        ||              t        j                  t        tE        tG        |jI                                     jK                  dd       d!         |||t"        t&        d"S )#Nzwrong isolated interpreter
PYTHONPATHzPYTHONPATH must be unset	SEAL.jsoncandidate-manifest.jsonz0seals/installed-runtime-record-parity-final.jsonzsealed evidence driftstatusINSTALLED_GOLDEN_PATH_PASScandidate_digestproduct_digestz"candidate/product binding mismatch)gatewayzgateway.platforms.telegram!gateway.platforms.dualcoach_admin-gateway.platforms.telegram_customer_bootstrapr   checkin_clicheckin_cli.customer_adminrt   zimport has no origin: znon-isolated import: zhermes-agentz$hermes_agent-0.17.0-py3-none-any.whlzphysique-checkin-cliz+physique_checkin_cli-0.1.0-py3-none-any.whl	artifactszsealed wheel mismatch: zdirect_url.jsonzdirect_url missing: urlzfile://r   z%20 zdirect_url wheel mismatch: )r  r   /   r   )interpretersite_packagesorigins
direct_urlrecord_paritycandidate_seal_sha256record_seal_sha256)&r   sys
executabler   PYTHONprefixr   parentr!   rN   environr   rI   r   	CANDIDATEr~   r/   CANDIDATE_SEAL_SHAMANIFEST_SHARECORD_SEAL_SHAFULLPRODUCTr   r   __file__r   parents
HERMES_SHAPROFILE_SHAr   r   replacer]   r   r   iterrZ   rsplit)sealmanifestr  r   module_fileorigindirectr   r   wheelwantr   direct_textr   sources                  r'   installed_proofr6  Z   s     "FNN$44

CH\H\D]8]el  nJ  fK  `KJJNN< 0J(K"K
jj)K'2245

IVoLoKzKzK|@}x	+ 22c)D]:]6^`l6lpst}  q  uq  qr  tC  qC  KR  Sj  Kk  EkHHX44AS8TVZ8Z^b^f^fgw^x  {B  _B  FN  FR  FR  Se  Ff  hl  Fl  px  p|  p|  }M  pN  PW  pW  _f  gK  _L  YL	 sT%%d+44+	K	$G4LT4Q,R&R	k		"	"	$&]]/w?VW[?[7\1\F'$- s 	BG()OPZ[]s  ub  cn  ]o  p_T%{"5(*_d'*CD*H"II  --d3==>OP+(>t(C DD

;%U5\-A-A)B-O-W-WX]^a-b(c^^z))++s6{D/@PmnrPrHsBsEl$7&,W[\fHg9h p ~~c$tGNNDT?U:V:]:]^abc:def:g6hsz  IO  `g  @R  hw  	x  xr&   c           	     v   | j                         r	 ||       ry | j                  j                  dd       t        j                  dd      }|j                  t        j                        }|dk  s7|j                  |t        j                  | j                        t              dk  rt        d      t        j                         }|j                  |t        j                         t!        j"                         |z   }	 	 |t!        j"                         z
  }|dk  s'|j                  t%        dt'        |dz                    st        d	t)        |       z         t        j*                  |d
       | j                         r ||       r	 t        j,                  |       y # t        j,                  |       w xY w)NT)r'  exist_okz	libc.so.6)	use_errnor   zinotify subscription failedrg   i  zevent timeout: i   )r   r  mkdirctypesCDLLinotify_init1rN   rS   inotify_add_watchfsencode	IN_EVENTSr!   selectpollregisterPOLLINr   	monotonicmaxr   r   r   rX   )r.   	predicatetimeoutlibcr\   rB  deadlinelefts           r'   	wait_pathrL  q   s?   KKMiov4.kk+-$2D2DR\\2RrqDD""2bkk$++&>yI!KSZ[xSyMykkmT]]2fmm4t~~?OPW?Wh!!4
AgTYYs1Sd^45WEVWZ[_W`E`=a7a772e
kkm	$
((2, 	
 ((2,s    B	F!  F! !F8c                    t        j                  d      } t        j                  d      }dt        j                  t              j                  d      z   dz   t        j                         j                  d d z   }t        dz  }|j                  j                  d	       |j                  t        j                  d
t        t        ddg dd dd      dz          |j!                  d       t#        j$                         }| j'                  || j)                  |dt*        t*        d|t-        d      dd
ddd             |j)                  |d|j/                         ddd
ddd	      }|j1                  |j3                  t                    j5                  |t6        t              }|j8                  j:                  |j8                  j<                  z
  t?        d      jA                  d      k7  rtC        d      tE        d      }||j8                  jF                  |j8                  jH                  d
|j8                  jJ                  d|j8                  j<                  j/                         |j8                  j:                  j/                         |j8                  j<                  jM                  |      j/                         |j8                  j:                  jM                  |      j/                         |jN                  d S )!Nr  r  task26_claim_z%Y%m%d%H%M%S_   r     moderg   r   r   ordinary_v1)versionr   	customersregistry_modediagnostic_session_digestr@   )rD   rF   rH   zDualCoach customer claimr   i     )meal_1meal_2meal_3z08:00)bot_usernameowner_idr      )minutesz$invite TTL is not exactly 30 minutesz
Asia/Seouli  )customer_idcustomer_key
session_id
generationsid_hashinvite_ttl_secondsinvite_created_at_utcinvite_expires_at_utcinvite_created_at_kstinvite_expires_at_kstcustomer_link)(r   r   r   rK   r   strftimeuuiduuid4hexr}   r  r:  
write_textrI   rJ   r   chmodr   todayregister_customerCustomerDraftr   daytimerL   RoomBootstrapStoreroom_bootstrap_state_dir!prepare_rehearsal_customer_inviteBOT_USERNAMEsession
expires_at
created_at
__import__	timedeltar!   r   rb  rc  re  
astimezonerk  )adminbootcustomerregistryrr  draftmadeksts           r'   preparer  ~   s   ;<9CZCZ  \K  DLd
(,,s+44^D
DS
HIYIYZ\[\I]
]ho  qJ  iJ_g  LT  L[  L[  La  La  gl  La  Lm	TZZ1PUad5ert  FS  pt  !u  AJ  K  LP  P  Q  S[  Sa  Sa  bg  Shzz|U,,Xe6I6I(Smnstyz}  D  EL  MN  EO  PQ  RS  TX  Y\  ]y  7z  {(#=eoo>OPWXYZ[\`ad  fB  C
d;;GDEgghm  |H  RWg  XLLDLL333z*7M7W7W`b7W7cckr  tZ  l[  f[lt||/H/HVZVbVbVmVm{|  IM  IU  IU  I^  I^  tx  QU  Q]  Q]  Qh  Qh  Qr  Qr  Qt  MQ  MY  MY  Md  Md  Mn  Mn  Mp  IM  IU  IU  I`  I`  Ik  Ik  lo  Ip  Iz  Iz  I|  UY  Ua  Ua  Ul  Ul  Uw  Uw  x{  U|  UF  UF  UH  Y]  Yk  Yk  	l  lr&   c                   t         dz  }t         dz  }t        dddt         ddt        t              t        t         dz        d	d
t        t
              dt        |      dt        |      g       t        |d d       t
        dz  }t
        dz  }t        dddt         dddt
         dt
         dt        j                  j                   dt        j                   dddt        t              ddd
dddg       t        |d d       t        |d  d!       t        d" t        |j                         j                               D              }t        t              t        t              |d#   |d$   |d%   d&S )'Nzmonitor/observer-ready.jsonzmonitor/observer-events.jsonlz/usr/bin/systemd-runr`   z--unit=z	--collectz--property=Type=execzlifecycle_observer_v8.pyobservez	--profilez--eventsz--readyc                l    t        j                  | j                               j                  d      dk(  S )Nr  ARMEDrI   r   r~   r   r   s    r'   <lambda>zstart_runtime.<locals>.<lambda>   s#    $**Q[[]377A7Jr&   
   r   z9data/onboarding/telegram-staff-membership-v1/events.jsonlz--property=Type=simplez--property=WorkingDirectory=z--setenv=HERMES_HOME=z--setenv=VIRTUAL_ENV=z--setenv=PATH=z=:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/binz"--setenv=PYTHONDONTWRITEBYTECODE=1z--setenv=DUALCOACH_PROFILE_PACKAGE=/home/cube/.hermes/profiles/dualcoachtest/.strict-runtime/f32a8365-v8/venv/lib/python3.12/site-packagesz-mzhermes_cli.maindualcoachtestr	  r5   c                    t        j                  | j                               j                  di       j                  di       j                  d      dk(  S )Nrs   rt   rq   	connectedr  r  s    r'   r  zstart_runtime.<locals>.<lambda>   sA    $**Q[[]";"?"?B"O"S"ST^_a"b"f"fgn"oq|"|r&   x   c                ^    t        d | j                         j                         D              S )Nc              3  j   K   | ]+  }t        j                  |      j                  d       dk(   - ywr>   subscription_armedNrI   r   r   ri   s     r'   rl   z2start_runtime.<locals>.<lambda>.<locals>.<genexpr>   s-     uZtUV

1 1 1' :<P PZt   13)r   r~   ro   r  s    r'   r  zstart_runtime.<locals>.<lambda>   s"    CuZ[ZeZeZgZrZrZtuur&   r_  c              3     K   | ]A  }t        j                  |      j                  d       dk(  s+t        j                  |       C ywr  r  ri   s     r'   rl   z start_runtime.<locals>.<genexpr>   sG       C#MaQUQ[Q[\]Q^QbQbcjQk  nB  RBDJJqM#Ms
   ,A	A	subscription_epoch_idobserved_at_utcr   )r	  observerr  subscription_armed_at_utcr   )ROOTr<   r   r   r  r}   rL  r   r  r   reversedr~   ro   rq   )tempreadyeventsgateway_statejournalarmeds         r'   start_runtimer     s   ))$7V2V6
 GM?*CKPfgjkqgrsvw{  }W  xW  tX  Yb  cn  or  sz  o{  |F  GJ  KQ  GR  S\  ]`  af  ]g  
h  i
5J2N++W=x5xW
 GD6*:;G_b~  @G  H  aI  La  bi  aj  Jk  nC  DJ  DQ  DQ  DX  DX  CY  lZ  ]k  lr  ly  ly  kz  zw  [x  y]  ^j  kn  ou  kv  w{  |M  NY  Zi  js  ty  
z  {
=|  ~A  B
7uvxy  C8G,=,=,?,J,J,L#M  C  C;%*>W\]tWu  SX  Yj  Sk  JO  Pm  Jn  	o  or&   c                $  K   dd l }t        j                  d      j                  }t        j                  d      }t        dz  }|j                  t        j                  |j                               |j                  t        dz  j                                     }|j                  |d   k7  rt        d      | dz  }	|	j                  t        j                  t        t        t        t         t"        d	             |	j%                  d
        ||      4 d {   }
|j'                  |
|| dz  |	|t        dz  |d   t)        t*              |d   d|d   |d          d {   }d d d       d {    j-                  d      }|j-                  d      }t/        |t0              r|rt3        d |D              rt        d      t/        |t0              rt3        d |D              rt        d      |S 7 7 7 # 1 d {  7  sw Y   xY ww)Nr   rt   r   r   r   r   zmembership inventory driftzdeployment.json)r  candidate_core_digestcandidate_inventory_digesthermes_wheel_sha256profile_wheel_sha256rH   zmembership.jsonra  rc  rg   r  r  )
output_pathdeployment_receipt_pathregistry_pathconfig_pathra  customer_user_idbootstrap_session_idbootstrap_generationr  r  membership_resultsprivate_dm_resultsc              3  B   K   | ]  }|j                  d       dv  yw)r  >   rK  kickedNr   ri   s     r'   rl   zmembership.<locals>.<genexpr>   s"     4ngmbcQUU8_L]5]gm   zleft/kicked proof missingc              3  B   K   | ]  }|j                  d       du  yw)identity_separatedTNr  ri   s     r'   rl   zmembership.<locals>.<genexpr>   s#     'aY`TU.B(C4(OY`r  z#private identity separation missing)r{   r   r   Botr}   r   rI   r   r~   r|   r+   r!   rp  rJ   r$  r%  r(  r)  rq  create_pre_activation_evidencer   r   r   r   r   r   )r  preparedruntimetokenr{   r  r   r  r   
deploymentbotresultgroupsr   s                 r'   
membershipr     s    Z(,,93J3JK}3~d
+
+t7V7VW[WaWabjbtbtbvWwx|  yG  yG  IP  Q^  I^  Hi  Hi  Hk  yl  8mYg;<<GLhDi>i""J$9$9$**Y]v}  \c  zD  \g  Fh  ;i  %j  lv  l|  l|  }B  lCJJ#223yTRcMc  }G  V^  kr  s@  k@  MU  Vc  Md  vy  z  v@  V^  _k  Vl  BC  Za  by  Zz  U\  ]x  Uy2  z  
z& J

'(&**=Q2R'6$v4ngm4n1nv}  Z  w[  q[74 C'aY`'a$aip  rW  jX  dX  
z JJJs\   DHG5HAG; G7!G;%H0G91BH7G;9H;HHH	Hc            
     ,   g } t         D ]  }t        |z  }|j                         s| j                  |dd       1|j	                         }|j                         s|j                         st        d|z         | j                  ||j                  t        t        j                  |j                        d      t        |      d        t        j                  | dd      j!                         }t#        j$                  |      j'                         | dS )	NT)r.   absentz"untrusted protected profile path: r   )r.   bytesrS  r+   r@   )rC   rD   )r   files)	PROTECTEDr}   r   r]   lstat
is_symlinkr   r!   r   r   r   r   r   r/   rI   rJ   rM   r*   r+   r-   )r  r   r.   infor   s        r'   protected_snapshotr     s    	Xx$	Xt%DExzz|$	__dllnG<`ai<i4j.j,,xF4<<PTP\P\C]^c<dnqrvnwxy  
EDI	>	E	E	G..)335eDDr&   c                @   t        j                  d      j                  } || dz  d      }t        |j                        dk7  s|j
                  "t        d|j                  j                  z         |j                  j                  t        |j
                        ddS )	Nr
  providerT)receipt_directoryallow_billable_active_prober   zprovider readiness failed: znonpersistent readiness)r  receipt_sha256probe)
r   r   provider_auth_checkr   exitreceipt_pathr!   r  r   r/   )r  r  r  s      r'   r  r     s    ,,-PQeed:oZ^_a6..6gFcdjdqdqdwdwFw>x8x--%%s6;N;N7OXqrrr&   c                    t               } |        }t               }||k7  rt        d      i |t        t        t        t
        t        |d   dS )Nz2provider readiness changed protected profile bytesr   )	candidateproductr  r  config_sha256protected_profile_digest)r  r!   r$  r%  r!  r#  
CONFIG_SHA)actionbeforer  afters       r'   provider_before_mutationr     sn    VXf5G5Iu
EM!UVV 	M6  	MdWM_  vE  V`  |B  CK  |L  	M  Mr&   c                N    t        |       } ||        |       } |       }|||fS r)   )r  )provider_actionprovider_doneprepare_actionruntime_actionprovider_resultr  r  s          r'   ordered_pre_runtimer     s1    )/:

		((r&   c                n  K   t        j                  d      j                  } ||      4 d {   }|j                  t	        t
              d| z   d       d {   }d d d       d {    t        j                        t        |j                        dS 7 k7 A7 3# 1 d {  7  sw Y   CxY ww)Nrt   `   DualCoach 시작 초대입니다. 아래 링크를 눌러 본인이 직접 시작해 주세요.
T)r   r1   disable_web_page_preview)
message_idr   )	r   r   r  send_messager   r   r   r  r   )linkr  r  r  sents        r'   sendr     s     Z(,,JJ##*:*:3u:  Tw  x|  T|  VZ*:  +[  %[tJJ$//*S5FGG   %[JJJJsV   ,B5BB5(B BB B5*B+0B5B B5 B2&B)'B2.B5c                   t         t        fD ]  }t        ddd|gd        | dz  }|j                  dd       d	D ]f  }t        |z  }|j                         s|j                         r.||z  }|j                  j                  ddd
       t        j                  ||       h t        | dz  dd|t                      y )Nr_   r`   stopFzrollback-archiverQ  T)rS  r8  )rV  r   r   r   r   r   r   r   r   r   r   )r'  rS  r8  receipt.jsonlCLEAN_ROLLBACKBLOCKED_CLEAN_ROLLBACK)r  reasonr   )r   r   r<   r:  r}   r   r  r  rN   renamer]   r   )rootr  rp   r   relr5  r   s          r'   rollbackr     s    =!T7,@&QU+VW\#]!	 	 '--UD-"I xS	&]]_V..0
#+6v}}**4UD*QSUS\S\]cdjSk x _-5MU[emeopr&   c            	      
   t        j                         } | j                  dd       | j                         }t	        t
              j                         j                  }|dz  	 t               }t               }|j                  dk(  rt        dd||       y	j                         r9t        d
 j                         j                         D              rt!        d      t        ddt#        j$                         j&                         t(        dz  j+                  d       t-        j.                  d      j1                  t2              j4                  j6                  }dZfd}d[fd}dZfd}dZfd}	t9        ||||	      \  }
}}|j;                  d      }t=        j>                  tA        |||            }t        d|d   |d   |d          tC        tD        dz        tF        k7  sOtC        tD        dz        tH        k7  s6tC        t2        dz        tJ        k7  stM               |d    k7  stO               d	k7  rt!        d!      t        d"tP        tJ        d	#       tS        jT                  d$|z   jW                               jY                         }t        d%d&tZ        |d'   |d(   |)       t=        j>                  t]        ||            }t        d.fd/d0d1| d2|d3    d4}t        d5fi d6d5d7tP        d8td        d9tf        d:th        d;tk        tl        j                  j                        d<tk        tl        j                  j                  d=z        d'|d'   d>|d>   d(|d(   d?|d?   d@|d   dA|
dBtn        dCtp        dDts        tn              dEts        tp              dF|dF   dG|d3   dHd0dI|dI   dJ|dJ   dK|dK   dL|dL   dM|dM   dNdOdPdOdQdOdRd5dS| tu        d5       tu        |       y	# t^        $ r3}t        d*d+ta        |      jb                  ,       t!        d-      |d }~ww xY w# tv        $ r}|j                  dTk(  rj                         rxt        dU j                         j                         D              rJty        |tk        |             n4# tv        $ r(}tu        dV| tz        j|                  W       Y d }~nd }~ww xY wtu        dX| tz        j|                  W       Y d }~yYd }~ww xY w)\NrS  )dry-runexecute)choicesr  r  DRY_RUNPASS_ZERO_MUTATIONS)r  	installedr   r   c              3  j   K   | ]+  }t        j                  |      j                  d       dk(   - ywr>   ONE_USENr  ri   s     r'   rl   zmain.<locals>.<genexpr>   s+     nMmdjjm//8)CMmr  z&one-use marker exists; retry forbiddenr  
CLAIMED_V7)r  markerzprivate-runtime-evidencerQ  rR  zgateway.configc                     t               S r)   )r  )r  s   r'   r  zmain.<locals>.provider_action   s    x~(=r&   c                     t        dfi |  y )NPROVIDER_READY)r]   )r  rY   s    r'   r  zmain.<locals>.provider_done   s    @P1ZSY1Zr&   c            
         t               } | j                  d      }|| d<   t        dfi | j                         D ci c]  \  }}|dk7  s|| c}} | S c c}}w )Nrk  _private_linkPREPARED)r  popr]   r   )r  r   r   vrY   s       r'   r  zmain.<locals>.prepare_action   s    
)6VZZ8WRY&:Q[abijt  \n  HN  HT  HT  HV  xm  HV  AD  AB  CD  Z[  ]l  Zlxyz{x{  HV  xm  \n  w}  p}  xms   AAc                 8    t              } t        dfi |  | S )NRUNTIME_READY)r  r]   )r  rY   r  s    r'   r  zmain.<locals>.runtime_action   s     

6vgoGGPVr&   r  MEMBERSHIP_READYevidence_sha256r  r  )r  r  r  r  r  r   r   zREADY invariant changedREADY)r  r  r   r  INVITE_INTENTATTEMPTING_UNKNOWN_IS_TERMINALra  rc  )r  destinationra  rc  message_sha256INVITE_UNKNOWNTERMINAL_NO_RETRY)r  
error_typez)invite outcome unknown; terminal no retryINVITE_RESULTSENT_EXACTLY_ONCErg   )r  invite_countz Open latest Telegram message ID r  z and tap Start only.READY_CUSTOMER_CLAIMr  r  r  r  r  r  profile_packagezlib/python3.12/site-packagesrb  re  membership_evidence_sha256r  gateway_unitobserver_unitr	  r  r  invite_message_idr  rf  rg  rh  ri  rj  rx   Fry   rz   authority_stateexact_user_actionr  c              3  j   K   | ]+  }t        j                  |      j                  d       dk(   - ywr  r  ri   s     r'   rl   zmain.<locals>.<genexpr>   s8       7H  gGabtzz!}7H7H7QS\7\  gGr  zROLLBACK FAILURE: )filez	BLOCKED: r  returndict[str, Any])r  r*  r)  None)?argparseArgumentParseradd_argument
parse_argsr   r&  r   r  r6  r   rS  r]   r   r   r~   ro   r!   rm  rn  ro  r  r:  r   r   load_gateway_preflight_inputsr}   rt   secretr  r  asyncior5   r  r/   r   r"  r!  r  r   r   r$  r*   r+   rM   r-   r   r  BaseExceptiontyper"   r%  r(  r)  r   r  r   r   rq   print	Exceptionr  r  r7   )parserr9   r  proofbaser  r  r  r  r  r  r  r  r  membermessage_hashr  exchandoffcleanuprY   r  s                       @@r'   mainr?     s*   !6#6#6vF[#6#\cictctcv^b  ~B  CK  ~L  ~T  ~T  ~V  ~]  ~]x|  gk  l{  g{  _f5%
4	YY	6');P[`jnoxy^^#nWM^M^M`MkMkMmnnv}  g  wh  qh,djjl6F6FG&&$


(> 01OOPWXaahh%=Z}W#6}Ucdr#s"/(7||O$$	ZXge<	=&vgN`qw  yJ  rK  _e  fz  _{  OU  Vj  Ok  @l,	,-|;s9[CX?Y[m?mqtu|  ~K  vK  rL  NX  rX  \a  \c  ei  jq  er  \r  vD  vF  HI  vI  QX  Yr  Qs  Ks4jAN~~   C  DH   H  P  P  R  S  ]  ]  _,(HUZgop}g~  KS  T`  Ka  q}  ~KKT%()tR(;RTR,T,-?,@@T
U''  ~/E  ~PT  ~]d  ~  zD  ~  Ze  ~  nq  rx  r  r  rF  rF  nG  ~  X[  \b  \i  \i  \p  \p  qO  \O  XP  ~  ]e  fs  ]t  ~  BJ  KY  BZ  ~  fn  o{  f|  ~  FN  OY  FZ  ~  v|  }N  vO  ~  Yh  ~  vz  ~  IV  ~  _d  ei  _j  ~  ty  zG	  tH	  ~  _	f	  g	~	  _		  ~  R
V
  W
c
  R
d
  ~  r
s
  ~  GO  Pd  Ge  ~  |D  E\  |]  ~  t|  }T  tU  ~  lt  uL  lM  ~  dl  mD  dE  ~  QV  ~  `e  ~  w|  ~  Mc  ~  v}  ~w	 
  ~vg.>FYeijmenewewx  AH  It  Au  {~  {~  ~
 	 5	YY	gnn.3  7Hfmfwfwfy  gE  gE  gG  7H  4Hc#h
U(:7)&D#** U UU)C5szz*1	5so   '3Q HQ 7P D/Q 	Q.P==QQ 	TATR10T1	S":STS""!TT__main__)r.   r   r)  r   )T)r9   z	list[str]r:   boolr)  z subprocess.CompletedProcess[str])rY   r   r>   r   rZ   r	   r)  r+  )rp   r   r)  dict[str, str])r)  zdict[str, bool])r)  r   r(  )r   r   r   r   r)  r*  )r.   r   rG  zCallable[[Path], bool]rH  floatr)  r+  )r  r   r)  r*  )
r  r   r  r*  r  r*  r  r   r)  r*  )r  Callable[[], dict[str, Any]]r)  r*  )
r  rD  r  z Callable[[dict[str, Any]], None]r  rD  r  rD  r)  z5tuple[dict[str, Any], dict[str, Any], dict[str, Any]])r  r   r  r   r)  rB  )r  r   r  r   r)  r+  )N__doc__
__future__r   r,  r2  r   r   r;  r*   r   importlib.metadatar   rI   rN   rA  r   r4   r  r   rm  r   r   r   r   ru  pathlibr   typingr	   r
   zoneinfor   r}   r   r  r  r   r  r$  r%  r!  r#  r  r"  r(  r)  r   r   ry  r   r   r   r  r@  RuntimeErrorr!   r/   r<   r]   rq   r   r   r   r   r6  rL  r  r  r  r  r  r  r  r  r  r?  r"   
SystemExitr%   r&   r'   <module>rM     s   F " X  X  X  X  X  X  X  X  X 9 9    89g,

= cd
{
|	G  RTU   hjWf  wy  lvP  ^`R\  np  bm,E5P>  OA  Pv  CO f	
	 !l ! M

HGi.w"x.	l	o	Es
M)Hq 5B Zz$&11r&   