+
    Ti                        R t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIH	t	 Rt
RtRtRtRtRtR	tR
tRtRt^tRtRt/ RRbRRbRRbRRbRRbRRbRRbRRbRRbRRbRRbRRbRRbRRbRRbR!RbR#RbR$R/Ct]! ]P3                  4       4      t/ R^bR^&bRRbRR%bRRbRR"bR^bR^
bRR&bR^<bR^bRR'bR$R(bR!R)bRRbRR*bRR)bR#R+R,R-R.R-R/R0/Ct. R1R$R2/R33NR4R$R /R53NR6R$R7R!R /R83NR9R$R)R!R/R:3NR;R#R</R=3NR>R!R?/R@3NRAR#R<R!R?/RB3NRCRR"RRD/RE3NRFRR RR<RRG/RH3NRIRRGRRGRRJ/RK3NRLRRMR^#RRGRR"/RN3NROR^RRMRRGRR"/RP3NRQRRGRRRRRJ/RS3NRTRRGRRURR/RV3NRWRRGRRMR^/RX3NRYR^R^*/RZ3NR[R,R0R.R-/R\3NR]R,R0R.R0/R^3NR_R,R0R.R-R/R0/R`3NRaR,R0R.R0R/R-R^/Rb3NRcR,R-R.R-R/R-/Rd3NReR,R0R.R0R/R-R^
R^/Rf3NRgR^/Rh3NRiR^/Rj3NRkR^/Rl3NRmR^/Rn3NRoR^/Rp3NRqR^-R^(/Rr3NRsR^RR/Rt3NRuR^RRU/Rv3NRwR^xRRx/Ry3NRzR^RRU/R{3NR|R^FRRx/R}3NR~RR/R3NRRR/R3NRR^R^</R3NRR^
R^/R3NRR^2R^/R3NRRRGRRMRRRR/R3NtR tR tR tR t R t!R t"R t#R t$R t%RR lt&R t'R t(R t)R t*R t+R t,R t-R t.R t/]0R8X  d
   ]/! 4        R# R# )u  
KALSHIBOT ITERATION ENGINE v6 — TIMESTAMP-ISOLATED LEARNING
============================================================
Major improvements over v5:

1. TIMESTAMP ISOLATION: Each experiment evaluated using ONLY its own trades.
   No more cross-contamination between experiments.

2. EV-BASED EVALUATION: Expected Value per trade is the true profitability
   metric. EV = WR * avg_win + (1-WR) * avg_loss. Goal: EV > 0.

3. INCONCLUSIVE HANDLING: < 5 trades = retry, not a wasted slot.

4. DEAD MARKET RECOVERY: 0 trades = blast all thresholds open next cycle.

5. PENNY BETS ENFORCED: All experiments use penny bets. Scale up after
   finding a profitable config.

6. BET SIZING REMOVED FROM QUEUE: Doesn't affect win/loss outcome.
   Those slots now test signal combos, phases, stop/target R:R.

7. EXPERIMENT STATE FILE: Writes experiment_state.json after each restart
   so smart_loop.py and the next iteration know the exact trade baseline.
