interview-widget 3.3.2 → 3.3.3-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/README.md +15 -7
  2. package/dist/StreamingAudioPlayer-DmOtqI_a-BX7ptCkK.js +430 -0
  3. package/dist/_headers +2 -0
  4. package/dist/assets/avatar_core_wasm-36bf5449.wasm +0 -0
  5. package/dist/assets/avatar_core_wasm.js +2697 -0
  6. package/dist/assets/index.d.ts +0 -11
  7. package/dist/assets/style-8JJ3h3Ol.css +1 -0
  8. package/dist/avatar_core_wasm-BIbE25D3-D94zNSYX.js +1651 -0
  9. package/dist/components/interview/interview-content.d.ts +8 -0
  10. package/dist/components/interview/interview-controller.d.ts +8 -1
  11. package/dist/components/interview/interview-header.d.ts +1 -1
  12. package/dist/components/interview/proctoring/gaze-detection/utils/types.d.ts +1 -10
  13. package/dist/components/interview/proctoring/interview-proctoring.d.ts +1 -0
  14. package/dist/components/interview/question-text.d.ts +4 -0
  15. package/dist/components/interview/transcript/interview-transcript.d.ts +1 -0
  16. package/dist/components/media/spatius-avatar-feed.d.ts +11 -0
  17. package/dist/components/media/video-feed.d.ts +4 -0
  18. package/dist/components/modals/onboarding-modal.d.ts +4 -1
  19. package/dist/components/ui/extended/chat-ui.d.ts +1 -4
  20. package/dist/context/interview-widget-context.d.ts +0 -8
  21. package/dist/context/proctoring-context.d.ts +1 -22
  22. package/dist/hooks/index.d.ts +2 -1
  23. package/dist/hooks/use-network-quality.d.ts +2 -1
  24. package/dist/hooks/use-next-question-stream.d.ts +11 -0
  25. package/dist/hooks/use-question-stream.d.ts +20 -0
  26. package/dist/hooks/use-spatius-question-stream.d.ts +22 -0
  27. package/dist/hooks/use-timer.d.ts +3 -2
  28. package/dist/hooks/use-tts.d.ts +1 -1
  29. package/dist/index-DXUDYyS8.js +17107 -0
  30. package/dist/services/api/endpoints.d.ts +2 -4
  31. package/dist/services/timer/index.d.ts +0 -1
  32. package/dist/services/tts/tts-service.d.ts +3 -2
  33. package/dist/types.d.ts +4 -0
  34. package/dist/utils/constants.d.ts +0 -5
  35. package/dist/utils/crypto.d.ts +0 -7
  36. package/dist/utils/helper.d.ts +0 -4
  37. package/dist/widget.es.3.3.3-beta.1.js +10532 -0
  38. package/dist/widget.umd.3.3.3-beta.1.js +783 -0
  39. package/package.json +10 -11
  40. package/dist/assets/clock-icon.d.ts +0 -1
  41. package/dist/assets/focus-icon.d.ts +0 -1
  42. package/dist/assets/info-icon.d.ts +0 -1
  43. package/dist/assets/keyboard-icon.d.ts +0 -1
  44. package/dist/assets/mic-off-icon.d.ts +0 -1
  45. package/dist/assets/monitor-icon.d.ts +0 -1
  46. package/dist/assets/mouse-pointer-click-icon.d.ts +0 -1
  47. package/dist/assets/scan-face-icon.d.ts +0 -1
  48. package/dist/assets/shield-icon.d.ts +0 -2
  49. package/dist/assets/speak-icon.d.ts +0 -1
  50. package/dist/assets/video-off-icon.d.ts +0 -1
  51. package/dist/assets/volumn-icon.d.ts +0 -1
  52. package/dist/components/interview/answer-area.d.ts +0 -12
  53. package/dist/components/interview/phases/interview-completion-modal.d.ts +0 -7
  54. package/dist/components/interview/proctoring/face-data-permission-modal.d.ts +0 -7
  55. package/dist/components/ui/dialog.d.ts +0 -13
  56. package/dist/components/ui/input.d.ts +0 -8
  57. package/dist/components/ui/media-control-item.d.ts +0 -8
  58. package/dist/hooks/use-dialog.d.ts +0 -6
  59. package/dist/styles.d.ts +0 -0
  60. package/dist/utils/audio-storage.d.ts +0 -24
  61. package/dist/widget.3.3.2.css +0 -1
  62. package/dist/widget.es.3.3.2.js +0 -9795
  63. package/dist/widget.umd.3.3.2.js +0 -179
@@ -1,179 +0,0 @@
1
- (function(Ee,o){typeof exports=="object"&&typeof module<"u"?o(exports,require("react/jsx-runtime"),require("react"),require("react-dom")):typeof define=="function"&&define.amd?define(["exports","react/jsx-runtime","react","react-dom"],o):(Ee=typeof globalThis<"u"?globalThis:Ee||self,o(Ee.InterviewWidget={},Ee.jsxRuntime,Ee.React,Ee.ReactDOM))})(this,function(Ee,o,d,zl){"use strict";var j2=Object.defineProperty;var $2=(Ee,o,d)=>o in Ee?j2(Ee,o,{enumerable:!0,configurable:!0,writable:!0,value:d}):Ee[o]=d;var he=(Ee,o,d)=>$2(Ee,typeof o!="symbol"?o+"":o,d);var xn=typeof document<"u"?document.currentScript:null;const En={},Ze={api:{baseUrl:"/api",retryConfig:{attempts:3,backoff:"exponential",baseDelay:1e3}},ui:{baseColor:"#3B82F6",borderRadius:"8px",retryProgressSavedText:"Your progress is saved — tap Retry or exit the interview. You can come back later and we'll pick up where you left off.",retryMaxAttempts:3,retryNoAttemptsLeftText:"Retry limit reached. Please exit and resume later."},interview:{allow_answer_editing:!0,capture_screenshots:!1,record_video:!1,timers:{thinkingDuration:30,answeringDuration:120,editingDuration:30},stt:{provider:"groq",model:"whisper-large-v3-turbo",language:"en"},tts:{provider:"piper"},proctoring:{enabled:!0,gazeAnalysisEnabled:!0,prevent_unintended_exit:!1}}},kn="iw-storage";function Hl(){if(!(typeof{url:typeof document>"u"&&typeof location>"u"?require("url").pathToFileURL(__filename).href:typeof document>"u"?location.href:xn&&xn.tagName.toUpperCase()==="SCRIPT"&&xn.src||new URL("widget.umd.3.3.2.js",document.baseURI).href}<"u"&&(En!=null&&En.VITE_IW_SECRET)))return typeof process<"u"&&process.env.NEXT_PUBLIC_IW_SECRET?process.env.NEXT_PUBLIC_IW_SECRET:typeof window<"u"&&window.__IW_SECRET__?window.__IW_SECRET__:"proctoring-data-seed"}const uo=Hl(),Ei=30,ho={AUDIO:"audio",SCREENSHOT:"screenshot",VIDEO_RECORDING:"video_recording",RESUME:"resume",REPORT:"report"},fo=d.createContext(null);function wo({config:e={},children:t}){var i,n,s,a,c;const r={api:{...Ze.api,...e.api,retryConfig:{...Ze.api.retryConfig,...(i=e.api)==null?void 0:i.retryConfig}},ui:{...Ze.ui,...e.ui},interview:{...Ze.interview,...e.interview,timers:{...Ze.interview.timers,...(n=e.interview)==null?void 0:n.timers},stt:{...Ze.interview.stt,...(s=e.interview)==null?void 0:s.stt},tts:{...Ze.interview.tts,...(a=e.interview)==null?void 0:a.tts},proctoring:{...Ze.interview.proctoring,...(c=e.interview)==null?void 0:c.proctoring}}};return o.jsx(fo.Provider,{value:r,children:t})}function ki(){const e=d.useContext(fo);if(!e)throw new Error("useInterviewConfig must be used within an InterviewWidgetProvider. Wrap your component tree with <InterviewWidgetProvider config={...}>");return e}function go(){return ki().api||Ze.api}function Gt(){return ki().ui||Ze.ui}function zr(){return ki().interview||Ze.interview}const _n="AES-GCM",Cn=12;async function po(e){const r=new TextEncoder().encode(e),i=await crypto.subtle.digest("SHA-256",r);return crypto.subtle.importKey("raw",i,_n,!1,["encrypt","decrypt"])}function ql(){return crypto.getRandomValues(new Uint8Array(Cn))}async function Yl(e,t="default-seed"){try{const r=typeof e=="string"?e:JSON.stringify(e),n=new TextEncoder().encode(r),s=await po(t),a=ql(),c=await crypto.subtle.encrypt({name:_n,iv:a},s,n),l=new Uint8Array(a.length+c.byteLength);return l.set(new Uint8Array(a),0),l.set(new Uint8Array(c),a.length),btoa(String.fromCharCode(...Array.from(l)))}catch(r){throw console.error("Encryption failed:",r),new Error("Failed to encrypt data")}}async function Kl(e,t="default-seed"){try{const r=atob(e),i=new Uint8Array(r.length);for(let h=0;h<r.length;h++)i[h]=r.charCodeAt(h);const n=i.slice(0,Cn),s=i.slice(Cn),a=await po(t),c=await crypto.subtle.decrypt({name:_n,iv:n},a,s);return new TextDecoder().decode(c)}catch(r){throw console.error("Decryption failed:",r),new Error("Failed to decrypt data")}}async function Xl(e,t="default-seed"){return Yl(e,t)}async function Ql(e,t="default-seed"){const r=await Kl(e,t);try{return JSON.parse(r)}catch{return r}}function Jl(e){var t;if(!navigator.onLine)return{type:"network",message:"No internet connection",retryable:!0,userMessage:"Please check your internet connection and try again."};if(e.name==="AbortError"||(t=e.message)!=null&&t.includes("timeout"))return{type:"timeout",message:"Request timed out",retryable:!0,userMessage:"The request is taking longer than expected. Please try again."};if(e.status){const{status:r}=e;if(r===401||r===403)return{type:"auth",status:r,message:"Authentication failed",retryable:!1,userMessage:"Your session has expired. Please refresh the page."};if(r===429)return{type:"rate-limit",status:r,message:"Too many requests",retryable:!0,userMessage:"Please wait a moment before trying again."};if(r>=500)return{type:"server",status:r,message:`Server error: ${r}`,retryable:!0,userMessage:"Our servers are experiencing issues. Please try again in a few moments."};if(r>=400)return{type:"client",status:r,message:`Client error: ${r}`,retryable:!1,userMessage:"There was an issue with your request. Please check your input."}}return{type:"unknown",message:e.message||"Unknown error occurred",retryable:!0,userMessage:"Something unexpected happened. Please try again.",originalError:e}}async function st(e,t={},r={attempts:3,backoff:"exponential",baseDelay:1e3,maxDelay:1e4,jitter:!0}){let i;for(let n=1;n<=r.attempts;n++)try{const s=new AbortController,a=setTimeout(()=>s.abort(),6e4),c=await fetch(e,{...t,credentials:"include",signal:s.signal});if(clearTimeout(a),c.status>=400&&c.status<500&&c.status!==429)return c;if(!c.ok)throw new Error(`HTTP ${c.status}: ${c.statusText}`);return c}catch(s){i=s;const a=Jl(s);if(!a.retryable||n===r.attempts)throw a;const c=Zl(n,r);console.warn(`API request failed (attempt ${n}/${r.attempts}), retrying in ${c}ms:`,a.message),await new Promise(l=>setTimeout(l,c))}throw i}function Zl(e,t){let r;return t.backoff==="exponential"?r=t.baseDelay*Math.pow(2,e-1):r=t.baseDelay,r=Math.min(r,t.maxDelay),t.jitter&&(r=r*(.5+Math.random()*.5)),Math.round(r)}const yt={v2:"/v2"},ot={GENERATE_QUESTION:e=>`${yt.v2}/interviews/${e}/next-question`,SCREENSHOT_UPLOAD:e=>`${yt.v2}/interviews/${e}/assets/upload-url`,CONFIRM_UPLOAD:e=>`${yt.v2}/interviews/assets/${e}/confirm`,TRANSCRIBE_ANSWER:e=>`${yt.v2}/interviews/${e}/transcribe-answer`,SUBMIT_ANSWER:e=>`${yt.v2}/interviews/${e}/submit-answer`,EXIT:e=>`${yt.v2}/interviews/${e}/exit`,CONFIG:e=>`${yt.v2}/interviews/${e}/config`,TRANSCRIPTION:e=>`${yt.v2}/interviews/${e}/transcript`,VIOLATIONS:e=>`${yt.v2}/interviews/${e}/violations`};class Rl{constructor(t={}){he(this,"config");this.config=t}updateConfig(t){this.config={...this.config,...t}}getHeaders(){var r;const t={"Content-Type":"application/json"};return(r=this.config)!=null&&r.authToken&&(t.Authorization=`Bearer ${this.config.authToken}`),t}getBaseUrl(){var t;return((t=this.config)==null?void 0:t.baseUrl)||"/api"}async generateQuestion({interviewId:t,isInterviewDone:r=!1}){const i=await st(`${this.getBaseUrl()}${ot.GENERATE_QUESTION(t)}`,{method:"POST",headers:this.getHeaders(),body:JSON.stringify({interview_id:t,is_interview_done:r})});if(!i.ok)throw new Error(`Failed to get questions: ${i.status}`);return await i.json()}async submitAnswer({interviewId:t,qnaId:r,answer:i}){const n=await st(`${this.getBaseUrl()}${ot.SUBMIT_ANSWER(t)}`,{method:"POST",headers:this.getHeaders(),body:JSON.stringify({qna_id:r,answer_text:i})});if(!n.ok)throw new Error(`Failed to submit answer: ${n.status}`);return await n.json()}async exitInterview(t){const r=await st(`${this.getBaseUrl()}${ot.EXIT(t)}`,{method:"POST",headers:this.getHeaders()});if(!r.ok)throw new Error(`Failed to exit interview: ${r.status}`)}async getInterviewConfig(t){const r=await st(`${this.getBaseUrl()}${ot.CONFIG(t)}`,{method:"GET",headers:this.getHeaders()});if(!r.ok)throw new Error(`Failed to get interview config: ${r.status}`);return await r.json()}async requestUploadUrl(t,r=`${Date.now()}`,i,n){const s=await st(`${this.getBaseUrl()}${ot.SCREENSHOT_UPLOAD(t)}`,{method:"POST",headers:this.getHeaders(),body:JSON.stringify({filename:r,mime_type:i,asset_type:n})});if(!s.ok)throw new Error(`Failed to request upload URL: ${s.status}`);return await s.json()}async uploadAsset(t,r,i){const n=await fetch(t,{method:"PUT",body:r,headers:{"Content-Type":i}});if(!n.ok)throw new Error(`Failed to upload asset: ${n.status}`)}async confirmAssetUpload(t){const r=await st(`${this.getBaseUrl()}${ot.CONFIRM_UPLOAD(t)}`,{method:"POST",headers:this.getHeaders()});if(!r.ok)throw new Error(`Failed to confirm asset upload: ${r.status}`)}async getInterviewTranscription(t){const r=await st(`${this.getBaseUrl()}${ot.TRANSCRIPTION(t)}`,{method:"GET",headers:{...this.getHeaders()}});if(!r.ok)throw new Error(`Failed to get interview transcription: ${r.status}`);return await r.json()}async getViolations(t){const r=await st(`${this.getBaseUrl()}${ot.VIOLATIONS(t)}`,{method:"GET",headers:this.getHeaders()});if(!r.ok)throw new Error(`Failed to get violations: ${r.status}`);return await r.json()}async updateViolations({interviewId:t,violations:r}){const i=await st(`${this.getBaseUrl()}${ot.VIOLATIONS(t)}`,{method:"PATCH",headers:this.getHeaders(),body:JSON.stringify(r)});if(!i.ok)throw new Error(`Failed to update violations: ${i.status}`);return await i.json()}}function Hr(){const e=ki();return d.useMemo(()=>{const r=e.api||{};return new Rl(r)},[e.api])}const qr=d.createContext(null),ed=async()=>{try{const e=sessionStorage.getItem(kn);if(e){const r=(await Ql(e,uo)).state;return{logViolations:(r==null?void 0:r.logViolations)||[],totalViolations:(r==null?void 0:r.totalViolations)||0,gazeViolationCounters:(r==null?void 0:r.gazeViolationCounters)||{lookingAwayCount:0,noFaceDetectedCount:0,multipleFacesCount:0,totalGazeViolations:0},referenceSet:(r==null?void 0:r.referenceSet)??!1,referenceRef:(r==null?void 0:r.referenceRef)??{x:.5,y:.5,noseX:.5,noseY:.5}}}}catch(e){console.error("Failed to load proctoring data from session storage:",e)}return{logViolations:[],totalViolations:0,gazeViolationCounters:{lookingAwayCount:0,noFaceDetectedCount:0,multipleFacesCount:0,totalGazeViolations:0},referenceSet:!1,referenceRef:{x:.5,y:.5,noseX:.5,noseY:.5}}},sr=async e=>{try{const t=await Xl({state:e,version:0},uo);sessionStorage.setItem(kn,t)}catch(t){console.error("Failed to save proctoring data to session storage:",t)}},td=({children:e,interviewId:t})=>{const r=d.useRef({logViolations:[],totalViolations:0,gazeViolationCounters:{lookingAwayCount:0,noFaceDetectedCount:0,multipleFacesCount:0,totalGazeViolations:0},referenceSet:!1,referenceRef:{x:.5,y:.5,noseX:.5,noseY:.5}}),i=d.useRef(new Set),n=Hr(),s=d.useCallback(()=>{i.current.forEach(p=>p())},[]);d.useEffect(()=>{(async()=>{const y=await ed();if(y.logViolations.length>0&&(r.current=y,s()),t)try{const b=await n.getViolations(t);if(b.success&&b.data){const v=b.data;r.current={...r.current,...v,logViolations:v.logViolations||r.current.logViolations,totalViolations:v.totalViolations??r.current.totalViolations,gazeViolationCounters:v.gazeViolationCounters||r.current.gazeViolationCounters},sr(r.current),s()}}catch(b){console.error("Failed to fetch violations from API:",b)}})()},[t,s]);const a=d.useCallback(async()=>{if(t)try{const{referenceSet:p,referenceRef:y,...b}=r.current;await n.updateViolations({interviewId:t,violations:b})}catch(p){console.error("Failed to sync violations to backend:",p)}},[t]),c=d.useCallback(p=>(i.current.add(p),()=>{i.current.delete(p)}),[]),l=d.useCallback(()=>r.current,[]),h=d.useCallback(p=>{r.current={...r.current,logViolations:[...r.current.logViolations,p],totalViolations:r.current.totalViolations+1},sr(r.current),a(),s()},[s,a]),u=d.useCallback(p=>{const y={...r.current.gazeViolationCounters};p==="looking_away"&&(y.lookingAwayCount+=1),p==="no_face_detected"&&(y.noFaceDetectedCount+=1),p==="multiple_faces"&&(y.multipleFacesCount+=1),y.totalGazeViolations=y.lookingAwayCount+y.noFaceDetectedCount+y.multipleFacesCount,r.current={...r.current,gazeViolationCounters:y},sr(r.current),a(),s()},[s,a]),f=d.useCallback(()=>{r.current={...r.current,logViolations:[],totalViolations:0},sr(r.current),a(),s()},[s,a]),w=d.useCallback(()=>{r.current={...r.current,gazeViolationCounters:{lookingAwayCount:0,noFaceDetectedCount:0,multipleFacesCount:0,totalGazeViolations:0}},sr(r.current),a(),s()},[s,a]),g=d.useCallback((p,y)=>{r.current={...r.current,referenceSet:p,referenceRef:y},sr(r.current),a(),s()},[s,a]),m=d.useMemo(()=>({getState:l,addViolation:h,clearViolations:f,subscribe:c,incrementGazeViolation:u,clearGazeViolationCounters:w,setReferenceData:g}),[l,h,f,c,u,w,g]);return o.jsx(qr.Provider,{value:m,children:e})},mo=()=>{const e=d.useContext(qr);if(!e)throw new Error("useProctoringStore must be used within a ProctoringProvider");const t=d.useSyncExternalStore(e.subscribe,e.getState,e.getState);return{logViolations:t.logViolations,totalViolations:t.totalViolations,addViolation:e.addViolation,clearViolations:e.clearViolations,gazeViolationCounters:t.gazeViolationCounters,referenceSet:t.referenceSet,referenceRef:t.referenceRef,incrementGazeViolation:e.incrementGazeViolation,clearGazeViolationCounters:e.clearGazeViolationCounters,setReferenceData:e.setReferenceData}},rd=()=>{const e=d.useContext(qr);if(!e)throw new Error("useViolations must be used within a ProctoringProvider");return d.useSyncExternalStore(e.subscribe,()=>e.getState().logViolations,()=>e.getState().logViolations)},id=()=>{const e=d.useContext(qr);if(!e)throw new Error("useTotalViolations must be used within a ProctoringProvider");return d.useSyncExternalStore(e.subscribe,()=>e.getState().totalViolations,()=>e.getState().totalViolations)},nd=()=>{const e=d.useContext(qr);if(!e)throw new Error("useProctoringActions must be used within a ProctoringProvider");return{addViolation:e.addViolation,clearViolations:e.clearViolations}};function sd(e){const t=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);return t?{r:parseInt(t[1],16),g:parseInt(t[2],16),b:parseInt(t[3],16)}:null}function od(e,t,r){return"#"+[e,t,r].map(i=>{const n=Math.round(i).toString(16);return n.length===1?"0"+n:n}).join("")}function ad(e,t){const r=sd(e);if(!r)return e;const i=r.r+(255-r.r)*t,n=r.g+(255-r.g)*t,s=r.b+(255-r.b)*t;return od(i,n,s)}function cd(e){return new Promise(t=>setTimeout(t,e))}function ld(e){return`linear-gradient(to left, ${ad(e,.4)}, ${e})`}const dd=()=>Math.random().toString(36).substring(2,15)+Math.random().toString(36).substring(2,15);function ud(e){try{const t=e.split(".");if(t.length!==3||!t[1])throw new Error("Invalid JWT token");const i=t[1].replace(/-/g,"+").replace(/_/g,"/"),n=i.padEnd(i.length+(4-i.length%4)%4,"="),s=atob(n);return JSON.parse(s)}catch(t){return console.error("Error decoding JWT:",t),null}}const hd=e=>{var t;return!e||typeof e!="string"?"":(t=e.charAt(0))==null?void 0:t.toUpperCase()},Sn=(e,t)=>{const r=Math.max(0,Math.floor(e));if(t&&r<60)return`${r}`;const i=Math.floor(r/60).toString().padStart(2,"0"),n=(r%60).toString().padStart(2,"0");return`${i}:${n}`},An=({brandLogo:e,brandName:t,className:r="",showFallbackStyles:i=!0})=>{const{baseColor:n}=Gt();return e?o.jsx("div",{className:r,children:e}):o.jsx("div",{className:i?`iw-h-7 iw-w-7 iw-rounded-md iw-flex iw-items-center iw-justify-center iw-text-white iw-font-semibold ${r}`:r,style:i?{backgroundColor:n}:{},children:hd(t)})};function Nn(){const e=navigator.userAgent;return/Safari/i.test(e)&&!/Chrome/i.test(e)&&!/CriOS/i.test(e)&&!/FxiOS/i.test(e)&&!/EdgA/i.test(e)}function fd(){if(Nn())return"audio/mp4;codecs=mp4a.40.2";const e=["audio/webm;codecs=opus","audio/webm","audio/ogg;codecs=opus","audio/mp4","audio/wav"];for(const t of e)if(MediaRecorder.isTypeSupported(t))return t;return"audio/webm"}function yo(e={}){if(!Nn())return e;const{sampleRate:t,channelCount:r,...i}=e;return i}function wd(){if(!Nn())return 100}function gd(e){e.stop()}const pd=e=>{const t=d.useRef(null),r=d.useRef(null),[i,n]=d.useState(!1),[s,a]=d.useState(!1),[c,l]=d.useState(null),[h,u]=d.useState([]),[f,w]=d.useState([]),[g,m]=d.useState(""),[p,y]=d.useState(""),[b,v]=d.useState(!1),S=d.useCallback(()=>{r.current&&(r.current.getTracks().forEach(_=>_.stop()),r.current=null,l(null))},[]),E=d.useCallback(async()=>{var _,A,D,B;try{const P=await navigator.mediaDevices.enumerateDevices(),q=P.filter(U=>U.kind==="audioinput"),V=P.filter(U=>U.kind==="videoinput");if(u(q),w(V),!g&&q.length>0){const U=(_=r.current)==null?void 0:_.getAudioTracks()[0],X=U==null?void 0:U.getSettings().deviceId;m(X||((A=q[0])==null?void 0:A.deviceId)||"")}if(!p&&V.length>0){const U=(D=r.current)==null?void 0:D.getVideoTracks()[0],X=U==null?void 0:U.getSettings().deviceId;y(X||((B=V[0])==null?void 0:B.deviceId)||"")}}catch(P){console.error("Error enumerating devices:",P)}},[g,p]),x=d.useCallback(async(_,A)=>{const D={width:{ideal:1280},height:{ideal:720},...A?{deviceId:{exact:A}}:{facingMode:"user"}},B=yo({echoCancellation:!0,noiseSuppression:!0,autoGainControl:!0,sampleRate:{ideal:16e3},channelCount:{ideal:1},..._?{deviceId:{exact:_}}:{}});let P=null;try{P=await navigator.mediaDevices.getUserMedia({video:D,audio:B}),n(!0),a(!0)}catch(q){console.warn("Combined media request failed, trying individual.",q);try{const V=await navigator.mediaDevices.getUserMedia({audio:B});n(!0),P=V}catch(V){console.error("Audio permission denied",V),n(!1)}try{const V=await navigator.mediaDevices.getUserMedia({video:D});a(!0),P?V.getTracks().forEach(U=>P.addTrack(U)):P=V}catch(V){console.error("Video permission denied",V),a(!1)}}P?(r.current=P,l(P),t.current&&(t.current.srcObject=P,await t.current.play().catch(q=>console.error("Error playing video element",q)))):(r.current=null,l(null)),await E()},[E]),k=async _=>{_!==g&&(v(!0),m(_),S(),await x(_,p),v(!1))},M=async _=>{_!==p&&(v(!0),y(_),S(),await x(g,_),v(!1))};return d.useEffect(()=>{if(!e){S();return}return x(),()=>S()},[e]),{videoRef:t,audioAllowed:i,videoAllowed:s,audioDevices:h,videoDevices:f,selectedAudioDeviceId:g,selectedVideoDeviceId:p,isDeviceLoading:b,currentStream:c,handleAudioChange:k,handleVideoChange:M,stopStream:S}},_i=e=>o.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",...e,children:[o.jsx("path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3"}),o.jsx("path",{d:"M12 9v4"}),o.jsx("path",{d:"M12 17h.01"})]}),md=e=>o.jsxs("svg",{width:24,height:24,fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",className:"prefix__lucide prefix__lucide-bolt-icon prefix__lucide-bolt",...e,children:[o.jsx("path",{d:"M21 16V8a2 2 0 00-1-1.73l-7-4a2 2 0 00-2 0l-7 4A2 2 0 003 8v8a2 2 0 001 1.73l7 4a2 2 0 002 0l7-4A2 2 0 0021 16z"}),o.jsx("circle",{cx:12,cy:12,r:4})]}),yd=e=>o.jsxs("svg",{width:24,height:24,fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",className:"prefix__lucide prefix__lucide-camera-off-icon prefix__lucide-camera-off",...e,children:[o.jsx("path",{d:"M14.564 14.558a3 3 0 11-4.122-4.121M2 2l20 20"}),o.jsx("path",{d:"M20 20H4a2 2 0 01-2-2V9a2 2 0 012-2h1.997a2 2 0 00.819-.175M9.695 4.024A2 2 0 0110.004 4h3.993a2 2 0 011.76 1.05l.486.9A2 2 0 0018.003 7H20a2 2 0 012 2v7.344"})]}),Ci=e=>o.jsx("svg",{width:"10",height:"9",viewBox:"0 0 10 9",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:o.jsx("path",{d:"M0.75 5.5C0.75 5.5 2.35 6.4125 3.15 7.75C3.15 7.75 5.55 2.5 8.75 0.75",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),bd=({className:e})=>o.jsx("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:e,children:o.jsx("path",{d:"M18 9.00005C18 9.00005 13.5811 15 12 15C10.4188 15 6 9 6 9",stroke:"#062260",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),bo=e=>o.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",...e,children:[o.jsx("path",{d:"M12 2a10 10 0 0 1 7.38 16.75"}),o.jsx("path",{d:"M12 6v6l4 2"}),o.jsx("path",{d:"M2.5 8.875a10 10 0 0 0-.5 3"}),o.jsx("path",{d:"M2.83 16a10 10 0 0 0 2.43 3.4"}),o.jsx("path",{d:"M4.636 5.235a10 10 0 0 1 .891-.857"}),o.jsx("path",{d:"M8.644 21.42a10 10 0 0 0 7.631-.38"})]}),Yr=e=>o.jsx("svg",{className:"iw-w-5 iw-h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",...e,children:o.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})}),vd=e=>o.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",...e,children:[o.jsx("path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0"}),o.jsx("circle",{cx:"12",cy:"12",r:"3"})]}),xd=e=>o.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:[o.jsx("path",{d:"M2.66797 2H13.3346",stroke:"#5C6686",strokeLinecap:"round",strokeLinejoin:"round"}),o.jsx("path",{d:"M3.66797 2V3.35359C3.66797 4.18151 4.05252 4.96247 4.70874 5.46726L8.0013 8L11.2938 5.46726C11.9501 4.96247 12.3346 4.18151 12.3346 3.35359V2",stroke:"#5C6686",strokeLinecap:"round",strokeLinejoin:"round"}),o.jsx("path",{d:"M3.66797 14V12.6464C3.66797 11.8185 4.05252 11.0375 4.70874 10.5327L8.0013 8L11.2938 10.5327C11.9501 11.0375 12.3346 11.8185 12.3346 12.6464V14",stroke:"#5C6686",strokeLinecap:"round",strokeLinejoin:"round"}),o.jsx("path",{d:"M2.66797 14H13.3346",stroke:"#5C6686",strokeLinecap:"round",strokeLinejoin:"round"})]}),vo=({className:e,...t})=>o.jsx("div",{children:o.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:`iw-animate-spin ${e}`,...t,children:[o.jsx("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),o.jsx("path",{d:"M12 6l0 -3"}),o.jsx("path",{d:"M16.25 7.75l2.15 -2.15"}),o.jsx("path",{d:"M18 12l3 0"}),o.jsx("path",{d:"M16.25 16.25l2.15 2.15"}),o.jsx("path",{d:"M12 18l0 3"}),o.jsx("path",{d:"M7.75 16.25l-2.15 2.15"}),o.jsx("path",{d:"M6 12l-3 0"}),o.jsx("path",{d:"M7.75 7.75l-2.15 -2.15"})]})}),Ed=e=>o.jsxs("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:[o.jsx("path",{d:"M17 7V11C17 13.7614 14.7614 16 12 16C9.23858 16 7 13.7614 7 11V7C7 4.23858 9.23858 2 12 2C14.7614 2 17 4.23858 17 7Z",stroke:"currentColor",strokeWidth:"1.5"}),o.jsx("path",{d:"M20 11C20 15.4183 16.4183 19 12 19M12 19C7.58172 19 4 15.4183 4 11M12 19V22M12 22H15M12 22H9",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]}),kd=e=>o.jsx("svg",{width:"6",height:"6",viewBox:"0 0 8 8",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:"iw-text-white",...e,children:o.jsx("path",{d:"M1.5 1.5L6.5 6.5M6.5 1.5L1.5 6.5",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})}),_d=e=>o.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",...e,children:[o.jsx("path",{d:"M8.8 20v-4.1l1.9.2a2.3 2.3 0 0 0 2.164-2.1V8.3A5.37 5.37 0 0 0 2 8.25c0 2.8.656 3.054 1 4.55a5.77 5.77 0 0 1 .029 2.758L2 20"}),o.jsx("path",{d:"M19.8 17.8a7.5 7.5 0 0 0 .003-10.603"}),o.jsx("path",{d:"M17 15a3.5 3.5 0 0 0-.025-4.975"})]}),xo=e=>o.jsxs("svg",{width:24,height:24,fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",className:"prefix__lucide prefix__lucide-target-icon prefix__lucide-target",...e,children:[o.jsx("circle",{cx:12,cy:12,r:10}),o.jsx("circle",{cx:12,cy:12,r:6}),o.jsx("circle",{cx:12,cy:12,r:2})]}),Cd=e=>o.jsxs("svg",{width:24,height:24,fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",className:"prefix__lucide prefix__lucide-users-icon prefix__lucide-users",...e,children:[o.jsx("path",{d:"M16 21v-2a4 4 0 00-4-4H6a4 4 0 00-4 4v2M16 3.128a4 4 0 010 7.744M22 21v-2a4 4 0 00-3-3.87"}),o.jsx("circle",{cx:9,cy:7,r:4})]}),Sd=e=>o.jsxs("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:[o.jsx("path",{d:"M11 8H13",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"}),o.jsx("path",{d:"M2 11C2 7.70017 2 6.05025 3.02513 5.02513C4.05025 4 5.70017 4 9 4H10C13.2998 4 14.9497 4 15.9749 5.02513C17 6.05025 17 7.70017 17 11V13C17 16.2998 17 17.9497 15.9749 18.9749C14.9497 20 13.2998 20 10 20H9C5.70017 20 4.05025 20 3.02513 18.9749C2 17.9497 2 16.2998 2 13V11Z",stroke:"currentColor",strokeWidth:"1.5"}),o.jsx("path",{d:"M17 8.90585L17.1259 8.80196C19.2417 7.05623 20.2996 6.18336 21.1498 6.60482C22 7.02628 22 8.42355 22 11.2181V12.7819C22 15.5765 22 16.9737 21.1498 17.3952C20.2996 17.8166 19.2417 16.9438 17.1259 15.198L17 15.0941",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]}),Eo=e=>o.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",...e,children:[o.jsx("path",{d:"M5 12.55a11 11 0 0 1 14.08 0"}),o.jsx("path",{d:"M1.42 9a16 16 0 0 1 21.16 0"}),o.jsx("path",{d:"M8.53 16.11a6 6 0 0 1 6.95 0"}),o.jsx("circle",{cx:"12",cy:"20",r:"1",fill:"currentColor",stroke:"none"})]}),Ad=e=>o.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",...e,children:[o.jsx("path",{d:"M8.53 16.11a6 6 0 0 1 6.95 0"}),o.jsx("circle",{cx:"12",cy:"20",r:"1",fill:"currentColor",stroke:"none"})]}),Nd=e=>o.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",...e,children:[o.jsx("line",{x1:"2",y1:"2",x2:"22",y2:"22"}),o.jsx("path",{d:"M8.5 16.5a5 5 0 0 1 7 0"}),o.jsx("path",{d:"M2 8.82a15 15 0 0 1 4.17-2.65"}),o.jsx("path",{d:"M10.66 5c4.01-.36 8.14.9 11.34 3.76"}),o.jsx("path",{d:"M16.85 11.25a10 10 0 0 1 2.22 1.68"}),o.jsx("path",{d:"M5 12.9A10 10 0 0 1 7.5 11"}),o.jsx("circle",{cx:"12",cy:"20",r:"1",fill:"currentColor",stroke:"none"})]}),ne={FACE_DETECTED:"face_detected",NO_FACE:"no_face_detected",MULTIPLE_FACES:"multiple_faces",LOOKING_AWAY:"looking_away",CAMERA_ERROR:"camera_error",MODEL_LOADING:"model_loading"},ko={[ne.FACE_DETECTED]:{icon:vd,iconColor:"iw-text-green-600",iconBg:"iw-bg-green-50",iconBorder:"iw-border-green-100",title:"All Good",subtitle:"Everything looks normal",description:"Your gaze is properly focused on the screen. Continue with your interview.",buttonText:"Continue"},[ne.NO_FACE]:{icon:yd,iconColor:"iw-text-orange-600",iconBg:"iw-bg-orange-50",iconBorder:"iw-border-orange-100",title:"Face Not Detected",subtitle:"We can't see you in the camera",description:"Please ensure you're positioned properly in front of the camera and that your face is clearly visible.",buttonText:"I Understood"},[ne.MULTIPLE_FACES]:{icon:Cd,iconColor:"iw-text-red-600",iconBg:"iw-bg-red-50",iconBorder:"iw-border-red-100",title:"Multiple People Detected",subtitle:"More than one person is visible on the screen.",buttonText:"I Understood"},[ne.LOOKING_AWAY]:{icon:xo,iconColor:"iw-text-amber-600",iconBg:"iw-bg-amber-50",iconBorder:"iw-border-amber-200/75",title:"Focus Alert",subtitle:"You looked away from the screen. Maintain focus to continue.",buttonText:"I Understood"},[ne.CAMERA_ERROR]:{icon:_i,iconColor:"iw-text-red-600",iconBg:"iw-bg-red-50",iconBorder:"iw-border-red-100",title:"Camera Issue",subtitle:"There's a problem with your camera",description:"Please check your camera connection and permissions, contact support if the problem continues.",buttonText:"I Understood"},[ne.MODEL_LOADING]:{icon:xo,iconColor:"iw-text-blue-600",iconBg:"iw-bg-blue-50",iconBorder:"iw-border-blue-100",title:"Initializing Model",subtitle:"Please wait while we set up the AI",description:"The face detection model is being loaded. This should only take a moment.",buttonText:"Wait"}},Td=({gazeAnalysisEnabled:e,isModelLoaded:t,stats:r,statusMessage:i,loadingProgress:n})=>o.jsx("div",{className:"iw-w-full",children:o.jsxs("div",{className:"iw-border-strock iw-rounded-md iw-border iw-bg-gray-50 iw-p-4",children:[o.jsxs("h3",{className:"iw-m-0 iw-mb-2.5",children:["Status: ",i]}),n>0&&n<100&&o.jsxs("div",{className:"iw-mb-2.5",children:[o.jsx("div",{className:"iw-h-2 iw-w-full iw-rounded iw-bg-gray-300",children:o.jsx("div",{className:"iw-h-full iw-rounded iw-bg-blue-600 iw-transition-all iw-duration-300 iw-ease-out",style:{width:`${n}%`}})}),o.jsxs("small",{className:"iw-text-gray-600",children:["Loading model... ",n.toFixed(1),"%"]})]}),o.jsxs("div",{className:"iw-grid iw-grid-cols-2 iw-gap-2.5 iw-text-sm",children:[o.jsxs("div",{children:[o.jsx("strong",{children:"FPS:"})," ",o.jsx("span",{className:r.fps<15?"iw-text-red-600":r.fps<25?"iw-text-orange-500":"iw-text-green-600",children:r.fps})]}),o.jsxs("div",{children:[o.jsx("strong",{children:"Model:"})," ",t?"✓ Loaded":"✗ Loading"]}),e&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{children:[o.jsx("strong",{children:"Engagement:"})," ",r.engagement.toFixed(1),"%"]}),o.jsxs("div",{children:[o.jsx("strong",{children:"Looking:"})," ",o.jsx("span",{className:r.isLookingAway?"iw-text-red-600":"iw-text-green-600",children:r.isLookingAway?"Away":"At Screen"})]})]})]}),r.referenceFaceNotDetected&&o.jsxs("div",{className:"iw-text-gray-dark iw-mt-2.5 iw-w-full iw-rounded-md iw-bg-[#ffeb3b] iw-p-2.5 iw-text-sm",children:[o.jsx("strong",{children:"Reference Face Not Detected"}),o.jsx("br",{}),"The previously set reference face is no longer in view."]}),r.multipleFacesDetected&&o.jsxs("div",{className:"iw-mt-2.5 iw-rounded iw-bg-red-50 iw-p-2.5 iw-text-sm iw-text-red-700",children:[o.jsx("strong",{children:"Multiple Faces Detected"}),o.jsx("br",{}),"Please ensure only one person is in the frame."]}),!e&&o.jsxs("div",{className:"iw-mt-2.5 iw-rounded iw-bg-blue-50 iw-p-2.5 iw-text-sm iw-text-blue-700",children:[o.jsx("strong",{children:"Gaze Analysis Disabled"}),o.jsx("br",{}),"Enable to track engagement and attention levels."]})]})}),Id=({showControls:e,isBubbleOpen:t,setIsBubbleOpen:r,setReference:i,clearCache:n,isModelLoaded:s,gazeAnalysisEnabled:a,referenceSet:c,showLandmarks:l,setShowLandmarks:h,showEngagementBar:u,setShowEngagementBar:f,handleToggleGazeAnalysis:w,stats:g,statusMessage:m,loadingProgress:p})=>e?o.jsxs(o.Fragment,{children:[o.jsx("button",{onClick:()=>r(!t),className:"iw-absolute iw-right-4 iw-bottom-4 iw-z-10 iw-flex iw-h-10 iw-w-10 iw-items-center iw-justify-center iw-rounded-full iw-text-white",children:o.jsx(md,{className:"iw-size-4.5"})}),t&&o.jsxs("div",{className:"iw-absolute iw-right-4 iw-bottom-16 iw-z-10 iw-max-h-96 iw-w-80 iw-overflow-y-auto iw-rounded-md iw-bg-gray-50 iw-p-4 iw-shadow-lg",children:[o.jsx("h4",{className:"m-0 mb-2.5",children:"Controls"}),o.jsx("button",{onClick:i,disabled:!s||!a,className:`iw-mb-2.5 iw-block iw-w-full iw-rounded border-none iw-px-4 iw-py-2 iw-text-sm iw-text-white ${!s||!a?"iw-cursor-not-allowed iw-bg-gray-400":"iw-cursor-pointer iw-bg-blue-600 hover:iw-bg-blue-700"}`,children:c?"Reference Set ✓":"Set Reference"}),o.jsx("button",{onClick:n,className:"iw-mb-4 iw-block iw-w-full iw-cursor-pointer iw-rounded iw-border-none iw-bg-red-600 iw-px-4 iw-py-2 iw-text-sm iw-text-white hover:iw-bg-red-700",children:"Clear Model Cache"}),o.jsxs("div",{className:"iw-flex iw-flex-col iw-gap-2.5",children:[o.jsxs("label",{className:"iw-flex iw-cursor-pointer iw-items-center iw-gap-2",children:[o.jsx("input",{type:"checkbox",checked:a,onChange:y=>w(y.target.checked)}),o.jsx("strong",{children:"Enable Gaze Analysis"})]}),o.jsxs("label",{className:`iw-flex iw-cursor-pointer iw-items-center iw-gap-2 ${a?"iw-opacity-100":"iw-opacity-60"}`,children:[o.jsx("input",{type:"checkbox",checked:l,onChange:y=>h(y.target.checked),disabled:!a}),"Show Landmarks"]}),o.jsxs("label",{className:`iw-flex iw-cursor-pointer iw-items-center iw-gap-2 ${a?"iw-opacity-100":"iw-opacity-60"}`,children:[o.jsx("input",{type:"checkbox",checked:u,onChange:y=>f(y.target.checked),disabled:!a}),"Show Engagement Bar"]})]}),c&&o.jsx(Td,{gazeAnalysisEnabled:a,isModelLoaded:s,loadingProgress:p,stats:g,statusMessage:m})]})]}):null;var or=typeof self<"u"?self:{};function Kr(e,t){e:{for(var r=["CLOSURE_FLAGS"],i=or,n=0;n<r.length;n++)if((i=i[r[n]])==null){r=null;break e}r=i}return(e=r&&r[e])!=null?e:t}function jt(){throw Error("Invalid UTF8")}function _o(e,t){return t=String.fromCharCode.apply(null,t),e==null?t:e+t}let Si,Tn;const Fd=typeof TextDecoder<"u";let Ld;const Md=typeof TextEncoder<"u";function Co(e){if(Md)e=(Ld||(Ld=new TextEncoder)).encode(e);else{let r=0;const i=new Uint8Array(3*e.length);for(let n=0;n<e.length;n++){var t=e.charCodeAt(n);if(t<128)i[r++]=t;else{if(t<2048)i[r++]=t>>6|192;else{if(t>=55296&&t<=57343){if(t<=56319&&n<e.length){const s=e.charCodeAt(++n);if(s>=56320&&s<=57343){t=1024*(t-55296)+s-56320+65536,i[r++]=t>>18|240,i[r++]=t>>12&63|128,i[r++]=t>>6&63|128,i[r++]=63&t|128;continue}n--}t=65533}i[r++]=t>>12|224,i[r++]=t>>6&63|128}i[r++]=63&t|128}}e=r===i.length?i:i.subarray(0,r)}return e}function So(e){or.setTimeout(()=>{throw e},0)}var In,Dd=Kr(610401301,!1),Ao=Kr(748402147,!0),Fn=Kr(824648567,!0),Ln=Kr(824656860,Kr(1,!0));function No(){var e=or.navigator;return e&&(e=e.userAgent)?e:""}const To=or.navigator;function Ai(e){return Ai[" "](e),e}In=To&&To.userAgentData||null,Ai[" "]=function(){};const Io={};let Xr=null;function Pd(e){const t=e.length;let r=3*t/4;r%3?r=Math.floor(r):"=.".indexOf(e[t-1])!=-1&&(r="=.".indexOf(e[t-2])!=-1?r-2:r-1);const i=new Uint8Array(r);let n=0;return function(s,a){function c(h){for(;l<s.length;){const u=s.charAt(l++),f=Xr[u];if(f!=null)return f;if(!/^[\s\xa0]*$/.test(u))throw Error("Unknown base64 encoding at char: "+u)}return h}Fo();let l=0;for(;;){const h=c(-1),u=c(0),f=c(64),w=c(64);if(w===64&&h===-1)break;a(h<<2|u>>4),f!=64&&(a(u<<4&240|f>>2),w!=64&&a(f<<6&192|w))}}(e,function(s){i[n++]=s}),n!==r?i.subarray(0,n):i}function Fo(){if(!Xr){Xr={};var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),t=["+/=","+/","-_=","-_.","-_"];for(let r=0;r<5;r++){const i=e.concat(t[r].split(""));Io[r]=i;for(let n=0;n<i.length;n++){const s=i[n];Xr[s]===void 0&&(Xr[s]=n)}}}}var Od=typeof Uint8Array<"u",Lo=!(!(Dd&&In&&In.brands.length>0)&&(No().indexOf("Trident")!=-1||No().indexOf("MSIE")!=-1))&&typeof btoa=="function";const Mo=/[-_.]/g,Bd={"-":"+",_:"/",".":"="};function Ud(e){return Bd[e]||""}function Do(e){if(!Lo)return Pd(e);e=Mo.test(e)?e.replace(Mo,Ud):e,e=atob(e);const t=new Uint8Array(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t}function Mn(e){return Od&&e!=null&&e instanceof Uint8Array}var ar={};function $t(){return Vd||(Vd=new at(null,ar))}function Dn(e){Po(ar);var t=e.g;return(t=t==null||Mn(t)?t:typeof t=="string"?Do(t):null)==null?t:e.g=t}var at=class{h(){return new Uint8Array(Dn(this)||0)}constructor(e,t){if(Po(t),this.g=e,e!=null&&e.length===0)throw Error("ByteString should be constructed with non-empty values")}};let Vd,Gd;function Po(e){if(e!==ar)throw Error("illegal external caller")}function Oo(e,t){e.__closure__error__context__984382||(e.__closure__error__context__984382={}),e.__closure__error__context__984382.severity=t}function Pn(e){return Oo(e=Error(e),"warning"),e}function cr(e,t){if(e!=null){var r=Gd??(Gd={}),i=r[e]||0;i>=t||(r[e]=i+1,Oo(e=Error(),"incident"),So(e))}}function lr(){return typeof BigInt=="function"}var dr=typeof Symbol=="function"&&typeof Symbol()=="symbol";function ct(e,t,r=!1){return typeof Symbol=="function"&&typeof Symbol()=="symbol"?r&&Symbol.for&&e?Symbol.for(e):e!=null?Symbol(e):Symbol():t}var jd=ct("jas",void 0,!0),Bo=ct(void 0,"0di"),Qr=ct(void 0,"1oa"),Fe=ct(void 0,Symbol()),$d=ct(void 0,"0ub"),Wd=ct(void 0,"0ubs"),On=ct(void 0,"0ubsb"),zd=ct(void 0,"0actk"),ur=ct("m_m","Pa",!0),Uo=ct();const Vo={Ga:{value:0,configurable:!0,writable:!0,enumerable:!1}},Go=Object.defineProperties,N=dr?jd:"Ga";var Wt;const jo=[];function Jr(e,t){dr||N in e||Go(e,Vo),e[N]|=t}function fe(e,t){dr||N in e||Go(e,Vo),e[N]=t}function Zr(e){return Jr(e,34),e}function Rr(e){return Jr(e,8192),e}fe(jo,7),Wt=Object.freeze(jo);var hr={};function Le(e,t){return t===void 0?e.h!==zt&&!!(2&(0|e.v[N])):!!(2&t)&&e.h!==zt}const zt={};function Bn(e,t){if(e!=null){if(typeof e=="string")e=e?new at(e,ar):$t();else if(e.constructor!==at)if(Mn(e))e=e.length?new at(new Uint8Array(e),ar):$t();else{if(!t)throw Error();e=void 0}}return e}class $o{constructor(t,r,i){this.g=t,this.h=r,this.l=i}next(){const t=this.g.next();return t.done||(t.value=this.h.call(this.l,t.value)),t}[Symbol.iterator](){return this}}var Hd=Object.freeze({});function Wo(e,t,r){const i=128&t?0:-1,n=e.length;var s;(s=!!n)&&(s=(s=e[n-1])!=null&&typeof s=="object"&&s.constructor===Object);const a=n+(s?-1:0);for(t=128&t?1:0;t<a;t++)r(t-i,e[t]);if(s){e=e[n-1];for(const c in e)!isNaN(c)&&r(+c,e[c])}}var zo={};function fr(e){return 128&e?zo:void 0}function Ni(e){return e.Na=!0,e}var qd=Ni(e=>typeof e=="number"),Ho=Ni(e=>typeof e=="string"),Yd=Ni(e=>typeof e=="boolean"),Ti=typeof or.BigInt=="function"&&typeof or.BigInt(0)=="bigint";function Me(e){var t=e;if(Ho(t)){if(!/^\s*(?:-?[1-9]\d*|0)?\s*$/.test(t))throw Error(String(t))}else if(qd(t)&&!Number.isSafeInteger(t))throw Error(String(t));return Ti?BigInt(e):e=Yd(e)?e?"1":"0":Ho(e)?e.trim()||"0":String(e)}var Un=Ni(e=>Ti?e>=Xd&&e<=Jd:e[0]==="-"?qo(e,Kd):qo(e,Qd));const Kd=Number.MIN_SAFE_INTEGER.toString(),Xd=Ti?BigInt(Number.MIN_SAFE_INTEGER):void 0,Qd=Number.MAX_SAFE_INTEGER.toString(),Jd=Ti?BigInt(Number.MAX_SAFE_INTEGER):void 0;function qo(e,t){if(e.length>t.length)return!1;if(e.length<t.length||e===t)return!0;for(let r=0;r<e.length;r++){const i=e[r],n=t[r];if(i>n)return!1;if(i<n)return!0}}const Zd=typeof Uint8Array.prototype.slice=="function";let Rd,ee=0,ce=0;function Yo(e){const t=e>>>0;ee=t,ce=(e-t)/4294967296>>>0}function wr(e){if(e<0){Yo(-e);const[t,r]=Wn(ee,ce);ee=t>>>0,ce=r>>>0}else Yo(e)}function Vn(e){const t=Rd||(Rd=new DataView(new ArrayBuffer(8)));t.setFloat32(0,+e,!0),ce=0,ee=t.getUint32(0,!0)}function Gn(e,t){const r=4294967296*t+(e>>>0);return Number.isSafeInteger(r)?r:ei(e,t)}function eu(e,t){return Me(lr()?BigInt.asUintN(64,(BigInt(t>>>0)<<BigInt(32))+BigInt(e>>>0)):ei(e,t))}function jn(e,t){const r=2147483648&t;return r&&(t=~t>>>0,(e=1+~e>>>0)==0&&(t=t+1>>>0)),typeof(e=Gn(e,t))=="number"?r?-e:e:r?"-"+e:e}function Ko(e,t){return lr()?Me(BigInt.asIntN(64,(BigInt.asUintN(32,BigInt(t))<<BigInt(32))+BigInt.asUintN(32,BigInt(e)))):Me($n(e,t))}function ei(e,t){if(e>>>=0,(t>>>=0)<=2097151)var r=""+(4294967296*t+e);else lr()?r=""+(BigInt(t)<<BigInt(32)|BigInt(e)):(e=(16777215&e)+6777216*(r=16777215&(e>>>24|t<<8))+6710656*(t=t>>16&65535),r+=8147497*t,t*=2,e>=1e7&&(r+=e/1e7>>>0,e%=1e7),r>=1e7&&(t+=r/1e7>>>0,r%=1e7),r=t+Xo(r)+Xo(e));return r}function Xo(e){return e=String(e),"0000000".slice(e.length)+e}function $n(e,t){if(2147483648&t)if(lr())e=""+(BigInt(0|t)<<BigInt(32)|BigInt(e>>>0));else{const[r,i]=Wn(e,t);e="-"+ei(r,i)}else e=ei(e,t);return e}function Ii(e){if(e.length<16)wr(Number(e));else if(lr())e=BigInt(e),ee=Number(e&BigInt(4294967295))>>>0,ce=Number(e>>BigInt(32)&BigInt(4294967295));else{const t=+(e[0]==="-");ce=ee=0;const r=e.length;for(let i=t,n=(r-t)%6+t;n<=r;i=n,n+=6){const s=Number(e.slice(i,n));ce*=1e6,ee=1e6*ee+s,ee>=4294967296&&(ce+=Math.trunc(ee/4294967296),ce>>>=0,ee>>>=0)}if(t){const[i,n]=Wn(ee,ce);ee=i,ce=n}}}function Wn(e,t){return t=~t,e?e=1+~e:t+=1,[e,t]}function Re(e){return Array.prototype.slice.call(e)}const ti=typeof BigInt=="function"?BigInt.asIntN:void 0,tu=typeof BigInt=="function"?BigInt.asUintN:void 0,Ht=Number.isSafeInteger,Fi=Number.isFinite,gr=Math.trunc,ru=Me(0);function ri(e){if(e!=null&&typeof e!="number")throw Error(`Value of float/double field must be a number, found ${typeof e}: ${e}`);return e}function lt(e){return e==null||typeof e=="number"?e:e==="NaN"||e==="Infinity"||e==="-Infinity"?Number(e):void 0}function ii(e){if(e!=null&&typeof e!="boolean"){var t=typeof e;throw Error(`Expected boolean but got ${t!="object"?t:e?Array.isArray(e)?"array":t:"null"}: ${e}`)}return e}function Qo(e){return e==null||typeof e=="boolean"?e:typeof e=="number"?!!e:void 0}const iu=/^-?([1-9][0-9]*|0)(\.[0-9]+)?$/;function ni(e){switch(typeof e){case"bigint":return!0;case"number":return Fi(e);case"string":return iu.test(e);default:return!1}}function pr(e){if(e==null)return e;if(typeof e=="string"&&e)e=+e;else if(typeof e!="number")return;return Fi(e)?0|e:void 0}function Jo(e){if(e==null)return e;if(typeof e=="string"&&e)e=+e;else if(typeof e!="number")return;return Fi(e)?e>>>0:void 0}function Zo(e){const t=e.length;return(e[0]==="-"?t<20||t===20&&e<="-9223372036854775808":t<19||t===19&&e<="9223372036854775807")?e:(Ii(e),$n(ee,ce))}function zn(e){return e=gr(e),Ht(e)||(wr(e),e=jn(ee,ce)),e}function Ro(e){var t=gr(Number(e));return Ht(t)?String(t):((t=e.indexOf("."))!==-1&&(e=e.substring(0,t)),Zo(e))}function ea(e){var t=gr(Number(e));return Ht(t)?Me(t):((t=e.indexOf("."))!==-1&&(e=e.substring(0,t)),lr()?Me(ti(64,BigInt(e))):Me(Zo(e)))}function ta(e){return Ht(e)?e=Me(zn(e)):(e=gr(e),Ht(e)?e=String(e):(wr(e),e=$n(ee,ce)),e=Me(e)),e}function nu(e){return e==null?e:typeof e=="bigint"?(Un(e)?e=Number(e):(e=ti(64,e),e=Un(e)?Number(e):String(e)),e):ni(e)?typeof e=="number"?zn(e):Ro(e):void 0}function Li(e){const t=typeof e;return e==null?e:t==="bigint"?Me(ti(64,e)):ni(e)?t==="string"?ea(e):ta(e):void 0}function ra(e){if(typeof e!="string")throw Error();return e}function si(e){if(e!=null&&typeof e!="string")throw Error();return e}function ke(e){return e==null||typeof e=="string"?e:void 0}function Hn(e,t,r,i){return e!=null&&e[ur]===hr?e:Array.isArray(e)?((i=(r=0|e[N])|32&i|2&i)!==r&&fe(e,i),new t(e)):(r?2&i?((e=t[Bo])||(Zr((e=new t).v),e=t[Bo]=e),t=e):t=new t:t=void 0,t)}function su(e,t,r){if(t)e:{if(!ni(t=e))throw Pn("int64");switch(typeof t){case"string":t=ea(t);break e;case"bigint":t=Me(ti(64,t));break e;default:t=ta(t)}}else t=Li(e);return(e=t)==null?r?ru:void 0:e}const ou={};let au=function(){try{return Ai(new class extends Map{constructor(){super()}}),!1}catch{return!0}}();class qn{constructor(){this.g=new Map}get(t){return this.g.get(t)}set(t,r){return this.g.set(t,r),this.size=this.g.size,this}delete(t){return t=this.g.delete(t),this.size=this.g.size,t}clear(){this.g.clear(),this.size=this.g.size}has(t){return this.g.has(t)}entries(){return this.g.entries()}keys(){return this.g.keys()}values(){return this.g.values()}forEach(t,r){return this.g.forEach(t,r)}[Symbol.iterator](){return this.entries()}}const cu=au?(Object.setPrototypeOf(qn.prototype,Map.prototype),Object.defineProperties(qn.prototype,{size:{value:0,configurable:!0,enumerable:!0,writable:!0}}),qn):class extends Map{constructor(){super()}};function ia(e){return e}function Yn(e){if(2&e.J)throw Error("Cannot mutate an immutable Map")}var bt=class extends cu{constructor(e,t,r=ia,i=ia){super(),this.J=0|e[N],this.K=t,this.S=r,this.fa=this.K?lu:i;for(let n=0;n<e.length;n++){const s=e[n],a=r(s[0],!1,!0);let c=s[1];t?c===void 0&&(c=null):c=i(s[1],!1,!0,void 0,void 0,this.J),super.set(a,c)}}V(e){return Rr(Array.from(super.entries(),e))}clear(){Yn(this),super.clear()}delete(e){return Yn(this),super.delete(this.S(e,!0,!1))}entries(){if(this.K){var e=super.keys();e=new $o(e,du,this)}else e=super.entries();return e}values(){if(this.K){var e=super.keys();e=new $o(e,bt.prototype.get,this)}else e=super.values();return e}forEach(e,t){this.K?super.forEach((r,i,n)=>{e.call(t,n.get(i),i,n)}):super.forEach(e,t)}set(e,t){return Yn(this),(e=this.S(e,!0,!1))==null?this:t==null?(super.delete(e),this):super.set(e,this.fa(t,!0,!0,this.K,!1,this.J))}Ma(e){const t=this.S(e[0],!1,!0);e=e[1],e=this.K?e===void 0?null:e:this.fa(e,!1,!0,void 0,!1,this.J),super.set(t,e)}has(e){return super.has(this.S(e,!1,!1))}get(e){e=this.S(e,!1,!1);const t=super.get(e);if(t!==void 0){var r=this.K;return r?((r=this.fa(t,!1,!0,r,this.ra,this.J))!==t&&super.set(e,r),r):t}}[Symbol.iterator](){return this.entries()}};function lu(e,t,r,i,n,s){return e=Hn(e,i,r,s),n&&(e=Qn(e)),e}function du(e){return[e,this.get(e)]}let uu;function na(){return uu||(uu=new bt(Zr([]),void 0,void 0,void 0,ou))}function Mi(e){return Fe?e[Fe]:void 0}function Di(e,t){for(const r in e)!isNaN(r)&&t(e,+r,e[r])}bt.prototype.toJSON=void 0;var Kn=class{};const hu={Ka:!0};function fu(e,t){t<100||cr(Wd,1)}function Pi(e,t,r,i){const n=i!==void 0;i=!!i;var s,a=Fe;!n&&dr&&a&&(s=e[a])&&Di(s,fu),a=[];var c=e.length;let l;s=4294967295;let h=!1;const u=!!(64&t),f=u?128&t?0:-1:void 0;1&t||(l=c&&e[c-1],l!=null&&typeof l=="object"&&l.constructor===Object?s=--c:l=void 0,!u||128&t||n||(h=!0,s=s-f+f)),t=void 0;for(var w=0;w<c;w++){let g=e[w];if(g!=null&&(g=r(g,i))!=null)if(u&&w>=s){const m=w-f;(t??(t={}))[m]=g}else a[w]=g}if(l)for(let g in l){if((c=l[g])==null||(c=r(c,i))==null)continue;let m;w=+g,u&&!Number.isNaN(w)&&(m=w+f)<s?a[m]=c:(t??(t={}))[g]=c}return t&&(h?a.push(t):a[s]=t),n&&Fe&&(e=Mi(e))&&e instanceof Kn&&(a[Fe]=function(g){const m=new Kn;return Di(g,(p,y,b)=>{m[y]=Re(b)}),m.da=g.da,m}(e)),a}function wu(e){return e[0]=oi(e[0]),e[1]=oi(e[1]),e}function oi(e){switch(typeof e){case"number":return Number.isFinite(e)?e:""+e;case"bigint":return Un(e)?Number(e):""+e;case"boolean":return e?1:0;case"object":if(Array.isArray(e)){var t=0|e[N];return e.length===0&&1&t?void 0:Pi(e,t,oi)}if(e!=null&&e[ur]===hr)return sa(e);if(e instanceof at){if((t=e.g)==null)e="";else if(typeof t=="string")e=t;else{if(Lo){for(var r="",i=0,n=t.length-10240;i<n;)r+=String.fromCharCode.apply(null,t.subarray(i,i+=10240));r+=String.fromCharCode.apply(null,i?t.subarray(i):t),t=btoa(r)}else{r===void 0&&(r=0),Fo(),r=Io[r],i=Array(Math.floor(t.length/3)),n=r[64]||"";let h=0,u=0;for(;h<t.length-2;h+=3){var s=t[h],a=t[h+1],c=t[h+2],l=r[s>>2];s=r[(3&s)<<4|a>>4],a=r[(15&a)<<2|c>>6],c=r[63&c],i[u++]=l+s+a+c}switch(l=0,c=n,t.length-h){case 2:c=r[(15&(l=t[h+1]))<<2]||n;case 1:t=t[h],i[u]=r[t>>2]+r[(3&t)<<4|l>>4]+c+n}t=i.join("")}e=e.g=t}return e}return e instanceof bt?e=e.size!==0?e.V(wu):void 0:void 0}return e}function sa(e){return Pi(e=e.v,0|e[N],oi)}let gu,pu;function qt(e,t){return oa(e,t[0],t[1])}function oa(e,t,r,i=0){if(e==null){var n=32;r?(e=[r],n|=128):e=[],t&&(n=-16760833&n|(1023&t)<<14)}else{if(!Array.isArray(e))throw Error("narr");if(n=0|e[N],Ao&&1&n)throw Error("rfarr");if(2048&n&&!(2&n)&&function(){if(Ao)throw Error("carr");cr(zd,5)}(),256&n)throw Error("farr");if(64&n)return(n|i)!==n&&fe(e,n|i),e;if(r&&(n|=128,r!==e[0]))throw Error("mid");e:{n|=64;var s=(r=e).length;if(s){var a=s-1;const l=r[a];if(l!=null&&typeof l=="object"&&l.constructor===Object){if((a-=t=128&n?0:-1)>=1024)throw Error("pvtlmt");for(var c in l)(s=+c)<a&&(r[s+t]=l[c],delete l[c]);n=-16760833&n|(1023&a)<<14;break e}}if(t){if((c=Math.max(t,s-(128&n?0:-1)))>1024)throw Error("spvt");n=-16760833&n|(1023&c)<<14}}}return fe(e,64|n|i),e}function mu(e,t){if(typeof e!="object")return e;if(Array.isArray(e)){var r=0|e[N];return e.length===0&&1&r?void 0:aa(e,r,t)}if(e!=null&&e[ur]===hr)return ca(e);if(e instanceof bt){if(2&(t=e.J))return e;if(!e.size)return;if(r=Zr(e.V()),e.K)for(e=0;e<r.length;e++){const i=r[e];let n=i[1];n=n==null||typeof n!="object"?void 0:n!=null&&n[ur]===hr?ca(n):Array.isArray(n)?aa(n,0|n[N],!!(32&t)):void 0,i[1]=n}return r}return e instanceof at?e:void 0}function aa(e,t,r){return 2&t||(!r||4096&t||16&t?e=mr(e,t,!1,r&&!(16&t)):(Jr(e,34),4&t&&Object.freeze(e))),e}function Xn(e,t,r){return e=new e.constructor(t),r&&(e.h=zt),e.m=zt,e}function ca(e){const t=e.v,r=0|t[N];return Le(e,r)?e:Jn(e,t,r)?Xn(e,t):mr(t,r)}function mr(e,t,r,i){return i??(i=!!(34&t)),e=Pi(e,t,mu,i),i=32,r&&(i|=2),fe(e,t=16769217&t|i),e}function Qn(e){const t=e.v,r=0|t[N];return Le(e,r)?Jn(e,t,r)?Xn(e,t,!0):new e.constructor(mr(t,r,!1)):e}function yr(e){if(e.h!==zt)return!1;var t=e.v;return Jr(t=mr(t,0|t[N]),2048),e.v=t,e.h=void 0,e.m=void 0,!0}function br(e){if(!yr(e)&&Le(e,0|e.v[N]))throw Error()}function Yt(e,t){t===void 0&&(t=0|e[N]),32&t&&!(4096&t)&&fe(e,4096|t)}function Jn(e,t,r){return!!(2&r)||!(!(32&r)||4096&r)&&(fe(t,2|r),e.h=zt,!0)}const yu=Me(0),Tt={};function J(e,t,r,i,n){if((t=vt(e.v,t,r,n))!==null||i&&e.m!==zt)return t}function vt(e,t,r,i){if(t===-1)return null;const n=t+(r?0:-1),s=e.length-1;let a,c;if(!(s<1+(r?0:-1))){if(n>=s)if(a=e[s],a!=null&&typeof a=="object"&&a.constructor===Object)r=a[t],c=!0;else{if(n!==s)return;r=a}else r=e[n];if(i&&r!=null){if((i=i(r))==null)return i;if(!Object.is(i,r))return c?a[t]=i:e[n]=i,i}return r}}function Y(e,t,r,i){br(e),we(e=e.v,0|e[N],t,r,i)}function we(e,t,r,i,n){const s=r+(n?0:-1);var a=e.length-1;if(a>=1+(n?0:-1)&&s>=a){const c=e[a];if(c!=null&&typeof c=="object"&&c.constructor===Object)return c[r]=i,t}return s<=a?(e[s]=i,t):(i!==void 0&&(r>=(a=(t??(t=0|e[N]))>>14&1023||536870912)?i!=null&&(e[a+(n?0:-1)]={[r]:i}):e[s]=i),t)}function Kt(){return Hd===void 0?2:4}function Xt(e,t,r,i,n){let s=e.v,a=0|s[N];i=Le(e,a)?1:i,n=!!n||i===3,i===2&&yr(e)&&(s=e.v,a=0|s[N]);let c=(e=Zn(s,t))===Wt?7:0|e[N],l=Rn(c,a);var h=!(4&l);if(h){4&l&&(e=Re(e),c=0,l=Jt(l,a),a=we(s,a,t,e));let u=0,f=0;for(;u<e.length;u++){const w=r(e[u]);w!=null&&(e[f++]=w)}f<u&&(e.length=f),r=-513&(4|l),l=r&=-1025,l&=-4097}return l!==c&&(fe(e,l),2&l&&Object.freeze(e)),la(e,l,s,a,t,i,h,n)}function la(e,t,r,i,n,s,a,c){let l=t;return s===1||s===4&&(2&t||!(16&t)&&32&i)?Qt(t)||((t|=!e.length||a&&!(4096&t)||32&i&&!(4096&t||16&t)?2:256)!==l&&fe(e,t),Object.freeze(e)):(s===2&&Qt(t)&&(e=Re(e),l=0,t=Jt(t,i),i=we(r,i,n,e)),Qt(t)||(c||(t|=16),t!==l&&fe(e,t))),2&t||!(4096&t||16&t)||Yt(r,i),e}function Zn(e,t,r){return e=vt(e,t,r),Array.isArray(e)?e:Wt}function Rn(e,t){return 2&t&&(e|=2),1|e}function Qt(e){return!!(2&e)&&!!(4&e)||!!(256&e)}function da(e){return Bn(e,!0)}function ua(e){e=Re(e);for(let t=0;t<e.length;t++){const r=e[t]=Re(e[t]);Array.isArray(r[1])&&(r[1]=Zr(r[1]))}return Rr(e)}function It(e,t,r,i){br(e),we(e=e.v,0|e[N],t,(i==="0"?Number(r)===0:r===i)?void 0:r)}function vr(e,t,r){if(2&t)throw Error();const i=fr(t);let n=Zn(e,r,i),s=n===Wt?7:0|n[N],a=Rn(s,t);return(2&a||Qt(a)||16&a)&&(a===s||Qt(a)||fe(n,a),n=Re(n),s=0,a=Jt(a,t),we(e,t,r,n,i)),a&=-13,a!==s&&fe(n,a),n}function es(e,t){var r=mc;return rs(ts(e=e.v),e,void 0,r)===t?t:-1}function ts(e){if(dr)return e[Qr]??(e[Qr]=new Map);if(Qr in e)return e[Qr];const t=new Map;return Object.defineProperty(e,Qr,{value:t}),t}function ha(e,t,r,i,n){const s=ts(e),a=rs(s,e,t,r,n);return a!==i&&(a&&(t=we(e,t,a,void 0,n)),s.set(r,i)),t}function rs(e,t,r,i,n){let s=e.get(i);if(s!=null)return s;s=0;for(let a=0;a<i.length;a++){const c=i[a];vt(t,c,n)!=null&&(s!==0&&(r=we(t,r,s,void 0,n)),s=c)}return e.set(i,s),s}function is(e,t,r){let i=0|e[N];const n=fr(i),s=vt(e,r,n);let a;if(s!=null&&s[ur]===hr){if(!Le(s))return yr(s),s.v;a=s.v}else Array.isArray(s)&&(a=s);if(a){const c=0|a[N];2&c&&(a=mr(a,c))}return a=qt(a,t),a!==s&&we(e,i,r,a,n),a}function fa(e,t,r,i,n){let s=!1;if((i=vt(e,i,n,a=>{const c=Hn(a,r,!1,t);return s=c!==a&&c!=null,c}))!=null)return s&&!Le(i)&&Yt(e,t),i}function z(e,t,r,i){let n=e.v,s=0|n[N];if((t=fa(n,s,t,r,i))==null)return t;if(s=0|n[N],!Le(e,s)){const a=Qn(t);a!==t&&(yr(e)&&(n=e.v,s=0|n[N]),s=we(n,s,r,t=a,i),Yt(n,s))}return t}function wa(e,t,r,i,n,s,a,c){var l=Le(e,r);s=l?1:s,a=!!a||s===3,l=c&&!l,(s===2||l)&&yr(e)&&(r=0|(t=e.v)[N]);var h=(e=Zn(t,n))===Wt?7:0|e[N],u=Rn(h,r);if(c=!(4&u)){var f=e,w=r;const g=!!(2&u);g&&(w|=2);let m=!g,p=!0,y=0,b=0;for(;y<f.length;y++){const v=Hn(f[y],i,!1,w);if(v instanceof i){if(!g){const S=Le(v);m&&(m=!S),p&&(p=S)}f[b++]=v}}b<y&&(f.length=b),u|=4,u=p?-4097&u:4096|u,u=m?8|u:-9&u}if(u!==h&&(fe(e,u),2&u&&Object.freeze(e)),l&&!(8&u||!e.length&&(s===1||s===4&&(2&u||!(16&u)&&32&r)))){for(Qt(u)&&(e=Re(e),u=Jt(u,r),r=we(t,r,n,e)),i=e,l=u,h=0;h<i.length;h++)(f=i[h])!==(u=Qn(f))&&(i[h]=u);l|=8,fe(e,u=l=i.length?4096|l:-4097&l)}return la(e,u,t,r,n,s,c,a)}function xt(e,t,r){const i=e.v;return wa(e,i,0|i[N],t,r,Kt(),!1,!0)}function ga(e){return e==null&&(e=void 0),e}function L(e,t,r,i,n){return Y(e,r,i=ga(i),n),i&&!Le(i)&&Yt(e.v),e}function ai(e,t,r,i){e:{var n=i=ga(i);br(e);const s=e.v;let a=0|s[N];if(n==null){const c=ts(s);if(rs(c,s,a,r)!==t)break e;c.set(r,0)}else a=ha(s,a,r,t);we(s,a,t,n)}i&&!Le(i)&&Yt(e.v)}function Jt(e,t){return-273&(2&t?2|e:-3&e)}function ns(e,t,r,i){var n=i;br(e),e=wa(e,i=e.v,0|i[N],r,t,2,!0),n=n??new r,e.push(n),t=r=e===Wt?7:0|e[N],(n=Le(n))?(r&=-9,e.length===1&&(r&=-4097)):r|=4096,r!==t&&fe(e,r),n||Yt(i)}function He(e,t,r){return pr(J(e,t,void 0,r))}function pa(e){return(Ln?J(e,2,void 0,void 0,Li):Li(J(e,2)))??yu}function se(e,t){return J(e,t,void 0,void 0,lt)??0}function Et(e,t,r){if(r!=null){if(typeof r!="number"||!Fi(r))throw Pn("int32");r|=0}Y(e,t,r)}function F(e,t,r){Y(e,t,ri(r))}function De(e,t,r){It(e,t,si(r),"")}function Oi(e,t,r){{br(e);const a=e.v;let c=0|a[N];if(r==null)we(a,c,t);else{var i=e=r===Wt?7:0|r[N],n=Qt(e),s=n||Object.isFrozen(r);for(n||(e=0),s||(r=Re(r),i=0,e=Jt(e,c),s=!1),e|=5,e|=(4&e?512&e?512:1024&e?1024:0:void 0)??(Ln?1024:0),n=0;n<r.length;n++){const l=r[n],h=ra(l);Object.is(l,h)||(s&&(r=Re(r),i=0,e=Jt(e,c),s=!1),r[n]=h)}e!==i&&(s&&(r=Re(r),e=Jt(e,c)),fe(r,e)),we(a,c,t,r)}}}function Bi(e,t,r){br(e),Xt(e,t,ke,2,!0).push(ra(r))}var xr=class{constructor(e,t,r){if(this.buffer=e,r&&!t)throw Error();this.g=t}};function ss(e,t){if(typeof e=="string")return new xr(Do(e),t);if(Array.isArray(e))return new xr(new Uint8Array(e),t);if(e.constructor===Uint8Array)return new xr(e,!1);if(e.constructor===ArrayBuffer)return e=new Uint8Array(e),new xr(e,!1);if(e.constructor===at)return t=Dn(e)||new Uint8Array(0),new xr(t,!0,e);if(e instanceof Uint8Array)return e=e.constructor===Uint8Array?e:new Uint8Array(e.buffer,e.byteOffset,e.byteLength),new xr(e,!1);throw Error()}function Er(e,t){let r,i=0,n=0,s=0;const a=e.h;let c=e.g;do r=a[c++],i|=(127&r)<<s,s+=7;while(s<32&&128&r);if(s>32)for(n|=(127&r)>>4,s=3;s<32&&128&r;s+=7)r=a[c++],n|=(127&r)<<s;if(Zt(e,c),!(128&r))return t(i>>>0,n>>>0);throw Error()}function os(e){let t=0,r=e.g;const i=r+10,n=e.h;for(;r<i;){const s=n[r++];if(t|=s,(128&s)==0)return Zt(e,r),!!(127&t)}throw Error()}function Ft(e){const t=e.h;let r=e.g,i=t[r++],n=127&i;if(128&i&&(i=t[r++],n|=(127&i)<<7,128&i&&(i=t[r++],n|=(127&i)<<14,128&i&&(i=t[r++],n|=(127&i)<<21,128&i&&(i=t[r++],n|=i<<28,128&i&&128&t[r++]&&128&t[r++]&&128&t[r++]&&128&t[r++]&&128&t[r++])))))throw Error();return Zt(e,r),n}function kt(e){return Ft(e)>>>0}function Ui(e){var t=e.h;const r=e.g;var i=t[r],n=t[r+1];const s=t[r+2];return t=t[r+3],Zt(e,e.g+4),e=2*((n=(i<<0|n<<8|s<<16|t<<24)>>>0)>>31)+1,i=n>>>23&255,n&=8388607,i==255?n?NaN:e*(1/0):i==0?1401298464324817e-60*e*n:e*Math.pow(2,i-150)*(n+8388608)}function bu(e){return Ft(e)}function Zt(e,t){if(e.g=t,t>e.l)throw Error()}function ma(e,t){if(t<0)throw Error();const r=e.g;if((t=r+t)>e.l)throw Error();return e.g=t,r}function ya(e,t){if(t==0)return $t();var r=ma(e,t);return e.Y&&e.j?r=e.h.subarray(r,r+t):(e=e.h,r=r===(t=r+t)?new Uint8Array(0):Zd?e.slice(r,t):new Uint8Array(e.subarray(r,t))),r.length==0?$t():new at(r,ar)}var ba=[];function va(e,t,r,i){if(ji.length){const n=ji.pop();return n.o(i),n.g.init(e,t,r,i),n}return new vu(e,t,r,i)}function xa(e){e.g.clear(),e.l=-1,e.h=-1,ji.length<100&&ji.push(e)}function Ea(e){var t=e.g;if(t.g==t.l)return!1;e.m=e.g.g;var r=kt(e.g);if(t=r>>>3,!((r&=7)>=0&&r<=5)||t<1)throw Error();return e.l=t,e.h=r,!0}function Vi(e){switch(e.h){case 0:e.h!=0?Vi(e):os(e.g);break;case 1:Zt(e=e.g,e.g+8);break;case 2:if(e.h!=2)Vi(e);else{var t=kt(e.g);Zt(e=e.g,e.g+t)}break;case 5:Zt(e=e.g,e.g+4);break;case 3:for(t=e.l;;){if(!Ea(e))throw Error();if(e.h==4){if(e.l!=t)throw Error();break}Vi(e)}break;default:throw Error()}}function ci(e,t,r){const i=e.g.l;var n=kt(e.g);let s=(n=e.g.g+n)-i;if(s<=0&&(e.g.l=n,r(t,e,void 0,void 0,void 0),s=n-e.g.g),s)throw Error();return e.g.g=n,e.g.l=i,t}function as(e){var t=kt(e.g),r=ma(e=e.g,t);if(e=e.h,Fd){var i,n=e;(i=Tn)||(i=Tn=new TextDecoder("utf-8",{fatal:!0})),t=r+t,n=r===0&&t===n.length?n:n.subarray(r,t);try{var s=i.decode(n)}catch(c){if(Si===void 0){try{i.decode(new Uint8Array([128]))}catch{}try{i.decode(new Uint8Array([97])),Si=!0}catch{Si=!1}}throw!Si&&(Tn=void 0),c}}else{t=(s=r)+t,r=[];let c,l=null;for(;s<t;){var a=e[s++];a<128?r.push(a):a<224?s>=t?jt():(c=e[s++],a<194||(192&c)!=128?(s--,jt()):r.push((31&a)<<6|63&c)):a<240?s>=t-1?jt():(c=e[s++],(192&c)!=128||a===224&&c<160||a===237&&c>=160||(192&(i=e[s++]))!=128?(s--,jt()):r.push((15&a)<<12|(63&c)<<6|63&i)):a<=244?s>=t-2?jt():(c=e[s++],(192&c)!=128||c-144+(a<<28)>>30||(192&(i=e[s++]))!=128||(192&(n=e[s++]))!=128?(s--,jt()):(a=(7&a)<<18|(63&c)<<12|(63&i)<<6|63&n,a-=65536,r.push(55296+(a>>10&1023),56320+(1023&a)))):jt(),r.length>=8192&&(l=_o(l,r),r.length=0)}s=_o(l,r)}return s}function ka(e){const t=kt(e.g);return ya(e.g,t)}function Gi(e,t,r){var i=kt(e.g);for(i=e.g.g+i;e.g.g<i;)r.push(t(e.g))}var vu=class{constructor(e,t,r,i){if(ba.length){const n=ba.pop();n.init(e,t,r,i),e=n}else e=new class{constructor(n,s,a,c){this.h=null,this.j=!1,this.g=this.l=this.m=0,this.init(n,s,a,c)}init(n,s,a,{Y:c=!1,ea:l=!1}={}){this.Y=c,this.ea=l,n&&(n=ss(n,this.ea),this.h=n.buffer,this.j=n.g,this.m=s||0,this.l=a!==void 0?this.m+a:this.h.length,this.g=this.m)}clear(){this.h=null,this.j=!1,this.g=this.l=this.m=0,this.Y=!1}}(e,t,r,i);this.g=e,this.m=this.g.g,this.h=this.l=-1,this.o(i)}o({ha:e=!1}={}){this.ha=e}},ji=[];function _a(e){return e?/^\d+$/.test(e)?(Ii(e),new cs(ee,ce)):null:xu||(xu=new cs(0,0))}var cs=class{constructor(e,t){this.h=e>>>0,this.g=t>>>0}};let xu;function Ca(e){return e?/^-?\d+$/.test(e)?(Ii(e),new ls(ee,ce)):null:Eu||(Eu=new ls(0,0))}var ls=class{constructor(e,t){this.h=e>>>0,this.g=t>>>0}};let Eu;function kr(e,t,r){for(;r>0||t>127;)e.g.push(127&t|128),t=(t>>>7|r<<25)>>>0,r>>>=7;e.g.push(t)}function _r(e,t){for(;t>127;)e.g.push(127&t|128),t>>>=7;e.g.push(t)}function $i(e,t){if(t>=0)_r(e,t);else{for(let r=0;r<9;r++)e.g.push(127&t|128),t>>=7;e.g.push(1)}}function ds(e){var t=ee;e.g.push(t>>>0&255),e.g.push(t>>>8&255),e.g.push(t>>>16&255),e.g.push(t>>>24&255)}function Cr(e,t){t.length!==0&&(e.l.push(t),e.h+=t.length)}function qe(e,t,r){_r(e.g,8*t+r)}function us(e,t){return qe(e,t,2),t=e.g.end(),Cr(e,t),t.push(e.h),t}function hs(e,t){var r=t.pop();for(r=e.h+e.g.length()-r;r>127;)t.push(127&r|128),r>>>=7,e.h++;t.push(r),e.h++}function Wi(e,t,r){qe(e,t,2),_r(e.g,r.length),Cr(e,e.g.end()),Cr(e,r)}function zi(e,t,r,i){r!=null&&(t=us(e,t),i(r,e),hs(e,t))}function dt(){const e=class{constructor(){throw Error()}};return Object.setPrototypeOf(e,e.prototype),e}var fs=dt(),Sa=dt(),ws=dt(),gs=dt(),Aa=dt(),Na=dt(),ku=dt(),Hi=dt(),Ta=dt(),Ia=dt();function ut(e,t,r){var i=e.v;Fe&&Fe in i&&(i=i[Fe])&&delete i[t.g],t.h?t.j(e,t.h,t.g,r,t.l):t.j(e,t.g,r,t.l)}var T=class{constructor(e,t){this.v=oa(e,t,void 0,2048)}toJSON(){return sa(this)}j(){var n;var e=sh,t=this.v,r=e.g,i=Fe;if(dr&&i&&((n=t[i])==null?void 0:n[r])!=null&&cr($d,3),t=e.g,Uo&&Fe&&Uo===void 0&&(i=(r=this.v)[Fe])&&(i=i.da))try{i(r,t,hu)}catch(s){So(s)}return e.h?e.m(this,e.h,e.g,e.l):e.m(this,e.g,e.defaultValue,e.l)}clone(){const e=this.v,t=0|e[N];return Jn(this,e,t)?Xn(this,e,!0):new this.constructor(mr(e,t,!1))}};T.prototype[ur]=hr,T.prototype.toString=function(){return this.v.toString()};var Sr=class{constructor(e,t,r){this.g=e,this.h=t,e=fs,this.l=!!e&&r===e||!1}};function qi(e,t){return new Sr(e,t,fs)}function Fa(e,t,r,i,n){zi(e,r,Ba(t,i),n)}const _u=qi(function(e,t,r,i,n){return e.h===2&&(ci(e,is(t,i,r),n),!0)},Fa),Cu=qi(function(e,t,r,i,n){return e.h===2&&(ci(e,is(t,i,r),n),!0)},Fa);var Yi=Symbol(),Ki=Symbol(),ps=Symbol(),La=Symbol(),Ma=Symbol();let Da,Pa;function Rt(e,t,r,i){var n=i[e];if(n)return n;(n={}).qa=i,n.T=function(f){switch(typeof f){case"boolean":return gu||(gu=[0,void 0,!0]);case"number":return f>0?void 0:f===0?pu||(pu=[0,void 0]):[-f,void 0];case"string":return[0,f];case"object":return f}}(i[0]);var s=i[1];let a=1;s&&s.constructor===Object&&(n.ba=s,typeof(s=i[++a])=="function"&&(n.ma=!0,Da??(Da=s),Pa??(Pa=i[a+1]),s=i[a+=2]));const c={};for(;s&&Array.isArray(s)&&s.length&&typeof s[0]=="number"&&s[0]>0;){for(var l=0;l<s.length;l++)c[s[l]]=s;s=i[++a]}for(l=1;s!==void 0;){let f;typeof s=="number"&&(l+=s,s=i[++a]);var h=void 0;if(s instanceof Sr?f=s:(f=_u,a--),f==null?void 0:f.l){s=i[++a],h=i;var u=a;typeof s=="function"&&(s=s(),h[u]=s),h=s}for(u=l+1,typeof(s=i[++a])=="number"&&s<0&&(u-=s,s=i[++a]);l<u;l++){const w=c[l];h?r(n,l,f,h,w):t(n,l,f,w)}}return i[e]=n}function Oa(e){return Array.isArray(e)?e[0]instanceof Sr?e:[Cu,e]:[e,void 0]}function Ba(e,t){return e instanceof T?e.v:Array.isArray(e)?qt(e,t):void 0}function ms(e,t,r,i){const n=r.g;e[t]=i?(s,a,c)=>n(s,a,c,i):n}function ys(e,t,r,i,n){const s=r.g;let a,c;e[t]=(l,h,u)=>s(l,h,u,c||(c=Rt(Ki,ms,ys,i).T),a||(a=bs(i)),n)}function bs(e){let t=e[ps];if(t!=null)return t;const r=Rt(Ki,ms,ys,e);return t=r.ma?(i,n)=>Da(i,n,r):(i,n)=>{for(;Ea(n)&&n.h!=4;){var s=n.l,a=r[s];if(a==null){var c=r.ba;c&&(c=c[s])&&(c=Au(c))!=null&&(a=r[s]=c)}if(a==null||!a(n,i,s)){if(a=(c=n).m,Vi(c),c.ha)var l=void 0;else l=c.g.g-a,c.g.g=a,l=ya(c.g,l);a=void 0,c=i,l&&((a=c[Fe]??(c[Fe]=new Kn))[s]??(a[s]=[])).push(l)}}return(i=Mi(i))&&(i.da=r.qa[Ma]),!0},e[ps]=t,e[Ma]=Su.bind(e),t}function Su(e,t,r,i){var n=this[Ki];const s=this[ps],a=qt(void 0,n.T),c=Mi(e);if(c){var l=!1,h=n.ba;if(h){if(n=(u,f,w)=>{if(w.length!==0)if(h[f])for(const g of w){u=va(g);try{l=!0,s(a,u)}finally{xa(u)}}else i==null||i(e,f,w)},t==null)Di(c,n);else if(c!=null){const u=c[t];u&&n(c,t,u)}if(l){let u=0|e[N];if(2&u&&2048&u&&!(r!=null&&r.Ka))throw Error();const f=fr(u),w=(g,m)=>{if(vt(e,g,f)!=null){if((r==null?void 0:r.Qa)===1)return;throw Error()}m!=null&&(u=we(e,u,g,m,f)),delete c[g]};t==null?Wo(a,0|a[N],(g,m)=>{w(g,m)}):w(t,vt(a,t,f))}}}}function Au(e){const t=(e=Oa(e))[0].g;if(e=e[1]){const r=bs(e),i=Rt(Ki,ms,ys,e).T;return(n,s,a)=>t(n,s,a,i,r)}return t}function Xi(e,t,r){e[t]=r.h}function Qi(e,t,r,i){let n,s;const a=r.h;e[t]=(c,l,h)=>a(c,l,h,s||(s=Rt(Yi,Xi,Qi,i).T),n||(n=Ua(i)))}function Ua(e){let t=e[La];if(!t){const r=Rt(Yi,Xi,Qi,e);t=(i,n)=>Va(i,n,r),e[La]=t}return t}function Va(e,t,r){Wo(e,0|e[N],(i,n)=>{if(n!=null){var s=function(a,c){var l=a[c];if(l)return l;if((l=a.ba)&&(l=l[c])){var h=(l=Oa(l))[0].h;if(l=l[1]){const u=Ua(l),f=Rt(Yi,Xi,Qi,l).T;l=a.ma?Pa(f,u):(w,g,m)=>h(w,g,m,f,u)}else l=h;return a[c]=l}}(r,i);s?s(t,n,i):i<500||cr(On,3)}}),(e=Mi(e))&&Di(e,(i,n,s)=>{for(Cr(t,t.g.end()),i=0;i<s.length;i++)Cr(t,Dn(s[i])||new Uint8Array(0))})}const Nu=Me(0);function Ar(e,t){if(Array.isArray(t)){var r=0|t[N];if(4&r)return t;for(var i=0,n=0;i<t.length;i++){const s=e(t[i]);s!=null&&(t[n++]=s)}return n<i&&(t.length=n),(e=-1537&(5|r))!==r&&fe(t,e),2&e&&Object.freeze(t),t}}function Ae(e,t,r){return new Sr(e,t,r)}function Nr(e,t,r){return new Sr(e,t,r)}function pe(e,t,r){we(e,0|e[N],t,r,fr(0|e[N]))}var Tu=qi(function(e,t,r,i,n){if(e.h!==2)return!1;if(e=Re(e=ci(e,qt([void 0,void 0],i),n)),n=fr(i=0|t[N]),2&i)throw Error();let s=vt(t,r,n);if(s instanceof bt)2&s.J?(s=s.V(),s.push(e),we(t,i,r,s,n)):s.Ma(e);else if(Array.isArray(s)){var a=0|s[N];8192&a||fe(s,a|=8192),2&a&&(s=ua(s),we(t,i,r,s,n)),s.push(e)}else we(t,i,r,Rr([e]),n);return!0},function(e,t,r,i,n){if(t instanceof bt)t.forEach((s,a)=>{zi(e,r,qt([a,s],i),n)});else if(Array.isArray(t)){for(let s=0;s<t.length;s++){const a=t[s];Array.isArray(a)&&zi(e,r,qt(a,i),n)}Rr(t)}});function Ga(e,t,r){(t=lt(t))!=null&&(qe(e,r,5),e=e.g,Vn(t),ds(e))}function ja(e,t,r){if(t=function(i){if(i==null)return i;const n=typeof i;if(n==="bigint")return String(ti(64,i));if(ni(i)){if(n==="string")return Ro(i);if(n==="number")return zn(i)}}(t),t!=null&&(typeof t=="string"&&Ca(t),t!=null))switch(qe(e,r,0),typeof t){case"number":e=e.g,wr(t),kr(e,ee,ce);break;case"bigint":r=BigInt.asUintN(64,t),r=new ls(Number(r&BigInt(4294967295)),Number(r>>BigInt(32))),kr(e.g,r.h,r.g);break;default:r=Ca(t),kr(e.g,r.h,r.g)}}function $a(e,t,r){(t=pr(t))!=null&&t!=null&&(qe(e,r,0),$i(e.g,t))}function Wa(e,t,r){(t=Qo(t))!=null&&(qe(e,r,0),e.g.g.push(t?1:0))}function za(e,t,r){(t=ke(t))!=null&&Wi(e,r,Co(t))}function Ha(e,t,r,i,n){zi(e,r,Ba(t,i),n)}function qa(e,t,r){(t=t==null||typeof t=="string"||t instanceof at?t:void 0)!=null&&Wi(e,r,ss(t,!0).buffer)}function Ya(e,t,r){return(e.h===5||e.h===2)&&(t=vr(t,0|t[N],r),e.h==2?Gi(e,Ui,t):t.push(Ui(e.g)),!0)}var le=Ae(function(e,t,r){return e.h===5&&(pe(t,r,Ui(e.g)),!0)},Ga,Hi),Iu=Nr(Ya,function(e,t,r){if((t=Ar(lt,t))!=null)for(let a=0;a<t.length;a++){var i=e,n=r,s=t[a];s!=null&&(qe(i,n,5),i=i.g,Vn(s),ds(i))}},Hi),vs=Nr(Ya,function(e,t,r){if((t=Ar(lt,t))!=null&&t.length){qe(e,r,2),_r(e.g,4*t.length);for(let i=0;i<t.length;i++)r=e.g,Vn(t[i]),ds(r)}},Hi),Fu=Ae(function(e,t,r){return e.h===5&&(pe(t,r,(e=Ui(e.g))===0?void 0:e),!0)},Ga,Hi),Lt=Ae(function(e,t,r){return Fn?(e.h!==0?e=!1:(pe(t,r,Er(e.g,Ko)),e=!0),e):e.h===0&&(pe(t,r,Er(e.g,jn)),!0)},ja,Na),xs=Ae(function(e,t,r){return Fn?(e.h!==0?t=!1:(pe(t,r,(e=Er(e.g,Ko))===Nu?void 0:e),t=!0),t):e.h===0&&(pe(t,r,(e=Er(e.g,jn))===0?void 0:e),!0)},ja,Na),Lu=Ae(function(e,t,r){return Fn?(e.h!==0?e=!1:(pe(t,r,Er(e.g,eu)),e=!0),e):e.h===0&&(pe(t,r,Er(e.g,Gn)),!0)},function(e,t,r){if(t=function(i){if(i==null)return i;var n=typeof i;if(n==="bigint")return String(tu(64,i));if(ni(i)){if(n==="string")return n=gr(Number(i)),Ht(n)&&n>=0?i=String(n):((n=i.indexOf("."))!==-1&&(i=i.substring(0,n)),(n=i[0]!=="-"&&((n=i.length)<20||n===20&&i<="18446744073709551615"))||(Ii(i),i=ei(ee,ce))),i;if(n==="number")return(i=gr(i))>=0&&Ht(i)||(wr(i),i=Gn(ee,ce)),i}}(t),t!=null&&(typeof t=="string"&&_a(t),t!=null))switch(qe(e,r,0),typeof t){case"number":e=e.g,wr(t),kr(e,ee,ce);break;case"bigint":r=BigInt.asUintN(64,t),r=new cs(Number(r&BigInt(4294967295)),Number(r>>BigInt(32))),kr(e.g,r.h,r.g);break;default:r=_a(t),kr(e.g,r.h,r.g)}},ku),me=Ae(function(e,t,r){return e.h===0&&(pe(t,r,Ft(e.g)),!0)},$a,gs),li=Nr(function(e,t,r){return(e.h===0||e.h===2)&&(t=vr(t,0|t[N],r),e.h==2?Gi(e,Ft,t):t.push(Ft(e.g)),!0)},function(e,t,r){if((t=Ar(pr,t))!=null&&t.length){r=us(e,r);for(let i=0;i<t.length;i++)$i(e.g,t[i]);hs(e,r)}},gs),Tr=Ae(function(e,t,r){return e.h===0&&(pe(t,r,(e=Ft(e.g))===0?void 0:e),!0)},$a,gs),oe=Ae(function(e,t,r){return e.h===0&&(pe(t,r,os(e.g)),!0)},Wa,Sa),er=Ae(function(e,t,r){return e.h===0&&(pe(t,r,(e=os(e.g))===!1?void 0:e),!0)},Wa,Sa),_e=Nr(function(e,t,r){return e.h===2&&(e=as(e),vr(t,0|t[N],r).push(e),!0)},function(e,t,r){if((t=Ar(ke,t))!=null)for(let a=0;a<t.length;a++){var i=e,n=r,s=t[a];s!=null&&Wi(i,n,Co(s))}},ws),Mt=Ae(function(e,t,r){return e.h===2&&(pe(t,r,(e=as(e))===""?void 0:e),!0)},za,ws),Q=Ae(function(e,t,r){return e.h===2&&(pe(t,r,as(e)),!0)},za,ws),ye=function(e,t,r=fs){return new Sr(e,t,r)}(function(e,t,r,i,n){return e.h===2&&(i=qt(void 0,i),vr(t,0|t[N],r).push(i),ci(e,i,n),!0)},function(e,t,r,i,n){if(Array.isArray(t)){for(let s=0;s<t.length;s++)Ha(e,t[s],r,i,n);1&(e=0|t[N])||fe(t,1|e)}}),ae=qi(function(e,t,r,i,n,s){if(e.h!==2)return!1;let a=0|t[N];return ha(t,a,s,r,fr(a)),ci(e,t=is(t,i,r),n),!0},Ha),Ka=Ae(function(e,t,r){return e.h===2&&(pe(t,r,ka(e)),!0)},qa,Ta),Mu=Nr(function(e,t,r){return(e.h===0||e.h===2)&&(t=vr(t,0|t[N],r),e.h==2?Gi(e,kt,t):t.push(kt(e.g)),!0)},function(e,t,r){if((t=Ar(Jo,t))!=null)for(let a=0;a<t.length;a++){var i=e,n=r,s=t[a];s!=null&&(qe(i,n,0),_r(i.g,s))}},Aa),Du=Ae(function(e,t,r){return e.h===0&&(pe(t,r,(e=kt(e.g))===0?void 0:e),!0)},function(e,t,r){(t=Jo(t))!=null&&t!=null&&(qe(e,r,0),_r(e.g,t))},Aa),Pe=Ae(function(e,t,r){return e.h===0&&(pe(t,r,Ft(e.g)),!0)},function(e,t,r){(t=pr(t))!=null&&(t=parseInt(t,10),qe(e,r,0),$i(e.g,t))},Ia);class Pu{constructor(t,r){var i=Oe;this.g=t,this.h=r,this.m=z,this.j=L,this.defaultValue=void 0,this.l=i.Oa!=null?zo:void 0}register(){Ai(this)}}function ht(e,t){return new Pu(e,t)}function Dt(e,t){return(r,i)=>{{const s={ea:!0};i&&Object.assign(s,i),r=va(r,void 0,void 0,s);try{const a=new e,c=a.v;bs(t)(c,r);var n=a}finally{xa(r)}}return n}}function Ji(e){return function(){const t=new class{constructor(){this.l=[],this.h=0,this.g=new class{constructor(){this.g=[]}length(){return this.g.length}end(){const a=this.g;return this.g=[],a}}}};Va(this.v,t,Rt(Yi,Xi,Qi,e)),Cr(t,t.g.end());const r=new Uint8Array(t.h),i=t.l,n=i.length;let s=0;for(let a=0;a<n;a++){const c=i[a];r.set(c,s),s+=c.length}return t.l=[r],r}}var Xa=class extends T{constructor(e){super(e)}},Qa=[0,Mt,Ae(function(e,t,r){return e.h===2&&(pe(t,r,(e=ka(e))===$t()?void 0:e),!0)},function(e,t,r){if(t!=null){if(t instanceof T){const i=t.Ra;return void(i?(t=i(t),t!=null&&Wi(e,r,ss(t,!0).buffer)):cr(On,3))}if(Array.isArray(t))return void cr(On,3)}qa(e,t,r)},Ta)];let Es,Ja=globalThis.trustedTypes;function Za(e){var t;return Es===void 0&&(Es=function(){let r=null;if(!Ja)return r;try{const i=n=>n;r=Ja.createPolicy("goog#html",{createHTML:i,createScript:i,createScriptURL:i})}catch{}return r}()),e=(t=Es)?t.createScriptURL(e):e,new class{constructor(r){this.g=r}toString(){return this.g+""}}(e)}function Ou(e,...t){if(t.length===0)return Za(e[0]);let r=e[0];for(let i=0;i<t.length;i++)r+=encodeURIComponent(t[i])+e[i+1];return Za(r)}var Ra=[0,me,Pe,oe,-1,li,Pe,-1,oe],Bu=class extends T{constructor(e){super(e)}},ec=[0,oe,Q,oe,Pe,-1,Nr(function(e,t,r){return(e.h===0||e.h===2)&&(t=vr(t,0|t[N],r),e.h==2?Gi(e,bu,t):t.push(Ft(e.g)),!0)},function(e,t,r){if((t=Ar(pr,t))!=null&&t.length){r=us(e,r);for(let i=0;i<t.length;i++)$i(e.g,t[i]);hs(e,r)}},Ia),Q,-1,[0,oe,-1],Pe,oe,-1],tc=[0,3,oe,-1,2,[0,me],[0,Pe,oe],[0,Q,-1],[0]],rc=[0,Q,-2],ic=class extends T{constructor(e){super(e)}},nc=[0],sc=[0,me,oe,1,oe,-4],Oe=class extends T{constructor(e){super(e,2)}},ge={};ge[336783863]=[0,Q,oe,-1,me,[0,[1,2,3,4,5,6,7,8,9],ae,nc,ae,ec,ae,rc,ae,sc,ae,Ra,ae,[0,Q,-2],ae,[0,Q,Pe],ae,tc,ae,[0,Pe,-1,oe]],[0,Q],oe,[0,[1,3],[2,4],ae,[0,li],-1,ae,[0,_e],-1,ye,[0,Q,-1]],Q];var oc=[0,xs,-1,er,-3,xs,li,Mt,Tr,xs,-1,er,Tr,er,-2,Mt];function Z(e,t){Bi(e,3,t)}function G(e,t){Bi(e,4,t)}var Ne=class extends T{constructor(e){super(e,500)}o(e){return L(this,0,7,e)}},di=[-1,{}],ac=[0,Q,1,di],cc=[0,Q,_e,di];function Ye(e,t){ns(e,1,Ne,t)}function te(e,t){Bi(e,10,t)}function H(e,t){Bi(e,15,t)}var Be=class extends T{constructor(e){super(e,500)}o(e){return L(this,0,1001,e)}},lc=[-500,ye,[-500,Mt,-1,_e,-3,[-2,ge,oe],ye,Qa,Tr,-1,ac,cc,ye,[0,Mt,er],Mt,oc,Tr,_e,987,_e],4,ye,[-500,Q,-1,[-1,{}],998,Q],ye,[-500,Q,_e,-1,[-2,{},oe],997,_e,-1],Tr,ye,[-500,Q,_e,di,998,_e],_e,Tr,ac,cc,ye,[0,Mt,-1,di],_e,-2,oc,Mt,-1,er,[0,er,Du],978,di,ye,Qa];Be.prototype.g=Ji(lc);var Uu=Dt(Be,lc),Vu=class extends T{constructor(e){super(e)}},dc=class extends T{constructor(e){super(e)}g(){return xt(this,Vu,1)}},uc=[0,ye,[0,me,le,Q,-1]],Zi=Dt(dc,uc),Gu=class extends T{constructor(e){super(e)}},ju=class extends T{constructor(e){super(e)}},ks=class extends T{constructor(e){super(e)}l(){return z(this,Gu,2)}g(){return xt(this,ju,5)}},hc=Dt(class extends T{constructor(e){super(e)}},[0,_e,li,vs,[0,Pe,[0,me,-3],[0,le,-3],[0,me,-1,[0,ye,[0,me,-2]]],ye,[0,le,-1,Q,le]],Q,-1,Lt,ye,[0,me,le],_e,Lt]),fc=class extends T{constructor(e){super(e)}},Ir=Dt(class extends T{constructor(e){super(e)}},[0,ye,[0,le,-4]]),wc=class extends T{constructor(e){super(e)}},ui=Dt(class extends T{constructor(e){super(e)}},[0,ye,[0,le,-4]]),$u=class extends T{constructor(e){super(e)}},Wu=[0,me,-1,vs,Pe],gc=class extends T{constructor(e){super(e)}};gc.prototype.g=Ji([0,le,-4,Lt]);var zu=class extends T{constructor(e){super(e)}},Hu=Dt(class extends T{constructor(e){super(e)}},[0,ye,[0,1,me,Q,uc],Lt]),pc=class extends T{constructor(e){super(e)}},qu=class extends T{constructor(e){super(e)}na(){const e=J(this,1,void 0,void 0,da);return e??$t()}},Yu=class extends T{constructor(e){super(e)}},mc=[1,2],Ku=Dt(class extends T{constructor(e){super(e)}},[0,ye,[0,mc,ae,[0,vs],ae,[0,Ka],me,Q],Lt]),_s=class extends T{constructor(e){super(e)}},yc=[0,Q,me,le,_e,-1],bc=class extends T{constructor(e){super(e)}},Xu=[0,oe,-1],vc=class extends T{constructor(e){super(e)}},Ri=[1,2,3,4,5,6],en=class extends T{constructor(e){super(e)}g(){return J(this,1,void 0,void 0,da)!=null}l(){return ke(J(this,2))!=null}},ie=class extends T{constructor(e){super(e)}g(){return Qo(J(this,2))??!1}},xc=[0,Ka,Q,[0,me,Lt,-1],[0,Lu,Lt]],de=[0,xc,oe,[0,Ri,ae,sc,ae,ec,ae,Ra,ae,nc,ae,rc,ae,tc],Pe],tn=class extends T{constructor(e){super(e)}},Cs=[0,de,le,-1,me],Qu=ht(502141897,tn);ge[502141897]=Cs;var Ju=Dt(class extends T{constructor(e){super(e)}},[0,[0,Pe,-1,Iu,Mu],Wu]),Ec=class extends T{constructor(e){super(e)}},kc=class extends T{constructor(e){super(e)}},Ss=[0,de,le,[0,de],oe],Zu=ht(508968150,kc);ge[508968150]=[0,de,Cs,Ss,le,[0,[0,xc]]],ge[508968149]=Ss;var Fr=class extends T{constructor(e){super(e)}l(){return z(this,_s,2)}g(){Y(this,2)}},_c=[0,de,yc];ge[478825465]=_c;var Ru=class extends T{constructor(e){super(e)}},Cc=class extends T{constructor(e){super(e)}},As=class extends T{constructor(e){super(e)}},Ns=class extends T{constructor(e){super(e)}},Sc=class extends T{constructor(e){super(e)}},Ac=[0,de,[0,de],_c,-1],Nc=[0,de,le,me],Ts=[0,de,le],Tc=[0,de,Nc,Ts,le],eh=ht(479097054,Sc);ge[479097054]=[0,de,Tc,Ac],ge[463370452]=Ac,ge[464864288]=Nc;var th=ht(462713202,Ns);ge[462713202]=Tc,ge[474472470]=Ts;var rh=class extends T{constructor(e){super(e)}},Ic=class extends T{constructor(e){super(e)}},Fc=class extends T{constructor(e){super(e)}},Lc=class extends T{constructor(e){super(e)}},Is=[0,de,le,-1,me],Fs=[0,de,le,oe];Lc.prototype.g=Ji([0,de,Ts,[0,de],Cs,Ss,Is,Fs]);var Mc=class extends T{constructor(e){super(e)}},ih=ht(456383383,Mc);ge[456383383]=[0,de,yc];var Dc=class extends T{constructor(e){super(e)}},nh=ht(476348187,Dc);ge[476348187]=[0,de,Xu];var Pc=class extends T{constructor(e){super(e)}},Oc=class extends T{constructor(e){super(e)}},Bc=[0,Pe,-1],sh=ht(458105876,class extends T{constructor(e){super(e)}g(){let e;var t=this.v;const r=0|t[N];return e=Le(this,r),t=function(i,n,s,a){var c=Oc;!a&&yr(i)&&(s=0|(n=i.v)[N]);var l=vt(n,2);if(i=!1,l==null){if(a)return na();l=[]}else if(l.constructor===bt){if(!(2&l.J)||a)return l;l=l.V()}else Array.isArray(l)?i=!!(2&(0|l[N])):l=[];if(a){if(!l.length)return na();i||(i=!0,Zr(l))}else i&&(i=!1,Rr(l),l=ua(l));return!i&&32&s&&Jr(l,32),s=we(n,s,2,a=new bt(l,c,su,void 0)),i||Yt(n,s),a}(this,t,r,e),!e&&Oc&&(t.ra=!0),t}});ge[458105876]=[0,Bc,Tu,[!0,Lt,[0,Q,-1,_e]],[0,li,oe,Pe]];var Ls=class extends T{constructor(e){super(e)}},Uc=ht(458105758,Ls);ge[458105758]=[0,de,Q,Bc];var Ms=class extends T{constructor(e){super(e)}},Vc=[0,Fu,-1,er],oh=class extends T{constructor(e){super(e)}},Gc=class extends T{constructor(e){super(e)}},Ds=[1,2];Gc.prototype.g=Ji([0,Ds,ae,Vc,ae,[0,ye,Vc]]);var jc=class extends T{constructor(e){super(e)}},ah=ht(443442058,jc);ge[443442058]=[0,de,Q,me,le,_e,-1,oe,le],ge[514774813]=Is;var $c=class extends T{constructor(e){super(e)}},ch=ht(516587230,$c);function Ps(e,t){return t=t?t.clone():new _s,e.displayNamesLocale!==void 0?Y(t,1,si(e.displayNamesLocale)):e.displayNamesLocale===void 0&&Y(t,1),e.maxResults!==void 0?Et(t,2,e.maxResults):"maxResults"in e&&Y(t,2),e.scoreThreshold!==void 0?F(t,3,e.scoreThreshold):"scoreThreshold"in e&&Y(t,3),e.categoryAllowlist!==void 0?Oi(t,4,e.categoryAllowlist):"categoryAllowlist"in e&&Y(t,4),e.categoryDenylist!==void 0?Oi(t,5,e.categoryDenylist):"categoryDenylist"in e&&Y(t,5),t}function Wc(e){const t=Number(e);return Number.isSafeInteger(t)?t:String(e)}function Os(e,t=-1,r=""){return{categories:e.map(i=>({index:He(i,1)??0??-1,score:se(i,2)??0,categoryName:ke(J(i,3))??""??"",displayName:ke(J(i,4))??""??""})),headIndex:t,headName:r}}function lh(e){const t={classifications:xt(e,zu,1).map(r=>{var i;return Os(((i=z(r,dc,4))==null?void 0:i.g())??[],He(r,2)??0,ke(J(r,3))??"")})};return function(r){return nu(Ln?J(r,2,void 0,void 0,Li):J(r,2))}(e)!=null&&(t.timestampMs=Wc(pa(e))),t}function zc(e){var a,c;var t=Xt(e,3,lt,Kt()),r=Xt(e,2,pr,Kt()),i=Xt(e,1,ke,Kt()),n=Xt(e,9,ke,Kt());const s={categories:[],keypoints:[]};for(let l=0;l<t.length;l++)s.categories.push({score:t[l],index:r[l]??-1,categoryName:i[l]??"",displayName:n[l]??""});if((t=(a=z(e,ks,4))==null?void 0:a.l())&&(s.boundingBox={originX:He(t,1,Tt)??0,originY:He(t,2,Tt)??0,width:He(t,3,Tt)??0,height:He(t,4,Tt)??0,angle:0}),(c=z(e,ks,4))==null?void 0:c.g().length)for(const l of z(e,ks,4).g())s.keypoints.push({x:J(l,1,void 0,Tt,lt)??0,y:J(l,2,void 0,Tt,lt)??0,score:J(l,4,void 0,Tt,lt)??0,label:ke(J(l,3,void 0,Tt))??""});return s}function rn(e){const t=[];for(const r of xt(e,wc,1))t.push({x:se(r,1)??0,y:se(r,2)??0,z:se(r,3)??0,visibility:se(r,4)??0});return t}function hi(e){const t=[];for(const r of xt(e,fc,1))t.push({x:se(r,1)??0,y:se(r,2)??0,z:se(r,3)??0,visibility:se(r,4)??0});return t}function Hc(e){return Array.from(e,t=>t>127?t-256:t)}function qc(e,t){if(e.length!==t.length)throw Error(`Cannot compute cosine similarity between embeddings of different sizes (${e.length} vs. ${t.length}).`);let r=0,i=0,n=0;for(let s=0;s<e.length;s++)r+=e[s]*t[s],i+=e[s]*e[s],n+=t[s]*t[s];if(i<=0||n<=0)throw Error("Cannot compute cosine similarity on embedding with 0 norm.");return r/Math.sqrt(i*n)}let nn;ge[516587230]=[0,de,Is,Fs,le],ge[518928384]=Fs;const dh=new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,96,0,1,123,3,2,1,0,10,10,1,8,0,65,0,253,15,253,98,11]);async function Yc(){if(nn===void 0)try{await WebAssembly.instantiate(dh),nn=!0}catch{nn=!1}return nn}async function fi(e,t=Ou``){const r=await Yc()?"wasm_internal":"wasm_nosimd_internal";return{wasmLoaderPath:`${t}/${e}_${r}.js`,wasmBinaryPath:`${t}/${e}_${r}.wasm`}}var tr=class{};function Kc(){var e=navigator;return typeof OffscreenCanvas<"u"&&(!function(t=navigator){return(t=t.userAgent).includes("Safari")&&!t.includes("Chrome")}(e)||!!((e=e.userAgent.match(/Version\/([\d]+).*Safari/))&&e.length>=1&&Number(e[1])>=17))}async function Xc(e){if(typeof importScripts!="function"){const t=document.createElement("script");return t.src=e.toString(),t.crossOrigin="anonymous",new Promise((r,i)=>{t.addEventListener("load",()=>{r()},!1),t.addEventListener("error",n=>{i(n)},!1),document.body.appendChild(t)})}try{importScripts(e.toString())}catch(t){if(!(t instanceof TypeError))throw t;await self.import(e.toString())}}function Qc(e){return e.videoWidth!==void 0?[e.videoWidth,e.videoHeight]:e.naturalWidth!==void 0?[e.naturalWidth,e.naturalHeight]:e.displayWidth!==void 0?[e.displayWidth,e.displayHeight]:[e.width,e.height]}function I(e,t,r){e.m||console.error("No wasm multistream support detected: ensure dependency inclusion of :gl_graph_runner_internal_multi_input target"),r(t=e.i.stringToNewUTF8(t)),e.i._free(t)}function Jc(e,t,r){if(!e.i.canvas)throw Error("No OpenGL canvas configured.");if(r?e.i._bindTextureToStream(r):e.i._bindTextureToCanvas(),!(r=e.i.canvas.getContext("webgl2")||e.i.canvas.getContext("webgl")))throw Error("Failed to obtain WebGL context from the provided canvas. `getContext()` should only be invoked with `webgl` or `webgl2`.");e.i.gpuOriginForWebTexturesIsBottomLeft&&r.pixelStorei(r.UNPACK_FLIP_Y_WEBGL,!0),r.texImage2D(r.TEXTURE_2D,0,r.RGBA,r.RGBA,r.UNSIGNED_BYTE,t),e.i.gpuOriginForWebTexturesIsBottomLeft&&r.pixelStorei(r.UNPACK_FLIP_Y_WEBGL,!1);const[i,n]=Qc(t);return!e.l||i===e.i.canvas.width&&n===e.i.canvas.height||(e.i.canvas.width=i,e.i.canvas.height=n),[i,n]}function Zc(e,t,r){e.m||console.error("No wasm multistream support detected: ensure dependency inclusion of :gl_graph_runner_internal_multi_input target");const i=new Uint32Array(t.length);for(let n=0;n<t.length;n++)i[n]=e.i.stringToNewUTF8(t[n]);t=e.i._malloc(4*i.length),e.i.HEAPU32.set(i,t>>2),r(t);for(const n of i)e.i._free(n);e.i._free(t)}function ft(e,t,r){e.i.simpleListeners=e.i.simpleListeners||{},e.i.simpleListeners[t]=r}function Pt(e,t,r){let i=[];e.i.simpleListeners=e.i.simpleListeners||{},e.i.simpleListeners[t]=(n,s,a)=>{s?(r(i,a),i=[]):i.push(n)}}tr.forVisionTasks=function(e){return fi("vision",e)},tr.forTextTasks=function(e){return fi("text",e)},tr.forGenAiExperimentalTasks=function(e){return fi("genai_experimental",e)},tr.forGenAiTasks=function(e){return fi("genai",e)},tr.forAudioTasks=function(e){return fi("audio",e)},tr.isSimdSupported=function(){return Yc()};async function uh(e,t,r,i){return e=await(async(n,s,a,c,l)=>{if(s&&await Xc(s),!self.ModuleFactory||a&&(await Xc(a),!self.ModuleFactory))throw Error("ModuleFactory not set.");return self.Module&&l&&((s=self.Module).locateFile=l.locateFile,l.mainScriptUrlOrBlob&&(s.mainScriptUrlOrBlob=l.mainScriptUrlOrBlob)),l=await self.ModuleFactory(self.Module||l),self.ModuleFactory=self.Module=void 0,new n(l,c)})(e,r.wasmLoaderPath,r.assetLoaderPath,t,{locateFile:n=>n.endsWith(".wasm")?r.wasmBinaryPath.toString():r.assetBinaryPath&&n.endsWith(".data")?r.assetBinaryPath.toString():n}),await e.o(i),e}function Bs(e,t){const r=z(e.baseOptions,en,1)||new en;typeof t=="string"?(Y(r,2,si(t)),Y(r,1)):t instanceof Uint8Array&&(Y(r,1,Bn(t,!1)),Y(r,2)),L(e.baseOptions,0,1,r)}function Rc(e){try{const t=e.H.length;if(t===1)throw Error(e.H[0].message);if(t>1)throw Error("Encountered multiple errors: "+e.H.map(r=>r.message).join(", "))}finally{e.H=[]}}function C(e,t){e.C=Math.max(e.C,t)}function sn(e,t){e.B=new Ne,De(e.B,2,"PassThroughCalculator"),Z(e.B,"free_memory"),G(e.B,"free_memory_unused_out"),te(t,"free_memory"),Ye(t,e.B)}function Lr(e,t){Z(e.B,t),G(e.B,t+"_unused_out")}function on(e){e.g.addBoolToStream(!0,"free_memory",e.C)}var Us=class{constructor(e){this.g=e,this.H=[],this.C=0,this.g.setAutoRenderToScreen(!1)}l(e,t=!0){var r,i,n,s,a,c;if(t){const l=e.baseOptions||{};if((r=e.baseOptions)!=null&&r.modelAssetBuffer&&((i=e.baseOptions)!=null&&i.modelAssetPath))throw Error("Cannot set both baseOptions.modelAssetPath and baseOptions.modelAssetBuffer");if(!((n=z(this.baseOptions,en,1))!=null&&n.g()||(s=z(this.baseOptions,en,1))!=null&&s.l()||(a=e.baseOptions)!=null&&a.modelAssetBuffer||(c=e.baseOptions)!=null&&c.modelAssetPath))throw Error("Either baseOptions.modelAssetPath or baseOptions.modelAssetBuffer must be set");if(function(h,u){let f=z(h.baseOptions,vc,3);if(!f){var w=f=new vc,g=new ic;ai(w,4,Ri,g)}"delegate"in u&&(u.delegate==="GPU"?(u=f,w=new Bu,ai(u,2,Ri,w)):(u=f,w=new ic,ai(u,4,Ri,w))),L(h.baseOptions,0,3,f)}(this,l),l.modelAssetPath)return fetch(l.modelAssetPath.toString()).then(h=>{if(h.ok)return h.arrayBuffer();throw Error(`Failed to fetch model: ${l.modelAssetPath} (${h.status})`)}).then(h=>{try{this.g.i.FS_unlink("/model.dat")}catch{}this.g.i.FS_createDataFile("/","model.dat",new Uint8Array(h),!0,!1,!1),Bs(this,"/model.dat"),this.m(),this.L()});if(l.modelAssetBuffer instanceof Uint8Array)Bs(this,l.modelAssetBuffer);else if(l.modelAssetBuffer)return async function(h){const u=[];for(var f=0;;){const{done:w,value:g}=await h.read();if(w)break;u.push(g),f+=g.length}if(u.length===0)return new Uint8Array(0);if(u.length===1)return u[0];h=new Uint8Array(f),f=0;for(const w of u)h.set(w,f),f+=w.length;return h}(l.modelAssetBuffer).then(h=>{Bs(this,h),this.m(),this.L()})}return this.m(),this.L(),Promise.resolve()}L(){}ca(){let e;if(this.g.ca(t=>{e=Uu(t)}),!e)throw Error("Failed to retrieve CalculatorGraphConfig");return e}setGraph(e,t){this.g.attachErrorListener((r,i)=>{this.H.push(Error(i))}),this.g.Ja(),this.g.setGraph(e,t),this.B=void 0,Rc(this)}finishProcessing(){this.g.finishProcessing(),Rc(this)}close(){this.B=void 0,this.g.closeGraph()}};function Ot(e,t){if(!e)throw Error(`Unable to obtain required WebGL resource: ${t}`);return e}Us.prototype.close=Us.prototype.close;class hh{constructor(t,r,i,n){this.g=t,this.h=r,this.m=i,this.l=n}bind(){this.g.bindVertexArray(this.h)}close(){this.g.deleteVertexArray(this.h),this.g.deleteBuffer(this.m),this.g.deleteBuffer(this.l)}}function el(e,t,r){const i=e.g;if(r=Ot(i.createShader(r),"Failed to create WebGL shader"),i.shaderSource(r,t),i.compileShader(r),!i.getShaderParameter(r,i.COMPILE_STATUS))throw Error(`Could not compile WebGL shader: ${i.getShaderInfoLog(r)}`);return i.attachShader(e.h,r),r}function tl(e,t){const r=e.g,i=Ot(r.createVertexArray(),"Failed to create vertex array");r.bindVertexArray(i);const n=Ot(r.createBuffer(),"Failed to create buffer");r.bindBuffer(r.ARRAY_BUFFER,n),r.enableVertexAttribArray(e.O),r.vertexAttribPointer(e.O,2,r.FLOAT,!1,0,0),r.bufferData(r.ARRAY_BUFFER,new Float32Array([-1,-1,-1,1,1,1,1,-1]),r.STATIC_DRAW);const s=Ot(r.createBuffer(),"Failed to create buffer");return r.bindBuffer(r.ARRAY_BUFFER,s),r.enableVertexAttribArray(e.L),r.vertexAttribPointer(e.L,2,r.FLOAT,!1,0,0),r.bufferData(r.ARRAY_BUFFER,new Float32Array(t?[0,1,0,0,1,0,1,1]:[0,0,0,1,1,1,1,0]),r.STATIC_DRAW),r.bindBuffer(r.ARRAY_BUFFER,null),r.bindVertexArray(null),new hh(r,i,n,s)}function Vs(e,t){if(e.g){if(t!==e.g)throw Error("Cannot change GL context once initialized")}else e.g=t}function fh(e,t,r,i){return Vs(e,t),e.h||(e.m(),e.D()),r?(e.u||(e.u=tl(e,!0)),r=e.u):(e.A||(e.A=tl(e,!1)),r=e.A),t.useProgram(e.h),r.bind(),e.l(),e=i(),r.g.bindVertexArray(null),e}function rl(e,t,r){return Vs(e,t),e=Ot(t.createTexture(),"Failed to create texture"),t.bindTexture(t.TEXTURE_2D,e),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,r??t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,r??t.LINEAR),t.bindTexture(t.TEXTURE_2D,null),e}function il(e,t,r){Vs(e,t),e.B||(e.B=Ot(t.createFramebuffer(),"Failed to create framebuffe.")),t.bindFramebuffer(t.FRAMEBUFFER,e.B),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,r,0)}function wh(e){var t;(t=e.g)==null||t.bindFramebuffer(e.g.FRAMEBUFFER,null)}var nl=class{H(){return`
2
- precision mediump float;
3
- varying vec2 vTex;
4
- uniform sampler2D inputTexture;
5
- void main() {
6
- gl_FragColor = texture2D(inputTexture, vTex);
7
- }
8
- `}m(){const e=this.g;if(this.h=Ot(e.createProgram(),"Failed to create WebGL program"),this.X=el(this,`
9
- attribute vec2 aVertex;
10
- attribute vec2 aTex;
11
- varying vec2 vTex;
12
- void main(void) {
13
- gl_Position = vec4(aVertex, 0.0, 1.0);
14
- vTex = aTex;
15
- }`,e.VERTEX_SHADER),this.W=el(this,this.H(),e.FRAGMENT_SHADER),e.linkProgram(this.h),!e.getProgramParameter(this.h,e.LINK_STATUS))throw Error(`Error during program linking: ${e.getProgramInfoLog(this.h)}`);this.O=e.getAttribLocation(this.h,"aVertex"),this.L=e.getAttribLocation(this.h,"aTex")}D(){}l(){}close(){if(this.h){const e=this.g;e.deleteProgram(this.h),e.deleteShader(this.X),e.deleteShader(this.W)}this.B&&this.g.deleteFramebuffer(this.B),this.A&&this.A.close(),this.u&&this.u.close()}};function _t(e,t){switch(t){case 0:return e.g.find(r=>r instanceof Uint8Array);case 1:return e.g.find(r=>r instanceof Float32Array);case 2:return e.g.find(r=>typeof WebGLTexture<"u"&&r instanceof WebGLTexture);default:throw Error(`Type is not supported: ${t}`)}}function Gs(e){var t=_t(e,1);if(!t){if(t=_t(e,0))t=new Float32Array(t).map(i=>i/255);else{t=new Float32Array(e.width*e.height);const i=Mr(e);var r=js(e);if(il(r,i,sl(e)),"iPad Simulator;iPhone Simulator;iPod Simulator;iPad;iPhone;iPod".split(";").includes(navigator.platform)||navigator.userAgent.includes("Mac")&&"document"in self&&"ontouchend"in self.document){r=new Float32Array(e.width*e.height*4),i.readPixels(0,0,e.width,e.height,i.RGBA,i.FLOAT,r);for(let n=0,s=0;n<t.length;++n,s+=4)t[n]=r[s]}else i.readPixels(0,0,e.width,e.height,i.RED,i.FLOAT,t)}e.g.push(t)}return t}function sl(e){let t=_t(e,2);if(!t){const r=Mr(e);t=al(e);const i=Gs(e),n=ol(e);r.texImage2D(r.TEXTURE_2D,0,n,e.width,e.height,0,r.RED,r.FLOAT,i),$s(e)}return t}function Mr(e){if(!e.canvas)throw Error("Conversion to different image formats require that a canvas is passed when initializing the image.");return e.h||(e.h=Ot(e.canvas.getContext("webgl2"),"You cannot use a canvas that is already bound to a different type of rendering context.")),e.h}function ol(e){if(e=Mr(e),!an)if(e.getExtension("EXT_color_buffer_float")&&e.getExtension("OES_texture_float_linear")&&e.getExtension("EXT_float_blend"))an=e.R32F;else{if(!e.getExtension("EXT_color_buffer_half_float"))throw Error("GPU does not fully support 4-channel float32 or float16 formats");an=e.R16F}return an}function js(e){return e.l||(e.l=new nl),e.l}function al(e){const t=Mr(e);t.viewport(0,0,e.width,e.height),t.activeTexture(t.TEXTURE0);let r=_t(e,2);return r||(r=rl(js(e),t,e.m?t.LINEAR:t.NEAREST),e.g.push(r),e.j=!0),t.bindTexture(t.TEXTURE_2D,r),r}function $s(e){e.h.bindTexture(e.h.TEXTURE_2D,null)}var an,be=class{constructor(e,t,r,i,n,s,a){this.g=e,this.m=t,this.j=r,this.canvas=i,this.l=n,this.width=s,this.height=a,this.j&&--cl===0&&console.error("You seem to be creating MPMask instances without invoking .close(). This leaks resources.")}Fa(){return!!_t(this,0)}ka(){return!!_t(this,1)}R(){return!!_t(this,2)}ja(){return(t=_t(e=this,0))||(t=Gs(e),t=new Uint8Array(t.map(r=>Math.round(255*r))),e.g.push(t)),t;var e,t}ia(){return Gs(this)}N(){return sl(this)}clone(){const e=[];for(const t of this.g){let r;if(t instanceof Uint8Array)r=new Uint8Array(t);else if(t instanceof Float32Array)r=new Float32Array(t);else{if(!(t instanceof WebGLTexture))throw Error(`Type is not supported: ${t}`);{const i=Mr(this),n=js(this);i.activeTexture(i.TEXTURE1),r=rl(n,i,this.m?i.LINEAR:i.NEAREST),i.bindTexture(i.TEXTURE_2D,r);const s=ol(this);i.texImage2D(i.TEXTURE_2D,0,s,this.width,this.height,0,i.RED,i.FLOAT,null),i.bindTexture(i.TEXTURE_2D,null),il(n,i,r),fh(n,i,!1,()=>{al(this),i.clearColor(0,0,0,0),i.clear(i.COLOR_BUFFER_BIT),i.drawArrays(i.TRIANGLE_FAN,0,4),$s(this)}),wh(n),$s(this)}}e.push(r)}return new be(e,this.m,this.R(),this.canvas,this.l,this.width,this.height)}close(){this.j&&Mr(this).deleteTexture(_t(this,2)),cl=-1}};be.prototype.close=be.prototype.close,be.prototype.clone=be.prototype.clone,be.prototype.getAsWebGLTexture=be.prototype.N,be.prototype.getAsFloat32Array=be.prototype.ia,be.prototype.getAsUint8Array=be.prototype.ja,be.prototype.hasWebGLTexture=be.prototype.R,be.prototype.hasFloat32Array=be.prototype.ka,be.prototype.hasUint8Array=be.prototype.Fa;var cl=250;function et(...e){return e.map(([t,r])=>({start:t,end:r}))}const gh=function(e){return class extends e{Ja(){this.i._registerModelResourcesGraphService()}}}((ll=class{constructor(e,t){this.l=!0,this.i=e,this.g=null,this.h=0,this.m=typeof this.i._addIntToInputStream=="function",t!==void 0?this.i.canvas=t:Kc()?this.i.canvas=new OffscreenCanvas(1,1):(console.warn("OffscreenCanvas not supported and GraphRunner constructor glCanvas parameter is undefined. Creating backup canvas."),this.i.canvas=document.createElement("canvas"))}async initializeGraph(e){const t=await(await fetch(e)).arrayBuffer();e=!(e.endsWith(".pbtxt")||e.endsWith(".textproto")),this.setGraph(new Uint8Array(t),e)}setGraphFromString(e){this.setGraph(new TextEncoder().encode(e),!1)}setGraph(e,t){const r=e.length,i=this.i._malloc(r);this.i.HEAPU8.set(e,i),t?this.i._changeBinaryGraph(r,i):this.i._changeTextGraph(r,i),this.i._free(i)}configureAudio(e,t,r,i,n){this.i._configureAudio||console.warn('Attempting to use configureAudio without support for input audio. Is build dep ":gl_graph_runner_audio" missing?'),I(this,i||"input_audio",s=>{I(this,n=n||"audio_header",a=>{this.i._configureAudio(s,a,e,t??0,r)})})}setAutoResizeCanvas(e){this.l=e}setAutoRenderToScreen(e){this.i._setAutoRenderToScreen(e)}setGpuBufferVerticalFlip(e){this.i.gpuOriginForWebTexturesIsBottomLeft=e}ca(e){ft(this,"__graph_config__",t=>{e(t)}),I(this,"__graph_config__",t=>{this.i._getGraphConfig(t,void 0)}),delete this.i.simpleListeners.__graph_config__}attachErrorListener(e){this.i.errorListener=e}attachEmptyPacketListener(e,t){this.i.emptyPacketListeners=this.i.emptyPacketListeners||{},this.i.emptyPacketListeners[e]=t}addAudioToStream(e,t,r){this.addAudioToStreamWithShape(e,0,0,t,r)}addAudioToStreamWithShape(e,t,r,i,n){const s=4*e.length;this.h!==s&&(this.g&&this.i._free(this.g),this.g=this.i._malloc(s),this.h=s),this.i.HEAPF32.set(e,this.g/4),I(this,i,a=>{this.i._addAudioToInputStream(this.g,t,r,a,n)})}addGpuBufferToStream(e,t,r){I(this,t,i=>{const[n,s]=Jc(this,e,i);this.i._addBoundTextureToStream(i,n,s,r)})}addBoolToStream(e,t,r){I(this,t,i=>{this.i._addBoolToInputStream(e,i,r)})}addDoubleToStream(e,t,r){I(this,t,i=>{this.i._addDoubleToInputStream(e,i,r)})}addFloatToStream(e,t,r){I(this,t,i=>{this.i._addFloatToInputStream(e,i,r)})}addIntToStream(e,t,r){I(this,t,i=>{this.i._addIntToInputStream(e,i,r)})}addUintToStream(e,t,r){I(this,t,i=>{this.i._addUintToInputStream(e,i,r)})}addStringToStream(e,t,r){I(this,t,i=>{I(this,e,n=>{this.i._addStringToInputStream(n,i,r)})})}addStringRecordToStream(e,t,r){I(this,t,i=>{Zc(this,Object.keys(e),n=>{Zc(this,Object.values(e),s=>{this.i._addFlatHashMapToInputStream(n,s,Object.keys(e).length,i,r)})})})}addProtoToStream(e,t,r,i){I(this,r,n=>{I(this,t,s=>{const a=this.i._malloc(e.length);this.i.HEAPU8.set(e,a),this.i._addProtoToInputStream(a,e.length,s,n,i),this.i._free(a)})})}addEmptyPacketToStream(e,t){I(this,e,r=>{this.i._addEmptyPacketToInputStream(r,t)})}addBoolVectorToStream(e,t,r){I(this,t,i=>{const n=this.i._allocateBoolVector(e.length);if(!n)throw Error("Unable to allocate new bool vector on heap.");for(const s of e)this.i._addBoolVectorEntry(n,s);this.i._addBoolVectorToInputStream(n,i,r)})}addDoubleVectorToStream(e,t,r){I(this,t,i=>{const n=this.i._allocateDoubleVector(e.length);if(!n)throw Error("Unable to allocate new double vector on heap.");for(const s of e)this.i._addDoubleVectorEntry(n,s);this.i._addDoubleVectorToInputStream(n,i,r)})}addFloatVectorToStream(e,t,r){I(this,t,i=>{const n=this.i._allocateFloatVector(e.length);if(!n)throw Error("Unable to allocate new float vector on heap.");for(const s of e)this.i._addFloatVectorEntry(n,s);this.i._addFloatVectorToInputStream(n,i,r)})}addIntVectorToStream(e,t,r){I(this,t,i=>{const n=this.i._allocateIntVector(e.length);if(!n)throw Error("Unable to allocate new int vector on heap.");for(const s of e)this.i._addIntVectorEntry(n,s);this.i._addIntVectorToInputStream(n,i,r)})}addUintVectorToStream(e,t,r){I(this,t,i=>{const n=this.i._allocateUintVector(e.length);if(!n)throw Error("Unable to allocate new unsigned int vector on heap.");for(const s of e)this.i._addUintVectorEntry(n,s);this.i._addUintVectorToInputStream(n,i,r)})}addStringVectorToStream(e,t,r){I(this,t,i=>{const n=this.i._allocateStringVector(e.length);if(!n)throw Error("Unable to allocate new string vector on heap.");for(const s of e)I(this,s,a=>{this.i._addStringVectorEntry(n,a)});this.i._addStringVectorToInputStream(n,i,r)})}addBoolToInputSidePacket(e,t){I(this,t,r=>{this.i._addBoolToInputSidePacket(e,r)})}addDoubleToInputSidePacket(e,t){I(this,t,r=>{this.i._addDoubleToInputSidePacket(e,r)})}addFloatToInputSidePacket(e,t){I(this,t,r=>{this.i._addFloatToInputSidePacket(e,r)})}addIntToInputSidePacket(e,t){I(this,t,r=>{this.i._addIntToInputSidePacket(e,r)})}addUintToInputSidePacket(e,t){I(this,t,r=>{this.i._addUintToInputSidePacket(e,r)})}addStringToInputSidePacket(e,t){I(this,t,r=>{I(this,e,i=>{this.i._addStringToInputSidePacket(i,r)})})}addProtoToInputSidePacket(e,t,r){I(this,r,i=>{I(this,t,n=>{const s=this.i._malloc(e.length);this.i.HEAPU8.set(e,s),this.i._addProtoToInputSidePacket(s,e.length,n,i),this.i._free(s)})})}addBoolVectorToInputSidePacket(e,t){I(this,t,r=>{const i=this.i._allocateBoolVector(e.length);if(!i)throw Error("Unable to allocate new bool vector on heap.");for(const n of e)this.i._addBoolVectorEntry(i,n);this.i._addBoolVectorToInputSidePacket(i,r)})}addDoubleVectorToInputSidePacket(e,t){I(this,t,r=>{const i=this.i._allocateDoubleVector(e.length);if(!i)throw Error("Unable to allocate new double vector on heap.");for(const n of e)this.i._addDoubleVectorEntry(i,n);this.i._addDoubleVectorToInputSidePacket(i,r)})}addFloatVectorToInputSidePacket(e,t){I(this,t,r=>{const i=this.i._allocateFloatVector(e.length);if(!i)throw Error("Unable to allocate new float vector on heap.");for(const n of e)this.i._addFloatVectorEntry(i,n);this.i._addFloatVectorToInputSidePacket(i,r)})}addIntVectorToInputSidePacket(e,t){I(this,t,r=>{const i=this.i._allocateIntVector(e.length);if(!i)throw Error("Unable to allocate new int vector on heap.");for(const n of e)this.i._addIntVectorEntry(i,n);this.i._addIntVectorToInputSidePacket(i,r)})}addUintVectorToInputSidePacket(e,t){I(this,t,r=>{const i=this.i._allocateUintVector(e.length);if(!i)throw Error("Unable to allocate new unsigned int vector on heap.");for(const n of e)this.i._addUintVectorEntry(i,n);this.i._addUintVectorToInputSidePacket(i,r)})}addStringVectorToInputSidePacket(e,t){I(this,t,r=>{const i=this.i._allocateStringVector(e.length);if(!i)throw Error("Unable to allocate new string vector on heap.");for(const n of e)I(this,n,s=>{this.i._addStringVectorEntry(i,s)});this.i._addStringVectorToInputSidePacket(i,r)})}attachBoolListener(e,t){ft(this,e,t),I(this,e,r=>{this.i._attachBoolListener(r)})}attachBoolVectorListener(e,t){Pt(this,e,t),I(this,e,r=>{this.i._attachBoolVectorListener(r)})}attachIntListener(e,t){ft(this,e,t),I(this,e,r=>{this.i._attachIntListener(r)})}attachIntVectorListener(e,t){Pt(this,e,t),I(this,e,r=>{this.i._attachIntVectorListener(r)})}attachUintListener(e,t){ft(this,e,t),I(this,e,r=>{this.i._attachUintListener(r)})}attachUintVectorListener(e,t){Pt(this,e,t),I(this,e,r=>{this.i._attachUintVectorListener(r)})}attachDoubleListener(e,t){ft(this,e,t),I(this,e,r=>{this.i._attachDoubleListener(r)})}attachDoubleVectorListener(e,t){Pt(this,e,t),I(this,e,r=>{this.i._attachDoubleVectorListener(r)})}attachFloatListener(e,t){ft(this,e,t),I(this,e,r=>{this.i._attachFloatListener(r)})}attachFloatVectorListener(e,t){Pt(this,e,t),I(this,e,r=>{this.i._attachFloatVectorListener(r)})}attachStringListener(e,t){ft(this,e,t),I(this,e,r=>{this.i._attachStringListener(r)})}attachStringVectorListener(e,t){Pt(this,e,t),I(this,e,r=>{this.i._attachStringVectorListener(r)})}attachProtoListener(e,t,r){ft(this,e,t),I(this,e,i=>{this.i._attachProtoListener(i,r||!1)})}attachProtoVectorListener(e,t,r){Pt(this,e,t),I(this,e,i=>{this.i._attachProtoVectorListener(i,r||!1)})}attachAudioListener(e,t,r){this.i._attachAudioListener||console.warn('Attempting to use attachAudioListener without support for output audio. Is build dep ":gl_graph_runner_audio_out" missing?'),ft(this,e,(i,n)=>{i=new Float32Array(i.buffer,i.byteOffset,i.length/4),t(i,n)}),I(this,e,i=>{this.i._attachAudioListener(i,r||!1)})}finishProcessing(){this.i._waitUntilIdle()}closeGraph(){this.i._closeGraph(),this.i.simpleListeners=void 0,this.i.emptyPacketListeners=void 0}},class extends ll{get ga(){return this.i}pa(e,t,r){I(this,t,i=>{const[n,s]=Jc(this,e,i);this.ga._addBoundTextureAsImageToStream(i,n,s,r)})}Z(e,t){ft(this,e,t),I(this,e,r=>{this.ga._attachImageListener(r)})}aa(e,t){Pt(this,e,t),I(this,e,r=>{this.ga._attachImageVectorListener(r)})}}));var ll,tt=class extends gh{};async function W(e,t,r){return async function(i,n,s,a){return uh(i,n,s,a)}(e,r.canvas??(Kc()?void 0:document.createElement("canvas")),t,r)}function dl(e,t,r,i){if(e.U){const s=new gc;if(r!=null&&r.regionOfInterest){if(!e.oa)throw Error("This task doesn't support region-of-interest.");var n=r.regionOfInterest;if(n.left>=n.right||n.top>=n.bottom)throw Error("Expected RectF with left < right and top < bottom.");if(n.left<0||n.top<0||n.right>1||n.bottom>1)throw Error("Expected RectF values to be in [0,1].");F(s,1,(n.left+n.right)/2),F(s,2,(n.top+n.bottom)/2),F(s,4,n.right-n.left),F(s,3,n.bottom-n.top)}else F(s,1,.5),F(s,2,.5),F(s,4,1),F(s,3,1);if(r!=null&&r.rotationDegrees){if((r==null?void 0:r.rotationDegrees)%90!=0)throw Error("Expected rotation to be a multiple of 90°.");if(F(s,5,-Math.PI*r.rotationDegrees/180),(r==null?void 0:r.rotationDegrees)%180!=0){const[a,c]=Qc(t);r=se(s,3)*c/a,n=se(s,4)*a/c,F(s,4,r),F(s,3,n)}}e.g.addProtoToStream(s.g(),"mediapipe.NormalizedRect",e.U,i)}e.g.pa(t,e.X,i??performance.now()),e.finishProcessing()}function rt(e,t,r){var i;if((i=e.baseOptions)!=null&&i.g())throw Error("Task is not initialized with image mode. 'runningMode' must be set to 'IMAGE'.");dl(e,t,r,e.C+1)}function wt(e,t,r,i){var n;if(!((n=e.baseOptions)!=null&&n.g()))throw Error("Task is not initialized with video mode. 'runningMode' must be set to 'VIDEO'.");dl(e,t,r,i)}function Dr(e,t,r,i){var n=t.data;const s=t.width,a=s*(t=t.height);if((n instanceof Uint8Array||n instanceof Float32Array)&&n.length!==a)throw Error("Unsupported channel count: "+n.length/a);return e=new be([n],r,!1,e.g.i.canvas,e.P,s,t),i?e.clone():e}var Ue=class extends Us{constructor(e,t,r,i){super(e),this.g=e,this.X=t,this.U=r,this.oa=i,this.P=new nl}l(e,t=!0){if("runningMode"in e&&Y(this.baseOptions,2,ii(!!e.runningMode&&e.runningMode!=="IMAGE")),e.canvas!==void 0&&this.g.i.canvas!==e.canvas)throw Error("You must create a new task to reset the canvas.");return super.l(e,t)}close(){this.P.close(),super.close()}};Ue.prototype.close=Ue.prototype.close;var Ke=class extends Ue{constructor(e,t){super(new tt(e,t),"image_in","norm_rect_in",!1),this.j={detections:[]},L(e=this.h=new tn,0,1,t=new ie),F(this.h,2,.5),F(this.h,3,.3)}get baseOptions(){return z(this.h,ie,1)}set baseOptions(e){L(this.h,0,1,e)}o(e){return"minDetectionConfidence"in e&&F(this.h,2,e.minDetectionConfidence??.5),"minSuppressionThreshold"in e&&F(this.h,3,e.minSuppressionThreshold??.3),this.l(e)}F(e,t){return this.j={detections:[]},rt(this,e,t),this.j}G(e,t,r){return this.j={detections:[]},wt(this,e,r,t),this.j}m(){var e=new Be;te(e,"image_in"),te(e,"norm_rect_in"),H(e,"detections");const t=new Oe;ut(t,Qu,this.h);const r=new Ne;De(r,2,"mediapipe.tasks.vision.face_detector.FaceDetectorGraph"),Z(r,"IMAGE:image_in"),Z(r,"NORM_RECT:norm_rect_in"),G(r,"DETECTIONS:detections"),r.o(t),Ye(e,r),this.g.attachProtoVectorListener("detections",(i,n)=>{for(const s of i)i=hc(s),this.j.detections.push(zc(i));C(this,n)}),this.g.attachEmptyPacketListener("detections",i=>{C(this,i)}),e=e.g(),this.setGraph(new Uint8Array(e),!0)}};Ke.prototype.detectForVideo=Ke.prototype.G,Ke.prototype.detect=Ke.prototype.F,Ke.prototype.setOptions=Ke.prototype.o,Ke.createFromModelPath=async function(e,t){return W(Ke,e,{baseOptions:{modelAssetPath:t}})},Ke.createFromModelBuffer=function(e,t){return W(Ke,e,{baseOptions:{modelAssetBuffer:t}})},Ke.createFromOptions=function(e,t){return W(Ke,e,t)};var Ws=et([61,146],[146,91],[91,181],[181,84],[84,17],[17,314],[314,405],[405,321],[321,375],[375,291],[61,185],[185,40],[40,39],[39,37],[37,0],[0,267],[267,269],[269,270],[270,409],[409,291],[78,95],[95,88],[88,178],[178,87],[87,14],[14,317],[317,402],[402,318],[318,324],[324,308],[78,191],[191,80],[80,81],[81,82],[82,13],[13,312],[312,311],[311,310],[310,415],[415,308]),zs=et([263,249],[249,390],[390,373],[373,374],[374,380],[380,381],[381,382],[382,362],[263,466],[466,388],[388,387],[387,386],[386,385],[385,384],[384,398],[398,362]),Hs=et([276,283],[283,282],[282,295],[295,285],[300,293],[293,334],[334,296],[296,336]),ul=et([474,475],[475,476],[476,477],[477,474]),qs=et([33,7],[7,163],[163,144],[144,145],[145,153],[153,154],[154,155],[155,133],[33,246],[246,161],[161,160],[160,159],[159,158],[158,157],[157,173],[173,133]),Ys=et([46,53],[53,52],[52,65],[65,55],[70,63],[63,105],[105,66],[66,107]),hl=et([469,470],[470,471],[471,472],[472,469]),Ks=et([10,338],[338,297],[297,332],[332,284],[284,251],[251,389],[389,356],[356,454],[454,323],[323,361],[361,288],[288,397],[397,365],[365,379],[379,378],[378,400],[400,377],[377,152],[152,148],[148,176],[176,149],[149,150],[150,136],[136,172],[172,58],[58,132],[132,93],[93,234],[234,127],[127,162],[162,21],[21,54],[54,103],[103,67],[67,109],[109,10]),fl=[...Ws,...zs,...Hs,...qs,...Ys,...Ks],wl=et([127,34],[34,139],[139,127],[11,0],[0,37],[37,11],[232,231],[231,120],[120,232],[72,37],[37,39],[39,72],[128,121],[121,47],[47,128],[232,121],[121,128],[128,232],[104,69],[69,67],[67,104],[175,171],[171,148],[148,175],[118,50],[50,101],[101,118],[73,39],[39,40],[40,73],[9,151],[151,108],[108,9],[48,115],[115,131],[131,48],[194,204],[204,211],[211,194],[74,40],[40,185],[185,74],[80,42],[42,183],[183,80],[40,92],[92,186],[186,40],[230,229],[229,118],[118,230],[202,212],[212,214],[214,202],[83,18],[18,17],[17,83],[76,61],[61,146],[146,76],[160,29],[29,30],[30,160],[56,157],[157,173],[173,56],[106,204],[204,194],[194,106],[135,214],[214,192],[192,135],[203,165],[165,98],[98,203],[21,71],[71,68],[68,21],[51,45],[45,4],[4,51],[144,24],[24,23],[23,144],[77,146],[146,91],[91,77],[205,50],[50,187],[187,205],[201,200],[200,18],[18,201],[91,106],[106,182],[182,91],[90,91],[91,181],[181,90],[85,84],[84,17],[17,85],[206,203],[203,36],[36,206],[148,171],[171,140],[140,148],[92,40],[40,39],[39,92],[193,189],[189,244],[244,193],[159,158],[158,28],[28,159],[247,246],[246,161],[161,247],[236,3],[3,196],[196,236],[54,68],[68,104],[104,54],[193,168],[168,8],[8,193],[117,228],[228,31],[31,117],[189,193],[193,55],[55,189],[98,97],[97,99],[99,98],[126,47],[47,100],[100,126],[166,79],[79,218],[218,166],[155,154],[154,26],[26,155],[209,49],[49,131],[131,209],[135,136],[136,150],[150,135],[47,126],[126,217],[217,47],[223,52],[52,53],[53,223],[45,51],[51,134],[134,45],[211,170],[170,140],[140,211],[67,69],[69,108],[108,67],[43,106],[106,91],[91,43],[230,119],[119,120],[120,230],[226,130],[130,247],[247,226],[63,53],[53,52],[52,63],[238,20],[20,242],[242,238],[46,70],[70,156],[156,46],[78,62],[62,96],[96,78],[46,53],[53,63],[63,46],[143,34],[34,227],[227,143],[123,117],[117,111],[111,123],[44,125],[125,19],[19,44],[236,134],[134,51],[51,236],[216,206],[206,205],[205,216],[154,153],[153,22],[22,154],[39,37],[37,167],[167,39],[200,201],[201,208],[208,200],[36,142],[142,100],[100,36],[57,212],[212,202],[202,57],[20,60],[60,99],[99,20],[28,158],[158,157],[157,28],[35,226],[226,113],[113,35],[160,159],[159,27],[27,160],[204,202],[202,210],[210,204],[113,225],[225,46],[46,113],[43,202],[202,204],[204,43],[62,76],[76,77],[77,62],[137,123],[123,116],[116,137],[41,38],[38,72],[72,41],[203,129],[129,142],[142,203],[64,98],[98,240],[240,64],[49,102],[102,64],[64,49],[41,73],[73,74],[74,41],[212,216],[216,207],[207,212],[42,74],[74,184],[184,42],[169,170],[170,211],[211,169],[170,149],[149,176],[176,170],[105,66],[66,69],[69,105],[122,6],[6,168],[168,122],[123,147],[147,187],[187,123],[96,77],[77,90],[90,96],[65,55],[55,107],[107,65],[89,90],[90,180],[180,89],[101,100],[100,120],[120,101],[63,105],[105,104],[104,63],[93,137],[137,227],[227,93],[15,86],[86,85],[85,15],[129,102],[102,49],[49,129],[14,87],[87,86],[86,14],[55,8],[8,9],[9,55],[100,47],[47,121],[121,100],[145,23],[23,22],[22,145],[88,89],[89,179],[179,88],[6,122],[122,196],[196,6],[88,95],[95,96],[96,88],[138,172],[172,136],[136,138],[215,58],[58,172],[172,215],[115,48],[48,219],[219,115],[42,80],[80,81],[81,42],[195,3],[3,51],[51,195],[43,146],[146,61],[61,43],[171,175],[175,199],[199,171],[81,82],[82,38],[38,81],[53,46],[46,225],[225,53],[144,163],[163,110],[110,144],[52,65],[65,66],[66,52],[229,228],[228,117],[117,229],[34,127],[127,234],[234,34],[107,108],[108,69],[69,107],[109,108],[108,151],[151,109],[48,64],[64,235],[235,48],[62,78],[78,191],[191,62],[129,209],[209,126],[126,129],[111,35],[35,143],[143,111],[117,123],[123,50],[50,117],[222,65],[65,52],[52,222],[19,125],[125,141],[141,19],[221,55],[55,65],[65,221],[3,195],[195,197],[197,3],[25,7],[7,33],[33,25],[220,237],[237,44],[44,220],[70,71],[71,139],[139,70],[122,193],[193,245],[245,122],[247,130],[130,33],[33,247],[71,21],[21,162],[162,71],[170,169],[169,150],[150,170],[188,174],[174,196],[196,188],[216,186],[186,92],[92,216],[2,97],[97,167],[167,2],[141,125],[125,241],[241,141],[164,167],[167,37],[37,164],[72,38],[38,12],[12,72],[38,82],[82,13],[13,38],[63,68],[68,71],[71,63],[226,35],[35,111],[111,226],[101,50],[50,205],[205,101],[206,92],[92,165],[165,206],[209,198],[198,217],[217,209],[165,167],[167,97],[97,165],[220,115],[115,218],[218,220],[133,112],[112,243],[243,133],[239,238],[238,241],[241,239],[214,135],[135,169],[169,214],[190,173],[173,133],[133,190],[171,208],[208,32],[32,171],[125,44],[44,237],[237,125],[86,87],[87,178],[178,86],[85,86],[86,179],[179,85],[84,85],[85,180],[180,84],[83,84],[84,181],[181,83],[201,83],[83,182],[182,201],[137,93],[93,132],[132,137],[76,62],[62,183],[183,76],[61,76],[76,184],[184,61],[57,61],[61,185],[185,57],[212,57],[57,186],[186,212],[214,207],[207,187],[187,214],[34,143],[143,156],[156,34],[79,239],[239,237],[237,79],[123,137],[137,177],[177,123],[44,1],[1,4],[4,44],[201,194],[194,32],[32,201],[64,102],[102,129],[129,64],[213,215],[215,138],[138,213],[59,166],[166,219],[219,59],[242,99],[99,97],[97,242],[2,94],[94,141],[141,2],[75,59],[59,235],[235,75],[24,110],[110,228],[228,24],[25,130],[130,226],[226,25],[23,24],[24,229],[229,23],[22,23],[23,230],[230,22],[26,22],[22,231],[231,26],[112,26],[26,232],[232,112],[189,190],[190,243],[243,189],[221,56],[56,190],[190,221],[28,56],[56,221],[221,28],[27,28],[28,222],[222,27],[29,27],[27,223],[223,29],[30,29],[29,224],[224,30],[247,30],[30,225],[225,247],[238,79],[79,20],[20,238],[166,59],[59,75],[75,166],[60,75],[75,240],[240,60],[147,177],[177,215],[215,147],[20,79],[79,166],[166,20],[187,147],[147,213],[213,187],[112,233],[233,244],[244,112],[233,128],[128,245],[245,233],[128,114],[114,188],[188,128],[114,217],[217,174],[174,114],[131,115],[115,220],[220,131],[217,198],[198,236],[236,217],[198,131],[131,134],[134,198],[177,132],[132,58],[58,177],[143,35],[35,124],[124,143],[110,163],[163,7],[7,110],[228,110],[110,25],[25,228],[356,389],[389,368],[368,356],[11,302],[302,267],[267,11],[452,350],[350,349],[349,452],[302,303],[303,269],[269,302],[357,343],[343,277],[277,357],[452,453],[453,357],[357,452],[333,332],[332,297],[297,333],[175,152],[152,377],[377,175],[347,348],[348,330],[330,347],[303,304],[304,270],[270,303],[9,336],[336,337],[337,9],[278,279],[279,360],[360,278],[418,262],[262,431],[431,418],[304,408],[408,409],[409,304],[310,415],[415,407],[407,310],[270,409],[409,410],[410,270],[450,348],[348,347],[347,450],[422,430],[430,434],[434,422],[313,314],[314,17],[17,313],[306,307],[307,375],[375,306],[387,388],[388,260],[260,387],[286,414],[414,398],[398,286],[335,406],[406,418],[418,335],[364,367],[367,416],[416,364],[423,358],[358,327],[327,423],[251,284],[284,298],[298,251],[281,5],[5,4],[4,281],[373,374],[374,253],[253,373],[307,320],[320,321],[321,307],[425,427],[427,411],[411,425],[421,313],[313,18],[18,421],[321,405],[405,406],[406,321],[320,404],[404,405],[405,320],[315,16],[16,17],[17,315],[426,425],[425,266],[266,426],[377,400],[400,369],[369,377],[322,391],[391,269],[269,322],[417,465],[465,464],[464,417],[386,257],[257,258],[258,386],[466,260],[260,388],[388,466],[456,399],[399,419],[419,456],[284,332],[332,333],[333,284],[417,285],[285,8],[8,417],[346,340],[340,261],[261,346],[413,441],[441,285],[285,413],[327,460],[460,328],[328,327],[355,371],[371,329],[329,355],[392,439],[439,438],[438,392],[382,341],[341,256],[256,382],[429,420],[420,360],[360,429],[364,394],[394,379],[379,364],[277,343],[343,437],[437,277],[443,444],[444,283],[283,443],[275,440],[440,363],[363,275],[431,262],[262,369],[369,431],[297,338],[338,337],[337,297],[273,375],[375,321],[321,273],[450,451],[451,349],[349,450],[446,342],[342,467],[467,446],[293,334],[334,282],[282,293],[458,461],[461,462],[462,458],[276,353],[353,383],[383,276],[308,324],[324,325],[325,308],[276,300],[300,293],[293,276],[372,345],[345,447],[447,372],[352,345],[345,340],[340,352],[274,1],[1,19],[19,274],[456,248],[248,281],[281,456],[436,427],[427,425],[425,436],[381,256],[256,252],[252,381],[269,391],[391,393],[393,269],[200,199],[199,428],[428,200],[266,330],[330,329],[329,266],[287,273],[273,422],[422,287],[250,462],[462,328],[328,250],[258,286],[286,384],[384,258],[265,353],[353,342],[342,265],[387,259],[259,257],[257,387],[424,431],[431,430],[430,424],[342,353],[353,276],[276,342],[273,335],[335,424],[424,273],[292,325],[325,307],[307,292],[366,447],[447,345],[345,366],[271,303],[303,302],[302,271],[423,266],[266,371],[371,423],[294,455],[455,460],[460,294],[279,278],[278,294],[294,279],[271,272],[272,304],[304,271],[432,434],[434,427],[427,432],[272,407],[407,408],[408,272],[394,430],[430,431],[431,394],[395,369],[369,400],[400,395],[334,333],[333,299],[299,334],[351,417],[417,168],[168,351],[352,280],[280,411],[411,352],[325,319],[319,320],[320,325],[295,296],[296,336],[336,295],[319,403],[403,404],[404,319],[330,348],[348,349],[349,330],[293,298],[298,333],[333,293],[323,454],[454,447],[447,323],[15,16],[16,315],[315,15],[358,429],[429,279],[279,358],[14,15],[15,316],[316,14],[285,336],[336,9],[9,285],[329,349],[349,350],[350,329],[374,380],[380,252],[252,374],[318,402],[402,403],[403,318],[6,197],[197,419],[419,6],[318,319],[319,325],[325,318],[367,364],[364,365],[365,367],[435,367],[367,397],[397,435],[344,438],[438,439],[439,344],[272,271],[271,311],[311,272],[195,5],[5,281],[281,195],[273,287],[287,291],[291,273],[396,428],[428,199],[199,396],[311,271],[271,268],[268,311],[283,444],[444,445],[445,283],[373,254],[254,339],[339,373],[282,334],[334,296],[296,282],[449,347],[347,346],[346,449],[264,447],[447,454],[454,264],[336,296],[296,299],[299,336],[338,10],[10,151],[151,338],[278,439],[439,455],[455,278],[292,407],[407,415],[415,292],[358,371],[371,355],[355,358],[340,345],[345,372],[372,340],[346,347],[347,280],[280,346],[442,443],[443,282],[282,442],[19,94],[94,370],[370,19],[441,442],[442,295],[295,441],[248,419],[419,197],[197,248],[263,255],[255,359],[359,263],[440,275],[275,274],[274,440],[300,383],[383,368],[368,300],[351,412],[412,465],[465,351],[263,467],[467,466],[466,263],[301,368],[368,389],[389,301],[395,378],[378,379],[379,395],[412,351],[351,419],[419,412],[436,426],[426,322],[322,436],[2,164],[164,393],[393,2],[370,462],[462,461],[461,370],[164,0],[0,267],[267,164],[302,11],[11,12],[12,302],[268,12],[12,13],[13,268],[293,300],[300,301],[301,293],[446,261],[261,340],[340,446],[330,266],[266,425],[425,330],[426,423],[423,391],[391,426],[429,355],[355,437],[437,429],[391,327],[327,326],[326,391],[440,457],[457,438],[438,440],[341,382],[382,362],[362,341],[459,457],[457,461],[461,459],[434,430],[430,394],[394,434],[414,463],[463,362],[362,414],[396,369],[369,262],[262,396],[354,461],[461,457],[457,354],[316,403],[403,402],[402,316],[315,404],[404,403],[403,315],[314,405],[405,404],[404,314],[313,406],[406,405],[405,313],[421,418],[418,406],[406,421],[366,401],[401,361],[361,366],[306,408],[408,407],[407,306],[291,409],[409,408],[408,291],[287,410],[410,409],[409,287],[432,436],[436,410],[410,432],[434,416],[416,411],[411,434],[264,368],[368,383],[383,264],[309,438],[438,457],[457,309],[352,376],[376,401],[401,352],[274,275],[275,4],[4,274],[421,428],[428,262],[262,421],[294,327],[327,358],[358,294],[433,416],[416,367],[367,433],[289,455],[455,439],[439,289],[462,370],[370,326],[326,462],[2,326],[326,370],[370,2],[305,460],[460,455],[455,305],[254,449],[449,448],[448,254],[255,261],[261,446],[446,255],[253,450],[450,449],[449,253],[252,451],[451,450],[450,252],[256,452],[452,451],[451,256],[341,453],[453,452],[452,341],[413,464],[464,463],[463,413],[441,413],[413,414],[414,441],[258,442],[442,441],[441,258],[257,443],[443,442],[442,257],[259,444],[444,443],[443,259],[260,445],[445,444],[444,260],[467,342],[342,445],[445,467],[459,458],[458,250],[250,459],[289,392],[392,290],[290,289],[290,328],[328,460],[460,290],[376,433],[433,435],[435,376],[250,290],[290,392],[392,250],[411,416],[416,433],[433,411],[341,463],[463,464],[464,341],[453,464],[464,465],[465,453],[357,465],[465,412],[412,357],[343,412],[412,399],[399,343],[360,363],[363,440],[440,360],[437,399],[399,456],[456,437],[420,456],[456,363],[363,420],[401,435],[435,288],[288,401],[372,383],[383,353],[353,372],[339,255],[255,249],[249,339],[448,261],[261,255],[255,448],[133,243],[243,190],[190,133],[133,155],[155,112],[112,133],[33,246],[246,247],[247,33],[33,130],[130,25],[25,33],[398,384],[384,286],[286,398],[362,398],[398,414],[414,362],[362,463],[463,341],[341,362],[263,359],[359,467],[467,263],[263,249],[249,255],[255,263],[466,467],[467,260],[260,466],[75,60],[60,166],[166,75],[238,239],[239,79],[79,238],[162,127],[127,139],[139,162],[72,11],[11,37],[37,72],[121,232],[232,120],[120,121],[73,72],[72,39],[39,73],[114,128],[128,47],[47,114],[233,232],[232,128],[128,233],[103,104],[104,67],[67,103],[152,175],[175,148],[148,152],[119,118],[118,101],[101,119],[74,73],[73,40],[40,74],[107,9],[9,108],[108,107],[49,48],[48,131],[131,49],[32,194],[194,211],[211,32],[184,74],[74,185],[185,184],[191,80],[80,183],[183,191],[185,40],[40,186],[186,185],[119,230],[230,118],[118,119],[210,202],[202,214],[214,210],[84,83],[83,17],[17,84],[77,76],[76,146],[146,77],[161,160],[160,30],[30,161],[190,56],[56,173],[173,190],[182,106],[106,194],[194,182],[138,135],[135,192],[192,138],[129,203],[203,98],[98,129],[54,21],[21,68],[68,54],[5,51],[51,4],[4,5],[145,144],[144,23],[23,145],[90,77],[77,91],[91,90],[207,205],[205,187],[187,207],[83,201],[201,18],[18,83],[181,91],[91,182],[182,181],[180,90],[90,181],[181,180],[16,85],[85,17],[17,16],[205,206],[206,36],[36,205],[176,148],[148,140],[140,176],[165,92],[92,39],[39,165],[245,193],[193,244],[244,245],[27,159],[159,28],[28,27],[30,247],[247,161],[161,30],[174,236],[236,196],[196,174],[103,54],[54,104],[104,103],[55,193],[193,8],[8,55],[111,117],[117,31],[31,111],[221,189],[189,55],[55,221],[240,98],[98,99],[99,240],[142,126],[126,100],[100,142],[219,166],[166,218],[218,219],[112,155],[155,26],[26,112],[198,209],[209,131],[131,198],[169,135],[135,150],[150,169],[114,47],[47,217],[217,114],[224,223],[223,53],[53,224],[220,45],[45,134],[134,220],[32,211],[211,140],[140,32],[109,67],[67,108],[108,109],[146,43],[43,91],[91,146],[231,230],[230,120],[120,231],[113,226],[226,247],[247,113],[105,63],[63,52],[52,105],[241,238],[238,242],[242,241],[124,46],[46,156],[156,124],[95,78],[78,96],[96,95],[70,46],[46,63],[63,70],[116,143],[143,227],[227,116],[116,123],[123,111],[111,116],[1,44],[44,19],[19,1],[3,236],[236,51],[51,3],[207,216],[216,205],[205,207],[26,154],[154,22],[22,26],[165,39],[39,167],[167,165],[199,200],[200,208],[208,199],[101,36],[36,100],[100,101],[43,57],[57,202],[202,43],[242,20],[20,99],[99,242],[56,28],[28,157],[157,56],[124,35],[35,113],[113,124],[29,160],[160,27],[27,29],[211,204],[204,210],[210,211],[124,113],[113,46],[46,124],[106,43],[43,204],[204,106],[96,62],[62,77],[77,96],[227,137],[137,116],[116,227],[73,41],[41,72],[72,73],[36,203],[203,142],[142,36],[235,64],[64,240],[240,235],[48,49],[49,64],[64,48],[42,41],[41,74],[74,42],[214,212],[212,207],[207,214],[183,42],[42,184],[184,183],[210,169],[169,211],[211,210],[140,170],[170,176],[176,140],[104,105],[105,69],[69,104],[193,122],[122,168],[168,193],[50,123],[123,187],[187,50],[89,96],[96,90],[90,89],[66,65],[65,107],[107,66],[179,89],[89,180],[180,179],[119,101],[101,120],[120,119],[68,63],[63,104],[104,68],[234,93],[93,227],[227,234],[16,15],[15,85],[85,16],[209,129],[129,49],[49,209],[15,14],[14,86],[86,15],[107,55],[55,9],[9,107],[120,100],[100,121],[121,120],[153,145],[145,22],[22,153],[178,88],[88,179],[179,178],[197,6],[6,196],[196,197],[89,88],[88,96],[96,89],[135,138],[138,136],[136,135],[138,215],[215,172],[172,138],[218,115],[115,219],[219,218],[41,42],[42,81],[81,41],[5,195],[195,51],[51,5],[57,43],[43,61],[61,57],[208,171],[171,199],[199,208],[41,81],[81,38],[38,41],[224,53],[53,225],[225,224],[24,144],[144,110],[110,24],[105,52],[52,66],[66,105],[118,229],[229,117],[117,118],[227,34],[34,234],[234,227],[66,107],[107,69],[69,66],[10,109],[109,151],[151,10],[219,48],[48,235],[235,219],[183,62],[62,191],[191,183],[142,129],[129,126],[126,142],[116,111],[111,143],[143,116],[118,117],[117,50],[50,118],[223,222],[222,52],[52,223],[94,19],[19,141],[141,94],[222,221],[221,65],[65,222],[196,3],[3,197],[197,196],[45,220],[220,44],[44,45],[156,70],[70,139],[139,156],[188,122],[122,245],[245,188],[139,71],[71,162],[162,139],[149,170],[170,150],[150,149],[122,188],[188,196],[196,122],[206,216],[216,92],[92,206],[164,2],[2,167],[167,164],[242,141],[141,241],[241,242],[0,164],[164,37],[37,0],[11,72],[72,12],[12,11],[12,38],[38,13],[13,12],[70,63],[63,71],[71,70],[31,226],[226,111],[111,31],[36,101],[101,205],[205,36],[203,206],[206,165],[165,203],[126,209],[209,217],[217,126],[98,165],[165,97],[97,98],[237,220],[220,218],[218,237],[237,239],[239,241],[241,237],[210,214],[214,169],[169,210],[140,171],[171,32],[32,140],[241,125],[125,237],[237,241],[179,86],[86,178],[178,179],[180,85],[85,179],[179,180],[181,84],[84,180],[180,181],[182,83],[83,181],[181,182],[194,201],[201,182],[182,194],[177,137],[137,132],[132,177],[184,76],[76,183],[183,184],[185,61],[61,184],[184,185],[186,57],[57,185],[185,186],[216,212],[212,186],[186,216],[192,214],[214,187],[187,192],[139,34],[34,156],[156,139],[218,79],[79,237],[237,218],[147,123],[123,177],[177,147],[45,44],[44,4],[4,45],[208,201],[201,32],[32,208],[98,64],[64,129],[129,98],[192,213],[213,138],[138,192],[235,59],[59,219],[219,235],[141,242],[242,97],[97,141],[97,2],[2,141],[141,97],[240,75],[75,235],[235,240],[229,24],[24,228],[228,229],[31,25],[25,226],[226,31],[230,23],[23,229],[229,230],[231,22],[22,230],[230,231],[232,26],[26,231],[231,232],[233,112],[112,232],[232,233],[244,189],[189,243],[243,244],[189,221],[221,190],[190,189],[222,28],[28,221],[221,222],[223,27],[27,222],[222,223],[224,29],[29,223],[223,224],[225,30],[30,224],[224,225],[113,247],[247,225],[225,113],[99,60],[60,240],[240,99],[213,147],[147,215],[215,213],[60,20],[20,166],[166,60],[192,187],[187,213],[213,192],[243,112],[112,244],[244,243],[244,233],[233,245],[245,244],[245,128],[128,188],[188,245],[188,114],[114,174],[174,188],[134,131],[131,220],[220,134],[174,217],[217,236],[236,174],[236,198],[198,134],[134,236],[215,177],[177,58],[58,215],[156,143],[143,124],[124,156],[25,110],[110,7],[7,25],[31,228],[228,25],[25,31],[264,356],[356,368],[368,264],[0,11],[11,267],[267,0],[451,452],[452,349],[349,451],[267,302],[302,269],[269,267],[350,357],[357,277],[277,350],[350,452],[452,357],[357,350],[299,333],[333,297],[297,299],[396,175],[175,377],[377,396],[280,347],[347,330],[330,280],[269,303],[303,270],[270,269],[151,9],[9,337],[337,151],[344,278],[278,360],[360,344],[424,418],[418,431],[431,424],[270,304],[304,409],[409,270],[272,310],[310,407],[407,272],[322,270],[270,410],[410,322],[449,450],[450,347],[347,449],[432,422],[422,434],[434,432],[18,313],[313,17],[17,18],[291,306],[306,375],[375,291],[259,387],[387,260],[260,259],[424,335],[335,418],[418,424],[434,364],[364,416],[416,434],[391,423],[423,327],[327,391],[301,251],[251,298],[298,301],[275,281],[281,4],[4,275],[254,373],[373,253],[253,254],[375,307],[307,321],[321,375],[280,425],[425,411],[411,280],[200,421],[421,18],[18,200],[335,321],[321,406],[406,335],[321,320],[320,405],[405,321],[314,315],[315,17],[17,314],[423,426],[426,266],[266,423],[396,377],[377,369],[369,396],[270,322],[322,269],[269,270],[413,417],[417,464],[464,413],[385,386],[386,258],[258,385],[248,456],[456,419],[419,248],[298,284],[284,333],[333,298],[168,417],[417,8],[8,168],[448,346],[346,261],[261,448],[417,413],[413,285],[285,417],[326,327],[327,328],[328,326],[277,355],[355,329],[329,277],[309,392],[392,438],[438,309],[381,382],[382,256],[256,381],[279,429],[429,360],[360,279],[365,364],[364,379],[379,365],[355,277],[277,437],[437,355],[282,443],[443,283],[283,282],[281,275],[275,363],[363,281],[395,431],[431,369],[369,395],[299,297],[297,337],[337,299],[335,273],[273,321],[321,335],[348,450],[450,349],[349,348],[359,446],[446,467],[467,359],[283,293],[293,282],[282,283],[250,458],[458,462],[462,250],[300,276],[276,383],[383,300],[292,308],[308,325],[325,292],[283,276],[276,293],[293,283],[264,372],[372,447],[447,264],[346,352],[352,340],[340,346],[354,274],[274,19],[19,354],[363,456],[456,281],[281,363],[426,436],[436,425],[425,426],[380,381],[381,252],[252,380],[267,269],[269,393],[393,267],[421,200],[200,428],[428,421],[371,266],[266,329],[329,371],[432,287],[287,422],[422,432],[290,250],[250,328],[328,290],[385,258],[258,384],[384,385],[446,265],[265,342],[342,446],[386,387],[387,257],[257,386],[422,424],[424,430],[430,422],[445,342],[342,276],[276,445],[422,273],[273,424],[424,422],[306,292],[292,307],[307,306],[352,366],[366,345],[345,352],[268,271],[271,302],[302,268],[358,423],[423,371],[371,358],[327,294],[294,460],[460,327],[331,279],[279,294],[294,331],[303,271],[271,304],[304,303],[436,432],[432,427],[427,436],[304,272],[272,408],[408,304],[395,394],[394,431],[431,395],[378,395],[395,400],[400,378],[296,334],[334,299],[299,296],[6,351],[351,168],[168,6],[376,352],[352,411],[411,376],[307,325],[325,320],[320,307],[285,295],[295,336],[336,285],[320,319],[319,404],[404,320],[329,330],[330,349],[349,329],[334,293],[293,333],[333,334],[366,323],[323,447],[447,366],[316,15],[15,315],[315,316],[331,358],[358,279],[279,331],[317,14],[14,316],[316,317],[8,285],[285,9],[9,8],[277,329],[329,350],[350,277],[253,374],[374,252],[252,253],[319,318],[318,403],[403,319],[351,6],[6,419],[419,351],[324,318],[318,325],[325,324],[397,367],[367,365],[365,397],[288,435],[435,397],[397,288],[278,344],[344,439],[439,278],[310,272],[272,311],[311,310],[248,195],[195,281],[281,248],[375,273],[273,291],[291,375],[175,396],[396,199],[199,175],[312,311],[311,268],[268,312],[276,283],[283,445],[445,276],[390,373],[373,339],[339,390],[295,282],[282,296],[296,295],[448,449],[449,346],[346,448],[356,264],[264,454],[454,356],[337,336],[336,299],[299,337],[337,338],[338,151],[151,337],[294,278],[278,455],[455,294],[308,292],[292,415],[415,308],[429,358],[358,355],[355,429],[265,340],[340,372],[372,265],[352,346],[346,280],[280,352],[295,442],[442,282],[282,295],[354,19],[19,370],[370,354],[285,441],[441,295],[295,285],[195,248],[248,197],[197,195],[457,440],[440,274],[274,457],[301,300],[300,368],[368,301],[417,351],[351,465],[465,417],[251,301],[301,389],[389,251],[394,395],[395,379],[379,394],[399,412],[412,419],[419,399],[410,436],[436,322],[322,410],[326,2],[2,393],[393,326],[354,370],[370,461],[461,354],[393,164],[164,267],[267,393],[268,302],[302,12],[12,268],[312,268],[268,13],[13,312],[298,293],[293,301],[301,298],[265,446],[446,340],[340,265],[280,330],[330,425],[425,280],[322,426],[426,391],[391,322],[420,429],[429,437],[437,420],[393,391],[391,326],[326,393],[344,440],[440,438],[438,344],[458,459],[459,461],[461,458],[364,434],[434,394],[394,364],[428,396],[396,262],[262,428],[274,354],[354,457],[457,274],[317,316],[316,402],[402,317],[316,315],[315,403],[403,316],[315,314],[314,404],[404,315],[314,313],[313,405],[405,314],[313,421],[421,406],[406,313],[323,366],[366,361],[361,323],[292,306],[306,407],[407,292],[306,291],[291,408],[408,306],[291,287],[287,409],[409,291],[287,432],[432,410],[410,287],[427,434],[434,411],[411,427],[372,264],[264,383],[383,372],[459,309],[309,457],[457,459],[366,352],[352,401],[401,366],[1,274],[274,4],[4,1],[418,421],[421,262],[262,418],[331,294],[294,358],[358,331],[435,433],[433,367],[367,435],[392,289],[289,439],[439,392],[328,462],[462,326],[326,328],[94,2],[2,370],[370,94],[289,305],[305,455],[455,289],[339,254],[254,448],[448,339],[359,255],[255,446],[446,359],[254,253],[253,449],[449,254],[253,252],[252,450],[450,253],[252,256],[256,451],[451,252],[256,341],[341,452],[452,256],[414,413],[413,463],[463,414],[286,441],[441,414],[414,286],[286,258],[258,441],[441,286],[258,257],[257,442],[442,258],[257,259],[259,443],[443,257],[259,260],[260,444],[444,259],[260,467],[467,445],[445,260],[309,459],[459,250],[250,309],[305,289],[289,290],[290,305],[305,290],[290,460],[460,305],[401,376],[376,435],[435,401],[309,250],[250,392],[392,309],[376,411],[411,433],[433,376],[453,341],[341,464],[464,453],[357,453],[453,465],[465,357],[343,357],[357,412],[412,343],[437,343],[343,399],[399,437],[344,360],[360,440],[440,344],[420,437],[437,456],[456,420],[360,420],[420,363],[363,360],[361,401],[401,288],[288,361],[265,372],[372,353],[353,265],[390,339],[339,249],[249,390],[339,448],[448,255],[255,339]);function gl(e){e.j={faceLandmarks:[],faceBlendshapes:[],facialTransformationMatrixes:[]}}var re=class extends Ue{constructor(e,t){super(new tt(e,t),"image_in","norm_rect",!1),this.j={faceLandmarks:[],faceBlendshapes:[],facialTransformationMatrixes:[]},this.outputFacialTransformationMatrixes=this.outputFaceBlendshapes=!1,L(e=this.h=new kc,0,1,t=new ie),this.A=new Ec,L(this.h,0,3,this.A),this.u=new tn,L(this.h,0,2,this.u),Et(this.u,4,1),F(this.u,2,.5),F(this.A,2,.5),F(this.h,4,.5)}get baseOptions(){return z(this.h,ie,1)}set baseOptions(e){L(this.h,0,1,e)}o(e){return"numFaces"in e&&Et(this.u,4,e.numFaces??1),"minFaceDetectionConfidence"in e&&F(this.u,2,e.minFaceDetectionConfidence??.5),"minTrackingConfidence"in e&&F(this.h,4,e.minTrackingConfidence??.5),"minFacePresenceConfidence"in e&&F(this.A,2,e.minFacePresenceConfidence??.5),"outputFaceBlendshapes"in e&&(this.outputFaceBlendshapes=!!e.outputFaceBlendshapes),"outputFacialTransformationMatrixes"in e&&(this.outputFacialTransformationMatrixes=!!e.outputFacialTransformationMatrixes),this.l(e)}F(e,t){return gl(this),rt(this,e,t),this.j}G(e,t,r){return gl(this),wt(this,e,r,t),this.j}m(){var e=new Be;te(e,"image_in"),te(e,"norm_rect"),H(e,"face_landmarks");const t=new Oe;ut(t,Zu,this.h);const r=new Ne;De(r,2,"mediapipe.tasks.vision.face_landmarker.FaceLandmarkerGraph"),Z(r,"IMAGE:image_in"),Z(r,"NORM_RECT:norm_rect"),G(r,"NORM_LANDMARKS:face_landmarks"),r.o(t),Ye(e,r),this.g.attachProtoVectorListener("face_landmarks",(i,n)=>{for(const s of i)i=ui(s),this.j.faceLandmarks.push(rn(i));C(this,n)}),this.g.attachEmptyPacketListener("face_landmarks",i=>{C(this,i)}),this.outputFaceBlendshapes&&(H(e,"blendshapes"),G(r,"BLENDSHAPES:blendshapes"),this.g.attachProtoVectorListener("blendshapes",(i,n)=>{if(this.outputFaceBlendshapes)for(const s of i)i=Zi(s),this.j.faceBlendshapes.push(Os(i.g()??[]));C(this,n)}),this.g.attachEmptyPacketListener("blendshapes",i=>{C(this,i)})),this.outputFacialTransformationMatrixes&&(H(e,"face_geometry"),G(r,"FACE_GEOMETRY:face_geometry"),this.g.attachProtoVectorListener("face_geometry",(i,n)=>{if(this.outputFacialTransformationMatrixes)for(const s of i)(i=z(i=Ju(s),$u,2))&&this.j.facialTransformationMatrixes.push({rows:He(i,1)??0??0,columns:He(i,2)??0??0,data:Xt(i,3,lt,Kt()).slice()??[]});C(this,n)}),this.g.attachEmptyPacketListener("face_geometry",i=>{C(this,i)})),e=e.g(),this.setGraph(new Uint8Array(e),!0)}};re.prototype.detectForVideo=re.prototype.G,re.prototype.detect=re.prototype.F,re.prototype.setOptions=re.prototype.o,re.createFromModelPath=function(e,t){return W(re,e,{baseOptions:{modelAssetPath:t}})},re.createFromModelBuffer=function(e,t){return W(re,e,{baseOptions:{modelAssetBuffer:t}})},re.createFromOptions=function(e,t){return W(re,e,t)},re.FACE_LANDMARKS_LIPS=Ws,re.FACE_LANDMARKS_LEFT_EYE=zs,re.FACE_LANDMARKS_LEFT_EYEBROW=Hs,re.FACE_LANDMARKS_LEFT_IRIS=ul,re.FACE_LANDMARKS_RIGHT_EYE=qs,re.FACE_LANDMARKS_RIGHT_EYEBROW=Ys,re.FACE_LANDMARKS_RIGHT_IRIS=hl,re.FACE_LANDMARKS_FACE_OVAL=Ks,re.FACE_LANDMARKS_CONTOURS=fl,re.FACE_LANDMARKS_TESSELATION=wl;var Xs=et([0,1],[1,2],[2,3],[3,4],[0,5],[5,6],[6,7],[7,8],[5,9],[9,10],[10,11],[11,12],[9,13],[13,14],[14,15],[15,16],[13,17],[0,17],[17,18],[18,19],[19,20]);function pl(e){e.gestures=[],e.landmarks=[],e.worldLandmarks=[],e.handedness=[]}function ml(e){return e.gestures.length===0?{gestures:[],landmarks:[],worldLandmarks:[],handedness:[],handednesses:[]}:{gestures:e.gestures,landmarks:e.landmarks,worldLandmarks:e.worldLandmarks,handedness:e.handedness,handednesses:e.handedness}}function yl(e,t=!0){const r=[];for(const n of e){var i=Zi(n);e=[];for(const s of i.g())i=t&&He(s,1)!=null?He(s,1)??0:-1,e.push({score:se(s,2)??0,index:i,categoryName:ke(J(s,3))??""??"",displayName:ke(J(s,4))??""??""});r.push(e)}return r}var Ve=class extends Ue{constructor(e,t){super(new tt(e,t),"image_in","norm_rect",!1),this.gestures=[],this.landmarks=[],this.worldLandmarks=[],this.handedness=[],L(e=this.j=new Sc,0,1,t=new ie),this.u=new Ns,L(this.j,0,2,this.u),this.D=new As,L(this.u,0,3,this.D),this.A=new Cc,L(this.u,0,2,this.A),this.h=new Ru,L(this.j,0,3,this.h),F(this.A,2,.5),F(this.u,4,.5),F(this.D,2,.5)}get baseOptions(){return z(this.j,ie,1)}set baseOptions(e){L(this.j,0,1,e)}o(e){var n,s,a,c;if(Et(this.A,3,e.numHands??1),"minHandDetectionConfidence"in e&&F(this.A,2,e.minHandDetectionConfidence??.5),"minTrackingConfidence"in e&&F(this.u,4,e.minTrackingConfidence??.5),"minHandPresenceConfidence"in e&&F(this.D,2,e.minHandPresenceConfidence??.5),e.cannedGesturesClassifierOptions){var t=new Fr,r=t,i=Ps(e.cannedGesturesClassifierOptions,(n=z(this.h,Fr,3))==null?void 0:n.l());L(r,0,2,i),L(this.h,0,3,t)}else e.cannedGesturesClassifierOptions===void 0&&((s=z(this.h,Fr,3))==null||s.g());return e.customGesturesClassifierOptions?(L(r=t=new Fr,0,2,i=Ps(e.customGesturesClassifierOptions,(a=z(this.h,Fr,4))==null?void 0:a.l())),L(this.h,0,4,t)):e.customGesturesClassifierOptions===void 0&&((c=z(this.h,Fr,4))==null||c.g()),this.l(e)}Ha(e,t){return pl(this),rt(this,e,t),ml(this)}Ia(e,t,r){return pl(this),wt(this,e,r,t),ml(this)}m(){var e=new Be;te(e,"image_in"),te(e,"norm_rect"),H(e,"hand_gestures"),H(e,"hand_landmarks"),H(e,"world_hand_landmarks"),H(e,"handedness");const t=new Oe;ut(t,eh,this.j);const r=new Ne;De(r,2,"mediapipe.tasks.vision.gesture_recognizer.GestureRecognizerGraph"),Z(r,"IMAGE:image_in"),Z(r,"NORM_RECT:norm_rect"),G(r,"HAND_GESTURES:hand_gestures"),G(r,"LANDMARKS:hand_landmarks"),G(r,"WORLD_LANDMARKS:world_hand_landmarks"),G(r,"HANDEDNESS:handedness"),r.o(t),Ye(e,r),this.g.attachProtoVectorListener("hand_landmarks",(i,n)=>{for(const s of i){i=ui(s);const a=[];for(const c of xt(i,wc,1))a.push({x:se(c,1)??0,y:se(c,2)??0,z:se(c,3)??0,visibility:se(c,4)??0});this.landmarks.push(a)}C(this,n)}),this.g.attachEmptyPacketListener("hand_landmarks",i=>{C(this,i)}),this.g.attachProtoVectorListener("world_hand_landmarks",(i,n)=>{for(const s of i){i=Ir(s);const a=[];for(const c of xt(i,fc,1))a.push({x:se(c,1)??0,y:se(c,2)??0,z:se(c,3)??0,visibility:se(c,4)??0});this.worldLandmarks.push(a)}C(this,n)}),this.g.attachEmptyPacketListener("world_hand_landmarks",i=>{C(this,i)}),this.g.attachProtoVectorListener("hand_gestures",(i,n)=>{this.gestures.push(...yl(i,!1)),C(this,n)}),this.g.attachEmptyPacketListener("hand_gestures",i=>{C(this,i)}),this.g.attachProtoVectorListener("handedness",(i,n)=>{this.handedness.push(...yl(i)),C(this,n)}),this.g.attachEmptyPacketListener("handedness",i=>{C(this,i)}),e=e.g(),this.setGraph(new Uint8Array(e),!0)}};function bl(e){return{landmarks:e.landmarks,worldLandmarks:e.worldLandmarks,handednesses:e.handedness,handedness:e.handedness}}Ve.prototype.recognizeForVideo=Ve.prototype.Ia,Ve.prototype.recognize=Ve.prototype.Ha,Ve.prototype.setOptions=Ve.prototype.o,Ve.createFromModelPath=function(e,t){return W(Ve,e,{baseOptions:{modelAssetPath:t}})},Ve.createFromModelBuffer=function(e,t){return W(Ve,e,{baseOptions:{modelAssetBuffer:t}})},Ve.createFromOptions=function(e,t){return W(Ve,e,t)},Ve.HAND_CONNECTIONS=Xs;var Ge=class extends Ue{constructor(e,t){super(new tt(e,t),"image_in","norm_rect",!1),this.landmarks=[],this.worldLandmarks=[],this.handedness=[],L(e=this.h=new Ns,0,1,t=new ie),this.u=new As,L(this.h,0,3,this.u),this.j=new Cc,L(this.h,0,2,this.j),Et(this.j,3,1),F(this.j,2,.5),F(this.u,2,.5),F(this.h,4,.5)}get baseOptions(){return z(this.h,ie,1)}set baseOptions(e){L(this.h,0,1,e)}o(e){return"numHands"in e&&Et(this.j,3,e.numHands??1),"minHandDetectionConfidence"in e&&F(this.j,2,e.minHandDetectionConfidence??.5),"minTrackingConfidence"in e&&F(this.h,4,e.minTrackingConfidence??.5),"minHandPresenceConfidence"in e&&F(this.u,2,e.minHandPresenceConfidence??.5),this.l(e)}F(e,t){return this.landmarks=[],this.worldLandmarks=[],this.handedness=[],rt(this,e,t),bl(this)}G(e,t,r){return this.landmarks=[],this.worldLandmarks=[],this.handedness=[],wt(this,e,r,t),bl(this)}m(){var e=new Be;te(e,"image_in"),te(e,"norm_rect"),H(e,"hand_landmarks"),H(e,"world_hand_landmarks"),H(e,"handedness");const t=new Oe;ut(t,th,this.h);const r=new Ne;De(r,2,"mediapipe.tasks.vision.hand_landmarker.HandLandmarkerGraph"),Z(r,"IMAGE:image_in"),Z(r,"NORM_RECT:norm_rect"),G(r,"LANDMARKS:hand_landmarks"),G(r,"WORLD_LANDMARKS:world_hand_landmarks"),G(r,"HANDEDNESS:handedness"),r.o(t),Ye(e,r),this.g.attachProtoVectorListener("hand_landmarks",(i,n)=>{for(const s of i)i=ui(s),this.landmarks.push(rn(i));C(this,n)}),this.g.attachEmptyPacketListener("hand_landmarks",i=>{C(this,i)}),this.g.attachProtoVectorListener("world_hand_landmarks",(i,n)=>{for(const s of i)i=Ir(s),this.worldLandmarks.push(hi(i));C(this,n)}),this.g.attachEmptyPacketListener("world_hand_landmarks",i=>{C(this,i)}),this.g.attachProtoVectorListener("handedness",(i,n)=>{var s=this.handedness,a=s.push;const c=[];for(const l of i){i=Zi(l);const h=[];for(const u of i.g())h.push({score:se(u,2)??0,index:He(u,1)??0??-1,categoryName:ke(J(u,3))??""??"",displayName:ke(J(u,4))??""??""});c.push(h)}a.call(s,...c),C(this,n)}),this.g.attachEmptyPacketListener("handedness",i=>{C(this,i)}),e=e.g(),this.setGraph(new Uint8Array(e),!0)}};Ge.prototype.detectForVideo=Ge.prototype.G,Ge.prototype.detect=Ge.prototype.F,Ge.prototype.setOptions=Ge.prototype.o,Ge.createFromModelPath=function(e,t){return W(Ge,e,{baseOptions:{modelAssetPath:t}})},Ge.createFromModelBuffer=function(e,t){return W(Ge,e,{baseOptions:{modelAssetBuffer:t}})},Ge.createFromOptions=function(e,t){return W(Ge,e,t)},Ge.HAND_CONNECTIONS=Xs;var vl=et([0,1],[1,2],[2,3],[3,7],[0,4],[4,5],[5,6],[6,8],[9,10],[11,12],[11,13],[13,15],[15,17],[15,19],[15,21],[17,19],[12,14],[14,16],[16,18],[16,20],[16,22],[18,20],[11,23],[12,24],[23,24],[23,25],[24,26],[25,27],[26,28],[27,29],[28,30],[29,31],[30,32],[27,31],[28,32]);function xl(e){e.h={faceLandmarks:[],faceBlendshapes:[],poseLandmarks:[],poseWorldLandmarks:[],poseSegmentationMasks:[],leftHandLandmarks:[],leftHandWorldLandmarks:[],rightHandLandmarks:[],rightHandWorldLandmarks:[]}}function El(e){try{if(!e.D)return e.h;e.D(e.h)}finally{on(e)}}function cn(e,t){e=ui(e),t.push(rn(e))}var R=class extends Ue{constructor(e,t){super(new tt(e,t),"input_frames_image",null,!1),this.h={faceLandmarks:[],faceBlendshapes:[],poseLandmarks:[],poseWorldLandmarks:[],poseSegmentationMasks:[],leftHandLandmarks:[],leftHandWorldLandmarks:[],rightHandLandmarks:[],rightHandWorldLandmarks:[]},this.outputPoseSegmentationMasks=this.outputFaceBlendshapes=!1,L(e=this.j=new Lc,0,1,t=new ie),this.I=new As,L(this.j,0,2,this.I),this.W=new rh,L(this.j,0,3,this.W),this.u=new tn,L(this.j,0,4,this.u),this.O=new Ec,L(this.j,0,5,this.O),this.A=new Ic,L(this.j,0,6,this.A),this.M=new Fc,L(this.j,0,7,this.M),F(this.u,2,.5),F(this.u,3,.3),F(this.O,2,.5),F(this.A,2,.5),F(this.A,3,.3),F(this.M,2,.5),F(this.I,2,.5)}get baseOptions(){return z(this.j,ie,1)}set baseOptions(e){L(this.j,0,1,e)}o(e){return"minFaceDetectionConfidence"in e&&F(this.u,2,e.minFaceDetectionConfidence??.5),"minFaceSuppressionThreshold"in e&&F(this.u,3,e.minFaceSuppressionThreshold??.3),"minFacePresenceConfidence"in e&&F(this.O,2,e.minFacePresenceConfidence??.5),"outputFaceBlendshapes"in e&&(this.outputFaceBlendshapes=!!e.outputFaceBlendshapes),"minPoseDetectionConfidence"in e&&F(this.A,2,e.minPoseDetectionConfidence??.5),"minPoseSuppressionThreshold"in e&&F(this.A,3,e.minPoseSuppressionThreshold??.3),"minPosePresenceConfidence"in e&&F(this.M,2,e.minPosePresenceConfidence??.5),"outputPoseSegmentationMasks"in e&&(this.outputPoseSegmentationMasks=!!e.outputPoseSegmentationMasks),"minHandLandmarksConfidence"in e&&F(this.I,2,e.minHandLandmarksConfidence??.5),this.l(e)}F(e,t,r){const i=typeof t!="function"?t:{};return this.D=typeof t=="function"?t:r,xl(this),rt(this,e,i),El(this)}G(e,t,r,i){const n=typeof r!="function"?r:{};return this.D=typeof r=="function"?r:i,xl(this),wt(this,e,n,t),El(this)}m(){var e=new Be;te(e,"input_frames_image"),H(e,"pose_landmarks"),H(e,"pose_world_landmarks"),H(e,"face_landmarks"),H(e,"left_hand_landmarks"),H(e,"left_hand_world_landmarks"),H(e,"right_hand_landmarks"),H(e,"right_hand_world_landmarks");const t=new Oe,r=new Xa;De(r,1,"type.googleapis.com/mediapipe.tasks.vision.holistic_landmarker.proto.HolisticLandmarkerGraphOptions"),function(n,s){if(s!=null)if(Array.isArray(s))Y(n,2,Pi(s,0,oi));else{if(!(typeof s=="string"||s instanceof at||Mn(s)))throw Error("invalid value in Any.value field: "+s+" expected a ByteString, a base64 encoded string, a Uint8Array or a jspb array");It(n,2,Bn(s,!1),$t())}}(r,this.j.g());const i=new Ne;De(i,2,"mediapipe.tasks.vision.holistic_landmarker.HolisticLandmarkerGraph"),ns(i,8,Xa,r),Z(i,"IMAGE:input_frames_image"),G(i,"POSE_LANDMARKS:pose_landmarks"),G(i,"POSE_WORLD_LANDMARKS:pose_world_landmarks"),G(i,"FACE_LANDMARKS:face_landmarks"),G(i,"LEFT_HAND_LANDMARKS:left_hand_landmarks"),G(i,"LEFT_HAND_WORLD_LANDMARKS:left_hand_world_landmarks"),G(i,"RIGHT_HAND_LANDMARKS:right_hand_landmarks"),G(i,"RIGHT_HAND_WORLD_LANDMARKS:right_hand_world_landmarks"),i.o(t),Ye(e,i),sn(this,e),this.g.attachProtoListener("pose_landmarks",(n,s)=>{cn(n,this.h.poseLandmarks),C(this,s)}),this.g.attachEmptyPacketListener("pose_landmarks",n=>{C(this,n)}),this.g.attachProtoListener("pose_world_landmarks",(n,s)=>{var a=this.h.poseWorldLandmarks;n=Ir(n),a.push(hi(n)),C(this,s)}),this.g.attachEmptyPacketListener("pose_world_landmarks",n=>{C(this,n)}),this.outputPoseSegmentationMasks&&(G(i,"POSE_SEGMENTATION_MASK:pose_segmentation_mask"),Lr(this,"pose_segmentation_mask"),this.g.Z("pose_segmentation_mask",(n,s)=>{this.h.poseSegmentationMasks=[Dr(this,n,!0,!this.D)],C(this,s)}),this.g.attachEmptyPacketListener("pose_segmentation_mask",n=>{this.h.poseSegmentationMasks=[],C(this,n)})),this.g.attachProtoListener("face_landmarks",(n,s)=>{cn(n,this.h.faceLandmarks),C(this,s)}),this.g.attachEmptyPacketListener("face_landmarks",n=>{C(this,n)}),this.outputFaceBlendshapes&&(H(e,"extra_blendshapes"),G(i,"FACE_BLENDSHAPES:extra_blendshapes"),this.g.attachProtoListener("extra_blendshapes",(n,s)=>{var a=this.h.faceBlendshapes;this.outputFaceBlendshapes&&(n=Zi(n),a.push(Os(n.g()??[]))),C(this,s)}),this.g.attachEmptyPacketListener("extra_blendshapes",n=>{C(this,n)})),this.g.attachProtoListener("left_hand_landmarks",(n,s)=>{cn(n,this.h.leftHandLandmarks),C(this,s)}),this.g.attachEmptyPacketListener("left_hand_landmarks",n=>{C(this,n)}),this.g.attachProtoListener("left_hand_world_landmarks",(n,s)=>{var a=this.h.leftHandWorldLandmarks;n=Ir(n),a.push(hi(n)),C(this,s)}),this.g.attachEmptyPacketListener("left_hand_world_landmarks",n=>{C(this,n)}),this.g.attachProtoListener("right_hand_landmarks",(n,s)=>{cn(n,this.h.rightHandLandmarks),C(this,s)}),this.g.attachEmptyPacketListener("right_hand_landmarks",n=>{C(this,n)}),this.g.attachProtoListener("right_hand_world_landmarks",(n,s)=>{var a=this.h.rightHandWorldLandmarks;n=Ir(n),a.push(hi(n)),C(this,s)}),this.g.attachEmptyPacketListener("right_hand_world_landmarks",n=>{C(this,n)}),e=e.g(),this.setGraph(new Uint8Array(e),!0)}};R.prototype.detectForVideo=R.prototype.G,R.prototype.detect=R.prototype.F,R.prototype.setOptions=R.prototype.o,R.createFromModelPath=function(e,t){return W(R,e,{baseOptions:{modelAssetPath:t}})},R.createFromModelBuffer=function(e,t){return W(R,e,{baseOptions:{modelAssetBuffer:t}})},R.createFromOptions=function(e,t){return W(R,e,t)},R.HAND_CONNECTIONS=Xs,R.POSE_CONNECTIONS=vl,R.FACE_LANDMARKS_LIPS=Ws,R.FACE_LANDMARKS_LEFT_EYE=zs,R.FACE_LANDMARKS_LEFT_EYEBROW=Hs,R.FACE_LANDMARKS_LEFT_IRIS=ul,R.FACE_LANDMARKS_RIGHT_EYE=qs,R.FACE_LANDMARKS_RIGHT_EYEBROW=Ys,R.FACE_LANDMARKS_RIGHT_IRIS=hl,R.FACE_LANDMARKS_FACE_OVAL=Ks,R.FACE_LANDMARKS_CONTOURS=fl,R.FACE_LANDMARKS_TESSELATION=wl;var Xe=class extends Ue{constructor(e,t){super(new tt(e,t),"input_image","norm_rect",!0),this.j={classifications:[]},L(e=this.h=new Mc,0,1,t=new ie)}get baseOptions(){return z(this.h,ie,1)}set baseOptions(e){L(this.h,0,1,e)}o(e){return L(this.h,0,2,Ps(e,z(this.h,_s,2))),this.l(e)}sa(e,t){return this.j={classifications:[]},rt(this,e,t),this.j}ta(e,t,r){return this.j={classifications:[]},wt(this,e,r,t),this.j}m(){var e=new Be;te(e,"input_image"),te(e,"norm_rect"),H(e,"classifications");const t=new Oe;ut(t,ih,this.h);const r=new Ne;De(r,2,"mediapipe.tasks.vision.image_classifier.ImageClassifierGraph"),Z(r,"IMAGE:input_image"),Z(r,"NORM_RECT:norm_rect"),G(r,"CLASSIFICATIONS:classifications"),r.o(t),Ye(e,r),this.g.attachProtoListener("classifications",(i,n)=>{this.j=lh(Hu(i)),C(this,n)}),this.g.attachEmptyPacketListener("classifications",i=>{C(this,i)}),e=e.g(),this.setGraph(new Uint8Array(e),!0)}};Xe.prototype.classifyForVideo=Xe.prototype.ta,Xe.prototype.classify=Xe.prototype.sa,Xe.prototype.setOptions=Xe.prototype.o,Xe.createFromModelPath=function(e,t){return W(Xe,e,{baseOptions:{modelAssetPath:t}})},Xe.createFromModelBuffer=function(e,t){return W(Xe,e,{baseOptions:{modelAssetBuffer:t}})},Xe.createFromOptions=function(e,t){return W(Xe,e,t)};var je=class extends Ue{constructor(e,t){super(new tt(e,t),"image_in","norm_rect",!0),this.h=new Dc,this.embeddings={embeddings:[]},L(e=this.h,0,1,t=new ie)}get baseOptions(){return z(this.h,ie,1)}set baseOptions(e){L(this.h,0,1,e)}o(e){var t=this.h,r=z(this.h,bc,2);return r=r?r.clone():new bc,e.l2Normalize!==void 0?Y(r,1,ii(e.l2Normalize)):"l2Normalize"in e&&Y(r,1),e.quantize!==void 0?Y(r,2,ii(e.quantize)):"quantize"in e&&Y(r,2),L(t,0,2,r),this.l(e)}za(e,t){return rt(this,e,t),this.embeddings}Aa(e,t,r){return wt(this,e,r,t),this.embeddings}m(){var e=new Be;te(e,"image_in"),te(e,"norm_rect"),H(e,"embeddings_out");const t=new Oe;ut(t,nh,this.h);const r=new Ne;De(r,2,"mediapipe.tasks.vision.image_embedder.ImageEmbedderGraph"),Z(r,"IMAGE:image_in"),Z(r,"NORM_RECT:norm_rect"),G(r,"EMBEDDINGS:embeddings_out"),r.o(t),Ye(e,r),this.g.attachProtoListener("embeddings_out",(i,n)=>{i=Ku(i),this.embeddings=function(s){return{embeddings:xt(s,Yu,1).map(a=>{var h,u;const c={headIndex:He(a,3)??0??-1,headName:ke(J(a,4))??""??""};var l=a.v;return fa(l,0|l[N],pc,es(a,1))!==void 0?(a=Xt(a=z(a,pc,es(a,1),void 0),1,lt,Kt()),c.floatEmbedding=a.slice()):(l=new Uint8Array(0),c.quantizedEmbedding=((u=(h=z(a,qu,es(a,2),void 0))==null?void 0:h.na())==null?void 0:u.h())??l),c}),timestampMs:Wc(pa(s))}}(i),C(this,n)}),this.g.attachEmptyPacketListener("embeddings_out",i=>{C(this,i)}),e=e.g(),this.setGraph(new Uint8Array(e),!0)}};je.cosineSimilarity=function(e,t){if(e.floatEmbedding&&t.floatEmbedding)e=qc(e.floatEmbedding,t.floatEmbedding);else{if(!e.quantizedEmbedding||!t.quantizedEmbedding)throw Error("Cannot compute cosine similarity between quantized and float embeddings.");e=qc(Hc(e.quantizedEmbedding),Hc(t.quantizedEmbedding))}return e},je.prototype.embedForVideo=je.prototype.Aa,je.prototype.embed=je.prototype.za,je.prototype.setOptions=je.prototype.o,je.createFromModelPath=function(e,t){return W(je,e,{baseOptions:{modelAssetPath:t}})},je.createFromModelBuffer=function(e,t){return W(je,e,{baseOptions:{modelAssetBuffer:t}})},je.createFromOptions=function(e,t){return W(je,e,t)};var Qs=class{constructor(e,t,r){this.confidenceMasks=e,this.categoryMask=t,this.qualityScores=r}close(){var e,t;(e=this.confidenceMasks)==null||e.forEach(r=>{r.close()}),(t=this.categoryMask)==null||t.close()}};function ph(e){var r,i;const t=function(n){return xt(n,Ne,1)}(e.ca()).filter(n=>(ke(J(n,1))??"").includes("mediapipe.tasks.TensorsToSegmentationCalculator"));if(e.u=[],t.length>1)throw Error("The graph has more than one mediapipe.tasks.TensorsToSegmentationCalculator.");t.length===1&&(((i=(r=z(t[0],Oe,7))==null?void 0:r.j())==null?void 0:i.g())??new Map).forEach((n,s)=>{e.u[Number(s)]=ke(J(n,1))??""})}function kl(e){e.categoryMask=void 0,e.confidenceMasks=void 0,e.qualityScores=void 0}function _l(e){try{const t=new Qs(e.confidenceMasks,e.categoryMask,e.qualityScores);if(!e.j)return t;e.j(t)}finally{on(e)}}Qs.prototype.close=Qs.prototype.close;var Te=class extends Ue{constructor(e,t){super(new tt(e,t),"image_in","norm_rect",!1),this.u=[],this.outputCategoryMask=!1,this.outputConfidenceMasks=!0,this.h=new Ls,this.A=new Pc,L(this.h,0,3,this.A),L(e=this.h,0,1,t=new ie)}get baseOptions(){return z(this.h,ie,1)}set baseOptions(e){L(this.h,0,1,e)}o(e){return e.displayNamesLocale!==void 0?Y(this.h,2,si(e.displayNamesLocale)):"displayNamesLocale"in e&&Y(this.h,2),"outputCategoryMask"in e&&(this.outputCategoryMask=e.outputCategoryMask??!1),"outputConfidenceMasks"in e&&(this.outputConfidenceMasks=e.outputConfidenceMasks??!0),super.l(e)}L(){ph(this)}segment(e,t,r){const i=typeof t!="function"?t:{};return this.j=typeof t=="function"?t:r,kl(this),rt(this,e,i),_l(this)}La(e,t,r,i){const n=typeof r!="function"?r:{};return this.j=typeof r=="function"?r:i,kl(this),wt(this,e,n,t),_l(this)}Da(){return this.u}m(){var e=new Be;te(e,"image_in"),te(e,"norm_rect");const t=new Oe;ut(t,Uc,this.h);const r=new Ne;De(r,2,"mediapipe.tasks.vision.image_segmenter.ImageSegmenterGraph"),Z(r,"IMAGE:image_in"),Z(r,"NORM_RECT:norm_rect"),r.o(t),Ye(e,r),sn(this,e),this.outputConfidenceMasks&&(H(e,"confidence_masks"),G(r,"CONFIDENCE_MASKS:confidence_masks"),Lr(this,"confidence_masks"),this.g.aa("confidence_masks",(i,n)=>{this.confidenceMasks=i.map(s=>Dr(this,s,!0,!this.j)),C(this,n)}),this.g.attachEmptyPacketListener("confidence_masks",i=>{this.confidenceMasks=[],C(this,i)})),this.outputCategoryMask&&(H(e,"category_mask"),G(r,"CATEGORY_MASK:category_mask"),Lr(this,"category_mask"),this.g.Z("category_mask",(i,n)=>{this.categoryMask=Dr(this,i,!1,!this.j),C(this,n)}),this.g.attachEmptyPacketListener("category_mask",i=>{this.categoryMask=void 0,C(this,i)})),H(e,"quality_scores"),G(r,"QUALITY_SCORES:quality_scores"),this.g.attachFloatVectorListener("quality_scores",(i,n)=>{this.qualityScores=i,C(this,n)}),this.g.attachEmptyPacketListener("quality_scores",i=>{this.categoryMask=void 0,C(this,i)}),e=e.g(),this.setGraph(new Uint8Array(e),!0)}};Te.prototype.getLabels=Te.prototype.Da,Te.prototype.segmentForVideo=Te.prototype.La,Te.prototype.segment=Te.prototype.segment,Te.prototype.setOptions=Te.prototype.o,Te.createFromModelPath=function(e,t){return W(Te,e,{baseOptions:{modelAssetPath:t}})},Te.createFromModelBuffer=function(e,t){return W(Te,e,{baseOptions:{modelAssetBuffer:t}})},Te.createFromOptions=function(e,t){return W(Te,e,t)};var Js=class{constructor(e,t,r){this.confidenceMasks=e,this.categoryMask=t,this.qualityScores=r}close(){var e,t;(e=this.confidenceMasks)==null||e.forEach(r=>{r.close()}),(t=this.categoryMask)==null||t.close()}};Js.prototype.close=Js.prototype.close;var gt=class extends Ue{constructor(e,t){super(new tt(e,t),"image_in","norm_rect_in",!1),this.outputCategoryMask=!1,this.outputConfidenceMasks=!0,this.h=new Ls,this.u=new Pc,L(this.h,0,3,this.u),L(e=this.h,0,1,t=new ie)}get baseOptions(){return z(this.h,ie,1)}set baseOptions(e){L(this.h,0,1,e)}o(e){return"outputCategoryMask"in e&&(this.outputCategoryMask=e.outputCategoryMask??!1),"outputConfidenceMasks"in e&&(this.outputConfidenceMasks=e.outputConfidenceMasks??!0),super.l(e)}segment(e,t,r,i){const n=typeof r!="function"?r:{};if(this.j=typeof r=="function"?r:i,this.qualityScores=this.categoryMask=this.confidenceMasks=void 0,r=this.C+1,i=new Gc,t.keypoint&&t.scribble)throw Error("Cannot provide both keypoint and scribble.");if(t.keypoint){var s=new Ms;It(s,3,ii(!0),!1),It(s,1,ri(t.keypoint.x),0),It(s,2,ri(t.keypoint.y),0),ai(i,1,Ds,s)}else{if(!t.scribble)throw Error("Must provide either a keypoint or a scribble.");{const c=new oh;for(s of t.scribble)It(t=new Ms,3,ii(!0),!1),It(t,1,ri(s.x),0),It(t,2,ri(s.y),0),ns(c,1,Ms,t);ai(i,2,Ds,c)}}this.g.addProtoToStream(i.g(),"mediapipe.tasks.vision.interactive_segmenter.proto.RegionOfInterest","roi_in",r),rt(this,e,n);e:{try{const c=new Js(this.confidenceMasks,this.categoryMask,this.qualityScores);if(!this.j){var a=c;break e}this.j(c)}finally{on(this)}a=void 0}return a}m(){var e=new Be;te(e,"image_in"),te(e,"roi_in"),te(e,"norm_rect_in");const t=new Oe;ut(t,Uc,this.h);const r=new Ne;De(r,2,"mediapipe.tasks.vision.interactive_segmenter.InteractiveSegmenterGraphV2"),Z(r,"IMAGE:image_in"),Z(r,"ROI:roi_in"),Z(r,"NORM_RECT:norm_rect_in"),r.o(t),Ye(e,r),sn(this,e),this.outputConfidenceMasks&&(H(e,"confidence_masks"),G(r,"CONFIDENCE_MASKS:confidence_masks"),Lr(this,"confidence_masks"),this.g.aa("confidence_masks",(i,n)=>{this.confidenceMasks=i.map(s=>Dr(this,s,!0,!this.j)),C(this,n)}),this.g.attachEmptyPacketListener("confidence_masks",i=>{this.confidenceMasks=[],C(this,i)})),this.outputCategoryMask&&(H(e,"category_mask"),G(r,"CATEGORY_MASK:category_mask"),Lr(this,"category_mask"),this.g.Z("category_mask",(i,n)=>{this.categoryMask=Dr(this,i,!1,!this.j),C(this,n)}),this.g.attachEmptyPacketListener("category_mask",i=>{this.categoryMask=void 0,C(this,i)})),H(e,"quality_scores"),G(r,"QUALITY_SCORES:quality_scores"),this.g.attachFloatVectorListener("quality_scores",(i,n)=>{this.qualityScores=i,C(this,n)}),this.g.attachEmptyPacketListener("quality_scores",i=>{this.categoryMask=void 0,C(this,i)}),e=e.g(),this.setGraph(new Uint8Array(e),!0)}};gt.prototype.segment=gt.prototype.segment,gt.prototype.setOptions=gt.prototype.o,gt.createFromModelPath=function(e,t){return W(gt,e,{baseOptions:{modelAssetPath:t}})},gt.createFromModelBuffer=function(e,t){return W(gt,e,{baseOptions:{modelAssetBuffer:t}})},gt.createFromOptions=function(e,t){return W(gt,e,t)};var Qe=class extends Ue{constructor(e,t){super(new tt(e,t),"input_frame_gpu","norm_rect",!1),this.j={detections:[]},L(e=this.h=new jc,0,1,t=new ie)}get baseOptions(){return z(this.h,ie,1)}set baseOptions(e){L(this.h,0,1,e)}o(e){return e.displayNamesLocale!==void 0?Y(this.h,2,si(e.displayNamesLocale)):"displayNamesLocale"in e&&Y(this.h,2),e.maxResults!==void 0?Et(this.h,3,e.maxResults):"maxResults"in e&&Y(this.h,3),e.scoreThreshold!==void 0?F(this.h,4,e.scoreThreshold):"scoreThreshold"in e&&Y(this.h,4),e.categoryAllowlist!==void 0?Oi(this.h,5,e.categoryAllowlist):"categoryAllowlist"in e&&Y(this.h,5),e.categoryDenylist!==void 0?Oi(this.h,6,e.categoryDenylist):"categoryDenylist"in e&&Y(this.h,6),this.l(e)}F(e,t){return this.j={detections:[]},rt(this,e,t),this.j}G(e,t,r){return this.j={detections:[]},wt(this,e,r,t),this.j}m(){var e=new Be;te(e,"input_frame_gpu"),te(e,"norm_rect"),H(e,"detections");const t=new Oe;ut(t,ah,this.h);const r=new Ne;De(r,2,"mediapipe.tasks.vision.ObjectDetectorGraph"),Z(r,"IMAGE:input_frame_gpu"),Z(r,"NORM_RECT:norm_rect"),G(r,"DETECTIONS:detections"),r.o(t),Ye(e,r),this.g.attachProtoVectorListener("detections",(i,n)=>{for(const s of i)i=hc(s),this.j.detections.push(zc(i));C(this,n)}),this.g.attachEmptyPacketListener("detections",i=>{C(this,i)}),e=e.g(),this.setGraph(new Uint8Array(e),!0)}};Qe.prototype.detectForVideo=Qe.prototype.G,Qe.prototype.detect=Qe.prototype.F,Qe.prototype.setOptions=Qe.prototype.o,Qe.createFromModelPath=async function(e,t){return W(Qe,e,{baseOptions:{modelAssetPath:t}})},Qe.createFromModelBuffer=function(e,t){return W(Qe,e,{baseOptions:{modelAssetBuffer:t}})},Qe.createFromOptions=function(e,t){return W(Qe,e,t)};var Zs=class{constructor(e,t,r){this.landmarks=e,this.worldLandmarks=t,this.segmentationMasks=r}close(){var e;(e=this.segmentationMasks)==null||e.forEach(t=>{t.close()})}};function Cl(e){e.landmarks=[],e.worldLandmarks=[],e.segmentationMasks=void 0}function Sl(e){try{const t=new Zs(e.landmarks,e.worldLandmarks,e.segmentationMasks);if(!e.u)return t;e.u(t)}finally{on(e)}}Zs.prototype.close=Zs.prototype.close;var $e=class extends Ue{constructor(e,t){super(new tt(e,t),"image_in","norm_rect",!1),this.landmarks=[],this.worldLandmarks=[],this.outputSegmentationMasks=!1,L(e=this.h=new $c,0,1,t=new ie),this.A=new Fc,L(this.h,0,3,this.A),this.j=new Ic,L(this.h,0,2,this.j),Et(this.j,4,1),F(this.j,2,.5),F(this.A,2,.5),F(this.h,4,.5)}get baseOptions(){return z(this.h,ie,1)}set baseOptions(e){L(this.h,0,1,e)}o(e){return"numPoses"in e&&Et(this.j,4,e.numPoses??1),"minPoseDetectionConfidence"in e&&F(this.j,2,e.minPoseDetectionConfidence??.5),"minTrackingConfidence"in e&&F(this.h,4,e.minTrackingConfidence??.5),"minPosePresenceConfidence"in e&&F(this.A,2,e.minPosePresenceConfidence??.5),"outputSegmentationMasks"in e&&(this.outputSegmentationMasks=e.outputSegmentationMasks??!1),this.l(e)}F(e,t,r){const i=typeof t!="function"?t:{};return this.u=typeof t=="function"?t:r,Cl(this),rt(this,e,i),Sl(this)}G(e,t,r,i){const n=typeof r!="function"?r:{};return this.u=typeof r=="function"?r:i,Cl(this),wt(this,e,n,t),Sl(this)}m(){var e=new Be;te(e,"image_in"),te(e,"norm_rect"),H(e,"normalized_landmarks"),H(e,"world_landmarks"),H(e,"segmentation_masks");const t=new Oe;ut(t,ch,this.h);const r=new Ne;De(r,2,"mediapipe.tasks.vision.pose_landmarker.PoseLandmarkerGraph"),Z(r,"IMAGE:image_in"),Z(r,"NORM_RECT:norm_rect"),G(r,"NORM_LANDMARKS:normalized_landmarks"),G(r,"WORLD_LANDMARKS:world_landmarks"),r.o(t),Ye(e,r),sn(this,e),this.g.attachProtoVectorListener("normalized_landmarks",(i,n)=>{this.landmarks=[];for(const s of i)i=ui(s),this.landmarks.push(rn(i));C(this,n)}),this.g.attachEmptyPacketListener("normalized_landmarks",i=>{this.landmarks=[],C(this,i)}),this.g.attachProtoVectorListener("world_landmarks",(i,n)=>{this.worldLandmarks=[];for(const s of i)i=Ir(s),this.worldLandmarks.push(hi(i));C(this,n)}),this.g.attachEmptyPacketListener("world_landmarks",i=>{this.worldLandmarks=[],C(this,i)}),this.outputSegmentationMasks&&(G(r,"SEGMENTATION_MASK:segmentation_masks"),Lr(this,"segmentation_masks"),this.g.aa("segmentation_masks",(i,n)=>{this.segmentationMasks=i.map(s=>Dr(this,s,!0,!this.u)),C(this,n)}),this.g.attachEmptyPacketListener("segmentation_masks",i=>{this.segmentationMasks=[],C(this,i)})),e=e.g(),this.setGraph(new Uint8Array(e),!0)}};$e.prototype.detectForVideo=$e.prototype.G,$e.prototype.detect=$e.prototype.F,$e.prototype.setOptions=$e.prototype.o,$e.createFromModelPath=function(e,t){return W($e,e,{baseOptions:{modelAssetPath:t}})},$e.createFromModelBuffer=function(e,t){return W($e,e,{baseOptions:{modelAssetBuffer:t}})},$e.createFromOptions=function(e,t){return W($e,e,t)},$e.POSE_CONNECTIONS=vl;const ln="https://storage.googleapis.com/mediapipe-models/face_landmarker/face_landmarker/float16/latest/face_landmarker.task",mh="https://cdn.jsdelivr.net/npm/@mediapipe/tasks-vision@0.10.32/wasm",yh=()=>{const e=d.useRef(null),[t,r]=d.useState(!1),[i,n]=d.useState("Initializing..."),[s,a]=d.useState(0),[c,l]=d.useState(!1);d.useEffect(()=>{"serviceWorker"in navigator&&navigator.serviceWorker.register("/sw.js").then(w=>{console.log("ServiceWorker registered:",w)}).catch(w=>{console.log("ServiceWorker registration failed:",w)})},[]);const h=async()=>"caches"in window?await(await caches.open("mediapipe-models-v1")).match(ln)!==void 0:!1,u=async()=>{try{const w=await fetch(ln),g=w.headers.get("content-length"),m=g?parseInt(g,10):0;if(!w.body)throw new Error("No response body");const p=w.body.getReader();let y=0;const b=[];for(;;){const{done:v,value:S}=await p.read();if(v)break;if(b.push(S),y+=S.length,m){const E=Math.round(y/m*100);a(E),n(`Downloading model... ${E}%`)}}return"caches"in window&&await(await caches.open("mediapipe-models-v1")).put(ln,new Response(new Blob(b),{headers:{"Content-Type":"application/octet-stream"}})),!0}catch(w){return console.error("Failed to preload model:",w),!1}};return d.useEffect(()=>{(async()=>{try{n("Checking cached models..."),await h()?n("Using cached model..."):(n("Model not cached. Downloading..."),await u()),n("Loading MediaPipe WASM...");const m=await tr.forVisionTasks(mh);n("Creating face landmarker...");const p=await re.createFromOptions(m,{baseOptions:{modelAssetPath:ln,delegate:"GPU"},runningMode:"VIDEO",outputFaceBlendshapes:!0,numFaces:2});e.current=p,r(!0),n("Model loaded successfully ✅")}catch(g){console.error("Model init error:",g),n(`Error: ${g==null?void 0:g.message}`),(g==null?void 0:g.name)==="NotAllowedError"&&l(!0)}})()},[]),{faceLandmarkerRef:e,isModelLoaded:t,statusMessage:i,setStatusMessage:n,loadingProgress:s,permissionDenied:c,clearCache:async()=>{"caches"in window&&(await caches.delete("mediapipe-models-v1"),n("Cache cleared. Please refresh to re-download models."))}}},bh=()=>{const[e,t]=d.useState(0),r=d.useRef({lastTime:0,frames:0,fps:0}),i=d.useCallback(()=>{const n=performance.now(),s=r.current;if(s.frames++,n-s.lastTime>=1e3){const a=Math.round(s.frames*1e3/(n-s.lastTime));t(a),s.frames=0,s.lastTime=n}},[]);return{fps:e,updateFPS:i}},vh=()=>{const e=d.useRef({value:100,isLookingAway:!1}),t=d.useCallback((s,a,c,l)=>{if(!s||!c||!a)return;const h=s.getContext("2d");if(!h)return;const{width:u,height:f}=s;if(h.clearRect(0,0,u,f),h.drawImage(a,0,0,u,f),l){h.fillStyle="#00FF00";for(const w of c)h.fillRect(w.x*u-.5,w.y*f-.5,1,1)}},[]),r=d.useCallback(s=>{const a=e.current.value/100,c=100,l=20,h=20,u=40;s.fillStyle="rgba(0, 0, 0, 0.3)",s.fillRect(h,u,l,c),s.fillStyle=`rgba(${Math.floor(255*(1-a))}, ${Math.floor(255*a)}, 0, 0.8)`;const f=c*a;s.fillRect(h,u+c-f,l,f),s.fillStyle="#FFFFFF",s.fillRect(h,u+c*(1-a),l,2)},[]),i=d.useCallback((s,a,c,l,h,u,f)=>{if(t(s,a,c,l),h&&u&&f){const w=s.getContext("2d");w&&r(w)}},[t,r]),n=d.useCallback((s,a)=>{const c=s.getContext("2d");c&&(c.clearRect(0,0,s.width,s.height),c.drawImage(a,0,0,s.width,s.height))},[]);return{drawLandmarks:t,drawEngagementBar:r,drawWithEngagementBar:i,clearCanvas:n,engagementRef:e}},xh=50,Eh=()=>{const[e,t]=d.useState(100),[r,i]=d.useState(!1),n=d.useRef(0),s=d.useCallback((a,c,l)=>{if(!l||!a||a.length<468){i(!1);return}const h=a[33],u=a[263],f=a[1];if(!h||!u||!f)return;const w=(h.x+u.x)*.5,g=(h.y+u.y)*.5,m=w-c.x,p=g-c.y,y=Math.sqrt(m*m+p*p),b=Math.abs(f.y-c.noseY)*100,v=Math.abs(f.x-c.noseX)*100,S=Math.max(0,100-(y*200+b+v)),E=S<xh,x=performance.now();return x-n.current>100&&(t(S),i(E),n.current=x),{engagement:S,isLookingAway:E}},[]);return{engagement:e,isLookingAway:r,analyzeGaze:s,setEngagement:t,setIsLookingAway:i}},kh=.05,_h=()=>{const[e,t]=d.useState(!1),[r,i]=d.useState(!1),n=d.useCallback((c,l)=>Math.sqrt(Math.pow(c.x-l.x,2)+Math.pow(c.y-l.y,2)),[]),s=d.useCallback((c,l)=>{if(!c||!l)return 0;const h=[1,33,263,61,291,10,152];let u=0,f=0;const w=l[33],g=l[263],m=c[33],p=c[263];if(!w||!g||!m||!p)return 0;const y=n(w,g),b=n(m,p);if(y===0||b===0)return 0;for(const S of h){const E=l[S],x=c[S];if(E&&x){const k=w.x+(x.x-m.x)*y/b,M=w.y+(x.y-m.y)*y/b;u+=n(E,{x:k,y:M}),f++}}return f===0?0:u/f},[n]),a=d.useCallback((c,l,h,u)=>{if(!c.faceLandmarks||c.faceLandmarks.length===0)return u("Face not detected."),i(!0),t(!1),null;if(l&&h){let f=null,w=0;for(const g of c.faceLandmarks)s(g,h)<kh&&(f=g,w++);return w===1?(t(!1),i(!1),u("Reference face tracked."),f):w>1?(t(!0),i(!1),u("Multiple matching faces detected. Tracking suspended."),null):(t(!1),i(!0),u("Reference face not detected."),null)}else{const f=c.faceLandmarks[0];if(c.faceLandmarks.length>1)return t(!0),i(!1),u("Multiple faces detected. Please ensure only you are visible."),null;if(!f)return i(!0),t(!1),u("Face not detected."),null;const g=f[1],m=f[33],p=f[263];return g&&m&&p&&g.x>.35&&g.x<.65&&g.y>.3&&g.y<.7&&m.x>.2&&m.x<.8&&p.x>.2&&p.x<.8?(i(!1),t(!1),u("Face detected. Ready for calibration."),f):(i(!0),t(!1),u("Please position your face in the center."),null)}},[s]);return{multipleFacesDetected:e,referenceFaceNotDetected:r,analyzeFace:a,setMultipleFacesDetected:t,setReferenceFaceNotDetected:i}},Ch=500,Sh=(e,t,r)=>{const[i,n]=d.useState(!1),[s,a]=d.useState(ne.MODEL_LOADING),{incrementGazeViolation:c}=mo(),{multipleFacesDetected:l,referenceFaceNotDetected:h,isLookingAway:u}=e;d.useEffect(()=>{if(!r)return;let g;return(u||l||h)&&t?g=setTimeout(()=>{n(!0),l?(a(ne.MULTIPLE_FACES),c("multiple_faces")):h?(a(ne.NO_FACE),c("no_face_detected")):u&&(a(ne.LOOKING_AWAY),c("looking_away"))},Ch):(n(!1),s===ne.MODEL_LOADING?g=setTimeout(()=>{a(ne.FACE_DETECTED)},500):a(ne.FACE_DETECTED)),()=>{clearTimeout(g)}},[u,l,h,t,c,r]);const f=d.useCallback(()=>l?ne.MULTIPLE_FACES:h?ne.NO_FACE:u?ne.LOOKING_AWAY:s===ne.MODEL_LOADING?ne.MODEL_LOADING:ne.FACE_DETECTED,[l,h,u,s]),w=d.useCallback(()=>{n(!1),a("face_detected")},[]);return{showGazeWarningModal:i,faceDetectionState:s,getWarningType:f,closeWarningModal:w,setShowGazeWarningModal:n,setFaceDetectionState:a}};class K extends Error{constructor(t,r,i=!1){super(t),this.code=r,this.recoverable=i,this.name="STTError"}}const Ah=50*1024*1024,Al=300,Nl=500,wi=class wi{constructor(t={}){he(this,"config");he(this,"mediaRecorder",null);he(this,"audioChunks",[]);he(this,"audioChunksTotalSize",0);he(this,"recordingStream",null);he(this,"autoStopTimeoutId",null);he(this,"disposed",!1);he(this,"pendingStopPromise",null);he(this,"isStarting",!1);he(this,"recordingStartTime",null);he(this,"lastRecordedBlob",null);this.config={baseUrl:"http://localhost:8000",provider:"groq",model:"whisper-large-v3-turbo",language:"en",includeTimestamps:!1,temperature:0,...t}}updateConfig(t){this.throwIfDisposed(),this.config={...this.config,...t}}isRecordingSupported(){return!!(navigator.mediaDevices&&typeof navigator.mediaDevices.getUserMedia=="function"&&window.MediaRecorder)}async startRecording(t,r){var i;if(this.throwIfDisposed(),!this.isRecordingSupported())throw new K("Audio recording is not supported in this browser","RECORDING_NOT_SUPPORTED",!1);if(this.isRecording()||this.isStarting){console.warn("STTService.startRecording: already recording or starting, ignoring duplicate call.");return}this.isStarting=!0;try{this.recordingStream=await navigator.mediaDevices.getUserMedia({audio:yo({echoCancellation:!0,noiseSuppression:!0,autoGainControl:!0,sampleRate:{ideal:16e3},channelCount:{ideal:1}})}),wi.activeStream=this.recordingStream,this.audioChunks=[],this.audioChunksTotalSize=0,this.lastRecordedBlob=null;const n=this.getSupportedMimeType();this.mediaRecorder=new MediaRecorder(this.recordingStream,{mimeType:n}),this.mediaRecorder.addEventListener("dataavailable",a=>{var c,l,h;if(a.data.size>0){if(this.audioChunksTotalSize+a.data.size>Ah){console.error(`Max size exceeded: ${(this.audioChunksTotalSize/1024/1024).toFixed(2)} MB`);const u=new K("Recording exceeded maximum size limit","MAX_SIZE_EXCEEDED",!1);(c=r==null?void 0:r.onError)==null||c.call(r,u),this.isRecording()&&((l=this.mediaRecorder)==null||l.stop());return}this.audioChunks.push(a.data),this.audioChunksTotalSize+=a.data.size,(h=r==null?void 0:r.onDataAvailable)==null||h.call(r,a.data)}}),this.mediaRecorder.addEventListener("stop",()=>{var a;(a=r==null?void 0:r.onStop)==null||a.call(r)},{once:!0}),this.mediaRecorder.addEventListener("error",a=>{var l;const c=new K(`Recording failed: ${a.error}`,"RECORDING_ERROR",!0);(l=r==null?void 0:r.onError)==null||l.call(r,c),this.cleanup()});const s=wd();s!==void 0?this.mediaRecorder.start(s):this.mediaRecorder.start(),this.recordingStartTime=Date.now(),(i=r==null?void 0:r.onStart)==null||i.call(r),t&&t>0&&(this.autoStopTimeoutId=setTimeout(()=>{this.handleAutoStop()},t*1e3))}catch(n){if(this.cleanup(),n instanceof Error){if(n.name==="NotAllowedError"||n.name==="PermissionDeniedError")throw new K("Microphone permission was denied","PERMISSION_DENIED",!1);if(n.name==="NotFoundError")throw new K("No microphone found","NO_MICROPHONE",!1)}throw new K(`Failed to start recording: ${n instanceof Error?n.message:String(n)}`,"START_RECORDING_FAILED",!0)}finally{this.isStarting=!1}}async stopRecording(){var t;if(this.throwIfDisposed(),this.pendingStopPromise)return this.pendingStopPromise;if(this.autoStopTimeoutId&&(clearTimeout(this.autoStopTimeoutId),this.autoStopTimeoutId=null),!this.mediaRecorder||this.mediaRecorder.state==="inactive"){if(this.audioChunks.length>0){const i=((t=this.mediaRecorder)==null?void 0:t.mimeType)||"audio/webm",n=new Blob(this.audioChunks,{type:i});return this.cleanup(),n}if(this.lastRecordedBlob){const i=this.lastRecordedBlob;return this.lastRecordedBlob=null,i}const r=this.mediaRecorder?"State is inactive":"MediaRecorder is null";throw console.warn(`Cannot stop recording: ${r}`),new K("No active recording to stop","NO_ACTIVE_RECORDING",!1)}if(this.recordingStartTime!==null){const r=Date.now()-this.recordingStartTime;r<Al&&await new Promise(i=>setTimeout(i,Al-r))}return this.pendingStopPromise=new Promise((r,i)=>{if(!this.mediaRecorder){this.pendingStopPromise=null,i(new K("MediaRecorder is null","MEDIARECORDER_NULL",!1));return}const n=this.mediaRecorder,s=()=>{setTimeout(()=>{try{const a=n.mimeType||"audio/webm",c=new Blob(this.audioChunks,{type:a});if(!c||c.size===0){this.cleanup(),i(new K("Audio blob is empty","EMPTY_BLOB",!1));return}this.lastRecordedBlob=c,this.cleanup(),r(c)}catch(a){this.cleanup(),i(new K(`Failed to create audio blob: ${a instanceof Error?a.message:String(a)}`,"BLOB_CREATION_FAILED",!1))}finally{this.pendingStopPromise=null}},0)};n.addEventListener("stop",s,{once:!0});try{gd(n)}catch(a){this.pendingStopPromise=null,i(a)}}),this.pendingStopPromise}handleAutoStop(){if(!this.isRecording())return;const t=this.recordingStartTime?Date.now()-this.recordingStartTime:1/0;if(t<Nl){const r=Nl-t;setTimeout(()=>{this.isRecording()&&this.executeAutoStop()},r);return}this.executeAutoStop()}executeAutoStop(){this.stopRecording().catch(t=>{console.error("Auto-stop recording failed:",t),t instanceof K&&console.error(`[${t.code}] ${t.message}`)})}async transcribe(t){this.throwIfDisposed();const{audioBlob:r}=t;if(!r||r.size===0)throw new K("Audio blob is empty or invalid","INVALID_AUDIO",!1);try{const i=new FormData,n=new File([r],"recording.wav",{type:r.type||"audio/wav"});if(i.append("file",n),i.append("qna_id",this.config.qnaId||""),!this.config.interviewId)throw new K("Interview ID is missing from configuration","MISSING_INTERVIEW_ID",!1);const s=await st(`${this.config.baseUrl}${ot.TRANSCRIBE_ANSWER(this.config.interviewId)}`,{method:"POST",headers:{accept:"application/json","X-STT-Provider":this.config.provider||"groq",...this.config.authToken&&{Authorization:`Bearer ${this.config.authToken}`}},body:i},{attempts:1,backoff:"exponential",baseDelay:1e3,maxDelay:3e3,jitter:!0});if(!s.ok){const c=await s.text();let l=`STT request failed: ${s.status} ${s.statusText}`;try{const h=JSON.parse(c);l=h.message||h.error||l}catch{l=c||l}throw new K(l,`HTTP_${s.status}`,s.status>=500)}return{transcript:(await s.json()).data.transcribed_text??""}}catch(i){throw i instanceof K?i:new K(`Transcription failed: ${i instanceof Error?i.message:String(i)}`,"TRANSCRIPTION_FAILED",!0)}}cancelRecording(){this.autoStopTimeoutId&&(clearTimeout(this.autoStopTimeoutId),this.autoStopTimeoutId=null),this.mediaRecorder&&this.isRecording()&&this.mediaRecorder.stop(),this.cleanup()}isRecording(){return this.mediaRecorder!==null&&this.mediaRecorder.state==="recording"}dispose(){this.disposed||(this.cancelRecording(),this.disposed=!0)}isDisposed(){return this.disposed}getSupportedMimeType(){return fd()}getRecordingStream(){return this.recordingStream}cleanup(){this.recordingStream&&(this.recordingStream.getTracks().forEach(t=>t.stop()),this.recordingStream=null,wi.activeStream=null),this.recordingStartTime=null,this.mediaRecorder=null,this.audioChunks=[],this.audioChunksTotalSize=0,this.autoStopTimeoutId&&(clearTimeout(this.autoStopTimeoutId),this.autoStopTimeoutId=null)}throwIfDisposed(){if(this.disposed)throw new K("STTService has been disposed and cannot be reused","SERVICE_DISPOSED",!1)}};he(wi,"activeStream",null);let Pr=wi;const Tl=new Pr,Nh=(e,t,r,i)=>{const[n,s]=d.useState(null),a=d.useRef(null);return d.useEffect(()=>{if(!t)return;const c=async()=>{try{const u=await navigator.mediaDevices.getUserMedia({video:{width:{ideal:640},height:{ideal:480},facingMode:"user"},audio:!0});e.current&&(e.current.srcObject=u,s(u),e.current.onloadeddata=()=>{r()})}catch(u){console.error("Camera access error:",u),i("Camera access failed")}},l=a.current,h=e.current;return c(),()=>{l&&cancelAnimationFrame(l),h!=null&&h.srcObject&&(h.srcObject.getTracks().forEach(f=>f.stop()),s(null))}},[t,r]),d.useEffect(()=>{const c=Tl.getRecordingStream();if(c&&e.current){e.current.srcObject=c,s(c);const l=c.getVideoTracks(),h=c.getAudioTracks(),u=()=>{console.log("Media track ended - permission may have been revoked")};[...l,...h].forEach(f=>{f.addEventListener("ended",u)})}},[]),{animationFrameRef:a,stream:n}},Th=(e,t,r,i,n,s,a,c,l,h,u,f,w,g,m)=>{const p=d.useRef(null),y=d.useCallback(()=>{const b=e.current,v=t.current,S=r.current;if(!b||b.readyState<2||!S||!v){p.current=requestAnimationFrame(y);return}i();try{const E=performance.now(),x=S.detectForVideo(b,E),k=n(x,l,h.current,g);k?(s(v,b,k,u,f,w,l),l&&w&&c(k,h.current,w)):(a(v,b),w&&c(null,h.current,w))}catch(E){console.error("Face detection error:",E)}p.current=requestAnimationFrame(y)},[e,t,r,i,n,s,a,c,l,h,u,f,w,g,m]);return{renderLoop:y,animationFrameRef:p}},Ih=(e,t,r,i)=>{const{referenceSet:n,referenceRef:s,setReferenceData:a}=mo(),c=d.useRef(s),l=d.useCallback(()=>{c.current=s},[s]),h=d.useCallback(()=>{var g;const f=e.current,w=t.current;if(!(!f||!w))try{const m=performance.now(),p=f.detectForVideo(w,m);if((g=p.faceLandmarks)!=null&&g[0]){const y=p.faceLandmarks[0],b=y[33],v=y[263],S=y[1];b&&v&&S&&(c.current={x:(b.x+v.x)*.5,y:(b.y+v.y)*.5,noseX:S.x,noseY:S.y},a(!0,c.current),r("Reference set. Gaze tracking active."),i&&i())}}catch(m){console.error("Set reference error:",m),r("Failed to set reference")}},[e,t,r,a,i]),u=d.useCallback(()=>{a(!1,{x:0,y:0,noseX:0,noseY:0}),r("Reference reset. Starting calibration...")},[a,r]);return{referenceSet:n,referenceRef:c,setReference:h,resetReference:u,syncReference:l}};function Fh({onClose:e,warningType:t,isCheatingModalOpen:r=!1}){const i=ko[t],n=i.icon;return t==="face_detected"?null:o.jsx("div",{className:"iw-absolute iw-left-4 iw-right-4 md:iw-right-auto md:iw-w-[480px] iw-z-50 iw-animate-in iw-fade-in iw-slide-in-from-bottom-4 iw-duration-300 iw-transition-all",style:{bottom:r?"280px":"5rem"},children:o.jsxs("div",{className:"iw-relative iw-overflow-hidden iw-rounded-xl iw-border iw-border-dashed iw-border-[#5C6686] iw-bg-[#F1F5FE] iw-p-4 iw-shadow-2xl iw-backdrop-blur-sm",children:[o.jsx("button",{onClick:e,className:"iw-absolute iw-right-3 iw-top-3 iw-text-gray-400 iw-transition-colors iw-hover:iw-text-gray-600",children:o.jsx(Yr,{className:"iw-h-5 iw-w-5"})}),o.jsxs("div",{className:"iw-flex iw-items-start iw-gap-2",children:[o.jsx("div",{className:"iw-flex iw-size-8 iw-flex-shrink-0 iw-items-center iw-justify-center iw-rounded-full iw-border iw-border-[#5C6686]",children:o.jsx(n,{className:"iw-size-6 iw-text-[#5C6686]"})}),o.jsxs("div",{className:"iw-flex-1 iw-pt-0.5",children:[o.jsx("h2",{className:"iw-text-[20px] iw-font-semibold iw-leading-tight iw-text-[#062260] iw-pr-6",children:i.title}),o.jsx("p",{className:"iw-mt-1.5 iw-text-lg iw-text-[#5C6686]",children:i.subtitle}),i.description&&o.jsx("div",{className:"iw-mt-3 iw-border-t iw-border-dashed iw-border-[#5C6686] iw-pt-3",children:o.jsx("p",{className:"iw-text-[14px] iw-font-bold iw-text-[#062260]",children:i.description})})]})]})]})})}const Rs={good:{barColor:"iw-bg-green-400",activeBars:3,label:"Good",showModal:!1,modalIcon:Eo,modalIconColor:"iw-text-green-600",modalIconBg:"iw-bg-green-50",modalIconBorder:"iw-border-green-100",modalTitle:"Connection Stable",modalSubtitle:"Your connection is good"},fair:{barColor:"iw-bg-yellow-400",activeBars:2,label:"Fair",showModal:!1,modalIcon:Eo,modalIconColor:"iw-text-yellow-600",modalIconBg:"iw-bg-yellow-50",modalIconBorder:"iw-border-yellow-100",modalTitle:"Weak Connection",modalSubtitle:"Your network signal is weak",modalDescription:"The interview will continue, but you may experience audio/video delays."},poor:{barColor:"iw-bg-red-400",activeBars:1,label:"Poor",showModal:!0,modalIcon:Ad,modalIconColor:"iw-text-red-600",modalIconBg:"iw-bg-red-50",modalIconBorder:"iw-border-red-100",modalTitle:"Poor Connection",modalSubtitle:"Your internet connection is very weak",modalDescription:"Please check your network. Poor connection may affect your interview experience."},disconnected:{barColor:"iw-bg-gray-400",activeBars:0,label:"Offline",showModal:!0,modalIcon:Nd,modalIconColor:"iw-text-gray-600",modalIconBg:"iw-bg-gray-100",modalIconBorder:"iw-border-gray-300",modalTitle:"No Internet Connection",modalSubtitle:"You appear to be offline",modalDescription:"Please check your Wi-Fi or mobile data. The interview cannot proceed without a connection."}},Lh=["iw-h-2","iw-h-3.5","iw-h-5"];function Mh({quality:e}){const t=Rs[e],r=e==="disconnected";return o.jsxs("div",{title:`Network: ${t.label}`,className:"iw-relative iw-flex iw-items-end iw-gap-[3px] iw-rounded-md iw-border iw-border-white/10 iw-bg-black/40 iw-px-2 iw-py-1.5 iw-backdrop-blur-sm",children:[r&&o.jsx("div",{className:"iw-absolute iw-bottom-[0.2rem] iw-right-[0.1rem] iw-flex iw-h-3 iw-w-3 iw-items-center iw-justify-center iw-rounded-full iw-bg-red-500 iw-ring-2 iw-ring-black/40",children:o.jsx(kd,{className:"iw-text-white"})}),Lh.map((i,n)=>{const s=n<t.activeBars;return o.jsx("div",{className:`iw-w-1 iw-rounded-sm iw-transition-all iw-duration-500 ${i} ${s?t.barColor:"iw-bg-white/20"}`},n)})]})}function Dh({isOpen:e,quality:t,onClose:r}){if(!e)return null;const i=Rs[t],n=i.modalIcon;return o.jsx("div",{className:"iw-absolute iw-left-4 iw-right-4 md:iw-right-auto md:iw-w-[480px] iw-z-50 iw-animate-in iw-fade-in iw-slide-in-from-bottom-4 iw-duration-300 iw-transition-all",style:{bottom:"5rem"},children:o.jsxs("div",{className:"iw-relative iw-overflow-hidden iw-rounded-xl iw-border iw-border-dashed iw-border-[#5C6686] iw-bg-[#F1F5FE] iw-p-4 iw-shadow-2xl iw-backdrop-blur-sm",children:[o.jsx("button",{onClick:r,className:"iw-absolute iw-right-3 iw-top-3 iw-text-gray-400 iw-transition-colors hover:iw-text-gray-600","aria-label":"Dismiss network warning",children:o.jsx(Yr,{className:"iw-h-5 iw-w-5"})}),o.jsxs("div",{className:"iw-flex iw-items-start iw-gap-2",children:[o.jsx("div",{className:`iw-flex iw-size-8 iw-flex-shrink-0 iw-items-center iw-justify-center iw-rounded-full iw-border ${i.modalIconBorder} ${i.modalIconBg}`,children:o.jsx(n,{className:`iw-size-6 ${i.modalIconColor}`})}),o.jsxs("div",{className:"iw-flex-1 iw-pt-0.5",children:[o.jsx("h2",{className:"iw-text-[20px] iw-font-semibold iw-leading-tight iw-text-[#062260] iw-pr-6",children:i.modalTitle}),o.jsx("p",{className:"iw-mt-1.5 iw-text-lg iw-text-[#5C6686]",children:i.modalSubtitle}),i.modalDescription&&o.jsx("div",{className:"iw-mt-3 iw-border-t iw-border-dashed iw-border-[#5C6686] iw-pt-3",children:o.jsx("p",{className:"iw-text-[14px] iw-font-bold iw-text-[#062260]",children:i.modalDescription})})]})]})]})})}const Ph=({status:e})=>{const t=ko[e];if(!t)return null;const r=e!=="face_detected";return o.jsxs("div",{className:"iw-flex iw-flex-col iw-items-center iw-gap-0.5",children:[o.jsxs("div",{className:"iw-flex iw-items-center iw-gap-2 iw-px-3 iw-py-1 iw-rounded-full iw-backdrop-blur-md iw-shadow-sm transition-colors duration-300 iw-text-white",children:[o.jsx("div",{className:`iw-flex iw-h-4 iw-w-4 iw-items-center iw-size-2.5 iw-justify-center iw-rounded-full iw-text-white ${e==="face_detected"?"iw-bg-[#22C55E]":e==="model_loading"?"iw-bg-[#062260]":"iw-bg-[#E94315]"}`,children:e==="face_detected"?o.jsx(Ci,{}):e==="model_loading"?o.jsx("div",{className:"iw-animate-spin iw-border iw-border-white iw-border-t-transparent iw-rounded-full iw-w-2 iw-h-2"}):o.jsx(Yr,{})}),o.jsx("span",{className:"iw-text-sm iw-font-medium",children:e==="face_detected"?"Face detected clearly":e==="camera_error"?"Camera not found":t.title})]}),r&&o.jsx("span",{className:"iw-text-white iw-text-center iw-text-xs iw-drop-shadow-sm iw-max-w-[400px] iw-px-3",children:e==="model_loading"?"Initializing Face models. Please wait...":e==="no_face_detected"?"Face not detected. Please position yourself clearly in the frame.":e==="multiple_faces"?"Multiple faces detected. Please ensure only you are visible.":"Please position your face correctly."})]})};function Oh(e,t={}){const[r,i]=d.useState({data:null,loading:!1,error:null}),n=d.useCallback(async(...s)=>{var a,c,l,h;i(u=>({...u,loading:!0,error:null}));try{const u=await e(...s);i(f=>({...f,data:u,loading:!1,error:null})),(a=t.onSuccess)==null||a.call(t,u),(c=t.onSettled)==null||c.call(t,u,null)}catch(u){const f=u.type?u:{type:"unknown",message:u.message||"Unknown error",retryable:!0,userMessage:"Something went wrong. Please try again.",originalError:u};i(w=>({...w,loading:!1,error:f})),(l=t.onError)==null||l.call(t,f),(h=t.onSettled)==null||h.call(t,null,f)}},[e,t]);return{...r,execute:n}}const Bh=e=>{const[t,r]=d.useState(null),[i,n]=d.useState(!1),s=document,a=()=>!!(s.fullscreenEnabled||s.webkitFullscreenEnabled||s.mozFullScreenEnabled||s.msFullscreenEnabled),c=()=>s.fullscreenElement||s.webkitFullscreenElement||s.mozFullScreenElement||s.msFullscreenElement,l=async g=>{var m;try{if(!a())throw new Error("Fullscreen is not supported in this environment");g.requestFullscreen?await g.requestFullscreen():g.webkitRequestFullscreen?await g.webkitRequestFullscreen():g.mozRequestFullScreen?await g.mozRequestFullScreen():g.msRequestFullscreen&&await g.msRequestFullscreen()}catch(p){const y={name:"FullscreenError",message:p instanceof Error?p.message:"Failed to enter fullscreen"};r(y),(m=e==null?void 0:e.onError)==null||m.call(e,y)}},h=async()=>{var g;try{s.exitFullscreen?await s.exitFullscreen():s.webkitExitFullscreen?await s.webkitExitFullscreen():s.mozCancelFullScreen?await s.mozCancelFullScreen():s.msExitFullscreen&&await s.msExitFullscreen()}catch(m){const p={name:"FullscreenError",message:m instanceof Error?m.message:"Failed to exit fullscreen"};r(p),(g=e==null?void 0:e.onError)==null||g.call(e,p)}},u=d.useCallback(()=>{var m;const g=!!c();n(g),(m=e==null?void 0:e.onFullScreenChange)==null||m.call(e,g)},[e]);d.useEffect(()=>{const g=["fullscreenchange","webkitfullscreenchange","mozfullscreenchange","MSFullscreenChange"];return g.forEach(m=>{document.addEventListener(m,u)}),()=>{g.forEach(m=>{document.removeEventListener(m,u)})}},[u]);const f=async g=>{r(null);const m=g??document.documentElement;await l(m)};return{isFullScreen:i,toggleFullScreen:async g=>{i?await h():await f(g)},enterFullScreen:f,exitFullScreen:h,error:t}},Uh=e=>{d.useEffect(()=>{const t=i=>{(i.ctrlKey||i.metaKey)&&["c","v","a","t","n","w","r","s","p"].includes(i.key.toLowerCase())&&(i.preventDefault(),e({type:"blocked_shortcut",severity:"low",details:{action:"shortcut_pressed",reason:`Attempted to use a blocked keyboard shortcut: Ctrl + ${i.key}`}})),i.key.startsWith("F")&&i.key.length<=3&&(i.preventDefault(),e({type:"blocked_function_key",severity:"low",details:{action:"function_key_pressed",reason:`Attempted to use a blocked function key: ${i.key}`}})),i.altKey&&i.key==="Tab"&&(i.preventDefault(),e({type:"alt_tab_attempt",severity:"medium",details:{action:"alt_tab",reason:"Attempted to use the Alt + Tab shortcut"}}))},r=i=>{i.preventDefault(),e({type:"right_click_attempt",severity:"low",details:{action:"right_click",reason:"Attempted to use the right click"}})};return document.addEventListener("keydown",t),document.addEventListener("contextmenu",r),()=>{document.removeEventListener("keydown",t),document.removeEventListener("contextmenu",r)}},[e])},Vh=5e3,Gh="https://www.google.com/generate_204",eo=()=>navigator.connection;function Il(e,t,r,i){return e?t==="slow-2g"||t==="2g"||r!==void 0&&r>500||i!==void 0&&i<.15?"poor":t==="3g"||r!==void 0&&r>150||i!==void 0&&i<1?"fair":"good":"disconnected"}function jh(){const e=d.useCallback(()=>{const n=eo();return{effectiveType:n==null?void 0:n.effectiveType,rtt:n==null?void 0:n.rtt,downlink:n==null?void 0:n.downlink}},[]),t=d.useCallback((n={})=>{const s=navigator.onLine,{effectiveType:a,rtt:c,downlink:l}=e();return{quality:Il(s,a,c,l),isOnline:s,effectiveType:a,rtt:c,downlink:l,isInitialising:!1,...n}},[e]),[r,i]=d.useState(()=>{const n=eo(),s=!n||n.rtt===void 0;return t({isInitialising:s})});return d.useEffect(()=>{const n=eo(),s=!n||n.rtt===void 0,a=()=>i(t());window.addEventListener("online",a),window.addEventListener("offline",a),n==null||n.addEventListener("change",a);const c=()=>{document.visibilityState==="visible"&&a()};document.addEventListener("visibilitychange",c);const l=()=>{window.removeEventListener("online",a),window.removeEventListener("offline",a),n==null||n.removeEventListener("change",a),document.removeEventListener("visibilitychange",c)};if(!s)return i(w=>({...w,isInitialising:!1})),l;let h=!1,u;const f=async()=>{if(!h){try{const w=Date.now();await fetch(`${Gh}?_=${Date.now()}`,{cache:"no-store",mode:"no-cors"});const g=Date.now()-w;if(h)return;i(()=>{const m=navigator.onLine,{effectiveType:p,downlink:y}=e();return{quality:Il(m,p,g,y),isOnline:m,effectiveType:p,rtt:g,downlink:y,isInitialising:!1}})}catch{if(h)return;i(w=>({...w,quality:"disconnected",isOnline:!1,isInitialising:!1}))}h||(u=setTimeout(f,Vh))}};return f(),()=>{h=!0,clearTimeout(u),l()}},[t,e]),r}const $h=(e={})=>{const[t,r]=d.useState(!1),[i,n]=d.useState(!1),[s,a]=d.useState(null),[c,l]=d.useState(null),[h,u]=d.useState(null),f=d.useRef(e);f.current=e;const w=d.useRef(null);w.current||(w.current=new Pr(e.config)),d.useEffect(()=>{var b;e.config&&((b=w.current)==null||b.updateConfig(e.config))},[e.config]),d.useEffect(()=>{const b=w.current;return()=>{b==null||b.dispose(),w.current=null}},[]);const g=d.useCallback(async b=>{var S,E;const v=w.current;if(!v||v.isDisposed())throw new K("STT service is not available","SERVICE_UNAVAILABLE",!1);try{l(null),a(null),u(null),await v.startRecording(b,{onStart:()=>{var x,k;r(!0),(k=(x=f.current).onStart)==null||k.call(x)},onStop:()=>{var x,k;r(!1),(k=(x=f.current).onStop)==null||k.call(x)},onError:x=>{var M,_;const k=x instanceof K?x:new K(x.message,"RECORDING_ERROR",!0);l(k),r(!1),(_=(M=f.current).onError)==null||_.call(M,k)}})}catch(x){const k=x instanceof K?x:new K(x instanceof Error?x.message:String(x),"START_FAILED",!1);throw l(k),r(!1),(E=(S=f.current).onError)==null||E.call(S,k),k}},[]),m=d.useCallback(async()=>{var v,S;const b=w.current;if(!b||b.isDisposed())throw new K("STT service is not available","SERVICE_UNAVAILABLE",!1);try{const E=await b.stopRecording();return u(E),E}catch(E){const x=E instanceof K?E:new K(E instanceof Error?E.message:String(E),"STOP_FAILED",!1);throw l(x),r(!1),(S=(v=f.current).onError)==null||S.call(v,x),x}},[]),p=d.useCallback(async(b,v={})=>{var E,x,k,M,_,A;const S=w.current;if(!S||S.isDisposed())throw new K("STT service is not available","SERVICE_UNAVAILABLE",!1);try{if(l(null),n(!0),!b||b.size===0){console.warn("Skipping transcription — blob is empty");const P={transcript:""};return a(P.transcript),n(!1),(x=(E=f.current).onTranscriptionComplete)==null||x.call(E,P),P}const D={audioBlob:b,...v},B=await S.transcribe(D);return a(B.transcript),n(!1),(M=(k=f.current).onTranscriptionComplete)==null||M.call(k,B),B}catch(D){const B=D instanceof K?D:new K(D instanceof Error?D.message:String(D),"TRANSCRIPTION_FAILED",!0);throw l(B),n(!1),(A=(_=f.current).onError)==null||A.call(_,B),B}},[]),y=d.useCallback(()=>{var b;(b=w.current)==null||b.cancelRecording(),r(!1),u(null)},[]);return{startRecording:g,stopRecording:m,transcribe:p,cancelRecording:y,isRecording:t,isTranscribing:i,transcript:s,error:c,audioBlob:h}},Wh=e=>{const t=d.useRef(null),r=d.useRef(!1);d.useEffect(()=>{const i=()=>{document.hidden&&(r.current=!0,t.current&&(clearTimeout(t.current),t.current=null),e({type:"tab_switch",severity:"high",details:{action:"tab_hidden",reason:"Attempted to switch tabs or applications"}}),setTimeout(()=>{r.current=!1},100))},n=()=>{r.current||(t.current=setTimeout(()=>{r.current||e({type:"focus_loss",severity:"medium",details:{action:"window_blur",reason:"Focus lost from the interview window"}}),t.current=null},50))};return document.addEventListener("visibilitychange",i),window.addEventListener("blur",n),()=>{document.removeEventListener("visibilitychange",i),window.removeEventListener("blur",n),t.current&&clearTimeout(t.current)}},[e])},zh=()=>{d.useEffect(()=>{const e=document.createElement("style");return e.textContent=`
16
- * {
17
- -webkit-user-select: none !important;
18
- -moz-user-select: none !important;
19
- -ms-user-select: none !important;
20
- user-select: none !important;
21
- }
22
- input, textarea {
23
- -webkit-user-select: text !important;
24
- -moz-user-select: text !important;
25
- -ms-user-select: text !important;
26
- user-select: text !important;
27
- }
28
- `,document.head.appendChild(e),()=>{document.head.removeChild(e)}},[])};var j=(e=>(e.IDLE="idle",e.FETCHING_QUESTION="fetching_question",e.READING_QUESTION="reading_question",e.THINKING="thinking",e.ANSWERING="answering",e.TRANSCRIBING="transcribing",e.EDITING="editing",e.SUBMITTING="submitting",e.COMPLETED="completed",e))(j||{});const Fl={thinkingDuration:0,answeringDuration:120,editingDuration:30},Ll={idle:{next:"fetching_question"},fetching_question:{next:"reading_question"},reading_question:{next:"answering"},thinking:{next:"answering",duration:0},answering:{next:"transcribing",duration:120},transcribing:{next:"editing"},editing:{next:"submitting",duration:30},submitting:{next:"completed"},completed:{next:"completed"}};class Hh{constructor(t={},r={}){he(this,"config");he(this,"state");he(this,"phaseIntervalId",null);he(this,"globalIntervalId",null);he(this,"callbacks");this.config={...Fl,...t},this.callbacks=r,this.state={phase:"idle",currentPhaseTimeRemaining:0,totalTimeElapsed:0,currentQuestionNumber:0}}updateConfig(t){this.config={...this.config,...t}}getState(){return{...this.state}}startQuestion(){this.state.currentQuestionNumber===0&&this.startGlobalTimer(),this.state.currentQuestionNumber=this.state.currentQuestionNumber+1,this.state.phase="fetching_question",this.notifyChange()}nextPhase(){const t=this.state.phase;let r=Ll[t];if(!r)return;if(r.next==="editing"&&this.config.editingDuration===0){const n=Ll.editing;n&&(r=n)}this.stopPhaseTimer(),this.state.phase=r.next;const i=this.getDurationForPhase(r.next);i>0?(this.state.currentPhaseTimeRemaining=i,this.startPhaseTimer()):this.state.currentPhaseTimeRemaining=0,this.notifyChange()}setTotalTimeElapsed(t){var r,i;this.state.totalTimeElapsed=t,(i=(r=this.callbacks).onTick)==null||i.call(r,this.getState())}completeInterview(){var t,r;this.stopGlobalTimer(),this.stopPhaseTimer(),this.state.phase="completed",(r=(t=this.callbacks).onInterviewEnd)==null||r.call(t),this.notifyChange()}destroy(){this.stopPhaseTimer(),this.stopGlobalTimer()}getDurationForPhase(t){switch(t){case"thinking":return this.config.thinkingDuration;case"answering":return this.config.answeringDuration;case"editing":return this.config.editingDuration;default:return 0}}startGlobalTimer(){this.globalIntervalId=setInterval(()=>{var t,r;this.state.totalTimeElapsed++,(r=(t=this.callbacks).onTick)==null||r.call(t,this.getState())},1e3)}stopGlobalTimer(){this.globalIntervalId&&(clearInterval(this.globalIntervalId),this.globalIntervalId=null)}startPhaseTimer(){this.phaseIntervalId=setInterval(()=>{this.state.currentPhaseTimeRemaining--,this.state.currentPhaseTimeRemaining<=0&&this.nextPhase()},1e3)}stopPhaseTimer(){this.phaseIntervalId&&(clearInterval(this.phaseIntervalId),this.phaseIntervalId=null)}notifyChange(){var t,r;(r=(t=this.callbacks).onPhaseChange)==null||r.call(t,this.state.phase,this.getState())}}function qh(e={}){const{config:t={},callbacks:r={}}=e,i=d.useRef(null);i.current||(i.current=new Hh(t,{}));const n=i.current,[s,a]=d.useState(n.getState()),c=d.useCallback(()=>{a(n.getState())},[n]);d.useEffect(()=>{const f={onPhaseChange:(w,g)=>{var m;c(),(m=r.onPhaseChange)==null||m.call(r,w,g)},onTick:w=>{var g;c(),(g=r.onTick)==null||g.call(r,w)},onInterviewEnd:()=>{var w;c(),(w=r.onInterviewEnd)==null||w.call(r)}};n.callbacks=f},[n,r,c]),d.useEffect(()=>{n.updateConfig(t)},[n,t]),d.useEffect(()=>()=>{n.destroy()},[n]);const l=d.useCallback(()=>{n.startQuestion(),c()},[n,c]),h=d.useCallback(()=>{n.nextPhase(),c()},[n,c]),u=d.useCallback(()=>{n.completeInterview(),c()},[n,c]);return{state:s,startQuestion:l,nextPhase:h,completeInterview:u,timerService:n}}class Yh{constructor(){he(this,"currentAudio",null)}async play(t,r){var i,n;try{if(this.stop(),(i=r==null?void 0:r.onStart)==null||i.call(r),!t)throw new Error("No audio data provided");const s=window.atob(t),a=new Uint8Array(s==null?void 0:s.length);for(let h=0;h<(s==null?void 0:s.length);h++)a[h]=s==null?void 0:s.charCodeAt(h);const c=new Blob([a],{type:"audio/wav"}),l=URL.createObjectURL(c);return this.currentAudio=new Audio(l),new Promise((h,u)=>{if(!this.currentAudio){u(new Error("Audio element not created"));return}const f=this.currentAudio;f.onended=()=>{var w;URL.revokeObjectURL(l),this.currentAudio=null,(w=r==null?void 0:r.onEnd)==null||w.call(r),h()},f.onerror=w=>{var m;URL.revokeObjectURL(l),this.currentAudio=null;const g=new Error(`Audio playback failed: ${w}`);(m=r==null?void 0:r.onError)==null||m.call(r,g),u(g)},f.play().catch(w=>{var m;URL.revokeObjectURL(l),this.currentAudio=null;const g=new Error(`Failed to play audio: ${w.message}`);(m=r==null?void 0:r.onError)==null||m.call(r,g),u(g)})})}catch(s){const a=s instanceof Error?s:new Error(`TTS Error: ${String(s)}`);throw(n=r==null?void 0:r.onError)==null||n.call(r,a),a}}stop(){this.currentAudio&&(this.currentAudio.pause(),this.currentAudio.currentTime=0,this.currentAudio=null)}isPlaying(){return this.currentAudio!==null&&!this.currentAudio.paused}}const to=new Yh,Kh=(e={})=>{const[t,r]=d.useState(!1),[i,n]=d.useState(!1),[s,a]=d.useState(null),c=d.useCallback(async h=>{var u;try{a(null),n(!0),await to.play(h,{onStart:()=>{var f;n(!1),r(!0),(f=e.onStart)==null||f.call(e)},onEnd:()=>{var f;r(!1),(f=e.onEnd)==null||f.call(e)},onError:f=>{var w;r(!1),n(!1),a(f),(w=e.onError)==null||w.call(e,f)}})}catch(f){const w=f instanceof Error?f:new Error(String(f));throw a(w),r(!1),n(!1),(u=e.onError)==null||u.call(e,w),w}},[e]),l=d.useCallback(()=>{to.stop(),r(!1),n(!1)},[]);return{speak:c,stop:l,isPlaying:t,isLoading:i,error:s}},Xh=({onViolation:e,onEnd:t,maxViolations:r=5})=>{const{addViolation:i}=nd(),n=rd(),s=id(),a=d.useRef(s);d.useEffect(()=>{a.current=s},[s]);const c=d.useCallback(h=>{t&&t(h,a.current)},[t]);return{logViolation:d.useCallback(({type:h,severity:u,details:f})=>{const w={id:dd(),type:h,severity:u,details:f,timestamp:Date.now()};i(w);const g=a.current+1;e&&e(w,g),g>=r&&c("excessive_violations")},[i,e,r,c]),onInterviewEnd:c,violationCount:s,logList:n}},Qh=()=>{d.useEffect(()=>{function e(){console.clear(),console.log(`
29
- %c
30
- ╔═══════════════════════════════════════════════════════════════════════╗
31
- ║ ║
32
- ║ 🤖✨ AI INTERVIEW PLATFORM ✨🤖 ║
33
- ║ ║
34
- ╚═══════════════════════════════════════════════════════════════════════╝
35
-
36
- ⚡⚡⚡ ⚡⚡⚡ ⚡⚡⚡⚡⚡⚡ ⚡⚡⚡ ⚡⚡⚡
37
- ⚡⚡⚡⚡⚡ ⚡⚡⚡⚡⚡ ⚡⚡⚡⚡⚡⚡⚡⚡ ⚡⚡⚡⚡⚡ ⚡⚡⚡⚡⚡
38
- ⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡ ⚡⚡⚡ ⚡⚡⚡ ⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡
39
- ⚡⚡⚡ ⚡⚡⚡⚡⚡ ⚡⚡⚡⚡⚡ ⚡⚡⚡ ⚡⚡⚡ ⚡⚡⚡⚡⚡ ⚡⚡⚡⚡⚡
40
- ⚡⚡⚡ ⚡⚡⚡⚡⚡ ⚡⚡⚡⚡⚡ ⚡⚡⚡ ⚡⚡⚡ ⚡⚡⚡⚡⚡ ⚡⚡⚡⚡⚡
41
- ⚡⚡⚡ ⚡⚡⚡⚡⚡ ⚡⚡⚡⚡⚡ ⚡⚡⚡ ⚡⚡⚡ ⚡⚡⚡⚡⚡ ⚡⚡⚡⚡⚡
42
- ⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡ ⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡
43
- ⚡⚡⚡ ⚡⚡⚡⚡⚡ ⚡⚡⚡⚡⚡
44
- ⚡⚡⚡ ⚡⚡⚡⚡⚡ ⚡⚡⚡⚡⚡
45
- ⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡
46
-
47
- `,"color: #ff6b35; font-size: 14px; font-family: monospace; line-height: 0.8; text-shadow: 0 0 10px #ff6b35;"),console.log("%c🚨 SECURITY BREACH DETECTED 🚨",`color: #ff3366;
48
- font-size: 28px;
49
- font-weight: bold;
50
- text-shadow: 0 0 20px #ff3366, 0 0 40px #ff3366;
51
- background: linear-gradient(45deg, #ff3366, #ff6b35);
52
- -webkit-background-clip: text;
53
- -webkit-text-fill-color: transparent;
54
- padding: 20px;`),console.log(`
55
- %c
56
- ◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆
57
- ◇ ◇
58
- ◆ 🔒 INTERVIEW INTEGRITY SYSTEM ACTIVATED 🔒 ◆
59
- ◇ ◇
60
- ◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆
61
-
62
- `,"color: #4ecdc4; font-size: 16px; font-weight: bold; text-shadow: 0 0 10px #4ecdc4;"),console.log(`
63
- %c┌───────────────────────────────────────────────────────────┐
64
- │ │
65
- │ 🛡️ UNAUTHORIZED DEVELOPER TOOLS ACCESS DETECTED 🛡️ │
66
- │ │
67
- │ ⚠️ Your actions are being monitored and recorded │
68
- │ 📊 This violation has been logged with timestamp │
69
- │ 🚨 Interview administrators have been notified │
70
- │ ⏱️ Session integrity: COMPROMISED │
71
- │ │
72
- │ 💡 IMMEDIATE ACTION REQUIRED: │
73
- │ Close developer tools to continue interview │
74
- └─────────────────────────────────────────────────────────────┘`,"color: #ffd93d; font-size: 14px; font-family: monospace; background: rgba(255, 217, 61, 0.1); padding: 10px;")}const t={open:!1,orientation:null},r=160,i=setInterval(()=>{window.outerHeight-window.innerHeight>r||window.outerWidth-window.innerWidth>r?t.open||(t.open=!0,t.orientation=window.outerWidth-window.innerWidth>r?"vertical":"horizontal",e()):t.open&&(t.open=!1,console.log("%c🌟 Developer tools closed. Interview continues smoothly! ✨","color: #4ecdc4; font-weight: bold; text-shadow: 0 0 10px #4ecdc4;"))},500),n=a=>{if(a.keyCode===123||a.ctrlKey&&a.shiftKey&&(a.keyCode===73||a.keyCode===74)||a.ctrlKey&&a.keyCode===85)return a.preventDefault(),console.log("%c🎭 Nice try! Keyboard shortcuts are disabled during interviews ✨","color: #ffd93d; font-weight: bold; text-shadow: 0 0 10px #ffd93d;"),!1},s=a=>(a.preventDefault(),console.log("%c🌈 Right-click menu disabled for interview integrity! 🎪","color: #ff9ff3; font-weight: bold; text-shadow: 0 0 10px #ff9ff3;"),!1);return document.addEventListener("keydown",n),document.addEventListener("contextmenu",s),()=>{clearInterval(i),document.removeEventListener("keydown",n),document.removeEventListener("contextmenu",s),delete window.showStats,delete window.interviewTips}},[])},dn="video/webm";function Jh(e,t=!1,r){const i=Hr(),n=d.useRef(null),s=d.useRef([]),a=d.useRef(0),[c,l]=d.useState(!1),[h,u]=d.useState(!1),f=d.useRef(r);d.useEffect(()=>{f.current=r},[r]);const w=d.useCallback(async p=>{try{a.current++,u(!0);const b=`${f.current?`Q${f.current}`:"video-full"}-${e}-${Date.now()}.webm`,{data:v}=await i.requestUploadUrl(e,b,dn,ho.VIDEO_RECORDING);if(!(v!=null&&v.upload_url))throw new Error("Missing upload URL");await i.uploadAsset(v.upload_url,p,dn),v.asset_id&&await i.confirmAssetUpload(v.asset_id)}catch(y){console.error("Video upload failed:",y)}finally{a.current--,a.current===0&&u(!1)}},[i,e]),g=d.useCallback(p=>{if(!t)return;s.current=[];const y=new MediaRecorder(p,{mimeType:dn});y.ondataavailable=b=>{b.data&&b.data.size>0&&s.current.push(b.data)},y.onstop=async()=>{if(s.current.length>0){const b=new Blob(s.current,{type:dn});s.current=[],w(b)}},y.onerror=b=>{console.error("MediaRecorder error:",b)},y.start(),n.current=y,l(!0)},[w,t]),m=d.useCallback(()=>{if(!t)return;const p=n.current;p&&(p.state!=="inactive"&&p.stop(),n.current=null,l(!1))},[t]);return d.useEffect(()=>()=>{const p=n.current;p&&p.state!=="inactive"&&p.stop(),s.current=[],n.current=null},[]),{startRecording:g,stopRecording:m,isRecording:c,isUploading:h}}const Ml=d.forwardRef(({className:e="",interviewId:t="",interview_duration:r,showProctoringUI:i=!0,onSetReference:n,isAnswering:s,onProctoringStatusChange:a,showStatusOverlay:c=!1,cheatingWarningVisible:l=!1,isDeviceLoading:h=!1,videoAllowed:u=!0,questionNumber:f},w)=>{var Wl;const{authToken:g}=go(),m=Hr(),p=g?ud(g):null,{borderRadius:y}=Gt(),b=y??18,{proctoring:v,capture_screenshots:S,record_video:E}=zr(),x=!!(v!=null&&v.gazeAnalysisEnabled),[k,M]=d.useState(!1),[_,A]=d.useState((v==null?void 0:v.showLandmarks)??!1),[D,B]=d.useState(i&&((v==null?void 0:v.showEngagementBar)??!0)),[P,q]=d.useState(x),[V,U]=d.useState(!1),X=d.useRef(null),Ce=d.useRef(null),We=d.useRef(null),it=d.useCallback(async xe=>{var mt;const xi=X.current,nt=We.current;if(!xi||!nt)return;const nr=nt.getContext("2d");if(!nr)return;nt.width=xi.videoWidth,nt.height=xi.videoHeight,nr.save(),nr.scale(-1,1),nr.drawImage(xi,-nt.width,0,nt.width,nt.height),nr.restore();const vn=await new Promise(Ie=>nt.toBlob(Ie,"image/jpeg"));if(vn&&t)try{const Ie=`${xe}-${Date.now()}.jpeg`,Nt=await m.requestUploadUrl(t,Ie,"image/jpeg",ho.SCREENSHOT);Nt.data&&Nt.data.upload_url&&(await m.uploadAsset((mt=Nt==null?void 0:Nt.data)==null?void 0:mt.upload_url,vn,"image/jpeg"),Nt.data.asset_id&&await m.confirmAssetUpload(Nt.data.asset_id))}catch(Ie){console.error(`Failed to upload screenshot for ${xe}:`,Ie)}},[m,t]);d.useEffect(()=>{let xe;return s&&(U(!0),xe=setTimeout(()=>U(!1),1e3)),()=>{xe&&clearTimeout(xe)}},[s]);const{faceLandmarkerRef:Ct,isModelLoaded:Se,statusMessage:gi,setStatusMessage:ze,loadingProgress:Bt,permissionDenied:Ur,clearCache:Vr}=yh(),{fps:Gr,updateFPS:jr}=bh(),{drawWithEngagementBar:$r,clearCanvas:fn,engagementRef:St}=vh(),{engagement:Je,isLookingAway:pt,analyzeGaze:ve,setEngagement:Wr,setIsLookingAway:Ut}=Eh(),{multipleFacesDetected:Vt,referenceFaceNotDetected:rr,analyzeFace:oo,setMultipleFacesDetected:wn,setReferenceFaceNotDetected:pi}=_h(),{referenceSet:gn,referenceRef:ao,setReference:mi,resetReference:yi,syncReference:At}=Ih(Ct,X,ze,n),pn={multipleFacesDetected:Vt,referenceFaceNotDetected:rr,isLookingAway:pt},{showGazeWarningModal:mn,getWarningType:ir,closeWarningModal:bi,setShowGazeWarningModal:vi,setFaceDetectionState:O}=Sh(pn,x&&!c,Se);d.useEffect(()=>{if(a){if(h||!Se){a("model_loading");return}if(!u){a("camera_error");return}const xe=ir()||ne.NO_FACE;a(xe)}},[Se,h,u,Vt,rr,pt,ir,a]);const{renderLoop:$}=Th(X,Ce,Ct,jr,oo,$r,fn,ve,gn,ao,_,D,x,ze,pi),{stream:ue}=Nh(X,Se,$,ze),{startRecording:yn,stopRecording:co}=Jh(t,E,f),bn=jh(),jl=Rs[bn.quality],[O2,$l]=d.useState(!1);d.useEffect(()=>{jl.showModal&&$l(!1)},[bn.quality]),d.useEffect(()=>{At()},[At]),d.useEffect(()=>{St&&St.current&&(St.current.value=Je,St.current.isLookingAway=pt)},[Je,pt,St]);const B2=d.useCallback(xe=>{q(xe),xe||(Wr(100),Ut(!1))},[Wr,Ut]),U2=d.useCallback(()=>{Ut(!1),wn(!1),pi(!1),O("face_detected"),vi(!1),bi()},[Ut,wn,pi,O,vi,bi]),V2={engagement:Je,fps:Gr,isLookingAway:pt,multipleFacesDetected:Vt,referenceFaceNotDetected:rr};return d.useEffect(()=>{if(!S||!ue)return;const xe=[],nt=(r??Ei)*60*1e3/3,nr=[0,1,2].map((mt,Ie)=>({label:`capture-${Ie+1}`,start:Ie*nt,end:(Ie+1)*nt})),vn=(mt,Ie)=>mt===Ie?mt:Math.random()*(Ie-mt)+mt;return nr.forEach(({label:mt,start:Ie,end:Nt},G2)=>{let lo;G2===0?lo=3e3:lo=vn(Ie,Nt),xe.push(setTimeout(()=>{it(mt)},lo))}),()=>{xe.forEach(clearTimeout)}},[it,S,ue,r]),d.useImperativeHandle(w,()=>({setReference:()=>{mi()},resetReference:()=>{yi()},stopCamera:async()=>{try{co()}catch(xe){console.error("Failed to stop and upload video recording:",xe)}ue&&ue.getTracks().forEach(xe=>xe.stop())},startRecording:()=>{ue&&yn(ue)},stopRecording:()=>{co()}}),[mi,yi,ue,yn,co]),o.jsxs("div",{className:`iw-relative iw-h-full iw-w-full ${e}`,children:[Ur?o.jsxs("div",{className:"iw-rounded-md iw-border iw-border-red-600 iw-p-5 iw-text-red-600",children:[o.jsx("h2",{children:"Camera Permission Denied"}),o.jsx("p",{children:"Please allow camera access to use this application."})]}):o.jsx("div",{className:"iw-flex iw-w-full iw-h-full iw-justify-start iw-items-start",children:o.jsxs("div",{className:`iw-relative iw-max-w-full iw-max-h-full iw-aspect-video iw-rounded-2xl iw-overflow-hidden iw-bg-black ${V?"iw-animate-answer-start":""} ${s?"iw-border-4 iw-border-[#6296FB]":""}`,style:{width:"100%",height:"auto",minHeight:"0"},children:[o.jsx("video",{ref:X,autoPlay:!0,playsInline:!0,muted:!0,className:"iw-absolute iw-inset-0 iw-w-full iw-h-full iw-object-cover",style:{transform:"scaleX(-1)"}}),!u&&o.jsx("div",{className:"iw-absolute iw-inset-0 iw-flex iw-flex-col iw-items-center iw-justify-center iw-bg-black/60 iw-z-30",children:h||!Se?o.jsxs("div",{className:"iw-flex iw-flex-col iw-items-center iw-gap-3",children:[o.jsx("div",{className:"iw-w-5 iw-h-5 iw-border-2 iw-border-white/20 iw-border-t-white iw-rounded-full iw-animate-spin"}),o.jsx("span",{className:"iw-text-white/60 iw-text-xs iw-font-medium iw-tracking-wide",children:"Initializing camera..."})]}):o.jsxs(o.Fragment,{children:[o.jsx("span",{className:"iw-text-white iw-font-medium iw-text-sm",children:"Camera not found"}),o.jsx("p",{className:"iw-text-white/60 iw-text-xs iw-mt-1",children:"Please ensure your camera is connected and enabled"})]})}),x&&o.jsx("canvas",{ref:Ce,width:320,height:240,className:"iw-absolute iw-inset-0 iw-w-full iw-h-full iw-object-cover",style:{transform:"scaleX(-1)",borderRadius:b,display:"hidden"}}),o.jsx("canvas",{ref:We,style:{display:"none"}}),i&&o.jsxs("div",{className:"iw-absolute iw-top-4 iw-right-4 iw-inline-flex iw-items-center iw-gap-2 iw-rounded-lg iw-border iw-border-white/10 iw-bg-[#FFEBE6] iw-px-2 iw-py-1 iw-backdrop-blur-md",children:[o.jsx("div",{className:"iw-size-2 iw-animate-pulse iw-rounded-full iw-bg-red-500"}),o.jsx("span",{className:"iw-font-medium iw-text-xs iw-text-[#E94315]",children:"RECORDING"})]}),i&&((Wl=p==null?void 0:p.Data)==null?void 0:Wl.Username)&&o.jsx("div",{className:"iw-absolute iw-z-50 iw-bottom-4 iw-left-4 iw-inline-flex iw-items-center iw-gap-2 iw-rounded-lg iw-border iw-border-white/10 iw-bg-[#F1F5FE] iw-px-3 iw-py-1 iw-backdrop-blur-md",children:o.jsx("span",{className:"iw-font-medium iw-text-xs iw-text-[#062260]",children:p.Data.Username})}),o.jsx("div",{className:"iw-absolute iw-bottom-4 iw-right-4 iw-z-50",children:o.jsx(Mh,{quality:bn.quality})}),i&&o.jsx("div",{className:"iw-absolute iw-bottom-4 iw-right-4",children:o.jsx(Id,{showControls:(v==null?void 0:v.showControls)??!1,isBubbleOpen:k,setIsBubbleOpen:M,setReference:mi,clearCache:Vr,isModelLoaded:Se,gazeAnalysisEnabled:P&&x,referenceSet:gn,showLandmarks:_,setShowLandmarks:A,showEngagementBar:D,setShowEngagementBar:B,handleToggleGazeAnalysis:B2,stats:V2,statusMessage:gi,loadingProgress:Bt})}),c&&o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"iw-absolute iw-inset-0 iw-pointer-events-none iw-z-10 ",style:{background:"radial-gradient(ellipse 20% 40% at 50% 45%, transparent 99.5%, rgba(0,0,0,0.35) 100%)"}}),o.jsx("div",{className:"iw-absolute iw-bottom-2 iw-inset-x-0 iw-flex iw-justify-center iw-pointer-events-none iw-z-20",children:o.jsx(Ph,{status:u?h||!Se?"model_loading":ir()??"no_face_detected":"camera_error"})})]})]})}),x&&mn&&!c&&o.jsx(Fh,{isOpen:mn,onClose:U2,warningType:ir(),isCheatingModalOpen:l}),jl.showModal&&!O2&&o.jsx(Dh,{isOpen:!0,quality:bn.quality,onClose:()=>$l(!0)})]})}),Or=({children:e,variant:t="primary",size:r="md",fullWidth:i=!1,isLoading:n=!1,disabled:s,className:a="",...c})=>{const l="iw-inline-flex iw-items-center iw-justify-center iw-rounded-md iw-font-medium iw-transition-colors iw-focus:outline-none iw-focus:ring-2 iw-focus:ring-primary-500 iw-focus:ring-offset-2",h={primary:"iw-bg-primary-600 iw-text-white iw-hover:bg-primary-700 iw-border iw-border-transparent",secondary:"iw-bg-primary-100 iw-text-primary-700 iw-hover:bg-primary-200 iw-border iw-border-transparent",outline:"iw-bg-transparent iw-text-primary-700 iw-border iw-border-primary-500 iw-hover:bg-primary-50",text:"iw-bg-transparent iw-text-primary-600 iw-hover:bg-primary-50 iw-border iw-border-transparent",gradient:"iw-text-white iw-border iw-border-transparent iw-bg-gradient-to-r iw-from-purple-500 iw-to-indigo-500 hover:iw-from-purple-600 hover:iw-to-indigo-600"},u={sm:"iw-px-3 iw-py-1.5 iw-text-sm",md:"iw-px-4 iw-py-2.5 iw-text-sm",lg:"iw-px-5 iw-py-3 iw-text-base"},f="iw-disabled:opacity-50 iw-disabled:cursor-not-allowed iw-disabled:pointer-events-none",w=i?"iw-w-full":"";return o.jsxs("button",{className:`${l} ${h[t]} ${u[r]} ${w} ${f} ${a}`,disabled:s||n,...c,children:[n&&o.jsx(vo,{height:16,width:16,style:{marginRight:"3px"}}),e]})},Dl=({baseColor:e="#3B82F6",contentClassName:t,title:r,description:i})=>o.jsx(o.Fragment,{children:o.jsx("div",{className:`iw-hidden group-hover:iw-block iw-absolute iw-bottom-full iw-mb-3 iw-left-1/2 -iw-translate-x-1/2 iw-w-64 iw-z-50 ${t}`,children:o.jsxs("div",{className:"iw-rounded-lg iw-p-3 iw-shadow-lg iw-text-white iw-text-left iw-relative",style:{background:e},children:[r&&o.jsx("div",{className:"iw-flex iw-justify-between iw-items-start iw-mb-1",children:o.jsx("h4",{className:"iw-text-sm iw-font-bold iw-mr-2",children:r})}),i&&o.jsx("p",{className:"iw-text-xs iw-opacity-90 iw-leading-tight",children:i}),o.jsx("div",{className:"iw-absolute iw-top-full -iw-translate-x-1/2 iw-border-[6px] iw-border-transparent",style:{borderTopColor:e}})]})})}),Zh=({stream:e,className:t="",barCount:r=50,onAudioLevel:i})=>{const n=d.useRef(null),s=d.useRef(null),a=d.useRef(0),c=d.useRef(null),l=d.useRef(null),h=d.useRef(null);d.useEffect(()=>{if(!e||window===void 0)return;l.current||(l.current=new(window.AudioContext||window.webkitAudioContext));const f=l.current;c.current||(c.current=f.createAnalyser(),c.current.fftSize=256,c.current.smoothingTimeConstant=.5);const w=c.current;try{h.current&&h.current.disconnect(),h.current=f.createMediaStreamSource(e),h.current.connect(w)}catch(m){console.error("Error creating media stream source:",m);return}const g=()=>{if(!n.current)return;const m=n.current,p=m.getContext("2d");if(!p)return;const y=w.frequencyBinCount,b=new Uint8Array(y);w.getByteFrequencyData(b);const v=m.width,S=m.height;p.clearRect(0,0,v,S);let E=0;for(let V=0;V<y;V++){const U=b[V]??0;E+=U*U}const x=Math.sqrt(E/y),k=Math.min(1,x/128),M=new Float32Array(w.fftSize);w.getFloatTimeDomainData(M);let _=0;for(let V=0;V<M.length;V++){const U=M[V]||0;_+=U*U}const A=Math.sqrt(_/M.length),D=A>0?20*Math.log10(A):-1/0;let B="problem";if(D>=-20?B="good":D>=-25?B="acceptable":D>=-45?B="poor":B="problem",i){const V=Date.now();V-a.current>200&&(a.current=V,i(B,D))}p.clearRect(0,0,v,S);const P=r,q=Math.floor(k*P);for(let V=0;V<P;V++){const U=V*(v/P),X=v/P-1.8;V<q?p.fillStyle="#0EB00E":p.fillStyle="#D9D9D9",p.fillRect(U,0,X,S)}s.current=requestAnimationFrame(g)};return g(),()=>{s.current&&cancelAnimationFrame(s.current)}},[e,r]);const u=d.useRef({audioContext:l.current,source:h.current});return u.current={audioContext:l.current,source:h.current},d.useEffect(()=>()=>{u.current.source&&u.current.source.disconnect(),u.current.audioContext&&u.current.audioContext.state!=="closed"&&u.current.audioContext.close()},[]),o.jsx("canvas",{ref:n,className:t,width:300,height:20,style:{width:"100%",height:"100%"}})},Rh={initial:{bgColor:"iw-bg-[#FEF2F2]",borderColor:"iw-border-[#FECACA]",iconBg:"iw-bg-[#C81E1E]",iconColor:"iw-text-white",titleColor:"iw-text-[#C81E1E]",subtitleColor:"iw-text-[#991B1B]",title:"Action Required: No Sound Detected",subtitle:"Please speak into your microphone to test it.",tooltipText:"Please speak into your microphone to verify audio quality before proceeding",tooltipBg:"#DC2626"},poor:{bgColor:"iw-bg-[#FFF7ED]",borderColor:"iw-border-[#FFEDD5]",iconBg:"iw-bg-[#EA580C]",iconColor:"iw-text-white",titleColor:"iw-text-[#EA580C]",subtitleColor:"iw-text-[#9A3412]",title:"Poor Audio Levels: Speak Louder to Continue",subtitle:"We can hear you, but your microphone sound is very low.",tooltipText:"Your microphone sound is very low. Please try speaking louder or check your microphone settings.",tooltipBg:"#EA580C"},acceptable:{bgColor:"iw-bg-[#FFFBEB]",borderColor:"iw-border-[#FDE68A]",iconBg:"iw-bg-[#D97706]",iconColor:"iw-text-white",titleColor:"iw-text-[#D97706]",subtitleColor:"iw-text-[#92400E]",title:"Acceptable Action: Keep speaking.",subtitle:"You can speak louder for better quality.",tooltipText:"Your microphone is working, but we're having trouble hearing you clearly. Try speaking a bit louder or moving closer to your microphone",tooltipBg:"#B45309"},good:{bgColor:"iw-bg-[#F0FDF4]",borderColor:"iw-border-[#BBF7D0]",iconBg:"iw-bg-[#16A34A]",iconColor:"iw-text-white",titleColor:"iw-text-[#16A34A]",subtitleColor:"iw-text-[#14532D]",title:"Excellent!",subtitle:"Your audio is clear. You can continue.",tooltipText:"Your audio levels are perfect. You're ready to proceed with the interview",tooltipBg:"#16A34A"},success:{bgColor:"iw-bg-[#F0FDF4]",borderColor:"iw-border-[#BBF7D0]",iconBg:"iw-bg-[#16A34A]",iconColor:"iw-text-white",titleColor:"iw-text-[#16A34A]",subtitleColor:"iw-text-[#14532D]",title:"Success! Mic is ready.",subtitle:"Your microphone is working perfectly.",tooltipText:"Your microphone is working perfectly and ready for the interview",tooltipBg:"#16A34A"}},e2=({micEnabled:e,micTested:t,audioStatus:r})=>{if(!e)return null;let i="initial";t&&r==="problem"?i="success":r==="good"?i="good":r==="acceptable"?i="acceptable":r==="poor"&&(i="poor");const n=Rh[i];return o.jsx("div",{className:"iw-relative iw-w-full iw-group",children:o.jsxs("div",{className:`iw-flex iw-items-center iw-gap-3 iw-py-2 iw-px-2 iw-w-full iw-rounded-xl iw-border ${n.borderColor} ${n.bgColor} iw-transition-all iw-duration-300 ${i==="initial"||i==="poor"?"iw-animate-initial-mic":""}`,children:[o.jsx("div",{className:`iw-flex iw-items-center iw-justify-center iw-w-9 iw-h-9 iw-rounded-full ${n.iconBg} iw-shrink-0`,children:o.jsx(_d,{className:`iw-w-5 iw-h-5 ${n.iconColor}`})}),o.jsxs("div",{className:"iw-flex iw-flex-col iw-gap-[2px] iw-pr-2",children:[o.jsx("p",{className:`${n.titleColor} iw-text-sm iw-font-semibold iw-m-0 iw-leading-[1.1]`,children:n.title}),o.jsx("p",{className:`${n.subtitleColor} iw-text-xs iw-font-normal iw-m-0 iw-leading-[1.1]`,children:n.subtitle})]})]})})},Pl=({icon:e,devices:t,selectedId:r,onChange:i,label:n,showVisualizer:s=!1,showMicHint:a=!1,micTested:c=!1,audioStatus:l="problem",stream:h=null,hasPermission:u=!0,onAudioLevel:f})=>{const{baseColor:w}=Gt(),[g,m]=d.useState(!1),p=d.useRef(null);d.useEffect(()=>{const v=S=>{p.current&&!p.current.contains(S.target)&&m(!1)};return document.addEventListener("mousedown",v),()=>document.removeEventListener("mousedown",v)},[]);const y=t.find(v=>v.deviceId===r)||t[0],b=u&&(y==null?void 0:y.label)||n;return o.jsxs("div",{className:`iw-relative iw-flex-1 iw-w-1/2 ${!u&&"iw-group"}`,ref:p,children:[o.jsxs("div",{className:`iw-max-w-[300px] iw-flex iw-items-center iw-justify-between iw-bg-white iw-border iw-border-gray-200 iw-rounded-xl iw-px-3 iw-py-3 iw-transition-colors ${u?"iw-cursor-pointer hover:iw-border-blue-500":"iw-cursor-not-allowed"}`,onClick:()=>u&&m(!g),title:u?"":"Permission denied or device not found",children:[o.jsxs("div",{className:"iw-flex iw-items-center iw-gap-3 iw-min-w-0 iw-flex-1",children:[o.jsx(e,{className:"iw-w-5 iw-h-5 iw-text-[#062260] iw-flex-shrink-0"}),o.jsxs("div",{className:"iw-flex iw-flex-col iw-min-w-0 iw-flex-1",children:[o.jsx("span",{className:"iw-text-sm iw-text-[#062260] iw-font-medium iw-truncate",children:b}),s&&u&&o.jsx("div",{className:"iw-w-full iw-h-1.5 iw-mt-1",children:o.jsx(Zh,{stream:h,className:"iw-w-full iw-h-full",onAudioLevel:f,barCount:45})})]})]}),o.jsx("div",{className:"iw-flex iw-items-center iw-gap-2",children:u?o.jsxs(o.Fragment,{children:[o.jsx(bd,{className:`iw-w-4 iw-h-4 iw-text-gray-400 iw-transition-transform ${g?"iw-rotate-180":""}`}),r&&o.jsx("div",{className:"iw-bg-[#22C55E] iw-rounded-full iw-p-0.5",children:o.jsx(Ci,{className:"iw-w-3 iw-h-3 iw-text-white"})})]}):o.jsx("div",{className:"iw-text-[#E94315] iw-relative",children:o.jsx(_i,{className:"iw-size-5"})})})]}),!u&&o.jsx(Dl,{baseColor:w,contentClassName:"!iw-left-0",title:`Allow us to access your ${(n==null?void 0:n.split(" ")[1])??"device"}`,description:"We need permission to access your device. Go to your browser privacy settings to allow it"}),a&&u&&o.jsx("div",{className:"iw-w-full iw-mt-2 sm:iw-w-[calc(200%+16px)] iw-z-100",children:o.jsx(e2,{micEnabled:u,micTested:c,audioStatus:l})}),g&&u&&o.jsxs("div",{className:"iw-absolute iw-bottom-full iw-left-0 iw-right-0 iw-mb-2 iw-bg-white iw-border iw-border-gray-100 iw-rounded-xl iw-shadow-xl iw-z-50 iw-py-2 iw-max-h-60 iw-overflow-y-auto",children:[t.map(v=>o.jsxs("div",{className:`iw-px-4 iw-py-2.5 iw-text-sm iw-cursor-pointer iw-flex iw-items-center iw-justify-start hover:iw-bg-gray-50 ${r===v.deviceId?"iw-text-[#062260] iw-font-medium iw-bg-blue-50":"iw-text-gray-600"}`,onClick:()=>{i==null||i(v.deviceId),m(!1)},children:[r===v.deviceId&&o.jsx(Ci,{className:"iw-w-4 iw-h-4 iw-text-[#062260] iw-mr-1"}),o.jsx("span",{className:"iw-truncate",children:v.label||`Device ${v.deviceId.slice(0,5)}...`})]},v.deviceId)),t.length===0&&o.jsx("div",{className:"iw-px-4 iw-py-2 iw-text-sm iw-text-gray-400",children:"No devices found"})]})]})},Ol=({micEnabled:e=!1,videoEnabled:t=!1,buttonText:r,onButtonClick:i,isAgreed:n,onAgreedToggle:s,showCheckbox:a=!0,showMediaIcons:c=!0,disabled:l=!1,audioDevices:h=[],videoDevices:u=[],selectedAudioId:f,selectedVideoId:w,onAudioChange:g,onVideoChange:m,audioStream:p=null,isDeviceLoading:y=!1})=>{const{baseColor:b}=Gt(),[v,S]=d.useState("problem"),[E,x]=d.useState(!1);d.useEffect(()=>{S("problem"),x(!1)},[f]);const k=l||!n||c&&(!e||!t||!E)||y,M=_=>{const A={good:3,acceptable:2,poor:1,problem:0};S(D=>A[_]>A[D]?_:D),!E&&(_==="good"||_==="acceptable")&&x(!0)};return o.jsxs("div",{className:"iw-flex iw-flex-col iw-gap-1 iw-w-full",children:[o.jsxs("div",{className:"iw-flex iw-justify-center iw-items-center iw-gap-2 iw-flex-wrap iw-max-w-[700px] iw-mx-auto",children:[c&&o.jsxs("div",{className:"iw-flex sm:iw-flex-row iw-flex-col iw-gap-4 iw-w-full",children:[o.jsx(Pl,{icon:Ed,devices:h,selectedId:f??"",onChange:_=>g&&g(_),label:"Choose mic",showVisualizer:!0,showMicHint:!0,micTested:E,audioStatus:v,stream:p,hasPermission:e,onAudioLevel:M}),o.jsx(Pl,{icon:Sd,devices:u,selectedId:w??"",onChange:_=>m&&m(_),label:"Choose camera",hasPermission:t})]}),a&&o.jsxs("div",{className:"iw-flex iw-items-start iw-gap-3 iw-bg-[#F1F5FE] iw-rounded-xl iw-mb-1 iw-p-3 iw-pr-8 iw-border iw-border-[#c2c3c7]",children:[o.jsx("div",{className:`iw-mt-0.5 iw-h-5 iw-w-5 iw-min-w-[20px] iw-rounded iw-border iw-flex iw-items-center iw-justify-center iw-cursor-pointer iw-transition-colors ${n?"iw-bg-[#062260] iw-border-[#062260]":"iw-bg-white iw-border-[#062260]"}`,onClick:_=>{_.stopPropagation(),s(!n)},children:n&&o.jsx(Ci,{className:"iw-size-3 iw-text-white"})}),o.jsx("label",{onClick:()=>s(!n),className:"iw-text-[13px] iw-text-[#062260] iw-font-medium iw-cursor-pointer iw-select-none",children:"By continuing, you acknowledge and consent to the use of your face data exclusively for interview monitoring"})]})]}),o.jsxs("div",{className:"iw-relative iw-group iw-w-full iw-max-w-[280px] iw-mx-auto iw-mt-1",children:[o.jsx(Or,{onClick:i,disabled:k,className:`iw-h-12 iw-w-full iw-shadow-lg !iw-bg-[#F1F5FE] !iw-text-[#062260] !iw-font-bold !iw-border-[#E7EAF1] iw-rounded-lg ${k?"iw-opacity-50":"hover:iw-opacity-75"}`,children:y?"Device Loading...":r}),!n&&(!c||e&&t)&&Dl({baseColor:b,title:"Action Required",description:"Please check the box to acknowledge and consent to continue."})]})]})},t2=({steps:e,currentStepIndex:t})=>o.jsx("div",{className:"iw-flex iw-items-center iw-justify-center iw-gap-4 iw-w-full iw-py-2",children:e.map((r,i)=>{const n=i<t,s=i===t;return o.jsxs(d.Fragment,{children:[o.jsxs("div",{className:"iw-flex iw-items-center iw-gap-3",children:[o.jsx("div",{className:`iw-flex iw-size-9 iw-text-[#062260] iw-items-center iw-justify-center iw-rounded-full iw-font-semibold iw-border ${s||n?"iw-border-[#0EB00E] iw-bg-[#E9FFE6]":"iw-border-[#BDE0FD] iw-bg-[#E6F3FF]"}`,children:n?o.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"3",strokeLinecap:"round",strokeLinejoin:"round",children:o.jsx("polyline",{points:"20 6 9 17 4 12"})}):i+1}),o.jsx("span",{className:`iw-text-sm iw-font-medium ${s||n?"iw-text-[#062260]":"iw-text-[#5C6686]"}`,children:r.label})]}),i<e.length-1&&o.jsx("div",{className:"iw-flex-1 iw-max-w-[120px] iw-border-t iw-border-dotted iw-border-[#B3B9CB]"})]},i)})}),r2=["Don't refresh or reload the page during your assessment","Don't switch tabs or open other applications while session is ongoing","Don't leave your position during the session","Don't disable or interfere with video/audio monitoring"],i2=({isOpen:e,onStart:t,gazeEnabled:r=!1,videoFeedRef:i,interviewId:n="",interview_duration:s=Ei})=>{const{audioAllowed:a,videoAllowed:c,videoRef:l,audioDevices:h,videoDevices:u,selectedAudioDeviceId:f,selectedVideoDeviceId:w,isDeviceLoading:g,currentStream:m,handleAudioChange:p,handleVideoChange:y,stopStream:b}=pd(e),[v,S]=d.useState(!1),[E,x]=d.useState(0),[k,M]=d.useState(!1),_=d.useRef(null),A=d.useRef(null),D=U=>{_.current=U,i&&(typeof i=="function"?i(U):i.current=U)};if(d.useEffect(()=>()=>{A.current&&(clearInterval(A.current),A.current=null)},[]),!e)return null;const[B,P]=d.useState(ne.MODEL_LOADING),q=async()=>{var X;S(!0),(X=_.current)==null||X.resetReference();const U=()=>{var Ce;return(Ce=_.current)==null?void 0:Ce.setReference()};U(),A.current&&clearInterval(A.current),A.current=setInterval(U,500)},V=[{label:r?"Calibrate your camera":"Camera & Mic permission"},{label:"Basic guidelines"}];return o.jsx("div",{className:"iw-fixed iw-inset-0 iw-z-50 iw-flex iw-items-center iw-justify-center iw-bg-gray-900/40 iw-backdrop-blur-sm iw-p-4 iw-pt-16 iw-overflow-auto",children:o.jsxs("div",{className:"iw-w-full iw-max-w-[700px] iw-max-h-[900px] iw-my-6 iw-bg-white iw-rounded-xl iw-shadow-2xl iw-overflow-auto",children:[o.jsxs("div",{className:"iw-px-12 iw-pt-3",children:[o.jsx("h2",{className:"iw-text-[#062260] iw-text-2xl iw-font-medium iw-tracking-tight",children:"Final checks before you go live"}),o.jsx("div",{className:"iw-mt-1 iw-bg-[#F1F5FE] iw-rounded-xl iw-p-2 iw-border iw-border-[#E7EAF1]",children:o.jsx("p",{className:"iw-text-[#5C6686] iw-text-xs iw-leading-relaxed",children:"To ensure the integrity of the interview process, this platform uses your device’s camera to monitor your face and gaze direction. We do not store any outside this session"})}),o.jsx("div",{className:"iw-mt-3 iw-border-b iw-border-dashed iw-border-[#B3B9CB] iw-w-full"}),o.jsx(t2,{steps:V,currentStepIndex:E})]}),o.jsx("div",{className:"iw-px-12 iw-pb-3 iw-flex iw-flex-col iw-items-center",children:E===0?o.jsxs("div",{className:"iw-w-full iw-flex iw-flex-col iw-items-center iw-gap-4",children:[o.jsx("div",{className:"iw-w-full iw-max-w-[600px] iw-aspect-video iw-bg-slate-100 iw-rounded-2xl iw-overflow-hidden iw-relative iw-border iw-border-slate-200",children:r?o.jsx(Ml,{ref:D,interviewId:n,interview_duration:s,showProctoringUI:!1,showStatusOverlay:!g&&c,isDeviceLoading:g,videoAllowed:c,onProctoringStatusChange:P,onSetReference:()=>{A.current&&(clearInterval(A.current),A.current=null),S(!1),x(1)}}):o.jsx("video",{ref:l,autoPlay:!0,playsInline:!0,muted:!0,className:"iw-w-full iw-h-full iw-object-cover",style:{transform:"scaleX(-1)"}})}),o.jsx(Ol,{micEnabled:a,videoEnabled:c,buttonText:r?v?"Calibrating...":B==="model_loading"?"Initialising...":"Start calibrate":"Next",onButtonClick:()=>{r?q():x(1)},disabled:!k||r&&B!=="face_detected"||!r&&(!a||!c),isAgreed:k,onAgreedToggle:M,audioDevices:h,videoDevices:u,selectedAudioId:f,selectedVideoId:w,onAudioChange:p,onVideoChange:y,audioStream:m,isDeviceLoading:g})]}):o.jsxs("div",{className:"iw-w-full iw-flex iw-flex-col iw-gap-6",children:[o.jsx("div",{className:"iw-w-full iw-bg-[#F8FAFF] iw-rounded-2xl iw-p-8 iw-flex iw-flex-col iw-gap-5",children:r2.map((U,X)=>o.jsxs("div",{className:"iw-flex iw-items-center iw-gap-4",children:[o.jsx("div",{className:"iw-flex iw-h-7 iw-w-7 iw-min-w-[28px] iw-items-center iw-justify-center iw-rounded-full iw-bg-[#DBEAFE] iw-text-[#062260] iw-text-xs iw-font-bold",children:X+1}),o.jsx("span",{className:"iw-text-[#5C6686] iw-font-medium",children:U})]},X))}),o.jsx(Ol,{buttonText:"Start interview",onButtonClick:()=>{t(),b()},isAgreed:k,onAgreedToggle:M,showMediaIcons:!1})]})})]})})},Br=()=>{var e,t;to.stop(),Tl.dispose(),(t=(e=Pr.activeStream)==null?void 0:e.getTracks())==null||t.forEach(r=>r.stop())},un=e=>{const{baseColor:t,borderRadius:r}=Gt(),{loading:i,children:n,...s}=e;return o.jsx(Or,{style:{background:ld(t),borderRadius:r},...s,children:i?o.jsx(vo,{}):n})},n2=({question:e,isLoading:t=!1,phase:r,brandName:i,brandLogo:n})=>o.jsx("div",{className:"iw-rounded-xl iw-mb-4 message-animation iw-text-gray-800 iw-py-1",children:o.jsxs("div",{className:"iw-flex iw-items-center iw-gap-4",children:[o.jsx("div",{className:`iw-flex iw-flex-col iw-items-center iw-justify-center iw-relative iw-h-16 iw-w-16 iw-shrink-0 iw-shadow iw-rounded-full iw-border-[#E8EEFE] iw-border-4 ${r===j.READING_QUESTION?"iw-animate-speaking":""}`,children:o.jsx("div",{className:"iw-bg-transparent iw-flex iw-items-center iw-justify-center iw-rounded-full iw-size-full",style:{backgroundImage:"linear-gradient(#B5D0FD, #FFFFFF)"},children:o.jsx(An,{brandLogo:n,brandName:i})})}),o.jsx(s2,{phase:r,question:e,isLoading:t,brandName:i})]})}),s2=({phase:e,question:t,isLoading:r,brandName:i})=>{const n=i||"We",s=i?"is":"are";if(r||e===j.FETCHING_QUESTION||e===j.IDLE)return o.jsxs("div",{className:"iw-animate-pulse iw-w-full iw-space-y-3 iw-mr-10",children:[o.jsx("div",{className:"iw-h-5 iw-bg-gray-200 iw-rounded iw-w-full"}),o.jsx("div",{className:"iw-h-5 iw-bg-gray-200 iw-rounded iw-w-3/4"})]});const a=()=>o.jsxs("span",{className:"iw-animate-dot-wave iw-ml-1",children:[o.jsx("span",{children:"."}),o.jsx("span",{children:"."}),o.jsx("span",{children:"."})]});switch(e){case j.ANSWERING:return o.jsx("div",{className:"iw-flex iw-items-center iw-justify-between iw-w-full",children:o.jsxs("p",{className:"iw-text-lg iw-leading-7 iw-font-medium iw-text-gray-600",children:["Listening",o.jsx(a,{})]})});case j.TRANSCRIBING:return o.jsxs("p",{className:"iw-text-lg iw-leading-7 iw-font-medium iw-text-gray-600",children:[n," ",s," analyzing your answer",o.jsx(a,{})]});case(j.EDITING||j.SUBMITTING):return o.jsxs("p",{className:"iw-text-lg iw-leading-7 iw-font-medium iw-text-gray-600",children:[n," ",s," waiting for your answer..."]});default:return o.jsx("p",{className:"iw-text-lg iw-leading-7",children:t==null?void 0:t.question})}},o2=(e,t,r)=>Math.max(t,Math.min(r,e)),Bl=e=>{const t=Math.max(0,Math.floor(e)),r=Math.floor(t/60).toString().padStart(2,"0"),i=(t%60).toString().padStart(2,"0");return`${r}:${i}`},hn=({total:e,remaining:t,size:r=64,strokeWidth:i=6,className:n="",showLabel:s=!0})=>{const a=Math.max(1,e||1),c=o2(t/a,0,1),{radius:l,circumference:h,dashOffset:u,center:f}=d.useMemo(()=>{const m=(r-i)/2,p=2*Math.PI*m,y=p*(1-c),b=Math.round(i)%2===1,v=r/2+(b?.5:0);return{radius:m,circumference:p,dashOffset:y,center:v}},[r,i,c]),w=d.useMemo(()=>c<=.25?"iw-stroke-red-500":c<=.5?"iw-stroke-yellow-500":"iw-stroke-green-500",[c]),g=c<=.25?"iw-animate-pulse":"";return o.jsxs("div",{className:`iw-relative iw-inline-flex iw-items-center iw-justify-center iw-rounded-full iw-bg-white ${n}`,style:{width:r,height:r},"aria-label":`Time remaining ${Bl(t)}`,role:"timer","aria-live":"polite",children:[o.jsx("svg",{width:r,height:r,viewBox:`0 0 ${r} ${r}`,preserveAspectRatio:"xMidYMid meet",children:o.jsxs("g",{transform:`rotate(-90 ${f} ${f})`,children:[o.jsx("circle",{cx:f,cy:f,r:l,className:"iw-stroke-gray-200",strokeWidth:i,fill:"none",shapeRendering:"geometricPrecision",vectorEffect:"non-scaling-stroke"}),o.jsx("circle",{cx:f,cy:f,r:l,className:`${w} ${g}`,strokeWidth:i,strokeLinecap:"round",fill:"none",strokeDasharray:h,strokeDashoffset:u,shapeRendering:"geometricPrecision",vectorEffect:"non-scaling-stroke",style:{transition:"stroke-dashoffset 0.3s ease, stroke 0.2s ease"}})]})}),s?o.jsx("div",{className:"iw-absolute iw-inset-0 iw-flex iw-items-center iw-justify-center iw-rotate-0",children:o.jsx("span",{className:`iw-text-[11px] iw-font-semibold iw-tabular-nums ${c<=.25?"iw-text-red-600":c<=.5?"iw-text-yellow-600":"iw-text-green-600"}`,children:Bl(t)})}):o.jsx("div",{className:"iw-absolute iw-inset-0 iw-flex iw-items-center iw-justify-center iw-rotate-0",children:o.jsx(xd,{})})]})},a2=({label:e,error:t,fullWidth:r=!1,className:i="",id:n,...s})=>{const a=n||`textarea-${Math.random().toString(36).substring(2,9)}`,c="iw-block iw-rounded-md iw-border iw-border-gray-300 iw-shadow-sm iw-px-4 iw-py-2 iw-text-sm iw-transition-all",l=t?"iw-border-red-500 iw-focus:border-red-500 iw-focus:ring-red-500":"",h=r?"iw-w-full":"",u=i.includes("iw-h-full")||r?"iw-h-full":"";return o.jsxs("div",{className:`iw-h-full iw-flex iw-flex-col ${r?"iw-w-full":""}`,children:[e&&o.jsx("label",{htmlFor:a,className:"iw-block iw-text-sm iw-font-medium iw-text-gray-700 iw-mb-1",children:e}),o.jsx("textarea",{id:a,className:`${c} ${l} ${h} ${u} ${i}`,"aria-invalid":t?"true":"false",...s}),t&&o.jsx("p",{className:"iw-mt-1 iw-text-sm iw-text-red-600",children:t})]})},c2=({answerText:e,onAnswerChange:t,timerState:r,editingTime:i})=>o.jsxs("div",{className:"iw-w-full iw-bg-white iw-rounded-xl iw-border iw-border-[#84bbf5] iw-overflow-hidden iw-rounded-tr-none",children:[o.jsx("div",{className:"iw-p-2 iw-pb-0",children:o.jsx(a2,{value:e,onChange:t,placeholder:"Type your answer here...",className:"iw-w-full iw-h-64 iw-resize-none iw-bg-transparent iw-border-none iw-text-[#062260] iw-text-base iw-leading-relaxed focus-visible:iw-outline-0 iw-p-0",disabled:r.phase===j.SUBMITTING})}),o.jsxs("div",{className:"iw-bg-[#F1F5FE] iw-px-2 iw-py-2 iw-flex iw-items-center iw-justify-between iw-border-t iw-border-[#E8EEFE]",children:[o.jsx("span",{className:"iw-text-[#062260] iw-text-sm iw-font-medium iw-line-clamp-1",children:"Time left to edit answer"}),o.jsxs("div",{className:"iw-flex iw-items-center iw-gap-2",children:[o.jsx(hn,{total:i,remaining:r.currentPhaseTimeRemaining,size:32,strokeWidth:3,showLabel:!1}),o.jsx("span",{className:"iw-text-[#062260] iw-text-sm iw-font-bold",children:`${Sn(r.currentPhaseTimeRemaining,!0)}${r.currentPhaseTimeRemaining>=60?" min":" sec"}`})]})]})]}),Ul=({children:e})=>o.jsx("div",{className:"iw-flex iw-flex-col iw-items-start iw-mt-3 iw-gap-1",children:e}),l2=({questionNumber:e})=>o.jsxs("div",{className:"iw-px-4 iw-py-1.5 iw-rounded-full iw-mb-2 iw-text-sm iw-font-semibold",style:{color:"#062260",backgroundColor:"#E6F3FF",border:"1px solid #BDE0FD"},children:[" Q",e]}),d2=({label:e})=>o.jsxs("div",{className:"iw-flex iw-items-center iw-gap-2 iw-text-sm iw-text-gray-500 iw-bg-[#F1F5FE] iw-px-4 iw-py-1.5 iw-rounded-full iw-my-2 iw-font-semibold",children:[e&&o.jsx("span",{className:"iw-font-medium",children:e}),o.jsxs("span",{className:"iw-animate-dot-wave iw-text-2xl",children:[o.jsx("span",{children:"."}),o.jsx("span",{children:"."}),o.jsx("span",{children:"."})]})]}),u2=({timerState:e,answeringTime:t})=>{const r=(e==null?void 0:e.currentPhaseTimeRemaining)||0,i=t||Fl.answeringDuration;return o.jsxs("div",{className:"iw-flex iw-w-full iw-items-center iw-justify-between iw-gap-3 iw-bg-[#E6F3FF] iw-p-2 iw-rounded-lg",children:[o.jsx("span",{className:"iw-text-[#062260]",children:"Time left to answer"}),o.jsxs("div",{className:"iw-flex iw-items-center iw-gap-2",children:[o.jsxs("span",{className:"iw-text-xl iw-font-bold iw-text-[#062260]",children:[Sn(r,!0),r>=60?" min":" sec"]}),o.jsx(hn,{total:i,remaining:r,size:35,strokeWidth:4,showLabel:!1,className:"iw-shadow-sm iw-border iw-border-gray-100"})]})]})},h2=()=>{const e=d.useRef(null),t=d.useRef(null);return d.useEffect(()=>{const r=e.current;if(!r)return;const i=r.getContext("2d");if(!i)return;let n=null,s=null,a=null,c;const l=()=>{const h=Pr.activeStream;if(!h||!h.active){c=requestAnimationFrame(l);return}const u=window.AudioContext||window.webkitAudioContext;n=new u,s=n.createAnalyser(),s.fftSize=256,s.smoothingTimeConstant=.9,a=n.createMediaStreamSource(h),a.connect(s);const f=s.frequencyBinCount,w=new Uint8Array(f),g=new Float32Array(f),m=.2,p=()=>{if(t.current){const A=t.current.clientWidth-32;r.width!==A&&A>0&&(r.width=A)}const y=r.width,b=r.height;i.clearRect(0,0,y,b),s.getByteFrequencyData(w);for(let A=0;A<f;A++){const D=g[A]||0,B=w[A]||0;g[A]=D*m+B*(1-m)}const v=3,S=2,E=Math.floor(y/(v+S)),x=E>0?E%2===0?E-1:E:0;if(x<=0){c=requestAnimationFrame(p);return}const k=(y-x*(v+S))/2,M=Math.floor(x/2);i.fillStyle="#27ba71";const _=38;for(let A=0;A<x;A++){const D=Math.abs(A-M),B=M>0?D/M:0,P=2+Math.floor(Math.pow(B,1.5)*_);let q=g[Math.min(P,f-1)]||0;q=q/255,q=Math.pow(q,2.2);const V=1-B*.8,U=1.5,X=q>.05?Math.sin(Date.now()/300+A)*.5*V:0,Ce=q*(b-8)*V,We=Math.max(U,Ce+X),it=k+A*(v+S),Ct=(b-We)/2;i.beginPath(),i.roundRect(it,Ct,v,We,v/2),i.fill()}c=requestAnimationFrame(p)};p()};return l(),()=>{cancelAnimationFrame(c),a&&a.disconnect(),s&&s.disconnect(),n&&n.state!=="closed"&&n.close()}},[]),o.jsxs("div",{className:"iw-flex iw-flex-col iw-items-end iw-w-full iw-mt-4",children:[o.jsx("div",{className:"iw-px-4 iw-py-1.5 iw-rounded-full iw-mb-2 iw-text-sm iw-font-semibold",style:{color:"#062260",backgroundColor:"#F2E8FE",border:"1px solid #E9D5FF"},children:"You"}),o.jsx("div",{ref:t,className:"iw-w-full iw-p-4 iw-rounded-xl iw-rounded-tr-none iw-flex iw-items-center iw-justify-center",style:{backgroundColor:"#F7F1FE",minHeight:"80px"},children:o.jsx("canvas",{ref:e,height:40,className:"iw-block"})})]})},f2=({phase:e,questionNumber:t,timerState:r})=>{const{timers:i}=zr();switch(e){case j.FETCHING_QUESTION:return o.jsxs(Ul,{children:[o.jsx(l2,{questionNumber:t+1}),o.jsx(d2,{})]});case j.ANSWERING:return o.jsxs("div",{className:"iw-flex iw-flex-col iw-items-end iw-w-full",children:[o.jsx(h2,{}),o.jsx("div",{className:"iw-mt-2 iw-w-full",children:o.jsx(u2,{timerState:r,answeringTime:i==null?void 0:i.answeringDuration})})]});case j.TRANSCRIBING:return o.jsx(Ul,{children:o.jsxs("div",{className:"iw-flex iw-items-center iw-px-1 iw-py-1.5 iw-rounded-lg iw-mb-2 iw-text-sm iw-bg-[#F2E8FE]",children:[o.jsx("div",{className:"iw-h-8 iw-w-12 iw-transcribing-icon"}),o.jsx("span",{className:"iw-text-sm iw-text-[#062260]",children:"Analyzing answer…"})]})});default:return null}},w2=({item:e,index:t,isCurrentQuestion:r=!1,isEditable:i=!1,answerText:n="",onAnswerChange:s,timerState:a,editingTime:c})=>{const l=i&&a&&c!==void 0,h=l||e.answer!=null;return o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"iw-flex iw-flex-col iw-items-start",children:[o.jsxs("div",{className:"iw-px-4 iw-py-1.5 iw-rounded-full iw-mb-2 iw-text-sm iw-font-semibold",style:{color:"#062260",backgroundColor:"#E6F3FF",border:"1px solid #BDE0FD"},children:["Q",t+1]}),o.jsx("div",{className:"iw-w-full iw-p-4 iw-rounded-xl iw-text-[#062260] iw-text-base iw-leading-relaxed iw-rounded-tl-none",style:{backgroundColor:"#F1F5FE",border:r?"2px solid #84bbf5":"1px solid transparent"},children:e.question})]}),h&&o.jsxs("div",{className:"iw-flex iw-flex-col iw-items-end iw-mt-4",children:[o.jsx("div",{className:"iw-px-4 iw-py-1.5 iw-rounded-full iw-mb-2 iw-text-sm iw-font-semibold",style:{color:"#062260",backgroundColor:"#F2E8FE",border:"1px solid #E9D5FF"},children:"You"}),l?o.jsx(c2,{answerText:n||"",onAnswerChange:s,timerState:a,editingTime:c}):o.jsx("div",{className:"iw-w-full iw-p-4 iw-rounded-xl iw-text-[#062260] iw-text-base iw-leading-relaxed iw-rounded-tr-none",style:{backgroundColor:"#F7F1FE"},children:e.answer?e.answer:o.jsx("span",{className:"iw-italic iw-text-[#062260]/60",children:"No response"})})]}),r&&o.jsx(f2,{phase:a==null?void 0:a.phase,questionNumber:t+1,timerState:a})]})},g2=()=>o.jsx("div",{className:"iw-space-y-6 iw-animate-pulse",children:[1,2,3].map(e=>o.jsxs("div",{className:`iw-flex iw-flex-col ${e%2===0?"iw-items-end":"iw-items-start"} iw-gap-2`,children:[o.jsx("div",{className:"iw-h-8 iw-w-16 iw-bg-gray-200 iw-rounded-full"}),o.jsx("div",{className:"iw-h-24 iw-w-full iw-bg-gray-100 iw-rounded-xl"})]},e))}),p2=({transcript:e,isLoading:t,className:r="",bottomRef:i,isEditing:n,answerText:s,onAnswerChange:a,timerState:c,editingTime:l})=>o.jsxs("div",{className:`iw-h-full iw-flex iw-flex-col iw-bg-white iw-scroll-smooth iw-p-6 iw-pr-2 iw-min-w-32 iw-border iw-rounded-tr-2xl iw-rounded-br-2xl iw-border-[#E8EEFE] ${r}`,children:[o.jsxs("div",{className:"iw-mb-6",children:[o.jsx("h2",{className:"iw-text-lg iw-font-semibold iw-mb-4",style:{color:"#062260"},children:"Interview transcript"}),o.jsx("div",{className:"iw-h-px iw-w-full iw-border-t iw-border-dashed iw-border-gray-300"})]}),o.jsxs("div",{className:"iw-flex-1 iw-overflow-y-auto iw-pr-2 iw-space-y-6 iw-scrollbar-thin iw-max-w-xl iw-pb-5",children:[t?o.jsx(g2,{}):e==null?void 0:e.map((h,u)=>o.jsx(w2,{item:h,index:u,isCurrentQuestion:u===(e==null?void 0:e.length)-1,isEditable:!!(u===(e==null?void 0:e.length)-1&&n),answerText:s,onAnswerChange:a||(()=>{}),timerState:c,editingTime:l},h.qna_id)),o.jsx("div",{ref:i})]})]}),m2=({interviewId:e,className:t="",currentQuestion:r,lastSubmittedAnswer:i,isEditing:n,answerText:s,onAnswerChange:a,timerState:c,editingTime:l})=>{const h=Hr(),[u,f]=d.useState([]),[w,g]=d.useState(!0),m=d.useRef(null);return d.useEffect(()=>{var p;(p=m.current)==null||p.scrollIntoView({behavior:"smooth"})},[u,s,c==null?void 0:c.phase]),d.useEffect(()=>{(async()=>{var y;try{const b=await h.getInterviewTranscription(e);f(((y=b==null?void 0:b.data)==null?void 0:y.transcript)||[])}catch(b){console.error("Failed to fetch transcript:",b)}finally{g(!1)}})()},[e,h]),d.useEffect(()=>{r&&f(p=>{if(p.some(v=>v.qna_id===r.qna_id))return p;const b={qna_id:r.qna_id,question:r.question,answer:null,question_generated_at:new Date().toISOString(),answer_submitted_at:null};return[...p,b]})},[r]),d.useEffect(()=>{i?f(p=>p.map(y=>y.qna_id===i.qnaId?{...y,answer:i.answer,answer_submitted_at:new Date().toISOString()}:y)):s&&f(p=>p.map(y=>y.qna_id===(i==null?void 0:i.qnaId)?{...y,answer:s,answer_submitted_at:new Date().toISOString()}:y))},[i,s]),o.jsx(p2,{transcript:u,isLoading:w||(u==null?void 0:u.length)===0,className:t,bottomRef:m,isEditing:n,answerText:s,onAnswerChange:a,timerState:c,editingTime:l})},ro=5,io=5;function y2({isOpen:e,onClose:t,warningCount:r,violationType:i,onDisqualify:n}){const[,s]=d.useState(io),a=d.useRef(t),c=d.useRef(n),l=d.useRef(r);if(d.useEffect(()=>{a.current=t,c.current=n,l.current=r},[t,n,r]),d.useEffect(()=>{if(!e)return;const w=setInterval(()=>{s(g=>g<=1?(l.current+1>ro?c.current():a.current(),io):g-1)},1e3);return()=>clearInterval(w)},[e]),d.useEffect(()=>{e&&s(io)},[e]),!e)return null;const h=()=>{switch(i){case"tab_switch":return"Attempted tab switch/reload";case"fullscreen_exit":return"Attempted to exit full screen mode";case"focus_loss":return"Lost focus from interview window";case"blocked_shortcut":return"Used a blocked keyboard shortcut";case"right_click_attempt":return"Attempted right click";case"alt_tab_attempt":return"Attempted Alt + Tab";case"blocked_function_key":return"Attempted to use function key";default:return"Attempted right click/tab switch"}},u=ro-r,f=()=>{r+1>ro?n():t()};return o.jsx("div",{className:"iw-absolute iw-bottom-20 iw-left-4 iw-right-4 md:iw-right-auto md:iw-w-[480px] iw-z-50 iw-animate-in iw-fade-in iw-slide-in-from-bottom-4 iw-duration-300",children:o.jsxs("div",{className:"iw-relative iw-overflow-hidden iw-rounded-xl iw-border iw-border-dashed iw-border-[#E94315] iw-bg-[#FFEBE6] iw-p-4 iw-shadow-2xl iw-backdrop-blur-sm",children:[o.jsx("button",{onClick:f,className:"iw-absolute iw-right-3 iw-top-3 iw-text-gray-400 iw-transition-colors iw-hover:iw-text-gray-600",children:o.jsx(Yr,{className:"iw-h-5 iw-w-5"})}),o.jsxs("div",{className:"iw-flex iw-items-start iw-gap-3",children:[o.jsx("div",{className:"iw-flex iw-h-10 iw-w-10 iw-flex-shrink-0 iw-items-center iw-justify-center iw-rounded-full iw-border iw-border-[#FDCBBD]",children:o.jsx(_i,{className:"iw-h-5 iw-w-5 iw-text-red-500"})}),o.jsxs("div",{className:"iw-flex-1 iw-pt-0.5",children:[o.jsxs("h2",{className:"iw-text-[20px] iw-font-semibold iw-leading-tight iw-text-[#E94315]",children:["You have ",u>0?u:0," warning",u>1?"s":""," left"]}),o.jsx("p",{className:"iw-mt-1.5 iw-text-lg iw-text-[#5C6686]",children:h()}),o.jsx("div",{className:"iw-mt-3 iw-border-t iw-border-dashed iw-border-red-200 iw-pt-3",children:u===1?o.jsx("p",{className:"iw-text-[14px] iw-font-bold iw-text-[#062260]",children:"Next violation will disqualify you from this interview and automatically end the interview"}):o.jsx("p",{className:"iw-text-[14px] iw-font-bold iw-text-[#062260]",children:"Interview will end automatically after final warning"})})]})]})]})})}const b2=e=>o.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",...e,children:[o.jsx("path",{d:"M9 9.003a1 1 0 0 1 1.517-.859l4.997 2.997a1 1 0 0 1 0 1.718l-4.997 2.997A1 1 0 0 1 9 14.996z"}),o.jsx("circle",{cx:"12",cy:"12",r:"10"})]}),no=({isOpen:e,onClose:t,children:r,title:i,showCloseButton:n=!0,closeOnOverlayClick:s=!0,closeOnEscape:a=!0,className:c=""})=>{if(d.useEffect(()=>{if(!e||!a)return;const u=f=>{f.key==="Escape"&&t()};return document.addEventListener("keydown",u),()=>document.removeEventListener("keydown",u)},[e,a,t]),d.useEffect(()=>(e?(document.body.style.overflow="hidden",document.body.classList.add("interview-widget-container")):(document.body.style.overflow="unset",document.body.classList.remove("interview-widget-container")),()=>{document.body.style.overflow="unset",document.body.classList.remove("interview-widget-container")}),[e]),!e)return null;const l=u=>{s&&u.target===u.currentTarget&&t()},h=o.jsxs("div",{className:"interview-widget-container",style:{position:"fixed",inset:0,zIndex:9999,display:"flex",alignItems:"center",justifyContent:"center"},children:[o.jsx("div",{style:{position:"fixed",inset:0,backgroundColor:"rgba(0, 0, 0, 0.5)",transition:"opacity 0.2s"},onClick:l}),o.jsxs("div",{className:`iw-relative iw-bg-white iw-rounded-lg iw-shadow-xl iw-max-w-md iw-w-full iw-mx-4 iw-max-h-[90vh] iw-overflow-hidden ${c}`,role:"dialog","aria-modal":"true","aria-labelledby":i?"standalone-dialog-title":void 0,style:{zIndex:1e4},children:[(i||n)&&o.jsxs("div",{className:"iw-flex iw-items-center iw-justify-between iw-p-4 iw-border-b iw-border-gray-200",children:[i&&o.jsx("h2",{id:"standalone-dialog-title",className:"iw-text-lg iw-font-semibold iw-text-gray-900",children:i}),n&&o.jsx("button",{onClick:t,className:"iw-p-1 iw-text-gray-400 iw-hover:text-gray-600 iw-transition-colors iw-rounded iw-hover:bg-gray-100","aria-label":"Close dialog",children:o.jsx("svg",{className:"iw-w-5 iw-h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:o.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]}),o.jsx("div",{className:"iw-p-4 iw-overflow-y-auto",children:r})]})]});return zl.createPortal(h,document.body)},v2=({showHardReloadWarning:e,onContinue:t})=>{const r=()=>{t()};return o.jsxs(no,{isOpen:e,onClose:r,closeOnOverlayClick:!1,closeOnEscape:!1,showCloseButton:!1,className:"iw-max-w-lg iw-px-2 iw-rounded-xl",children:[o.jsx("div",{className:"iw-absolute iw-inset-x-0 iw-top-0 iw-h-1 iw-bg-gradient-to-r iw-from-red-500 iw-to-red-600"}),o.jsx("div",{className:"iw-space-y-1 iw-pb-2 iw-pt-3",children:o.jsxs("div",{className:"iw-flex iw-items-center iw-gap-2",children:[o.jsx(_i,{className:"iw-w-5 iw-h-5 iw-text-red-500"}),o.jsx("h3",{className:"iw-text-xl iw-font-semibold iw-text-red-500",children:"Full Screen Exit Detected"})]})}),o.jsx("div",{className:"iw-pt-4 iw-pb-6",children:o.jsx("p",{className:"iw-text-center iw-text-sm iw-leading-relaxed iw-text-gray-500/90",children:"Exiting full screen mode or reloading this page during the session is strictly prohibited. Any attempt to do so will be recorded and may lead to penalties."})}),o.jsx("div",{className:"iw-pt-2 iw-pb-4",children:o.jsxs("button",{onClick:r,className:"iw-w-full iw-flex iw-items-center iw-justify-center iw-gap-2 iw-px-4 iw-py-3 iw-bg-gray-100 iw-text-gray-600 iw-rounded-md iw-font-medium iw-transition-colors hover:iw-bg-gray-200 focus:iw-outline-none focus:iw-ring-2 focus:iw-ring-gray-400 focus:iw-ring-offset-2",children:[o.jsx(b2,{className:"iw-size-4"}),"Continue Session"]})})]})},Vl=({confirmExitInterview:e,isOpen:t,onClose:r})=>o.jsxs(no,{isOpen:t,onClose:r,showCloseButton:!1,closeOnOverlayClick:!1,className:"iw-max-w-xl iw-border-2 iw-border-dashed iw-rounded-xl iw-border-[#6296FB]",children:[o.jsxs("div",{className:"iw-p-4",children:[o.jsx("h2",{className:"iw-text-xl iw-font-semibold iw-text-[#062260]",children:"Are you sure you want to leave interview?"}),o.jsx("p",{className:"iw-mt-2 iw-text-[#667085] iw-line-clamp-2",children:"If you exit now, the interview will be terminated and cannot be resumed."})]}),o.jsx("div",{className:"iw-my-0 iw-h-px iw-m-6 iw-border-t iw-border-dashed iw-border-[#B3B9CB]"}),o.jsxs("div",{className:"iw-flex iw-justify-center iw-gap-4 iw-p-4",children:[o.jsx(Or,{className:"iw-px-8 iw-py-3 iw-rounded-xl !iw-bg-[#E94315] !iw-text-white !iw-font-bold !iw-shadow-md !hover:iw-opacity-70",onClick:e,children:"Leave"}),o.jsx(Or,{onClick:r,className:"iw-px-6 iw-py-3 iw-rounded-xl !iw-bg-[#F1F5FE] !iw-text-[#062260] !iw-font-bold !iw-border !iw-border-[#E7EAF1] !iw-shadow-md hover:iw-opacity-70",children:"Stay in Interview"})]})]}),Gl=d.createContext(null),x2=()=>{const e=d.useContext(Gl);return e||{violationCount:0,violationType:"fullscreen_exit",showWarningModal:!1,setShowWarningModal:()=>{},handleClose:()=>{},handleDisqualify:()=>{},handleUnintendedExit:()=>{}}},E2=d.forwardRef(({children:e,onDisqualify:t,onExit:r,isCompleted:i},n)=>{const[s,a]=d.useState(!1),[c,l]=d.useState(!1),[h,u]=d.useState(!1),[f,w]=d.useState(!1),[g,m]=d.useState("fullscreen_exit"),{logViolation:p,violationCount:y}=Xh({maxViolations:5,onViolation:D=>{!h&&!i&&!f&&(a(!0),m(D.type))}}),{enterFullScreen:b,isFullScreen:v,exitFullScreen:S}=Bh({onFullScreenChange(D){!D&&!h&&!f&&!i&&(a(!0),p({type:"fullscreen_exit",severity:"high",details:{action:"fullscreen_exit",reason:"Attempted to exit full screen mode"}})),D&&w(!1)}});d.useEffect(()=>{b()},[]),d.useImperativeHandle(n,()=>({exitFullScreenIntentionally:async()=>{w(!0),a(!1),u(!1);try{document.fullscreenElement&&await document.exitFullscreen()}catch(D){console.error("Failed to exit fullscreen:",D)}}}),[]),Wh(p),Uh(p),zh(),Qh();const{proctoring:E}=zr(),x=(E==null?void 0:E.prevent_unintended_exit)??!1,k=!h&&!f&&!i;d.useEffect(()=>{if(!k)return;const D=()=>{if(x)l(!0);else if(window.confirm("Leave site? Changes you made may not be saved.")){Br();return}window.history.pushState(null,"",window.location.href)},B=q=>(x&&l(!0),q.preventDefault(),q.returnValue="",""),P=()=>{f||Br()};return window.history.pushState(null,"",window.location.href),window.addEventListener("popstate",D),window.addEventListener("beforeunload",B),window.addEventListener("unload",P),()=>{window.removeEventListener("popstate",D),window.removeEventListener("beforeunload",B),window.removeEventListener("unload",P)}},[k,x,Br]);const M=d.useCallback(()=>{Br(),l(!1),a(!1)},[Br]),_=()=>{M(),u(!0),S(),t==null||t()},A=()=>{M(),r==null||r()};return o.jsxs(Gl.Provider,{value:{violationCount:y,violationType:g,showWarningModal:s,setShowWarningModal:a,handleClose:()=>{a(!1),b()},handleDisqualify:_,handleUnintendedExit:()=>{l(!0)}},children:[o.jsx("div",{className:"iw-relative iw-h-full iw-w-full",children:e}),o.jsx(Vl,{isOpen:c,onClose:()=>{l(!1)},confirmExitInterview:()=>{A()}}),!v&&y>0&&!h&&!f&&o.jsx(v2,{showHardReloadWarning:!0,logViolation:p,onContinue:b})]})}),k2=({onClick:e,text:t="Submit response",disabled:r=!1,isFirstQuestion:i=!1})=>(d.useEffect(()=>{if(typeof window>"u")return;const n=s=>{const a=s.key==="Enter",c=s.target;if(!(c.tagName==="INPUT"||c.isContentEditable)&&a){if(r)return;s.preventDefault(),e()}};return window.addEventListener("keydown",n),()=>window.removeEventListener("keydown",n)},[e,r]),o.jsxs("div",{className:"iw-fixed iw-bottom-10 iw-left-1/4 iw-transform iw--translate-x-1/2 iw-z-50",children:[i&&o.jsxs("div",{className:"iw-absolute iw-bottom-full iw-left-0 iw-transform iw--translate-x-1/2 iw-mb-3 iw-px-3 iw-py-2 iw-border iw-border-[#ecedee] iw-bg-[#ecedee] iw-text-black iw-text-[12px] iw-rounded-lg iw-whitespace-nowrap iw-animate-bounce iw-shadow-xl",children:["You can click here to submit your response",o.jsx("div",{className:"iw-absolute iw-top-full iw-left-1/2 iw-transform iw--translate-x-1/2 iw-border-8 iw-border-transparent iw-border-t-[#ecedee]"})]}),o.jsxs("button",{disabled:r,onClick:e,className:`iw-flex iw-items-center iw-gap-3 iw-text-white iw-px-5 iw-py-3 iw-rounded-lg iw-shadow-lg iw-transition-all iw-duration-200 iw-group ${r?"iw-bg-[#4C6CFF]/60 iw-cursor-not-allowed":"iw-bg-[#4C6CFF] hover:iw-bg-[#4c6dffd5]"} ${i?"iw-animate-speaking iw-ring-4 iw-ring-[#4C6CFF]/30 iw-scale-105":""}`,children:[o.jsx("span",{className:"iw-font-semibold iw-text-sm",children:t}),o.jsx("span",{className:"iw-bg-white/90 iw-text-[#062260] iw-px-2 iw-py-1 iw-rounded iw-text-xs iw-font-mono iw-font-bold group-hover:iw-bg-white iw-transition-colors",children:"Press Enter"})]})]})),_2=({isOpen:e,onRetry:t,onExit:r,retryClicksCount:i,isLoading:n})=>{const{retryProgressSavedText:s,retryMaxAttempts:a=3,retryNoAttemptsLeftText:c}=Gt(),l=i>=a;return o.jsxs(no,{isOpen:e,onClose:()=>{},showCloseButton:!1,closeOnOverlayClick:!1,className:"iw-max-w-xl iw-border-2 iw-border-dashed iw-rounded-xl iw-border-[#6296FB]",children:[o.jsxs("div",{className:"iw-p-4",children:[o.jsx("h2",{className:"iw-text-xl iw-font-semibold iw-text-[#062260]",children:"Something went wrong"}),o.jsx("p",{className:"iw-mt-2 iw-text-[#667085]",children:s}),i>0&&o.jsx("p",{className:"iw-mt-2 iw-text-sm iw-text-[#E94315] iw-font-medium",children:l?c:`Attempts: ${i}/${a}`})]}),o.jsx("div",{className:"iw-my-0 iw-h-px iw-m-6 iw-border-t iw-border-dashed iw-border-[#B3B9CB]"}),o.jsxs("div",{className:"iw-flex iw-justify-center iw-gap-4 iw-p-4",children:[o.jsx(Or,{onClick:t,disabled:l||n,className:"iw-px-8 iw-py-3 iw-rounded-xl !iw-bg-[#2563EB] !iw-text-white !iw-font-bold !iw-shadow-md hover:iw-opacity-70 disabled:iw-opacity-50 disabled:iw-cursor-not-allowed",children:n?"Retrying...":"Retry"}),o.jsx(Or,{onClick:r,className:"iw-px-6 iw-py-3 iw-rounded-xl !iw-bg-[#F1F5FE] !iw-text-[#062260] !iw-font-bold !iw-border !iw-border-[#E7EAF1] !iw-shadow-md hover:iw-opacity-70",children:"Exit Interview"})]})]})},C2=({brandName:e,brandLogo:t,currentQuestion:r,state:i,phase:n,className:s="",interviewId:a="",interview_duration:c=Ei,videoFeedRef:l,lastSubmittedAnswer:h,onNextPhase:u,answerText:f,onAnswerChange:w,editingTime:g,disableSubmitButton:m=!1,fetchQuestionError:p,onRetryQuestion:y,retryClicksCount:b=0,isFetchingQuestion:v=!1,onExitInterview:S})=>{const{showWarningModal:E,violationCount:x,violationType:k,handleClose:M,handleDisqualify:_}=x2();return o.jsxs("div",{className:`iw-px-4 iw-py-3 ${s} iw-h-[calc(100vh_-_120px)] iw-max-h-[calc(100vh_-_120px)] iw-flex iw-gap-0 iw-relative`,children:[o.jsxs("div",{className:"iw-flex iw-flex-col iw-flex-1 iw-p-5 iw-bg-white/50 iw-border iw-border-[#E8EEFE] iw-rounded-s-3xl iw-overflow-hidden",children:[o.jsx("div",{className:"iw-flex iw-items-start iw-justify-between iw-gap-3 iw-mb-4",children:o.jsx("div",{className:"iw-flex-1",children:o.jsx(n2,{question:r,isLoading:v||n===j.IDLE,phase:n,brandName:e,brandLogo:t})})}),o.jsxs("div",{className:"iw-flex-1 iw-min-h-0 iw-rounded-[16px] iw-overflow-hidden iw-relative",children:[o.jsx(Ml,{ref:l,interviewId:a,interview_duration:c,isAnswering:n===j.ANSWERING,cheatingWarningVisible:E,questionNumber:(i==null?void 0:i.currentQuestionNumber)||1}),o.jsx(y2,{isOpen:E,warningCount:x,violationType:k,onClose:M,onDisqualify:_})]})]}),o.jsx("div",{className:"iw-interview-transcription iw-w-1/4 iw-min-w-32 iw-h-full",children:o.jsx(m2,{interviewId:a,currentQuestion:r,lastSubmittedAnswer:h,isEditing:n===j.EDITING,answerText:f,onAnswerChange:w,timerState:i,editingTime:g})}),u&&(n===j.ANSWERING||n===j.EDITING)&&o.jsx(k2,{onClick:u,disabled:m,isFirstQuestion:(i==null?void 0:i.currentQuestionNumber)===1,text:n===j.ANSWERING?"Submit Response":"Submit Final Response"}),o.jsx(_2,{isOpen:!!p,onRetry:y||(()=>{}),onExit:S||(()=>{}),retryClicksCount:b,isLoading:v})]})},S2=({title:e,brandName:t,brandLogo:r,onExit:i,totalDuration:n=30,elapsedTime:s=0})=>{const[a,c]=d.useState(!1),l=Math.min(s/(n*60)*100,100),h=()=>o.jsxs("div",{className:"iw-px-4 iw-pb-2 iw-flex iw-items-center iw-gap-3",children:[o.jsx("div",{className:"iw-flex-1 iw-h-4 iw-bg-[#F2F4F7] iw-rounded-full iw-overflow-hidden iw-border iw-border-blue-100 iw-relative",children:o.jsx("div",{className:"iw-h-full iw-bg-[#0EB00E] iw-rounded-full iw-transition-all iw-duration-1000 iw-ease-linear",style:{width:`${l}%`}})}),o.jsxs("div",{className:"iw-text-sm iw-font-medium iw-whitespace-nowrap",children:[o.jsx("span",{className:"iw-text-[#062260]",children:Sn(s)}),o.jsxs("span",{className:"iw-text-[#667085]",children:["/",n," Min"]})]})]});return o.jsxs("header",{className:"iw-w-full iw-text-gray-900 iw-shadow-sm",children:[o.jsxs("div",{className:"iw-mx-auto iw-flex iw-items-center iw-justify-between iw-p-4 iw-pt-1 iw-mb-2 iw-border-b iw-border-[#B3B9CB] iw-border-dashed",children:[o.jsxs("div",{className:"iw-flex iw-items-center iw-space-x-2",children:[o.jsx(An,{brandLogo:r,brandName:t}),o.jsx("p",{className:"iw-text-xl iw-font-semibold",children:t})]}),o.jsx("h1",{className:"iw-text-2xl iw-font-semibold iw-text-gradient-silver",children:e}),o.jsx("button",{className:"iw-text-sm iw-text-[#E94315] iw-min-w-10 iw-rounded-md hover:iw-bg-orange-100 iw-p-2",onClick:()=>c(!0),children:o.jsxs("span",{className:"iw-flex iw-items-center iw-gap-1 iw-text-[18px] iw-font-semibold iw-whitespace-nowrap",children:[o.jsx(Yr,{className:"iw-text-[#E94315] iw-size-5"}),"Leave interview"]})})]}),o.jsx(h,{}),o.jsx("div",{className:"iw-h-px iw-bg-gray-200"}),o.jsx(Vl,{isOpen:a,confirmExitInterview:()=>{i(),c(!1)},onClose:()=>c(!1)})]})},A2=({className:e="",width:t,height:r=56,barWidth:i=3,gap:n=2,fftSize:s=1024,smoothingTimeConstant:a=.8,mediaStream:c,startOnMount:l=!0})=>{const{baseColor:h}=Gt(),u=d.useRef(null),f=d.useRef(null),w=d.useRef(null),g=d.useRef(null),m=d.useRef(null),p=d.useRef(null),y=d.useRef(!1),[b,v]=d.useState(null);d.useEffect(()=>{if(t||!f.current)return;const E=f.current,x=()=>{const M=u.current;if(!M)return;const _=E.clientWidth,A=r;M.width=Math.max(1,Math.floor(_*window.devicePixelRatio||1)),M.height=Math.max(1,Math.floor(A*window.devicePixelRatio||1))},k=new ResizeObserver(x);return k.observe(E),x(),()=>k.disconnect()},[t,r]),d.useEffect(()=>{if(!t)return;const E=u.current;E&&(E.width=Math.max(1,Math.floor(t*(window.devicePixelRatio||1))),E.height=Math.max(1,Math.floor(r*(window.devicePixelRatio||1))))},[t,r]),d.useEffect(()=>{let E=!1;return(async()=>{try{const k=new(window.AudioContext||window.webkitAudioContext);w.current=k;let M=c;if(!M){if(!l)return;M=await navigator.mediaDevices.getUserMedia({audio:!0,video:!1}),y.current=!0}if(E)return;const _=k.createAnalyser();_.fftSize=s,_.smoothingTimeConstant=a,g.current=_;const A=k.createMediaStreamSource(M);m.current=A,A.connect(_),S()}catch(k){v((k==null?void 0:k.message)||"Failed to initialize microphone")}})(),()=>{var k,M,_,A;E=!0,p.current&&cancelAnimationFrame(p.current);try{(k=m.current)==null||k.disconnect()}catch{}try{(M=g.current)==null||M.disconnect()}catch{}y.current&&((A=((_=m.current)==null?void 0:_.mediaStream)||void 0)==null||A.getTracks().forEach(D=>D.stop())),w.current&&w.current.state!=="closed"&&w.current.close()}},[c,s,a,l]);const S=()=>{const E=u.current,x=g.current;if(!E||!x)return;const k=E.getContext("2d");if(!k)return;const M=window.devicePixelRatio||1,_=E.width,A=E.height,D=x.frequencyBinCount,B=new Uint8Array(D),P=()=>{p.current=requestAnimationFrame(P),x.getByteTimeDomainData(B),k.clearRect(0,0,_,A),k.fillStyle="rgba(0,0,0,0)",k.fillRect(0,0,_,A);const q=Math.max(1,Math.floor(i*M)),V=Math.max(1,Math.floor(n*M)),U=q+V,X=Math.max(8,Math.floor((_+V)/U)),Ce=Math.floor(B.length/X);for(let We=0;We<X;We++){const it=Math.min(B.length-1,We*Ce),Ct=B[it]/128-1,Se=Math.abs(Ct),gi=Math.pow(Se,.6),ze=Math.max(A*.06,gi*(A*.9)),Bt=We*U,Ur=(A-ze)/2,Vr=140-Math.min(140,140*Se),Gr=85,jr=48+Math.floor(12*(1-Se));k.fillStyle=`${h}`,k.shadowColor=`hsla(${Vr}, ${Gr}%, ${jr}%, ${.25*Se})`,k.shadowBlur=8*Se;const $r=Math.min(q/2,ze/2);N2(k,Bt,Ur,q,ze,$r),k.fill()}};P()};return o.jsxs("div",{ref:f,className:`iw-relative iw-w-full iw-overflow-hidden iw-rounded-md iw-bg-gray-50 ${e}`,style:{height:r},children:[o.jsx("canvas",{ref:u,className:"iw-w-full iw-h-full"}),b&&o.jsx("div",{className:"iw-absolute iw-inset-0 iw-flex iw-items-center iw-justify-center",children:o.jsx("span",{className:"iw-text-xs iw-text-red-600 iw-bg-red-50 iw-border iw-border-red-200 iw-px-2 iw-py-1 iw-rounded",children:b})})]})};function N2(e,t,r,i,n,s){const a=Math.min(s,i/2,n/2);e.beginPath(),e.moveTo(t+a,r),e.lineTo(t+i-a,r),e.quadraticCurveTo(t+i,r,t+i,r+a),e.lineTo(t+i,r+n-a),e.quadraticCurveTo(t+i,r+n,t+i-a,r+n),e.lineTo(t+a,r+n),e.quadraticCurveTo(t,r+n,t,r+n-a),e.lineTo(t,r+a),e.quadraticCurveTo(t,r,t+a,r),e.closePath()}const T2=({state:e,answeringTime:t,nextPhase:r,sttError:i,disableStopButton:n=!1})=>o.jsxs("div",{className:"iw-flex iw-flex-col iw-justify-between iw-h-full ",children:[o.jsxs("div",{children:[o.jsxs("div",{className:"iw-flex iw-items-center iw-justify-between",children:[o.jsx("h3",{className:"iw-text-lg iw-font-semibold iw-text-gray-900 iw-mb-1",children:"You may start speaking now. We're listening...."}),o.jsxs("div",{className:"iw-flex iw-items-center iw-justify-center iw-gap-2",children:[o.jsxs("div",{className:"iw-flex iw-items-center iw-gap-1",children:[o.jsx(bo,{className:"iw-size-4 iw-text-orange-600"}),o.jsx("p",{className:"iw-text-gray-700 iw-text-sm",children:"Time to talk: "})]}),o.jsx(hn,{total:t,remaining:e.currentPhaseTimeRemaining,size:50,strokeWidth:4})]})]}),o.jsx("p",{className:"iw-max-w-lg iw-text-gray-500 iw-text-xs iw-leading-[21px]",children:"Done talking? Click the button to review your answer."})]}),o.jsxs("div",{children:[o.jsx(A2,{}),i&&o.jsxs("div",{className:"iw-mt-2 iw-text-xs iw-text-red-600",children:["Recording error: ",i.message]})]}),o.jsx("div",{className:"iw-w-full iw-grid iw-grid-cols-1",children:o.jsx(un,{disabled:n,onClick:()=>{r()},children:"Transcribe My Answer"})})]});function I2(){const[e,t]=d.useState(!0),r=d.useMemo(()=>[0,1,2].map(i=>({id:i})),[]);return d.useEffect(()=>{const i=setInterval(()=>{t(n=>!n)},1500);return()=>clearInterval(i)},[]),o.jsxs("div",{className:"iw-flex iw-flex-col iw-items-center iw-justify-center iw-gap-8 iw-h-full",children:[o.jsx("div",{className:"iw-relative iw-w-80 iw-h-48 ","aria-hidden":!0,children:r.map((i,n)=>{const s=n*50,a=e?s:s+12,c=e?1:.08,l=n*140;return o.jsx("div",{role:"presentation",className:"iw-absolute iw-w-full iw-rounded-lg iw-p-4 iw-shadow-md iw-bg-gradient-to-b iw-from-gray-50 iw-to-gray-100 iw-overflow-hidden",style:{top:0,transform:`translateY(${a}px)`,opacity:c,transition:`transform 600ms cubic-bezier(.2,.9,.3,1) ${l}ms, opacity 400ms ease ${l}ms`},children:o.jsxs("div",{className:"iw-flex iw-gap-3 iw-items-center",children:[o.jsx("div",{className:"iw-w-10 iw-h-10 iw-bg-gray-300 iw-rounded iw-flex-shrink-0"}),o.jsxs("div",{className:"iw-flex-1 iw-space-y-2",children:[o.jsx("div",{className:"iw-h-2 iw-bg-gray-300 iw-rounded iw-w-24"}),o.jsx("div",{className:"iw-h-2 iw-bg-gray-300 iw-rounded iw-w-32"})]})]})},i.id)})}),o.jsx("div",{className:"iw-text-center",children:o.jsx("p",{className:"iw-text-gray-500 iw-font-medium",children:"Preparing your question..."})})]})}const F2=({size:e="192px",className:t,colors:r,animationDuration:i=20})=>{const s={...{bg:"oklch(95% 0.02 264.695)",c1:"oklch(75% 0.15 350)",c2:"oklch(80% 0.12 200)",c3:"oklch(78% 0.14 280)"},...r},a=parseInt(e.replace("px",""),10),c=a<50?Math.max(a*.008,1):Math.max(a*.015,4),l=a<50?Math.max(a*.004,1.2):Math.max(a*.008,1.5),h=a<50?Math.max(a*.004,.05):Math.max(a*.008,.1),u=a<50?Math.max(a*.004,.5):Math.max(a*.008,2),f=a<30?"0%":a<50?"5%":a<100?"15%":"25%",w=a<30?1.1:a<50?Math.max(l*1.2,1.3):l;return o.jsx("div",{className:`siri-orb ${t}`,style:{width:e,height:e,"--bg":s.bg,"--c1":s.c1,"--c2":s.c2,"--c3":s.c3,"--animation-duration":`${i}s`,"--blur-amount":`${c}px`,"--contrast-amount":w,"--dot-size":`${h}px`,"--shadow-spread":`${u}px`,"--mask-radius":f},children:o.jsx("style",{children:`
75
- @property --angle {
76
- syntax: "<angle>";
77
- inherits: false;
78
- initial-value: 0deg;
79
- }
80
-
81
- .siri-orb {
82
- display: grid;
83
- grid-template-areas: "stack";
84
- overflow: hidden;
85
- border-radius: 50%;
86
- position: relative;
87
- transform: scale(1.1);
88
- }
89
-
90
- .siri-orb::before,
91
- .siri-orb::after {
92
- content: "";
93
- display: block;
94
- grid-area: stack;
95
- width: 100%;
96
- height: 100%;
97
- border-radius: 50%;
98
- transform: translateZ(0);
99
- }
100
-
101
- .siri-orb::before {
102
- background: conic-gradient(
103
- from calc(var(--angle) * 2) at 25% 70%,
104
- var(--c3),
105
- transparent 20% 80%,
106
- var(--c3)
107
- ),
108
- conic-gradient(
109
- from calc(var(--angle) * 2) at 45% 75%,
110
- var(--c2),
111
- transparent 30% 60%,
112
- var(--c2)
113
- ),
114
- conic-gradient(
115
- from calc(var(--angle) * -3) at 80% 20%,
116
- var(--c1),
117
- transparent 40% 60%,
118
- var(--c1)
119
- ),
120
- conic-gradient(
121
- from calc(var(--angle) * 2) at 15% 5%,
122
- var(--c2),
123
- transparent 10% 90%,
124
- var(--c2)
125
- ),
126
- conic-gradient(
127
- from calc(var(--angle) * 1) at 20% 80%,
128
- var(--c1),
129
- transparent 10% 90%,
130
- var(--c1)
131
- ),
132
- conic-gradient(
133
- from calc(var(--angle) * -2) at 85% 10%,
134
- var(--c3),
135
- transparent 20% 80%,
136
- var(--c3)
137
- );
138
- box-shadow: inset var(--bg) 0 0 var(--shadow-spread)
139
- calc(var(--shadow-spread) * 0.2);
140
- filter: blur(var(--blur-amount)) contrast(var(--contrast-amount));
141
- animation: rotate var(--animation-duration) linear infinite;
142
- }
143
-
144
- .siri-orb::after {
145
- background-image: radial-gradient(
146
- circle at center,
147
- var(--bg) var(--dot-size),
148
- transparent var(--dot-size)
149
- );
150
- background-size: calc(var(--dot-size) * 2) calc(var(--dot-size) * 2);
151
- backdrop-filter: blur(calc(var(--blur-amount) * 2))
152
- contrast(calc(var(--contrast-amount) * 2));
153
- mix-blend-mode: overlay;
154
- }
155
-
156
- /* Apply mask only when radius is greater than 0 */
157
- .siri-orb[style*="--mask-radius: 0%"]::after {
158
- mask-image: none;
159
- }
160
-
161
- .siri-orb:not([style*="--mask-radius: 0%"])::after {
162
- mask-image: radial-gradient(
163
- black var(--mask-radius),
164
- transparent 75%
165
- );
166
- }
167
-
168
- @keyframes rotate {
169
- to {
170
- --angle: 360deg;
171
- }
172
- }
173
-
174
- @media (prefers-reduced-motion: reduce) {
175
- .siri-orb::before {
176
- animation: none;
177
- }
178
- }
179
- `})})};function L2({ttsError:e}){return o.jsxs("div",{className:"iw-flex iw-flex-col iw-items-center iw-justify-center iw-gap-8 iw-w-full iw-h-full",children:[o.jsx(F2,{size:"80px"}),e&&o.jsxs("div",{className:"iw-mt-2 iw-text-xs iw-text-red-600",children:["Audio playback failed: ",e.message]}),o.jsx("p",{className:"iw-text- iw-text-gray-700",children:"Your AI interviewer is speaking..."})]})}const M2=({state:e,thinkingTime:t,nextPhase:r})=>o.jsxs("div",{className:"iw-flex iw-flex-col iw-gap-6 iw-items-center iw-justify-center iw-text-center iw-h-full ",children:[o.jsxs("div",{children:[o.jsx("h3",{className:"iw-text-lg iw-font-semibold iw-text-gray-900 iw-mb-1",children:"Get Ready to Answer"}),o.jsx("p",{className:"iw-max-w-lg iw-text-gray-500 iw-text-xs iw-leading-[21px]",children:"After 30-seconds thinking time, recording will start automatically, or you can begin recording early by clicking the button below."})]}),o.jsxs("div",{className:"iw-flex iw-items-center iw-justify-center iw-gap-2",children:[o.jsxs("div",{className:"iw-flex iw-items-center iw-gap-1",children:[o.jsx(bo,{className:"iw-size-4 iw-text-orange-600"}),o.jsx("p",{className:"iw-text-gray-700 iw-text-sm",children:"Time to think: "})]}),o.jsx(hn,{total:t,remaining:e.currentPhaseTimeRemaining,size:50,strokeWidth:4})]}),o.jsx("div",{className:"iw-w-full iw-grid iw-grid-cols-1",children:o.jsx(un,{onClick:()=>{r()},children:"Start Answering"})})]}),D2=({sttError:e,editingDuration:t})=>o.jsxs("div",{className:"iw-flex iw-flex-col iw-items-center iw-justify-center iw-h-full",children:[o.jsxs("svg",{width:"48",height:"48",viewBox:"0 0 60 60",fill:"none",children:[o.jsx("rect",{width:60,height:60,rx:30,fill:"url(#prefix__paint0_linear_1460_12482)"}),o.jsx("path",{d:"M28.127 14c.276 7.685 6.442 13.851 14.127 14.127-7.684.276-13.85 6.442-14.127 14.127-.275-7.685-6.442-13.851-14.126-14.127 7.684-.276 13.85-6.442 14.126-14.127zM38.937 31.873A7.331 7.331 0 0046 38.937 7.331 7.331 0 0038.937 46a7.331 7.331 0 00-7.064-7.063 7.331 7.331 0 007.064-7.064z",fill:"#fff"}),o.jsx("defs",{children:o.jsxs("linearGradient",{id:"prefix__paint0_linear_1460_12482",x1:30,y1:-6.563,x2:77.813,y2:54.375,gradientUnits:"userSpaceOnUse",children:[o.jsx("stop",{offset:.211,stopColor:"#5C92FA"}),o.jsx("stop",{offset:1,stopColor:"#A75FFD"})]})})]}),o.jsx("h3",{className:"iw-text-lg iw-font-semibold iw-text-gray-900 iw-mb-1 iw-mt-3",children:"Just a moment... We're analyzing your response"}),o.jsxs("p",{className:"iw-max-w-lg iw-text-gray-500 iw-text-xs iw-leading-[21px]",children:["After transcription, you'll have ",t||30," sec to review your answer."]}),e&&o.jsxs("div",{className:"iw-mt-2 iw-text-xs iw-text-red-600",children:["Transcription error: ",e.message,e.recoverable&&" (attempting to continue)"]})]}),P2=({interviewTitle:e,brandName:t="Novara",brandLogo:r,interviewId:i,onComplete:n,onDisqualify:s,className:a="",videoFeedRef:c})=>{var bi,vi;const l=Hr(),{baseUrl:h,authToken:u}=go(),{timers:f,stt:w,proctoring:g}=zr(),m=d.useRef(null),[p,y]=d.useState(null),[b,v]=d.useState(""),[S,E]=d.useState(null),[x,k]=d.useState(Ei),[M,_]=d.useState(0),[A,D]=d.useState(!0),B=d.useRef(""),P=d.useRef(null),q={thinkingTime:(f==null?void 0:f.thinkingDuration)||0,answeringTime:(f==null?void 0:f.answeringDuration)||120,editingTime:A?(f==null?void 0:f.editingDuration)||30:0},{thinkingTime:V,answeringTime:U,editingTime:X}=q;d.useEffect(()=>{B.current=b},[b]);const[Ce,We]=d.useState(!1),it=d.useRef(!1),{speak:Ct,stop:Se,error:gi}=Kh({onEnd:()=>{it.current=!1,ve()},onError:()=>{it.current||(it.current=!0,ve())}}),ze=d.useRef(!1),Bt=d.useRef(!1),{startRecording:Ur,stopRecording:Vr,transcribe:Gr,cancelRecording:jr,isRecording:$r,error:fn,audioBlob:St}=$h({config:{baseUrl:h,provider:w==null?void 0:w.provider,model:w==null?void 0:w.model,language:w==null?void 0:w.language,authToken:u,qnaId:((bi=P.current)==null?void 0:bi.qna_id)||"",interviewId:i},onStart:()=>{ze.current=!1,Bt.current=!1},onStop:()=>{},onTranscriptionComplete:O=>{const $=O.transcript;v($),B.current=$,Bt.current||(Bt.current=!0,ve())},onError:O=>{console.error("STT Error:",O),ze.current||(ze.current=!0,ve())}}),{state:Je,startQuestion:pt,nextPhase:ve,completeInterview:Wr,timerService:Ut}=qh({config:{answeringDuration:U,editingDuration:X},callbacks:{onPhaseChange:O=>{var $,ue;switch(O){case j.FETCHING_QUESTION:Vt(),c&&"current"in c&&(($=c.current)==null||$.startRecording());break;case j.READING_QUESTION:gn();break;case j.ANSWERING:ao();break;case j.TRANSCRIBING:mi();break;case j.SUBMITTING:c&&"current"in c&&((ue=c.current)==null||ue.stopRecording()),pi();break}},onInterviewEnd:()=>{n==null||n()}}});d.useEffect(()=>{pt()},[]),d.useEffect(()=>{(async()=>{try{const $=await l.getInterviewConfig(i);if($!=null&&$.data&&($.data.duration_in_minutes&&k($.data.duration_in_minutes),typeof $.data.allow_answer_editing=="boolean"&&D($.data.allow_answer_editing),typeof $.data.elapsed_time_in_minutes=="number")){const ue=Math.floor($.data.elapsed_time_in_minutes*60);Ut.setTotalTimeElapsed(ue)}}catch($){console.error("Failed to fetch interview config:",$)}})()},[i,Ut]);const{execute:Vt,error:rr,loading:oo}=Oh(async()=>{const O=await l.generateQuestion({interviewId:i});return P.current=O.data,O},{onSuccess:async O=>{O&&O.data&&(v(""),B.current="",y(O.data),_(0),ve())},onError:O=>{console.error("Failed to fetch questions:",O)}}),wn=d.useCallback(()=>{M<3&&(_(O=>O+1),Vt())},[M,Vt]),pi=d.useCallback(async()=>{var O;try{const $=B.current,ue=((O=P.current)==null?void 0:O.qna_id)||"";A&&await l.submitAnswer({interviewId:i,qnaId:ue,answer:$}),E({qnaId:ue,answer:$})}catch($){console.error("Failed to submit answer:",$)}pt()},[l,i,pt,A]),gn=d.useCallback(async()=>{var O,$;if((O=P.current)!=null&&O.question)if(P.current.question_audio_data_base64)try{it.current=!1,await Ct(P.current.question_audio_data_base64),P.current.is_interview_done&&(Se(),jr(),c&&"current"in c&&await(($=c.current)==null?void 0:$.stopCamera()),Wr())}catch(ue){console.error("Failed to speak question:",ue)}else console.warn("No audio data available for question"),await cd(2e3),ve();else ve()},[Ct,ve,Wr]),ao=d.useCallback(async()=>{try{await Ur(U)}catch(O){if((O==null?void 0:O.code)==="ALREADY_RECORDING"){console.warn("startRecording called while already recording — ignoring duplicate call.");return}console.error("Failed to start recording:",O),ve()}},[Ur,ve,U]),mi=d.useCallback(async()=>{if(Ce){console.warn("Audio processing already in progress, ignoring duplicate call");return}We(!0);try{const O=!$r&&St?St:await Vr();await Gr(O)}catch(O){console.error("STT processing failed:",O),!ze.current&&!Bt.current&&(ze.current=!0,ve())}finally{We(!1)}},[Ce,$r,St,Vr,Gr,ve,i,Ut]),yi=d.useCallback(()=>{Ce||ve()},[Ce,ve]),At=d.useCallback(async O=>{var $,ue;Br(),jr(),c&&"current"in c&&await(($=c.current)==null?void 0:$.stopCamera()),await((ue=m.current)==null?void 0:ue.exitFullScreenIntentionally());try{await l.exitInterview(i)}catch(yn){console.error("API call failed:",yn)}finally{O==null||O(),Wr(),sessionStorage.removeItem(kn)}},[i,Se,l]),pn=d.useCallback(()=>{m.current?m.current.exitFullScreenIntentionally().then(()=>At()).catch(()=>At()):At()},[At]),mn=()=>{const{phase:O}=Je;switch(O){case j.IDLE:return o.jsxs("div",{className:"iw-text-center iw-flex iw-flex-col iw-items-center iw-justify-center iw-gap-2 iw-h-full",children:[o.jsx("h3",{className:"iw-text-lg iw-font-semibold iw-text-gray-900 iw-mb-1",children:"Ready to start the Interview?"}),o.jsx("p",{className:"iw-max-w-xl iw-text-gray-500 iw-text-xs iw-leading-[21px]",children:`You will be asked a series of behavioral and technical questions. For each one you'll get a short thinking period, then a timed recording window. We'll transcribe your response so you can review and edit it before submitting. Click "Start Interview" when you're ready.`}),o.jsx(un,{onClick:pt,className:"iw-mt-2 iw-w-40",children:"Start Interview"})]});case j.FETCHING_QUESTION:return rr?o.jsxs("div",{className:"iw-text-center iw-flex iw-flex-col iw-items-center iw-justify-center iw-gap-2 iw-h-full",children:[o.jsx("h3",{className:"iw-text-lg iw-font-semibold iw-text-red-600 iw-mb-1",children:"Failed to load the next question"}),o.jsx("p",{className:"iw-max-w-md iw-text-gray-500 iw-text-sm iw-leading-[21px]",children:rr.message||"Please check your network connection and try again."}),o.jsx(un,{onClick:()=>Vt(),className:"iw-mt-4 iw-w-40",children:"Retry"})]}):o.jsx(I2,{});case j.READING_QUESTION:return o.jsx(L2,{ttsError:gi});case j.THINKING:return o.jsx(M2,{state:Je,thinkingTime:V,nextPhase:ve});case j.ANSWERING:return o.jsx(T2,{state:Je,answeringTime:U,nextPhase:yi,sttError:fn,disableStopButton:Ce});case j.TRANSCRIBING:return o.jsx(D2,{sttError:fn,editingDuration:X});case j.EDITING:case j.SUBMITTING:return null;case j.COMPLETED:return null;default:return null}},ir=o.jsxs(o.Fragment,{children:[o.jsx(S2,{title:e,brandName:t,brandLogo:r,totalDuration:x,elapsedTime:Je.totalTimeElapsed,onExit:pn}),o.jsx(C2,{brandName:t,brandLogo:r,currentQuestion:p,state:Je,phase:Je.phase,className:a,interviewId:i,interview_duration:x,videoFeedRef:c,lastSubmittedAnswer:S,onNextPhase:Je.phase===j.ANSWERING?yi:ve,answerText:b,onAnswerChange:O=>{const $=O.target.value;v($),B.current=$},editingTime:X,disableSubmitButton:Je.phase===j.ANSWERING&&Ce,fetchQuestionError:rr,onRetryQuestion:wn,retryClicksCount:M,isFetchingQuestion:oo,onExitInterview:pn,children:mn()})]});return o.jsx(o.Fragment,{children:g!=null&&g.enabled?o.jsx(E2,{ref:m,onDisqualify:()=>At(s),onExit:()=>At(),isCompleted:((vi=P==null?void 0:P.current)==null?void 0:vi.is_interview_done)??!1,children:ir}):ir})},so=({title:e,brandName:t,brandLogo:r,interviewId:i,onInterviewEnd:n,onInterviewDisqualify:s,className:a=""})=>{const[c,l]=d.useState(!1),[h,u]=d.useState(!0),[f,w]=d.useState(!1),{proctoring:g}=zr(),m=d.useRef(null),p=d.useRef(null),y=(g==null?void 0:g.gazeAnalysisEnabled)===!0,b=()=>{l(!0),u(!1)};return d.useEffect(()=>{if(c&&f&&p.current&&y)try{p.current.setReference()}finally{w(!1)}},[c,f,y]),o.jsx(td,{interviewId:i,children:c?o.jsx("div",{className:"interview-widget-container",children:o.jsx("div",{ref:m,className:`iw-flex iw-flex-col iw-rounded-xl iw-shadow-lg iw-overflow-hidden iw-h-[calc(100vh-1rem)] ${a}`,children:o.jsx("div",{className:"iw-h-[calc(100vh-1rem)] iw-flex iw-flex-col iw-justify-between gap-1",children:o.jsx(P2,{interviewTitle:e??"Interview",brandName:t??"Novara",brandLogo:r,interviewId:i,className:a,onComplete:n??(()=>{}),onDisqualify:s,videoFeedRef:p})})})}):o.jsxs("div",{className:"interview-widget-container",children:[o.jsxs("div",{className:"iw-flex iw-items-center iw-space-x-2 iw-mx-auto iw-p-2 iw-max-w-[1800px]",children:[o.jsx(An,{brandLogo:r,brandName:t}),o.jsx("p",{className:"iw-text-xl iw-font-semibold",children:t})]}),o.jsx(i2,{isOpen:h,gazeEnabled:y,onStart:b,onRequestCalibration:()=>w(!0),videoFeedRef:p,interviewId:i})]})})};typeof window<"u"&&(window.InterviewWidget={InterviewWidget:so,InterviewWidgetProvider:wo}),Ee.InterviewWidget=so,Ee.InterviewWidgetProvider=wo,Ee.default=so,Object.defineProperties(Ee,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});