
Music Garden | Free Online Game
Music Garden is a classic game, full of fun and challenges, that will bring you joy.

Music Garden is a classic game, full of fun and challenges, that will bring you joy.
© Copyright 2024 All rights reserved.
<main class="main-content">
<header class="header">
<span class="header-overline">Directory Index</span>
<h1 class="header-title">Sprunki Live</h1>
</header>
<div class="list-container">
<ul class="list_1">
<li class="list-item">
<a href="/kw-click" data-ct="7McLjqZ1ZqTEixBVHXA1KqLlar_Q36fDifF59LKZucLudIaRQpyDVLPjwR8LmtL1vfQuWy3xbKEAv5al6TxyDourvhvi15py6hq2FTbrVRm3z7HQx3-Wrc2CWz-hIve4Tkk-OsAfF9pppv4f-iTmq0dHUuTB4TjXZB-gA16uDK3W_9K-n6M_L5zEX_cxoAZehKJ7Agr28CvNfDK9InaFp7bjN_ED0wuBQXCbe9UOwUKmsZ1ga-eFSVFgI2bAqxjjvBLNAAVIzOFUOgQJxCes6GMfSU2rHsGuNLJYLsWndPZDBcFea7t5ytVKSc6pxmzrbEMJ3jZA64d8eKt_IMBDP_fsa0r99BrXplTHfbzmrX1Lr_LjMGV8DzISNs8WuLoxX3uM0R8kGhCfQlpNN2vyPtDWkHu2KvqhIx2Pog3j2Vbi1oO1UaJ8I9HlBLBCCLoCZPNpkxrQWgTz2ez5d8DGTLhQCzkRBu4a-XCQ1wJbd93QyN23-B4zGKEkCrYiT1K9WoQ-ApI8uKEWk8dmUTHQcEaMC6Tsnge5HYSk0qLYI5Z-mY3YmzuXoJVUDZbxMiGMy6PR8sQaTc8-C1AYtqwMIaAWHl3uMfAG50GPAIxGbV684flpPOd2ZgoToB-MrcmzPgLJ8IOj2lZKQtQg5CO1WLRngsdOkrC5I5ouqizCA72NGOySZYyoDrPZGFt7elZUtrZ_4cCvPVcLrY0eVWpay-Qv3mxxzI1UJhzVqEFJnbPNPeMdqyAfMeTNhb8vpK4ui7RgZYIbrMACZDyxfND40MSSqwNv9C-G8pmrwkwdx70bYoaC4AyCtKFAl-jXAt_R2zzGgNZnek7lv06OSvoLnVCwYxM-mxz33kACcENXkdaEl7bFrpFEyli4bCTDLLWVHNKZFNdQVVtwImpl2Uy6rYllMi2BId8dISs4JF2lznux6ZQXC-FOcyD8kuw3hAAZCC5gon6J2RwKPyaAGjh1VtB_ntjfV1s335xHmhFtg3p0MJn1B6AIxOghlmZE0fjB8KPXG-VNTyKyVyPr7tM7MtL-BfQudTOxz-oHNe-dXev_0HaF7FsxpjDMnR6lA31MCAGiBj9rVd9YSj8oHOrmuP5KbEEpMBZBIs7lAudh2Umn8nBeZHvzgeFyiV6Lnooq-D1KNO7ippjW7R9h5MvDBnKbiGxRSPbve9-407cIrTJboeMVZI5XHgyZQfvDCtiAmiFzcczR7fTPj6G_yfrHtfnMZkNqXczkA0H1k-0qAMjkox0uZU7hL51Pv4DrLI6DbL7TlnVfQ63vD7_BHyNYrCF2Hgaj5JeJ-BSJ86XmjRMBIT3eysT2XLQekRbLT6XTxu2c7wQOINbRt156lDznjcqbsKGfLQ2Wl60B-F6VpVeWAi8DG5EW6Tj0MElMiAG2XljtlzGdVqaUQqfGXNERu6ZWuOSUsDiqQ0eCbBTEZw5a53M4czup0fVe7AQl0FFLybtqQFlWzmoI2AjKKG8_cUxczrSlMiVAF_s9hN2fNonqGEmlVeg4y4Z7rY6YMD33peo_Yf5j9SUOcEpfjnA-jUGsovdw0SAMlmQh7qGAw3JKQHwZc1c2kvEZGA8WwkH78WTeWcbW1DROobk6vMC8qi7otmxaeosuEojGg4OCfbgGS8cj9fTfX7FD9pxvjW1IcUDvsD_l7BvSP4dPgK1L4h-7F2TmAe1rS011kUZoUPY-U7ZNkg" class="dir-link" target="_blank">
<div class="dir-content">
<span class="kw-text">fling dating app free</span>
</div>
<div class="dir-icon">
<svg viewBox="0 0 24 24"><path d="M9.29 15.88L13.17 12 9.29 8.12c-.39-.39-.39-1.02 0-1.41.39-.39 1.02-.39 1.41 0l4.59 4.59c.39.39.39 1.02 0 1.41l-4.59 4.59c-.39.39-1.02.39-1.41 0-.38-.39-.39-1.03 0-1.42z"/></svg>
</div>
</a>
</li>
<li class="list-item">
<a href="/kw-click" data-ct="AL-6F6ojTInTH7y9eYrKiwNV1aZwmmMZawcSUl1gfG-XjMaaA7zQLzcQq3OQHXKAQCcOpMXha5lu52KL9QLVxabsOHKgYej5xdsnVg-GZJj5xMUjORz8xRv0uv5b6TicUYuBQzfw2ga0AFgSoUhx6gAGptfglaSgWtzUUFJhw6n7jqEefNEElrbYPp8f50Oh6mLkw8F_s6Fjm28DY1Rz8O9xZRSUfQlu1T2i0bzzb0BO1h8ri6CmVnzS-DwIsCdCNKlDVVl-52A4tJLN-2q7yaL7w644KCkxYIGoYRyBOrfQRwQP8cT4MA40Mt--YyGDXhfvhIcgxmIn6ljyOe0bXVWa1dwieXgxpUfR6QU9vOEDjTOULZ1AXG6GTJVIJ9G6qXU-wRVJjvIzujHMRffGP9uaXAcTScEI0uxAlbsLK73HNAUSo-Wstpmt3ka4i-KOBTFXgIfZZ-JsbmXSiU-hyUTyh1JsdEmOYx_c23MDDEFp71GsUVyp36JR5mpDJptSncx8vnE7SqjYjdfR2nrob19V2YPT4iEhnLpcTytYaEYpv14QduYdvdMs85spFIY36PqWt55NIxcrW9OsyfQWrSOOaltKs0LgWaSpHYJZSbVYPqrcCdFjiOi9QIbfJ5-IBb6SBsHh8SfkR03JQQ5YRwaHF3jN1kNWcNQsDatlf1q5Un-R44_zi3hLzz-H9lnBYl1-3HFPDPetR9OBlxPGyvd4oS7OTzz1B76VYMQisoAsengUDBs6XuEdpbYxGGIzaEePUy5KOEYAc8aNQvROhVQAG1A5IiOoNBEGEScrUtFFTNHLNAKmy0ZZeO6P0r0le9tqyYGWuKtH19sVuDa7Y4L3_Bd5M2ZPY8GuEME3yz-krYKNlJYDyH94o3wBaTaQabZj-cVngYTQfdi5vxwdvY5QH7bCkt_UrEguSTpTbS9cZesqTud_4pX7VDv23kEdcUazv1IwKSNagmkd_IHGcxtgf04ByaTBu9hhv-t5bBRW7ckdC1RBLlZ8MWKsOp9laJfaH1Qivn8kCgBbMc4Qc_Na20dZG-s37R9HcUYrDWLnRXILOUJEMpoqv4PR-r-kZf3j2uSmH9Qa_kg9F23fQXv_anuodHjcTRRFn_nIY_B33laSW-O6v-nguWeFhh-evCOB8UL9EgZl5cfM5Q1ZfB_wWOhA2NFc39TCCEdhTwwTIM_0BTYTA6BL0nm3meYwagk-nPXi-xis1B4krvT4o_xaYLqECRKormJgosKb1LFNDILKlsL0LREXJB71SqA1iPL75zxLJQ2ybOh3l5u84ZpVPfjZSwM88r5GPFxqF0hijqOvvjgBCchhVdPldNZWni0Gq_kdm04SIrkP0jF7Kg29blskQfQ2bbYWMBXI0q_ETIJgk4YMyccCRNRaXvijatV2NpfYNru3m9LekaI0z4h5VFsjMiVUcWCuOYMlnyx3aYkYqI5KRNmtUQpkNhSH-ayDLIVcxLYWcXMNE5ESE0g5fHTP3rvobj9MnMFNIjJ2l3tMegwoMYV0WsOC6xI-n35pAUquqpDIf1L4ieRitMP3fluYpPdQ0OZ5aDBSM3scaOlEgHHTCXw7vtUXwnB3BVk30XwUWm9YsHlw_1cqBQdq9g9imGRXkx8pdQmJsAIaJNxMi3NPcBcstAvWQJWvKRiwlKRzyFJsNfGzcyAtjmDvMTKemO6GDOd6wPRRXg-Df6T6QuX4GgD8PJql1j2S_g" class="dir-link" target="_blank">
<div class="dir-content">
<span class="kw-text">casual hookup apps reviewed</span>
</div>
<div class="dir-icon">
<svg viewBox="0 0 24 24"><path d="M9.29 15.88L13.17 12 9.29 8.12c-.39-.39-.39-1.02 0-1.41.39-.39 1.02-.39 1.41 0l4.59 4.59c.39.39.39 1.02 0 1.41l-4.59 4.59c-.39.39-1.02.39-1.41 0-.38-.39-.39-1.03 0-1.42z"/></svg>
</div>
</a>
</li>
<li class="list-item">
<a href="/kw-click" data-ct="7gMLt7asyuChfy9EtoIWBA8ng3rRRFVjTlhgg2roywSPgofeoEkFO_vJW7SjIrWXQPNwU4BCE3tzOFy-uZ_cb_PfQKTDhcmpuaoBbzTDMyqncqLtfTEZUSSlxfygv-t2_GnpOaPTd328kxaluRIHJmpK8QmO5YSHQzRfN3rG51cUZyZbyPnudNEo7nyUh35UXATYYdBFouMU7PBO1Nh18a2R0aCIf_nsHXfQu58dUQ9hR3QkAqRVMvbeC7_9eHWf6ldvM7HHzD2P-liUdxSrbTV35P85EEVn8Zh7h8vNx4o_VkrC_vz7THPEWQ1nZ9BJCLiEkKKpJLzOBR7TTwhYKoLodTu28ieEff9H3lBIxv1qwjiHveeVM-d_NTAaYUEfnOH39LJ09Y_V_XMV1e8T7J3pqvEnAG-MwV26lsny-cpwG8mb125CixGO0EWjZ87ITx9DgYoeHuB4ChDUOhIoxicgFYOH98sFsB_xaH5bxv_yBuMw9BEJV_I2aA145qEtag_qgCcbuStI7cH40XRYJaFoYIrGI8EcaC4przsei5TxBhq1dEurTrBCQjgfIfUMkP0IPZk_77iZkx-CKoSSxdsSTnzx0eF2hmvpjtrMCLbmF9Ir98SIL41swDcXJ6wpA4FioBlyV-CCZFitkLZCkSvln37mHqpoSrPtppUHjL_FLVIZtlg87kJNTY3MBFwAauI1CmVJExC-p5uRsUTNi5IetrLvMPZtaw69FwaGMrWsE0Bz68eDLLXgQ9VWLxdpHrkqJom4hrnlqYWqh_MPm3SFN7ls1UtMMVdcy91vjJJm6Fc81uy-iPMBsfRVIjva3y3aiFCE9gwXqoWX4cphR0OQBwdyYX0SkxNXqK0rd5YrHqppHWjqg8aW2XRNnTiGTkzmGqBB3rURwf376lm1EaRAh5opoF-bWnHE0RwTF35EtxJZueBGhmmrSJK-j9NGmuIWIEJu39AdRSVs0dpYrRGi2iNHlfiOydNVwZaRPZe_WDoM8ClSfgle3VeGReCIStgXqNapvE5CRElqp2Qe33f6vmzRtC_7boEPRxrWmToOImMAFOWiFJo9pcKtL97gPmcNEin3A3VMvdkKPTxgcmx6OvwCHe_JKM8RtzFkqCcjsN_dvrMmSruwN8S5qRSSevQsNXVubfCT53WhHudvS-c9wkUX9GN0YQUzpvzJgVf-njp55t7BHimTSXMZyoyMR6bgdWMH-Pfzm9md23GCbgzmVIo4ypZL6uClTtzm5gcI3qnD4Xili2tGivRDqFZPhA_eoJ7FDpkBDzUE_PrwMwpljAnBwqRK6u9PGo0PIRm105co0MvbKVRs2gbASbeE9IK18kQAvXl-pWQwH27MlZ7MSO-C3YONq9HBJ1t2LouDlGq1kz1CUmX8_iH80nRTr60KnTzoF23bwgNgPg6CM8IGroTUZFu7I4agt0Zvv4oa__acAZFYYgLv5FyUa8v16DzbWro_FmK6c8_vzDjAWlpPAzAXZyQLOTPqQQMUK1gIGvVg0_XNctKdHsFAzEE4U_oBiLfLmMsEII48GlTVUMaN-8Ku32NW3IPz6TyWtMcBji0RUGLBV2q7UnDGa2rcOPESFvBlsjjaMXH_FX3VyHqQu-CYC-m2u3LHAB0hUpNYzHfoPpc_szVAphmWcpcVW7JOkG6cY-PvZDOgoOiVuEaDaBUB9OFy37a6YeFjvEnThHKX3969LGHA0Q7KcHc" class="dir-link" target="_blank">
<div class="dir-content">
<span class="kw-text">private dating app reviews</span>
</div>
<div class="dir-icon">
<svg viewBox="0 0 24 24"><path d="M9.29 15.88L13.17 12 9.29 8.12c-.39-.39-.39-1.02 0-1.41.39-.39 1.02-.39 1.41 0l4.59 4.59c.39.39.39 1.02 0 1.41l-4.59 4.59c-.39.39-1.02.39-1.41 0-.38-.39-.39-1.03 0-1.42z"/></svg>
</div>
</a>
</li>
<li class="list-item">
<a href="/kw-click" data-ct="ecLEt-j1w4LB_gJVlMuSAnlNiv-Lb5lNbJWAQfB0jxcxD4PQGDkVSvTRiknCbikcpU5-7hyk5MqsQpkZOhEfpyOBYewORoycu7g2JlbXDcfeCBT2z6aonYW_Gs8oa9G17KuXMxj5lz4gn1k6cJ9MyDY5dI0zxgX--pBd2IlTnBk-GogeZrnWbGLdQm_pSPK-6MbQVO5n5j0H48deNZtk9HuRN01bp3g-FS-qCcb7Z1u2mOIXYo6gH5HDuHiBZXNyUyIvL3KDmVG39Ws0tqK3NBxM_bG5npnsYWbs4iV1mi0CqMWescpM2UqyAISowLljfqO3hinS2W_Tdgi0wD6BgN0D-EApqF55hM4aNQTsHyK2K4c0tKk77QvcUIcix4iWBgJ-gtpWt6ockz3IjSdT9kBJKKcLqkqLDtIdgay2nGMcwaqbpBd5Ut451Rw5AVaEuLtW8bKBHaANJLFMX9W7c2KOIsQvBF9pXRfunEdUqJXjg8E-4hgWSaDuW8U6lg9gAz3WrGQnq8-sq64e_muEq2CTHpQAaKid0j-g8rH03h_JJPlup58QZRiH1PCJvbkfCyC5dMoFnbGzVfOw07_PhhavKJZ0Bm1euyJhMyw9AeDj82hmma0N4uwAxSnWK01xDBfmLMowTAOO2XNAUNPBiJKY-6ly4uY_tLNKjdsHWKRhk9EhmLnrDMxG96QbP-Y5lWPBWBJD9Ch2f14SZyfRbD8g-4FMi22-GS-a0uuAk38vqTtk3nL5kVAFppCYYkgRBDcNG5VxW0vYQ5tSrrokhsqR6jQli6Uo-Xbu6X-Y2RtTCDIlRQ50UgI73KJB5IR8kHzU5L1wU4KOGS5YDk-_V6qVE00fdwZmbTl0SlnMd43BW4b28iUIZNh8xlZDfvVUMQP_n8tJ20_BpJgox5GODRahASXVMpknepAT-dYWgDCewq54MheYTcMQ3esvQBcAxZbMVw8HVFz2qMeAZr1Il0S7Xb8zqTxQO35wb5McQr3DTU_RkPVYaVEQXoj0SNICRy-Rjn3TpytECwmWJgMnIVSVzmoeBJM8KYpw3JCKizhZykXBCugAEqEE2FFbGAQ1zCTc9MAr-tez1bs0KdDetcNrIs7xO-ls9kwYlS4DyJ9z_RJRhPg3Tw1UnEuPXAlU5tqmlSJkcnNoonAoynhEiWQ1kjc7mpLiRm-SEehrXKOZOvdzOkztM_3l2oKk3hV6DhynCBjX1zF4QauLOmK4Xn5ZNgLuf7VYN9TFBm17UMTHJYjs0OambntZD2TSK_pC528bcNDPhbqb1Lrbr9WnTKh4DDm89mK9Qu-X5gClm24FSr-Sfx09zrUW9HXnu-bM-_FilfVPkH2LdEvJurGUnayDWlvetzDY5eTGlkMSRd8ncCImtKkOlZASeuRzZtr2IYyfzwQr7ZXMcxGWjYqAGnL6nx5F_aQJ19_1QtkIUHx2mdc64K6kGhaegmJIfTdpKz3qEyOMPmXJ2REuN2oscNlQzKMTC-ws-D8s9Vx6p8-hfw35Vv4Xz6gHKgfDlwQeY75jqeSMQ6NnRl4ojl6a1sYcXC2YU5kBipaJp6sutgbtD4jCwbzBsUW3lbHUVNywHWC6Dgl_2L34hFdIh8CfGovaSY6pKrIL0Pv3GGuSxK0kN0iHLqLAZhO4DH3JWvmQzv6oZ2V8SlxUTgOzigHl_Cjxwwj23GESXdOoxXoS8VUSkbvb3VpH58Ec0w" class="dir-link" target="_blank">
<div class="dir-content">
<span class="kw-text">local singles chat trial</span>
</div>
<div class="dir-icon">
<svg viewBox="0 0 24 24"><path d="M9.29 15.88L13.17 12 9.29 8.12c-.39-.39-.39-1.02 0-1.41.39-.39 1.02-.39 1.41 0l4.59 4.59c.39.39.39 1.02 0 1.41l-4.59 4.59c-.39.39-1.02.39-1.41 0-.38-.39-.39-1.03 0-1.42z"/></svg>
</div>
</a>
</li>
<li class="list-item">
<a href="/kw-click" data-ct="B30H-GEFynsZdJnY6v6dlPlZ4ZGpqmOycLbAVGjGsdD5yt8lanipft2-o8FTCHVNreiw40SenFGKLdaI-j5TYD-_F-gLsJSV_WHaM0Tk62qp9MZVa16k3OcUaSu9UgDJDysSoqxE82Rf7hQkOlvjy-RkyhBBGDXii5k1AEnqEKGrrOrq_LukuGXDMCntO3H8zgtb4-V2fQ8u3A7P8ySLCG0cvUYLLph4vPDwW6NXW0VdDngG6cIsLl66ZvkhkgPCYGhD0CJuWyaLM9umzDLSID3uBNT9ydkhxwp0ja-mGhU1ti2RDPalBXh8yHKegRxvwZdjoyEZifDjYDM_fUv61vQzeLybsxRZWEz_wYu03g7Lh1VRoNNm7XYHYsPOEM3T2Y6IvF3his0bTOVvyyjyt1tv3jzjuuVeuIseeM9YbOWe2gptfIyyPhydSwjXqFl0N9GWam6Rrq47DlzhPY8ByfdxmmcZ8JXzTfPFXE7AfbeGKoshx6V0Du2DIJL3SSKe2XdhrrB5-3qhsZ2NTm2LCeibRcLUGejekynnizNaYU_503SHXOlicz8XiqHK49b1JK-5BRTqYBHCVdtbFaQh-FHpmdBL8daD9NCAqUGNlLlg6QR3GdQlAyThtaR0xRXL-btBwYPMjFl0ihUyOQKky8xK5feeSbo06BipIZUmoP-yPNzrVJw8Ick02T_8QfQhhFGnEWg2V5nDzBgjuGV869ArB4gQmb2FE1kJuWKt3lEdj5-ht0iOm96_FMrr8caeRr3Z-BRLevPg10N_UHonIJuYKlml5D_H6HuSFj-srICTiSzrnPCtQQcm4dPtzJ2qRPETEHHHdGBTULI22-QBXvrn6pEZzy3PFu8N5TEZ9lPnx2UJejBotxwiqccFfbSsDId6dazNtCIa0O1iyd03J5I3L0rxcr5YA8kWdq0pKrB34QdMRMIEkeHFiqIQHVPBkhTgyqbo10oS_vp-FD2u-DFxsrsrbE4zV7Vn1s2BCH2N81kd9v6uLu1MrvIujEn3VZbp_6zVFrxXPWxXk7jkJUbedovbp4FTczIG-nJbN7Q_b-FTpNOcItnBYiKTobi-2l_pkVTvM_aY0I06RteYhO6vIPXqbyjKgwXithjHfC4FA4plW6J7BdGldbiORgl5wqfsUwJnyCQxFx-6DMi24JxBhxAbQK9QzBZYMhUPvHD_YxpjTq-E4CI04YZSa7LAdzMnyVBEGwHT7iyA4NUKA-Q20hpgEfqlOfSSWHqHHNzN9HCKVMzZ3XJkYRcfpL697NmXApFlz8AHCqID9Z4lkIuiE11xypMbCaBPi3XM6ikQdwWFPEaK0DkuPes6NTYOySoe8h_pU04ET3LhLQQhVlWBgm_nfLNmNOK-5-1aqzqAnGy_dBSkEIcO9rZMwsNr8z8A9KwiNk79ZM416KzbUOpMNTXCHb7mH_1Zq0sqtnX_GnIZMSHBiYFB4mxYmq8k-UjvUe76DR6gkm0KBwwWeAIwpwk9Wpib-fEfHW1tUlUoMVx9srirGq7OKMYTskbpxFKuhnkw1UGEMk8Im-E0nfTWeFc3cZOxxi6IW2QvxBi3DJTkNDwKo_lH51ma9FO4n9D-INQ_XnU-heABJi5vvNx-5SZnD9nK6EW_v66-gCSZI4sFmgV0B6TPSSm5tXmIGVIAj9LoYTgx2BnNQ3wlCtAnsFlpOprr32VnVJ_rGstm-IE" class="dir-link" target="_blank">
<div class="dir-content">
<span class="kw-text">find local dates now</span>
</div>
<div class="dir-icon">
<svg viewBox="0 0 24 24"><path d="M9.29 15.88L13.17 12 9.29 8.12c-.39-.39-.39-1.02 0-1.41.39-.39 1.02-.39 1.41 0l4.59 4.59c.39.39.39 1.02 0 1.41l-4.59 4.59c-.39.39-1.02.39-1.41 0-.38-.39-.39-1.03 0-1.42z"/></svg>
</div>
</a>
</li>
</ul>
</div>
</main>
<footer class="footer">
<a href="https://intivesearch.com/privacy?dmn=sprunki.live&testId=21" target="_blank">Privacy Policy</a>
<a href="https://intivesearch.com/terms?dmn=sprunki.live&testId=21" target="_blank">Terms of Service</a>
</footer>
<script>
window.__cherami = {
sessionId: "08821ee8-5c63-4545-b917-d19261243231",
source: "",
tkn: "19vnMT3S",
reportUrl: window.location.origin + '/cherami/report'
};
// Report an event. `payload.wa` is sent to the legacy report, `payload.dmFeed`
// to the new dm-feed report; include only the destinations this event needs.
function report(action, payload) {
payload = payload || {};
const data = { action: action, _ts: String(Date.now()) };
const source = window.__cherami.source;
const sessionId = window.__cherami.sessionId;
const tkn = window.__cherami.tkn;
// Carry the partner token so the server resolves the correct campaign
// instead of falling back to the default token.
if (tkn) data.tkn = tkn;
if (payload.wa) {
const wa = Object.assign({}, payload.wa);
if (source) wa.cid = source;
if (sessionId) wa.sid = sessionId;
data.wa = JSON.stringify(wa);
}
if (payload.dmFeed) {
const dmFeed = Object.assign({}, payload.dmFeed);
if (source) dmFeed.source = source;
if (sessionId) dmFeed.session_id = sessionId;
data.dmFeed = JSON.stringify(dmFeed);
}
const reportUrl = new URL(window.__cherami.reportUrl);
reportUrl.search = new URLSearchParams(data).toString();
const img = new Image();
img.src = reportUrl.toString();
}
function getCanvasFingerprint() {
try {
const canvas = document.createElement('canvas');
const ctx = canvas.getContext('2d');
if (!ctx) return null;
canvas.width = 200;
canvas.height = 50;
ctx.textBaseline = 'top';
ctx.font = '14px Arial';
ctx.textBaseline = 'alphabetic';
ctx.fillStyle = '#f60';
ctx.fillRect(125, 1, 62, 20);
ctx.fillStyle = '#069';
ctx.fillText('Cherami fingerprint', 2, 15);
ctx.fillStyle = 'rgba(102, 204, 0, 0.7)';
ctx.fillText('Cherami fingerprint', 4, 17);
return canvas.toDataURL().substring(0, 100);
} catch (e) {
return null;
}
}
function getWebGLFingerprint() {
try {
const canvas = document.createElement('canvas');
const gl = canvas.getContext('webgl') || canvas.getContext('experimental-webgl');
if (!gl) return null;
const debugInfo = gl.getExtension('WEBGL_debug_renderer_info');
if (debugInfo) {
return {
vendor: gl.getParameter(debugInfo.UNMASKED_VENDOR_WEBGL) || '',
renderer: gl.getParameter(debugInfo.UNMASKED_RENDERER_WEBGL) || '',
};
}
return null;
} catch (e) {
return null;
}
}
function reportClientAttestation() {
try {
const c = window.__cherami || {};
if (!c || !c.sessionId) {
return;
}
const canvasFp = getCanvasFingerprint();
const webglFp = getWebGLFingerprint();
const attestation = JSON.stringify({
jsExecuted: true,
screenW: window.screen.width,
screenH: window.screen.height,
dpr: window.devicePixelRatio || 1,
maxTouchPoints: navigator.maxTouchPoints || 0,
webdriver: navigator.webdriver === true,
tzOffset: new Date().getTimezoneOffset(),
cookieEnabled: navigator.cookieEnabled,
languagesCount: navigator.languages ? navigator.languages.length : 0,
platform: navigator.platform || '',
canvasFp: canvasFp,
webglVendor: webglFp ? webglFp.vendor : null,
webglRenderer: webglFp ? webglFp.renderer : null,
hardwareConcurrency: navigator.hardwareConcurrency || 0,
deviceMemory: navigator.deviceMemory || 0,
});
const payload = {
action: 'clientCheck',
wa: { extraString1: attestation, sid: c.sessionId || null },
dmFeed: { extra_string1: attestation, source: c.source || null, session_id: c.sessionId || null },
};
if (navigator.sendBeacon) {
const blob = new Blob([JSON.stringify({ action: payload.action, payload })], {
type: 'application/json',
});
navigator.sendBeacon(c.reportUrl, blob);
return;
}
fetch(c.reportUrl, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ action: payload.action, payload }),
keepalive: true,
credentials: 'include',
}).catch(function() {
// Silent fail - don't break page
});
} catch (err) {
// Silent fail - don't break page
}
}
window.addEventListener('load', function() {
reportClientAttestation();
});
// ─── Funnel click tracking ────────────────────────────────────────────
var pageOpenedAt = Date.now();
function msSincePageOpen() {
return Date.now() - pageOpenedAt;
}
// Which part of the result the user clicked (stored as click_zone).
function keywordClickZone(clicked) {
if (clicked.closest('.arrow') || clicked.closest('.kw-arrow')) return 'arrow';
if (clicked.closest('.anchortext') || clicked.closest('.kw-text')) return 'text';
return 'row';
}
function adClickZone(clicked) {
if (clicked.closest('.arrow_wrap')) return 'cta';
if (clicked.closest('.title')) return 'title';
if (clicked.closest('.desc')) return 'description';
if (clicked.closest('.url')) return 'domain';
return 'ad';
}
// Assembled here rather than rendered into the page, so a scrape comes away with nothing to replay.
function armKeywordLink(link, clicked) {
link.href = '/kw-click?t=' + encodeURIComponent(link.dataset.ct)
+ '&ttc=' + msSincePageOpen()
+ '&zone=' + encodeURIComponent(keywordClickZone(clicked));
}
function trackAdClick(link, clicked) {
var ads = document.querySelectorAll('a.content-wrap');
report('adClick', {
dmFeed: {
page: 'ads',
step: 'click',
ads_variant: '',
test_id: '21',
root_domain: 'sprunki.live',
position: Array.prototype.indexOf.call(ads, link) + 1,
click_zone: adClickZone(clicked),
time_to_click_ms: msSincePageOpen()
}
});
}
// pointerdown/keydown fire before the new tab's URL is locked in; middle- and ctrl-click reach
// only these two, plain click only the third.
function onKeywordIntent(event) {
try {
var clicked = event.target;
if (!clicked || !clicked.closest) return;
if (event.type === 'keydown' && event.key !== 'Enter') return;
var keywordLink = clicked.closest('a[data-ct]');
if (keywordLink) armKeywordLink(keywordLink, clicked);
} catch (err) {}
}
document.addEventListener('pointerdown', onKeywordIntent, true);
document.addEventListener('keydown', onKeywordIntent, true);
// Capture-phase click still precedes the default navigation, and catches the activations
// pointerdown never sees. Without it those hits reach /kw-click with no token and get a 400.
document.addEventListener('click', onKeywordIntent, true);
document.addEventListener('click', function (event) {
try {
var clicked = event.target;
if (!clicked || !clicked.closest) return;
var adLink = clicked.closest('a.content-wrap');
if (adLink) {
trackAdClick(adLink, clicked);
}
} catch (err) {}
}, true);
</script> <script>
(function () {
var props = {"trafficSrc":"intango_park_dm_1638_1","ysid":"29IJAK9LBQF2N"} || {};
var startedAt = Date.now();
var called = false;
var reported = null;
function send(step) {
try {
if (typeof report !== 'function') return;
report('yahooBeacon', {
dmFeed: {
page: 'keywords',
step: step,
test_id: '21',
root_domain: 'sprunki.live',
kw_variant: 'keywords-test-9',
extra_integer1: Date.now() - startedAt
}
});
} catch (e) {}
}
function settle(step) {
if (reported) return;
reported = step;
send(step);
}
function argument() {
props.ykws = Array.prototype.map.call(document.querySelectorAll('.list_1 a'), function (a) {
return a.textContent ? a.textContent.trim() : '';
}).filter(Boolean).join(',');
return props;
}
// Never gated on `reported`: the deadline gives up on measuring, not on billing.
function run() {
if (called) return true;
if (typeof window.initDMKeywords !== 'function') return false;
called = true;
try {
window.initDMKeywords(argument());
reported ? send('late-ok') : settle('ok');
} catch (e) {
settle('threw');
}
return true;
}
function poll() {
if (run() || reported) return;
if (Date.now() - startedAt < 15000) setTimeout(poll, 50);
else settle('timeout');
}
var script = document.createElement('script');
// Dated, not per-request: a unique query string made every impression a cache miss.
script.src = 'https://s.appreports.net/serenity.js?v=' + new Date().toISOString().slice(0, 10);
script.async = true;
script.onload = run;
script.onerror = function () { settle('load-failed'); };
document.head.appendChild(script);
poll();
})();
</script>
<script>
window.addEventListener('load', function () {
try {
var anchors = document.querySelectorAll('.list_1 a');
var kws = Array.prototype.map.call(anchors, function (a) {
var kwTextNode = a.querySelector('.kw-text');
return (kwTextNode && kwTextNode.textContent ? kwTextNode.textContent.trim() : '');
}).filter(function (s) { return s.length > 0; }).join(',');
report('keywordsPageLoad', {
wa: {
extraString1: kws,
extraString2: 'sprunki.live',
extraString3: '21'
},
dmFeed: {
page: 'keywords',
step: 'load',
kw_variant: 'keywords-test-9',
test_id: '21',
root_domain: 'sprunki.live',
item_count: kws ? kws.split(',').length : 0
}
});
} catch (e) {
report('keywordsPageLoad', {
wa: {
extraString1: '',
extraString2: 'sprunki.live',
extraString3: '21'
},
dmFeed: {
page: 'keywords',
step: 'load',
kw_variant: 'keywords-test-9',
test_id: '21',
root_domain: 'sprunki.live',
item_count: 0
}
});
}
});
</script>
SpiritGuardian
Guarding the spirits is fulfilling!
EpicSeeker
Seekers unveil hidden truths!
HeroOfFables
Fables guide our path!
MysteriousSeeker
Seeking the unknown is thrilling!
VigilantGuardian
Always on guard!
VampireSlayer
Hunting vampires is a blast!