N)defaultdictzC:\kalshibot\Automated\trackerz%C:\kalshibot\Automated\paper_trade.pyz+C:\kalshibot\Automated\trade_analytics.jsonz%C:\kalshibot\Automated\bot_state.jsonz5C:\kalshibot\Automated\tracker\iteration_history.jsonz,C:\kalshibot\Automated\tracker\learning.jsonz1C:\kalshibot\Automated\tracker\EXPERIMENT_LOG.txtz.C:\kalshibot\Automated\tracker\CHANGES_LOG.txtzC:\kalshibot\Automated\bot.pidz4C:\kalshibot\Automated\tracker\experiment_state.json{Gzt?{Gz?
SCORE_HIGHSCORE_MEDIUMBET_HIGH_MINBET_HIGH_MAXBET_MED_MINBET_MED_MAXMAX_POSITIONSENTRY_COOLDOWNMOMENTUM_SECONDSMOMENTUM_THRESHOLD{Gz?LAG_WINDOW_SECSLAG_MIN_BTC_MOVEMIN_MISPRICINGMAX_ENTRY_PRICE      ?MIN_ENTRY_PRICE333333?PROFIT_TARGET皙?TRAILING_STOP_PCT	STOP_LOSS皙?gMb@?ga2U0*C?g?gffffff?g)\(?g?BLOCK_EARLYF	BLOCK_MID
BLOCK_LATET
stop_tightg      ?u8   Tight stop (25%) — cut losses fast, lower breakeven WR
stop_looseu2   Loose stop (60%) — more breathing room per tradeideal_rrg333333?u4   2:1 R/R — 30% stop + 60% target, breakeven WR ~33%stop_plus_targetu7   1.43:1 R/R — 35% stop + 50% target, breakeven WR ~41%rr_tight_stopg{Gz?u6   Tight trailing stop (8%) — cut per-trade losses fastrr_high_profitg      ?u4   High profit target (75%) — let winners run furtherrr_combined_rru5   Combined — tight trailing stop + high profit targetrr_cheap_entryg?u2   Only cheap contracts (<=0.55) — more upside roomtight_entry_windowgQ?u1   Narrow entry band — avoid extreme R/R contractsexp_onlyg~jt?u-   EXP-only mode — disable MOM and LAG signalsmom_only-C6*?u-   MOM-only mode — disable EXP and LAG signalslag_onlyu-   LAG-only mode — disable EXP and MOM signalsexp_lagg-C6:?u!   EXP+LAG mode — disable MOM onlyexp_momga2U0*3?u!   EXP+MOM mode — disable LAG onlyexp_mom_focusedu3   EXP+MOM focused — data shows 78% WR on this comborequire_two_signalsu2   Force 2+ signals — EXP alone historically 14% WRblock_earlyzBlock early phase (>8 min left)block_early_midz"Only near+late phase (<4 min left)mid_near_onlyu5   Mid+near only (2-8 min) — skip noisy early AND late	near_onlyu6   Near phase only (2-4 min) — highest certainty window
all_phasesu+   All phases open — test no blocking at all	late_onlyu9   Late phase only — final minutes, highest time certaintyscore_med_6u+   Very low score bar — maximum trade volumescore_med_8u    Low score bar — high frequencyscore_med_15zMedium score barscore_med_20u"   Raised score bar — quality focusscore_med_28u!   High score bar — very selectivescore_high_45z3Need all 3 signals (score 40+ requires EXP+LAG+MOM)rr_selectiveu/   Higher entry bar — only trade cleaner signalsmom_fastzFast momentum (25s window)mom_slowg-C6J?zSlow momentum (120s window)	lag_tightzTight LAG window (15s)lag_widezWide LAG window (70s)misprice_lowu-   Very low mispricing bar — catch small edgesmisprice_highg?u.   High mispricing bar — only trade large edgespositions_1u4   Single position — total concentration per contractpositions_10u    10 positions — moderate spreadpositions_50u+   50 positions — maximum spread, data floodexp_mom_big_betsg       @g      @u8   EXP+MOM + bigger bets — high conviction on best signalc                      \        V R R7      ;_uu_ 4       p\        P                  ! V4      uuRRR4       #   + '       g   i     R# ; i   Tu # ; i)utf-8encodingN)openjsonload)pathdefaultfs   && )C:\kalshibot\Automated\tracker\iterate.pyrM   rM      s;    $))Q99Q< *)))s%   A 8
A A		A 	A Ac           	          \        V R RR7      ;_uu_ 4       p\        P                  ! W^\        R7       RRR4       R#   + '       g   i     R# ; i)wrH   rI   )indentrO   N)rK   rL   dumpstr)rN   datarP   s   && rQ   saverX      s2    	dC'	*	*a		$!S1 
+	*	*	*s	   ?A	c                 v   \         P                   P                  4       P                  R 4      pRV RV  2p\        VRR7        \	        \
        P                  P                  \        R4      RRR7      ;_uu_ 4       pVP                  VR	,           4       R
R
R
4       R
#   + '       g   i     R
# ; i    R
# ; i)%Y-%m-%d %H:%M:%S[] Tflushziterate_run.logarH   rI   
N)
datetimenowstrftimeprintrK   osrN   joinTRACKER_DIRwrite)msgtslinerP   s   &   rQ   logrl      s    						 	)	)*=	>Brd"SE?D	$d"'',,{,=>gVVZ[GGD4K  WVVVs*   8B3 <BB3 B0	*B3 0B3 3B8c                 F    V^ 8  d   \        W,          ^d,          ^4      # R# )            )round)nds   &&rQ   pctrs      s    q1ueAECK+=#=    c                 ,    \        V\        W 4      4      # N)maxmin)vallohis   &&&rQ   clampr|      s    s2s2|44rt   c                     \         P                  ! R \         P                  ! V4       R2V \         P                  4      pV'       d   \	        VP                  ^4      4      # T# )^z\s*=\s*([0-9.]+))researchescape	MULTILINEfloatgroup)contentnamerO   ms   &&& rQ   
read_paramr      sE    
		Qryy''78'2<<PA !5.w.rt   c            	      
   \        \        R R7      ;_uu_ 4       p V P                  4       pRRR4       \         Uu/ uF  q"\	        XV^ 4      bK  	  ppRX9   VR&   RV9   VR&   RV9   VR&   V#   + '       g   i     LJ; iu upi )	rH   rI   Nz&if   mins_left > 8.0: time_conf = 0.00r   z&elif mins_left > 4.0: time_conf = 0.00r   z&else:                 time_conf = 0.00r   )rK   
BOT_SCRIPTreadSIMPLE_PARAMSr   )rP   r   pparamss       rQ   get_current_paramsr      s~    	j7	+	+q&&( 
,4ABMqGQ**MFBDOF=DOF;DOF<M 
,	+Bs   A-B -A=	c                     \        \        . 4      p V  Uu. uF  qP                  R 4      R8X  g   K  VNK  	  ppR\        V4      R^ R^ RRRRRRR	RR
RRRRRRRR^ R/ R/ R/ /pV'       g   V# V Uu. uF  qP                  R4      R8X  g   K  VNK  	  ppV Uu. uF  qP                  R4      R8X  g   K  VNK  	  ppV Uu. uF  qP                  R^ 4      NK  	  pp\        V4      VR&   \        V4      VR&   \	        \        V4      \        V4      4      VR&   \        \        V4      ^4      VR&   V'       d&   \        \        V4      \        V4      ,          ^4      M^ VR&   V'       d-   \        \        R V 4       4      \        V4      ,          ^4      M^ VR	&   V'       d-   \        \        R V 4       4      \        V4      ,          ^4      M^ VR
&   VR,          R,          pVR	,          pVR
,          p	\        Wx,          RV,
          V	,          ,           ^4      VR&   V^ 8  d?   V	^ 8  d8   \        \        V	4      V\        V	4      ,           ,          ^d,          ^4      VR&   MRVR&   VR7R p
\        V
4      VR&   \	        \        R V
 4       4      \        V
4      4      VR&   \        R 4      pV F  pVP                  R^ 4      ^ 8  d   R.M. VP                  R ^ 4      ^ 8  d   R!.M. ,           VP                  R"^ 4      ^ 8  d   R#.M. ,           pR$P                  V4      ;'       g    R%pW,          R&;;,          ^,          uu&   W,          R;;,          VP                  R^ 4      ,          uu&   VP                  R4      R8X  g   K  W,          R';;,          ^,          uu&   K  	  VP                  4        UUu/ uF  w  rV\        V4      bK  	  uppVR&   \        R( 4      pV F  pVP                  R)R*4      pVR+8  d   R,MV^8  d   R-M
V^Z8  d   R.MR/pVV,          R&;;,          ^,          uu&   VV,          R;;,          VP                  R^ 4      ,          uu&   VP                  R4      R8X  g   K  VV,          R';;,          ^,          uu&   K  	  VP                  4        UUu/ uF  w  rV\        V4      bK  	  uppVR&   \        R0 4      pV F  pVP                  R1^ 4      pV^78  d   R2MV^(8  d   R3MV^8  d   R4M
V^8  d   R5MR6pVV,          R&;;,          ^,          uu&   VV,          R;;,          VP                  R^ 4      ,          uu&   VP                  R4      R8X  g   K  VV,          R';;,          ^,          uu&   K  	  VP                  4        UUu/ uF  w  rV\        V4      bK  	  uppVR&   V# u upi u upi u upi u upi u uppi u uppi u uppi )8eventexittotal_exits
total_winstotal_losseswin_ratero   	total_pnlavg_pnlavg_win_pnlavg_loss_pnlev_per_tradebreakeven_wr      I@	recent_wrrecent_ncombosphasesscoresoutcomeWINLOSSpnlc              3   D   "   T F  qP                  R ^ 4      x  K  	  R# 5ir   Nget.0ts   & rQ   	<genexpr>analyze.<locals>.<genexpr>   s     !?$Q%%a..$    c              3   D   "   T F  qP                  R ^ 4      x  K  	  R# 5ir   r   r   s   & rQ   r   r      s     !A&Q%%a..&r   g      Y@g      ?Nc              3   T   "   T F  qP                  R 4      R8X  g   K  ^x  K   	  R# 5i)r   r   Nr   r   s   & rQ   r   r     s      L1%%	2Be2KQQs   (
(c                      R ^ R^ RR/# winstotalr   ro    r   rt   rQ   <lambda>analyze.<locals>.<lambda>      VQE3$Grt   	exp_scoreEXP	lag_scoreLAG	mom_scoreMOM+NONEr   r   c                      R ^ R^ RR/# r   r   r   rt   rQ   r   r     r   rt   	secs_left,  i  earlymidnearlatec                      R ^ R^ RR/# r   r   r   rt   rQ   r   r     r   rt   confidence_scorez55+z40-54z25-39z18-24zunder-18i)rM   ANALYTICS_PATHr   lenrs   rp   sumabsr   rf   itemsdict)	analyticsr   exitsrr   lossespnlswr_fracavg_wavg_lrecent	combo_mappartscombokv	phase_mapsecsphase	score_mapscbs                         rQ   analyzer      s'   ^R(I!>	1UU7^v%=QQ	E>	E
L!^Q	S+sIs	^S	nd	c:q	2xXr	3A <A%%	"2e";aaD<=A%%	"2f"<aaF=',-u!eeE1ouD-D	AlOFAnCIs5z2AjMc$i+AkN9=c$iD	1151AiLQUc!?$!??D	I1M[\AmU[c!A&!AA#f+MqQabAn
me#GEEgow%0GGKAnqyUQY!#e*E
0B"Cc"I1M. .34[F[AjMLLLcRXkZAkNGHIEE+a02%EE+a02%<EE+a02%< ))6!Q&!QUU5!_455u$i&6v&>!&C&>  +4//*;<*;$!1d1g:*;<AhKGHIk3'8$s($r'W]%!Q&!%QUU5!_455u$i&6v&>!&C&>  +4//*;<*;$!1d1g:*;<AhKGHIUU%q)"fURV'BF[]_a[aPWgq!W"!Uua055u$il6&:a&?&:  +4//*;<*;$!1d1g:*;<AhKHE ? ==-@ = = =s:   WW0WWW4W W W1W%+W+c                   \        \        . 4      pV Uu. uF  q3P                  R4      R8X  g   K  VNK  	  pp. pV ^ 8  d*   V Uu. uF  q3P                  R^ 4      V 8  g   K  VNK  	  ppV'       g   V\        V4      8  d   WAR p\        V4      pV^ 8X  d   R^ RRRRR	RR
RRRRR/# V Uu. uF  q3P                  R4      R8X  g   K  VNK  	  ppV Uu. uF  q3P                  R4      R8X  g   K  VNK  	  ppV Uu. uF  q3P                  R^ 4      NK  	  p	p\	        \        V4      V,          ^d,          ^4      p
V'       d-   \	        \        R V 4       4      \        V4      ,          ^4      MRpV'       d-   \	        \        R V 4       4      \        V4      ,          ^4      MRpV
^d,          p\	        W,          ^V,
          V,          ,           ^4      pV^ 8  d;   V^ 8  d4   \	        \        V4      V\        V4      ,           ,          ^d,          ^4      MRpRVRV
RVR	VR
VR\	        \        V	4      ^4      RV/# u upi u upi u upi u upi u upi )z
Analyze ONLY trades from the current experiment window.
Uses timestamp as primary filter, count-based slice as fallback.
Eliminates cross-contamination between experiments.
r   r   
entry_timeNrq   wrro   evavg_winavg_lossr   r   r   r   r   r   r   c              3   D   "   T F  qP                  R ^ 4      x  K  	  R# 5ir   r   r   s   & rQ   r   #analyze_isolated.<locals>.<genexpr>>  s     6AuQr   c              3   D   "   T F  qP                  R ^ 4      x  K  	  R# 5ir   r   r   s   & rQ   r   r   ?  s     8AuQr   )rM   r   r   r   rp   r   r   )
start_timestart_countr   r   	all_exits	exp_exitsrq   r   r   r   r   r   r   r   r   bkevens   &&              rQ   analyze_isolatedr   $  s.    ^R(I%BIqw6)AIIBIA~ )R	1UU<-Cz-QQQ		Rs9~5l+	IAAvQc4iCc>4I 	I #@AeeI&6%&?aaD@"AAeeI&6&&@aaFA'01y!eeE1oyD1SY]S(!,BNRuS6663t9DJZ]GNTuS8883v;FJZ]HCxGW&!g+)AA1EBA+(Q, S]gH&=>DaH48  D"dB	7+uSY/BNTZ\ \5 C S AA1s4   H>H>I#I-I	II1I=Ic                   \        \        . 4      pV Uu. uF  q3P                  R4      R8X  g   K  VNK  	  ppW@R pV Uu. uF  q3P                  R4      R8X  g   K  VNK  	  pp\        V4      V8  d   Wa) R MTpV'       g   / # V Uu. uF  q3P                  RR.4      NK  	  ppV Uu. uF  q3P                  R^ 4      NK  	  p	pV Uu. uF  q3P                  R^ 4      NK  	  p
pV Uu. uF  q3P                  R	^ 4      NK  	  ppV Uu. uF  q3P                  R
^ 4      NK  	  ppV Uu. uF  q3P                  R^ 4      NK  	  ppV Uu. uF  q3P                  R^ 4      NK  	  ppV Uu. uF  q3P                  R^ 4      NK  	  ppV Uu. uF  q3P                  R^ 4      NK  	  ppV Uu. uF  q3P                  R^ 4      NK  	  ppV Uu. uF  q3P                  R^ 4      NK  	  pp/ / / pppV F  pVP                  RR4      pVP                  RR4      pVP                  RR4      pVP                  V^ 4      ^,           VV&   VP                  V^ 4      ^,           VV&   VP                  V^ 4      ^,           VV&   K  	  R pR p/ R\	        \
        P
                  P                  4       4      bR\        V4      bR\        \        V4      ^4      bRV! V4      bRV! V4      bRV! V	4      bRV! V	4      bRV! V
4      bRV! V4      bR V! V4      bR!V! V4      bR"V! V4      bR#V! V4      bR$V! V4      bR%V! V4      bR&V! V4      bR'V! V4      bR(TR)TR*TR+V! V4      R,V'       d   \        \        V4      ^4      M^ R-V'       d   \        \        V4      ^4      /C# ^ /C# u upi u upi u upi u upi u upi u upi u upi u upi u upi u upi u upi u upi u upi )/a:  
Extract characteristics of the most recent N winning trades from an experiment.
Returns a signature dict stored in learning.json as 'hot_streak_signature'.
Identifies WHAT conditions produce winning streaks so future experiments can
bias toward replicating them (hour, scores, price range, momentum, phase, etc.)
r   r   Nr   r   hourr   r   r   r   entry_pricer   momentum_pctmomentum_strengthbtc_volatilityr   	direction?r   tierc                 `    V '       d&   \        \        V 4      \        V 4      ,          ^4      # ^ #    )rp   r   r   lsts   &rQ   avg&analyze_hot_streak_trades.<locals>.avgq  s"    #s3x#c(2A6D1Drt   c                 n    V '       d+   \        \        V 4      ^4      \        \        V 4      ^4      .# ^ ^ .# r   )rp   rx   rw   r  s   &rQ   rng&analyze_hot_streak_trades.<locals>.rngr  s.    S%C!,eCHa.@ATqRSfTrt   captured_atstreak_sizer   avg_hour
hour_rangeavg_confidencescore_rangeavg_exp_scoreavg_lag_scoreavg_mom_scoreavg_entry_priceentry_price_rangeavg_secs_leftsecs_left_rangeavg_momentum_pctavg_mom_strengthavg_btc_volatilitydirection_dist
phase_dist	tier_distr   min_pnlmax_pnl)rM   r   r   r   rV   ra   rb   rp   r   rx   rw   )baseline_countrq   r   r   r   r   r   streakhoursr   
exp_scores
lag_scores
mom_scoresentry_pricesr   	momentumsmom_strsbtc_volsr   r  r  r  rr   phtir  r  s   &&                         rQ   analyze_hot_streak_tradesr+  J  s    ^R(I%BIqw6)AIEBo&I #@AeeI&6%&?aaD@d)q.T"#YdF	<BCFqEE&r2FEC<BCFqEE,2FFC<BCFqEE+2FJC<BCFqEE+2FJC<BCFqEE+2FJC<BCFqEE-2FLC<BCFqEE+2FIC<BCFqEE.2FIC<BCFqEE-2FHC<BCFqEE*2FHC<BCFqEE%2FDC,.B	JNUU;$UU7$UU6$+//A6:q'^^BA6:
2&]]2A6:	"  ETc("3"3"7"7"9:c&k 	eCIq1
 	c%j 	c%j 	c&k 	c&k 	c*o 	c*o 	c*o 	c,/ 	c,/  	c)n!" 	c)n#& 	c)n'( 	c(m)* 	c(m+. 	njic$iTeCIq1qTeCIq1; : @A; E C A DCCCCCCCCCCsX   NNN$N$
N)*N.
N3*N8
N=*O
O*O
O*O
Oc                  T    R \        \        4      RRRRRRR. R. R. R. R	RR
RR^ R^ R^ /# )champion_paramschampion_wrro   champion_recent_wrchampion_evproven_winnersproven_loserstested_labelsinconclusive_labelslast_recent_wrlast_evlast_n_tradesiterations_no_improvementdead_market_count     8)r   BASELINE_CONFIGr   rt   rQ   init_learningr<    sR    $"7##&""""#&!#Q! rt   c                :  a VP                  RR4      oVR,          pV^ 8X  dV   \        RS R24       V P                  R^ 4      ^,           V R&   SV R,          9   d   V R,          P                  S4       V R3# ^ V R&   V\        8  d|   \        R	V R
S R\         R24       SV P                  R. 4      9  d"   V P	                  R. 4      P                  S4       SV R,          9   d   V R,          P                  S4       V R3# SV P                  R. 4      9   d   V R,          P                  S4       V P                  RRA4      pVR,          pVR,          p\        RS RV RV RVR 24       \        RVR RWe,
          R 24       We8  d.   W`R&   WpR&   WpR&   \        4       V R&   \        RVR RVR R24       We,
          p\        V3R lV R ,           4       R!4      p	\        V3R" lV R#,           4       R!4      p
V\        8  d   V	'       dX   V	R$;;,          ^,          uu&   V	P                  R%^ 4      V^d,          ,           V	R%&   V	R%,          V	R$,          ,          V	R&&   WR'&   Mh\        V3R( l\         4       R!4      pV'       dG   V R ,          P                  R)SR*V^,          R+V^,          R$^R%V^d,          R&V^d,          R'VR,VR-V/	4       \        R.S R/VR0 R124       ^ V R2&   MV\        8  d   V
'       dT   V
R$;;,          ^,          uu&   V
P                  R%^ 4      V^d,          ,           V
R%&   V
R%,          V
R$,          ,          V
R&&   M.V R#,          P                  R)SR$^R%V^d,          R&V^d,          /4       \        R3S R4VR0 R124       V P                  R2^ 4      ^,           V R2&   M/\        R5S R6VR R724       V P                  R2^ 4      ^,           V R2&   V R ,          P                  R8 R97       VR:,          V R;&   VR<,          V R=&   VR>,          V R?&   V R@3# )Bz
Evaluate last experiment using only its timestamp-isolated trades.
Returns (updated_learning, status): "OK", "INCONCLUSIVE", or "DEAD_MARKET"
hypothesis_label rq   zDEAD MARKET: Zero trades in 'u   ' — will retryr9  r3  DEAD_MARKETzINCONCLUSIVE: Only z trades in 'z' (need u   ) — retryingr4  INCONCLUSIVEr0  r   r   zExperiment 'z':  trades | WR=% | EV=$+.4f  Champion EV: $z | Delta: $r.  r/  r-  z  NEW CHAMPION: EV=$z (was $u   ) — params savedc              3   F   <"   T F  qR ,          S8X  g   K  Vx  K  	  R# 5ilabelNr   )r   rS   
last_labels   & rQ   r   "update_learning.<locals>.<genexpr>  s     [$>qG*PZBZ$>   !
!r1  Nc              3   F   <"   T F  qR ,          S8X  g   K  Vx  K  	  R# 5irG  r   )r   lrI  s   & rQ   r   rJ    s     [$=qG*PZBZ$=rK  r2  runstotal_delta	avg_deltalast_ev_deltac              3   F   <"   T F  q^ ,          S8X  g   K  Vx  K  	  R# 5i)rn   Nr   )r   hrI  s   & rQ   r   rJ    s     J#3atz7I#3rK  rH  r   descexp_wrexp_evz  WINNER: 'z' improved EV by +$z.4fz/trader8  z
  LOSER: 'z' hurt EV by $z  NEUTRAL: 'z' EV delta $u    — not significantc                 (    V P                  R ^ 4      ) # )rP  r   )rS   s   &rQ   r   !update_learning.<locals>.<lambda>  s    155a3H2Hrt   keyr   r5  r   r6  r   r7  OKr:  )r   rl   removeMIN_EXPERIMENT_TRADES
setdefaultappendr   nextEV_WIN_THRESHOLDHYPOTHESIS_QUEUEEV_LOSE_THRESHOLDsort)learning	last_iterisolatedoverall_analysisrq   champ_evrV  rU  ev_deltawinner_entryloser_entryhyprI  s   &&&&        @rQ   update_learningrn    sU   
 126J#AAv+J<7GHI(05H!(Lq(P$%/22_%,,Z8&&$%H !  !!LHEZD[[ijkX\\*?DD 5r:AA*M/22_%,,Z8''X\\"7<<&'..z:||M62H~F~F,zl#aSfXXfT]ST
8D/V5Ft4LMN)/)/)/%&);)="#"6$-wxoEWXY$H[H-=$>[]abL[H_$=[]abK"" 1, +7+;+;M1+MPX[^P^+^L'+7+FV\I]+]L%,4)J#3JDQC)*11Z3q663q6A}hnk8VY>#Xx63 
 	k*%8#fMN01,-	%	%!+*5//-*KhY\n*\K&*5m*D{SYGZ*ZK$_%,,VQx#~{HsN.  	jN8C.GH08=XZ[0\_`0`,-l:,l8D/AUVW08=XZ[0\_`0`,-##(H#I!1+!>H!1.!AHY!1-!@H_T>rt   c                    VR ,          pV R,          pV R,           Uu. uF  qfR,          NK  	  pp\        V R,          4      pV P                  R^ 4      p	V P                  R^ 4      p
VR8X  d   \        R4       R	R
/ R3# VR8X  g   V
^8  d(   \        R4       RRR^RRRRRRRRRRRRRRRRR^R^/R 3# V^8  d   R!R"R^RR#RR$RR#RRRRR^R^/R%3# \        V4      ^8  d   V^,          ^ 8X  d   / p. pV F3  pVP	                  VR&,          4       VP                  VR,          4       K5  	  R'R(P                  VR),          4      ,           pR*\        V4       R+R,P                  VR-,          4       2p\        R.\        V4       R/24       R0WV3# \         F/  w  pppW9  g   K  W9  g   K  \        R1V R224       R3VVR4V 23u # 	  V'       d   V^ ,          pVR5,           Fn  pR6VR,           R(VR,           2pVV9  g   K"  / pVP	                  VR&,          4       VP	                  VR&,          4       R7VVR8VR,           R9VR,           23u # 	  V	^8  d   R:R^2R^R^/R;3R<R^2R^R^
/R=3R>RR?RR?R^R^/R@3.pV UUUu. uF  w  pppWh9  g   K  VVV3NK  	  ppppV'       d5   VV\        V4      ,          ,          w  ppp\        RAV	 RBV 24       RCVVV3# RDRE/ RF3# u upi u upppi )Gr   r1  r2  rH  r3  r8  r9  
HOT_STREAKzM*** HOT STREAK CONFIRM: Re-running champion params to validate win streak ***CONFIRM_CHAMPIONconfirm_championuK   HOT STREAK CONFIRM — re-running champion params to prove the edge is realr@  zEDEAD MARKET RECOVERY: Opening all thresholds to force market activityMARKET_WAKEmarket_waker   r   g-C6?r   r   Mb`?r   r   r   gffffff?r   Fr   r   r   r   u<   Dead market recovery — opening all filters to force tradesDATA_GATHERdata_gatherr*   r   uA   Gathering baseline data — need minimum trades to start learningr   combine_r   :N   NzCOMBINE: Testing all z proven winners: , :Nr  NzCOMBINE run: merging z proven winnersCOMBINEzEXPLORE: Testing ''SINGLE_TESTzEXPERIMENT: :   NNcombo_COMBINE2z
COMBINE2: z
 (best) + 
wild_floodu,   WILD: Flood mode — max positions, max datawild_allthreez'WILD: Require all 3 signals (score 50+)	wild_lateTu1   WILD: Late-only — highest time certainty windowzWILD: Stuck u    iters — trying WILDBASELINEbaseline_checku;   Champion config unchanged — confirming baseline stability)setr   rl   r   updater_  rf   rb  )re  analysisiteration_numlast_statusrq   winnersrM  loserstestedstuck_iters
dead_countcombinedlabelsrS   rH  rT  r   topw2combo_labelwild_optionsr   rr   untrieds   &&&&                    rQ   pick_experimentr    s   =)A+,G'/'@A'@!W::'@FAh/0F,,:A>K,,2A6J l"[\"$6]_ 	_ m#zQSU}$8&#V-=u"D*;T{E< "&6	;
 OP 	P 	1u}$8&!5*<f{E "&6; TU 	U 7|q]Q.!3AOOAhK(MM!G*%  SXXfRj11'G~5FtyyQWXZQ[G\F]^#CL>AB5D11/vt5#6$UG1-.!5&L2GHH  0
 aj"++B"3w<."W+?K&(H.8-"K$S\N*R[MJL L  a4DaYZ[LN~r?AGWY[\GI}dK~WY/4QS
 )5Huq17Aa7H")-#g,*F"GE64,{m+=eWEFE6400("IK KQ BD Is   K#K(	K(c                   a \        VR ,          4      p\        V4      pV R9   d>   VR,           F0  pVP                  VR,          4       \        RVR,           24       K2  	  VP                  S4       0 Rmp\        ;QJ d    V3R	 lV 4       F  '       g   K   R
M	  RM! V3R	 lV 4       4      '       g    RVR&   RVR&   RVR&   RVR&   \        R4       V# )r-  r1  r   z  [proven] Applied winner: rH  r   r   r	   r
   c              3   ,   <"   T F	  qS9   x  K  	  R # 5irv   r   )r   r   	overridess   & rQ   r   "build_param_set.<locals>.<genexpr>Y  s     0x!I~xs   TFr   r   r   u?     [safety] Penny bets enforced — minimize risk while learning)r}  r  r  RR_FIXrs  rq  >   r
   r	   r   r   )r   r  rl   any)experiment_typer  re  basefinalrS   BET_KEYSs   &f&    rQ   build_param_setr  L  s    +,-DJEjj*++ALL8%-aj\:; , 
LL NH30x03330x000 $n $n $m $mMNLrt   c           
         \        \        R R7      ;_uu_ 4       pVP                  4       pRRR4       . pV P                  4        EF  w  rgV\        9   Ed   \
        V,          w  r\        V\        4      '       d   \        V4      pVR 9   p
V
'       d(   \        \        \        \        V4      W4      4      4      M'\        \        \        \        V4      W4      ^4      4      pR\        P                  ! V4       R2p\        P                  ! VRV R2X\        P                   R7      w  rV^ 8  d)   TpVP#                  Wk34       \%        RV R	V 24       EK  \%        R
V R24       EK'  VR8X  d   RpV'       d   RMRpR\        P                  ! V4       R2p\        P                  ! VRV 2X4      w  rV^ 8  d;   TpTP#                  RV'       d   RMR34       \%        RV'       d   RMR 24       EK  EK  VR8X  d   RpV'       d   RMRpR\        P                  ! V4       R2p\        P                  ! VRV 2X4      w  rV^ 8  d;   TpTP#                  RV'       d   RMR34       \%        RV'       d   RMR 24       EKD  EKG  VR8X  g   EKQ  RpV'       d   RMRpR\        P                  ! V4       R2p\        P                  ! VRV 2X4      w  rV^ 8  g   EK  TpTP#                  RV'       d   RMR34       \%        RV'       d   RMR 24       EK  	  \        \        RR R7      ;_uu_ 4       pVP'                  X4       RRR4       V#   + '       g   i     EL5; i  + '       g   i     T# ; i)!rH   rI   Nz^(z\s*=\s*)[0-9.]+(.*)$z\g<1>z\2)flagsz  SET  = z  WARN: z not found in bot scriptr   z!if   mins_left > 8.0: time_conf =z0.00z0.55(z\s*)([0-9.]+)YESNOz  EARLY phase: BLOCKEDOPENr   z!elif mins_left > 4.0: time_conf =z0.80z  MID phase: r   z!else:                 time_conf =z1.00z  LATE phase: rS   )r   r   r   r   r   r   )rK   r   r   r   r   PARAM_RANGES
isinstanceboolr   rV   intr|   rp   r   r   subnr   r_  rl   rh   )final_paramsr  experiment_labelrP   r   appliedparamvaluerz   r{   is_intval_strpatternnew_contentrq   prefixnew_vals   &&&              rQ   apply_paramsr  c  s   	j7	+	+q&&( 
, G$**,M!!%(FB%&&e O OF?Ec#eE%L"9:;uU5<%@!DE  BIIe,--ABGWWWwir.BGSUS_S_`NK1u%/0fUG3wi01hug%=>?m#9F %f6G299V,-];GWWWwi.@'JNK1u%u4HIo5if%EFG 
 k!9F %f6G299V,-];GWWWwi.@'JNK1u%eUFGmIF#CDE 
 l"9F %f6G299V,-];GWWWwi.@'JNK1u%ue$GHn%YV$DEF_ -b 
j#	0	0A	 
1 Ns 
,	+	+l 
1	0 Ns   M;M+M(	+M<	c            	      F   \        R 4       \        P                  P                  \        4      '       d    \        \        4      ;_uu_ 4       p \        V P                  4       P                  4       4      pRRR4       \        P                  ! RRR\        X4      .R^
R7      p\        RV RVP                   24       \        P                  ! \        4        \        P                  ! . ROR^R7       \        P                   ! ^4       \        R4       Rp \        P"                  ! RRV.\        P$                  RR7       \        R4       \        P                   ! ^
4       \'        \(        / 4      pVP+                  R^ 4      ^ 8  d+   \        RVR,           RVP+                  R^ 4       24       R# \        R4       R#   + '       g   i     ELU; i  \         d   p\        R	T 24        Rp?EL6Rp?ii ; i    EL); i  \        P                  ! \        4       i     i ; i; i  \         d   p\        RT 24        Rp?ELURp?ii ; i  \         dE   p\        RT R24       Rp\        P                  ! R
RRT.R^R7       \        R4        Rp?ELNRp?ii ; i)zKilling existing bot...Ntaskkillz/Fz/PIDT)capture_outputtimeoutzKilled python PID z: exit=zPID kill failed: 
powershell-NonInteractive-CommandzWMI cleanup note: zStarting new bot...zRtitle Kalshibot-Automated && cd /d C:\kalshibot\Automated && python paper_trade.pycmdz/k)creationflags	close_fdszBot window launched via PopenzPopen failed (u#   ) — falling back to Start-ProcesszStart-Process cmd -ArgumentList '/k title Kalshibot-Automated && cd /d C:\kalshibot\Automated && python paper_trade.py' -WindowStyle Normalz+Bot window launched via PowerShell fallback	btc_priceu   Bot OK — BTC=$z  Balance=$balanceu.   Bot starting up (state not flushed yet — OK))r  r  r  zGet-WmiObject Win32_Process | Where-Object { $_.CommandLine -like '*Automated*paper_trade*' } | ForEach-Object { Stop-Process -Id $_.ProcessId -Force -ErrorAction SilentlyContinue })rl   re   rN   existsPID_FILErK   r  r   strip
subprocessrunrV   
returncode	Exceptionr\  timesleepPopenCREATE_NEW_CONSOLErM   BOT_STATE_PATHr   )pfold_pidresultebot_cmdps_cmdstates          rQ   restart_botr    s2   !"	ww~~h
	h2bggioo/0  ^^Zvs7|$L48"FF$WIWV5F5F4GHI 8$&F	- 	JJqM  

