const { useState, useEffect, useCallback, useRef } = React;

// ============================================================
// RESCUE TEE WORKSHOP APP
// Single-file React PWA with demo data
// ============================================================

// --- DEMO DATA ---
const DEMO_USERS = [
  { id: 1, first: "John", last: "Smith", email: "jsmith@hospital.edu", role: "learner", group: 2, institution: "Mass General Hospital", level: "PGY-3", title: "MD" },
  { id: 2, first: "Amy", last: "Lee", email: "alee@hospital.edu", role: "learner", group: 2, institution: "Mass General Hospital", level: "PGY-2", title: "MD" },
  { id: 3, first: "Raj", last: "Patel", email: "rpatel@hospital.edu", role: "learner", group: 2, institution: "Mass General Hospital", level: "PGY-4", title: "MD" },
  { id: 4, first: "Sarah", last: "Kim", email: "skim@nyu.edu", role: "learner", group: 1, institution: "NYU Langone", level: "PGY-2", title: "MD" },
  { id: 5, first: "David", last: "Chen", email: "dchen@nyu.edu", role: "learner", group: 1, institution: "NYU Langone", level: "PGY-4", title: "MD" },
  { id: 6, first: "Marcus", last: "Brown", email: "mbrown@columbia.edu", role: "learner", group: 3, institution: "Columbia", level: "PGY-3", title: "MD" },
  { id: 7, first: "Elena", last: "Torres", email: "etorres@columbia.edu", role: "learner", group: 4, institution: "Columbia", level: "PGY-2", title: "MD" },
  { id: 8, first: "Lisa", last: "Park", email: "lpark@penn.edu", role: "learner", group: 5, institution: "Penn Medicine", level: "PGY-3", title: "MD" },
  { id: 9, first: "James", last: "Wright", email: "jwright@columbia.edu", role: "learner", group: 3, institution: "Columbia", level: "PGY-2", title: "MD" },
  { id: 10, first: "Nina", last: "Gupta", email: "ngupta@columbia.edu", role: "learner", group: 4, institution: "Columbia", level: "PGY-3", title: "MD" },
  { id: 20, first: "Maria", last: "Martinez", email: "mmartinez@hospital.edu", role: "proctor", group: null, station: "B", institution: "Mass General Hospital", level: "Attending", title: "MD" },
  { id: 21, first: "Robert", last: "Chen", email: "rchen@hospital.edu", role: "proctor", group: null, station: "C", institution: "Mass General Hospital", level: "Attending", title: "MD" },
  { id: 22, first: "Ryan", last: "Giorgetti", email: "giorgettimd@gmail.com", role: "director", group: null, station: null, institution: "RESCUE TEE", level: "Course Director", title: "MD" },
];

const VIEWS = [
  { id: 1, name: "ME 4 chamber", deg: "0–20°", category: "basic" },
  { id: 2, name: "ME long axis", deg: "120–160°", category: "basic" },
  { id: 3, name: "ME bi-caval", deg: "80–110°", category: "basic" },
  { id: 4, name: "TG mid short", deg: "0°", category: "basic" },
  { id: 5, name: "Desc Ao SAX", deg: "0°", category: "aortic" },
  { id: 6, name: "Upper Ao LAX", deg: "0°", category: "aortic" },
  { id: 7, name: "ME Asc Ao SAX", deg: "0°", category: "aortic" },
  { id: 8, name: "ME AV SAX", deg: "30°", category: "aortic" },
  { id: 9, name: "ME RV in-out", deg: "60–70°", category: "aortic" },
  { id: 10, name: "Asc Ao LAX", deg: "90°", category: "aortic" },
  { id: 11, name: "Arch SAX", deg: "90°", category: "aortic" },
  { id: 12, name: "Desc Ao LAX", deg: "90°", category: "aortic" },
];

const STATIONS = ["A", "B", "C", "D", "E"];

const DEFAULT_SCHEDULE = [
  { id: "b1", type: "break", title: "Breakfast", start: "08:00", end: "08:30" },
  { id: "b2", type: "lecture", title: "TEE in Cardiac Arrest / RESCUE TEE", start: "08:30", end: "09:00", location: "Main room" },
  { id: "b3", type: "lecture", title: "Probe Knobology / Intubation", start: "09:00", end: "09:30", location: "Main room" },
  { id: "b4", type: "station", title: "Basic Views Intro", start: "09:30", end: "10:00", groups: [1, 2, 3, 4, 5] },
  { id: "b5", type: "station", title: "Basic Views", start: "10:00", end: "10:30", groups: [5, 1, 2, 3, 4] },
  { id: "b6", type: "station", title: "Aortic Sweep Intro", start: "10:30", end: "11:00", groups: [4, 5, 1, 2, 3] },
  { id: "b7", type: "station", title: "RESCUE TEE", start: "11:00", end: "11:30", groups: [3, 4, 5, 1, 2] },
  { id: "b8", type: "lecture", title: "Hemodynamic Assessment in Shock", start: "11:30", end: "12:00", location: "Main room" },
  { id: "b9", type: "break", title: "Lunch", start: "12:00", end: "12:30" },
  { id: "b10", type: "lecture", title: "Assessing LV & RV Function", start: "12:30", end: "13:00", location: "Main room" },
  { id: "b11", type: "station", title: "CPR / Pulse Check", start: "13:00", end: "13:30", groups: [2, 3, 4, 5, 1] },
  { id: "b12", type: "station", title: "RESCUE TEE", start: "13:30", end: "14:00", groups: [1, 2, 3, 4, 5] },
  { id: "b13", type: "station", title: "RESCUE TEE", start: "14:00", end: "14:30", groups: [5, 1, 2, 3, 4] },
  { id: "b14", type: "station", title: "RESCUE TEE", start: "14:30", end: "15:00", groups: [4, 5, 1, 2, 3] },
  { id: "b15", type: "lecture", title: "Assessment of Native & Artificial Valves", start: "15:00", end: "15:30", location: "Main room" },
  { id: "b16", type: "break", title: "Break", start: "15:30", end: "15:45" },
  { id: "b17", type: "lecture", title: "CPR Monitoring & Procedural Guidance", start: "15:45", end: "16:15", location: "Main room" },
  { id: "b18", type: "station", title: "Test Practice", start: "16:15", end: "16:45", groups: [3, 4, 5, 1, 2] },
  { id: "b19", type: "assessment", title: "Competency Test", start: "16:45", end: "17:00", groups: [2, 3, 4, 5, 1] },
];

// Helper: given a block with groups array and a user group, return the station letter
const getStationForGroup = (block, userGroup) => {
  if (!block?.groups || !userGroup) return null;
  const stIdx = block.groups.indexOf(userGroup);
  return stIdx >= 0 ? STATIONS[stIdx] : null;
};

const DEMO_EXAMS = {};
DEMO_USERS.filter(u => u.role === "learner").forEach(u => {
  DEMO_EXAMS[u.id] = {};
  VIEWS.forEach(v => { DEMO_EXAMS[u.id][v.id] = Math.floor(Math.random() * 4); });
});
DEMO_EXAMS[1] = { 1: 7, 2: 5, 3: 4, 4: 3, 5: 2, 6: 1, 7: 0, 8: 0, 9: 0, 10: 0, 11: 0, 12: 0 };

// --- UTILITIES ---
const parseTime = (t) => { const [h, m] = t.split(":").map(Number); return h * 60 + m; };
const fmtTimer = (secs) => { if (secs < 0) return "00:00"; const m = Math.floor(secs / 60); const s = secs % 60; return `${m < 10 ? "0" : ""}${m}:${s < 10 ? "0" : ""}${s}`; };
const nowMins = () => { const d = new Date(); return d.getHours() * 60 + d.getMinutes(); };
const nowSecs = () => { const d = new Date(); return d.getHours() * 3600 + d.getMinutes() * 60 + d.getSeconds(); };
const getTimeRemaining = (endTime) => { const endSecs = parseTime(endTime) * 60; return endSecs - nowSecs(); };
const getElapsedMins = (startTime) => { return (nowSecs() - parseTime(startTime) * 60) / 60; };

