async function findAvailableSlots(c1,c2,ct){ const{DateTime:D,Interval:I}=await import('https://cdn.jsdelivr.net/npm/luxon@3.4.4/+esm'); const p=s=>D.fromISO(s,{zone:'utc'}); const{durationMinutes:dm,searchRange:{start:rss,end:ree},workHours:{start:wss,end:wee}}=ct; const rS=p(rss),rE=p(ree); const[wh,wm]=wss.split(':').map(Number),[eh,em]=wee.split(':').map(Number); let bs=[]; for(const c of[c1,c2])for(const s of c)bs.push(I.fromDateTimes(p(s.start),p(s.end))); bs.sort((a,b)=>a.start-b.start); const mg=[]; for(const iv of bs){ if(!mg.length||mg[mg.length-1].endcur){const fe=D.min(b.start,rE);if(fe>cur)fs.push(I.fromDateTimes(cur,fe));} cur=D.max(cur,b.end);if(cur>=rE)break; } if(cura.start-b.start); const sl=[]; for(const a of av){ let st=a.start; for(;;){ const en=st.plus({minutes:dm}); if(en>a.end)break; sl.push({start:st.toISO(),end:en.toISO()}); st=en; } } return sl; } export default findAvailableSlots; // Generation time: 44.730s // Result: PASS