
    j                     d   d dl mZ d dlZ ed      Zej	                  dd      Zdevr ed      d	evr ed
      devr ed
      devr ed
      dZdZdZ	devrBdev rej                  dedz   d      ZdZ	n%dev rej                  dedz   d      ZdZ	n ed      devr$devr ed      ej                  ddez   d      ZdZ	devrFdZeev rej                  eedz   d      ZdZ	n' ej                  dd ed!      Zeek(  r ed"      eZdZ	d#evr'd$Zeev rej                  eed%z   d      ZdZ	n ed&      ej                  d'd(      Zej                  d)d(      Zd*ev r ed
      d+ev r ed
      d,ev rdevr ed
      e	rej                  ed-        ed.       y ed/       y)0    )PathNzJ/opt/ai-avatar-demo/services/livekit-web-smoke-r2g/index_gate7n_b_r2g.htmlzutf-8replace)encodingerrorszGate7N-B-R2g LiveKit Mic SmokeBLOCKED_NOT_R2G_HTMLzgate7n-b-r2g-roomBLOCKED_ROUTE_CONSTANT_DRIFTzbrowser-mic-user-r2gzws://192.168.0.2:7880a  
<div id="target-dashboard" style="border:2px solid #2563eb;padding:12px;margin:12px 0;background:#eff6ff;color:#111827;font-family:monospace;line-height:1.55">
  <div><b>TEST_TARGET</b> = Gate7N-B-R2g</div>
  <div><b>EXPECTED_ROOM</b> = gate7n-b-r2g-room</div>
  <div><b>EXPECTED_IDENTITY</b> = browser-mic-user-r2g</div>
  <div><b>EXPECTED_URL</b> = ws://192.168.0.2:7880</div>
  <div id="target-check"><b>STATUS</b> = waiting_for_connect</div>
</div>
a`  
const EXPECTED_TARGET = {
  page: 'Gate7N-B-R2g',
  room: 'gate7n-b-r2g-room',
  identity: 'browser-mic-user-r2g',
  url: 'ws://192.168.0.2:7880',
};
function readableLog(level, msg, obj) {
  const payload = obj ? ' ' + JSON.stringify(obj) : '';
  log(`[${level}] ${msg}${payload}`);
}
function setTargetStatus(text, ok=false) {
  const el = document.getElementById('target-check');
  if (el) {
    el.innerHTML = `<b>STATUS</b> = ${text}`;
    el.style.color = ok ? '#047857' : '#b91c1c';
  }
}
function validateTokenTarget(data) {
  const actual = { room: data.room, identity: data.identity, url: data.url };
  const mismatches = [];
  if (actual.room !== EXPECTED_TARGET.room) mismatches.push(`room expected=${EXPECTED_TARGET.room} actual=${actual.room}`);
  if (actual.identity !== EXPECTED_TARGET.identity) mismatches.push(`identity expected=${EXPECTED_TARGET.identity} actual=${actual.identity}`);
  if (actual.url !== EXPECTED_TARGET.url) mismatches.push(`url expected=${EXPECTED_TARGET.url} actual=${actual.url}`);
  if (mismatches.length) {
    readableLog('FAIL', 'WRONG_TEST_TARGET', { expected: EXPECTED_TARGET, actual, mismatches });
    setTargetStatus('FAIL_WRONG_TEST_TARGET', false);
    throw new Error('WRONG_TEST_TARGET: ' + mismatches.join(' | '));
  }
  readableLog('PASS', 'TOKEN_TARGET_OK', actual);
  setTargetStatus('PASS_TOKEN_TARGET_OK', true);
}
Fzid="target-dashboard"z<pre id="logBox"z
<pre id="logBox"   Tz<div id="logBox"z
<div id="logBox"BLOCKED_LOG_CONTAINER_NOT_FOUNDzconst EXPECTED_TARGETz<script>BLOCKED_SCRIPT_TAG_NOT_FOUNDz	<script>
zvalidateTokenTarget(data)zVlog('TOKEN_OK room=' + data.room + ' identity=' + data.identity + ' url=' + data.url);z#
        validateTokenTarget(data);z+(const\s+data\s*=\s*await\s+res\.json\(\);)zb\1\n        readableLog('TOKEN', 'TOKEN_JSON_RECEIVED', data);\n        validateTokenTarget(data);)count!BLOCKED_PATCHER_PATTERN_NOT_FOUNDCLICK_RECEIVEDz=document.getElementById('connectBtn').onclick = async () => {z-
      readableLog('STEP', 'CLICK_RECEIVED');*BLOCKED_CONNECT_FUNCTION_PATTERN_NOT_FOUNDzlog('STEP client start R2g');z(readableLog('STEP', 'client start R2g');zlog("STEP client start R2g");z&EXPECTED_URL</b> = ws://127.0.0.1:7880z$EXPECTED_ROOM</b> = gate7n-b-r2-roomz+EXPECTED_IDENTITY</b> = browser-mic-user-r2)r   PATCH_APPLIEDNO_CHANGE_NEEDED)pathlibr   reHTML	read_texttext
SystemExit	DASHBOARDHELPERchangedr   
token_linesubnew_textmarker
write_textprint     B/opt/ai-avatar-demo/work/gate7n_b_r2g_r1b_retry_patch_dashboard.py<module>r$      sb    	XY~~wy~9#4/
+
,,d"
3
44%
3
44$&
3
44	 
D $&T!||.	<P0PRST	t	#||.	<P0PRST:;;$&788<<
L6$91=DGd*iJT||J
5[([]^_266:q	
 t@AA4LF~||FF-]$]_`aEFF||35_`||35_`+t3
3
44)T1
3
440D8=S[_=_
3
44
OOD7O+	/	
r"   