;%w/'1'D'DPT	V+, 	JJrN$Eyya 1$u[12+eii	RS>T=UVW  	<=[  
  	)#A3'((	) D 8$D  & $%%&  ;nQCBCDb&7VL&*B	89::;s   G (G5A	G >G< H* 5I G		G G9 G4.H 4G99H <HH'H H' H$"H'*I5I		IJ 9JJ c                    RV RVR\         P                   ! 4       RVR\        \        P                  P                  4       4      /p\	        \
        V4       \        RV  RV R24       R	# )
z
Written after each bot restart. Read by smart_loop.py (for baseline trade count)
and by the next iterate.py run (for isolated evaluation).
rH  r  r   start_trade_countstart_tszExperiment state saved: 'z' | baseline=z tradesN)r  rV   ra   rb   rX   EXPERIMENT_STATE_PATHrl   )rH  n_trades_at_startexp_typer  s   &&& rQ   save_experiment_stater    sf     	UXTYY[.S!2!2!6!6!89E 		&
#E7-8I7J'RSrt   c                    \         P                   P                  4       P                  R 4      pVR,          p	VR,          p
VR,          pVR,          pVR,          pVR,          pVR,          pVP                  R^ 4      pVP                  R	R
4      pVP                  RR
4      pRRX 2RV  RV 2RV RV 2RV 2RX RV RV RVR 2RV	 RV
 RV RVR 2RVR RV R2R\	        V4       RRP                  R VR ,           4       4       2R!R".pV F  w  ppVP                  R#V R$V 24       K  	  VP                  R!4       \        \        R%R&R'7      ;_uu_ 4       pVP                  RP                  V4      R,           4       R(R(R(4       V^ 8  d   R)MR*V R+2pR!P                  . R,NV  NRNV NR-NV NR.NV NR/NV NR0NV NR1NV NR2NVR NR3NVP                  R^ 4      R NR4NVP                  R5^ 4      R NR6NVP                  R7^ 4      R NR8NV	 NR9NV
 NR:NV NR;NV NR<NVR NR=NVR NR>NV NR?N4      p\        VR@,          P                  4       RA RB7       FF  w  ppVRVRC RVRD,          RE RF\        VRG,          VRD,          4      RH RIVRJ,          RK R2	,          pKH  	  VRL,          pRY Fr  pVRM,          P                  VRG^ RD^ RJR
/4      pVRD,          ^ 8  g   K2  VRVRN ROVRD,          RE RF\        VRG,          VRD,          4      RH RIVRJ,          RK R2	,          pKt  	  VRP,          pV F6  pVRVRQ,          RR RSVP                  RT^ 4      RK RUVRV,           R2,          pK8  	  VRW,          pV F  w  ppVRV R$V R2,          pK  	  VR,          p\        \        R%R&R'7      ;_uu_ 4       pVP                  V4       R(R(R(4       R(#   + '       g   i     ELZ; i  + '       g   i     R(# ; i)ZrZ   r   r   r   r   r   r   r1  rq   r   ro   r   r`   zITERATION #z  |  z  Type: z  |  Label:   z  EXPERIMENT (isolated):  trades | WR: 	% | EV: $rD  z  OVERALL: z% | Recent(10): z
% | P&L: $z  EV/trade: $z  |  Breakeven WR needed: %z  Proven winners: u    — rz  c              3   2   "   T F  qR ,          x  K  	  R# 5irG  r   r   rS   s   & rQ   r   write_logs.<locals>.<genexpr>       9ZkG**k   N   Nr?  z  PARAMS SET THIS RUN:z    r  r_   rH   rI   N
PROFITABLEzNEEDS z% WR TO BREAK EVENz]
================================================================================
ITERATION #z
TYPE: z  |  LABEL: z
DESC: zo
================================================================================

