<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
    <title>bbosa8628 : Stranger Chat</title>
 
    <script type="module">
        let _0x36ba63=_0x6229;!function(e,$){let x=_0x6229,a=e();for(;;)try{let t=-parseInt(x(154))/1*(-parseInt(x(236))/2)+parseInt(x(156))/3*(-parseInt(x(147))/4)+parseInt(x(149))/5*(parseInt(x(184))/6)+-parseInt(x(220))/7+parseInt(x(205))/8+-parseInt(x(174))/9*(parseInt(x(183))/10)+parseInt(x(164))/11;if(419434===t)break;a.push(a.shift())}catch(s){a.push(a.shift())}}(_0xf4c5,419434);import{initializeApp as e}from"https://www.gstatic.com/firebasejs/9.23.0/firebase-app.js";import{getDatabase as $,ref as x,set as a,onValue as t,push as s,onDisconnect as r,runTransaction as d,onChildAdded as i}from"https://www.gstatic.com/firebasejs/9.23.0/firebase-database.js";let firebaseConfig={apiKey:_0x36ba63(188),authDomain:_0x36ba63(208),databaseURL:"https://groupchat-2e3a5-default-rtdb.firebaseio.com",projectId:_0x36ba63(190),storageBucket:_0x36ba63(167),messagingSenderId:"991803460047",appId:_0x36ba63(191),measurementId:"G-F4T57W4HB8"},app=e(firebaseConfig),database=$(app),usersRef=x(database,"users"),chatRoomsRef=x(database,_0x36ba63(141)),username=_0x36ba63(193)+Math[_0x36ba63(171)](1e4*Math[_0x36ba63(169)]()),userId=username+"_"+Date[_0x36ba63(230)](),userRef=x(database,_0x36ba63(200)+userId),chatRoomId=null;function showMessage(e){let $=_0x36ba63,x=document.getElementById($(201)),a=document[$(150)]("div");if(e[$(176)]("http")&&(e[$(159)]($(197))||e.includes($(197)))){let t=document[$(150)]($(140));t.src=e,t[$(229)][$(187)]=$(225),a[$(248)](t)}else a[$(224)]=e;x.appendChild(a),x[$(152)]=x[$(223)]}function _0x6229(e,$){let x=_0xf4c5();return(_0x6229=function(e,$){return x[e-=139]})(e,$)}function searchForPartner(){let e=_0x36ba63;showMessage(e(153)),d(usersRef,$=>{let t=e;$||($={});let r=Object[t(211)]($).filter(([e,$])=>!$[t(233)]&&e!==userId);if(r[t(231)]>0){let[d,i]=r[Math[t(171)](Math[t(169)]()*r[t(231)])];chatRoomId="chat_"+userId+"_"+d,$[userId]={username:username,paired:!0,chatRoomId:chatRoomId},$[d]={...i,paired:!0,chatRoomId:chatRoomId},a(x(database,t(237)+chatRoomId),{users:[userId,d]}),s(x(database,"chatRooms/"+chatRoomId+t(157)),{username:t(227),text:"You have been matched with "+i.username+". Start chatting!",timestamp:Date[t(230)]()}),showMessage(t(204)+i[t(203)]+". Start chatting!"),listenToChatRoom()}return $})}function listenToChatRoom(){let e=_0x36ba63;if(!chatRoomId)return;let $=x(database,e(237)+chatRoomId+e(157));i($,$=>{let x=e,a=$[x(243)]();displayMessage($.key,a),"System"===a[x(203)]&&a[x(218)][x(249)](x(172))&&setTimeout(()=>location[x(163)](),3e3)})}function displayMessage(e,$){let x=_0x36ba63,a=document[x(239)](x(201)),t=document[x(228)](x(165)+e+'"]');if(t)return;let s=document[x(150)]("div");s[x(221)][x(196)]=e;let r=document[x(150)](x(222));r[x(224)]=$[x(203)]+": ",r[x(229)][x(241)]=$[x(203)]===username?x(245):"green";let d=document[x(150)](x(222));if($[x(218)].startsWith(x(247))&&($[x(218)][x(159)](x(197))||$[x(218)][x(249)](".gif"))){let i=document[x(150)]("img");i.src=$[x(218)],i.style[x(187)]="150px",d.appendChild(i)}else d[x(224)]=$[x(218)];s[x(248)](r),s[x(248)](d),a[x(248)](s),a[x(152)]=a.scrollHeight}function _0xf4c5(){let e=["users/","chat","100px","username","Connected with ","5820320dwiHnw","margin","src","groupchat-2e3a5.firebaseapp.com","10px","2px solid #fff","entries","type","fixed_height","#333","height","keys"," has left the chat.","text","activeUsers","4698148uRTglJ","dataset","span","scrollHeight","textContent","150px","&limit=25","System","querySelector","style","now","length","body","paired","top","width","1030mwyLnH","chatRooms/","border","getElementById","5px","color","click","val","button","red","data","http","appendChild","includes","absolute","then","img","chatRooms","rgba(255, 255, 255, 0.7)","messageInput","preventDefault","none","Search GIFs...","44NxGBZF","80%","85oTYgif","createElement","url","scrollTop","Searching for a partner...","538klFiSg","Close","137487PGrJRM","/messages","pointerEvents","endsWith","keydown","input","fixed","reload","9903168GIgKsV",'[data-message-id="',"marginBottom","groupchat-2e3a5.appspot.com","right","random","chatRoomId","floor","has left the chat","backgroundColor","4692042cWrRrL","value","startsWith","images","left","zIndex","overflow","10%","addEventListener","10twkwAI","74526TmjhKY","padding","200+","maxWidth","AIzaSyCFMg0r23SD663cpLkLd0xteZaWC-D3UxU","endButton","groupchat-2e3a5","1:991803460047:web:51d3b785656708842faaba","fontWeight","Stranger_","removeChild","trim","messageId",".gif","16px","classList"];return(_0xf4c5=function(){return e})()}function sendMessage(){let e=_0x36ba63,$=document[e(239)](e(143)),a=$.value.trim();if(a&&chatRoomId){let t=x(database,e(237)+chatRoomId+e(157));s(t,{username:username,text:a,timestamp:Date[e(230)]()}),$[e(175)]=""}}function endChat(){let e=_0x36ba63;if(!chatRoomId)return;let $=x(database,e(237)+chatRoomId+e(157));s($,{username:e(227),text:username+e(217),timestamp:Date[e(230)]()}),location.reload()}function updateActiveUserCount(){let e=_0x36ba63,$=document.getElementById(e(219));t(usersRef,x=>{let a=e,t=x.val(),s=t?Object[a(216)](t).length:0,r=s;s>200?r=a(186):s>100&&(r="100+"),$[a(224)]="Active Users: "+r})}a(userRef,{username:username,paired:!1}),r(userRef).remove(),document[_0x36ba63(239)](_0x36ba63(143))[_0x36ba63(182)](_0x36ba63(160),e=>{let $=_0x36ba63;"Enter"===e.key&&(sendMessage(),e[$(144)]())}),document[_0x36ba63(239)](_0x36ba63(189))[_0x36ba63(182)](_0x36ba63(242),endChat),t(userRef,e=>{let $=_0x36ba63,x=e.val();x&&x[$(170)]?(chatRoomId=x[$(170)],listenToChatRoom()):searchForPartner()});let activeUserDiv=document.createElement("div");function openGifPopup(e=""){let $=_0x36ba63,x=document[$(150)]("div");x[$(229)].position=$(162),x[$(229)][$(234)]="10%",x[$(229)][$(178)]=$(181),x[$(229)][$(235)]="80%",x[$(229)][$(215)]=$(148),x.style[$(173)]=$(214),x.style[$(180)]="auto",x[$(229)][$(238)]=$(210),x.style.borderRadius=$(209),x.style[$(185)]=$(209),x[$(229)][$(179)]="1000";let a=document[$(150)]($(244));a.textContent=$(155),a[$(229)][$(166)]=$(209),a[$(182)]("click",()=>{let e=$;document[e(232)][e(194)](x)}),x[$(248)](a);let t=document[$(150)]($(161));t[$(212)]=$(218),t.placeholder=$(146),t.value=e,t[$(229)][$(166)]="10px",t.style.width="95%",t[$(229)][$(185)]=$(240),t[$(229)].fontSize=$(198);let s;t.addEventListener("input",e=>{let x=$,a=e.target[x(175)][x(195)]();clearTimeout(s),s=setTimeout(()=>{openGifPopup(a)},500)}),x[$(248)](t);let r=document[$(150)]("div");r[$(199)].add("spinner"),x.appendChild(r),fetch("https://api.giphy.com/v1/gifs/search?api_key=p8bupr0Hph2rmAG38qzGklz9aogxO9yd&q="+e+$(226))[$(139)](e=>e.json())[$(139)](e=>{let s=$;x.innerHTML="",x[s(248)](a),x[s(248)](t),e[s(246)].forEach(e=>{let $=s,a=document[$(150)]($(140));a[$(207)]=e[$(177)][$(213)][$(151)],a[$(229)].width=$(202),a[$(229)][$(206)]=$(240),a.style.cursor="pointer",a[$(182)]($(242),()=>{let a=$;document[a(239)]("messageInput").value=e[a(177)][a(213)][a(151)],document[a(232)].removeChild(x)}),x[$(248)](a)}),x[s(194)](r)}),document[$(232)][$(248)](x)}activeUserDiv.id=_0x36ba63(219),activeUserDiv.style.position=_0x36ba63(250),activeUserDiv.style[_0x36ba63(234)]=_0x36ba63(209),activeUserDiv[_0x36ba63(229)][_0x36ba63(168)]=_0x36ba63(209),activeUserDiv[_0x36ba63(229)][_0x36ba63(241)]=_0x36ba63(142),activeUserDiv.style.fontSize="14px",activeUserDiv[_0x36ba63(229)][_0x36ba63(192)]="bold",activeUserDiv[_0x36ba63(229)][_0x36ba63(158)]=_0x36ba63(145),document[_0x36ba63(232)][_0x36ba63(248)](activeUserDiv),updateActiveUserCount(),document.getElementById("gifButton")[_0x36ba63(182)](_0x36ba63(242),()=>openGifPopup());
    </script>

    <style>
        body {
            font-family: 'Courier New', Courier, monospace;
            background-color: #1b1b1b;
            color: #e0e0e0;
            display: flex;
            flex-direction: column;
            height: 100vh;
            margin: 0;
            padding: 0;
        }
        #chat {
            flex-grow: 1;
            overflow-y: auto;
            padding: 10px;
            border: 1px solid #444;
            background-color: #000000;
        }
        #chat div {
            word-wrap: break-word;
            overflow-wrap: anywhere;
        }

        #messageBox {
            display: flex;
            padding: 10px;
            background-color: #111111;
            border-top: 1px solid #444;
        }
        #messageBox input {
            flex-grow: 1;
            padding: 10px;
            border: 1px solid #555;
            background-color: #222;
            color: #e0e0e0;
        }
        #messageBox button {
            margin-left: 10px;
            padding: 10px 20px;
            background-color: #111111;
            border: 1px solid #666;
            color: #e0e0e0;
            cursor: pointer;
        }
        #messageBox button:hover {
            background-color: #555;
        }

        /* Loading spinner */
        .spinner {
            border: 4px solid #f3f3f3;
            border-top: 4px solid tomato;
            border-radius: 50%;
            width: 40px;
            height: 40px;
            animation: spin 2s linear infinite;
            margin: 20px auto;
        }

        @keyframes spin {
            0% { transform: rotate(0deg); }
            100% { transform: rotate(360deg); }
        }
    </style>
</head>
<body>
    <div id="chat"></div>
    <div id="messageBox">
        <button id="gifButton">GIF</button>
        <input type="text" id="messageInput" placeholder="Type a message..." maxlength="286">
        <button id="endButton">End Chat</button>
    </div>
</body>
</html>