// --- STYLES ---
const S = {
  app: { width: "100%", maxWidth: 420, margin: "0 auto", minHeight: "100vh", background: "url(data:image/png;base64,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upXevXv3rj5//nxzy24YjuMCcKapa9QDkZGRgk6nq7rbPwYFBXUvLS1t9ZsrlUrG29u78vLlyzXN5DlQq9Xir776ig0ICBDfuHFDXFhYSOHWEiZXbKfrfw8Ry7IwePBgQgipmzJlinXRokUmR070Q52b72NiYnqkpqa2+DmtWLGC6du3b1mD2SyEWg03obt/A1onEolafYyuIAi2yspKGcMwXanDRffs2eMVHBzsDb9dPtBhz6179+7mV155xdhc0EcpFZtMJjEGH20XEODYoN+dI8PIc+uB4uJizr5x+jeio6O9S0tLW93xVyqVzKBBg+qDD2hukEOj0VgKCgqMP//8s2nChAlCRESEMGfOHFFERIQIXGzJEsuyomnTponCw8OrBg0axC9cuFA4fvy4afHixUYMPtwg01MKI0eOrGrN965atYpi8IGc1hHCJHD750dHjhwpy87O9m7LqO3kyZNrd+/ebepCaecNAHKwb5TsyPp/8ODB4qeeesqo0WiancqOj4/3PXbsmCwnJ8eC5bX1QkJCmNWrV1dPmTKluRkQAgDdAZe6dRlKpZKZM2cOr9FoqgAAUlJSfN5++22uDXvDmL59+zYMPlpUnwPcOl2qoKDAe/Xq1bRbt24+//3vf7327Nlj68x8GRISwjz22GN1qampVRs2bCBjx46toZTe9fMj1+87BAYGdm/NoSYZGRm1o0aNMmESorbCGRAPMHfuXBIYGNim9zh16pRXV0mvtLQ08aRJkzho3elhbcJxHFNVVVUDAA4df5ycnExzcnKwUW97usPDDz/cdItMCKSlpSmwE9W1GAwG248//sjt3r3bFwDg66+/9mqwwbrFwUwrgw9okO8IpRT69+9fs27dutrExETjggULyiIjIyt2794Nzz77LAQFBTXs9Du9c1r/vvUnWH377bf0nnvuubl+/Xpjfn5+7ZgxYxoGH+SOz49cHKWUUalUrfreb7/91gtTEGEAgigAwLRp00zXrl1r00h+aWkpiY+PV3SFRPvwww9FaWlpnZL3Q0JCyNy5cy0ajabZpQqUUsmcOXNknREoeRiSnZ1t7tGjB99cR6mkpESMydX1HD9+HGbOnCmilPqWlZVJWjmbTF577TV66dKltp4SRO8IjOmYMWMsOp2u7oknnijbtm1bWWlpadl3331XO2LECKtcLreFhIQwgYGBhOM4Yt84Xv/V3O9B4NYmdcJxHAkJCWEAwDpu3DjbJ598UsPzfFlQUNDNqVOn3kxPT7c0ssQKAw93qxAJsR46dMjIsizT0ue3Y8cOfN7IaSMdyANER0dz6enp3m3JC3K53Dp//vxKjUbjscfsUUpFK1euDHjzzTc7eq0yjYqKEo0cOVJYtWqVIxcPkieeeMLn1KlTnMFgwHXVbcBxHJk8ebJl27Zt5c29dty4cQGHDh3CerFr5hOYOXMmOXDgAM3Ly2vx90ZGRsJzzz1nTEhIqOvQioVSpqCgQKbVauHgwYNQUFAABQUF0KdPH2bIkCHSuro6m9VqvWueTk1NrbUPjEBkZCQsWrQIIiMjK/HkKs+Xk5MjXbJkif+ePXtauryXAkAZpiDCAATdFhwcHFBSUtLqZ8qyrGjcuHFV9r0gHrueNzAwsEcHX+hHQ0JCRJ9++qnw2GOPOXrkMRMSEtLdFW9fdjdBQUFw8uRJoU+fPtXNvVYmkwWYTCasF1GLyGQyumDBApNGozG7St1JKWUAwBcAbHq9njTSZgh37ONAXQSlVPT888/Lt23bJmppsP3f//7XFBYWhpcSojbBJVieEkkSAgsWLGhTx0kQBOvu3bulkZGREk8NPt58801ZBwcfZOzYseKpU6e2JPiAyZMnsxh8OMfChQvBkeBj4cKFLAYfqKU4jiMrV6602IMPcJW6kxBiI4TwhJCqoKAg4W5fGHx06T6Dddu2bTUt7QdyHEf27NnDYgoiDEDQrRaPUjCZTJXQ9lktJigoSJGWluaRa+F37drVnhvoGq69hpiYGGbevHm1oaGhNx1ZdlVv1qxZspMnT/pgrm67mTNnktjY2EpHXvvvf//bC3BWGLWwzA8fPtwWHx/vqmc3k7vUTb+pp1DXtXDhQiYkJKRF36PX6+Ff//oXHsWLnFY5IQ8JKGNiYrq35oKhhurPsE9PT68FD5oJuX79umzcuHE+165do3fe9dDSux84jvvN/xNCaGlpqU0ul4NKpYLevXtXAAC8//77NgdHGQkA0LNnz8qeeeYZn+zsbJz9aGPdNnPmTFi4cKFx8ODB5ubS3WAwcA8//LBPG45eRV3XTeic+4QQahNKqc+ECRO4/fv3t6TeIwBgoZRW4F4h1BZ44otnVSawfPnyutTUVFFb3sdgMNhiYmLklNIbnlTB9OjRw5SXl0eysrLIwYMHAQCgoKDgN/+td+ef/f39wd/f/zd/DgkJAX9/f4iKiiKPPvqouVevXlWVlZWwcePG1j4/0rdvX/HNmzexUm8DjuNgwoQJjgQft8XFxYH94jlMe+Sw6OhoSE9PxzyD3BEhhFTb+4E+LQiiaUhIiOSf//wnBwAevV8UtXMGxCTwLPHx8ZIzZ850O3nypNUJeYMHgGpM1Y4pi08++aTi0KFDkrZcKIkARo0aRT777LP64KO5xpGo1WrRxx9/LDMajWJsSFFLJCUlQXx8fBmOBCM37f/RgQMHyoqLi30EQWjJLB4TEBBQXVZWhgEIajXcA+J5DaLN39+/2gnBJWVZVlZ/ORdqx1aAEFCr1YoTJ05IeZ7HpRxtMHToUBIUFNRw5qO5hpHqdDqpl5eXFBtR1FL+/v44iIfc2rvvvkuUSmWLv6+srAzrS4QBCPpNZ9Y6fPhwc0RERJsbRkEQ6NKlS70xVds3+Ni0aZPf119/LbHf94EdmlbiOI6YzWajVqs1t+DbxHv37vW5du2aBVMQtbT9PHr0KN6ZgdxV/UXGwo0bN1p6F4ht0qRJ3pRSL8CBG4QBCKrv0yYmJtZmZ2fXOOH50suXLzPfffedjFKKp6Y46fnUBx5qtZpZtGiR/+LFi6W4+bntwcfAgQMrcnNzHQ4+1Gq1OCwszM9eTjBvo5ayPfLII6y9bkTIPRskQqx9+/ZtaftDOY4TlZSUiDAFUWvhJnTPrFDovHnz4N///je5du1am96rtLQUli1b5ms2my2A+0HaGnhQAKCEEPjyyy/lX375pbf9xDJcdtWGILlnz55iHx8fo06nc/gG6ujoaPGhQ4f88/LyKOAIHmolk8mEHTDk9iZOnAiFhYUtOg0yNzeXrly5EutO1Go4A+Kh1q5daxaLxU5ZVnLy5Enb4sWLpTjS17aOMiEECgsLvaOiomRz5szxTk1NxbPUnVCH3X///Za3337bCg7OYqjVanFpaalfRkYGph5qE29vb+yAIbc3bty4FvcFeZ6H4uJiTDyEAQj6X0cXAIAQUvPkk086a0+BDQC8XnzxRQUmbyseCKXSDz/8UHbvvfdy7733njw7O9vbfuIIBnRtwHEciYyMpKNGjTImJCQ0N/tB7M9CotPp/PLy8vDkFtRmLb0/CCFX1LdvX76lpy8aDAY4fvw4Jh5qNewAeXbHVxwcHOxXWlrqlPcLDAwk27dvrxs7dmyFg5frdeW0Jx9//LFi3bp1NCAgQFxdXS3OycmhAGDFcuecuksmk9k2btxYERcX59BMUmZmpiQ5OVmxbds27Dgip3j22Wdhx44dN7A+RB4goAVtEwUAEdy6BwSXZiMMQNDvqdXqbhqNxmkzXUOHDiVPPvlkmUajcYt9CyqVStqzZ0/Z0KFD6T333AMikYjIZLK6ESNGmJz1M44ePeonCAL59ddf4cCBA1BcXAy5ubkQGBgo4nke7CNLFMub87Asy7z77rt1S5YsKXc0GE9MTPTTaDQ484GcasqUKXTZsmXmQYMG8XgiFsIABCEMQNAtDMdxAU683I6MGzfOdvDgwXJCiEsHIZRS0axZs7pt3rz59t9xHAdNpQXHcSCTye76byaTqbGRc9JEJY2cjOM4Mn36dMv69esrHOnwUUrFzz33nN/27dsx8VB7taN02rRpzPTp04XY2FgBZ0SQuwkODg4oKSlpaQBSCQA1mHqoVZ1TTALPRimFadOmOXPUl548eZJZsGCBH6XUpU9RI4TYjh49Wl9ZUgCgzQViPM9DaWnpXb+aWLZDG/lC7SAgIKDO0eADAOCTTz5RbN++HQdbULtVswAAW7dutSUmJrILFixgKaVSTBbkTuRyeYvzfWxsrJRSiv1I1Cp4DG8XaByHDRtWzbKsj33jc5vxPE+//vpryfXr170AoP4CI5fqcBNCYO7cuez69esxEPCgvNy/f3/xsGHDHL78bfPmzd6vvfYaYECIOsLx48dthYWFvoIgkMLCwsr+/fvj6DByC7169YJz58453MQCAH3kkUd84NYMiBlTELUURq4ejhBCX3rpJZO3t3e1/Xk7pSN27do1665du7yjo6PFrti5o5TC6dOnfTEHeBRRt27dalJSUhw+XvqLL77wxhE61JH0ej397LPPbPHx8fL58+f7YIogdxAcHNzi77l58ybO9iMMQFDTVq5cWRcVFeXsTj6Tnp6umDt3rr8r3hFy/PhxvODPQ3AcR4YMGWLW6XSVjuw9ysnJkU6fPj0gPT2dceL+J4QclpqaatuwYQM7ffr0gKSkJAmmCEIIYQDS1ZCZM2fW5OXlVcOtjWNOYe/YkU8//VRy3333+QOAKC0tTcwwv8tWHR6c7N2715/jOFz37yFCQkLI/v3768DB0bb58+dLvv32WzHgQRuoE/E8D1999RWTkJDgBwCSFs7GYd5FHdNBIASmTp2KCYEwAEHt4y9/+Usdx3HtMStgy83NZTiO67Z169aA9957j1OpVNIGGzFpgwa14Ve7Wb58Od714DnBBzNw4MCqoKAgobnXUkrJsWPHfDiOYwVBwDtXkCugAEBZlvUfP368PwBIAUCqUqmkKpVKqlarpZRSL0qp6C7f1zAQIZifEUKeAjehd50GEDQaTU1SUpKXWq2W6vV6py9L4Xmebty40QoAPhEREb6zZs2iAMAvXLiQWblyZQ0hxNpRv3BGRgY+dQ8xYMAAQavVCo6+Xq1Wy1JTU3H5HXIpgiDYDh06RADAj2VZ+Omnn4BlWSguLgaz2Uyys7PNAFALABAfHw9PPfUUefTRR82EkLo7AhKEEMIABLkFAgBUrVZ763Q6SQesiafZ2dm27OxsAgCyb7/9lvz444/SgIAAy8MPPwyzZs2C+++/nwkJCakmhJid/XtSSn0GDhwoysvLwwbbzUVERDAjR46sTk1Ndej1o0ePZtPT0zH4QK7MKggCCMKtmLqgoACOHz9e3x5LAAAOHjwI+fn5RK1W1wUEBNQ9+OCD5P7776dz5sxhQkJCagkheLoWQggDEOTi0Qch9E9/+pP3119/LcvPz++oTnn9UgFbYWEhrW9cDx06BDk5OcBxHNy4cUMMALY+ffrA/fffD6NGjYI+ffpA//79SXFxsTEuLq5VMybJyclSm82GN167NwoAops3b5oSExOpRqNp9hvefPNN2ZdffukDABiAIJeukpvI87Q+KCkoKKBwa5m0T0ZGBj19+jQ5cOAA1NTUSADA5/7774dZs2bR+fPnVzSo62+9EV6EiBDCAAR1ai+OUnFiYqKfvQPXWa1SfTBABUGAgoKChn8vLioqgqKiIkhPT7/9DTzP+wMADQ4O/s0FSXfeUm4ymX7z56tXr0JCQgIGH26O4zgyYcIEmpKSUtfMnR8EAGhWVhabkJDgazAYrJh6yMMCFRvP88DzPDUYDLfb7l9++QXee+89AICAQYMGQa9evWDKlCkwaNAgiImJKcdAHLVEC+4AQQgDENQ0tVotnjVrlv/mzZtduTNOGwQdv2uAS0pKoKSkBB9mF9O7d286c+ZMEyGk2Ts/UlJSRP/v//0/cUFBAXa4UFdBG9SZ5Ny5c3Du3Dk4dOhQfeDiBwA3MZmQQ5mJUjh79myLv08qleKhCAgDEPS/TjsA0Pj4eMmRI0cUDWcVEHIHLMsyI0eOrH788cdr4X+zZ422ncePH5f6+vp6A4AF8JQghABwBhi10J2rCRzpa+Tm5tYCzrShVsJjeD2w4UlKSpLodDpFeno6LkVCbhdADxo0yPbKK6/UONiRYjZt2uSdk5ODR+4ihFArXb16taUBLtm1a1eHnm6JPAvOgHiY+Ph4yapVqxR5eXkYfCC3w3EcDQkJKR82bFizjRqllERFRfmdOHFChHkdeULw3cIO4G1BQUEQFhYGwcHBMHjwYOjXrx88//zzmKLIYa2YAWlpnkUIM4+nio6OFvM876fT6TD4QG5p2bJl1iVLlpQ7mt8zMzO7CYKASwCQOwfdIJfLaUlJiU0ul5PevXsDANw+fOOee+4BuVwO4eHh8NBDD1GLxSK6fv26EBcXV3NHQP7bxr3pwxsQulNAC/qEFABEAGACgGpMOoQBSNcmDgsL88vLy8OUQO6IxsTEiH788ccbhJBmA4qUlBTRu+++64/5Hbm72NhYkpCQUDdlyhQjBg3InQKQ3r17m4qLizEAQa2Ce0A8IICMj4+XcBznZ192hZDbUSqVonHjxtWCAzN3lFLpzp07/TG/I0+wf/9+OmfOHOno0aMVKpXKh1JKGtTvmMdRu9u3b59XS/May7JQP1uHEAYgXQ+NjIyUHDlyRGE/jhFHz5Db5WEAIDKZrGbx4sVGB+78gK1bt3ofPnyYwfyOPIXBYLClp6dLMjMz5d26dZNHRESw0OBiQoTak0Qi4TiOa1EAolQq4Z577sHEQxiAdEWZmZkSjuMUuAwFubPhw4czGzZsMDv6+unTp9saXMiGkMcE44WFhZby8nKvgoIC35CQEMXXX3/tTymVYtKg9vTtt9+2eB/dgAEDYP78+Zh4CAOQLtdSUSretm2bwr7hHCG3xHEc4+3tLYwePbr+zo8mjRgxwofjOB/As+eRZyJw6+ZzWlBQIF24cKG4V69estmzZ3dTqVSiBsuzEHKa77///m4XATfJz8+PRkVF4QwdalNlh9wv+JC8/fbbfsuWLcPCj9y6/rn//vstv/zyi0OnXsXHx0tSU1O7FRYW4rnzqMuVFY7joH///paoqCg+KSnJ0mC5Ip56iFotJSVF9NJLLykqKytbcpw5A7dOvzJh/kOtJcIkcD+1tbX+y5cvx+ARub0pU6bU6HS6OkdeW1RU5Hv16lW8uwh1SWazGa5du8bcvHmT3bZtG3P16lWyb98+0ddff23B1EGtCWoBAKRSqezs2bPSuro6h4MIlmWJXC63VFdXmwEHshEGIF1DdHS099dff41rgpEn5GX49ttvjY68VqVScbm5ub4taSQR8kQVFRW2q1evSliW9c7Pz/cSBEH00ksvkZ9//hlnBlGLA5BffvlFUldXJ4EWzGIMHDiQ+cc//mHZuXOnQ0tnEbob3APiRhWFWq32vnLlipzjOHxuyO3zdM+ePSsdfXFGRoY3XjiI0O32gAqCYM3IyKA1NTU+X3zxBRcZGak4ffq0H6UU2wfkCJqWluYdHR3tDS1bQkUqKirqpk2bJtS/DyYlwgDEgysKlUol3blzp7ygoMDK83xnF3jCcRzYv3D0A7XYggULaEpKSrNLryilJCQkRFFaWoqJhtDvAxEQBMFqMpnI+fPnpSqVSiKXy/3j4+MVgCPTqBmrVq1iioqKWrL3AziOA6VSaSWE4IwbahNcT+0mfvrpJ0lnHj3Ksiwjk8loz549icVisahUqpr77rvPsnr1au7mzZvM1atXGUEQrA0bRoTuZuzYsaKBAwfedODOD3ru3DmO4zgvwFOvEGoyEOF5nubn5wMAMMnJyVKlUtkjICCgqkePHjVHjhwBQoilYdnCZOvaKKXkvvvuYwoLC1tct86ePZvR6XSYiKhNcAbEDRqWSZMm+bIsy9o7YR3ZuacAAMHBwdTb27t6+vTpNYcOHao+e/bsTY1GUxUXF2c+ceLEzW3btlU9/vjjtTExMSK4ta8IGzjUqIceesgcHx/fbKNHKRW/8cYb4uzsbMxLCLWs3qYGg8GWm5vrYzQa/VeuXNktNjbWq2G9DjhQ1KVduHBBGhUVVd+vaFH+mjt3bi2mIHJKBxe5rszMTN+4uDiuoKCgQ0eAOY4j9913H/PQQw/Z9Hq9UavVNnlRHCEE9u/fz86ePds2ZMgQ7xs3bkhPnjxZf5MvdiARAAAdPHiweMyYMRXr1q1rtgFTq9W+X375pQyP3UWo7QIDAwkhRFizZg2jUqmqcQlN1xYdHS0+d+5cN4PBYG1hX5ACQBmmIMIAxEMVFhZ6f/zxx946nU6SkZHRYR34wMBAMnPmTEYqlZoAwJKYmEgJIXXwv1mNZmc3KKWi1157Tbxu3To6YsQIUb9+/eRHjhyx6fV6DES6eH0TGRlpXrRoER8XF2drKh/Fx8dLMjIyZLm5uThLi5ATy+Dw4cOZqqoqs1KptK1bt8527733mjBZuha1Ws0cOnRIkZGRIYYWDhC++uqr9F//+hcGIAgDEE9CKSXJycniwsJC+ZYtW4jNZmMMBkNHzHwQlmWJWCw2G41GE6UUGIaxUtr2eIEQAv/+979FcXFx8NVXX7H79u2Tbt++/fbm9TtuX8UAxYMNHz5c9P777/OPPfaY0Fwg27dvX+/q6mrFtWvXLFhPIeTcpgYAGJZlSVBQEO3bt6/trbfeqnn00UermtmXhTxEdHS0ODMzs1trThbcv3+/LTY29iamIsIAxM0xDAOHDh0Sjxkzhi5dutRv3bp1xGQykY466SokJIQxm82Wp556yrZmzZqKds1shAClFFJSUkTh4eGKrVu30m3btoHRaASj0QgRERGSqqoqqtfroUFwYsN86v44jiNjx46t2b17d7OjrZRSZtasWQGbN2/GzhDqksLCwgAAwGazkdLSUmLvKNJ2qgsJx3H0gw8+IABQGRQUZFGpVJQQYmvQT8Cy6EEWLFjQffXq1a3qL0yfPv2GRqPBQ0EQBiBunO4UAIharZadP3/eZ8eOHbYOrOQpADAymcy2ceNGi0ql4jt7PTCllJSVlcl++OH/s3fnYU1d6ePA33MT1ntDAJUEanWMlFJEtL9QBUeLWBe0tsXvTGJdW7WFti6tS+vSTpPMTK1Oax21G1Srrds0mam74liLaZ2CCqOlSlERFSkQlC3cQIAk5/eHwaFWIWEN8H6ex2c6eknCuTfnnPcs7zkCO3fuhNzcXCgrKwO5XO555coVMBgMYDKZGn9+Gz7HXep5twBAuSMX9+/f3/P69esi7PSgnkoul8O+fftoVlZW/eLFiyml1MOeabA9AxEAADJlyhQycuRIi1AoNC1atKi+USCCuoHz58+7R0VF+dy1+sChZ0OlUtWr1epKnClDGIB0YYsXL/b64osv3MrKyjwBwNqR90ImkzFPPvkkra2trUhOTq532YeTEDh79iz78ccf0wMHDkDDWRBhYWHMM888w964cYNeuXIFrl27ZsNzIly7nklISKDJycm3mruws5IuIORKOI4jzzzzTO3OnTuNAAAbNmzwSEpKcps4caL3Dz/8AGlpaQ2DMO3WbgwfPlzQr18/81NPPWV57rnnTG2xJBd1vs8++8x/8eLFAmdXWUgkEubxxx8v1el0mLwAYQDSFa1bt87rnXfecfP19fXMy8tr90bkXg2bXC6vOnHihPWuzeWu+DzS+wUmNpvNAwCoTqcDg8EgWrlyJeMCBzSi+9BqtUalUlnX3HX2pQG45AOh26oA4E7GOEqph1qtpmaz2Ss7O9vzwIED7TlzTgGAiY6OJoWFhXV/+ctf6mfPnm3CW9J15efne40fP947JyfH6T7HypUrBatXry4nhNRhSaK2gAcRdpCMjAy3nTt3itatW0fKysoEZWVlto4OAkeOHEk4jjOmpKTUEkKa7OR3EnqfoORXf08pBULInUb5s88+oy2YTkYdJCEhARwJPgAANm/ebIPbZ8kg1ONJpVIfhUJhbEhb3VDvUUrr1Wq1yWg0wvTp033VajUUFRUBx3HEXhe2Rb1OAICmpaXZAMDtjTfecFMoFB5RUVE1S5curWnY04e6jrlz57oXFBQwTj4fVCKRCEpLS6sAoB5LEbUVnAFpv3KllFKiVqsFt27dEn/xxRcEAEhnjNLLZDJm7NixfHJycg10v5FlEhUV5Zeeni4AHDV3OWPGjBEEBweXObLUT6VS+SQlJXlgumaE/mfKlCnM119/XUEIqaOUkrvX39v/DjIyMrzy8/O93nrrLVpXVyewn4recA5Tm7T19gCHhoaG0sWLFxM/P79ypVJpbdzu4R1zzf5IQkKC9759+7gWZNZk+vTpU33z5k0e7zHCAKQLoJQya9asEX/22Wdunbmefdy4cczChQv5p59+urq7lnXfvn39CwoKMABxsa8AAAgWL15s+eCDDyqbS3KgUqmYrVu3ivPz84V4HxH6tZUrV5LVq1dXOrL8hRACaWlpPpMmTQKpVCqsqalxu3r1asNy37bcwE4ee+wxW69evfgjR47gZnUX7+v5+fn5lJeXuztbvw4YMEDwxz/+sfq9996rwgAEtSU85KvtAw8yefJk76FDh/qsXLmyU4MPjuPIqlWrjN05+NiwYYNHZWUlBtIu2OCJxeL69evXVzQTfBBKqbC2tlZcV1eHwQdC9/Duu+/S1atXiymlng60QRAVFWUsKyszXrhwwWjft2GaM2cOkclkgjbsRNIzZ86Qixcv+g4dOtRn8uTJ3pRSrItdjEqlYuRyuU9dXZ0H/Dp7pEO8vLzqn3vuuVosSdTWcA9IGzp69Cjr7+8vdHNz8ywpKbG15Mvelnieh+nTp3frIPPrr7/2opQ6u6YVtTOWZZng4ODqzMxMWzMdHqrT6dxOnz7tXlxcjIcOInQfb775Jly4cMELAMwOjwIQYgEAHgDg888/tyxatAjKyso8ioqKvL799ts22cB+9epVCwC4FRUVefj7+7t9+eWXFtys7jqys7PJjRs3PE0mk9PZNjmOIyNHjrSGh4c3zLxhO4vaDM6AtJFXXnmFU6vVbHl5ubv99GZX+KJSLy8vLjU1leuu5a7X63EDuguKiIiA1atXO9TYKZVKeurUKWzYEGqmPt+1a5dALpd7N8QXjsYht2MRUrtp06baHTt2VI0aNaoUAMpXr15N5XL5r65rweciAEBLSkos5eXl7n/+85+9582b55+RkeGNt6yTHxhKSVFRkU9JSUlLUucSQoht7Nix2MCidoGjja0vPwoALMuyrP2QqGbrhEaBX4d0uiIiIpi33nqrWqlUdpdNZAQA6P79+73fffddzp6lBbnQ/fH3968tLS2tau7AKpVK5b5u3ToxplBGyDESiYR57LHH+IMHD7Z6aW3DkqkTJ054ZGZmcl988YX15s2bwuLi4oZLWpQmnuM4AgBUoVCQoUOHGl999VVcwtPBVCoVk5GRIT5x4oSbg32TX5FKpaS4uLgUOnklB+q+cAakDYSFhZEmgg0KtyMUJiIighk3bpxALBbXDxkypH7atGkd8vmysrKsu3fv9jYYDBx0oynUTZs2kby8PHwAXYxUKoU33niDNBd8UEqJv78/Bh8IOcFgMNjOnDnDKRQKr1aPFBBCCSE0NjbWvGzZsls//fRT+V//+ldz//796/v162eJjo4WNApAHP6e8jxPeZ6HrVu30nfffdcnODjYQ6VS4ZLvDmQ2m0UtDT4AgAwfPhwTC6B2hTMgrS8/qlAouO+++867UXq7hlkOEh4eTgYPHmz99ttva9577z2YNWsWAQATIYTGxcX1SUlJ6bDO18yZM5nt27ebCCGm7lDuAOANABzgCI1LEYlE1Gg0mgghza5VDwwM7I2n2CPkPJlMxsyfP79q6dKlNe3x+pRSwb59+7zj4+NtISEhXpcuXWIAwOl9BAC3B+DCwsKskyZNqlGr1bXNZcVDrWsbVSqVcMuWLT6tyA7JAMAtbFtRe8IZkDbw6quvEolEAgBApFIpefbZZ4UzZsyoBQCjXC6v3LVrl9FgMJhmz55tIoTwhBD68MMPizoy+AAA2LFjh3XWrFmsfSakK6MZGRlu48eP98QK0rVwHEfi4uKoI8HH0aNH2aKiIhwEQagF8vLybCkpKSKtVuvVHq9PCLHGx8dXAYBp2rRpxsmTJ/MvvfSSQCKRMM72HUwmk/XMmTMkJSVF9MILL4jtiUNQO7SNqampwh9//FFcUVHR4tT08+bNI0lJSXggLMIAxJW/7AAAv//976vfeustS1xcnPHhhx8uj42NLduxY0cVAJi/+OILc6Pc7QQAYPPmzaKKiorWNhot2iy4Y8cO28yZM70//PDDLh2EbNq0SVBYWOgGmJXD1QIQGDt2bJUj137yySeeWGIItdyxY8dsf/3rX0UJCQnObkx3qp3RaDR1hw4dqn7hhRfKQ0NDywCgTKVS2aRSqaMb1wkAwKlTpyxfffWVoH///uKEhAQx3sG2pdVqBbt37/b95ptvGJ7nWzI4R6Ojo5lnnnmmKiEhwYIlitoTjj62VSRyjxNq73fdoEGD/LKzs1s8OiGVSklERIQ1LS2NVFVVtSgFrUwmY+RyefU///lPnlLa1cpasGjRIv9NmzZh8OFi4uPj6d69e0ubu+7kyZOiuLg4D8xghlDrRUREMM8991y7Lce6X1umVqsFt27dEn/99deEUkrsm9cdqZcJx3EQFBRE582bV7t8+fIqvIutFxwc7FFUVCRu4b4PkEgkzLhx40w7duwwAR46iDAA6VZlTbdv3+6j0Wg8cnNzW/LFpsHBwczrr79el5iYWCmXy90KCwvFLVxDTyUSiSA0NLT64Ycfrk1OTq5v/DldthAJgc8//9xzxYoVPo323CDXecbL4PY68SYDyIiICJ+ffvoJDx5EqI1ER0czUVFRVR988EG9/fyPDnPp0iWPb775xvvNN9+09e/f372oqIgYDIaG09dJc51eX1/fGo7jzBkZGdT+2bHz61wwKBg0aJAgPz+/VUk9JBJJjcFgwDNcUIfAJVgdSKVSCd98801Bbm5ui35eJpMJGoIPAIDMzMx6tVpd2SiPuzMVDzEYDDa9Xu/1zTff+AUGBnprtVp3V6/0bTYbMRqNIgw+XE9wcDAoFIpmBzxycnK8CSG4fA6hNpSWlmZbv349p1ar/c+fP+/eke8dEhJS+8orr5SXl5dXbtu2rTo0NLS6f//+9QEBAcLm2iaDwWC7ePGiZ3l5uZ9arfanlLpj3eBYG24PPoTr1q3zKy0t9W1F8EHGjx9vw+ADdfgDjDqGXC73vnHjhqgFhwJRmUwmWLhwYd2SJUsqGi2ZIgBAk5KS3A4cOCBOTU1lWjj1SgFA8Nhjj1kTExPr5s2bV9PRI2jOwMxJLhtgM2q1urSJDDcEbs+8sTzPsy1dJoAQatqcOXPIypUrjSEhIbXQSbMJlFImMjLSc+jQoZ6pqanCvLw86sjniImJgUmTJtW+8cYbZkJIPd7NJstY+OGHH4pXr15NWtMmsizLLFu2zKjRaMxYqggDkG4mJiZGePnyZXFhYaHTZS6TyZjly5fXJiQkGAkhcK9KXKVSCbdt2yasra0VFRcXt2h5FwCQiIgIxmKxWBQKhU2tVhtdLQ94cHCwT25urgfgCJlLtYMsywpiY2P5AwcO1DS1F4pS6j579mzR9u3bse5BqB2NHDmScBxnTElJ6YxDAO8EPZRSQWRkJMNxnKC8vNwnKyur2UCkoR168cUXba+99poRz6O4Z10qWLdunZ9arSb2DectrVNJcHCwMTc3Fw+LRBiAdEf2zWG+JpPJ4ky5SyQSZsWKFXWvvfZapSOb3OPi4jyKi4t9cnNzoYXTsRTs6YSLi4ttY8eOtXzzzTdGSikwDEM7c8N6enq6zzPPPOOJy69cry0cOnQoM2zYsIpGe4nuSaVSeaakpIhPnTplwfoHofbFcRzhed5IKa1zpP1obyqVirly5YrX6dOnvQoLC4k9CQVtqh2KioqyDRkypPzPf/6zraslTGnP4CM5Odlv6dKlpDV7PjiOIwsXLoTVq1eXYpCHOhrmee6YyoI5d+6c3+nTp50ZpaBSqZRZs2ZN/csvv1yh0Wgc+qHc3FxrUVGRNS8vT3j58mWmrq7uTmXuTFBqbxhIXl6eMCgoyDM3N5f7f//v/9HMzEyq1WqJTqej9/nZpv60yrfffutZUVEhsP9OyIXqkeLiYlNmZmZtM98DsmXLFo/vv/9eWFdXRwEDEITalb2u9BCJRN7R0dF1er3e1pnfO71eT7OysupLS0urV65cKbx58yZhGEZgMpkaByKkcTuUk5NDrFar97vvvuvxr3/9q9bRtrA78/Dw8F+8eDFpZVtIR40aRRctWlT5wAMP4MGQqMNhB6ADREVFeaWnp3PgxLIhmUzG3GPPh1Pkcrm3v78/98MPP4DJZHIoI0lzzwvLsiQ2NtZ28ODBqri4ONi4cSM89NBDQAhp1+lbrVYreOGFF8RGo7HF6YtR+5BIJEzfvn35zMzM6qauO3/+vHtycrLfxo0bsbFDqIPberlcTuVyeWVzs5QdiVJK3njjDS4tLU1YUVHhfv78+YZ26p71zOOPP177yiuv1I4ePbrWFWZ0OrivRimlwueff174xRdfsK3tv/Xv3184YcIEY3JycjV+PRAGIN3QL7/84j1x4kQuKyvL0elNGhERIZg+fXrt8uXLja2tZK9eveo5atQoIpFI3MvKyjyvXr3aJp0/lmUZiUQCQ4YMAZlMBjt27DAZDAaIiIgAiUQCEokEli1bBvYT4oFhGKLX62uUSqWz708opYLZs2eLjx07xrRwfwtqR2PGjBF88MEH/NChQ5vLoCJgWbYXbj5HqHOEhoZShmFq1Wp1S+ri9gxEhImJie6HDx+mjzzyiOjYsWP32ydCnnrqKaZPnz7VW7durepJS7JUKpWwtrZW/NVXXwlb2Y4TALBOnjzZfODAgXrc6I8wAOm+lYa/RqNxeNSeZVlm7NixdXv37q2834bzFlbwjFKpFFZWVnL/+c9/hG3QCbz7cwnsnx84jgOWZUEikQDH3T5w3dfXl6mqqipvyYbImJgYz59//llcUlJSD5g62uXqkP79+9dfu3atyr6GmN7n+SPbtm0Tz5kzB9PvItSJWJYVCIXCutdee82q0WiMLtIPuVMnaLVa9y+//FJ48+ZN0alTp+5Vp1CO4xiBQFD/wgsv1K9bt64npI4VBAYG+tkzXbV2+SrRarVWpVJZht8G1JmwM9fO/v73vzvc2WoIPvbt29ew4bzNOmqEEJtOp6uLjo6uiIyMLJs2bRoEBQVRjuOA47iW7NO4e3+HDQBsJpPJZjAYbHl5eba0tDTbsWPHbMeOHbMWFRVZ586d6/Tvk5qaKhSJRJw9dTE+ry6G4zhwc3OzNZF6987zcvz4cczvj1AnM5lMlsrKSuGnn37qqVKpfKHzByJ/VScolcq6AwcO1PTr1+/W5s2bzSNHjiT2oKPhcxKe52llZaVbUlKS1/z583ulpqZ6Ukq73YCqfRBSEBQU5FtUVETaIviIj4+3KRSKCvwmIFcYeUDtUaNSygwcOFCUl5fnaKeLkcvltZmZmZUdeO9pfn6+V3p6utfGjRtpVlYW8fLyEhoMhoZrbG1Q4dlYlhXOmDGDb8la05iYGE+9Xu8D91kXjDpXYGAgbNiwwaxUKnlo+rwBwnFc79ZkbEEItX07IJVKYdiwYebFixfXjBkzxuKKy5oopczKlSvFH330EWOz2QT2GfyGtokEBgbSFStWEE9Pz4rExMSuvqSIAABVqVRMdna275EjRwRtUW9yHEeee+45W0xMTIUrLb9DGICgNq48UlNTuRUrVrCnTp1y9IteDwCVnfnBVSoVU1ZWxm3atIkCAMTFxXlarVZy5coVMJlMDZmxwJ6xBOwNgA1uz0zceZYalmEBAEgkEhg7dqxt7ty5xvDwcKdSdqSmpnquWrXKJy0tDYMP133WLQBQ3tyFW7du9ZwzZ44IcAYEIZf8Lj/77LOMXC7nX3/9dZdd0pSUlOS2du1ab6FQ6PbLL78wJpPJ2rjtkcvlMHnyZF6tVtfbZ2U75RDGtmiLdTqdb3Z2dlskXaEcxzFTpkyxPfXUUxh8IAxAunsAAgDeLMtyjuy1UCgUQq1We9OBZSwdilLqWVhYyGg0GsjMzLzz9w3/PXbsWLehQ4d6HT58mM/Ozr7zewYGBkJQUBAAADz77LNk4sSJ9fbgw6nGYNq0ab13796NT5QLP+uDBw+2/PTTT80GIIcPH+4zadIkDD4Qcl1UJpMJPD09qw8dOmQZMGCAy56KrVKpPHU6nZBhGPb8+fM2aJThcfjw4YJnnnnGsnLlygpXa1ObrVAJgSVLlrD//Oc/3W7duuXeFgk7OI4jY8eOtU2fPh2DD4QBSHeXkZHhtnz5cp/jx483V75UJpMJlixZUj1//vxqFzkIqPFnps0EKMy1a9fcZTKZua2n7b/88kt29uzZXvg0uS6O48jTTz9t2bVrV7MByIoVK3qtWbMG6xuEXDwIYVlWMGLECAgKCjJ+8cUXrhiE3BnIiouL8xCJRG6lpaXst99+27AsiwIA88QTT9gSExO7TKebEAKffvqp+KOPPvJw5LR4R1/2rnLokjNCCAMQ5KBGWZuaPO1ZJpMxo0ePrvn888+rXLhiaO3natHP9+vXz6+srEyIewZcOwD5xz/+YZk8eXKzAUhoaGivnJwcrG8Q6gJBCNzeswU+Pj7097//fZVOp3PZ018JIfD2228LNRoNVSgU4kZ7JggAWKOiouDLL7+0hISEGF31d9i8ebPogw8+cCsrKxMUFxe3yWGRDXs+evfuXa7RaHAZM8IApLtTKBSCgoKCXs3tW2BZlpk0aVK1TqfjsdT+9zxSSsmiRYu4rVu3emDw4fodFUJIaXOzX5RS5oEHHvArLCzE+gahrtdHoLNmzaLbt28vhy6QDCQmJkZ48+ZNnxs3bpCqqioBAFCpVApDhw6tPXLkSFVbprdvbeD01VdfCebPn+/FMIy3wWBos8yXEomE+eMf/2j98MMPy11kZQVCv4FpTdtY37593bOyspqtHPr374/Bxz36qidOnHA/ffq0F8/zWGm6OJFIBI4svTt58qTYZrNhXYNQF6yTAQC2b9/OBAUF+QGA+4YNGzwYxnW/znq93pKdnV32/PPP8zKZrHbkyJFAKSUZGRmsUqlkOzn4uB39UOr22muveX399de9b9686WUwGGxt8bk4jiMikYjGxcXVffjhhxUYfCBXH91AbVVTU0r+7//+r8+ePXua/NLHxMSY9Xo9Bh/3eB79/Px8ysvL8byILuCxxx6jZ86cKW3uuiFDhvj++OOPeAAhQt2gjn7qqaeY3/3udzWbNm0ydoUP/MMPP3ipVComKysL+vbtW5eZmdmpaXo3bNjgce7cOR+tVkvaYpP53d2QsLCwquzs7Dp8VBEGID1P76b+cdy4ccy///3vWzgy8ZvgjVGr1T6ffvqpu300CLk4lUoFf/7zn285MAviCwAYgCDUTaprlmUFgYGB5tzcXFcPQlxmbyWlVKhWq72/+uorN/t+uNaesfUr4eHhgrffftusVCorATeboy4Al0W0obFjx4qbqFDouHHjmBdffLEKK4bfUiqVBIOPLoVkZ2cbmwg+CADAuXPn2ODgYAw+EOpG332TyWTLzc31AAC/efPm+efn53s1/t67UrB0d53UCYEHs3PnTr9Bgwb5bN++3bNRMo62+jxkyZIlsHDhwjKFQsHf4/dGyCUJsQjahkqlYj744IP7lqdUKmVGjBjBK5XKGiyt37px44YYg4+uRafTWZq7Zs+ePQKbzYajcQh1PxQAhF999RUtKysTpaam0tjYWLOLf96ODDyIUqlkBg0aJM7Pz2/IzNXmbdzq1attK1euNBJC6hMTE/GpRF0GLsFqI2PHjhWnp6e73ytzE8dxZOLEiXU6nQ6nRu8hISHBLTk5WYwl0XW89NJLzCeffFLaxEFfBG6vR+auX7/u3Q5rnRFCLkQmkzEPPvigUa/XmxvXAT2sP0UppUStVrtlZ2d7fffddx7tMLBGAYCwLMtERkY2Lm+EuhRcgtUWtQGlbqdPnxbw/L33lY8cORK0Wm0tltS9Xbt2TcRxHAbDXaihlUgkZmj+oEqhv7+/m8lkwoAboW4uLy/PptfrRYGBgd5arbYnJhKhlFLPZ555hktJSfHT6XTttaRYEB0dzfTu3RuDD9SlCbAIWtcRAwCorq5mr1275llRUfGbykahUJCZM2dWhoeHYwByj7Lr37+/53//+1/3ujpM2tFVREdHMzdu3DDOmTOnuROGPS9duuT9yy+/NJzAixDq/r1wj//+979uMpnMbceOHdYvvvii289+pqamel6+fNnr0KFD3L59+4T2Oq/NSSQShuM40wcffFDz8ccfY58Cdf1OIGpV+VEAYO1/flXRSqVSkpiYWKnRaLB3fe+GynP8+PE+x44da7MDmFD7U6lUjFqtriCENPdcewGACAAwAEGoB1XtYF8i9MADD9gCAwMr9Hq9pTv+ogqFwj0nJ4etr69nbty4IWjPpaYRERFMVFQUn5ycXI2PGOoOcAlWKyvaw4cPe4wcOdLb3sn6VfDBcZwRg4/7Bh9EqVQK7Yc2YvDRdToWTHJyMt9c8HH+/Hn3lStXcvagHIMPhHoOAgBgMpmsly5dIgaDQZySkuLfxesBAnD79HJKKaNQKASbNm3q9Z///Ed09epVYU5ODmmn4INwHEcSEhLgyJEjGHwgDEDQbSqVilm/fr3w7NmzjStWyrKs4He/+x2fm5uLU6T3odPp3CwWi7fBYLBiaXQdEokEQkJCmm1ok5KSyKFDhzDwQKhnByI0JyeH/PGPfxT069fPNykpyY1SSrrQ57/TrgMA+fLLL32WLVvWW6fT+S9cuJAUFhaSeyWeaQMUAEi/fv0sf//7383Jycm3HnjgAQw+ULeCaXhbGcBZrVbOZDI1XmJCQkNDrXPmzLGkp6djxqt71ayUMm+88YaHfekV6kKGDRtGVCoVExkZ2eR1mzZtsrIsiwWGEAKe5ynP84KvvvrKHwDMDMNU2mwuvzWEAgBcunTJ480332S+/fZb4axZszyhA5aUDhgwQOjj41OblZVV8cILL+ADhLpnBxqLoMWdaAIA3t9++23jWpSEhIQAx3EViYmJ9VhK90YIgczMTG/7yBGOkneh+qK8vLxOLpfXNXXfKKXMmjVrWMx+hRBq7Ntvv7WsXbvWY8yYMWJCXLfqp5QK165dKwIAdtGiRT4ZGRk+paWlntDOS0pZlmWmT59ujYyMNMbHxzd10CtCXR7OgLSQWq0mWVlZDRXSnXpryJAh5TqdrmFZEdYe9wjctm3b5uNABiXkYiQSCfH397cQQixNNcJKpZJ4eHh4QDscuoUQ6tJIXl6e1WAwePj4+Pjt3bu3PjY2lnel9un5558XDxo0iBEKhUIAoCkpKRQALNDOg2UcxxGNRmNZsmSJsYnzlRDqPpUBFkGLMcHBwb1yc3PvBBlRUVG29PT0Miyapo0cObLPyZMnMTjrYnWFWCyur6ioqCSENHnvYmJihJmZmX7ttDYaIdRN6pSIiAgyYcKEmvfee68KOvfgQiYhIUF09uxZ4c8//8zYz/Rq7wQad1YAzJ8/n/bu3btSrVZbm6tfEcIApIejlDJHjx71feONN4RZWVk2mUzGzJo165ZGo8FR3yakpqYKY2NjfbEkuhaO48jTTz9t2bVrV3mTFQohsG3btl7PPfcc1i0IoWbJZDImPDy85sCBA1XtuOToN8GNSqUSnjhxAsrLyz0MBgNrPzSwo4IgIpVKITg4GDiOM6akpGDCGtTj4B6QltYehNgmTJhQ8frrr5vHjx9vW7ZsWb1arcaRi2acOHHCB08973p4nqfPPvtss40kpRRWrlyJBYYQckheXp71/PnzXo888gh36dIlj3YIPOxVEyVXr171DA4O9gAAj1OnTvnl5OT4Z2VleTc6sby923DKsiwDALVDhw6t/fzzzxuCD2wTUc/rR2MRtEGNQqmbWq224uxH01JTUz1nzJjBFhYW4nPXxYhEIlpVVVXa3HU//PCD14gRIzD9FULI6f7IU089xezfv99ICKlpsxclBP72t7+xx48fF/j6+nqdOHHCVlxcTKDj96iRMWPGMBzHVbfzbA9CGID0oDLEmsQBCoVCfOTIEXfcG9D1TJs2DXbv3n2ruetmzZrVa/v27Qx+JxBCLTFlyhQmLi6OT0xMbNW5F6mpqZ4nTpzw3LhxI33wwQc9srKyKPxvX0eHZmAcMGCAYODAgebf//73NWq1ut6+zwP7DggDEITaO0DLyMjwfuGFF9hz585hhdsF72FMTEy5Xq+3NHURpZQQQnzhdnY9vM8IoRYJCgqiCxYsgJUrV/KEEIf3R1BKySeffOK7YsUKQikl3t7eAoPBQDujPuI4jjz88MN03rx51tTUVKNWq7XhBnOEMABBHRyAjBs3jv3xxx+5kpISTC/YxchkMiYvL+8W3H/JAgEAeunSJR+lUumBQSZCqC3aDoVCAXPmzDFOmjTJ4SDEvrncNzMzk/A8396ZrH4V/wAAkUgkjJ+fn3Xq1Kl09OjRxtjYWAveSoR+S4BFgNq7EdFqtQKdTudZUFCASQ+6IIVCUZeRkVGr0WiaCjLh+vXr7hcvXhTaU1gihFCrZGdnAyHEa8qUKfV6vd6hE8j1er1t27ZtdWaz2SMrK6sjgo+GARdBcHAwTJ8+vW7v3r3VsbGx/BdffIH7QhFqquOAUHsKCwtzr6mp8bt69aoFn7kud++E2dnZt+D2QVz3rUcopcLo6GhReno6BpkIoTY1dOhQMmrUKOOmTZscmQkhAEAbZkL0en177rUgLMuS8ePHw8WLF6tff/11y5w5c8x4xxBqHnYWULuilApiYmLYq1evOjR6hVzn1tnvF69SqZobxaOJiYluBoPBDYsNIdTWzp07R//1r39xa9asEVNKm6tnKACARqOxnDhxonzTpk02iUTS5n2d8PBwwauvvlpvMpkqRo8eXfnzzz/z9uAD2zmEHBwpQKjdJCUluX311Vf+3377Le796GIBCMuywsDAwIrc3NzaZoJMt8TERHFycnKHZpZBCPUsEomEeeaZZ2zTpk2rcHRvBaWUGTRokDA/P1/cygyMhOM44Hmezp8/n8bExFQoFArcWI4QBiDIRQlYlu1lMplwLWwXC0BiYmLI8uXLq5rbAJqRkeGm0Wj8Dxw4gEvsEELtbsmSJSASiSo0Gk1DndNsECCXy91++eUX3+LiYkcDBgoADMuyJDAwkObm5lo2bdrEREdHGx977LF6PMcDIQxAkAuLiorySk9P5wDTsnYpAQEBgqioqOr9+/dXNdXAU0rJrFmzvHfs2OEN/8uxjxBC7SowMBBCQkIqmksP3phKpXLft2+f+Ny5c9BEm0QBgAQEBAhqa2trx48fTzdu3GgJDAw0Yakj1HZwDwhqN5RSEhgYKMLgo+sRCoWWRx99tNkNn4QQUlhY2BBgYvCBEOoQRUVF5OzZsz5Lly5lKaWOZPQkGo2m7qGHHqqUSqX37RMNGDBAOHjwYGvv3r1Nr732mlGn01Vi8IFQ28MOA2pXgYGBvYuKirAguli94O/vX1tWVmZsLsDcsWOHaNasWe5YZAihzhAeHi6YPn26ZeXKleWEEIeW+srlcjcvLy/fkydPUgAgUqkUFi5cCMnJyVWjR4+Gbdu21RNCrI36STiIhhAGIKirWL58uXjt2rXuWHl3LRzHkenTp9clJydXNheAzJ07t/fWrVvx/iKEOgvlOI6ZMmWK7csvv3Q4CElKSnL7/vvv/fLy8mrc3NxqTpw4AYQQy139I6zbEMIABHU1oaGhvXJychisxLtcnWCllJY7kt2F47jeePAgQsgV6q4VK1bY3n333TJHM1NRSglmsUKoc+AeENRucnJysGLvgiZPnsw40ignJSW5YfCBEHIRdM2aNcyCBQv8G+0JaXKQFYMPhDAAQd3MpUuXPIKCgnCGrYvhOI6q1epqR649ffq0iOM4vMcIIZcJQv71r38xSqVSrFAoBICz7whhAIJ6lm+++cbbZrPh8qsuZuXKlSQyMrLZAESr1XpptVrSyoO9EEKoTRUXF9t0Op0AAMSUUuzjIIQBCOpJvv76axsuz+lySHFxsZFS2uysxtq1a92xcUcIuWI9BgD0yJEjghdeeMEX6ymEMABBPUheXh5gANK1DB8+nCkuLrY0sS6aAABkZGR4W61Wd5z9QAi5Kp7n6VdffSWIjo72BUy4gxAGIKjnBCCoaxkxYkS9Vqtt9jq1Wg1FRUXYoCOEXD4ISU9PFwCAv31PCGAwghAGIAgh10AHDBgg+O9//1vd6PCte19IqaCqqsrdYDDg7AdCqEvUbxzHMf/5z398cWM6QhiAoB5Q6WMRdJ16wN/f36xWqy3Q9Ogg3bZtm5tAIPAAABsWG0KoK+B5nhYWFjJHjx4VA4AASwQhDEBQ90IAAPLz871iYmLwBPQuQiKRELlcXh8bG2tp7to5c+bYTp06hfcVIdTV2IxGo6Bv375ilUqFfR+EMABB3Y2Xl5ewrq4On60u4qGHHqJJSUnNXqdQKARDhw4Vm0wmG+A6aoRQ10IAgBYUFAh+/PFHP8yOhRAGIKibsdlsOELeRXAcR6qqquoJIQ1nf9z33kmlUuG5c+cw8EAIdWV07969zOzZs/1wJgQhDEBQN3Lz5k0shC6CEGJ78803a5ttsSklPM/7AO79QAh1gyBk+/btjE6n84X/7QnBwRWEOpAQiwChnht/iEQiqlQqaxwIVCjgnh6EUDcKQrKzswV9+/YVR0dHV+p0OisWCUIdB2dAEOrBDbCvr2+VIxeuXbtWBDhCiBDqXmwVFRWCsrIyX1yOhVDHwhkQhHqouLg4cvTo0bpmoxRKySOPPOKOJYYQ6mYIz/P01KlTjEAg8KWUVhBCcJkpQh0AI36Eeqinn37aYrPZmp3VUKvVooKCAgZwCRZCqBvieZ7++9//Fi5ZssS3ITDBUkEIAxCEUBuTyWTMK6+8YrTv7bgvSqlw69atAp7nsdAQQt0ZXb9+PZHL5W6Agy0IYQCCup4+ffpgIbgwjuNISEiIWaVSNdXIEgCALVu2eAUGBuKhkgihbh+AAABz6dIln6VLl7KUUlyijlA7wi8YavuolmEIx3FYEC7ayA4aNEgwfPhws0ajaXat8wsvvGDD4AMh1FPqx6qqKjhy5IiI4zgrAFiwSBBqH7jOEbV9DU4p4+vr61NZWYlT2S74ne/Tp09NSUmJqbnlVwsXLvTQ6XQ+xcXFePI5QqhHkcvlkJCQUJmYmFiPpYFQ28MlWKjte7iE2CorKzHwcEEBAQHM8OHDbQ7s/XDz9/cXFxcXUww+EEI9TWZmJnnvvfd8VSoVrhRBCAMQhFBrCIVCy7hx45o9cGv06NF0+/btWGAIoZ6K5ubm0uPHj/ulpqZiEIJQGxNgEaD24Ofn52k2m/H5ciEcx5FHH320/uOPPzZBE7MalFJitVrZL774AhtdhFCPlp+fD9euXfN87733LHhaOkJtB2dAULuQyWSAG9FdCmEYxqpQKKob4oymrs3KyvIG3L+DEEKg1+uZ999/37OhfsQSQQgDEOSi5HI5FoKLmTx5MnVkQyUhBLRaLZ4GjBBCt1lPnz7tHhMT4wk4MIMQBiDIdb388suYiteFcBwHS5YscSiomDdvnq998zlCCCH7rEdGRoZP//79PbE4EMIABLlqbU1IfXOZllDHEYlENDIysrK561JTU4VfffUV1gsIIXQXk8lkCwoK8rl06ZIHlgZCGIAgFzR06FBTUVERnh/hIpYsWcIQ0vyt2L9/vw/HcXjPEELoHtLS0mybNm3yoZTiTAhCrYBZblC76du3LxQUFGBBdDKO4wjDMFWUNj8htX79eitgdjyEELqvTZs2QXV1tTcAmLE0EGoZnAFB7UalUmEhuICFCxeC0WisbeISAgCg1Wq9goOD3QE3WSKEUFPoli1bBHK53LtxHYoQwgAEuYCCgoIKjuOwM9uJBgwYIJBKpcY///nPTW5Ap5SSzz//3K2oqAgbUoQQciAIqa+v59577z0WcNAGIQxAkOvQaDT04YcfxoLoREOGDLEsWrTI2szyK3rixAmPyspKT5PJhAdtIYSQA7KysqxXrlxhf/nlF29KKQ7eIIQBCHIFlFJ49dVX8RnrJAEBAQKLxVJDCLE0c5+YzZs3u6elpeEoHkIIOY58+umntgULFnCAy7AQwgAEucjDxTC0pqaGx4q5cxpGT0/PuqVLl9Y1V/4XLlwQWq1WL7i9jADvFUIIOWHPnj223r17s1gSCDnRScEiQO1MAAC9AABP1u5AEomEGThwYM0PP/xQZf+eNzW7IWRZ1t9kMuE9QgihFmBZlnnllVdq3nvvvSosDYSahzMgqF0lJSUxY8aMwUC34wMQ2LNnT7NLqiilzPvvv++LwQdCCLWcyWSiu3fvdgMc2EUIAxDU+RISEmzDhg2zYEl0KHLjxo1aiUTCN8QZ972QELpjxw5sMBFCqHVoRUWFoH///mIMQhDCAAR1dk+YEOv+/furWJYVAKYq7BAcx8GiRYscOkxQoVB4njt3DgsNIYRaied5Wlpa6hYTEyOmlAowEEEIAxDUiTGIWq229u7duxaft45rBIcPH25y5NrLly9zGBgihFCb1b/W0tJSD6VSiYNuCGEAgjqTUqm0Dh48uI5lWRwN6gChoaF00qRJtc1dl5qayp07dw4bSIQQasN+1fnz560XLlzgVCoV9rEQug8hFgHqoCCEFBQUUFzu0/6WLl1KX3zxxWave//99xs2TGIQghBCbSg/P1/w448/+lFKywkhmOSjG6GUEkL+N56ampoq8Pb2FpeXl1MAgKNHj4LRaLznz/r4+EB0dDT07dsX7NdWaDQaan9dAAAQCATUZuv+jwyOSKMO4+fnJy4vL3fHDm/74TiO8DxfCs2kPdZqtQKlUuljH4TA+4EQQm2P0Wq1FqVSWYZF0WX6xPTuYOPEiROCjz/+mJaUlBAAED7yyCM++/btsxUVFTnVn+Y4Dnieb6q9pXPmzGGioqJocnJypVwuh7FjxxKFQlFPCOl27TTOgKAOM3bs2LojR4648TyPhdFOpk6dymzevBkaj87cq4LdsWOHN8uy7iaTyYqlhhBC7YLOmzePyOVyt8zMzHosDpcPOiilVLht2zbhO++8Q3Nzc2HRokUe1dXVXpcvX7bl5uYCz/Og1+vvNcBHm/s7nucJADASiQRY9va5lUOGDLnz7x4eHmTv3r3mrVu32vz9/b1CQ0PBzc2NAQAeACzdseAR6jD9+/f3vX79uhvgqHu7fJ9VKlWNWq02NTVaQil1GzRokCg7Oxs3SSKEUDvXyyEhIXTatGlGjUZTB7js1fVuECHw9ttvcxqNhsbHx3sajUbhqVOnqMlkaggibC3sLzMsy4JEIoFBgwaRhx56yPrBBx+YoqKi4MEHH4SoqChYsmTJnYuLi4uZBx54wNQTll9hAII6nFar9Z87d66gmWlI1DIMAJQCQJOzGufOnWP/9Kc/cQcOHMDZD4QQamcsyzJDhgyp+eGHH6owAHEdv/zyi/fGjRvddDodAIBHXl4e2IMN2oJ+MgEACA4OhsGDB5ORI0dali5dygMAKBSKhj+UEFLv6Gs10i2fFwxAUIeilAoCAwP9i4uLsQJuYxKJhOnbt295c1P9crncu6CggDMYDLgxEiGEOqDp4ziOjBw5siolJaUWi6PzpKamCo8ePSpes2aNLTAwUGCz2RiDweD0LAfHcQQAaN++fem4ceOYJ554whwfH18dExND5s+fT+3BhrNtbI8KTjEAQR1u+vTpfrt27RJgSbStMWPGCKZOnVqWmJjY3AiLFwCIoJmN6gghhNpOdHQ086c//aly4sSJdd1xU7HLRn+UktGjRwtqa2t90tPTBfbN4OBEZ58CAMNxHAQEBBChUGgbNWqUbdiwYVWJiYn1DXsuG7JYIQxAkOtiZDJZ77y8POwAt+F3WaFQWLVabSUhxNpERcwMHz6cO336tAfgMgCEEOpQS5cuZdatW1eCJdHODSIh8O2333rOnz/fFhQU5HXlyhXPq1evOrPsmAIAYVmWGTNmDLlw4YK5d+/edNmyZUShUNQSQsxYyhiAoC5GpVIxp06d4lJSUrAT3DYoAAgAwAgATVaKly5d8li7dq3vli1bLPj9RwihTmkDqzUaTTWWRPu4dOmSR3x8vNv/+3//z3vPnj1gMplaspGcCQsLs3h5eZkPHjxIetLm8I6Cy2BQh9Pr9XTGjBlUIBB4X716taXZJdBdlWXfvn3rjEZjk6n6iouLBVlZWZ72Na9Y7ggh1MGsVqt7fn4+BiDtICYmxvNf//qX+NKlS26ZmZnW+vr6hkFOh9o7qVRKFi5cSG7cuFE1Y8aMmt27d9euW7eu3r68imC72XawIFGnoJSSQYMGsdnZ2d6AexFaXZwymUzwzDPPVK1fv76mqQvlcrlbQUGBn8FgsOL3HyGEOseIESNq7VmxUGs7soTAiy++6Hby5ElRfn4+02h/hyNtXMM1NC4ujkydOrXq+eefr79rKTNmLmsHDBYB6qQKg/bp08fCcRx+qdtAUFAQffrpp2lzlfStW7cEBoMBCwwhhDqR0Wj0Pnr0KHtXJxg5gVJKFAqFIDk52f/AgQPi7OxsQaODjpsrU8KyLAMA1vHjx1u1Wq35yJEjt+bMmWO+xz5K7Ke0Rz8QiwB14rNHZTKZuKSkxB3PBWndQIJEIjEZDAYTNDFSQykVzJo1q9eOHTtwxgkhhDq5DZTJZHVr1qzhlUqlDTu5zvVbKaVkzZo14r1797qfOnXK2c3ljI+Pj3XChAlWrVZrxIxknUOIRYA606hRo2q//vprIQbDLceyLISGhpLmZjaUSiV8//33WNEihFDns1FKPdPS0uoAoAaLw/EAglJKJk+eLNbr9UKe5506UHfAgAHCIUOGWIYMGWLUaDSWhhS6qJMiSYQ6k0ql8l+3bh2ejt5CMpmMmTVrVrVGo+Gh6bWqDAD0AhxpQwghlyAWi62VlZWVgHshHfL000+L9Hq9wGKxuJtMJof3MnIcR+bMmQNGo7Fq27ZtFkKIBXBvBwYgqGejlAqCgoL8ioqKsDBaIDo6mtm7d2+1RCK5bwBCCIEdO3b4zZgxAzPfIYSQC/XDxo8fbz169Gg5LgVqmr+/v09tba2nPa2uo2VFZDIZefDBB40nTpxoCDyQC8BN6Kjza19CrH/605+sHMdhQNwCAoGABgQENFsZm81mXHKJEEKuhf7nP/8REkJwcOg+UlNTuYSEhN5lZWUeJpPJof0yHMcRjuMgISGBHj9+3KjX680YfGAAgtBvGAyGyqFDh2Ll0IL47eTJk/WEEFNDY3a/C/fs2YOjawgh5GJMJpON4zhflUqFg0R3GTduHDt58mTv5ORkAMdmPSgAkF69etWrVKqa5OTkWwMGDMBTy10QRtzIJej1evrmm29ab968yf7yyy/YUXYiAIHba4ebrWBFIpE3LnNDCCHX4+7uTtzd3d0uX76MnWUAuHr1quexY8c8r127xpaXlzu8P0Ymkwl69epVe/Xq1cpjx47VY0m6LpwBQS7Dz8/P1q9fP7P9ucQgxEH9+/d36LrCwkIsLIQQckE8z9OzZ88yW7du9bT/VY9ekvzuu+9y169fZw0Gg6PBB5VIJEx0dLT5ypUrRnyiXB+uuUcu90z6+fn51NfX49kgDuA4jgwcOLD+xx9/rHDg8t5YYggh5JoCAgIEv/vd72pOnz5thB6coSksLIzLzs72dOZnoqOjmfHjx5s1Gk3D6fLYf3BxOAOCXC0gpqmpqRapVIql4aChQ4diISCEUBdXUlJiPX36tIdcLvemtOf1n7VarVdMTExvJ4MPZvDgwdbx48ff+vOf/2y0Bx7tXniUUkIpZVQq1Z0/9j71Pf+oVCqGUspQShk8e+R/HT6EXM6TTz7pd+jQISHgKEaTpFIp2b17d31sbGxFU9elpqYKY2NjfbHEEELItQ0fPlwwd+7cssTExB6zh2Hr1q2e69ev98nKynJ4v4dUKiUSicTRFQDO9o3pPYIOYWJiIrl48SIdPXq0t0Qi8Tx37pytqqoKLl26BIWFhXDXPss7rxMSEgIhISEgl8sZs9lce+DAgRqFQgGDBg0CpVJZ1xOfc8y4gFySRqOpraurczt27BgGIM3o06dPszOZHh4ePhzHEVzWhhBCru3UqVM2uVzuQSm1EkK6/QGFqampnh9//LHIieCDymQywaxZs+r+8pe/VLTDR6KEELDZbJ5qtRq2bdsG169fh1WrVol++uknkpWVBXq9nkLTh0c2zMQwLMsSi8UCtbW1cPjwYeuZM2dswcHBnvb22wYAPTIAwRkQ5LK0Wq3X+vXrRWlpaXhC7H2IRCKamZnJh4SE1DZ13bvvvuu3cuVKnFFCCKEuYPjw4YK4uLibGo2mW7d/ixcv9vr555+5lJQUh9umoUOHkldffbX++eefr2zrwxuvXr3q+d577wm/+uorEh8f752dnU2zsrLAZDIBOHFaPcuyzLPPPkuMRqP5xo0bdQ8++CCsW7cOHnzwQQshBLNzYQCCXF1UVJTXTz/9JLIfPoR+ywYAZc1dNH36dL9du3ZhAIIQQl1ETEyMRa/XV3TTvidtySBjREQEs3z58vrp06dX2PdStEmbRikVfvLJJ6KNGzcy5eXlAoPBcK8Zjub6zGTOnDkwduxYOmPGjMrz58+TQYMGWe4xi9X4dXpsm4xLsJBLmzBhQj0hBNLS0rAwWiE/Px8LASGEupCcnBz3jIwMcWRkZGU3+9UoAMDLL78sLC0tdfiHQkJCYMqUKbemT59O22Lmg1JKAIBs3rzZ18fHh3h7ewvsaX+t9iChyYCj4bT14uJi68KFCwXh4eGmhIQEMwDAjBkzbOHh4U3+/j0dzoAgl6dQKNzPnj0rLi4upjzPY4E0EhUVZUtPT292BqRfv35++fn5OAOCEEJdqI82cuRIy8mTJ8u7TeRBKTlx4oTg1Vdf9cjKymIbdfabLIeIiAiyYcOGujFjxlS0NkMYIQQef/xx4fTp09k9e/a4p6SkOBoUUAAgMpmMqaurs8jlctuCBQvouHHjKvFRdR6m4UUuXwHrdLq6iRMnGnED9W8NGjTIoetwBgQhhLqekydPkoSEBLfu9Dvt2bOnV1ZWljfcXuLUbPABAPWvv/66efTo0ZWtCD4IAEBcXJxH7969uZ9//rlXYmKim33viUMvKpFIBE888QR99dVXzTdu3DDu27evAoMPDEBQ90UBADZt2lT73HPPOTJS0qP07du32WtSU1M9g4KC8HR5hBDqYu0fx3GCzMxM78ad6K5syJAh3hs3brQ62h4NGDCA0Wq1tbNmzTK2ctkVlcvl3v/97399b9686VVSUmJxNHCRSCTMzJkzmccee4z/5JNP+FdffdVICLHg44kBCOohtm3bxk+bNo1iEPI/I0eObLYsbt686eHt7Y3fdYQQ6mJ4nqeZmZluwcHBHtDFB5HGjRvHGgwG1tHrJRIJ8/bbb9cqFIq61rT7MTExnv379/e9ePEiW1JS0hD8NPt6LMsyw4YNq+3Vq1fFihUrKg4ePFhtzziJfRAMQFBPQgixTJkypVwul2MQYi+SkydPNjv9W1RUhHtnEEKoC+M4zicpKakrLsUi9naINRgMrH2Td7NYlmXi4uLq7Kl2HZ4xacy+ydwjMzNTdP36dTcHl3ETjuNISEgIbN26tfbUqVNV2dnZdeHh4Y3P6sDVBG31YCDUlSgUCsHJkyf9qqqqevTBelKplBQXF99qrjKMi4vzOXnypAfuoUEIoS6JsiwrCA0N5TMzM6u7Yl9TJpP5lJSUuDvaDrUmBTGllImMjBT06dPH14nzRSgAMD4+PtYZM2bQjz/+uKKtzxhBv4YzIKjL0el01oSEhApfX19rTy4HjuMcGkRISUkBnAFBCKEui5hMJltBQQGn1Wq9utIHV6lUTHBwsCgvL8+D53lHZj/olClTmBMnTji7uZsA3B6gnDJlil9OTo6fM4cb2k9Wt23evLnyk08+KcfgAwMQhO5Z0Wg0GsvUqVNrAwICBD21EKRSKahUKnwaEEKoBzAYDLZTp06J7EuLuoSDBw8KjEajFziW8QoiIiIES5curWnBW1GtViu4ceOGeO/evYwzhxcHBgbCiBEjTF9++WWlUqm04pOGAQhC961oAAAmT55cGxMTUw89dCmhfQYEIYRQD7Fu3TpbFxqdJxaLpWHjd7PtukwmY2JiYswjR46sasHvyLz33nu+58+fF8BvTzC/r6FDh5KnnnqqcseOHSbMbIUBCEIOiY2NtYSFhVUsXrwY0/MihBDqCciaNWvELv8hCYEVK1b4XrlyxaGN8yzLCnr37m3etGmT0dn2XKVSMY899pjfmTNnGPseE4d+PiEhAV5++eWK5OTkHjuQ2anPCBYB6uoopSQ6OtovPT1dAD0oO8WGDRvIokWLSgkhtibKxvv//u//uD179tjwSUEIoa7fbwsKCrIVFhaWgxMj/R1t586dfgkJCW6OLoUaNmxY3enTp40teCsmNDTULycnx9GzrqhEIhGEhoYaT5w4UYt7PToPzoCgrl8bE0LT09Mr+vbta+U4jvSUIMTRJVi4AR0hhLoNWlhYyISFhflSSl12D+TKlSvBZDI5FBAEBQVRJ4OPOxvOOY7zdyL4AIlEInBzc6vS6/VmQnAMHgMQhFrPNm/evIrw8HArx3E94rn28vLC7y9CCPXAIMRsNgs/+ugjr8YdchdAAADCwsLc8/PzHWqfWJYVDBo0yOzs76/VagXXrl3ztb+nQ8HHzJkzmdDQUGNBQUHDJnec/cAABKHW02g0tgkTJlSMGDGiYSakOyOZmZl8cxVocnIyGAwGfDgQQqgbycvLgwULFrjaEiyq1Wrd3d3dxfaBwOY6+MTHx4c/duyYycn3Ebz22mu+jfZ8NGvKlCnMX/7yF6Nerzfj04MBCELtEoRER0c3nBHSnYMQsm7dumbXrxYWFuISLIQQ6n5sISEh3lqt1h1caCT/s88+c7t8+bJDhwRPmTKFbNiwodapCIdS5rHHHvMtLCxkwME9MOPGjWMWLVpkHDBgAAYfGIAg1L5BSEFBQXlUVFR3nwlp9ncrKioCk8mEDwVCCHUzly5dIt9++61L7AWhlBKVSuV59epVb5PJ1FzaXRoQECAoKiqqcubcDYVCIXjkkUf8zpw50zC70mwbOGXKFCY5OdkYGxuLwQcGIAg12Zn+VYVCCAFKqXtSUpKbfaTH4fowLS2t3L4npMfuNCssLMQnCyGEuif66aefwvPPP+/mAhuqicFg8MnNzXUkMCD+/v6WJUuWOHXon5ubm09BQYGjG86JTCZjfHx8GmY+cMc5BiAI3bsibfjfjIwMt4SEBG8A8Hr88ce51atX++3Zs8d39+7dvosXL/ZyuDa0Z8eyL8fqkc96UVERPlkIIdR92YKCgkQ2m63TOtiEEDhw4IDnp59+6tCSqICAAEFkZKRZqVTWgeNndrgdOHCAcXRJsUgksj344IPGL774wnxXHwNhAIKQvVag1Hvz5s2iESNGiPr06cO9/PLLPseOHRMBgEiv13u9+eablpSUFLpnzx7r8ePHRT/88IOXEy9vKygoqAwLC7N0p+ddIpGAXC536FrcA4IQQt3Xtm3baGeeZ0EpJYcPH3YoLzzHcWTw4MGW7du31zoaGFBK3evr630ppQ7NfrAsy6xevRpww7lrwykp1KFu3rwpOnjwoGDbtm1w7tw5qKyshKFDh7rZbDZy5cqVhv0KtkaVzG+e0YiICMbb27sqPT29BhxMwadSqZijR4/6dpfDCmUyGTN27Nhy+wmuTfEGAA5c+MAqhBBCrevL+fv715aVlRk76/0BoJeD19kUCkWFTqdzaPkVpdRt1apVvps2baKODKZJJBLG09PTeO3aNQshxNLev/ilS5d8fvnllzuDm/369aPl5eUQGRlZiY8lBiCog1FKCQAQQggkJSUJCgsLxZ999hktLCwEqVTKANwelW9UmTgbEFCWZQWhoaF8ZmZmtTPPe1hYmF9+fr6A53lbV37+p0yZwsTFxZUnJibWN3UfpFKpt8FgYDEAQQih7ksikTDff/+9OSQkpMODkJdfftnvk08+ETrQlpMhQ4bU//jjjxWO9iWUSqXnd999JzIYDM1ltqQsywp8fHz4oqKi6rb8/Rr6NDqdjhgMBt+PPvoIcnJyAADu9GkarmNZFoRCoe2NN96ofeGFF6rwybw/IRYBciJYpXDXjIN9SlSQmJgImZmZkJmZCRs3bvTKz8/3lEqldOnSpWBPx0cAAIqLi9ti9oGYTCZbfX09p1AoqFarrXdwpINeuHChXK1W++3Zs0eYlZVFoXuvC3WfOXMmu27duu6ekhghhHo0k8lEp02b1uH1vEqlEn722WcOLW8eOnQonDt3zpmZAUYqlXIGg8GhAUOxWGz19fW1tMXeR0II/PTTT+7PPfcc1el03t9++63Hjh076N3phe19GsqyrEAgEFhCQ0Nter2+8oUXXsA9JxiAoLYaBGj4X0IIvP/++14bN26kK1eu9KqurnZPT0+nV65cAQCAV199lUIHjLhnZWXZsrKyOLVaTQHgloOVCqWUVjz66KNsfHy8EAAEXfFmOLoHBFPwIoRQ98fzPFy+fFmQlJTk1tTMeFvbu3cvZzQaHdqb8cwzz9SePXsWHM3YFRkZ6ZGZmenQtQEBAcJp06bx69ata9jY3uIAgFLqPmvWLLetW7eyOTk5oFQqm+zTiEQiGDx4cM0777xTExsba8Gn0cEgD4sAOfBlZHJyctjNmzfbjhw5QgwGAwkJCfHKysoCk8nUsF+jU58lhUJh0ul0NU489/TDDz/kPv74Yy47O7vLVRgrV64UrF69uowQct+G5vDhwx6fffaZeM+ePTgDghBC3VxAQIAgJibGpNPp+NZ2wh1pQ8+fP+8+fvx4UWFhYbPtC8dxhOf5UnBwcPLcuXPshAkTWPvsR7OfJz4+3rZnzx5jU22iI5577jnP6upq0XfffUccWPZFZDIZ8fT0rMjOzq7DJ9A5mAUL/cbVq1c9Dx486KdQKMQymUzcv39/8aJFi7z27dvnff36de/S0lKvtLQ0a6PDhjq9c3vkyBH2ySef9Lt06ZKHIzEVAJD58+fXjBw5sjQhIaFLxYMAwBw6dIgHgCYDp8uXL2MGLIQQ6iFKSkqs//nPfzwUCkWHnI4+f/58d4vF4tBKmoULF0JGRobDKw4+++wzT4PB4NB5H6GhoTY3N7eK1gQfKpVKOHLkSL+vv/6a1el0tLngQyaTMVFRUfysWbPK7MEHDvK1IIpFPfXmEwINucPVajXp27evr0ajgYqKCoZlWcZkMjXOOuHym7Y5jiNDhw6FJ554olKj0Tg8GqHVagUfffSRn16vb88Ro7YMQAQAUAkAtc1U+B56vV6clZWFMyAIIdT9UZZlBX5+flUFBQU17fg+xL6cmQWA5pKcUJZlBYMHD646depUDaXNN7GUUkII8bO3dU3+AMuyTHJycv2MGTPKW1Rgt99LwHGcL6WUsa/qaPJHIiIiBE888UTV+vXra/CRazmcAen+ASa5xxdOEBMTI/zb3/7GqtXqPsOGDfNft26d/4svvigoKCgQ8DwPBoPBZt9s1fDH5TuwPM/TkydP0uPHj4udOTVdqVRa1Wp1xbRp06j91HTaRe5tk3AGBCGEelabbzKZbI899pgoIyPDrT0DHZvN5jFz5kwWAJpNpxsZGWn78MMPLY4EHwAAK1as8JFKpQ6lzO/du3fdjBkzKloYfDA6nc5PKpX68TwPDgQfMG7cOMH8+fN5e/CBA3vt2YlB3SDKZBi4cuWK58svv0xzc3MhNDRUlJqayphMpu6YBYoCAIwZM0Y4atSoSo1G4/BBRJRS4dKlS3337t3L5OXluWraWsqyrKB3797G69evN/m7xcXFeVy6dEmcl5eHMyAIIdRD2FcwlDoSHLRUWFiYu9ls9m2ufQkICBAMGTKEP3bsmAkc2JeSmpoqnD9/vo89XX6T10ZHRzPjx4+/pdFonGmvCQBQrVYruHDhglij0Th8NtiUKVOYadOmVSmVSpz5aIu+KRZB93T+/Hn3V155hZNIJGxkZKTPypUrxZcuXRIXFRWJDx482HjzeLd4jiUSCRMdHc289NJLgnfeeUd44cIF3mg0OtPpJoQQy7p16yrCwsL4yZMnu+wvy3EOHTgLKSkpYDAY8MuAEEI9iMlkonFxcaz9/Io2RyllBg0a5JWXl9fc6ghiNpvr//jHPzYsiabNBAawevVqj1u3brk1E3xQACCPPPJIjVqtdvrjAwCzefNmcVJSkqPBB5k5cybz9ddfGzH4aDs4KtqNUErJ6NGjxXq93hYaGupWW1srvHr1asMsh62b3XcilUohPj6eXLt2rTI/P58qFApQKBQwaNAgYBimztHp3nvRarXuR44cEW/dutXVgjQqkUgEoaGhRr1e39zsjgcAiOH2KBh+1xFCqIcYMGCA4OrVqyXQDgONMTExwtLS0l7nz59vboaFAIAZABw6kE+lUrl/9tlnjmTVoizLCkwmUwUAOJV9ilLKzJ4922/79u0MNL+3lQKAQCKRmA4dOlQXGRlZj09W28EZkC4aaDSczJmfn++1evXqXmFhYf6EEL/MzEw3APDIyckhV69etdi/YA2jFKSLdEQJx3ENfwAAaGhoKI2Pj6c7d+6E1NRUCwCUJiYmlo4ZM6Y0JSWlNjs7u06j0dSFh4fXEUJaFXwAACiVyrqlS5dWrly50uXKi2VZ/BIghBC6r6tXr1qnT5/u2x6vrdfryfnz55ttZDmOA4VC4XA/8+jRowJ7Vq1mX3vSpEn00qVLTrXPlFJmyZIlvnv27GHAwb2tL730EhQXF9dj8NEOHT0sApe+N3e+hIQQePvtt4UajYaqVCrx8ePHBefOnWvIUkXuiti7VDwFAAzLskQikYDZbLYKhULbyJEj4eWXX4aQkJB6iUTCNy4He0XSYR9w8eLFXufPnxcdO3bMFc48oTKZTPDggw/iDAhCCKEmA4CqqqpyQkib7QWhlJKlS5f2+uCDD5q9NjAwEI4dO2YODw9vNhuKQqEQfPfdd70cOfcjICBAMH78eH7Hjh1OnbS7ePFi//Xr1wvBwbNIpkyZwnz99ddVhJAaaN9zVXoknAFx3aCQAtzey7Fw4UKPp556SpSSktILAPw1Gg1z8uTJxilyG2ercuVA485zJ5FImIiICGbKlCkCPz+/ur59+9YsX7689sSJE3x+fn75rl27ykeNGlXeOPhoCDw6MvgAAFi/fn3Niy++WKVQKAjLsi5xcvrvfvc7/KYghBBqsj/xySef+LT1i+r1eofeWyAQ2BwJPiilJCoqyt3Bcz+gf//+lrffftupA4RVKpVw/fr1DgcRcXFxZNq0aQ3BB2DwgQFIT0AppQJ7ejtvjUYjTk1N9d2/f7/nqVOnLF30S0Dg9jpKJi4ujgAA37dvX37KlCn8119/zVdWVlZevHixKjExsTIkJKTWFX8BpVJZ87e//a2qf//+1SzLdur3huM4DEAQQgg1ied5eOWVV9o0oyMhBC5evOhQX0ahUDi6YZv87ne/EznSvwkODiZ/+MMfLPa+gkMz+5RS90uXLvlyHMc48h4SiYRZvnw5ZrvqgI4hchF79+4VrV69mhQXFwvMZrN7SUlJw+Zx2sXuFeE4DjiOg9GjRzMPP/xwrUajqQ4ODiarV6+mSqWyroln0eUDrJkzZ7KXL1/mTp06Ze2Et6cRERGCKVOmGB1IMYxLsBBCqAeTy+WQkZFhauNlRL2bu4DjOOB5/pYjL6ZSqZhLly757969u9m+hY+Pj7WysrLKwVPPCQDQuXPnir766isvR875YFmWiYyMdGSJM2olnAHpjN65fR9DRkaG2xdffNGrX79+fgDgt2zZMs/s7GyP/Px8YUlJScMGclcOFIk92CAhISEQHx9Pt2zZQpKSkkw8z5eNGjWq7P/+7/9uqdXqSgCoy83Nrb1P8NEQeHSJ2Z3t27dX9+vX79awYcPqOmM2RCKRwOjRo/GLhBBCqEk3btwQLFq0qM0OJVyzZo3YkT7JwoULiaNpgDUaDT1w4ECz13EcB7GxsTYHgw8AABoWFuau1Wo9TCZTcwOGlGVZxs/PrwqDDwxAunyccXfQQSkVKBQKwUcffeQXEhLSOzIyUjx//nwmPz9fCADC3Nxc2uj0cVcKOhoCA8JxHJHJZExISAgAgOXJJ5+0/OMf/7BcvHixdO/evaVz5869lZiYWA0AVp1OZ1UqlVZCSLdaO0kIoTqdznr69GnjggULaiMiIhjowA1qEomk2SVYlFLhhg0bfKD5NIMIIYS6qZKSErpz505QqVRt0t9LT08XOnLdo48+6vAKAZVKJWi0p/W+eJ637du3r8LhjgulxMvLS8jzvCO/O3nooYfovHnzWprtCttZJwmxCNol8Lgzmp+RkeG2du1a0q9fP7dVq1ZxeXl5Vp1O1/gL5Yqd84bPJJBIJDBo0CBSXV1dn56ebpFKpbB69Wry+9//vv6BBx6oPnToEBw6dOhXnfOedLPXrl1b+fPPP4ueffZZgaenp0cnLctCCCGE7sUqFou9rl27Vge3z+RolYyMDIcO7lMqlRXg4KCch4eH2JHrHnvsMThz5ozDn/XEiRMCsVgsAseWIdO6ujqjRqOxtLBoqD3oEcL/BvcJANQTQu5ezYIb2jEAaZ/OO6WUef/9971ef/1127p169iff/5ZoNPpbPYvgUt/dvsXRDBlyhS4ePFitZeXl23jxo3MoEGDzIQQS25uLiiVSrzLjTzyyCNVlFLmo48+8v7555/djUajACsYhBBCLoBcvXrVFhkZ6UEprW9NSt7Dhw97TJ06tdmRfqlUCsXFxQ7PCOzYscOhVR+vv/46M3XqVEczYZI//vGPXqWlpc3u++A4jkRFRdV/8803ddCC1QyEEFiyZAm7bt06Onv2bK++ffsKeZ63cRzHZGdn1wJAnVwuh8zMzGp8HDEAaZ9vOSGwZs0a0ejRowVms9kDAOju3bttAGAB197HAcHBwTBp0iSBn59frUajqXn66afJ3LlzzZRSCA8Pv9fPYAf71/feBgA8AAjj4+PFaWlpAkfymbeUI1mwHJnSRggh1O1Rs9nseeTIETO0YiD01KlTXizLMlVVVU22/6NGjQKFQuHQYOW5c+fYiRMnOrREymQyVTmTht9sNns78PsSnuetCoWi+ptvvgFn+zYffvghp9PphEePHvUAALp9+/bGfT4LALgBgHtOTg4AgGD58uXMmjVragghdT39ocQ1a639VlPqsXnzZnbZsmW2yspKIpPJ3PLy8hqyVxFXvN8cx9G+ffvSqVOnCgYOHGiaPXt2bUxMDJw4cQIAwNZouhADDufLl1JKmcTEREF9fb2vTqejbRwI0JkzZwq2b99uJISYm3guhatXr/Z788038b4hhFAPx7IsYzKZKgCgxR1fmUwmzsvLc2+uP7BlyxYyd+7cMkdmW1asWOH34YcfCptbjh4cHExyc3NLwcFDBGNiYnz1en2zg+wcx5Gnn37asmvXrnJn2vmEhATvw4cPe1osFkFxcTE42OdjgoOD6aOPPgphYWGVGo2mRwchGIA4H3AQnU7HfPTRR0QkEvnaO+3krkMBXeoeSyQSwjCMraioyKZQKAAAKnU6nY1SCgzD0I4+2K8nPSujR4/2KC8v98nLy6NttN+Hzpkzh/n888+NhJBaDEAQQgg5Ytq0aTBlypRypVLZ0lkQMQA0FYBQABAEBwdX5ubmOnSml1gs9q2srHRrru/03nvvMcuWLSt1JKihlDJBQUH+RUVFDv1SGRkZ9ZGRkZWOFoJCofD67rvvRC1c5XBnudn8+fNpTExMRSvuR5eGS7CaiXIbdyaVSqVbcnKy1/fff++h1+sbp411hU7er04aZ1mWREREgMFgqF24cCF57bXXzIQQc+MN8A3pgFE7PUC3N+SbKaXw/PPPe/7rX/9ya4MsZ4KtW7fyW7durYUmZqZOnDgBubm5eBMQQggBAMCBAwfI7t27W9RfoZQK+vfvz+Tn5zd7bW5ursPvUVlZ6dCmdpZl6x3ta33yySfiqqoqh1ZuTJs2DZwJPhISErzT09O5ViyxvtP2f/TRR8z58+f9AKACbi/XAuhBK06wB9r8l87jgw8+YNLT0wU///wze/78eZuLPRwUbmdcIBKJBCZPnkyKi4vr6urq6r788ksIDAw04V10DZMnT/bmOE504MABajKZWrpMjwEAk/3PfSsqlUolPHXqlF9KSgrOgCCEEAIAIElJSaaXXnqp2omVDw1Li0VPPPGE97ffftvUaD2VyWQCuVxeodPpml1eRCl1e+CBB3wKCwubO6GcAYByAHA0RW5zMzV3aLVa89SpU3lHymP//v3eb731FpeVldWW+zuJj4+P9fHHHzcfOHDAfI8l8N0WngNyn0g/PT3dJyYmhps+fbron//8p0in03mdP3/e4krBB8dxZN68eUKFQlEDAMbQ0FDj5s2bKw8ePGg8duyYqVHwgYGmC1T8hw4dqn733Xcre/fubRw7dmzdgAEDcAYSIYRQh3Vvrl27xrbkBz/66CN669atZvs/w4YNIyqVypGgBgDAMzQ0VNhcvyo6OhpUKhVx5DUppR4hISHNLukCAFi6dClz4cIFh4Ox5ORk7zYOPgAAqNFoZE6fPi363e9+56PVarmesjoFA5DGTy8hsH79et8HH3xQnJCQ4JmZmem1e/duSEtLs0LnHg5IGv0BqVRK5s2bZ+N5vvzll18u++c//8kDgFmv15sJIWb7GkkCmHPaxeJaCgMGDDBfv37d/Pvf/77K39+/LDQ0lN51rxBCCKF2sWfPHltL9n1mZ2eDwWBotk959uzZ6kGDBjk0U3HhwgVaU1PT7IcZMmQIqNVqhz7nli1b3C0Wi0NZtfLz86vUarVDhaFSqbiDBw+2230pKSmxXL9+3W3FihXeAwYMEPeEZ7FHByD208kZAGAOHz7sM3PmzF5/+tOf3AoKCgRZWVnWRpuGO7pzSMF+6rhUKiUAYO3bt6/1/fffp1qt1lhcXHxr8+bN5QBgiYyMrL9PZUIx8HBdGo3GlpmZWZ+Tk1MWExNT/thjj9kCAwPBfr/b5HmzZ+ZACCGEAAAgJyenRaeiX7hwodlrWJYlFy9etDh6ILFOp4O8vLxm+6n79u3jHU1bu337dupAoAQDBgxgLly4YHXks1JKyfHjx93auS9IAIDm5eXZ8vLy3GNiYnprtVrO3kfFAKQ7xBwN/5Gamip8++23PVevXt1LKpX2mjRpkvv27dtJG2wSbk3QAXB7L4egb9++1qioqLrPP/+8FgDKCgoKypYtW3ZLqVTWAQDtaSeOd2NUr9dbzpw5U1pYWFj16quvWgCgrlEgQlsSTNqzsyGEEEJ3cBzHKBQKX2d/7ubNm82eLcVxHMjlcof7TtnZ2Q5dJxAIaFu/5qRJkywXLlxo7nUJAIBarRZdvnzZoWVdbdgvAKVS6fXyyy/3Xrx4sde9+rFdXU9bg04ppUKlUummVqtZvV7PgIM5pds58GACAgIEISEhtpMnT1YPHDiQeeedd2piY2Mt9oNxUE+Ijm+n1a0FABg8eDD7wAMPCIOCgjy//fZbajKZwAWeVYQQQl3cgQMH2q0jHRgY6PC1JSUlzV7Dsiz07dsXCgoKHA6UmutzSSQSwfnz542EEIeWimk0ms5qe+mnn35KJRKJKCoqCtLT02ugG61s6REzIIQQOH/+PNenTx9u1KhRooyMDB+9Xt/pHbqGTeRz5841y2Qy46pVq4wAYPrhhx+qYmNjLVhN9lzHjh0zZWRkGFeuXGns3bu3EQCMCQkJEBYWxvTp08ehERA8CR0hhNDd7cKuXbuc/rns7GywD4Q1GSwEBQU5/JqOzKpIJBKIjo52qtPe3AUymQzeffddR9pRSil1Gz9+vHtn9hcNBoPt/PnzHACwa9euFVFKu8XkQbcPQFJTU7nw8HC/F1980fvmzZveJ0+eFF69erUzO/dEKpWSdevW2eRyefnLL79ctmXLFj49Pb1m0qRJDQf34IZkBIQQOmLEiJrr16+bAcCclJRUMXLkyNKbN2/WOFLRYgCCEELobj/99FO7vK5EIoGEhIQ2fc2BAwfC4sWLHQo8KKUekydP9mouWBg4cKAzQY2bv79/Ry6/ul97TgHAOykpyUutVvt2hyCkWy7BopSStLQ0zx9++IGdPn06FBUVkbseyI7s4BOO48DHx8cWExNDevfubdy0aVP9kiVL6NKlS2lkZGSLInjUIwMSnBVDCCHUqi5ScHCwcMWKFaIXXnihCtrw4DuO45xaguXoaz744IOOXi7gOE4Atw/1u18/T3D48GEzAJgd/N1pbW2tq/TJaF5enm3dunXMiRMnfGNiYir0en2X7Rd0hwDkVw9QUlKS2+rVq33fffddyvN84028HfaAwO1TO5mBAwfC9evX65988kl47rnn6iZMmGBq1JnEahAhhBBCHYrneUhNTW3zTgjHcZ3eQRcKhc3298rKyhoS+ThSBsTDw8OVOmyE53mq1+uB4zjfmJiYivnz51OlUmntas9hd1iCRSmljEql8gQAj/fee8/3zTffpPblJx0deDDDhw8XxsfHU29v7+rk5GRzRUVFxa5du8obBx8IdVQjgxBCCN3dNhw5cqTNX9fDw4MwDOPSo6ssy8LDDz/szI9Yrly5YgEXXBrP8zzk5OT4f/HFFz4xMTGeLUmv3Jm69AwIwzDwj3/8gxs6dKjQarV6AIAtNze3M6bKyPDhwwX5+flVc+fOhYSEhHpCSH1UVBTWdKjTSKVSyM3NxYJACCH0q45re/SDLly4UCeVSmvBwWVdffr0gdLS0mY3tzvzGZqbreA4Dn7/+9/DxYsXHXo9+/kjtQDgDS6YidJgMFgPHTokGDBggHj79u1mAKjsMn34rvwlGjNmjHj9+vXeP/74o9v58+ct0MF7JziOg5deeol55ZVXauLi4sqLioqqExMTq+2p3XCNFeo0o0ePdoXpcIQQQj0D+emnn+qd2asYEBDQpu8PAObU1FRzc33bXr16OfXCw4YNY1iWddlyBwC4evWqJS8vz71///6+a9euFWEA0g5++OEHr/nz5/cCAP9vvvnGPS0tzQodd3AgAQCYPHkyfP/991ae58vGjBlT+sknn/AajebuUzpxIzlq0iuvvMKJRKJe48eP99dqtVxbPsOjR4+GRx99FAsZIYTQ3WhcXJwHpdSrjfsqTrVhYWFhbdtBI8SWl5fX5HIpiUQCzzzzjMPlBAAwceJE3mQy1YFrDywTAKDXr193W79+vWd8fHyvjIwMbwxA2kBqaqoQALzGjRsn+uijjwgACDoq8GBZlgkKCqJhYWHWuLi4qoMHD956/PHHywHAplQqrZRirIGcJxAIGG9vb8G///1vgVKp9JTJZH2ioqK8VCqVkFIqaE0FP3r0aHjsscdwFg4hhNBveHl5kc7uUCsUCpDJZO3REW+SszMgGo3G9uSTT5IusqqAFhcX07179xKlUslFRUV5NepPuFSfwOUDEEqpMCYmxvPjjz/2AwDOZDLZGkem7fnWAEDGjRvHxMfHmz/99NOa7OzsspSUlFr758IaDLW+prydiYMCAOTl5dnS09O5PXv2+C9YsMAXANyfe+45T0opueu5dOj5NRgMrj5igxBCqBPwPA+FhYUOX9+nTx9w4WVIv/qc7WHRokV10MVWtuTl5dnOnz/PLVu2rNfChQs9XO3zu/Qm9KSkJLfp06eLMzIymEaBR7vjOI5MnTpV8Msvv9T89a9/tURGRlbv3LkTayzUITF3VlYWzcrKIgAgzszMZIYPH14TGBhoSUhIgFdeeYUJCAiobbTPiN4nsLECQDUA+MLtjXMYiCCEEGpxx/769ett+pqDBg0iNputTdumsLAwyMjIaMuN7QAAMGHCBNO0adO8du/e3dUCTbpu3ToqlUp9VCpVjVqtbrb/0FFcbgaEEALp6ek+wcHBPn/5y19Eu3fvJiaTqSPyG5OIiAhm06ZNtF+/fpXLly+vOHLkSFVkZGQ1Vj2os4KR8+fPW06fPu1hNBq57du3cy+99JL36NGjxXK5vNmTWVUqFTNmzBgMPBBCCLU6AGnDJUgNbVfNL7/80mTSHp7n4caNGw6/8Pz582HgwIHtUgYajaZqypQpXTJ5U3FxMd2zZ4/3U089JU5ISOj0k91dMgB5+umnfadPn+6Zm5vrUVBQwED77vMgHMcRiUTCxMTEVD388MOlCxYsKM/Ozq4LCQmptS+PQahTY3IAoCaTyZaXl2fbs2ePRa/XMwaDodnZS7VaXVtcXGyC7nHeD0IIoU4yaNCgtm/cCLEUFBQ0OcBsMBhAp9M5/JoKhaLdyiAkJKT2xRdfrBw3bhwDXXBVQVZWlvXgwYMkOTnZR6VS+VNKO7Vv4EodE8HYsWPFx48fd8vLy7O1Y3RGOY4jwcHBRCwWW1atWmUrLi426vV6s06nsxJCbFjVIBfGAIBt8uTJIkqpWzOVOx05cqRtwIABGIAghBC6w9PTkwQFBTnciXZgD4htypQpXr/88ou3M/23kSNHMk3NrBgMBkhPT3eob2dv9/iKior7zqrwPO/oGSD3NGnSpNrJkydXhoaG2uyfuyu1rw3Lrsi6desEw4YN81MoFIK79pn2iACEAABs2LDBIywsjAsICOj9zTffuPE8326BBwDAgAEDhE888UT9gQMHzJWVleWrVq0qJYSYsTpCXcmePXvAkRm6pKQka+/evS1YYgghhBoYjUYrADjcNigUCpBIJG3+ORISEprc3M3zPKSlpTn1mgsXLqzjOO6er2kymWD//v2t+syvvvpqbU5OTunSpUur/fz8almWZcAF9lQ4g+d5eubMGaLX63vHx8eLN2zY4KFQKAQ9JQChKpXK+5tvvvHNzs72Kikpac99Hkx4eLjwySeftE6cONG0d+9e4yOPPFKFVRDqqgwGA127dq1XcyMXhJDa0tLSJvOiI4QQ6lGIXq+vJYTUOto2DBo0iNhT997XlStXIDMz06kPMnv2bBPDMPddeWIymaCgoMCpjv3rr79u8vHxue/P3Lp1q00KUaPRVJeXl1eGhobyMpmsbvjw4UKO47pUW1tSUmLdt2+f240bN/zeeeedDk1M1dEBCAEA2Lp1q6dcLhcnJSWxBw4caNcTzCMiIpj+/fsb5XJ55cGDB40ff/wxj8usUDdA7VPdzVZ2Y8eOrfbx8bFiEIIQQggAwN/f39H24M6G8dzc3CZTu/M8DwcPHnT6s8ybN6/J9x8/fry3/Sw4h6lUqnZZgnUvmZmZ1VeuXKkKDQ2t5Hm+UqVSQXR0dFfaJ0KvXLliMxqNHdo37ugAhMbFxXm88847oosXL7oXFxe31wZzAgAwc+ZMZs2aNZXXr183f/HFF2Z7alLshKFuQavV2ghp/nFOTk6unzx5Mu0ihyghhBBqRxzHwbBhw5zrVBFiyc/Pb3KlislkcupskQbNbBynHh4ebn369HG2v1oplUrJvT5jWwcg9vKxffHFF2YAqFOr1eXjx48vUygUvD0QAfvMiMv2P48dO2aLj48XdeQyrA4rjIyMDLcDBw6INRpN46i6Ld+fAgAjlUrhD3/4g23OnDk1crm8BjNZIVe1cOFCH51O52EPxFtkxYoV1jVr1pQ7+F3vhaWOEEI9m1QqJRs3bqxRKpU8OLF3YezYseL09HT3++3VZVmWMZlMVQBQ42QAItDpdH73+3eJRMI8/vjjFTqdrs6Z1w0LC3O/deuW311L/Bl/f39zaWlplX0Arz37iIRSChcuXGCzs7PdlyxZAhaLRVBcXNzwvu2Z5bVFnzc0NNQ2ePDgCvsAJ4V23NvSITMgqampwuTk5MbBR1sGPxQAiEwmE/Tr18/y6aefmj/66KPSyMjIagw+UHf30UcfMZRSR6amqUKhwNk/hBDq2UhxcXG9PfhwqgM+f/580tRMuslkoiNGjBA6m95Vp9PR5jJh6XQ6p/tzarXa2rt37/q7/to6adIkTwDwhPbfNE4JITQ8PJxXKpVlN27cKF++fHm9v79/bVBQEA0ICBDa++EUXGMDO83JySF6vb73tm3bxPb72G6fq10DEEqpICEhwXvZsmW+ycnJ7dL5GTBggHDkyJEWuVxeff369Yr4+HjcXI56DJZlmc2bN/s02+IQAhMmTDBHRERgSl6EEOqhOI6DFStWtGiZTXx8vLmZgV3bI4884n358mU3J/uKEB8f31TbRJ9++mlPZ9PFKpVKa79+/UwBAQGCxh3pK1euOHW2SJtFfoTQxYsXV5SVlRn//ve/V8XExJj69OlT/dJLLwkkEokAXCSTVklJiXX9+vXuiYmJovz8fK/2Oi+k3Xa8U0oFK1eu9E1PTxdkZWW1x7keJDQ01CaRSCpPnDhRTwixOrIeHqHupLi4GF588UWrA99HeOGFF6peeeUVajAYvA0GA+6HQgihHobneTpz5syqNWvWtKQDbQ4LC/MuKioS3K9Pl5qaSo1Go7P9Pert7c0DAHuf16U+Pj5eOp2uGgCcyZhK5s6da0lLS6sFgDunf2dlZcEHH3zQqfdBqVTWAUAdIQRWrVplvXbtmu3hhx/2On78uMf58+etnf2cZGVl2bKystyLioo8/9//+3832+M92iWqoZQyS5YsEX/44YdMVlZWWxck4TgOVq5cCVOnTq3U6/W4uRz1ZDQ4ONj9hx9+8Gr4fjR18ccff8xbLJYawNPREUKoxwkNDaXh4eF1Lf15uVzeZBvj7Mnl9sCGlpeX18pksvu+9t69e6lSqXR6IFupVFrfeuut+vDw8Dttnj21ryvcDkIphX79+tWkpKTU/v3vfzd6eHiUff311zQhIeFX13VSH5ceOHDAunXrVnF6erpPW794e3RCmGHDhvl99tlnAvtGpTYrNJFIRN9//32anp5uXL169S2NRtP4EB3c74F6pKKiIjJ79myHp7z/+c9/1kdERGDAjhBCPQt58cUXaWtWi8ydO7fZTFjBwcFOv4FOp7MGBARU3b1cqgHP85CQkODs0jEKALBs2bLqzZs310gkkobUuDZPT09OoVC4d/L9oHcFYrbMzMz6KVOmlAUGBpYBQOnRo0drEhISqI+Pj7VRJq0O7e/m5+cLn3nmGc+4uLg2DULaLAChlDIqlcodAHzPnDnDtNGJ5hQAiEQiYaZMmcLs3LmzZtmyZbfCw8PrcIM5QncqfGtRUZGnSqXiHFgjS2JjY81lZWVV9soYIYRQDyAWiy1Lly6toLTlXDu86QAANeZJREFU3afY2NiKJjrABABsiYmJYkqp0/tMJkyYYPX397/fwblULpeLWxI8EUJoVFSU8dFHHzXbTy2nubm5TEs2tndIlEgI1Wg0NgCgEyZMMCUnJ9+qqqoqmz59el2/fv0s0dHRAnsw0lEb2KnBYLB9//33nsHBwT6N7nWrtEW+X0IpJWvWrPE9ePAg98svv7TZb8yyrIDjuLrY2Ni6f/7zn+bQ0NAarEJQdzF8+HCP7OxsIc/zrf4O1tfXUx8fH4+LFy+a9Xp9s4cJGY1Gy+DBg23l5eWe9fX1GMwjhFD3bm8ETzzxRGVmZmZrl8WTwMBA76baLV9fXwCAGic7+ESv11uDgoIYnufv2S7l5ubSW7dutbgfmJubW/vEE08IvL293Q0Ggy0mJgaef/55i16v7xJtYGZmZm1FRUV97969ydGjR+u8vb0tv//97z1MJhNjMpkA2jmtb319vc3Nzc09MDBQUF5eXtva12v1CCilFGbMmOH717/+1e3UqVOWtoq2AIAJDQ2tLSsrM+p0Op4QgsEHQk04cOCAzd/f39vRTCHp6ek1gwcPxpkQhBDqvijLssyQIUPMSUlJrT7pmlIK06ZNa/Kas2fPtiTLFAUAmD9/fp1AIKi/V0e6oKCAJCUlebfm8x89etQ4ZcoUs1QqJTdu3PC+63gIl0cIscbHx1cZDAbTrVu3+FWrVhlDQ0ONcrm8bsCAAcL2fnuDwWArKiry9PPza/VyLKaVBQGvvPKK7/Hjx91MJpOtrSKvcePGCdavX1+XkZFhtE+34Xp1hByowP/xj394OvN9SU9Pr3Fzc6uyT0sjhBDqXpjIyMi65ORkoz1hT6uNHj26yX/Pzc1tcZrbxMTE+mHDhlnvdS4Iz/Nk69atnq0MoIhGozEqFIpaAIA9e/b4dMEMqqQhGIyNjTXr9XpzRkaG0d/fv2zdunW2uLg4Yl+i1S5MJpO1rKys8XKsjg1AKKXkpZde8vvyyy/dDAaDrS0KlOM4EhUVZRsxYsSt1157rdK+z8NVDmhByOWlpaXZHnzwQV9n8qVv3769fvz48dCeFRZCCKGO76j27dvXqtfrK9uqH0UIoStWrDCyLNvkEv6YmJgWtycff/wxFYlE90zHW1ZWxty8eVPUuCPubPcVAODDDz80arXa2u+//17Ymj0xnYTe675kZmbWL1mypHz48OGlc+bMMcbExADHcSCVSu9k0WpUrq35pQkA2IqKilq1Mb1FAYhKpWJ27drlu2fPHqF95qNVBclxHPHx8bEuXbq0Pi0trVyj0dhwkzlCLVNRUSFQq9V+jm4CjI2Ntbz44ouVTz/9tKWp02gRQgh1DRzHkejoaLJ9+/Y6aONB3EGDBlnDwsKaWnJPp0+f7uvswYENQkJCjGFhYffcz2A0GsmHH37Y6sEySilERkZWfvDBB7e6VcRp38C+adOmWr1ef+vixYvVb7/9tqVfv36WwMDA6v3791fGxcURqVTa6lUPJpPJdvbsWc+xY8eKWxIQOnsTiUqlIiUlJeLt27cL2yDTFQUAEhMTA2q1uiI2NtaC1QbqKRYuXOij0+k8iouL2zzYDggIECQnJ1fHx8dXgRNp+wIDA72Lioo4ALDhHUIIoa7J39+/7rvvvrOFh4fz7fQW7izL+ppMpnuewxYSEgKXLl1qcedeq9Vyc+bM8b7HIDcRi8WW1157rUqj0VgBV8g47dKlSx6LFi3yOHnypEdb9ONZlhUEBgaac3Nzjc78oFMREKUUPD09xUePHnXjeb7VHRSJRCKYNm0ajB49uiH4wCUgCLWBkpIS2+zZs93kcrmbMxV0UVFRdd++fXFjOkIIdU1k0qRJwn/961/V7Rh8QGpqKjN8+PD79tkKCwvJ/v37W7xhXKlU8gMHDjTdY38itVgs7snJye4YfLRMSEhIbUpKilEul7dFW09MJpMtNze38UxI2wYgDal2P/vsM7e8vLxWbziXSqWkV69eFbt27SpvdKAgPkwItQ1qs9kEhYWF4piYGKcyYxQUFNS89NJL/Lhx4zAIQQihLkImkzEJCQl1zz//fNno0aPbcxabjB49ui4/P7/mfv1Inufhww8/bNWG8aysLBPHcSb433kXAHB7E7RYLPZKSEhww7ve8nuo1+vNcXFxxilTprRFW2/96aefPNasWeNwEOJwEKFQKASHDx/u1QZ7PiA4OJi4u7tXZmdn1+EzgHqq9lyC1fg7znEc5Xm+HACcyoCSn5/vpVKpuK1bt+LAAEIIuXBnUiKRkOeff752zZo1xg7YQ0sAgI4bN4794YcfOPsyrHtdY6GUVrTm8ygUCvfvv/9eXFxc3HjgmwYEBAi9vLwqr1+/bsbb3zqUUs+5c+eK2qKtl8lkzK5du8xRUVHNLsdyKOpRqVTMTz/95NsWwYdCoSCrV6/G4AOhDqpbeJ4HuVzup9VqnTp4tF+/fjVbt269qVAozDKZDGdDEELIhep2AACJRMJERUVZDx06VLt27drKjkzgo9FobKGhofcb2KLBwcHCI0eOiFrzHjqdrs7f37/mrqxbpKSkxJqQkCCilGLb1NpokhDz1q1bb0ZERLT6vL28vDw6fvx4ITgwwdHsjaOUCk+ePOmXk5PDtPaLMmfOHKJSqSqVSmUd4H4PhDpMZmYm+fLLL/1SU1MblmM5/P3T6XT8kiVLqocPHy4AJza0I4QQap/Ag2VZoY+Pj23s2LHmtLS0isjIyMqO/gwjRoyouXXr1n337xYXF8Nf//rXVrcXiYmJ9Y8++ii9O1X8pk2bIC0tzaOl2bbQr2VlZZkUCoUNAASteTZsNpvgueeeE9szcZKWBCAEAGD+/PmeP/30k7A1nQ6WZQUrV64kn3/+eWV4eHhd4wcYIdQxDcbBgweJWq32te8Jcer7t2DBAn79+vXGGTNm1I4ZM0aIxYkQQh2PZVmB/aA5fvHixcadO3caCSGdlrXw6aefrhGJRPfcF8zzPLXZbG6UUvfG/Upnvfrqq7WBgYGV9uRHpFGAQ9977z0RHtvQdv72t79V9+nTx9SaVQ88z9tycnI8dDpdk4kCmnwYFAqFe0pKiqiqqqo10SXp379/1bVr16yEkHq8vQjd1kF7QH4jMDAQQkJCKvR6vdNprymlZOPGje6ff/65148//uhUhi2EEEIt70uxLEv8/Pyq9u7da4mMjKxv1I/r1Ho4Pj6+1969e5l7fY7w8HDBSy+9ZFqwYAHf2s86b948/y1btgjufo25c+fWfv7551X4iLQdiUTCGgwGFm7vHW1pDGADgEq4z/7T+0Y4GRkZblVVVeLWrq9755134Nq1a3UYfCDkEmhRURG5fPmy+ODBg37OTl0TQuirr75aGx8fb9y5c6clJCQET1BHCKF2CDjgdhIRMnToUDJz5sxqk8lUWlBQUGMPPu5syO7sD+rm5lZxv89x/vx5+pe//KVNPuPmzZsrExIS7l6KRVJSUtzxcWlbx48fr3/ppZda+zKC+fPn3/dAynsupaCUklWrVvmmpKS0+KHhOA5WrlxJVq1aVdmZ04MIod80arSwsJBMnTrVbdKkSX4AUGEfqXB4dEqj0dgIIeU2m02g0+nE7733HsnPzxcYDAab/TUwKEEIIec01J0MAFjGjx8PH374oSUkJMR47ty5e13rEnQ6nXXkyJHk5MmT9/pMVgBgw8LC6lubfIgQYqWUlg8ePNh35cqVTMN5dEajkXnmmWd89+7da8T+ZtsIDw+vB4CSsLAwLjs7u6XplOkXX3zB1NfXCwHgN5MQzD1uMFy+fNl906ZNrfrwc+bMaQg+MNsVQi7IZDLZdDqdICwszFehUAicbdAopUAIsSqVyrLTp09XPf/887UjR44kEomk8WZ1XKKFEEJNBx0UAJiAgADhY489Rv38/GpjYmKM//73v8tCQkKMLv8LUEoWLVpUB/dZVWMwGOgDDzzg1hYZqwgh1gULFlS8++67tsDAQAJwe6/JlStXPLZv3+7VcBk+Vm3yXEJ2djYfFRXV4rP/eJ6nVVVV9zwbhLlXp2Lnzp2i1hzPPmfOHJKYmNgQfOCDgJALVzL5+fmCU6dO+YwbN45taTYRQkjd2rVrK7dv3141btw407Bhw2rnzZsntAcjCCGEftvBIxKJRPDSSy8JJBKJafz48fzWrVurysvLK1uyR6+zEEKoUqmsBADzPfp8DYNRLCGEtNH7WRcsWFC5atWqO8uxzp8/b/3Tn/7kplKpMElKG/vggw9qoqOjW3zvdu/eDcHBwR7NBiDvvfceq9FoWvxBg4ODyfz58ysw2xVCXQPP8zQ/P1/4448/cgMHDvRpTbswYMAA844dO0ynTp2qWr58eYVIJKqcN2+eDc8RQQihX9WVwoSEhLpHH320curUqcaSkhLTjh07TPa+U5ccuFUoFObw8PB7bkY/duyYTavVcm2UMpcQQiwLFiyoSEhIaFi2Rmtqajy2bdvWqqyt6LdGjBhRM378eGNERERL23Hi7e0tppT+aobqN5Hil19+6Q4tzFQglUqJWCyuaJSdASHUNdCSkhJLSUmJe9++ff3VanX9Cy+84GxWEdqocaAAUAsAcPny5frk5GSBUCj0/fjjj+nFixeB53k8TwQh1GMCDgCggYGB8Mc//pH88MMPFRzH0aSkJCshhKakpPzquq5aN2q12vqAgAATAHjD7X2Fv3LkyBF3hULRJu2VvaGxUkrLevfu7bdq1SpSUlJiDQoKYhUKRb1Op7PiY9d2NBqNuW/fvoRlWVELDiWnBoOBLFq0yA0A7hx2yDSORlQqFVdSUtKi1Josywo4jjNmZmZi8IFQF24kCwoKBG+++abXiBEjRFqtVtCCWfNf1R+EEFtiYmJ9fn5+aWZmZqlKpaoJDQ21BQcHE/v0uctkc0EIobboHAMAkUqlJDg4mAQFBdnGjRtXU1RUVOrv71+amZlZr9frLfc4v6JL14GEEPq3v/3NEhERcc9/37p1K1UqlUwbv6dt5cqV5fPnz6cymYwpLCxkfvzxRz+tVovLf9vYjRs36hctWkRbkvnSYDBAo73ltHEAAlqtVrB3714hz/NOf9mkUil5/vnnLZ999hlGnAh1gwbUYDDYfvjhB8+jR4/2fv/9970yMjLc7gpUnKbRaGwAQF9//XVTTk5OaVpamnnixIl1AFAbFhZmGzBggBADEYRQFw06KMuyzJgxY4RRUVG24ODg2ueee64uLS3NXFhYWHrs2DETAFB7PdhdkTlz5pjd3Nx4juPu+e95eXl+lNI23adBCLF9+OGHFX/605/qwsLCrJcuXSIHDhzwxf0gbR5gWh599NHKvn37tuQZtkkkEs+FCxf6NCQjuNORkMvl3jdu3BCVlJQ4HUSEhYXZLly4YCSEWPAWIeSYzjqI0Fkcx5GJEydCXl6eKSkpqb49llhSSt3UarVHdna2l16vZ0pKSmzwv9TACCHkqoEHI5FIyLhx4yArK8u0a9cuMmjQoFo8+wx8AeA3K2o4jiN/+ctf6hcvXlzRHm96/vx5988//9zngw8+EMTHx1v27NljxHvRdjEIANCnn35alJ6e7t2SeGHRokWCDRs2VBBCaoX2xl/4yiuveGRmZjod1bAsK/D19a21Bx+4rhuhbobnearT6SAgIEA0c+ZMy4YNG+oXLVpkIoS02YynvYGop5TWjR49momJiRGWlpay3377rQ3rFISQq3XEJBIJmTx5MvH29q65fPly7dtvvw0hISG14eHhWDoAoNVqGaVSec/2ZNeuXYJLly55hISE1LZxv5GEh4fXUUorMzMzBeXl5b5vvPGGJ9w+gwL7p20TcMOTTz5pzsjIcIfbq6icKtODBw/SoqKi/y3B2rhxo+DixYvuLbg5xM/Pr/61116rbvzhEELdT0lJiSUnJ4ds2LDBUywWixMSEsRt3agTQur0er35n//8Jz9q1KhSAChXqVS2oUOHNsyE4IwIQqhDgw24fSI5yOVy2LBhA1EoFJWhoaFlmzdvLt24cWNVSkpKrb0zjXWUnUKhqFSpVPfsE2ZnZwtffPFFt/bqIBNC6vV6vXn06NG3KisrrVu3bvXE/mnbSUxMrC8sLKyAeyQaaE5eXh7odLpffVHcWJb1a8HOdtiwYUPdq6++asRbgpBzusoSrPs1yhzHQVBQEP373/9e9+STTxopbZ9foyFto1qtdjt48KDPxYsXgVLKmEwmCrhMCyHUth3YOwGHVCqF3Nxc67Rp05iEhATz6NGjTbf7t3jatiNSU1OFf/3rX8XHjx+/u46mUqmUGTp0qDElJaW2XRsqQsBms5F7bPhHrTR58uTeBw8edPrn3n//fVi6dGk5QyklkydPdrM35s6+OWDwgVDPbKh5nqeXLl2COXPmeEZHR4vkcnl7jGgBIYQSQqhGo6nLzMy89e9//9v0zDPP1IvF4vro6GiBRCJh4H8JNbCRQQg5HXSwLMvIZDKBXC4HAKibPn16nU6nq6eUlu/evftWbGwsb6+LMPhwUGxsrMXf379qwIABv8lIVVxcTDIzM93a/eZSChh8tI+nnnqqRXtr9u7dS9RqNWEAgJHL5VxLGu7Zs2eb8RYg1LM1ZMwqLy/3CwwM9G7v9xsxYkTNrl27yo1GY8Vnn31W/fjjj1f36dOnWi6XQ0BAgBBasC4VIdTjgg4AACYgIEAok8nq+vfvX71kyZLqjIwMHgAqk5OTKx999NEK7Ly2jlartU6dOrXOnrr1TopiALAxDOOtUqna6nBC1MESExMrpVKp0/fu3LlzoNForIxSqYSdO3c6/QXjOI4olUoebwFCCABoXl6e1Wg0ckePHmU75A0phfDwcF6n0/E3b97kly9fbvTy8qocN26cadGiRUKZTMawLIsnsCOEGiPR0dEClUoFAFApk8mMV65cMWZnZ/MLFizgCSE4sNqWhU2I1cPDozI8PNzKcdyv6mODwWBNSUlhW3DWFHKN4FIQHx/v9M3jeZ6uXbuWY3Q6HRQXFzv9xkOHDgWVSoWNO0KoUVtDqEgk8ujI92z4o1Qq665fv27+5ptvTBs2bCgbO3ZseWhoaPn8+fNpcHBw4wMPEUI90EsvvcQkJCSYBg8eXK5WqysAoDY9Pb3GPsuBdUQ70Wg0tgkTJlQwDGO9q4zJqVOnrDNmzBBhKXU9U6dOtZaWllZBozMFHVVRUeFJYmJihHq93g+cXLKQlJQECQkJZbgeEqGW6eKb0O+J4zhy5MgRy6hRo8pd5TNRSolSqWR0Oh09evSo19GjR720Wq2toKAARCIRYVmW4Xke7Iew4nILhLouYj8Aj/I8bwsNDSWzZ8+GiRMnWh999NFKSilhGMbWXgkzUNNUKpXPp59+6mkwGH7VbwwKCqKFhYVlWP92SUKWZf2dTWIVEhICzOjRo31bcNOZxMTESgw+EEIu3yMhhOp0OisA2CZMmGD64IMPbhUUFJQBQJnRaKxct26d5eGHH64Ti8X1Q4cOJffY1E4b/TdCyAXGFRp/N1mWZSIiIhixWFy/YMECy8WLF6sBoCwnJ6d01apVpY8++mgFAFBCCAYfnUij0Riff/752rv2g4DRaGTCwsL8oAUj6ajTg0pm+PDhTs8cXrp0CZhLly45/YYsy2KpI4S6Q3BimTFjRnlmZmZlZWVlxZEjR6pnz55d06dPn+onnniCPvvss0KZTCaw7yURAB5mhVBnBx6EZVmBTCYTPPvss8Lx48fb+vfvX/3xxx/XGI3GijVr1pQ/8MAD1VhUrmnt2rWVUVFRdSzL3smMxfM8zc/PF0yfPl1MKcUgpAtRq9VWLy+vOmjB8kVhZmam0284cOBAiIqKguTkZCx9hFC3ERgYaGr472+++aa2sLDQ7f3336dpaWmQnp4OL7/8sqevr6/7iRMnqMFggLy8PIoBCULti2VZ5qGHHqITJ04U5Ofn1+j1+nq5XA7Lli0jcrm8jhBiGTlyJBZUF/HNN99UPvfcc75nz551z8rKsgIA4Xnelp6e7nbo0CExpdRICLFiSbk++32qBgAxOHkul7CwsLBFAYg9VzZCCHXTepXUA8Cv8px//PHHtQAgTE5OpsnJybB06VL3gQMHslu2bLFlZmY2VLwYkCDUBt9BqVQKCxcuhJ07d1YMGzaMrl69mgBAvX1Z5Z0TlQFnJrvcvd22bVvluHHjfFiW9bDvHyB5eXm2hQsXuu/fv58BAAxAuoiYmBiSkZEBJpPJqZ8T2jdeIoQQ+h96n6jEBgB1Df//v//9b73NZqsxGAyQmZkJSUlJgpCQEPHRo0fp8ePHoaqqCioqKhpvcscABaG7vlYcxwHP8zQoKIhOnjyZxMfH102aNIlPTEyEVatWwZtvvmnLzs5uatUFfqe6WP1qT71r7N+/v9hkMgkb/uHq1avWs2fP+mi12gqlUolBSDcmxCJACKEWtqK3T9m9k4wjMTHRBgC3Gl9z5coV8Zdffkm2bdsG169fh6FDh7p5eXkRg8EABoMBAKBh5IjC7SnsX3XOsJRRNwnmCdg3GUskEpBIJMAwDD137lzd1KlTBcOGDatKTEysT05OvhNoaDQa0Gg0WILd+Nm4fv16xRNPPNHr+PHjjL3+I2fOnCE1NTW+AFCKRdSNA5CQkBBwdiM6zpoghJBjBg4cWNn4/589e9b78uXLwj179tB9+/bBxYsX70xdT5kyxau4uBgaghP732O2QdRVAw9GIpEwEokE+vXrZzt48GBNr169YPjw4bBq1SoyfPhwCyGkesuWLbBlyxYssR5qw4YNtaNGjRLU1dU1LMeCBQsWQExMjOeJEyes9uWwyEXp9XrakuRUQpHI+fNfrly5ghvQEUKoBQgh1ff5e/j6668tDWvbb9y4AdevXydPPPEEl5WVBVeuXMGABHUFjFQqpU8++aTgl19+qamoqKifMGECUavVVkJIbWlpKezfvx/279+PJYUAACA8PJwHABg7dqw4LS3Nw2QyWauqqsi1a9d8//a3v5ng9l483OfjiqMMlAri4+O99u3b13CYp+MBiFwuB2czYdmzv2DJI4RQC+OQe1TklBBSc/ffr1ixwqLT6e4sRdm0aZNIIBAIzpw5Q8+ePQvFxcVQXFx852WwaFFHPsdSqRSkUilMnDgRgoOD4d13360Ui8W2P/zhD8zEiRPrCCE0PT294fm9+7nH5xXdeZaOHTtmVCqVPt99952HwWCwXb9+3bJ161b38+fPu4eHh9dhEbnmgEP//v09oAVJA4RxcXE0OTnZqajFPgqHa5MRQqhlHO543d3wLliwoBwASO/evYHneTh37hwAAKhUKjJ69GjftLQ0evz4cTAajZCTkwMNefXvWjqLHT/kcKBsP10c+vbta3vggQcgPj4eQkNDITk5uVyn08GoUaNg9erVAAAwb948KwDApEmTWvXco55XJxJCgFJq3Lt3r1ilUrlnZWXRgoIC8tJLL4kVCkWlTqfDIMTFREZGQnl5udPfa47jgMDtw7X8na0YtmzZQubOnVuKp6Ej1DILFy700el0HsXFxd2mUeY4jhw5csQyatSo8h7QMaPgYssC7JlloOG0Z0opc/ToUd99+/bRQ4cOQX5+PgAADB06VNiQmeuuDF0ATuZyR10+ECaNAw2O4yAgIICYzWbbpUuXrIMHD4b/+7//IzNmzLCEhIQY7/WcIdTW1qxZI16xYoUQbicuoCNHjiR///vfKyIjI3E/iGsR2mMIp2IBhUJBiEKhEJw9e9Y/NzeXOvvDWq0WAxCEMADpiQHIvQKSxp061/2ghMDNmzd9Tp8+DadOnYIjR45Abm4ulJWVQf/+/Zno6GiP69ev04ZN8PZMXbRRYOL0Wl/U6QHGnUxULMsyHMcBy7IwZMgQKCsrs+n1+jp/f38YNmwYPPTQQ/Daa68RmUxWSwgxYxGizqJSqZjjx4+Lc3NzhcXFxbaFCxcy4eHhFYmJiRiEuELlQil56qmnvA4ePMg62+6pVKo6oUKhAI7jIDc316k31ul0gMEHQqinuXr1qmdUVJTAzc3NtmXLFmb8+PHmrnRqL6UUevfubbzXv127do0BAK8bN27YtmzZQg4ePAgMw8CgQYPcvLy8PM+cOWMrLi5m7gpIkOsSsCwLHMdBbGws6dWrl+Xrr7/mg4KCQC6Xg0ajIVKp1EIIqS0rK4OUlBRISUmBTZs2YcmhTqfRaGyU0soPPvjAd+vWrW6bNm2yjhw50ler1VYqlco6wI3pnY0QQkTg5P4PqVRKNBpNlVChUIDZbCZbt2519ibS7du3+8yaNcuI9wAh1IN4ent7e5SUlNC3336bLFu2zD04ONg6fPhweOaZZ4hCoegKI8fkPq2JDQB+c5xtYWEhc+TIEbOnpyfV6XQwefJk4dixY0WEENvJkyehYTO8fSkXdgg6GMdxRCqVAsdx8NBDD8GwYcOIxWKpX7lypdFkMpFJkybR2bNnk4kTJ1o/+ugjS1FREWRmZjbOZnmv5wHvI3KFHq6NUlpx7do1t4qKCvbkyZMMx3HiRkEI6rx7c6+zq5oVHBwMGzduZIQMw1gff/xxIwD4OPtChw8fdsdbgBDqSWw2G3Vzc7OaTCY4deoUBQAhx3HC48ePQ1paGnnrrbfcAMBLLBbD+PHjyZw5cyyTJk0yNqq0b/fuOnf9PG0mOKH3CExqG/7/oUOH6g4cOFAHADQwMBAAbs+KL1682L13797c3r17bWfOnCGNO8gATZ4h1dM7u6SJ4OLOf/M8TwEAAgMDISQkBEaMGEFCQkLq58yZU/Xoo48CAIBCoQCFQgEAQFeuXGlruDc6na6pe43BBnLpIAQAahUKheXHH3/0O3nyJAAABiGdLDU1VRwbG+t03TFx4kRQKBS3K72wsDD3mpoav6tXrzq7jIACQDlgXnqEnIZ7QLqmK1euiCdMmODezL65X2UPIoTYQkND4YEHHgCFQkF69epli4uLq2zoMAIAaLVagNuZYLp0fXo7m/D/+tNardatf//+osOHD1svX75M8vPz4aeffoLKyv+dzxgcHCxs1Mn+VaDS6L8bOspdYdnXbzZ33x1UcBwHNpuNMAxDc3NzLQ3/JhaLoV+/ftCvXz8Qi8UwcuRIGDlyJFitVvroo49W3lXWwDAMxc3gqKeglAo2b94sfvHFF+mcOXOEUVFRuCekc+4DM3r0aH+9Xu/sjzJhYWEV2dnZdUIAgAsXLtgmTJhQf/XqVcbZFwoNDfX7+eefKwkhFrwlCCF0pwPauPNMzpw5A2fOnIG9e/cC3M7s4s9xHJw9exakUim8//77hGEYCwDwDYHJ8uXLaRNZX0hT791Z7NPyd9hHKEub+pm0tDRReXk5KSsru7MpvrS09M7m+LKyMoiJiXF3d3cX2DfFA8/zd06Qb/i7jtawv6Lxfzf8b11dnU2v19cGBwcDAIC/vz/4+/tDr169IC4uDh566CEQCoXkwQcftEokkjsPSmVlJfz000/w008/AQDArl27mipr/KahHsW+364MAODnn3/2qq+v9+vfv7/x+vXrmDChA6nVah+9Xu/0HhyZTHbnv4X2G2oBADPLsiKTyeTMLAitra0VbtmyxQsAqgA3BCGEkMP1J8/zkJubC7m5uXDy5ElqD0x8WZaFzMxMeOuttygA8H379oXo6GiIioqCZ599lgQFBdm6U4aiPn36VDV3zYkTJzyLi4sFx44dA4PBAMXFxZCVlQUAAMeOHeuUzz1w4ECQSCQAABAREQFSqRQiIiIa/ttKCDHfK8HLzp078elHqJXS09NrEhMT6a1bt9x3795NRowYUYOl0gENF6XuDzzwgKAlPxsbG0uWL19OQkJCoGHam8TExNSdO3euFgDcnAkirl69at29e7c7pdSdEIJr8RBCqHVsJpMJ8vLyIC8vDwBAVF5eDpmZmXDx4kU4efIkCIVCCgBuvXr1gt69e8PDDz8MDz/8MCxfvpz06tXL3B3rYlcMuBoCoFYEQThoh1ArzJkzx0wIMS9atMgDS6P9q2EAoDNnzvT08PAQgpPZryQSCSMQCMwPPfRQPQDcCUBAr9dbnn76aeupU6fcDQaDMxUizcvLEyYmJgoBAAMQhBBqW9aGgKRRp5cAgFdpaSmYzWaoqKiAU6dOwcmTJ6G8vNwNAKz9+/eHSZMmkdjY2HqlUsl3owawq6BtdA1CqKkvEaUwadKkWiyJ9i/qw4cPe7z22mvuV69etThZHzN1dXW1ycnJxuTkZPqrAAQAYPHixfTVV191dj0tuXr1qjU7O5s9fPiwdeLEiXV3rwFGCCHU5p1uGwCAyWS6ey8EAQC369evw/bt22H79u0CAPBo2AT/2GOPweOPP87U1dWZ4+PjTQBAVCoVBQBQq9UAAIRhGKuLbmzGtgUhhDrJihUrhL/88gsDTs5+cBxHIyMjLceOHbtzOCrTuFKPjY3lH3744eqWfKiTJ0/SXbt2iQEPpkIIIVfoqFOe56l9IzzJyckhx48fJ2vWrCGTJk2i8fHxngDQi+M4/507d/Y6fvx4r8TERP+vv/6615IlS1gAcJPL5W5JSUlu58+fd6eUEicDJIQQQt2EXC73vnLlCmsymZw9hJb4+/tbjh07Zmocc/wm65VOp+Pj4uJa1KDs2LHDFhQU5Im3CSGEuk6QkpubS0+ePEmTk5PhD3/4g23dunXeAOCXk5Pjt337dt/k5GS/Z555huvbt6+XQqHwSk1N9aSUelNKG05FRwgh1E2pVCrv8vJyzh58OIXjOPqHP/zhN3v47pl2d9y4cTy0cFTLZrNxCQkJ3ni7EEKoSwcnNpPJZDt58iTduHGjZf/+/Z7l5eWizMxM0erVq31eeOEF0dChQ32efvppUROzIwghhLpyY0Cp97///W8uLy+vRWdUTZ8+HdavX/+bDGXCe128dOlSc0REhCgrK8vpkS2DwWD76aefuKKiIhIYGGgCzPKBEEJdHQEAajKZbPbsXA31ulu/fv081Gq1Cet5hBDqfpRKpWdaWlqL6neO40h5eXnlvf7tfgcPUovFUsFxXItGtdLS0myvvPIKm5GR4Y0ntCKEULcKREjjoKS+vt6GxYIQQt2uroe4uDgfnU7X0qW2ZOnSpVSr1dY7E4BAdnZ23cSJE/mAgABBS954z5491vfff18Et88VQQghhBBCCLk+OmLECNHZs2dbuq+bhISE0EGDBpXfLzMu09RPL1++3CKTyeqhhftB/vGPf9h69+6Nh8MghBBCCCHk4gghMHfuXFFxcbGXwWCwtvBlrIGBgRVKpfK+P99UAEIiIyPr33333boBAwa05Mh1AgDUbDZ79erVS4S3FCGEEEIIIdcVHR0tOnTokJd907nTExAsywoUCkWdXq9v8rDCpgIQCgAwevTomtmzZ9e3dD+IyWSylZaWej388MMYhCCEEEIIIeSC5s6dK/rxxx+9DAZDS/f2kf79+9crFIqaxrGEswHI7VcixKpWq8snTpxohZYfOGX75ZdfPEeMGIHpGhFCCCGEEHIRhBB4/fXXRd99951nS876aBASEkKzs7PLm1p65XAAYv9gVKfTlfft29fq6M/cjed5+sMPP3jMmjWrz/79+/GcEIQQQgghhDpRRkaG25w5c0T/+te/vHJzc1uaupYGBweTtWvXWsDBxFXOBBN03rx5FQBQ35pfdMeOHba33nqr8WGFOCOCEEIIIYRQB9q/f7/3J5984v/55597tvSgQQAAiUQimDFjRv2UKVMqHP0Zp2YzNBqNbcOGDdUxMTFCaMWhU1lZWbZ9+/Y1BCF4UAhCCCGEEEIdJCMjw/vdd9/ltmzZ4vCsxT1QiUTCPP7447UajabSmR90ejnVokWLLKNHjy4bPPj/t3f/sU1Vfx/AP+fe23Ws3TrGo8NlGWMSYpQHVKZzKmKJ4kCCjNhFQaMxkaGRHwsKgpH2GqP8cIBBMyjiBHHMTjMYys/oRAhzP1Acixr+oICErQQYa2/Htrb38/xByzP1+02UtmOb79e/Y3e9556S877nfM75X/16C9OJrp6YXlNTY5o4cWKq2+2O7DOM2RAAAAAAgDgZP3580rx588x1dXXXtdNVxNixY+Wnnnqqx+Vyef/p7/7jACKECKmq2jNz5swOIYRO11kTQkTU1tbGR48eNSxevDi5vLw8kTAbAgAAAAAQc8ws0tPTTb/99lskfFy39PR0qbCwsGfdunUd4cMG/9EY/rrDg6qq+nvvvRdMSUkJRjMTomkaV1VV8dq1a1MKCgqMzBw5cwSzIQAAAAAAUXruuecSZ86ceZPH4xkSzU5X9MdlV5f/20nncQsgRETFxcUdJSUll9PS0oLRNkxzc7N++PDhlPnz56eNHz/eQJgNAQAAAAC4HoLo6i5XmZmZQ7744ouU6upqPdqL5uTkyCUlJd1VVVUd0VxHivaDhGdC/FOnTo2qMJ3o6mzI+vXrubW1NWX16tWmXrMhAAAAAADw97Ddbk/48MMPUwOBQHKUsx5ERJyTkyPNmTOne+nSpR3RfjgpFndos9lCjz32WLvFYglFsxwr4ty5c2LLli3mwsLCVJvNhhACAAAAAPA31NbWKjabzbJp06bk8vJy8ng8oWivmZOTIy9ZsqR7yZIl3lgcKq7E4kaFECEiChFR4MEHH7QcO3ZM0TQtqtmQlpaWYEtLi3T77bdbamtrdavVehldCgAAAADgP2Nm6ZVXXrF8//33ssfj0enq6qRoAoMYNWoUvfPOO902m817vTUfcQkgveiHDh26/NFHHw0tKSmRNU2LZnsvQUT8yy+/SNOmTVOysrKG5uXleV0ulx6rmwcAAAAAGATErFmzUpOTk2VN0wQRRb3kioikyZMnh/bt29ce67G3EvO7F4KZuf3ChQupO3bsSKivr4962sfv9+t+v1+WZfl/nnnmmSvM3CVJUg8zcggAAAAA/Dsxs5gyZUrCiRMnEisqKgzh4BH1APnmm29WRo8e3bN///7L8Xjxr8SjMcIhpCM5OTmptbXVcObMGSUWjeF2u0Nut9uYmJg45KGHHvJ/8sknwZEjR3ah+wEAAADAv8l999035LbbblN6enqS3G53iKKf9SAiEhaLJThx4sQul8vVGa9VR0q8GiV8SKFmt9uVo0ePpn711VeCYrO1Lm/evDloMpmSnn32Wc7MzBRnz569gm4IAAAAAIOdy+UaMnfuXIPb7U70eDxMREGKzfl5wmw285133umrqqoKChG/I/mkOLeRUFU1uGvXrvb169frsbyu3+8PHT58mDs6OpJsNluay+VKQJcEAAAAgMGImRNKS0vTFi5cmNTd3Z0YoyLza2PrOXPm8JQpU9oPHjwYq0DzXynxbiuiq7tkMfOlCxcuGOrr6y2HDh0SMdiPWBAR+Xw+sWfPHqmqqirlnnvu4ezs7MsoVAcAAACAQRA6RFVVlXTw4MHUjIwM4fP5RHin2Vi82GcikjIyMvR169bpNputI7yz7bUx/EANIP+fFq4Ggh5m7pgxY0ZSQ0OD0traGpNrR7b8bWxsFGfOnBk2e/bsgN1u9zscjgCCCAAAAAAMwOBhWLFihWn79u2G5uZmPdbBICcnRx49ejTn5eX5ioqKevry/pS+blAhRA8R9ZSUlAz55ptvkpubm0MUw2kej8ejV1RUyHl5eUP37Nlz5ciRI4H7778fNSIAAAAAMCAUFxeneL3exMrKylgVl/8h3wwfPlx6+OGHr2zevLk7PDaPVa323yLdoHYVa9euvVJYWOi12+0yxWGdWX19fbChocFot9uTZ8+enVJTU5OE7gwAAAAA/dWiRYtMaWlpKU6n01hZWRmMxxg8Pz9fzs7O1j7++GNfOHxQX4YPohswA9L7JlVV7WpqagqZzeaE/fv3mw4cOBDTQnUi4gMHDujp6emJjY2N+uOPP26cPHly54IFC7rRxQEAAADgRjtx4oTxyy+/TFq6dKn+2WefJVy6dImIKKYrhIiIcnJypFtvvdU/cuTIHqfTGaA+nvXoDwHkmtzc3IAQIrB8+fIrHR0d5tOnT0e2FNNj1PDC4/HoHo+Hzp07pxw8eDB5xowZ5nHjxnU4HI4QakQAAAAAoC8xs3A4HHJ3d7fl7rvvFpExb1tbW2RcGosxMBORZDabafz48exwODqtVqv/Tz+/IZR+8hBIVVWdiLzvv/8+lZaWyqmpqb0LbmIiUqy+Y8cO8cMPPww9f/58kIi0jRs30ksvvRTQdb33A0cwAQAAAIBoCSJiSZKooaHBkJubSytWrDDv3LlTOXbsGMdr3Jmeni53dXUF8vPzQ3v37vVardZ+0yBKf3tCCxYs8DKzWLVqlZmZlePHjysUu9mQa9ra2risrEwmoqGff/65mDBhgj87Ozu4ZcsWnKwOAAAAALHC5eXlibt371bKyspMRMRLly7VKT4vu5mIJIvFEszLy+veuXOn1h9X+yj98SmFG8pXW1ur7Nu3z7J792451rMhvejffvstE9GQ33//Xdx0003Kpk2bxBNPPNElhAjgOwMAAAAA15UGmBMdDofidDqT6urqYnlq+X+Unp4u5+fnh9rb2301NTVxPc180AWQSA6xWq1BZr5sNBrljIwMy969e+OV4AQR8cmTJ3WTyZS0cuVKWrZsmWHt2rX6woULvUIIHV8hAAAAAPg75syZY6irqzPfe++90sWLF+WTJ09GisrjlgiGDx8u0tLSLldXV4fCBwresCLzgRxArp2iTkQhZm6vqKhInTt3LjOz0DQtHo0q/H6/Hk6o0sqVK+UdO3ak1dbWBq1Wa4fdbhdvvfWWzozyEAAAAAAgEkKQruuSEIJ/+ukni6qqstPpJJPJJPv9fp3iUEoQYTabBRHxrFmz6Omnn263Wq29Zz367YBVGUAPN0hEF4mIV69ebdq6dWuC2+1WNE2LzE7E8sFe24mgra2NrFargYjSNE2TV61a5dc0rVtV1eCf/j1SCQAAAMAgzxu9x3y1tbVKU1OT0eFwmDIyMkJ33XVX5Iw9DoePeGAikkeNGsWzZ88OORyOTiFEl9PpHDCNqAywh85ERK+99pqfiPzTp09PlmV5SHV1NYXTJccpYTIRidLSUp2IkvLz800jRozwOhwOev7554PhcAQAAAAAgxszs3Lq1CnF4XDQ5s2bU7Zt29b7+Ih4vpBmIpLGjh0raZrWXVlZGcjNze1UVXXANaIykHvArl27fI2NjaHGxkbOzs5OPHHiRML58+dD8e544SVaKRs2bBDbt28PpKend1dWVopJkyZpWJ4FAAAAMLgIIej48ePmkpISLioqMsqybNi1a1c8Zzn+YtKkScqwYcO6hg4dGti0aVNnbm7ugG3PAR1AmJlyc3M7iYjWrFnT43A4ZFmWU1pbW/viz+v19fVMRJLJZDItW7aMsrKylCeffDJQWlrqx1cVAAAAYODbunWr6c033zSUlJQkHDlyhMKhI667WfVmMpmkefPmBYxGo9fhcAQGwyHaymDpHEVFRSEiCtnt9ssZGRmpqqqy1+sVRCQiBxDGIxATEfUqXDds3LjRQETG119/XRiNRp+qqgFmJkmSGLMjAAAAAP0XMwshBLW0tBiOHj2aPG/ePF68eLHc1tZGp0+fDvUKHfEMH4KIODk5madNmybOnTt36d1339WFEPpAXG41qANIhKqqQWa+WFxczDU1NUkffPBBYnNzs9zW1kYUx10IIp1F0zQiInnFihVERClms5leeOEFsWHDhp6Kigr/d999F/pTckUBOwAAAEDf+cPYSwhBy5cvV1RV5Zdffjll1KhRypgxY9hsNgtN08jr9XIfhA4mIslsNlNqampo6tSpXU6ns3P79u2CiLi/nueBANK7V4UH+NOnT+8kok673W7+9NNPZWZOdLvdcd0OrVcnIiIiTdOovLycy8vLDWPGjBk2btw4raCgILhnzx49fNAhI4gAAAAA9FnwYCIiZjbMnz9fam9vV3788UczEellZWXXfh7HFTR/+Vwmk0lOSEjoUhQldPbsWa3XjlaDcmyo/Bt6m6qqGjOLV199NdjU1GT49ddfjX1QrP4XLS0tQSJK8vl8UnFxcYiIOm02m+RyuTpx2CEAAABAXDEzS1VVVUlFRUX6okWLkhoaGuT6+vo+ren4E2nEiBE9Fosl8PPPP3cOhvoOBJDe0fLqA/UzszRlyhRDYmKiua6uTvZ4PNyH6VIQEbvd7qDT6RREZGpqapLGjh1reOSRR/Q33ngjZLVaNfz/AAAAABA7Ho/HvGbNGnnChAlSIBBIICJ9zZo13Ct49HX4EI8++qgoKCgIer1er6qq+mBbZoUA8occInQi6na5XEGDwUCZmZkJp06dSq6urg71YeeL/B12u91BIlJOnjwpXnzxRbZYLIasrCxSVVUqLCzswBkjAAAAAP/c7t27jV9//bV527ZtoQceeMDg8/lE+MVz79mOPh3133LLLfT222+LM2fOdNxxxx0hm83G4bHpv2op/v8BSHui6vc4z2oAAAAASUVORK5CYII=) no-repeat center bottom / 80% auto, linear-gradient(180deg, #f5fbfd 0%, #eaf5f8 30%, #d4ecf2 70%, #c0e4ee 100%)", position: "relative", fontFamily: "-apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif", color: "#011F27", overflow: "hidden" },
  watermark: { position: "fixed", bottom: -10, left: "50%", transform: "translateX(-50%)", opacity: 0.07, pointerEvents: "none", zIndex: 0 },
  content: { position: "relative", zIndex: 1, padding: "0 20px 100px" },
  logoFull: { textAlign: "center", padding: "20px 0 8px" },
  logoMark: { textAlign: "center", padding: "16px 0 4px" },
  pageTitle: { textAlign: "center", margin: "0 0 16px" },
  h2: { fontSize: 17, fontWeight: 500, margin: "0 0 2px", color: "#011F27" },
  subtitle: { fontSize: 12, color: "#4a6a78", margin: 0 },
  card: { background: "#fff", borderRadius: 14, border: "0.5px solid #b8d4dc", padding: "16px 18px", marginBottom: 10, cursor: "pointer" },
  cardActive: { background: "#fff", borderRadius: 14, border: "2px solid #5DCAA5", padding: "16px 18px", marginBottom: 10, cursor: "pointer" },
  cardLocked: { background: "#f8fafb", borderRadius: 14, border: "0.5px solid #e0e8ec", padding: "16px 18px", marginBottom: 10, opacity: 0.6 },
  nowCard: { background: "#fff", borderRadius: 14, border: "0.5px solid #b8d4dc", borderLeft: "4px solid #63cae2", padding: "18px 16px", marginBottom: 12, textAlign: "center" },
  nextCard: { background: "#fff", borderRadius: 14, borderLeft: "4px solid #5DCAA5", borderTop: "0.5px solid #b8d4dc", borderRight: "0.5px solid #b8d4dc", borderBottom: "0.5px solid #b8d4dc", padding: "14px 14px 14px 16px", marginBottom: 12 },
  btn: { width: "100%", padding: "13px 0", borderRadius: 10, border: "none", background: "#213e7a", color: "#fff", fontWeight: 500, fontSize: 14, cursor: "pointer" },
  btnSec: { width: "100%", padding: "13px 0", borderRadius: 10, border: "1px solid #b8d4dc", background: "#fff", color: "#3a5a68", fontWeight: 500, fontSize: 14, cursor: "pointer" },
  input: { width: "100%", background: "#fff", border: "0.5px solid #b8d4dc", borderRadius: 8, padding: "10px 12px", fontSize: 14, color: "#011F27", outline: "none", boxSizing: "border-box" },
  label: { display: "block", fontSize: 12, color: "#3a5a68", marginBottom: 4, fontWeight: 500 },
  field: { marginBottom: 12 },
  tag: { display: "inline-block", fontSize: 10, fontWeight: 500, padding: "2px 8px", borderRadius: 6, marginBottom: 6 },
  tabBar: { display: "flex", borderTop: "1px solid #b8d4dc", position: "fixed", bottom: 0, left: 0, right: 0, background: "linear-gradient(180deg, #eaf5f8, #d4ecf2)", zIndex: 10, maxWidth: 420, margin: "0 auto" },
  tab: { flex: 1, padding: "10px 0", background: "none", border: "none", cursor: "pointer", fontSize: 9, fontWeight: 500, color: "#6a8a98", textAlign: "center" },
  tabActive: { flex: 1, padding: "10px 0", background: "none", border: "none", cursor: "pointer", fontSize: 9, fontWeight: 500, color: "#213e7a", textAlign: "center" },
  badge: (bg, color) => ({ display: "inline-block", fontSize: 10, fontWeight: 500, padding: "4px 12px", borderRadius: 6, background: bg, color }),
  userBar: { display: "flex", alignItems: "center", gap: 10, background: "#fff", borderRadius: 12, border: "0.5px solid #b8d4dc", padding: "12px 14px", marginBottom: 14 },
  groupPill: { marginLeft: "auto", fontSize: 14, fontWeight: 500, color: "#213e7a", background: "#daf0f8", padding: "6px 16px", borderRadius: 8, border: "1px solid #a8d8e8" },
  sectionLabel: { fontSize: 10, fontWeight: 500, color: "#6a8a98", textTransform: "uppercase", letterSpacing: "0.06em", margin: "16px 0 8px" },
};