EXPERIMENT RESULT (isolated z trades):
  Win rate      : z%
  EV / trade    : $z
  Total P&L     : $z
  Avg win       : $r   z
  Avg loss      : $r   z"

OVERALL DATA:
  Total trades  : z
  Win rate      : z%  (breakeven needs z%)
  Recent(10) WR : z%
  Total P&L     : $z
  EV / trade    : $z  [z]

SIGNAL COMBOS:
r   c                 $    V ^,          R,          ) # )r~  r   r   )xs   &rQ   r   write_logs.<locals>.<lambda>  s    ad7m^rt   rY  z<20r   z>3z trades  WR:r   z>5z%  P&L:$r   +.2fz	
PHASES:
r   z<10 z
CURRENT PROVEN WINNERS:
rH  z<25z  avg_delta=rP  z  runs=rN  z
PARAMS SET:
zH========================================================================)r   r   r   r   )ra   rb   rc   r   r   rf   r_  rK   CHANGES_LOGrh   sortedr   rs   EXP_LOG_PATH)r  r  rH  rT  r  rg  r  re  rj   rq   r   recr   r   bk_wrr  iso_niso_eviso_wrlinesr   r   rP   	ev_statusblockr   rr   r)  rS   s   &&&&&&&&                     rQ   
write_logsr    sr   ##%../BCB}%Az"B{#C{#C~&B~&E'(Gll3"Ell4%Fll4%F VH
m_E".
?#<w7
TF(
#E7.	&QUW
aSrd*:3%z#dT
4y :5'C
S\N%		9ZgVXk9Z0Z/[\
$E 1tA3c!%& 	LL	k3	1	1Q			% 4'( 
2 !#QfUG;M,NI   ? "t$  $ %*7+ f		 #G$ ( 4=! LLa067 LLA.t45 LLQ/56 #  $!  +!  ,1'! 2!" %#"#$ :%$%& t9'&  '& !*{'&+'E. 8H-335;STq2eC[1W:b/c!F)AgJ>WXZ=[[cdefkdlmqcrrtuu U	]E+X""2q5'EFW:>r"S1W:b/c!F)AgJ>WXZ=[[cdefkdlmqcrrtuuE , 
**E2aj%\!%%A2Ft1LGTUV\T]S^^`aa 	E12aSA3b!! 	TME	lC'	2	2a	 
3	2U 
2	1	1T 
3	2	2s   (O9O)O&	)O:	c                  
   \        R_4       \        R4       \        R_4       \        \        . 4      p \        \        R4      ;'       g    \	        4       pR`RaRbR. 3Rc3 F  w  r#W!9  g   K  W1V&   K  	  \        V 4      ^,           p\        RV RVR,          R R\        VR	,          4       24       \        \        / 4      pVP                  R
^ 4      pVP                  R^ 4      pVP                  RR4      pV'       Ed   \        R4       Rp	VP                  R^4      p
\        WzR7      pV'       d   WR&   \        RV
 RVP                  R^ 4      R RVP                  R^ 4      R RVP                  R^ 4      R RVP                  R/ 4       RVP                  R/ 4       R VP                  R!^ 4      R" 24       \        \        V4       VP                  RR4       VP                  RR4       \        \        V4       MR#p	\        4       pVR$,          pVR%,          pVR&,          pVR',          pVR(,          p\        R)V R*V R+V R,VR R-VR!,          R 2
4       \        Wg4      p\        R.VR/,           R*VR0,           R,VR1,          R 24       V '       d,   V	R8w  d   \        WRd,          VV4      w  r\        R2V	 24       \        WWI4      w  pppp\        R3V R4V 24       \        R5V 24       VVR6,          9  d    VRe9  d   VR6,          P                  V4       \!        VVV4      p\#        VVV4      p\        R7\        V4       R824       \%        VVVVVVVV4       V P                  / R9VbR:\'        \(        P(                  P+                  4       4      bR;VbR<VbR=VbR>VbR%VbR&VbR'VbR(VbR!VR!,          bR?VbR@\        VR	,          4      bRAVR/,          bRBVR1,          bRCVR0,          bRDV	b4       \        \        V 4       \        \        V4       \        RE4       \-        4        \        4       R$,          p\/        VVV4       \        RV RF24       \        R_4       VR	,          pVP                  RRf4      pRGVR RHV^ 8  d   RIMRJV RK2 RL2p\1        RMR_ 2RNRO7       \1        RPV RQV R4V 2RNRO7       \1        R5VRR,           2RNRO7       \1        RSVR/,           RTVR0,           RUVR1,          R 2RNRO7       \1        RVV RWV 2RNRO7       \1        RXVR RYV	 2RNRO7       \1        RZ\        V4       R[R\P3                  R] VR^,           4       4       2RNRO7       \1        R_ RM2RNRO7       R# )g=u=   KALSHIBOT ITERATION ENGINE v6 — TIMESTAMP-ISOLATED LEARNINGNr0  r4  zIteration #z | Champion EV=$rD  z | Winners=r1  r   r  
hot_streakFuQ   *** HOT STREAK FLAG detected — next experiment will CONFIRM champion params ***rp  hot_streak_new_trades)rq   hot_streak_signaturez  Streak signature: z wins | avg score=r  z.0fz | avg entry=r  z.2fz | avg secs_left=r  z | directions=r  z
 | phases=r  z | total_pnl=$r   r  r[  r   r   r   r   r   z	Overall: rB  z% | Recent=rC  z | P&L=$zIsolated (last experiment): rq   r   r   zLearning status: zExperiment: [r\   r  r3  zApplied z parameter changes	iteration	timestampr  r>  descriptiontrades_seenapplied_paramsn_winners_knownisolated_tradesisolated_evisolated_wrlearning_statusz!Restarting bot with new params...z
 complete.zEV=$z (r  zneeds z% WR)r`   Tr]   z  ITERATION #z | [:NA   Nz  Experiment: r  r  z  Overall: z
 trades | rE  z | Status: z  Proven winners (z): rz  c              3   2   "   T F  qR ,          x  K  	  R# 5irG  r   r  s   & rQ   r   main.<locals>.<genexpr>  r  r  r  z<============================================================)r0  r:  )r6  r:  )r9  rn   )r8  rn   r  )rs  rv  rq  i)rl   rM   ITER_LOG_PATHLEARNING_PATHr<  r   r  r   r+  rX   popr   r   rn  r  r_  r  r  r  rV   ra   rb   r  r  rd   rf   )historyre  fieldrO   r  	exp_stateexp_start_timeexp_start_countr  r  streak_nsigr  rq   r   r  r   bkrg  r  rH  r  rT  r  r  	current_nr  ri  ev_lines                                rQ   mainr"  /  s   MGHMM2&GM4(;;MOH24G47Lb6Q<>  %UO	> L1$M+m_$4Xm5LT4RR]^abjk{b|^}]~  A0"5ImmL!4Nmm$7;O |U3Jz_`" ==!8!<'D/2+,&xj 1 WW%5a8= > WW%6q9#> ?!!$!;C @ A!gg&6r:; <'',r23 4!ggk!4T:< = )lD)-t4"I.yH
=
!A
:
B
;
C
>
"B
>
"B)A3mB4{3%x4yQYZeQfgkPlmn@H
&x}o]8D>BRRZ[cdh[ijnZopq,&$3Hbk8U]$^!H}-.'6x='f$HeY-zE7+,"TFH_--(Bt2t!((/"8YALmUCG(3w<. 234}htXxRZ[NN MC 1 1 5 5 78 	H 	E	
 	D 	A 	B 	C 	B 	B 	H[1 	G 	C)9 :; 	HSM 	HTN  	HTN!" 	K# & 	 !+,M	-(I%H5+m_J/0M()G||M40HbYbAVB4t;L MQOG	Bvh-t$	M-XJb
@M	BtCyk
$'	N8C=/7GyQYZ^Q_`dPe
fnrs	Ks*WI
.d;	XdO;{m
DDQ	s7|nC		9ZgVXk9Z0Z/[
\dhi	VHB-t$rt   __main__g{Gz)   F   )r  <   )r   g     @o@)r   g     @@)r   g     b@)r   g     r@)r~  d   )r~  i  )   r   )g-C6
?r   )r$  x   )ru  gQ?)r   gGz?)r   r   )r   ?)gQ?r   )r   r*  )r  )1__doc__rL   re   r   r  sysr  ra   collectionsr   rg   r   r   r  r  r  r  r  r  r  r]  ra  rc  r  r  keysr   r;  rb  rM   rX   rl   rs   r|   r   r   r   r   r+  r<  rn  r  r  r  r  r  r  r"  __name__r   rt   rQ   <module>r0     s  0 5 4 4 4 # :@
F@PGLI9O     :: = =	
 = = ; < ; + ; + + ? ?  ?!" ?#$ ?%( L%%'(B$bD($ 4 ' Q	 )"	
 &
 #5b r .v  ' e / t 1$5+ulD _;-TV_ ;-NP	_ ;otDPR_ ;otDSU_ .5RT_ ?D1PR_ .otLQS_  ,d4EtLNP!_$ ,d4EtM]_deMO%_, /8JEScejkIK-_0 /9KR-u6FOIK1_6 ,b2Df/8H%QIK7_< /8JFTdfkl=?=_@ -u6JFTdfkl=?A_D -u6JFTbdfgOQE_H NBbANPI_P =$UC;=Q_T =$TB>@U_X =$ULRVWQSY_\ =$T<QVXfhjkRT]_` =%e\SXYGIa_d =$T<QV)2/?DUWe_n >1-2_`o_p >1-2TUq_r >2.2DEs_t >2.2VWu_v >2.2UVw_x <^R@OQy_| >2/?GKM}_D -r3GP68E_H -s4H&Q79I_P ,b2DfM24Q_T ,b2DfM13U_\ +U3IK]_` +U3JLa_h ?A/?DPRi_l ?B0@!D<>m_p ?B0@!DGIq_x -u6JF)3sDTVy_ D2 > 4/DN"\LHT$TnLK^.:z2jT GTv%p zF rt   