// --- WATERMARK SVG ---
const WATERMARK_IMG = "data:image/png;base64,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";

const Watermark = () => (
  <div style={{ position: "absolute", bottom: 0, left: "50%", transform: "translateX(-50%)", zIndex: 0, pointerEvents: "none" }}>
    <img src={WATERMARK_IMG} alt="" style={{ width: 1200, height: "auto", opacity: 0.08 }} />
  </div>
)

// --- LOGO COMPONENTS ---
const HeartLogo = ({ scale = 0.75 }) => (
  <g transform={`scale(${scale})`}>
    <path d="M-8,-42 C-8,-52 -2,-56 4,-52 L8,-48 C12,-44 14,-38 10,-30" stroke="#011F27" strokeWidth="4" strokeLinecap="round" fill="none"/>
    <path d="M-14,-38 C-20,-44 -22,-36 -18,-30" stroke="#011F27" strokeWidth="3" strokeLinecap="round" fill="none"/>
    <path d="M-28,-18 C-32,-6 -30,12 -22,24 C-16,32 -6,40 0,44 C6,40 16,32 22,24 C30,12 32,-6 28,-18 C24,-28 14,-34 4,-28 C-6,-22 -8,-24 -12,-26 C-18,-30 -24,-28 -28,-18Z" fill="#011F27"/>
    <ellipse cx="0" cy="38" rx="30" ry="8" fill="none" stroke="#011F27" strokeWidth="2.5"/>
    <rect x="-8" y="30" width="5" height="12" fill="#011F27"/>
    <rect x="3" y="30" width="5" height="12" fill="#011F27"/>
    <circle cx="28" cy="35" r="4" fill="#011F27"/>
    <line x1="28" y1="35" x2="18" y2="-10" stroke="#011F27" strokeWidth="2" strokeLinecap="round"/>
    <path d="M32,28 C36,24 38,20 36,16" stroke="#011F27" strokeWidth="1.8" strokeLinecap="round" fill="none"/>
    <path d="M35,30 C40,25 42,19 40,14" stroke="#011F27" strokeWidth="1.4" strokeLinecap="round" fill="none"/>
  </g>
);

const LOGO_FULL = "data:image/png;base64,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";
const LOGO_MARK = "data:image/png;base64,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";

const LogoFull = () => (
  <div style={S.logoFull}>
    <img src={LOGO_FULL} alt="RESCUE TEE" style={{ width: 270, height: "auto", display: "block", margin: "0 auto" }} />
  </div>
);

const LogoMark = () => (
  <div style={S.logoMark}>
    <img src={LOGO_MARK} alt="RESCUE TEE" style={{ width: 120, height: "auto", display: "block", margin: "0 auto" }} />
  </div>
);

// --- TAB BAR ---
const TabBar = ({ tabs, active, onTab }) => (
  <div style={S.tabBar}>
    {tabs.map(t => (
      <button key={t} style={active === t ? S.tabActive : S.tab} onClick={() => onTab(t)}>{t}</button>
    ))}
  </div>
);

// --- TIMER HOOK ---
const useTimer = (endTime) => {
  const [remaining, setRemaining] = useState(getTimeRemaining(endTime));
  useEffect(() => {
    const iv = setInterval(() => setRemaining(getTimeRemaining(endTime)), 1000);
    return () => clearInterval(iv);
  }, [endTime]);
  return remaining;
};

// --- PARTICIPANT SEGMENTS ---
const ParticipantSegments = ({ startTime, blockDuration = 30 }) => {
  const elapsed = getElapsedMins(startTime);
  const segments = [
    { label: "0–10", active: elapsed >= 0 && elapsed < 10 },
    { label: "10–20", active: elapsed >= 10 && elapsed < 20 },
    { label: "20–30", active: elapsed >= 20 && elapsed < 30 },
  ];
  return (
    <div style={{ display: "flex", gap: 5, marginTop: 14, paddingTop: 14, borderTop: "0.5px solid #e0ecf0" }}>
      {segments.map(seg => (
        <div key={seg.label} style={{
          flex: 1, textAlign: "center", fontSize: 10, padding: "5px 0", borderRadius: 6,
          background: seg.active ? "#daf0f8" : "#f0f5f7",
          color: seg.active ? "#185FA5" : "#6a8a98",
          border: `0.5px solid ${seg.active ? "#a8d8e8" : "#d4e4ea"}`,
          fontWeight: seg.active ? 500 : 400,
        }}>{seg.label}</div>
      ))}
    </div>
  );
};

// --- VIEW ICON PLACEHOLDER ---
const ViewIcon = ({ viewId, size = 36 }) => (
  <div style={{
    width: size, height: size, borderRadius: 8, background: "#e8f1f5",
    border: "0.5px solid #d0e2ea", flexShrink: 0, display: "flex",
    alignItems: "center", justifyContent: "center", fontSize: 8, color: "#8aa8b8"
  }}>V{viewId}</div>
);

// ============================================================
// APP HOME SCREEN
// ============================================================
const AppHome = ({ user, workshopActive, onNavigate, completedModules }) => {
  const totalExams = user ? Object.values(DEMO_EXAMS[user.id] || {}).reduce((a, b) => a + b, 0) : 0;
  return (
    <>
      <LogoFull />
      <div style={S.content}>
        {user && (
          <div style={S.userBar}>
            <div>
              <div style={{ fontSize: 14, fontWeight: 500 }}>{user.first} {user.last}, {user.title}</div>
              <div style={{ fontSize: 11, color: "#4a6a78" }}>{user.level} · {user.institution}</div>
            </div>
            <div style={{ marginLeft: "auto", color: "#b8d4dc", fontSize: 14 }}>›</div>
          </div>
        )}

        <div style={S.sectionLabel}>Your products</div>

        {/* RESCUE TEE Workshop — contains pre-course + live course */}
        <div style={{ background: "#fff", borderRadius: 14, border: "2px solid #63cae2", padding: "18px", marginBottom: 10 }}>
          <div style={{ textAlign: "center", marginBottom: 14 }}>
            <div style={{ fontSize: 17, fontWeight: 500, marginBottom: 2 }}>RESCUE TEE Workshop</div>
            <div style={{ fontSize: 12, color: "#4a6a78" }}>Pre-course preparation + live course day</div>
          </div>

          {/* Pre-course modules sub-card */}
          <div onClick={() => onNavigate("precourse")} style={{ background: "#f8fbfc", borderRadius: 12, border: "0.5px solid #b8d4dc", padding: "14px 16px", marginBottom: 10, cursor: "pointer" }}>
            <div style={{ display: "flex", alignItems: "center", gap: 12 }}>
              <div style={{ width: 40, height: 40, borderRadius: 10, background: "#daf0f8", color: "#185FA5", display: "flex", alignItems: "center", justifyContent: "center", fontSize: 16, flexShrink: 0 }}>▶</div>
              <div style={{ flex: 1 }}>
                <div style={{ fontSize: 14, fontWeight: 500 }}>Pre-course modules</div>
                <div style={{ fontSize: 11, color: "#4a6a78", marginTop: 2 }}>Protocol, anatomy, probe skills</div>
                <div style={{ height: 4, background: "#e0ecf0", borderRadius: 2, overflow: "hidden", marginTop: 6 }}>
                  <div style={{ height: "100%", width: `${((completedModules?.length || 0) / 7) * 100}%`, background: "#63cae2", borderRadius: 2 }} />
                </div>
                <div style={{ fontSize: 10, color: "#6a8a98", marginTop: 4 }}>{completedModules?.length || 0} of 7 complete</div>
              </div>
              <div style={{ color: "#b8d4dc", fontSize: 16 }}>›</div>
            </div>
          </div>

          {/* Live course sub-card */}
          {workshopActive ? (
            <div onClick={() => onNavigate("workshop")} style={{ background: "#E1F5EE", borderRadius: 12, border: "1.5px solid #5DCAA5", padding: "14px 16px", cursor: "pointer" }}>
              <div style={{ display: "flex", alignItems: "center", gap: 12 }}>
                <div style={{ width: 40, height: 40, borderRadius: 10, background: "#fff", color: "#0F6E56", display: "flex", alignItems: "center", justifyContent: "center", fontSize: 16, flexShrink: 0, border: "1px solid #5DCAA5" }}>▶</div>
                <div style={{ flex: 1 }}>
                  <div style={{ fontSize: 14, fontWeight: 500, color: "#0F6E56" }}>Live course</div>
                  <div style={{ fontSize: 11, color: "#085041", marginTop: 2 }}>Today · Stations, proctors, exams</div>
                </div>
                <span style={{ fontSize: 10, fontWeight: 500, padding: "4px 10px", borderRadius: 6, background: "#fff", color: "#0F6E56", border: "1px solid #5DCAA5", animation: "pulse 2s infinite" }}>Live</span>
              </div>
            </div>
          ) : (
            <div style={{ background: "#f5f8fa", borderRadius: 12, border: "0.5px solid #d4e4ea", padding: "14px 16px" }}>
              <div style={{ display: "flex", alignItems: "center", gap: 12 }}>
                <div style={{ width: 40, height: 40, borderRadius: 10, background: "#e8eef0", color: "#8aa0a8", display: "flex", alignItems: "center", justifyContent: "center", fontSize: 16, flexShrink: 0 }}>⏱</div>
                <div style={{ flex: 1 }}>
                  <div style={{ fontSize: 14, fontWeight: 500, color: "#8aa0a8" }}>Live course</div>
                  <div style={{ fontSize: 11, color: "#a0b0b8", marginTop: 2 }}>Activates on course day</div>
                </div>
              </div>
            </div>
          )}
        </div>

        {/* TEE Q-Bank — independent product */}
        <div style={S.cardLocked}>
          <div style={{ textAlign: "center" }}>
            <div style={{ width: 48, height: 48, borderRadius: 14, background: "#f0f5f7", color: "#8aa0a8", display: "inline-flex", alignItems: "center", justifyContent: "center", fontSize: 20, marginBottom: 10 }}>?</div>
            <div style={{ fontSize: 16, fontWeight: 500, color: "#8aa0a8", marginBottom: 4 }}>TEE Q-Bank</div>
            <div style={{ fontSize: 12, color: "#a0b0b8", marginBottom: 8 }}>75+ board-style questions · growing to 2,000</div>
            <span style={S.badge("#f0f5f7", "#8aa0a8")}>Coming soon</span>
          </div>
        </div>

        {/* TEE CME — independent product */}
        <div style={S.cardLocked}>
          <div style={{ textAlign: "center" }}>
            <div style={{ width: 48, height: 48, borderRadius: 14, background: "#f0f5f7", color: "#8aa0a8", display: "inline-flex", alignItems: "center", justifyContent: "center", fontSize: 20, marginBottom: 10 }}>📜</div>
            <div style={{ fontSize: 16, fontWeight: 500, color: "#8aa0a8", marginBottom: 4 }}>TEE CME</div>
            <div style={{ fontSize: 12, color: "#a0b0b8", marginBottom: 8 }}>Continuing medical education credits</div>
            <span style={S.badge("#f0f5f7", "#8aa0a8")}>Coming soon</span>
          </div>
        </div>
      </div>
    </>
  );
};

// ============================================================
// LOGIN FLOW
// ============================================================
const LoginScreen = ({ onLogin }) => {
  const [first, setFirst] = useState("");
  const [last, setLast] = useState("");
  const [email, setEmail] = useState("");

  const handleSubmit = () => {
    onLogin({ first, last, email });
  };

  return (
    <>
      <LogoFull />
      <div style={S.content}>
        <div style={S.field}><label style={S.label}>First name</label><input style={S.input} value={first} onChange={e => setFirst(e.target.value)} placeholder="John" /></div>
        <div style={S.field}><label style={S.label}>Last name</label><input style={S.input} value={last} onChange={e => setLast(e.target.value)} placeholder="Smith" /></div>
        <div style={S.field}><label style={S.label}>Email</label><input style={S.input} type="email" value={email} onChange={e => setEmail(e.target.value)} placeholder="jsmith@hospital.edu" /></div>
        <button style={S.btn} onClick={handleSubmit}>Sign in</button>
        <div style={{ fontSize: 11, color: "#6a8a98", textAlign: "center", marginTop: 14, lineHeight: 1.6 }}>
          Your information is matched against the course registration list. Both learners and proctors use this same sign-in.
        </div>
      </div>
    </>
  );
};

const ConfirmScreen = ({ user, onConfirm, onBack }) => (
  <>
    <LogoMark />
    <div style={S.pageTitle}><h2 style={S.h2}>We found you</h2><p style={S.subtitle}>Please confirm your identity</p></div>
    <div style={S.content}>
      <div style={{ background: "#fff", border: "2px solid #63cae2", borderRadius: 14, padding: 20, textAlign: "center", marginBottom: 16 }}>
        <div style={{ fontSize: 18, fontWeight: 500, marginBottom: 2 }}>{user.first} {user.last}, {user.title}</div>
        <div style={{ fontSize: 13, color: "#4a6a78" }}>{user.level} {user.role === "director" ? "" : "Emergency Medicine"}</div>
        <div style={{ fontSize: 12, color: "#6a8a98", marginTop: 4 }}>{user.institution}</div>
        <div style={{ fontSize: 12, color: "#6a8a98" }}>Course: March 29, 2026</div>
        <div style={{ marginTop: 10, paddingTop: 10, borderTop: "0.5px solid #d4ecf2", fontSize: 12, color: "#6a8a98" }}>
          Role: <span style={{ fontWeight: 500, color: "#213e7a" }}>{user.role === "director" ? "Course Director" : user.role === "proctor" ? "Proctor" : "Learner"}</span>
        </div>
        {user.group && (
          <div style={{ display: "inline-block", fontSize: 24, fontWeight: 500, color: "#213e7a", background: "#daf0f8", padding: "8px 28px", borderRadius: 10, marginTop: 14, border: "1px solid #a8d8e8" }}>
            Group {user.group}
          </div>
        )}
      </div>
      <div style={{ fontSize: 14, color: "#4a6a78", textAlign: "center", marginBottom: 12 }}>Is this you?</div>
      <button style={S.btn} onClick={onConfirm}>Yes, continue</button>
      <button style={{ ...S.btnSec, marginTop: 8 }} onClick={onBack}>No, go back</button>
    </div>
  </>
);

const NotFoundScreen = ({ attempt, onRequest, onBack }) => {
  const [first, setFirst] = useState(attempt?.first || "");
  const [last, setLast] = useState(attempt?.last || "");
  const [inst, setInst] = useState("");
  const [email, setEmail] = useState(attempt?.email || "");
  const [msg, setMsg] = useState("");
  return (
    <>
      <LogoMark />
      <div style={S.pageTitle}><h2 style={S.h2}>Not found</h2><p style={S.subtitle}>We couldn't match your registration</p></div>
      <div style={S.content}>
        <div style={{ border: "1px solid #e8a0a0", borderRadius: 12, padding: 16, textAlign: "center", marginBottom: 14, background: "#fdf0f0" }}>
          <div style={{ fontSize: 14, fontWeight: 500, color: "#943030", marginBottom: 4 }}>No matching registration</div>
          <div style={{ fontSize: 12, color: "#6a5050" }}>The name and email you entered don't match any upcoming course.</div>
        </div>
        <div style={{ fontSize: 13, fontWeight: 500, marginBottom: 10 }}>Request access</div>
        <div style={S.field}><label style={S.label}>First name</label><input style={S.input} value={first} onChange={e => setFirst(e.target.value)} /></div>
        <div style={S.field}><label style={S.label}>Last name</label><input style={S.input} value={last} onChange={e => setLast(e.target.value)} /></div>
        <div style={S.field}><label style={S.label}>Institution</label><input style={S.input} value={inst} onChange={e => setInst(e.target.value)} placeholder="Hospital / program name" /></div>
        <div style={S.field}><label style={S.label}>Email</label><input style={S.input} value={email} onChange={e => setEmail(e.target.value)} /></div>
        <div style={S.field}><label style={S.label}>Message to course director (optional)</label><textarea style={{ ...S.input, minHeight: 50, resize: "vertical", fontFamily: "inherit" }} value={msg} onChange={e => setMsg(e.target.value)} /></div>
        <button style={S.btn} onClick={() => onRequest({ first, last, inst, email, msg })}>Send request</button>
        <button style={{ ...S.btnSec, marginTop: 8 }} onClick={onBack}>Try again</button>
      </div>
    </>
  );
};

const RequestSentScreen = ({ onBack }) => (
  <>
    <LogoMark />
    <div style={S.pageTitle}><h2 style={S.h2}>Request sent</h2><p style={S.subtitle}>The course director has been notified</p></div>
    <div style={S.content}>
      <div style={{ border: "1px solid #8ac8a8", borderRadius: 12, padding: 20, textAlign: "center", background: "#f0faf4" }}>
        <div style={{ fontSize: 15, fontWeight: 500, color: "#1a6a3a", marginBottom: 6 }}>Access request submitted</div>
        <div style={{ fontSize: 12, color: "#4a7060" }}>You'll receive a notification when you've been added to the registration list.</div>
      </div>
      <button style={{ ...S.btnSec, marginTop: 16 }} onClick={onBack}>Try signing in again</button>
    </div>
  </>
);

// ============================================================
// PRE-COURSE MODULES — Full 7-module system
// ============================================================
const MODULE_DATA = [
  { id: 1, title: "Probe Orientation & Knobology", time: "18–22 min", summary: "Probe components, movements, and machine controls",
    sections: [
      { type: "standard", title: "Probe Components", body: "The TEE probe has four key parts: the transducer tip (imaging element), a large control wheel (anterior/posterior flex), a small control wheel (left/right flex), the shaft, and the connector to the ultrasound machine." },
      { type: "standard", title: "Four Probe Movements", body: "1) Advance/withdraw — changes depth in esophagus. 2) Rotate left/right — pans the imaging plane. 3) Anteflex/retroflex — tips the transducer toward/away from the heart. 4) Omniplane rotation — electronically sweeps the imaging plane from 0° to 180°." },
      { type: "standard", title: "Omniplane Angle", body: "0° produces a transverse (horizontal) image. 90° produces a sagittal (vertical) image. Every standard TEE view is defined by a specific omniplane angle. The angle is displayed on screen and controlled by buttons on the probe handle." },
      { type: "callout", title: "Mental Model", body: "The probe is your eyes inside the esophagus — four controls aim your view. Master these four movements and you can obtain any view." },
      { type: "standard", group: "Machine Controls", title: "Gain", body: "Overall gain controls brightness of the entire image. Time-gain compensation (TGC) adjusts brightness at specific depths — use it when near-field is too bright or far-field is too dark." },
      { type: "standard", title: "Depth", body: "TEE uses shallower depth settings than TTE because structures are closer to the probe. Start at 12–14 cm for most mid-esophageal views. Deeper for transgastric." },
      { type: "standard", title: "Focus", body: "Set the focal zone at the level of your structures of interest — usually the ventricles in mid-esophageal views. Multiple focal zones reduce frame rate." },
      { type: "standard", title: "Sector Width", body: "Narrow sector width increases frame rate (better temporal resolution). Wide sector width provides better spatial orientation. Start wide, narrow down once oriented." },
      { type: "callout", title: "Optimization Rule", body: "Start with the machine preset for TEE. Then adjust gain and depth first — these two changes fix 80% of image quality issues." },
    ],
    takeaway: "Name all four probe movements, predict how each changes the image, and identify which control to adjust for suboptimal images.",
    quiz: [
      { q: "Which probe movement changes the depth of the transducer within the esophagus?", opts: ["Omniplane rotation", "Advance/withdraw", "Anteflex/retroflex", "Rotate left/right"], ans: 1, exp: "Advancing pushes the probe deeper (toward the stomach), withdrawing pulls it higher (toward the mouth). This changes which structures are at the level of the transducer." },
      { q: "What is the range of the omniplane angle?", opts: ["0°–90°", "0°–180°", "0°–360°", "90°–180°"], ans: 1, exp: "The omniplane electronically rotates the imaging plane from 0° (transverse) through 180°. Each standard view uses a specific angle within this range." },
      { q: "The image is dark in the far field only. What should you adjust?", opts: ["Overall gain", "Depth", "TGC in the far field", "Sector width"], ans: 2, exp: "Time-gain compensation (TGC) allows you to increase brightness at specific depths. If only the far field is dark, increase the TGC sliders for the deeper zones." },
      { q: "Why does TEE use shallower depth settings than TTE?", opts: ["TEE probes are smaller", "Structures are closer to the probe", "TEE has lower frequency", "Patient body habitus"], ans: 1, exp: "The esophagus sits directly behind the heart. Structures are centimeters away from the transducer rather than the 15–20+ cm typical of transthoracic imaging." },
      { q: "Narrowing the sector width primarily does what?", opts: ["Improves image brightness", "Increases frame rate", "Shows deeper structures", "Reduces artifact"], ans: 1, exp: "A narrower sector means fewer scan lines to process per frame, so the machine can generate frames faster. This improves temporal resolution — important for moving structures like valves." },
    ]
  },
  { id: 2, title: "TEE Safety Essentials", time: "8–10 min", summary: "Contraindications, complications, and probe care",
    sections: [
      { type: "warning", title: "Absolute Contraindications", body: "Esophageal stricture, perforation, or Zenker's diverticulum. Active upper GI bleeding. Recent esophageal or gastric surgery. These are NEVER overridden — even in cardiac arrest." },
      { type: "caution", title: "Relative Contraindications", body: "Esophageal varices, Barrett's esophagus, cervical spine instability, severe coagulopathy, history of radiation to the chest/neck. In non-emergent settings, weigh risks carefully." },
      { type: "highlight", title: "Risk-Benefit in Cardiac Arrest", body: "In a dying patient, the benefit threshold is much lower. Relative contraindications become acceptable risks if TEE may identify a treatable cause of arrest. Absolute contraindications still apply — they represent structural dangers that cannot be mitigated." },
      { type: "standard", title: "Complications", body: "Esophageal injury occurs in <0.1% of cases. Other complications include bleeding (mucosal), dental injury (during insertion), and lip/tongue trauma. Serious perforation is exceedingly rare but life-threatening." },
      { type: "standard", title: "Probe Care & Documentation", body: "Before each use: inspect the probe tip for damage, verify the image on screen. After: clean and high-level disinfect per manufacturer protocol. Document all TEE findings, any complications, and probe condition." },
    ],
    takeaway: "Know when TEE is safe versus contraindicated. In cardiac arrest, the benefit threshold is lower — but absolute contraindications still apply.",
    quiz: [
      { q: "Which of the following is an absolute contraindication to TEE?", opts: ["Esophageal varices", "Esophageal stricture", "Barrett's esophagus", "Coagulopathy"], ans: 1, exp: "Esophageal stricture creates a fixed narrowing that risks perforation if the probe is forced through. This is absolute — it applies even in cardiac arrest." },
      { q: "In cardiac arrest, how should you handle relative contraindications?", opts: ["They become absolute", "They are ignored completely", "They become acceptable risks if a treatable cause is possible", "They require cardiology consultation"], ans: 2, exp: "When a patient is dying, the potential benefit of identifying a treatable cause (tamponade, PE, etc.) outweighs the small risks of relative contraindications like varices or Barrett's." },
      { q: "What is the reported rate of esophageal injury from TEE?", opts: ["<0.01%", "<0.1%", "<1%", "<5%"], ans: 1, exp: "Large studies report clinically significant esophageal injury in fewer than 1 in 1,000 examinations (<0.1%). The procedure is very safe when contraindications are respected." },
      { q: "What should you do before every TEE insertion?", opts: ["Obtain written consent", "Inspect probe and verify function", "Perform a barium swallow", "Place an NG tube first"], ans: 1, exp: "Visual inspection of the probe tip for cracks, tears, or damage, plus a quick image check on the machine, should be standard practice before every insertion." },
    ]
  },
  { id: 3, title: "Esophageal & Mediastinal Anatomy", time: "12–15 min", summary: "Probe depth levels and surrounding structures",
    sections: [
      { type: "standard", title: "Upper Esophagus (~20–25 cm)", body: "At this level, the probe sits near the aortic arch and great vessel origins. Used for views of the aortic arch (View 11) and upper descending aorta." },
      { type: "standard", title: "Mid-Esophagus (~30–35 cm)", body: "The left atrium sits directly anterior to the esophagus at this level. This is the 'sweet spot' for TEE — all four chambers, all valves, and the proximal great vessels can be imaged from here." },
      { type: "standard", title: "Trans-Gastric (~40–45 cm)", body: "Advancing past the gastroesophageal junction into the stomach and anteflexing the probe provides short-axis views of the ventricles at the papillary muscle level." },
      { type: "highlight", title: "Critical Relationship", body: "The esophagus runs directly posterior to the left atrium. This is why the LA is ALWAYS in the near-field (top of screen) on TEE — it's the closest cardiac structure to the probe." },
      { type: "standard", title: "The Aorta's Path", body: "The descending thoracic aorta runs alongside the esophagus on the left. It arches over the left mainstem bronchus, then becomes the ascending aorta coursing anteriorly. The aortic sweep (Views 5–12) traces this entire path." },
    ],
    takeaway: "Probe depth determines which structures you see. The esophagus is directly behind the LA — the LA is always at the top of the screen.",
    quiz: [
      { q: "At what depth are mid-esophageal views typically obtained?", opts: ["20–25 cm", "25–30 cm", "30–35 cm", "40–45 cm"], ans: 2, exp: "The mid-esophageal position at ~30–35 cm places the probe directly behind the left atrium, providing access to all four chambers and valves." },
      { q: "Why is the left atrium always in the near-field on TEE?", opts: ["The LA is the largest chamber", "The esophagus is directly posterior to it", "The probe frequency is optimized for LA", "The LA has the strongest echo return"], ans: 1, exp: "Because the esophagus runs directly behind the LA, the left atrium is always the closest cardiac structure to the TEE probe — putting it at the top of the screen in the near field." },
      { q: "How are transgastric views obtained?", opts: ["Withdraw to 20 cm", "Advance to 40–45 cm and anteflex", "Rotate probe 180°", "Use omniplane at 90°"], ans: 1, exp: "The probe is advanced past the GE junction into the stomach (~40–45 cm) and then anteflexed to point the transducer upward toward the heart, providing short-axis ventricular views." },
      { q: "Where does the descending aorta run relative to the esophagus?", opts: ["Anterior", "Posterior", "Alongside on the left", "Alongside on the right"], ans: 2, exp: "The descending thoracic aorta runs along the left side of the esophagus. Rotating the probe leftward from the standard mid-esophageal position brings it into view." },
    ]
  },
  { id: 4, title: "TEE Intubation", time: "10–12 min", summary: "Step-by-step probe insertion technique",
    sections: [
      { type: "standard", title: "Step 1: Prepare Patient", body: "Position supine with head midline. Most cardiac arrest patients are already endotracheally intubated, which protects the airway and makes TEE insertion easier. Ensure adequate lubrication of the oropharynx." },
      { type: "standard", title: "Step 2: Prepare Probe", body: "Unlock both control wheels (large and small). Lubricate the distal 10–15 cm of the probe shaft. Verify the probe produces an image on the ultrasound machine before insertion." },
      { type: "standard", title: "Step 3: Insert", body: "Introduce the probe in the midline, gently past the oropharynx. Mild resistance at the upper esophageal sphincter (cricopharyngeus muscle) is normal — gentle steady pressure usually overcomes this." },
      { type: "standard", title: "Step 4: Advance to Position", body: "For mid-esophageal views, advance to 30–35 cm. For transgastric views, advance to 40–45 cm. Lock the control wheels once in position to prevent unintended movement." },
      { type: "warning", title: "Safety Principle", body: "If you encounter significant resistance — STOP. Never force the probe. Withdraw, reassess, relubricate, and retry with gentle technique. Forcing risks esophageal perforation." },
      { type: "standard", title: "Intubated vs. Non-Intubated", body: "Most RESCUE TEE patients are intubated during cardiac arrest. The endotracheal tube displaces the tongue and provides a guide path, making probe insertion easier than in awake patients." },
    ],
    takeaway: "Describe the step-by-step insertion sequence. The cardinal rule: if you feel significant resistance, stop.",
    quiz: [
      { q: "Where do you typically feel resistance during TEE probe insertion?", opts: ["Vocal cords", "Upper esophageal sphincter", "Gastroesophageal junction", "Tracheal bifurcation"], ans: 1, exp: "The cricopharyngeus muscle (upper esophageal sphincter) at ~15 cm provides the main point of resistance. Gentle, steady pressure with slight jaw lift usually allows passage." },
      { q: "What should you do if you encounter significant resistance?", opts: ["Apply more force", "Rotate the probe 90°", "Stop, reassess, relubricate, retry", "Switch to a smaller probe"], ans: 2, exp: "Significant resistance is a warning sign. Stop immediately, withdraw the probe, reassess the situation, add more lubrication, and retry with gentle technique. Never force." },
      { q: "Before inserting the probe, the control wheels should be:", opts: ["Locked in neutral", "Unlocked", "Maximally flexed", "Turned to the right"], ans: 1, exp: "Unlocked wheels allow the probe tip to follow the natural curves of the pharynx and esophagus during insertion. Locked wheels create a rigid tip that increases resistance and risk of injury." },
    ]
  },
  { id: 5, title: "Cardiac Anatomy for TEE", time: "15–20 min", summary: "Chambers, valves, great vessels from esophageal perspective", videoSrc: "/media/cardiac-anatomy-video.html",
    sections: [
      { type: "highlight", title: "TEE Orientation", body: "On TEE, the left atrium is at the TOP of the screen (near-field) and the ventricles are at the BOTTOM (far-field). This is the opposite of transthoracic echo where the apex is up. This flipped orientation is the most important concept to internalize." },
      { type: "standard", group: "Chambers", title: "Left Atrium (LA)", body: "Always in the near-field at the top of the screen. Check the LA appendage for thrombus in atrial fibrillation. The LA is the reference structure — it's visible in almost every mid-esophageal view." },
      { type: "standard", title: "Right Atrium (RA)", body: "Appears on the left side of the screen in the ME 4-chamber view (the image is mirrored). Receives the SVC from above and IVC from below, best seen in the bi-caval view." },
      { type: "standard", title: "Left Ventricle (LV)", body: "In the far-field (bottom of screen). Wall thickness normally 8–12 mm. Connected to the LA via the mitral valve. The LVOT has a smooth, muscular wall leading to the aortic valve." },
      { type: "standard", title: "Right Ventricle (RV)", body: "Far-field, thinner walls than LV. Contains the moderator band and trabeculations. RV dilation (RV:LV ratio >1:1) = right heart strain — think massive PE." },
      { type: "standard", group: "Valves", title: "Mitral Valve", body: "Gates the LA↔LV connection. Has 2 leaflets (anterior and posterior). Best seen in ME 4-chamber and ME long-axis views. Mitral regurgitation is common and can be severe." },
      { type: "standard", title: "Tricuspid Valve", body: "Gates the RA↔RV connection. Has 3 leaflets. More apically displaced than the mitral valve — this offset helps distinguish the two AV valves." },
      { type: "standard", title: "Aortic Valve", body: "Sits between the LVOT and ascending aorta. Has 3 cusps: right coronary (RCC), left coronary (LCC), and non-coronary (NCC). Classic Mercedes-Benz sign in short-axis at 30°." },
      { type: "standard", title: "Pulmonic Valve", body: "At the RV outflow tract, connecting to the pulmonary artery. The hardest valve to image — it's the most anterior structure, farthest from the esophageal probe." },
      { type: "standard", group: "Great Vessels", title: "Ascending Aorta & Arch", body: "Exits the LV via the aortic valve, courses anteriorly and rightward, then arches over the left mainstem bronchus. Dissection flaps are critical findings." },
      { type: "standard", title: "Descending Thoracic Aorta", body: "Runs alongside the esophagus on the left side. Rotate the probe leftward to bring it into view. Can be imaged in both short-axis (View 5) and long-axis (View 12)." },
      { type: "standard", title: "SVC, IVC & Pulmonary Artery", body: "SVC and IVC enter the RA from above and below — best seen in the bi-caval view (View 3). IVC size and respirophasic variation indicate volume status. The PA sits anterior to the ascending aorta." },
      { type: "standard", group: "Pericardium & Septa", title: "Pericardium", body: "Appears as a bright echogenic line surrounding the heart. Pericardial effusion = dark (echo-free) space between pericardium and myocardium. Check all views. Tamponade = effusion + chamber collapse." },
      { type: "standard", title: "Interatrial & Interventricular Septa", body: "IAS separates LA from RA — look for PFO or ASD (dropout or color flow across). IVS separates LV from RV — abnormal septal motion suggests pressure or volume overload of the RV." },
    ],
    takeaway: "Identify all 4 chambers, 4 valves, great vessels, and pericardium from the esophageal perspective. The LA is always at the top of the screen.",
    quiz: [
      { q: "What structure is at the top of the screen on TEE?", opts: ["Right ventricle", "Left atrium", "Aortic root", "Right atrium"], ans: 1, exp: "The left atrium is directly anterior to the esophagus, making it the closest structure to the probe. On TEE, near-field structures appear at the top of the screen." },
      { q: "The 'Mercedes-Benz sign' refers to which structure?", opts: ["Mitral valve", "Aortic valve", "Tricuspid valve", "Pulmonic valve"], ans: 1, exp: "In short-axis (ME AV SAX at ~30°), the three aortic valve cusps form a Y-pattern resembling the Mercedes-Benz logo when the valve is closed." },
      { q: "Which valve is the hardest to image on TEE?", opts: ["Mitral", "Aortic", "Tricuspid", "Pulmonic"], ans: 3, exp: "The pulmonic valve is the most anterior cardiac structure, making it the farthest from the esophageal probe and therefore the most difficult to image clearly." },
      { q: "How does the tricuspid valve annulus differ from the mitral?", opts: ["It's more superiorly displaced", "It's more apically displaced", "It has 2 leaflets", "It's calcified more often"], ans: 1, exp: "The tricuspid annulus inserts slightly more toward the apex than the mitral annulus. This apical offset is a reliable landmark for distinguishing the two AV valves." },
      { q: "What does a pericardial effusion look like on echo?", opts: ["Bright white collection", "Echo-free dark space between pericardium and myocardium", "Thickened pericardial line", "Calcified ring"], ans: 1, exp: "Fluid in the pericardial space appears as an echo-free (dark/black) collection between the bright pericardial line and the myocardial surface." },
    ]
  },
  { id: 6, title: "Basic 4 View Exam", time: "12–15 min", summary: "ME 4-chamber, ME LAX, ME bi-caval, TG mid short",
    sections: [
      { type: "view", viewNum: 1, title: "ME 4-Chamber", deg: "0–20°", depth: "~30–35 cm", structures: "All 4 chambers, MV, TV, IAS, IVS", assessing: "Biventricular function, effusion, valve pathology" },
      { type: "view", viewNum: 2, title: "ME Long Axis", deg: "120–160°", depth: "Same depth", structures: "LVOT, AV, MV, proximal ascending aorta", assessing: "LVOT/AV pathology, aortic root, MR" },
      { type: "view", viewNum: 3, title: "ME Bi-caval", deg: "80–110°", depth: "Turn rightward", structures: "SVC, IVC, RA, IAS", assessing: "Volume status, RA pathology, IAS defects" },
      { type: "view", viewNum: 4, title: "TG Mid Short", deg: "0°", depth: "~40–45 cm, anteflex", structures: "LV SAX at papillary muscle level", assessing: "Wall motion, LV function, regional ischemia" },
      { type: "highlight", title: "Why These 4 Views", body: "These four views provide a rapid comprehensive assessment: biventricular function, volume status, pericardial effusion, and major valve pathology. In cardiac arrest, they answer the critical questions within minutes." },
    ],
    takeaway: "Recite all 4 basic views with their omniplane angles and key structures. Know which clinical question each view answers.",
    quiz: [
      { q: "What omniplane angle is used for the ME 4-chamber view?", opts: ["0–20°", "30–60°", "80–110°", "120–160°"], ans: 0, exp: "The ME 4-chamber view uses 0–20° (near-transverse plane) at mid-esophageal depth to display all four chambers simultaneously." },
      { q: "Which view best assesses volume status via the IVC?", opts: ["ME 4-Chamber", "ME Long Axis", "ME Bi-caval", "TG Mid Short"], ans: 2, exp: "The ME Bi-caval view (80–110°, turn rightward) displays both the SVC and IVC entering the right atrium, allowing assessment of IVC size and volume status." },
      { q: "How is the TG Mid Short axis view obtained?", opts: ["Withdraw to upper esophagus at 90°", "Advance to stomach, anteflex at 0°", "Stay at ME depth, rotate to 45°", "Retroflex at mid-esophageal level"], ans: 1, exp: "Advance the probe into the stomach (~40–45 cm), then anteflex the tip upward to point at the heart. At 0° omniplane, this produces a short-axis view of the LV." },
      { q: "Which view shows the aortic valve and LVOT?", opts: ["ME 4-Chamber", "ME Long Axis", "ME Bi-caval", "TG Mid Short"], ans: 1, exp: "The ME Long Axis view (120–160°) displays the LVOT, aortic valve, and proximal ascending aorta in a sagittal plane — ideal for assessing aortic valve pathology." },
    ]
  },
  { id: 7, title: "Aortic Sweep Maneuver", time: "15–20 min", summary: "Views 5–12: systematic thoracic aorta evaluation",
    sections: [
      { type: "highlight", title: "The Aortic Sweep", body: "The aortic sweep is a systematic scan through Views 5–12 that evaluates the entire thoracic aorta. It is what separates the RESCUE TEE exam from a basic 4-view assessment. Master this sequence and you can evaluate for dissection, aneurysm, and aortic pathology." },
      { type: "view", viewNum: 5, title: "Desc Aorta SAX", deg: "0°", depth: "ME, rotate leftward", structures: "Descending aorta cross-section", assessing: "Dissection flap, aneurysm, atheroma" },
      { type: "view", viewNum: 6, title: "Upper Aorta LAX", deg: "0°", depth: "Withdraw to upper esophagus", structures: "Aortic arch long axis", assessing: "Arch pathology, coarctation" },
      { type: "view", viewNum: 7, title: "ME Asc Aorta SAX", deg: "0°", depth: "Return to ME", structures: "Ascending aorta cross-section", assessing: "Asc aorta dilation, dissection" },
      { type: "view", viewNum: 8, title: "ME AV SAX", deg: "30°", depth: "ME depth", structures: "AV en face, Mercedes-Benz sign", assessing: "AV morphology, bicuspid, vegetations" },
      { type: "view", viewNum: 9, title: "ME RV Inflow-Outflow", deg: "60–70°", depth: "ME depth", structures: "TV inflow + PV outflow wrap-around", assessing: "TV/PV pathology, RV function" },
      { type: "view", viewNum: 10, title: "Asc Aorta LAX", deg: "90°", depth: "ME depth", structures: "Ascending aorta + proximal arch long axis", assessing: "Asc aorta aneurysm, dissection" },
      { type: "view", viewNum: 11, title: "Arch SAX", deg: "90°", depth: "Withdraw slightly", structures: "Aortic arch cross-section", assessing: "Arch pathology" },
      { type: "view", viewNum: 12, title: "Desc Aorta LAX", deg: "90°", depth: "ME, rotate leftward", structures: "Descending aorta long axis", assessing: "Completes the sweep, desc aorta pathology" },
      { type: "callout", title: "Protocol Reference", body: "The RESCUE TEE protocol card shows all 12 views with probe positions. Download and keep accessible during the course for quick reference." },
    ],
    takeaway: "Perform the aortic sweep systematically through Views 5–12, evaluating the entire thoracic aorta in both short-axis and long-axis planes.",
    quiz: [
      { q: "The aortic sweep begins with which view?", opts: ["View 1 ME 4-Chamber", "View 5 Desc Aorta SAX", "View 8 ME AV SAX", "View 10 Asc Aorta LAX"], ans: 1, exp: "The sweep starts with View 5 — the descending aorta in short axis. From there, the sequence systematically traces the aorta through all 8 sweep views." },
      { q: "The Mercedes-Benz sign is seen in which sweep view?", opts: ["View 5", "View 7", "View 8", "View 10"], ans: 2, exp: "View 8 (ME AV SAX at 30°) shows the aortic valve en face — the three cusps create the classic Mercedes-Benz or Y-pattern when closed." },
      { q: "How many of the aortic sweep views use 90° omniplane?", opts: ["One", "Two", "Three", "Four"], ans: 2, exp: "Views 10 (Asc Aorta LAX), 11 (Arch SAX), and 12 (Desc Aorta LAX) all use 90° omniplane — they provide sagittal/long-axis imaging of the aorta." },
      { q: "View 9 (ME RV Inflow-Outflow) shows which structures?", opts: ["Only the tricuspid valve", "Only the pulmonic valve", "Both tricuspid inflow and pulmonic outflow", "The mitral and aortic valves"], ans: 2, exp: "This unique wrap-around view at 60–70° captures both the tricuspid valve with RV inflow and the pulmonic valve with RV outflow in a single image." },
      { q: "The aortic sweep completes with which view?", opts: ["View 8 ME AV SAX", "View 10 Asc Aorta LAX", "View 11 Arch SAX", "View 12 Desc Aorta LAX"], ans: 3, exp: "View 12 (Desc Aorta LAX at 90°, rotate leftward) is the final view — it brings you back to the descending aorta in long axis, completing the full circle of the sweep." },
    ]
  }
];

const PreCourseModules = ({ onBack, completedModules, setCompletedModules }) => {
  const [activeModule, setActiveModule] = useState(null);
  const [quizMode, setQuizMode] = useState(false);
  const [quizQ, setQuizQ] = useState(0);
  const [quizAnswers, setQuizAnswers] = useState({});
  const [selectedOpt, setSelectedOpt] = useState(null);
  const [showResult, setShowResult] = useState(false);
  const [quizDone, setQuizDone] = useState(false);

  const completed = completedModules || [];
  const mod = activeModule !== null ? MODULE_DATA[activeModule] : null;

  const startQuiz = () => { setQuizMode(true); setQuizQ(0); setQuizAnswers({}); setSelectedOpt(null); setShowResult(false); setQuizDone(false); };
  const answerQ = (idx) => { if (showResult) return; setSelectedOpt(idx); setShowResult(true); setQuizAnswers(p => ({ ...p, [quizQ]: idx })); };
  const nextQ = () => { if (quizQ < mod.quiz.length - 1) { setQuizQ(q => q + 1); setSelectedOpt(null); setShowResult(false); } else { setQuizDone(true); } };
  const completeModule = () => { if (!completed.includes(mod.id)) setCompletedModules([...completed, mod.id]); setActiveModule(null); setQuizMode(false); };

  // --- SCREEN 1: Module List ---
  if (activeModule === null) {
    return (
      <>
        <LogoMark />
        <div style={S.pageTitle}><h2 style={S.h2}>Pre-Course Modules</h2><p style={S.subtitle}>Complete before course day · 7 modules · ~90 min</p></div>
        <div style={S.content}>
          <button onClick={onBack} style={{ background: "none", border: "none", fontSize: 13, color: "#185FA5", cursor: "pointer", padding: 0, marginBottom: 14, fontWeight: 500 }}>← Back</button>
          <div style={{ background: "#fff", borderRadius: 12, border: "0.5px solid #b8d4dc", padding: 14, marginBottom: 14 }}>
            <div style={{ display: "flex", justifyContent: "space-between", alignItems: "center" }}>
              <div style={{ fontSize: 14, fontWeight: 500 }}>Progress</div>
              <div style={{ fontSize: 13, fontWeight: 500, color: "#185FA5" }}>{completed.length} / 7</div>
            </div>
            <div style={{ height: 6, background: "#e0ecf0", borderRadius: 3, marginTop: 8, overflow: "hidden" }}>
              <div style={{ height: "100%", width: `${(completed.length / 7) * 100}%`, background: "#63cae2", borderRadius: 3 }} />
            </div>
          </div>
          {MODULE_DATA.map((m, i) => {
            const done = completed.includes(m.id);
            return (
              <div key={m.id} onClick={() => { setActiveModule(i); setQuizMode(false); }} style={{ display: "flex", alignItems: "center", gap: 12, background: "#fff", borderRadius: 14, border: "0.5px solid #b8d4dc", padding: 14, marginBottom: 8, cursor: "pointer" }}>
                <div style={{ width: 32, height: 32, borderRadius: "50%", display: "flex", alignItems: "center", justifyContent: "center", fontSize: 13, fontWeight: 500, flexShrink: 0, background: done ? "#eaf3de" : "#daf0f8", color: done ? "#3B6D11" : "#185FA5" }}>{done ? "✓" : m.id}</div>
                <div style={{ flex: 1 }}>
                  <div style={{ fontSize: 14, fontWeight: 500 }}>{m.title}</div>
                  <div style={{ fontSize: 11, color: "#6a8a98", marginTop: 2 }}>{m.time} · {m.summary}</div>
                </div>
                <div style={{ color: "#b8d4dc", fontSize: 16 }}>›</div>
              </div>
            );
          })}
        </div>
      </>
    );
  }

  // --- SCREEN 3: Knowledge Check ---
  if (quizMode) {
    if (quizDone) {
      const score = mod.quiz.reduce((s, q, i) => s + (quizAnswers[i] === q.ans ? 1 : 0), 0);
      const pct = score / mod.quiz.length;
      const msg = pct >= 0.8 ? "Great work!" : pct >= 0.6 ? "Good effort!" : "Keep reviewing!";
      return (
        <>
          <LogoMark />
          <div style={S.pageTitle}><h2 style={S.h2}>Knowledge Check</h2><p style={S.subtitle}>Module {mod.id}: {mod.title}</p></div>
          <div style={S.content}>
            <div style={{ background: "#fff", borderRadius: 14, border: "0.5px solid #b8d4dc", padding: 24, textAlign: "center", marginBottom: 14 }}>
              <div style={{ width: 80, height: 80, borderRadius: "50%", border: `4px solid ${pct >= 0.8 ? "#3B6D11" : pct >= 0.6 ? "#854F0B" : "#943030"}`, display: "inline-flex", alignItems: "center", justifyContent: "center", fontSize: 24, fontWeight: 500, color: pct >= 0.8 ? "#3B6D11" : pct >= 0.6 ? "#854F0B" : "#943030" }}>
                {score}/{mod.quiz.length}
              </div>
              <div style={{ fontSize: 18, fontWeight: 500, marginTop: 12 }}>{msg}</div>
            </div>
            <button style={{ ...S.btn, background: "#0F6E56" }} onClick={completeModule}>Complete Module ✓</button>
            <button style={{ ...S.btnSec, marginTop: 8 }} onClick={() => { setQuizMode(false); }}>Review Module Content</button>
          </div>
        </>
      );
    }

    const q = mod.quiz[quizQ];
    const isCorrect = selectedOpt === q.ans;
    return (
      <>
        <LogoMark />
        <div style={S.pageTitle}><h2 style={S.h2}>Knowledge Check</h2><p style={S.subtitle}>Module {mod.id} · {quizQ + 1} / {mod.quiz.length}</p></div>
        <div style={S.content}>
          <button onClick={() => setQuizMode(false)} style={{ background: "none", border: "none", fontSize: 13, color: "#185FA5", cursor: "pointer", padding: 0, marginBottom: 14, fontWeight: 500 }}>← Back to module</button>
          <div style={{ display: "flex", gap: 3, marginBottom: 14 }}>
            {mod.quiz.map((_, i) => (
              <div key={i} style={{ flex: 1, height: 4, borderRadius: 2, background: i < quizQ ? "#63cae2" : i === quizQ ? "#213e7a" : "#e0ecf0" }} />
            ))}
          </div>
          <div style={{ background: "#fff", borderRadius: 14, border: "0.5px solid #b8d4dc", padding: 16, marginBottom: 12 }}>
            <div style={{ fontSize: 14, fontWeight: 500, lineHeight: 1.5, marginBottom: 14 }}>{q.q}</div>
            {q.opts.map((o, i) => {
              const letter = String.fromCharCode(65 + i);
              let bg = "#fff", border = "0.5px solid #b8d4dc", color = "#011F27";
              if (showResult && i === q.ans) { bg = "#eaf3de"; border = "1.5px solid #3B6D11"; color = "#3B6D11"; }
              else if (showResult && i === selectedOpt && !isCorrect) { bg = "#fdf0f0"; border = "1.5px solid #943030"; color = "#943030"; }
              else if (!showResult && selectedOpt === i) { bg = "#daf0f8"; border = "1.5px solid #185FA5"; }
              return (
                <div key={i} onClick={() => answerQ(i)} style={{ display: "flex", alignItems: "center", gap: 10, padding: "10px 12px", borderRadius: 10, border, background: bg, marginBottom: 6, cursor: showResult ? "default" : "pointer" }}>
                  <div style={{ width: 24, height: 24, borderRadius: "50%", border: `1.5px solid ${showResult && i === q.ans ? "#3B6D11" : showResult && i === selectedOpt && !isCorrect ? "#943030" : "#b8d4dc"}`, display: "flex", alignItems: "center", justifyContent: "center", fontSize: 11, fontWeight: 500, color, flexShrink: 0 }}>{showResult && i === q.ans ? "✓" : showResult && i === selectedOpt && !isCorrect ? "✗" : letter}</div>
                  <div style={{ fontSize: 13, color, lineHeight: 1.4 }}>{o}</div>
                </div>
              );
            })}
          </div>
          {showResult && (
            <div style={{ background: "#fff", borderRadius: 12, borderLeft: `3px solid ${isCorrect ? "#3B6D11" : "#943030"}`, padding: "12px 14px", marginBottom: 12 }}>
              <div style={{ fontSize: 12, fontWeight: 500, color: isCorrect ? "#3B6D11" : "#943030", marginBottom: 4 }}>{isCorrect ? "Correct!" : "Not quite"}</div>
              <div style={{ fontSize: 12, color: "#2a4a58", lineHeight: 1.5 }}>{q.exp}</div>
            </div>
          )}
          {showResult && (
            <button style={S.btn} onClick={nextQ}>{quizQ < mod.quiz.length - 1 ? "Next Question →" : "See Results"}</button>
          )}
        </div>
      </>
    );
  }

  // --- SCREEN 2: Module Detail ---
  return (
    <>
      <LogoMark />
      <div style={S.content}>
        <button onClick={() => setActiveModule(null)} style={{ background: "none", border: "none", fontSize: 13, color: "#185FA5", cursor: "pointer", padding: 0, marginBottom: 14, fontWeight: 500 }}>← Modules</button>
        <div style={{ background: "#fff", borderRadius: 14, border: "0.5px solid #b8d4dc", borderLeft: "4px solid #63cae2", padding: 16, marginBottom: 14 }}>
          <div style={{ fontSize: 10, fontWeight: 500, color: "#6a8a98", textTransform: "uppercase", letterSpacing: "0.06em" }}>Module {mod.id}</div>
          <div style={{ fontSize: 17, fontWeight: 500, marginTop: 4 }}>{mod.title}</div>
          <div style={{ fontSize: 12, color: "#4a6a78", marginTop: 4 }}>{mod.time}</div>
        </div>

        {mod.videoSrc ? (
          <div style={{ marginBottom: 16, borderRadius: 12, overflow: "hidden", border: "1px solid rgba(99,202,226,0.2)" }}>
            <iframe
              src={mod.videoSrc}
              style={{ width: "100%", height: 520, border: "none", borderRadius: 12 }}
              title={mod.title + " Video"}
              allow="autoplay"
            />
          </div>
        ) : (
          <div style={{ background: "linear-gradient(135deg, #1a2a3a 0%, #213e5a 100%)", borderRadius: 14, padding: 24, textAlign: "center", marginBottom: 14 }}>
            <div style={{ width: 48, height: 48, borderRadius: "50%", border: "2px solid #63cae2", display: "inline-flex", alignItems: "center", justifyContent: "center", marginBottom: 8 }}>
              <div style={{ width: 0, height: 0, borderLeft: "14px solid #63cae2", borderTop: "8px solid transparent", borderBottom: "8px solid transparent", marginLeft: 4 }} />
            </div>
            <div style={{ fontSize: 13, color: "#e0ecf0" }}>Narrated overview · {mod.time}</div>
            <div style={{ fontSize: 11, color: "#8aa8b8", marginTop: 4 }}>Real ultrasound clips · tap to play</div>
          </div>
        )}

        <div style={{ fontSize: 10, fontWeight: 500, color: "#6a8a98", textTransform: "uppercase", letterSpacing: "0.06em", margin: "16px 0 8px" }}>Key Concepts</div>

        {mod.sections.map((sec, i) => {
          if (sec.group) {
            return (
              <div key={`g${i}`}>
                <div style={{ fontSize: 11, fontWeight: 500, color: "#213e7a", textTransform: "uppercase", letterSpacing: "0.04em", margin: "14px 0 6px" }}>{sec.group}</div>
                {renderSection(sec, i)}
              </div>
            );
          }
          return renderSection(sec, i);
        })}

        <div style={{ background: "linear-gradient(135deg, #daf0f8 0%, #e8dff0 100%)", borderRadius: 14, border: "1px solid #63cae2", padding: 16, marginTop: 14, marginBottom: 14 }}>
          <div style={{ fontSize: 10, fontWeight: 500, color: "#185FA5", textTransform: "uppercase", letterSpacing: "0.06em", marginBottom: 6 }}>Key Takeaway</div>
          <div style={{ fontSize: 13, fontWeight: 500, color: "#011F27", lineHeight: 1.5 }}>{mod.takeaway}</div>
        </div>

        <button style={S.btn} onClick={startQuiz}>Start Knowledge Check ({mod.quiz.length} questions)</button>
      </div>
    </>
  );
};

function renderSection(sec, i) {
  if (sec.type === "view") {
    return (
      <div key={i} style={{ background: "#fff", borderRadius: 14, border: "0.5px solid #b8d4dc", padding: 14, marginBottom: 8 }}>
        <div style={{ display: "flex", gap: 10, alignItems: "flex-start" }}>
          <div style={{ width: 44, height: 44, borderRadius: 10, background: "#daf0f8", border: "1px solid #a8d8e8", display: "flex", alignItems: "center", justifyContent: "center", fontSize: 14, fontWeight: 500, color: "#185FA5", flexShrink: 0 }}>V{sec.viewNum}</div>
          <div style={{ width: 64, height: 48, borderRadius: 6, background: "linear-gradient(135deg, #1a2a3a, #2a4a5a)", display: "flex", alignItems: "center", justifyContent: "center", flexShrink: 0 }}>
            <div style={{ width: 0, height: 0, borderLeft: "8px solid #63cae2", borderTop: "5px solid transparent", borderBottom: "5px solid transparent" }} />
          </div>
          <div style={{ flex: 1 }}>
            <div style={{ fontSize: 14, fontWeight: 500 }}>View {sec.viewNum}: {sec.title}</div>
            <span style={{ display: "inline-block", fontSize: 9, fontWeight: 500, padding: "2px 8px", borderRadius: 6, background: "#daf0f8", color: "#185FA5", marginTop: 4 }}>{sec.deg}</span>
            <div style={{ fontSize: 11, color: "#6a8a98", marginTop: 2 }}>{sec.depth}</div>
          </div>
        </div>
        <div style={{ fontSize: 12, color: "#2a4a58", marginTop: 10, lineHeight: 1.5 }}>
          <span style={{ fontSize: 10, fontWeight: 500, color: "#185FA5" }}>Structures: </span>{sec.structures}
        </div>
        <div style={{ fontSize: 12, color: "#2a4a58", marginTop: 4, lineHeight: 1.5 }}>
          <span style={{ fontSize: 10, fontWeight: 500, color: "#aa95c7" }}>Assessing: </span>{sec.assessing}
        </div>
      </div>
    );
  }

  const styles = {
    standard: { bg: "#fff", border: "0.5px solid #b8d4dc", titleColor: "#213e7a" },
    highlight: { bg: "#daf0f8", border: "1px solid #a8d8e8", titleColor: "#185FA5" },
    warning: { bg: "#fdf0f0", border: "1px solid #e8a0a0", titleColor: "#943030" },
    caution: { bg: "#FAEEDA", border: "1px solid #e8c870", titleColor: "#854F0B" },
    callout: { bg: "#fff", border: "none", titleColor: "#185FA5", borderLeft: "3px solid #63cae2" },
  };
  const st = styles[sec.type] || styles.standard;

  return (
    <div key={i} style={{ background: st.bg, borderRadius: st.borderLeft ? "0 14px 14px 0" : 14, border: st.border, borderLeft: st.borderLeft || st.border, padding: 14, marginBottom: 8 }}>
      <div style={{ fontSize: 13, fontWeight: 500, color: st.titleColor, marginBottom: 6 }}>{sec.title}</div>
      <div style={{ fontSize: 12, color: "#2a4a58", lineHeight: 1.6 }}>{sec.body}</div>
    </div>
  );
}

// --- MODULE LIST SCREEN ---
const PreCourseList = ({ completedModules, onSelectModule, onBack }) => {
  return (
    <>
      <LogoMark />
      <div style={S.pageTitle}><h2 style={S.h2}>Pre-Course Modules</h2><p style={S.subtitle}>Complete before course day · 7 modules · ~90 min</p></div>
      <div style={S.content}>
        <button onClick={onBack} style={{ background: "none", border: "none", fontSize: 13, color: "#185FA5", cursor: "pointer", padding: 0, marginBottom: 14, fontWeight: 500 }}>← Back</button>
        <div style={{ background: "#fff", borderRadius: 12, border: "0.5px solid #b8d4dc", padding: 14, marginBottom: 14 }}>
          <div style={{ display: "flex", justifyContent: "space-between", alignItems: "center" }}>
            <div style={{ fontSize: 15, fontWeight: 500 }}>Progress</div>
            <div style={{ fontSize: 14, fontWeight: 500, color: "#185FA5" }}>{completedModules.length} / 7</div>
          </div>
          <div style={{ height: 4, background: "#e0ecf0", borderRadius: 2, marginTop: 8, overflow: "hidden" }}>
            <div style={{ height: "100%", width: `${(completedModules.length / 7) * 100}%`, background: "#63cae2", borderRadius: 2 }} />
          </div>
        </div>
        {MODULE_DATA.map(m => {
          const done = completedModules.includes(m.id);
          return (
            <div key={m.id} onClick={() => onSelectModule(m.id)} style={{ display: "flex", alignItems: "center", gap: 12, background: "#fff", borderRadius: 14, border: "0.5px solid #b8d4dc", padding: "14px 16px", marginBottom: 8, cursor: "pointer" }}>
              <div style={{ width: 32, height: 32, borderRadius: "50%", display: "flex", alignItems: "center", justifyContent: "center", fontSize: 13, fontWeight: 500, flexShrink: 0, background: done ? "#eaf3de" : "#daf0f8", color: done ? "#3B6D11" : "#185FA5" }}>
                {done ? "✓" : m.id}
              </div>
              <div style={{ flex: 1 }}>
                <div style={{ fontSize: 14, fontWeight: 500, color: "#011F27" }}>{m.title}</div>
                <div style={{ fontSize: 11, color: "#6a8a98", marginTop: 2 }}>{m.time} · {m.summary}</div>
              </div>
              <div style={{ color: "#b8d4dc", fontSize: 16, flexShrink: 0 }}>›</div>
            </div>
          );
        })}
      </div>
    </>
  );
};

// --- MODULE DETAIL SCREEN ---
const ModuleDetail = ({ moduleId, onStartQuiz, onBack }) => {
  const mod = MODULE_DATA.find(m => m.id === moduleId);
  if (!mod) return null;
  let currentGroup = null;

  return (
    <>
      <LogoMark />
      <div style={S.content}>
        <button onClick={onBack} style={{ background: "none", border: "none", fontSize: 13, color: "#185FA5", cursor: "pointer", padding: 0, marginBottom: 10, fontWeight: 500 }}>← Modules</button>
        <div style={{ background: "#fff", borderRadius: 14, borderLeft: "4px solid #63cae2", borderTop: "0.5px solid #b8d4dc", borderRight: "0.5px solid #b8d4dc", borderBottom: "0.5px solid #b8d4dc", padding: "16px 16px", marginBottom: 14 }}>
          <div style={{ fontSize: 10, fontWeight: 500, color: "#6a8a98", textTransform: "uppercase", letterSpacing: "0.06em" }}>Module {mod.id}</div>
          <div style={{ fontSize: 17, fontWeight: 500, color: "#011F27", marginTop: 2 }}>{mod.title}</div>
          <div style={{ fontSize: 12, color: "#4a6a78", marginTop: 4 }}>{mod.time} · {mod.quizCount} quiz questions</div>
        </div>

        <div style={{ background: "linear-gradient(135deg, #1a2d40, #213e7a)", borderRadius: 14, padding: "28px 16px", marginBottom: 14, textAlign: "center" }}>
          <div style={{ width: 48, height: 48, borderRadius: "50%", border: "2px solid #63cae2", display: "inline-flex", alignItems: "center", justifyContent: "center", fontSize: 18, color: "#63cae2" }}>▶</div>
          <div style={{ fontSize: 12, color: "#a0c4d8", marginTop: 8 }}>Narrated overview · {mod.time}</div>
          <div style={{ fontSize: 10, color: "#6a8a98", marginTop: 4 }}>Real ultrasound clips · tap to play</div>
        </div>

        <div style={{ fontSize: 10, fontWeight: 500, color: "#6a8a98", textTransform: "uppercase", letterSpacing: "0.06em", margin: "16px 0 8px" }}>Key Concepts</div>

        {mod.sections.map((sec, i) => {
          const groupHeader = sec.group && sec.group !== currentGroup ? sec.group : null;
          if (sec.group) currentGroup = sec.group;

          const cardStyle = {
            standard: { background: "#fff", border: "0.5px solid #b8d4dc" },
            highlight: { background: "#daf0f8", border: "1px solid #a8d8e8" },
            warning: { background: "#fdf0f0", border: "1px solid #e8a0a0" },
            caution: { background: "#FAEEDA", border: "1px solid #e8c870" },
            callout: { background: "#fff", border: "none", borderLeft: "3px solid #63cae2", borderRadius: "0 14px 14px 0" },
            view: { background: "#fff", border: "0.5px solid #b8d4dc" },
          }[sec.type] || { background: "#fff", border: "0.5px solid #b8d4dc" };

          const titleColor = sec.type === "warning" ? "#943030" : sec.type === "caution" ? "#854F0B" : "#011F27";

          return (
            <div key={i}>
              {groupHeader && <div style={{ fontSize: 11, fontWeight: 500, color: "#213e7a", textTransform: "uppercase", letterSpacing: "0.04em", margin: "14px 0 6px" }}>{groupHeader}</div>}
              <div style={{ ...cardStyle, borderRadius: cardStyle.borderRadius || 14, padding: "14px 16px", marginBottom: 8 }}>
                {sec.type === "view" ? (
                  <>
                    <div style={{ display: "flex", gap: 10, alignItems: "flex-start" }}>
                      <div style={{ width: 44, height: 44, borderRadius: 10, background: "#daf0f8", border: "1px solid #a8d8e8", display: "flex", alignItems: "center", justifyContent: "center", fontSize: 14, fontWeight: 500, color: "#185FA5", flexShrink: 0 }}>{sec.viewNum}</div>
                      <div style={{ width: 64, height: 48, borderRadius: 6, background: "linear-gradient(135deg, #1a2d40, #2a4a68)", display: "flex", alignItems: "center", justifyContent: "center", flexShrink: 0 }}>
                        <div style={{ width: 16, height: 16, borderRadius: "50%", border: "1px solid #63cae2", display: "flex", alignItems: "center", justifyContent: "center", fontSize: 6, color: "#63cae2" }}>▶</div>
                      </div>
                      <div style={{ flex: 1 }}>
                        <div style={{ fontSize: 14, fontWeight: 500, color: "#011F27" }}>View {sec.viewNum}: {sec.title}</div>
                        <span style={{ display: "inline-block", fontSize: 9, fontWeight: 500, padding: "2px 8px", borderRadius: 6, background: "#daf0f8", color: "#185FA5", marginTop: 4 }}>{sec.deg}</span>
                        <div style={{ fontSize: 11, color: "#6a8a98", marginTop: 2 }}>{sec.depth}</div>
                      </div>
                    </div>
                    <div style={{ fontSize: 11, color: "#2a4a58", marginTop: 8, lineHeight: 1.5 }}>
                      <span style={{ fontSize: 10, fontWeight: 500, color: "#185FA5" }}>Structures: </span>{sec.structures}
                    </div>
                    <div style={{ fontSize: 11, color: "#2a4a58", marginTop: 4, lineHeight: 1.5 }}>
                      <span style={{ fontSize: 10, fontWeight: 500, color: "#aa95c7" }}>Assessing: </span>{sec.assessing}
                    </div>
                  </>
                ) : (
                  <>
                    <div style={{ fontSize: 14, fontWeight: 500, color: titleColor, marginBottom: 6 }}>{sec.title}</div>
                    <div style={{ fontSize: 12, color: "#2a4a58", lineHeight: 1.6, whiteSpace: "pre-line" }}>{sec.body}</div>
                  </>
                )}
              </div>
            </div>
          );
        })}

        <div style={{ background: "linear-gradient(135deg, #daf0f8, #e8daf5)", borderRadius: 14, border: "1px solid #a8d8e8", padding: 16, marginTop: 12, marginBottom: 12 }}>
          <div style={{ fontSize: 10, fontWeight: 500, color: "#185FA5", textTransform: "uppercase", letterSpacing: "0.06em", marginBottom: 6 }}>Key Takeaway</div>
          <div style={{ fontSize: 13, fontWeight: 500, color: "#011F27", lineHeight: 1.5 }}>{mod.takeaway}</div>
        </div>

        <button style={S.btn} onClick={onStartQuiz}>Start Knowledge Check ({mod.quizCount} questions)</button>
      </div>
    </>
  );
};

// --- KNOWLEDGE CHECK QUIZ ---
const ModuleQuiz = ({ moduleId, onComplete, onBackToModule }) => {
  const mod = MODULE_DATA.find(m => m.id === moduleId);
  const [qIdx, setQIdx] = useState(0);
  const [selected, setSelected] = useState(null);
  const [answered, setAnswered] = useState(false);
  const [score, setScore] = useState(0);
  const [finished, setFinished] = useState(false);

  if (!mod) return null;
  const quiz = mod.quiz;
  const q = quiz[qIdx];

  const handleSelect = (optIdx) => {
    if (answered) return;
    setSelected(optIdx);
    setAnswered(true);
    if (optIdx === q.ans) setScore(s => s + 1);
  };

  const handleNext = () => {
    if (qIdx < quiz.length - 1) {
      setQIdx(i => i + 1);
      setSelected(null);
      setAnswered(false);
    } else {
      setFinished(true);
    }
  };

  if (finished) {
    const pct = (score / quiz.length) * 100;
    const msg = pct >= 80 ? "Great work!" : pct >= 60 ? "Good effort!" : "Keep reviewing!";
    return (
      <>
        <LogoMark />
        <div style={S.pageTitle}><h2 style={S.h2}>Knowledge Check Results</h2><p style={S.subtitle}>Module {mod.id}: {mod.title}</p></div>
        <div style={S.content}>
          <div style={{ background: "#fff", borderRadius: 14, border: "0.5px solid #b8d4dc", padding: 24, textAlign: "center", marginBottom: 14 }}>
            <div style={{ width: 80, height: 80, borderRadius: "50%", border: `4px solid ${pct >= 80 ? "#3B6D11" : pct >= 60 ? "#854F0B" : "#943030"}`, display: "inline-flex", alignItems: "center", justifyContent: "center", fontSize: 28, fontWeight: 500, color: pct >= 80 ? "#3B6D11" : pct >= 60 ? "#854F0B" : "#943030" }}>
              {score}/{quiz.length}
            </div>
            <div style={{ fontSize: 18, fontWeight: 500, marginTop: 12, color: "#011F27" }}>{msg}</div>
            <div style={{ fontSize: 12, color: "#6a8a98", marginTop: 4 }}>{Math.round(pct)}% correct</div>
          </div>
          <button style={{ ...S.btn, background: "#0F6E56" }} onClick={() => onComplete(mod.id)}>Complete Module ✓</button>
          <button style={{ ...S.btnSec, marginTop: 8 }} onClick={onBackToModule}>Review Module Content</button>
        </div>
      </>
    );
  }

  const letters = ["A", "B", "C", "D"];

  return (
    <>
      <LogoMark />
      <div style={S.content}>
        <button onClick={onBackToModule} style={{ background: "none", border: "none", fontSize: 13, color: "#185FA5", cursor: "pointer", padding: 0, marginBottom: 10, fontWeight: 500 }}>← Back to module</button>
        <div style={{ fontSize: 10, fontWeight: 500, color: "#6a8a98", textTransform: "uppercase", letterSpacing: "0.06em" }}>Module {mod.id} · Question {qIdx + 1} / {quiz.length}</div>
        <div style={{ display: "flex", gap: 3, margin: "8px 0 14px" }}>
          {quiz.map((_, i) => (
            <div key={i} style={{ flex: 1, height: 4, borderRadius: 2, background: i < qIdx ? "#63cae2" : i === qIdx ? "#213e7a" : "#e0ecf0" }} />
          ))}
        </div>
        <div style={{ background: "#fff", borderRadius: 14, border: "0.5px solid #b8d4dc", padding: 16, marginBottom: 12 }}>
          <div style={{ fontSize: 14, fontWeight: 500, color: "#011F27", lineHeight: 1.5, marginBottom: 14 }}>{q.q}</div>
          {q.opts.map((opt, oi) => {
            const isCorrect = oi === q.ans;
            const isSelected = oi === selected;
            let bg = "#fff", border = "0.5px solid #b8d4dc", color = "#011F27", circBg = "#f0f5f7", circColor = "#6a8a98";
            if (answered) {
              if (isCorrect) { bg = "#eaf3de"; border = "1px solid #97C459"; color = "#3B6D11"; circBg = "#3B6D11"; circColor = "#fff"; }
              else if (isSelected && !isCorrect) { bg = "#fdf0f0"; border = "1px solid #e8a0a0"; color = "#943030"; circBg = "#943030"; circColor = "#fff"; }
            }
            return (
              <div key={oi} onClick={() => handleSelect(oi)} style={{ display: "flex", alignItems: "center", gap: 10, padding: "10px 12px", borderRadius: 10, background: bg, border, marginBottom: 6, cursor: answered ? "default" : "pointer" }}>
                <div style={{ width: 26, height: 26, borderRadius: "50%", background: circBg, color: circColor, display: "flex", alignItems: "center", justifyContent: "center", fontSize: 12, fontWeight: 500, flexShrink: 0 }}>
                  {answered && isCorrect ? "✓" : answered && isSelected && !isCorrect ? "✗" : letters[oi]}
                </div>
                <div style={{ fontSize: 13, color, lineHeight: 1.4 }}>{opt}</div>
              </div>
            );
          })}
        </div>
        {answered && (
          <div style={{ borderLeft: `3px solid ${selected === q.ans ? "#3B6D11" : "#943030"}`, background: selected === q.ans ? "#f0faf4" : "#fdf0f0", borderRadius: "0 10px 10px 0", padding: "10px 14px", marginBottom: 12 }}>
            <div style={{ fontSize: 12, color: "#2a4a58", lineHeight: 1.5 }}>{q.explain}</div>
          </div>
        )}
        {answered && (
          <button style={S.btn} onClick={handleNext}>
            {qIdx < quiz.length - 1 ? "Next Question →" : "See Results"}
          </button>
        )}
      </div>
    </>
  );
};

// --- PRECOURSE CONTROLLER ---
const PreCourseController = ({ completedModules, setCompletedModules, onBack }) => {
  const [selectedModule, setSelectedModule] = useState(null);
  const [inQuiz, setInQuiz] = useState(false);

  const handleComplete = (modId) => {
    if (!completedModules.includes(modId)) {
      setCompletedModules(prev => [...prev, modId]);
    }
    setInQuiz(false);
    setSelectedModule(null);
  };

  if (selectedModule && inQuiz) {
    return <ModuleQuiz moduleId={selectedModule} onComplete={handleComplete} onBackToModule={() => setInQuiz(false)} />;
  }
  if (selectedModule) {
    return <ModuleDetail moduleId={selectedModule} onStartQuiz={() => setInQuiz(true)} onBack={() => setSelectedModule(null)} />;
  }
  return <PreCourseList completedModules={completedModules} onSelectModule={setSelectedModule} onBack={onBack} />;
};


// ============================================================
// LEARNER COURSE HOME
// ============================================================
const LearnerHome = ({ user, schedule, exams, notification, onDismissNotif, onTab }) => {
  const [, setTick] = useState(0);
  useEffect(() => { const iv = setInterval(() => setTick(t => t + 1), 1000); return () => clearInterval(iv); }, []);

  const current = schedule.find(b => {
    const s = parseTime(b.start), e = parseTime(b.end), n = nowMins();
    return n >= s && n < e;
  });
  const currentIdx = schedule.indexOf(current);
  const next = schedule.find((b, i) => i > currentIdx && (b.type === "station" || b.type === "lecture"));
  const curStation = getStationForGroup(current, user.group);
  const nxtStation = getStationForGroup(next, user.group);

  const totalExams = Object.values(exams[user.id] || {}).reduce((a, b) => a + b, 0);

  if (notification?.type === "break") {
    const remaining = getTimeRemaining(notification.endTime);
    return (
      <>
        <LogoMark />
        <div style={S.pageTitle}><h2 style={S.h2}>Course day</h2><p style={S.subtitle}>March 29, 2026</p></div>
        <div style={S.content}>
          <div style={S.userBar}>
            <div><div style={{ fontSize: 14, fontWeight: 500 }}>{user.first} {user.last}, {user.title}</div><div style={{ fontSize: 11, color: "#4a6a78" }}>{user.level} · {user.institution}</div></div>
            <div style={S.groupPill}>Group {user.group}</div>
          </div>
          <div style={{ ...S.nowCard, borderLeftColor: "#D4537E" }}>
            <div style={{ fontSize: 16, fontWeight: 500, marginBottom: 2 }}>Break time</div>
            <div style={{ fontSize: 11, color: "#6a8a98", textTransform: "uppercase", letterSpacing: "0.06em", marginBottom: 8 }}>Time remaining</div>
            <div style={{ fontSize: 40, fontWeight: 500, color: "#993556", fontFamily: "monospace", lineHeight: 1 }}>{fmtTimer(remaining)}</div>
            <div style={{ fontSize: 12, color: "#4a6a78", marginTop: 10 }}>Sent by {notification.from}</div>
          </div>
          {next && (
            <div style={S.nextCard}>
              <span style={{ ...S.tag, background: "#eaf3de", color: "#3B6D11" }}>Up next — Station {next.station}</span>
              <div style={{ fontSize: 14, fontWeight: 500, marginTop: 4 }}>{next.title}</div>
              <div style={{ fontSize: 12, color: "#4a6a78" }}>{next.views?.length} views · {next.reps} reps each</div>
              <div style={{ fontSize: 11, color: "#6a8a98", marginTop: 4 }}>Proctor: {next.proctor}</div>
            </div>
          )}
        </div>
      </>
    );
  }

  if (notification?.type === "rotate") {
    return (
      <>
        <LogoMark />
        <div style={S.pageTitle}><h2 style={S.h2}>Course day</h2><p style={S.subtitle}>March 29, 2026</p></div>
        <div style={S.content}>
          <div style={S.userBar}>
            <div><div style={{ fontSize: 14, fontWeight: 500 }}>{user.first} {user.last}, {user.title}</div><div style={{ fontSize: 11, color: "#4a6a78" }}>{user.level} · {user.institution}</div></div>
            <div style={S.groupPill}>Group {user.group}</div>
          </div>
          <div style={{ background: "#fff", borderRadius: 14, border: "0.5px solid #b8d4dc", borderLeft: "4px solid #63cae2", padding: "18px 16px", marginBottom: 12, textAlign: "center" }}>
            <div style={{ fontSize: 16, fontWeight: 500, marginBottom: 8 }}>Rotate to next station</div>
            <div style={{ fontSize: 13, color: "#6a8a98", padding: 8, background: "#f5f8fa", borderRadius: 8 }}>{notification.from}</div>
            <div style={{ fontSize: 20, color: "#63cae2", margin: "8px 0" }}>↓</div>
            <div style={{ padding: 12, background: "#daf0f8", borderRadius: 10, border: "1px solid #a8d8e8" }}>
              <div style={{ fontSize: 16, fontWeight: 500, color: "#185FA5" }}>{notification.to}</div>
              <div style={{ fontSize: 12, color: "#3a6a88", marginTop: 4 }}>{notification.detail}</div>
            </div>
            <button style={{ ...S.btn, marginTop: 14 }} onClick={onDismissNotif}>Go to Station {notification.toStation}</button>
          </div>
        </div>
      </>
    );
  }

  return (
    <>
      <LogoMark />
      <div style={S.pageTitle}><h2 style={S.h2}>Course day</h2><p style={S.subtitle}>March 29, 2026</p></div>
      <div style={S.content}>
        <div style={S.userBar}>
          <div><div style={{ fontSize: 14, fontWeight: 500 }}>{user.first} {user.last}, {user.title}</div><div style={{ fontSize: 11, color: "#4a6a78" }}>{user.level} · {user.institution}</div></div>
          <div style={S.groupPill}>Group {user.group}</div>
        </div>

        {current ? (
          <div style={{ ...S.nowCard, borderLeftColor: current.type === "station" ? "#63cae2" : "#EF9F27" }}>
            <span style={{ ...S.tag, background: current.type === "station" ? "#daf0f8" : "#FAEEDA", color: current.type === "station" ? "#185FA5" : "#854F0B" }}>
              Now — {current.type === "station" ? `Station ${current.station}` : current.location || "Main room"}
            </span>
            <div style={{ fontSize: 16, fontWeight: 500, marginTop: 4, marginBottom: 3 }}>{current.title}</div>
            {current.views && <div style={{ fontSize: 12, color: "#4a6a78" }}>Views {current.views[0]}–{current.views[current.views.length-1]} · {current.reps} reps each</div>}
            {current.proctor && <div style={{ fontSize: 11, color: "#6a8a98", marginTop: 4 }}>Proctor: {current.proctor}</div>}
            <div style={{ fontSize: 10, color: "#6a8a98", textTransform: "uppercase", letterSpacing: "0.06em", marginTop: 12 }}>Time remaining</div>
            <div style={{ fontSize: 38, fontWeight: 500, color: current.type === "station" ? "#213e7a" : "#854F0B", fontFamily: "monospace", lineHeight: 1, marginTop: 4 }}>
              {fmtTimer(getTimeRemaining(current.end))}
            </div>
            {current.type === "station" && <ParticipantSegments startTime={current.start} />}
          </div>
        ) : (
          <div style={{ ...S.card, textAlign: "center" }}>
            <div style={{ fontSize: 14, color: "#6a8a98" }}>No active block right now</div>
            <div style={{ fontSize: 12, color: "#8aa0a8", marginTop: 4 }}>Check the full schedule for upcoming sessions</div>
          </div>
        )}

        {next && (
          <div style={S.nextCard}>
            <span style={{ ...S.tag, background: "#eaf3de", color: "#3B6D11" }}>
              {next.type === "station" ? `Next — Station ${next.station}` : "Up next"}
            </span>
            <div style={{ fontSize: 14, fontWeight: 500, marginTop: 4 }}>{next.title}</div>
            {next.views && <div style={{ fontSize: 12, color: "#4a6a78" }}>{next.views.length} views · {next.reps} reps each</div>}
            {next.proctor && <div style={{ fontSize: 11, color: "#6a8a98", marginTop: 4 }}>Proctor: {next.proctor}</div>}
          </div>
        )}

        <button style={{ ...S.card, display: "flex", alignItems: "center", justifyContent: "space-between", width: "100%", textAlign: "left", border: "1px solid #b8d4dc" }} onClick={() => onTab("Exam tracker")}>
          <span style={{ fontWeight: 500, fontSize: 14 }}>Exams completed</span>
          <span style={{ color: "#6a8a98" }}>›</span>
        </button>
      </div>
    </>
  );
};

// ============================================================
// EXAM TRACKER
// ============================================================
const ExamTracker = ({ user, exams }) => {
  const userExams = exams[user.id] || {};
  const total = Object.values(userExams).reduce((a, b) => a + b, 0);
  const max = VIEWS.length * 20;
  return (
    <>
      <LogoMark />
      <div style={S.pageTitle}><h2 style={S.h2}>Exam tracker</h2><p style={S.subtitle}>20 validated attempts per view</p></div>
      <div style={S.content}>
        <div style={{ background: "#fff", borderRadius: 12, border: "0.5px solid #b8d4dc", padding: 14, marginBottom: 12 }}>
          <div style={{ display: "flex", justifyContent: "space-between", alignItems: "center" }}>
            <div style={{ fontSize: 15, fontWeight: 500 }}>Overall progress</div>
            <div style={{ fontSize: 14, fontWeight: 500, color: "#185FA5" }}>{total} / {max}</div>
          </div>
          <div style={{ height: 4, background: "#e0ecf0", borderRadius: 2, marginTop: 8, overflow: "hidden" }}>
            <div style={{ height: "100%", width: `${(total / max) * 100}%`, background: "#63cae2", borderRadius: 2 }} />
          </div>
        </div>
        {VIEWS.map(v => {
          const count = userExams[v.id] || 0;
          return (
            <div key={v.id} style={{ display: "flex", alignItems: "flex-start", gap: 8, padding: "10px 12px", background: "#fff", borderRadius: 10, border: "0.5px solid #b8d4dc", marginBottom: 6 }}>
              <div style={{ width: 20, fontSize: 12, fontWeight: 500, color: "#185FA5", textAlign: "center", flexShrink: 0, paddingTop: 2 }}>{v.id}</div>
              <ViewIcon viewId={v.id} size={32} />
              <div style={{ flex: 1, minWidth: 0 }}>
                <div style={{ fontSize: 12, fontWeight: 500 }}>{v.name}</div>
                <div style={{ fontSize: 10, color: "#6a8a98" }}>{v.deg}</div>
                <div style={{ display: "flex", gap: 2, flexWrap: "wrap", marginTop: 4 }}>
                  {Array.from({ length: 20 }).map((_, j) => (
                    <div key={j} style={{
                      width: 9, height: 14, borderRadius: 2,
                      border: `0.5px solid ${j < count ? "#97C459" : "#d4e4ea"}`,
                      background: j < count ? "#eaf3de" : "#f5f8fa",
                      display: "flex", alignItems: "center", justifyContent: "center",
                      fontSize: 7, color: "#3B6D11"
                    }}>{j < count ? "✓" : ""}</div>
                  ))}
                </div>
              </div>
            </div>
          );
        })}
        <div style={{ background: "#fff", borderRadius: 12, border: "0.5px solid #b8d4dc", padding: 16, marginTop: 12, textAlign: "center" }}>
          <div style={{ fontSize: 28, fontWeight: 500, color: "#213e7a" }}>{total}</div>
          <div style={{ fontSize: 12, color: "#6a8a98", marginTop: 2 }}>Total exams completed</div>
        </div>
      </div>
    </>
  );
};

// ============================================================
// FULL SCHEDULE
// ============================================================
const FullSchedule = ({ schedule, exams, userId, onBlockDetail }) => {
  const tagColors = { station: { bg: "#daf0f8", color: "#185FA5", label: "Station" }, lecture: { bg: "#FAEEDA", color: "#854F0B", label: "Lecture" }, break: { bg: "#FBEAF0", color: "#993556", label: "Break" }, assessment: { bg: "#EEEDFE", color: "#534AB7", label: "Assessment" } };
  return (
    <>
      <LogoMark />
      <div style={S.pageTitle}><h2 style={S.h2}>Full schedule</h2><p style={S.subtitle}>Tap a block for details</p></div>
      <div style={S.content}>
        {schedule.map(b => {
          const tc = tagColors[b.type];
          const n = nowMins(); const isActive = n >= parseTime(b.start) && n < parseTime(b.end);
          const isDone = n >= parseTime(b.end);
          const blockExams = 0; // Exams tracked globally, not per block
          return (
            <div key={b.id} style={{ ...S.card, borderLeft: isActive ? "4px solid #63cae2" : undefined, borderRadius: isActive ? "0 14px 14px 0" : 14 }} onClick={() => b.type === "station" && onBlockDetail(b)}>
              <div style={{ fontSize: 10, fontWeight: 500, color: "#6a8a98", marginBottom: 4 }}>
                <span style={{ ...S.tag, background: tc.bg, color: tc.color, marginRight: 4 }}>{b.type === "station" ? `Station block` : tc.label}</span>
                {b.start} – {b.end}
              </div>
              <div style={{ fontSize: 14, fontWeight: 500, marginBottom: 2 }}>{b.title}</div>
              {b.views && <div style={{ fontSize: 12, color: "#4a6a78" }}>Views {b.views[0]}–{b.views[b.views.length-1]} · {b.reps} reps each</div>}
              {b.type === "station" && isDone && <div style={{ fontSize: 11, fontWeight: 500, color: "#3B6D11", marginTop: 5 }}>{blockExams} completions recorded</div>}
              {isActive && <div style={{ fontSize: 11, fontWeight: 500, color: "#185FA5", marginTop: 5 }}>In progress</div>}
            </div>
          );
        })}
      </div>
    </>
  );
};

// ============================================================
// BLOCK DETAIL
// ============================================================
const BlockDetail = ({ block, exams, userId, onBack }) => {
  const userExams = exams[userId] || {};
  const total = block.views.reduce((sum, vid) => sum + (userExams[vid] || 0), 0);
  return (
    <>
      <LogoMark />
      <div style={S.pageTitle}><h2 style={S.h2}>{block.title}</h2><p style={S.subtitle}>Station {block.station} · {block.start} – {block.end}</p></div>
      <div style={S.content}>
        <button onClick={onBack} style={{ background: "none", border: "none", fontSize: 13, color: "#185FA5", cursor: "pointer", padding: 0, marginBottom: 14, fontWeight: 500 }}>← Back to schedule</button>
        <div style={{ background: "#fff", borderRadius: 12, border: "0.5px solid #b8d4dc", padding: 14, marginBottom: 12, textAlign: "center" }}>
          <div style={{ fontSize: 16, fontWeight: 500 }}>Completions in this block</div>
          <div style={{ fontSize: 20, fontWeight: 500, color: "#185FA5", marginTop: 8 }}>{total}</div>
          <div style={{ fontSize: 11, color: "#6a8a98" }}>validated attempts</div>
        </div>
        {block.views.map(vid => {
          const v = VIEWS.find(vw => vw.id === vid);
          const count = userExams[vid] || 0;
          return (
            <div key={vid} style={{ display: "flex", alignItems: "center", gap: 8, padding: "10px 12px", background: "#fff", borderRadius: 10, border: "0.5px solid #b8d4dc", marginBottom: 6 }}>
              <div style={{ width: 20, fontSize: 12, fontWeight: 500, color: "#185FA5", textAlign: "center" }}>{v.id}</div>
              <ViewIcon viewId={v.id} />
              <div style={{ flex: 1 }}><div style={{ fontSize: 13, fontWeight: 500 }}>{v.name}</div><div style={{ fontSize: 11, color: "#6a8a98" }}>{v.deg}</div></div>
              <div style={{ fontSize: 18, fontWeight: 500, color: count > 0 ? "#3B6D11" : "#b8d4dc" }}>{count}</div>
            </div>
          );
        })}
        <div style={{ fontSize: 11, color: "#6a8a98", textAlign: "center", marginTop: 10 }}>Validated by {block.proctor}</div>
      </div>
    </>
  );
};

// ============================================================
// PROCTOR DASHBOARD
// ============================================================
const ProctorDashboard = ({ user, schedule, exams, allUsers, onValidate, signOutStation, currentStation }) => {
  const [tab, setTab] = useState("my");
  const [search, setSearch] = useState("");
  const [selected, setSelected] = useState(null);
  const [, setTick] = useState(0);
  useEffect(() => { const iv = setInterval(() => setTick(t => t + 1), 1000); return () => clearInterval(iv); }, []);

  const current = schedule.find(b => {
    const s = parseTime(b.start), e = parseTime(b.end), n = nowMins();
    return n >= s && n < e && b.type === "station";
  });

  const myLearners = allUsers.filter(u => u.role === "learner" && u.group === 2);
  const otherLearners = allUsers.filter(u => u.role === "learner" && u.group !== 2).filter(u =>
    !search || `${u.first} ${u.last}`.toLowerCase().includes(search.toLowerCase())
  );

  return (
    <>
      <LogoMark />
      <div style={S.pageTitle}><h2 style={S.h2}>Proctor dashboard</h2><p style={S.subtitle}>{user.first} {user.last} · Station {currentStation || user.station || "—"}</p></div>
      <div style={S.content}>
        <span style={S.badge("#FAEEDA", "#854F0B")}>Proctor</span>

        {(currentStation || user.station) && signOutStation && (
          <div style={{ background: "#fff", borderRadius: 14, border: "2px solid #63cae2", padding: 16, textAlign: "center", marginTop: 10, marginBottom: 10 }}>
            <div style={{ fontSize: 11, color: "#6a8a98", textTransform: "uppercase", letterSpacing: "0.06em", marginBottom: 4 }}>Signed in to</div>
            <div style={{ fontSize: 28, fontWeight: 500, color: "#213e7a" }}>Station {currentStation || user.station}</div>
            <button onClick={signOutStation} style={{ marginTop: 10, padding: "8px 20px", borderRadius: 10, border: "1px solid #e8a0a0", background: "#fff", color: "#943030", fontWeight: 500, fontSize: 12, cursor: "pointer" }}>Sign out of station</button>
          </div>
        )}

        {current && (
          <div style={{ ...S.nowCard, marginTop: 10 }}>
            <span style={{ ...S.tag, background: "#daf0f8", color: "#185FA5" }}>Now — Station {current.station}</span>
            <div style={{ fontSize: 15, fontWeight: 500, marginTop: 4, marginBottom: 3 }}>{current.title}</div>
            <div style={{ fontSize: 12, color: "#4a6a78" }}>{current.views?.length} views · {current.reps} reps each</div>
            <div style={{ fontSize: 10, color: "#6a8a98", textTransform: "uppercase", letterSpacing: "0.06em", marginTop: 12 }}>Time remaining</div>
            <div style={{ fontSize: 30, fontWeight: 500, color: "#213e7a", fontFamily: "monospace", lineHeight: 1, marginTop: 4 }}>{fmtTimer(getTimeRemaining(current.end))}</div>
            <ParticipantSegments startTime={current.start} />
          </div>
        )}

        <div style={{ display: "flex", background: "#fff", borderRadius: 10, border: "0.5px solid #b8d4dc", overflow: "hidden", marginBottom: 10 }}>
          <button onClick={() => setTab("my")} style={{ flex: 1, padding: "10px 0", textAlign: "center", fontSize: 12, fontWeight: 500, border: "none", cursor: "pointer", background: tab === "my" ? "#daf0f8" : "#fff", color: tab === "my" ? "#185FA5" : "#6a8a98" }}>My learners (3)</button>
          <button onClick={() => setTab("other")} style={{ flex: 1, padding: "10px 0", textAlign: "center", fontSize: 12, fontWeight: 500, border: "none", cursor: "pointer", background: tab === "other" ? "#daf0f8" : "#fff", color: tab === "other" ? "#185FA5" : "#6a8a98" }}>Other</button>
        </div>

        {tab === "my" && (
          <>
            <div style={{ fontSize: 12, color: "#4a6a78", textAlign: "center", marginBottom: 10, fontStyle: "italic" }}>Select who is being examined</div>
            {myLearners.map(l => {
              const count = Object.values(exams[l.id] || {}).reduce((a, b) => a + b, 0);
              const isSel = selected === l.id;
              return (
                <div key={l.id} onClick={() => setSelected(l.id)} style={{ display: "flex", alignItems: "center", gap: 10, background: "#fff", borderRadius: 12, border: isSel ? "2px solid #63cae2" : "0.5px solid #b8d4dc", padding: "12px 14px", marginBottom: 8, cursor: "pointer" }}>
                  <div><div style={{ fontSize: 14, fontWeight: 500 }}>{l.first} {l.last}</div><div style={{ fontSize: 11, color: "#4a6a78" }}>{l.level} · Group {l.group}</div>{isSel && <div style={{ fontSize: 9, fontWeight: 500, color: "#185FA5", background: "#daf0f8", padding: "2px 6px", borderRadius: 4, marginTop: 3, display: "inline-block" }}>Examining now</div>}</div>
                  <div style={{ marginLeft: "auto", textAlign: "right" }}><div style={{ fontSize: 16, fontWeight: 500, color: "#185FA5" }}>{count}</div><div style={{ fontSize: 9, color: "#6a8a98" }}>of 240 exams</div></div>
                </div>
              );
            })}
            {selected && <button style={{ ...S.btn, marginTop: 4 }} onClick={() => onValidate(allUsers.find(u => u.id === selected))}>Validate exams for {allUsers.find(u => u.id === selected)?.first}</button>}
          </>
        )}

        {tab === "other" && (
          <>
            <input style={{ ...S.input, marginBottom: 10 }} placeholder="Search all participants..." value={search} onChange={e => setSearch(e.target.value)} />
            <div style={{ fontSize: 11, color: "#6a8a98", marginBottom: 10 }}>All participants · real-time exam counts</div>
            {otherLearners.map(l => {
              const count = Object.values(exams[l.id] || {}).reduce((a, b) => a + b, 0);
              return (
                <div key={l.id} onClick={() => onValidate(l)} style={{ display: "flex", alignItems: "center", gap: 10, background: "#fff", borderRadius: 10, border: "0.5px solid #b8d4dc", padding: "10px 12px", marginBottom: 6, cursor: "pointer" }}>
                  <div><div style={{ fontSize: 13, fontWeight: 500 }}>{l.first} {l.last}</div><div style={{ fontSize: 11, color: "#6a8a98" }}>{l.level} · Station {l.station || "—"}</div></div>
                  <div style={{ marginLeft: "auto", textAlign: "right" }}><div style={{ fontSize: 14, fontWeight: 500, color: "#185FA5" }}>{count}</div><div style={{ fontSize: 11, color: "#6a8a98" }}>Group {l.group}</div></div>
                </div>
              );
            })}
          </>
        )}
      </div>
    </>
  );
};

// ============================================================
// PROCTOR VALIDATION
// ============================================================
const ProctorValidation = ({ learner, schedule, exams, setExams, onBack }) => {
  const current = schedule.find(b => {
    const s = parseTime(b.start), e = parseTime(b.end), n = nowMins();
    return n >= s && n < e && b.type === "station";
  });
  const viewIds = current?.views || [1, 2, 3, 4];
  const [counts, setCounts] = useState(() => {
    const c = {};
    viewIds.forEach(vid => { c[vid] = (exams[learner.id] || {})[vid] || 0; });
    return c;
  });
  const [saved, setSaved] = useState(false);

  const adj = (vid, delta) => {
    setCounts(prev => ({ ...prev, [vid]: Math.max(0, Math.min(20, (prev[vid] || 0) + delta)) }));
    setSaved(false);
  };

  const save = () => {
    const updated = { ...exams };
    if (!updated[learner.id]) updated[learner.id] = {};
    Object.entries(counts).forEach(([vid, count]) => { updated[learner.id][Number(vid)] = count; });
    setExams(updated);
    setSaved(true);
    setTimeout(() => setSaved(false), 2000);
  };

  const globalTotal = Object.values(exams[learner.id] || {}).reduce((a, b) => a + b, 0);
  const blockTotal = Object.values(counts).reduce((a, b) => a + b, 0);

  return (
    <>
      <LogoMark />
      <div style={S.pageTitle}><h2 style={S.h2}>Validate exams</h2><p style={S.subtitle}>{current?.title || "Block"}</p></div>
      <div style={S.content}>
        <button onClick={onBack} style={{ background: "none", border: "none", fontSize: 13, color: "#185FA5", cursor: "pointer", padding: 0, marginBottom: 14, fontWeight: 500 }}>← Back to dashboard</button>
        <div style={{ background: "#fff", borderRadius: 12, border: "0.5px solid #b8d4dc", padding: 14, marginBottom: 12, textAlign: "center" }}>
          <div style={{ fontSize: 16, fontWeight: 500 }}>{learner.first} {learner.last}, {learner.title}</div>
          <div style={{ fontSize: 12, color: "#4a6a78" }}>{learner.level} · Group {learner.group}</div>
          <div style={{ display: "flex", gap: 16, justifyContent: "center", marginTop: 10, paddingTop: 10, borderTop: "0.5px solid #e0ecf0" }}>
            <div><div style={{ fontSize: 22, fontWeight: 500, color: "#213e7a" }}>{globalTotal}</div><div style={{ fontSize: 9, color: "#6a8a98" }}>Total exams</div></div>
            <div><div style={{ fontSize: 22, fontWeight: 500, color: "#63cae2" }}>{blockTotal}</div><div style={{ fontSize: 9, color: "#6a8a98" }}>This block</div></div>
            <div><div style={{ fontSize: 22, fontWeight: 500, color: "#6a8a98" }}>240</div><div style={{ fontSize: 9, color: "#6a8a98" }}>Goal</div></div>
          </div>
        </div>
        {viewIds.map(vid => {
          const v = VIEWS.find(vw => vw.id === vid);
          return (
            <div key={vid} style={{ display: "flex", alignItems: "center", gap: 8, padding: 12, background: "#fff", borderRadius: 10, border: "0.5px solid #b8d4dc", marginBottom: 6 }}>
              <div style={{ width: 20, fontSize: 12, fontWeight: 500, color: "#185FA5", textAlign: "center" }}>{v.id}</div>
              <ViewIcon viewId={v.id} />
              <div style={{ flex: 1 }}><div style={{ fontSize: 13, fontWeight: 500 }}>{v.name}</div><div style={{ fontSize: 11, color: "#6a8a98" }}>{v.deg}</div></div>
              <div style={{ display: "flex", alignItems: "center", gap: 8 }}>
                <button onClick={() => adj(vid, -1)} style={{ width: 32, height: 32, borderRadius: "50%", border: "1px solid #b8d4dc", background: "#fff", cursor: "pointer", fontSize: 16, display: "flex", alignItems: "center", justifyContent: "center" }}>−</button>
                <div style={{ fontSize: 20, fontWeight: 500, minWidth: 24, textAlign: "center", color: "#213e7a" }}>{counts[vid] || 0}</div>
                <button onClick={() => adj(vid, 1)} style={{ width: 32, height: 32, borderRadius: "50%", border: "1px solid #b8d4dc", background: "#fff", cursor: "pointer", fontSize: 16, display: "flex", alignItems: "center", justifyContent: "center" }}>+</button>
              </div>
            </div>
          );
        })}
        <button style={{ ...S.btn, marginTop: 12, background: saved ? "#27500A" : "#213e7a" }} onClick={save}>{saved ? "Saved ✓" : "Save completions"}</button>
        <div style={{ fontSize: 11, color: "#6a8a98", textAlign: "center", marginTop: 8 }}>Syncs to learner's exam tracker</div>
      </div>
    </>
  );
};

// ============================================================
// PROCTOR NOTIFICATIONS
// ============================================================
const ProctorNotifications = ({ onSendNotif }) => {
  const [custom, setCustom] = useState("");
  const [log, setLog] = useState([
    { msg: "5 minutes remaining", time: "9:25 AM" },
    { msg: "Rotate to next station", time: "9:30 AM" },
  ]);

  const send = (msg) => {
    const now = new Date();
    const time = now.toLocaleTimeString("en-US", { hour: "numeric", minute: "2-digit" });
    setLog(prev => [{ msg, time }, ...prev]);
    onSendNotif(msg);
  };

  const presets = [
    { icon: "5", msg: "5 minutes remaining" },
    { icon: "↻", msg: "Rotate to next station" },
    { icon: "⌂", msg: "Return to main room" },
    { icon: "☕", msg: "Break time — 15 minutes" },
    { icon: "✎", msg: "Assessment starting soon" },
  ];

  return (
    <>
      <LogoMark />
      <div style={S.pageTitle}><h2 style={S.h2}>Notifications</h2><p style={S.subtitle}>Send to all learner devices</p></div>
      <div style={S.content}>
        <span style={S.badge("#FAEEDA", "#854F0B")}>Proctor</span>
        <div style={S.sectionLabel}>Quick send presets</div>
        {presets.map(p => (
          <div key={p.msg} onClick={() => send(p.msg)} style={{ display: "flex", alignItems: "center", gap: 10, background: "#fff", borderRadius: 10, border: "0.5px solid #b8d4dc", padding: "12px 14px", marginBottom: 6, cursor: "pointer" }}>
            <div style={{ width: 28, height: 28, borderRadius: "50%", background: "#daf0f8", display: "flex", alignItems: "center", justifyContent: "center", fontSize: 12, color: "#185FA5" }}>{p.icon}</div>
            <div style={{ flex: 1, fontSize: 13 }}>{p.msg}</div>
            <div style={{ fontSize: 11, fontWeight: 500, color: "#185FA5" }}>Send</div>
          </div>
        ))}
        <div style={S.sectionLabel}>Custom message</div>
        <textarea style={{ ...S.input, minHeight: 60, resize: "vertical", fontFamily: "inherit" }} value={custom} onChange={e => setCustom(e.target.value)} placeholder="Type a message to all learners..." />
        <button style={{ ...S.btn, marginTop: 8 }} onClick={() => { if (custom.trim()) { send(custom.trim()); setCustom(""); } }}>Send custom message</button>
        <div style={S.sectionLabel}>Sent today</div>
        {log.map((item, i) => (
          <div key={i} style={{ display: "flex", alignItems: "center", gap: 8, padding: "8px 12px", background: "#f0faf4", borderRadius: 8, border: "0.5px solid #c0dd97", marginBottom: 6 }}>
            <div style={{ width: 18, height: 18, borderRadius: "50%", background: "#eaf3de", display: "flex", alignItems: "center", justifyContent: "center", fontSize: 9, color: "#3B6D11" }}>✓</div>
            <div style={{ flex: 1, fontSize: 12, color: "#3B6D11" }}>{item.msg}</div>
            <div style={{ fontSize: 10, color: "#6a8a98" }}>{item.time}</div>
          </div>
        ))}
      </div>
    </>
  );
};

// ============================================================
// ADMIN SCHEDULE BUILDER
// ============================================================
const AdminPanel = ({ schedule, setSchedule }) => {
  const [editing, setEditing] = useState(null);
  const typeOptions = ["station", "lecture", "break", "assessment"];

  const addBlock = () => {
    const newBlock = { id: `new_${Date.now()}`, type: "station", title: "New block", station: "", views: [], reps: 3, proctor: "", start: "12:00", end: "12:30" };
    setSchedule(prev => [...prev, newBlock]);
    setEditing(newBlock.id);
  };

  const updateBlock = (id, field, value) => {
    setSchedule(prev => prev.map(b => b.id === id ? { ...b, [field]: value } : b));
  };

  const removeBlock = (id) => {
    setSchedule(prev => prev.filter(b => b.id !== id));
    setEditing(null);
  };

  return (
    <>
      <LogoMark />
      <div style={S.pageTitle}><h2 style={S.h2}>Admin panel</h2><p style={S.subtitle}>Course director schedule builder</p></div>
      <div style={S.content}>
        <span style={S.badge("#EEEDFE", "#534AB7")}>Course Director</span>
        <div style={S.sectionLabel}>Schedule ({schedule.length} items)</div>

        {schedule.map(b => (
          <div key={b.id} style={{ background: "#fff", borderRadius: 12, border: editing === b.id ? "2px solid #63cae2" : "0.5px solid #b8d4dc", padding: 14, marginBottom: 8 }}>
            {editing === b.id ? (
              <>
                <div style={S.field}>
                  <label style={S.label}>Type</label>
                  <select style={S.input} value={b.type} onChange={e => updateBlock(b.id, "type", e.target.value)}>
                    {typeOptions.map(t => <option key={t} value={t}>{t}</option>)}
                  </select>
                </div>
                <div style={S.field}><label style={S.label}>Title</label><input style={S.input} value={b.title} onChange={e => updateBlock(b.id, "title", e.target.value)} /></div>
                <div style={{ display: "flex", gap: 8 }}>
                  <div style={{ ...S.field, flex: 1 }}><label style={S.label}>Start</label><input style={S.input} value={b.start} onChange={e => updateBlock(b.id, "start", e.target.value)} placeholder="08:00" /></div>
                  <div style={{ ...S.field, flex: 1 }}><label style={S.label}>End</label><input style={S.input} value={b.end} onChange={e => updateBlock(b.id, "end", e.target.value)} placeholder="08:30" /></div>
                </div>
                {b.type === "station" && (
                  <>
                    <div style={{ display: "flex", gap: 8 }}>
                      <div style={{ ...S.field, flex: 1 }}><label style={S.label}>Station (A–E)</label><input style={S.input} value={b.station || ""} onChange={e => updateBlock(b.id, "station", e.target.value)} /></div>
                      <div style={{ ...S.field, flex: 1 }}><label style={S.label}>Reps</label><input style={S.input} type="number" value={b.reps || 3} onChange={e => updateBlock(b.id, "reps", Number(e.target.value))} /></div>
                    </div>
                    <div style={S.field}><label style={S.label}>Proctor</label><input style={S.input} value={b.proctor || ""} onChange={e => updateBlock(b.id, "proctor", e.target.value)} /></div>
                    <div style={S.field}>
                      <label style={S.label}>Views (comma-separated IDs, 1–12)</label>
                      <input style={S.input} value={(b.views || []).join(",")} onChange={e => updateBlock(b.id, "views", e.target.value.split(",").map(Number).filter(n => n >= 1 && n <= 12))} />
                    </div>
                  </>
                )}
                {b.type === "lecture" && (
                  <div style={S.field}><label style={S.label}>Location</label><input style={S.input} value={b.location || ""} onChange={e => updateBlock(b.id, "location", e.target.value)} /></div>
                )}
                <div style={{ display: "flex", gap: 8, marginTop: 8 }}>
                  <button style={{ ...S.btn, flex: 1 }} onClick={() => setEditing(null)}>Done</button>
                  <button style={{ ...S.btnSec, flex: 1, color: "#943030", borderColor: "#e8a0a0" }} onClick={() => removeBlock(b.id)}>Remove</button>
                </div>
              </>
            ) : (
              <div onClick={() => setEditing(b.id)} style={{ cursor: "pointer" }}>
                <div style={{ fontSize: 10, color: "#6a8a98", marginBottom: 4 }}>
                  <span style={{ ...S.tag, background: b.type === "station" ? "#daf0f8" : b.type === "lecture" ? "#FAEEDA" : b.type === "break" ? "#FBEAF0" : "#EEEDFE", color: b.type === "station" ? "#185FA5" : b.type === "lecture" ? "#854F0B" : b.type === "break" ? "#993556" : "#534AB7", marginRight: 4 }}>
                    {b.groups ? "Station" : b.type}
                  </span>
                  {b.start} – {b.end}
                </div>
                <div style={{ fontSize: 14, fontWeight: 500 }}>{b.title}</div>
                {b.groups && <div style={{ fontSize: 11, color: "#6a8a98" }}>Groups: {(b.groups || []).join(", ")}</div>}
              </div>
            )}
          </div>
        ))}

        <button style={{ ...S.btnSec, marginTop: 8 }} onClick={addBlock}>+ Add block</button>
      </div>
    </>
  );
};

// ============================================================
// MAIN APP
// ============================================================

// --- ADMIN PRE-COURSE PROGRESS ---
const AdminPreCourseProgress = ({ users, precourseData }) => {
  const [expanded, setExpanded] = useState(null);
  const learners = users.filter(u => u.role === "learner");
  const moduleNames = ["Probe Orientation", "TEE Safety", "Esoph. Anatomy", "TEE Intubation", "Cardiac Anatomy", "Basic 4 Views", "Aortic Sweep"];
  const moduleQCounts = [5, 4, 4, 3, 5, 4, 5];
  
  const getData = (id) => precourseData[id] || { completed: [], scores: {} };
  const totalComplete = learners.filter(l => getData(l.id).completed.length === 7).length;
  const totalStarted = learners.filter(l => getData(l.id).completed.length > 0).length;
  const totalNotStarted = learners.filter(l => getData(l.id).completed.length === 0).length;
  const avgCompleted = learners.length > 0 ? (learners.reduce((s, l) => s + getData(l.id).completed.length, 0) / learners.length).toFixed(1) : 0;

  const getAvgScore = (id) => {
    const d = getData(id);
    const entries = Object.values(d.scores);
    if (entries.length === 0) return null;
    const total = entries.reduce((s, [c, t]) => s + c, 0);
    const possible = entries.reduce((s, [c, t]) => s + t, 0);
    return possible > 0 ? Math.round((total / possible) * 100) : null;
  };

  return (
    <>
      <LogoMark />
      <div style={S.pageTitle}><h2 style={S.h2}>Pre-course progress</h2><p style={S.subtitle}>Learner module completion & quiz scores</p></div>
      <div style={S.content}>
        <span style={S.badge("#EEEDFE", "#534AB7")}>Course Director</span>
        <div style={{ display: "flex", background: "#fff", borderRadius: 10, border: "0.5px solid #b8d4dc", overflow: "hidden", margin: "10px 0" }}>
          {["Schedule", "Participants", "Proctors", "Pre-course"].map(t => (
            <button key={t} style={{ flex: 1, padding: "10px 0", textAlign: "center", fontSize: 10, fontWeight: 500, border: "none", cursor: "pointer", background: t === "Pre-course" ? "#daf0f8" : "#fff", color: t === "Pre-course" ? "#185FA5" : "#6a8a98" }}>{t}</button>
          ))}
        </div>

        <div style={{ display: "flex", gap: 8, marginBottom: 12 }}>
          {[
            [totalComplete, "All done", "#3B6D11"],
            [totalStarted, "Started", "#185FA5"],
            [totalNotStarted, "Not started", "#943030"],
            [avgCompleted, "Avg modules", "#213e7a"],
          ].map(([n, label, color]) => (
            <div key={label} style={{ flex: 1, background: "#fff", borderRadius: 10, border: "0.5px solid #b8d4dc", padding: 12, textAlign: "center" }}>
              <div style={{ fontSize: 22, fontWeight: 500, color }}>{n}</div>
              <div style={{ fontSize: 9, color: "#6a8a98" }}>{label}</div>
            </div>
          ))}
        </div>

        {learners.sort((a, b) => getData(b.id).completed.length - getData(a.id).completed.length).map(l => {
          const d = getData(l.id);
          const completed = d.completed;
          const pct = (completed.length / 7) * 100;
          const allDone = completed.length === 7;
          const none = completed.length === 0;
          const avgScore = getAvgScore(l.id);
          const isExpanded = expanded === l.id;
          return (
            <div key={l.id} onClick={() => setExpanded(isExpanded ? null : l.id)} style={{ background: "#fff", borderRadius: 12, border: isExpanded ? "1.5px solid #63cae2" : "0.5px solid #b8d4dc", padding: "12px 14px", marginBottom: 8, cursor: "pointer" }}>
              <div style={{ display: "flex", alignItems: "center", justifyContent: "space-between", marginBottom: 6 }}>
                <div>
                  <div style={{ fontSize: 14, fontWeight: 500 }}>{l.first} {l.last}</div>
                  <div style={{ fontSize: 11, color: "#4a6a78" }}>{l.level} · Group {l.group}</div>
                </div>
                <div style={{ textAlign: "right" }}>
                  <div style={{ display: "flex", alignItems: "center", gap: 8 }}>
                    {avgScore !== null && (
                      <div style={{ fontSize: 14, fontWeight: 500, color: avgScore >= 80 ? "#3B6D11" : avgScore >= 60 ? "#854F0B" : "#943030" }}>{avgScore}%</div>
                    )}
                    <div style={{ fontSize: 16, fontWeight: 500, color: allDone ? "#3B6D11" : none ? "#943030" : "#185FA5" }}>{completed.length}/7</div>
                  </div>
                  <span style={S.badge(allDone ? "#eaf3de" : none ? "#fdf0f0" : "#daf0f8", allDone ? "#3B6D11" : none ? "#943030" : "#185FA5")}>
                    {allDone ? "Complete" : none ? "Not started" : "In progress"}
                  </span>
                </div>
              </div>
              <div style={{ height: 4, background: "#e0ecf0", borderRadius: 2, overflow: "hidden", marginBottom: 8 }}>
                <div style={{ height: "100%", width: pct + "%", background: allDone ? "#3B6D11" : "#63cae2", borderRadius: 2 }} />
              </div>
              <div style={{ display: "flex", gap: 3 }}>
                {[1, 2, 3, 4, 5, 6, 7].map(mid => {
                  const done = completed.includes(mid);
                  const score = d.scores[mid];
                  return (
                    <div key={mid} title={moduleNames[mid - 1] + (score ? ` (${score[0]}/${score[1]})` : "")} style={{ flex: 1, height: 20, borderRadius: 4, background: done ? "#eaf3de" : "#f5f8fa", border: "0.5px solid " + (done ? "#97C459" : "#d4e4ea"), display: "flex", alignItems: "center", justifyContent: "center", fontSize: 8, fontWeight: 500, color: done ? "#3B6D11" : "#b8d4dc" }}>
                      {done && score ? `${score[0]}/${score[1]}` : done ? "✓" : mid}
                    </div>
                  );
                })}
              </div>
              {isExpanded && completed.length > 0 && (
                <div style={{ marginTop: 10, paddingTop: 10, borderTop: "0.5px solid #e0ecf0" }}>
                  <div style={{ fontSize: 11, fontWeight: 500, color: "#213e7a", marginBottom: 6 }}>Quiz scores by module</div>
                  {[1, 2, 3, 4, 5, 6, 7].map(mid => {
                    const done = completed.includes(mid);
                    const score = d.scores[mid];
                    const pctScore = score ? Math.round((score[0] / score[1]) * 100) : 0;
                    return (
                      <div key={mid} style={{ display: "flex", alignItems: "center", gap: 8, padding: "5px 0", borderBottom: mid < 7 ? "0.5px solid #f5f8fa" : "none" }}>
                        <div style={{ width: 14, fontSize: 10, fontWeight: 500, color: done ? "#3B6D11" : "#b8d4dc", textAlign: "center" }}>{done ? "✓" : "○"}</div>
                        <div style={{ flex: 1, fontSize: 11, color: done ? "#011F27" : "#b8d4dc" }}>{moduleNames[mid - 1]}</div>
                        {score ? (
                          <div style={{ display: "flex", alignItems: "center", gap: 6 }}>
                            <div style={{ width: 50, height: 4, background: "#e0ecf0", borderRadius: 2, overflow: "hidden" }}>
                              <div style={{ height: "100%", width: pctScore + "%", borderRadius: 2, background: pctScore >= 80 ? "#3B6D11" : pctScore >= 60 ? "#EF9F27" : "#E24B4A" }} />
                            </div>
                            <div style={{ fontSize: 11, fontWeight: 500, color: pctScore >= 80 ? "#3B6D11" : pctScore >= 60 ? "#854F0B" : "#943030", minWidth: 36, textAlign: "right" }}>{score[0]}/{score[1]}</div>
                          </div>
                        ) : (
                          <div style={{ fontSize: 10, color: "#b8d4dc" }}>—</div>
                        )}
                      </div>
                    );
                  })}
                  {avgScore !== null && (
                    <div style={{ display: "flex", alignItems: "center", justifyContent: "space-between", marginTop: 8, paddingTop: 8, borderTop: "0.5px solid #e0ecf0" }}>
                      <div style={{ fontSize: 12, fontWeight: 500, color: "#213e7a" }}>Overall quiz average</div>
                      <div style={{ fontSize: 14, fontWeight: 500, color: avgScore >= 80 ? "#3B6D11" : avgScore >= 60 ? "#854F0B" : "#943030" }}>{avgScore}%</div>
                    </div>
                  )}
                </div>
              )}
            </div>
          );
        })}
      </div>
    </>
  );
};


function App() {
  const [screen, setScreen] = useState("login");
  const [user, setUser] = useState(null);
  const [attempt, setAttempt] = useState(null);
  const [workshopActive, setWorkshopActive] = useState(true);
  const [schedule, setSchedule] = useState(DEFAULT_SCHEDULE);
  const [exams, setExams] = useState(DEMO_EXAMS);
  const [notification, setNotification] = useState(null);
  const [wsTab, setWsTab] = useState("Home");
  const [proctorTab, setProctorTab] = useState("Dashboard");
  const [selectedBlock, setSelectedBlock] = useState(null);
  const [validatingLearner, setValidatingLearner] = useState(null);
  // New state for added features
  const [allUsers, setAllUsers] = useState(DEMO_USERS);
  const [proctorStation, setProctorStation] = useState(null);
  const [stationAssignments, setStationAssignments] = useState({});
  const [adminSubTab, setAdminSubTab] = useState("Schedule");
  const [evalData, setEvalData] = useState({});
  const [completedModules, setCompletedModules] = useState([]);
  const [precourseData] = useState(DEMO_PRECOURSE);
  const [sharedProctors, setSharedProctors] = useState([]);

  const proctorsWhoValidated = allUsers.filter(u => u.role === "proctor" || u.role === "director");

  const handleLogin = (att) => {
    setAttempt(att);
    const match = allUsers.find(u =>
      (u.email.toLowerCase() === att.email.toLowerCase()) ||
      (u.first.toLowerCase() === att.first.toLowerCase() && u.last.toLowerCase() === att.last.toLowerCase())
    );
    if (match) { setUser(match); setScreen("confirm"); }
    else setScreen("notfound");
  };

  const handleConfirm = () => {
    setScreen("home");
  };

  const handleSelectStation = (st) => {
    setProctorStation(st);
    setStationAssignments(prev => ({ ...prev, [st]: `${user.first} ${user.last}` }));
    if (screen === "stationPicker") setScreen("home");
    // If already in workshop, proctorStation change will re-render dashboard
  };

  const handleSignOutStation = () => {
    if (proctorStation) {
      setStationAssignments(prev => { const next = { ...prev }; delete next[proctorStation]; return next; });
      setProctorStation(null);
      // Will show station picker because proctorStation is null in workshop routing
    }
  };

  const handleNavigate = (dest) => setScreen(dest);

  const handleSendNotif = (msg) => {
    if (msg.includes("Break")) {
      setNotification({ type: "break", endTime: (() => { const d = new Date(); d.setMinutes(d.getMinutes() + 15); return `${d.getHours()}:${d.getMinutes() < 10 ? "0" : ""}${d.getMinutes()}`; })(), from: user ? `${user.first} ${user.last}` : "Proctor" });
    } else if (msg.includes("Rotate")) {
      const current = schedule.find(b => { const s = parseTime(b.start), e = parseTime(b.end), n = nowMins(); return n >= s && n < e && b.type === "station"; });
      const idx = schedule.indexOf(current);
      const next = schedule.find((b, i) => i > idx && b.type === "station");
      setNotification({ type: "rotate", from: `Station ${current?.station || "B"} — ${current?.title || "Current block"}`, to: `Station ${next?.station || "C"} — ${next?.title || "Next block"}`, toStation: next?.station || "C", detail: next ? `${next.views?.length} views · ${next.reps} reps · Proctor: ${next.proctor}` : "" });
    }
  };

  const renderContent = () => {
    switch (screen) {
      case "login": return <LoginScreen onLogin={handleLogin} />;
      case "confirm": return <ConfirmScreen user={user} onConfirm={handleConfirm} onBack={() => setScreen("login")} />;
      case "notfound": return <NotFoundScreen attempt={attempt} onRequest={() => setScreen("requestsent")} onBack={() => setScreen("login")} />;
      case "requestsent": return <RequestSentScreen onBack={() => setScreen("login")} />;
      case "stationPicker": return <StationPicker user={user} stationAssignments={stationAssignments} onSelectStation={handleSelectStation} />;
      case "home": return <AppHome user={user} workshopActive={workshopActive} onNavigate={handleNavigate} completedModules={completedModules} />;
      case "precourse": return <PreCourseModules onBack={() => setScreen("home")} completedModules={completedModules} setCompletedModules={setCompletedModules} />;
      case "workshop":
        // --- DIRECTOR ---
        if (user?.role === "director") {
          if (!proctorStation && proctorTab === "Dashboard") return <StationPicker user={user} stationAssignments={stationAssignments} onSelectStation={handleSelectStation} />;
          if (proctorTab === "Admin") {
            if (adminSubTab === "Schedule") return <AdminPanel schedule={schedule} setSchedule={setSchedule} />;
            if (adminSubTab === "Pre-course") return <AdminPreCourseProgress users={allUsers} precourseData={precourseData} />;
          if (adminSubTab === "Participants" || adminSubTab === "Proctors") return <AdminPeople users={allUsers} setUsers={setAllUsers} adminSubTab={adminSubTab} setAdminSubTab={setAdminSubTab} />;
          }
          if (proctorTab === "Evals") return <AdminEvalResults users={allUsers} exams={exams} evalResults={evalData} sharedProctors={sharedProctors} setSharedProctors={setSharedProctors} />;
          if (proctorTab === "Validate" && validatingLearner) return <ProctorValidation learner={validatingLearner} schedule={schedule} exams={exams} setExams={setExams} onBack={() => { setValidatingLearner(null); setProctorTab("Dashboard"); }} />;
          if (proctorTab === "Notify") return <ProctorNotifications onSendNotif={handleSendNotif} />;
          return <ProctorDashboard user={user} schedule={schedule} exams={exams} allUsers={allUsers} onValidate={(l) => { setValidatingLearner(l); setProctorTab("Validate"); }} signOutStation={handleSignOutStation} currentStation={proctorStation} />;
        }
        // --- PROCTOR ---
        if (user?.role === "proctor") {
          if (!proctorStation) return <StationPicker user={user} stationAssignments={stationAssignments} onSelectStation={handleSelectStation} />;
          if (proctorTab === "Results" && sharedProctors.includes(user.id)) return <ProctorResults user={user} />;
          if (proctorTab === "Validate" && validatingLearner) return <ProctorValidation learner={validatingLearner} schedule={schedule} exams={exams} setExams={setExams} onBack={() => { setValidatingLearner(null); setProctorTab("Dashboard"); }} />;
          if (proctorTab === "Notify") return <ProctorNotifications onSendNotif={handleSendNotif} />;
          return <ProctorDashboard user={user} schedule={schedule} exams={exams} allUsers={allUsers} onValidate={(l) => { setValidatingLearner(l); setProctorTab("Validate"); }} signOutStation={handleSignOutStation} currentStation={proctorStation} />;
        }
        // --- LEARNER ---
        if (wsTab === "Evaluation") return <LearnerEvaluation user={user} exams={exams} evalData={evalData} setEvalData={setEvalData} proctorsWhoValidated={proctorsWhoValidated} />;
        if (wsTab === "Exam tracker") return <ExamTracker user={user} exams={exams} />;
        if (wsTab === "Schedule") {
          if (selectedBlock) return <BlockDetail block={selectedBlock} exams={exams} userId={user.id} onBack={() => setSelectedBlock(null)} />;
          return <FullSchedule schedule={schedule} exams={exams} userId={user.id} onBlockDetail={setSelectedBlock} />;
        }
        return <LearnerHome user={user} schedule={schedule} exams={exams} notification={notification} onDismissNotif={() => setNotification(null)} onTab={setWsTab} />;
      default: return null;
    }
  };

  const renderTabs = () => {
    if (screen === "workshop") {
      if (user?.role === "director") {
        if (!proctorStation && proctorTab === "Dashboard") return null;
        return <TabBar tabs={["Dashboard", "Validate", "Notify", "Admin", "Evals"]} active={proctorTab} onTab={t => { setProctorTab(t); if (t !== "Validate") setValidatingLearner(null); if (t === "Admin" && !["Schedule", "Participants", "Proctors", "Pre-course"].includes(adminSubTab)) setAdminSubTab("Schedule"); }} />;
      }
      if (user?.role === "proctor") {
        if (!proctorStation) return null; // No tabs while picking station
        const tabs = ["Dashboard", "Validate", "Notify"];
        if (sharedProctors.includes(user.id)) tabs.push("Results");
        return <TabBar tabs={tabs} active={proctorTab} onTab={t => { setProctorTab(t); if (t !== "Validate") setValidatingLearner(null); }} />;
      }
      return <TabBar tabs={["Home", "Exam tracker", "Schedule", "Evaluation"]} active={wsTab} onTab={t => { setWsTab(t); setSelectedBlock(null); }} />;
    }
    if (screen === "home") {
      return <TabBar tabs={["Home", "Profile"]} active="Home" onTab={() => {}} />;
    }
    return null;
  };

  return (
    <div style={S.app}>
      {/* watermark is now CSS background */}
      <div style={{ position: "relative", zIndex: 1 }}>
        {renderContent()}
      </div>
      {renderTabs()}
      <style>{`@keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.6; } }`}</style>
    </div>
  );
}

// ============================================================
// NEW FEATURES - Station Picker, People Mgmt, Evaluation, Results
// ============================================================

// --- PROCTOR STATION PICKER ---
const StationPicker = ({ user, stationAssignments, onSelectStation }) => {
  const stations = ["A", "B", "C", "D", "E"];
  return (
    <>
      <LogoMark />
      <div style={S.pageTitle}><h2 style={S.h2}>Select your station</h2><p style={S.subtitle}>{user.first} {user.last} — tap to sign in</p></div>
      <div style={S.content}>
        <span style={S.badge("#FAEEDA", "#854F0B")}>Proctor</span>
        <div style={{ marginTop: 12 }}>
          {stations.map(st => {
            const occupant = stationAssignments[st];
            return (
              <div key={st} onClick={() => onSelectStation(st)} style={{ background: "#fff", borderRadius: 14, border: "0.5px solid #b8d4dc", padding: 18, marginBottom: 10, cursor: "pointer", textAlign: "center", opacity: occupant ? 0.7 : 1 }}>
                <div style={{ fontSize: 32, fontWeight: 500, color: occupant ? "#854F0B" : "#213e7a", marginBottom: 4 }}>{st}</div>
                <div style={{ fontSize: 13, fontWeight: 500, color: "#011F27" }}>Station {st}</div>
                {occupant && <div style={{ fontSize: 11, color: "#6a8a98", marginTop: 4 }}>{occupant} signed in</div>}
                <div style={{ display: "inline-block", fontSize: 10, fontWeight: 500, padding: "3px 10px", borderRadius: 6, marginTop: 8, background: occupant ? "#FAEEDA" : "#eaf3de", color: occupant ? "#854F0B" : "#3B6D11" }}>
                  {occupant ? "Occupied" : "Open"}
                </div>
              </div>
            );
          })}
        </div>
      </div>
    </>
  );
};

// --- ADMIN PEOPLE MANAGEMENT ---
const AdminPeople = ({ users, setUsers, adminSubTab, setAdminSubTab }) => {
  const [editing, setEditing] = useState(null);
  const [adding, setAdding] = useState(false);
  const [search, setSearch] = useState("");
  const [form, setForm] = useState({ first: "", last: "", email: "", institution: "", title: "MD", level: "PGY-3", group: 1 });

  const learners = users.filter(u => u.role === "learner").filter(u => !search || `${u.first} ${u.last}`.toLowerCase().includes(search.toLowerCase()));
  const proctors = users.filter(u => u.role === "proctor" || u.role === "director");

  const saveNew = (role) => {
    const newUser = { ...form, id: Date.now(), role, group: role === "learner" ? form.group : null, station: null };
    setUsers(prev => [...prev, newUser]);
    setAdding(false);
    setForm({ first: "", last: "", email: "", institution: "", title: "MD", level: "PGY-3", group: 1 });
  };

  const removeUser = (id) => setUsers(prev => prev.filter(u => u.id !== id));

  const updateUser = (id, field, value) => setUsers(prev => prev.map(u => u.id === id ? { ...u, [field]: value } : u));

  const renderPersonForm = (role) => (
    <>
      <div style={{ display: "flex", gap: 8 }}>
        <div style={S.field}><label style={S.label}>First name</label><input style={S.input} value={form.first} onChange={e => setForm(p => ({ ...p, first: e.target.value }))} /></div>
        <div style={S.field}><label style={S.label}>Last name</label><input style={S.input} value={form.last} onChange={e => setForm(p => ({ ...p, last: e.target.value }))} /></div>
      </div>
      <div style={S.field}><label style={S.label}>Email</label><input style={S.input} value={form.email} onChange={e => setForm(p => ({ ...p, email: e.target.value }))} /></div>
      <div style={S.field}><label style={S.label}>Institution</label><input style={S.input} value={form.institution} onChange={e => setForm(p => ({ ...p, institution: e.target.value }))} /></div>
      <div style={{ display: "flex", gap: 8 }}>
        <div style={{ ...S.field, flex: 1 }}><label style={S.label}>Title</label>
          <select style={S.input} value={form.title} onChange={e => setForm(p => ({ ...p, title: e.target.value }))}>
            {["MD", "DO", "PA", "NP", "Other"].map(t => <option key={t}>{t}</option>)}
          </select>
        </div>
        <div style={{ ...S.field, flex: 1 }}><label style={S.label}>Level</label>
          <select style={S.input} value={form.level} onChange={e => setForm(p => ({ ...p, level: e.target.value }))}>
            {["PGY-1", "PGY-2", "PGY-3", "PGY-4", "PGY-5", "Fellow", "Attending"].map(l => <option key={l}>{l}</option>)}
          </select>
        </div>
      </div>
      {role === "learner" && (
        <div style={S.field}><label style={S.label}>Group</label>
          <select style={S.input} value={form.group} onChange={e => setForm(p => ({ ...p, group: Number(e.target.value) }))}>
            {[1, 2, 3, 4, 5].map(g => <option key={g} value={g}>Group {g}</option>)}
          </select>
        </div>
      )}
      <button style={{ ...S.btn, marginTop: 8 }} onClick={() => saveNew(role)}>Save</button>
      <button style={{ ...S.btnSec, marginTop: 8 }} onClick={() => setAdding(false)}>Cancel</button>
    </>
  );

  return (
    <>
      <LogoMark />
      <div style={S.pageTitle}><h2 style={S.h2}>Admin panel</h2><p style={S.subtitle}>Course director</p></div>
      <div style={S.content}>
        <span style={S.badge("#EEEDFE", "#534AB7")}>Course Director</span>
        <div style={{ display: "flex", background: "#fff", borderRadius: 10, border: "0.5px solid #b8d4dc", overflow: "hidden", margin: "10px 0" }}>
          {["Schedule", "Participants", "Proctors", "Pre-course"].map(t => (
            <button key={t} onClick={() => setAdminSubTab(t)} style={{ flex: 1, padding: "10px 0", textAlign: "center", fontSize: 11, fontWeight: 500, border: "none", cursor: "pointer", background: adminSubTab === t ? "#daf0f8" : "#fff", color: adminSubTab === t ? "#185FA5" : "#6a8a98" }}>{t}</button>
          ))}
        </div>

        {adminSubTab === "Participants" && !adding && (
          <>
            <div style={{ display: "flex", justifyContent: "space-between", alignItems: "center", marginBottom: 10 }}>
              <div style={{ fontSize: 13, fontWeight: 500 }}>{learners.length} participants</div>
              <input style={{ ...S.input, width: 140 }} placeholder="Search..." value={search} onChange={e => setSearch(e.target.value)} />
            </div>
            {learners.map(l => (
              <div key={l.id} style={{ display: "flex", alignItems: "center", gap: 10, background: "#fff", borderRadius: 12, border: "0.5px solid #b8d4dc", padding: "12px 14px", marginBottom: 8 }}>
                <div style={{ flex: 1 }}>
                  <div style={{ fontSize: 14, fontWeight: 500 }}>{l.first} {l.last}, {l.title}</div>
                  <div style={{ fontSize: 11, color: "#4a6a78" }}>{l.level} · {l.institution}</div>
                  <div style={{ fontSize: 10, color: "#6a8a98" }}>{l.email}</div>
                </div>
                <div style={{ fontSize: 11, fontWeight: 500, color: "#213e7a", background: "#daf0f8", padding: "3px 10px", borderRadius: 6, border: "1px solid #a8d8e8" }}>Grp {l.group}</div>
                <div style={{ display: "flex", gap: 4 }}>
                  <button onClick={() => removeUser(l.id)} style={{ width: 28, height: 28, borderRadius: "50%", border: "0.5px solid #e8a0a0", background: "#fff", cursor: "pointer", fontSize: 12, color: "#943030", display: "flex", alignItems: "center", justifyContent: "center" }}>×</button>
                </div>
              </div>
            ))}
            <button style={{ ...S.btnSec, marginTop: 8 }} onClick={() => setAdding("learner")}>+ Add participant</button>
          </>
        )}

        {adminSubTab === "Participants" && adding === "learner" && (
          <>
            <div style={{ fontSize: 15, fontWeight: 500, marginBottom: 12 }}>Add participant</div>
            {renderPersonForm("learner")}
          </>
        )}

        {adminSubTab === "Proctors" && !adding && (
          <>
            <div style={{ fontSize: 13, fontWeight: 500, marginBottom: 10 }}>{proctors.length} proctors</div>
            {proctors.map(p => (
              <div key={p.id} style={{ display: "flex", alignItems: "center", gap: 10, background: "#fff", borderRadius: 12, border: "0.5px solid #b8d4dc", padding: "12px 14px", marginBottom: 8 }}>
                <div style={{ flex: 1 }}>
                  <div style={{ fontSize: 14, fontWeight: 500 }}>{p.first} {p.last}, {p.title}</div>
                  <div style={{ fontSize: 11, color: "#4a6a78" }}>{p.level} · {p.institution}</div>
                  <div style={{ fontSize: 10, color: "#6a8a98" }}>{p.email}</div>
                </div>
                {p.role !== "director" && (
                  <button onClick={() => removeUser(p.id)} style={{ width: 28, height: 28, borderRadius: "50%", border: "0.5px solid #e8a0a0", background: "#fff", cursor: "pointer", fontSize: 12, color: "#943030", display: "flex", alignItems: "center", justifyContent: "center" }}>×</button>
                )}
              </div>
            ))}
            <button style={{ ...S.btnSec, marginTop: 8 }} onClick={() => setAdding("proctor")}>+ Add proctor</button>
          </>
        )}

        {adminSubTab === "Proctors" && adding === "proctor" && (
          <>
            <div style={{ fontSize: 15, fontWeight: 500, marginBottom: 12 }}>Add proctor</div>
            {renderPersonForm("proctor")}
          </>
        )}
      </div>
    </>
  );
};

// --- EVALUATION SECTION DEFINITIONS (from Jan 2025 PDF) ---
const EVAL_SECTIONS = [
  { id: "program", title: "Program effectiveness", questions: [
    "The program met my expectations and learning needs",
    "The information was presented at an appropriate learning level",
    "The program format was effective",
    "I learned skills that will improve the quality of care I provide",
    "The program provided me with new ideas and resources",
    "I would recommend this program to colleagues"
  ]},
  { id: "logistics", title: "Program logistics", questions: [
    "The program location was good",
    "The room set-up supported my peer learning experience",
    "Audio-visual equipment was used effectively",
    "The written materials were helpful and will be useful references",
    "The pre-course material was helpful"
  ]},
  { id: "faculty", title: "Faculty / presenter", questions: [
    "The presenter demonstrated substantive knowledge of the topic",
    "The presenter's use of class time was effective",
    "The presenter has strong presentation and delivery style",
    "The presenter created an effective peer learning environment"
  ]},
  { id: "didactic", title: "Didactic session", questions: [
    "The presentation was clear and the lecture was easy to follow",
    "The lecture content was relevant for this workshop",
    "The lecture included enough information about TEE",
    "The lecture effectively demonstrated how to manipulate the TEE probe",
    "The lecture effectively demonstrated how to obtain TEE views"
  ]},
  { id: "proctors", title: "Proctor evaluations", questions: [] },
  { id: "additional", title: "Additional questions", questions: [
    "Was the workshop valuable?",
    "What aspects of the training were most beneficial?",
    "What improvements would you recommend?",
    "One thing you will do differently because of this seminar"
  ]}
];

const PROCTOR_EVAL_QUESTIONS = [
  "Demonstrated appropriate skill and experience",
  "Effective at teaching how to obtain views",
  "Enthusiastic about teaching TEE",
  "I would recommend this proctor for future workshops"
];

// --- LEARNER EVALUATION ---
const LearnerEvaluation = ({ user, exams, evalData, setEvalData, proctorsWhoValidated }) => {
  const [section, setSection] = useState(-1);
  const [submitted, setSubmitted] = useState(false);

  if (submitted) {
    const total = Object.values(exams[user.id] || {}).reduce((a, b) => a + b, 0);
    return (
      <>
        <LogoMark />
        <div style={S.pageTitle}><h2 style={S.h2}>Evaluation complete</h2><p style={S.subtitle}>Thank you for your feedback</p></div>
        <div style={S.content}>
          <div style={{ background: "#fff", borderRadius: 14, border: "2px solid #5DCAA5", padding: 18, textAlign: "center", marginBottom: 12 }}>
            <div style={{ fontSize: 20, marginBottom: 8 }}>✓</div>
            <div style={{ fontSize: 15, fontWeight: 500, marginBottom: 4 }}>Evaluation submitted</div>
            <span style={S.badge("#eaf3de", "#3B6D11")}>Complete</span>
          </div>
          <div style={{ background: "#fff", borderRadius: 14, border: "2px solid #5DCAA5", padding: 18, textAlign: "center", marginBottom: 12 }}>
            <div style={{ fontSize: 20, marginBottom: 8 }}>📜</div>
            <div style={{ fontSize: 15, fontWeight: 500, marginBottom: 4 }}>Course certificate</div>
            <div style={{ fontSize: 11, color: "#4a6a78", marginBottom: 12, lineHeight: 1.5 }}>Your RESCUE TEE Workshop certificate is ready.</div>
            <button style={{ ...S.btn, background: "#0F6E56" }}>Download certificate (PDF)</button>
          </div>
          <div style={{ background: "#fff", borderRadius: 12, border: "0.5px solid #b8d4dc", padding: 16, textAlign: "center" }}>
            <div style={{ fontSize: 13, fontWeight: 500, marginBottom: 8 }}>Course summary</div>
            <div style={{ display: "flex", gap: 12, justifyContent: "center" }}>
              <div><div style={{ fontSize: 22, fontWeight: 500, color: "#213e7a" }}>{total}</div><div style={{ fontSize: 9, color: "#6a8a98" }}>Total exams</div></div>
              <div><div style={{ fontSize: 22, fontWeight: 500, color: "#213e7a" }}>12</div><div style={{ fontSize: 9, color: "#6a8a98" }}>Views</div></div>
              <div><div style={{ fontSize: 22, fontWeight: 500, color: "#213e7a" }}>{proctorsWhoValidated.length}</div><div style={{ fontSize: 9, color: "#6a8a98" }}>Proctors</div></div>
            </div>
          </div>
        </div>
      </>
    );
  }

  if (section < 0) {
    return (
      <>
        <LogoMark />
        <div style={S.pageTitle}><h2 style={S.h2}>Course evaluation</h2><p style={S.subtitle}>Complete to receive your certificate</p></div>
        <div style={S.content}>
          <div style={{ background: "#fff", borderRadius: 14, border: "2px solid #EF9F27", padding: 18, textAlign: "center", marginBottom: 12 }}>
            <div style={{ fontSize: 15, fontWeight: 500, marginBottom: 4 }}>Evaluation required</div>
            <div style={{ fontSize: 11, color: "#4a6a78", lineHeight: 1.5 }}>Complete to unlock your course certificate. ~5 minutes.</div>
            <div><span style={{ ...S.badge("#FAEEDA", "#854F0B"), marginTop: 8 }}>Not started</span></div>
            <button style={{ ...S.btn, marginTop: 10 }} onClick={() => setSection(0)}>Begin evaluation</button>
          </div>
          <div style={{ background: "#fff", borderRadius: 14, border: "0.5px solid #b8d4dc", padding: 18, textAlign: "center" }}>
            <div style={{ fontSize: 18, color: "#8aa0a8", marginBottom: 8 }}>🔒</div>
            <div style={{ fontSize: 14, fontWeight: 500, color: "#8aa0a8", marginBottom: 4 }}>Course certificate</div>
            <div style={{ fontSize: 11, color: "#a0b0b8", lineHeight: 1.5 }}>Available after evaluation is submitted and processed.</div>
          </div>
        </div>
      </>
    );
  }

  const sec = EVAL_SECTIONS[section];
  const scaleLabels = ["Strongly Disagree", "Disagree", "Neutral", "Agree", "Strongly Agree"];
  const key = sec.id;

  const setRating = (qIdx, val) => {
    setEvalData(prev => {
      const next = { ...prev };
      if (!next[key]) next[key] = {};
      next[key][qIdx] = val;
      return next;
    });
  };

  const setProctorRating = (proctorId, qIdx, val) => {
    setEvalData(prev => {
      const next = { ...prev };
      if (!next.proctors) next.proctors = {};
      if (!next.proctors[proctorId]) next.proctors[proctorId] = {};
      next.proctors[proctorId][qIdx] = val;
      return next;
    });
  };

  const renderScaleHeader = () => (
    <div style={{ display: "flex", gap: 2, marginBottom: 6, paddingBottom: 6, borderBottom: "0.5px solid #e0ecf0" }}>
      <div style={{ flex: 2 }}></div>
      {scaleLabels.map(l => (
        <div key={l} style={{ flex: 1, textAlign: "center", fontSize: 7, color: "#6a8a98", lineHeight: 1.2 }}>{l}</div>
      ))}
    </div>
  );

  const renderQuestion = (q, qIdx, ratings, onRate) => (
    <div key={qIdx} style={{ display: "flex", alignItems: "center", gap: 2, padding: "8px 0", borderBottom: "0.5px solid #f0f5f7" }}>
      <div style={{ flex: 2, fontSize: 11, color: "#011F27", lineHeight: 1.3, paddingRight: 4 }}>{q}</div>
      {[1, 2, 3, 4, 5].map(v => (
        <div key={v} style={{ flex: 1, display: "flex", justifyContent: "center" }}>
          <div onClick={() => onRate(qIdx, v)} style={{ width: 22, height: 22, borderRadius: "50%", border: `1.5px solid ${ratings?.[qIdx] === v ? "#213e7a" : "#b8d4dc"}`, background: ratings?.[qIdx] === v ? "#daf0f8" : "#fff", cursor: "pointer", display: "flex", alignItems: "center", justifyContent: "center" }}>
            {ratings?.[qIdx] === v && <div style={{ width: 10, height: 10, borderRadius: "50%", background: "#213e7a" }} />}
          </div>
        </div>
      ))}
    </div>
  );

  return (
    <>
      <LogoMark />
      <div style={S.pageTitle}><h2 style={S.h2}>{sec.title}</h2><p style={S.subtitle}>Section {section + 1} of {EVAL_SECTIONS.length}</p></div>
      <div style={S.content}>
        <div style={{ display: "flex", gap: 3, marginBottom: 10 }}>
          {EVAL_SECTIONS.map((_, i) => (
            <div key={i} style={{ flex: 1, height: 4, borderRadius: 2, background: i < section ? "#63cae2" : i === section ? "#213e7a" : "#e0ecf0" }} />
          ))}
        </div>

        {sec.id !== "proctors" && sec.id !== "additional" && (
          <div style={{ background: "#fff", borderRadius: 12, border: "0.5px solid #b8d4dc", padding: 12 }}>
            {renderScaleHeader()}
            {sec.questions.map((q, i) => renderQuestion(q, i, evalData[key], setRating))}
          </div>
        )}

        {sec.id === "proctors" && (
          <>
            <div style={{ fontSize: 10, color: "#6a8a98", marginBottom: 8, lineHeight: 1.3 }}>Rate each proctor who confirmed exams for you.</div>
            {proctorsWhoValidated.map(p => (
              <div key={p.id} style={{ background: "#fff", borderRadius: 12, border: "0.5px solid #b8d4dc", padding: 12, marginBottom: 8 }}>
                <div style={{ fontSize: 13, fontWeight: 500 }}>{p.first} {p.last}, {p.title}</div>
                <div style={{ fontSize: 10, color: "#6a8a98", marginBottom: 8 }}>{p.level}</div>
                {renderScaleHeader()}
                {PROCTOR_EVAL_QUESTIONS.map((q, i) => renderQuestion(q, i, evalData.proctors?.[p.id], (qi, v) => setProctorRating(p.id, qi, v)))}
              </div>
            ))}
          </>
        )}

        {sec.id === "additional" && (
          <div style={{ background: "#fff", borderRadius: 12, border: "0.5px solid #b8d4dc", padding: 12 }}>
            {sec.questions.map((q, i) => (
              <div key={i} style={{ marginBottom: 12 }}>
                <div style={{ fontSize: 12, fontWeight: 500, color: "#011F27", marginBottom: 6 }}>{q}</div>
                <textarea style={{ ...S.input, minHeight: 50, resize: "vertical", fontFamily: "inherit" }} placeholder="Your answer..." />
              </div>
            ))}
          </div>
        )}

        <div style={{ display: "flex", gap: 8, marginTop: 12 }}>
          <button style={S.btnSec} onClick={() => setSection(s => s - 1)} disabled={section === 0}>← Previous</button>
          {section < EVAL_SECTIONS.length - 1 ? (
            <button style={S.btn} onClick={() => setSection(s => s + 1)}>Next →</button>
          ) : (
            <button style={{ ...S.btn, background: "#0F6E56" }} onClick={() => setSubmitted(true)}>Submit evaluation</button>
          )}
        </div>
      </div>
    </>
  );
};

// --- ADMIN EVALUATION RESULTS ---
const AdminEvalResults = ({ users, exams, evalResults, sharedProctors, setSharedProctors }) => {
  const [subTab, setSubTab] = useState("Overall");
  const proctors = users.filter(u => u.role === "proctor" || u.role === "director");

  const demoScores = {
    program: [4.6, 4.8, 4.7, 4.5, 4.4, 4.9],
    logistics: [4.5, 4.4, 4.7, 4.6, 4.3],
    faculty: [4.8, 4.7, 4.6, 4.8],
    didactic: [4.8, 4.7, 4.5, 4.6, 4.7],
  };
  const demoProctorScores = {};
  proctors.forEach(p => { demoProctorScores[p.id] = { scores: [4.5 + Math.random() * 0.4, 4.3 + Math.random() * 0.5, 4.6 + Math.random() * 0.3, 4.4 + Math.random() * 0.4], avg: (4.5 + Math.random() * 0.4).toFixed(1), comments: ["Great instructor!", "Very patient and thorough."] }; });

  const renderBar = (score) => (
    <div style={{ display: "flex", alignItems: "center", gap: 8 }}>
      <div style={{ width: 80, height: 6, background: "#e0ecf0", borderRadius: 3, flexShrink: 0 }}>
        <div style={{ height: "100%", borderRadius: 3, background: "#63cae2", width: `${(score / 5) * 100}%` }} />
      </div>
      <div style={{ fontSize: 12, fontWeight: 500, color: "#213e7a", width: 30, textAlign: "right" }}>{score.toFixed(1)}</div>
    </div>
  );

  return (
    <>
      <LogoMark />
      <div style={S.pageTitle}><h2 style={S.h2}>Evaluation results</h2><p style={S.subtitle}>15 of 15 submitted (100%)</p></div>
      <div style={S.content}>
        <span style={S.badge("#EEEDFE", "#534AB7")}>Course Director</span>
        <div style={{ display: "flex", background: "#fff", borderRadius: 10, border: "0.5px solid #b8d4dc", overflow: "hidden", margin: "10px 0" }}>
          {["Overall", "By proctor", "Comments", "Share"].map(t => (
            <button key={t} onClick={() => setSubTab(t)} style={{ flex: 1, padding: "9px 0", textAlign: "center", fontSize: 10, fontWeight: 500, border: "none", cursor: "pointer", background: subTab === t ? "#daf0f8" : "#fff", color: subTab === t ? "#185FA5" : "#6a8a98" }}>{t}</button>
          ))}
        </div>

        {subTab === "Overall" && (
          <>
            <div style={{ display: "flex", gap: 8, marginBottom: 10 }}>
              {[["4.7", "Overall avg"], ["15", "Responses"], ["100%", "Rate"]].map(([n, l]) => (
                <div key={l} style={{ flex: 1, background: "#fff", borderRadius: 10, border: "0.5px solid #b8d4dc", padding: 12, textAlign: "center" }}>
                  <div style={{ fontSize: 22, fontWeight: 500, color: "#213e7a" }}>{n}</div>
                  <div style={{ fontSize: 9, color: "#6a8a98", marginTop: 2 }}>{l}</div>
                </div>
              ))}
            </div>
            {Object.entries(demoScores).map(([secId, scores]) => {
              const sec = EVAL_SECTIONS.find(s => s.id === secId);
              return (
                <div key={secId} style={{ background: "#fff", borderRadius: 12, border: "0.5px solid #b8d4dc", padding: 12, marginBottom: 8 }}>
                  <div style={{ fontSize: 13, fontWeight: 500, marginBottom: 8 }}>{sec?.title}</div>
                  {scores.map((sc, i) => (
                    <div key={i} style={{ display: "flex", alignItems: "center", gap: 8, padding: "4px 0" }}>
                      <div style={{ flex: 1, fontSize: 10, color: "#4a6a78" }}>{sec?.questions[i]?.substring(0, 35)}...</div>
                      {renderBar(sc)}
                    </div>
                  ))}
                </div>
              );
            })}
          </>
        )}

        {subTab === "By proctor" && proctors.map(p => {
          const ps = demoProctorScores[p.id];
          return (
            <div key={p.id} style={{ background: "#fff", borderRadius: 12, border: "0.5px solid #b8d4dc", padding: 12, marginBottom: 8 }}>
              <div style={{ display: "flex", justifyContent: "space-between", marginBottom: 8 }}>
                <div><div style={{ fontSize: 14, fontWeight: 500 }}>{p.first} {p.last}, {p.title}</div><div style={{ fontSize: 10, color: "#6a8a98" }}>{p.level}</div></div>
                <div style={{ fontSize: 18, fontWeight: 500, color: "#213e7a" }}>{ps.avg}</div>
              </div>
              {PROCTOR_EVAL_QUESTIONS.map((q, i) => (
                <div key={i} style={{ display: "flex", alignItems: "center", gap: 8, padding: "4px 0" }}>
                  <div style={{ flex: 1, fontSize: 10, color: "#4a6a78" }}>{q}</div>
                  {renderBar(ps.scores[i])}
                </div>
              ))}
              {ps.comments.map((c, i) => (
                <div key={i} style={{ background: "#f8fafb", borderRadius: 8, padding: "8px 10px", marginTop: 6, borderLeft: "3px solid #63cae2", fontSize: 11, color: "#4a6a78", fontStyle: "italic" }}>"{c}"</div>
              ))}
            </div>
          );
        })}

        {subTab === "Comments" && (
          <div style={{ fontSize: 12, color: "#4a6a78" }}>
            {proctors.map(p => (
              <div key={p.id} style={{ marginBottom: 12 }}>
                <div style={{ fontSize: 13, fontWeight: 500, marginBottom: 6 }}>{p.first} {p.last}</div>
                {demoProctorScores[p.id]?.comments.map((c, i) => (
                  <div key={i} style={{ background: "#f8fafb", borderRadius: 8, padding: "8px 10px", marginBottom: 4, borderLeft: "3px solid #63cae2", fontSize: 11, fontStyle: "italic" }}>"{c}"</div>
                ))}
              </div>
            ))}
          </div>
        )}

        {subTab === "Share" && (
          <>
            <div style={{ fontSize: 11, color: "#4a6a78", marginBottom: 12, lineHeight: 1.4 }}>Each proctor receives overall course results + their own scores and comments. They do not see other proctors' evaluations.</div>
            {proctors.map(p => {
              const shared = sharedProctors.includes(p.id);
              return (
                <div key={p.id} style={{ background: "#fff", borderRadius: 12, border: "0.5px solid #b8d4dc", padding: 12, marginBottom: 8 }}>
                  <div style={{ display: "flex", alignItems: "center", gap: 10 }}>
                    <div style={{ flex: 1 }}><div style={{ fontSize: 13, fontWeight: 500 }}>{p.first} {p.last}</div><div style={{ fontSize: 10, color: "#6a8a98" }}>{p.email}</div></div>
                    <span style={{ fontSize: 9, fontWeight: 500, padding: "2px 8px", borderRadius: 4, background: shared ? "#eaf3de" : "#f0f5f7", color: shared ? "#3B6D11" : "#6a8a98" }}>{shared ? "Shared" : "Not shared"}</span>
                  </div>
                  <div style={{ display: "flex", gap: 8, marginTop: 8 }}>
                    <button onClick={() => !shared && setSharedProctors(prev => [...prev, p.id])} style={{ flex: 1, padding: 10, borderRadius: 8, border: "none", fontSize: 11, fontWeight: 500, cursor: "pointer", background: "#daf0f8", color: "#185FA5" }}>{shared ? "View in app" : "Share in app"}</button>
                    <button style={{ flex: 1, padding: 10, borderRadius: 8, border: "none", fontSize: 11, fontWeight: 500, cursor: "pointer", background: "#E1F5EE", color: "#0F6E56" }}>Email results</button>
                  </div>
                </div>
              );
            })}
            <button style={{ ...S.btn, marginTop: 10 }} onClick={() => setSharedProctors(proctors.map(p => p.id))}>Share all (in app + email)</button>
          </>
        )}
      </div>
    </>
  );
};

// --- PROCTOR RESULTS VIEW (their own only) ---
const ProctorResults = ({ user }) => {
  const demoOverall = { met: 4.6, level: 4.8, format: 4.7, recommend: 4.9 };
  const demoOwn = { scores: [4.8, 4.6, 4.7, 4.8], avg: "4.7", comments: ["Great at explaining the aortic views.", "Very helpful and encouraging throughout."] };

  const renderBar = (score) => (
    <div style={{ display: "flex", alignItems: "center", gap: 8 }}>
      <div style={{ width: 80, height: 6, background: "#e0ecf0", borderRadius: 3, flexShrink: 0 }}>
        <div style={{ height: "100%", borderRadius: 3, background: "#63cae2", width: `${(score / 5) * 100}%` }} />
      </div>
      <div style={{ fontSize: 12, fontWeight: 500, color: "#213e7a", width: 30, textAlign: "right" }}>{score.toFixed(1)}</div>
    </div>
  );

  return (
    <>
      <LogoMark />
      <div style={S.pageTitle}><h2 style={S.h2}>Your evaluation results</h2><p style={S.subtitle}>RESCUE TEE Workshop</p></div>
      <div style={S.content}>
        <span style={S.badge("#FAEEDA", "#854F0B")}>Proctor</span>
        <div style={{ background: "#fff", borderRadius: 12, border: "0.5px solid #b8d4dc", padding: 12, marginTop: 10, marginBottom: 8 }}>
          <div style={{ fontSize: 13, fontWeight: 500, marginBottom: 8 }}>Overall course results</div>
          <div style={{ fontSize: 10, color: "#6a8a98", marginBottom: 8 }}>All participants · 15 responses</div>
          {Object.entries(demoOverall).map(([k, v]) => (
            <div key={k} style={{ display: "flex", alignItems: "center", gap: 8, padding: "4px 0" }}>
              <div style={{ flex: 1, fontSize: 10, color: "#4a6a78" }}>{k}</div>
              {renderBar(v)}
            </div>
          ))}
        </div>
        <div style={{ background: "#fff", borderRadius: 12, border: "2px solid #63cae2", padding: 12, marginBottom: 8 }}>
          <div style={{ display: "flex", justifyContent: "space-between", marginBottom: 8 }}>
            <div><div style={{ fontSize: 14, fontWeight: 500 }}>Your results</div><div style={{ fontSize: 10, color: "#6a8a98" }}>{user.first} {user.last}, {user.title}</div></div>
            <div style={{ fontSize: 18, fontWeight: 500, color: "#213e7a" }}>{demoOwn.avg}</div>
          </div>
          {PROCTOR_EVAL_QUESTIONS.map((q, i) => (
            <div key={i} style={{ display: "flex", alignItems: "center", gap: 8, padding: "4px 0" }}>
              <div style={{ flex: 1, fontSize: 10, color: "#4a6a78" }}>{q}</div>
              {renderBar(demoOwn.scores[i])}
            </div>
          ))}
          <div style={{ fontSize: 11, fontWeight: 500, marginTop: 10 }}>Comments from learners</div>
          {demoOwn.comments.map((c, i) => (
            <div key={i} style={{ background: "#f8fafb", borderRadius: 8, padding: "8px 10px", marginTop: 6, borderLeft: "3px solid #63cae2", fontSize: 11, color: "#4a6a78", fontStyle: "italic" }}>"{c}"</div>
          ))}
        </div>
      </div>
    </>
  );
};


// Mount the app
const root = ReactDOM.createRoot(document.getElementById("root"));
root.render(React.createElement(App));
